Microsmplez
351
352 Leccin 11. Microsmplez
micrordenes
previamente especificado mediante sus entradas, CO
salidas, estados y transiciones. La realizacin fi- circuitos
nal utiliza dos biestables y circuitos lgicos, y de- MD
cimos que se trata de un secuenciador cableado:
una vez construido, cualquier modificacin de las Secuenciador microprogramado:
especificaciones implica rehacer total o parcial- CO MD indicadores
micrordenes
nes, cada una de las cuales puede tomar, en cada
circuitos de
instante, uno de entre dos valores posibles. Llame- generacin
mos palabra de control, o microinstruccin, a
un conjunto de quince bits (aunque luego veremos Figura 11.3. Ilustracin de las diferencias entre un se-
la necesidad de aadir algunos ms), uno para cada cuenciador cableado y uno microprogramado.
una de las micrordenes. La ejecucin de una ins-
truccin implica la ejecucin sucesiva de una se- truccin produce una secuencia de microinstruc-
rie de microinstrucciones. Si imaginamos que es- ciones (microprograma), que van a dar lugar a la
tas microinstrucciones estn almacenadas en una secuencia de micrordenes adecuadas para la eje-
memoria (memoria de control), de donde pue- cucin de la instruccin; la lgica adicional para
den irse leyendo, tendremos una primera idea de generar las micrordenes puede ser casi inexisten-
lo que sera una implementacin microprograma- te, como ocurre en el primer ejemplo que vamos
da del mismo secuenciador. a ver, el de Smplez, en el que cada bit de la mi-
croinstruccin corresponde a una microorden.
Para cada instruccin hay una sucesin de mi-
croinstrucciones en la memoria de control, a la que Lo que caracteriza esencialmente a la versin
se llama microprograma (para diferenciar de los microprogramada es que, dada una informacin de
programas, almacenados en la memoria principal). entrada (compuesta por el contenido de los cam-
Lo que hace el microprograma de una instruccin pos CO y MD de la instruccin y por los valores de
es interpretar esa instruccin, es decir, producir los indicadores de la ruta de datos), las microrde-
las acciones necesarias para su ejecucin. nes que se obtienen y su secuenciamiento depen-
den de la configuracin de bits en una memoria,
En el esquema de la Figura 11.3 aparece, de una
y esto puede modificarse con mayor facilidad que
manera genrica, la diferencia bsica entre las im-
un circuito totalmente cableado4 . De aqu se deri-
plementaciones cableada y microprogramada de
van ventajas importantes, pero antes de explicarlas
un secuenciador. En el primer caso, una instruc-
(lo que haremos en la Leccin siguiente) veamos
cin produce directamente una secuencia de mi-
cmo puede realizarse un secuenciador micropro-
crordenes, cada una de las cuales es funcin de
gramado para el caso concreto de Smplez.
la instruccin (cdigo de operacin y modo de di-
reccionamiento) y del estado de la mquina y de 4
Las realizaciones en PLA, FPGA y ROM son tambin
la ejecucin (valores de los indicadores, biestables programables, pero el secuenciamiento (funcin de los bies-
de secuenciamiento, etc.). En el segundo, una ins- tables T e I) es fijo; la microprogramacin es ms verstil.
11.4. La micromquina de Wilkes 355
eri
11.5. Un secuenciador micropro- R CO CD
Modelo estructural DB
razonablemente pensar que la tarea es trivial. Pe- bbz, sri, ecp, scp
ro si la emprende va a encontrarse con un proble-
ma al llegar a la instruccin BZ. En efecto, las mi- si bbz =1 y (Z)=1,
inhibir scp
crordenes a generar durante I1 (en la direccin 4) Z
si bbz =1 y (Z)=0,
tienen que estar condicionadas al estado del bies- inhibir sri, ecp
table Z, y esto es algo que no hemos previsto an
sri, ecp, scp
en nuestro esquema. circuito:
En la Leccin siguiente veremos cmo se re- bbz sri ecp scp
suelve, de manera general, este problema de mi-
crobifurcacin condicionada al valor de algn Q
_
Z
biestable de estado. Aqu, como slo hay un ca- Q
es porque BIN = 1, y esto ha puesto PIN a cero, ellas se simplifican, si pueden reducirse a cambios
por lo que todas las interrupciones quedan inhibi- de los contenidos de la memoria de control. Pero
das hasta que aparezca una instruccin EI. el ejemplo de Smplez es tan trivial que no permite
La parte del circuito formada por los biestables vislumbrar claramente todas las posibilidades que
PIN y BIN es bastante general, y en el Aparta- ofrece la microprogramacin. En Lecciones pos-
do 13.9 veremos cmo se incluye en un esque- teriores se pondrn de manifiesto.
ma ms elaborado (Figura 13.15). La generacin Hemos introducido tambin, sirvindonos de
de direcciones es muy especfica de Smplez+i4, Smplez+i4, los circuitos que hay que aadir en
y muy inflexible (las direcciones estn fijadas por la UCP para que pueda atender a interrupciones.
el hardware). Normalmente, el contenido de CP se
guarda en la pila (o en una de las pilas, la del su-
pervisor), o en un registro (como en el caso de
11.8. Observaciones terminolgicas
Regstrez), y la direccin de control se obtiene de El uso del prefijo micro para diferenciar los con-
un vector cuya direccin depende de la causa. ceptos de este nivel de los paralelos en el nivel de m-
quina convencional procede de Wilkes. Algunos au-
tores utilizan macro (macrooperacin, macroprogra-
11.7. Resumen macin, etc.) para distinguir mejor el nivel de mquina
convencional, pero hay que sealar que macroinstruc-
cin es ambiguo, ya que en los lenguajes macroen-
Dada una ruta de datos (modelo estructural en
sambladores se llama as a una construccin simbli-
el nivel de microarquitectura) y una especificacin ca que el ensamblador traduce a varias instrucciones de
exhaustiva de todas las secuencias de microrde- mquina (Apartado 17.4).
nes que deben generarse para la ejecucin de las Una observacin importante, ya adelantada en el
instrucciones de la mquina (modelo procesal), el Apartado 9.1, es que el prefijo micro en este contexto
diseo del secuenciador que genera estas micror- se refiere a un nivel conceptual de mayor proximidad a
denes se reduce al diseo de un circuito lgico los detalles fsicos, o de menor nivel de abstraccin (lo
secuencial, y, por tanto, pertenece al dominio del que hemos definido como el nivel de microarquitectu-
ra), y no tiene ninguna relacin con su utilizacin en
nivel de circuito lgico. Hemos comenzado esta
microprocesador, donde hace alusin al tamao fsi-
Leccin explicando cmo puede hacerse ese dise- co. De hecho, un ordenador grande puede tener sus se-
o para el caso de Smplez, lo que nos conduce a cuenciadores microprogramados o no, del mismo modo
una implementacin cableada del secuenciador. que un microprocesador puede estar internamente mi-
Ahora bien, hay una posibilidad alternativa pa- croprogramado o no.
ra el diseo: la implementacin microprogramada. Hemos utilizado en esta Leccin fase como sin-
Consiste sta en un modelo estructural construi- nimo de semiciclo de memoria, pero este trmino tie-
ne, en general, otro significado (Apartado 10.8).
do alrededor de una memoria de control en la que
se almacenan informaciones que generan las mi-
crordenes. Cada una de estas informaciones (ca- 11.9. Notas histricas
da contenido de una palabra de la memoria de con-
trol) es una microinstruccin, y el conjunto de mi- La primera publicacin sobre la microprogramacin
croinstrucciones necesarias para ejecutar una ins- es de su inventor (Wilkes, 1951). En Wilkes (1969)
truccin es el microprograma de esa instruccin. (cuando ya la idea se haba adoptado en las mquinas
comerciales, vase el Apartado 12.10) se sintetiza el es-
Una primera ventaja de la microprogramacin tado del arte inicial. Y un artculo muy interesante del
aparece al tener en cuenta las frecuentes modifica- mismo autor sobre los orgenes y la evolucin es Wil-
ciones que siempre tienen que hacerse durante el kes (1986). En el Apartado 12.10 pueden encontrarse
proceso de diseo de un secuenciador: muchas de ms referencias.
11.11. Ejercicios 363
11.10. Orientaciones bibliogrficas 5. Del mismo modo que en el ejercicio anterior, des-
criba la funcin que realizan las dos instrucciones
La arquitectura y la microarquitectura de Smplez implementadas por estos microprogramas:
son tan sencillas que es difcil encontrar algo parecido
en los textos. En el libro de Lee (1982) se describe el Instr. Dir.MC CO DB
secuenciador microprogramado de su mquina SDC: Instr.1 x1 scp, era d1
tiene 30 micrordenes y una memoria de control de 152 d1+8 incp, tra2, eac d1+1
palabras de 52 bits. d1+9 rsi, era d1+2
Otra mquina parecida a Smplez+i4 (no slo por el d1+10 lec,sum, eac d1+3
nombre) es Microsimplex (Carracedo et al., 1983): d1+11 scp, era 7
bus de direcciones de diecisis bits (y de datos de Instr.2 x2 sri, era d2
d2+8 lec, eri d2+1
ocho), veintisis instrucciones, direccionamientos in-
d2+9 sri, era d2+2
mediato, directo e indexado, registros acumulador y de
d2+10 lec, tra2, eac d2+3
ndice, e interrupciones. A diferencia de Smplez+i4, d2+11 scp, era 7
su diseo se basa en la selecccin de las caractersticas
esenciales de un microprocesador real, y se construy Es posible implementar estas instrucciones en el
fsicamente como herramienta didctica para descen- hardware definido para Smplez? Si no lo es, pro-
der al nivel de circuito elctrico (visualizacin de se- ponga alguna modificacin de ese hardware para
ales en los buses, etc.). Otras realizaciones en la mis- que sea posible.
ma lnea son las de Devore y Hardin (1987) y Morgan
(1988). 6. Supuesto que se han implementado las dos ins-
trucciones definidas en el ejercicio anterior, cul
es el nuevo modelo procesal (diagrama de esta-
11.11. Ejercicios dos) de Smplez?
1. Obtenga las frmulas lgicas de todas las mi- 7. Imagine que se presenta una avera en los circui-
crordenes de Smplez. tos del secuenciador microprogramado de Sm-
plez que consiste en que el bit ms significativo de
2. Otra posibilidad para la instruccin BZ en el se-
los que forman DMC (y entran al registro RA)
cuenciador microprogramado es el cableado del
est permanentemente puesto a 1.
modelo de Wilkes. Compare esta solucin con la
adoptada en la Figura 11.7 Qu instrucciones se ejecutan correctamente?
3. En el esquema del secuenciador cableado hemos Para aquellas que no se ejecutan correctamen-
incluido una entrada de arranque manual (Figu- te, qu instrucciones se ejecutan en su lugar?
ra 11.1), pero no en el del secuenciador micropro- 8. Al adaptar y extender los cronogramas de Sm-
gramado. Modifquelo para tener en cuenta esta plez para obtener los de Smplez+i4, qu modi-
entrada. ficacin hay que hacer al final de todos ellos para
4. Considere estos cuatro microprogramas para que cuando IP = 1 la UCP pase a un ciclo de inte-
Smplez: rrupcin? Dibuje el cronograma de este ciclo.
Instr. Dir.MC CO DB
9. En la Figura 11.8 los biestables estn sincroniza-
Instr.1 x1 sac, sum, eac d1 dos por flancos de subida. Compruebe que as de-
d1+8 scp, era 7 be ser, para que la ejecucin de EI sea retardada
Instr.2 x2 sac, eri, sco (Ejercicio 9 de la Leccin 2). Para verlo, dibu-
Instr.3 x3 sri, era d3 je el cronograma de EI y anote los instantes en
d3+8 lec, sum, eac d3+1 que PIN y BIN cambian de estado. Ahora bien,
d3+1+8 lec, sum, eac 7 no queremos que la ejecucin de DI tambin sea
Instr.4 x4 ecp, scp, era, bbz 7 retardada; dibuje el cronograma de DI.
Qu funcin realiza cada una de las cuatro ins- 10. Piense en una implementacin cableada para
trucciones? Smplez+i4. Cuntos biestables son necesarios?
364 Leccin 11. Microsmplez
Cuntas micrordenes tiene que generar? Qu y J de manera similar a como hemos utilizado el
capacidad de PLA o de ROM necesitaramos? biestable Z de Smplez.
11. Disee un esquema para Smplez+i4 micropro- 12. Si ha resuelto el Ejercicio 5 de la Leccin 4, ha
gramado. La idea ms sencilla consiste en utilizar definido un modelo funcional de Smplez+i4p en
para direccionar a la MC los tres bits del CO y los el nivel de mquina convencional. Defina ahora
bits I y J. Qu capacidad de MC es necesaria? los modelos estructural y procesal con el suficien-
Qu redundancias aparecen? Estudie otras alter- te detalle para especificar completamente un se-
nativas de diseo, por ejemplo, utilizar los bits I cuenciador cableado y otro microprogramado.