Anda di halaman 1dari 14

Leccin 11

Microsmplez

11.1. Propsito la Leccin anterior. En la implementacin cablea-


da, su diseo no es ms que el diseo de un sistema
En las Lecciones 9 y 10 hemos estudiado los lgico secuencial con cuatro entradas binarias (las
principios estructurales (registros, buses, memo- tres del cdigo de operacin y el estado del biesta-
rias, sistemas combinacionales, controladores, y ble Z) y quince salidas (las micrordenes que con-
su interconexin) y procesales (transferencias y trolan los componentes de la ruta de datos, la me-
micrordenes necesarias para ejecutar las instruc- moria y los perifricos). Aunque tal diseo escapa
ciones) en el nivel de microarquitectura. La gene- de los lmites de este curso (es propio del nivel de
racin de las micrordenes, decamos en el Apar- circuito lgico), es conveniente hacerlo, para com-
tado 9.2, queda a cargo de un sistema de control pararlo con el diseo del mismo secuenciador, pe-
que tiene en cuenta el cdigo de operacin y el ro con una implementacin microprogramada.
modo de direccionamiento de la instruccin que Antes de entrar en materia, es interesante resal-
en cada momento haya de ser ejecutada y otras tar un concepto ligado al secuenciamiento. La fun-
condiciones adicionales (estado de los indicadores cin esencial de un secuenciador es la misma que
y de las interrupciones). Aqu nos ocuparemos de tiene un intrprete de lenguaje (Apartado 22.3):
este sistema de control en el caso ms sencillo: el ambos deben analizar, una tras otra, las instruccio-
secuenciador central de Smplez. nes o las sentencias de un programa y producir las
Pretendemos en esta Leccin transmitir, apo- acciones oportunas para su ejecucin. Lo que los
yndonos en esta ruta de datos extraordinariamen- diferencia es:
te simplificada, las ideas bsicas sobre la construc- En el secuenciador el lenguaje es binario; el
cin y el funcionamiento de los secuenciadores, y, programa para el intrprete est en un lenguaje
en particular, el contraste entre dos enfoques di- simblico.
ferentes: la implementacin cableada y la imple- El secuenciador se realiza mediante circuitos
mentacin microprogramada. lgicos, o mediante microprogramas; el intr-
El secuenciador de Smplez est completamente prete de lenguaje suele realizarse con un pro-
especificado por el modelo procesal explicado en grama.

351
352 Leccin 11. Microsmplez

11.2. Un secuenciador cableado pa- I T Estado


0 0 O0 (fase 0 del ciclo de operando)
ra Smplez 0 1 O1 (fase 1 del ciclo de operando
1 0 I0 (fase 0 del ciclo de instruccin)
Biestables 1 1 I1 (fase 1 del ciclo de instruccin)
Tabla 11.1. Asignacin de estados en el secuenciador
El secuenciador puede estar en cuatro estados
cableado de Smplez.
diferentes: I0, I1, O0 y O1. Para codificar cuatro
estados necesitamos dos dgitos binarios, o, lo que
es lo mismo, para disear el circuito necesitamos arranque J Q J Q T1
dos biestables. Un problema genrico en el dise- R F _ R T _
cbf Q Q T0
o de circuitos secuenciales es el de la asignacin K K

de estados. Con dos biestables, B1 y B2, hay va-


rias maneras1 de establecer la correspondencia en- R

tre los cuatro estados a codificar y los cuatro esta-


T1
dos, 00, 01, 10 y 11, de los biestables. En principio si ( F )=1
cualquiera de las asignaciones es vlida, y podra- T0

mos decidir entre una y otra en funcin, por ejem-


plo, de un criterio de coste (elegir aquella que con- ebi
J Q I
duzca a un circuito ms econmico, sea en nmero R I _
Q O
de componentes o en facilidad para su realizacin, K

dependiendo de la tecnologa adoptada).


Figura 11.1. Biestables para la implementacin ca-
Un criterio interesante para facilidad de com-
bleada de Smplez.
prensin y de descodificacin es de tipo semn-
tico: atribuir a cada biestable un significado. As,
uno de los biestables, al que en adelante llamare-
mos T, puede servir para indicar en qu semi- entradas con el valor 1, por lo que cambia de
ciclo o fase (0 o 1) se est en cada momento, y estado en cada flanco de bajada de reloj. Mientras
el otro, que denominaremos I, para indicar si se (T) = 0 (salida Q de T a nivel bajo, o, lo que es lo
est en un ciclo de instruccin o en uno de ope- mismo, T0 = Q = 1), estaremos en la fase 0 (sea
rando. De este modo, la asignacin es la que se de ciclo de instruccin o de operando), y mientras
muestra en la Tabla 11.1. (T) = 1 (T1 = 1) estaremos en la fase 1. El bies-
T deber cambiar de estado con todos los flan- table F nicamente se pone a cero con la seal cbf,
cos de bajada de la seal de reloj, mientras que que es la microorden que se produce como conse-
I deber hacerlo siempre que haya que pasar de cuencia de la instruccin HALT. Cuando tal cosa
un ciclo de instruccin a uno de operando o vice- ocurre, el estado de T queda congelado, y, en
versa. Por tanto, podemos tener el cableado de la consecuencia, tambin queda congelado el estado
Figura 11.1, en la que pueden verse los biestables de toda la mquina. Slo se puede salir de esa si-
T e I, y un tercer biestable, F (funcionamiento), tuacin con una accin manual que ponga 1 en
que tiene la funcin auxiliar de permitir o inhibir el biestable F (arranque).
el secuenciamiento.
Mientras F tenga el estado 1 (situacin nor- El biestable I tendr el estado 1 (I = 1) en los
mal), el biestable T, de tipo JK, tiene sus dos ciclos de instruccin (I0 o I1), y 0 (O = 1) en los
de operando (O0 u O1). Deber cambiar siempre
1
Exactamente, 4! = 24. que haya que pasar de un tipo de ciclo a otro.
11.2. Un secuenciador cableado para Smplez 353

R durante O0 (T0 = 1, O = 1), nicamente para


T
Q
_ F
Q
_ las instrucciones LD y ADD.
Q Q
Z
Q
_
Por tanto, la frmula lgica para lec es:
Q
T0 T1 lec = T0I + T0O(LD+ADD)
cbf Y as podemos proceder para las quince mi-
eri ST
eac
LD crordenes que van a la ruta de datos, la MP y los
ADD circuitos eri
BR incp controladores de e/s, y para cbf (que resulta ser:
CO combinacionales
BZ cbf = T1IHALT).
CLR
DEC scp El caso de la microorden ebi (la que hace que
RI HALT ebi
CD cambie el estado del biestable I) no se obtiene di-
O I rectamente de los cronogramas, pero es muy fcil
Q J
_ I R
deducirla, ya que I debe cambiar de estado sola-
Q K mente:
R
al final del ciclo de instruccin de las instruc-
Figura 11.2 Secuenciador cableado para Smplez. ciones que tienen ciclo de operando (ST, LD y
ADD);
Esquema del secuenciador al final del ciclo de operando.
Los circuitos combinacionales de la Figura 11.2 La frmula lgica para ebi ser, pues:
deben generar las micrordenes oportunas en cada ebi = (ST+LD+ADD)IT1 + OT1
estado dependiendo del momento (lo que viene
determinado por los valores de las salidas de los
Realizacin
biestables T e I) y de la instruccin que haya de
ejecutarse (determinado por la salida del descodi- Estas frmulas lgicas constituyen una posi-
ficador del cdigo de operacin)2 , as como, en su ble implementacin del secuenciador (otra posi-
caso (en el estado I1 de la instruccin BZ), del con- ble implementacin es la microprogramada, a la
tenido del biestable Z. que dedicaremos los Apartados siguientes). Ahora
bien, dada una implementacin, la tecnologa elec-
Frmulas lgicas trnica actual nos ofrece varias posibilidades para
su realizacin. Por ejemplo:
Las frmulas lgicas que definen al bloque cir- Cablear un circuito con puertas AND, OR,
cuitos combinacionales se deducen fcilmente a NAND, etc.
la vista de los cronogramas.
Utilizar un PLA (Programmable Logic Array)
Por ejemplo, si fijamos nuestra atencin en lec o un FPGA (Field Programmable Gate Array)
y repasamos todos los cronogramas, veremos que con once entradas3 y diecisiete salidas.
esta microorden debe activarse:
Utilizar una ROM (Read Only Memory) con
siempre durante I0, es decir, la fase 0
seis entradas (los tres bits de CO, T0/T1, I/O,
(T0) del ciclo de instruccin, caracterizada por
y Z) y diecisiete salidas; la capacidad de la
T0 = 1 e I = 1;
ROM debera ser 26 = 64 palabras de diecisiete
2
Los nombres dados a cada una de las ocho salidas del bits.
descodificador se corresponden con los cdigos nemnicos
3
de operacin: la salida ST tendr el valor 1 (y las dems Son once, y no catorce como parece indicar la Figu-
0) cuando los tres bits del cdigo de operacin sean 000 ra 11.2, porque la salida Q de biestable Z es igual a Z, T0
(instruccin ST), etc. = T1 e I=O.
354 Leccin 11. Microsmplez

11.3. Control microprogramado Secuenciador cableado:


estado
ejecucin indicadores
Acabamos de ver cmo se puede construir un
sistema secuencial, el secuenciador de Smplez,

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

mente el cableado de los elementos. memoria de


circuitos de control
Pero todo sistema secuencial admite tambin direccionam.
(microprogramas)
una implementacin programada. Para controlar la
ruta de datos de Smplez hay quince microrde-

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

11.4. La micromquina de Wilkes RI

La Figura 11.4 reproduce, ligeramente retoca-


sco d
do, el primer esquema para la realizacin micro- MPX

programada de un secuenciador, propuesto hace


ms de cincuenta aos, y que hoy se conoce co- "matriz de "matriz de
RA rdenes" direcciones"
mo modelo de Wilkes.
El componente central es una memoria de con-
n
trol de 2n palabras que se seleccionan mediante un
registro, RA, de n bits. Las palabras estn repre-
sentadas por lneas horizontales, o hilos de pala-
bra, que se conectan o no a cada una de las lneas
verticales, o hilos de bit5 . En la figura se han re-
presentado con un punto los cruces en los que hay
conexin (bit = 1). As, el contenido de la palabra _
(microinstruccin) de direccin 0 (lnea superior) Q Q
E
sera 10... 110... 1, y al seleccionar esa palabra se
micrordenes
activaran las micrordenes correspondientes a los
hilos de bit que tienen 1. Figura 11.4 El esquema de Wilkes.
La memoria de control consta de dos partes. La
primera (matriz de rdenes, en la terminologa
original) activa las micrordenes, mientras que la primera microinstruccin da lugar a un conjunto
segunda (matriz de direcciones) direcciona la de micrordenes, y si entre ellas no se encuentra
microinstruccin siguiente a ejecutar. sco los d ltimos bits de la microinstruccin (los
El funcionamiento (modelo procesal de la mi- de la matriz de direcciones) determinan la direc-
cromquina) es el siguiente: cin de la siguiente microinstruccin a ejecutar,
Cuando una instruccin acaba de entrar en el re- direccin que se introduce en RA. El proceso se
gistro de instruccin, una microorden, sco, intro- repite hasta que la instruccin se ha ejecutado y la
duce el cdigo de operacin en el registro RA. siguiente se ha ledo de la memoria principal; la
De este modo, a cada cdigo de operacin le co- ltima microinstruccin la introduce en el registro
rresponde una direccin de la memoria de control, de instruccin y genera la microorden sco, y todo
en donde est la primera microinstruccin del mi- vuelve a empezar.
croprograma para ese cdigo de operacin. Esta E representa a un biestable de estado. Cuando
5 se ejecute la microinstruccin correspondiente al
Esta conexin puede ser, por ejemplo, a travs de un dio-
do; inicialmente (memoria sin grabar) existiran todas las co- ltimo hilo de palabra en la figura, la direccin de
nexiones, y la grabacin consiste en fundir mediante una co- la siguiente microinstruccin depender del valor
rriente aquellos diodos que corresponden a puntos en los que (0 o 1) de E. Otros biestables de estado pueden
no se desea conexin (bit = 0), obtenindose as una memoria estar conectados de manera similar.
de slo lectura o ROM (read only memory). La figura debe
entenderse slo como un esquema de principio. En particu- Para que el conjunto de la mquina funcione efi-
lar, no es que haya un descodificador cuyas salidas, como pa- cientemente, la memoria de control debe ser ms
rece indicarse, pueden cortocircuitarse. En realidad, todo rpida que la principal. En efecto, durante cada ci-
el conjunto (descodificador y matrices) puede realizarse con
una red de diodos. Desde un punto de vista lgico, cada lnea
clo de memoria principal debe producirse una se-
vertical es el resultado de una operacin OR de todas las cuencia de micrordenes, que implica la lectura
salidas del descodificador que tienen conexin con esa lnea. sucesiva de varias microinstrucciones.
356 Leccin 11. Microsmplez

eri
11.5. Un secuenciador micropro- R CO CD

gramado para Smplez D0D8


D9D11

Modelo estructural DB

El secuenciador microprogramado que vamos a 3 3


R
proponer para Smplez tiene el modelo estructural MC
de la Figura 11.5, y sigue, en lneas generales, el si sco =0,
DMC=(DB)+8 DMC 18 3
modelo de Wilkes. Las diferencias con ste son:
si sco =1, 4
DMC=(CO) RA
La microorden sco transfiere directamente des-
de el bus D, y no desde el registro de instruc-
cin. De este modo se gana tiempo, ya que la sco
cbf
introduccin de la instruccin en RI (mediante
eri) es simultnea con la introduccin del cdi-
go de operacin en RA (mediante sco). eac eri scp

La nica accin condicional a tomar (en la eje- micrordenes

cucin de la instruccin BZ) no la realizamos Figura 11.5. Secuenciador microprogramado para


mediante un cableado especial de la matriz de Smplez.
direcciones, sino mediante circuitos adiciona-
les, como luego veremos.
La memoria de control, MC, tiene diecisis pa- D9
D10
labras. De acuerdo con esto, RA tiene cuatro bits. D11
Sin embargo, la matriz de direcciones slo tiene
tres bits, como tambin tiene tres bits el campo de DB0
DB1
cdigo de operacin de las instrucciones. Lo que DB2
ocurre es que direccionan a dos mitades distintas
de la memoria de control. En efecto, al activarse la
1 0
microorden sco se transfieren los tres bits de ma- MPX sco
yor peso del bus D (que contienen el cdigo de
operacin) a RA, y en el bit de mayor peso de
ste se pone un nivel lgico 0, de modo que, en
este caso, la direccin que se introduce en RA, o DMC3
direccin de memoria de control, es DMC = (CO), DMC2
DMC1
0 DMC 7. Pero si no se activa (sco = 0), en el
DMC0
bit de mayor peso se pone un nivel 1, y en este
otro caso, 8 DMC 15. As, con sco = 1 se di- Figura 11.6. Detalle (nivel de circuito lgico) del di-
reccionan las ocho primeras palabras de la MC (di- reccionamiento de la memoria de control de Smplez.
reccin determinada por el cdigo de operacin) y
con sco = 0 las otras ocho. El detalle de los circui-
tos lgicos que permiten hacer esto puede verse en en adelante, DB (direccin de bifurcacin). En
la Figura 11.6. efecto, con este esquema, toda microinstruccin
A los tres bits de cada microinstruccin inclui- contiene una bifurcacin a la microinstruccin si-
dos en la matriz de direcciones les llamaremos, guiente.
11.5. Un secuenciador microprogramado para Smplez 357

Modelo procesal tima). Llamando 0, 1,... 17 a los bits de


CO, haremos la asignacin de micrordenes a
En cada ciclo de la memoria principal se pro- bits segn la numeracin dada en la Tabla 9.1, que
ducen dos lecturas sucesivas de microinstruccio- repetimos aqu, agrupando las micrordenes segn
nes en la memoria de control. Cada microinstruc- su funcin:
cin corresponder a un semiciclo (I0, I1, O0 o
O1), y deber generar las micrordenes correspon- (a) De entrada en AC:
dientes. Entre ellas puede estar o no sco. Si est 0. eac
(sco = 1), entonces la direccin de la siguiente mi-
croinstruccin se obtiene del campo CO del bus D: (b) De entrada en RI:
DMC = (CO); si no (sco = 0), entonces la direc- 1. eri
cin se obtiene del campo DB de la microinstruc-
cin actual: DMC = (DB) + 8. (c) De entrada en CP:
Ahora ya no existen los biestables T e I de la 2. incp; 3. ecp; 4. ccp
implementacin cableada: su funcin queda sus-
(d) De entrada en RA:
tituida por el secuenciamiento de micrordenes
5. era
determinado por el campo DB de cada una de
ellas. Tampoco est el biestable F: la microorden (e) De gobierno de la UAL:
cbf pone a cero el permiso de entrada del registro 6. pac; 7. sum; 8. tra2; 9. dec1
RA, que se queda con la ltima direccin intro-
ducida en l. El resultado es que el secuenciador (f) De gobierno de la MP:
sigue generando indefinidamente las ltimas mi- 10. lec; 11. esc
crordenes (entre ellas, cbf).
(g) De transferencia hacia el bus D:
12. sac
Modelo funcional
(h) De transferencia hacia el bus Ai:
El modelo funcional en el nivel de microm- 13. sri; 14 scp
quina es lo que debe conocer el microprograma-
dor para escribir los microprogramas que permiten (i) De gobierno del secuenciador:
ejecutar las instrucciones. En este caso, y adems 15. cbf; 16. sco; 17. bbz
de la ruta de datos y de las secuencias de micror-
denes necesarias para cada instruccin, slo nece-
Microprogramacin
sita saber el formato de las microinstrucciones y
la asignacin de bits de las palabras de la memoria Hay una microinstruccin que debe ejecutarse
de control a las micrordenes. para todas las instrucciones. Es la que correspon-
Segn lo dicho ms arriba, las microinstruccio- de a la primera fase del ciclo de instruccin (I0),
nes tienen dos campos. El primero, CO, corres- en la que se han de producir las micrordenes lec
ponde a la matriz de rdenes y tiene un bit para (10), eri (1) e incp (2), y ahora, adems, sco (16).
cada una de las micrordenes. El segundo, DB, de El contenido del campo DB es indiferente en este
tres bits, contiene la informacin sobre la direc- caso, puesto que, al darse sco, la direccin siguien-
cin de la siguiente microinstruccin. te est determinada por la instruccin que acaba de
Hay dieciocho micrordenes: las diecisiete de leerse.
la realizacin cableada, menos ebi, ms sco y ms Colocaremos esta microinstruccin comn en la
bbz (luego veremos la necesidad de aadir esta l- ltima palabra de la memoria de control. Es decir:
358 Leccin 11. Microsmplez

Dir.MC CO DB La microinstruccin comn implementa la fase


17 16 15 ... 10 ... 2 1 0
(o semiciclo) T0 del ciclo de instruccin, es decir,
15 0 1 0 ... 1 ... 1 1 0
I0, y la microinstruccin especfica de cada ins-
( quiere decir indiferente). truccin corresponde a I1.
En adelante, para mayor claridad, sustituiremos En el caso de la instruccin ADD (cdigo 010),
esta codificacin binaria por la indicacin de las tras la primera microinstruccin especfica (la que
micrordenes mediante su nombre y la direccin corresponde a la segunda fase del ciclo de instruc-
siguiente en decimal6 : cin, I1) hay que pasar a un ciclo de operando, que
requiere dos microinstrucciones (correspondientes
Dir. MC CO DB a O0 y O1). Igual ocurre con LD y ST.
15 lec, sco, eri, incp

Si el cdigo ledo e introducido en RA es Organizacin de la memoria de control


111 se trata de la instruccin HALT7 . En este ca-
De acuerdo con lo dicho, tendremos la mi-
so slo hay que generar cbf, ccp, scp y era y bi-
croinstruccin comn en la direccin 15 de la MC,
furcar a la direccin 15:8
y las direcciones 0 a 7 para la primera microins-
Dir. MC CO DB truccin especfica (I1) de cada una de las ins-
7 cbf, ccp, scp, era 7 trucciones. Adems, necesitamos dos palabras pa-
ra ADD, otras dos para ST y otras dos para LD. En
Observe que en el campo DB se pone 7. Co- total, quince palabras son necesarias en la MC. Te-
mo ya hemos visto, el hardware que genera la di- niendo en cuenta los cdigos binarios de opera-
reccin de la siguiente microinstruccin pondr cin, podemos establecer el esquema de asigna-
1 en el bit de peso 3, dando as el resultado ciones de palabras a microinstrucciones indicado
7 + 8 = 15. en la Tabla 11.2.
Si el cdigo es 110 se trata de DEC:
Dir. MC Microinstruccin correspondiente a
Dir. MC CO DB 0 I1 de ST
6 dec1, eac, scp, era 7 1 I1 de LD
2 I1 de ADD
En ambos casos, el microprograma slo tiene 3 I1 de BR
dos microinstrucciones: la comn (en la direccin 4 I1 de BZ
15) y la especfica, en la direccin determinada por 5 I1 de CLR
6 I1 de DEC
el cdigo de operacin.
7 I1 de HALT
6
Salvo que el lector tenga poca memoria, esto debe recor- 8 O0 de ST
darle la idea de eludir el uso del lenguaje de mquina binario, 9 O1 de ST
definir un ensamblador (lenguaje) o un lenguaje de nivel ms 10 O0 de LD
alto, utilizar ensambladores o compiladores... (Apartado 3.7). 11 O1 de LD
Pues s, tambin hay microensambladores y microcompilado- 12 O0 de ADD
res (Apartado 12.5). 13 O1 de ADD
7
En la Tabla 1.2 pueden consultarse los cdigos de opera- 14 libre
cin binarios de Smplez. 15 I0 comn (incluyendo sco)
8
Como cbf = 1, esta direccin 15 no se introducir en
RA, y se seguir ejecutando indefinidamente la microins- Tabla 11.2. Organizacin de la memoria de control en
truccin de direccin 7, hasta que, mediante unos circuitos
no incluidos en la Figura 11.5 (Ejercicio 3), una accin ma- Smplez.
nual externa permita la entrada en RA.
11.5. Un secuenciador microprogramado para Smplez 359
0
Circuitos adicionales 1 MC
2
3
Microprogramar Smplez no es otra cosa que 4 bbz, sri, ecp, scp, era 111
decidir qu micrordenes deben incluirse en ca-
da una de las quince palabras de la MC (ya hemos
visto algunas, las de direcciones 6, 7 y 15).
Considerando todo lo anterior, el lector puede 15

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

so (biestable Z e instruccin BZ), adoptaremos una


solucin que implica unos sencillos circuitos adi- sri ecp scp
cionales especficos para esa situacin.
Si revisamos el cronograma para BZ (la Figu- Figura 11.7 Lgica adicional para la instruccin BZ.
ra 10.6 corresponde a BR, y en la explicacin que
la acompaa se indica su modificacin para BZ) Siguiendo esta idea, la Figura 11.7 muestra un
vemos que las micrordenes a generar durante I1 esquema para su realizacin. En la parte inferior
son: (y descendiendo al nivel de circuito lgico) pode-
si (Z) = 1 (bifurcacin), sri, ecp y era; mos ver que el hardware adicional es efectivamen-
si (Z) = 0 (no bifurcacin), scp y era. te muy sencillo.
En ambos casos, la microinstruccin siguiente de-
be ser la de direccin 15.
Pues bien, la solucin consiste en que la mi- Microprogramas
croinstruccin de direccin 4 genere todas las mi-
crordenes: sri, ecp, era y scp. Unos circuitos Teniendo en cuenta la asignacin de direcciones
externos a la MC eliminarn posteriormente la o de la memoria de control que hemos hecho ms
las que sobren, segn el valor de Z. Pero hay que arriba (Tabla 11.2) y los cronogramas de la eje-
adoptar una precaucin muy importante: estos cir- cucin de las instrucciones que vimos en la Lec-
cuitos solamente debern actuar en el caso de la cin anterior (Figuras 10.5 a 10.8), esperamos que
instruccin BZ, o, lo que es lo mismo, slo cuando el lector no tenga ninguna dificultad para deducir
lo que se lea de la MC sea la microinstruccin al- los contenidos de las palabras de la memoria de
macenada en la direccin 4. De ah la necesidad de control, que materializan a los microprogramas de
un nuevo bit (el de nmero 17), al que correspon- todas las instrucciones de Smplez. Le sugerimos
de una microorden interna al secuenciador, bbz. que lo haga antes de dar la vuelta a esta pgina,
Su valor ser 1 solamente en la palabra almace- para comprobar su solucin con la que aparece en
nada en esa direccin. la Tabla 11.3.
360 Leccin 11. Microsmplez

CO Dir.MC CO DB X las micrordenes de entrada y salida, o bien


que genere slo una de entrada y otra de sali-
ST 0 sri, era 0
da, y que una conexin directa desde el bit R
LD 1 sri, era 2 del registro de instruccin controle sobre cul
ADD 2 sri, era 4 de los dos registros se acta.
BR 3 sri, ecp, era 7 Un sumador de direcciones para el direcciona-
BZ 4 sri, ecp, era, scp, 7 miento indexado, con una entrada desde el re-
bbz gistro X y otra seleccionable entre el campo
CLR 5 pac, eac, scp, era 7 CD del registro de instruccin y el bus D (pa-
ra el caso indirecto e indexado). La salida de
DEC 6 dec1, eac, scp, 7
este sumador ha de poder depositarse sobre el
era
bus Ai. Si se le dota de las operaciones su-
HALT 7 cbf, ccp, scp, era 7 mar y transferir la entrada 2 a la salida, este
ST (O0) 8 esc, sac 1 mismo sumador sirve de camino para transfe-
ST (O1) 9 scp, era, sac 7 rir del bus D o del campo CD al bus Ai en los
casos de direccionamiento indirecto y directo,
LD (O0) 10 lec, tra2, eac 3
respectivamente9 .
LD (O1) 11 scp, era 7
Una conexin del campo CD del registro de
ADD (O0) 12 lec, sum, eac 5 instruccin hacia el bus D para transferir el ope-
ADD (O1) 13 scp, era 7 rando en caso de direccionamiento inmediato.
14 Una salida de CP al bus D para guardar su con-
(I0) 15 lec, eri, incp, sco tenido en la MP en caso de interrupcin.
Tabla 11.3 Microprogramas de Smplez. Un circuito para atender a las interrupciones
que detallaremos enseguida.

11.6. Microsmplez+i4 El secuenciador recibir como entradas, adems


de CO y Z, tres nuevas informaciones binarias:
Una ruta de datos y un modelo procesal para J e I, procedentes del registro de instruc-
Smplez+i4 se han propuesto como ejercicios en cin. R (no el reloj, sino el bit del registro de
las dos Lecciones anteriores. No vamos a dar aqu instruccin) no es necesaria, si, como se ha su-
soluciones, sino ideas generales que, aparte de su gerido ms arriba, acta directamente sobre la
posible utilidad para que el lector confirme o re- ruta de datos.
vise sus respuestas a esos ejercicios, nos servirn IP, procedente del circuito de atencin a inte-
para presentar otro componente del nivel de mi- rrupciones, que se activa cuando, estando stas
croarquitectura: el hardware necesario en la UCP permitidas, uno de los perifricos pide interrup-
para atender a las interrupciones. cin.

Sobre la ruta de datos 9


Otra posible ruta de datos se obtiene utilizando la misma
Con relacin a la de Smplez, la ruta de datos UAL para la obtencin de la direccin efectiva. As se ahorra
debe incluir estos nuevos elementos: el sumador de direcciones, pero se hace necesaria una pre-
caucin especial: cuando sume direcciones, la UAL no debe
El registro X, con entrada desde la UAL y sa- modificar el biestable Z; para esto, puede existir una entrada
lida al bus D. Puede hacerse que el secuencia- nueva a la UAL, que ser una microorden ms generada por
dor genere independientemente para AC y para el secuenciador.
11.6. Microsmplez+i4 361

Sobre el modelo procesal bus Ai


12
Los detalles ms importantes a tener en cuenta sdrs
sobre el nuevo modelo procesal son el direcciona-
miento indirecto y las interrupciones. 111110100000 000000111111
En las instrucciones que hacen referencia a me-
moria, al terminar el ciclo de instruccin hay que
tener en cuenta el valor del bit I de RI. Si I = 0 upi
J Q
se procede como en Smplez, pero si I = 1 se pasa cpi PIN _
a un ciclo de indireccin (II0, II1) para leer de la K Q

MP el puntero y se calcula la direccin efectiva, IP


dejndola en RA. Despus, si la instruccin es ST, Q
_ BIN
J INT

LD o ADD se pasa al ciclo de operando, y si es BR Q K


o BZ con (Z) = 1 se termina la ejecucin poniendo cbi

la direccin efectiva en CP y en RA.


Figura 11.8. Circuitos en la UCP de Smplez+i4 para
Por lo que respecta a las interrupciones, al ter-
el reconocimiento y la atencin de interrupciones.
minar de ejecutar toda instruccin el secuencia-
dor ha de comprobar si puede pasar a la siguien-
te (IP = 0) o si tiene que atender a una interrup- Por INT, lnea de colector abierto (Aparta-
cin (IP = 1). Si ningn perifrico est pendiente do 9.5), entran las peticiones de interrupcin del
de interrupcin, o si lo est pero las interrupcio- teclado y la pantalla (y de otras posibles causas,
nes estn inhibidas, la UC debe pasar a I0 (para vase el Ejercicio 13 de la Leccin 2).
seguir ejecutando instrucciones del programa). Si El biestable PIN cambia de 0 a 1 con la
hay una interrupcin pedida y adems las interrup- instruccin EI (cuya ejecucin hace que el se-
ciones estn permitidas (IP = 1) el proceso a se- cuenciador genere la microorden upi), y de 1 a
guir por la UCP debe ser el apuntado en el Apar- 0 con la DI (microorden cpi) pero tambin,
tado 2.8: automticamente, cuando el biestable BIN se po-
1. Almacenar (CP) en la direccin 63. Esto im- ne a uno. Este segundo es el biestable provocador
plica un ciclo de interrupcin, durante el cual de interrupcin: nicamente se pone a uno si hay
pueden realizarse tambin las siguientes accio- una interrupcin pedida y, adems, PIN = 1. El se-
nes. cuenciador consulta la salida de BIN, IP, en la lti-
2. Inhibir las interrupciones. ma fase de la ejecucin de todas las instrucciones.
3. Introducir en CP y en RA el valor 4.000 (direc- Si IP = 1, inhibe la lectura de la siguiente instruc-
cin donde comienza el Programa 2.5). cin y genera cbi, lo que tiene dos efectos: poner
4. Pasar a I0. a cero BIN y preparar la direccin D63=Q0077
en el bus Ai para guardar CP. Entra entonces en
el ciclo de interrupcin, en cuya primera fase es-
Circuitos para el reconocimiento y la aten-
cribe (CP) en la direccin 63 y en la segunda ge-
cin de interrupciones nera sdrs (salida de la direccin de la rutina de
En la Figura 11.8 puede verse un posible es- servicio) para poner sobre el bus Ai la direccin
quema del circuito que, conjuntamente con el se- D4.000=Q7640, era y ecp (Ejercicios 8 y 9).
cuenciador, permite reconocer si hay interrupcio- Observe que BIN es transparente al programa-
nes pendientes y generar las direcciones oportunas dor. ste slo puede manipular PIN (con EI y DI).
durante el ciclo de interrupcin. Cuando se ha pasado a atender a una interrupcin
362 Leccin 11. Microsmplez

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.

Anda mungkin juga menyukai