Você está na página 1de 335

UNIDAD DE CONTROL

: ' Y
UNIDAD ARITMÉTICA Y LÓGICA
MINICOMPÚTADORA
N'-

Tesis previa a la obtención del Tltu-'


lo de Ingeniero en la especialización
de Electrónica y Telecomunicaciones /-
de la Escuela Politécnica Nacional 1 '.

Byron Fabián Zapata Salazar

Quito, Julio de 1977


A G R A D E C I M I E N T O

Valorar en su verdadera magnitud él inmenso aporte reci-


bido de mis padres y maestros, en la formación material
y espiritual, a lo largo de toda imi carrera estudiantil,
es una tarea difícil y compleja.

Cabe, sin embargo, dejar constancia de mi sincero reco-


nocimiento a la'Escuela Politécnica Nacional, donde se
| ' :í
afirmó mi personalidad ¡y en la qúje encontré los medios
de ser un hombre útil a la sociedad.

No puedo pasar por alto a quienes] fueron mis profesores


desde las aulas primarias hasta las universitarias; y a
todos los compañeros que compartieron los mismos anhé -
los e inquietudes.

De manera particular quiero dejar mi expreso reconoci-


miento al Ing. H. Jacobson, quien sugirió y dirigió i-
nicialmente la elaboración de la presente tesis. Fue
su enorme capacidad de trabajo y su gran calidad hu -
mana el mejor estímulo durante el desarrollo teórico
de este trabajo. Al Ing. Alfonso Espinosa, director
de tesis, quien aportó puntos de vista muy valiosos
en la realización de la parte escrita y no escatimó
esfuerzo alguno para asesorar estle trabajo.
i
Agradezco además al 3r.: Alfredo IJinz B., quien realizó

la tesis "Unidad de Memoria para juna Minicomputadora" y


1'
compartió con extremada1 responzablilidad .el trabajo con-
.t
junto en la fase experimental

Dejo constancia de mi agradecimiento al Sr. Fabián Svier


i ' • I].
covich a quien se deben todas las] fotografías presenta-

das. :•
• ! " t

Un agradecimiento especial a los i compañeros del Departa_

mentó de Electrónica) cuyo estimuüp permanente hizo pos_i_

ble la consecución de este trabajo.

,i
ca. Además, se explican las principales características
de los circuitos de 'la Unidad Aritmética y Lógica.

El capítulo III presenta el diseco de los diferentes blo_


ques componentes de 'la Unidad Aritmética y Lógica.

En el capítulo IV se describe el proceso de operación de


] '
la máquina, se discute brevemente las diferencias entre
¡ i
el control"cableado" y "microprogramado" y se establece
una secuencia y modo de trabajo para el sistema en poli-
ducto.

En el capítulo V se habe una rápida revisión de AHPL con


el fin de utilizarlo posteriormente en la descripción de
decisiones y transferencias. Se desarrolla el diseño- -
del control cableadp para las fases de traída y ejecu
ción de las diferentes instrucciones, incluyendo el con-
trol de interrupciones.
• í
Al final de este capítulo se presenta el programa de con
trol, escrito en AHPL, para todas las instrucciones imple
mentadas. ! j
i
El capítulo VI trata sobre el panel de control. Describe
la función de los diversos interruptores operacionales y
i
además desarrolla su diseño. :

El capítulo VII presenta la decodificación de las instruc


ciones y en general todos los procesos que de alguna mane
ra pueden desarrollarse con redes combinacionales.
En el capítulo VIII se detallan las pruebas experimenta-
les realizadas, incluyéndose uno de los programas utili-
zados para las pruebas de suficiencia. Se anotan tam
bien las conclusiones finales. •
ABREVIATURAS Y SÍMBOLOS
i:
UTILIZADOS EN ESTA TESIS

En esta lista no se incluye las señales para control y


decodificación. , |

A Cuando sigue a una instrucpión de entrada y salida


se refiere al:buffer del dispositivo.
f
AC Acumulador ' !
ACÓ Acumulador O
AC1 Acumulador 1 j
AC2 Acumulador 2 ,
AC3 . Acumulador 3
ACI Acumulador de1 Instruccionejs
A0I Instrucción que llega al control y debe anularse
ACS Acumulador Fuente j
ACD Acumulador Destino
ADC Sumar Complemento
ADD Sumar
AND Producto Lógico ',
B Barra de datos •
i j
Cuando sigue a una instrucción de entrada y salida
se refiere al buffer del dispositivo
C Cuando sigue a una instrucción de entrada y salida
se refiere al buffer del dispositivo
CL Entrada CLEAR de los biestables
COM Complemente
CP Contador de Programa
Cuando se encuentra asociado a un biestable se
interpreta como CLOCK-PULsfe
CPU Cuando sigue a una instrucción de entrada y salida;
tal instrucción es de código especial (770)
!' " o

D Flip-flop Terminado ;
DI Datos Adentro ¡
DO Datos Fuera
DSZ . Decremente •^y salte si el resultado
i es cero
E Ciclo de Escritura ¡:

E/S Entrada y Salida


FF (ff) Flip-flop

INC Incrementar ;
IC Circuito Integrado i
IR Registro de Instrucciones ¡
IR1 Registro de Instrucciones 1
IR2 Registro de Instrucciones
ISZ Incremente y .salte si el Resultado es cero
JMP Salto
JSR Salto a Subrutina :!

L Ciclo de Lectura i

Si se encuentra asociada á una instrucción aritmé-


tica y lógica, indica rotación a la izquierda
LDA Cargar Acumulador

LME Ciclo de Lectura Modificación y Escritura


MDA Registro de datos de memoria
MDR Registro de direcciones de; memoria
MOV Mueva ¡

MR Borrado Maestro |
i
N No L ;
NEG Sacar el complemento de dois
NIO Ninguna transferencia
O Uno

PR Entrada PRESET de los biesítables

R Si se encuentra asociada a; una instrucción aritmé-

tica, indica rotación a láj derecha

RM . Reloj Maestro

SKP Salto condicional

STA Almacenar Acumulador


SUB Restar
TTL Transistor Transistor Log^c
T Reloj T
TA Reloj TA ¡:
TA1 Reloj TA 1 . ¡i

UAL Unidad Aritmética y Lógica

IH Voltaje de entrada en nivel alto


V
IL Voltaje de entrada en niveil bajo
V
OH Voltaje de salida en nivel alto

V
OL Voltaje de salida en nivel bajo
XR Registro índice !
Z . Cero
I No cargar en un acumuladolr ni en el link
$ Direccionamiento Indirectp
-4,

S:
Í N D I C E •

PROLOGO !;...- I

CAPITULO I: INTRODUCCIÓN
1. - Función \í 1
2 . - Organización del Sistema . . . . j; 4
i !¡
3.- Instrucciones y Oireccionamierito 9
4.- Formato de Instrucciones y Códigos de Operación. 13
5.- Unidades de Memoria y Entrada: y Salida vistas
desde el control i 39
: ; h|

6 . - Criterios de diseño •. 41

CAPITULO II: DESCRIPCIÓN DE LA UNIDAD ARITMÉTICA


Y LÓGICA ,
1. - Función i : 43
2.- Representación Numérica , 44
3.- La-: suma binaria y el principio de "llevada
anticipada" . . . . , ; 57

4.- Circuitos utilizados. Características princi-


pales de funcionamiento 66

CAPITULO III: DISEÑO:DE LA UNIDAD!!' ARITMÉTICA Y LÓGICA


1.- Introducción '. 75
2.- Disposición de los Registros 74172 76
3.- Utilización del Generador de Funciones 2506 .... 77
4.- Desplazador 79
5. - Link 82
6.- Sensor de resultados 87
CAPITULO IV: DESCRIPCIÓN DEL CONTROL

1.- Función 89

2.- Control Cableado y Microprogramado 90

3.- Frecuencia de reloj y ejecución por ciclos 97

4.- Secuencia de las instrucciones (Operación en

poliducto) \. 106

CAPITULO V: DISEÑO DEL CONTROL

1.- Transferencias entre registros y AHPL 134

2.- Demoras de control y diagrama de flujo de las

instrucciones í 142
3 . - Cadena de control para la Fasje de Traída 148

4.- Cadena de control para las instrucciones Aritmé-

ticas y Lógicas !, 153

5.- Cadena de control para las instrucciones con

Referencia a Memoria ; 156

Cadena para direccionamiento (•¡indirecto 159


6.- Cadena de control para las instrucciones de

Entrada y Salida 166

7 . - Instrucciones con sobrepaso .<< 171

8.- Interrupciones al Programa 175

9.- Señales de demora en las Fasejs de Traída y


\n •

10.- Programa de control 188

CAPITULO VI: PANEL DE CONTROL


1.- Descripción 193
2.- Diseño de la consola I 198
¡
CAPITULO VII: DECODIFICACION ;
1.- Registro de Instrucciones . . . . ¡. 212
2.- Decodificación y control del tipo de ciclo
i-
generado en la memoria 216
3.- Decodificaciones asociadas a señales de demora .... 221
4.- Decodificación de los controles en los circuitos
de la Unidad Aritmética y Lógica 223
Selección de direcciones en los registros 223
Selección de operaciones en la UAL 233
Control del Selector ! 247
Control de REÍ : 253
5 . - Decodificaciones Adicionales .' 254
Control del desplázador y del link 254
Control de saltos ' 255
I
Control del biestable de Interrupciones 259
Demoras de ejecución ; 259
Control de JSR y direccionamiento relativo 261
Decodificación de las instrucciones 262
; I

CAPITULO VIII: PRUEBAS EXPERIMENTALES Y CONCLUSIONES


1. - Implementación . . : : 266
: i
S !.
2 . - Resultados experimentales y coinclusiones 283

FOTOGRAFÍAS ' 289


ANEXOS Y BIBLIOGRAFÍA
¡PROLOGO:

Diseñar y construir^ ¡la Unidad Central de Proceso para una

minicomputadora de pjropÓsito general, en las condiciones

inherentes a un trabajo como el presente, es un proyecto

que involucra múltiples facetas áanto de orden técnico co_

mo humano.

La íntima relación ; conltemas de tesis complementarios co-

mo: Sistema de Memoriia,. y


j. Unidadesy de Entrada y
j. Salida,i
creaba la necesidad ¡de un trabajé paralelo y perfectamen-

te coordinado. | *

Los resultados finaülesj de utilización práctica en un dis-

positivo como el propuesto, se sujetaban obviamente a una


]
satisfactoria realización de todas las partes. Más aún,

si se considera quejla^s pruebas experimentales no podían

ser realizadas independientemente.


i
La gran variedad de ¡pojsibilidades que presenta la micro -

electrónica, permitirá] plantearse, sin lugar a dudas, so-

luciones diferentes;a los diversas problemas encontrados


en el diseno.
i í
Empeoro, este trabajo trata de desarrollar

la mejor alternativa, ¡habida cuenta de las restricciones


y circunstancias qué lo rodean. ,
El avance vertiginoso de la tecnología de los semiconduc-
! III

fases del proyecto. ¡


El trabajo por etapas no hizo posible el empleo de métodos
i:
generales de diseño, es por ellojque, cada sección se la -
enfoca inicialmente como un todo, para sólo al final esta-
blecer las relaciones e interacciones con el resto del con_
junto. Lógico es suponer que el : desarrollo de una área es_
pecífica estuvo siempre acompañado del conocimiento por lo
menos aproximado de lo que sería'todo lo demás y tratando
en la medida de lo posible de no ¡alterar las especificacip_
nes planteadas en el diseño de uijia etapa previa.
e
La presente tesis se la expone conforme a la secuencia de
i
trabajo utilizado, aunque por razones obvias se plantea só_
lo la elección final de una serie de alternativas que para
cada fase fueron desarrolladas. :
Se trata en lo posible de explicarla siempre en función de
todo el conjunto, aunque algunas veces se presentará la fa_
se preliminar de una cierta área .para más tarde '.ampliarla
y explicarla de acuerdo a los requerimientos de fases pos-
teriores . i
El problema fundamental radica en el sincronismo de las mu_
¡'
chas fases de ejecución. La coordinación en el tiempo de
todas las acciones a desarrollarse,
i 1 ' durante la realización
de una instrucción o a medida que corre un programa, resul_
ta lo más complejo y abarca gran parte de este trabajo.
El compromiso existente para la selección de la mejor posjL
bilidad en cuanto a una minicomputadora rápida y de un
gran soporte de instrucciones pero al mismo tiempo econó_
mica, tuvo, en este caso, como eje, las grandes dificul-
tades encontradas para conseguir determinados circuitos,
así como para disponer1 de los instrumentos básicos de -
prueba y medición cjue se adecúen: para este objeto.
Esta tesis, por su extensión, no desarrolla ni profundi-
. ¡
za en consideraciones de software propias a todo siste -
ma de computación.
- 1-

CAPITULO

ÍNTRODUCCION

1.- FUNCIÓN :
La Unidad Central dé Proceso (UCP) constituye la unidad
que gobierna a todo leí sistema. Controla los dispositi-
vos periféricos, desarrolla la aritmética y lógica, mane_
ja las diversas operaciones y regula la secuencia de un
programa.
i
El procesador maneja palabras de<16 bits numerados de O
a 15 y de izquierda-¡a derecha de. acuerdo a su posición -
en los registros.
Estas palabras pueden ser interpretadas como instruccio-
¡
nes dentro de un programa, como direcciones o como ope -
randos.
Las direcciones están dadas por 15 bits numerados de 1 a
15. ;
Las instrucciones aritméticas operan sobre números ente-
ros sin signo o su equivalente con signo -utilizando la -
notación en complemento de dos.
La Unidad Central de Proceso tiene básicamente dos sec -
ciones: La de control y la aritmética y lógica.
Las funciones de la Unidad de Control son:
- Ejecutar la instrucción en proceso.
- Emitir señales de control para habilitar o deshabilitar
ciertas compuertas que permitan el flujo de datos de un
punto a otro.
- Realizar las referencias a memoria tanto para las ins -
trucciones como para datos y aquellas para los disposi-
I.
tivos periféricos.
- Determinar la siguiente instrucción a ser"ejecutada y -
realizar un ciclo de traída para posibilitar su decodi-
ficación y ejecución.
Las funciones de la Unidad Aritmética y Lógica (UAL) son:
- Realizar la aritmética y lógica sobre los operandos es-
pecificados en una 'instrucción.
- Establecer decisiones lógicas comparando el resultado -
de una operación cdn cero para posibilitar un salto.
- Realizar.la aritmética necesaria para encontrar la di -
rección de la siguiente instrucción en secuencia.
- Ejecutar la rotación de un resultado o el cambio alter-
nado de sus bytes.
- Almacenar resultados intermedios en cualquiera de sus a_
cumuladores.
El control de tod'as las acciones descritas presenta dos -
posibilidades interesantes: el Control "Cableado o de ins_
trucciones fijas" y el Control "Microprogramado".
El. primero, es'el control tradicional desarrollado en ba-
: _ 3 —

se a cadenas de biestables y compuertas que habilitan o -


impiden las diferentes acciones. No puede enfocarse como
¡
un diseño modular y por lo mismo reviste cierta compleji-
dad dependiendo del conjunto de instrucciones a implemen-
tarse. Las instrucciones en este caso son fijas y no pue_
den ser alteradas.
El control microprogramado presenta mayor flexibilidad
porgue trabaja con una memoria de control en base de pro-
gramas (microprogramás) que podrían ser modificados según
las necesidades. Estos microprogramás contienen la se
cuencia de las funciones de control que corresponderían a
un control de instrucciones fijas.
Las ventajas y desventajas de cada tipo de control, así -
como el escogido para el diseño, se presentan con mayor -
detalle en el capítulo IV.
2.- ORGANIZACIÓN DEL SISTEMA

El procesador desarrolla un programa ejecutando las instruc


ciones traídas desde la memoria. Sus localizaciones son es
pecificadas por un registro denominado Contador de Programa
(CP) que se incrementa en uno de acuerdo al grado de ejecu-
ción en que se halla la instrucción en realización. De es-

ta forma, la próxima instrucción es normalmente obtenida de

la inmediata localización de memoria consecutiva. Este flu_

jo secuencial puede ser alterado cambiando el contenido del


Contador de Programa 'con el especificado por una instrucción
de salto.
Se dispone de cuatro Acumuladores de 16 bits (ACÓ a AC3), -
que permiten mover un dato en cualquier dirección, entre la
memoria y estos acumuladores o entre éstos y los registros-*-
dé'la^ interf ase. Cas.i todas las operaciones aritméticas y-
lógicas son desarrolladas sobre operandos en los acumulado-
• !•
res, con la posibilidad; de que el resultado pueda ser guar-
: •->•*
dado en uno de ellos y además comparado con cero por medio-
del ,sensó-r ,de resultados. Asociado con el geifer-ador de fun_
ciones se encuentra el link que np es sino un retenedor, pa_ ;

• ''• '¡Í
ra indicar la llevada de un bit, que llamaremos "Carry",
i .. ti i
fuera del bit cero j(más significajnte) , en una instrucción -
aritmética. j
Existe la posibilidad de desplazar (rotar) el resultado en-
un bit a la derecha o izquierda Incluido el link, o Ínter -
;l:
cambiar sus dos mitades (bytes).;
lüNIDAD DE CONTROL
I Y '
UNIDAD ARITMÉTICA Y LÓGICA
P A R i UNA MINICOMPUTADORA

Tesis previa a la obtención del Títu-


lo de Ingeniero en la especialización
d:e Electrónica y Telecomunicaciones -
de la.Escuela Politécnica Nacional.

Byron Fabián Zapata Salazar

Quito, Julio de 1977


•ftx

Certiftico que este trabajo ha


sido realizado en su totali -
dad ur el Señor Byron Fabián
Sapa

g. Alfonso Espinosa
¡ DIRECTOR DE TESIS

Quito, Julio de 1977


A MIS PADRES
Y
HERMANOS
A G R A D E C I M I E N T O

Valorar en su verdadera magnitud el inmenso aporte reci-


i
bido de mis padres ^ maestros, en la formación material
y espiritual, a lo largo de toda mi carrera estudiantil,
es una tarea difícil y compleja.

Cabe, sin embargo, dejar constancia de mi sincero reco-


nocimiento a la'Escuela Politécnica Nacional, donde se
afirmó mi personalidad y en la que encontré los medios
de ser un hombre útil a la sociedad.

alto a quienes fueron mis profesores


desde las aulas primarias hasta las universitarias; y a
todos los compañerojs que compartieron los mismos anhe -
|"
los e inquietudes. !

De manera particulajn quiero dejar mi expreso reconoci-


miento al Ing, H. JJacobson, quien sugirió y dirigió i-
nicialmente la elaboración de la presente tesis. Fue
su enorme capacidad de trabajo y su gran calidad hu -
mana el mejor estímulo durante el desarrollo teórico
de este trabajo. Al Ing. Alfonso Espinosa, director
de tesis, quien apoirtó puntos de vista muy valiosos
en la realización de la parte escrita y no escatimó


esfuerzo alguno para asesorar este trabajo.
],•
Agradezco además al' Sr. Alfredo Linz B., quien realizó
la tesis "Unidad de Memoria para una Minicomputadora" y
compartió con extremada responzabilidad el trabajo con-
junto en la fase experimental.

Dejo constancia de mi agradecimiento al Sr. Fabián Svie£


covich a quien se deben todas las fotografías presenta-
das .

Un agradecimiento especial a los companeros del Departa_


mentó de Electrónica cuyo estímulo permanente hizo posj.
ble la consecución de este trabado.

de "llevada anticipada" utilizado en la unidad aritméti-


ca. Además, se explican las principales características
de los circuitos dé la Unidad Aritmética y Lógica.

El capítulo III presenta el diseño de los diferentes blo_


que's componentes de la Unidad Aritmética y Lógica.

En el capítulo IV se describe el proceso de operación de


la máquina, se discute brevemente las diferencias entre
el control "cableado:" y "microprogr amado" y se establece

una secuencia y modo de trabajo para el sistema en poli-


ducto.
!;-
En el capítulo V se} hace una rápida revisión de AHPL con
P'
el fin de utilizarlo posteriormente en la descripción de
decisiones y transferencias. Se desarrolla el diseño'
del control cableado para las fases de traída y ejecu

ción de las diferentes instrucciones, incluyendo el con-


trol de interrupciones.
Al final de este caipítulo se presenta el programa de con_
trol, escrito en AHSPL, para todas las instrucciones imple

mentadas. ,:

El capítulo VI tratjk sobre el panel de control. Describe


la función de los diversos interruptores operacionales y
además desarrolla su diseño.

El capítulo VII presenta la decodificación de las instruc_


ciones y en general todos los procesos que de alguna mane_
ra pueden desarrollarse con redes combinacionales.
En el capítulo VIII se detallanfflas pruebas experimenta-
les realizadas, incluyéndose unjMde los programas utili-
zados para las pruebas de sufic^ncia. Se anotan tam
bien las conclusiones finales.
ABREVIATURAS Y SÍMBOLOS
UTILIZADOS EN ESTA TESIS

En está lista no se incluye las señales para control y


decodi cicación.

A Cuando sigue a una instrucción de entrada y salida


se refiere al buffer del dispositivo.
AC Acumulador ;
i

ACÓ Acumulador O
AGÍ Acumulador 1
AC2 Acumulador 2,
AC3 Acumulador 3
ACI Acumulador dé Instrucciones
A0I Instrucción que llega al control y debe anularse
ACS Acumulador Fuente
ACD Acumulador Destino
ADC Sumar Complemento
ADD Sumar i
AND Producto Lógico
B Barra de datos
Cuando sigue, a una instrucción de entrada y salida
se refiere al buffer del dispositivo
Cuando sigue a una instrucción de entrada y salida
se refiere al buffer del dispositivo
CL Entrada CLEAR de los biestables
COM Complemente

I
CP Contador de Programa
Cuando se encuentra asociado a un biestable se
i
interpreta como CLOCK-PULSÉ
CPU Cuando sigue a una instrucción de entrada y salida;
tal instrucción es de código especial (770)
' o
D Flip-flop Terminado
!
DI Datos Adentro ' ;
DO Datos Fuera
DSZ Decremente y salte si el resultado es cero
i
E Ciclo de Escritura ,'; Í

E/S Entrada y Salida


FF (ff Flip-flop ;

INC Incrementar >


¡'
IC Circuito Integrado ,'
IR Registro de Instrucciones!
IR1 Registro de Instruccionesj 1
i
IR2 Registro de Instrucciones'1 2
í
ISZ Incremente y salte si el Resultado es cero
JMP Salto
JSR Salto a Subrutina
L Ciclo de Lectura
Si se encuentra asociada a una instrucción aritmé-
tica y lógica, indica rotación a la izquierda
LDA Cargar Acumulador
LME Ciclo de Lectura Modificación y Escritura
MDA Registro de datos de memoria
MDR Registro de direcciones de.memoria

MOV Mueva

MR Borrado Maestro

N No *
NEG Sacar el complemento de dos

NIO Ninguna transferencia


O Uno
PR Entrada PRESET de los biestables
R Si se encuentra asociada ^ una instrucción aritmé-
tica, indica rotación a la derecha
RM Reloj Maestro
SKP Salto condicional
STA Almacenar Acumulador
SUB Restar
TTL Transistor Transistor Logjic
T Reloj T
TA Reloj TA
TA1 Reloj TA'.

UAL Unidad Aritmética y Lógica


i
V.IH
Voltaje de entrada en nivel alto
V
IL Voltaje de entrada en nivel bajo
V
OH Voltaje de salida en nivel alto
i
VOL Voltaje de salida en niv(el bajo
XR Registro índice ,
2 Cero

I No cargar em ur|¡ acumulac

$ DireccionamMenlío Indirec
Í N D I C E

PROLOGC I
CAPITULO I: INTRODUCCIÓN
1. - Fur ción ; 1
2 . - Organización del Sistema 4
3.- Instrucciones y¡Direccionamiento 9
4.- Formato de Instrucciones y Códigos de Operación. 13
5.- Unidades de Memoria y Entrada y Salida vistas
deí de el control 39
6. - Criterios de diseño 41

CAPITULO II: DESCRIPCIÓN DE LA UNIDAD ARITMÉTICA


Y LÓGICA
1. - Función ii 43
2. - Representación Numérica . . . 44
3.- La:suma binaria |*y el principio de "llevada
anticipada" . . . 57
4.- Circuitos utilizados. Características princi-
pales de funcionamiento 66

CAPITULO III: DISEÑO DE LA UNIDAD ARITMÉTICA Y LÓGICA


1.- Introducción 75
2.- Disposición de los Registros, 74172 76
3.- Utilización del Generador de Funciones 2506 .... 77
4 . - Desplazador 79
,:ik 82
6.- Sensor de resultados 87
CAPITULO IV: DESCRIPCIÓN DEL CONTROL

' 1.- Función 89


2.- Control Cableado y Microprogramado 90
3.- Frecuencia de reloj y ejecución por ciclos 97
4.- Secuencia de las instrucciones (Operación en
poliducto) 106

CAPITULO V: DISEÑO DEL CONTROL


1.- Transferencias entre registros y AHPL 134
2.- Demoras de control y diagrama de flujo de las
instrucciones 142
3.- Cadena de control para la Fase de Traída 148
4.- Cadena de control para las instrucciones Aritmé-
ticas y Lógicas , 153
5.- Cadena de control para las instrucciones con
Referencia a Memoria : 156
Cadena para direccionamiento indirecto 159
6.- Cadena de control para las instrucciones de
Entrada y Salida 166
7.- Instrucciones con sobrepaso 171
8 . - Interrupciones al Programa 175
9.- Señales de demora en las Fases de Traída y
Ejecución 182
10.- Programa de control 18:

CAPITULO VI: PANEL DE CONTROL ;


1.- Descripción 193

m
2.- DÍSÍ>ño de la consola 198

CAPITULÓ VII: DECODIFICACION


1.- Reg:.stro de Instrucciones 212
2.- Decodificación y control del tipo de ciclo
generado en la memoria 216
3.- Decodificaciones asociadas a señales de demora .... 221
4.- Deccpdif icación de los controles en los circuitos
de '..a Unidad Aritmética y Lógica 223
Selección de direcciones en los registros 223
Selección de operaciones en la UAL 233
Control del Selector 247
Control de REÍ , 253
5.- Decc dificaciones Adicionales 254
Con1 rol del desplazador y del link 254
Control de saltos 255
Control del biestable de Interrupciones 259
Déme ras de ejecución 259
Coni rol de JSR y direccionamiento relativo 261
Decodificación de las instrucciones 262

CAPITULC VIII: PRUEBAS EXPERIMENTALES Y CONCLUSIONES


1.- Imp3.ementacion 266
2.- Resultados experimentales y conclusiones 283

FOTOGRAI'IAS 289

ANEXOS ' BIBLIOGRAFÍA


P R O L O G O

Diseñar y construir la Unidad Central de Proceso para una


minicomputadora de propósito general, en las condiciones
inherentes a un trabajo como el presente, es un proyecto
que involucra múltiples facetas tanto de orden técnico co_
mo humano.
La íntima relación con temas de tesis complementarios co-
mo: Sistema de Memoria y Unidades de Entrada y Salida,
creaba la necesidad de un trabajo paralelo y perfectamen-
te coordinado.
Los rebultados finales de utilización práctica en un dis-
positivo como el propuesto, se sujetaban obviamente a una
satisfactoria realización de todas las partes. Más aún,
si se considera que las pruebas experimentales no podían
ser realizadas independientemente.
La gré n variedad de posibilidades que presenta la micro -
electa ónica, permitirá plantearse, sin lugar a dudas, so-
lucioies diferentes a los diversos problemas encontrados
en el diseño. Empero, este trabajo trata de desarrollar
la me- or alternativa, habida cuenta de las restricciones
y circ unstancias que lo rodean,
El a ve nce vertiginoso de la tecnología de los semiconduc-

IE
II

tores influyó decisivamente en los criterios iniciales de


diseñe y fue la causa de un sinnúmero de rectificaciones
y modaficaciones introducidas, para conseguir un análisis
más ácil y, al mismo tiempo, un trabajo que responda a la
tecnología de la época.
No se pretende de ninguna manera diseñar un sistema comer_
cialmente competitivo, pues la disponibilidad circuital,
el factor tiempo y los equipos de prueba y medición, impía
sieron en este caso diferencias sustanciales con otras in_
vestigaciones sobre el mismo tópico.
Los cr.rcuitos integrados caracterizados por su individua-
lidad en cuánto a peculiaridades electrónicas, hicieron -
posible un estudio dirigido al análisis total del sistema,
prescindiendo de una investigación detallada de los ele -
mentos electrónicos .
Una gran parte del tiempo requerido para llevar a la prác_
tica este trabajo fue empleado en el conocimiento exhaus-
tivo del modo de operación de una computadora.
La comprensión del comportamiento interno de la máquina -
fue desarrollándose a medida que se estudiaban las accio-
nes descritas por el juego de instrucciones a implementar
se, asi cómo las características de los circuitos elegí -
dos para tal o cual finalidad.
Una visión general del conjunto permitió, luego, estable-
cer un esquema básico de los diversos bloques componentes
que a la postre constituirían el soporte de las diversas
III

fases del proyecto.


El trabajo por etapas no hizo posible el empleo de métodos
generales de diseño, es por ello que, cada sección se la -
enfoca inicialmente como un todo, para sólo al final esta-
blecer las relaciones e interacciones con el resto del con_
junto. Lógico es suponer que el desarrollo de una área es_
pecífáca estuvo siempre acompañado del conocimiento por lo
menos aproximado de lo que sería todo lo demás y tratando
en la medida de lo posible de no alterar las especificacio_
nes planteadas en el diseño de una etapa previa.
La presente tesis se la expone conforme a la secuencia de
trabajo utilizado, aunque por razones obvias se plantea so
lo la elección final de una serie de alternativas que para
cada fase fueron desarrolladas.
Se trata en lo posible de explicarla siempre en función de
todo el conjunto, aunque algunas veces se presentará la fa_
se preliminar de una cierta área para más tarde :ampliarla
y explicarla de acuerdo a los requerimientos de fases pos-
teriores.
El problema fundamental radica en el sincronismo de las nrn
chas fases de ejecución. La coordinación en el tiempo de
todas las acciones a desarrollarse, durante la realización
de una instrucción o a medida que corre un programa, resul_
ta lo más complejo y abarca gran parte de este trabajo.
El compromiso existente para la selección de la mejor posi_
bllidad en cuanto a una minicomputadora rápida y de un
IV

gran soporte de instrucciones p^o al mismo tiempo econ<5


mica, tuvo, en estefi- caso, como Se, las grandes dificul-
tades encontradas ptara conseguiJSdeterminados circuitos,
así cerno para disponer de los iffitrumentos básicos de

pruebe y medición ¿pe se adecúeSlpara este objeto.


Esta tesis, por su ''extensión, n|Idesarrolia ni profundi-
P: I
za en consideraciones de softwa^ propias a todo siste -
¡ ,•
m a d e computación. ¡ :
- 1 -

CAPITULO

INTRODUCCIÓN

1.- FtNCION
La Una dad Central de Proceso (UCP) constituye la unidad
que gcbierna a todo el sistema. Controla los dispositi-
vos pe riféricos, desarrolla la aritmética y lógica, mane
ja las diversas operaciones y regula la secuencia de un
progr; ma.
El prc cesador maneja palabras de 16 bits numerados de O
a 15 de izquierda.a derecha de acuerdo a su posición -
en los registros.

Estas palabras pueden ser interpretadas como instruccio-


nes de ntro de un programa, como direcciones o como ope -
randos
Las direcciones están dadas por 15 bits numerados de 1 a
15.
Las ir strucciones aritméticas operan sobre números ente-
ros n signo o su equivalente con signo -utilizando la -
notaci ón en complemento de dos.
La Una dad Central de Proceso tiene básicamente dos sec -
cíones La de control y la aritmética y lógica.
2 -

Las funciones de la Unidad de Control son:


- Ejecutar la instrucción en proceso.
- Emitir señales de control para habilitar o deshabilitar
ciertas compuertas que permitan el flujo de datos de un
punto a otro.
- Realizar las referencias a memoria tanto para las ins -
trucc iones como para datos y aquellas para los disposi-
tivos periféricos.
- Detezminar la siguiente instrucción a ser'ejecutada y -
reala zar un ciclo de traída para posibilitar su decodi-
ficac ión y ejecución.
Las fur cienes de la Unidad Aritmética y Lógica (UAL) son:

- Reala zar la aritmética y lógica sobre los operandos es-


pecii icados en una instrucción.
- Esta!lecer decisiones lógicas comparando el resultado -
de ura operación con cero para posibilitar un salto.
- Realizar.la aritmética necesaria para encontrar la di -
recc;^.ón de la siguiente instrucción en secuencia.
- Ejecutar la rotación de un resultado o el cambio alter-
nado de sus bytes.
- Almacenar resultados intermedios en cualquiera de sus ci
cumuladores.
El control de tod'as las acciones descritas presenta dos -
posibilidades interesantes: el Control "Cableado o de ins
trucci :>nes fijas" y el Control "Microprogramado" .
El.prinero, es el control tradicional desarrollado en ba-
se a cadenas de biestables y compuertas que habilitan o -
impiden las diferentes acciones. !No puede enfocarse como
un diseño modular y por lo mismo reviste cierta compleji-
dad dependiendo del conjunto de instrucciones a implemen-
tarse. Las instrucciones en este¡ caso son fijas y no pue_
alteradas. ;
•j
El control microprogramado presenta mayor flexibilidad -
porgue trabaja con una memoria de control en base de pro-
i
gramas (microprogramas) que podríjan ser modificados según
i
las necesidades. Estos microprogjramas contienen la se
l
cuencic de las funciones de control que corresponderían a
un control de instrucciones fijas
Las ver tajas y desventajas de cada tipo de control, así -
como e], escogido para el diseño, se presentan con mayor -
detalle en el capítulo IV.
2.- ORGANIZACIÓN DEL SISTEMA

El procesador desarrolla un programa ejecutando las instru£

cíones traídas desde la memoria. Sus localizaciones son es

pecificadas por un registro denominado Contador de Programa

(CP) que se incrementa en uno de acuerdo al grado de ejecu-

ción en que se halla la instrucción en realización. De es-

ta forir a, la próxima instrucción es normalmente obtenida de

la inme diata localización de memoria consecutiva. Este flu_

jo seci encial puede ser alterado cambiando el contenido del

Contadc r de Programa con el especificado por una instrucción


de salt o.

Se dis£ one de cuatro Acumuladores de 16 bits (ACÓ a AC3), -

que peí miten mover un dato en cualquier dirección, entre la

memorici y estos acumuladores o entre éstos y los registros-"

de la :.nterfase. Casi todas las operaciones aritméticas y-

lógicas son desarrolladas sobre operandos en los acumulado-


res, con la posibilidad de que el resultado pueda ser guar-

dado en uno de ellos y además comparado con cero por medio-

del ,sensor de resultados. Asociado con el generador de fun

cíones se encuentra el link que no es sino un retenedor, pa

ra indicar la llevada de un bit, que llamaremos "Carry",


fuera leí bit cero (más significante), en una instrucción -
aritmé-

Existe la posibilidad de desplazar (rotar) el resultado en-


un bit a la derecha o izquierda incluido el link, o Ínter -

cambiar sus dos mitades (bytes^


La consola presenta una serie de conmutadores con los que-
el operador puede principiar o parar su programa, examinar
cualesquiera de los acumuladores o cambiar su contenido y
otras a :ciones que se explicarán posteriormente.
Se dispone además de un sistema de interrupciones que per-
mite al procesador responder al pedido de un dispositivo.
El control en este caso, detiene la ejecución del progra-
ma en proceso, guarda la dirección de retorno en la locali
dad cero de memoria y realiza un salto indirecto a la loca_
lidad uno donde se supone estará la dirección de la rutina
de ser\o de interrupciones
Todo eJ. conjunto se lo considera esencialmente dividido en
dos partes: el control y la sección de aritmética y lógi-
ca. E.\o de la figura 1.2-1 muestra el diagrama de-
bloques de la disposición dada al Procesador Central.
Las flechas dobles en blanco representan un cierto número
fijo de bits indicado por el número colocado a la entrada
de la sección correspondiente. Señalan el camino seguido
por lo 3 datos, las instrucciones y las direcciones.
Las flachas dobles en negro representan ciertas señales -
de control y decodificación que varían en número y dura -
ción de acuerdo al lugar donde se originan y al lugar don_
de llegan. Las flechas simples indican el camino posible
de un solo bit o señal.
Para nuestro i/estudio, como Unidad de Control entenderemos
al bloque de control y las señales del decodif icador. La
Unidad Aritmética y Lógica integrada por el conjunto de -
registros, el generador de funciones con el link, el des-
plazador y el sensor de resultados.
La sección de decodificación se comunica con la barra de
datos a través de los Registros de Instrucciones, que cons_
tituyen un lugar especial de almacenamiento para las ins-
trucciones, en orden a su traída desde la memoria.
El bloq e de decodificación representa a .todos los circui
tos necesarios para traducir una instrucción a una serie-
de señales que junto a las de control supervisarán las di
ferentes acciones a ejecutarse.
El bloque de control es el que regula y sincroniza todas-

y cada una de las^ etapas, en la ejecución de una instruc-


ción o en la realización de un programa. Es por ello que
envía y recibe señales de la Unidad de Memoria, las inter_
fases, los conmutadores y registros de la consola, la Un;L
dad Aritmética y Lógica y la sección de decodificación.
La barra de datos tiene acceso a los diferentes registros
o acumuladores a través de un transceptor de barra que po-
sibilita el paso de un dato en ambas direcciones.
El generador de funciones presenta dos entradas para cuan_
do se cppera sobre dos operandos. Ambas tienen acceso di-
recto a los diferentes registros y una de ellas se comuni
ca con elixansceptor de barra a través del selector para-
INTERFASE DE

BARRA DE DATOS

TRANSCEPTOR
INSTRUCCIONES

REGISTRO DE
INSTRUCCIONES

ACpMU 1TAOOR-INSTRUCCIONES
CONTADOR DE PROGRAMA
ACUMULADOR O
SE CION DE
ACUMULADOR 1
DECODIFICACION ACUMULADOR 2
ACUMULADOR 3

GENERADOR DE
CONTROL
FUNCIONES
SECUENCIAL

DESPLAZADOR

Figura 1.2-1
9 -

3.- INSTRUCCIONES Y DIRECCIONAMIENTO

Para el diseño se ha escogido el conjunto de instrucciones


de una minicomputadora existente en el mercado, la Nova de

la-DATA GENERAL CORPORATION. Esta decisión se la tomó lue_


go de un análisis del número de instrucciones a implemen -
tarse, asi como del grado de complejidad requerido para su
decodificación y construcción. Se consideró también la -

ventaja que representa el poder ofrecer un soporte de ins-


trucciones probado y verificado, además del considerable a_
horro de tiempo introducido al presente trabajo, al pasar-

por alto ciertas consideraciones de software necesarias en


el diseño de cualquier tipo de formato.
Las instrucciones de un computador pueden dividirse en gru_

pos bien definidos. En nuestro caso esos grupos son:


1.- Instrucciones de Movimiento de Datos: Utilizan una lo-
calidad de memoria y un acumulador que indistintamente

pueden ser la fuente o destinación.


2.- Instrucciones que modifican la memoria: Incrementan o-
decrementan el contenido de una localidad de memoria y

saltan una instrucción en secuencia si el resultado es


cero.
3.- Instrucciones de Salto: Posibilitan tomar la próxima -
instrucción de cualquier localidad de memoria, pudien-
do ponerse una dirección de retorno en AC3.
4.- Instrucciones Aritméticas y Lógicas: Emplean dos acuitm
ladores y cualquiera puede ser fuente de operandos, lie
- 10 -

van a cabo una función aritmética o lógica, y una lle_


vada del bit cero, "carry", afecta al link como se in
dique en la instrucción.
Si se desea se puede intercambiar las mitades del re-
sultado o rotarle junto con el link un lugar a la de-
recha o izquierda. Puede cargarse el resultado en -
cualquiera de, los acumuladores y saltar una instruc -
ción dependiendo de alguna condición especificada por
el resultado y/o el link.
5.- Instrucciones de Entrada y Salida:, Transfieren pala-
bras de datos en. cualquier dirección entre un acumula.
dor y un dispositivo de entrada y salida.
Una subclase de estas instrucciones no realiza ningu-
na transferencia y solamente especifica ciertas fun -
ciones de control sobre un aparato.
La instrucción opera el dispositivo o sino, salta una
- instrucción dependiendo de alguna condición del mismo.
Los tres primeros grupos se llaman "Instrucciones con re-
ferencia a Memoria". Se requieren dos referencias a la -
memoria para ejecutar estas instrucciones; primero, la -
instrucción debe ser leída de la memoria y después, duran_
te la ejecución de la instrucción una palabra de datos se
debe extraer de la memoria o depositarla en ella.
La primera referencia a memoria se llama "Fase de Traída"
y su desarrollo es común a los cinco grupos de instruccip_
nes anteriormente enunciados. Las instrucciones se ejecutan
11 -

en lo que se llama "Pase de Ejecución". Una vez más f la -


Fase de Ejecución involucra una referencia a la memoria S<D
lamente para las instrucciones de los tres primeros grupos
donde, para ser más explícitos se puede considerar que la-
segunda referencia a memoria de una instrucción de salto o
ramificación es la fase de traída de la siguiente instruc-
ción.

Durante la fase de traída, el contenido del Contador de

Programa (CP), se transfiere al registro de direcciones de


memoria. La memoria responde' con un ciclo de lectura po -
niendo la palabra direccionada en el registro de datos de-

memoria. Estos dos últimos registros son parte integrante


de la Unidad de Memoria.
Si la instrucción obtenida es del grupo con referencia a -

memoria, puede a través de su"campo.de direcciones" indi -


car la localidad de memoria de donde obtener una palabra -

de datos o en la cual ésta debe ser almacenada.


La dirección de la palabra a leerse o escribirse se llama-
"Dirección Efectiva" y es calculada de .la siguiente manera:

Los últimos ocho bits de la instrucción, especifican un


"desplazamiento", que en ciertos casos puede ser la Direc-
ción Efectiva, y, en otros, considerarse como un número eri
tero con signo, que sumado a la dirección base de 15 bits-
dada por CP, AC2 o AC3 permite encontrar la dirección efe£
tiva. CP, AC2 y AC3 son los llamados "Registros índice".
- 12 -

Una instrucción puede especificar un Direccionamiento In-

directo. En este cas'o, la dirección calculada indica la-

localización de memoria donde se encuentra la dirección e_

fectiva o nuevamente otra dirección indirecta, dependien-

do del bit cero de la palabra direccionada.

Cuando una dirección indirecta especifica una localidad —

de memoria desde 00020 hasta 00037 , se realiza un proce_


• 8 8
so de índice automático que incrementa o decrementa su

contenido en uno, utiliza la palabra alterada como una -

nueva dirección y la•vuelve a escribir en la memoria.


El incremento en uno se produce en el contenido de las lo
calidades 00020 a 00027 y el decremento desde la 00030
8 8 , 8
hasta la 00037 .
8
Las instrucciones de los dos últimos grupos no reguieren-

un segundo ciclo de memoria.


- 13 -

4- FORMATO DE INSTRUCCIONES Y CÓDIGOS DE OPERACIÓN

Los formatos generales para los diferentes tipos de in3truc_

ciones son:

O 1
DIRECCIÓN ÍNDICE DESPLAZAMIENTO D
0 FUNCIÓN I
AC XR

t_ TIPO DE DIRECCIÓN

FORMATO PARA SALTO Y MODIFICACIÓN DE MEMORIA


O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ÍNDICE
0 0 0 FUNCIÓN I
XR
DESPLAZAMIENTO D

TIPO DE DIRECCIÓN

FORMATO PARA ARITMÉTICA Y LÓGICA


O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 DIRECCIÓN
ACS
DIRECCIÓN
ACÓ
FUNCIÓN FUNCIONES SECUNDARIAS

FORMATO PARA ENTRADA Y SALIDA

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DIRECCIÓN
O 1 1 CÓDIGO DEL DISPOSITIVO
AC

Cada instrucción se especificará por su designación mnemo


técnica de acuerdo a sus siglas- en inglés.
Instrucciones con referencia a Memoria
Las instrucciones con referencia a memeria presentan simi
- 14 -

litud en su formato a partir del bit 5. Este conjunto de


bits especifica el cálculo de Dirección Efectiva en la s_i_
<
guiente forma:
Bit 5 (I) Tipo de Dirección
0 Directa
1 Indirecta
En el caso de una dirección indirecta, el procesador ob -
tiene de la dirección calculada una nueva palabra de datos
en la que, si el bit cero es O, los bits 1 a 15 constitu-
yen la dirección efectiva, de otra manera se especifica u
na nueva selección indirecta.
Bits 6 y 7 Utilización de Registro índice
00 El desplazamiento es un número
sin signo y constituye una di-
rección directa o indirecta en
el rango de 00000 a 00377 .
8 8
Este caso se llama "Seleccion-
en la página cero".
01 El desplazamiento es un número
con signo (en notación de com-
plemento de dos).
El bit 8 es el signo y cubre ~
el rango de -200 a 177 . Este
8 8
desplazamiento se suma a la d_i
rección que está en CP y la d_i
rección hallada se denomina o
se conoce como una"Dirección Re
- 15 -

lativa" que posibilita a una instruc-


ción seleccionar 256 palabras en su -
propia vecindad. El contenido de CP-

corresponde a la dirección de la ins-

trucción en ejecución más uno.

10 El desplazamiento es un número con

signo que se suma a la dirección que-


está en el AC2.
11 El desplazamiento es un número con
signo que se suma a la dirección que-
está en el AC3.

Los dos últimos casos constituyen una "Selección con Reg_is


tro índice". ,
Esta característica de las direcciones (utilizar un regis_

tro índice y un desplazamiento) permite que la longitud -

de las instrucciones sea lo más corta posible.


La utilidad típica de un registro índice consiste en hacer
variar su contenido de un modo sistemático. Puesto que el
contenido del registro índice forma parte de la dirección-
efectiva- de un operando, esta variación sistemática permi-
te que una misma instrucción actúe, sucesivamente, sobre -

distintos campos de datos cuyas direcciones siguen también


una ley sistemática.
En el caso de dirección indirecta, si la palabra de datos
se obtiene de las localidades 00020 a 00037 tiene lugar
8 8
un incremento o decremento automático como ya se explicó.
Cuando se incrementa la dirección 77777 o se decrementa
- 16 -

la dirección 00000 , se obtienen las direcciones 00000 y


8 8
77777 respectivamente .
8
Instrucciones de Movimiento de Datos.- Estas instruccio-
nes transfieren áatos entre la memoria y los acumulado -
res. En la descripción de todas, las instrucciones con re_
ferencia a memoria, E representará la dirección efectiva.

LDA (Load Accumulator) - Cargar Acumulador

0 0 1 AC I XR D

O 1 7 9 10 11 12 13 14 15

Cargar el contenido de la localidad E en el acumulador -


AC. El contenido de E permanece sin afectarse mientras-
el contenido original de AC se pierde.

STA (Store Accumulator) - Almacenar Acumulador

0 1 0 AC I XR D

O 1 7 9 10 11 12 13 14 15

Almacenar el contenido del acumulador AC en la localidad


E. El contenido de AC no es afectado y el contenido or.i
ginal de E se pierde.
Instrucciones de Modificación de Memoria.- Estas instruc_
cienes alteran el contenido de una localidad de memoria-
y efectúan una prueba para realizar el salto de una ins-
trucción. Se usan para contar las iteraciones de un la-
zo o para modificar sucesivamente una palabra para una -
serie de operaciones.
- 17 -

ISZ (Increment and Skip if Zero) - Incrementar y saltar si


se obtiene cero.
0 0 0 1 0 I XR D

O 1 7 9 10 11 12 13 14 15

Añadir uno al contenido de la localidad E y poner el resul


tado nuevamente en E. Saltar la próxima instrucción en se_
cuencia si el resultado es cero.
DS2 (Decrement and Skip if Zero) - Decrementar y saltar si
se obtiene cero.
Ó 0 0 1 1 I XR D

O 1 7 9 10 11 12 13 14 15

Substraer uno del contenido de la localidad E y poner el-


resultado nuevamente en E. Saltar la próxima instrucción
en secuencia si el resultado es cero.
Instrucciones de Salto.- Estas instrucciones permiten al-

programador alterar la secuencia normal del programa sal-


tando a una localidad arbitraria. Son especialmente úti-
les para llamar y regresar de subrutinas.
JMP (Jump) - Saltar

0 0 0 0 0 I XR D

0 1 2 4 5 6 7 9 10 11 12 13 14 15

Cargar E en el CP (Contador de Programa). Tomar la si -


guiente instrucción de la localidad E y continuar la ope_
ración secuencial desde ahí.
- 18

JSR (Jump to Subroutine) - Salto a Subrutina.

0 0 0 0 1' I XR D

0 1 2 3 4 5 6 7 9 10 11 12 13 14 15

Cargar en el AC3 la dirección que está en el CP (por lo -

tanto, ÁC3 recibe la dirección de la localidad que sigue-

a la instrucción JSR).. Cargar E en CP. Tomar la siguiera

te instrucción de la localidad E y continuar la operación

secuencial desde ahí. Nota: El cálculo de la dirección e_

fectiva se hace antes de que CP se cargue en AC3. Por lo

tanto, si la instrucción JSR especifica como registro ín-

dice AC3, no hay problemas porque se usa el contenido an-

terior de AC3.

Instrucciones Aritméticas y Lógicas

Para ejecutar operaciones lógicas, los circuitos interpre_

tan los operandos como palabras lógicas. Para las opera-

ciones aritméticas, los operandos se tratan como números-

de 16 bits sin signo. Sin embargo, el programa puede in-

terpretarlos también como números con signo expresados en

complementos de dos.

Asociado con los acumuladores está el link, que se usa pa_

ra detectar un carry fuera del bit de orden cero en una o_

peración aritmética. Las distintas condiciones que puede

producir un carry se darán en la descripción de cada ins-

trucción .
- 19 -

Cada instrucción especifica uno o dos acumuladores para que


entreguen operandos al generador de funciones, que lleva a~
cabo la función especificada por la instrucción. Este gene_

rador de funciones produce un bit de carry cuyo valor deperi

de de tres cantidades:
Un valor base especificado por la instrucción, la función e_

jecutada, el resultado obtenido. El valor base puede ser -


calculado con el contenido del link, o sino la instrucción

puede especificar un valor independiente.


La salida del generador de funciones, de 17 bits, que com -
prende el carry y un resultado de 16 bits, va entonces al -
desplazador. Aquí, el conjunto de 17 bits puede ser rotado
en un lugar a la derecha o a la izquierda, o sino se pueden

intercambiar las dos mitades del resultado (c/u de 8 bits)


sin afectar al carry.
La salida del desplazador, de 17 bits, puede entonces ser -

sometida a una prueba de salto. El sensor de resultados


puede probar si el carry y/o el resultado de 16 bits es o ~
no igual a cero. Finalmente, la salida de 17 bits puede o

no ser cargada en el link y uno de los acumuladores. Esta


operación de carga no es absolutamente necesaria.
Funciones Secundarias: Carry, Desplazamiento y Salto.
Como se vio al estudiar el formato de las instrucciones a -
ritméticas y lógicas/ ellas tienen un 1 en el bit de orden
cero y ejecutan la función especificada por los bits 5, 6 y
7 .actuando sobre el o los operandos especificados por los -
- 20 -

bits 1-2 y 3-4. Un formato más detallado que toma en cuen_


ta las funciones secundarias anotadas se muestra a conti -
nuación:
r CARGA
DIRECCIÓN DIRECCIÓN
1 ACS ACD
FUNCIÓN DESP, CARRY N SALTO

O 1 7 9 10 11 12 13 14 15

Al desplazador van el resultado del generador de funciones


y un bit de carry cuyo valor se determina a base de los
bits 10 y 11. El valor base determinado a partir de cada-
configuración de bits se muestra en la lista siguiente,
junto con la designación mnemotécnica:
Mnemotécnica Bits 10-11 Valor Base para el bit de Carry
- 00 Estado actual del link
Z 01 Cero
O 10 Uno
C 11 Complemento del valor actual
del link.
Las funciones lógicas entregan al desplazador el valor base
especificado como carry. Las operaciones aritméticas tam -
bien entregan como carry este valor base, a menos que la o-
peración produzca un carry, en cuyo caso entregan al desplcí
zador el complemento del valor base especificado. (Este
bit de carry puede usarse junto con el signo del resultado
para detectar sobreflujo en operaciones sobre números con
signo. Sin embargo, su uso principal es como llevada fuera
del bit más significativo en operaciones sobre números sin
- 21 -

signo, tales como las partes de menor significación en a-


ritmética de precisión múltiple).

En el desplazador, la palabra de 17 bits compuesta por el


carry entregado y el resultado, es procesada como lo espe_
cifican los bits 8 y 9:
Mnemotécnica Bits 8-9 Operación de desplazamiento

Ninguna.

Rotación 1 lugar a la izguier_

da. El bit cero pasa a la pp_


sición del carry, y éste pasa
al bit 15.
R 10 Rotación 1 lugar a la derecha.
El bit 15 pasa a la posición

del carry, y éste va al bit 0.


S 1 1 - Intercambio d e l a posición d e
las mitades del resultado, de_

jando el carry en su sitio -


sin afectarlo.
La salida del desplazador se carga en el link y un acumula
dor si el bit 12 es cero. Si es 1, la carga no se realiza,

La salida del desplazador se somete a una prueba para rea-


lizar el salto de la próxima instrucción en secuencia de -
acuerdo a una condición especificada por los bits 13 a 15.
Si esta condición es satisfecha se realiza el salto.
- 22 -

Bit Efecto de un 1 en ese bit

13 Selecciona la condición de que los 16 bits

de menor orden de la salida del desplazador


sean todos cero.

14 Selecciona la condición de que el bit en -


la posición del carry a la salida del des-

plazador sea cero.

15 Invierte las condiciones seleccionadas por


los bits 13 y 14.

El efecto combinado de los tres bits considerados al mis--


mo tiempo, asi como las palabras mnemotécnicas que desig -
nan las posibles combinaciones, se dan a continuación:
Mnemotácnica Bits 13-15 Función de salto
"u O O ( O ) No saltar

SKP 001 (1 } Saltar de todos modos


SZC . 0 1 0 ( 2 ) Saltar si el carry es cero

SNC O l í ( 3 ) Saltar si el carry no es cero


SZR 1 O' O ( 4 ) Saltar si el resultado es cero

SNR 101 (5 ) Saltar si el resultado no es


cero.
SEZ 110 ( 6 ) Saltar si el resultado p- el ca_

rry son cero.


SBN 111 (7 ) Saltar si tanto el resultado -
como el carry no son cero.
- 23 -

-La'- prueba de estas condiciones se realiza aunque la salida

del desplazador no se cargue.


A continuación examinaremos cada una de las instrucciones.

Existen 8 funciones, que son seleccionadas por los bits 5,


6 y 7. Designaremos como S la dirección del acumulador -

fuente (que denominaremos ACS), y como D, la dirección -


del acumulador destino (que llamaremos ACD).
COM - Complemento

1 S D 0 0 0 SH C N SK

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Poner en el desplazador el complemento lógico de la pala-
bra contenida en ACS y el bit de carry especificado por C

Ejecutar la operación de desplazamiento indicada por SH.

Cargar la salida del desplazador en el Link y en ACD a -


menos que N sea 1. Saltar la próxima instrucción en se-

cuencia si la salida del desplazador satisface, la condi-


ción impuesta por SK.
NEG - Negación

1 S D 0 0 1 SH C N SK

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Poner en el desplazador el complemento de dos del numero-
que está en ACS. Si ACS contiene sólo ceros ( lo cual -
produce un carry al sacar el complemento de dos ), entre-
gar al;.desplazador el complemento del valor especificado-

por C; de otra manera, entregar dicho valor. Efectuar la


- 24 -

operación de desplazamiento dada por SH, cargar la salida


del desplazador en el Link y en ACD a menos que N sea 1, y
saltar una instrucción si la salida del desplazador satis-

face la condición indicada por SK.

MOV - Movimiento

1 s D 0 1 0 SH C N SK

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Colocar en el desplazador el contenido de ACS y el bit -

de carry especificado por C. Ejecutar la operación de


desplazamiento indicada por SH. Cargar la salida del de£
plazador en el Link y en ACD a menos que N sea 1. Saltar
una instrucción si la salida del desplazador satisface la

condición impuesta por SK.


INC - Incrementar

1 s D O l í SH C N SK

O 1 7 9 10 11 12 13 14 15

Sumar'1 al número que está en ACS y poner el resultado en-


16
el desplazador. Si ACS contiene 2 -1 (-1 con signo), en-

cuyo caso se produce un carry, entregar como bit de carry-


al desplazador el complemento del valor dado por C; de -
otra manera, entregar dicho valor. Ejecutar la operación-
de desplazamiento indicada por SH, cargar la salida del
desplazador en el Link y ACD a menos que N sea 1, y saltar
una instrucción si se satisface la condición especificada-

por SK.
- 25 -

ADC - Sumar Complemento

1 s D 1 0 0 SH C N SK

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Sumar al número que está en ACD el complemento lógico del-

que está en ACS y poner el resultado en el desplazador. Si

ACD >ACS sin signo, entregar como bit de carry al desplaza-


dor el complemento del valor dado por C; de otra manera, en_

tregar el valor dado. Llevar a cabo la operación de despla_

zamiento especificada por SH, cargar la salida del desplazci

dor en el link y en ACD a menos que N sea 1, y saltar una -


instrucción si se satisface la condición indicada por SK.
Nota: Para números con signo, se produce un carry en el ge-

nerador de funciones cuando los signos de los operandos son


iguales y ACD es el mayor, o cuando los signos son distin -

tos y ACD es negativo. (Esta instrucción se usa a menudo -


para procesar palabras de.orden superior en substracción* de
precisión múltiple, donde un número negativo se expresa co-
mo complemento de unos en vez de complementos de dos).

SUB - Substracción

1 s D 1 0 1 SH C N SK

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Restar el número que está en ACS del número que está en
ACD, sumándole el complemento de dos del primero/ y coló -
car el resultado en el desplazador. Si ACD¿1 ACS (sin sig-
no) , entregar el complemento del valor especificado por C

OOi'744
- 26 -

como carry; de otra manera, entregar ese valor. Ejecutar-

la operación de desplazamiento indicada por SH, cargar la-


salida del desplazador en el Link y en ACD a menos que N -
sea 1, y saltar una instrucción si se cumple la condición-
especificada por SK. Nota: Para números con signo, se prp_
duce un carry cuando los signos de los operandos son igua-
les y ACD^ACS, o cuando los signos difieren y ACD es nega_
tivo.
ADD (Add) - Sumar

1 s D 1 1 0 SH C N SK

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Sumar al número que está en ACD el número que está en ACS-
y poner el resultado en el desplazador. Si la suma, sin -
16
signo, BS ^2 , se produce un carry en el generador de fun_
ciones y entonces debe entregarse como bit de carry al des_
plazador el complemento del valor dado por C; de otra mane_
ra, se entrega el valor dado. Ejecutar la operación de -
desplazamiento indicada por SH, cargar la salida en el -
Link y el ACD a menos que N sea 1, y saltar una instrucción
si la salida satisface la condición impuesta por SK.
Nota: Para números con signo, se producirá un carry cuan-
do ambos sumandos son negativos, o cuando sus signos difie_
ren y sus magnitudes son iguales, o el positivo tiene mayor
magnitud.

m
- 27 -

AND - (And) - Producto lógico

1 s D 1 1 1 SH C N SK

0 1 2 3 4 5 6 7 9 10 11 12 13 14 15

Colocar en el desplazador el producto lógico de las palabras

que están en ACS y en ACD . Entregar al desplazador como bit

de carry el valor especificado por C. Ejecutar la operación

de desplazamiento indicada por SH, cargar la salida del des-

plazador en el link y el ACD a menos que N sea 1, y saltar -

una instrucción si se satisface la condición especificada


por SK.

Instrucciones de Entrada y Salida (E/S)

Estas instrucciones gobiernan todas las transferencias de -

datos a y desde el equipo periférico, y también realizan va

rias operaciones dentro del procesador. Estas instruccio-

nes se designan con Olí en los bits 0-2. Los bits 10-15 se

leccionan el dispositivo de E/S que debe responder a la ins_

trucción . Esto permite tener 64 códigos , de los cuales se

pueden usar 62 para seleccionar dispositivos. El código


0000000 (00 no se usa, y el código lllllln¿ (770) se usa -
¿ o

para ejecutar ciertas funciones especiales, como controlar


las interrupciones al programa, leer datos de una consola,
etc .

Cada dispositivo de E/S, tiene un decodif icador de 6 bits

para selección, un flip-flop de "Habilitación de Interrup -


- 28 -

ciones", un flip-flop de "Ocupado" y un flip-flop de "Ter


minado". La red selecciona un solo dispositivo de los 62
posibles. Los flip-flop's Ocupado y.Terminado dan en con
junto el estado básico del dispositivo. Cuando ambos es-
tán en cero, el dispositivo esta inactivo.
Para poner a trabajar un dispositivo, el programa pone a
1 Ocupado. Si el dispositivo se va a usar para salida
(transferencia de datos desde el procesador al equipo pe-
riférico) , el programa deberá dar una instrucción de "da-

tos fuera" que envíe la primera unidad de datos.


Cuando el dispositivo ha procesado una unidad de datos, -
pone Ocupado a O y Terminado a 1, para indicar que esta -

listo para recibir nuevos datos o para enviar otros. En


el primer caso, el programa responderla con una nueva ins_
trucción de "datos fuera", y en el último caso, con una -

instrucción de "datos adentro". Si el flip-flop que Habi_


lita Interrupciones está en cero, la puesta a uno de Ter-
minado pide una interrupción al programa. Si el anterior
flip-flop está en 1, el programa no se interrumpe.

El programa cuenta con instrucciones que le permiten man-


tenerse examinando el estado de Ocupado o Terminado para
saber cuándo el dispositivo estará listo.
En todas las instrucciones E/S, los bits 8 y 9 controlan
los flip-flop's Ocupado y Terminado o examinan su estado.
En los casos en que los controlan, las funciones de con -
-trol correspondientes a las diferentes combinaciones de -
los bits 8 y 9, así c:omo las-palabras mnemotécnicas que las
- 29 -

designan, se muestran a continuación:


Mnemotécnica Bits|: 8 y 9 Función de Control

00 Ninguna.

S 01 Echar a andar el dispositivo,

poniendo "terminado" a O y
"ocupado" a 1.

C 10 Desactivar el dispositivo, pp_


niendo a O tanto "terminado"
como "ocupado".
- 11 Ninguna,

La secuencia de estados de los flip-flops estará determina_

da por el programa y por la operación interna del disposi-


tivo. Las posibles transiciones se muestran a continua

ción:

"Ocupado" "Terminado"

EMPEZAR <°
\
.1 O _\ DESACTIVAR
OPERACIÓN s^. ^\R
TERMINADA \^ X^ DE NUEVO
O 1X

La instrucción de "datos fuera" o de "datos adentro" que

el dispositivo da en respuesta a la puesta a 1 de "Termi-


nado" puede también reactivar el dispositivo. Cuando todos
los datos han sido transferidos, el programa usualmente po
- 30 -

ne a cero a "Terminado", de modo que el dispositivo no pi-


de interrupciones posteriores y río parece estar en uso.
Esto, sin embargo, no es necesario. La situación en la
't
cual ambos flip-flops están en 1jno tiene sentido.
Los bits 5 a 9 especifican la fur ción completa que debe e-
jecutarse. Si no hay transferencia (bits 5 a 7 todos igua_
I
les) , los bits 3 y 4 se ignoran \f los bits 8 y 9 pueden es_
pecificar una función de control jo una condición de salto.
i
NIO - (No I/O Transfer) - Ninguna transferencia de E/S.

O l í 0 0 0 0 0
H D

0 1 2 3 4 5 6 7 10 11 12 13 14 15

Ejecutar en el dispositivo de código D la función especifi^


!
cada por F.
SKPBN - (Skip if Busy Nonzero) -^Saltar si "Ocupado" no es
cero.
O l í o o • 1 1 1 D
0 ^
O 1 2 3 4 5 6 7 8 $ 10 11 12 13 14 15
ji
Saltar la siguiente instrucción án secuencia si el f.f.
"Ocupado" del dispositivo D es l.<
t
SKPBZ - (Skip if Busy Zero) - Saltar si "Ocupado" es cero,

O l í 0 0 1 1 1 o i D

0 1 2 3 4 5 6 7 10 11 12 13 14 15

Saltar la próxima instrucción en[secuencia si el f.f.


"Ocupado" de D es cero.
- 31 -

SKPDN - (SJcip ¿f Done Nonzero) - Saltar si "Terminado"

no es cero.

O l í 0 0 1 1 1 1 0 D

S altar la próxima instrucción en secuencia si el flip


flop "Terminado" de D es uno.
SKPDZ - (Skip if Done is Zero) - Saltar si "Terminado"
es cero.

O l í 0 0 1 1 1 1 1 D

0 1 2 3 4 5 6 7 9 10 11 12 13 14 15

Saltar la próxima instrucción en secuencia si el flip ~


flop "Terminado" de D es cero.
Si los bits 5 a 7 no son todos iguales, la instrucción es_
pecifica una transferencia de datos hacia adentro o hacia
fuera. Los bits 3 y 4 designan al acumulador que entre-
ga datos al dispositivo de código D en el caso de una
instrucción Datos Fuera (DO), o recibe los datos desde -
el dispositivo D en una instrucción Datos Adentro (DI).
Los bits 8 y 9 especifican una función de control (si es
que la hay) tal como se explicó anteriormente.
DÍA - (Data in A) - Datos adentro desde A

O l í AC 0 0 1 F D

O 1 9 10 11 12 13 14 15
32 -

Transferir el contenido del registro amortiguador (buffer)


A del. dispositivo D al acumulador AC,y ejecutar en el dis-
positivo D la función especificada por F. El número de
bits de datos transferidos depende de la capacidad del re-

gistro amortiguador de D, de su modo de operación, etc.


Los bits de AC que no reciben datos se ponen a cero.

DOA - (Data Out A) - Datos fuera hacia A

O l í AC 0 1 0 F D

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Enviar el contenido del acumulador AC al registro arnorti -

guador A del dispositivo D y llevar a cabo la función espe_


cificada por F en el dispositivo D. La cantidad de datos
aceptada por el dispositivo depende de la capacidad de su

registro amortiguador, su modo de operación, etc.


DIB - (Data In B) - Datos adentro desde B

O l í AC O l í F D

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Poner en el acumulador AC el contenido del reg. amort. B -
del dispositivo D y ejecutar la función especificada por -
F en el dispositivo D. Se aplican consideraciones iguales
que en DÍA sobre el número de bits transferidos.
DOB - (Data Out 'B) - Datos fuera hacia B

O l í AC 1 0 0 F D

O 1 7 8 9 10 11 12 13 14 15

M
- 33 -

Enviar al reg. amort. B de D el contenido del acumulador


AC y ejecutar la función indicada por F en el dispositi-

vo D. El número de bits aceptados en la realidad por el


dispositivo depende de la capacidad de su registro amor-
tiguador, su modo de operación, etc0
DIC - (Data In C) - Datos adentro desde C

O l í AC 1 0 1 F D

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Depositar en AC el contenido del registro amortiguador C
de D, y ejecutar en él la función especificada por F. X_
guales consideraciones que para DÍA.

DOC - (Data Out C) - Datos fuera hacia C

O l í AC 1 1' 0 F D

O 1 7 9 10 11 12 13 14 15

Funciones Especiales de Código 77

Las .'instrucciones de E/S con lililí en los bits 10 a 15


llevan .a cabo ciertas funciones especiales,en lugar de -

controlar un dispositivo específico. En todas las ins.-


trucciones, con excepción de las de salto, los bits 8 y
9 se usan para habilitar o inhabilitar interrupciones. -
Las letras mnemotécnicas son las mismas que se usan para
el control de "Ocupado" y . "Terminado" en los dispositi -
vos de E/S pero la función que seleccionan con código 77
es distinta:
- 34

Mnemotécnicas Bits 8 y 9 Función

S O 1 Poner a uno el f.f. de In-


terrupción para que el pro_
cesador pueda responder a
pedidos de interrupción.

C 10 Poner a cero el f.f. de In_


terrupción para evitar que
el procesador responda a -
pedidos de interrupción.

11 Ninguna.

El flip-flop de "Interrupciones" pertenece al control y


es el que en definitiva regula el inicio de una interrup_
ción. No debe confundirse con los de "Habilitación de
Interrupciones" en los dispositivos de entrada y salida.
Muchas de las funciones de código 77 se relacionan con
elementos de la unidad central de proceso, de manera que
la palabra mnemotécnica que se les añade es CPU.
NIOS CPU - (INTEN: Interrupt Enable) - Habilitación de
Interrupción.

0 1 1 0 0 0 0 0 0 '1 l i l i l í
~ O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Poner a 1 el flip-flop de Interrupción para permitir al

procesador responder a pedidos de interrupción.


- 35 -

NIOC CPU - (INTDS: Interrupt Disable) - Inhabilitación de

Interrupción.

0 1 1 0 0 0 0 0 1 0 l i l i l í
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Poner a cero el flip-flop de Interrupción -para evitar que
el procesador responda a pedidos de interrupción.
DÍA -, CPU -(READS: Read Switches)

O l í AC 0 0 1 F l i l i l í

O 1 2 3 4 5 6 7 8 . 9 10 11 12 13 14 15
Poner en el acumulador AC el contenido de los conmutadores
de datos de la consola y ejecutar la función especificada
por F.
DIB -, CPU - (INTA: Interrupt Acknowledge) - Pedido de In-
terrupción -
recibido.

O l í AC O l í F l i l i l í

O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Poner en los -bits 10-15 del acumulador AC el código del -
primer dispositivo que pida una interrupción y ejecute la
función especificada por F.
DOB -, CPU - (MSKO: Mask Out) - Control de Interrupción -
por medio de "máscara".
- 36 -

O l í AC 1 0 0 F l i l i l í

0 1 2 3 5 6 7 9 10 11 12 13 14 15

Poner a 1 los flip-flop's de Habilitación de Interrupcio-


nes de ciertos dispositivos, de acuerdo a la máscara en -
AC. Para este propósito, cada dispositivo se conecta a u
na línea'de datos dada, y su flip-f.lop se pone a 1 o a O
según su correspondiente bit en la máscara sea 1 o O. E-
jecutar la func'ión especificada por F.
DIC O, CPU - (IORST : I/O Reset) - Borrar dispositivos de

E/S

0 1 1 0 0 1 0 1 F l i l i l í

O 1 7 9 10 11 12 13 14 15

Poner a cero todos los flip-flop's de control, incluyendo

"Ocupado", "Terminado" y "Habilitación de Interrupciones"

en todos los dispositivos. Ejecutar la función especifica^

da por F.

DOC O, CPU - (HALT : Halt) - Alto

0 1 1 0 0 1 1 0 F l i l i l í

7 9 10 11 12 13 14 15

Ejecutar la función especificada por F y luego detener el


procesador. Cuando el procesador para, se indica la últi_
ma instrucción ejecutada.
- 37 -

SKPBN CPU - (Skip if Interrupt On is Nonzero) - Saltar si


el flip-flop de Interrupciones no es cero.

0 1 1 0 0 1 1 1 0 0 l i l i l í
O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Saltar la próxima instrucción en secuencia si el flip-
flop de Interrupciones es 1.
SKPBZ CPU - (Skip if Interrupt On is Zero) - Saltar si el
flip-flop de Interrupciones es cero.

0 1 1 0 0 1 1 1 0 1 1 1.1 1 1 1
O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Saltar la próxima instrucción en secuencia si el flip-
flop de Interrupciones es 0.
SKPDN CPU - (Skip if Power Failure is Nonzero) - Saltar
si el flip-flop que indica falla de potencia
no es cero.

0 1 1 0 0 1 1 1 1 0 l i l i l í
O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Saltar la próxima instrucción en secuencia si el flip-
flop que indica falla de la fuente de poder es 1.
SKPDZ CPU - (Skip if Power Failure is Zero) - Saltar si
el flip-flop de fuente es cero.

0 1 1 0 0 1 1 1 1 1 l i l i l í
O 1 9 10 11 12 13 14 15

m
- 38 - I


Saltar la siguiente instrucción en secuencia si el flip-

flop que indica falla de la fuenle de poder es cero.

5£fi
^fc-

*
*

-^
39

5.- UNIDADES DE MEMORIA Y ENTRADA Y SALIDA VISTAS DESDE

EL CONTROL

Unidad de Memoria:

Barra de AI-AIS
Direcciones MEMORIA

CICLO
Señales de R
tipo de W
MDR
Ciclo
ACT
Aceptación
Reloj de MDR CKMDR
EÍ26S12)M
TRANSCEPTOR
Control de
Transceptor BO-B15

Barra de Datos
Figura 1.5-1

Interfase de Entrada y Salida:.


La discontinuidad en el trabajo de la interfase propues-
to para otra tesis, impidió fijar con precisión las seña_
les de decodificación necesarias en los dispositivos de
entrada y salida; sin embargo, se indican las señales ne_
cesarias desde el punto de vista del control.
- 40 -

F.F. de Falla FP
de Fuente —— 'FUENTE

Barra de A10-A15
Direcciones"

S E L E C T O R DE
DISPOSITIVO

F.F.
Ocupado
CONTROL
F.F.
Terminado
F.F's BUFFERS
Señales de
Decodif. OCUPADO
Pedido de • TERMINADO
INTR
Interrupciórr HABILITACIÓN
Aviso de QT DE INT.
DI —
CKE/S
Reloj de DISPOSITIVO
Buffers
Barra de BO-B15
Datos

Figura 1.5-2

Todas y cada una de las señales dibujadas se explican en


detalle en los capítulos V y VII.
- 41 -

6.- CRITERIOS DE DISEÑO

El diseño circuital de una computadora nace fundamental -


mente de los siguientes aspectos:
1.- Características generales impuestas a la máquina como
costo y velocidad de operación; y
2.- Conjunto de instrucciones a implementarse.
Estas consideraciones son las que determinan las técnicas
de diseño más convenientes, así como la selección circui-
tal más adecuada.
Todo el trabajo esta encaminado, en este caso, a conseguir
un dispositivo sumamente rápido. La modalidad de diseño
adoptada en el control es el sistema convencional o ca -
bleado con una arquitectura en poliducto (véase el capitu_
lo IV). Si bien pueden encontrarse UCP's (Unidades Cen -
trales de Proceso) integradas en un solo chip, éstas no -
alcanzan la velocidad del sistema que aquí se presenta.
Todos los integrados empleados en el control son circui -
tos TTL (Transistor Transistor Logic) SSI (Small Scale
Integration) y MSI (Médium Scale Integration).
En general, la selección circuital radica en los siguien-
tes aspectos: funcionalidad para el fin propuesto, veloc.i
dad de respuesta aceptable, costo y posibilidad de conse-
guirlos .
Las características dinámicas de los circuitos selecciona,
dos tanto para la unidad aritmética como para la unidad -
de memoria, permiten establecer el tiempo que tomaría rea.
- 42

lizar una transferencia entre registros, asi como el emple


ado en una referencia a la memoria.

Es importante, como se verá luego, sincronizar en el tiem-


po el trabajo desarrollado por la memoria y la unidad arit

mética y lógica.
Una vez revisadas las intrucciones, el diagrama de bloques
presentado anteriormente evidencia su funcionalidad para -

las transferencias y control de resultados al ejecutarse -

un programa.
Planteado el esquema circuital de la unidad aritmética, se

puede establecer con mayor detalle las transferencias y -


realizar diagramas de tiempo más precisos. Esto posibili-
ta la determinación exacta del número de fases de reloj a
emplearse, así como de su frecuencia.

El diseño por bloques ayuda a trabajar sobre una área espe_


clfica con mayor comodidad, pero siempre observando requi-
sitos previos y sin olvidar que las fases posteriores po -

drían introducir cambios al diseño primario.


Y o i o oi
a v a l a n vi ia a
- 43 -

CAPITULO II

DESCRIPCIÓN DE LA UNIDAD ARITMÉTICA Y LÓGICA

1.- FUNCIÓN

La Unidad Aritmética y Lógica (UAL), como su nombre lo in-

dica, desarrolla las operaciones aritméticas y lógicas so_

bre los datos transferidos al procesador desde la memoria


L

o los dispositivos de entrada y salida.

Mueve un dato entre dos registros, suma, complementa, res^

ta, realiza el producto lógico entre dos operandos, etc.


Tiene capacidad de rotar un resultado en un bit a la dere_

cha o a la izquierda incluyendo al link, intercambiar sus

mitades (bytes) y probar si el resultado y/o el link son


cero para posibilitar el salto de la siguiente instruc -

ción en secuencia.

Posee cuatro registros acumuladores que pueden ser la -

fuente de los operandos o el destino de los resultados.

Incluye además, el registro Acumulador de Instrucciones y

el Contador de Programa.
Genera las direcciones de las localidades empleadas en la

memoria comunicándose con ésta a través de la barra de d_i

recciones. Tiene acceso a la barra de datos, la que le -

transmite los operandos sacados de memoria y le posibili-

ta el envío de datos hacia la misma memoria o hacia los -


registros de los dispositivos de Entrada y Salida.
44 -

2.- REPRESENTACIÓN NUMÉRICA

La selección del sistema de numeración aplicable a una com


putadora depende 'de los componentes físicos disponibles al
diseñador.
Se pretende, obviamente, trabajar con un sistema de fácil
manejo y que posibilite una implementación circuital econó_
mica.
En general, un sistema dé base pequeña tiene la ventaja de
su simplicidad en cuanto a las tablas de suma y multiplica^
ción, permitiendo memorizar relativamente pocas reglas pa-
ra el desarrollo de estas operaciones básicas. Sin embar-
go, se necesitan de muchos más dígitos para representar u-
na cantidad dada, que utilizando un sistema de base grande.
Entonces, escoger un sistema de numeración apropiado no
constituye algo demasiado simple.
Un dispositivo electrónico capaz de asumir varios estados-
estables, por ejemplo 10 (para sistema decimal), presenta-
rá problemas no solamente de diseño; 'sino también de pre -
ció y volumen, por lo cual, un sistema de base pequeño, en
particular el binario (base 2), se ha encontrado como el -
más económico y apropiado para su aplicación en computado-
ras .
La unidad básica de información con que trabaja una compu-
tadora es el bit. Cualquier aparato que pueda estar en -
dos estados diferentes, tal como un núcleo de ferrita o un
transistor, puede almacenar un bit.
45 -

Aritmética Binaria
Un número entero N puede ser representado en el sistema
binario de la siguiente forma:

n n-1 2 1 0
N= a 2 + a 2 + + a 2 -fa2 + a 2
n n - 1 2 1 0

lo que es lo mismo que:

(...( a 2 + a- )2 + a ) 2 + . . .
n n-1 n-2
a )2 + a ) 2 + a
2 1 0

donde los coeficientes a , a , . . . a , a son los dlgi_


n n-1 1 O
tos de N.
De igual forma, una fracción propia F puede darse como:

-1 -2 -n
F= a 2 + a 2 + ... + a 2 , o también:
-1 -2 -n

-1 -1 -1 -1
F~ 2 (a +2 (a -f-2 ( a .+ . . . + 2 (a )))-.
--1 -2 -3 -n

donde similarmente a , a , . . . a- constituyen los díg;L


-1 -2 -n .
tos de F.
Por cuanto estamos más familiarizados con el sistema deci
mal, -resulta útil considerar ciertas reglas simples de -
transformación entre el sistema binario y el decimal. Ana
lizando la forma de representación de un número en el sis
- 46 -

tema binario, resulta fácil justificar los métodos de con


versión que a continuación se exponen:
Conversión de un Número Entero Decimal a Binario.- Para
conver_
tir un número entero decimal a binario, se puede dividir
sucesivamente tal número por dos, hasta conseguir un co -
V

ciente cero. El número binario equivalente estará forma-


do de los residuos/ siendo el último residuo el bit más -
significante; Ejemplo:
26 — N
10 2
Cocientes Residuos
26

13 O LSD
6 1
3 O
1 1
O 1 MSD

N = 11010
2
Conversión de un Entero Binario a Decimal.- Una forma fá-
cil de conver
tir un número entero binario a su equivalente decimal,con
siste en doblar el dígito más significante si el próximo
es cero, o doblarlo y añadirlo 1 si el próximo dígito es
un 1. Este resultado es nuevamente doblado o doblado y -
sumado 1 dependiendo del valor del próximo dígito en or -
den descendente; continuando este proceso hasta que el di
- 47 -

gito menos significante ha sido desarrollado; Ejemplo:


11010 — N
2 10

Dígitos Binarios Resultado


MSD 1
1 — ( 1x2) + 1 = 3
0 — ( 3x2) + 0 = 6
1 —. ( 6x2) + 1 =13
LSD O — (13x2) + 0 = 2 6
N =26
10
Conversión de una Fracción Decimal a Binaria.- Como para
convertir
un entero decimal a su equivalente binario se utilizó el
método de divisiones sucesivas por 2; para convertir una
fracción decimal se puede proceder realizando el produc-
to por 2 de la fracción y sucesivamente ir doblando los
resultados obtenidos sin considerar su parte entera.
Este proceso debe continuarse hasta que la parte fraccic}
naria de un producto sea cero. La fracción binaria es -
entonces la parte entera de cada producto sucesivamente,
a partir del primero que forma el.bit más significante -
de la fracción; Ejemplo:
0.8125
10
Producto Parte Entera
0.8125
1.6250 1 MSD
pasa...
- 48

viene...
1.2500' 1
0.5000 - O
1.0000 1 LSD
F = 0.1101
2
Habrán casos en los que no se va a llegar pronto al térmi-
no del proceso, entonces, debe culminarse de acuerdo al nú.
mero máximo de dígitos con que se trabaje, aunque en ese -
caso la fracción binaria no será exactamente igual a la
fracción decimal.
Conversión de una Fracción Binaria a Decimal.- Para este -
propósito -
puede precederse de la siguiente forma:
El dígito binario menos significante es dividido por 2 si
el próximo dígito más significante es cero, o dividido por
2 y sumado uno si el próximo dígito más significante es u-
no. Este primer resultado es nuevamente dividido por 2 y
dependiendo del Valor del próximo bit es sumado o no un u-
no. Este proceso continúa hasta el número a la izquierda
del punto binario que efectúa el resultado' final; Ejemplo:
0.1101 — 7T
2 10
Dígitos Binarios Resultado
LSD 1
0 — (1. 2) + O = 0.5

1 — (0.5 2) -I- 1 = 1.25

1 — (1.25 2) + 1 = 1.625

pasa...
- 49 -

viene . . .
O — (1:625 2} = 0.8125

F = 0.8125
10

Conversión entre Números Mixtos. ^Euando se trabaja con nú


|; "
íberos que tienen una par_

te entera y otra fraccionaria (mJSJgjijbs) , pueden utilizarse

los métodos anteriores considera^^ separadamente cada par_

te y combinando sus resultados; |ij^Jnplo:

528.27
10

528

jB-0-27

264 0 'Hlo.54 0
^ml
132 0 •11. 08 1
H
66 0 «0.16 0
:4fr
33 o B'o .32 o
16 1 ^^^fco.64 0
• ^^^K?
-<^^K -
8 0 Mil. 28 1
-•^M
4 0 r«0.56 0
:^m '
2

1
I
I
'0
1 I
N = 1000010000 :ftF = 0.0100010 + ...
X = 1000010000 + 0.0100010 + . - •
2

Operaciones Aritméticas ^ft.

Las reglas para las operaciones JíHÜsicas en sistema bina-


- 50 -

rio se resumen en las siguientes tablas:


Suma Resta"'
Resultado Carry Resultado Borrow
0 + 0 = 0 O 0 - 0 = 0 O
0 + 1=1 O 0 - 1 = 1 1
1 + 0 = 1 O 1 - 0 = 1 O
1 + 1=0 1 1 - 1 = 0 O

Multiplicación División
0.0=0 0:1=0
0.1 = 0 1 :1 = 1
1.0 = O
1.1 = 1

Las limitaciones circuitales en una computadora no permi-


ten mucha flexibilidad en la realización de las distintas
operaciones.
Los dispositivos disponibles para este uso son sumadores y
substractores, siendo el sumador el más utilizado. El dis_
poner sólo de un sumador no limita la capacidad aritmética
de la unidad ya que la resta, multiplicación y división -
pueden desarrollarse en base a sumas y desplazamientos-. -
La resta por ejemplo, es desarrollada por la suma de com-
plementos .
Una propiedad fundamental de la aritmética en un computa-
dor es su trato con números de extensión finita, básica -
mente es una aritmética de enteros finitos. Esto tiene
51 -

grandes implicaciones teóricas y prácticas. Significa


que un resultado debe analizarse cuidadosamente en su pre_

cisión ya que resulta muy común asumirlo de precisión in-

finita o al menos indefinida pero aceptable. También sic[


nifica que una fracción debe representarse como un entero
y los números mixtos como un par de enteros. Computado-

ras más sofisticadas incluyen la posibilidad de trabajar


con números mixtos en notación de punto flotante.

Nuestra máquina quedará inicialmente disponible para tra-


bajar en notación de punto fijo. Cuando se opera sobre -
números enteros, el punto binario deberá considerarse lo-
calizado a la derecha del bit menos significante, mien
tras que si se trata con fracciones propias, el punto bi-
nario deberá considerarse localizado luego del bit del
signo.

Representación de Números Negativos

Para desarrollar operaciones lógicas, los circuitos inte£

pretan cada operando como una palabra lógica. Para opera_

ciones aritméticas los operandos son tratados como núme -


ros sin. signo de 16 bits. El programa, sin embargo, pue-
de también tratarlos como números con signo en notación -
de complemento dé dos.
Existen varias representaciones comunmente usadas en arit_
mética binaria. Los números positivos son los mismos en
cualquier representación, pero los números negativos di -
fieren.
- 52 -

Representación de Signo y Magnitud.- En este sistema, el


bit del extremo ±z-
guierdo de una palabra se utiliza para indicar el signo,
y, es O para números positivos y 1 para negativos. Es -
decir que los números de igual módulo sólo difieren en -
el bit de signo. Ejemplo:
Signo

0 1 1 0 1 +13

1 1 1 0 1 -13

Para desarrollar la suma o la resta en esta notación, es


necesario precisar en primer lugar el signo de los ope -
randos para luego efectuar la acción correspondiente.
En general, puede decirse que lo que se hace es sumar
los números conservando el bit del signo cuando poseen -
signos iguales, o restar el de menor valor absoluto del
de mayor valor absoluto, cuando sus signos difieren, a -
signando al resultado el signo del número de mayor valor
absoluto. Todo este proceso resulta molestoso realizar-
lo con circuitos y es por ello que esta representación -
es raramente utilizada para la suma y la resta.

Representación en Complemento de 1.- En notación de com-


plemento de 1, los
números negativos constituyen el inverso bit por bit de
su equivalente positivo.
- 53 - I

También en este caso el bit más significativo representa


el signo.
Si X es un número de n dígitos, ejfi sistema binario se tie_

ne:

X + X* donde X* es el COMPLEMENTO DE RAÍZ de X y


n
.X* = 2 - X
X*- 1 = 2 - X - 1 donde X* 1 es el COMPLEMENTO DE
RAÍZ DISMINUIDO.

El "Complemento de Raíz Disminuido" de un número, define


su representación en complementa de 1, por lo que, el nú
mero - X estará dado por:

n -
2 - X - 1 = 11111 - X = X
n l's
En esta notación, el cero tiene los representaciones, todo
ceros o todo unos.
Para desarrollar una resta, el >mplemento de uno del sus
traendo debe sumarse al minuendcS, efectuando además la su
í
ID
ma del carry, si lo hay, al bit pnenos significante del re_
sultado final ( end, around car^y). El bit del signo de-
be también incluirse en la suma.!
El resultado de una operación ajgiitmetica, si es negativo,
estará expresado en este caso eaá notación de complemento
de uno. I
Cuando se suman dos números del mismo signo, el resultado
- 54 - ;

final puede exceder la capacidad de la computadora, en tal


caso, decimos qué se ha producido un sobreflujo (overflow)
Si se suman números de diferente signo, la posibilidad de-
sobreflujo no existe porgue la suma generada es igual a la
diferencia en valor absoluto de las dos cantidades.
La condición de sobreflujo queda indicada cuando el bit de
signo en la respuesta difiere del bit de signo de los su -
mandos. Ejemplos:

+ 14
r •bit del signo
+ 14 001110 14 110001
+ 13 + 29 011101 13 110010
+ 27 011011 43 101011 100011
sobreflujo -*
- 27 100100

+ 14 001110 - 14 110001
- 13 110010 + 13 001101
000000 - 1 111110

000001

Representación en Complemento de 2.- Un número negativo en


notación de compleme.n
to de 2, se forma fácilmente tomando su contraparte positiva
y sustrayéndole de 2 .
2
55

Una regla muy simple consiste en encontrar el complemento


de 1 del correspondiente número positivo y sumar 1 al bit
menos significante. Como en la notación anterior, el bit
más significante representa el signo.
El complemento de 2 de un número es el llamado "Complemeri
to de Raíz", por lo que, el número -X estará dado en este
caso por:
n _
2 - X = 00000 - X = X + 1
n O's
Esta forma de representación es la más común ya que no pr_e
senta estados ambiguos para el cero como las notaciones -
anteriores.
En nuestro caso, como una palabra tiene 16 bits en los
que se incluye el bit del signo, los valores numéricos re_
presentables varían en el rango de:
15 15
+ (2 -1) a - (2 ) -- de +32767 a -32768
10 10
Como ya dijimos antes, si los operandos se consideran nú-
meros sin signo, podrán variar en el rango de:
16
O a (2 -1) — de O a 65535
10
En el caso de operar sobre fracciones propias con signo,
el rango representable por una palabra es de:
-15
-1 a (1-2 )
En esta notación, al igual que en la de complemento de 1,
el resultado final de una operación puede causar sobreflu_
jo. La condición de sobreflujo queda determinada como en
56 -

el caso anterior.
La suma en complemento de 2 incluj-e al bit del signo, y -

el carry fuera de éste se ignora. |-


Si los operandos son positivos, 1^ suma es desarrollada -
de la misma manera en todas las representaciones. En el
í

caso de una resta, el complemento| de 1 del sustraendo es


f
sumado al minuendo, añadiéndole 1, al bit menos significari
te. Un resultado negativo quedarla expresado en notación
de complemento de 2. Ejemplos

- 14 110010 - 14 110010

- -13 110011 • + 13' 001101


27 100101 — 1 lililí
'

+ 14 001110 - 14? 110010

- 13 110011 -(- 13| 001100

+ 1 000001 1
/
- 1! lililí

+ 13 001101

(+ 14) 110001

1
i lililí
- 57 -

3.- LA SUMA BINARIA Y EL PRINCIPIO DE LLEVADA ANTICIPADA

En este punto podemos considerar cómo los circuitos lógi-

cos pueden combinarse para realizar operaciones aritméti-

cas elementales. A continuación se incluye una tabla de-

verdad que describe la suma de números binarios de una ci_

fra. Las entradas al sumador son las cifras binarias A y

B. Las salidas son: la cifra de suma S y la de llevada C

A B S C A~B A-B

0 0 0 0 0 í 1 : 0 1 1
^ X
0 0 \ •- 1X 0

0 1 1 0

1 0 1 0 S = AB + AB C = AB

1 1 0 1 S = A © B

Los circuitos descritos en las ecuaciones anteriores de -

finen un "medio-sumador". En el caso más general de su -

mar números de varias cifras binarias, es necesario pro -

veer al medio-sumador una entrada:de acarreo Cn+1 debida-

ai bit de llevada de una etapa previa (menos significante)

A ese nuevo sumador se lo conoce como "sumador-completo"

y las ecuaciones, que lo describen son:


An-Bn
An Bn Cn+1 Sn Cn " N Cn+1
0 ( 1/ t 0 ( 1
, i
0 0 0 0 0 ' \ " \
/
0 í 0
0 0 1 1 0

0 1 0 1 0 Sn = AnBnCn+1 + AnBnCn+1 +

O l í 0 1 AnBnCn+1 + AnBnCn+1

il
- 58 -

viene. . .

1 0 0 1 0 Sn = An 0 Bn © Cn+1

1 An-Bn
1 0 1 0

1 1 0 0 1
0 0

0 í "l
IM
0

Nr
Cn+1

1 1 1 1 1
Cn = AnBn + BnCn+1 + AnCn+1

Existen dos modos generales para sumar números binarios.

Una forma es usar un sumador para cada bit. La otra es

usar un solo sumador/ en serie, y procesar los bits en -

secuencia. Cuando se usa un sumador para cada cifra, el

conjunto se denomina sumador en paralelo y las entradas-

se dan todas al mismo tiempo.

Para el sumador en serie se necesita un modo especial de

entrega de las cifras binarias (secuencial). Igualmente

ocurre con las cifras de la suma resultante. Para imple_

mentar estos requisitos se emplean registros de desplaza^

miento.

La velocidad de ejecución en una suma es un factor impor

tantísimo dentro del comportamientoi general de un circui^

to para aritmética y lógica. Evidentemente, el procesa-

miento simultáneo de varios bits sera la mejor manera de

implementar un sumador cuando se desea obtener respues -

tas de tiempo muy rápidas.

Aún con procesamiento paralelo, los tiempos de ejecución

para palabras de mediana longitud resultan inaceptables,

debido a que los cálculos de una operación aritmética pa


ra un bit cualquiera no solamente depende de su posición-
sino también de los bits menos significantes. Para com -
pletar una suma, es necesario que el carry se propague
desde la posición menos significante a la más significan-
te.
Las ecuaciones anteriores escritas como suma de productos
describen dos niveles de compuertas (AND-OR) entre la en-

trada y la salida. Si asumimos la demora de una compuerta

como At, entonces1 / la demora por etapa será 2At. Debemos


recordar que cada sumador completo no desarrollará su re-
sultado sino hasta 2 At después de recibir el carry de la-
etapa previa. Cuando los dos sumandos son iguales, el c¿i
rry de salida es independiente del de la entrada previa.

El peor de los casos ocurre cuando los sumandos difieren,


ya que, en ese caso, el carry de salida se obtiene 2At -

después de la llegada del carry de entrada. De esta mane_


ra, para un sumador de n bits, el tiempo de retardo esta-

rá dado en el peor de los casos por 2nAt, siendo una demo_


ra intolerable en el procesamiento de palabras de longi -

tud más o menos grande.


Existen varias técnicas para acelerar el procesamiento de
una suma: llevada anticipada (carry look-ahead), suma a-
sincrónica y suma condicional. Sólo se expondrá el prin-
cipio de llevada anticipada por cuanto es el empleado en-
el generador de funciones de nuestra unidad aritmética y-

lógica.
- 60

Llevada Anticipada (Carry Look-Ahead)

Conforme se explica anteriormente, el carry de salida de-


un sumador viene dado por:
Cn = AnBn + AnCn+1 + BnCn+1
que puede ser escrito como:
Cn = AnBn + Cn+1(An + Bn)
Si definimos dos variables auxiliares tenemos:
Cn = Xn + Cn+lYn
donde: Xn = AnBn y Yn = An + Bn
sustituyendo Cn+1 como función de la etapa anterior y és^-
ta, por su anterior, y siguiendo este proceso sucesivamen_
te: Cn = Xn + Xn+lYn + Xn+2YnYn+l + . . . .
Se puede pensar, entonces, en generar el carry anticipada^
mente en base a las funciones auxiliares Xn y Yn. Sin em
bargo, conforme se incrementa la longitud de una palabra,
la función carry se vuelve más y más compleja, tornándose
impráctica por la imposibilidad de conseguir compuertas -
con un elevado número de entradas ' (fan-in) y por el gran-
número que de ellas se ocuparla.
Para obviar este problema, se puede considerar el asunto-
desde otro punto de vista. Cuando las entradas An y Bn -
de un sumador son iguales a cero, entonces la salida del-
carry es Cn = O sin importar el valor de Cn+1. Similar -
mente, si An = Bn = 1 , entonces Cn = 1 sin que interese -
el valor de Cn+1. Si An ¿ Bn, entonces Cn adopta el va -
- 61 --

lor de Cn+1. Se puede, en este caso, ampliar el concepto


de las funciones auxiliares definiendo ahora G, como un -
carry generado en el sumador y P, como un carry propagado
desde la etapa previa. Lo dicho se muestra en la siguien
te tabla:
An Bn Cn

0 0 O
0 1 Cn+1 Carry Propagado (Pn)
1 0 Cn+1 Carry Propagado (Pn)
1 1 1 Carry Generado (Gn)

Los mapas de Karnaugh que siguen establecen otras relacip_


nes para Gn, Pn, y Cn:

AnBn 0 0 0 Gn = AnBn
©

AnBn 0 ( 1] 0
X ^
(T) Pn = Añ~Bn + AnBn

AnBn Pn = An © Bn
Cn+1 - —-
0 0 0 Cn = AnBn + AnBnCn+1 + AnBnCn+1
1
0 (i;! i (T) Cn = AnBn + Cn+1 (AnBn + AnBn)
Cn = Gn + Cn+lPn
Es posible además, desarrollar para la suma:
Sn = Pn ® Cn+1
Dividiendo una palabra en bloques de 4 bits, las funciones
Cn pueden ser definidas para el bloque completo de la si -
guíente manera:
En el caso del bloque menos significante en una palabra de

16 bits:
- 62 -

C15 = G15 + P15C16 (C16 = Control)


C14 = G14 + P14C15
= G14 + P14G15 + P14P15C16
C13 = G13 + P13C14
= G13 -t- P13G14 + P13P14G15 + P13P14P15C16
Estas ecuaciones implementadas en circuitos forman una u-
nidad de carry look-ahead (figura 2.3-1).
Se puede escribir con facilidad las ecuaciones para los •-
bits más significantes, pero nuevamente habrá la dificul-
tad del excesivo fan-in de las compuertas.
La división de una palabra en varios grupos posibilita la
agrupación de los términos en las ecuaciones, disminuyen-
do el problema del excesivo número de entradas, pero au -
mentando los niveles de carry look-ahead. Asi por ejem -
pío para el carry de salida del bloque en estudio tenemos:
C12 = G12 + P12C13
= G12 + P12G13 + P12P13G14 + P12P13P14G15 +
P12P13P14P15C16
Definiendo GG3 como un grupo generado desde el bloque me-
nos significante y GP3 como un grupo propagado en el mis-
mo , tenemos:
C12 = GC3 - GG3 + GC4GP3 ; donde:
GG3 = G12 + P12G13 -f- P12P13G14 + P12P13P14G15
GP3 = P12P13P14P15
GC4 = C16
de manera similar1- puede establecerse:
74)

C13 P12 G12 C14 P13 G13 C15 P14 G14 C16 P15 G15
t

GG3.

Control
J

f
L

GP3

Figura 2.3-1
- 64 -

C8 = GC2 = GG2 + GC3GP2

C4 = GC1 = GG1 + GC2GP1


CO = GCO = GGO + GC1GPO

Un diagrama completo de un sumador de 16 bits con las uni-

dades de llevada anticipada se muestra en la figura 2.3-2.

Para hacer un estudio de las demoras introducidas con este

método nos referiremos al peor caso posible. Un carry ge-

nerado en la posición menos significante G15 tendrá una de_

mora de 2At en el sumador, propagado a través de la prime-


ra unidad de carry look-ahead para formar GG3 experimenta-
rá otra demora de 2At ya que todas las ecuaciones son de -
segundo orden. La generación de GC1 a través de la segun-
da unidad de carry look-ahead introduce una demora adicio-

nal de 2At.

El paso por el primer nivel de carry look-ahead 2At y por


el sumador más significante 2At, hacen una demora total -

de 10At> que comparada con los 32At de un sumador conven-


cional representa un aumento considerable en la velocidad.

Para palabras de mayor longitud se procede en forma simi-

lar aumentando los niveles de llevada anticipada.


Mientras mayor es la longitud de la palabra, mayor será -
el ahorro del tiempo de ejecución comparado con un suma -
dor convencional (ripple-carry).
2506 i
S A E1 s A B s A B s A B
i
i| || 1 i
1 | 1 • J (
Jl 1

S PG S PG s PG S PG
J I i i i . í i ' 1

]L
c P G c P G C P G c P G
i 1 1 ' 1 • i < t i , J ,
/ T
'
0-3 M / 8 -11 12-15
CLAO ._, CLA1 ri A 9 ^ n A^ CONTROL
e

L._ _ _ . _
GPO GGO GC1 GP1 GG1 GC2 GP2 GG2 GC3 GP3 GG3

I i
•• •• 1 , 1 1

1 P3 G3 Cn*z P2 G2 Cn+y P1 G1 Cn+x PO GO


G

bCLA
_ GC4
P

74162

Figura 2.3-2
66 -

4.- CIRCUITOS UTILIZADOS - CARACTERÍSTICAS PRINCIPALES


DE FUNCIONAMIENTO

La disposición por bloques dada a la Unidad Aritmética y


Lógica se muestra en la figura 2.4-1.
A continuación se presenta la descripción funcional de
los circuitos utilizados en los diferentes bloques, con el
fin de analizar y verificar su adecuada selección, así co-
mo para entender posteriormente su control. Característi-
cas adicionales, como inmunidad al ruido, capacidad de ex-
citación, tiempo de respuesta y niveles de voltaje y co -
rriente pueden estudiarse con mayor detalle en las hojas -
de información técnica de cada circuito.
TrO'DBceptor de Barra

BARRA DE DATOS

E I B Z
_Q _Q Q_ O
80 B1 B2 83 L L' H L
20
A LOS 21
REGISTROS 22 Am 26S12 L H L H
23
-10 II 12 13 H X Y y

H = nivel alto
DESDE LA ENTRADA
BARRA DE DE L ~ nivel bajo
DIRECCIONES CONTROL
X = condición "no importa"
Y = voltaje de barra
Figura 2.4-2
BARRA DE DATOS

TRANSCEPTOR
26S12 - 4

REGISTROS

74172-8

1.1

G E N E R A D O R DE FUNCIONES

2506-4

DESPLAZADOR
9309-8

S E N S O R DE
RESULTADOS

Figura 2.4-1

ae veraaa™
Los datos en la barra pasan invertidos a los registros; -
por lo que, para evitar niveles invertidos, las señales -
en la barra de datos se pondrán siempre complementadas.
La entrada de control puede habilitar el paso de las seña
les en la barra de direcciones hacia la barra de datos -
mientras permanece en nivel bajo (cero lógico). También
en este caso, last direcciones estarán invertidas en la ba

r r a d e datos. ,:
Como cada circuito presenta la posibilidad de trabajar -
con 4 bits, para una palabra completa de datos o una ins-
trucción fue necesario utilizar 4fde ellos.
Se utilizó el circuito Am26S12 que: presenta 4 excitadores
de barra de alta velocidad con salidas de colector abier-
to y cuatro receptores de barra también de alta velocidad.
La figura 2.4-2 muestra el circuito mencionado con su ta-

bla de verdad para el flujo de datos en dos direcciones.


Los datos en la barra pasan invertidos a los registros; -

por lo que, para evitar niveles invertidos, las señales -

en la barra de datos se pondrán siempre complementadas.


La entrada de control puede habilitar el paso de las señci

les en la barra de direcciones hacia la barra de datos -


mientras permanece en nivel bajo ('cero lógico) . También

en este caso, las direcciones estarán invertidas en la b_a

rra de datos.
Como cada circuito presenta la posibilidad de trabajar -

con 4 bits, para una palabra completa de datos o una ins-


trucción fue necesario utilizar 4 de ellos.
Registros ]
Los registros necesarios para las diferentes fases de eje_
cución son los siguientes:

El Acumulador de Instrucciones (ACI).- Sirve para obtener


de una instrucción
con referencia a memoria sus últimos 8 bits (desplazamieri
to) para el cálculo de la dirección efectiva.
El Contador de Programa (CP) .- Entrega la dirección 'de la
instrucción en proceso, pp_
sibilitando direccionar la localidad de la siguiente ins-
trucción a ejecutarse; bien sea incrementándose en uno ca
- 69 -

da ciclo de traída o recibiendo la dirección efectiva -


durante una instrucción de salto.. Además, sirve para cal

cular una "dirección relativa" tratándose de una instruc-


ción con referencia a memoria.

Cuatro Registros Acumuladores (ACO-AC1-AC2-AC3).- Pueden

utilizar
se como fuente o destino de operandos en una instrucción -
aritmética.
AC2 y AC3 constituyen los Registros índice en el cálculo-
de la dirección efectiva; pudiendo AC3 emplearse también-
como depósito de una dirección dé retorno en una instruc-
ción de salto a subrutina.

Estos registros se implementaron con 8 circuitos SN74172,

que son re tenedor es de ocho palabras de 2 bits cada uno..

Cada circuito está organizado en tal forma, que su opera-


ción de lectura y escritura puede ser desarrollada inde -

pendientemente sobre dos palabras, permitiendo una acción


simultánea para la lectura y escritura. Presenta dos sec_

ciones dispuestas como se muestra en la figura 2v4^3.

La sección 1 permite la escritura de datos en cualquiera-


de las ocho localizaciones posibles y la lectura simultá-
nea de las mismas.
La sección 2 por tener una sola forma de selección, perrni
te la lectura o escritura de cualquier localidad separada_

mente, o la escritura y simultáneamente la lectura de una


misma palabra.
- 70 -

Cuando las entradas de habilitación de escritura (WE) están


con nivel bajo, se realiza la escritura de los datos presen
tes a la entrada, con una transición positiva del reloj, so
bre el registro seleccionado. Si las entradas de habilita-
ción de lectura (RE) están bajas, las salidas asumen los ni_
veles de los datos guardados en el registro seleccionado.
Cuando RE está alto, las salidas asociadas permanecen en es_
tado de alta impedancia. El reloj es común a las dos sec -
ciones.

Selección de Reloj Selección de


Registro 1WQ 1RO Registro
para escritura ^~ IR] para lectura
1W2 1R2
Habilitación WE1 RE1 Habilitación
de escritura de lectura

IDA 1QA
Entradas "A"
Desplazador 1DB IQB G. Funciones
—»
ENTRADA SALIDA
DE SECCIÓN 1 DE
DATOS DATOS
SECCIÓN 2

2DA 20A Entradas "B"


- G. Funciones
2DB 20B

Habilitación WE2-
Habilitación
RE2
de escritura de lectura
[ 2W/RO
.2W/R1
2W/R2

Selección de
Registro para
Figura 2 . 4 - 3 lectura y escritura
71

Selector
El bloque selector sirve para ponjer ceros en las entradas
"A" del generador de funciones cujando se procesan ciertas

instrucciones aritméticas o se attL'ende una interrupción,


posibilita el paso del bit del sijgno a los ocho bits más
significantes en caso de realizarse el cálculo de una di-
: [
rección relativa o con registro índice y por último, per-
í
mite el paso directo de datos desde el trartsceptor de ba -
rra al generador de funciones en paso de una dirección iii
directa o -con una instrucción de modificación de memoria.
Todo a las entradas "A" del generador de funciones por -
consideraciones de decodificaciónjque se explicarán más -

tarde. ¡
Para este propósito se utilizó el:'circuito SN74S257 cuyas
principales características de funcionamiento se manifie^

tan en la tabla de vardad de la figura 2.4-4.


i
Cada circuito es un cuádruple selector de 2 a 1 y se em -
i
plearon 4 para cubrir una palabra\.

TR&NSCEPTOR CEROS Entradas Salida


DE BARRA SIGNO ¿ontrol Selector A B Y

,, H X X X Z
1A 2A 3A ¿A 1B 20 3B
L L L X L
OE:
i' L L H X H
CONTROL 74S257 L H X L L
s
: L H X H H
SELECTOR 1Y 2Y 3Y 4Y

L = nivel bajo
H = nivel alto
A LAS ENTRADAS
"A" G. FUNCIONES X = condición "no importa"
Figura 2.4-4 Z = alta impedancia
- 72 -

Generador de Funciones
El circuito utilizado en este caso es un dispositivo MSI,
capaz de desarrollar 16 operaciones aritméticas y 16 ope-
raciones lógicas, paralelamente sobre dos palabras de 4 -

bits. Se trata del integrado Am2506, empleándose 4 de e-

líos para operar sobre dos palabras completas.


Las operaciones aritméticas más importantes son: suma,

resta, paso, incremento, decremento e inversión. La ope-


ración se determina por medio de cuatro líneas selectoras
SO a S3 y una linea de control de modo, M, que distingue
entre operaciones aritméticas y lógicas.
Puede ser usado con cualquiera de los dos métodos de lle-
vada del carry. Para el método "convencional de llevada"
(ripple carry) tiene una entrada Cn (carry-in) que recibe

el carry de la etapa previa y una salida Cn+4 (carry-out)


hacia la etapa siguiente. En caso de utilizarle en modo
de "llevada anticipada" (carry look ahead) ofrece funcio-

nes auxiliares internas para el carry generado G y el ca-


rry propagado P.
Posee además retenedores internos que mantienen las sali-

das, mientras la línea de control E que los habilita per-


manece en estado lógico bajo.
El generador de funciones Am2506 requiere de lógica exter_
na para operar con el principio d,e "llevada anticipada".
El circuito Am74182 ha sido diseñado específicamente para
este propósito, pudiendo aceptar hasta cuatro grupos de -
- 73 -

funciones carry generado y propagado: GO, PO a G3, P3 y


un carry-in Cn. Provee además, tires carry-outs : Cn+x,
Cn+y, Cn+z y salidas auxiliares G y P para niveles adi-
cionales de llevada anticipada.
Puede ser usado en cualquiera de las formas de aritmétjL
ca binaria. La tabla de verdad para las diferentes fun
cienes de acuerdo a la lógica utilizada (lógica positi-
va) se muestra a continuación:

Selección M=H M=L Operaciones Aritméticas


Funciones
S3 S2 SI SO Lógicas. Cn^H Cn=L
L L L L F-A F=A F=A mas 1
L L L H F=A+B F=A+B_ F=(A+B) mas 1
L L H L F-AB F=A+B F=(A+B) mas 1
L L H H F=0 F=-l (com£. 2) F=0
L H L L F=AB F-A mas AB _ F=A mas íití ma s x1
Ti "D rn -i f-

L H L H F=B F=(A+B) mas AB F= (A+B) mas AB mas 1


L H H L F=A©B F=A-B-1 F=A-B
L H H H F=AB F=AB-1 F=AB
H L L L F=A+B F=A mas AB F=A mas AB mas 1
H L L H F=A©B F=A mas B F=A mas B mas 1
H L H L F=B F=(A+B) mas AB F=(A+B) mas AB mas 1
H L H H F=AB F=AB-1 F=AB
H H L L F=l F=A mas A F=A mas A mas 1
H H L H F=A+B F=(A+B) mas A F=(A+B) mas A mas 1
H H H L F=A+B F=(A+B) r(ias A F=(A+B) mas A mas 1
H H H H F=A F=A-1 F=A

+ = Suma lógica
mas - Suma aritmética
L = Nivel bajo
H = Nivel alto
- 74 -

Debe tenerse en cuenta que para la aritmética en comple-


I
mentó de 1 se requiere un retorno!del carry de salida fi_
|
nal. En nuestro caso, la aritmética se desarrollará en
notación de complemento de 2.
Desplazador
Como ya se indicó anteriormente, ¡la función del desplaza^
dor se reduce exclusivamente al ckso de instrucciones a-
ritméticas y lógicas. Deberá rotar el resultado de una
operación en un bit a la derecha o a la izquierda inclul_
do el link, cambiar sus mitades, b simplemente permitir
í
el paso de una palabra sin alteración alguna.
j '
En este caso se empleó el circuitp MSI 9309, que es un -
!
doble multiplexer de 4 entradas cjon dos lineas de se lee-
i
ción común y salidas normales y complementadas. Su dia-
grama funcional junto a la tabla |de verdad se presenta -
en la figura 2.4-6.
I
La forma de utilización dada a esjte circuito para conse-
guir nuestro propósito se explica; en el siguiente capítu

lo.
Seleccic5n Entradas S alidas
so; si 10 11 12 13 z z
£ L L X X X L H
U L H X X X H L
H L X L X X L H
H L X H X X H L
SI
L H X X L X L H
Ü H X X H X H L
H H X X X L L H
H H X X X H H L

Figura 2.4-6

.
V O I 9 O 1 V O I Í 3 W . L I H V

a v a i N n i a a cuasi

n ¿e i <j v o
CAPITULO III

DISEÑO DE LA UNIDAD ARITMÉTICA Y LÓGICA

1.- INTRODUCCIÓN •
La Unidad Aritmética y Lógica se implemento, en su mayor
parte, con los registros SN74172 y el circuito generador
de funciones Am2506.
Al inicio de la presente tesis ya se disponía de los cir_
cuitos en mención, por lo que el trabajo de selección
circuital se redujo a'encontrar circuitos afines para la
implementación de otras áreas.
Esta unidad constituye, en una máquina digital, el ele -
mentó limitador de la velocidad del sistema. Su diseñó-
se centraliza en la utilización adecuada de los circuitos
para que puedan ejecutarse las diferentes acciones des -
critas anteriormente.
Se pone especial énfasis en la implementación del link,-
desplazador y sensor de resultados por no disponer de -
circuitos específicos para tal objeto.
El estudio del selector no se lo enfoca en este capítulo
y se trata más adelante por cuanto hay que relacionarlo-
con fases posteriores de diseño.
El estudio de las características dinámicas de la Unidad
Aritmética y Lógica una vez implementada, constituye la-
base de diseño del Control.
- 76 -

2.- DISPOSICIÓN DE LOS REGISTROS SN74172


La utilización dada a cada uno de los registros SN74172 se
fundamenta en la posibilidad que brinda la sección 1 para-
escribir y leer simultáneamente cualquier localidad.
Cuando más adelante se describa el empleo de los diferentes
registros en la secuencia que determina cada instrucción, -
y la forma de decodificación para las diversas operaciones
en el generador de funciones, se podrá comprobar que exis-
ten casos, para los cuales es necesario habilitar la lee tu
ra de dos registros y la escritura simultánea de un terce-
ro con datos que vienen desde el desplazador. También se-
podrá verificar el caso en el cual se escribe una instruc-
ción en el Acumulador de Instrucciones (ACI) y al mismo
tiempo se lee uno de los acumuladores para colocar su con-
tenido a las entradas "A" del generador de funciones.
Todo lo dicho, asegura en este caso, una única posibilidad
de empleo para cada sección; y ésta es la que se muestra -
en la figura- 2.4-3.

La sección 1 tiene sus entradas conectadas a las salidas -


del desplazador, mientras que sus salidas van a las entra-
das "A" del generador de funciones.
La sección 2 en tíambio, dispone sus entradas para los da -
tos que vienen desde los transceptores de barra y sus sali-
das se conectan a las entradas "B" del generador de funcip_
nes .
77

3.- UTILIZACIÓN DEL GENERADOR DE FUNCIONES AM2506

El integrado AM2506 dispone internamente de funciones aux_i


liares para el carry generado G y el carry propagado P. En

nuestro caso, por operar con palabras de 16 bits se empleó

un solo nivel exterior de "llevada anticipada" , consiguiera


dose de esta manera una disminución de un 42% en el tiempo

total de ejecución de una suma con relación al tiempo nece_

sario utilizando el método de "llevada convencional" (de -


55 a 32 nanosegundos).
La forma de conexión para operar con el principio de "lle-
vada anticipada" utilizando lógica externa (circuito AM74-
182) se muestra en la figura 3.3-1.
En la figura 3.3-1 los bloques hacia la derecha correspon-

den a los bits más significantes. Se puede apreciar cómo -

Cn = C16 (menos significante) forma parte de las entradas-


de selección del circuito generador de funciones.
oa ov sv 9a av ¿s ¿v ea sv se sv oís oiv na uv na ziv cía CLV ?ia 7iv sia siv
. - 79 -

4.- DESPLAZADOR

Las funciones del desplazador se reducen exclusivamente al


caso de una instrucción aritmética y lógica. Los bits 8 y
9 en el caso de estas instrucciones establecen las siguien_
tes acciones:
Bits 8 y 9
O O Ninguna.
0 1 Rotar el resultado un lugar a la izquierda.
El bit cero (FO) pasa al link y el carry al
bit quince (F15).
1 O Rotar el resultado un lugar a la derecha.
El carry pasa a ocupar la posición del bit
cero y el bit quince pasa al link.
1 1 Intercambiar las mitades del resultado sin
afectar al link.
Cualquier otro tipo de instrucción cae dentro del código -
b8 = O, b9 = O, donde el desplazador simplemente permite -
el paso de una palabra sin alterarla.
Las cuatro condiciones posibles pueden ser perfectamente -
implementadas, una para cada entrada, en el circuito multi_
plexer 9309. La condición de doble selector permite que -
cada circuito realice las transiciones correspondientes sp_
bre dos posiciones (bits) adyacentes. El número total de
circuitos utilizados para cubrir los 16 bits del resultado
es de ocho.
La figura 3.4-1 muestra la forma general de conexión a las
80 -

\-ic;j- O_LJ_ «_- LIJL L-^-

Fn Fn 4-1

Fn+8 Fn+1+8 :

Pn 1
Fn+2

I3a 1 1a I0a I2a I3b Ilb I0b I2b


b8 SO
9309
b9 51

1
2a Z* Zb Ib
c)

Figura 3.4jl

La línea Fn representa un bit cualquiera a la salida del

generador de funciones, Fn-1 el bit inmediato más signi-


ficante y Fn+1 el bit inmediato menos significante. Si
el circuito corresponde a los 8 bits más significantes -
(byte más significante), las entradas Fn+8 y Fn+1+8 ado£
tan el signo + : Fn+8 y Fn+1+8.
Al tratarse de un bloque en el byte menos significante -
prevalece el signo - : Fn-8 y Fn+1-8. Debe tomarse en -
cuenta que cuando n = O (bit más significante) y n+1 =15
(bit menos significante), Fn-1 y Fh+2 serán el carry del
!

link. |

A continuación se detalla la elección de las entradas -


II -

conforme a la tabla de vardad dejMinultiplexer 9 3 0 9 :

SO £1

0 0 10 Ninguna acció^) (pasa Fn )


¿ttk
0 1 12 Rotación a larafeguierda (pasa Fn+1)

1 0 11
^K
Rotación a laiBüErecha (pasa Fn-1)

1 1 13 Intercambio dj^bvtes (pasa Fn+_8)

La figura 3.4-1 presenta SO y Sl«r© conectadas directamen-

te a los bits 8 y 9. Esto se deSs 'a que tales bits deben


actuar sólo en el caso de instrucciones aritméticas y lógi_
cas; necesitándose una decodific^fión adicional que se ve-
rá más adelante (capitulo Vil).
La configuración completa del deS|lazador puede revisarse

en el diagrama total de la unidaJUaritmética y lógica (a -


nexo 1).

12 -

5.- L1NK
Asociado con el generador de funsüEbnes y el desplazador se

encuentra un retenedor (el link)^pe sirve para detectar -


un carry fuera del bit de orden I5=!fbo en una operación arit_

mética.
El link se utiliza principalment^lpara trabajar sobre nú -

meros de doble precisión. Un núrri^p de doble precisión es-

tá formado por dos palabras concatenadas. La parte de ma-

yor significación puede guardars^fen un acumulador y la


5.- LINK
Asociado con el generador de funciones y el desplazador se
encuentra un retenedor (el link),que sirve para detectar -
un carry fuera del bit de orden cero en una operación arit_

mética, . |
El link se utiliza principalmente para trabajar sobre nú -
meros de doble precisión. Un número de doble precisión es-
tá formado por dos palabras concatenadas. La parte de ma-
yor significación puede guardarse'. en un acumulador y la
de menor significación en otro. Cuando se trabaja sobre nú_
meros con signo en notación de complemento de 2,las sec -
ciones de mayor orden,en números negativos,podrían consi -
derarse en notación de complemento de 1, mientras,solo las
partes de menor orden operar en notación de complemento de
2; siempre que la parte de menor significación no produzca
un carry en el link (cuando todos; sus bits son cero) .

El estado del link depende de tres factores: un valor base


dado por la instrucción, la función desarrollada y el re -
sultado obtenido. Además, está ,suj¡eto al desplazador para -
junto al resultado rotar un lugar a la derecha o a la iz -
¡
quierda. :

Los bits 10 y 11 de una instrucción aritmética especifi -


can el valor base:
Entradas al multiplexer
9309
Bits 10 y 11 Valor Base SO SI
O O Estado actual del link O O 10
0 1 Cero O 1 12
1 O Uno : 1 O II
1 1 Complemento del estado 1 1 13
actual
•Se puede implementar el control del valor base con un ciz;
cuito multiplexer, teniendo a sus entradas una linea con-
nivel alto (1) , otra con nivel bajo (0) y dos más conecta^
das al biestable retenedor del carry, una a la salida nor_
mal y otra a la complementada. ;

La forma de control del circuito selector del valor base-


viene dada por los bits 10 y 11 conectados a las entradas
SO y SI respectivamente. La selección de las entradas de
datos se realiza en base a la tabla de verdad del circui-
to 9309. Esta selección se muestra junto con las dif eren,
tes condiciones impuestas por los!bits 10 y 11.
La generación de un carry en el desarrollo de una instruc_
ción aritmética complementa el valor base especificado.
La detección del carry puede ser obtenida mediante la fun
ción auxiliar G d.el generador de carry look-ahead 74182.
Para posibilitar la rotación del carry junto al resultado
es necesario que el link reciba el bit cero (más signifi-
cante) y el bit quince (menos significante).
- 84

Las entradas de los bits O y 15 es¡tarán controladas de a_l


guna manera por los bits 8 y 9 de una instrucción aritmé-
tica.

Se puede establecer que todas las acciones a ejecutarse -


están sujetas al caso de una instrucción aritmética, por-

lo que será necesario disponer de';cierta decodificación y

control que habilite estas acciones sólo en este caso.


De una forma general se puede afirmar que el link estará-
constituído por un bloque que recabe y envía las siguien-

tes señales: •

1L OL
FO (DESPLAZADOR)
F15
i. G (74182)
1 i 1 • i
b8 „
b9 . — . CONTROL
blO „ Y LINK Carry
bll ,
OECODIFICA- (DESPLAZADOR)
CION

Figura 3.5-1

Toda acción parte del estado anterior en que se encuentra

el link. Esto supone la presencia de un retenedor (bies-


table tipo D). Posteriormente debe realizarse el cambio™
al valor base especificado, o a su complemento, para fi -
nalmente rotarlo junto al resultado.
Como ya dijimos, una manera fácil de implementar el valor
base es utilizar un circuito selector de 4 entradas.
i
El complemento del valor base se obtuvo de la siguiente ma
ñera:
VB G VB

0 0 0 ^~~\;
íl '^ -1- /1
X~N

1 0
O 1 1

1 O 1
VB = VBG + VBG
1 1 O Ti
VB = YB © G
I,
Las condiciones de desplazamiento (rotación) están dadas -
por los bits 8 y 9; y en el caso del link son:
Entradas al multiplexer
i 9309

Bits 8 y 9 í $Ü_ Sl_

0 O Ninguna acción O O 10

.0 1 Poner FO en el.link \ 1 12

y el carry en F15
1 O Poner F15 en el link II

y el carry en FO
1. 1 Ninguna acción 1 1 13

Para posibilitar estas acciones sel empleó un circuito muí-


!i
j, ¡
tiplexer, similar a los que se utilizan en el desplazador-
y en la implementacion del valor base.
í

La selección de sus entradas se muestra junto a la lista -


de acciones generadas por los bits 8 y 9.
j
Existen muchas otras formas de diseño, la disposición que-
- 86

a nuestro parecer es una de las más simples se muestra en


la figura 3.5-2.

1L

blO u 12 10 13
so 9309
bll SI

VB
Carry
retenido
Carry
FO
F15
CK1
b8 12 10
50 9309
b9 S1

Figura 3.5-2

Supondremos que la instrucción se mantiene en el registro


de instrucciones y los niveles de FO, F15 y G a la salida
del generador de funciones, por lo menos hasta que todos-
los cambios en el link han culminado.
La señal básica de control es el reloj que carga al link.
Su procedencia se explicará cuando se trate del control -
de las instrucciones aritméticas y lógicas.
La necesidad de decodificaciones extras, para la acción -
de los bits 8, 9, 10 y 11 sólo en caso de instrucciones a.
ritméticas se discute más adelante.
6.- SENSOR DE RESULTADOS :

Tanto las instrucciones aritméticas como las de modifica-


ción de memoria realizan una prueba del resultado a la sa.
lida del desplazador. Cuando el resultado y/o el link

son cero, una instrucción aritmética habilita el salto de


la siguiente instrucción en secuencia, de acuerdo a la

condición impuesta por sus tres bits menos significantes.

Las instrucciones .que modifican la memoria provocan un


salto cuando el resultado es cero.

La prueba de que un resultado, a la salida del desplaza -


dor es igual a cero, se la realiza mediante dos niveles -

de compuertas. El primero formado por dos compuertas -


NAND (7430) con entradas disponibles a los 16 bits del re

sultado. Se utilizan las salidas complementadas del des-

plazador, de tal manera que un resultado cero mantendrá -


las entradas de las compuertas en 1 lógico, obteniéndose-

en este caso dos salidas con O lógico. El segundo nivel-

asocia las dos últimas salidas en una compuerta ÑOR (74S-

02), para provocar un 1 lógico sobre una sola línea en el

caso de un resultado cero, (figura 3.6-1).


El circuito de control de salto se lo describe en "Ins -
tracciones con sobrepaso" (capítulo V).
FO Fl F2 F3 F4 F5 F6 F7 . F8 F9 SILO Fll F12 F13 F14 F15

Y Y
R

Figura 3.6-1
i o x a No D ifli a

AI üa a ¿n i d v o
CAPITULO IV :

DESCRIPCIÓN DEL CONTROL


1.- FUNCIÓN
El control de una computadora es el conjunto de órdenes y -
comandos que interpretan y hacen ejecutar las diferentes
instrucciones. Es el módulo que supervisa todas las opera -
ciones que se llevan a cabo en las demás unidades.
Un programa se almacena en la memoria, y es la unidad de
control la encargada de ir ejecutándolo, en base a una se -
rie de órdenes generadas en respuesta al contenido de cada
instrucción.
El control de las muchas operaciones requiere un conoci
miento profundo de cuándo debe realizarse cada una y sus
relaciones e interacciones en el tiempo con todas las de
más. Es un problema de sincronismo donde el inicio y dura -
ción de cada acción desempeñan un papel preponderante.
Tanto la fase de traída como la de ejecución se realizan

bajo la supervisión del control. Todas las órdenes genera.-


das por la unidad de control son pulsos o niveles de volta-
je de duración adecuada.
Esta tesis desarrolla el control cableado para el juego de
instrucciones ya enunciado. Esta modalidad del control po_ -
sibilita una serie de alternativas. Para que la implementa-
ción circuital resulte lo más ventajosa se analiza cada
instrucción en forma individual,estableciéndose áreas de
operación común.
- 90 -

2.- CONTROL CABLEADO Y MICROPROGRAMADO


Cuando las funciones de control son' generadas por hardware,
usando las técnicas del diseño lógico convencional, la uni
dad de control se denomina "cableada" (hard-wire).
El control microprogramado es una segunda alternativa de
diseño que permite generar de una manera sistemática y or-
denada la secuencia de control de una computadora.
El control convencional o cableado semeja, una vez imple -
mentado, ramales o cadenas dispuestas en tal forma, que sa_
tisfagan todos los requerimientos de tiempo y secuencia im
puestos en el diseño.
La microprogramacion es una técnica para diseño e implemen
tación de las funciones de control de un sistema de proce-
samiento de datos en una secuencia de señales. Estas seña_
les de control, organizadas sobre una palabra base y guar-
dadas en una memoria, representan los estados que contro -
lan el flujo de información.
Cada palabra en la memoria de control es llamada una 7nicro_
instrucción y una secuencia de palabras un microprograma.
A las instrucciones que residen en la memoria principal a
menudo se las conoce como macroinstrucciones y al conjunto
de ellas programa principal.
El programa colocado en la memoria principal, establece de
acuerdo a sus instrucciones (macroinstrucciones) "que ha -
cer". El microprograma situado en la memoria de control
establece el "cómo hacer" cada operación.
Cuando no se va ha alterar el microprograma puede utili-
zarse como memoria de control una ROM (Read Only Memory),
sistema cuyo diseño hace que su contenido sea fijo e inal_
terable. Si se desea poder modificar el contenido de un-
microprograma la memoria de control debe tener capacidad-
de escritura; pudiendo emplearse una WCM-(Writable Con -
trol Memory) . A menudo se utiliza también una memoria t;L
po PROM (Programable Read Only Memory).
Cada macroinstruccion inicializa una serie de microins
trucciones en la memoria de control. Esas microinstruc -
cienes generan las micro-operaciones para:
- Traer una instrucción de la memoria principal.
- Evaluar la dirección efectiva.
- Ejecutar las operaciones especificadas por la instrucción.
- Retornar el control al inicio de la fase de traída.
Existen algunas ventajas y desventajas en el uso de la mi_
croprogramación como alternativa al control cableado.
El control microprogramado puede ser demasiado costoso
cuando el sistema es muy simple y no requiere de un gran-
número de operaciones y decisiones de control. Si sola -
mente unas pocas unidades van a producirse, el costo de -
la memoria de control resulta mayor que las compuertas y-
flip-flops requeridos para el control cableado. Al pre -
ció de la memoria de control debe añadirse el costo invo-•:-.
lucrado por el tiempo y hardware desarrollado para la im-
plementación de los bits microprogramados.
- 92 -

El uso de una memoria de control puede decrementar la ve-


locidad de un computador si su tiempo de- acceso es mayor-
que el tiempo de propagación impuesto por una configura -
ción cableada. ::

La microprogramacion provee una Estructura más elegante y

mejor organizada, las funciones de control son sistemati-

zadas dentro de una "disciplina regular y programada".

El control cableado se sujeta generalmente únicamente al-


criterio del diseñador.
La unidad microprogramada es más adaptable a cambios, pues
únicamente habría que alterar el: microprograma en la me -
moria de control para tener la ppsibilidad de introducir-

cambios más sofisticados al conjunto de instrucciones in_i_

cial.
El control cableado como ya dijimos antes, resulta más -
económico en sistemas no muy complicados, pero el costo -
i •
se incrementa rápidamente conforme aumenta la complejidad
del sistema. '
La microprogramacion facilita el- sistema de mantenimiento

de un computador. Cada sistema requiere de una rutina de

diagnóstico que chequee,, localice y aisle el área de fa -


lia. Si el sistema no es microp'rogramado estas rutinas -
tienen que escribirse en lenguajija de máquina y usar la me
ij ~~
n
moria principal para su ejecución. Con microprogramacion
¡I
es posible que esas rutinas residan en la memoria de con-
¡i
trol.
- 93 -

Cambiando el contenido de la memoria de control es posible


modificar el formato de instrucciones. Se puede entonces-
simular" un computador en otro, abriéndose posibilidades-
11
I
enormes en el campo investigativol
ii
La microprogramación en la impleméntación de rutinas tales
como: multiplicación, raíz cuadrada, funciones, etc.; es -
más eficiente que el software y mucho más flexible que el-
hardware.
La microprogramación puede utilizarse no sólo en el control
central de una computadora sino también en el control de -
transferencia de datos, calculadores programados, progra -
mas compiladores, etc.
Para justificar de una manera precisa la elección de una u
otra forma de control, sería necesario desarrollar los dos
sistemas. '
Esta tesis desarrolla el control cableado considerando las
ventajas introducidas por este tipo de control en cuanto a
i
velocidad de ejecución y costo. También se consideró la -
disponibilidad circuital al inicio del presente trabajo y-
el grado de complejidad del conjunto de instrucciones a im
plementarse.
La elección del control microprogramado en un trabajo como
el presente, habría tenido que desarrollarse, por lo menos
.inicialmente, utilizando una memoria de control tipo WCM o
RAM (Random Access Memory).
94 -

La memoria tipo ROM ofrece al usuario bajo costo por bit


pero requieren un costo de impleméntación relativamente-
alto. Errores en la programación ROM no pueden ser corre
gidos, lo que sumado a las dificultades de impleméntación

hacen menos flexible su utilización en un trabajo como -

éste.
Las memorias RAM ofrecen la ventaja de poder ser altera-

das . Sin embargo, estos sistemas necesitan de un circui_


to especial de carga y su costo por bit es más alto que-
una ROM.
Las memorias PROM tampoco pueden ser alteradas, su costo

por bit es tan alto como una ROM pero su implementación-


puede ser hecha por el propio usuario.

Para sistemas más complejos la ventaja económica que o -

frece la microprogramación es muy1 significativa. Consi-


deremos $ 1.05 el costo razonable de un circuito integra_
do (IC) puesto en un sistema. Asumiendo un promedio por

IC de tres compuertas, el costo por compuerta instalada-


en el sistema será de ^í. 35. \a figura 4.2-1 muestra el costo

del sistema tanto del control convencional como del mi -


croprogramado. El costo del control microprogramado se-
incrementa lentamente. Esto porque una secuencia adicio
nal requerirá una palabra de control adicional. Si, por
ejemplo, la memoria de control utiliza palabras de 16

bits y el costo de la memoria de control es O.Sjzf / bit,-


- 95 -

Figura 4.

entonces el costo por un ciclo de control adicional será


de 8¿.
El costo del control convencional se '.incrementa más rap^L
damente. Si un ciclo de control adicional requiere solo
una compuerta o algún tipo de elegnento que distinga este
estado adicional de control, ento rices al menos 35j¿ debe-
ser añadido al costo del sistema.
Si R bits de la memoria de contrc1 pueden reemplazar una
compuerta, entonces, el ahorro in .reducido por la utili-
zación del control microprogramadjo estará dado por:
N
Ahorro = G R ~ ; donde:

C = Costo por compuerta instalado en el sistema.


N = Numero de bits de la memoria de control.
R = Bits por compuerta.
P = Costo de la memoria de contrc1 instalada en el siste
ma.
En el caso de esta tesis, si bier el factor económico es
96 -

muy importante, considerando que el juego de instrucciones

a implementarse tiene una complejidad moderada, se decidió


por, el control convencional principalmente por la flexibi-

lidad de trabajo que ofrece en cuánto a disponobilidad cir_


cuital.' Además, la velocidad que se logra con circuitos -

discretos bipolares (TTL) muy difícilmente podría obtener-


se en condiciones económicas similares.
3.- FRECUENCIA DE RELOJ Y EJECUCIÓN POR CICLOS
La velocidad de ejecución de una computadora esta determi-

nada por el tipo de circuitos utilizados en la memoria y

en la Unidad. Aritmética y Lógica (:UAL) .


Un factor que incide directamente en la velocidad de ejecu.

ción es el tiempo promedio de utilización dado a los cir -

cuitos de la Unidad Aritmética y ¿ógica. Es decir, cuando

estos circuitos permanecen ocupados (desarrollando alguna

operación) el mayor tiempo posible, se dice que la computa_


i
dora esta trabajando con un máximo de eficiencia.
El hardware de la máquina es el que determina en última -

instancia su velocidad. Las características de diseño a -

doptadas en la implementación de la memoria y el tipo de -

control utilizado fijan el máximo i trabajo posible de los -

diferentes circuitos cuando se corre un programa.

El diseño "modular" de la unidad de memoria permite 1-a ope

ración en "poliducto", donde varias instrucciones se reali_

zan simultáneamente pero defasadas en sus etapas de ejecu-

ción (sobrelapadas). Esto posibilita un mejor aprovecha -

miento circuital aunque complica el diseño del control.

El tiempo total transcurrido desde que una instrucción sa-

le de memoria hasta que se ha realizado el cálculo de una


nueva dirección y además se ha guardado la misma en el Co_n

tador de Programa (caso de una instrucción de salto), es -

tablece una base de tiempo que puede ser visualizada en 3


ciclos fundamentales: el primero (T2) dado por la salida de
la instrucción hasta su almacenamiento en el Acumulador de-
Instrucciones (AGÍ); el segundo (TO) determinado por el

tiempo de cálculo en los circuitos de la UAL; y el tercero-


(Tl) por la carga de la nueva dirección en el Contador de -
Programa (CP) . Estrictamente hablando/ considerando las de_

moras introducidas por los circuitos utilizados a la salida


de memoria y en la UAL, cada etapa tendría una duración di-

ferente, sin embargo, se puede elegir un ciclo único de du-


ración apropiada que haga posible la realización de cual
quiera de estos tres eventos. La señal que carga la ins
trucción en el AGÍ fija la relación de tiempo entre los ci-

clos de memoria y el ciclo del reloj fundamental.


La denominación dada a cada etapa yiene dada por el hecho -
i
de que primero debe realizarse el cálculo de una nueva di -

rección para inicializar la fase de traída. Esto se reali-

zará en lo que hemos llamado TO para las acciones posterio-


res desarrollarse en TI o T2.

Los circuitos elegidos en la Unidad de Memoria (MOS 2107A-8)


son memorias tipo dinámicas y generan tres ciclos: Lectura,
Escritura.y Lectura Modificación y Escritura (figura 4.3-1)
El ciclo de Lectura permite obtener el contenido de cual -
quier localidad que se direccione en la memoria.

El ciclo de Escritura posibilita el depósito de un dato en-


la localidad direccionada. .
TO TI T2 TO TI T2 TO TI T TO TI T2 TI T2
P

T?
CICI,0 D.E L -Ci :TURA
ÍÉ ¡v
MI
Tm
OÍR E :CION /R^5 fflf
VA JK|x
TM
1
TR
\" 1

\s
•••VHBMI • / TA *- / /
i
K 0 LE DO f )$(

CICI,0 D E ES 3RIT ÜRA


i
1 DIRÉ :CION U
A^ lüü
i*A
Tm
TM-^f
1

^
\
/ —TD bnii i /
) ¡' DA ro A ESCRIt IRSE \ i(
CICI,0 D]E L t?/
HA^TURA MO DIFI ^ACI DN Y pC RITU RA

~tá
/& <; Tm
OIRÉ :CION »!í(
TM^T 1

' • Ta • — te-
- TRW - \O
••••H^^H / TC
. Tn
/
\
k L V
ro A

dií, r°A
MOJpl f 1 C A R S E
- TA -

TR = 460 TM = 85 T D = 190 TG = 590

TW - 850 Tm = 22 Td = 150 Tg = 550

T R W = 1 ?50 Ta = 400 TA

Tiempos de diseño en nanosegundos

Figura 4\1
El ciclo de Lectura Modificación y Escritura se genera cuar^

do se desea modificar de alguna man'era el contenido de una-


i
dirección específica.
i
Los tiempos dados 'en la figura 4.3-rl son los que más intere_
i
san desde el punto de vista del control.
Cabe destacar el hecho de que como ; el cálculo de una direc-
ción se realizará en TO, los ciclos de memoria siempre co -
¡
menzarán durante TI. '

Mantener una dirección o un dato a '< la salida del generador-

de funciones durante el tiempo, requerido por los circuitos-

de memoria resulta complicado, por lo que, a la entrada dé-

la memoria se utilizan retenedores tanto para datos como pa

ra direcciones. De igual forma, también se tiene retenedo-

res a la salida de memoria para los datos a ser leídos.


i
La memoria se ha diseñado dividiéndola en 8 módulos de 4192

palabras cada uno; 4 para las direcciones pares y 4 para

las impares. Esta división modular permite una acción más-

efectiva del sistema, ya que al hacerles trabajar en forma-

"entrelazada", el tiempo utilizado, por los circuitos de me-

moria -puede aprovecharse para un nuevo cálculo en la UAL

(figura 4.3-2).

La designación dada a los módulos dibujados (N y M) es arbi_

traria y sirve para indicar que podrían ser 2 cualesquiera-

'de los 8; sean pares, Impares o alternados. Esto posibili-

ta una respuesta inmediata de la memoria al solicitar dos -


instrucciones consecutivas seguidas; y aumenta la probabili_
dad de encontrar "desocupado" el módulo de cualquier locali_
i
dad par, direccionada inmediatamente después de otra par, o.

de una impar después de otra impar.


En el caso de un direccionamiento S un módulo en trabajo, -
"ocupado", la memoria no da una aceptación a la dirección -

enviada sino sólo luego de que el módulo seleccionado se ha


desocupado y ha comenzado la generación del ciclo correspon_

diente.
La característica 'dinámica de la memoria crea la necesidad-
de un REFRESCO. Esto es, de un sistema que mantenga la in-
formación almacenada sin que se pierda. Para ello la memo-

ria lee todas sus localidades consecutivamente en un tiempo


total de 2 milisegundos. i
i
Los ciclos de lectura para refresco son generados por la
propia memoria y deben ser atendidos lo más pronto posible.

Si la dirección a refrescarse se encuentra en un módulo ocu


pado, el ciclo de refresco no empezará hasta que termine el
!
trabajo del último pedido en el módulo en referencia. Esta

espera sera máxima cuando el módulo se encuentre realizando


un ciclo .de lectura modificación y escritura; que de cual -
quier manera no crea problemas (Véase la Tesis Unidad de Me_
moria para una Minicomputadora).

Desde el punto de vista del control, el refresco sera consiL

derado como un ciclo de lectura adicional que puede ocurrir

en cualquier momento.
T2 TI T2 TI a2 TO TI T2 TO

MODULO

N
\O /
I,
!
N
1 í
i /
MODULO
M
\O / * T1
I
I
j
\t
1 i

TI = Tiempo disponible parjk el cálculo de una

dirección.
T2 = Tiempo requerido por Los circuitos de

memoria
Figura 4 ,3-2

Durante el refresco, la memoria e ocupará de no aceptar -

ningún otro pedido.


Cuando coincide el inicio de un Refresco con un pedido del
control, la memoria da prioridad al primero, debiendo el -
control en ese caso mantener su gedido hasta que el refres_
co haya culminado.
Se han definido tres etapas básicas de ejecución, porque
|i
de acuerdo a los ciclos de lectura generados por la memo -
'!
ria (entrelazados), el cuarto correspondería a una nueva -
I
traída desde la memoria (figura J4.3-2), Las flechas en el
dibujo indican la señal que cargja la instrucción . en el AGÍ
- 103 -|

El tiempo transcurrido en esta acción, lo mismo que el

tiempo necesario para cualquier cálculo en la UAL determi -


i
nan el mínimo período del reloj T;.

El período adoptado en el diseño íes de 133.33 nanosegundos,

lográndose de esta manera una máxima velocidad en la ejecu-

ción con una relativa flexibilidad en cuanto a tiempos de -

preparación y carga. \l reloj fundamental o maestro (R

etapas de ejecución dentro de los; ciclos mencionados. Las -

fases de RM se eligieron estableciendo un compromiso éntre-

la ventaja que representa tener muchas fases de reloj, y -

la duración de los pulsos, que por otro lado deberían satis_

facer las condiciones mínimas de los biestables TTL dispo -


i
nibles para el diseño. ;
Cabe indicarse en este punto, que: el trabajo se lo desarro-
lló paulatinamente, descubriendo a lo largo del mismo una -
gran cantidad de acciones que al final fueron las que impu-
sieron el número definitivo de fases de reloj. Se estable -
ció un ancho de pulso de reloj de 44.44 nanosegundos,porque
además dé ser un tiempo aceptable para la mayoría de los
circuitos utilizados (considerando inclusive los varios ni-
veles de compuertas a atravesar), es un tercio de la fre -
cuencia de trabajo (relojes T).
Los circuitos de(reloj se armaron en la unidad de memoria -
por las demoras que se introducirían al fijarlo en un lugar
específico de la UCP.; ya que la sección de control, por lo
- 104

menos en un principio, debió diseñarse con iguales demoras


de reloj en todas sus fases. El diseño final presenta a -
pesar de todo, la generación de ciertas fases de reloj en-

cada plaqueta del control por consideraciones de tiempos y
i
el número de circuitos a controlarse (fan-out).
Los ciclos T definidos anteriormente, pueden ser utiliza -
i
dos para otros fines. Las características de los circuitos
utilizados como registros permiten, como ya se explicó,va-
rias alternativas, es por ello que el ciclo en el cual se-
¡
realiza la carga de una instrucción en el ACI puede emple-
arse para el depósito de cualquier dato que sale de memo -
ria en uno de los acumuladores e incluso para cargar simul
táneamente un resultado desde el desplazador o leer el con
tenido del CP.
El ciclo en el cual se realiza el; cálculo de una dirección
da cabida también a la carga de una dirección de retorno -
en el AC3 en caso de una instrucción de salto a subrutina.
De la misma manera, el ciclo en el que se guarda la nueva-
dirección en CP puede emplearse para el desarrollo de cual
i
. i
quier cálculo en la UAL. En el numeral que sigue se da u-
na explicación más detallada sobre este asunto.
Debe tomarse en cuenta que no todas las instrucciones ten-
drán la misma duración, y por lo mismo las diferentes ac -
ciones en cada ciclo tendrán que controlarse de alguna ma-
nera.
En el anexo 2 puede encontrarse un Diagrama de tiempos de-

tallado sobre las diferentes acciones posibles en cada ci-


clo. Este diagrama considera los tiempos mínimos y máxi -

mos en cada circuito (para el peor! caso posible). Puede a.


i
preciarse el tiempo empleado por la UAL para generar una -

dirección, desde la selección del acumulador correspondiera

te en los registros 74172 hasta sui depósito a la entrada -

de memoria. El reloj que habilita la salida del generador

de funciones 2506 es RMO. i


i
También se presenta la salida de un dato o instrucción des_

de la memoria hasta su depósito ettí un registro del control


i
Como reloj de carga para los circuitos 74172 se ha escogi-

do RM2. i
í
Las fases de reloj empleadas en el diseño son:
ii
ciclos T : TO, TI, T2 |

Ciclos TA : TOA, TÍA, T2A j

Ciclos TA1 : TOA 1 , TÍA 1 , T2A 1 I


i
Ciclos RM : RMO, RMl, RM2 !

Los ciclos TA y TA' tienen similar duración que los T pero


•;í
se hallan defasados/ el primero con un adelanto de 2/3 T y

el segundo con un adelanto de 1/3 T. Estas fases fueron -

necesarias para facilitar las diferentes etapas de decodi-


ficación.

El reloj maestro (KM) origina los ciclos T, TA y TA1 men -


cionados anteriormente.
106

4.- SECUENCIA DE LAS INSTRUCCIONES ¡ (OPERACIÓN EN POLIDUCTO)


Las características de los circuitos de memoria hacen que -
la duración de cada instrucción difiera. Desde este punto -
de vista, conviene analizar las diferentes acciones que ca-
da instrucción debe desarrollar. Todo se lo realiza tomando
como base de tiempo los tres ciclos fundamentales (TO,T1, .-•
i
T2). ' !

Inicialmente supondremos que la fase de traída de cada ins_


i
trucción ya ha culminado,centrando nuestra atención única-
mente en una descripción general de las diferentes opera -
ciones a realizarse en la UAL, durante la fase de ejecución
El inicio de una fase de traída .(pedido de una nueva ins -
trucción) puede llevarse a cabo una vez finalizada la fase
de ejecución de la instrucción previa. Este método sin em
í
bargo, no permite una mejor utilización de los circuitos -
de la UAL, ya que de esta manera permanecerán ociosos mien_
tras dura un ciclo de memoria. :

j
La operación en "poliducto" permite un alto grado de accio_
i
nes paralelas. Este sistema disminuye la duración efectiva
i
de cada instrucción y ofrece una* enorme ventaja respecto -
al sistema no sobrelapado en cuanto a velocidad de ejecu -
ción.
Antes de explicar el desarrollo en el presente trabajo del
sistema en poliducto, conviene analizar las diferentes ac-
ciones involucradas en cada una de las instrucciones.
Una instrucción con referencia a memoria necesita de sus -
últimos 8 bits para el cálculo de la dirección efectiva. -

Esto implica la necesidad de rete ,'er la instrucción (o por


i
lo menos sus últimos 8 bits), en no de los registros de la

unidad aritmética. Para este efe to se ha seleccionado el-


Acumulador de Instrucciones (AGÍ) que una vez que la ins

trucción sale de memoria la guarda al mismo tiempo que ésta


se deposita en el Registro de Instrucciones (IR1) . Toda
instrucción se almacenará en el ACI.
Cada una de las instrucciones se Jexplica en detalle en el -
capitulo I/ los registros y operaciones involucrados pueden
generalizarse en el siguiente griipo de instrucciones. Re -
cuérdese que inicialmente definimos T2 como el ciclo en el-
cual llega una instrucción de 1. memoria al AGÍ, y TO el ci
cío en el cual debe realizarse e cálculo de una nueva di -
reccion.
Instrucciones Aritméticas.- Toda instrucción aritmética y -

lógi a (AL) puede ser desarro -


liada en los pasos que se descri en a continuación:

T2 i TO TI T2

A-RS1 ACD
B-RWS2 ACI ACS
WS1 ACD
OP 1 AéB
- 108 -

i
RS1 y WS1 se refieren a la secciónj1 de los registros 74172
¡
por donde se deberá seleccionar la|lectura o escritura res-
i
pectivamente, de los registros indicados. RWS2, indica la-
,. ii.
i
sección 2 que tiene entradas de selección común tanto para-
• i
lectura como para escritura. OP,; indica la operación que -

debe desarrollarse en el generador de funciones.


• i
Instrucciones como: COM, NEG, MOV/ INC, no necesitan selec-
; i
cionar ACD durante TI porque operan sólo con ACS . Tampoco-
toda instrucción aritmética carga !su resultado en ACD duran_

te T2, sino sólo aquellas cuyo bit 12 sea igual a cero.


Las diferentes acciones que corresponden a cada instrucción

se explican con mayor detalle en el capitulo de decodifica-

ción, i
i
Puede observarse que para este caso, desde que llega la ins_
i
trucción de memoria, s£ existe tiempo más que suficiente pa_
i
ra decodificar el tipo de instrucción y las diferentes ac -

ciones que tiene:.que desarrollar. Además es evidente que -

una instrucción aritmética puede ser ejecutada en 400 nano-

segundos. i
t
Instrucciones con Referencia a Memoria.- .Todas estas ins -
, í
! trucciones involu-
i
eran un ciclo de memoria adicional. Tienen como denominador
común .el cálculo -de dirección efectiva; pudiendo optarse -

por una dirección directa (b5 = 0) o indirecta (b5 := 1).


Cada direccionamiento indirecto implica un nuevo ciclo de-

memoria.
LDA con direccionamiento directo:

T2 TO TI T2 TI T2

_._ ..
A-RS1 AGÍ
.
B-RWS2 AGÍ XR AC
WS1
OP A+B

XR representa uno de los registros índice en caso de una di_


rección de este tipo, o el Contadojr de Programa cuando se -
trata de una dirección relativa. Si el direccionamiento se
realiza con selección en página cfero, la habilitación de XR
. f
no debe realizarse, asi como tampfpco la operación 'a selec -
¡í
clonarse en el generador de funciones será: A+B, sino: A.
Tómese en cuenta además, que la Habilitación en TO de ACI -
corresponde sólo a los últimos 8 i bits.

De acuerdo a la duración de un cí :lo de lectura (L) en la-
memoria, el dato leído se cargará en uno de los acumulado-
res (AC) al tiempo T2 indicado.

Nótese el tiempo no empleado por los circuitos de la UAL -


en el caso de trabajar con un soJo módulo de memoria; de a
llí que se eligiera para el disefo, dividir a la memoria -
en 8 módulos sincronizados en paées conforme se explicó en
la figura 4.3-2. ;;
- 110 -

STA con direccionamiento directo:!

T2 TO TI T2 TO T2 TO TI T2
Ciclo
de M
A-RS1- ACI AC
B-RWS2 ACI XR
WS1
OP A+B A

Las observaciones hechas con LDA para el cálculo de direc -

ción efectiva se ¡mantienen tambilh en este caso, al igual -


que en todas las demás instruccic íes con referencia a memo-
ría,
Los ciclos dibujados indican la uración del ciclo de escri
tura (E) en la memoria.
La selección del acumulador (AC) a guardarse en memoria, se

la realiza durante el ciclo T2 qite sigue al cálculo de di -


I
reccion efectiva por consideraciones de tiempo en la memoré
I
ría, respecto a qué instante debe llegar el dato a escribir
se.
ISZ DSZ con direccionamiento d .recto:

T2 TO TI T2 TO TI TH TO TI T2 TO TI T2
Ciclo
de M
A-RS1
\i JACI
i
'i

:i V
B-RWS2 ACI XR i
WS1
OP A+B Aí|L
El dato que sale de memoria para aer modificado, ya sea
incrementándose en 1 (IS2) o decránentándose en 1 (DSZ), no
se carga en ningún registro porgu^l el tiempo empleado en la
1
carga y luego en la lectura y el Cálculo correspondiente, -
1¡ i
resulta muy largo comparado con elj especificado en los cir-
cuitos de memoria durante un ciclccj de lectura modificación-
:j
y escritura (LME), para que el dafco modificado regrese a
escribirse. Este inconveniente se lo supera pasando el dato

a ser modificado, directamente dejL-fxanaceptor de barra a la


entrada A del generador de funciones, a través del bloque -
que lo hemos llamado Selector. De' esta manera, el dato se -
incrementa o decrementa durante e;l ciclo T2 indicado.
JMP con direccionamiento directo:

T2 TO TI T2u TO TI T2
Ciclo
de M / V_
A-RS1
B-RWS2
WS1
OP
^AGÍ
ACI
XR

A+B
CP
i
•1 i
'1

!l
ACI

i
En una instrucción de salto la dirección efectiva debe po -
nerse en el contador de programa (CP).,Este proceso puede -
realizarse en TI.
El contenido de la memoria especjificado por la dirección

efectiva, constituye en este casjo la siguiente instrucción-


a ser ejecutada, debiendo por lo'| mismo ser recibida en el -
u
ACI al final del ciclo de lecturja solicitado.
JSR con direccionamiento directo

T2 TO TI T2 TO TI T2
Ciclo
de M ~\1 y
CP ACI
B-RWS2 ACI XR ACI
WS1 AC3 CP
OP A A+B

Una instrucción de salto a subrutiina debe guardar el conte-


nido del contador de programa (le dirección de la instruc -
ción que sigue secuencialmente a;JSR, dirección de retorno)
en AC3 y la dirección efectiva em CP. El cálculo de direc r-
ción efectiva debe ser realizado •antes de que la dirección
¡
de retorno ocupe AC3, ya que tal ¡acumulador puede ser usado
como registro índice,empleándose en este caso, su contenido
anterior.
La lectura del Contador de Programa en el ciclo T2, y su
paso por el generador de funciones sin ninguna alteración -
(Operación A), supone que al llegar una instrucción al ACI,
CP ya tendrá la dirección de la siguiente localidad de me -
moria.
Nótese que por la imposibilidad le distinguir el tipo de

instrucción antes de T2, la lecttara de CP no estará condi -


cionada al caso de una instrucción JSR. Esto,que aparente -
:i
mente resulta ser un inconveniente, no crea dificultades -
posteriores; ya que muchas acciojnes serán consideradas "no
¡
importa" cuando en los demás casps no generen problemas de
operación.
Al final del ciclo de lectura, la¡ instrucción a la que se
llega luego del salto se recibe e ACI durante T2.

Si se produce un direccionamiento indirecto, básicamente-


existen dos posibilidades:
La primera cuando se direcciona c alguier localidad entre
00020 y 00037 , posibilitándose en este caso un proceso-
8 8 . |
de índice automático que incrementa o decrementa su conte_

nido en uno, utiliza la palabra aliterada como una nueva -

dirección y la vuelve a escribir sn la misma localidad de


memoria.

Este proceso puede ser desarrollado, y obviamente así se-


lo realiza, generando en primer JJügar un ciclo de lectura
modificación y escritura para lue¡go solicitar el ciclo de
'i'
memoria que corresponda a la instrucción en proceso:

LDA con direccionamiento indirecto y proceso de índice au
temático:

T2 TO TI T2 TO TI T2 TO TI T2 1m o TI T2 TO TI T2 TO TI T2

A / ir
'
1 \C / V
ACI
ACI XR ) AC

A+B A±l ]

Una ves realizado el incremento p decremento automático se


genera una nueva dirección que piji.de un ciclo de lectura.
Si esta dirección corresponde al[módulo de memoria que con
: ii
tiene la localidad direccionada fLnicialmente, el ciclo de
lectura solicitado comenzará una, vez finalizado el ciclo de
lectura modificación y escritura, en caso contrario, el ci-
cío correspondiente se generará q&nforme a la línea puntea-
da.
STA con direccionamiento indirectip y proceso de índice au-
'i'i
temático:
TO TI T2 TO TI T2 TO TI T2 TI T2 TI T2 TO TI T2

~\2 Y ACI (AC)


\O 7 \

AC
ACI XR
A-fB A±l (A) A

Similarmente a lo anterior, el ci blo de escritura dibujado


¡i
con línea punteada corresponderá a un módulo "desocupado".

ISZ - DSZ con direccionamiento indirecto y proceso de


ce automático:
TO TI T2 TO TI T2 TO TI T2 Tf) TI T2 TI T2 TO TI T2

•\2 i ACI
.J \O L_

ACI XR

A+3 A±l (A±l) A±l

JMP con direccionamiento indirectip y proceso de índice au-


tomático :
T2 TO TI T2 TO TI T2 TO TI T2 T|p TI T2 TO TI T2 TO TI T2

A ACI
/ j/
r L —¡

k\: / L
i
ACI XR 1 :) ACI
CP
A+B A±l .1

;
JSR con direccionamiento indirect i y proceso de
-i -índice
^- au

temático :

T2 TO TI T2 TO TI T2 TO TI T2 1 D TI T2 TO TI T2 TO TI T2

A r~\ v
Bl

/ t~.
-J -_/ •t *—.,—-• *—
CP ACI
AGÍ XR (ACI) ACI
AC3 CP
A A-IB A+l f
'

La segunda posibilidad en caso de direccionamiento indirec


to es aquella que no involucra un proceso de índice automá

tico. En este caso se genera un :iclo de lectura en la me

mor i a para traer la dirección efe :tiva y sólo al final se-


|
solicita el ciclo de memoria que :orresponda :

LDA con direccionamiento indirect

T2 TO TI T2 TO TI T2 TC TI T2 TO TI T2
Cic.lo '
de M
A-R£31
V / ACI
\ / V
B-RWS2 ACI XR ••! AC
WS1
OP A+B A ¡

La dirección localizada indirect; \ente no se retiene en nin


gún registro de la UAL (ya que no; es necesario), pasando di

rectamente por el generador de funciones hasta depositarse-


en el registro de direcciones de memoria. Esta acción se -
la realiza en el ciclo T2 correspondiente al tiempo en el -
•" i -
•I
cual culmina el ciclo de lectura jlsolicitado. La nueva direc
ción y el código LDA genera, una s/ez terminado el direccio-
namiento indirecto, otro ciclo dé lectura para traer el da-
to leído al acumulador seleccionado en la instrucción.

STA con direccionamiento indirecto:

T2 TO TI T2 TO TI T2 TO TI T2 T! 5
j TI T2 TO TI T2 TI T2

\I / ACI
\ / AC
i
1
!
i
i
\O
!
XR

A+B r
El procesamiento indirecto es idéntico al caso anterior,lo
f:
mismo que para todas las demás instrucciones.

ISZ - DSZ con direccionamiento infiirecto:

T2 TO TI T2 TO TI T2 TO TI T2 Tl
TI T2 TO TI T2 TO TI T2

\I / ACI
\ / í
i
\
:
XR

A+B 1 A±l

JMP con direccionamiento indirecto:


¡

T2 TO TI T2 TO TI T2 TO TI T2 TO TI T2
Ciclo
de M
A-RS1
\I / ACI
\ / \I
B-RWS2 XR ¡ t
WS1 CP
OP A+B ;
- 117 -

JSR con direccionamiento indirecto:

• , T2 TO TI T2 TO TI T2 TC TI T2 TO TI T2
Ciclo
rl o fl
US

A-RS1
M A CP AGÍ
/ *
\ / . V
B-RWS2 AGÍ XR ^CI
WS1 AC3 CE
OP A+B ¡I
Si una instrucción trabaja con varios pasos de direcciona -
miento indirecto, es necesario generar tantos ciclos de LME
[en proceso de índice automático] o de L (en direccionamien
to indirecto normal) cuantas selecciones indirectas involu-
cre la instrucción en ejecución.
Toda instrucción de salto debe giiardar la "dirección efect_i
va" en CP, por lo que, en caso de. dirección indirecta este
depósito se lo realiza en TO unaj vez culminado el procesa -
miento indirecto.

Instrucciones de -Entrada y Salida - No implican ciclos en

la memoria. Para descri^


bir su comportamiento en el manefo de los registros de la -
1
UAL pueden ser divididas básicamente en los siguientes gru-
pos: Instrucciones que operan coi. transferencia de datos -
hacia o desde el equipo periférico, y aquellas que actúan -
para control de salto o de cierté dispositivo de entrada y
Si-
salida. La decodificación del cóaigo del dispositivo en tra_
,i i
bajo (bits 10 a 15) así como el control sobre los biesta
bles ocupado y terminado (bits 8:y 9) se realizará en las
unidades de entrada y salida E/S¿¡ Para posibilitar la deco-
dificación de los bits mencionadas desde las unidades de E/S
toda instrucción de este tipo se; pone en la barra de direc -
cienes. Las instrucciones que det srminan transferencia de
datos son las únicas que trabajar con los registros de la
UAL y pueden ser visualizadas en dos grupos.

Instrucciones que mandan datos ha¡ bia un acumulador (DI) :

T2 TO T T2 TO
f

A-RS1 AGÍ
B-RWS2 AGÍ (AC)
WS1 - ,

OP A I

La lectura de ACI posibilita el e'ELvIo de la instrucción ha-


cia las unidades de E/S a través de la barra de direccio..-
nes.
La recepción del dato en AC se realizará durante el ciclo
¡jj
TO que siga al depósito del dato G'orrespondiente en la ba
rra. En el gráfico anterior se presenta esta recepción a
400 nanosegundos de enviado el cócigo sólo para mayor cía
1
ridad, ya que la interfase necesitará por lo menos 1 micro-
segundo.

Instrucciones que mandan datos haqLa E/S DO

T2 TO Tl'f T2 TO

'!
A-RS1 ACI • 1 AC
B-RWS2 AGÍ t
WS1
OP A ,1 !A
119

La transferencia de datos desde ijfn AC hacia un dispositivo


periférico se realiza durante T2 por consideraciones de de
codificación que se explican posl eriormente.
Hasta aquí se ha realizado una descripción del proceso de-
manejo de los registros de la UA1L I Tómese en cuenta que los

circuitos empleados como registrbs ofrecen 8 localidades -


•I
de las cuales se ocupan 6: CP, ACI, ACÓ, AGÍ, AC2, AC3.
El sistema en poliducto incremen :a y complica el hardware.
!
La figura 4.4-1 muestra el proce samiento paralelo (sóbrela
pado) de varias instrucciones aritméticas seguidas:

TO TI T2 TO TI T2

PEDIDO DE
INSTRUCCIÓN
,1, 2
1»¡ 4
-
5 R

LLEGADA AL 1 : 2 3 4
IR

DECODIFICA-' i 2 3 4
CION
¡1
CÁLCULOS EN 1 2 3
LA UAL

RESULTADO ¡ 1 2 3
EN UN AC 1
i

Figura 4 4-1

El diseno de un sistema como el :propuesto requiere especial


• li
cuidado con el tiempo empleado en cada acción. El tiempo -
:lj
de decodificación debe ser lo rasas corto posible y sus seña-
les mantenerse lo suficiente para desarrollar todas las accio
- 120 -

nes requeridas por cada instrucción. Toda acción debe suje-


í
tarse rigurosamente a un orden de ejecución dado por el flu
jo secuencial de instrucciones. Muchas veces será necesario
"detener" ciertas acciones hasta que culminen las que invo-
: i
lucra una instrucción previa.
¡
El diseño modular de la memoria permite solicitar instruc -
j
ciones consecutivas cada 400 nanosegundos
i (durante TO).
Esta posibilidad sin embargo, está sujeta al tipo de ins
trucción en ejecución y a la localidad direccionada en la -
memoria. No se puede pensar por ejemplo en hacer el pedido
de una nueva instrucción durante un proceso de diracciona -
miento indirecto.
La modalidad adoptada en el diseño establece que un pedido
! j
se realizará siempre en TO a menos que algo lo interrumpa.
1!
Aunque el diseño se inició tratando de hacer un pedido de -
[
instrucción de acuerdo al grado db ejecución de la instruc-
ción previa, es decir sólo cuando convenga, se optó por lo
primero debido a la ventaja que representa, en un sistema -

como el descrito, iniciar un nuevo pedido independientemen-


te del tipo de instrucción en ejecución (interrumpiéndole -
í
sólo en caso necesario) , asi como por el menor número de se_
nales a emplearse. La secuencia de traída de una instruc -
ción, conforme se plantea, establece la posibilidad de que
i
lleguen para su ejecución dos instrucciones seguidas (con -
i
un intervalo de 400 nanosegundos)j. La realización de la se-
gunda instrucción queda entonces condicionada a la termina-
121 -

ción de los cálculos de la UAL por la instrucción anterior.

Hasta aquí puede advertirse la necesidad de controlar la e-

jecución de dos acciones que a la postre constituyen la ba-

se del flujo secuencial de operación: la solicitud de una -

nueva instrucción y la realización de la misma. Estos dos

eventos se interacc'ionan mutuamente y el primero está ade -

más condicionado por la respuesta :dada por la memoria al pe_

dido de una nueva instrucción.

Cuando en la memoria se ha direccijonado la localidad de una


i
instrucción en un módulo en operación, se activará una se -
I
nal de ocupado, debiéndose por lo :mismo, mantener de alguna

manera ese pedido, impidiéndose otro hasta que el primero -

haya sido aceptado. |


i
Si una instrucción al salir de mempria es detenida su ejecu

ción, tampoco podrá realizarse en ese intervalo de tiempo

el pedido .de una nueva instrucciónj.

A continuación se presentan cierta's reglas generales que re_

sumen lo antes expresado:

El pedido de una nueva instrucción! no se realizará en los -

siguientes casos: |
¡
1.- Si la memoria no ha aceptado el pedido de la instruc

ción previa.

2.- Si la memoria no ha aceptado él pedido del ciclo corres_

pendiente en una instrucción con referencia a memoria -

una vez culminado el procesamiento indirecto si lo hay.


3.- Mientras se realiza el cálculo de dirección efectiva en
j
una instrucción con referencia a memoria o se deposita-

el código de una instrucción !É/S en la barra de direc -

ciones.
4.- Mientras el dato extraído de memoria no se haya modifi-
: i
cado en caso de una instrucción de modificación de me -

moria.

5.- Mientras desde la interfase de entrada y salida no se -

reciba una señal que indique la terminación de una ins-

trucción DI. .

El tiempo al cual comienza la ejecjución de una instrucción-

depende del tipo de instrucción que se esté realizando

previamente: - j
i I
1.- Las instrucciones aritméticas ¡permiten la realización -

inmediata de cualquier instrucción que sale de memoria.


. í
2.- La instrucción LDA detiene la ejecución de una instruc-

ción AL hasta que se haya cargado el acumulador corres-

pondiente. Esto para que la instrucción AL que sigue

pueda hacer uso del dato traído desde la memoria.

De la misma manera, una LDA detiene una STA y una DO; -

cuando coincide la selección de acumuladores,para que -

un dato de memoria pueda ser llevado a otra localidad -

de la misma, en el primer caso; y para que un dato ex -

traído de memoria pueda ser transferido a un dispositi7

y o periférico e n e l segundo. ¡i
Nótese que para el cálculo de ¡dirección efectiva de la -

siguiente instrucción en secuencia, en caso de ser esta-

cón referencia a memoria, no se puede utilizar el dato.-

extraido por LDA. \


¡ 1
La instrucción STA detiene uniqamente la ejecución de la
instrucción JSR durante un ciclo de RM,para evitar inter_

ferencias de selección en los 'registros.


i i
4.- Las instrucciones de salto: JMP y JSR, deben inhibir la-

realización de una posible instrucción traída posterior-

mente conforme al flujo secuencial de traída planteado.

5.- Las instrucciones que modifican la memoria: ISZ y DSZ, -


detienen la ejecución de cualquier instrucción que siga-

en secuencia hasta que el dato de memoria haya sido modi

ficado.

6.- Las instrucciones que transfieren un dato desde un dispcD


i
sitivo periférico a un acumulador: DI, detienen la ejecu_
j
ción de toda instrucción, con excepción de las AL, hasta

que el dato correspondiente se deposite en el Acumulador

seleccionado. í
,- Las instrucciones que transfieren un dato desde un Acumu
i ~~
lador hacia un dispositivo periférico: DO, detienen úni-

camente la ejecución de JSR durante un ciclo de RM, por-


i
problemas de interferencia en la selección de los regis-

tros . \\ Toda instrucción que utilice

!
la ejecución de cualquier otra jmientras no culmine este-

proceso.
En las páginas que siguen se presenta el flujo de ejecución
para todos los casos posibles, de dos instrucciones que sa-
len seguidas desde la memoria. Se considera, para mayor cía.
ridad, una respuesta de aceptación inmediata por parte de -
la memoria a cualquier direccionámiento solicitado, asi co-
i
mo de la interfase a una DI (en este último caso, el tiempp_
requerido será mayor al presentado).
La ejecución de una instrucción de salto a subrutina: JSR,-
tiene un tratamiento especial. Esta instrucción incluye en
i
su ejecución el depósito de la dirección de retorno en AC3,
i
es decir, de la dirección que sigue secuencialmente a JSR.

Si previamente a la ejecución de:una instrucción JSR se ha


i
solicitado una nueva dirección (incrementando en uno al CP)

en AC3 se guardará la dirección correcta.


En el caso de que no pueda solicitarse previamente una ins[
trucción, el CP al inicio de la instrucción JSR tendrá la-
dirección de ésta instrucción, debiendo por lo mismo incre
i
mentarse de alguna manera el contenido de CP antes de su -
|i
depósito en AC3. Existen dos formas para solucionar este -
problema, bien sea cambiando el código de operación a A+1
en la UAL durante la lectura de CP para su depósito en AC3
i
dependiendo si antes hubo un incremento de CP , o bien demo_
1 í
rando la ejecución de JSR mientras al contador de programa
! I
se le suma uno. En nuestro caso se ha optado por lo segun-

do ya que la decodificación planteada como primera solu -


ción resulta demasiado compleja.

Las instrucciones con referencia a memoria que utilizan di-

reccionamiento relativo (CP+ACI) ííeben ser tratadas en la -

misma forma que una JSR. Es por .o que el contenido del -

realización de una instruc_

ción de este tipo, tiene la direcfción de esta dirección in-

crementada en uno.

Si bien este incremento de CP no crea


' problemas en la ejecu

ción de la instrucción que sigue a una JSR,podría provocar-

la pérdida de la instrucción que sigue a una con direccio -

namiento relativo si no es de sal to.

Recuérdese que para la traída de una instrucción,el flujo -

secuencial planteado establece e; incremento de CP; por lo

que será necesario, en caso de beberse incrementado CP con

anterioridad (por una instrucció|f con direccionami.ento re-

lativo que no es de salto) , haceiíi el siguiente pedido im -


I
pidiendo un nuevo incremento de (SJP .

En la secuencia de instruccioneslgue se presenta a.conti -

nuación, las demoras en la ejecusión dé la instrucción se

indican con una flecha. La demora introducida a una JSR ó"

a una instrucción que utiliza difreccionaniiento relativo -


depende, como ya hemos dicho, de ¡que antes no se haya rea_
i
lizado un pedido de instrucción; ;todo incremento de CP -

sin solicitud de una nueva instrucción (de acuerdo al pre

senté caso) se muestra escrito ;ntre paréntesis.

- 126 -

En los ejemplos presentados no se incluye la posibilidad

de direccionamiénto relativo, per( , para este caso, basta

con demorar la ejecución un ciclo de reloj adicional simi_


larmente a lo hecho con una instrucción JSR. Tampoco se-

incluyen ejemplos' de direccionamiénto indirecto porque en

cualquier caso, una vez ejecutado'¡el proceso indirecto -


Í!
las secuencias no varían. 'j

La llegada al control de dos instrucciones consecutivas -

con un intervalo de 400 nanosegun^os, podría provocar la-



pérdida de la primera instrucción}, antes de que su acción-

En los ejemplos presentados no se incluye la posibilidad
de díreccionamiento relativo, perc , para este caso/ basta

con demorar la ejecución un ciclo de reloj adicional siini


larmente a lo hecho con una instrt ::ción JSR. Tampoco se-
incluyen ejemplos' de direccionamiento indirecto porque en

cualquier caso, una vez ejecutado el proceso indirecto


las secuencias no varían.

La llegada al control de dos instrucciones consecutivas -


con un intervalo de 400 nanosegun los, podría provocar la-

pérdida de la primera instrucción antes de que su acción-


haya culminado.
Para evitar que lo anterior ocurrjk, se dispone de dos ni-
veles en el Registro de Instrucca ones: IR1 e IR2; de tal
i
manera que cuando la segunda ins: rucción llega al IR1, la

primera pasa al IR2 .

Las transferencias de IR1 a 1R2 bstan sujetas a la decodi

ficación y duración de cada inst'j ucción.


T2 TO TI T2 TO TI T2 TO TI T2 TO TI T2 TO TI

LDA ¿\Li
• ii
ACI CP CP ,kCD
AGÍ XR ACI AC kCIS
CP qp ACD
A+B A+l A+l a^B
LDA LDA
ACI ACI CP CP
ACI XR ACI XR AC AC
®p CP
A+B A+B A+l i A+l

LDA STA
ACI ACI AC CP CP
ACI XR ACI XR AC
CP CP
A+B A+B A A+l I A+l

LDA oí A
ACI ACI AC CP CP
ACI XR ACI AC XR
CP CP
A+B A+B 1 A A+l A+l

LDA JMP 1
ACI ACI CP
ACI XR ACI XR AC ACI
CP !CP
A+B A+B A+l I
LDA U bK i
ACI (CP) CP ACI CP
ACI XR ACI AC XR ACI
(CP) AC3 ¡CP CP
A+B A+l A A+B; f A+l

LDA IDS:5
ACI ACI CP CP
ACI XR ACI XR AC
- CP CP
A+B A+B A±l A+l A+l

LDA DI
ACI ACI CP CP
ACI XR ACI AC (ACI
i CP CP
A+B A A+l A+l
T2 TO TI T2 TO TI T2 TO T2 TO TI T2 TO TI

LDA DO ^
ACI ACI AC CP CP
ACI XR ACI AC
QP CP
A+B A A A+l 1 A+l

LDA DO •fl CP
ACI ACI AC CP
ACI XR ACI AC
fií CP CP
A+B A 11" A A+l A+l

STA AL
ACI AC CP ACD CP
ACI XR ACI ACS
CP ACD :P
A+B A A+l A0B A+l i
STA LDA 1
ACI AC ACI CP CP
ACI XR ACI XR
1fcp AC
CP
A+B A A+B A+l í A+l

STA STA
ACI AC ACI AC CP CP
ACI XR ACI XR
CP CP
A+B A A+B A A+l f A+l

STA JMP
ACI AC ACI CP
ACI XR ACI XR ACI
CP CP
A+B . A A+B A+l í

bTA JbR
ACI AC (CP CP ACI CP
ACI XR ACI XR ACI
(CP) AC3 CP CP
A+B A A+J A A+B r A+l

STA IDSS7
f
ACI
ACI
XR
AC ACI
ACI XR
¡1
!
CP CP

CP CP
A+B A A+B 1-
A±l A+l A+l
T2 TO TI r T2 TO TI T2 TO 1'i T2 TO TI T2 TO TI

STA DI |¡
ACI AC ACI CP i CP
ACI XR ACI (AC)
C P CP

STA

ACI
ACI
XR
A+B A

DO
AC ACI
ACI
A

AC
A+l

CP
i A+l

CP

•<! CP
A+B A A A A+l ! A+l

JMP
ACI CP
ACI XR A0I ACI
CP CP
A+B A+l

JSR
CP ACI CP
ACI XR AJZI ACI
AC3 CP CP 1
A A+B A+l f
JLUb AJ_i '' itI
ACI CP ¥ :s CP
ACI XR ACI

A+B A±l A+l


Tí)B ACD
A+l
CP
•T

f
-LUb í> LÚA *~ 1
ACI ACI 1 CP CP
ACI XR ACI XR AC
CP CP
A+B A ± l A+B i! A+l A+l

lub STA *
ACI ACI AC CP CP
ACI XR ACI XR
CP CP
A+B A±l A+B f A A+l A+l

¿ U b id JMP
ACI ACI. CP
ACI XR ACI XR ACI
c:P CP
A+B A±l A+B A+l
T2 TO TI T2 TO TI T2 TO T2 TO TI T2 TO TI
*
í'!
IDS2 JSR l'i
ACI (CP) l! CP ACI CP
ACI XR ACI XR
(CP) AC3 CP CP
A+B A+l A±l A A+B A+l

IDS55 IDS2 1
ACI ACI CP
ACI XR ACI XR
CP
A+B A±l A+B I A±l A+l
1
IDS;5 DI • '
ACI ACI CP CP
ACI XR ACI (AC)
CP CP
A+B A±l A i A+l A+l

IDS5i DO *
ACI ACI AC CP CP
ACI XR ACI
CP CP
A+B A±l A i A A+l A+l

DI AL
ACI CP ACD CP
ACI ACI (AC) ACS
CP ACD iCP
A A+l A^B A+l í

LDA 1
ACI ACI CP CP
ACI ACI (AC) XR l AC
CP CP
A A+B f! A+l A+l

JJJ. falA l *~
i
ACI ACI, AC CP CP
ACI ACI (AC) XR
CP CP
A A+B A A+l A+l

JiVLJr i
ACI ACI1 ; CP
ACI ACI (AC) XR ACI
rp CP
A A+B | A+l
T2 TO TI T2 TO TI T2 TO T Si T2 TO TI T2 TO TI

DI JSR 1
AGÍ (CP) CP ACI CP
AGÍ AGÍ (AC) XR ACI
(CP) ACS C ? CP
A A+1 A A+B i A+1

DI IDSü5 |—
AGÍ ACI CP
AGÍ AGÍ (AC) XR
CP
A A+B 1 A±l A+1

DI DI I
AGÍ ACI CP CP
AGÍ AGÍ (AC (AC)
£:P CP
A A A+1' I A+1

DI
AGÍ
DO
ACI AC CP 1 CP
AGÍ AGÍ (AC)
I:P GP
A A A A+1 i A+1

DO
AGÍ
AL
AC CP ACD CP
I
AGÍ AGÍ ACS
CP ACD le:p
A A A+1 A0B A+1 I
DO LDA ¡

AGÍ AC ACI CP CP
AGÍ AGÍ XR 1 AC
¡C:P CP
A A A+B A+1 I A+1

DO STA
AGÍ AC ACI AC CP CP
AGÍ ACI XR
C:p CP
A A A+B A A+1 A+1

DO JMP
AGÍ AC ACI CP;
AGÍ AGÍ XR 1 ACI
CP C:p
A A A+B A+lf
- 133 -

T2 TO TI T2 TO TI T2 TO T % T2 TO TI T2 TO TI

DO J bR 11
AGÍ
AGÍ

A
AC (CP)
AGÍ
A A+l
(CP)
CP ACI
XR
AC3
A A+B
á 1i CP

A+l
CP
ACI

DO IDS57
AGÍ AC ACI CP CP
AGÍ AGÍ XR
CP CP
A A A+B A±l A+l A+l

DO
AGÍ
DI
AC AGÍ

CP
1
i
AGÍ AGÍ (AC)
1i D
CP

CP

DO
A

AGÍ
A

DO
AC ACI
A A+l

i A+l

AGÍ

A
AGÍ

A A
AC

A
CP

A+l
1i P
CP

A+l
CP
^w-v^

o
H
en
td
55
O
O

o H
td

a
£-= -\—
o
O

i-3

O
tr1
i ¡

CAPITULO V 1

DISEÑO DEL CONTROL

1.- TRANSFERENCIAS ENTRE REGISTROS' Y AHPL

En una computadora, la mayoría de las operaciones se reali-


zan transfiriendo la información de un registro (fuente) a
otro (destino) . ':
La descripción de una computadora consistirá esencialmente,
por tanto, de una lista de las transferencias de datos que
han de realizarse entre sus registros.
A menudo, la información que sale del registro fuente debe
¡i
ser alterada por alguna red combinacional antes de ser de-
positada en el registro destino. La información del regi_s_
!'
tro fuente se conserva, mientras que los datos anteriores-
í¡
del registro destino desaparecen. :-\a transferencia puede describir

do como el APL (A Programming Language). En general, mu -


chas tareas complejas, descritas en este lenguaje, requie-
, ¡;
ren un número mucho menor de pasos^ pruebas y ramificacio-
nes que en cualquier otro. De allí su utilidad para des -
cribir las operaciones de un sistema
j, digital y para progra.
marlo. • ¡I
•¡!
El AHPL (A Hardware Programming Lari]guage) es un lenguaje -
1 i1
derivado del APL en el que se incluyen sólo las operacio -
i
nes de APL que satisfacen las restricciones circuitales. -
- 135 -' ,

Una característica importante del1,; AHPL es que cada proposi_


ción está asociada a una configuración especifica de cir -
cuitos.
¡
!|
A continuación se describe brevemente las diferentes opera_
ciones posibles en AHPL asi como su representación.
Un operando (patrones de bits) puede ser una variable o un
'i
literal. : '

Variable.- Es un nombre por medioÜdel cual nos referimos a


un operando. Pueden clasificarse en:
Escalares.- Tienen un solo elemento y se representan con -
letras minúsculas o mayúsculas con subíndice o
superíndice. •j •
Vectores.- Son un conjunto unidimensional de escalares y
se representan con letras mayúsculas.
Matrices.- Son un conjunto bidimensional
i y se designan
con mayúsculas subrayadas.
jl
Literal. - Es el valor de un operando. Tómese en cuenta que
en AHPL los operandos serán normalmente booleanos,

es decir, pueden tomar solamente los valores O y 1,
'i
El contenido de un registro de un bit representa un escalar,
el de varios un vector y la memoria constituye un ejemplo de
una matriz.
La dimensión de un vector se designa con el prefijo p. En
el caso de una matriz p es la dimensión de fila y p la d_i
mensión de columna. La matriz puede considerarse entonces
i
como un conjunto de p vectores fila de dimensión p o p

ni
vectores columna de dimensión p fc
2
En nuestro caso, la memoria podrá! tener un máximo de p pa
2 ~~
labras de memoria, cada una de p bits; donde, p = 34000

y p = 16

(M01,r M
U-» j,
i J1 f .M ) es un vector di la y se designa como M1 .

(MÍ , M^ , ...Mí?2"1) es un vector cjblumna y se designa con M..


Operadores Primitivos . - Pueden actuar sobre escalares , vec-
tores y matrices.
Notación Nombre Significado
,z •<- x+y Suma z es Ha suma algebraica de x e y.

z •+• x-y Resta z es la diferencia algebraica de


[
x e y,|

z -t- xxy Multiplicación z es el producto algebraico.


z •<- x-ry Divisi-ón í
z es igual a x dividido por y.
z •<- x Valor Absoluto z es ligual al valor absoluto
de x.
z •<- xfy Máximo z es G|l más positivo entre x e y.
z •<- Mínimo z es el más negativo entre x e y.
z -«- x Negación Si x=0 ; z=l. Si x=l, z=0.
z •*- AND Si x=y==l, z=l; de otra manera z=0
:i

z -í- xvy OR Si x=l¡ o y=l o ambos, z=l; de o-


tra manera z=0.

Operadores de Relación.- Actúan sobre escalares y su forma

general es: z «- (xRy) .

Notación Nombre 1 •
Signnif icado
z +• (x<y) Menor que 2=1 i x<y, de otra manera z=0
z -<- (x^y) Menor o igual que si xjíy, de otra manera z=0
z -<- (x=y) Igual que z=l si x=y, de otra manera z-Q
z *• (x>y) Mayor que z=l si x>y, de otra manera z=0

2 •*• (x^y) Mayor o igual que z=l otra manera z=0


z +• (x?¿y) Diferente de z=l si x^y, de otra manera z=0

Operadores Mixtos.- Actúan sobre Barias combinaciones de es-

calares, vectores y matrices. 0 represen^

ta una operación.

Notación Nombre Significado

z •<- e/X Reducción z=X00X10X2...©X


p x-i
Z •<- 0/X Reducción por filas Z =©/X1
i
Z -í- 0//X Reducción por columna^ Z .=0/X .

z •«- Decodificación z es el valor de X en

base j.

X -*- j (n)Tz Encodificación X es el vector corres-

pondiente al número z

en base j. n es el nú-
mero de elementos de X.

Z -í- X,Y Concatenación Z es la unión de los -

vectores X e Y.

Z •<- U/X Compresión Z se obtiene de X supri


miendo cada X. para el

cual Ü.=0.

A -í- U/M Compresión por filas A1=Ü/M1

A *• U//M Compresión por columna? A .=U/M .


D D

J L
Z -«- npx Reconformacion Z es un vector con n
elementos iguales a x.

ktX Rotación a la izquiei da Rotación de X en k si-


tios a la izquierda.
Z •+• k+X Rotación a la derecha Rotación de X en k si-
tios a la derecha.
M Rotación hacia arriba! Rotación de N_ en una
fila hacia arriba.
M Rotación hacia abajo Rotación de N en una.
fila hacia abajo.
Z •*- k£X Desplazamiento a la Desplazamiento de X
izquierda en k sitios hacia la
izquierda poniendo -
ceros en. las posicio_
nes vacantes.
Z •*• k?X Desplazamiento a la Desplazamiento de X
derecha en k sitios a la de-
recha poniendo ceros
en los sitios vacantes,
Vectores Especiales.-
Notación Nombre Sig lificado
Vector Unitario Vector con todos los elemen
tos iguales a cero excepto el
.de la posición j que es igual
a 1
en Vector Completo Vec or compuesto de n unos.
a n Vector Prefijo Vector de n elementos con -
lojs j primeros 'iguales a 1-
y el resto iguales a O.
Vector Subfijo Vector de n elementos con -
1|
lob j últimos iguales a 1 y
el¡resto iguales a 0.

Un programa escrito en AHPL tiene dos tipos de rutinas:


1.- Rutina de Secuencia de Control.- Es la lista de todas-
las transferencias en_
tre registros y proposiciones de ijamificación que especifi
i 'p
can el funcionamiento del sistema.!
2.- Subrutinas de Lógica Combinacional.- Cuando las opera-

ciones durante -
i
las transferencias son muy complejas en la rutina de Se -
cuencia de Control, éstas se representan por medio de una-
¡
palabra adecuada evitando escribir! toda la secuencia.
En una rutina de Secuencia de Conürol se trabaja especial-
1
mente con Ramificaciones y Transí efrencias.
Ramificaciones.- Pueden ser condicionales e incondiciona -
les. -
Notación Significado
(N) Transferencia incondicional-
del control a la proposición
número N.

-P ) El control se transfiere a -
n i
la proposición p a si i=0, a
P2 si i=l y asi sucesivamen
te.: El valor de i puede ob-

tenerse por medio de una ope_

ración aritmética o lógica.

x:k, (< , =, >) •* (pi ,PZ ,p 3) Estaj proposición compara los


valores de x y k, y, si x es

menqr, igual o mayor que k,-

el tiontrol se transfiere a -

la proposición pi,p 2 o p 3

respectivamente. El valor -

de X puede ser.obtenido de -
¡
una ;operación aritmética o -
lógica.

x:k, (=,7*0 -*- (pi ,P2) Esta| proposición es similar

a la, anterior.
i
•*• ( (Aj *A2* . . , A ) xp x ) + En esta transferencia , * re-

((Ai*A2*...A ) xpz) + .- - presenta


i una operación lógi-

( ( A i * A 2 * . . . A ) xp n) ca ciualquiera y el control -
n 2 :
se transfiere a la proposi -

ciónj que quede multiplicada-

por 1.
i
Transferencias.- También pueden ser condicionales o incon-
dicionales. El üjado derecho de una propo_
sición de transferencia puede ser cualquier expresión en -

APL cuyos argumentos sean flip-flops, registros o barras.


Las principales proposiciones de tiransferencia se muestran
i
a continuación:
Notación Significado

AC3 •*- CP Poner en el registro AC3 el conte-


nido del registro CP. Como AC3 y
CP puede utilizarse cualquier otro
registro destinación en este ca
so es fif a) .
-MAR
•*- MDR Poner en la dirección de memoria -
especificada por MAR el contenido-
de MDR (J a destinación en este ca-

so es variable)
(A A a) V (B A a). •<- A Poner el contenido de A en A si el
flip-flo^j a=l, de otra manera poner
lo en B,
Transferencias simultáneas pueden especificarse por concate^
nación o listando ambas transfereí]cias separadas por una co_
ma.
2.- DEMORAS DE CONTROL Y DIAGRAMA DE FLUJO DE LAS
.i
INSTRUCCIONES !

La sección de control de un sastema de procesamiento de


datos se la describe en términos de secuencia, tiempo,-
decodificación y decisiones lógicas.
En el capítulo anterior se trató del flujo secuencial -
de operaciones y se planteó una base de tiempo para las
acciones a desarrollarse en la' unidad aritmética y lógi_
ca.
En las cadenas de control se establecen ciertas formas-
de decisiones lógicas que determinan la realización -
inmediata o la espera de un proceso. Estas condiciones-
llamadas "demoras", controlan las acciones que constitu_
yen el flujo secuencial de operación.
'i
El control debe coordinar las diferentes condiciones de
i
trabajo impuestas tanto por el¡sistema de memoria como-
1
por los dispositivos periféricos. Debe establecerse un-

orden de prioridad que gobierne^ todos los procesos.


¡
A veces es necesario producir u'n retardo conocido antes

de realizar una cierta transferencia. Se dice entonces-

que tal demora de control produce una transferencia sin

crónica ( se supone que tiene lugar después de un pulso

de reloj). Sin embargo, otras veces es necesario espe -

rar a que se ejecute una cierta transferencia de dura -

ción no prevista, sincronizando el pulso de control con


i
la terminación de la transferencia.
La descripción del control, en ni estro caso, requiere de de

inoras de control sincrónicas y a, uncrónicas. Para las primes

ras se utilizan biestables tipo D , con la fase de reloj más


adecuada de acuerdo al número de demoras requerido; se las-

representa con la palabra DEMORA luego de la transferencia-


correspondiente :
MDR «- MXMAR, 3 DEMORAS.
Para las demoras de duración no pi evista se emplea la confi

guración de la figua 5.2-1. Consis :e de un biestable S-R -

que retiene la señal de inicio, de una compuerta que inhi -


be el paso de esta señal hasta que culmine el proceso de -

I
duración no prevista, y de un segu do biestable tipo D que-

fija el mínimo tiempo necesario paasa que la señal se propa_


i
gue sin contratiempos por la cadena. Este último biestable

se ocupa también de borrar el biestfeble de espera. Este -

tipo de demora suele representarse pon la palabra ESPERAR-

o con las proposiciones que se muestran en la misma figura

5.2-1.

1 FT: 1, (=,5*) + (3,2)

2 + (1)
3

SÍMBOLO:

si

Figura 5.2-1
FT
Existen otras acciones sujetas a ina espera de duración no-
prevista sin caer dentro del marc circuital antes explica-
do. Tales acciones no pueden inic Larse para luego mantener-
se, sino mas bien debe sujetarse su inicio sólo al momento-
adecuado. Demoras de este-tipo pu =den implementarse con una
sola compuerta. Figura 5.2-2

SEÑAL PERIÓDICA

SEÑAL DE_
INHIBICIÓN

Figura 5.2-2

Las demoras de este tipo inhiben si paso de una señal pe -


riódica y es justamente por ello jue no necesitan un siste-
ma de retención. El tipo de comp rta utilizado puede variar
de acuerdo a los niveles lógicos ñas recomendables en el
sitio de diseño.
La elección de una u otra forma s demora de duración no
prevista, depende,en nuestro cas de varios factores.
La posible utilización que podrí darse a una señal reten_i .

da.
La necesidad de disponer de una eñal periódica para obviar
la retención.
Las consideraciones generales im uestas al diseño.
A continuación, en la figura 5.2 3 se muestra el diagrama -
general del flujo de control pía teado en el presente dise-
ño. Su análisis se desarrolla pa latinamente a lo largo de
TO
1

P E D I D O DE
INST RUCC ON

Q2T

LLEGADA DE
I N S T R U C C I Ó N j\ IR

C A L C U L O DE ENVÍO DEL C Ó D I G O
01 R E C C I O N A M I E N T O . DE D I S P O S I T I V O A E/S

Si

S A L I D A DE M E M O -
RIA DE LA N U E V A
D I R E C C I Ó N . EJECU-
CIÓN DE Í N D I C E
A U T O M Á T I C O SI
LO HAY

Figura 5.
- 146 - .

este capítulo. L j :

Las demoras dibujadlas corresponden sólo a aquellas de dura-

ción no prevista y :que retienen ,1a señal.


Cadenas de Control :

Las cadenas de control constituyen el instrumento por medio

del cual fluye una señal comando que habilita o impide las-
diferentes acciones.

Toda señal de control está relacionada de alguna manera con

una decodificación. Si bien las ¡cadenas de control se dise-


ñaron paralelamente a todo lo que es decodificación,este
1 i
trabajo los presenta como dos procesos separados con el fin
de visualizar; primero, el tiempo al cual se generan las ór_

denes y posteriormente el cómo llevarlas a cabo.

Debe tenerse presente que todo el trabajo a desarrollarse -


en la Unidad Central de Proceso 's,e ha dividido en ciclos de

trabajo. Esto facilita y simplifica el diseño de control -


permitiendo que muq'has acciones se realicen casi indepen

dientemente de las cadenas, su j etándose tan solo a una repe_

tición continua en el ciclo de trabajo apropiado. Las accio_

nes que pueden ser tratadas de esta manera son consideradas


"no importa" en los casos cuya acción no interesa.
Resulta complicado explicar en detalle la relación y dura -
ción de tal o cual señal en el control de determinado cir -

cuito es por ésto que se prescindirá en el presente texto -


de justificar los tiempos de las 'señales, enfocando sólo

aquellas que a nuestro parecer son las más críticas. De la


3.- CADENA DE CONTROL PARA LA FASE DE TRAÍDA

El Contador de Programa (CP) contiene la dirección de la -


instrucción en ejecución. Cuando una instrucción ha culmi_
i
nado, el contenido del CP se incrementa en uno y es trans-
ferido al Registro de Direcciones :de Memoria (MAR) , se ejji
i
cuta una función de lectura y la próxima instrucción se co_

loca en el Registro de Datos de Memoria (MDR). El conteni_


do del MDR se transfiere a-otro registro, el IR1 o Regis -
tro de Instrucciones y también al Acumulador de Instruccio_
nes (ACI). Este procedimientose llama "Fase de Traída" y
i
las acciones involucradas se especifican detalladamente a-

continuación: |

- Selección y habilitación de lectura del CP en los regis-
tros SN74172: RS1 y REÍ. |
i
- Selección de la operación A+l en!, el generador de funcio-
nes AM2506: SO, SI, S2, S3, M y Cn; para que CP se incre_
mente en 1.
- Habilitación de escritura de CP+1 en el MAR: E74116.
- Selección y habilitación de escritura de CP+1 en CP: WS1
- y WE1. i
í
- Espera de aceptación de memoria.;
- Habilitación del tcansceptor de barra: E26S12M; para que-
la instrucción traída de memoria pase a la barra de da -
tos B.
- Selección y habilitación de escritura del Acumulador de-
Instrucciones, para que la instrucción se deposite allí:
RWS2 y WE2.
- Depósito de la instrucción en el Registro de Instruccio-

nes: EIR1. j
i
El control se ocupa de que todos y cada uno de estos even-
l
tos se realicen rigurosamente en una secuencia que satisfa
ga los requerimientos de tiempo impuestos por los circui -

tos. ;
Dejando a un lado, por el momento, todo lo que implica se-
lección y decodificación; la fase de traída puede resumir-
se entonces a los pasos de control que a continuación se -
detallan:
ACCIONES CONTROL

WE1, E74116

3 ESPERAR ACEPTACIÓN DE MEMORIA


i MAT?
4 MDR •*- M , 3 DEMORAS
5 B •+- MDR, ACI -4- B, E26S12M, WE2,
IR1 •*- B, IR2 + IR1 EIR1, EIR2

6 B 0 :l, (=,¿) + (7,10)

Los pasos escritos en AHPL se realizan por medio de una


i
"señal comando" en la cadena. Las, varias fases de reloj u_
i
tilizadas en el diseño impiden escribir con suficiente cla_
ridad un programa cuyos pasos se realicen en un ciclo espe
clfico de reloj. Sin embargo, se presentan los pasos cu
yas acciones se realizan en aproximadamente un ciclo del -
reloj maestro RM.

• •- -*a— i - -
Nótese la ausencia de control sob;]?e REÍ (habilitación de -
lectura en los registros 74172). Por ahora considérese que
tal entrada se encuentra siempre abilitada y trátesele co-
mo una condición no importa.
La espera de aceptación de memoráj obedece al diseño en po-
liducto, ya que podría haberse di eccionado un módulo de me

moria que se halla ocupado en cuy! caso hay que esperar su-

desocupación.

Las 3 demoras en el proceso de lectura (paso 4} involucran

el tiempo que toma la memoria en esponder a un pedido de -


lectura (tiempo de acceso) .

La cadena de control que ejecuta [a fase de traída se mues-

tra en la figura 5.3-1.

A C E P T A C I Ó N DE
MEMORIA
n
4.- CADENA DE CONTROL PARA LAS INSTRUCCIONES ARITMÉTICAS
Y LÓGICAS
Las instrucciones aritméticas y .lUgicas no involucran nin
guna referencia a la memoria. Su ejecución esta sujeta ú
nicamente a la demora producida si; es que la instrucción-
gue se ejecuta previamente es una LDA, ISZ y DSZ o duran-
te la realización de un direccionamiento indirecto.
Los pasos necesarios para la real; zación de una instruc

ción aritmética y lógica son:


- Selección y habilitación de lectura del Acumulador Des-
tino (ACD) durante las instrucc; ones: ADC, SUB, ADD y -
AND: RS1 y REÍ.

- Selección y habilitación de lecl


te (ACS) durante cualquier insta ucción:
i
RWS2 y
•*
RE2.
i
- Selección de la operación correspendiente a cada instruc
ción en el circuito generador de¡ funciones: SO, SI, S2,
S3, M y Cn.
- Selección de paso en los circuit os multiplexers 9309 pa

ra desarrollo de un posible desj lazamiento del resulta-


do: SO y SI.
- Selección del valor que tomará 1 carry (por medio del-
circuito presentado en el capítulo III, punto 4)
- Selección y habilitación de escí itura en ACD y habilita
ción del reloj que carga al linl cuando el bit 12 = O
WS1, WE1 y CK1.
Habilitación de un circuito que* posibilite el salto de
la siguiente instrucción en secuencia
•. i cuando los bits 13
- i
14 y 15 así lo determinen.

Para diseñar una cadena que controle todas las acciones an


teriores, dejaremos por el momentbj a un lado todo lo que -
implica decodificación no asociada; directamente a la cade-
\ !
na. Esto, porque muchas de las selecciones a realizarse -
I|
son comunes a otros procesos del control y pueden analizar
i p
!!
se independientemente de las cadenas; sujetando su acción-
11.1
iii
sólo a una fase de reloj adecuadajjj
I<
i•
Téngase presente que el trabajo de¡ la cadena no es otro
que el de fijar en el tiempo aquellos procesos que de nin-
guna manera podrían sujetarse a una señal periódica como -
un reloj, o bien servir como instrumento que facilita la -
decodificación.

Conforme a lo anteriormente explicado, las señales comando


en la cadena para control de instrucciones aritméticas y -
i ¡
i i
lógicas pueden reducirse a: !
ACCIONES CONTROL
7 ESPERAR SEÑAL DE EJECUCIÓN
8 1 DEMORA
9 ACD •+- ACD0ACS , Link •*- Carry RE2, WE1, CK1
IR2 •<- IR1, ->• SALIR EIR2
También en este caso REÍ puede considerarse siempre acti
vado sin que cause problemas.
La habilitación para un posible salto de la siguiente ins-
trucción en secuencia no depende directamente de esta cade

- QTA—
SEÑAL OE
EJECUCIÓN
AL
Q2A

Figura 5. -2
5.- CADENAS DE CONTROL PARA LAS INSTRUCCIONES CON REFEREN
' i
CÍA A MEMORIA !
i |
Las instrucciones LDA, STA, JMP, ;JSR, ISZ y DSZ requieren

para su ejecución una segunda referencia a la memoria. -

Todas estas instrucciones por medio de su "campo de direc_

ciones" indican la localidad de memoria de donde obtener-

una palabra de datos o en la cual ¡ésta debe almacenarse.


. !

El sistema de direccionamiento puede ser indirecto, en cu_


: i
yo caso las referencias hechas a !]la memoria serán muí ti" -

pies dependiendo del bit cero de :3la palabra direccionada.

La ejecución de estas instrucciones deberá sujetarse, por


i
consiguiente, a una señal de inicio de ejecución y a una-

señal de aceptación de memoria. :SJi bien la señal de ini-


\
ció varia dependiendo de la instrucción en realización y
: i
de la instrucción previa, puede iitiplementarse un sistema

de demora común, decodificando luego la señal de ejecu -


i
. i
ción para que produzca sólo las demoras previstas.
: i
Es necesario una vez iniciada la ¡ejecución separar el con_

trol para los procesos de direccionamiento indirecto.

El direccionamierlto es común a todas las instrucciones y

por lo mismo puede utilizarse una !sola forma de control.


Los pasos en AHPL que describen el control en el cálculo
i
de dirección efectiva se dan a continuación:
ACCIONES CONTROL

10 -*• (Mxll) + (E/SX54)

11 ESPERAR SEÑAL DE EJECUCIÓN


12 -5- (JSRX14) + (JSRX13)

13 -*- (JMP xl5) + (JMPX17)

14 AC3 *• CP ! WE1

IB MAR -fr- tü8/ACI+XR, CP +- W8/ACIJJXR RE1M, RE2, E74116, WÉT

ANULAR CUALQUIER TRAÍDA EN PROCESO

16 -*- (19)

17 MAR •«- tü8/ACI+XR RE1M, RE2, E74116

18 IR2 IR1 EIR2

19 •• J_i , ^ =O ->- \f\J20


(=5 til i i- \J40)
I

La decodificación asociada al conjtrol en los pasos 12 y 13


es estrictamente necesaria por lajs variantes en el flujo -
de decisiones introducidas por la¡s instrucciones JMP y JSR.
Las instrucciones que no provocari un salto incondicional -
ponen la dirección calculada en ¿. MAR, mientras que las
de salto deben además poner esta dirección en el CP. La -
instrucción de salto a subrutina debe también guardar la -
dirección de retorno en AC3.
Recuérdese que el cálculo de dirección efectiva debe reali
zarse sólo con los últimos 8 bits de ACI y que XR represen
ta: a.- Uno de los registros índice: AC2 y AC3; b.- CP si-
el direccionamiento es Relativo; c.- Ningún registro cuan-
do se direcciona en Página Cero.
La habilitación de lectura del AÉÍI implica la utilización
de REÍ... Esta señal que la estamos considerando siempre ac
:|

tivada, deberá desactivarse en este caso para los 8 bits -


más significantes (RE1M)

Q4J

Figura 5 5-2
El circuito de demora utilizado en1 la figura 5.5-1 difie-
re un poco de los anteriores. Su diseño esta encaminado-
a conseguir un circuito que pueda lemplearse aún con las -

instrucciones de entrada y salida. La decodificación pre_


sentada en el paso 10 de control ¿e la realiza luego del-
biestable que produce la señal Q2ME/S.

Si el circuito que mantiene Q1ME/S se lo utiliza tanto pa_

ra instrucciones de memoria como para las de entrada y SEL


lida, cabe suponer que desde la cadena de E/S deberá tam-
bién existir la posibilidad de borrarlo. Esto se logra -
con la señal Q3E/S.

La señal Q4J es la que anula cualquier fase de..traída en-

proceso. Para ello se la utiliza 1 a las entradas de las -

compuertas que decodifican las señales AL y M,E/S en la -


cadena de la fase de traída. |

CADENA PARA DIRECCIONAMIENTO INDIRECTO


¡
Cualquier direccionamiento indirecto comienza realizando

una referencia a la memoria. Debe por consiguiente suje-

tarse a la demora provocada por la señal de aceptación de


memoria (QAC). :

Las variantes introducidas en el control de un procesa -


i
miento indirecto estaran dadas por la posibilidad de que-
exista incremento o decremento automático.
Los pasos que describen toda la secuencia involucrada son

los siguientes:
ACCIONES CONTROL

ESPERAR ACEPTACIÓN DE MEMORlJ

B -4- MDR, S -4- B ' E26S12M, REÍ, bÉ

-*• (25) '


B 0 :l, (=,T¿) •* (20,40)

F: 000208, (>,=,<) -> (26,26,|

F: 000378, {>, = ,<) + (36,27,1?)

F: 000308, (>,=,<) -^ (28,28,|

B HT S-l, MDR -4- B, M"1"^^1^ -4- MDÉ E26S12UAL, CKMDR,

MAR -<- S-l E74116

29 . ->• ( (JMP V JSR) X30) +

( (JMP V JSR) x24)

30 CP •*- S-l WE1

31 + (24)
-LMAR
32 B •*- S+l, MDR •*- B, M •*- MDÍ E26S12UAL, CKMDR,

MAR •*• S+l É74116

33 •*• ( (JMP V JSR) X34) +

( (JMP V JSR) X24)

34 CP •*- S+l WE1

35 ^ (24)

36 MAR •*- S E74116

37 •*• ( (JMP V JSR) x38) +

((JMP V JSR) x24)

38 CP •*- S WE1

39 •*• (24)

j
i
La decodificación del direccionamiento indirecto con incre_
mentó o decremento automático se realiza a la salida del -
circuito generador de funciones y paralelamente al cálculo
de dirección efectiva. En el programa de control se pre -
senta en los pasos 25, 26 y 27 paral hacer más clara su ac-
ción. I
!
Al circuito selector se le designa¡con S y para la escritu_
i
ra del programa se le trata como un retenedor.
Cuando se utiliza el selector debe; habilitársele por medio
de OE. Es necesario en este caso nuevamente impedir la ha
bilitación de REÍ; ya que de otra manera en las entradas A
t
del generador de funciones habría ¡una mezcla de niveles.
_ ¡
La señal E26S12UAL se refiere a la entrada de habilitación
deltrarns.ceptor de barra hacia el lado de la UAL. CKMDR es
el reloj que carga a los retenedores MDR.
Las figuras 5.5-3 y 5.5-4 presentan el circuito y los dia-
gramas de tiempos para un direccionamiento indirecto.
En la figura 5.5-3, F = 1 es la línea que indica si debe -
realizarse un incremento o decremento automático.
Las líneas punteadas en el diagrama de tiempos representan
un segundo direccionamiento indirecto.

CADENAS PARA DIRECCIONAMIENTO NORMAL

Estas cadenas ejecutan las instrucciones con referencia a


memoria.
E2GS12M
OE
REÍ E7M16

WE1 E26S12UAL
RM2 CKMDR

Figura 5 5-3

T1 T2 TO T1 T2 • p T1 TO

J r
L_

r~ • -
Q5I

Q6I


Q7I

Figura 5 5-4

1
El flujo secuencial de operación uede escribirse como

sigue:

ACCIOlNÍES CONTROL

40 ESPERAR ACEPTACIÓN DE MEMOR3J

41 -+ (STA x 4 2 ) + ( S T A X 4 4 )

42 1 DEMORA

E26S12UAL, CKMDR

•*• SALIR

44 -»• ( (JMP V JSR) x46) +

( (JMP V JSR) x45)

45 •*• ( (IS2 V DS2) x47) +

(LDAX52)

.46 * (4)
J.MAR
47 MDR M , 3 DEMORAS

48 B •«- MDR, S •*- B E26S12M, .GE, REÍ

49 •*• (DSZxSO) + (ISZxSl)


-LMAR
50 B •*- S-l, MDR -«- B, M •<- MD E26S12UAL, CKMDR

SALIR
J-MAR
51 B -H S+l, MDR +- B, M ^ MD E26S12ÜAL, CKMDR

•í- SALIR
-LMAR
52 MDR •*• M , 3 DEMORAS

53 B •«- MDR, AC •*• B E26S12M,. WE2

•*• SALIR
La realización de las instrucciones STA, ISZ y DSZ requie-

re de señales comunes de control sobre E26S120AL y CKMDR.-

Las diferentes demoras en la ejec ciÓn permiten utilizar -


un sistema único de control.
Una instrucción de salto: JMP o J£R, obtiene del contenido
de la localidad de memoria especificada por la dirección e_
fectiva, la siguiente instrucción a ejecutarse. Tal proc£
dimiento resulta similar a la recepción de una instrucción
I
durante la fase de traída; por lo ¡ique en este caso, el ccm
i
trol se ramifica hacia la cadena de traída (paso 46).
La figura 5.5-5 indica el circuit® de control utilizado .en
la implementacion de las instrucciones con referencia a me
moria. Nótese que los circuitos fle demora para ISZ, DSZ,-

JMP, _JSR y LDA son comunes. i


La figura 5.5-6 muestra el diagrama de tiempos correspon -
itras la figura 5.5-7 lo
diente a una instrucción STA, mié

QAC

STA
T2A' Q6

E26S12UAL
CKMDR

E26S12M
WE2

Figura 5.5^5
Figui;a 5 • 5-6
TI T2 TO TI T2 TO

i
J

0 5M

Figura 5.5-7

Las instrucciones con .referencia Ja memoria requieren más


de 400 nanosegundos para su ejecución. La posible llega_
I
da de una instrucción consecutiva al IR1 hace que las de_
codificaciones a partir de la se§al Q5M se tomen desde -
el segundo nivel del Registro deiji Instrucciones: IR2. -

Ahora puede visualizarse mejor la necesidad de asegurar-
el paso de IR1 a IR2, incluso sin la llegada consecutiva
!
de otra instrucción (paso 18 de Jcontrol) . Las caracte -
rlsticas de estas transferenciasj se tratarán con mayor -
I
detalle al referirnos al Registro de Instrucciones.
6.- CADENAS DE CONTROL PARA LAS INSTRUCCIONES DE ENTRADA
Y SALIDA
Las instrucciones de entrada y salida no realizan ninguna
referencia a la memoria. Su ejecución esta sujeta única-
mente a una señal de inicio que depende de la instrucción
ejecutada previamente.

A pesar del apreciable número de instrucciones a implemen_


tarse, las cadenas que controlan la habilitación de las -
diferentes acciones resultan muy reducidas. En realidad,
sólo las instrucciones que realizan una transferencia ne-
cesitan fijar sus acciones en el tiempo a través de una -
cadena.
Los pasos de control que ejecutan las instrucciones de en_
trada y salida son:
ACCIONES CONTROL
54 ESPERAR SEÑAL DE EJECUCIÓN
55 E/S •<- u

56 IR2 + IR1 EIR2


57 (SKPX58) + (SKPX67)
58 77
'/ g r (==iO
\ / _>-
\v ¿.ffi?
r -J3 i
*S Q ^

59 (IR19 x60) + (IRl8x61)


60 ((OCUPADO © IRlg)x65) +
((OCUPADO © IR19) x66)
61 •*• ((TERMINADO 8 IRlg)x65)
((TERMINADO © IR19) x66)
62 -»- (IRla x63) + (IRl8x64;
63 •+• ( (INT e I Rio )X65) +

( (INT © IRl9)x66)

64 + ((FUENTE © IRl9)x65) +

( (FUENTE © IR19) x66)

65 SALTAR LA INSTRUCCIÓN QUE SISUE EN SECUENCIA

66 + SALIR

67 77 8/ (=,T¿) -*- (73,68)

68 7*69) + (IRl7x71)

69 1 DEMORA

70 BUFFER -í- AC E26S12UAL, CKE/S

->• SALIR

71 N DEMORAS

72 AC •*- BUFFER WE2

•»• SALIR

73 •*• ( (IR18 © IR19) x74)

( (IR18 © IR19) X75)

74 INT •*• IR19

75 •*• ( (NIOS V NIOC) x66) +

( (WIOS V NIOC) X76)

76 DIA-CPU:!, (=,¿) -*• (77,78)

77 AC -f- SWITCHES DE LA CONSOLA WE2

-*• SALIR

78 DIB-CPU:!, (=,^) •*• (79,80)

79 üJ 6 /AC •*• CÓDIGO DEL DISPOSITIVO WE2

QUE PIDE INTERRUPCIÓN

SALIR
80 DIC-CPU:!, (*, (81,82)
81 BORRAR OCUPADO, TERMINADO Y : IORST

HABILITACIÓN DE INTERRUPCIONES

-* SALIR
82 DQB-CPU:!, (=,5*) -*• (83,85)
83 1 DEMORA
84 LA MASCARA ACTÚA SOBRE EL BIBS- E26S12UAL, CKE/S
TABLE DE HABILITACIÓN DE INT¿ -
i.'
RRUPCIONES EN LOS DISPOSITIVOS

DE E/S

-*• SALIR
85 HALT HALT
El"paso 55 de control establece una transferencia de los
últimos 8 bits de ACI hacia la iihterfase. No se inhibe
RE1M en este caso porgue la transmisión de bits se realiza
. i.
sólo con 8 líneas que corresponden a los bits menos signi-
ficantes .
Los pasos 57 a 66 muestran la secuencia de operación para-
todas las instrucciones de salteo. Su ejecución se detenni
na básicamente con una red decódificadora y un circuito de
salto, que por ser común a todo salto condicional, se lo -
trata más detenidamente en el numeral siguiente.
Las instrucciones que producen una transferencia hacia o -
desde el equipo periférico se realizan desde 68 hasta 72.
En 67 se establece una ramificación para las instrucciones
de código 77a. ;
Las demoras introducidas en 69 y 83 antes de activar los
controles que ponen el contenido de un acumulador en uno
de los buffers, crea una semejanza entre las instruccio-

nes DO y STA. Esto se lo hizo con ;el propósito de util;L


zar para DO la misma cadena que para STA. La única dife_
rencia está en el reloj de carga, mientras en STA actúa-

C.KMDR, en DO el reloj que carga a ;los buffers es CKE/S.


Las N demoras supuestas antes de que un dato en una ins-

trucción DI llegue a la barra de datos, obedece a que al


momento de terminar el presente trabajo todavía no se de_
finia con exactitud los tipos de circuitos a utilizarse-
en la sección de entrada y salida. Esta demora el con -
trol la considera como de duración no prevista, emplean-

do una señal desde la interfase que avise el depósito en


la barra,del dato transferido: QT.

Las instrucciones de código 77e llevan a cabo ciertas

funciones especiales. En todas, exceptuando las de sal-

to , los bits 8 y 9 actúan sobre el flip-flop de interru£


ciones. (INT) ; paso 74. ;

Como señales adicionales se emplean: IORST que se trans-

mite a E/S para borrar los biestables: Ocupado, Termina-


do y de Habilitación de Interrupciones. HALT para dete-
ner todo pedido posterior a una instrucción de alto.
La figura 5.6-1 presenta el control para las instruccio-

nes de entrada y salida. Se prescinde de toda decodifi-


cación no asociada directamente a la cadena.
El circuito que espera la señal, de ejecución es el mismo
que se utiliza con las instrucc ones de memoria.
Las señales de carga CKMDR y CKE/S en la cadena común pue_
den sincronizarse con la señal )3E/S. De esta manera, ca_
da señal actuará sólo cuando le corresponda. El reloj RM2

produce la transición en el mom 2nto más adecuado:


CKE/S = Q6.Q3E/S.RM2

CKMDR = Q6.Q3E/S.RM2 . K.RM2

oo MSKO HALT SKP

EIR2
A A A
T2A

DO DOB-CPU DOC-CPU SKP

Q3E/S

01 OÍA CPU DIB CPU DIC CPU

TOA

DI
WE;
y y Y
DÍA
WE2
DIR
DIB
W~E2
!
IORST

Figura 5.6-

La señal K, en CKMDR, produce la retención del dato mo-


dificado en caso de incremente o decremento automático
7.- INSTRUCCIONES CON SOBREPASO
Instrucciones con sobrepaso denominaremos a todas aquellas
Si *
que producen un salto condicional!; de la siguiente instruc-
ción en secuencia.
'.l
Las instrucciones aritméticas (AL$ y las de modificación -
''i
de memoria (ISZ, DSZ) realizan unj¿ prueba sobre el jresulta.
i
do para saltar la siguiente instrucción. De la misma mane^
:i •
ra, entre las instrucciones de entrada y salida, todas a -
Ü
guellas que son de salto (SKP) realizan una prueba sobre -
los biestables Ocupado, Terminado >| de Interrupciones y de
falla de la fuente de poder. ;
i
Para una instrucción aritmética la señal proveniente del -
¡I'
sensor de saltos llega en la mitad)! del ciclo T2. En una -
instrucción de modificación de meiftpria la señal de salto -
"i
se obtiene a la mitad de TO. En las instrucciones de en -
trada y salida esta señal se obtiene al final de TI.
L¡ i
• I

Si analizamos cada situación en destalle tenemos:


Instrucciones Aritméticas -*y Lógicas:

T2 TO TI ¡; T2

ACD * 1
i 1
AL ACS ;: XX

ACD

Posible llegada de la instrucción a saltarse


Prueba sobre el link y el resultado
Instjruccicunes cjue meDdiri can 1;a men oria:
i

T2 TO TI T2 TO TI T2 TO

AGÍ

IDSZ XR XX

) Prueba sobre el resul-


tado
LPosible llegada de la instrucción a salta£
se
Instrucciones de Entrada y Salida :on salto:

T2 TO TI T2

ACI

SKP XX

Posible llegad. de la instrucción a saltar


se

Prueba sobre -le s biestables

! \n el caso de las instrucciones qre modifican la memoria,

aunque la prueba que habilita el alto se realiza después


de que pudo haber llegado la siguiente instrucción en se-
cuencia, si es posible realizar e!
jecución de la instrucción a saltsrse no comienza sino
después de realizada la prueba.
En los gráficos anteriores se esta blece como probable la
llegada de la siguiente instrucción al tiempo indicado, -
porque el sistema en poliducto no siempre garantiza la -
llegada al control de dos instrucc Lones consecutivas. De
cualquier manera, es decir llegue o no llegue la siguiente
instrucción inmediatamente, el circuito de salto debe impe
i
dir su ejecución. !
La prueba que se realiza para detectar un resultado cero -
es la más critica debido a que el sensor de resultados no-
retiene tal información. Debe por' lo mismo sincronizárse-
la decodificación al tiempo correcto: T2.RM2 en el caso de
instrucciones aritméticas y TO.RM2I en el caso de las de mo_
dificación de memoria. ;
Analizando los tiempos con detenimiento, especialmente las
i
señales en las cadenas, puede concluirse que una buena for_
i
ma de saltar una instrucción es actuando sobre los circui-
tos de espera de ejecución. ;
La figura 5.7-1 indica la forma circuital utilizada. El -
control de salto se realiza mediante un biestable tipo D.
La señal de salto viene de una red! que decodif ica la cond:L
ción de sobrepaso en cada tipo de instrucción. Esta señal
actúa sobre el reloj del biestable;poniendo su salida a 1
¡
lógico hasta que la instrucción a saltarse llegue al cir -
cuito de demora. Cuando ésto ocurre, la compuerta NAND
sincronizada con -RM1 y TI "borra" ía instrucción, a la vez
que inicializa el biestable de salto mediante la linea co-
nectada a la entrada CLEAR (CL) . !!

Con la salida Q del biestable de salto se logra inhibir la


realización de cualquier instrucción a saltarse mientras -
no se la haya anulado.
El borrado debería sincronizarse]! con el ciclo en el cual
I
se inicia la ejecución de las instrucciones (TO) . Como

la señal de salto en las instrucciones de modificación -



de memoria llega a la mitad de este ciclo, el borrado se

fija al comienzo de TI con: RM1 .TI.

RMI TI

SEÑAL I
EJECUCIÓN AL
LLEGADA DE TI
INSTRUCCIÓN
AL

LLEGADA D_E
INSTRUCCIÓN
M-E/S

SEÑAL DE
EJECUCIÓN E/S

' S E Ñ A L DE SAIITO (SA)

Figura 5.71-1
8.- INTERRUPCIONES AL PROGRAMA
Un problema muy importante en el diseño de una computadora
i
es la comunicación hombre máquina.-

Los dispositivos de entrada y salijda posibilitan la comun_i


i
cación con el mundo exterior. j
En la mayoría de las computadoras lias interrupciones pue -
den clasificarse en internas y externas. Las internas son
< i
aquellas causadas por varios tiposj de errores tales como:
!
sobreflujo, dirección inválida, etjc. Las externas apare -
cen debido a requerimientos de atención solicitados por -
los dispositivos de entrada y salida.
En nuestro caso nos referiremos exclusivamente a las según
das ya que el presente trabajo no desarrolla el hardware -
para las primeras.
Los dispositivos de entrada y salida más comunes son: lec-
toras y perforadoras de tarjetas, impresoras, teletipos y
lectoras y perforadoras de cintas de papel. Todos estos -
dispositivos tienen tres características especiales que o-
riginan los problemas de entrada y salida:
1.- Su operación es completamente asincrónica respecto al
procesador central.
2.- Su velocidad de operación es varios órdenes de magni -
tud más lenta que la del proce'sador central.
3.- Su formato de datos es usualme'nte completamente dife -
rente a los utilizados en la UCP.
!
i
Cuando un dispositivo requiere atención, el procesador de-
be servirlo lo más pronto posible. Un descuido en el ser
vicio dentro del tiempo especificado puede ocasionar la -
pérdida de información. El sistema de interrupción se lo
diseña bajo esa consideración.
Los requerimientos de interrupción de un dispositivo son-
gobernados por sus biestables Terminado y de Habilitación
de Interrupciones.
Cuando un dispositivo acaba una operación pone Terminado
a 1 y pide una interrupción al prpgrama si su biestable -
de habilitación de interrupciones es cero. Si este últi-
mo biestable ha sido puesto a 1 ppr el programa, el dispo_
sitivo no pide interrupción.
Al final de cada ciclo de memoria, el procesador sincroni-
za cualquier requerimiento de interrupción. Una vez he -
¡|
cho ésto, el dispositivo involucrado debe esperar que el
'i
proceso de interrupción se inicie:.
11
La señal de pedido una vez sincronizada debe mantenerse -
hasta que el programa limpie Terminado o ponga a 1 al
u
flip-flop de Habilitación de interrupciones

CONTROL DE INTERRUPCIONES
El procesador da inicio a una interrupción cuando se cum-
plen las siguientes condiciones
1.- El procesador ha culminado el pedido y ejecución de -
una instrucción.
2.- Al menos un dispositivo se encuentra esperando el ini-
cio de la interrupción.
3.- La interrupción se halla habilitada. Es decir el fli£
flop de Interrupciones esta con nivel 1.
i".
La interrupción se inicia limpiando el flip-flop de Inte-
rrupciones para que cualquier interrupción posterior no -
pueda empezar. Luego, la dirección de la próxima instruc
ción se pone en la localidad cero :de memoria y se simula
un salto indirecto a la localidad uno de memoria. Se su-
pone que la localidad 1 contiene la dirección de la ruti-
na de servicio de interrupciones.
Esta rutina debería determinar que:dispositivo requiere -
i .
servicio, guardar el contenido de cualquier acumulador
que vaya a utilizarse en la rutina, devolver el carry ini_
cial si ha variado y servir al dispositivo.
La rutina puede identificar al dispositivo que pide inte-
rrupción y establecer prioridades :en la atención por me."-
dio de software.
El programa puede dejar deshabilitadas las interrupciones
mientras sirve a un dispositivo (¡dejando el flip-flop de
i '.
Interrupciones en cero), o habilitar las interrupciones y
establecer una estructura de prioridad que permita al dis_
i ;•
positivo de más alta prioridad interrumpir la corrida de
la rutina de servicio. Esta prioridad es determinada por
una "máscara" (instrucción MSKO) que controla los estados
de los biestables de Habilitación <üe interrupciones en
los diferentes dispositivos.
En el caso de trabajar con esta segunda alternativa, la -
rutina debe guardar la localidad cero, de tal manera que
•|¡
la dirección de retorno al programa interrumpido no se -
i;
pierda si ocurre otra interrupción;.
• I;ii
Desde el punto de vista del control las interrupciones -
li

se implementan hasta entrar en la;rutina de servicio. -


Esto supone el control adecuado del momento de inicio y
j|
el salto indirecto a la localidad!; que contiene la direc-
t-
ción de la rutina de servicio. !|
¡i
El programa de control que desarrolla estas acciones pue_
de escribirse en la siguiente forma:
ACCIONES CONTROL
II ( (INT A INTR) x3I) +-
( (INT A INTE) x2I)
21

31 NO TRAER NUEVAS INSTRUCCIONES


I;

41 -»• ( (CE A T2A1 ) x5I) + |:

( (CE A T2A1 ) xll) í:

51 MAR •*- 00000R8 í;


• ¡| E74116, REÍ

61 B -e- CP+1, MDR +• B |! E26S12UAL, CKMDR


'!!
71 ESPERAR ACEPTACIÓN DE MEMORIA
-1.MAR
81 M MDR, INT O

91 B •<- 0020018, IR1 •*- B, ACI K- B EIR1, WE2


101 •*• (paso 10 del programa de control)
:i

Cuando un dispositivo pide interrupción con INTR=1, el con_


! ;i
trol chequea si el biestable de; Interrupciones (INT) se en/
!' :;'

cuentra habilitado para atender dicho pedido (pasos II y


21), Si hay habilitación, se impide a partir de ese ins-
tante cualquier pedido de nueva instrucción.
En el paso 41 se sincroniza el ini;cio de una interrupción
con el final del último ciclo de memoria:
: |
CE AT2A', donde
:i
CE quiere decir Chip-Enable en la; ¡memoria. Con esto se a_
i
segura que la interrupción no comenzará antes de que la -
última instrucción en proceso haya culminado.
En 51 y 61 se inicia la interrupción guardando la direc -
ción de retorno en 'la dirección cero de memoria. Nótese
11

que CP tendrá la dirección de la ^ultima instrucción ejecu_
;i
tada antes de que principie el proceso de interrupción; -
es por ello que para guardarlo en la memoria es necesario
incrementarlo en 1.

A pesar de que en este caso puede suponerse a la memoria


totalmente desocupada para atender el pedido de escritura,
debe esperarse su "aceptación" por la posible coinciden
cia con un ciclo de refresco.
Una vez aceptada la escritura de la dirección de retorno,
el control borra el biestable de Interrupciones (paso 81)

para que cualquier requerimiento posterior de interrup -


ción sea detenido hasta que el programa así. lo decida.
Los pasos 91 y 101 muestran la forma utilizada en la im-
plementación del salto indirecto a la dirección 1 de me-
•?, moria. En 91 se pone en la barr,a de datos el código in-
i
vertido de un salto indirecto a¡ :1 para cargarlo luego en

el IR1 y ACI.

11
El diagrama de tiempos correspondiente al inicio de una

interrupción se muestra en la figura 5.8-2.

T2 TO TI T2 TO i TI T2 TO

Q [TI
•;
i
i I Z ——
;
¡
o o '
:
•i
'i
U/
:
i

on
i

Q IME/S

RS1 CP
¡
RWS2 AGÍ i
WS1 'i
nr> 7Í-L1
•i

Figura 5.8-2
- 182 -

9.- SEÑALES DE DEMORA EN LAS FASESft DE TRAÍDA Y EJECUCIÓN


i
Una vez desarrollado el esquema circuital para las dife-
i
rentes cadenas de control, se puede identificar, con una
señal específica, cada una de las demoras explicadas an-

teriormente. Esto permitirá presentar, en el numeral -


que sigue, un programa de control'más completo con todas
las demoras asociadas a las señales de control correspoii
dientes.
En los anexos 2 y A pueden encontrarse diagramas detalla_
i
dos del control y sus tiempos de ejecución.
PEDIDO DE NUEVA INSTRUCCIÓN (T).-'El inicio de un pedido
• de nueva instrucción -
se encuentra controlado por las siguientes señales:
Q2T Impide realizar un nuevo pedido mientras la memp_
ria no ha aceptado el pedido de la instrucción -
previa. ;
Q4I Impide el inicio de un nuevo pedido mientras la
memoria no acepte el ciclo solicitado en un di -
reccionamiento indirecto.¡
Q5I Impide un nuevo pedido mientras no culmine el de_
sarrollo de un direccionamiento indirecto.
Q4M Impide un nuevo pedido hasta que la memoria haya
aceptado el ciclo correspondiente en la realiza-
ción de una instrucción con referencia a memoria,
Q1ME/S Impide realizar un nuevo 'pedido cuando por cual-
quier motivo se haya detenido la ejecución de u-
fe
na instrucción de entrada y salida o de referen -
!!
cía a memoria. Además evita un nuevo pedido mien_
tras se realiza el cálculo de dirección efectiva,
o se deposita el código de una instrucción de E/S
en la barra de direcciones.
Q5M.ID Impide un nuevo pedido mientras el dato no se ha-
ya modificado en una instrucción
i de modificación
de memoria. ID es la decodificación de IS2 o DSZ,
Esta decodificación es necesaria porque Q5M es vi-
na señal común a varias instrucciones: LDA, JMP,
JSR, ISZ y DSZ.
QT Impide una nueva traída mientras no culmine una -
instrucción DI. Esta señal viene desde la inter-
fase de E/S. 'j
•í
INTS Impide el inicio de nuevos pedidos cuando se ha -
i
habilitado una interrupción.
Í
AN Es una señal que detiene la corrida normal de un
programa y sirve para detener la máquina.
Todas estas señales ejercen su acción sólo durante TO, ya
que la señal de inicio para un nuevo pedido se sincronizó
con ese reloj.
EJECUCIÓN DE INSTRUCCIONES ARITMÉTICAS Y LÓGICAS (Q1A).-

Las instrucciones aritméticas y lógicas son demoradas en


su ejecución por las siguientes señales:
Q4I Cuando la memoria todavía ;no ha aceptado un di -
reccionamiento indirecto.
- 184 -

Q5I Cuando se esta desarrollando un direccionamiento


indirecto.
Q4M Mientras no se reciba la aceptación de memoria a
un ciclo solicitado previamente por una instruc-
ción con referencia a memoria.
Q5M Mientras no haya terminado] la ejecución de la -
instrucción previa en caso! de ésta ser LDA, o no
i
se haya modificado el dato extraído de la memo -
¡
ria en el caso de las instrucciones ISZ o DSZ.
Estas señales actúan el momento de¡ la transición positi-
va del reloj de Q2A (RMO . TÍA).
EJECUCIÓN DE INSTRUCCIONES CON REFERENCIA A MEMORIA (Q2M)

Las demoras en la ejecución de estie tipo de instruccio


nes se mantienen y controlan con:
Q2T Mientras la memoria no acepte un pedido previo -
de nueva instrucción. j
Q4I Mientras no se acepte un direccionamiento indi -
recto. •;

Q5I Mientras no termine cualquier proceso indirecto.


Q4M Mientras no se acepte un ciclo de memoria solici
tado previamente.
Q5M.ID Mientras no se modifique el dato extraído de la
memoria por ISZ o DSZ.
QT Mientras no haya culminado la transferencia en u_
í
na instrucción DI (Datos Adentro).
Q5M.D1 Cuando la instrucción a ejecutarse sea una STA y
se encuentre precedida por una LDA coincidiendo
en ambas instrucciones la selección de los acumu

ladores. Con esto se posibilita el cambio de lu_


gar de cualquier dato almacenado en la memoria.
DI decodifica la secuencia LDA-STA.

Q6.D2 Cuando la instrucción a Ejecutarse sea una JSR y

se encuentre precedida por una ISZ o DSZ. La


|
realización de JSR es dembrada en este caso, un
ciclo (RM) adicional a la demora introducida por

Q5M.ID. Esta demora es necesaria por la interfe


rencia que se producirla en el ciclo T2 al leer

CP durante JSR y al modificar el dato de memoria

en ISZ o DSZ. :
D2 decodifica la secuencia IDSZ-JSR.

Q6.D3 Cuando la instrucción a ejecutarse sea una JSR y


I
se encuentre precedida por una STA. La demora -
introducida en este caso obedece a la interferen_
¡
cia que se produciría en T2 al leer CP y selec -

cionar el Acumulador a guardarse en la memoria.

D3 decodifica la secuencia STA-JSR.


i
Q3E/S.D4 Cuando exista la secuencia DO-JSR; por la inter-
ferencia que se crearía en T2 al leer CP y selec^
cionar el Acumulador,a mandarse a la interfase -

de entrada y salida.
D4 decodifica DO (Datos Afuera)-JSR.
Los cuatro últimos casos si bien introducen decodif icacio_
I
nes adicionales, se justifican plenamente por el ahorro -
« 'i
de tiempo producido en todas las secuencias.

Todas estas señales son efectivas,'el momento de la transi

ción positiva del reloj de Q3M (RMO).

EJECUCIÓN DE INSTRUCCIONES DE ENTRADA Y SALIDA (Q2E/S).-


ti
1 í

Las demoras en la ejecución de esjtas instrucciones están
dadas por:
Q2T Mientras no se acepte el pedido de una nueva ins-

trucción.
Q4I Mientras no se acepte un direccionamiento indirec
to.
Q5I Mientras no termine cualquier proceso de direccio
namiento .indirecto.
Q4M Mientras no se acepte un ciclo de memoria solici-
•|
tado en la ejecución defuna instrucción con refe-
rencia a memoria.
Q5M.ID Mientras no se modifiqué el dato extraído de la -
memoria en ISZ o DS2. 'í
.1
QT Mientras no haya culmiríado la transferencia en u~
;i
na instrucción DI.
i
Q5M.D5 Cuando la instrucción a ejecutarse sea una DO y -
se encuentre precedida;por una LDA coincidiendo -
i[
en ambas instrucciones la selección de los acumu-
ladores. Con esto sej posibilita llevar un dato -
desde la memoria a un dispositivo de entrada y
: :|
lida. . ;|
'!
D5 decodifica la secuencia! LDA-DO.

18
V ÍR12 V IR13 V IR17)>|20)

V IR12 V IR1 3 V ÍRI7) xig


.
19 L i V IR12 V IR1 3 ) x21) + (
V XR1Z \J X23)
20 AC3 -4- CP

21 MAR -4- tú8/ACI+XR, CP •<- üJ8/ACI+XR, ANULAR CUALQUIER

DA EN PROCESO
22 + (25)

23 MAR -4- ü)8/ACI+XR

24 IR2 -4- IR1

25 IR1 5 :1, ( = / ? ¿ ) + ( 2 6 , 47)

DIRECCIONAMIENTO INDIRECTO

26 ACT: O , (=,,*) •* (29,27)

27 ~ " -4- 1, Q2M «- 1, Q2E/S


T •*- 1, Q2A

28 •*- (26)
_LMAR
29 MDR •*• M , 3 DEMORAS MANTENIENDO EN 1: T, Q1A, Q2M, Q
30 B •4- MDR, S -4- B

31 -J- (33)

32 Bo :1, (=,¿) + (26,47)

ÍNDICE AUTOMÁTICO

33 -»• ( (a1 a/F V Fi i) x34) + ( (a11/


F \ Fj x ) X43)

34 Fi 2:1, (=,?í) ^ (35,39)


-LMAR
35 B •<- S-l, MDR -e B, M -4- MDR¡, MAR -4- S-l

36 -*• ((IRli V IR12 W !Rl3)x37) + ( (IRla V IR1


IF 9 W IR13) X32)

37 CP -*• S-l

38 ->- (32)

39 B + S+l, MDR -4- B, MlMAR -4- MDR , MAR -4- S+l

40 •* ((IRli V IR12 V IR13) X41') + ( (IR11! W IB x32

41 CP -4- S+l
190 -

42 * (32)
43 MAR •+- S

44 •+• ( (IRlx V IR12 V IRl3)x45) +: V IR12 V 3 ) X32)

45 CP «- S
46 + (32)
INSTRUCCIONES CON REFERENCIA A MEMORIA

47 ACT: O, (=,^) •*• (50,48)

48 T •<- 1, Q2A •*• 1, Q2M «- 1, Q2E/S -c- 1

49 •+ ( 4 7 )

50 •*• ( ( I R l o A IRli A IR1 2 ) x51) -í- ( ( I R 1 0 A IRli A IR1 2 ) x53)

51 1 DEMORA
-LMAR
52 B •<- AC, MDR -e- B , M -<- MDR, -^ SALIR

53 •*• ( ( I R 2 : \J IR2 2 V I R 2 3 ) x55) •} ( ( I R 2 ,1 V I R 2 -£. V I R 2 3J x 5 4 )

54 •+• ( ( I R 2 X V IR2 2 \J I R 2 3 ) >66) ¡4 • ( (IR2 1 V IR2 2 \J I R 2 3 ) x61)

55 ->• (7)

56 MDR <- HLMAR, 3 DEMORAS MANTEÍ IIENDO EN 1: T, Q2M, Q2E/S , Q1A

57 B •*• MDR, S H- B

58 IR2mlv (=^) + ( 5 9 , 6 0 )
XMAR
59 B H- S-l, MDR -í- B, M •<- MDI1, -»• SALIR
O.MAR
60 B •<- S + l, MDR «- B, M •*• MDI1, ->• SALIR
_LMAR
61 MDR -t- M , 3 DEMORAS MANTEAIIENDO EN 1: QlA

62 B -*- MDR, AC -fr- B , •*• SALIR :

INSTRUCCIONES DE ENTRADA Y SALIDA

63 Q2E/S:0, (=,^) -*• (66,64) ¡

64 T +• 1
65 - (63)

66 E/S •*- ü)8/ACI -

67 IR2 -*• IR1

68 -*• ( (IR15 A IR16 AlRl 7 )x69) -f ((IR15 A IR16 A IRl7)x78)

69 A/üj6/IRl:l, (=,T¿) ->• (73,70)

70 •* (IR1B X71) + (IR18 X72)

71 ->- ((OCUPADO © IRl9)x76) + ((OCUPADO © IRl9)x77)

72 ->• ((TERMINADO © IRlg)x76) + ((TERMINADO © IRl9)x77)

73 + (IR18 X74) + (IR18 X75)

74 -*• ( (INT © IR19) X76) + ( (INT 8 IR19) x77)

75 •*• ((FUENTE © IR19) x76) + ((FUENTE © IRl9)x77)

76 SALTAR LA INSTRUCCIÓN QUE SIGUE EN SECUENCIA

77 -»• SALIR

78 A/í,j6/IRl:lf (=,?*} •* (84,79)

79 -»• (IR17X80) + (IRl7x82) .

80 1 DEMORA

81 BUFFER •<- AC, •* SALIR .


82 N DEMORAS MANTENIENDO EN 1: r, Q2M, Q2E/S

83 AC •*- BUFFER, •»• SALIR

84 •> ((IR18 © IR19) x85) + ((IRle © IRlg)x86)

85 INT -f- IRlg

86 •>• ((NIOS V NIOC) x77) + ((NIOS V NIOC)x87)

87 DIA-CPU:!, (=,7^) •*• (88,89)

88 AC -H SWITCHES DE LA CONSOLA, **• SALIR

89 DIB-CPU:!, (=,7^) ->• (90,91)

90 036/AC •*- CÓDIGO DEL DISPOSITI VO QUE PIDE INTERRUPCIÓN,

•*• SALIR |
- 192 -
fi i!

91 DIC-CPU:!, (=,?*) •+• (92,93) i


92 BORRAR OCUPADO', TERMINADO Y pjABILITACION DE INT, •*• SALIR
¡i
93 DOB-CPU:!, (=,?) •+• (94,96) í
í
94 1 DEMORA í

95 LA MASCARA ACTÚA SOBRE EL BJBSTABLE DE HABILITACIÓN DE -


INTERRUPCIONES, EN LOS DISPOSITIVOS DE E/S. •*• SALIR
96 T -f- 1, HALT

PROGRAMA DE INTERRUPCIONES

II ->- ((INT A INTR) x3I) -í- ({INT[J\) x2I)

21 + (II)
31 NO TRAER NUEVAS INSTRUCCIONES, T •+- INT A INTR
II
41 -*• ( (CE A T 2 A ' ) X5I) + ( (CE f\\' ) XII)

51 MAR -í- 0 0 0 0 0 f ot

61 B •<- CP+1, MDR B

71 ACT;0, (=/ !9I,

81 71
_LMAR
91 M •*- MDR, INT •<- O

101 B •*- 0 0 2 0 0 1 8 / IR1 •*- B, ACI «I B

111 -*- (14) j;


C A P I T U VI

P A N E L DE C HfN O? R O L
PANEL DE CONTROL

1.- DESCRIPCIÓN

El Procesador Central dispone de una consola a través de la


cual el operador puede controlar al dispositivo.
i
Se cuenta con una serie de conmutadores y luces que permiten
examinar resultados intermedios en la corrida de un programa
La figura 6.1-1 ilustra esquemáticamente la disposición de -
los conmutadores e indicadores en el panel frontal.
La entrada y salida de datos desde la consola se realiza en
código octal por la facilidad de conversión a binario.
Las luces superiores indican la dirección que se deposita en
i ¡i
el registro de direcciones de memoriia (MAR) .
La segunda fila de indicadores muestra cualquier dato extraí_
do de la memoria o que va a ser depositado en ella. También
sirve para mostrar cualquier instrucción leída de la memoria
Se dispone además de un juego de interruptores que posibili-
ta la entrada de datos a un acumulador o localidad de memo -
ria.
INTERRUPTORES OPERACIONALES
La consola tiene 9 interruptores de
y una posición intermedia OFF.
ACO-AC1-AC2-AC3.- Son interruptores' que sirven para deposi-
'tar datos en cada uno de los acumuladores
- 194 -

DIRECCIONES

DATOS E INSTRUCCIONES

INTERRUPTORES DE DATOS

INST.
EXA. ACÓ ACI AC2 AC3 RESET START DEP EXAM
STEP

O O O O O o o o o
DEP STOP CONT. DEP EXAM
NEXT NEXT

Figura 6 .
(posición inferior) o examinar su contenido (po-
sición superior) . '[
Los demás interruptores desarrollan las siguientes funcio-
nes :
EXAMINE.- Deposite el contenido dé los interruptores de
(Examine) datos en CP y muestre el contenido de la locali-
zación de memoria direccionada en tales interru£
tores.

Las luces de direcciones presentan la dirección


seleccionada. Las luces de datos presentan el -
contenido de la localizaoión direccionada.
DEPOSITE.- Deposite el contenido de los interruptores de -
(Deposit) datos en la localización de memoria especificada
por CP.

Las luces de direcciones presentan la dirección


seleccionada.

EXAMINE!

PRÓXIMO.- Muestre el contenido de la localización de memo


(Examine ria especificada por el contenido de CP incremen_
-Next) tado en 1.

Las luces de direcciones ,¡presentan la dirección


seleccionada. Las luces de datos presentan el
contenido de la localizaoión direccionada.
CP queda incrementado en i 1.
- 196 -

DEPOSITE

PRÓXIMO.- Deposite el contenido de los interruptores de da


(Deposit tos en la localización de memoria especificada -

-Next) por CP incrementado en l,j

Las luces de direcciones ¡presentan la dirección -


|
seleccionada. •-\¡

CP queda con su valor antierior.


:i

COMENZAR.- Cargue la dirección contjenida en los interrupto-

(Start) res de datos en CP y comience la operación normal

desde allí. ':


i
PA^JVR.- Pare antes de traer la próxima instrucción. El

(Stop) procesador termina la última instrucción traída -

desde la memoria y entonces para.

CONTINUÉ.- Comience la operación normal desde la dirección


(Continué)contenida en CP.

BORRAR.- Pare antes de traer la próxima instrucción y bo—


'i
(Reset) rre todos los flip-flops ;de los dispositivos de -

E/S incluyendo el biestable de interrupciones^

PASO DE

INSTRUCCIÓN.- Comience la operación desde la dirección con-

(Inst- tenida en CP. El procesador ejecuta una sola ins¡_


i
Step) trucción y luego para.
Los datos mostrados en las luces de datos dependen

de la instrucción:
Si es: Al final se muestra:
l;j
STA El operando a escribirse.
1 ¡i
I M

ISZ, DSZ El operando modificado.


JMP, JSR Una palabra que depende de la instrucción a
la que se salta . ;;',
AL, LDA La instrucción ejecutada.
i i
; .1
PRECAUCIONES: ' •
1.- Si al aplastar STOP la máquina no se detiene es porque
el control se encuentra operando un número infinitamen_
¡ í
te grande de lazos indirectos; -J
2.- Durante la corrida de un programa no deberá accionarse

ningún interruptor operacionalj que no sea STOP o RESET,
, i
de otra manera, el programa quedará alterado.
3.- Al pararse un programa, sólo los interruptores que tra-
bajan sobre los Acumuladores rio requieren un ajuste pre_
¡ í
vio al momento de continuarlo,.¡ Debe cuidarse especial-
mente que el contenido de CP rio se haya modificado.
2.- DISEÑO DE LA CONSOLA
Indicadores e Interruptores de Datos
La. figura 6.2-1 muestra el diagrama en bloques de la dispo-
sición dada a los indicadores para; direcciones,, datos e ins
trucciones; así como a los interruptores de datos.

DISPLAYS DE DATOS DISPLAYS DE DIRECCIONES

DECODIFICADORES DECODIFICADORES

RETENEDORES RETENEDORES

BARRA DE DATOS BAÍRRA DE DIRECCIONES

TRANSCEPTOR
DE BARRA

INTERRUPTOR DE
DATOS
'•Figura 6 . 2-1

NOTA.- La estructura presentada fue


José Andrade quien inicialmente tratajó en la implementa -
ción de las unidades de entrada y salida.
Interruptores Operacionales
\\a función de cada interruptor

da con el procesador central.


í
Básicamente existen solamente dos tipos de controles opera_
cionales que actúan en la corrida normal de un programa; -
el de comienzo y el de parada. ¡!
i
Entre las señales que impiden el inicio de un nuevo pedido
de instrucción se habla mencionadosAN. Esta señal se uti-
liza con el fin de parar la máquina, así como también para
- 1 '¡i
activarla. Para esto se utiliza un biestable S-R capaz de
I
mantener inhabilitado todo pedido de nueva instrucción por
'i
cualquier tiempo. Un dispositivo de este tipo podría tam-
bién, como es obvio, cambiar de estado, iniciando asi el -
trabajo de la computadora. ;|
.i .!
Este flip-flop lo conoceremos con el nombre de "biestable
de andar" y su estado estará controlado principalmente por
STOP, RESET y START. • :|

Las funciones operacionales descritas desarrollan acciones


muy semejantes a una instrucción. ¡Cuando
i manejan regis -
tros deben por lo1mismo hacerlo ali tiempo preciso en forma
sincronizada con el trabajo interno de la máquina. Esto o_
bliga, no sólo a fijar en duración la señal procedente de
un interruptor, sino también a fijarla en el tiempo respe£
to al reloj maestro.
I
!
Antes de describir el diseño de las diversas funciones ope_
i
racionales, es necesario tratar sobre el empleo de dos ele
- 200

mentes esenciales en todos los interruptores utilizados:


J utilizado con este ob-
Eliminador de Rebotes.- El circuido • f:

jeto es elj integrado 74265 que po-


see 4 elementos lógicos con salidas normales y complementa_
i
das. ' Su forma de empleo como eliminador de rebotes se pre_
senta en la figura 6.2-2.

R (REALIMENTACION )

W =. X
-t- 5V
Y = X

Figura !;6 .2-2


i1
I

Ü!
Otra configuración empleada y que¡Utiliza el mismo princi-
pio se muestra en la'figura 6.2-3.-Í El conmutador dibujado
J
corresponde al switch de dos posiciones momentáneas y una
¡i
intermedia OFF. Obsérvese que aun^ntando el número de re-
-f 5V

Figura 6.2-3
- 201 -

sistencias de realimentación y el¡número de entradas en la


! 'I
primera compuerta se consigue un|;sistema de eliminación de
¡ 'l
rebote para varios conmutadores.:!
El sistema descrito puede analizarse en la siguiente forma;
Vcc ¡i

Vo

Cuando se pone el conmutador a tierra (OL)f la salida de la

compuerta 1 sube, mientras que la. salida de la compuerta 2


baja. Al producirse el rebote por/ contacto metálico, la -
; ,1
resistencia de realimentación R2 4'uDeta e^ nivel de O lógi_
co en la entrada Vi impidiendo qüé¡ el nivel de salida cam-
bie. ,•
El rango en el que puede variar lia; resistencia R2 esta da-
do por: . ,¡
a.- Ser lo suficientemente baja para permitir el paso de -
la corriente que garantice un Vi ^ O.4 voltios al momento
del rebote. I
b.- Ser lo suficientemente alta paira permitir el regreso -

de Vo a 1 lógico.

V ILmáx — .1VOLmín
R2 <
"ILmíh
R2
V
(Vcc - IH
Rl + R2
(Voc - VOL) R2 > Rl + V_ u R2
ii J.ri
¡
R2 (Vcc - V OL « VIH R1

|
V.
I Rl
R2 >
Vcc - V ; i- V
OL ¡ IH

Circuito Sincronizador.- Es el sistema que inicializa y fi_


' •!
ja al tiempo correcto la señal en
Ü:Í '
viada por los interruptores. !|;
'i .i
Consiste de dos biestables tipo E) (dispuestos como se
tra en..la figura 6.2-4.

1,
A
'L D CL Q D Q

Q i Q
CP CP
CONMUTADOR Y

ELIMINADOR SEÑAL DE
SINCRONISMO

Figura 6.2-4
, •!
1 i

Al activarse el interruptor correspondiente, se produce u-


': }
na transición en el clock-pulse ,(Cp) del primer flip-flop
poniendo su salida en 1 lógico.
Este nivel se mantiene mientras la señal de sincronismo ac
. '¡
tiva al segundo flip-flop; en ese| instante, la salida S su_
• i
be a 1 lógico y el primer biestable se inicializa con O lo
gico. La señal S permanece en 1 ilógico durante un período
!! í

de la señal de sincronismo. 1'j ¡'


,¡ i
Una vez definidas las funciones opjeracionales y con el es-
quema circuital planteado para las1 diferentes cadenas pue-
de describirse el modo de operación más económico. Esto -
.; f
se consigue utilizando al máximo |lia circuitería desarrolla_
da para las cadenas en lugar de implementar controles to -
talmente independientes. !
EXAMINE (EXAMINE) -j ;¡
i i
Esta función necesita realizar una referencia a la memoria
con el fin de traer el dato de la | localidad direccionada.
La cadena para la fase de traída desarrolla esencialmente
lo mismo, por lo que la función EXAMINE se diseña manejan-
.; i
do esta cadena. : ¡'!
:;! '!'!
A continuación se detalla cada una de las acciones a reali
'. \o con su reloj de sincronismo

réntesis: |
1.- Habilitar el tt'ansceptor de barra en la consola para per
: ¡
mitir que el contenido de los conmutadores de datos pase a
i! -j
la barra de datos (T2A1) . ': |
2.- Direccionar el Contador de Programa (CP) en los contro_
les RWS2 (T2).
3.- Habilitar la escritura en CP'eon WE2 (T2A1).
!
I
4.- Activar el biestable de andarjposibilitando un solo pe
i i
dido a la memoria a través de la cadena de traída.
i ¡
5.- Como durante la fase de traída el CP es incrementado en
1 para traer la próxima instrucción en secuencia, en este
caso, la decodificación de operación en el generador de -
funciones debe cambiarse evitando:tal incremento (TO).
6.- Asegurarse de que el dato extraído de memoria no sal-
¡
ga de la cadena de traída para que1 la máquina no lo ejecu
te como si fuera una instrucción. ;
7.- Activar el reloj que carga los retenedores de datos -
i
en la consola. Esta señal se la obtiene del final de la
cadena de traída ya que cualquier.! dato o instrucción que
sale de memoria se lo presenta en un display común (dis -
play de datos e instrucciones).
El reloj que carga los retenedores para el display de di-
recciones es el mismo que carga al MAR (E74116).
Los tres primeros pasos inicializan el contador de progra_
ma con el contenido de los interruptores de datos. Como
. i
la fase de traída comienza en TO, los pasos previos deben
realizarse con la anticipación adecuada.
j
El inicio de la fase de traída se controla con un circui-
I
to de demora sincrónica, es por ello que en este caso de-
be activarse el biestable de andar sólo durante el tiempo
necesario para hacerse un pedido. ;
i
La forma de eliminar la señal en la cadena una vez extraí_

do el dato de la memoria se realiza mediante el pulso pro_


veniente directamente del eliminador de rebote.
i
El tiempo de contacto al accionar ;el conmutador se consi-
i
dera mucho mayor al tiempo de respuesta dado por la memo-
ria. Si bien la memoria estará desocupada, podría coinci-
dir el pedido con un ciclo de refresco teniendo en ese ca-
so una demora máxima de 1.2 ps. ;
\E PRÓXIMO (EXAMINE NEXT) j
i
Esta tecla funcional no inicializa el contenido del Conta-
¡
dor de Programa como lo hace la anterior. Su ejecución es

por lo mismo más simple y sus pasos pueden describirse en

la siguiente forma: ,|
1.- Activar el biestable de andar, posibilitando un solo pe_
dido a la memoria a través de la ici;adena de traída.
2.- Eliminar la señal de la cadena; una vez extraído el da-
to de la memoria.

3.- Activar el reloj que carga los retenedores de datos en

la consola.
La forma de control para los pasos descritos es idéntica a
la explicada en EXAMINE. , ,
i
Nótese que ahora ya no es necesario cambiar la decodifica-
ción de la operación en el circuito generador de funciones;
•' i
porque el control de operación en la fase de traída coinciL

de ser el mismo para este caso, 'i


DEPOSITE (DEPOSIT) :!!
!
I/a función operacional"depositeMdebe realizar un ciclo de
ii
escritura en la memoria. Por lo ¡mismo, esta función se d:L
seña tomando como base la cadenájde control para la ins -

trucción STA. .,
Los pasos que se ejecutan en este caso son:
1.- Seleccionar el Contador de Programa con RS1 (TO).
2.- Habilitar la lectura del Contador de Programa con REÍ.
3.- Seleccionar en el circuito generador de funciones la o_
peración A, con el fin de que el contenido del CP pase al
MAR sin alteración alguna (TO) .
4.- Accionar la señal que carga al MAR: E74116.
i
5.- Simular una instrucción STA activando la cadena de con_
trol para dicha instrucción a partir del circuito que espe_
ra la aceptación de memoria.
6.- Habilitar eltransceptor de la 'barra de datos en la con_
sola para que el contenido de los '• interruptores de datos -
pueda ser colocado en el MDR. Al¡mismo tiempo, debe inha-
bilitarse eltransceptor de barra en la unidad aritmética -
ya que la cadena STA lo activa para que el dato a escribi£
se salga en ese caso de los registros de la UAL.
7.~ Activar el reloj que carga los retenedores de datos en
la consola. :
Los 4 primeros pasos direccionan en la memoria la locali -
dad especificada por CP. Sus acciones se realizan en TO -
i'
al igual que todo direccionamiento.
El paso 2 no es necesario ejecutarlo, considerando, como -
se planteó en el capítulo previo, que REÍ estará normalmen_
te activado. <
La señal de control sobre la cadena STA se localiza en el
ii
circuito de espera, porque al momento de hacer la referen-
cia, la memoria podría encontrarse realizando un ciclo de
refresco. ;

DEPOSITE PRÓXIMO (DEPOSIT NEXT)


Esta función es similar a la anterior, los pasos que la des_
criben también son los mismos excepción hecha del paso 3 -
donde el modo de operación en el generador de funciones de_
berá ser ahora A-fl. Esto, para que la localidad direccio-
nada corresponda al contenido de CP incrementado en 1.
COMENZAR (START) ¡
La corrida de un programa se inicia colocando en los conmu
tadores de datos la dirección dec'rementada en 1 de la pri-
mera instrucción a ser ejecutada.; Al accionarse la tecla
START, se habilita el trabajo normal de la cadena para la
fase de traída. ; ;|
Los pasos descriptivos del proceso seguido en el diseño
son:
1.- Habilitar el traaaceptor de barra en la consola para
permitir que el contenido de los conmutadores pase a la ba
rra de datos (T2A1). " .
2.- Direacionar CP en los controles RWS2 (T2).
3.- Habilitar la escritura en CP1 con WE2 (T2A1).
4.- Activar el biestable de andar posibilitando el trabajo
normal de la cadena de traída.
Los controles de esta función son exactamente iguales a los
I !
desarrollados por la tecla EXAMINE hasta que se activa el-
biestable de andar. Esto hace posible emplear las mismas
líneas de control en ambos casos.
!}
PARAR (STOP)
i• i
El trabajo de la tecla STOP consiste únicamente en desact;i

var el biestable de andar. Hecho ésto, las cadenas de cori


trol ejecutarán la última instrucción salida de memoria y
entonces la máquina se detendrá.
i.'
El contenido del contador de Programa queda indicando la -
localidad de memoria de la última .instrucción ejecutada.
CONTINUÉ (CONTINUÉ)
Esta función operacional es el complemento de la anterior.
Permite que el trabajo de la computadora continúe normal -
mente luego de que ha sido interrumpido por una orden de
parar. . . .
•i
La acción circuital consiste solamente en activar el bies-
table de andar. ;
BORRAR (RESET) ': -j
Cuando esta tecla es accionada la máquina para como en STOP,
¡
pero además, todos los biestables'de control en los dispo-

sitivos de entrada y salida se ponen a cero incluyendo el


i
biestable de Interrupciones. !

Los pasos de control son: !


1.- Desactivar el biestable de andar.
2.- Enviar un pulso de borrado (RESET) - al biestable de Inte_
rrupciones y a la interfase de enjtrada y salida.
PASO DE INSTRUCCIÓN (INST STEP) ;

Esta función operacional permite .'ejecutar un programa ins-


trucción por instrucción. ¡
El control circuital consiste en activar el biestable de an_
dar permitiendo un solo pedido a la memoria.
EXAMINE ACUMULADORES (EXAMINE AC) •
Los pasos de control que describen' el diseño circuital de
• i
esta función son: :¡

1.- Seleccionar el Acumulador correspondiente, de acuerdo


a la tecla accionada, en.RSl (T2) ..
2.- Activar la cadena de Datos Fuera (DO), para posibili -
tar por su intermedio la salida a ,1a barra de datos del da_
to a examinarse (T2A1). :

3.- Activar el reloj que carga los, registros de datos en -


la consola. !

DEPOSITE EN ACUMULADORES (DEPOSIT ,-AC)


Los pasos de control en este caso';son los siguientes:
i
1.- Habilitar el traneceptor de la ¡barra de datos en la con
sola para permitir el acceso del dato contenido en los con
imitadores (TOA1).
2.- Seleccionar el Acumulador correspondiente, de acuerdo
a la tecla accionada, en RWS2 (TO).
3.- Habilitar la escritura con la;señal WE2 del dato corres_
pendiente en el acumulador seleccionado.

Las 2 últimas funciones operacionales trabajan sobre 4 con_


mutadores, uno para cada acumulador. La selección de uno
i
cualquiera de ellos debe mantenerse el tiempo necesario pa_
ra que su acción sea efectiva. Esta selección se realiza
i
en base a dos líneas selectoras en la siguiente forma:

M
- 210 -

ACÓ AGÍ AC?;| AC3


. • 'i
DA1 O O 1 ' 1

DA2 0 1 0 ! 1

1.2 K
ACÓ
^v

ACl
1. K
1.2
( A/

AC2
i
1.2K

AC3
i K
1.2
VA

1.2K
ACÓ
v\A/V
1.2K
ACl
AMr

A
K>
r— J^
AC2 , A
"• ,
AC3 -1

, J

OA2

Figura 6 . 2 - 5
La figura 6.2-5 muestra también el sistema de eliminación
u
de rebote antes explicado para las
f i dos funciones operacio-
nales. Nótese que cada sistema dé eliminación de rebote -
sirve a 4 conmutadores.
La disposición circuital completajpara los conmutadores o-
peracionales se presenta en el diagrama de la plaqueta de
conmutadores (anexo 5). f i

%
\

td
O
o
o
o
H
H

O
H
H H
O

fií
CAPITULO VII

DECODIFICACION

1.- REGISTRO DE INSTRUCCIONES


Las instrucciones una vez leídas de la memoria se deposi-
tan en el Registro de Instrucciones. Este constituye un
lugar especial de almacenamiento donde cada instrucción -
se interpreta en base a señales que manejan las diversas
operaciones.
Los códigos generados en el Registro de Instrucciones se
mantienen mientras la instrucción permanece en tal regis-
tro.
El arrivo al control de dos instrucciones consecutivas (o_
peración sobrelapada) obliga a emplear dos niveles del Re_
gistro de Instrucciones: IR1 e IR2. De otra manera, la -
llegada de la segunda instrucción provocarla la pérdida -
de la primera antes de que su ejecución haya terminado.
Todas las instrucciones se decodifican desde los regis -
tros de instrucciones. Cada código, sin embargo, sujeta
su acción a un tiempo especifico; por lo que todo proceso
de decodificación involucra de alguna manera un ciclo de
reloj o una señal de las cadenas.
El depósito de una instrucción en el IR1 se realiza en 2
situaciones:
- 213

l.~ Cuando una instrucción ha sido leída de la memoria .


2.- Cuando se habilita una interrupción y se simula un sa_l
to indirecto a la localidad 1 de memoria.
El paso de una instrucción desde IR1 a IR2 es menos obvio.
No todas las instrucciones tienen la misma duración de eje_
cución, por lo que se hace necesario buscar un punto adecua_
do de transición.
Dos instrucciones consecutivas pueden llegar con un inter-
valo de 400 nanosegundos, la ejecución de la primera no pp_
drá acabarse en la mayoría de los casos en ese tiempo, de-
biendo realizarse el resto con la decodificación tomada -
desde IR2.
Si consideramos el caso de una instrucción con una dura -
clon mayor a los 400 nanosegundos, que no es seguida inme-
diatamente por otra, se hace necesario realizar la transi-

ción de cualquier manera, para así evitar la decodificación


de las instrucciones desde los dos IR, que requeriría un -
aumento considerable de circuitos y sobre todo una comple-
jidad mayor para decidir en qué tiempo se toma una decodi-
cación u otra.
El paso de una instrucción desde IR1 a IR2 se lo realiza -
por consiguiente en los siguientes casos:
1.- Cuando una instrucción llega al IR1 (Q4T.Q4J).
2.- 400 nanosegundos después de que una instrucción ha in_i
ciado su ejecución (Q4R VQ3E/SV Q2A).
El tiempo especificado en el punto 2 corresponde a la posi

ii
ble llegada de otra instrucción. ¡El biestable Q4R se in -
cluye en la cadena para direccionamiento de las instrucci£
nes con referencia a memoria (figura 5.5-1).

El primer nivel del Registro de Instrucciones se implemen-


to con los circuitos Am25S08. Estos circuitos son regis -
tros tipo D de alta velocidad para 4 bits, provistos de una

entrada de reloj y otra para habilitación de escritura.


Cuando la señal de habilitación esta baja, los datos a las
entradas D son guardados con la transición positiva del r^
loj. Cuando tal señal se mantiene alta, los registros no
cambian de estado sin importar el estado de las entradas o
las transiciones del reloj.

El segundo nivel se formó con circuitos 74LS175 que tienen

características similares a los anteriores, pero carecen -


de la entrada de habilitación teniendo en su lugar una se-
ñal para borrado. La velocidad de respuesta en este caso
no necesita ser muy rápida ya que toda decodificación des-

de IR2 se realiza luego de un tiempo prudencial de la tran.


sición.

Para cubrir una instrucción completa se necesitan 4 circuí^


tos de los anteriores.
IR2 no necesita retener los 16 bits de IR1. En una ins -
trucción con referencia a memoria, los últimos 8 bits del
desplazamiento no se utilizan. , Cuando se trata de una ins_
trucción de entrada y salida, los últimos 8 bits se decodi_
fican desde IR1. Una instrucción aritmética y lógica ter-
ii
mina su ejecución durante su permanencia en IR1.
La figura 7.1-1 presenta los dosi'¡niveles del Registro de
!!
Instrucciones con sus correspondientes relojes de carga.

BO B1 B2 B3 B5 B6 B7 B9 B10 BU B12 B13 BU B15


;
r 1
RMO
DO DI D2 D3 00 01 02 D3 £ >J ¡ 00 01 02 03 E bJ DO DI D2 03 £ >-
CP
25S08 1- CP 25S08 r CP 25S08 r CP 25508
00 01 02 03 00 01 Q2 03 00 01 Q2 03 00 01 O2 03
O P Q 9 P Q Q

00 01 02 03 DO 01 02 03
cu CL O
CP 74LS175
00 01 Q2 03 00 Ql 02 Q3 -1—T2-
EIR1

EIR2

Figura 7 l l - l
[ i1
El cambio de IR1 a IR2 se realiza'un tanto anticipadamente
a la transición de IR1. Esto para satisfacer el tfrhold de
los circuitos de IR2.
2.- DECODIFICACION Y CONTROL DEL TIPO DE CICLO GENERADO
¡!
EN LA MEMORIA :

Conforme se explicó anteriormente, cuando se ejecuta una -

instrucción con referencia a memoria pueden generarse tres

ciclos de trabajo: Lectura (L) , Escritura (E) y Lectura Mp_

dificación y Escritura (LME).

El control necesita al menos 2 líneas para seleccionar -

cualquiera de estos ciclos.

De acuerdo a los requerimientos impuestos en el diseño de

la Unidad de Memoria se estableció el siguiente código:

Tipo de Ciclo Código

A .W
Lectura O O

Escritura :> 1 1

Lect. Modif. Escrit. ,, O 1

No operación 1 O

Analizando-en qué circunstancias debe generarse cada ciclo

se puede concluir que:

Se solicitará un ciclo de Lectura en caso de:

1.- Traída de nueva instrucción.

- 2 . - Ejecución de instrucciones: LDA, JMP y JSR.

3.- Direccionamiento Indirecto.

Se solicitará un ciclo de escritura en caso de:

1.- Ejecución de una instrucción STA.

2.- Inicio de Interrupción.


Se solicitará un ciclo de Lectura Modificación y Escritura

en caso de: . i
1.- Ejecución de instrucciones ISZ y DSZ.

2.- Direccionamiento Indirecto con incremento o decremento


automático. . ;

Cuando se realiza un direccionamiento indirecto con o sin


índice automático, debe solicitarse inicialmente el tipo -
de ciclo indicado para luego generarse el correspondiente
a la instrucción en ejecución (capítulo IV numeral 4).
El tiempo efectivo para que el código enviado sea aceptado
por la memoria se llegó a establecer que es el primer ter-
cio de T2. Este tiempo sin embargo, establece un retraso
en el envío del código correspondiente ya que el ciclo se
iniciará a la mitad de TI. Por esta circunstancia, se em-
plea una tercera señal que "avisa" a la memoria con la an-
ticipación adecuada la llegada del código. A esta señal -
la denominaremos CICLO.
Ciertas señales de la cadena de control sirven de base para
la decodificación de los diferentes ciclos:
Q2T para traída de nueva instrucción.
Q4I para direccionamiento indirecto con o sin índice auto_
mático. :
Q4M para la ejecución de instrucciones con referencia a -
memoria !
Q8 pa^a interrupciones. ',
La señal Q2T por si sola puede asociarse directamente con
un ciclo de lectura:

Q2T R W

0 1 0 R = Q2T

1 0 0 W = O ,

La señal Q4I debe ser decodificada junto con otra de índi-


ce automático (F):
F
0 Con índice automático
1 Sin índice automático

Q4I F R W
O O 1 O

0 1 1 O

1 O O 1 R = Q4I
1 1 o o W = Q4I.F

La señal Q4M debe diferenciar cada tipo de instrucción con


referencia a memoria:
S = STA :
JL = JMP v JSRv LDA
Z = ISZ vDSZ

Las condiciones "no importa" colocadas en la tabla de verdad,


corresponden en este caso a condiciones que no pueden darse
al mismo tiempo.
- 219

Q4M JL S Z R W

0 0 0 0 1 0 Q4M-JL
0 0 0 1 1 0 S-Z
1 1 .' 0
/ \

1
0 0 1 0 1 0 1 1 \x 0 ,
0 0 1 1 1 0
1 1 X X
0 1 0 0 1 0
1 1 X 1
0 1 0 1 1 0
0 1 l' 0 1 0 R = Q4M+S
0 1 1 1 1 0
R = Q4M.S
1 0 0 0 X X
Q4M-JL
1 0 0 1 0 1 S-Z 0 0 0 'V;
1 0 1 0 1 1 0 0 X i!
1 0 1 1 X X
0 0 y"
x!
1 1 0 0 0 0
0 0 X
1
1J
1 1 0 1 X X
1 1 1 0 X X W = Q4M.JL
1 1 1 1 X X

La señal Q8 puede asociarse directamente al código de es -

critura:

Q8 R W

0 1 0 : R = 1

1 1 1 W= Q8

Las señales de control consideradas como base no pueden ac


tivarse
4
simultáneamente y su duración satisface todos los
requerimientos de tiempo. Esto facilita el diseño de la -
red decodificadora que puede ser implernentada como se mues_
tra en la figura 7.2—1.
Todas las señales se sincronizan con T2A1 y TI para que el
código llegue a la memoria al tiempo preciso.
TI

Q2T

Q2T

(IRl)r STA
O CICLO

( I R l ) r JL

QB

T2A'

Figura 1 2-1
l!
ílii

3.- DECODIFICACIONES ASOCIADAS Á SEÑALES DE DEMORA


Una vez establecida la transición de IRl a IR2 puede ana_
lizarse con mayor detenimiento él tiempo disponible para
cada señal de decodificación.
El tiempo que una instrucción permanece en IRl es 400 na_
nosegundos luego de iniciada su ejecución. En el caso -
de instrucciones con referencia !a memoria, éstas se ini-
cian solicitando un ciclo que puede o no puede ser acep-
tado inmediatamente por la memoria.
Cuando la solicitud es aceptada 'de inmediato, las seña -
les asociadas con la demora: Q4I y Q4M, permanecerán ac-
tivas mientras la instrucción que las inicia está toda -
vía en IRl. Toda decodificación relacionada con estas -
señales debe por lo mismo tomarse desde IRl.
Cuando el ciclo de memoria solicitado no es aceptado in-
mediatamente, la señal de control involucrada se manten-
drá activa mientras se acepta el pedido, pero no así las
decodificaciones asociadas que desaparecerán con la tran
sición de IRl a IR2. Conviene por tanto retener de algu_
na manera tales decodificaciones:.
La alternativa planteada como solución en este caso uti-
liza biestables que mantienen las señales por el tiempo
deseado.
Las señales que deben ser tratadas de esta manera son:
STA y STA en la cadena de control y en la red del tipo
de ciclo.

II
JL en la red decodificadora del tipo de ciclo.
La misma situación ocurre cuando se realiza una instruc-
ción STA con direccionamiento indirecto. Mientras el
proceso indirecto no ha culminado, es necesario que la
decodificación STA y STA tomadas desde IR1 se mantengan,
El circuito que permite realizar esta retención se pre -
senta en la figura 7.3-1.

(IRl)r (IRl)r
JL STA STA

JL STA 0 0 J
Rl) 1 (I Rl)

CP CP°

QU \ Q
Q5I
TÍA

Figura 7.3-1
- 223

4.- DECODIFICACION DE LOS CONTROLES EN LOS CIRCUITOS DE


LA UNIDAD ARITMÉTICA Y LÓGICA
SELECCIÓN DE DIRECCIONES EN LOS'REGISTROS.- Los registros
a direccionar_
se en los circuitos 74172 son seis. Cada uno se seleccio_
na de acuerdo a la instrucción en ejecución:
Nombre Código
ACI : o 0 0

CP • 0 0 1
ACÓ i 0 0
ACI -i 0 1
AC2 • i 1 0
AC3 i11
Registros índice (XR).- Las instrucciones con referencia
a memoria tienen la posibilidad
de trabajar con selección de Registro índice. Son los -
bits 6 y 7 de la instrucción los que determinan tal cosa:
b6 b7 Direccionamiento
O O +w8/ACI
0 1 iw8/ACI + CP
'1 O ±w8/ACI + AC2
1 1 ±ü)8/ACI + AC3
La selección de üJ8/ACI siempre estará dada por 0 0 0 sin
importar el estado de b6 y b7.
Para el resto de registros tenemos:
b6 b7_ Código ¡

O O X X X

0 1 CP 001 :

1 O AC2 110 :

1 1 AC3 111 ; índice = b 6 . b 6 . b 7

La condición "no importa" dada a b6 = O y b7 = O obedece

a que en tal situación, en realidad no importa si se se^-

lecciona y habilita la lectura de cualquier registro,

porque la decodificación del tipo de operación en el ge-

nerador de funciones asegurará el trabajo correcto.


Acumuladores (AC).- Las instrucciones LDA, STA, DI, DO y

todas las aritméticas actúan sobre -

alguno de los acumuladores. La decodificación que selec

ciona a cada uno de ellos esta dada únicamente por los -

bits correspondientes en cada formato:

LDA: AC 1 b3 b4
STA: AC 1 b3 b4
DI: AC 1 b3 b4
DO: AC 1 b3 b4
AL: ACS 1 bl b2
ACD 1 b3 b4
Decodificación por Ciclos.- Los códigos de selección de
los registros pueden controlarse con las señales de reloj
coincidentes.

La tabla que sigue resume todas las posibilidades de se-

lección. Se considera las tres éntradas que para este -


- 225 - .-
ii ;
*u
j
propósito ofrecen los circuitos 74172.

RS1
Ciclo Registro Dirección Causas
TO CP 001 Traída de nueva instrucción.
Interrupciones.
Función "Deposite".
*ACI 000 Direccionamiento a memoria.
Envío del código del dispos,i
tivo a la Interfase.

TI *ACD 1 b3 b4 Instrucciones AL.

T2 *CP 001 Instrucción .JSR.


AC 1 b3 b4 Instrucciones STA y DO.
Función "Examine AC".

RWS2
Ciclo Registro Dirección Causas
TO *XR b6 b6 b7 Direccionamiento a- memoria.
AC 1 b3 b4 Instrucciones DI.
Función "Deposite AC".

TI *ACS 1 bl b2 Instrucciones AL.

T2 *AC! 000 Llegada de nueva instrucción.


Interrupciones.
AC 1 b3 b4 Instrucción LDA.
CP 001 Funciones "Comienzo" y "Exaini_
ne1
i .:

I*

WS1
Ciclo Registro Dirección Causas
TO *AC3 111 Instrucción JSR.
CP 001 Instrucciones de salto con ddi
reccionamiento indirecto.

TI *CP 001 Traída de nueva instrucción.


Instrucciones JMP y JSR.

T2 *ACD 1 b3 b4 Instrucciones AL.

Los asteriscos (*) señalan los registros cuya selección


se ha escogido como permanente mientras no se presente o_
tra alternativa.
Todas las direcciones se decodifican utilizando los cir-
cuitos 74S153 que son multiplexers dobles de 4 a 1. En
realidad se necesitarían sólo tres entradas al multiplexer
(una para cada ciclo),sin embargo, se aprovecha la cuarta
entrada en el ciclo cuya decodificación es más compleja.
TO produce los mayores cambios por lo que se decidió divi
dirlo en T01 y T"02.

Decodificación en RS1
Ciclo T01: Ciclo T02: Ciclo TI:

CP ACI ACD

RS10 0 RS10 0 RS10 1


RSli 0 RSli 0 RSli b3

RS12 1 RS12 0 RS12 b4


- 227 -

Ciclo T2:

La selección del Contador de Programa (CP) en el caso de


una instrucción JSR coincide con la llegada de tal instruc_
ción al IR1. Resulta por lo mismo imposible condicionar
la selección de CP a la ocurrencia de tal instrucción, es
p.o'r ello que en este caso se mantiene la decodificación -
de CP siempre que no se ejecute una instrucción STA, DO o
la función operacional "Examine AC".
Una señal común a las tres últimas alternativas y que ade_
más satisface las condiciones de tiempo para esta decodi-
ficación es QS (a la entrada del biestable Q5S-véase el a
nexo 3).
CP AC

QS 0 1

RSlo 0 1

RSli 0 b3

RS1 2 1 b4 RSlo = QS

La decodificación de b3 y b4 se realiza desde el IR1 (con

retención por una posible demora en la memoria) en el ca-

so de STA y DO ; y, desde DA1 y DA2 en el caso de "Exami-

ne AC" (EAC):

La tabla de verdad que describe el proceso de decodifica-

ción para este caso se preséntala continuación:


QS b3 EAC DAl

0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 -0 0
0 1 0 1 0
0 1 1 0 0 QS-b3
1 1 1 EAC-DA1 ' 0 0 11 1
V 1
0 0
[
-1- 11 » 0
1 0 0 0 0 0 0
i !
1
0
1 0 0 1 0 - -~ «-•
0 oí 1 1
1 0 1 0 0
0 0 0 0
"1 0 1 1 1
1 1 0 0 1
1 1 0 1 1 RSli = QS.b3.EAC + QS.DAl.EAC
1 1 1 0 0
1 1 1 1 1 = QS.b3.EAC . QS.DAl.EAC

QS b4 EAC DA2 RSl

0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1 QS-b4
0 1 0 1 1 EAC-DA2
l'l n 1\/ 0
0
0
1 1 0
1 1 1
1
1
¡íi1 Mij / 0
1 1
.t
1 0 0 0 0 i
1 0 0 1 0
í1 1!t 0 0

1 0 1 0 0 i•
= QS + DA2.EAC + b4.EAC
1 0 1 1 1
1 1 0 0 1 RSl 2 ? = QS . EAC.DA2 EAC.b4
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1
Decodificación en RWS2
Ciclo T01: Ciclo T02: Ciclo TI:
AC XR ACS

RWS20 1 RWS20 b6 RWS20 1


RWS2i b3 b6 RWS2i bl

RWS22 b4 RWS2 b7 RWS22 b2

b3 y b4 se toman desde IR2 en caso de una instrucción DI


o desde DA1 y DA2 en caso de "Deposite AC" (DAC) .

Las entradas RWS2 en T01 están dadas de acuerdo a las si


guientes ecuaciones :

RWS20 = 1

RWS2a = DAC.DA1 + DAC.b3

RWS2t = DAC.DA1 . DAC.b3

RWS22 = DAC.DA2 + DAC.b4

RWS22 = DAC.DA2 . DAC.b4

Ciclo T2:

En este caso se utiliza la señal Q6M (desde la cadena de

control para LDA) con el fin de seleccionar AC. También

se emplea una señal común a los interruptores operaciona_


les "Comienzo" y "Examine", (SE), para decodificar CP.
ACI CP AC -
Q6M O O 1 1
S E 0 1 0 1
AGÍ CP AC -

RWS20 O O 1 X

RWS2i O O b3 X RWS2 0 = Q6M

RWS22 O 1 b4 X RVÍS2! = Q6M.b3

Q6M SE b4 ' RWS2 2

O O o
O Q Q Q6M-SE
O
O
1
1
1
1
b4
0
0
pVM XN'
Xy 1
0

1 O O
1 O 1 RWS22 *= SE + Q6M.b4
1 1 X
RWS22 F= SE . Q6M.b4
1 1 X

Decodificación en WS1

Ciclo T01: Ciclo TI:


AC3 CP CP

WS10 1 WS10 O WS10 o


WSli 1 WSli O WSli o
WS12 1 WS12 1 WS12 1
Ciclo T2:

ACD

WS10 1

b3
WS12 b4 .'

Los códigos asignados a los diferentes ciclos son,


Sido Código en el multiplexer
A B

T01 1 1

T02 1 0

TI 0 1

T2 0 0

T01 se decodifica en los siguientes casos:

1.- Traída de nueva instrucción (TA).

2.-Interrupciones (QIT2).

3.- Función operacional "Deposite" (D).

4.- Instrucciones DI (QT).

5.- Función operacional "Deposite AC" (DAC).

6.- Instrucción JSR (II).

Todas estas señales tienen la función común de seleccip_

nar T01 por lo que pueden ser analizadas como si se tra_

tara de una señal única S.

La figura 7.4-1 presenta la decodificación general con

sólo 4 multiplexers, manejando WS10 independientemente.

Las características circuítales dinámicas establecen

tiempos de "preparación", por lo que para todos los ci-

clos se utilizan los relojes TA' (con adelanto de.l/3T)

empleándose además retenedores que garanticen la selec-

ción el tiempo mínimo necesario;.


|
Los retenedores utilizados son ¡los circuitos 3404 que -

tienen salidas complementadas (jüíótese que a los contro_

les de los circuitos 74172 en idealidad llega el inver-


- 232 -

r-\

r-
td

en
•H
so del código propuesto inicialmente]

TO TI T2 S A B

0 0 0 0 X X
0 0 0 1 X X
0 0 1 0 0 0 A = TO
0 0 1 1 X X TO-T1
0 1 0 0 0 1 X /_!_ x \¡__p T2-S
X
!x 1
0 1 0 1 X X
X ¡X X
0 1 1 0 X X x!
0 \ X7 X
0 1 1 1 X X
1 0 0 0 10 B = TI + S
1 0 0 1 11
B = TI + TA + QIT2 + D + QT
1 0 1 0 X. X
1 0 1 1 X X + DAC + II
1 1 0 0 X X
B = T1.TA.QIT2.D.QT.DAC.I1
1 1 0 1 X X
1 1 1 0 X X
1 1 1 1 X X

SELECCIÓN DE OPERACIONES EN LA UAL.- El circuito genera


dor de funciones
(Am 2506) dispone de seis líneas para selección de la o
peración correspondiente.
Las instrucciones que producen las mayores variantes
son en este caso las aritméticas y lógicas. Los bits 5,
6 y 7 de estas instrucciones definen la función a real:L
zarse:
- 234

Entradas
5 b6 b7 Instrucción Registros^ Operación A B

0 0 0 COM ACS A - B - 1 0 ACS

0 0 1 NEG ACS + 1 A - B 0 ACS

0 1 0 MOV ACS A + B 0 ACS

0 1 1 INC ACS + 1 A + B + 1 0 ACS

1 0 0 ADC ACS 4- ACD A - B - 1 ACD ACS

1 0 1 SUB ACD - ACS A - B ACD ACS

1 1 0 ADD ACS + ACD A + B ACD ACS

1 1 1 AND ACS ACD A A B ACD ACS

La instrucción COM se ejecuta por medio del "Complemento


de Raíz Disminuido" del número contenido en ACS:
COM(ACS) = O - ACS - 1
De la misma manera se utiliza el"Complemento de Raíz" -
r'el contenido de ACS para realizar la instrucción NEG:
NEG(ACS) = O - ACS

La necesidad de controlar en estos dos -casos las entra-


das A del generador de funciones, poniendo ceros, posi-
t
bilita la selección de operaciones descrita para MOV e
INC donde también las entradas A son ceros.
Además de los códigos de operación empleados por las ins_
trucciones aritméticas/ se incluyen algunos más, necesa-
rios en el resto de instrucciones.
Operación • Causa
A + B Cálculo de Direcpidn Efectiva.

A Cálculo de Dirección Efectiva.


Direccionamiento Indirecto.
Instrucción STA.
Instrucción JSR.
Instrucciones de Entrada y Salida.
Función operacional "Examine".
Función operacional "Deposite".
Interrupciones.

A + 1 Traída de nueva instrucción.


Instrucción ISZ.
Direccionamiento Indirecto con Incremen-
to Automático.
Interrupciones.

A - 1 Instrucción DSZ.,
Direccionamiento, Indirecto con Decremen-
to Automático.

A continuación se presenta una tabla resumida de las


funciones utilizadas junto a su código correspondiente
Operación Código de Selección
M SO SI S2 S3 Cn

A O O o o 1
A + 1 O O o o o
A - 1 O 1 1 1 1
A + B O 1 o 1 1-
A - B - 1 O O 1 o 1
A - B O o 1 o o
l¡ ;

sigue... [

A + B + 1 ; O 1 O O 1 O

A A B 1 1 1 0 1 X

Decodificación por Ciclos.- Cada operación se selecciona


para que actúe en el ciclo especifico.
Ciclo TO:
Operación Causa
A + B o -^ Cálculo de Dirección Efectiva.
A + 1 Traída de nueva instrucción (O?) .
i ' Interrupciones (Q5S).
A Instrucciones de E/S (Q2E/S).
Función operacional "Examine",(E).
Función operacional "Deposite" (D).
Los diferentes códigos se asocian a señales de control
(escritas entre paréntesis) que se ponen a 1L. sujetándo_
se a la ocurrencia de las causas que los producen.
No se incluye una señal para el cálculo de dirección efec
tiva porque ésta será la condición permanente mientras -
no pase otra cosa.
En el cálculo de dirección efectiva se debe seleccionar
A cuando se trabaja con direccionamiento en página cero
y A + B en todos los demás casos.
Los bits que determinan esta situación son el 6 y el 7.
-237-2

b6 b7 Operación Código de Selección

M SQ SI 32 S3 Cn

O O A 0 . 0
O O O o 1
O 1 A + B 1 O O 1 1
1 O A + B 1 O O 1 1
1 1 A + B O 1 o o 1 1
M - SI = S2 = O ¡, !
[
SO « S3 = b6 + b7 = Y £ ••

Cn = 1 í1 I

Debe tenerse presente que la fujnción "Examine" trabaja

con la cadena de traída, por lo!-'-que cuando E se activa

T también lo hará y en ese caso| E = T.


I I nueva instrucción T
Cuando se inicia la traída de ufaa

se activa pero no asi E, en cuyp caso E y T son varia-,.


t:
bles distintas. ;

Las señales T y Q5S así como Q2JE/S, E y D nunca serán


>! '

simultáneas. Esto determina qu^; las únicas combinacio_

nes posibles sean: '!


'i '
5. Q5S_ E B. Q2E/S Operacipjn Código de Selección .

I M SO SI S2 S3 Cn
V

O 0 0 0 0 0 A , A + P¡ OY O O Y 1
•j |
1 0 0 0 0 1 A Sii 0 0 0 0 0 1

2 0 0 0 1 0 . A 0 0 0 0 0 1

20 1 0 1 0 0 A ¡ ] . 0 0 O O O 1
* •!

8 0 1 0 0 0 A + l ^ I 0 0 0 0 0 0
i! ¡

16 1 0 0 0 0 A + 1 Í O O O O O O
donde: M = Sl-= S2 = O
T-Q5S-E
sK X
i

í1 / x ] x) 0 0 /I xl X
D-Q2E/S

¡1 x ¡ x! X X ¡X
1
Xi
1
X Cn = Q5S.T + E
¡x X X I X X
¡x Y1
x 1 X

u 1
x) X X \ x; X
Cn = Q5S.T . E

Cn = T + Q5S . E
La no simultaneidad de las señales permite trabajar más
fácilmente con:
A = 0? -f

B = Q2E

A B b6_ b7 SO=S3
0 0 0 0 0 A-B

0 1 1 b6-b7
0 0 0 0 X 0
0 0 1 0 1 '?} 0 X 0
0 0 1 1 1 T¡
1—A
0 X 0
0 1 0 0 0 x¡ 0 X 0
0 1 0 1 0
0 1 1 0 0
SO = = A.B.b7 + A.B.b6
0 1 1 1 0 SO = = A.B (b6 + b7)
1 0 0 0 0
SO == S3 = T +Q5S . Q2E/S E + D
1 0 ; 0 1 0
1 0. 1 0 0 Como
Come SO y S3 permanecen iguales
1 0 1 1 0 cuando
cuan se activa E o T, puede tra-
1 1 0 0 X
1 1 0 1 X
bajarse
baja sólo con T que es común a
1 1 1 0 X los
1 1 1 1 X i-i r\
SO Q2E/S
= S3 fu+T.Q5S.Q2E/S.T.D.Y
E + D

SO = S3 =: T.Q5S.D.Q2E/S.Y

SO = S3 i=! T+Q5S.D . Q2E/S . b6.b7


239 -

Ciclo TI:

Este ciclo incluye ú

de las instrucciones

Operación b5_ b6 b7_ M SO SI S2 S3 Cn A B

A - B - 1 0 0 0 0 0 1 1 0 1 O ACS

A - B 0 0 1 0 0 1 1 0 0 O ACS

A + B 0 1 0 0 1 0 0 1 1 O ACS

A + B + 1 0 1 1 0 1 0 0 1 0 O ACS

A - B - 1 1 0 0 0 0 1 1 0 1 ACD ACS

A TD
1 0 1 0 0 1 1 0 0 ACD ACS

A + B 1 1 0 0 1 0 0 1 1 ACD ACS

A A B 1 1 1 1 1 1 O 1 X ACD ACS

El control de las entradas A del circuito generador de


funciones puede realizarse con el bit 5:
A = bS.ACD

Las demás entradas de control se dan por las siguientes


ecuaciones:
b5-b6
b7 0 0 0 0
0 f 1> 0
0 V M = b5.b6.b7
1,

b5-b.6
b7 0 /I V' 0
0 \ 0 SO •= S3 = b6

b5-b6
^
b7 1N' 0 0 A :
I/ ' 0 (l M SI = ; b6 + b5.b7

SI =,¡ b6 . b5.b7
b5-b6
b7 1N . 0 0 '1
!/ ' 0 0 vi S2 = b6
b5-b6
b7 1 1 1 1
0 0 X 0 Cn = b7

Ciclo T2:

Antes de hacer el estudio de las operaciones a decodifi-


carse en este ciclo, se analiza el proceso de índice au-
tomático que presenta ciertas características especiales.
Cuando se direcciona indirectamente las localidades de -
memoria .000200 a 000270 y 000300 a 000370 se produce un
tí o o o
proceso de índice automático que incrementa su contenido
en 1 o lo decrementa respectivamente.
La decodificación para índice automático se realiza en -
la siguiente forma:
Salidas del 2506 Dirección Operación Código

Fi o F i i F i ,Fx *, ifFj 5 (Octal) M so SI S2 S3 Cn

0 1 0 0 0 0 20 A + 1 0 0 0 0 0 0
0 1 0 0 0 1 21 A + 1 0 0 0 0 0 0
0 1 0 0 1 0 22 A + 1 0 0 0 0 0 0
0 1 0 0" 1 1 23 A + 1 0 0 0 0 0 0
0 1 0 1 0 0 24 A + 1 0 0 0 0 0 0
0 1 0 1 0 1 25 A + 1 0 0 0 0 0 0
0 1 0 1 1 0 26 - A + 1 0 0 0 0 0 0
0 1 0 1 1 1 27 ; ;A + 1 0 0 0 0 0 0
0 1 1 0 0 0 30 i A - 1 0 1 1 1 1 1
0 1 1 0 0 1 31 j !A — 1 0 1 1 1 1 1
0 1 1 0 1 0 32 1 A - 1 0 1 1 •1 1 1
0 1 1 0 i 1 33 ) A - 1 0 1 1 1 1 1
241

sigue...

0 1 1 1 0 0 34 A - 1 0 1 1 1 1 1
0 1 1 1 0 1 35 A - 1 0 1 1 1 1 1
0 1 1 1 1 0 36 A - 1 0 1 1 1 1 1
0 1 1 1 1 1 37 A - 1 0 1 1 1 1 1

Las salidas del circuito generador de funciones FI a FU

pueden ser unificadas en una sola variable:

F 1 = FI + . . . + FI o + FTT

de tal manera que F 1 = O indique la ubicación de las lo-


calidades de memoria en el rango de 000200 a 00037n.
o o
El proceso de índice automático está condicionado a un -
i
direccionamiento indirecto. La señal F 1 debe por lo mis
mo ser controlada por una señal que avise el tipo de di-
rección. La mejor alternativa es utilizar una señal des_
de la cadena de direccionamiento indirecto ya que cuando
se produce una nueva referencia indirecta F0 = 1 (Ver ca
pítulo I numeral 4).
La decodificación de F' se realiza algunos ciclos de re-
loj T antes de emplearse en la selección d'e proceso ín -
dice. Esto crea la necesidad de retener F 1 hasta su uti_
lización efectiva. La señal de direccionamiento indirec_
to puede entonces actuar sobre el sistema de retención
(reloj de un biestable tipo D)||o bien introducirse en la
red decodificadora de F'. :
i
Si bien F 0 no es parte de la dirección enviada a la memo
í; -
ría, debe considerársele en l a j d e c o d i f i c a c i o n de F 1 para
- 242 --

asegurarse que en una segunda referencia a memoria se ac_


tive el proceso de índice automático sólo con direcciona^
miento indirecto. Con este objeto se emplea la señal
Q7I (desde la cadena de dirección indirecta) en la si -
guiente forma:
En la primera referencia a las localidades 00020R a
000370: F' = O, Fo = O y Q7I = 0.
8 -1
Si el contenido de tales localidades una vez modificado
involucra un nuevo índice automático: F l = 0 / F 0 ~ l y
Q7I « 1.
Por consiguiente si postulamos F = 1 cuando se realiza -
un proceso de incremento o decremento automático tenemos:
F 1 F 0 Q7I F
0 0 0 0 p'-Fo
0 0 1 1 Q7I 0 ( l /i) 1\ i ii ^SLíp 1
0 1
0 1 1 0 F = F 1 + Fo - Q 7 I + Fo - Q 7 I
1 0 0 1
F = F ' + (Fo © Q7I)
1 0 1 1

1 1 0 1

1 1 1 1
La-figura 7.4-2 muestra el circuito que decodifica y re-
tiene F .
La señal I que interviene en el reloj de los retenedores
viene desde la cadena de diresjpionamiento indirecto.
I'
RM1 fija el tiempo correcto.
- 243 -

RMl

Figura 7.4-2

Ahora se puede escribir las ecuaciones que definen las eri


tradas de control durante un proceso de índice automático
M = F
SO = SI = S2 = S3 = Cn = F.Fj. <t

El planteo realizado para índice automático permite desa-


rrollar con mayor facilidad la decodificación de operacio_
nes en el ciclo T2:
Operación Causa
A Instrucción JSR.
Instrucción STA.
Direccionamiénto Indirecto
,; •!
J -
Interrupciones (QIT1).
¡í í
b 'i
A + 1 Instrucción Í'SZ (ISZ) .
Direccionamiénto indirecto con incre_
• Í '! _
mentó automático (F).
A - 1 Instrucción PSZ (DSZ).

Direccionamiento indirecto con decre_


mentó automático (F).
En este caso se ha escogido la operación A como permanen-
te mientras no ocurra otra cosa.
Todas las instrucciones con referencia a memoria pueden -
incluir índice automático. Esto supone que si IS2 o DSZ
tiabajan con incremento o decremento automático, primero
debe activarse F y luego el código de la instrucción co -
rrespondiente.
ISZ DSZ F Fi 2 Operación Código de Selección
M so SI S2 S3 Cn

0 0 0 0 A 0 0 0 0 0 1
0 0 0 1 A 0 0 0 0 0 1
0 0 1 0 A + 1 0 0 0 0 0 0
0 0 1 1 A - 1 0 1 1 1 1 1
0 1 0 0 A - 1 0 1 1 1 1 1
0 1 0 1 A - 1 0 1 1 1 1 1
0 1 1 0 X X X X X X X
0 1 1 1 X X X X X X X
1 0 0 0 A + 1 0 0 0 0 0 0
1 0 0 1 A + 1 0 0 0 0 0 0
1 0 1 0 X X X X X X X
1 0 1 1 X X X X X X X
1 1 0 0 X ;;! x X X X X X
1 1 0 1 X í í¡ X X X X X X
1 1 1 0 X : •: x X X X X X
1 1 1 1 X • x X X X X X

M = O
ISZ-DSZ
0 l'l x¡i
A 0
0
¡1 x¡ 0 SO = SI = S2 = S3 = DSZ 4- F.
1 ¡!xX X i X
SO = SI = S2 = S3 = DSZ .
0 x! X

ISZ-DSZ
1 1\' X 0
Cn = ISZ.F 4-
a •w -
X 0
i X x/ X
Cn = ISZ.F . F.Fi
0 X X X

La decodificación de ISZ y DSZ se toma desde IR2. En el


caso de producirse una interrupción luego de ejecutada u-
na cualquiera de estas instrucciones, IR2 seguirá mante -
niendo el código de tal instrucción. Esto provocarla que
durante la interrupción se seleccione la operación A + 1
o A - 1 en vez de A. Se soluciona este problema añadien-
do en las ecuaciones anteriores la señal QIT1 (desde la -
cadena de interrupciones) en la.siguiente forma:

SO = SI = S2 = S3 = (DSZ+QIT1) . F.F 12

Cn = (ISZ+QIT1).F . F.Fia
El diagrama general de la selección de operaciones se rea_
liza con dos multiplexers dobles, de 4 a 1 (9309) conforme
se muestra en la figura 7.4-3. - ¡|
La decodificación del tipo de cicí© se realiza controlan-
: \o las entradas de selección d
25 cs=os

q.z *z
60C6

u qci qzi qoi »ci *¿i

¿q gq
(Tai)
TO TI T2 §JL Si Ciclo

0 0 0 X X 1

0 0 1 0 0 T2

0 1 0 0 1 TI

0 1 1 X X
1
,
1 0 0 1 1 TO

1 0 1 X X

1 1 0 X X S 0 = TO

1 1 1 X . X | Si - T~2

CONTROL DEL SELECTOR.- El trabaj iídel bloque denominado se


i;
lector quedó delimitado ya en las -
secciones anteriores.
Su acción puede ser esquematizada en dos hechos importan -
tes:
1.- Actúa sobre las entradas A del generador de funciones,
2.- Controla el paso de una palabra completa manejando se-
paradamente sus bytes.
Es el cálculo de dirección efectiva el que provoca el se -
gundo punto ya que; si la dirección es en página cero, en
las entradas A del generador de funciones deberá tenerse:
En los 8 bits más significantes: f u ceros
1''
En los 8 bits menos significantesp el Desplazamiento (D)

jr d e l a instrucción
j1 .
De la misma manera, si se utiliza | tüireccionamiento relati-
vo o con registro índice se tiene
En los 8 bits más significantes: signo (b8)
En los 8 bits menos significantes: el Desplazamiento (D)
i
de la instrucción
A continuación se analiza el control del bloque selector

tratando por separado sus bytes.

Byte menos significante s'

Las selecciones posibles son:

Entradas Paso de... Ciclo Causa

B ceros T2 Generación de la dirección ce.

ro dorante una interrupción -


1: '

(QITÍI) .
¡jli
TI Instrucciones aritméticas cu-

yo bij: 5 = 0 (Q2A.T1 = Q) .

A datos T2 Instrucciones ISZ y DSZ (Q6MI)


i\n indirecta (Q6MI).

Las señales asociadas a cada eventq» vienen de la cadena de


r;
\i
control, por lo que su intervenció!n asegura la acción co -
¡i l
rrespondiente en el tiempo corree t|q|. Sólo el reloj TI se
utiliza junto a Q2A (Q) porque la Cadena de instrucciones

aritméticas no dispone de una señaLj exactamente en ese in-


tervalo de tiempo.
La señal Q6MI esta dada por: Q6MS |4 Q6I (ver anexo 3) sieri
do por lo mismo común a las instrucciones que modifican la
memoria y a un direccionaraiento indirecto.
t
El bloque selector está integrado por multiplexers cuádru-
t.
pies de 2 a 1 (74S257). En el caso/i-del byte menos signifi_

cante sus entradas A se conectan al transeeptor de barra pa
ra el paso de datos y las B a ceros. Las entradas de con-
trol OE" y selección S se decodifican en la siguiente forma:
Recuérdese que:
s_ OE

0 0 las salidas adoptan el estado de las entra_


das A.
0 1 las salidas se ponen en un estado de alta
impedancia.
1 0 las salidas adoptan el estado de las entra_
das B.
1 1 las salidas se ponen en un estado de alta
impedancia.
Q6MI QIT1 Q b5 OEm Sm

0 0 0 1 X
0 0 0 1 X Q6MI-QITL1
0 0 1 o 1 Q-b5 1 0 X 0
0 0 1 1- X l" 0 X 0
0 1 0 o 1 1, X X X
0 1 0 o 1 0 X X X
0 1 1 X X
0 1 1 X X OEm = Q6MI.Q.QIT1 + Q 6 M I . b 5 . Q I T l
1 0 0 o o OEm = Q6MI.QIT1 (Q+b5)
1 0 0 o o
1 0 1 X X OEm = Q6MI.QIT1 . Q 2 A . T l . b 5
1 0 1 X X
1 1 0 X X 'x ^ X 0
1 1 0 X X X lj X 0
1 1 1 X X X X X X
1 1 1 X X 1 x/ X X

Sijil = Q6MI
Byte más significante
Las selecciones en este caso son:

Entradas Paso de... Ciclo Causa


B ceros T2 Generación de la dirección -
cero durante una interrup ~
ción (QITl).
TI Instrucciones aritméticas cu_
yo b5 = O (Q2A.T1 = Q).
TO Direccionamiento en página -
cero (bO = 0 , b6 = b7 = 0).
B signo TO Direccionamiento relativo o
con registro índice (bO = O,
b6 4- b7 = 1) .
A datos T2 Instrucciones ISZ y DSZ (Q6MI)
Dirección indirecta (Q6MI).
La diferencia en la decodificación con el byte menos signi
ficante, se encuentra en el direccionamiento,en página ce-
ro, relativo o con registro índice, manteniéndose igual pa_
\a todo lo demás. Nótese que es

lo durante TO mientras que los otros no.


La acción de los controles en el byte menos significante
(OEm y Sm) debe por tanto también;activar aquellos corres-
pondientes al byte más significamos en los casos comunes.
í¡
Los bits 6 y 7 determinan el tip0j.de dirección por lo que

puede crearse una variable artificial C = b6 + b7 de tal -


manera que para este caso:
Si C = O, en las entradas B del selector se ponen ceros.
Si C = 1, en las entradas B del selector se pone el signo
que es igual al b8.
La señal Q2M tomada desde la cadena de control para ins -
tracciones con referencia a memoria identifica la ejecu- -
ción del cálculo de dirección efectiva. Su empleo en la
decodificación permite un ahorro considerable de circuí -
tos .
OEm Sm Q2M OEM SM

0 0 0 0 o
OEm-Sm
0 0 1 X X Q2M 0 0 ^1
0 1 o 0 - -X X -0

0 1 1 X X
OEM = Q2M.OEm
1 0 0 1 X
- OEm-Sm
1 n 1 0 J. _-•- ~ -v,-- •
Q2M 0 /'l fi¿\
1 • i 0 1
v N,.

1 i 1 0 1

SM = Sm + OEm

SM = Q6MI + Q6MI.Q.QIT1 + Q6MI.b5.QITl


SM = Q6MI = Sm

La decodificación de las entradas BM para el paso de ceros


o del signo se realiza por medio de la variable artificial
C.
i
La figura 7.4-4 presenta la disposición completa dada al
bloque selector.
>\/

be

-Cbil del signo)

DATOS DESDE EL T R A N C E P T O R

OEM OEM OEm OErn


7¿S257 7A5257 7ÍS257 74S257
ISM SM Sm Sm

Q6MI

RE1M RElm
b5 Í I R 1 )
QITi
I TI
Q2M <J *02A

Figura 7 . 4 - 4
Q2M OErn C b8 BM

0 0 0 O
0 0 0 O
0 0 1 O Q2M-©Em
0 0 1 O C-b8 0 X 0 X
0 1 0 X 0 X 0 X
0 1 0 X 0 'v -X-V 1) X
s.
0 1 1 X 0 X 0 X
0 1 1 X
1 0 0 X
BM = OEm.C.bB
1 0 0 X
1 0 1 X BM = OEm.bS . b6.b7
1 0 1 X
1 1 0 O
1 1 0 O
1 1 1 O
1 1 1 1

DECODIFICACION DE LA ENTRADA DE CONTROL REÍ.- Anteriormen-

te habíamos
supuesto siempre habilitada la lectura de la sección 1 de
los registros 74172. En realidad sólo cuando se habilita
el selector debe inhibirse REÍ por lo que su decodifica
ción se realiza con:
RElm = OEm
RE1M = OEM

iiáribü
5.- DECODIFICACIONES ADICIONALES
CONTROL DEL DESPLAZADOR Y DEL LINK.-
Desplazador : En el capítulo III se diseñó el desplazador
con circuitos multiplexers 9309. La selección escogida pa_
ra las entradas de control junto a la acción correspondien_
te se presenta a continuación:
b8 b9 SO SI
0 0 0 0 10 Ninguna acción
0 1 0 1 12 Rotación a la izquierda
1 0 1 0 11 Rotación a la derecha
1 1 1 1 13 Intercambio de bytes
La decodificación de las entradas SO y SI en este caso es
directa, basta condicionar su acción a las instrucciones -
aritméticas (bO = 1).
bO b8 b9 SO SI
bO-b8
O .0 O o o 0 0 0
b9 íi!
0 0 1 o o 0 0 Ui 0

0 1 0 o o
O l í o o SO = b O . b S

1 0 0 0 o bO-b8
b9 0 0 0 0
1 0 1 0 1
0 0 l'l 1
1 1 0 1 O

1 1 1 1 1. Sil = b 0 . b 9
/demás, en el intervalo de acción de una instrucción a-
i
ritmética se fija el trabajo de(l desplazador sólo a T2A',
;
ya que podría alterarse el contenido del contador de pro-
- 255 - .

grama al solicitarse una nueva instrucción en ese lapso de


tiempo.
50 = bO.b8.T2A1
51 = bO.b9.T2A1
Link : El circuito que controla el contenido del link se
presenta en el capítulo III, figura 3.5-2.
Las entradas a decodificarse son SO y SI en los multiple-
xers correspondientes.
El circuito que maneja el paso de FO y F15 forma parte bá_
sicamente del desplazador por lo que sus entradas estarán
controladas por las mismas señales decodificadas anterior
mente para este bloque.
Los bits 10 y 11 establecen el valor base, por lo que:
50 = blO
51 = bll

CONTROL DE SALTOS (SOBREPASO DE INSTRUCCIÓN). -


Las instrucciones aritméticas, de modificación de memoria
y aquellas de entrada y salida que especifican un salto -
pueden sobrepasar la siguiente instrucción en secuencia.
El circuito desarrollado para tal'objeto se presenta en -
la figura 5.7-1.
La decodificación de la señal de salto para los tres ca -
t ;¡

sos posibles se trata a continuación:


i
Instrucciones Aritméticas.- Esftas instrucciones realizan
uría prueba sobre el carry y
el resultado de acuerdo a sus bits 13, 14 y 15 (Ver capí-
tulo I numeral 4) .

b!3 b!4 b!5 Salto


O O o o o o bl3-bl4-b!5

O o o o 1 o C-R 0 --ú TL^


• —* ss 0 J 1
O o o 1 o o 0 O i 1 0 V¡L ° 'T
11
O o o 1 1 o 0
•~ \- rí] i^ i 0

O o 1 o o 1 kll KT 0
O o 1 o 1 1
O o 1 1 o 1 SAAL = b l S . C . R + bl4.b!5.R +
O o 1 1 1 1
1 bl4.b!5.C + bl3.b!5.R
O 1 o o o
O 1 o o 1 1 b l 3 . b l 4 . b l 5 + bl3.b!5.C
O 1 o 1 o o
1 1 = bl5~(bl4 ,C+bl3.R) + b!5 .
O o 1 o
O 1 1 o o o (b!3.C+bl3.bl4+C.R+bl4.R)
O 1 1 o 1 o
O 1 1 1 o 1 = b!5(bl4.C+b!3.R) 4- b!5
O 1 1 1 1 1 (C(bl3+R) + b!4(b!3+R))
1 o o o o 1
1 o o o 1 o - bl5"(bl4.C+bl3.R) + bl5.

1 o o 1 o 1 (b!4.C).(b!3.R)
1 o o 1 1 o
1 o 1 o o o = b!5 (bl4.C+b!3.R) + b!5.
1 o 1 o 1 1 (bl4.C+b!3.R)
1 o 1 1 o o
1 o 1 1 1 1 SAAL = b!5 © (b!4.C + b!3.R)
1 1 o o o 1
1 1 o o 1 1
1 1 o 1 o 1
1 1 o 1 1 o
1 1 1 o o o
1 1 1 o 1 o
1 1 1 1 o o
1 1 1 1 1 1
- 257 - ¿ ,
!
{ '

Instrucciones de Modificación de Memoria.- Las instruccio_


nes ISZ y DSZ

provocan un salto cuando el resultado es cero:


Si: ID = ISZ + DSZ
SAID = ID.R

Instrucciones de Entrada y Salida que especifican un sal-

to.-
Estas instrucciones prueban el estado de los biestables -
Ocupado, Terminado, de Interrupciones y de Falla de Poten_
cia. Los bits 8 y 9 determinan las acciones correspondien
tes tanto para las instrucciones normales (DZ = 1) como -
para las de código 77 (DZ = 0).
DZ_ b8_ b9_ Saltar
0 0 0 Si el biestable de Interrupciones es 1
0 0 1 Si el biestable de Interrupciones es O
O 1 O Si el biestable de Fuente es 1
O l í Si el biestable de Fuente es O
1 0 0 Si el biestable Ocupado es 1
1 0 1 Si el biestable Ocupado es O
1 1 0 Si el biestable Terminado es 1
1 1 1 Si el biestable Terminado es O
La condición de salto, en este caso, se realiza con un me
dio multiplexer doble de 4 a 1, cuyas entradas de control
(SO = DZ y SI - b8) seleccionan el paso del contenido del
biestable correspondiente haciki la salida Z del multiple-
iI
xer.
Z_ b9 Saltar

0 0 O

0 1 1

1 0 1 SASKP = 2 ® b9
x: 1 1 O

La figura 7.5-1 muestra el circuito completo que determi-


na la condición de sobrepaso y produce la señal de reloj
SA que activa el circuito de salto de la figura 5.7-1.
Los relojes CK1, CK2 y CK3 fijan la acción de cada caso
al tiempo preciso (Ver anexo 6).

o INT T FP

02

ÜR1) b8

CK3

Figura : 7.5-1
CONTROL DEL BIESTABLE DE INTERRUPCIONES.-
Las funciones especiales de código 77, con excepción de
las de salto, determinan por medio de sus bits 8 y 9 la
habilitación o deshabilitación de una interrupción.
b8 b9_ Acción
O O Ninguna

0 1 Poner a 1 el biestable de Interrupciones


1 'O Poner a O el biestable de Interrupciones
1 1 Ninguna

El control del biestable de Interrupciones se realiza con_


forme a la figura 7.5-2. También en este caso CK fija el
cambio al tiempo correcto.

b9 INT

(IR:) bs
(IRl) b9
=f> CK

Figura 7 5-2

DECODIPICACION DE LAS DEMORAS DE EJECUCIÓN.-


í
Las instrucciones con referencia a memoria y las de entra_
,j
da y salida están sujetas a demoras especiales en su eje-
cución (capítulo V numeral 9).
Las secuencias que producen tales demoras son:
(DI) LDA-STA cuando coinciden¡ .los acumuladores.
DI y D5 con Q5M

D2 y D3 con Q6
D4 con Q3E/S

CONTROL DE JSR E INSTRUCCIONES UN DIRECCIONAMIEWTO RELA-


TIVO.-
La instrucción de salto a subrutina y aquellas con direc-
cionamiento relativo emplean de alguna manera el conteni-
do del Contador de Programa, bien para depositar la direc_
ción de retorno en AC3 durante la ejecución de JSR o para
realizar el cálculo de la dirección efectiva en el caso -
de un direccionamiento relativo.
Si previamente a la instrucción JSR se ha solicitado una
nueva instrucción, el CP se incrementa en 1 y queda con -
la dirección que sigue secuencialmente a JSR (dirección
de retorno). La ejecución en poliducto, sin embargo, no
garantiza el incremento previo de CP; por. lo que, confor-
me se explicó en el capítulo IV, se desarrolla un circui-
to que realiza tal incremento cuando la secuencia normal
de operación no lo ha hecho. Esta modalidad de control -
sobre el contenido de CP obliga/ cuando se ejecuta una
instrucción con direccionamiento relativo que no es de --
salto, ha hacer el pedido de la siguiente instrucción im-
pidiendo el incremento normal4e CP.
í¡
La circuitería necesaria para jrrealizar lo explicado debe
controlar: i?
1.- Si previamente a la ejecución de JSR o de un direccio
(D2) ID -JSR
(D3) STA-JSR

(D4) DO -JSR
(D5) LDA-DO cuando coinciden los acumuladores.
Cada instrucción se toma desde uno de los niveles del Re-

gistro de Instrucciones. La selección de acumuladores en

LDA, STA y DO está dada por los bits 3 y 4, por lo que la

red que decodifica su coincidencia se desarrolla en la si_

guiente forma:
(IRl) b3
(IR2) b3

(IRl) b¿
(IR2)

Figura 7.5-3

La red general que decodifica todas las alternativas se


da en la figura 7.5-4

UK1) JSK \ Q2
^J

>
(IRl) D O v S T A DlvDS DLf-

[ln¿) 1_DA

~~y —
Q5M ..

CIR2) DOvSTA Q3 E/S ]P~^

Figura j7J. 5-4

DCF es una señal que se activar^ por una sola de las se-

cuencias planteadas por lo que H


¡es posible asociarla con
la señal de control específica :l j
namiento relativo hubo un pedido de nueva instrucción.
2.- La señal de demora de ejecución en la cadena de ins-
trucciones con referencia a memoria.
3.- La selección de operaciones en el circuito generador
de funciones y la selección del CP en los registros de la
UAL.
Los puntos 2 y 3 están sujetos a la realización del in-
cremento adicional cuando el flujo normal no lo ha hecho.
La figura 7.5-5 muestra el diagrama esquemático del con -
trol explicado. Las señales más detalladas pueden encon-
trarse en el anexo 3.

AL CONTROL DE DEMORA DE EJECUCIÓN


DETECCIÓN DE
PEDIDO PREVIO
AL CONTROL DE
OPERACIONES
(CS)

AL SELECTOR
T2A
L> DE REGISTROS
(ID
Q5M

Figura 7.5-5

DECODIFICACION DE LAS INSTRUCCIONES.-


Todas las señales de decodificación deben tomarse desde
el Registro de Instrucciones. El nivel (IR1 o IR2) des-
i :,;
de el cual se originan depende pe la instrucción y de su
tiempo de acción. :
A continuación se resume las principales señales asocia-
- 263 -

das a cada nivel.


IR1
LDA JMP

STA JSR
JSR 01

JMP DD

SKP LDA
DZ STA
DO ISZ

íy
A, B, C DSZ
A, B, C

La decodificación, en cada casor se realiza analizando los


bits correspondientes del formado de instrucciones. Cuan-
do una de estas señales se utiliza junto a su cadena de -
control se puede prescindir del bit O en la decodificación
Código instrucción

k £! b3_ b^
0 0 0 0
J
0 0 0 1
0 0 1 0
ID
0 0 1 1
0 1 0 0
0 1 0 1 LDA
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1 STA
1 0 1 0
1 0 1 1
- 264 -

De la tabla anterior se obtienen las siguientes ecuacio-


nes :
JSR = bl.b2.b3.b4 = bl+b2+b3+b4

J = bl.b2.b3 = bl+b2+b3
ID = bl.b2.b3 = bl+b2+b3

LDA = ST.b2 = bl+b2

STA = bl.b? = bl+b2

ISZ = bl.b2.b3.b4 = bl-f-b2+b3 b4

DSZ = bl.b2.b3.b4 = bl+b2+b3 . b4

Las señales necesarias para la ejecución de las instruc^


cienes de entrada y salida pueden decodificarse de acuer_
do a sus bits 5, 6 y 7.
Código Instrucciones

b5 b6 b7 A B C DI DO SKP

0 0 0 NIO NIO-CPU 0 0 0 0 X 0

0 0 1 DÍA DIA-CPU 1 0 0 1 0 0

0 1 0 DOA 1 0 0 O 1 0

O l í DIB DIB-CPU 0 1 0 1 0 0

1 0 0 DOB DOB-CPÜ 0 1 0 0 1 0

1 0 1 DIC DIC-CPU | 0 0 1 1 0 0
í
1 1 0 DOC DOC-CPU } 0 0 1 0 1 0

1 1 1 SKP SKP-CPU r 0^ O O 0 0 1

DI = b 5 . b 7 -í- b 6 . b 7 = b7 + b S . b 6

DO = b7
SKP = b 5 . b 6 . b 7 ¡
A b5.b6.b7 + b5.b6.b7 = b5(b6 © b7)

B bS.be'.bT' 4- b5.b6.b7 = (blT + b5.b7) (b6 + bS.bT

= b6 . b5.b7 + b6 . b5.b7 = b6(b5+b7) + b6(b5+b7

b60b5 + b6©b7

C = b5.b6.b7 + b5.bíT.b7 = b5{b6©b7)


x x a á x 3 s Y a a: n H

IIIA o ü n x i d Y o
CAPITULO FUI

PRUEBAS EXPERIMENTALES Y CONCLUSIONES

1.- IMPLEMENTACION
La implementación física del sistema diseñado en la pre-
sente tesis se realizó sobre 4 plaquetas.
Todas las técnicas de ensamblaje estuvieron encaminadas
a facilitar el trabajo de interconexiones y a minimizar
el ruido.
La conmutación de un circuito TTL hace que cambie la co-
rriente de polarización, provoca transientes por la car-
ga y descarga de capacidades y mantiene la conducción so_
brelapada de sus transistores de salida. Además, un de-
fectuoso retorno a tierra se comporta para la corriente
como una alta impedancia generándose en ese punto un pi-
co de voltaje no deseado.
Los factores enunciados generan señales de ruido que po-
drían afectar la respuesta del sistema. Debe por lo mis_
mo recurrirse a técnicas que aseguren el funcionamiento
correcto.
Se ha puesto especial cuidado e(h el desacoplamiento de la
fuente y en conseguir un buen r-etorno a tierra, empleándo_
i
se para ello plaquetas especiales (multilayer boards) con
barras para fuente en la parte frontal y para tierra en
la posterior, un plano de tierra común a todas las pla-
quetas y capacitores de desacoplamiento para la radio -
frecuencia y para las frecuencias bajas.
La disposición circuital en cada plaqueta es el resulta_
u
do de un análisis muy detenidcp para, conseguir principal_
mente dos cosas: la mínima distancia entre conexiones y
el menor número de. salidas en cada plaqueta.
La nomenclatura de las señales que entran o salen de ca_
da una de las plaquetas se indica en las páginas siguien_
tes .
Si bien el reloj maestro no se .lo sitúa en ningún lugar
específico del control, la reducida tolerancia en los
tiempos y el gran número de señales que los relojes de-
ben manejar impusieron la necesidad de generar los ci -
clos de reloj más críticos en cada una de las plaquetas.
La figura 8.2-1 presenta las señales de reloj generadas
adicionalmente en el control.
NOTA.- Para inicializar el sistema antes de su utiliza-
ción se emplea una línea adicional denominada MR
(Borrado Maestro) que pone a todos los biestables en su
estado inactivo. if
I,
PLAQUETA DE CONTROL
ji
TÍA T2A TOA' T2A'

TO
D

74S175
Q
2 5
D

7 ¿517 5
Q
7 12
D

74S175
Q
U N K
7¿S112
Q
6 12
K
74S1I2
Q

n r
3 30 30 3 5 11 T 29
30 O" J 29
RM2 RM2 RM2 RMl ' RMO
9 9 9 1 13

74SOO 7¿SOO 74SOO 7¿SOO

RMO * RMl RM2

PLAQUETA DE DEEDDIFICACION ,
TÍA T2A To
II TOA 1 T2A1

1
TO 2 5 7 12 2 6 1 - 7
4 K q
U) 12
7¿5175 7AS175 74S175 7AS112 74S112
14 __ 14 _ 6 14 _ 11 3 T 11 T 13
Q 3 . 0 1 3
RMl M RMl "* RMl U RMO RMO
1
9 9 9 1 1 13

74SOO 7ASOO

RMO 9 ^\ RMO RMl 11 RMl

PLAQUETA DE CONMUTADORES
TÍA' T2A' TOA 1 TO T2

1
TO D Q
2 5 7 12
n o 12 7
h ^ 6
1C
74S175 7AS175 7AS175 7^5112 74S112
15_ 3 15 _ 6 15- 11 11 T 3
Q . Q 1 6 T 16 Q
RM2 ^ RM2 " RM2 RMO
I RMO
9 9 9 13 1 1
TI
12 7 | 2 6 T2A

74S112 7¿5112
11 17 9 3 17 5
RMO RM2 -

Figura)£.2-1
- 269 - :

PLAQUETA DE CONMUTADORES

(Vista Posterior);

74265 74265 74265 74LS74 74LS175 74LS74


1 2 3 - 4 5 6

74LS08 74S74 7400 74SOO 74LS10 74LS32 74LSOO


7 8 9 10 11 12 13

7430 74S175 74S112 74S112 74LS20


14 15 16 17 18

7427 74S08 74LS74 74SOS: 74S10 74S10 74LSOO


19 20 21 22 23 24 25

74S10 74SOO 74LS74 74SO¡0 74SOO 74SOO 74S133


26 27 28 29 30 31 32

74S02 7400 74S153 -74S153 74S153 74S153


33 34 35 - 36 37 38

9309 9309 7Í4ÍS74 3404 3404


39 40 42 43 44
- 270 -

PLAQUETA DE CONMINADORES

Señales que vienen de:


Plaqueta de Control Plaqueta de luces
Q5S DA1
Q2T DA 2
Q6 D
Q2E/S E
T
TA Conmutadores externos
DQR
CS START
Q7IR EXAMINE
QS EXAM.NEXT
Q6M CONTINUÉ
II INST STEP
Plaqueta de Decodificación STOP
RESET
HALO? DEPOSIT
ED2
DEP.NEXT
MR
EDI
QIT2
b_4 (IR2)
Entrada y Salida'
DIB
QT
DÍA
b6(IRl)
b7
b5(IRl)
bl(IRl)
b2
b3r
b7
b4r
b6
b3 (IR2

Plaqueta de AL
P
Reloj Maestro
TO
RMO
RM2
RM1
PLAQUETA DE CONMUTADORES

Señales que salen a


Plaqueta de Control
AN
DS
IE
EAC
DHC
DH

Plaqueta de Decodificación

RESET
EAC
Plaqueta de AL
EC
SO=S3
SI
S2
M
Cn
1RO(RS10)
1R1(RSli )
1R2(RS12) ;
2W/RO(RWS0)
2W/R1ÍRWS! )
2W/R2(RWS2)
1WO(WS10)
1W1 (WSli )
1W2(WS12)
Plaqueta de luces
E(26S12)C
Memoria
E(74116)
„ ¿.
979i ¿. —

PLAQUETA
(Vista

7416 74S260 74S260 74LÜM 74S74 74LS08 74SOO


1 2 3 5 6 7

74SOO 7408 7474 7410


8 9 10 11 12

7425 74S260 74LS74 74SBE1 74S20 74LS10 74LS20


13 . 14 15 iBi 17 18 19

20 7410 74S08 74S02 ••4S74 74279 74LSOO


0 21 22 23 1• 24 25 26

74S20 7420 74S112 1


1^3175 7420 74S08
27 28 29 IH30 31 32

74LSOO 74SOO 74S133


33 34 35

74LS21 74S74 7432 74S7 7400 74S133 74SOO


39 40 41 42| 43 44 45

74SOO 74S10 74S20 74LS«| 74LS10 74S08 74S74


46 47 4.8 49B¡ 50 51 52

74LS175 74SOO 74LSOO 74J27- 7474 74S260 74LS74


53 54 55 5Í6 57 58 59
PLAQUETA DE JlpNTROL

Señales que vienen de:


Plaqueta de Conmutadores Entrada y Salida
AN QT
DS
IE Conmutadores externos
EAC
DH MR
DHC
Plaqueta de Decodificación
ID(IR2)
bl2(!Rl)
LDA ( IR1 }
QIT2
MSKO
DO .
J(IR2)
b5(lRl)
bl(lRl)
b2(IRl)
b3+bO(IRl)
SA
JSR(IRl)
STA(IRl)
DCP
DR
Plaqueta de AL
bO (TB)
F (R-W)
F(Q7I)
Reloj Maestro

TO
RMQ
RM1
RM2
RM2
Memoria
ACT
Señales que salen a:
Plaqueta de Conmutadores Memoria
CS E (26S12)M
TA T2A
T T2A
DQR T2A1
Q2E/S
Q7IR Barra de datos
QS
Q6 b5
Q2T b!5
Q5S
Q6M Plaqueta de luces
II
CKC
Plaqueta de Decodificación
Q6MS
S
CST
Q4T
Q68
Q2A
Q3E/S
EIR1
EIR2
Plaqueta de AL

CK1
Q6MI
E (_26512) UAL
RE 2
WE1
QA
Q2M
Q, Q2A
JST
Q7I
Memoria
CKMDR
W
R
CICLO
PLAQUETA DE DECODIFICACION

(Vista Posterior)

74S02 7474 7420 7420


1 2 3 4

74S08 74S86 74LS20 74SOO 74LS175 74LS175


5 6 7 8 9 1 0

74S260 74S10 74S112 74S175 74LS10 7427


11 12 13 14 15 16

7430 74S86 74S02 74SOO 74SOO 74LS02 74S260


17 18 19 20 21 22 23

74LS21 74S10 74S08 74S11 7432 74LS08 74S20


24 25 26 27 28 29 30

74LS21 9309 74LSOO 74LS3-0 7486 74S11 74LS20


31 32 33 34 35 36 37

74S74 74LS74 25S08 25S08 25S08 25S08


38 39 40 41 42 43
- 276

PLAQUETA DE DE^JIFICACION

Señales que vienen de:


Plaqueta de Conmutadores Barra de datos
EAC BO
RESET J31
CD B2
B3
Plaqueta de Control B4
_B5
Q2A M
EIRl J37
E IR 2 B8
Q3E/S B9
Q4T B10
Q68 Bll
Q6MS B12
CST B13
S B14
B15
Plaqueta de AL

C
R
F(R-W)

Memoria
CE
Reloj Maestro
TO
RMO
RM1
RM2

Conmutadores externos
MR
277 -

PLAQUETA DE DECOffilGFICACION

Señales que salen a:

Plaqueta de Conmutadores Plaqueta de AL


DÍA S0(d)
QIT2 Sl(d)
56~{IR1) S0(l)
ET(IRl) Sl(l)
b5(IRl) AL
bl(IRl) WE2
b2(IRl) b5(lRl)
b7
b4r Entrada y Salida
b6(IRl)
b3(IR2). QE
DIB
b4(IR2)
EDI
ED2
HALT
b3r

Plaqueta de Control

ID(IR2)
b!2(IR1)
LDA(IRl)
MSKO
DO
J(IR2)
b5(IRl)
bl(IRl)
b2(IRl)
b3+bO(IRl)
SA
JSR(IRl)
STA(IRl)
DCF
DR
QIT2
Memoria

T2A1
PLAQUETA DE ARITMÉTICA Y LÓGICA
(Vista Posterior)

74S10 74SOO 74S260 74S20 74LS74


2 3 4 5 6

74172 74172 74172


7 9

74172 74172 74172 74172


11 12 13 14

r-
74S02 74S257 7430 r- 7430 74S257 74S86
15 16 17 18 19 20 21

74182 74S257 74S257 9309 9309 74S74


22 23 24 25 26 27

9309 9309 9309 9309


29 30 32 33

2506 2506 2506 2506


34 35 36 37

26S12 9309 9309 26S12 26S12


39 40 41 42 43
PLAQUETA DE ARITME ICA Y LÓGICA

Señales que vienen de:


Plaqueta de Conmutadores Barra de datos
EC BO
SO=S3
SI B2_
S2
M
Cn
ü
ÍÜL
iRO(RSlo) B6.
IRl(RSli)
1R2(RS12) B8~
2W/RO (RWS0) B9
2W/R1 (RWSi ) B10
2W/R2 (RWS2)
IWO(WSlo) B12
1W1 (WSli ) B13
1W2(WS12) B14
B15
Plaqueta de Control
Reloj Maestro
Q
E(26S12)UAL RMO
JST CK(74172)RM2
QA __ TI
2GR(RE2) RM1
IGW(WEI)
Q6MI .
CK1
Q2M

Q7'I

Plaqueta de Decodificación
S0(l)

S0(d)
Sl(d)
2GW(WE2)
b5(IR1)
AL .'
Conmutadores externos
MR
- 280 -

PLAQUETA DE ARITMÉTICA Y LÓGICA

Señales que salen a:


Plaqueta de Conmutadores

Plaqueta de Control
bO (TB)
F(R-W)
F(Q7I)
Plaqueta de Decodificacion
C
R
F (R-W)

Plaqueta de luces
CM

Barra de direcciones
Al
A2
A3
A4
A5
A6
A7
A8
A9
Al O
All
A12
A13
A14
A15
281 t.

SEÑALES ENTRE PLAQUETAS (VKta inferior)

1 GND AN GND AN
2 11 Vcc T2A'Vcc
3 MR EC b!5 Q6MS
4 DEP.NEXT TO T2A ID(IR2)
5 DEPOSIT DS T2A DS
6 ' RESET CD 1 Q7I IE
7 P IE : MR bO (TB)
8 STOP HALT - b5 b!2(IRl)
9 INST STEP CKC T2
10 CONTINUÉ ED2 JST F (R-W)
11 EXAM.NEXT EDI ! 11 LDA(IRl)
12 EXAMINE QIT2 -: EIR2 QIT2
13 START b4 (IR2) EIR1 MSKO
14 1W2(WS12) DIB Q3E/S DO
15 IWKWSlj ) RESET ' Q EAC
16 IWO(WSlo) EAC Q2M J(IR2)
17 2W/R2 (RWS2) RMO QA F(Q7I)
18 2W/RKRWS! ) DÍA WE1 S
19 DH b6 (IRl) RE2 DH
20 DHC b7 (IRl) • E (26S12)UAL DHC
21 2W/RO (RWS0) RM2 ; Q6MI b5 (IRl)
22 1R2(RS12) b5(IRl) CK1 CS
23 IRl (RSli ) bl (IRl) i Q2A bl (IRl)
24 1RO(RS10) b2(IRl) Q68 b2 (IR1-)
25 Q6M b3r(IRl) Q4T b3+bO (IRl
26 E b7 (IRl) Q6M TO
27 D Q5S Q5S CKMDR
28 DA2 Q2T Q2T RMO
29 DA1 Q6 Q6 RM1
30 QS b4r(IRl) QS RM2
31 Q7IR b6(IRl) ; Q7IR RM2
32 Cn b3 (IR2) ; Q2E/S ACT
33 M Q2E/S DQR SA
34 QT T QT
35 S2 T TA JSR(IRl)
36 SI TA R STA( IRl)
37 SO=S3 DQR ;; CICLO DCF
38 E(26S12)C CS ,; E(26S12)M CST
39 E~(74116) RM1 3 W DR
40 GND Vcc - GND Vcc

CONMUTADORES CONTROL
SEÑALES ENTRE PLAQUETAS (Vista inferior)

1 GND CE GND EC
2 T2A 1 Vcc bO(TB) Vcc
3 S DÍA _ CM
Q
4 CST ID (IR2) F (R-W) Sl(l)
5 b3r (IRl) Q2A F(Q7I) S0(l)
6 RM2 CD RM1 Sl(d)
7 F (R-W) MR P .S0(d)
8 bl2(!Rl) Q7I E (26S12)UAL
9 HALT EIRl Q6MI JST
10 Q6MS EIR2 AL Al
11 ED2 LDA ( IRl ) Q2A A2
12 EDI QIT2 b5 (IRl) A3
13 b4 (IR2) MSKO TI A4
14 DIB DO Q2M A5
15 RESET Q3E/S CK1 A6
16 AL J(IR2) 1W2(WS12) A7
17 WE2 Q4T 1W1 (WSli ) A8
'18 Q68 1WO(WS10) A9
19 S0(l) b6 (IRl) 2W/R2(RWS2) A10
20 Sl(d) b7(IRl) 2W/Rl(RWSi) All
21 SO (d) b5(IRl) 2W/RO(RWS0) Al 2
22 R b5(IRl) 1R2 (RS12)' A13
23 C bl (IRl) IRl(RSli) A14
24 BO b2 (IRl) IR O (RSlpj A15
25 Bl b3+bO(IRl) 2GW(WE2) BO.
26 B2_ b7 (IRl) IGW(WEI) Bl
27 TO CK(74172)RM2 B2_
28 B4 RMO 2GR(RE2) §1
29 135 RMl RMO B4
30 B6 b4r (IRl) QA
31 B7 b6(IRl) R
32 B8 b3 (IR2) Cn
33 B9 SA M li
34 BIO QE MR B9
35 Bll JSR(IRl) S2 BIO
36 B12 STA ( IRl ) SI Bll
37 B13 DCF SO=S^ B12
38 B14 EAC C B13
39 B15 DR Vcc B14
40 GND Vcc GND B15

DECODIFICACION ARITMÉTICA Y LÓGICA


2.- RESULTADOS EXPERIMENTALES Y COiSJCLUSIONES
Las pruebas experimentales se desarrollaron conjuntamen-
te con la Unidad de Memoria diseñada y construida en una
tesis paralela y complementaria a la presente.
El proceso de experimentación y acoplamiento se efectuó

paulatinamente bajo una secuencia de trabajo que puede -


resumirse en los siguientes puntos:
1.- Detección de cortocircuitos en cada plaqueta.
2.- Verificación del consumo promedio de corriente calcu_
lado para cada una.

3.- Verificación de los relojes y sus formas de onda.


4.- Simulación y pruebas del flujo de señales en cada una
de las cadenas de control.
5.- Pruebas sobre las luces de datos y direcciones en la
consola;, así como de los conmutadores de inicio y pa
h
rada.

6,- Pruebas de ejecución de cada una de las instrucciones


aritméticas y lógicas.
7.- Experimentación y pruebas con las señales que generan
los diversos ciclos de memoria.
ii
8.- Pruebas de ejecución
•^ de cadfeí
í i una de las instrucciones
*
para movimiento de datos. ¡.
i-
9.- Pruebas de ejecución de cadja una de las instrucciones
que modifican la memoria. ¡:
10.- Verificación de la, ejecucióín correcta de todos los ca_
i-
sos propuestos para el cálcuJLo de dirección efectiva.
- 284 -

í¡'

11.- Pruebas con direccionamiento indirecto.


12.- Pruebas de ejecución de las instrucciones de entrada
-?<( y salida hasta donde fue posible por la carencia de
?*: la interfase.
13.- Pruebas de ejecución de todas las funciones operacio_
nales a través de los conmutadores en la consola.
14.- Pruebas de ejecución de dos instrucciones consecuti-
vas, procurando simular las variantes más criticas
en el trabajo de los ciclos de memoria.
15.- Ejecución de lazos con las instrucciones de salto.
16.- Realización y ejecución de programas cortos como:
- Escritura de todas las localidades de memoria con un
número igual a su dirección o un número cualquiera.
- Extracción del mayor cuadrado contenido en un número,
- Multiplicación de dos números.
- División. ¡i f

- Cálculo de N factorial. ¡i '
- Cálculo de los números primes.il
Lap -pruebas finales de cada una a.e las instrucciones así
i
como de las funciones operacionaLes fueron satisfactorias
Las instrucciones que utilizan eli ciclo de lectura, modi-
\n y escritura, ejecutadas repet

número de iteraciones bastante grande, presentaron proble_


mas de operación sin que hasta la entrega del presente
trabajo se haya podido precisar con exactitud su causa.
- 285 -

Cabe mencionar en este punto la imposibilidad de garanti^


zar el correcto y total funcionamiento del sistema, pues
la falta de aparatos adecuados de prueba y medición, así
como la carencia de la interfase de entrada y salida, im
pidieron ejecutar pruebas de suficiencia más completas.
Como ejemplo demostrativo del trabajo desarrollado por -
las diferentes instrucciones así. como de varias secuen -
cias de operación, se presenta el listado del programa -
para calcular el factorial de un número.

Convensiones de Programación
Eormato para el listado de un programa:

Operandos
Código de Instruc
ción
Nivel
Código de Operación
Dirección de Instrucción
1.- Para direccionamiento en página cero se utiliza un
solo número (que es la dirección) luego de la instruc_
ción correspondiente.
2.- Para direccionamiento relativo o con registro índice
¡i
se emplea dos números; el primero indica el conteni-
do de los últimos 8 bits de? la instrucción y el se -
gundo el código decimal de los bits 6 y 7.
En las instrucciones de movimientos de datos (LDA y
- 286

STA), la dirección del acumulador seleccionado prece_


de a la información de direccionamiento en la memo -
ria.
4.- El símbolo $ colocado antes del-direccionamiento in-
dica que éste es indirecto.
5.- Las instrucciones aritméticas normalmente se encuen-
tran seguidas de algún símbolo o letra que indica en
su orden: el valor base del link, rotación a la dere_
cha o izquierda y la carga o no carga del resultado
en el link y ACD:
C Tomar como valor base del link su com-
-! '
plemento. '
Z Tomar O como valor base.
O Tomar 1 como valor base.

L Rotar el resultado un lugar a la izquier_


da.
R Rotar el resultado un lugar a la derecha

# No cargar el resultado.
6.- Los operandos de una instrucción aritmética se desig-
nan con la numeración decimal del acumulador que los
contiene. El número colocado en primer lugar indica
ACS y el segundo ACD.
7.- Las instrucciones aritméticas pueden incluir al final
de su campo de operandos la; designación mnemotécnica
para el salto de la siguiente instrucción en secuen-
cia .
PROGRAMA PARA CALCULAR EL FACTORIAL DE UN NUMERO:
Se inicializa el programa con ' las siguientes acciones:
1.- Poner en las direcciones 20tí
0 y 210 de memoria el ñu-
o
mero a calcularse.
2.- Poner en la dirección 100tí0 . de memoria el número
177760 (-20-), es decir el número de pasos requeri-
do por la subrutina de multiplicación.
3.- Cargar el programa:

00001 014020 DSZ 20


00002 000005 JMP 5
00003 063077 HALT r

00004 063077 HALT •

00005 004030 JSR ¡ 30


00006 000001 JMP 1
00030 054050 STA 3,50
,1
00031 024020 LDA ; 1/20
00032 030021 LDA 2,21
00033 034100 LDA 3,100
-•i
00034 125203 A MOVR it 1,1, SNC

00035 101201 MOVR >j : 0,0, SKP


¡3 •

00036 143220 ADDZR j' 2,0


00037 175404 INC j 3,3,SZR
00040 000034 JMP A
00041 125260 MOVCR 1,1
00042 044021 STA 1,21
00043 002050 JMP
f 5°
La extensión del presente trabajo no permitió hacer un a_
nálisis más detenido de otras áreas en la búsqueda de u-
na aplicación especifica al Procesador desarrollado. En
todo caso, todo el diseño se lo realizó con miras a aco-
plarlo a las unidades de memoria y entrada y salida pro-
puestas para otros trabajos de tesis.
A pesar de que el sistema es casi totalmente secuencial,
las técnicas tradicionales de diseño pierden en este ca-
so utilidad por el elevado número de estados. Además,
la disponibilidad de las entradas CLEAR y PRESET en los
biestables crea posibilidades aún no desarrolladas con
métodos convencionales.
Cabe anotar, una vez más, las ^mormes limitaciones técni_
cas que rodearon al desarrollo|e implementación de esta
tesis.
- 289 -

Foto fl: Vista del ¡conjunto


Se incluye!í',1a
;
unidad de memoria

Foto #2: Vista del conjunto


Se incluye la unidad de memoria

Foto #4: Plaqueta de Aritmética y Lógica


Vista Posterior
Foto #3: Plaqueta de Aritmética y Lógica
Vista Frontal

Foto #4: Plaqueta de Aritmética y Lógica


Vista Posterior
Foto #5: Plaqueta de Control
Vista Frontal

Foto # 6: Plaqueta de Control


Vista Posterior
- 292 -

Foto #7: Plaqueta de Conmutadores


Vista Frontal

Foto #8: Plaqueta de Conmutadores


SK.
Vista Posterior
- 293 -

Foto #9: Plaqueta de Decodificación


Vista Frontal

Foto flO: Plaqueta de Decodificación


Vista Posterior
- 294 -

Foto #11: Reloj Maestro (50ns/d)


Canal 1: RMO (2v/d)
Canal 2: RM2 (2v/d)

Foto #12: Reloj Maestro y ciclos T (lOOns/d)


Canal 1: RMO (2v/d)
Canal 2: TO (2v/d)
- 295 -

Foto #13: Ciclos de Lectura y señales


de aceptación (200ns/d)
Canal 1: Ciclos de lectura (5v/d)
Canal 2: Señal de aceptación (2v/d)

Foto #14: Ciclo de Lectura en un módulo y


señales de aceptación para 2 módu-
los entrelazados (lOOns/d)
Canal 1: Ciclo de lectura (5v/d)
Canal 2: Aceptación (2v/d)
- 296

Foto |15: Ciclos de Memoria y Aceptaciones


( 400ns/d).
Canal 1: Ciclos de memoria (5v/d)
Canal 2: Aceptación (2v/d)

nr
.y y. i
L n. n
" " '
nr.

Foto #16: Ciclos de Memoria entrelazados


Operación en Poliducto (l/¿s/d)
Canal 1: Módulo par (5v/d)
Canal 2: Módulo impar (5v/d)
- 297

H
i : i nr ini
4 U Ü.."

M,:M

Foto #17: Ciclos de Memoria con Refresco


intercalado (400ns/d)
Canal 1: Ciclos de memoria (5v/d)
Canal 2: Aceptación inhibida en el
refresco (2v/d)

Foto §18: Ciclo de LME y dato en la barra (200ns/d)


Canal 1: Ciclo de LME (5v/d)
Canal 2; Dato en la barra (2v/d)
Foto #19: Aceptación inmediata y demorada
(400ns/d)
Canal 1: Aceptación (2v/d)
Canal 2: Señal Q2T (2v/d)

Foto #20: Ciclo de Lectura y Señal Q4T


(lOOns/d)
Canal 1: Ciclo de Lectura (5v/d)
Canal 2: Señal Q4T (2v/d)
r
k

A N E X O 1

PLAQUETA DE ARITMÉTICA Y LÓGICA

Você também pode gostar