Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Coleccion Problemas Etc II
Coleccion Problemas Etc II
PROBLEMAS
ESTRUCTURA
Y TECNOLOGA
DE COMPUTADORES II
INFORMTICA
SISTEMAS
Y GESTIN
DELEGACIN DE ALUMNOS
CENTRO ASOCIADO DE BALEARES
Curso 2002-2003
PROBLEMAS
TEMA 1: Estructuras de interconexin de un computador
Problemas propuestos en examen
1.1 Una CPU que emplea un tamao de palabra de 16 bits tiene un repertorio de 16 instrucciones con un
formato nico compuesto por un campo de 5 bits, para el cdigo de operacin, y otro campo de 11 bits
para los operandos. Todos los 16 cdigos de operacin comienzan por un 0 y, por tanto, van del 00000 al
01111. Indicar si las siguientes afirmaciones son verdaderas o falsas
I. Si en una direccin de memoria nos encontramos el valor 0011010110001010, necesariamente es
una instruccin mquina.
II. Si en una direccin de memoria nos encontramos el valor 1011010110001010, necesariamente es
un dato.
1.3 Un computador de von Neumann tiene una longitud de palabra de 16 bits. Sus instrucciones mquina
ocupan una longitud de 16 32 bits (1 2 palabras). En ambos casos, el cdigo de operacin de las
instrucciones mquina ocupa un campo de 7 bits. Indique si las siguientes afirmaciones son verdaderas:
I. La memoria principal deber estar dividida en dos bancos distintos: uno para datos y otro para
instrucciones.
II. Este computador tendr, como mximo, 27-1 seales de control diferentes.
1.6 A un bus dedicado a E/S se han conectado la memoria principal y cinco discos iguales. El tiempo de
ciclo de la memoria principal es 400 nseg. La velocidad de transferencia de cada disco es B. La longitud de
palabra es 32 bits. Cada transmisin sobre el bus necesita 500 nseg para enviar el dato y las diferentes
rdenes del protocolo. En cul de las siguientes situaciones estara ms justificado el uso de un bus con
temporizacin sncrona?
A) B = 106 bits/seg
B) B = 4 106 bits/seg
C) B = 107 bits/seg
D) B = 8 107 bits/seg
Curso 2002-2003
1.7 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido:
I. La posicin de conexin de los dispositivos a la lnea de arbitraje no determina la prioridad de
aquellos en el uso del bus.
II. El uso del bus por un dispositivo se interrumpe cuando otro dispositivo con mayor prioridad
solicita el uso del bus.
1.8 Indique cul de las siguientes afirmaciones sobre los buses es cierta:
A) Los buses transportan nicamente datos y direcciones.
B) Los buses pueden ser compartidos por dispositivos de muy distintas velocidades.
C) No es necesario un mtodo de arbitraje para evitar que varias unidades vuelquen
simultneamente datos al bus.
D) Ninguna de las anteriores.
1.9 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido:
I. La posicin de conexin de un dispositivo a la lnea de arbitraje determina su prioridad en el
uso del bus.
II. No se requiere un rbitro.
1.10 Considere una CPU en la que tanto las instrucciones como los datos tienen una longitud de 16 bits. El
formato de las instrucciones es el siguiente: los 4 bits ms significativos de la instruccin representan el
cdigo de operacin y los otros 12 bits representan la direccin de memoria. A continuacin se muestra
una lista parcial de los cdigos de operacin:
0011: Cargar el registro acumulador desde memoria.
0101: Almacenar en memoria el contenido del registro acumulador.
0110: Sumar el contenido del acumulador y el de una direccin de memoria. El resultado se
almacena en el acumulador.
Indicar cul de los siguientes fragmentos de programa suma el contenido de la direccin de memoria 3A516
al contenido de la direccin de memoria 3B916 y almacena el resultado en la direccin de memoria 3A516.
A) 33A516, 63B916, 53A516
B) 33B916, 63A516, 53A516
C) Los anteriores son correctos
D) Ninguno de los anteriores
Curso 2002-2003
PROBLEMAS
TEMA 2: Unidad de memoria
Problemas propuestos en examen
2.1 Una memora cach asociativa por conjuntos consta de 16 (24) conjuntos con 4 particiones por
conjunto. La memoria principal tiene una capacidad de 1M (220) palabras dividida en bloques de 128 (27)
palabras. A la direccin de memoria principal, expresada en binario, 10100001100100110000 Qu conjunto
le corresponde (expresarlo en decimal) ?.
2.2 Un computador tiene una unidad de memoria de 2M (221) palabras y una memoria cach de 1K (210)
palabras con un tamao de particin de 64 (26) palabras. Suponer que se hace una referencia a la direccin
de memoria principal, expresada en binario, 000000001100100110000.
a) Si la memoria cach utiliza correspondencia directa, En qu particin de la memoria cach sera
posible encontrar esa direccin de memoria principal?. Qu etiqueta habra que buscar en esa
particin para saber si esa direccin se encuentra en la memoria cach?
b) Si la memoria cach utiliza correspondencia totalmente asociativa, qu etiqueta habra que
buscar para saber si esa direccin se encuentra en la memoria cach?
2.3 Un computador tiene una unidad de memoria de 512 (29) palabras y una memoria cach de 32 (25)
palabras con un tamao de particin de 8 (23) palabras. Suponiendo que inicialmente la memoria cach est
vaca, calcular cuntos fallos se produciran en la cach si se leyeran sucesivamente las direcciones de
memoria principal 000000000, 000000001, 000000011, 000100001, 000100101, 000010000, 000010010 y
000000000, en cada una de las situaciones siguientes:
a) La memoria cach emplea correspondencia directa.
b) La memoria cache emplea correspondencia asociativa por conjuntos, con 2 particiones por
conjunto. El algoritmo de reemplazamiento utilizado es FIFO (Firts-In Firts-Out).
c) La memoria cach emplea correspondencia totalmente asociativa. El algoritmo de
reemplazamiento utilizado es LRU (Least Recently Used).
2.4 Un sistema jerrquico de memoria tiene una memoria cach de 256 palabras con un tiempo de acceso de
10 nseg, y una memoria principal de 1024 Kpalabras con un tiempo de acceso de 100 nseg. Si la tasa de
acierto de la cach es del 90%. Calcular el tiempo de acceso medio del conjunto si cuando se produce un
fallo en la cach el sistema tarda 20 nseg adicionales en tratar el fallo y la palabra solicitada es enviada de
la memoria principal a la memoria cach de donde es leda por la CPU.
2.5 Un computador tiene una unidad de memoria de 512 (29) palabras y una memoria cach de 32 (25)
palabras. La memoria cach utiliza correspondencia totalmente asociativa, con un tamao de particin de
8 (23) palabras. Suponiendo que inicialmente la memoria cach est vaca, cuntos fallos se produciran en
la cach si se leyeran sucesivamente las direcciones de memoria principal 000000000, 000000001,
000000011, 000100001, 000100101, 000010000, 000010010 y 000000000 ?
2.6 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del
registro argumento, del registro de mscara y del
0
1 0 1 1 1 0 0 ARGUMENTO
contenido de la memoria, cul sera el valor del
1
0 1 0 1 1 0 1 MSCARA
registro de marca?
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
?
?
?
?
?
MARCA
Curso 2002-2003
2.7 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras. La
memoria cach utiliza correspondencia directa, con un tamao de particin de 16 palabras. Suponer que
inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal
000000010000, 000100010100, 000001001000 y 000001111000. Indicar si de las afirmaciones siguientes son
ciertas:
I. Si se leyeran las direcciones de memoria principal se 000000010100 y 010011101100,
sucesivamente, se produciran dos fallos en la memoria cach y sera necesario reemplazar dos de
los bloques existentes en la cach.
II. Si se leyera la direccin de memoria principal 000001110001 se producira un acierto en la memoria
cach y sera necesario reemplazar un bloque existente en la cach.
2.8 El siguiente diagrama representa una memoria asociativa y su contenido.
?
1
?
0
?
0
?
1
?
0
?
1
?
0
?
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
ARGUMENTO
MSCARA
0
1
0
0
1
MARCA
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
Argumento 1
Argumento 2
Argumento 3
Argumento 4
Argumento 5
2.9 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 128 palabras. La
memoria cach utiliza correspondencia totalmente asociativa, con un tamao de particin de 16 palabras.
El algoritmo de reemplazamiento es FIFO (se reemplaza la particin ms antigua). Suponer que inicialmente
la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal
000000010000, 000100010100, 000001001000 y 000001111000. Indicar si las afirmaciones siguientes son
ciertas:
I. En estas cuatro lecturas se ha producido un total de tres fallos en la memoria cach.
II. Si a continuacin se leyera la direccin de memoria principal 011001110100 se producira un nuevo
fallo en la cach y se tendr que reemplazar uno de los bloques de la cach.
2.10 Un computador tiene una unidad de memoria de con 16 lneas de direccin, y una memoria cach de
1K palabras. La memoria cach utiliza correspondencia asociativa por conjuntos, con un tamao de
particin de 16 palabras y 4 particiones por conjunto. Explicar razonadamente en qu campos se divide la
direccin de memoria principal 0000110111000011 e indique el valor de cada uno de estos campo en
decimal.
0
?
2.11 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del
registro argumento y del contenido de la memoria, cuntos de los
1 0 1 1 1 0 0 ARGUMENTO
registros de mscara propuestos a continuacin produciran ese
? ? ? ? ? ? ? MSCARA
registro de marca en el acceso a memoria?
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
MARCA
1 Mscara 1
1 Mscara 2
1 Mscara 3
1 Mscara 4
1 Mscara 5
2.12 Cul es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 80
nseg. y un tiempo de ciclo de 100 nseg.?
Curso 2002-2003
2.13 Indicar si las siguientes afirmaciones son verdaderas o falsas. Para disear un mdulo de memoria de
256 palabras de 4 bits
I. Utilizando organizacin 2D, para seleccionar la palabra hara falta un decodificador de 8 entradas
y 28 salidas.
II. Utilizando organizacin 2 D, para seleccionar la palabra haran falta dos decodificadores de 4
entradas y 24 salidas.
2.14 En una memoria cach en la que se realizan 230 accesos con una tasa de aciertos del 75%, Cal es el
nmero de fallos producidos ?
2.15 Un computador tiene una unidad de memoria de 256 palabras y una memoria cach de 32 palabras. La
memoria cach es totalmente asociativa, con un tamao de particin de 8 palabras y cuando se produce
un fallo en la cach se reemplaza la particin ms antigua. Suponiendo que inicialmente la memoria cach
est vaca, explicar razonadamente cuntos fallos se produciran en la cach si se leyeran sucesivamente
las direcciones de memoria principal: 00000000, 00000001, 00000011, 00100001, 00100101, 00010000,
00010010 y 00000000.
2.16 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del
registro argumento, del registro de mscara, del registro etiqueta y del contenido de la memoria, cul sera
el valor del registro de marca?
ETIQUET
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
ARGUMENTO
MASCARA
?
?
?
?
?
MARCA
2.17 Un computador tiene una unidad de memoria de 256 palabras y una memoria cach de 32 palabras. La
memoria cach es totalmente asociativa, con un tamao de particin de 8 palabras. Cuando se produce un
fallo en la cach se reemplaza la particin ms antigua. Suponer que inicialmente la memoria cach est
vaca y que se leen sucesivamente las direcciones de memoria principal: 00000000, 00000001, 00000011,
00100001, 00100101,00010000, 00010010 y 00000000. Si se leyera la direccin 00100111. Indicar si son
verdaderas o falsas las siguientes afirmaciones :
I. Se producira un acierto en la memoria cach.
II. Se producira un fallo en la memoria cach y sera necesario reemplazar uno de los bloques
existentes en la cach.
2.18 Un sistema jerrquico de memoria est compuesto por una memoria cach de 256 palabras, dividida
en particiones de 8 palabras y con un tiempo de acceso de 10 nseg, y por una memoria principal de 1024
Kpalabras con un tiempo de acceso de 100 nseg. Cuando se produce un fallo, se mueve el dato a la CPU y,
simultneamente, se mueve el bloque a la memoria cach. Si la tasa de acierto de la cach es del 90%, cul
ser el tiempo de acceso medio del conjunto?
2.19 Un sistema jerrquico de memoria tiene una memoria cach de 256 palabras, dividida en particiones de
8 palabras y con un tiempo de acceso de 10 nseg, y una memoria principal de 1024 Kpalabras con un
tiempo de acceso de 100 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a la
memoria cach y despus se lee el dato desde la cach. Si la tasa de acierto de la cach es del 90%, cul es
el tiempo de acceso medio de este sistema?
Curso 2002-2003
2.20 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores de
los registros argumento, mscara, etiqueta y marca, y del contenido de la memoria, en una operacin de
escritura en esta memoria, en qu palabra se escribira el nuevo dato?
ETIQUET
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
ARGUMENTO
MASCARA
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
Palabra 0
Palabra 1
Palabra 2
Palabra 3
Palabra 4
0
1
1
0
0
MARCA
2.21 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras.
La memoria cach utiliza correspondencia directa, con un tamao de particin de 16 palabras. Suponer que
inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal
000000010000, 000100010100, 000001001000 y 000001111000. Indicar si al finalizar estas cuatro operaciones
de lectura las afirmaciones siguientes son ciertas:
I. La palabra de direccin 000001111000 se encuentra almacenada en el conjunto 0 de la cach.
II. El conjunto 1 de la cach tiene asociada la etiqueta 000000.
2.22 Se considera un procesador que dispone de 12 lneas de direcciones A 11 -A 0 . Para la construccin de
su unidad de memoria se dispone de mdulos de 1K palabras, utilizndose las lneas ms significativas
(A 11 -A 10 ) para la seleccin de cada mdulo. Cul es en el mapa de memoria, la direccin base (primera
direccin de cada mdulo) en notacin hexadecimal de los sucesivos bloques de memoria ?
2.23 Un computador dispone del siguiente sistema jerrquico de memoria (ordenado de los niveles
superiores a los inferiores): registros de la CPU, cach primaria, cach secundaria, memoria principal y
discos magnticos. Indique si las siguientes afirmaciones son verdaderas:
I. El coste por palabra de la cach primaria ser menor que el coste por palabra de la cach
secundaria.
II. La cach primaria ser de menor tamao que la secundaria y contendr la copia de algunos
bloques de sta.
2.24 Indicar si las siguientes afirmaciones son verdaderas o falsas. En un sistema de memoria cach con
correspondencia totalmente asociativa:
I. No es necesario definir una poltica de reemplazamiento.
II. Un posible algoritmo de reemplazamiento consiste en reemplazar particiones escogidas de forma
aleatoria.
2.25 Se considera un procesador que dispone de 12 lneas de direcciones A 11 -A 0 . Para la construccin de
su unidad de memoria se dispone de mdulos de 1K palabras, utilizndose las lneas menos significativas
(A 1 - A 0 ) para la seleccin de cada mdulo. Indique cul de las siguientes afirmaciones es verdadera:
A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo mdulo de
memoria.
B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes mdulos de
memoria.
C)Ninguna de las anteriores es verdadera.
2.26 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras.
La memoria cach utiliza correspondencia directa, con un tamao de particin de 16 palabras. Suponer que
inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal
000000010000, 000100010100, 000001001000 y 000001111000. Indicar si al finalizar estas cuatro operaciones
de lectura las afirmaciones siguientes son ciertas:
I. La palabra de direccin 000001111000 se encuentra almacenada en el bloque 3 de la cach.
II. El bloque 1 de la cach tiene asociada la etiqueta 000100.
Curso 2002-2003
2.27 Un computador tiene una memoria principal de 32k palabras de 16 bits/palabra. Tambin tiene una
memoria cach asociativa por conjuntos de 4k palabras, con 4 bloques por conjunto y 64 palabras por
bloque. Considrese que la memoria cach est inicialmente vaca y que utiliza el algoritmo FIFO para el
reemplazo de los bloques. Supngase que la CPU accede a 4352 palabras de las direcciones 0, 1, 2... 4351,
en orden. Despus repite esta secuencia nueve veces ms. La memoria cach es 10 veces ms veloz que la
memoria principal. Se pide:
a) (0.50 puntos) Especifique el nmero de bits de los campos en que se descompone una direccin
de memoria principal de este sistema.
b) (0.25 puntos) Calcule cunto tiempo se tardara en realizar estos accesos a memoria principal si
este computador no tuviera memoria cach.
c) (2 puntos) Calcule cuntos fallos se producen en la cach a la hora de realizar estos accesos a
memoria principal. Explique claramente su razonamiento.
d) (1.25 puntos) Si cada vez que se produce un fallo primero se mueve el bloque completo de
memoria principal a memoria cach y despus se lee el dato de la cach, calcule cunto tiempo
tardara la CPU en realizar estos accesos a memoria.
2.28 Un programa tiene dos bucles anidados, un bucle interior menor que se ejecuta 20 veces y un bucle
exterior mucho mayor que se ejecuta 10 veces. La estructura general del programa se muestra en la figura,
donde las direcciones mostradas se corresponden con el principio y final de cada uno de estos bucles, y el
principio y final del programa. Las direcciones se muestran en formato decimal(hexadecimal), por ejemplo
165(H00A5).
Todas las direcciones de memoria de las diferentes secciones, 17-22, 23-164, 165-239, etc., contienen
instrucciones que deben ejecutarse en secuencia de lnea recta. El programa se ejecuta en un computador
con una memoria principal de 64k palabras y una memoria cach con correspondencia directa de 1k
palabras y un tamao de bloque de 128 palabras. El tiempo de acceso a la memoria principal es de 10t y el
tiempo de acceso a la memoria cach es de 1t.
17 (H0011)
23 (H0017)
165 (H00A5)
239 (H00EF)
1200 (H04B0)
1500 (H05DC)
2.29 En una memoria cach en la que se realizan 220 accesos se producen 217 fallos. Cual es la tasa de
fallos correspondiente?.
2.30 Se considera un procesador que dispone de 12 lneas de direcciones A 11 -A 0 . Para la construccin de
su unidad de memoria se dispone de mdulos de 2K palabras, utilizndose la lnea A1 para la seleccin de
cada mdulo (A 0 es la lnea menos significativa). Indique cul de las siguientes afirmaciones es verdadera:
A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo mdulo de
memoria.
B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes mdulos de
memoria.
C) El mdulo en que se encuentra almacenada una direccin de memoria queda determinado por el
valor de A 10 .
D) Ninguna de las anteriores es verdadera.
Curso 2002-2003
2.31 Un computador tiene una memoria principal de 64k palabras de 16 bits/palabra. Tambin tiene una
memoria cach totalmente asociativa de 2k palabras y 256 palabras por bloque.
Considrese que la memoria cach est inicialmente vaca y que, cuando la cach est llena, se reemplaza el
bloque que se haya utilizado ms recientemente. Supngase que la UCP ejecuta un bucle 5 veces, en el
que accede a 2301 palabras, desde la direccin 0 hasta la direccin 2300. La memoria cach es 7 veces ms
veloz que la memoria principal. Se pide:
A) (0.25 puntos) Especifique el nmero de bits de los campos en que se descompone una direccin de
memoria principal de este sistema.
B) (0.25 puntos) Calcule cunto tiempo se tardara en realizar estos accesos a memoria principal si este
computador no tuviera memoria cach.
C) (1.5 puntos) Realice una tabla con 5 columnas, una columna por cada vez que se ejecuta el bucle, y
tantas filas como bloques tenga la memoria cach. En cada columna ponga el valor de la etiqueta
existente en cada bloque de la cach al finalizar cada uno de los cinco ciclos. Expresar el valor de la
etiqueta en hexadecimal.
D) (1.00 puntos) Calcule cuntos fallos se producen en la cach a la hora de realizar estos accesos a
memoria principal. Explique claramente su razonamiento.
E) (1.00 puntos) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria
principal a memoria cach y despus se lee el dato de la cach, calcule cunto tiempo tardara la
UCP en realizar estos accesos a memoria.
2.32 En una memoria cach en la que se realizan 220 accesos se producen 217 fallos. Cual es la tasa de
aciertos correspondiente ?.
2.33 Un computador tiene una unidad de memoria de 8192 Kpalabras y una memoria cach de 2 Kpalabras.
La memoria cach utiliza correspondencia asociativa por conjuntos, con un tamao de particin de 64
palabras y 4 particiones por conjunto. Suponer que inicialmente la memoria cach est llena con la
ejecucin de un programa anterior Prog1 y se carga en memoria principal un nuevo programa Prog2.
Prog2 efecta la siguiente secuencia de referencias en la ejecucin de su cdigo: se leen secuencialmente
las direcciones 128, 129, 130 hasta la 143, posteriormente se repite un bucle de lectura de las direcciones
131,132 y 133 20 veces y finalmente se leen secuencialmente las direcciones 134, 135, 136 hasta la 168.
Cul es la tasa de aciertos obtenida para Prog2?
2.34 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del
registro argumento, registro etiqueta y del contenido de la memoria, cuntos de los registros de mscara
propuestos a continuacin produciran ese registro de marca en el acceso a memoria?
ETIQUETA
0
1
1
1
1
0
?
1
?
0
?
1
?
1
?
1
?
0
?
0
?
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
ARGUMENTO
MASCARA
0
1
0
0
1
MARCA
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
mscara
mscara
mscara
mscara
mscara
2.35 Una memoria cach por correspondencia directa utiliza particiones de 64 palabras y su capacidad total
son 1024 palabras. La memoria principal tiene capacidad para 220 palabras. Decir si las siguientes
afirmaciones son ciertas:
I. Las direcciones de memoria principal 1D45F y 02075, expresadas en hexadecimal, se corresponden
con la particin 4 de la memoria cach.
II. La direccin de memoria 2A23B, expresada en hexadecimal, se corresponde con la particin 8 de la
memoria cach.
2.36 Supngase una memoria RAM de 1024 palabras 16 bits/palabra construida empleando circuitos
integrados de memoria RAM de 128 palabras 8 bits/palabra. A fin de permitir el direccionamiento de las
palabras de la memoria, calcular: a) El nmero de lneas del bus de direcciones. b)El nmero de lineas del
bus de direcciones comunes a todos los mdulos.
1
2
3
4
5
Curso 2002-2003
2.37 Cul es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 100
nseg y un tiempo de ciclo de 200 nseg?
2.38 Un sistema jerrquico de memoria est compuesto por una memoria cach de 128 palabras, dividida en
particiones de 16 palabras y con un tiempo de acceso de 10 s, y por una memoria principal de 1024
Kpalabras con un tiempo de acceso de 200 seg. Cuando se produce un fallo, primero se mueve el bloque
completo a la memoria cach y despus se lee el dato desde la cach. La poltica de ubicacin y
reemplazamiento tarda 20 seg por trmino medio. Si la tasa de acierto es del 99%, decir si las siguientes
afirmaciones son ciertas:
I. El tiempo de acceso medio es de 42,2 seg.
II. Este sistema jerrquico de memoria es entre 4 y 5 veces ms rpido que la memoria principal.
2.39 Una memoria cach por correspondencia directa utiliza 8 palabras/bloque y su capacidad total son 1K
palabras. La memoria principal tiene una capacidad de 64K palabras. En un determinado instante, la
direccin 6B59, expresada en hexadecimal, de la memoria principal se encuentra en la cach. Decir si las
siguientes afirmaciones son ciertas:
I. Esta direccin se corresponde con el bloque 107, expresado en decimal, de la memoria cach.
II. Del enunciado puede deducirse que la direccin 675E, expresada en hexadecimal, no est en la
cach.
2.40 Sea un sistema de memoria cach con dos niveles, donde la memoria cach de nivel 1 es la ms
cercana a la CPU y la memoria de nivel 2 es la ms cercana a la memoria principal. Indique si las siguientes
afirmaciones son verdaderas:
I. En algn momento existir una copia de todos los bloques de la cach de nivel 2 en la cach
de nivel 1.
II. Utilizando una poltica de post-escritura, la memoria cach de nivel 2 tiene siempre una copia
exacta de los bloques de la memoria cach de nivel 1.
2.41 Un pequeo computador dispone de 16 lneas de direcciones A15 -A 0 . Su unidad de memoria est
compuesta tanto por mdulos de memoria ROM como de RAM. La ROM est formada por un nico
mdulo y ocupa las direcciones ms bajas de la memoria, comenzando en la direccin 0. La RAM, con 48
Kbytes de capacidad, ocupa las direcciones restantes. Indique si las siguientes afirmaciones son
verdaderas:
I. La funcin lgica de la seal de habilitacin del mdulo de memoria ROM es CS ROM = A15 A14 .
II. Los dos bits menos significativos de la direccin, A1 A 0 , se pueden utilizar para distinguir si
una direccin de memoria corresponde a ROM o a RAM.
2.42 Una memoria de acceso no aleatorio con velocidad de transferencia de 2 106 bits/seg, emplea en
promedio 2 mseg en colocar en su posicin la cabeza de lectura-escritura. Cul es el tiempo medio que
tarda en leer o escribir 103 bytes?
2.43 Un sistema jerrquico de memoria tiene una memoria cach de 256 palabras, dividida en particiones de
8 palabras y con un tiempo de acceso de 20 nseg, y una memoria principal de 1024 Kpalabras con un
tiempo de acceso de 200 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a la
memoria cach y despus se lee el dato desde la cach. Si la tasa de acierto de la cach es del 90%, cul es
el tiempo de acceso medio de este sistema?
2.44 En una memoria cach en la que se realizan 1020 accesos se producen 1018 fallos. Calcular la tasa de
aciertos:
2.45 Desde el punto de vista de una cach una direccin de memoria principal se divide en tres campos:
ETIQUETA 20 bits, CONJUNTO 7 bits y PALABRA 5 bits. La cach tiene 2 bloques por conjunto.
Sabiendo que la longitud de palabra es de 1 byte, cul es el tamao de la memoria cach?
Curso 2002-2003
Curso 2002-2003
PROBLEMAS
TEMA 3: Unidad de Entrada/Salida
Problemas propuestos en examen
3.1 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 2 unidades de
cinta. Las unidades de disco tienen una velocidad de transferencia de 500 Kbytes/seg, y las de cinta de
150 Kbytes/seg. Calcular la mxima velocidad de transferencia agregada a este sistema.
3.2 Un computador dispone de un canal selector que controla 2 unidades de disco y 2 unidades de cinta.
Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 105
bytes/seg. Si para la transferencia de un byte del canal selector a memoria principal se utiliza el bus del
sistema durante 10 nseg., qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una
transferencia de datos a travs de este canal selector?.
3.3 Se dispone de un computador que funciona a una velocidad de 108 ciclos por segundo y en el que, en
promedio, una instruccin emplea 10 ciclos mquina y cada operacin de lectura o escritura de memoria
tarda 5 ciclos mquina. Determinar la mxima velocidad de transferencia de datos si en este sistema se
emplea DMA con estrategia de transferencia por rfagas.
3.4 Un computador con 13 lneas de direcciones tiene una memoria de 212 palabras y utiliza entrada/salida
localizada en memoria.
a) Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno
ocupa una sola direccin?
b) Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno
ocupa 8 direcciones?
3.5 Sea una UCP con 4 lneas de interrupcin PI3, PI2, PI1 y PI0 de las cuales son enmascarables las tres
primeras lneas mediante 3 bits del registro de estado RE de la UCP, de forma que una peticin de
interrupcin en PIj enmascara las lneas PIi con i<j e i0. Se supone que se producen 4 peticiones de
interrupcin en este orden : PI3,PI2, PI0 y PI1. Teniendo en cuenta que las tres ltimas se producen mientras
se est ejecutando el programa de servicio de PI3, En qu orden se tratan las interrupciones ?
3.6 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia de robo de
ciclos. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de
reloj en ser ejecutadas, aunque en 2 de ellos no requiere el acceso al bus. Si la frecuencia de reloj del
computador es de 200106 ciclos/seg., cuntas instrucciones por segundo deja de ejecutar la UCP cuando
el controlador de DMA est realizando una transmisin?
3.7 En un computador que funciona a una velocidad de 108 ciclos/seg una instruccin emplea, en
promedio, 4 ciclos mquina en ser ejecutada y en 2 de estos ciclos no hace uso del bus. Este computador
tiene un controlador de DMA que emplea 1 ciclo en la transferencia de una palabra. Indicar si son ciertas
las siguientes afirmaciones:
I. Utilizando DMA transparente la mxima velocidad de transferencia de datos es de 50.000.000
palabras/seg.
II. Empleando DMA por robo de ciclos la mxima velocidad de transferencia de datos es de
20.000.000 palabras/seg.
Curso 2002-2003
3.8 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 5 unidades de
cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de
2105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el
bus del sistema durante 100 nseg. Qu porcentaje mximo de tiempo estara ocupado el bus del sistema en
una transferencia de datos del canal multiplexor a memoria principal?
3.9 Un controlador de E/S posee un buffer para el almacenamiento temporal de los datos con una
capacidad de 256 Kb. En un instante determinado inicia una operacin de E/S con una impresora a una
velocidad de transferencia de 256 Kb/seg. Si el controlador de E/S recibe la informacin que debe enviar a
la impresora a una velocidad de 1Mb/seg, cunto tiempo tardar en llenarse por primera vez el buffer
suponiendo que inicialmente est vaco, y que recibe y enva informacin simultneamente de forma
continua?
3.10 Si llamamos VP, VI y VD a las velocidades mximas de transferencia empleando E/S controlada por
programa, E/S con interrupciones y E/S con DMA, respectivamente, se verifica la relacin:
A) VP<VI>VD B) VP<VI<VD
C) VP>VI>VD
3.12 Un ordenador con 32 lneas de direcciones tiene una memoria de 32 Mb y utiliza entrada/salida
aislada de memoria. Cul es el nmero mximo de perifricos que pueden conectarse a este ordenador,
suponiendo que cada uno ocupa 16 direcciones?
3.13 En un ordenador cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en
promedio, 4 ciclos de reloj en ser ejecutadas, aunque en 1 de ellos no requieren el acceso al bus. La
frecuencia de reloj del computador es de 200106 ciclos/seg. Si se tarda un ciclo en transmitir una palabra
empleando DMA, indicar si las siguientes afirmaciones son ciertas:
I. Empleando DMA por robo de ciclos se consigue la misma velocidad de transferencia que con
DMA transparente.
II. La velocidad de ejecucin del procesador se reduce ms con DMA por robo de ciclos que con
DMA transparente.
3.14 Un computador dispone de un canal multiplexor que controla 3 unidades de disco y 5 unidades de
cinta. Las unidades de disco tienen una velocidad de transferencia de 5106 bytes/seg., y las de cinta de
105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus
del sistema durante 50 nseg., explique razonadamente qu porcentaje mximo de tiempo estara ocupado el
bus del sistema en una transferencia de datos a travs de este canal multiplexor.
3.15 Indicar cul de las siguientes afirmaciones es verdadera:
A) La principal desventaja de las interrupciones vectorizadas consiste en que la UCP ha de comprobar,
uno por uno, el estado de todos los controladores de E/S de los dispositivos que tiene conectados.
B) La UCP recibe el vector de interrupcin a travs del bus de datos o del bus de direcciones,
indistintamente.
C) Las interrupciones multinivel no permiten la identificacin de la fuente de interrupcin mediante un
vector de interrupcin.
D) Ninguna de las anteriores.
3.16 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 10 unidades de
cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 103
bytes/seg. Razonar cul es la velocidad mxima de transferencia agregada a este sistema.
Curso 2002-2003
3.17 Se dispone de una UCP con una nica lnea de peticin de interrupcin (INTR) y una nica lnea de
aceptacin de interrupcin (INTA). Se desea disear para esta UCP un controlador de interrupciones como
el mostrado en la figura, de manera que pueda atender interrupciones generadas por 4 dispositivos
externos mediante las lneas de peticin de interrupcin INTR3, INTR2, INTR1 e INTR0.
Cuando se reciben peticiones de interrupcin simultneas por ms de una lnea slo se reconoce la ms
prioritaria (la mxima prioridad la tiene INTR3 y la mnima INTR0). Adems, cada una de estas lneas de
interrupcin se ha de poder enmascarar de manera individual mediante un registro de mscara del
controlador de interrupciones (el mecanismo de acceso a este registro por parte de la UCP no es relevante
para este problema).
Cuando la UCP activa su lnea de aceptacin INTA se debe informar al perifrico correspondiente, de
manera individual, de que su peticin ha sido
INTR0
INTR
aceptada, mediante las lneas de aceptacin
INTA3, INTA2, INTA1 e INTA0.
INTR1
Controlador
A) (0.75 puntos) Obtener la tabla de verdad de
de
UCP
INTR2
interrupciones
las 4 lneas INTAi (i=1..4) en funcin de las 4
lneas INTRi (i=1..4) e INTA, suponiendo
INTR3
INTA
que ninguna de las lneas de peticin est
enmascarada.
INTA0
B) (0.75 puntos) Disear un circuito lgico que
INTA1
implemente
el
mecanismo
de
INTA2
enmascaramiento de las 4 lneas INTRi
INTA3
(i=1..4).
C) (0.75 puntos) Disear un circuito lgico que implemente el esquema de prioridades de las 4 lneas
INTRi (i=1..4).
D) (0.75 puntos) Disear el circuito que genere las seales INTAi (i=1..4).
E) (1 punto) Disear el controlador de interrupciones solicitado utilizando para ello los resultados
obtenidos en los apartados anteriores.
3.18 Sea una UCP con 4 lneas de interrupcin PI1, PI2, PI3 y PI4, numeradas en orden creciente de
prioridad, es decir, PI1 tiene la prioridad mnima y PI4 la mxima. El sistema no permite anidamiento de
interrupciones. Se supone que se producen 4 peticiones de interrupcin en este orden: PI3, PI1, PI4 y PI2.
Teniendo en cuenta que las tres ltimas se producen simultneamente mientras se est ejecutando el
programa de servicio de PI3, en qu orden se tratan las interrupciones?
3.19 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 10 unidades de
cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 103
bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del
sistema durante 100 nseg. Qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una
transferencia de datos del canal multiplexor a memoria principal?
3.20 Sea una UCP con 5 lneas de interrupcin PI4, PI3, PI2, PI1 y PI0 enmascarables mediante 5 bits del
registro de estado RE de la UCP, de forma que una peticin de interrupcin en PIj enmascara las lneas PIi
con i<j. Se supone que se producen 4 peticiones de interrupcin en este orden: PI2, PI4, PI3 y PI1.
Teniendo en cuenta que las interrupciones son anidables y que las tres ltimas se producen
simultneamente y antes de finalizar la ejecucin del programa de servicio de PI2, en qu orden se tratan
las interrupciones?
3.21 Un computador dispone de un canal selector que controla 3 unidades de disco y 5 unidades de cinta.
Las unidades de disco tienen una velocidad de transferencia de 5106 bytes/seg., y las de cinta de 105
bytes/seg. Si para la transferencia de un byte del canal selector a memoria principal se utiliza el bus del
sistema durante 50 nseg., qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una
transferencia de datos a travs de este canal selector?.
Curso 2002-2003
Bus de datos
Bus de direcciones
Leer
Escribir
Memoria
Principal
UCP
Controlador
E/S
Perif. 1
...
Perif. n
Curso 2002-2003
3.31 En un sistema de E/S de un computador estn conectados 2 discos duros, 1 impresora y 1 CDROM. El
sistema de E/S gestiona los dispositivos mediante interrupciones anidables y adems estos estn
agrupados por prioridades con P1>P2>P3, siendo la prioridad de los discos P1, la del CDROM P2 y la de
la impresora P3. Se sabe adems que las rutinas de interrupcin llevan asociados unos tiempos de servicio,
siendo stos para los discos de 10 u.t. (unidades de tiempo), para el CDROM de 30 u.t. y para la impresora
de 15 u.t. En un instante determinado (t=0 u.t.) se produce una peticin de interrupcin del primer disco
duro, despus en el instante t=3 u.t. llega una peticin de interrupcin de la impresora, posteriormente se
produce una interrupcin del CDROM en t = 5 u.t. y finalmente llega una peticin de interrupcin del
segundo disco duro en t = 14 u.t. En qu instante de tiempo finaliza la ejecucin de la rutina de
interrupcin del CDROM?
3.32 Indique si las siguientes afirmaciones son verdaderas.
I. El controlador de DMA necesita tener el control del Bus para poder transmitir datos desde (o hacia)
la memoria.
II. La estrategia de transmisin por rfagas es la ms adecuada cuando se desea eliminar
completamente la interferencia entre el controlador de DMA y la CPU.
3.33 Indique si las siguientes afirmaciones son verdaderas.
I. En los computadores provistos de procesador de E/S (PE/S) las instrucciones se E/S se almacenan
en la memoria principal y son ejecutadas por la CPU.
II. El PE/S inicia la transferencia de E/S al dar la orden a la CPU para que ejecute el programa con
instrucciones de E/S almacenado en memoria.
3.34 En el registro de estado del procesador Motorola 68000 hay tres bits (I2 I1 I0) usados para enmascarar
las interrupciones de ciertos dispositivos. Cul es la configuracin de estos bits si se desean enmascarar
las interrupciones de nivel 7?
3.35 Se dispone de una UCP con una nica lnea de peticin de interrupcin (INTR) y una nica lnea de
aceptacin de interrupcin (INTA). Se desea disear para esta UCP un controlador de interrupciones como
el mostrado en la Figura, de manera que pueda atender interrupciones generadas por 8 dispositivos
externos mediante las lneas de peticin de interrupcin INTR7, INTR6, ..., INTR1 e INTR0.
Cuando se reciben peticiones de interrupcin simultneas por ms de una lnea slo se reconoce
la ms prioritaria (la mxima prioridad la tiene INTR7 y la mnima INTR0). Este controlador no permite
enmascaramiento.
Cuando la UCP activa su lnea de aceptacin INTA se debe informar al perifrico correspondiente,
de manera individual, de que su peticin ha sido aceptada, mediante las lneas de aceptacin INTA7,
INTA6, ..., INTA1 e INTA0.
(1.00 puntos) Obtener la tabla de verdad
de las 8 lneas INTAi (i=0..7) en funcin
Controlador
de las 8 lneas INTRi (i=0..7) e INTA.
de
UCP
B) (1.00 puntos) Disear un circuito lgico
interrupciones
que implemente el esquema de
INTR7
INTA
prioridades de las 8 lneas INTRi (i=0..7).
C) (0.75 puntos) Disear el controlador de
INTA0
interrupciones solicitado utilizando para
ello los resultados obtenidos en los
apartados anteriores.
INTA7
D) (1.25 puntos) Indique razonadamente
cmo conectara 2 controladores de interrupciones de 8 entradas, como el diseado en el apartado
anterior, para poder atender las peticiones de interrupcin de 15 dispositivos externos. (Se valorar
positivamente la simplicidad del diseo.)
INTR0
INTR
A)
Curso 2002-2003
3.36 En un sistema cuando la UCP dispone en exclusiva del bus las instrucciones emplean 3 ciclos de reloj
en ser ejecutadas, aunque en 1 de ellos, el segundo, no requiere el acceso al bus. Si el controlador de
DMA tarda dos ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmaciones
son ciertas:
I. Se puede implementar la estrategia de DMA por rfagas.
II. Se puede implementar la estrategia de DMA transparente.
3.37 Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 5 unidades de
cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 105
bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del
sistema durante 50 nseg, Cual es la mxima velocidad de transferencia agregada a este sistema?
3.38 Un computador con 24 lneas de direcciones tiene una memoria de 220 palabras y utiliza entrada/salida
aislada. Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno ocupa
una sola direccin?
3.39 Indicar cul de las siguientes afirmaciones es falsa.
A) Un PE/S de tipo canal selector controla mltiples dispositivos de alta velocidad.
B) Un PE/S de tipo canal multiplexor puede controlar de forma simultnea operaciones de E/S con
mltiples dispositivos.
C) En E/S controlada por programa la CPU realiza, entre otras operaciones, la comprobacin del
estado del perifrico.
D) Alguna de las anteriores es falsa.
3.40 En un computador que usa E/S controlada por programa, el dispositivo de E/S tarda 6 mseg en tener
disponible el dato solicitado. Suponiendo que el computador slo se dedica a E/S, que el bucle de espera
se implementa con una nica instruccin, que la lectura de un dato y solicitud del siguiente dato por parte
de la CPU lleva 10 instrucciones, y que cada instruccin de la CPU se ejecuta en 200 seg, qu tanto por
ciento de su tiempo dedica la CPU al bucle de espera?.
Curso 2002-2003
PROBLEMAS
TEMA 4: Unidad Aritmtico Lgica
Problemas propuestos en examen
4.1 Se desea realizar una Unidad Aritmtico Lgica que realice dos operaciones, suma y comparacin de
dos nmeros X (x2x1x0) e Y (y2y1y0) de 3 bits cada uno, siendo su salida S (s3s2s1s0).
x 2 x 1 x0
c
y2 y 1 y0
UAL
s3
s2
s1
s0
S=X+Y
Si X > Y entonces S = 1 0 0 0
Si X = Y entonces S = 0 1 0 0
Si X < Y entonces S = 0 0 1 0
c = 1 : comparacin
4.2 Disear el circuito de comparacin secuencial que se muestra en la figura. El circuito posee dos
entradas de datos X e Y, una entrada de seal de reloj y una salida Z = {M, I, m}. Recibe los bits xi e yi de
forma serie, comenzando por los ms significativos. El circuito genera sus salidas de acuerdo con la
siguiente tabla
M
X>Y
X=Y
X<Y
x0
x n-2 x n-1
Comparador
M
I
y0
y n-2 y n-1
Secuencial
Para ello:
a) Indique el diagrama de estados del circuito, especificando claramente cul es el significado de
cada uno de los estados.
b) Indique cmo codifica los estados y obtenga la tabla de transicin de estados correspondiente.
c) Suponiendo que slo dispone de biestables tipo D para el diseo del circuito, calcular las
funciones de excitacin de los biestables.
d) Implemente el circuito con biestables tipo D y puertas lgicas NAND y NOT nicamente.
Curso 2002-2003
4.3 Se desea realizar un circuito combinacional que multiplique dos nmeros binarios, uno de ellos de 3
bits (b 2b 1b 0) y el otro de 2 bits (a 1a0), utilizando para ello mdulos de memoria ROM de capacidad 24
palabras 4 bits/palabra (vase la Figura ).
Bus de
direcciones
4
ROM
16x4
Bus de
datos
4
CS
Seleccin de
circuito
4.4 Sean dos nmeros de 12 bits representados en binario puro: X=000011000010, Y=000101110001.
Calcular el resultado de su suma, expresado en BCD.
4.5 Explique cuntos mdulos de memoria ROM de 2n palabras n bits/palabra seran necesarios para
disear un circuito combinacional que multiplique dos nmeros de n bits.
4.6 Se desea construir un multiplicador binario para dos nmeros de 8 bits, utilizando puertas lgicas tipo
AND y sumadores binarios completos (SBC). Cuantas puertas AND que hay que utilizar ?
4.7 A partir de las expresiones de S (resultado de la suma) y C (acarreo de la suma) de un sumador binario
completo SBC, desarrolle las expresiones del resultado de la suma (S1 y S0) y del acarreo (C1) de la suma de
los nmeros binarios de dos bits x1x0 e y 1y 0.
4.8 Para multiplicar dos nmeros binarios sin signo de 3 y 4 bits, respectivamente, se podra utilizar ?
I. Una memoria ROM de 27 palabras con 7 bits por palabra.
II. 12 puertas AND y 8 sumadores binarios completos (SBC).
4.9 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario serie:
I. El tiempo de clculo no depende del nmero de bits que hay que sumar.
II. La complejidad del circuito depende del nmero de bits que hay que sumar.
4.10 Disear un multiplicador para dos nmeros X e Y de 3 y 6 bits respectivamente, representados en
binario puro sin signo, utilizando nicamente 2 memorias ROM de 64 palabras 6 bits/palabra y 2
sumadores binarios paralelos de 3 bits cada uno.
A) Disear razonadamente el multiplicador.
B) Indicar razonadamente cul ser el contenido de cada una de las memorias ROM.
Curso 2002-2003
4.11 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario completo (SBC) de
dos nmeros binarios de un bit, x e y, y con acarreo de entrada c-1:
I. La funcin lgica del resultado de la suma es s = x y
( es la OR exclusiva).
II. La funcin lgica del acarreo de salida es c = xy + (x y)c 1
( es la OR exclusiva).
4.12 Se desea realizar una Unidad Aritmtico Lgica (UAL) como la mostrada en la figura, con dos
entradas de datos X (x2x1x0) e Y (y1y0), una entrada de control C (c1c0) y una salida de datos
S (s3s2s1s0). El funcionamiento de la UAL viene descrito por la siguiente tabla:
Seal de control
c1c0 = 00 : suma
c1c0 = 01 : resta
c1c0 = 10 : comparacin
Operacin
S =X+Y
S =X-Y
Si X > Y entonces S = 1 0 0 0
Si X = Y entonces S = 0 1 0 0
Si X < Y entonces S = 0 0 1 0
S = X (s3=0, s2s1s0=x2x1x0)
c1c0 = 11 : sacar X
x 2 x 1x 0
c1c0
2
s3
y1 y0
UAL
s2
s1
s0
4.13 Se desea comparar dos nmeros binarios de 4 bits cada uno: X=x3x2x1x0 con Y=y3y 2y 1y 0. Utilizando
comparadores de un bit se compara cada pareja de bits, xi con y i, obtenindose: Mi (xi>y i), Ii (xi=y i) y mi
(xi<y i). Entonces:
I. La funcin lgica M (X>Y) es M = M 3 + I3M 2 + I3I2M 1.
II. La funcin lgica m (X<Y) es m = m0 + I0m1 + I0I1m2 + I0I1I2m3.
Indicar la validez de las afirmaciones I y II.
4.14 Indicar si las siguientes afirmaciones son ciertas : En un semisumador binario (SSB) de dos nmeros
binarios de un bit, x e y:
I. Una posible funcin lgica del resultado de la suma es s = ( x + y) xy
II. Una posible funcin lgica del acarreo de salida es c = x + y
Curso 2002-2003
4.15 Sean dos nmeros binarios de 12 bits representados en cdigo BCD: X =010110001001, Y =
001101000111. Calcular el resultado de su suma, representado en BCD.
4.16 Se desea construir un sumador binario con aceleracin de arrastres (SBAA) para 2 nmeros binarios
X e Y de 3 bits cada uno. Para ello, el diseo se realizar siguiendo los siguientes pasos:
a) La figura de la izquierda muestra un sumador binario completo modificado (SBC modificado) con
dos entradas de datos xi e yi y un acarreo de entrada ci-1. Exprese la funcin lgica de sus cuatro
salidas: si (suma), ci (acarreo de salida), g i (generacin de acarreo) y p i (propagacin de acarreo). A
partir de estas funciones lgicas, y empleando nicamente puertas lgicas, disee este SBC
modificado.
b) La figura central muestra un circuito de aceleracin de arrastres (CAA) de 3 bits con tres entradas
de generacin de acarreo g i, tres entradas de propagacin de acarreo p i y un acarreo de entrada c1.
Exprese las funciones lgicas de los acarreos c2, c1 y c0 generados por este mdulo. A partir de
estas funciones lgicas, y empleando nicamente puertas lgicas, disee este CAA.
c) Utilizando nicamente 3 SBC modificados como los diseados en A) y el CAA diseado en B),
construya razonadamente el sumador binario con aceleracin de arrastre de 3 bits (SBAA)
solicitado en el enunciado y mostrado en la figura de la derecha.
xi
ci
SBC
modificado
si
g2
yi
gi
pi
p2
c i-1
g1
p1
g0
p0
c-1
CAA
c2
c1
x2
y2
c2
c0
x1
y1
x0
y0
c-1
SBAA
de 3 bits
s2
s1
s0
4.19 Para multiplicar dos nmeros binarios sin signo de 2 y 3 bits, respectivamente, Se podra utilizar?:
I. Una memoria ROM de 25 palabras con 4 bits por palabra.
II. 6 puertas AND y 3 sumadores binarios completos (SBC)
4.20 Se desea construir un multiplicador binario que multiplique dos nmeros de 16 y 24 bits,
respectivamente, utilizando memoria ROM. Indique si con los siguientes conjuntos de componentes sera
posible realizarlo:
I. Utilizando nicamente 4 ROM de 256 palabras x16 bits/palabra, un decodificador binario de 2
entradas y 4 salidas y 2 puertas AND de 2 entradas.
II. Utilizando nicamente 6 ROM de 256 palabras x 16 bits/palabra.
4.21 Se desea construir un multiplicador binario que multiplique dos nmeros de 4 bits cada uno. Indique
si con los siguientes conjuntos de componentes sera posible realizarlo:
I. Utilizando nicamente 8 SBC, 1 SBAA de 4 bits y 16 puertas AND.
II. Utilizando nicamente 8 SBC y 16 puertas OR-exclusiva.
Curso 2002-2003
4.22 Un circuito de aceleracin de arrastres (CAA) de 3 bits tiene las siguientes entradas: g2g 1g 0
(generacin de acarreo), p2 p 1p 0 (propagacin de acarreo) y c-1 (acarreo de entrada); y las siguientes
salidas: c2c1c0 (acarreos). En este circuito la expresin lgica g 2 + p 2 (g 1 + p 1 (g 0 + p 0c-1 ) ) se corresponde a:
A)c 3
B) c2
C) c1
D) Ninguna de las anteriores
4.23 Se desea disear un circuito sumador/restador de dos nmeros de cuatro bits cada uno, x3x2x1x0 e
y 3y 2y 1y 0 ,con una seal de control M adicional para indicar la operacin a realizar. Indicar si las siguientes
afirmaciones son ciertas:
I. Con una memoria ROM de 28 palabras con 5 bits por palabra se podra construir.
II. Con una memoria ROM de 210 palabras con 9 bits por palabra se podra construir.
4.24 Sean dos nmeros binarios de 16 bits representados en cdigo BCD: X = 0011100101010100,
=0011100100000110. Calcular el resultado de su suma, representado en BCD.
4.25 Se desea disear un circuito comparador de dos nmeros de tres bits y cuatro bits, respectivamente
(x2x1x0 e y 3y 2y 1y 0 ), que tenga 2 salidas M (x>y) e I (x=y). Indicar si las siguientes afirmaciones son ciertas:
I. Con una memoria ROM de 27 palabras con 5 bits por palabra se podra construir.
II. Con una memoria ROM de 210 palabras con 5 bits por palabra se podra construir.
4.26 Se desea realizar una Unidad Aritmtico Lgica (UAL) como la mostrada en la Figura 1, con dos
entradas de datos X (x1x0 ) e Y (y1 y0 ), una entrada de control C (c1c0 ) y una salida de datos R (r3r2r1r0). El
funcionamiento de la UAL viene descrito por la Tabla 1.
Seal de control
c1c0 = 00 : suma
c1c0 = 01 : producto
c1c0 = 10 : comparacin
Operacin
R=X+Y
R= XY
Si X > Y entonces R = 1 0 0 0
Si X = Y entonces R = 0 1 0 0
Si X < Y entonces R = 0 0 1 0
c1c0 = 11 : sacar X , Y
b)
c)
Utilizando nicamente los mdulos diseados en los apartados anteriores, los mdulos
combinacionales necesarios y puertas lgicas, disee la UAL pedida.
2
x 1x0
c1c0
2
r3
y1y0
UAL
r2
r1
r0
Curso 2002-2003
B) C1 y S1 , respectivamente.
D) Ninguna de las anteriores.
Curso 2002-2003
Operacin
C2 C1
NOP
0
0
LICS
0
1
LDCS
1
0
CARGA
1
1
Tabla 1 : Codificacin de las entradas de control
E3 E2 E1 E0
C2
C2
Paralelo/Paralelo
C1
Serie/Serie
CK
C1
S3 S2 S1 S0
CK
Figura 1
Figura 2
4.38 En la Tabla inferior se muestra la Tabla de Transicin de Estados de un circuito secuencial sncrono
con 2 estados (S0 y S1) y dos entradas (x, y). Q es la variable de estado necesaria para la representacin de
los 2 estados del circuito. El circuito se disea empleando un elemento de memoria tipo D.
Estado Presente
Q
0
1
00
0
1
Entrada xy
01
10
0
1
0
1
11
0
1
Curso 2002-2003
4.39 Sean dos nmeros de 12 bits representados en cdigo BCD: X=100100110101, Y=000101010001.
Calcular el resto de la divisin entera X / Y, expresado en cdigo binario.
4.40 Si al nmero binario X = 01010001110 le aplicamos la siguiente secuencia de operaciones de
desplazamiento: LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS, cul es el resultado de la operacin?
4.41 Indique cuntos mdulos de memoria ROM de 2n palabras 1 bit/palabra seran necesarios para
disear un circuito combinacional que sume un nmero n bits y otro de 2n bits.
Curso 2002-2003
PROBLEMAS
TEMA 5: Diseo de transferencia entre registros
Problemas propuestos en examen
5.1 Se desea disear con memoria ROM una Unidad de Control con 200 estados, que genere 37 seales de
control totalmente independientes, y que reciba 9 seales de condicin pero en cada estado va a ser
consultada como mximo una de ellas. Indicar cual de las siguientes afirmaciones es cierta : Si en el diseo
interesa minimizar, sobre todo, el tamao del multiplexor a utilizar, se empleara.
I. Un MUX con seleccin por estado.
II. Un MUX con seleccin por campo.
5.2 Se desea disear una Unidad de Control con 18 estados, que genere 30 seales de control totalmente
independientes y reciba 4 seales de condicin, utilizando memoria ROM pero minimizando la capacidad
necesaria de sta, ya que en cada estado se utiliza, como mximo, una nica condicin. Utilizando un
multiplexor con seleccin por campo para disear esta Unidad de Control, explicar razonadamente el
tamao del registro, del multiplexor y de la memoria ROM que sera necesario utilizar.
5.3 El siguiente algoritmo describe una determinada operacin de un sistema digital.
A) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos
dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una,
un contador mdulo-8 bidireccional y circuitos triestado de conexin unidireccional con control de 8
bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y
decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples
dispositivos y evitar en su diseo posibles conflictos elctricos entre ellos.
B) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en
el apartado A) empleando la tcnica de los elementos de retardo. Detalle y explique claramente todos
y cada uno de los pasos seguidos hasta obtener la solucin.
1: Declaracin: A[8], B[8], Cont[3]; Bus[8]
2: A Bus;
3: B Bus, Cont=0;
4: while Cont 7
5:
if A es par then
6:
A A B, Cont = (Cont +1) mod 8;
7:
else
8:
B B + A, Cont = (Cont -1) mod 8;
9:
endif;
10: endwhile;
11: Bus B;
12: Bus A;
13: Parar;
Ck
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q(t+1)
Q(t)
Des. Dcha.
Des. Izq.
Carga
c1
c0
0
1
UAL
R
R
A+B
A-B
Ck
c0
Contador
Q
c1c0
00
01
10
11
c0
c0
c1
Q(t+1)
Q(t)
Q(t) -1 mod 8
Q(t)+1 mod 8
0
5.4 Se desea disear con memoria ROMuna Unidad de Control con 200 estados, que genere 37 seales de
control totalmente independientes, y que reciba 9 seales de condicin pero en cada estado va a ser
consultada como mximo una de ellas. Utilizando en el diseo un multiplexor con seleccin por campo
hara falta una memoria ROM con tamao de:
A) 28 palabras 45 bits
B) 29 palabras 45 bits
C) 29 palabras 49 bits
D) Ninguna de la
anteriores
c0
0
1
S
E
Curso 2002-2003
Ck
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q
Q(t+1)
Q(t)
Des. Dcha.
Des. Izq.
Carga
UAL
R
c1
c0
0
1
R
A+B
A-B
Ck
c0
Contador
Q
c1c0
00
01
10
11
E
c0
c0
c1
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Carga
S
c0
0
1
S
E
5.6 Se desea disear una Unidad de Control con 18 estados, que genere 30 seales de control totalmente
independientes y reciba 4 seales de condicin, utilizando memoria ROM pero minimizando la capacidad
necesaria de sta, ya que en cada estado se utiliza, como mximo, una nica condicin. Utilizando un
multiplexor con seleccin por estado, para disear esta Unidad de Control sera necesario utilizar:
A) Un registro de 5 bits, un MUX 32:1 y una ROM de 26 palabras 35 bits/palabra.
B) Un registro de 18 bits, un MUX 8:1 y una ROM de 25 palabras 48 bits/palabra.
C) Un registro de 5 bits, un MUX 8:1 y una ROM de 26 palabras 30 bits/palabra.
D) Ninguna de las anteriores es cierta.
5.7 A la hora de disear una Unidad de Control con 32 estados, que genere 4 seales de control, reciba 2
seales de condicin y en un estado se puedan consultar las dos condiciones simultneamente, decir si
las siguientes afirmaciones son ciertas:
5
A) Disendola con elementos de retardo sera necesario utilizar 5 biestables (2 =32).
7
5.8 A la hora de disear una Unidad de Control con 64 estados, que genere 30 seales de control
totalmente independientes, reciba 5 seales de condicin que pueden ser consultadas simultneamente en
cualquier estado, decir si las siguientes afirmaciones son ciertas:
6
A) Disendola con elementos de retardo sera necesario utilizar 6 biestables (2 =64).
11
Curso 2002-2003
Ck
Reg. Desp.
c1c0
00
01
10
11
c0
ED
EI
Q
Q(t+1)
Q(t)
Des. Dcha.
Des. Izq.
Carga
UAL
R
c1
c0
0
1
R
A+B
A-B
Ck
c0
c0
Contador
Q
c1c0
00
01
10
11
c0
c1
S
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Q(t)
c0
0
1
S
E
5.10 El siguiente algoritmo describe una determinada operacin de un sistema digital, siendo C(0) el bit
menos significativo del registro C. En el desplazamiento a la derecha se introduce un 0.
Utilizando los mdulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas
de 8 bits cada una y un contador mdulo-8; adems de biestables tipo D, puertas lgicas y los mdulos
combinacionales que considere necesarios:
A) Disear la Unidad de Procesamiento que permita realizar este algoritmo.
B) Disear la Unidad de Control, utilizando la tcnica de elementos de retardo, que ejecute este algoritmo
con la Unidad de Procesamiento diseada en el apartado A)
ED
Reg. despl.
A
c0
c1
Q(t+1)
Nada
Carga
Des. Dcha.
Nada
c0
c1
UAL
c1c0
00
01
10
11
c1c0
00
01
10
00
R
A+B
A-B
A*B
A/B
Contador
Q
c1c0
00
01
10
11
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Q(t)
Curso 2002-2003
5.11 El siguiente algoritmo describe una determinada operacin de un sistema digital, siendo C(i) el bit i del
registro C (C(0) es el bit menos significativo).
a) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos dibujados
abajo : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
mdulo-8 y un circuito triestado de conexin unidireccional con control de 8 bits, adems de puertas
logicas y los mdulos combinacionales que considere necesarios. En el desplazamiento a la derecha se
introduce un 0.
b) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el
apartado A), utilizando una memoria ROM y los elementos que considere necesarios. Debe indicar la
estructura de la Unidad de Control y el contenido de la memoria ROM detallada y razonadamente. Se
valorar la utilizacin de una ROM de tamao mnimo
1: Declaracin: A[8], B[8], C[8], Contador [3] ;
2:
ABus;
3:
BBus;
4:
CBus;
5:
for Contador=0 to 3 do
6:
begin
7:
if C(3)=C(5) then A A*B
8:
else A A-B endif;
9:
Desplazar Derecha (C);
10:
end
11: BusA ;
12: Parar ;
Ck
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q
Q(t+1)
Q(t)
Carga
Des. Dcha
Q(t)
UAL
R
c1
c1c0
00
01
10
11
R
A+B
A-B
A*B
A/B
Ck
c0
Contador
Q
c1c0
00
01
10
11
c0
c0
c1
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Q(t)
S
c0
0
1
S
E
5.12 Disee un circuito digital(unidad de procesamiento + unidad de control ) que realice el algoritmo que
se muestra en el recuadro. Para ello siga los siguientes apartados :
a) Disee razonadamente la unidad de
1 : Declaracin de registros:
A[8], X[8] ;
procesamiento, utilizando los recursos que
2 : Declaracin de buses : Bus-Entrada[8], Bus-Salida[8];
considere necesarios.
3 :Inicio:
XBus-Entrada ;
b) Describa todas las seales de control de
4:
A Bus-Entrada ;
la Unidad de Procesamiento diseada en
5 : Test:
if X=255 then go to Sumar ;
A).
6 : Restar:
A A-1 ;
c) Dibuje el diagrama de estados de una
7:
go to Sacar ;
Unidad de Control que realice el algoritmo
8 : Sumar :
A A+1 ;
propuesto. Describa en forma de tabla, las
9 : Sacar :
Bus-SalidaA ;
microoperaciones y las seales de control
10 : Parar :
go to Parar ;
activadas en cada uno de los estados.
d) Disee razonadamente la Unidad de Control, empleando cualquiera de las tcnicas de diseo estudiadas
a lo largo del curso. Indique claramente todos los pasos seguidos.
Curso 2002-2003
5.13 Se desea disear con memoria ROM una Unidad de Control con 200 estados, que genere 37 seales
de control totalmente independientes, y que reciba 9 seales de condicin pero en cada estado va a ser
consultada como mximo una de ellas. Utilizando en el diseo un multiplexor con seleccin por campo
Cuantas entradas de datos tendra el multiplexor utilizado ?
5.14 Se desea disear con una memoria ROM una unidad de control con 128 estados, que genere 244
seales de control totalmente independientes y que reciba 20 seales de condicin pero en cada estado
van a ser consultadas como mximo una de ellas. La memoria ROM usada tiene un coste de 10 ptas/Kbit.
Indicar si las siguientes afirmaciones son verdaderas o falsas:
I) Si se utiliza un diseo con seleccin por estado el coste de la ROM es de 640 ptas.
II) Si se utiliza un diseo con seleccin por campo el coste de la ROM es de 640 ptas.
Ck
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q
Q(t+1)
Q(t)
Des. Dcha
Des. Izqa
Carga
UAL
R
c1
c0
0
1
R
A+B
A-B
Ck
c0
Contador
Q
c1c0
00
01
10
11
c0
c0
c1
Q(t+1)
Q(t)
0
Q(t)-1 mod 8
Q(t)
S
c0
0
1
S
E
Curso 2002-2003
A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los
mdulos de la Figura 2: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada
una, un contador mdulo-16 bidireccional y circuitos triestado de conexin unidireccional con control
de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y
decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples
dispositivos y evitar en su diseo posibles conflictos elctricos entre ellos.
B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseada en el apartado A) empleando la tcnica de los elementos de retardo. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
Ck
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q
Q(t+1)
Q(t)
Des. Dcha
Des. Izqa
Carga
UAL
R
c1
c0
0
1
R
A+B
A-B
Ck
c0
Contador
Q
c1c0
00
01
10
11
c0
c0
c1
Q(t+1)
Q(t)
Q(t)-1 mod 16
Q(t)+1 mod 16
0)
S
c0
0
1
S
E
Curso 2002-2003
Ck
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q
Q(t+1)
Q(t)
Des. Dcha
Des. Izqa
Carga
UAL
R
c1
c0
0
1
R
A+B
A-B
Ck
c0
Contador
Q
c1c0
00
01
10
11
c0
c0
c1
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Q(t)
S
c0
0
1
S
E
Curso 2003-2004
PROBLEMAS
TEMA 6: Diseo del procesador
Problemas propuestos en examen
6.1 Para la UCP con bus interno de la Figura 6.1 escribir la secuencia de microoperaciones que se necesitan para
sumar un nmero con el acumulador cuando el nmero es:
a) Un operando inmediato.
b) Un operando con direccionamiento directo.
c) Un operando con direccionamiento indirecto.
Lneas de
datos
Unidad
de
Control
Lneas de
direccin
RI
RD
CP
R2
AC
RM
Bus interno
de la UCP
UAL
Figura 6.1
6.2 En la Figura 6.2 se muestra una UCP (Unidad de Control + Unidad de Procesamiento) y en la Tabla 6.2 se
da el significado de cada una de las seales de control. La seal de condicin s0 se activa cuando el contenido
del registro acumulador (AC) sea igual a cero. Obtener las secuencias de las microoperaciones y las seales de
control que hay que activar para que esta UCP ejecute las siguientes instrucciones, suponiendo que stas se
encuentran ya almacenadas en el registro de instrucciones (RI) :
a) Cargar acumulador con el contenido de una direccin de memoria.
b) Almacenar acumulador en una direccin de memoria.
c) Sumar al acumulador un operando con direccionamiento inmediato.
d) Sumar al acumulador un operando con direccionamiento directo.
e) Sumar al acumulador un operando con direccionamiento indirecto.
f) AND con el acumulador de un operando en modo directo.
g) Bifurcar, en modo de direccionamiento directo.
h) Bifurcar si acumulador = 0, en modo de direccionamiento directo.
Curso 2003-2004
RD
c11
Entrada 1
c12
UAL
c5
c13
c8
c0
Memoria
CP
c2
c6
c1
Acumulador (AC)
c3
RM
c4
c9
s0
c10
c7
c15
RI
c14
Reloj
s0
Seales de
condicin
Unidad
c0
de
Control
c13
Microoperacin controlada
Leer de la memoria
Escribir en la memoria
Transferir el contenido de RM a RD (RD(RM))
Transferir el contenido de CP a RM (RM(CP))
Transferir el contenido de RM a CP (CP(RM))
Transferir el contenido de CP a RD (RD(CP))
Incrementar en 1 el contenido del CP (CP(CP)+1)
Transferir el contenido de RM a RI (RI(RM))
Transferir el contenido de RM a la entrada 1 de la UAL
Transferir el contenido de RM a AC (AC(RM))
Transferir el contenido de AC a RM (RM(AC))
AC(AC)+ Entrada 1
AC(AC) AND Entrada 1
Complementar el contenido de AC (AC( AC ) )
Transferir el campo de direccin de RI a RD (RD(RI(direccin)))
Transferir el campo de datos de RI a RM (RM(RI(datos)))
Tabla 6.2: Seales de control de la CPU de la figura 6.2
6.4 En un procesador con instrucciones de cero direcciones (procesador con pila), qu secuencia de
instrucciones calcula la expresin X = Y2(X+Z) ?
A) Push[X]; Push[Z]; Add; Push[Y]; Push[Y]; Mult; Mult; Pop[X];
B) Push[Y]; Push[Y]; Push[X]; Push[Z]; Add; Mult;Mult; Pop[X];
C) Push[Y]; Push[Y]; Mult; Push[X]; Push[Z]; Add; Mult; Pop[X];
D) Todas las anteriores
Curso 2003-2004
6.5 El formato de instruccin de un procesador de una direccin tiene 6 bits para el cdigo de operacin y 10
para la direccin del operando. Suponiendo que una instruccin de bifurcacin, con direccionamiento relativo al
contador de programa, almacenada en la posicin 530 (en decimal), origina un salto a la posicin 620 (en
decimal). Si el cdigo de operacin de la instruccin de salto es 110011, cul es la codificacin en binario de
dicha instruccin?
6.6 Considrese un procesador con instrucciones de cero direcciones (procesador con pila). Se tiene la siguiente
secuencia de instrucciones:
Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Mult; Pop M[A]
Que expresin calcula?
Curso 2003-2004
PROBLEMAS
TEMA 7: Microprogramacin
Problemas propuestos en examen
7.1 Un computador utiliza microinstrucciones de formato vertical. El formato tiene 5 subcampos codificados de
1 bit, 5 subcampos codificados de 3 bits y 3 subcampos codificados de 4 bits. Cul es el nmero mximo de
seales de control que puede tener este computador?
7.2 Un computador digital tiene 114 seales de control diferentes, siendo 6 de ellas mutuamente excluyentes.
Indique si las siguientes afirmaciones son verdaderas:
1) Si se utilizan microinstrucciones de formato vertical el tamao del campo codificado sera de 3 bits.
2) Al existir seales de control mutuamente excluyentes nunca se puede utilizar el formato de
microinstruccin horizontal.
7.3 Un computador utiliza microinstrucciones de formato horizontal con direccionamiento explcito. Las
microinstrucciones deben gobernar 135 seales de control y codificar un repertorio de 50 instrucciones mquina,
para lo cual la Unidad de Control Microprogramada dispone una memoria de control de 2048 palabras. Cuntos
bits tiene el campo de direccin de cada microinstruccin?
7.4 Indicar si las siguientes afirmaciones son verdaderas o falsas. Utilizando microinstrucciones con formato
vertical:
I. Un subcampo de j bits puede especificar un mximo de 2j seales de control.
II. Cada seal de control tiene un subcampo independiente de un bit que indica el correspondiente
valor de la seal de control.
7.5 Indicar si las siguientes afirmaciones son verdaderas o falsas. En una unidad de control microprogramada:
I. El secuenciamiento de las microinstrucciones consiste en obtener la prxima microinstruccin de la
memoria de control.
II. La ejecucin de la microinstruccin consiste en generar las seales de control necesarias.
7.6 Indicar si las siguientes afirmaciones son verdaderas o falsas. Utilizando microinstrucciones con formato
horizontal:
I. No se puede ejecutar simultneamente cualquier subconjunto de seales de control.
II. Cada seal de control tiene un subcampo independiente de un bit que indica el correspondiente
valor de la seal de control.
7.7 Las siguientes afirmaciones son ciertas?
I. El formato horizontal de microinstrucciones requiere de memorias de control ms grandes.
II. El formato vertical de microinstrucciones tiene las seales de control ya decodificadas.
7.8 Indique la afirmacin verdadera:
A) En una unidad de control microprogramada la memoria de control se utiliza para almacenar en ella
los contenidos de los registros de la UCP.
B) El principal problema de la unidad de control con lgica cableada es la imposibilidad de gestionar
saltos a subrutinas al carecer del registro contador de programa.
C) Si se quiere minimizar el tamao de la memoria de control de una unidad de control
microprogramada debe utilizarse formato vertical.
D) Todas las respuestas anteriores son ciertas.
Curso 2003-2004
7.9 Un computador microprogramado tiene un total de 132 seales de control. De ellas, un grupo de 16 son
mutuamente excluyentes entre s y otro grupo de 30 son mutuamente excluyentes entre s. Indique si las
siguientes afirmaciones son verdaderas:
I. Utilizando formato vertical, el tamao de los subcampos codificados sera de 4 y 5 bits,
respectivamente.
II. Al existir seales mutuamente excluyentes no puede utilizarse el formato vertical de
microinstrucciones.
7.10 La Unidad de Control microprogramada de un computador tiene la estructura que se muestra en la Figura
7.10. Se supone que la memoria de control tiene una longitud de palabra de 24 bits. La parte de control del
formato de una microinstruccin est dividida en dos campos. Un campo de control de 13 bits que indica las
microoperaciones que se realizan y un campo de seleccin de direccin que especifica un tipo de bifurcacin
condicional, que es funcin de las seales de condicin que recibe como entrada la Unidad de Control. Son
posibles 8 seales de condicin.
a) Cuntos bits se necesitan en el campo de seleccin de direccin?
b) Cuntos bits tiene el campo de direccin?
c) Cul es el tamao de la memoria de control?
Registro de Instruccin (RI)
Lgica de
transformacin
Seales de
condicin
Lgica de
bifurcacin
Seleccin de
la direccin
Multiplexor
+1
Seleccin de una
seal de condicin
para la bifurcacin
RDC
Memoria
de
Control
RMC
Control
Direccin
Seales de Control
Figura 7.10: Unidad de Control microprogramada con una direccin por microinstruccin
7.11 Con las mismas especificaciones del problema anterior cmo se puede realizar una ruptura incondicional
de secuencia?. Cmo se puede evitar la bifurcacin?, es decir, describir una microinstruccin que no
especifique ningn tipo de bifurcacin (condicional o incondicional).
7.12 A cada una de las instrucciones de un computador se le asignan 8 palabras en la memoria de control de una
Unidad de Control microprogramada. El cdigo de operacin de las instrucciones tiene 5 bits y la memoria de
control una capacidad de 1024 palabras. Sugerir una lgica de transformacin de RI en RDC.
Curso 2003-2004
7.13 Una UCP tiene 32 registros internos de 16 bits, una UAL con 16 funciones lgicas y 16 funciones
aritmticas y un registro de desplazamiento con 8 operaciones posibles. La UAL recibe una entrada de un bit
que indica si la operacin es aritmtica (0) o lgica (1), y cuatro bits adicionales que codifican la operacin a
realizar, una de las 16 posibles. La operacin a realizar por el registro de desplazamiento se controla con una
entrada de 3 bits. Todos estos elementos se conectan mediante un bus interno de la UCP, segn se muestra en la
Figura 7.13. La UCP es capaz de direccionar un mximo de 64 Kb de memoria principal, tiene 8 seales de
condicin diferentes (para las bifurcaciones condicionales), y dos modos de direccionamiento (inmediato y
directo).
Disear un formato de microinstruccin que especifique las diferentes microoperaciones.
R1
...
R31
Bus interno
de la UCP
3
RD
R0
4
UAL
A/L
ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II
TEMA 1: Estructuras de
interconexin de un computador
SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN
Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
CONTENIDO
SOLUCION PROBLEMA 1.1........................................................................................................................................ 3
SOLUCION PROBLEMA 1.2........................................................................................................................................ 4
SOLUCION PROBLEMA 1.3........................................................................................................................................ 5
SOLUCION PROBLEMA 1.4........................................................................................................................................ 6
SOLUCION PROBLEMA 1.5........................................................................................................................................ 7
SOLUCION PROBLEMA 1.6........................................................................................................................................ 8
SOLUCION PROBLEMA 1.7........................................................................................................................................ 9
SOLUCION PROBLEMA 1.8........................................................................................................................................ 9
SOLUCION PROBLEMA 1.9...................................................................................................................................... 10
SOLUCION PROBLEMA 1.10.................................................................................................................................... 11
Afirmacin I
- De acuerdo con los principios de un computador con una arquitectura de Von Neuman, en la memoria
principal se pueden almacenar tanto datos como instrucciones. Que el contenido de una palabra de
memoria sea considerado un dato o una instruccin depender del momento del ciclo de instruccin en
que se realice el acceso a memoria.
- Si el acceso a memoria se realiza en el ciclo de bsqueda de la instruccin el contenido de la posicin de
memoria ser considerada una instruccin que se almacenar en el registro de instruccin (IR).
- Si el acceso a memoria se realiza en las subfases del ciclo de ejecucin (bsqueda de operandos,
almacenamiento de resultados, etc) de la instruccin el contenido de la posicin de memoria ser
considerado un dato.
- Luego la afirmacin I, es falsa, ya que si el contenido de una direccin de memoria empieza por 0, puede
ser un dato o una instruccin mquina dependiendo de la fase de ejecucin de la instruccin en que nos
encontremos.
Afirmacin II
- Del enunciado se sabe que para que el contenido de una posicin de memoria sea considerado una
instruccin su bit ms significativo debe ser un 0, puesto que en este caso comienza por 1 necesariamente
debe ser un dato. Luego la afirmacin II es verdadera.
Supongamos que la memoria del computador consta de un nico mdulo, la velocidad mxima de
almacenamiento sera:
1
( pal / seg )
tc
v max =
De acuerdo con el enunciado del problema el tiempo de ciclo tc , se puede considerar como la suma de dos
componentes :
- tiempo de utilizacin del bus t bus=0.2t c
- tiempo de almacenamiento interno del dato t alm =0.8t c
tbus
talm
tc
Utilizando los 10 mdulos disponibles, y solapando al mximo los ciclos de escritura para intentar que en
todo momento uno de los mdulos est accediendo al bus, se llega a la situacin representada por la
siguiente figura
10t bus
modulos
mod 1
mod 2
mod 3
mod 4
mod 5
mod 6
mod 7
mod 8
mod 9
mod10
6
7
8
9
10
1
2
3
4
tiempo
El mdulo 1 inicia una operacin de escritura haciendo uso del bus en exclusiva durante tbus. A
continuacin el mdulo 2 puede iniciar su operacin de escritura y as sucesivamente hasta llegar al
mdulo 10, al que le sigue de nuevo el mdulo 1 repitindose el ciclo.
La parte central de la Figura delimitada por dos lneas punteadas se repite de forma continua y, por tanto
cada 10t bus empiezan o finalizan 10 operaciones de escritura. Encerradas en un circulo se enumeran estas
10 operaciones. La velocidad de almacenamiento definida como el nmero de palabras escritas en memoria
por unidad de tiempo, es por tanto
v max =
v
10( pal )
10
=
= max = 5v max ( pal / seg )
10t bus ( seg ) 100.2t c
0.2
t alm=75 nseg
tc=100 nseg
De forma inmediata se ve que si cada 100 nseg. el mdulo de memoria ocupa 25 nseg., es decir, 1/4 del
tiempo, vamos a poder solapar, cmo mximo, 4 operaciones de escritura con 4 mdulos de memoria
distintos aunque nuestro sistema disponga de 20 mdulos. Para aclarar este punto en la Figura se muestra
solapamiento mximo que se puede conseguir utilizando todos los mdulos de memoria. En el instante de
tiempo t nicamente estn realizando parte de una operacin de escritura 4 mdulos: mdulos 2, 3, 4 y 5.
Por tanto, en una operacin de escritura continua en este sistema de memoria, se pueden llegar a iniciar y
acabar 4 operaciones de escritura cada 100 nseg. La velocidad resultante es:
v max =
4( pal )
4
= 7 = 410 7 ( pal / seg )
100( nseg ) 10
Es falsa, ya que en la tcnica de multiplexacin en el tiempo se comparten las mismas lneas de un bus,
para enviar datos o direcciones, por lo que es imposible mantener en paralelo una direccin y un dato.
Afirmacin II:
Es falsa, ya que si solo una puerta triestado estuviera en estado de alta impedancia, el resto tendran
sus salidas activas y se producira un error al cargar la lnea del bus con ms de una entrada. Lo
correcto sera justamente lo contrario, es decir, todas las puertas menos una deben estar en estado de
alta impedancia.
En este problema se sabe que el bus tiene conectado la memoria principal M p y cinco discos duros . De
acuerdo con el razonamiento anterior, si se desea utilizar un bus con temporizacin sncrona todos los
elementos conectados a l deben tener velocidades de transferencia parecidas. Por ello la velocidad de
transferencia de los discos B debe ser lo ms cercana posible a la velocidad de transferencia v T de la MP
que es el dispositivo ms rpido conectado. Es decir, se debe cumplir
B vT
Por lo tanto la resolucin de este problema se reduce a calcular la velocidad de transferencia de la M p, que
viene dada, supuesto que es de acceso aleatorio, por la inversa del tiempo de ciclo:
vT =
1
1
=
= 2510 6 ( palabras / seg )
9
t C 40010
Cada palabra tiene 32 bits por lo tanto, la velocidad de transferencia v T de la MP se puede expresar en
(bits/seg):
palabras bits
vT = 2510 6
32
= 810 7 (bits / seg )
seg palabra
Luego
En un esquema distribuido cada mdulo contiene la lgica de control suficiente para poder acceder al bus
y todos ellos actan de forma cooperativa para compartir el recurso.
Solicitud del bus
Ocupada
1
Lnea de arbitraje
Ent
Sal
a
Ent
Ent
Sal
b
Sal
Ent
Sal
d
Ent
e
Afirmacin I:
Es FALSA, ya que en este tipo de arbitraje el dispositivo ms cercano a la lnea de arbitraje es aquel que
tiene la mxima prioridad.
Afirmacin II:
Es FALSA, ya que mientras la lnea de bus ocupado est activada por un modulo, no puede ser utilizado
el bus por ningn otro mdulo pese a poseer una mayor prioridad.
En un esquema distribuido cada mdulo contiene la lgica de control suficiente para poder acceder al bus
y todos ellos actan de forma cooperativa para compartir el recurso.
Solicitud del bus
Ocupada
1
Lnea de arbitraje
Ent
Sal
a
Ent
Ent
Sal
b
Sal
Ent
Sal
d
Ent
e
Afirmacin I:
Es VERDADERA, ya que en este mtodo de arbitraje el dispositivo ms cercano a la lnea de arbitraje
es aquel que tiene la mxima prioridad de uso del bus.
Afirmacin II:
Es VERDADERA, ya que en este mtodo de arbitraje cada mdulo contiene la lgica de control
suficiente para poder acceder al bus y todos ellos actan de forma cooperativa para compartir el
recurso.
10
Direccin
4 bits
12 bits
Cdigos de operacin:
0011: Ac[M]
0101: M[Ac]
0110: Ac[Ac]+[M]
M[Ac]
616
Ac[Ac]+[M]
De acuerdo con el enunciado del problema la operacin que se desea realizar es sumar el contenido de la
direccin de memoria 3A516 al contenido de la direccin de memoria 3B916 y almacenar el resultado en la
direccin de memoria 3A516. Es decir, de forma esquemtica dicha operacin se puede representar de la
siguiente forma:
3A516[3A516]+[3B916]
Esta operacin se puede realizar mediante la siguiente secuencia de instrucciones:
Opcin 1:
1) 33A516 que indica la operacin Ac[3A516]
2) 63B916 que indica la operacin Ac[Ac] + [3B916]
3) 53A516 que indica la operacin 3A516[Ac]
Opcin 2:
1) 33B916 que indica la operacin Ac[3B916]
2) 63A516 que indica la operacin Ac[Ac] + [3A516]
3) 53A516 que indica la operacin 3A516[Ac]
Luego la respuesta correcta es la C.
11
ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II
Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
CONTENIDO
SOLUCION PROBLEMA 2.1........................................................................................................................................ 3
SOLUCION PROBLEMA 2.2........................................................................................................................................ 4
SOLUCION PROBLEMA 2.3........................................................................................................................................ 5
SOLUCION PROBLEMA 2.4........................................................................................................................................ 7
SOLUCION PROBLEMA 2.5........................................................................................................................................ 8
SOLUCION PROBLEMA 2.6........................................................................................................................................ 9
SOLUCION PROBLEMA 2.7...................................................................................................................................... 10
SOLUCION PROBLEMA 2.8...................................................................................................................................... 12
SOLUCION PROBLEMA 2.9...................................................................................................................................... 13
SOLUCION PROBLEMA 2.10.................................................................................................................................... 14
SOLUCION PROBLEMA 2.11.................................................................................................................................... 15
SOLUCION PROBLEMA 2.12.................................................................................................................................... 16
SOLUCION PROBLEMA 2.13.................................................................................................................................... 17
SOLUCION PROBLEMA 2.14.................................................................................................................................... 18
SOLUCION PROBLEMA 2.15.................................................................................................................................... 19
SOLUCION PROBLEMA 2.16.................................................................................................................................... 20
SOLUCION PROBLEMA 2.17.................................................................................................................................... 21
SOLUCION PROBLEMA 2.18.................................................................................................................................... 22
SOLUCION PROBLEMA 2.19.................................................................................................................................... 23
SOLUCION PROBLEMA 2.20.................................................................................................................................... 23
SOLUCION PROBLEMA 2.21.................................................................................................................................... 24
SOLUCION PROBLEMA 2.22.................................................................................................................................... 25
SOLUCION PROBLEMA 2.23.................................................................................................................................... 26
SOLUCION PROBLEMA 2.24.................................................................................................................................... 26
SOLUCION PROBLEMA 2.25.................................................................................................................................... 27
SOLUCION PROBLEMA 2.26.................................................................................................................................... 29
SOLUCION PROBLEMA 2.27.................................................................................................................................... 30
SOLUCION PROBLEMA 2.28.................................................................................................................................... 34
SOLUCION PROBLEMA 2.29.................................................................................................................................... 37
SOLUCION PROBLEMA 2.30.................................................................................................................................... 38
SOLUCION PROBLEMA 2.31.................................................................................................................................... 39
SOLUCION PROBLEMA 2.32.................................................................................................................................... 42
SOLUCION PROBLEMA 2.33.................................................................................................................................... 43
SOLUCION PROBLEMA 2.34.................................................................................................................................... 45
SOLUCION PROBLEMA 2.35.................................................................................................................................... 47
SOLUCION PROBLEMA 2.36.................................................................................................................................... 48
SOLUCION PROBLEMA 2.37.................................................................................................................................... 49
SOLUCION PROBLEMA 2.38.................................................................................................................................... 50
SOLUCION PROBLEMA 2.39.................................................................................................................................... 51
SOLUCION PROBLEMA 2.40.................................................................................................................................... 52
SOLUCION PROBLEMA 2.41.................................................................................................................................... 53
SOLUCION PROBLEMA 2.42.................................................................................................................................... 54
SOLUCION PROBLEMA 2.43.................................................................................................................................... 55
SOLUCION PROBLEMA 2.44.................................................................................................................................... 56
SOLUCION PROBLEMA 2.45.................................................................................................................................... 56
SOLUCION PROBLEMA 2.46.................................................................................................................................... 57
Puesto que la M p tiene 220palabras se requieren direcciones de longitud n=log2CMp= log2220=20 bits.
C = q r = 16 conjuntos 4
bloques
= 2 6 bloques en M C
conjunto
El formato de una direccin de la M c que utiliza una funcin de correspondencia asociativa por conjuntos
es:
n=20 bits
Etiqueta
9 bits
Conjunto
de Mc
log2 q= 4 bits
Palabra
log2K= 7 bits
Conjunto de Mc
0010
Palabra
0110000
210 pal
C= 6
= 2 4 bloques
2 pal / bloque
a) La memoria cach utiliza funcin de correspondencia directa. Por lo tanto el formato de una direccin
desde el punto de vista de la memoria cach es :
n=21 bits
Bloque
de Mc
Etiqueta
11 bits
Palabra
log2 C= 4 bits
log2 K= 6 bits
0100
110000
Palabra
15 bits
log2K= 6 bits
110 000
La etiqueta que habra que buscar es 100 10 (000 000 001 100 100).
C=
25
=2 2 = 4 bloques.
23
a) La cach emplea correspondencia directa. La direccin desde el punto de vista de la M c tendra los
siguientes campos:
n=9 bits
Etiqueta
Bloque
de Mc
4 bits
log2 C= 2 bits
Palabra
log2 K= 3 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a
buscarlas a M c.
Direcciones ledas
000 0 00 000
N de bloque (j) de la Mp al
que hace referencia la
direccin.
0
N bloque (i) de la Mc al
que hace referencia la
direccin
0
000 0 00 001
000 0 00 011
000 1 00 001
0
0
4
0
0
0
000 1 00 101
000 0 10 000
4
2
0
2
000 0 10 010
000 0 00 000
2
0
2
0
Fallo o acierto
Fallo
se carga j=0 en i=0
Acierto
Acierto
Fallo
se carga j=4 en i=0
Acierto
Fallo
se carga j=2 en i=2
Acierto
Fallo
se carga j=0 en i=0
N Total de fallos=4
b) La cach emplea correspondencia asociativa por conjuntos, con r=2 bloques/conjunto. El algoritmo de
reemplazamiento utilizado es FIFO (First-In Firt-Out). Se sustituye el bloque ms antiguo en cach.
El nmero de conjuntos es q=4/2=2
La direccin desde el punto de vista de la M c tendra los siguientes campos :
n=9 bits
Etiqueta
5 bits
Conjunto
de Mc
log2 q= 1 bits
Palabra
log2 K= 3 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a
buscarlas a M c.
Direcciones ledas
000 00 0 000
N de bloque (j) de la Mp al
que hace referencia la
direccin.
0
N conjunto (i) de la Mc al
que hace referencia la
direccin
0
000 00 0 001
000 00 0 011
000 10 0 001
0
0
4
0
0
0
000 10 0 101
000 01 0 000
4
2
0
0
000 01 0 010
000 00 0 000
2
0
0
0
Fallo o acierto
Fallo se carga el
bloque j=0 en el
bloque 0 del
conjunto i=0
Acierto
Acierto
Fallo se carga el
bloque j=4 en el
bloque 1 del
conjunto i=0
Acierto
Fallo se carga el
bloque j=2 en el
bloque 0 del
conjunto i=0
Acierto
Fallo se carga el
bloque j=0 en el
bloque 1 del
conjunto i=0
N Total de fallos=4
c) La cach emplea correspondencia totalmente asociativa. El algoritmo de reemplazamiento utilizado es
LRU (Least Recently Used). Se sustituye el bloque utilizado menos recientemente.
La direccin desde el punto de vista de la M c tendra los siguientes campos :
n=9 bits
Etiqueta
Palabra
6 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a
buscarlas a M c.
Direcciones ledas
000 00 0 000
N de bloque (j) de la Mp al
que hace referencia la
direccin.
0
000 00 0 001
000 00 0 011
000 10 0 001
0
0
4
000 10 0 101
000 01 0 000
4
2
000 01 0 010
000 00 0 000
2
0
N Total de fallos = 3
Fallo o Acierto
t am = h t ga + (1 h) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que:
t ga = t ac = 10 nseg
Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en la M c . De acuerdo con el enunciado
cuando se produce un fallo:
1) El sistema utiliza un tiempo tex extra.
2) La palabra es enviada desde la M p a la M c , para lo que empleara un tiempo tap.
3) Finalmente dicha palabra es leda por la CPU en la M C, por lo que emplear un tiempo t ac .
C=
C Mc 25
= 3 =2 2 = 4 bloques.
K
2
M=
C Mp
K
29
=2 6 = 64 bloques.
23
Adems el tamao de una direccin viene dado por n=log2CMp= log229=9 bits
Puesto que la cach emplea correspondencia totalmente asociativa. La direccin desde el punto de vista
de la M c tendra los siguientes campos:
n=9 bits
Etiqueta
Palabra
e=n-p= 6 bits
p=log2 K= 3 bits
Etiqueta= N de bloque j de Mp
0
000000 001
000000 011
000100 001
0
0
4
000100 101
000010 000
4
2
000010 010
000000 000
2
0
N Total de fallos=3
Fallo o acierto
Fallo
se carga j=0 en i=0
Acierto
Acierto
Fallo
se carga j=4 en i=1
Acierto
Fallo
se carga j=2 en i=2
Acierto
Acierto
ARGUMENTO
MASCARA
MARCA
El segundo paso es ir comparando los bits no tachados del registro ARGUMENTO, 0X0X11X0,con los
bits no tachados de cada una de las filas de la matriz asociativa. Si son iguales se coloca un 1 y en caso
contrario se coloca un 0, en el bit de la fila correspondiente del registro de MARCA.
0
ARGUMENTO
MASCARA
MARCA
Slo la fila 5 presenta el valor 0X0X11X0 igual que el registro ARGUMENTO. Luego el valor del registro
de Marca resultante es:
0
0
0
0
1
C=
C Mc 2 6
= 4 =2 2 = 4 bloques.
K
2
M=
C Mp
K
212
=2 8 = 256 bloques.
24
Es decir, que los 8 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p
Adems el tamao de una direccin viene dado por n=log2CMp= log2212= 12 bits
Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c
tendra los siguientes campos:
n=12 bits
Etiqueta
6 bits
Bloque n i
de Mc
log2 C= 2 bits
Palabra
log2 K= 4 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a
buscarlas a M c.
Direcciones ledas
000000 01 0000
N de bloque (j) de la Mp al
que hace referencia la
direccin.
1
N bloque (i) de la Mc al
que hace referencia la
direccin
1
000100 01 0100
17
000001 00 1000
000001 11 1000
10
Fallo o acierto
Fallo
se carga j=1 en i=1 que
inicialmente esta vaco
Fallo
se carga j=17 en i=1
Fallo
se carga j=4 en i=0 que
inicialmente esta vaco
Fallo
se carga j=7 en i=3 que
inicialmente esta vaco
Afirmacin I:
Direcciones ledas
000000 01 0100
N de bloque (j) de la Mp al
que hace referencia la
direccin.
1
N bloque (i) de la Mc al
que hace referencia la
direccin
1
010011 10 1100
78
Fallo o acierto
Fallo
se carga j=1 en i=1
Fallo
se carga j=78 en i=2
que inicialmente esta
vaco
La afirmacin es FALSA, ya que aunque efectivamente se producen dos fallos, slo hay que realizar un
reemplazamiento de un bloque existente ya en cach.
Afirmacin II:
Direcciones ledas
000001 11 0001
N de bloque (j) de la Mp al
que hace referencia la
direccin.
7
N bloque (i) de la Mc al
que hace referencia la
direccin
3
Fallo o acierto
Acierto
La afirmacin es FALSA, ya que se produce un acierto y en consecuencia obviamente no hay que realizar
ningn
reemplazamiento.
11
ARGUMENTO
MASCARA
MARCA
A la vista de la matriz asociativa el argumento que genera este registro de marca debe de tener la siguiente
estructura: 1XX1X0XX donde la X representa que el valor de ese bit no importa
3) En la lista de argumentos dados se tachan las mismas columnas que se han tachado en la memoria
asociativa. Como se muestra en la figura.
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
Argumento 1
Argumento 2
Argumento 3
Argumento 4
Argumento 5
5) Comparando cada uno de los argumentos con 1XX1X0XX. Se puede ver que slo el argumento
3 y el 4 produciran el registro de marca dado.
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
Argumento 1
Argumento 2
Argumento 3
Argumento 4
Argumento 5
12
C=
C Mc 27
= 4 =2 3 = 8 bloques.
K
2
M=
C Mp
K
212
=2 8 = 256 bloques.
24
Es decir, que los log2M=8 bits ms significativos de una direccin de memoria hacen referencia al bloque j
de M p
Adems el tamao de una direccin viene dado por n=log2CMp= log2212= 12 bits
Puesto que la cach emplea correspondencia totalmente asociativa. La direccin desde el punto de vista
de la M c tendra los siguientes campos:
n=12 bits
Etiqueta
Palabra
p= log2 K= 4 bits
N de bloque (j) de la Mp al
que hace referencia la
direccin.
1
17
13
Fallo o acierto
Afirmacin II:
Direcciones ledas
N de bloque (j) de la Mp al
que hace referencia la
direccin.
103
Fallo o acierto
Es FALSA, ya que aunque efectivamente se produce un Fallo, no hay que reemplazar bloque de la cach
ya que los bloques i=4, 5, 6, 7 se encuentran vacos.
r= 4 bloques/conjunto
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.
C=
C Mc 210
= 4 =2 6 = 64 bloques.
K
2
q=
C (bloques)
26
= 2 =2 4 = 16 conjuntos.
r (bloques / conjunto) 2
Puesto que la cach emplea correspondencia asociativa por conjuntos. La direccin desde el punto de
vista de la M c tendra los siguientes campos:
n=16 bits
Etiqueta
Conjunto
de Mc
Palabra
e=n-(c+p)
e=8 bits
c=log 2 q
c= 4 bits
p= log2 K
p= 4 bits
1100
0011
12
14
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
ARGUMENTO
MSCARA 1
0
1
0
0
1
MARCA
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
ARGUMENTO
MSCARA 2
0
1
1
0
1
MARCA
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
ARGUMENTO
MSCARA 3
0
1
0
0
1
MARCA
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
15
ARGUMENTO
MSCARA 4
0
1
0
0
1
MARCA
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
ARGUMENTO
MSCARA 5
0
0
0
0
1
MARCA
fA =
1
tC
fA =
1
1
= 7 = 10 7 seg 1
9
10010
10
16
decodificador
Anlisis de la Afirmacin I
Si se utiliza organizacin 2D (ver libro de teora pags.62-64), se requiere un decodificar que reciba los n=8
bits del bus de direccin y genere las 2n=28 posiciones de memoria, es decir que posea 8 entradas y 28
salidas. Luego la afirmacin I es verdadera.
2n
Matriz
de celdas
2n x m
SC
R/W
Control
m
Dato
Dato
de salida de entrada
Anlisis de la Afirmacin II
Si se utiliza organizacin 21/2D (ver libro de teora pags.65-68), se requieren dos decodificares, cada uno
con n/2=4 entradas y 2n/2=24 salidas. Luego la afirmacin II es verdadera.
n/2
Decode X
2 n/2
Matriz
de celdas
2n x m
R/W
SC
Dato
Dato
de salida de entrada
Control
n/2
2 n/2
17
1 h =
NF
NT
N F = (1 h )N T
Sustituyendo valores se obtiene:
N F = (1 0.75 )2 30 = 0.25 2 30 =
Luego el nmero total de fallos es NF = 2 28.
18
230
= 2 28
2
2
C=
C Mc 2 5
= 3 =2 2 = 4 bloques.
K
2
M=
C Mp
K
28
=25 = 32 bloques.
23
Es decir, que los log2M= 5 bits ms significativos de una direccin de memoria hacen referencia al bloque j
de M p
Adems el tamao de una direccin viene dado por n=log2CMp= log228= 8 bits
Puesto que la cach emplea correspondencia totalmente asociativa. La direccin desde el punto de vista
de la M c tendra los siguientes campos:
n=8 bits
Etiqueta
Palabra
e=n-p= 5 bits
p=log2 K= 3 bits
00000 001
00000 011
00100 001
0
0
4
00100 101
00010 000
4
2
00010 010
00000 000
2
0
19
Fallo o acierto
Fallo se carga j=0 en i=0 que
inicialmente esta vaco
Acierto
Acierto
Fallo se carga j=4 en i=1 que
inicialmente esta vaco
Acierto
Fallo se carga j=2 en i=2 que
inicialmente esta vaco
Acierto
Acierto
ETIQUETA
ARGUMENTO
MASCARA
MARCA
Por otro lado y de acuerdo al funcionamiento estndar de una memoria asociativa, en las palabras activas
slo se consideran los bits del argumento cuya correspondiente bit de mscara est a 1. Por lo tanto las
columnas 2, 3, 5 y 7 de la memoria asociativas pueden ser tachadas ya que no van a ser comparadas.
ETIQUETA
ARGUMENTO
MASCARA
MARCA
El argumento a comparar de acuerdo con el registro de mscara es: 1xx1x0x0. Luego la fila 1 de la
memoria asociativa al tener 1xx1x1x1 dar un 0 en su bit del registro de marca. Mientras que las filas 2 y
3 de la memoria asociativa al tener el mismo valor que el argumento 1xx1x0x0 darn un 1 en su bit del
registro de marca.
La marca correcta es la que corresponde a la respuesta C :
0
1
1
0
0
20
00000 001
00000 011
00100 001
0
0
4
00100 101
00010 000
4
2
00010 010
00000 000
00100 111
2
0
4
Fallo o acierto
Fallo se carga j=0 en i=0 que
inicialmente esta vaco
Acierto
Acierto
Fallo se carga j=4 en i=1 que
inicialmente esta vaco
Acierto
Fallo se carga j=2 en i=2 que
inicialmente esta vaco
Acierto
Acierto
Acierto
Afirmacin I: Es VERDADERA, al leer dicha direccin se produce un acierto ya que el bloque j=4 ya se
encuentra cargado en la M C, en concreto en el bloque i=1.
Afirmacin II: Es FALSA.
21
t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que :
t ga = t ca = 10 nseg
Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en M c . De acuerdo con el enunciado
cuando se produce un fallo, el sistema entonces simultneamente mueve el dato a la CPU empleando un
tiempo tap y mueve el bloque que consta de 8 palabras desde la M p a la M c , este movimiento emplea un
tiempo de 8t ap. Luego tgf
es:
22
t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que:
t ga = t ac = 10 nseg
Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en MC. De acuerdo con el enunciado
cuando se produce un Fallo, el sistema primero mueve el bloque que consta de 8 palabras desde la M p a la
M c , este movimiento emplea un tiempo de 8t ap, y a continuacin lee el dato desde la cach. Luego tgf
es:
23
24
A10
Mdulo de memoria
Mdulo 0
Mdulo 1
Mdulo 2
Mdulo 3
As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:
Direccin de inicio
Direccin final
(Direccin Base)
mdulo n 0
mdulo n 1
mdulo n 2
7FF (hexadecimal)
mdulo n 3
3FF (hexadecimal)
BFF (hexadecimal)
FFF (hexadecimal)
La solucin al problema (las direcciones base de cada mdulo) est dada por lo tanto en la tabla anterior.
25
Considerando estos tres principios, es posible verificar si las afirmaciones son ciertas o no.
Afirmacin I : Es Falsa, puesto que la cach primaria est en un nivel superior a la cach secundaria, el
coste por palabra es mayor en la cach primaria que en la secundaria.
Afirmacin II: Es Verdadera, puesto que la cach primaria est en un nivel superior a la cach secundaria,
la capacidad es menor en la cach primaria que en la secundaria.
26
A1
A0
Mdulo de memoria
Mdulo 0
Mdulo 1
Mdulo 2
Mdulo 3
Mdulo 0
As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:
Y Y 0
Y Y 4
Y Y 8
Y Y C
Mdulo 1
Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:
Y Y 1
Y Y 5
Y Y 9
Y Y D
27
Mdulo 2
Las direcciones que hacen referencia al tercer mdulo de memoria (mdulo n 2) son:
Y Y 2
Y Y 6
Y Y A
Y Y E
Modulo 3
Y las direcciones que hacen referencia al cuarto mdulo de memoria (mdulo n 3) son:
Y Y 3
Y Y 7
Y Y B
Y Y F
Conocidas las direcciones que hacen referencia a cada mdulo de memoria, examinemos las afirmaciones:
Afirmacin I: Es FALSA, la direccin C89 se refiere al mdulo 1 y la direccin C8A se refiere al mdulo 2.
Afirmacin II: Es VERDADERA, por que efectivamente C89 y C8A se refieren a diferentes mdulos, la
direccin C89 se refiere al mdulo 1 y la direccin C8A se refiere al mdulo 2.
28
C=
C Mc 26
= 4 =22 = 4 bloques.
K
2
M=
C Mp
K
212
=28 = 256 bloques.
24
Es decir, que los log2M= 8 bits ms significativos de una direccin de memoria hacen referencia al bloque j
de M p
Adems el tamao de una direccin viene dado por n=log2CMp= log2212= 12 bits
Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c
tendra los siguientes campos:
n=12 bits
Etiqueta
e=(n-b-p)
e=6 bits
Bloque n i
de Mc
b=log 2C
b= 2 bits
Palabra
p=log2 K
p= 4 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a
buscarlas a M c.
Direcciones ledas
000000 01 0000
N de bloque (j)
de la Mp
1
N de bloque (i)
de la Mc
1
000100 01 0100
000001 00 1000
17
4
1
0
000001 11 1000
Fallo o acierto
Fallo se carga j=1 en i=1
que inicialmente esta
vaco
Fallo se carga j=17 en i=1
Fallo se carga j=4 en i=0
que inicialmente esta
vaco
Fallo se carga j=7 en i=3
que inicialmente esta
vaco
29
a) Como se trata de una cach asociativa por conjuntos el formato de direccin de la memoria principal se
divide en tres campos: Etiqueta, Conjunto y Palabra.
Para direccionar las 32k palabras de la memoria principal hacen falta 15 bits (32k = 25 210 = 215 ).
15 bits es, por tanto, el ancho de una direccin de memoria principal.
La memoria cach tendr (4 bloques/conjunto)(64 palabras/bloque) = 256 (28 ) palabras/conjunto. La cach
tendr, por tanto, un total de q=(4096 palabras) / (256 palabras/conjunto) = 16 conjuntos.
As, la cach tendr 26 palabras/bloque y 24 conjuntos. Por tanto, los campos Conjunto y Palabra tendrn 4
y 6 bits, respectivamente. Esto hace un total de 10 bits, de los 15 de una direccin de memoria principal.
Los 5 bits restantes constituyen el campo Etiqueta.
n= 15 bits
Etiqueta
5 bits
Conjunto
de Mc
log 2 q= 4 bits
Palabra
b) Si el computador no tiene memoria cach todas las palabras se han de leer de la memoria principal. El
tiempo necesario para hacerlo ser el tiempo necesario para leer una palabra multiplicado por el numero
total de palabras a las que se accede.
Como las 4352 palabras se leen un total de 10 veces, el nmero total de palabras que se leen es 4352 10. Si
el tiempo necesario para acceder a una palabra de memoria principal es 10t ac (frente a t ac que sera el tiempo
necesario para acceder a una palabra de cach), el tiempo total es
ta = 4352 10 10t ac = 435200t ac .
c) Para resolver esta cuestin conviene distinguir entre la primera lectura del bucle y las nueve restantes:
Primera lectura:
Corresponde a la primera lectura secuencial de las palabras 0 a 4351. Se considera que la cach est
inicialmente vaca. Dado que el tamao de la memoria cach es de 4096 palabras y el nmero de palabras a
las que se accede es de 4352, es claro que la cach no puede almacenar simultneamente todas estas
palabras.
Como se ha visto en a), la cach est organizada en 16 conjuntos de 4 particiones por conjunto, lo que
hace un total de 64 particiones. Cada una de estas particiones tiene 64 palabras, lo que hace el total de las
4096 palabras de la cach.
30
Las 4352 palabras consecutivas que hay que leer corresponden a (4352 palabras) / (64 palabras/particin) =
68 particiones, 4 ms que las 64 de la cach.
Cada vez que se produzca un fallo se traer un bloque completo desde la memoria principal, es decir, 64
palabras.
Se lee la palabra de direccin 0: Como la cach est vaca se producir un fallo y se traern las palabras 0 a
63 que, segn el formato de direccin de la memoria principal corresponden al conjunto 0. Como las cuatro
particiones de este conjunto se encuentran vacas se puede suponer que se almacenarn en la particin 0
del conjunto 0. La lectura de las palabras 1 a 63 no origina fallos, pues estas palabras ya se encuentran en
la cach.
Se lee la palabra 64: Un nuevo fallo. Se traen las direcciones 64 a 127, que corresponden al conjunto 1. Se
supone que se utiliza la particin 0 de este conjunto.
As, los primeros 16 bloques de la memoria principal irn a la particin 0 de sus respectivos conjuntos. Los
16 bloques siguientes irn a la particin 1 de sus conjuntos. Se suceden las lecturas, hasta haber ledo los
primeros 64 (0 a 63) bloques de la cach, es decir, las primeras 4096 (0-4095) palabras: en este momento la
cach se llena, pero quedan todava 4 bloques por leer.
Dado que la poltica de reemplazamiento es FIFO, se reemplazarn las particiones de cada conjunto que
lleven ms tiempo en la cach. Es este caso, la particin 0 de cada conjunto.
Se lee la palabra 4096: Produce un nuevo fallo. Corresponde nuevamente al conjunto 0, pero ste se
encuentra completo. Hay que reemplazar la particin ms antigua de este conjunto, que como se acaba de
ver es la 0.
Las palabras 4160, 4224 y 4288 producirn tres fallos ms, y corresponden a los conjuntos 1, 2 y 3,
respectivamente. En cada uno de estos conjuntos se reemplaza la particin ms antigua, que es la 0 en
todos los casos.
De este modo termina la primera lectura de las direcciones de memoria. El contenido de la cach queda
como se muestra en la Tabla 1.
Siguientes lecturas (2 a 10) :
Al realizar el segundo ciclo de lecturas a cada direccin le corresponde el mismo conjunto que en la
primera lectura, segn el mecanismo de la cach asociativa por conjuntos. El que una palabra produzca un
fallo o no depender de si todava se encuentra en la cach. En la Tabla 1 se observa que los conjuntos 4 a
15 no van a producir fallos, pues su contenido no ha variado. Pero s va a haber problemas con los
conjuntos 0 a 3:
La direccin 0, que corresponda al bloque 0, ya no est en la cach, pues fue sustitudo por el bloque 64.
La particin ms antigua en esta ocasin es la 1, que contena el bloque 16 de memoria principal. Luego
habr que escribir en la particin 1 del conjunto 0, por lo que el bloque 16 es reemplazado por el 0.
Cuando ms adelante se lea el bloque 16 ste ya no estar (ha sido reemplazado por el 0) y habr que hacer
un reemplazamiento en la particin ms antigua de este conjunto, que ahora es la 2: el bloque 32 es
reemplazado por el 16. Anlogamente, el bloque 32 reemplazar al 48, el 48 al 64 y el 64 al 0. En la segunda
lectura se producen 5 fallos en el conjunto 0.
Anlogamente, en los conjuntos 1, 2 y 3 se producirn otros 5 fallos en cada una de ellos durante la
segunda lectura. Al finalizar este segundo ciclo de lecturas el contenido de la cach quedar como se
muestra en la Tabla 2.
La situacin en el tercer ciclo es anloga a lo sucedido en el segundo: se producirn 5 fallos en cuatro
grupos, es decir, 20 fallos en total. Lo mismo sucede en los ciclos siguientes.
31
Conjunto i
de Mc
Contenido particiones
(n bloque j de Mp)
64
16
32
48
65
17
33
49
66
18
34
50
67
19
35
51
68
20
36
52
15
31
47
63
15
Conjunto i
de Mc
Contenido particiones
(n bloque j de Mp)
48
64
16
32
49
65
17
33
50
66
18
34
51
67
19
35
4
20
36
52
15
31
47
63
15
N F = 68 + 9 20 = 248 fallos
D) En caso de fallo se especifica que las acciones que tienen lugar son :
32
t gf = K t ap + t ac = K 10 t ac + t ac = (10 K + 1)t ac
Por otro lado el tiempo de gestin del acierto, es el tiempo de acceso a la memoria cach tga=t ac
Luego el tiempo total que se emplea es:
t a = N A t ac + N F (10 K + 1)t ac
Como NA=NT - NF, entonces:
t a = ( NT N F ) t ac + N F (10 K + 1)t ac = (N T + N F 10 K ) t ac
Sustituyendo valores se obtiene
33
e= 6 bits
Bloque
de Mc
b=3 bits
Palabra
p = 7 bits
b) En este apartado se pide calcular el tiempo que tardara en ejecutarse el programa si el computador no
tuviera cach. Ya que no se indica el tiempo que tardan en ejecutarse las instrucciones, se ha de suponer
que es despreciable frente al tiempo de acceso a memoria (la memoria es muy lenta comparada con la
velocidad de la UCP). Por tanto, el tiempo de ejecucin total ser el tiempo de acceso a memoria, que ser
el nmero total de accesos a memoria multiplicado por el tiempo que lleva cada acceso. En este caso, el
tiempo de acceso a tener en cuenta es el de la memoria principal (10t), ya que se supone que no hay cach.
Para saber cuntas veces se accede a la memoria principal basta con contar cuntas instrucciones hay en
cada seccin del programa, y tener en cuenta cuntas veces se ejecuta cada una de estas secciones, tal
como se muestra en la Tabla 1.
Seccin
N Instrucciones
Veces que se ejecuta
Total instrucciones
17-22
6
1
6
23-164
142
10
1420
165-239
75
20 x 10
15000
240-1200
961
10
9610
1201-1500
300
1
300
N Total de accesos a memoria principal
26336
Tabla 1. Clculo del nmero total de accesos a memoria principal
34
c) Dado que el computador utiliza una cach con correspondencia directa, a cada palabra de la memoria
principal le corresponde un nico bloque de la memoria cach, segn el formato de los campos que se
dedujo en el apartado a). En la Tabla 2 se muestra la correspondencia entre las distintas direcciones de la
memoria principal y sus campos etiqueta, particin y palabra. Estos campos se obtienen haciendo grupos
de 6, 3 y 7 bits, respectivamente, con la representacin en binario puro de la direccin. La representacin
binaria se ha obtenido, a su vez, fcilmente a partir de la representacin hexadecimal.
Direccin
Etiqueta
(6 bits)
Palabra
(7 bits)
17
22
23
164
165
239
240
1200
1201
1500
000000
000000
000000
000000
000000
000000
000000
000001
000001
000001
000
000
000
001
001
001
001
001
001
001
0010001
0010110
0010111
0100100
0100101
1101111
1110000
0110000
0110001
1011100
A partir de la Tabla 2 es fcil calcular el nmero de fallos que se producen en el acceso a la memoria cach.
Para ello, basta con ir ejecutando el programa, tal como se muestra en la figura del enunciadp, con lpiz y
papel y llevar en cuenta cmo se va ocupando la memoria cach.
1) Direcciones 17-22:
Estas direcciones corresponden, segn la Tabla 2, a la particin 000 (etiqueta 000000). La cach
inicialmente est vaca, por lo que se produce el primer fallo. Esto hace que se traiga la particin entera
desde la memoria principal.
2) Primera ejecucin del bucle exterior:
2.1) Direcciones 23-164:
La direccin 23 corresponde a la particin 000 (etiqueta 000000); la 164, a la particin 001 (etiqueta 000000).
La particin 000 ya se encontraba en la cach. En la direccin 128 se produjo el segundo fallo, por lo que
se trajo completa la particin 001 (etiqueta 000000) desde la memoria principal.
2.2) Direcciones 165-239:
Estas direcciones corresponden a la particin 001 (etiqueta 000000), que ya se encuentra en la cach. El
bucle interior se ejecuta 20 veces sin que se produzca ningn fallo.
2.3) Direcciones 240-1200:
Estas direcciones abarcan desde la particin 001 (etiqueta 000000) hasta la particin 001 (etiqueta
000001).Se han producido 8 fallos, que corresponden desde la particin 010 (etiqueta 000000) hasta la
particin 111. (etiqueta 000000), y las particiones 000 y 001 (etiqueta 000001). Obsrvese que estas dos
ltimas particiones han reemplazado a las particiones 000 y 001 (etiqueta 000000).
Con esto finaliza la primera ejecucin del bucle exterior. Se ha producido un total de 10 fallos (1 + 1 + 8). El
estado de la cach ha quedado como se muestra en la Tabla 3.
35
Bloque i
de Mc
Etiqueta
0
1
2
3
4
5
6
7
000001
000001
000000
000000
000000
000000
000000
000000
Tabla 3. Estado de la memoria cach al finalizar la primera ejecucin del bucle exterior
d) Para calcular el tiempo total que se tarda en ejecutar el programa con la memoria cach hay que
contabilizar el nmero total de accesos NT realizan a la memoria cach, que es igual al nmero total de
instrucciones que se ejecutan en el programa: 26.336. Es decir NT=26336
En caso de fallo se especifica que las acciones que tienen lugar son :
1. Se mueve el bloque completo de M p a M c .
2. La CPU lee el dato desde la cach.
Es decir, que el tiempo de gestin de fallos tgf es:
t gf = K t ap + t ac = K 10 + = (10 K + 1)
Por otro lado el tiempo de gestin del acierto, es el tiempo de acceso a la memoria cach tga=t ac =
36
t a = N A + N F (10 K + 1)
Como NA=NT - NF, entonces:
t a = ( NT N F ) + N F (10 K + 1) = ( NT + N F 10 K )
Sustituyendo valores se obtiene
h=
N A NT N F 26336 48
=
=
= 99.8%
NT
NT
26336
t a ( M c + M p ) 87776
=
= 33.3%
ta (M p )
263360
Obsrvese que a pesar de la alta tasa de acierto y de que la cach es 10 veces ms rpida que la memoria
principal la velocidad slo mejora en un factor 3, debido a la carga que supone mover bloques completos
desde la memoria principal a la memoria cach.
Tasa de fallos =
N F 217
1 1
= 20 = 3 = = 0.125
NT 2
2
8
37
A1
Mdulo de memoria
Mdulo 0
Mdulo 1
Mdulo 0
As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:
Y Y 0
Y Y 8
Y Y 1
Y Y 9
Y Y 4
Y Y C
Y Y 5
Y Y D
Mdulo 1
Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:
Y Y 2
Y Y A
Y Y 3
Y Y B
Y Y 6
Y Y E
Y Y 7
Y Y F
38
Palabra
e=8 bits
p= 8 bits
B) Puesto que se supone que no hay memoria cach, el nmero total de accesos que realiza la CPU a la
memoria principal en la ejecucin 5 veces de ese bucle de direcciones es NT= 52301=11505 accesos. El
tiempo de acceso medio a la memoria principal es tap=7t ac . Luego el tiempo que se tardara en realizar
estos N T accesos es:
CMc 211
C=
= 8 = 2 3 = 8 bloques
K
2
Por lo tanto la tabla que nos piden tendr 8 filas y 5 columnas una por cada vez que se ejecuta el bucle.
Por otra parte el nmero de bloques de la memoria principal es:
M=
CMp 216
= 8 = 28 = 256 bloques
K
2
En cada bloque hay K= 256 palabras, por lo tanto las 2301 palabras a las que hace referencia la CPU,
caben en 2301/256 9 bloques de memoria principal. Puesto que la M c tiene slo ocho en la ejecucin
de cada ciclo habr que realizar un nico reemplazamiento.
En la siguiente Tabla se muestra los rangos de direcciones de M p correspondientes a los 9 primeros
bloques, los que intervienen en el problema, con las etiquetas que tendran al ser cargados en memoria
cach. En el apartado A) se vio que los 8 bits ms significativos se la direccin se corresponden con el
39
campo etiqueta, esto equivale a decir que los 2 dgitos ms significativos en hexadecimal son la
etiqueta.
Rango de direcciones (Decimal)
0 - 255
256 - 511
512 - 767
768 - 1023
1024 - 1279
1280 - 1535
1536 - 1791
1792 - 2027
2048 - 2303
0000
0100
0200
0300
0400
0500
0600
0700
0800
Etiqueta en la Mc
00FF
01FF
02FF
03FF
04FF
05FF
06FF
07FF
08FF
00
01
02
03
04
05
06
07
08
A la hora de explicar que ocurre cuando se acceden a las direcciones del enunciado del problema, se va
a distinguir el primer ciclo del resto de ciclos.
Resto de ciclos
Se producen situaciones similares a la del segundo ciclo, con una sustitucin en cada uno de ellos.
1 vez
2 vez
3 vez
4 vez
5 vez
00
01
02
03
04
05
06
08
00
01
02
03
04
05
07
08
00
01
02
03
04
06
07
08
00
01
02
03
05
06
07
08
00
01
02
04
05
06
07
08
40
C) Para contestar este apartado se va a utilizar la Tabla creada en el apartado anterior. All se ha visto que
la ejecucin del ciclo la primera vez sigue un patrn distinto a la ejecucin del ciclo las 4 veces
siguientes. Estudiando por separado ambos casos:
Primera ejecucin del ciclo. Se producen un fallo en cada uno de los nueve bloques de los consta el
programa, producindose una sustitucin del bloque 07 cuando se accede al bloque 08, tal y como se
ha mencionado en el apartado anterior.
Segunda ejecucin del ciclo y sucesivas. Se produce un nico fallo en cada ciclo.
El nmero total de fallos ser: NF= 9 + 4 = 13 fallos.
D) En caso de fallo se especifica que las acciones que tienen lugar son :
1. Se mueve el bloque completo de M p a M c .
2. La CPU lee el dato desde la cach.
Es decir, que el tiempo de gestin de fallos tgf es:
t gf = K t ap + t ac = K 7 t ac + t ac = (7 K + 1)t ac
Por otro lado el tiempo de gestin del acierto, es el tiempo de acceso a la memoria cach tga=t ac
Luego el tiempo total que se emplea es:
t a = N A t ac + N F (7 K + 1) t ac
Como NA=NT - NF, entonces:
t a = ( N T N F ) t ac + N F (7 K + 1)t ac = (N T + N F 7 K ) t ac
Sustituyendo valores se obtiene
41
Tasa de fallos = (1 h) =
Despejando la tasa de aciertos h:
h = 1
NF
NT
NF
217
= 1 20 = 1 0.125 = 0.875
NT
2
42
Etiqueta
e bits
Conjunto
de Mc
Palabra
c bits
p bits
Del dato de la capacidad de la memoria principal obtenemos el nmero de bits n que tienen las direcciones.
Puesto que 8192 Kpalabras= 81024 Kpalabras = 23 210 210 palabras = 223 palabras = 2n. Con lo que n=23
bits.
El nmero de bits que codifican a las palabras que tiene un bloque es p=log2K=log264= 6 bits
Por otro lado, el nmero de bloques C en M C, es:
C=
CMc 211
= 6 = 25 bloques
K
2
C 2 5 25
q= =
= 2 = 23 conjuntos
r
4 2
Con lo que el nmero de bits que codifican a los conjuntos de la memoria cach es c=log2q=log223= 3 bits.
Por lo tanto el nmero de bits que definen la etiqueta e=n-(c+p)=23-(3+6)=14 bits y el formato de direccin
es el siguiente:
43
23 bits
Conjunto
de Mc
Etiqueta
14 bits
3 bits
Palabra
6 bits
h=
Numero de aciertos
N
= A
Numero total de accesos NT
i = j mod ulo q
De acuerdo a esta relacin y sabido que el nmero de palabras que tiene un bloque de memoria principal es
K= 64. Es posible conocer el conjunto de M c asociado a cada bloque de la M p.
El programa Prog2 utiliza las direcciones (128 a 168) que se encuentran exclusivamente dentro del bloque
j=2 de M p, por lo tanto slo se producir 1 Fallo, cuando se lee la primera direccin del mismo, la 128,
cargndose entonces el bloque j=2 de M p en el conjunto i=2 de M c . Las restantes accesos a M c producirn
aciertos.
Es decir, el nmero de aciertos es NA=NT-NF, siendo NF el nmero de fallos NA=111-1=110 aciertos.
Luego la tasa de acierto es:
h=
110
= 0.99
111
Es decir 99%
44
ETIQUETA
ARGUMENTO
MASCARA
MARCA
La mascara 1 si genera este registro de marca. Hay que recordar que si el bit de etiqueta est a 0, el bit
correspondiente del registro de marca se pone a 0, por eso se ha tachado la primera fila de la matriz de
celdas asociativa.
2) Mscara 2
ETIQUETA
ARGUMENTO
MASCARA
45
MARCA
3) Mscara 3
ETIQUETA
ARGUMENTO
MASCARA
MARCA
4) Mscara 4
ETIQUETA
ARGUMENTO
MASCARA
MARCA
5) Mscara 5
ETIQUETA
ARGUMENTO
MASCARA
MARCA
46
C=
C Mc 210
= 6 =24 = 16 bloques.
K
2
M=
C Mp
K
2 20
=214 bloques
26
Es decir, que los log2M= 14 bits ms significativos de una direccin de memoria hacen referencia al bloque
j de M p
Adems el tamao de una direccin viene dado por n=log2CMp= log2220= 20 bits
Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c
tendra los siguientes campos:
n=20 bits
Etiqueta
e=(n-b-p)
e=10 bits
Bloque n i
de Mc
b=log2C
b= 4 bits
Palabra
p=log2 K
p= 6 bits
Afirmacin I:
La direccin 1D45F se expresa en binario de la siguiente forma: 0001 1101 0100 0101 1111
Desde el punto de vista de la M c se descompone en los siguientes campos:
Etiqueta
0001110101
Bloque n i de MC
0001
Palabra
011111
Luego esta direccin hace referencia al bloque i=00012=110 de M C. Luego la afirmacin es FALSA. No hace
falta analizar la direccin 02075.
Afirmacin II:
La direccin 2A23B se expresa en binario de la siguiente forma: 0010 1010 0010 0011 1011
Desde el punto de vista de la M c se descompone en los siguientes campos:
Etiqueta
0010101000
Bloque n i de MC
1000
Palabra
111011
Luego esta direccin hace referencia al bloque i=10002=810 de M C. Luego la afirmacin es VERDADERA.
47
1024 210
= 7 = 23 = 8 mdulos
128
2
Por otra parte, el nmero de lneas del bus de direcciones que se utilizarn para seleccionar entre estos
ocho mdulos n S es:
n S = log 2 2 3 = 3 lineas
Luego, el nmero de lneas del bus de direcciones comunes n C a todos los mdulos sern:
nC = n nS = 10 3 = 7 lneas
Hasta aqu se han indicado todos los clculos necesarios para resolver el problema. De forma adicional,
vamos a calcular el nmero de mdulos de memoria RAM de capacidad C0 necesarios para construir una
memoria RAM de capacidad CT. Pues bien, obsrvese que CT se descompone de la siguiente forma:
CT = 210 pal x 2 4 bits / pal = 2 3 2 7 pal x 22 3 bits / pal = ( 23 2)2 7 pal x 23 bits / pal
CT = 16(2 7 pal x 2 3 bits / pal ) = 16C0
Es decir se necesita un total de 16 mdulos.
48
fa =
1
1
1
10 9
10 7
=
=
=
=
seg 1 = 510 6 seg 1
9
t c 200 nseg 20010 seg 200seg
2
49
t am = h t ga + (1 h) t gf (1)
Donde tga es el tiempo empleado en gestionar un acierto. Normalmente se cumple que :
t acierto = t ca = 10 seg
De acuerdo con el enunciado el tiempo de gestin de un fallo ser la suma de tres componentes, ya que
cuando se produce un fallo:
1) El sistema mueve el bloque completo a la cach, es decir hay que realizar K accesos a la
memoria principal, lo que supone un tiempo de Kt p.
2) Se lee el dato desde la cach, lo que supone un tiempo de tca .
3) Adems se emplea un tiempo extra textra= 20 seg debido a la poltica de ubicacin y
reemplazamiento en la cach.
Luego:
t am '
= 4.7
t am
Luego las afirmaciones son:
Afirmacin I: VERDADERA.
Afirmacin II: VERDADERA
50
C=
C Mc 210
= 3 =2 7 = 128 bloques.
K
2
M=
C Mp
K
216
=213 = 8 Kbloques.
23
Es decir, que los log2M= 13 bits ms significativos de una direccin de memoria hacen referencia al bloque
j de M p
Adems el tamao de una direccin viene dado por n=log2CMp= log2216= 16 bits
Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c
tendra los siguientes campos:
n=16 bits
Etiqueta
e=(n-b-p)
e=6 bits
Bloque n i
de Mc
b=log2C
b= 7 bits
Palabra
p=log2K
p= 3 bits
AFIRMACION I:
Para comprobar la validez de esta afirmacin hay que pasar la direccin 6B59 a cdigo binario.
6B5916= 0110 1011 0101 1001
La direccin desde el punto de vista de la M c tendra los siguientes campos:
011010
1101011
001
Luego el bloque i de M C al que hace referencia es: i=11010112=10710. Luego la afirmacin es VERDADERA.
AFIRMACION II:
Para comprobar la validez de esta afirmacin hay que pasar la direccin 675E a cdigo binario.
675E16= 0110 0111 0101 1111
La direccin desde el punto de vista de la M c tendra los siguientes campos:
011001
1101011
111
La etiqueta de esta direccin es 011001, distinta de la etiqueta 011010 de la direccin 6B59 que si que
estaba en la M c . Luego 675E no est en la M C. La afirmacin es VERDADERA.
51
AFIRMACION I:
En un sistema jerrquico de memoria con dos niveles de memoria cach, la cach 1 (M C1), ms cercana a la
CPU, posee una capacidad inferior a la cach de nivel 2 (M C2), ms cercana a la memoria principal. En
consecuencia nunca la M C1 puede contener una copia de todos los bloques de la MC2, slo de algunos de
ellos. Luego, la afirmacin es FALSA.
AFIRMACION II:
Con la poltica de post-escritura, las modificaciones que se realicen en la cach 1 no se reflejarn
inmediatamente en la cach 2. Por tanto, el contenido de un bloque de cach de nivel 1 no siempre ser
igual al contenido de un bloque correspondiente en la cach de nivel 2. Luego, la afirmacin es FALSA.
52
CT = C ROM + C RAM
Puesto que se conocen CT y CRAM es posible calcular CROM
01
RAM n 0
10
RAM n 1
11
RAM n 2
Modulo seleccionado
ROM
Nota: El enunciado de este problema es bastante puetero ya que el alumno debe de suponer dos
hiptesis, nada evidentes, para poder resolverlo: 1) Cada palabra de memoria ocupa un byte. 2) Hay dos o
tres mdulos de memoria RAM.
53
vT = f a =
N
tn t a
Despejando tn:
tn =
N
+ ta
vT
Sustituyendo valores:
54
t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que:
t ga = t ca = 20 nseg
De acuerdo con el enunciado el tiempo de gestin de un fallo ser la suma de dos componentes, ya que
cuando se produce un fallo:
1) El sistema mueve el bloque completo a la cach, es decir hay que realizar K accesos a la
memoria principal, lo que supone un tiempo de Kt ap.
2) Se lee el dato desde la cach, lo que supone un tiempo de t ac .
Luego:
55
Tasa de fallos = (1 h) =
Despejando la tasa de aciertos h:
h = 1
NF
NT
NF
1018
1
= 1 20 = 1 2 = 1 0.01 = 0.99
NT
10
10
Puesto que se conoce el nmero de bits c=7 bits del campo CONJUNTO con el que se codifica el nmero
de conjunto de la M C, es posible obtener el nmero de conjuntos total q de la M C:
q = 2 c = 27 = 128 conjuntos
El nmero de bloques C de la memoria cach se calcula de la siguiente forma:
K = 2 p = 25 = 32 ( palabras / bloque )
Finalmente la capacidad CMc de la memoria cach viene dada por:
56
57
ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II
Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
CONTENIDO
SOLUCION PROBLEMA 3.1........................................................................................................................................ 3
SOLUCION PROBLEMA 3.2........................................................................................................................................ 4
SOLUCION PROBLEMA 3.3........................................................................................................................................ 5
SOLUCION PROBLEMA 3.4........................................................................................................................................ 6
SOLUCION PROBLEMA 3.5........................................................................................................................................ 7
SOLUCION PROBLEMA 3.6........................................................................................................................................ 8
SOLUCION PROBLEMA 3.7........................................................................................................................................ 9
SOLUCION PROBLEMA 3.8...................................................................................................................................... 10
SOLUCION PROBLEMA 3.9...................................................................................................................................... 11
SOLUCION PROBLEMA 3.10.................................................................................................................................... 11
SOLUCION PROBLEMA 3.12.................................................................................................................................... 12
SOLUCION PROBLEMA 3.13.................................................................................................................................... 13
SOLUCION PROBLEMA 3.14.................................................................................................................................... 14
SOLUCION PROBLEMA 3.15.................................................................................................................................... 14
SOLUCION PROBLEMA 3.16.................................................................................................................................... 15
SOLUCION PROBLEMA 3.17.................................................................................................................................... 15
SOLUCION PROBLEMA 3.18.................................................................................................................................... 15
SOLUCION PROBLEMA 3.19.................................................................................................................................... 15
SOLUCION PROBLEMA 3.20.................................................................................................................................... 17
SOLUCION PROBLEMA 3.21.................................................................................................................................... 18
SOLUCION PROBLEMA 3.22.................................................................................................................................... 18
SOLUCION PROBLEMA 3.23.................................................................................................................................... 18
SOLUCION PROBLEMA 3.24.................................................................................................................................... 19
SOLUCION PROBLEMA 3.25.................................................................................................................................... 20
SOLUCION PROBLEMA 3.26.................................................................................................................................... 21
SOLUCION PROBLEMA 3.27.................................................................................................................................... 21
SOLUCION PROBLEMA 3.28.................................................................................................................................... 22
SOLUCION PROBLEMA 3.29.................................................................................................................................... 22
SOLUCION PROBLEMA 3.30.................................................................................................................................... 23
SOLUCION PROBLEMA 3.31.................................................................................................................................... 24
SOLUCION PROBLEMA 3.32.................................................................................................................................... 25
SOLUCION PROBLEMA 3.33.................................................................................................................................... 25
SOLUCION PROBLEMA 3.34.................................................................................................................................... 25
SOLUCION PROBLEMA 3.35.................................................................................................................................... 25
SOLUCION PROBLEMA 3.36.................................................................................................................................... 26
SOLUCION PROBLEMA 3.37.................................................................................................................................... 27
SOLUCION PROBLEMA 3.38.................................................................................................................................... 28
SOLUCION PROBLEMA 3.39.................................................................................................................................... 28
SOLUCION PROBLEMA 3.40.................................................................................................................................... 29
En un canal multiplexor la velocidad mxima de transferencia viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla. Luego
Canal selector
2 unidades de disco =>v TD=106 bytes/seg
2 unidades de cinta =>v TC= 105 bytes/seg
tbus=10nseg
Mp
E/S
D
Canal
Selector
C
E/S
C
En primer lugar se va a obtener la velocidad de transferencia del canal selector v Tcanal, que viene dada por la
velocidad del dispositivo ms rpido que controla, es decir, la velocidad de transferencia de una unidad de
disco.
t Tcanal =
1
vTcanal
1
6
seg = 1000 nseg
6 = 10
10
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia
de 1 byte entre un perifrico y memoria principal M p e s tbus=10 nseg. En la figura se representan
esquemticamente tTcanal y tbus.
tbus= 10 nseg
tTcanal=1000 nseg
Luego P es :
P=
t bus
t Tcanal
100 =
10
100 = 1%
1000
En este tipo de estrategia el controlador del DMA toma el control del bus del sistema, una vez que la CPU
ha ejecutado una instruccin y no lo cede hasta que ha transferido todo el bloque de palabras. Nos piden
calcular la mxima velocidad de transferencia de datos v tmax (pal/seg). Dicha velocidad vendr dada por el
cociente entre la velocidad del computador y el nmero de ciclos que se necesitan para escribir o leer una
palabra.
v tmax =
N D = N DM + N DP
El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 213 direcciones
El nmero de direcciones para acceder a palabras de memoria es
N DM = 212 direcciones
Luego el nmero de direcciones para acceder a palabras en los perifricos vendr dado por :
N Pmax =
N DP
212 (dir )
=
= 2 12 perifri cos
R
1( dir / per )
b) Nos dicen que cada perifrico ocupa 8 direcciones => R= 8 dir/peri. Luego el nmero mximo de
perifricos NPmax es :
N Pmax =
N DP
212 ( dir )
= 3
= 2 9 perifri cos
R
2 ( dir / per )
Para resolver este problema, primero hay que calcular la velocidad de ejecucin v ejec1
(instrucciones/segundo) cuando no hay DMA y a continuacin calcular la velocidad de ejecucin vejec2
(instrucciones/segundo) cuando hay DMA con estrategia de robo de ciclos. La velocidad de ejecucin
v ejec se define como el nmero de instrucciones que el computador es capaz de ejecutar en un segundo.
1)Calcular v ejec1 .
1 ciclo
Ejecucin
normal
Instr1
Instr2
Instr 3
Sino hay DMA el computador tarda en promedio 4 ciclos en ejecutar cada instruccin. Luego la velocidad
de ejecucin es:
Instr1
Instr2
DMA
DMA
Instr3
Ahora cada vez que se ejecuta una instruccin, a continuacin se cede el bus del sistema al controlador de
DMA para que realice la transferencia de una palabra. Por lo que ahora transcurren 5 ciclos entre
instruccin e instruccin. Luego la velocidad de ejecucin es:
v ejec1
3) El nmero de instrucciones que dejen de ejecutarse por segundo viene dado por :
Instr1
Instr2
Instr3
R=
2( ciclos / instr )
= 2( pal / instr )
1( ciclo / pal )
v ejec
Instr1
Instr2
Instr3
v ejec
Canal multiplexor
2 unidades de disco =>v TD=106 bytes/seg
5 unidades de cinta =>v TC= 2105 bytes/seg
tbus=100nseg
Mp
E/S
D
Canal
Multiplexor
C
C
E/S
C
C
En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor v Tcanal, que viene dada
por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1
v Tcanal
1
1000
nseg
6 =
3
3 10
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia
de 1 byte entre un perifrico y memoria principal M p e s tbus=100 nseg. En la figura se representan
esquemticamente tTcanal y tbus.
tbus = 100 nseg
tTcanal=1000/3 nseg
Luego P es :
P=
t bus
tTcanal
100 =
100
100 = 30%
1000
3
10
vin
vout
Buffer
De los datos del problema se deduce que el buffer recibe datos a una velocidad ms elevada de lo que
transmite. Habr que calcular la velocidad de llenado v, que ser:
t llenado =
C
2 18 ( bytes)
=
= 0.33 seg
v 3 2 18 (bytes / seg )
11
n= 32 lneas de direccin.
Memoria con 32 Mb
Utiliza E/S aislada de memoria.
R=16 direcciones/perifrico
El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria disponen
de lneas de control (lectura y escritura) autnomas, por lo que el mapa de direcciones de palabras de
memoria es independiente del mapa de direcciones de palabras en perifricos.
El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 2 32 direcciones
El nmero de direcciones para acceder a palabras en los perifricos NDP ser igual al nmero total de
direcciones disponibles:
N DP = N D = 2 32 direcciones
Nos dicen que cada perifrico ocupa 16 direcciones => R= 16 dir/peri. Luego el nmero mximo de
perifricos NPmax es :
N Pmax =
N DP
2 32 ( dir )
= 4
= 2 28 perifri cos
R
2 ( dir / per )
12
Instr1
Instr2
Instr3
v ejec =
Puesto que el sistema utiliza 1 ciclo en transferir 1 palabra y como tras ejecutar una instruccin se cede 1
ciclo para realizar DMA entonces el nmero de palabras que se transmiten tras ejecutar una instruccin es
R=1pal/inst. As la velocidad de transferencia mxima es:
Instr1
Instr2
Instr3
v ejec =
R=
1(ciclos / instr )
= 1( pal / instr)
1( ciclo / pal )
13
Canal multiplexor
3 unidades de disco =>v TD=5106 bytes/seg
5 unidades de cinta => v TC= 105 bytes/seg
tbus=50 nseg
En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor v Tcanal, que viene dada
por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1
vTcanal
1
10 9
1000
=
=
nseg = 64.5 nseg
6
6
9
15.5
15.5 10
15.5 10 10
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia
de 1 byte entre un perifrico y memoria principal M p e s tbus=50 nseg. En la figura se representan
esquemticamente tTcanal y tbus.
tbus= 50 nseg
tTcanal=64.5 nseg
Luego el porcentaje mximo de tiempo P que estara ocupado el bus del sistema en una transferencia de
datos a travs de este canal multiplexor sera :
P=
t bus
tTcanal
100 =
50
100 = 77.5%
64.5
14
La velocidad de transferencia del canal multiplexor v Tcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.
15
SOLUCIN
PROBLEMA
3 - 17
13
6ROXFLyQ
Antes de contestar los apartados pedidos, conviene hacer un resumen de cmo ha de funcionar el controlador de
interrupciones solicitado:
1) De todas las peticiones de interrupcin INTRi se filtrarn y eliminarn las que estn enmascaradas.
2) Si despus del paso 1) todava existe alguna peticin activada se activar INTR y se seleccionar cul
es la peticin ms prioritaria.
3) Cuando la UCP conceda la interrupcin activando INTA, se informar al perifrico cuya peticin de
interrupcin se a seleccionado en 2) que su peticin va a ser atendida, mediante su lnea de aceptacin
INTAi correspondiente.
Obsrvese que los puntos 1) y 2) no son intercambiables, es decir, se han de ejecutar necesariamente en ese
orden. En caso contrario se podran ocasionar situaciones anmalas. (Por ejemplo, si INTR2 e INTR3 estn activas
pero ambos niveles de interrupcin estn enmascarados, INTR no se debe activar. Pero se se genera INTR y luego
se comprueba qu niveles estn enmascarados se habra producido una peticin de interrupcin cuando debera
haber sido filtrada por el controlador de interrupciones.).
a) Para cualquier seal INTAj, suponiendo que ninguna peticin est enmascarada, se verifica:
Si INTA=1 e INTRj=1, pero existe un INTRk de mayor prioridad que tambin est activado, entonces
INTAj=0.
14
A partir de aqu se obtiene de forma inmediata la tabla de verdad solicitada (Tabla 99-3-1).
INTA
INTR3
INTR2
INTR1
INTR0
INTA3
INTA2
INTA1
INTA0
b) El controlador de interrupciones posee un registro interno de mscara MASK cuyos bits individuales
M3..M0 enmascaran selectivamente las lneas de peticin de interrupcin. (El contenido de este registro es escrito
por la UCP mediante algn mecanismo que segn el enunciado no hay que considerar en este problema.) As,
cuando Mj=0 la correspondiente seal INTRj est enmascarada y no deber ser atendida. Esto se realiza fcilmente
con una puerta AND. El enmascaramiento de las cuatro lneas de peticin ser, por tanto, el que se muestra en la
Figura 99-3-2.
INTR3
INTR3
INTR2
INTR2
INTR1
INTR1
INTR0
INTR0
M3
M2
M1
M0
MASK
c) En este apartado hay que seleccionar, a partir de las lneas de peticin que ya han pasado por el mecanismo
de enmascaramiento INTRi, la peticin activa ms prioritaria. Una posible solucin consiste en utilizar un
codificador de prioridad seguido de un decodificador (Figura 99-3-3; obsrvese que ambos dispositivos tienen sus
entradas de habilitacin H activadas).
15
INTR
1
INTR3
INTR2
Codificador
de prioridad
INTR1
INTR0
I3
I2
I1
I0
Decodificador
0
El codificador de prioridad genera la codificacin binaria de la lnea INTRj ms prioritaria que est activa. A
partir de aqu, por medio de un decodificador se consigue que se active nicamente la lnea Ij; las restantes lneas Ii
menos prioritarias se encuentran a 0, independientemente de cmo se encuentren las correspondientes lneas
INTRi. Esto se recoge en la Tabla 99-3-2.
INTR3
INTR2
INTR1
INTR0
I3
I2
I1
I0
Tabla 99-3-2: Tabla de verdad del mecanismo de gestin de prioridades (X representa 0 1, indistintamente)
La salida A del codificador de prioridad indica que alguna de sus entradas est a 1. Es decir, cuando alguna de
las lneas INTRi est a 1 significa que hay alguna peticin no enmascarada activa, y que por tanto hay que activar
la lnea INTR; para esto se utiliza la salida A.
d) Cuando la UCP concede la interrupcin activa su nica lnea INTA. Para generar las cuatro lneas de
aceptacin INTAi, y dado que slo una de las lneas Ii puede estar activada en cada momento, la correspondiente a
la peticin no enmascarada de mayor prioridad, basta con hacer la Y-lgica entre Ii e INTA, segn la Figura
99-3-4.
16
I3
INTA3
I2
INTA2
INTA1
I1
INTA0
I0
INTA
e) Para construir el controlador de interrupciones solicitado tan solo hay que encadenar los mdulos
implementados en los apartados b), c) y d), segn se muestra en la Figura 99-3-5.
INTR
INTR1
INTR0
I3
INTA
INTR2
INTR1
INTR0
Prioridades (c)
INTR2
INTR3
I2
I1
Concesin (d)
INTR3
Enmascaramiento (b)
{
A los perifricos
De los perifricos
CONTROLADOR DE INTERRUPCIONES
I0
INTA3
INTA2
INTA1
INTA0
UCP
Canal multiplexor
2 unidades de disco => v TD=106 bytes/seg
10 unidades de cinta => v TC= 103 bytes/seg
tbus=100 nseg
La velocidad de transferencia del canal multiplexor v Tcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.
t Tcanal =
1
vTcanal
1
10 9
=
= 497.5 nseg
2.01 106 2.0110 6 10 9
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia
de 1 byte entre un perifrico y memoria principal M p es tbus=100 nseg. En la Figura se representan
esquemticamente tTcanal y tbus.
tbus= 100 nseg
tTcanal=497.5 nseg
Luego el porcentaje mximo de tiempo P que estara ocupado el bus del sistema en una transferencia de
datos a travs de este canal multiplexor sera :
P=
t bus
t Tcanal
100 =
100
100 = 20.1%
497.5
16
17
Canal selector
3 unidades de disco => v TD=5106 bytes/seg
5 unidades de cinta => v TC= 105 bytes/seg
tbus=50 nseg
t Tcanal =
1
vTcanal
1
10 9
1000
=
=
nseg = 200 nseg
6
6
9
5
5 10
5 10 10
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia
de 1 byte entre un perifrico y memoria principal M p e s tbus=50 nseg. En la Figura se representan
esquemticamente tTcanal y tbus.
tbus= 200 nseg
tTcanal=200 nseg
Luego el porcentaje mximo de tiempo P que estara ocupado el bus del sistema en una transferencia de
datos a travs de este canal multiplexor sera :
P=
t bus
t Tcanal
100 =
50
100 = 25%
200
18
La velocidad de transferencia del canal multiplexor v Tcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.
19
Canal multiplexor
5 unidades de disco =>v TD=106 bytes/seg
10 unidades de cinta =>v TC= 2105 bytes/seg
tbus=200 nseg
En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor v Tcanal, que viene dada
por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1
vTcanal
1
1000
= 142.8 nseg
6 =
7
7 10
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia
de 1 byte entre un perifrico y memoria principal M p e s tbus=100 nseg. En la figura se representan
esquemticamente tTcanal y tbus.
tbus = 200 nseg
tTcanal=142.8 nseg
De la figura se deduce que se tiene un sistema cuyo canal puede transmitir un byte entre uno de sus
perifricos y memoria, ms rpido de lo que ese byte tarda en transmitirse por el bus del sistema. El tiempo
de transferencia viene limitado por el tiempo de utilizacin del bus del sistema , ya que tbus>tTcanal. Por lo
tanto el tiempo de transferencia es :
t T = t bus
Luego P es :
P=
t bus
t
200
100 = bus 100 =
100 = 100 %
tT
t bus
200
20
n= 13 lneas de direccin.
Memoria con 3x2 11 palabras
Utiliza E/S localizada en memoria.
R=16 direcciones/perifrico
El computador utiliza E/S localizada en memoria, eso significa que el controlador de E/S y la memoria
comparten las lneas de control (lectura y escritura), por lo que se cumple el nmero total de direcciones
posibles NTD estar formado por las direcciones de palabras de memoria M DM y las direcciones de palabras
en perifricos NDP:
N D = N DM + N DP
El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 213 direcciones
El nmero de direcciones para acceder a palabras de memoria es
N DM = 3 211 direcciones
Luego el nmero de direcciones para acceder a palabras en los perifricos vendr dado por :
N Pmax =
N DP
211 (dir )
= 4
= 2 7 perifri cos
R
2 ( dir / per )
21
Canal multiplexor
5 unidades de disco =>v TD=106 bytes/seg
10 unidades de cinta =>v TC= 2105 bytes/seg
tbus=200 nseg
Este problema es completamente anlogo al problema 3.25, salvo que nos piden la velocidad de
transferencia agregada a este sistema. Puesto que el sistema est saturado P=100%. La velocidad mxima
de transferencia viene dada por la inversa del tiempo de utilizacin del bus:
vT max =
1
max( t bus , tTcanal )
1
t bus
1 byte
107
=
= 5 10 6 (bytes / seg )
200 nseg
2
Instr1
Instr2
Instr3
22
Instr1
Instr2
Instr3
vejec
R=
2( ciclos / instr)
= 1( pal / instr )
2(ciclos / pal )
t=
N ( pal )
1010 7
=
= 2 seg
v t max ( pal / seg ) 5107
23
n
n
n
n
Conviene darse cuenta de que el sistema permite anidamiento, en consecuencia se trata de un sistema
multinivel de interrupciones, de tal forma que cuando comienza a ejecutarse el programa de gestin de una
interrupcin, si llega una interrupcin de prioridad superior pasa a ejecutar la rutina de servicio de dicha
interrupcin.
PI1
PI3 PI2
PI1
10
3 5
Rutina
Disco Duro 1
20
14
Rutina
CDROM
30
40
50
u.t.
24
Rutina
Disco Duro 2
Rutina
CDROM
Figura 3.31.1
De acuerdo con el enunciado la forma de atender a las interrupciones (ver Figura 3.31.1) es la
siguiente.
1) En t=0 u.t comienza a ejecutar la rutina de servicio del primer disco duro, que requiere un tiempo
total de ejecucin de t s1=10 u.t.
2) En t=3 u.t la CPU est ejecutando todava la rutina de servicio del primer disco duro llega la
peticin de interrupcin de la impresora PI3. Puesto que prio(PI3)<prio(PI1) la ignora y la coloca
en una cola a la espera de ser atendida.
3) En t=5 u.t la CPU est ejecutando todava la rutina de servicio del primer disco duro llega la
peticin de interrupcin del CD-ROM PI2. Puesto que prio(PI2)<prio(PI1) la ignora y la coloca en
una cola a la espera de ser atendida.
4) En t= 10 u.t la CPU termina de ejecutar la rutina de servicio del primer disco duro y comienza a
ejecutar la rutina de servicio del CD-ROM, que es la interrupcin en cola de espera de mayor
prioridad. La ejecucin de esta rutina de servicio requiere un tiempo total t s2=30 seg.
5) En t=14 u.t la CPU est ejecutando todava la rutina de servicio del CDROM llega la peticin de
interrupcin del segundo disco duro PI1. Puesto que prio(PI1)>prio(PI2) detiene la ejecucin de
la rutina de servicio del CDROM, cuando an le restan t s2-4= 26 u.t para terminarla, y comienza a
24
ejecutar la rutina de servicio del segundo disco duro que requiere un tiempo total en ser
atendida de t s1= 10 u.t
6) En t=24 u.t termina la ejecucin de la rutina de servicio del segundo disco duro. Retoma la CPU
ejecucin de la rutina de servicio del CDROM del que le faltaban 26 u.t por ejecutar.
7) En t=50 u.t finaliza la rutina de servicio del CDROM y comienza la CPU a ejecutar la rutina de
servicio de la impresora que se encontraba en la cola de espera, que requiere un tiempo total de
ts3=15 u.t
8) En t=65 u.t finaliza la ejecucin de la rutina de servicio de la impresora.
Luego la respuesta al problema se obtiene en el paso 7, es decir, en t=50 u.t finaliza la ejecucin de la
rutina de servicio de la interrupcin del CDROM. Otra forma de calcular este valor es darse cuenta de que
es la suma de los tiempos 2t s1+t s2=210+30=50 u.t correspondientes a ejecutar tres rutinas de servicio : la
del primer disco, la del segundo disco y la del CDROM.
25
SOLUCIN
PROBLEMA
3 - 35
13
INTR0
INTR
INTR1
Controlador
de
interrupciones
INTR7
UCP
INTA
INTA0
INTA1
INTA7
6ROXFLyQ
Si INTA = 0, no se activa ninguna de las lneas de aceptacin, aunque haya peticiones pendientes.
INTA
SALIDAS
INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0
b) En este apartado hay que seleccionar, a partir de las lneas INTRi la peticin ms prioritaria. Una posible
solucin consiste en utilizar un codificador de prioridad seguido de un decodificador. En la Figura 2 se muestra el
diseo propuesto, donde se puede observar que tanto el codificador de prioridad como el decodificador tienen sus
14
INTR
1
H
INTR7
7
2
INTR6
INTR5
INTR4
I7
I6
I5
I4
Codificador de
prioridad
Decodificador
1
INTR3
I3
INTR2
I2
INTR1
I1
I0
INTR0
El codificador de prioridad genera la codificacin binaria de la lnea INTRi ms prioritaria. A partir de aqu,
por medio del decodificador se consigue que nicamente se active la lnea Ii, y que las restantes salidas Ij, menos
prioritarias, se encuentren a cero, independientemente de cmo se encuentren las correspondientes lneas INTR j.
Esto se recoge en la Tabla 4.
INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0
INTR
I7
I6
I5
I4
I3
I2
I1
I0
15
INTR
I7
I6
I5
I4
I3
I2
I1
I0
Cuando alguna de las lneas INTRi est a 1 significa que hay alguna peticin de interrupcin activa y que, por
tanto, hay que activar la lnea INTR conectada a la UCP para transmitir la peticin. Para esto se utiliza la salida A
del codificador de prioridad que se activa cuando alguna de sus entradas est a 1. El comportamiento de esta lnea
se puede ver tambin en la Tabla 4.
c) Cuando la UCP concede la interrupcin activa su nica lnea INTA. El controlador de interrupciones tiene
que activar en ese instante la lnea de aceptacin INTAi correspondiente al dispositivo ms prioritario que tenga
pendiente una peticin. Esta informacin se gener en el apartado anterior mediante las salidas Ii. Entonces, para
generar las funciones lgicas de las ocho INTAi que tiene el controlador de interrupciones que se est diseando,
basta con hacer la Y-lgica entre cada Ii y la lnea INTA de aceptacin generada por la UCP (ver Figura 3).
INTA7
I7
INTA6
I6
INTA5
I5
INTA4
I4
INTA3
I3
INTA2
I2
INTA1
I1
INTA0
I0
INTA
Para construir ahora el controlador de interrupciones solicitado tan solo hay que encadenar los mdulos
implementados en el apartado B (ver Figura 2) con el de la Figura 3, tal y como muestra la Figura 4.
16
INTR
INTR7
INTR6
INTR5
INTR4
INTR3
INTR2
INTR1
INTR0
I7
I6
I5
4
3
Mdulo de
gestin de
prioridades
(Figura 2)
I4
I3
I2
I1
I0
INTA
UCP
Mdulo de
aceptacin
(Figura 3)
7 6 5 4 3 2 1 0
Controlador de
Interrupciones
INTA7
INTA6
INTA5
INTA4
INTA3
INTA2
INTA1
INTA0
Otra posible solucin consiste en conectar la salida INTA de la UCP a la entrada de habilitacin H del
decodificador de la Figura 2 de la pgina 14. De esta manera, las salidas del decodificador son ahora las seales
INTAi, tal como se muestra en la Figura 5.
INTR
INTA
1
H
INTR7
7
2
INTR6
INTR5
INTR4
17
INTA7
INTA6
INTA5
INTA4
Codificador de
prioridad
Decodificador
1
INTR3
INTA3
INTR2
INTA2
INTR1
INTA1
INTR0
INTA0
INTR
INTA
INTR7
INTA7
INTR6
INTA6
INTR5
C o ntrolador
4
de
Interrupciones
INTA5
INTA4
INTA3
INTR2
INTA2
INTR1
INTA1
INTR0
INTA0
INTR4
INTR3
Es capaz de atender peticiones de 15 dispositivos, tal y como requiere el enunciado del problema.
18
La salida de peticin de interrupcin INTR del CI2 se ha conectado con la entrada INTR0 del CI1, y la salida
de aceptacin INTA0 del CI1 se ha conectado con la entrada INTA del CI2. De esta forma, las peticiones
INTR7 a INTR0, solicitadas al CI2, slo se atendern cuando no haya peticiones activas en las lneas INTR8
a INTR14. Por tanto, la lnea ms prioritaria es la INTR14 y la menos prioritaria es la INTR0.
De esta manera se pueden encadenar tantos controladores de interrupciones como sean necesarios para
atender a cualquier nmero arbitrario de peticiones.
UCP
INTR
INTA
INTR
INTA
INTR14
INTA14
INTR13
INTA13
INTR12
INTA12
INTA11
INTA10
INTA9
INTA8
INTR11
INTR10
C on trolador
4
de
Interrupciones
3
INTR9
INTR8
INTR
INTA
INTR7
INTA7
INTR6
INTA6
INTR5
INTA5
INTA4
INTA3
INTA2
INTR4
INTR3
C o ntrolador
4
de
Interrupciones
3
INTR2
INTR1
INTA1
INTR0
INTA0
Nota importante:
A la hora de corregir este problema, el equipo docente de la asignatura se ha encontrado con bastante
19
frecuencia con el circuito que se muestra en la Figura 8. Se trata de una propuesta para el mecanismo de gestin de
prioridades y generacin de las seales de aceptacin. Veamos por qu no funciona:
En la Figura 8 se ha representado una situacin hipottica en la que estn activas simultneamente las
peticiones INTR7, INTR6 e INTR5, y la UCP ha concedido la interrupcin mediante la activacin de la lnea de
concesin INTA. Al ser la ms prioritaria, la peticin 7 debe ser atendida; efectivamente, el circuito propuesto
genera INTA7 = 1, lo que es correcto. La peticin 6, al tener menor prioridad, no debe ser atendida: INTA6 = 0,
correcto. Pero INTA5 es 1, cuando debera ser 0. El circuito est concediendo la interrupcin simultneamente a
dos dispositivos diferentes, lo que es una situacin errnea que puede ocasionar graves conflictos en el
funcionamiento del computador.
Es fcil encontrar otras muchas situaciones en las que este dispositivo concede la interrucin a varios
dispositivos simultneamente. Se trata, por tanto, de una propuesta de solucin no vlida.
1
INTR7
INTR6
INTR5
INTA7
INTA6
INTA5
INTA0
INTR0
1
INTA
Instr1
Instr2
Instr 3
26
Canal multiplexor
5 unidades de disco =>v TD=106 bytes/seg
5 unidades de cinta => v TC= 105 bytes/seg
tbus=50 nseg
En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor v Tcanal, que viene dada
por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1
vTcanal
1
10 9
1000
=
=
nseg = 181.81 nseg
6
6
9
5.5
5.5 10
5.5 10 10
vT max =
1
max( tbus , tTcanal )
1
t Tcanal
27
n= 24 lneas de direccin.
Memoria con 220 palabras
Utiliza E/S aislada de memoria.
R=1 direccin/perifrico
El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria disponen
de lneas de control (lectura y escritura) autnomas, por lo que el mapa de direcciones de palabras de
memoria es independiente del mapa de direcciones de palabras en perifricos.
El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 2 n = 2 24 direcciones
El nmero de direcciones para acceder a palabras en los perifricos NDP ser igual al nmero total de
direcciones disponibles:
N DP = N D = 2 24 direcciones
Nos dicen que cada perifrico ocupa 1 direccin => R= 1 direccin/perifrico. Luego el nmero mximo de
perifricos NPmax es :
N P max =
N DP
224 (direccione s )
=
= 2 24 periferico s
R
1( direccin / perifrico )
28
Tiempos de ejecucin
t 1 (seg)
Bucle de espera
N 1 (instr )
T (seg)
N (instr )
Lectura de un dato
t 2 (seg)
N2 (instr )
El tiempo total T que se tarda en ejecutar una E/S controlada por programa, ser la suma del tiempo t1 que
permanece la CPU en el bucle de espera y del tiempo t2 que emplea la CPU en leer un dato y solicitar el
siguiente:
T = t1 + t 2
Del enunciado se sabe que t 1=6 ms, adems se sabe el nmero de instrucciones que emplea el programa en
leer un dato y pedir el siguiente es N2=10 instr. Como tambin se conoce el tiempo que se emplea en
ejecutar una instruccin tI, entonces t 2 se puede calcular de la siguiente forma:
T = 2 + 6 = 8 mseg
Luego el porcentaje de tiempo P que dedica la CPU al bucle de espera es:
t
6
P = 1 100 = 100 = 75 %
T
8
29
Comentarios
Aunque en el problema no lo piden con los datos de que disponemos y los que hemos calculado tambin
sera posible calcular los siguientes:
n Nmero total de instrucciones NT que emplea el programa de E/S:
N T (instr ) =
T ( seg )
810 3
=
= 40 instr
t I ( seg / instr ) 20010 6
N1 (instr ) =
t1 ( seg )
610 3
=
= 30 instr
t I ( seg / instr) 20010 6
N1 = NT N 2 = 40 10 = 30 instr
n De acuerdo con el enunciado ejecutar una vez el bucle de espera requiere de NBE=1 instr, luego el
nmero R de veces que se ejecuta el bucle de espera es:
R( veces) =
N1 ( instr)
30
=
= 30 veces
N BE (instr / vez) 1
30
SOLUCIN
PROBLEMA
3 - 41
Problema 3.41:
Una CPU dispone de una nica lnea de peticin de interrupcin (INTR) y de una nica lnea de
aceptacin de interrupcin. Disee para esa CPU un controlador de interrupciones, de manera que se
puedan atender interrupciones generadas por 3 dispositivos externos mediante lneas de peticin de
interrupcin (ver la Figura adjunta). Cuando se reciben peticiones de interrupcin simultneas, slo se
reconoce la ms prioritaria. La mxima prioridad la tiene INTR0 y la mnima INTR2 . Adems, cada una
de estas lneas de interrupcin se ha de poder enmascarar de manera individual mediante un registro de
mscara (M2 M1 M0 ) del controlador de interrupciones (el mecanismo de acceso de la CPU a este registro
no es relevante para este problema). Cuando M j = 0, la correspondiente seal INTR j est enmascarada y
no debe ser atendida. Cuando la CPU activa su lnea de aceptacin, INTA, se debe informar al perifrico
correspondiente, de manera individual, que su peticin ha sido aceptada, mediante las lneas de
aceptacin INTA2 INTA0 .
INTR2 INTR1
INTR0
0
CONTROLADOR DE
INTERRUPCIONES
Mscara:
[ M 2M 1M 0 ]
INTA2 INTA1
INTR
INTA
INTR
INTA
CPU
0
INTA0
Solucin
Este problema es similar a los problemas 3-9 y 3-13 del texto Problemas de Estructura y Tecnologa de
Computadores, 2 edicin. Se recomienda consultar la solucin a estos dos problemas con el fin de facilitar la
comprensin de las explicaciones dadas a continuacin.
A) Obtenga la tabla de la verdad del controlador de interrupciones.
En el enunciado del problema (al contrario que en los problemas 3-9 y 3-13) se realiza la suposicin de que
todas las lneas de peticin estn enmascaradas. Por este motivo, es preciso tener en cuenta el enmascaramiento de
las lneas de peticin al plantear la tabla de la verdad.
Un posible procedimiento para ello consiste en construir primeramente la tabla de la verdad en funcin de
variables auxiliares, INTR i, las cuales representan tanto a la seal de peticin de interrupcin como a su
mecanismo de enmascaramiento (ver Tabla 1):
INTRi = INTRi Mi
donde i: 0, 1, 2
La seal INTR es el or lgico de las seales INTR1, INTR 2 e INTR3 . De esta forma en cuanto haya una
peticin de interrupcin por una lnea no enmascarada, se genera una peticin a la CPU.
INTA
0
1
1
1
1
INTR0
X
1
0
0
0
INTR1
X
X
1
0
0
INTR2
X
X
X
1
0
INTR
X
1
1
1
0
INTA0
0
1
0
0
0
INTA1
0
0
1
0
0
INTA 2
0
0
0
1
0
A continuacin, se sustituye en la Tabla 1 cada conjunto de valores de INTR0 , INTR1 e INTR 2 por las
combinaciones de valores de M 0, M1, M2, INTR0, INTR1 e INTR2 que lo producen. Para ello se tiene en cuenta que:
Mi
1
0
X
INTRi
1
X
0
INTR i
1
0
0
La tabla de la verdad obtenida realizando las sustituciones anteriormente indicadas se muestra en la Tabla 2.
INTA
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
M0
X
1
0
X
0
0
X
X
0
0
0
0
X
X
X
X
M1
X
X
1
1
0
X
0
X
0
0
X
X
0
0
X
X
M2
X
X
X
X
1
1
1
1
0
X
0
X
0
X
0
X
INTR0
X
1
X
0
X
X
0
0
X
X
X
X
0
0
0
0
INTR 1
X
X
1
1
X
0
X
0
X
X
0
0
X
X
0
0
INTR2
X
X
X
X
1
1
1
1
X
0
X
0
X
0
X
0
INTR
X
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
INTA0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
INTA1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
INTA2
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
B) Obtenga la funcin lgica de las tres lneas INTA2, INTA1, INTA 0 en funcin de las lneas INTR0 , INTR1 ,
INTR2 , INTA y de los bits del registro de mscara.
De la Tabla 1, se deduce que:
INTA0 = INTA INTR 0
INTA1 = INTA INTR 1 INTR0
INTA2 = INTA INTR 2 INTR1 INTR0
Sustituyendo INTRi por (Mi INTRi), se obtienen las tres funciones lgicas pedidas (que igualmente podan
haber sido obtenidas de la Tabla 2):
INTA0 = INTA M0 INTR0
INTA1 = INTA M1 INTR1 (M0 INTR 0)
INTA2 = INTA M2 INTR2 (M1 INTR 1) (M0 INTR0 )
C) Disee el circuito lgico del controlador de interrupciones, usando para ello puertas AND, OR y NOT.
En la Figura 8 se muestra un posible diseo.
ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II
Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
CONTENIDO
SOLUCION PROBLEMA 4.1........................................................................................................................................ 3
SOLUCION PROBLEMA 4.2........................................................................................................................................ 3
SOLUCION PROBLEMA 4.3........................................................................................................................................ 4
SOLUCION PROBLEMA 4.4........................................................................................................................................ 6
SOLUCION PROBLEMA 4.5........................................................................................................................................ 6
SOLUCION PROBLEMA 4.6........................................................................................................................................ 6
SOLUCION PROBLEMA 4.7........................................................................................................................................ 7
SOLUCION PROBLEMA 4.8........................................................................................................................................ 7
SOLUCION PROBLEMA 4.9........................................................................................................................................ 7
SOLUCION PROBLEMA 4.10...................................................................................................................................... 8
SOLUCION PROBLEMA 4.11...................................................................................................................................... 9
SOLUCION PROBLEMA 4.12...................................................................................................................................... 9
SOLUCION PROBLEMA 4.13...................................................................................................................................... 9
SOLUCION PROBLEMA 4.14...................................................................................................................................... 9
SOLUCION PROBLEMA 4.15.................................................................................................................................... 10
SOLUCION PROBLEMA 4.16.................................................................................................................................... 10
SOLUCION PROBLEMA 4.17.................................................................................................................................... 10
SOLUCION PROBLEMA 4.18.................................................................................................................................... 11
SOLUCION PROBLEMA 4.19.................................................................................................................................... 11
SOLUCION PROBLEMA 4.20.................................................................................................................................... 11
SOLUCION PROBLEMA 4.21.................................................................................................................................... 12
SOLUCION PROBLEMA 4.22.................................................................................................................................... 12
SOLUCION PROBLEMA 4.23.................................................................................................................................... 12
SOLUCION PROBLEMA 4.24.................................................................................................................................... 13
SOLUCION PROBLEMA 4.25.................................................................................................................................... 13
SOLUCION PROBLEMA 4.26.................................................................................................................................... 13
SOLUCION PROBLEMA 4.27.................................................................................................................................... 13
SOLUCION PROBLEMA 4.28.................................................................................................................................... 13
SOLUCION PROBLEMA 4.29.................................................................................................................................... 14
SOLUCION PROBLEMA 4.30.................................................................................................................................... 15
SOLUCION PROBLEMA 4.31.................................................................................................................................... 15
SOLUCION PROBLEMA 4.32.................................................................................................................................... 15
SOLUCION PROBLEMA 4.33.................................................................................................................................... 16
SOLUCION PROBLEMA 4.34.................................................................................................................................... 17
SOLUCION PROBLEMA 4.35.................................................................................................................................... 17
SOLUCION PROBLEMA 4.36.................................................................................................................................... 18
SOLUCION PROBLEMA 4.37.................................................................................................................................... 18
SOLUCION PROBLEMA 4.38.................................................................................................................................... 18
SOLUCION PROBLEMA 4.39.................................................................................................................................... 19
SOLUCION PROBLEMA 4.40.................................................................................................................................... 20
SOLUCION PROBLEMA 4.41.................................................................................................................................... 20
Solucin
A) El mdulo comparador de dos bits que se quiere disear viene
representado en la Figura 96-1-2, donde x e y son las entradas de datos, y M, I
y m son las tres salidas del comparador.
x>y
x=y
x<y
xi > yi
Ii =1
si
xi = yi
mi =1 si
xi < yi
x>y
y2
x=y
M2
x<y
I2
M1
y1
x=y
I1
x0
x<y
x>y
m1
x>y
m2
x1
M0
x=y
I0
x<y
m0
y0
c2
SBC
s2
x1 y1
c1
SBC
s1
x0 y0
c0
SBC
c-1
s0
UAL
x2x1x0
y2y1y0
COMPARADOR
M
I
m
x2x1x0
y2y1y0
c2
SUMADOR
s2
s1
s0
1
0
c0 MUX
s3
c0 MUX
s2
c0 MUX
s1
c0 MUX
s0
Reloj
Comparador
secuencial
Solucin
S1 / 100
xx
S2 / 001
xx
10
11
S0 / 010
00
01
00
Entradas xi yi
01
10
11
Salida
MIm
S0 (igual)
S0
S2
S1
S0
010
S1 (mayor)
S1
S1
S1
S1
100
S2 (menor)
S2
S2
S2
S2
001
Estado
presente
Prximo estado
Tabla 96-2-2 Tabla de estados del comparador secuencial
Estado
Q1Q0
S0 (igual)
00
S1 (mayor)
01
S2 (menor)
10
Estado pres.
Q1Q0
00
Entradas xi yi
01
10
11
Salida
MIm
00
00
10
01
00
010
01
01
01
01
01
100
10
10
10
10
10
001
Prximo estado
Tabla 96-2-4 Tabla de transicin de estados y salida del comparador
xiyi
Q1Q0
00
11
10
11
10
00
01
01
xiyi
Q1Q0
01
11
00
01
11
10
D1 = xiyiQ0 + Q1
00
10
D0 = xi yi Q1 + Q0
D 1 = x i y i Q 0 + Q 1 = x i yi Q 0 + Q 1 = x i y i Q 0 Q 1
D 0 = x i y i Q 1 + Q 0 = x i yi Q 1 + Q 0 = x i y i Q 1 Q 0
Finalmente slo falta calcular las expresiones lgicas de las tres salidas en
funcin del estado, para ello utilizamos la Tabla 96-2-5.
Q1 Q0
MIm
00
010
01
100
10
001
11
xxx
96-2-5.
xi
D1
Ck
Q1
D0
yi
Reloj
Q1
Ck
Q0
Q0
p4
p3
p2
b1
a1
p1
b0
a0
p0
Por lo tanto en la ROM se deben almacenar todos los resultados posibles que pueden resultar al
multiplicar un nmero de 3 bits por otro de 2 bits. El nmero de resultados posibles es 25. Por otro lado
ya se ha visto que el resultado debe de tener 5 bits. Luego se necesitara un mdulo ROM de
capacidad
C=25 pal x 5 bits/pal
Ahora bien los mdulos de ROM de que se disponen tienen una capacidad de 24 pal x 4 bits/pal.
Luego para conseguir almacenar 25 (32) resultados necesitamos 2 mdulos de este tipo (24 + 24)
Por otro lado como cada resultado tiene 5 bits necesitamos otros dos mdulos: en uno se almacenar el
bit ms significativo (p 4) de cada resultado quedando tres bits (r2r1r0) sin utilizar (x) y en el otro los
cuatro bits restantes (p 3p 2p 1p 0).
Luego el nmero de mdulos necesarios es 4. El esquema sera :
b 1 b0 a1 a0
4
Mdulo 1
ROM
16x4
Mdulo 2
CS
ROM
16x4
p3 p 2 p1 p0
4
CS
Mdulo 3
Mdulo 4
ROM
16x4
ROM
16x4
CS
b2
b2
p4 p3 p 2 p 1 p 0
p4
p3 p 2 p1 p0
4
CS
p4
Comentar que con el bit b2 se selecciona el par de mdulos donde se encuentra almacenado el
resultado. Y con los bits b 1b 0a1a0 ya se determina la posicin de ROM que se va a leer.
a0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
r2
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
bits utilizados
2 5 x5
25 5
5
100 =
100 = 8 100 = 100 = 62. 5%
4
bits totales
4(2 x4)
2
8
Una forma de mejorar el aprovechamiento sera fijarse en la tabla de contenidos de cada uno de los 4
mdulos del apartado b). En ella se observa que slo en dos casos el bit p4 es 1, y son cuando se
multiplica 6x3=18 y cuando se multiplica 7 x 3=21. La funcin lgica del bit p 4 es:
p 4 = b 2b1b 0 a1a 0 + b2 b1b 0 a1 a 0 = b 2b1a 1a 0
Que puede generarse fcilmente con una puerta AND. Con lo que slo se necesitaran 2 mdulos de ROM
con un aprovechamiento R=100 %.
Y finalmente pasar cada cifra de S10 de decimal a binario con lo que se obtiene la suma en BCD SBCD
S10= 563 S BCD = 0101 0110 0011
si = xi y i ci 1
ci = x i y i + ( x i yi ) ci 1
Para el caso i=1 se obtiene:
s1 = x1 y1 c 0
c1 = x1 y1 + ( x1 y1 ) c0
Mientras que para el caso i=0 se obtiene
s0 = x0 y 0 c1
c1 = x0 y 0 + ( x0 y0 ) c1
Afirmacin II: Por el mismo razonamiento de la solucin del problema 4.6, se necesitaran nm=43= 12
puertas AND y (n(m-1))=(4(3-1))= 8 sumadores binarios completos. Luego la afirmacin II es verdadera.
Multiplicador binario XY
X de 3 bits, Y de 6 bits
Representados en binario puro sin signo
Utilizando:
n 2 memorias ROM de 64 palabras x 6 bits/palabra.
n 2 sumadores binarios paralelos de 3 bits cada uno.
a) Sea el nmero de 6 bits Y(y 5y 4y 3y 2y 1y 0) y el nmero de 3 bits X(x2x1x0) el producto de ambos nmeros
es un nmero de 9 bits P(p 8p 7p 6p 5p 4p 3p 2p 1p 0). La multiplicacin se puede representar esquemticamente
como se muestra a continuacin.
y5
y4
y3
#
#
#
p 05
p 12
p5
#
#
p 04
p 11
p4
p 03
p 10
p3
p 15
p8
#
#
p 14
p7
p 13
p6
y2
x2
p 02
y1
x1
y0
x0
p 01
p 00
p2
p1
p0
Si se denota como Y1a (y 5y 4y 3) y como Y0 a(y 2y 1y 0), en el esquema anterior se puede observar que:
- Con una ROM (ROM1) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario
Y0 x X=(p 05 p 04 p 03 p 02 p 01 p 00).
- Con otra ROM (ROM2) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario de
Y1 x X=(p 15 p 14 p 13 p 12 p 11 p 10).
- Los bits p 2 p 1 p 0 del producto final son directamente: p 02 p 01 p 00
- Los bits p 5 p 4 p 3 del producto final son la suma de (p 05 p 04 p 03)+ (p 12 p 11 p 10), y adems se generar un bit de
acarreo de salida. Para implementar esta operacin se necesita un sumador binario paralelo de 3 bits
(sumador 1).
- Los bits p 8 p 7 p 6 del producto final son la suma de (p 15 p 14 p 13)+ (0 0 0)+ acarreo de salida del sumador 1, y
adems se generar un bit de acarreo de salida. Para implementar esta operacin se necesita un sumador
binario paralelo de 3 bits (sumador 2).
-Luego el diseo del sumador con los elementos propuestos es el que se muestra en la figura
Y0
X
ROM 1
26 x 6
p 2 p 1 p0
p 05 p04 p03
p12 p 11 p10
p5 p 4 p 3
p8 p7 p 6
Y1
ROM 1
26 x 6
X
p 15 p14 p13
000
M = M n 1 + I n 1 M n 2 + ... + I n 1 I n 2 ..I1 M 0
I = I n 1 I n 2 ...I 1 I 0
m = mn 1 + I n 1 mn 2 + ... + I n 1 I n 2 ..I 1m0
En el caso que se propone n=4,
M = M 3 + I 3 M 2 + I 3 I 2 M 1 + I 3 I 2 I1 M 0
I = I 3 I 2 I 1I 0
m = m3 + I 3 m2 + I 3 I 2 m1 + I 3 I 2 I 1 m0
Por lo tanto:
Afirmacin I: Falsa
Afirmacin II: Falsa
s = x y + xy = x y
c = xy
Por lo tanto:
Afirmacin I: Desarrollando la expresin lgica dada en el enunciado s=
s = ( x + y) xy = ( x + y )( x + y ) = xx + x y + yy + xy = xy + xy = x y
Luego la afirmacin es verdadera.
Afirmacin II: Falsa
SOLUCIN
PROBLEMA
4 - 12
x2x1x0
2
c1c0
y1y0
UAL
S3
S2
S1
S0
6
R
OF
LX
yQ
yi
Si
ci
B) Como x - y = x + (-y), si se dispone de un circuito que calcula la suma de nmeros negativos se puede efectuar la
operacin de restar. En el caso de la representacin de nmeros negativos en complemento a 2 la resta resulta
especialmente sencilla, porque el valor negativo es muy simple de realizar. En efecto, si y = yn-1 yn-2.... y1 y0 es un
nmero entero representado en complemento a 2, entonces -y se calcula directamente: -y = yn-1 yn-2.... y1 y0 + 1.
As pues, para obtener -y a partir de y, se efectan las dos operaciones siguientes:
1) Sustituir todos los bits de y por su complemento (es decir, cambiar 0 1 y 1 0)
2) Sumar 1 al bit menos significativo
Teniendo esto en cuenta, se puede disear fcilmente un nico circuito sumador-restador (ver Figura 98-1-3)
donde la seal de control M gobierna la funcin a realizar:
Si M = 0: S = x + y
Si M = 1: S = x - y
y2
x2
y1 x1
y0 x0
x2 x 1 x 0
c2
c2
SBC
c1
SBC
c0
SBC
y2 y1 y0
Sumador/restador
c-1
S2 S1 S0
S2
S1
S0
C) Este comparador consiste en un circuito con 6 entradas (x2x1x0y2y1y0) y tres salidas (MIm). El mdulo de
memoria ROM necesario tiene que tener un tamao mnimo de 26x3. El contenido de las 16 primeras posiciones de
memoria se muestra en la Tabla 98-1-2.
x2
A5
x1
A4
x0
A3
y2
A2
y1
A1
y0
A0
ROM
x2 x 1 x0
y2 y1 y0
Comparador
64 palabras 3 bits
M
b2
b1
b0
Direccin memoria
(x2 x1 x0 y2 y1 y0)
Contenido
(M I m)
A5 A4 A3 A2 A1 A0
b2 b1 b0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
.....
.....
D) En la Figura 98-1-5 se muestra el diseo de la UAL pedida en el problema donde se han utilizado 4
multiplexores para seleccionar el valor adecuado a colocar en la salida, gobernados por las entradas c1 y c0.
Tambin la entrada de control de la UAL c0 se utiliza para seleccionar la operacin a realizar por el
Sumador/Restador.
x2
x1
x0
y1
y0
x2 x 1 x0
y2 y1 y0
x2 x 1 x0
Comparador
c2
y2 y1 y0
Sumador/restador
S1
S0
S2
0 3
1
2 1
MUX
0 3
1
2
1
MUX
0 3
1
2
1
MUX
0 3
1
2 1
MUX
c0
c1
S3
S2
S1
3UR
E
OP
D
H
S0
Por otro lado dichas secuencias de arrastre se propagarn hasta que xi=y i=0. En la Figura inferior se puede
observar como la longitud mxima de las secuencias de arrastre es 6.
6
+
1 0 0 1 0 1 0 1 0 0 1 0 0 1 1
0 0 1 0 1 0 1 1 0 1 0 1 0 1 1
1
10
SOLUCIN
PROBLEMA
4 - 16
3UR
E
OP
D
H
Se desea construir un sumador binario con aceleracin de arrastres (SBAA) para 2 nmeros binarios X e Y de 3
bits cada uno. Para ello, el diseo se realizar siguiendo los siguientes pasos:
A) (1.5 puntos) La figura de la izquierda muestra un sumador binario completo modificado (SBC
modificado) con dos entradas de datos xi e yi y un acarreo de entrada ci-1. Exprese la funcin lgica de
sus cuatro salidas: si (suma), ci (acarreo de salida), gi (generacin de acarreo) y pi (propagacin de
acarreo). A partir de estas funciones lgicas, y empleando nicamente puertas lgicas, disee este SBC
modificado.
B) (1.5 puntos) La figura central muestra un circuito de aceleracin de arrastres (CAA) de 3 bits con tres
entradas de generacin de acarreo gi, tres entradas de propagacin de acarreo pi y un acarreo de entrada
c-1. Exprese las funciones lgicas de los acarreos c2, c1 y c0 generados por este mdulo. A partir de
estas funciones lgicas, y empleando nicamente puertas lgicas, disee este CAA.
C) (1 punto) Utilizando nicamente 3 SBC modificados como los diseados en A) y el CAA diseado en
B), construya razonadamente el sumador binario con aceleracin de arrastre de 3 bits (SBAA)
solicitado en el enunciado y mostrado en la figura de la derecha.
xi
ci
SBC
modificado
si
g2
yi
gi
p2
ci-1
pi
g1
p1
g0
p0
c-1
CAA
c2
c1
x2
y2
c2
c0
s2
6RO
X
F
y
QL
A) Las expresiones que vamos a utilizar para implementar el SBC modificado son:
g i = xi y i
Si = xi yi ci-1 = pi ci-1
ci = xi yi + (xi yi) ci-1 = gi + pi ci-1
y el circuito correspondiente es el mostrado en la Figura 98-3-2.
y1
x0
y0
c-1
SBAA
de 3 bits
p i = xi y i
x1
s1
s0
ci-1
yi xi
yi
xi
ci
SBC
modificado
ci-1
si gi pi
gi
ci
si
pi
B) Para construir las expresiones de c2, c1 y c0 generados por este mdulo a partir de las entradas de generacin de
acarreo gi (i=1,2,3), las entradas de propagacin de acarreo pi (i=1,2,3) y el acarreo de entrada c-1, se comienza por
la expresin de c0 y luego se va sustituyendo su valor en las siguientes.
c0 = g0 + p0
c-1
c1 = g1 + p1
c2 = g2 + p2
p2
g2
p1
g1
p0
g0
p2 g2
p1 g1
p0 g0
c-1
c-1
CAA
c2
c2
c1
c1
c0
c0
x2
c2
y2
x1
c1
SBC
x0
c0
SBC
Modificado
Modificado
g2 p2
y0
SBC
Modificado
s1
c2
g0 p0
g1 p1
c1
s2
y1
c0
s0
CAA
y2 x2
c2
y1 x1
y0 x0
c-1
SBAA
s2
s1
s0
c-1
Afirmacin I: La capacidad total de los mdulos ROM disponible es C=4(28 x 16). Como C<CT, la
afirmacin es FALSA.
Afirmacin II: La capacidad total de los mdulos ROM disponible es C=6(28 x 16) s. Como C<CT, la
afirmacin es FALSA.
11
g 2 + p2 g1 + p2 p1 g 0 + p 2 p1 p0 c1
que de acuerdo con la expresin general se corresponde con c2, luego la respuesta correcta es la B.
12
y.
13
SOLUCIN
PROBLEMA
4 - 26
6
R
OF
LX
yQ
a) Para comparar X e Y es necesario comparar cada bit de uno de ellos con el bit de igual peso del otro. Para
hacer estas comparaciones utilizamos los comparadores de 1 bit propuestos. Si el resultado de la comparacin de xi
e yi es: Mi, Ii y mi, se cumple que:
Mi =1 si xi > yi
Ii =1 si xi = yi
mi =1 si xi < yi
A partir de Mi, Ii y mi se generan las salidas M, I y m del comparador de 2 bits mediante las siguientes
funciones booleanas:
M = M1 + I 1 M0
I = I1 I0
m = m1 + I1 m0
La explicacin de estas expresiones es inmediata:
x1
x>y
M1
x=y
I1
y1
x0
x<y
x>y
m1
M0
y0
x=y
I0
x<y
m0
x 1 x0
y1 y0
Comparador
b) Para calcular el tamao de la memoria ROM necesaria hay que saber el nmero entradas y salidas del
circuito.
Entradas. Este circuito tiene 5 entradas: 2 para la entrada de datos X (x1x0), 2 para la entrada de datos
Y (y1y0) y una entrada de control (c) para la seleccin de la operacin a realizar por el circuito. Esta
ltima entrada de control va a tener el siguiente significado:
c = 0: Suma
c = 1: Producto
Salidas: Este circuito tiene 4 salidas. El resultado de la suma de dos nmeros de dos bits tiene tan slo
3 bits pero, para el resultado del producto de dos nmeros de dos bits se requieren 4 bits. Como el
circuito a disear tiene que poder hacer ambas operaciones, su salida ha de tener, necesariamente, 4 bits.
Por tanto, el tamao de la memoria ROM necesario para implementar el sumador es de: 25 palabras 4
bits/palabra. El significado de cada una de sus entradas y salidas se muestra claramente en la Figura 2000-2-3.
Finalmente, en la Tabla 2000-2-2 se muestra el contenido que debera tener la memoria ROM.
A4
x1
A3
x0
A2
y1
A1
y0
A0
ROM
x 1 x0
y1 y0
Sumador / Multiplicador
32 palabras 4 bits
b3
b2
b1
b3
b2
b1
b0
b0
Direccin memoria
c x1 x0 y1 y0
Contenido
Direccin memoria
c x1 x0 y1 y0
Contenido
A4 A3 A2 A1 A0
b3 b2 b1 b0
A4 A3 A2 A1 A0
b3 b2 b1 b0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
c) En la Figura 2000-2-4 se muestra el diseo de la UAL pedida en el problema donde se han utilizado 4
multiplexores para seleccionar el valor adecuado a colocar en la salida, gobernados por las entradas de control c1 y
c0. Tambin la entrada de control de la UAL c0 se utiliza para seleccionar la operacin a realizar por el
Sumador/Multiplicador.
x1
x0
y1
y0
x 1 x0
y1 y0
x 1 x0
Comparador
b3
y1 y0
Sumador/Multiplicador
b2
b1
b0
0 3
1
2 1
MUX
0 3
1
2
1
MUX
0 3
1
2
1
MUX
0 3
1
2 1
MUX
c0
c1
r3
r2
r1
r0
ROM
216x8
ed
ei
d1
d2
1
1
1
ROM
216x8
R
8
H
C
1
14
Con el inversor se utiliza para habilitar uno de los dos mdulos de memoria ROM, de acuerdo con el valor
de la seal C=1(Comparador) y C=0 (Desplazador). Se tiene por tanto el esquema que se muestra en la
Figura
La afirmacin I es VERDADERA
Afirmacin II: La memoria total de la ROM que proponen es inferior a CT, luego la afirmacin es FALSA.
E1 = x1 y1 c0
E2 = x1 y1 + ( x1 y1 ) c0
Es decir, E1 y E2 son respectivamente S1 y C1. Luego la respuesta correcta es la A
15
16
M = M n 1 + I n 1 M n 2 + ... + I n 1 I n 2 ..I1 M 0
I = I n 1 I n 2 ...I 1 I 0
m = mn 1 + I n 1 mn 2 + ... + I n 1 I n 2 ..I 1m0
En el caso que se propone n=5, ya que el nmero Y de cuatro bits se puede considerar que tiene 5 bits
suponiendo y 4=0, luego
M = M 4 + I 4 M 3 + I 4 I 3M 2 + I 4 I 3 I 2 M 1 + I 4 I 3 I 2 I 1M 0
I = I4 I3 I 2 I1 I0
Puesto que M 4 e I4 son:
M 4 = x4 y 4
I 4 = x 4 y 4 + x4 y 4
y adems y 4=0, entonces:
M 4 = x4
I 4 = x4
Luego
M = x4 + x4 M 3 + x 4 I 3 M 2 + x4 I 3 I 2 M 1 + x 4 I 3 I 2 I 1 M 0
I = x 4 I 3 I 2 I 1I 0
En la expresin de M,
Afirmacin I: Verdadera
Afirmacin II: Verdadera
17
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
De la Tabla
D(t)
Solucin A
Solucin B
Solucin C
D (t ) = Q xy + Q x y
D ( t ) = Q ( y + x ) + x y
D ( t ) = Q x y
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
Luego la respuesta correcta es la B), ya que es la nica que genera una D(t) igual a la indicada en el
enunciado (columna 2).
Una misma funcin lgica puede expresarse de mltiples maneras, todas ellas equivalentes entre s. Como
se deduce a continuacin, en este caso la solucin B) coincide con la expresin simplificada de la funcin
de entrada al elemento de memoria, D(t)=Q(t+1).
18
FORMA 2:
Otra forma alternativa de hacer este problema es obteniendo la funcin lgica D(t) a partir del mtodo de
reduccin de Karnough. tal y como se muestra en la siguiente figura:
Q \ xy
00
01
11
10
D(t ) = Q y + Qx + x y = Q( y + x ) + x y
Atencin!!: El que la expresin simplificada obtenida por el mtodo de Karnough sea igual a la expresin
B) es condicin suficiente para afirmar que la solucin correcta es la B), sin embargo no es una condicin
necesaria, ya que al plantear el enunciado del ejercicio, podra haberse sustituido la expresin B) por
cualquier otra de sus formas equivalentes como por ejemplo:
D(t ) = Q y ( x + x ) + Q x + x y = Q y x + Q y x + Qx + x y
19
SOLUCIN
PROBLEMA
4 - 37
C2
C1
Paralelo/
Paralelo
S3 S2 S1 S0
C2
CK
Serie/Serie
C1
CK
Operacin
C2
C1
NOP
LICS
LDCS
CARGA
Solucin
Para resolver este problema conviene ver las pginas 255 y ss. del texto base de teora, as como los
problemas 4-37 y 4-38 de la primera edicin del libro de problemas o los problemas 4-39 y 4-40 de la segunda
edicin.
A) Las dos operaciones de desplamiento a realizar por el registro de desplazamiento son LICS
(Lgico-Izquierda- Cerrado-Simple) y LDCS (Lgico-Derecha-Cerrado-Simple). La Figura 2 muestra
estos dos tipos de desplazamientos para un registro de 4 bits como el que pide disear el enunciado del
problema.
LDCS
LICS
Q(t )
(Q , Q , Q , Q )
Q(t + 1) = 2 1 0 3
(Q0 , Q3 , Q2 , Q1 )
( E 3, E 2, E1, E 0)
si Control = NOP
si Control = LICS
si Control = LDCS
si Control = CARGA
donde Q(t) representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t. Anlogamente Q(t +1)
representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t+1.
Para disear el registro se van a utilizar 4 biestables tipo D. En la entrada de cada uno de estos 4 biestables se
coloca un multiplexor que, en funcin de las seales de control C1 y C2 del registro, seleccione el valor adecuado a
introducir en cada registro para que se comporte segn la descripcin mencionada antes. El resultado del diseo se
muestra en la Figura 3.
E3
E2
C1
C2
E1
3 2 1 0
MUX
3 2 1 0
MUX
3 2 1 0
MUX
E0
E3 E2 E1 E0
3 2 1 0
MUX
C2
Paralelo/
Paralelo
C1
Reloj
D
Q3
S3
D
Q2
D
Q1
D
Q0
S2
S1
S0
CK
S3 S2 S1 S0
B) En este segundo apartado, el enunciado pide disear el mismo registro de antes, con desplazamientos LDCS
y LICS, pero con entrada serie / salida serie. Ni en el mdulo de la Figura 1 ni el enunciado se menciona en
qu bit se comienza la carga serie, ni en qu bit se efecta la lectura serie. Siguiendo el criterio del libro de
texto, para resolver este problema se supone que se sigue el esquema de la Figura 4 para estas operaciones.
.
Q
Reloj
Cargar
Q3
Q2
Q1
Q0
Por tanto, la descripcin del comportamiento del estado del circuito es la siguiente:
Q (t )
(Q , Q , Q , Q )
Q (t + 1) = 2 1 0 3
(Q0 , Q3 , Q2 , Q1 )
( E , Q3 , Q2 , Q1 )
si Control = NOP
si Control = LICS
si Control = LDCS
si Control = CARGA
Haciendo las modificaciones oportunas en el diseo de la Figura 3 para contemplar los cambios pedidos, el
resultado se muestra en la Figura 5.
3 2 1 0
MUX
3 2 1 0
MUX
C1
C2
3 2 1 0
MUX
3 2 1 0
MUX
C2
Reloj
D
Q3
D
Q2
D
Q1
Serie/Serie
C1
CK
D
Q0
C) En este ltimo caso, se va a suponer que la codificacin de las entradas de control es la mostrada en la Tabla
2. En la Figura 6 se muestra la representacin grfica de los dos tipos de desplazamientos solicitados en este
apartado, AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico- Derecha - Cerrado Simple), para un registro de 4 bits.
Operacin
C2
C1
NOP
AICS
ADCS
CARGA
S
ADCS
AICS
Por tanto, la descripcin en este caso del comportamiento de la salida del circuito es la siguiente:
Q(t )
(Q , Q , Q , Q )
Q(t + 1) = 3 1 0 2
(Q3 , Q0 , Q2 , Q1 )
( E 3, E 2, E1, E 0)
si Control = NOP
si Control = AICS
si Control = ADCS
si Control = CARGA
C1
C2
E2
E1
3 2 1 0
MUX
3 2 1 0
MUX
3 2 1 0
MUX
3 2 1 0
MUX
E0
E3 E2 E1 E0
C2
C1
Paralelo/
Paralelo
Reloj
D
Q3
S3
D
Q2
D
Q1
D
Q0
S2
S1
S0
S3 S2 S1 S0
CK
N=
20
ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II
Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
Solucin problemas.
CONTENIDO
SOLUCION PROBLEMA 5.1........................................................................................................................................ 3
SOLUCION PROBLEMA 5.2........................................................................................................................................ 4
SOLUCION PROBLEMA 5.3........................................................................................................................................ 5
SOLUCION PROBLEMA 5.4...................................................................................................................................... 14
SOLUCION PROBLEMA 5.5...................................................................................................................................... 15
SOLUCION PROBLEMA 5.6...................................................................................................................................... 15
SOLUCION PROBLEMA 5.7...................................................................................................................................... 16
SOLUCION PROBLEMA 5.8...................................................................................................................................... 16
SOLUCION PROBLEMA 5.9...................................................................................................................................... 17
SOLUCION PROBLEMA 5.10.................................................................................................................................... 17
SOLUCION PROBLEMA 5.11.................................................................................................................................... 17
SOLUCION PROBLEMA 5.12.................................................................................................................................... 18
SOLUCION PROBLEMA 5.13.................................................................................................................................... 18
SOLUCION PROBLEMA 5.14.................................................................................................................................... 19
SOLUCION PROBLEMA 5.15.................................................................................................................................... 19
SOLUCION PROBLEMA 5.16.................................................................................................................................... 19
SOLUCION PROBLEMA 5.17.................................................................................................................................... 20
Solucin problemas
Solucin problemas
n bits
MUX(4)
q
6
ROM
37 bits
26 x
2
log2 q
2
5
n
m=30
Solucin problemas
Solucin problemas
8
BUS
Reloj
0
c0
c1
MUX
MUX
CONT
c2
c3
0
0
ED
EI
0
1
c4
c5
0
0
UAL
ED
EI
0
1
c9
c10
c6
c7
c8
s1 =A0
s0
S0
S1
s0
S2
s0 s1
s0 s1
S3
S4
S5
S6
S7
Solucin problemas
En la Tabla 1 se muestran las microperaciones y las seales de control asociadas a cada estado.
Estado
S0
Microoperaciones
ABus
Seales de Control
S1
BBus,
S2
S3
Cont=0
------AA-B
c1 c6 c 7
c10 c 9
S4
cont=(cont+1)mod8
BA+B
S5
cont=(cont-1)mod8
BusB
S6
BusA
c 0 c 4 c5
---------
c8 c 0 c 4 c5
c10 c 9
c8 c1 c 6 c7
c10 c 9
c3
c2
S7
Parar
---------Tabla 1 : Microperaciones y seales de control asociadas a cada estado
Una vez definido el diagrama de estados y las microoperaciones y seales de control asociadas con cada
estado estamos en condiciones de disear la Unidad de Control mediante la tcnica de los elementos de
retardo, esta tcnica tambin es conocida como diseo con un elemento de memoria por estado.
Utilizando est tcnica la implementacin de la Unidad de Control es inmediata. Se debe observar
atentamente el diagrama de estado de la Figura 2. Los pasos a seguir son :
1) Asignar un elemento de memoria (biestable) tipo D a cada estado. Como tenemos 8 estados se utilizaran
8 elementos de memoria tipo D
2) Si un estado recibe entradas de ms de un estado se debe utilizar una puerta OR. As el estado S2, recibe
entradas del estado S1, del estado S3 y del estado S4 por lo que debe utilizarse una puerta OR de tres
entradas. Por otro lado el estado S7, recibe entrada del estado S6 y del propio estado S7, por lo que se debe
utilizar una puerta OR de 2 entradas.
3) Si un estado tiene salidas hacia ms de un estado, se debe utilizar un elemento demultiplexor que tenga
como seales de seleccin las seales de condicin que regulan la transicin desde ese estado hacia los
otros estados. En nuestro problema se observa que en el estado S2, dependiendo del valor de las seales
de condicin s 0 y s 1, se pasa al estado S3(si s 0=0 y s 1=0), al estado S4 (si s0=0 y s1=1) o al estado S5(si s0=1
independientemente del valor de s 1), por lo que se utilizar un demultiplexor con 2 seales de seleccin (s 0
y s 1) y 4 salidas( salida 0 hacia S3, salida 1 hacia S4 y salida 2 y 3 hacia S5).
4) La salida de cada elemento de memoria, debe llevar rotuladas las seales de control que va activar y que
sern las correspondientes al estado al que est asignado el elemento de memoria. En nuestro problema las
seales de control asignadas en cada estado son las que se muestran en la Tabla 1.
5) El elemento de memoria asignado al estado S0, debe poseer una entrada asincrona (SET) de puesta a 1,
mientras que los restantes estados deben poseer una entrada asincrona(CLEAR) de puesta a 0. Todos los
elementos de memoria tienen una entrada sncrona (CK) para la seal de reloj.
La Unidad de Control diseada se muestra en la Figura 3. Expliquemos el funcionamiento de esta Unidad
de Control. Inicialmente se activa la seal asncrona de SET del elemento de memoria asignado al estado S0
y la seal asncrona de CLEAR de los restantes elementos de memoria, as el elemento de memoria
asignado a S0 contendr un 1, mientras que los restantes elementos de memoria contendrn un 0. Este 1 se
va a ir propagando por los diferentes elementos de memoria de acuerdo al diagrama de la Figura 2, en cada
ciclo de reloj, de tal forma que en un instante de tiempo determinado solamente habr un estado activo, es
decir un elemento de memoria conteniendo un 1 los restantes elementos de memoria contendrn el valor 0
S0
Solucin problemas
SET
c0 c4 c5
S1
c1c6 c7c10c9
S2
s0
s1
0 1 2 3
S3
c8c0c4c5c10c9
S4
c8c1c6c7c10c9
S5
c3
S6
c2
CK
S7
CLEAR
Solucin problemas
Q1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Q0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
s0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
s1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Prximo
Estado
Q2 Q1 Q0 c10 c9
c8
c7
c6
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
Tabla 2 : Contenido de la memoria ROM
c5
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
c4
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
c3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
c2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
c1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
c0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
A4 A3 A2
Solucin problemas
ROM
25 x 14
A1 A0
Seales de
condicin
Q(t+1)
Registro
Q(t)
Seales de
control
11
S0
S1
s0
S2
S6
S7
S8
s0
S4
s1
S3
s1
S5
10
Direccin de la ROM
A4A3A2A1A0
Q3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
Q2
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
Q1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
Cond
Estado actual
Q0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
s
0
1
0
1
0(s 0)
1(s 0)
0(s 1)
1(s 1)
0
1
0
1
0
1
0
1
0
1
Solucin problemas
Prximo
Estado
Q3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
Q2
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
Tabla 3
Seales de control
Q1 Q0 c10 c9 c8
c7
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
: Contenido de la memoria ROM
c6
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
c5
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
c4
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
c3
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
c2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
c1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
Comentario : Puesto que se tienen 9 estados se han utilizado 4 bits para codificarlos, lo que deja el rango
de direcciones 10010 hasta 11111 sin ser utilizado
MUX(16)
0
0
s0
s1
A4 A3 A2 A1
0
0
0
0
0
0
0
0
0
0
0
0
ROM
4
1
25 x 15
A0
Seal de
condicin
Q(t+1)
Registro
Q(t)
11
Figura 6 : Diseo de la Unidad de Control con una memoria ROM, un registro y un multiplexor por
seleccin de estado
Comentario : El multiplexor al tener 4 seales de seleccin (Q3, Q2, Q1, Q0), tiene 16 entradas disponibles
MUX(16). La entrada 2 se debe conectar a la seal de condicin s 0 y la entrada 3 a la seal de condicin s1.
EL resto de entradas se conectan al valor 0.
11
c0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
Solucin problemas
Cond
Prximo
Estado
Seales de control
Q3 Q2 Q1 Q0
s
p 15
Q3 Q2 Q1 Q0 c10 c9 c8 c7 c6 c5 c4 c3 c2
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0(s 0)
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0(s 0)
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0 0(s 0) 1(s 1)
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0 1(s 0)
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1 0(s 1)
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1 1(s 1)
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0(s 0)
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0(s 0)
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0(s 0)
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0(s 0)
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
Tabla 4 : Contenido de la memoria ROM (Cond : seal de condicin. sel MUX : seleccin multiplexor)
Comentario : Puesto que se tienen 9 estados se han utilizado 4 bits para codificarlos, lo que deja el rango
de direcciones 10010 hasta 11111 sin ser utilizado.
Comentario : El bit p15 va a ser la seal de seleccin del multiplexor, se define conjuntamente con el
prximo estado. As si nos fijamos en la Tabla 4, se puede ver que p15=0 cuando el prximo estado es S2,
de tal forma que la seal de condicin que utiliza es la s0, que ha sido conectada a la entrada 0 del
multiplexor. Por otro lado, p 15=1 cuando el prximo estado es S3, de tal forma que la seal de condicin que
utiliza es la s 1, que ha sido conectada a la entrada 1 del multiplexor
12
c1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
c0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
Solucin problemas
MUX(2)
s0
s1
0
1
1
Seal de
condicin
A4 A3 A 2 A 1
ROM
2 5 x 16 bits
A0
4
Q(t+1)
1
p 15
1
11 Seales de control
Q(t)
Figura 7 : Diseo de la Unidad de Control con una memoria ROM, un registro y un multiplexor de
seleccin por campo
Comentario : El multiplexor tiene log22=1 seal de seleccin y 2 entradas disponibles MUX(2). La entrada
0 se debe conectar a la seal de condicin s 0 y la entrada 1 a la seal de condicin s 1.
Comentario : Indicar que para disear la Unidad de Control, con el diagrama de estados de la Figura 5,
utilizando nicamente una ROM y un registro. La capacidad de la ROM necesaria sera 24+2
palabras+(11+4) bits/palabras. Que es claramente mayor a las dos propuestas anteriores..
13
Solucin problemas
14
Solucin problemas
El registro tiene que almacenar las variables de estado luego debe de tener una capacidad de n=5 bits.
El multiplexor al ser del tipo de seleccin por estado, tiene 25 entradas y requiere de 5 seales de
seleccin. Es decir es un MUX 32 :1.
La respuesta correcta es la A.
15
SOLUCIN
PROBLEMA
5-5
3
U
R
OH
P
D
E
6
R
OF
LX
yQ
a) A la vista del algoritmo propuesto, la Unidad de Control ha de tener dos registros A y B. Se debe poder
cargar el registro A bien desde el bus o bien desde la UAL; slo es necesario poder cargar el registro B desde el
bus. Ambos registros deben poder enviar su contenido a la UAL para realizar operaciones aritmticas con ellos. El
ciclo while se controlar mediante el valor del registro A y el bucle if mediante un contador mdulo-8.
La Figura 99-2-2 muestra el diagrama de una posible Unidad de Procesamiento que cumple todos los
requisitos. La carga del registro A se realiza a travs de un multiplexor que selecciona el bus o la salida de la UAL.
Los registros A y B se vuelcan al bus a travs de puertas triestado que evitan posibles conflictos elctricos. Las
entradas ED y EI de los registros no se utilizan en este problema.
La seal de condicin s0 indica A128, lo que implica que el bit ms significativo de A (A7) sea 1. La seal de
condicin s1 indica CONT4, lo que implica que el bit ms significativo de CONT (CONT2) sea 1.
La salida de CONT es de 3 bits. Por este motivo, para introducir CONT en la UAL, hay que completarlo con 5
ceros en las posiciones ms significativas:
0 0 0 0 0 CONT2 CONT1 CONT0
8 BUS
C9
0 MUX 1
C0
CK
ED
C10
C1
0
A
C2
EI
CK
ED
0
B
1
EI
CONT
C3
0
1
C4
C7
C6
3
CK
8
0
5
8
1
0 MUX 1
C8
s0(=A7)
1
s1(=CONT2)
C5
UAL
Seales de Control
C0
Operacin
C1, C2
C3, C4
C5
C6, C7
C8
Seales de Control
Operacin
C9
A BUS
C10
B BUS
Tabla 99-2-1: Significado de las seales de control
Estado
Microoperaciones
Seales de control
S0
A BUS
C0, C1, C2
S1
B BUS
CONT = 0
C3, C4
C6, C7
S2
------
------
S3
------
------
S4
A A + CONT
S5
AB+A
S6
C6, C7
S7
BUS B
C10
S8
BUS A
C9
S9
(Parar)
Tabla 99-2-2: Significado de los estados
------
S0
S1
s0
S2
s0
s1
S3
s1
S4
S5
S6
S7
S8
S9
La tabla de transicin de estados corespondiente para una Unidad de Control basada en un registro de
desplazamiento se muestra en la Tabla 99-2-3. La codificacin de los estados se ha realizado procurando
minimizar el nmero de cargas en paralelo del registro. La Tabla 99-2-4 est ms detallada, y tiene en cuenta la
codificacin de los estados.
Estado
Cdigo
Condicin
S0
0 0 0 0 (0)
---
S1
1 0 0 0 (8)
S2
Transicin
Operacin
ED
S 0 S1
DD
---
S 1 S2
DD
1 1 0 0 (12)
s0
s0
S2 S3
S2 S7
DD
L
1
-
S3
1 1 1 0 (14)
s1
s1
S3 S4
S3 S5
DD
L
1
-
S4
1 1 1 1 (15)
---
S4 S6
S5
0 1 0 1 (5)
---
S 5 S6
DD
S6
1 0 1 0 (10)
---
S6 S2
S7
0 1 1 1 (7)
---
S 7 S8
DD
S8
1 0 1 1 (11)
---
S8 S9
DD
S9
1 1 0 1 (13)
---
S9 S9
---
Estado
Condicin
Prximo
estado
w1 w0
E3 E2 E1 E0
Operacin
ED
S0 = 0 0 0 0 (0)
---
S1 = 1 0 0 0
01
-----
DD
C0, C1, C2
S1 = 1 0 0 0 (8)
---
S2 = 1 1 0 0
01
-----
DD
S2 = 1 1 0 0 (12)
s0
s0
S3 = 1 1 1 0
S7 = 0 1 1 1
01
11
----0111
DD
L
1
-
------
S. de control
Tabla 99-2-4: Tabla de transicin de estados teniendo en cuenta la codificacin de los mismos
Estado
Condicin
Prximo
estado
w1 w 0
E3 E2 E1 E0
Operacin
ED
S. de control
S3 = 1 1 1 0 (14)
s1
s1
S4 = 1 1 1 1
S5 = 0 1 0 1
01
11
----0101
DD
L
1
-
------
S4 = 1 1 1 1 (15)
---
S6 = 1 0 1 0
11
1010
S5 = 0 1 0 1 (5)
---
S6 = 1 0 1 0
01
-----
DD
S6 = 1 0 1 0 (10)
---
S2 = 1 1 0 0
11
1100
C6, C7
S7 = 0 1 1 1 (7)
---
S8 = 1 0 1 1
01
-----
DD
C10
S8 = 1 0 1 1 (11)
---
S9 = 1 1 0 1
01
-----
DD
C9
S9 = 1 1 0 1 (13)
---
S9 = 1 1 0 1
00
-----
---
------
Tabla 99-2-4: Tabla de transicin de estados teniendo en cuenta la codificacin de los mismos
El esquema de la Unidad de Control se muestra en la Figura 99-2-4. Las expresiones lgicas de sus entradas
se obtienen de la Tabla 99-2-4:
w1 = S2s0 + S3s1 + S4 + S6
w2 = S9
E3 = S4 + S6
E2 = S2s0 + S3s1 + S6
E1 = S2s0 + S4
E0 = S2s0 + S3s1
Estas expresiones se implememtan fcilmente en la Unidad de Control (Figura 99-2-4) mediante puertas
lgicas. La entrada ED del registro est fija a 1 y la entrada EI no se utiliza.
3
2
1
0
1
2
3
4
ED
>
EI
CK
Q3 Q2 Q 1 Q0
w0
Reg. Desp.
w1
E3 E2 E 1 E 0
Decodificador
6
7
8
S7 (C10)
S1 (C3, C4, C6, C7)
9
11
S6 (C6, C7)
S8 (C9)
12
S2 (---)
13
S9 (---)
S3 (---)
S4 (C0, C1, C2, C5, C8)
10
14
15
Figura 99-2-4: Unidad de Control mediante un registro de desplazamiento (faltan por implementar las seales Ei y wi)
3U
RE
OH
P
D
Solucin problemas
16
Solucin problemas
Lo que es equivalente a desplazar el nmero binario un bit hacia la derecha perdindose el contenido del
bit menos significativo.
Ejemplos:
El nmero 410= (0100)2 al dividirlo por 2 se debe desplazar un bit hacia la derecha se obtiene (0010)2= 210=
410/ 210.
El nmero 310= (0011)2 al dividirlo por 2 se debe desplazar un bit hacia la derecha se obtiene (0001)2= 110=
410/ 310. Es una divisin entera.
17
Solucin problemas
En este diseo segn lo estudiado en teora, se necesitar un multiplexor con 2h= 24=16 entradas de las
cuales slo se utilizan 9 una para cada seal de condicin. el resto se conectan a 0.
Luego la respuesta es 16 entradas de datos.
18
Solucin problemas
Afirmacin I:
Se tiene una Unidad de Control diseada con Memoria ROM + registro + multiplexor de seleccin por
estado. La Capacidad de la ROM es:
C=2n+1 palabras x (n+m) bits/palabras
Luego sustituyendo valores se tiene:
C=28251 bits = (28251210)/210=(251/4) Kbits
Luego el coste es $=(215/4) Kbits 10 ptas/Kbits = 2150/4= 627.5 ptas.
Luego la afirmacin es FALSA.
Afirmacin II:
Se tiene una Unidad de Control diseada con Memoria ROM + registro + multiplexor de seleccin por
campo. La Capacidad de la ROM es:
C=2n+1 palabras x (h+ n+m) bits/palabras
Luego sustituyendo valores se tiene:
C=28(5+7+244)= 28 256 bits = 28 28=216=26210=64 Kbits
Luego el coste es $=64 Kbits 10 ptas/Kbits = 640 ptas.
Luego la afirmacin es VERDADERA.
19
Solucin problemas
20
SOLUCIN
PROBLEMA
5-9
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
B Bus;
for Cont = 0 to 7 do
if Cont es par then
A + ; / 2
else
B ; 2
endif
endfor
Bus A;
Bus ;
Parar;
Ck
c0
ED
Reg. Desp.
EI
c1
UAL
R
Ck
c0
Contador
Q
c0
c0
c1
S
6
R
OF
LX
yQ
Los registros A y Bpueden cargar valores desde el bus del sistema o desde la salida de la UAL.Un
multiplexor a al entrada de cada uno de estos registros permite seleccionar qu dato es el que se va a
cargar.
Los registros A y Bpueden volcar sus valores en el bus mediante sendos circuitos triestado de conexin
unidireccional con control de 8 bits.
A partir del valor del contador se generan dos condiciones cuyo valor puede ser consultado por la
Unidad de Control en cualquier instante:
so:
es la suma lgica de todos los bits del sumador. Su valor es cero cuando el contador est a cero.
s1:
es el bit menos significativo del contador. Suvalor es 0 cuando el contador tiene valor par, y es
1 cuando el contador tiene valor impar.
Bus
c5
c8
c7
MUX
c
Reg. des. c01
ED
MUX
c1
c2
c
Reg. des. c01
EI
c3
c4
c0
c1
Contador
2
c6
1 0
UAL
B c0
c0
c9
c10
s1(=1 Contador es impar)
s0(=0 Contador es 0)
Inicio
Fin
Reloj
Circuito
Unidad de
Procesamiento
c0
c1
de
Control
c10
Unidad de
Control
Seal de Control
c0
Operacincontrolada
Control de la UAL: Suma (0) y Resta (1),
c2 y c1
Control registro A: Nada (00), Des. Dcha.(01), Des. Izq. (10) y Carga (11)
c4 y c3
Control registro B: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)
c5
c6
c7
Puerta triestado que conecta la salida de A con el Bus: Nada (0) y Conexin (1)
c8
Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexin (1)
c10 y c9
s0
Inicio
s1
S0
S1
S2
S5
S4
s0
S8
S3
s1
S7
S6
s0
s0
Figura 98-2-3: Diagrama de estados de la Unidad de Control
S9
S10
Estadode la Unidad
de Control
S0
S1
S2
S3
S4
S5
S6
Microoperaciones
efectuadas
Ninguna
A Bus
Seales de control
a activar
Ninguna
Reset Cont
B Bus
c 3, c4, c6
Ninguna
A A+ B
Incrementar Cont
Ninguna
Desplazar Derecha A
B B- A
(c 2=0), c1
Incrementar Cont
S8
Desplazar Izquierda B
Bus A
S9
Bus B
c8
S10
Ninguna
Ninguna
S7
c 4, (c3=0)
c7
Para implementar esta Unidad de Control vamos a emplear el mtodo de los elementos de retardo. El diseo
correspondiente se muestra en la Figura 98-2-4.
Inicio=0
Set
S0
S0
Inicio
Inicio=1
S1
S1
c1, c2, c5, c9
S2
c3, c4, c6
S2
s1
s1= 1
S3
S3
s1= 0
S4
S4
s0= 1
S5
c1
s0
S5
s0= 0
s0= 1
S6
S6
S7
c4
s0
S7
s0= 0
S8
S8
c7
S9
S9
S10
c8
S10
Reloj
Clear
SOLUCIN
PROBLEMA
5 - 10
4:
5:
6:
7:
8:
9:
10:
11:
C Bus
for Contador = 0to 7 do
begin
if C(0) C(1) then A A / B
else A A + B endif
Desplazar derecha (C)
end
Parar;
Reg. despl.
A
c0
c1
UAL
c0
c1
c0
c1
Contador
c1c0
c1c0
c1c0
00
Nada
00
A+B
00
Q(t)
01
Carga
01
A-B
01
10
Desp. Dcha
10
A*B
10
Q(t)+1 mod 8
11
Nada
11
A/B
11
Q(t)
Solucin
A) Antes de proponer un diseo para la Unidad de Procesamiento hagamos
unas consideraciones previas sobre los requerimientos del algoritmo. La
Unidad de Procesamiento tiene que resolver cada uno de estos
requerimientos.
El registro A tiene que poder recibir informacin desde el bus y desde la
salida de la UAL. Al llegarle informacin desde dos lugares distintos es
necesario colocar un multiplexor en la entrada para seleccionar cul de
los dos debe ser cargado en el registro. Tambin el registro A debe
entregar su contenido a la UAL.
Al registro B le llega informacin del Bus y entrega su contenido a la
UAL.
El registro C recibe informacin desde el Bus y el algoritmo necesita
consultar el valor de sus dos bits menos significativos para comprobar si
son iguales o distintos. Esta condicin la generaremos mediante la
funcin lgica C(0) C(1).
En el algoritmo hay un bucle que se ejecutar un total de 8 veces. Para
controlar esto se utilizamos el contador mdulo 8 y para detectar el final
de la cuenta hacemos el producto lgico (AND) de sus tres salidas.
Los registros de desplazamiento del enunciando son los nicos
elementos de almacenamiento disponibles, por lo que se utilizarn para
los tres registros: A, B y C. En el caso de A y B no se har uso de la
capacidad de estos registros para realizar desplazamientos. A la hora de
hacer desplazamientos en el registro C hay que introducir un 0, tal y
como exige el enunciado del problema, por lo que habr que fijar su
entrada ED a 0. Con los registros A y B no existe este problema, no se
van a hacer desplazamientos con ellos, y su entrada ED se fija
arbitrariamente a un valor determinado, por ejemplo 0.
Un posible diseo para la Unidad de Procesamiento pedida, teniendo en
cuenta todos estas consideraciones iniciales, puede ser el mostrado en la
Figura 96-3-2.
Sobre este diseo conviene hacer una observacin. Los registros A y B slo
van a utilizar dos valores de sus entradas de control
c1c0
00
Nada
01
Carga
Bus
0
c0
MUX
ED
c
Reg. des. c0
1
c1
0
ED
c
Reg. des. c0
1
c2
0
ED
B c0
c1
UAL
c5
c6
Contado r
c0
c1
c
Reg. des. c0
1
C(1) C(0)
c3
c4
c7
c8
s1
s0= C(0) C(1)
Inicio
Fin
Reloj
Circuito
c0
c1
Unidad de
Procesamiento
de
Control
c8
Unidad de
Control
Para completar este diseo, es necesario hacer una breve descripcin del
significado de cada una de las entradas de control que gobiernan su
funcionamiento (ve rTabla 96-3-1).
Seal de Control
Operacin controlada
c0
c1
c2
c4 y c3
c6 y c5
Control de la UAL: suma (00), resta (01), producto (10) o divisin (11)
c8 y c7
Control del contador: nada (00 y 11), reset (01) o incremento (10)
S1
S2
S3
s0
s0
S6
s1
S5
S8
Estado de la Unidad
de Control
Microoperaciones
efectuadas
Seales de control
a activar
S0
A Bus
contado r 0
c0, c1, c7
S1
B Bus
c2
S2
C Bus
c3
S3
Ninguna
Ninguna
S4
AA/B
c1, c6, c7
S5
AA+B
c1
S6
Desplazar derecha C
c4
S7
Incrementar contador
c8
S8
Ninguna
Ninguna
0
S0
S0
S1
S1
S2
c2
c3
S2
s0 = 1
S3
s0
S3
s0 = 0
c0, c1, c7
S4
c1, c6, c5
S4
S5
c1
S5
S6
c4
s1
S6
s1 = 0
S7
c8
s1= 1
S7
S8
S8
Reloj
Clear
SOLUCIN
PROBLEMA
5 - 11
7:
8:
9:
10:
11:
12:
Ck
c0
ED
Reg. Desp.
Q
c1 c0
00
01
10
11
Q(t+1)
Q(t)
Carga
Des. Dcha.
Q(t)
UAL
R
c1
c1c0
00
01
10
11
R
A+B
A-B
A*B
A/B
Ck
c0
c1
c1c0
00
01
10
11
Contador
Q
c0
c0
c1
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Q(t)
S
c0
0
1
S
E
Solucin
A) Antes de proponer un diseo para la Unidad de Procesamiento hagamos
unas consideraciones previas sobre las necesidades del algoritmo. La Unidad
de Procesamiento tiene que resolver cada uno de estos requerimientos.
Los registros de desplazamiento del enunciando son los nicos elementos
de almacenamiento disponibles, por lo que se utilizarn necesariamente
para los tres registros: A, B y C. En el caso de A y B no se har uso de la
capacidad de estos registros para realizar desplazamientos, pero s en C
(paso 9 del algoritmo).
A la hora de hacer desplazamientos en el registro C hay que introducir un
0, tal y como exige el apartado A) del problema, por lo que habr que fijar
su entrada ED a 0. Con los registros A y B no existe este problema ya que
no se van a hacer desplazamientos con ellos, y su entrada ED se fija
arbitrariamente a un valor determinado, por ejemplo 0.
El registro A tiene que poder recibir informacin desde el bus (paso 2 del
algoritmo) y desde la salida de la UAL (pasos 7 y 8 del algoritmo). Al
Q(t+1)
00
Q(t)
01
Carga
c0
c9
MUX
C
ED
c
Reg. des. c01
c1
0
ED
UAL
Contador
1
c0
c1
Inicio
Fin
Reloj
c2
0
ED
c7
c8
B c0
c1
c
Reg. des. c01
C(3)
c
Reg. des. c01
c3
c4
C(5)
c5
c6
s0= C(3) C(5)
s1
Circuito
c0
c1
Unidad de
Procesamiento
de
Control
c9
Unidad de
Control
Figura 97-2-2 Diagrama de bloques, puntos de control (c0 a c9) y seales de condicin (s0 y
s1) de la Unidad de Procesamiento solicitada
Para completar este diseo, es necesario hacer una breve descripcin del
significado de cada una de las entradas de control que gobiernan el
funcionamiento de la Unidad de Procesamiento (ver Tabla 97-2-1).
Seal de Control
Operacin controlada
c0
c1
c2
c4 y c3
c6 y c5
Control de la UAL: suma (00), resta (01), producto (10) o divisin (11)
c8 y c7
Control del contador: nada (00 y 11), reset (01) o incremento (10)
c9
Control del circuito triestado: Bus A (1), A aislado del bus (0)
S1
S2
s1
s0
S3
s0
S6
S5
S7
s1
s1
Estado de la Unidad
de Control
Microoperaciones
efectuadas
Seales de control
a activar
S1
A Bus
contador 0
B Bus
c2
S2
C Bus
c3
S0
S3
c0, c1, c7
Ninguna
S6
Ninguna
AA-B
Desplazar derecha C
Incrementar contador
AA*B
Desplazar derecha C
Incrementar contador
Bus A
S7
Ninguna
Ninguna
S4
S5
c9
Estado
Q2 Q1Q0
S0
000
S1
001
S2
010
S3
011
S4
100
S5
101
S6
110
S7
111
NOTA
Un error muy frecuente a la hora de resolver el problema es la utilizacin de
puntos de control en vez de las entradas de control de los mdulos empleados
(registros de desplazamiento, contadores, etc). Tal y como se indica en las
pginas 321 a 323 del libro de teora, Los puntos de control se realizan
mediante circuitos cuya naturaleza depende de las caractersticas de los
dispositivos conectados a los caminos de datos sobre los que acta .
0
1
2
3
s0
s1
s1
4
5
A0
MUX
A1
6
7
ROM
A2
0 1 2
16 palabras 13 bits
A3
Estado futuro
Inicio
Reloj
Cl Registro
Estado presente Q2 Q1 Q0
c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
Direccin de la ROM
A3 A2 A1 A0
Contenido de la ROM
p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0
Presente
Prximo Estado
Control
Q2 Q1 Q0 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
S0
S1
S2
S3
S4
S5
S6
S7
0 0 0
0 0 0
0
1
0 0 1
0 0 1
0
1
0 1 0
0 1 0
0
1
0 1 1
0 1 1
0 (si s0 = 0)
1 (si s0 = 1)
1 0 0
1 0 0
0 (si s1 = 0)
1 (si s1 = 1)
1 0 1
1 0 1
1 1 0
1 1 0
0 (si s1 = 0)
1 (si s1 = 1)
0
1
1 1 1
1 1 1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SOLUCIN
PROBLEMA
5 - 12
Bus-Entrada
c0
MUX
c1
LD
CK
>
c4
CK
1
c2
S/R
LD
>
8
0
s0 (X=255)
c3
8
Bus-Salida
B)
Seal
Descripcin
c0
c1
c2
c3
c4
C)
S0
S1
s0
S2
s0
S4
S5
S3
Figura 97-3-2 Diagrama de estados
Estado
Microoperacin
Seales de
control
S0
X Bus-Entrada
c4
S1
A Bus-Entrada
c0,c1
S2
AA+1
c0,c1,c2
S3
AA-1
c0,c1,c2
Estado
Microoperacin
S4
Bus-Salida A
S5
Parar
Seales de
control
c3
-----
Q2Q1Q0
S0
000
S1
001
S2
010
S3
011
S4
100
S5
101
Est. actual
Q2Q1Q0
Condicin
Prx.
estado
Q2Q1Q0
000
---
000
c4
001
s0
s0
010
011
c0,c1
010
---
100
c0,c1,c2
011
---
100
c0,c1,c2
100
---
101
c3
101
---
101
S. control
-----
Q1Q0
00
s 0Q 2
00 0
D2 01 1
11 1
10 0
D2=Q2+Q1;
01
0
1
1
0
11
1
X
X
1
10
1
X
X
1
Q1Q0
00
s 0Q 2
00 0
D1 01 0
11 0
10 0
D1=Q2Q1Q0;
01
1
0
0
1
11
0
X
X
0
10
0
X
X
0
Q1Q0
00
s 0Q 2
00 0
D0 01 1
11 1
10 0
01
1
1
1
0
11
0
X
X
0
10
0
X
X
0
D0=Q2+s0Q1Q0.
D2
Q1
CK
> Cl Q2
Inicio
Q2
Q1
Q0
Q2
D1
CK
Q1
> Cl Q1
Inicio
s0
Q2
D0
Q1
Q0
CK
Q0
H 7
6
2
5
4
1
3
2
0
1
0
Decodificador
Q2
> Cl Q0
Inicio
Figura 97-3-3 Unidad de Control
c3
c0,c1
c0,c1,c2
c1
c4
SOLUCIN
PROBLEMA
5 - 15
3UREOHPD 6HSWLHPEUH
Ck
c0
Reg. Desp.
c1
EI
Q
ED
UAL
R
Ck
c0
Contador
Q
c0
c0
c1
S
6ROXFLyQ
a) En primer lugar se debe analizar las operaciones que debe realizar el algoritmo para ver qu recursos se
necesitan y si stos se encuentran entre los que se ofrecen en el enunciado:
Un registro A que debe tener la capacidad de carga en paralelo y que sea capaz de realizar un desplazamiento
cerrado a la derecha. En este caso se dispone de un registro de desplazamiento simple que permite realizar
operaciones de carga y desplazamiento (a la derecha y a la izquierda). Para conseguir que estas operaciones
de desplazamiento sean cerradas se debe conectar el bit ms o menos significativo (A[7] o A[0]) con la
entrada serie que le corresponda (ED o EI). En este caso la operacin es hacia la derecha con lo que en la ruta
de datos se debe conectar el bit A[0] con la entrada EI del registro A.
Un registro B que debe tener la capacidad de carga en paralelo y ser capaz de inicializarse a 0. En este
caso el registro no dispone de una seal de reset pero se puede conseguir este efecto cargando el valor 0
(8 bits).
Una UAL capaz de sumar 1 a un nmero de ocho bits. Como la propuesta UAL puede realizar las operaciones
A+B y A-B, fijando una de las entradas al valor constante 1 se puede realizar la operacin. Adems, puesto
que siempre se va a realizar la operacin de suma se puede dejar el valor de la entrada de control c 0 de la
UAL siempre al valor lgico 0.
Un multiplexor de dos entradas para seleccionar el valor a cargar en el registro B, ya que se debe poder cargar
desde la salida de la UAL o de un valor fijo igual a 0.
Un contador con capacidad de cuenta hacia arriba para controlar las iteraciones del bucle for del algoritmo.
Puesto que la cuenta es de 0 a 7 es necesario que dicho contador sea de tres bits.
Un circuito de deteccin del estado 7 del contador que genere la seal de condicin para el fin de bucle. Para
ello se puede usar una puerta AND de tres entradas conectadas a los bits de estado del contador Q2,Q1y Q0.
Una puerta triestado que conecte la salida del registro B con el bus de datos.
Del anlisis se desprende que es posible implementar la ruta de datos teniendo en cuenta que se deben generar
las seales de condicin adecuadas hacia la unidad de control:
s0, seal de condicin correspondiente a A[0] = 1. Se genera conectando la salida A[0] del registro A a la
entrada de condicin s0 de la unidad de control.
s1, seal de condicin de fin de bucle. Se genera conectando la salida de la puerta AND a la entrada de
condicin s1 de la unidad de control.
Por otra parte, la Unidad de Control recibe una seal externa que arranca el algoritmo:
Bus
0
0
0
c0
0
1
MUX
c1
ED
EI
c0
c1
Reg. desp.
c4
c5
ED
EI
Reg. desp.
c0
c1
c2
c3
A[0]
A
UAL
c0
c1
Contador
2 1 0
B c
0
c6
c7
s0 (valor del bit A[0])
s1(=1 Contador es 7)
Inicio
Circuito
Fin
Reloj
c0
c1
Unidad de
Procesamiento
de
Control
c7
Unidad de
Control
Seal de Control
Operacin controlada
c0
Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexin (1)
c1
c3 y c2
Control registro A: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)
c5 y c4
Control registro B: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)
c7 y c6
b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se disea el diagrama
de transicin de estados de la Figura 3, donde el significado detallado de cada uno de los estados propuestos viene
dado por la Tabla 2.
Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseada en el apartado anterior. Se puede
comprobar, por ejemplo, que ejecuta el bucle for 8 veces ya que en el estado S4 consulta por la condicin de
finalizacin y, en caso de no verificarse, incrementa el contador y realiza otra iteracin. En total el bucle se realiza
para todos los valores del contador, desde el 0 hasta el 7.
S5
Inicio
s1
S0
S1
S2
s0
S3
S4
s1
S6
s0
Estado de la Unidad
de Control
Microoperaciones
efectuadas
Seales de control
a activar
S0
Ninguna
Ninguna
S1
A Bus
B0
Reset Cont
c3, c2
c1, c5, c4
(c7=0), c6
S2
Ninguna
Ninguna
S3
BB+1
(c1=0), c5, c4
S4
Despl.CerradoDcha(A)
(c3=0), c2
S5
Incrementar Cont
c7, (c6=0)
S6
Bus B
c0
Para implementar esta Unidad de Control vamos a emplear el mtodo de los elementos de retardo. El diseo
correspondiente se muestra en la Figura 4. En la parte izquierda de la Figura 4 se ha vuelto a colocar el diagrama de
transicin de estados de forma que sirva de ayuda y complemento al diseo lgico de la Unidad de Control.
10
Inicio=0
Set
S0
S0
Inicio
Inicio=1
S1
S2
s0= 0
s0
S2
S3
S4 s = 1
1
S5
s0= 1
s1= 0
S1
S3
c4, c5
S4
c2
s1
S5
c7
S6
S6
c0
Reloj
Clear
SOLUCIN
PROBLEMA
5 - 16
Ck
E
c0
ED
Reg. Desp.
EI
c1c0
00
01
10
11
Q
Q(t+1)
Q(t)
D. Dcha.
D. Izq.
Carga
c1
c0
UAL
R
c0
0
1
Ck
Contador
Q
R
A+B
A-B
c0
c1
Q(t+1)
c1c0
00
Q(t)
01 Q(t)-1 mod 16
10 Q(t)+1 mod 16
11
0
c0
S
c0
0
1
S
E
Solucin
a) En primer lugar se deben analizar las operaciones a realizar para ver qu recursos se necesitan y si stos se
encuentran disponibles:
Sendos registros A y B de 8 bits que deben poder cargarse desde el bus y volcar su contenido al bus. As
mismo, deben poder cargarse desde la salida de la UAL. Como registros nos ofrece el enunciado registros
de desplazamiento de 8 bits con capacidad de carga en paralelo. stos son los registros que habr que utilizar,
aunque su capacidad de desplazamiento no se utilizar.
Para seleccionar el origen de datos de los registros se utilizarn multiplexores.
Los registros volcarn su contenido al bus a travs de sendas puertas triestado, para evitar problemas
elctricos.
Un contador mdulo-16 (de 4 bits de longitud de palabra por tanto). Aunque en el algoritmo propuesto la
cuenta se ha de incrementar en 2 en cada ocasin y el contador de que se dispone slo puede contar de 1 en
1, esto no supone nungn problema ya que bastar con incrementar 1 dos veces seguidas.
Del anlisis del algoritmo se sigue que harn falta dos seales de condicin:
s0, que indique si el valor del registro A es mltiplo de 4. Para ello veamos cmo son los nmeros mltiplos
de 4:
A7
A6
A5
A4
A3
A2
A1
A0
4:
8:
12:
16:
20:
que la capacidad de desplazamiento de los registros no se va a utilizar, y ya que 11 implica carga en paralelo y 00
implica no-operacin, es posible gobernar cada uno de los registros con una nica seal de control conectada
simultneamente a sus entradas c0 y c1. La Figura 4 muestra cmo se realizaran estas modificaciones. (Este
diseo, al hacer uso de menos componentes y menos seales de control, es ms econmico.) En lo que sigue, el
problema se resolver haciendo uso del diseo de la Figura 3.
8
BUS
c9
0
1
MUX
c0
ED
EI
c1
c0
Reg. desp. A c
1
8
A1
ED
EI
c2
c3
0
1
MUX
c10
c0
Reg. desp. B c
1
c4
c5
Contador
4
Cont3
A0
A
Cont0
B
c8
UAL
s0
s1
Unidad de
Procesamiento
Inicio
Fin
Reloj
Circuito
c0
c1
de
Control
c10
Unidad de
Control
c0
c1
c6
c7
BUS
c0
0
1
MUX
Reloj
ED
EI
c0
Reg. desp. A c
1
8
ED
EI
c2
c0
Reg. desp. B c
1
c4
B
c8
UAL
Figura 4: Fragmento de la Unidad de Procesamiento, en el que se muestran algunas posibles modificaciones en el diseo
b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se disea el diagrama
de transicin de estados de la Figura 5, donde el significado detallado de cada uno de los estados propuestos viene
dado por la Tabla 2. Obsrvese que esta Unidad de Control se ha diseado como una mquina de Moore. (Dada la
sencillez del algoritmo propuesto, se ha obtenido directamente el diagrama de estados a partir de ste, sin
necesidad de pasar por el diagrama ASM.)
s1
Inicio
S0
S1
S2
S3
s1s0
S4
S5
Inicio
s1s 0
S6
S7
S8
10
Estado de la Unidad
de Control
Microoperaciones
efectuadas
Seales de control
a activar
S0
Ninguna
Ninguna
S1
A Bus
(c0=0), c2, c3
S2
B Bus
Cont 0
(c1=0), c4, c5
c6, c 7
S3
Ninguna
Ninguna
S4
AA-B
Cont (Cont + 1) mod
16
c0, c 2, c3, c8
(c6=0), c7
S5
(c6=0), c7
S6
BB+A
S7
Bus B
c10
S8
Bus A
c9
Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseada en el apartado anterior. Se puede
comprobar, por ejemplo, que ejecuta el bucle while mientras el valor del contador sea distinto de 14, ya que de
verificarse esta condicin (s1 = 1) del estado S3 se salta al estado S 7. En caso contrario, en S3 se comprueba si A es
mltiplo de 4 (s0) o no (s0) y se salta al estado correspondiente. Obsrvese que, como se coment en el apartado
anterior, el contador no se puede incrementar en 2 en un nico estado, por lo que ha habido que incrementarlo en
una unidad dos veces consecutivas, en los estados S 4 y S5.
La Unidad de Control se realiza utilizando la tcnica de los elementos de retardo, segn pide el enunciado,
asignando un biestable tipo D a cada estado, tal como se muestra en la Figura 6. Para evaluar las condiciones en S 3,
en lugar de utilizar un demultiplexor de dos entradas de control (s1 y s0) y cuatro salidas se ha preferido utilizar, de
manera equivalente, dos multiplexores colocados en cascada, cada uno de ellos con una nica entrada de control y
dos salidas. Tambin se muestra cmo se forman las distintas seales de control a partir de las salidas de los
biestables tipo D [ver las pginas 304 a 307 del texto base de teora]. Obsrvese que los bloques de decisin
corresponden a demultiplexores, segn se muestra en la Figura 7 [ver las pginas 304 a 307 del texto base de
teora].
Inicio
Inicio
s1s0
Set
S0
S0
Demux
1
Inicio
0
S1
S1
c2, c3
S2
S2
c4, c5,
c6, c7
S3
S3
s1
s1
Demux
1
0
s1s0
s0
0
S4
S4
S5
S5
c7
S6
S6
c1, c4, c5
S7
S7
S8
S8
c10
c9
CK
Clear
c0
c1
c2
c3
c4
c5
c6
c7
c8
c9
c10
Figura 6: Unidad de Control mediante elementos de retardo (derecha); se muestra nuevamente el diagrama de estados
(izquierda) para ilustrar el alto grado de paralelismo que existe entre ste y la realizacin mediante elementos de retardo
11
12
Entrada
Entrada
Entrada
V
Demux
0
Salida 0
Salida 1
Salida 0 Salida 1
Salida 0
Salida 1
Figura 7: Bloque de decisin (izquierda) visto como un demultiplexor (centro) y su realizacin equivalente con puertas
lgicas (derecha)
SOLUCIN
PROBLEMA
5 - 17
B 0;
endif;
Despl.CerradoDcha(A);
Despl.CerradoDcha(A);
endfor;
Bus B;
Parar;
6:
7:
8:
9:
10:
11:
12:
Ck
ED
EI
c1c0
00
01
10
11
Reg. Desp.
Q
Q(t+1)
Q(t)
Des. Dcha.
Des. Izq.
Carga
c0
B
c0
UAL
R
c1
c0
0
1
Ck
Contador
Q
R
A+B
A-B
c1c0
00
01
10
11
c0
c1
Q(t+1)
Q(t)
0
Q(t)+1 mod 8
Q(t)
c0
S
c0
0
1
S
E
Solucin
a) Del anlisis de las operaciones del algoritmo propuesto se puede concluir que:
Es necesario un registro de 8 bits llamado A. Este registro debe poder realizar dos operaciones:
- Carga de 8 bits de datos desde el bus, correspondiente a la operacin A Bus. El tipo de
registro disponible es capaz de cargar en paralelo, y puede realizar esta operacin.
- Desplazamiento cerrado a la derecha, correspondiente a la operacin
Despl.CerradoDcha(A). En este caso el tipo de registro slo realiza la operacin
Despl.Dcha, con lo que se hace necesario conectar el bit menos significativo de A (llamado
A0), a la entrada ED del registro.
En la Figura 2 se puede observar el esquema de conexiones para este registro:
que se llamar s1. Para ello se puede usar la expresin equivalente NOT ( A1 A0 ) = A1 + A0 de
tal forma que se generar dicha condicin usando una puerta OR y un inversor, como se
muestra en la Figura 3.
Otra opcin podra ser generar la condicin s1 como A1 AND A0 y tenerlo en cuenta a la hora
de realizar el diagrama de estados considerando la operacin if A1A001 then verdadera
cuando no se cumple s1 (es decir, NOT s1).
Es necesario un registro de 8 bits llamado B. Este registro debe ser capaz de cargar dos
valores constantes 0 y 1 (Operaciones B0, B1) y volcar su contenido al bus
(Operacin BusB).
- Para volcar el contenido del registro al bus es necesario usar una puerta triestado que
controle la operacin de escritura en el bus.
- Para distinguir el valor a cargar se podra usar un multiplexor con dos entradas constantes 0
y 1 y usar el valor de salida del multiplexor 2 a 1 como bit menos significativo de la entrada
E del registro B, poniendo al valor constante 0 el resto de bits de la entrada E del registro.
Pero en este caso se puede eliminar dicho multiplexor y usar una seal de control (generada
por la unidad de control) que determina el valor del bit menos significativo de la entrada. Si
llamamos a esta seal de control CLOADB, cuando sea igual a 1 se cargar el valor 1 en el
registro B y si es igual a 0 se cargara 0 en B. En la Figura 4 se muestra el diagrama de
conexiones para el registro B.
Una vez definidos los recursos necesarios para implementar la unidad de procesamiento y las
seales de condicin que debe generar, slo quedan por definir las seales de control que la unidad
de control debe generar. En la Tabla 1 se muestran las definiciones de cada una de las seales de
control, la operacin que realizan y el valor de las seales de control para dicha operacin.
Seal de
control
CA0, CA1
CA0, CA1
CB,
CB, CLOADB
CC0, CC1
CC0, CC1
CBUS
Operacin a realizar
Valor
Cargar registro A
Desplazamiento cerrado a la derecha de A
Cargar registro B con 0
Cargar registro B con 1
Resetear contador
Incrementar mdulo 8 una unidad el contador.
Volcar el contenido del registro B en el bus
11
10
1
11
10
01
1
Tabla 1: Seales de control que debe generar la Unidad de Control para cada operacin.
De esta tabla se puede deducir que las variables de control del registro A y el contador se
corresponden con las entradas c1 y c0 de los mismos, pero en el caso del registro B solo es necesario
usar una seal de control, cB, asociada a la carga (si cB=1 c1c0=11) y a la conservacin el estado
(si cB=0 c1c0=00). La seal CBUS es la seal de control de la puerta triestado que controla la
escritura en el bus.
Con todo esto, el diagrama de la unidad de procesamiento queda como se muestra en la Figura 6.
Estado de la
Microoperaciones efectuadas
Seales de control a
unidad de control
activar
S0
Ninguna (Estado inicial)
Ninguna
S1
A Bus, Cont 0
CA0, CA1, CC0
S2
B 1
CB, CLOADB
S3
Ninguna
Ninguna (Comprobamos condiciones s1 y s0)
B0
CB
S4
S5
Despl.CerradoDcha(A)
CA0
S6
Despl.CerradoDcha(A),
CA0, CC1
Cont Cont+1 (mod 8)
S7
Bus B
CBUS
Tabla 2: Acciones tomadas por la Unidad de Control en cada estado.
Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmo
propuesto en el enunciado del problema utilizando la Unidad de Procesamiento diseada en el
apartado anterior. Se puede
comprobar, por ejemplo, que se ejecuta el bucle for cuatro veces, ya que se incrementa el contador
en la ltima microoperacin que se ejecuta dentro del bucle, de tal forma que cuando se llega al
valor Cont=4 se activa la seal s0 y se termina el bucle. Obsrvese que siempre se deben ejecutar las
dos microoperaciones de desplazamiento cerrado del registro A independientemente de la
condicin A1A0 01 y que adems se debe hacer en dos estados consecutivos.
La Unidad de Control se realiza utilizando la tcnica de los elementos de retardo, segn pide el
enunciado,
asignando un biestable tipo D a cada estado, tal como se muestra en la Figura 8. Tambin se
muestra cmo se forman las distintas seales de control a partir de las salidas de los biestables tipo
D [ver las pginas 304 a 307 del texto base de teora]. Obsrvese que los bloques de decisin
corresponden a demultiplexores, segn se muestra en la Figura 8 [ver las pginas 304 a 307 del
texto base de teora].
10
11
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II
Curso 2003-2004
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
Solucin problemas
CONTENIDO
SOLUCION PROBLEMA 6.1 ..................................................................................................................... 3
SOLUCION PROBLEMA 6.2 ..................................................................................................................... 5
SOLUCION PROBLEMA 6.3 ..................................................................................................................... 7
SOLUCION PROBLEMA 6.4 ..................................................................................................................... 7
SOLUCION PROBLEMA 6.5 ..................................................................................................................... 9
SOLUCION PROBLEMA 6.6 ................................................................................................................... 10
Solucin problemas
Solucin problemas
Solucin problemas
a) Cargar acumulador con el contenido de una direccin de memoria. En la siguiente tabla se indican las
microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de
las mismas.
Microoperaciones
RD(RI(direccin))
RMmemoria
AC(RM)
Seales de
Control
c14
c0
c9
b) Almacenar el contenido del acumulador en una direccin de memoria. En la siguiente tabla se indican
las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin
de las mismas.
Microoperaciones
RD(RI(direccin))
RM(AC)
memoria(RM)
Seales de
Control
c14
c10
c1
c) Sumar al acumulador un operando con direccionamiento inmediato. En la siguiente tabla se indican las
microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de
las mismas.
Microoperaciones
RM(RI(dato))
Entrada 1(RM)
AC(AC)+ Entrada 1
Seales de
Control
c15
c8
c11
Solucin problemas
d) Sumar al acumulador un operando con direccionamiento directo. En la siguiente tabla se indican las
microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de
las mismas.
Microoperaciones
Seales de
Control
c14
RD(RI(direccin))
c0
RMmemoria
c8
Entrada 1(RM)
c11
AC(AC)+ Entrada 1
e) Sumar al acumulador un operando con direccionamiento indirecto. En la siguiente tabla se indican las
microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de
las mismas.
Microoperaciones
Seales de
Control
c14
RD(RI(direccin))
c0
RMmemoria
c2
RD(RM)
c0
RMmemoria
c8
Entrada 1(RM)
c11
AC(AC)+ Entrada 1
f) AND con el acumulador y un operando en modo directo. En la siguiente tabla se indican las
microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de
las mismas.
Microoperaciones
Seales de
Control
c14
RD(RI(direccin))
c0
RMmemoria
c8
Entrada 1(RM)
c12
AC(AC) AND Entrada 1
g) Bifurcar, en modo de direccionamiento directo. En la siguiente tabla se indican las microoperaciones
necesarias, as como las seales de control que hay que activar para la realizacin de las mismas.
Microoperaciones
RD(RI(direccin))
RMmemoria
CP(RM)
Seales de
Control
c14
c0
c4
Seales de
Control
c14
c0
c4
Solucin problemas
Contenido de la pila
Y
Y
Z
Y+Z
Y+Z
Y
Y+Z
Y
Y
Y+Z
YxY
(Y+Z)xYxY
Contenido de la pila
Y
Y
Y
Y
Y
Y
YxYx(X+Z)
Y
Y
Y
Y
Yx(X+Z)
X
X
X+Z
Solucin problemas
Opcin C) :
Instrucciones
Push[Y];
Push[Y];
Mult;
Push[X];
Push[Z];
Add;
Mult;
Pop[X];
Contenido de la pila
Y
Y
Y
YxY
YxY
X
YxY
X
YxY
X+Z
(YxY)x(X+Z)
Solucin problemas
10 bits
Cdigo
Operacin
DIR[Operando]
Una instruccin de bifurcacin con direccionamiento relativo al contador de programa CP, se puede
expresar de la siguiente forma:
6 bits
10 bits
Cdigo
Operacin
Desplazamiento
Solucin problemas
Instrucciones
Push M[C];
Push M[D];
Add;
Push M[C];
Push M[D];
Add;
Mult;
Pop M[A];
Contenido de la pila
C
C
D
C+D
C+D
C
C+D
C
C+D
C+D
(C+D)(C+D)
10
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II
TEMA 7: Microprogramacin
SOLUCION
PROBLEMAS PROPUESTOS EN EXAMEN
Curso 2003-2004
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II
TEMA 7: Microprogramacin
Solucin problemas
CONTENIDO
SOLUCION PROBLEMA 7.1 ..................................................................................................................... 3
SOLUCION PROBLEMA 7.2 ..................................................................................................................... 3
SOLUCION PROBLEMA 7.3 ..................................................................................................................... 3
SOLUCION PROBLEMA 7.4 ..................................................................................................................... 4
SOLUCION PROBLEMA 7.5 ..................................................................................................................... 4
SOLUCION PROBLEMA 7.6 ..................................................................................................................... 4
SOLUCION PROBLEMA 7.7 ..................................................................................................................... 4
SOLUCION PROBLEMA 7.8 ..................................................................................................................... 4
SOLUCION PROBLEMA 7.9 ..................................................................................................................... 5
SOLUCION PROBLEMA 7.10 ................................................................................................................... 5
SOLUCION PROBLEMA 7.11 ................................................................................................................... 5
SOLUCION PROBLEMA 7.12 ................................................................................................................... 6
SOLUCION PROBLEMA 7.13 ................................................................................................................... 7
SOLUCION PROBLEMA 7.14 ................................................................................................................... 9
SOLUCION PROBLEMA 7.15 ................................................................................................................. 10
TEMA 7: Microprogramacin
Solucin problemas
TEMA 7: Microprogramacin
Solucin problemas
TEMA 7: Microprogramacin
Solucin problemas
Subcampo de
seleccin de
direccin
3 bits
13 bits
campo de direccin
8 bits
c) Puesto que se tienen 8 bits en el campo de direccin se podrn direccionar 28 direcciones. El tamao
de la memoria de control ser:
C=28 pal x 24 bits/pal
T
1 bit
Subcampo de seleccin
de direccin
3 bits
campo de direccin
8 bits
TEMA 7: Microprogramacin
Solucin problemas
Direcciones en la M. Control
00000000 - 00000111
00001000 - 00001111
00010000 - 00010111
...
11111000 - 11111111
Teniendo esto presente la estructura del bloque Lgica de transformacin es el que se muestra en la
siguiente figura:
RI
Cdigo de
operacin
5
000
Lgica de
transformacin
TEMA 7: Microprogramacin
Solucin problemas
TEMA 7: Microprogramacin
Solucin problemas
Escr. Reg.
R0
RD
16
Direccin o
UAL
Valor
UAL
B
(1)
16
Tipo
Condicin
1
NB
2
UAL
(0)
(00)
Direccin
A/L
Funcin
DESPL.
NB
(0)
DESP.
(01)
Tipo
TRANSF.
NB
(0)
TRANS.
MEM.
2
MEM.
(0)
(11)
Registro
5
R. Origen
(10)
NB
1
L/E
1
Modo
5
R. Destino
16
Direccin o Valor
TEMA 7: Microprogramacin
Solucin problemas
El formato de microinstruccin vertical variable implica el que algunos campos determinen la forma en
que se han de decodificar los dems.
El primer campo (B/NB) es comn a todos los formatos, y determina si la instruccin es de bifurcacin
(cuando vale 1) o no (cuando vale 0).
En las instrucciones de bifurcacin el segundo campo indica el tipo de bifurcacin, condicional (1) o
incondicional (0). Sigue un campo que slo se interpreta en las bifurcaciones condicionales, para fijar el
tipo de condicin que determina la bifurcacin. Finalmente, hay un campo adicional que seala la
direccin a la que hay que saltar.
En las instrucciones que no implican bifurcacin, el siguiente campo de 2 bits indica el tipo de operacin
a realizar: UAL, desplazamiento, transferencia de registros u operaciones con memoria.
En las operaciones tipo UAL el tercer campo indica si la operacin es aritmtica (0) o lgica (1), el
siguiente campo indica la funcin, y el ltimo el registro que se emplear, junto con el acumulador, en las
operaciones que requieren dos registros. En el caso de una operacin que requiera un nico operando,
este campo se ignora y la operacin se realiza con R0.
El tercer campo de las operaciones de desplazamiento indica el tipo de desplazamiento a realizar, el
sentido, etc. El resto de la palabra que compone la microinstruccin es ignorado.
En las operaciones de transferencia de registros, hay dos campos que indican el registro origen y el
registro destino.
Finalmente, en las operaciones con memoria, el tercer campo indica lectura o escritura, el cuarto el modo
de direccionamiento (directo o inmediato) y el ltimo la direccin de memoria, para el caso de
direccionamiento directo. El direccionamiento inmediato es diferente, ya que este ltimo campo contiene
el valor que hay que cargar en el registro R 0.
Este formato es el que utiliza una palabra de control ms corta, pero la decodificacin de las
microinstrucciones es complicada y requiere varios niveles, siendo por tanto ms lenta.
La eleccin del formato ms adecuado resulta de un compromiso entre velocidad, eficiencia, sencillez de
diseo y coste, dependiendo por tanto de cada caso particular.
TEMA 7: Microprogramacin
Solucin problemas
10