Está en la página 1de 304

COLECCIN

PROBLEMAS
ESTRUCTURA
Y TECNOLOGA
DE COMPUTADORES II
INFORMTICA
SISTEMAS
Y GESTIN
DELEGACIN DE ALUMNOS
CENTRO ASOCIADO DE BALEARES

COLECCIN PROBLEMAS ESTRUCTURA Y TECNOLOGA COPUTADORES II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.2 La memoria de un ordenador consta de 10 mdulos independientes conectados a un bus de memoria


comn. En una operacin de escritura cada uno de estos mdulos nicamente ocupa el bus del sistema al
comienzo de la operacin y durante un 20% del tiempo total del ciclo de escritura. El 80% del tiempo de
ciclo de escritura restante el mdulo lo emplea para almacenar el dato internamente. Si las operaciones de
escritura de dichos mdulos de memoria pueden solaparse, en cunto se ve incrementada la velocidad
mxima de almacenamiento de la memoria del ordenador en relacin a la velocidad de un nico modulo?

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.4 La memoria de un ordenador consta de 20 mdulos independientes conectados a un bus de memoria


comn. En una operacin de escritura cada uno de estos mdulos nicamente ocupa el bus del sistema
durante 25 nseg. Al comienzo de la operacin. Durante los 75 nseg. siguientes completa el ciclo de
escritura almacenando el dato internamente. Si las operaciones de escritura de dichos mdulos de memoria
pueden solaparse, cul es la velocidad mxima de almacenamiento de la memoria del ordenador ?

1.5 Indique si las siguientes afirmaciones son verdaderas.


I. Una transferencia de datos en un bus que utiliza la tcnica de multiplexacin en el tiempo de
direcciones y datos se realiza de la forma siguiente: se coloca la direccin en el Bus de
Direcciones y se mantiene mientras el dato se sita en el Bus de Datos.
II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma lnea de
un bus, slo una de ellas puede estar en estado de alta impedancia.

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

A la vista de los valores del registro de mscara y del


contenido de la memoria, cuntos de los argumentos
propuestos a continuacin produciran ese registro de marca?
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

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.?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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)

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.75 puntos) Calcule cunto tiempo se tardara en ejecutar este
programa si este computador no tuviera memoria cach.
c) (2 puntos) Calcule cuntos fallos se producen en la cach a la hora
de ejecutar este programa. Explique claramente su razonamiento.
(Sugerencia: diferencie entre la primera ejecucin del bucle exterior
y las nueve restantes.)
d) (1 punto) 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 se tardara en
ejecutar este programa en este computador.

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

2.46 Con el objetivo de acercar la velocidad de la unidad de memoria de un computador a la velocidad de


los registros de su CPU, a un coste razonable, indique cul de las siguientes alternativas sera ms
adecuada:
A) Aumentar el nmero de registros de la CPU.
B) Hacer uso de una memoria cach.
C) Aumentar la capacidad de los discos magnticos.
D) Ninguna de las anteriores.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

D) Ninguna de las anteriores

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

3.22 En el mecanismo de E/S mostrado en la figura, indicar


que afirmaciones son ciertas :
I. Hay un nico espacio de direcciones para las
posiciones de memoria y los dispositivos de E/S.
II. Se pueden utilizar instrucciones del tipo referencia
a memoria para acceder a datos de E/S.

Curso 2002-2003

Bus de datos
Bus de direcciones
Leer
Escribir
Memoria
Principal

UCP

Controlador
E/S

Perif. 1

...

Perif. n

3.23 Sea una UCP con 4 lneas de interrupcin


enmascarables PI1, PI2, PI3 y PI4, numeradas en orden creciente de prioridad, es decir, PI1 tiene la
prioridad mnima y PI4 la mxima. El sistema 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.24 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. Calcular la velocidad mxima de transferencia agregada a este sistema.
3.25 Un computador dispone de un canal multiplexor que controla 5 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 2105
bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del
sistema durante 200 nseg. Qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una
transferencia de datos del canal multiplexor a memoria principal?
3.26 Se desea disear un controlador de interrupciones con las siguientes caractersticas. Tiene un
mdulo de gestin de prioridades de forma que cuando se reciban peticiones de interrupcin simultneas
por ms de una lnea slo se reconozca la ms prioritaria. Tiene un mdulo de enmascaramiento que
permite enmascarar de manera individual cualquiera de las lneas de peticin. En qu orden se colocaran
estos dos mdulos? Por qu?
3.27 Un computador con 13 lneas de direcciones tiene una memoria de 3211 palabras y utiliza
entrada/salida localizada en memoria. Cul es el nmero mximo de perifricos que pueden conectarse,
suponiendo que cada uno de ellos utiliza 16 direcciones?
3.28 Un computador dispone de un canal multiplexor que controla 5 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 2105
bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del
sistema durante 200 nseg. Cul es la velocidad mxima de transferencia agregada a este sistema?
3.29 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia de DMA
transparente. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4
ciclos de reloj en ser ejecutadas, pero en uno de ellos no hace uso del bus. El controlador de DMA tarda
un ciclo de reloj en transmitir una palabra. Explicar razonadamente qu reduccin en la velocidad de la UCP
supone la transferencia de DMA.
3.30 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia transparente.
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 consecutivos no se requiere el acceso al bus. El controlador de DMA
tarda 2 ciclos de reloj en transmitir una palabra. Si la frecuencia de reloj del computador es de 200106
ciclos/seg., cunto tiempo tardar el controlador de DMA en mover un bloque de datos compuesto por
100106 palabras?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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)

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

El funcionamiento de la unidad viene descrito por:


c = 0 : suma

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

Para resolver el problema, seguir obligatoriamente los siguientes apartados:


a) Disear un comparador de nmeros de 1 bit utilizando nicamente puertas lgicas.
b) Utilizando comparadores como el diseado en el apartado A) y puertas lgicas, disear un
comparador de nmeros de 3 bits.
c) Utilizando nicamente sumadores binarios completos (SBC), disear un sumador binario de
nmeros de 3 bits.
d) Utilizando nicamente los mdulos diseados en B) (comparador de nmeros de 3 bits) y C)
(sumador binario de nmeros de 3 bits) y los circuitos combinacionales que considere
necesarios, disee la UAL pedida.

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Mdulo de memoria ROM a utilizar


a) Cuntos mdulos ROM son necesarios? Dibujar el esquema del circuito que se obtiene
utilizando los mdulos ROM propuestos y, si considera necesario, otros mdulos
combinacionales.
b) Escribir el contenido de todos los mdulos de memoria ROM utilizados en el apartado anterior.
Realizar una tabla independiente para cada uno de los mdulos y especificar claramente a qu
mdulo corresponde.
c) Calcular el % de aprovechamiento de la capacidad total de la memoria y proponer alguna forma
de mejorar el resultado.

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Para resolver el problema, seguir obligatoriamente los siguientes apartados:


a) Utilizando nicamente puertas lgicas, disear un Sumador Binario Completo (SBC).
b) Disear un sumador/restador binario de nmeros de tres bits utilizando SBCs como el diseado
en el apartado A) y las puertas lgicas necesarias.
c) Disear un comparador de nmeros de tres bits utilizando nicamente un mdulo de memoria
ROM. Cul es el tamao necesario para este mdulo de memoria ROM? Indique claramente el
significado de cada una de sus entradas y cada una de sus salidas. Escriba el contenido de la
memoria ROM en forma de tabla.
d) Utilizando nicamente los mdulos diseados en los apartados anteriores y los mdulos
combinacionales necesarios, disee la UAL pedida.

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.17 En la suma de los nmeros binarios x= 100101010010011 e y=001010110101011. Calcular cuantas


secuencias de arrastre se generan y la longitud mxima de las secuencias de arrastre.
4.18 Calcular la capacidad que deber poseer una memoria ROM, para implementar un sumador binario de
2 nmeros, uno de 8 bits y el otro de 4 bits.

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

R = X , Y (r3= x1 , r2= x 0 , r1= y1 , r0= y 0 )

Tabla 1: Tabla de funcionamiento de la UAL


Para resolver el problema, seguir obligatoriamente los siguientes apartados:
a)

Disear un comparador de nmeros de dos bits utilizando nicamente comparadores de nmeros de un


bit y puertas lgicas.

b)

Disear un sumador/multiplicador de dos nmeros de 2 bits utilizando nicamente un mdulo de


memoria ROM. Cul es el tamao necesario para este mdulo de memoria ROM? Indique claramente el
significado de cada una de sus entradas y cada una de sus salidas. Escriba todo el contenido de la
memoria ROM en forma de tabla.

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

Figura 1: Mdulo UAL

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

4.27 Dados dos nmeros binarios de 1 bit, x e y, la expresin lgica representa: ( x + y) xy .


A) El bit de suma.
C) El complemento a 1 de x e y .
B) El bit de acarreo de su suma.
D) Ninguno de las anteriores.
4.28 Cuntos SBC de 1 bit haran falta para construir un sumador binario serie capaz de sumar dos
nmeros binarios de n bits?
4.29 Se desea disear un circuito con dos entradas X (x7 x6 x5 x4 x3 x2 x1 x0) e Y (y 7 y 6 y 5 y 4 y 3 y 2 y 1 y 0) y una
salida R (r7 r6 r5 r4 r3 r2 r1 r0 ), todas de ocho bits, que sea capaz de:
Comparar X e Y generando tres seales de salida r7 (1 si X>Y, 0 en caso contrario), r6 (1 si X=Y, 0
en caso contrario) y r5 (1 si X<Y, 0 en caso contrario).
Realizar cuatro operaciones de desplazamiento sobre X empleando dos entradas adicionales
llamadas ed (entrada por la derecha) y eI (entrada por la izquierda). El resultado de la operacin es el
nmero R de ocho bits.
Para ello se desea usar una seal de control C que seleccione el tipo de operacin (comparacin o
desplazamiento) y dos seales ms d1 d0 para indicar el tipo de operacin de desplazamiento. Decir cul de
estas afirmaciones es verdadera.
I. Se puede realizar usando 2 mdulos de memoria ROM de 64 Kpalabras 8 bits y una puerta lgica
NOT.
II. Se puede realizar usando 1 mdulo de memoria ROM de 1 Mpalabras 8 bits.
4.30 Indique si las siguientes afirmaciones son verdaderas.
I. Un SBC (Sumador Binario Completo) se puede realizar utilizando 2 SSB (Semisumador Binario)
conectados en cascada y una puerta lgica OR.
II. El circuito obtenido en la otra afirmacin es ms lento que si se sintetiza el SBC como un circuito
combinacional de dos niveles de puertas AND-OR.
4.31 En un sumador binario de dos nmeros de dos bits, x1x0 e y1y 0 , respectivamente, donde S1S0 es el
resultado de la suma, C1 es el acarreo de la suma y C-1 es el acarreo de entrada, las expresiones:
E1= x1 y 1 (x0y 0 + (x0 y 0 )C-1)
E2 = x1 y 1 + (x1 y 1)(x0y 0 + (x0 y 0 )C-1)
corresponden a:
A) S1 y C1 , respectivamente.
C) S1 y S0 , respectivamente.

B) C1 y S1 , respectivamente.
D) Ninguna de las anteriores.

4.32 Indique si las siguientes afirmaciones son verdaderas:


I. La complejidad de un sumador binario serie crece con el nmero de bits que hay que sumar.
II. Utilizando un sumador binario serie, el tiempo de clculo crece linealmente con el nmero de bits
que hay que sumar.
4.33 Decir cul es el retardo que se obtiene al calcular la suma de dos nmeros de 4 bits cada uno:
I. Si el sumador se ha implementado usando lgica combinacional con 2 niveles y cada puerta tarda 5
s en generar el resultado, el retardo es de 20 s.
II. Si el sumador se ha implementado usando 4 SBC's (Sumador Binario Completo) y cada uno de ellos
tarda 10 s en generar sus salidas el retardo es de 40 s.
4.34 Se desea comparar el valor de dos nmeros binarios, uno de 5 bits: X= x4x3x2x1x0 , y otro de 4 bits:
Y=y3y 2 y 1y 0. Utilizando comparadores de un bit se compara cada pareja de bits, xi con y i , i=0...3,
obtenindose: Mi (xi >y i ), Ii (xi =y i ) y mi (xi <y i ). Indicar si las siguientes afirmaciones son verdaderas o
falsas:
I. La funcin lgica M (X>Y) es M = x4 + M 3 + I3 M 2 + I3I2M 1 + I3I2I1M 0 .
II. La funcin lgica I (X=Y) es I = x 4 I 0 I1 I 2 I 3 .
4.35 Cuntos SSB y puertas OR hacen falta para construir un sumador binario paralelo capaz de sumar
nmeros de 8 bits?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

4.36 Sean 2 nmeros binarios de 12 bits representados en cdigo BCD: X= 010100011001,


Y= 001101000111. Calcular el resultado de la resta X-Y, expresado en cdigo BCD.
4.37 En los diseos indicados en los siguientes apartados, deben utilizarse multiplexores y elementos de
memoria D. Explicar detalladamente cada paso.
A) (1.5 puntos) Disear el registro de desplazamiento de 4 bits de la Figura 1. E0, E1, E2, E3 representan la
entrada paralelo; S0, S1, S2, S3 la salida paralelo; C1, C2 las lneas de control; y CK la seal de reloj. El
registro debe ser capaz de realizar los dos desplazamientos siguientes: LICS (Lgico-Izquierda-CerradoSimple) y LDCS (Lgico-Derecha-Cerrado-Simple). Adems, el circuito debe permitir la carga en
paralelo de la entrada y mantener la informacin almacenada sin modificar (no operacin: NOP). La
codificacin de las entradas de control se muestra en la Tabla 1.
B) (1 punto) Disear el mismo registro del apartado A) pero con la estructura entrada serie / salida serie
que se muestra en la Figura 2.
C) (1.5 puntos) Disear el mismo registro del apartado A) pero de modo que en lugar de realizar
desplazamientos lgicos (LICS y LDCS) realice desplazamientos algebraicos (tambin llamados
aritmticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (AlgebraicoDerecha-Cerrado - Simple).

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

Indicar cul de las siguientes expresiones de entrada al elemento de memoria es correcta:


A) D = Q x y + Q x y
B) D = Q ( y + x ) + x y
C) D = Q x y
D) Ninguna de las anteriores

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

5.5 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 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 un registro de desplazamiento. 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 A < 128
5:
if Cont < 4 then
6:
A A + Cont;
7:
else
8:
A B + A;
9:
endif;
10: Cont = (Cont +1) mod 8;
11: endwhile;
12: Bus B;
13: Bus A;
15: Parar;

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

B) Disendola con memoria ROM hara falta un mdulo de 2 palabras 5 bits/palabra.


C) Disendola con un contador hara falta un contador mdulo-5.
D) Ninguna de las anteriores es cierta.

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

B) Disendola con memoria ROM hara falta un mdulo de 2 palabras 30 bits/palabra.


C) Disendola con un contador hara falta un contador mdulo-64.
D) Ninguna de las anteriores es cierta.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

5.9 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 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.
B) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en
el apartado A) empleando cualquiera de los mtodos propuestos en la asignatura. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
1: Declaracin: A[8], B[8], Cont[3];
2: A Bus;
3: B Bus;
4: for Cont = 0 to 7 do
5:
if Cont es par then
6:
A A + B; A A / 2
7:
else
8:
B B - A; B B * 2
9:
endif;
10: endfor;
11: Bus A;
12: Bus B;
13: Parar;

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)

1: Declaracin de registros : A[8], B[8], C[8],


Contador[3]
2:
A Bus
3:
B Bus
4:
C Bus
5:
for Contador = 0 to 7 do
6:
begin
7:
if C(0)C(1) then A A / B
8:
else A A + B endif
9:
Desplazar derecha (C)
10:
end
11: Parar;

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)

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

5.15 El siguiente algoritmo describe una determinada operacin de un sistema digital.


1: Declaracin: A[8], B[8], Cont[3];
2: A Bus;
3: B 0;
4: for Cont = 0 to 7 do
5:
if A[0] es 1 then
6:
B B + 1;
7:
endif;
8:
Despl.CerradoDcha(A);
9: endfor
10: Bus B;
11: Parar;
A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los
mdulos de la Figura : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada
una, un contador mdulo-8 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.
B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseada en el apartado A) empleando un elemento de memoria tipo D por estado. 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)
0
Q(t)-1 mod 8
Q(t)

S
c0
0
1

S
E

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

5.16 El siguiente algoritmo describe una determinada operacin de un sistema digital.


1: Declaracin: A[8], B[8], Cont[4]; Bus[8]
2: A Bus;
3: B Bus, Cont = 0;
4: while Cont 14
5:
if A es multiplo de 4 then
6:
A A - B, Cont = (Cont +2) mod 16;
7:
else
8:
B B + A;
9: endif;
10: endwhile;
11: Bus B;
12: Bus A;
13: Parar;

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

Figura 2: Mdulos secuenciales del problema con sus tablas de funcionamiento.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

5.17 El siguiente algoritmo describe una determinada operacin de un sistema digital.


1: Declaracin: A[8], B[8], Cont[3];
2: A Bus;
3: B 1;
4: for Cont = 0 to 3 do
5:
if A 1 A 0 0 1 then
6:
B 0;
7:
endif;
8:
Despl.CerradoDcha(A);
9:
Despl.CerradoDcha(A);
10: endfor
11: Bus B;
12: Parar;
A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando, si son
necesarios, 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 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.
B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
Nota: A 0 es el bit menos significativo de A.

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Figura 6.2: Caminos de datos y puntos de control


Seal de control
c0
c1
c2
c3
c4
c5
c6
c7
c8
c9
c10
c11
c12
c13
c14
c15

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.3 Indique si las siguientes afirmaciones son ciertas :


I. Para la fase de ejecucin del ciclo de instruccin existen tantas secuencias de microinstrucciones
como cdigos de operacin existan en el repertorio de instrucciones.
II. Cada fase del ciclo de instruccin se puede descomponer en una secuencia de operaciones
elementales llamadas instrucciones mquina

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Figura 7.13: Unidad de Procesamiento de la UCP del problema 7.13


7.14 En una Unidad de Control microprogramada con formato de microinstrucciones vertical, un subcampo que
deba especificar 16 seales de control Qu anchura mnima debe tener?
7.15 Una Unidad de Control microprogramada con direccionamiento explcito con dos direcciones por
microinstruccin, tiene una memoria de control con 35 bits de longitud de palabra. Si las microinstrucciones
emplean 15 bits para los campos de control. Cul es el nmero mximo de palabras de la memoria de control de
esta Unidad de Control microprogramada?

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

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

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

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.1


DATOS

Tamao de palabra de 16 bits.


Repertorio de 16 instrucciones.
Formato de instruccin :
Campo de 5 bits para el cdigo de operacin.
Campo de11 bits para el campo de operandos.
Los 16 cdigos de operacin comienzan por un 0 (00000-01111)

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.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.2


DATOS
Memoria de 10 mdulos independientes conectados a un mismo bus de memoria.
Cada bus ocupa el bus durante el 20% del ciclo de escritura.
El 80 % del tiempo de ciclo restante el mdulo almacena el dato internamente.
Las operaciones de estos mdulos pueden solaparse.

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

Luego la velocidad de almacenamiento se ve incrementada 5 veces.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.3


DATOS
n Computador de Von Neuman

n Longitud de palabra de 16 bits.


n Instrucciones mquina ocupan 16 o 32 bits (1 o 2 palabras)
n Codigo de operacin ocupa un campo de 7 bits.
Una de las caractersticas de la arquitectura de Von Neumann es precisamente el tener un nico espacio de
memoria utilizado tanto para almacenar datos como para almacenar instrucciones. La afirmacin I es falsa.
Cuando se habla de instrucciones mquina no tiene sentido hablar de seales de control, sino de cdigos
de operacin, formato de instrucciones, etc. Sin embargo, si nos referimos a microinstrucciones, s tiene
sentido. La afirmacin II es falsa.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.4


DATOS
Memoria de 20 mdulos independientes conectados a un mismo bus de memoria.
Cada bus ocupa el bus durante el 25 nseg del ciclo de escritura.
Durante los 75 nseg siguientes el mdulo almacena el dato internamente.
Las operaciones de estos mdulos pueden solaparse.

tbus =25 nseg

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

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.5


Afirmacin I:

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.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.6


DATOS
En un Bus se han conectado la memoria principal y cinco discos iguales.
Tiempo de ciclo de M p es t c =400nseg.
La velocidad de transferencia de cada disco es v T=B (bits/seg).
La longitud de una palabra es de 32 bits.
Cada transmisin sobre el bus necesita 500 nseg para enviar el dato y las diferentes ordenes del
protocolo.
Se desea usar un Bus con temporizacin sncrona.
En un bus con temporizacin sincrona, todos los dispositivos conectados a l estn funcionando con
una frecuencia de reloj fija. Su utilizacin es conveniente cuando los dispositivos que tiene conectados
tienen velocidades de transferencia v T muy parecidas ya que si se tienen conectados un grupo
heterogneo de dispositivos, con velocidades muy distintas, el bus debe adecuarse al ms lento
impidiendo que los ms rpidos empleen todo su potencial.

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

B vT = 810 7 (bits / seg )

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.7


DATOS
Bus con arbitraje distribuido

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

Figura: Bus con arbitraje distribuido

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.

SOLUCION PROBLEMA 1.8


Afirmacin A:
Es FALSA. Un bus puede transportar datos, direcciones y tambin seales de control.
Afirmacin B:
Es VERDADERA. Por ejemplo, en el bus del sistema se encuentran conectados la CPU, la memoria
principal y los controladores de E/S, cada uno de estos elementos poseen velocidades distintas.
Afirmacin C:
Es FALSA, es necesario un mtodo de arbitraje (centralizado o distribuido) para gestionar el uso del
bus por parte de los distintos elementos conectados al mismo.
Afirmacin D:
Es FALSA, ya que es verdadera la afirmacin B.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.9


DATOS
Bus con arbitraje distribuido

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

Figura: Bus con arbitraje distribuido

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

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.10


DATOS
Instrucciones y datos tienen una longitud de 16 bits.
Formato de instruccin
16 bits
Cod. Operacin

Direccin

4 bits

12 bits

Cdigos de operacin:
0011: Ac[M]
0101: M[Ac]
0110: Ac[Ac]+[M]

Para la resolucin de este problema se va a utilizar la siguiente nomenclatura:


M indica una direccin de memoria.
[M] hace referencia al contenido de la direccin de memoria M
Ac indica la direccin del acumulador.
[Ac] hace referencia al contenido de la direccin de memoria M
La equivalencia en hexadecimal de los cdigos de operacin es:
316
Ac[M]
516

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

TEMA 2: Unidad de Memoria


SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II

TEMA 2: Unidad de memoria. Solucin de los problemas

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.1


DATOS
Memoria cach (M c ) asociativa por conjuntos.
q=16 (24 ) conjuntos
r= 4 particiones/ conjunto
Memoria principal CMp = 1 M (220)palabras
K=128 (27) palabras/bloque

Puesto que la M p tiene 220palabras se requieren direcciones de longitud n=log2CMp= log2220=20 bits.

En segundo lugar se va a calcular el nmero de bloques C de la M c

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

Luego la direccin que se nos plantea es:


Etiqueta
101 000 011

Conjunto de Mc
0010

Palabra
0110000

El conjunto de M c al que hace referencia esta direccin es 0010 = 2 10

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.2


DATOS
Memoria principal CMp = 2 M (221)palabras
Memoria cach CMc = 1 K (210) palabras
K=64 (26) palabras/bloque
De los datos del enunciado se deduce que el nmero de bloques C de M c es:

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

Luego dada la direccin en binario del enunciado,


000 000 001 10

0100

110000

El bloque de la M c al que hace referencia es el nmero 4 10 (0100).


La etiqueta que habra que buscar es 6 10 (000 000 001 10).
b) La memoria cach utiliza funcin de correspondencia totalmente asociativa. Por lo tanto el formato de
una direccin desde el punto de vista de la memoria cach es :
n=21 bits
Etiqueta

Palabra

15 bits

log2K= 6 bits

Luego dada la direccin en binario del enunciado,


000 000 001 100 100

110 000

La etiqueta que habra que buscar es 100 10 (000 000 001 100 100).

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.3


DATOS
CMp = 512 (29) palabras
CMc = 32 (25) palabras
El tamao de particin es K=8 (23) palabras/bloque
La cach est inicialmente vacia.

De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

log 2K= 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

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

Fallo se carga el bloque


j=0 en el bloque i=0
acierto
acierto
Fallo se carga el bloque
j=4 en el bloque i=1
acierto
Fallo se carga el bloque
j=2 en el bloque i=2
acierto
acierto

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.4


DATOS
Sistema jerrquico de memoria: Memoria Cach M c y Memoria Principal M p
Mc: Capacidad 256 palabras y tiempo de acceso t ac =10 nseg
M p: Capacidad 1024 Kpalabras y tiempo de acceso tap= 100 nseg
Tasa de acierto h=0.9
Cuando se produce un fallo en M c :
El sistema tarda t ex=20 nseg adicionales en tratar el fallo.
La palabra solicitada es enviada de M p a M c donde es leda por la CPU.
El tiempo de acceso medio tam se define como:

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 .

t gf = t ex + t ap + t ac = 20 + 100 + 10 = 130 nseg


Sustituyendo valores en la formula (1) se obtiene que :

t am = 0.9 10 + 0 .1 130 = 9 + 13 = 22 nseg

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.5


DATOS
CMp = 512 (29) palabras
CMc = 32 (25) palabras
El tamao de particin es K=8 (23) palabras/bloque
La cach est inicialmente vaca.
Funcin de correspondencia totalmente asociativa

De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 25
= 3 =2 2 = 4 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

Obsrvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el


nmero de bloque j de la M p, con lo que el tamao de la etiqueta tambin se poda haber calculado de la
siguiente forma e=log2M= log226= 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. Recurdese que con la letra i se denota el nmero de bloque de memoria cach.
Direcciones ledas
000000 000

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.6


El primer paso a realizar es tachar las columnas de la memoria asociativa cuyo bit del registro de
MASCARA se encuentre a 0. Es decir el argumento que hay que comparar es 0X0X11X0(donde la X
significa que ese bit no se compara).
0

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.7


DATOS
CMp = 4096 (212) palabras
CMc = 64 (26) palabras
K=16 (24) palabras/bloque
Cach inicialmente vaca.
Funcin de correspondencia directa
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 2 6
= 4 =2 2 = 4 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.8


Para resolver este problema los pasos a seguir son:
1)Tachar las filas de la memoria asociativa cuyo bit del registro de marca est a 0.
2)Tachar las columnas de la matriz asociativa cuyo bit del registro de mscara est a 0. Como se muestra en
la figura :
?

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

Luego la solucin es: 2 argumentos.

12

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.9


DATOS
CMp = 4096 (212) palabras
CMc = 128 (27) palabras
K=16 (24) palabras/bloque
Cach inicialmente vaca.
Funcin de correspondencia totalmente asociativa
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 27
= 4 =2 3 = 8 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

e=n -p= 8 bits

p= log2 K= 4 bits

Obsrvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el


nmero de bloque j de la M p, con lo que el tamao de la etiqueta tambin se poda haber calculado de la
siguiente forma e=log2M= log228= 8 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

0000 0001 0000

N de bloque (j) de la Mp al
que hace referencia la
direccin.
1

0001 0001 0100

17

0000 0100 1000

0000 0111 1000

Afirmacin I: Es FALSA, ya que se producen 4 fallos.

13

Fallo o acierto

Fallo se carga j=1 en i=0 que inicialmente


esta vaco
Fallo se carga j=17 en i=1 que inicialmente
esta vaco
Fallo se carga j=4 en i=2 que inicialmente
esta vaco
Fallo se carga j=7 en i=3 que inicialmente
esta vaco

TEMA 2: Unidad de memoria.

Solucin de los problemas

Afirmacin II:
Direcciones ledas

0110 0111 0100

N de bloque (j) de la Mp al
que hace referencia la
direccin.
103

Fallo o acierto

Fallo se carga j=103 en i=4 que inicialmente


est vaca

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.

SOLUCION PROBLEMA 2.10


DATOS
n =16 bits
CMc = 210 palabras
K=16 (24) palabras/bloque
Funcin de correspondencia asociativa por conjuntos.

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

Por otra parte, conocido C es posible calcular el nmero de conjuntos q de la M C

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

Por lo tanto la direccin del enunciado se divide en tres campos:


0000 1101

1100

0011

12

El valor de sus campos en decimal es:


Etiqueta = (0000 1101)2=1310
Conjunto de M c = (1100)2=1210
Palabra = (0011)2=310
13

14

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.11


Una posible solucin a este problema consiste en ir probando uno a uno con los registros de mscara
dados para verificar si producen el registro de Marca especificado, con lo que sera resolver 5 veces un
problema como el problema 2.6
1) La Mscara1 si que produce el registro de Marca especificado.
0
0

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

2) La Mscara 2 no produce el registro de Marca especificado


0
1

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

3) La Mscara 3 si produce el registro de Marca especificado


0
1

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

3) La Mscara 4 si produce el registro de Marca especificado


0
1

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

3) La Mscara 5 si produce el registro de Marca especificado


0
0

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

Luego la solucin es 3 registros de mscara producen el registro de Marca especificado.

SOLUCION PROBLEMA 2.12


DATOS
Memoria de acceso aleatorio
tA= 80 nseg.
tC= 100 nseg
El tiempo de acceso tA se define como el tiempo necesario para leer o escribir un determinado nmero de
bits. O tambin como el tiempo transcurrido desde que se solicita una informacin hasta que se dispone de
ella.
Por otro lado el tiempo de ciclo, tC, se define como el tiempo transcurrido entre dos lecturas consecutivas
en memoria. Y limitar la frecuencia de acceso en una memoria de acceso aleatorio.
Por definicin, la frecuencia de acceso fA o velocidad de transferencia v T se define como el nmero de
palabras que se pueden leer o escribir en memoria por unidad de tiempo.

fA =

1
tC

Luego sustituyendo, se obtiene:

fA =

1
1
= 7 = 10 7 seg 1
9
10010
10

16

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.13


DATOS
Se desea disear un mdulo de memoria de capacidad 256 palabras de 4 bits
Con el dato que proporcionan en el enunciado es posible deducir los n bits necesarios para codificar todas
las posiciones (palabras) de memoria, es decir, conocer cual es la anchura de una direccin de memoria.
Puesto que 256=28 n=log228= 8 bits.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.14


DATOS
Nmero total de accesos NT=230
Tasa de aciertos h=75 %
La definicin de tasa de fallos (1- h) es:

1 h =

NF
NT

Despejando el nmero total de Fallos:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.15


DATOS
CMp = 256 (28) palabras
CMc = 32 (25) palabras
K=8 (23) palabras/bloque
Cach inicialmente vaca.
Reemplazamiento FIFO
Funcin de correspondencia totalmente asociativa
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 2 5
= 3 =2 2 = 4 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

Obsrvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el


nmero de bloque j de la M p, con lo que el tamao de la etiqueta tambin se poda haber calculado de la
siguiente forma e=log2M= log225= 5 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
00000 000

N de bloque (j) de la Mp al que


hace referencia la direccin.
0

00000 001
00000 011
00100 001

0
0
4

00100 101
00010 000

4
2

00010 010
00000 000

2
0

Nmero total de fallos: 3 Fallos

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.16


A la hora de calcular el valor del registro de marca slo hay que tener en cuenta las palabras activas, es
decir, aquellas cuyo bit de etiqueta est a 1. Luego a la vista del registro de etiqueta las palabras 4 y 5 no
se encuentran activas y los bits correspondientes del registro de marca deben ser 0.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.17


DATOS
CMp = 256 (28) palabras
CMc = 32 (25) palabras
K=8 (23) palabras/bloque
Cach inicialmente vaca.
Reemplazamiento FIFO
Funcin de correspondencia totalmente asociativa
El desarrollo de este problema es exactamente igual que el del Problema 2.15, lo nico que vara es que
ahora se considera que se lee adems la direccin 00100 111, que se ha aadido al final de la tabla
construida en el Problema 2.15.
Direcciones ledas
00000 000

N de bloque (j) de la Mp al que


hace referencia la direccin.
0

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.18


DATOS
Sistema jerrquico de memoria: Memoria Cach M c y Memoria Principal M p
Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso t ac =10 nseg
M p: Capacidad 1024 Kpalabras y tiempo de acceso tp= 100 nseg
Tasa de acierto h=0.9
Cuando se produce un fallo en M c :
Se mueve el dato a la CPU.
Simultneamente se mueve el bloque desde la M p a la M c
El tiempo de acceso medio tam se define como:

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:

t gf = max 8 tap , t ap = 8 t ap = 8 100 = 800 nseg

Sustituyendo valores en la formula (1) se obtiene que:

t am = 0.9 10 + 0 .1 800 = 9 + 80 = 89 nseg

22

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.19


DATOS
Sistema jerrquico de memoria: Memoria Cach M c y Memoria Principal M p
Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso t ca =10 nseg
M p: Capacidad 1024 Kpalabras y tiempo de acceso tap= 100 nseg
Tasa de acierto h=0.9
Cuando se produce un fallo en M c :
Primero se mueve el bloque completo desde M p a M c
Despus la CPU lee el dato en la M c
El tiempo de acceso medio tam se define como:

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:

t gf = 8 t ap + t ac = 8 100 + 10 = 810 nseg


Sustituyendo valores en la formula (1) se obtiene que:

t am = 0.9 10 + 0 .1 810 = 9 + 81 = 90 nseg

SOLUCION PROBLEMA 2.20


En las memorias asociativas llenas, la escritura de nuevos datos se realiza reemplazando aquellas palabras
que no se encuentren activas, es decir, cuyo bit correspondiente en el registro de etiqueta sea 0. En
relacin al problema, el nuevo dato se escribir en la primera palabra cuyo bit correspondiente en el
registro de etiqueta sea 0: la palabra 3.

23

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.21


DATOS
CMp = 4096 (212) palabras
CMc = 64 (26) palabras
K=16 (24) palabras/bloque
Cach inicialmente vaca.
Funcin de correspondencia directa.
Afirmacin I y Afirmacin II: FALSAS. Cuando se utiliza la funcin de correspondencia directa no tiene
sentido hablar de conjuntos.

24

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.22


DATOS
Procesador con 12 lneas de direccin A 11A 10....A 0
Para construir su unidad de memoria se dispone de mdulos de 1K =(210) palabras
Las lneas ms significativas (A 11-A 10) se utilizan para la seleccin de cada mdulo
De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por
cada lnea. Por otro lado puesto que se tienen dos lneas A11 y A 10 para seleccionar mdulos de memoria
de 1K, el nmero total de mdulos para implementar el mapa de memoria es 22=4 mdulos. En la siguiente
tabla se muestra el mdulo de memoria al que se hace referencia en funcin del valor de estas dos lneas.
A11

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:

00XX XXXX XXXX


donde X puede valer 0 o 1.
Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:

01XX XXXX XXXX


Las direcciones que hacen referencia al tercer mdulo de memoria (mdulo n 2) son:

10XX XXXX XXXX


Y las direcciones que hacen referencia al cuarto mdulo de memoria (mdulo n 3) son:

11XX XXXX XXXX


En la siguiente tabla aparece la primera direccin (direccin base) y la ltima de cada mdulo de memoria,
tanto en binario como en hexadecimal.
Mdulo de memoria

Direccin de inicio

Direccin final

(Direccin Base)
mdulo n 0

0000 0000 0000 0011 1111 1111


000 (hexadecimal)

mdulo n 1

0100 0000 0000 0111 1111 1111


400 (hexadecimal)

mdulo n 2

7FF (hexadecimal)

1000 0000 0000 1011 1111 1111


800 (hexadecimal)

mdulo n 3

3FF (hexadecimal)

BFF (hexadecimal)

1100 0000 0000 1111 1111 1111


C00 (hexadecimal)

FFF (hexadecimal)

La solucin al problema (las direcciones base de cada mdulo) est dada por lo tanto en la tabla anterior.

25

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.23


DATOS
Computador con un sistema jerrquico de memoria.
El orden de los niveles superiores a los inferiores es:
n registros de la CPU
------> Nivel Superior
n cach primaria
n cach secundaria
n memoria principal
n discos magnticos
-----> Nivel Inferior

Cuando se dispone de un sistema jerrquico de memoria se cumplen los siguientes principios:


1) El coste por palabra es mayor en los niveles superiores que en los inferiores.
2) La capacidad de memoria es menor en los niveles superiores que en los inferiores.
3) La velocidad de transferencia o frecuencia de acceso es mayor en los niveles superiores que en los
inferiores.

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.

SOLUCION PROBLEMA 2.24


DATOS
Sistema de memoria cach con correspondencia totalmente asociativa
Afirmacin I: Esta afirmacin es Falsa, por el propio funcionamiento de este tipo de funcin de
correspondencia, cuando la memoria Cach est llena hay que definir una poltica de reemplazamiento de
bloques.
Afirmacin II: Esta afirmacin es verdadera

26

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.25


DATOS
Procesador con 12 lneas de direccin A 11A 10....A 0
Para construir su unidad de memoria se dispone de mdulos de 1K =(210) palabras
Las lneas ms significativas (A 1-A 0) se utilizan para la seleccin de cada mdulo
De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por
cada lnea. Por otro lado puesto que se tienen dos lneas A 1 y A 0 para seleccionar mdulos de memoria de
1K, el nmero total de mdulos para implementar el mapa de memoria es 22=4 mdulos. En la siguiente tabla
se muestra el mdulo de memoria al que se hace referencia en funcin del valor de estas dos lneas.

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:

XXXX XXXX XX00


donde X puede valer 0 o 1.
Lo que en hexadecimal equivale a las siguientes direcciones, supuesto que Y puede tomar cualquier valor
hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

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:

XXXX XXXX XX01


Lo que en hexadecimal equivale a las siguientes direcciones, supuesto que Y puede tomar cualquier valor
hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

Y Y 1
Y Y 5
Y Y 9
Y Y D

27

TEMA 2: Unidad de memoria.

Solucin de los problemas

Mdulo 2
Las direcciones que hacen referencia al tercer mdulo de memoria (mdulo n 2) son:

XXXX XXXX XX10


Lo que en hexadecimal equivale a las siguientes direcciones, supuesto que Y puede tomar cualquier valor
hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

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:

XXXX XXXX XX11


Lo que en hexadecimal equivale a las siguientes direcciones, supuesto que Y puede tomar cualquier valor
hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.26


DATOS
CMp = 4096 (212) palabras
CMc = 64 (26) palabras
K=16 (24) palabras/bloque
Cach inicialmente vaca.
Funcin de correspondencia directa
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 26
= 4 =22 = 4 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

Afirmacin I: De acuerdo con la tabla construida anteriormente, la afirmacin es VERDADERA.


Afirmacin II: De acuerdo con la tabla construida anteriormente, el bloque i=1 de la M c tiene almacenado
el bloque j=17 de la M p, por lo tanto su etiqueta es 000100. Luego la afirmacin es VERDADERA.

29

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.27


DATOS
M p con 32k palabras de 16 bits/palabra
M c asociativa por conjuntos de 4k palabras
n r =4 bloques/conjunto
n K= 64 palabras/bloque
La M c est inicialmente vaca y utiliza el algoritmo FIFO para el reemplazo de bloques.
La CPU accede a 4352 palabras de las direcciones 0, 1, 2,...,4351, en orden.
Despus repite esta secuencia 9 veces.
La M c es 10 veces ms veloz que la M p tap=10t ac

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

log 2K= 6 bits

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

Tabla 1. Contenido de la memoria cach despus del primer ciclo de lecturas

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

Tabla 2. Contenido de la memoria cach despus del segundo ciclo de lecturas

Cmputo del nmero total de fallos:


En el primer ciclo de lecturas se produca un fallo en cada uno de los 68 bloques a leer: 68 fallos en total. En
los 9 ciclos siguientes, 20 fallos en cada uno de ellos. Luego

N F = 68 + 9 20 = 248 fallos
D) En caso de fallo se especifica que las acciones que tienen lugar son :

32

TEMA 2: Unidad de memoria.

Solucin de los problemas

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 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

t a = (43520 + 248 10 64) t ac = 202240 t ac seg

33

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.28


DATOS

CMp=64k palabras =216 palabras


CMc =1k palabras = 210 palabras
Memoria cach con funcin de correspondencia directa
K= 128 palabras/bloque
tap=10t
tac =1t

a) La anchura de una direccin de memoria es n=log2CMp=log2216= 16 bits.


Por otro lado la anchura del campo PALABRA que especifica la posicin de una palabra en el interior de
un bloque viene dada p=log2K=log2128= 7 bits.
La anchura del campo BLOQUE que especifica el i bloque de M c donde se busca la palabra viene dado por:
b=log2(CMc /K)=log2(210/27)=log2(23)=3 bits.
Por ultimo la anchura del campo ETIQUETA, es e=n-(b+p)=16-(7+3)= 6 bits.
Es decir, desde el punto de vista de la memoria cach, una direccin de memoria principal se considera
compuesta de la forma indicada en la figura.
n=16 bits
Etiqueta

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

El tiempo total de ejecucin del programa es por tanto:


ta = NTt ap= 26.336 10t = 263.360t.

34

TEMA 2: Unidad de memoria.

Solucin de los problemas

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)

Formato direccin memoria principal


Bloque i de Mc
(3 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

Tabla 2. Formato de las direcciones de memoria principal

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

3) Segunda a dcima ejecucin del bucle exterior:


Como se ha visto anteriormente, el bucle exterior comienza referenciando las particiones 000 y 001
correspondientes a la etiqueta 000000. Estas particiones han sido reemplazadas por las correspondientes a
la etiqueta 000001. Se producen por tanto dos fallos y se reemplazan las particiones.
El bucle sigue referenciando las particiones 010 a 111 (etiqueta 000000), que como se comprueba en la
Tabla 3 se encuentran en la cach. Estas particiones no producen fallos.
El bucle termina referenciando las particiones 000 y 001 con etiqueta 000001, pero stas han sido
sustitudas al comienzo del bucle por las correspondientes a la etiqueta 000000. Se producen, por tanto,
otros dos fallos, y se reemplazan las particiones.
La segunda ejecucin del bucle ha terminado con cuatro fallos y el contenido de la cach es el mismo que
haba al comenzar, es decir, el mostrado en la Tabla 3.
Cada subsiguiente ejecucin del bloque exterior producir otros cuatro fallos y dejar la cach con el
mismo contenido que haba al comenzar. En total, en las nueve ejecuciones se producirn 94 = 36 fallos, y
el contenido de la cach al finalizar ser el mostrado en la Tabla 3.
4) Direcciones 1201-1500:
La salida del bucle exterior hace que se referencien las particiones 1, 2 y 3 correspondientes a la etiqueta
000001. La 1 ya se encuentra cargada en la cach, pero la 2 y la 3 no; por tanto se producen otros 2 fallos.
Cmputo del nmero total de fallos:
El nmero total de fallos es NF= 10 + 36 + 2 = 48 fallos.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

Luego el tiempo total que se emplea es:

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

t a = (26336 + 48 10 128 ) = 87776 seg


Aunque no lo solicita el enunciado del problema, a modo de curiosidad se puede calcular la tasa de acierto
y la razn entre los tiempos de acceso ta con cach y sin cach(ta apartado (b):

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.

SOLUCION PROBLEMA 2.29


DATOS
Nmero total de accesos NT=220
Nmero de fallos NF=217
Tasa de fallos?
La definicin de tasa de fallos es:

Tasa de fallos =

N F 217
1 1
= 20 = 3 = = 0.125
NT 2
2
8

Luego la Tasa de fallos es 12.5 % .

37

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.30


DATOS
Procesador con 12 lneas de direccin A 11A 10....A 0
Para construir su unidad de memoria se dispone de mdulos de 2K =(211) palabras
La lnea A 1 se utilizan para la seleccin de cada mdulo
De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por
cada lnea. Por otro lado puesto que se tienen una nica lnea A1 para seleccionar mdulos de memoria de
2K, el nmero total de mdulos para implementar el mapa de memoria es 2 mdulos. En la siguiente tabla se
muestra el mdulo de memoria al que se hace referencia en funcin del valor de A 1.

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:

XXXX XXXX XX0X


donde X puede valer 0 o 1.
Lo que en hexadecimal equivale a las siguientes direcciones, supuesto que Y puede tomar cualquier valor
hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

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:

XXXX XXXX XX10


Lo que en hexadecimal equivale a las siguientes direcciones, supuesto que Y puede tomar cualquier valor
hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

Y Y 2

Y Y A

Y Y 3

Y Y B

Y Y 6

Y Y E

Y Y 7

Y Y F

De acuerdo con el anlisis realizado las afirmaciones son:


A) FALSA Ya que C89 se encuentra en el mdulo 0 y C8A en el mdulo 1.
B) VERDADERA. Ya que C89 se encuentra en el mdulo 0 y C8A en el mdulo 1.
C) FALSA. La lnea de seleccin es A 1.
D) FALSA. La afirmacin B es verdadera.

38

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.31


DATOS

Memoria principal de CMp= 64k palabras =216


Memoria cach de CMc = 2k palabras =211
Utiliza correspondencia totalmente asociativa
K= 256 palabras/bloque =28
La memoria cach est inicialmente vacia.
Cuando la memoria cach est llena, se reemplaza el bloque que se ha utilizado ms
recientemente.
La CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la direccin 0 a la
2300.
tap=7t ac

A) Cuando se utiliza correspondencia totalmente asociativa la direccin de memoria principal se


descompone en dos campos: etiqueta y palabra. La anchura de una direccin de memoria principal es
n=log2CMp=log2216=16 bits. Por otro lado los bits necesarios para codificar la posicin de una palabra en
un bloque es p=log2K=log228=8 bits. Por lo tanto los bits del campo etiqueta son
e=np=16-8=8 bits. Es decir el formato de una direccin queda de la siguiente forma:
n=16 bits
Etiqueta

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:

tiempo = NT 7 t ac = 11505 7 t ac= 80535 t ac seg


C) El nmero de bloques de la memoria cach 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

campo etiqueta, esto equivale a decir que los 2 dgitos ms significativos en hexadecimal son la
etiqueta.
Rango de direcciones (Decimal)

Rango de direcciones (Hexadecimal)

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.

Primera ejecucin del ciclo


La cach se va llenando con bloques de memoria principal que son copiados cuando se produce la
primera referencia a una direccin del bloque. Por ejemplo, cuando se referencia la direccin 1536, se
mueve de memoria principal a memoria cach el bloque completo que contiene las direcciones de la
1536 a la 1791. Al utilizar la tcnica de correspondencia totalmente asociativa, el bloque se mueve a
cualquiera de las particiones vacas de la cach, en el caso del ejemplo anterior a la particin 6.
El problema se plantea cuando la memoria ya est llena y se referencia la direccin 2048, perteneciente
al bloque con etiqueta 08. La tcnica de reemplazamiento propuesta en el problema es: reemplazar el
bloque que se haya utilizado ms recientemente. En este caso, es el bloque almacenado en la
particin 7 y con etiqueta 07.
Por todo lo visto, al finalizar el primer ciclo, en la cach se encuentran almacenadas todas las
direcciones propuestas excepto las pertenecientes al bloque con etiqueta 07.

Segunda ejecucin del ciclo


En esta segunda ejecucin del ciclo se producen aciertos hasta referenciar la primera direccin del
bloque 07, sustituido en el ciclo anterior. Utilizando la tcnica de reemplazamiento propuesta, el
ltimo bloque referenciado es el 06, que es sustituido por el 07. Posteriormente las direcciones del
bloque 08 dan aciertos.

Resto de ciclos
Se producen situaciones similares a la del segundo ciclo, con una sustitucin en cada uno de ellos.

Luego la tabla que nos piden es la siguiente:


Bloque de Mc
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

t a = (11505 + 13 7 256) t ac = 34801 t ac seg

41

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.32


DATOS
Nmero total de accesos NT=220
Nmero de fallos NF=217
La definicin de tasa de fallos es:

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

Luego la tasa de aciertos h= 87.5 % .

42

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.33


DATOS
Memoria principal de CMp= 8192 Kpalabras.
Memoria cach de CMc = 2 Kpalabras=211 palabras
La memoria cach utiliza.correspondencia asociativa por conjuntos
n K=64 palabras/ bloque (26)
n r= 4 bloques/conjunto
Inicialmente la memoria cach est llena con la ejecucin de un programa Prog1
Se carga en memoria principal un nuevo programa Prog2
Prog2 efecta la siguiente secuencia de referencias en la ejecucin de su cdigo :
n Lee secuencialmente las direcciones 128,129,130,....., 143
n Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133
n Finalmente lee secuencialmente las direcciones 134,135,....,168
El formato de direccin para una memoria cach con correspondencia asociativa por conjuntos es, el
siguiente:
n bits

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

El nmero total de conjuntos q viene dado por:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

23 bits
Conjunto
de Mc

Etiqueta

14 bits

3 bits

Palabra

6 bits

La tasa de acierto h, se define como:

h=

Numero de aciertos
N
= A
Numero total de accesos NT

Del enunciado se puede calcular el nmero total de accesos NT.


Lee secuencialmente las direcciones 128,129,130,....., 143 (143-128)+1= 16 accesos
Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133 203= 60 accesos
Finalmente lee secuencialmente las direcciones 134,135,....,168 (168-134)+1=35 accesos
Por lo tanto NT= 16+60+35= 111 accesos
Queda por calcular el nmero de aciertos.
Para su clculo hay que tener en cuenta, que cuando se carga en memoria principal Prog2, en la memoria
cach no hay ninguna copia del cdigo de este nuevo programa por lo que primera referencia a su cdigo
va a producir necesariamente un fallo en la memoria cach.
En la funcin de correspondencia asociativa por conjuntos, cada bloque j de palabras de memoria principal
tiene asignado un conjunto i de memoria cach mediante la relacin:

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 bloque j=0 de M p (direcciones 0 a 63) Conjunto i=0 de M C


El bloque j=1 de M p (direcciones 64 a 127) Conjunto i=1 de M C
El bloque j=2 de M p (direcciones 128 a 191) Conjunto i=2 de M C

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.34


Una posible forma de resolver el problema consiste en ir probando uno a uno con los registros de mscara
dados para verificar si producen el registro de Marca especificado.
1) Mscara 1

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

La mascara 2 si genera este registro de marca.

45

MARCA

TEMA 2: Unidad de memoria.

Solucin de los problemas

3) Mscara 3

ETIQUETA

ARGUMENTO

MASCARA

MARCA

La mascara 3 si genera este registro de marca.

4) Mscara 4

ETIQUETA

ARGUMENTO

MASCARA

MARCA

La mascara 4 si genera este registro de marca.

5) Mscara 5

ETIQUETA

ARGUMENTO

MASCARA

MARCA

La mascara 5 si genera este registro de marca.

SOLUCION : Los 5 registros de mascara propuesto generan el mismo registro de marca.

46

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.35


DATOS
CMp = 220 palabras
CMc = 1024 (210) palabras
K=64 (26) palabras/bloque
Funcin de correspondencia directa
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 210
= 6 =24 = 16 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.36


DATOS
Memoria RAM de capacidad total CT= de 1024 palabras x 16 bits/palabra.
Construida con mdulos de memoria RAM de capacidad C0= 128 palabras x 8 bits/palabra
El nmero de lneas del bus de direcciones n se calcula a partir del nmero de palabras que posee la
memoria RAM construida. Es decir:

n = log 2 1024 = log 2 210 = 10 lneas


Puesto que el nmero de palabras que posee el modulo RAM unidad es de 128, para conseguir 1024
palabras de capacidad total se necesitarn:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.37


DATOS
Memoria de acceso aleatorio.
ta =100 nseg.
tc =200 nseg.
En una memoria de acceso aleatorio la frecuencia de acceso fa se calcula de la siguiente forma:

fa =

1
1
1
10 9
10 7
=
=
=
=
seg 1 = 510 6 seg 1
9
t c 200 nseg 20010 seg 200seg
2

Luego la frecuencia de acceso es fa =5106 seg -1.

49

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.38


DATOS
Sistema jerrquico de memoria.
CMc :=128 palabras, K= 16 pal/ bloque, t ca =10 seg
CMp=1024 Kpalabras, tp= 200 seg
Tasa de acierto h=0.99
Cuando se produce un fallo en M c :
Se mueve el bloque completo a la M C.
Se lee el dato desde M C.
textra=20 seg
El tiempo de acceso medio tam se define como:

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 gf = K t p + tca + t extra = 16 200 + 10 + 20 = 3230 seg

Sustituyendo valores en la formula (1) se obtiene que:

t am = 0.99 10 + 0.01 3230 = 9.9 + 32.3 = 42 .2 seg


Por otra si slo se utilizara la memoria principal el tiempo de acceso medio sera:

t am ' = t p = 200 seg


Se observa que:

t am '
= 4.7
t am
Luego las afirmaciones son:
Afirmacin I: VERDADERA.
Afirmacin II: VERDADERA

50

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.39


DATOS
CMp = 64 Kpalabras = (216) palabras
CMc = 1K palabras = (210) palabras
K=8 palabras/bloque = (23) palabras/bloque
Funcin de correspondencia directa.
En un determinado instante la direccin 6B59, de la memoria principal est en la memoria cach
De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 210
= 3 =2 7 = 128 bloques.
K
2

Por otra parte, el nmero de bloques M de la M p.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.40


DATOS
Sistema jerrquico de memoria con memoria cach de dos niveles.
La cach de nivel 1, es la ms cercana a la CPU
La cach de nivel 2, es la ms cercana a la memoria principal.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.41


DATOS
16 lneas de direccin A 15-A 0.
Memoria compuesta de mdulos ROM y mdulos RAM.
La ROM consta de un nico mdulo y ocupa las direcciones ms bajas de memoria, comenzando por la
direccin 0.
La RAM con una capacidad de CRAM=48Kbytes ocupa las direcciones restantes.
Puesto que el sistema consta de n=16 lneas de direccin, podr direccionar una capacidad de memoria de

CT = 216 bytes = 64 Kbytes


Dicha capacidad es la suma de la capacidad de la memoria ROM y de la memoria RAM.

CT = C ROM + C RAM
Puesto que se conocen CT y CRAM es posible calcular CROM

CROM = CT C RAM = 64 Kbytes 48Kbytes = 16 Kbytes


Luego se tiene un sistema de CT=64 Kbytes que se distribuye de la siguiente forma:
n Un nico mdulo de ROM de capacidad CROM=16 Kbytes, que contiene las direcciones bajas
de memoria, comenzando desde la 0.
n Varios mdulos de memoria RAM (en el enunciado no concreta el nmero, suponemos como
hiptesis de trabajo que hay tres) que suman entre todos ellos una capacidad
CRAM=48 Kbytes.
Si se supone que el sistema posee al menos tres mdulos de memoria RAM y uno de ROM, se necesitarn
dos bits para seleccionar uno de los cuatro mdulos de memoria. Esos bits de seleccin deben ser A15A 14
ya que la ROM ocupa las direcciones ms bajas de memoria, comenzando por la direccin 0. Es decir, las
direcciones que acceden a la ROM son de la forma:
00XX XXXX XXXX XXXX
Se tiene por tanto la siguiente tabla de seleccin de mdulos:
A15A14
00

Funcin lgica de seleccin

01

CS RAM 0 = A15 A14

RAM n 0

10

CS RAM 1 = A15 A14

RAM n 1

11

CS RAM 2 = A15 A14

RAM n 2

CS ROM = A15 A14

Modulo seleccionado
ROM

De acuerdo con el razonamiento realizado, se tiene:


Afirmacin I: VERDADERA.
Afirmacin II: FALSA.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.42


DATOS
Memoria de acceso NO aleatorio.
fa =2106 bits/seg..
ta =2mseg
N=103 bytes
En una memoria de acceso NO aleatorio la frecuencia de acceso fa o velocidad de transferencia v T se
calcula de la siguiente forma:

vT = f a =

N
tn t a

Despejando tn:

tn =

N
+ ta
vT

Sustituyendo valores:

10 3 ( bytes)23 (bits / byte)


tn =
+ 210 3 ( seg ) = 410 3 + 210 3 = 610 3 seg = 6 mseg
6
210 (bits / seg )
Luego el tiempo medio en leer o escribir 103 bytes es t n=6 mseg.

54

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.43


DATOS
Sistema jerrquico de memoria.
CMc :=256 palabras, K= 8 pal/ bloque, t ac =20 nseg
CMp=1024 Kpalabras, tap= 200 nseg
Tasa de acierto h=0.90
Cuando se produce un fallo en M c :
Se mueve el bloque completo a la M C.
Se lee el dato desde M C.
El tiempo de acceso medio tam se define como:

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:

t gf = K t ap + t ac = 8 200 + 20 = 1620 n seg

Sustituyendo valores en la formula (1) se obtiene que :

t am = 0.90 20 + 0.10 1620 = 18 + 162 = 180 n seg


Luego la solucin es tam=180 nseg.

55

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.44


DATOS
Nmero total de accesos NT=1020
Nmero de fallos NF=1018
La definicin de tasa de fallos es:

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

Luego la tasa de aciertos h= 99 % .

SOLUCION PROBLEMA 2.45


DATOS

Funcin de correspondencia asociativa por conjuntos:


ETIQUETA: 20 bits, CONJUNTO: 7 bits, PALABRA: 5 bits.
r=2 bloques/conjunto.
L=Longitud de palabra es 1 byte.

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:

C = q (conjuntos)r ( bloques / conjunto) = 2 7 2 = 28 bloques


Por otra parte el nmero de bits p=5 utilizados para el campo PALABRA con el que se codifica la posicin
de una palabra dentro de un bloque, es posible obtener el nmero de palabras K que tiene un bloque:

K = 2 p = 25 = 32 ( palabras / bloque )
Finalmente la capacidad CMc de la memoria cach viene dada por:

CMc = K C x L = 25 ( palabras / bloque )28 (bloques ) x 1( byte/ palabra )


CMc = 213 ( palabras ) x 1( byte/ palabra ) = 8 Kbytes
Luego CMc =8 Kbytes

56

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.46


DATOS
Se desea acercar la velocidad de la unidad de memoria de un computador a la velocidad de los
registros de su CPU, a un coste razonable.
Para resolver este problema hay que recordar las propiedades de un sistema jerrquico de memoria.
Afirmacin A: Es falsa ya que aumentar el nmero de registros de la CPU no influye en la velocidad de la
unidad de memoria principal, adems es muy costoso.
Afirmacin B: Es verdadera, ya que incluir una memoria cach en el sistema disminuye el tiempo medio de
acceso a la memoria y por lo tanto aumenta la velocidad. Adems a un coste razonable.
Afirmacin C: Es falsa, aumentar la capacidad de los discos magnticos no influye para nada en la
velocidad de la unidad de memoria.
Afirmacin D: Es falsa, la afirmacin B es verdadera.

57

ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II

TEMA 3: Unidad de Entrada Salida


SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II

TEMA 3: UNIDAD DE ENTRADA SALIDA

Solucin de los problemas

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.1


DATOS
n Canal multiplexor
n 2 unidades de disco =>v TD=500 Kbytes/seg
n 2 unidades de cinta =>v TC= 150 Kbytes/seg

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

v tmax = v Tcanal = 2 v TD + 2 vTC = 2 (500) + 2 (150) = 1300( Kbytes / seg )

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.2


DATOS
n
n
n
n

Canal selector
2 unidades de disco =>v TD=106 bytes/seg
2 unidades de cinta =>v TC= 105 bytes/seg
tbus=10nseg

Se tiene una configuracin como la que se muestra en la figura :

Mp
E/S

D
Canal
Selector

C
E/S
C

Bus del sistema

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.

v Tcanal = vTD = 106 ( bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un
perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.3


DATOS
n
n
n
n

frecuencia del computador es f=108 ciclos/seg


10 ciclos/instruccin
5 ciclos/pal
DMA con estrategia de transferencia por rfagas

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 =

f (ciclos / seg ) 108


=
= 2 10 7 pal / seg
5( ciclos / pal )
5

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.4


DATOS
n n= 13 lneas de direccin.
n Memoria con 212 palabras
n Utiliza E/S localizada en memoria.
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 = 212 direcciones
Luego el nmero de direcciones para acceder a palabras en los perifricos vendr dado por :

N DP = N D N DM = 213 212 = 212 direcciones


a) Nos dicen que cada perifrico ocupa una direccin => R= 1 direccin/perifrico. Luego el nmero
mximo de perifricos NPmax es :

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 )

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.5


DATOS
n 4 lneas de interrupcin PI3, PI2, PI1 y PI0
n Son enmascarables las lneas PI3, PI2, y PI1
n Una peticin de interrupcin PIj enmascara las lneas Pii con i<j e i0.
n Se producen 4 peticiones de interrupcin es este orden: PI3, PI2, PI0 y PI1
n Las tres ltimas peticiones se producen mientras se est ejecutando el programa de servicio de PI3
De acuerdo con el enunciado la prioridad de las diferentes lneas es:
prior(PI0)> prior(PI3)> prior(PI2)> prior(PI1)
Analicemos la secuencia de peticin de interrupciones.
1) Llega PI3, se enmascaran PI2 y PI1, y se comienza a ejecutar el programa de servicio de la
interrupcin PI3.
2) Llega PI2, como est enmascarada no se atiende.
3) Llega PI0, como tiene una prioridad superior a PI3, se detiene la ejecucin del programa de
servicio de PI3 y se ejecuta completo el programa de servicio de PI0.
4) Se continua con el programa de servicio de PI3. Llega PI1 como est enmascarada no se atiende.
5) Terminado el programa de servicio de PI3 se ejecuta el programa de servicio de PI2, dejando
enmascarada PI1.
6) Terminado el programa de servicio de PI2 se ejecuta el programa de servicio de PI1, ahora no hay
ninguna lnea enmascarada.
7) Se termina el programa de ejecucin de PI1.
Luego el orden de ejecucin de las interrupciones es:
PI3, PI0, PI3, PI2 y PI1

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.6


DATOS
n
n
n
n

frecuencia del reloj del computador es f=200106 ciclos/seg


4 ciclos/instruccin
2 ciclos/instruccin no requiere el uso del bus
DMA con estrategia de robo de ciclos

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:

f ( ciclos / seg) 200x106


v ejec1 =
=
= 5 107 (instr / seg )
4( ciclos / inst)
4
2) Calcular v ejec2 .
1 ciclo
Ejecucin con
DMA por robo
de ciclos

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

f ( ciclos / seg ) 200x10 6


=
=
= 4 10 7 (instr / seg )
5( ciclos / inst)
5

3) El nmero de instrucciones que dejen de ejecutarse por segundo viene dado por :

v ejec1 v ejec2 = 5 10 7 4 10 7 = 10 7 (instr / seg )


-------

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.7


DATOS
n
n
n
n

frecuencia del reloj del computador es f=108 ciclos/seg


4 ciclos/instruccin
2 ciclos/instruccin no requiere el uso del bus
1 ciclo/palabra

I) Afirmacin: Con DMA transparente v tmax =5107 (pal/seg)


1 ciclo
Ejecucin con
DMA
transparente

Instr1

Instr2

Instr3

Se ha de recordar que en la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la


ejecucin de una instruccin en que la CPU no hace uso del bus. El enunciado del problema nos dice que
en promedio el computador necesita 4 ciclos para ejecutar una instruccin y que slo en dos de ellos no
requiere el uso del bus. Adems nos dicen que el controlador de DMA nicamente necesita de 1 ciclo para
transmitir una palabra. Luego el nmero de palabras que se transmiten por DMA en la ejecucin de una
instruccin (R), vendra dado por:

R=

2( ciclos / instr )
= 2( pal / instr )
1( ciclo / pal )

La velocidad de ejecucin es:

v ejec

f ( ciclos / seg ) 108


=
=
= 25 106 (instr / seg )
4( ciclos / inst)
4

La velocidad de transferencia mxima es:

v tmax = R vejec = 2( pal / inst) 25 10 6 (inst / seg ) = 5 107 ( pal / seg )


Luego la afirmacin I es verdadera.
II)Con DMA por robo de ciclos v tmax =2107 (pal/seg).
1 ciclo
Ejecucin con
DMA por robo
de ciclos

Instr1

Instr2

Instr3

La velocidad de ejecucin es:

v ejec

f ( ciclos / seg ) 108


=
=
= 2 10 7 (instr / seg )
5( ciclos / inst)
5

La velocidad de transferencia mxima, puesto que R=1pal/inst

v tmax = R vejec = 1( pal / inst ) 2 10 7 (inst / seg ) = 2 10 7 ( pal / seg )


La afirmacin II, es verdadera.

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.8


DATOS
n
n
n
n

Canal multiplexor
2 unidades de disco =>v TD=106 bytes/seg
5 unidades de cinta =>v TC= 2105 bytes/seg
tbus=100nseg

Se tiene una configuracin como la que se muestra en la figura:

Mp
E/S

D
Canal
Multiplexor

C
C
E/S

C
C

Bus del sistema

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.

v Tcanal = 2 vTD + 5 vTC = 2 10 6 + 5 2 10 5 = 3 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre
un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.9


DATOS
n Controlador de E/S con buffer de capacidad C=256 Kb.
n Buffer inicialmente vacio.
n Operacin de E/S con una impresora :
n Recibe datos por el bus del sistema a v in= 1 Mb/seg.
n Transmite datos a la impresora a v out= 256 Kb/seg.
n Recibe y transmite de forma continua simultneamente.

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:

v = v in v out = 2 20 (bytes / seg ) 218 (bytes / seg ) = ( 2 2 1) 218 = 3 2 18 ( bytes / seg )


El tiempo de llenado se calcula como el cociente entre la capacidad del buffer y la velocidad de llenado.

t llenado =

C
2 18 ( bytes)
=
= 0.33 seg
v 3 2 18 (bytes / seg )

SOLUCION PROBLEMA 3.10


DATOS
n VP velocidad mxima de transferencia empleando E/S controlada por programa.
n VI velocidad mxima de transferencia empleando E/S controlada con interrupciones.
n VD velocidad mxima de transferencia empleando E/S controlada con DMA.
La relacin que se cumple es : VD > VI >VP
La respuesta correcta es la B.

11

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.12


DATOS
n
n
n
n

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.13


DATOS
n
n
n
n

Frecuencia del reloj del computador es f=200106 ciclos/seg


4 ciclos/instruccin
1 ciclo/instruccin no requiere el uso del bus
1 ciclo/palabra

Si se realiza DMA por robo de ciclos:


1 ciclo
Ejecucin con
DMA por robo
de ciclos

Instr1

Instr2

Instr3

La velocidad de ejecucin es:

v ejec =

f ( ciclos / seg ) 20010 6


=
= 40 10 6 = 4 10 7 (instr / seg )
5(ciclos / inst )
5

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:

vt max = R v ejec = 1( pal / inst ) 4 10 7 (inst / seg ) = 4 10 7 ( pal / seg )

Si se realiza DMA transparente:


1 ciclo
Ejecucin con
DMA
transparente

Instr1

Instr2

Instr3

La velocidad de ejecucin es:

v ejec =

f (ciclos / seg ) 20010 6


=
= 50 106 = 5 10 7 (instr / seg )
4( ciclos / inst )
4

En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecucin de una


instruccin en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio el
computador necesita 4 ciclos para ejecutar una instruccin y que slo en uno de ellos no requiere el uso
del bus. Adems nos dicen que el controlador de DMA nicamente necesita 1 ciclo para transmitir una
palabra. Luego el nmero de palabras R que se transmiten en la ejecucin de una instruccin, vendra dado
por:

R=

1(ciclos / instr )
= 1( pal / instr)
1( ciclo / pal )

La velocidad de transferencia mxima es:

vt max = R v ejec = 1( pal / inst ) 5 10 7 (inst / seg ) = 5 10 7 ( pal / seg )


De acuerdo con estos resultados las afirmaciones son: Afirmacin I: FALSA Afirmacin II: VERDADERA

13

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.14


DATOS
n
n
n
n

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.

vTcanal = 3 vTD + 5 vTC = 3 510 6 + 5 10 5 = 15.5 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre
un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

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

SOLUCION PROBLEMA 3.15


Afirmacin I: Es falsa ya que la comprobacin de la interrupcin es por hardware (lnea RI) y no por
software eso corresponde al tipo encuesta.
Afirmacin II: Es falsa, la CPU recibe el vector de interrupciones v int exclusivamente por el bus de datos.
Afirmacin III: Es falsa, se tratan de conceptos independientes, ya que se est hablando por un lado de
identificacin de la interrupcin I y por otro de niveles de interrupcin I.
Luego la respuesta correcta es la D.

14

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.16


DATOS
n Canal multiplexor
n 2 unidades de disco => v TD=106 bytes/seg
n 10 unidades de cinta => v TC= 103 bytes/seg

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.

vTcanal = 2 vTD + 10 vTC = 2 106 + 10 103 = 2 106 + 10 4 = 2.0110 6 (bytes / seg )

SOLUCION PROBLEMA 3.17


La solucin a este problema se encuentra en el archivo probT3_17.pdf

SOLUCION PROBLEMA 3.18


DATOS
n 4 lneas de interrupcin PI1, PI2, PI3 y PI4
n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1)
n El sistema no permite anidamiento.
n Se producen 4 peticiones de interrupcin es este orden: PI3, PI1, PI4 y PI2
n Las tres ltimas peticiones se producen mientras se est ejecutando el programa de servicio de PI3
Conviene darse cuenta de que el sistema no permite anidamiento, en consecuencia se trata de un
sistema con un nico nivel de interrupciones, de tal forma que cuando comienza a ejecutarse el
programa de gestin de una interrupcin, ste se completar antes de atender a otra peticin de
interrupcin.
Analicemos la secuencia de peticin de interrupciones :
1) Llega PI3 y comienza a ejecutarse el programa de gestin de PI3.
2) Llega PI1, continua ejecutndose el programa de gestin de PI3.
3) Llega PI4, continua ejecutndose el programa de gestin de PI3.
4) Llega PI2, continua ejecutndose el programa de gestin de PI3.
5) Terminado el programa de gestin de PI3, se procede a ejecutar el programa de gestin de PI4
que es la interrupcin recibida con mayor prioridad.
6) Terminado el programa de gestin de PI4, se procede a ejecutar el programa de gestin de PI2
que es la interrupcin recibida con mayor prioridad.
7) Terminado el programa de gestin de PI1, se procede a ejecutar el programa de gestin de PI4
que es la interrupcin recibida con mayor prioridad.
Luego el orden de ejecucin de las interrupciones es:
PI3, PI4, PI2 y PI1

15

SOLUCIN
PROBLEMA
3 - 17

Problemas de los exmenes del curso 97/98

13

Figura 99-3-1: Diagrama de la conexin del controlador de interrupciones a la UCP

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=0 entonces INTAj=0, independientemente de los valores de INTRi (i=0..3).

Si INTA=1 e INTRj corresponde a la solicitud de peticin activada de mayor prioridad, entonces


INTAj=1.

Si INTA=1 e INTRj=1, pero existe un INTRk de mayor prioridad que tambin est activado, entonces
INTAj=0.

14

Estructura y Tecnologa de Computadores II

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

Tabla 99-3-1: Tabla de verdad de INTAi (X representa 0 1, indistintamente)

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

Figura 99-3-2: Mecanismo de enmascaramiento de las interrupciones

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).

Problemas de los exmenes del curso 97/98

15

INTR
1

INTR3

INTR2

Codificador
de prioridad

INTR1

INTR0

I3

I2

I1

I0

Decodificador
0

Figura 99-3-3: Mecanismo de gestin de prioridades

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

Estructura y Tecnologa de Computadores II

I3

INTA3

I2

INTA2

INTA1

I1

INTA0

I0

INTA

Figura 99-3-4: Generacin de las seales de aceptacin INTAi

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

Figura 99-3-5: Controlador de interrupciones

UCP

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.19


DATOS
n
n
n
n

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.

vTcanal = 2 vTD + 10 vTC = 2 106 + 10 103 = 2 106 + 10 4 = 2.0110 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre
un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.20


DATOS
n 5 lneas de interrupcin PI4, PI3, PI2, PI1, PI0
n Enmascarables mediante 5 bits del Registro de estado de la CPU.
n Una peticin PIj desactiva las lneas PIi con i <j
n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1) > prior(PI0)
n Interrupciones anidables. Sistema multinivel.
n Se producen 4 peticiones de interrupcin es este orden: PI2, PI4, PI3, PI1
n Antes de finalizar PI2, llegan simultneamente (PI4, PI3, PI1)

Analicemos la secuencia de peticin de interrupciones :


1) Llega PI2 y comienza a ejecutarse el programa de servicio de PI2.
2) Llegan (PI4, PI3, PI1) simultneamente, puesto que PI4 es la interrupcin ms prioritaria se
comienza a ejecuta el programa de servicio de PI4 hasta completarlo. Quedan pendientes de
atender PI3, PI2 y PI1
3) Finalizado el programa de servicio de PI4, comienza a ejecutar el programa de servicio de
PI3, que es la interrupcin pendiente de mayor prioridad, hasta completarlo. Quedan
pendientes de atender PI2 y PI1.
4) Finalizado el programa de servicio de PI3, contina con la ejecucin del programa de
servicio de PI2, que es la interrupcin pendiente de mayor prioridad, justo en el punto en
que fue interrumpido en el paso 2) hasta completarlo. Queda pendiente de atender PI1.
5) Se atiende a PI1
Luego el orden en que se tratan las interrupciones es:
PI2, PI4, PI3, PI2, PI1

17

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.21


DATOS
n
n
n
n

Canal selector
3 unidades de disco => v TD=5106 bytes/seg
5 unidades de cinta => v TC= 105 bytes/seg
tbus=50 nseg

La velocidad de transferencia de un canal selector v Tcanal es:

vTcanal = max{ vTD , vTC } = 5 10 6 ( bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre
un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

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

SOLUCION PROBLEMA 3.22


DATOS
n El mecanismo de la figura es E/S localizada en memoria.
La E/S localizada en memoria se caracteriza porque el espacio de direcciones disponible est
compartido por la memoria y por los elementos perifricos. De tal forma que dada una direccin se puede
acceder a una posicin de memoria o un perifrico. Luego en consecuencia las afirmaciones I y II son
verdaderas.

18

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.23


DATOS
n 4 lneas de interrupcin PI1, PI2, PI3 y PI4
n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1)
n El sistema permite anidamiento.
n Se producen 4 peticiones de interrupcin es este orden: PI3, PI1, PI4 y PI2
n Las tres ltimas peticiones se producen mientras se est ejecutando el programa de servicio de PI3
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.
Analicemos la secuencia de peticin de interrupciones :
1) Est ejecutando el programa de gestin de PI3.
2) Llega PI1, puesto que prio(PI1)<prio(PI3) ignora PI1 colocndola en una cola a la espera de ser
atendida, continua con el programa de gestin de PI3.
3) Llega PI4, puesto que prio(PI4)>prio(PI3) detiene la ejecucin del programa de gestin de PI3 y
comienza a ejecutar el programa de servicio de PI4.
4) Llega PI2, puesto que prio(PI2)<prio(PI4) ignora PI2 colocndola en una cola a la espera de ser
atendida, continua ejecutando el programa de gestin de PI4,
5) Terminado el programa de gestin de PI4, se procede a continuar con el programa de gestin
de PI3 hasta su finalizacin.
6) Terminado el programa de gestin de PI3, se procede a ejecutar el programa de gestin de PI2
que es la interrupcin colocada en la cola de espera con mayor prioridad.
7) Terminado el programa de gestin de PI2, se procede a ejecutar el programa de gestin de PI1.
Luego el orden de ejecucin de las interrupciones es:
PI3, PI4, PI3, PI2, PI1

SOLUCION PROBLEMA 3.24


DATOS
n Canal multiplexor
n 2 unidades de disco => v TD=106 bytes/seg
n 10 unidades de cinta => v TC= 103 bytes/seg

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.

vTcanal = 2 vTD + 10 vTC = 2 106 + 10 103 = 2 106 + 10 4 = 2.0110 6 (bytes / seg )

19

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.25


DATOS
n
n
n
n

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.

v Tcanal = 5 v TD + 10 v TC = 5 106 + 10 2 105 = 7 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un
perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

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

Es decir, el bus estara saturado.

20

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.26


DATOS
n Mdulo de gestin de prioridades
n Mdulo de enmascaramiento
El orden de colocacin de los mdulos es:
Primero el mdulo de enmascaramiento y a continuacin el mdulo de gestin de prioridades.
La razn de esta colocacin es obvia, ya que si se colocasen al revs podra darse la circunstancia de
que ante una peticin mltiple de interrupciones el mdulo de gestin de prioridades marcase como ms
prioritaria una interrupcin que al pasar por el mdulo de enmascaramiento resultase estar enmascarada.
Con lo que no se atendera ninguna.

SOLUCION PROBLEMA 3.27


DATOS
n
n
n
n

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 DP = N D N DM = 213 3 211 = ( 4 3) 2 11 = 211 direcciones


Nos dicen que cada perifrico ocupa una direccin => R= 16 direccin/perifrico. Luego el nmero mximo
de perifricos NPmax es :

N Pmax =

N DP
211 (dir )
= 4
= 2 7 perifri cos
R
2 ( dir / per )

21

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.28


DATOS
n
n
n
n

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

SOLUCION PROBLEMA 3.29


DATOS
n
n
n
n
n

Estrategia DMA transparente


Frecuencia del reloj del computador es f=200106 ciclos/seg
4 ciclos/instruccin
1 ciclo/instruccin no requiere el uso del bus
1 ciclo/palabra

El esquema de DMA transparente de este problema se representa en la siguiente figura


1 ciclo
Ejecucin con
DMA
transparente

Instr1

Instr2

Instr3

La estrategia de DMA transparente es la nica que no produce ninguna reduccin o interferencia en la


velocidad de ejecucin de la CPU, ya que el DMA se realiza justamente en aquellos fases de la ejecucin
de una instruccin en que la CPU no requiere hacer uso del bus del sistema.

22

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.30


DATOS
n
n
n
n
n

Frecuencia del reloj del computador es f=200106 ciclos/seg


4 ciclos/instruccin
2 ciclos/instruccin consecutivos no requiere el uso del bus
2 ciclos/palabra
Se desea mover un bloque de datos compuesto de 100106 palabras

El esquema de DMA transparente de este problema se representa en la siguiente figura


1 ciclo
Ejecucin con
DMA
transparente

Instr1

Instr2

Instr3

La velocidad de ejecucin de la CPU es:

vejec

f ( ciclos / seg ) 20010 6


=
=
= 50 106 = 5 107 (instr / seg )
4(ciclos / inst )
4

En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecucin de una


instruccin en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio el
computador necesita 4 ciclos para ejecutar una instruccin y que slo en dos de ellos consecutivos no
requiere el uso del bus. Adems nos dicen que el controlador de DMA necesita 2 ciclos para transmitir una
palabra. Luego el nmero de palabras R que se transmiten en la ejecucin de una instruccin, vendra dado
por:

R=

2( ciclos / instr)
= 1( pal / instr )
2(ciclos / pal )

La velocidad de transferencia mxima es:

vt max = R v ejec = 1( pal / inst ) 5 10 7 (inst / seg ) = 5 10 7 ( pal / seg )


Luego, el tiempo que tardar el controlador de DMA en mover un bloque de datos de N=10107 palabras
es:

t=

N ( pal )
1010 7
=
= 2 seg
v t max ( pal / seg ) 5107

23

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.31


DATOS
n
n
n
n
n
n

n
n
n
n

Perifricos conectados: 2 discos duros, 1 CDROM, 1 impresora.


PI1 peticin de interrupcin disco duro.
PI2 peticin de interrupcin CDROM.
PI3 peticin de interrupcin impresora.
Interrupciones anidables con prio(PI1) > prio(PI2) > prio(PI3)
Tiempo de servicio de las rutinas de servicio en unidades de tiempo (u.t)
ts1=10 u.t (disco duro)
ts2=30 u.t (CDROM)
ts3=15 u.t (impresora)
En t=0 u.t peticin de interrupcin del primer disco duro.
En t=3 u.t peticin de interrupcin de la impresora.
En t=5 u.t peticin de interrupcin del CDROM.
En t=14 u.t peticin de interrupcin del segundo disco duro.

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

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.

SOLUCION PROBLEMA 3.32


AFIRMACION I : Verdadera. Efectivamente el controlador de DMA necesita tener el control del bus del
sistema para la realizacin de operaciones de transmisin de datos.
AFIRMACION II: Falsa. De hecho la estrategia de transmisin por rfagas es la que produce una mayor
interferencia con la CPU, es decir, una mayor reduccin de la velocidad de ejecucin de la CPU.

SOLUCION PROBLEMA 3.33


En sistemas provistos de PE/S, la CPU es se encarga de iniciar la transferencia de E/S, y el PE/S ejecuta las
instrucciones de E/S que se encuentran almacenadas en memoria principal.
AFIRMACION I : Falsa.
AFIRMACION II: Falsa.

SOLUCION PROBLEMA 3.34


En el procesador Motorola 68000, las peticiones de interrupcin de nivel 7 (IPL=7) se atienden siempre.
Luego con los bits (I2 I1 I0) del registro de estado no se pueden enmascarar las interrupciones de nivel 7 ya
que son interrupciones no enmascarables.

SOLUCION PROBLEMA 3.35


La solucin a este problema se encuentra en el archivo probT3_35.pdf

25

SOLUCIN
PROBLEMA
3 - 35

Problemas de los exmenes del curso 2000/2001

13

INTR0
INTR
INTR1

Controlador
de
interrupciones

INTR7

UCP
INTA

INTA0
INTA1
INTA7

6ROXFLyQ

a) La tabla de verdad solicitada se muestra en la Tabla 3, donde se puede observar el comportamiento


solicitado:

Si INTA = 0, no se activa ninguna de las lneas de aceptacin, aunque haya peticiones pendientes.

Si INTA = 1, se activa la lnea de aceptacin de la peticin INTRi ms prioritaria.


ENTRADAS

INTA

SALIDAS

INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0

Tabla 3: Tabla de verdad de INTAi (X representa 1 0, indistintamente)

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

Estructura y Tecnologa de Computadores II

entradas de habilitacin H activadas.

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

Figura 2: Mecanismo de gestin de prioridades

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

Tabla 4: Tabla de verdad del mecanismo de gestin de prioridades (X representa 1 0, indistintamente)

Problemas de los exmenes del curso 2000/2001

INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0

15

INTR

I7

I6

I5

I4

I3

I2

I1

I0

Tabla 4: Tabla de verdad del mecanismo de gestin de prioridades (X representa 1 0, indistintamente)

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

Figura 3: Generacin de las seales de aceptacin INTAi

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

Estructura y Tecnologa de Computadores II

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

Figura 4: Controlador de interrupciones solicitado en el problema

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.

Problemas de los exmenes del curso 2000/2001

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

Figura 5: Diseo alternativo

INTR

INTA

INTR7

INTA7

INTR6

INTA6

INTR5

C o ntrolador
4
de
Interrupciones

INTA5

INTA4

INTA3

INTR2

INTA2

INTR1

INTA1

INTR0

INTA0

INTR4
INTR3

Figura 6: Representacin del mdulo controlador de interrupciones

d) En este apartado se va a representar el controlador de interrupciones como el mdulo representado en la


Figura 6. La forma de conectar dos de estos mdulos para poder atender las peticiones de 15 dispositivos externos
se muestra en la Figura 7. Denominando CI1 al controlador de interrupciones 1 y CI2 al controlador de
interrupciones 2, el diseo tiene las siguientes caractersticas:

Es capaz de atender peticiones de 15 dispositivos, tal y como requiere el enunciado del problema.

18

Estructura y Tecnologa de Computadores II

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

Figura 7: Controlador de interrupciones de 15 entradas

Nota importante:
A la hora de corregir este problema, el equipo docente de la asignatura se ha encontrado con bastante

Problemas de los exmenes del curso 2000/2001

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

Figura 8: Circuito que no gestiona correctamente el esquema de prioridades

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.36


DATOS
n Si CPU dispone en exclusiva del bus
n Las instrucciones emplean 3 ciclos de reloj en ser ejecutadas.
n En 1 de esos ciclos, el segundo, no requiere el acceso al bus.
n El controlador de DMA tarda dos ciclos de reloj consecutivos en transmitir una palabra.
AFIRMACION I : Es verdadera, ya que en la estrategia de DMA por rfagas el controlador de DMA hace
uso del bus cuando se ha finalizado la ejecucin de una instruccin y no lo libera hasta haber finalizado de
enviar todas las palabras.
AFIRMACION II: Es falsa., en la estrategia de DMA transparente, el controlador de DMA hace uso del
bus en aquellos ciclos durante la ejecucin de una instruccin en que la CPU no necesita utilizarlo. Puesto
que el controlador de DMA requiere dos ciclos consecutivos para enviar una palabra y por otra parte la
CPU nicamente no utiliza el bus, en el segundo de los tres que requiere para ejecutar una instruccin (ver
Figura), nunca hay dos ciclos consecutivos en que el bus este libre y por lo tanto no se puede implementar
el DMA con esta estrategia.
1 ciclo

Instr1

Instr2

Instr 3

26

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.37


DATOS
n
n
n
n

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.

vTcanal = 5 vTD + 5 vTC = 5 10 6 + 5 10 5 = 5.5 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre
un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario
para transmitir un byte entre un perifrico y M p.

t Tcanal =

1
vTcanal

1
10 9
1000
=
=
nseg = 181.81 nseg
6
6
9
5.5
5.5 10
5.5 10 10

La velocidad mxima de transferencia agregada a este sistema es:

vT max =

1
max( tbus , tTcanal )

1
t Tcanal

27

= vTcanal = 5.510 6 ( pal / seg )

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.38


DATOS
n
n
n
n

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 )

SOLUCION PROBLEMA 3.39


Afirmacin A: VERDADERA. Efectivamente un PE/S de tipo canal selector controla mltiples dispositivos
de alta velocidad.
Afirmacin B: VERDADERA. Efectivamente un PE/S de tipo canal multiplexor puede controlar de forma
simultnea operaciones de E/S con mltiples dispositivos.
Afirmacin B: VERDADERA. En E/S controlada por programa la CPU realiza entre otras operaciones, la
comprobacin del estado del perifrico.
Afirmacin D: FALSA. Las afirmaciones A, B y C son verdaderas.

28

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.40


DATOS
n E/S controlada por programa.
n El dispositivo de E/S tarda 6 mseg en tener el dato solicitado. t1=6 mseg
n Se supone que:
n
- El computador slo se dedica a E/S.
n
- El bucle de espera se implementa con 1 instruccin.NBE=1 instr
n - La lectura de un dato y la solicitud del siguiente dato por la CPU requiere 10
instrucciones.N2=10 instrucciones
n
- Cada instruccin de la CPU se ejecuta en t I=200 seg.
La E/S controlada por programa se puede considerar formada por tres etapas, tal y como se como se
muestra en la siguiente figura:
Nmero de
Instrucciones empleadas

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 )

Peticin del siguiente


dato

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 ( seg ) = N 2 (instr )t I ( seg / instr ) = 10(instr )200( seg / instr) = 2 mseg


Por lo tanto

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

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

n Nmero total de instrucciones N1 que ejecuta el programa de E/S en el bucle de espera

N1 (instr ) =

t1 ( seg )
610 3
=
= 30 instr
t I ( seg / instr) 20010 6

Tambin puede calcularse como:

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

Estructura y Tecnologa de Computadores II

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

A) Obtenga la tabla de la verdad del controlador de interrupciones.


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.
C) Disee el circuito lgico del controlador de interrupciones, usando para ello puertas AND, OR y NOT.
D) Explique razonadamente cmo podran conectarse varios controladores de interrupciones de 3 entradas,
como el diseado en el apartado anterior, para poder atender las peticiones de interrupcin de 6 perifricos
externos.

Examen junio 2003

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

Tabla 1: Tabla de la verdad del controlador (X representa 0 1 indistintamente).

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.

Estructura y Tecnologa de Computadores II

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

Tabla 2: Tabla de la verdad del controlador (X representa 0 1 indistintamente)

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.

Examen junio 2003

Figura 8: Controlador de interrupciones

D) Explique razonadamente cmo podran conectarse varios controladores de interrupciones de 3 entradas,


como el diseado en el apartado anterior, para poder atender las peticiones de interrupcin de 6 perifricos
externos.
Este apartado es anlogo al apartado f) del problema 3-13. La conexin de los controladores puede realizarse
como se muestra en la Figura 9. Aunque el dispositivo obtenido de la conexin de los tres controladores permitira
gestionar 7 perifricos, slo se seala en la Figura 9 la conexin de 6 de ellos, tal como se pide en el enunciado.
Con la estructura mostrada en la Figura 9, cuando se produce una peticin de interrupcin por cualquiera de
las lneas INTRi, sta se transmite a la CPU. Las peticiones realizadas por los dos controladores ms alejados de la
CPU generan peticiones en la lnea INTR 0 del controlador situado inmediatamente delante de ellos. Asimismo,
cuando la CPU activa la lnea de aceptacin, INTA, los dos controladores no conectados directamente a la CPU no
pueden activar ninguna de sus salidas hasta que los controladores ms prximos que ellos a la CPU no transmitan
por sus respectivas lneas de aceptacin INTA0 .

Estructura y Tecnologa de Computadores II

Figura 9: Controlador de interrupciones capaz de atender a 6 perifricos.

ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II

TEMA 4: Unidad Aritmtico-Lgica


SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen.

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.1


La solucin a este problema se encuentra en el fichero probT4_01.pdf.

SOLUCION PROBLEMA 4.2


La solucin a este problema se encuentra en el fichero probT4_02.pdf.

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

Figura 96-1-2 Diagrama de bloques de un comparador de dos bits

Como el enunciado slo permite utilizar puertas lgicas vamos a


implementarlo mediante un circuito combinacional. La Tabla 96-1-1 muestra
la tabla de verdad del comparador de 2 bits.

Tabla 96-1-1 Tabla de verdad del comparador de 1 bit

A partir de la Tabla 96-1-1 se deducen las siguientes funciones lgicas para


M, I y m:
M=xy
I=xy+xy= x y + x y
m=xy
y el circuito lgico correspondiente se muestra en la Figura 96-1-3.
x

Figura 96-1-3 Comparador de 2 bits solicitado en el apartado A)

B) 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
comparadores de 1 bit como el diseado en el apartado anterior. 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 3


bits mediante las siguientes funciones booleanas:
M = M2 + I2 M1 + I2 I1 M0
I = I2 I1 I0
m= m2 + I2 m1 + I2 I1 m0
La explicacin de estas expresiones es inmediata:
x > y si (x2 > y2) ((x2= y2) y (x1 > y1)) ((x2= y2) y (x1= y1) y (x0 > y0))
x = y si (x2 = y2) y (x1 = y1) y (x0= y0)
x < y si (x2 < y2) ((x2= y2) y (x1 < y1)) ((x2= y2) y (x1= y1) y (x0 < y0))
La Figura 96-1-4 muestra el circuito lgico pedido en este apartado
obtenido a partir de las expresiones anteriores.
x2

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

Figura 96-1-4 Circuito lgico de un comparador de dos nmeros de 3 bits


4

C) Sobre este apartado no hay ningn comentario a hacer, y directamente


la solucin es la mostrada en la Figura 96-1-5.
x2 y2

c2

SBC
s2

x1 y1

c1

SBC
s1

x0 y0

c0

SBC

c-1

s0

Figura 96-1-5 Sumador paralelo de nmeros de 3 bits

D) En la Figura 96-1-6 se muestra la estructura de la UAL pedida en el


enunciado del problema, donde adems de los mdulos diseados en los
apartados anteriores, se han empleado 4 multiplexores con 2 entradas de
datos y una salida.
La entrada de seleccin de la c del la UAL est conectada directamente a
la entrada de seleccion de los cuatro multiplexores de forma que:
si c = 0 la salida de la UAL S = M I m 0
si c=1 la salida de la UAL S = X+Y
Hay que observar como el acarreo de salida del sumador de 3 bits se ha
conectados a la salida ms significativa de la UAL, ya que esa es realmente su
funcin. El resultado de la suma de 2 nmeros de 3 bits requiere un mximo
de 4 bits.

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

Figura 96-1-6 Estructura de la UAL pedida en el problema

c0 MUX

s0

A)(1.5 puntos) Indique el diagrama de estados del circuito,


especificando claramente cul es el significado de cada uno de los
estados.
B) (0.5 puntos) Indique cmo codifica los estados y obtenga la tabla de
transicin de estados correspondiente.
C) (1 punto) Suponiendo que slo dispone de biestables tipo D para el
diseo del circuito, calcular las funciones de excitacin de los
biestables.
D)(1 punto) Implemente el circuito con biestables tipo D y puertas
lgicas NAND y NOT nicamente.

Reloj

Comparador
secuencial

xn-1 xn-2 ... x0


yn-1 yn-2 ... y0

Figura 96-2-1 Diagrama de bloques del comparador

Solucin

S1 / 100

xx

S2 / 001

xx

10
11

S0 / 010

00
01

Figura 96-2-2 Diagrama de estados del circuito

Un posible diagrama de transicin de estados para el comparador secuecial

propuesto es el de la Figura 96-2-2. Los smbolos utilizados en este diagrama


son los mostrados en la Figura 96-2-3 donde: Si es el estado, xiyi son los bits
de la entrada, y MIm son los tres bits de la salida.
xiyi
Si / MIm

Figura 96-2-3 Significado de los smbolos utilizados en el diagrama de estados

La explicacin del diagrama de estados de la Figura 96-2-2 es la siguiente.


Al comparar dos nmeros binarios X e Y, comenzando por sus bits de ms
peso, en cuanto lleguen al comparador dos bits distintos ya es posible indicar
cul de ellos es menor y cul es mayor, independientemente del valor de los
siguientes bits. Por ejemplo:
X = 00100111010101000
Y = 00100101010101111
a partir del bit marcado ya se sabe que X>Y.
El sistema parte de un estado S0 que significa que los dos nmeros a
comparar son iguales. Si los bits de igual peso de X y de Y que van llegando
son iguales, el sistema no cambia de estado, pero en el instante en que lleguen
dos distintos, pasa al estado S1 si xi>yi o al estado S2 si xi<yi. A partir de ese
momento, independientemente del valores de las siguientes entradas al
comparador, el sistema no cambia de estado. Luego el significado de los
estados es el siguiente:
S0 X = Y
S1 X > Y
S2 X < Y
A partir del diagrama de estados de la Figura 96-2-2 se obtiene
directamente la tabla de estados mostrada en la Tabla 96-2-2.

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

B) Una posible codificacin de los estados es la mostrada en la Tabla


96-2-3.

Estado

Q1Q0

S0 (igual)

00

S1 (mayor)

01

S2 (menor)

10

Tabla 96-2-3 Codificacin de los estados

A partir de esta codificacin y de la Tabla 96-2-2 se obtiene directamente la


tabla de transicin de estados (Tabla 96-2-4).

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

C) Teniendo en cuenta la funcin de excitacin de un elemento de memoria


tipo D:
D = Q(t+1)
y la tabla de transicin de estados, se deducen las expresiones de las entradas
D1 y D0 a los dos elementos de memoria necesarios para almacenar el estado
del comparador (ver Figura 96-2-4).

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

Figura 96-2-4 Funciones de excitacin de los biestables del comparador

D) Para implementar el circuito utilizando bistables tipo D y puertas


lgicas NAND y NOT nicamente, no sirven directamente las funciones de
excitacin obtenidas en el apartado anterior, pero negando dos veces cada una

de ellas se obtienen las expresiones buscadas.

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

Tabla 96-2-5 Valor de la salida en funcin del estado

Las expresiones lgicas para la salida que se obtienen de la Tabla 96-2-5


son:
M = Q0
I = Q1 Q0 = Q1 Q0
m = Q1
Utilizando las funciones de excitacin de los elementos de memoria tipo D
y las expresiones lgicas de la salida en funcin del estados, el circuito
secuencial del comparador que se obtiene es el que se muestra en la Figura

96-2-5.

xi

D1

Ck

Q1

D0

yi
Reloj

Q1

Ck

Q0

Q0

Figura 96-2-5 Circuito secuencial del comparador

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.3


a) Para conocer los mdulos de ROM necesarios, es necesario darse cuenta que el producto de un
nmero binario B(b 2b 1b 0) de 3 bits por otro nmero binario A(A 1A 0) de 2 bits da como resultado un
nmero binario P(p 4p 3p 2p 1p 0) de de 5 bits.
b2
x

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.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

b) A continuacin se muestran la tablas de los contenidos de cada uno de los mdulos.


Direccin
b2 b1 b0 a1
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
0 0 1 0
0 0 1 0
0 0 1 1
0 0 1 1
0 1 0 0
0 1 0 0
0 1 0 1
0 1 0 1
0 1 1 0
0 1 1 0
0 1 1 1
0 1 1 1

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

Contenidos de los mdulos ROM


r1 r0 p4 p3
p2
p1
p0
x
x
0
0
0
0
0
x
x
0
0
0
0
0
x
x
0
0
0
0
0
x
x
0
0
0
0
0
x
x
0
0
0
0
0
x
x
0
0
0
0
1
x
x
0
0
0
1
0
x
x
0
0
0
1
1
x
x
0
0
0
0
0
x
x
0
0
0
1
0
x
x
0
0
1
0
0
x
x
0
0
1
1
0
x
x
0
0
0
0
0
x
x
0
0
0
1
1
x
x
0
0
1
1
0
x
x
0
1
0
0
1
Mdulo 1
Mdulo 2
x
x
0
0
0
0
0
x
x
0
0
1
0
0
x
x
0
1
0
0
0
x
x
0
0
1
1
0
x
x
0
0
0
0
0
x
x
0
0
1
0
1
x
x
0
1
0
1
0
x
x
0
1
1
1
1
x
x
0
0
0
0
0
x
x
0
0
1
1
0
x
x
0
1
1
0
0
x
x
1
0
0
1
0
x
x
0
0
0
0
0
x
x
0
0
1
1
1
x
x
0
1
1
1
0
x
x
1
0
1
0
1
Mdulo 3
Mdulo 4

c) El aprovechamiento de la memoria vendr dado por:


R=

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 %.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.4


DATOS
n Dos nmeros X e Y de 12 bits representados en binario puro:
n X= 0000 1100 0010
n Y= 0001 0111 0001
Para calcular la suma en BCD de estos dos nmeros binarios puros X e Y, hay que realizar los siguientes
pasos:
Pasar X de binario a decimal.
X10= 27+26+21 =128 + 64 +2=194

Pasar Y de binario a decimal.


Y10= 28+26+25+24+20 =256 + 64 +32+16+1=369

Sumar ambos nmeros en decimal.


X10+Y10=S10= 563

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

SOLUCION PROBLEMA 4.5


El producto P [p 2n-1,...., p 0] de dos nmeros binarios X (xn-1,...,x0) e Y(yn-1,...,y 0) de n bits cada uno, posee un
total de (n+n) bits, es decir, 2n bits. Por lo tanto la memoria que se requiere para implementar este
multiplicador requiere un bus de direcciones de 2n bits (xn-1,...,x0,y n-1,...,y 0), para direccionar 2n posibles
productos P con que tendrn un tamao de 2n bits [p 2n-1,...., p0] cada uno. Es decir, la capacidad de
memoria necesaria es:
C=22n palabras x 2n bits/palabra
Puesto que se tienen mdulos de capacidad C0=2n palabras x n bits/palabra, hay que utilizar 4 mdulos de
este tipo: dos para conseguir tener 22n palabras y otros dos para conseguir tener 2n bits/palabra. Se trata
del tpico problema de ampliar el nmero de palabras y el nmero de bits utilizando mdulos de una
capacidad dada (ver Tema-2).

SOLUCION PROBLEMA 4.6


En el libro de teora se explica que cuando se implementa un multiplicador binario mediante el algoritmo de
lpiz y papel, para dos nmeros X de n bits e Y de m bits, con n>m, se requieren nm puertas AND y n(m1) sumadores binarios completos (SBC). Puesto que nos dicen en el enunciado que hay que multiplicar dos
nmeros de n=m 8 bits . Entonces el nmero de puertas AND necesarias ser 88= 64 puertas AND.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.7


Del libro de teora se comprueba en un sumador binario completo SBC que las expresiones para el bit de
suma s i y para el bit de acarreo ci, vienen dado por las siguientes expresiones:

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

SOLUCION PROBLEMA 4.8


Afirmacin I: Se tienen dos nmeros de n=4 bits y m= 3 bits, luego el mdulo de memoria ROM que se
necesitara tendra una capacidad de
C=2n+m palabras x (n+m) bits/palabra
Es decir, C= 27 palabras x 7 bits/palabras, luego la afirmacin I es verdadera.

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.

SOLUCION PROBLEMA 4.9


De acuerdo con lo explicado en el libro de teora sobre las caractersticas de un sumador binario serie.
Afirmacin I: El tiempo de calculo para sumar dos nmeros de n bits viene dado por
t=n(+)
siendo el tiempo en sumar 1 bits y el retardo del elemento de memoria. Por lo tanto, se observa que el
tiempo de calculo depende del nmero de bits n a sumar. Por lo tanto, la afirmacin es Falsa.
Afirmacin II: La estructura (complejidad) de un sumador binario serie es siempre la misma,
independientemente del nmero de bits a sumar. Luego la afirmacin es Falsa.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.10


DATOS
n
n
n
n

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.11


De acuerdo con las expresiones generales para el resultado de la suma y el acarreo de salida de un SBC
deducidas en el libro de teora(ver problema 4.7):
Afirmacin I: Falsa.
Afirmacin II: Verdadera.

SOLUCION PROBLEMA 4.12


La solucin a este problema se encuentra en el fichero probT4_12.pdf.

SOLUCION PROBLEMA 4.13


De acuerdo con las expresiones generales deducidas en el libro de teora para un comparador de nmeros
de tamao n>1 implementado mediante un circuito combinacional:

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

SOLUCION PROBLEMA 4.14


De acuerdo con las expresiones generales deducidas en el libro de teora para el semisumador binario SSB
de dos nmeros binarios de un bit., x e y

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

Figura 98-1-1: Mdulo UAL

6
R
OF
LX
yQ

A) Las expresiones que vamos a utilizar para implementar el SBC son:


Si = xi yi ci-1
ci = xi yi + (xi yi) ci-1
donde xi e yi son los datos de entrada, ci-1 es el acarreo de entrada, Si es el resultado de la suma y ci es el acarreo de
salida. El diseo resultante se muestra en la Figura 98-1-2.
ci-1 xi

yi

Si

ci

Figura 98-1-2: Sumador Binario Completo

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

Figura 98-1-3: Sumador-restador binario paralelo con propagacin de arrastre

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

Figura 98-1-4: Comparador diseado con memoria ROM

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

.....

.....

Tabla 98-1-2: Contenido de las 16 primeras posiciones de memoria

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

Figura 98-1-5: UAL pedida en el problema

3UR
E
OP
D
H



S0

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.15


DATOS
n Dos nmeros binarios de 12 bits representados en cdigo BCD
n XBCD = 0101 1000 1001 YBCD = 0011 0100 0111
El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario
a decimal y realizar la suma:
As:
XBCD = 0101 1000 1001 = 5 8 9
YBCD = 0011 0100 0111 = 3 4 7
La suma SBCD =XBCD + YBCD = 9 3 6 = 1001 0011 0110

SOLUCION PROBLEMA 4.16


La solucin a este problema se encuentra en el fichero probT4_16.pdf.

SOLUCION PROBLEMA 4.17


El nmero de secuencias de arrastre viene dada por el nmero de veces que el bit xi=y i=1, en la figura se
puede apreciar que se generarn 3 secuencias de arrastre:

100 1010 1001 0011


001 0101 1010 1011

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

Figura 98-3-1: Mdulos del problema

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

Figura 98-3-2: SBC modificado

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

c0= g1 + p1 (g0 + p0 c-1) = g1 + p1 g0 + p1 p0 c-1

c2 = g2 + p2

c1= g2 + p2 (g1 + p1 g0 + p1 p0 c-1)=g2 + p2 g1 + p2 p1 g0 +p2 p1 p0 c-1

El circuito resultante se muestra en la Figura 98-3-3.


C) Los tres SBC modificados y el CAA los podemos conectar segn se muestra en la Figura 98-3-4. En este diseo
se puede observar cmo los arrastres que se introducen en los SBC modificados son los generados directamente
por el mdulo CAA y que, sin embargo, los arrastres generados por estos SBC modificados se quedan sin utilizar.
Esta es la idea fundamental de esta tcnica.

p2

g2

p1

g1

p0

g0

p2 g2

p1 g1

p0 g0

c-1

c-1

CAA

c2

c2

c1

c1

c0

c0

Figura 98-3-3: Circuito de aceleracin de arrastres (CAA)

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

Figura 98-3-4: Sumador binario de 3 bits con aceleracin de arrastre

c-1

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.18


Para expresar la suma de un nmero binario X=[X7 X6 X5 X4 X3 X2 X1 X0] de 8 bits y de otro nmero binario
Y=[Y3 Y2 Y1 Y0] de 4 bits, se requieren de 9 bits [C S7 S6 S5 S4 S3 S2 S1 S0] (el resultado S de 8 bits ms un bit
de acarreo C).
Por lo tanto para implementar todas los resultados posibles, se necesita una ROM de 2(8+4) palabras, cada
palabra debe poseer 9 bits para almacenar el resultado y el acarreo. Luego la capacidad de la memoria ROM
necesaria es:

C = 2 1 2 palabras x 9 (bits / palabra)


El bus de direcciones tendr 12 bits con el siguiente significado: [X7 X6 X5 X4 X3 X2 X1 X0 Y3 Y2 Y1 Y0],
es decir, los operandos X e Y.
El bus de datos tendr 9 bits con el siguiente significado: [C S7 S6 S5 S4 S3 S2 S1 S0], es decir, el bits de
acarreo y el resultado de la suma.

SOLUCION PROBLEMA 4.19


Afirmacin I
Si se quiere implementar con una ROM un multiplicador binario de dos nmeros binarios sin signo,
X=[X2X1X0] de n= 3 bit ee Y=[Y1Y0] de m=2 bits. La memoria ROM deber tener tantas palabras como
como combinaciones de X Y se puedan producir, es decir, 2(n+m) = 2(3+2)=25 palabras.
Por otro lado la memoria ROM debe tener tantos bit por palabra como bits tenga el resultado del producto
de XY, en general, el producto P de un nmero de n bits por otro de m bits posee n+m bits, es decir, en
nuestro caso, 3+2+1=6 bits/palabra.
Luego la capacidad de la memoria ROM necesaria es:

C = 2 5 palabras x 5 (bits / palabra)


Luego la afirmacin I, es FALSA.
Afirmacin II:
En el libro de teora se explica que cuando se implementa un multiplicador binario mediante el algoritmo de
lpiz y papel, para dos nmeros X de n bits e Y de m bits, con n>m, se requieren nm puertas AND y n(m1) sumadores binarios completos (SBC).
En nuestro caso n=3, m=2, se requeriran 32= 6 puertas AND y 3(2-1)= 3 SBC
Luego la afirmacin II, es VERDADERA.

SOLUCION PROBLEMA 4.20


Por el mismo razonamiento realizado para comprobar la afirmacin I, del problema 4.19 con n=24 y m=16, la
memoria ROM que se necesitara para implementar el multiplicador debe tener una capacidad de

CT = 2 (2 4+1 6) x ( 24 + 16 ) = 2 4 0 palabras x 40 bits / palabra

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.21


En el libro de teora se explica que cuando se implementa un multiplicador binario mediante el algoritmo de
lpiz y papel, para dos nmeros X de n bits e Y de m bits, con n>m, se requieren nm puertas AND y n(m1) sumadores binarios completos (SBC).
En nuestro caso n=4, m=4, se requeriran 44= 16 puertas AND y 4(4-1)= 12 SBC
Afirmacin I : Puesto que un sumador binario con aceleracin de arrastre de 4 bits es equivalente a 4 SBC.
Se tendran 4+8 =12 SBC, que junto con las 16 puertas AND disponibles permiten construir el multiplicador
binario pedido. VERDADERA.
Afirmacin II: Es FALSA, ya que slo nos dan 8 SBC, faltaran 4, y no nos dan las 16 puertas AND
necesarias.

SOLUCION PROBLEMA 4.22


De acuerdo con la seccin 4.2.2 del libro de teora dedicada a los sumadores con anticipacin de arrastre, la
expresin general del bit de arrastre de la etapa ci , en funcin de los bits de propagacin de arrastre (p i, pi1,...,p 0) y de los bits de generacin de arrastre (g i, g i-1,...,g 0), es:

ci = g i + pi g i 1 + pi p i 1 g i 2 + ... + pi p i 1 .... p1 g 0 + pi p i 1 .... p 0 c 1


La expresin que dan en el enunciado es:

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.

SOLUCION PROBLEMA 4.23


El circuito que se quiere implementar tiene 2 entradas de 4 bits cada una para los operandos X [x3x2x1x0] e Y
[y 3y 2y 1y 0]. Y una entrada adicional M de 1 bit para indicar si la operacin es de suma o de resta. Luego el
nmero total de bits de entrada de este circuito es 9.
Por otro lado, este circuito debe tener dos salidas, una de 4 bits para indicar el resultado de la resta o de la
suma y un bits de acarreo. Luego el nmero total de bits de salida del circuito es 5.
La tabla de verdad o tabla de funcionamiento del circuito constara de 9 bits de entradas y de 5 bits de
salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

CT= 29 palabras x 5 bits/palabra


Afirmacin I: FALSA. La capacidad de la ROM es inferior a CT .
Afirmacin II: VERDADERA. La capacidad de la ROM es superior a CT .

12

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.24


DATOS
n Dos nmeros binarios de 16 bits representados en cdigo BCD
n XBCD =0011 1001 0101 0100 YBCD = 0011 1001 0000 0110
El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario
a decimal y realizar la suma:
As:
XBCD= 0011 1001 0101 0100 = 3 9 5 4
YBCD= 0011 1001 0000 0110 = 3 9 0 6
La suma SBCD =XBCD + YBCD = 7 8 6 0 = 0111 1000 0110 0000

SOLUCION PROBLEMA 4.25


El circuito que se quiere implementar tiene 1 entrada de 3 bits para el operando X [x2x1x0] y una entrada de
4 bits para el operando Y [y 3y 2y 1y 0]. Luego el nmero total de bits de entrada de este circuito es 7.
Por otro lado, este circuito debe tener dos salidas, de 1 bits cada una, M (si x>y) e I(x=y). Luego el nmero
total de bits de salida del circuito es 2.
La tabla de verdad o tabla de funcionamiento del circuito constara de 7 bits de entrada y de 2 bits de
salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

CT= 27 palabras x 2 bits/palabra


Afirmacin I: VERDADERA. La capacidad de la ROM es superior a CT.
Afirmacin II: VERDADERA. La capacidad de la ROM es superior a CT.

SOLUCION PROBLEMA 4.26


La solucin a este problema se encuentra en el fichero probT4_26.pdf.

SOLUCION PROBLEMA 4.27


La expresin lgica

( x + y ) xy se puede desarrollar de la siguiente forma:


( x + y ) xy = ( x + y ) ( x + y ) = yx + yx = x y

Que se corresponde con la expresin lgica del bit de suma s= x

y.

Por lo tanto la respuesta correcta es la A

SOLUCION PROBLEMA 4.28


De acuerdo con lo que se explica en el libro de teora sobre las caractersticas de un sumador binario serie,
este dispositivo solamente requiere de 1 SBC de 1bit.

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:

x > y si (x1 > y1) o ((x1= y1) y (x0 > y0))


x = y si (x1 = y1) y (x0= y0)
x < y si (x1 < y1) o ((x1= y1) y (x0 < y0))
La Figura 2000-2-2 muestra el circuito lgico pedido en este apartado obtenido a partir de las expresiones
anteriores.

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

Figura 2000-2-2: Circuito lgico de un comparador de dos nmeros de 2bits

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

Figura 2000-2-3: Sumador/Multiplicador diseado con memoria ROM

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

Tabla 2000-2-2: Contenido de la memoria ROM

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

Figura 2000-2-4: UAL pedida en el problema

r0

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.29


El circuito que se quiere implementar tiene 2 entradas de 8 bits cada una para los operandos X e Y. Adems
el circuito tiene 5 entradas de 1 bit, C, ed, eI, d1 y d0. Luego el nmero total de bits de entrada de este
circuito es 21.
Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el nmero total de
bits de salida del circuito es 8.
La tabla de verdad o tabla de funcionamiento del circuito constara de 21 bits de entradas y de 8 bits de
salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

CT= 221 palabras x 8 bits/palabra


Afirmacin I: La memoria total entre las dos ROM propuestas en la afirmacin es C=217 palabras x8
bits/palabra. Por lo que podra pensarse que esta afirmacin es falsa. Pero si se lee atentamente el
enunciado se observa que se trata de dos circuitos independientes, por un lado un comparador y por otro
un desplazador, que se puede implementar con las dos memorias ROM y con una puerta lgica NOT :
Comparador : Tiene 2 entradas de 8 bits cada una para los operandos X e Y.. Luego el nmero total de bits
de entrada de este circuito es 16.
Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el nmero total de
bits de salida del circuito es 8.
La tabla de verdad o tabla de funcionamiento del circuito comparador constara de 16 bits de entradas y de
8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad
mnima :

C= 216 palabras x 8 bits/palabra


Desplazador: Tiene 1 entradas de 8 bits para el operando X y 4 entradas de 1 bit ed, eI, d1 y d 0 Luego el
nmero total de bits de entrada de este circuito es 12.
Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el nmero total de
bits de salida del circuito es 8.
La tabla de verdad o tabla de funcionamiento del circuito comparador constara de 12 bits de entradas y de
8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad
mnima :

C= 212 palabras x 8 bits/palabra


Y
8
X

ROM
216x8

ed
ei
d1
d2

1
1
1

ROM
216x8

R
8

H
C
1

14

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

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.

SOLUCION PROBLEMA 4.30


De acuerdo con lo que se explica en el libro de teora sobre las caractersticas de un sumador binario
completo SBC, este se puede construir de al menos dos modos:
1) Se puede construir con dos niveles de puertas lgicas, un nivel de puertas AND y un nivel de
puertas OR.
2) Tambin, se puede construir con 2 SSB y una puerta OR.
Afirmacin I: VERDADERA.
Afirmacin II: VERDADERA. Ya que si se construye del modo1, puesto que un SSB requiere de dos
niveles de puertas AND-OR, habra que atravesar un total de 4 niveles como mximo, el retardo sera mayor
que si se construye el SBC del modo 2.

SOLUCION PROBLEMA 4.31


En el libro de teora se deducen las expresiones de los bits de suma y de acarreo en un sumador binario
completo (ver Problema 4.7). Por lo tanto, las expresiones E1 y E2 son equivalentes a:

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

SOLUCION PROBLEMA 4.32


De acuerdo con lo que se explica en el libro de teora sobre las caractersticas de un sumador binario serie
(ver Problema 4.9)
Afirmacin I: FALSA. Ya que la complejidad de un sumador binario serie es siempre la misma
independientemente del nmero de bits que tenga que sumar.
Afirmacin II: VERDADERA.

15

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.33


Afirmacin I: Si se usa lgica combinacional de dos niveles y cada puerta tiene un retardo de 5 s, el
retardo total es t=25=10 s. La afirmacin es FALSA
Afirmacin II: En un sumador binario paralelo (sumador con propagacin de arrastre), en el caso ms
desfavorable el resultado no ser efectivo hasta que no haya pasado un tiempo t=n, donde n es el
nmero de bits y es el tiempo que tarda un SBC en generar el arrastre para la etapa siguiente. Segn el
enunciado n=4 bits y =10 s, luego t=40 s. La afirmacin es VERDADERA..

16

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.34


De acuerdo con las expresiones generales deducidas en el libro de teora para un comparador de nmeros
de tamao n>1 implementado mediante un circuito combinacional:

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,

x 4 = 1 , por lo tanto se llega


M = x 4 + M 3 + I 3 M 2 + I 3 I 2 M 1 + I 3 I 2 I 1M 0
I = x4 I 3 I 2 I 1 I 0

Afirmacin I: Verdadera
Afirmacin II: Verdadera

SOLUCION PROBLEMA 4.35


Puesto que un sumador binario paralelo de nmeros de 8 bits, se puede implementar con 8 SBC. Como un
SBC se puede implementar con 2 SSB y 1 puerta OR. Entonces el sumador pedido requerira 28=16 SSB y
18=8 puertas OR.

17

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.36


DATOS
n Dos nmeros binarios de 12 bits representados en cdigo BCD
n XBCD = 0101 0001 1001 YBCD = 0011 0100 0111
n XBCB- YBCD expresado en cdigo BCD?
El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario
a decimal y realizar la resta:
As:
XBCD = 0101 0001 1001 = 51910
YBCD = 0011 0100 0111 = 34710
La resta XBCD - YBCD = 17210 que expresada en cdigo BCD resulta 0001 0111 0010.

SOLUCION PROBLEMA 4.37


La solucin a este problema se encuentra en el fichero probT4_37.pdf.

SOLUCION PROBLEMA 4.38


DATOS
n Circuito secuencial sncrono con dos estados (S0, S1).y con dos entradas (x,y)
n Q es la variable de estado, que puede tomar los valores 0 para referirse al estado S0 y 1 para
referirse al estado S1.
n El circuito se disea utilizando un elemento de memoria de tipo D.
FORMA 1:
La forma ms adecuada de resolver este ejercicio consiste en construir la tabla de la verdad de cada una de
las soluciones propuestas y compararlas con los valores de D(t) obtenidos de la tabla de estados del
enunciado.
(Q(t), x , y)

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

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

Luego la expresin simplificada obtenida con este mtodo es:

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

SOLUCION PROBLEMA 4.39


DATOS
n Dos nmeros binarios de 12 bits representados en cdigo BCD
n XBCD = 1001 0011 0101 YBCD = 0001 0101 0001
n Resto divisin entera XBCB/YBCD expresado en binario?
El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario
a decimal y realizar la resta:
As:
XBCD = 1001 0011 0101 = 93510
YBCD = 0001 0101 0001 = 15110
El resto de la divisin entera XBCD /YBCD = 02910 que expresado en binario resulta 0000 0001 1101.

19

SOLUCIN
PROBLEMA
4 - 37

Problema - Junio 1 semana:


A) (1.5 puntos) Disear el registro de desplazamiento de 4 bits de la figura de la izquierda. E0, E1, E2, E3
representan la entrada paralelo; S0, S1, S2, S3 la salida paralelo; C1, C2 las lneas de control; y CK la seal
de reloj. El registro debe ser capaz de realizar los dos desplazamientos siguientes: LICS (Lgico-IzquierdaCerrado-Simple) y LDCS (Lgico-Derecha-Cerrado-Simple). Adems, el circuito debe permitir la carga en
paralelo de la entrada y mantener la informacin almacenada sin modificar (no operacin: NOP). La
codificacin de las entradas de control se muestra en la tabla adjunta.
B) (1 punto) Disear el mismo registro del apartado A) pero con la estructura entrada serie / salida serie que se
muestra en la figura de la derecha.
C) (1.5 puntos) Disear el mismo registro del apartado A) pero de modo que en lugar de realizar
desplazamientos lgicos (LICS y LDCS) realice desplazamientos algebraicos (tambin llamados
aritmticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (AlgebraicoDerecha - Cerrado - Simple).
En los diseos deben utilizarse multiplexores y elementos de memoria D. Explicar detalladamente cada paso.
E3 E2 E1 E0

C2
C1

Paralelo/
Paralelo

S3 S2 S1 S0

C2
CK

Serie/Serie

C1

Figura 1: Registros de desplazamiento

CK

Operacin

C2

C1

NOP

LICS

LDCS

CARGA

Tabla 1: Codificacin de las entradas de control

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

Figura 2: Representacin grfica de los desplazamientos LDCS y LICS

Por tanto, la descripcin del comportamiento de la salida del circuito es la siguiente:

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

Figura 3: Registro LDCS y LICS con entrada paralelo / salida paralelo

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

Figura 4: Registro de 4 bits con entrada serie / salida serie

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

Figura 5: Registro LDCS y LICS con entrada serie / salida serie

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

Tabla 2: Codificacin de las entradas de control

S
ADCS

AICS

Figura 6: Representacin grfica de los desplazamientos ADCS y 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

Siguiendo el mismo procedimiento de antes, la Figura 7 contiene el diseo pedido.


E3

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

Figura 7: Registro LDCS y LICS con entrada paralelo / salida paralelo

CK

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.40


DATOS
n X= 010 1000 1110
n Secuencia de desplazamiento LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS,
Con la notacin LICS se est haciendo referencia a un desplazamiento de un bit, de tipo Lgico, hacia la
Izquierda, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LICS(X)= 101 0001 1100


Mientras que con la notacin LDCS se est haciendo referencia a un desplazamiento de un bit, de tipo
Lgico, hacia la Derecha, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se
obtiene:

LDCS(X)= 001 0100 0111


Si ahora se aplica LICS sobre LDCS(X) se obtiene

LICS(LDCS(X))= 010 1000 1110=X


Se observa que la aplicacin de un desplazamiento LICS seguido por un desplazamiento LDCS se cancelan
y se sigue manteniendo X.
En consecuencia, el resultado de la secuencia de desplazamientos:

(LICS LDCS) (LICS LDCS) (LICS LDCS) LDCS


es equivalente a la realizacin de una nico desplazamiento LDCS (X). Es decir, el resultado es:

LDCS(X)= 001 0100 0111

SOLUCION PROBLEMA 4.41


DATOS
n C0= 2n palabras x 1bit/palabra
n Implementacin de un sumador de dos nmeros de n bits y 2n bits
La suma de un nmero X de n bits (Xn-1, Xn-2,...,X0) y de un nmero Y de 2n bits (Y2n-1, Y2n-2,..., Y0), da como
resultado un nmero R de 2n bits (R2n-1, R2n-2,..., R0)adems hay que considerar un bit de acarreo c, luego.
Es decir el sumador combinacional debe poseer (n+2n) entradas y (2n+1) salidas.
En definitiva para implementar este sumador se necesita una memoria ROM de la siguiente capacidad CT :

CT = 2 N de entradas pal N salidas (bits / pal )


CT = 2 n + 2 n pal ( 2n + 1)(bits / pal )
CT = 2 3 n pal ( 2n + 1)( bits / pal )
Luego el nmero de mdulos N de capacidad C0 que se requieren para implementar una memoria de
capacidad CT es:

N=

CT 23 n pal 2n + 1 (bits / pal )


=
x
= 2 2 n (2 n + 1) mdulos
C 0 2 n pal
1 ( bits / pal )

20

ESTRUCTURA Y TECNOLOGIA DE
COMPUTADORES II

TEMA 5: Diseo de transferencia


entre registros
SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2002-2003
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.1


n Disear una UC con memoria ROM con:
n 200 estados
n Genere 37 seales de control independientes entre si.
n 9 seales de condicin.
n En cada estado se consulta una seal de condicin como mximo.
n Interesa sobre todo minimizar el tamao del multiplexor a utilizar.
Puesto que en cada estado se consulta una seal de condicin como mximo, es posible utilizar para el
diseo de la Unidad de Control las siguientes configuraciones:
a) Memoria ROM + registro + multiplexor de seleccin por estado.
b) Memoria ROM + registro + multiplexor de seleccin por campo.
De los datos del enunciado se deduce que:
variables de estado n=8 ya que 28=256>200 estados
seales de control : m=37
seales de condicin : q=9 (2h =16) h=4
En la configuracin a) segn lo estudiado en teora, el multiplexor utilizado tiene 2n=28=256 entradas y n=8
seales de seleccin.
En la configuracin b) segn lo estudiado en teora, el multiplexor utilizado tiene 2h=24=16 entradas y h=4
seales de control.
Luego es en la configuracin b) donde se minimiza el tamao del multiplexor .
Afirmacin I: Falsa
Afirmacin II: Verdadera

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.2


DATOS
n Disear una UC con :
n 18 estados
n Genere m=30 seales de control independientes entre si.
n q=4 seales de condicin.
n Utilizar memoria ROM, pero minimizando la capacidad de la misma.
n En cada estado se utiliza como mximo una condicin.
n Utilizar un multiplexor por seleccin por campo
Se tienen 18 estados luego es necesario n=5 variables de estado para codificarlos.
La capacidad de la ROM necesario es:
C = 2 n+1 (n + m + log2 q ) = 2 6 x(5 + 30 + 2 ) = 2 6 pal x 37 bit / pal
El registro tiene la siguiente estructura:
log2q bits

n bits

Luego debe de tener una capacidad de


CR=log 2q+n=2+5=7 bits
El multiplexor al ser del tipo de seleccin por campo, tiene q=4 entradas y requiere de log2q=2 seales de
seleccin.
El esquema de la Unidad de Control implementada con los anteriores elementos sera el que se muestra en
la siguiente figura:

MUX(4)
q

6
ROM
37 bits

26 x

2
log2 q
2

5
n
m=30

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.3


a) DISEO DE LA UNIDAD DE PROCESAMIENTO
1) El primer paso es conocer el tipo y nmero de
1: Declaracin: A[8], B[8], Cont[3]; Bus[8]
componentes necesarios para disear la Unidad de
2: A Bus;
Procesamiento. De la observacin del algoritmo se deduce
3: B Bus, Cont=0;
4: while Cont 7
que es necesario:
5:
if A es par then
Un registro de 8 bits para el almacenamiento de A.
6:
A A B, Cont = (Cont +1) mod 8;
Un registro de 8 bits para el almacenamiento de B.
7:
else
Un contador mdulo-8.
8:
B B + A, Cont = (Cont -1) mod 8;
Un elemento de clculo (UAL) que realice la suma y la
9:
endif;
resta de dos nmeros binarios de 8 bits.
10: endwhile;
Puesto que al registro A se le pueden cargar datos
11: Bus B;
12: Bus A;
desde el bus (ABus) o desde la UAL (AA - B) es
13: Parar;
necesario un multiplexor de dos salidas MUX(2).
Puesto que al registro B se le pueden cargar datos
desde el bus (BBus) o desde la UAL (BB - A) es necesario un multiplexor de dos salidas MUX(2).
Como tanto el registro A como el registro B deben volcar su contenido al Bus ( BusA, BusB), es
necesaria la utilizacin de 2 puertas triestado de conexin unidireccional con control de 8 bits.
Se necesita una puerta AND, que reciba como entradas las 3 salidas del contador, de tal forma que la
salida de la puerta valdr 1 cuando el contador alcance el valor 7(111).
Finalmente se comprueba, mediante la lectura atenta del enunciado del problema, que todos los
componentes que se necesitan son elementos disponibles.
2) El segundo paso es definir las seales de condicin que sern salidas de la Unidad de Procesamiento.
De la observacin del algoritmo se deduce que hay dos seales de condicin:
s 0 que valdr 1 cuando el contador alcance el valor 7.
s 1 que corresponde al bit menos significativo del nmero A. Si s1=0 el nmero es par sino es
impar
3) El tercer paso es numerar los puntos o seales de control y especificar la funcin que realiza cada una
de estas seales.
-Seales de control
Luego la Unidad de Procesamiento diseada requiere de 11 seales de control (c 10,.....,c0).
c0 selecciona Bus si vale 0, selecciona UAL si vale 1.
c1 selecciona Bus si vale 0, selecciona UAL si vale 1.
c2 cuando vale 1 , se realiza la microperacin Bus A
c3 cuando vale 1 , se realiza la microperacin Bus B
c5c4 control del registro de desplazamiento A.(Ver enunciado)
c7c6 control del registro de desplazamiento B. (Ver enunciado)
c8 control de la UAL ( si vale 0 :suma, si vale 1 :resta)
c10c9 control del contador. (Ver enunciado)
-Comentario
Las entradas ED y EI de los registros de desplazamiento no se utilizan y pueden conectarse a 0 o a 1
indistintamente.

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

4) El cuarto paso es dibujar la Unidad de Procesamiento. En la Figura 1 se muestra la Unidad de


Procesamiento resultante:

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

Figura 1 : Diseo de la Unidad de Procesamiento

b)DISEO DE LA UNIDAD DE CONTROL.


Del algoritmo se deduce que un posible diagrama de estados (existen varias posibilidades) para la Unidad
de Control es el que se muestra en la Figura 2.

S0

S1

s0

S2
s0 s1

s0 s1

S3

S4

S5

S6

S7

Figura 2 : Diagrama de estados de la Unidad de Control.


Se comienza en el estado S0, se pasa al estado S1 y de este se pasa al estado S2. Este estado
correspondera a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de las
seales de condicin s 1 y s 0 , se puede pasar a S3(s 1=0 y s 0=0, A es par y el contador no ha llegado a 7) o a
S4(s 1=1 y s 0=0, A es impar y el contador no ha llegado a7 ) o bien a S5(s 0=1 el contador ha llegado a 7).
Desde S3 o S4 se vuelve a S2, as hasta que el contador llegue a 7 , en cuyo caso salta al valor S5. Desde S5
pasa a S6, y desde S6 pasa a S7 donde se detiene ya que es el estado de final del algoritmo. En este
diagrama se tienen 8 estados

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

Figura 3 :Unidad de Control diseada con un elemento de memoria por estado

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

OTRAS POSIBILIDADES DE DISEAR LA UNIDAD DE CONTROL DEL problema 5.3


1) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM Y UN REGISTRO
- Con lo mostrado en las pginas 3-6 se habra resuelto el problema de la forma que se indica en el
enunciado. Ahora vamos a disear la Unidad de Control utilizando una memoria ROM y un registro.
- Puesto que se tienen 8 estados se necesitaran n=3 variables de estado (Q2, Q1, Q0) para codificarlos. Por
otro parte se tienen q=2 (s 0 y s 1) variables de condicin y m=11 seales de control. Entonces la capacidad
de la memoria ROM necesaria es :
C= 2(3+2) palabras x (3+11) bits/palabra = 25palabras x 14 bits/palabra.
- En la Tabla 2 se muestra el contenido de la memoria ROM y en la Figura 4 el esquema de la Unidad de
Control
Direccin de la ROM
A4A3A2A1A0
Estado actual
Cond
Q2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

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

Contenido de la memoria ROM


p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0
Seales de control

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

A4 A3 A2

Solucin problemas

ROM

25 x 14

A1 A0

Seales de
condicin

Q(t+1)

Registro
Q(t)

Seales de
control

11

Figura 4 : Diseo de la Unidad de Control con una memoria ROM y un registro


2) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM, UN REGISTRO Y
UN MULTIPLEXOR DE SELECCION POR ESTADO.
Si el diagrama de estados de la Unidad de Control de la Figura 2, se modifica aadiendo un estado donde
se pregunte sobre el valor de s 1, entonces para pasar de un estado a otro solamente se necesita conocer el
valor de una nica seal de condicin. Este nuevo diagrama de estado se muestra en la Figura 5.

S0

S1

s0

S2

S6

S7

S8

s0

S4

s1

S3

s1

S5

Figura 5 : Diagrama de estados de la Unidad de Control.


Se comienza en el estado S0, se pasa al estado S1 y de ste se pasa al estado S2. Este estado
correspondera a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de las
seales de condicin s 0, se puede pasar a S3 (s 0=0) o a S6 (s 0=1). En S3 puede pasar a S4 (s 1=0) o a S5(s 1=1).
Cuando se encuentra en S4 o en S5, vuelve a S2 hasta que el contador alcance el valor 7 (s 0=1) que es
cuando pasa a S6. Desde S6 pasa a S7, y desde S7 pasa a S8 donde se detiene ya que es el estado de final
del algoritmo.
En este diagrama se tienen 9 estados, por lo que se necesitaran n=4 variables de estado (Q3, Q2, Q1, Q0)
para codificarlos. Por otro parte se tienen 1 (s 0 en el estado S2 y s 1 en el estado S3) variable de condicin
por estado y m=11 seales de control. Entonces la capacidad de la memoria ROM necesaria es :
C= 2(4+1) palabras x (4+11) bits/palabra = 25 palabras x 15 bits/palabra.
- En la Tabla 3 se muestra el contenido de la memoria ROM y en la Figura 6 el esquema de la Unidad de
Control

10

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

Contenido de la memoria ROM


p14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

3) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM, UN REGISTRO Y


UN MULTIPLEXOR DE SELECCION POR CAMPO.
En el diagrama de estados de la Figura 5 se tienen 9 estados, por lo que se necesitaran n=4 variables de
estado (Q3, Q2, Q1, Q0) para codificarlos. Por otro parte se tienen q=2 (s 0 en el estado S2 y s 1 en el estado S3)
variables de condicin y m=11 seales de control. Entonces la capacidad de la memoria ROM necesaria si
se desea utilizar un multiplexor de seleccin por campo es:
C= 2(4+1) palabras x (log22+ 4+11) bits/palabra = 25 palabras x 16 bits/palabra.
- En la Tabla 4 se muestra el contenido de la memoria ROM y en la Figura 7 el esquema de la Unidad de
Control
Direccin de la ROM
A4A3A2A1A0
Estado actual

Cond

Contenido de la memoria ROM


p15p14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0
Sel
MUX

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.4


DATOS
n Disear una UC con memoria ROM con:
n 200 estados
n Genere 37 seales de control independientes entre si.
n 9 seales de condicin.
n En cada estado se consulta una seal de condicin como mximo.
n Utilizar un multiplexor con seleccin por campo.
Del enunciado se deduce que se debe disear una Unidad de Control con los siguientes componentes:
Memoria ROM + registro + multiplexor de seleccin por campo.
Adems de los datos del enunciado se deduce que:
variables de estado n=8 ya que 28=256>200 estados
seales de control : m=37
seales de condicin : q=9 2h h=4
El nmero de entradas totales del multiplexor es 2h= 24=16, de las cuales slo se utilizan 9 (entradas 0 a 8),
una para cada seal de condicin, el resto ( desde la entrada 9 hasta la 15) se colocan a 0.
La capacidad de la ROM sera :

C = 2n+1 x (log2q + n + m)=2 9 x (4+8+37)


C = 29 palabras x 49 (bits/palabra)
La respuesta correcta es la C

14

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.5


La solucin de este problema se encuentra en el fichero probT5_05.pdf.

SOLUCION PROBLEMA 5.6


DATOS
n Disear una UC con memoria ROM con:
n 18 estados
n Genere 30 seales de control independientes entre si.
n 4 seales de condicin.
n En cada estado se consulta una seal de condicin como mximo.
n Utilizar un multiplexor con seleccin por estado
Del enunciado se deduce que se debe disear una Unidad de Control con los siguientes componentes:
Memoria ROM + registro + multiplexor de seleccin por estado.
Adems de los datos del enunciado se deduce que:
variables de estado n=5 ya que 25=32>18 estados
seales de control : m=30
seales de condicin : q=4

La capacidad de la ROM necesario es:


C = 2 n+1 (n + m ) = 2 6 x(5 + 30 ) = 2 6 pal x 35 bits / pal

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


El siguiente algoritmo describe una determinada operacin de un sistema digital.


a) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los
mdulos dibujados abajo (Figura 99-2-1): registros de desplazamiento de 8 bits, una UAL con dos
entradas de 8 bits cada una, un contador mdulo-8 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 un registro de desplazamiento. Detalle y explique claramente
todos y cada uno de los pasos seguidos hasta obtener la solucin.

Figura 99-2-1: Mdulos del problema y debajo su tabla de


funcionamiento

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

Figura 99-2-2: Unidad de Procesamiento

El significado de las seales de control se muestra en la Tabla 99-2-1.

Seales de Control

C0

Operacin

Selecciona BUS (1) o UAL (0)

C1, C2

Control del registro de desplazamiento A (segn Figura 99-2-1)

C3, C4

Control del registro de desplazamiento B (segn Figura 99-2-1)

C5
C6, C7
C8

Suma (0) o resta (1)


Control del contador(segn Figura 99-2-1)
Selecciona B (0) o CONT (1)
Tabla 99-2-1: Significado de las seales de control

Seales de Control

Operacin

C9

A BUS

C10

B BUS
Tabla 99-2-1: Significado de las seales de control

b) El diagrama de estados de la Unidad de Control que realiza el algoritmo pedido en la Unidad de


Procesamiento propuesta se muestra en la Figura 99-2-3 (la solucin no es nica y no se ha buscado minimizar el
nmero de estados). El significado de cada uno de sus estados se detalla en la Tabla 99-2-2.

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

C0, C1, C2, C5, C8

S5

AB+A

C0, C1, C2, C5, C8

S6

CONT (CONT + 1) mod 8

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

Figura 99-2-3: Diagrama de estados de la Unidad de Control propuesta

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

---

Tabla 99-2-3: Tabla de transicin de estados

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

C3, C4, C6, C7

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

C0, C1, C2, C5, C8

S5 = 0 1 0 1 (5)

---

S6 = 1 0 1 0

01

-----

DD

C0, C1, C2, C5, C8

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

S0 (C0, C1, C2)

1
2
3
4

ED

>

EI

CK

Q3 Q2 Q 1 Q0
w0
Reg. Desp.
w1
E3 E2 E 1 E 0

Decodificador

S5 (C0, C1, C2, C5, C8)

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



TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.7


DATOS
n Disear una UC con:
n 32 estados
n Genere 4 seales de control independientes entre si.
n 2 seales de condicin.
n En cada estado se pueden consultar las dos seales de condicin simultneamente.
De los datos del enunciado se deduce lo siguiente ;
variables de estado n=5 ya que 25=32 estados
seales de control : m=4
seales de condicin : q=2
Vamos a ir analizando cada una de las afirmaciones:
A) Si se utiliza la tcnica de los elementos de retardo sera necesario utilizar 32 elementos de retardo, uno
por cada estado y no 5 como dice el enunciado. Luego la afirmacin es falsa.
B) Si se utiliza una memoria ROM se requiere que tenga una capacidad de C= 2n+q x (n+m)= 27 palabras x 9
bits/palabra. Luego la afirmacin es falsa.
C) Si se utiliza un contador, este debe ser de mdulo- 25. Luego la afirmacin es falsa.
La respuesta correcta es la D.

SOLUCION PROBLEMA 5.8


DATOS
n Disear una UC con:
n 64 estados
n Genere 30 seales de control independientes entre si.
n 5 seales de condicin.
n En cada estado se pueden consultar diferentes seales de condicin simultneamente.
De los datos del enunciado se deduce lo siguiente ;
variables de estado 64=26 =>n=6
seales de control : m=30
seales de condicin : q=5
Vamos a ir analizando cada una de las afirmaciones:
A) Si se utiliza la tcnica de los elementos de retardo sera necesario utilizar 64 elementos de retardo, uno
por cada estado y no 6 como dice el enunciado. Luego la afirmacin es falsa.
B) Si se utiliza una memoria ROM se requiere que tenga una capacidad mnima de
C=
2n+q x (n+m)= 211 palabras x 36 bits/palabra. La afirmacin es falsa
C) Si se utiliza un contador, este debe ser de mdulo- 26. Luego la afirmacin es Verdadera.
La respuesta correcta es la C.

16

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.9


La solucin de este problema se encuentra en el fichero probT5_09.pdf.
Explicacin previa a la resolucin del problema
En el algoritmo que hay que implementar se plantea la multiplicacin y la divisin de un nmero binario por
2. Para realizar estas operaciones es necesario recordar como se pasa un nmero binario a decimal:
[xn-1 xn-2...x0] binario a decimal xn-12n-1+ xn-22n-2+...+x020

La multiplicacin de un nmero binario por 2 es:


[xn-1 xn-2...x0]x2 binario a decimal xn-12n+ xn-22n-1+...+x02

Lo que es equivalente a desplazar el nmero binario un bit hacia la izquierda e introducir un 0 en la


posicin menos significativa.
Ejemplos:
El nmero 410= (0100)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0 en
la posicin menos significativa se obtiene (1000)2= 82= 2 x 410.
El nmero 310= (0011)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0 en
la posicin menos significativa se obtiene (0110)2= 610= 2 x 310.

La divisin entera de un nmero binario por 2 es:


[xn-1 xn-2...x0]/2 binario a decimal xn-12n-2+ xn-22n-3+...+x120

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.

SOLUCION PROBLEMA 5.10


La solucin de este problema se encuentra en el fichero probT5_10.pdf.

SOLUCION PROBLEMA 5.11

17

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

La solucin de este problema se encuentra en el fichero probT5_11.pdf.

SOLUCION PROBLEMA 5.12


La solucin de este problema se encuentra en el fichero probT5_12.pdf.

SOLUCION PROBLEMA 5.13


n Disear una UC con memoria ROM con:
n 200 estados
n Genere 37 seales de control independientes entre si.
n 9 seales de condicin.
n En cada estado se consulta una seal de condicin como mximo.
n Se utiliza el diseo con un multiplexor con seleccin por campo
Se tiene una Unidad de Control diseada con
Memoria ROM + registro + multiplexor de seleccin por campo.
De los datos del enunciado se deduce que:
variables de estado n=8 ya que 28=256>200 estados
seales de control : m=37
seales de condicin : q=9 2h h=4

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.14


n Disear una UC con memoria ROM con:
n 128 estados
n Genere 244 seales de control independientes entre si.
n 20 seales de condicin.
n La memoria ROM utilizada tiene un coste de 10 ptas/Kbit
De los datos del enunciado se deduce que:
variables de estado n=7 ya que 27=127 estados
seales de control : m=244
seales de condicin : q=20 2hh=5

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.

SOLUCION PROBLEMA 5.15


La solucin de este problema se encuentra en el fichero probT5_15.pdf.

SOLUCION PROBLEMA 5.16


La solucin de este problema se encuentra en el fichero probT5_16.pdf.

19

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.17


La solucin de este problema se encuentra en el fichero probT5_17.pdf.

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

Figura 98-2-1: Mdulos del problema con sus tablas de funcionamiento

6
R
OF
LX
yQ

A) En la Figura 98-2-2 se muestra un posible diseo de la Unidad de Procesamiento y la Tabla 98-2-1 el


significado de todas la seales de control utilizadas. Repasando en algoritmo vemos que permite realizar todos y
cada uno de sus pasos:

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.

Existe camino de los registros A y Ba la entrada de la UAL.

Un contador mdulo 8 permite gobernar el bucle for del algoritmo.

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

Figura 98-2-2: Diseo de la Unidad de Procesamiento

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

Seleccin MUX ntrada


e
de A: UAL (0)y Bus (1)

c6

Seleccin MUX ntrada


e
de B: UAL (0) y Bus (1)

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

Contador: Nada (00), Reset (01), Incrementar (10) y Nada (11)

Tabla 98-2-1: Descripcin de la seales de control de la Unidad de Procesamiento

B) Para describir el funcionamiento de la Unidad de Control, diseamos el diagrama de transicin de estados de la


Figura 98-2-3 donde la descripcin detallada de las cciones
a
a realizar en cada un de estos estados viene dad a en la
Tabla 98-2-2.
Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmopropuesto 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.

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

c1, c2, c5, c9, (c10=0)

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

(c0=0), c1, c2, (c5=0), c10, (c9=0)

c0, c3, c4, (c6=0), c10, (c9=0)

S8

Desplazar Izquierda B
Bus A

S9

Bus B

c8

S10

Ninguna

Ninguna

S7

c 4, (c3=0)
c7

Tabla 98-2-2: Acciones tomadas por la Unidad de Control en cada estado

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

c1, c2, c10

s0= 1

S5

c1

s0

S5

s0= 0

s0= 1

S6

c0, c3, c4 ,c10

S6

S7

c4

s0

S7
s0= 0

S8

S8

c7

S9

S9

S10

c8

S10
Reloj

Figura 98-2-4: Unidad de Control

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;

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).
E
ED

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)

Figura 96-3-1 Mdulos del problema y debajo su tabla de funcionamiento

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

por lo que se puede fijar una de ellas, la ms significativa c1, directamente a 0.

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

Figura 96-3-2 Diagrama de bloques, puntos de control (c 0 a c9) y seales de condicin (s 0 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 su
funcionamiento (ve rTabla 96-3-1).

Seal de Control

Operacin controlada

c0

Entrada de seleccin del multiplexor

c1

Cargar A desde la salida del multiplexor

c2

Cargar B desde el Bus

c4 y c3

Cargar C desde el Bus (01), desplazamiento derecha de C (10) o nada (00)

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)

Tabla 96-3-1 Descripcin de la seales de contro lde la Unidad de Procesamiento

B) Un posible diagrama de estados para la Unidad de Control que gobierne


el funcionamiento de la Unidad de Procesamiento de la Figura 96-3-2, es el
mostrado en la Figura 96-3-3. La Tabla 96-3-2 da una descripcin detallada
de cada uno de los estados junto con las seales de control a activar en cada
uno de ellos.
Una de las dificultades que tiene este algoritmo es que el bucle debe
ejecutarse necesariamente ocho veces. Para conseguirlo se ha optado por
comprobar la condicin generada por el contador en el estado S6 y despus, si
no se hubiera llegado al final de la cuenta (s1=1), incrementar el contador.
S7
s1
S4
S0

S1

S2

S3

s0
s0

S6

s1

S5

Figura 96-3-3 Diagrama de estados de la Unidad de Control

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

Tabla 96-3-2 Acciones tomadas por la Unidad de Control en cada estado

El mtodo de diseo utilizando elementos de retardo es prcticamente una


transcripcin directa del diagrama de estados. En l Figura
a
96-3-4 se muestra
la Unidad de Control diseada utilizando este mtodo, junto con el diagrama
de estados de la Figura 96-3-3, redibujado en vertical, para servir de apoyo en
el diseo.

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

Figura 96-3-4 Unidad de Control

Clear

SOLUCIN
PROBLEMA
5 - 11

7:
8:
9:
10:
11:
12:

Ck

if C(3) = C(5) then A A * B


else A A - B endif;
Desplazar derecha (C);
end;
Bus A;
Parar;

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

Figura 97-2-1 Mdulos del problema y debajo su tabla de funcionamiento

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

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.
El registro A debe entregar su contenido a la UAL y al bus. Su salida tiene
que estar conectada con ambos, pero para la conexin al bus es
necesario colocar un circuito triestado para evitar que este registro
enve continuamente su salida al bus. Si no se colocara este circuito
triestado se produciran continuos conflictos elctricos en el bus que lo
haran totalmente inservible (ver Captulo 1 del libro de teora).
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 se genera directamente mediante la
funcin lgica C(3) C(5).
En el algoritmo hay un bucle que se ejecutar un total de 4 veces, desde 0
hasta 3. Para controlar esto se utilizamos el contador mdulo 8. La forma
de detectar el final de la cuenta depende del diagrama de estados que se
emplee. En esta solucin se propone incrementar el contador nada mas
entrar en el bucle y comprobar la condicin de finalizacin en el mismo
estado en el que se desplaza el registro C. Si se hace as, la Unidad de
Control tiene que comprobar cundo el contador ha llegado a 4, es decir,
simplemente tiene que saber si el bit ms significativo del contador es 1 o
es 0. Si es 1 el bucle ha llegado al final y se salta al estado S6 en el
diagrama de estados de la Figura 97-2-3.
Los registros de desplazamiento de 8 bits y el contador mdulo-8 tienen
una entrada de reloj Ck. En el diseo de la Unidad de Procesamiento
habr que conectar todas las entradas de reloj con la que llega a la Unidad
de Control para conseguir una sincronizacin correcta en todas las
acciones de ambas.
Un posible diseo para la Unidad de Procesamiento pedida, teniendo en
cuenta todos estos requisitos , puede ser el mostrado en la Figura 97-2-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

Q(t+1)

00

Q(t)

01

Carga

por lo que se puede fijar su entrada de control c1 directamente a 0.


Bus
0

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

Entrada de seleccin del multiplexor

c1

Cargar A desde la salida del multiplexor

c2

Cargar B desde el Bus

c4 y c3

Cargar C desde el Bus (01), desplazamiento derecha de C (10) o nada (00)

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)

Tabla 97-2-1 Descripcin de la seales de control de la Unidad de Procesamiento

B) Un posible diagrama de estados para la Unidad de Control que gobierne


el funcionamiento de la Unidad de Procesamiento de la Figura 97-2-2, es el
mostrado en la Figura 97-2-3. La Tabla 97-2-2 da una descripcin detallada de
cada uno de los estados junto con las seales de control a activar en cada uno
de ellos, y la codificacin de los estados empleada es la mostrada en la Tabla
97-2-3.
s1
S4
S0

S1

S2

s1

s0

S3
s0

S6
S5

S7

s1

s1

Figura 97-2-3 Diagrama de estados de la Unidad de Control

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

c1, c5, c4, c8

c1, c6, c4, c8

c9

Tabla 97-2-2 Acciones tomadas por la Unidad de Control en cada estado

A la hora de disear la Unidad de Control utilizando memoria ROM el


enunciado indica que se valorar la utilizacin de una memoria de tamao
mnimo. Para conseguir este objetivo hay que darse cuenta que en cada estado
se consulta, como mximo, una condicin, por lo que sera posible reducir el
nmero de palabras de la ROM a la mitad si se selecciona previamente la
condicin utilizando un multiplexor. Las entradas de seleccin de este
multiplexor pueden ser el mismo estado (seleccin por estado) o un bit
adicional almacenado en la memoria ROM (seleccin por campo). Como esta
segunda solucin (seleccin por campo) requiere de una memoria ROM de
tamao mayor al tener que almacenar ese bit adicional por estado, se opta por
la primera (seleccin por estado) aunque requiere del multiplexor
mencionado.

Estado

Q2 Q1Q0

S0

000

S1

001

S2

010

S3

011

S4

100

S5

101

S6

110

S7

111

Tabla 97-2-3 Codificacin de los estados

La Figura 97-2-4 muestra la estructura de la Unidad de Control pedida en el


enunciado del problema. Tiene 4 lneas de direcciones (1 para la condicin y
las otras 3 para el valor del estado actual) y una logintud de palabra de 13 bits
(3 para el estado siguiente y 10 para las seales de control), por tanto tiene una
tamao de 24 palabras x 13 bits por palabra.

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

p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

Estado futuro
Inicio
Reloj

Cl Registro

Estado presente Q2 Q1 Q0

c9 c8 c7 c6 c5 c4 c3 c2 c1 c0

Figura 97-2-4 Unidad de Control diseada con una memoria ROM


Estado

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

Estado presente + Cond.


Q2 Q1 Q0 si

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

Tabla 97-3-4 Contenido de la memoria ROM

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

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 Procesamiento, utilizando los
recursos que considere necesarios.
B) Describa todas las seales de control de la Unidad de Procesamiento
diseada en A).
C) Dibuje el diagrama de estados de una Unidad de Control que realice
el algoritmo propuesto. Describa, en forma de tabla, las
microoperaciones y las seales de control activadas en cada unos 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.
Solucin
A) A la vista del algoritmo propuesto, la Unidad de Procesamiento que se
disee ha de ser capaz de:
1) Transferir el contenido del bus de entrada a ambos registros (X y A).
2) Incrementar/decrementar el contenido del registro A.
3) Transferir el contenido del registro A al bus de salida.
4) Comparar el contenido del registro X con 255 (11111111).
Para realizar la Unidad de Procesamiento utilizaremos registros
convencionales, sin capacidad de incremento/decremento, por lo que har
falta un circuito combinacional adicional capaz de realizar esta operacin.
Bajo estas consideraciones la Figura 97-3-1 muestra la posible realizacin de
una Unidad de Procesamiento que puede ejecutar el algortimo propuesto. Se
ha utilizado un sumador/restador binario convencional para las operaciones
de incremento/decremento.

Bus-Entrada

c0

MUX

c1

LD

CK

>

c4

CK
1

c2

S/R

LD

>
8

0
s0 (X=255)

c3
8

Bus-Salida

Figura 97-3-1 Unidad de Procesamiento

Se ha supuesto que los registros son disparados por el flanco de bajada de la


seal de reloj CK por lo que no se producirn problemas a la hora de
realimentar la salida del sumador/restador a la entrada del registro A.
Tambin se supone que las operaciones de suma y resta no producen
problemas de desbordamiento. Para evitar que la salida del registro A se
vuelque en el bus de salida indebidamente se ha utilizado una puerta triestado
gobernada por la seal de control c3. La puerta lgica AND compara la salida
del registro X con 255: si todos sus bits estn a 1 el valor de X es 255 y se
genera la seal de condicin s0.

B)
Seal

Descripcin

c0

Selecciona una de las entradas del multiplexor

c1

Carga del registro A

c2

Suma (1) o resta (0)

c3

Salida del registro A al bus de salida

c4

Carga del registro X


Tabla 97-3-1 Descripcin de las seales de control utilizadas

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

Tabla 97-3-2 Descripcin de los estados y sus microoperaciones asociadas

Estado

Microoperacin

S4

Bus-Salida A

S5

Parar

Seales de
control
c3
-----

Tabla 97-3-2 Descripcin de los estados y sus microoperaciones asociadas

D) Utilizaremos la tcnica de la Unidad de Control cableada con biestables


tipo D. (Un ejercicio muy recomendable que puede realizar el alumno es
repetir este apartado utilizando otras tcnicas de diseo, comparando las
caractersticas y dificultad de cada una de ellas.)
Ya que hay 6 estados harn falta 3 biestables tipo D. Una posible
codificacin de los estados es la mostrada en la Tabla 97-3-3.
Estado

Q2Q1Q0

S0

000

S1

001

S2

010

S3

011

S4

100

S5

101

Tabla 97-3-3 Tabla de codificacin de los estados

Del diagrama de estados de la Figura 97-3-2 y la codificacin elegida en la


Tabla 97-3-3 se obtiene directamente la tabla de transicin de estados (Tabla
97-3-4), y a partir de ella las funciones lgicas de las entradas de los biestables
mediante mapas de Karnaugh.

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

-----

Tabla 97-3-4 Tabla de transicin de estados

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.

A partir de aqu se construye fcilmente la Unidad de Control siguiendo la


tcnica de diseo correspondiente (Figura 97-3-3). Para general las seales de
control se puede utilizar un decodificador, a partir de la codificacin del
estado Q2Q1Q0.

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

Estructura y Tecnologa de Computadores II

3UREOHPD  6HSWLHPEUH 

El siguiente algoritmo describe una determinada operacin de un sistema digital.


A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos
de la Figura 1: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un
contador mdulo-8 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.
B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
1: Declaracin: A[8], B[8], Cont[3];
2:
A Bus;
3:
B 0;
4:
for Cont = 0 to 7 do
5:
if A[0] es 1 then
6:
B B + 1;
7:
endif;
8:
Despl.CerradoDcha(A);
9:
endfor
10:
Bus ;
11:
Parar;

Ck

c0
Reg. Desp.
c1
EI
Q

ED

UAL
R

Ck
c0

Contador
Q

c0
c0

c1
S

Figura 1: Mdulos del problema con sus tablas de funcionamiento

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

Problemas de los exmenes del curso 2000/2001

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:

I, seal de condicin de inicio de algoritmo.


En la Figura 1 se muestra el diagrama de bloques correspondiente a la unidad de procesamiento o ruta de
datos con los elementos definidos anteriormente y que cumple todos los requisitos del algoritmo planteado. En la
Tabla 1 se describen todas las seales de control utilizadas.

Estructura y Tecnologa de Computadores II

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

Figura 2: Diseo de la Unidad de Procesamiento

Seal de Control

Operacin controlada

c0

Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexin (1)

c1

Seleccin MUX entrada de B: UAL (0) y valor 0 (1)

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

Contador: Nada (00), Reset (01), Incrementar (10) y Nada (11)

Tabla 1: Descripcin de la seales de control de la Unidad de Procesamiento

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.

Problemas de los exmenes del curso 2000/2001

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

Figura 3: Diagrama de estados de la Unidad de Control

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

Tabla 2: Acciones tomadas por la Unidad de Control en cada estado

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

Estructura y Tecnologa de Computadores II

Inicio=0
Set

S0
S0

Inicio

Inicio=1

S1

S2

s0= 0
s0

S2

S3

S4 s = 1
1

S5

c1, c2, c3, c4, c5, c6

s0= 1

s1= 0

S1

S3

c4, c5

S4

c2

s1

S5

c7

S6

S6

c0

Reloj

Clear

Figura 4: Unidad de Control

SOLUCIN
PROBLEMA
5 - 16

Estructura y Tecnologa de Computadores II

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.
1: Declaracin: A[8], B[8], Cont[4]; Bus[8]
2:
A Bus;
3:
B Bus, Cont = 0;
4:
while Cont 14
5:
if A es multiplo de 4 then
6:
A A - B, Cont = (Cont +2) mod 16;
7:
else
8:
B B + A;
9:
endif;
10:
endwhile;
11:
Bus B;
12:
Bus A;
13:
Parar;

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

Figura 2: Mdulos secuenciales del problema con sus tablas de funcionamiento

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.

Problemas de los exmenes del curso 2001/2002

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:

Tabla 1: Los mltiplos de 4


Es decir, son todos ellos nmeros acabados en 00. Si se admite el 0 como mltiplo de 4 (este problema se
resolver aqu adoptando este criterio) entonces se tiene que s0 = A1 A0. Si se considera que 0 no es mltiplo
de 4 entonces alguno de los bits ms significativos ha de ser distinto de 0: s0 = (A7 + A6 + A5 + A4 + A3 +
A2) A1 A0.
Otra manera de ver cmo son los nmeros mltiplos de 4 es la siguiente: Un nmero binario anan-1an-2...a1a0
tiene el valor decimal an2n + an-12n-1 + an-22n-2 + ... + a121 + a020. Para dividir este nmero entre
4 lo multiplicamos por 2-2, con lo que resulta: an2n-2 + an-12n-3 + an-22n-4 + ... + a220 + a12-1 +
a02-2. Si el nmero inicial es divisible entre 4, la parte decimal del cociente de la divisin debe ser 0. En
este caso, la parte fraccionaria es a12-1 + a02-2, pues 2-1 = 0.5 y 2-2 = 0.25. Ya que a1 y a0 slo pueden
tomar los valores 0 1 ( 0), la nica forma de que la parte fraccionaria sea 0 es que a1 = a0 = 0.
s1, que indica si el contador vale 14. Con cuatro dgitos binarios, 14 se expresa como 1 1 1 0, luego esta seal
de condicin se realizar fcilmente con una puerta AND y un inversor.
Un posible diseo para la Unidad de Procesamiento, que cumple con todos estos requisitos, es el que se
muestra en la Figura 3.
sta no es la nica Unidad de Procesamiento capaz de realizar el algoritmo pedido. Por ejemplo, dado que los
registros A y B no se van a cargar simultneamente, es posible hacer uso de un nico multiplexor. As mismo, dado

Estructura y Tecnologa de Computadores II

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

Figura 3: Diseo de la Unidad de Procesamiento

c0
c1

c6
c7

Problemas de los exmenes del curso 2001/2002

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

Figura 5: Diagrama de estados de la Unidad de Control

S7

S8

10

Estructura y Tecnologa de Computadores II

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

Cont (Cont + 1) mod


16

(c6=0), c7

S6

BB+A

c1, c 4, c5, (c8=0)

S7

Bus B

c10

S8

Bus A

c9

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 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].

Problemas de los exmenes del curso 2001/2002

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

c0, c2, c3,


c7, c8

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

Estructura y Tecnologa de Computadores II

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

Figura 1: Mdulos secuenciales del problema con sus tablas de funcionamiento.

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:

Figura 2: Diagramas de conexiones para el registro A.

Es necesario generar una seal de condicin, correspondiente a la operacin if A1A001 then,


_

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.

Figura 3: Generacin de la seal de condicin s1.


_

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.

Figura 4: Diagramas de conexiones para el registro A.

Finalmente es necesario implementar la lgica de la operacin for Cont=0 to 3 do usando


un contador de tamao adecuado. En este caso se debe contar de 0 a 3 y se dispone de un
contador mdulo 8 (con tres estados Cont2Cont1Cont0) con lo que se har necesario detectar
el fin de cuenta (Cont=3) usando una seal de condicin s0. Esta seal de condicin se
puede generar usando la condicin Cont1Cont0=11 o bien usar la seal Cont2 como seal de
fin de cuenta (si Cont2=1 entonces Cont>3). Se va a usar esta segunda aproximacin porque
de esta forma no es necesario usar una puerta AND de las entradas Cont1 y Cont0. El
diagrama de conexiones quedara tan simple como el que se muestra en la Figura 5.

Figura 5: Diagramas de conexiones para el registro A.

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.

Figura 6: Diseo de la Unidad de Procesamiento.

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se ha


diseado el diagrama de transicin de estados de la Figura 7, 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.)

Figura 7: Diagrama de estados de la unidad de control.

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

Figura 8: Unidad de Control mediante elementos de retardo.

11

ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 6: Diseo del procesador


SOLUCION
PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2003-2004
Jose Manuel Daz Martnez
Tutor de la asignatura ETC-II

TEMA 6: Diseo del procesador.

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

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.1


Antes de comenzar a contestar a los diferentes apartados conviene darse cuenta de que la UAL es un
circuito combinacional que no tiene ninguna capacidad de memoria, de manera que cuando las seales de
control activan una funcin especfica de la UAL, su salida pasa a ser el resultado de la operacin
correspondiente con sus entradas. Por este motivo, la salida de la UAL no puede conectarse directamente
al bus, ya que esta salida se realimentara a la entrada. En su lugar, el registro R2 permite el
almacenamiento temporal de la salida.
Se utiliza en este problema la siguiente notacin:
AC acumulador
RD registro de direccin de memoria que especifica la prxima direccin de memoria donde se va a leer
o a escribir.
RM registro de datos de memoria contiene el dato a escribir en la memoria o recibe el dato leido en la
memoria.
RI registro de instruccin, en el se almacena la instruccin que se va ejecutar .
RI(datos) campo de datos de la instruccin almacenada en el RI.
RI(direccin) campo de direccin de la instruccin almacenada en el RI.
(XX) Contenido del registro XX.
a) Al tratarse de un operando con direccionamiento inmediato significa que en uno de los campos de la
instruccin se encuentra almacenado uno de los operandos. Las microoperaciones a realizar son:
R1 (RI(dato))
R2 (R1) + (AC)
AC (R2)
Es decir primero se carga en R1 el contenido del campo de datos de la instruccin almacenada en RI. A
continuacin se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC
el contenido de R2.
b) Al tratarse de un operando con direccionamiento directo, significa que en el campo de direccin de la
instruccin almacenada en RI se encuentra la direccin de memoria donde hay que ir a buscar el
operando. Las microoperaciones a realizar son:
RD (RI(direccin))
RM memoria
R1 (RM)
R2 (R1) + (AC)
AC (R2)
Es decir primero se carga en RD (registro de direcciones de memoria) el contenido del campo de
direccin de la instruccin almacenada en RI. A continuacin se descarga en RM el contenido de la
posicin de memoria especificada en RD. Posteriormente se almacena en R1 el contenido de RM. A
continuacin se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC
el contenido de R2.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

c) Al tratarse de un operando con direccionamiento indirecto, significa que en el campo de direccin de la


instruccin almacenada en RI se encuentra la direccin de memoria donde hay que ir a buscar la
direccin de memoria donde se encuentra el operando. Las microoperaciones a realizar son:
RD (RI(direccin))
RM memoria
RD (RM)
RM memoria
R1 (RM)
R2 (R1) + (AC)
AC (R2)
Es decir primero se carga en RD (registro de direcciones de memoria) el contenido del campo de
direccin de la instruccin almacenada en RI. A continuacin se descarga en RM el contenido de la
posicin de memoria especificada en RD, que contiene la direccin de memoria donde hay que buscar el
operando. A continuacin se carga en RD la direccin de memoria almacenada en RD. El paso siguiente
es descargar el operando de la memoria a RM. Posteriormente se almacena en R1 el contenido de RM. A
continuacin se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC
el contenido de R2.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.2


Se utiliza en este problema la siguiente notacin:
AC acumulador
RD registro de direccin de memoria que especifica la prxima direccin de memoria donde se va
a leer o a escribir.
RM registro de datos de memoria contiene el dato a escribir en la memoria o recibe el dato leido
en la memoria.
RI registro de instruccin, en el se almacena la instruccin que se va ejecutar .
RI(datos) campo de datos de la instruccin almacenada en el RI.
RI(direccin) campo de direccin de la instruccin almacenada en el RI.
(XX) Contenido del registro XX.

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

Jose Manuel Daz Tutor de ETC2 (Coslada)

Seales de
Control
c15
c8
c11

TEMA 6: Diseo del procesador.

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

h) Bifurcar si acumulador=0, 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
Si s0=1 CP(RM)

Jose Manuel Daz Tutor de ETC2 (Coslada)

Seales de
Control
c14
c0
c4

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.3


De acuerdo con lo explicado en el libro de Teora
Afirmacin I : Es Verdadera
Afirmacin II : Es Falsa ya que cada fase del ciclo de instruccin se puede descomponer en una
secuencia de operaciones elementales llamadas microoperaciones.

SOLUCION PROBLEMA 6.4


Procesador con cero instrucciones.
Secuencia de instrucciones para calcular la expresin X=Y2(X+Z)
El funcionamiento de un procesador con cero instrucciones se explica en la seccin 6.1.4 del libro de
teora. Un problema relacionado con ste es el 6.4 del libro de problemas.
Para resolver este ejercicio se debe proceder a analizar cada una de las posibles respuestas. Se representa
en una tabla las instrucciones y el contenido que tendra la pila tras ejecutar cada instruccin. Segn se
sita un dato ms a la izquierda en la pila, significa que lleva ms tiempo almacenado, es decir, los datos
que entran en la pila lo hacen por su derecha. En consecuencia el elemento almacenado ms a la derecha
en la pila constituye la cima de la pila
La expresin que se pide calcular tambin se puede expresar equivalentemente de la siguientes formas :
X=(X+Z)YY=YY(X+Z)
Opcin A) :
Instrucciones
Push[X];
Push[Z];
Add ;
Push[Y];
Push[Y];
Mult;
Mult;
Pop[X];

Contenido de la pila
Y
Y
Z
Y+Z
Y+Z
Y
Y+Z
Y
Y
Y+Z
YxY
(Y+Z)xYxY

Luego esta secuencia de instrucciones calcula la expresin pedida.


Opcin B) :
Instrucciones
Push[Y];
Push[Y];
Push[X];
Push[Z];
Add;
Mult;
Mult;
Pop[X];

Contenido de la pila
Y
Y
Y
Y
Y
Y
YxYx(X+Z)

Y
Y
Y
Y
Yx(X+Z)

X
X
X+Z

Luego esta secuencia de instrucciones calcula la expresin pedida.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

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)

Luego esta secuencia de instrucciones calcula la expresin pedida.


Luego la respuesta correcta es la D.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.5


Procesador de una direccin.
6 bits para el cdigo de operacin.
10 bits para la direccin de un operando.
Instruccin de bifurcacin, con direccionamiento relativo al contador del programa,
almacenada en la direccin DIR10=530 origina un salto a la posicin DIR 10=620.
El cdigo de operacin de una cierta instruccin es 110011
Codificacin en binario de la instruccin?
De acuerdo con el enunciado se tiene el siguiente formato de instruccin:
6 bits

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

Donde la direccin del operando se obtiene a partir de:


DIRfinal= [CP]+ Desplazamiento
Sustituyendo los datos del enunciado se tiene:
620= 530+ Desplazamiento
Luego:
Desplazamiento=90
Si se pasa a binario el Desplazamiento se tiene:
Desplazamiento10=90=64+16+8+2=26+24+23+2
Desplazamiento2=1011010
En el enunciado nos dan el cdigo de operacin de la instruccin 110011 y acabamos de calcular el
desplazamiento, que expresado sobre un tamao de 10 bits toma la forma: 0001011010. Luego la
instruccin pedida es:
110011 0001011010

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.6


Procesador con cero instrucciones.
Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Mult; Pop M[A]
El funcionamiento de un procesador con cero instrucciones se explica en la seccin 6.1.4 del libro de
teora. Un problema relacionado con ste es el 6.4 del libro de problemas.
Se representa en una tabla las instrucciones y el contenido que tendra la pila tras ejecutar cada
instruccin. Segn se sita un dato ms a la izquierda en la pila, significa que lleva ms tiempo
almacenado, es decir, los datos que entran en la pila lo hacen por su derecha. En consecuencia el
elemento almacenado ms a la derecha en la pila constituye la cima de la pila

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)

Luego esta secuencia de instrucciones calcula la expresin A=(C+D)2.

Jose Manuel Daz Tutor de ETC2 (Coslada)

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

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.1


En el enunciado nos dicen que se tiene un total de (5+5+3) subcampos, cada uno de los cuales requiere de
un decodificador que slo puede tener una de sus salidas activadas en un determinado instante de tiempo.
Eso implica que el computador puede tener activadas como mximo 13 seales de control o microordenes
simultneamente.
Por otro lado si un subcampo tiene j bits, puede codificar un total de 2j-1 seales de control. Una
codificacin se reserva para especificar el caso en que ninguna de las seales de control de ese subcampo
se encuentre activa.
Luego del enunciado se sabe que el formato tiene:
5 subcampos codificados de un bit 5 (21-1)=5 seales de control
5 subcampos codificados de tres bits 5(23-1)=35 seales de control
3 subcampos codificados de tres bits 3(24-1)=45 seales de control
Lo que hace un total de 85 seales de control.

SOLUCION PROBLEMA 7.2


DATOS
Computador digital con 114 seales de control diferentes.
Siendo 6 de ellas mutuamente excluyentes
Afirmacin I:
Hay que tener en cuenta que el enunciado dice que de las 114 seales de control diferentes, 6 son
mutuamente excluyentes. Eso implica que esas 6 seales deben ser codificadas dentro de un mismo
subcampo. Dicho subcampo debe tener como mnimo 3 bits, con los que se tendran 8 codificaciones: 6
codificaciones asociadas a cada una de las 6 seales de control, 1 codificacin para indicar el caso en que
no se active ninguna de las seales de control codificadas en este subcampo y la codificacin restante no
se utilizara. Luego la afirmacin I es verdadera.
Afirmacin II:
Esta afirmacin es falsa. Ya que con el formato horizontal existe un subcampo asignado a cada seal de
control, independientemente de que sean excluyentes o no.

SOLUCION PROBLEMA 7.3


DATOS
Microinstrucciones de formato horizontal con direccionamiento explcito.
Las microinstrucciones deben gobernar 135 seales de control
Codificar un repertorio de 50 instrucciones mquina
Memoria de control de 2048 palabras
La memoria de control es de 2048 palabras = 2 1024 palabras = 2210=211 palabras. Luego el campo de
direccin de cada microinstruccin debe tener 11 bits para especificar una posicin de la memoria de
control

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.4


Afirmacin I: Es Falsa ya que un subcampo de j bits puede codificar un total de 2j-1 seales de control
ya que una de las codificaciones se debe reservar para especificar el caso en que ninguna de las seales
de control de ese subcampo se encuentre activa.
Afirmacin II: Es Falsa ya que eso nicamente ocurre en las microinstrucciones con formato horizontal.

SOLUCION PROBLEMA 7.5


De acuerdo con lo que se explica en el libro de Teora sobre las tareas de una unidad de control
microprogramada:
Afirmacin I: Verdadera
Afirmacin II: Verdadera

SOLUCION PROBLEMA 7.6


Afirmacin I: Es Falsa ya que en este formato cada seal de control tiene asociado un subcampo.
Afirmacin II: Es Verdadera es la caracterstica tpica de las microinstrucciones con formato horizontal

SOLUCION PROBLEMA 7.7


Afirmacin I: Es Verdadera. ya que existe un subcampo por cada seal de control lo que genera
microinstrucciones muy anchas.
Afirmacin II: Es Falsa, las tiene codificadas.

SOLUCION PROBLEMA 7.8


Afirmacin A: Es Falsa. En una unidad de control microprogramada la memoria de control se utiliza para
almacenar en ella los microprogramas asociados a las instrucciones mquina.
Afirmacin B: Es Falsa
Afirmacin C: Es Verdadera. ya que en las microinstrucciones con formato horizontal existe un
subcampo por cada seal de control lo que genera microinstrucciones muy anchas.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.9


DATOS
132 seales de control
Un grupo de 16 seales de control mutuamente excluyentes entre si.
Otro grupo de 32 seales de control mutuamente excluyentes entre si.
Afirmacin I : Es falsa ya que un subcampo codificado de i bits puede codificar a los sumo 2i-1 seales
de control diferentes. Por este motivo haran falta dos subcampos de 5 bits cada uno.
Afirmacin II : Es falsa ya que el formato vertical de microinstrucciones saca partido precisamente del
hecho de que existan seales de control mutuamente excluyentes.

SOLUCION PROBLEMA 7.10


DATOS
Memoria de control con longitud de palabra de 24 bits.
La parte de control del formato de una microinstruccin se divide en dos subcampos :
Subcampo de control de 13 bits para indicar las microoperaciones a realizar.
Subcampo de seleccin de direccin que especifica un tipo de bifurcacin condicional. Es
funcin de las seales de condicin.
Se tienen 8 seales de condicin
Por un lado el tamao de una microinstruccin es de 24 bits.
a) Puesto que el subcampo de seleccin de direccin es funcin de las seales de condicin, se
requerirn 3 bits en ese subcampo para codificar las 8 seales de condicin disponibles.
b) Luego el campo de control ( subcampo de control + subcampo de seleccin de direccin) constar de
13 + 3 = 16 bits. Por lo que el campo de direccin constar de 24 -16 =8 bits. Luego el formato de la
microinstruccin es:
Subcampo de control
(microoperacin)

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

SOLUCION PROBLEMA 7.11


El formato de microinstruccin del problema anterior define una microinstruccin de bifurcacin
condicional, ya que siempre se est evaluando una de las seales de condicin, aquella especificada en el
subcampo de seleccin.
Para tener microinstrucciones que no especifiquen ningn tipo de bifurcacin, basta con definir el
subcampo de control de manera que uno de sus bits (T) indique bifurcacin/ no- bifurcacin (1/0) Este es
el formato que se muestra a continuacin
Subcampo de control
(microoperacin)
13 bits

Jose Manuel Daz Tutor de ETC2 (Coslada)

T
1 bit

Subcampo de seleccin
de direccin
3 bits

campo de direccin
8 bits

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.12


DATOS
Cada instruccin mquina se le asignan 8 palabras en la memoria de control
El Cdigo de operacin (Cod_Op) de las instrucciones tienen 5 bits.
La memoria de control tiene una capacidad de 1024 palabras.
Puesto que el campo del cdigo de operacin (Cod_Op) de las instrucciones mquina tiene 5 bits, se
podrn codificar un total de 25= 32 operaciones.
Cada una de estas operaciones tiene asociado un microprograma (p) ,cada uno de los cuales ocupa 8
palabras. Por lo tanto de la capacidad total de la memoria de control 210 palabras slo habr que ocupar:
23 pal/p x 25 p= 28 pal
Luego la direccin para acceder a palabras de la memoria de control tiene 8 bits.
En la siguiente tabla se muestran las direcciones de la memoria de control que se corresponden a cada
uno de los 32 cdigos de operacin posible. Como se comprueba, la direccin inicial del microprograma
correspondiente a un determinado cdigo de operacin est formada por los 5 bits de este, como bits ms
significativos, ms tres bits a 0 adicionales.
Cdigo de operacin
00000
00001
00010
...
11111

Direcciones en la M. Control
00000000 - 00000111
00001000 - 00001111
00010000 - 00010111
...
11111000 - 11111111

Formato de las direcciones


00000XXX
00001XXX
00010XXX
...
11111XXX

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

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.13


A la vista del esquema de la Unidad de Procesamiento (Figura 67-16-1), se deduce que son posibles 5
tipos de operaciones bsicas:
1) Bifurcacin (B): Condicionales (8 seales de condicin) e incondicionales.
2) Aritmticas y lgicas (UAL).
3) Desplazamiento (DESP): 3 bits para indicar el tipo de desplazamiento.
4) Transferencia de registros (TRANS): Rdestino (Rorigen).
5) Memoria (MEM): Operaciones de lectura y escritura en memoria principal, o asignar un
valor directo a un registro (este ltimo caso se podra considerar como un tipo independiente
de las operaciones de memoria):
direccin (Ri)
Ri (direccin)
Ri valor
El formato de microinstruccin que se elija ha de permitir todos estos tipos de operaciones. La solucin
no es nica. A continuacin se expone cada una de las posibilidades, indicando sus ventajas e
inconvenientes.
A) Microinstrucciones de formato horizontal. Cada seal de control tiene un subcampo independiente de
1 bit que indica el correspondiente valor de la seal de control. stas son:
Registros 1 al 31: 2 seales cada uno.
Registro 0: 3 seales de carga y 1 de salida al bus.
Registro de desplazamiento: 1 seal de carga y 3 de control de modo.
UAL: 2 seales de carga y 5 de control de modo.
16 bits de direccionamiento directo o inmediato.
Es decir, en total hay 93 seales de control que han de ser especificadas, una a una, en la
microinstruccin (al ser tantas seales no se ha representado grficamente este formato de
microinstruccin).
ste es el modo ms sencillo y ms rpido de ejecutar, ya que no es necesario ningn tipo de
decodificacin de las microinstrucciones. Cada bit de la microinstruccin se corresponde directamente
con una nica seal de control.
Sin embargo, su longitud es muy grande y no est bien aprovechada; por ejemplo, una instruccin no
puede realizar simultneamente una operacin de la UAL y del registro de desplazamiento, pues en
ambas interviene el registro R0. Es decir, se tiene un formato en el que muchas seales se excluyen
mutuamente.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

B) Microinstrucciones de formato vertical. Soluciona en parte la longitud excesiva del formato


horizontal. No existe un bit por seal de control, sino que stas se encuentran codificadas:
- Las seales de lectura de los registros 1 al 31 se pueden codificar con nicamente 5 bits
(25=32). As, 00001 indicar lectura del registro R1, 00010 lectura del registro R2, etc. Sobra una
combinacin, la 00000, que se puede utilizar para indicar que no se lee el valor de ningn
registro. En este caso la lectura de un registro excluye la de todos los dems.
- Lo mismo sucede con las seales de carga de los registros 1 al 31.
- Las 4 seales de control del registro R0 (3 de carga y una de lectura con salida al bus) se
pueden codificar con 2 bits.
- El registro de desplazamiento RD tiene un total de 4 seales de control que no necesitan ms
codificacin.
- La UAL se controla con un total de 7 seales.
- 16 bits de direccionamiento directo o inmediato.
El formato de microinstruccin es el de la Figura 67-16-2.
5
Lec. Reg.

Escr. Reg.

R0

RD

16
Direccin o

UAL

Valor

Figura 67-16-2 Formato de microinstrucciones vertical


Este tipo de microinstruccin slo necesita una longitud de palabra de control de 39 bits, frente a los 93
del formato horizontal. Sin embargo, el nivel de decodificacin adicional aade complejidad al hardware
y hace que la ejecucin de las microinstrucciones resulte ms lenta, a igualdad de tecnologa empleada.
C) Microinstrucciones verticales de formato variable. Representan un nivel adicional de codificacin
frente al formato vertical fijo. Como se indic anteriormente, hay 5 tipos de operaciones. A cada uno de
ellos se le asigna un formato especial de microinstruccin, segn se muestra en la Figura 67-16-3. En este
caso, el ancho de palabra de control es de un mnimo de 21 bits.
1
BIFURC.

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

Figura 67-16-3 Microinstrucciones verticales de formato variable

Jose Manuel Daz Tutor de ETC2 (Coslada)

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.

SOLUCION PROBLEMA 7.14


DATOS
Formato de microinstrucciones vertical.
16 seales de control
En general un subcampo de control de j bits de una microinstruccin de formato vertical puede codificar
un total 2j-1 seales de control ya que una codificacin se debe reservar para especificar el caso en que
ninguna de las seales de control de ese subcampo se encuentre activa. Por lo tanto:
Puesto que se tienen 16 seales de control y hay que reservar una codificacin por lo explicado
anteriormente, se requiere un decodificador con al menos 17 salidas. Este decodificador debe poseer
como mnimo 5 entradas, ya que para codificar estas 17 salidas se requieren 5 bits al verificarse que
25=32 >17. Por lo tanto la anchura mnima de este subcampo debe ser de 5 bits.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.15


DATOS
Unidad de control microprogramada.
Direccionamiento explcito con 2 direcciones por microinstruccin.
Memoria de control de 35 bits.
15 bits para los campos de control.
La memoria de control almacenar las posibles microinstrucciones que se pueden ejecutar en el sistema,
la anchura de esta memoria segn el enunciado es de 35 bits, de los cuales 15 son para los bits de control
y los 20 restantes para almacenar dos direcciones de memoria de control, ya que se usa direccionamiento
explcito con 2 direcciones por microinstruccin.
Luego una direccin de memoria de control requiere para especificarse 20/2=10 bits. En consecuencia, el
nmero de palabras mxima que tendr la memoria de control, es decir que pueden ser direccionadas con
10 bits es: 210 palabras

Jose Manuel Daz Tutor de ETC2 (Coslada)

10

También podría gustarte