UNIDAD DE CONTROLDe manera particular quiero dejar mi expreso reconoci-miento al Ing. H. Jacobson,...
Transcript of UNIDAD DE CONTROLDe manera particular quiero dejar mi expreso reconoci-miento al Ing. H. Jacobson,...
N'-
UNIDAD DE CONTROL
: ' Y
UNIDAD ARITMÉTICA Y LÓGICA
MINICOMPÚTADORA
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
Agradezco además al
la tesis "Unidad de
compartió con
junto en la fase experimental
asesorar estle trabajo.i
3r.: Alfredo IJinz B., quien realizó
Memoria para juna Minicomputadora" y
1 1'extremada responzablilidad .el trabajo con-. t
Dejo constancia de mi agradecimiento al Sr. Fabián Svieri ' • 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. ! ji
El capítulo VI trata sobre el panel de control. Describe
la función de los diversos interruptores operacionales yi
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ÍMBOLOSi:
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 es cero• i
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
V
V
V
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 TA1. ¡i
UAL Unidad Aritmética y Lógica
IH Voltaje de entrada en nivel alto
IL Voltaje de entrada en niveil bajo
OH Voltaje de salida en nivel alto
OL Voltaje de salida en nivel bajo
XR Registro índice !
Í 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 • 182
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 cicloi-
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 ' 255I
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
¡ P R O L O G O :
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 Unidades de Entrada y Salida,. j. y j. 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
i íen el diseno. 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étodosi:
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 dei
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, durante la realizacióni 1 '
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 . . t i 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
sido
dad
Sapa
Certiftico que este trabajo ha
realizado en su totali -
ur el Señor Byron Fabián
g. Alfonso Espinosa
¡ DIRECTOR DE TESIS
Quito, Julio de 1977
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ó
lü
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
AC
ACÓ
AGÍ
AC2
AC3
ACI
A0I
ACS
ACD
ADC
ADD
AND
B
CL
COM
Cuando sigue a una instrucción de entrada y salida
se refiere al buffer del dispositivo.
Acumulador ;i
Acumulador O
Acumulador 1
Acumulador 2,
Acumulador 3
Acumulador dé Instrucciones
Instrucción que llega al control y debe anularse
Acumulador Fuente
Acumulador Destino
Sumar Complemento
Sumar i
Producto Lógico
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
Entrada CLEAR de los biestables
Complemente
I
CP
CPU
D
DI
DO
DSZ
E
E/S
FF (ff
INC
IC
IR
IR1
IR2
ISZ
JMP
JSR
L
LDA
LME
MDA
Contador de Programa
Cuando se encuentra asociado a un biestable sei
interpreta como CLOCK-PULSÉ
Cuando sigue a una instrucción de entrada y salida;
tal instrucción es de código especial (770)' o
Flip-flop Terminado!
Datos Adentro ' ;
Datos Fuera
Decremente y salte si el resultado es ceroi
Ciclo de Escritura , '; Í
Entrada y Salida
Flip-flop ;
Incrementar >
¡'Circuito Integrado ,'
Registro de Instrucciones!
Registro de Instruccionesj 1i
Registro de Instrucciones'1 2í
Incremente y salte si el Resultado es cero
Salto
Salto a Subrutina
Ciclo de Lectura
Si se encuentra asociada a una instrucción aritmé-
tica y lógica, indica rotación a la izquierda
Cargar Acumulador
Ciclo de Lectura Modificación y Escritura
Registro de datos de memoria
MDR
MOV
MR
N
NEG
NIO
O
PR
R
RM
SKP
STA
SUB
TTL
T
TA
TA1
UAL
V.IH
VIL
VOH
VOL
XR
Registro de direcciones de.memoria
Mueva
Borrado Maestro
No *
Sacar el complemento de dos
Ninguna transferencia
Uno
Entrada PRESET de los biestables
Si se encuentra asociada ^ una instrucción aritmé-
tica, indica rotación a la derecha
Reloj Maestro
Salto condicional
Almacenar Acumulador
Restar
Transistor Transistor Logjic
Reloj T
Reloj TA
Reloj TA'.
Unidad Aritmética y Lógicai
Voltaje de entrada en nivel alto
Voltaje de entrada en nivel bajo
Voltaje de salida en nivel alto
iVoltaje de salida en niv(el bajo
Registro índice ,
Í 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
CAPITULÓ VII: DECODIFICACION
1.- Reg:.stro de Instrucciones 212
198
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
Con1
dificaciones Adicionales 254
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
ANEXOS
'IAS
' BIBLIOGRAFÍA
289
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
en el
la me-
y circ
El a ve
ónica, permitirá plantearse, sin lugar a dudas, so-
lucioies diferentes a los diversos problemas encontrados
diseño. Empero, este trabajo trata de desarrollar
or alternativa, habida cuenta de las restricciones
unstancias que lo rodean,
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: Iza en consideraciones de softwa^ propias a todo siste -¡ ,•
m a de computación. ¡ :
1.- FtNCION
La Una
vos pe
ja las
progr;
El prc
a 15
en los
Estas
nes de
- 1 -
CAPITULO
INTRODUCCIÓN
dad Central de Proceso (UCP) constituye la unidad
que gcbierna a todo el sistema. Controla los dispositi-
riféricos, desarrolla la aritmética y lógica, mane
diversas operaciones y regula la secuencia de un
ma.
cesador maneja palabras de 16 bits numerados de O
de izquierda.a derecha de acuerdo a su posición -
registros.
palabras pueden ser interpretadas como instruccio-
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
ros
notaci
La Una
cíones
strucciones aritméticas operan sobre números ente-
n signo o su equivalente con signo -utilizando la -
ón en complemento de dos.
dad Central de Proceso tiene básicamente dos sec -
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
tivos
- Detezminar la siguiente instrucción a ser'ejecutada y -
reala
ficac
Las fur
- Reala
pecii
- Esta!
iones como para datos y aquellas para los disposi-
periféricos.
zar un ciclo de traída para posibilitar su decodi-
ión y ejecución.
cienes de la Unidad Aritmética y Lógica (UAL) son:
zar la aritmética y lógica sobre los operandos es-
icados en una instrucción.
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
un diseño modular y por lo mismo reviste cierta compleji-
tarse.
las diferentes acciones. !No puede enfocarse como
dad dependiendo del conjunto de instrucciones a implemen-
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úni
las necesidades. Estos microprogjramas contienen la sel
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,
detalle en el capítulo IV.
se presentan con mayor -
2.- ORGANIZACIÓN DEL SISTEMA
El procesador desarrolla un programa ejecutando las instru£
cíones
pecificadas por un registro denominado Contador de Programa
(CP) que se incrementa en uno de acuerdo al grado de ejecu-
ción en
ta forir
la inme
jo seci
Contadc
de salt
Se dis£
que peí
traídas desde la memoria. Sus localizaciones son es
que se halla la instrucción en realización. De es-
a, la próxima instrucción es normalmente obtenida de
diata localización de memoria consecutiva. Este flu_
encial puede ser alterado cambiando el contenido del
r de Programa con el especificado por una instrucción
o.
one de cuatro Acumuladores de 16 bits (ACÓ a AC3), -
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
un bit
la posibilidad de desplazar (rotar) el resultado en-
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
mite al
:ciones que se explicarán posteriormente.
Se dispone además de un sistema de interrupciones que per-
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
Para nuestro i/estudio, como Unidad de Control entenderemos
solo bit o señal.
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
tituyen
través de los Registros de Instrucciones, que cons_
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
TRANSCEPTORINSTRUCCIONES
REGISTRO DE
INSTRUCCIONES
ACpMU 1TAOOR-INSTRUCCIONES
CONTADOR DE PROGRAMA
ACUMULADOR O
ACUMULADOR 1
ACUMULADOR 2
ACUMULADOR 3
SE CION DE
DECODIFICACION
GENERADOR DE
FUNCIONESCONTROL
SECUENCIAL
D E S P L A Z A D O R
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 000308 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
0 FUNCIÓN DIRECCIÓNAC I
ÍNDICEXR
DESPLAZAMIENTO D
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
0 0 0 FUNCIÓN IÍNDICE
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ÓNACS
DIRECCIÓNACÓ 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
O 1 1DIRECCIÓN
AC CÓDIGO DEL DISPOSITIVO
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 . Este8 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 lugar8 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 y8 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:rCARGA
1 DIRECCIÓNACS
DIRECCIÓNACD
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
- 0 0 Estado actual del link
Z 0 1 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 1 0 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 de la posición de
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 0 0 1 ( 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 1 0 1 ( 5 ) Saltar si el resultado no es
cero.
SEZ 1 1 0 ( 6 ) Saltar si el resultado p- el ca_
rry son cero.
SBN 1 1 1 ( 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
0 0 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^. \RTERMINADA \ 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 10 ^
D
O 1 2 3 4 5 6 7 8 $ 10 11 12 13 14 15
jiiSaltar la siguiente instrucción án secuencia si el f.f.
t"Ocupado" del dispositivo D es l.<
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£fifc-
*
*
-^
39
5.- UNIDADES DE MEMORIA Y ENTRADA Y SALIDA VISTAS DESDE
EL CONTROL
Unidad de Memoria:
Barra de AI-AISDirecciones
Señales detipo deCiclo
AceptaciónReloj de MDR
Control deTransceptor
C I C L O
RW
ACT
C K M D R
EÍ26S12)M
BO-B15
Barra de Datos
MEMORIA
M D R
TRANSCEPTOR
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 Fallade Fuente ——
Barra deDirecciones"
F.F.Ocupado
F.F.Terminado
Señales deDecodif.
Pedido de •Interrupciórr
Aviso deDI —
Reloj deBuffers
Barra deDatos
FP
A10-A15
INTR
QT
C K E / S
BO-B15
'FUENTE
SELECTOR DE
D I S P O S I T I V O
CONTROL
F.F's BUFFERS
OCUPADO
TERMINADO
HABILITACIÓN
DE INT.
D ISPOSIT IVO
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.
- 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 memoriaL
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 0N= a 2 + a 2 + + a 2 - f a 2 + 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 + a2 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 -nF= a 2 + a 2 + ... + a 2 , o también:
-1 -2 -n
-1 -1 -1 -1F~ 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 — N10 2
Cocientes Residuos
26
13 O LSD
6 1
3 O
1 1
O 1 MSD
N = 110102
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 — N2 10
Dígitos Binarios Resultado
MSD 1
1 — ( 1x2) + 1 = 3
0 — ( 3x2) + 0 = 6
1 —. ( 6x2) + 1 = 1 3
LSD O — (13x2) + 0 = 2 6
N = 2 610
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.812510
Producto Parte Entera
0.8125
1.6250 1 MSD
pasa...
- 48
viene...1.2500' 1
0.5000 - O
1.0000 1 LSD
F = 0.11012
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 — 7T2 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 - 1viene . . .
F = 0.812510
O — (1:625 2} = 0.8125
Conversión entre Números Mixtos. Euando se trabaja con nú|; "íberos que tienen una par_i£
te entera y otra fraccionaria (mJSJgjijbs) , pueden utilizarse
los métodos anteriores considera^^ separadamente cada par_
te y combinando sus resultados; |ij^Jnplo:
5 2 8 . 2 710
528
264
132
66
33
16
8
4
2
1
'0
N =
•jB-0-27
0 'Hlo.54 0
^ml0 •11. 08 1
H0 «0.16 0
:4fro B'o .32 o1 ^ fco.64 0
• ^ K?-< K -0 Mil. 28 1-• M
0 r«0.56 0:^m 'II
1 I1000010000 :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 + 1 3
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*
.X*
X*- 1
donde X* es el COMPLEMENTO DE RAÍZ de X yn
= 2 - X
= 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
mero - X estará dado por:
n -2 - X - 1 = 11111 - X = X
n l's
En esta notación, el cero tiene
ceros o todo unos.
Para desarrollar una resta, el
de 1, por lo que, el nú
los representaciones, todo
>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:
r+ 14
+ 13
+ 27
•bit del signo
+ 14 001110
+ 29 011101
011011 43 101011
sobreflujo -*
+ 14 001110
- 13 110010
000000
- 14
+ 13
- 1
110001
001101
111110
000001
14
13
110001
110010
100011
- 27 100100
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:
16O 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 esf
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
- -13 110011 •
27 100101
+ 14 001110
- 13 110011
+ 1
+ 13
(+ 14)
i
000001
001101
110001
1
lililí
- 14
+ 13'
— 1
110010
001101
lililí'
- 14? 110010
-(- 13| 001100
1/
- 1! 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
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
A~B A-B
0 í 1 : 0 1 1^ X
0 0 \ 1•- X
0
S = AB + AB
S = A © B
C = AB
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 Cn+1 Sn Cn
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
O l í 0 1
0 (' \
/
1/
0 í
t 0 (
" \
" N1
, i
0
An-BnCn+1
Sn = AnBnCn+1 + AnBnCn+1 +
AnBnCn+1 + AnBnCn+1
il
- 58 -
viene. . .
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
Sn = An 0 Bn © Cn+1
0
0 í
0
"lIMN
0
r
An-BnCn+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
- 59 -
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:
Cn
O
Cn+1 Carry Propagado (Pn)
Cn+1 Carry Propagado (Pn)
1 Carry Generado (Gn)
Los mapas de Karnaugh que siguen establecen otras relacip_
nes para Gn, Pn, y Cn:
Gn = AnBn
Pn = Añ~Bn + AnBn
Pn = An © Bn
An
0
0
1
1
Bn
0
1
0
1
AnBn
AnBn
AnBnCn+1
0 0 © 0
0 ( 1]X ^
0 (T)
- — -0
0
0
(i;1
! i
0
(T)Cn = AnBn + AnBnCn+1 + AnBnCn+1
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:
- 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).
25
06
i
L.
S i S
J I c
A
E
1
i
PG
i i
iP 1
11 | | G '0
-3
CL
AO
__
_.
I 1 _
GP
O
• • P3
. __,
GG
O
G3
s S c
A
B
1•
PG
i .
1P •
iG
/ T
M
/
CL
A1
GC
1
Cn
*z
GP
1
• • P2
GG
1
1
G2
G P
s sí
]C
L
A
B
|| Jl
1
PG
<P t i
G
8 -1
1
ri A
9
GC
2
,
Cn+
y
GP
2
P1
GG
2
^
G1
s S i ' c
1
A 1 J(
B i
PG
'
P ,
12
-15
J
G ,
n A
GC
3
Cn
+x
1
GP
3
PO
1
GG
3
GO
bC
LA
74
16
2
i GC
4
CO
NT
RO
Len
Fig
ura
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
A LOSREGISTROS
_Q _Q Q_ O80 B1
20
21
22
23-10 II 12 13
B2 83
Am 26S12
DESDE LABARRA DEDIRECCIONES
ENTRADADECONTROL
E
L
L
H
I
L'
H
X
B
H
L
Y
Z
L
H
y
Figura 2.4-2
H = nivel alto
L ~ nivel bajo
X = condición "no importa"
Y = voltaje de barra
- 67 -
BARRA DE DATOS
T R A N S C E P T O R26S12 -4
R E G I S T R O S
74172-8
1.1
GENERADOR DE FUNCIONES
2506-4
D E S P L A Z A D O R
9309-8
SENSOR DERESULTADOS
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
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 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 deRegistro 1WQ
para escritura ^~
Reloj
1W2
Habilitación WE1
de escritura
Desplazador
ENTRADADEDATOS
Habilitaciónde escritura
IDA
1DB
2DA
2DB
SECCIÓN 1
SECCIÓN 2
WE2-
Figura 2 . 4 - 3
1RO
Selección deRegistro
IR] para lectura
RE1 Habilitaciónde lectura
1R2
1QA
Entradas "A"IQB G. Funciones—»
SALIDADEDATOS
20A Entradas "B"- G. Funciones
20B
RE2
[ 2W/RO.2W/R1
2W/R2
Habilitaciónde lectura
Selección deRegistro paralectura 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 CEROSDE BARRA SIGNO
CONTROL
SELECTOR
1B 20 3B
74S257
1A 2A 3A ¿A
OE:s
1Y 2Y 3Y 4Y
¿ontrol
, , HL
i ' LL
: L
EntradasSelector
XLLHH
A B
X XL XH XX LX H
SalidaY
ZLHLH
A LAS ENTRADAS"A" G. FUNCIONES
Figura 2.4-4
L = nivel bajo
H = nivel alto
X = condición "no importa"
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
S3 S2 SI
LLLLLLLLHHHHHHHH
LLLLHHHHLLLLHHHH
LLHHLLHHLLHHLLHH
SO
LHLHLHLHLHLHLHLH
M=HFuncionesLógicas.
F-AF=A+BF-ABF=0F=ABF=BF=A©BF=ABF=A+BF=A©BF=BF=ABF=lF=A+BF=A+BF=A
M=L Operaciones Aritméticas
Cn^H Cn=L
F=AF=A+B_F=A+BF=-l (com£. 2)F-A masF=(A+B)F=A-B-1F=AB-1F=A masF=A masF=(A+B)F=AB-1F=A masF=(A+B)F=(A+B)F=A-1
AB _mas AB
ABBmas AB
Amas Ar(ias A
F=A masF=(A+B)F=(A+B)F=0F=A masF= (A+B)F=A-BF=ABF=A masF=A masF=(A+B)F=ABF=A masF=(A+B)F=(A+B)F=A
1mas 1mas 1
Ti "D rn -i f- 1íití ma s xmas AB mas 1
AB mas 1B mas 1mas AB mas 1
A mas 1mas A mas 1mas A mas 1
+ = 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.
SI
Seleccicso; si£ LU LH LH LL HÜ HH HH H
5n Entradas S10 11 12 13
L X X XH X X XX L X XX H X XX X L XX X H XX X X LX X X H
alidasz z
L HH LL HH LL HH LL HH L
Figura 2.4-6
.
75 -
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.
. - 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 -
b8
b9
\-ic;j- O_LJ_ «_- LIJL L-^-
Fn+8
Pn 1
Fn Fn
Fn+1+8 :
I3a 1 1a I0a I2a I3b Ilb
SO
930951
2a Z* Zb
c) 1
4-1
I0b I2b
Ib
Fn+2
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 -
¿ttk0
0
1
1
0
1
0
1
10
12
11
13
conforme a la tabla de vardad dejMinultiplexer 9 3 0 9 :
SO £1
Ninguna acció^) (pasa Fn )
Rotación a larafeguierda (pasa Fn+1)
KRotación a laiBüErecha (pasa Fn-1)
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
b8 „b9 . — .blO „bll ,
CONTROLY
OECODIFICA-CION
1 i 1
i .
• i
LINK
FO (DESPLAZADOR)F15G (74182)
Carry(DESPLAZADOR)
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
O
1
1
1
O
1
1
1
O
íl X~N
' 1 1^ -1- / 0^~~\;
VB = VBG + VBGT i
VB = YB © GI,
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
y el carry en FO
1. 1 Ninguna acción 1 1
II
13
Para posibilitar estas acciones sel empleó un circuito muí-! ij, ¡
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
bll
Carry
FOF15
b8
b9
usoS I
12 10 13
9309
VB
50S1
12 109309
CK1
Carryretenido
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).
- 89
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.
m- 91 -
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 mei j ~~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-
11 simular" un computador en otro, abriéndose posibilidades-I
enormes en el campo investigativolii
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 ai
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 versus la complejidad -
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,-
n- 95 -
Figura 4.
entonces el costo por un ciclo de
de 8¿.
El costo del control convencional
damente. Si un ciclo de control
una compuerta o algún tipo de
estado adicional de control, ento
ser añadido al costo del sistema.
Si R bits de la memoria de contrc1
compuerta, entonces, el ahorro in
zación del control microprogramadjo
NAhorro = G R ~
se '.incrementa más rap^L
adicional requiere solo
elegnento que distinga este
rices al menos 35j¿ debe-
C = Costo por compuerta instalado
N = Numero de bits de la memoria
R = Bits por compuerta.
P = Costo de la memoria de contrc1
ma.
control adicional será
pueden reemplazar una
.reducido por la utili-
estará dado por:
; donde:
en el sistema.
de control.
instalada en el siste
En el caso de esta tesis, si bier el factor económico es
m96 -
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.
II- 97 -
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. .
- 99 -
TO
CICI
ÍÉMITM
•••VHBMI •
CICI
TM-^f
CICI
~tá/&TM^T
••••H^ H
TI
,0 D.
¡v
/
1
,0 D
i
11
/^
,0 D]
<;
/'
T2
E L
OÍR
T?-Ci
E
Tm
E ES
DIRÉ
Tm
— TD
)
E Lt?/HA
O I R É
Tm
TR =
TW -
TRW= 1
TO
:TUR
:CION
TR
TA
3RIT
:CION
¡' DA
^TUR
:CION
• Ta •
TC. Tn
- TA -
460
850
?50
TI
A
i
*-
K
ÜRA
ro A
A MO
— te-
\
T2
\"
ESCRI t
DIFI
Lkdi
TM =
Tm =
Ta =
TO
^5/R
0 LE
IRSE
^ACI
- TRW -
V
í, r°A
85
22
400
TI
fflfVA
/DO
DN Y
ro A
TP
1
f
\bnii i
\
pC
1
MOJpl f
TD
Td
TA
TO
UA^
RITU
1 C A R S
= 190
= 150
TI
)$(
lüüi*A
/
RA
E
T2
\s
\O
JK
i(
»
TI
|x
/
!í(
/
T2
TG = 590
Tg = 550
Tiempos de diseño en nanosegundos
Figura 4\1
•- 100 -
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 -
- 101
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. ii
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.
102 -
MODULO
N
MODULO
M
T2
\O
TI
/I ,!
T2
\O* T 1
TI
/II1
a
N
1j
2
i
í
i
TO TI
/
T2
\t
TO
TI = Tiempo disponible parjk el cálculo de una
dirección.
T2 = Tiempo requerido por
memoria
Figura 4
Durante el refresco, la memoria
ningún otro pedido.
Cuando coincide el inicio de un Refresco con un pedido del
Los circuitos de
,3-2
e ocupará de no aceptar -
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 (RM) fijará las diferentes -
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 yi
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 cuali. 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.
:•- 105 - !
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. ii
También se presenta la salida de un dato o instrucción des_
de la memoria hasta su depósito ettí un registro del controli
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 : TOA1, TÍA1, T2A1 Ii
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. :
jLa operación en "poliducto" permite un alto grado de accio_
i
nes paralelas. Este sistema disminuye la duración efectivai
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 -
- 107
últimos 8 bits para el cálculo de
Esto implica la necesidad de rete
lo menos sus últimos 8 bits), en
la dirección efectiva. -
,'er la instrucción (o porino 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.
cío en el cual debe realizarse e
reccion.
Instrucciones Aritméticas.- Toda
lógi
liada en los pasos que se descri
memoria al AGÍ, y TO el ci
cálculo de una nueva di -
instrucción aritmética y -
a (AL) puede ser desarro -
en a continuación:
A-RS1B-RWS2WS1OP
T2
ACI
1
i TO TI
ACDACS
AéB
T2
ACD
- 108 -
iRS1 y WS1 se refieren a la secciónj1 de los registros 74172
¡por donde se deberá seleccionar la|lectura o escritura res-
ipectivamente, de los registros indicados. RWS2, indica la-
, i .. iisección 2 que tiene entradas de selección común tanto para-
• ilectura 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, ii
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. it
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.
- 109
LDA con direccionamiento directo:
_._ ..
A-RS1B-RWS2WS1OP
T2
AGÍ
TO
AGÍXR
A+B
TI T2 TI T2
.AC
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 -
:lo de lectura (L) en la-
en uno de los acumulado-
corresponde sólo a los últimos 8 i bits.•
De acuerdo a la duración de un cí
memoria, el dato leído se cargará
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:!
Ciclode M
A-RS1-B-RWS2WS1OP
T2
ACI
TO TI
ACIXR
A+B
T2 TO
AC
A
T2 TO TI T2
Las observaciones hechas con LDA
ción efectiva se ¡mantienen tambilh en este caso, al igual -
que en todas las demás instruccic
para el cálculo de direc -
ría,
Los ciclos dibujados indican la
tura (E) en la memoria.
La selección del acumulador (AC)
íes con referencia a memo-
uración del ciclo de escri
a guardarse en memoria, se
la realiza durante el ciclo T2 qite sigue al cálculo de di -
Ireccion efectiva por consideraciones de tiempo en la memoré
Iría, respecto a qué instante debe llegar el dato a escribir
se.
ISZ DSZ con direccionamiento d .recto:
Ciclode M
A-RS1B-RWS2
WS1OP
T2
\iACI
TO
ACIXR
A+B
TI
JT2 TO TI T
i
Aí|
H
'i
:i
i
L
TO TI T2 TO TI T2
V
- 111 -
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 la1
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
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'
incrementa o decrementa durante e;l ciclo T2 indicado.
JMP con direccionamiento directo:
lo supera pasando el dato
esta manera, el dato se -
Ciclode M
A-RS1B-RWS2WS1OP
T2
AGÍ
TO
ACIXR
A+B
TI
/CP
T2u
'1•1
i
i!li
TO TI T2
V_ACI
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.
- 112 -.
JSR con direccionamiento directo
Ciclode M~\1B-RWS2WS1OP
T2
CPACI
A
TO
ACIXR
AC3A+B
TI
yCP
T2 TO TI T2
ACI
Una instrucción de salto a subrutiina debe guardar el conte-
dirección de la instruc -nido del contador de programa (le
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
de retorno ocupe AC3, ya que tal
como registro índice,empleándose
•antes de que la dirección¡¡acumulador puede ser usado
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.
113 T
Al final del ciclo de lectura, la¡ instrucción a la que se
llega luego del salto se recibe e
Si se produce un direccionamiento
existen dos posibilidades:
La primera cuando se direcciona c
ACI durante T2.
indirecto, básicamente-
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
AACI
TO
ACIXR
A+B
TI
/T2 TO TI T2
A±l
TO TIriT2 1m
'
]
o1
TI T2
\CTO
)
TI
/T2 TO TI T2
VAC
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: i i
tiene la localidad direccionada fLnicialmente, el ciclo de
- 114 -
vez finalizado el ciclo de
en caso contrario, el ci-
q&nforme a la línea puntea-
lectura solicitado comenzará una,
lectura modificación y escritura,
cío correspondiente se generará
da.
STA con direccionamiento indirectip y proceso de índice au-' i ' i
temático:
~\2ACI
TO
ACIXR
TI
YT2 TO TI T2 TO TI T2
(AC)
TI T2
\OTI
7T2
\
AC
TO TI T2
A-fB A±l (A) A
Similarmente a lo anterior, el ci
con línea punteada corresponderá
blo de escritura dibujado¡ia un módulo "desocupado".
ISZ - DSZ con direccionamiento indirecto y proceso de
ce automático:
•\2ACI
TO
ACIXR
TI
iT2 TO TI T2 TO
.J
TI T2 Tf) TI T2
\OTI T2 TO TI T2
L_
A+3 A±l (A±l) A±l
JMP con direccionamiento indirectip y proceso de índice au-
tomático :
T2
AACI
TO
ACIXR
A+B
TI
/T2 TO TI T2
A±l
TO
CP
TIr/j
T2 T|pL — ¡
.1
;
i1
TI T2
k\:TO
:)
TI
/T2 TO TI T2
LACI
m115 - :
JSR con direccionamiento indirect
temático :
Bl
T2
ACP
AGÍ
A
TO
ACIXR
AC3A-IB
TI T2 TO TI T2 TO TI T2 1
/ t~.-J -_/
CP
i -i - ^ -y proceso de índice au
D TI T2 TO TI T2 TO TI T2
r~\ v•t *—.,—-• *—
(ACI) ACI
A+l f
La segunda posibilidad en caso de
to es aquella que no involucra un
tico. En este caso se genera un
mor i a para traer la dirección efe|
solicita el ciclo de memoria que
LDA
Cicde
A-R£
con direccionamiento indirect
.lo 'M
31B-RWS2WS1OP
T2 TO TI T2 TO TI T2 TC
V / \ACI
ACI XR ••!
A+B A ¡
'
direccionamiento indirec
proceso de índice automá
:iclo de lectura en la me
:tiva y sólo al final se-
:orresponda :
TI T2 TO TI T2
/ VAC
La dirección localizada indirect;
gún registro de la UAL (ya que no;
rectamente por el generador de funciones hasta depositarse-
en el registro de direcciones de
la realiza en el ciclo T2 correspondiente al tiempo en el -•" i -• I
cual culmina el ciclo de lectura jlsolicitado. La nueva direc
\ente no se retiene en nin
es necesario), pasando di
memoria. Esta acción se -
116
ción y el código LDA genera, una
namiento indirecto, otro ciclo dé
to leído al acumulador seleccionado
s/ez terminado el direccio-
lectura para traer el da-
en la instrucción.
STA con direccionamiento indirecto:
T2
\ITO
ACIXR
A+B
TI
/T2 TO TI T2
\TO TI
/T2
AC
T!ji1!
:¡
5ii
!
r
TI T2 TO TI T2
\OTI T2
El procesamiento indirecto es idéntico al caso anterior,lof:
mismo que para todas las demás instrucciones.
ISZ - DSZ con direccionamiento infiirecto:
T2
\ITO
ACIXR
A+B
TI
/T2 TO TI T2
\TO TI
/T2
Tl
íi
:
1
TI T2
A±l
TO TI T2 TO TI T2
\
JMP con direccionamiento indirecto:
Ciclode M
A-RS1B-RWS2WS1OP
T2
\ITO
ACIXR
A+B
TI
/T2 TO TI T2
\TO
¡
CP
¡
TI
/t
;
T2 TO TI T2
\I
- 117 -•
JSR con direccionamiento indirecto:
•
Ciclorl o MUS fl
A-RS1B-RWS2WS1OP
, T2
ACP
AGÍ
TO
AGÍXR
AC3A+B
TI
/T2 TO TI
*
T2
\TC
.
CE
¡I
TI
/T2 TO TI T2
VCI
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]
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
dirección indirecta este
vez culminado el procesa -
va" en CP, por lo que, en caso de.
depósito se lo realiza en TO unaj
miento indirecto.
Instrucciones de -Entrada y Salida
o de L (en direccionamien
- No implican ciclos en
la memoria. Para descri^
bir su comportamiento en el manefo de los registros de la -
1UAL 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 yS i -
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-
- 118
dificación de los bits mencionadas desde las unidades de E/S
toda instrucción de este tipo se;
cienes. Las instrucciones que det
datos son las únicas que trabajar
UAL y pueden ser visualizadas en
Instrucciones que mandan datos ha¡
pone en la barra de direc -
srminan transferencia de
con los registros de la
dos grupos.
bia un acumulador (DI) :
A-RS1B-RWS2WS1OP
T2
AGÍ
TO
AGÍ
A
Tf
- ,
I
T2 TO
(AC)
La lectura de ACI posibilita el e'ELvIo de la instrucción ha-
cia las unidades de E/S a través
nes.
de la barra de direccio..-
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ía1
ridad, ya que la interfase necesitará por lo menos 1 micro-
segundo.
Instrucciones que mandan datos haqLa E/S DO
A-RS1B-RWS2WS1OP
T2
AGÍ
TO
ACI
A
Tl'f•
'!•
,1
T2
1 ACt
!A
TO
119
La transferencia de datos desde ijfn AC hacia un dispositivo
periférico se realiza durante T2
codificación que se explican posl
por consideraciones de de
eriormente.
Hasta aquí se ha realizado una descripción del proceso de-
Imanejo de los registros de la UA1L Tómese en cuenta que los
circuitos empleados como registrbs ofrecen 8 localidades -
•Ide las cuales se ocupan 6: CP, ACI, ACÓ, AGÍ, AC2, AC3.
El sistema en poliducto incremen
La figura 4.4-1 muestra el proce
:a y complica el hardware.!samiento paralelo (sóbrela
pado) de varias instrucciones aritméticas seguidas:
TO TI T2 TO TI T2
PEDIDO DEINSTRUCCIÓN
LLEGADA ALIR
DECODIFICA-'CION
CÁLCULOS ENLA UAL
RESULTADOEN UN AC
,1, 2
1 :
¡
1
Figura 4
1»¡i
¡11
2
1
4
2
-
2
3
2
5
3
3
4
3
R
4
i
4-1
El diseno de un sistema como el :propuesto requiere especial
• licuidado con el tiempo empleado en cada acción. El tiempo -
:ljde 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 (durante TO).i
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 quei
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 unai
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.
122 Jl
3.- Mientras se realiza el cálculo de dirección efectiva enj
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: - ji 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
- 123 -
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.-
4.-
5.-
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 iLas 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.
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
6.-
ficado.
Las instrucciones que transfieren un dato desde un dispcDi
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 Acumui ~~
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 dirección indirecta, impide
!la ejecución de cualquier otra jmientras no culmine este-
proceso.
- 124 -"
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 eni
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 hai
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 increi
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 AC3i
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 -
125
ción resulta demasiado compleja.
Las instrucciones con referencia
reccionamiento relativo (CP+ACI)
misma forma que una JSR. Es por
a memoria que utilizan di-
ííeben ser tratadas en la -
.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
ción de la instrucción que sigue
la pérdida de la instrucción que
namiento relativo si no es de sal
Recuérdese que para la traída de
secuencial planteado establece e;
crea problemas en la ejecu'
a una JSR,podría provocar-
sigue a una con direccio -
to.
una instrucción,el flujo -
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 -
Ipidiendo 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, dei
lizado un pedido de instrucción;
sin solicitud de una nueva instrucción (de acuerdo al pre
senté caso) se muestra escrito
¡que antes no se haya rea_
;todo incremento de CP -
;ntre paréntesis.
- 126 -
En los ejemplos presentados no se
de direccionamiénto relativo, per(
con demorar la ejecución un ciclo
incluye la posibilidad
, para este caso, basta
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. 'jií
La llegada al control de dos instrucciones consecutivas -
con un intervalo de 400 nanosegun^os, podría provocar la-tí
pérdida de la primera instrucción}, antes de que su acción-
•
- 126 - T
En los ejemplos presentados no se
de díreccionamiento relativo, perc
con demorar la ejecución un ciclo
larmente a lo hecho con una instrt
incluye la posibilidad
, para este caso/ basta
de reloj adicional siini
::ción JSR. Tampoco se-
incluyen ejemplos' de direccionamiento indirecto porque en
cualquier caso, una vez ejecutado
las secuencias no varían.
La llegada al control de dos instrucciones consecutivas -
el proceso indirecto
con un intervalo de 400 nanosegun
pérdida de la primera instrucción
haya culminado.
Para evitar que lo anterior ocurrjk, se dispone de dos ni-
veles en el Registro de Instruccai
manera que cuando la segunda ins:
primera pasa al IR2 .
Las transferencias de IR1 a 1R2 bstan sujetas a la decodi
los, podría provocar la-
antes de que su acción-
ones: IR1 e IR2; de tal
rucción llega al IR1, la
ficación y duración de cada inst'j ucción.
- 128 -
T2
LDA
AGÍ
LDA
ACI
LDA
ACI
LDA
ACI
LDA
ACI
LDA
ACI
LDA
ACI
LDA
ACI
TO
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
TI T2
¿\Li
ACI
LDA
ACI
STA
ACI
oí A
ACI
JMP
ACI
U bK
ACI
IDS:
ACI
DI
ACI
TO
CP
A+l
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
(CP)
A+l
5ACIXR
A+B
ACI
A
TI
CP
CP
(CP)
T2
AC
AC
ACAC
A
AC
AC
CPAC
A
AC
AC
TO
CP ,
A+l
CP
A+l
CP
A+l
ACIXR
A+B
CP
A+l
ACIXR
AC3A+B;
CP(ACI
iA+l
TI
• iikCDkCISqpa B
®pi
CPI
11
!CP
Ii
¡CP
f
CP
T2
ACD
AC
AC
A
ACI
A±l
TO
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
TI
CP
CP
CP
CP
- CP
CP
T2
ACI
TO
CP
A+l
CP
A+l
TI
CP
CP
- 129 -
T2
LDA
ACI
LDA
ACI
STA
ACI
STA
ACI
STA
ACI
STA
ACI
bTA
ACI
STA
ACI
TO
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
TI T2
DO
ACI
DO
ACI
ALACACI
A
LDAACACI
A
STAACACI
A
JMPACACI
. A
JbRACACI
A
IDSSACACI
A
TO
ACI
A
CP
A+l
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
(CP
A+J
7
ACIXR
A+B
TI
ACDACSCP
A0B
CP
(CP)
T2
ACAC
A
AC
ACD
AC
A
CP
A
TO
CP
A+l
ACI
A
CP
A+l
CP
A+l
CP
A+l
CP
A+l
ACIXR
AC3A+B rf
!¡11-
^
QP1fl•
fií1"1
:Pi1
1fcpí
CP
f
CP
í
CP
T2
AC
A
AC
ACI
A±l
TO
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
TI
CP
CP
CP
CP
CP
CP
T2
ACI
TO
CP
A+l
CP
A+l
TI
CP
CP
- 130
T2
STA
ACI
STA
ACI
JMP
ACI
JSRCP
ACI
A
JLUb
ACI
-LUb
ACI
lub
ACI
¿Ubi
ACI
TO
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
ACIXR
AC3A+B
ACIXR
A+B
í>ACI
XR
A+B
ACIXR
A+B
dACI
XR
A+B
TI
CP
CP
r T2
DIAC
ACI
A
DOAC
ACI
A
A0I
AJZI
AJ_i
ACI
LÚA
ACI
STA
ACI
JMP
ACI
TO
ACI
A
ACI
A
CP
A+l
CP
A+l
TI
CP
CP
T2
AC
A
ACI
ACI
A±l
*~
A±l
*
A±l
A±l
TO
CP(AC)
A+l
CP
A+l
CP
A+l
ACIXR
A+B
ACIXR
A+B
ACI.XR
A+B
1
C
•<!!
1f
' I' it¥Tí•T
f1
1
i!
f
c
'i
|¡ii
P
i
:s
)B
:P
T2
ACD
AC
A
TO
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
TI
CP
CP
CP
CP
CP
CP
T2
AC
ACI
TO
CP
A+l
CP
A+l
TI
CP
CP
131 -
T2
IDS2
ACI
IDS5
ACI
IDS;
ACI
IDS5
ACI
DI
ACI
ACI
JJJ.
ACI
ACI
TO
ACIXR
A+B
5ACIXR
A+B
5ACIXR
A+B
iACIXR
A+B
ACI
A
ACI
A
ACI
A
ACI
A
TI T2
JSR
ACI
IDS2
ACI
DI
ACI
DO
ACI
AL
ACI
LDA
ACI
falA
ACI
JiVLJr
ACI
TO
(CP)
A+l
CP(AC)
A+l
1
(AC)
l
(AC)
i
(AC)
TI
(CP)
ACDACSCP
A^B
T2
A±l
A±l
A±l
*
A±l
ACD
*~
TO
ACIXR
A+B
ACI
A
ACI
A
CP
A+l
ACIXR
A+B
ACI,XR
A+B
ACI1 ;XR
A+B |
*í'!l'il !
1
I1
• '
i
i
iCP
í
l
f!i
rp
T2
CP
A
AC
A
AC
A
TO
ACIXR
AC3A+B
CP(AC)
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
TI
CP
CP
CP
CP
CP
CP
T2
A±l
AC
ACI
TO
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
CP
A+l
TI
CP
CP
CP
CP
CP
CP
- 132 -m
T2
DI
AGÍ
DI
AGÍ
DI
AGÍ
DI
AGÍ
DO
AGÍ
DO
AGÍ
DO
AGÍ
DO
AGÍ
TO
AGÍ
A
AGÍ
A
AGÍ
A
AGÍ
A
AGÍ
A
AGÍ
A
AGÍ
A
AGÍ
A
TI T2
JSR
AGÍ
IDSü
AGÍ
DI
AGÍ
DO
AGÍ
ALACAGÍ
A
LDAACAGÍ
A
STAACACI
A
JMPACAGÍ
A
TO
1(CP)(AC)
A+1
5 |—
(AC)
ACI(AC
A
ACI(AC)
A
CP
A+1
ACIXR
A+B
ACIXR
A+B
ACIXR
A+B
TI
(CP)
ACDACSCP
A0B
CP
T2
CP
A
AC
A
ACD
AC
A
TO
ACIXR
ACSA+B
ACIXR
A+B
CP(AC)
A+1'
CP
A+1
CP
A+1
CP
A+1
CP
A+1
CP;1
A+lf
T
C
1
I
£I1
IiIleI¡
1
¡C
I
C
C
Si
?i
:P
:P
:p
:P
:p
:p
T2
AC
ACI
TO
CP
A+1
CP
A+1
CP
A+1
CP
A+1
CP
A+1
TI
CP
CP
GP
CP
CP
T2
ACI
A±l
TO
CP
A+1
TI
CP
- 133 -
T2
DO
AGÍ
DO
AGÍ
DO
AGÍ
DO
AGÍ
TO
AGÍ
A
AGÍ
A
AGÍ
A
AGÍ
A
TI T2
J bRACAGÍ
A
IDS5ACAGÍ
A
DIACAGÍ
A
DOAC
AGÍ
A
TO
(CP)
A+l
7
ACIXR
A+B•
AGÍ
A
ACI
A
TI
(CP)
T2
CP
A
AC
A
TO
ACIXR
AC3A+B
CP(AC)
A+l
CP
A+l
T
á
1i1ii1i
%11
1i
D
P
T2
A±l
TO
CP
A+l
CP
A+l
CP
A+l
CP
A+l
TI
CP
CP
CP
CP
T2
ACI
TO
CP
A+l
TI
CP
: - 134 -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 describirse en un lenguaje apropia^
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 digital y para prograj, .
marlo. • ¡I•¡!
El AHPL (A Hardware Programming Lari]guage) es un lenguaje -1 i 1
derivado del APL en el que se incluyen sólo las operacio -i
nes de APL que satisfacen las restricciones circuitales. -
fl- 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 y se designani
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,i¡
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 entoncesi
como un conjunto de p vectores fila de dimensión p o p
ni
- 136 -
vectores columna de dimensión p fc2
En nuestro caso, la memoria podrá!
labras de memoria, cada una de p
y p = 16
(M1, M1,U-»0 r iJj f . M
(MÍ , M^ , ...Mí?2"1) es un vector cjblumna y se designa con M..
Operadores Primitivos . - Pueden actuar sobre escalares , vec-
tores y matrices.
tener un máximo de p pa2 ~~
bits; donde, p = 34000
) es un vector di la y se designa como M1 .
Notación Nombre
,z •<- x+y
z •+• x-y
z -t- xxy
z •<- x-ry
Suma
Resta
z es
Significado
Ha suma algebraica de x e y.
z •<- x
z •<- xfy
z •<-
z -«- x
z •*-
z -í- xvy
z es la diferencia algebraica de[
x e y,|
Multiplicación z es el producto algebraico.
íDivisi-ón z es igual a x dividido por y.
Valor Absoluto z es ligual al valor absoluto
de x.
z es G|l más positivo entre x e y.
z es el más negativo entre x e y.
Máximo
Mínimo
Negación
AND
OR
Si x=0; z=l. Si x=l, z=0.
Si x=y==l, z=l; de otra manera z=0:i
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) .
1 •Notación Nombre Signnif icado
z +• (x<y) Menor que 2=1 i x<y, de otra manera z=0
- 137 -i
z -<- (x y) Menor o igual que
z -<- (x=y) Igual que z=l
z *• (x>y) Mayor que z=l
2 •*• (x y) Mayor o igual que z = l
z +• (x?¿y) Diferente de z=l
Operadores Mixtos.- Actúan sobre
si xjíy, de otra manera z=0
si x=y, de otra manera z-Q
si x>y, de otra manera z=0
otra manera z=0
si x^y, de otra manera z=0
Barias combinaciones de es-
calares, vectores y matrices. 0 represen^
ta una operación.
Notación
z •<- e/X
Z •<- 0/X
Z -í- 0//X
z •«-
Nombre
Reducción
Reducción por filas
Reducción por columna^
Decodificación
X -*- j (n)Tz Encodificación
Z -í- X,Y
Z •<- U/X
Concatenación
Compresión
A -í- U/M
A *• U//M
Compresión por filas
Compresión por columna?
p x-i
Significado
z=X00X10X2...©X
Z =©/X1i
Z .=0/X .
z es el valor de X en
base j.
X es el vector corres-
pondiente al número z
en base j. n es el nú-
mero de elementos de X.
Z es la unión de los -
vectores X e Y.
Z se obtiene de X supri
miendo cada X. para el
cual Ü.=0.
A1=Ü/M1
A .=U/M .D D
J L
- 138 -T
Z -«- npx
ktX
Z •+• k+X
M
M
Z •*- k£X
Z •*• k?X
Reconformacion
Rotación a la izquiei
Rotación a la derecha
Rotación hacia arriba!
Rotación hacia abajo
Desplazamiento a la
izquierda
Desplazamiento a la
derecha
Z es un vector con n
elementos iguales a x.
da Rotación de X en k si-
tios a la izquierda.
Rotación de X en k si-
tios a la derecha.
Rotación de N_ en una
fila hacia arriba.
Rotación de N en una.
fila hacia abajo.
Desplazamiento de X
en k sitios hacia la
izquierda poniendo -
ceros en. las posicio_
nes vacantes.
Desplazamiento de X
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
e n Vector Completo
iguales a cero excepto el
.de la posición j que es igual
a 1
Vec or compuesto de n unos.
- 139 J
a n Vector Prefijo
Vector Subfijo
Vector de n elementos con -
lojs j primeros 'iguales a 1-
y el resto iguales a O.
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 especifii ' p
can el funcionamiento del sistema.!
2.- Subrutinas de Lógica Combinacional.- Cuando las opera-
ilas transferencias son muy complej
ciones durante -
as 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
(N)
Significado
-P )n i
Transferencia incondicional-
del control a la proposición
número N.
El control se transfiere a -
la proposición pa si i=0, a
P2 si i=l y asi sucesivamen
140
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,p2 o p3
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 ) xpx) + En esta transferencia , * re-
((Ai*A2*...A ) xpz) + .- - presenta una operación lógi-i
( ( 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.
iTransferencias.- 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 muestrani
a continuación:
1 4 1 - i - ,
Notación
AC3 •*- CP
Significado
Poner en
nido del
CP puede
registro
so es fif
el registro AC3 el conte-
registro CP. Como AC3 y
utilizarse cualquier otro
destinación en este ca
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
nación o listando ambas transfereí]
ma.
especificarse por concate^
cias separadas por una co_
- 142 -
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 dei
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 coni
la terminación de la transferencia.
- 143 -H
La descripción del control, en ni
inoras de control sincrónicas y a,
ras se utilizan biestables tipo D
adecuada de acuerdo al número de
estro caso, requiere de de
uncrónicas. Para las primes
, con la fase de reloj más
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
que retiene la señal de inicio, de
be el paso de esta señal hasta que
duración no prevista, y de un segu
:e de un biestable S-R -
I
una compuerta que inhi -
culmine el proceso de -
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:
Figura 5.2-1
si
FT
- 144
Existen otras acciones sujetas a
prevista sin caer dentro del marc
do. Tales acciones no pueden inic
se, sino mas bien debe sujetarse
adecuado. Demoras de este-tipo pu
sola compuerta. Figura 5.2-2
SEÑAL PERIÓDICA
SEÑAL DE_INHIBICIÓN
ina espera de duración no-
circuital antes explica-
Larse para luego mantener-
su inicio sólo al momento-
=den implementarse con una
Figura 5.2-2
Las demoras de este tipo inhiben
riódica y es justamente por ello
ma de retención. El tipo de comp
de acuerdo a los niveles lógicos
sitio de diseño.
La elección de una u otra forma
prevista, depende,en nuestro cas
La posible utilización que podrí
da.
La necesidad de disponer de una
la retención.
Las consideraciones generales im
A continuación, en la figura 5.2
general del flujo de control pía
ño. Su análisis se desarrolla pa
si paso de una señal pe -
jue no necesitan un siste-
rta utilizado puede variar
ñas recomendables en el
s demora de duración no
de varios factores.
darse a una señal reten_i .
eñal periódica para obviar
uestas al diseño.
3 se muestra el diagrama -
teado en el presente dise-
latinamente a lo largo de
- 145
TO1
P E D I D O DE
I N S T R U C C
Q 2 T
O N
LLEGADA DE
INSTRUCCIÓN j\ IR
C A L C U L O DE
01 R E C C I O N A M I E N T O .
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
ENVÍO DEL C Ó D I G O
DE D I S P O S I T I V O A E/S
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,este1 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 ejjii
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 procedimiento se llama "Fase de Traída" yi
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
tos B.
- Selección y habilitación de escritura del Acumulador de-
Instrucciones, para que la instrucción se deposite allí:
pase a la barra de da -
II
- 149 -
RWS2 y WE2.
- Depósito de la instrucción en el Registro de Instruccio-
nes: EIR1. ji
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,
IR1 •*- B, IR2 + IR1
6 B0:l, (=,¿) + (7,10)
E26S12M, WE2,
EIR1, EIR2
Los pasos escritos en AHPL se realizan por medio de unai
"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 - -
150' -
Nótese la ausencia de control sob;]?e REÍ (habilitación de -
lectura en los registros 74172).
tal entrada se encuentra siempre
mo una condición no importa.
Por ahora considérese que
abilitada y trátesele co-
La espera de aceptación de memoráj
liducto, ya que podría haberse di
moria que se halla ocupado en cuy!
desocupación.
Las 3 demoras en el proceso de lectura (paso 4} involucran
el tiempo que toma la memoria en
lectura (tiempo de acceso) .
La cadena de control que ejecuta
tra en la figura 5.3-1.
A C E P T A C I Ó N DEM E M O R I A
obedece al diseño en po-
eccionado un módulo de me
caso hay que esperar su-
esponder a un pedido de -
[a fase de traída se mues-
- 153 -
n4.- 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
nicamente a la demora producida si; es que la instrucción-
gue se ejecuta previamente es una
te la realización de un direccionamiento indirecto.
Los pasos necesarios para la real;
ción aritmética y lógica son:
- Selección y habilitación de lectura del Acumulador Des-
ejecución esta sujeta ú
LDA, ISZ y DSZ o duran-
zación de una instruc
tino (ACD) durante las instrucc;
AND: RS1 y REÍ.
- Selección y habilitación de lecl
te (ACS) durante cualquier insta
- Selección de la operación corres
ones: ADC, SUB, ADD y -
ucción: RWS2 y RE2.i •*ipendiente 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
ra desarrollo de un posible desj
do: SO y SI.
- Selección del valor que tomará
os multiplexers 9309 pa
lazamiento del resulta-
1 carry (por medio del-
circuito presentado en el capítulo III, punto 4)
- Selección y habilitación de escí
ción del reloj que carga al linl
WS1, WE1 y CK1.
Habilitación de un circuito que*
itura en ACD y habilita
cuando el bit 12 = O
posibilite el salto de
- 154 -
la siguiente instrucción en secuencia cuando los bits 13•. i- 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 analizari p
! !se independientemente de las cadenas; sujetando su acción-
1 1 . 1i i isó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
7 ESPERAR SEÑAL DE EJECUCIÓN
8 1 DEMORA
9 ACD •+- ACD0ACS , Link •*- Carry
IR2 •<- IR1, ->• SALIR
CONTROL
RE2, WE1, CK1
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
EIR2
- QTA—
SEÑAL OE
EJECUCIÓN
AL
Q2A
Figura 5. -2
IH
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, pori
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álculoi
de dirección efectiva se dan a continuación:
ACCIONES
10 -*• (Mxll) + (E/SX54)
11 ESPERAR SEÑAL DE EJECUCIÓN
CONTROL
12
13
14
IB
-5- (JSRX14) + (JSRX13)
-*- (JMP xl5) + (JMPX17)
AC3 *• CP ! WE1
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
IR218
19
IR1
• i (=5 =O ->- f 20 40)• J_ , ^ til \ \J i i- \J 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.
RE1M, RE2, E74116
EIR2
Las instrucciones que no provocari
ponen la dirección calculada en ¿.
de salto deben además poner esta
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
un salto incondicional -
MAR, mientras que las
dirección en el CP. La -
zarse sólo con los últimos 8 bits
ta: a.- Uno de los registros índice: AC2 y AC3; b.- CP si-
el direccionamiento es Relativo;
do se direcciona en Página Cero.
La habilitación de lectura del AÉÍI implica la utilización
de ACI y que XR represen
c.- Ningún registro cuan-
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 utiliza1a 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:
J-DU
ACCIONES CONTROL
29
30
31
32
33
34
35
36
37
38
39
ESPERAR ACEPTACIÓN DE MEMORlJ
B -4- MDR, S -4- B '
-*• (25) '
B0: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É
MAR -<- S-l
. ->• ( (JMP V JSR) X30) +
E26S12M, REÍ, bÉ
( (JMP V JSR) x24)
CP •*- S-l
+ (24)
B •*-
MAR •*• S+l
•*• ( (JMP V JSR) X34) +
-LMARS+l, MDR •*- B, M •*- MDÍ
( (JMP V JSR) X24)
CP •*- S+l
^ (24)
MAR •*- S
•*• ( (JMP V JSR) x38) +
((JMP V JSR) x24)
CP •*- S
•*• (24)
E26S12UAL, CKMDR,
E74116
WE1
E26S12UAL, CKMDR,
É74116
WE1
E74116
WE1
j
- 161 - mi
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 At
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
OEREÍ E7M16
Figura 5
RM2
WE1 E26S12UALCKMDR
5-3
Q5I
Q6I
Q7I
JT1 T2
•
TO T1 T2r
• p T1
L_
r~
TO
• -
Figura 5 5-4
1
- 163 -
El flujo secuencial de operación
sigue:
ACCIOlNÍES
40 ESPERAR ACEPTACIÓN DE MEMOR3J
41 -+ (STA x42) + (STAX44)
42 1 DEMORA
•*• SALIR
44 -»• ( (JMP V JSR) x46) +
( (JMP V JSR) x45)
45 •*• ( (IS2 V DS2) x47) +
(LDAX52)
.46 * (4)
47 MDR
B •«- MDR, S •*- B
•*• (DSZxSO) + (ISZxSl)
J.MARM , 3 DEMORAS
48
49
50-LMAR
B •*- S-l, MDR -«- B, M •<- MD
SALIR
J-MAR51 B -H S+l, MDR +- B, M ^ MD
•í- SALIR
-LMAR52 MDR •*• M , 3 DEMORAS
53 B •«- MDR, AC •*• B
•*• SALIR
uede escribirse como
La realización de las instrucciones STA, ISZ y DSZ requie-
re de señales comunes de control
Las diferentes demoras en la ejec
CONTROL
E26S12UAL, CKMDR
E26S12M, .GE, REÍ
E26S12UAL, CKMDR
E26S12ÜAL, CKMDR
E26S12M,. WE2
sobre E26S120AL y CKMDR.-
ciÓn permiten utilizar -
164 -
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ónI
durante la fase de traída; por lo ¡ique en este caso, el ccmi
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 -
diente a una instrucción STA, mié
QAC
itras la figura 5.5-7 lo
STAT2A' Q6
E26S12UALCKMDR
E26S12MWE2
Figura 5.5^5
0 5 M
TI T2
Figui
TO
J1P
;a 5
T I
•
iJ
1
5-6
T2 TO
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. -ií
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.
- 166 -
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
55
56
57
58
59
60
61
62
ESPERAR SEÑAL DE EJECUCIÓN
E/S •<- u
IR2 + IR1 EIR2
(SKPX58) + (SKPX67)
77 (==iO _>- ffi? *S Q ^' / g r \ / \v ¿. r -J3 i
(IR19 x60) + (IRl8x61)
((OCUPADO © IRlg)x65) +
((OCUPADO © IR19) x66)
•*• ((TERMINADO 8 IRlg)x65)
((TERMINADO © IR19) x66)
-»- (IRla x63) + (IRl8x64;
- 167 - T
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
•+• ( (INT e I Rio )X65) +
( (INT © IRl9)x66)
+ ((FUENTE © IRl9)x65) +
( (FUENTE © IR19) x66)
SALTAR LA INSTRUCCIÓN QUE SISUE EN SECUENCIA
+ SALIR
778/ (=,T¿) -*- (73,68)
7*69) + (IRl7x71)
E26S12UAL, CKE/S
1 DEMORA
BUFFER -í- AC
->• SALIR
N DEMORAS
AC •*- BUFFER
•»• SALIR
•*• ( (IR18 © IR19) x74)
( (IR18 © IR19) X75)
INT •*• IR19
•*• ( (NIOS V NIOC) x66) +
( (WIOS V NIOC) X76)
DIA-CPU:!, (=,¿) -*• (77,78)
AC -f- SWITCHES DE LA CONSOLA
-*• SALIR
DIB-CPU:!, (=, ) •*• (79,80)
WE2
WE2
üJ6/AC •*• CÓDIGO DEL DISPOSITIVO WE2
QUE PIDE INTERRUPCIÓN
SALIR
168 -
80 DIC-CPU:!, (*, (81,82)
E26S12UAL, CKE/S
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-
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. ;
- 169 -
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 77 e 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.
170
El circuito que espera la señal,
que se utiliza con las instrucc
de ejecución es el mismo
ones de memoria.
Las señales de carga CKMDR y CKE/S en la cadena común pue_
den sincronizarse con la señal
da señal actuará sólo cuando le
produce la transición en el mom
CKE/S = Q6.Q3E/S.RM2
)3E/S. De esta manera, ca_
corresponda. El reloj RM2
CKMDR = Q6.Q3E/S.RM2 . K.RM2
oo
AE I R 2
Q3E/S
DO
01
2nto más adecuado:
MSKO HALT SKP
A AT2A
DOB-CPU DOC-CPU SKP
OÍA CPU DIB CPU DIC CPU
DI
WE;
Figura 5.6-
La señal K, en CKMDR, produce
dificado en caso de incremente
TOA
y y YDÍA DIR !DÍA
WE2
DIB
W~E2 IORST
la retención del dato mo-
o decremento automático
- 171
7.- INSTRUCCIONES CON SOBREPASO
Instrucciones con sobrepaso denominaremos a todas aquellasSi *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
AL
TO TI ¡;
ACD *
ACS ;:
T2
1i 1XX
ACD
Posible llegada de la instrucción a saltarse
Prueba sobre el link y el resultado
172 -m
Instj
T2
IDSZ
ruccic
TO
AGÍ
XR
unes c
TI
jue me
T2
XX
Ddiri
TO
can 1;
TI
a men
T2
oria:i
TO
LPosible llegada
se
Instrucciones de Entrada y Salida
T2
SKP
TO
ACI
TI T2
XX
Posible llegad.
se
Prueba sobre -le
! \n el caso de las instrucciones qre modifican la memoria,
aunque la prueba que habilita el
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, -
) Prueba sobre el resul-
tado
de la instrucción a salta£
:on salto:
de la instrucción a saltar
s biestables
alto se realiza después
porque el sistema en poliducto no
llegada al control de dos instrucc
siempre garantiza la -
Lones consecutivas. De
173
cualquier manera, es decir llegue o no llegue la siguiente
instrucción inmediatamente, el circuito de salto debe impei
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 lasi
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.
- 174 -Jlí
El borrado debería sincronizarse]! con el ciclo en el cual
Ise inicia la ejecución de las instrucciones (TO) . Como
la señal de salto en las instrucciones de modificación -lí
de memoria llega a la mitad de este ciclo, el borrado se
fija al comienzo de TI con: RM1 .TI.
RMI TI
LLEGADA DEINSTRUCCIÓN
AL
LLEGADA D_E
INSTRUCCIÓN
M-E/S
TI
SEÑAL IEJECUCIÓN AL
SEÑAL DE
EJECUCIÓN E/S
'SEÑAL DE SAIITO (SA)
Figura 5.71-1
- 175 -
8.- INTERRUPCIONES AL PROGRAMA
Un problema muy importante en el diseño de una computadorai
es la comunicación hombre máquina.-
Los dispositivos de entrada y salijda posibilitan la comun_i
icació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
para las primeras.
Los dispositivos de entrada y salida más comunes son: lec-
toras y perforadoras de tarjetas,
lectoras y perforadoras de cintas
desarrolla el hardware -
impresoras, teletipos y
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-
- 176 -
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:.1 1
La señal de pedido una vez sincronizada debe mantenerse -
hasta que el programa limpie Terminado o ponga a 1 alu
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.
177
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
un salto indirecto a la localidad
:de memoria y se simula
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 dei '.
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
los diferentes dispositivos.
En el caso de trabajar con esta segunda alternativa, la -
<üe interrupciones en
178
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;• i i
Desde el punto de vista del control las interrupciones -l i
se implementan hasta entrar en la;rutina de servicio. -
Esto supone el control adecuado del momento de inicio yj|
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
21
31
41
51
61
71
81
91
101
( (INT A INTR) x3I) +-
( (INT A INTE) x2I)
NO TRAER NUEVAS INSTRUCCIONESI;
-»• ( (CE A T2A1 ) x5I) + |:
( (CE A T2A1 ) xll) í:
MAR •*- 00000R í;8 • ¡|
B -e- CP+1, MDR +• B |!'!!
ESPERAR ACEPTACIÓN DE MEMORIA
E74116, REÍ
E26S12UAL, CKMDR
-1.MARM MDR, INT O
EIR1, WE2B •<- 0020018, IR1 •*- B, ACI K- B
•*• (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ótese1 1! ¡
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
incrementarlo en 1.
A pesar de que en este caso puede
la memoria es necesario
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
el control borra el biestable de
para que cualquier requerimiento
la dirección de retorno,
Interrupciones (paso 81)
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
- 181 -
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 [ T I
i I Z — —
o o '
U /
o n
Q IME/S
RS1
RWS2
WS1
nr>
CP
7Í-L1
AGÍ
• ;
i
;¡
:
• i' i
:i
i
¡i
'i• i
Figura 5.8-2
- 182 -
9.- SEÑALES DE DEMORA EN LAS FASESf DE TRAÍDA Y EJECUCIÓNti
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 de modificacióni
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 ;
reccionamiento indirecto.
no ha aceptado un di -
- 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 noi
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
Mientras no se acepte un direccionamiento indi -
recto. •;
Mientras no termine cualquier proceso indirecto.
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).
Q4I
Q5I
Q4M
- 185 -
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 yI
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.
- 186 -
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).-it
1 í:¡
Las demoras en la ejecución de esjtas instrucciones están
dadas por:
Q2T
Q4I
Q5I
Mientras no se acepte el
trucción.
Mientras no se acepte un
to.
pedido de una nueva ins-
direccionamiento indirec
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 -
- 187 -
L
18
19
desde la memoria a un dispositivo de entrada y: :|
lida. . ;|'!
D5 decodifica la secuencia! LDA-DO.
V ÍR12 V IR13 V IR17)>|20)
V IR12 V IR13 V ÍRI7) xig.
L i V IR12 V IR13) x21) + (V XR1Z \J X23)
- 189 -
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 IR15:1, ( = / ? ¿ ) + ( 2 6 , 47)
DIRECCIONAMIENTO INDIRECTO
26 ACT: O, (=,,*) •* ( 2 9 , 2 7 )
27 ~ "
28
T •*- 1, Q2A -4- 1, Q2M «- 1, Q2E/S
•*- (26)_LMAR ,
29 MDR •*• M ,3 DEMORAS MANTENIENDO EN 1: T, Q1A, Q2M, Q2E/S
30 B
31 -J-
32 Bo
ÍNDICE
33 -»•
34 Fi
35 B
36 -*•
37 CP
38 ->-
39 B
40 •*
41 CP
•4- MDR, S -4- B
(33)
:1, (=,¿) + (26,47)
AUTOMÁTICO
( (a1 a/F V Fi i) x34) + ( (a11/
2:1, (=,?í) (35,39)
F \ Fj x ) X43)
-LMAR•<- S-l, MDR -e B, M -4- MDR¡, MAR -4- S-l
((IRli V IR12 W !Rl3)x37) +
-*• S-l
(32)
+ S+l, MDR -4- B, MlMAR -4- MDR
((IRli V IR12 V IR13) X41') +
-4- S+l
( (IRla V IF
, MAR -4- S+l
( (IR11! W IB
IR19 W IR13) X32)
x32
190 -
42 * (32)
43 MAR •+- S
44 •+• ( (IRlx V IR12 V IRl3)x45) +:
45 CP «- S
46 + (32)
INSTRUCCIONES CON REFERENCIA A MEMORIA
47
48 T •<- 1, Q2A •*• 1, Q2M «- 1, Q2E/S -c- 1
V IR12 V 3) X32)
ACT: O, (=, ) •*• (50,48)
49
50
51
52
53
54
55
56
57
58
59
60
61
62
•+ ( 4 7 )
•*• ( ( IRlo A IRli
1 DEMORA
B •<- AC, MDR -e- B
•*• ( ( IR2 : \J IR22
•+• ( ( IR2 X V IR22
->• (7)
MDR <- HLMAR, 3
B •*• MDR, S H- B
IR2mlv (=^) +
B H- S-l, MDR -í-
B •<- S + l, MDR «-
_LMARMDR -t- M , 3
B -*- MDR, AC -fr- B
A IR12) x51) -í
-LMAR, M -<- MDR,
V I R 2 3 ) x55) •}
\J IR2 3 ) >66) ¡4
DEMORAS MANTEÍ
( 5 9 , 6 0 )XMAR
B, M •<- MDI
O.MARB, M •*• MDI
DEMORAS MANTEA
, •*• SALIR :
- ( ( IR10 A IRli A IR12) x53)
-^ SALIR
( ( I R 2 , V I R 2 - V I R 2 J x 5 4 )1 £. 3
• ( (IR21 V IR22 \J IR2 3 ) x61)
IIENDO EN 1: T, Q2M, Q2E/S , Q1A
1, -»• SALIR
1, ->• SALIR
IIENDO EN 1: QlA
INSTRUCCIONES DE ENTRADA Y SALIDA
63 Q2E/S:0, (=, ) -*• (66,64) ¡
64 T +• 1
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
- 191 -
- (63)
E/S •*- ü)8/ACI -
IR2 -*• IR1
-*• ( (IR15 A IR16 AlRl7)x69) -
A/üj6/IRl:l, (=,T¿) ->• (73,70)
•* (IR1B X71) + (IR18 X72)
f ((IR15 A IR16 A IRl7)x78)
->- ((OCUPADO © IRl9)x76) + ((OCUPADO © IRl9)x77)
->• ((TERMINADO © IRlg)x76) + ((TERMINADO © IRl9)x77)
+ (IR18 X74) + (IR18 X75)
-*• ( (INT © IR19) X76) + ( (INT 8 IR19) x77)
•*• ((FUENTE © IR19) x76) + ((FUENTE © IRl9)x77)
SALTAR LA INSTRUCCIÓN QUE SIGUE EN SECUENCIA
-»• SALIR
A/í,j6/IRl:lf (=,?*} •* (84,79)
-»• (IR17X80) + (IRl7x82) .
1 DEMORA
BUFFER •<- AC, •* SALIR
N DEMORAS MANTENIENDO EN 1:
.
r, Q2M, Q2E/S
AC •*- BUFFER, •»• SALIR
•> ((IR18 © IR19) x85) + ((IRle © IRlg)x86)
INT -f- IRlg
•>• ((NIOS V NIOC) x77) + ((NIOS V NIOC)x87)
DIA-CPU:!, (=,7 ) •*• (88,89)
AC -H SWITCHES DE LA CONSOLA,
DIB-CPU:!, (=,7 ) ->• (90,91)
036/AC •*- CÓDIGO DEL DISPOSITI
•*• SALIR |
**• SALIR
VO QUE PIDE INTERRUPCIÓN,
- 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 INTRI I
41 -*• ( (CE A T2A' ) X5I) + ( (CE f\\' ) XII)
51 MAR -í- 0 0 0 0 0 f to
61 B •<- CP+1, MDR
71 A C T ; 0 , (= /
B
!9I,
81 71
_LMAR91 M •*- MDR, INT •<- O
101 B •*- 002001 8 / IR1 •*- B, ACI «I
111 -*- (14) j;
B
- 193
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 figura 6.1-1 ilustra esquemáticamente la disposición de -
los conmutadores e indicadores en el panel frontal.
la corrida de un programa
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 eni ¡ 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 -
D I R E C C I O N E S
DATOS E INSTRUCCIONES
I N T E R R U P T O R E S DE D A T O S
EXA. ACÓ A C I AC2 AC3 RESET START DEP EXAM
O O O O ODEP
INST.
STEP
o o o oSTOP CONT. DEP EXAM
NEXT NEXT
Figura 6 .
- 195 -
(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
seleccionada. Las luces
contenido de la localizaoión direccionada.
DEPOSITE.- Deposite el contenido de los interruptores de -
presentan la dirección
de datos presentan el -
(Deposit) datos en la localización
por CP.
Las luces de direcciones
seleccionada.
EXAMINE!
PRÓXIMO.- Muestre el contenido de
(Examine ria especificada por el contenido de CP incremen_
-Next) tado en 1.
Las luces de direcciones ,¡presentan la dirección
de memoria especificada
presentan la dirección
la localización de memo
seleccionada. Las luces
contenido de la localizaoión direccionada.
CP queda incrementado en i 1.
de datos presentan el
- 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:
- 197 -!
Si es: Al final se muestra:l ; j
STA El operando a escribirse.1 ¡iI 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
DECODIFICADORES
R E T E N E D O R E S
B A R R A DE DATOS
TRANSCEPTOR
DE B A R R A
INTERRUPTOR DED A T O S
DISPLAYS DE DIRECCIONES
DECODIF ICADORES
R E T E N E D O R E S
BAÍRRA DE D I R E C C I O N E S
'•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.
- 199
Interruptores Operacionales\\a función de cada interruptor esta Intimamente relaciona-
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 deI
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 manejan regis -i
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:
JEliminador de Rebotes.- El circuido utilizado con este ob-• 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 )
-t- 5V
W =. X
Y = X
Figura !;6 .2-2i 1
I
Ü !Otra configuración empleada y que¡Utiliza el mismo princi-
pio se muestra en la'figura 6.2-3.-Í El conmutador dibujadoJ
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
! 'Iprimera 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.
R2 <V — VILmáx .1 OLmín
"ILmíh
- 202 -
(Vcc -R2
Rl + R2
VIH
(Voc - VOL) R2 >
R2 (Vcc - VOL
V.R2 >
Rl + V_u R2i J.rii¡
« VIH R1
|I Rl
Vcc - V ; i- VOL ¡ 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.
CONMUTADOR Y
E L I M I N A D O R
1,'L
AD C
C
LQ
QP
i
D Q
QCP
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
- 203 -
gico. La señal S permanece en 1 ilógico durante un período! ! í
1 'de la señal de sincronismo. 'j ¡
,¡ iUna 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 escrito entre pa -
réntesis: |
1.- Habilitar el tt'ansceptor de barra en la consola para per: ¡
mitir que el contenido de los conmutadores de datos pase ai ! - 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 pei 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
- 204 -
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
recciones es el mismo que carga al
para el display de di-
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-
- 205 -
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 c;adena de traída.i i
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 deii
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:
- 206 -
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 eli i
circuito de espera, porque al momento de hacer la referen-
cia, la memoria podría encontrarse realizando un ciclo de
- 207 -
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 losI !
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.
- 208 - ¡J
! }
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 eli
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. ¡
- 209 -
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 unoi
cualquiera de ellos debe mantenerse el tiempo necesario pa_
ra que su acción sea efectiva. Esta selección se realizai
en base a dos líneas selectoras en la siguiente forma:
M
- 210 -
ACÓ AGÍ AC?;| AC3. • 'i
DA1 O O 1 ' 1
D A 2 0 1 0 ! 1
A C Ó
A C l
AC2
AC3
ACÓ
ACl
AC2
AC3
1.2 K
, J
,
"• ,
^v
1.( A/
i
iVA
AK>
r— J^
A
-1
1.2 K
1.2K
1.2 K
1.2Kv\A/V
1.2KAMr
O A 2
Figura 6 .2-5
- 211 -
La figura 6.2-5 muestra también el sistema de eliminación
ude rebote antes explicado para las dos funciones operacio-f i
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
%
- 212
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
- 214 - '
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-
215 -
i imina 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
RMODO DI D2 D3
CP 25S08
00 01 02 03
O P Q 9 P Q Q
00 01 02 03 cu
00 01 Q2 03
B12 B13 BU B15
1-00 01 02 D3 £
CP 25S08
00 01 Q2 03
>J
;
r¡r
100 01 02 03 E
CP 2 5 S 0 8
00 01 Q2 03
bJr
DO DI D2 03 £
CP 25508
00 01 O2 03
>-
DO 01 02 03
CP 74LS175
00 Ql 02 Q3
CL O
-1—T2-
EIR1
E I R 2
Figura 7ll-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.
- 216 -
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.
II
- 217
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
- 218 -
un ciclo de lectura:
Q2T R W
0 1 0
1 0 0
R = Q2T
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
O O
0 1
1 O
1 1
R W
1 O
1 O
O 1
o o
R = Q4I
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
0
0
0
0
11111111
0
0
0
0
11110
0
0
0
1111
0
0
110
0
l'10
0
110
0
11
0
10
10
10
10
10
10
10
1
11111111X
0
1X
0
X
X
X
0
0
0
0
0
0
0
0
X
11X
0
X
X
X
Q4M-JL
S-Z 1111
1 .1
111
/
' 0
\xX
X
\
0 ,
X
1
R = Q4M+S
R = Q4M.S
Q4M-JL
S-Z 0
0
0
0
0
0
0
0
0
Xy"
X
'V;i!x!
11J
W = Q4M.JL
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 simultáneamente y su duración satisface todos los4
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.
- 221 - .¡ i
l!í l i i
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
- 222 -
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.
( IR l ) rJL
( I R l ) rSTA STA
QUQ 5 ITÍA
JLRl)
\ Q
CP
STA1 (I Rl)
0 0
C P °
J
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
ACI
CP
ACÓ
ACI
AC2
AC3
Código
: o
•• 0
i
-i
•• i
i
0
0
0
0
1
1
0
1
0
1
0
1
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:
- 224 -
b6 b7_
O O
0 1 CP
1 O AC2
1 1 AC3
Código ¡
X X X
0 0 1 :
1 1 0 :
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
1 b3 b4
1 b3 b4
1 b3 b4
1 bl b2
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.
STA:
DI:
DO:
AL:
AC
AC
AC
ACS
ACD
La tabla que sigue resume todas
lección. Se considera las tres
las posibilidades de se-
éntradas que para este -
- 225 - .-ii ;* u
jpropósito ofrecen los circuitos 74172.
RS1
Ciclo Registro Dirección Causas
TO CP 0 0 1 Traída de nueva instrucción.
Interrupciones.
Función "Deposite".
*ACI 0 0 0 Direccionamiento a memoria.
Envío del código del dispos,i
tivo a la Interfase.
TI *ACD 1 b3 b4 Instrucciones AL.
T2 *CP 0 0 1 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! 0 0 0 Llegada de nueva instrucción.
Interrupciones.
AC 1 b3 b4 Instrucción LDA.
CP 0 0 1 Funciones "Comienzo" y "Exaini_
ne1
- 226 r ii .:
I *
WS1
Ciclo Registro Dirección Causas
TO *AC3 1 1 1 Instrucción JSR.
CP 0 0 1 Instrucciones de salto con ddi
reccionamiento indirecto.
TI *CP 0 0 1 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 TI:
ACD
RS10 1
RSli b3
RS12 b4
Ciclo T01:
RS10
RSli
RS12
CP
0
0
1
Ciclo T02:
RS10
RSli
RS12
ACI
0
0
0
- 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
Q S 0 1
RSlo
RSli
RS12
0 1
0 b3
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:
- 228 - ;
QS b3 EAC DAl
0
0
0
0
0
0
0
0
111"11111
QS
0
0
0
0
0
0
0
0
11111111
0
0
0
0
11110
0
0
0
1111
b4
0
0
0
0
11110
0
0
0
1111
0
0
110
0
110
0
110
0
11
EAC
0
0
110
0
110
0
110
0
11
0
10
1-0
10
10
10
10
10
1
DA2
0
1
0
1
0
10
10
10
10
10
1
0
0
0
0
0
0
0
0
0
0
0
1110
1
RSl
111111110
0
0
1110
1
QS-b3
EAC-DA1 ' 0
0
0
0
0
0
o í
0
V 1
1 1 »1 -1- 1[ 1
i 1 !- -~ «-•1
0
0
0
1
0
RSli = QS.b3.EAC + QS.DAl.EAC
= QS.b3.EAC . QS.DAl.EAC
QS-b4
EAC-DA2 l'l¡1íi.t
í1
nM
iji
1!t
1\/
/1
0
0
0
1
0
i •= QS + DA2.EAC + b4.EAC
RSl 2 ? = QS . EAC.DA2 EAC.b4
229 -
Decodificación en RWS2
Ciclo T01:
AC
RWS20 1
RWS2i b3
RWS22 b4
Ciclo T02:
RWS20
RWS2
XR
b6
b6
b7
Ciclo TI:
ACS
RWS20 1
RWS2i bl
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
230
AGÍ CP AC -
RWS20 O O 1 X
RWS2i O O b3 X
RWS22 O 1 b4 X
Q6M SE b4 ' RWS22
RWS2 0 = Q6M
RVÍS2! = Q6M.b3
O
O
O
O
1
1
1
1
O
Q
1
1
O
O
11
oQ
1
1
O
1X
X
Q6M-SE
b4 0
0pVM
XN'
Xy
0
1
RWS22 *= SE + Q6M.b4
RWS22 F= SE . Q6M.b4
Decodificación en WS1
Ciclo T01:
WS10
WSli
WS12
Ciclo T2:
WS10
Ciclo TI:
WS10
WSli
WS12
CP
o
o
1
AC3 CP
1 WS10 O
1 WSli O
1 WS12 1
ACD
1
b3
WS12 b4 . '
Los códigos asignados a los diferentes ciclos son,
- 231
Sido Código en el multiplexer
T01
T02
TI
T2
A
1
1
0
0
B
1
0
1
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-
- 233 -
so del código propuesto inicialmente]
TO TI T2 S A B
0
0
0
0
0
0
0
0
11111111
0
0
0
0
11110
0
0
0
1111
0
0
110
0
110
0
110
0
11
0
10
10
10
10
10
10
10
1
X
X
0
X
0
X
X
X
11X.
X
X
X
X
X
X
X
0
X
1X
X
X
0
1X
X
X
X
X
X
A = TO
X
X
X
0
/_!_
! x¡ X
\
x\¡
x!X7
__p1X
X
TO-T1
T2-S
B = TI + S
B = TI + TA + QIT2 + D + QT
+ DAC + II
B = T1.TA.QIT2.D.QT.DAC.I1
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
Entradas5 b6 b7 Instrucción Registros^
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
COM
NEG
MOV
INC
ADC
SUB
ADD
AND
ACS
ACS
ACS
ACS
ACS
ACD
ACS
ACS
+ 1
+ 1
4- ACD
- ACS
+ ACD
ACD
Operación
A -
A -
A +
A +
A -
A -
A +
A A
B - 1
B
B
B + 1
B - 1
B
B
B
A
0
0
0
0
ACD
ACD
ACD
ACD
B
ACS
ACS
ACS
ACS
ACS
ACS
ACS
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
A
Cálculo de Direcpidn Efectiva.
Cálculo de Dirección Efectiva.
- 235 -
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
A
A + 1
A - 1
A + B
A - B - 1
A - B
Código de Selección
M SO SI S2 S3 Cn
O
O
O
O
O
O
O
O
1
1
O
o
o
o
1
o
11
o
o
1
1
o
o
1
o
1
1-
1
o
- 236 - ¡;!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.
- 2 3 7 - 2
b6 b7
O
O
1
1
O
1
O
1
Operación
A
A + B
A + B
A + B
Código de Selección
M SQ SI 32 S3 Cn
0 . 0 O O
O O
O O
O
O
1
1
1 o o
o
1
1
1
1
1
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 ICuando se inicia la traída de ufaa nueva instrucción T
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 CnV
O 0 0 0 0 0 A, A + P¡ O Y O O Y 1•j |
1 0 0 0 0 1 A S i i 0 0 0 0 0 1
2 0 0 0 1 0 . A 0 0 0 0 0 1
2 0 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 0i! ¡
1 6 1 0 0 0 0 A + 1 Í O O O O O O
- 238 -
donde: M = Sl-= S2 = O
s K Xi
í1¡1¡x
u
/ x ]
x ¡X
1
x)x!XI
x)
0
X
X
X
0
X
X
X
/I¡X
¡x\
xl1
X i1
Y 1x 1
x;
X
X
X
X
T-Q5S-E
D-Q2E/S
Cn = Q5S.T + E
Cn = Q5S.T . E
La no simultaneidad
fácilmente con:
Cn
de
= T + Q5S . E
las señales permite trabajar más
A
0
0
0
0
0
0
0
0
11111111
B
0
0
0
0
11110
0
0.
0
1111
b6_
0
0
1
1
0
0
110
; 0
110
0
11
b7
0
1
0
10
10
10
10
10
10
1
SO=S3
0
1110
0
0
0
0
0
0
0
X
X
X
X
A = 0? -f
B = Q2E
A-B
b6-b7
SO =
SO =
SO =
Come
cuan
baja
los
i-i r\ Q2E/S + E + D
0
'?}T¡1 — Ax ¡
0
0
0
0
X
X
X
X
0
0
0
0
= A.B.b7 + A.B.b6
= A.B (b6 + b7)
SO = S3 = T +Q5S . Q2E/S E + D
Como SO y S3 permanecen iguales
cuando se activa E o T, puede tra-
bajarse sólo con T que es común a
SO = S3 fu T.Q5S.Q2E/S.T.D.Y
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
A
A
A
A
A
A
A
A
- B - 1
- B
+ B
+ B + 1
- B - 1
TD
+ B
A B
b5_
0
0
0
0
1
1
1
1
b6
0
0
1
1
0
0
1
1
b7_
0
1
0
1
0
1
0
1
M SO SI S2 S3 Cn A B
0 0 1 1 0 1 O A C S
0 0 1 1 0 0 O A C S
0 1 0 0 1 1 O A C S
0 1 0 0 1 0 O A C S
0 0 1 1 0 1 A C D A C S
0 0 1 1 0 0 A C D A C S
0 1 0 0 1 1 A C D A C S
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
0f 1>V 1 ,
0
0 M = b5.b6.b7
b5-b.6
b7
b5-b6
b7
0
0
/I\
V'
^
0
0 SO •= S3 = b6
1N'I/
0
' 0
0
(lA:M SI =;b6 + b5.b7
SI =,¡ b6 . b5.b7
- 240 - =
b5-b6
b7 1N!/
. 0
' 0
0
0
'1vi S2 = b6
b5-b6
b7 10
10
1X
10 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 untí 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
0
0
0
0
0
0
0
0
0
0
0
0
oFi
1
1
1
1
1
1
1
1
1
1
1
1
i F i
0
0
0
0
0
0
0
0
1
1
1
1
,Fx
0
0
0
0"
11110
0
0
0
*,0
0
110
0
110
0
1i
i f F j 5
0
10
10
10
10
10
1
(Octal)
20 A +
21 A +
22 A +
23 A +
24 A +
25 A +
26 - A +
27 ; ;A +30 i A -
31 j
32 1
33 )
! A —
A -
A -
1
1
1
1
1
1
1
1
1
1
1
1
M
0
0
0
0
0
0
0
0
0
0
0
0
so
0
0
0
0
0
0
0
0
1111
SI
0
0
0
0
0
0
0
0
1111
S2
0
0
0
0
0
0
0
0
11
•11
S3
0
0
0
0
0
0
0
0
1111
Cn
0
0
0
0
0
0
0
0
1111
241
sigue...
0 1 1 1 0 0
0 1 1 1 0 1
0 1 1 1 1 0
0 1 1 1 1 1
34
35
36
37
A - 1
A - 1
A - 1
A - 1
0 1 1 1 1 1
0 1 1 1 1 1
0 1 1 1 1 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 F1 = 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 F1 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 F 0 = 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 F1 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'. :
iSi bien F0 no es parte de la dirección enviada a la memo
í ; -ría, debe considerársele en lajdecodificacion 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:
F1 F0 Q7I F
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0 0 p ' -Fo
1 1 Q7I 0 (l /i) 1\ i ii ^SLíp1
1 0 F = F 1 + Fo -Q7I + Fo -Q7I
0 1F = F ' + (Fo © Q7I)
1 1
0 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 -
R M l
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
A
A + 1
Causa
Instrucción JSR.
Instrucción STA.
Direccionamiénto Indirecto,; •!J -
Interrupciones (QIT1).¡í íb 'i
Instrucción Í'SZ (ISZ) .
Direccionamiénto indirecto con incre_• Í '! _
mentó automático (F).
- 244 -
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.
OperaciónISZ DSZ F Fi 2 Código de Selección
0
0
0
0
0
0
0
0
111
11111
0
0
0
0
11110
0
0
0
1111
0
0
110
0
110
0
110
0
11
0
10
10
10
10
10
10
10
1
A
A
A + 1
A - 1
A - 1
A - 1
X
X
A + 1
A + 1
X
X
X
X
X
X
M
0
0
0
0
0
0
X
X
0
0
X
X
;;! xí í¡ X
: •: x
• x
so
0
0
0
111X
X
0
0
X
X
X
X
X
X
SI
0
0
0
111X
X
0
0
X
X
X
X
X
X
S2
0
0
0
111X
X
0
0
X
X
X
X
X
X
S3
0
0
0
111X
X
0
0
X
X
X
X
X
X
Cn
110
111X
X
0
0
X
X
X
X
X
X
M = O
- 245 -
ISZ-DSZ
0
0
10
l'l¡1¡X!x
x¡A ix ¡X i
x!
0
0
X
X
SO = SI = S2 = S3 = DSZ 4- F.
SO = SI = S2 = S3 = DSZ .
ISZ-DSZ
1ai0
1\'• w -
X
X
X
X
x /X
0
0
X
X
Cn = ISZ.F 4-
Cn = ISZ.F . F.Fi
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.F12
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 del nüíiltiplexer (S0 y Si ) ;
- 247
TO
0
0
0
0
1
1
1
1
TI
0
0
1
1
0
0
1
1
T2
0
1
0
1
0
1
0
1
§JL
X
0
0
X
1
X
X
X
Si Ciclo
X
0 T2
1 TI
X
1 TO
X
X
. X
1
1,
S 0 = TO
| Si - T~2
CONTROL DEL SELECTOR.- El trabaj iídel bloque denominado sei ;
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)
j r d e l a instrucciónj1 .
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
B ceros
A datos
Causa
T2 Generación de la dirección ce.
ro dorante una interrupción -1: '
(QITÍI) .¡lji
TI Instrucciones aritméticas cu-
yo bij: 5 = 0 (Q2A.T1 = Q) .
T2 Instrucciones ISZ y DSZ (Q6MI)i\n indirecta (Q6MI).
Las señales asociadas a cada eventq» vienen de la cadena der;
\icontrol, por lo que su intervenció!n asegura la acción co -l¡i
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
- 249 -
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:
las salidas adoptan el estado de las entra_
das A.
las salidas se ponen en un estado de alta
impedancia.
las salidas adoptan el estado de las entra_
das B.
las salidas se ponen en un estado de alta
impedancia.
Q6MI
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
s_
0
0
1
1
QIT1
0
0
0
0
1
1
1
1
0
0
0
0
1111
OE
0
1
0
1
Q
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
b5 OEm Sm
11o1-ooX
X
ooX
X
X
X
X
X
X
X
1X
11X
X
ooX
X
X
X
X
X
Q6MI-QITL1
Q-b5 1l"1,0
0
0
X
X
X
X
X
X
0
0
X
X
OEm = Q6MI.Q.QIT1 + Q6MI.b5.QITl
OEm = Q6MI.QIT1 (Q+b5)
OEm = Q6MI.QIT1 . Q2A.Tl.b5
'xX
X
1
^l jX
x/
X
X
X
X
0
0
X
X
Sijil = Q6MI
- 250 -
Byte más significante
Las selecciones en este caso son:
Entradas Paso de... Ciclo Causa
B ceros T2
B signo
TI
TO
TO
Generación de la dirección -
cero durante una interrup ~
ción (QITl).
Instrucciones aritméticas cu_
yo b5 = O (Q2A.T1 = Q).
Direccionamiento en página -
cero (bO = 0 , b6 = b7 = 0).
Direccionamiento relativo o
con registro índice (bO = O,
b6 4- b7 = 1) .
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 estcbs dos eventos actúan só-
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
A datos T2
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
0
0
0
0
1
1
1 •
1
Sm
0
0
1
1
0
n
i
i
Q2M
0
1
o
1
0
1
0
1
OEM
0
X
0
X
1
0
1
0
SM
oOEm-Sm
X Q2M 0 0 1
- -X X -0
XOEM = Q2M.OEm
X
- OEm-SmJ. _-•- ~ -v,-- •
Q2M 0 /'l fi¿\ x \ Vv N,.
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.
>\/
OE
M
ISM
be
7¿S
25
7
RE
1M
-Cbi
l del
sig
no)
DA
TO
S D
ES
DE
EL
TR
AN
CE
PT
OR
OE
M
SM
7A52
57O
Em
Sm
7ÍS
25
7
OEr
n
Sm
74S
257
RE
lm
QIT
i
Q2
M<J
b5 ÍI
R1
)I T
I*0
2A
U1
EO
Q6M
I
Fig
ura
7
.4-4
- 253 -
Q2M OErn C b8
0
0
0
0
0
0
0
0
11111111
0
0
0
0
11110
0
0
0
1111
0
0
110
0
110
0
110
0
11
BM
O
O
O
O
X
X
X
X
X
X
X
X
O
O
O
1
Q2M-©Em
C-b8 0
0
0
0
X
X
' Vv -X-s.
X
0
0
10
X
X
) X
X
BM = OEm.C.bB
BM = OEm.bS . b6.b7
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ü
- 254 -
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
Ninguna acción
Rotación a la izquierda
Rotación a la derecha
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
O .0 O
0 0 1
0 1 0
O l í
bO-b8
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
10
12
11
13
1 0 0
1 0 1
1 1 0
1 1 1
SO SI
o o
o o
o o
o o
0 o
0 1
1 O
1 1.
bO-b8
b9 0
0
0
0í i !Ui
0
0
SO = b O . b S
b9 0
0
0
0
0
l'l0
1
Sil = b0 .b9
/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í-
- 256 -
tulo I numeral 4) .
b!3 b!4 b!5
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
O
ooooooo11111111oooooooo11111111
oooo1111oooo1111oooo1111oooo1111
oo11oo11oo11oo11oo11oo11oo11oo11
o1o1o1o1o1o1o1o1o1o1o1o1o1o1o1o1
Salto
oooo111111oooo111o1oo1o1111oooo1
bl3-bl4-b!5
C-R 0
0
--ú
k l l
O i 1TL^• — *0
0•~ \-
ssV¡rí]KT
0
L °i0
J 1'T1 1
0^i
SAAL = blS.C.R + bl4.b!5.R +
bl4.b!5.C + bl3.b!5.R
bl3.bl4.bl5 + bl3.b!5.C
= bl5~(bl4 ,C+bl3.R) + b!5 .
(b!3.C+bl3.bl4+C.R+bl4.R)
= b!5(bl4.C+b!3.R) 4- b!5
(C(bl3+R) + b!4(b!3+R))
- bl5"(bl4.C+bl3.R) + bl5.
(b !4 .C) . (b !3 .R)
= b!5 (bl4.C+b!3.R) + b!5.
(bl4.C+b!3.R)
SAAL = b!5 © (b!4.C + b!3.R)
- 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-
i Ixer.
- 258 -
x:
Z_ b9 Saltar
0 0 O
0 1 1
1 0 1
1 1 O
SASKP = 2 ® b9
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 I N T T FP
02
ÜR1) b8
CK3
Figura:7.5-1
- 259 -
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_
O O
0 1
1 'O
1 1
Acción
Ninguna
Poner a 1 el biestable de Interrupciones
Poner a O el biestable de Interrupciones
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.
(IR:) bs(IRl) b9=f> CK
b9 INT
Figura 7 5-2
DECODIPICACION DE LAS DEMORAS DE EJECUCIÓN.-
íLas instrucciones con referencia a memoria y las de entra_, jj
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.
- 261 -
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
- 260 -
(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
(IRl) DOvSTA
[ln¿) 1_DA
CIR2) DOvSTA
\ Q2
^J
>DlvDS
~~y —
DLf-
Q5M ..
Q3 E/S ]P~^
Figura j7J. 5-4
DCF es una señal que se activar^ por una sola de las se-
Hcuencias planteadas por lo que ¡es posible asociarla con
la señal de control específica :l j
262 -
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.
DETECCIÓN DEPEDIDO PREVIO
AL CONTROL DE DEMORA DE EJECUCIÓN
AL CONTROL DEOPERACIONES
(CS)
T2A L>AL SELECTORDE REGISTROS
( I D
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
íy
LDA JMP
STA JSR
JSR 01
JMP DD
SKP LDA
DZ STA
DO ISZ
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
k £! b3_ b^
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
instrucción
J
ID
LDA
STA
- 264 -
De la tabla anterior se obtienen las siguientes ecuacio-
nes :
JSR = bl.b2.b3.b4 = bl+b2+b3+b4
J = bl.b2.b3
ID = bl.b2.b3
LDA = ST.b2
STA = bl.b?
= bl+b2+b3
= bl+b2+b3
= bl+b2
= 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
b5 b6 b7
Instrucciones
0 0 0
0 0 1
0 1 0
O l í
1 0 0
1 0 1
1 1 0
1 1 1
NIO
DÍA
DOA
DIB
DOB
DIC
DOC
SKP
NIO-CPU
DIA-CPU
DIB-CPU
DOB-CPÜ
DIC-CPU |
íDOC-CPU }
SKP-CPU r
A B C
0 0 0
1 0 0
1 0 0
0 1 0
0 1 0
0 0 1
0 0 1
0 ^ O O
DI DO SKP
0 X 0
1 0 0
O 1 0
1 0 0
0 1 0
1 0 0
0 1 0
0 0 1
DI = b5.b7 -í- b6 .b7 = b7 + bS.b6
DO = b7
SKP = b5 .b6 .b7 ¡
- 265
A
B
b5.b6.b7 + b5.b6.b7 = b5(b6 © b7)
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
C =
b60b5 + b6©b7
b5.b6.b7 + b5.bíT.b7 = b5{b6©b7)
- 266 -
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
267 -r
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. ifI,
- 268 -
TÍA
PLAQUETA DE CONTROLj iT2A T O A ' T 2 A '
TOD Q
74S175
30 O"RM2
9
2 5
3
nD Q
7 ¿517 5
30
RM2
9
7 12D Q
74S175
30
RM2
9
U N3r
K Q
7¿S112
J 29RMl '
1
6 12
5 11
K Q
74S1I2
T 29RMO
13
74SOO
RMO *
7¿SOO 7 4 S O O 7¿SOO
RMl RM2
TO
PLAQUETA DE DEEDDIFICACION ,I I
TÍA T2A To TOA1 T2A1
- 7
7¿517514 __
QRMl M
9
2
3
5
7AS17514 _
. 0RMl "*
9
7
6
12
74S17514 _
RMl U
9
U
11
2)
3
4
7AS112
T 1 3
RMO
1
61112
11
11
K q
74S112
T 13
RMO
13
7 4 S O O 7 A S O O
RMO 9 \ RMO RMl 11 RMl
TÍA'
PLAQUETA DE CONMUTADORES
T2A' TOA1 TO
TO ^ 6D Q
74S175
15_RM2 ^
9
2
3
5
12
11
7AS175
15 _Q
RM2 "
9
74S112
17RMO
7
6
7
9
12
TI
| 2
3
n o
7AS175
15-. Q
RM2
9
7¿5112
17
RM2
1C
11
6
5
12
11
T2A
7^5112
T 1 6RMO
13
71h
3
I1
74S112
T 16 QRMO
1
-
T2
Figura)£.2-1
- 269 -:
PLAQUETA DE CONMUTADORES
(Vista Posterior);
74265 74265 74265 74LS74 74LS175 74LS741 2 3 - 4 5 6
74LS08 74S74 7400 74SOO7 8 9 10
74LS10 74LS32 74LSOO11 12 13
7430 74S175 74S11214 15 16
74S112 74LS2017 18
7427 74S08 74LS74 74SOS: 74S10 74S10 74LSOO19 20 21 22 23 24 25
74S10 74SOO 74LS74 74SO¡0 74SOO 74SOO 74S13326 27 28 29 30 31 32
74S0233
740034
74S15335
-74S153- 36
74S15337
74S15338
930939
930940
7Í4ÍS7442
340443
340444
- 270 -
PLAQUETA DE CONMINADORES
Señales que vienen de:
Plaqueta de Control
Q5SQ2TQ6Q2E/STTADQRCSQ7IRQSQ6MII
Plaqueta de Decodificación
HALO?ED2EDIQIT2b_4 (IR2)DIBDÍAb6(IRl)b7b5(IRl)bl(IRl)b2b3rb7b4rb6b3 (IR2
Plaqueta de AL
P
Reloj Maestro
TORMORM2RM1
Plaqueta de luces
DA1DA 2DE
Conmutadores externos
STARTEXAMINEEXAM.NEXTCONTINUÉINST STEPSTOPRESETDEPOSITDEP.NEXTMR
Entrada y Salida'
QT
- 271
PLAQUETA DE CONMUTADORES
Señales que salen a
Plaqueta de Control
ANDSIEEACDHCDH
Plaqueta de Decodificación
RESETEAC
Plaqueta de AL
ECSO=S3SIS2MCn1RO(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)
„ 979 —¿. i ¿.
PLAQUETA
(Vista
74161
74S2602
74S2603
74LÜM 74S745
74LS086
74SOO7
74SOO8
74089
747410 11
741012
7425 74S260 74LS74 74SBE1 74S20 74LS10 74LS2013 . 14 15 iBi 17 18 19
20 7410 74S080 21 22
74S20 742027 28
74S02 •23 1
74S112 129 I
•4S74• 24
13175H30
7427925
742031
74LSOO26
74S0832
74LSOO 74SOO 74S13333 34 35
74LS21 74S74 7432 74S739 40 41 42|
7400 74S133 74SOO43 44 45
74SOO 74S10 74S20 74LS«| 74LS10 74S08 74S7446 47 4.8 49B¡ 50 51 52
74LS175 74SOO 74LSOO 74J27- 7474 74S260 74LS7453 54 55 5Í6 57 58 59
- 273 -
PLAQUETA DE JlpNTROL
Señales que vienen de:
Plaqueta de Conmutadores
ANDSIEEACDHDHC
Plaqueta de Decodificación
ID(IR2)bl2(!Rl)LDA ( IR1 }QIT2MSKODO .J(IR2)b5(lRl)bl(lRl)b2(IRl)b3+bO(IRl)SAJSR(IRl)STA(IRl)DCPDR
Plaqueta de AL
bO (TB)F (R-W)F(Q7I)
Reloj Maestro
Entrada y Salida
QT
Conmutadores externos
MR
TORMQRM1RM2RM2
Memoria
ACT
- 274 -
Señales que salen a:
Plaqueta de Conmutadores
CSTATDQRQ2E/SQ7IRQSQ6Q2TQ5SQ6MII
Plaqueta de Decodificación
Q6MSSCSTQ4TQ68Q2AQ3E/SEIR1EIR2
Plaqueta de AL
CK1Q6MIE (_26512) UALRE 2WE1QAQ2MQ, Q2AJSTQ7I
Memoria
CKMDRWRCICLO
Memoria
E (26S12)MT2AT2AT2A1
Barra de datos
b5b!5
Plaqueta de luces
CKC
PLAQUETA DE DECODIFICACION
(Vista Posterior)
74S02 7474 7420 74201 2 3 4
74S08 74S86 74LS20 74SOO 74LS175 74LS1755 6 7 8 9 1 0
74S260 74S10 74S112 74S175 74LS10 742711 12 13 14 15 16
7430 74S86 74S02 74SOO 74SOO 74LS02 74S26017 18 19 20 21 22 23
74LS21 74S10 74S08 74S11 7432 74LS08 74S2024 25 26 27 28 29 30
74LS21 9309 74LSOO31 32 33
74LS3-0 748634 35
74S11 74LS2036 37
74S74 74LS74 25S08 25S08 25S08 25S0838 39 40 41 42 43
- 276
PLAQUETA DE DE^JIFICACION
Señales que vienen de:
Plaqueta de Conmutadores
EACRESETCD
Plaqueta de Control
Q2AEIRlE IR 2Q3E/SQ4TQ68Q6MSCSTS
Plaqueta de AL
CRF(R-W)
Memoria
CE
Reloj Maestro
TORMORM1RM2
Conmutadores externos
Barra de datos
BOJ31B2B3B4_B5
MJ37B8B9B10BllB12B13B14B15
MR
277 -
PLAQUETA DE DECOffilGFICACION
Señales que salen a:
Plaqueta de Conmutadores
DÍAQIT256~{IR1)ET(IRl)b5(IRl)bl(IRl)b2(IRl)b7b4rb6(IRl)b3(IR2).DIBb4(IR2)EDIED2HALTb3r
Plaqueta de AL
S0(d)Sl(d)S0(l)Sl(l)ALWE2b5(lRl)
Entrada y Salida
QE
Plaqueta de Control
ID(IR2)b!2(IR1)LDA(IRl)MSKODOJ(IR2)b5(IRl)bl(IRl)b2(IRl)b3+bO(IRl)SAJSR(IRl)STA(IRl)DCFDRQIT2
Memoria
T2A1
PLAQUETA DE ARITMÉTICA Y LÓGICA
(Vista Posterior)
74S102
74SOO3
74S2604
74S205
74LS746
741727
74172 741729
7417211
7417212
7417213
7417214
74S0215
74S25716
743017
r-r-
18
7430 74S257 74S8619 20 21
7418222
74S25723
74S25724
930925
930926
74S7427
930929
930930
930932
930933
250634
250635
250636
250637
26S1239
930940
930941
26S1242
26S1243
279 f
PLAQUETA DE ARITME
Señales que vienen de:
Plaqueta de Conmutadores
ECSO=S3SIS2MCniRO(RSlo)IRl(RSli)1R2(RS12)2W/RO (RWS0)2W/R1 (RWSi )2W/R2 (RWS2)IWO(WSlo)1W1 (WSli )1W2(WS12)
Plaqueta de Control
QE(26S12)UALJSTQA __2GR(RE2)IGW(WEI)Q6MI .CK1Q2M
Q7'I
Plaqueta de Decodificación
S0(l)
S0(d)Sl(d)2GW(WE2)b5(IR1)AL . '
Conmutadores externos
ICA Y LÓGICA
Barra de datos
BO
B2_
üÍÜLB6.
B8~B9B10
B12B13B14B15
Reloj Maestro
RMOCK(74172)RM2TIRM1
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
CRF (R-W)
Plaqueta de luces
CM
Barra de direcciones
AlA2A3A4A5A6A7A8A9Al OAllA12A13A14A15
281 t.
SEÑALES ENTRE PLAQUETAS (VKta inferior)
123456789
10111213141516171819202122232425262728293031323334353637383940
GND AN11 VccMR EC
DEP.NEXT TODEPOSIT DS' RESET CD
P IESTOP HALT
INST STEPCONTINUÉ ED2
EXAM.NEXT EDIEXAMINE QIT2 -:
START b4 (IR2)1W2(WS12) DIBIWKWSlj ) RESETIWO(WSlo) EAC
2W/R2 (RWS2) RMO2W/RKRWS! ) DÍA
DH b6 (IRl)DHC b7 (IRl)
2W/RO (RWS0) RM21R2(RS12) b5(IRl)IRl (RSli ) bl (IRl)1RO(RS10) b2(IRl)
Q6M b3r(IRl)E b7 (IRl)D Q5S
DA2 Q2TDA1 Q6QS b4r(IRl)
Q7IR b6(IRl)Cn b3 (IR2)M Q2E/S
QTS2 TSI TA
SO=S3 DQRE(26S12)C CSE~(74116) RM1
GND Vcc
GND ANT2A'Vccb!5 Q6MST2A ID(IR2)T2A DS
1 Q7I IE: MR bO (TB)
- b5 b!2(IRl)CKC T2JST F (R-W)
! 11 LDA(IRl)EIR2 QIT2EIR1 MSKOQ3E/S DO
' Q EACQ2M J(IR2)QA F(Q7I)WE1 SRE2 DH
• E (26S12)UAL DHC; Q6MI b5 (IRl)
CK1 CSi Q2A bl (IRl)
Q68 b2 (IR1-)Q4T b3+bO (IRlQ6M TOQ5S CKMDRQ2T RMOQ6 RM1QS RM2
; Q7IR RM2; Q2E/S ACT
DQR SAT QTTA JSR(IRl)R STA( IRl)
; ; CICLO DCF, ; E(26S12)M CST3 W DR- GND Vcc
CONMUTADORES CONTROL
282 -
SEÑALES ENTRE PLAQUETAS (Vista inferior)
123456789
1011121314151617'1819202122232425262728293031323334353637383940
GNDT2A1S
CSTb3r (IRl)
RM2F (R-W)
HALTQ6MSED2EDI
b4 (IR2)DIB
RESETALWE2
S0(l)Sl(d)SO (d)
RC
BOBlB2_
CEVccDÍAID (IR2)Q2ACDMRbl2(!Rl)EIRlEIR2LDA ( IRl )QIT2MSKODOQ3E/SJ(IR2)Q4TQ68b6 (IRl)b7(IRl)b5(IRl)b5(IRl)bl (IRl)b2 (IRl)b3+bO(IRl)b7 (IRl)TO
B4 RMO135B6B7B8B9BIOBllB12B13B14B15GND
RMlb4r (IRl)b6(IRl)b3 (IR2)SAQEJSR(IRl)STA ( IRl )DCFEACDRVcc
GNDbO(TB)_ CM
F (R-W)F(Q7I)
RM1P
Q7IQ6MIALQ2A
b5 (IRl)TIQ2MCK1
1W2(WS12)1W1 (WSli )1WO(WS10)
2W/R2(RWS2)2W/Rl(RWSi)2W/RO(RWS0)1R2 (RS12)'IRl(RSli)IR O (RSlpj2GW(WE2)IGW(WEI)
CK(74172)RM22GR(RE2)
RMOQAR
CnMMRS2SI
SO=S^C
VccGND
ECVccQSl(l)S0(l)Sl(d).S0(d)E (26S12)UALJSTAlA2A3A4A5A6A7A8A9A10AllAl 2A13A14A15BO.BlB2_§1B4
liB9
DECODIFICACION
BIOBllB12B13B14B15
ARITMÉTICA Y LÓGICA
- '283 -
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 pah
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.i i
8.- Pruebas de ejecución de cadfeí una de las instrucciones• í i*
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_ii-
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 fjí
- Cálculo de N factorial. ¡i '
il- Cálculo de los números primes.
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 repetitivamente con un -
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.-
2.-
Para direccionamiento en página cero se utiliza un
solo número (que es la dirección) luego de la instruc_
ción correspondiente.
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 .
- 287 -
PROGRAMA PARA CALCULAR EL FACTORIAL DE UN NUMERO:
Se inicializa el programa con ' las siguientes acciones:
1.- Poner en las direcciones 200 y 210 de memoria el ñu-tí o
mero a calcularse.
2.- Poner en la dirección 1000 de memoria el númerotí .
177760 (-20-), es decir el número de pasos requeri-
do por la subrutina de multiplicación.
3.- Cargar el programa:
00001
00002
00003
00004
00005
00006
00030
00031
00032
00033
00034
00035
00036
00037
00040
00041
00042
00043
014020
000005
063077
063077
004030
000001
054050
024020
030021
034100
125203
101201
143220
175404
000034
125260
044021
002050
DSZ 20
JMP 5
HALT r
HALT
JSR
JMP
STA,1
LDA
LDA
LDA
A MOVR
•
¡ 30
1
3,50
; 1/20
2,21
3,100-•i
it 1,1, SNC
MOVR >j : 0,0, SKP¡3 •
ADDZR j' 2,0
INC j 3,3,SZR
JMP A
MOVCR 1 , 1
STA 1,21
JMPf 5°
- 288 !-
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
290
Foto #3: Plaqueta de Aritmética y Lógica
Vista Frontal
Foto #4: Plaqueta de Aritmética y Lógica
Vista Posterior
- 292 -
Foto #7: Plaqueta de Conmutadores
Vista Frontal
SK.Foto #8: Plaqueta de Conmutadores
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. iL 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 n ni : i r i i4 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)
- 298 -
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)