introducciÓn - quegrande.orgquegrande.org/apuntes/ei/1/tc/teoria/09-10/e...formas. una de las mÆs...
TRANSCRIPT
![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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/47.jpg)
[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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081615/5fdd4f4f4aac9e3c1b731618/html5/thumbnails/49.jpg)
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