49
INTRODUCCIÓN Existen sistemas secuenciales demasiado complejos pa- ra poder implementarlos con las técnicas vistas hasta ahora, por ejemplo, el procesador MIPS posee 32 regis- tros de 32 bits, lo que lleva a un total de 2 1024 estados. En este tema veremos nuevas metodologías para imple- mentar algoritmos o computaciones sobre conjuntos de datos (vectores de n bits). En general constan de ope- raciones combinacionales más sencillas que se realizan secuencialmente. Ejemplos de dichos algoritmos son un sumador secuen- cial con un único FA o un multiplicador a partir de un sumador paralelo. Esta metodología es la que se emplea para la implemen- tación de los computadores digitales de propósito gene- ral. También se utiliza para implementar hardware específi- co para la computacóon de algoritmos concretos, sobre todo en campos tales como el tratamiento de señales, procesamiento de imágenes, etc. 1

INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

INTRODUCCIÓN

Existen sistemas secuenciales demasiado complejos pa-ra poder implementarlos con las técnicas vistas hastaahora, por ejemplo, el procesador MIPS posee 32 regis-tros de 32 bits, lo que lleva a un total de 21024 estados.

En este tema veremos nuevas metodologías para imple-mentar algoritmos o computaciones sobre conjuntos dedatos (vectores de n bits). En general constan de ope-raciones combinacionales más sencillas que se realizansecuencialmente.

Ejemplos de dichos algoritmos son un sumador secuen-cial con un único FA o un multiplicador a partir de unsumador paralelo.

Esta metodología es la que se emplea para la implemen-tación de los computadores digitales de propósito gene-ral.

También se utiliza para implementar hardware específi-co para la computacóon de algoritmos concretos, sobretodo en campos tales como el tratamiento de señales,procesamiento de imágenes, etc.

1

Page 2: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CONCEPTOS BÁSICOS

La especificación algorítmica de sistemas secuenciales implementaeficientemente algoritmos o computaciones que se realizan sobrevectores de datos de n bits. Son los llamados algoritmos RT (’Regis-ter Transfer’).

Una computación es un conjunto de operaciones más simples queconsiste en la transferencia de vectores entre registros. Durante lastransferencias se realizan las operaciones de suma, desplazamien-to, comparación, etc.

Esta nueva metodología divide la implementación en dos bloquesbásicos:

• Camino de datos, el conjunto de elementos que implementael almacenamiento de datos y las funciones de transformaciónde los mismos.

• Sección de control, el sistema secuencial o autómata quecontrola la transferencia y transformaciones de los datos asícomo el secuenciamiento y la operación de todo el sistema.

El esquema general se puede ver en la siguiente figura:

2

Page 3: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CONCEPTOS BÁSICOS

El camino de datos recibe los datos del exterior (entra-das o “Data Input”) y devuelve los resultados obtenidos(salidas o “Data Output”).

La sección de control recibe órdenes e información delexterior (“Control Input”, por ejemplo, reset , begin, stop,modo de operación...) y envía información u órdenes alexterior (“Control Output”, por ejemplo, end , done, over-flow ...).

Las condiciones son generadas por el camino de datosy sirven para que la sección de control pueda tomar de-cisiones y realizar un control dependiente de los datos.

Ejemplos de condiciones son el signo de un operando, elacarreo en una operación, un desbordamiento, el valorde un bit o una comparación, etc.

Los puntos de control son las señales necesarias pararealizar las transformaciones de los datos. Son genera-das por la sección de control e indican al camino de da-tos el modo de operación de todos y cada uno de suselementos.

Ejemplos de puntos de control son la carga de un regis-tro, los bits de control de un MUX o de DEMUX, el tipode operación de una ALU, el incremento de un contador,el desplazamiento de un registro, el sentido del despla-zamiento, la lectura o escritura en una memoria, etc.

3

Page 4: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CONCEPTOS BÁSICOS

El resultado de aplicar o activar cada uno de los puntosde control se denomina microoperación.

El conjunto de microoperaciones que se pueden reali-zar de forma concurrente (en paralelo) se denomina mi-croinstrucción. Cada microinstrucción determina o equi-vale a un estado del autómata de la sección de control.

Cada estado debe indicar que puntos de control hay queactivar en ese momento y cual es su estado (microins-trucción) siguiente, que en general dependerá de las con-diciones actuales del camino de datos.

El conjunto o secuencia de todas las microinstruccionesconstituye un microprograma y su objetivo es imple-mentar el algoritmo o computación requerido.

4

Page 5: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

Se encarga de almacenar y transformar los datos.

Consta de:

• Elementos de almacenamiento.

• Operadores.

• Buses.

Elementos de almacenamiento: almacenan la informa-ción. El componente básico es el registro de N bits.

• Registro de N bits con LOAD y CLEAR.

Operación: if LOAD then y←xif CLEAR then y←0

5

Page 6: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

RAM = conjunto de 2k registros de N bits que sólo pue-den accederse de uno en uno.

Operación: if READ then y←M[ϑ(A)] else y←0if WRITE then M[ϑ(A)]←x

siendo ϑ(A) =∑k−1

i=0Ai · 2i

Fichero de registros.

Operación: if READ then y←R[ϑ(A)] else y←0if WRITE then R[ϑ(A)]←x

6

Page 7: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

Otros elementos de almacenamiento: FIFO y LIFO

Operadores: se encargan de transformar los datos.

donde OP: ADD, SUB, MAX, MIN, ...AND, OR, NOR, EXOR, ...SHIFT, ...

OP también puede representar una función más compleja imple-mentada con sistemas secuenciales (multiplicadores, divisores, ...).

Los operadores generan algunas condiciones: >, <, =, carry, over-flow, ...

7

Page 8: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

Buses: son las conexiones, junto con los switches necesarios, quecomunican los distintos elementos del camino de datos (registros yoperadores).

Se clasifican en:

• Paralelos/Serie

• Unidireccionales/Bidireccionales

• Dedicados/Compartidos

• Directos/Indirectos

8

Page 9: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

Switches: establecen o cortan el acceso al bus.

• Unidireccionales

• Bidireccionales

9

Page 10: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

Selector: selecciona una de entre varias fuentes de da-tos (MUX).

Distribuidor: selecciona uno de entre varios destinos dedatos (DEMUX).

10

Page 11: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

CAMINO DE DATOS

Ejemplos de buses:

• Crossbar

• Bus compartido

◦ Usando un selector.

◦ Usando registros con salida triestado.

11

Page 12: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Es el sistema secuencial o autómata que al activar los puntos decontrol en el orden adecuado controla las transferencias y transfor-maciones de los datos que tienen lugar en el camino de datos y queimplementan un algoritmo específico.

Cada estado o microinstrucción de la sección de control indica quépuntos de control se activan en cada momento (salidas del autóma-ta) y, en función de las condiciones (entradas del autómata), cual esel estado o microinstrucción siguiente.

La sección de control también se puede representar mediante undiagrama de flujo.

Existen diversos métodos para implementar una sección de control:

1. Tablas de estado.

2. Elementos de retardo.

3. Microprogramación.

Tablas de Estado

• Es la metodología que ya se ha explicado.

• Es compleja, dificil de depurar, no es modular ni flexible y esdificil realizar modificaciones (no hai una relación evidente entrela implementación y el algoritmo).

• Su uso es poco frecuente.

• Se denomina “Lógica Aleatoria”.

12

Page 13: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Elementos de retardo

• Implementación sencilla y directa.

• Alta velocidad pero con un alto coste hardware.

• Se utiliza en sistemas relativamente pequeños.

• Cada estado se implementa con un biestable tipo D.

• Exiten equivalencias entre un autómata, un diagrama de flujo yla implementación mediante elementos de retardo.

⇔ ⇔

⇔ ⇔

13

Page 14: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Los puntos de control que se activan en cada estado se sacan de lasalida del biestable correspondiente.

Para activar un punto de control en dos o más estados:

14

Page 15: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Ejemplo: implementación con elementos de retardo

Autómata Diagrama de Flujo

15

Page 16: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Ejemplo (cont.): implem. con elementos de retardo

16

Page 17: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Ejemplo (cont.): implem. con elementos de retardo

17

Page 18: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Microprogramación

• La implementación es sencilla y estándar.

• El hardware es casi independiente de la implemen-tación.

• Es muy flexible y versátil.

• Fácil de depurar, modificar y ampliar.

• Su funcionamiento es relativamente lento debido alos accesos a la memoria de control.

• Apta para sistemas grandes y/o complejos.

18

Page 19: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Microprogramación

• Una de las implementaciones más sencillas:

19

Page 20: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Memoria de control

• Almacena la información de control necesaria paraejecutar el algoritmo.

• Su tamaño viene dado por el número de microins-trucciones (2k) del microprograma por el número debits por microinstrucción (m).

• Se puede implementar con una ROM, PROM o RAM.

Contador de microprograma (µPC)

• Direcciona la memoria de control para seleccionar lasiguiente microinstrucción (µI).

20

Page 21: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Registro de microinstrucciones (MIR)

• Almacena la µI que se está ejecutando actualmente.

• Ejemplo de formato doble para codificar las µI:

1. Para instrucciones de salto:

◦ El bit más significativo a cero.

◦ El campo condición indica la condición a verificar.

◦ El campo dirección de salto codifica la dirección de lasiguiente µI a ejecutar si la condición es cierta.

2. Para puntos de control:

◦ El bit más significativo a uno.

◦ Los puntos de control pueden estar codificados (micro-programación vertical) o no (microprogramación horizon-tal).

21

Page 22: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

El funcionamiento o secuenciamiento puede realizarse de diferentesformas. Una de las más sencillas:

• a: generación de la dirección siguiente = el µPC se incrementa(ejecución de la siguiente µI) o se carga una nueva dirección(salto).

• b: se direcciona la memoria de control = lectura de la µI co-rrespondiente.

• c: carga de la µI direccionada en el MIR.

• d: ejecución de la µI, dos posibilidades:

1. Activación de los puntos de control y desactivación del MUXde condiciones⇒ El µPC se incrementa.

2. Selección en el MUX de la condición a verificar. Si se cumplela salida del MUX = 1⇒ el µPC se carga con la direcciónespecificada en la µI.

22

Page 23: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Ejemplo de sección de control microprogramada

23

Page 24: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SECCIÓN DE CONTROL

Ejemplo de sección de control microprogramada (cont.)

24

Page 25: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Algoritmo 0 (alto nivel): realiza la operación pero no tie-ne en cuenta la sincronización con el exterior.

Cargar A

Cargar B

Borrar C

for I=1 to n

{Di ← Ai ⊕ Bi ⊕ CC ← Ai ·Bi + (Ai ⊕ Bi) · C

}

25

Page 26: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Algoritmo 1: introduce la sincronización con el exterior mediantedos señales:

1. Control Input: start , indica cuando comenzar la operación.

2. Control Output: done, indica cuando ha finalizado. Mientras es-ta señal esté a cero no puede comenzarse una nueva opera-ción.

También se identifican las entradas y salidas utilizadas:

1. Data Inputs: A, B

2. Data Outputs: D

WAIT: dodone ← 1

while (start)done ← 0

------------------------------Cargar ACargar BBorrar Cfor I=1 to n{

Di ← Ai ⊕ Bi ⊕ CC ← Ai ·Bi + (Ai ⊕ Bi) · C

}

------------------------------goto WAIT

26

Page 27: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Una vez identificadas las líneas de conexión con el exte-rior empezaremos por diseñar un camino de datos capazde realizar el algoritmo:

1. Se identifican las unidades de almacenamiento y ope-radores necesarios:

• A, B y D: registros de n bits.

• C, done: biestables (registros de 1 bit).

• 1 FA.

• 1 Contador + 1 Comparador.

2. Se establecen las conexiones entre los elementosdel camino de datos identificados y se determinanlos puntos de control necesarios (existen diferentesalternativas).

27

Page 28: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Camino de datos (alternativa 1)

28

Page 29: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Algoritmo 2: introduce los puntos de control (microoperaciones)

WAIT: doPreset

while (start)ClearLOADA

LOADB

CLEARC

for I=1 to n{

SHIFTD

LOADC

SHIFT A

SHIFT B

}goto WAIT

Existen microoperaciones que pueden realizarse simultaneamente(p.e. LOADA y CLEARC), por lo que ambos puntos de controlpueden activarse simultaneamente y formar una microinstrucción.

Por el contrario hay puntos que no se pueden activar simultanea-mente (p.e. LOADA y LOADB), por lo que formaran microinstruc-ciones diferentes.

29

Page 30: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Algoritmo 3: se identifican las operaciones simultaneas(se reduce el número de microinstrucciones necesarias).

WAIT: doPreset

while (start)Clear || LOADA|| CLEARC

LOADB

for I=1 to nSHIFTD || LOADC|| SHIFT A|| SHIFT B

goto WAIT

30

Page 31: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

El último paso consiste en eliminar las estructuras de control com-plejas (bucles WHILE, FOR, etc.) remplazándolas por saltos condi-cionales (if ) o incondicionales (goto).

dooperación

while (x)

pasaría a ser:

LOOP: operaciónif (x) then goto LOOP

for I=1 to noperación

pasaría a ser:

CLEARI

LOOP: operación || INCI

if (I<n) then goto LOOP

31

Page 32: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Algoritmo 4: se substituyen las estructuras complejas por sus mi-croinstrucciones equivalentes activando en paralelo los puntos decontrol que lo permitan.

WAIT: S0: Presetif (start) then goto WAITS1: Clear || LOADA|| CLEARC|| CLEARI

S2 : LOADB

LOOP: S3: SHIFTD || LOADC|| SHIFT A|| SHIFT B||INCI

if (I<n) then goto LOOPgoto WAIT

32

Page 33: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

El algoritmo puede expresarse también mediante un au-tómata o diagrama de flujo.

33

Page 34: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

El camino de datos que implementa una computación noes único. Otra posibilidad:

34

Page 35: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Algoritmo 4 bis: sólo cambian los puntos de control que se activanen S3

WAIT: S0: Presetif (start) then goto WAITS1: Clear || LOADA|| CLEARC|| CLEARI

S2 : LOADB

LOOP: S3: SHIFTD || LOADC|| INCI

if (I<n) then goto LOOPgoto WAIT

35

Page 36: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Implementación de la sección de control: elementos deretardo.

36

Page 37: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Implementación de la sección de control: elementos deretardo.

37

Page 38: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Implementación de la sección de control: microprogra-mación.

38

Page 39: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

SUMADOR SECUENCIAL

Implementación de la sección de control: microprogra-mación.

39

Page 40: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

29EJERCICIOS9.1. Es ribe el mi ro �odigo de la memoria ROM de la se i�on de ontrol de un sistemaque realiza el algoritmo que se expone a ontinua i�on, indi ando los valores de lasentradas del multiplexor de sele i�on de salto.INICIO : a tivar PRESETif empieza goto INICIOa tivar LOADR y CLEARTEST : if z1z0 = 10 goto BUCLEelse if z1z0 = 01 goto CORRECCIONelse a tivar DESPLAZARBUCLE : a tivar INCREMENTAa tivar RESTA y LOADDif I < n goto BUCLEgoto INICIOCORRECCION : a tivar SUMA y LOADRgoto TEST9.2. Dado el aut�omata de la �gura dise~na su orrespondiente unidad de ontrol mi ro-progamada ompleta.

S5

S0

S1

S2

start

c

z

S4

S3

I>n

start

z

I<n

c

{C , C , C }0 1 2

{C , C }1 3

{C , C }4 6

{C , C }2 7

{C }8

{C }5

Page 41: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

30 TEMA 9. ESPECIFICACI �ON ALGOR�ITMICA DE SISTEMAS SECUENCIALES9.3. La siguiente �gura representa una unidad de ontrol implementada on elementosde retardo. Extrae su aut�omata de ontrol e implem�entalo mediante la t�e ni a de ontrol mi roprogramado.DQ

DQ

DQ

DQ

3

3

DQ

4

4

DEMUX1 a 4

DQ

5

5

DEMUXstart

1 0

DEMUX1 a 2

1 a 2

0

0

1

1

2

2

C0

C1

CLK

Preset

I>n

Clear

C4,C6

C2,C7

C3

00 01 10 11

0 1

X

Y

C59.4. Dise~na una unidad de ontrol mi roprogramada ompleta orrespondiente al algo-ritmo siguiente que realiza la multipli a i�on entre dos n�umeros naturales X e Y de uatro bits, teniendo en uenta el amino de datos de la �gura. Cal ula tambi�en u�al es la mejor se~nal de reloj para sin ronizar el sistema, teniendo en uenta lossiguientes datos: tiempo de estabiliza i�on de los registros y ontadores 10ns, tiempode retardo en el sumador de 4 bits 30 ns, tiempo de retardo en el omparador y enlos multiplexores 20 ns, tiempo de a eso a la memoria 90 ns. arga X arga YAC = 0for i = 1 to YAC = AC plus Xend 4 bitsSUM

inCCout4 bitsSUM

inCCout

LOADRexistro X

LOADRexistro Y

A<B A>BA=B

A B

COMP

LOADRexistro S

LOADRexistro ACH

CLEARRexistro ACL

CLEAR

LOAD

COUNT

CLEAR

4bits

0

0

RELOXOLX LY CON

CC

LS

CAC

BUS DE ENTRADA

0

4

4 4

4 4

4

44

44

4

4

8

4

Q

D

BUS DE SAÍDA

LAC

CONT

FIN

A<B A=B A>B

Page 42: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

9.5.          Obter  o  autómata de  control  e  deseñar  a  unidade de  control microprogramada  completa  que implemente o algoritmo seguinte:

INICIO: activar READYIF           goto INICIO

BUCLE: activar OK, STARTINGIF end goto ESPERARELSE

activar OK, SELECTIF input = 00

activar PROCESSINGELSE IF input = 01

activar INITIATINGactivar PROCESSINGactivar DONE

ELSE goto RECUPERAREND IFgoto BUCLE

ESPERAR: activar WAIT, CHECKIF             goto ESPERARgoto INICIO

RECUPERAR: activar FAULTIF          

activar WAIT, RESTORINGgoto ESPERAR

END IFgoto BUCLE

start

ready

ready

Page 43: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

S0

S1

S2

S4

S5

start

start

{READY}

{OK, STARTING}

{OK, SELECT}

{PROCESSING}

{INITIATING}

S6

S7

end

i1i0=00

S3

i1i0=01

end

S8

S9

ready

ready

ready

i1i0=10OR

i1i0=11(i1=1)

{PROCESSING}

{DONE}

{WAIT, CHECK}

{FAULT}

{WAIT, RESTORING}

INICIO:

BUCLE:

ESPERAR:

RECUPERAR:

Temos:

     11 puntos de control     10 microinstruccións de activación     5 condicións no MUX     12 instruccións de salto

9.5. Autómata de Control:

ready

Page 44: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

9.5. Diagrama de Fluxo:

S0

start si

S1

no

endno

S2

i1i0=00

S3 i1i0=01

si

no

S4

S5

S6

S7

S8

S9

no

no

si

si

si

no

si

{READY}

{OK, STARTING}

{OK, SELECT}

{PROCESSING}

{INITIATING}

{PROCESSING}

{DONE}

{WAIT, CHECK}

{FAULT}

{WAIT, RESTORING}

ready

ready

Page 45: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

9.5. Implementación con Elementos de Retardo:

S0Pr

S1Cl

S2Cl

S3Cl

S4Cl

S5Cl

S6Cl

S7Cl

S8Cl

S9Cl

DEMUX1 a 2

0 1

DEMUX1 a 2

0 1

DEMUX1 a 2

0 1

DEMUX1 a 2

0 1

DEMUX1 a 2

0 1

DEMUX1 a 2

0 1

READY

STARTING

OK

SELECT

PROCESSING

INITIATING

DONE

RESTORING

CHECK

WAIT

FAULT

PRESET

CLOCK

START

CLEAR

END

i1i0 = 00

i1i0 = 01

READY

Page 46: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

9.5. Unidade de Control Microprogramada:

ROM

(32 x 12)

CONTADOR MICROPROGRAMA CLK

1

LOAD

INCR

STROBE

    MUX8 a 1

12

3

startend

readyi1i0 = 00i1i0 = 01

5

5

REG. MICROINSTRUCCIONES

RE

AD

YO

KST

AR

TIN

GSE

LE

CT

PRO

CE

SSING

INIT

IAT

ING

DO

NE

WA

ITC

HE

CK

FAU

LT

RE

STO

RIN

G

1   1   0   0   0   0   0   0   0   0   0   00   0   0   1   x   x   x   0   0   0   0   01   0   1   1   0   0   0   0   0   0   0   00   0   1   0   x   x   x   0   1   1   1   01   0   1   0   1   0   0   0   0   0   0   00   1   0   0   x   x   x   0   1   0   0   00   1   0   1   x   x   x   0   1   0   1   00   0   0   0   x   x   x   1   0   0   0   11   0   0   0   0   1   0   0   0   0   0   00   0   0   0   x   x   x   0   0   0   1   01   0   0   0   0   0   1   0   0   0   0   01   0   0   0   0   1   0   0   0   0   0   01   0   0   0   0   0   0   1   0   0   0   00   0   0   0   x   x   x   0   0   0   1   01   0   0   0   0   0   0   0   1   1   0   00   0   1   1   x   x   x   0   1   1   1   00   0   0   0   x   x   x   0   0   0   0   01   0   0   0   0   0   0   0   0   0   1   00   0   1   1   x   x   x   1   0   1   0   00   0   0   0   x   x   x   0   0   0   1   01   0   0   0   0   0   0   0   1   0   0   10   0   0   0   x   x   x   0   1   1   1   0

00000

00001

00010

00011

00100

00101

00110

00111

01000

01001

01010

01011

01100

01101

01110

01111

10000

10001

10010

10011

10100

10101

.   .   .

INICIO:

BUCLE:

ESPERAR:

RECUPERAR:

activar READYIF start goto INICIOactivar OK, STARTINGIF end goto ESPERARactivar OK, SELECTIF i1i0 = 00 goto 8IF i1i0 = 01 goto 10goto RECUPERARactivar PROCESSINGgoto BUCLEactivar INITIATINGactivar PROCESSINGactivar DONEgoto BUCLEactivar WAIT, CHECKIF ready goto ESPERARgoto INICIOactivar FAULTIF ready goto 20goto BUCLEactivar WAIT, RESTORINGgoto ESPERAR

Page 47: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

[Examen TC Septiembre'2005]

Deseñar a unidade de control microprogramada completa do seguiente algoritmo:

INICIO: activar PREPARADOIF         GOTO INICIO

activar INICIALIZANDOBUCLE_TIEMPO: activar CALCULAR_INSTANTE

activar INICIALIZAR1, INICIALIZAR2, INICIALIZAR3IF x1x0 = 11

activar PROCESAR1ELSE IF x1x0 = 01

activar PROCESAR2activar DONE

ELSEIF parar

activar FINALIZARGOTO INICIO

END IFEND IFGOTO TESTGOTO BUCLE_TIEMPO

TEST: activar PONER_A_CEROBUCLE_TEST: activar ACUMULAR

IF   parar  activar FINALIZARGOTO INICIO

END IFactivar COMPARARIF                       GOTO BUCLE_TESTGOTO BUCLE_TIEMPO

empezar

converge

Page 48: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

S0

S3

S5

S6

empezar

empezar

{PREPARADO}

{INICIALIZAR1,   INICIALIZAR2,   INICIALIZAR3 }

{FINALIZAR}

{DONE}

S7

X1X0=11

S4

S10

S11

parar

converge

(X1X0=00 AND parar)OR

(X1X0=10 AND parar)                                (X0=0 AND parar)

{PROCESAR2}

{PONER_A_CERO}

{ACUMULAR}

INICIO:

BUCLE_TIEMPO:

TEST:

BUCLE_TEST:

Temos:

     13  puntos de control     12  microinstruccións de activación       5  condicións no MUX       7  instruccións de salto

[Examen TC Septiembre'2005] Autómata de Control:

parar

S1{INICIALIZANDO}

S2{CALCULAR_INSTANTE}

{PROCESAR1}

X1X0=01

S8

S9

{FINALIZAR}

{COMPARAR}

converge

Page 49: INTRODUCCIÓN - QueGrande.orgquegrande.org/apuntes/EI/1/TC/teoria/09-10/e...formas. Una de las mÆs sencillas: a: generación de la dirección siguiente = el PC se incrementa (ejecución

ROM

(32 x 14)

CONTADOR MICROPROGRAMA CLK

1

LOAD

INCR

STROBE

    MUX8 a 1

14

3

empezarparar

convergex1x0 = 11x1x0 = 01

5

5

REG. MICROINSTRUCCIONES

PRE

PAR

AD

OIN

ICIA

LIZ

AN

DO

CA

LC

UL

AR

_INST

AN

TE

INIC

IAL

IZA

R1

INIC

IAL

IZA

R2

INIC

IAL

IAR

3PR

OC

ESA

R1

PRO

CE

SAR

2D

ON

EFIN

AL

IZA

RPO

NE

R_A

_CE

RO

activar PREPARADOIF empezar goto INICIOactivar INICIALIZANDOactivar CALCULAR_INSTANTEactivar INIC1, INIC2, INIC3IF x1x0 = 11 goto 9IF x1x0 = 01 goto 11IF parar goto 14goto TESTactivar PROCESAR1goto TESTactivar PROCESAR2activar DONEgoto TESTactivar FINALIZARgoto INICIOactivar PONER_A_CEROactivar ACUMULARIF parar goto 14activar COMPARARIF converge goto BUCLE_TESTgoto BUCLE_TIEMPO

AC

UM

UL

AR

CO

MPA

RA

R

[Examen TC Septiembre'2005] Unidade de control micropogramada:

00000

00001

00010

00011

00100

00101

00110

00111

01000

01001

01010

01011

01100

01101

01110

01111

10000

10001

10010

10011

10100

10101

.   .   .

INICIO:

BUCLE_TIEMPO:

TEST:

BUCLE_TEST:

  1   1   0   0   0   0   0   0   0   0   0   0    0   0

  1   0   1   0   0   0   0   0   0   0   0   0    0   0  1   0   0   1   0   0   0   0   0   0   0   0    0   0  1   0   0   0   1   1   1   0   0   0   0   0    0   0

  1   0   0   0   0   0   0   1   0   0   0   0    0   0

  1   0   0   0   0   0   0   0   1   0   0   0    0   0  1   0   0   0   0   0   0   0   0   1   0   0    0   0

  1   0   0   0   0   0   0   0   0   0   1   0    0   0

  1   0   0   0   0   0   0   0   0   0   0   1    0   0  1   0   0   0   0   0   0   0   0   0   0   0    1   0

  1   0   0   0   0   0   0   0   0   0   0   0    0   0

  0   0   0   0   x   x   x   x   x   0   0   0    0   0

  0   0   0   0   x   x   x   x   x   1   0   0    0   0

  0   0   0   0   x   x   x   x   x   1   0   0    0   0

  0   0   0   0   x   x   x   x   x   1   0   0    0   0

  1   0   0   0   0   0   0   0   0   0   0   0    0   1

  0   0   0   1   x   x   x   x   x   0   0   0    0   0

  0   1   0   0   x   x   x   x   x   0   1   0    0   1  0   1   0   1   x   x   x   x   x   0   1   0    1  1  0   0   1   0   x   x   x   x   x   0   1   1    1   0

  0   0   1   0   x   x   x   x   x   0   1   1    1   0

  0   0   1   1   x   x   x   x   x   1   0   0    0   1  0   0   0   0   x   x   x   x   x   0   0   0    1   1