Vous êtes sur la page 1sur 29

CIC, FES, DM, JRB

Sistemas Embebidos
XXXX
2 de abril de 2013
Springer
Captulo 1
M aquinas de Estado Algortmicas (ASM)
Resumen La l ogica de transferencia de registros es una de las t ecnicas fun-
damentales para la descripci on del comportamiento de los circuitos secuen-
ciales, los cuales pueden ser implementados con un grupo de registros y una
unidad que realiza operaciones arirm eticas y/o l ogicas que transeren los da-
tos de un registro a otro. La secuencia o ujo de datos al realizar ese proceso
secuencial: registros, unidad aritm etico-l ogica, registros es lo que forma los
algoritmos. As, todo sistema secuencial (algoritmo) puede ser visto como la
uni on de un camino de datos (registros y operaciones) y una unidad de control
que determina cuando y cuales operaciones se deben realizar, al igual que las
transferencia o movimiento de datos entre registros.
1.1. Introducci on
Para el dise no de circuitos digitales existen diferentes metodologas, t ecnicas y
herramientas; las cuales corresponden a los diferentes niveles de abstracci on en que
se puede concebir un sistema. El nivel mas utilizado y por el cual podemos ini-
ciar a comprender mejor el mundo digital es el nivel conocido como RTL (en
ingl es, Register Transfer Level) o Nivel de Transferencia de Registros, en donde los
dise nadores abordan la soluci on de un problema al nivel de operaciones y de tranfe-
rencia entre registros, lo cual ocurre durante muchos ciclos de reloj [REF GAJSKI
BUSCAR]. En este nivel de abstracci on no se aborda el problema desde la perspec-
tiva de las dimensiones geom etricas o conexiones fsicas concretas del sistema, sino
que se aborda desde el nivel comportamental desarrollado por cada uno de los pasos
que permiten realizar esa manipulaci on de datos almacenados en registros, hasta la
ejecuci on de operaciones aritmetico l ogicas; nalizando nuevamente en registros en
donde se van guardando los resultados. Es este el punto de partida para abordar el
desarrollo estructurado de soluciones en hardware, que para problemas de mediana
y baja complejidad hacen que sea una soluci on acertada. Para problemas con com-
plejidades altas, se hace necesario ir a un nivel de abstracci on m as alto, en donde
1
2 1 M aquinas de Estado Algortmicas (ASM)
los conceptos adquiridos en este captulo son fundamentales para comprender.....lo
que se explorar a en los siguientes captulos de este libro.sf
1.2. Metodologas de dise no RTL
Uno de los m etodos m as conocidos para el dise no de circuitos digitales de cierta
complejidad es el de m aquinas de estado (FMS, en ingl es Finite State Machine), en
donde se usa la representaci on por medio de circulos y echas los diversos estados
por los que puede ir pasando un circuito al igual que las transiciones que denen el
cambio de estado.
Los sistemas digitgales normalente est an compuestos de un conjunto de perif eri-
cos o elementos b asicos de librera ya sean elementos combinacionale so secuencia-
les (p.e decodicadores, multiplexores, sumadores, restadores, contadores, registors
de desplaamiento) y nalmente una m aquina de estados nita que se encarga de con-
trolar los estados, las transiciones dentre estados y las salidas oi se nales de controla
para manipular todos los perif ericos del sistema.
POR LO GENERAL.... En el caso de tener un circuito con funciones principal-
mente num ericas, puede ser necesario hacer una descripci on previa con un algorit-
mo, es decir una secuencia de operaciones. estas descripciones previas facilitan la
impleementaci on llegnado a tener circuitos aritm etico o l ogicos basados en estados
los cuales por medio de secuencias dan soluci on al algoritmo.
En el caso de m aquinas de estados complejas con gran cantidad de estados y
se nales, la representaci on con circuilos y echas puede llegar a ser confusa. es por
esto que se hace necesario acompa nar siempre cada descripci on y de hecho comen-
zar la etapa de dise no utilizando los algoritmos que permitan manipular con rigor y
consistencia las operaciones matem aticas necesarias para la ejecuci on de los iversos
c alculos implicados. Pra esto se suelen emplear grafos que muestren dependencia
entre operandos. A este tipo de notaci on se le conoce como m aquinas de estado
algortmicas, en las cuales se tiene una representaci on gr aca intuitiva de las opera-
ciones del circuito en cada ciclo de reloj.
1.3. M aquinas de Estados Algortmicas (ASM)
La l ogica de transferencia de registros es una t ecnica ampliamente utilizada para
la descripci on a alto nivel del comportamiento de circuitos secuenciales; los cuales
pueden ser vistos como un grupo de registros y operaciones aritm eticas y/o l ogicas
que transeren datos de un registro a otro. Todo sistema secuencial puede ser visto
como la uni on de un camino de datos (registros y operaciones) y una unidad de con-
trol que determina cuando realizar las operaciones y las transferencias (ver Figura
1.1).
1.3 M aquinas de Estados Algortmicas (ASM) 3
Control
Camino de
datos
Control
Estado
Datos de entrada
Datos de salida
Figura 1.1 Estructura de una m aquina de estados algortmica.
En este captulo la uni on de una unidad de control y un camino de datos reci-
bir a el nombre de m aquina de estados algorimica (ASM), para diferenciarla de la
m aquina de estados nitos y para indicar la posibilidad de implementaci on de cual-
quier tipo de algortmo. Los pasos que se realizan para el dise no e implementaci on
de una m aquina de estados algortmica son los siguientes:
1. Elaboraci on de un diagrama de ujo que describa la funcionalidad deseada.
2. Identicaci on de los componentes del camino de datos.
3. Identicaci on de las se nales necesarias para controlar el camino de datos e inter-
conexi on.
4. Especicaci on de la unidad de control utilizando diagramas de estado.
5. Implementaci on de los componentes del camino de datos y de la unidad de con-
trol utilizando lenguajes de descripci on de hardware.
6. Simulaci on y pruebas
1.3.1. Ejemplo de ASM: Multiplicaci on de n umeros binarios
El algoritmo de multiplicaci on que se implementar a se basa en productos par-
ciales; el primer producto parcial siempre es cero (ver Figura 1.2, a continuaci on se
realiza la multiplicaci on iniciando con el bit menos signicativo del multiplicador,
el resultado de la multiplicaci on se suma al primer producto parcial y se obtiene el
segundo producto parcial; si el bit del multiplicador es 0 no se afecta el contenido
de PP, por lo que no se realiza la suma. A continuaci on se realiza la multiplicaci on
del siguiente bit (a la izquierda del LSB) y el resultado se suma al producto parcial
pero corrido un bit a la izquierda, esto para indicar que la potencia del siguiente bit
tiene un grado m as; este corrimiento se debe realizar ya que si un n umero binario se
multiplica por 2 el resultado es el mismo n umero corrido a la izquierda, por ejemplo:
15 (1111) X 2 = 11110 = (30); 15 (1111) X 4 = 111100 = (60)
4 1 M aquinas de Estado Algortmicas (ASM)
Este proceso contin ua hasta completar los bits del multiplicador y el ultimo pro-
ducto parcial es el resultado.
Figura 1.2 Multiplicaci on de numeros binarios usando productos parciales.
1.3.1.1. Diagrama de Flujo
En la Figura 1.3 se muestra un diagrama de ujo para la implementaci on de este
algoritmo. El primer paso para realizar la multiplicaci on es hacer el producto par-
cial (PP) sea igual a cero, a continuaci on se realiza una vericaci on del bit menos
signicativo del multiplicador, esto se hace para sumar unicamente los resultados
que no son cero. En este caso se utiliza un corrimiento a la izquierda para obtener
el siguiente bit del multiplicador, si por ejemplo al n umero 1010 se le realiza un
corrimiento a la derecha se obtiene el n umero 0101, con lo que el bit menos signi-
cativo corresponde al segundo bit de 1010, si se realiza otro corrimiento a la derecha
se obtiene 0010 y de nuevo el bit menos signicativo corresponde al tercer bit de
1010, al realizar de nuevo un corrimiento se obtiene 0001, con lo que tendramos
todas las cifras del multiplicador de forma consecutiva en el mit menos signicati-
vo. Cuando se realiza un nuevo corrimiento el resultado es 0000 lo que indica que el
producto parcial no puede cambiar y podemos terminar el algortimo. Este m etodo
para nalizar el algoritmo produce que el n umero de iteraciones depende del valor
del multiplicador; otra forma de terminar el algoritmo sin que dependa del valor del
multiplicador se obtiene al contar el n umero de bits del multiplicador y realizar el
corrimiento n veces, donde n es el n umero de bits del multiplicador.
Para indicar que cada vez que se toma un bit del multiplicador, este tiene una
potencia mayor que el bit anterior, debemos multiplicar el resultado por la base, la
cual es 2 en este caso; como se mencion o anteriormente, multiplicar por 2 equivale
a realizar un corrimiento a la izquierda, por lo que siempre que se tome un nuevo
bit del multiplicador debemos correr a la izquierda el multiplicando.
1.3 M aquinas de Estados Algortmicas (ASM) 5
INICIO
PP=0, I=0
A=MD, Load B
LSBB=0?
PP=PP + A
A = A << 1
B = B >> 1
B=0?
NO
SI
NO
SI
DONE
Figura 1.3 Diagrama de ujo para la multiplicaci on de numeros binarios.
Una vez conocido el funcionamiento del sistema se procede a realizar el diagra-
ma de caja negra de entradas y salidas. En la Figura 1.5 se muestra el multiplicando
y el multiplicador (A y B), se nales de m bits cada una, el resultado de la multiplica-
ci on PP (Bus de 2m Bits), la se nal de reloj (CLOCK). Las se nales INIT y DONE se
utilizan para iniciar el proceso de multiplicaci on e indicar que el resultado est a dis-
ponible respectivamente; es importante que todo sistema digital posea la forma de
interactuar con el exterior, ya que sin ello el sistema carecera de utilidad.
1.3.1.2. Identicaci on de los componentes del camino de datos
A continuaci on se identican los componentes del camino de datos, esto se rea-
liza recorriendo el diagrama de ujo para encontrar las operaciones que se realizan.
En la gura ?? se resaltan las operaciones que se deben realizar para la correcta
operaci on del algortmo; la primera es una operaci on de acumulaci on correspon-
diente a PP = PP + A; la segunda operaci on que encontramos son los dos co-
rrimientos a la izquierda y derecha del multiplicando (A) y el multiplicador (B)
respectivamente, estas operaciones se realizan al mismo tiempo pero en m odulos
diferentes; el ultimo m odulo es un comparador que indica que el multiplicador es
igual a cero, indicando que el algoritmo puede nalizar.
6 1 M aquinas de Estado Algortmicas (ASM)
Figura 1.4 Diagrama de caja negra para el multiplicador de numeros binarios.
INICIO
PP=0, I=0
A=MD, Load B
LSBB=0?
PP=PP + A
A = A << 1
B = B >> 1
B=0?
NO
SI
NO
SI
DONE
ACUMULADOR
CORRIMIENTO A LA DERECHA
CORRIMIENTO A LA IZQUIERDA
COMPARADOR
Figura 1.5 Identicaci on de los componentes del camino de datos para el multiplicador de nume-
ros binarios.
1.3 M aquinas de Estados Algortmicas (ASM) 7
1.3.1.3. Identicaci on de las se nales de control e interconexi on del camino de
datos
En la gura 1.6 se muestra la interconexi on de los componentes del camino de
datos y las se nales que lo controlan.
LSR
COMP
ACC
RSR
MD
MR
B
MR
A
PP
SHIFT
SHIFT
LOAD LOAD
RESET
ADD
RESET
SH
ADD
Z
Figura 1.6 Identicaci on de las se nales de control e interconexi on del camino de datos.
La primera operaci on que aparece en el diagrama de ujo es la del acumulador, el
cual acumula el valor de la salida del registro de corrimiento que almacena el mul-
tiplicando, de aqu obtenemos la conexi on entre el registro de corrimiento (LSR)
a la izquierda y el acumulador (ACC). La segunda operaci on que aparece es la de
los registros de corrimiento, por lo que los valores del multiplicando y multiplica-
dor deben cargarse para su posterior corrimiento a las unidades de corrimiento a
la izquierda y derecha respectivamente. La salida del corrimiento a la derecha del
multiplicador es comparada en cada ciclo para determinar si se lleg o al nal del al-
goritmo, por lo que la entrada del comparador es la salida del registro de corrimiento
del multiplicador.
Para determinar las se nales de control de cada componente del camino de datos,
se debe identicar su funci on y las operaciones que debe realizar; los registros de
corrimiento deben permitir la carga de un valor inicial y el corrimiento de las mis-
mas, esto se realiza con las se nales LOAD y SHIFT respectivamente; el acumulador
debe tener la posibilidad de inicializarse en cero y una se nal para que sume el valor
de la entrada al que tiene almacenado, esto se hace con las se nales RESET y ADD;
por ultimo el comparador debe proporcionar una se nal que indique que el valor de
su entrada es igual a cero, Z en este caso.
8 1 M aquinas de Estado Algortmicas (ASM)
Aunque es posible que la m aquina de control maneje todas las se nales de control
del camino de datos, es mejor aguparlas de acuerdo a su activaci on; esto es, si una
se nal se activa al mismo tiempo que otra, se puede utilizar una se nal que las contro-
le a ambas. Para esto se utiliza el diagrama de ujo y se observa en que momento
se realizan las operaciones: Se observa que se cargan los valores de los registros de
corrimiento y se inicializa en cero el acumulador unicamenet al comenzar el algorit-
mo y durante la ejecuci on del mismo no se vuelve a relizar esta operaci on, por este
motivo utilizaremos la misma se nal (RESET) para cargar los registros de desplaza-
miento e inicializar en cero el acumulador; la se nal que controla el momento en que
el acumulador se incrementa es unica, ya que no se realiza ninguna operaci on en
ese punto del algoritmo y en este caso recibe el nombre de ADD; las operaciones
de corrimiento se realizan en el mismo lugar, por lo que se puede utilizar una se nal
com un, que en este caso llamaremos SH; por ultimo la salida del comparador Z y el
bit menos signicativo de B LSB son se nales de salida del camino de datos que le
dar an a la unidad de control la informaci on necesaria para tomar la acci on adecuada
en los bloques de decisi on.
1.3.1.4. Especicaci on de la unidad de control utilizando diagramas de
estado
Una vez que se conoce el camino de datos, las se nales que lo controlan y las
se nales que ayudar an a la unidad de control a tomar decisiones, se procede con la
especicaci on de la unidad de control, la cual, es una m aquina de estados nitos, por
lo que la mejor forma de especicarla es utilizando un diagrama de estados; en la
gura 1.7 se muestra la relaci on entre el diagrama de ujo y el diagrama de estados.
Como se puede observar, existe una relaci on muy estrecha entre el diagrama de
estados y el diagrama de ujo, cada operaci on del diagrama de ujo corresponde
a un estado de la m aquina de control y las transiciones entre ellos son id enticas,
observe las lneas del mismo color en la gura 1.7
La m aquina de estados debe iniciar en START y se queda en este estado siempre
que la se nal INIT tenga un valor de 0, En el estado INIT la se nal RESET = 1, con
lo que el valor del acumulador se hace cero y se cargan los registros A y B. Cuando
INIT = 1, entramos al estado CHECK el cual eval ua la se nal LSB, s LSB = 0,
no se debe realizar la suma de MD, pero si se debe realizar un corrimiento para
obtener el siguiente bit del multiplicador y realizar el corrimiento necesario en MD.
Si LSB = 1 se debe sumar el valor de las salidas de LSR al valor del acumulador,
y despu es se debe realizar un corrimiento. En el estado ADD se hace la salida ADD
= 1 para que el valor a la entrada del acumulador se sume al valor almacenado en
el. En el estado SHIFT se realiza el corrimiento de RSR y LSR haciendo el valor de
la se nal SH = 1.
Para vericar el buen funcionamiento del diagrama de estado debemos realizar
una prueba de escritorio: Supongamos que tenemos A = 7 y B = 5 y que INIT = 1:
Como puede observarse el resultado es correcto (35), en la tabla las casillas som-
breadas corresponden a las se nales que cambian de un estado a otro.
1.3 M aquinas de Estados Algortmicas (ASM) 9
INICIO
PP=0, I=0
A=MD, Load B
LSBB=0?
PP=PP + A
A = A << 1
B = B >> 1
B=0?
NO
SI
NO
SI
DONE
START
DONE=0,
RESET=1
SH=0, ADD=0
CHECK
DONE=0,
RESET=0
SH=0, ADD=0
INIT=0
ADD
DONE=0,
RESET=0
SH=0, ADD=1
SHIFT
DONE=0,
RESET=0
SH=1, ADD=0
END1
DONE=1,
RESET=0
SH=0, ADD=0
INIT
Z=1
LSB=0 LSB=1
Z=0
Figura 1.7 Diagrama de estados de la unidad de control del multiplicador binario.
1.3.1.5. Implementaci on de los componentes del camino de datos y de la
unidad de control
Existe abundante literatura sobre el uso de lenguajes de descripci on de hardware
para la implementaci on de sistemas digitales; por este motivo, en este libro no se
presentar a el c odigo que implementa los diferentes m odulos que hacen parte de las
m aquinas de estado algortmicas estudiadas.
Es muy importante anotar la importancia de la portabilidad del c odigo, como
es bien sabido existen varias empresas que suministran entornos de desarrollo que
permiten la entrada de dise no utilizando diferentes medios; las herramientas gr acas
utilizados por ellos no son compatibles entre s, lo que hace imposible el paso de
un dise no implementado en una herramienta gr aca a otra de otro fabricante; sin
embargo, todas las herramientas aceptan texto con el est andard del lenguaje utilizad;
por esto, se recomienda utilizar unicamente entrada de texto en las descripciones.
10 1 M aquinas de Estado Algortmicas (ASM)
1.3.1.6. Simulaci on
Como se mencion o anteriormente, es posible realizar las simulaciones utilizando
las herramientas gr acas de cada uno de los entornos de desarrollo que proporcionan
los fabricantes de dispositivos l ogicos programables, sin embargo, su uso diculta la
portabilidad del dise no. Por este motivo, se recomienda el uso de testbench escritos
con el lenguaje est andard. Como parte del proceso de dise no, cada m odulo debe ser
simulado antes de ser integrado en la descripci on de m as alto nivel.
Es bueno tener en cuenta los diferentes niveles de simulaci on que se pueden rea-
lizar a un sistema bajo prueba; la simulaci on m as r apida es la que tiene en cuenta
unicamente el lengiaje de descripci on de hardware utilizado, sin embargo, no es po-
sible garantizar que los resultados del circuito sintetizado sean los mismos que la
simulaci on del lenguaje; por esto, existe la simulaci on post-sntesis, en la que se si-
mula el RTL (l ogica de transferencia de registros) o las compuertas l ogicas b asicas
obtenidas del proceso de sntesis, esta simulaci on garantiza que el circuito obtenido
del proceso de sntesis se comporta como lo deseamos; el tercer nivel de simula-
ci on se obtiene cuando se adiciona un modelo de tiempo al diagrama de compuertas
del nivel anterior, en este nivel, se tienen en cuenta las capacitancias de carga y la
capacitancia de los caminos de interconexi on para obtener el retardo de cada ele-
mento del circuito, esta simulaci on es la m as precisa y permite conocer la velocidad
m axima a la que puede operar el sistema, esta simulaci on en algunos entornos de
desarrollo recibe el nombre de simulaci on post place & route.
1.3.1.7. Pruebas
Aunque la simulaci on es una buena herramienta para la detecci on de errores, es
necesario realizar una prueba sobre el circuito congurado en el dispositivo l ogico
programable, para esto existen dos opciones: realizar el montaje de la aplicaci on y
probar la funcionalidad del dispositivo congurado, dependiendo de la complejidad
del sistema esta puede ser una tarea tediosa; la segunda opci on es utilizar el puerto
JTAG para aplicar los vectores de prueba y capturar los resultados, este proceso se
describir a en la siguiente secci on.
1.3.2. Implementaci on de un divisor de n bits sin signo
El proceso de divisi on de n umeros binarios es similar al de n umeros decimales:
Inicialmente se separan dgitos del Dividendo de izquierda a derecha hasta que la
cifra as formada sea mayor o igual que el divisor. En la gura 1.8 separamos el
primer dgito de la derecha ( 0 ) y le restamos el divisor (la operaci on de resta se
realiz o en complemento a dos), el resultado de esta operaci on es un n umero nega-
tivo (los n umeros negativos en representaci on complemento a dos comienzan por
1). Esto indica que el n umero es menor que el divisor, por lo tanto, colocamos un
1.3 M aquinas de Estados Algortmicas (ASM) 11
cero en el resultado parcial de la divisi on (este dgito ser a el m as signicativo) y
separamos los dos primeros dgitos (00) y repetimos el proceso.
Figura 1.8 Divisi on de numeros binarios.
S olo hasta el sexto resultado parcial obtenemos un cero en la primera cifra de la
resta (recuerde que en complemento a dos los n umeros tienen una longitud ja en
nuestro caso 4 bits, s una operaci on provoca un bit adicional este se descarta, los
bits descartados se encerraron en lneas punteadas en la Figura 1.8), lo que indica
que el n umero es mayor o igual que el divisor, en este caso, se coloca un 1 en el
resultado parcial y se conserva el valor de la operaci on de resta, el cual se convierte
en el nuevo residuo parcial, este proceso se repite hasta haber bajado todos los
dgitos del dividendo.
En la gura
12 1 M aquinas de Estado Algortmicas (ASM)
INICIO
Load DV, DR
count=N, A=0
A < DR ?
{A,DV} << 1
count --
DVo = 0
count=0?
NO SI
NO SI
DONE
DVo = 1
A = A - DR
Figura 1.9 Algoritmo para la divisi on de numeros binarios.
1.3.2.1. Identicaci on de componentes del camino de datos e interconexi on
En la gura 1.10 podemos observar como se obtienen los componentes del ca-
mino de datos a partir del diagrama de ujo del divisor; se necesita un registro de
corrimiento a la izquierda donde se almacena el Dividendo (DV) y las cifras que se
van separando (A), un contador que cuente el n umero de bits que se han bajado,
un restador (sumador en complemento a 2) para determinar si el n umero separado
del dividendo cabe en el divisor (observando el bit m as signicativo MSB), y un
comparador que indique que el valor del contador lleg o a cero.
En la gura 1.11 se muestra la interconexi on de los elementos del camino de
datos y se muestran las se nales de control. De nuevo, las se nales que se activan
en el mismo punto del diagrama de ujo pueden agruparse, por esto, la se nal de
inicializaci on del registro A, la carga de DV y la inicializaci on del contador se reali-
zar a con la se nal INIT; el registro de desplazamiento a la izquierda va almacenando
el resultado de la divisi on a medida que se van utilizando los bits m as signicativos
del dividendo, con esto se reduce el n umero de componentes, la se nal DV0 ayuda
a formar el resultado; la se nal SH realiza el corrimiento a la izquierda del registro
{A,DV} con lo que en A queda el n umero que se va separando del dividendo y en
DV el resultado de la divisi on; la se nal LDA carga el resultado de la resta entre A y
el divisor unicamente cuando el resultado de la resta es positivo, esto es cuando la
se nal MSB es igual a 1; la se nal DEC hace que el valor del contador disminuya en
1.3 M aquinas de Estados Algortmicas (ASM) 13
INICIO
Load DV, DR
count=N, A=0
A < DR ?
{A,DV} << 1
DVo = 0
count=0?
NO SI
NO SI
DONE
DVo = 1
A = A - DR
count --
Reg. de corrimiento
a la izquierda
Contador
descendente
Restador (sumador complemento a 2)
Comparador
Figura 1.10 Identicaci on de componentes del camino de datos para la divisi on de numeros bina-
rios.
1, y la salida Z se hace 1 cuando el valor de este contador llega a cero indicando que
el algoritmo termin o.
De lo anterior tenemos que la unidad de control tiene como entradas las se nales:
Reset, Start, MSB y Z; y como salidas: INIT, DV0, SH, DEC y LDA; de nuevo
los bloques de decisi on del diagrama de ujo del algortmo hacen referencia a las
entradas de la unidad de control.
1.3.2.2. Unidad de control
En la Figura 1.12 se muestra la relaci on existente entre el diagrama de ujo y el
diagrama de estados de la unidad de control del divisor binario.
1.3.3. Contador de n umero de unos
En este ejemplo realizaremos un circuito que cuente el n umero de bits en una
cadena de N bits:
14 1 M aquinas de Estado Algortmicas (ASM)
INICIO
Load DV, DR
count=N, A=0
A < DR ?
{A,DV} << 1
DVo = 0
count=0?
NO SI
NO
SI
DONE
DVo = 1
A = A - DR
count --
Reg. de corrimiento
a la izquierda
Contador
descendente
Restador (sumador complemento a 2)
Comparador
Figura 1.11 Interconexi on del camino de datos para la divisi on de numeros binarios.
1.3.4. Circuito para determinar la raz cuadrada de un n umero
binario
rewruewpor upoewrupoew urpoewf
1.4 Pasando del hardware al software. Concepto de datapath 15
INICIO
Load DV, DR
count=N, A=0
A < DR ?
{A,DV} << 1
DVo = 0
count=0?
NO SI
NO
SI
DONE
DVo = 1
A = A - DR
count --
START
DONE=0, LDA=0
INIT=1,DV0=0
SH=0, DEC=0
CHECK
DONE=0,LDA=0
INIT=0, DV0=0
SH=0, DEC=0
Start=0
ADD
DONE=0, LDA=1
INIT=0, DV0=1
SH=0, DEC=0
SHIFT_DEC
DONE=0,LDA=0
INIT=0, DVO=DV0
SH=1, DEC=1
END1
DONE=1,LDA=0
INIT=0, DV0=0
SH=0, DEC=0
Start=1
Z=1
MSB=0
MSB=1
Z=0
Z=0
Z=0
Z=1
Figura 1.12 Diagrama de estados de la unidad de control para la divisi on de numeros binarios.
1.4. Pasando del hardware al software. Concepto de datapath
DATAPATH COMO ELEMENTO BASICO DE UNA CPU. HACERLO MAS
GENERICO POR LOS TIPOS DE DATAPATHS EXPUESTOS LUEGO.
Como se puede ver en los anteriores ejemplos, las arquitecturas encontradas de-
penden b asicamente del problema que se est e trabajando. Se utiliza la transferencia
de registros y e ujo de los datos para poder llegar acertadamente a una implemen-
taci on, que a nivel de hardware es lo mas acertado. En este caso, la incorporaci on
de perif ericos especcos basados en celdas b asicas se hace necesaria y de hecho
es requisito fundamental para la implementaci on. Cualquier elemento que permita
obtener una respuestas mas eciente en cuanto a tiempo de ejecuci on se puede utili-
zar y solo hace falta optimizar la m aquina de estados para que controle cada uno de
los perifericos del sistema. Es as como aparece el concepto de concurrencia muy
ligado a lo squ ees una soluci on en hardware. La concurrencia me permite reali-
zar operaciones al mismo tiempo, siempre y cuando los datos que requieran dichas
celdas b asicas no sean los mismos, o que por lo menos su funcionalidad no est e rela-
cionada. Basicamente lo que se quiere mostrar es que se pueden llevar a cabo varias
operaciones al tiempo.
16 1 M aquinas de Estado Algortmicas (ASM)
1.5. Camino de datos o datapath
FIGURA DE UN DATAPATH CON MAR PC Y MDR. GRAFICA BASICA
DATAPATH.
Dado que algunas veces se requiere tener un solo sistema que resuelva diferentes
problemas, surge la necesidad de no tener alternativas netamente concurrente, en
donde la incorporaci on de perif ericos sea de manera indeterminada seg un la necesi-
dad del dise nador. Para esto se hace necesario plantear estructuras mas gen ericas en
donde la implementaci on de los algoritmos dependa claramente de recursos que ya
est an disponibles y est an dados por una arquitectura denida.
Dichas arquitecturas constan b asicamente de 3 elementos. Una unidad aritm etico
- l ogica la cual se encarga de realizar las operaciones que requiera el algoritmo. Es
de notar que si la unidad aritm etico l ogica no realiza alguna operaci on del algoritmo,
es necesario implementar dicha operaci on .... hacer el algoritmo para realizar dicha
operaci on.
En la medidad en que las unidades aritmetico - logicas tengan mas instrucciones,
se hacen mas costosas porque tienen que tener todo el harwsare implementado para
dicha funci on. Sin embargo eso representa que no se requeire ciclos de m aquina o
ciclos de instricci on para relaizar dicha operaci on dado que la implementaci oin de
esa operaci on es netamente hardware.
L ogicamente las arquitecturas no tienen implemenentadas todas las posibles fun-
ciones matem aticas o funciones artim eticas es necesario realizar algoritmos que su-
plan dichas funciones, para lo cual se utilizan los recursos disponibles en cuanto a
funciones b asicas de la unidad aritmetico logica.
El otro elemento importante de la arquitectura b asica es el banco de registros
en donde se mantiene almacenada la informaci on o los datos. En el caso gen erico
de esta ASM se tienen registros de prop osito general, pero cuando hablemos de
arquitecturas de compoutadores tendremos que hablar adicionalmente de registros
de acceso a memoria, registros programados, registro especiales etc.
Finalmente se tiene la unidad de control la cual se encarga de manipular las
se nales que controlan tanto la unidad aritm etico - l ogica como los registros. Dicha
unidad de control genera se nales como por ejemplo seleccionar la operaci on que
quiere hacer la unidad aritm etico l ogica, generar se nales de control como lectura o
escritura sobre los registros etc.. Esta unidad se encarga de coordinar y realizar ac-
ciones necesarias para que se ejecuten las instrucciones. (En el caso de arquitectura
de computadores nos referiremos tambi en a instrucciones)
Cada elemento se debe comunicar con los dem as para poder realizar su funci on,
lo que se logra por medio de una estructura de interconexci on la cual se puede ah-
cer por medio de: a) Uno de conexci on directa: CSe realiza la conexi on cableda
directamente de la salida de un elmento a la entrada del otro. En caso de requerirse
l ogica de enrutamiento, se emplean elementos digitales adecuados como ultiplexo-
res. b)Uso de buses. Se dene un conjunto de lneas para interconectar m ultiples
elementos entre s. Se debe implementar una l ogica de control que garantice enru-
tamiento del dispositivo fuente al destino. Debe evitarse que dos dispositivos sean
1.6 Tipos de datapaths 17
fuente en el bus de la forma simult anea pues esto provocara cortocircuitos en las
lneas cuando est em sometidas a valores l ogicos diferentes.
En la FIG (datapath) se puede ver en esquema basado en buses.
FALTA HABLAR DE LAS BANDERAS!
1.6. Tipos de datapaths
Existen diferentes arquitecturas sobre las cuales estan organizados los tres ele-
mentos b asicos: control, unidad artim etico - l ogica y banco de registros. A conti-
nuaci on se presentan dos esquemas b asicos mas c onocidos:
1.6.1. Datapath con solo registro acumulador
En la gura XX y se puede ver el esquema tpicode Von Neuman, en donde se
tiene un dsatapath donde solo aparece un registro que se denomina acumunlador
por la funci on que cumple. En este tipo de arquitectura no se tiene registros de
prop osito general para manipular los operandos dentro de..... Todo el trabajo se
realiza en el acumulador. PAra realizar una operaci on el programador debe tomar el
primer operando y llevarlo al acumulador, realizar la operacion con el acumulador
siempre. El resultado se guarda en el acumulador nuevamente , Eventualmente se
puede transferir a otro registro.
Ejemplos de procesadores basados en acumulador son el IAS de Von Neumann,
el M6502 y el 6809 de Motorola. Este ultimo cuenta con dos acumuladores A y B
VER FIGURA. HACERLA
1.6.2. Datapath m aquina de pila
Una m aquina de pila es una arquitectura en donde el elemento principal de alma-
cenamiento de datos es una pila, la cual se implementa como un area de memoria
controlada por la m aquina de estados y que no tienen acceso los programas del usua-
rio. En las primeras m aquinas de pila todos los operando se manejaban mediante la
pila, hoy la pila se emplea como una estructura de datos auxiliar para la CPU.
Una m aquina de pila es una computadora en la cual el elemento primario de
almacenamiento de datos para la CPU es una pila. Esta se implementa como un
area de la memoria controlada por el CPU a la cual no tienen acceso los programas
del usuario. En las primeras m aquinas de pila, todos los operandos se manejaban
mediante la pila, hoy da, sin embargo, la pila se emplea como una estructura de
datos auxiliar para el CPU. La ventaja principal de esta organizaci on es que las
manipulaciones de las pilas pueden ser realizadas en una alta velocidad. La alta
18 1 M aquinas de Estado Algortmicas (ASM)
Figura 1.13 datapath 1.
velocidad es una caracterstica deseable en una computadora que va proporcionar
un servicio r apido de interrupciones, por ejemplo la IBM-370
Las pilas m as comunes son las de empuje hacia abajo, es decir, que inician en la
direcci on m as alta de memoria y crecen en el sentido de las direcciones de memoria
m as bajas. La organizaci on de la m aquina de pila es mostrada en la gura 2.4 . El
registro SP es el puntero a Pila, es un registro que siempre tiene la direcci on de la
ultima palabra insertada en la pila: Tope de pila o TOS (Top of Stack). En funci on de
este registro, tambi en se puede obtener el elemento inmediato bajo TOS: Pr oximo
en pila o NOS (Next on Stack). En el evento de una operaci on binaria, el primer
operando ser a removido de la pila y mantenido en el registro TEMP. El segundo
operando ser a directamente llevado de la pila a la entrada derecha de la ALU, que
en nuestro ejemplo corresponde al puerto x o primer operando. El resultado de la
operaci on es almacenado en la cabeza o tope de la pila.
En la actualidad no existen ejemplos de esta organizaci on en forma pura, sin
embargo existieron m aquinas que se construyeron con esta arquitectura como las
grandes computadoras Burroughs B5500, B6500 y B6700 y la minicomputadora
HP3000. Una de las ventajas de esta arquitectura es que el compilador s olo necesita
convertir a postja las expresiones algebraicas y luego hacer una traducci on directa
a ensamblador, empleando PUSH por cada aparici on de variable y la operaci on
correspondiente con cada operando. El pop es un caso especial; que corresponde a
1.6 Tipos de datapaths 19
la asignaci on y se eval ua al nal y adem as arrastra consigo al miembro izquierdo de
la expresi on
Figura 1.14 datapath 1.
1.6.3. Datapath m aquina de registros con acumulador
En este tipo de arquitecturas se utilizan muchos registros de prop osito general
para almacenar temporalmente los operandos. Este tipo de arquitecturas tiene la
ventaja que los datos mas frecuentes se cargan solamente una vez desde la memoria
principal.
La organizaci on de un procesador de Registros Generales es mostrada en la gu-
ra 2.5. En este estilo de dise no respecto al manejo de los operandos, se promueve el
uso de muchos registros de prop osito general para almacenar los operandos tempo-
ralmente dentro del CPU. Esto tiene la ventaja que los datos m as frecuentes s olo se
cargan una vez desde la memoria. Una arquitectura tpica consta de un banco o -
chero de m registros de prop osito general (Ro... Rm-1). Son llamados de esta forma
porque en cualquiera de ellos se pueden mantener datos, direcciones de memoria o
el resultado de alguna operaci on aritm etica o l ogica. El programador puede emplear
estos registros para realizar las diferentes operaciones en un programa. Algunos pro-
cesadores tienen alg un destino especco para algunos de ellos; el registro F (Flag)
o PSW (Processor status Word) es un registro de banderas y/o c odigos de condici on
20 1 M aquinas de Estado Algortmicas (ASM)
que mantiene informaci on importante del estado del procesador o del desarrollo del
programa. Por ejemplo, cuando el resultado de una operaci on fue cero (bandera Z =
1) o cuando ocurri o un acarreo (bandera C = 1).
Con procesadores de registros generales podemos tener instrucciones de dos y
tres operandos. En m aquinas 2 operandos, el destino o resultado de la operaci on
est a implcito en uno de los dos operandos. Este fen omeno se denomina lectura
destructiva de operandos, pues el valor del registro que es a la vez operando y destino
se pierde por sobre escritura del resultado.
Figura 1.15 datapath 1.
1.6.4. Datapath sin registro acumulador
1.6.5. Ejemplo basado en datapath: Valor absoluto
1.6.6. Ejemplo basado en datapath: Multiplicaci on de n umeros
binarios
Implementaci on hardware ASM
1.6 Tipos de datapaths 21
Figura 1.16 datapath 1.
Figura 1.17 datapath 1.
22 1 M aquinas de Estado Algortmicas (ASM)
Figura 1.18 datapath 1.
Implementaci on con registro acumulador
Implementaci on sin registro acumulador
SALTO ENTRE ESTO Y EL PROCESADOR. CONCEPTOS COMO INTRUC-
CIONES Y CICLO DE INSTRUCCION.
Referencias 23
Referencias
Glossary
Use the template glossary.tex together with the Springer document class SV-
Mono (monograph-type books) or SVMult (edited books) to style your glossary
in the Springer layout.
glossary term Write here the description of the glossary term. Write here the des-
cription of the glossary term. Write here the description of the glossary term.
glossary term Write here the description of the glossary term. Write here the des-
cription of the glossary term. Write here the description of the glossary term.
glossary term Write here the description of the glossary term. Write here the des-
cription of the glossary term. Write here the description of the glossary term.
glossary term Write here the description of the glossary term. Write here the des-
cription of the glossary term. Write here the description of the glossary term.
glossary term Write here the description of the glossary term. Write here the des-
cription of the glossary term. Write here the description of the glossary term.
25
Solutions
Problems of Chapter ??
?? The solution is revealed here.
?? Problem Heading
(a) The solution of rst part is revealed here.
(b) The solution of second part is revealed here.
27

Vous aimerez peut-être aussi