Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lecc09 PDF
Lecc09 PDF
319
320 Leccin 9. Componentes de los modelos estructurales
micrordenes
micrordenes
instrucciones
instruc
datos e
ciones secuenciador memoria
micrordenes
datos
ruta de datos
micrordenes
micrordenes
micrordenes secuenciador
datos
perifrico
subordinado
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
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
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
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:
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
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
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
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
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
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
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
INT
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.