• No se han encontrado resultados

INTRODUCCIÓN. Ejemplos de dichos algoritmos son un sumador secuencial con un único FA o un multiplicador a partir de un sumador paralelo.

N/A
N/A
Protected

Academic year: 2021

Share "INTRODUCCIÓN. Ejemplos de dichos algoritmos son un sumador secuencial con un único FA o un multiplicador a partir de un sumador paralelo."

Copied!
49
0
0

Texto completo

(1)

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.

(2)

implemen-CONCEPTOS BÁSICOS

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

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

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

Camino de datos, el conjunto de elementos que implementa

el almacenamiento de datos y las funciones de transformación de los mismos.

Sección de control, el sistema secuencial o autómata que

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

(3)

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 del

exterior (“Control Input”, por ejemplo, reset, begin, stop,

modo de operación...) y envía información u órdenes al

exterior (“Control Output”, por ejemplo, end, done,

over-flow...).

Las

condiciones son generadas por el camino de datos

y 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, el

acarreo en una operación, un desbordamiento, el valor

de un bit o una comparación, etc.

(4)

CONCEPTOS BÁSICOS

El resultado de aplicar o activar cada uno de los puntos

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

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

constituye un

microprograma y su objetivo es

imple-mentar el algoritmo o computación requerido.

(5)

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.

(6)

CAMINO DE DATOS

RAM = conjunto de 2

k

registros de N bits que sólo

pue-den accederse de uno en uno.

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

if WRITE then M[ϑ(A)]←x siendo ϑ(A) =

P

k−1i=0 Ai · 2i

Fichero de registros.

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

(7)

CAMINO DE DATOS

Otros elementos de almacenamiento: FIFO y LIFO

(8)

CAMINO DE DATOS

Buses: son las conexiones, junto con los switches necesarios, que

comunican los distintos elementos del camino de datos (registros y operadores). Se clasifican en:

Paralelos/Serie

Unidireccionales/Bidireccionales

Dedicados/Compartidos

Directos/Indirectos

(9)

CAMINO DE DATOS

Switches: establecen o cortan el acceso al bus.

Unidireccionales

(10)

CAMINO DE DATOS

Selector: selecciona una de entre varias fuentes de

da-tos (MUX).

Distribuidor: selecciona uno de entre varios destinos de

datos (DEMUX).

(11)

CAMINO DE DATOS

Ejemplos de buses:

Crossbar

Bus compartido

(12)

SECCIÓN DE CONTROL

Es el sistema secuencial o autómata que al activar los puntos de control en el orden adecuado controla las transferencias y transfor-maciones de los datos que tienen lugar en el camino de datos y que implementan 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ómaautóma-ta), cual es el estado o microinstrucción siguiente.

La sección de control también se puede representar mediante un

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

dificil realizar modificaciones (no hai una relación evidente entre la implementación y el algoritmo).

Su uso es poco frecuente.

(13)

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 y

la implementación mediante elementos de retardo.

(14)

SECCIÓN DE CONTROL

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

(15)

SECCIÓN DE CONTROL

Ejemplo: implementación con elementos de retardo

(16)

SECCIÓN DE CONTROL

(17)

SECCIÓN DE CONTROL

(18)

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 a

los accesos a la memoria de control.

(19)

SECCIÓN DE CONTROL

Microprogramación

(20)

SECCIÓN DE CONTROL

Memoria de control

Almacena la información de control necesaria para

ejecutar el algoritmo.

Su tamaño viene dado por el número de

microins-trucciones (2

k

) del microprograma por el número de

bits por microinstrucción (m).

Se puede implementar con una ROM, PROM o RAM.

Contador de microprograma (µP C)

Direcciona la memoria de control para seleccionar la

(21)

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 la siguiente µI a ejecutar si la condición es cierta.

(22)

SECCIÓN DE CONTROL

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

a: generación de la dirección siguiente = el µP C 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 MUX de condiciones ⇒ El µP C se incrementa.

2.

Selección en el MUX de la condición a verificar. Si se cumple la salida del MUX = 1 ⇒ el µP C se carga con la dirección especificada en la µI.

(23)

SECCIÓN DE CONTROL

(24)

SECCIÓN DE CONTROL

(25)

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

{

D

← A

⊕ B

⊕ C

(26)

SUMADOR SECUENCIAL

Algoritmo 1: introduce la sincronización con el exterior mediante

dos 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: do done ← 1 while (start) done ← 0 ---Cargar A Cargar B Borrar C for I=1 to n { Di ← Ai ⊕ Bi ⊕ C C ← Ai · Bi + (Ai ⊕ Bi) · C } ---goto WAIT

(27)

SUMADOR SECUENCIAL

Una vez identificadas las líneas de conexión con el

exte-rior empezaremos por diseñar un camino de datos capaz

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

(28)

SUMADOR SECUENCIAL

(29)

SUMADOR SECUENCIAL

Algoritmo 2: introduce los puntos de control (microoperaciones)

WAIT: do Preset while (start) Clear LOADA LOADB CLEARC for I=1 to n { SHIF TD LOADC SHIF TA SHIF TB } goto WAIT

(30)

SUMADOR SECUENCIAL

Algoritmo 3: se identifican las operaciones simultaneas

(se reduce el número de microinstrucciones necesarias).

WAIT: do

Preset

while (start)

Clear || LOADA|| CLEARC

LOADB

for I=1 to n

SHIF TD || LOADC|| SHIF TA|| SHIF TB

(31)

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 incondicondi-cionales (goto).

do

operación

while (x)

pasaría a ser:

LOOP: operación

if (x) then goto LOOP

for I=1 to n

(32)

SUMADOR SECUENCIAL

Algoritmo 4: se substituyen las estructuras complejas por sus

mi-croinstrucciones equivalentes activando en paralelo los puntos de control que lo permitan.

WAIT: S0: Preset

if (start) then goto WAIT

S1: Clear || LOADA|| CLEARC|| CLEARI

S2 : LOADB

LOOP: S3: SHIF TD || LOADC|| SHIF TA|| SHIF TB||INCI

if (I<n) then goto LOOP goto WAIT

(33)

SUMADOR SECUENCIAL

El algoritmo puede expresarse también mediante un

au-tómata o diagrama de flujo.

(34)

SUMADOR SECUENCIAL

El camino de datos que implementa una computación no

es único. Otra posibilidad:

(35)

SUMADOR SECUENCIAL

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

en S3

WAIT: S0: Preset

if (start) then goto WAIT

S1: Clear || LOADA|| CLEARC|| CLEARI

S2 : LOADB

LOOP: S3: SHIF TD || LOADC|| INCI

if (I<n) then goto LOOP goto WAIT

(36)

SUMADOR SECUENCIAL

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

retardo.

(37)

SUMADOR SECUENCIAL

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

retardo.

(38)

SUMADOR SECUENCIAL

Implementación de la sección de control:

microprogra-mación.

(39)

SUMADOR SECUENCIAL

Implementación de la sección de control:

microprogra-mación.

(40)

EJERCICIOS

9.1. Es ribeel mi ro odigo de la memoriaROM de la se ion de ontrolde un sistema

que realiza el algoritmo que se expone a ontinua ion, indi ando los valores de las

entradas del multiplexor de sele ionde salto.

INICIO: a tivarPRESET

if empieza goto INICIO

a tivarLOAD R y CLEAR TEST : if z 1 z 0 =10 goto BUCLE else if z 1 z 0

=01goto COR R ECCION

else a tivarDESPLAZA

R

BUCLE : a tivarINCREMENTA

a tivarRESTA y LOAD

D

if I <n goto BUCLE

goto INICIO

COR R ECCION : a tivarSUMA y LOAD

R

goto TEST

9.2. Dado el automata de la gura dise~na su orrespondiente unidad de ontrol

mi ro-progamada ompleta. 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

(41)

30 TEMA 9. ESPECIFICACION ALGORITMICA DE SISTEMAS SECUENCIALES

9.3. La siguiente gura representa una unidad de ontrol implementada on elementos

de retardo. Extrae su automata de ontrole implementalomediante la te ni a de

ontrolmi roprogramado. D Q D Q D Q D Q33 D Q4 4 DEMUX 1 a 4 D Q55 DEMUX start 1 0 DEMUX 1 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 C5

9.4. Dise~na una unidad de ontrol mi roprogramada ompleta orrespondiente al

algo-ritmo siguiente que realiza lamultipli a ionentre dos numeros naturales X eY de

uatro bits, teniendo en uenta el amino de datos de la gura. Cal ula tambien

ual es la mejor se~nal de reloj para sin ronizar el sistema, teniendo en uenta los

siguientes datos: tiempode estabiliza ionde losregistrosy ontadores10ns,tiempo

(42)

9.5.      Obter  o  autómata  de  control  e  deseñar  a  unidade  de  control  microprogramada  completa  que  implemente o algoritmo seguinte: INICIO: activar READY IF       goto INICIO BUCLE: activar OK, STARTING IF end goto ESPERAR ELSE activar OK, SELECT IF input = 00 activar PROCESSING ELSE IF input = 01 activar INITIATING activar PROCESSING activar DONE ELSE goto RECUPERAR END IF goto BUCLE ESPERAR: activar WAIT, CHECK IF       goto ESPERAR goto INICIO RECUPERAR: activar FAULT IF       activar WAIT, RESTORING goto ESPERAR END IF goto BUCLE start ready ready

(43)

S0 S1 S2 S4 S5 start start {READY} {OK, STARTING} {OK, SELECT} {PROCESSING} {INITIATING} S6 S7 end i1i0=00 S3 i1i0=01 end ready ready i1i0=10 OR i1i0=11 (i1=1) {PROCESSING} {DONE} {WAIT, CHECK} INICIO: BUCLE: ESPERAR: 9.5. Autómata de Control: ready

(44)

9.5. Diagrama de Fluxo: S0 start si S1 no end no 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

(45)

9.5. Implementación con Elementos de Retardo: S0 Pr S1 Cl S2 Cl S3 Cl S4 Cl S8 Cl DEMUX 1 a 2 0 1 DEMUX 1 a 2 0 1 DEMUX 1 a 2 0 1 DEMUX 1 a 2 0 1 DEMUX 1 a 2 0 1 READY STARTING OK SELECT PROCESSING FAULT PRESET CLOCK START CLEAR END i1i0 = 00 i1i0 = 01 READY

(46)

9.5. Unidade de Control Microprogramada: ROM (32 x 12) CONTADOR MICROPROGRAMA CLK 1 LOAD INCR STROBE     MUX 8 a 1 12 3 start end ready i1i0 = 00 i1i0 = 01 5 5 REG. MICROINSTRUCCIONES R E A D Y O K STA R T IN G SE L E C T PR O C E SS IN G IN IT IA T IN G D O N E W A IT C H E C K FA U L T R E ST O R IN G 1   1   0   0   0   0   0   0   0   0   0   0 0   0   0   1   x   x   x   0   0   0   0   0 1   0   1   1   0   0   0   0   0   0   0   0 0   0   1   0   x   x   x   0   1   1   1   0 1   0   1   0   1   0   0   0   0   0   0   0 0   1   0   0   x   x   x   0   1   0   0   0 0   1   0   1   x   x   x   0   1   0   1   0 0   0   0   0   x   x   x   1   0   0   0   1 1   0   0   0   0   1   0   0   0   0   0   0 0   0   0   0   x   x   x   0   0   0   1   0 1   0   0   0   0   0   1   0   0   0   0   0 1   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   0   x   x   x   0   0   0   1   0 1   0   0   0   0   0   0   0   1   1   0   0 0   0   1   1   x   x   x   0   1   1   1   0 0   0   0   0   x   x   x   0   0   0   0   0 1   0   0   0   0   0   0   0   0   0   1   0 0   0   1   1   x   x   x   1   0   1   0   0 0   0   0   0   x   x   x   0   0   0   1   0 1   0   0   0   0   0   0   0   1   0   0   1 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 INICIO: BUCLE: ESPERAR: RECUPERAR: activar READY IF start goto INICIO activar OK, STARTING IF end goto ESPERAR activar OK, SELECT IF i1i0 = 00 goto 8 IF i1i0 = 01 goto 10 goto RECUPERAR activar PROCESSING goto BUCLE activar INITIATING activar PROCESSING activar DONE goto BUCLE activar WAIT, CHECK IF ready goto ESPERAR goto INICIO activar FAULT IF ready goto 20 goto BUCLE

(47)

[Examen TC Septiembre'2005] Deseñar a unidade de control microprogramada completa do seguiente algoritmo: INICIO: activar PREPARADO IF         GOTO INICIO activar INICIALIZANDO BUCLE_TIEMPO: activar CALCULAR_INSTANTE

activar INICIALIZAR1, INICIALIZAR2, INICIALIZAR3 IF x1x0 = 11 activar PROCESAR1 ELSE IF x1x0 = 01 activar PROCESAR2 activar DONE ELSE IF parar activar FINALIZAR GOTO INICIO END IF END IF GOTO TEST GOTO BUCLE_TIEMPO TEST: activar PONER_A_CERO BUCLE_TEST: activar ACUMULAR IF   parar   activar FINALIZAR GOTO INICIO END IF activar COMPARAR IF       GOTO BUCLE_TEST empezar converge

(48)

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 [Examen TC Septiembre'2005]  Autómata de Control: parar S1 {INICIALIZANDO} S2 {CALCULAR_INSTANTE} {PROCESAR1} X1X0=01 S8 S9 {FINALIZAR} {COMPARAR} converge

(49)

ROM (32 x 14) CONTADOR MICROPROGRAMA CLK 1 LOAD INCR STROBE     MUX 8 a 1 14 3 empezar parar converge x1x0 = 11 x1x0 = 01 5 5 REG. MICROINSTRUCCIONES PR E PA R A DO INI C IAL IZ ANDO C ALCU L AR _I NST ANT E INI C IAL IZ AR 1 INI C IAL IZ AR 2 INI C IAL IA R 3 PR OC E SAR 1 PR O C E SA R 2 DONE FI NA L IZ AR PONE R _A_C E R O activar PREPARADO IF empezar goto INICIO activar INICIALIZANDO activar CALCULAR_INSTANTE activar INIC1, INIC2, INIC3 IF x1x0 = 11 goto 9 IF x1x0 = 01 goto 11 IF parar goto 14 goto TEST AC U M UL AR C OM PAR AR [Examen TC Septiembre'2005]  Unidade de control micropogramada: 00000 00001 00010 00011 00100 00101 00110 00111 01000 INICIO: BUCLE_TIEMPO:   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   0   0   0   0   x   x   x   x   x   1   0   0    0   0   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

Referencias

Documento similar

Un método de estudio aparte de ser una herramienta muy útil al momento de estudiar también nos ayuda a agilizar nuestra mente y tener una buena memoria para futuro?. Palabras

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Las bombas cumplen la funci´ on de generar un caudal circulante necesario para alimentar al motor hidr´ aulico de cada sistema (ingreso de agua, aditivos l´ıquidos y s´ olidos y

El desarrollo de una conciencia cáritas es esencial para identificar cuando un momento de cuidado se convierte en transpersonal, es necesaria para identificar

El quincenario de los frailes de Filipinas, condena para el Archipiélago los propósitos de nivelación jurídica que para todo territorio español, peninsular o ultramarino, se