UNIDAD DE CONTROLDe manera particular quiero dejar mi expreso reconoci-miento al Ing. H. Jacobson,...

335
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

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 !

-4,

Z . Cero

I No cargar en un acumuladolr ni en el link

$ Direccionamiento Indirectp

S:

Í N D I C E •

PROLOGO ! ; . . . - I

CAPITULO I: INTRODUCCIÓN

1. - Función \í 1

2 . - Organización del Sistema . . . . j; 4

i !¡

3.- Instrucciones y Oireccionamierito 9

4.- Formato de Instrucciones y Códigos de Operación. 13

5.- Unidades de Memoria y Entrada: y Salida vistas

desde el control i 39: ; h|

6 . - Criterios de diseño •. 41

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

Y LÓGICA ,

1. - Función i : 43

2.- Representación Numérica , 44

3.- La-: suma binaria y el principio de "llevada

anticipada" . . . . , ; 57

4.- Circuitos utilizados. Características princi-

pales de funcionamiento 66

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

1.- Introducción '. 75

2.- Disposición de los Registros 74172 76

3.- Utilización del Generador de Funciones 2506 .... 77

4.- Desplazador 79

5. - Link 82

6.- Sensor de resultados 87

CAPITULO IV: DESCRIPCIÓN DEL CONTROL

1.- Función 89

2.- Control Cableado y Microprogramado 90

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

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

poliducto) \. 106

CAPITULO V: DISEÑO DEL CONTROL

1.- Transferencias entre registros y AHPL 134

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

instrucciones í 142

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

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

ticas y Lógicas !, 153

5.- Cadena de control para las instrucciones con

Referencia a Memoria ; 156

Cadena para direccionamiento ¡indirecto 159(•

6.- Cadena de control para las instrucciones de

Entrada y Salida 166

7 . - Instrucciones con sobrepaso .<< 171

8.- Interrupciones al Programa 175

9.- Señales de demora en las Fasejs de Traída y\n • 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 MIS PADRES

Y

HERMANOS

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

Valorar en su verdadera magnitud el inmenso aporte reci-i

bido de mis padres maestros, en la formación material

y espiritual, a lo largo de toda mi carrera estudiantil,

es una tarea difícil y compleja.

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

nocimiento a la'Escuela Politécnica Nacional, donde se

afirmó mi personalidad y en la que encontré los medios

de ser un hombre útil a la sociedad.

alto a quienes fueron mis profesores

desde las aulas primarias hasta las universitarias; y a

todos los compañerojs que compartieron los mismos anhe -|"

los e inquietudes. !

De manera particulajn quiero dejar mi expreso reconoci-

miento al Ing, H. JJacobson, quien sugirió y dirigió i-

nicialmente la elaboración de la presente tesis. Fue

su enorme capacidad de trabajo y su gran calidad hu -

mana el mejor estímulo durante el desarrollo teórico

de este trabajo. Al Ing. Alfonso Espinosa, director

de tesis, quien apoirtó puntos de vista muy valiosos

en la realización de la parte escrita y no escatimó

esfuerzo alguno para asesorar este trabajo.

],•Agradezco además al' Sr. Alfredo Linz B., quien realizó

la tesis "Unidad de Memoria para una Minicomputadora" y

compartió con extremada responzabilidad el trabajo con-

junto en la fase experimental.

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

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

das .

Un agradecimiento especial a los companeros del Departa_

mentó de Electrónica cuyo estímulo permanente hizo posj.

ble la consecución de este trabado.

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

ca. Además, se explican las principales características

de los circuitos dé la Unidad Aritmética y Lógica.

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

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

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

la máquina, se discute brevemente las diferencias entre

el control "cableado:" y "microprogr amado" y se establece

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

ducto.

!;-En el capítulo V se} hace una rápida revisión de AHPL con

P'el fin de utilizarlo posteriormente en la descripción de

decisiones y transferencias. Se desarrolla el diseño'

del control cableado para las fases de traída y ejecu

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

trol de interrupciones.

Al final de este caipítulo se presenta el programa de con_

trol, escrito en AHSPL, para todas las instrucciones imple

mentadas. ,:

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

la función de los diversos interruptores operacionales y

además desarrolla su diseño.

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

ciones y en general todos los procesos que de alguna mane_

ra pueden desarrollarse con redes combinacionales.

En el capítulo VIII se detallanfflas pruebas experimenta-

les realizadas, incluyéndose unjMde los programas utili-

zados para las pruebas de sufic^ncia. Se anotan tam

bien las conclusiones finales.

ABREVIATURAS Y SÍMBOLOS

UTILIZADOS EN ESTA TESIS

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

decodi cicación.

A

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 ,

2

I

$

Cero

No cargar em ur|¡ acumulac

DireccionamMenlío Indirec

Í N D I C E

PROLOGC I

CAPITULO I: INTRODUCCIÓN

1. - Fur ción ; 1

2 . - Organización del Sistema 4

3.- Instrucciones y¡Direccionamiento 9

4.- Formato de Instrucciones y Códigos de Operación. 13

5.- Unidades de Memoria y Entrada y Salida vistas

deí de el control 39

6. - Criterios de diseño 41

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

Y LÓGICA

1. - Función ii 43

2. - Representación Numérica . . . 44

3.- La:suma binaria |*y el principio de "llevada

anticipada" . . . 57

4.- Circuitos utilizados. Características princi-

pales de funcionamiento 66

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

1.- Introducción 75

2.- Disposición de los Registros, 74172 76

3.- Utilización del Generador de Funciones 2506 .... 77

4 . - Desplazador 79

,:ik 82

6.- Sensor de resultados 87

CAPITULO IV: DESCRIPCIÓN DEL CONTROL

' 1.- Función 89

2.- Control Cableado y Microprogramado 90

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

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

poliducto) 106

CAPITULO V: DISEÑO DEL CONTROL

1.- Transferencias entre registros y AHPL 134

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

instrucciones 142

3.- Cadena de control para la Fase de Traída 148

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

ticas y Lógicas , 153

5.- Cadena de control para las instrucciones con

Referencia a Memoria : 156

Cadena para direccionamiento indirecto 159

6.- Cadena de control para las instrucciones de

Entrada y Salida 166

7.- Instrucciones con sobrepaso 171

8 . - Interrupciones al Programa 175

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

Ejecución 182

10.- Programa de control 18:

CAPITULO VI: PANEL DE CONTROL ;

1.- Descripción 193

m

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

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.

Y o i o o i

a v a l a n v i i a a

- 43 -

CAPITULO II

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

1.- FUNCIÓN

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

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

bre los datos transferidos al procesador desde la 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:

74)

C13 P12 G12

C14 P13 G13

C15 P14 G14

C16 P15 G15

t

GG3.

f L

GP3

JControl

U)

Figura 2.3-1

- 64 -

C8 = GC2 = GG2 + GC3GP2

C4 = GC1 = GG1 + GC2GP1

CO = GCO = GGO + GC1GPO

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

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

Para hacer un estudio de las demoras introducidas con este

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

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

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

ra unidad de carry look-ahead para formar GG3 experimenta-

rá otra demora de 2At ya que todas las ecuaciones son de -

segundo orden. La generación de GC1 a través de la segun-

da unidad de carry look-ahead introduce una demora adicio-

nal de 2At.

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

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

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

cional representa un aumento considerable en la velocidad.

Para palabras de mayor longitud se procede en forma simi-

lar aumentando los niveles de llevada anticipada.

Mientras mayor es la longitud de la palabra, mayor será -

el ahorro del tiempo de ejecución comparado con un suma -

dor convencional (ripple-carry).

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

.

rN

V O I 9 O 1

a v a i N n

V O I Í 3 W . L I H V

i a a c u a s i

n ¿e i <j v o

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.

oa

ovsv

9a

av

¿s

¿v

ea

sv

se

sv

s oi

v na

uv

na

zi

v cí

a CL

V ?i

a 7i

v si

a si

v

. - 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).

FO Fl F2 F3 F4 F5 F6 F7 . F8 F9 SILO Fll F12 F13 F14 F15

Y Y

R

Figura 3.6-1

i o x a N o D ifli a

AI üa a ¿n i d v o

- 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

^w

-v^

o H en td 55 OO

£-=

o td -\— O 2¡ i-3

H a o

O tr1

: - 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

C A P I T U VI

P A N E L DE C HfN O? R O L

- 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

%

\

td o o o H

O H

H O H O fií

H H

- 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.

- 220 -

Q2T

(IRl)r STA

( IR l ) r JL

QB

O

T2A'

TI

Q2T

Figura 1 2-1

CICLO

- 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-

- 232 -

r-\

r-

td

en•H

- 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 ) ;

25cs

=os

u

¿q g

q(T

ai)

q.z

*z

60

C6

qci

qzi

qoi

»ci

*¿i

- 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)

x x a á x 3 s Y a a: n H

IIIA o ü n x i d Y o

- 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

Foto #5: Plaqueta de Control

Vista Frontal

Foto # 6: Plaqueta de Control

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)

rk

A N E X O 1

PLAQUETA DE ARITMÉTICA Y LÓGICA