Está en la página 1de 20

Leccin 9

Componentes de los modelos estructurales

9.1. Propsito la unidad de control: si se construye con lgica


cableada, entonces los sistemas del nivel de m-
Los modelos estructurales y procesales en el ni- quina convencional se implementan directamente
vel de mquina convencional estudiados en la Pri- con componentes que son sistemas del nivel de
mera Parte son rudimentarios, pero suficientes pa- circuito lgico. El nivel de micromquina aparece
ra el usuario de la mquina (programador en este cuando la implementacin de la unidad de control
nivel), que necesita fundamentalmente un modelo se basa en una memoria (memoria de control) cu-
funcional completo y solamente una idea general yo contenido (microprogramas) determina el mo-
de la estructura y del funcionamiento internos. Pa- delo procesal. Estudiaremos con todo detalle esta
ra el diseador, o, simplemente, para quien quie- implementacin en las Lecciones 12 y 13.
ra comprender cabalmente el funcionamiento, son Esta Segunda Parte tiene como ttulo El nivel
necesarios modelos mucho ms detallados. de microarquitectura. Segn la definicin que da-
Empezaremos esta Segunda Parte estudiando remos en el Apartado 12.7, la microarquitectu-
los componentes y los elementos conceptuales b- ra comprende los modelos del nivel de microm-
sicos con los que se construyen esos modelos de- quina, si sta existe, y, en todo caso, los mode-
tallados, en dos Lecciones de carcter general. En los estructurales y procesales detallados del nivel
sta presentaremos los bloques que componen de mquina convencional, independientemente de
los modelos estructurales, y en la siguiente defi- la tcnica seguida para la implementacin de la
niremos la notacin para los modelos procesales. unidad de control. A este respecto, conviene ha-
Adems, en ambas adelantaremos, como ilustra- cer una precisin terminolgica: Microsmplez
cin, los modelos correspondientes a Smplez, cu- (Leccin 11), Microalgortmez (Leccin 13) y
ya implementacin estudiaremos en la Leccin 11. Microrregstrez (Leccin 16) son las mismas
Los de Algortmez y Regstrez se vern en sus res- mquinas (Smplez, Algortmez y Regstrez) des-
pectivas Lecciones (13 y 16). critas en el nivel de microarquitectura. (El prefijo
El nivel de micromquina no siempre existe micro no tiene aqu nada que ver con el tamao
(Apartado 0.7). Depende de cmo est concebida fsico).

319
320 Leccin 9. Componentes de los modelos estructurales

RUTA DE DATOS: SISTEMA DE CONTROL: OTROS SUBSISTEMAS:


transferencias

micrordenes

micrordenes

instrucciones
instruc

datos e
ciones secuenciador memoria
micrordenes

estado central principal

datos
ruta de datos

micrordenes

micrordenes
micrordenes secuenciador

datos
perifrico
subordinado

Figura 9.1 Modelo estructural abstracto del nivel de mquina convencional.

9.2. Ruta de datos y sistema de con- de entrada y salida), un secuenciador que gobier-
trol na el funcionamiento del perifrico. Asimismo, la
memoria principal y ciertos operadores aritmti-
Una ruta de datos es una estructura constitui- cos pueden requerir un secuenciador propio. Son
da por un conjunto de elementos (buses, registros estos secuenciadores, central y subordinados, los
y circuitos combinacionales) interconectados, cu- que definen realmente el funcionamiento de la m-
yas funciones son transferir, memorizar y proce- quina, porque la ruta de datos es un sistema pasi-
sar las informaciones (instrucciones, direcciones vo, gobernado por ellos.
y operandos) procedentes de (o con destino a) la As, el conjunto de secuenciadores constituye
MP y los dispositivos perifricos. un sistema de control, que gobierna y controla las
Los elementos de la ruta de datos son rganos actividades de la ruta de datos y las de otros com-
ejecutores, que obedecen las rdenes dadas por un ponentes (operadores aritmticos secuenciales, pe-
sistema de control. rifricos, memoria principal, etc.) en el proceso de
bsqueda y ejecucin de las instrucciones. Desde
Secuenciadores esta perspectiva, un modelo estructural genrico
en el nivel de mquina convencional es el formado
En los modelos estructurales de grandes blo- por los componentes mostrados en la Figura 9.1.
ques que presentbamos en la Primera Parte (Fi- El inters de este punto de vista (ms abstracto
guras 1.1, 2.1, 6.1 y 8.1) aparecan una unidad de que el de las Figuras 1.1, 2.1, 6.1 y 8.1) es que
control y unos controladores de entrada y sali- pone de manifiesto las funciones de cada una de
da. En la unidad de control hay algunos elemen- esas grandes partes: el secuenciador central gene-
tos de la ruta de datos, como el contador de pro- ra micrordenes para gobernar el funcionamiento
grama y el registro de instruccin, pero su compo- de la ruta de datos, y sta realiza las funciones de
nente fundamental es el secuenciador central: un transferencia, procesamiento y memorizacin. Los
sistema que genera en cada momento las micror- secuenciadores subordinados gobiernan a la MP, a
denes oportunas (seales binarias) para que se lle- los perifricos, y, en general, a cualquier otro sub-
ven a cabo las operaciones en los otros componen- sistema que tenga un modo de funcionamiento se-
tes de la ruta de datos. Igualmente, los controlado- cuencial (por ejemplo, la unidad de gestin de me-
res de perifricos tienen, entre otros componentes moria de Algortmez, o la unidad de coma flotante
(como los registros que materializan a los puertos de Regstrez).
9.3. Componentes de las rutas de datos 321

Funcionamiento sncrono NOT: OR: AND:


s e1 e1 s
e s
Aunque en esta Leccin nos centraremos en los e2 e2
_
s=e s = e1 + e2 s = e1 . e2
modelos estructurales, tendremos que adelantar al-
e s e1 e2 s e1 e2 s
gunos detalles procesales, especialmente para po- 0 1 0 0 0 0 0 0
1 0 0 1 1 0 1 0
der describir los modelos funcionales de los com- 1 0 1 1 0 0
1 1 1 1 1 1
ponentes. Supondremos que el modo de funcio-
namiento es, esencialmente, sncrono, gobernado
por una seal de reloj peridica, R. Esto quiere de- XOR: NOR: NAND:
cir que hay sincrona (correspondencia en el tiem- e1 s
e1
s
e1 s
e2 e2 e2
po) entre los cambios de valor de los niveles lgi- __________ _____
s = e1 e2 s = e1 + e2 s = e1 . e2
cos de las micrordenes y los cambios de valor del e1 e2 s e1 e2 s e1 e2 s
nivel lgico del reloj. Sin embargo, tambin vere- 0 0 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1 1
mos un modo de funcionamiento asncrono para 1 0 1 1 0 0 1 0 1
1 1 0 1 1 0 1 1 0
las transferencias con los controladores de perif-
ricos. Figura 9.2 Puertas lgicas.
Cada secuenciador tiene su propio reloj, una se-
al peridica cuadrada: permanece el mismo tiem-
po en el nivel lgico 0 que en el 1. Llamare- 9.3. Componentes de las rutas de
mos flanco de subida al cambio de 0 a 1 de datos
esta seal y flanco de bajada al cambio de 1 a
0. El perodo de reloj es el tiempo que transcu- El nivel de abstraccin de microarquitectura es
rre entre dos flancos de subida o entre dos flancos superior al nivel de circuito lgico. Pero a veces es
de bajada. conveniente, para una mejor comprensin, descen-
Para uniformar la exposicin, supondremos der a ste. Vamos a recordar brevemente las fun-
tambin que las micrordenes generadas por un ciones de las puertas lgicas, los biestables y los
secuenciador slo cambian de valor (de 0 a 1 registros, dando por supuesto que el lector ya sabe
o de 1 a 0) en los flancos de bajada del reloj. algo de este nivel (de no ser as, puede acudir al
Por tanto, todas las micrordenes estn sincroni- Apndice B, donde se resumen los conocimientos
zadas con el reloj y sus valores permanecen cons- necesarios).
tantes entre dos flancos de bajada: cada vez que
llega uno el secuenciador cambia de estado, y, con Puertas lgicas
un pequeo retardo (despreciable con relacin al
perodo de reloj, pero importante, como veremos, En la Figura 9.2 aparecen los smbolos grficos
para el funcionamiento), algunas de las microrde- de los distintos tipos de puertas, junto con las fun-
nes que estaban activas desaparecen (cambian ciones lgicas que realizan.
de 1 a 0), otras que no lo estaban aparecen
(cambian de 0 a 1), y otras mantienen su va- Sistemas combinacionales
lor.
Trataremos como cajas negras a los sistemas
Finalmente, y para concretar, supondremos que
construidos con puertas. Las entradas y salidas se-
el perodo del reloj de la UCP es 100 ns (fre-
rn, en general, configuraciones o listas1 de
cuencia 10 MHz) en Smplez, 30 ns (frecuen-
cia 33 MHz) en Algortmez y 10 ns (frecuencia 1
No conjuntos, porque el orden es importante: la confi-
100 MHz) en Regstrez. guracin 110 es diferente de 011 y de 101.
322 Leccin 9. Componentes de los modelos estructurales

Op RESULT
16 12
Op 16 16 pac
UD sum
UAL UAL tra2
1 2 dec1

16 16 12 12
OP1 OP2
16 50ns tiempo
16
R
DSC MPX
2
4 sum
16 16 16 16
Op OP1

16 16 funcin
ALN lgica OP2

Figura 9.3 Sistemas combinacionales. RESULT =


OP1+OP2

niveles lgicos, es decir, cadenas de ceros y unos. Figura 9.4 Unidad aritmtica de Smplez.
Cuando sea preciso concretar el nmero n de nive-
les (o nmero de lneas) lo indicaremos al lado (Apartado 14.2) y en la ruta de datos de Regstrez
de una pequea barra inclinada sobre la correspon- (Apartado 16.5).
diente lnea, como puede verse en la Figura 9.3, Finalmente, a veces tendremos necesidad de in-
donde hemos supuesto n = 16 en la mayora de los dicar funciones lgicas particulares, para las que
casos. existir un circuito combinacional en cuya com-
Una unidad aritmtica y lgica (UAL) tiene posicin no siempre entraremos.
dos entradas y una salida, aunque para ciertas ope- Supondremos que el tiempo de respuesta de
raciones (not, dec, etc.) acta solamente sobre una cualquier circuito combinacional es inferior a la
de las entradas. A veces se utiliza, adicionalmente mitad de un perodo de reloj (en el caso de Sm-
a la UAL, otra unidad aritmtica exclusivamente plez este tiempo es 50 ns, en Algortmez 15 ns y
para el clculo de la direccin efectiva; la llamare- en Regstrez 5 ns). Como ejemplo, en la Figura 9.4
mos sumador de direcciones (SD). Las operacio- puede verse que la salida de la UAL de Smplez,
nes que consisten en desplazamientos y rotaciones ante cambios en las entradas que se producen en
de un operando suelen realizarse en un subsistema un flanco de bajada, se estabiliza con un peque-
especfico, la unidad de desplazamiento (UD). o retardo, pero siempre antes del siguiente flan-
Un descodificador (DSC) n a 2n (n = 4 en la co de subida. Las zonas sombreadas indican que
figura) activa una de sus salidas en funcin de la las seales toman valores concretos, unas 0 y
codificacin binaria que se presenta a la entrada. otras 1: OP1, OP2 y RESULT no son seales bi-
Un multiplexador (MPX) de 2m grupos de entra- narias, sino listas de seales (doce en Smplez,
das de n lneas cada grupo (m = 2, n = 16 en la diecisis en Algortmez y treinta y dos en Regs-
figura) selecciona a la salida uno de los grupos de trez). Una lnea horizontal antes o despus de una
entrada, de acuerdo con la codificacin binaria da- zona sombreada significa que los valores estn in-
da en las m lneas de seleccin. definidos2 . Observe que sum es una microorden
Los circuitos de alineamiento (ALN) colo-
can un dato en las lneas adecuadas. Veremos su 2
Normalmente, debido a que proceden de un bus que est
utilidad en el controlador de la MP de Algortmez en estado de alta impedancia (Apartado B.6).
9.3. Componentes de las rutas de datos 323

generada por el secuenciador, y, por tanto, cambia Entradas de datos:


de valor con un ligero retraso con respecto a los S Q J Q D Q
_ _ _
flancos de bajada; esto se indica en la figura por la R Q K Q Q
inclinacin con que sube y baja.
SR Qantes Qdesp. JK Qantes Qdesp. D Qantes Qdesp.

00 Q Q 00 Q Q 0 Q 0
01 Q 0 01 Q 0 1 Q 1
Biestables 10 Q 1 10 Q 1_
11 Q ? 11 Q Q
De los biestables cabe decir lo mismo que de
las puertas: slo aparecern en la descripcin del Entradas de control:

nivel de microarquitectura cuando sea necesario, Q Q Q Q


R CL _ R CL _ R CL _ R CL _
o conveniente, dar algn detalle a nivel de bit. Q Q Q Q
En la Figura 9.5 recordamos las funciones de los cerrojo cerrojo sincronizado sincronizado
positivo negativo por flancos por flancos
tres tipos ms comunes: SR, JK y D. Por otra par-
de subida de bajada
te, e independientemente de ese tipo, los biestables
tienen una entrada de control, normalmente conec- Figura 9.5 Biestables.
tada al reloj (CL), con cuatro modalidades dis- cerrojo
positivo n
tintas de funcionamiento: en el biestable cerro-
R err
jo los eventuales cambios de estado se producen
siempre que CL = 1 (entrada de control positiva) n
o CL = 0 (entrada de control negativa), mientras cerrojo
que en los sincronizados por flancos los cam- negativo
n
bios nicamente pueden producirse en el instante R err

en que la entrada CL presenta una transicin de


0 a 1 (sincronizado por flanco de subida) o de 1 n
sincronizado
por flancos
a 0 (sincronizado por flanco de bajada). El smbo- de subida
n
lo de un determinado biestable se obtendr super- R err
poniendo uno de los tres de la parte superior de la
figura con uno de los cuatro de la parte inferior. n
Como indican los smbolos de la figura, la reali- sincronizado
por flancos
zacin de los biestables normalmente permite dis- de bajada n
R err
poner tanto de la salida que corresponde al estado,
Q (0 o 1), en que se encuentra el biestable
n
como de su complemento, Q (1 o 0, respecti-
vamente). Figura 9.6 Registros.

Registros
queda sustituido por los valores de las n entradas.
Al utilizar un registro haremos abstraccin del S ser importante indicar si es de tipo cerrojo, o
tipo (SR, JK o D) de sus biestables componentes y sincronizado por flancos de subida, o sincronizado
de los circuitos lgicos asociados. Slo nos intere- por flancos de bajada (vase la notacin grfica en
sa saber que es un registro de carga en paralelo, la Figura 9.6).
que mantiene un estado de n bits a su salida mien- Adems, una circuitera adicional interna per-
tras no se den ciertas condiciones en sus entradas, mite disponer de un permiso de entrada, u or-
y que cuando estas condiciones se dan su estado den de carga, err (entrada en el registro RR).
324 Leccin 9. Componentes de los modelos estructurales

La funcin de esta seal es permitir o inhibir la S = (RR)


carga del registro, es decir, la transferencia a sus n
R err
biestables (y la presentacin a su salida) de los ni- RR
veles lgicos presentes en la entrada. As, en un sincronizado
n
por flancos
registro sincronizado por flancos de bajada los ni- de bajada E
veles presentados a su entrada sustituyen a los que
tuviese previamente el registro nicamente en el R

instante de la transicin de 1 a 0 de R (la seal E


DAT1 DAT2
de reloj, que va a las entradas CL de los biesta-
bles) y solamente si en ese instante err = 1. err
La Figura 9.7 ilustra el comportamiento de los
registros sincronizados por flancos. La microorden S DAT1 DAT2
de carga, err, la genera el secuenciador, y ste fun-
ciona sincronizado con el mismo reloj que activa
la entrada CL de los biestables del registro. Por S = (RR)

tanto, err aparece (cambia de 0 a 1) inmedia- n


err
tamente despus de un flanco de bajada. En conse- R RR
cuencia, su efecto sobre el registro no ocurre hasta sincronizado
por flancos n
el siguiente flanco, y de ah que el registro conser- de subida E
ve los valores que tuviese anteriormente hasta el
siguiente flanco de bajada (parte superior de la fi- R
gura) o de subida (parte inferior), segn el tipo de E
DAT1 DAT2
registro.
En el primer caso (registro sincronizado por err
flancos de bajada), la microorden err y el dato de
entrada se quitan en el mismo flanco de bajada, S DAT1 DAT2
pero como estas acciones son dependientes del se-
cuenciador, y, por tanto, aunque sea mnimamente, Figura 9.7. Registros sincronizados por flancos: mode-
van retrasadas con relacin a ese flanco, el resulta- lo funcional.
do es que el registro toma el valor de la entrada.
En un registro cerrojo la salida toma el valor que
el tiempo de basculamiento de los biestables del
tenga la entrada, y cambia si sta cambia, durante
registro.
todo el tiempo en que la microorden de carga est
En ocasiones necesitaremos un registro con una
activada y la seal de reloj est con el nivel lgi-
funcin adicional de contador, lo que implica ms
co 1 (o 0, si la entrada de reloj es negativa).
circuitos adicionales. Nos limitaremos a suponer
Ante los cambios de E indicados en la Figura 9.7,
la existencia de tales circuitos, indicando simple-
el cerrojo con reloj positivo se comportara igual
mente una nueva microorden de entrada al regis-
que el sincronizado por flancos de subida (parte in-
tro, incr. Cuando incr = 1 (que se supone in-
ferior de la figura), porque en este caso E no cam-
compatible con err = 1) en el instante de un flanco
bia durante el tiempo en que R = 1. Sin embargo,
de reloj3 el estado o contenido del registro se in-
un cerrojo con reloj negativo no funcionara como
muestra la parte superior, porque tomara el valor 3
Esta funcin de contador no se puede realizar con regis-
E en cuanto R = 0. Para las seales mostradas, la tros cerrojo, porque los incrementos se sucederan de manera
salida S seguira a E con un retardo muy pequeo, incontrolable cuando incr = 1 y R = 1.
9.3. Componentes de las rutas de datos 325

crementa en una unidad. De igual modo, en algu- S1 S2

nos registros necesitaremos una entrada de pues- 16 16


ta a cero, crr, de modo que cuando crr = 1 (in- re
el
compatible con las anteriores) todos sus biestables 4
pasan a tener el valor lgico 0. rs1
R0 R15

b/pl
4
rs2 R
Memorias locales 4

A partir de cuatro registros de trabajo en la UCP 16


resulta conveniente organizarlos como una memo- E
ria local (ML). En principio, esta memoria tendr Figura 9.8. Memoria local de diecisis registros con
una entrada de direccionamiento o seleccin del una entrada y dos salidas.
registro en el que se desea escribir y otra de selec-
cin del registro que se quiere leer, pero nada im- Las salidas son independientes de los flancos (y de
pide (a costa de complicar los circuitos internos) b/pl), es decir, el valor de S1 es, en todo momen-
que sean varias las entradas y/o varias las salidas, to, el contenido del registro direccionado por rs1
de manera que se pueda trabajar simultneamente y el de S2, el del registro direccionado por rs2.
con varios registros. En esta memoria se puede escribir en un regis-
En la Figura 9.8 se representa la ML que utili- tro y leer otros dos cualesquiera simultneamente.
zaremos en Microalgortmez. Tiene diecisis re- En particular, se puede leer un registro y escribir
gistros de diecisis bits, una entrada y dos sali- en el mismo perodo. Si durante un perodo de re-
das4 . E es el dato de entrada, a cargar en el regis- loj (entre dos flancos de bajada) se mantiene, por
tro direccionado por re, y S1 y S2 son las salidas, ejemplo, el = 1, b/pl = 0 y re = rs1 = 15 (1111
iguales a los contenidos de los registros direccio- en cada uno de los dos grupos de cuatro lneas de
nados por rs1 y rs2.5 La entrada est sincroniza- direccin), se tendr disponible en S1 el conteni-
da por flancos de bajada, de modo que si en un do de R15 durante ese tiempo, y al llegar el flanco
flanco es el = 1, se transfiere la entrada E al re- que termina el perodo se introducir en R15 el va-
gistro direccionado por re. El efecto de el depen- lor presente a la entrada6 . ste, de hecho, ser el
de del valor de b/pl (byte/palabra): si b/pl = 0, procedimiento que seguiremos en Algortmez pa-
los diecisis bits de E se transfieren al registro di- ra incrementar el contador de programa (que es,
reccionado, pero si b/pl = 1 slo se transfieren los precisamente, R15). En Regstrez, sin embargo, la
ocho bits menos significativos (quedando inaltera- ML est sincronizada por flancos de subida, y la
dos los ocho bits ms significativos del registro). escritura ocurre en la mitad del ciclo de reloj: a
En otras organizaciones puede ser necesario dar partir de ese momento se leer el nuevo valor.
ms informacin. Por ejemplo, si la longitud de la
palabra (y de los registros) es treinta y dos bits, Los buses como elementos de interconexin
habr que indicar si la transferencia es de un by-
te, de media palabra (dos bytes), o de una palabra. Los componentes de las rutas de datos se inter-
conectan a travs de buses. En un momento dado
4
Una posible realizacin en el nivel de circuito lgico solamente un componente puede depositar su con-
puede verse en la Figura B.37 del Apndice B.
5 6
re, rs1 y rs2, a diferencia de las otras micrordenes, que Para comprender esto, recurdese que las micrordenes
son seales binarias, pueden tener, en el caso de esta ML, estn ligeramente retrasadas con respecto a los flancos de re-
diecisis valores diferentes, es decir, cada una de ellas co- loj: cuando llega el primer flanco a la ML todava es el = 0, y
rresponde a cuatro lneas binarias. cuando llega el siguiente an es el = 1.
326 Leccin 9. Componentes de los modelos estructurales

tenido binario en el bus, pero varios pueden tomar erc


R R erd
los valores binarios de sus lneas. Las microrde- RC RD

nes generadas por el secuenciador central (o por bus B2


secuenciadores subordinados, en su caso) contro-
sra srb
lan en cada momento qu componente accede al
bus para depositar su contenido, y qu componen- R era R erb
RA RB
te o componentes toman este contenido.
bus B1 bus B3
Como ilustracin, en la Figura 9.9 se represen-
tan cuatro registros conectados por un bus, B2.
RA y RC estn sincronizados por flancos de ba- R

jada, RB por flancos de subida y RD es un cerro- bus B1


DAT1 DAT2
jo positivo. RC tomar el contenido del bus B2
en un flanco de bajada si la microorden erc es- era
t activada en ese instante. RD lo tomar siempre
que R = 1 y erd = 1. Las micrordenes sra y srb (RA) DAT0 DAT1 DAT2

son incompatibles (el secuenciador nunca har que


sra
ambas tomen simultneamente el valor lgico 1),
y los tringulos que reciben estas micrordenes bus B2
DAT0 DAT1 DAT2
representan a los circuitos que permiten deposi-
tar en el bus el contenido de los correspondien- erc, erd
tes registros7 . Durante todo el tiempo que sra = 1
(o srb = 1), los contenidos (estados) de todos los (RC) DAT0 DAT1 DAT2
biestables de RA (o de RB) se transmiten a las l-
neas del bus B2. Aunque en la figura slo se con- (RD) DAT0 DAT1 DAT2
templa que RA y RB sean fuentes para el bus B2
y RC y RD destinos, tambin pueden proveerse
las vas inversas, es decir, podramos, por ejem- Figura 9.9 Conexin de registros a travs de un bus.
plo, permitir que RD depositase su contenido en el
bus B2 simplemente poniendo una salida de RD al preciable ese tiempo, subsumido en la inclinacin
bus controlada por una microorden srd. con la que dibujamos el cambio de valores en los
Cuando un registro toma (porque est activada cronogramas.
la correspondiente microorden de entrada) los va- Analicemos el comportamiento dinmico del
lores presentados a su entrada, hay un tiempo de sistema de registros interconectados por bus de la
conmutacin hasta que sus biestables basculan, Figura 9.9. Supongamos, como se muestra en la
tiempo que consideraremos despreciable con rela- parte inferior, que en el instante del flanco de ba-
cin al perodo de reloj. Por otra parte, cuando se jada en el que empezamos a considerar los acon-
pone la salida de un registro en un bus, los valores tecimientos el secuenciador activa la microorden
binarios en las lneas del bus tardan en estabilizar- era, que se mantiene durante dos perodos de re-
se un tiempo que depende de las caractersticas y loj, y las micrordenes sra, erc y erd, que se man-
la longitud del bus. Los buses internos de la UCP tienen durante uno ms. Como hemos visto antes
son muy rpidos, y consideraremos tambin des- (Figura 9.7), el registro RA mantiene los valores
7
En el nivel de circuito lgico, estos smbolos se desglo-
que tuviese anteriormente (DAT0) hasta el segun-
san en tantas puertas triestado como lneas tenga el bus y do flanco. Dado que sra = 1, estos valores se esta-
biestables los registros (Apndice B, Apartado B.6). bilizan en el bus B2 antes de que llegue el primer
9.3. Componentes de las rutas de datos 327

flanco de subida, momento en el que se introducen de control adicionales con las que se establece un
en RD, y en el siguiente flanco de bajada se intro- protocolo de dilogo: un componente (por ejem-
ducen en RC. En efecto, los valores en el bus B2 plo, la UCP) avisa a otro (por ejemplo, un contro-
comienzan a cambiar a partir de ese flanco, pero en lador de perifrico) de que quiere una operacin,
ese instante son an los de DAT0. En este mismo ste le dice que est preparado, el primero inicia
momento los valores del bus B1 (DAT1) se intro- la operacin, el segundo le avisa cuando termina,
ducen en RA. El lector puede seguir en la figura la etc. Los buses asncronos son ms flexibles, pero
secuencia de acontecimientos posteriores. Quizs requieren controladores ms complejos y la nece-
lo ms importante a observar es cmo en un mis- sidad del protocolo puede hacerlos ms lentos.
mo flanco de reloj la informacin de un registro, Para Microsmplez, Microalgortmez y Micro-
previamente estabilizada en un bus, se transmite a rregstrez consideraremos el caso ms sencillo, en
otro (de RA a RC) al mismo tiempo que el conte- el que no hay un bus especializado para la en-
nido del primero cambia. trada/salida, sino un nico bus del sistema (Figu-
Hay que tener siempre presente que, a diferen- ra 5.2) formado por los buses A y D y las sea-
cia de los registros, los buses no tienen memo- les de control, incluida la de reloj. En el caso de
ria. Haciendo referencia de nuevo a la Figura 9.9, Microalgortmez aplicaremos un protocolo de di-
si era = 0 cuando llega un flanco de bajada de re- logo para las comunicaciones con los perifricos.
loj, RA conserva el contenido que tuviese anterior- Este protocolo se describe en el Apartado siguien-
mente. Pero si sra = srb = 0, el bus B2 no conser- te, y veremos cmo se implementa en las Leccio-
va nada: sus lneas quedan en el llamado estado nes 13 y 14.
de alta impedancia. Si se quiere transmitir algo al
registro RC (y/o al RD) a travs del bus es impres- Velocidad y ancho de banda
cindible que, simultneamente con erc (y/o erd),
est presente o bien sra o bien srb, para que los La velocidad de un bus es el nmero de bits (o
niveles se mantengan en el bus. bytes) por segundo que pueden viajar por cada
una de sus lneas8 .
En la mayora de los buses sncronos se transmi-
Tipos de buses
te un bit por cada lnea en cada ciclo de reloj, de
En la descripcin que acabamos de hacer hemos ah que normalmente la velocidad del bus se mide
supuesto que hay una entrada de reloj comn para por la frecuencia de reloj, en MHz. Pero algunos
todos los registros. Pero si es comn tiene que buses de alto rendimiento transmiten dos bits en
haber una lnea que la transporte. Es decir, es una cada ciclo, y otros, ms antiguos (como el ISA,
lnea ms del bus. Un bus con una lnea de reloj se Apartado 5.4) requieren dos ciclos de reloj por bit.
llama sncrono. Los buses sncronos son adecua- El ancho de banda o tasa de transferencia
dos cuando los componentes que se conectan a l de un bus es el nmero bits (o bytes) por se-
tienen tiempos de operacin similares, como es en gundo que puede transferir. Obviamente, si se
el ejemplo comentado, en el que implcitamente 8
Sabemos que la corriente elctrica se propaga siempre
hemos supuesto que los registros forman parte de con la misma velocidad, por lo que si un bus es ms rpi-
una UCP. Pero cuando el bus pone en comunica- do que otro no es porque los electrones viajen a ms velo-
cin a componentes con velocidades diversas, co- cidad, es porque el intervalo de tiempo entre un cambio de
mo es el caso de los buses de entrada/salida (Apar- tensin que seala el comienzo de un bit y el siguiente es ms
pequeo. Para poder reducir el intervalo sin que haya confu-
tado 5.4), una alternativa es disponer de un bus sin entre un bit y el siguiente los controladores conectados
asncrono, en el que los componentes no hacen a ese bus ms rpido necesitan unos circuitos ms elaborados,
uso de una seal de reloj comn, sino de seales y resultan, por tanto, ms caros.
328 Leccin 9. Componentes de los modelos estructurales

transmite un bit en cada ciclo de reloj, el an- que se le piden las operaciones de lectura y escritu-
cho de banda es el resultado de multiplicar el n- ra, y dir es un conjunto de n lneas binarias (9 en
mero de lneas por la velocidad. Por ejemplo, el Smplez, 16 en Algortmez, 32 en Regstrez) que
bus PCI (Figura 5.4) tiene treinta y dos lneas debern contener, antes de pedir una operacin,
de datos y opera normalmente con un reloj de la direccin de la palabra (o del byte) que se quie-
33, 33 MHz (aunque hay una extensin a 64 lneas re leer o en la que se quiere escribir. La entrada y
y 66,66 MHz, vase el Ejercicio 4), por lo que su la salida de contenidos de palabras (o de bytes) se
ancho de banda es 32 33, 33/8 = 133, 33 MB/s. conectan directamente a un bus (el bus de datos,
Hay que recordar (Apartado 5.2) que en este con- D), lo cual implica que la salida es triestado: si
texto 1 MB/s = 106 B/s. Algunos mantienen, aun lec = 0 esta salida est en alta impedancia. Fun-
hablando de ancho de banda, el convenio de que cionalmente, adems de la longitud de palabra y
1 MB/s = 220 B/s, y por eso en algunos documen- de la capacidad, hay parmetros temporales a te-
tos puede leerse que el ancho de banda del bus PCI ner en cuenta.
es 133, 33 106 /220 = 127, 17 MB/s. En cual-
quier caso, los datos de ancho de banda de los bu-
Parmetros temporales
ses son mximos tericos: los protocolos provocan
retardos que reducen el ancho de banda efectivo. El tiempo de acceso para escritura en una me-
El reloj del bus del sistema en Microsmplez, moria es el que transcurre desde el momento en
Microalgortmez y Microrregstrez es el mismo que se le pide (con esc) que escriba el conteni-
de la UCP. Teniendo en cuenta las frecuencias do del bus D en una palabra (cuya direccin se le
(10 MHz, 33 MHZ y 100 MHz) y los nmeros de habr dado previamente) hasta que este contenido
lneas (12, 16 y 32) de cada uno, resultan anchos queda efectivamente escrito; el tiempo de acceso
de banda de 15 MHz, 66 MHz y 400 MHz respec- para lectura es el que hay que esperar desde que
tivamente. se le da la direccin y la orden de lectura (lec) has-
ta que se puede disponer del contenido ledo en la
salida. En una memoria de lectura y escritura am-
9.4. La memoria principal bos tiempos son aproximadamente iguales. Pero
una vez terminado un acceso no siempre se puede
La MP es siempre de acceso aleatorio (Apar- iniciar otro inmediatamente: el ciclo de memoria
tado 1.2) y de lectura y escritura (aunque al final es el tiempo necesario para poder iniciar un nuevo
de este Apartado matizaremos esta ltima afirma- acceso (de lectura o escritura) desde que se inici
cin). La representaremos con el diagrama de la el anterior. Estos tiempos dependen de la tecnolo-
Figura 9.10. lec y esc son las micrordenes con las ga de realizacin de la memoria. En Smplez y Al-
lec esc
gortmez supondremos que la MP es del tipo que
se llama dinmico, y que el tiempo de acceso
es 100 ns (ligeramente inferior para la lectura) y el
del ciclo el doble. En las estticas la velocidad
dir MP
n es mayor, y el ciclo es igual al tiempo de acceso.
Para Regstrez consideraremos una memoria est-
tica con un ciclo de 10 ns.9
9
bus D Como veremos en las Lecciones 15 y 16, sta no es en
realidad la MP, sino una memoria intermedia o memoria
oculta (cache) entre la ruta de datos y la MP, que es din-
Figura 9.10 La memoria principal. mica.
9.4. La memoria principal 329

Ciclo de lectura:
Otros dos detalles temporales importantes a te-
Tm Tm
ner en cuenta son:
Es preciso mantener estable la direccin de dir

donde se pretende leer o en donde se quiere es-


cribir desde un poco antes de que empiece el ciclo lec
correspondiente y hasta un poco despus de termi-
TAL
nar el acceso. Esto es debido a que, como sugiere
datos
la Figura 9.10, hay unos circuitos descodificadores
vlidos
que tardan algo en direccionar la palabra o el byte.
TCL
Si en el mismo instante de introducir la direccin
en dir se pusiera esc = 1 se correra el riesgo de
escribir en una direccin que no es la pretendida. Ciclo de escritura:

En todo caso, este tiempo ser inferior a la mitad Tm Tm

de un perodo de reloj.
dir
En el caso de Smplez supondremos, para sim-
plificar, que una vez terminado un ciclo de me- esc
moria de lectura o escritura puede inmediatamen-
TAE
te comenzar otro. Ahora bien, la tecnologa de las
memorias dinmicas exige regenerar cada cierto datos

tiempo (del orden de milisegundos) los contenidos vlidos

de los puntos de memoria10 (operacin que se co- TCE

noce como refresco), lo que obliga a introducir ci- Figura 9.11. Memoria principal de Smplez: especifi-
clos adicionales (ciclos de refresco) durante los caciones temporales del modelo funcional.
cuales no puede realizarse ninguna operacin de
lectura ni de escritura para el exterior. En Algort-
mite transferencias sincronizadas con el reloj de la
mez, los circuitos que se ocupan de este refresco
UCP, con velocidades superiores a 100 MHz.
estarn incluidos en el controlador de la MP. El se-
cuenciador de este controlador genera, como vere-
mos en el Apartado 14.2, una seal (MFIN), que La memoria de Smplez
comunica al secuenciador central que la MP ya ha Concretando lo anterior, en la Figura 9.11 se
ledo el dato (cuando se le pidi previamente una presentan las especificaciones temporales de la
operacin de lectura), y la UCP puede tomarlo del MP de Smplez11 . Una vez que se le ha dado una
bus D, o que lo ha escrito (cuando se le pidi una entrada (dir) de direccin a los circuitos de desco-
escritura). dificacin de la memoria hay que esperar un tiem-
El modelo de memoria dinmica que utilizare- po, Tm , antes de iniciar un ciclo de memoria con
mos para Algortmez es el convencional. Ac- lec o esc (para evitar que se inicie la operacin
tualmente se ha sustituido ya por otra tecnologa, con una direccin que an no es la correcta). Rec-
la memoria dinmica sncrona (SDRAM), que per- procamente, dir debe dejarse durante aproximada-
10 11
Es as porque la materializacin del punto de memoria Estos cronogramas son simplificaciones de los que se
es un condensador cuya carga no se mantiene indefinidamen- pueden encontrar en las especificaciones reales. Normalmen-
te, debido a las corrientes de fuga (Leccin 14, Ejercicio 2). te se utiliza una seal lec/esc, que toma el valor 1 (para
Este intervalo entre refrescos es, comparado con los de las lectura) o 0 (para escritura) coincidiendo con dir, seguida
operaciones en la ruta de datos, muy grande: 2 ms, por ejem- (tras Tm ) de cs (chip select), o req (vase el Ejerci-
plo, equivalen a 10.000 ciclos de memoria de 200 ns. cio 3 y el Apartado 14.2).
330 Leccin 9. Componentes de los modelos estructurales

mente el mismo tiempo (Tm ) despus de desacti- la UGM), es accesible por bytes o por palabras de
var lec o esc. Como veremos en el Apartado 10.4, diecisis bits. Por este motivo, adems de las sea-
bastara con un Tm algo inferior a 50 ns, pero para les (micrordenes) lec y esc, recibe otra, b/p, que
que la especificacin sea igual que la de Algort- le indica si el acceso es a una palabra o a un byte.
mez supondremos Tm < 15 ns. Con este tipo de organizaciones hay un proble-
Una raya horizontal en datos vlidos signifi- ma que se llama alineamiento de byte: los regis-
ca que las lneas de entrada y salida de la memoria tros son de diecisis bits, pero cuando operamos
(conectadas al bus D de la ruta de datos) se en- con bytes (instrucciones LD.B, ADD.B, etc.) nos
cuentran en estado de alta impedancia, o bien con referimos al byte menos significativo del registro.
valores que no es seguro sean los correctos (por Por tanto, es preciso que en los accesos a byte se
ejemplo, durante la lectura y antes de que haya opere siempre con las lneas de menor peso del
transcurrido el tiempo de acceso). bus D, independientemente de que la direccin del
El tiempo de acceso en un ciclo de lectura es al- byte sea par o impar. Sin embargo, en los accesos
go inferior a un perodo de reloj (TAL < 100 ns), a palabra, el byte de menor peso de la palabra co-
de modo que la microorden lec, que empieza en un rresponder a las ocho lneas de menor peso y el
flanco de bajada, pueda terminar en el siguiente, de mayor peso a las otras ocho.
momento en el que se podr tomar la informacin Por ejemplo, la ejecucin de LD.B .0,/1
leda. El ciclo de memoria (durante el cual no pue- implica llevar el byte de direccin 1 a los bits 0
de comenzar otro ciclo de lectura ni de escritura) a 7 del registro R0, mientras que la ejecucin de
es TCL = 200 ns. LD .0,/0 requiere que el byte de direccin 1 se
En un ciclo de escritura los datos a escribir de- cargue en los bits 8 a 15 de R0 (y el de direccin 0
ben estar estabilizados a la entrada en instante en en los bits 0 a 7). En el Apartado 14.2 veremos los
que esc cambia de 1 a 0, momento en el que los to- circuitos que realizan este ajuste. Desde el punto
ma el controlador de la memoria. Los tiempos de de vista funcional, basta saber que, si MPB[dir]
acceso son: TAE = 100 ns y TCE = 200 ns. representa al byte de la MP de direccin dir, las
operaciones de lectura y escritura se definen as:
Si b/p= 0 (acceso a palabra)
La memoria de Algortmez
lec: (MPB[dir])D0 D7
La MP de Algortmez tiene las mismas espe- (MPB[dir+1])D8 D15
cificaciones temporales que la de Smplez: ciclo, esc: (D0 D7 )MPB[dir]
tiempo de acceso y Tm inferiores a 200, 100 y 15 (D8 D15 )MPB[dir+1]
ns, respectivamente. Pero, adems de tener una ca- Si b/p= 1 (acceso a byte)
pacidad de 64 KB (o de 1 MB, si se acompaa de
lec: (MPB[dir])D0 D7
esc: (D0 D7 )MPB[dir]
dir MP El controlador (cuyo diseo veremos en el
(64KB)
16 Apartado 14.2) se ocupa de activar los circuitos
para responder a las micrordenes, as como del
lec
esc_ controlador y
alineamiento
refresco y de generar la seal MFIN para el se-
b/p
MFIN cuenciador central. Es decir, detecta las peticiones
de lectura o escritura por los flancos de subida de
bus D
16
las seales lec y esc, respectivamente. Al cabo de
un tiempo normalmente igual al tiempo de acceso,
Figura 9.12 Memoria principal de Algortmez. genera la seal MFIN, que le dice al secuenciador
9.5. Los perifricos 331

central: la operacin pedida se ha realizado. Si rutina grabada permanentemente. En Algortmez,


era una lectura, el contenido de la posicin direc- la zona de ROM ocupa las direcciones HFC00 a
cionada estar disponible en el bus D, y si era una HFFFF (Apartados 6.2 y 19.3).
escritura, el contenido de D habr quedado graba-
do. El secuenciador central podr hacer otra peti-
cin, pero no se atender hasta que no haya con- 9.5. Los perifricos
cluido el ciclo de memoria (Figura 9.13). Si la pe-
ticin de lectura o escritura se hace en el momento Direccionamiento
en que el controlador de la MP est haciendo un En Smplez y en Regstrez los puertos de en-
ciclo de refresco, la seal MFIN se retrasar. trada y salida comparten el espacio de direcciona-
lec lec miento de la MP. La comunicacin con estos puer-
o esc o esc
tiempo de tiempo de tos se establece poniendo dir en el bus de direc-
MFIN acceso acceso ciones y generando lec o esc, lo mismo que si se
100 ns 100 ns tratase de la MP. El descodificador de direcciones
ciclo de memoria (200ns)
activar al puerto que corresponda en el caso de
bus D (lec) (esc)
que dir sea una direccin de puerto y no de MP.
bus D (esc) (lec) En Algortmez hay un espacio de direcciona-
miento para los perifricos y otro para la MP. Una
Figura 9.13. La seal MFIN del controlador de la MP direccin comprendida entre 0 y 255 puede refe-
de Algortmez. rirse a la MP (si la ha generado una instruccin de
acceso a la MP: LD, ADD, etc.) o a un puerto (si la
ha generado IN o OUT). Por tanto, son necesarias
La memoria de Regstrez
dos micrordenes que tienen la misma funcin que
Adems de ser accesible por bytes, medias pa- lec y esc, pero que no se dirigen a la MP sino a los
labras o palabras de cuatro bytes, la memoria de perifricos; las llamaremos ent y sal.
Regstrez es un sistema en el que mediante una
combinacin de una memoria esttica, de capa- Sincronizacin
cidad relativamente pequea y muy rpida (ciclo
de 10 ns), y una memoria dinmica, de varios me- Para Smplez supondremos que, igual que en los
gabytes y ciclo de 200 ns, se consigue que la UCP accesos a la MP, a los 100 ns de generar lec o esc
vea una memoria de megabytes con un tiempo la operacin de entrada o salida ha terminado12 ,
de acceso medio slo ligeramente superior a los y no hay necesidad de sincronizacin. Para Algo-
10 ns. En las Lecciones 15 y 16 estudiaremos la rtmez y Regstrez adoptaremos un punto de vista
organizacin de este sistema. ms cercano a la realidad: el controlador del peri-
frico avisa a la UCP, con una seal PFIN, cuando
concluye la operacin (ha puesto el contenido del
Zona de slo lectura
12
Habr terminado por lo que respecta a la UCP, pero no
Generalmente, una pequea parte del espacio de al perifrico. Cuando interpreta la instruccin ST /509, el
direccionamiento corresponde a una memoria de secuenciador genera esc, y a los 100 ns los ocho bits menos
slo lectura (ROM) que es no voltil, es decir significativos del acumulador se habrn transferido al puerto
su contenido permanece aunque no tenga alimen- de datos del controlador de la pantalla; la UCP podr seguir
con otra instruccin, pero ya sabemos que la pantalla tardar
tacin elctrica. Al arrancar el ordenador los cir- un tiempo mucho mayor (unos 33 ms con el modelo de pan-
cuitos introducen en el contador de programa una talla que estamos considerando, Apartado 1.13) en escribir el
direccin de esta zona, en la que comienza una carcter y estar preparada para recibir otro.
332 Leccin 9. Componentes de los modelos estructurales

puerto de datos en el bus D, o bien ha introduci- dir


UCP
do el contenido del bus en el puerto de datos). Es ent
decir, como hemos dicho antes, la comunicacin
PFIN
entre la UCP y los controladores de perifricos se perif.
dato
establece mediante un protocolo de dilogo.
La descripcin que sigue, hasta el final de este
t t t t t t t
0 1 2 3 4 5 6
Apartado, no es necesaria para comprender el mo-
delo procesal de Microsmplez (Leccin 10) ni su Figura 9.15 Protocolo de entrada de datos.
implementacin (Leccin 11).
La seal MFIN (de la MP) y las distintas PFIN
(de los controladores de perifricos) entran a la instruccin IN). En t0 la UCP pone sobre las ocho
UCP mediante una lnea comn de colector abier- lneas de menor peso del bus A la direccin del
to, a la que llamaremos SINC. En el Apartado B.6 puerto y espera un tiempo para activar la microor-
se explica lo que significa esto de colector abier- den ent, que viaja hacia el controlador que contie-
to. Para lo que aqu interesa, basta saber que los ne el puerto direccionado. La razn de incluir este
controladores de la MP y de los perifricos estn retardo, (t0 , t1 ), es salvar posibles diferencias de
conectados a la lnea SINC como indica la Figu- tiempo de propagacin entre las distintas lneas del
ra 9.14. Si MFIN = 0, PFIN = 0 e IFIN = 0 (de sta bus: si ent se pusiera sobre el bus simultneamen-
ltima, relacionada con las interrupciones, habla- te con la direccin, podra ocurrir que ent viaja-
remos luego), entonces SINC = 1, y en cuanto al- se ms deprisa que la direccin, y que las lneas
guna se pone a 1, SINC pasa a 0. de direccin conservasen el valor correspondien-
te a alguna operacin anterior con otro puerto (o
SINC
con la MP); en este caso, el controlador correspon-
diente a este otro puerto se sentira errneamente
UCP aludido. Este fenmeno de diferencias de tiempo
MFIN PFIN IFIN
MP controlador de de propagacin se llama sesgo del bus13 . El valor
perifrico
concreto del retardo (t0 , t1 ) est ligado a la lon-
Figura 9.14 Lnea de colector abierto SINC.
gitud que se permita para el bus (distancia entre la
UCP y el controlador de perifrico ms lejano). En
Por lo dems, la forma de sincronizarse la UCP Algortmez supondremos que basta con un retardo
con el controlador del perifrico es similar a la de un perodo de reloj (30 ns), lo que tendremos
descrita para la MP de Algortmez, mediante un en cuenta para el diseo del secuenciador central
dilogo entre ambos. Las restricciones tempora- (Leccin 13) y de los secuenciadores de los peri-
les son parecidas, pero ahora obedecen a otras ra- fricos (Leccin 14). Sigamos ahora con el proto-
zones. Las concretaremos mostrando grficamente colo.
las sucesiones de seales, o protocolos que se es- Tras un retardo de propagacin, (t1 , t2 ), que de-
tablecen en las operaciones de entrada y salida de pende de la distancia entre los puntos de conexin
datos. de la UCP y del controlador al bus, la seal ent

13
En los accesos a la MP tambin se da este fenmeno,
Protocolos pero suponemos que el controlador de la MP est fsicamente
ms cerca de la UCP que los de los perifricos, y que los
En la Figura 9.15 se muestra el protocolo para 15 ns de retardo desde que se da la direccin hasta que se
una operacin de entrada de datos en Algortmez pide el acceso son suficientes no slo para la descodificacin
(que se desencadena cuando la UC descodifica una sino tambin para compensar el efecto del sesgo.
9.5. Los perifricos 333

dir ____
INT

UCP sal aint (UCP)


dato
dir
perif. PFIN

t t t t t t IFIN
0 1 2 3 4 5

t0 t t2 t3 t4 t5 t6
Figura 9.16 Protocolo de salida de datos. 1

Figura 9.17 Protocolo de interrupciones.

llega al controlador, que responde inmediatamen- Interrupciones


te con un de acuerdo (PFIN) y pone en el bus
el contenido del puerto direccionado. En t3 pue- La UCP de Algortmez tiene una entrada para
de haber llegado PFIN a la UCP, pero sta espera las interrupciones enmascarables, INT, y otra pa-
de nuevo un tiempo, hasta t4 , porque puede que ra las no enmascarables, INTNM (Apartado 6.14).
el dato se retrase algo ms. En t4 la UCP toma Los perifricos y otros elementos externos a la
el dato (introducindolo en el registro designado UCP (Apartado 3.6) pueden solicitar una interrup-
por la instruccin IN) y quita la seal ent, pero cin poniendo en una de esas lneas el valor 0
no la direccin, de nuevo por el fenmeno de ses- (son lneas de colector abierto, como SINC: estn
go, o diferencia de retardos entre lneas: hay que activas cuando su nivel lgico es 0). Regstrez dis-
asegurarse de que ent sea 0 en todos los contro- pone de cuatro lneas de entrada de interrupciones,
ladores antes de que empiecen a cambiar de valor de acuerdo con lo explicado en el Apartado 8.7.
las lneas de direccin. Cuando la transicin de ent La entrada no enmascarable de Algortmez no
llega al controlador, en t6 , ste anula PFIN y quita requiere ningn protocolo, porque el vector de in-
el dato. terrupcin se genera, igual que para las interrup-
Las lneas curvadas y con flechas indican las re- ciones internas, en la UCP (Apartado 6.14). En el
laciones causales: el cambio de ent en t1 provoca Apartado 13.9 veremos los circuitos que generan
que el controlador, en t2 , ponga el nivel alto en estos vectores y que implementan el protocolo pa-
PFIN y el dato, etc. ra las interrupciones enmascarables que se descri-
El cronograma para la salida es el de la Figu- be a continuacin.
ra 9.16, y tiene una explicacin similar. El dato lo Cuando INT = 0 es porque algn controlador
pone ahora la UCP en el bus D al mismo tiempo conectado a la lnea enmascarable ha pedido inte-
que pone la direccin en el bus A para que cuan- rrupcin. La UCP la atender si las interrupciones
do al perifrico le llegue la seal sal, en t2 , ambos estn permitidas, es decir, si el indicador PIN tie-
(dato y direccin) estn estabilizados en los buses. ne el valor 1 (Apartado 6.14). En la Figura 9.17
Para Regstrez podemos considerar que los pro- se presenta el protocolo para las interrupciones en
tocolos son esencialmente los mismos, pero con Algortmez, que pasamos a comentar.
las micrordenes lec y esc en lugar de ent y sal. Las seales dir e IFIN (esta ltima entra nega-
El procedimiento descrito obedece a un esque- da a la UCP por la lnea SINC) pueden haber sido
ma asncrono, porque el reloj del controlador del generadas por el controlador del perifrico, por el
perifrico no est sincronizado con el del secuen- controlador de interrupciones, o por el hardware
ciador central. Tambin es posible seguir un pro- mnimo (Apartado 6.14).
cedimiento sncrono, con una seal de reloj comn El controlador lanza su demanda de interrup-
en una de las lneas del bus (vase el Ejercicio 5). cin (poniendo 0 en la lnea INT) en t0 . Tras
334 Leccin 9. Componentes de los modelos estructurales

un retardo de propagacin, INT llega a la UCP; si En Regstrez no existe aint, porque el vector de
en ese momento PIN = 1, la UCP producir aint, interrupcin se genera siempre dentro de la UCP.
pero si PIN = 0, seguir ejecutando instrucciones y
no atender a la interrupcin hasta que PIN tome Acceso directo a la memoria
el valor 1 (lo que ocurrir cuando ejecute una
instruccin EI, o una RETI, o una LD .E que pon- Para implementar el ADM, la UCP de Algort-
ga a uno PIN). As, tras un retardo variable (que mez tiene una lnea de entrada, DBUS, por la que
puede ser mucho mayor de lo que se sugiere en la los controladores de ADM solicitan la cesin de
figura), aint sale de la UCP en t1 y llega en t2 al buses, y una seal de acuerdo, abus, por la que la
controlador; ste, observando que ya est siendo UCP comunica que deja libres los buses A y D.
atendido, deja de pedir interrupcin quitando INT, El protocolo es similar al de las interrupciones, y
deposita la direccin de su vector sobre el bus A y, veremos su implementacin en los Apartados 13.9
tras un retardo (t2 , t3 ) para tener en cuenta el ses- (del lado de la UCP) y 14.3 (del lado de los perif-
go, genera IFIN. Hasta que la UCP no recibe IFIN, ricos). Si hay varios controladores de ADM se co-
cosa que ocurre en t4 , no toma la direccin que el nectarn en cadena, como indica la Figura 9.19, en
controlador ha puesto en el bus; en ese mismo mo- la que, para que no resulte muy confusa, no se han
mento quita tambin aint. La desaparicin de aint incluido las lneas INT y aint, cuya conexin a los
llega en t5 al controlador, que quita IFIN, y, tras un controladores sera igual que en la Figura 9.18 (re-
retardo (t5 , t6 ), igual al (t2 , t3 ), la direccin. Este cuerde que un controlador de ADM no interrumpe
segundo retardo, en el protocolo descrito, es inne- para trasferir cada dato elemental, pero s al final
cesario, puesto que la UCP ya ha tomado la di- de la transferencia de un bloque de datos, Aparta-
reccin en t4 , pero, de una manera general, lo que do 5.8).
hace IFIN es validar lo que hay sobre las lneas de
bus A
direccin: mientras yo (IFIN) est activa, garanti-
esc
zo que la direccin que hay en el bus es correcta;
lec
si no existiera tal retardo podra ocurrir que en un
punto alejado del bus las lneas de direccin hu-
bieran cambiado e IFIN siguiera con el valor 1. UCP MP
controlador controlador
de ADM de ADM
Si hay varios perifricos conectados a la lnea
INT, la seal aint viaja en sentido inverso, como abus
____
indica la Figura 9.18. El primer controlador que DBUS

tenga solicitada interrupcin bloquear la propa-


gacin de la seal a los siguientes, como veremos bus D

en el Apartado 14.3 (Figura 14.8).


Figura 9.19. Cadena para los controladores de ADM.

INT

aint 9.6. La ruta de datos de Smplez


En la Figura 9.20 se presenta la ruta de datos
UCP
ITPR IT PR de Smplez (acompaada del secuenciador central,
controlador de controlador de
perifrico perifrico de la MP y de los controladores de entrada y sali-
da), y en la Tabla 9.1 la lista de las micrordenes,
Figura 9.18 Cadena para las interrupciones. acompaadas de una numeracin que utilizaremos
9.6. La ruta de datos de Smplez 335

R
UCP
bus Ai bus A
RA
9 9
scp

ccp era
R
CP
incp
ecp
bus C
15 2

R eac
AC lec esc lec esc lec esc

Z
SECUENCIADOR sri
pac
sum MP CTEC CPAN
UAL tra2
1 2 dec1
RI
R
R eri
CO CD
12 12 8 8 8 8

sac
bus D bus D
12 12

Figura 9.20 Ruta de datos (con el secuenciador, la MP y los controladores de e/s) de Smplez.

Nombre Efecto
0 eac entrada en el acumulador desde la salida de la UAL
1 eri entrada en el registro de instruccin desde el bus D
2 incp incremento del contador de programa
3 ecp entrada en el contador de programa desde el bus Ai
4 ccp puesta a cero del contador de programa
5 era entrada en el registro de direccin desde el bus Ai
6 pac puesta a cero de la salida de la UAL
7 sum suma en la UAL de las entradas 1 y 2, dejando el resultado en la salida
8 tra2 transferencia de la entrada 2 de la UAL a la salida
9 dec1 decremento de la entrada 1 de la UAL, dejando el resultado en la salida
10 lec lectura en la MP o en el puerto de entrada
11 esc escritura en la MP o en el puerto de salida
12 sac salida del acumulador al bus D
13 sri salida de los nueve bits de menor peso del registro de instruccin al bus Ai
14 scp salida del contador de programa al bus Ai
15 cbf inhibicin del funcionamiento
16 sco salida del cdigo de operacin (UC microprogramada)
17 bbz para la instruccin BZ (UC microprogramada)
ebi entrada en el biestable BI (UC cableada)
Tabla 9.1 Micrordenes de Smplez.

posteriormente (en la Leccin 11). cbf, sco, ebi y El registro contador de programa (CP) que
bbz son micrordenes internas al secuenciador cu- contiene la direccin en la MP de la instruc-
ya funcin veremos tambin en esa Leccin. cin a leer. Cuando ha iniciado esta lectura, el
secuenciador incrementa en una unidad el con-
Hay tres registros que, por ser transparentes al tenido de CP, de ah su nombre.
programador, no aparecan en el modelo estructu- El registro de instruccin (RI), cuya funcin
ral de la Figura 1.1:
336 Leccin 9. Componentes de los modelos estructurales

es mantener los doce bits de una instruccin le- Las vas de comunicacin entre unos elementos
da mientras dura su ejecucin. y otros y las micrordenes que las controlan estn
El registro de direccin (RA), que separa al pensadas para que puedan ejecutarse todas las ins-
bus de direcciones interno, Ai, del externo, A, trucciones del repertorio. En la Leccin siguiente
lo que es necesario para disear un modelo pro- veremos con detalle las sucesiones de microrde-
cesal eficiente, como veremos en la Leccin si- nes necesarias para ejecutar las instrucciones.
guiente.
Todos los registros estn sincronizados por flan- 9.7. Resumen
cos de bajada, salvo RA, que es un cerrojo positivo
(aunque servira igualmente un registro sincroni- Los componentes que forman parte de los mo-
zado por flancos de subida). Se hace as para que delos estructurales son:
la direccin se estabilice en el bus Ai antes de pe- La ruta de datos, que incluye circuitos combi-
dir un ciclo de memoria, o una operacin de en- nacionales, registros y buses, algunos transpa-
trada/salida, con lec o esc. Se comprender mejor rentes en el nivel de mquina convencional, co-
en la siguiente Leccin, al estudiar con detalle el mo el registro de instruccin o el sumador de
modelo procesal. direcciones.
La MP y los dos controladores de perifricos La memoria principal.
estn conectados a los buses de datos, D, de di- El secuenciador central.
recciones, A, y de control, C. Con la microorden Los controladores de perifricos.
esc, la informacin del bus D queda escrita (tras el
Hemos especificado los modelos funcionales de
tiempo de acceso) en la palabra (o el puerto) cu-
estos componentes, necesarios para poder descri-
ya direccin se habr puesto previamente en RA,
bir modelos procesales de los sistemas construi-
y con lec, el contenido de la palabra (o del puerto)
dos con ellos, lo que haremos en el resto de esta
seleccionada por RA se transfiere al bus D. A las
Parte. Tambin hemos presentado la ruta de datos
direcciones 508, 509, 510 o 511 les corresponden
de Smplez, que utilizaremos en las Lecciones si-
los puertos de entrada/salida, que se materializan
guientes.
en unos registros de los controladores del teclado
y la pantalla (registros de datos y de estado), como
veremos en el Apartado 14.3. 9.8. Observaciones terminolgicas
El secuenciador slo recibe tres informaciones:
Ruta de datos es una traduccin de datapath.
CO, R y Z. CO son los bits 9, 10 y 11
Puede considerarse como el resultado de la evolucin
del registro de instruccin. R es la seal de re- de los rganos de clculo del modelo de von Neu-
loj (que entra tambin en todos los registros). Z mann (Apartado 0.8). La definicin dada en el Aparta-
es un biestable asociado a los circuitos de la UAL do 9.2 es de Meinadier (1971) (y la traduccin procede
y cuyo contenido es 1 si el resultado de la lti- de la versin en espaol de ese libro).
ma operacin realizada en la UAL ha sido cero, y Cerrojo y sincronizado por flancos son traduc-
0 en caso contrario. Esta informacin es la que ciones de latch y edge-triggered, respectivamen-
tiene en cuenta el secuenciador para generar las te. Vase el Apartado B.8, donde se dan ms precisio-
nes. Hemos traducido bus skew por sesgo del bus,
micrordenes en la ejecucin de la instruccin BZ.
y handshaking (literalmente, apretn de manos) por
Dado que en Smplez (no as en Smplez+i4) el re- dilogo.
sultado de toda operacin con la UAL se deposita El nombre CL de la entrada de sincronizacin
siempre en el acumulador, la condicin (Z) = 1 es de biestables y registros significa control, o tambin
equivalente a (AC) = 0. clock (reloj).
9.10. Orientaciones bibliogrficas 337

RAM es lo mismo que memoria de acceso alea- nes. Pero tambin hay que sealar que el progreso de
torio (RandomAccess Memory), y ROM, me- la tecnologa no ha sido el nico factor para el aumento
moria de slo lectura (ReadOnly Memory). Ob- de las prestaciones. Tambin ha influido la introduc-
serve que la dicotoma habitual en la jerga tcnica en- cin de nuevos conceptos en la microarquitectura, co-
tre RAM y ROM es incorrecta: las ROM normal- mo la memoria oculta y el paralelismo en la ejecucin
mente son tambin de acceso aleatorio, es decir, RAM. del flujo de instrucciones (encadenamiento), que estu-
La dicotoma, en rigor, es entre R/W (Read/Write: diaremos en la Leccin 15. Recurdese (Apartado 4.8)
lectura/escritura) y ROM. que el tiempo de respuesta de la UCP para un algoritmo
Las memorias dinmica y esttica suelen llamar- que se codifica con I instrucciones es TR = I C/F .
se DRAM (Dynamic RAM) y SRAM (Static TR puede reducirse aumentando F , pero tambin re-
RAM), respectivamente. duciendo I (con repertorios de instrucciones comple-
jos, enfoque seguido en los CISC) o reduciendo C (con
instrucciones sencillas y de formato regular, enfoque
9.9. Notas histricas de los RISC). Y otra forma de reducir TR consiste en
disear la UCP de modo que cuando se empieza a de-
Los primeros ordenadores tenan muy pocos regis- codificar una instruccin se adelante ya la lectura de la
tros, y la interconexin entre elementos se haca me- siguiente; sta es la idea del encadenamiento, ya men-
diante cableado directo. No obstante, el concepto de cionada en el Apartado 8.1.
bus aparece ya en el Mark I (Apartado 0.12). El diseo sncrono ha sido siempre el preferido pa-
La propuesta de von Neumann la materializ Bi- ra los circuitos de la UCP. La alternativa asncrona, en
gelow en el prototipo IAS, que recibi su nombre teora ms eficiente, presenta problemas de realizacin
del lugar donde se construy: el Instituto de Estudios en el nivel de circuito lgico (Hauck, 1995). A este res-
avanzados de Princeton. La ruta de datos del IAS era pecto, es interesante la propuesta de Martin (1992), que
prcticamente igual que la de Smplez, pero tena una combina diseo asncrono con tcnicas adoptadas de
longitud de palabra de 40 bits, e inclua, adems del la ingeniera del software (programacin concurrente
acumulador, un registro llamado MQ (multiplicador- y transformaciones de programas). Hauck (1995) pre-
cociente); su descripcin puede encontrarse, por ejem- senta tambin una panormica de las metodologas de
plo, en Hayes (1978) o en Stallings (2003). diseo asncrono, y se describen aplicaciones en Berker
La evolucin de las rutas de datos ha sido posible et al. (1999) y en Arvind y Mullins (2000).
gracias a los avances tecnolgicos, que han permitido
disponer a lo largo del tiempo de componentes cada vez
ms pequeos y de menor coste. Perspectivas de esta 9.10. Orientaciones bibliogrficas
evolucin en ordenadores reales pueden encontrarse en
Siewiorek et al. (1982) y Gorsline (1986). Sobre los sistemas lgicos se dan referencias en el
Ya que hemos entrado en el detalle de la frecuencia Apartado B.10. Los protocolos de entrada y salida pre-
del reloj, parece interesante sealar que uno de los fac- sentados (simplificaciones de los que se encuentran en
tores responsables del progresivo aumento de las pres- la realidad) estn inspirados en otros similares de Ha-
taciones de los ordenadores ha sido la reduccin del macher et al. (2002), Tanenbaum (1999) y Hennessy y
tiempo de acceso a la MP. En las primeras memorias de Patterson (2003).
ncleos de los aos 50 este tiempo era de unos 20 s,
pero las mejoras en los procesos de fabricacin permi-
tieron irlo reduciendo hasta llegar a menos de 1 s a 9.11. Ejercicios
mitad de los aos 60. Aparecieron entonces las memo-
1. Rehaga el cronograma de la Figura 9.9 suponien-
rias de semiconductores con tiempos similares o algo
do primero que RA se cambia por un cerrojo, y
inferiores, en las que tambin se ha ido reduciendo has-
luego que RA est sincronizado por flancos de su-
ta llegar a menos de 100 ns en la actualidad. Evidente-
bida.
mente, al ser este tiempo el principal cuello de bo-
tella en la ejecucin de las instrucciones, esta reduc- 2. A la Figura 9.9 le aadimos una memoria del tipo
cin ha conducido a aumentar la frecuencia del reloj y descrito para Smplez, conectando el registro RD
a mayores velocidades de ejecucin de las instruccio- a la entrada de direccin, y conectando la salida
338 Leccin 9. Componentes de los modelos estructurales

de la memoria al bus B1. Suponga que el registro una lnea llamada WAIT que el controlador del
RA y los buses tienen doce bits y el registro RD perifrico (o de la MP) activa durante los ciclos
nueve (conectados a los bits menos significativos de bus necesarios para completar su operacin.
del bus B2). Si los contenidos iniciales de los re- Dibuje los posibles cronogramas para las opera-
gistros son 0 y los de las tres primeras palabras ciones de entrada y salida sncronas.
de la memoria son Q7001, Q7002 y Q7003, y
6. Suponga que el primer controlador de perifrico
se mantienen con el valor 1 las seales lec, sra,
de la Figura 9.18 (el ms prximo a la UCP) con-
era y erd durante tres perodos de reloj, indique
tiene un conversor analgicodigital para contro-
los contenidos sucesivos que van tomando los re-
lar un proceso (cuya funcin no hace al caso) que
gistros RA y RD.
interrumpe espordicamente. La rutina de servi-
3. En lugar de las micrordenes lec, esc, ent y sal, cio correspondiente sigue este seudocdigo:
en los microprocesadores es ms frecuente que se
generen estas otras tres (o similares): a) Guarda los registros que va a usar
req = 1 para iniciar un ciclo de memoria o una b) Realiza su funcin en la que tarda entre 2 y
operacin de entrada o salida; 3 milisegundos
io/m = 1 para indicar que se trata de entrada o c) Repone los registros
salida (y io/m = 0 para pedir la operacin a la d) Retorna (RETI)
MP);
rd/wr = 1 para especificar que se trata de una El segundo controlador es un reloj que interrum-
lectura en la MP o de una operacin de entrada pe cada milisegundo, y su rutina de servicio es
(y rd/wr = 0 para una escritura o una salida). similar a la del Ejercicio 13 de la Leccin 2:

Demuestre que este conjunto de seales es lgica- a) Guarda los registros que va a usar
mente equivalente al utilizado en Algortmez (pa- b) Actualiza contadores (milisegundos, segun-
ra ello, encuentre las funciones lgicas que per- dos, minutos y horas)
miten expresar unas en funcin de las otras).
c) Repone los registros
4. La siguiente tabla muestra el nmero de lneas (l),
d) Retorna (RETI)
la velocidad (MHz) y el nmero de bits por lnea
y por ciclo de reloj (b) de varios buses. Calcule el La UCP, adems de las rutinas de servicio, ejecuta
ancho de banda (MB/s) de cada uno. un programa que muestra la hora (horas, minutos
l MHz b MB/s y segundos) en una pequea pantalla de dgitos.
ISA 8 bits 8 8,3 1/2 El sistema funciona mal. Explique por qu, y en
ISA 16 bits 16 8,3 1 qu lo nota el usuario. Se intercambian las tarje-
EISA 32 8,3 1 tas de los controladores, pero esto no resuelve el
VLB 32 33 1 problema. Por qu? Cmo se puede resolver el
PCI 32 33 1 problema mediante modificaciones en el seudo-
PCI 2.1 64 66 1 cdigo de las rutinas de servicio?
AGP 32 66 1
AGP modo x2 32 66 2 7. Ample la ruta de datos de Smplez para la versin
AGP modo x4 32 66 4 Smplez con pila (Apartado 4.6).
5. Los protocolos para entrada y salida de datos de 8. Disee una ruta de datos para Smplez+i4. Tenga
las Figuras 9.15 y 9.16 obedecen a un esquema presente que lo ideal es utilizar los mnimos re-
asncrono para la comunicacin entre la UCP y cursos necesarios para ejecutar las instrucciones.
los perifricos. Con un procedimiento sncrono Estudie en particular las alternativas de utilizar o
no se establece un protocolo de dilogo, pero hay no sumador de direcciones.

También podría gustarte