0% encontró este documento útil (0 votos)
2K vistas774 páginas

Ejercicios Resueltos Por Tema y Examenes PDF

Cargado por

Ivan Tellez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2K vistas774 páginas

Ejercicios Resueltos Por Tema y Examenes PDF

Cargado por

Ivan Tellez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 774

ESTRUCTURA Y TECNOLOGIA

DE COMPUTADORES II

TEMA 1: Estructuras de
interconexión de un computador
SOLUCIÓN A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2009-2010
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

PROBLEMAS
TEMA 1: Estructuras de interconexión de un computador

Problemas propuestos en examen


1.1 Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato
único compuesto por un campo de 5 bits, para el código de operación, y otro campo de 11 bits para los
operandos. Todos los 16 códigos de operación 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 dirección de memoria nos encontramos el valor 0011010110001010, necesariamente es una
instrucción máquina.
II. Si en una dirección de memoria nos encontramos el valor 1011010110001010, necesariamente es un
dato.

1.2 La memoria de un ordenador consta de 10 módulos independientes conectados a un bus de memoria común.
En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema al comienzo de la
operación y durante un 20% del tiempo total del ciclo de escritura. El 80% del tiempo de ciclo de escritura
restante el módulo lo emplea para almacenar el dato internamente. Si las operaciones de escritura de dichos
módulos de memoria pueden solaparse, ¿en cuánto se ve incrementada la velocidad máxima de almacenamiento
de la memoria del ordenador en relación a la velocidad de un único modulo?

1.3 Un computador de Von Neumann tiene una longitud de palabra de 16 bits. Sus instrucciones máquina
ocupan una longitud de 16 ó 32 bits (1 ó 2 palabras). En ambos casos, el código de operación de las
instrucciones máquina 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 máximo, 27-1 señales de control diferentes.

1.4 La memoria de un ordenador consta de 20 módulos independientes conectados a un bus de memoria común.
En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema durante 25 nseg.
Al comienzo de la operación. Durante los 75 nseg. siguientes completa el ciclo de escritura almacenando el dato
internamente. Si las operaciones de escritura de dichos módulos de memoria pueden solaparse, ¿cuál es la
velocidad máxima 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 técnica de multiplexación en el tiempo de
direcciones y datos se realiza de la forma siguiente: se coloca la dirección en el Bus de Direcciones
y se mantiene mientras el dato se sitúa en el Bus de Datos.
II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma línea de un
bus, sólo 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 transmisión sobre el bus necesita 500 nseg para enviar el dato y las diferentes órdenes del protocolo.
¿En cuál de las siguientes situaciones estaría más justificado el uso de un bus con temporización síncrona?
A) B = 106 bits/seg B) B = 4 × 106 bits/seg C) B = 107 bits/seg D) B = 8 × 107 bits/seg

1.7 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido:
I. La posición de conexión de los dispositivos a la línea 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.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

1.8 Indique cuál 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 método de arbitraje para evitar que varias unidades vuelquen simultáneamente
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 posición de conexión de un dispositivo a la línea 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 más significativos de la instrucción representan el código
de operación y los otros 12 bits representan la dirección de memoria. A continuación se muestra una lista parcial
de los códigos de operación:
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 dirección de memoria. El resultado se almacena
en el acumulador.
Indicar cuál de los siguientes fragmentos de programa suma el contenido de la dirección de memoria 3A516 al
contenido de la dirección de memoria 3B916 y almacena el resultado en la dirección de memoria 3A516.
A) 33A516, 63B916, 53A516
B) 33B916, 63A516, 53A516
C) Los anteriores son correctos
D) Ninguno de los anteriores

1.11 La memoria de un computador consta de 4 módulos conectados a un bus de memoria común. Cuando se
realiza una petición de escritura, el bus está ocupado por las señales de datos, dirección y control durante 50 ns.
En esos mismos 50ns y en los 200 ns siguientes, el módulo de memoria direccionado ejecuta 1 ciclo aceptando y
almacenando el dato. Las operaciones de los módulos pueden solaparse, pero sólo puede haber una petición por
instante de tiempo. Si tC representa el tiempo de ciclo de escritura, indique cuál es la velocidad máxima de
escritura.

1.12 De acuerdo con un estudio realizado sobre la utilización de las instrucciones de un computador, que no
dispone de caché, se ha determinado que en media ejecuta 50 millones de instrucciones por segundo. Las
distintas instrucciones (todas ellas almacenadas en memoria principal) y los porcentajes de utilización de las
mismas son los siguientes:

LOAD Acum ← M[dir] 30%


STORE M[dir] ← Acum 10%
MOVE R[1] ← Acum 10%
Operaciones aritméticas R[1] ← R[1] operación aritmética R[2] 24%
Operaciones lógicas R[1] ← R[1] operación lógica R[2] 6%
Bifurcaciones PC ← Acum 20%

donde Acum es el acumulador, M[dir] una posición de memoria principal, R[1] y R[2] registros internos y PC el
contador de programa. Si todas las instrucciones ocupan una palabra de memoria, calcular el número medio de
accesos a memoria por segundo que se ejecutan en este computador.

1.13 La memoria de un computador consta de N módulos independientes conectados a un bus de memoria


común. Al comienzo de una operación de escritura en memoria, el bus está ocupado por las señales de datos,
dirección y control durante 20 nseg. Durante los 80 nseg siguientes, el módulo de memoria direccionado
completa el ciclo de escritura, aceptando y almacenando el dato. Las operaciones de los módulos de memoria
pueden solaparse, pero sólo puede haber una petición en un instante de tiempo. Indique cuál es el número de
módulos de memoria (N) conectados al bus si la velocidad máxima posible con la que se pueden escribir los
datos en memoria es 0.05 palabras/nseg.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

1.14 El formato de instrucción de un procesador hipotético es el siguiente: los 4 bits más significativos
almacenan el código de operación y los restantes 12 bits contienen la dirección de memoria. El formato de
almacenamiento de los números enteros es el siguiente: el bit más significativo contiene el signo (0: positivo; 1:
negativo), y los 15 bits restantes la magnitud. La CPU contiene tres registros internos: el contador de programa
(PC), el registro de instrucción (IR) y el acumulador (AC). La lista de los códigos de operación incluye los
siguientes: 00012 (cargar AC desde memoria), 00102 (almacenar AC en memoria), 01102 (restar el AC de
memoria), 11112 (sumar al AC de memoria). Si las posiciones de memoria 80316 y 80416, contienen
respectivamente: 003216 y 101116, señale cuál es el contenido de la posición de memoria 80516 una vez
ejecutadas las tres instrucciones siguientes: 180316, F80416, 280516.

1.15 De acuerdo con un estudio realizado sobre la utilización de las instrucciones de un computador, que no
dispone de caché, se ha determinado que en media ejecuta 100 millones de instrucciones por segundo. Las
distintas instrucciones (todas ellas almacenadas en memoria principal) y los porcentajes de utilización de las
mismas son los mostrados en la tabla, donde Acum. es el acumulador, M[dir] una posición de memoria
principal,
R es un registro interno y PC el contador de programa. Si las instrucciones LOAD y STORE ocupan dos
palabras de memoria y el resto sólo una, calcule el número medio de millones de accesos a memoria por segundo
que se ejecutan en este computador.

LOAD Acum ← M[dir] 20%


STORE M[dir] ← Acum 20%
MOVE R ← Acum 20%
Operaciones aritméticas R ← R operación aritmética Acum 35%
Bifurcaciones PC ← Acum 5%

1.16 El ciclo de instrucción de una máquina usa 4 ciclos de reloj para las instrucciones de operaciones entre
registros (cálculo) y 8 ciclos para el resto de las instrucciones. Si la frecuencia de reloj del computador es 8x106
ciclos/s,
I. ¿Cuánto tardará en ejecutarse un programa de 1000 instrucciones en el que no hay instrucciones de
salto y hay un 20% de instrucciones de cálculo?
II. ¿Cuántos millones de instrucciones por segundo se pueden ejecutar como máximo?

1.17 Un bus con arbitraje centralizado por encadenamiento (daisy-chaining) y con un único nivel de prioridad
tiene conectados 4 dispositivos (d1, d2, d3, d4). El dispositivo d1 es el que se encuentra conectado más próximo
al árbitro, a continuación está conectado d2, seguidamente d3 y finalmente d4. La fracción de la capacidad
utilizada por los dispositivos d1, d2, d3 y d4 es 0.2, 0.35, 0.1 y 0.25 respectivamente. Indique cuál es la
capacidad sobrante del dispositivo d3. (Nota: Se define la capacidad sobrante de un dispositivo como 1 menos
la suma de las fracciones de las capacidades utilizadas por todos los dispositivos que tienen una prioridad
superior).

1.18 La memoria de un ordenador consta de 20 módulos independientes conectados a un bus de memoria


común. En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema al
comienzo de la operación y durante un 12,5% del tiempo total del ciclo de escritura. El 87,5 % del tiempo de
ciclo de escritura restante el módulo lo emplea para almacenar el dato internamente. Si las operaciones de
escritura de dichos módulos de memoria pueden solaparse, ¿En cuánto se ve incrementada la velocidad máxima
de almacenamiento de la memoria del ordenador en relación a la velocidad de un único módulo?

1.19 Considere una CPU en la que tanto las instrucciones como los datos tienen una longitud de 12 bits. El
formato de las instrucciones es el siguiente: los 4 bits más significativos de la instrucción representan el código
de operación y los otros 8 bits representan la dirección de memoria. A continuación, se muestra una lista parcial
de los códigos de operación:
0111: Cargar el registro acumulador desde memoria.
1101: Almacenar en memoria el contenido del registro acumulador.
1110: Restar al acumulador el contenido de una dirección de memoria. El resultado se almacena en el
acumulador.
Indique cual de los siguientes fragmentos de programa resta al contenido de la dirección de memoria 3B16 el
contenido de la dirección de memoria 3A16 y almacena el resultado en la dirección de memoria 3A16:

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

A) 73A16, E3B16, D3A16


B) 73B16, E3A16, D3A16
C) Los anteriores son correctos
D) Ninguno de los anteriores

1.20 Indique si las siguientes afirmaciones son verdaderas.


I. Una transferencia de datos en un bus que utiliza la técnica de multiplexación en el tiempo de
direcciones y datos se realiza de la forma siguiente: se coloca la dirección en el Bus de Direcciones
y se mantiene mientras el dato se sitúa en el Bus de Datos.
II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma línea de un
bus, sólo una de ellas puede estar en estado de alta impedancia.

1.21 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido:
I. La posición de conexión de los dispositivos a la línea 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.22 Una CPU con bus de direcciones de 16 bits y un bus de datos de 8 bits tiene un registro de 8 bits conectado
al bus de datos y a la unidad de control. Este registro puede ser uno de los siguientes:
A) Contador de programa (PC). B) De instrucción (IR).
C) De direcciones de memoria (MAR). D) Ninguna de las anteriores.

1.23 La memoria de un computador consta de N módulos independientes conectados a un bus de memoria


común. Al comienzo de una operación de escritura en memoria, el bus está ocupado por las señales de datos,
dirección y control durante 20 nseg. Durante los 80 nseg siguientes, el módulo de memoria direccionado
completa el ciclo de escritura, aceptando y almacenando el dato. Las operaciones de los módulos de memoria
pueden solaparse, pero sólo puede haber una petición en un instante de tiempo. Indique si las siguientes
afirmaciones son ciertas:
I. Si el número de módulos N = 3 la velocidad máxima de transferencia es de 0.03 palabras/nseg
II. Cuando el número de módulos N > 4, la velocidad máxima de transferencia es de 0.06 palabras/nseg

1.24 En un bus con arbitraje centralizado:


A) Cualquier dispositivo puede decidir en qué momento toma el control del bus.
B) La temporización debe ser asíncrona.
C) Todos los dispositivos actúan de forma cooperativa para compartir el bus.
D) Todas las afirmaciones anteriores son falsas.

1.25 El formato de instrucción de un procesador hipotético es el siguiente: los 4 bits más significativos
almacenan el código de operación y los restantes 12 bits contienen la dirección de memoria. El formato de
almacenamiento de los números enteros es el siguiente: el bit más significativo contiene el signo (0: positivo; 1:
negativo), y los 15 bits restantes la magnitud. La CPU contiene tres registros internos: el contador de programa
(PC), el registro de instrucción (IR) y el acumulador (AC). La lista de los códigos de operación incluye los
siguientes: 00012 (cargar AC desde memoria), 00102 (almacenar AC en memoria), 10002 (restar al AC de
memoria), 10012 (sumar al AC de memoria). Si las posiciones de memoria A0F16 y 3A016 contienen
respectivamente: X e Y, determinar cuál es el contenido de la posición de memoria 3A016 una vez ejecutadas las
cuatro instrucciones siguientes: 13A016, 9A0F16, 93A016, 2A0F16.

1.26 La memoria de un ordenador consta de 15 módulos independientes conectados a un bus de memoria


común. En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema al
comienzo de la operación durante un 20% del tiempo total del ciclo de escritura. El 80% restante del tiempo de
ciclo de escritura, el módulo lo emplea para almacenar el dato internamente. Si las operaciones de escritura de
dichos módulos de memoria pueden solaparse (pero sólo puede haber una petición en un instante de tiempo),
¿en cuánto se ve incrementada la velocidad máxima de almacenamiento de la memoria de este ordenador en
relación a la velocidad de un único modulo?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

1.27 En el sistema de la figura, BR representa la línea de petición de bus y BG la de autorización. En un


momento dado, mientras CONT3 está haciendo uso del bus, CONT4 activa su línea de petición, y a
continuación lo hace CONT2 y por último CONT1. Cuando CONT3 deje de utilizar el bus, ¿cuál será el
próximo dispositivo que asumirá el control del bus?
BR BUS

TERMINADOR
DEL BUS
ARBITRO BG

CONT1 CONT2 CONT3 CONT4

1.28 Se tienen dos ordenadores. La memoria del primer ordenador consta de 20 módulos independientes
conectados a un bus de memoria común y la del segundo consta de 15 módulos de las mismas características.
En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema al comienzo de la
operación durante un 20% del periodo del tiempo total del ciclo de escritura. El tiempo de ciclo de escritura
restante, el módulo lo emplea para almacenar el dato internamente. Si las operaciones de escritura de dichos
módulos de memoria pueden solaparse (pero sólo puede haber una petición en un instante de tiempo), indique
cual de las siguientes afirmaciones es cierta.
A) la velocidad máxima de acceso del ordenador con 15 módulos es superior al de 20.
B) la velocidad máxima de acceso del ordenador con 20 módulos es superior al de 15.
C) la velocidad máxima de acceso de los dos ordenadores es la misma.
D) Ninguna de las anteriores.

1.29 Considere una CPU en la que tanto las instrucciones como los datos tienen una longitud de 12 bits. El
formato de las instrucciones es el siguiente: los 4 bits más significativos de la instrucción representan el código
de operación y los otros 8 bits representan la dirección de memoria. A continuación, se muestra una lista parcial
de los códigos de operación:
0111: Cargar el registro acumulador desde memoria.
1101: Almacenar en memoria el contenido del registro acumulador.
1100: Sumar al acumulador el contenido de una dirección de memoria. El resultado se almacena en el
acumulador.
Indique cual de los siguientes fragmentos de programa suma al contenido de la dirección de memoria 3B16 el
contenido de la dirección de memoria 3C16 y almacena el resultado en la dirección de memoria 3C16:
A) 73C16, C3B16, D3C16
B) 73B16, C3C16, D3B16
C) Los anteriores son correctos.
D) Ninguno de los anteriores.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

CONTENIDO
SOLUCIÓN PROBLEMA 1.1 ..................................................................................................................... 3
SOLUCIÓN PROBLEMA 1.2 ..................................................................................................................... 3
SOLUCIÓN PROBLEMA 1.3 ..................................................................................................................... 4
SOLUCIÓN PROBLEMA 1.4 ..................................................................................................................... 5
SOLUCIÓN PROBLEMA 1.5 ..................................................................................................................... 5
SOLUCIÓN PROBLEMA 1.6 ..................................................................................................................... 6
SOLUCIÓN PROBLEMA 1.7 ..................................................................................................................... 7
SOLUCIÓN PROBLEMA 1.8 ..................................................................................................................... 7
SOLUCIÓN PROBLEMA 1.9 ..................................................................................................................... 8
SOLUCIÓN PROBLEMA 1.10 ................................................................................................................... 8
SOLUCIÓN PROBLEMA 1.11 ................................................................................................................... 9
SOLUCIÓN PROBLEMA 1.12 ................................................................................................................. 11
SOLUCIÓN PROBLEMA 1.13 ................................................................................................................. 12
SOLUCIÓN PROBLEMA 1.14 ................................................................................................................. 16
SOLUCIÓN PROBLEMA 1.15 ................................................................................................................. 17
SOLUCIÓN PROBLEMA 1.16 ................................................................................................................. 18
SOLUCIÓN PROBLEMA 1.17 ................................................................................................................. 19
SOLUCIÓN PROBLEMA 1.18 ................................................................................................................. 19
SOLUCIÓN PROBLEMA 1.19 ................................................................................................................. 21
SOLUCIÓN PROBLEMA 1.20 ................................................................................................................. 22
SOLUCIÓN PROBLEMA 1.21 ................................................................................................................. 22
SOLUCIÓN PROBLEMA 1.22 ................................................................................................................. 23
SOLUCIÓN PROBLEMA 1.23 ................................................................................................................. 23
SOLUCIÓN PROBLEMA 1.24 ................................................................................................................. 25
SOLUCIÓN PROBLEMA 1.25 ................................................................................................................. 26
SOLUCIÓN PROBLEMA 1.26 ................................................................................................................. 27
SOLUCIÓN PROBLEMA 1.27 ................................................................................................................. 27
SOLUCIÓN PROBLEMA 1.28 ................................................................................................................. 28
SOLUCIÓN PROBLEMA 1.29 ................................................................................................................. 28

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.1


DATOS
• Tamaño de palabra de 16 bits.
• Repertorio de 16 instrucciones.
• Formato de instrucción :
• Campo de 5 bits para el código de operación.
• Campo de11 bits para el campo de operandos.
• Los 16 códigos de operación comienzan por un 0 (00000-01111)

Afirmación 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 instrucción dependerá del momento del ciclo de instrucción en
que se realice el acceso a memoria.
- Si el acceso a memoria se realiza en el ciclo de búsqueda de la instrucción el contenido de la posición de
memoria será considerada una instrucción que se almacenará en el registro de instrucción (IR).
- Si el acceso a memoria se realiza en las subfases del ciclo de ejecución (búsqueda de operandos,
almacenamiento de resultados, etc) de la instrucción el contenido de la posición de memoria será
considerado un dato.
- Luego la afirmación I, es falsa, ya que si el contenido de una dirección de memoria empieza por 0,
puede ser un dato o una instrucción máquina dependiendo de la fase de ejecución de la instrucción en que
nos encontremos.

Afirmación II
- Del enunciado se sabe que para que el contenido de una posición de memoria sea considerado una
instrucción su bit más significativo debe ser un 0, puesto que en este caso comienza por 1 necesariamente
debe ser un dato. Luego la afirmación II es verdadera.

SOLUCIÓN PROBLEMA 1.2


DATOS
• Memoria de 10 módulos 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 módulo almacena el dato internamente.
• Las operaciones de estos módulos pueden solaparse.

Supongamos que la memoria del computador consta de un único módulo, la velocidad máxima de
almacenamiento sería:
1
v max = ( pal / seg )
tc
De acuerdo con el enunciado del problema el tiempo de ciclo tc, se puede considerar como la suma de dos
componentes :
- tiempo de utilización del bus tbus=0.2tc
- tiempo de almacenamiento interno del dato talm=0.8tc

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

tbus talm

tc
Utilizando los 10 módulos disponibles, y solapando al máximo los ciclos de escritura para intentar que en
todo momento uno de los módulos esté accediendo al bus, se llega a la situación representada por la
siguiente figura
10·tbus
modulos
mod 1 5
mod 2 6
mod 3 7
mod 4 8
mod 5 9
mod 6 10
mod 7 1
mod 8 2
mod 9 3
mod10 4

tiempo

El módulo 1 inicia una operación de escritura haciendo uso del bus en exclusiva durante tbus. A
continuación el módulo 2 puede iniciar su operación de escritura y así sucesivamente hasta llegar al
módulo 10, al que le sigue de nuevo el módulo 1 repitiéndose el ciclo.
La parte central de la Figura delimitada por dos líneas punteadas se repite de forma continua y, por tanto
cada 10·tbus empiezan o finalizan 10 operaciones de escritura. Encerradas en un circulo se enumeran estas
10 operaciones. La velocidad de almacenamiento definida como el número de palabras escritas en
memoria por unidad de tiempo, es por tanto

10( pal ) 10 v
′ =
v max = = max = 5·v max ( pal / seg )
10·t bus ( seg ) 10·0.2·t c 0 .2
Luego la velocidad de almacenamiento se ve incrementada 5 veces.

SOLUCIÓN PROBLEMA 1.3


DATOS
Computador de Von Neuman
Longitud de palabra de 16 bits.
Instrucciones máquina ocupan 16 o 32 bits (1 o 2 palabras)
Codigo de operación ocupa un campo de 7 bits.

Una de las características 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 afirmación I es
falsa.

Cuando se habla de instrucciones máquina no tiene sentido hablar de señales de control, sino de códigos
de operación, formato de instrucciones, etc. Sin embargo, si nos referimos a microinstrucciones, sí tiene
sentido. La afirmación II es falsa.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.4


DATOS
• Memoria de 20 módulos 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 módulo almacena el dato internamente.
• Las operaciones de estos módulos pueden solaparse.

tbus=25 nseg talm=75 nseg

tc=100 nseg

De forma inmediata se ve que si cada 100 nseg. el módulo de memoria ocupa 25 nseg., es decir, 1/4 del
tiempo, vamos a poder solapar, cómo máximo, 4 operaciones de escritura con 4 módulos de memoria
distintos aunque nuestro sistema disponga de 20 módulos. Para aclarar este punto en la Figura se muestra
solapamiento máximo que se puede conseguir utilizando todos los módulos de memoria. En el instante de
tiempo t únicamente están realizando parte de una operación de escritura 4 módulos: módulos 2, 3, 4 y 5.

Por tanto, en una operación 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:

4( pal ) 4
v max = = −7 = 4·10 7 ( pal / seg )
100(nseg ) 10

SOLUCIÓN PROBLEMA 1.5


Afirmación I:
• Es falsa, ya que en la técnica de multiplexación en el tiempo se comparten las mismas líneas de un
bus, para enviar datos o direcciones, por lo que es imposible mantener en paralelo una dirección y un
dato.

Afirmación II:
• Es falsa, ya que si solo una puerta triestado estuviera en estado de alta impedancia, el resto tendrían
sus salidas activas y se produciría un error al cargar la línea del bus con más de una entrada. Lo
correcto sería justamente lo contrario, es decir, todas las puertas menos una deben estar en estado de
alta impedancia.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.6


DATOS
• En un Bus se han conectado la memoria principal y cinco discos iguales.
• Tiempo de ciclo de Mp es tc=400nseg.
• La velocidad de transferencia de cada disco es vT=B (bits/seg).
• La longitud de una palabra es de 32 bits.
• Cada transmisión sobre el bus necesita 500 nseg para enviar el dato y las diferentes ordenes del
protocolo.
• Se desea usar un Bus con temporización síncrona.

En un bus con temporización sincrona, todos los dispositivos conectados a él están funcionando con una
frecuencia de reloj fija. Su utilización es conveniente cuando los dispositivos que tiene conectados tienen
velocidades de transferencia vT muy parecidas ya que si se tienen conectados un grupo heterogéneo de
dispositivos, con velocidades muy distintas, el bus debe adecuarse al más lento impidiendo que los más
rápidos empleen todo su potencial.

En este problema se sabe que el bus tiene conectado la memoria principal Mp y cinco discos duros . De
acuerdo con el razonamiento anterior, si se desea utilizar un bus con temporización síncrona 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 más cercana posible a la velocidad de transferencia vT de la MP
que es el dispositivo más rápido conectado. Es decir, se debe cumplir

B ≈ vT

Por lo tanto la resolución de este problema se reduce a calcular la velocidad de transferencia de la Mp,
que viene dada, supuesto que es de acceso aleatorio, por la inversa del tiempo de ciclo:

1 1
vT = = −9
= 25·10 5 ( palabras / seg )
t C 400·10

Cada palabra tiene 32 bits por lo tanto, la velocidad de transferencia vT de la MP se puede expresar en
(bits/seg):

 palabras   bits 
vT = 25·10 5  ·32  = 8·10 7 (bits / seg )
 seg   palabra 
Luego

B ≈ vT = 8·10 7 (bits / seg )

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.7


DATOS
• Bus con arbitraje distribuido

En un esquema distribuido cada módulo contiene la lógica de control suficiente para poder acceder al bus
y todos ellos actúan de forma cooperativa para compartir el recurso.

Solicitud del bus

Ocupada

1
Línea de arbitraje

Ent Sal Ent Sal Ent Sal Ent Sal Ent

a b c d e

Figura: Bus con arbitraje distribuido

Afirmación I:
Es FALSA, ya que en este tipo de arbitraje el dispositivo más cercano a la línea de arbitraje es aquel que
tiene la máxima prioridad.
Afirmación II:
Es FALSA, ya que mientras la línea de “bus ocupado” esté activada por un modulo, no puede ser
utilizado el bus por ningún otro módulo pese a poseer una mayor prioridad.

SOLUCIÓN PROBLEMA 1.8


Afirmación A:
• Es FALSA. Un bus puede transportar datos, direcciones y también señales de control.
Afirmación 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.
Afirmación C:
• Es FALSA, es necesario un método de arbitraje (centralizado o distribuido) para gestionar el uso del
bus por parte de los distintos elementos conectados al mismo.
Afirmación D:
• Es FALSA, ya que es verdadera la afirmación B.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.9


DATOS
• Bus con arbitraje distribuido

En un esquema distribuido cada módulo contiene la lógica de control suficiente para poder acceder al bus
y todos ellos actúan de forma cooperativa para compartir el recurso.

Solicitud del bus

Ocupada

1
Línea de arbitraje

Ent Sal Ent Sal Ent Sal Ent Sal Ent

a b c d e

Figura: Bus con arbitraje distribuido

Afirmación I:
• Es VERDADERA, ya que en este método de arbitraje el dispositivo más cercano a la línea de
arbitraje es aquel que tiene la máxima prioridad de uso del bus.
Afirmación II:
• Es VERDADERA, ya que en este método de arbitraje cada módulo contiene la lógica de control
suficiente para poder acceder al bus y todos ellos actúan de forma cooperativa para compartir el
recurso.

SOLUCIÓN PROBLEMA 1.10


DATOS
• Instrucciones y datos tienen una longitud de 16 bits.
• Formato de instrucción

16 bits

Cod. Operación Dirección

4 bits 12 bits

• Códigos de operación:
0011: Ac←[M]
0101: M←[Ac]
0110: Ac←[Ac]+[M]

Para la resolución de este problema se va a utilizar la siguiente nomenclatura:


M indica una dirección de memoria.
[M] hace referencia al contenido de la dirección de memoria M
Ac indica la dirección del acumulador.
[Ac] hace referencia al contenido de la dirección de memoria M

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

La equivalencia en hexadecimal de los códigos de operación es:


316 Ac←[M]
516 M←[Ac]

616 Ac←[Ac]+[M]

De acuerdo con el enunciado del problema la operación que se desea realizar es sumar el contenido de la
dirección de memoria 3A516 al contenido de la dirección de memoria 3B916 y almacenar el resultado en la
dirección de memoria 3A516. Es decir, de forma esquemática dicha operación se puede representar de la
siguiente forma:
3A516←[3A516]+[3B916]

Esta operación se puede realizar mediante la siguiente secuencia de instrucciones:


Opción 1:
1) 33A516 que indica la operación Ac←[3A516]
2) 63B916 que indica la operación Ac←[Ac] + [3B916]
3) 53A516 que indica la operación 3A516←[Ac]

Opción 2:
1) 33B916 que indica la operación Ac←[3B916]
2) 63A516 que indica la operación Ac←[Ac] + [3A516]
3) 53A516 que indica la operación 3A516←[Ac]
Luego la respuesta correcta es la C.

SOLUCIÓN PROBLEMA 1.11


DATOS
• Memoria de 4 módulos independientes conectados a un bus de memoria común
• Cada módulo ocupa el bus durante 50 nseg del ciclo de escritura.
• Durante esos 50 nseg y los 200 ns siguientes, el módulo de memoria direccionado ejecuta 1 ciclo
aceptando y almacenando el dato.
• Las operaciones de estos módulos pueden solaparse, pero solo puede haber una petición por
instante de tiempo.
• tc es el tiempo de ciclo de escritura.
• ¿Cual es la velocidad máxima de transferencia ?

[Ver problema 1-3 del libro de problemas]. La situación planteada por el problema se ilustra en la
Figura 1.11.1, donde los M i representan los 4 módulos de memoria propuestos.

M1 M2 M3 M4

BUS
Figura 1.11.1: Esquema de los módulos de memoria.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

El ciclo de escritura en los módulos de memoria se muestra gráficamente en la Figura 1.11.2. En la


primera parte del ciclo el módulo de memoria utiliza durante tbus=50ns el bus en exclusiva, pero en la
segunda parte se realiza el almacenamiento del dato talm=200 ns. En esta segunda parte del ciclo de
escritura cualquier otro módulo puede hacer uso del bus.

tbus=50 ns talm=200 ns

tc=250 ns
Figura 1.11.2: Ciclo de escritura de los módulos de memoria.

El tiempo de ciclo de escritura correspondiente, tc, es la suma del tiempo de ocupación del bus más el
tiempo de almacenamiento:

tc= tbus+talm= 50+200=250 ns

Utilizando los cuatro módulos disponibles, y solapando al máximo los ciclos de escritura para intentar
que en todo momento uno de los módulos esté accediendo al bus, se llega a la situación representada en
la Figura 1.11.3:
tc =250 ns

4
M1

1
M2

2
M3

3
M4

50 100 150 200 250 300 350 400 450 500 550 600
Tiempo (ns)
Figura 1.11.3: Máximo solapamiento con t c=250 ns

Se observa en esta figura como el modulo M1 ocupa el bus hasta t=50 ns, a continuación lo utilizar M2
hasta t=100 ns, luego lo utiliza M3 hasta t=150 ns y posteriormente lo utiliza M4 hasta t=200 ns.
Obsérvese que en este instante de tiempo el modulo M1 no ha finalizado la operación de escritura de una
palabra, por lo que no puede comenzar otra operación de escritura hasta t=250 ns, que es cuando acaba su
ciclo.
Luego en t=250 nseg empezaría por tanto otra ronda de uso del bus por parte de M1 que lo ocupa hasta
t=300 ns, a continuación lo utilizar M2 hasta t=350 ns, luego lo utiliza M3 hasta t=400 ns y
posteriormente lo utiliza M4 hasta t=450 ns.

En el intervalo de tiempo comprendido entre t=250 ns y t=500 ns, se han escrito las siguientes palabras
en el sistema:
1) El modulo M2 finaliza la escritura de una palabra en t=300 ns.
2) El modulo M3 termina de escribir una palabra en t=350 ns.
3) El módulo M4 termina de escribir una palabra en t=400 ns.
4) El módulo M1 termina de escribir una palabra en t=500 ns.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

5)
Luego en un tiempo de ciclo tc=250 ns se escriben 4 palabras, una en cada módulo. Luego la velocidad
máxima de escritura (palabras/s) será:

4
vT max =
tC

SOLUCIÓN PROBLEMA 1.12


DATOS
• El computador ejecuta 50 millones de instrucciones por segundo.
• Las instrucciones están almacenadas en la memoria principal.
• En la tabla del enunciado se dan los tipos de instrucciones que soporta el computador y los
porcentajes de utilización de cada una de ellos.
• Cada instrucción ocupa 1 palabra de memoria.

Para resolver este problema se debe recordar que a la hora de ejecutar una instrucción el computador
realiza dos pasos o fases: la fase de búsqueda y la fase de ejecución.
Fase o ciclo de búsqueda
De acuerdo con el enunciado todas las instrucciones se encuentran en la memoria principal, luego en la
fase de búsqueda independientemente del tipo de instrucción , se realizará un acceso a la memoria
principal para leer la palabra que contiene la instrucción.
Luego si el computador ejecuta 5·107 instrucciones por segundo se realizarán debido a la fase de
búsqueda de cada instrucción NB accesos por segundo.
 instrucciones   acceso  7  accesos 
N B = 5·10 7   *1  = 5·10  
 s   instruccion   s 

Fase o ciclo de ejecución


Ahora hay que considerar únicamente aquellas instrucciones que utilizan operandos que se encuentran en
la memoria principal, es el caso de LOAD Acum ←M[dir]. De la tabla se sabe que el porcentaje de
utilización de estás instrucciones es del 30 %.

Además hay que considerar aquellas instrucciones que almacenan el resultado en la memoria principal,
este es el caso de STORE M[dir]← Acum. De la tabla se sabe que el porcentaje de utilización de estás
instrucciones es del 10 %.

En ambos casos sólo hay que hacer un acceso a memoria, bien para leer o bien para escribir.

Luego si el computador ejecuta 5·107 instrucciones por segundo se realizarán debido a la fase de
ejecución de cada instrucción NE accesos por segundo:
 instrucciones   accesos  7  accesos 
N E = (0.3 ⋅ 5·10 7 + 0.1 ⋅ 5·10 7 ) ·  * 1  = 0.4 ⋅ 5·10  
 s   instruccion   s 

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

Numero de accesos a memoria por segundo:


El número total de accesos a memoria por segundo vendrá dado por la suma de N B y de NE :

accesos
N = N B + N E = 5·10 7 + (0.4·10 7 ) = (1 + 0.4)·5·10 7 = 1.4·5·10 7 = 70·10 6 ·
s

SOLUCIÓN PROBLEMA 1.13


DATOS
• Memoria de N módulos independientes conectados a un bus de memoria común
• Cada módulo ocupa el bus durante 20 nseg del ciclo de escritura.
• Durante esos 20 nseg y los 80 ns siguientes, el módulo de memoria direccionado ejecuta 1 ciclo
aceptando y almacenando el dato.
• Las operaciones de estos módulos pueden solaparse, pero solo puede haber una petición por
instante de tiempo.
• La velocidad máxima de escritura de datos en memoria es vTmax=0.05 palabras/nseg.
• ¿Cual es el número máximo de módulos N conectados al bus?

[Este problema es una variante del problema 1.11].

La situación planteada por el problema se ilustra en la Figura 1.13.1, donde los Mi i=1,...,N representan
los N módulos de memoria propuestos.

M1 M2 MN

BUS
Figura 1.13.1: Esquema de los módulos de memoria.

El ciclo de escritura en los módulos de memoria se muestra gráficamente en la Figura 1.13.2. En la


primera parte del ciclo el módulo de memoria utiliza durante tbus=20ns el bus en exclusiva, pero en la
segunda parte se realiza el almacenamiento del dato talm=80 ns. En esta segunda parte del ciclo de
escritura cualquier otro módulo puede hacer uso del bus.

tbus=20 ns talm=80 ns

tc=100 ns
Figura 1.13.2: Ciclo de escritura de los módulos de memoria.

El tiempo de ciclo de escritura correspondiente, tc, es la suma del tiempo de ocupación del bus más el
tiempo de almacenamiento:

tc= tbus+talm= 20+80=100 ns

Este problema puede ser resuelto de dos formas distintas:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

FORMA GRAFICA: Se van a solapar al máximo los ciclos de escritura para intentar que en todo
momento uno de los módulos esté accediendo al bus.

• Si el número de módulos es N=2 se tiene el siguiente esquema:


Módulos
tc =100 ns

1
M1

2
M2

20 40 60 80 100 120 140 160 180 200 220

Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se escriben dos palabras. Luego la velocidad
máxima del sistema es:

2
vT max = = 0.02 (palabras/nseg)
100
Luego con dos módulos no es posible alcanzar la velocidad deseada de 0.05 (palabras/nseg).

• Si el número de módulos es N=3 se tiene el siguiente esquema:


Módulos
tc =100 ns

1
M1
2
M2
3
M3

20 40 60 80 100 120 140 160 180 200 220

Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se escriben tres palabras. Luego la velocidad
máxima del sistema es:

3
vT max = = 0.03 (palabras/nseg)
100
Luego con tres módulos no es posible alcanzar la velocidad deseada de 0.05 (palabras/nseg).

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

• Si el número de módulos es N=4 se tiene el siguiente esquema:

Módulos
tc =100 ns

1
M1
2
M2
3
M3
4
M4

20 40 60 80 100 120 140 160 180 200 220 Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se escriben cuatro palabras. Luego la velocidad
máxima del sistema es:

4
vT max = = 0.04 (palabras/nseg)
100
Luego con cuatro módulos no es posible alcanzar la velocidad deseada de 0.05 (palabras/nseg).

• Si el número de módulos es N=5 se tiene el siguiente esquema:


Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
5
M5

20 40 60 80 100 120 140 160 180 200 220 Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se escriben cinco palabras. Luego la velocidad
máxima del sistema es:

5
vT max = = 0.05 (palabras/nseg)
100
Es decir, a partir de cinco módulos es posible alcanzar la velocidad deseada de 0.05 (palabras/nseg).
Vamos a comprobar esta afirmación suponiendo que el número de módulos es N=6 se tiene el siguiente
esquema:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
5
M5

M6

20 40 60 80 100 120 140 160 180 200 220


Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se siguen escribiendo cinco palabras. En
conclusión, si N≥5 se obtendrá la velocidad deseada de 0.05 (palabras/nseg).

FORMA ANALITICA

La velocidad máxima de escritura vTmax (palabras/nseg) viene dada como el cociente entre el número
máximo de palabras N escritas durante un cierto intervalo de tiempo, por ejemplo, el tiempo de ciclo
tc(nseg). Para obtener este valor máximo de palabras escritas se debe solapar al máximo los ciclos de
escritura para intentar que en todo momento uno de los módulos esté accediendo al bus, es decir, cada
una de las N palabras se debe escribir en un módulo de memoria distinto. Por lo tanto:

N
vT max =
tC

Si se despeja N se obtiene:

N = vT max ·t C = 0.05( pal / nseg )·100(nseg ) = 5 palabras

Por lo tanto, hay que escribir 5 palabras en un tiempo de ciclo para obtener la velocidad máxima de
escritura que se indica en el enunciado. Esto sólo es posible si el sistema posee 5 o más módulos de
memoria conectados al bus, supuesto el máximo solapamiento.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.14


DATOS
• Formato de instrucción:
16 bits

Cod. Operación Dirección

4 bits 12 bits

• El formato de almacenamiento de los números enteros es el siguiente:


Bit más significativo: Signo (0 positivo, 1 negativo).
15 bits restantes: Magnitud
• Registros de la CPU: Contador del programa (PC), registro de instrucción (IR) y acumulador
(AC).
• Lista parcial de códigos de operación:
00012 (Ac ←[M])
00102 (M ←[Ac])
01102 (Ac ←[Ac]-[M])
11112 (Ac ←[Ac]+[M])
• Contenido de ciertas posiciones de memoria: [80316]=003216 , [80416]=101116
• Averiguar el contenido de la posición de memoria 80516 tras ejecutar las instrucciones 180316
F80416 280516

Para resolver este problema se va ir analizando cada una de las instrucciones que se ejecutan:

1) La instrucción 180316 tiene por código de operación 116=00012, y como dirección 80316 se ejecuta la
siguiente instrucción:

Ac ← [80316]

Luego, se estaría cargando en el acumulador el contenido de la dirección de memoria 80316, es decir,


003216.

2) La instrucción F80416 tiene por código de operación F16=11112, y como dirección 80416 se ejecuta la
siguiente instrucción:

Ac ←[Ac]+ [80416]

Luego, se estaría cargando en el acumulador el resultado que se obtiene al sumar el contenido del
acumulador [Ac]=003216 con [80416]=101116. Que da como resultado 104316

3) La instrucción 280516 tiene por código de operación 216=00102, y como dirección 80516 se ejecuta la
siguiente instrucción:

80516 ←[Ac]

Luego, se almacena en la dirección de memoria 80516 el contenido del acumulador [Ac]=104316. En


consecuencia la respuesta a este problema es [80516]=104316.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 16


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.15


DATOS
• El computador ejecuta 100 millones de instrucciones por segundo.
• Las instrucciones están almacenadas en la memoria principal.
• En la tabla del enunciado se dan los tipos de instrucciones que soporta el computador y los
porcentajes de utilización de cada una de ellos.
• Las instrucciones LOAD y STORE ocupan 2 palabras de memoria.
• El resto de instrucciones sólo ocupa 1 palabra de memoria

[Este problema es similar al Problema 1.12]

Fase o ciclo de búsqueda


De acuerdo con la Tabla del enunciado el uso de las instrucciones LOAD y STORE es del 40 % (20+20).
Por lo tanto, el número de instrucciones de estos tipos que se ejecutan por segundo será el 40% del total
de instrucciones, es decir, 0.4·108 instrucciones/s. Además del enunciado se sabe que estos tipos de
instrucciones ocupan cada una 2 palabras/instrucción. Luego se realizarán dos accesos a la memoria
principal para leer las dos palabras que contienen una instrucción LOAD o STORE.
El número de accesos por segundo NB(LOAD & STORE) que se realizarán a la memoria principal en la fase
de búsqueda de estas instrucciones es:

 instrucciones   acceso  8  accesos 


N B ( LOAD − STORE) = 0.4·10 8   * 2  = 0.8·10  
 s   instruccion   s 

Por otra parte el uso de las restantes instrucciones es del 60%(100-40). Luego el número de instrucciones
de estos otros tipos que se ejecutan por segundo será 0.6·108 instruccione/s. Para leer estas instrucciones
en memoria principal sólo hay que realizar un acceso. Entonces, el número de accesos por segundo
NB(OTRAS) que se realizarán a la memoria principal en la fase de búsqueda del resto de instrucciones es:

 instrucciones   acceso  8  accesos 


N B (Otras) = 0.6·10 8   * 1  = 0.6·10  
 s   instruccion   s 

Ya es posible calcular el número de accesos total por segundo que se realizarán a la memoria principal en
la fase de búsqueda de todas las instrucciones:

 accesos 
N B = N B ( LOAD − STORE) + N B (Otras) = 0.8·10 8 + 0.6·10 8 = 1.4·10 8  
 s 

Fase o ciclo de ejecución


Ahora hay que considerar únicamente aquellas instrucciones que utilizan operandos que se encuentran en
la memoria principal, es el caso de LOAD Acum ←M[dir]. De la tabla se sabe que el porcentaje de
utilización de estás instrucciones es del 20 %.

Además hay que considerar aquellas instrucciones que almacenan el resultado en la memoria principal,
este es el caso de STORE M[dir]← Acum. De la tabla se sabe que el porcentaje de utilización de estás
instrucciones es del 20 %.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 17


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

En ambos casos sólo hay que hacer un acceso a memoria, bien para leer o bien para escribir.
Luego si el computador ejecuta 108 instrucciones por segundo se realizarán debido a la fase de ejecución
de cada instrucción NE accesos por segundo:
 instrucciones   accesos  8  accesos 
N E = (0.2 ⋅ 108 + 0.2 ⋅ 108 ) ·  * 1  = 0.4·10  
 s   instruccion   s 

Numero de accesos a memoria por segundo:


El número total de accesos a memoria por segundo vendrá dado por la suma de NB y de NE

 accesos 
N = N B + N E = 1.4·10 8 + 0.4·10 8 = 1.8·10 8 = 180·10 6  
 s 

SOLUCIÓN PROBLEMA 1.16


DATOS
• Se emplean 4 ciclos de reloj para las instrucciones de cálculo.
• Se emplean 8 ciclos para el resto de instrucciones.
• La frecuencia del reloj es f=8·106 ciclos/s
• Programa con 1000 instrucciones de las cuales el 20 % son de cálculo

I) En primer lugar se va a determinar el tiempo tIC que se emplea en ejecutar una instrucción de cálculo y
el tiempo que se emplea en ejecutar un instrucción de otro tipo tIR.

4 (ciclos / instr ) 4
t IC = = ( s / instr ) = 0.5·10 −6 ( s / instr ) = 0.5 ( µs / instr )
f (ciclos / s ) 8·10 6
8 (ciclos / instr ) 8
t IR = = 6
( s / instr ) = 10 −6 ( s / instr ) = 1 ( µs / instr )
f (ciclos / s ) 8·10

A continuación, en el programa de NI=1000 instrucciones se van a determinar el número de instrucciones


de cálculo NIC y el número de instrucciones que hay de otro tipo NIR:

N IC = 0.2·N I = 0.2·1000 = 200 (instr )


N IR = N I − N IC = 1000 − 200 = 800 (instr )

Luego el tiempo total que tarda en ejecutarse este programa será

T = N IC ·t IC + N IR ·t IR = 200·0.5 + 800·1 = 100 + 800 = 900 µs

II) Para calcular cuantos millones de instrucciones por segundo se pueden ejecutar como máximo hay que
suponer el caso en que todas las instrucciones de un programa son del tipo que requiere menos ciclos de
reloj para ejecutarse, en este caso las de cálculo. En ese caso, el número máximo de instrucciones se
puede calcular como:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 18


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

f (ciclos / s ) 8·10 6
n I max = = = 2·10 6 instr / s = 2 MIPS
4 (ciclos / instr ) 4

SOLUCIÓN PROBLEMA 1.17


DATOS
• Bus con arbitraje centralizado por encadenamiento (daisy-chain) y con único nivel de prioridad.
• Hay conectados al bus 4 dispositivos (d1, d2, d3, d4).
• El dispositivo d1 está conectado más cerca del árbitro, seguido de d2, de d3 y luego d4.
• La fracción de la capacidad utilizada por los dispositivos d1,d2,d3 y d4 es 0.2, 0.35, 0.1 y 0.25
• ¿Capacidad sobrante del dispositivo d3?

En Bus con arbitraje centralizado por encadenamiento (daisy-chain) y con único nivel de prioridad, el
dispositivo de mayor prioridad es el conectado más cerca del árbitro, en este caso d1. El siguiente
dispositivo más prioritario sería d2, luego d3 y finalmente d4.

La capacidad sobrante de un dispositivo se define como 1 menos la suma de las fracciones de las
capacidades utilizadas por todos los dispositivos que tienen una prioridad superior. Se pide la capacidad
sobrante del dispositivo d3, que se va a denotar con Cs3, y se sabe que los dispositivos d1 y d2 son más
prioritarios que éste, luego aplicando la definición se obtiene:

Cs 3 = 1 − (0.2 + 0.35) = 0.45

SOLUCIÓN PROBLEMA 1.18


DATOS
• Memoria de 10 módulos independientes conectados a un mismo bus de memoria.
• Cada módulo ocupa el bus durante el 12.5% del ciclo de escritura.
• El 87.5 % del tiempo de ciclo restante el módulo almacena el dato internamente.
• Las operaciones de estos módulos pueden solaparse.

Supongamos que la memoria del computador consta de un único módulo, la velocidad máxima de
almacenamiento sería:
1
v max = ( pal / seg )
tc
De acuerdo con el enunciado del problema el tiempo de ciclo tc, se puede considerar como la suma de dos
componentes:
- tiempo de utilización del bus tbus=0.125·tc
- tiempo de almacenamiento interno del dato talm=0.875·tc

tbus talm

tc

Jose Manuel Díaz Tutor de ETC2 (Coslada) 19


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

Utilizando los 20 módulos disponibles, y solapando al máximo los ciclos de escritura para intentar que en
todo momento uno de los módulos esté accediendo al bus, se llega a la situación representada por la
siguiente figura

Módulos tc
M1
1
M2
2
M3
3
M4
4
M5
5
M6
6
M7
7
M8
8
M9

M20

0 tc 2·tc tiempo

Se observa que en un periodo de tiempo igual a tc se escriben ocho palabras. Luego la velocidad máxima
del sistema es:

8
vT max = (palabras/seg)
tc

Que se puede expresar equivalentemente como:

vT max = 8·v max

Luego la velocidad de almacenamiento se ve incrementada 8 veces.


Nota: A este mismo resultado se hubiera podido llegar sin realizar la representación teniendo en cuenta el
hecho de que para las hipótesis del enunciado se tiene que
tc tc
= =8
tbus 0.125·t c
Es decir en un ciclo de escritura es posible comenzar ocho operaciones de escritura.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 20


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.19


DATOS
• Instrucciones y datos tienen una longitud de 12 bits.
• Formato de instrucción
12 bits

Cod. Operación Dirección

4 bits 8 bits

• Códigos de operación:
0111: Ac←[M]
1101: M←[Ac]
1110: Ac←[Ac]-[M]

Para la resolución de este problema se va a utilizar la siguiente nomenclatura:


M indica una dirección de memoria.
[M] hace referencia al contenido de la dirección de memoria M
Ac indica la dirección del acumulador.
[Ac] hace referencia al contenido de la dirección de memoria M

La equivalencia en hexadecimal de los códigos de operación es:


716 Ac←[M]
D16 M←[Ac]

E16 Ac←[Ac]-[M]

De acuerdo con el enunciado del problema la operación que se desea realizar es restar al contenido de la
dirección de memoria 3B16 al contenido de la dirección de memoria 3A16 y almacenar el resultado en la
dirección de memoria 3A16. Es decir, de forma esquemática dicha operación se puede representar de la
siguiente forma:
3A16←[3B16]-[3A16]

Esta operación se puede realizar mediante la siguiente secuencia de instrucciones:


1) 73B16 que indica la operación Ac←[3B16]
2) E3A16 que indica la operación Ac←[Ac] - [3A16]
3) D3A16 que indica la operación 3A16←[Ac]

Luego la respuesta correcta es la A.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 21


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.20


Afirmación I:
• En una transferencia de datos en un bus que utiliza la técnica de multiplexación en el tiempo de
direcciones y datos se utiliza el mismo conjunto de líneas para transmitir direcciones y datos. En
conclusión la afirmación es FALSA.
Afirmación II:
• Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma línea de un bus
todas las puertas menos una, aquella cuya entrada se desea volcar al bus, se deben encontrar en estado
de alta impedancia. En conclusión la afirmación es FALSA.

SOLUCIÓN PROBLEMA 1.21


DATOS
• Bus con arbitraje distribuido

En un esquema distribuido cada módulo contiene la lógica de control suficiente para poder acceder al bus
y todos ellos actúan de forma cooperativa para compartir el recurso.

Solicitud del bus

Ocupada

1
Línea de arbitraje

Ent Sal Ent Sal Ent Sal Ent Sal Ent

a b c d e

Figura: Bus con arbitraje distribuido

Afirmación I:
• Es FALSA, ya que en este método de arbitraje el dispositivo más cercano a la línea de arbitraje es
aquel que tiene la máxima prioridad de uso del bus.
Afirmación II:
• Es FALSA, ya que un dispositivo aunque tenga mayor prioridad no puede hacer uso del bus hasta que
el dispositivo que lo está utilizando deja de hacerlo.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 22


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.22


DATOS
• CPU con
Bus de direcciones de 16 bits.
Bus de datos de 8 bits
Un registro de 8 bits conectado al bus de datos y la unidad de control

De acuerdo con los datos aportados en el enunciado en este computador las direcciones son de 16 bits y
los datos o instrucciones de 8 bits. Se van analizar cada uno de los registros propuestos en las soluciones:
A) El PC contador de programa contiene la dirección de la próxima instrucción que se va a ejecutar luego
su tamaño debe ser de 16 bits.
B) El IR registro de instrucción contiene la instrucción actual que se va a ejecutar, luego su tamaño es de
8 bits.
C) El MAR contiene la dirección de una posición de memoria principal, luego su tamaño es de 16 bits.
Por lo tanto de todos los registros propuestos el único que cumple la restricción de ser de 8 bits es el IR.
Luego la respuesta correcta es la B.

SOLUCIÓN PROBLEMA 1.23


DATOS
• Memoria de N módulos independientes conectados a un bus de memoria común
• Cada módulo ocupa el bus durante 20 nseg del ciclo de escritura.
• Durante esos 20 nseg y los 80 ns siguientes, el módulo de memoria direccionado ejecuta 1 ciclo
aceptando y almacenando el dato.
• Las operaciones de estos módulos pueden solaparse, pero solo puede haber una petición por
instante de tiempo.
[Este problema es una variante del problema 1.13]

La situación planteada por el problema se ilustra en la Figura 1.23.1, donde los Mi i=1,...,N representan
los N módulos de memoria propuestos.

M1 M2 MN

BUS
Figura 1.13.1: Esquema de los módulos de memoria.

El ciclo de escritura en los módulos de memoria se muestra gráficamente en la Figura 1.23.2. En la


primera parte del ciclo el módulo de memoria utiliza durante tbus=20ns el bus en exclusiva, pero en la
segunda parte se realiza el almacenamiento del dato talm=80 ns. En esta segunda parte del ciclo de
escritura cualquier otro módulo puede hacer uso del bus.

tbus=20 ns talm=80 ns

tc=100 ns
Figura 1.23.2: Ciclo de escritura de los módulos de memoria.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 23


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

El tiempo de ciclo de escritura correspondiente, tc, es la suma del tiempo de ocupación del bus más el
tiempo de almacenamiento:

tc= tbus+talm= 20+80=100 ns

Afirmación I:

Si el número de módulos es N=3 se tiene el siguiente esquema:


Módulos
tc =100 ns

1
M1
2
M2
3
M3

20 40 60 80 100 120 140 160 180 200 220

Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se escriben tres palabras. Luego la velocidad
máxima del sistema es:

3
vT max = = 0.03 (palabras/nseg)
100
Luego la afirmación es VERDADERA.

Afirmación II:

Supóngase que el número de módulos es N=5 se tiene el siguiente esquema:


Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
5
M5

20 40 60 80 100 120 140 160 180 200 220 Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se escriben cinco palabras. Luego la velocidad
máxima del sistema es:

5
vT max = = 0.05 (palabras/nseg)
100
Si N=6 se tiene el siguiente esquema:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 24


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
5
M5

M6

20 40 60 80 100 120 140 160 180 200 220


Tiempo (ns)

Se observa que en un periodo de tiempo igual a tc=100 ns se siguen escribiendo cinco palabras.

En conclusión, si N>4 se la velocidad máxima de transferencia es de 0.05 (palabras/nseg) y no de 0.06


(palabras/nseg) como se indica en la afirmación. Luego la afirmación es FALSA.

SOLUCIÓN PROBLEMA 1.24


DATOS
• Bus con arbitraje centralizado

La afirmación de la respuesta A es falsa, porque en un bus con arbitraje centralizado la decisión de qué
módulo toma el control del bus corre a cargo del dispositivo denominado controlador del bus o árbitro.

La afirmación de la respuesta B es falsa ya que el método de arbitraje no condiciona el tipo de


temporización.

La afirmación de la respuesta C es falsa, ya que ese requisito sólo se da en los buses con arbitraje
distribuido.

En conclusión la respuesta correcta es la D.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 25


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.25


DATOS
• Formato de instrucción:
16 bits

Cod. Operación Dirección

4 bits 12 bits

• El formato de almacenamiento de los números enteros es el siguiente:


Bit más significativo: Signo (0 positivo, 1 negativo).
15 bits restantes: Magnitud
• Registros de la CPU: Contador del programa (PC), registro de instrucción (IR) y acumulador
(AC).
• Lista parcial de códigos de operación:
00012 (Ac ←[M])
00102 (M ←[Ac])
10002 (Ac ←[Ac]-[M])
10012 (Ac ←[Ac]+[M])
• Contenido de ciertas posiciones de memoria: [A0F16]=X , [3A016]=Y
• Averiguar el contenido de la posición de memoria 3A016 tras ejecutar las instrucciones 13A016
9A0F16 93A016 2A0F16
[Este problema es similar al Problema 1.14]

Para resolver este problema se va ir analizando cada una de las instrucciones que se ejecutan:

1) La instrucción 13A016 tiene por código de operación 116=00012, y como dirección 3A016 se ejecuta la
siguiente instrucción:

Ac ← [3A016]

Luego, se estaría cargando en el acumulador el contenido de la dirección de memoria 3A016, es decir, Y.

2) La instrucción 9A0F16 tiene por código de operación 916=10012, y como dirección A0F16 se ejecuta la
siguiente instrucción:

Ac ←[Ac]+ [A0F16]

Luego, se estaría cargando en el acumulador el resultado que se obtiene al sumar el contenido del
acumulador [Ac]=Y con [A0F16]=X. Que da como resultado Y+X

3) La instrucción 93A016 tiene por código de operación 916=10012, y como dirección 3A016 se ejecuta la
siguiente instrucción:

Ac ←[Ac]+ [3A016]

Luego, se estaría cargando en el acumulador el resultado que se obtiene al sumar el contenido del
acumulador [Ac]=Y+X con [3A016]=Y. Que da como resultado 2Y+X

Jose Manuel Díaz Tutor de ETC2 (Coslada) 26


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

4) La instrucción 2A0F16 tiene por código de operación 216=00102, y como dirección A0F16 se ejecuta la
siguiente instrucción:

A0F16 ←[Ac]

Luego, se almacena en la dirección de memoria A0F16 el contenido del acumulador [Ac]=2Y+X.


Este programa por tanto no modifica el contenido inicial de la posición de memoria 3A016. Luego la
respuesta al problema es que el contenido de 3A016 tras ejecutar este programa sigue siendo el mismo, es
decir,
[3A016] =Y

SOLUCIÓN PROBLEMA 1.26


DATOS
• Memoria de 15 módulos independientes conectados a un mismo bus de memoria.
• Cada módulo ocupa el bus durante el 20% del ciclo de escritura.
• El 80 % del tiempo de ciclo restante el módulo almacena el dato internamente.
• Las operaciones de estos módulos pueden solaparse.

Este problema es similar al problema 1.18. La solución con los datos de este problema es que la
velocidad máxima de almacenamiento de la memoria de este ordenador se ve incrementada 5 veces en
comparación a la velocidad de un único módulo.

SOLUCIÓN PROBLEMA 1.27


DATOS
• Según la figura del enunciado se tiene un esquema de bus con arbitraje centralizado mediante
encadenamiento.
• Cuando está usando el bus CONT3 activan su línea de petición de uso del bus CONT4, CONT2 y
CONT1, por ese orden.

En un bus con arbitraje centralizado mediante encadenamiento el dispositivo con más prioridad para usar
el bus es aquel dispositivo más próximo al árbitro del bus. De acuerdo con la figura del enunciado el
dispositivo más cercano al árbitro es CONT1, luego éste es el que tiene mayor prioridad y en
consecuencia el que obtendrá el uso del bus cuando finalice de utilizarlo CONT3, pese haber sido el
último en activar su línea de petición.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 27


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

SOLUCIÓN PROBLEMA 1.28


DATOS
• Ordenador 1 con 20 módulos independientes conectados a un mismo bus de memoria.
• Ordenador 2 con 15 módulos independientes conectados a un mismo bus de memoria.
• Cada módulo ocupa el bus durante el 20% del ciclo de escritura.
• El 80 % del tiempo de ciclo restante el módulo almacena el dato internamente.
• Las operaciones de estos módulos pueden solaparse.

Si se sustituyen datos y se aplica cualquiera de los procedimientos explicados en el problema 1.18 se


obtiene que tanto para el ordenador 1 con 20 módulos como para el ordenador 2 de 15 módulos la
velocidad máxima de almacenamiento de la memoria de este ordenador se ve incrementada 5 veces.
Luego la respuesta correcta es la opción C.

Este resultado es de esperar ya la velocidad máxima se va incrementando con el número N de módulos


hasta alcanzar un cierto valor límite a partir del cual se hace independiente del número de módulos. Para
los datos de este problema se puede comprobar fácilmente que dicho valor límite es N=5.

SOLUCIÓN PROBLEMA 1.29


DATOS
• Instrucciones y datos tienen una longitud de 12 bits.
• Formato de instrucción
12 bits

Cod. Operación Dirección

4 bits 8 bits

• Códigos de operación:
0111: Ac←[M]
1101: M←[Ac]
1100: Ac←[Ac]+[M]

Nota: Este problema es similar al problema 1.19


Para la resolución de este problema se va a utilizar la siguiente nomenclatura:
M indica una dirección de memoria.
[M] hace referencia al contenido de la dirección de memoria M
Ac indica la dirección del acumulador.
[Ac] hace referencia al contenido de la dirección de memoria M

La equivalencia en hexadecimal de los códigos de operación es:


716 Ac←[M]
D16 M←[Ac]

C16 Ac←[Ac]+[M]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 28


TEMA 1: Estructuras de interconexión de un computador. Solución de los problemas

De acuerdo con el enunciado del problema la operación que se desea realizar es sumar al contenido de la
dirección de memoria 3B16 al contenido de la dirección de memoria 3C16 y almacenar el resultado en la
dirección de memoria 3C16. Es decir, de forma esquemática dicha operación se puede representar de la
siguiente forma:
3C16←[3B16]+[3C16]

Esta operación se puede realizar mediante la siguiente secuencia de instrucciones:


1) 73B16 que indica la operación Ac←[3B16]
2) C3C16 que indica la operación Ac←[Ac] + [3C16]
3) D3C16 que indica la operación 3C16←[Ac]

O también con esta otra secuencia:


1) 73C16 que indica la operación Ac←[3C16]
2) C3B16 que indica la operación Ac←[Ac] + [3B16]
3) D3C16 que indica la operación 3C16←[Ac]

Luego la respuesta correcta es la A.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 29


Capítulo 1

AUTOEVALUACIÓN

AUTOEVALUACIÓN 1.1
Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato único
compuesto por un campo de 5 bits, para el código de operación, y otro campo de 11 bits para almacenar los operandos.
Todos los códigos de operación comienzan por un 0 y, por lo tanto van del 00000 al 01111. Indicar si las siguientes
afirmaciones son verdaderas o falsas:
a) Si en una dirección de memoria se encuentra almacenado el valor 0011010110001010, necesariamente es una
instrucción máquina.
b) Si en una dirección de memoria se encuentra almacenado el valor 1011010110001010, necesariamente es un
dato.

Solución
La afirmación dada en a) es falsa puede haber un dato que empiece por cero y la afirmación mostrada en b) es
verdadera.(no puede haber una instrucción que empiece por 1)

AUTOEVALUACIÓN 1.2
La memoria de un computador consta de 4 módulos conectados a un bus de memoria común. Cuando se realiza una
petición de escritura, el bus está ocupado por las señales de datos, dirección y control durante 50 ns. En esos mismos 50
ns y en los 200 ns siguientes, el módulo de memoria direccionado acepta y almacena el dato. Las operaciones de los
módulos pueden solaparse, no pudiendo realizarse peticiones de forma simultánea. Calcular la velocidad máxima de
escritura en función del tiempo de ciclo de escritura.

Solución
La velocidad máxima de escritura es: 16000000 palabras/s.

Cada 250 ns 4 escrituras como máximo; 1seg/ 250 x 10 -9


4/250 X 109

AUTOEVALUACIÓN 1.3
Una CPU con bus de direcciones de 16 bits y un bus de datos de 8 bits tiene un registro de 8 bits conectado al bus de
datos y a la unidad de control. Este registro puede ser uno de los siguientes:

a) Contador de programa (PC).


b) Registro de instrucciones (RI).
c) Registro de direcciones de memoria (MAR).
d) Ninguna de las anteriores.

Solución

La respuesta correcta es la b).

AUTOEVALUACIÓN 1.4
Considerar una CPU en la que tanto las instrucciones como los datos tengan una longitud de 16 bits. El formato de las
instrucciones es el siguiente: los 4 bits más significativos de la instrucción representan el código de operación y los otros
12 bits restantes la dirección de memoria con la que se va a operar. A continuación se muestra una lista parcial de los
códigos de operación:
0011: Cargar el registro acumulador desde memoria.
0101: Almacenar en memoria el contenido del registro acumulador.
0110: Sumar el contenido del registro acumulador y el de una dirección de memoria dada,
almacenando el resultado en el registro acumulador.
Indicar cuál de los siguientes fragmentos de programa realiza la operación de sumar el contenido de la dirección de
memoria 3A5 con el contenido de la dirección de memoria 3B9 y almacena el resultado en la dirección de memoria
16 16

3A5 .
16

a) 33A5 , 63B9 , 53A5


16 16 16

b) 33B9 , 63A5 , 53A5


16 16 16

c) Los dos fragmentos de programa anteriores son correctos.


d) Ninguno de los anteriores.

Solución

La respuesta correcta es la c), “Los dos fragmentos de programa anteriores son correctos”.
2005 1ª Semana

4.- Un bus con arbitraje centralizado por encadenamiento (daisy-chaining) y con un único nivel de prioridad tiene
conectados 4 dispositivos (d1, d2, d3, d4). El dispositivo d1 es el que se encuentra conectado más próximo al
árbitro, a continuación está conectado d2, seguidamente d3 y finalmente d4. La fracción de la capacidad utilizada
por los dispositivos d1, d2, d3 y d4 es 0.2, 0.35, 0.1 y 0.25 respectivamente. Indique cuál es la capacidad sobrante
del dispositivo d3. (Nota: Se define la capacidad sobrante de un dispositivo como 1 menos la suma de las
fracciones de las capacidades utilizadas por todos los dispositivos que tienen una prioridad superior).

A) 0.75 B) 0.35 C) 0.45 D) Ninguna de las anteriores.

Cs3 = 1 − 0.2 − 0.35 = 0.45 ⇒ C

2005_Septiembre_reserva

Cs4 = 1 − 0 = 1 ⇒ D

El nivel de mayor prioridad es el 2, por lo tanto el dispositivo con mayor prioridad será el primero de los
conectados en dicho nivel, esto es, el d4. Como nos pide la fracción de la capacidad sobrante de dicho
dispositivo, dicha capacidad será 1-(la de los dispositivos con mayor prioridad (ninguno)), por lo tanto 1.
 En el sistema de la figura, BR representa la línea de petición de bus y BG la de autorización. En un momento dado, mientras Cont3 está
haciendo uso del bus, Cont4 activa su salida de petición. Posteriormente (sin que Cont3 haya concluido aún su uso del bus) Cont2 también
solicita el bus. ¿Cuál será el próximo dispositivo que adquiera el control del bus?.

BR
árbitro

terminador
BG
Cont1 Cont2 Cont3 Cont4

✔ Instante t1. Cont4 hace su solicitud de bus (Bus Request). Aún no puede serle concedido (Bus Granted) porque lo está usando Cont3.
✔ Instante t2. Cont2 hace su solicitud de bus. Aún no puede serle concedido porque lo está usando Cont3. Pero Cont2 inhabilita su salida BG
para evitar que cuando el bus sea liberado, lo obtenga algún dispositivo de menor prioridad que Cont2 (por ejemplo, Cont4).

Conclusión: Aunque Cont4 hace su petición antes que Cont2, es atendido después de Cont2, por tener menos prioridad. Cuando termina Cont3,
sólo se tiene en cuenta las prioridades de los solicitantes, no el orden en que llegaron.

 La memoria de un ordenador consta de diez módulos independientes conectados a un bus de memoria común. En una operación de
escritura cada uno de estos módulos ocupa el bus del sistema únicamente al comienzo de la operación y durante un 20% del tiempo total del
ciclo de escritura. El 80% del tiempo de ciclo de escritura restante el módulo lo emplea para almacenar el dato internamente. Si las
operaciones de escritura de dichos módulos de memoria pueden solaparse, ¿en cuánto se ve incrementada la velocidad máxima de
almacenamiento de la memoria del ordenador en relación a la velocidad de un único modulo?.

Para facilitar los cálculos con porcentajes, elegiremos como unidad arbitraria de tiempo la centésima parte del tiempo que emplea cada
módulo individual en una operación de escritura.

Con un único módulo:

20 40 60 80 100

Se realiza un acceso al módulo de memoria cada 100 unidades de tiempo. Por tanto, la velocidad es:
Nº de accesos 1 acceso -2 accesos
V    10
1 módulo t 100 unidades de tiempo por unidad de tiempo

Con diez módulos:


Cuando este primer
módulo suelta el bus,
no puede realizar otro
acceso. Debe esperar a
que lo suelte el último
módulo
Módulo 1
Módulo 2
Módulo 3
Módulo 4
Módulo 5
Módulo 6
Módulo 7
Módulo 8
Módulo 9
Módulo 10

20 40 60 80 100

Como puede verse en la parte central de la figura, se inician (y completan) 10 accesos a memoria cada 200 unidades de tiempo. Por tanto, la
velocidad de acceso es:

Nº de accesos 10 accesos accesos


V
10 módulos
   5  10 - 2
t 200 unidades de tiempo por unidad de tiempo

Conclusión, la velocidad con 10 módulos es 5 veces mayor que la velocidad con 1 módulo. Esto es manteniendo constante las velocidades de
los módulos individuales.

Nota:
Obsérvese que si lo que mantenemos constante es el número de módulos (por ejemplo, siempre diez) y variamos la velocidad total de cada
módulo individual entre 20 y 200 unidades de tiempo, la velocidad global del sistema es la misma. Esto es debido a que cuando termine de
usar el bus el módulo 1, no puede realizar otro acceso, pues lo están usando otros módulos.

Arquitectura de Computadoras 1 Ejercicios de Buses


 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
nanosegundos. La velocidad de transferencia de cada disco es B. La longitud de palabra es 32 bits. Cada transmisión sobre el bus necesita
500 nanosegundos para enviar el dato y las diferentes órdenes del protocolo.
500 nseg
Bus

400 nseg t = 32/B seg

UCP
memoria HD1 HD2 HD3 HD4 HD5

Sean los siguientes cuatro supuestos:


• Supuesto 1: B = 106 bits por segundo.
• Supuesto 2: B = 4·106 bits por segundo.
• Supuesto 3: B = 107 bits por segundo.
• Supuesto 4: B = 8·107 bits por segundo.

a) ¿En cuál de los supuestos estaría más justificado el uso de un bus con temporización síncrona?.

b) Supongamos que hemos de seguir los siguientes criterios (por orden de importancia) para valorar en un diseño cuán próximo está de ser
óptimo:
✔ Criterio 1: Cuanta menos velocidad de los componentes individuales sea infrautilizada.
✔ Criterio 2: Cuanto mayor sea la velocidad global.
¿Cuál de los cuatro supuestos estaría más próximo al diseño óptimo?.

c) Supongamos que hemos de seguir los siguientes criterios (por orden de importancia) para valorar en un diseño cuán próximo está de ser
óptimo:
✔ Criterio 1: Cuanto mayor sea la velocidad global.
✔ Criterio 2: Cuanto menos tiempo estén inactivos los componentes individuales.
¿Cuál de los cuatro supuestos estaría más próximo al diseño óptimo?.

Antes de responder a las tres preguntas, tengamos presente lo siguiente:

✗ Para calcular el tiempo que tarda en escribirse (o leerse) una palabra en cada disco:
Nº de bits 32 de bits 32 de bits 32
B   t   segundos
t t bits B
B
por segundo
✗ En el diseño óptimo se tendría el siguiente cronograma:

900ns
(t)C= 32/B seg= 4·900 · 10-9 seg es el tiempo crítico.
Disco 1

Disco 2

Disco 3

Disco 4

Disco 5

900 1800 2700 3600 4500


32 bits bits
=4 · 400500· 10−9 seg ⇒ B=9 · 106
B seg

✗ Este ejercicio está muy relacionado con el ejercicio 1.3 del libro de problemas (2ª edición, página 8). La gráfica de la figura 1.15 es muy
ilustrativa:
Velocidad global

Vglobal =( tmemoria y bus + tdisco)-1  ( tmemoria y bus + (Vdisco)-1 )-1

(t)C

 Para B>9·106 (por ejemplo, los supuestos 3) y 4)), el tiempo de latencia de cada disco es menor que el tiempo crítico. Pero se
infrautilizan recursos materiales. Cuando podría volver a intervenir el primero, aún no ha soltado el bus el quinto. La velocidad global
del sistema no mejora cuanto menor sea el tiempo de latencia de los discos (cuanto mayor sea B). Es el tramo horizontal de la
gráfica.

 Para B<9·106 (por ejemplo, los supuestos 1) y 2)), el tiempo de latencia de cada disco es mayor que el tiempo crítico. La velocidad
global del sistema empeora cuanto mayor sea el tiempo de latencia de los discos (cuanto menor sea B). Es el tramo descendente
de la gráfica.

Arquitectura de Computadoras 2 Ejercicios de Buses


RESPUESTAS

a) La temporización síncrona entre memoria y discos duros está más justificada cuanto más similares sean sus respectivas velocidades,
32 bits bits
esto es, cuando: ~400 · 10−9 seg ⇒ B~8 · 107
B seg
Conclusión: la temporización síncrona estaría más justificada en el supuesto 4.

b) Con el primer conjunto de criterios:

El valor de B más cercano al óptimo es el mayor de todos los menores o iguales que 9·106; de los cuatro supuestos es el segundo: 4·106 bits
por segundo.

c) Con el segundo conjunto de criterios:

El valor de B más cercano al óptimo es el menor de todos los mayores o iguales que 9·106; de los cuatro supuestos es el tercero: 107 bits por
segundo.

Arquitectura de Computadoras 3 Ejercicios de Buses


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II
Tutoría del Centro Asociado de Plasencia

1.- Motivación.

✎ En general, es válido el principio de que todo lo que funciona en paralelo es más rápido que lo que funciona en serie. Si en
lugar de tener un módulo de memoria, tenemos varios (cada uno con su cabeza escritora-lectora):

entonces podemos escribir (o leer) en todos ellos simultáneamente.

Pero todo esto es lo ideal. Bajemos los pies al suelo. Los datos escritos (o leídos) llegan a (o vienen desde) los módulos de
memoria a través del bus de datos. Lo usual es que dicho bus sea único. Por ello, ¡las operaciones de escritura o lectura no pueden
ser completamente simultáneas!. Solamente puede comenzar la operación de escritura (o lectura) en un módulo cuando los datos que
iban al (o desde el) anterior módulo ya han terminado de pasar por el bus.

Pulse sobre esta imagen para ver la animación

Tutoría telemática. Tarea 01 1 José Garzía


2.- Ejemplo.

✎ La memoria de un ordenador consta de 10 módulos independientes conectados a un bus de memoria común. En una
operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema al comienzo de la operación y durante un
20% del tiempo total del ciclo de escritura. El 80% del tiempo de ciclo de escritura restante el módulo lo emplea para almacenar el
dato internamente. Si las operaciones de escritura de dichos módulos de memoria pueden solaparse, ¿en cuánto se ve incrementada la
velocidad máxima de almacenamiento de la memoria del ordenador en relación a la velocidad de un único modulo?.

Solución:

Con un único módulo:

20 40 60 80 100

Se realiza un acceso al módulo de memoria cada 100 unidades de tiempo. Por tanto, la velocidad es
Nº de accesos 1 acceso accesos
V = = = 10- 2
1 módulo ∆t 100 unidades de tiempo por unidad de tiempo

Con diez módulos:

Cuando suelta el bus


este primer módulo, no
puede realizar otro
acceso. Debe esperar a
que lo suelte el último
módulo
Módulo 1
Módulo 2
Módulo 3
Módulo 4
Módulo 5
Módulo 6
Módulo 7
Módulo 8
Módulo 9
Módulo 10

20 40 60 80 100

Como puede verse en la parte central de la figura, se inician (y completan) 10 accesos a memoria cada 200 unidades de tiempo. Por
tanto, la velocidad de acceso es:

Nº de accesos 10 accesos -2 accesos


V = = = 5 ⋅ 10
10 módulos ∆t 200 unidades de tiempo por unidad de tiempo

Conclusión, la velocidad con 10 módulos es 5 veces mayor que la velocidad con 1 módulo. Esto es manteniendo constante las
velocidades de los módulos individuales.

Nota:
Obsérvese que si lo que mantenemos constante es el número de módulos (por ejemplo, siempre diez) y variamos las velocidades de
los módulos individuales entre 20 y 100 unidades de tiempo, la velocidad global del sistema es la misma. Esto es debido a que cuando
termine de usar el bus el módulo 1, no puede realizar otro acceso, pues lo están usando otros módulos.

2
INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II
Tutoría del Centro Asociado de Plasencia

3.- Ejercicio.

✎ La memoria de un ordenador consta de 9 módulos independientes conectados a un bus de memoria común. En una operación
de escritura cada uno de estos módulos únicamente ocupa el bus del sistema al comienzo de la operación y durante un 25% del
tiempo total del ciclo de escritura. El 75% del tiempo de ciclo de escritura restante el módulo lo emplea para almacenar el dato
internamente. Si las operaciones de escritura de dichos módulos de memoria pueden solaparse, ¿en cuánto se ve incrementada la
velocidad máxima de almacenamiento de la memoria del ordenador en relación a la velocidad de un único modulo?.

Tutoría telemática. Tarea 01 3 José Garzía


ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 2: Unidad de Memoria


SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2009-2010
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

PROBLEMAS
TEMA 2: Unidad de memoria

Problemas propuestos en examen


2.1 Una memoria 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
dirección 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 tamaño de partición de 64 (26) palabras. Suponer que se hace una referencia a la dirección de
memoria principal, expresada en binario, 000000001100100110000.
a) Si la memoria caché utiliza correspondencia directa, ¿En qué partición de la memoria caché sería
posible encontrar esa dirección de memoria principal?. ¿Qué etiqueta habría que buscar en esa
partición para saber si esa dirección se encuentra en la memoria caché?
b) Si la memoria caché utiliza correspondencia totalmente asociativa, ¿qué etiqueta habría que buscar
para saber si esa dirección 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 tamaño de partición de 8 (23) palabras. Suponiendo que inicialmente la memoria caché está vacía,
calcular cuántos fallos se producirían 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 jerárquico 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 leída 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 tamaño de partición de 8 (23) palabras.
Suponiendo que inicialmente la memoria caché está vacía, ¿cuántos fallos se producirían 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 máscara y del
0 1 0 1 1 1 0 0 ARGUMENTO
contenido de la memoria, ¿cuál sería el valor del
1 0 1 0 1 1 0 1 MÁSCARA
registro de marca?
1 0 0 1 1 1 1 1 ?
0 1 0 1 1 0 1 0 ?
0 1 0 1 0 0 1 0 ? MARCA
0 1 1 0 1 1 1 0 ?
0 0 0 1 1 1 1 0 ?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 tamaño de partición de 16 palabras. Suponer que
inicialmente la memoria caché está vacía 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 producirían dos fallos en la memoria caché y sería necesario reemplazar dos de los bloques
existentes en la caché.
II. Si se leyera la dirección de memoria principal 000001110001 se produciría un acierto en la memoria
caché y sería necesario reemplazar un bloque existente en la caché.

2.8 El siguiente diagrama representa una memoria asociativa y su contenido.


A la vista de los valores del registro de máscara y del contenido
? ? ? ? ? ? ? ? ARGUMENTO
de la memoria, ¿cuántos de los argumentos propuestos a
1 0 0 1 0 1 0 0 MÁSCARA
continuación producirían ese registro de marca?
1 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 Argumento 1
1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Argumento 2
0 0 0 1 0 0 0 1 0 MARCA 1 0 0 1 1 0 0 0 Argumento 3
1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 0 Argumento 4
1 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 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 tamaño de partición de 16 palabras. El
algoritmo de reemplazamiento es FIFO (se reemplaza la partición más antigua). Suponer que inicialmente la
memoria caché está vacía 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 continuación se leyera la dirección de memoria principal 011001110100 se produciría 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 líneas de dirección, y una memoria caché de 1K
palabras. La memoria caché utiliza correspondencia asociativa por conjuntos, con un tamaño de partición de 16
palabras y 4 particiones por conjunto. Explicar razonadamente en qué campos se divide la dirección de memoria
principal 0000110111000011 e indique el valor de cada uno de estos campo en decimal.

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, ¿cuántos de los
0 1 0 1 1 1 0 0 ARGUMENTO registros de máscara propuestos a continuación producirían ese
? ? ? ? ? ? ? ? MÁSCARA registro de marca en el acceso a memoria?
0 0 1 0 1 0 0 1 Máscara 1
1 0 0 1 1 1 1 1 0 1 0 1 0 0 0 0 1 Máscara 2
0 1 0 1 1 0 1 0 1
1 0 1 0 1 0 0 1 Máscara 3
0 1 0 1 0 0 1 0 0 MARCA
0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 Máscara 4
0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 Máscara 5

2.12 ¿Cuál 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.?

2.13 Indicar si las siguientes afirmaciones son verdaderas o falsas. Para diseñar un módulo de memoria de 256
palabras de 4 bits
I. Utilizando organización 2D, para seleccionar la palabra haría falta un decodificador de 8 entradas y 28
salidas.
II. Utilizando organización 2 ½ D, para seleccionar la palabra harían falta dos decodificadores de 4
entradas y 24 salidas.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.14 En una memoria caché en la que se realizan 230 accesos con una tasa de aciertos del 75%, ¿Cúal es el
número 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 tamaño de partición de 8 palabras y cuando se produce un fallo
en la caché se reemplaza la partición más antigua. Suponiendo que inicialmente la memoria caché está vacía,
explicar razonadamente cuántos fallos se producirían 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 máscara, del registro etiqueta y del contenido de la memoria, ¿cuál sería el
valor del registro de marca?
1 0 0 1 1 0 1 0 ARGUMENTO
1 0 0 1 0 1 0 1 MASCARA

1 1 1 0 1 1 1 1 1 ?
1 1 1 0 1 1 0 1 0 ?
ETIQUETA 1 1 0 0 1 0 0 0 0 ? MARCA
0 1 0 1 0 0 1 1 0 ?
0 1 1 0 1 1 0 0 0 ?

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 tamaño de partición de 8 palabras. Cuando se produce un fallo
en la caché se reemplaza la partición más antigua. Suponer que inicialmente la memoria caché está vacía y que
se leen sucesivamente las direcciones de memoria principal: 00000000, 00000001, 00000011, 00100001,
00100101,00010000, 00010010 y 00000000. Si se leyera la dirección 00100111. Indicar si son verdaderas o
falsas las siguientes afirmaciones :
I. Se produciría un acierto en la memoria caché.
II. Se produciría un fallo en la memoria caché y sería necesario reemplazar uno de los bloques existentes
en la caché.

2.18 Un sistema jerárquico 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,
simultáneamente, se mueve el bloque a la memoria caché. Si la tasa de acierto de la caché es del 90%, ¿cuál será
el tiempo de acceso medio del conjunto?

2.19 Un sistema jerárquico 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
después se lee el dato desde la caché. Si la tasa de acierto de la caché es del 90%, ¿cuál es el tiempo de acceso
medio de este sistema?

2.20 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores de los
registros argumento, máscara, etiqueta y marca, y del contenido de la memoria, en una operación de escritura en
esta memoria, ¿en qué palabra se escribiría el nuevo dato?

1 0 0 1 1 0 1 0 ARGUMENTO
1 0 0 1 0 1 0 1 MASCARA

1 1 1 0 1 1 1 1 1 Palabra 0 0
1 1 1 0 1 1 0 1 0 Palabra 1 1
ETIQUETA 1 1 0 0 1 0 0 0 0 Palabra 2 1 MARCA
0 1 0 1 0 0 1 1 0 Palabra 3 0
0 1 1 0 1 1 0 0 0 Palabra 4 0

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 tamaño de partición de 16 palabras. Suponer que
inicialmente la memoria caché está vacía 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 dirección 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 líneas de direcciones A11 -A0 . Para la construcción de su
unidad de memoria se dispone de módulos de 1K palabras, utilizándose las líneas más significativas (A11 -A10 )
para la selección de cada módulo. ¿Cuál es en el mapa de memoria, la dirección base (primera dirección de cada
módulo) en notación hexadecimal de los sucesivos bloques de memoria ?

2.23 Un computador dispone del siguiente sistema jerárquico de memoria (ordenado de los niveles superiores a
los inferiores): registros de la CPU, caché primaria, caché secundaria, memoria principal y discos magnéticos.
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 tamaño 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 política 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 líneas de direcciones A11 -A0 . Para la construcción de su
unidad de memoria se dispone de módulos de 1K palabras, utilizándose las líneas menos significativas (A1 - A0 )
para la selección de cada módulo. Indique cuál de las siguientes afirmaciones es verdadera:
A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo módulo de
memoria.
B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes módulos 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 tamaño de partición de 16 palabras. Suponer que
inicialmente la memoria caché está vacía 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 dirección 000001111000 se encuentra almacenada en el bloque 3 de la caché.
II. El bloque 1 de la caché tiene asociada la etiqueta 000100.

2.27 Un computador tiene una memoria principal de 32k palabras de 16 bits/palabra. También tiene una
memoria caché asociativa por conjuntos de 4k palabras, con 4 bloques por conjunto y 64 palabras por bloque.
Considérese que la memoria caché está inicialmente vacía y que utiliza el algoritmo FIFO para el reemplazo de
los bloques. Supóngase que la CPU accede a 4352 palabras de las direcciones 0, 1, 2... 4351, en orden. Después
repite esta secuencia nueve veces más. La memoria caché es 10 veces más veloz que la memoria principal. Se
pide:
a) (0.50 puntos) Especifique el número de bits de los campos en que se descompone una dirección de
memoria principal de este sistema.
b) (0.25 puntos) Calcule cuánto tiempo se tardaría en realizar estos accesos a memoria principal si este
computador no tuviera memoria caché.
c) (2 puntos) Calcule cuántos 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 después se lee el dato de la caché, calcule cuánto tiempo tardaría la CPU
en realizar estos accesos a memoria.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 línea 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
tamaño 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)
a) (0.25 puntos) Especifique el número de bits de los campos en que se
descompone una dirección de memoria principal de este sistema.
23 (H0017) b) (0.75 puntos) Calcule cuánto tiempo se tardaría en ejecutar este
programa si este computador no tuviera memoria caché.
165 (H00A5) c) (2 puntos) Calcule cuántos fallos se producen en la caché a la hora de
ejecutar este programa. Explique claramente su razonamiento.
(Sugerencia: diferencie entre la primera ejecución del bucle exterior y
239 (H00EF)
las nueve restantes.)
d) (1 punto) Si cada vez que se produce un fallo primero se mueve el
1200 (H04B0) bloque completo de memoria principal a memoria caché y después se
lee el dato de la caché, calcule cuánto tiempo se tardaría en ejecutar
este programa en este computador.
1500 (H05DC)

2.29 En una memoria caché en la que se realizan 220 accesos se producen 217 fallos. ¿ Cual es la tasa de fallos
correspondiente?.

2.30 Se considera un procesador que dispone de 12 líneas de direcciones A11 -A0 . Para la construcción de su
unidad de memoria se dispone de módulos de 2K palabras, utilizándose la línea A1 para la selección de cada
módulo (A0 es la línea menos significativa). Indique cuál de las siguientes afirmaciones es verdadera:
A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo módulo de memoria.
B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes módulos de
memoria.
C) El módulo en que se encuentra almacenada una dirección de memoria queda determinado por el valor de
A10 .
D) Ninguna de las anteriores es verdadera.

2.31 Un computador tiene una memoria principal de 64k palabras de 16 bits/palabra. También tiene una
memoria caché totalmente asociativa de 2k palabras y 256 palabras por bloque. Considérese que la memoria
caché está inicialmente vacía y que, cuando la caché está llena, se reemplaza el bloque que se haya utilizado más
recientemente. Supóngase que la UCP ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la
dirección 0 hasta la dirección 2300. La memoria caché es 7 veces más veloz que la memoria principal. Se pide:
A) (0.25 puntos) Especifique el número de bits de los campos en que se descompone una dirección de
memoria principal de este sistema.
B) (0.25 puntos) Calcule cuánto tiempo se tardaría 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 cuántos 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 después se lee el dato de la caché, calcule cuánto tiempo tardaría 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 ?.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 tamaño de partición de 64 palabras y 4
particiones por conjunto. Suponer que inicialmente la memoria caché está llena con la ejecución de un programa
anterior Prog1 y se carga en memoria principal un nuevo programa Prog2. Prog2 efectúa la siguiente secuencia
de referencias en la ejecución de su código: 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. ¿Cuál 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, ¿cuántos de los registros de máscara
propuestos a continuación producirían ese registro de marca en el acceso a memoria?
0 1 0 1 1 1 0 0 ARGUMENTO
? ? ? ? ? ? ? ? MASCARA

0 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 máscara 1
1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 máscara 2
ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA 0 0 0 1 1 0 0 0 máscara 3
1 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 máscara 4
1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 máscara 5

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 partición 4 de la memoria caché.
II. La dirección de memoria 2A23B, expresada en hexadecimal, se corresponde con la partición 8 de la
memoria caché.

2.36 Supóngase 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 número de líneas del bus de direcciones. b)El número de lineas del bus de
direcciones comunes a todos los módulos.

2.37 ¿Cuál 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 jerárquico 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 después se lee el dato desde la caché. La política de ubicación y reemplazamiento tarda 20
µseg por término 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 jerárquico de memoria es entre 4 y 5 veces más rápido 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 dirección
6B59, expresada en hexadecimal, de la memoria principal se encuentra en la caché. Decir si las siguientes
afirmaciones son ciertas:
I. Esta dirección se corresponde con el bloque 107, expresado en decimal, de la memoria caché.
II. Del enunciado puede deducirse que la dirección 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 más cercana a la
CPU y la memoria de nivel 2 es la más cercana a la memoria principal. Indique si las siguientes afirmaciones
son verdaderas:
I. En algún momento existirá una copia de todos los bloques de la caché de nivel 2 en la caché de
nivel 1.
II. Utilizando una política de post-escritura, la memoria caché de nivel 2 tiene siempre una copia
exacta de los bloques de la memoria caché de nivel 1.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.41 Un pequeño computador dispone de 16 líneas de direcciones A15 -A0 . Su unidad de memoria está
compuesta tanto por módulos de memoria ROM como de RAM. La ROM está formada por un único módulo y
ocupa las direcciones más bajas de la memoria, comenzando en la dirección 0. La RAM, con 48 Kbytes de
capacidad, ocupa las direcciones restantes. Indique si las siguientes afirmaciones son verdaderas:
I. La función lógica de la señal de habilitación del módulo de memoria ROM es CS ROM = A15 A14 .
II. Los dos bits menos significativos de la dirección, A1 A0 , se pueden utilizar para distinguir si una
dirección 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 posición la cabeza de lectura-escritura. ¿Cuál es el tiempo medio que tarda en leer o
escribir 103 bytes?

2.43 Un sistema jerárquico 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
después se lee el dato desde la caché. Si la tasa de acierto de la caché es del 90%, ¿cuál 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 dirección 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, ¿cuál es el tamaño de la memoria caché?

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 cuál de las siguientes alternativas sería más adecuada:
A) Aumentar el número de registros de la CPU.
B) Hacer uso de una memoria caché.
C) Aumentar la capacidad de los discos magnéticos.
D) Ninguna de las anteriores.

2.47 Considere una memoria asociativa de n palabras y 4 bits/palabra. Indique cuál de los siguientes valores de
los registros de argumento (A) y máscara (K) proporcionan un 1 en todos aquellos bits del registro de marca
cuya celda de memoria contenga un número par, y un 0 en caso contrario. (Se considera que el cero es un
número par).
A) A=0010, K=0010 B) A=0011, K=0011 C) A=1000, K=0001 D) Ninguna de las anteriores

2.48 Un disco magnético con 1024 pistas, numeradas del 0 al 1023, tiene la siguiente cola de peticiones de
acceso: 850, 25, 308, 400, 632, 168, 720 y 302. Utilizando la planificación LOOK ¿En qué orden se atienden las
solicitudes de acceso si inicialmente la cabeza se halla en la pista 500?.

2.49 Un disco magnético con 256 pistas, numeradas del 0 al 255, tiene la siguiente cola de peticiones de acceso:
80, 130, 151, 31, 20, 200. Utilizando planificación LOOK, ¿En qué orden se atienden las solicitudes de acceso si
inicialmente la cabeza se halla en la pista 150 y en dirección de las pistas crecientes?.

2.50 Se tiene una memoria caché con 32 bloques con capacidad para 256 palabras cada uno. Si la función de
correspondencia es totalmente asociativa y las direcciones de memoria principal tienen 24 bits, indique
¿En qué bloque (expresado en decimal) se ubicará la palabra con dirección de memoria principal 001FFF
expresada en hexadecimal?.
A) 31 B) 11 C) Podría utilizarse cualquier bloque D) Ninguna de las anteriores

2.51 La memoria principal de un computador utiliza módulos de memoria RAM de 64 Kpalabras × 16


bits/palabra de capacidad. Decir si las siguientes afirmaciones son ciertas:
I. Se necesitan 8 módulos para proporcionar una capacidad de 256 Kpalabras × 32 bits/palabra.
II. Se necesitan 2 módulos para proporcionar una capacidad de 128 Kpalabras × 8 bits/palabra.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.52 Un computador dispone de una memoria principal de 64 K palabras y una memoria caché asociativa por
conjuntos de 4 K palabras, 4 conjuntos y 2 bloques por conjunto. Considérese que la memoria caché está
inicialmente vacía y que cuando se llena utiliza el algoritmo de reemplazamiento FIFO. El tiempo de acceso a
memoria principal es de 10τ y el tiempo de acceso a memoria caché es de τ.
Si la CPU ejecuta un bucle 4 veces, en el que accede a 4901 palabras, desde la dirección 600 a la dirección
5500:
A) Especifique el número de bits de los campos en que se descompone una dirección de memoria
principal de este sistema.
B) Calcule cuánto tiempo se tardan en realizar estos accesos a memoria principal si este computador no
tuviera memoria caché.
C) Realice una tabla con 4 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 cuatro ciclos. Expresar el valor de la etiqueta en
hexadecimal.
D) Calcule cuántos fallos se producen en la caché a la hora de realizar estos accesos a memoria
principal. Explique claramente su razonamiento.
E) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a
memoria caché y después se lee el dato de la caché, calcule cuánto tiempo tardaría la CPU en
realizar estos accesos a memoria.

2.53 Un disco formateado con entrelazado doble, tiene 16 sectores de 4 Kbytes y una velocidad de rotación de
6000 rpm. ¿Cuánto tardará en leer, en su orden, todos los sectores de una pista suponiendo que la cabeza de
lectura se encuentra en la pista correcta y sobre el punto de comienzo del sector 0?

2.54 Un computador dispone de una memoria principal de 232 palabras y 8 bits/palabra. ¿Cuántos bits se
requieren para diseñar en este computador una caché con correspondencia directa que pueda almacenar 64
Kpalabras, con 4 palabras por bloque y estrategia de escritura write back?. Nota: el total de bits son los bits del
directorio mas los de almacenaje de palabras.

2.55 El siguiente diagrama muestra el contenido de una memoria asociativa:


0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 Palabra 0 ?
1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 Palabra 1 ?
ETIQUETA 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 Palabra 2 ? MARCA
1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 Palabra 3 ?
0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 Palabra 4 ?
1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Palabra 5 ?

Indique razonadamente si las siguientes afirmaciones son verdaderas o falsas:


I. Si la máscara K=0000000000001111 y el argumento A=1111111111110000 el único bit de marca que
valdría 1 corresponde a la Palabra 2.
II. Si la máscara K=1111000000001111 y el argumento A=1111000000001111 entonces sólo hay un bit
del registro de marca que valdría 1.

2.56 Un computador con una longitud de palabra de 16 bits tiene un bus de direcciones de 24 bits (A23-A0). Se
desea diseñar su unidad de memoria para que tenga una capacidad de 2,5M palabras×16 bits/palabra. Se dispone
para ello de módulos RAM de 1M×1 bits/palabra. Suponiendo que las direcciones de memoria son consecutivas
empezando en la dirección 0. Indique razonadamente si las siguientes afirmaciones son verdaderas o falsas:
I. Una expresión lógica que sirve para detectar direcciones no válidas es: A 23+A22+A21· (A20+A19)
II. Bastan 32 módulos de RAM para obtener la capacidad deseada

2.57 Un disco magnético con 1024 pistas, numeradas del 0 al 1023, tiene la siguiente cola de peticiones de
acceso: 2, 35, 46, 23, 90, 102, 10 y 34. Si se utiliza la planificación LOOK e inicialmente la cabeza se halla en la
pista 29 indique razonadamente si las siguientes afirmaciones son verdaderas o falsas:
I. La longitud media de búsqueda es la misma tanto si el movimiento de la cabeza, desde la posición
inicial, se realiza en la dirección de las pistas crecientes como decrecientes.
II. Las solicitudes de acceso se podrían atender en el orden 34, 35, 46, 90, 102, 23, 10, 2 .

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.58 Supóngase una memoria RAM de 2048 palabras× 8 bits/palabra construida utilizando módulos de memoria
RAM de 128 palabras×8 bits/palabra. A fin de permitir el direccionamiento de las palabras de memoria, el bus
de direcciones:
A) Tiene 11 líneas, 4 de ellas para seleccionar cada módulo y 7 comunes a todos ellos.
B) Tiene 11 líneas, 3 de ellas para seleccionar cada módulo y 8 comunes a todos ellos.
C) Tiene 12 líneas, 5 de ellas para seleccionar cada módulo y 7 comunes a todos ellos.
D) Ninguna de las anteriores es verdadera.

2.59 Se dispone de 3 módulos de memoria con entradas de selección activa a nivel bajo. Dos módulos son de 8K
palabras y el tercero de 32 K palabras. Estos módulos de memoria van a estar direccionados por un procesador
que posee un bus de direcciones con 16 líneas (A15-0). Se requiere que los circuitos de 8K ocupen las direcciones
de memoria menores y las mayores, y que las palabras de direcciones sobrantes se repartan en dos áreas del
mismo tamaño.
A) (2 puntos) Proponga un mapa de memoria que utilice los tres módulos con las especificaciones indicadas
anteriormente. Diseñe un circuito que realice ese mapa.
B) (2 puntos) Indique el módulo de memoria y la posición en dicho módulo que se activa con cada una de las
siguientes direcciones (A15-0, en hexadecimal):0123, 2345, 4567, 6789, 89AB, ABCD, CDEF, EF01.

2.60 Una unidad de disco tiene 4 superficies, 128 cilindros, 16 sectores por pista y 4 Kbytes por sector. Si el
disco gira a 6000 rpm y tiene un formato con entrelazado simple ¿cuál es su velocidad de transferencia?.

2.61 Se tiene una memoria caché con 256 bloques de 16 palabras cada uno. Si la función de correspondencia es
directa y las direcciones de memoria principal (Mp) tienen 32 bits, indique razonadamente si las afirmaciones
son verdaderas o falsas:
I. Las direcciones de Mp A327113316 y A326113716 se ubican en el mismo bloque de la memoria caché.
II. La dirección de Mp A350212716 se ubicará en el bloque 18 de la memoria caché (expresado en decimal).

2.62 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores de los
registros argumento, máscara, etiqueta y marca, y del contenido de la memoria, en una operación de escritura en
esta memoria, ¿en qué palabra se escribiría el nuevo dato?

1 0 0 1 1 0 1 0 ARGUMENTO
1 0 0 1 0 1 0 1 MÁSCARA

1 1 1 0 1 1 1 1 1 Palabra 0 0
0 1 1 0 1 1 0 1 0 Palabra 1 1
ETIQUETA 1 1 0 0 1 0 0 0 0 Palabra 2 0 MARCA
0 1 0 1 0 0 1 1 0 Palabra 3 0
0 1 1 0 1 1 0 0 0 Palabra 4 0

2.63 Una memoria caché con correspondencia directa consta de 128 bloques. La memoria principal contiene
16K bloques con 16 palabras/bloque. El tiempo de acceso de la memoria caché es de 10 ns y el tiempo requerido
para llenar un bloque de la memoria caché es de 200 ns. Cuando una palabra a la que se desea acceder no se
encuentra en la memoria caché, en primer lugar se trae el bloque entero desde la memoria principal a la memoria
caché y a continuación se accede a la palabra desde la caché. Inicialmente la memoria caché está vacía. Se pide:
A) (1 punto) Dar el formato de la dirección de memoria.
B) (2 puntos) Calcular la tasa de acierto para un programa que realiza 10 veces un bucle que va desde las
posiciones de memoria 15 a 200.
C) (1 punto) Calcular el tiempo de acceso efectivo o medio para este programa.

2.64 Un computador posee 4 módulos de memoria RAM y un único módulo de memoria ROM. Todos ellos
tienen una longitud de palabra de 8 bits. El bus de
Componente Dirección hexadecimal
direcciones de la memoria tiene 16 bits. El mapa de
RAM 1 0000 – 007F direcciones de la memoria del computador es el mostrado en
RAM 2 0080 – 00FF la tabla adjunta. Indique si son correctas las dos afirmaciones
RAM 3 0100 – 017F siguientes:
RAM 4 0180 – 01FF
ROM 0200 – 03FF I. Cada módulo de memoria RAM tiene 128 palabras.
II. El módulo de memoria ROM tiene 512 palabras.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.65 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 tamaño de bloque de 8 palabras. Cuando se produce un fallo en
la caché se reemplaza el bloque más antiguo. Suponer que inicialmente la memoria caché está vacía y que se
leen sucesivamente las direcciones de memoria principal: 00000000, 00000001, 00000011, 00100001,
00100101, 00010000, 00010010 y 00000000. Si se leyera la dirección 00100111.
I. Se produciría un acierto en la memoria caché.
II. Se produciría un fallo en la memoria caché y sería necesario reemplazar uno de los bloques existentes en
la caché.

2.66 Un disco magnético tiene dos superficies. El área de almacenamiento en cada superficie tiene un radio
interior de 1 cm y un radio exterior de 5 cm. Si bien el tamaño de cada pista es diferente, cada una de ellas
almacena el mismo número de bits. La densidad de almacenamiento máximo que soporta este disco es de 10000
bits/cm. El espaciado entre puntos correspondientes en pistas adyacentes es de 0.1 mm lo que incluye además, el
espaciado entre pistas. Supóngase despreciable el espaciado entre sectores. Se pide:
A) (2.5 puntos) ¿Cuál es el máximo número de bits que se puede almacenar en el disco?
B) (1.5 puntos) Suponiendo que el disco tiene la capacidad de almacenamiento anteriormente calculada,
¿cuál es la velocidad de transferencia de datos desde el disco a la cabeza de lectura/escritura en bits/seg si
el disco gira con una velocidad de rotación de 3600 rpm? Para realizar este cálculo suponga que el disco
no tiene entrelazado y que en un determinado instante sólo se puede acceder a una de las superficies del
disco.

2.67 Considérese una memoria caché asociativa por conjuntos, con 4 bloques por conjunto. En ella se aplica el
algoritmo de reemplazamiento LRU, modificado para evitar el rebosamiento de los contadores. A cada bloque
del conjunto se le asocia un contador de 2 bits. Los cuatro contadores de dos bits son C0, C1, C2 y C3. En la tabla
adjunta se muestra el valor de los contadores al realizar la inicialización y tres determinados accesos. Indique
cuál es el valor de los contadores (X0X1X2X3) una vez realizado el acceso número 4.
Nº acceso Acierto/Fallo C0 C1 C2 C3 Acciones
0 0 0 0 Inicialización
1 Fallo 0 1 1 1 Bloque 0 rellenado
2 Fallo 1 0 2 2 Bloque 1 rellenado
3 Acierto 1 0 2 2 Bloque 1 accedido
4 Acierto X0 X1 X2 X3 Bloque 0 accedido

2.68 Una memoria caché con correspondencia totalmente asociativa tiene 16 bloques con 8 palabras/bloque. El
tamaño de la memoria principal es 216 palabras y la caché está inicialmente vacía. El tiempo de acceso de la
caché es de 40 ns y el tiempo requerido para transferir 8 palabras entre la memoria principal y la memoria caché
es de 1 ms. Se pide:
A) Dar el formato de la dirección de memoria.
B) Calcular la tasa de acierto para un programa que ejecuta las instrucciones que están localizadas desde las
posiciones de memoria que van de la 20 a la 45 y luego efectúa cuatro veces un bucle entre las posiciones
de memoria 28 a 45 antes de parar. Supóngase que cuando hay un fallo, el bloque de la memoria caché se
carga en 1 ms y la primera palabra no la ve la CPU hasta que se ha cargado todo el bloque entero en la
memoria caché.
C) Calcular el tiempo de acceso efectivo o medio para este programa.

2.69 Se tiene un sistema con una memoria principal de 256 Kpalabras y una memoria caché de 32 Kpalabras con
bloques de 16 palabras, siendo el tamaño de la palabra de 2 bytes. Se sabe que el sistema de memoria caché tiene
asignada una función de correspondencia de tipo directo. Indicar cuál de las siguientes direcciones provocaría un
reemplazamiento del bloque de memoria caché ocupado por el bloque de memoria principal asociado a la
dirección 856010.
A) 857510 B) 868810 C) 4133410 D) Ninguna de las anteriores

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.70 Un disco magnético con 64 pistas, numeradas del 0 al 63, tiene la siguiente cola de peticiones de acceso: 1,
3, 63, 47, 2, 46. Indique si las siguientes afirmaciones son verdaderas.
I. La LMB (Longitud Media de Búsqueda) asociado a una planificación SCAN es de 10.5. Se supone que
se parte de la pista 0 en el sentido ascendente de numeración de las pistas.
II. La planificación FCFS mejora ostensiblemente la LMB de la planificación SCAN de la afirmación
anterior, es decir, se obtiene una LMB mucho menor.

2.71 Una unidad de disco tiene 40 superficies, 1024 cilindros, 128 sectores por pista y 32 Kbytes por sector.
Además se sabe que el disco gira a 7200 rpm y tiene un formato con entrelazado cuádruple. Indique si las
siguientes afirmaciones son verdaderas.
I. La capacidad de la unidad de disco es de 160 GB.
II. La velocidad de transferencia es de 480 Mbytes/s.

2.72 Un dispositivo de entrada/salida tiene como dirección base la 40016. El bus de direcciones del dispositivo
utiliza las dos líneas de direcciones menos significativas A0 y A1 del bus de direcciones del sistema para
seleccionar registros internos del dispositivo. A su vez, la selección del dispositivo CS está conectada a un
circuito que implementa la lógica de selección y cuyas entradas son A2, A5, A6 y A7. ¿Con cuál de las siguientes
direcciones se puede acceder al mismo registro de este dispositivo que con la dirección 403 16?
A) 41B16 B) 48316 C) 40716 D) Ninguna de las anteriores.

2.73 En una memoria caché en la que se realizan 212 accesos se producen 210 fallos. La memoria caché tiene un
tiempo de acceso medio de 5 ns, mientras que el tiempo de acceso medio de la memoria principal es de 100 ns.
Indique si las siguientes afirmaciones son verdaderas.
I. La tasa de aciertos es del 25%.
II. El tiempo de acceso medio al sistema conjunto memoria principal-memoria caché es de 87.5 ns.

2.74 Un computador tiene una memoria principal (Mp) de 64k palabras de 16 bits/palabra con un tiempo de
acceso Ta. También tiene una memoria caché (Mc) totalmente asociativa de 4k palabras y 512 palabras por
bloque. Considérese que la memoria caché está inicialmente vacía y que, cuando la caché está llena, se
reemplaza el bloque que se haya utilizado menos recientemente. Supóngase que la UCP ejecuta un bucle 5
veces, en el que accede a 4101 palabras, desde la dirección 0 hasta la dirección 4100. La Mc es 8 veces más
veloz que la Mp. Se pide:
A) Especifique el número de bits de los campos en que se descompone una dirección de Mp de este sistema y
calcule cuánto tiempo se tardaría en realizar estos accesos a Mp si este computador no tuviera Mc.
B) Realice una tabla con 5 columnas, una columna por cada vez que se ejecuta el bucle, y tantas filas como
bloques tenga la Mc. En cada columna ponga el valor de la etiqueta existente en cada bloque de la Mc al
finalizar cada uno de los cinco ciclos. Expresar el valor de la etiqueta en hexadecimal.
C) Calcule cuántos fallos se producen en la Mc. Explique claramente su razonamiento.
D) Cada vez que se produce un fallo, primero se mueve el bloque completo de Mp a Mc y después se lee el
dato de la Mc. Calcule cuánto tiempo tardaría la UCP en realizar estos accesos a memoria.
2.75 Un computador tiene una memoria principal de 128 K palabras de 16 bits por palabra y una memoria caché
con correspondencia directa de 2 K palabras y 512 palabras por bloque. En un momento determinado comienza
a ejecutar 1000 veces un bucle en el que accede a 2200 posiciones de memoria consecutivas. Indique si las
siguientes afirmaciones relativas a la novena ejecución del bucle son verdaderas.
I. El número mínimo de fallos posible es 2.
II. El número máximo de fallos posible es 4.

2.76 Un computador con una longitud de palabra de 16 bits tiene un bus de direcciones de 24 bits (A23-A0). Se
desea diseñar mediante módulos RAM de 2Mpalabras × 4 bits/palabra su unidad de memoria, con una capacidad
de 9 Mpalabras × 16 bits/palabra. Además se debe reservar el direccionamiento asociado al primer Mpalabras
para una ROM de 1Mpalabras x 16 bits que contendrá el arranque del sistema operativo, mientras que el resto de
direcciones se ubicarán de manera consecutiva después de ese primer Mpalabras (hasta los 10 Mpalabras).
Indicar cuál de las siguientes afirmaciones es cierta:

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

I. Una expresión lógica que sirve para detectar direcciones RAM válidas es:
A23 × ( A22 + A21 + A20 ) + A23 × A22 × A21
II. Bastan 19 módulos de RAM y 1 módulo de ROM para obtener la capacidad deseada.

2.77 Una memoria caché con correspondencia directa utiliza 2048 palabras/bloque y su capacidad total es de
64K palabras. La memoria principal tiene una capacidad de 4096M palabras. En un determinado instante, la
dirección B3A972E0, expresada en hexadecimal, de la memoria principal se encuentra en la caché. Decir si las
siguientes afirmaciones son ciertas:
I. Esta dirección se corresponde con el bloque 14, expresado en decimal, de la memoria caché.
II. Del enunciado puede deducirse que la dirección 629E72E9, expresada en hexadecimal, no está en la
caché.

2.78 Un sistema jerárquico de memoria tiene una memoria caché de 4K palabras, dividida en bloques de 128
palabras y con un tiempo de acceso de 15 nseg, y una memoria principal de 128K palabras con un tiempo de
acceso de 150 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria caché y
después se lee el dato desde la caché. Si la tasa de acierto de la caché es del 95%, ¿Cuál es el tiempo de acceso
medio de este sistema?

2.79 Un disco formateado con entrelazado cuádruple, tiene 8 sectores por pista y una velocidad de rotación de
6000 rpm. ¿Cuánto tardará en leer, en su orden, todos los sectores de una pista suponiendo que la cabeza de
lectura se encuentra en la pista correcta y sobre el punto de comienzo del sector 4?

2.80 Considere una memoria asociativa de n palabras y 8 bits/palabra. Indique cuál de los siguientes valores de
los registros de argumento (A) y máscara (K) proporcionan un 1 en todos aquellos bits del registro de marca (M)
cuya celda de memoria contenga un número impar, y un 0 en caso contrario. (Se considera que el cero es un
número par).
A) A=10000010, K=00000001 B) A=10000011, K=00000001
C) A=00000001, K=10000000 D) Ninguna de las anteriores

2.81 ¿Cuál es la velocidad máxima de transferencia que se puede conseguir con un disco formateado con
entrelazado doble y 8 sectores de 16 Kbytes por pista, y una velocidad de rotación de 4500 rpm.?

2.82 Determinar el tamaño en bytes de una memoria caché con correspondencia asociativa por conjuntos que
tiene la siguiente longitud de sus tres campos: ETIQUETA 24 bits, CONJUNTO 8 bits y PALABRA 8 bits. La
caché tiene 4 bloques por conjunto y su longitud de palabra es de 2 bytes.

2.83 Se desea construir un sistema de memoria con las siguientes características: palabra de memoria de 16 bits,
512K palabras de espacio direccionable y 64K palabras de sólo lectura en las direcciones más bajas; el resto del
espacio direccionable será de lectura/escritura. Para ello se dispone de los siguientes módulos en cantidad
suficiente: RAM de 64K x 8 bits, RAM de 128K x 16 bits, ROM de 16K x 16 bits y decodificadores varios.
Cada uno de los módulos de memoria y los decodificadores cuentan con una entrada de selección SC, activa en
alta (SC = 1), que permite habilitar su funcionamiento. Se pide lo siguiente:
a) Diseñar el sistema de memoria requerido, indicando detalladamente la conexión de las líneas de datos, de
dirección y de control. Justificar las decisiones de diseño adoptadas.
b) Indicar en qué módulos de memoria se encuentra almacenada la palabra con la siguiente dirección en
hexadecimal 186A0.

2.84 Un sistema jerárquico de memoria tiene una memoria caché de 512 palabras, dividida en bloques de 16
palabras y con un tiempo de acceso de 15 nseg, y una memoria principal de 4096K palabras con un tiempo de
acceso de 150 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria caché y
después se lee el dato desde la caché. Si la tasa de acierto de la caché es del 95%, ¿cuál es el tiempo de acceso
medio de este sistema?

2.85 Una memoria caché asociativa por conjuntos dispone de 8 conjuntos y utiliza bloques de 32 palabras,
siendo su capacidad total de 4096 palabras. La memoria principal tiene una capacidad de 8192K palabras.
¿Cuántos bits hay en los diferentes campos del formato de dirección?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.86 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del
registro argumento, del registro de máscara, del registro etiqueta y del contenido de la memoria, ¿cuál sería el
valor del registro de marca?

1 0 0 1 1 0 1 0 ARGUMENTO
1 0 0 1 0 1 0 1 MÁSCARA

1 1 1 0 1 1 1 1 1 ?
1 1 1 0 1 1 0 1 0 ?
ETIQUETA 1 1 0 0 1 0 0 0 0 ? MARCA
0 1 0 1 0 0 1 1 0 ?
0 1 1 0 1 1 0 0 0 ?

2.87 Un computador dispone de un sistema de memoria central constituido por una memoria principal Mp de 64
Kbytes y una memoria cache Mc asociativa por conjuntos de 2 Kbytes organizada en 2 conjuntos y 4 bloques
por conjunto. Se pide lo siguiente:
1) (0.75 pto.) Especifique el número de bits de los campos en que se descompone una dirección de memoria
principal de este sistema.
2) (1.5 pto.) Esquema de correspondencia entre Mp y Mc.
3) (1.75 pto.) Si en un determinado instante el conjunto 0 contiene las etiquetas (10, 8, 9, 11) y el conjunto 1 las
etiquetas (8, 9, 10, 11) ¿Qué bloques de Mp están cargados en Mc?

2.88 Se tiene un microprocesador con 24 líneas en el bus de direcciones y una memoria caché que utiliza
correspondencia directa y que dispone de 2048 bloques de 64 palabras. ¿Cuántos bloques de memoria principal
compiten por el mismo bloque de la memoria caché?

2.89 Un computador de von Neumann tiene una longitud de palabra de 16 bits. Sus instrucciones máquina
ocupan una longitud de 16 o 32 bits (es decir 1 o 2 palabras). En ambos casos, el código de operación de las
instrucciones máquina ocupa un campo de 7 bits. Indique si las siguientes afirmaciones son verdaderas:
I. La memoria principal tendrá un único espacio de direcciones para datos y para instrucciones.
II. El computador tendrá como máximo 27-1 señales de control distintas.

2.90 Una planta industrial utiliza 4 sensores para poder ser controlada. Cada uno de ellos puede estar apagado o
encendido. Se desea conectar dichos sensores a un computador que dispone de una memoria de 4K palabras,
cada una de las cuales consta de 8 bits. Un interfaz de comunicación apropiado entre la CPU y los sensores, para
que el estado de dichos sensores pueda leerse desde la CPU como si se tratase del contenido de una celda de
memoria y dicha celda estuviese comprendida entre la dirección 800 y la 9FF, ambas en hexadecimal, sería:
− − − − − − − −
A) A11 A10 A9 B) A11 A10 A9 C) A11 A10 A9 A8 D) A11 A10 A9 A8

2.91 Un computador dispone de un sistema de memoria central constituido por una memoria principal Mp y una
cache Mc. La Mp tiene una capacidad de 128K palabras y está estructurada como un conjunto de módulos de 256
palabras. La Mc que utiliza una correspondencia directa tiene un tamaño de 2K palabras con bloques de 256
palabras. Se pide lo siguiente:
a) (0.5 pto) Número de módulos de Mp.
b) (1 pto) Interpretación de los bits de la dirección física del sistema de memoria para la Mp
c) (1 pto) Interpretación de los bits de la dirección física del sistema de memoria para la Mc.
d) (1.5 ptos) Correspondencia de los bloques de la Mp con los bloques de la Mc.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

2.92 Los valores del registro de argumento y de máscara de una memoria asociativa son los siguientes:

ARGUMENTO 0 1 0 0 1 0
MASCARA 1 0 1 0 1 1

Si en la primera posición de la memoria está almacenado el valor 0 y las siguientes celdas de memoria tienen el
valor de la celda inmediatamente anterior incrementado en 1, siendo el valor de la última celda el 7, ¿cuál sería
el valor del registro de marca?

2.93 Tenemos un disco magnético con 100 pistas, se han realizado las peticiones de las pistas 20, 80, 46, 15, 75.
La posición inicial de la cabeza lectora es 50. Si se emplea la planificación SSTF, ¿Cual es la longitud media de
búsqueda?

2.94 Sea un disco de cabezas móviles con 16 superficies, 5000 pistas por superficie, 40 sectores por pista y 640
bytes cada sector. De toda esta información el 80% es información neta. La velocidad de rotación es de 6000
rpm.
A) (2 pto) Calcule la capacidad neta del disco y su velocidad de transferencia.
B) (1 pto) Calcule el tiempo que transcurre entre interrupción e interrupción si el disco interrumpe a la
CPU por cada envío de 32 bits.
C) (1 pto) Si se supone que el disco está conectado a una CPU que ejecuta 1000 MIPS (millones de
instrucciones por segundo), determine el número de instrucciones que puede tener como máximo la rutina
de tratamiento de interrupciones (RTI) para que no se pierda ningún dato. Suponga que la secuencia de
reconocimiento de interrupción (SRI) tiene una duración de 20 ns, y que todas las instrucciones tienen el
mismo tiempo de ejecución.
Nota: Considerar que 1Mbyte = 106 bytes

2.95 Un computador emplea un sistema con memoria principal de 128 palabras y una memoria caché de 32
palabras. La organización de la memoria caché es totalmente asociativa y el tamaño del bloque es de 8 palabras.
Se emplea el algoritmo de reemplazamiento FIFO. Si inicialmente la memoria caché está totalmente vacía,
calcular el número de fallos cuando se lee la secuencia de direcciones de la memoria principal: 0000100,
1000001, 0000101, 0010011, 0100010, 1000100, 0000111.

2.96 A un bus dedicado a E/S se han conectado una memoria principal y tres discos iguales. La velocidad de
transferencia de cada disco es de 4 × 107 bits/seg. La longitud de palabra es de 16 bits. Cada transmisión sobre el
bus necesita 500 nseg para enviar el dato y las diferentes órdenes del protocolo. ¿Cuál es el tiempo de ciclo de la
memoria principal si se usa un bus con temporización síncrona?

2.97 Se dispone de un computador cuyo tiempo de acceso medio al sistema de memoria caché y memoria
principal es de 18 nseg. Si la tasa de fallo de dicha caché es 0.2 y el tiempo de acceso a la memoria principal es
50 nseg. ¿Cual es el tiempo de acceso medio a esa memoria caché?

2.98 El mapa de memoria de un procesador con bus de direcciones de 16 bits y bus de datos de 8 bits está
ocupado por 2 módulos de memoria RAM de 8K×8 y uno de memoria ROM de 16K×8. Se desea que las
posiciones de memoria más bajas estén ocupadas por la memoria ROM y las más altas por la memoria RAM.
Diseñar el circuito de decodificación necesario.
A) (2 puntos) Proponga un mapa de memoria que utilice los módulos y especificaciones indicadas en el
enunciado.
B) (2 puntos) Diseñar el circuito de decodificación pedido, indicando que función realiza cada uno de los
elementos que lo componen.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 2: Unidad de memoria. Solución de los problemas

CONTENIDO
SOLUCION PROBLEMA 2.1 ..................................................................................................................... 4
SOLUCION PROBLEMA 2.2 ..................................................................................................................... 5
SOLUCION PROBLEMA 2.3 .................................................................................................................... 6
SOLUCION PROBLEMA 2.4 .................................................................................................................... 8
SOLUCION PROBLEMA 2.5 .................................................................................................................... 9
SOLUCION PROBLEMA 2.6 ................................................................................................................... 10
SOLUCION PROBLEMA 2.7 .................................................................................................................. 11
SOLUCION PROBLEMA 2.8 ................................................................................................................... 13
SOLUCION PROBLEMA 2.9 .................................................................................................................. 14
SOLUCION PROBLEMA 2.10 ................................................................................................................ 15
SOLUCION PROBLEMA 2.11 ................................................................................................................. 16
SOLUCION PROBLEMA 2.12 ................................................................................................................. 17
SOLUCION PROBLEMA 2.13 ................................................................................................................. 18
SOLUCION PROBLEMA 2.14 ................................................................................................................. 19
SOLUCION PROBLEMA 2.15 ................................................................................................................ 19
SOLUCION PROBLEMA 2.16 ................................................................................................................. 21
SOLUCION PROBLEMA 2.17 ................................................................................................................ 22
SOLUCION PROBLEMA 2.18 ................................................................................................................. 23
SOLUCION PROBLEMA 2.19 ................................................................................................................. 24
SOLUCION PROBLEMA 2.20 ................................................................................................................. 24
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 ................................................................................................................. 41
SOLUCION PROBLEMA 2.33 ................................................................................................................. 42
SOLUCION PROBLEMA 2.34 ................................................................................................................. 44
SOLUCION PROBLEMA 2.35 ................................................................................................................ 46
SOLUCION PROBLEMA 2.36 ................................................................................................................ 47
SOLUCION PROBLEMA 2.37 ................................................................................................................ 47
SOLUCION PROBLEMA 2.38 ................................................................................................................. 48
SOLUCION PROBLEMA 2.39 ................................................................................................................. 49
SOLUCION PROBLEMA 2.40 ................................................................................................................ 50
SOLUCION PROBLEMA 2.41 ................................................................................................................ 50
SOLUCION PROBLEMA 2.42 ................................................................................................................ 51
SOLUCION PROBLEMA 2.43 ................................................................................................................. 52
SOLUCION PROBLEMA 2.44 ................................................................................................................. 52
SOLUCION PROBLEMA 2.45 ................................................................................................................. 53
SOLUCION PROBLEMA 2.46 ................................................................................................................. 53
SOLUCION PROBLEMA 2.47 ................................................................................................................. 54
SOLUCION PROBLEMA 2.48 ................................................................................................................. 55
SOLUCION PROBLEMA 2.49 ................................................................................................................. 56
SOLUCION PROBLEMA 2.50 ................................................................................................................. 56
SOLUCION PROBLEMA 2.51 ................................................................................................................. 57
SOLUCION PROBLEMA 2.52 ................................................................................................................. 57
SOLUCION PROBLEMA 2.53 ................................................................................................................. 58
SOLUCION PROBLEMA 2.54 ................................................................................................................. 59
SOLUCION PROBLEMA 2.55 ................................................................................................................. 61

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.56 ................................................................................................................. 61


SOLUCION PROBLEMA 2.57 ................................................................................................................. 63
SOLUCION PROBLEMA 2.58 ................................................................................................................. 64
SOLUCION PROBLEMA 2.59 ................................................................................................................. 64
SOLUCION PROBLEMA 2.60 ................................................................................................................. 65
SOLUCION PROBLEMA 2.61 ................................................................................................................. 66
SOLUCION PROBLEMA 2.62 ................................................................................................................. 67
SOLUCION PROBLEMA 2.63 ................................................................................................................. 67
SOLUCION PROBLEMA 2.64 ................................................................................................................. 69
SOLUCION PROBLEMA 2.65 ................................................................................................................. 70
SOLUCION PROBLEMA 2.66 ................................................................................................................. 71
SOLUCION PROBLEMA 2.67 ................................................................................................................. 72
SOLUCION PROBLEMA 2.68 ................................................................................................................. 73
SOLUCION PROBLEMA 2.69 ................................................................................................................. 75
SOLUCION PROBLEMA 2.70 ................................................................................................................. 77
SOLUCION PROBLEMA 2.71 ................................................................................................................. 78
SOLUCION PROBLEMA 2.72 ................................................................................................................. 79
SOLUCION PROBLEMA 2.73 ................................................................................................................. 80
SOLUCION PROBLEMA 2.74 ................................................................................................................. 81
SOLUCION PROBLEMA 2.75 ................................................................................................................. 85
SOLUCION PROBLEMA 2.76 ................................................................................................................. 86
SOLUCION PROBLEMA 2.77 ................................................................................................................. 88
SOLUCION PROBLEMA 2.78 ................................................................................................................. 89
SOLUCION PROBLEMA 2.79 ................................................................................................................. 90
SOLUCION PROBLEMA 2.80 ................................................................................................................. 91
SOLUCION PROBLEMA 2.81 ................................................................................................................. 92
SOLUCION PROBLEMA 2.82 ................................................................................................................. 92
SOLUCION PROBLEMA 2.83 ................................................................................................................. 93
SOLUCION PROBLEMA 2.84 ................................................................................................................ 96
SOLUCION PROBLEMA 2.85 ................................................................................................................. 96
SOLUCION PROBLEMA 2.86 ................................................................................................................. 97
SOLUCION PROBLEMA 2.87 ................................................................................................................. 97
SOLUCION PROBLEMA 2.88 ................................................................................................................. 99
SOLUCION PROBLEMA 2.89 ................................................................................................................. 99
SOLUCION PROBLEMA 2.90 ............................................................................................................... 100
SOLUCION PROBLEMA 2.91 ............................................................................................................... 100
SOLUCION PROBLEMA 2.92 ............................................................................................................... 102
SOLUCION PROBLEMA 2.93 ............................................................................................................... 103
SOLUCION PROBLEMA 2.94 ............................................................................................................... 103
SOLUCION PROBLEMA 2.95 .............................................................................................................. 105
SOLUCIÓN PROBLEMA 2.96 ............................................................................................................... 106
SOLUCIÓN PROBLEMA 2.97 ............................................................................................................... 107
SOLUCION PROBLEMA 2.98 ............................................................................................................... 107

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.1


DATOS
• Memoria caché (Mc) 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 Mp tiene 220palabras se requieren direcciones de longitud n=log 2CMp= log2220=20 bits.

En segundo lugar se va a calcular el número de bloques C de la M c

bloques
C = q ⋅ r = 16 conjuntos ⋅ 4 = 2 6 bloques en M C
conjunto

El formato de una dirección de la Mc que utiliza una función de correspondencia asociativa por
conjuntos es:

n=20 bits

Conjunto
Etiqueta Palabra
de Mc

9 bits log2q= 4 bits log2K= 7 bits

Luego la dirección que se nos plantea es:

Etiqueta Conjunto de Palabra


Mc
101 000 011 0010 0110000

El conjunto de Mc al que hace referencia esta dirección es 0010 = 210

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 2: Unidad de memoria. Solución 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 número de bloques C de M c es:

210 pal
C= 6 = 2 4 bloques
2 pal / bloque
a) La memoria caché utiliza función de correspondencia directa. Por lo tanto el formato de una
dirección desde el punto de vista de la memoria caché es :

n=21 bits

Bloque
Etiqueta Palabra
de Mc

11 bits log2C= 4 bits log2K= 6 bits

Luego dada la dirección en binario del enunciado,

000 000 001 10 0100 110000

El bloque de la Mc al que hace referencia es el número 410 (0100).


La etiqueta que habría que buscar es 610 (000 000 001 10).

b) La memoria caché utiliza función de correspondencia totalmente asociativa. Por lo tanto el formato
de una dirección desde el punto de vista de la memoria caché es :

n=21 bits

Etiqueta Palabra

15 bits log2K= 6 bits


Luego dada la dirección en binario del enunciado,

000 000 001 100 100 110 000

La etiqueta que habría que buscar es 10010 (000 000 001 100 100).

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.3


DATOS
• CMp = 512 (29) palabras
• CMc = 32 (25) palabras
• El tamaño de partición es K=8 (23) palabras/bloque
• La caché está inicialmente vacia.

De los datos del enunciado se pueden calcular el número de bloques C de la M C.


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

a) La caché emplea correspondencia directa. La dirección desde el punto de vista de la Mc tendría los
siguientes campos:

n=9 bits

Bloque
Etiqueta Palabra
de Mc

4 bits log2C= 2 bits log2K= 3 bits


En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) de la Mp al Nº bloque (i) de la Mc al Fallo o acierto


que hace referencia la que hace referencia la
dirección. dirección
000 0 00 000 0 0 Fallo
se carga j=0 en
i=0
000 0 00 001 0 0 Acierto
000 0 00 011 0 0 Acierto
000 1 00 001 4 0 Fallo
se carga j=4 en
i=0
000 1 00 101 4 0 Acierto
000 0 10 000 2 2 Fallo
se carga j=2 en
i=2
000 0 10 010 2 2 Acierto
000 0 00 000 0 0 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 más antiguo en caché.

El número de conjuntos es q=4/2=2

La dirección desde el punto de vista de la Mc tendría los siguientes campos :

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 2: Unidad de memoria. Solución de los problemas

n=9 bits

Conjunto
Etiqueta Palabra
de Mc

5 bits log2q= 1 bits log2K= 3 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) de la Mp al Nº conjunto (i) de la Mc al Fallo o acierto


que hace referencia la que hace referencia la
dirección. dirección
000 00 0 000 0 0 Fallo se carga el
bloque j=0 en el
bloque 0 del
conjunto i=0
000 00 0 001 0 0 Acierto
000 00 0 011 0 0 Acierto
000 10 0 001 4 0 Fallo se carga el
bloque j=4 en el
bloque 1 del
conjunto i=0
000 10 0 101 4 0 Acierto
000 01 0 000 2 0 Fallo se carga el
bloque j=2 en el
bloque 0 del
conjunto i=0
000 01 0 010 2 0 Acierto
000 00 0 000 0 0 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 dirección desde el punto de vista de la Mc tendría los siguientes campos :


n=9 bits

Etiqueta Palabra

6 bits log2K= 3 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 2: Unidad de memoria. Solución de los problemas

Direcciones leídas Nº de bloque (j) de la Mp al Fallo o Acierto


que hace referencia la
dirección.
000 00 0 000 0 Fallo se carga el bloque
j=0 en el bloque i=0
000 00 0 001 0 acierto
000 00 0 011 0 acierto
000 10 0 001 4 Fallo se carga el bloque
j=4 en el bloque i=1
000 10 0 101 4 acierto
000 01 0 000 2 Fallo se carga el bloque
j=2 en el bloque i=2
000 01 0 010 2 acierto
000 00 0 000 0 acierto
Nº Total de fallos = 3

SOLUCION PROBLEMA 2.4


DATOS
• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp
• Mc: Capacidad 256 palabras y tiempo de acceso tac=10 nseg
• Mp: 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 tex=20 nseg adicionales en tratar el fallo.
• La palabra solicitada es enviada de Mp a Mc donde es leída 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 gestión 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 Mc. 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 Mp a la Mc, para lo que empleara un tiempo tap.
3) Finalmente dicha palabra es leída por la CPU en la MC, por lo que empleará un tiempo tac.

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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.5


DATOS
• CMp = 512 (29) palabras
• CMc = 32 (25) palabras
• El tamaño de partición es K=8 (23) palabras/bloque
• La caché está inicialmente vacía.
• Función de correspondencia totalmente asociativa

De los datos del enunciado se pueden calcular el número de bloques C de la M C.


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

Por otra parte, el número de bloques M de la Mp.


C Mp 2 9
M= = 3 = 2 6 = 64 bloques.
K 2

Además el tamaño de una dirección viene dado por n=log2CMp= log229=9 bits

Puesto que la caché emplea correspondencia totalmente asociativa. La dirección desde el punto de vista
de la Mc tendría los siguientes campos:

n=9 bits

Etiqueta Palabra

e=n-p= 6 bits p=log2K= 3 bits

Obsérvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el


número de bloque j de la Mp, con lo que el tamaño de la etiqueta también se podía haber calculado de la
siguiente forma e=log2M= log226= 6 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc. Recuérdese que con la letra i se denota el número de bloque de memoria caché.

Direcciones leídas Etiqueta= Nº de bloque j de Mp Fallo o acierto


000000 000 0 Fallo
se carga j=0 en i=0
000000 001 0 Acierto
000000 011 0 Acierto
000100 001 4 Fallo
se carga j=4 en i=1
000100 101 4 Acierto
000010 000 2 Fallo
se carga j=2 en i=2
000010 010 2 Acierto
000000 000 0 Acierto

Nº Total de fallos=3

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 2: Unidad de memoria. Solución 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 1 0 1 1 1 0 0 ARGUMENTO
1 0 1 0 1 1 0 1 MASCARA

1 0 0 1 1 1 1 1 ?
0 1 0 1 1 0 1 0 ?
0 1 0 1 0 0 1 0 ? MARCA
0 1 1 0 1 1 1 0 ?
0 0 0 1 1 1 1 0 ?

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 1 0 1 1 1 0 0 ARGUMENTO
1 0 1 0 1 1 0 1 MASCARA

1 0 0 1 1 1 1 1 ?
0 1 0 1 1 0 1 0 ?
0 1 0 1 0 0 1 0 ? MARCA
0 1 1 0 1 1 1 0 ?
0 0 0 1 1 1 1 0 ?

Sólo 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.7


DATOS
• CMp = 4096 (212) palabras
• CMc = 64 (26) palabras
• K=16 (24) palabras/bloque
• Caché inicialmente vacía.
• Función de correspondencia directa

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, el número de bloques M de la Mp.

C Mp 212
M= = =2 8 = 256 bloques.
K 24

Es decir, que los 8 bits más significativos de una dirección de memoria hacen referencia al bloque j de M p

Además el tamaño de una dirección viene dado por n=log2CMp= log2212= 12 bits

Puesto que la caché emplea correspondencia directa. La dirección desde el punto de vista de la Mc
tendría los siguientes campos:

n=12 bits

Bloque nº i
Etiqueta Palabra
de Mc

6 bits log2C= 2 bits log2K= 4 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) de la Mp al Nº bloque (i) de la Mc al Fallo o acierto


que hace referencia la que hace referencia la
dirección. dirección
000000 01 0000 1 1 Fallo
se carga j=1 en i=1
que inicialmente esta
vacío
000100 01 0100 17 1 Fallo
se carga j=17 en i=1
000001 00 1000 4 0 Fallo
se carga j=4 en i=0
que inicialmente esta
vacío
000001 11 1000 7 3 Fallo
se carga j=7 en i=3
que inicialmente esta
vacío

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 2: Unidad de memoria. Solución de los problemas

Afirmación I:

Direcciones leídas Nº de bloque (j) de la Mp al Nº bloque (i) de la Mc al Fallo o acierto


que hace referencia la que hace referencia la
dirección. dirección
000000 01 0100 1 1 Fallo
se carga j=1 en i=1
010011 10 1100 78 2 Fallo
se carga j=78 en i=2
que inicialmente esta
vacío

La afirmación es FALSA, ya que aunque efectivamente se producen dos fallos, sólo hay que realizar un
reemplazamiento de un bloque existente ya en caché.

Afirmación II:

Direcciones leídas Nº de bloque (j) de la Mp al Nº bloque (i) de la Mc al Fallo o acierto


que hace referencia la que hace referencia la
dirección. dirección
000001 11 0001 7 3 Acierto

La afirmación es FALSA, ya que se produce un acierto y en consecuencia obviamente no hay que


realizar ningún reemplazamiento.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 2: Unidad de memoria. Solución 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 máscara está a 0. Como se muestra
en la figura :
? ? ? ? ? ? ? ? ARGUMENTO
1 0 0 1 0 1 0 0 MASCARA

1 1 0 1 1 1 1 1 0
1 1 0 1 1 0 1 0 1
0 0 0 1 0 0 0 1 0 MARCA
1 0 1 0 0 1 1 0 0
1 1 0 1 1 0 0 1 1

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 1 0 0 Argumento 1
0 1 0 1 1 1 1 1 Argumento 2
1 0 0 1 1 0 0 0 Argumento 3
1 1 1 1 1 0 1 0 Argumento 4
0 1 0 1 0 0 1 1 Argumento 5

5) Comparando cada uno de los argumentos con 1XX1X0XX. Se puede ver que sólo el argumento
3 y el 4 producirían el registro de marca dado.
1 0 1 1 0 1 0 0 Argumento 1
0 1 0 1 1 1 1 1 Argumento 2
1 0 0 1 1 0 0 0 Argumento 3
1 1 1 1 1 0 1 0 Argumento 4
0 1 0 1 0 0 1 1 Argumento 5

Luego la solución es: 2 argumentos.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.9


DATOS
• CMp = 4096 (212) palabras
• CMc = 128 (27) palabras
• K=16 (24) palabras/bloque
• Caché inicialmente vacía.
• Función de correspondencia totalmente asociativa

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, el número de bloques M de la Mp.

C Mp 212
M= = =2 8 = 256 bloques.
K 24

Es decir, que los log2M=8 bits más significativos de una dirección de memoria hacen referencia al bloque
j de Mp

Además el tamaño de una dirección viene dado por n=log2CMp= log2212= 12 bits

Puesto que la caché emplea correspondencia totalmente asociativa. La dirección desde el punto de vista
de la Mc tendría los siguientes campos:

n=12 bits

Etiqueta Palabra

e=n-p= 8 bits p=log2K= 4 bits

Obsérvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el


número de bloque j de la Mp, con lo que el tamaño de la etiqueta también se podía haber calculado de la
siguiente forma e=log2M= log228= 8 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) de la Mp al Fallo o acierto


que hace referencia la
dirección.
0000 0001 0000 1 Fallo se carga j=1 en i=0 que inicialmente
esta vacío
0001 0001 0100 17 Fallo se carga j=17 en i=1 que inicialmente
esta vacío
0000 0100 1000 4 Fallo se carga j=4 en i=2 que inicialmente
esta vacío
0000 0111 1000 7 Fallo se carga j=7 en i=3 que inicialmente
esta vacío

Afirmación I: Es FALSA, ya que se producen 4 fallos.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 2: Unidad de memoria. Solución de los problemas

Afirmación II:

Direcciones leídas Nº de bloque (j) de la Mp al Fallo o acierto


que hace referencia la
dirección.
0110 0111 0100 103 Fallo se carga j=103 en i=4 que
inicialmente está vacía

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 vacíos.

SOLUCION PROBLEMA 2.10


DATOS
• n =16 bits
• CMc = 210 palabras
• K=16 (24) palabras/bloque
• Función de correspondencia asociativa por conjuntos.
• r= 4 bloques/conjunto

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, conocido C es posible calcular el número de conjuntos q de la M C

C (bloques ) 26
q= = 2 =2 4 = 16 conjuntos.
r (bloques / conjunto) 2

Puesto que la caché emplea correspondencia asociativa por conjuntos. La dirección desde el punto de
vista de la Mc tendría los siguientes campos:

n=16 bits

Conjunto
Etiqueta Palabra
de Mc

e=n-(c+p) c=log2q p=log2K


e=8 bits c= 4 bits p= 4 bits
Por lo tanto la dirección del enunciado se divide en tres campos:

0000 1101 1100 0011

El valor de sus campos en decimal es:

Etiqueta = (0000 1101)2=1310


Conjunto de Mc = (1100)2=1210
Palabra = (0011)2=310

13 12 3

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.11


Una posible solución a este problema consiste en ir probando uno a uno con los registros de máscara
dados para verificar si producen el registro de Marca especificado, con lo que sería resolver 5 veces un
problema como el problema 2.6
1) La Máscara1 si que produce el registro de Marca especificado.

0 1 0 1 1 1 0 0 ARGUMENTO
0 0 1 0 1 0 0 1 MÁSCARA 1

1 0 0 1 1 1 1 1 0
0 1 0 1 1 0 1 0 1
0 1 0 1 0 0 1 0 0 MARCA
0 1 1 0 1 1 1 0 0
0 0 0 1 1 1 1 0 1

2) La Máscara 2 no produce el registro de Marca especificado


0 1 0 1 1 1 0 0 ARGUMENTO
1 0 1 0 0 0 0 1 MÁSCARA 2

1 0 0 1 1 1 1 1 0
0 1 0 1 1 0 1 0 1
0 1 0 1 0 0 1 0 1 MARCA
0 1 1 0 1 1 1 0 0
0 0 0 1 1 1 1 0 1

3) La Máscara 3 si produce el registro de Marca especificado


0 1 0 1 1 1 0 0 ARGUMENTO
1 0 1 0 1 0 0 1 MÁSCARA 3

1 0 0 1 1 1 1 1 0
0 1 0 1 1 0 1 0 1
0 1 0 1 0 0 1 0 0 MARCA
0 1 1 0 1 1 1 0 0
0 0 0 1 1 1 1 0 1

3) La Máscara 4 si produce el registro de Marca especificado


0 1 0 1 1 1 0 0 ARGUMENTO
1 0 1 1 1 0 0 1 MÁSCARA 4

1 0 0 1 1 1 1 1 0
0 1 0 1 1 0 1 0 1
0 1 0 1 0 0 1 0 0 MARCA
0 1 1 0 1 1 1 0 0
0 0 0 1 1 1 1 0 1

Jose Manuel Díaz Tutor de ETC2 (Coslada) 16


TEMA 2: Unidad de memoria. Solución de los problemas

3) La Máscara 5 si produce el registro de Marca especificado


0 1 0 1 1 1 0 0 ARGUMENTO
0 0 1 0 1 1 0 1 MÁSCARA 5

1 0 0 1 1 1 1 1 0
0 1 0 1 1 0 1 0 0
0 1 0 1 0 0 1 0 0 MARCA
0 1 1 0 1 1 1 0 0
0 0 0 1 1 1 1 0 1

Luego la solución es 3 registros de máscara 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 número de
bits. O también como el tiempo transcurrido desde que se solicita una información 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 definición, la frecuencia de acceso fA o velocidad de transferencia vT se define como el número de


palabras que se pueden leer o escribir en memoria por unidad de tiempo.

1
fA =
tC

Luego sustituyendo, se obtiene:

1 1
fA = −9
= −7 = 10 7 seg −1
100·10 10

Jose Manuel Díaz Tutor de ETC2 (Coslada) 17


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.13


DATOS
• Se desea diseñar un módulo 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 dirección de memoria.
Puesto que 256=28 → n=log228= 8 bits.

Análisis de la Afirmación I
Si se utiliza organización 2D (ver libro de teoría pags.62-64), se requiere un decodificar que reciba los
n=8 bits del bus de dirección y genere las 2n=28 posiciones de memoria, es decir que posea 8 entradas y 28
salidas. Luego la afirmación I es verdadera.decodificador

n 2n Matriz
de celdas
2n x m

SC R/W
Control

m m

Dato Dato
de salida de entrada

Análisis de la Afirmación II
Si se utiliza organización 21/2D (ver libro de teoría pags.65-68), se requieren dos decodificares, cada
uno con n/2=4 entradas y 2 n/2=24 salidas. Luego la afirmación II es verdadera.

n/2

Decode X

2n/2

n/2 2n/2
Matriz
Decode Y

de celdas
2n x m

SC R/W
Control

m m

Dato Dato
de salida de entrada

Jose Manuel Díaz Tutor de ETC2 (Coslada) 18


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.14


DATOS
• Número total de accesos NT=230
• Tasa de aciertos h=75 %

La definición de tasa de fallos (1- h) es:

NF
1− h =
NT
Despejando el número total de Fallos:

N F = (1 − h )· N T

Sustituyendo valores se obtiene:

2 30
N F = (1 − 0.75)·2 30 = 0.25 ⋅ 2 30 = = 2 28
22

Luego el número total de fallos es NF = 228.

SOLUCION PROBLEMA 2.15


DATOS
• CMp = 256 (28) palabras
• CMc = 32 (25) palabras
• K=8 (23) palabras/bloque
• Caché inicialmente vacía.
• Reemplazamiento FIFO
• Función de correspondencia totalmente asociativa

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, el número de bloques M de la Mp.

C Mp 28
M = = =2 5 = 32 bloques.
K 23

Es decir, que los log2M= 5 bits más significativos de una dirección de memoria hacen referencia al
bloque j de Mp

Además el tamaño de una dirección viene dado por n=log2CMp= log228= 8 bits

Puesto que la caché emplea correspondencia totalmente asociativa. La dirección desde el punto de vista
de la Mc tendría los siguientes campos:

n=8 bits

Etiqueta Palabra

e=n-p= 5 bits p=log2K= 3 bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 19


TEMA 2: Unidad de memoria. Solución de los problemas

Obsérvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el


número de bloque j de la Mp, con lo que el tamaño de la etiqueta también se podía haber calculado de la
siguiente forma e=log2M= log225= 5 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) de la Mp al que Fallo o acierto


hace referencia la dirección.
00000 000 0 Fallo se carga j=0 en i=0 que
inicialmente esta vacío
00000 001 0 Acierto
00000 011 0 Acierto
00100 001 4 Fallo se carga j=4 en i=1 que
inicialmente esta vacío
00100 101 4 Acierto
00010 000 2 Fallo se carga j=2 en i=2 que
inicialmente esta vacío
00010 010 2 Acierto
00000 000 0 Acierto

Número total de fallos: 3 Fallos

Jose Manuel Díaz Tutor de ETC2 (Coslada) 20


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.16


A la hora de calcular el valor del registro de marca sólo 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.

1 0 0 1 1 0 1 0 ARGUMENTO
1 0 0 1 0 1 0 1 MASCARA

1 1 1 0 1 1 1 1 1 ?
1 1 1 0 1 1 0 1 0 ?
ETIQUETA 1 1 0 0 1 0 0 0 0 ? MARCA
0 1 0 1 0 0 1 1 0 0
0 1 1 0 1 1 0 0 0 0

Por otro lado y de acuerdo al funcionamiento estándar de una memoria asociativa, en las palabras activas
sólo se consideran los bits del argumento cuya correspondiente bit de máscara 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.

1 0 0 1 1 0 1 0 ARGUMENTO
1 0 0 1 0 1 0 1 MASCARA

1 1 1 0 1 1 1 1 1 0
1 1 1 0 1 1 0 1 0 1
ETIQUETA 1 1 0 0 1 0 0 0 0 1 MARCA
0 1 0 1 0 0 1 1 0 0
0 1 1 0 1 1 0 0 0 0

El argumento a comparar de acuerdo con el registro de máscara 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 darán 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 21


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.17


DATOS
• CMp = 256 (28) palabras
• CMc = 32 (25) palabras
• K=8 (23) palabras/bloque
• Caché inicialmente vacía.
• Reemplazamiento FIFO
• Función de correspondencia totalmente asociativa

El desarrollo de este problema es exactamente igual que el del Problema 2.15, lo único que varía es que
ahora se considera que se lee además la dirección 00100 111, que se ha añadido al final de la tabla
construida en el Problema 2.15.

Direcciones leídas Nº de bloque (j) de la Mp al que Fallo o acierto


hace referencia la dirección.
00000 000 0 Fallo se carga j=0 en i=0 que
inicialmente esta vacío
00000 001 0 Acierto
00000 011 0 Acierto
00100 001 4 Fallo se carga j=4 en i=1 que
inicialmente esta vacío
00100 101 4 Acierto
00010 000 2 Fallo se carga j=2 en i=2 que
inicialmente esta vacío
00010 010 2 Acierto
00000 000 0 Acierto
00100 111 4 Acierto

Afirmación I: Es VERDADERA, al leer dicha dirección se produce un acierto ya que el bloque j=4 ya
se encuentra cargado en la MC, en concreto en el bloque i=1.
Afirmación II: Es FALSA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 22


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.18


DATOS
• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp
• Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso tac=10 nseg
• Mp: 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.
• Simultáneamente se mueve el bloque desde la Mp a la Mc

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 gestión 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 Mc. De acuerdo con el enunciado
cuando se produce un fallo, el sistema entonces simultáneamente mueve el dato a la CPU empleando un
tiempo tap y mueve el bloque que consta de 8 palabras desde la Mp a la Mc, este movimiento emplea un
tiempo de 8·tap. Luego tgf
es:

t gf = max{8 ⋅ t ap , 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 23


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.19


DATOS
• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp
• Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso tca=10 nseg
• Mp: 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 Mp a Mc
• Después la CPU lee el dato en la Mc

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 gestión 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 Mp a
la Mc, este movimiento emplea un tiempo de 8·tap, y a continuación 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 relación al problema, el nuevo dato se escribirá en la primera palabra cuyo bit correspondiente en el
registro de etiqueta sea 0: la palabra 3.

SOLUCION PROBLEMA 2.21


DATOS
• CMp = 4096 (212) palabras
• CMc = 64 (26) palabras
• K=16 (24) palabras/bloque
• Caché inicialmente vacía.
• Función de correspondencia directa.

Afirmación I y Afirmación II: FALSAS. Cuando se utiliza la función de correspondencia directa no


tiene sentido hablar de conjuntos.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 24


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.22


DATOS
• Procesador con 12 líneas de dirección A 11A10....A0
• Para construir su unidad de memoria se dispone de módulos de 1K =(2 10) palabras
• Las líneas más significativas (A11-A10) se utilizan para la selección de cada módulo

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por
cada línea. Por otro lado puesto que se tienen dos líneas A11 y A10 para seleccionar módulos de memoria
de 1K, el número total de módulos para implementar el mapa de memoria es 22=4 módulos. En la
siguiente tabla se muestra el módulo de memoria al que se hace referencia en función del valor de estas
dos líneas.
A11 A10 Módulo de memoria
0 0 Módulo 0
0 1 Módulo 1
1 0 Módulo 2
1 1 Módulo 3

Así las direcciones que hacen referencia al primer módulo de memoria (módulo nº 0) son:
00XX XXXX XXXX
donde X puede valer 0 o 1.
Las direcciones que hacen referencia al segundo módulo de memoria (módulo nº 1) son:
01XX XXXX XXXX

Las direcciones que hacen referencia al tercer módulo de memoria (módulo nº 2) son:
10XX XXXX XXXX

Y las direcciones que hacen referencia al cuarto módulo de memoria (módulo nº 3) son:
11XX XXXX XXXX
En la siguiente tabla aparece la primera dirección (dirección base) y la última de cada módulo de
memoria, tanto en binario como en hexadecimal.
Módulo de memoria Dirección de inicio Dirección final
(Dirección Base)
módulo nº 0 0000 0000 0000 0011 1111 1111
000 (hexadecimal) 3FF (hexadecimal)
módulo nº 1 0100 0000 0000 0111 1111 1111
400 (hexadecimal) 7FF (hexadecimal)
módulo nº 2 1000 0000 0000 1011 1111 1111
800 (hexadecimal) BFF (hexadecimal)
módulo nº 3 1100 0000 0000 1111 1111 1111
C00 (hexadecimal) FFF (hexadecimal)
La solución al problema (las direcciones base de cada módulo) está dada por lo tanto en la tabla anterior.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 25


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.23


DATOS
• Computador con un sistema jerárquico de memoria.
• El orden de los niveles superiores a los inferiores es:
registros de la CPU ------> Nivel Superior
caché primaria
caché secundaria
memoria principal
discos magnéticos -----> Nivel Inferior

Cuando se dispone de un sistema jerárquico 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.
Afirmación 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.
Afirmación 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

Afirmación I: Esta afirmación es Falsa, por el propio funcionamiento de este tipo de función de
correspondencia, cuando la memoria Caché está llena hay que definir una política de reemplazamiento de
bloques.
Afirmación II: Esta afirmación es verdadera

Jose Manuel Díaz Tutor de ETC2 (Coslada) 26


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.25


DATOS
• Procesador con 12 líneas de dirección A 11A10....A0
• Para construir su unidad de memoria se dispone de módulos de 1K =(2 10) palabras
• Las líneas más significativas (A1-A0) se utilizan para la selección de cada módulo

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por
cada línea. Por otro lado puesto que se tienen dos líneas A1 y A0 para seleccionar módulos de memoria de
1K, el número total de módulos para implementar el mapa de memoria es 22=4 módulos. En la siguiente
tabla se muestra el módulo de memoria al que se hace referencia en función del valor de estas dos líneas.

A1 A0 Módulo de memoria
0 0 Módulo 0
0 1 Módulo 1
1 0 Módulo 2
1 1 Módulo 3

Módulo 0
Así las direcciones que hacen referencia al primer módulo de memoria (módulo 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

Módulo 1
Las direcciones que hacen referencia al segundo módulo de memoria (módulo 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 27


TEMA 2: Unidad de memoria. Solución de los problemas

Módulo 2
Las direcciones que hacen referencia al tercer módulo de memoria (módulo 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 módulo de memoria (módulo 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 módulo de memoria, examinemos las
afirmaciones:
Afirmación I: Es FALSA, la dirección C89 se refiere al módulo 1 y la dirección C8A se refiere al
módulo 2.
Afirmación II: Es VERDADERA, por que efectivamente C89 y C8A se refieren a diferentes módulos,
la dirección C89 se refiere al módulo 1 y la dirección C8A se refiere al módulo 2.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 28


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.26


DATOS
• CMp = 4096 (212) palabras
• CMc = 64 (26) palabras
• K=16 (24) palabras/bloque
• Caché inicialmente vacía.
• Función de correspondencia directa

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, el número de bloques M de la Mp.

C Mp 212
M = = =2 8 = 256 bloques.
K 24

Es decir, que los log2M= 8 bits más significativos de una dirección de memoria hacen referencia al
bloque j de Mp

Además el tamaño de una dirección viene dado por n=log2CMp= log2212= 12 bits

Puesto que la caché emplea correspondencia directa. La dirección desde el punto de vista de la Mc
tendría los siguientes campos:

n=12 bits

Bloque nº i
Etiqueta Palabra
de Mc

e=(n-b-p) b=log2C p=log2K


e=6 bits b= 2 bits p= 4 bits

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) Nº de bloque (i) Fallo o acierto


de la Mp de la Mc
000000 01 0000 1 1 Fallo se carga j=1 en i=1
que inicialmente esta
vacío
000100 01 0100 17 1 Fallo se carga j=17 en i=1
000001 00 1000 4 0 Fallo se carga j=4 en i=0
que inicialmente esta
vacío
000001 11 1000 7 3 Fallo se carga j=7 en i=3
que inicialmente esta
vacío

Afirmación I: De acuerdo con la tabla construida anteriormente, la afirmación es VERDADERA.


Afirmación II: De acuerdo con la tabla construida anteriormente, el bloque i=1 de la Mc tiene
almacenado el bloque j=17 de la Mp, por lo tanto su etiqueta es 000100. Luego la afirmación es
VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 29


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.27


DATOS
• Mp con 32k palabras de 16 bits/palabra
• Mc asociativa por conjuntos de 4k palabras
r =4 bloques/conjunto
K= 64 palabras/bloque
• La Mc está inicialmente vacía 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.
• Después repite esta secuencia 9 veces.
• La Mc es 10 veces más veloz que la Mp → tap=10tac

a) Como se trata de una caché asociativa por conjuntos el formato de dirección 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 = 2 5 ·210 = 215 ).
15 bits es, por tanto, el ancho de una dirección 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 tendrán
4 y 6 bits, respectivamente. Esto hace un total de 10 bits, de los 15 de una dirección de memoria
principal. Los 5 bits restantes constituyen el campo Etiqueta.

n= 15 bits

Conjunto
Etiqueta Palabra
de Mc

5 bits log2q= 4 bits log2K= 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 número total de palabras que se leen es 4352 ´ 10.
Si el tiempo necesario para acceder a una palabra de memoria principal es 10tac (frente a tac que sería el
tiempo necesario para acceder a una palabra de caché), el tiempo total es

ta = 4352 ·10 ·10t ac = 435200tac.

c) Para resolver esta cuestión 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 vacía. Dado que el tamaño de la memoria caché es de 4096 palabras y el número de palabras
a las que se accede es de 4352, es claro que la caché no puede almacenar simultáneamente 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é.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 30


TEMA 2: Unidad de memoria. Solución de los problemas

Las 4352 palabras consecutivas que hay que leer corresponden a (4352 palabras) / (64 palabras/partición)
= 68 particiones, 4 más 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 dirección 0: Como la caché está vacía se producirá un fallo y se traerán las palabras 0
a 63 que, según el formato de dirección de la memoria principal corresponden al conjunto 0. Como las
cuatro particiones de este conjunto se encuentran vacías se puede suponer que se almacenarán en la
partición 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 partición 0 de este conjunto.

Así, los primeros 16 bloques de la memoria principal irán a la partición 0 de sus respectivos conjuntos.
Los 16 bloques siguientes irán a la partición 1 de sus conjuntos. Se suceden las lecturas, hasta haber leído
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 todavía 4 bloques por leer.

Dado que la política de reemplazamiento es FIFO, se reemplazarán las particiones de cada conjunto que
lleven más tiempo en la caché. Es este caso, la partición 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 partición más antigua de este conjunto, que como se acaba de
ver es la 0.

Las palabras 4160, 4224 y 4288 producirán tres fallos más, y corresponden a los conjuntos 1, 2 y 3,
respectivamente. En cada uno de estos conjuntos se reemplaza la partición más 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 dirección le corresponde el mismo conjunto que en la
primera lectura, según el mecanismo de la caché asociativa por conjuntos. El que una palabra produzca
un fallo o no dependerá de si todavía 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 dirección 0, que correspondía al bloque 0, ya no está en la caché, pues fue sustituído por el bloque 64.
La partición más antigua en esta ocasión es la 1, que contenía el bloque 16 de memoria principal. Luego
habrá que escribir en la partición 1 del conjunto 0, por lo que el bloque 16 es reemplazado por el 0.

Cuando más adelante se lea el bloque 16 éste ya no estará (ha sido reemplazado por el 0) y habrá que
hacer un reemplazamiento en la partición más antigua de este conjunto, que ahora es la 2: el bloque 32 es
reemplazado por el 16. Análogamente, 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.

Análogamente, en los conjuntos 1, 2 y 3 se producirán 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 situación en el tercer ciclo es análoga a lo sucedido en el segundo: se producirán 4 fallos en cinco


grupos, es decir, 20 fallos en total. Lo mismo sucede en los ciclos siguientes.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 31


TEMA 2: Unidad de memoria. Solución de los problemas

Conjunto i Contenido particiones


de Mc (nº bloque j de Mp)
64
0 16
32
48
65
1 17
33
49
66
2 18
34
50
67
3 19
35
51
68
4 20
36
52
·
·
·
15
15 31
47
63
Tabla 1. Contenido de la memoria caché después del primer ciclo de lecturas

Jose Manuel Díaz Tutor de ETC2 (Coslada) 32


TEMA 2: Unidad de memoria. Solución de los problemas

Conjunto i Contenido particiones


de Mc (nº bloque j de Mp)
48
0 64
16
32
49
1 65
17
33
50
2 66
18
34
51
3 67
19
35
4
4 20
36
52
· ·
· ·
· ·
15
15 31
47
63
Tabla 2. Contenido de la memoria caché después del segundo ciclo de lecturas

Cómputo del número total de fallos:


En el primer ciclo de lecturas se producía 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 :
1. Se mueve el bloque completo de Mp a Mc.
2. La CPU lee el dato desde la caché.
Es decir, que el tiempo de gestión 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 gestión del acierto, es el tiempo de acceso a la memoria caché tga=tac

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 = ( N T − 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 33


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.28


DATOS
• CMp=64k palabras =216 palabras
• CMc=1k palabras = 210 palabras
• Memoria caché con función de correspondencia directa
• K= 128 palabras/bloque
• tap=10·t
• tac=1·t

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


Por otro lado la anchura del campo PALABRA que especifica la posición de una palabra en el interior
de un bloque viene dada p=log 2K=log2128= 7 bits.
La anchura del campo BLOQUE que especifica el i bloque de Mc 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 dirección de memoria principal se considera
compuesta de la forma indicada en la figura.

n=16 bits

Bloque
Etiqueta Palabra
de Mc

e= 6 bits b=3 bits p = 7 bits

b) En este apartado se pide calcular el tiempo que tardaría 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 ejecución total será el tiempo de acceso a memoria, que
será el número 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 cuántas veces se accede a la memoria principal basta con contar cuántas instrucciones hay en
cada sección del programa, y tener en cuenta cuántas veces se ejecuta cada una de estas secciones, tal
como se muestra en la Tabla 1.

Sección 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. Cálculo del número total de accesos a memoria principal

El tiempo total de ejecución del programa es por tanto:

ta = NT·tap= 26.336 ·10t = 263.360t.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 34


TEMA 2: Unidad de memoria. Solución 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é, según 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, partición y palabra. Estos campos se obtienen haciendo grupos
de 6, 3 y 7 bits, respectivamente, con la representación en binario puro de la dirección. La representación
binaria se ha obtenido, a su vez, fácilmente a partir de la representación hexadecimal.

Formato dirección memoria principal


Dirección Etiqueta Bloque i de Mc Palabra
(6 bits) (3 bits) (7 bits)
17 000000 000 0010001
22 000000 000 0010110
23 000000 000 0010111
164 000000 001 0100100
165 000000 001 0100101
239 000000 001 1101111
240 000000 001 1110000
1200 000001 001 0110000
1201 000001 001 0110001
1500 000001 001 1011100

Tabla 2. Formato de las direcciones de memoria principal

A partir de la Tabla 2 es fácil calcular el número 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 lápiz y papel” y llevar en cuenta cómo se va ocupando la memoria caché.

1) Direcciones 17-22:
Estas direcciones corresponden, según la Tabla 2, a la partición 000 (etiqueta 000000). La caché
inicialmente está vacía, por lo que se produce el primer fallo. Esto hace que se traiga la partición entera
desde la memoria principal.

2) Primera ejecución del bucle exterior:


2.1) Direcciones 23-164:
La dirección 23 corresponde a la partición 000 (etiqueta 000000); la 164, a la partición 001 (etiqueta
000000). La partición 000 ya se encontraba en la caché. En la dirección 128 se produjo el segundo fallo,
por lo que se trajo completa la partición 001 (etiqueta 000000) desde la memoria principal.
2.2) Direcciones 165-239:
Estas direcciones corresponden a la partición 001 (etiqueta 000000), que ya se encuentra en la caché. El
bucle interior se ejecuta 20 veces sin que se produzca ningún fallo.
2.3) Direcciones 240-1200:
Estas direcciones abarcan desde la partición 001 (etiqueta 000000) hasta la partición 001 (etiqueta
000001).Se han producido 8 fallos, que corresponden desde la partición 010 (etiqueta 000000) hasta la
partición 111. (etiqueta 000000), y las particiones 000 y 001 (etiqueta 000001). Obsérvese que estas dos
últimas particiones han reemplazado a las particiones 000 y 001 (etiqueta 000000).

Con esto finaliza la primera ejecución 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.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 35


TEMA 2: Unidad de memoria. Solución de los problemas

Bloque i Etiqueta
de Mc
0 000001
1 000001
2 000000
3 000000
4 000000
5 000000
6 000000
7 000000

Tabla 3. Estado de la memoria caché al finalizar la primera ejecución del bucle exterior

3) Segunda a décima ejecución 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
sustituídas 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 ejecución del bucle ha terminado con cuatro fallos y el contenido de la caché es el mismo que
había al comenzar, es decir, el mostrado en la Tabla 3.

Cada subsiguiente ejecución del bloque exterior producirá otros cuatro fallos y dejará la caché con el
mismo contenido que había al comenzar. En total, en las nueve ejecuciones se producirán 9·4 = 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.

Cómputo del número total de fallos:


El número 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 número total de accesos NT realizan a la memoria caché, que es igual al número total de
instrucciones que se ejecutan en el programa: 26.336. Es decir N T=26336

En caso de fallo se especifica que las acciones que tienen lugar son :
1. Se mueve el bloque completo de Mp a Mc.
2. La CPU lee el dato desde la caché.
Es decir, que el tiempo de gestión de fallos tgf es:

t gf = K ·t ap + t ac = K ⋅10 ⋅ τ + τ = (10 ⋅ K + 1) τ

Por otro lado el tiempo de gestión del acierto, es el tiempo de acceso a la memoria caché tga=tac= τ

Luego el tiempo total que se emplea es:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 36


TEMA 2: Unidad de memoria. Solución de los problemas

t a = N A ⋅ τ + N F ⋅ (10 ⋅ K + 1) τ

Como NA=NT - NF, entonces:

t a = ( N T − N F ) ⋅ τ + N F ⋅ (10 ⋅ K + 1) τ = ( N T + 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 razón entre los tiempos de acceso ta con caché y sin caché(ta apartado (b):

N A N T − N F 26336 − 48
h= = = = 99.8%
NT NT 26336

ta (M c + M p ) 87776·τ
= = 33.3%
t a (M p ) 263360·τ

Obsérvese que a pesar de la alta tasa de acierto y de que la caché es 10 veces más rápida que la memoria
principal la velocidad sólo 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
• Número total de accesos NT=220
• Número de fallos NF=217
• Tasa de fallos?

La definición de tasa de fallos es:

N F 217 1 1
Tasa de fallos = = 20 = 3 = = 0.125
NT 2 2 8

Luego la Tasa de fallos es 12.5 %.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 37


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.30


DATOS
• Procesador con 12 líneas de dirección A 11A10....A0
• Para construir su unidad de memoria se dispone de módulos de 2K =(2 11) palabras
• La línea A1 se utilizan para la selección de cada módulo

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por
cada línea. Por otro lado puesto que se tienen una única línea A1 para seleccionar módulos de memoria de
2K, el número total de módulos para implementar el mapa de memoria es 2 módulos. En la siguiente
tabla se muestra el módulo de memoria al que se hace referencia en función del valor de A1.

A1 Módulo de memoria
0 Módulo 0
1 Módulo 1

Módulo 0
Así las direcciones que hacen referencia al primer módulo de memoria (módulo 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

Módulo 1
Las direcciones que hacen referencia al segundo módulo de memoria (módulo nº 1) son:
XXXX XXXX XX1X
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 análisis realizado las afirmaciones son:


A) FALSA Ya que C89 se encuentra en el módulo 0 y C8A en el módulo 1.
B) VERDADERA. Ya que C89 se encuentra en el módulo 0 y C8A en el módulo 1.
C) FALSA. La línea de selección es A1.
D) FALSA. La afirmación B es verdadera.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 38


TEMA 2: Unidad de memoria. Solución 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 más
recientemente.
• La CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la dirección 0 a la
2300.
• tap=7·tac

A) Cuando se utiliza correspondencia totalmente asociativa la dirección de memoria principal se


descompone en dos campos: etiqueta y palabra. La anchura de una dirección de memoria principal es
n=log2CMp=log2216=16 bits. Por otro lado los bits necesarios para codificar la posición de una palabra
en un bloque es p=log2K=log228=8 bits. Por lo tanto los bits del campo etiqueta son
e=n-p=16-8=8 bits. Es decir el formato de una dirección 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 número total de accesos que realiza la CPU a la
memoria principal en la ejecución 5 veces de ese bucle de direcciones es NT= 5·2301=11505 accesos.
El tiempo de acceso medio a la memoria principal es tap=7·tac. Luego el tiempo que se tardaría en
realizar estos NT accesos es:

tiempo = NT · 7 ·tac = 11505 · 7 · tac= 80535 tac seg


C) El número de bloques de la memoria caché es:

C Mc 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 número de bloques de la memoria principal es:

C Mp 216
M= = 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 Mc tiene sólo ocho en la
ejecución de cada ciclo habrá que realizar un único reemplazamiento.

En la siguiente Tabla se muestra los rangos de direcciones de Mp correspondientes a los 9 primeros


bloques, los que intervienen en el problema, con las etiquetas que tendrían al ser cargados en memoria
caché. En el apartado A) se vio que los 8 bits más significativos se la dirección se corresponden con el

Jose Manuel Díaz Tutor de ETC2 (Coslada) 39


TEMA 2: Unidad de memoria. Solución de los problemas

campo etiqueta, esto equivale a decir que los 2 dígitos más significativos en hexadecimal son la
etiqueta.

Rango de direcciones (Decimal) Rango de direcciones (Hexadecimal) Etiqueta en la Mc


0 - 255 0000 - 00FF 00
256 - 511 0100 - 01FF 01
512 - 767 0200 - 02FF 02
768 - 1023 0300 - 03FF 03
1024 - 1279 0400 - 04FF 04
1280 - 1535 0500 - 05FF 05
1536 - 1791 0600 - 06FF 06
1792 - 2027 0700 - 07FF 07
2048 - 2303 0800 - 08FF 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 ejecución del ciclo


La caché se va llenando con bloques de memoria principal que son copiados cuando se produce la
primera referencia a una dirección del bloque. Por ejemplo, cuando se referencia la dirección 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 técnica de correspondencia totalmente asociativa, el bloque se
mueve a cualquiera de las particiones vacías de la caché, en el caso del ejemplo anterior a la
partición 6.

El problema se plantea cuando la memoria ya está llena y se referencia la dirección 2048,


perteneciente al bloque con etiqueta 08. La técnica de reemplazamiento propuesta en el problema es:
“reemplazar el bloque que se haya utilizado más recientemente”. En este caso, es el bloque
almacenado en la partición 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 ejecución del ciclo


En esta segunda ejecución del ciclo se producen aciertos hasta referenciar la primera dirección del
bloque 07, sustituido en el ciclo anterior. Utilizando la técnica 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 sustitución en cada uno de ellos.

Luego la tabla que nos piden es la siguiente:

Bloque de Mc 1ª vez 2ª vez 3ª vez 4ª vez 5ª vez


i=0 00 00 00 00 00
i=1 01 01 01 01 01
i=2 02 02 02 02 02
i=3 03 03 03 03 04
i=4 04 04 04 05 05
i=5 05 05 06 06 06
i=6 06 07 07 07 07
i=7 08 08 08 08 08

Jose Manuel Díaz Tutor de ETC2 (Coslada) 40


TEMA 2: Unidad de memoria. Solución 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 ejecución del ciclo la primera vez sigue un patrón distinto a la ejecución del ciclo las 4 veces
siguientes. Estudiando por separado ambos casos:

• Primera ejecución del ciclo. Se producen un fallo en cada uno de los nueve bloques de los consta el
programa, produciéndose una sustitución del bloque 07 cuando se accede al bloque 08, tal y como se
ha mencionado en el apartado anterior.
• Segunda ejecución del ciclo y sucesivas. Se produce un único fallo en cada ciclo.

El número 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 Mp a Mc.
2. La CPU lee el dato desde la caché.
Es decir, que el tiempo de gestión 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 gestión del acierto, es el tiempo de acceso a la memoria caché tga=tac

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

SOLUCION PROBLEMA 2.32


DATOS
• Número total de accesos NT=220
• Número de fallos NF=217

La definición de tasa de fallos es:

NF
Tasa de fallos = (1 − h) =
NT
Despejando la tasa de aciertos h:
NF 217
h = 1− = 1 − 20 = 1 − 0.125 = 0.875
NT 2

Luego la tasa de aciertos h= 87.5 %.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 41


TEMA 2: Unidad de memoria. Solución 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
K=64 palabras/ bloque (26)
r= 4 bloques/conjunto
• Inicialmente la memoria caché está llena con la ejecución de un programa Prog1
• Se carga en memoria principal un nuevo programa Prog2
• Prog2 efectúa la siguiente secuencia de referencias en la ejecución de su código :
Lee secuencialmente las direcciones 128,129,130,....., 143
Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133
Finalmente lee secuencialmente las direcciones 134,135,....,168

El formato de dirección para una memoria caché con correspondencia asociativa por conjuntos es, el
siguiente:

n bits

Conjunto
Etiqueta Palabra
de Mc

e bits c bits p bits

Del dato de la capacidad de la memoria principal obtenemos el número de bits n que tienen las
direcciones. Puesto que 8192 Kpalabras= 8·1024· Kpalabras = 23 · 210· 210 palabras = 223 palabras = 2n.
Con lo que n=23 bits.

El número de bits que codifican a las palabras que tiene un bloque es p=log2K=log264= 6 bits

Por otro lado, el número de bloques C en M C, es:

C Mc 211
C= = 6 = 2 5 bloques
K 2

El número total de conjuntos q viene dado por:

C 25 25
q= = = 2 = 2 3 conjuntos
r 4 2
Con lo que el número de bits que codifican a los conjuntos de la memoria caché es c=log2q=log223= 3
bits.

Por lo tanto el número de bits que definen la etiqueta e=n-(c+p)=23-(3+6)=14 bits y el formato de
dirección es el siguiente:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 42


TEMA 2: Unidad de memoria. Solución de los problemas

23 bits

Conjunto
Etiqueta Palabra
de Mc

14 bits 3 bits 6 bits

La tasa de acierto h, se define como:

Numero de aciertos N
h= = A
Numero total de accesos N T

Del enunciado se puede calcular el número 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 → 20·3= 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 número de aciertos.

Para su cálculo hay que tener en cuenta, que cuando se carga en memoria principal Prog2, en la memoria
caché no hay ninguna copia del código de este nuevo programa por lo que primera referencia a su código
va a producir necesariamente un fallo en la memoria caché.

En la función de correspondencia asociativa por conjuntos, cada bloque j de palabras de memoria


principal tiene asignado un conjunto i de memoria caché mediante la relación:

i = j mod ulo q

De acuerdo a esta relación y sabido que el número 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 Mp.

• El bloque j=0 de Mp (direcciones 0 a 63) → Conjunto i=0 de MC


• El bloque j=1 de Mp (direcciones 64 a 127) → Conjunto i=1 de MC
• El bloque j=2 de Mp (direcciones 128 a 191) → Conjunto i=2 de MC

El programa Prog2 utiliza las direcciones (128 a 168) que se encuentran exclusivamente dentro del
bloque j=2 de Mp, por lo tanto sólo se producirá 1 Fallo, cuando se lee la primera dirección del mismo, la
128, cargándose entonces el bloque j=2 de Mp en el conjunto i=2 de Mc. Las restantes accesos a Mc
producirán aciertos.

Es decir, el número de aciertos es NA=NT-NF, siendo NF el número de fallos NA=111-1=110 aciertos.

Luego la tasa de acierto es:

110
h= = 0.99
111

Es decir 99%

Jose Manuel Díaz Tutor de ETC2 (Coslada) 43


TEMA 2: Unidad de memoria. Solución 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
máscara dados para verificar si producen el registro de Marca especificado.
1) Máscara 1

0 1 0 1 1 1 0 0 ARGUMENTO
0 1 0 0 1 0 0 1 MASCARA

0 1 1 0 1 1 1 1 0 0
1 1 1 0 1 1 0 1 0 1
ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA
1 1 0 1 0 0 1 1 0 0
1 1 1 0 1 1 0 0 0 1

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) Máscara 2

0 1 0 1 1 1 0 0 ARGUMENTO
0 1 0 0 0 0 0 0 MASCARA

0 1 1 0 1 1 1 1 0 0
1 1 1 0 1 1 0 1 0 1
ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA
1 1 0 1 0 0 1 1 0 0
1 1 1 0 1 1 0 0 0 1

La mascara 2 si genera este registro de marca.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 44


TEMA 2: Unidad de memoria. Solución de los problemas

3) Máscara 3
0 1 0 1 1 1 0 0 ARGUMENTO
0 0 0 1 1 0 0 0 MASCARA

0 1 1 0 1 1 1 1 0 0
1 1 1 0 1 1 0 1 0 1
ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA
1 1 0 1 0 0 1 1 0 0
1 1 1 0 1 1 0 0 0 1
La mascara 3 si genera este registro de marca.

4) Máscara 4

0 1 0 1 1 1 0 0 ARGUMENTO
0 0 0 1 1 0 0 1 MASCARA

0 1 1 0 1 1 1 1 0 0
1 1 1 0 1 1 0 1 0 1
ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA
1 1 0 1 0 0 1 1 0 0
1 1 1 0 1 1 0 0 0 1
La mascara 4 si genera este registro de marca.

5) Máscara 5

0 1 0 1 1 1 0 0 ARGUMENTO
0 0 0 0 1 0 0 1 MASCARA

0 1 1 0 1 1 1 1 0 0
1 1 1 0 1 1 0 1 0 1
ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA
1 1 0 1 0 0 1 1 0 0
1 1 1 0 1 1 0 0 0 1
La mascara 5 si genera este registro de marca.

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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 45


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.35


DATOS
• CMp = 220 palabras
• CMc = 1024 (210) palabras
• K=64 (26) palabras/bloque
• Función de correspondencia directa

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, el número de bloques M de la Mp.

C Mp 2 20
M = = = 214 bloques
K 26

Es decir, que los log2M= 14 bits más significativos de una dirección de memoria hacen referencia al
bloque j de Mp

Además el tamaño de una dirección viene dado por n=log2CMp= log2220= 20 bits

Puesto que la caché emplea correspondencia directa. La dirección desde el punto de vista de la Mc
tendría los siguientes campos:

n=20 bits

Bloque nº i
Etiqueta Palabra
de Mc

e=(n-b-p) b=log2C p=log2K


e=10 bits b= 4 bits p= 6 bits

Afirmación I:
La dirección 1D45F se expresa en binario de la siguiente forma: 0001 1101 0100 0101 1111

Desde el punto de vista de la Mc se descompone en los siguientes campos:

Etiqueta Bloque nº i de MC Palabra


0001110101 0001 011111

Luego esta dirección hace referencia al bloque i=00012=110 de MC. Luego la afirmación es FALSA. No
hace falta analizar la dirección 02075.

Afirmación II:
La dirección 2A23B se expresa en binario de la siguiente forma: 0010 1010 0010 0011 1011

Desde el punto de vista de la Mc se descompone en los siguientes campos:

Etiqueta Bloque nº i de MC Palabra


0010101000 1000 111011

Luego esta dirección hace referencia al bloque i=10002=810 de MC. Luego la afirmación es
VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 46


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.36


DATOS
• Memoria RAM de capacidad total CT= de 1024 palabras x 16 bits/palabra.
• Construida con módulos de memoria RAM de capacidad C0= 128 palabras x 8 bits/palabra

El número de líneas del bus de direcciones n se calcula a partir del número de palabras que posee la
memoria RAM construida. Es decir:

n = log 2 1024 = log 2 210 = 10 líneas

Puesto que el número de palabras que posee el modulo RAM unidad es de 128, para conseguir 1024
palabras de capacidad total se necesitarán:

1024 210
= 7 = 2 3 = 8 módulos
128 2

Por otra parte, el número de líneas del bus de direcciones que se utilizarán para seleccionar entre estos
ocho módulos nS es:

nS = log 2 2 3 = 3 lineas

Luego, el número de líneas del bus de direcciones comunes nC a todos los módulos serán:

nC = n − nS = 10 − 3 = 7 líneas

Hasta aquí se han indicado todos los cálculos necesarios para resolver el problema. De forma adicional,
vamos a calcular el número de módulos de memoria RAM de capacidad C0 necesarios para construir una
memoria RAM de capacidad CT. Pues bien, obsérvese que CT se descompone de la siguiente forma:

CT = 210 pal x 2 4 bits / pal = 2 3 ·2 7 pal x 2·2 3 bits / pal = (2 3 ·2)·2 7 pal x ·2 3 bits / pal
CT = 16·(2 7 pal x ·2 3 bits / pal ) = 16·C0

Es decir se necesita un total de 16 módulos.

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:

1 1 1 10 9 10 7
fa = = = −9
= = ·seg −1 = 5·10 6 ·seg −1
t c 200 nseg 200·10 seg 200·seg 2

Luego la frecuencia de acceso es fa=5·106 seg-1.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 47


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.38


DATOS
• Sistema jerárquico 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 MC.
• Se lee el dato desde MC.
• 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 gestión 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 K·tp.
2) Se lee el dato desde la caché, lo que supone un tiempo de tca.
3) Además se emplea un tiempo extra textra= 20 µseg debido a la política de ubicación 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 sólo se utilizara la memoria principal el tiempo de acceso medio sería:

t am ' = t p = 200 µ seg

Se observa que:

t am '
= 4.7
t am

Luego las afirmaciones son:

Afirmación I: VERDADERA.

Afirmación II: VERDADERA

Jose Manuel Díaz Tutor de ETC2 (Coslada) 48


TEMA 2: Unidad de memoria. Solución 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
• Función de correspondencia directa.
• En un determinado instante la dirección 6B59, de la memoria principal está en la memoria caché

De los datos del enunciado se pueden calcular el número de bloques C de la M C.

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

Por otra parte, el número de bloques M de la Mp.

C Mp 216
M = = =213 = 8 Kbloques.
K 23

Es decir, que los log2M= 13 bits más significativos de una dirección de memoria hacen referencia al
bloque j de Mp

Además el tamaño de una dirección viene dado por n=log2CMp= log2216= 16 bits

Puesto que la caché emplea correspondencia directa. La dirección desde el punto de vista de la Mc
tendría los siguientes campos:

n=16 bits

Bloque nº i
Etiqueta Palabra
de Mc

e=(n-b-p) b=log2C p=log2K


e=6 bits b= 7 bits p= 3 bits

AFIRMACION I:
Para comprobar la validez de esta afirmación hay que pasar la dirección 6B59 a código binario.

6B5916= 0110 1011 0101 1001

La dirección desde el punto de vista de la Mc tendría los siguientes campos:

011010 1101011 001

Luego el bloque i de MC al que hace referencia es: i=11010112=10710. Luego la afirmación es


VERDADERA.

AFIRMACION II:
Para comprobar la validez de esta afirmación hay que pasar la dirección 675E a código binario.

675E16= 0110 0111 0101 1111

La dirección desde el punto de vista de la Mc tendría los siguientes campos:


011001 1101011 111

La etiqueta de esta dirección es 011001, distinta de la etiqueta 011010 de la dirección 6B59 que si que
estaba en la Mc. Luego 675E no está en la MC. La afirmación es VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 49


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.40


DATOS
• Sistema jerárquico de memoria con memoria caché de dos niveles.
• La caché de nivel 1, es la más cercana a la CPU
• La caché de nivel 2, es la más cercana a la memoria principal.

AFIRMACION I:

En un sistema jerárquico de memoria con dos niveles de memoria caché, la caché 1 (MC1), más cercana a
la CPU, posee una capacidad inferior a la caché de nivel 2 (MC2), más cercana a la memoria principal. En
consecuencia nunca la MC1 puede contener una copia de todos los bloques de la MC2, sólo de algunos de
ellos. Luego, la afirmación es FALSA.

AFIRMACION II:

Con la política de post-escritura, las modificaciones que se realicen en la caché 1 no se reflejarán


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 afirmación es FALSA.

SOLUCION PROBLEMA 2.41


DATOS
• 16 líneas de dirección A15-A0.
• Memoria compuesta de módulos ROM y módulos RAM.
• La ROM consta de un único módulo y ocupa las direcciones más bajas de memoria, comenzando por
la dirección 0.
• La RAM con una capacidad de CRAM=48Kbytes ocupa las direcciones restantes.

Puesto que el sistema consta de n=16 líneas de dirección, 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

C ROM = CT − C RAM = 64 Kbytes − 48Kbytes = 16 Kbytes

Luego se tiene un sistema de CT=64 Kbytes que se distribuye de la siguiente forma:


Un único módulo de ROM de capacidad CROM=16 Kbytes, que contiene las direcciones bajas
de memoria, comenzando desde la 0.
Varios módulos de memoria RAM (en el enunciado no concreta el número, suponemos como
hipótesis 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 módulos de memoria RAM y uno de ROM, se
necesitarán dos bits para seleccionar uno de los cuatro módulos de memoria. Esos bits de selección deben
ser A15A14 ya que la ROM ocupa las direcciones más bajas de memoria, comenzando por la dirección 0.
Es decir, las direcciones que acceden a la ROM son de la forma:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 50


TEMA 2: Unidad de memoria. Solución de los problemas

00XX XXXX XXXX XXXX

Se tiene por tanto la siguiente tabla de selección de módulos:

A15A14 Función lógica de selección Modulo seleccionado


00 ROM
CS ROM = A15 A14
01 RAM nº 0
CS RAM 0 = A15 A14
10 RAM nº 1
CS RAM 1 = A15 A14
11 CS RAM 2 = A15 A14 RAM nº 2

De acuerdo con el razonamiento realizado, se tiene:

Afirmación I: VERDADERA.
Afirmación II: FALSA.

Nota: El enunciado de este problema es bastante puñetero ya que el alumno debe de suponer dos
hipótesis, nada evidentes, para poder resolverlo: 1) Cada palabra de memoria ocupa un byte. 2) Hay dos o
tres módulos de memoria RAM.

SOLUCION PROBLEMA 2.42


DATOS
• Memoria de acceso NO aleatorio.
• fa=2·106 bits/seg..
• ta=2mseg
• N=103 bytes

En una memoria de acceso NO aleatorio la frecuencia de acceso fa o velocidad de transferencia vT se


calcula de la siguiente forma:

N
vT = f a =
tn − ta

Despejando tn:

N
tn = + ta
vT
Sustituyendo valores:

10 3 (bytes)·2 3 (bits / byte)


tn = 6
+ 2·10 −3 ( seg ) = 4·10 −3 + 2·10 −3 = 6·10 −3 seg = 6 mseg
2·10 (bits / seg )

Luego el tiempo medio en leer o escribir 103 bytes es tn=6 mseg.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 51


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.43


DATOS
• Sistema jerárquico de memoria.
• CMc:=256 palabras, K= 8 pal/ bloque, tac=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 MC.
• Se lee el dato desde MC.

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 gestión del acierto. Normalmente se cumple que:

t ga = tca = 20 nseg

De acuerdo con el enunciado el tiempo de gestión 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 K·tap.
2) Se lee el dato desde la caché, lo que supone un tiempo de tac.

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 solución es tam=180 nseg.

SOLUCION PROBLEMA 2.44


DATOS
• Número total de accesos NT=1020
• Número de fallos NF=1018

La definición de tasa de fallos es:

NF
Tasa de fallos = (1 − h) =
NT
Despejando la tasa de aciertos h:
NF 1018 1
h = 1− = 1 − 20 = 1 − 2 = 1 − 0.01 = 0.99
NT 10 10

Luego la tasa de aciertos h= 99 %.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 52


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.45


DATOS
• Función 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 número de bits c=7 bits del campo CONJUNTO con el que se codifica el número
de conjunto de la MC, es posible obtener el número de conjuntos total q de la M C:

q = 2c = 2 7 = 128 conjuntos

El número 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 número de bits p=5 utilizados para el campo PALABRA con el que se codifica la
posición de una palabra dentro de un bloque, es posible obtener el número de palabras K que tiene un
bloque:

K = 2 p = 2 5 = 32 ( palabras / bloque)

Finalmente la capacidad CMc de la memoria caché viene dada por:

C Mc = K ·C x L = 2 5 ( palabras / bloque)·28 (bloques ) x 1(byte / palabra )


C Mc = 213 ( palabras ) x 1(byte / palabra ) = 8 Kbytes

Luego CMc=8 Kbytes

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 jerárquico de memoria.

Afirmación A: Es falsa ya que aumentar el número de registros de la CPU no influye en la velocidad de


la unidad de memoria principal, además es muy costoso.

Afirmación 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. Además a un coste razonable.

Afirmación C: Es falsa, aumentar la capacidad de los discos magnéticos no influye para nada en la
velocidad de la unidad de memoria.

Afirmación D: Es falsa, la afirmación B es verdadera.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 53


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.47


DATOS
• Memoria asociativa de n palabras y 4 bits/palabra.
• El registro de marca debe estar a 1 si la celda de memoria asociativa contiene un número
PAR, sino estará a 0.

De acuerdo con el enunciado se tendría un sistema de memoria asociativa como el que se ilustra en la
Figura:

Argumento A 3 A 2 A1 A0

Máscara K3 K 2 K1 K0
Marca
M0

Matriz de
memoria Mi
X3 X2 X 1 X0

Mn-1

Para que el bit Mi del registro de marca valga 1 la palabra i-esima X3 X2 X1 X0 de la matriz de memoria
debe ser un número PAR, eso implica que el bit menos significativo X0 = 0. Por lo tanto el registro
argumento con el que se va a comparar debe ser de la forma

A= [A3 A2 A1 0]

Donde Aj j=1,2,3 pueden valer 0 o 1.

Y el registro de máscara K sólo debe tener activo el bit menos significativo, es decir, la comparación
entre A y una palabra de la matriz de celdas se debe restringir al bit menos significativo.

K= [0 0 0 1]

De las cuatro posibles respuestas la única que cumple estos dos requisitos para A y para K es la respuesta
C.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 54


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.48


DATOS
• Disco magnético de 1024 pistas, numeradas del 0 al 1023.
• La cola de peticiones de acceso es: [850, 25, 308, 400, 632, 168, 720, 302].
• Se usa planificación LOOK.
• La cabeza se halla en la pista 500.

La planificación LOOK se caracteriza por ir recorriendo todas las pistas en una dirección y atendiendo
todas las peticiones que se encuentre en el camino, hasta que alcanza la última pista o no hay más
peticiones en esa dirección. En este punto se invierte el sentido del recorrido y la búsqueda prosigue de la
misma forma.

En el enunciado se indica que la cabeza se halla en la pista 500 pero no se dice el sentido del
desplazamiento, luego se pueden dar dos posibles soluciones:

Caso A: Se halla en la pista 500 y se desplaza hacia las pistas cuyo número de pista va aumentando.

1) De la cola hay que fijarse en aquellas peticiones cuyo número de pista es mayor que 500, este
el caso de [850, 632 ,720].
2) Se colocan en orden creciente las peticiones del paso 1: [632, 720, 850].
3) Ahora la cabeza lectora invierte el sentido de desplazamiento e iría hacia las pistas cuyo
número de pista va decreciendo. Luego las peticiones pendientes son [25, 308, 400, 168,
302].
4) Ordenando en orden decreciente las peticiones del paso 3: [400, 308, 302, 168, 25].
5) Luego el orden de atención de las peticiones es la unión del resultado del paso 2 y del paso 4:

[632, 720, 850, 400, 308, 302, 168, 25]

Caso B: Se halla en la pista 500 y se desplaza hacia las pistas cuyo número de pista va decreciendo.

1) De la cola hay que fijarse en aquellas peticiones cuyo número de pista es menor que 500, este
el caso de [25, 308, 400, 168, 302].
2) Se colocan en orden decreciente las peticiones del paso 1: [400, 308, 302, 168, 25].
3) Ahora la cabeza lectora invierte el sentido de desplazamiento e iría hacia las pistas cuyo
número de pista va aumentando. Luego las peticiones pendientes son [850, 632, 720].
4) Ordenando en orden creciente las peticiones del paso 3: [632, 720, 850].
5) Luego el orden de atención de las peticiones es la unión del resultado del paso 2 y del paso 4:

[400, 308, 302, 168, 25, 632, 720, 850]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 55


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.49


DATOS
• Disco magnético de 256 pistas, numeradas del 0 al 255.
• La cola de peticiones de acceso es: [80,130,151,31,20,200].
• Se usa planificación LOOK.
• La cabeza se halla en la pista 150 y en dirección de las pistas crecientes.

El razonamiento que hay que seguir es el mismo que en el problema anterior con la diferencia de que
ahora si que indica el sentido del desplazamiento inicial.

Por el enunciado se sabe que la cabeza se halla en la pista 150 y se está moviendo en la dirección de las
pistas crecientes. Para resolver el problema hay que seguir los siguientes pasos:

1) De la cola hay que fijarse en aquellas peticiones cuyo número de pista es mayor que 150, este
el caso de [151, 200].
2) Se colocan en orden creciente las peticiones del paso 1: [151, 200].
3) Ahora la cabeza lectora invierte el sentido de desplazamiento e iría hacia las pistas cuyo
número de pista va decreciendo. Luego las peticiones pendientes son [80, 130, 31, 20].
4) Se ordenan en orden decreciente las peticiones del paso 3: [130, 80, 31, 20].
5) Luego el orden de atención de las peticiones es la unión del resultado del paso 2 y del paso 4:

[151, 200, 130, 80, 31, 20]

SOLUCION PROBLEMA 2.50


DATOS
• Memoria caché con C=32 bloques.
• K=256 pal/bloque.
• Función de correspondencia totalmente asociativa.
• n= 24 bits.
• En que bloque i de Mc se ubicará la dirección de memoria 001FFF

Para resolver este ejercicio no hace falta hacer ningún cálculo, únicamente hay que tener muy claro el
funcionamiento de una memoria caché que utiliza función de correspondencia totalmente asociativa. De
acuerdo con el libro de texto (página 84) cuando se utiliza este tipo de función de correspondencia se
permite que un bloque j de la memoria principal se cargue en cualquier bloque i de la memoria caché.
Luego la respuesta correcta es la C.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 56


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.51


DATOS
• Memoria principal formada por módulos RAM de C0=64 Kpalabras x 16 bits/palabra

Vamos a analizar si las afirmaciones que se proponen son verdaderas o falsas.

La capacidad C0 se puede expresar de forma equivalente como C0=26 Kpalabras x 24 bits/palabra

AFIRMACION I:
Se desea una memoria de capacidad total CT= 28 Kpalabras x 25 bits/palabras.

Forma 1 de verificar la afirmación: Se parte de CT y se descompone en N·C0


Se pueden hacer las siguientes manipulaciones sobre CT

CT=·22·26 Kpalabras x 2·24 bits/palabras=23·[26 Kpalabras x 24 bits/palabras]=8·C o

Es decir, se necesitan 8 módulos de capacidad C0 para proporcionar la memoria CT pedida. Luego la


afirmación es VERDADERA

Forma 2 de verificar la afirmación: Demostrar que 8·C0 ≥ CT (donde aquí el signo ≥ se debe considerar
tanto al número de palabras de la memoria como al número de bits que posee cada palabra) . [Se recomienda
al alumno/a que pruebe a verificar la afirmación de esta forma]

AFIRMACION II:
Se desea una memoria de capacidad total CT= 27 Kpalabras x 8 bits/palabras.

Forma 2 de verificar la afirmación: Demostrar que 2·C0 ≥ CT (donde aquí el signo ≥ se debe considerar
tanto al número de palabras de la memoria como al número de bits que posee cada palabra). Se tiene que:

2·C0=·2·[28 Kpalabras x 26 bits/palabras]

Con 2C0 Se podría formar dos posibles configuraciones:

Configuración 1: CT1=·29 Kpalabras x 26 bits/palabras


Configuración 2: CT2=·28 Kpalabras x 27 bits/palabras

Se verifican que:

CT1≥CT
CT2≥CT

Luego la afirmación es VERDADERA.

Comentario 1: Puesto que en la afirmación no se indica lo contrario, esta afirmación se consideraría


verdadera con que una de las dos configuraciones CT1 o CT2 hubiese sido mayor o igual a CT.
Recuérdese que el signo ≥ se debe considerar tanto al número de palabras de la memoria como al
número de bits que posee cada palabra.

Comentario 2: En ambas configuraciones se esta desaprovechando memoria, ya que la memoria


necesaria CT es menor que la disponible CT1 o CT2..

SOLUCION PROBLEMA 2.52


La solución a este problema se encuentra en el archivo probT2_52.pdf

Jose Manuel Díaz Tutor de ETC2 (Coslada) 57


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.53


DATOS
• Disco formateado con entrelazado doble.
• S=16 sectores de CS= 4 Kbytes.
• Velocidad de rotación de f=6000 rpm=100 (rev/s)
• La cabeza lectora se encuentra en la pista correcta y sobre el punto de comienzo del sector 0.

El tiempo tp que se tarda en leer todos los sectores de una pista es la suma de tres contribuciones:

t p = tb + t r + tt

donde:
• tb es el tiempo medio de búsqueda de la pista. En este caso puesto que la cabeza lectora está
posicionada ya en la pista adecuada tb=0 s.
• tr es el tiempo de latencia rotacional que en este caso vale tr=0 s, puesto que la cabeza lectora
está posicionada al comienzo del sector adecuado.
• tt es el tiempo de transferencia de todos los sectores de una pista. Al existir entrelazado
doble para leer la pista se comienza leyendo el sector 0 y después, para el resto de sectores,
primero la cabeza pasa por encima de dos sectores que ignora y lee el tercero. Por tanto, la
cabeza lectora pasa por un total de

N S = 1 + ( f e + 1)·( S − 1) = 1 + ( 2 + 1)·(16 − 1) = 46 sec tores

Por lo tanto
NS 46
tt = = = 0.02875 s = 28.75 ms
S · f 16·100
Luego:

t p = tb + t r + tt = 0 + 0 + 28.75 = 28.75 ms

Jose Manuel Díaz Tutor de ETC2 (Coslada) 58


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.54


DATOS
• CMp= 232 palabras x 8 bits/palabra
• Memoria caché con correspondencia directa
• CMc= 64 Kpalabras.
• K= 4 palabras/bloque
• Estrategia de escritura write-back

La estructura típica de una memoria caché es la indicada en la figura

Para resolver este problema en primer lugar hay que obtener el formato de una dirección de memoria
desde el punto de vista de la memoria caché, como se utiliza función de correspondencia directa, el
formato es:

n bits

Bloque nº i
Etiqueta Palabra
de Mc

e bits b bits p bits

Del dato CMp=232 pal se obtiene n:

n = log 2 2 32 = 32 bits

Del dato K se obtiene p:

p = log 2 K = log 2 4 = 2 bits

Por otro lado el número de bloques C de Mc es:

C Mc 64 Kpal 216 pal


C= = = 2 = 214 bloques
K 4 pal / bloque 2 pal / bloque

con lo b es:

b = log 2 C = log 2 214 = 14 bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 59


TEMA 2: Unidad de memoria. Solución de los problemas

Y e es:

e = n − (b + p) = 32 − (14 + 2) = 16 bits

En segundo lugar, puesto que se usa estrategia de escritura write back en el directorio se necesita un bits
de estado por bloque para indicar si dicho bloque se debe escribir en la memoria principal cuando sea
reeemplazado.

Por lo tanto la estructura de la memoria caché es:

Directorio
1 bit 16 bits 8 bits 8 bits 8 bits 8 bits
Estado Etiqueta Palabra Palabra Palabra Palabra
.1 .
.2 .
.: .
:
214

Luego para cada uno de los 2 14 bloques, se almacenan 49 bits, que se distribuyen de la siguiente forma:
• 1 del bit de estado.
• 16 bits de etiqueta
• 32 bits para almacenar las 4 palabras de un bloque (8 bits/palabra).

En conclusión el número mínimo de bits que se requiere para diseñar esta memoria caché es: 214 x 49

Jose Manuel Díaz Tutor de ETC2 (Coslada) 60


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.55


Este problema es similar al Problema 2.16, por lo que se van a omitir las explicaciones pormenorizadas.

AFIRMACION I:

1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 ArgumentoA
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 Máscara K

0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 Palabra 0 0
1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 Palabra 1 0
ETIQUETA 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 Palabra 2 1 MARCA
1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 Palabra 3 0
0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 Palabra 4 0
1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Palabra 5 1

La afirmación es FALSA ya que también valdría 1 el bit de marca de la palabra 5.

AFIRMACION II:

1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 ArgumentoA
1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 Máscara K

0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 Palabra 0 0
1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 Palabra 1 0
ETIQUETA 1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 Palabra 2 0 MARCA
1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 Palabra 3 0
0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 Palabra 4 0
1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Palabra 5 0

La afirmación es FALSA ya que todos los bits de marca valen 0.

SOLUCION PROBLEMA 2.56


DATOS
• 16 bits de longitud de palabra
• Bus de direcciones de 24 bits (A23...A0)
• CT=2’5 Mpalabras x 16 bits/palabra.
• Módulos RAM disponibles de C0=1 Mpalabra x 1 bits/palabra.
• Direcciones de memoria consecutivas empezando en la 0

Puesto que se conoce la capacidad total CT de la memoria que se desea diseñar y la capacidad de los
módulos disponibles C0 es posible calcular el número de módulos de estas características necesarios para
implementar esta memoria:

CT 2'5 Mpalabras ×16 bits / palabra


N= = = 2.5 × 16 ≈ 3 × 16 = 48 módulos
C0 1 Mpalabras ×1bits / palabra

Es decir, para implementar esta memoria se necesitan tres filas de 16 módulos (de capacidad C0) cada
una. Con este diseño se tiene una capacidad total de 3 Mpalabras, por tanto se tendrá que prohibir el

Jose Manuel Díaz Tutor de ETC2 (Coslada) 61


TEMA 2: Unidad de memoria. Solución de los problemas

acceso a la mitad de las palabras de la última fila de módulos. Para codificar 3 M=3·220≤4·220 palabras se
requieren 22 bits. Una posible utilización de las 24 líneas del bus de direcciones sería:

Líneas A23 y A22 no tienen ningún uso, por lo que se pueden hacer iguales a 0.
Líneas A21 y A20 permiten seleccionar la fila de módulos donde se va a leer la palabra.

(A21=0,A20=0) → Primera línea de módulos.


(A21=0,A20=1) → Segunda línea de módulos.
(A21=1,A20=0) → Tercera línea de módulos.

Líneas A19 y A0 permiten seleccionar una palabra ubicada en una línea de módulos.

Se tiene en consecuencia el siguiente mapa de direcciones:

A23..................................................A 0
0000 0000 0000 0000 0000 0000
1ª Fila
0000 1111 1111 1111 1111 1111
0001 0000 0000 0000 0000 0000
2ª Fila
0001 1111 1111 1111 1111 1111
0010 0000 0000 0000 0000 0000
3ª Fila (uso)
0010 0111 1111 1111 1111 1111
0010 1000 0000 0000 0000 0000
3ª Fila (prohibido)
0010 1111 1111 1111 1111 1111
0011 0000 0000 0000 0000 0000
Resto de mapa de
memoria
1111 1111 1111 1111 1111 1111

En consecuencia las direcciones prohibidas (superiores a 2’5 M) se pueden producir en los siguientes
casos:
Caso 1) Si A23=1

Caso 2) Si A22=1

Caso 3) Si A21=1 y A20=1

Caso 4) Si A21=1 y A19=1

La expresión lógica asociada a las direcciones prohibidas es:

A23 + A22 + A21 · A20 + A21 · A19 = A23 + A22 + A21 ·( A20 + A19 )

Se tiene por tanto que:

AFIRMACION I: Es verdadera, la expresión lógica indicada en la afirmación coincide con la obtenida.

AFIRMACION II: Es falsa, se requieren 48 módulos de RAM no 32.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 62


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.57


DATOS
• Disco magnético con 1024 pistas {0,1,...,1023}
• Cola de peticiones: 2, 35,46,23, 90,102,10, 34
• Planificación LOOK
• Inicialmente la cabeza lectora se encuentra en la pista 29

La planificación LOOK se caracteriza por ir recorriendo todas las pistas en una dirección y atendiendo
todas las peticiones que se encuentre en el camino, hasta que alcanza la última pista o no hay más
peticiones en esa dirección. En este punto se invierte el sentido del recorrido y la búsqueda prosigue de la
misma forma.

En el enunciado se indica que la cabeza se halla en la pista 29 pero no se dice el sentido del
desplazamiento, luego se pueden dar dos posibles soluciones:

Caso A: Se halla en la pista p0=29 y se desplaza hacia las pistas cuyo número de pista va aumentando.

1) De la cola hay que fijarse en aquellas peticiones cuyo número de pista es mayor que 29, este
el caso de [35, 46 ,90, 102, 34].
2) Se colocan en orden creciente las peticiones del paso 1: [34, 35, 46 ,90, 102].
3) Ahora la cabeza lectora invierte el sentido de desplazamiento e iría hacia las pistas cuyo
número de pista va decreciendo. Luego las peticiones pendientes son [2, 23, 10].
4) Ordenando en orden decreciente las peticiones del paso 3: [23, 10, 2].
5) Luego el orden de atención de las peticiones es la unión del resultado del paso 2 y del paso 4:

[34, 35, 46 ,90, 102, 23, 10, 2]

Se puede construir la siguiente tabla

Próxima pista a la que(p1) (p2) (p3) (p4) (p5) (p6) (p7) (p8)
se accede 34 35 46 90 102 23 10 2
Número de pistas que |p1-p0| |p2-p1| |p3-p2| |p4-p3| |p5-p4| |p6-p5| |p7-p6| |p8-p7|
se atraviesan 5 1 11 44 12 79 13 8

Si de denota por N al número de peticiones en la cola., entonces la longitud media de búsqueda se calcula
mediante la siguiente expresión:

∑p k − p k −1
LMB = k =1

N
5 + 1 + 11 + 44 + 12 + 79 + 13 + 8
LMB = = 21.625
8

Caso B: Se halla en la pista p0=29 y se desplaza hacia las pistas cuyo número de pista va decreciendo.

1) De la cola hay que fijarse en aquellas peticiones cuyo número de pista es menor que 29, este
el caso de [23, 10, 2].
2) Se colocan en orden decreciente las peticiones del paso 1: [23, 10, 2].
3) Ahora la cabeza lectora invierte el sentido de desplazamiento e iría hacia las pistas cuyo
número de pista va aumentando. Luego las peticiones pendientes son [35, 46 ,90, 102, 34]..
4) Ordenando en orden creciente las peticiones del paso 3: [34, 35, 46 ,90, 102].
5) Luego el orden de atención de las peticiones es la unión del resultado del paso 2 y del paso 4:

[23, 10, 2, 34, 35, 46 ,90, 102,]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 63


TEMA 2: Unidad de memoria. Solución de los problemas

Se puede construir la siguiente tabla

Próxima pista a la que(p1) (p2) (p3) (p4) (p5) (p6) (p7) (p8)
se accede 23 10 2 34 35 46 90 102
Número de pistas que |p1-p0| |p2-p1| |p3-p2| |p4-p3| |p5-p4| |p6-p5| |p7-p6| |p8-p7|
se atraviesan 6 13 8 32 1 11 44 12

Si de denota por N al número de peticiones en la cola., entonces la longitud media de búsqueda se calcula
mediante la siguiente expresión:

∑p k − p k −1
LMB = k =1

N
6 + 13 + 8 + 32 + 1 + 11 + 44 + 12
LMB = = 15.875
8

Luego ya se posee la información necesaria para analizar la veracidad de las afirmaciones:

Afirmación I: Es FALSA ya que en un caso es LMB=21.625 y en el otro es LMB=15.875.

Afirmación II: Es VERDADERA se corresponde con el resultado expuesto en el caso A

SOLUCION PROBLEMA 2.58


DATOS
• CT=2048 palabras x 8 bits/palabra
• C0= 128 palabras x 8 bits/palabra

Se desea tener una memoria de capacidad total CT= 211 palabras x 8 bits/palabras usando módulos de
capacidad C0=27 palabras x 8 bits/palabra

El número de líneas totales del bus de dirección se obtiene a partir del dato del número de palabras de C T

nº lineas del Bus= log2211=11 líneas

Se pueden hacer las siguientes manipulaciones sobre CT para expresarla en función de C 0:

CT=·24·27 palabras x 8 bits/palabras=2 4·[27 palabras x 8 bits/palabras]=16·C o

Es decir, se necesitan 16 módulos de capacidad C0 para proporcionar la memoria CT pedida. El número


de líneas para seleccionar uno de estos 16 módulos es:

nº líneas del Bus= log216= log224=4 líneas

Por lo tanto de las 11 líneas del bus, 4 líneas se utilizan para seleccionar entre uno de los 16 módulos de
capacidad C0. Las 7 restantes serán comunes a todos los módulos y permiten seleccionar una de las 128
palabras que contiene cada módulo.

En conclusión la respuesta correcta es la A.

SOLUCION PROBLEMA 2.59


La solución a este problema se encuentra en el archivo probT2_59.pdf

Jose Manuel Díaz Tutor de ETC2 (Coslada) 64


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.60


DATOS
• Disco formateado con entrelazado simple fe=1
• S=4 superficies
• NC= 128 cilindros
• S=16 sectores/pista
• CS= 4 Kbytes/sector
• f=6000 rev/min=6000/60=100 rev/s

Puesto que no se dice lo contrario en el enunciado para resolver este problema se va a suponer que la
cabeza lectora se encuentra posicionada en la pista correcta al comienzo del sector 0.

El tiempo tp que se tarda en leer todos los sectores de una pista es la suma de tres contribuciones:

t p = tb + t r + tt
Donde
- tb es el tiempo medio de búsqueda de una pista. Se ha supuesto que la cabeza lectora ya se encuentra
sobre la pista correcta luego tb= 0 ms.

- tr es el tiempo de latencia rotacional o retardo rotacional. Es decir el tiempo medio que tarda el sector en
estar debajo de la cabeza de lectura/escritura. Se ha supuesto que la cabeza se encuentra al comienzo del
sector 0 luego tr= 0 ms.

- tt es el tiempo de transferencia de todos los sectores de una pista. Se calcula mediante la siguiente
expresión

NS
tt =
S· f
Donde NS es el número de sectores por los que pasa la cabeza lectora. Al existir entrelazado simple se
comienza leyendo el sector 0 y después, para el resto de sectores, primero la cabeza pasa por encima de
un sector que ignora y lee el siguiente. Por tanto, la cabeza lectora pasa por un total de

N S = ( f e + 1)·S = (1 + 1)·16 = 32 sec tores

Por lo tanto
NS 32
tt = = = 0.02 s = 20 ms
S · f 16·100

Luego:

t p = tb + t r + tt = 0 + 0 + 20 = 20 ms

La velocidad de transferencia vT será el cociente entre los P bytes que hay en una pista y el tiempo tp que
se tarda en transmitir dichos bytes.

P
vT =
tp

Jose Manuel Díaz Tutor de ETC2 (Coslada) 65


TEMA 2: Unidad de memoria. Solución de los problemas

Con los datos que se dan en el enunciado es posible calcular P:

P = C S ·S = 4 ( Kbytes / sec tor )·16 (sec tor / pista ) = 64 ( Kbytes / pista )

Luego

64( Kbytes / pista )


vt = = 3200 ( Kbytes / s )
0.02 ( s / pista )

SOLUCION PROBLEMA 2.61


DATOS
• C=256 bloques de Mc
• K=16 palabras/bloque
• Función de correspondencia directa.
• n=32 bits

Con los datos del enunciado es posible obtener el formato de una dirección desde el punto de vista de la
memoria caché:

n=32 bits

Bloque
Etiqueta Palabra
de Mc

e=n-(b+p) b=log2C p=log2K


e=20 bits b=8 bits p=4 bits

Si se considera que la dirección viene expresada en hexadecimal puesto que una dirección tiene 20 bits se
requerirían 8 cifras hexadecimales (D7 D6 D5 D4 D3 D2 D1 D0)16, cuyo significado sería el siguiente:

(D7 D6 D5 D4 D3)16 → Etiqueta


(D2 D1)16 → Bloque de Mc
(D0)16 → Palabra

Con estas consideraciones previas se está en disposición de poder analizar las afirmaciones propuestas:

Afirmación I:

La dirección A3271 13 3 16 se ubica en el bloque 1316 de memoria caché


La dirección A3261 13 7 16 se ubica en el bloque 1316 de memoria caché

Luego ambas direcciones se ubicarán en el mismo bloque de memoria caché (aunque no


simultáneamente). La afirmación es VERDADERA.

Afirmación II:

La dirección A3502 12 7 16 se ubica en el bloque 1216 que expresado en binario toma la forma
000100102. Y pasando este número a decimal se obtiene que esta dirección se ubicaría en el bloque
24+21= 1810 de la memoria caché. En conclusión la afirmación es VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 66


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.62


En una operación de escritura sobre una memoria asociativa se selecciona para escribir la primera palabra
que tenga su bit de etiqueta a 0. En este caso la Palabra 1.

SOLUCION PROBLEMA 2.63


DATOS
• Memoria caché (Mc) con función de correspondencia directa
• C=128 bloques en la caché.
• M=16K bloques en la memoria principal (Mp).
• K= 16 palabras/bloque
• tac= 10 ns
• El tiempo en cargar un bloque en la Mc es 200 ns.
• La caché está inicialmente vacía.
• En caso de fallo primero se trae todo el bloque desde la Mp a Mc y luego se lee la palabra en
Mc.
• Se ejecuta un programa que ejecuta un bucle 10 veces que va desde las posiciones 15 a 200.

a) La capacidad de la memoria principal CMp es

C Mp = M ·K = 16 K (bloques )·16( palabras / bloque) = 2 4 ·210 ·2 4 = 218 ( palabras )


Luego el número de bits n de una dirección de memoria es:

C Mp = 218 = 2 n ⇒ n = 18 bits

El número de bits p que se necesitan para codificar la posición de una palabra en el interior de un bloque
es:

K = 16 = 2 4 = 2 p ⇒ p = 4 bits

El número de bits b que se necesitan para codificar un bloque i de la memoria caché es:

C = 128 = 2 7 = 2 p ⇒ b = 7 bits

Finalmente el número de bits e del campo etiqueta es:

e = n − (b + p) = 18 − (7 + 4) = 7 bits

Luego el formato de una dirección de memoria desde el punto de vista de la memoria caché es

n=18 bits

Bloque nº i
Etiqueta Palabra
de Mc
e= 7 bits b=7 bits p= 4 bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 67


TEMA 2: Unidad de memoria. Solución de los problemas

b) Se va a estudiar el número de fallos o de aciertos que se producen en la caché al ejecutarse por primera
vez el bucle del programa que se extiende desde la dirección 15 hasta la 200.

En primer lugar se busca se busca en la caché la dirección 15. Como la caché está inicialmente vacía, se
produce un fallo y se almacena el bloque j=0 de la Mp, asociado a las direcciones 0 a 15, en el bloque i=0
de la Mc.

A continuación se busca en la caché la dirección 16 como la caché está inicialmente vacía se produce un
fallo y se almacena el bloque j=0 de la Mp asociado a las direcciones 16 a 31, en el bloque i=1 de la Mc.

Cuando se vaya a buscar en la caché las direcciones 17 a 31, se producirá aciertos ya que todas ellas
pertenecen al bloque j=1 de Mp que ya está cargado en la caché, en concreto en su bloque i=1 de la Mc.

Luego se observa que puesto que la memoria caché está inicialmente vacía cuando se accede a la primera
dirección contenida en un bloque j de Mp que no esté en la caché se producirá un fallo, lo que produce
que dicho bloque sea copiado en un bloque i de Mc. En consecuencia al acceder a las restantes 15
direcciones contenidas en el bloque j como ya está copiado en Mc se producirán 15 aciertos.

En la Tabla 1 se resumen los fallos o aciertos que se producen en la caché al ejecutarse por primera vez el
bucle.

Direcciones Bloque j de Mp Fallo a aciertos


15 0 1 fallo se copia el bloque j=0 en el bloque i=0
16 1 1 fallo se copia el bloque j=1 en el bloque i=1
17-31 1 15 aciertos
32 2 1 fallo se copia el bloque j=2 en el bloque i=2
33-47 2 1 fallo y 15 aciertos
48 3 1 fallo se copia el bloque j=3 en el bloque i=3
49-63 3 1 fallo y 15 aciertos
64 4 1 fallo se copia el bloque j=4 en el bloque i=4
65-79 4 1 fallo y 15 aciertos
80 5 1 fallo se copia el bloque j=5 en el bloque i=5
81-95 5 1 fallo y 15 aciertos
96 6 1 fallo se copia el bloque j=6 en el bloque i=6
97-111 6 1 fallo y 15 aciertos
112 7 1 fallo se copia el bloque j=7 en el bloque i=7
113-127 7 1 fallo y 15 aciertos
128 8 1 fallo se copia el bloque j=8 en el bloque i=8
129-143 8 1 fallo y 15 aciertos
144 9 1 fallo se copia el bloque j=9 en el bloque i=9
145-159 9 1 fallo y 15 aciertos
160 10 1 fallo se copia el bloque j=10 en el bloque i=10
161-175 10 1 fallo y 15 aciertos
176 11 1 fallo se copia el bloque j=11 en el bloque i=11
177-191 11 1 fallo y 15 aciertos
192 12 1 fallo se copia el bloque j=12 en el bloque i=12
193-200 12 1 fallo y 8 aciertos
Tabla 1

Luego en esta primera ejecución del bucle se producen:


Número de accesos =(200-15)+1= 186 accesos.
Número de fallos = 1(fallo/bloque) x 13 bloques=13 fallos.
Número de aciertos = 15 (aciertos/bloque) x 11 (bloques) + 8 (aciertos/bloque) x 1 bloque
= 173 aciertos.

En las siguientes 9 veces que se ejecuta el bucle del programa como los bloques ya están cargados en Mc
se producen aciertos.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 68


TEMA 2: Unidad de memoria. Solución de los problemas

Luego el número total de accesos asociados a este programa es

NT=10 (bucles)· 186 (accesos/bucle)=1860 accesos.

Mientras que el número total de aciertos es

NA=173+186 x 9=1847

Luego la tasa de acierto del programa es:

N A 1847
h= = = 0.993 =>99.3 %
NT 1860

c)El tiempo de acceso medio tam al sistema MC - Mp viene dada por la expresión:

t am = h·t ga + (1 − h)·t gf

donde tga es el tiempo de gestión de un acierto y tgf es el tiempo de gestión de un fallo. En este caso,
según el enunciado, se tiene tga=10 ns y tgf=200+10=210 ns. Luego sustituyendo valores se obtiene:

t am = 0.993·10 + 0.007·210 = 9.93 + 1.47 = 11.4 ns

SOLUCION PROBLEMA 2.64


DATOS
• 4 módulos de memoria RAM y 1 módulo de memoria ROM.
• Longitud de palabra L=8 bits.
• Bus de direcciones de 16 bits

Este problema se puede resolver de dos formas:

- FORMA 1
Si se escriben las direcciones de acceso a cada módulo en binario
Componente Dirección Dirección binaria
hexadecimal
RAM 1 0000 – 007F [0000 0000 0000 0000]- [0000 0000 0111 1111]
RAM 2 0080 – 00FF [0000 0000 1110 0000]- [0000 0000 1111 1111]
RAM 3 0100 – 017F [0000 0001 0000 0000]- [0000 0001 0111 1111]
RAM 4 0180 – 01FF [0000 0001 1000 0000]- [0000 0001 1111 1111]
ROM 0200 – 03FF [0000 0010 0000 0000]- [0000 0011 1111 1111]

Se observa que el formato general de las direcciones de cada módulo, supuesto que la variable X
representa a un 1 o a un 0, es:

Componente Formato general de una dirección


[A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0]
RAM 1 [0000 0000 0XXX XXXX]
RAM 2 [0000 0000 1XXX XXXX]
RAM 3 [0000 0001 0XXX XXXX]
RAM 4 [0000 0001 1XXX XXXX]
ROM [0000 001X XXXX XXXX]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 69


TEMA 2: Unidad de memoria. Solución de los problemas

Luego todas las direcciones que tienen A9=0 son direcciones RAM, mientras que cuando A9=1 son de
ROM. Asimismo se observa que en el caso de los módulos RAM, A8 y A7 permiten seleccionar uno de
los cuatro módulos de la RAM, y A6-A0 permiten seleccionar una palabra dentro de cada módulo RAM.
Por lo tanto, en cada módulo RAM hay 27=128 palabras.

En el caso de la ROM, A8-A0 permiten seleccionar una palabra dentro de este módulo, luego contiene
29=512 palabras.

En conclusión tanto la afirmación I como la II son verdaderas.

- FORMA 2
Si se escriben las direcciones de acceso a cada módulo en decimal
Componente Dirección Dirección decimal
hexadecimal
RAM 1 0000 – 007F 0-127
RAM 2 0080 – 00FF 128-255
RAM 3 0100 – 017F 256-383
RAM 4 0180 – 01FF 384-511
ROM 0200 – 03FF 512-1023

se observa fácilmente que cada módulo RAM contiene 128 palabras y que el módulo ROM contiene 512
palabras. Luego ambas afirmaciones son Verdaderas.

SOLUCION PROBLEMA 2.65


DATOS
• CMp = 256 palabras
• CMc = 32 palabras
• El tamaño de partición es K=8 palabras/bloque
• La caché está inicialmente vacía.
• Función de correspondencia totalmente asociativa

El número de bits n de una dirección de memoria se obtiene del dato de la capacidad de la memoria
principal: CMp =256=28=2n. Luego n= 8 bits.

Por otra parte del dato del tamaño de un bloque se obtiene el número de bits p que se necesitan para
codificar la posición de una palabra dentro de un bloque: K=8=2 3=2p . Luego p=3 bits.

Puesto que la caché emplea correspondencia totalmente asociativa. La dirección desde el punto de vista
de la Mc tendría los siguientes campos:

n=8 bits

Etiqueta Palabra

e=5 bits p= 3 bits

Por otra parte la caché puede almacenar C=CMc/K=32/8=4 bloques (i=0,1,2 y 3).

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc. Recuérdese que con la letra i se denota el número de bloque de memoria caché.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 70


TEMA 2: Unidad de memoria. Solución de los problemas

Direcciones leídas Etiqueta= Nº de bloque j de Mp Fallo o acierto


(en decimal)
00000 000 0 Fallo
se carga j=0 en i=0
00000 001 0 Acierto
00000 011 0 Acierto
00100 001 4 Fallo
se carga j=4 en i=1
00100 101 4 Acierto
00010 000 2 Fallo
se carga j=2 en i=2
00010 010 2 Acierto
00000 000 0 Acierto

Por lo tanto si se leyera la dirección 00100 111 se produciría un acierto ya que se encuentra almacenada
en el bloque i=1 de la caché. En conclusión la afirmación I es verdadera.

Por otra parte como la caché no se ha llenado no ha sido necesario realizar ninguna operación de
reemplazamiento. En consecuencia la afirmación II es falsa.

SOLUCION PROBLEMA 2.66


DATOS
• Disco magnético con dos superficies. NS=2 superficies.
• Radio interior de cada superficie R1=1 cm.
• Radio exterior de cada superficie R2=5 cm.
• El tamaño de cada pista es diferente pero almacena el mismo número de bits.
• La densidad de almacenamiento máxima es ρ=10000 bits/cm.
• Espaciado entre pistas adyacentes es ε=0.1 mm
• Se supone despreciable el espaciado entre sectores.
• Velocidad de rotación f=3600 rpm.
• El disco no tiene entrelazado.
• En un determinado instante sólo se puede acceder a una de las superficies del disco.

a) Puesto que se supone despreciable el espaciado entre sectores, entonces se va a considerar que la
información se distribuye regularmente a lo largo de cada pista con la densidad lineal ρ dada en el
enunciado.

R2

R1

pista

Figura 2.66.1

Para calcular el número máximo de bits que se puede almacenar en el disco, en primer lugar hay que
calcular el número de pistas que contiene cada superficie NPS, que es el cociente entre la anchura efectiva
de almacenamiento R2-R1 (ver Figura 2.66.1) y la distancia entre pistas adyacentes ε:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 71


TEMA 2: Unidad de memoria. Solución de los problemas

R2 − R1
N PS =
ε
Sustituyendo valores y operando se obtiene

5 − 1(cm / sup erficie) 40 (mm / sup erficie)


N PS = = = 400 ( pistas / sup erficie)
0.1(mm / pista ) 0.1(mm / pista )

Por otra parte la capacidad de una pista j viene dada por la expresión

C Pj = 2·π ·R j ·ρ

Se observa que es función del radio de la pista Rj. Según el enunciado todas las pistas almacenan la
misma cantidad de bits, luego cualquier pista no puede tener una capacidad mayor que la capacidad de la
pista más interna, ya que es la que posee el menor radio de todas. Luego la capacidad de una pista de la
superficie del disco es:

C P = 2·π ·R1 ·ρ = 2·π ·1(cm / pista )·10000(bits / cm) = 62832 (bits / pista )

La capacidad de una superficie Cs vendrá dada por la expresión:

C S = N PS ·C P = 400( pistas / sup erficie)·62832(bits / pista ) = 25.13·10 6 (bits / sup erficie)

Luego la capacidad del disco será:


CT = 2 ⋅ C S = 2 ⋅ 25.13·10 6 = 50.26·10 6 bits = 50.26·10 6 Mbits

b) La velocidad de transferencia de datos desde el disco a la cabeza de lectura/escritura en bits/s si no


existe entrelazado en el dico y si sólo se puede acceder en un determinado a un cierta superficie, será el
producto de la velocidad de rotación del disco por la capacidad de una pista.

vT = f ⋅ C P = 3600(rev / min)·62832(bits ) = 60(rev / s )·62832(bits )


= 3.77·10 6 bits / s = 3.77 Mbits / s

SOLUCION PROBLEMA 2.67


DATOS
• Memoria caché asociativa por conjuntos, con 4 bloques por conjuntos.
• Algoritmo de reemplazamiento LRU, modificado para evitar el rebosamiento de los
contadores.
• A cada bloque se le asocia un contador de 2 bits.
• C0, C1, C2 y C3 son los contadores asociados a los bloques de la caché 0, 1, 2 y 3,
respectivamente.

En la implementación del algoritmo de reemplazamiento LRU modificado para evitar el rebosamiento de


los contadores Ci asociados a los bloques i de la caché, estos contadores siguen las siguientes reglas:
En caso de acierto:
1) El contador Ci asociado con el bloque i que contiene la palabra buscada se inicializa a 0, lo
que indica que dicho bloque se ha utilizado recientemente.
2) Todos los contadores que tienen un valor más pequeño que el que tenía el contador del
bloque accedido se incrementan en 1.
3) Todos los contadores que tienen un valor mayor que el que tenía el contador del bloque
accedido no se modifican.
En caso de fallo:
4) Si la caché no está llena, el contador asociado con el bloque de la caché donde se carga el

Jose Manuel Díaz Tutor de ETC2 (Coslada) 72


TEMA 2: Unidad de memoria. Solución de los problemas

bloque que se lee de la memoria principal se inicializa a 0, los restantes contadores se


incrementan en 1.
5) Si la caché está llena, se sustituye el bloque de la caché que tiene el contador con el valor
más elevado y se inicializa a 0 su contador, todos los demás contadores se incrementan en 1.

De acuerdo con estas reglas, cuando se accede al bloque 0 (se ha producido un acierto), el contador de
ese bloque se pone a cero: X0 = 0. Todos los contadores que tenían un valor más pequeño que el que tenía
el contador del bloque accedido se incrementan en uno: X1 = 1. Todos los contadores que tienen un valor
mayor que el que tenía el contador del bloque accedido no se modifican: X2 = X3 = 2.

Luego, (X0, X1, X2, X3)=(0, 1, 2, 2).

SOLUCION PROBLEMA 2.68


DATOS
• Memoria caché (Mc) con función de correspondencia totalmente asociativa.
• C=16 bloques en la caché.
• K= 8 palabras/bloque.
• CMp=216 palabras.
• La caché está inicialmente vacía.
• tac= 40 ns
• El tiempo en cargar un bloque en la Mc es 1 µs.
• En caso de fallo primero se trae todo el bloque desde la Mp a Mc y luego se lee la palabra en
Mc.
• Se ejecuta un programa que ejecuta en primer lugar las instrucciones ubicadas en las
direcciones de memoria 20 a 45, y luego efectúa 4 veces un bucle entre las posiciones de
memoria 28 a 45.

a) El número n de bits de una dirección de memoria se obtiene del dato de la capacidad de la memoria
principal CMp=216=2n→n= 16 bits

El número p de bits que se necesitan para codificar la posición de una palabra en el interior de un bloque
se obtiene del dato del número de palabras que almacena un bloque: K=2 3=2p→p=3 bits.

Luego el formato de una dirección de memoria desde el punto de vista de una memoria caché con
correspondencia totalmente asociativa es:

n=16 bits

Etiqueta Palabra

e=n-p= 13 bits p= 3 bits

b) Se va a estudiar el número de fallos o de aciertos que se producen en la caché al ejecutarse las


instrucciones localizadas desde las posiciones de memoria 20 a 45

En primer lugar se busca se busca en la caché la dirección 15. Como la caché está inicialmente vacía, se
produce un fallo y se almacena el bloque j=0 de la Mp, asociado a las direcciones 0 a 15, en el bloque i=0
de la Mc.

A continuación se busca en la caché la dirección 16 como la caché está inicialmente vacía se produce un
fallo y se almacena el bloque j=0 de la Mp asociado a las direcciones 16 a 31, en el bloque i=1 de la Mc.

Cuando se vaya a buscar en la caché las direcciones 17 a 31, se producirá aciertos ya que todas ellas
pertenecen al bloque j=1 de Mp que ya está cargado en la caché, en concreto en su bloque i=1 de la Mc.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 73


TEMA 2: Unidad de memoria. Solución de los problemas

Luego se observa que puesto que la memoria caché está inicialmente vacía cuando se accede a la primera
dirección contenida en un bloque j de Mp que no esté en la caché se producirá un fallo, lo que produce
que dicho bloque sea copiado en un bloque i de Mc. En consecuencia al acceder a las restantes 15
direcciones contenidas en el bloque j como ya está copiado en Mc se producirán 15 aciertos.

En la Tabla 1 se resumen los fallos o aciertos que se producen en la caché al ejecutarse por primera vez el
bucle.

Direcciones Bloque j de Mp Resultado


20 2 1 fallo se copia el bloque j=2 en el bloque i=0 de Mc
21-23 2 3 aciertos
24 3 1 fallo se copia el bloque j=3 en el bloque i=1 de Mc
25-31 3 7 aciertos
32 4 1 fallo se copia el bloque j=4 en el bloque i=2 de Mc
33-39 4 7 aciertos
40 5 1 fallo se copia el bloque j=5 en el bloque i=3 de Mc
41-45 5 5 aciertos
Tabla 1

Luego en esta primera parte de la ejecución programa se producen:


Número de accesos =(45-20)+1= 26 accesos.
Número de fallos = 4 fallos.
Número de aciertos = 3+2·7+5=22 aciertos

En la segunda parte del programa se ejecuta 4 veces un bucle ubicado en las direcciones 28-45, al tratarse
de direcciones que ya se encuentran en la caché únicamente se producirán aciertos. El número de accesos
en esta segunda parte del programa es 4·[(45-28)+1]=72 accesos.

Luego el número total de accesos que se producen al ejecutar este programa sería:

N T = 26 + 72 = 98 accesos
Y el número total de aciertos que se producen al ejecutar este programa sería:

N A = 22 + 72 = 94 aciertos

Luego la tasa de acierto del programa es:

N A 94
h= = = 0.959 =>95.9 %
N T 98

c)El tiempo de acceso medio tam al sistema MC - Mp viene dada por la expresión:

t am = h·t ga + (1 − h)·t gf

donde tga es el tiempo de gestión de un acierto y tgf es el tiempo de gestión de un fallo. En este caso,
según el enunciado, se tiene tga=40 ns y tgf=1 µs+40=1040 ns. Luego sustituyendo valores se obtiene:

t am = 0.959·40 + 0.041·1040 = 38.36 + 42.64 = 81 ns

Jose Manuel Díaz Tutor de ETC2 (Coslada) 74


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.69


DATOS
• CMp= 256 Kpalabras= 218 palabras
• CMc=32 Kpalabras=215 palabras
• K=16 palabras/bloque= 24 palabras/bloque
• Función de correspondencia directa.
• L=2 bytes= 16 bits

En primer lugar hay que determinar el formato de una dirección de memoria desde el punto de vista de
una memoria caché con función de correspondencia directa es:

n bits

Bloque nº i
Etiqueta Palabra
de Mc

e=(n-b-p) b bits p bits

Del dato de la capacidad de la memoria principal se obtiene el tamaño n de una dirección de memoria:

C Mp = 218 ≤ 2 n → n = 18 bits

Del dato del número de palabras que tiene un bloque se obtiene el tamaño p del campo palabra.

K = 2 4 ≤ 2 p → p = 4 bits

Para obtener el tamaño b del campo Bloque nº i de Mc hay que calcular el número de bloques que pueden
almacenarse en la memoria caché

C Mc 215
C= = 4 = 211
K 2
Como

C ≤ 2b

entonces
b = 11 bits

Conocidos n, p y b, es inmediato determinar e

e = n − (b + p ) = 18 − (11 + 4) = 3 bits

En segundo lugar hay que recordar que en la función de correspondencia directa un bloque j de Mp tiene
asignado de antemano el bloque i de Mc donde se va alojar su copia. Por lo tanto, dada una dirección de
memoria DIR se producirá el reemplazamiento del contenido de un bloque de la caché, si DIR hace
referencia a un bloque i Mc que contiene una copia de un bloque j de Mp distinto del bloque j’ al que hace
referencia DIR.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 75


TEMA 2: Unidad de memoria. Solución de los problemas

Según el enunciado existe almacenado en un bloque i de la memoria caché una copia del bloque j de
memoria principal que contiene la palabra cuya dirección asociada es DIR=856010. Para determinar el
valor de i y de j se debe pasar DIR de decimal a binario:

856010 = 1024 * 8 + 368 = 213 + 256 + 112 = 213 + 2 8 + 64 + 48 =


= 213 + 2 8 + 2 6 + 32 + 16 = 213 + 2 8 + 2 6 + 2 5 + 2 4 =
= 0000100010 1110000 2

Separando los bits según el tamaño de cada campo se obtiene:

DIR0 = 000 2 01000101112 0000 2

Luego el campo etiqueta es 0002 el campo bloque de Mc es nº i= 01000101112 y el campo palabra es


00002. Asimismo la unión del campo etiqueta y del campo bloque i de Mc permiten conocer el bloque j de
Mp al que hace referencia una dirección de memoria en este caso j=000 010010111 2.

Dada otra dirección de memoria se producirá un reemplazo en la caché, si y solo sí, hace referencia al
bloque i= 0100010111 2 y a un bloque j≠000 010010111 2.

Opción A:

857510 = 8560 + 15 = 8560 + 8 + 4 + 2 + 1 =


= 213 + 2 8 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 21 + 2 0 =
= 0000100010 11111112 = 000 2 01000101112 11112

Hace referencia al bloque i= 01000101112 de Mc y al bloque j=000 0100101112 de Mp. Luego al hacer
referencia a un bloque j cuya copia ya está almacenada en la caché no se produce reemplazamiento.

Opción B:

868810 = 8560 + 128


= [ 213 + 2 8 + 2 6 + 2 5 + 2 4 ] + 2 7 =
= 0000100011 1110000 2 = 000 2 01000111112 11112

Hace referencia al bloque i= 01000111112 de Mc no al i= 01000101112 luego la dirección 8688 nunca


producirá un reemplazamiento del contenido del bloque i= 0100010111 2.

Opción C:

4133410 = 32768 + 8566 = 215 + 8560 + 6 = 215 + 213 + 2 8 + 2 6 + 2 5 + 2 4 + 2 2 + 2


= 0010100011 1110110 2 = 0012 01000111112 0110 2

Hace referencia al bloque i= 01000101112 de Mc y al bloque j=001 0100101112 de Mp. Luego al hacer
referencia a un bloque j cuya copia no está almacenada en la caché y al tener que ser almacenado ésta en
el bloque i=01000101112 que contiene actualmente una copia del bloque j=000 0100101112 de Mp se
hace necesario un reemplazamiento.

Luego la respuesta correcta es la C.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 76


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.70


DATOS
• Disco magnético con 64 pistas {0,1,...,63}
• Cola de peticiones: 1, 3, 63, 47, 2, 46

Afirmación I:

La planificación SCAN consiste en ir recorriendo todas las pistas en una dirección y satisfaciendo todas
las peticiones que se encuentra en el camino, hasta que alcanza la última pista. En este punto se invierte el
sentido del recorrido y la búsqueda prosigue de la misma forma

La cabeza lectora se halla en la pista p0=0 y se desplaza hacia las pistas cuyo número de pista va
aumentando. Luego atiende las peticiones de la cola en el siguiente:

[1, 2, 3, 46, 47, 63]

Para calcular la longitud media de búsqueda (LMB)


N

∑p k − pk −1
LMB = k =1
N
es recomendable construirse la siguiente tabla

Próxima pista (p1) (p2) (p3) (p4) (p5) (p6)


a la que se
accede
1 2 3 46 47 63
Número de |p1-p0| |p2-p1| |p3-p2| |p4-p3| |p4-0|+|p5-0| |p6-p5|
pistas que se
atraviesan
1 1 1 43 1 16

Por lo tanto:
N

∑p k − pk −1
1 + 1 + 1 + 43 + 1 + 16
LMB = k =1
= = 10.5
N 6
En conclusión la afirmación es VERDADERA.

Afirmación II:

La planificación FCFS consiste en ir desplazando la cabeza lectora atendiendo las peticiones en el orden
en que van llegando. Luego atiende las peticiones de la cola en el mismo orden en que se encuentran en
la cola:

[1, 3, 63, 47, 2, 46]

Para calcular la longitud media de búsqueda (LMB)


N

∑p k − pk −1
LMB = k =1
N
es recomendable construirse la siguiente tabla

Jose Manuel Díaz Tutor de ETC2 (Coslada) 77


TEMA 2: Unidad de memoria. Solución de los problemas

Próxima pista (p1) (p2) (p3) (p4) (p5) (p6)


a la que se
accede
1 3 63 47 2 46
Número de |p1-p0| |p2-p1| |p3-p2| |p4-p3| |p4-0|+|p5-0| |p6-p5|
pistas que se
atraviesan
1 2 60 16 45 44

Por lo tanto:
N

∑p k − pk −1
1 + 2 + 60 + 16 + 45 + 44
LMB = k =1
= = 28
N 6
Luego la planificación FCFS empeora en más del 50 % la LMB que se obtiene con la planificación
SCAN luego la afirmación es FALSA.

SOLUCION PROBLEMA 2.71


DATOS
• Disco formateado con entrelazado cuádruple.
• A=40 superficies
• NC= 1024 cilindros=> NP= 1024 pistas/superficie
• S=128 sectores/pista
• CS 32 Kbytes/sector
• f=7200 rpm=120 (rev/s)

Afirmación I:
La Capacidad de la unidad de disco es:
C = A·NP·S·Cs = 40 (superficies)·1024 (pistas/superficie)·128 (sectores/pista)·32 (Kbytes/sector)
= 40 (superficies)·210 (pistas/superficie)·27 (sectores/pista)·215 (bytes/sector)
= 40·232 bytes
= 40·4 GB = 160 GB

Luego la afirmación I es VERDADERA.

Afirmación II:

El tiempo tp que se tarda en leer todos los sectores de una pista es la suma de tres contribuciones:

t p = tb + t r + tt

donde:
• tb es el tiempo medio de búsqueda de la pista. En este caso puesto que la cabeza lectora está
posicionada ya en la pista adecuada tb=0 s.
• tr es el tiempo de latencia rotacional Es decir el tiempo medio que tarda el sector en estar
debajo de la cabeza de lectura/escritura. Viene dado por

1 1
tr = = = 4.17 ms
2· f 2·120

• tt es el tiempo de transferencia de todos los sectores de una pista. Al existir entrelazado


doble para leer la pista se comienza leyendo el sector 0 y después, para el resto de sectores,
primero la cabeza pasa por encima de cuatro sectores que ignora y lee el quinto. Por tanto, la
cabeza lectora pasa por un total de

Jose Manuel Díaz Tutor de ETC2 (Coslada) 78


TEMA 2: Unidad de memoria. Solución de los problemas

N S = 1 + ( f e + 1)·( S − 1) = 1 + ( 4 + 1)·(128 − 1) = 636 sec tores

Por lo tanto
NS 636
tt = = = 0.04140 s = 41.40 ms
S · f 128·120
Luego:

t p = tb + t r + tt = 0 + 4.17 + 41.40 = 45.57 ms

La velocidad de transferencia vT será el cociente entre los P bytes que hay en una pista y el tiempo tp que
se tarda en transmitir dichos bytes.
P
vT =
tp

Con los datos que se dan en el enunciado es posible calcular P:

P = C S ·S = 32 ( Kbytes / sec tor )·128 (sec tor / pista ) = 212 ( Kbytes / pista ) = 4( Mbytes / pista )

Luego

4( Mbytes / pista)
vt = = 87.7 ( Mbytes / s )
45.57·10 −3 ( s / pista)

En conclusión la afirmación II es FALSA.

SOLUCION PROBLEMA 2.72


DATOS
• Dispositivo de E/S con dirección base 400 16
• Las líneas A0 y A1 del bus de direcciones se utilizan para seleccionar registros internos del
dispositivo.
• La línea CS de selección del circuito está conectada a un circuito que implementa la lógica de
selección y cuyas entradas son A2, A5, A6 y A7

La dirección base del dispositivo de E/S es 40016 o equivalentemente en binario 0100 0000 0000. Luego
el bus de direcciones tiene 12 líneas.

A11A10A9A8A7A6A5A4A3A2A1A0

El circuito de selección del dispositivo de E/S considerado tiene como entradas a CS, A2, A5, A6 y A7. De
acuerdo con la dirección base para seleccionar el dispositivo A 2, A5, A6 y A7 deben valer 0.

Por otra lado puesto que sólo se emplean dos líneas (A1A0) para seleccionar los registros internos del
dispositivo de E/S, eso indica que cómo máximo dicho dispositivo contiene 22=4 registros internos.

La dirección propuesta como referencia 40316 en binario es 0101 0000 0011, luego hace referencia al
registro (A1A0)=112 del dispositivo de E/S.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 79


TEMA 2: Unidad de memoria. Solución de los problemas

El formato de una dirección que acceda al registro (A1A0)=112 del dispositivo de E/S, debe cumplir las
siguientes condiciones:
1) Referenciar al registro (A1A0)=112 del dispositivo
2) No referenciar a una posición inferior a la dirección base del dispositivo, es decir, (A11A10)
no pueden vale 002.
3) A2, A5, A6 y A7 deben valer 0

En la siguiente tabla se compara la dirección de referencia 40316 con las de las soluciones A (41B16),
B (48316) y C (40716). Se han sombreado las columnas que deben ser comparadas

Dirección A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0


40316 0 1 0 0 0 0 0 0 0 0 1 1
41B16 0 1 0 0 0 0 0 1 1 0 1 1
48316 0 1 0 0 1 0 0 0 0 0 1 1
40716 0 1 0 0 0 0 0 0 0 1 1 1

Se observa que de las tres direcciones propuestas la única cuyos bits a comparar coinciden con la
dirección de referencia 40313 es la dirección 41B16.. Nótese que la dirección 48316 queda descartada por
que A7=1 luego no cumple la condición 3. Por su parte la dirección 40716 queda descartada porque A2=1
luego tampoco cumple la condición 3. Luego la solución correcta es la A.

SOLUCION PROBLEMA 2.73


DATOS
• NT=212 accesos.
• NF=210 fallos.
• tac= 5 ns
• tap= 100 ns

Afirmación I:
La tasa de aciertos h es:

N A N T − N F 212 − 210 210 ·(2 2 − 1) 3


h= = = = = = 0.75 ≡ 75%
NT NT 212 212 4
Luego la afirmación es FALSA.

Afirmación II:
El tiempo de acceso medio tam al conjunto memoria principal - memoria caché se define como:

t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)

Donde tga es el tiempo de gestión del acierto. Normalmente se cumple que:

t ga = t ac = 5nseg

Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en la Mc. Puesto que no se dice lo
contrario se a suponer que:

t ga = t ap = 100 nseg

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

t am = 0.75 ⋅ 5 + 0.25 ⋅ 100 = 3.75 + 25 = 28.75 nseg

Luego la afirmación es FALSA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 80


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.74


DATOS
• CMp=64 Kpalabras
• L=16 bits/pal
• tap tiempo de acceso a memoria principal.
• Función de correspondencia totalmente asociativa.
• CMc=4 Kpal
• K= 512 palabras/bloque.
• Mc inicialmente vacía.
• Algoritmo de reemplazamiento del tipo LRU.
• CPU ejecuta un bucle 5 veces.
• Cada bucle consta de 4101 palabras. Dir=0,...,4100.
• Mc es ocho veces más rápida que la Mp. => tac=tap/8.

A) El formato de una dirección de memoria desde el punto de vista de una memoria caché con función de
correspondencia totalmente asociativa es el siguiente:

n bits

Etiqueta Palabra

e bits p bits

Del dato de la capacidad de la memoria principal se puede obtener el número n de bits que se necesitan
para codificar todas las direcciones posibles.

C Mp = 64 Kpalabras = 216 palabras ≤ 2 n ⇒ n = 16 bits

Del dato del tamaño de un bloque de palabras se puede obtener el número p de bits que se necesitan para
codificar las posiciones de una palabra en el interior de un bloque.

K = 512 palabras = 2 9 palabras ≤ 2 p ⇒ p = 9 bits

El tamaño del campo etiqueta sería:

e = n − p = 16 − 9 = 7bits
Luego se tendría el siguiente formato para las direcciones:

n=16 bits

Etiqueta Palabra

e=7 bits P=9 bits

Para responder a la segunda parte de este apartado, en primer lugar hay que calcular el número total de
accesos a Mp que supone la ejecución cinco veces de un bucle de 4101 palabras. Se supone que cada
palabra requiere de un acceso a Mp:

N T = 5 ⋅ 4101 = 20505 accesos

Puesto que cada acceso a memoria requiere un tiempo tap, entonces el tiempo total empleado en realizar
estos NT accesos sería:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 81


TEMA 2: Unidad de memoria. Solución de los problemas

TT = 20505· N T accesos

B) Antes de contestar a este apartado conviene calcular el número de bloques que se pueden contener en
la memoria caché:

C Mc 212
C= = 9 = 2 3 = 8 bloques
K 2

Como en la tabla de evolución del contenido de la Mc se pide poner el valor de la etiqueta que al finalizar
la ejecución de cada uno de los cinco ciclos, en la Tabla 1 se han calculado dichas etiquetas.
La primera ejecución del ciclo se muestra en la Tabla 2:
• Primera ejecución del ciclo (ver Tabla 2). Los bloques se van llenando de uno en uno, hasta
llenar la memoria caché. Cuando se accede a la dirección 4096 se vuelve a producir un fallo
pero la memoria caché ya está llena. El enunciado propone como técnica de reemplazamiento
sustituir el bloque que se haya utilizado menos recientemente, que es el 0.
• Segunda ejecución del ciclo (ver Tabla 3). Siguiendo el mismo razonamiento de antes, la Tabla
3 muestra qué va ocurriendo en la caché según se va ejecutando por segunda vez el ciclo. En
esta Tabla se puede observar que siempre se producen fallos. Al finalizar el ciclo anterior hubo
que sustituir el bloque 0 con etiqueta 0 que es el primero en ser referenciado al comenzar la
ejecución de este segundo ciclo. Para resolver este fallo sustituye el contenido del bloque 1 de la
caché, que será el siguiente en ser referenciado. Y así sucesivamente con todos.
• Resto de ciclos. La situación es parecida a la segunda ejecución del ciclo, produciéndose
continuos fallos.

En la Tabla 4 se muestra el valor de la etiqueta existente en cada bloque de la caché al finalizar cada uno
de los 5 ciclos.

0
Tabla 1: Rango de direcciones y etiqueta correspondiente en la caché.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 82


TEMA 2: Unidad de memoria. Solución de los problemas

0
Tabla 2: Primera ejecución del bucle.

Tabla 3: Segunda ejecución del bucle.

0
Tabla 4: Etiquetas de cada bloque de la caché al finalizar cada ciclo.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 83


TEMA 2: Unidad de memoria. Solución de los problemas

C) Para calcular el número de fallos hay que utilizar los resultados del apartado anterior y, especialmente,
la Tabla 4.
• Primer ciclo: 9 fallos, uno por cada bloque del ciclo.
• Resto de ciclos: 9 fallos, uno por cada bloque del ciclo.
Por tanto, el número total de fallos es:

N F = 45 fallos

D) El tiempo total que se emplea en realizar los NT accesos a memoria vendría dado por la siguiente
expresión:

T = TA + TF

donde TA es el tiempo total en gestionar los aciertos en la memoria caché y TF es el tiempo total en
gestionar los fallos.

TA se puede calcular mediante la siguientes expresión:

TA = N A ·t ac

donde NA es el número total de aciertos y tac es el tiempo medio de acceso a Mc. NA se obtiene como la
diferencia entre el número total de accesos NT y el número total de fallos, luego:

N A = N T − N F = 20505 − 45 = 20460
Luego

TA = 20460·t ac = 20460 ⋅ (t ap / 8) = 2557.5 ⋅ t ap

Por otra parte del enunciado:

TF = N F ·t gf

Donde tgf es el tiempo medio de gestión de un fallo, que de acuerdo al enunciado consiste en mover el
bloque completo de memoria principal a memoria caché y después leer el dato de la caché. Luego

t gf = K ·t ap + t ac = K ·t ap + (t ap / 8) = (512 + 1 / 8)·t ap = 512.125·t ap

Por lo tanto:

TF = 45 ⋅ 512.125·tap = 23045.625·t ap

Con lo que finalmente se tendría:

T = TA + TF = 2557.5 ⋅ t ap + 23045.625·t ap = 25603.125·t ap

Jose Manuel Díaz Tutor de ETC2 (Coslada) 84


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.75


DATOS
• CMp=128 Kpalabras
• CMc=2 Kpalabras
• Mc con función de correspondencia directa.
• K= 512 palabras/bloque
• Se ejecuta 1000 veces un bucle que accede a 2200 posiciones de memoria consecutivas.

Se va analizar en cuantos bloques de Mp cabrían 2200 palabras consecutivas. El resultado de la división


entera CMp/K=2200/512 es 4 y su resto es 152. Luego 2200 se puede expresar equivalentemente de la
siguiente forma:

2200=512*4+152=2048+152

Se pueden presentar tres posibles casos en función de como se distribuyan las 2200 palabras
consecutivas:
Caso 1: 2048 palabras se almacenan en 4 bloques y 152 palabras al principio de otro bloque.
En total 5 bloques de Mp.
Caso 2: 152 palabras al final de un bloque y 2048 palabras se almacenan en 4 bloques. En
total 5 bloques de Mp.
Caso 3: C palabras se almacenan al final de un bloque, 2048 palabras se almacenan en 4
bloques y 152-C se almacenan al principio de otro bloque. En total 6 bloques de Mp.

A continuación se va a determinar el número de bloques que se pueden almacenar en la memoria caché:

C Mc 2 Kpalabras 211
C= = = 9 = 2 2 = 4 bloques
K 512 palabras / bloque 2

A estos bloques los vamos a denotar como i=0,1,2 y 3.

Conviene recordar que en una memoria caché con función de correspondencia directa cada bloque j de
Mp tenía asignado a priori el bloque i de Mc donde se debe almacenar. A través de la fórmula i=jmodC

Supóngase que las 2200 palabras se encuentran almacenadas en 5 bloques de Mp por ejemplo j=16, 17,
18, 19 y 20. Estos bloques tendrían asignados (de acuerdo a la función de correspondencia) los siguientes
bloques de Mc: i=0, 1, 2, 3 y 0. Se observa que los bloques j=16 y j=20 tienen asignado el mismo bloque
de Mc, el i=0. De esta forma, cuando se ejecuta por novena vez el bucle de 2200 palabras se producen 2
fallos:
El primer fallo se produce cuando se direcciona una palabra contenida en el bloque j=16.
Dicho bloque tiene asignado el bloque i=0 pero allí debido a la octava ejecución del bucle se
encuentra almacenada una copia del bloque j=20. En la gestión del fallo el bloque j=16 se
copia en i=0.
El segundo fallo se produce cuando se direcciona una palabra contenida en el bloque j=20.
Dicho bloque tiene asignado el bloque i=0 pero allí debido al fallo anterior se encuentra
almacenada una copia del bloque j=16. En la gestión del fallo el bloque j=20 se copia en i=0.

Supóngase ahora que las 2200 palabras se encuentran almacenadas en 6 bloques de Mp por ejemplo j=16,
17, 18, 19, 20 y 21. Estos bloques tendrían asignados (de acuerdo a la función de correspondencia) los
siguientes bloques de Mc: i=0, 1, 2, 3, 0 y 1. Se observa que los bloques j=16 y j=20 tienen asignado el
mismo bloque de Mc, el i=0. Asimismo, los bloques j=17 y j=21 tienen asignado el bloque i=1. De esta
forma, cuando se ejecuta por novena vez el bucle de 2200 palabras se producen 4 fallos:
El primer fallo se produce cuando se direcciona una palabra contenida en el bloque j=16.
Dicho bloque tiene asignado el bloque i=0 pero allí debido a la octava ejecución del bucle se
encuentra almacenada una copia del bloque j=20. En la gestión del fallo el bloque j=16 se
copia en i=0.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 85


TEMA 2: Unidad de memoria. Solución de los problemas

El segundo fallo se produce cuando se direcciona una palabra contenida en el bloque j=17.
Dicho bloque tiene asignado el bloque i=1 pero allí debido a la octava ejecución del bucle se
encuentra almacenada una copia del bloque j=21. En la gestión del fallo el bloque j=17 se
copia en i=1.
El tercer fallo se produce cuando se direcciona una palabra contenida en el bloque j=20.
Dicho bloque tiene asignado el bloque i=0 pero allí debido al fallo primero se encuentra
almacenada una copia del bloque j=16. En la gestión del fallo el bloque j=20 se copia en i=0.
El cuarto fallo se produce cuando se direcciona una palabra contenida en el bloque j=21.
Dicho bloque tiene asignado el bloque i=1 pero allí debido al fallo segundo se encuentra
almacenada una copia del bloque j=17. En la gestión del fallo el bloque j=21 se copia en i=1.

En resumen en la novena ejecución del bucle, se pueden producir como mínimo 2 fallos (si las 2200
palabras se almacenan en 5 bloques de Mp) y como máximo 4 fallos (si las 2200 palabras se almacenan
en 6 bloques de Mp). Luego las dos afirmaciones son VERDADERAS.

SOLUCION PROBLEMA 2.76


DATOS
• L=16 bits/palabra
• Bus de direcciones de 24 líneas [A23,...,A0]
• Bloques base de memoria RAM de capacidad C0=2 Mpalabras x 4 bits/palabra
• Capacidad total memoria RAM CMp=9 Mpalabras x 16 bits/palabra
• Direcciones ROM: 0 a 1 Mpalabras -1
• Las direcciones RAM son consecutivas a las direcciones

En primer lugar se va a determinar el número de módulos base de capacidad C0 necesarios para construir
una memoria RAM de capacidad CT, para ello se deben dividir ambas cantidades y aproximar por el
primer número entero que sea mayor que el número decimal que se obtenga:

CT 9 Mpalabras 16bits / palabra


= × ≤ (5 x 4) = 20
C0 2 Mpalabras 4bits / palabra
Luego se necesitan 20 módulos RAM de capacidad C0.

La disposición de los 20 módulos de capacidad C0 sería la siguiente: 5 filas de 4 módulos cada una. En
cada fila se direccionan 2 Mpalabras x 16 bits/palabra. Nótese que en la quinta fila de módulos RAM
solamente estará ocupado o disponible el primer mega de palabras con objeto de obtener la capacidad de
memoria RAM total deseada: 9 Mpalabras= 2 Mpalabras (1 Fila)+ 2 Mpalabras (2 Fila)+ 2 Mpalabras (3
Fila) +2 Mpalabras (4 Fila) +1 Mpalabras (5 Fila).

A23 A22 A21 A20 A19···A0 Direcciones contenidas en:


0 0 0 0 X···X Módulo ROM
0 0 0 1 X···X Fila 1 de módulos RAM
0 0 1 0 X···X Fila 1 de módulos RAM
0 0 1 1 X···X Fila 2 de módulos RAM
0 1 0 0 X···X Fila 2 de módulos RAM
0 1 0 1 X···X Fila 3 de módulos RAM
0 1 1 0 X···X Fila 3 de módulos RAM
0 1 1 1 X···X Fila 4 de módulos RAM
1 0 0 0 X···X Fila 4 de módulos RAM
1 0 0 1 X···X Fila 5 de módulos RAM
1 0 1 0 X···X Direcciones no asignadas
1 0 1 1 X···X Direcciones no asignadas
1 1 0 0 X···X Direcciones no asignadas
1 1 0 1 X···X Direcciones no asignadas
1 1 1 0 X···X Direcciones no asignadas
1 1 1 1 X···X Direcciones no asignadas

Jose Manuel Díaz Tutor de ETC2 (Coslada) 86


TEMA 2: Unidad de memoria. Solución de los problemas

Tabla 1: Mapa de direcciones de memoria

En Tabla 1se muestra el mapa de direcciones de memoria del conjunto: ROM + RAM (5 filas x 4
módulos /fila) que se obtiene considerando los datos del enunciado y la información obtenida
anteriormente. Para reducir el número de filas de la Tabla se ha denotado con X···X al conjunto posible
de direcciones comprendidas entre 0000 0000 0000 0000 0000 - 1111 1111 1111 1111 1111. Asimismo
se han sombreado el conjunto de direcciones válidas que permiten acceder a la RAM diseñada

Con la información que se ha obtenido hasta ahora ya se está en condiciones de poder responder a las
afirmaciones propuestas.

Afirmación I:
Hay que demostrar que la función lógica propuesta no permite detectar direcciones RAM válidas (es
decir que permiten acceder a la RAM diseñada), ya que devuelve el mismo valor tanto para una dirección
de RAM válida como para una no válida..

Por ejemplo, para una dirección de ROM (A23=A22=A21=A20=0) la función devuelve el siguiente valor:

A23 × ( A 22 + A 21 + A 20 ) + A23 × A22 × A21 = 1x(1 + 1 + 1) + 0 x1x1 = 1

Mientras que para una dirección de RAM válida como (A23=A22=A21=0, A20=1) la función también
devuelve el valor

A23 × ( A22 + A 21 + A 20 ) + A23 × A 22 × A 21 = 1x(1 + 1 + 0) + 0 x1x1 = 1

En consecuencia, la afirmación I es FALSA .

Aunque no es necesario para responder a la afirmación propuesta se va obtener una función lógica F que
devuelve 0 si se trata de una dirección RAM no valida y devuelve 1 si es válida. Nótese que para
especificar la validez de una dirección simplemente es necesario fijarse en los bits A23, A22, A21 y A20.
Tomando como referencia la Tabla 1, es posible construir el siguiente mapa de Karnaugh:

Con lo que la función F para la detección de direcciones RAM válidas tomaría la forma:

F = A23 × ( A22 + A21 + A20 ) + A23 × A 22 × A 21

Afirmación II:
De acuerdo al cálculo realizado al principio de este problema el número de módulos de capacidad C0
necesarios es 20, no 19 como indica la afirmación. Luego, es FALSA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 87


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.77


DATOS
• CMp = 4096 Mpalabras = (232) palabras
• CMc = 64K palabras = (216) palabras
• K=2048 palabras/bloque = (211) palabras/bloque
• Función de correspondencia directa.
• En un determinado instante la dirección B3A972E0, de la memoria principal está en la memoria caché

Para una memoria caché Mc con función de correspondencia directa el formato de una dirección de
memoria desde el punto de vista de la Mc tiene la siguiente estructura:

Bloque
Etiqueta Palabra
de Mc

e bits b bits p bits

Del dato de la capacidad de la memoria principal se puede obtener el número de bits n de una dirección
de memoria:

C Mp ≤ 2 n → 2 32 ≤ 2 n → n = 32 bits

Del dato del tamaño de un bloque se puede obtener el número de bits p que se necesitan para direccionar
una palabra dentro de un bloque

K ≤ 2 p → 211 ≤ 2 p → p = 11 bits

Para obtener el número de bits b que se necesitan para direccionar un bloque de la memoria caché,
primero hay que calcular el número de bloques C de la MC.

C Mc 216
C= = 11 =2 5 = 32 bloques.
K 2
Se tiene por tanto que

C ≤ 2 b → 2 5 ≤ 2 b → b = 5 bits

Finalmente el número de bits del campo etiqueta son:

e = n − (b + p ) = 32 − (11 + 5) = 16 bits

Afirmación I:
Para comprobar la validez de esta afirmación hay que determinar el número de bloque i de memoria
caché al que hace referencia la dirección B3A972E0. Únicamente se necesita pasar a binario los 16 bits
menos significativos , que son los asociados a los campos bloque de Mc y palabra:

72E016= 0111 0010 1110 0000

Agrupando por campos se tiene

01110 010 1110 0000

Jose Manuel Díaz Tutor de ETC2 (Coslada) 88


TEMA 2: Unidad de memoria. Solución de los problemas

Luego el bloque i de MC al que hace referencia esta dirección es: i=011102=1410. Luego la afirmación es
VERDADERA.

Afirmación II:
Para comprobar la validez de esta afirmación hay que determinar el número de bloque i de memoria
caché al que hace referencia la dirección 629E72E9. Únicamente se necesita pasar a binario los 16 bits
menos significativos , que son los asociados a los campos bloque de Mc y palabra:

72E916= 0111 0010 1110 1001

Agrupando por campos se tiene

01110 010 1110 1110

Luego el bloque i de MC al que hace referencia esta dirección es: i=011102=1410.

Luego esta dirección hace referencia también a una palabra que se ubicaría en el bloque i=14 de la caché.
En este caso, para saber si la dirección está en la caché, es necesario comparar las etiquetas de ambas
direcciones. Como la etiqueta de esta dirección es 629E 16 distinta de la etiqueta B3A916 de la dirección
que si que estaba en la Mc, entonces eso significa que 629E72E916 no está en la MC. Luego la afirmación
es VERDADERA.

SOLUCION PROBLEMA 2.78


DATOS
• Sistema jerárquico de memoria.
• CMc:=4K=212 palabras, K= 128=27 pal/ bloque, tac=15 nseg
• CMp=128 Kpalabras=217 palabras, tap= 150 nseg
• Tasa de acierto h=0.95
• Cuando se produce un fallo en Mc :
• Se mueve el bloque completo a la MC.
• Se lee el dato desde MC.

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 gestión del acierto. Normalmente se cumple que:

t ga = tca = 15 nseg

De acuerdo con el enunciado el tiempo de gestión 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 K·tap.
2) Se lee el dato desde la caché, lo que supone un tiempo de tac.

Luego:

t gf = K ·t ap + t ac = 128 ⋅ 150 + 15 = 19215 n seg

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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 89


TEMA 2: Unidad de memoria. Solución de los problemas

tam = 0.95 ⋅ 15 + 0.05 ⋅ 19215 = 14.25 + 960.75 = 975 n seg

Luego la solución es tam=975 nseg.

SOLUCION PROBLEMA 2.79


DATOS
• Disco formateado con entrelazado cuádruple.
• S=8 sectores/pista
• Velocidad de rotación de f=6000 rpm=100 (rev/s)
• La cabeza lectora se encuentra en la pista correcta y sobre el punto de comienzo del sector 4.

En la figura se muestra la numeración de los sectores de un disco con 8 sectores por pista que posee
entrelazado cuadrúple:

3 0
6 5
1 2
4 7

El tiempo tp que se tarda en leer todos los sectores de una pista es la suma de tres contribuciones:

t p = tb + t r + tt

donde:
• tb es el tiempo medio de búsqueda de la pista. En este caso puesto que la cabeza lectora está
posicionada ya en la pista adecuada tb=0 s.
• tr es el tiempo de latencia rotacional que es el tiempo medio que tarda el sector en estar
debajo de la cabeza de lectura/escritura. Se calcula, de acuerdo con lo estudiado en teoría, a
partir de la siguiente expresión:

1 1
tr = = = 5 ms
2· f 2·100

• tt es el tiempo de transferencia de todos los sectores de una pista. Al existir entrelazado


cuádruple (fe=4), para leer la pista se comienza leyendo el sector 0 y después, para el resto de
sectores, primero la cabeza pasa por encima de cuatro sectores que ignora y lee el quinto. Por
tanto, la cabeza lectora pasa por un total de

N S = 1 + ( f e + 1)·( S − 1) = 1 + ( 4 + 1)·(8 − 1) = 36 sec tores

Por lo tanto
NS 36
tt = = = 0.045 s = 45 ms
S · f 8·100
Luego:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 90


TEMA 2: Unidad de memoria. Solución de los problemas

t p = tb + tr + tt = 0 + 5 + 45 = 50 ms

Otra forma de llegar a este mismo resultado es calcular el número de revoluciones R que da el disco en la
lectura de todos los sectores de una pista.Puesto que existe entrelazado cuádruple y la cabeza de
lectura/escritura se encuentra situada al comienzo del sector 4, en la primera rotación la cabeza lee el
sector 0. En la segunda rotación lee los sectores 1 y 2. En la tercera rotación lee el sector 3. En la cuarta
rotación lee los sectores 4 y 5. Finalmente en la quinta rotación lee los sectores 6 y 7. Luego R=5.

Nótese que puesto f=100 rev/s, el tiempo que tarda el disco en dar una rotación es 1/100=0.01 s. Luego el
tiempo que se emplearía en dar las 5 rotaciones necesarias para leer en su orden todos los sectores de una
pista sería

1 1
t p = R· = 5· = 50 ms
f 100

SOLUCION PROBLEMA 2.80


DATOS
• Memoria asociativa de n palabras y 8 bits/palabra.
• Registro argumento A
• Registro de máscara K
• Registro de marca M.
• Se desea conocer los valores de A y K que hacen que el bit j de del registro de marca
asociado a una palabra j de la memoria asociativa se ponga a 1 cuando sea un número impar.

El registro argumento A=[A7A6A5A4A3A2A1A0] contiene la palabra que se usa como modelo para buscar
en la memoria asociativa. Por su parte los bits del registro de máscara K=[K7K6K5K4K3K2K1K0] permiten
indicar lo bits del registro argumento que se desean comparar con los bits correspondientes de las
palabras de la memoria asociativa. Así sólo si Kh=1 el bit Ah se compara con el bit Pih de cada una de las
n palabras de la memoria. Sólo cuando todos los bits comparados de una palabra i de la memoria
asociativa coinciden con los del registro argumento el bit Mi del registro de marca se activa.

Un número binario es impar si su bit menos significativo vale 1. Ello implica que en el registro
argumento A debe estar cargada una palabra que termine en 1. Además el registro de máscara K también
debe tener su bit menos significativo a 1 para que se produzca la comparación del bit A0 con el bits Pi0 de
las palabras i=0,...,n-1. Luego

A=[XXXXXXX1]
K=[XXXXXXX1]
donde X puede valer 0 o 1.

Luego la respuesta correcta es la B.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 91


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.81


DATOS
• Disco formateado con entrelazado doble.
• S=8 sectores/pista.
• CS =16 Kbytes/sector
• Velocidad de rotación de f=4500 rpm=75 (rev/s)

La velocidad de transferencia máxima se consigue cuando se lee un único sector del disco, se define
como el cociente entre la capacidad de un sector CS y el tiempo tS que se tarda en leer un sector.

CS
vT max =
tS

La velocidad de rotación del disco es f=75 rev/s luego el tiempo que tarda en dar un giro completo será la
inversa, es decir, 1/75=0.0133 s. Puesto que el disco tiene 8 sectores por pista, para leer un único sector le
basta con dar 1/8 de vuelta, luego el tiempo de lectura de un sector es:

1/ f 1 1 1
tS = = = = ( s / sec tor )
S S · f 8·75 600

Por lo tanto

16 ( Kbytes / sec tor )


vT max = = 9600( Kbytes / s )
(1 / 600) ( s / sec tor )

SOLUCION PROBLEMA 2.82


DATOS
• Memoria caché con función de correspondencia asociativa por conjuntos.
• Formato de una dirección de memoria

40 bits

Etiqueta Conjunto Palabra

24 bits 8 bits 8 bits


• r = 4 bloques/ conjunto
• Longitud de una palabra L=2 bytes

Puesto que el campo CONJUNTO de una dirección tiene un tamaño de c=8 bits eso significa que la
memoria caché consta de q=2c =28 conjuntos.

Además puesto que el campo PALABRA de una dirección tiene un tamaño de p=8 bits cada bloque de
palabras consta de K=2p=28 palabras.

El número de bloques C de que consta la caché se determina de la siguiente forma

C = r (bloques / conjunto) ⋅ q (conjuntos ) = 4 ⋅ 28 = 210 bloques

Jose Manuel Díaz Tutor de ETC2 (Coslada) 92


TEMA 2: Unidad de memoria. Solución de los problemas

El número N de palabras que caben en la memoria caché es:

N = K ( palabras / bloque) ⋅ C (bloques) = 28 ⋅ 210 = 218 palabras

Luego la capacidad de la memoria caché es

C Mc = N ( palabras) × L(bytes / palabra) = 218 ·2 = 219 bytes = 512 Kbytes

SOLUCION PROBLEMA 2.83


DATOS
• Diseñar un sistema de memoria con las siguientes características:
16 bits de longitud de palabra.
512 Kpalabras de espacio direccionable.
64 Kpalabras de sólo lectura en la parte más baja y el resto de lectura-escritura.
• Se dispone los suficientes módulos en cantidad suficiente:
RAM de C01= 64 K x 8 bits
RAM de C02= 128 K x 16 bits
ROM de C03= 16 K x 16 bits
Decodificadores
• Los módulos disponen de una entrada de selección de circuito SC que se activa en alta (SC=1).

a) En primer se va determinar el número de módulos de memoria de cada tipo que son necesarios para
diseñar el sistema de memoria pedido. Para ello hay que tener en cuenta que la capacidad de memoria
total de este sistema es

C Mp = 512 K ( palabras) x 16(bits / palabras)

A la hora de realizar este diseño se van a seguir dos criterios: que el espacio de memoria desperdiciado
sea el mínimo posible y que el número de módulos utilizados sea el menor posible.

Se desea que las primeras 64Kpalabras sean de sólo lectura, luego la capacidad de esta parte es:

C ROM = 64 K ( palabras ) x 16(bits / palabras )

El número de módulos ROM de capacidad C03 necesarios para implementar CROM se obtiene de la
siguiente forma:

C ROM 64 K x 16
= = 4 módulos
C03 16 K x 16

Por otra parte, se desea que el resto de la palabras del sistema, es decir, 512K-64K=448 Kpalabras sean
de lectura/escritura, luego la capacidad de esta parte es:

C RAM = 448 K ( palabras ) x 16(bits / palabras )

Para diseñar esta parte siguiendo los criterios de diseño considerados se va a usar módulos RAM de
capacidad C02 para cubrir el mayor espacio de direcciones posibles y las direcciones que sobren se
implementaran con módulo RAM de capacidad C01.

El número de módulos RAM de capacidad C02 necesarios se obtiene de la siguiente forma:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 93


TEMA 2: Unidad de memoria. Solución de los problemas

C RAM 448 K x 16
= = 3.5 ≈ 3 módulos
C02 128 K x 16

Con tres módulos RAM de capacidad C02 se tienen 384K palabras de lectura/escritura, faltan todavía
448K-384K=64 Kpalabras x 16 bits de memoria que se pueden cubrir usando módulos de capacidad C01.
Como cada módulo de este tipo únicamente tiene palabras de 8 bits, es necesario, para formar palabras de
16 bits usar dos módulos con sus líneas del bus yuxtapuestas.

En resumen el sistema pedido se puede diseñar con 4 módulos ROM de capacidad C03, 3 módulos RAM
de capacidad C02 y2 módulos RAM de capacidad C01.

En segundo lugar se va a calcular el número n de bits para direccionar una palabra de este sistema, que se
puede obtener a partir del número total de palabras que tiene el sistema de memoria:

N = 512 Kpalabras = 29 ·210 palabras ≤ 2 n → n = 19 bits

Luego una dirección de memoria de este sistema tiene un tamaño de 19 bits. De forma general se puede
representar de la siguiente forma:

[A18A17A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0]

De acuerdo con el enunciado se van a usar los 4 módulos de memoria ROM de capacidad C03 para
implementar las direcciones bajas de memoria. Además, para simplificar la solución se van usar los dos
módulos RAM de capacidad C01 para implementar las direcciones intermedidas y los tres módulos RAM
de capacidad C02 para implementar las direcciones altas. En la Tabla .1 se muestran las direcciones que
permiten acceder a cada módulo, en dicha tabla X representa el valor de un bit 0 o 1. Se han omitido por
simplificar la tabla las columnas de los bits de dirección A12 a A0, que también serían todas X.

A18 A17 A16 A15 A14 A13 ... A0 Módulo


0 0 0 0 0 X ··· X ROM C03 #0
0 0 0 0 1 X ... X ROM C03 #1
0 0 0 1 0 X ... X ROM C03 #2
0 0 0 1 1 X ... X ROM C03 #3
0 0 1 X X X ... X RAM C01 #0 y #1
0 1 X X X X ... X RAM C02 #0
1 0 X X X X ... X RAM C02 #1
1 1 X X X X ... X RAM C02 #1
Tabla 1. Mapa de direcciones

Cada módulo ROM contiene 16 Kpalabras=214 palabras luego requiere los últimos 14 bits de cada
dirección para direccionarlas, es decir, [A13 A12 ...., A0] . Además para localizar en cual de los cuatro
módulos ROM se encuentra la palabra direccionada se requiere usar al menos dos bits de la dirección, en
este caso [A15A14]. Estos bits se introducen en decodificador [DEC0] de 2:4. Cada salida de DEC0 se
conecta a una entradas de selección de circuito [CS] de los módulos ROM.

Los módulos RAM de capacidad C01 contienen 64 Kpalabras=216 palabras luego requiere 16 bits para
direccionarlas, es decir, [A15 A14 ...., A0]. El bit de dirección A16 nos permite determinar si hay que
acceder a estos módulos RAM (A16=1) o a los módulos ROM (A16=0). Dicho bit se conecta a la entrada
de un decodificador [DEC1] de 1:2. La salida 0 (A16=0) de DEC1 se conecta a la entrada CS de DEC0.
Mientras que la salida 1 (A16=1) se conecta a las entradas CS de los módulos RAM de capacidad C01.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 94


TEMA 2: Unidad de memoria. Solución de los problemas

Un módulo RAM de capacidad C02 contiene 128 Kpalabras=217 palabras luego requiere 17 bits para
direccionarlas, es decir, [A16 A15 ...., A0]. Además para localizar en cual de los tres módulos RAM de
capacidad C02 se encuentra la palabra direccionada se requiere usar al menos dos bits de la dirección, en
este caso [A18A17] que deben conectarse a las entradas de un decodificador [DEC2] de 2:4. La salida 0
[A18=0A17=0] de DEC2 se conecta a la entrada CS de DEC 1. Las restantes salidas de DEC2 se conectan
a las entradas de selección de circuito [CS] de los módulos RAM de capacidad C02.

En la Figura 1 se muestra la distribución de los módulos de memoria, la conexión de las líneas del bus de
datos y de direcciones, así como la lógica de selección de dichos módulos.

ROM #0

DEC #0 ROM #1

ROM #2

ROM #3

DEC #1

RAM C01 #1
RAM C01 #0

RAM C02 #0
DEC #2

RAM C02 #1

RAM C02 #2

Figura 1: Sistema de memoria diseñado

b) Para contestar a este apartado hay que pasar la dirección 186A0 de hexadecimal a binario:

001 1000 0110 1010 0000

Examinando el mapa de memoria de la Tabla 1 o la propia Figura 1 se puede observar que como A18=0,
A17=0 y A16=1, dicha dirección dada hace referencia a una palabra almacenada en los dos módulos RAM
de capacidad C01.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 95


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.84


DATOS
• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp
• Mc: Capacidad 512 palabras y tiempo de acceso tac=15 nseg
• Mp: Capacidad 4096 Kpalabras y tiempo de acceso tap= 150 nseg
• 16 palabras por bloque
• Tasa de acierto h=0.95
• Cuando se produce un fallo en Mc :
• Se mueve el bloque completo a la caché.
• Se lee el dato desde la caché.

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 gestión del acierto. Normalmente se cumple que:

t ga = tac = 15 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 16 palabras desde la Mp a
la Mc, este movimiento emplea un tiempo de 16·tap, y a continuación lee el dato desde la caché. Luego tgf
es:

t gf = 16 ⋅ tap + tac = 16 ⋅ 150 + 15 = 2415 nseg

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

tam = 0.95 ⋅ 15 + 0.05 ⋅ 2415 = 14.25 + 120.75 = 135 nseg

SOLUCION PROBLEMA 2.85


DATOS
• Función de correspondencia asociativa por conjuntos.
• Q= 8 conjuntos
• P=32 palabras/bloque
• CMc=4096 palabras
• CMp=8192 Kpalabras

Una dirección de memoria desde el punto de vista de una Mc con función de correspondencia asociativa
por conjuntos tiene los siguientes campos:

n bits

Etiqueta Conjunto Palabra

e bits c bits p bits

El tamaño n de una dirección de memoria se puede obtener de la capacidad de memoria principal, ya que

Jose Manuel Díaz Tutor de ETC2 (Coslada) 96


TEMA 2: Unidad de memoria. Solución de los problemas

C Mp ≤ 2 n → 8192 K ≤ 2 n → 8192·210 ≤ 2 n → 213 ·210 ≤ 2 n → 2 23 ≤ 2 n

Luego n= 23 bits.

El tamaño p del campo palabra se puede obtener a partir del tamaño de un bloque de palabras ya que

P ≤ 2 p → 32 ≤ 2 p → 25 ≤ 2 p

Luego p= 5 bits.

El tamaño c del campo palabra se puede obtener a partir del número de conjuntos existentes en la
memoria caché

Q ≤ 2 2 → 8 ≤ 2 c → 23 ≤ 2 c

Luego c= 3 bits.

El tamaño e del campo etiqueta se obtiene de la siguiente forma:

e = n − (c + p ) = 23 − (5 + 3) = 15 bits

Luego

23 bits

Etiqueta Conjunto Palabra

15 bits 3 bits 5 bits

SOLUCION PROBLEMA 2.86


Este problema es igual que el problema 2.16.

SOLUCION PROBLEMA 2.87


DATOS
• CMp=64 Kbytes
• CMc=2 Kbytes
• Q= 2 conjuntos
• r= 4 bloques/conjunto
• Función de correspondencia asociativa por conjuntos
Nota: Se va a suponer en la resolución del problema que una palabra tiene una longitud de 1 byte.

a)Una dirección de memoria desde el punto de vista de una Mc con función de correspondencia asociativa
por conjuntos tiene los siguientes campos:

n bits

Etiqueta Conjunto Palabra

e bits c bits p bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 97


TEMA 2: Unidad de memoria. Solución de los problemas

El tamaño n de una dirección de memoria se puede obtener de la capacidad de memoria principal, ya que

C Mp ≤ 2 n → 64 K ≤ 2 n → 216 ≤ 2 n

Luego n= 16 bits.

Para obtener el tamaño p del campo palabra primero hay que calcular el número P de palabras que tiene
un bloque, que se puede obtener de la siguiente forma:

C Mc C Mc 2·( Kpalabras ) 2048


P= = = = = 256 (palabras/bloque)
C Q·r 2(conjuntos)·4(bloques / conjunto) 8

Se puede ahora aplicar la relación

P ≤ 2 p → 256 ≤ 2 p → 28 ≤ 2 p

Luego p= 8 bits.

El tamaño c del campo palabra se puede obtener a partir del número de conjuntos existentes en la
memoria caché

Q ≤ 2c → 2 ≤ 2c

Luego c= 1 bit

El tamaño e del campo etiqueta se obtiene de la siguiente forma:

e = n − (c + p ) = 16 − (1 + 8) = 7 bits

Luego

16 bits

Etiqueta Conjunto Palabra

7 bits 1 bit 8 bits

b) La memoria caché tiene 2 conjuntos (q=0,1) y 8 bloques (i=0,..,7). El conjunto q=0 contiene a los
bloques i=0,1,2,3 y el conjunto q=1 a los bloques i=4,5,6,7.

En una memoria caché con correspondencia asociativa por conjuntos cada bloque j de memoria principal
tiene asignado de antemano el conjunto q de memoria caché donde se va a almacenar. Dicha asignación
se realiza a través de la siguiente relación

q = j mod Q

Como Q=2 entonces si j es un número par se almacenará en el conjunto q=0 y si es un número impar en
el conjunto q=1.

c) Para responder a este apartado conviene recordar que la unión del contenido del campo etiqueta y del
campo conjunto de una dirección es precisamente el bloque j de memoria principal al que hace referencia

Jose Manuel Díaz Tutor de ETC2 (Coslada) 98


TEMA 2: Unidad de memoria. Solución de los problemas

dicha dirección. Luego sólo hay que pasar a binario los números de etiqueta y de conjunto dados en el
enunciado, unirlos para obtener el número de bloque j en binario y luego pasarlo a decimal:

etiqueta= 1010=00010102; conjunto= 0 → j= 000101002=2010


etiqueta= 810=00010002; conjunto= 0 → j= 000100002=1610
etiqueta= 910=00010012; conjunto= 0 → j= 000100102=1810
etiqueta= 1110=00010112; conjunto= 0 → j= 000101102=2210
etiqueta= 810=00010002; conjunto= 1 → j= 000100012=1710
etiqueta= 910=00010012; conjunto= 1 → j= 000100112=1910
etiqueta= 1010=00010102; conjunto= 1 → j= 000101012=2110
etiqueta= 1110=00010112; conjunto= 1 → j= 000101112=2310

SOLUCION PROBLEMA 2.88


DATOS
• n=24 líneas de dirección
• Función de correspondencia directa
• C=2048 bloques
• PB= 64 palabras/bloque

Del dato del número de líneas de dirección, se va a suponer que la capacidad de la memoria principal es
CMp=224 palabras.

Para resolver este problema se necesita en primer lugar determinar el número de bloques de palabras que
se pueden almacenar en la memoria principal:

C Mp 2 24 2 24
M = = = 6 = 218 bloques
PB 64 2

Del enunciado se sabe que en la memoria caché se pueden almacenar C=2048=211 bloques. Luego para
saber cuantos bloques de memoria principal tienen asignado el mismo bloque de memoria caché
simplemente hay que dividir ambas cantidades:

M 218
= 11 = 2 7 = 128 bloques
C 2

SOLUCION PROBLEMA 2.89


DATOS
• Computador de Von Neunmann.
• Longitud de palabra de 16 bits.
• Las instrucciones ocupan 1 o 2 palabras.
• El código de operación de las instrucciones ocupa 7 bits

I) En una arquitectura de Von Neunmann la memoria principal puede almacenar tanto datos como
instrucciones, luego cuando se direcciona una palabra de memoria esta puede ser un dato o una
instrucción. En conclusión la afirmación es VERDADERA.

II) Las señales de control se utilizan a nivel de la unidad de control del procesador. Con los datos del
enunciado no es posible conocer cual es el número de señales de control. Luego la afirmación es FALSA:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 99


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.90


DATOS
• Planta industrial con 4 sensores, que pueden estar apagados o encendidos.
• Los sensores se conectan a un computador.
• CMp=4K palabras.
• L=8 bits/palabra.
• Se desea que el estado de los sensores pueda leerse desde la CPU como si se tratase del contenido de
una celda de memoria.
• La celda está comprendida entre las direcciones 800 y 9FF

Del dato de la capacidad de memoria CMp=4K=212 palabras se deduce que las direcciones de memoria
tienen un tamaño de 12 bits:

[A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0]

Para determinar la interfaz pedida hay que pasar a binario las direcciones de inicio y finalización del
rango de memoria donde estará comprendida la celda de memoria:

80016= 1000 0000 0000


9FF16= 1001 1111 1111

De forma general una dirección dentro de este rango puede representarse en binario como

100X XXXX XXXX

donde X puede valer 0 o 1.

En conclusión cuando los bits A11 A10 A9 toman el valor 100 se tiene una dirección dentro del rango.
Luego la interfaz es:

A11 A10 A9

SOLUCION PROBLEMA 2.91


DATOS
• CMp=128K palabras.
• PB= 256 palabras/bloque
• CMc=2K palabras
• Función de correspondencia directa.

a) El número M de módulos (bloques) de Mp se determina de la siguiente forma:

C Mp 128 K 217
M = = = 8 = 29 = 512 módulos
PB 256 2

b) De forma general el formato de una dirección de memoria principal es el siguiente:

n bits

Bloque j de Mp Palabra

f bits p bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 100


TEMA 2: Unidad de memoria. Solución de los problemas

La longitud n de una dirección, es igual al número de bits necesarios para codificar todas las posibles
direcciones. Se obtiene resolviendo la desigualdad

CMp ≤ 2 n

Como CMp=128K =217 palabras entonces n=17 bits.

La longitud del campo palabra, es igual al número p de bits necesarios para codificar la posición de una
palabra en el interior de un bloque. Se obtiene resolviendo la desigualdad

PB ≤ 2 p

Como PB=256 =28 palabras entonces p=8 bits.

Finalmente, el tamaño f del campo Bloque j se obtiene restando las dos cantidades obtenidas
anteriormente:

f = n − p = 17 − 8 = 9 bits

Luego:

17 bits

Bloque j de Mp Palabra

9 bits 8 bits

b) Para una memoria caché Mc con función de correspondencia directa el formato de una dirección de
memoria desde el punto de vista de la Mc tiene la siguiente estructura:

n bits

Etiqueta Bloque i Palabra

e bits b bits p bits

El valor de n y p lo hemos determinado en el apartado anterior.

Para obtener el número de bits b que se necesitan para direccionar un bloque de la memoria caché,
primero hay que calcular el número de bloques C de la MC.

C Mc 2 K 211
C= = = 8 = 23 = 8 bloques.
PB 256 2
Se tiene por tanto que

C ≤ 2b → 23 ≤ 2b → b = 3 bits

Finalmente el número de bits del campo etiqueta son:

e = n − (b + p ) = 17 − (3 + 8) = 6 bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 101


TEMA 2: Unidad de memoria. Solución de los problemas

Luego:

17 bits

Etiqueta Bloque i Palabra

6 bits 3 bits 8 bits

d) En la memoria caché caben C=8 bloques, luego i=0,1,...,7. Por otro lado en la memoria caben M=512
bloques, luego j=0,1,..., 511. En una memoria caché con correspondencia directa cada bloque j de
memoria principal tiene asignado de antemano el bloque i de memoria caché donde se va a almacenar.
Dicha asignación se realiza a través de la siguiente relación

i = j mod C

En la siguiente tabla se muestran los bloques j de Mp que le corresponden a cada bloque i de Mc de


acuerdo con la relación anterior.

Bloques j de Mp Bloque i de Mc
0, 8, 16,..., 504 0
1, 9, 17,..., 505 1
2, 10, 18,..., 506 2
3, 11, 19,..., 507 3
4, 12, 20,..., 508 4
5, 13, 21,..., 509 5
6, 14, 22,..., 510 6
7, 15, 23,..., 511 7

SOLUCION PROBLEMA 2.92


DATOS
• Contenido Registro Argumento: 0 1 0 0 1 0
• Contenido Registro Máscara: 1 0 1 0 1 1
• En la primera palabra de la memoria asociativa está almacenada el valor 0.
• En las siguientes se encuentra el valor de la palabra inmediatamente anterior incrementado en 1.
• La última palabra contiene el valor 7.

Del enunciado se deduce que el contenido de la matriz de celdas es:

000000
000001
000010
000011
000100
000101
000110
000111
Conocido el valor del registro argumento, del registro de máscara y el contenido de la matriz de celdas, se
puede aplicar la metodología explicada, por ejemplo, en el Problema 2.6 para calcular el valor del registro
de marca. Se puede comprobar que se obtiene que el siguiente valor:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 102


TEMA 2: Unidad de memoria. Solución de los problemas

0
0
1
0
0
0
1
0

SOLUCION PROBLEMA 2.93


DATOS
• Disco magnético con 100 pistas.
• Secuencia de peticiones de pistas: 20, 80, 46, 15, 75.
• Posición de la cabeza lectora es 50.
• Planificación SSTF.

La Planificación SSTF (primero la de menor tiempo de posicionamiento) consiste en atender la petición


que requiere el menor movimiento de la cabeza de lectura/escritura desde su posición actual. Se elige por
tanto la opción que requiere el menor tiempo de búsqueda.

De acuerdo con la estrategia SSTF, la cabeza de lectura/escritura se moverá de la pista 50 (posición


inicial p0) a la pista más próxima de la cola (46). Una vez que se ha situado en dicha pista la siguiente
petición más próxima es la de la pista 20 y así sucesivamente. Por lo tanto las peticiones se atienden en el
siguiente orden:

Orden de atención de las (p1) (p2) (p3) (p4) (p5)


peticiones:
46 20 15 75 80
Número de pistas que se |p1-p0| |p2-p1| |p3-p2| |p4-p3| |p5-p4|
atraviesan
5 26 5 60 5

La longitud media de búsqueda es:


4 + 26 + 5 + 60 + 5
LMB = = 20
5

SOLUCION PROBLEMA 2.94


DATOS
• NSU= 16 superficies
• NPI= 5000 pistas/superficie
• NSE= 40 sectores/pista
• CSE= 630 bytes/sector
• 80 % de información neta
• f=6000 rev/min=6000/60=100 rev/s
• 1 Mbyte=106 bytes

a) La capacidad total del disco se calcula de la siguiente forma:

CTD = N SU · N PI · N SE ·CSE = 16·5000·40·630 = 2048 Mbytes

La capacidad neta se obtiene calculando el 80% de la capacidad total:

C ND = 0.8·CTD = 1638.4 Mbytes

Jose Manuel Díaz Tutor de ETC2 (Coslada) 103


TEMA 2: Unidad de memoria. Solución de los problemas

De forma general la velocidad de transferencia del disco se puede determinar como el cociente en la
cantidad de información N transferida en un determinado tiempo T.

N
vTD =
T
Por ejemplo, se puede calcular como el número de bytes que se pueden transferir en una vuelta completa.
De la velocidad de rotación f del disco se puede obtener el tiempo de rotación tr del disco, es decir, el
tiempo que tarda en dar una vuelta completa:

1 1
tr = = = 0.01 s
f 100

Por otra lado la capacidad de una pista CPI es

C PI = N SE ·CSE = 40·640 = 25600 bytes

Finalmente la velocidad de transferencia del disco se determina de la siguiente forma:

C PI 25600
vTD = = = 2.56·106 = 2.56 Mbytes / s
tr 0.01

b) Para resolver este apartado se debe calcular el tiempo T que tarda el disco en transferir X=32 bits a la
CPU. Despejando T en la expresión general de la velocidad de transferencia, sustituyendo valores y
operando se obtiene que:

X 32
T= = = 1.5625·10 −6 s = 1562.5 ns
vTD 2.56·106

c) Una interrupción del disco se produce, de acuerdo con el apartado anterior, cada T=1562.5 ns. Además
la secuencia de reconocimiento de la interrupción tiene una duración TSRI=20 ns. Por lo tanto el tiempo
máximo que tiene la rutina de servicio de la interrupción del disco para ejecutarse es:

max
TRTI = T − TSRI = 1562.5 − 20 = 1542.5 ns

Del enunciado se sabe que la velocidad de ejecución de la CPU es:

vE=1000 MIPS= 1000·106 instrucciones/s

Luego el número de instrucciones que como máximo puede ejecutar la rutina de tratamiento de la
interrupción se determina de la siguiente forma:

max
N RTI = v E ·TRTImax = 1000·106 ·1542.5·10 −9 ≈ 1542 instrucciones

Jose Manuel Díaz Tutor de ETC2 (Coslada) 104


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCION PROBLEMA 2.95


DATOS
• CMp = 128 (27) palabras
• CMc = 32 (25) palabras
• PB=8 (23) palabras/bloque
• Caché inicialmente vacía.
• Reemplazamiento FIFO
• Función de correspondencia totalmente asociativa

De los datos del enunciado se pueden calcular el número de bloques C de la MC.

C Mc 2 5
C= = 3 = 2 2 = 4 bloques.
K 2
Luego i=0,1,2 y3

Por otra parte, el número de bloques M de la Mp.

C Mp
27
M= = 3 =24 = 16 bloques.
K 2
Luego j=0,1,2,..,15

Puesto que la caché emplea correspondencia totalmente asociativa. La dirección desde el punto de vista
de la Mc tendría los siguientes campos:

n bits

Etiqueta Palabra

e bits p bits

La longitud n de una dirección, es igual al número de bits necesarios para codificar todas las posibles
direcciones. Se obtiene resolviendo la desigualdad

CMp ≤ 2 n

Como CMp=27 palabras entonces n=7 bits.

La longitud del campo palabra, es igual al número p de bits necesarios para codificar la posición de una
palabra en el interior de un bloque. Se obtiene resolviendo la desigualdad

PB ≤ 2 p

Como PB=23 palabras entonces p=3 bits.

El tamaño del campo etiqueta se determina de la siguiente forma

e = n − p = 7 − 3 = 4 bits

Debe recordarse que cuando se utiliza función de correspondencia totalmente asociativa el campo
etiqueta nos da el bloque j de Mp al que referencia la dirección.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 105


TEMA 2: Unidad de memoria. Solución de los problemas

En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.

Direcciones leídas Nº de bloque (j) de la Mp al que Fallo o acierto


hace referencia la dirección.
0000 100 0 Fallo se carga j=0 en i=0 que
inicialmente esta vacío
1000 001 8 Fallo se carga j=8 en i=1 que
inicialmente esta vacío
0000 101 0 Acierto
0010 011 2 Fallo se carga j=2 en i=2 que
inicialmente esta vacío
0100 010 4 Fallo se carga j=4 en i=3 que
inicialmente esta vacío
1000 100 8 Acierto
0000 111 0 Acierto

Número total de fallos: 4 Fallos

SOLUCIÓN PROBLEMA 2.96


DATOS
• En un Bus se han conectado la memoria principal y tres discos iguales.
• La velocidad de transferencia de cada disco es vTD=4·107 (bits/seg).
• La longitud de una palabra es de 16 bits.
• Cada transmisión sobre el bus necesita 500 nseg para enviar el dato y las diferentes ordenes del
protocolo.
• Se desea usar un Bus con temporización síncrona

En un bus con temporización sincrona, todos los dispositivos conectados a él están funcionando con una
frecuencia de reloj fija. Su utilización es conveniente cuando los dispositivos que tiene conectados tienen
velocidades de transferencia vT muy parecidas ya que si se tienen conectados un grupo heterogéneo de
dispositivos, con velocidades muy distintas, el bus debe adecuarse al más lento impidiendo que los más
rápidos empleen todo su potencial.
En este problema se sabe que el bus tiene conectado la memoria principal Mp y tres discos duros . De
acuerdo con el razonamiento anterior, si se desea utilizar un bus con temporización síncrona la memoria
principal verá limitada su velocidad por la de los discos que son mas lentos. Luego la velocidad de
transferencia de la memoria principal será igual a la de los discos:
vTM = vTD
De forma general la velocidad de transferencia de la memoria se puede determinar como el cociente en la
cantidad de información N transferida en un determinado tiempo T.
N
vTM =
T
Se sabe que el tiempo de ciclo tc es el tiempo que debe transcurrir entre dos operaciones consecutivas
sobre una palabra de la memoria.
Luego
1 palabra 16bits
vTM = =
tc tc
Despejando tc y operando se obtiene:
16 16bits
tc = = 7
= 25 ⋅ 10 −9 s = 25 ns
vTM 4·10

Jose Manuel Díaz Tutor de ETC2 (Coslada) 106


TEMA 2: Unidad de memoria. Solución de los problemas

SOLUCIÓN PROBLEMA 2.97


DATOS
• tam=18 ns
• 1-h=0.2 - h=0.8
• tap=50 ns

El tiempo de acceso medio al conjunto memoria caché + memoria principal se define como

t am = h ⋅ t ga + (1 − h) ⋅ t gf

Donde tga es el tiempo de gestión del acierto, que es igual al tiempo de acceso medio a la caché tac y tgf el
tiempo de gestión del fallo. En este problema indican que tgf=tap

Luego se tiene que


tam = h ⋅ tac + (1 − h) ⋅ tap
Despejando tac, sustituyendo valores y operando se obtiene:

tam − (1 − h ) ⋅ tap 18 − 0.2 ⋅ 50 8


tac = = = = 10 ns
h 0. 8 0. 8

SOLUCION PROBLEMA 2.98


DATOS
• Bus de direcciones de 16 bits.
• Bus de datos de 8 bits
• 2 módulos de memoria RAM de 8K x8
• 1 modulo de memoria ROM 16Kx8.
• Posiciones de memoria más baja ocupadas por la ROM.
• Posiciones de memoria más altas ocupadas por la RAM.
• Diseñar el circuito de decodificación necesario.

a) Una dirección de memoria de este sistema tiene un tamaño de 16 bits. De forma general se puede
representar de la siguiente forma:

[A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0]

De acuerdo con el enunciado el módulo de memoria ROM 16 K x 8 debe ocupar las direcciones bajas de
memoria. Dicho módulo contiene 16 Kpalabras=214 palabras luego requiere los últimos 14 bits de cada
dirección para direccionarlas, es decir, [A13 A12 ...., A0] . Puesto que son las direcciones más bajas [A15
A14]=[0 0]

Por otra parte se desea que los dos módulos RAM ocupen las direcciones más altas de memoria. Cada
módulo RAM tiene una capacidad de 8 Kpalabras=213 palabras luego requiere 13 bits para direccionarlas,
es decir, [A12 A15 ...., A0]. Además para localizar en cual de los dos módulos RAM se encuentra la
palabra direccionada se requiere usar al menos un bits de la dirección, en este caso [A13]. Si A13=0 se
accederá al modulor RAM#0 y si A13=1 se accederá al módulo RAM#1. Puesto que se trata de las
direcciones más altas [A15 A14]=[1 1]

En la Tabla .1 se muestran las direcciones que permiten acceder a cada módulo, en dicha tabla el símbolo
X representa el valor de un bit 0 o 1. Se han omitido por simplificar la tabla las columnas de los bits de
dirección A11 a A1, que también serían todas X.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 107


TEMA 2: Unidad de memoria. Solución de los problemas

A15 A14 A13 A12 ... A0 Módulo


0 0 X X ··· X ROM
0 1 0 X ... X Direcciones no asignadas
0 1 1 X ... X Direcciones no asignadas
1 0 0 X ... X Direcciones no asignadas
1 0 1 X ... X Direcciones no asignadas
1 1 0 X ... X RAM#0
1 1 1 X ... X RAM#1
Tabla 1. Mapa de direcciones

b) En la Figura 1 se muestra la distribución de los módulos de memoria, la conexión de las líneas del bus
de datos y de direcciones, así como la lógica de selección de dichos módulos que se ha implementado con
un decodificador de 3:8. Dicho decodificador recibe como entradas [A15A14A13]. Si dichas líneas de
dirección toman el valor [000] o [001] se activa al módulo ROM. Si toman valor [110] se activa al
módulo RAM#0 y si toman el valor [111] se activa al módulo RAM#1. Los valores [010],[011],[100] y
[101] provocarán un error de direccionamiento, ya que dichas direcciones no tienen asignado una
posición física.

8 [D7, D6, …, D0]


[A12, A11, …, A0] 13

Bus de datos
ROM
16K x 8

SC
Bus de 0
direcciones
1
8
A13 0 2
RAM
A14 1 3 8K x 8
DEC SC
A15 3:8
2 4

5 8

6 RAM
8K x 8
7 SC

R/W (R=0, W=1)

Figura 1: Circuito de decodificación pedido

Jose Manuel Díaz Tutor de ETC2 (Coslada) 108


Capítulo 2

AUTOEVALUACIÓN

AUTOEVALUACIÓN 2.1
Un computador con una longitud de palabra de 16 bits tiene un bus de direcciones de 24 bits (A23 - A0). Se
desea diseñar su unidad de memoria para que tenga una capacidad de 3M palabras con palabras de 16 bits. Se
dispone para ello de módulos RAM de capacidad 1M con palabras de 8 bits. Suponiendo que las direcciones
de memoria son consecutivas empezando en la dirección 0, indicar razonadamente si las siguientes
afirmaciones son verdaderas o falsas:
a) Una expresión lógica que sirve para detectar direcciones no válidas es: A23 + A22 + A21 A20
b) 5 módulos de RAM son suficientes para obtener la capacidad de memoria deseada.

AUTOEVALUACIÓN 2.2
Una planta industrial utiliza 4 sensores para poder ser controlada. Cada uno de ellos puede estar apagado o
encendido. Se desea conectar dichos sensores a un computador que dispone de una memoria de 4K palabras,
cada una de las cuales consta de 8 bits. Indicar un interfaz de comunicación apropiado entre la CPU y los
sensores, para que el estado de dichos sensores pueda leerse desde la CPU como si se tratase del contenido de
una posición de memoria y dicha posición esté comprendida entre la dirección 800 y la 9FF.

AUTOEVALUACIÓN 2.3
Un sistema jerárquico de memoria tiene una memoria caché de 256 palabras con un tiempo de acceso de 10
ns, y una memoria principal de 1024 K palabras con un tiempo de acceso de 50 ns. 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 5 ns adicionales en tratar el fallo y la palabra solicitada se envia de la memoria principal a la
memoria caché, desde donde se lee por la CPU.
Discos magnéticos

Problemas desde el 3.26 al 3.32.


El problema 3.33 está mal planteado

Problema 3-30
Una unidad de disco tiene 16 sectores por pista de 1024 bytes cada uno. El disco gira a 3600 rpm y tiene un tiempo medio de
búsqueda de 25 ms. Calcular el tiempo que se necesita para transferir 25 sectores dispuestos de forma contigua.

Solución
Los 25 sectores corresponden a la lectura de 2 pistas. Se tiene que calcular pues el tiempo necesario para leer estas dos pistas
(de la 2a pista solo hay que leer 9 sectores), para lo cual se debe tener en cuenta el tiempo medio de búsqueda, el retardo
rotacional y el tiempo de lectura.

Tiempo para leer la primera pista:

• Tiempo medio de búsqueda: t b = 25 ms


• Retardo rotacional: tr es el tiempo medio que tarda el sector en estar debajo de la cabeza de lectura/escritura. Así,
1 1
tr = = = 8,3ms (tiempo que tarda en dar ½ vuelta
2 × f 3600 × 2
60
• Tiempo de transferencia de los 16 sectores que forman una pista:

b 16 × 1024 × 1000ms
tt = = = 16,66ms
P× f 16 × 1024 ×
3600
60
El tiempo total para leer la primera pista, corresponde a la suma de todos los tiempos:
t1ª pista = tb + t r + tt = 25 + 8,33 + 16,66 = 50ms
Tiempo para leer en la siguiente pista los nueve sectores que quedan:

• Tiempo de búsqueda: t b = 0 ms

• Retardo rotacional: t r = 8,3 ms

• Tiempo de transferencia: De los 9 sectores que quedan:

b 9 ×1024 ×1000ms
tt = = = 9,375ms
P× f 16 ×1024 ×
3600
60
El tiempo empleado para leer la segunda pista es:

t 2 ª pista = t b + t r + tt = 0 + 8,33 + 9,375 = 17,705ms


El tiempo total que se precisa para la lectura de los 25 sectores es por tanto:

t 25 sec tores = t1ª pista + t 2 ª pista = 50 + 17,705 = 67,705ms


Página 3
Discos magnéticos
Problema 3-31
Repetir el problema anterior cuando los 25 sectores están dispuestos de forma aleatoria sobre la superficie del disco. Indicar
cuales son los factores que mas pesan para determinar estos tiempos. Especificar claramente las hipótesis que se realicen.

Solución

Al ser el acceso aleatorio se debe buscar individualmente cada sector, por lo tanto, siempre se deberá tener en
cuenta el tiempo de búsqueda y además se supondrá un retardo rotacional medio, es decir, que el encontrar un
sector supone media vuelta. Por otra parte, en el caso anterior para la segunda pista el tiempo de búsqueda era nulo y
el retardo rotacional se calculaba al estar los sectores consecutivos. Así,

Tiempo empleado en la lectura de un sector:

• Tiempo medio de búsqueda: t b = 25 mseg


• Retardo rotacional:

1 1
tr = = = 8,3ms
2 × f 3600 × 2
60
• Tiempo de transferencia de un sector:

b 1 × 1024 × 1000ms
tt = = = 1,042ms
P × f 16 × 1024 × 3600
60
El tiempo total de acceso a un sector, será la suma de todos los tiempos:
tun sec tor = tb + tr + tt = 25 + 8,33 + 1,042 = 34,372ms
El tiempo de acceso a los 25 sectores es por lo tanto:
t25 sec tores = tun sec tor × 25 = 34,372 × 25 = 859,3ms

4.- Una memoria de acceso no aleatorio con velocidad de transferencia de 2 × 10 bits/seg, emplea en promedio 2 mseg en colocar
6
3
en su posición la cabeza de lectura-escritura. ¿Cuál es el tiempo medio que tarda en leer o escribir 10 bytes?

A) 6 mseg B) 2 mseg C) 4 mseg D) Ninguna de las anteriores

Página 4
Capítulo 2

AUTOEVALUACIÓN

AUTOEVALUACIÓN 2.1
Un computador con una longitud de palabra de 16 bits tiene un bus de direcciones de 24 bits (A23 - A0). Se
desea diseñar su unidad de memoria para que tenga una capacidad de 3M palabras con palabras de 16 bits. Se
dispone para ello de módulos RAM de capacidad 1M con palabras de 8 bits. Suponiendo que las direcciones
de memoria son consecutivas empezando en la dirección 0, indicar razonadamente si las siguientes
afirmaciones son verdaderas o falsas:
a) Una expresión lógica que sirve para detectar direcciones no válidas es: A23 + A22 + A21 A20
b) 5 módulos de RAM son suficientes para obtener la capacidad de memoria deseada.

Solución

La afirmación del apartado a) es verdadera y la afirmación del apartado b) es falsa.

AUTOEVALUACIÓN 2.2
Una planta industrial utiliza 4 sensores para poder ser controlada. Cada uno de ellos puede estar apagado o
encendido. Se desea conectar dichos sensores a un computador que dispone de una memoria de 4K palabras,
cada una de las cuales consta de 8 bits. Indicar un interfaz de comunicación apropiado entre la CPU y los
sensores, para que el estado de dichos sensores pueda leerse desde la CPU como si se tratase del contenido de
una posición de memoria y dicha posición esté comprendida entre la dirección 800 y la 9FF.

Solución

Si se numeran las líneas de dirección desde la A0 a la A11, siendo A0 la menos significativa, los bits con
direccionamiento común equivalen a la siguiente combinación:
A11 =1, A10 =0, A9 =0
INGENIERÍA DE COMPUTADORES I

AUTOEVALUACIÓN 2.3
Un sistema jerárquico de memoria tiene una memoria caché de 256 palabras con un tiempo de acceso de 10
ns, y una memoria principal de 1024 K palabras con un tiempo de acceso de 50 ns. 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 5 ns adicionales en tratar el fallo y la palabra solicitada se envia de la memoria principal a la
memoria caché, desde donde se lee por la CPU.

Solución

El tiempo de acceso medio es de 15,5 ns.

AUTOEVALUACIÓN 2.4
Un disco formateado con entrelazado doble, tiene 32 sectores de 1K bytes y una velocidad de rotación de
7200 rpm. ¿Cuánto tardará en leer, en su orden, todos los sectores de una pista suponiendo que la cabeza de
lectura se encuentra en la pista correcta y sobre el punto de comienzo del sector 0?

Solución

Se tardan 24,48 ms.


SOLUCIÓN

TEST

1.- Se dispone de un computador que emplea dos niveles de memoria caché y una memoria principal. Los
tiempos medios de acceso a la memoria caché de primer nivel, a la de segundo nivel y a la memoria principal
son de 4 ns, 10 ns y 122 ns respectivamente. La tasa de acierto de la memoria caché de primer nivel es 0,9 y la
tasa de acierto combinada de ambas cachés es 0,8. Calcular el tiempo de acceso medio al sistema conjunto de
memoria.
A) 24.4 ns B) 29 ns C) 32,6 ns D) Ninguna de las anteriores.
Solución

El tiempo de acceso a un sistema con caché de primer y segundo nivel se puede determinar mediante la
expresión mostrada en la página 94 del libro de teoría:
ta = [h1  tca1 + (1 - h1)  tca2] + (1-h2)  tp

Donde: tca1 es el tiempo de acceso medio a la caché de primer nivel, tca2 es el tiempo de acceso medio a la caché
de segundo nivel, tp es el tiempo de acceso medio a la memoria principal, h1 es la tasa de acierto de la memoria
caché de primer nivel y h2 la tasa de acierto combinada de ambas cachés.

Por lo tanto, sustituyendo los datos del problema


ta = [0,9  4 + 0,1  10] + 0,2  122 = 3,6 + 1 + 24,4 = 29 ns

Respuesta: B

2.- En un computador que funciona a una velocidad de 105 ciclos/s, una instrucción emplea, en promedio, 5
ciclos máquina en ser ejecutada y en 2 de esos ciclos no hace uso del bus. Este computador tiene un controlador
de DMA que emplea 2 ciclos en la transferencia de una palabra.
I. Utilizando DMA transparente la máxima velocidad de transferencia de datos es de 20.000 palabras/s.
II. Empleando DMA por robo de ciclos la máxima velocidad de transferencia de datos es superior a
15.000 palabras/s.

A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.
Solución

Con DMA transparente, se transmite cuando no se está utilizando el bus. Por tanto, la velocidad de transferencia
se calcula como sigue:

((105 ciclos/s) / (2 ciclos/palabra)) / ((5 ciclos/instr.) / (2 ciclos/instr.) = 2  104 palabras/s

Por tanto la primera afirmación es cierta.

Con DMA por robo de ciclos se transmite en el ciclo de instrucción y además durante el tiempo que se tarda en
transmitir una palabra, por lo tanto:

(105 ciclos / s) / (5 ciclos/instr. + 2 ciclos/palabra) = (10/7) 104 palabras /s

Por tanto la segunda afirmación es falsa.

Respuesta: B

3.- Se desea diseñar un circuito sumador/restador de dos números binarios sin signo de n bits cada uno
utilizando una memoria ROM. Una señal de control indica el tipo de operación a realizar. El tamaño mínimo de
la memoria ROM será de:
A) 22n+1 × 2n B) 22n × 4 C) 2n+1 × 2n D) Ninguna de las anteriores.
Solución

La memoria ROM deberá tener n + n + 1 = 2n + 1 líneas de dirección, ya que los números a sumar son de n bits
cada uno (requieren cada uno n líneas de dirección) y además hay que considerar la línea correspondiente a la
señal de control (suma/resta).

Por otra parte la suma de dos números sin signo de n bits cada uno da un resultado que como máximo tiene
n + 1 bits. Como consecuencia de lo anterior la ROM resultante debe tener la siguiente capacidad total:

22n+1 palabras × (n + 1) bits/palabra

La respuesta correcta es la D: Ninguna de las anteriores.

Respuesta: D

4.- La CPU de un computador ejecuta instrucciones de 32 bits de longitud. Si el bus tiene una anchura de 8
líneas de datos y 16 de dirección, indicar cual es la respuesta correcta:
A) La CPU deberá acceder a la memoria 4 veces para ejecutar cada instrucción.
B) La CPU accederá a la memoria 2 veces para ejecutar cada instrucción.
C) El número de accesos a memoria depende de cuantas líneas de control tenga el bus.
D) Ninguna de las respuestas anteriores es correcta.

Solución

Si el bus tiene únicamente 8 líneas de datos, tendrá que realizar 4 accesos a memoria para completar cada
instrucción, puesto que las instrucciones son de 32 bits. (Ver página 23 del libro de teoría).

Téngase en cuenta que: 8 líneas de datos × 4 accesos = 32 bits de instrucción.

Respuesta: A

5.- En el diseño de una Unidad de Control de 64 estados con una memoria ROM, un registro y un multiplexor,
empleando el método de selección por campo, y siendo posible consultar en cada estado una única condición de
las 12 existentes, es necesario que el registro tenga una capacidad de:
A) 5 bits. B) 10 bits. C) Faltan datos para calcularlo. D) Ninguna de las anteriores.

Solución

[Ver los problemas 5-10 y 5-22, o la página 311 del texto de teoría]. El registro almacena el estado y unos bits
adicionales seleccionan la(s) condición(es). Para codificar el estado hacen falta 6 bits (26 = 64). Para
seleccionar la condición son necesarios otros 4 bits (24 = 16 > 12). Por lo tanto, el registro tiene que tener:
6 + 4 = 10 bits

Respuesta: B

6.- El formato de instrucción de un procesador utiliza 6 bits para el código de operación y 14 bits para el campo
de dirección. Considerando que el procesador tiene 8 registros de 8 bits cada uno para uso general, ¿cuántos
campos y de cuántos bits cada uno es necesario añadir al formato de instrucción inicial para poder realizar un
direccionamiento indexado a través de registros?
A) 1 campo de 3 bits. B) 2 campos de 3 bits. C) 1 campo de 2 bits. D) Ninguna de las anteriores.
Solución

La dirección efectiva en un direccionamiento indexado a través de registros se obtiene como la suma de una
dirección base de memoria contenida en el campo de dirección de la instrucción y un desplazamiento
(contenido en el registro índice). Por tanto, es necesario añadir un campo de registro con 3 bits para poder
referenciar cualquiera de los 8 (23) registros diferentes del procesador. El formato de instrucción será:

Código de operación (6 bits) Dirección (registros)(3 bits) Base(14 bits)

Respuesta: A

7.- El formato de instrucción de un procesador de una dirección tiene 6 bits para el código de operación y 10
bits para la dirección del operando. Indicar cuál es la codificación en binario de una instrucción de bifurcación,
con direccionamiento relativo al contador de programa, almacenada en la posición 500 (en decimal), que
origina un salto a la posición 590 (en decimal), cuyo código de operación es 1110011:
A) 1110111110100101 B) 1110110001011010 C) 0000110001011010 D) 1110111110100110
Solución

El operando de la instrucción codifica el valor del salto a realizar. Como se salta de la posición 500 a la
posición 590, el valor del salto es 90 ( = 590 - 500). Codificando 90 en binario con 10 bits se obtiene:
0001011010. En resumen, la instrucción tiene el código de operación 111011, propuesto en el enunciado, y
como operando el valor calculado antes 0001011010.

Por tanto la codificación en binario de esta instrucción es: 1110110001011010

Respuesta: B

Nota: Al haberse detectado que al código de operación del enunciado le sobra un dígito, se ha dado por buena
tanto la respuesta B como la D. Si se considera que el código de operación es de 6 dígitos, la respuesta correcta
es la B. En el caso de considerar el código de operación de 7 dígitos, la respuesta correcta es la D.

8.- Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido:
I. La posición de conexión de los dispositivos a la línea de arbitraje 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.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

[Ver apartado 1.4.4 del libro de teoría, en concreto en la página 29, figura 1.25 se trata sobre los buses de
arbitraje distribuido]

I. Cierta, puesto que el dispositivo más cercano es el de máxima prioridad.

II. Falsa. Mientras la línea de bus ocupado está activada, ningún otro módulo puede acceder al bus, aunque sea
más prioritario.

Respuesta: B
PROBLEMA

Considérese un computador con un microprocesador cuyo juego de instrucciones permite 60 códigos de


operación diferentes, y que realiza las operaciones de entrada/salida mediante interrupciones.

A) (1 pto) ¿Cuál será el formato de instrucción y el número de bits necesarios para poder direccionar 16.384
posiciones de memoria directamente?
B) (1 pto) Si la palabra de memoria es de 32 bits, ¿cuántas posiciones de memoria se podrán direccionar
utilizando direccionamiento indirecto?
C) (1 pto) Considerando que el microprocesador tiene 8 registros de 8 bits cada uno para uso general, ¿qué
campo y con cuántos bits es necesario añadir al formato de instrucción del apartado A) para poder realizar
un direccionamiento indexado a través de registros?
D) (0,5 ptos) ¿Cuál será el rango de direccionamiento en este último caso?
E) (0,5 ptos) Al llevarse a cabo una operación de entrada/salida, ¿cuál será el tiempo máximo para que el
procesador reconozca una interrupción?

SOLUCIÓN
A) Para poder disponer de un juego de instrucciones con 60 códigos de operación diferentes es necesario un
campo para el código de operación de 6 bits, ya que 26 = 64 > 60.
Por otro lado, para poder direccionar 16.384 posiciones de memoria directamente es necesario un campo de
dirección de 14 bits, ya que 214 = 16.384. Por tanto, el formato de instrucción será:

Código de operación (6 bits) Dirección (14 bits)

B) En el direccionamiento indirecto la dirección efectiva se encuentra en la posición de memoria referenciada


en el campo de dirección de la instrucción. Por tanto, dado que la palabra de memoria es de 32 bits, se podrán
direccionar 232 posiciones de memoria utilizando direccionamiento indirecto.

C) La dirección efectiva en un direccionamiento indexado a través de registros se obtiene como la suma de una
dirección base de memoria y el contenido del registro índice del banco de registros. Por tanto, es necesario
añadir un campo de registro con 3 bits para poder referenciar cualquiera de los 8 (23) registros diferentes del
procesador. El formato de instrucción será:

Código de operación (6 bits) Dirección (3 bits) Base (14 bits)

D) Como los registros son de 8 bits, con ellos se puede referenciar desde la dirección 0 hasta la dirección 255
(28-1), y como el campo de dirección es de 14 bits se puede representar desde la dirección 0 hasta la dirección
16.383 (214-1).
Por tanto, el rango de direccionamiento utilizando direccionamiento indexado a través de registros es desde
0 (0+0) hasta 16.638 (255+16.383).

E) Dado que el procesador termina la instrucción en curso antes de atender una interrupción, el tiempo máximo
de reconocimiento de una interrupción será el tiempo de la instrucción que más tarde en ejecutarse.
 El siguiente diagrama representa una memoria asociativa y su contenido. Calcule los valores del registro de marcas.
0 1 0 1 1 1 0 0 argumento

1 0 1 0 1 1 0 1 máscara

1 1 0 0 1 1 1 1 1 ? m
2 0 1 0 1 1 0 1 0 ? a
3 0 1 0 1 0 0 1 0 ? r
4 0 1 0 0 1 1 1 0 c
?
a
5 0 0 0 1 1 1 1 0 ? s
contenidos

El algoritmo general del funcionamiento de una memoria asociativa es:

Enmascarar el argumento con la máscara


PARA la primera palabra HASTA la última palabra HACER
Comparar el argumento enmascarado con la palabra en curso
SI son iguales ENTONCES marca en curso := 1 SINO marca en curso := 0
FINSI
FINPARA

Enmascarar el argumento
0 1 0 1 1 1 0 0 argumento sin enmascarar
1 0 1 0 1 1 0 1 máscara
0 0 1 1 0 argumento enmascarado

1.1 Comparar el argumento enmascarado con la 1ª palabra


0 0 1 1 0
1 1 0 0 1 1 1 1 1 0

1.2 Comparar el argumento enmascarado con la 2ª palabra


0 0 1 1 0
2 0 1 0 1 1 0 1 0 0

1.3 Comparar el argumento enmascarado con la 3ª palabra


0 0 1 1 0
3 0 1 0 1 0 0 1 0 0

1.4 Comparar el argumento enmascarado con la 4ª palabra


0 0 1 1 0
4 0 1 0 0 1 1 1 0 1

1.5 Comparar el argumento enmascarado con la 5ª palabra


0 0 1 1 0
5 0 0 0 1 1 1 1 0 0

Arquitectura de Computadoras 1 Ejercicios de Memorias Asociativas


 El siguiente diagrama representa una memoria asociativa y su contenido. Calcule los valores del registro de marcas.
1 0 0 1 1 0 1 0 argumento
1 0 0 1 0 1 0 1 máscara
1 1 1 0 1 1 1 1 1 1 e ? m
2 1 1 0 1 1 0 1 0 1 t ? a
3 1 0 0 1 0 0 0 0 1 i r
?
1 0 1 0 0 1 1 0 0 q c
4 ?
u a
5 1 1 0 1 1 0 0 0 0
e ? s
contenidos t
a
s

El algoritmo general del funcionamiento de una memoria asociativa (con etiqueta de validez) es:

Enmascarar el argumento con la máscara


PARA la primera palabra HASTA la última palabra HACER
Si Etiqueta en curso == 0 ENTONCES marca en curso := 0
SINO
Comparar el argumento enmascarado con la palabra en curso
SI son iguales ENTONCES marca en curso := 1
SINO marca en curso := 0
FINSI
FINSI
FINPARA

Enmascarar el argumento
1 0 0 1 1 0 1 0 argumento sin enmascarar
1 0 0 1 0 1 0 1 máscara
1 1 0 0 argumento enmascarado

1.1 Comparar el argumento enmascarado con la 1ª palabra


1 1 0 0
1 1 1 0 1 1 1 1 1 0

1.2 Comparar el argumento enmascarado con la 2ª palabra


1 1 0 0
2 1 1 0 1 1 0 1 0 1

1.3 Comparar el argumento enmascarado con la 3ª palabra


1 1 0 0
3 1 0 0 1 0 0 0 0 1

1.4 No se compara el argumento enmascarado con la 4ª palabra. Directamente: marca en curso := 0

1.5 No se compara el argumento enmascarado con la 5ª palabra. Directamente: marca en curso := 0

Arquitectura de Computadoras 2 Ejercicios de Memorias Asociativas


 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del registro argumento, del registro de
máscara y del registro de marca; de las tres opciones dadas ¿cuál podría ser el contenido de la sexta columna de la memoria?.

0 1 0 1 1 1 0 0 argumento

1 0 1 0 1 1 0 1 máscara Opción A) Opción B) Opción C)

m
1 0 1
1 1 0 0 1 1 ? 1 1 0 1 1 0
2 0 1 0 1 1 ? 1 0 0 a
r 1 1 1
3 0 1 0 1 0 ? 1 0 0
c 1 1 1
4 0 1 1 0 1 ? 1 0 0 a 1 1 1
5 0 0 0 1 1 ? 1 0 1 s
contenidos

Algoritmo general del funcionamiento de una memoria asociativa adaptado a este problema:

Enmascarar el argumento con la máscara


PARA opción A HASTA opción C HACER
Rellenar la columna incógnita con la opción en curso
PARA la palabra 1ª HASTA la palabra 5ª HACER
Comparar el argumento enmascarado con la palabra en curso
SI son iguales ENTONCES marca en curso := 1 SINO marca en curso := 0
FINSI
FINPARA
FINPARA

Enmascarar el argumento
0 1 0 1 1 1 0 0 argumento sin enmascarar
1 0 1 0 1 1 0 1 máscara
0 0 1 1 0 argumento enmascarado

A.- Columna de la opción A)

0 0 1 1 0 argumento enmascarado
1 1 0 0 1 1 1 1 1 0 m
2 0 1 0 1 1 1 1 0 0 a
r
3 0 1 0 1 0 1 1 0 0
c
4 0 1 1 0 1 1 1 0 0 a
5 0 0 0 1 1 1 1 0 1 s
contenidos

A.1 Comparar el argumento enmascarado con la 1ª palabra


0 0 1 1 0
1 1 0 0 1 1 0 1 1 0 Con la opción A), la marca de la palabra 1ª es correcta

A.2 Comparar el argumento enmascarado con la 2ª palabra


0 0 1 1 0
2 0 1 0 1 1 1 1 0 0 Con la opción A), la marca de la palabra 2ª es incorrecta

A.3 Comparar el argumento enmascarado con la 3ª palabra


0 0 1 1 0
3 0 1 0 1 0 1 1 0 0 Con la opción A), la marca de la palabra 3ª es correcta

A.4 Comparar el argumento enmascarado con la 4ª palabra


0 0 1 1 0
4 0 1 1 0 1 1 1 0 0 Con la opción A), la marca de la palabra 4ª es correcta

A.5 Comparar el argumento enmascarado con la 5ª palabra


0 0 1 1 0
5 0 0 0 1 1 1 1 0 1 Con la opción A), la marca de la palabra 5ª es correcta

Las marcas generadas con esta opción no coinciden todas con sus marcas correspondientes existentes en la memoria asociativa. Por
tanto, con esta opción no se produciría el registro de marca dado.

Arquitectura de Computadoras 3 Ejercicios de Memorias Asociativas


B.- Columna de la opción B)

0 0 1 1 0 argumento enmascarado
1 1 0 0 1 1 0 1 1 0 m
2 0 1 0 1 1 1 1 0 0 a
r
3 0 1 0 1 0 1 1 0 0
c
4 0 1 1 0 1 0 1 0 0 a
5 0 0 0 1 1 1 1 0 1 s
contenidos

B.1 Comparar el argumento enmascarado con la 1ª palabra


0 0 1 1 0
1 1 0 0 1 1 0 1 1 0 Con la opción B), la marca de la palabra 1ª es correcta

B.2 Comparar el argumento enmascarado con la 2ª palabra


0 0 1 1 0
2 0 1 0 1 1 1 1 0 0 Con la opción B), la marca de la palabra 2ª es incorrecta

B.3 Comparar el argumento enmascarado con la 3ª palabra


0 0 1 1 0
3 0 1 0 1 0 1 1 0 0 Con la opción B), la marca de la palabra 3ª es correcta

B.4 Comparar el argumento enmascarado con la 4ª palabra


0 0 1 1 0
4 0 1 1 0 1 0 1 0 0 Con la opción B), la marca de la palabra 4ª es correcta

B.5 Comparar el argumento enmascarado con la 5ª palabra


0 0 1 1 0
5 0 0 0 1 1 1 1 0 1 Con la opción B), la marca de la palabra 5ª es correcta

Las marcas generadas con esta opción no coinciden todas con sus marcas correspondientes existentes en la memoria asociativa. Por
tanto, con esta opción no se produciría el registro de marca dado.

C.- Columna de la opción C)

0 0 1 1 0 argumento enmascarado
1 1 0 0 1 1 1 1 1 0 m
2 0 1 0 1 1 0 1 0 0 a
r
3 0 1 0 1 0 1 1 0 0
c
4 0 1 1 0 1 1 1 0 0 a
5 0 0 0 1 1 1 1 0 1 s
contenidos

C.1 Comparar el argumento enmascarado con la 1ª palabra


0 0 1 1 0
1 1 0 0 1 1 1 1 1 0 Con la opción C), la marca de la palabra 1ª es correcta

C.2 Comparar el argumento enmascarado con la 2ª palabra


0 0 1 1 0
2 0 1 0 1 1 0 1 0 0 Con la opción C), la marca de la palabra 2ª es correcta

C.3 Comparar el argumento enmascarado con la 3ª palabra


0 0 1 1 0
3 0 1 0 1 0 1 1 0 0 Con la opción C), la marca de la palabra 3ª es correcta

C.4 Comparar el argumento enmascarado con la 4ª palabra


0 0 1 1 0
4 0 1 1 0 1 1 1 0 0 Con la opción C), la marca de la palabra 4ª es correcta

C.5 Comparar el argumento enmascarado con la 5ª palabra


0 0 1 1 0
5 0 0 0 1 1 1 1 0 1 Con la opción C), la marca de la palabra 5ª es correcta

Las marcas generadas con esta opción coinciden todas con sus marcas correspondientes existentes en la memoria asociativa. Por
tanto, con esta opción sí se produciría el registro de marca dado.

Arquitectura de Computadoras 4 Ejercicios de Memorias Asociativas


 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del registro de máscara y del contenido
de la memoria, ¿cuál de los argumentos propuestos a continuación produciría ese registro de marca?.
? ? ? ? ? ? ? ? argumento

1 0 0 1 0 1 0 0 máscara

1 1 1 0 1 1 1 1 1 0 m
1 0 1 1 0 1 0 0 argumento A
2 1 1 0 1 1 0 1 0 1 a
3 0 0 0 1 0 0 0 1 r 0 1 0 1 1 1 1 1 argumento B
0
c
4 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 argumento C
a
5 1 1 0 1 1 0 0 1 1 s 1 1 1 1 1 0 1 0 argumento D
contenidos

Algoritmo general del funcionamiento de una memoria asociativa adaptado a este problema:

PARA argumento A HASTA argumento D HACER


Enmascarar el argumento con la máscara
PARA la primera palabra HASTA la última palabra HACER
Comparar el argumento enmascarado con la palabra en curso
SI son iguales ENTONCES marca en curso := 1
SINO marca en curso := 0
FINSI
FINPARA
FINPARA

A.- Argumento A
Enmascarar el argumento A con la máscara
1 0 1 1 0 1 0 0 argumento A sin enmascarar
1 0 0 1 0 1 0 0 máscara
1 1 1 argumento A enmascarado

A.1 Comparar el argumento A enmascarado con la 1ª palabra


1 1 1
1 1 1 0 1 1 1 1 1 0 Con el argumento A, la marca de la palabra 1ª es incorrecta

A.2 Comparar el argumento enmascarado con la 2ª palabra


1 1 1
2 1 1 0 1 1 0 1 0 1 Con el argumento A, la marca de la palabra 2ª es incorrecta

A.3 Comparar el argumento enmascarado con la 3ª palabra


1 1 1
3 0 0 0 1 0 0 0 1 0 Con el argumento A, la marca de la palabra 3ª es correcta

A.4 Comparar el argumento enmascarado con la 3ª palabra


1 1 1
4 1 0 1 0 0 1 1 0 0 Con el argumento A, la marca de la palabra 4ª es correcta

A.5 Comparar el argumento enmascarado con la 3ª palabra


1 1 1
5 1 1 0 1 1 0 0 1 1 Con el argumento A, la marca de la palabra 5ª es incorrecta

Las marcas generadas con esta opción no coinciden todas con sus marcas correspondientes existentes en la memoria asociativa.
Por tanto, con esta opción no se produciría el registro de marca dado.

Arquitectura de Computadoras 5 Ejercicios de Memorias Asociativas


B.- Argumento B
Enmascarar el argumento B con la máscara
0 1 0 1 1 1 1 1 argumento B sin enmascarar
1 0 0 1 0 1 0 0 máscara
0 1 1 argumento B enmascarado

B.1 Comparar el argumento enmascarado con la 1ª palabra


0 1 1
1 1 1 0 1 1 1 1 1 0 Con el argumento B, la marca de la palabra 1ª es correcta

B.2 Comparar el argumento enmascarado con la 2ª palabra


0 1 1
2 1 1 0 1 1 0 1 0 1 Con el argumento B, la marca de la palabra 2ª es incorrecta

B.3 Comparar el argumento enmascarado con la 3ª palabra


0 1 1
3 0 0 0 1 0 0 0 1 0 Con el argumento B, la marca de la palabra 3ª es correcta

B.4 Comparar el argumento enmascarado con la 3ª palabra


0 1 1
4 1 0 1 0 0 1 1 0 0 Con el argumento B, la marca de la palabra 4ª es correcta

B.5 Comparar el argumento enmascarado con la 3ª palabra


0 1 1
5 1 1 0 1 1 0 0 1 1 Con el argumento B, la marca de la palabra 5ª es incorrecta

Las marcas generadas con esta opción no coinciden todas con sus marcas correspondientes existentes en la memoria asociativa.
Por tanto, con esta opción no se produciría el registro de marca dado.

C.- Argumento C

Enmascarar el argumento C con la máscara


0 1 0 1 0 0 1 1 argumento C sin enmascarar
1 0 0 1 0 1 0 0 máscara
0 1 1 argumento C enmascarado

C.1 Comparar el argumento enmascarado con la 1ª palabra


0 1 1
1 1 1 0 1 1 1 1 1 0 Con el argumento C, la marca de la palabra 1ª es correcta

C.2 Comparar el argumento enmascarado con la 2ª palabra


0 1 1
2 1 1 0 1 1 0 1 0 1 Con el argumento C, la marca de la palabra 2ª es incorrecta

C.3 Comparar el argumento enmascarado con la 3ª palabra


0 1 1
3 0 0 0 1 0 0 0 1 0 Con el argumento C, la marca de la palabra 3ª es incorrecta

C.4 Comparar el argumento enmascarado con la 3ª palabra


0 1 1
4 1 0 1 0 0 1 1 0 0 Con el argumento C, la marca de la palabra 4ª es correcta

C.5 Comparar el argumento enmascarado con la 3ª palabra


0 1 1
5 1 1 0 1 1 0 0 1 1 Con el argumento C, la marca de la palabra 5ª es incorrecta

Las marcas generadas con esta opción no coinciden todas con sus marcas correspondientes existentes en la memoria asociativa.
Por tanto, con esta opción no se produciría el registro de marca dado.

Arquitectura de Computadoras 6 Ejercicios de Memorias Asociativas


D.- Argumento D

Enmascarar el argumento D con la máscara


1 1 1 1 1 0 1 0 argumento D sin enmascarar
1 0 0 1 0 1 0 0 máscara
1 1 0 argumento D enmascarado

D.1 Comparar el argumento enmascarado con la 1ª palabra


1 1 0
1 1 1 0 1 1 1 1 1 0 Con el argumento D, la marca de la palabra 1ª es correcta

D.2 Comparar el argumento enmascarado con la 2ª palabra


1 1 0
2 1 1 0 1 1 0 1 0 1 Con el argumento D, la marca de la palabra 2ª es correcta

D.3 Comparar el argumento enmascarado con la 3ª palabra


1 1 0
3 0 0 0 1 0 0 0 1 0 Con el argumento D, la marca de la palabra 3ª es correcta

D.4 Comparar el argumento enmascarado con la 3ª palabra


1 1 0
4 1 0 1 0 0 1 1 0 0 Con el argumento D, la marca de la palabra 4ª es correcta

D.5 Comparar el argumento enmascarado con la 3ª palabra


1 1 0
5 1 1 0 1 1 0 0 1 1 Con el argumento D, la marca de la palabra 5ª es correcta

Las marcas generadas con esta opción coinciden todas con sus marcas correspondientes existentes en la memoria asociativa.
Por tanto, con esta opción sí se produciría el registro de marca dado.

Arquitectura de Computadoras 7 Ejercicios de Memorias Asociativas


 El siguiente diagrama representa una memoria asociativa y su contenido. ¿Cuál de las cuatro máscaras propuestas es la que genera los
valores dados del registro de máscara?.
1 1 0 1 1 0 1 0 argumento

? ? ? ? ? ? ? ? máscara

1 1 1 0 1 1 1 1 1 0 m 0 0 1 1 0 1 0 1 máscara A
2 1 1 0 1 1 0 1 1 1 a
r 1 1 0 0 1 0 1 1 máscara B
3 0 0 0 1 0 0 0 1 1
c 1 1 0 0 0 1 0 1 máscara C
4 1 0 1 0 0 0 1 0 0 a
5 0 1 0 1 1 1 0 1 0 s 0 0 1 1 0 1 0 0 máscara D
contenidos

Algoritmo general del funcionamiento de una memoria asociativa adaptado a este problema:

PARA la máscara A HASTA la máscara D HACER


Enmascarar el argumento con la máscara
PARA la primera palabra HASTA la última palabra HACER
Comparar el argumento enmascarado con la palabra en curso
SI son iguales ENTONCES marca en curso := 1
SINO marca en curso := 0
FINSI
FINPARA
FINPARA

A.- Máscara de la opción A


Enmascarar el argumento con la máscara A
1 1 0 1 1 0 1 0 argumento sin enmascarar
0 0 1 1 0 1 0 1 máscara A
0 1 0 0 argumento enmascarado

A.1 Comparar el argumento enmascarado con la 1ª palabra


0 1 0 0
1 1 1 0 1 1 1 1 1 0 Con la máscara A, la marca de la palabra 1ª es correcta

A.2 Comparar el argumento enmascarado con la 2ª palabra


0 1 0 0
2 1 1 0 1 1 0 1 1 1 Con la máscara A, la marca de la palabra 2ª es incorrecta

A.3 Comparar el argumento enmascarado con la 3ª palabra


0 1 0 0
3 0 0 0 1 0 0 0 1 1 Con la máscara A, la marca de la palabra 3ª es incorrecta

A.4 Comparar el argumento enmascarado con la 3ª palabra


0 1 0 0
4 1 0 1 0 0 0 1 0 0 Con la máscara A, la marca de la palabra 4ª es correcta

A.5 Comparar el argumento enmascarado con la 3ª palabra


0 1 0 0
5 0 1 0 1 1 1 0 0 0 Con la máscara A, la marca de la palabra 5ª es correcta

Esta máscara no genera las marcas dadas, por tanto, no es la correcta

Arquitectura de Computadoras 8 Ejercicios de Memorias Asociativas


B.- Máscara de la opción B
Enmascarar el argumento con la máscara B
1 1 0 1 1 0 1 0 argumento sin enmascarar
1 1 0 0 1 0 1 1 máscara B
1 1 1 1 0 argumento enmascarado

B.1 Comparar el argumento enmascarado con la 1ª palabra


1 1 1 1 0
1 1 1 0 1 1 1 1 1 0 Con la máscara B, la marca de la palabra 1ª es correcta

B.2 Comparar el argumento enmascarado con la 2ª palabra


1 1 1 1 0
2 1 1 0 1 1 0 1 1 1 Con la máscara B, la marca de la palabra 2ª es incorrecta

B.3 Comparar el argumento enmascarado con la 3ª palabra


1 1 1 1 0
3 0 0 0 1 0 0 0 1 1 Con la máscara B, la marca de la palabra 3ª es incorrecta

B.4 Comparar el argumento enmascarado con la 4ª palabra


1 1 1 1 0
4 1 0 1 0 0 0 1 0 0 Con la máscara B, la marca de la palabra 4ª es correcta

B.5 Comparar el argumento enmascarado con la 5ª palabra


1 1 1 1 0
5 0 1 0 1 1 1 0 1 0 Con la máscara B, la marca de la palabra 5ª es correcta

Esta máscara no genera las marcas dadas, por tanto, no es la correcta

C.- Máscara de la opción C


Enmascarar el argumento con la máscara C
1 1 0 1 1 0 1 0 argumento sin enmascarar
1 1 0 0 0 1 0 1 máscara C
1 1 0 0 argumento enmascarado

C.1 Comparar el argumento enmascarado con la 1ª palabra


1 1 0 0
1 1 1 0 1 1 1 1 1 0 Con la máscara C, la marca de la palabra 1ª es correcta

C.2 Comparar el argumento enmascarado con la 2ª palabra


1 1 0 0
2 1 1 0 1 1 0 1 1 1 Con la máscara C, la marca de la palabra 2ª es incorrecta

C.3 Comparar el argumento enmascarado con la 3ª palabra


1 1 0 0
3 0 0 0 1 0 0 0 1 1 Con la máscara C, la marca de la palabra 3ª es incorrecta

C.4 Comparar el argumento enmascarado con la 4ª palabra


1 1 0 0
4 1 0 1 0 0 0 1 0 0 Con la máscara C, la marca de la palabra 4ª es correcta

C.5 Comparar el argumento enmascarado con la 5ª palabra


1 1 0 0
5 0 1 0 1 1 1 0 1 0 Con la máscara C, la marca de la palabra 5ª es correcta

Esta máscara no genera las marcas dadas, por tanto, no es la correcta

Arquitectura de Computadoras 9 Ejercicios de Memorias Asociativas


D.- Máscara de la opción D
Enmascarar el argumento con la máscara D

1 1 0 1 1 0 1 0 argumento sin enmascarar


0 0 1 1 0 1 0 0 máscara D
0 1 0 argumento enmascarado

D.1 Comparar el argumento enmascarado con la 1ª palabra


0 1 0
1 1 1 0 1 1 1 1 1 0 Con la máscara D, la marca de la palabra 1ª es correcta

D.2 Comparar el argumento enmascarado con la 2ª palabra


0 1 0
2 1 1 0 1 1 0 1 1 1 Con la máscara D, la marca de la palabra 2ª es correcta

D.3 Comparar el argumento enmascarado con la 3ª palabra


0 1 0
3 0 0 0 1 0 0 0 1 1 Con la máscara D, la marca de la palabra 3ª es correcta

D.4 Comparar el argumento enmascarado con la 4ª palabra


0 1 0
4 1 0 1 0 0 0 1 0 0 Con la máscara D, la marca de la palabra 4ª es correcta

D.5 Comparar el argumento enmascarado con la 5ª palabra


0 1 0
5 0 1 0 1 1 1 0 1 0 Con la máscara D, la marca de la palabra 5ª es correcta

Esta máscara produce las marcas dadas, por tanto, es la correcta

Nota:

Este ejercicio podría haber sido resuelto más rápidamente con un razonamiento sui generis, sin emplear el algoritmo general que simula el
funcionamiento de búsqueda y marcado de una memoria asociativa. El fundamento es el siguiente:

Si una palabra está marcada con ‘1’, las posiciones en las que sus bits no coincidan con los correspondientes del argumento
indefectiblemente tienen un ‘0’ en la máscara (si la máscara tuviera un ‘1’ en alguna de estas posiciones, habrían sido comparadas; y al ser
diferentes, ha palabra habría sido marcada con un ‘0’ ).
argumento 1 1 0 1 1 0 1 0
1 0
2 1 1 0 1 1 0 1 1 1
3 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 máscara opción A
4 0 1 1 0 0 1 0 1 1 máscara opción B
5 0
1 1 0 0 0 1 0 1 máscara opción C
máscara 0 0 ? ? 0 ? 0 0 0 0 1 1 0 1 0 0 máscara opción D
parcial Solución.
Única posible de entre las cuatro opciones.
Única que satisface los cuatro ceros de la máscara parcial.

Esta estrategia no es general. No se podría inferir nada respecto de las posiciones en que coinciden los bits de argumento y palabra marcada
con ‘1’. La máscara en dichas posiciones puede contener un ‘1’ (han sido comparadas y coinciden) o un ‘0’ (no han intervenido en la
comparación).

Arquitectura de Computadoras 10 Ejercicios de Memorias Asociativas


 Diseñe un algoritmo para una memoria asociativa (con celdas de 8 bits) que lleve a cabo la operación NO_IGUAL_A. Aplíquelo en el caso
de buscar todos los números diferentes de 01101110. El algoritmo debe ser independiente del número de celdas de la memoria.
NOTA: No se pueden utilizar las operaciones MAYOR_QUE ni MENOR_QUE.

Algoritmo lento: Algoritmo rápido:

Activar I
Activar I
M ← 00...0
i=7
i=7
M ← 00...0

Ci=Ci ' Ci=Ci '

Mi=1
Mi=1

Búsqueda, lectura y Búsqueda, lectura y


comparación secuencial comparación secuencial

Ci=Ci ' Ci=Ci '

M ← 11...1 i = i -1

i = i -1 No
¿ i< 0 ?
No Sí
¿ i< 0 ?
Fin

1 - - - - - - -
Fin
0 0 - - - - - -
Compara sólo los que comiencen por 0 o pr 1. 0 1 0 - - - - -
0 1 1 1 - - - -
1 - - - - - - - 0 1 1 0 0 - - -
- 0 - - - - - - 0 1 1 0 1 0 - -
- - 0 - - - - - 0 1 1 0 1 1 0 -
- - - 1 - - - - 0 1 1 0 1 1 1 1
- - - - 0 - - -
- - - - - 0 - - Compara sólo los que comiencen por 0.
- - - - - - 0 - (Los que comiencen por 1 ya lo hace la anterior pasada).
- - - - - - - 1

Ambos algoritmos ejecutan ocho pasadas por el bucle (es la longitud de las palabras). Pero las palabras son comparadas más veces en el
lento.

Arquitectura de Computadoras 11 Ejercicios de Memorias Asociativas


Ejercicios
de
Arquitectura
de
Computadoras

José Garzía

2009
En este tipo de ejercicios debemos tener siempre presentes estas tres ecuaciones:
Cantidad de palabras
MP  (Cantidad de palabras en Memoria Principal )  Cantidad de particiones en la Memoria Principal·
por partición
Cantidad de particiones Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos en la caché  · ·
por conjunto por partición
Cantidad de particiones en Memoria Principal
(Cantidad de páginas en la Memoria Principal ) 
Cantidad de conjuntos en la caché

p bits c bits w bits


número de página (etiqueta) conjunto offset

p c MEMORIA CACHÉ

MEMORIA PRINCIPAL Directorio caché


...
partición 0 partición 1 partición 2k-1
c c ...
conjunto 0
página 0 página 1 ... página 2p-1
conjunto 0 partición 0 partición 1 partición 2k-1
conjunto 1 ...
conjunto 1 . . .
. . . .
. . . .
. . . .
. . . .
. . . .
conjunto 2c-1 .
Número partición 0 partición 1 partición 2k-1
de conjunto 2c-1 ...
conjunto

Arquitectura de Computadoras 1 Ejercicios de Memoria Caché


 Una memoria caché asociativa por conjuntos dispone de 16 conjuntos y utiliza particiones de 8 palabras, siendo su capacidad total de
2.048 palabras. La memoria principal tiene una capacidad de 1.024·K palabras. ¿Cuantos bits hay en los diferentes campos de formato de
dirección?.
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición

Cantidad de particiones 23 palabras Cantidad de particiones 24 particiones


211palabras   24 conjuntos  · ·  
  por conjunto por partición por conjunto por conjunto

Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal  ·
por partición
23 palabras
220  Cantidad de particiones en la Memoria Principal *  Cantidad de particiones en Memoria Principal  217 particione s
por partición
17
Cantidad de páginas en Memoria Principal  Cantidad de particiones en Memoria Principal  2 4 particiones  213 páginas
Cantidad de conjuntos en la caché 2 conjuntos

13 bits 4 bits 3 bits


número de página (etiqueta) conjunto offset

13 4 MEMORIA CACHÉ

MEMORIA PRINCIPAL Directorio caché


...
partición 0 partición 1 partición 24-1
4 4 ...
conjunto 0
página 0 página 1 ... página 213-1
conjunto 0 partición 0 partición 1 partición 24-1
conjunto 1 ...
conjunto 1 . . .
. . . .
. . . .
. . . .
. . . .
. . . .
conjunto 24-1 .
Número partición 0 partición 1 partición 24-1
de conjunto 24-1 ...
conjunto

 Una memoria caché asociativa por conjuntos dispone de 32 conjuntos, utiliza particiones de 8 palabras y su capacidad total es de 2.048
palabras. ¿A cuántas posiciones distintas de la caché (suponiéndola vacía) puede ir cada palabra de MP?

Cantidad de particione s Cantidad de palabras


caché  (Cantidad de palabras en caché )  Cantidad de conjuntos  · ·
por conjunto por partición

Cantidad de particiones 23 palabras Cantidad de particiones 211


211   25 conjuntos  · ·    23 particiones
  por conjunto por partición por conjunto 5
2 23

¿p? bits 5 bits 3 bits


número de página (etiqueta) conjunto offset

5 MEMORIA CACHÉ
p
MEMORIA PRINCIPAL Directorio caché
...
partición 0 partición 1 partición 23-1
5 5 ...
conjunto 0
página 0 página 1 ... página 2p-1
conjunto 0 partición 0 partición 1 partición 23-1
conjunto 1 ...
conjunto 1 . . .
. . . .
. . . .
. . . .
. . . .
. . . .
conjunto 25-1 .
Número partición 0 partición 1 partición 23-1
de conjunto 25-1 ...
conjunto

No podemos calcular la longitud de todos los campos, pues no nos dieron el tamaño de la Memoria Principal.
De todas formas, cada palabra de Memoria Principal puede ir a una cualquiera de las 23 = 8 particiones de cada conjunto.

Arquitectura de Computadoras 2 Ejercicios de Memoria Caché


 Un computador tiene una unidad de memoria con 16 líneas de dirección, y una memoria caché de 1K palabras. La memoria caché utiliza
correspondencia asociativa por conjuntos, con un tamaño de partición de 16 palabras y 4 particiones por conjunto. Explique razonadamente
en qué campos se divide la dirección de memoria principal 0000110111000011 e indique el valor de cada uno de estos campo en decimal.

Cantidad de particiones Cantidad de palabras


caché  (Cantidad de palabras en caché)  Cantidad de conjuntos  · ·
por conjunto por partición

22 particiones 24 palabras 210


210  Cantidad de conjuntos  · ·  Cantidad de conjuntos    24 conjuntos
por conjunto por partición 2  24
2
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal  ·
por partición
24 palabras 16
216  Cantidad de particiones en Memoria Principal ·  Cantidad de particiones en Memoria Principal   2  212 particiones
por partición 24
12
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal  2 4 particiones  28 páginas
Cantidad de conjuntos en la caché 2 conjuntos
8 bits 4 bits 4 bits
00001101 1100 0011

4 MEMORIA CACHÉ
8
MEMORIA PRINCIPAL Directorio caché
...
partición 0 partición 1 partición 2 partición 3
4 4
conjunto 0
página 0 página 1 ... página 28-1
partición 0 partición 1 partición 2 partición 3
conjunto 0
conjunto 1 conjunto 1
. . . . . . .
. .
. . . . . .
. .
. . . . . .
.
conjunto 24-1 ... Número partición 0 partición 1 partición 2 partición 3
de conjunto 24-1
conjunto

 Una memoria caché asociativa por conjuntos consta de 16 conjuntos con 4 particiones por conjunto. La memoria principal tiene una
capacidad de 1 Mb (220 palabras) dividida en particiones de 27 palabras. La palabra almacenada en la dirección de memoria principal,
expresada en binario es: 1010 0001 1001 0011 0000.
a) ¿A qué conjunto debe ir?.
b) ¿Qué etiqueta deberá tener la partición donde vaya?.
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en caché )  Cantidad de conjuntos  · ·
por conjunto por partición
2 7
caché   24 conjuntos  · 2 particione s · 2 palabras  caché  213palabras , pero este resultado no se necesitaba en este ejercicio.

  por conjunto por partición

Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal  ·
por partición
27 palabras
220  Cantidad de particione s en la Memoria Principal ·  Cantidad de particione s en la Memoria Principal   213 particione s
por partición
13
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal  2 4 particiones  29 páginas
Cantidad de conjuntos en la caché 2 conjuntos

9 bits 4 bits 7 bits


101000011 0010 0110000

4 MEMORIA CACHÉ
9
MEMORIA PRINCIPAL Directorio caché
...
partición 0 partición 1 partición 2 partición 3
4 4
conjunto 0
página 0 página 1 ... página 29-1
partición 0 partición 1 partición 2 partición 3
conjunto 0
conjunto 1 conjunto 1
. . . . . . .
. .
. . . . . .
. .
. . . . . .
.
conjunto 24-1 ... Número partición 0 partición 1 partición 2 partición 3
de conjunto 24-1
conjunto

Arquitectura de Computadoras 3 Ejercicios de Memoria Caché


 Un computador tiene una unidad de memoria de 213 palabras y una memoria caché asociativa por conjuntos de 27 palabras, suponiendo
que la UCP genera la dirección de memoria principal 00101 1011 0111, indique cuál es el conjunto caché donde irá y qué etiqueta
tendrá su partición.
a) Si la memoria caché tiene 4 conjuntos y 8 particiones por conjunto.
b) Si la memoria caché tiene 8 conjuntos y 4 particiones por conjunto.

a) Si la memoria caché tiene 4 conjuntos y 8 particiones por conjunto.


Cantidad de particiones Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición

23 particiones Cantidad de palabras Cantidad de palabras 27


27   22 conjuntos  · ·    2 2 palabras
  por conjunto por partición por partición 2  23
2
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en Memmoria Principal ·
por partición
2
2 palabras 13
213  Cantidad de particione s en Memoria Principal  ·  Cantidad de particiones en Memoria Principal   2  211particiones
por partición 22
211 particiones
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal   29 páginas
Cantidad de conjuntos en la caché 22 conjuntos

9 bits 2 bits 2 bits


%001011011 = &91 %01=&1 %11=&3

2 MEMORIA CACHÉ
9
MEMORIA PRINCIPAL Directorio caché
...
partición 0 partición 1 partición 23-1
2 2 ...
conjunto 0
página 0 página 1 página 29-1
conjunto 0 partición 0 partición 1 partición 23-1
conjunto 1 ...
conjunto 1 ...
conjunto 2 .
partición 0 partición 1 partición
. 22-1
conjunto 22-1 conjunto 2 ...
.
Número partición 0 partición 1 partición 22-1
de conjunto 22-1 ...
conjunto

b) Si la memoria caché tiene 8 conjuntos y 4 particiones por conjunto.


Cantidad de particiones Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición

Cantidad particione s Cantidad de palabras Cantidad de palabras 27


27   23 conjuntos  · ·    2 2 palabras
  por conjunto por partición por partición 3
2 2 2
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal ·
por partición
2
2 de palabras 13
213 Cantidad de particiones en Memoria Principal *  Cantidad de particiones en Memoria Principal   2  211particiones
por partición 22
211 particione s
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memmoria Principal   28 páginas
Cantidad de conjuntos en la caché 23 conjuntos
8 bits 3 bits 2 bits
%0101101=&45 %101=&5 %11=&3

3 MEMORIA CACHÉ
8
MEMORIA PRINCIPAL Directorio caché
...
partición 0 partición 1 partición 2 partición 3
3 3
conjunto 0
página 0 página 1 ... página 28-1
partición 0 partición 1 partición 2 partición 3
conjunto 0
conjunto 1 conjunto 1
. . . . . . .
. .
. . . . . .
. .
. . . . . .
.
conjunto 23-1 ... Número partición 0 partición 1 partición 2 partición 3
de conjunto 23-1
conjunto

Arquitectura de Computadoras 4 Ejercicios de Memoria Caché


 Un computador tiene una unidad de memoria de 212 palabras y una memoria caché de 28 palabras. La memoria caché es asociativa por
conjuntos, con 16 conjuntos y 2 particiones por conjunto. Cuando se necesita un reemplazo en la caché, en el conjunto correspondiente se
reemplaza la partición más antigua.
Suponiendo que inicialmente la memoria caché está vacía. ¿Cuantos fallos se producirían en la caché si se leyeran consecutivamente las
siguientes direcciones de la MP?.
0000 0000 1111
0000 0100 1111
0001 0000 1111
0001 0000 1100
0010 1000 1111
0000 0000 1101
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición
2 particiones Cantidad de palabras Cantidad de palabras
28   24 conjuntos  · ·   23 palabras
  por conjunto por partición por partición
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal ·
por partición
23 de palabras
212  Cantidad de particione s en la Memoria Principal ·  Cantidad de particione s en la Memoria Principal   29 particione s
por partición
9
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal  2 4particiones  25 páginas
Cantidad de conjuntos en la caché 2 conjuntos

5 bits 4 bits 3 bits


número de página (etiqueta) conjunto offset

5 4 Número MEMORIA CACHÉ


de
MEMORIA PRINCIPAL conjunto Directorio caché
...
partición 0 partición 1 partición 2 partición 3
4 4
conjunto 0
página 0 página 1 ... página 25-1
partición 0 partición 1 partición 2 partición 3
conjunto 0
conjunto 1 conjunto 1
. . . . . . .
. .
. . . . . .
. .
. . . . . .
.
conjunto 24-1 ... partición 0 partición 1 partición 2 partición 3
conjunto 24-1

00000 0001 111  Va al conjunto 1. Provoca fallo, pues la caché está inicialmente vacia.
00000 1001 111  Va al conjunto 9. Provoca fallo.
00010 0001 111  Va al conjunto 1. Provoca fallo, la etiqueta que había en el conjunto 1 era 00000.
Ésta tiene como etiqueta 00010. Puede ir a la partición 1 de este mismo conjunto, por lo que no provoca reemplazo.
00010 0001 100  Va al conjunto 1. No provoca fallo, pues la etiqueta 00010 ya estaba en la partición 1 del conjunto 1.
00101 0001 111  Va al conjunto 1. Provoca fallo, pues la etiqueta 00101 no estaba presente.
También provoca reemplazo, pues el conjunto 1 ya estaba lleno.
Debe ser reemplazada la que estaba en la partición 0 del conjunto 1.
00000 0001 101  Va al conjunto 1. Provoca fallo, pues la etiqueta 00000 acaba de ser reemplazada.
También provoca reemplazo. Debe ser reemplazada la partición 1 del conjunto 1.

Arquitectura de Computadoras 5 Ejercicios de Memoria Caché


 Sea una memoria caché de 128 bytes con estrategia de ubicación asociativa por conjuntos, de forma que hay 4 conjuntos y cada uno
puede almacenar 4 particiones. Las direcciones físicas están compuestas por 32 bits y la unidad más pequeña direccionable es el byte.
a) Trace un esquema de la sección de control y la zona de almacenamiento de la caché, indicando cómo se relacionan las direcciones
físicas con las direcciones caché.
b) ¿A qué particiones de la caché puede asignarse la dirección física 000010AF (hexadecimal)?
c) Si las direcciones físicas (hexadecimales) 00001AF y FFFF7Axy pueden ser asignadas simultáneamente al mismo conjunto caché, ¿qué
valores pueden tener x e y?.
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición

22 particiones Cantidad de palabras Cantidad de palabras


27 palabras   22 conjuntos  · ·   23 palabras
  por conjunto por partición por partición
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal ·
por partición
23 de palabras
232  Cantidad de particiones en la Memoria Principal ·  Cantidad de particione s en la Memoria Principal  229 particiones
por partición
29
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal  2 2 particiones  227 páginas
Cantidad de conjuntos en la caché 2 conjuntos

a)
27 bits 2 bits 3 bits
31 54 32 0
DF número de página (etiqueta) conjunto offset
27
Número
2 MEMORIA CACHÉ
MEMORIA PRINCIPAL de
conjunto Directorio caché

2 partición 0 partición 1 partición 2 partición 3


página 0 página 1 ... página 227-1 2
conjunto 0 conjunto 0
conjunto 1 ... partición 0 partición 1 partición 2 partición 3
conjunto 2 conjunto 1
conjunto 3
partición 0 partición 1 partición 2 partición 3
conjunto 2
partición 0 partición 1 partición 2 partición 3
conjunto 3
b)

DF: 000010AF 0000 0000 0000 0000 0001 0000 101 0 1 111
DL: 000085 conjunto w
ZA: 0000215
A las cuatro líneas del conjunto 01

c)
000010AF: 0000 0000 0000 0000 0001 0000 101 0 1 111
FFFF7Axy: 1111 1111 1111 1111 0111 1010
x y
Pueden ser asignadas al mismo conjunto: 01

x  Todas las combinaciones de x con el bit menos significativo a 0.


y  Todas las combinaciones con el bit más significativo a 1.

x y
0000 0 1000 8
0010 2 1001 9
0100 4 1010 A
0110 6 1011 B
1000 8 1100 C
1010 A 1101 D
1100 C 1110 E
1100 E 1111 F

Arquitectura de Computadoras 6 Ejercicios de Memoria Caché


 Sea un computador con una memoria caché de una capacidad de 8 particiones de 2 bytes cada una, incluida en un sistema sin memoria
virtual. La caché está organizada asociativamente en 4 conjuntos. La operación de búsqueda en la caché es por demanda. El reemplazo es
FIFO (el primero en entrar es el primero en salir). La actualización de la memoria principal es mediante post-escritura bajo fallo. La memoria
principal está organizada en bytes y tiene una capacidad de 32 bytes, de forma que el contenido de la posición  es 2·. Si definimos W(x, )
como la escritura del contenido de la variable x sobre la posición de memoria de dirección ; y la función R(x, ) como la lectura sobre la
variable x del contenido de la posición de memoria de dirección , analice cómo evoluciona el contenido de la zona de almacenamiento y del
directorio de la caché y el contenido de la memoria principal cuando el procesador emite la siguiente secuencia de operaciones:
R(x0, 17)
R(x1, 6)
W(100, 8)
W(101, 16)
R(x2, 9)
R(x3, 25)
Analice también el contenido de las variables x0, x1, x2 y x3.

Organización y contenidos (en base decimal) iniciales:


2 bits 2 bits 1 bit
4 3 2 1 0
DF número de página (etiqueta) conjunto offset
2 2
MEMORIA PRINCIPAL MEMORIA CACHÉ
Directorio caché Zona de almacenamiento

página 0 página 1 página 2 página 3


2 2
C0 0 000 4 008 8 016 12 024 16 032 20 040 24 048 28 056 conjunto 0
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060 conjunto 2
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3

Instrucción 1ª: R(x0, 17)

Se debe acceder a la posición 10001 (17) de la MP. Por supuesto, ocurre un fallo de página caché, pues inicialmente está vacía.

10001 determina:
✔ Conjunto 0.
✔ 2ª palabra dentro de la línea.
✔ Almacenar 10b=2d en el directorio.

Como es almacenada una línea entera, también se almacena el contenido de la dirección anterior (&16)=&32.
Estado actual:

VARIABLES MEMORIA PRINCIPAL MEMORIA CACHÉ


Directorio caché Zona de almacenamiento
x0 34
x1 página 0 página 1 página 2 página 3
2 2
C0 0 000 4 008 8 016 12 024 16 032 20 040 24 048 28 056 conjunto 0 2 032 034
x2
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
x3 conjunto 2
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3

Instrucción 2ª: R(x1, 6)

00110 determina:
✔ Conjunto 3.
✔ Almacenar 0b=0d en el directorio.

Estado actual:

VARIABLES MEMORIA PRINCIPAL MEMORIA CACHÉ


Directorio caché Zona de almacenamiento
x0 34
x1 12 página 0 página 1 página 2 página 3
2 2
C0 0 000 4 008 8 016 12 024 16 032 20 040 24 048 28 056 conjunto 0 2 032 034
x2
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
x3 conjunto 2
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3 0 012 014

Arquitectura de Computadoras 7 Ejercicios de Memoria Caché


Instrucción 3ª: W(100, 8)
Se debe acceder a la posición 01000 de la MP.
Se anota 100 en su correspondiente palabra caché.

Estado actual:

La MP no se modifica hasta que se reemplaza esta línea


VARIABLES MEMORIA PRINCIPAL MEMORIA CACHÉ
Directorio caché Zona de almacenamiento
x0 34
x1 12 página 0 página 1 página 2 página 3
2 2
C0 0 000 4 008 8 010 12 024 16 032 20 040 24 048 28 056 conjunto 0 2 032 034 1 100 018
x2
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
x3 conjunto 2
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3 0 012 014
También se almacena (sin modificar) el contenido de la palabra siguiente
Instrucción 4ª: W(101, 16)
Se debe acceder a la posición 10000, la cual ya está en la caché.

Estado actual:

Hasta ahora no ha habido ningún reemplazo, por lo cual, la MP aún no se ha modificado:

VARIABLES MEMORIA PRINCIPAL MEMORIA CACHÉ


Directorio caché
x0 34
10 00 0
x1 12 página 0 página 1 página 2 página 3
2 2
C0 0 000 4 008 8 016 12 024 16 032 20 040 24 048 28 056 conjunto 0 2 101 034 1 100 018
x2 50
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
x3 50 conjunto 2
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3 0 012 014

Instrucción 5ª: R(x2, 9)


Se debe acceder a la posición 10000.

10000 determina:
✔ Conjunto 0. No hay fallo de línea, pues ya estaba allí.
✔ Almacenar 0b=0d en el directorio.

Estado actual:

VARIABLES MEMORIA PRINCIPAL MEMORIA CACHÉ


Directorio caché Zona de almacenamiento
x0 34
x1 12 página 0 página 1 página 2 página 3
2 2
C0 0 000 4 008 8 016 12 024 16 032 20 040 24 048 28 056 conjunto 0 2 101 034 1 100 018
x2 18
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
x3 conjunto 2
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3 0 012 014

Instrucción 6ª: R(x3, 25)


Se debe acceder a la posición 11001.

11001 determina:
✔ Nueva Dir=3. No coincide con ninguna de las que había.
✔ Conjunto 0. Como este conjunto estaba lleno, se debe reemplazar la línea más antiguamente referenciada.

Con el reemplazo, es el momento de actualizar la memoria principal.


Estado actual:

VARIABLES MEMORIA PRINCIPAL MEMORIA CACHÉ


Directorio caché Zona de almacenamiento
x0 34
x1 12 página 0 página 1 página 2 página 3
2 2
C0 0 000 4 008 8 100 12 024 16 101 20 040 24 048 28 056 conjunto 0 3 048 050 1 100 018
x2 18
C1 1 002 5 010 9 018 13 026 17 034 21 042 25 050 29 058 conjunto 1
x3 50 conjunto 2
C2 2 100 6 012 10 020 14 027 18 036 22 044 26 052 30 060
C3 3 006 7 014 11 022 15 030 19 038 23 046 27 054 31 062 conjunto 3 0 012 014

Los contenidos de la MP son los iniciales, excepto en las posiciones 8 y 16; cuyos contenidos son 100 y 101, respectivamente.

Arquitectura de Computadoras 8 Ejercicios de Memoria Caché


 Sea un sistema caché capaz de almacenar 4 particiones, cada una de ellas de 8 bytes. La memoria principal es de 64 Kbytes. La caché
inicialmente está vacía. Si es necesario reemplazar alguna partición, ésta se elige mediante el algoritmo LRU. El procesador emite la
siguiente secuencia de direcciones físicas (en notación hexadecimal):
32B5, 32B8, 4A91, 4220, A727 y C0AA
Analice cómo evoluciona el contenido de la zona de almacenamiento y del directorio de la caché, haciendo un recuento de los fallos de línea
con cada algoritmo de ubicación:
a) Totalmente asociativa.
b) Directa
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particiones en la Memoria Principal  ·
por partición
3
2 de palabras
216  Cantidad de particiones en la Memoria Principal ·  Cantidad de particiones en la Memoria Principal  213 particiones
por partición
| MP | = 64 Kbytes = 216 bytes  || DF || = 16 bits
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición
a) Con algoritmo de ubicación totalmente asociativa.
22 particiones 23 palabras
caché   20 conjuntos  · ·  25 palabras
  por conjunto por partición

213 particione s
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal 
0
 213 páginas
Cantidad de conjuntos en la caché 2 conjuntos

13bits 3 bits
15 32 0
DF número de página (etiqueta) offset
13
MEMORIA CACHÉ
MEMORIA PRINCIPAL
Directorio caché
... partición 0 partición 1 partición 2 partición 3
página 0 página 1 página 213-1
conjunto 0 ... conjunto 0
Evolución de la caché:
Instrucción 1ª: 32B5 Instrucción 2ª: 32B8
Fallo de caché (inicialmente está vacía). Fallo de caché.
0011 0010 1011 0 101 0011 0010 1011 1 000
etiqueta offset etiqueta offset
(directorio caché) (directorio caché)
DC = 1622 DC = 1623
MEMORIA CACHÉ MEMORIA CACHÉ
13 Directorio caché 13 Directorio caché
partición 0 partición 1 partición 2 partición 3 partición 0 partición 1 partición 2 partición 3
1622 (1622) 1622 (1622) 1623 (1623)

Instrucción 3ª: 4A91 Instrucción 4ª: 4220


Fallo de caché. Fallo de caché.
0100 1010 1001 0 001 0100 0010 0010 0 000
etiqueta offset etiqueta offset
(directorio caché) (directorio caché)
DC = 2366 DC = 2096
MEMORIA CACHÉ MEMORIA CACHÉ
13 Directorio caché 13 Directorio caché
partición 0 partición 1 partición 2 partición 3 partición 0 partición 1 partición 2 partición 3
1622 (1622) 1623 (1623) 2366 (2366) 1622 (1622) 1623 (1623) 2366 (2366) 2096 (2096)

Instrucción 5ª: A727 Instrucción 6ª: C0AA


Fallo de caché y reemplazo. Fallo de caché y reemplazo.
1010 0111 0010 0 111 1100 0000 1010 1 010
etiqueta offset etiqueta offset
(directorio caché) (directorio caché)
DC = 5348 DC = 6129
MEMORIA CACHÉ MEMORIA CACHÉ
13 Directorio caché 13 Directorio caché
partición 0 partición 1 partición 2 partición 3 partición 0 partición 1 partición 2 partición 3
5348 (5348) 1623 (1623) 2366 (2366) 2096 (2096) 5348 (5348) 6129 (6129) 2366 (2366) 2096 (2096)

Arquitectura de Computadoras 9 Ejercicios de Memoria Caché


b) Con algoritmo de ubicación directa.
20 particione s 23 palabras
caché   22 conjuntos  · ·  25 palabras
  por conjunto por partición

213 particiones
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal   211páginas
Cantidad de conjuntos en la caché 22 conjuntos

11bits 2 bits 3 bits


15 54 32 0
DF número de página (etiqueta) conjunto offset
11 2 Número
de MEMORIA CACHÉ
MEMORIA PRINCIPAL
conjunto Directorio caché
2 partición 0
página 0 página 1 ... página 211-1 2
conjunto 0 conjunto 0
conjunto 1 ... partición 0
conjunto 2 conjunto 1
conjunto 3
partición 0
conjunto 2
partición 0
conjunto 3

Evolución de la caché:
Instrucción 1ª: 32B5 Instrucción 2ª: 32B8 Instrucción 3ª: 4A91
Fallo de caché (inicialmente está vacía). Fallo de caché. Fallo de caché y reemplazo.
partición física: 1622 partición física: 1623 partición física: 2366
0011 0010 101 10 101 0011 0010 101 11 000 0100 1010 100 10 001
etiqueta conjunto offset etiqueta conjunto offset etiqueta conjunto offset
(directorio caché) C = 2 (directorio caché) C = 3 (directorio caché) C = 2
DC = 405 DC = 405 DC = 596

MEMORIA CACHÉ MEMORIA CACHÉ MEMORIA CACHÉ


11 Directorio caché 2 11 Directorio caché 2 11 Directorio caché 2
partición 0 partición 0 partición 0
conjunto 00 conjunto 00 conjunto 00
partición 0 partición 0 partición 0
conjunto 01 conjunto 01 conjunto 01
partición 0 partición 0 partición 0
405 (1622) conjunto 10 405 (1622) conjunto 10 596 (2366) conjunto 10
partición 0 partición 0 partición 0
conjunto 11 405 (1623) conjunto 11 405 (1623) conjunto 11

Instrucción 4ª: 4220 Instrucción 5ª: A727 Instrucción 6ª: C0AA


Fallo de caché. Fallo de caché y reemplazo. Fallo de caché.
partición física: 2096 partición física: 5348 partición física: 2366
0100 0010 001 00 000 1010 0111 001 00 111 1100 0000 101 01 010
etiqueta conjunto offset etiqueta conjunto offset etiqueta conjunto offset
(directorio caché) C = 0 (directorio caché) C = 0 (directorio caché) C = 1
DC = 529 DC = 1337 DC = 1541

MEMORIA CACHÉ MEMORIA CACHÉ MEMORIA CACHÉ


11 Directorio caché 2 11 Directorio caché 2 11 Directorio caché 2
partición 0 partición 0 partición 0
529 (2096) conjunto 00 1337 (5348) conjunto 00 1337 (5348) conjunto 00
partición 0 partición 0 partición 0
conjunto 01 conjunto 01 1541 (6129) conjunto 01
partición 0 partición 0 partición 0
596 (2366) conjunto 10 596 (2366) conjunto 10 596 (2366) conjunto 10
partición 0 partición 0 partición 0
405 (1623) conjunto 11 405 (1623) conjunto 11 405 (1623) conjunto 11

Arquitectura de Computadoras 10 Ejercicios de Memoria Caché


 Sea un computador cuya memoria principal es de 64K palabras y su memoria caché es de de 1K palabras con correspondencia directa y
tamaño de bloque de 27 palabras. El tiempo de acceso a la memoria principal es de 10· y el tiempo de acceso a la memoria caché es de 1·.
En dicho computador se ejecuta un programa cuya estructura general se muestra en la siguiente figura:
17 (H0011)

23 (H0017)

165 (H00A5)

239 (H00EF)

1200 (H04B0)

1500 (H05DC)

Tiene dos bucles anidados, un bucle interior menor que se ejecuta 20 veces y un bucle exterior que se ejecuta 10 veces. 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 165d (00A5h).

Todas las direcciones de memoria de las diferentes secciones, 17-22, 23-164, 165-238, etc., contienen instrucciones que deben ejecutarse
en secuencia de línea recta.

a) Especifique el número de bits de los campos en que se descompone una dirección de memoria principal de este sistema.
b) Calcule cuánto tiempo se tardaría en ejecutar este programa si este computador no tuviera memoria caché.
c) Analice cuántos fallos se producen en la caché durante la ejecución de este programa. (Sugerencia: diferencie entre la primera ejecución
del bucle exterior y las nueve restantes.)
d) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a memoria caché y después se lee el
dato de la caché, calcule cuánto tiempo se tardaría en ejecutar este programa en este computador.

a)
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición
1 partición 27 palabras
210  Cantidad de conjuntos  · ·  Cantidad de conjuntos   23 conjuntos
por conjunto (por ser correspondencia directa) por partición
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal ·
por partición
27 palabras
216  Cantidad de particiones en la Memoria Principal  ·  Cantidad de particiones en Memoria Principal   29 particione s
por partición

29 particione s
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal   26 páginas
Cantidad de conjuntos en la caché 23 conjuntos

6 bits 3 bits 7 bits


15 10 9 7 6 0
DF número de página conjunto offset
(etiqueta)
6 3 Número
de MEMORIA CACHÉ
MEMORIA PRINCIPAL
conjunto Directorio caché
partición 0
página 0 página 1 ... página 26-1 3 3
conjunto 0 conjunto 0
conjunto 1 ... partición 0
. . . . . conjunto 1
. . . . . .
. . . . . . .
conjunto 23-1 . .
.
partición 0
conjunto 23-1
b)

Nº de lecturas fuera del bucle externo: (23-17) + (1501-1201) = 306


Nº de lecturas en el bucle interno: ( (240-165) )·20 = 1500
Nº de lecturas en el bucle externo: ( (165-23) + (Cantidad de lecturas en bucle interno) + (1201-240) )·10 = (142 + 1500 + 961)·10 =26030

Nº total de lecturas: 306 + 26030 =26336

Tiempo total debido a las lecturas sin memoria caché 26336·10 = 263360·

Arquitectura de Computadoras 11 Ejercicios de Memoria Caché


c)
✔ Instrucciones previas a la entrada en el bucle externo

0011h 0000 00  00 0  001 0001. Fallo, pues en el conjunto 0 de la caché no nabía nada.
.... .... ..  .. .  ... ....
0016h 0000 00  00 0  001 0110.
Total de fallos en este segmento del programa: 1

✔ Primera ejecución del bucle externo.

0017h 0000 00  00 0  001 0111. Entrada en el bucle externo.


.... .... ..  .. .  ... ....
007Fh 0000 00  00 0  111 1111.
0080h 0000 00  00 1  000 0000. Fallo, pues en el conjunto 1 de la caché no nabía nada.
0081h 0000 00  00 1  000 0001.
.... .... ..  .. .  ... ....
00A5h 0000 00  00 1  010 0101. Entrada en el bucle interno.
.... .... ..  .. .  ... .... Bucle interno
00EFh 0000 00  00 1  110 1111. Fin del bucle interno.

Ahora (si este bucle interno aún no se ha repetido 20 veces) se vuelve a la dirección 00A5h. Fijémonos que todas las direcciones del bucle
interno están en el conjunto 1 de la página 0. Por este motivo, durante la ejecución del bucle interno no se producen fallos ni se provocan
reemplazos.

Continuamos tras salir del bucle interno:


00F0h 0000 00  00 1  111 0000.
.... .... ..  .. .  ... ....
00FFh 0000 00  00 1  111 1111.
0100h 0000 00  01 0  000 0000. Fallo, pues en el conjunto 2 de la caché no nabía nada.
0101h 0000 00  01 0  000 0001.
.... .... ..  .. .  ... ....
017Fh 0000 00  01 0  111 1111.
0180h 0000 00  01 1  000 0000. Fallo, pues en el conjunto 3 de la caché no nabía nada.
0181h 0000 00  01 1  000 0001.
.... .... ..  .. .  ... ....
01FFh 0000 00  01 1  111 1111.
0200h 0000 00  10 0  000 0000. Fallo, pues en el conjunto 4 de la caché no nabía nada.
0201h 0000 00  10 0  000 0001.
.... .... ..  .. .  ... ....
027Fh 0000 00  10 0  111 1111.
0280h 0000 00  10 1  000 0000. Fallo, pues en el conjunto 5 de la caché no nabía nada.
0281h 0000 00  10 1  000 0001.
.... .... ..  .. .  ... ....
02FFh 0000 00  10 1  111 1111.
0300h 0000 00  11 0  000 0000. Fallo, pues en el conjunto 6 de la caché no nabía nada.
0301h 0000 00  11 0  000 0001.
.... .... ..  .. .  ... ....
037Fh 0000 00  11 0  111 1111.
0380h 0000 00  11 1  000 0000. Fallo, pues en el conjunto 7 de la caché no había nada.
0381h 0000 00  11 1  000 0001.
.... .... ..  .. .  ... ....
03FFh 0000 00  11 1  111 1111.
0400h 0000 01  00 0  000 0000. Fallo y reemplazo, pues el conjunto 0 de la caché procedía de la página 0.
0401h 0000 01  00 0 000 0001.
.... .... ..  .. .  ... ....
047Fh 0000 01  00 0  111 1111.
0480h 0000 01  00 1  000 0000. Fallo y reemplazo, pues el conjunto 1 de la caché procedía de la página 0.
0481h 0000 01  00 1  000 0001.
.... .... ..  .. .  ... ....
04B0h 0000 01  00 1  001 0000. Fin del bucle externo.

Total de fallos en este segmento del programa: 9

✔ Siguientes ejecuciones del bucle externo.

Se produce fallo y reemplazo al pedir los conjuntos 0 y 1 de la página 0, pues son reemplazados al final del bucle, al pedir sus conjuntos
tocayos de la página 1.
No se produce fallo al pedir los conjuntos 2, 3, 4, 5, 6 ni 7 de la página 0, pues ya estaban en la caché desde la primera pasada por el
bucle; y nunca son reemplazados.
Se produce fallo y reemplazo al pedir los conjuntos 0 y 1 de la página 1, pues son reemplazados al comienzo del bucle, al pedir sus
conjuntos tocayos de la página 0.

Total de fallos en este segmento del programa: 4

Arquitectura de Computadoras 12 Ejercicios de Memoria Caché


✔ Instrucciones posteriores a la salida del bucle externo.

04B1h 0000 01  00 1  001 0001.


.... .... ..  .. .  ... ....
04FFh 0000 01  00 1  111 1111.
0500h 0000 01  01 0  000 0000. Fallo y reemplazo, pues el conjunto 2 de la caché procedía de la página 0.
0501h 0000 01  01 0  000 0001.
.... .... ..  .. .  ... ....
057Fh 0000 01  01 0  111 1111.
0580h 0000 01  01 1  000 0000. Fallo y reemplazo, pues el conjunto 3 de la caché procedía de la página 0.
0581h 0000 01  01 1  000 0001.
.... .... ..  .. .  ... ....
05DCh 0000 01  01 1  101 1100. Fin del programa.

Total de fallos en este fragmento del programa: 2

Número total de fallos: 1 + 91 + 49 + 2 = 48

d) Según nos especifican, cuando se produce un fallo, el contenido de la dirección fallida no se lleva desde la memoria principal
simultaneamente a la caché y a la CPU. Tal como está diseñado este sistema de caché, cuando se produce el fallo, primero se lleva el
contenido de las 128 direcciones cuya partición contiene a la dirección pedida desde la memoria principal a la caché y después se lee en la
caché la dirección de marras. Por este motivo, siempre se lee en la caché, tanto si no hay fallo, como si lo hay. La conclusión es que:

Coste total = (Número total de direcciones buscadas)  (Tiempo de caché) + (Número total de fallos)  (penalización por fallo)

Siendo:

(penalización por fallo) = 12810 = 1280

Coste total = 26336 + 48 1280 = 87776

Arquitectura de Computadoras 13 Ejercicios de Memoria Caché


 Un computador tiene una memoria principal de 64K palabras de 16 bits por palabra. También tiene una memoria caché totalmente
asociativa de 2K palabras y 256 palabras por bloque. La memoria caché es 7 veces más veloz que la memoria principal. Considérese que la
memoria caché está inicialmente vacía y que cuando está llena, se reemplaza el bloque que se haya utilizado más recientemente. Supóngase
que la UCP ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la dirección 0 hasta la dirección 2300. Se pide:
a) Especifique el número de bits de los en que se descompone una dirección de memoria principal de este sistema.
b) Calcule cuánto tiempo se tardaría en realizar estos accesos a memoria principal si este computador no tuviera memoria caché.
c) Analice la evolución del directorio caché.
d) Calcule cuántos fallos se producen en la caché a la hora de realizar estos accesos a memoria principal.
e) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a la memoria caché y después se
lee el dato de la caché, calcule cuánto tiempo tardaría la UCP en realizar estos accesos a memoria.

Solución:

a)
Cantidad de particione s Cantidad de palabras
caché  (Cantidad de palabras en la caché )  Cantidad de conjuntos  · ·
por conjunto por partición

Cantidad de particiones 28 palabras Cantidad de particiones 211 3


211  1 conjunto (por ser completame nte asociativa )  · ·    2 particiones
por conjunto por partición por conjunto 28
Cantidad de palabras
MP  (Cantidad de palabras en la Memoria Principal )  Cantidad de particione s en la Memoria Principal ·
por partición
28 palabras 16
216  Cantidad de particione s en Memoria Principal ·  Cantidad de particiones en Memoria Principal   2  28 particiones
por partición 28
8
Cantidad de páginas en la Memoria Principal  Cantidad de particiones en la Memoria Principal  2 0particiones  28 páginas
Cantidad de conjuntos en la caché 2 conjuntos

8 bits 8 bits
15 8 7 0
DF número de página (etiqueta) offset
8
MEMORIA PRINCIPAL MEMORIA CACHÉ
Directorio caché
... partición partición partición partición partición partición partición partición
página 0 página 1 página 28-1 1 2 3 4 5 6 7 8
C0 ... C0

b) Si definimos  como el tiempo de lectura en la caché, el tiempo de lectura en la memoria principal es 7.
El tiempo total sin memoria caché es:

Tiempo de lectura Cantidad de palabras 7τ 2301 palabras


TSin caché    Cantidad de iteraciones de bucle    5 iteración de bucle  80535  τ
por palabra por iteración de bucle por palabra por iteración de bucle

Arquitectura de Computadoras 14 Ejercicios de Memoria Caché


c)
Iteración 1ª:

00  00  Provoca fallo, pues la caché está inicialmente vacía. Va a la partición 0 con la etiqueta 00.

00  01
..  .. Aciertos
00  FF

01  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 01. Va a la partición 1 con la etiqueta 01.
01 01
..  .. Aciertos
01 FF

02  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 02. Va a la partición 2 con la etiqueta 02.

02 01
..  .. Aciertos
02 FF

03  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 03. Va a la partición 3 con la etiqueta 03.

03 01
..  .. Aciertos
03 FF

04  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 04. Va a la partición 4 con la etiqueta 04.
04 01
..  .. Aciertos
04 FF

05  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 05. Va a la partición 5 con la etiqueta 05.
05 01
..  .. Aciertos
05 FF

06  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 06. Va a la partición 6 con la etiqueta 06.
06 01
..  .. Aciertos
06 FF

07  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 07. Va a la partición 7 con la etiqueta 07.
07 01
..  .. Aciertos
07 FF

Hasta aquí ha habido 8 fallos y ningún reemplazo. Pero ahora acaba de llenarse la caché. A partir de ahora, en cada fallo habrá reemplazo.

08  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 08.
Reemplaza a la más recientemente usada (la que había en la partición 7 con la etiqueta 07), actualizando la etiqueta a 08.
08 01
..  .. Aciertos
07 FC

Estado actual del directorio caché:


DF 07 FC
8
MEMORIA CACHÉ
Directorio caché

partición partición partición partición partición partición partición partición


0 1 2 3 4 5 6 7
C0 00 01 02 03 04 05 06 08

Arquitectura de Computadoras 15 Ejercicios de Memoria Caché


Iteración 2ª:

00 00
..  .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF

01 00
..  .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF

02 00
..  .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
02 FF

03 00
..  .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.
03 FF

04 00
..  .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
04 FF

05 00
..  .. Aciertos, pues la etiqueta 05 está presente en la partición 5 de la caché.
05 FF
06 00
..  .. Aciertos, pues la etiqueta 06 está presente en la partición 6 de la caché.
06 FF

07  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 07.
Reemplaza a la más recientemente usada (la que había en la partición 6 con la etiqueta 06), actualizando la etiqueta a 07.
07 01
..  .. Aciertos
07 FF

08 00
..  .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
08 FC

Estado actual del directorio caché:


DF 08 FC
8
MEMORIA CACHÉ
Directorio caché

partición partición partición partición partición partición partición partición


0 1 2 3 4 5 6 7
C0 00 01 02 03 04 05 07 08

Arquitectura de Computadoras 16 Ejercicios de Memoria Caché


Iteración 3ª:

00 00
..  .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF

01 00
..  .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF

02 00
..  .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
02 FF

03 00
..  .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.
03 FF

04 00
..  .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
04 FF

05 00
..  .. Aciertos, pues la etiqueta 05 está presente en la partición 5 de la caché.
05 FF

06  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 06.
Reemplaza a la más recientemente usada (la que había en la partición 5 con la etiqueta 05), actualizando la etiqueta a 06.
06 01
..  .. Aciertos
06 FF

07 01
..  .. Aciertos, pues la etiqueta 07 está presente en la partición 6 de la caché.
07 FF

08 00
..  .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
08 FC

Estado actual del directorio caché:


DF 08 FC
8
MEMORIA CACHÉ
Directorio caché

partición partición partición partición partición partición partición partición


0 1 2 3 4 5 6 7
C0 00 01 02 03 04 06 07 08

Arquitectura de Computadoras 17 Ejercicios de Memoria Caché


Iteración 4ª:

00 00
..  .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF

01 00
..  .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF

02 00
..  .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
02 FF

03 00
..  .. Aciertos, pues la etiqueta 03 está pesente en la partición 3 de la caché.
03 FF

04 00
..  .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
04 FF

05  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 05.
Reemplaza a la más recientemente usada (la que había en la partición 4 con la etiqueta 04), actualizando la etiqueta a 05.
05 01
..  .. Aciertos
05 FF

06 00
..  .. Aciertos, pues la etiqueta 06 está presente en la partición 5 de la caché.
06 FF
07 01
..  .. Aciertos, pues la etiqueta 07 está presente en la partición 6 de la caché.
07 FF

08 00
..  .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
08 FC

Estado actual del directorio caché:


DF 08 FC
8
MEMORIA CACHÉ
Directorio caché

partición partición partición partición partición partición partición partición


0 1 2 3 4 5 6 7
C0 00 01 02 03 05 06 07 08

Arquitectura de Computadoras 18 Ejercicios de Memoria Caché


Iteración 5ª:

00 00
..  .. Aciertos, pues la etiqueta 00 está presente en la partición 0 de la caché.
00 FF

01 00
..  .. Aciertos, pues la etiqueta 01 está presente en la partición 1 de la caché.
01 FF

02 00
..  .. Aciertos, pues la etiqueta 02 está presente en la partición 2 de la caché.
02 FF

03 00
..  .. Aciertos, pues la etiqueta 03 está presente en la partición 3 de la caché.
03 FF

04  00  Provoca fallo, pues en la caché no hay ninguna partición con la etiqueta 04.
Reemplaza a la más recientemente usada (la que había en la partición 3 con la etiqueta 03, actualizando la etiqueta a 04.

04 01
..  .. Aciertos
04 FF

05 00
..  .. Aciertos, pues la etiqueta 04 está presente en la partición 4 de la caché.
05 FF

06 00
..  .. Aciertos, pues la etiqueta 06 está presente en la partición 5 de la caché.
06 FF

07 01
..  .. Aciertos, pues la etiqueta 07 está presente en la partición 6 de la caché.
07 FF

08 00
..  .. Aciertos, pues la etiqueta 08 está presente en la partición 7 de la caché.
08 FC

Estado actual del directorio caché:


DF 08 FC
8
MEMORIA CACHÉ
Directorio caché

partición partición partición partición partición partición partición partición


0 1 2 3 4 5 6 7
C0 00 01 02 04 05 06 07 08

d) Haciendo el recuento de fallos:


9 fallos en la primera pasada
1 fallo en la segunda pasada
1 fallo en la tercera pasada
1 fallo en la cuarta pasada
1 fallo en la quinta pasada
En total 13 fallos.

e) Según nos especifican, cuando se produce un fallo, el contenido de la dirección fallida no se lleva desde la memoria principal
simultáneamente a la caché y a la CPU. Tal como está diseñado este sistema de caché, cuando se produce el fallo, primero se lleva el
contenido de las 256 direcciones cuya partición contiene a la dirección pedida desde la memoria principal a la caché y después se lee en la
caché la dirección de marras. Por este motivo, siempre se lee en la caché, tanto si no hay fallo, como si lo hay. La conclusión es que:

Coste total = (Número total de direcciones buscadas)  (Tiempo de caché) + (Número total de fallos)  (penalización por fallo)

Siendo:
(penalización por fallo) = 2567  = 1792
Coste total = 23015  + 13 1792 = 34801

Arquitectura de Computadoras 19 Ejercicios de Memoria Caché


 ¿Cuál 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.?.
tC
1 1
fA    107 Hz tA
tC 100  10 9 seg
Petición de Información Información
lectura disponible restaurada

 Se pretende diseñar un módulo de memoria de 256 palabras de 4 bits. Calcule el número tamaño de los decodificadores con
organización:
a) 2D.
b) 2½D.

a) b)

Matriz de celdas 8 4 Decodificador


Decodificador 8 28 x 4 4 a 16
8 2
8 a 256
dirección
dirección 24

4 4
Matriz de celdas
4 Decodificador 24 28 x 4
SC control 4 a 16
R/W '
4 4
4 4
Dato de Dato de
entrada salida SC control
R/W '

4 4

Dato de Dato de
entrada salida

Arquitectura de Computadoras 1 Ejercicios de Memoria RAM


 Una de las situaciones más frecuentes con que se encuentra el ingeniero de sistemas digitales es esta: debe diseñar un sistema con unos
requerimientos concretos; y los elementos con que cuenta no se ajustan a dichos requerimientos.

Si la funcionalidad de los elementos disponibles fuera superior a la requerida, no habría ninguna dificultad añadida en el diseño. El único
inconveniente sería estar infrautilizando unos elementos para unas funciones menos complejas de lo que serían capaces de realizar. Si esta
funcionalidad es menor, debe estudiar cómo acoplar varios elementos de un mismo tipo para obtener un elemento con mayores capacidades.

Se dispone de circuitos integrados de memoria RAM de 256x4 bits. ¿Cuántos son necesarios para proporcionar una capacidad de
memoria de 2048 palabras de 16 bits?.

Estructura de la memoria principal requerida: Estructura de los circuitos integrados disponibles:


11
Bus de 2 16 Bus de Bus de 28 Bus de
4
direcciones 11 palabras datos direcciones 8 palabras datos
de 24 de 22
R/W' bits R/W ' bits
SC SC

Comenzaremos planteando estas dos ecuaciones:


1)
Nº de palabras
MP  (Nº de palabras en Memoria Principal )  Nº de filas  *
por circuito integrado

28 palabras 211
211  Nº de filas  *  Nº de filas    23
por circuito integrado 2 8
2)
Longitud de palabra
Longitud de palabra en Memoria Principal  Nº de columnas  *
en circuito integrado
2
2 bits 24
2 4bits  Nº de columnas  *  Nº de columnas    22
en circuito integrado 22

A10 A9 A8 A7 A6 A5 A4 A3 A2 A1A0 11 A7 A6 A5 A4 A3 A2 A1A0


7
Bus de direcciones 8 4 8 4 8 4 8 4
256x4 256x4 256x4 256x4
3
R/W' SC R/W' SC R/W' SC R/W' SC

8 256x4 4 8 256x4 4 8 256x4 4 8 256x4 4

R/W' SC R/W' SC R/W' SC R/W' SC

8 4 8 4 8 4 8 4
256x4 256x4 256x4 256x4
A10 A9 A8 D
E R/W' SC R/W' SC R/W' SC R/W' SC
C
O 8 256x4 4 8 256x4 4 8 256x4 4 8 256x4 4
D
I R/W' SC R/W' SC R/W' SC R/W' SC
F
I 4
8 256x4 4 8 256x4 4 8 256x4 4 8 256x4
C
A
D R/W' SC R/W' SC R/W' SC R/W' SC
O
R 8 256x4 4 8 256x4 4 8 256x4 4 8 256x4 4

R/W' SC R/W' SC R/W' SC R/W' SC


3a8
4 4
8 256x4 4 8 256x4 8 256x4 4 8 256x4

R/W' SC R/W' SC R/W' SC R/W' SC

8 256x4 4 8 256x4 4 8 256x4 4 8 256x4 4

R/W' SC 8 R/W' SC 8 R/W' SC 8 R/W' SC


8 Bus de datos
16

Por no recargar el diagrama, no se han detallado las conexiones de las patillas R/ W . La selección de función debe ser la misma para todos
los CIs. Por este motivo, todas las patillas R/ W deben estar conectadas a una línea común. Esta línea es parte del Bus de Control.

Arquitectura de Computadoras 2 Ejercicios de Memoria RAM


 Sea un procesador que dispone de 12 líneas de direcciones A11-A0. Para la construcción de su unidad de memoria se dispone de módulos
de 2K palabras, utilizándose la línea A1 para la selección de cada módulo (A0 es la línea menos significativa). ¿En qué módulos residirán las
direcciones hexadecimales C89 y C8A?.

Nº de palabras
MP  (Nº de palabras en Memoria Principal )  Nº de filas  *
por circuito integrado
11
2 palabras 212
210  Nº de filas  *  Nº de filas    21  2
por circuito integrado 211

Bus de direcciones
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A0

11 211 palabras

A1 DECODIFICADOR SC R/W '


1a2

11 211 palabras

SC R/W '
Bus de datos

Las sucesivas direcciones se distribuyen entre ambos módulos de esta forma:


Dirección dentro del módulo módulo
0 1
0 0000 0000 0000 (0) 0000 0000 0010 (2)
1 0000 0000 0001 (1) 0000 0000 0011 (3)
2 0000 0000 0100 (4) 0000 0000 0110 (6)
3 0000 0000 0101 (5) 0000 0000 0111 (7)
4 0000 0000 1000 (8) 0000 0000 1010 (A)
5 0000 0000 1001 (9) 0000 0000 1011 (B)
... ... ...
1100 1000 100b ... 1100 1000 1010 (C8A)
1100 1000 101b 1100 1000 1001 (C89) ...
... ... ...
Por tanto la dirección C89 va al módulo 0 y la C8A va al módulo 1

Arquitectura de Computadoras 3 Ejercicios de Memoria RAM


 Sea una memoria entrelazada de orden inferior con 6 módulos de 7 bytes cada uno y con latches en la salida. El procesador emite la
siguiente secuencia de direcciones físicas (en base 10):
31, 17, 3, 13 y 34.

¿Cuántos ciclos de memoria son necesarios para completar dicha secuencia?.

DF 31 17 3 13 34
31 6 17 6 3 6 13 6 34 6
Módulo 1 5 3 1 4
1 5 5 2 3 0 1 2 4 5
Dirección 5 2 0 2 5

Latches en la salida con acceso simultáneo a los módulos.

Módulo 0 latch

Módulo 1 latch
mux
 
Módulo 5 latch

módulo
2
5
5
4
0
3
T
2 0/2 2
t = 1/4 T
1 5

t
31 17 3 13 34

1 21
T =5 T  T = T =5.25 T
4 4

Son necesarios 5 ciclos de acceso a memoria, uno para cada módulo Cuando existen algunas direcciones iguales correspondientes a
diferentes módulos, nos ahorramos algún ciclo. Existen dos direcciones iguales correspondientes a diferentes módulos: la 17 y la 13.

Arquitectura de Computadoras 4 Ejercicios de Memoria RAM


 Sea una memoria principal compuesta por 6 módulos de 4 palabras por módulo. El procesador emite la siguiente secuencia de
direcciones físicas (todas son peticiones de lectura):
09, 12, 15, 18 y 21.

Calcule el número de palabras por ciclo que se pueden leer:


a) Con entrelazamiento de orden superior.
b) Con entrelazamiento de orden inferior.

a) Entrelazado de orden superior.

Distribuimos en cada módulo i; 0  i  M-1, todas las direcciones consecutivas entre i · 2n-m e (i+1) · 2n-m-1
Los m bits más significativos de cada dirección indican el módulo y los restantes n-m determinan la posición.

00 04 08 12 16 20
Ciclo 1º. 9, 12
01 05 09 13 17 21
Ciclo 2º. 15, 18, 21
02 06 10 14 18 22

03 07 11 15 19 23

b) Entrelazado de orden inferior.

Módulo de la forma 0  i  M-1 y dirección K·M+i 00 01 02 03 04 05

Si los cerrojos están a la salida, el proceso debe ser: 06 07 08 09 10 11

Ciclo 1º. 9 12 13 14 15 16 17
Ciclo 2º. 12, 15
Ciclo 3º. 18, 21 18 19 20 21 22 23
(iguales a las direcciones dentro de cada módulo)

Si los cerrojos están a la entrada, el proceso también puede ser:


Ciclo 1º. 9, 12
Ciclo 2º. 15, 18
Ciclo 3º. 21

Arquitectura de Computadoras 5 Ejercicios de Memoria RAM


 Sea un sistema con una memoria principal compuesta por cuatro módulos de ocho bytes cada uno, mediante un esquema de
entrelazamiento de orden inferior. El procesador emite la siguiente secuencia de direcciones físicas:
8, 10, 13, 13, 5, 7, 6 y 16.
Supongamos los dos siguientes casos:
i. Latches en la salida.
ii. Latches en la entrada.

Construya el diagrama de tiempos de acceso a los módulos, analizando en cuál de los dos casos es más rápida la respuesta de la memoria con
dicha secuencia.

En el entrelazamiento de orden inferior los módulos consecutivos tienen direcciones de palabras consecutivas. Los m bits menos significativos
se usan para seleccionar el módulo. El resto, la dirección.

dirección módulo
8 010 00 0
10 010 10 2
13 011 01 1 T
13 011 01 1
5 001 01 1 t = 1/4 T
7 001 11 3
6 001 10 2
16 100 00 0

i. Con Latches en la salida.

Módulo 0 latch

Módulo 1 latch
mux
Módulo 2 latch

Módulo 3 latch

¿Podrían estas dos posiciones ser accedidas en el mismo ciclo?


módulo 7
3 En general no. Podría suceder
que el primer acceso sea para
2 10 6 lectura y el segundo para
escritura.
1 13 13 5

0 8 16
8 10 13 13 5 7 6 16
t

1 21
Tiempo = T 1 t=5 T  T = T =5.2 T
4 4

ii. Con Latches en la entrada.


latch Módulo 0

latch Módulo 1
mux
latch Módulo 2

latch Módulo 3

módulo 7
3

2 10 6

1 13 13 5

0 8 16
8 10 13 13 5 7 6 16
t
2 18
Tiempo = 4 T 2 t=4 T  T = T =4.5 T
4 4

La estrategia más rápida es la de latches en la entrada.

Arquitectura de Computadoras 6 Ejercicios de Memoria RAM


 Sea un sistema con una memoria principal de 1 Kbyte dividida en ocho módulos iguales mediante un esquema de entrelazamiento de
orden inferior.
Suponga que:
✔ La salida de un dato del sistema de memoria consume 1 unidad temporal.
✔ El acceso a un módulo consume 6 unidades temporales.

El procesador emite la siguiente secuencia de direcciones físicas:


0, 1, 2, 7, 8, 9, 10, 255, 256, 120, 121, 122, 615, 616, 1001, 1002, 3, 4 y 5.

Construya el diagrama de tiempos de acceso a los módulos en los dos siguientes casos:
i. Latches en la salida.
ii. Latches en la entrada.
210
Direcciones en cada módulo: =27 , es decir, 7 bits para la posición dentro del módulo.
33
Dirección física Dirección Módulo Dirección Módulo
0 0000000 000 0 0
1 0000000 001 0 1 9 8 7 6 5 4 3 2 1 0
2 0000000 010 0 2
7 0000000 111 0 7
posición dentro del módulo número de módulo
8 0000001 000 1 0
9 0000001 001 1 1
10 0000001 010 1 2
255 0011111 111 31 7
256 0100000 000 32 0
120 0001111 000 15 0
121 0001111 010 15 1
122 0001111 010 15 2
615 1001100 111 76 7
616 1001101 000 77 0
1001 1111101 001 125 1
1002 1111101 010 125 2
3 0000000 011 0 3
4 0000000 100 0 4
5 0000000 101 0 5

i. Latches en la salida. Gestión a la entrada: en la entrada se selecciona una dirección de entre los diferentes módulos.

Módulo 0 latch

Módulo 1 latch
mux
 
Módulo 7 latch

módulo
0 31 76
7

5 0

0
4
0
3

2 0 1 15 125

1 0 1 15 125

0 0 1 32 15 77
0 1 2 7 8 9 10 255 256 615 616 3 4 5

6 12 18 24 30 36 42 48 54 t
121
122
120 1002
1001
Uno por cada módulo leído en la anterior etapa
El acceso a los módulos es simultáneo.

Tiempo = 9 T + 3 t = 9 · 6 u + 3 u = 57 unidades de tiempo.

Arquitectura de Computadoras 7 Ejercicios de Memoria RAM


ii. Latches en la entrada.

latch Módulo 0

latch Módulo 1
mux
 
latch Módulo 7

módulo
0 31 76
7

6
0
5
0
4
0
3

2 0 1 15 125

1 0 1 15 125

0 0 1 32 15 77
0 1 2 7 8 9 10255 256 615 616 3 4 5
t
6 12 18 24 30 36 42
121
122
120 1001 1002

El acceso a los módulos es retardado.

Tiempo = 6 T = 6 · 6 u = 367 unidades de tiempo.

Arquitectura de Computadoras 8 Ejercicios de Memoria RAM


 Considere dos sistemas A y B cuya memoria principal está dividida en 16 módulos idénticos y entrelazados según el esquema de orden
inferior. Cada sistema posee 16 cerrojos. En el sistema A están colocados en los buses de direcciones de los módulos. En el sistema B están
colocados en los buses de datos (uno en cada bus). Ponga ejemplos de tres secuencias de peticiones de acceso a memoria de tal manera que
el número de palabras accedidas por ciclo de memoria sea:
a) Mayor en A que en B.
b) Igual en A que en B.
c) Menor en A que en B.

Sistema A Sistema B

latch Módulo 0 Módulo 0 latch

latch Módulo 1 Módulo 1 latch


mux mux
   
latch Módulo 15 Módulo 15 latch

El acceso a varias palabras en cada ciclo está permitido si:


 Sistema A: Las palabras están en módulos diferentes, en cualquier posición.
 Sistema B: Las palabras están en módulos diferentes, en la misma posición.

a) A>B: 0, 3, 6, 9, 12, 15, 18, 21, ...

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

b) A = B: 0, 1, 2, 3, 4, 5, 6, 7, ... o también, por ejemplo: 0, 16, 32, 48, 64, ...

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

c) A < B: No es posible.

Arquitectura de Computadoras 9 Ejercicios de Memoria RAM


 Sea un sistema con una memoria principal de 1 Kbyte compuesta por ocho módulosiguales. El procesador emite la siguiente secuencia
de direcciones físicas:
0, 1, 2, 6, 12, 15, 20, 148, 300, 20, 29 y 22.

Trace el diagrama de tiempos de acceso a los módulos en cada uno de los tres casos siguientes:
i. Esquema de entrelazamiento de orden superior.
ii. Esquema de entrelazamiento de orden inferior con latches en la salida.
iii. Esquema de entrelazamiento de orden inferior con latches en la entrada.

210 bytes bytes


i. =27 ⇒ 7 bits por palabra
23 módulos módulo

DF 0 1 2 6 12 15 20 148 300 20 29 22
DF
Módulo=
27 0 0 0 0 0 0 0 1 2 0 0 0 128 148 128 300 128
6
Dirección 0 1 2 6 12 15 20 20 44 20 25 22 6 0 20 1 44 2

Se da el caso de que hay diferentes módulos con iguales direcciones.


Tiempo = 7 ciclos de reloj.

0 128 256 384 892


4, 5, 6
Módulo 0 Módulo 1 Módulo 2 Módulo 3  Módulo 7

127 255 383 511 1024

10 direcciones dentro del mismo módulo  10 ciclos de memoria.

ii. Entrelazamiento de orden inferior con latches en la salida.


Existe el riesgo de un conflicto de memoria por intentar acceder a módulos iguales.

DF 0 1 2 6 12 15 20 148 300 20 29 22
DF
Módulo=
23 0 0 0 0 1 1 2 18 37 2 3 2
Dirección 0 1 2 6 4 7 4 4 4 4 5 6

20 8 148 8 300 8 20 8 8 8
2 8 6 8 12 8 15 8 29 22
4 2 68 18 60 37 2
0 6 0 4 1 7 1 4 5 3 6 2
2 4 4
Se da el caso de que hay módulos distintos con las mismas direcciones.

módulo
1/15
7

0/6 2/22
6

5 3/29

1/13 2/20 18/148 37/300 2/20


4

2 0/2

1 0/1

0 0/0

T 2T 4T 6T 8T t

Tiempo=8T.
8 ciclos de memoria.

Arquitectura de Computadoras 10 Ejercicios de Memoria RAM


iii. Entrelazamiento de orden inferior con latches en la entrada.

Siempre direcciones diferentes con módulos diferentes. Puede ocurrir un conflicto de memoria por intentar acceder a módulos iguales.

DF 0 1 2 6 12 15 20 148 300 20 29 22
Dirección 0 0 0 0 1 1 2 18 37 2 3 2
Módulo 0 1 2 6 4 7 4 4 4 4 5 6

módulo
1
7

0 2
6

5 3

1 2 18 37 2
4

2 0

1 0

0 0
0 1 2 6 12 15 20 148 300 20 29 22

T 2T 4T 6T t

3 27
Tiempo = 6T 3 t=6T  T = T =6.75 T
4 4

Orden inferior
Dirección Módulo
Dirección física
0 000 0000 000
1 000 0000 001
2 000 0000 010
6 000 0000 110
12 000 0001 100
15 000 0001 111
20 000 0010 100
148 001 0010 100
300 010 0101 100
20 000 0010 100
29 000 0011 101
22 000 0010 110
Módulo Dirección
Orden superior

Arquitectura de Computadoras 11 Ejercicios de Memoria RAM


2 Unidad de Memoria
Tema

3UREOHPD 

Se dispone de circuitos integrados de memoria RAM de 1024 × 4bits. Estos chips disponen de dos señales de
control, CS (selección del chip) y L/E (lectura o escritura). Diseñar con ellos un sistema de memoria de 2K × 8 bits.
La memoria debe responder sólo a las direcciones 0400H a 0BFFH y se comunica con el procesador central
mediante las líneas de direcciones A15-A0, de datos D7-D0, y las líneas de control MEML (lectura) y MEME
(escritura). Para decodificar las direcciones utilizar un PLA indicando los términos producto y términos suma que
debe incorporar.

6ROXFLyQ

Para construir esta memoria harán falta 4 circuitos integrados (2 para lograr la capacidad × 2 para lograr el ancho de
palabra adecuado). La Figura 2.1 muestra la manera de interconectar estos circutios de memoria con la UCP.
A efectos prácticos, la memoria que se acaba de diseñar se puede considerar formada por dos bancos de
memoria de 1K palabras de 8 bits/palabra. Son los bancos formados por los circuitos integrados CI0 y CI1, que
contendrá las direcciones bajas (0 a 1023), y el formado por CI2 y CI3, que contendrá las direcciones altas (1024 a
2047). Los bancos se seleccionan mediante las señales CS1 y CS2, respectivamente, que se generan mediante una
PLA (según indica el enunciado) a partir de las señales de lectura/escritura y las líneas de direcciones.
Según indica el enunciado, esta memoria ocupa las direcciones 0400H a 0BFFH del sistema. Esto quiere decir
que cuando la UCP coloque estas direcciones en el bus se habrá de acceder a estos módulos de memoria. Además,
sólo se deberá accedera ellos mediante estas direcciones, ya que el computador tendrá en general reservadas las
direcciones restantes para otros fines (ROM, E/S, etc.) y si esta memoria respondiera a otras direcciones diferentes
se producirían errores.

1
2 Problemas de Estructura y Tecnología de Computadores II

A15-A0

A15-A10 CS1
A9-A0 A9-A0 A9-A0
CS A CS A
PLA
MEML
CS2 CI0 CI1
MEME
L/E D L/E D
UCP

A9-A0 A9-A0
CS A CS A

CI2 CI3

L/E D L/E D

D7-D4 D3-D0
D7-D0

Figura 2.1: Diagrama de la memoria y su interconexión con la UCP

Como los circuitos de memoria utilizados en este diseño son de 1024 palabras (1K), hacen falta 10 bits
(A9-A0) para direccionar una palabra dentro de un circuito. Los 6 bits de direcciones restantes (A15-A10) se
utilizarán para seleccionar uno de los dos bancos de memoria.
En binario, las direcciones indicadas van de 0000 0100 0000 0000 a 0000 1011 1111 1111. Agrupando 6 y 10
bits, resulta 000001 0000000000 a 000010 1111111111. Es decir, son direcciones de la forma 000001
XXXXXXXXXX y 000010 XXXXXXXXXX. Cuando A15-A10 valgan 000001 se deberá activar CS1 y cuando
valgan 000010, CS2. Siempre, claro está, que se haya solicitado una operación de memoria.
La UCP utiliza las señales MEML y MEME para indicar la operación de memoria a realizar. Son posibles 4
combinaciones de estas dos señales. La Tabla 2.1 muestra su significado.

MEML MEME Operación

0 0 No permitida

0 1 Lectura

1 0 Escritura
Unidad de Memoria 3

MEML MEME Operación

1 1 Ninguna

Tabla 2.1: Posibles operaciones de memoria

Las señales MEML y MEME están activas con el valor 0 y las operaciones de lectura y escritura son
mutuamente excluyentes (una operación no puede ser de lectura y escritura simultáneamente). Por eso, en la Tabla
2.1 la combinación 00 (ambas señales activas) no está permitida. La combinación 11 sí está permitida puesto que
ambas señales no están activas, lo que indica que no hay que realizar una operación de memoria.
La Tabla 2.2 muestra la tabla de verdad de las señales CS1 y CS2. A partir de ella se obtienen fácilmente sus
expresiones lógicas.

MEML MEME Direcciones Operación CS1 CS2

Bajas No permitida 0 0
0 0
Altas No permitida 0 0

Bajas Lectura 1 0
0 1
Altas Lectura 0 1

Bajas Escritura 1 0
1 0
Altas Escritura 0 1

Bajas Ninguna 0 0
1 1
Altas Ninguna 0 0

Tabla 2.2: Generación de las señales CS1 y CS2

CS 1 = A 15 A 14 A 13 A 11 A 10 MEMLMEME + A 15 A 14 A 13 A 11 A 10 MEMLMEME

CS 2 = A 15 A 14 A 13 A 11 A 10 MEMLMEME + A 15 A 14 A 13 A 11 A 10 MEMLMEME
Estas expresiones se implementarán en una PLA con capacidad suficiente para funciones de 7 variables (obsérvese
que en cualquier PLA las expresiones lógicas se implementan sin simplificar).
La señal L/E puesta a 1 indica operación de lectura. Como las señales MEML y MEME son mutuamente
excluyentes, en la Figura 2.1 se ha identificado MEME con L/E. En efecto, ambas señales se pueden considerar
equivalentes: en un acceso a memoria MEME a 0 implicará MEML a 1, lo que es una operación de escritura, y
viceversa; los casos 00 y 11 no originarán problemas ya que entonces CS1 y CS2 son 0, según sus expresiones
lógicas.

3UREOHPD 

Se denomina memoria entrelazada a la memoria principal que se encuentra dividida en varios módulos
4 Problemas de Estructura y Tecnología de Computadores II

autónomos, de manera que se puede acceder al mismo tiempo a tantas posiciones de memoria como módulos
tenga. Se denomina entrelazado de orden inferior cuando posiciones consecutivas de memoria principal se
asignan a módulos consecutivos; se denomina entrelazado de orden superior si, empleando módulos de 2n
posiciones, se asignan las 2n primeras posiciones al primer módulo, las 2n posiciones siguientes al segundo
módulo, y así sucesivamente.
Mostrar cómo se pueden implementar ambos tipos de entrelazado y discutir la principales características, así
como las ventajas e inconvenientes, de cada uno de ellos.

6ROXFLyQ

Según indica el enunciado, la memoria entrelazada consiste en una memoria principal que se ha construido a partir
de varios módulos independientes (chips) de memoria RAM. El esquema general de una memoria principal
formada con M módulos se muestra en la Figura 2.2. Cuando la UCP coloca una dirección en el bus de direcciones,
un módulo de decodificación de direcciones se encarga de traducir esta dirección del espacio de direcciones de la
memoria principal a una dirección particular dentro de un determinado módulo, que es el único seleccionado.

Bus de direcciones

Módulo de decodificación de direcciones

Direcciones y Direcciones y Direcciones y


selección de chip selección de chip selección de chip

Módulo 0 Módulo 1 Módulo M-1

Bus de datos

Figura 2.2: Esquema general de una memoria principal compuesta a partir de módulos independientes

Dependiendo de cómo se realice esta traducción una misma dirección de memoria principal será asignada a
uno u otro módulo. Los distintos tipos de entrelazado propuestos se diferenciarán, por tanto, en su módulo
decodificadores de direcciones.
En adelante se supondrá que la memoria principal esta formada por M módulos de memoria RAM de 2n
palabras cada uno. La capacidad total de la memoria será, por tanto, de P = M × 2n palabras. Sin pérdida de
generalidad, se supondrá además que M es una potencia de 2: M = 2m (en los párrafos siguientes se verá la razón de
esta suposición). Es decir, la capacidad total de la memoria será de P = 2m × 2n = 2m+n palabras, que serán
direccionadas con m + n bits de direcciones.
Unidad de Memoria 5

En el entrelazado de orden inferior posiciones consecutivas de la memoria principal se encuentran en


módulos RAM consecutivos: la dirección 0 estará en el módulo 0, la 1 en el módulo 1, la 2 en el módulo 2, hasta
llegar a la M - 1, que estará en el módulo M - 1; la dirección M estará nuevamente en el módulo 0, la M + 1 en el
módulo 1, y así sucesivamente. Como regla general, la dirección D se encontrará en el módulo (D mód M).
Esto se puede consegir utilizando los m bits menos significativos de la dirección para seleccionar el módulo
correspondiente. Los n bits más significativos se utilizarán para indicar la palabra dentro del módulo seleccionado,
como se muestra en la Figura 2.3.

Bus de direcciones n-1 n-2 ... n0 m-1 m-2 ... m0

m
m-1 m-2 ... m0

n-1 n-2 ... n0 DEC


m a 2m
n

CS CS CS

Módulo 0 Módulo 1 Módulo M-1

Bus de datos

Figura 2.3: Entrelazado de orden inferior

La Tabla 2.3 muestra como se distribuyen las P direcciones de la memoria principal entre los M módulos que
la componen. La primera columna indica la dirección dentro de cada módulo. Se comprueba que direcciones
consecutivas se encuentran en módulos consecutivos.

MÓDULO

Dirección dentro
0 1 2 ... M-1
del módulo

0 0 1 2 ... M-1

1 M M+1 M+2 ... 2M-1

2 2M 2M+1 2M+2 ... 3M-1

... ... ... ... ... ...

2n-1 P-M P-M+1 P-M+2 ... P-1

Tabla 2.3: Mapa de direcciones de una memoria con entrelazado de orden inferior
6 Problemas de Estructura y Tecnología de Computadores II

Además, en esta tabla se observa que si M no fuera una potencia de 2, M < 2m, entonces quedarían “huecos”
en la memoria: direcciones del espacio de memoria principal que no tienen un bloque físico de memoria en el que
alojarse. Por ejemplo, si M = 2m - 1, las direciones M - 1, 2M - 1, 3M - 1, ..., P - 1 no tendrían su módulo RAM (el
M - 1), “faltarían estas direcciones” no consecutivas, y la memoria no funcionaría correctamente.
Para lograr el entrelazado de orden superior hay que utilizar los bits más significativos para la selección del
módulo, tal como se muestra en la Figura 2.4.

Bus de direcciones m-1 m-2 ... m0 n-1 n-2 ... n0

m
m-1 m-2 ... m0

n-1 n-2 ... n0 DEC


m a 2m
n

CS CS CS

Módulo 0 Módulo 1 Módulo M-1

Bus de datos

Figura 2.4: Entrelazado de orden superior

El mapa de direcciones de esta memoria se indica en la Tabla 2.4. En este caso, cada bloque de memoria
contiene 2n direcciones consecutivas de memoria principal.

MÓDULO

Dirección dentro
0 1 2 ... M-1
del módulo

0 0 2n 2n+1 ... 2m+n-1

1 1 2n+1 2n+1+1 ... 2m+n-1+1

2 2 2n+2 2n+1+2 ... 2m+n-1+2

... ... ... ... ... ...

2n-1 2n-1 2n+1-1 2n+2-1 ... P-1

Tabla 2.4: Mapa de direcciones de una memoria con entrelazado de orden superior

En este caso, si M no es una potencia de 2 no origina ningún fallo de la memoria, puesto que no quedan
Unidad de Memoria 7

huecos no consecutivos: la memoria tendrá menos de P palabras. Así, por ejemplo, si M = 2m - 1 (falta el módulo M
- 1), la memoria tendrá unicamente P - 2n palabras.
Utilizando esta organización modular de la memoria, bien de orden inferior o superior, se pueden ir
entremezclando o entrelazando los accesos a los diversos módulos que componen la memoria principal. Obsérvese
que en un instante de tiempo determinado sólo puede acceder al bus (para lectura o escritura) un único módulo.
Pero como la velocidad de los chips de memoria principal es bastante inferior a la de los circuitos de la unidad de
control y la unidad de procesamiento se pueden ordenar accesos a distintos módulos, con la consiguiente mejora en
el rendimiento, según se muestra en el problema 1-3.
Normalmente, y debido al principio de localidad de la referencia, se direccionan posiciones de memoria
consecutivas. En este caso el entrelazado de orden inferior es ventajoso, pues se pueden ordenar accesos a M
posiciones consecutivas, una en cada módulo. Sin embargo, en el entrelazado de orden superior direcciones
consecutivas se encontrarán, generalmente, en el mismo módulo, por lo que sólo se puede acceder a una de ellas en
cada ocasión.
Por otra parte, y como ya se ha visto, la ausencia de uno de los módulos en el caso de entrelazado de orden
inferior origina huecos en la memoria difíciles de solucionar. Por este motivo es una memoria poco tolerante a
fallos. Dado que un sistema de este tipo ha de tener físicamente sus M módulos, ampliar la memoria es difícil, pues
supondría añadir nuevas líneas de direcciones al bus.
La memoria con entrelazado de orden superior soporta mejor los fallos, pues el fallo de un módulo origina un
hueco de 2n posiciones consecutivas, lo que no inutiliza completamente la memoria. Además, es en principio
factible escribir un programa para que el sistema ignore el hueco y no utilice (esto sería más difícil utilizando
entrelazado de orden inferior). Con entrelazado de orden superior es fácil ampliar la capacidad de la memoria, ya
que se puede comenzar con pocos módulos de memoria e irlos ampliando hasta completar los M módulos.
Problemas TEMA 2

2.1.- Un sistema jerárquico 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 leída por la CPU.

SOLUCIÓN:
El tiempo de acceso medio tam se define como:
tam=h·t ga+(1-h)t gf
Donde t ga es el tiempo de gestión del acierto. Normalmente se cumple que:
tga=t ac=10 nseg
Por otra parte t gf 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.
La palabra es enviada desde la Mp a la Mc, para lo que empleara un tiempo tap.
Finalmente dicha palabra es leída por la CPU en la MC , por lo que empleará un tiempo tac.
tgf=t ex+t ac+t ap=20+100+10=130 nseg
Sustituyendo los valores en la formula se obtiene que :
tam=0,90·10+0,1·130=9+13=22 nseg

2.2.- ¿Cuál 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.?
SOLUCIÓN:
El tiempo de acceso tA se define como el tiempo necesario para leer o escribir un determinado número de
bits. O también como el tiempo transcurrido desde que se solicita una información 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 definición, la frecuencia de acceso fa o velocidad de transferencia vt se define como el número de
palabras que se pueden leer o escribir en memoria por unidad de tiempo.
fa=1/ tC
luego obtenemos:
fa=1/100·10-9 =1/10-7 =107 segundos-1

2.3.- Indicar si las siguientes afirmaciones son verdaderas o falsas. Para diseñar un
módulo de memoria de 256 palabras de 4 bits
I. Utilizando organización 2D, para seleccionar la palabra haría falta un decodificador
de 8 entradas y 28 salidas.
II. Utilizando organización 2 ½ D, para seleccionar la palabra harían falta dos
decodificadores de 4 entradas y 24 salidas.

SOLUCIÓN:
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 dirección de memoria.
Puesto que 256=28 ? n=log2 2 8 = 8 bits.
Análisis de la Afirmación I
Si se utiliza organización 2D (ver libro de teoría pags.62-64), se requiere un
decodificar que reciba los n=8 bits del bus de dirección y genere las 2n =28 posiciones
de memoria, es decir que posea 8 entradas y 28 salidas. Luego la afirmación I es
verdadera.
Si se utiliza organización 21/2D (ver libro de teoría pags.65-68), se requieren dos
decodificares, cada uno con n/2=4 entradas y 2 n/2 =2 4 salidas. Luego la afirmación II
es verdadera.

2.4.- En una memoria caché en la que se realizan 230 accesos con una tasa de aciertos
del 75%, ¿Cúal es el número de fallos producidos ?

SOLUCIÓN:
La definición de tasa de fallos (1- h) es:
1-h=NF/Nt
Despejando el número total de Fallos:
NF=(1-h)·Nt
Sustituyendo valores se obtiene:
NF=(1-0,75)·230=0,25·230 =230 /4=228

Luego el número total de fallos es NF= 228 .

2.5.- Se considera un procesador que dispone de 12 líneas de direcciones A11 -A0 .


Para la construcción de su unidad de memoria se dispone de módulos de 1K palabras,
utilizándose las líneas más significativas (A11 -A10 ) para la selección de cada módulo.
¿Cuál es en el mapa de memoria, la dirección base (primera dirección de cada módulo)
en notación hexadecimal de los sucesivos bloques de memoria ?

SOLUCIÓN:

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen
12 bits, uno por cada línea. Por otro lado puesto que se tienen dos líneas A11 y A10
para seleccionar módulos de memoria de 1K, el número total de módulo s para
implementar el mapa de memoria es 2 2 =4 módulos. En la siguiente tabla se muestra el
módulo de memoria al que se hace referencia en función del valor de estas dos líneas.
A11 A10 Módulo de memoria
0 0 Módulo 0
0 1 Módulo 1
1 0 Módulo 2
1 1 Módulo 3

Así las direcciones que hacen referencia al primer módulo de memoria (módulo nº 0)
son:
00XX XXXX XXXX
Las direcciones que hacen referencia al segundo módulo de memoria (módulo nº 1) son:
01XX XXXX XXXX
Las direcciones que hacen referencia al tercer módulo de memoria (módulo nº 2) son:
10XX XXXX XXXX
Y las direcciones que hacen referencia al cuarto módulo de memoria (módulo nº 3) son:
11XX XXXX XXXX

En la siguiente tabla aparece la primera dirección (dirección base) y la última de cada


módulo de memoria, tanto en binario como en hexadecimal.
Módulo de memoria Dirección de inicio Dirección final
Módulo nº 0 0000 0000 0000 0011 1111 1111
000 (hexadecimal) 3FF (hexadecimal)
Módulo nº 1 0100 0000 0000 0111 1111 1111
400 (hexadecimal) 7FF (hexadecimal)
Módulo nº 2 1000 0000 0000 1011 1111 1111
800 (hexadecimal) BFF (hexadecimal)
Módulo nº 3 1100 0000 0000 1111 1111 1111
C00 (hexadecimal) FFF (hexadecimal)

La solución al problema (las direcciones base de cada módulo) está dada por lo tanto en
la tabla anterior.

2.6.- Un computador dispone del siguiente sistema jerárquico de memoria (ordenado


de los niveles superiores a los inferiores): registros de la CPU, caché primaria, caché
secundaria, memoria principal y discos magnéticos.
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 tamaño que la secundaria y contendrá la copia de
algunos bloques de ésta.

SOLUCIÓN:
Cuando se dispone de un sistema jerárquico 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.
Afirmación 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.
Afirmación 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.

2.7.- Se considera un procesador que dispone de 12 líneas de direcciones A11 -A0 .


Para la construcción de su unidad de memoria se dispone de módulos de 1K palabras,
utilizándose las líneas menos significativas (A1 - A0 ) para la selección de cada módulo.
Indique cuál de las siguientes afirmaciones es verdadera:
A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo
módulo de memoria.
B) Las direcciones hexadecimales C89 y C8A se enc uentran almacenadas en diferentes
módulos de memoria.
C)Ninguna de las anteriores es verdadera.

SOLUCIÓN:
De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen
12 bits, uno por cada línea. Por otro lado puesto que se tiene n dos líneas A1 y A0 para
seleccionar módulos de memoria de 1K, el número total de módulos para implementar
el mapa de memoria es 22 =4 módulos. En la siguiente tabla se muestra el módulo de
memoria al que se hace referencia en función del valor de estas dos líneas.
A1 A0 Módulo de memoria
0 0 Módulo 0
0 1 Módulo 1
1 0 Módulo 2
1 1 Módulo 3

Módulo 0
Así las direcciones que hacen referencia al primer módulo de memoria (módulo 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):
YY0
YY4
YY8
YYC
Módulo 1
Las direcciones que hacen referencia al segundo módulo de memoria (módulo 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):
YY1
YY5
YY9
YYD
Módulo 2
Las direcciones que hacen referencia al tercer módulo de memoria (módulo 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):
YY2
YY6
YYA
YYE

Modulo 3
Y las direcciones que hacen referencia al cuarto módulo de memoria (módulo 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):
YY3
YY7
YYB
YYF
Conocidas las direcciones que hacen referencia a cada módulo de memoria,
examinemos las afirmaciones:

Afirmación I: Es FALSA, la dirección C89 se refiere al módulo 1 y la dirección C8A


se refiere al módulo 2.
Afirmación II: Es VERDADERA, por que efectivamente C89 y C8A se refieren a
diferentes módulos, la dirección C89 se refiere al módulo 1 y la dirección C8A se
refiere al módulo 2.

2.8.- En una memoria caché en la que se realizan 220 accesos se producen 217 fallos. ¿
Cual es la tasa de fallos correspondiente?.

SOLUCIÓN:
La definición de tasa de fallos es:

Tasa de fallos = Nº de fallos/ Nº total de accesos = 217 /220 =1/23 =0,125

Por lo tanto la tasa de fallos será del 12,5%.

2.9.- Se considera un procesador que dispone de 12 líneas de direcciones A11 -A0 .


Para la construcción de su unidad de memoria se dispone de módulos de 2K palabras,
utilizándose la línea A1 para la selección de cada módulo (A0 es la línea menos
significativa). Indique cuál de las siguientes afirmaciones es verdadera:
A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo
módulo de memoria.
B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes
módulos de memoria.
C) El módulo en que se encuentra almacenada una dirección de memoria queda
determinado por el valor de A10 .
D) Ninguna de las anteriores es verdadera.

SOLUCIÓN:
De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen
12 bits, uno por cada línea. Por otro lado puesto que se tienen una única línea A1 para
seleccionar módulos de memoria de 2K, el número total de módulos para implementar
el mapa de memoria es 2 módulos. En la siguiente tabla se muestra el módulo de
memoria al que se hace referencia en función del valor de A1.
A1 Módulo de memoria
0 Módulo 0
1 Módulo 1

Módulo 0
Así las direcciones que hacen referencia al primer módulo de memoria (módulo 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):

YY0
YY1
YY4
YY5
YY8
YY9
YYC
YYD

Módulo 1
Las direcciones que hacen referencia al segundo módulo de memoria (módulo nº 1) son:
XXXX XXXX XX1X
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):
YY2
YY3
YY6
YY7
YYA
YYB
YYE
YYF
De acuerdo con el análisis realizado las afirmaciones son:
A) FALSA Ya que C89 se encuentra en el módulo 0 y C8A en el módulo 1.
B) VERDADERA. Ya que C89 se encuentra en el módulo 0 y C8A en el módulo 1.
C) FALSA. La línea de selección es A1.
D) FALSA. La afirmación B es verdadera.

2.10.- Supóngase 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
número de líneas del bus de direcciones. b)El número de lineas del bus de direcciones
comunes a todos los módulos.

SOLUCIÓN:
El número de líneas del bus de direcciones n se calcula a partir del número de palabras
que posee la memoria RAM construida. Es decir:

Líneas n= log2 1024 =log2 210 =10 líneas

Puesto que el número de palabras que posee el modulo RAM unidad es de 128, para
conseguir 1024 palabras de capacidad total se necesitarán:

Módulos m=1024/128= 8 módulos


Por otra parte, el número de líneas del bus de direcciones que se utilizarán para
seleccionar entre estos ocho módulos nS es:

lineas nS = log2 8 =log2 23 =3 líneas

Luego, el número de líneas del bus de direcciones comunes nC a todos los módulos
serán:
líneas comunes nC=n- ns= 10-3 =7

Hasta aquí se han indicado todos los cálculos necesarios para resolver el problema. De
forma adicional, vamos a calcular el número de módulos de memoria RAM de
capacidad C0 necesarios para construir una memoria RAM de capacidad CT . Pues bien,
obsérvese que CT se descompone de la siguiente forma:

CT =210 pal·24 bits/palabra = 23 ·27 pal·2·23 bits/pal=(23 ·2) ·27 pal·23 bits/pal=
16·(27 pal·23 bits/pal)
Es decir se necesita un total de 16 módulos.(Nótese que los módulos proporcionados
son de 8 bits y la memoria debe de ser de palabras de 16 bits. Así cada palabra estará
formada por ocho bits de un módulo y otros ocho del otro situado en la misma fila y con
la misma dirección común a ambos módulos)

Veamos, como quedaría, la estructura de la memoria:


ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 3: Unidad de Entrada Salida


SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2009-2010
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 máxima 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 máximo de tiempo estaría ocupado el bus del sistema en una transferencia de datos a través 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 instrucción emplea 10 ciclos máquina y cada operación de lectura o escritura de memoria tarda 5
ciclos máquina. Determinar la máxima velocidad de transferencia de datos si en este sistema se emplea DMA
con estrategia de transferencia por ráfagas.

3.4 Un computador con 13 líneas de direcciones tiene una memoria de 212 palabras y utiliza entrada/salida
localizada en memoria.
a) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa una
sola dirección?
b) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa 8
direcciones?

3.5 Sea una UCP con 4 líneas de interrupción PI3, PI2, PI1 y PI0 de las cuales son enmascarables las tres primeras
líneas mediante 3 bits del registro de estado RE de la UCP, de forma que una petición de interrupción en PIj
enmascara las líneas PIi con i<j e i≠0. Se supone que se producen 4 peticiones de interrupción 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
200×106 ciclos/seg., ¿cuántas instrucciones por segundo deja de ejecutar la UCP cuando el controlador de DMA
está realizando una transmisión?

3.7 En un computador que funciona a una velocidad de 108 ciclos/seg una instrucción emplea, en promedio, 4
ciclos máquina 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 máxima velocidad de transferencia de datos es de 50.000.000
palabras/seg.
II. Empleando DMA por robo de ciclos la máxima velocidad de transferencia de datos es de
20.000.000 palabras/seg.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 2×105 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 máximo de tiempo estaría 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 operación de E/S con una impresora a una velocidad de
transferencia de 256 Kb/seg. Si el controlador de E/S recibe la información que debe enviar a la impresora a una
velocidad de 1Mb/seg, ¿cuánto tiempo tardará en llenarse por primera vez el buffer suponiendo que inicialmente
está vacío, y que recibe y envía información simultáneamente de forma continua?

3.10 Si llamamos VP, VI y VD a las velocidades máximas de transferencia empleando E/S controlada por
programa, E/S con interrupciones y E/S con DMA, respectivamente, se verifica la relación:
A) VP<VI>VD B) VP<VI<VD C) VP>VI>VD D) Ninguna de las anteriores

3.12 Un ordenador con 32 líneas de direcciones tiene una memoria de 32 Mb y utiliza entrada/salida aislada de
memoria. ¿Cuál es el número máximo de periféricos 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 200×106 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 ejecución del procesador se reduce más 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 5×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., explique razonadamente qué porcentaje máximo de tiempo estaría ocupado el bus del sistema en una
transferencia de datos a través de este canal multiplexor.

3.15 Indicar cuál 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 interrupción a través del bus de datos o del bus de direcciones, indistintamente.
C) Las interrupciones multinivel no permiten la identificación de la fuente de interrupción mediante un vector
de interrupción.
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 cuál es la velocidad máxima de transferencia agregada a este sistema.

3.17 Se dispone de una UCP con una única línea de petición de interrupción (INTR) y una única línea de
aceptación de interrupción (INTA). Se desea diseñar 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 líneas de petición de interrupción INTR3, INTR2, INTR1 e INTR0.
Cuando se reciben peticiones de interrupción simultáneas por más de una línea sólo se reconoce la más
prioritaria (la máxima prioridad la tiene INTR3 y la mínima INTR0). Además, cada una de estas líneas de
interrupción se ha de poder enmascarar de manera individual mediante un registro de máscara del controlador de
interrupciones (el mecanismo de acceso a este registro por parte de la UCP no es relevante para este problema).

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

Cuando la UCP activa su línea de aceptación INTA se debe informar al periférico correspondiente, de
manera individual, de que su petición ha sido
INTR0 INTR aceptada, mediante las líneas de aceptación INTA3,
INTR1 INTA2, INTA1 e INTA0.
Controlador
de UCP A) (0.75 puntos) Obtener la tabla de verdad de las
INTR2 interrupciones 4 líneas INTAi (i=1..4) en función de las 4
INTR3 INTA líneas INTRi (i=1..4) e INTA, suponiendo que
ninguna de las líneas de petición está
enmascarada.
INTA0
B) (0.75 puntos) Diseñar un circuito lógico que
INTA1
implemente el mecanismo de enmascaramiento
INTA2
de las 4 líneas INTRi (i=1..4).
INTA3
C) (0.75 puntos) Diseñar un circuito lógico que
implemente el esquema de prioridades de las 4 líneas INTRi (i=1..4).
D) (0.75 puntos) Diseñar el circuito que genere las señales INTAi (i=1..4).
E) (1 punto) Diseñar el controlador de interrupciones solicitado utilizando para ello los resultados obtenidos en
los apartados anteriores.

3.18 Sea una UCP con 4 líneas de interrupción PI1, PI2, PI3 y PI4, numeradas en orden creciente de prioridad,
es decir, PI1 tiene la prioridad mínima y PI4 la máxima. El sistema no permite anidamiento de interrupciones.
Se supone que se producen 4 peticiones de interrupción en este orden: PI3, PI1, PI4 y PI2. Teniendo en cuenta
que las tres últimas se producen simultáneamente 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 máximo de tiempo estaría ocupado el bus del sistema en una transferencia de datos
del canal multiplexor a memoria principal?

3.20 Sea una UCP con 5 líneas de interrupción PI4, PI3, PI2, PI1 y PI0 enmascarables mediante 5 bits del
registro de estado RE de la UCP, de forma que una petición de interrupción en PIj enmascara las líneas PIi con
i<j. Se supone que se producen 4 peticiones de interrupción en este orden: PI2, PI4, PI3 y PI1. Teniendo en
cuenta que las interrupciones son anidables y que las tres últimas se producen simultáneamente y antes de
finalizar la ejecución 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 5×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 50
nseg., ¿qué porcentaje máximo de tiempo estaría ocupado el bus del sistema en una transferencia de datos a
través de este canal selector?.

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.

Bus de datos
Bus de direcciones
Leer
Escribir

Memoria Controlador
Principal UCP E/S

Perif. 1 ... Perif. n

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

3.23 Sea una UCP con 4 líneas de interrupción enmascarables PI1, PI2, PI3 y PI4, numeradas en orden
creciente de prioridad, es decir, PI1 tiene la prioridad mínima y PI4 la máxima. El sistema permite anidamiento
de interrupciones. Se supone que se producen 4 peticiones de interrupción en este orden: PI3, PI1, PI4 y PI2.
Teniendo en cuenta que las tres últimas se producen simultáneamente 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 máxima 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 2·105 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 máximo de tiempo estaría ocupado el bus del sistema en una transferencia de datos
del canal multiplexor a memoria principal?

3.26 Se desea diseñar un controlador de interrupciones con las siguientes características. Tiene un módulo de
gestión de prioridades de forma que cuando se reciban peticiones de interrupción simultáneas por más de una
línea sólo se reconozca la más prioritaria. Tiene un módulo de enmascaramiento que permite enmascarar de
manera individual cualquiera de las líneas de petición. ¿En qué orden se colocarían estos dos módulos? ¿Por
qué?

3.27 Un computador con 13 líneas de direcciones tiene una memoria de 3·211 palabras y utiliza entrada/salida
localizada en memoria. ¿Cuál es el número máximo de periféricos 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 2·105 bytes/seg.
Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante
200 nseg. ¿Cuál es la velocidad máxima 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é reducción 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 200·106 ciclos/seg.,
¿cuánto tiempo tardará el controlador de DMA en mover un bloque de datos compuesto por 100·10 6 palabras?

3.31 En un sistema de E/S de un computador están conectados 2 discos duros, 1 impresora y 1 CDROM. El
sistema de E/S gestiona los dispositivos mediante interrupciones anidables y además estos están 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 además que las rutinas de interrupción 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 petición de interrupción del primer disco duro, después en el instante t=3
u.t. llega una petición de interrupción de la impresora, posteriormente se produce una interrupción del CDROM
en t = 5 u.t. y finalmente llega una petición de interrupción del segundo disco duro en t = 14 u.t. ¿En qué
instante de tiempo finaliza la ejecución de la rutina de interrupción 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 transmisión por ráfagas es la más adecuada cuando se desea eliminar completamente la
interferencia entre el controlador de DMA y la CPU.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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. ¿Cuál es la configuración de estos bits si se desean enmascarar las
interrupciones de nivel 7?

3.35 Se dispone de una UCP con una única línea de petición de interrupción (INTR) y una única línea de
aceptación de interrupción (INTA). Se desea diseñar 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 líneas de petición de interrupción INTR7, INTR6, ..., INTR1 e INTR0.
Cuando se reciben peticiones de interrupción simultáneas por más de una línea sólo se reconoce la más
prioritaria (la máxima prioridad la tiene INTR7 y la mínima INTR0). Este controlador no permite
enmascaramiento.
Cuando la UCP activa su línea de aceptación INTA se debe informar al periférico correspondiente, de
manera individual, de que su petición ha sido aceptada, mediante las líneas de aceptación INTA7, INTA6, ...,
INTA1 e INTA0.

INTR0 INTR A) (1.00 puntos) Obtener la tabla de verdad de


las 8 líneas INTAi (i=0..7) en función de las
Controlador 8 líneas INTRi (i=0..7) e INTA.
de UCP B) (1.00 puntos) Diseñar un circuito lógico que
interrupciones
implemente el esquema de prioridades de las
INTR7 INTA
8 líneas INTRi (i=0..7).
C) (0.75 puntos) Diseñar el controlador de
INTA0 interrupciones solicitado utilizando para ello
los resultados obtenidos en los apartados
anteriores.
INTA7
D) (1.25 puntos) Indique razonadamente cómo
conectaría 2 controladores de interrupciones de 8 entradas, como el diseñado en el apartado anterior, para
poder atender las peticiones de interrupción de 15 dispositivos externos. (Se valorará positivamente la
simplicidad del diseño.)

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 ráfagas.
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 máxima velocidad de transferencia agregada a este sistema?

3.38 Un computador con 24 líneas de direcciones tiene una memoria de 220 palabras y utiliza entrada/salida
aislada. ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa una
sola dirección?

3.39 Indicar cuál de las siguientes afirmaciones es falsa.


A) Un PE/S de tipo canal selector controla múltiples dispositivos de alta velocidad.
B) Un PE/S de tipo canal multiplexor puede controlar de forma simultánea operaciones de E/S con
múltiples dispositivos.
C) En E/S controlada por programa la CPU realiza, entre otras operaciones, la comprobación del estado
del periférico.
D) Alguna de las anteriores es falsa.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

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 sólo se dedica a E/S, que el bucle de espera se
implementa con una única instrucción, que la lectura de un dato y solicitud del siguiente dato por parte de la
CPU lleva 10 instrucciones, y que cada instrucción de la CPU se ejecuta en 200 µseg, ¿qué tanto por ciento de
su tiempo dedica la CPU al bucle de espera?.

3.41 Una CPU dispone de una única línea de petición de interrupción (INTR) y de una única línea de
aceptación de interrupción. Diseñe para esa CPU un controlador de interrupciones, de manera que se
puedan atender interrupciones generadas por 3 dispositivos externos mediante líneas de petición de
interrupción (ver Figura).
Cuando se reciben peticiones de interrupción simultáneas, sólo se reconoce la más prioritaria. La
máxima prioridad la tiene INTR0 y la mínima INTR 2.
INTR2 INTR1 INTR0 Además, cada una de estas líneas de
interrupción se ha de poder enmascarar de manera
individual mediante un registro de máscara
2 1 0 INTR INTR (M2M1M0) del controlador de interrupciones (el
CONTROLADOR DE mecanismo de acceso de la CPU a este registro no
INTERRUPCIONES
UCP es relevante para este problema). Cuando Mj = 0, la
Máscara: [M2 M1 M0]
INTA
correspondiente señal INTRj está enmascarada y no
2 1 0
INTA debe ser atendida.
Cuando la CPU activa su línea de
aceptación, INTA, se debe informar al periférico
INTA2 INTA1 INTA0 correspondiente, de manera individual, que su
petición ha sido aceptada, mediante las líneas de
aceptación INTA2,..., INTA0.

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


B) Obtenga la función lógica de las tres líneas INTA2, INTA1, INTA0 en función de las líneas INTR0,
INTR , INTR2 , INTA y de los bits del registro de máscara.
C) Diseñe el circuito lógico del controlador de interrupciones, usando para ello puertas AND, OR y
NOT.
D) Explique razonadamente cómo podrían conectarse varios controladores de interrupciones de 3
entradas, como el diseñado en el apartado anterior, para poder atender las peticiones de interrupción
de 6 periféricos externos.

3.42 Un computador dispone de una unidad de disco con una velocidad de lectura de 221 palabras por segundo y
con un buffer interno de 220 palabras que cuando se llena transfiere su contenido a la memoria principal
utilizando DMA por ráfagas. El controlador de DMA tarda 4 ciclos de reloj en transmitir cada palabra. Cuando
la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 8 ciclos de reloj en ser ejecutadas.
Si la frecuencia de reloj del computador son 500 × 106 ciclos/s, en una operación de lectura del disco ¿Cuántas
instrucciones por segundo dejan de ser ejecutadas por la UCP?

3.43 Suponga una CPU que dispone de 8 líneas de interrupción PIi, i = 1...8, con PI1>PI2>PI3>...>PI8, que son
enmascarables mediante 8 bits del registro de estado RE de la CPU (si el bit es 1 la petición está enmascarada y
si es 0 está activa). El bit más significativo del registro corresponde a la petición de interrupción de mayor
prioridad, el siguiente al segundo,... hasta el menos significativo que corresponde al de menor prioridad. La
máscara de interrupciones es 6C, expresada en hexadecimal. Con esta máscara se solicita interrupción por las
líneas 2 y 4 respectivamente (suponga que no está siendo atendida ninguna interrupción). ¿Cuál es la petición
atendida en ese momento?

3.44 Indique cuál de las siguientes afirmaciones es verdadera:


A) El controlador de DMA determina el sentido, lectura o escritura, de la operación de E/S.
B) La CPU interviene activamente en la transmisión de la información en las operaciones de E/S
mediante DMA.
C) Un procesador de E/S no es capaz de interrumpir a la CPU.
D) Ninguna de las anteriores.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

3.45 Un computador dispone de varios dispositivos muy rápidos de Entrada/Salida. Se desea que las operaciones
de E/S se realicen con el máximo rendimiento y que la intervención de la UCP sea mínima. Para ello se dotaría
al sistema de:
A) Un Procesador de E/S (PE/S) de tipo canal selector. B) E/S controlada por programa.
C) Un Procesador de E/S (PE/S) de tipo canal multiplexor. D) Ninguna de las anteriores.

3.46 En la figura se presenta un diagrama con el circuito de gestión de prioridades de un sistema de E/S
(Prioridad P0>P1>P2>P3). La expresión lógica que define INTR es:
INTR3 INTR2 INTR1 INTR0
A) INTR = INTR3 + INTR2 + INTR1 + INTR0
B) INTR = INTR3 + INTR 3 ( INTR2 + INTR 2 ( INTR1 + INTR1 INTR0 )
SISTEMA INTR
DE
GESTIÓN
C) INTR = INTR 3 INTR 2 INTR1 INTR 0
CPU
DE INTERRUPCIONES
D) Dos de las anteriores son ciertas.
INTA

INTA3 INTA2 INTA1 INTA0

3.47 Considere un codificador de prioridad con 4 entradas (I0, I1, I2, I3) y 3 salidas (S0, S1, PI) cuyo
funcionamiento viene descrito por la tabla de la verdad adjunta. Indique cuál de las afirmaciones siguientes es
correcta.
I0 I1 I2 I3 S0 S1 PI A) S0 = I 0 + I1
1 X X X 1 1 1
B) S1 = I 0 + I 2 ⋅ I1
0 1 X X 1 0 1
0 0 1 X 0 1 1 C) Las dos anteriores son correctas.
0 0 0 1 0 0 1 D) Ninguna de las anteriores.
0 0 0 0 X X 0

3.48 Un controlador de DMA está transmitiendo palabras a memoria mediante la estrategia transparente.
Cuando la CPU dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de reloj en ser
ejecutadas, aunque en 2 de ellos no se requiere el acceso al bus. El controlador de DMA tarda 1 ciclo de reloj en
transmitir una palabra. Si la frecuencia de reloj del computador es de 106 ciclos/seg, ¿cuánto tiempo tardará el
controlador de DMA en mover un bloque de datos compuesto por 10 6 palabras?

3.49 Un controlador de DMA está transmitiendo, mediante robo de ciclos, caracteres a memoria desde un
periférico. La CPU realiza la búsqueda de las instrucciones a una velocidad de 1 millón de instrucciones por
segundo. Si el porcentaje en que se reduce la velocidad del procesador debido al controlador DMA es de 0.89%,
¿a qué velocidad estará transmitiendo el DMA? Suponga una longitud de palabra de 8 bits y que la CPU emplea
en promedio 2 ciclos para ejecutar una instrucción.

3.50 Un periférico con una velocidad de transferencia de 1.500.000 bytes/segundo se conecta mediante un DMA
a un procesador que tarda una media de 200 nanosegundos en ejecutar una instrucción. El DMA requiere 10
instrucciones de inicialización y en la transferencia de un byte mantiene ocupados los buses durante 100
nanosegundos.
Se quieren transferir 500 bytes. Calcular para el peor de los casos (el procesador está parado mientras el DMA
ocupa el bus):
A) El tiempo que dedica el procesador a la transferencia de los 500 bytes.
B) El número de instrucciones de otro proceso que puede ejecutar el procesador mientras se realiza la
transferencia del bloque de datos.

3.51 Sea un procesador de 32 bits capaz de ejecutar 4 millones de instrucciones por segundo (4 MIPS). El
procesador precisa 1,25 µs (equivalente a la ejecución de 5 instrucciones) para realizar un cambio de contexto y
comenzar un programa de servicio de interrupciones (y el mismo tiempo para realizar el cambio de contexto en
sentido inverso). A este computador está conectado un periférico, que es una línea serie por la que se reciben

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

bloques de datos de 512 bytes con una velocidad de transferencia de 1Kbyte/s. El módulo de entrada/salida
interrumpe cada vez que se recibe un byte y en la rutina de tratamiento de interrupción de este periférico se
ejecutan 20 instrucciones. ¿Qué tanto por ciento de instrucciones puede dedicar el procesador a otros procesos
durante la transferencia de un bloque del periférico?

3.52 Un procesador dispone de ocho líneas de interrupción (numeradas del 0 al 7) y una política en la que las
interrupciones con un número bajo tienen mayor prioridad sobre aquellas de número más alto. El procesador
comienza sin interrupciones pendientes y se produce la siguiente secuencia de interrupciones: 4, 7, 1, 3, 0, 5, 6,
4, 2, 1. Suponga que la gestión de una interrupción tarda el tiempo suficiente para que se produzcan dos nuevas
interrupciones y que las interrupciones no se pueden interrumpir entre sí. Determinar el orden en que se
gestionan las interrupciones.

3.53 Indique si las siguientes afirmaciones sobre E/S localizada en memoria son verdaderas:
I. Sería posible realizar operaciones directamente sobre los puertos de E/S de datos sin necesidad de
moverlos explícitamente por programa a algún registro de la CPU.
II. Puede evitar gastar espacio de direcciones empleando una señal de control especial para indicar que está
realizando una operación de E/S localizada en memoria.

3.54 Se dispone de un computador que funciona a una velocidad de 108 ciclos por segundo y en el que, en
promedio, una instrucción emplea 10 ciclos máquina y cada operación de lectura o escritura de una palabra de
memoria tarda 2 ciclos máquina. Determinar la máxima velocidad de transferencia de datos si en este sistema se
emplea DMA con estrategia de transferencia por ráfagas.

3.55 Si TP, TI y TD denotan el tiempo de CPU que se necesita para realizar una transferencia de una sola
palabra empleando E/S controlada por programa, con interrupciones y con DMA respectivamente, se verifica la
relación:
A) TP<TI<TD B) TP<TD<TI C) TD<TI<TP D) Ninguna de las anteriores

3.56 Un computador dispone de un canal multiplexor que controla 3 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 250
Kbytes/seg. Si en lugar de un canal multiplexor se utilizase un canal selector con esos mismos dispositivos,
determinar la velocidad máxima de transferencia de este canal con respecto al multiplexor.

3.57 Un procesador que opera a 200 MHz y en el que en promedio una instrucción emplea 4 ciclos máquina
(CPI = 4) dispone de un sistema de interrupciones con un tiempo de reconocimiento de interrupción de 100 ns.
Este procesador se conecta a un disco magnético con 128 sectores/pista y 1024 bytes/sector a través del sistema
de interrupciones. En cada interrupción se transmiten 8 bytes utilizando una rutina de servicio que ejecuta 20
instrucciones. Se desea determinar lo siguiente:
a) (1 pto) Capacidad de entrada de datos (ancho de banda) máxima en bytes/segundo a través del sistema de
interrupciones.
b) (1 pto) Velocidad de rotación máxima a la que podrá operar el disco en r.p.m. (revoluciones por minuto).
c) (1 pto) Si el disco se conecta a través de DMA operando por robo de ciclo y cada vez que se le concede el
bus transmite 8 bytes, calcular el tiempo que el DMA roba a la CPU durante la lectura de un sector.
d) Porcentaje de tiempo que la CPU dedica a la E/S durante la operación del DMA si el disco opera a la
velocidad determinada en el apartado B).
Nota: Considerar que 1Mbyte = 106 bytes.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

3.58 Un computador de 13 líneas de direcciones tiene una memoria de M palabras y utiliza una entrada/salida
localizada en memoria. Si se supone que cada uno de los periféricos que puede conectarse ocupa 4 direcciones y
que el número máximo de periféricos de estas características que se conectan es de 210. ¿Cual es el tamaño de la
memoria del computador?

3.59 Un controlador de DMA está transmitiendo palabras a memoria mediante la estrategia de robo de ciclos.
Cuando la CPU dispone en exclusiva del bus, las instrucciones emplean, en promedio, C ciclos de reloj en ser
ejecutadas, aunque en 2 de ellos no requieren el acceso al bus. La frecuencia de reloj del computador es de
120×106 ciclos/seg. Si la CPU deja de ejecutar 107 instrucciones por segundo cuando el controlador de DMA
está realizando una transmisión, ¿Cuántos ciclos de reloj tarda en promedio en ejecutarse cada instrucción?

3.60 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y C unidades de cinta.
Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 102 bytes/seg. Si
la velocidad máxima de transferencia agregada a este sistema es de 3 ×106 bytes/seg. ¿De cuantas unidades de
cinta disponemos?

3.61 Un controlador de E/S posee un buffer para el almacenamiento temporal de los datos con una capacidad de
64 Kb. En un instante determinado inicia una operación de E/S con una impresora a una velocidad de
transferencia de 128 Kb/seg. Si el controlador de E/S recibe la información que debe enviar a la impresora a una
velocidad de 1Mb/seg, ¿cuánto tiempo tardará en llenarse por primera vez el buffer suponiendo que inicialmente
está vacío, y que recibe y envía información simultáneamente de forma continua?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 3: UNIDAD DE ENTRADA SALIDA Solución de los problemas

CONTENIDO
SOLUCION PROBLEMA 3.1 ..................................................................................................................... 4
SOLUCION PROBLEMA 3.2 ..................................................................................................................... 4
SOLUCION PROBLEMA 3.3 ..................................................................................................................... 5
SOLUCION PROBLEMA 3.4 ..................................................................................................................... 5
SOLUCION PROBLEMA 3.5 ..................................................................................................................... 6
SOLUCION PROBLEMA 3.6 ..................................................................................................................... 6
SOLUCION PROBLEMA 3.7 ..................................................................................................................... 7
SOLUCION PROBLEMA 3.8 ..................................................................................................................... 8
SOLUCION PROBLEMA 3.9 ..................................................................................................................... 9
SOLUCION PROBLEMA 3.10 ................................................................................................................. 10
SOLUCION PROBLEMA 3.12 ................................................................................................................. 10
SOLUCION PROBLEMA 3.13 ................................................................................................................. 10
SOLUCION PROBLEMA 3.14 ................................................................................................................. 11
SOLUCION PROBLEMA 3.15 ................................................................................................................. 12
SOLUCION PROBLEMA 3.16 ................................................................................................................. 12
SOLUCION PROBLEMA 3.17 ................................................................................................................. 12
SOLUCION PROBLEMA 3.18 ................................................................................................................. 13
SOLUCION PROBLEMA 3.19 ................................................................................................................. 13
SOLUCION PROBLEMA 3.20 ................................................................................................................. 14
SOLUCION PROBLEMA 3.21 ................................................................................................................. 14
SOLUCION PROBLEMA 3.22 ................................................................................................................. 15
SOLUCION PROBLEMA 3.23 ................................................................................................................. 15
SOLUCION PROBLEMA 3.24 ................................................................................................................. 16
SOLUCION PROBLEMA 3.25 ................................................................................................................. 16
SOLUCION PROBLEMA 3.26 ................................................................................................................. 17
SOLUCION PROBLEMA 3.27 ................................................................................................................. 17
SOLUCION PROBLEMA 3.28 ................................................................................................................. 18
SOLUCION PROBLEMA 3.29 ................................................................................................................. 18
SOLUCION PROBLEMA 3.30 ................................................................................................................. 18
SOLUCION PROBLEMA 3.31 ................................................................................................................. 19
SOLUCION PROBLEMA 3.32 ................................................................................................................. 20
SOLUCION PROBLEMA 3.33 ................................................................................................................. 21
SOLUCION PROBLEMA 3.34 ................................................................................................................. 21
SOLUCION PROBLEMA 3.35 ................................................................................................................. 21
SOLUCION PROBLEMA 3.36 ................................................................................................................. 21
SOLUCION PROBLEMA 3.37 ................................................................................................................. 22
SOLUCION PROBLEMA 3.38 ................................................................................................................. 22
SOLUCION PROBLEMA 3.39 ................................................................................................................. 23
SOLUCION PROBLEMA 3.40 ................................................................................................................. 23
SOLUCION PROBLEMA 3.41 ................................................................................................................. 24
SOLUCION PROBLEMA 3.42 ................................................................................................................. 24
SOLUCION PROBLEMA 3.43 ................................................................................................................. 25
SOLUCION PROBLEMA 3.44 ................................................................................................................. 26
SOLUCION PROBLEMA 3.45 ................................................................................................................. 26
SOLUCION PROBLEMA 3.46 ................................................................................................................. 26
SOLUCION PROBLEMA 3.47 ................................................................................................................. 27
SOLUCION PROBLEMA 3.48 ................................................................................................................. 27
SOLUCION PROBLEMA 3.49 ................................................................................................................. 28
SOLUCION PROBLEMA 3.50 ................................................................................................................. 29
SOLUCION PROBLEMA 3.51 ................................................................................................................. 30
SOLUCION PROBLEMA 3.52 ................................................................................................................. 31
SOLUCION PROBLEMA 3.53 ................................................................................................................. 32
SOLUCION PROBLEMA 3.54 ................................................................................................................. 32
SOLUCION PROBLEMA 3.55 ................................................................................................................. 32
SOLUCION PROBLEMA 3.56 ................................................................................................................. 32

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 3: UNIDAD DE ENTRADA SALIDA Solución de los problemas

SOLUCION PROBLEMA 3.57 ................................................................................................................. 33


SOLUCION PROBLEMA 3.58 ................................................................................................................. 35
SOLUCION PROBLEMA 3.59 ................................................................................................................. 36
SOLUCION PROBLEMA 3.60 ................................................................................................................. 37
SOLUCION PROBLEMA 3.61 ................................................................................................................. 37

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.1


DATOS
Canal multiplexor
2 unidades de disco =>vTD=500 Kbytes/seg
2 unidades de cinta =>vTC= 150 Kbytes/seg

En un canal multiplexor la velocidad máxima 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 • v TC = 2 • (500) + 2 • (150) = 1300( Kbytes / seg )

SOLUCION PROBLEMA 3.2


DATOS
Canal selector
2 unidades de disco =>vTD=106 bytes/seg
2 unidades de cinta =>vTC= 105 bytes/seg
tbus=10nseg

Se tiene una configuración como la que se muestra en la figura :

Mp D

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 vTcanal, que viene dada por
la velocidad del dispositivo más rápido que controla, es decir, la velocidad de transferencia de una unidad
de disco.

v Tcanal = v TD = 10 6 (bytes / seg )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

1 1 −6
t Tcanal = = 6 = 10 seg = 1000 nseg
v Tcanal 10

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la
transferencia de 1 byte entre un periférico y memoria principal Mp es tbus=10 nseg. En la figura se
representan esquemáticamente tTcanal y tbus.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

tbus= 10 nseg

tTcanal=1000 nseg

Luego P es :

tbus 10
P= • 100 = • 100 = 1%
tTcanal 1000

SOLUCION PROBLEMA 3.3


DATOS
frecuencia del computador es f=108 ciclos/seg
10 ciclos/instrucción
5 ciclos/pal
DMA con estrategia de transferencia por ráfagas

En este tipo de estrategia el controlador del DMA toma el control del bus del sistema, una vez que la
CPU ha ejecutado una instrucción y no lo cede hasta que ha transferido todo el bloque de palabras. Nos
piden calcular la máxima velocidad de transferencia de datos vtmax (pal/seg). Dicha velocidad vendrá
dada por el cociente entre la velocidad del computador y el número de ciclos que se necesitan para
escribir o leer una palabra.

f (ciclos / seg) 108


vtmax = = = 2 • 107 pal / seg
5 (ciclos / pal) 5

SOLUCION PROBLEMA 3.4


DATOS
n= 13 líneas de dirección.
Memoria con 212 palabras
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 líneas de control (lectura y escritura), por lo que se cumple el número total de direcciones
posibles NTD estará formado por las direcciones de palabras de memoria MDM y las direcciones de
palabras en periféricos NDP:

N D = N DM + N DP

El número total de direcciones ND viene definido por el número n de líneas de dirección.

N D = 213 direcciones

El número de direcciones para acceder a palabras de memoria es

N DM = 212 direcciones

Luego el número de direcciones para acceder a palabras en los periféricos vendrá dado por :

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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

a) Nos dicen que cada periférico ocupa una dirección => R= 1 dirección/periférico. Luego el número
máximo de periféricos NPmax es :

N DP 212 (dir )
N Pmax = = = 212 periféri cos
R 1(dir / per )

b) Nos dicen que cada periférico ocupa 8 direcciones => R= 8 dir/peri. Luego el número máximo de
periféricos NPmax es :

N DP 212 (dir )
N Pmax = = 3 = 2 9 periféri cos
R 2 (dir / per )

SOLUCION PROBLEMA 3.5


DATOS
4 líneas de interrupción PI3, PI2, PI1 y PI0
Son enmascarables las líneas PI3, PI2, y PI1
Una petición de interrupción PIj enmascara las líneas Pii con i<j e i≠0.
Se producen 4 peticiones de interrupción es este orden: PI 3, PI2, PI0 y PI1
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 líneas es:

prior(PI0)> prior(PI3)> prior(PI2)> prior(PI1)

Analicemos la secuencia de petición de interrupciones.


1) Llega PI3, se enmascaran PI2 y PI1, y se comienza a ejecutar el programa de servicio de la
interrupción PI3.
2) Llega PI2, como está enmascarada no se atiende.
3) Llega PI0, como tiene una prioridad superior a PI3, se detiene la ejecución 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 línea enmascarada.
7) Se termina el programa de ejecución de PI1.

Luego el orden de ejecución de las interrupciones es:

PI3, PI0, PI3, PI2 y PI1

SOLUCION PROBLEMA 3.6


DATOS
frecuencia del reloj del computador es f=200·10 6 ciclos/seg
4 ciclos/instrucción
2 ciclos/instrucción no requiere el uso del bus
DMA con estrategia de robo de ciclos

Para resolver este problema, primero hay que calcular la velocidad de ejecución vejec1
(instrucciones/segundo) cuando no hay DMA y a continuación calcular la velocidad de ejecución vejec2
(instrucciones/segundo) cuando hay DMA con estrategia de robo de ciclos. La velocidad de ejecución
vejec se define como el número de instrucciones que el computador es capaz de ejecutar en un segundo.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

1)Calcular vejec1.
1 ciclo
Ejecución
normal
Instr1 Instr2 Instr3

Sino hay DMA el computador tarda en promedio 4 ciclos en ejecutar cada instrucción. Luego la
velocidad de ejecución es:

f (ciclos / seg) 200 x106


vejec1 = = = 5 • 107 (instr / seg )
4(ciclos / inst ) 4

2) Calcular vejec2.

1 ciclo
Ejecución con
DMA por robo
de ciclos
Instr1 Instr2 Instr3
DMA DMA

Ahora cada vez que se ejecuta una instrucción, a continuación 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
instrucción e instrucción. Luego la velocidad de ejecución es:

f (ciclos / seg ) 200 x10 6


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

3) El número de instrucciones que dejen de ejecutarse por segundo viene dado por :

v ejec1 − v ejec 2 = 5 • 10 7 − 4 • 10 7 = 10 7 (instr / seg )

-------

SOLUCION PROBLEMA 3.7


DATOS
frecuencia del reloj del computador es f=108 ciclos/seg
4 ciclos/instrucción
2 ciclos/instrucción no requiere el uso del bus
1 ciclo/palabra

I) Afirmación: Con DMA transparente vtmax=5·107 (pal/seg)

1 ciclo
Ejecución 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
ejecución de una instrucción 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 instrucción y que sólo en dos de ellos no
requiere el uso del bus. Además nos dicen que el controlador de DMA únicamente necesita de 1 ciclo
para transmitir una palabra. Luego el número de palabras que se transmiten por DMA en la ejecución de
una instrucción (R), vendría dado por:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

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

La velocidad de ejecución es:

f (ciclos / seg ) 108


v ejec = = = 25 • 10 6 (instr / seg )
4(ciclos / inst ) 4

La velocidad de transferencia máxima es:

v tmax = R • v ejec = 2( pal / inst ) • 25 ⋅ 10 6 (inst / seg ) = 5 • 10 7 ( pal / seg )


Luego la afirmación I es verdadera.

II)Con DMA por robo de ciclos vtmax=2·107 (pal/seg).

1 ciclo
Ejecución con
DMA por robo
de ciclos
Instr1 Instr2 Instr3

La velocidad de ejecución es:

f (ciclos / seg ) 108


v ejec = = = 2 • 10 7 (instr / seg )
5(ciclos / inst ) 5
La velocidad de transferencia máxima, puesto que R=1pal/inst
v tmax = R • v ejec = 1( pal / inst ) • 2 ⋅ 10 7 (inst / seg ) = 2 • 10 7 ( pal / seg )

La afirmación II, es verdadera.

SOLUCION PROBLEMA 3.8


DATOS
Canal multiplexor
2 unidades de disco =>vTD=106 bytes/seg
5 unidades de cinta =>vTC= 2·105 bytes/seg
tbus=100nseg

Se tiene una configuración como la que se muestra en la figura:

Mp D

E/S
D
Canal
Multiplexor C
C
E/S C
C
Bus del sistema
C

En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor vTcanal, que viene dada
por la suma de las velocidades de cada uno de los dispositivos que controla.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

v Tcanal = 2 • v TD + 5 • v TC = 2 • 10 6 + 5 • 2 ⋅ 105 = 3 ⋅ 10 6 (bytes / seg )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

1 1 1000
t Tcanal = = 6 = nseg
v Tcanal 3 ⋅ 10 3

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la
transferencia de 1 byte entre un periférico y memoria principal Mp es tbus=100 nseg. En la figura se
representan esquemáticamente tTcanal y tbus.

tbus= 100 nseg

tTcanal=1000/3 nseg

Luego P es :

tbus 100
P= • 100 = • 100 = 30%
tTcanal 1000
3

SOLUCION PROBLEMA 3.9


DATOS
Controlador de E/S con buffer de capacidad C=256 Kb.
Buffer inicialmente vacio.
Operación de E/S con una impresora :
Recibe datos por el bus del sistema a vin= 1 Mb/seg.
Transmite datos a la impresora a vout= 256 Kb/seg.
Recibe y transmite de forma continua simultáneamente.

vin vout
Buffer

De los datos del problema se deduce que el buffer recibe datos a una velocidad más elevada de lo que
transmite. Habrá que calcular la velocidad de llenado v, que será:

v = vin − v out = 2 20 (bytes / seg ) − 2 18 (bytes / seg ) = (2 2 − 1) • 2 18 = 3 • 2 18 (bytes / seg )


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

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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.10


DATOS
VP velocidad máxima de transferencia empleando E/S controlada por programa.
VI velocidad máxima de transferencia empleando E/S controlada con interrupciones.
VD velocidad máxima de transferencia empleando E/S controlada con DMA.

La relación que se cumple es : VD > VI >VP


La respuesta correcta es la B.

SOLUCION PROBLEMA 3.12


DATOS
n= 32 líneas de dirección.
Memoria con 32 Mb
Utiliza E/S aislada de memoria.
R=16 direcciones/periférico

El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria
disponen de líneas de control (lectura y escritura) autónomas, por lo que el mapa de direcciones de
palabras de memoria es independiente del mapa de direcciones de palabras en periféricos.

El número total de direcciones ND viene definido por el número n de líneas de dirección.

N D = 2 32 direcciones

El número de direcciones para acceder a palabras en los periféricos NDP será igual al número total de
direcciones disponibles:

N DP = N D = 2 32 direcciones

Nos dicen que cada periférico ocupa 16 direcciones => R= 16 dir/peri. Luego el número máximo de
periféricos NPmax es :

N DP 2 32 (dir )
N Pmax = = 4 = 2 28 periféri cos
R 2 (dir / per )

SOLUCION PROBLEMA 3.13


DATOS
Frecuencia del reloj del computador es f=200·10 6 ciclos/seg
4 ciclos/instrucción
1 ciclo/instrucción no requiere el uso del bus
1 ciclo/palabra

• Si se realiza DMA por robo de ciclos:

1 ciclo
Ejecución con
DMA por robo
de ciclos
Instr1 Instr2 Instr3

La velocidad de ejecución es:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

f (ciclos / seg ) 200·10 6


vejec = = = 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 instrucción se cede 1
ciclo para realizar DMA entonces el número de palabras que se transmiten tras ejecutar una instrucción es
R=1pal/inst. Así la velocidad de transferencia máxima es:
vt max = R • vejec = 1( pal / inst ) • 4 ⋅10 7 (inst / seg ) = 4 • 10 7 ( pal / seg )

• Si se realiza DMA transparente:

1 ciclo
Ejecución con
DMA
transparente
Instr1 Instr2 Instr3

La velocidad de ejecución es:

f (ciclos / seg ) 200·10 6


vejec = = = 50 • 10 6 = 5 • 10 7 (instr / seg )
4(ciclos / inst ) 4

En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecución de una


instrucción 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 instrucción y que sólo en uno de ellos no requiere el uso
del bus. Además nos dicen que el controlador de DMA únicamente necesita 1 ciclo para transmitir una
palabra. Luego el número de palabras R que se transmiten en la ejecución de una instrucción, vendría
dado por:

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

La velocidad de transferencia máxima es:

vt max = R • vejec = 1( pal / inst ) • 5 ⋅10 7 (inst / seg ) = 5 • 10 7 ( pal / seg )

De acuerdo con estos resultados las afirmaciones son: Afirmación I: FALSA Afirmación II:
VERDADERA

SOLUCION PROBLEMA 3.14


DATOS
Canal multiplexor
3 unidades de disco =>vTD=5·106 bytes/seg
5 unidades de cinta => vTC= 105 bytes/seg
tbus=50 nseg

En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor vTcanal, que viene dada
por la suma de las velocidades de cada uno de los dispositivos que controla.

vTcanal = 3 • vTD + 5 • vTC = 3 • 5·10 6 + 5 • 10 5 = 15.5 ⋅10 6 (bytes / seg )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

1 1 10 −9 1000
tTcanal = = = −9
= nseg = 64.5 nseg
vTcanal 15.5 ⋅10 6
15.5 ⋅10 ·10
6
15.5

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la
transferencia de 1 byte entre un periférico y memoria principal Mp es tbus=50 nseg. En la figura se
representan esquemáticamente tTcanal y tbus.

tbus= 50 nseg

tTcanal=64.5 nseg

Luego el porcentaje máximo de tiempo P que estaría ocupado el bus del sistema en una transferencia de
datos a través de este canal multiplexor sería :

t bus 50
P= • 100 = • 100 = 77.5%
tTcanal 64.5

SOLUCION PROBLEMA 3.15


Afirmación I: Es falsa ya que la comprobación de la interrupción es por hardware (línea RI) y no por
software eso corresponde al tipo encuesta.
Afirmación II: Es falsa, la CPU recibe el vector de interrupciones vint exclusivamente por el bus de
datos.
Afirmación III: Es falsa, se tratan de conceptos independientes, ya que se está hablando por un lado de
identificación de la interrupción I y por otro de niveles de interrupción I.

Luego la respuesta correcta es la D.

SOLUCION PROBLEMA 3.16


DATOS
Canal multiplexor
2 unidades de disco => vTD=106 bytes/seg
10 unidades de cinta => vTC= 103 bytes/seg

La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.

vTcanal = 2 • vTD + 10 • vTC = 2 • 10 6 + 10 • 10 3 = 2 • 10 6 + 10 4 = 2.01·10 6 (bytes / seg )

SOLUCION PROBLEMA 3.17


La solución a este problema se encuentra en el archivo probT3_17.pdf

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.18


DATOS
4 líneas de interrupción PI1, PI2, PI3 y PI4
prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1)
El sistema no permite anidamiento.
Se producen 4 peticiones de interrupción es este orden: PI 3, PI1, PI4 y PI2
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 gestión de una interrupción, éste se completará antes de atender a otra petición de
interrupción.

Analicemos la secuencia de petición de interrupciones :


1) Llega PI3 y comienza a ejecutarse el programa de gestión de PI3.
2) Llega PI1, continua ejecutándose el programa de gestión de PI 3.
3) Llega PI4, continua ejecutándose el programa de gestión de PI 3.
4) Llega PI2, continua ejecutándose el programa de gestión de PI 3.
5) Terminado el programa de gestión de PI3, se procede a ejecutar el programa de gestión de PI4
que es la interrupción recibida con mayor prioridad.
6) Terminado el programa de gestión de PI4, se procede a ejecutar el programa de gestión de PI2
que es la interrupción recibida con mayor prioridad.
7) Terminado el programa de gestión de PI1, se procede a ejecutar el programa de gestión de PI4
que es la interrupción recibida con mayor prioridad.

Luego el orden de ejecución de las interrupciones es:

PI3, PI4, PI2 y PI1

SOLUCION PROBLEMA 3.19


DATOS
Canal multiplexor
2 unidades de disco => vTD=106 bytes/seg
10 unidades de cinta => vTC= 103 bytes/seg
tbus=100 nseg

La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.

vTcanal = 2 • vTD + 10 • vTC = 2 • 10 6 + 10 • 10 3 = 2 • 10 6 + 10 4 = 2.01·10 6 (bytes / seg )


La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

1 1 10 −9
tTcanal = = = = 497.5 nseg
vTcanal 2.01 ⋅10 6 2.01⋅10 6 ·10 −9

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la
transferencia de 1 byte entre un periférico y memoria principal Mp es tbus=100 nseg. En la Figura se
representan esquemáticamente tTcanal y tbus.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

tbus= 100 nseg

tTcanal=497.5 nseg

Luego el porcentaje máximo de tiempo P que estaría ocupado el bus del sistema en una transferencia de
datos a través de este canal multiplexor sería :

tbus 100
P= • 100 = • 100 = 20.1%
tTcanal 497.5

SOLUCION PROBLEMA 3.20


DATOS
5 líneas de interrupción PI4, PI3, PI2, PI1, PI0
Enmascarables mediante 5 bits del Registro de estado de la CPU.
Una petición PIj desactiva las líneas PIi con i <j
prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1) > prior(PI0)
Interrupciones anidables. Sistema multinivel.
Se producen 4 peticiones de interrupción es este orden: PI 2, PI4, PI3, PI1
Antes de finalizar PI2, llegan simultáneamente (PI4, PI3, PI1)

Analicemos la secuencia de petición de interrupciones :


1) Llega PI2 y comienza a ejecutarse el programa de servicio de PI2.
2) Llegan (PI4, PI3, PI1) simultáneamente, puesto que PI4 es la interrupción más 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 interrupción pendiente de mayor prioridad, hasta completarlo. Quedan
pendientes de atender PI2 y PI1.
4) Finalizado el programa de servicio de PI3, continúa con la ejecución del programa de
servicio de PI2, que es la interrupción pendiente de mayor prioridad, justo en el punto en
que fue interrumpido en el paso 2) hasta completarlo. Queda pendiente de atender PI 1.
5) Se atiende a PI1

Luego el orden en que se tratan las interrupciones es:

PI2, PI4, PI3, PI2, PI1

SOLUCION PROBLEMA 3.21


DATOS
Canal selector
3 unidades de disco => vTD=5·106 bytes/seg
5 unidades de cinta => vTC= 105 bytes/seg
tbus=50 nseg

La velocidad de transferencia de un canal selector vTcanal es:

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

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

1 1 10 −9 1000
tTcanal = = = −9
= nseg = 200 nseg
vTcanal 5 ⋅10 6
5 ⋅10 ·10
6
5

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la
transferencia de 1 byte entre un periférico y memoria principal Mp es tbus=50 nseg. En la Figura se
representan esquemáticamente tTcanal y tbus.

tbus= 50 nseg

tTcanal=200 nseg

Luego el porcentaje máximo de tiempo P que estaría ocupado el bus del sistema en una transferencia de
datos a través de este canal multiplexor sería :

tbus 50
P= • 100 = • 100 = 25%
tTcanal 200

SOLUCION PROBLEMA 3.22


DATOS
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 periféricos. De tal forma que dada una dirección se puede
acceder a una posición de memoria o un periférico. Luego en consecuencia las afirmaciones I y II son
verdaderas.

SOLUCION PROBLEMA 3.23


DATOS
4 líneas de interrupción PI1, PI2, PI3 y PI4
prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1)
El sistema permite anidamiento.
Se producen 4 peticiones de interrupción es este orden: PI 3, PI1, PI4 y PI2
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
gestión de una interrupción, si llega una interrupción de prioridad superior pasa a ejecutar la rutina de
servicio de dicha interrupción.

Analicemos la secuencia de petición de interrupciones :


1) Está ejecutando el programa de gestión de PI3.
2) Llega PI1, puesto que prio(PI1)<prio(PI3) ignora PI1 colocándola en una cola a la espera de
ser atendida, continua con el programa de gestión de PI 3.
3) Llega PI4, puesto que prio(PI4)>prio(PI3) detiene la ejecución del programa de gestión de PI3
y comienza a ejecutar el programa de servicio de PI4.
4) Llega PI2, puesto que prio(PI2)<prio(PI4) ignora PI2 colocándola en una cola a la espera de
ser atendida, continua ejecutando el programa de gestión de PI 4,
5) Terminado el programa de gestión de PI4, se procede a continuar con el programa de gestión
de PI3 hasta su finalización.
6) Terminado el programa de gestión de PI3, se procede a ejecutar el programa de gestión de PI2
que es la interrupción colocada en la cola de espera con mayor prioridad.
7) Terminado el programa de gestión de PI2, se procede a ejecutar el programa de gestión de
PI1.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

Luego el orden de ejecución de las interrupciones es:

PI3, PI4, PI3, PI2, PI1

SOLUCION PROBLEMA 3.24


DATOS
Canal multiplexor
2 unidades de disco => vTD=106 bytes/seg
10 unidades de cinta => vTC= 103 bytes/seg

La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.

vTcanal = 2 • vTD + 10 • vTC = 2 • 10 6 + 10 • 10 3 = 2 • 10 6 + 10 4 = 2.01·10 6 (bytes / seg )

SOLUCION PROBLEMA 3.25


DATOS
Canal multiplexor
5 unidades de disco =>vTD=106 bytes/seg
10 unidades de cinta =>vTC= 2·105 bytes/seg
tbus=200 nseg

En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor vTcanal, 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 • 10 6 + 10 • 2 ⋅ 105 = 7 ⋅ 10 6 (bytes / seg )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

1 1 1000
t Tcanal = = 6 = = 142.8 nseg
v Tcanal 7 ⋅ 10 7

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la
transferencia de 1 byte entre un periférico y memoria principal Mp es tbus=100 nseg. En la figura se
representan esquemáticamente 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
periféricos y memoria, más rápido de lo que ese byte tarda en transmitirse por el bus del sistema. El
tiempo de transferencia viene limitado por el tiempo de utilización del bus del sistema , ya que tbus>tTcanal.
Por lo tanto el tiempo de transferencia es :
t T = t bus

Luego P es :

Jose Manuel Díaz Tutor de ETC2 (Coslada) 16


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

t bus t 200
P= • 100 = bus • 100 = • 100 = 100 %
tT t bus 200

Es decir, el bus estaría saturado.

SOLUCION PROBLEMA 3.26


DATOS
Módulo de gestión de prioridades
Módulo de enmascaramiento

El orden de colocación de los módulos es:


Primero el módulo de enmascaramiento y a continuación el módulo de gestión de prioridades.

La razón de esta colocación es obvia, ya que si se colocasen al revés podría darse la circunstancia de
que ante una petición múltiple de interrupciones el módulo de gestión de prioridades marcase como más
prioritaria una interrupción que al pasar por el módulo de enmascaramiento resultase estar enmascarada.
Con lo que no se atendería ninguna.

SOLUCION PROBLEMA 3.27


DATOS
n= 13 líneas de dirección.
Memoria con 3x211 palabras
Utiliza E/S localizada en memoria.
R=16 direcciones/periférico

El computador utiliza E/S localizada en memoria, eso significa que el controlador de E/S y la memoria
comparten las líneas de control (lectura y escritura), por lo que se cumple el número total de direcciones
posibles NTD estará formado por las direcciones de palabras de memoria MDM y las direcciones de
palabras en periféricos NDP:

N D = N DM + N DP

El número total de direcciones ND viene definido por el número n de líneas de dirección.

N D = 213 direcciones

El número de direcciones para acceder a palabras de memoria es

N DM = 3 ⋅ 211 direcciones

Luego el número de direcciones para acceder a palabras en los periféricos vendrá dado por :

N DP = N D − N DM = 213 − 3 ⋅ 211 = (4 − 3) ⋅ 211 = 211 direcciones

Nos dicen que cada periférico ocupa una dirección => R= 16 dirección/periférico. Luego el número
máximo de periféricos NPmax es :

N DP 211 (dir )
N Pmax = = 4 = 2 7 periféri cos
R 2 (dir / per )

Jose Manuel Díaz Tutor de ETC2 (Coslada) 17


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.28


DATOS
Canal multiplexor
5 unidades de disco =>vTD=106 bytes/seg
10 unidades de cinta =>vTC= 2·105 bytes/seg
tbus=200 nseg

Este problema es completamente análogo 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 máxima
de transferencia viene dada por la inversa del tiempo de utilización del bus:

1 1 1 byte 10 7
vT max = = = = = 5 ⋅10 6 (bytes / seg )
max(t bus , tTcanal ) t bus 200 nseg 2

SOLUCION PROBLEMA 3.29


DATOS
Estrategia DMA transparente
Frecuencia del reloj del computador es f=200·10 6 ciclos/seg
4 ciclos/instrucción
1 ciclo/instrucción 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
Ejecución con
DMA
transparente
Instr1 Instr2 Instr3

La estrategia de DMA transparente es la única que no produce ninguna reducción o interferencia en la


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

SOLUCION PROBLEMA 3.30


DATOS
Frecuencia del reloj del computador es f=200·10 6 ciclos/seg
4 ciclos/instrucción
2 ciclos/instrucción consecutivos no requiere el uso del bus
2 ciclos/palabra
Se desea mover un bloque de datos compuesto de 100·10 6 palabras

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

1 ciclo
Ejecución con
DMA
transparente
Instr1 Instr2 Instr3

La velocidad de ejecución de la CPU es:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 18


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

f (ciclos / seg ) 200·10 6


vejec = = = 50 • 10 6 = 5 • 10 7 (instr / seg )
4(ciclos / inst ) 4

En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecución de una


instrucción 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 instrucción y que sólo en dos de ellos consecutivos no
requiere el uso del bus. Además nos dicen que el controlador de DMA necesita 2 ciclos para transmitir
una palabra. Luego el número de palabras R que se transmiten en la ejecución de una instrucción, vendría
dado por:

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

La velocidad de transferencia máxima es:

vt max = R • vejec = 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=10·107 palabras
es:

N ( pal ) 10·10 7
t= = = 2 seg
vt max ( pal / seg ) 5·10 7

SOLUCION PROBLEMA 3.31


DATOS
Periféricos conectados: 2 discos duros, 1 CDROM, 1 impresora.
PI1 petición de interrupción disco duro.
PI2 petición de interrupción CDROM.
PI3 petición de interrupción impresora.
Interrupciones anidables con prio(PI 1) > 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 petición de interrupción del primer disco duro.
En t=3 u.t petición de interrupción de la impresora.
En t=5 u.t petición de interrupción del CDROM.
En t=14 u.t petición de interrupción 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 gestión de
una interrupción, si llega una interrupción de prioridad superior pasa a ejecutar la rutina de servicio de
dicha interrupción.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 19


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

PI1 PI3 PI2 PI1

0 10 20 30 40 50
u.t.
3 5 14 24

Rutina Rutina Rutina Rutina


Disco Duro 1 CDROM Disco Duro 2 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 ejecución de ts1=10 u.t.
2) En t=3 u.t la CPU está ejecutando todavía la rutina de servicio del primer disco duro llega la
petición de interrupción 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 todavía la rutina de servicio del primer disco duro llega la
petición de interrupción 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 interrupción en cola de espera de mayor
prioridad. La ejecución de esta rutina de servicio requiere un tiempo total t s2=30 seg.
5) En t=14 u.t la CPU está ejecutando todavía la rutina de servicio del CDROM llega la petición
de interrupción del segundo disco duro PI1. Puesto que prio(PI1)>prio(PI2) detiene la ejecución
de la rutina de servicio del CDROM, cuando aún le restan ts2-4= 26 u.t para terminarla, y
comienza a ejecutar la rutina de servicio del segundo disco duro que requiere un tiempo total
en ser atendida de ts1= 10 u.t
6) En t=24 u.t termina la ejecución de la rutina de servicio del segundo disco duro. Retoma la
CPU ejecución 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 ejecución 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 ejecución de la
rutina de servicio de la interrupción del CDROM. Otra forma de calcular este valor es darse cuenta de
que es la suma de los tiempos 2·ts1+ts2=2·10+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 realización de operaciones de transmisión de datos.

AFIRMACION II: Falsa. De hecho la estrategia de transmisión por ráfagas es la que produce una mayor
interferencia con la CPU, es decir, una mayor reducción de la velocidad de ejecución de la CPU.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 20


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

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 interrupción 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 solución a este problema se encuentra en el archivo probT3_35.pdf

SOLUCION PROBLEMA 3.36


DATOS
Si CPU dispone en exclusiva del bus
Las instrucciones emplean 3 ciclos de reloj en ser ejecutadas.
En 1 de esos ciclos, el segundo, no requiere el acceso al bus.
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 ráfagas el controlador de DMA


hace uso del bus cuando se ha finalizado la ejecución de una instrucción 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 ejecución de una instrucción 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
instrucción (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 Instr3

Jose Manuel Díaz Tutor de ETC2 (Coslada) 21


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.37


DATOS
Canal multiplexor
5 unidades de disco =>vTD=106 bytes/seg
5 unidades de cinta => vTC= 105 bytes/seg
tbus=50 nseg

En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor vTcanal, 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, vTcanal, indica el número de bytes que se pueden transmitir entre
un periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo
necesario para transmitir un byte entre un periférico y Mp.

1 1 10 −9 1000
tTcanal = = = −9
= nseg = 181.81 nseg
vTcanal 5.5 ⋅10 6
5.5 ⋅10 ·10
6
5.5

La velocidad máxima de transferencia agregada a este sistema es:

1 1
vT max = = = vTcanal = 5.5·10 6 ( pal / seg )
max(t bus , tTcanal ) tTcanal

SOLUCION PROBLEMA 3.38


DATOS
n= 24 líneas de dirección.
Memoria con 220 palabras
Utiliza E/S aislada de memoria.
R=1 dirección/periférico

El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria
disponen de líneas de control (lectura y escritura) autónomas, por lo que el mapa de direcciones de
palabras de memoria es independiente del mapa de direcciones de palabras en periféricos.

El número total de direcciones ND viene definido por el número n de líneas de dirección.

N D = 2 n = 2 24 direcciones

El número de direcciones para acceder a palabras en los periféricos NDP será igual al número total de
direcciones disponibles:

N DP = N D = 2 24 direcciones

Nos dicen que cada periférico ocupa 1 dirección => R= 1 dirección/periférico. Luego el número máximo
de periféricos NPmax es :

N DP 2 24 (direcciones )
N P max = = = 2 24 perifericos
R 1(dirección / periférico)

Jose Manuel Díaz Tutor de ETC2 (Coslada) 22


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.39


Afirmación A: VERDADERA. Efectivamente un PE/S de tipo canal selector controla múltiples
dispositivos de alta velocidad.

Afirmación B: VERDADERA. Efectivamente un PE/S de tipo canal multiplexor puede controlar de


forma simultánea operaciones de E/S con múltiples dispositivos.

Afirmación C: VERDADERA. En E/S controlada por programa la CPU realiza entre otras operaciones,
la comprobación del estado del periférico.

Afirmación D: FALSA. Las afirmaciones A, B y C son verdaderas.

SOLUCION PROBLEMA 3.40


DATOS
E/S controlada por programa.
El dispositivo de E/S tarda 6 mseg en tener el dato solicitado.→ t1=6 mseg
Se supone que:
- El computador sólo se dedica a E/S.
- El bucle de espera se implementa con 1 instrucción.→NBE=1 instr
- La lectura de un dato y la solicitud del siguiente dato por la CPU requiere 10
instrucciones.→N2=10 instrucciones
- Cada instrucción de la CPU se ejecuta en tI=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:

Tiempos de ejecución Número de


Instrucciones empleadas

Se ejecuta
t1 (seg) en promedio V veces N1 (instr)
el Bucle de espera

T (seg) N (instr)
Lectura de un dato

t2 (seg) N2 (instr)

Petición 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 t1=6 ms, además se sabe el número de instrucciones que emplea el programa
en leer un dato y pedir el siguiente es N2=10 instr. Como también se conoce el tiempo que se emplea en
ejecutar una instrucción tI, entonces t2 se puede calcular de la siguiente forma:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 23


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

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
Comentarios

Aunque en el problema no lo piden con los datos de que disponemos y los que hemos calculado también
sería posible calcular los siguientes:

Número total de instrucciones NT que emplea el programa de E/S:

T ( seg ) 8·10 −3
N T (instr ) = = = 40 instr
t I ( seg / instr ) 200·10 −6

Número total de instrucciones N1 que ejecuta el programa de E/S en el bucle de espera

t1 ( seg ) 6·10 −3
N1 (instr ) = = = 30 instr
t I ( seg / instr ) 200·10 −6

También puede calcularse como:

N1 = N T − N 2 = 40 − 10 = 30 instr

De acuerdo con el enunciado ejecutar una vez el bucle de espera requiere de NBE=1 instr, luego el
número V de veces que se ejecuta el bucle de espera es:

N1 (instr ) 30
V (veces) = = = 30 veces
N BE (instr / vez ) 1

SOLUCION PROBLEMA 3.41


La solución a este problema se encuentra en el archivo probT3_41.pdf

SOLUCION PROBLEMA 3.42


DATOS
Velocidad de lectura de una unidad de disco v TD=221 (pal/seg)
Buffer interno de capacidad CB=220 pal.
DMA por ráfagas.
4 ciclos/palabra
8 ciclos/instrucción si la CPU dispone en exclusiva del bus.
f=500x106 ciclos/s

El sistema sería el siguiente una unidad de disco que envía al computador la información que le solicita a
través de un buffer. Es concreto, el disco le envía la información al buffer y cuando éste se llena utiliza
DMA por ráfagas para enviar dicha información a la memoria principal.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 24


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

Recuérdese que cuando se utiliza DMA por ráfagas el controlador de DMA toma posesión del BUS y no
lo libera ( no puede utilizarlo la CPU) hasta transmitir todas las palabras que necesita. Se pide en el
enunciado el número de instrucciones por segundo que deja de ejecutar la CPU cuando el BUS lo toma el
controlador de DMA. P

Se resolvería este problema en tres pasos:


1) En primer lugar se debe calcular la velocidad de transferencia del buffer v TB (pal/seg).

CB
vTB =
t fB

El tiempo de llenado tfB del buffer es:


C B 2 20 1
t fB = = = = 0.5 seg
vTD 2 21 2
Luego:
C B 2 20
vTB = = = 2 21 ( pal / seg )
t fB 0.5

2) A continuación hay que calcular los (ciclos/seg) que requiere la operación de DMA:

 pal   ciclos   ciclos 


vTB   * 4  = 2 21 * 2 2 = 2 23  
 seg   pal   seg 

3) Y finalmente se calcularía las (instrucciones/seg) que dejarían de ejecutarse por realizarse la


operación de DMA

 ciclos 
2 23  
 seg  = 2 20  instr 
 ciclos   seg 
8   
 instr 

SOLUCION PROBLEMA 3.43


DATOS
8 líneas de interrupción Pii i=1,...,8.
Prioridades:PI1> PI2> PI3>....> PI8
Registro de Estado (RE) de la CPU:[RE1, RE2, RE3, RE4, RE5,RE6, RE7, RE8]
RE1 es el bit más significativo.
Si REi=1 la petición está enmascarada, si REi=0 la petición está activa.
En un determinado instante:
• El registro de Estado contiene el valor 6C16
• No está siendo atendida ninguna interrupción.
• Se solicita interrupción por las líneas 2 y 4.

Para resolver este ejercicio se debe expresar en primer lugar el contenido del registro en binario:

6C16=0110 11002

Se observa que puesto que [RE1, RE2, RE3, RE4, RE5,RE6, RE7, RE8] las únicas interrupciones que no
están enmascaradas y por lo tanto pueden ser atendidas son la PI 1, PI4, PI7 y PI8.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 25


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

En consecuencia de las dos peticiones de interrupción que llegan (PI2 y PI4), sólo la PI4 será atendida
puesto que es la única que no está enmascarada.

SOLUCION PROBLEMA 3.44


Afirmación A: FALSA. El sentido (lectura/escritura) de la operación de E/S se lo debe indicar la CPU al
controlador de DMA a través de las líneas de control adecuadas.

Afirmación B: FALSA. La CPU sólo participa al principio y al final de la operación de DMA.

Afirmación C: FALSA. Un procesador de E/S se comunica con la CPU mediante el uso de


interrupciones.

Afirmación D: VERDADERA.

SOLUCION PROBLEMA 3.45


Afirmación A: VERDADERA. Efectivamente el procesador de E/S de tipo canal selector se utiliza para
controlar la E/S de varios dispositivos de alta velocidad.

Afirmación B: FALSA. Ya que se utiliza para controlar la E/S de varios dispositivos de BAJA
velocidad.

Afirmación C: FALSA. En este tipo de E/S la intervención de la CPU no es mínima.

Afirmación D: FALSA.

SOLUCION PROBLEMA 3.46


DATOS
• Circuito de gestión de prioridades
• P0>P1>P2>P3

La salida INTR se debe activar cuando exista alguna petición de interrupción, es decir, cuando cualquiera
de las entradas INTRi i=0,1,2,3 este activada. Luego la expresión lógica que define INTR es:

INTR = INTR3 + INTR2 + INTR1 + INTR0

Luego la respuesta A) es cierta.

Por otra parte la respuesta B también es cierta, ya que teniendo en cuenta la relación lógica

_
a + a xb = a + b

se puede demostrar que la función propuesta en B) es equivalente a la función lógica propuesta en A)

INTR = INTR3 + INTR 3 ( INTR2 + INTR 2 ( INTR1 + INTR 1 INTR0 ),


INTR = INTR3 + INTR 3 ( INTR2 + INTR 2 ( INTR1 + INTR0 ))
INTR = INTR3 + INTR 3 ( INTR2 + ( INTR1 + INTR0 ))
INTR = INTR3 + ( INTR2 + ( INTR1 + INTR0 ))
INTR = INTR3 + INTR2 + INTR1 + INTR0

Jose Manuel Díaz Tutor de ETC2 (Coslada) 26


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

También se puede comprobar generando la tabla de verdad de la función y simplificando mediante mapas
de Karnaugh, obteniéndose idéntico resultado. La respuesta C) es falsa ya que si no hay activación de una
de las INTRi el resto de peticiones quedan enmascaradas y por tanto no se transmite la petición de
interrupción a la CPU. Por tanto la solución final es la D) Dos de las anteriores son ciertas.

SOLUCION PROBLEMA 3.47


DATOS
• Codificador de prioridad con 4 entradas (I0, I1, I2, I3) y 3 salidas (S0, S1, PI)
• Tabla de funcionamiento de este dispositivo dada en el enunciado

Las X’s de la tabla representan que el valor puede ser indistintamente 0 ó 1. Obsérvese que PI se pone a 1
cuando una o más entradas valen 1. Si todas las entradas son 0’s entonces PI=0 y las otras salidas del
codificador no se usan (por lo que están marcadas en la tabla con X’s). En la siguiente figura se muestran
los diagramas de Karnaugh que simplifican las salidas.

Salida S0 Salida S1

Luego las funciones lógicas de S0 y S1 son:

S 0 = I 0 + I1
S1 = I 0 + I 2 I 1

Luego la respuesta correcta es la C.

SOLUCION PROBLEMA 3.48


DATOS
DMA transparente
4 ciclos/instrucción
2 ciclos/instrucción no requiere el uso del bus
1 ciclo/palabra
frecuencia del reloj del computador es f=106 ciclos/seg
Se transmiten 106 palabras.

1 ciclo
Ejecución 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
ejecución de una instrucción 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 instrucción y que sólo en dos de ellos no
requiere el uso del bus. Además nos dicen que el controlador de DMA únicamente necesita de 1 ciclo
para transmitir una palabra. Luego el número de palabras que se transmiten por DMA en la ejecución de
una instrucción (R), vendría dado por:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 27


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

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

La velocidad de ejecución es:

f (ciclos / seg ) 10 6
vejec = = = 2.5 • 10 5 (instr / seg )
4(ciclos / inst ) 4

La velocidad de transferencia es:

vt = R • vejec = 2( pal / inst ) • 2.5 ⋅ 10 5 (inst / seg ) = 5 • 10 5 ( pal / seg )

Por otra parte, la velocidad de transferencia se define como

N
vT =
T
donde N es el número de palabras que se transmiten y T el tiempo que tardan en transmitirse. Despejando
T de la expresión anterior

N
T=
vT
y sustituyendo los valores de N (dado en el enunciado) y vT, se obtiene:

10 6
T= = 2s
5·10 5

SOLUCION PROBLEMA 3.49


DATOS
DMA mediante robo de ciclos
CPU ejecuta 1 MIPS
La velocidad del procesador debido al DMA se reduce un 0.89%
8 bits/palabra
2 ciclos/instrucción

La velocidad del procesador sin DMA es un datos del enunciado ve0=1 MIPS= 106 (instrucciones/s).

La velocidad del procesador con DMA con robo de ciclos es ve1 y se podría calcular a partir del dato del
porcentaje de reducción de la velocidad del procesador debido al DMA:

ve1
Pred ≡ ⋅ 100 = 0.89
ve 0
Despejando ve1 de la expresión anterior se obtiene:

P 
ve1 =  red ·ve0 = 0.89 ⋅ 10 4 (instrucciones / s )
 100 
La velocidad de transferencia del DMA en (palabras/s) es proporcional a la velocidad de ejecución del
sistema con DMA:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 28


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

vt1 = R • ve1

donde R es el número de palabras que se transmiten por DMA en la ejecución de una instrucción. Del
enunciado se sabe que se usan dos ciclos de CPU por instrucción, suponiendo que el controlador de
DMA únicamente necesita de 1 ciclo para transmitir una palabra, lo cual es lo habitual en la estrategia de
DMA por robo de ciclos, se tendría:

2( ciclos / instrucción)
R= = 2( palabras / instrucción)
1( ciclo / palabra )

Luego sustituyendo y operando se obtendría que:

vt1 = 2 • 0.89 ⋅ 10 4 = 17800 ( palabras / s )

Puesto que se conoce del enunciado el número de bits que ocupa una palabra la velocidad de
transferencia se puede expresar en (bits/s):

vt1 = 17800( pal / s )·8(bits / pal ) = 142400 (bits / s )

SOLUCION PROBLEMA 3.50


DATOS
Velocidad de transferencia del periférico 1.5·10 6 (bytes/s).
El procesador tarda tI=200 ns en ejecutar una instrucción.
NinicioDMA=10 instrucciones
En la transferencia de 1 byte ocupa los buses durante 100 ns.
Se desean transferir 500 bytes
Se supone que la CPU está parada mientras el DMA ocupa el bus.

A) El tiempo T que dedica el procesador a la transferencia de los 500 bytes será la suma de dos
componentes:

T = TinicioDMA +T cesiónBUS

donde TinicioDMA es el tiempo en gestionar la inicialización del proceso de DMA y TcesiónBUS es el tiempo
que deja de usar la CPU el bus por cedérselo al controlador de DMA.

TinicioDMA se puede calcular de la siguiente forma:

TinicioDMA = N inicioDMA (instrucciones ) ⋅ t I ( s / instrucción) = 10 ⋅ 200·10 −9 = 2·10 −6 s = 2 µs

Asimismo puesto que hay que transmitir 500 bytes y en la transmisión de cada byte se ocupan los buses
durante 100 ns, entonces:

TcesiónBUS = 500(bytes )·100·10 −9 ( ns / byte) = 50·10 −6 s = 50 µs

Luego

T = TinicioDMA +T cesiónBUS = 2 + 50 = 52 µs

Jose Manuel Díaz Tutor de ETC2 (Coslada) 29


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

B) El tiempo de transferencia de un bloque de datos una vez que se ha inicializado el DMA es:

500
Tt = ≈ 333 µs
1.5·10 6
De este tiempo, la CPU podría ejecutar instrucciones solamente si no tiene que ceder el uso del BUS al
controlador del DMA. En el apartado anterior se cálculo que TcesiónBUS= 50 µs. Luego el tiempo útil Tútil
de que dispone la CPU para ejecutar instrucciones es:

Tutil = Tt − TcesiónBUS = 333 − 50 = 283 µs

Dividiendo este tiempo por el tiempo que requiere el procesador en ejecutar una instrucción, se obtendría
el número total de instrucciones N que puede dedicar la CPU a ejecutar otro proceso mientras se está
realizando la transferencia por DMA:

Tútil ( s ) 283·10 −6
N= = = 1415 instrucciones
t I ( s / instrucción) 200·10 −9

SOLUCION PROBLEMA 3.51


DATOS
Procesador de 32 bits.
Velocidad de ejecución del procesador v e=4 MIPS= 4·106 (instrucciones/s)
Tiempo empleado en un cambio de contexto Tcc= 1.25 µs
Instrucciones empleadas en un cambio de contexto Ncc= 5 instrucciones
Tamaño bloque de datos de 512 bytes
Velocidad de transferencia del periférico vT= 1 Kbyte= 210 bytes.
El módulo de E/S interrumpe cada vez que se recibe 1 byte.
20 instrucciones en ejecutar la rutina de tratamiento de la interrupción de este periférico.

El tiempo de transferencia de un bloque de datos desde el periférico es:

512(bytes)
Tt = = 0.5 s
210 (bytes / s )

En este tiempo si no se produjese ninguna interrupción la CPU podría ejecutar:

N TCPU = Tt ·ve = 0.5·4·10 6 = 2·10 6 instrucciones

Cada vez que se recibe 1 byte el periférico interrumpe, por lo tanto como un bloque consta de 512 bytes
habrá K=512 (interrupciones/bloque).

El número total de instrucciones asociadas a una interrupción es la suma de tres componentes:

N I = N CC + N RS + N CC = 2·N CC + N RS
donde:
NCC son las instrucciones que se emplean en realizar un cambio de contexto. Debe recordarse
que la atención de una interrupción requiere de la realización de dos cambios de contexto,
uno en su inicio y otro en su finalización. Del enunciado se sabe que N CC= 5 instrucciones
NRS es el número de instrucciones que requiere la rutina de tratamiento de la interrupción
asociada a este periférico. Del enunciado se sabe que N RS= 20 instrucciones.
Luego

N I = 2·N CC + N RS = 2·5 + 20 = 30 instrucciones

Jose Manuel Díaz Tutor de ETC2 (Coslada) 30


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

Puesto que la transmisión del bloque produce 512 interrupciones, el número total de instrucciones que se
ejecutan asociadas a dichas interrupciones es:

N TI = K · N I = 512·30 = 15360 (instrucciones )

Por lo tanto, el número de instrucciones NOP que puede dedicar la CPU a la ejecución de otros procesos
mientras se está transmitiendo el bloque de datos es:

N OP = N TCPU − N TI = 2·10 6 − 15360 = 1984640 instrucciones

Finalmente, el porcentaje P de instrucciones que puede dedicar el procesador a otros procesos durante la
transferencia de un bloque del periférico es:

 N 
·100 = 
1984640 
P =  OP 6 ·100 = 99.23%
 N TCPU   2·10 

SOLUCION PROBLEMA 3.52


DATOS
Ocho líneas de interrupción (PI0,...,PI7)
Prioridad (PI0)>Prioridad(PI1)>...>Prioridad(PI7)
Secuencia de interrupciones: 4, 7, 1 3, 0, 5, 6, 4, 2, 1
Durante la gestión de una interrupción pueden llegar dos peticiones de interrupción.
No se permite anidamiento

Se van a detallar los pasos en la gestión de estas interrupciones:


1) En primer lugar se comienza ejecutando la interrupción 4. Durante su ejecución llegan las
interrupciones 7 y 1. Luego la cola de interrupciones pendientes sería Cola={7,1}.
2) De las interrupciones pendientes Cola={7,1}, se atiende 1 por ser la más prioritaria. Durante
su ejecución llegan las interrupciones 3 y 0. Luego la cola de interrupciones pendientes sería
Cola={7,3,0}.
3) De las interrupciones pendientes Cola={7,3,0}, se atiende 0 por ser la más prioritaria.
Durante su ejecución llegan las interrupciones 5 y 6. Luego la cola de interrupciones
pendientes sería Cola={7,3,5,6}.
4) De las interrupciones pendientes Cola={7,3,5,6}, se atiende 3 por ser la más prioritaria.
Durante su ejecución llegan las interrupciones 4 y 2. Luego la cola de interrupciones
pendientes sería Cola={7,5,6,4,2}.
5) De las interrupciones pendientes Cola={7,5,6,4,2}, se atiende 2 por ser la más prioritaria.
Durante su ejecución llega la interrupción 1. Luego la cola de interrupciones pendientes sería
Cola={7,5,6,4,1}.
6) De las interrupciones pendientes Cola={7,5,6,4,1}, se atiende 1 por ser la más prioritaria. La
cola de interrupciones pendientes sería Cola={7,5,6,4}.
7) De las interrupciones pendientes Cola={7,5,6,4}, se atiende 4 por ser la más prioritaria. La
cola de interrupciones pendientes sería Cola={7,5,6}.
8) De las interrupciones pendientes Cola={7,5,6}, se atiende 5 por ser la más prioritaria. La
cola de interrupciones pendientes sería Cola={7,6}.
9) De las interrupciones pendientes Cola={7,6}, se atiende 6 por ser la más prioritaria. La cola
de interrupciones pendientes sería Cola={7}.
10) Se atiende la interrupción 7 que es la última que queda pendiente

Luego el orden de atención de las interrupciones es: 4, 1, 0, 3, 2, 1, 4, 5 ,6 y 7

Jose Manuel Díaz Tutor de ETC2 (Coslada) 31


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.53


I) VERDADERA. (Ver Problema 3.1 del libro de problemas)
II) VERDADERA. (Ver Problema 3.1 del libro de problemas)

SOLUCION PROBLEMA 3.54


Este problema es idéntico al problema 3.3.

SOLUCION PROBLEMA 3.55


DATOS

• TP tiempo de CPU que se requiere para transferir una palabra usando E/S controlada por programa.
• TI tiempo de CPU que se requiere para transferir una palabra usando interrupciones.
• TD tiempo de CPU que se requiere para transferir una palabra usando DMA.

EXPLICAR

La técnica de E/S que consume más tiempo de CPU es la E/S controlada por programa y la que consume
menos tiempo es el DMA. Luego se cumple la siguiente relación:

TD < TI < TP
En conclusión la respuesta correcta es la C.

SOLUCION PROBLEMA 3.56


DATOS
3 unidades de disco =>vTD=500 Kbytes/seg
2 unidades de cinta =>vTC= 250 Kbytes/seg

La velocidad máxima de transferencia de un canal multiplexor vT se determina como la suma de las


velocidades de cada uno de los dispositivos que controla:

vTCM = 3 • vTD + 2 • vTC = 3 • 500 K + 2 • 250 K = 2000 Kbytes / seg

Si el canal es de tipo selector la velocidad máxima e transferencia vT es la velocidad más alta de


cualquiera de los dispositivos conectados al canal, es decir:

vTCS = max{vTD , vTC } = 500 Kbytes / seg

Por lo tanto la velocidad del canal selector es cuatro veces menor que la del canal multiplexor.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 32


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.57


DATOS
Procesador opera a f=200 MHz.
Instrucción emplea 4 ciclos máquinas (CPI=4).
Tiempo de reconocimiento de la interrupción de 100 ns.
Se conecta al computador mediante el sistema de interrupciones un disco magnético de 128
sectores/pista y 1024 bytes/sector.
En cada interrupción del disco se transmiten 8 bytes utilizando una rutina de servicio que
ejecuta 20 instrucciones.

a) Para contestar a este apartado en primer lugar hay que calcular la velocidad de ejecución en
instrucciones/seg de la CPU:

f CPU (ciclos / seg ) 200·10 6 (ciclos / seg )


ve = = = 5·10 7 (instrucciones / seg )
CPI (ciclos / instrucción) 4(ciclos / instrucción)

A continuación hay que calcular el tiempo que requiere la CPU en ejecutar una instrucción:

1 1
tI = = = 20 ns
ve 5·10 7
Conocido tI es posible calcular el tiempo de CPU que requiere la ejecución de la rutina de servicio de la
interrupción de disco:

TSI = N SI (instrucciones) ⋅ t I ( seg / instrucción) = 20·20 = 400 ns

La capacidad de entrada de datos máxima se obtiene cuando las interrupciónes de disco se atienden en el
menor tiempo posible. Dicho tiempo a la suma del tiempo de ejecución de la rutina de reconocimiento de
la interrupción y al tiempo de ejecución de la rutina de servicio de la interrupción de disco:

Tmin = TRI + TSI = 100 + 400 = 500 ns

En dicho tiempo Tmin la cantidad N de datos transferidos es, según el enunciado, igual a 8 bytes. Luego la
capacidad de entrada de datos máxima se obtiene dividiendo la cantidad de datos N transferidos en el
tiempo mínimo:

N 8 (bytes)
C E / S max = = = 16 ( Mbytes / seg )
Tmin 500 (ns)

b) La velocidad de transferencia del disco es igual a la cantidad de información transferida en un


determinado tiempo T. Se sabe del apartado anterior que la velocidad de transferencia máxima es de 16
Mbytes/seg.

Por otra parte en el tiempo T que el disco tarda en dar una vuelta el disco transfiere toda la información
almacenada en una pista NP, que es igual a:

N P = 128( sectores/pista )·1024 (bytes/sector ) = 217 bytes

Despejando T de la expresión:

NP
vT =
T
sustituyendo valores y operando se obtiene el tiempo que tarda el disco en dar una vuelta

Jose Manuel Díaz Tutor de ETC2 (Coslada) 33


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

NP 217 (bytes)
T= = = 0.008192 seg
vT 16 ( Mbytes / seg )

Esta cantidad se relaciona con la velocidad de rotación del disco f en r.p.m a través de la siguiente
relación:

60
T=
f

Despejando fD y operando se obtiene finalmente

60 60
fD = = = 7324.2 r. p.m
T 0.008192

c) Se supone ahora que la E/S con el disco se realiza mediante DMA por robo de ciclos, y que cada vez
que se le concede el uso del bus al controlador de DMA se transmiten 8 bytes. Es decir, como en esta
estrategia se cede el uso del bus durante 1 ciclo, en un ciclo se transmiten 8 bytes.

Un sector tiene un tamaño de 1024 bytes, luego el número de ciclos NCS necesarios para leer un sector se
obtiene dividiendo:

1024(bytes / sec tor )


N CS = = 128 ciclos
8 (bytes / ciclo)

Por otra parte el tiempo TC que transcurre durante un ciclo se obtiene a partir de la velocidad fCPU en
ciclos/seg de la CPU:

1(ciclo) 1
TC = = = 5 ns
f CPU (ciclos / seg ) 200·10 6

Finalmente el tiempo que el DMA roba a la CPU durante la lectura de un sector se obtiene multiplicando
NCS y TC

TDMA = N CS ·TC = 128·5 = 640 ns

d) El porcentaje de tiempo que la CPU dedica a la E/S debido a la ejecución del DMA es:

TDMA
P= ·100
TE / S

donde TDMA es el tiempo determinado en el apartado anterior y TE/S es el tiempo total que requiere la
operación de E/S, en este caso es el tiempo de lectura de un sector de disco.

Para poder calcular este porcentaje primero es necesario calcular TE/S que se obtiene a partir de la
siguiente expresión:

N S 1024 (bytes / sec tor )


T= = = 64·10 −6 s = 64000 ns
vT 16 ( Mbytes / seg )

Jose Manuel Díaz Tutor de ETC2 (Coslada) 34


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

Sustituyendo valores en la expresión de P y operando se obtiene finalmente:

640
P= ·100 = 1%
64000

SOLUCION PROBLEMA 3.58


DATOS
13 líneas de dirección.
Memoria de M palabras.
E/S localizada en memoria.
R=4 direcciones/periférico.
NmaxP=210 periféricos

Puesto que el sistema tiene 13 líneas de dirección, el espacio de direcciones consta de:.

N D = 213 direcciones

Por otra parte el número de direcciones asociadas a periféricos NDP se puede determinar con los datos
dados en el enunciado:

N DP = N max P ⋅ R = 210 ( periferi cos)·4(direcciones / periferico) = 212 direcciones

La E/S localizada en memoria se caracteriza porque el espacio de direcciones se divide en dos partes:
direcciones de memoria principal NDM y direcciones asociadas a periféricos NDP, es decir, se cumple la
relación

N D = N DM + N DP

Despejando NDM de la expresión anterior y sustituyendo valores se obtiene que:

N DM = N D − N DP = 213 − 212 = 212 ·(2 − 1) = 212 direciones

Como palabra de memoria tiene asociada una dirección se tiene que:

M = 212 palabras

Jose Manuel Díaz Tutor de ETC2 (Coslada) 35


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

SOLUCION PROBLEMA 3.59


DATOS
DMA por robo de ciclos.
Las instrucciones emplean C ciclos de reloj en ser ejecutadas.
En 2 ciclos no requieren el uso del bus.
f=120·106 ciclos/seg.
La CPU deja de ejecutar 107 instrucciones/seg cuando el controlador de DMA está
realizando una transmisión.

La velocidad de ejecución vejec se define como el número de instrucciones que el computador es capaz de
ejecutar en un segundo.

Sino hay DMA el computador tarda en promedio C ciclos en ejecutar cada instrucción. Luego la
velocidad de ejecución es:

f (ciclos / seg ) 120 x10 6


vejec1 = = (instr / seg )
C (ciclos / inst ) C

Cuando se realiza DMA por robo de ciclos cada vez que se ejecuta una instrucción, a continuación se
cede el bus del sistema al controlador de DMA durante un ciclo para que realice la transferencia de una
palabra. Por lo que ahora transcurren C+1 ciclos entre instrucción e instrucción. Luego la velocidad de
ejecución cuando hay DMA por robo de ciclos es:

f (ciclos / seg ) 120 x10 6


vejec 2 = = (instr / seg )
C + 1(ciclos / inst ) C +1

El número de instrucciones que dejen de ejecutarse por segundo debido a la realización del DMA se
determina como la diferencia de la velocidad cuando no hay DMA y cuando hay DMA, es decir:

f f f
vejec1 − vejec 2 = − =
C C + 1 C ·(C + 1)

Reordenando términos se obtiene la siguiente ecuación de segundo orden:

f
C2 + C − =0
vejec1 − vejec 2

Cuyas soluciones son:

f
− 1 ± 1 + 4·
vejec1 − vejec 2
C=
2
Obviamente la única solución válida es la positiva.

En el enunciado nos dan los valores de f y vejec1 − vejec 2 sustituyendo y operando se obtiene finalmente
que:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 36


TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

120·10 6
− 1 + 1 + 4·
C= 10 7 = − 1 + 49 = − 1 + 7 = 3 ciclos
2 2 2

Luego C=3 ciclos tarda en promedio en ejecutarse cada instrucción.

SOLUCION PROBLEMA 3.60


DATOS
Canal multiplexor
2 unidades de disco =>vTD=106 bytes/seg
C unidades de cinta =>vTC= 102 bytes/seg
vTCM=3 x 106 bytes/seg

La velocidad máxima de transferencia de un canal multiplexor vT se determina como la suma de las


velocidades de cada uno de los dispositivos que controla:

vTCM = 2 • vTD + C • vTC

Despejando C de la ecuación anterior, sustituyendo valores y operando se obtiene:

vTCM − 2 • vTD 3·10 6 − 2·10 6


C= 2
= 2
= 10 4 cintas
10 10

SOLUCION PROBLEMA 3.61


DATOS
Capacidad del buffer CB=64 Kb
Velocidad de entrada del buffer v EB= 1 Mb/seg
Velocidad de salida del buffer vSB= 128 Kb/seg
Buffer inicialmente vacío
El buffer recibe y envía datos simultáneamente.

Como la velocidad de entrada de datos al buffer es superior a la de salida el buffer se llenará. La


velocidad efectiva de llenado del buffer se calcula como la diferencia entre la velocidad de entrada y la
velocidad de salida:

vef = v EB − vSB = 2 20 − 217 = 217 ·(2 3 − 1) = 7·217 (Kb/seg)

El tiempo de llenado TLL del buffer se determina como el cociente entre la capacidad del buffer y la
velocidad efectiva de llenado:

CB 216 1
TLL = = 17
= = 0.071 seg
vef 7·2 14

Jose Manuel Díaz Tutor de ETC2 (Coslada) 37


SOLUCIONES

1.- Un computador con 15 líneas de direcciones tiene una memoria de 3213 palabras y utiliza E/S localizada en
memoria. ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno de ellos
utiliza 8 direcciones?
A) 213 B) 210 C) 212 D) Ninguna de las anteriores.

Solución

Un computador con las 15 líneas de direcciones puede direccionar 215 direcciones de memoria distintas. No
obstante, como la memoria ocupa 3213 de estas direcciones, quedan libres 215- (3213 ) = 213 direcciones para
gestionar la E/S.
Como cada periférico utiliza 8 (23) de estas direcciones, es posible conectar un máximo de 213/23 = 210
periféricos.
Respuesta: B (210)

2.- Un procesador que opera a 200 MHz y en el que en promedio una instrucción emplea 4 ciclos máquina en
ejecutarse (CPI = 4) dispone de un sistema de interrupciones con un tiempo de reconocimiento de interrupción
de 100 ns. Este procesador se conecta a un disco magnético con 128 sectores/pista y 1024 bytes/sector a través
del sistema de interrupciones. En cada interrupción se transmiten 8 bytes utilizando una rutina de servicio que
ejecuta 20 instrucciones. Teniendo en cuenta que 1Mbyte = 106 bytes, la capacidad de entrada de datos (ancho
de banda) máxima en Mbytes/s a través del sistema de interrupciones es:
B) 8 Mbytes/s B) 12 Mbytes/s C) 16 Mbytes/s D) Ninguna de las anteriores

Solución

A partir de la frecuencia del procesador se calcula el tiempo de ciclo (tc) del mismo, que es la inversa de dicha
frecuencia. Por tanto con una frecuencia de 200 MHz, se tiene un tc = 5 ns.
El tiempo que dura una operación de E/S por interrupción (tint) es la suma del tiempo que se emplea en el
reconocimiento de la interrupción (100 ns) más el tiempo empleado en ejecutar la rutina que gestiona dicha
interrupción. Esta rutina consta de 20 instrucciones, cada una de ellas de 4 ciclos y sabemos que el tiempo
empleado por ciclo es de 5 ns. Por tanto, el tiempo de una operación de E/S por interrupción es el siguiente:
tint = 100 ns + (20 instrucciones × 4 ciclos/instrucción × 5 ns/ciclo) = 500 ns

Durante este tiempo se transmiten 8 bytes, por lo que el ancho de banda (bytes/s) a través del sistema de
interrupciones será el número de bytes transmitido entre el tiempo que se tarda en transmitir:
Ancho de banda = 8 bytes / (500 × 10-9 s ) = 16 × 106 bytes/s = 16 Mbytes/s

Respuesta: C (16 Mbytes/s)

3.- Considerando un procesador que tiene 8 registros de 8 bits cada uno para uso general, cuyo formato de
instrucción es el que se muestra en la siguiente figura:

Código de operación (6 bits) Dirección (3 bits) Base (14 bits)

¿Qué rango de direccionamiento tiene cuando realiza un direccionamiento indexado a través de registros?
A) Desde 0 hasta 16383 B) Desde 0 hasta 16638 C) Desde 0 hasta 8192 D) Ninguna de las anteriores.

Solución

La dirección efectiva en un direccionamiento indexado a través de registros se obtiene como la suma de una
dirección base de memoria contenida en el campo de dirección de la instrucción y un desplazamiento,
contenido en el registro índice. Como los registros son de 8 bits, con ellos se puede referenciar desde 0 hasta
255 (28-1), y como el campo de dirección base es de 14 bits se puede representar desde 0 hasta 16383 (214-1).
Por tanto, el rango de direccionamiento va desde 0 (= 0+0) hasta 16638 (= 255 + 16383).

Respuesta: B (Desde 0 hasta 16638)

4.- La memoria de un computador consta de N módulos independientes conectados a un bus de memoria


común. Al comienzo de una operación de escritura en memoria, el bus está ocupado por las señales de datos,
dirección y control durante 20 ns. Durante los 80 ns siguientes, el módulo de memoria seleccionado completa el
ciclo de escritura, aceptando y almacenando el dato. Las operaciones de los módulos de memoria pueden
solaparse, pero sólo puede haber una petición en un instante de tiempo. La velocidad máxima de transferencia
cuando el número de módulos N es mayor que 4 es:
A) 0,05 palabras/ns B) 0,03 palabras/ns C) 0,07 palabras/ns D) Ninguna de las anteriores

Solución

El ciclo de escritura de los módulos de memoria se muestra gráficamente en la siguiente figura.


Control
Dirección
Almacenamiento del dato
Datos

20 nseg 80 nseg
Ciclo de escritura de los módulos de memoria

El tiempo de ciclo de escritura es tc = 100 ns. El módulo de memoria usa el bus en exclusiva durante los
primeros 20 ns del ciclo, mientras que durante los restantes 80 ns cualquier otro módulo puede hacer uso del
bus. Si se considera que los ciclos de escritura se solapan al máximo, en la siguiente figura se muestra la
situación correspondiente a las operaciones de escritura cuando se tienen 5, 6 y 7 módulos.
Módulos 100 nseg

1
2
3
4
5

1 2 3 4 5 6 7 8 9 10 11 12 13
(20 nseg)
Vmax = 5 palabras / 100 nseg = 0.05 palabras/nseg

Módulos 120 nseg

1
2
3
4
5
6
1 2 3 4 5 6 7 8 9 10 11 12 13
(20 nseg)
Vmax = 6 palabras / 120 nseg = 0.05 palabras/nseg

Módulos 140 nseg

1
2
3
4
5
6
7
1 2 3 4 5 6 7 8 9 10 11 12 13
(20 nseg)
Vmax = 7 palabras / 140 nseg = 0.05 palabras/nseg
Operaciones de escritura con 5, 6 y 7 módulos

Como se puede observar, cuando se tienen 5 módulos todos están continuamente activos. Con 6 módulos cada
módulo está “ocioso” durante (120 - tc) ns después de cada operación de escritura. Mientras que con 7 módulos
el tiempo “ocioso” de cada módulo es de (140 - tc). Sin embargo, la velocidad de transferencia sigue siendo la
misma en los tres casos. Con 5 módulos cada 100 ns comienzan (o finalizan) 5 operaciones de escritura. Con 6
y 7 módulos cada 120 ns y 140 ns comienzan (o finalizan) 6 ó 7 operaciones de escritura respectivamente. Por
ello, las velocidades máximas con 5, 6 y 7 módulos es:
5
Vmax 5  palabras / ns  0,05 palabras / ns
100
6
Vmax 6  palabras / ns  0,05 palabras / ns
120
7
Vmax 7  palabras / ns  0,05 palabras / ns
140
Generalizando el resultado a N módulos (con N mayor que 4), la velocidad máxima de transferencia viene dada
por:
N
Vmax N  palabras / ns  0,05 palabras / ns
N  20

Respuesta: A (0,05 palabras/ns)

5.- Se considera un procesador que dispone de 16 líneas de direcciones A15 - A0. Para la construcción de su
unidad de memoria se dispone de módulos de 8K palabras, utilizándose las líneas más significativas (A15 - A13)
para la selección de cada módulo. En el mapa de memoria, la dirección base (o primera dirección) del módulo
número 5 en notación hexadecimal es:
A) 8000 B) A000 C) 8FFF D) Ninguna de las anteriores.

Nota: Los sucesivos módulos de memoria se comienzan a numerar desde el módulo 0 que corresponde a las
direcciones más bajas de memoria.

Solución

La dirección base de un módulo es la dirección de memoria principal que hay que emplear para acceder a la
primera posición de dicho módulo. En este caso concreto las sucesivas direcciones base de cada módulo las
generaremos con valores sucesivos de los bits A15 - A13, que son los empleados para seleccionar cada módulo, y
el resto de los bits de la dirección, A12 -A0, con el valor cero. Una vez generada la codificación, para dar la
dirección base en hexadecimal se agrupan los bits de la dirección de 4 en 4 y se codifican.
En la tabla siguiente se muestra el resultado.

Dirección base en binario Dir. base en


A15 A14 A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A hexadecimal
0
Módulo 0 00000000000000000000 0000
Módulo 1 00100000000000000000 2000
Módulo 2 01000000000000000000 4000
Módulo 3 01100000000000000000 6000
Módulo 4 10000000000000000000 8000
Módulo 5 10100000000000000000 A000
Módulo 6 11000000000000000000 C000
Módulo 7 11100000000000000000 E000

Respuesta: B (A000).

6.- Indique cuantos módulos de memoria ROM de 23n palabras × 1 bit/palabra serán necesarios para diseñar un
circuito combinacional que sume dos números de 3n bits cada uno:
A) 23n+1 × 3n B) 26n × 3n C) 23n × (3n + 1) D) Ninguna de las anteriores.
Solución

El número de módulos se calcula teniendo en cuenta que la memoria ROM resultante deberá tener 3n + 3n = 6n
líneas de dirección, es decir 26n palabras. El resultado de sumar dos números de 3n bits cada uno es un número
de 3n + 1 bits, por lo que cada palabra de la memoria ROM resultante deberá tener 3n + 1 bits.

Como consecuencia la memoria ROM resultante debe tener una capacidad total de: 26n palabras × (3n + 1)
bits/palabra.

Ahora bien, como dicha memoria debe construirse usando módulos de 23n palabras × 1 bit/palabra, es preciso
emplear un total de:

(26n palabras × (3n + 1) bits/palabra) / (23n palabras/módulo × 1 bit/palabra) =


23n × (3n + 1) módulos

Respuesta: C (23n × (3n + 1) módulos)

7.- Haciendo uso de una memoria ROM, se desea diseñar una Unidad de Control con 256 estados, que genere
200 señales de control totalmente independientes y que reciba 10 señales de condición, aunque en cada estado
va a ser consultada como máximo una de ellas. Si la memoria ROM usada tiene un coste de 1 euro/Kbit indicar
si las siguientes afirmaciones son verdaderas o falsas:
I. Si se utiliza un diseño con selección por estado el coste de la ROM es inferior a 100 euros.
II. Si se utiliza un diseño con selección por campo el coste de la ROM es superior a 100 euros.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

[Ver la página 307 y ss. del texto de teoría.] Para codificar los 256 estados hacen falta 8 bits. Las 200 señales de
control, al ser totalmente independientes, no pueden ser codificadas. De las 10 señales de condición sólo se
consulta, a lo sumo, una de ellas, por lo que la salida del multiplexor será de un único bit.

Harán falta, por tanto, 8 + 1 = 9 bits para seleccionar una palabra de la memoria ROM, cuya capacidad será de
29 = 512 palabras.

I. Al tratarse de un diseño con selección por estado, cada palabra de la memoria ROM tendrá dos campos: uno
de 8 bits para el estado presente y otro de 200 bits para las señales de control. El ancho de palabra será por
tanto de 200 + 8 = 208 bits.

La capacidad de la memoria ROM es por tanto de 512 palabras × 208 bits/palabra = 106496 bits =106,5 Kbits.
Y por consiguiente su coste será de 106,5 euros, lo que implica que la afirmación es falsa.

II. Al tratarse de un diseño de selección por campo, cada palabra de la memoria tendrá tres campos: uno de
selección de 4 bits (24 = 16 para las 10 señales de condición), uno de estado presente de 8 bits (puesto que hay
256 estados) y otro de 200 bits para las señales de control. El ancho de palabra será de 200 + 8 + 4 = 212 bits.
Por tanto, la capacidad de la memoria ROM es ahora de 512 palabras × 212 bits/palabra = 108544 bits. Su coste
será de 108,5 euros, lo que implica que la afirmación es verdadera.

Respuesta: C ( I: no, II: sí)

8.- La Unidad de Control microprogramada de un computador tiene un tamaño de microinstrucción de 32 bits.


La parte de control del formato de una microinstrucción emplea 14 bits para seleccionar independientemente
las microoperaciones que se llevan a cabo. Esta unidad de control tiene un campo para indicar el tipo de
bifurcación a realizar (condicional, incondicional o no bifurcar) y un campo para seleccionar una única señal de
condición de las 16 señales disponibles. ¿Cuál es el tamaño máximo de la memoria de control?
16
A) 2 palabras B) 220 palabras C) 242 palabras D) 212 palabras
Solución
[Véase el Problema 7.2 del libro de problemas]. La microinstrucción tiene 32 bits de longitud, de los cuales 14
bits se emplean para seleccionar las microoperaciones, 2 bits para codificar el tipo de bifurcación y 4 (24 = 16)
para seleccionar una única señal de condición. Por lo tanto, para la dirección quedan disponibles 32 – 14 – 2 -4
= 12 bits. De esta forma, el tamaño máximo de la memoria de control es 212 palabras.

Respuesta: D (212 palabras)

PROBLEMA

Sea el siguiente algoritmo:


1: Declaración de registros A [5], B [3], R [5];
2: Declaración de buses A) (1 pto) Si inicialmente en A se carga el valor
00001 y en B se carga el valor 100 ¿Cuál es el
Bus-Entrada [5], Bus-Salida [5];
valor de R al finalizar el algoritmo? ¿Qué
3: Inicio: A Bus-Entrada; número binario operación realiza este algoritmo?.
4: B Bus-Entrada; número binario B) (1,5 ptos) Diseñar la Unidad de Procesamiento
5: Bucle: A A ×B; y la Unidad de Control que realiza este algoritmo.
6: B B - 1; C) (1,5 ptos) Especificar el diagrama de flujo que
7: if B 1 then go to Bucle; realice el algoritmo, el diagrama de estados de la
Unidad de Control y las acciones que tiene que
8: R A;
efectuar cuando se encuentra en cada uno.
9: Bus-salida R;
10: Parar;

A) Según el enunciado, los valores en binario que se cargan inicialmente en A y en B son 00001 (1 en decimal) y 100 (4
en decimal) respectivamente. En la siguiente tabla se muestra la evolución de los registros A, B y R a lo largo de la
ejecución del algoritmo. En dicha tabla, si no aparece el valor almacenado en el registro es porque no es relevante
para el problema.

Nº Instrucción A B R
3: A Bus-Entrada; 00001 -- --
4: B Bus-Entrada; 00001 100 --
5: A A × B; 00100 100 --
6: B B – 1; 00100 011 --
7: if B  1 then go to Bucle; 00100 011 --
5: A A  B; 01100 011 --
6: B B – 1; 01100 010 --
7: if B  1 then go to Bucle; 01100 010 --
5: A A  B; 11000 010 --
6: B B – 1; 11000 001 --
7: if B 1 then go to Bucle; 11000 001 --
8: R A; 11000 001 11000
Evolución de los registros al ejecutarse el algoritmo

Como se puede observar el valor almacenado en el registro R tras la ejecución del algoritmo es 11000 (24 en
decimal).
Analizando el algoritmo se puede ver que la operación que se efectúa es el factorial de B, tal y como se
muestra en la siguiente expresión:
B 1

 ( B  i)  B  ( B  1)  ( B  2)  ...  1  B!
i 0

Que para el caso particular de los valores de A y B que se proponen en el enunciado queda efectivamente 24.
4 1

 ( B  i)  4  (4  1)  (4  2)  (4  3)  4! 24
i 0

B) Para el diseño de la Unidad de Procesamiento se necesita: 1 registro A de 5 bits, 1 registro B de 3 bits, 1


registro R de 5 bits, 1 Bus de entrada de 5 bits de longitud y 1 Bus de salida de 5 bits de longitud, además
de algunos otros elementos auxiliares como multiplexores. .
Como la Unidad de Procesamiento necesita realizar dos tipos de operaciones (resta y multiplicación), se va
disponer de una Unidad Aritmético Lógica (ALU) como la mostrada en la siguiente figura donde con 1
señal de control se selecciona el modo de funcionamiento necesario siguiendo el esquema de la siguiente
tabla.

Operación Entradas de selección


E0
X Y 0
X-Y 1
Operaciones de la ALU

5 3
X Y
ALU E0

Módulo de la Unidad Arimético Lógica empleada

Con estos elementos se puede proponer la arquitectura mostrada en la siguiente figura, que es capaz de
ejecutar el algoritmo propuesto. Se han introducido en el esquema los diferentes puntos de control que se
necesitan. El multiplexor a la entrada de A y B permite seleccionar dos fuentes de datos a almacenar en ellos:
el Bus de Entrada y la salida de la ALU. También existe un camino de la salida del registro A al registro R,
con el fin de poder almacenar el resultado en dicho registro como exige el paso 8 del algoritmo. Además hay
otro camino desde el registro R al Bus de Salida, para poder realizar la transferencia indicada en el paso 9
del algoritmo. Se muestra también la señal de condición s0 que si su valor es 1 representa que el contenido
del registro B es distinto de 1.
5 Bus de Entrada

0 1 0 1
MUX 1 c0 MUX 2 c1

A B R c2

0 1
c3 MUX 3
3
5 s0 (B 1
1

X Y
ALU E0 c4

DEMUX c5
c6
0 1

5
Bus de Salida

Unidad de
Procesamiento
c0
I (Inicio) Circuito c1
Fin d
Reloj Control c6
Unidad de
Control
En la siguiente tabla se describen las operaciones que gobiernan cada una de las señales de control mostradas
en la figura anterior:
Señal de Operación controlada
Control
c0 Selección del multiplexor 1: Bus-Entrada / DEMUX
c1 Selección del multiplexor 2: Bus-Entrada / DEMUX
c2 Cargar R desde A (R  A)
c3 Selección del multiplexor 3: 1 / A
c4 Selección de la operación de la ALU
c5 Selección del demultiplexor (salida de la ALU hacia A ó B)
c6 Transferir R al Bus de Salida
C) En la siguiente figura se muestra el diagrama de flujo del algoritmo y el diagrama de estados asociados a la Unidad de
Control. Y en la Tabla posterior se dan las acciones tomadas en cada uno de los estados con las señales de control que
hay que activar.

S0

S1
A 0 0 0 0 1
B 1 0 0

S2
A A × B

B B - 1
S3 s0 (B 

s
¿B 1?
S4
no

s0 ( B = 1)
R A

S5

Bus de SalidaR

S6

Diagrama de flujo del algoritmo y diagrama de estados de la Unidad de Control

Estado de la Unidad Microoperaciones Señales de control


de Control efectuadas a activar
S0 A 00001 c0
S1 B 100 c1
S2 A A× B c4
S3 B B - 1 c3, c5
S4 --- ---
S5 R A c2
S6 Bus-salida  R c6
Parar
Acciones tomadas por la Unidad de Control
1.- Un controlador de DMA está transmitiendo palabras a memoria mediante la estrategia transparente. Cuando
la CPU dispone en exclusiva del bus, las instrucciones emplean en promedio, 4 ciclos de reloj en ser
ejecutadas, aunque en 2 de ellos no se requiere el acceso al bus. El controlador de DMA tarda 1 ciclo de reloj en
transmitir una palabra. Si la frecuencia de reloj del computador es de 107 ciclos/s, ¿cuánto tiempo tardará el
controlador de DMA en mover un bloque de datos compuesto por 107palabras?
A) 0,5s B) 1s C) 2s D) Ninguna de las anteriores.

Solución

En la estrategia de DMA transparente no se produce ninguna interferencia entre el controlador de DMA y la


CPU. El controlador de DMA aprovecha los ciclos de reloj en los que la CPU no utiliza el bus para realizar la
transmisión.
Según el enunciado del problema, el controlador de DMA transmite una palabra durante los 2 ciclos de reloj en
los que la CPU no utiliza el bus cuando ejecuta una instrucción. Por tanto, en los 4 ciclos de reloj que tarda la
CPU en ejecutar una instrucción, el controlador de DMA transmite 2 palabras.
La velocidad de transferencia resultante, si el reloj del computador tiene una frecuencia de 107 ciclos/s, es de:
(107 ciclos/s) (2/4 palabras/ciclo) = 0,5107 palabras/s
Con esta velocidad de transferencia, para mover un bloque de 106 palabras el controlador de DMA tardará:
(107 palabras) / (0,5107 palabras/s) = 2 s
Respuesta: C

2.- Una unidad de control microprogramada con direccionamiento explícito con dos direcciones por
microinstrucción y microprogramación horizontal tiene una memoria de control con 2K palabras32
bits/palabra de capacidad. Indicar el número máximo de puntos de control en la ruta de datos asociada.
A) 10 B) 12 C) 22 D) Ninguna de las anteriores.

Solución

[Ver el apartado 7.2.3 y 7.2.4 del texto base de teoría].


La memoria de control almacenará las posibles microinstrucciones que se pueden ejecutar en el sistema, la
anchura de esta memoria y por tanto de una microinstrucción según el enunciado es de 32 bits.

Por otra parte puesto que hay 2 Kpalabras, el número de bits necesarios para codificar una dirección de esta
memoria de control es 10, ya que 2 K= 211. Luego como se utiliza un direccionamiento explícito con dos
direcciones por microinstrucción se requieren 2 11=22 bits para especificar ambas direcciones.

Como la anchura de una microinstrucción es de 32 bits, eso significa que se utilizan 10 bits (32-22) = 10 para el
campo de control. Es decir, la estructura de la microinstrucción sería:

Control: 10 bits Dirección 1: 11 bits Dirección 2: 11 bits

Como el enunciado indica que se usa microprogramación horizontal, eso significa que se asigna un bit a cada
una de las señales de control existentes en la unidad de procesamiento. En consecuencia puesto que el campo
de control de la microinstrucción tiene un tamaño de 10 bits, como máximo podrán existir 10 señales de
control. Puesto que cada señal de control se aplica a un determinado punto físico de control como máximo
existirán 10 puntos de control.

Respuesta A

3.- Una memoria caché asociativa por conjuntos consta de 16 conjuntos con 4 bloques por conjunto. La
memoria principal tiene una capacidad de 1M (220) palabras dividida en bloques de 128 palabras. A la dirección
de memoria principal, expresada en binario, 10100001100100110000, le corresponde el conjunto, expresado en
decimal:
A) 7 B) 3 C) 2 D) Ninguna de las anteriores.
Solución

Hay que determinar el número de bits que contienen los 3 campos (etiqueta, conjunto y palabra) en los que se
divide el formato de la dirección de Mp en una memoria caché asociativa por conjuntos.
Como la capacidad de la memoria principal es de 1Mpalabras (220), esto implica que el número total de bits
para direccionar a la Mp es de: n = 20 bits.
Como la memoria caché asociativa por conjuntos consta de 16 conjuntos (24), esto implica que el número de
bits que necesita el campo conjunto es de: c = 4 bits.
Como cada bloque en los que se divide la Mp consta de 128 palabras (27), esto implica que el número de bits
que necesita el campo palabra es de: p = 7 bits.
A partir de estos datos podemos ya determinar el número de bits que contiene el campo etiqueta que es de:
e = n – p – c = 20 – 4 – 7 = 9 bits.
A la dirección de memoria principal, expresada en binario, 10100001100100110000, le corresponderán
entonces los contenidos siguientes en los diferentes campos de la dirección:
 etiqueta (los 9 bits más significativos de la dirección): 101000011
 conjunto (los 4 bits siguientes de la dirección): 0010
 palabra (los 7 bits menos significativos de la dirección): 0110000
Luego el conjunto expresado en decimal es el 2.

Respuesta: C

4.- Se dispone de un bus síncrono que tiene un tiempo de ciclo de 50 ns y cada transacción del bus requiere un
ciclo de reloj. Este bus multiplexa las direcciones y los datos por un conjunto de 32 líneas. Si la memoria tiene
200 ns de tiempo de acceso, el ancho de banda en el proceso de lectura de dicha memoria es de:
A) 10,5 Mbytes/s B) 20,2 Mbytes/s C) 13,3 Mbytes/s D) Ninguna de las anteriores.

Solución

En la figura siguiente se muestra el cronograma correspondiente al proceso de escritura utilizando el bus


síncrono:

Ciclo-1 Ciclo-2 Ciclo-3 Ciclo-4 Ciclo-5 Ciclo-6

Reloj

Dirección

Tiempo de acceso a memoria = 200 ns

Datos

R/W

Cronograma del proceso de lectura con bus síncrono

Como se puede observar, los distintos tiempos significativos para la resolución del problema son los siguientes:
Envío de dirección a memoria = 50 ns
Lectura de memoria = 200 ns
Envío de datos a CPU = 50 ns
Por lo tanto se tarda un total de 300 ns en leer 32 bits (= 4 bytes), luego el ancho de banda será:
Ancho de banda = 4 bytes/300 ns = 4 Mbytes/0,3 s = 13,3 Mbytes/s

Respuesta: C
5.- Sea una CPU con 4 líneas de interrupción PI1, PI2, PI3 y PI4, numeradas en orden creciente de prioridad, es
decir, PI1 tiene la prioridad mínima y PI4 la máxima. Se supone que se producen 4 peticiones de interrupción
en este orden: PI3, PI1, PI4 y PI2. Teniendo en cuenta que las tres últimas se producen simultáneamente
mientras se está ejecutando el programa de servicio de PI3, si el sistema no permite anidamiento de
interrupciones, el orden en que se tratan las interrupciones es:
A) PI3, PI2, PI4 y PI1 B) PI3, PI4, PI2 y PI1 C) PI3, PI1, PI2 y PI4 D) Ninguna de las anteriores.

Solución

Como el sistema no permite anidamiento se trata de un sistema con un único nivel de interrupciones. Por lo
tanto, una vez que se inicia la ejecución del programa de servicio de una interrupción continúa hasta que
finalice antes de que la CPU pueda aceptar una segunda petición de interrupción.
La secuencia de petición de interrupciones es la siguiente: Llega PI3 y comienza a ejecutarse el programa de
servicio de PI3. A continuación, de forma simultánea llegan PI1, PI4 y PI2. Cuando llegan estas tres peticiones
se continúa ejecutando el programa de servicio de PI3. Al finalizar este programa de atención a PI3, se procede
a ejecutar el programa de servicio de PI4 que es la interrupción recibida con mayor prioridad. Cuando éste
finaliza, se procede a ejecutar el programa servicio de PI2, la siguiente que debe ser atendida según órdenes de
prioridades. Por último, cuando termina el programa de servicio de la interrupción PI2, se procede a ejecutar el
programa de gestión de PI1.
Por lo tanto, el orden de ejecución de las interrupciones es: PI3, PI4, PI2 y PI1.
Respuesta: B

6.- ¿Cuántos sumadores binarios completos de 1 bit (SBC’s) harían falta para construir un sumador binario
paralelo de 2n bits?
A) n B) 2n C) log2 n D) Ninguna de las anteriores.

Solución

Como la longitud de palabra es de 2n bits y se trata de implementar un sumador binario paralelo serán
necesarios 2n SBC’s (1 por cada bit) [ver apartado 4.1.4 y Figura 4.10 del libro de texto - página 194].

Respuesta: B

7.- En la figura se muestra la tabla de transición de estados de un circuito secuencial síncrono con dos estados y
dos entradas (x, y), donde Q es la variable de estado necesaria para la representación de los dos estados. Si el
circuito se diseña empleando un elemento de memoria tipo D, indicar cuál de las siguientes expresiones de
entrada al elemento de memoria es correcta:

Estado presente Próximo Estado


Q xy xy xy xy A) D  Q  x  y  Q  x  y
B) D  Q   y  x   x  y
0 0 0 1 0 C) D  Q  x  y
1 1 0 1 1 D) Todas las afirmaciones anteriores son falsas.

Solución

[Ver las secciones 5.5.5, B.3.3, B.6.5, B.6.6 y B.6.11 del texto base de teoría, así como el problema 5-2 del
libro de problemas]. La forma más 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. Se observa que la solución correcta es la B).
Q x y D(t) A) B) C
)
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 1 1 1 0
0 1 1 0 0 0 0
1 0 0 1 0 1 0
1 0 1 0 1 0 0
1 1 0 1 0 1 1
1 1 1 1 0 1 0

Respuesta B

8.- En un procesador con instrucciones de cero direcciones (procesador con pila), ¿qué expresión calcula la
secuencia de instrucciones: Push M[C]; Push M[D]; Mult; Push M[C]; Push M[D]; Mult; Add; Pop M[A]?
A) A = (C+D)  2 B) A = (C+D+D)  C C) A = 2  (CD) D) Ninguna de las anteriores.

Solución

[Ver apartado 6.1.4 del texto base de teoría y el problema 6-4 del libro de problemas]. La evolución del
contenido de la pila según se van ejecutando las instrucciones se muestra a continuación:

Contenido de la pila
Push M [C]; C
Push M[D]; C, D
Mult CD
Push M[C]; CD, C
Push M[D]; CD, C, D
Mult; CD, CD
Add; (CD)+ (CD)
Pop M[A];

Respuesta: C
PROBLEM,A

El siguiente algoritmo describe una operación que se realiza en un sistema digital:


1: Declaración de registros A, B, C;
2: Inicio: A Entrada1;
3: B Entrada2;
4: C Entrada3;
5: Bucle: if (C > 0) then go to Operar;
6: else go to Final;
7: Operar: A A + B;
8: C C - 1;
9: go to Bucle;
10: Final: if (A > 25) then Salida A;
11: go to Final;
A) (2 ptos) Obtener su diagrama ASM.
B) (2 ptos) Diseñar una ruta de datos para este algoritmo.

Solución

Para resolver este problema se necesitan cuatro variables: A, B, C y Salida. El algoritmo comienza
introduciendo desde tres puertos de entrada (Entrada1, Entrada2 y Entrada3) valores en A, B y C
respectivamente. A continuación se entra en un bucle que se repite hasta que C sea menor que cero. En el caso
en que C > 0, se suman los contenidos de A y B (almacenando el resultado en A), se decrementa en uno el valor
de C y se ejecuta el bucle de nuevo. En caso contrario, se analiza el valor almacenado en A y si es mayor que
25 se carga el valor almacenado en A en la variable Salida.
En la Figura 1 se muestra un diagrama ASM para este algoritmo. Tiene tres estados. En el S0 se inicializan A, B
y C. En el S1 se realizan las dos operaciones sobre los valores contenidos en A y C. En S2, si se satisface la
condición A >25 se carga el valor de A en la variable Salida.

Figura 1: Diagrama ASM para el algoritmo propuesto.

En la Figura 2 se muestra la Unidad de Procesamiento propuesta para este algoritmo. Con relación a esta
arquitectura se pueden realizar los siguientes comentarios:
 Se dispone de tres registros A, B y Salida que se cargan con las señales de control c1, c2 y c3
respectivamente.
 Se dispone de un Contador C, que se carga con la señal c4 y se puede decrementar en uno activando la
señal c5.
 La señal de selección del multiplexor, c6, sirve para cargar en A el valor de Entrada1 o la salida del
sumador.
 El sumador genera una señal MayorA25 en caso de que el valor contenido en A sea mayor que 25.
 El Contador C genera una señal zeroC cuando su valor sea cero.

Entrada 1
Entrada 3

MUX c6 c4
c2
Entrada 2 c5 Contador C

zeroC

Registro A c1 c2
Registro B

Sumador MayorA25 Salida c3

Figura 2: Ruta de datos para el algoritmo propuesto


ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2008-2009

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 máxima 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 máximo de tiempo estaría ocupado el bus del sistema en una transferencia de datos a través 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 instrucción emplea 10 ciclos máquina y cada operación de lectura o escritura de memoria tarda 5
ciclos máquina. Determinar la máxima velocidad de transferencia de datos si en este sistema se emplea DMA
con estrategia de transferencia por ráfagas.

3.4 Un computador con 13 líneas de direcciones tiene una memoria de 212 palabras y utiliza entrada/salida
localizada en memoria.
a) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa una
sola dirección?
b) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa 8
direcciones?

3.5 Sea una UCP con 4 líneas de interrupción PI3, PI2, PI1 y PI0 de las cuales son enmascarables las tres primeras
líneas mediante 3 bits del registro de estado RE de la UCP, de forma que una petición de interrupción en PIj
enmascara las líneas PIi con i<j e i≠0. Se supone que se producen 4 peticiones de interrupción 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
200×106 ciclos/seg., ¿cuántas instrucciones por segundo deja de ejecutar la UCP cuando el controlador de DMA
está realizando una transmisión?

3.7 En un computador que funciona a una velocidad de 108 ciclos/seg una instrucción emplea, en promedio, 4
ciclos máquina 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 máxima velocidad de transferencia de datos es de 50.000.000
palabras/seg.
II. Empleando DMA por robo de ciclos la máxima velocidad de transferencia de datos es de
20.000.000 palabras/seg.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
Problemas de los exámenes del curso 97/98 13

Figura 99-3-1: Diagrama de la conexión del controlador de interrupciones a la UCP

6ROXFLyQ

Antes de contestar los apartados pedidos, conviene hacer un resumen de cómo ha de funcionar el controlador de
interrupciones solicitado:
1) De todas las peticiones de interrupción INTRi se filtrarán y eliminarán las que estén enmascaradas.
2) Si después del paso 1) todavía existe alguna petición activada se activará INTR y se seleccionará cuál
es la petición más prioritaria.
3) Cuando la UCP conceda la interrupción activando INTA, se informará al periférico cuya petición de
interrupción se a seleccionado en 2) que su petición va a ser atendida, mediante su línea de aceptación
INTAi correspondiente.
Obsérvese que los puntos 1) y 2) no son intercambiables, es decir, se han de ejecutar necesariamente en ese
orden. En caso contrario se podrían ocasionar situaciones anómalas. (Por ejemplo, si INTR2 e INTR3 están activas
pero ambos niveles de interrupción están enmascarados, INTR no se debe activar. Pero se se genera INTR y luego
se comprueba qué niveles están enmascarados se habría producido una petición de interrupción cuando debería
haber sido filtrada por el controlador de interrupciones.).

a) Para cualquier señal INTAj, suponiendo que ninguna petición 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 petición activada de mayor prioridad, entonces
INTAj=1.
‡ Si INTA=1 e INTRj=1, pero existe un INTRk de mayor prioridad que también está activado, entonces
INTAj=0.
14 Estructura y Tecnología 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

0 X X X X 0 0 0 0

1 1 X X X 1 0 0 0

1 0 1 X X 0 1 0 0

1 0 0 1 X 0 0 1 0

1 0 0 0 1 0 0 0 1

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

b) El controlador de interrupciones posee un registro interno de máscara MASK cuyos bits individuales
M3..M0 enmascaran selectivamente las líneas de petición de interrupción. (El contenido de este registro es escrito
por la UCP mediante algún mecanismo que según el enunciado no hay que considerar en este problema.) Así,
cuando Mj=0 la correspondiente señal INTRj está enmascarada y no deberá ser atendida. Esto se realiza fácilmente
con una puerta AND. El enmascaramiento de las cuatro líneas de petición será, por tanto, el que se muestra en la
Figura 99-3-2.

INTR3
INTR’3

INTR2
INTR’2

INTR1
INTR’1

INTR0
INTR’0

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 líneas de petición que ya han pasado por el mecanismo
de enmascaramiento INTR’i, la petición activa más prioritaria. Una posible solución consiste en utilizar un
codificador de prioridad seguido de un decodificador (Figura 99-3-3; obsérvese que ambos dispositivos tienen sus
entradas de habilitación H activadas).
Problemas de los exámenes del curso 97/98 15

INTR

1 1

INTR’3 H A H
3 3 I3

INTR’2 I2
2 1 1 2
Codificador Decodificador
de prioridad
INTR’1 I1
1 0 0 1

INTR’0 I0
0 0

Figura 99-3-3: Mecanismo de gestión de prioridades

El codificador de prioridad genera la codificación binaria de la línea INTR’j más prioritaria que está activa. A
partir de aquí, por medio de un decodificador se consigue que se active únicamente la línea Ij; las restantes líneas Ii
menos prioritarias se encuentran a 0, independientemente de cómo se encuentren las correspondientes líneas
INTR’i. Esto se recoge en la Tabla 99-3-2.

INTR’3 INTR’2 INTR’1 INTR’0 I3 I2 I1 I0

1 X X X 1 0 0 0

0 1 X X 0 1 0 0

0 0 1 X 0 0 1 0

0 0 0 1 0 0 0 1

Tabla 99-3-2: Tabla de verdad del mecanismo de gestión 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 líneas INTR’i esté a 1 significa que hay alguna petición no enmascarada activa, y que por tanto hay que activar
la línea INTR; para esto se utiliza la salida A.

d) Cuando la UCP concede la interrupción activa su única línea INTA. Para generar las cuatro líneas de
aceptación INTAi, y dado que sólo una de las líneas Ii puede estar activada en cada momento, la correspondiente a
la petición no enmascarada de mayor prioridad, basta con hacer la Y-lógica entre Ii e INTA, según la Figura
99-3-4.
16 Estructura y Tecnología de Computadores II

I3 INTA3

I2 INTA2

INTA1
I1

I0 INTA0

INTA

Figura 99-3-4: Generación de las señales de aceptación INTAi

e) Para construir el controlador de interrupciones solicitado tan solo hay que encadenar los módulos
implementados en los apartados b), c) y d), según se muestra en la Figura 99-3-5.

CONTROLADOR DE INTERRUPCIONES INTR

{
INTR3 INTR’3 I3

INTA
Enmascaramiento (b)
De los periféricos

Prioridades (c)

Concesión (d)

INTR2 INTR’2 I2
UCP
INTR1 INTR’1 I1

INTR0 INTR’0 I0

INTA3

{
A los periféricos

INTA2
INTA1
INTA0

Figura 99-3-5: Controlador de interrupciones


Problemas de los exámenes del curso 2000/2001 13

INTR0
INTR
INTR1 Controlador
de
interrupciones UCP
INTR7
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 líneas de aceptación, aunque haya peticiones pendientes.
‡ Si INTA = 1, se activa la línea de aceptación de la petición INTRi más prioritaria.

ENTRADAS SALIDAS

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

0 X X X X X X X X 0 0 0 0 0 0 0 0

1 1 X X X X X X X 1 0 0 0 0 0 0 0

1 0 1 X X X X X X 0 1 0 0 0 0 0 0

1 0 0 1 X X X X X 0 0 1 0 0 0 0 0

1 0 0 0 1 X X X X 0 0 0 1 0 0 0 0

1 0 0 0 0 1 X X X 0 0 0 0 1 0 0 0

1 0 0 0 0 0 1 X X 0 0 0 0 0 1 0 0

1 0 0 0 0 0 0 1 X 0 0 0 0 0 0 1 0

1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

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

b) En este apartado hay que seleccionar, a partir de las líneas INTRi la petición más prioritaria. Una posible
solución consiste en utilizar un codificador de prioridad seguido de un decodificador. En la Figura 2 se muestra el
diseño propuesto, donde se puede observar que tanto el codificador de prioridad como el decodificador tienen sus
14 Estructura y Tecnología de Computadores II

entradas de habilitación H activadas.

INTR
1 1

H A H
INTR7 7 7 I7
2 2
INTR6 6 6 I6

INTR5 5 5 I5
Codificador de
prioridad Decodificador
INTR4 4 4 I4
1 1
INTR3 3 3 I3

INTR2 2 2 I2

INTR1 1 1 I1
0 0
INTR0 0 0 I0

Figura 2: Mecanismo de gestión de prioridades

El codificador de prioridad genera la codificación binaria de la línea INTRi más prioritaria. A partir de aquí,
por medio del decodificador se consigue que únicamente se active la línea Ii, y que las restantes salidas Ij, menos
prioritarias, se encuentren a cero, independientemente de cómo se encuentren las correspondientes líneas 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

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 X X X X X X X 1 1 0 0 0 0 0 0 0

0 1 X X X X X X 1 0 1 0 0 0 0 0 0

0 0 1 X X X X X 1 0 0 1 0 0 0 0 0

0 0 0 1 X X X X 1 0 0 0 1 0 0 0 0

0 0 0 0 1 X X X 1 0 0 0 0 1 0 0 0

0 0 0 0 0 1 X X 1 0 0 0 0 0 1 0 0

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


Problemas de los exámenes del curso 2000/2001 15

INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 INTR I7 I6 I5 I4 I3 I2 I1 I0

0 0 0 0 0 0 1 X 1 0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1

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

Cuando alguna de las líneas INTRi esté a 1 significa que hay alguna petición de interrupción activa y que, por
tanto, hay que activar la línea INTR conectada a la UCP para transmitir la petición. 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 línea
se puede ver también en la Tabla 4.

c) Cuando la UCP concede la interrupción activa su única línea INTA. El controlador de interrupciones tiene
que activar en ese instante la línea de aceptación INTAi correspondiente al dispositivo más prioritario que tenga
pendiente una petición. Esta información se generó en el apartado anterior mediante las salidas Ii. Entonces, para
generar las funciones lógicas de las ocho INTAi que tiene el controlador de interrupciones que se está diseñando,
basta con hacer la Y-lógica entre cada Ii y la línea INTA de aceptación 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: Generación de las señales de aceptación INTAi

Para construir ahora el controlador de interrupciones solicitado tan solo hay que encadenar los módulos
implementados en el apartado B (ver Figura 2) con el de la Figura 3, tal y como muestra la Figura 4.
16 Estructura y Tecnología de Computadores II

INTR

7 I7
INTR7
6 I6 INTA
INTR6
5 I5
INTR5 UCP
4 Módulo de I4 Módulo de
INTR4 gestión de aceptación
3 prioridades I3 (Figura 3)
INTR3
(Figura 2)
2 I2
INTR2
1 I1
INTR1
0 I0
INTR0

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 solución consiste en conectar la salida INTA de la UCP a la entrada de habilitación H del
decodificador de la Figura 2 de la página 14. De esta manera, las salidas del decodificador son ahora las señales
INTAi, tal como se muestra en la Figura 5.
Problemas de los exámenes del curso 2000/2001 17

INTR
1 INTA

H A H
INTR7 7 7 INTA7
2 2
INTR6 6 6 INTA6

INTR5 5 5 INTA5
Codificador de
prioridad Decodificador
INTR4 4 4 INTA4
1 1
INTR3 3 3 INTA3

INTR2 2 2 INTA2

INTR1 1 1 INTA1
0 0
INTR0 0 0 INTA0

Figura 5: Diseño alternativo

INTR INTA
INTR7 7 7 INTA7

INTR6 6 6 INTA6

INTR5 5 5 INTA5
C o ntrolador
INTR4 4 de 4 INTA4
Interrupciones
INTR3 3 3 INTA3

INTR2 2 2 INTA2

INTR1 1 1 INTA1

INTR0 0 0 INTA0

Figura 6: Representación del módulo controlador de interrupciones

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


Figura 6. La forma de conectar dos de estos módulos 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 diseño tiene las siguientes características:
‡ Es capaz de atender peticiones de 15 dispositivos, tal y como requiere el enunciado del problema.
18 Estructura y Tecnología de Computadores II

‡ La salida de petición de interrupción INTR del CI2 se ha conectado con la entrada INTR0 del CI1, y la salida
de aceptación INTA0 del CI1 se ha conectado con la entrada INTA del CI2. De esta forma, las peticiones
INTR7 a INTR0, solicitadas al CI2, sólo se atenderán cuando no haya peticiones activas en las líneas INTR8
a INTR14. Por tanto, la línea más 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 número arbitrario de peticiones.

UCP

INTR INTA

INTR INTA
INTR14 7 INTA14
7
INTR13 6 INTA13
6
INTR12 5 5 INTA12
C on trolador
INTR11 4 de 4 INTA11
INTR10 Interrupciones
3 3 INTA10
INTR9 2 1 2 INTA9
INTR8 1 1 INTA8
0 0

INTR INTA
INTR7 7 7 INTA7
INTR6 6 6 INTA6
INTR5 5 5 INTA5
C o ntrolador
INTR4 4 de 4 INTA4
Interrupciones
INTR3 3 3 INTA3

INTR2 2 2 2 INTA2

INTR1 1 1 INTA1

INTR0 0 0 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 exámenes 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 gestión de
prioridades y generación de las señales de aceptación. Veamos por qué no funciona:
En la Figura 8 se ha representado una situación hipotética en la que están activas simultáneamente las
peticiones INTR7, INTR6 e INTR5, y la UCP ha concedido la interrupción mediante la activación de la línea de
concesión INTA. Al ser la más prioritaria, la petición 7 debe ser atendida; efectivamente, el circuito propuesto
genera INTA7 = 1, lo que es correcto. La petición 6, al tener menor prioridad, no debe ser atendida: INTA6 = 0,
correcto. Pero INTA5 es 1, cuando debería ser 0. El circuito está concediendo la interrupción simultáneamente a
dos dispositivos diferentes, lo que es una situación errónea que puede ocasionar graves conflictos en el
funcionamiento del computador.
Es fácil encontrar otras muchas situaciones en las que este dispositivo concede la interrución a varios
dispositivos simultáneamente. Se trata, por tanto, de una propuesta de solución no válida.

1
INTA7
INTR7 1

0
INTA6
INTR6 1

1
INTA5
INTR5 1

INTA0
INTR0

INTA

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


1 Estructura y Tecnología de Computadores II

Problema 3.41:

Una CPU dispone de una única línea de petición de interrupción (INTR) y de una única línea de
aceptación de interrupción. Diseñe para esa CPU un controlador de interrupciones, de manera que se
puedan atender interrupciones generadas por 3 dispositivos externos mediante líneas de petición de
interrupción (ver la Figura adjunta). Cuando se reciben peticiones de interrupción simultáneas, sólo se
reconoce la más prioritaria. La máxima prioridad la tiene INTR0 y la mínima INTR2 . Además, cada una
de estas líneas de interrupción se ha de poder enmascarar de manera individual mediante un registro de
máscara (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 señal INTR j está enmascarada y
no debe ser atendida. Cuando la CPU activa su línea de aceptación, INTA, se debe informar al periférico
correspondiente, de manera individual, que su petición ha sido aceptada, mediante las líneas de
aceptación INTA2 … INTA0 .

INTR2 INTR1 INTR0

2 1 0 INTR
CONTROLADOR DE
INTR
INTERRUPCIONES INTA CPU
INTA
Máscara: [ M 2M 1M 0 ]
2 1 0

INTA2 INTA1 INTA0


A) Obtenga la tabla de la verdad del controlador de interrupciones.
B) Obtenga la función lógica de las tres líneas INTA2, INTA1, INTA 0 en función de las líneas INTR0 , INTR1 ,
INTR2 , INTA y de los bits del registro de máscara.
C) Diseñe el circuito lógico del controlador de interrupciones, usando para ello puertas AND, OR y NOT.
D) Explique razonadamente cómo podrían conectarse varios controladores de interrupciones de 3 entradas,
como el diseñado en el apartado anterior, para poder atender las peticiones de interrupción de 6 periféricos
externos.
Examen junio 2003 2

Solución

Este problema es similar a los problemas 3-9 y 3-13 del texto “Problemas de Estructura y Tecnología de
Computadores”, 2ª edición. Se recomienda consultar la solución a estos dos problemas con el fin de facilitar la
comprensión de las explicaciones dadas a continuación.
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 suposición de que
todas las líneas de petición están enmascaradas. Por este motivo, es preciso tener en cuenta el enmascaramiento de
las líneas de petición al plantear la tabla de la verdad.
Un posible procedimiento para ello consiste en construir primeramente la tabla de la verdad en función de
variables auxiliares, INTR’ i, las cuales representan tanto a la señal de petición de interrupción como a su
mecanismo de enmascaramiento (ver Tabla 1):
INTR’i = INTRi Mi donde i: 0, 1, 2
La señal INTR es el “or lógico” de las señales INTR’1, INTR’ 2 e INTR’3 . De esta forma en cuanto haya una
petición de interrupción por una línea no enmascarada, se genera una petición a la CPU.

INTA INTR’0 INTR’1 INTR’2 INTR INTA0 INTA1 INTA 2


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

A continuación, se sustituye en la Tabla 1 cada conjunto de valores de INTR’0 , INTR’1 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 INTRi INTR’ i
1 1 1
0 X 0
X 0 0

La tabla de la verdad obtenida realizando las sustituciones anteriormente indicadas se muestra en la Tabla 2.
3 Estructura y Tecnología de Computadores II

INTA M0 M1 M2 INTR0 INTR 1 INTR2 INTR INTA0 INTA1 INTA2


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

B) Obtenga la función lógica de las tres líneas INTA2, INTA1, INTA 0 en función de las líneas INTR0 , INTR1 ,
INTR2 , INTA y de los bits del registro de máscara.
De la Tabla 1, se deduce que:
• INTA0 = INTA INTR’ 0

• INTA1 = INTA INTR’ 1 INTR’0

• INTA2 = INTA INTR’ 2 INTR’1 INTR’0


Sustituyendo INTR’i por (Mi INTRi), se obtienen las tres funciones lógicas pedidas (que igualmente podían
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) Diseñe el circuito lógico del controlador de interrupciones, usando para ello puertas AND, OR y NOT.
En la Figura 8 se muestra un posible diseño.
Examen junio 2003 4

Figura 8: Controlador de interrupciones

D) Explique razonadamente cómo podrían conectarse varios controladores de interrupciones de 3 entradas,


como el diseñado en el apartado anterior, para poder atender las peticiones de interrupción de 6 periféricos
externos.
Este apartado es análogo al apartado f) del problema 3-13. La conexión de los controladores puede realizarse
como se muestra en la Figura 9. Aunque el dispositivo obtenido de la conexión de los tres controladores permitiría
gestionar 7 periféricos, sólo se señala en la Figura 9 la conexión de 6 de ellos, tal como se pide en el enunciado.
Con la estructura mostrada en la Figura 9, cuando se produce una petición de interrupción por cualquiera de
las líneas INTRi, ésta se transmite a la CPU. Las peticiones realizadas por los dos controladores más alejados de la
CPU generan peticiones en la línea INTR 0 del controlador situado inmediatamente delante de ellos. Asimismo,
cuando la CPU activa la línea de aceptación, INTA, los dos controladores no conectados directamente a la CPU no
pueden activar ninguna de sus salidas hasta que los controladores más próximos que ellos a la CPU no transmitan
por sus respectivas líneas de aceptación INTA0 .
5 Estructura y Tecnología de Computadores II

Figura 9: Controlador de interrupciones capaz de atender a 6 periféricos.


Unidad de entrada salida
Problemas de E/S Controlado de interrupciones:

Problema 3-5

Dadas las peticiones de interrupción (PIi,) que se muestran en la Tabla 3.1, ¿qué programa de servicio de las interrupción estará
ejecutando la CPU durante el intervalo de tiempo 0 - 100 ns?. Mostrar el cronograma de los valores de Pei (prioridad de entrada el
periférico i) y Psi (prioridad de salida del periférico i) para dicha secuencia de interrupciones. Se supondrá que el mecanismo e
identificación de la prioridad de la interrupción es mediante encadenamiento y que hay conectados 4 periféricos. El sistema
dispone de un hardware paralelo de interrupción con prioridad que permite que un periférico de mayor prioridad interrumpa a la
CPU cuando está atendiendo a un periférico que tiene menor prioridad. Cada programa de servicio de las interrupciones,
conjuntamente con la petición de la interrupción, necesita 20 ns para completarse. En el instante inicial (0 ns) arranca el programa
principal (PP).

Tiempo 0 ns 10 ns 20 ns 45 ns 60 ns

Acción Inicio PP PI2 PI1 PI4 PI3


PI1>PI2> PI3>PI4

Tabla 3.1: Instantes de solicitud de interrupción por diferentes dispositivos

Solución:

Instante de
entrada de las
interrupciones PI2 PI1 PI4 PI3

T(ns) 0 10 20 30 40 50 60 70 80 90 100 110

Programa en PI1 PI4 PI3


PP PI2 PI2 PI4 PP
ejecución
Entra PI1 pq tiene más prioridad y quedan

Termina PI1 y se reanuda PI2, en el 45ns

PI3 tiene mayor prioridad y se atiende a


Se interrumpe PI4 (faltándole 10 ns) pq
aparece PI4 pero tiene menor prioridad

interrupciones y continua con el


que PI2 lo que hace que espere.

Termina PI3 y se reanuda PI4

Termina PI4 y el conjunto de


pendientes 10ns de PI2

programa principal
Se activa PI4

PI3

Página 7
Unidad de entrada salida
Problemas de DMA:
Problema 3-15

Un controlador de DMA esta transmitiendo, mediante robo de ciclos, caracteres a memoria desde un periférico a una
velocidad de 19200 bps (bits/seg). Por su parte la CPU realiza la búsqueda de las instrucciones con una velocidad
de 2 millones de instrucciones por segundo (2 MIP). ¿En qué porcentaje se reduce la velocidad del procesador debido al
controlador de DMA?
Suponer una longitud de palabra de M bits y que la CPU emplea, en promedio, N ciclos para ejecutar una instrucción.

Solución
En la estrategia por robo de ciclos cuando el DMA toma el control del bus lo retiene durante un solo ciclo, transmite una
palabra y libera el bus.

19200bps ⇒ 19200/M palabras/sg ⇒ ciclos/sg que deja de ejecutar

Re ducción _ n º _ instrucciones
%= × 100
Instrucciones _ sin_ DMA
6
N= Nº medio de ciclos en ejecutar una instrucción ⇒ 1 segundo ⇒ 2*10 *N ciclos de reloj sin DMA

SIN DMA → 2*106*N ciclos de reloj → 1 segundo 2 × 10 6 × N +


19200
CON DMA → 2*10 *N+ 19200/M → x segundos 19200
6
x= M =1+
2 × 10 × N
6
2 × 10 6 × N × M

19200 0,96
%= × 100 = %
2 × 10 × N × M
6
N×M

2.- 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 200×106 ciclos/seg., ¿cuánto tiempo tardará el controlador de DMA en mover un bloque de datos compuesto por
100×106 palabras?
A) 1 seg. B) 2 seg. C) 2.5 seg. D) Ninguna de las anteriores.

¿Y si la DMA tarda 3 ciclos de reloj en transmitir?

Página 10
Unidad de entrada salida
Problemas de PE/S:
Problema 3-25

Un computador de 32 bits dispone de dos canales selectores y un canal multiplexor. Cada canal selector controla dos unidades de
discos y dos unidades de cinta. Al canal multiplexor están conectados dos impresoras, dos lectoras de tarjetas y 10 pantallas. Para los
diferentes periféricos se suponen las siguientesvelocidades de transferencia:
Unidad de disco .........................800 Kbytes/seg
Unidad de cinta magnética ........200 Kbytes/seg
Impresora...................................8 Kbytes/seg
Lectora de tarjeta .......................1,5 Kbytes/seg
Pantalla ......................................1 Kbytes/seg
Estimar la máxima velocidad de transferencia de E/S agregada en este sistema

Solución

Canal selector ⇒ selecciona un canal y realiza el envío ⇒ velocidad máxima será la del dispositivo más rápido (unidad disco)
Canal multiplexor ⇒ reparte la conexión entre todos ⇒ velocidad máxima será la suma de la de todos los dispositivos si el
bus lo permite en cuanto a velocidad.

Canal selector ⇒ 2 × 800 = 1600 Kbytes/seg


Canal multiplexor ⇒ (2 × 8)+(2 × 1,5)+(10 × 1) = 29 Kbytes/seg
Velocidad total ⇒ suma de los dos canales ⇒ 1600 + 29 = 1629 Kbytes/seg

8.- Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 5 unidades de cinta. Las unidades de disco
6 5
tienen una velocidad de transferencia de 6×10 bytes/seg., y las de cinta de 10 bytes/seg. Si para la transferencia de un byte del
canal multiplexor a memoria principal se utiliza el bus del sistema durante 50 nseg, la máxima velocidad de transferencia agregada a
este sistema es de:
7 6 7
A) 3.05×10 bytes/seg. B) 6×10 bytes/seg. C) 2×10 bytes/seg. D) Ninguna de las anteriores.

NO HACER (Igual al anterior)

5.- Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 10 unidades de cinta. Las unidades de disco
6 5
tienen una velocidad de transferencia de 10 bytes/seg., y las de cinta de 2×10 bytes/seg. Si para la transferencia de un byte del
canal multiplexor a memoria principal se utiliza el bus del sistema durante 200 nseg. ¿Cuál es la velocidad máxima de transferencia
agregada a este sistema?
6 6 6
A) 7 × 10 bytes/seg B) 5 × 10 bytes/seg C) 10 bytes/seg D) Ninguna de las anteriores

1.- 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 10 bytes/seg., y las de cinta de 2×10 bytes/seg. Si para la transferencia de un byte del
6 5

canal multiplexor a memoria principal se utiliza el bus del sistema durante 200 nseg. ¿Qué porcentaje máximo de tiempo estaría
ocupado el bus del sistema en una transferencia de datos del canal multiplexor a memoria principal?
A) 30% B) 20 % C) 14 % D) Ninguna de las anteriores

Página 12
Unidad de entrada salida
2006 Primera semana
3.- La memoria de un ordenador consta de 20 módulos independientes conectados a un bus de memoria común. En una operación de
escritura cada uno de estos módulos únicamente ocupa el bus del sistema al comienzo de la operación y durante un 12,5% del
tiempo total del ciclo de escritura. El 87,5 % del tiempo de ciclo de escritura restante el módulo lo emplea para almacenar el dato
internamente. Si las operaciones de escritura de dichos módulos de memoria pueden solaparse, ¿en cuánto se ve incrementada la
velocidad máxima de almacenamiento de la memoria del ordenador en relación a la velocidad de un único módulo?

A) 10 veces B) 5 veces C) Nada D) Ninguna de las anteriores

Página 13
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 4: Unidad Aritmético-Lógica


SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2009-2010
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

PROBLEMAS
TEMA 4: Unidad Aritmético Lógica
Problemas propuestos en examen
4.1 Se desea realizar una Unidad Aritmético Lógica que realice dos operaciones, suma y comparación de dos
números X (x2x1x0) e Y (y2y1y0) de 3 bits cada uno, siendo su salida S (s3s2s1s0).

x2 x1x0 y2 y1y0
c 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
c = 1 : comparación Si X = Y entonces S = 0 1 0 0
Si X < Y entonces S = 0 0 1 0
Para resolver el problema, seguir obligatoriamente los siguientes apartados:
a) Diseñar un comparador de números de 1 bit utilizando únicamente puertas lógicas.
b) Utilizando comparadores como el diseñado en el apartado A) y puertas lógicas, diseñar un comparador
de números de 3 bits.
c) Utilizando únicamente sumadores binarios completos (SBC), diseñar un sumador binario de números
de 3 bits.
d) Utilizando únicamente los módulos diseñados en B) (comparador de números de 3 bits) y C)
(sumador binario de números de 3 bits) y los circuitos combinacionales que considere necesarios,
diseñe la UAL pedida.

4.2 Diseñar el circuito de comparación secuencial que se muestra en la figura. El circuito posee dos entradas de
datos X e Y, una entrada de señal de reloj y una salida Z = {M, I, m}. Recibe los bits xi e yi de forma serie,
comenzando por los más significativos. El circuito genera sus salidas de acuerdo con la siguiente tabla

M I m
X>Y 1 0 0
x0 x n-2 x n-1 M
X=Y 0 1 0 Comparador
I
X<Y 0 0 1 y0 y n-2 y n-1 Secuencial m
Para ello:
a) Indique el diagrama de estados del circuito, especificando claramente cuál es el significado de cada
uno de los estados.
b) Indique cómo codifica los estados y obtenga la tabla de transición de estados correspondiente.
c) Suponiendo que sólo dispone de biestables tipo D para el diseño del circuito, calcular las funciones de
excitación de los biestables.
d) Implemente el circuito con biestables tipo D y puertas lógicas NAND y NOT únicamente.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.3 Se desea realizar un circuito combinacional que multiplique dos números binarios, uno de ellos de 3 bits
(b2b1b0) y el otro de 2 bits (a1a0), utilizando para ello módulos de memoria ROM de capacidad 24 palabras × 4
bits/palabra (véase la Figura ).

Bus de Bus de
direcciones datos
ROM
4 16x4 4
CS
Selección de
circuito
Módulo de memoria ROM a utilizar

a) ¿Cuántos módulos ROM son necesarios? Dibujar el esquema del circuito que se obtiene utilizando los
módulos ROM propuestos y, si considera necesario, otros módulos combinacionales.
b) Escribir el contenido de todos los módulos de memoria ROM utilizados en el apartado anterior.
Realizar una tabla independiente para cada uno de los módulos y especificar claramente a qué módulo
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 números de 12 bits representados en binario puro: X=000011000010, Y=000101110001. Calcular
el resultado de su suma, expresado en BCD.

4.5 Explique cuántos módulos de memoria ROM de 2n palabras × n bits/palabra serían necesarios para diseñar
un circuito combinacional que multiplique dos números de n bits.
4.6 Se desea construir un multiplicador binario para dos números de 8 bits, utilizando puertas lógicas 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
números binarios de dos bits x1x0 e y1y0.

4.8 Para multiplicar dos números binarios sin signo de 3 y 4 bits, respectivamente, ¿se podría 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 cálculo no depende del número de bits que hay que sumar.
II. La complejidad del circuito depende del número de bits que hay que sumar.

4.10 Diseñar un multiplicador para dos números 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) Diseñar razonadamente el multiplicador.
B) Indicar razonadamente cuál será el contenido de cada una de las memorias ROM.

4.11 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario completo (SBC) de dos
números binarios de un bit, x e y, y con acarreo de entrada c-1:
I. La función lógica del resultado de la suma es s = x ⊕ y (⊕ es la OR exclusiva).
II. La función lógica del acarreo de salida es c = xy + ( x ⊕ y )c −1 (⊕ es la OR exclusiva).

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.12 Se desea realizar una Unidad Aritmético Lógica (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:

Señal de control Operación


c1c0 = 00 : suma S=X+Y
c1c0 = 01 : resta S=X-Y
c1c0 = 10 : comparación 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
c1c0 = 11 : sacar X S = X (s3=0, s2s1s0=x2x1x0)

3 2
x2 x1x0 y1y0
c 1c 0 UAL
2
s3 s2 s1 s0

Para resolver el problema, seguir obligatoriamente los siguientes apartados:


a) Utilizando únicamente puertas lógicas, diseñar un Sumador Binario Completo (SBC).

b) Diseñar un sumador/restador binario de números de tres bits utilizando SBC’s como el diseñado en el
apartado A) y las puertas lógicas necesarias.

c) Diseñar un comparador de números de tres bits utilizando únicamente un módulo de memoria ROM.
¿Cuál es el tamaño necesario para este módulo 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 módulos diseñados en los apartados anteriores y los módulos
combinacionales necesarios, diseñe la UAL pedida.

4.13 Se desea comparar dos números binarios de 4 bits cada uno: X=x3x2x1x0 con Y=y3y2y1y0. Utilizando
comparadores de un bit se compara cada pareja de bits, xi con yi, obteniéndose: Mi (xi>yi), Ii (xi=yi) y mi (xi<yi).
Entonces:
I. La función lógica M (X>Y) es M = M3 + I3M2 + I3I2M1.
II. La función lógica 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 números
binarios de un bit, x e y:
I. Una posible función lógica del resultado de la suma es s = ( x + y ) xy
II. Una posible función lógica del acarreo de salida es c = x + y

4.15 Sean dos números binarios de 12 bits representados en código BCD: X =010110001001,
Y = 001101000111. Calcular el resultado de su suma, representado en BCD.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.16 Se desea construir un sumador binario con aceleración de arrastres (SBAA) para 2 números binarios X e Y
de 3 bits cada uno. Para ello, el diseño 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 función lógica de sus cuatro salidas: si
(suma), ci (acarreo de salida), gi (generación de acarreo) y pi (propagación de acarreo). A partir de estas
funciones lógicas, y empleando únicamente puertas lógicas, diseñe este SBC modificado.

b) La figura central muestra un circuito de aceleración de arrastres (CAA) de 3 bits con tres entradas de
generación de acarreo gi, tres entradas de propagación de acarreo pi y un acarreo de entrada c1. Exprese
las funciones lógicas de los acarreos c2, c1 y c0 generados por este módulo. A partir de estas funciones
lógicas, y empleando únicamente puertas lógicas, diseñe este CAA.

c) Utilizando únicamente 3 SBC modificados como los diseñados en A) y el CAA diseñado en B),
construya razonadamente el sumador binario con aceleración de arrastre de 3 bits (SBAA) solicitado en
el enunciado y mostrado en la figura de la derecha.

g2 p2 g1 p1 g0 p0 x2 y2 x1 y1 x0 y0
xi yi

ci ci-1 c-1 c2 c-1


SBC CAA SBAA
modificado de 3 bits

si gi pi c2 c1 c0 s2 s1 s0

4.17 En la suma de los números binarios x= 100101010010011 e y=001010110101011. Calcular cuantas


secuencias de arrastre se generan y la longitud máxima de las secuencias de arrastre.

4.18 Calcular la capacidad que deberá poseer una memoria ROM, para implementar un sumador binario de 2
números, uno de 8 bits y el otro de 4 bits.

4.19 Para multiplicar dos números binarios sin signo de 2 y 3 bits, respectivamente, ¿Se podría 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 números de 16 y 24 bits, respectivamente,
utilizando memoria ROM. Indique si con los siguientes conjuntos de componentes sería 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 números de 4 bits cada uno. Indique si con
los siguientes conjuntos de componentes sería 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.

4.22 Un circuito de aceleración de arrastres (CAA) de 3 bits tiene las siguientes entradas: g2g1g0 (generación de
acarreo), p2 p1p0 (propagación de acarreo) y c-1 (acarreo de entrada); y las siguientes salidas: c2c1c0 (acarreos).
En este circuito la expresión lógica g2 + p2 (g1 + p1 (g0 + p0c-1 ) ) se corresponde a:
A)c3 B) c2 C) c1 D) Ninguna de las anteriores

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.23 Se desea diseñar un circuito sumador/restador de dos números de cuatro bits cada uno, x 3x2x1x0 e
y3y2y1y0 ,con una señal de control M adicional para indicar la operación a realizar. Indicar si las siguientes
afirmaciones son ciertas:
I. Con una memoria ROM de 28 palabras con 5 bits por palabra se podría construir.
II. Con una memoria ROM de 210 palabras con 9 bits por palabra se podría construir.

4.24 Sean dos números binarios de 16 bits representados en código BCD: X = 0011100101010100, Y
=0011100100000110. Calcular el resultado de su suma, representado en BCD.

4.25 Se desea diseñar un circuito comparador de dos números de tres bits y cuatro bits, respectivamente (x2x1x0
e y3y2y1y0 ), 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 podría construir.
II. Con una memoria ROM de 210 palabras con 5 bits por palabra se podría construir.

4.26 Se desea realizar una Unidad Aritmético Lógica (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.

Señal de control Operación


c1c0 = 00 : suma R=X+Y
c1c0 = 01 : producto R= X·Y
c1c0 = 10 : comparación 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) Diseñar un comparador de números de dos bits utilizando únicamente comparadores de números de un bit y
puertas lógicas.

b) Diseñar un sumador/multiplicador de dos números de 2 bits utilizando únicamente un módulo de memoria


ROM. ¿Cuál es el tamaño necesario para este módulo 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 módulos diseñados en los apartados anteriores, los módulos combinacionales
necesarios y puertas lógicas, diseñe la UAL pedida.

2 2
x1x0 y1y0
c1c0 UAL
2
r3 r2 r1 r0

Figura 1: Módulo UAL

4.27 Dados dos números binarios de 1 bit, x e y, la expresión lógica 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.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.28 ¿Cuántos SBC de 1 bit harían falta para construir un sumador binario serie capaz de sumar dos números
binarios de n bits?

4.29 Se desea diseñar un circuito con dos entradas X (x7 x6 x5 x4 x3 x2 x1 x0) e Y (y7 y6 y5 y4 y3 y2 y1 y0) 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 señales 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 operación es el número R de
ocho bits.
Para ello se desea usar una señal de control C que seleccione el tipo de operación (comparación o
desplazamiento) y dos señales más d1 d0 para indicar el tipo de operación de desplazamiento. Decir cuál de estas
afirmaciones es verdadera.
I. Se puede realizar usando 2 módulos de memoria ROM de 64 Kpalabras · 8 bits y una puerta lógica NOT.
II. Se puede realizar usando 1 módulo 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 lógica OR.
II. El circuito obtenido en la otra afirmación es más 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 números de dos bits, x1x0 e y1y0 , 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 ⊕ y1 ⊕ (x0y0 + (x0 ⊕ y0 )C-1)


E2 = x1 y1 + (x1 ⊕ y1)(x0y0 + (x0 ⊕ y0 )C-1)

corresponden a:
A) S1 y C1 , respectivamente. B) C1 y S1 , respectivamente.
C) S1 y S0 , 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 número de bits que hay que sumar.
II. Utilizando un sumador binario serie, el tiempo de cálculo crece linealmente con el número de bits que
hay que sumar.

4.33 Decir cuál es el retardo que se obtiene al calcular la suma de dos números de 4 bits cada uno:
I. Si el sumador se ha implementado usando lógica 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 números binarios, uno de 5 bits: X= x4x3x2x1x0 , y otro de 4 bits: Y=y3y2
y1y0. Utilizando comparadores de un bit se compara cada pareja de bits, xi con yi , i=0...3, obteniéndose:
Mi (xi >yi ), Ii (xi =yi ) y mi (xi <yi ). Indicar si las siguientes afirmaciones son verdaderas o falsas:
I. La función lógica M (X>Y) es M = x4 + M3 + I3 M2 + I3I2M1 + I3I2I1M0 .
II. La función lógica I (X=Y) es I = x 4 I 0 I1 I 2 I 3 .

4.35 ¿Cuántos SSB y puertas OR hacen falta para construir un sumador binario paralelo capaz de sumar
números de 8 bits?

4.36 Sean 2 números binarios de 12 bits representados en código BCD: X= 010100011001,


Y= 001101000111. Calcular el resultado de la resta X-Y, expresado en código BCD.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.37 En los diseños indicados en los siguientes apartados, deben utilizarse multiplexores y elementos de
memoria D. Explicar detalladamente cada paso.

A) (1.5 puntos) Diseñar 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 líneas de control; y CK la señal de reloj. El
registro debe ser capaz de realizar los dos desplazamientos siguientes: LICS (Lógico-Izquierda-Cerrado-
Simple) y LDCS (Lógico-Derecha-Cerrado-Simple). Además, el circuito debe permitir la carga en paralelo
de la entrada y mantener la información almacenada sin modificar (no operación: NOP). La codificación de
las entradas de control se muestra en la Tabla 1.

B) (1 punto) Diseñar 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) Diseñar el mismo registro del apartado A) pero de modo que en lugar de realizar
desplazamientos lógicos (LICS y LDCS) realice desplazamientos algebraicos (también llamados aritméticos)
cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico-Derecha-Cerrado -
Simple).

Operación C2 C1
NOP 0 0
LICS 0 1
LDCS 1 0
CARGA 1 1
Tabla 1 : Codificación de las entradas de control

E3 E2 E1 E0 E

C2 C2
Paralelo/Paralelo Serie/Serie
C1 CK C1 CK

S3 S2 S1 S0 S

Figura 1 Figura 2

4.38 En la Tabla inferior se muestra la Tabla de Transición de Estados de un circuito secuencial síncrono con 2
estados (S0 y S1) y dos entradas (x, y). Q es la variable de estado necesaria para la representación de los 2
estados del circuito. El circuito se diseña empleando un elemento de memoria tipo D.

Estado Presente Entrada xy


Q 00 01 10 11
0 0 0 1 0
1 1 0 1 1

Indicar cuál 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

4.39 Sean dos números de 12 bits representados en código BCD: X=100100110101, Y=000101010001. Calcular
el resto de la división entera X / Y, expresado en código binario.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.40 Si al número binario X = 01010001110 le aplicamos la siguiente secuencia de operaciones de


desplazamiento: LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS, ¿cuál es el resultado de la operación?

4.41 Indique cuántos módulos de memoria ROM de 2n palabras × 1 bit/palabra serían necesarios para
diseñar un circuito combinacional que sume un número n bits y otro de 2n bits.

4.42 Dada la siguiente implementación secuencial de un comparador de dos números de n bits sin signo X e Y,
donde éste recibe los bits xi e yi de forma serie, comenzando por los bits menos significativos, los estados S1, S2
y S3 se corresponden con:
00, 11 00, 11, 01
A) S1:x=y, S2:x<y, S3:x>y.
Inicio 01 B) S1:x<y, S2:x>y, S3:x=y.
S1 S2
01
10 10 C) S1:x>y, S2:x<y, S3:x=y.
S3 D) Ninguno de los anteriores.

00, 11, 10

4.43 Dada la siguiente tabla de funciones de una ALU, y suponiendo que se dispone de conexiones a “0” lógico
y a “1” lógico, decir si las siguientes afirmaciones son ciertas:

f1 f2 f3 f4
x⊕ y x⊕ y xy + x y

I. Se pueden implementar simultáneamente todas las funciones usando dos puertas XOR y una puerta
NOT.
II. Se pueden implementar simultáneamente todas las funciones usando una ROM de 4 palabras de 3
bits.

4.44 En la Fig. 1 se muestra el diagrama de bloques de un sumador binario de dos números de 2 bits. Las
entradas al sumador son los dos bits de cada sumando (X=x1x0, Y=y1y0). Las salidas son los dos bits de suma
(s=s1s0) y el bit de arrastre (c1).
A) (0.75 puntos) Obtenga la tabla de la
verdad de las salidas (c1, s1, s0) del
sumador de la Fig. 1 en función de las
y1 x1 y0 x0 y1 x1 y0 x0
entradas (y1, y0, x1, x0).
c1 c1 c −1
B) (1 punto) Obtenga las funciones lógicas
s1 s0 s1 s0 simplificadas de las tres salidas
(c1, s1, s0) del sumador de la Fig. 1 en
Fig. 1 Fig. 2 función de las entradas (y1, y0, x1, x0).
Emplee para ello mapas de Karnaugh.
C) (0.75 puntos) A partir de las funciones lógicas calculadas en el apartado anterior, realizar el sumador
binario de 2 bits mostrado en la Fig. 1 mediante un circuito combinacional de dos niveles (AND-OR).
D) (1.5 puntos) Si al sumador binario de la Fig. 1 se le añade una nueva entrada, “bit de arrastre de la etapa
anterior” (c-1), se obtiene el sumador representado en la Fig. 2. Empleando módulos sumadores como el
mostrado en la Fig.2, multiplexores y puertas lógicas, diseñe una ALU aritmética de 4 bits que realice las
cinco operaciones siguientes sobre dos números A y B de 4 bits: suma (Z=A+B), resta (Z=A-B),
transfiere A (Z=A), incrementa A en 1 (Z=A+1) y decrementa A en 1 (Z=A-1).

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.45 Si al número binario X = 11110001100 le aplicamos la siguiente secuencia de operaciones de


desplazamiento: 5 operaciones LICS seguidas de 12 operaciones LDCS, ¿cuál es el resultado de la operación?

4.46 Se desea realizar una Unidad Aritmético Lógica (UAL) como la mostrada en la figura, con dos entradas de
datos, X (x1x0) e Y(y1y0), que representan números enteros positivos sin signo, una entrada de control C(c1c0) y
una salida de datos R (r3r2r1r0). El funcionamiento de la UAL viene descrito por la Tabla 1.:
Para resolver el problema, seguir obligatoriamente los siguientes apartados:
A) (1 punto) Diseñar un comparador de números de dos bits.
2 2 B) (2 puntos) Diseñar un restador/divisor de dos números de 2 bits
x1x0 y1y0 utilizando únicamente un módulo de memoria ROM. ¿Cuál es el tamaño
necesario para este módulo de memoria ROM? Indique claramente el
c1c0 UAL significado de cada una de sus entradas y cada una de sus salidas.
2 Escriba todo el contenido de la memoria ROM en forma de tabla.
r3 r2 r1 r0
C) (1 punto) Utilizando únicamente los módulos diseñados en los apartados
anteriores, los módulos combinacionales necesarios y puertas lógicas,
diseñe la UAL pedida.

Señal de control Operación


c1c0 = 00 : resta R = X - Y (R=0 si Y>X)
c1c0 = 01 : div. entera R= X/Y (cociente entero) si Y=0 →R=0
c1c0 = 10 : comparación 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

4.47 Se desea diseñar un comparador de 2 números de 2 bits cada uno, A(a1,a0) y B(b1,b0), que genere las salidas
M (= 1 si A > B, = 0 si A = B), m (= 1 si A < B, = 0 si A = B) e I (= 1 si A = B, =0 si A ≠ B), empleando una
memoria ROM y una puerta NOR. Calcular el tamaño mínimo que debe tener la memoria ROM necesaria.

4.48 Se desea diseñar un circuito combinacional, que sea un sumador de 11 números de 1 bit de longitud,
utilizando únicamente módulos SBC. ¿Cuál es el número mínimo de módulos SBC necesarios?.

4.49 Un circuito de comparación secuencial que permita comparar dos números binarios de 8 bits de forma
serie, si se diseña empleando biestables Tipo D. ¿Cuál es el número mínimo de biestables Tipo D necesarios?.

4.50 Indique cuál es el resultado de la suma de los dos números siguientes, X1 y X2, que están expresados en
código BCD. X1 = 001100110001, X 2 = 010101001001.

4.51 Calcular la suma de X=010001100 e Y=111111011, representados en complemento a 1.

4.52 Indique el número mínimo de SBC´s de 1 bit que hacen falta para:
I. Diseñar un circuito combinacional que sea un sumador de 7 números de 1 bit de longitud.
II. Diseñar un circuito combinacional que sea un sumador de 5 números de 2 bits de longitud.

4.53 Sean dos números binarios de 16 bits representados en código BCD: X = 0001100101010100 e Y =
0111100000100101. Obtener el resultado de su suma, representado en código exceso-3.

4.54 ¿Cuántos módulos de memoria ROM de 2n palabras × n bits/palabra serán necesarios para diseñar un
circuito combinacional que eleve al cuadrado un número X de 2n bits?

4.55 Si al número binario X = 111010110010 le aplicamos la siguiente secuencia de operaciones de


desplazamiento: 14 operaciones LDCS seguidas de 2 operaciones LICS, ¿cuál es el resultado de la operación?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.56 En la figura se muestra un circuito lógico con tres entradas (x1, x2, x3) y dos salidas (y1, y2). Indique cuál de
las siguientes afirmaciones acerca de este circuito es correcta.
A) Es un elemento de memoria D.
x1 y1 B) Es un sumador binario completo.
x2 C) Las dos anteriores son correctas.
D) Ninguna de las anteriores es correcta.
x3
y2

4.57 A continuación, se muestra el diagrama de bloques y la tabla de operaciones de una ALU lógica. Tiene dos
entradas de cuatro bits (A=a3a2a1a0, B=b3b2b1b0), una entrada de control de dos bits (C=c1c0) y una salida de
cuatro bits (Z=z3z2z1z0).

A B c1 c0 Operación
00 Z = A⊕ B
C 01
ALU Z = A⊕ B
10 Z = A∧ B
Z 11 Z = A∨ B
Suponiendo que se dispone de conexiones a “0” lógico y a “1” lógico, indique cuál de las siguientes
afirmaciones acerca de esta ALU es correcta.
A) Esta ALU puede sintetizarse empleando únicamente cuatro MUX(4), ocho puertas XOR de dos entradas,
cuatro puertas AND de dos entradas y cuatro puertas OR de dos entradas.
B) Esta ALU puede sintetizarse empleando una ROM de 210 palabras, 4 bits/palabra.
C) Las dos anteriores son correctas.
D) Ninguna de las anteriores.

4.58 En la figura se muestra el diagrama de bloques de un circuito y las expresiones lógicas que permiten
calcular sus salidas a partir de sus entradas.

xi yi

p ci −1

si ci
si = xi ⊕ yi ⊕ ci −1
ci = ci −1 yi + ( xi p + xi p )( yi + ci −1 )
Indique cuál de las afirmaciones siguientes acerca de este circuito es correcta:
A) Cuando p = 0, es un restador binario completo.
B) Cuando p = 1, es un sumador binario completo.
C) Las dos afirmaciones anteriores son correctas.
D) Ninguna de las anteriores es correcta.

4.59 El contenido inicial de un registro de desplazamiento de 4 bits es 0111. Entonces, se realiza una operación
de desplazamiento, tras lo cual el contenido del registro pasa a ser 0110. Señale cuál de las afirmaciones
siguientes es correcta.
A) La operación de desplazamiento podría ser AIAS.
B) La operación de desplazamiento podría ser AICS.
C) Las dos anteriores son correctas.
D) Ninguna de las anteriores.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.60 Conteste a los siguientes apartados:


a) Diseñe un registro de desplazamiento de 4
Q3Q2Q1Q0 Salida paralelo bits como el mostrado en la figura. En la
columna “Operación R-4” de la Tabla 1 se
4
Entrada serie ED muestran las operaciones que debe realizar el
EI Entrada serie
Salida serie SI REGISTRO DE registro y qué codificación de las entradas de
DESPLAZAMIENTO S D Salida serie
Reloj CK control (C2C1C0) corresponde a cada una de
3
C2C1C0 Control estas operaciones. En el diseño deben
4 emplearse multiplexores y elementos de
E3 E2 E1E0 Entrada paralelo memoria D.
a) Diseñe un registro de desplazamiento de 8
C 2 C1C0 Operación R-4 Operación R-8 bits empleando dos registros de 4 bits como
000 NOP NOP el diseñado en el apartado anterior y las
001 LDAS LDAD puertas lógicas necesarias. En la columna
010 LIAS LIAD “Operación R-8” de la Tabla 1 se indica la
011 LDCS LDCD operación que debe realizar el registro de 8
100 LICS LICD bits para cada valor de las entradas de
control.
101 Carga paralelo Carga paralelo
110 NOP NOP
111 NOP NOP
.

4.61 ¿Cuál es la representación en complemento a 2, con una longitud de palabra de 8 bits, de x= -56 10?

4.62 Empleando únicamente una ROM, se pretende diseñar un comparador de dos números de 4 bits que genere
las funciones “mayor que”, “menor que” e “igual que”. Indique cuál de las siguientes ROM podría
emplearse.
A) 24 palabras, 4 bits/palabra
B) 28 palabras, 4 bits/palabra
C) Las dos anteriores
D) Ninguna de las anteriores

4.63 Un multiplicador binario de 2 números de 8 bits cada uno se puede realizar con una memoria ROM de la
siguiente capacidad:
A) 29 palabras × 16 bits/palabra B) 216 palabras × 8 bits/palabra
16
C) 2 palabras × 16 bits/palabra D) 216 palabras × 9 bits/palabra

4.64 Indique cuántos módulos de memoria ROM de 2n palabras × 1 bit/palabra serían necesarios para diseñar un
circuito combinacional que sume un número de n bits y otro de 2n bits.

4.65 Un computador posee un registro índice Ri cuyo contenido en un momento dado es, (Ri)=A01 (expresado
en hexadecimal). El computador tiene una memoria de 4K palabras de 12 bits. Cada palabra de memoria
contiene un valor igual a su dirección desplazada a la izquierda tres posiciones (desplazamiento LICD de tres
posiciones). Por ejemplo: el contenido de la dirección 000 es 000, el de la 001 es 008, el de C03 es 01E, etc,
todos ellos expresados en hexadecimal. La próxima instrucción que va a ejecutar el computador contiene un
operando referenciado a través de un modo de direccionamiento indexado respecto al mencionado registro
índice Ri. Sabiendo que el contenido del campo de dirección de la instrucción es 3AB, indicar cuál es el valor,
en hexadecimal, del operando referenciado:

4.66 Se desea construir un multiplicador binario que multiplique dos números de 8 y 16 bits, respectivamente.
Para ello se utilizarán exclusivamente dos módulos ROM de 64K palabras × 16 bits/palabra y sumadores
binarios paralelos de 8 bits. ¿Cuál es el mínimo número necesario de sumadores de este tipo?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

4.67 Sean dos números binarios de 16 bits representados en código BCD:


X = 0011 1001 0101 0100, Y = 0011 1001 0000 0110.
Calcular el resultado de su suma, representado en código exceso a 3.
4.68 ¿Cuántos módulos de memoria ROM de 2n-1 palabras × 2n bits/palabra serían necesarios para diseñar un
circuito combinacional que multiplique dos números de 2n bits?

4.69 ¿Cuántos sumadores binarios completos de 1 bit (SBCs) harían falta para construir un sumador binario
serie de n bits?
4.70 Sean dos números de 12 bits representados en código BCD: X = 010100011001 e Y = 001101000111.
Determinar el resultado de la resta X – Y expresado en código exceso a 3.

4.71 Indique cuantos módulos de memoria ROM de 22n palabras × 1 bit/palabra serán necesarios para diseñar un
circuito combinacional que sume un número de 2n bits y otro de 4n bits:

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen.

CONTENIDO

SOLUCION PROBLEMA 4.1 ..................................................................................................................... 4


SOLUCION PROBLEMA 4.2 ..................................................................................................................... 4
SOLUCION PROBLEMA 4.3 ..................................................................................................................... 5
SOLUCION PROBLEMA 4.4 ..................................................................................................................... 7
SOLUCION PROBLEMA 4.5 ..................................................................................................................... 7
SOLUCION PROBLEMA 4.6 ..................................................................................................................... 7
SOLUCION PROBLEMA 4.7 ..................................................................................................................... 8
SOLUCION PROBLEMA 4.8 ..................................................................................................................... 8
SOLUCION PROBLEMA 4.9 ..................................................................................................................... 8
SOLUCION PROBLEMA 4.10 ................................................................................................................... 9
SOLUCION PROBLEMA 4.11 ................................................................................................................. 10
SOLUCION PROBLEMA 4.12 ................................................................................................................. 10
SOLUCION PROBLEMA 4.13 ................................................................................................................. 10
SOLUCION PROBLEMA 4.14 ................................................................................................................. 10
SOLUCION PROBLEMA 4.15 ................................................................................................................. 11
SOLUCION PROBLEMA 4.16 ................................................................................................................. 11
SOLUCION PROBLEMA 4.17 ................................................................................................................. 11
SOLUCION PROBLEMA 4.18 ................................................................................................................. 12
SOLUCION PROBLEMA 4.19 ................................................................................................................. 12
SOLUCION PROBLEMA 4.20 ................................................................................................................. 12
SOLUCION PROBLEMA 4.21 ................................................................................................................. 13
SOLUCION PROBLEMA 4.22 ................................................................................................................. 13
SOLUCION PROBLEMA 4.23 ................................................................................................................. 13
SOLUCION PROBLEMA 4.24 ................................................................................................................. 14
SOLUCION PROBLEMA 4.25 ................................................................................................................. 14
SOLUCION PROBLEMA 4.26 ................................................................................................................. 14
SOLUCION PROBLEMA 4.27 ................................................................................................................. 14
SOLUCION PROBLEMA 4.28 ................................................................................................................. 14
SOLUCION PROBLEMA 4.29 ................................................................................................................. 15
SOLUCION PROBLEMA 4.30 ................................................................................................................. 16
SOLUCION PROBLEMA 4.31 ................................................................................................................. 16
SOLUCION PROBLEMA 4.32 ................................................................................................................. 16
SOLUCION PROBLEMA 4.33 ................................................................................................................. 17
SOLUCION PROBLEMA 4.35 ................................................................................................................. 18
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
SOLUCION PROBLEMA 4.42 ................................................................................................................. 21
SOLUCION PROBLEMA 4.43 ................................................................................................................. 22
SOLUCION PROBLEMA 4.44 ................................................................................................................. 23
SOLUCION PROBLEMA 4.45 ................................................................................................................. 23
SOLUCION PROBLEMA 4.46 ................................................................................................................. 23
SOLUCION PROBLEMA 4.47 ................................................................................................................. 24
SOLUCION PROBLEMA 4.48 ................................................................................................................. 24
SOLUCION PROBLEMA 4.49 ................................................................................................................. 26
SOLUCION PROBLEMA 4.50 ................................................................................................................. 26
SOLUCION PROBLEMA 4.51 ................................................................................................................. 26
SOLUCION PROBLEMA 4.52 ................................................................................................................. 27
SOLUCION PROBLEMA 4.53 ................................................................................................................. 29
SOLUCION PROBLEMA 4.54 ................................................................................................................. 29
SOLUCION PROBLEMA 4.55 ................................................................................................................. 30
SOLUCION PROBLEMA 4.56 ................................................................................................................. 31

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen.

SOLUCION PROBLEMA 4.57 ................................................................................................................. 31


SOLUCION PROBLEMA 4.58 ................................................................................................................. 32
SOLUCION PROBLEMA 4.59 ................................................................................................................. 33
SOLUCION PROBLEMA 4.60 ................................................................................................................. 33
SOLUCION PROBLEMA 4.61 ................................................................................................................. 33
SOLUCION PROBLEMA 4.62 ................................................................................................................. 33
SOLUCION PROBLEMA 4.63 ................................................................................................................. 34
SOLUCION PROBLEMA 4.64 ................................................................................................................. 34
SOLUCION PROBLEMA 4.65 ................................................................................................................. 35
SOLUCION PROBLEMA 4.66 ................................................................................................................. 35
SOLUCION PROBLEMA 4.67 ................................................................................................................. 36
SOLUCION PROBLEMA 4.68 ................................................................................................................. 37
SOLUCION PROBLEMA 4.69 ................................................................................................................. 37
SOLUCION PROBLEMA 4.70 ................................................................................................................. 37
SOLUCION PROBLEMA 4.71 ................................................................................................................. 38

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.1


La solución a este problema se encuentra en el fichero probT4_01.pdf.

SOLUCION PROBLEMA 4.2


La solución a este problema se encuentra en el fichero probT4_02.pdf.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.3


a) Para conocer los módulos de ROM necesarios, es necesario darse cuenta que el producto de un
número binario B(b2b1b0) de 3 bits por otro número binario A(A1A0) de 2 bits da como resultado un
número binario P(p4p3p2p1p0) de de 5 bits.

b2 b1 b0
x a1 a0
• • •
• • •
p4 p3 p2 p1 p0

Por lo tanto en la ROM se deben almacenar todos los resultados posibles que pueden resultar al
multiplicar un número de 3 bits por otro de 2 bits. El número de resultados posibles es 25. Por otro
lado ya se ha visto que el resultado debe de tener 5 bits. Luego se necesitaría un módulo ROM de
capacidad

C=25 pal x 5 bits/pal

Ahora bien los módulos de ROM de que se disponen tienen una capacidad de 2 4 pal x 4 bits/pal.
Luego para conseguir almacenar 25 (32) resultados necesitamos 2 módulos de este tipo (24 + 24)
Por otro lado como cada resultado tiene 5 bits necesitamos otros dos módulos: en uno se almacenará
el bit más significativo (p4) de cada resultado quedando tres bits (r2r1r0) sin utilizar (x) y en el otro los
cuatro bits restantes (p3p2p1p0).
Luego el número de módulos necesarios es 4. El esquema sería :
b1 b0 a1 a0

4
Módulo 1 Módulo 2

p3 p2 p1 p0
ROM ROM
4 16x4 4 4 16x4 4
CS CS

p4
p4 p3 p2 p1 p0

Módulo 3 Módulo 4

p3 p2 p1 p0
ROM ROM
4 16x4 4 4 16x4 4
CS CS

b2 b2
p4

Comentar que con el bit b2 se selecciona el par de módulos donde se encuentra almacenado el
resultado. Y con los bits b1b0a1a0 ya se determina la posición de ROM que se va a leer.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

b) A continuación se muestran la tablas de los contenidos de cada uno de los módulos.

Dirección Contenidos de los módulos ROM


b2 b1 b0 a 1 a0 r2 r1 r0 p4 p3 p2 p1 p0
0 0 0 0 0 x x x 0 0 0 0 0
0 0 0 0 1 x x x 0 0 0 0 0
0 0 0 1 0 x x x 0 0 0 0 0
0 0 0 1 1 x x x 0 0 0 0 0
0 0 1 0 0 x x x 0 0 0 0 0
0 0 1 0 1 x x x 0 0 0 0 1
0 0 1 1 0 x x x 0 0 0 1 0
0 0 1 1 1 x x x 0 0 0 1 1
0 1 0 0 0 x x x 0 0 0 0 0
0 1 0 0 1 x x x 0 0 0 1 0
0 1 0 1 0 x x x 0 0 1 0 0
0 1 0 1 1 x x x 0 0 1 1 0
0 1 1 0 0 x x x 0 0 0 0 0
0 1 1 0 1 x x x 0 0 0 1 1
0 1 1 1 0 x x x 0 0 1 1 0
0 1 1 1 1 x x x 0 1 0 0 1
Módulo 1 Módulo 2
1 0 0 0 0 x x x 0 0 0 0 0
1 0 0 0 1 x x x 0 0 1 0 0
1 0 0 1 0 x x x 0 1 0 0 0
1 0 0 1 1 x x x 0 0 1 1 0
1 0 1 0 0 x x x 0 0 0 0 0
1 0 1 0 1 x x x 0 0 1 0 1
1 0 1 1 0 x x x 0 1 0 1 0
1 0 1 1 1 x x x 0 1 1 1 1
1 1 0 0 0 x x x 0 0 0 0 0
1 1 0 0 1 x x x 0 0 1 1 0
1 1 0 1 0 x x x 0 1 1 0 0
1 1 0 1 1 x x x 1 0 0 1 0
1 1 1 0 0 x x x 0 0 0 0 0
1 1 1 0 1 x x x 0 0 1 1 1
1 1 1 1 0 x x x 0 1 1 1 0
1 1 1 1 1 x x x 1 0 1 0 1
Módulo 3 Módulo 4

c) El aprovechamiento de la memoria vendrá dado por:

bits utilizados 2 5 x5 25 ·5 5
R= ⋅100 = 4
·100 = 8
·100 = ·100 = 62.5%
bits totales 4·(2 x 4) 2 8
Una forma de mejorar el aprovechamiento sería fijarse en la tabla de contenidos de cada uno de los 4
módulos del apartado b). En ella se observa que sólo en dos casos el bit p4 es 1, y son cuando se
multiplica 6x3=18 y cuando se multiplica 7 x 3=21. La función lógica del bit p4 es:
p4 = b2 b1b0 a1a0 + b2 b1b0 a1a0 = b2 b1a1a0

Que puede generarse fácilmente con una puerta AND. Con lo que sólo se necesitarían 2 módulos de
ROM con un aprovechamiento R=100 %.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.4


DATOS
Dos números X e Y de 12 bits representados en binario puro:
X= 0000 1100 0010
Y= 0001 0111 0001

Para calcular la suma en BCD de estos dos números 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 números 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 → SBCD= 0101 0110 0011

SOLUCION PROBLEMA 4.5


El producto P [p2n-1,...., p0] de dos números binarios X (xn-1,...,x0) e Y(yn-1,...,y0) 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,yn-1,...,y0), para direccionar 2n posibles
productos P con que tendrán un tamaño de 2n bits [p2n-1,...., p0] cada uno. Es decir, la capacidad de
memoria necesaria es:

C=22n palabras x 2n bits/palabra

Puesto que se tienen módulos de capacidad C0=2n palabras x n bits/palabra, el número N de módulos de
capacidad C0 a utiliza sería:

CT 2 2 n 2n
N= = n × = 2 n × 2 = 2 n +1 módulos
C0 2 n

SOLUCION PROBLEMA 4.6


En el libro de teoría se explica que cuando se implementa un multiplicador binario mediante el algoritmo
de lápiz y papel, para dos números X de n bits e Y de m bits, con n>m, se requieren n·m puertas AND y
n·(m-1) sumadores binarios completos (SBC). Puesto que nos dicen en el enunciado que hay que
multiplicar dos números de n=m 8 bits . Entonces el número de puertas AND necesarias será 8·8= 64
puertas AND.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.7


Del libro de teoría se comprueba en un sumador binario completo SBC que las expresiones para el bit de
suma si y para el bit de acarreo ci, vienen dado por las siguientes expresiones:

si = xi ⊕ yi ⊕ ci −1
ci = xi yi + ( xi ⊕ yi )ci −1

Para el caso i=1 se obtiene:


s1 = x1 ⊕ y1 ⊕ c0
c1 = x1 y1 + ( x1 ⊕ y1 )c0

Mientras que para el caso i=0 se obtiene

s 0 = x0 ⊕ y 0 ⊕ c −1
c1 = x0 y 0 + ( x0 ⊕ y 0 )c −1

SOLUCION PROBLEMA 4.8


Afirmación I: Se tienen dos números de n=4 bits y m= 3 bits, luego el módulo de memoria ROM que se
necesitaría tendría una capacidad de

C=2n+m palabras x (n+m) bits/palabra

Es decir, C= 27 palabras x 7 bits/palabras, luego la afirmación I es verdadera.

Afirmación II: Por el mismo razonamiento de la solución del problema 4.6, se necesitarían n·m=4·3= 12
puertas AND y (n·(m-1))=(4·(3-1))= 8 sumadores binarios completos. Luego la afirmación II es
verdadera.

SOLUCION PROBLEMA 4.9


De acuerdo con lo explicado en el libro de teoría sobre las características de un sumador binario serie.

Afirmación I: El tiempo de calculo para sumar dos números 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 número de bits n a sumar. Por lo tanto, la afirmación es Falsa.

Afirmación II: La estructura (complejidad) de un sumador binario serie es siempre la misma,


independientemente del número de bits a sumar. Luego la afirmación es Falsa.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.10


DATOS
Multiplicador binario X·Y
X de 3 bits, Y de 6 bits
Representados en binario puro sin signo
Utilizando:
2 memorias ROM de 64 palabras x 6 bits/palabra.
2 sumadores binarios paralelos de 3 bits cada uno.

a) Sea el número de 6 bits Y(y5y4y3y2y1y0) y el número de 3 bits X(x2x1x0) el producto de ambos


números es un número de 9 bits P(p8p7p6p5p4p3p2p1p0). La multiplicación se puede representar
esquemáticamente como se muestra a continuación.

y5 y4 y3 y2 y1 y0
x x2 x1 x0
# # # • • •
# # # • • •
# # # • • •
p05 p04 p03 p02 p01 p00
p15 p14 p13 p12 p11 p10
p8 p7 p6 p5 p4 p3 p2 p1 p0

Si se denota como Y1a (y5y4y3) y como Y0 a(y2y1y0), 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=(p05 p04 p03 p02 p01 p00).

- Con otra ROM (ROM2) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario
de

Y1 x X=(p15 p14 p13 p12 p11 p10).

- Los bits p2 p1 p0 del producto final son directamente: p02 p01 p00

- Los bits p5 p4 p3 del producto final son la suma de (p05 p04 p03)+ (p12 p11 p10), y además se generará un bit
de acarreo de salida. Para implementar esta operación se necesita un sumador binario paralelo de 3 bits
(sumador 1).

- Los bits p8 p7 p6 del producto final son la suma de (p15 p14 p13)+ (0 0 0)+ acarreo de salida del sumador 1,
y además se generará un bit de acarreo de salida. Para implementar esta operación se necesita un sumador
binario paralelo de 3 bits (sumador 2).

-Luego el diseño del sumador con los elementos propuestos es el que se muestra en la figura

Y0 p2 p1 p0
ROM 1 0
26 x 6
X p05 p04 p03

p12 p11 p10 Σ p5 p4 p3

Y1
ROM 1
26 x 6
X p15 p14 p13

Σ p8 p7 p6

000

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución 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 teoría(ver problema 4.7):
Afirmación I: Falsa.
Afirmación II: Verdadera.

SOLUCION PROBLEMA 4.12


La solución 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 teoría para un comparador de números
de tamaño n>1 implementado mediante un circuito combinacional:

M = M n −1 + I n −1M n − 2 + ... + I n −1 I n − 2 ..I1M 0


I = I n −1 I n − 2 ...I1 I 0
m = mn −1 + I n −1mn − 2 + ... + I n −1 I n − 2 ..I1m0

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 I1 I 0
m = m3 + I 3 m2 + I 3 I 2 m1 + I 3 I 2 I 1 m0

Por lo tanto:

Afirmación I: Falsa
Afirmación II: Falsa

SOLUCION PROBLEMA 4.14


De acuerdo con las expresiones generales deducidas en el libro de teoría para el semisumador binario
SSB de dos números binarios de un bit., x e y

s = x y + xy = x ⊕ y
c = xy

Por lo tanto:
Afirmación I: Desarrollando la expresión lógica dada en el enunciado s=

s = ( x + y ) xy = ( x + y )( x + y ) = xx + x y + yy + xy = x y + xy = x ⊕ y
Luego la afirmación es verdadera.

Afirmación II: Falsa

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.15


DATOS
Dos números binarios de 12 bits representados en código BCD
XBCD= 0101 1000 1001 Y BCD= 0011 0100 0111

El método más rápido 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 solución a este problema se encuentra en el fichero probT4_16.pdf.

SOLUCION PROBLEMA 4.17


El número de secuencias de arrastre viene dada por el número de veces que el bit xi=yi=1, en la figura se
puede apreciar que se generarán 3 secuencias de arrastre:

100 1010 1001 0011


+
001 0101 1010 1011

Por otro lado dichas secuencias de arrastre se propagarán hasta que xi=yi=0. En la Figura inferior se
puede observar como la longitud máxima de las secuencias de arrastre es 6.

6 2

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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.18


Para expresar la suma de un número binario X=[X7 X6 X5 X4 X3 X2 X1 X0] de 8 bits y de otro número
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 más 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 = 212 palabras x 9 (bits / palabra)

El bus de direcciones tendrá 12 bits con el siguiente significado: [X 7 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


Afirmación I
Si se quiere implementar con una ROM un multiplicador binario de dos números 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 X·Y, en general, el producto P de un número 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 afirmación I, es FALSA.

Afirmación II:
En el libro de teoría se explica que cuando se implementa un multiplicador binario mediante el algoritmo
de lápiz y papel, para dos números X de n bits e Y de m bits, con n>m, se requieren n·m puertas AND y
n·(m-1) sumadores binarios completos (SBC).
En nuestro caso n=3, m=2, se requerirían 3·2= 6 puertas AND y 3(2-1)= 3 SBC

Luego la afirmación II, es VERDADERA.

SOLUCION PROBLEMA 4.20


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

CT = 2 ( 24+16) x ( 24 + 16) = 2 40 palabras x 40 bits / palabra

Afirmación I: La capacidad total de los módulos ROM disponible es C=4·(28 x 16). Como C<CT, la
afirmación es FALSA.

Afirmación II: La capacidad total de los módulos ROM disponible es C=6·(28 x 16) s. Como C<CT, la
afirmación es FALSA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.21


En el libro de teoría se explica que cuando se implementa un multiplicador binario mediante el algoritmo
de lápiz y papel, para dos números X de n bits e Y de m bits, con n>m, se requieren n·m puertas AND y
n·(m-1) sumadores binarios completos (SBC).
En nuestro caso n=4, m=4, se requerirían 4·4= 16 puertas AND y 4(4-1)= 12 SBC

Afirmación I : Puesto que un sumador binario con aceleración de arrastre de 4 bits es equivalente a 4
SBC. Se tendrían 4+8 =12 SBC, que junto con las 16 puertas AND disponibles permiten construir el
multiplicador binario pedido. VERDADERA.

Afirmación II: Es FALSA, ya que sólo nos dan 8 SBC, faltarían 4, y no nos dan las 16 puertas AND
necesarias.

SOLUCION PROBLEMA 4.22


De acuerdo con la sección 4.2.2 del libro de teoría dedicada a los sumadores con anticipación de arrastre,
la expresión general del bit de arrastre de la etapa ci , en función de los bits de propagación de arrastre (pi,
pi-1,...,p0) y de los bits de generación de arrastre (g i, gi-1,...,g0), es:

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

La expresión que dan en el enunciado es:

g 2 + p 2 g1 + p 2 p1 g 0 + p 2 p1 p0 c −1

que de acuerdo con la expresión 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 [y3y2y1y0]. Y una entrada adicional M de 1 bit para indicar si la operación es de suma o de resta.
Luego el número 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 número total de bits de salida del circuito es 5.

La tabla de verdad o tabla de funcionamiento del circuito constaría 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
mínima :

CT= 29 palabras x 5 bits/palabra


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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.24


DATOS
Dos números binarios de 16 bits representados en código BCD
XBCD=0011 1001 0101 0100 Y BCD= 0011 1001 0000 0110

El método más rápido 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 3y2y1y0]. Luego el número 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
número total de bits de salida del circuito es 2.

La tabla de verdad o tabla de funcionamiento del circuito constaría 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
mínima :

CT= 27 palabras x 2 bits/palabra


Afirmación I: VERDADERA. La capacidad de la ROM es superior a CT.
Afirmación II: VERDADERA. La capacidad de la ROM es superior a CT.

SOLUCION PROBLEMA 4.26


La solución a este problema se encuentra en el fichero probT4_26.pdf.

SOLUCION PROBLEMA 4.27


La expresión lógica ( 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 expresión lógica 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 teoría sobre las características de un sumador binario
serie, este dispositivo solamente requiere de 1 SBC de 1bit.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución 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.
Además el circuito tiene 5 entradas de 1 bit, C, ed, eI, d1 y d0. Luego el número 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 número total
de bits de salida del circuito es 8.

La tabla de verdad o tabla de funcionamiento del circuito constaría 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
mínima :

CT= 221 palabras x 8 bits/palabra

Afirmación I: La memoria total entre las dos ROM propuestas en la afirmación es C=217 palabras x8
bits/palabra. Por lo que podría pensarse que esta afirmación 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 lógica NOT :

Comparador : Tiene 2 entradas de 8 bits cada una para los operandos X e Y.. Luego el número 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 número total
de bits de salida del circuito es 8.
La tabla de verdad o tabla de funcionamiento del circuito comparador constaría 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 mínima :

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 d0 Luego el
número 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 número total
de bits de salida del circuito es 8.
La tabla de verdad o tabla de funcionamiento del circuito comparador constaría 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 mínima :

C= 212 palabras x 8 bits/palabra


Y

8 ROM
X 216x8 8
8 H

ed 1 R
ei 1
ROM
d1 1 216x8 8 8
d2 1
H

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

Con el inversor se utiliza para habilitar uno de los dos módulos de memoria ROM, de acuerdo con el
valor de la señal C=1(Comparador) y C=0 (Desplazador). Se tiene por tanto el esquema que se muestra
en la Figura

La afirmación I es VERDADERA

Afirmación II: La memoria total de la ROM que proponen es inferior a CT, luego la afirmación es
FALSA.

SOLUCION PROBLEMA 4.30


De acuerdo con lo que se explica en el libro de teoría sobre las características de un sumador binario
completo SBC, este se puede construir de al menos dos modos:
1) Se puede construir con dos niveles de puertas lógicas, un nivel de puertas AND y un nivel de
puertas OR.
2) También, se puede construir con 2 SSB y una puerta OR.

Afirmación I: VERDADERA.
Afirmación II: VERDADERA. Ya que si se construye del modo1, puesto que un SSB requiere de dos
niveles de puertas AND-OR, habría que atravesar un total de 4 niveles como máximo, el retardo sería
mayor que si se construye el SBC del modo 2.

SOLUCION PROBLEMA 4.31


En el libro de teoría 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
E 2 = 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 teoría sobre las características de un sumador binario serie
(ver Problema 4.9)

Afirmación I: FALSA. Ya que la complejidad de un sumador binario serie es siempre la misma


independientemente del número de bits que tenga que sumar.

Afirmación II: VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 16


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.33


Afirmación I: Si se usa lógica combinacional de dos niveles y cada puerta tiene un retardo de 5 µs, el
retardo total es t=2·5=10 µs. La afirmación es FALSA

Afirmación II: En un sumador binario paralelo (sumador con propagación de arrastre), en el caso más
desfavorable el resultado no será efectivo hasta que no haya pasado un tiempo t=n·δ, donde n es el
número de bits y δ es el tiempo que tarda un SBC en generar el arrastre para la etapa siguiente. Según el
enunciado n=4 bits y δ=10 µs, luego t=40 µs. La afirmación es VERDADERA..

SOLUCION PROBLEMA 4.34


De acuerdo con las expresiones generales deducidas en el libro de teoría para un comparador de números
de tamaño n>1 implementado mediante un circuito combinacional:

M = M n −1 + I n −1M n − 2 + ... + I n −1 I n − 2 ..I1M 0


I = I n −1 I n − 2 ...I1 I 0
m = mn −1 + I n −1mn − 2 + ... + I n −1 I n − 2 ..I1m0

En el caso que se propone n=5, ya que el número Y de cuatro bits se puede considerar que tiene 5 bits
suponiendo y4=0, luego

M = M 4 + I 4 M 3 + I 4 I 3 M 2 + I 4 I 3 I 2 M 1 + I 4 I 3 I 2 I1M 0
I = I 4 I 3 I 2 I1 I 0

Puesto que M4 e I4 son:

M 4 = x4 y 4
I 4 = x4 y 4 + x4 y 4

y además y4=0, entonces:

M 4 = x4
I 4 = x4

Luego

M = x4 + x4 M 3 + x4 I 3 M 2 + x4 I 3 I 2 M 1 + x4 I 3 I 2 I1 M 0
I = x4 I 3 I 2 I1 I 0

En la expresión de M, x 4 = 1 , por lo tanto se llega

M = x4 + M 3 + I 3 M 2 + I 3 I 2 M 1 + I 3 I 2 I1 M 0
I = x4 I 3 I 2 I1 I 0

Afirmación I: Verdadera
Afirmación II: Verdadera

Jose Manuel Díaz Tutor de ETC2 (Coslada) 17


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.35


Puesto que un sumador binario paralelo de números 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 requeriría 2·8=16
SSB y 1·8=8 puertas OR.

SOLUCION PROBLEMA 4.36


DATOS
Dos números binarios de 12 bits representados en código BCD
XBCD= 0101 0001 1001 Y BCD= 0011 0100 0111
XBCB- YBCD expresado en código BCD?

El método más rápido 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 = 519 10
YBCD= 0011 0100 0111 = 347 10

La resta XBCD - YBCD= 17210 que expresada en código BCD resulta 0001 0111 0010.

SOLUCION PROBLEMA 4.37


La solución a este problema se encuentra en el fichero probT4_37.pdf.

SOLUCION PROBLEMA 4.38


DATOS
Circuito secuencial síncrono con dos estados (S 0, S1).y con dos entradas (x,y)
Q es la variable de estado, que puede tomar los valores 0 para referirse al estado S0 y 1 para
referirse al estado S1.
El circuito se diseña utilizando un elemento de memoria de tipo D.

FORMA 1:
La forma más 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) De la Tabla Solución A Solución B Solución C


D(t) D (t ) = Q · x· y + Q · x · y D (t ) = Q ( y + x ) + · x · y D (t ) = Q · x · y
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 1 1 1 0
0 1 1 0 0 0 0
1 0 0 1 1 1 0
1 0 1 0 1 0 0
1 1 0 1 0 1 1
1 1 1 1 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).

Jose Manuel Díaz Tutor de ETC2 (Coslada) 18


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

Una misma función lógica puede expresarse de múltiples maneras, todas ellas equivalentes entre sí.
Como se deduce a continuación, en este caso la solución B) coincide con la expresión simplificada de la
función de entrada al elemento de memoria, D(t)=Q(t+1).

FORMA 2:

Otra forma alternativa de hacer este problema es obteniendo la función lógica D(t) a partir del método de
reducción de Karnough. tal y como se muestra en la siguiente figura:

Q \ xy 00 01 11 10

0 0 0 0 1

1 1 0 1 1

Luego la expresión simplificada obtenida con este método es:

D(t ) = Q· y + Q·x + x· y = Q·( y + x) + x· y

¡¡Atención!!: El que la expresión simplificada obtenida por el método de Karnough sea igual a la
expresión B) es condición suficiente para afirmar que la solución correcta es la B), sin embargo no es una
condición necesaria, ya que al plantear el enunciado del ejercicio, podría haberse sustituido la expresión
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 + Q·x + x· y

SOLUCION PROBLEMA 4.39


DATOS
Dos números binarios de 12 bits representados en código BCD
XBCD= 1001 0011 0101 Y BCD= 0001 0101 0001
Resto división entera XBCB/YBCD expresado en binario?

El método más rápido 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 = 935 10
YBCD= 0001 0101 0001 = 151 10

El resto de la división entera XBCD/YBCD= 02910 que expresado en binario resulta 0000 0001 1101.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 19


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.40


DATOS
X= 010 1000 1110
Secuencia de desplazamiento LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS,

Con la notación LICS se está haciendo referencia a un desplazamiento de un bit, de tipo Lógico, 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 notación LDCS se está haciendo referencia a un desplazamiento de un bit, de tipo
Lógico, 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 aplicación 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 realización de una único desplazamiento LDCS (X). Es decir, el resultado es:

LDCS(X)= 001 0100 0111

SOLUCION PROBLEMA 4.41


DATOS
C0= 2n palabras x 1bit/palabra
Implementación de un sumador de dos números de n bits y 2n bits

La suma de un número X de n bits (Xn-1, Xn-2,...,X0) y de un número Y de 2n bits (Y2n-1, Y2n-2,..., Y0), da
como resultado un número R de 2n bits (R2n-1, R2n-2,..., R0)además 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 3n pal × (2n + 1)(bits / pal )

Luego el número de módulos N de capacidad C0 que se requieren para implementar una memoria de
capacidad CT es:
CT 2 3n pal 2n + 1 (bits / pal )
N= = n x = 2 2 n × (2n + 1) módulos
C0 2 pal 1 (bits / pal )

Jose Manuel Díaz Tutor de ETC2 (Coslada) 20


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.42


DATOS
Comparador secuencial de dos números X e Y de n bits sin signo.
Los bits se reciben de forma serie empezando por los menos significativos

Sean dos números de n bits sin signo X =[xn-1, xn-2,...,x0] eY =[yn-1, yn-2,...,y0], los bits menos
significativos son los x0 e y0 y los más significativos son los xn-1 e yn-1.

Puesto que se trata de un comparador secuencial al comparar el bits xi con el yi existirán tres posibles
estados, en función del resultado de la comparación

SI (Igual) al que se entra si xi=yi, es decir, xiyi=00, 11


SM (Mayor) al que se entra si xi>yi, es decir, xiyi=10
Sm (menor) al que se entra si xi<yi, es decir, xiyi=01

La comparación se realiza siguiendo los siguientes pasos:


1) Se compara x0 con yo, del resultado de la comparación se entrará en alguno de los tres
estados SI, SM o Sm.
2) Se compara x1 con y1, se pueden producir las siguientes transiciones de estado:
2.1) Si se está en el estado SI (Igual)en función del resultado de la comparación de
x1 con y1 el próximo estado será:
• SI si x1=y1, es decir se tiene x1y1=11 o 00. Se permanece en el mismo
estado.
• SM si x1>y1, es decir se tiene x1y1=10.
• Sm si x1<y1, es decir se tiene x1y1=01.

2.2) Si se está en el estado SM (Mayor) en función del resultado de la comparación


de x1 con y1 el próximo estado será:
• SM si x1= y1 o x1>y1, es decir se tiene x1y1=00,11 o10. Se permanece en el
mismo estado.
• Sm si x1<y1, es decir se tiene x1y1=01.

2.3) Si se está en el estado Sm (Menor) en función del resultado de la comparación


de x1 con y1 el próximo estado será:
• Sm si x1= y1 o x1<y1, es decir se tiene x1y1=00,11 o 01. Se permanece en el
mismo estado.
• SM si x1>y1, es decir se tiene x1y1=10.

3) Se repite el paso 2) para los bits i=2,...,n-1

Se puede observar que al comenzar la comparación por los bits menos significativos de X e Y solamente
se tendrá un resultado final al llegar al bit más significativo. Es decir, es necesario comparar los n bits de
cada número.

00, 11 00, 11, 01


Si se observa la figura, de acuerdo con los que se acaba de
Inicio 01 explicar, es posible asociar a que estados {SI, SM, Sm} se
S1 S2 corresponden los estados {S1, S2, S3}. Se obtiene que:
01 S1 =SI
10 10 S2 =Sm
S3 S3 = SM.
Luego la respuesta correcta es la A).

00, 11, 10

Jose Manuel Díaz Tutor de ETC2 (Coslada) 21


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.43


DATOS
Se dispone de conexiones a “0” lógico y a “1” lógico.

Lo primero que hay que hacer es estudiar las cuatro funciones que piden implementar:

f1= x ⊕ y = x y + xy
f1 es la función XOR.

f2= x ⊕ y
f2 es la función XOR complementada.

f3= xy + x = x·( y + 1) = x
f3 es simplemente la entrada x.

F4= y
f4 es simplemente el complemento de la entrada y.

Afirmación I: Nos dan dos puertas XOR y una puerta NOT para implementar las cuatro funciones. Con
una puerta XOR se implementa la función f1, conectando la salida de esta puerta a una puerta NOT se
obtiene f2. La función f3 es la entrada x. Finalmente la función f4 se obtiene con otra puerta XOR cuyas
entradas deben ser una señal “1” lógico y la entrada y. Se tendría el circuito que se muestra en la figura.
En conclusión, esta afirmación es VERDADERA.
f3

x
f1
y

f2

f4
1

Afirmación II: Nos dan una ROM de capacidad CT =4 palabras x 3 (bits/palabras). Con esta ROM es
posible implementar un circuito digital que posea 2 entradas y 3 salidas. En este problemas las entradas
son x e y, además sólo hay que generar tres salidas: f1, f2 y f4, ya que f3 es la entrada x. Se tendría el
esquema de la figura adjunta. En conclusión, esta afirmación es VERDADERA.

Bus de direcciones (2 bits) Bus de datos (3 bits)


x f1
f2
y ROM f4
4 pal x 3 bits/pal

f3

Jose Manuel Díaz Tutor de ETC2 (Coslada) 22


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.44


La solución a este problema se encuentra en el fichero probT4_44.pdf.

SOLUCION PROBLEMA 4.45


DATOS
X= 111 1000 1100
A X se le aplican 5 operaciones LICS seguidas de 12 operaciones LDCS

Con la notación LICS se está haciendo referencia a un desplazamiento de un bit, de tipo Lógico, hacia la
Izquierda, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LICS(X)= 111 0001 1001

Mientras que con la notación LDCS se está haciendo referencia a un desplazamiento de un bit, de tipo
Lógico, hacia la Derecha, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se
obtiene:

LDCS(X)= 011 1100 0110

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

LICS(LDCS(X))= 111 1000 1100=X

Se observa que la aplicación de un desplazamiento LICS seguido por un desplazamiento LDCS se


cancelan y se sigue manteniendo X. En consecuencia, es equivalente aplicar 5 operaciones LICS seguidas
de 12 operaciones LDCS, que aplicar únicamente 7 operaciones LDCS. Luego para resolver el problema
bastará con aplicar 7 operaciones LDCS sobre X. A continuación se muestran los resultados parciales que
se obtienen al aplicar el operador LDCS sobre X:

X= 111 1000 1100


LDCS(X)= 011 1100 0110
LDCS2(X)= 001 1110 0011
LDCS3(X)= 100 1111 0001
LDCS4(X)= 110 0111 1000
LDCS5(X)= 011 0011 1100
LDCS6(X)= 001 1001 1110
LDCS7(X)= 000 1100 1111

Luego el resultado final es 000 1100 1111

SOLUCION PROBLEMA 4.46


La solución a este problema se encuentra en el fichero probT4_46.pdf.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 23


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.47


DATOS
Comparador de dos números binarios A(a1,a0) y B(b1,b0)
Salidas del comparador M, I y m.
Implementar con una ROM y una puerta NOR

En principio cualquier circuito digital puede ser implementado con una memoria ROM. La capacidad
total CT de dicha ROM vendría dada por la expresión:

CT= 2Nº de entradas (palabras) x (Nº de salidas) (bits/palabras)

El comparador descrito en el enunciado posee 4 entradas (a1 a0 b1 b0) y 3 salidas (M, I,m). Pero del libro
de teoría se sabe que la salida I está relacionada con las salidas M y m a través de la siguiente función
lógica:

I =M +m

Es decir, I se puede obtener como la salida de una puerta NOR cuyas entradas sean M y m. Luego en
realidad en la ROM sólo hay que almacenar los posibles valores de 2 salidas M y N, ya que en el
enunciado nos proporcionan una puerta NOR. Luego la capacidad mínima de la ROM necesaria es:

CT= 24 (palabras) x 2 (bits/palabras)

SOLUCION PROBLEMA 4.48


DATOS
Circuito combinacional
Sumador de 11 números binarios de 1 bit cada uno
Implementarlo con módulos SBC
Nota: Este problema es similar al problema 4.13 del libro de problemas de la asignatura.

De forma general un Sumador Binario Completo (SBC) posee tres entradas de 1 bit cada una (sumando
xi, sumando yi, sumando zi) y dos salidas de un bit cada una (acarreo ci, suma si). El funcionamiento de
un SBC en notación de puntos (cada punto representa 1 bit) sería (esquema de la izquierda):

Notación de puntos Significado de cada punto

xi
yi
zi
ci si

Se desean sumar 11 números binarios de 1 bit cada uno. Denotemos a estos números de la siguiente
forma: x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10. Como máximo la suma de estos números daría 11 (1011),
luego el resultado de la suma se debe expresar con tres bits S3S2S1S0. La suma de estos 11 números en
notación de puntos se expresaría de la siguiente forma:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 24


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

Notación de puntos Significado de cada punto


x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10

La resolución de esta operación usando SBCs genera el siguiente diagrama de puntos:

Notación de puntos Significado de cada punto


x0 SBC 1
x1
x2
x3 SBC 2
x4
x5
x6 SBC 3
x7
x8
x9
x10

SBC 5 c1 s1 SBC 4
c2 s2
c3 s3
x9
x10
c4 s4 SBC 6
c5 s5
x9
x10

SBC 7 c6 s6
c4
c5 s5

SBC 8 c7 s7 s6
c5

c8 s8 s7 s6

S3 S2 S1 S0

Luego se requieren cómo mínimo 8 SBCs para diseñar un circuito combinacional que sea un sumador de
11 números de 1 bit de longitud.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 25


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.49


DATOS
Circuito de comparación secuencial de 2 números binarios de 8 bits de forma serie.
Se implementa con biestables tipo D.

De acuerdo con el libro de teoría un comparador secuencial se puede define mediante tres estados:
Mayor, Igual o Menor. Asimismo se necesitan 3≤2n =>n=2 variables de estado (Q1, Q0) para codificar
estos tres estados. Luego habrá que asociar un biestable tipo D para almacenar cada variable. En
consecuencia el número mínimo de biestables tipo D necesarios es 2.

SOLUCION PROBLEMA 4.50


DATOS
XBCD=0011 0011 0001
YBCD=0101 0100 1001
Suma expresada en BCD?

En primer lugar hay que expresar ambos números en decimal, lo cual es sencillo al estar expresados en
BCD: X10=331 y Y10=549.

En segundo lugar se suman S10= X10+Y10=880

Y finalmente se pasa la suma a BCD: SBCD=1000 1000 0000

SOLUCION PROBLEMA 4.51


DATOS
XC1=0 1000 1100
YC1=1 1111 1011
Calcular su suma.

Esta pregunta se puede resolver de varias formas, pero como lo que interesa es el resultado de la
operación, un método sencillo es pasar los dos números de complemento a 1 a decimal, realizar la
operación en decimal y, final mente, convertir de nuevo el resultado a complemento a 1. En complemento
a 1, la representación de un número negativo se obtiene invirtiendo los bits en su representación binaria;
esto es, los 0’s se cambian por 1’s y los 1’s por 0’s. El bit situado más a la izquierda indica el signo del
número, que es 0 si el número es positivo y 1 si es negativo.

XC1 = 010001100 ⇒ X10 = 140


YC1 = 111111011 ⇒ Y10 = -4
X+Y = 13610 ⇒ X+Y = 010001000

Otra forma de resolverlo es sumar los dos números y el acarreo volverlo a sumar, puesto que en este caso
los dos números X e Y tienen distinto signo [Véase el Problema 4.6].

Finalmente, otra forma de resolverlo es:


1) Complementar XC1 => X C1 = 101110011
2) Complementar YC1 => YC1 = 000000100
3) Sumar X C1 y YC1 => X C1 + YC1 = 101110111

4) Complementar la suma: X C1 + YC1 = 010001000

Jose Manuel Díaz Tutor de ETC2 (Coslada) 26


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.52


DATOS
Circuito combinacional
I) Sumador de 7 números binarios de 1 bit cada uno
II) Sumador de 5 números binarios de 2 bit cada uno
Implementarlo con módulos SBC de 1 bit
Nota: Este problema es similar al problema 4.13 del libro de problemas de la asignatura.

De forma general un Sumador Binario Completo (SBC) posee tres entradas de 1 bit cada una (sumando
xi, sumando yi, sumando zi) y dos salidas de un bit cada una (acarreo ci, suma si). El funcionamiento de
un SBC en notación de puntos (cada punto representa 1 bit) sería (esquema de la izquierda):

Notación de puntos Significado de cada punto

xi
yi
zi
ci si

I) Se desean sumar 7 números binarios de 1 bit cada uno. Denotemos a estos números de la siguiente
forma: x0, x1, x2, x3, x4, x5, x6. Como máximo la suma de estos números daría 7 (111), luego el resultado
de la suma se debe expresar con tres bits S2S1S0. La suma de estos 7 números en notación de puntos se
expresaría de la siguiente forma:

Notación de puntos Significado de cada punto


x0
x1
x2
x3
x4
x5
x6

La resolución de esta operación usando SBCs genera el siguiente diagrama de puntos:

Notación de puntos Significado de cada punto


x0 SBC 1
x1
x2
x3 SBC 2
x4
x5
x6

c1 s1 SBC 3
c2 s2
x6

SBC 4 c3 s3
c1
c2
c4 s4 s3

S2 S1 S0

Jose Manuel Díaz Tutor de ETC2 (Coslada) 27


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

Luego se requieren cómo mínimo 4 SBCs para diseñar un circuito combinacional que sea un sumador de
7 números de 1 bit de longitud.

II) Se desean sumar 5 números binarios de 2 bits cada uno. Denotemos a estos números de la siguiente
forma: A(a1,a0), B(b1,b0), C(c1,c0), D(d1,d0) y E(e1,e0). Como máximo la suma de estos números podría
dar 15 (1111), luego el resultado de la suma se debe expresar con cuatro bits S3S2S1S0. La suma de estos
5 números en notación de puntos se expresaría de la siguiente forma:

Notación de puntos Significado de cada punto


a1 a0
b1 b0
c1 c0
d1 d0
e1 e0

La resolución de esta operación usando SBCs genera el siguiente diagrama de puntos:

Notación de puntos Significado de cada punto

SBC 2 a1 a0 SBC 1
b1 b0
c1 c0
d1 d0
e1 e0

SBC 4 c1 s1 SBC 3
c2 s2
d1 d0
e1 e0

SBC 5 c3 s3
c4 s4
c2 e1

SBC 6 c5 s5 s3
c4
c2

c6 s6 s5 s3

S3 S2 S1 S0

Luego se requieren cómo mínimo 6 SBCs para diseñar un circuito combinacional que sea un sumador de
5 números de 2 bits de longitud.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 28


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.53


DATOS
XBCD=0001 1001 0101 0100
YBCD=0111 1000 0010 0101
Calcular su suma expresada en código exceso-3

Se debe pasar cada cifra BCD codificada en binario a decimal y realizar la suma:
Así:
XBCD= 0001 1001 0101 0100 = 1 9 5 4
YBCD= 0111 1000 0010 0101 = 7 8 2 5

El resultado de la suma de estos dos números en decimal es S10= 9779 y en BCD es:

SBCD= 1001 0111 0111 1001

El código exceso-3 se obtiene sumándole 3, es decir 0011, a cada cifra expresada en BCD. Procediendo
de esta forma se obtiene que la suma expresada en código exceso-3 es:

SE3=1100 1010 1010 1100

SOLUCION PROBLEMA 4.54


DATOS
Módulos ROM C0=2n palabras x n bits/palabra
Circuito combinacional que eleve al cuadrado un número X de 2·n bits

Se puede comprobar que un posible circuito combinacional que eleve al cuadrado un número X de 2·n
bits requiere como 2·n entradas correspondientes al número X, y 2·n + 2·n= 4·n salidas correspondientes
al número X2.

Si se desea implementar este circuito combinacional con una memoria ROM, la capacidad de esta
memoria debería ser como mínimo de:

CT=2Nº entradas palabras x Nº salidas bits/palabra= 22n palabras x 4·n bits/palabra

Para obtener el número de modulos ROM de capacidad C0 que se necesitan para conseguir esta capacidad
CT hay que dividir CT entre C0:

CT 2 2·n 4·n
N= = n x = 2 n x 4 = 2 n+2 módulos
C0 2 n

Jose Manuel Díaz Tutor de ETC2 (Coslada) 29


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.55


DATOS
X= 1110 1011 0010
A X se le aplican 14 operaciones LDCS seguidas de 2 operaciones LICS

Con la notación LDCS se está haciendo referencia a un desplazamiento de un bit, de tipo Lógico, hacia la
Derecha, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LDCS(X)= 0111 0101 1001

Con la notación LICS se está haciendo referencia a un desplazamiento de un bit, de tipo Lógico, hacia la
Izquierda, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LICS(X)= 1101 0110 0101

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

LICS(LDCS(X))= 1110 1011 0010=X

Se observa que la aplicación de un desplazamiento LICS seguido por un desplazamiento LDCS se


cancelan y se sigue manteniendo X. En consecuencia, es equivalente aplicar 14 operaciones LDCS
seguidas de 2 operaciones LICS, que aplicar únicamente 12 operaciones LDCS. Luego para resolver el
problema bastará con aplicar 12 operaciones LDCS sobre X. A continuación se muestran los resultados
parciales que se obtienen al aplicar el operador LDCS sobre X:

X= 0111 0101 1001


LDCS(X)= 1011 1010 1100
LDCS2(X)= 0101 1101 0110
LDCS3(X)= 0010 1110 1011
LDCS4(X)= 1001 0111 0101
LDCS5(X)= 1100 1011 1010
LDCS6(X)= 1110 0101 1101
LDCS7(X)= 1111 0010 1110
LDCS8(X)= 0111 1001 0111
LDCS9(X)= 1011 1100 1011
LDCS10(X)= 1101 1110 0101
LDCS11(X)= 1110 1111 0010
LDCS12(X)= 0111 0111 1001

Luego el resultado final es 0111 0111 1001.

De este resultado se concluye que la realización de n operaciones LDCS sobre un número de n bits deja
al número inalterado. Es decir: LDCSn(X)=X.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 30


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.56


DATOS
x1 y1
x2
x3
y2

A partir del circuito es sencillo deducir las expresiones lógicas de las salidas (y1, y2) en función de las
entradas (x1, x2, x3):

y1 = x1 ⊕ ( x2 ⊕ x3 )
y 2 = x1 ·( x2 ⊕ x3 ) + x2 ·x3

Estas expresiones se corresponden con las del bit de suma si y el bit de acarreo ci de un sumador binario
completo si se sustituye x1 por ci.1, x2 por xi e x3 por yi:

si = ci −1 ⊕ ( xi ⊕ yi )
ci = ci −1 ·( xi ⊕ yi ) + xi · yi

Luego la respuesta correcta es la B.

SOLUCION PROBLEMA 4.57


DATOS
ALU lógica con dos entradas de cuatro bits (A=[a3a2a1a0] y B=[b3b2b1b0]), una entrada de
control de dos bits (C=[c1c0]) y una salida de cuatro bits (Z=[z3z2z1z0])
La ALU puede realizar según la tabla del enunciado cuatro operaciones: XOR, XOR
complementada, AND y OR.

La respuesta A afirma que la ALU se puede implementar usando cuatro MUX(4), 8 puertas XOR de dos
entradas, cuatro puertas AND de dos entradas y cuatro puertas OR de dos entradas. Vamos a analizar si
es correcta esta afirmación:
Con cuatro puertas XOR de dos entradas se consigue realizar la operación A ⊕ B . Además
si se conecta el resultado de las cuatro puertas XOR anteriores y un “1” a cada de las cuatro
puertas XOR restantes se consigue realizar la operación A ⊕ B .
Con las cuatro puertas AND de dos entradas se consigue realizar la operación A ∧ B .
Con las cuatro puertas OR de dos entradas se consigue realizar la operación A ∨ B .
Con los cuatro MUX(4) de 4 entradas se consigue que en función del valor de los dos bits de
la entrada de control se pueda seleccionar la operación que se mostrará en la salida. Para ello
se destina un MUX(4) para generar cada uno de los cuatro bits de la salida. Además hay que
conectar en cada entrada del MUX del bit salida i ,el resultado del bit i de cada una de las
cuatro operaciones.
Se tendría el siguiente circuito:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 31


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

c1
c0
b3 a3 b2 a2 b1 a1 b0 a0

1 1 1 1

y3 y2 y1 y0 y3 y2 y1 y0 y3 y2 y1 y0 y3 y2 y1 y0
c0 MUX (4) c0 c0 c0
MUX MUX MUX
c1 c1 c1 c1

z3 z2 z1 z0

Luego con los elementos que se indican en la respuesta A si es posible implementar la ALU lógica que se
especifica en el enunciado.

La respuesta B afirma que la ALU se puede implementar usando una memoria ROM de 210 palabras por 4
bits/palabra. Vamos a comprobar que la afirmación es correcta.

Los bits de entrada de la ALU son un total de NE=10 (a3a2a1a0 b3b2b1b0c1c0) y los bits de salida son un
total de NS=4 (z3z2z1z0). Luego la capacidad mínima que debe tener una ROM para implementar la ALU
del enunciado es:

C = 2 NE palabras x NS (bits / palabra ) = 210 palabras x 4 (bits / palabra)

Luego la afirmación de la respuesta B es correcta.

En conclusión la respuesta correcta es la C.

SOLUCION PROBLEMA 4.58


DATOS
xi yi

p ci −1

si ci
si = xi ⊕ yi ⊕ ci −1
ci = ci −1 yi + ( xi p + xi p )( yi + ci −1 )

El circuito que se propone en el enunciado coincide con el sumador-restador binario completo diseñado
en el Problema 4.4 del libro de problemas. De acuerdo con la resolución de dicho problema la respuesta
correcta sería la C.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 32


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.59


DATOS
Contenido inicial de un registro de 4 bits es 0111.
Tras realizar una operación de desplazamiento el contenido del registro es 0110.

Si el contenido del registro es 0111 y se realiza una operación de desplazamiento AIAS [Aritmético-
Izquierda - Abierto - Simple] el contenido del registro pasaría a ser 011X, donde X podría ser 0 o 1 en
función del valor de la entrada serie para desplazamientos a izquierda EI del registro. Luego la afirmación
de la respuesta A es correcta.

Por otro lado si el contenido del registro es 0111 y se realiza una operación de desplazamiento AICS
[Aritmético- Izquierda - Cerrado - Simple] el contenido del registro pasaría a ser 0111. Luego la
afirmación de la respuesta B es falsa.

En conclusión la respuesta correcta es la A.

SOLUCION PROBLEMA 4.60


La solución a este problema se encuentra en el fichero probT4_60.pdf.

SOLUCION PROBLEMA 4.61


DATOS
Longitud de palabra de 8 bits.
X=-5610.
Determinar representación de x en complemento a 2

En primer lugar hay que pasar x a binario teniendo en cuenta que debe ocupar 8 bits:

X=32+16+8=0·27+0·26+1·25+1·24+1·23+0·22+0·21+0·20+=00111000

Por otro lado la representación en complemento a 2 de un número X se obtiene tomando el complemento


de X y sumándole 1 al bit menos significativo:

C 2[ X ] = X + 10 = 11000111 + 00000001 = 11001000

SOLUCION PROBLEMA 4.62


DATOS
Implementar con una ROM un comparador de dos números de 4 bits.
Salidas: “mayor que”, “menor que” e “igual que”.

El comparador propuesto tiene dos entradas de cuatro bits. Luego el número de bits de entrada [NBE] del
comparador es: NBE= 4+4=8 bits. Además el comparador genera tres salidas (“mayor que”, “menor que”
e “igual que”) de un bit cada una. Luego el número de bits de salida [NBS] es NBS=1+1+1=3

Para implementar este comparador se necesita una memoria ROM cuya capacidad mínima debe ser la
siguiente:

Cmin = 2 NBE pal × NBS (bits / pal )


Cmin = 28 pal × 3 (bits / pal )

Para averiguar que respuesta es la correcta hay que ver que capacidades de las propuestas son mayores o
iguales a Cmin. Sólo la ROM de la respuesta B cumple este requisito. Luego la respuesta correcta es la B.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 33


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.63


DATOS
Multiplicador binario de 2 números de 8 bits.

El número de bits de entrada [NBE] del multiplicador es: NBE= 8+8=16 bits.
El resultado de la múltiplicación de dos números de 8 bits, tiene un tamaño de 8+8= 16 bits. Luego el
número de bits de salida [NBS] es NBS=16

Para implementar este multiplicador se necesita una memoria ROM cuya capacidad mínima debe ser la
siguiente:

Cmin = 2 NBE pal × NBS (bits / pal )


Cmin = 216 pal × 16 (bits / pal )

Para averiguar que respuesta es la correcta hay que ver que capacidades de las propuestas son mayores o
iguales a Cmin. Sólo la ROM de la respuesta C cumple este requisito. Luego la respuesta correcta es la C.

SOLUCION PROBLEMA 4.64


DATOS
Módulos ROM de capacidad C0=2·n palabras x 1 bit/palabra
Sumador de dos números de n bits y 2n bits, respectivamente.

El número de bits de entrada [NBE] del sumador es: NBE= n+2n=3n bits.
El resultado de la suma de un número de n bits con otro de 2n bits, tiene un tamaño de 2n bits. Además
hay que considerar el acarreo de la suma. Luego el número de bits de salida [NBS] es NBS=2n+1

Para implementar este sumador se necesita una memoria ROM cuya capacidad mínima debe ser la
siguiente:

Cmin = 2 NBE pal × NBS (bits / pal )


Cmin = 2 3n pal × (2n + 1) (bits / pal )

El número N de módulos de capacidad C0 que se requieren para implementar una memoria de capacidad
Cmin es:
C min 2 3n pal 2n + 1 (bits / pal )  2n + 1 
N= = x = 2 3n−1 ·  módulos
C0 2·n pal 1 (bits / pal )  n 

Nota: Si el resultado de la división es un número no entero entonces N debe aproximarse al número


entero positivo mayor más cercano.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 34


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

SOLUCION PROBLEMA 4.65


DATOS
Contenido del registro Ri=A0116.
Capacidad de la memoria CMp=4K palabras x 12 bits/palabra
Cada palabra de memoria contiene el resultado de realizar tres veces la operación de
desplazamiento LICD sobre la dirección de la palabra.
La próxima instrucción contiene un operando referenciado a través de un modo de
direccionamiento indexado.
Contenido del campo dirección de la instrucción es 3AB16

Usando direccionamiento indexado (se estudia en el Tema 6) la dirección del operando se calcula
sumando a la dirección base referenciada en la instrucción el valor del registro Ri:

3AB+A01=0011 1010 1011 + 1010 0000 0001= 1101 1010 1100

De acuerdo con el enunciado el contenido de la dirección de memoria 1101 1010 1100 es el resultado de
aplicar tres veces la operación de desplazamiento LICD sobre dicha dirección:

LICD[LICD[LICD[1101 1010 1100]]]=1101 0110 0110

Finalmente, pasando el contenido de la memoría a hexadecimal se obtiene: D6616.

SOLUCION PROBLEMA 4.66


DATOS
Multiplicador binario que multiple dos números de 8 y 16 bits.
Usar dos módulos ROM de 64 Kpalabras x 16 bits/palabra y N sumadores binarios paralelos
de 8 bits.
Determinar el valor de N?

Sea el número de 16 bits Y=(y15...y0) y el número de 8 bits X=(x7..x0) el producto de ambos números es
un número de 24 bits P=(p23...p0).

El número Y se puede descomponer en dos números de 8 bits: Y 1= (y15...y8) e Y0=(y7...y0).

Con una ROM (ROM1) de 64 pal x 16 bits/pal se pueden almacenar los resultados del producto binario

Y 0 × X = ( p150 ... p00 )

Con otra ROM (ROM2) de 64 pal x 16 bits/pal se pueden almacenar los resultados del producto binario

Y 1 × X = ( p15
1
... p01 )

Los bits
p70 p60 p50 p40 p30 p20 p10 p00

del producto Y × X son precisamente los bits


0

p7 p6 p5 p4 p3 p2 p1 p0

del producto final.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 35


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

La suma de los bits p150 p140 p130 p120 p110 p100 p90 p80 del producto Y0 × X con los bits
p17 p16 p51 p14 p31 p12 p11 p01 del producto Y 1 × X genera los bits

p15 p14 p13 p12 p11 p10 p9 p8

del producto final más un bit de acarreo c. Para implementar esta suma se utiliza un sumador binario
paralelo de 8 bits (SUM 1).

Finalmente la suma de los bits p15 p14 p13 p12 p11 p10 p9 p8 del producto Y × X con el bits de acarreo c
1 1 1 1 1 1 1 1 1

genera los bits

p23 p22 p21 p20 p19 p18 p17 p16

Para implementar esta suma se utiliza otro sumador binario paralelo de 8 bits (SUM 2).El diseño del
multiplicador con los elementos propuestos es el que se muestra en la figura:

[Y0 X] p7 p6 p5 p4 p3 p2 p1 p0
ROM 1 0
64K x 16

p150 p140 p130 p120 p110 p100 p90 p80


p17 p16 p51 p14 p31 p12 p11 p01 + p15 p14 p13 p12 p11 p10 p9 p8

[Y1 X] SUM 1
ROM 1 c
64K x 16

+
1 1 1 1 1 1
p15 p14 p13 p12 p11 p10 p91 p81 p23 p 22 p 21 p20 p19 p18 p17 p16

00000000 SUM 2

En conclusión se utilizan dos sumadores binarios paralelos de 8 bits.

SOLUCION PROBLEMA 4.67


DATOS
Dos números de 16 bits en código BCD:
X= 0011 1001 0101 0100 Y=0011 1001 0000 0110
Resultado de X+Y expresado en código exceso a .3.

En primer lugar hay que expresar las cifras BCD de X e Y en decimal:

X= 3 9 5 4
Y= 3 9 0 6

En segundo lugar debe realizar la suma:

X+Y= 7 8 6 0

Jose Manuel Díaz Tutor de ETC2 (Coslada) 36


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

En tercer lugar hay que expresar cada cifra de 7 8 6 0 en código exceso a 3, para ello se suma 3 a cada
cifra. Se obtienen las siguientes valores de las sumas

10 11 9 3.

Finalmente expresando estos 4 números decimales en binarios, se obtiene la representación en código


exceso a 3 de la suma X+Y:

1010 1011 1001 0011

SOLUCION PROBLEMA 4.68


DATOS
Módulos ROM de capacidad C0=2n-1 palabras x 2n bits/palabra
Multiplicador de dos números de 2n bits.

El número de bits de entrada [NBE] del multiplicador es: NBE= 2n+2n=4n bits.
El resultado de multiplicar dos números de 2n bits con otro de 2n bits tiene un tamaño de 2n+2n=4n bits.
Luego el número de bits de salida [NBS] es NBS=4n bits

Para implementar este sumador se necesita una memoria ROM cuya capacidad mínima debe ser la
siguiente:

C min = 2 NBE pal × NBS (bits / pal )


C min = 2 4 n pal × (4n) (bits / pal )

El número N de módulos de capacidad C0 que se requieren para implementar una memoria de capacidad
Cmin es:
C min 2 4 n pal 4n (bits / pal )
N= = n −1 x = 2 3n+ 2 módulos
C0 2 pal 2n (bits / pal )

SOLUCION PROBLEMA 4.69


DATOS
Sumador binario serie de n bits.

Un sumador binario serie de n dos números de n bits se puede implementar con un único módulo SBC y
un biestable tipo D.

Luego la respuesta es 1 SBC.

SOLUCION PROBLEMA 4.70


DATOS
Dos números de 16 bits en código BCD:
X= 0101 0001 1001 Y=0011 0100 0111
Resultado de X-Y expresado en código exceso a .3.

En primer lugar hay que expresar las cifras BCD de X e Y en decimal:

X= 5 1 9
Y= 3 4 7

En segundo lugar debe realizar la resta:

X-Y= 1 7 2

Jose Manuel Díaz Tutor de ETC2 (Coslada) 37


TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

En tercer lugar hay que expresar cada cifra de 172 en código exceso a 3, para ello se suma 3 a cada cifra.
Se obtienen las siguientes valores de las sumas

4 10 5.

Finalmente expresando estos 3 números decimales en binarios, se obtiene la representación en código


exceso a 3 de la suma X-Y:

0100 1010 0101

SOLUCION PROBLEMA 4.71


DATOS
Módulos ROM de capacidad C0=2n palabras x 1 bit/palabra
Sumador de dos números de 2n bits y 4n bits, respectivamente.

El número de bits de entrada [NBE] del sumador es: NBE= 2n+4n=6n bits.
El resultado de la suma de un número de 2n bits con otro de 4n bits, tiene un tamaño de 4n bits. Además
hay que considerar el acarreo de la suma. Luego el número de bits de salida [NBS] es NBS=4n+1

Para implementar este sumador se necesita una memoria ROM cuya capacidad mínima debe ser la
siguiente:

C min = 2 NBE pal × NBS (bits / pal )


C min = 2 6 n pal × (4n + 1) (bits / pal )

El número N de módulos de capacidad C0 que se requieren para implementar una memoria de capacidad
Cmin es:
C min 2 6 n pal 4n + 1 (bits / pal )
N= = n x = 2 4 n ·(4n + 1) módulos
C0 2 pal 1 (bits / pal )

Jose Manuel Díaz Tutor de ETC2 (Coslada) 38


En la figura se muestra el diagrama de bloques de un circuito y las expresiones lógicas
que permiten calcular sus salidas a partir de sus entradas. Indique cuál de las
afirmaciones siguientes acerca de este circuito es correcta:

A) Cuando p = 0, es un restador binario completo.


B) Cuando p = 1, es un sumador binario completo.
C) Las dos afirmaciones anteriores son correctas.
D) Ninguna de las anteriores es correcta.

Véase el problema 4.4. Cuando p = 0, las expresiones del enunciado corresponden


con un restador binario completo:

Cuando p = 1, corresponden con un sumador binario completo:

Respuesta: C (Las dos afirmaciones anteriores son correctas)


El contenido inicial de un registro de desplazamiento de 4 bits es 0111.
Entonces, se realiza una operación de desplazamiento, tras lo cual el
contenido del registro pasa a ser 0110. Señale cuál de las afirmaciones
siguientes es correcta.
A) La operación de desplazamiento podría ser AIAS.
B) La operación de desplazamiento podría ser AICS.
C) Las dos anteriores son correctas.
D) Ninguna de las anteriores.

Respuesta
Véase el apartado 4.9.1 del texto base de teoría. El contenido inicial del
registro de desplazamiento es 0111. Tras la operación de desplazamiento
pasa a ser 0110. La respuesta A, “la operación de desplazamiento podría
ser AIAS”, es correcta. El bit más significativo se mantiene, y se produce
un desplazamiento hacia la izquierda de los tres bits menos significativos,
introduciendo un 0 en el bit menos significativo.

La respuesta B, “la operación de desplazamiento podría ser AICS”, es


falsa. En caso de haberse producido este desplazamiento, los tres bits
menos significativos deberían seguir siendo 1, cosa que no sucede.

Por lo anterior, las respuestas C y D son falsas.


Respuesta: A (La operación de desplazamiento podría ser AIAS)
Empleando únicamente una ROM, se pretende diseñar un comparador de
dos números de 4 bits que genere las funciones “mayor que”, “menor que”
e “igual que”. Indique cuál de las siguientes ROM podría emplearse.
4
A) 2 palabras, 4 bits/palabra
8
B) 2 palabras, 4 bits/palabra
C) Las dos anteriores
D) Ninguna de las anteriores
La pregunta está basada en el problema 4-44. En un caso general para
núm. entradas
se necesitará una memoria ROM de un tamaño mínimo: (2 )
palabras × (núm. salidas) bits/palabra
En el caso del comparador propuesto el número de entradas es 4 + 4 =
8, y el número de salidas es 3, por lo que se necesitará una memoria ROM
8
de un tamaño mínimo de 2 palabras × 3 bits/palabra. La respuesta A
propone una capacidad con un número de palabras inferior al necesario y
no vale.
Sin embargo la respuesta B tiene capacidad mayor que la necesaria por
8
lo que se podría emplear para diseñar el comparador. Respuesta: B( 2
palabras × 4 bits/palabra)
Asignatura: Ingeniería de Computadores I 2012/13 Prueba de Evaluación a Distancia 2
Alumno: Fecha de entrega: 9 de mayo de 2013

Problema 2.1

Diseñe los códigos de operación necesarios para que un computador con instrucciones de 32
bits, 8 registros y direcciones a memoria de 10 bits, pueda tener:

 511 instrucciones que contienen dos direcciones a memoria y una a registro.


 127 instrucciones que contienen una dirección de memoria y dos a registros.
 127 instrucciones que contienen tres direcciones a registros.
 Y el resto de instrucciones de cero direcciones.

Solución

Para resolver este problema necesitaremos hacer uso de una técnica consistente en extender
los códigos de operación de las instrucciones. De este modo, un código de operación
específico, nos indicará que debemos extender el tamaño en bits del propio código de
operación.

Con esto en mente, vamos a resolver el problema. Para el primer caso, necesitaremos 9 bits
para codificar las 511 instrucciones, 2 x 10 bits para cada una de las direcciones de la memoria,
y 3 bits para direccionar alguno de los 8 registros disponibles. En total necesitamos entonces
32 bits, y el formato de una instrucción de éste tipo podría ser por ejemplo así:

Cód. Operación Registro Dir. Memoria Dir. Memoria


Bits 31 23 22 20 19 10 9 0

En el segundo caso, vamos a necesitar 7 bits para codificar las 127 instrucciones, 2 x 3 bits
para los dos accesos a alguno de los registros, y 10 bits para direccionar el acceso a memoria.
Hacen un total de 23 bits necesarios para este tipo de instrucción. Ahora es cuando entra en
juego la técnica de extensión del código de operación.

Con los 9 bits del código de operación del primer caso, codificamos 511 instrucciones de 512
posibles, con lo que podemos utilizar la codificación que nos sobra (pongamos que es la 0x1FF,
es decir los bits 23 a 31 igual a uno) para indicar que extendemos el código de operación en
los 7 bits que necesitamos en este segundo caso. Por lo tanto, una instrucción de éste tipo
tendría el siguiente formato:

0x1FF Cód. Operación Registro Registro Dir. Memoria


Bits 31 23 22 16 15 13 12 10 9 0

Para el tercer caso, necesitamos nuevamente 7 bits para codificar cada una de las 127
instrucciones posibles, y 3 x 3 bits para los tres accesos a registro. Análogamente al caso
anterior, vamos a extender otra vez el código de operación en los 7 bits necesarios usando la
codificación que nos sobra del segundo caso (codificación 0x7F, con los bits 16 a 22 igual a
uno). Podríamos construir entonces un formato de instrucción de este tipo:

Página 1
0x1FF 0x7F Cód. Operación Registro Registro Registro
Bits 31 23 22 16 15 9 8 6 5 3 2 0

El último caso es trivial, extendemos de nuevo el código de operación a partir de la


codificación que nos sobra del tercer caso, y tenemos a nuestra disposición un total de 9 bits
que podemos utilizar para codificar hasta un total de otras 512 instrucciones sin acceso a
memoria diferentes. El formato de una instrucción de este tipo sería, por ejemplo.

0x1FF 0x7F 0x7F Cód. Operación


Bits 31 23 22 16 15 9 8 0

Finalmente otra forma, quizás más clara, de expresar los códigos de operación con extensión
que permiten todo el juego de instrucciones requerido podría ser la siguiente:

<-- 32 bits -->


Código de 000000000 rrr mmmmmmmmmm mmmmmmmmmm 511 instrucciones de 3
operación de 9 000000001 rrr mmmmmmmmmm mmmmmmmmmm direcciones (1 a registro y
bits 000000010 rrr mmmmmmmmmm mmmmmmmmmm 2 a memoria)
· ·
· ·
· ·
111111110 rrr mmmmmmmmmm mmmmmmmmmm
Número de bit: 31 23 22 0

Código de 111111111 0000000 rrr rrr mmmmmmmmmm 127 instrucciones de 3


operación de 16 111111111 0000001 rrr rrr mmmmmmmmmm direcciones (2 a registro y
bits 111111111 0000010 rrr rrr mmmmmmmmmm una a memoria)
· · ·
· · ·
· · ·
111111111 1111110 rrr rrr mmmmmmmmmm
Número de bit: 31 23 22 16 15 0

Código de 111111111 1111111 0000000 rrr rrr rrr 127 instrucciones de 3


operación de 23 111111111 1111111 0000001 rrr rrr rrr direcciones (las 3 a
bits 111111111 1111111 0000010 rrr rrr rrr registro)
· · · ·
· · · ·
· · · ·
111111111 1111111 1111110 rrr rrr rrr
Número de bit: 31 23 22 16 15 9 8 0

Código de 111111111 1111111 1111111 000000000 512 (como máximo)


operación de 32 111111111 1111111 1111111 000000001 instrucciones sin
bits 111111111 1111111 1111111 000000010 dirección
· · · ·
· · · ·
· · · ·
111111111 1111111 1111111 111111111
Número de bit: 31 23 22 16 15 9 8 0

Página 2
Problema 2.2

Tenemos un computador con el siguiente formato de instrucción:

El campo Indirección nos indica si la Dirección presente en la instrucción es una dirección


absoluta (0) o relativa (1).

1. Indicar cuál es el número máximo de instrucciones que podrá tener dicho computador
en su juego de instrucciones.
2. ¿Es posible utilizar modo de direccionamiento directo (absoluto) a través de memoria
con este formato? Justificar la respuesta. Si lo es, indicar cuál es el tamaño máximo de
la memoria direccionable con este formato, así como los campos de la instrucción que
estarían rellenos y los posibles valores.
3. ¿Podemos utilizar modo de direccionamiento directo relativo a registro? Justificar la
respuesta. Si lo es, indicar cuál es el tamaño de la memoria direccionable con este
formato, indicar qué campos de la instrucción estarían rellenos y los posibles valores.
4. ¿Podemos utilizar modo de direccionamiento indirecto? Justificar la respuesta. Si lo
es, indicar cuál es el tamaño de la memoria direccionable con este formato, y qué
campos de la instrucción estarían rellenos y los posibles valores.

Solución

1. Independientemente del valor que se encuentre en el campo Indirección, con los 6


bits disponibles para el Código de Operación podremos codificar hasta un máximo de
26 = 64 instrucciones diferentes. Que el bit de Indirección sea 1 ó 0 no afecta a la
operación como tal, sólo nos indica de qué modo debemos acceder a los operandos o
en dónde almacenar el resultado.
2. Sí es posible utilizar un modo de direccionamiento directo a través de memoria.
En un direccionamiento directo absoluto a través de memoria, la dirección a la que
queremos acceder se encuentra en el campo Dirección de la instrucción. Por lo tanto,
según nuestro formato de instrucción, cuando el bit del campo Indirección sea un 0,
querrá decir que los bits disponibles en el campo Dirección apuntan a una posición de
memoria, que es o bien donde estará almacenado el operando a utilizar por la
instrucción, o bien donde se deberá almacenar el resultado de la operación.

Como además tenemos 17 bits disponibles en el campo Dirección, podremos codificar


un total de 217 = 131.072 posiciones de memoria diferentes, por ejemplo desde la
posición 0 hasta la posición 131.071 ambas incluidas.

Los campos de la instrucción rellenos serán el Código de Operación que nos indica qué
operación ejecutar, el campo Indirección que tendrá un valor igual a cero, y el campo

Página 3
Dirección que como hemos dicho contendrá la dirección de memoria a la que
queremos acceder.

3. Sí es posible utilizar un modo de direccionamiento directo relativo a través de


registro.

Utilizar éste tipo de direccionamiento significa que la dirección a la que queremos


acceder se encuentra almacenada dentro del registro indicado en alguno de los
campos de la instrucción.

Como la instrucción es de 32 bits, este será el tamaño de una palabra de la


computadora que la ejecuta. Que una palabra de 32 bits contenga la dirección de
memoria a la que queremos acceder implica que tenemos acceso a un espacio de
direcciones de 232 = 4.294.967.296 posiciones de memoria diferentes, por ejemplo
desde la 0 hasta la 4.294.967.295 ambas incluidas.

Los campos de la instrucción rellenos en este caso serán el Código de Operación que
nos indica qué ejecutar, el bit del campo de Indirección a cero puesto que seguimos
estando en el caso de direccionamiento directo, y alguno de los dos campos de
registros, o bien Registro 1 o bien Registro 2.

4. También es posible utilizar un modo de direccionamiento indirecto.

Con el direccionamiento indirecto, la dirección contenida en la instrucción especifica


la palabra de memoria que contiene no el operando, sino la dirección del operando.
Dicho de otro modo, una instrucción con este este tipo de direccionamiento,
significará que la dirección del operando que se necesita se encuentra en las posición
indicada por el campo Dirección.

La desventaja de éste método de direccionamiento es que se emplean dos accesos a


memoria para recuperar un dato. El primero para recuperar la posición del dato en la
memoria, y el segundo para acceder al dato propiamente dicho. La ventaja es que el
espacio de direcciones direccionable (valga la redundancia) es mucho más amplio que
en el caso de direccionamiento directo a través de memoria. Esto es así porque, a
diferencia de lo que sucedía con el direccionamiento directo, donde podíamos acceder
a tan sólo 217 posiciones diferentes por tener que compartir el espacio disponible en
la instrucción, ahora podremos utilizar los 32 bits de una palabra para direccionar
una posición de la memoria (asumiendo que, como la instrucción es de 32 bits, la
computadora trabaja con palabras de 32 bits, ya que lo habitual es que una instrucción
se extraiga directamente de la memoria con un solo acceso a ella). Por lo tanto, en
este caso se podrán direccionar un total de 232 = 4.294.967.296 posiciones de
memoria, por ejemplo desde la 0 hasta la 4.294.967.295 ambas incluidas.

En cuanto a qué campos de la instrucción estarán rellenos, serían nuevamente el


campo Código de Instrucción que contiene la instrucción a ejecutar, el campo
Indirección esta vez con valor igual a uno, y el campo Dirección que contiene la
dirección de memoria donde se encuentra la posición real a la que queremos acceder.

Página 4
Ejercicios
de
Arquitectura de Computadoras

José Garzía
 Se pretende diseñar una sección de control con 32 estados, que genere 4 señales de control, reciba 2 señales de condición y en un estado
se puedan consultar las dos condiciones simultáneamente. Analice los componentes necesarios y sus respectivos tamaños en cada estrategia
de diseño:
a) Con elementos de retardo.
b) Con un contador.
c) Con una memoria ROM.

a) Con elementos de retardo, se necesita un biestable para cada estado (32).

b) Con un contador, debería ser un contador módulo 32.

c) Con ROM, si pueden ser necesarias todas las dos señales de condición, no se pueden multiplexar. El número de palabras en la ROM
debe ser entonces 2 elevado a 2+ log 32 , es decir 22+5=27 . Y la longitud debe ser log 32 +4 = 5+4 =9.

2 7 ROM
Dirección

4 27 palabras de 9 bits
5
4
Clear Registro
Reloj
Señales de
5 control

 Se pretende diseñar con memoria ROM una Unidad de Control con 200 estados, que genere 37 señales de control totalmente
independientes, y que reciba 9 señales de condición pero en cada estado va a ser consultada como máximo una de ellas. Diseñe dos
esquemas, minimizando:
a) El tamaño de la ROM.
b) El tamaño del multiplexor.

a) Selección por estado:


247
ROM
9 256 MUX 1 9 Dirección
28 a 1
De estas 256, 8
sólo son 29 palabras de 45 bits
relevantes 9 8 37
(las señales de Clear
condición). Registro
Las otras 247 8 Reloj
Señales de
pueden tener 8
control
cualquier valor

b) Selección por campo: (obsérvese que si elegimos un multiplexor menor, necesitaremos una memoria mayor).
7
ROM
9 16 MUX 1 9 Dirección
24 a 1
De estas 16, sólo
29 palabras de 49 bits
son relevantes 9 8
(las señales de 12 37
condición).
4 Registro
Las otras 7
8 4
pueden tener
8 4 Señales de
cualquier valor
control

Arquitectura de Computadoras 1 Ejercicios de la Sección de Control


 Un computador digital tiene 132 señales de control. De ellas, un grupo de 16 son mutuamente excluyentes entre sí y otro grupo de 30 son
mutuamente excluyentes entre sí. Calcule el tamaño de los campos codificados cuando se utilice un formato vertical.

log 2 16  1  log 2 30  1  5  5 .

 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. ¿Cuál es el número máximo de señales de control que puede tener este
computador?.

5  (21-1) + 5  (23-1) + 3  (24-1) = 5  1 + 5  7 + 3  15 = 85

 Un computador usa el formato vertical de codificación de instrucciones para parte de las señales de control y el formato horizontal para k
señales de control. El formato vertical posee n campos codificados de m bits cada uno. ¿Cuál es el máximo número de señales de control que
pueden usarse en este computador?
formato horizontal formato vertical
campo de k bits n veces
campo de m bits campo de m bits
k señales
2m-1 señales 2m-1 señales

Por lo tanto las señales de control son: k + n  ( 2m-1)

 Un computador utiliza microinstrucciones de formato horizontal con direccionamiento explícito. Las microinstrucciones deben gobernar
135 señales de control y codificar un repertorio de 50 instrucciones máquina, para lo cual la Sección de Control microprogramada dispone
una memoria de control de 2048 palabras. ¿Cuántos bits tiene el campo de dirección de cada microinstrucción?.

Registro de instrucción (RI)

Lógica de transformación
Señales de Selección de
Lógica la dirección
condición
de Multiplexor
bifurcación +1
RDC

Selección de Memoria de Control


una señal de 2048 palabras
condición
para la
bifurcación

RMC control dirección


... 11

135 Señales
de control

Como se ve en el diagrama, son 11 bits.

Arquitectura de Computadoras 2 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama1.

El operador cuenta con la operación de puesta a cero. La decodificación de la instrucción ocupa un ciclo, los accesos a memoria tres ciclos; y
cada operación del operador un ciclo. Calcule el número de ciclos de reloj necesarios para que se ejecute completamente una instrucción que
inicialice uno de los registros de la batería de registros: CLEAR REGn.
1 2 3 4 5 6 7 8
Reloj
SBACP
L
CRDBA
CRMM
ICP
SBDRM
CRIBD
OP CLR
CAC
SBDAC
SBRE
Rn
Búsqueda Decodificación Ejecución

1 Esquema extraído de Estructura y Tecnología de Computadores I (Gestión y Sistemas), de Yeves Gutiérrez et alt.; donde se explica en detalle.

Arquitectura de Computadoras 3 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama.

En un instante dado el contenido de los siguientes registros (se supondrá que todos son de 16 bits) es en hexadecimal:
(R5) = 0FD3
(RI) = FF33
(CP) = F0DF
A continuación se ejecuta la secuencia de operaciones elementales según el cronograma adjunto. Calcule el contenido de los registros al final
de esta secuencia.
1 2 3

Reloj
SBRS R5
SBRE R5
CRO2BR

SBDRI
CRO1BD
OP XOR

CAC
SBAAC
CCPBA

Ciclo 1.
(R5)  RO2
(RI)  RO1

Ciclo 2.
(R5)  (RI)  RO2

% 0000 1111 1101 0011


 % 1111 1111 0011 0011

% 1111 0000 1110 0000 = $ F0E0

Ciclo 3.
(RI)  R5 ; (R5) = $FF33
(AC)  CP ; (CP) = $F0E0

Arquitectura de Computadoras 4 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama.

En un instante dado el contenido de los siguientes registros (se supondrá que todos son de 16 bits) es en hexadecimal:
(AC) = 2EE2
(R2) = 73F1
(CP) = 2728
(RI) = 0000
A continuación se ejecuta la secuencia de operaciones elementales según el cronograma adjunto. Calcule el contenido de los registros al final
de esta secuencia.
1 2 3 4

Reloj
SBRS R2
CRO1AC
CRO2BR
OP AND OR
CAC
SBAAC
CRIBD
SBARI
CCPBA

Ciclo 1.
(AC)  RO1 ; (RO1) = $ 2EE2
(R2)  RO2 ; (RO2) = $ 73F1

Ciclo 2.
(RO1)  (RO2)  AC

% 0010 1110 1110 0010


 % 0111 0011 1111 0001

% 010 0 0010 1110 0000 = $ 22E0

Ciclo 3.
(AC)  RO1 ; (RO1) = $22E0
(AC)  BD
(BD)  RI ; (RI) = $22E0

Ciclo 4.
(RO1)  (RO2)  AC

% 0010 0010 1110 0000


 % 0111 0011 1111 0001

% 0111 0011 1111 0001 = $ 73F1 = (AC)

Además, en este ciclo:


(RI)  BA
(BA)  CP ; (CP) = $22E0

Arquitectura de Computadoras 5 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama.

En dicho computador se ejecuta una instrucción cuya fase de ejecución (exceptuando la decodificación) aparece representada en el
cronograma de la figura.
07 08 09
Reloj
SBDRI
CRO1BD
SBRS R2
CRO2BD
OP EOR
CAC

SBDAC
SBRE EOR

Esta instrucción emplea la función EOR (O exclusiva), y utiliza los registros RI, R1 y R2 (estos últimos de la batería de registros) cuyos
contenidos iniciales expresados en hexadecimal (supóngase que todos son de 16 bits) son:
(RI) = 07E2
(R1) = 033F
(R2) = 2F31
Calcule el contenido de los dos últimos registros al final de la ejecución.

07 08 09
Reloj Ciclo 7:
(RI)  RO1 ; (RO1)=$07E2
SBDRI (R2)  RO2 ; (RO2)=$2F31
CRO1BD Cargan 07E2 en RO1
Ciclo 8:
SBRS 0000 0111 1110 0010 = $07E2
R2
Cargan 2F31 en RO2  0010 1111 0010 0001 = $2F31
CRO2BD
OP EOR 0010 1000 1101 0011 = $28D3
CAC Cargan 28D3 en AC
Ciclo 9:
SBDAC (AC)  R1 ; (R1) = $28D3
Cargan 28D3 en R1 (R2) permanece inalterado (R2) = $2F31
SBRE EOR

Arquitectura de Computadoras 6 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama.

En él se ejecuta una instrucción cuya fase de ejecución (exceptuando la descodificación) aparece representada en el cronograma de la figura.
07 08 09
Reloj
SBDRI
CRO1BD
SBRS R2
CRO2BD
OP ADD
CAC
SBAAC
CCPBA

Indique qué operación realiza dicha instrucción.


07 08 09
Reloj
SBDRI Selecciona como entrada en el bus de datos un operando contenido en la instrucción
CRO1BD Carga en uno de los registros de entrada al operador el dato que había en la instrucción
SBRS R2 Selecciona un registro (el 2) del banco de registros
CRO2BD Carga el otro registro de entrada del operador con el contenido del registro seleccionado del banco
Suma en el operador los operandos presentes en sus dos entradas
OP ADD
CAC Carga en el acumulador el resultado de la suma

SBAAC Selecciona como entrada en el bus de direcciones el resultado de la suma


CCPBA Carga en el contador de programa el resultado de la suma

Resumiendo, podemos ver que el efecto global de toda esta secuencia de microinstrucciones se puede expresar como:
(CP)  (RI) + (R2)

Lo cual puede ser interpretado como un salto incondicional, pues el registro cuyo contenido es modificado es el contador deprograma.

Arquitectura de Computadoras 7 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama:

Supóngase que los registros; la memoria; los buses de datos y direcciones tienen 16 bits. En un instante determinado de una instrucción los
registros involucrados tienen los siguientes valores en hexadecimal:
Registro de instrucción: (RI) = 0C3F
Un registro de la batería de registros: (R2) = 210D
Registro de memoria: (RM) = 0035
Acumulador: (AC) = B001
Indique el contenido (en hexadecimal) del registro AC al finalizar cada uno de los dos cronogramas siguientes:
a) b)
01 02 01 02
Reloj Reloj
SBDRM SBDRM
CRO1BD CRO1BD
SBRS R2 SBRS R2
CRO2BR CRO2BR
OP ADD OP OR
CAC CAC

a)
01 02
Reloj
SBDRM
CRO1BD Cargan 0035 en RO1
SBRS R2
Cargan 210D en RO2
CRO2BR
OP ADD
CAC
%0000 0000 0011 0101
+%0010 0001 0000 1101

%0010 0001 0100 0010 = $2142, contenido final del registro AC

b)
01 02
Reloj
SBDRM
CRO1BD Cargan 0C3F en RO1
SBRS R2
Cargan 210D en RO2
CRO2BR
OP ADD
Cargan (0C3F OR 210D) en AC
CAC

Ciclo 1:
(RI)  RO1 ; (RO1)=0C3F
(R2)  RO1 ; (RO2)=210D

Ciclo 2:
(RO1) OR (RO2)  AC

%0000 1100 0011 1111


OR %0010 0001 0000 1101

%0010 1101 0011 1111 = $2D3F, contenido final del registro


AC

Arquitectura de Computadoras 8 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama:

En un instante dado el contenido de los siguientes registros (se supondrá que todos son de 16 bits) es en hexadecimal:
Registro de memoria: (RM) = 005F
Registro de instrucción: (RI) = 0F30
Un registro de la batería de registros: (R6) = 0020
Contador de programa: (CP) = F300
Indique el contenido final (en hexadecimal) de los citados registros al finalizar cada uno de los dos cronogramas siguientes:
a) 1 2 3 b) 1 2 3
Reloj Reloj
SBDRM SBDRM
SBRS R6 SBRS R6
SBARI SBARI
CRIBD CRIBD
CRO1BD CRO1BD
CRO2BR CRO2BR
OP MUL OP MUL
CAC CAC
CCPBA CCPBA
SBDAC SBDAC
a) Ciclo 1 b)
Ciclo 1
SBDRM
(RM)  RI SBDRM
(RM)  RO1
CRIBD
CRO1BD
SBDRM
(RM)  RO1 SBRS
CRO1BD CRO2BR
(R6)  RO2
SBRS De los registros dados no ha variado ninguno
(R6)  RO2 (RM) = 005F
CRO2BR
(RI) = 0F30
De los registros dados sólo ha variado RI (R6) = 0020
(RM) = 005F (CP) = F300
(RI) = (RM) = 005F
(R6) = 0020 Ciclo 2
(CP) = F300 SBARI
(RI)  CP
Ciclo 2 CCPBA
SBARI MUL
(RI)  CP (RM) * (R6)  AC
CCPBA CAC
MUL De los registros dados sólo ha variado CP
(RM) * (R6)  AC
CAC (RM) = 005F
De los registros dados sólo ha variado CP (RI) = 0F30
(RM) = 005F (R6) = 0020
(RI) = 005F (CP) = (RI) = 0F30
(R6) = 0020 Ciclo 3
(CP) = (RI) = 005F
SBDAC
Ciclo 3 (RM) * (R6)  RI
CRIBD
SBDAC De los registros dados sólo ha variado RI
(RM) * (R6)  RI
CRIBD (RM) = 005F
De los registros dados vuelve a variar RI (RI) = 005F * 0020 = 0BE0
(RM) = 005F (R6) = 0020
(RI) = 005F * 0020 = 0BE0 (CP) = 0F30
(R6) = 0020
(CP) = 005F

Arquitectura de Computadoras 9 Ejercicios de la Sección de Control


 Sea el computador mostrado en el siguiente diagrama:

Nótese el enlace unidireccional desde el bus de direcciones BA hasta el bus de datos BD. Ello necesita una señal de control para la
seleccionar como entrada al bus de datos el contenido del bus de direcciones, llamada SBDBA. Supóngase además que tanto los registros
como los buses de datos y direcciones como la memoria tienen 16 bits. En un instante determinado de la ejecución de una instrucción en este
computador los registros involucrados tienen los siguientes valores en hexadecimal:
Registro de instrucción: (RI) = 04C0
Un registro de la batería de registros: (R1) = 000E
Otro registro de la batería de registros: (R2) = 0010
Contador de programa: (CP) = 0120
En ese instante comienza el periodo 1 del cronograma de la siguiente figura.
1 2 3 4
Reloj
SBACP

SBDBA
SBRE
R2
SBRS
R1
CRO2BR

SBDRI

CRO1BD

OP OR
CAC

SBAAC

CCPBA

Indique el contenido (en hexadecimal) de los registros citados al finalizar el periodo 4 del mismo cronograma.

. A R2 se lleva el contenido de CP (a través del BA y del BD).


R2 (CP)
A partir de este momento: (R2) = 0120

. A CRO2 se lleva el contenido de R1 (directamente).


. A CRO1 se lleva el contenido de RI (a través del BD).
. El resultado de la operación (CRO1) OR (CRO2) se lleva al CP.

%0000 0000 0000 1110


OR %0000 0100 1100 0000

%0000 0100 1100 1110 = $04CE A partir de este momento: (CP) = $04CE

En resumen, al final del periodo 4, este es el contenido de los registros :


Registro de instrucción: (RI) = 04C0 (inalterado)
Un registro de la batería de registros: (R1) = 000E (inalterado)
Otro registro de la batería de registros: (R2) = 0120 (contiene el valor antiguo del CP)
Contador de programa: (CP) = 04CE (resultado de la operación OR)

Arquitectura de Computadoras 10 Ejercicios de la Sección de Control


Ejercicios
de
Arquitectura
de
Computadoras

José Garzía
2009

Arquitectura de Computadoras 1 Ejercicios de la Sección de Procesamiento


 Explique qué es el rebose cuando se suman dos números sin signo y cómo puede ser detectado.

Hay rebose cuando pretendemos almacenar el resultado en un registro de la misma longitud que los operandos, pero no cabe.
El arrastre de la última etapa sirve como indicador de rebose.

 Explique qué es el rebose cuando se suman dos números de signos opuestos y cómo puede ser detectado.

Cuando se suman dos números de distintos signos ¡nunca hay rebose!.


El módulo del resultado siempre será mayor o igual que el mayor de los módulos de los operandos.

 La siguiente pareja de números binarios x e y se suma en un sumador binario paralelo con propagación de arrastres. Analice el número de
secuencias de arrastre que comienzan simultáneamente.
x=0 0 1 0 1 1 0 1 1 1
y=0 1 1 0 0 1 1 1 0 1

0 0 1 0 1 1 0 1 1 1
0 1 1 0 0 1 1 1 0 1
Hay 4 secuencias, todas ellas de longitud 2

 La siguiente pareja de números binarios x e y se suma en un sumador binario paralelo con propagación de arrastres. Analice el número de
secuencias de arrastre que comienzan simultáneamente.
x=1 0 0 1 0 1 0 1 0 0 1 0 0 1 1
y=0 0 1 0 1 0 1 1 0 1 0 1 0 1 1

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
Hay 3 secuencias, la mayor de longitud 6

 Demuestre que el código BCD no es autocomplementario.

Lo haremos con un contraejemplo:


Sea x = 0000:
C1(xb) = 1111b.
C9(x10) = 910 = 1001b.
Como C1(xb)  C9(x10), no es autocomplementario.

 Sean dos números de 12 bits representados en binario puro: x = 000011000010, y = 000101110001. Calcule su suma y exprésela en
BCD.

Los números están dados en binario, por tanto tenemos libertad para realizar la suma en binario (y luego convertirlos a BCD).

0 0 0 0 1 1 0 0 0 0 1 0
+ 0 0 0 1 0 1 1 1 0 0 0 1

0 0 1 0 0 0 1 1 0 0 1 1 = 563 = 0101 0110 0011BCD


d

 Sean dos números binarios de 8 bits representados en código BCD: x = 01010100, y = 00101000. Realice su suma en BCD.
0 1 0 1 0 1 0 0
+ 0 0 1 0 + 1 0 0 0
Este dígito es mayor que 1001.
0 1 1 1 1 1 0 0 Es necesaria una corrección que consiste en sumarle 0110 y traspasar un acarreo al dígito BCD siguiente

1º. Suma de 0110


1 1 0 0
+ 0 1 1 0

0 0 1 0

2º.Traspaso del acarreo


0 1 1 1
+ 0 0 0 1

1 0 0 0

Resultado tras la corrección:


1 0 0 0 0 0 1 0

Arquitectura de Computadoras 2 Ejercicios de la Sección de Procesamiento


 Sean dos números binarios de 8 bits representados en código BCD: x = 010110001001, y = 001101000111. Realice su suma en BCD.
0 1 0 1 1 0 0 0 1 0 0 1
+ 0 0 1 1 0 1 0 0 0 1 1 1

1 0 0 0 1 1 0 0 0 0 0 0
Sumar 0110 y traspasar un acarreo al dígito BCD siguiente
+ 1 0 1 1 0

1 1 0 1 0 1 1 0
Sumar 0110 y traspasar un acarreo al dígito BCD siguiente

+ 1 0 1 1 0

1 0 0 1 0 0 1 1 0 1 1 0

 Sean dos números binarios de 8 bits representados en código BCD: x = 0011100101010100, y =0011100100000110. Realice su suma
en BCD.
0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0
+ 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0

0 0 1 1 0 0 1 0 0 1 0 1 1 0 1 0

+ 1 0 1 1 0 + 1 0 1 1 0

0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0

Sumar 0110 y traspasar un acarreo al dígito BCD siguiente

 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 números binarios de dos bits x1x0 e y1y0.

s0 = x0  y0  c-1 c0 = x0  y0 + (x0  y0)  c-1


s1 = x1  y1  c0 = x1  y1  [ x0  y0 + (x0  y0)  c-1] c1 = x1  y1 + (x1  y1)  c0 =x1  y1 + (x1  y1)  [x0  y0 + (x0  y0)  c-1]
y1 y0 x1 x0
c1 c-1

s1 s0

 ¿Cuántos SBCs de 1 bit harían falta para construir un sumador binario serie capaz de sumar dos números binarios de n bits?.
Si es un sumador serie, basta con un único SBC.
X Y
. .
. .
x2 y2
x1 y1
x0 y0

Q
FF-D SBC
CLK D
R
. . . s2 s1 s0
reloj c s

Arquitectura de Computadoras 3 Ejercicios de la Sección de Procesamiento


 Se desea diseñar un sumador combinacional de 7 números de 1 bit utilizando únicamente módulos sumadores binarios completos, SBC.
¿Cuántos módulos de este tipo serían necesarios?.
módulos disponibles
x 
y s 
SBC 
cout
cin  

bloque pedido 

x0
s0 
x1

x2

x3 s1 
x4 
x5 s2
x6
  

La mayor suma posible con siete sumandos de un bit binario cada uno es 7, la cual necesita tres dígitos binarios.

1er nivel de CSA

x0 S0
2o nivel de CSA
x1
x2 S1

x3 S2
3er nivel de CSA
x4
x5
x6
resultado final

 Se pretende construir un sumador binario de dos números de 4 bits cada uno, con una memoria ROM. Indique la capacidad mínima de
dicha memoria ROM:

Al sumar dos palabras con signo de longitud n bits (el máximo número representable es 2n-1-1), el resultado ocupará una longitud menor o
igual a n+1 bits. En el peor de los casos posibles, X + Y= (2n-1-1)+ (2n-1-1) = 22n-1- 2 = 2n- 1 - 1 < 2n- 1, número con signo representable con
n+1 bits
... 4
ROM
+ ... 8 28 x 5 5

... 4

 Se pretende construir un sumador binario de dos números, uno de 8 bits y el otro de 4 bits, con una memoria ROM. Indique la capacidad
mínima de dicha memoria ROM:

Al sumar dos palabras con signo de longitud n y m bits (los máximos números representables serán 2n-1-1 y 2m-1-1, respectivamente),, el
resultado ocupará una longitud menor o igual a max(n,m)+1 bits.

Sea m=max(m,n). En el peor de los casos posibles, X + Y= (2n-1-1)+ (2m-1-1) < 2m-1+2m-1- 2 = 22m-1 –2 =2m – 2 < 2m – 1, número con signo
representable con m+1 bits.

... 4
ROM
+ ... 12 212 x 9 9

8
...

 Se pretende construir con una memoria ROM un sistema sumador-restador de dos números de cuatro bits cada uno, x3x2x1x0 e y3y2y1y0 con
una señal de control M adicional para indicar la operación a realizar. Indique la capacidad mínima de dicha memoria ROM:
4
ROM
9 29 x 7 7
8

M 1

Arquitectura de Computadoras 4 Ejercicios de la Sección de Procesamiento


 Compare, para el peor caso, la aceleración que se consigue con un sumador con aceleración de arastre a dos niveles para cuatro grupos
de cuatro bits (longitud de palabra: dieciséis bits) con respecto al sumador binario paralelo correspondiente.

Para analizar los tiempos de ejecución contaremos los niveles de puertas lógicas que debe atravesar la señal en el peor caso posible en cada
uno de ambos diseños: sumador paralelo y sumador con dos niveles de aceleración del arrastre. Entendiendo como pero caso cuando existe
un arrastre que debe ser propagado a través de todas las etapas.

Sumador paralelo:
x15 y15 x14 y14 x1 y1 x0 y0
c15 c14 c13 ... c1 c0 c-1
SBC SBC SBC SBC
s15 s14 s1 s0

En cada SCB las expresiones de las salidas son:


si = xi  yi  ci-1
ci = xi  yi + xi  ci-1 + yi  ci-1

Cada SBC tiene dos niveles de puertas: primero el nivel AND para generar los términos producto y después el nivel OR para sumar dichos
productos. La suma puede darse por concluida cuando se ha esperado por un posible acarreo propagado desde c-1 hasta c15:
x15 y15 x14 y14 x1 y1 x0 y0
c15 c14 c13 ... c1 c0 c-1

s15 s14 s1 s0

Así pues, en el sumador paralelo, el retardo en el peor caso posible es  paralelo =2 · 16=32

Sumador con dos niveles de aceleración de arrastre:


x15 y15 x14 y14 x13 y13 x12 y12 y11-y8 y11-y8 y7-y4 y7-y4 x3 y3 x2 y2 x1 y1 x0 y0

c14 c13 c12 c11 c7 c3 c2 c1 c0 c-1

p15 g15 p14 g14 p13 g13 p12 g12 p3 g3 p2 g2 p1 g1 p0 g0

BAA BAA
SBBAA SBBAA SBBAA SBBAA
G3 P3 G2 P2 G1 P1 G0 P0
c15
BAA
G* P*

Para nuestro análisis no son necesarias las señales de los bits de suma, basta con representar las de los acarreos pi y gi.

El nivel más interno de aceleración lo forman cuatro sumadores binarios completos modificados (SBCMs, los bloques más pequeños de los
representados), conectados a un bloque de aceleración de arrastres BAA para constituir un sumador binario con bloque de aceleración de
arrastre (SBBAA) de cuatro bits. En el primer SBAA, los bits p3, g3, p2, g2, p1, g1, p0 y g0 son calculados simultáneamente. Ídem para los otros
tres SBAAs.

El nivel más externo de aceleración lo forman cuatro SBBAAs conectados mediante un BAA. Los bits P3, G3, P2, G2, P1, G1, P0 y G0 son
calculados simultáneamente (por supuesto, después que p3, g3, p2, g2, p1, g1, p0 y g0).

Para analizar el retardo en el peor caso posible:


x15 y15 x14 y14 x13 y13 x12 y12 y11-y8 y11-y8 y7-y4 y7-y4 x3 y3 x2 y2 x1 y1 x0 y0

c14 c13 c12 c11 c7 c3 c2 c1 c0 c-1

g15 p14 g14 p13 g13 p12 g12 p3 g3 p2 g2 p1 g1 g0

SBBAA SBBAA SBBAA SBBAA


G3 P3 G2 P2 G1 P1 G0 P0
c15

G* P*

La suma puede darse por concluida cuando se ha esperado hasta el cálculo de s15 hasta c15.
Expresión Retardos
gi = xi  yi , pi = xi  yi 1
G0 = g3 + g2 p3 + g1 p2 p3 + g0 p1 p2 p3 2
c11 = G2 + G1 P2 + G0 P1 P2 + c-1 P0 P1 P2 2
c14 = g14 + g13 p14 + g12 p13 p14 + c11 p12 p13 p14 2
s15 = x15  y15  c14 2

Arquitectura de Computadoras 5 Ejercicios de la Sección de Procesamiento


No se tienen en cuenta P3, G3, P2, G2, P1, ni G1; puesto que se obtienen simultáneamente a G0.
Tampoco se tiene en cuenta
c15 = G3 + G2 P3 + G1 P2 P3 + G0 P1 P2 P3 + c-1 P0 P1 P2 P3,

puesto se obtiene simultáneamente a c11 (y antes que s15).

Por tanto, la suma total de los retardos de este sumador con dos niveles de aceleración es:
 dos niveles de aceleración =9

Comparando un caso con otro, la mejora relativa es:


 paralelo 32
= =3.56
dos niveles de aceleración 9

Arquitectura de Computadoras 6 Ejercicios de la Sección de Procesamiento


 Analice cuál es el máximo número de dígitos que puede tener el producto de dos números, x e y, de n dígitos cada uno en base B.

(X  Y)max = Xmax  Ymax = (Bn-1)  (Bn-1) = BnBn + 1- 2Bn = B2n + 1 - Bn+1  B2n + 1 - 21 = B2n- 1, número sin signo representable con 2n bits.

 Se pretende construir un multiplicador binario para dos números de 8 bits, utilizando puertas lógicas tipo AND y sumadores binarios
completos (SBC). ¿Cuál es el número de puertas AND que hay que utilizar?.

Al multiplicar dos palabras sin signo de longitud n bits (el máximo número representable es 2n-1), el resultado ocupará una longitud menor o
igual a 2n bits:
n
.. .. ..
x+ .. .. ..
...
...
n .. .. ..
...
...
2 n-1
... ... . .
2n
En el peor de los casos posibles, X  Y = (2n-1)  (2n-1) = 2n2n + 1- 22n = 22n + 1 - 2n+1  22n + 1 - 2 = 22n- 1, número sin signo representable con
2n bits.
M7 M6 ... M0
x m7 m6 ... m0
p07 p06 ... p00
p17 p16 ... p10
...
+ p77 p76 ... p70

P63 P62 ... P04 P03 P02 P01 P00

Hay 8 productos parciales. Cada producto parcial tiene 8 bits. Por tanto, la matriz es de 64 pij,.

El i-ésimo producto parcial se calcula de la siguiente forma:


. Si mi es ‘0’, el producto parcial son 8 ceros.
. Si mi es ‘1’, el producto parcial es una copia del multiplicando M.
Dicho de otra forma, es como si mi actuara de filtro. Este comportamiento se sintetiza con puertas AND. En conclusión, cada mi construye con
una puerta AND (pij = mi AND Mj )
mi pi j
Mj

 Se pretende construir un multiplicador binario que multiplique dos números de cuatro bits cada uno. Haga el diseño utilizando
únicamente ocho SBC (sumador binario completo), un SBAA (sumador binario con aceleración de arrastre) de cuatro bits y dieciséis puertas
AND.

M3 M2 M1 M0 p03 p02 p01 p00


x m3 m2 m1 m0 p13 p12 p11 p10
p03p02p01p00 p22 p21 p20
p13p12p11p10
p23p22p21p20
p23
+ p33p32p31p30
p33 p32 p31 p30
P7 P6 P5 P4 P3 P2 P1 P0
SBAA de 4 bits

P7 P6 P5 P4 P3 P2 P1 P0

 Se pretende construir un multiplicador binario de dos números de 4 bits cada uno con una memoria ROM. Indique la capacidad mínima
de dicha memoria ROM: 4
ROM
8 28 x 8 8

Arquitectura de Computadoras 7 Ejercicios de la Sección de Procesamiento


 Se pretende construir un multiplicador binario que multiplique dos números sin signo de 2 y 3 bits. Realice el diseño con:
a) Puertas AND y sumadores binarios completos (SBC).
b) Una memoria ROM.

Hay 6 pij, cada uno de los cuales se construye con una puerta AND (pij = mi AND Mj )

M M2 M1 M0 0
p10 p00
m x m1 m0
2
p12 p02 p11 ROM
p02 p01p00 5 25 x 5 5
0
p12p11 p10 3

s4 s3 s2 s1 s0
S4 S3 S2 S1 S0

 Se pretende construir un multiplicador binario de dos números de n bits cada uno con una memoria ROM. ¿Cuántos módulos de
memoria ROM de 2n palabras con n bits por palabra serían necesarios?.

Si queremos implementarlo con ROMs de 2nxn:


n

22 n
Número de filas: =2n filas
2n
2n ROM 2n
 2n  22n x 2n
Número de columnas:    2 columnas n
 n 
Por tanto, se necesitan 2n xn bloques.

 Se pretende construir un multiplicador binario de dos números de 16 y 24 bits, utilizando módulos memoria ROM con 256 palabras de
16 bits por palabra. Calcule cuántos módulos ROM serán necesarios.

Si queremos implementarlo con ROMs de 28x16: 16


2 40 32
Número de filas: =2 filas 40 ROM 40
28 240 x 40
Número de columnas:  40   3 columnas 24
 16 
 

Por tanto, se necesitan 232x3 bloques.

 Diseñe un multiplicador de números binarios sin signo de 3 y 4 bits, con estas dos alternativas:
a) Sumadores binarios completos (SBC) y puertas AND.
b) Sólo con memoria ROM.

a) p03 p12 p01 p10 p00 Otra forma de establecer las conexiones:
p13 p22 p02 p11
M3 M2 M1 M0 p p p p p p01 p10 p00
13 03 12 02 11
x m2 m1 m0 p03 p02
p13 p12 p p11 p20 p01
p03 p02 p01 p00 21
p22 p21 p20 p10 p03 p p02 p20 p01
p13 p12 p11 p10 p23 21
p13 p12 p11 p10
+ p23 p22 p21 p20 p23
p22 p21 p20
P6 P5 P4 P3 P2 P1 P0
p23
p23 p22 p21 p20
P6 P5 P4 P3 P2 P1 P0
8 SBCs P6 P5 P4 P2 P1 P0
P3
12 puertas AND
mi pi j
SBC
cout cin Mj

b)
4

7 ROM 7
27 x 7
3

Arquitectura de Computadoras 8 Ejercicios de la Sección de Procesamiento


 Diseñe un multiplicador binario que multiplique dos números de 4 y 8 bits, respectivamente. Utilice para ello exclusivamente dos
módulos ROM de 256 palabras con 8 bits por palabra y sumadores binarios paralelos de 4 bits.
M[7:4] M[3:0] m
M
m[3:0]
m[3:0] M[7:0] 4
x
8 4
4
A = M[3:0] * m[3:0] M[7:4] m[3:0]
4 m[3:0] M[3:0] 4
B = M[7:4] * m[3:0] ROM ROM
+
28 x 8 28 x 8
B[7:0] 8 A[7:0]
D= M[7:4] + Cout C = A[7:4]+B[3:0] A[3:0] 8
0000 B[3:0] A[7:4]
B[7:4] 4 4 4
4 4
Cout A[3:0]

4 4 4
D C A[3:0]

 Se pretende construir un sumador binario con aceleración de arrastres (SBAA) para 2 números binarios X e Y de 3 bits cada uno. 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. La figura central muestra un circuito de aceleración de arrastres (CAA) de 3 bits con tres entradas de generación de acarreo gi,
tres entradas de propagación de acarreo pi y un acarreo de entrada c-1.
xi yi g2 p2 g1 p1 g0 p0 x2 y2 x1 y1 x0 y0
Ci SBC Ci-1 Ci-1 c2 Ci-1
CAA SBAA de 3 bits
modificado
si gi pi c2 c1 c0
s2 s1 s0
El diseño se realizará siguiendo los siguientes pasos:

a) Exprese la función lógica de sus cuatro salidas: si (suma), ci acarreo de salida), gi (generación de acarreo) y pi (propagación de acarreo).
A partir de estas funciones lógicas, y empleando únicamente puertas lógicas, diseñe este SBC modificado.
xi yi ci-1
si  xi  yi  ci 1  pi  ci 1
ci  xi  yi  ( xi  yi )  ci 1  gi  pi  ci 1

gi ci pi si
b) Exprese las funciones lógicas de los acarreos c2, c1 y c0 generados por este módulo. A partir de estas funciones lógicas, y empleando
únicamente puertas lógicas, diseñe este CAA.
p2 p1 p0 g2 g1 g0 ci-1
c0  g0  c1  p0
c1  g1  g 0  p1  c1  p0  p1
c2  g 2  g1  p2  g0  p1  p2  c 1  p0  p1  p2

c2 c1 c0

c) Utilizando únicamente 3 SBC modificados como los diseñados en a) y el CAA diseñado en b), construya razonadamente el sumador
binario con aceleración de arrastre de 3 bits (SBAA) solicitado en el enunciado y mostrado en la figura de la derecha.

x2 y2 x1 y1 x0 y0

SBC c1 SBC c0 SBC c-1


modificado modificado modificado
s2 g2 p2 s1 g1 p1 s0 g0 p0
c2
CAA

Arquitectura de Computadoras 9 Ejercicios de la Sección de Procesamiento


 Diseñar un registro de desplazamiento de cuatro bits con multiplexores y elementos de memoria D.

a) Entrada en paralelo y salida en paralelo, desplazamientos lógicos. E0, E1, E2, E3 representan la entrada en paralelo; S0, S1, S2, S3 la
salida paralelo; C1, C2 las líneas de control; y Clk la señal de reloj. El registro debe ser capaz de realizar los dos desplazamientos siguientes:
LICS (Lógico-Izquierda-Cerrado-Simple) y LDCS (Lógico-Derecha-Cerrado-Simple). Además, el circuito debe permitir la carga en paralelo
de la entrada y mantener la información almacenada sin modificar (no operación: NOP). La codificación de las entradas de control se
muestra en la tabla adjunta.
E3 E2 E1 E0
Operación C2 C1
NOP 00 C2 Paralelo/Paralelo Clk
LICS 01 C1
LDCS 10
CARGA 11 Q3 Q2 Q1 Q0
3
b) Entrada en serie y salida en serie, desplazamientos lógicos. E es la entrada en serie y S es la salida en serie.
E
Operación C2 C1
C2 Serie/Serie
NOP 00 Clk
LIAS 01 C1
LDAS 10 Q

c) Entrada en paralelo y salida en paralelo, desplazamientos aritméticos. E0, E1, E2, E3 representan la entrada en paralelo; S0, S1, S2, S3 la
salida paralelo; C1, C2 las líneas de control; y Clk la señal de reloj. El registro debe ser capaz de realizar los dos desplazamientos siguientes:
AICS (Aritmético-Izquierda-Cerrado-Simple) y ADCS (Aritmético-Derecha-Cerrado-Simple). Además, el circuito debe permitir la carga en
paralelo de la entrada y mantener la información almacenada sin modificar (no operación: NOP). La codificación de las entradas de control
se muestra en la tabla adjunta. E E E E 3 2 1 0
Operación C2 C1
NOP 00 C2 Paralelo/Paralelo Clk
AICS 01 C1
ADCS 10
CARGA 11 Q3 Q2 Q1 Q0

a)
LICS LDCS
S S

MUX Q0
MUX D Q MUX D Q MUX D Q D Q
4a1 Q3 4a1 Q2 E 4a1 Q1 E 4a1
E3 E2 1 0

C2 C1 C2 C1 C2 C1 C2 C1

b) Como antes, pero sin E2, E1, E0, Q3, Q2, ni Q1.

MUX MUX MUX MUX Q0


D Q D Q D Q D Q
4a1 4a1 4a1 4a1
E3
C2 C1 C2 C1 C2 C1 C2 C1
c)
AICS ADCS
S S

MUX MUX MUX MUX Q0


D Q D Q D Q D Q
4a1 4a1 Q2 E 4a1 Q1 E 4a1
E3 Q3 E2 1 0

C2 C1 C2 C1 C2 C1 C2 C1

El bit de signo permanece constante, excepto en las cargas, cuando C2=1, C2=1. En este bit sólo hay dos operaciones diferentes. Por tanto,
para economizar material, es posible utilizar un multiplexor 2 a 1 en la entrada del biestable del bit de signo:

MUX Q3
D Q
E3 2a1
C2
C1

Arquitectura de Computadoras 10 Ejercicios de la Sección de Procesamiento


 Se pretende diseñar un circuito con dos entradas X (X7 X6 X5 X4 X3 X2 X1 X0) e Y (Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0) 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 señales 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 operación es el número R de ocho bits.

Para ello se debe usar una señal de control C que seleccione el tipo de operación (comparación o desplazamiento) y dos señales más d1 do
para indicar el tipo de operación de desplazamiento. Realice el diseño usando dos módulos de memoria ROM de 64 K palabras x 8 bits.

Contamos el número de entradas y salidas:


8
X ROM
Y 8
221 palabras de 8 bits
C 8 R
eD
eI
d1
d0 CS

Por ello, en principio, el tamaño de la ROM debería ser 221 palabras de 8 bits cada una. Pero podemos hacer dos simplificaciones, una por
cada tipo de operación:

1ª. Cuando la operación es de comparación, habrá muchas palabras repetidas. Habrá que almacenar el mismo resultado de comparación
para cada combinación de valores de eD, eI, d1 y d0. Dichas entradas no se utilizan en esta operación.
En este caso, la ROM tiene 16 entradas y 3 salidas

2ª. Cuando la operación es de desplazamiento, como sólo se pide desplazar los valores de X (8 bits), las 8 entradas Y a la ROM no serían
necesarias y por lo tanto sólo necesitaríamos 8+2+2 entradas.
En este caso, la ROM tiene 12 entradas y 8 salidas

Todo este estudio ha sido para conocer el tamaño necesario de la ROM.

Nº de entradas = max{16, 12}+1 = 17. Se añade una entrada adicional para distinguir las zonas de memoria donde se almacenan las
respectivas operaciones.

Nº de salidas = max{3, 8} = 8

Así pues, el tamaño es 217 palabras de 8 bits.

Cuando la operación sea de comparación se estarán malgastando 5 bits de salida.


Cuando la operación sea de desplazamiento se estarán malgastando 4 bits de entrada.

Si un objetivo es que no se malgaste ni un bit de memoria, se podría utilizar un CI con el tamaño justo y exacto para cada operación; y realizar
las conexiones de la siguiente forma:

1º. Inhibiremos un CI y desinhibiremos el otro aplicando la señal C a uno y su complemento al otro en la entrada de selección de chip CS.

2º. De un CI salen 3 líneas y del otro salen 8. En caso de que las salidas de las ROM’s no sean triestado, las 3 salidas de la ROM de
comparación deben ser multiplexadas con las 3 más significativas de la ROM de desplazamiento.

8 ROM
X de comparación.
3 R
8 216 palabras de 3 bits
Y
CS 3
MUX 3
2a1
X 8 ROM
3
de desplazamiento
eD
8 5 8 R
eI 212 palabras de 8 bits
d1
d0 CS
C

De esta forma, la memoria consumida es 216+212 palabras de 8 bits.

Arquitectura de Computadoras 11 Ejercicios de la Sección de Procesamiento


 Se pretende realizar una Unidad Aritmético Lógica (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:

c1c0 = 00 : suma S=X+Y


C1 x2 x1 x0 y1 y0
c1c0 = 01 : resta S=X-Y
c1c0 = 10 : comparación Si X > Y entonces S = 1 0 0 0 UAL
Si X = Y entonces S = 0 1 0 0 C0 S3 S2 S1 S0
Si X < Y entonces S = 0 0 1 0
c1c0 = 11 : sacar X S = X (s3=0, s2s1s0=x2x1x0)

Para resolver el problema, siga obligatoriamente los siguientes apartados:


a) Utilizando únicamente puertas lógicas, diseñe un Sumador Binario Completo (SBC).
b) Diseñe un sumador/restador binario de números de tres bits utilizando SBC’s como el diseñado en el apartado a) y las puertas lógicas
necesarias.
c) Diseñe un comparador de números de tres bits utilizando únicamente un módulo de memoria ROM. ¿Cuál es el tamaño necesario para
este módulo 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 módulos diseñados en los apartados anteriores y los módulos combinacionales necesarios, diseñe la UAL
pedida.

a) xi yi ci-1 b) c)
x2 y2 x1 y1 x0 y0
Modo x2 M
SBC X Y M I m x1 comparador
x0
0 0 0 0 0 0 0 1 0 I
cout c-1 SBC c0 0 0 0 0 0 1 0 0 1 y2
SBC SBC Cin
. . . . . . . . .
S1 S0 y1 m
S2
0 0 0 1 1 1 0 0 1 y0
0 0 1 0 0 0 1 0 0
0 0 1 0 0 1 0 1 0
0 0 1 0 1 0 0 0 1
. . . . . . . . .

0 0 1 1 1 1 0 0 1
ci si 0 1 0 0 0 0 1 0 0
0 1 0 0 1 0 0 1 0
0 1 0 0 1 1 0 0 1
. . . . . . . . .

d)
x2 x1 x0 0 y1 y0 x2 x1 x0 0 y1 y0 0
(c1cn)'

Sumador-Restador Modo = c1' c0 MUX


Comparador S0
2a1
s0 M I m c1 c0'

MUX S1
s1 2a1
c1 c0'

MUX S2
s2 2a1
c1 c0'

MUX S3
s3 2a1
c1 c0'

Arquitectura de Computadoras 12 Ejercicios de la Sección de Procesamiento


 Utilizando el método de la suma condicional, la suma de 2 números binarios de 60 bits cada uno, ¿cuántos pasos necesita?.

1er paso: 60 palabras de longitud 1 bit.


20 paso: 30 palabras de longitud 2 bits.
3er paso: 15 palabras de longitud 4 bits. Atención a esta transición. Es necesario añadir 4 ceros a la izquierda.
40 paso: 8 palabras de longitud 8 bits.
50 paso: 4 palabras de longitud 16 bits.
60 paso: 2 palabras de longitud 32 bits.
70 paso: 1 palabras de longitud 64 bits.

 Utilizando el método de la suma condicional para sumar 2 números de 16 bits cada uno, ¿cuántos bits del resultado se conocen de forma
correcta al finalizar el paso 4?.

1er paso: 16 palabras de longitud 1 bit. Ya se conoce 1 bit.


20 paso: 8 palabras de longitud 2 bits. Ya se conocen 2 bits.
3er paso: 4 palabras de longitud 4 bits. Ya se conocen 4 bits.
40 paso: 2 palabras de longitud 8 bits. Ya se conocen 8 bits.

 Sean dos números binarios de 4 bits representados en complemento a dos: M=0101 y N=1100. Lleve a cabo su multiplicación utilizando
el algoritmo de Booth modificado.

A N N-1
A3 A2 A1 A0 N3 N2 N1 N0 N-1 M 0 1 0 1
0 0 0 0 1 1 0 0 0 valores iniciales N x 1 1 0 0 (0)
0 0 0 0 1 1 0 0 0 no operar 1er ciclo
0 0 0 0 0 0 0 0–0 1er ciclo
0 0 0 0 0 1 1 0 0 desplazar
0 0 0 0 0 0 0–0 20 ciclo
0 0 0 0 0 1 1 0 0 no operar 20 ciclo
1 1 0 1 1 1–0 3er ciclo
0 0 0 0 0 0 1 1 0 desplazar
0 0 0 0 1–1 40 ciclo
1 0 1 1 0 0 1 1 0 A  A-M 3er ciclo
1 1 0 1 1 0 0 1 1 desplazar 1 1 0 1 1 0 0
1 1 0 1 1 0 0 1 1 no operar 40 ciclo
1 1 1 0 1 1 0 0 1 desplazar

Nótese que si los multiplicáramos utilizando algún algoritmo de lápiz y papel, no se estaría teniendo en cuenta que N es negativo y el resultado
no sería el correcto.

Arquitectura de Computadoras 13 Ejercicios de la Sección de Procesamiento


Solución
A) El módulo comparador de dos bits que se quiere diseñar 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 x<y

M I m

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


Como el enunciado sólo permite utilizar puertas lógicas vamos a
implementarlo mediante un circuito combinacional. La Tabla 96-1-1 muestra
la tabla de verdad del comparador de 2 bits.

2
x y M I m

0 0 0 1 0
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0
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 lógicas para
M, I y m:
M=xy
I=xy+xy= x y + x y
m=xy
y el circuito lógico correspondiente se muestra en la Figura 96-1-3.

x • • M

y • m

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 diseñado en el apartado anterior. Si el
resultado de la comparación de xi e yi es: Mi, Ii y mi, se cumple que:
Mi =1 si xi > yi

3
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 explicación 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 lógico pedido en este apartado
obtenido a partir de las expresiones anteriores.

x2 y2 x1 y1 x0 y0

x>y x=y x<y x>y x=y x<y x>y x=y x<y

M2 I2 m2 M1 I1 m1 M0 I0 m0

• •• • • •
• •
• •
• • • •
• •
• •
• •
• •

M I m
Figura 96-1-4 Circuito lógico de un comparador de dos números de 3 bits

4
C) Sobre este apartado no hay ningún comentario a hacer, y directamente
la solución es la mostrada en la Figura 96-1-5.

x2 y2 x1 y1 x0 y0

SBC SBC SBC


c2 c1 c0 c-1

s2 s1 s0
Figura 96-1-5 Sumador paralelo de números de 3 bits
D) En la Figura 96-1-6 se muestra la estructura de la UAL pedida en el
enunciado del problema, donde además de los módulos diseñados en los
apartados anteriores, se han empleado 4 multiplexores con 2 entradas de
datos y una salida.
La entrada de selección 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 más significativa de la UAL, ya que esa es realmente su
función. El resultado de la suma de 2 números de 3 bits requiere un máximo
de 4 bits.

5
X Y
• UAL

x2x1x0 y2y1y0 x2x1x0 y2y1y0


COMPARADOR c2 SUMADOR
M I m s2 s1 s0

“0”
• •
1 0 1 0 1 0 1 0
c c0 MUX c0 MUX c0 MUX c0 MUX

s3 s2 s1 s0
Figura 96-1-6 Estructura de la UAL pedida en el problema

6
A)(1.5 puntos) Indique el diagrama de estados del circuito,
especificando claramente cuál es el significado de cada uno de los
estados.
B) (0.5 puntos) Indique cómo codifica los estados y obtenga la tabla de
transición de estados correspondiente.
C) (1 punto) Suponiendo que sólo dispone de biestables tipo D para el
diseño del circuito, calcular las funciones de excitación de los
biestables.
D)(1 punto) Implemente el circuito con biestables tipo D y puertas
lógicas NAND y NOT únicamente.

X
Reloj Comparador xn-1 xn-2 ... x0
secuencial yn-1 yn-2 ... y0
Y

M I m

Figura 96-2-1 Diagrama de bloques del comparador


Solución

S1 / 100
10 xx
11
S0 / 010
00
01 S2 / 001 xx

Figura 96-2-2 Diagrama de estados del circuito


Un posible diagrama de transición de estados para el comparador secuecial
propuesto es el de la Figura 96-2-2. Los símbolos 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 símbolos utilizados en el diagrama de estados


La explicación del diagrama de estados de la Figura 96-2-2 es la siguiente.
Al comparar dos números binarios X e Y, comenzando por sus bits de más
peso, en cuanto lleguen al comparador dos bits distintos ya es posible indicar
cuál de ellos es menor y cuál 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 números 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.
Estado Entradas xi yi Salida
00 01 10 11
presente MIm

S0 (igual) S0 S2 S1 S0 010
S1 (mayor) S1 S1 S1 S1 100
S2 (menor) S2 S2 S2 S2 001
Próximo estado
Tabla 96-2-2 Tabla de estados del comparador secuencial

B) Una posible codificación 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 Codificación de los estados

A partir de esta codificación y de la Tabla 96-2-2 se obtiene directamente la


tabla de transición de estados (Tabla 96-2-4).
Estado pres. Entradas xi yi Salida
00 01 10 11
Q1Q0 MIm

00 00 10 01 00 010
01 01 01 01 01 100
10 10 10 10 10 001
Próximo estado
Tabla 96-2-4 Tabla de transición de estados y salida del comparador

C) Teniendo en cuenta la función de excitación de un elemento de memoria


tipo D:
D = Q(t+1)
y la tabla de transición 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).

Q1Q0 Q1Q0
xiyi xiyi
00 01 11 10 00 01 11 10
00 x 1 00 1 x

01 1 x 1 01 1 x

11 x 1 11 1 x

10 x 1 10 1 1 x

D1 = xiyiQ0 + Q1 D0 = xi yi Q1 + Q0
Figura 96-2-4 Funciones de excitación de los biestables del comparador
D) Para implementar el circuito utilizando bistables tipo D y puertas
lógicas NAND y NOT únicamente, no sirven directamente las funciones de
excitación 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 sólo falta calcular las expresiones lógicas de las tres salidas en
función 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 función del estado

Las expresiones lógicas 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 excitación de los elementos de memoria tipo D


y las expresiones lógicas de la salida en función del estados, el circuito
secuencial del comparador que se obtiene es el que se muestra en la Figura
96-2-5.

xi •
D1 Q1 m

Ck Q1 • I

• •
D0 Q0 M
yi •

Reloj • Ck Q0

Figura 96-2-5 Circuito secuencial del comparador


3 2

x2x1x0 y1y0
2
c1c0
UAL
S3 S2 S1 S0

Figura 98-1-1: Módulo 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 diseño 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 números negativos se puede efectuar la
operación de restar. En el caso de la representación de números 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
número 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 efectúan 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 diseñar fácilmente un único circuito sumador-restador (ver Figura 98-1-3)
donde la señal de control M gobierna la función 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 y2 y1 y0
• • • M

c2
Sumador/restador M

SBC SBC SBC


c2 c1 c0 c-1
S2 S1 S0
S2 S1 S0
Figura 98-1-3: Sumador-restador binario paralelo con propagación de arrastre

C) Este comparador consiste en un circuito con 6 entradas (x2x1x0y2y1y0) y tres salidas (MIm). El módulo de
memoria ROM necesario tiene que tener un tamaño mínimo de 26x3. El contenido de las 16 primeras posiciones de
memoria se muestra en la Tabla 98-1-2.

x2 A5
x1 A4
ROM
x0 A3 x2 x 1 x0 y2 y1 y0
y2 A2 64 palabras × 3 bits Comparador

y1 A1 M I m

y0 A0
b2 b1 b0

M I m

Figura 98-1-4: Comparador diseñado con memoria ROM


Dirección memoria Contenido
(x2 x1 x0 y2 y1 y0) (M I m)

A5 A4 A3 A2 A1 A0 b2 b1 b0

0 0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0 1
0 0 0 0 1 0 0 0 1
0 0 0 0 1 1 0 0 1
0 0 0 1 0 0 0 0 1
0 0 0 1 0 1 0 0 1
0 0 0 1 1 0 0 0 1
0 0 0 1 1 1 0 0 1
0 0 1 0 0 0 1 0 0
0 0 1 0 0 1 0 1 0
0 0 1 0 1 0 0 0 1
0 0 1 0 1 1 0 0 1
0 0 1 1 0 0 0 0 1
0 0 1 1 0 1 0 0 1
0 0 1 1 1 0 0 0 1
0 0 1 1 1 1 0 0 1
..... .....
Tabla 98-1-2: Contenido de las 16 primeras posiciones de memoria
D) En la Figura 98-1-5 se muestra el diseño 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.
También la entrada de control de la UAL c0 se utiliza para seleccionar la operación a realizar por el
Sumador/Restador.
x2
x1
x0
y1
y0
0 0

x2 x 1 x0 y2 y1 y0 x2 x 1 x0 y2 y1 y0
Comparador c2 Sumador/restador M
M I m S2 S1 S0

0 0

0 3 2 1 0 0 3 2 1 0 0 3 2 1 0 0 3 2 1 0
MUX MUX MUX MUX
1 1 1 1
c0
c1

S3 S2 S1 S0

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

3UR
E
OP
D
H

3UR
E
OP
D
H


Se desea construir un sumador binario con aceleración de arrastres (SBAA) para 2 números binarios X e Y de 3
bits cada uno. Para ello, el diseño 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 función lógica de
sus cuatro salidas: si (suma), ci (acarreo de salida), gi (generación de acarreo) y pi (propagación de
acarreo). A partir de estas funciones lógicas, y empleando únicamente puertas lógicas, diseñe este SBC
modificado.
B) (1.5 puntos) La figura central muestra un circuito de aceleración de arrastres (CAA) de 3 bits con tres
entradas de generación de acarreo gi, tres entradas de propagación de acarreo pi y un acarreo de entrada
c-1. Exprese las funciones lógicas de los acarreos c2, c1 y c0 generados por este módulo. A partir de
estas funciones lógicas, y empleando únicamente puertas lógicas, diseñe este CAA.
C) (1 punto) Utilizando únicamente 3 SBC modificados como los diseñados en A) y el CAA diseñado en
B), construya razonadamente el sumador binario con aceleración de arrastre de 3 bits (SBAA)
solicitado en el enunciado y mostrado en la figura de la derecha.

g2 p2 g1 p1 g0 p0 x2 y2 x1 y1 x0 y0
xi yi

ci ci-1 c-1 c2 c-1


SBC CAA SBAA
modificado de 3 bits

si gi pi c2 c1 c0 s2 s1 s0

Figura 98-3-1: Módulos del problema

6RO
X
F
y
QL

A) Las expresiones que vamos a utilizar para implementar el SBC modificado son:
p i = xi ⊕ y i
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.
ci-1 yi xi

• yi xi

SBC
ci 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 módulo a partir de las entradas de generación de
acarreo gi (i=1,2,3), las entradas de propagación de acarreo pi (i=1,2,3) y el acarreo de entrada c-1, se comienza por
la expresión 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 según se muestra en la Figura 98-3-4. En este diseño
se puede observar cómo los arrastres que se introducen en los SBC modificados son los generados directamente
por el módulo CAA y que, sin embargo, los arrastres generados por estos SBC modificados se quedan sin utilizar.
Esta es la idea fundamental de esta técnica.
p2 g2 p1 g1 p0 g0

• •
• • • p2 g2 p1 g1 p0 g0
• •

• • c-1
• •
CAA c-1

c2 c1 c0

c2 c1 c0
Figura 98-3-3: Circuito de aceleración de arrastres (CAA)

x2 y2 x1 y1 x0 y0

c2 c1 c0
SBC SBC SBC
• c-1
Modificado Modificado Modificado

g2 p2 g1 p1 g0 p0
s2 c1 s1 c0 s0

c2 CAA

y2 x2 y1 x1 y0 x0

c2 c-1
SBAA

s2 s1 s0

Figura 98-3-4: Sumador binario de 3 bits con aceleración de arrastre


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 comparación 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 explicación 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 lógico pedido en este apartado obtenido a partir de las expresiones
anteriores.
x1 y1 x0 y0

x>y x=y x<y x>y x=y x<y

M1 I1 m1 M0 I0 m0

• • x 1 x0 y1 y0
• • • • Comparador
• •
• • M I m
• •
• •

M I m
Figura 2000-2-2: Circuito lógico de un comparador de dos números de 2bits

b) Para calcular el tamaño de la memoria ROM necesaria hay que saber el número 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 selección de la operación 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 números de dos bits tiene tan sólo
3 bits pero, para el resultado del producto de dos números de dos bits se requieren 4 bits. Como el
circuito a diseñar tiene que poder hacer ambas operaciones, su salida ha de tener, necesariamente, 4 bits.
Por tanto, el tamaño 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 debería tener la memoria ROM.
c A4
x1 A3 ROM x 1 x0 y1 y0
x0 A2 Sumador / Multiplicador c c
32 palabras × 4 bits b3 b2 b1 b0
y1 A1
y0 A0
b3 b2 b1 b0

Figura 2000-2-3: Sumador/Multiplicador diseñado con memoria ROM

Dirección memoria Dirección memoria


Contenido Contenido
c x1 x0 y1 y0 c x1 x0 y1 y0

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

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

c) En la Figura 2000-2-4 se muestra el diseño 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. También la entrada de control de la UAL c0 se utiliza para seleccionar la operación a realizar por el
Sumador/Multiplicador.
x1
x0
y1
y0

x 1 x0 y1 y0 x 1 x0 y1 y0
Comparador Sumador/Multiplicador c
M I m b3 b2 b1 b0

0 3 2 1 0 0 3 2 1 0 0 3 2 1 0 0 3 2 1 0
MUX MUX MUX MUX
1 1 1 1
c0
c1

r3 r2 r1 r0

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


Problema - Junio 1ª semana:
A) (1.5 puntos) Diseñar 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 líneas de control; y CK la señal
de reloj. El registro debe ser capaz de realizar los dos desplazamientos siguientes: LICS (Lógico-Izquierda-
Cerrado-Simple) y LDCS (Lógico-Derecha-Cerrado-Simple). Además, el circuito debe permitir la carga en
paralelo de la entrada y mantener la información almacenada sin modificar (no operación: NOP). La
codificación de las entradas de control se muestra en la tabla adjunta.
B) (1 punto) Diseñar 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) Diseñar el mismo registro del apartado A) pero de modo que en lugar de realizar
desplazamientos lógicos (LICS y LDCS) realice desplazamientos algebraicos (también llamados
aritméticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico-
Derecha - Cerrado - Simple).
En los diseños deben utilizarse multiplexores y elementos de memoria D. Explicar detalladamente cada paso.

E3 E2 E1 E0 E

C2 Paralelo/ C2
Paralelo Serie/Serie
C1 CK C1 CK

S3 S2 S1 S0 S
Figura 1: Registros de desplazamiento
Operación C2 C1

NOP 0 0

LICS 0 1

LDCS 1 0

CARGA 1 1

Tabla 1: Codificación de las entradas de control

Solución

Para resolver este problema conviene ver las páginas 255 y ss. del texto base de teoría, así como los
problemas 4-37 y 4-38 de la primera edición del libro de problemas o los problemas 4-39 y 4-40 de la segunda
edición.
A) Las dos operaciones de desplamiento a realizar por el registro de desplazamiento son LICS
(Lógico-Izquierda- Cerrado-Simple) y LDCS (Lógico-Derecha-Cerrado-Simple). La Figura 2 muestra
estos dos tipos de desplazamientos para un registro de 4 bits como el que pide diseñar el enunciado del
problema.

LDCS LICS
Figura 2: Representación gráfica de los desplazamientos LDCS y LICS

Por tanto, la descripción del comportamiento de la salida del circuito es la siguiente:


Q(t ) si Control = NOP
(Q , Q , Q , Q ) si Control = LICS

Q(t + 1) =  2 1 0 3
(Q0 , Q3 , Q2 , Q1 ) si Control = LDCS
( E 3, E 2, E1, E 0) si Control = CARGA
donde Q(t) representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t. Análogamente Q(t +1)
representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t+1.
Para diseñar 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 función de las señales de control C1 y C2 del registro, seleccione el valor adecuado a
introducir en cada registro para que se comporte según la descripción mencionada antes. El resultado del diseño se
muestra en la Figura 3.
E3 E2 E1 E0

• • • • E3 E2 E1 E0
• •
• • • • • •
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
MUX MUX MUX MUX
C2 Paralelo/
C1 • • •
C2 • • • C1 Paralelo
CK
Reloj
D D D D
Q3 Q2 Q1 Q0
• • S3 S2 S1 S0
• •
S3 S2 S1 S0
Figura 3: Registro LDCS y LICS con entrada paralelo / salida paralelo

B) En este segundo apartado, el enunciado pide diseñar el mismo registro de antes, con desplazamientos LDCS
y LICS, pero con entrada serie / salida serie. Ni en el módulo de la Figura 1 ni el enunciado se menciona en
qué bit se comienza la carga serie, ni en qué bit se efectúa 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

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

Por tanto, la descripción del comportamiento del estado del circuito es la siguiente:

 Q (t ) si Control = NOP
 (Q , Q , Q , Q ) si Control = LICS

Q (t + 1) =  2 1 0 3
(Q0 , Q3 , Q2 , Q1 ) si Control = LDCS
( E , Q3 , Q2 , Q1 ) si Control = CARGA

Haciendo las modificaciones oportunas en el diseño de la Figura 3 para contemplar los cambios pedidos, el
resultado se muestra en la Figura 5.
E

• •• • • • • • E
• • •• • • •
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
MUX MUX MUX MUX
C1 •• • • C2
C2 • • • Serie/Serie
Reloj C1 CK
D D D D
Q3 Q2 Q1 Q0

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

C) En este último caso, se va a suponer que la codificación de las entradas de control es la mostrada en la Tabla
2. En la Figura 6 se muestra la representación gráfica 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.

Operación C2 C1

NOP 0 0

AICS 0 1

ADCS 1 0

CARGA 1 1

Tabla 2: Codificación de las entradas de control

S S

ADCS AICS
Figura 6: Representación gráfica de los desplazamientos ADCS y AICS

Por tanto, la descripción en este caso del comportamiento de la salida del circuito es la siguiente:

Q(t ) si Control = NOP


(Q , Q , Q , Q ) si Control = AICS

Q(t + 1) =  3 1 0 2
(Q3 , Q0 , Q2 , Q1 ) si Control = ADCS
( E 3, E 2, E1, E 0) si Control = CARGA
Siguiendo el mismo procedimiento de antes, la Figura 7 contiene el diseño pedido.

E3 E2 E1 E0

E3 E2 E1 E0
••
• •
• • •• •
•••
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
MUX MUX MUX MUX
C2 Paralelo/
C1 • • •
C2 • • • C1 Paralelo
CK
Reloj
D D D D
Q3 Q2 Q1 Q0
• • S3 S2 S1 S0
• •
S3 S2 S1 S0
Figura 7: Registro LDCS y LICS con entrada paralelo / salida paralelo
Problema 4.44

En la Fig. 1 se muestra el diagrama de bloques de un sumador binario de dos números de 2 bits. Las entradas al sumador
son los dos bits de cada sumando (X=x1x0, Y=y1y0). Las salidas son los dos bits de suma (s=s1s0) y el bit de arrastre (c1).
A) (0.75 puntos) Obtenga la tabla de la verdad de las
salidas (c1, s1, s0) del sumador de la Fig. 1 en función
y1 x1 y0 x0 y1 x1 y0 x0 de las entradas (y1, y0, x1, x0).
c1 c1 c−1 B) (1 punto) Obtenga las funciones lógicas simplificadas
s1 s0 s1 s0 de las tres salidas (c1, s1, s0) del sumador de la Fig. 1
en función de las entradas (y1, y0, x1, x0). Emplee para
Fig. 1 Fig. 2 ello mapas de Karnaugh.
C) (0.75 puntos) A partir de las funciones lógicas calculadas en el apartado anterior, realizar el sumador binario de 2
bits mostrado en la Fig. 1 mediante un circuito combinacional de dos niveles (AND-OR).
D) (1.5 puntos) Si al sumador binario de la Fig. 1 se le añade una nueva entrada, “bit de arrastre de la etapa anterior”
(c-1), se obtiene el sumador representado en la Fig. 2. Empleando módulos sumadores como el mostrado en la
Fig.2, multiplexores y puertas lógicas, diseñe una ALU aritmética de 4 bits que realice las cinco operaciones
siguientes sobre dos números A y B de 4 bits: suma (Z=A+B), resta (Z=A-B), transfiere A (Z=A), incrementa A
en 1 (Z=A+1) y decrementa A en 1 (Z=A-1).

Solución

Los apartados A), B) y C) son similares a las cuestiones planteadas en los problemas 4-1, 4-2 y 4-3, en los que se pide
obtener la tabla de la verdad, la función lógica y diseñar el circuito AND-OR de diferentes circuitos sumadores y
restadores. El apartado D) es análogo al problema 4-30.
A) Obtenga la tabla de la verdad de las salidas (c1, s1, s0) del sumador de la Fig. 1 en función de las entradas (y1, y0, x1,
x0).
y1 y0 x1 x0 c1 s1 s0
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 0
0 0 1 1 0 1 1
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 0 1 1
0 1 1 1 1 0 0
1 0 0 0 0 1 0
1 0 0 1 0 1 1
1 0 1 0 1 0 0
1 0 1 1 1 0 1
1 1 0 0 0 1 1
1 1 0 1 1 0 0
1 1 1 0 1 0 1
1 1 1 1 1 1 0

B) Obtenga las funciones lógicas simplificadas de las tres salidas (c1, s1, s0) del sumador de la Fig. 1 en función de las
entradas (y1, y0, x1, x0). Emplee para ello mapas de Karnaugh.
x1 x0
y1 y0 00 01 11 10
00 0 0 0 0
x1 ⋅ x0 ⋅ y0
01 0 0 1 0 c1 = x1 ⋅ x0 ⋅ y0 + x0 ⋅ y1 ⋅ y0 + x1 ⋅ y1
x0 ⋅ y1 ⋅ y 0
11 0 1 1 1
x1 ⋅ y1
10 0 0 1 1

x1 ⋅ x0 ⋅ y1 ⋅ y0
x1 x0
y1 y0 00 01 11 10
x1 ⋅ y1 ⋅ y0
00 0 0 1 1 x1 ⋅ x0 ⋅ y1
01 0 1 0 1 s1 = x1 ⋅ x0 ⋅ y1 ⋅ y0 + x1 ⋅ x0 ⋅ y1 + x1 ⋅ y1 ⋅ y0 +
11 1 0 1 0 x1 ⋅ x0 ⋅ y1 ⋅ y0 x1 ⋅ y1 ⋅ y0 + x1 ⋅ x0 ⋅ y1 + x1 ⋅ x0 ⋅ y1 ⋅ y0
10 1 1 0 0

x1 ⋅ x0 ⋅ y1 x1 ⋅ y1 ⋅ y0
x1 x0
y1 y0 00 01 11 10
00 0 1 1 0
x0 ⋅ y0
01 1 0 0 1 s0 = x0 ⋅ y0 + x0 ⋅ y0
11 1 0 0 1
10 0 1 1 0
x0 ⋅ y0

C) A partir de las funciones lógicas calculadas en el apartado anterior, realizar el sumador binario de 2 bits mostrado en la
Fig. 1 mediante un circuito combinacional de dos niveles (AND-OR).

x1 x0 y1 y0

c1 = x1 ⋅ x 0 ⋅ y0 + x0 ⋅ y1 ⋅ y0 + x1 ⋅ y1

s1 = x1 ⋅ x0 ⋅ y1 ⋅ y 0 + x1 ⋅ x0 ⋅ y1 +
x1 ⋅ y1 ⋅ y0 + x1 ⋅ y1 ⋅ y0 +
x1 ⋅ x0 ⋅ y1 + x1 ⋅ x0 ⋅ y1 ⋅ y0

s0 = x0 ⋅ y0 + x0 ⋅ y0
D) Si al sumador binario de la Fig. 1 se le añade una nueva entrada, “bit de arrastre de la etapa anterior” (c-1), se obtiene
el sumador representado en la Fig. 2. Empleando módulos sumadores como el mostrado en la Fig.2, multiplexores y
puertas lógicas, diseñe una ALU aritmética de 4 bits que realice las cinco operaciones siguientes sobre dos números A y
B de 4 bits: suma (Z=A+B), resta (Z=A-B), transfiere A (Z=A), incrementa A en 1 (Z=A+1) y decrementa A en 1 (Z=A-
1).
En el apartado 4.1.4 del texto de teoría se explica cómo realizar la conexión de circuitos sumadores con bit de acarreo y
bit de arrastre de la etapa anterior, con el fin de obtener sumadores de un mayor número de bits. Puede conseguirse un
sumador de 4 bits, conectando dos sumadores de 2 bits como el de la Fig. 2, de la forma siguiente:
y3 x3 y2 x2 y1 x1 y0 x0

y1 x1 y0 x0 y1 x1 y0 x0
c3 c1
c1 c−1 c1 c−1
s1 s0 s1 s0

s3 s2 s1 s0
En el problema 4-30 se explica cómo realizar una ALU, empleando un sumador de 4 bits y multiplexores, que
proporciona la funcionalidad pedida en el enunciado del apartado D) del examen. El diseño se realiza de la forma
siguiente:

m
m1 2
m0
B3 A3 B2 A2 B1 A1 B0 A0
01 01 01 01

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
MUX MUX MUX MUX

Y3 X3 Y2 X2 Y1 X1 Y0 X0
y1 x1 y0 x0 y1 x1 y0 x0
c3 c1
c1 c−1 c1 c−1
s1 s0 s1 s0

Z3 Z2 Z1 Z0
La ALU tiene tres señales de control: m0, m1 y m2. La selección de las entradas de datos de los multiplexores se hace
mediante m0 y m1. La entrada m2 se conecta al arrastre de entrada del primer sumador. Las operaciones aritméticas
pedidas en el enunciado pueden generarse de la manera siguiente:
Señales de control Entradas al sumador Salida
m2 m1 m0 X Y Z
0 0 0 A B A+B
1 0 1 A B A+B+1=A-B
0 1 0 A 0000 A
1 1 0 A 0000 A+1
0 1 1 A 1111 A-1
Problema 4.46
Se desea realizar una Unidad Aritmético Lógica (UAL) como la mostrada en la figura, con dos entradas de datos,
X (x1x0) e Y (y1y0), que representan números enteros positivos sin signo, una entrada de control C (c1c0) y una
salida de datos R (r3r2r1r0).
2 2

x 1x 0 y1y0
c 1c 0
2 UAL
r3 r2 r1 r0

El funcionamiento de la UAL viene descrito por la siguiente tabla:

c1c0 = 00 : resta R = X – Y (R=0 si Y>X)


c1c0 = 01 : div. entera R = X / Y (cociente entero) si Y=0 → R=0
c1c0 = 10 : comparación 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 )

Para resolver el problema, seguir obligatoriamente los siguientes apartados:


A) (1 punto) Diseñar un comparador de números de dos bits.
B) (2 puntos) Diseñar un restador/divisor de dos números de 2 bits utilizando únicamente un módulo de
memoria ROM. ¿Cuál es el tamaño necesario para este módulo 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) (1 punto) Utilizando únicamente los módulos diseñados en los apartados anteriores, los módulos
combinacionales necesarios y puertas lógicas, diseñe la UAL pedida.

Solución

A) El enunciado no propone ninguna técnica concreta para implementar el comparador de dos números de dos
bits. Una forma de hacerlo consiste en emplear 2 comparadores de 1 bit.
Si el resultado de la comparación de x e y es: M, I y m, se cumple que:
M =1 si x > y
I =1 si x = y
m =1 si x < y
La tabla de verdad que describe el funcionamiento del comparador de 2 bits se muestra en la Tabla 1.
x y M I m

0 0 0 1 0

0 1 0 0 1

1 0 1 0 0

1 1 0 1 0

Tabla 1: Tabla de verdad de un comparador de 1 bit

De la Tabla 1 se deducen las siguientes expresiones booleanas para M, I y m:


M= x y

I= x y +xy= x y + x y
m= x y
y el correspondiente circuito lógico (ver Figura 1).
x • • M

y • m

Figura 1: Circuito lógico de un comparador de 1 bit

Utilizando dos comparadores de este tipo con salidas Mi, Ii y mi se generan las salidas M, I y m del
comparador de 2 bits mediante las siguientes funciones booleanas:
M = M1 + I1 M0
I = I1 I0
m = m1 + I1 m0
La explicación 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 2 muestra el circuito lógico solicitado en este apartado obtenido a partir de las expresiones
anteriores.
x1 y1 x0 y0

x>y x=y x<y x>y x=y x<y

M1 I1 m1 M0 I0 m0

• • x 1 x0 y1 y0
• • • • Comparador
• •
• • M I m
• •
• •

M I m
Figura 2: Circuito lógico de un comparador de dos números de 2 bits

B) Para calcular el tamaño de la memoria ROM necesaria hay que saber el número 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 selección de la operación a realizar por el circuito. Esta
última entrada de control va a tener el siguiente significado:
• c = 0: resta
• c = 1: división entera
• Salidas: Este circuito tiene 2 salidas: el resultado de la diferencia y de la división entera de dos números
de dos bits tiene tan sólo 2 bits.
Por tanto, el tamaño de la memoria ROM necesario para implementar el sumador es de: 25 palabras × 2
bits/palabra. El significado de cada una de sus entradas y salidas se muestra en la Figura 3. Finalmente, en la Tabla
2 se muestra el contenido completo que debería tener la memoria ROM1. Para realizar esta tabla se ha tenido en
cuenta que se trata de números enteros sin signo y las condiciones propuestas en la tabla del enunciado:
• Resta: R=X-Y (R=0 si Y>X)
• División entera: R=X/Y (Cociente entero) si Y=0 -> R=0

1. Para realizar esta tabla tan sólo se requiere tener claros los conceptos elementales de resta y de división entera, y
no es necesario emplear nada de lo tratado en Sección 4.6: Divisores binarios del texto base de teoría, sección que
no es materia de examen.
c A4
x1 A3 ROM x 1 x0 y1 y0
x0 A2 Restador / Divisor c c
32 palabras × 2 bits b1 b0
y1 A1
y0 A0
b1 b0

Figura 3: Sumador/Multiplicador diseñado con memoria ROM

Dirección memoria Dirección memoria


Contenido Contenido
c x1 x0 y1 y0 c x1 x0 y1 y0

A4 A3A2 A1A0 b1 b0 A4 A3A2 A1A0 b1 b0

0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 1 0 0 0 1 0 0
0 0 0 1 0 0 0 1 0 0 1 0 0 0
0 0 0 1 1 0 0 1 0 0 1 1 0 0
0 0 1 0 0 0 1 1 0 1 0 0 0 0
0 0 1 0 1 0 0 1 0 1 0 1 0 1
0 0 1 1 0 0 0 1 0 1 1 0 0 0
0 0 1 1 1 0 0 1 0 1 1 1 0 0
0 1 0 0 0 1 0 1 1 0 0 0 0 0
0 1 0 0 1 0 1 1 1 0 0 1 1 0
0 1 0 1 0 0 0 1 1 0 1 0 0 1
0 1 0 1 1 0 0 1 1 0 1 1 0 0
0 1 1 0 0 1 1 1 1 1 0 0 0 0
0 1 1 0 1 1 0 1 1 1 0 1 1 1
0 1 1 1 0 0 1 1 1 1 1 0 0 1
0 1 1 1 1 0 0 1 1 1 1 1 0 1

Tabla 2: Contenido de la memoria ROM

C) En la Figura 4 se muestra el diseño 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.
También la entrada de control de la UAL c0 se utiliza para seleccionar la operación a realizar por el
Restador/Divisor.
x1
x0
y1
y0

x 1 x0 y1 y0 x 1 x0 y1 y0
Comparador Restador / Divisor c
M I m b1 b0

0 0 0 0 0

0 3 2 1 0 0 3 2 1 0 0 3 2 1 0 0 3 2 1 0
MUX MUX MUX MUX
1 1 1 1
c0
c1

r3 r2 r1 r0

Figura 4: UAL pedida en el problema


A continuación, se muestra el diagrama de bloques y la tabla de
operaciones de una ALU lógica. Tiene dos entradas de cuatro bits
(A=a3a2a1a0, B=b3b2b1b0), una entrada de control de dos bits (C=c1c0) y una
salida de cuatro bits (Z=z3z2z1z0). Suponiendo que se dispone de conexiones
a “0” lógico y a “1” lógico, indique cuál de las siguientes afirmaciones
acerca de esta ALU es correcta

SOLUCIÓN
[Ver el problema 4-31]
La estructura de la ALU según la opción A (ver la Figura ) tiene dos
entradas A (ai: i = 0..3) y B (bi: i = 0..3) que se conectan al conjunto de
puertas lógicas que realizan las operaciones que se indican en la tabla del
enunciado. Los cuatro multiplexores permiten elegir la operación deseada.
La selección de las entradas de datos de los multiplexores se controla
mediante c0 y c1 tal y como se muestra en la tabla del enunciado

En este diseño se ha tenido en cuenta que:

Por lo tanto la opción A es cierta.


En la Figura se muestra el diseño según la opción B, que también es
correcta.

Respuesta: C.
En la figura se muestra el diagrama de bloques de un circuito y las expresiones lógicas
que permiten calcular sus salidas a partir de sus entradas. Indique cuál de las
afirmaciones siguientes acerca de este circuito es correcta:

A) Cuando p = 0, es un restador binario completo.


B) Cuando p = 1, es un sumador binario completo.
C) Las dos afirmaciones anteriores son correctas.
D) Ninguna de las anteriores es correcta.

Véase el problema 4.4. Cuando p = 0, las expresiones del enunciado corresponden


con un restador binario completo:

Cuando p = 1, corresponden con un sumador binario completo:

Respuesta: C (Las dos afirmaciones anteriores son correctas)


El contenido inicial de un registro de desplazamiento de 4 bits es 0111.
Entonces, se realiza una operación de desplazamiento, tras lo cual el
contenido del registro pasa a ser 0110. Señale cuál de las afirmaciones
siguientes es correcta.
A) La operación de desplazamiento podría ser AIAS.
B) La operación de desplazamiento podría ser AICS.
C) Las dos anteriores son correctas.
D) Ninguna de las anteriores.

Respuesta
Véase el apartado 4.9.1 del texto base de teoría. El contenido inicial del
registro de desplazamiento es 0111. Tras la operación de desplazamiento
pasa a ser 0110. La respuesta A, “la operación de desplazamiento podría
ser AIAS”, es correcta. El bit más significativo se mantiene, y se produce
un desplazamiento hacia la izquierda de los tres bits menos significativos,
introduciendo un 0 en el bit menos significativo.

La respuesta B, “la operación de desplazamiento podría ser AICS”, es


falsa. En caso de haberse producido este desplazamiento, los tres bits
menos significativos deberían seguir siendo 1, cosa que no sucede.

Por lo anterior, las respuestas C y D son falsas.


Respuesta: A (La operación de desplazamiento podría ser AIAS)
Empleando únicamente una ROM, se pretende diseñar un comparador de
dos números de 4 bits que genere las funciones “mayor que”, “menor que”
e “igual que”. Indique cuál de las siguientes ROM podría emplearse.
4
A) 2 palabras, 4 bits/palabra
8
B) 2 palabras, 4 bits/palabra
C) Las dos anteriores
D) Ninguna de las anteriores
La pregunta está basada en el problema 4-44. En un caso general para
núm. entradas
se necesitará una memoria ROM de un tamaño mínimo: (2 )
palabras × (núm. salidas) bits/palabra
En el caso del comparador propuesto el número de entradas es 4 + 4 =
8, y el número de salidas es 3, por lo que se necesitará una memoria ROM
8
de un tamaño mínimo de 2 palabras × 3 bits/palabra. La respuesta A
propone una capacidad con un número de palabras inferior al necesario y
no vale.
Sin embargo la respuesta B tiene capacidad mayor que la necesaria por
8
lo que se podría emplear para diseñar el comparador. Respuesta: B( 2
palabras × 4 bits/palabra)
Diseño de transferencia de registros

1ª Semana

4.- Se desea diseñar con memoria ROM una Unidad de Control con 200 estados, que genere 37 señales de control totalmente
independientes, y que reciba 9 señales de condición pero en cada estado va a ser consultada como máximo una de ellas. Utilizando
en el diseño un multiplexor con selección por campo haría falta un multiplexor con:
A) 3 entradas de selección. B) 4 entradas de datos. C) 16 entradas de datos. D) Ninguna de la anteriores.

Problema –
El siguiente algoritmo describe una determinada operación de un sistema digital.
A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando, si son necesarios, los
módulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertas lógicas y los módulos
combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al
bus vuelcan datos múltiples dispositivos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada 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 solución.
Nota: A0 es el bit menos significativo de A.

1: Declaración: A[8], B[8], Cont[3];


2: A  Bus;
3: B 1;
4: for Cont=0 to 3 do
5: if A1A001 then
6: B 0;
7: endif;
8: Despl.CerradoDcha(A);
9: Despl.CerradoDcha(A);
10: endfor;
11: Bus B;
12: Parar;

Página 8
Diseño de transferencia de registros
Elementos:

Página 9
Diseño de transferencia de registros

Página 10
Diseño de transferencia de registros

Página 11
Diseño de transferencia de registros

Página 12
Diseño de transferencia de registros
SEPTIEMBRE 2004 RESERVA

JUNIO 2004 2ª SEMANA

Septiembre 2007 RESERVA

Página 13
A continuación, se muestra el diagrama de bloques y la tabla de
operaciones de una ALU lógica. Tiene dos entradas de cuatro bits
(A=a3a2a1a0, B=b3b2b1b0), una entrada de control de dos bits (C=c1c0) y una
salida de cuatro bits (Z=z3z2z1z0). Suponiendo que se dispone de conexiones
a “0” lógico y a “1” lógico, indique cuál de las siguientes afirmaciones
acerca de esta ALU es correcta

SOLUCIÓN
[Ver el problema 4-31]
La estructura de la ALU según la opción A (ver la Figura ) tiene dos
entradas A (ai: i = 0..3) y B (bi: i = 0..3) que se conectan al conjunto de
puertas lógicas que realizan las operaciones que se indican en la tabla del
enunciado. Los cuatro multiplexores permiten elegir la operación deseada.
La selección de las entradas de datos de los multiplexores se controla
mediante c0 y c1 tal y como se muestra en la tabla del enunciado

En este diseño se ha tenido en cuenta que:

Por lo tanto la opción A es cierta.


En la Figura se muestra el diseño según la opción B, que también es
correcta.

Respuesta: C.
En la figura se muestra el diagrama de bloques de un circuito y las expresiones lógicas
que permiten calcular sus salidas a partir de sus entradas. Indique cuál de las
afirmaciones siguientes acerca de este circuito es correcta:

A) Cuando p = 0, es un restador binario completo.


B) Cuando p = 1, es un sumador binario completo.
C) Las dos afirmaciones anteriores son correctas.
D) Ninguna de las anteriores es correcta.

Véase el problema 4.4. Cuando p = 0, las expresiones del enunciado corresponden


con un restador binario completo:

Cuando p = 1, corresponden con un sumador binario completo:

Respuesta: C (Las dos afirmaciones anteriores son correctas)


El contenido inicial de un registro de desplazamiento de 4 bits es 0111.
Entonces, se realiza una operación de desplazamiento, tras lo cual el
contenido del registro pasa a ser 0110. Señale cuál de las afirmaciones
siguientes es correcta.
A) La operación de desplazamiento podría ser AIAS.
B) La operación de desplazamiento podría ser AICS.
C) Las dos anteriores son correctas.
D) Ninguna de las anteriores.

Respuesta
Véase el apartado 4.9.1 del texto base de teoría. El contenido inicial del
registro de desplazamiento es 0111. Tras la operación de desplazamiento
pasa a ser 0110. La respuesta A, “la operación de desplazamiento podría
ser AIAS”, es correcta. El bit más significativo se mantiene, y se produce
un desplazamiento hacia la izquierda de los tres bits menos significativos,
introduciendo un 0 en el bit menos significativo.

La respuesta B, “la operación de desplazamiento podría ser AICS”, es


falsa. En caso de haberse producido este desplazamiento, los tres bits
menos significativos deberían seguir siendo 1, cosa que no sucede.

Por lo anterior, las respuestas C y D son falsas.


Respuesta: A (La operación de desplazamiento podría ser AIAS)
Empleando únicamente una ROM, se pretende diseñar un comparador de
dos números de 4 bits que genere las funciones “mayor que”, “menor que”
e “igual que”. Indique cuál de las siguientes ROM podría emplearse.
4
A) 2 palabras, 4 bits/palabra
8
B) 2 palabras, 4 bits/palabra
C) Las dos anteriores
D) Ninguna de las anteriores
La pregunta está basada en el problema 4-44. En un caso general para
núm. entradas
se necesitará una memoria ROM de un tamaño mínimo: (2 )
palabras × (núm. salidas) bits/palabra
En el caso del comparador propuesto el número de entradas es 4 + 4 =
8, y el número de salidas es 3, por lo que se necesitará una memoria ROM
8
de un tamaño mínimo de 2 palabras × 3 bits/palabra. La respuesta A
propone una capacidad con un número de palabras inferior al necesario y
no vale.
Sin embargo la respuesta B tiene capacidad mayor que la necesaria por
8
lo que se podría emplear para diseñar el comparador. Respuesta: B( 2
palabras × 4 bits/palabra)
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 5: Diseño de transferencia


entre registros
SOLUCION A LOS PROBLEMAS
PROPUESTOS EN EXAMEN

Curso 2007-2008
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

PROBLEMAS
TEMA 5: Diseño de transferencia entre registros
Problemas propuestos en examen
5.1 Se desea diseñar con memoria ROM una Unidad de Control con 200 estados, que genere 37 señales de
control totalmente independientes, y que reciba 9 señales de condición pero en cada estado va a ser consultada
como máximo una de ellas. Indicar cual de las siguientes afirmaciones es cierta : Si en el diseño interesa
minimizar, sobre todo, el tamaño del multiplexor a utilizar, se emplearía.
I. Un MUX con selección por estado.
II. Un MUX con selección por campo.

5.2 Se desea diseñar una Unidad de Control con 18 estados, que genere 30 señales de control totalmente
independientes y reciba 4 señales de condición, utilizando memoria ROM pero minimizando la capacidad
necesaria de ésta, ya que en cada estado se utiliza, como máximo, una única condición. Utilizando un
multiplexor con selección por campo para diseñar esta Unidad de Control, explicar razonadamente el tamaño del
registro, del multiplexor y de la memoria ROM que sería necesario utilizar.

5.3 El siguiente algoritmo describe una determinada operación de un sistema digital.


A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos dibujados
abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
módulo-8 bidireccional y circuitos triestado de conexión unidireccional con control de 8 bits; además de
puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que
considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos y evitar en su
diseño posibles conflictos eléctricos entre ellos.
B) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada en el
apartado A) empleando la técnica de los elementos de retardo. Detalle y explique claramente todos y cada
uno de los pasos seguidos hasta obtener la solución.

1: Declaración: A[8], B[8], Cont[3]; Bus[8] Ck E A B Ck E


2: A ← Bus; ED c0
3: B ← Bus, Cont=0; c0 c0
Reg. Desp. UAL Contador c0
4: while Cont ≠ 7 c1 c1
5: if A es par then
EI Q R Q S
6: A ← A – B, Cont = (Cont +1) mod
8;
7: else
8: B ← B + A, Cont = (Cont -1) mod 8; c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S
9: endif; 00 Q(t) 0 A+B 00 Q(t) 0 -
10: endwhile; 01 Des. Dcha. 1 A-B 01 Q(t) -1 mod 8 1 E
11: Bus ← B; 10 Des. Izq. 10 Q(t)+1 mod 8
12: Bus ← A; 11 Carga 11 0
13: Parar;

5.4 Se desea diseñar con memoria ROMuna Unidad de Control con 200 estados, que genere 37 señales de
control totalmente independientes, y que reciba 9 señales de condición pero en cada estado va a ser consultada
como máximo una de ellas. Utilizando en el diseño un multiplexor con selección por campo haría falta una
memoria ROM con tamaño de:
A) 28 palabras × 45 bits B) 29 palabras × 45 bits C) 29 palabras × 49 bits D) Ninguna de la
anteriores

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.5 El siguiente algoritmo describe una determinada operación de un sistema digital.


A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos dibujados
abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertas lógicas y
los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios.
Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos y evitar en su diseño posibles conflictos
eléctricos entre ellos.
B) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada en el
apartado A) empleando un registro de desplazamiento. Detalle y explique claramente todos y cada uno de
los pasos seguidos hasta obtener la solución.

1: Declaración: A[8], B[8], Cont[3]; Ck E A B Ck E E


Bus[8]
2: A ← Bus; ED c0 c0
c0
3: B ← Bus, Cont=0; Reg. Desp. UAL Contador c0
4: while A < 128 EI c1 c1
Q R Q S
5: if Cont < 4 then
6: A ← A + Cont; c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S
7: else 00 Q(t) 0 A+B 00 Q(t) 0 -
8: A ← B + A; 01 Des. Dcha. 1 A-B 01 0 1 E
9: endif; 10 Des. Izq. 10 Q(t)+1 mod 8
10: Cont = (Cont +1) mod 8; 11 Carga 11 Carga
11: endwhile;
12: Bus ← B;
13: Bus ← A;
15: Parar;

5.6 Se desea diseñar una Unidad de Control con 18 estados, que genere 30 señales de control totalmente
independientes y reciba 4 señales de condición, utilizando memoria ROM pero minimizando la capacidad
necesaria de ésta, ya que en cada estado se utiliza, como máximo, una única condición. Utilizando un
multiplexor con selección por estado, para diseñar esta Unidad de Control sería necesario utilizar:
A) Un registro de 5 bits, un MUX 32:1 y una ROM de 2 6 palabras × 35 bits/palabra.
B) Un registro de 18 bits, un MUX 8:1 y una ROM de 2 5 palabras × 48 bits/palabra.
C) Un registro de 5 bits, un MUX 8:1 y una ROM de 2 6 palabras × 30 bits/palabra.
D) Ninguna de las anteriores es cierta.

5.7 A la hora de diseñar una Unidad de Control con 32 estados, que genere 4 señales de control, reciba 2 señales
de condición y en un estado se puedan consultar las dos condiciones simultáneamente, decir si las siguientes
afirmaciones son ciertas:
5
A) Diseñándola con “elementos de retardo” sería necesario utilizar 5 biestables (2 =32).
7
B) Diseñándola con memoria ROM haría falta un módulo de 2 palabras × 5 bits/palabra.
C) Diseñándola con un contador haría falta un contador módulo-5.
D) Ninguna de las anteriores es cierta.

5.8 A la hora de diseñar una Unidad de Control con 64 estados, que genere 30 señales de control totalmente
independientes, reciba 5 señales de condición que pueden ser consultadas simultáneamente en cualquier estado,
decir si las siguientes afirmaciones son ciertas:
6
A) Diseñándola con “elementos de retardo” sería necesario utilizar 6 biestables (2 =64).
11
B) Diseñándola con memoria ROM haría falta un módulo de 2 palabras × 30 bits/palabra.
C) Diseñándola con un contador haría falta un contador módulo-64.
D) Ninguna de las anteriores es cierta.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.9 El siguiente algoritmo describe una determinada operación de un sistema digital.


A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos dibujados
abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertas lógicas y
los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios.
Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.
B) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada en el
apartado A) empleando cualquiera de los métodos propuestos en la asignatura. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solución.

1: Declaración: A[8], B[8], Cont[3]; Ck E A B Ck E


2: A ← Bus;
3: B ← Bus; ED c0 c0
c0
4: for Cont = 0 to 7 do Reg. Desp. UAL Contador c0
5: if Cont es par then EI c1 c1
Q R Q S
6: A ← A + B; A ← A / 2
7: else c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S
8: B ← B - A; B ← B * 2
00 Q(t) 0 A+B 00 Q(t) 0 -
9: endif;
10: endfor; 01 Des. Dcha. 1 A-B 01 0 1 E
11: Bus ← A; 10 Des. Izq. 10 Q(t)+1 mod 8
12: Bus ← B; 11 Carga 11 Q(t)
13: Parar;

5.10 El siguiente algoritmo describe una determinada operación 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 módulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8
bits cada una y un contador módulo-8; además de biestables tipo D, puertas lógicas y los módulos
combinacionales que considere necesarios:
A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo.

B) Diseñar la Unidad de Control, utilizando la técnica de elementos de retardo, que ejecute este algoritmo con la
Unidad de Procesamiento diseñada en el apartado A)

E A B
1: Declaración de registros : A[8], B[8], C[8], ED
c0 c0 c0
Contador[3] Reg. despl. c1
UAL c1 Contador c1
2: A ← Bus Q R Q
3: B ← Bus
4: C ← Bus
5: for Contador = 0 to 7 do
6: begin c1c0 Q(t+1) c1c0 R c1c0 Q(t+1)
7: if C(0)≠C(1) then A ← A / B 00 Nada 00 A+B 00 Q(t)
8: else A ← A + B endif 01 Carga 01 A-B 01 0
10 Des. Dcha. 10 A*B 10 Q(t)+1 mod 8
9: Desplazar derecha (C)
11 Nada 00 A/B 11 Q(t)
10: end
11: Parar;

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.11 El siguiente algoritmo describe una determinada operación de un sistema digital, siendo C(i) el bit i del
registro C (C(0) es el bit menos significativo).
a) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos dibujados
abajo : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador módulo-
8 y un circuito triestado de conexión unidireccional con control de 8 bits, además de puertas logicas y los
módulos combinacionales que considere necesarios. En el desplazamiento a la derecha se introduce un 0.
b) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada 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
utilización de una ROM de tamaño mínimo

1: Declaración: A[8], B[8], C[8], Contador [3] ;


2: A←Bus;
3: B←Bus;
4: C←Bus;
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: Bus←A;
12: Parar ;
Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S
c1c0 Q(t+1) c1c0 R c1c0 Q(t+1) c0 S
00 Q(t) 00 A+B 00 Q(t) 0 -
01 Carga 01 A-B 01 0 1 E
10 Des. Dcha 10 A*B 10 Q(t)+1 mod 8
11 Q(t) 11 A/B 11 Q(t)

5.12 Diseñe 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) Diseñe razonadamente la unidad de
1 : Declaración de registros: A[8], X[8] ;
procesamiento, utilizando los recursos que 2 : Declaración de buses : Bus-Entrada[8], Bus-Salida[8];
considere necesarios. 3 :Inicio: X←Bus-Entrada ;
b) Describa todas las señales de control de la 4 : A←Bus-Entrada ;
Unidad de Procesamiento diseñada en A). 5 : Test: if X=255 then go to Sumar ;
c) Dibuje el diagrama de estados de una 6 : Restar: A←A-1 ;
Unidad de Control que realice el algoritmo 7 : go to Sacar ;
propuesto. Describa en forma de tabla, las 8 : Sumar : A←A+1 ;
microoperaciones y las señales de control 9 : Sacar : Bus-Salida←A ;
activadas en cada uno de los estados. 10 : Parar : go to Parar ;
d) Diseñe razonadamente la Unidad de
Control, empleando cualquiera de las técnicas de diseño estudiadas a lo largo del curso. Indique claramente
todos los pasos seguidos.

5.13 Se desea diseñar con memoria ROM una Unidad de Control con 200 estados, que genere 37 señales de
control totalmente independientes, y que reciba 9 señales de condición pero en cada estado va a ser consultada
como máximo una de ellas. Utilizando en el diseño un multiplexor con selección por campo ¿Cuantas entradas
de datos tendría el multiplexor utilizado ?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.14 Se desea diseñar con una memoria ROM una unidad de control con 128 estados, que genere 244 señales de
control totalmente independientes y que reciba 20 señales de condición pero en cada estado van a ser
consultadas como máximo 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 diseño con selección por estado el coste de la ROM es de 640 ptas.
II) Si se utiliza un diseño con selección por campo el coste de la ROM es de 640 ptas.

5.15 El siguiente algoritmo describe una determinada operación de un sistema digital.

1: Declaración: 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) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos de
la Figura : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertas lógicas y
los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios.
Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada
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 solución.
Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S


00 Q(t) 0 A+B 00 Q(t) 0 -
01 Des. Dcha 1 A-B 01 0 1 E
10 Des. Izqa 10 Q(t)-1 mod 8
11 Carga 11 Q(t)

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.16 El siguiente algoritmo describe una determinada operación de un sistema digital.

1: Declaración: 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) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos de
la Figura 2: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador
módulo-16 bidireccional y circuitos triestado de conexión unidireccional con control de 8 bits; además de
puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que
considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos y evitar en su
diseño posibles conflictos eléctricos entre ellos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada
en el apartado A) empleando la técnica de los elementos de retardo. Detalle y explique claramente todos y
cada uno de los pasos seguidos hasta obtener la solución.

Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S


00 Q(t) 0 A+B 00 Q(t) 0 -
01 Des. Dcha 1 A-B 01 Q(t)-1 mod 16 1 E
10 Des. Izqa 10 Q(t)+1 mod 16
11 Carga 11 0

Figura 2: Módulos secuenciales del problema con sus tablas de funcionamiento.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.17 El siguiente algoritmo describe una determinada operación de un sistema digital.

1: Declaración: A[8], B[8], Cont[3];


2: A ← Bus;
3: B ←1;
4: for Cont = 0 to 3 do
5: if A1 A0 ≠ 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) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando, si son
necesarios, los módulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de
8 bits cada una, un contador módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits;
además de puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores)
que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada
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 solución.

Nota: A0 es el bit menos significativo de A.

Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S


00 Q(t) 0 A+B 00 Q(t) 0 -
01 Des. Dcha 1 A-B 01 0 1 E
10 Des. Izqa 10 Q(t)+1 mod 8
11 Carga 11 Q(t)

5.18 Considérese el diagrama de estados, correspondiente a una unidad de control, mostrado en la figura
adjunta. Señale cuál de las siguientes afirmaciones es correcta:

I A) Puede realizarse la síntesis de la unidad de control empleando un


registro de 2 bits y una memoria ROM de 32 palabras, con 8 bits por
S0 palabra.
I / c0 , c3 B) Puede realizarse la síntesis de la unidad de control empleando un
registro de 2 bits, un multiplexor de 4 a 1, y una memoria ROM de 8
S1 palabras, con 8 bits por palabra.
C) Las dos anteriores son correctas.
s0 / 0 s0 / c1 D) Todas las anteriores son falsas.
S2
s1 / c2 , c3 s1 / c2 , c3

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.19 En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indique cuál de las
siguientes afirmaciones, acerca de las señales de control (ci), es correcta.
A) c1 = S1
I
s0/c1 S2 s1/c4,c5 B) c5 = S 2 ⋅ s1
I/c0 s1/0 s2/c6 C) Las dos afirmaciones anteriores son correctas.
S0 S1 S4 S5 D) Todas las afirmaciones anteriores son falsas
s1/c3
s0/c1,c2
S3 s1/c5

5.20 Dado el diagrama ASM de la figura, y suponiendo que para cada estado se debe generar una sola señal de
control (c0 en S0, c1 en S1 y c2 en S2). Indicar cuál de las siguientes afirmaciones es verdadera.
I. Para implementarlo se puede usar un registro de 4 bits y una ROM de 16 de palabras de 4 bits.
II. Para implementarlo se puede usar la técnica de selección por estado con lo que el multiplexor asociado
tiene 4 entradas con 2 entradas de selección y la ROM un tamaño de 8 palabras de 5 bits.

5.21 En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indique cuál de las
siguientes afirmaciones es correcta.
A) Puede realizarse la síntesis de la unidad de control
I empleando un registro de 3 bits y una memoria
s0/c1 S2 s1/c4,c5 ROM de 27 palabras, con 16 bits por palabra.
I/c0 s1/0 s2/c6 B) Puede realizarse la síntesis de la unidad de control
S0 S1 S4 S5 empleando un registro de 3 bits, un multiplexor de 8
s1/c3 a 1, y una memoria ROM de 16 palabras, con 16 bits
s0/c1,c2 por palabra.
S3 s1/c 5
C) Las dos afirmaciones anteriores son correctas.
D) Todas las afirmaciones anteriores son falsas.

5.22 Una unidad de control, cuya tabla de estados del modelo de Huffman-Mealy se muestra a continuación, se
implementa usando dos elementos de memoria tipo D. Para ello, se realiza la asignación de estados siguiente:
S0:{Q1=0,Q0=0}, S1:{Q1=0,Q0=1}, S2:{Q1=1,Q0=0} y S3:{Q1=1,Q0=1}. Indique si las siguientes afirmaciones,
acerca de las funciones de entrada a los elementos de memoria, son correctas:
Estado Próximo estado
presente I ⋅ s0 I ⋅ s0 I ⋅ s0 I ⋅ s0 A) D1 = Q0 + Q1 ⋅ s0
S0 S0 S0 S1 S1 B) D0 = Q0 ⋅ s0 + Q1 ⋅ s0 + Q0 ⋅ Q1 ⋅ I
C) Las dos afirmaciones anteriores son correctas.
S1 S3 S2 S3 S2 D) Todas las afirmaciones anteriores son falsas.
S2 S0 S3 S0 S3
S3 S3 S3 S3 S3

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.23 En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indique cuál de las
siguientes afirmaciones, acerca de las señales de control (ci), es correcta.
s2 / c0 A) c3 = S 3 ·s1
B) c5 = S 4 ·s 2 + S 3 ·s1
I
S2 C) Las dos afirmaciones anteriores son
s1 / c2 , c4 correctas.
I / c0 , c3
s0 / c1
s2 / c5 D) Todas las afirmaciones anteriores
S0 S1 s1 / c3 S4 S5 son falsas

s0 / c1 , c2
s1 / c5
S3

5.24 Dado el diagrama ASM de la Figura, indicar cuántos elementos de memoria tipo J-K son necesarios para
implementarlo si se usa la técnica de diseño con un elemento de memoria por estado.

5.25 A continuación se muestra la tabla de estados del modelo de Huffman-Mealy de una unidad de control.
Dicha unidad de control se implementa usando dos elementos de memoria tipo D. Para ello, se realiza la
asignación de estados siguiente: S0:{Q1=0,Q0=0}, S1:{Q1=0,Q0=1}, S2:{Q1=1,Q0=0} y S3:{Q1=1,Q0=1}.
Indique si las siguientes afirmaciones, acerca de las funciones de entrada a los elementos de memoria, son
correctas. (Nota: el biestable Di almacena Qi).
A) D1 = Q1 ⋅ Q0 + Q1 ⋅ s0
Estado Próximo estado
B) D0 = Q0 ⋅ s0 + Q0 ⋅ ( s0 + I )
presente I ⋅ s0 I ⋅ s0 I ⋅ s0 I ⋅ s0
C) Las dos afirmaciones anteriores son correctas.
S0 S0 S0 S1 S1 D) Todas las afirmaciones anteriores son falsas.
S1 S3 S2 S3 S2
S2 S3 S1 S3 S1
S3 S3 S0 S3 S0

5.26 En el diseño de una Unidad de Control de 20 estados con una memoria ROM, un registro y un multiplexor,
empleando el método de selección por campo, es necesario que el registro tenga una capacidad de:
A) 5 bits B) 6 bits C) Faltan datos para calcularlo D) Ninguna de las anteriores

5.27 En el diseño de una Unidad de Control de 32 estados con una memoria ROM, un registro y un multiplexor,
empleando el método de selección por campo, y siendo posible consultar en cada estado una única condición de
las 10 existentes, es necesario que el registro tenga una capacidad de:
A) 5 bits B) 10 bits C) Faltan datos para calcularlo D) Ninguna de las anteriores

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.28 En la figura se muestra el diagrama de estados de Huffman-Mealy de una unidad de control. Indique si las
siguientes afirmaciones son verdaderas:
I. La unidad de control se puede implementar usando un registro de
I s1 2 bits y una memoria ROM de 25 palabras, con 6 bits por
s1/c1,c3
palabra.
II. La unidad de control se puede implementar usando un MUX
S0 S1 s0/c2 S2 (22), un registro de 2 bits y una memoria ROM de 23 palabras,
I/c0 con 6 bits por palabra.

s0/c1
5.29 El diagrama de Huffman-Mealy de una unidad de control tiene cuatro estados (S0, S1, S2, S3) y dos señales
de condición (I, s0). Para implementar esta unidad de control, se han usado dos elementos de memoria tipo D y
se ha realizado la asignación de estados siguiente: S0:{Q1=0,Q0=0}, S1:{Q1=0,Q0=1}, S2:{Q1=1,Q0=0} y
S3:{Q1=1,Q0=1}. Las funciones de entrada de los elementos de memoria son las siguientes:
D0 = Q1 + Q0 ⋅ I + Q0 ⋅ s0 D1 = s0 ⋅ Q1 + Q1 ⋅ Q0 + Q1 ⋅ Q0 .
Indique si las siguientes afirmaciones son verdaderas:
I. Cuando el estado presente es S2, entonces el próximo estado es S3.
II. Cuando el estado presente es S1 y se verifica s0=1, entonces el estado siguiente es S2.

5.30 Una unidad de control, cuyo diagrama de estados de Huffman-Mealy se muestra en la figura, se
implementa usando dos elementos de memoria tipo D. Para ello, se realiza la asignación de estados siguiente:
S0:{Q1=0,Q0=0}, S1:{Q1=0,Q0=1}, S2:{Q1=1,Q0=0} y S3:{Q1=1,Q0=1}. Indique si las siguientes afirmaciones,
acerca de la función de entrada al segundo elemento de memoria, son verdaderas:
A) D1 = s0 ⋅ Q1 + Q1 ⋅ Q0 + Q1 ⋅ Q0
I s0/c5 s0/0 B) D1 = s0 ⋅ Q0 + Q1 ⋅ Q0 + Q1 ⋅ Q0
C) Las dos afirmaciones anteriores son correctas.
I/c0,c3 s0/c1 s1/c2 D) Todas las afirmaciones anteriores son falsas.
S0 S1 S2 S3
s1/c4

s0/0

5.31 En la figura se muestra el diagrama de estados de Huffman-Mealy de una unidad de control. Indique cuál
de las siguientes opciones puede sustituir al símbolo interrogación (“?”), que se muestra en la transición entre S2
y S3, de tal modo que esta unidad de control pueda ser implementada usando un MUX (22), un registro de 2 bits
y una memoria ROM de 23 palabras, con 6 bits por palabra:
A) s2 / c2, c3
I B) s1 / c4
s0/c3 C) Las dos anteriores son correctas.
D) Ninguna de las anteriores es correcta.
?
S0 S1 s0/c2 S2 S3
I/c0,c1

s1/c3

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.32 El diagrama de Huffman-Mealy de una unidad de control tiene cuatro estados (S0, S1, S2, S3) y dos señales
de condición (I, s0). Para implementar esta unidad de control, se han usado dos elementos de memoria tipo D y
se ha realizado la asignación de estados siguiente: S0:{Q1=0,Q0=0}, S1:{Q1=0,Q0=1}, S2:{Q1=1,Q0=0} y
S3:{Q1=1,Q0=1}.

Estado presente Próximo estado


Q1 Q0 I s0 I s0 I s0 I s0
00 00 00 01 01
01 11 10 11 10
10 11 01 11 01
11 11 00 11 00
Tabla de transiciones de estado

Indique si las siguientes afirmaciones, acerca de las funciones de entrada de los elementos de memoria, son
verdaderas:

I.
(
D0 = Q1 + I ⋅ s0 + Q0 )
II. D1 = Q1 ⋅ Q0 + Q1 ⋅ s0

5.33 Dado el diagrama ASM de la figura, y suponiendo que para cada estado se debe generar una sola señal de
control (c0 en S0, c1 en S1 y c2 en S2). Indique cuál de las siguientes afirmaciones es verdadera.
I. Para implementarlo se puede usar un registro de 2 bits y una ROM de 8 de palabras de 8 bits.
II. Para implementarlo se puede usar la técnica de selección por estado con lo que el multiplexor asociado
tiene 4 entradas con 2 entradas de selección y la ROM un tamaño de 8 palabras de 8 bits.

5.34 En la figura se muestra el diagrama de estados de Huffman-Mealy de una unidad de control. Indique si las
siguientes afirmaciones son verdaderas:

I
s0/ c3

S0 S1 s / c S2 S3
I/c0, c1 0 2 s2/c2,c3

s1/ c3
I. La unidad de control se puede implementar usando dos MUX (22), un registro de cuatro bits y una memoria
ROM de 24 palabras con 16 bits por palabra.
II. La unidad de control se puede implementar usando un MUX (22), un registro de dos bits y una memoria
ROM de 23 palabras con 16 bits por palabra.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

5.35 El diagrama de Huffman-Mealy de una unidad de control tiene cuatro estados (S0, S1, S2, S3) y dos señales
de condición (I, s0). Para implementar esta unidad de control, se han usado dos elementos de memoria tipo D y
se ha realizado la asignación de estados siguiente: S0:{Q1=0,Q0=0}, S1:{Q1=0,Q0=1}, S2:{Q1=1,Q0=0} y
S3:{Q1=1,Q0=1}.
Estado presente Próximo estado
A la izquierda, se muestra la tabla de transición de
I s0 I s0 estados. Indique si las siguientes afirmaciones,
Q1 Q0 I s0 I s0
acerca de la función de entrada al segundo elemento
00 00 00 01 01 de memoria, son verdaderas:
01 11 10 11 10 A) D1 = s0 ⋅ Q1 + Q1 ⋅ Q0 + Q1 ⋅ Q0
10 11 01 11 01 B) D1 = s0 ⋅ Q0 + Q1 ⋅ Q0 + Q1 ⋅ Q0
11 C) Las dos afirmaciones anteriores son correctas.
11 00 11 00
D) Todas las afirmaciones anteriores son falsas.

5.36 Se desea diseñar con una memoria ROM una unidad de control con 64 estados, que genere 26 señales de
control totalmente independientes y que reciba 8 señales de condición pero en cada estado van a ser consultadas
como máximo una de ellas. La memoria ROM usada tiene un coste de 0,20 euros/Kbit. Indicar cuál de las
siguientes afirmaciones es cierta:
A) Si se utiliza un diseño con selección por estado el coste de la ROM es de 1 euro.
B) Si se utiliza un diseño con selección por campo el coste de la ROM es de 1,5 euros.
C) Ambos diseños tienen el mismo coste.
D) Ninguna de las anteriores.

5.37 Se desea diseñar una unidad de control mediante un registro de estado y una memoria ROM. Si se necesita
emplear q señales de condición, n bits para la codificación del estado y m señales de control, determinar el
tamaño de la memoria ROM.

5.38 Un bloque de decisión de un diagrama ASM puede ser sustituido en un circuito secuencial mediante:
A) Una memoria tipo D. B) Una puerta OR.
C) Una puerta AND. D) Ninguna de las anteriores.

5.39 El modelo de Glushkov es un modo de representación de sistemas digitales que utiliza un nivel de
abstracción por el cual un sistema digital se descomponen en:
A) Un conjunto de posiciones de memoria, un interfaz con el exterior, una ALU, un buses de datos y una
unidad de control.
B) Una unidad de procesamiento y una unidad de control.
C) Un conjunto de posiciones de memoria, una ALU y un interfaz con el exterior.
D) Ninguna de las anteriores.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas.

CONTENIDO

SOLUCION PROBLEMA 5.1 ..................................................................................................................... 3


SOLUCION PROBLEMA 5.2 ..................................................................................................................... 3
SOLUCION PROBLEMA 5.3 ..................................................................................................................... 4
SOLUCION PROBLEMA 5.4 ................................................................................................................... 13
SOLUCION PROBLEMA 5.5 ................................................................................................................... 13
SOLUCION PROBLEMA 5.6 ................................................................................................................... 13
SOLUCION PROBLEMA 5.7 ................................................................................................................... 14
SOLUCION PROBLEMA 5.8 ................................................................................................................... 14
SOLUCION PROBLEMA 5.9 ................................................................................................................... 15
SOLUCION PROBLEMA 5.10 ................................................................................................................. 15
SOLUCION PROBLEMA 5.11 ................................................................................................................. 16
SOLUCION PROBLEMA 5.12 ................................................................................................................. 16
SOLUCION PROBLEMA 5.13 ................................................................................................................. 16
SOLUCION PROBLEMA 5.14 ................................................................................................................. 16
SOLUCION PROBLEMA 5.15 ................................................................................................................. 17
SOLUCION PROBLEMA 5.16 ................................................................................................................. 17
SOLUCION PROBLEMA 5.17 ................................................................................................................. 17
SOLUCION PROBLEMA 5.18 ................................................................................................................. 17
SOLUCION PROBLEMA 5.19 ................................................................................................................. 19
SOLUCION PROBLEMA 5.20 ................................................................................................................. 19
SOLUCION PROBLEMA 5.21 ................................................................................................................. 20
SOLUCION PROBLEMA 5.22 ................................................................................................................. 22
SOLUCION PROBLEMA 5.23 ................................................................................................................. 23
SOLUCION PROBLEMA 5.24 ................................................................................................................. 24
SOLUCION PROBLEMA 5.25 ................................................................................................................. 25
SOLUCION PROBLEMA 5.26 ................................................................................................................. 26
SOLUCION PROBLEMA 5.27 ................................................................................................................. 26
SOLUCION PROBLEMA 5.28 ................................................................................................................. 27
SOLUCION PROBLEMA 5.29 ................................................................................................................. 28
SOLUCION PROBLEMA 5.30 ................................................................................................................. 28
SOLUCION PROBLEMA 5.31 ................................................................................................................. 30
SOLUCION PROBLEMA 5.32 ................................................................................................................. 31
SOLUCION PROBLEMA 5.33 ................................................................................................................. 32

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.1


Diseñar una UC con memoria ROM con:
200 estados
Genere 37 señales de control independientes entre si.
9 señales de condición.
En cada estado se consulta una señal de condición como máximo.
Interesa sobre todo minimizar el tamaño del multiplexor a utilizar.

Puesto que en cada estado se consulta una señal de condición como máximo, es posible utilizar para el
diseño de la Unidad de Control las siguientes configuraciones:
a) Memoria ROM + registro + multiplexor de selección por estado.
b) Memoria ROM + registro + multiplexor de selección por campo.

De los datos del enunciado se deduce que:


variables de estado n=8 ya que 28=256>200 estados
señales de control : m=37
señales de condición : q=9 ≤ (2h =16) → h=4

En la configuración a) según lo estudiado en teoría, el multiplexor utilizado tiene 2n=28=256 entradas y


n=8 señales de selección.

En la configuración b) según lo estudiado en teoría, el multiplexor utilizado tiene 2h=24=16 entradas y


h=4 señales de control.

Luego es en la configuración b) donde se minimiza el tamaño del multiplexor .


Afirmación I: Falsa
Afirmación II: Verdadera

SOLUCION PROBLEMA 5.2


DATOS
Diseñar una UC con :
18 estados
Genere m=30 señales de control independientes entre si.
q=4 señales de condición.
Utilizar memoria ROM, pero minimizando la capacidad de la misma.
En cada estado se utiliza como máximo una condición.
Utilizar un multiplexor por selección 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 + log 2 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=log2q+n=2+5=7 bits

El multiplexor al ser del tipo de selección por campo, tiene q=4 entradas y requiere de log2q=2 señales de
selección.

El esquema de la Unidad de Control implementada con los anteriores elementos sería el que se muestra
en la siguiente figura:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

MUX(4)

4 1 6
q ROM
26 x 37 bits

2 5

log2q n
5 m=30
2

SOLUCION PROBLEMA 5.3


a) DISEÑO DE LA UNIDAD DE PROCESAMIENTO
1) El primer paso es conocer el tipo y número de
1: Declaración: A[8], B[8], Cont[3]; Bus[8]
componentes necesarios para diseñar la Unidad de
2: A ← Bus;
3: B ← Bus, Cont=0; Procesamiento. De la observación del algoritmo se deduce
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 • Un registro de 8 bits para el almacenamiento de B.
8; • Un contador módulo-8.
7: else • Un elemento de cálculo (UAL) que realice la suma y la
8: B ← B + A, Cont = (Cont -1) mod 8; resta de dos números binarios de 8 bits.
9: endif; • Puesto que al registro A se le pueden cargar datos
10: endwhile;
11: Bus ← B; desde el bus (A←Bus) o desde la UAL (A←A - B) es
12: Bus ← A; necesario un multiplexor de dos salidas MUX(2).
13: Parar; • Puesto que al registro B se le pueden cargar datos
desde el bus (B←Bus) o desde la UAL (B←B - 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 ( Bus←A, Bus←B), es
necesaria la utilización de 2 puertas triestado de conexión 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 señales de condición que serán salidas de la Unidad de Procesamiento.
De la observación del algoritmo se deduce que hay dos señales de condición:

s0 que valdrá 1 cuando el contador alcance el valor 7.


s1 que corresponde al bit menos significativo del número A. Si s1=0 el número es par sino es
impar

3) El tercer paso es numerar los puntos o señales de control y especificar la función que realiza cada
una de estas señales.

-Señales de control
Luego la Unidad de Procesamiento diseñada requiere de 11 señales 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.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

c2 cuando vale 1 , se realiza la microperación Bus ← A


c3 cuando vale 1 , se realiza la microperación 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.

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


Procesamiento resultante:

8
BUS
Reloj

c0 0 1 MUX c1 0 1 MUX 0 c9
CONT
c2 c3 1 c10

0 ED 0 c4 0 ED 0 c6
A B
0 EI 1 c5 0 EI 1 c7

A B
UAL c8

s1=A0 s0
Figura 1 : Diseño de la Unidad de Procesamiento

b)DISEÑO 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
S0 S1 S2 S5 S6 S7
s0 s1
s0 s1

S3 S4
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
correspondería a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de las
señales de condición s1 y s0 , se puede pasar a S3(s1=0 y s0=0, A es par y el contador no ha llegado a 7) o a
S4(s1=1 y s0=0, A es impar y el contador no ha llegado a7 ) o bien a S5(s0=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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

En la Tabla 1 se muestran las microperaciones y las señales de control asociadas a cada estado.

Estado Microoperaciones Señales de Control


S0 A←Bus c 0 c 4 c5
S1 B←Bus, c1 c 6 c7
Cont=0 c10 c9
S2 ------- ---------
S3 A←A-B c8 c 0 c 4 c 5
cont=(cont+1)mod8 c10 c9
S4 B←A+B c8 c1 c6 c 7
cont=(cont-1)mod8 c10 c9
S5 Bus←B c3
S6 Bus←A c2
S7 Parar ----------
Tabla 1 : Microperaciones y señales de control asociadas a cada estado

Una vez definido el diagrama de estados y las microoperaciones y señales de control asociadas con cada
estado estamos en condiciones de diseñar la Unidad de Control mediante la técnica de los elementos de
retardo, esta técnica también es conocida como diseño con un elemento de memoria por estado.
Utilizando está técnica la implementación 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 más 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 más de un estado, se debe utilizar un elemento demultiplexor que tenga
como señales de selección las señales de condición que regulan la transición desde ese estado hacia los
otros estados. En nuestro problema se observa que en el estado S2, dependiendo del valor de las señales
de condición s0 y s1, se pasa al estado S3(si s0=0 y s1=0), al estado S4 (si s0=0 y s1=1) o al estado S5(si s0=1
independientemente del valor de s1), por lo que se utilizará un demultiplexor con 2 señales de
selección (s0 y s1) 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 señales de control que va activar y
que serán las correspondientes al estado al que está asignado el elemento de memoria. En nuestro
problema las señales 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 síncrona (CK) para la señal de reloj.

La Unidad de Control diseñada se muestra en la Figura 3. Expliquemos el funcionamiento de esta Unidad


de Control. Inicialmente se activa la señal asíncrona de SET del elemento de memoria asignado al estado
S0 y la señal asíncrona 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 contendrán 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
contendrán el valor 0

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

S0 SET
c0 c4 c5

S1
c1c6c7 c10 c9

S2
−−−−
s0

s1 0 1 2 3

S3
c8c0 c4c5c10 c9

S4
c8c1c6 c7 c10 c9

S5
c3

S6
c2

S7
CK CLEAR

Figura 3 :Unidad de Control diseñada con un elemento de memoria por estado

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

OTRAS POSIBILIDADES DE DISEÑAR 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 páginas 3-6 se habría resuelto el problema de la forma que se indica en el
enunciado. Ahora vamos a diseñar la Unidad de Control utilizando una memoria ROM y un registro.
- Puesto que se tienen 8 estados se necesitarían n=3 variables de estado (Q2, Q1, Q0) para codificarlos.
Por otro parte se tienen q=2 (s0 y s1) variables de condición y m=11 señales 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

Dirección de la ROM Contenido de la memoria ROM


A4A3A2A1A0 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0
Estado actual Cond Próximo Señales de control
Estado
Q2 Q1 Q0 s0 s1 Q2 Q1 Q0 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1
1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0
1 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0
1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0
1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0
1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0
1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0
1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0
1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0
1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0
1 1 0 0 1 1 1 1 0 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 0 1 0 0
1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0
1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
Tabla 2 : Contenido de la memoria ROM

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

A4 A3 A2
3
ROM
2
A1 A0 25 x 14
Señales de
condición
Q(t+1) 3
Señales de
Registro control
Q(t) 11

Figura 4 : Diseño 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 añadiendo un estado donde


se pregunte sobre el valor de s1, entonces para pasar de un estado a otro solamente se necesita conocer el
valor de una única señal de condición. Este nuevo diagrama de estado se muestra en la Figura 5.

s0
S0 S1 S2 S6 S7 S8
s0

s1 s1
S4 S3 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
correspondería a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de las
señales de condición s0, se puede pasar a S3 (s0=0) o a S6 (s0=1). En S3 puede pasar a S4 (s1=0) o a
S5(s1=1). Cuando se encuentra en S4 o en S5, vuelve a S2 hasta que el contador alcance el valor 7 (s0=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 necesitarían n=4 variables de estado (Q3, Q2, Q1, Q0)
para codificarlos. Por otro parte se tienen 1 (s0 en el estado S2 y s1 en el estado S3) variable de condición
por estado y m=11 señales 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

Dirección de la ROM Contenido de la memoria ROM


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

Estado actual Cond Próximo Señales de control


Estado

Q3 Q2 Q1 Q0 s Q3 Q2 Q1 Q0 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 1 0 0(s0) 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1(s0) 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0(s1) 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1(s1) 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0
0 1 0 1 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0
0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
1 0 0 0 0 1 0 0 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 0 0
Tabla 3 : Contenido de la memoria ROM

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 ROM
0
4
0 1
A0 25 x 15
0
Señal de
0
0 condición
0 Q(t+1) 4
0
0
Registro
0
Q(t) 11
0 4

Figura 6 : Diseño de la Unidad de Control con una memoria ROM, un registro y un multiplexor por
selección de estado

Comentario : El multiplexor al tener 4 señales de selección (Q3, Q2, Q1, Q0), tiene 16 entradas
disponibles MUX(16). La entrada 2 se debe conectar a la señal de condición s0 y la entrada 3 a la señal de
condición s1. EL resto de entradas se conectan al valor 0.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución 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 necesitarían n=4 variables de
estado (Q3, Q2, Q1, Q0) para codificarlos. Por otro parte se tienen q=2 (s0 en el estado S2 y s1 en el estado
S3) variables de condición y m=11 señales de control. Entonces la capacidad de la memoria ROM
necesaria si se desea utilizar un multiplexor de selección 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

Dirección de la ROM Contenido de la memoria ROM


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

Estado actual Cond Sel Próximo Señales de control


MUX Estado

Q3 Q2 Q1 Q0 s p15 Q3 Q2 Q1 Q0 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
0 0 0 0 0 - 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 1 - 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 0(s0) 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 0 1 1 0(s0) 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0
0 0 1 0 0(s0) 1(s1) 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1(s0) - 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0(s1) - 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1(s1) - 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0(s0) 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 0 0 1 0(s0) 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
0 1 0 1 0 0(s0) 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0
0 1 0 1 1 0(s0) 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0
0 1 1 0 0 - 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 1 0 1 - 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 1 1 0 - 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 1 1 1 - 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
1 0 0 0 0 - 1 0 0 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 0 0
Tabla 4 : Contenido de la memoria ROM (Cond : señal de condición. sel MUX : selección 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 señal de selección del multiplexor, se define conjuntamente con el
próximo estado. Así si nos fijamos en la Tabla 4, se puede ver que p15=0 cuando el próximo estado es S2,
de tal forma que la señal de condición que utiliza es la s0, que ha sido conectada a la entrada 0 del
multiplexor. Por otro lado, p15=1 cuando el próximo estado es S3, de tal forma que la señal de condición
que utiliza es la s1, que ha sido conectada a la entrada 1 del multiplexor

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

MUX(2)
s0 0 1 A4 A3 A2 A1
s1 A0 ROM
1 Señal de
condición 25 x 16 bits

1 4
Q(t+1)
p15
11 Señales de control
1 4 Q(t)

Figura 7 : Diseño de la Unidad de Control con una memoria ROM, un registro y un multiplexor de
selección por campo

Comentario : El multiplexor tiene log22=1 señal de selección y 2 entradas disponibles MUX(2). La


entrada 0 se debe conectar a la señal de condición s 0 y la entrada 1 a la señal de condición s1.

Comentario : Indicar que para diseñar 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 sería 24+2
palabras+(11+4) bits/palabras. Que es claramente mayor a las dos propuestas anteriores..

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.4


DATOS
Diseñar una UC con memoria ROM con:
200 estados
Genere 37 señales de control independientes entre si.
9 señales de condición.
En cada estado se consulta una señal de condición como máximo.
Utilizar un multiplexor con selección por campo.

Del enunciado se deduce que se debe diseñar una Unidad de Control con los siguientes componentes:
Memoria ROM + registro + multiplexor de selección por campo.

Además de los datos del enunciado se deduce que:


variables de estado n=8 ya que 28=256>200 estados
señales de control : m=37
señales de condición : q=9 ≤ 2h →h=4

El número de entradas totales del multiplexor es 2h= 24=16, de las cuales sólo se utilizan 9 (entradas 0 a
8), una para cada señal de condición, el resto ( desde la entrada 9 hasta la 15) se colocan a 0.

La capacidad de la ROM sería :

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

C = 29 palabras x 49 (bits/palabra)

La respuesta correcta es la C

SOLUCION PROBLEMA 5.5


La solución de este problema se encuentra en el fichero probT5_05.pdf.

SOLUCION PROBLEMA 5.6


DATOS
Diseñar una UC con memoria ROM con:
18 estados
Genere 30 señales de control independientes entre si.
4 señales de condición.
En cada estado se consulta una señal de condición como máximo.
Utilizar un multiplexor con selección por estado

Del enunciado se deduce que se debe diseñar una Unidad de Control con los siguientes componentes:
Memoria ROM + registro + multiplexor de selección por estado.

Además de los datos del enunciado se deduce que:


variables de estado n=5 ya que 25=32>18 estados
señales de control : m=30
señales de condición : 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

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

• El registro tiene que almacenar las variables de estado luego debe de tener una capacidad de n=5 bits.

• El multiplexor al ser del tipo de selección por estado, tiene 25 entradas y requiere de 5 señales de
selección. Es decir es un MUX 32 :1.

La respuesta correcta es la A.

SOLUCION PROBLEMA 5.7


DATOS
Diseñar una UC con:
32 estados
Genere 4 señales de control independientes entre si.
2 señales de condición.
En cada estado se pueden consultar las dos señales de condición simultáneamente.

De los datos del enunciado se deduce lo siguiente ;


variables de estado n=5 ya que 25=32 estados
señales de control : m=4
señales de condición : q=2

Vamos a ir analizando cada una de las afirmaciones:


A) Si se utiliza la técnica de los elementos de retardo sería necesario utilizar 32 elementos de retardo, uno
por cada estado y no 5 como dice el enunciado. Luego la afirmación 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 afirmación es falsa.
C) Si se utiliza un contador, este debe ser de módulo- 25. Luego la afirmación es falsa.

La respuesta correcta es la D.

SOLUCION PROBLEMA 5.8


DATOS
Diseñar una UC con:
64 estados
Genere 30 señales de control independientes entre si.
5 señales de condición.
En cada estado se pueden consultar diferentes señales de condición simultáneamente.

De los datos del enunciado se deduce lo siguiente ;


variables de estado 64=26 =>n=6
señales de control : m=30
señales de condición : q=5

Vamos a ir analizando cada una de las afirmaciones:


A) Si se utiliza la técnica de los elementos de retardo sería necesario utilizar 64 elementos de retardo, uno
por cada estado y no 6 como dice el enunciado. Luego la afirmación es falsa.
B) Si se utiliza una memoria ROM se requiere que tenga una capacidad mínima de
C= 2n+q x (n+m)= 211 palabras x 36 bits/palabra. La afirmación es falsa
C) Si se utiliza un contador, este debe ser de módulo- 26. Luego la afirmación es Verdadera.

La respuesta correcta es la C.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.9


La solución de este problema se encuentra en el fichero probT5_09.pdf.

Explicación previa a la resolución del problema

En el algoritmo que hay que implementar se plantea la multiplicación y la división de un número binario
por 2. Para realizar estas operaciones es necesario recordar como se pasa un número binario a decimal:

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

• La multiplicación de un número 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 número binario un bit hacia la izquierda e introducir un 0 en la


posición menos significativa.

Ejemplos:
El número 410= (0100)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0
en la posición menos significativa se obtiene (1000)2= 82= 2 x 410.

El número 310= (0011)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0
en la posición menos significativa se obtiene (0110)2= 610= 2 x 310.

• La división entera de un número 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 número binario un bit hacia la derecha perdiéndose el contenido del
bit menos significativo.

Ejemplos:
El número 410= (0100)2 al dividirlo por 2 se debe desplazar un bit hacia la derecha se obtiene (0010)2=
210= 410/ 210.

El número 310= (0011)2 al dividirlo por 2 se debe desplazar un bit hacia la derecha se obtiene (0001)2=
110= 410/ 310. Es una división entera.

Sobre el bucle la señal de condición s0


Hay que darse cuenta que aunque no lo pone en el algoritmo la realización de este bucle requiere
inicializar el contador a 0, luego habrá que introducir la microperación reset cont en el estado adecuado.

Por otra parte, la señal de condición s0, es la salida de una puerta OR que tiene como entradas las salidas
de un contador módulo 7, es decir, cuenta desde 0 hasta 7, de tal forma que al llegar a 8 vuelve a empezar
desde 0, etc. Por lo tanto:
s0=1, si cont es distinto de 0.
s0=0, si el cont=0.

s0=0 inicialmente (reset Cont) pero también cuando llegue al valor 8, es decir, cuando se haya ejecutado
el bucle for 8 veces tal y como se indica en la sentencia 4 del algoritmo.

SOLUCION PROBLEMA 5.10


La solución de este problema se encuentra en el fichero probT5_10.pdf.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.11


La solución de este problema se encuentra en el fichero probT5_11.pdf.

SOLUCION PROBLEMA 5.12


La solución de este problema se encuentra en el fichero probT5_12.pdf.

SOLUCION PROBLEMA 5.13


Diseñar una UC con memoria ROM con:
200 estados
Genere 37 señales de control independientes entre si.
9 señales de condición.
En cada estado se consulta una señal de condición como máximo.
Se utiliza el diseño con un multiplexor con selección por campo

Se tiene una Unidad de Control diseñada con


Memoria ROM + registro + multiplexor de selección por campo.

De los datos del enunciado se deduce que:


variables de estado n=8 ya que 28=256>200 estados
señales de control : m=37
señales de condición : q=9 ≤ 2h →h=4

En este diseño según lo estudiado en teoría, se necesitará un multiplexor con 2h= 24=16 entradas de las
cuales sólo se utilizan 9 una para cada señal de condición. el resto se conectan a 0.

Luego la respuesta es 16 entradas de datos.

SOLUCION PROBLEMA 5.14


Diseñar una UC con memoria ROM con:
128 estados
Genere 244 señales de control independientes entre si.
20 señales de condició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
señales de control : m=244
señales de condición : q=20 ≤ 2h→h=5

Afirmación I:

Se tiene una Unidad de Control diseñada con Memoria ROM + registro + multiplexor de selección por
estado. La Capacidad de la ROM es:

C=2n+1 palabras x (n+m) bits/palabras

Luego sustituyendo valores se tiene:


C=28·251 bits = (28·251·210)/210=(251/4) Kbits

Luego el coste es $=(215/4) Kbits · 10 ptas/Kbits = 2150/4= 627.5 ptas.

Luego la afirmación es FALSA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 16


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

Afirmación II:

Se tiene una Unidad de Control diseñada con Memoria ROM + registro + multiplexor de selección 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=26·210=64 Kbits

Luego el coste es $=64 Kbits · 10 ptas/Kbits = 640 ptas.

Luego la afirmación es VERDADERA.

SOLUCION PROBLEMA 5.15


La solución de este problema se encuentra en el fichero probT5_15.pdf.

SOLUCION PROBLEMA 5.16


La solución de este problema se encuentra en el fichero probT5_16.pdf.

SOLUCION PROBLEMA 5.17


La solución de este problema se encuentra en el fichero probT5_17.pdf.

SOLUCION PROBLEMA 5.18


Se proporciona el diagrama de estados de una unidad de control
I

S0
I / c0 , c3

S1
s0 / 0 s0 / c1

S2
s1 / c2 , c3 s1 / c2 , c3

De la observación de este diagrama de estados se obtienen los siguientes datos del sistemas:
Posee 3 estados {S0,S1,S2} luego son necesarios dos variables de estado (Q1,Q0) para
codificarlos. Es decir, n=2.
Posee 4 señales de control {c0,c1,c2,c3}. Luego m=4.
Posee 2 señales de condición {I,s0,s1}. Luego q=3.

Pasemos a analizar las afirmaciones:

A) Afirma que se puede implementar esta unidad de control usando un registro de 2 bits y una ROM de
capacidad 32 palabras x 8 bits/palabra.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 17


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

De forma general, cuando se pretende implementar una unidad de control con una ROM y un registro,
estos deben tener las siguientes capacidades:
ROM C=2n+q palabras x (n+m) (bits/palabra)
Registro de n bits.
Sustituyendo los valores de n, m y q de nuestro problema se obtiene:
ROM C=22+3 palabras x (2+4) (bits/palabra)= 32 palabras x (6) (bits/palabra)
Registro de 2 bits.

El esquema del diseño se muestra en la figura siguiente:


Estado actual
[Q1(t) Q0(t)]
2
ROM
[I, s0, s1]
3
32 pal x 8 bits/pal
Señales de
condición
[Q1(t+1) Q0(t+1)] 2
Registro Señales de
4 control
[Q1(t) Q0(t)] [c3 c2 c1 c0]

Luego la afirmación A es VERDADERA. Comentar que la ROM que necesitamos requiere solo 6
bits/pal como la que nos dan es de 8 bits /pal, eso implica que se va a desaprovechar memoria.

B) Afirma que se puede implementar esta unidad de control usando un registro de 2 bits, un multiplexor
de 4 a 1 y una ROM de capacidad 8 palabras x 8 bits/palabra. Puesto que n=2, y el registro es de 2 bits de
capacidad. Eso implica que las señales de selección del multiplexor serán las variables de estado.

De forma general, cuando se pretende implementar una unidad de control con una ROM, un registro y un
multiplexor de selección por estado estos deben tener las siguientes capacidades:
ROM C=2n+1 palabras x (n+m) (bits/palabra)
Registro de n bits.
Multiplexor de 2n a 1

Sustituyendo los valores de n, m y q de nuestro problema se obtiene:


ROM C=22+1 palabras x (2+4) (bits/palabra)= 8 palabras x (6) (bits/palabra)
Registro de 2 bits.
Multiplexor de 4 a 1
El esquema del diseño se muestra en la figura siguiente:

MUX(4:1) Estado actual


[Q1(t) Q0(t)]
I 0
s0 1 1
s1 2 ROM
Señal de
3 2 8 pal x 8 bits/pal
condición

2 [Q1(t+1) Q0(t+1)] 2
Registro
4 Señales de
[Q1(t) Q0(t)] control
[c3 c2 c1 c0]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 18


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

Luego la afirmación B es VERDADERA. Al igual que en el caso anterior comentar que la ROM que
necesitamos requiere solo 6 bits/pal como la que nos dan es de 8 bits /pal, eso implica que se va a
desaprovechar memoria.

En conclusión, la respuesta correcta es la C

SOLUCION PROBLEMA 5.19


Se proporciona el diagrama de estados de una unidad de control, para calcular las
expresiones de las señales de control c1 y c5

I
s0/c1 S2 s1/c4,c5
I/c0 s1/0 s2/c6
S0 S1 S4 S5
s1/c3
s0/c1,c2
S3 s1/c5

Las señales de control ci i=0,...,6 se expresarán como funciones del estado actual Sj j=0,...,5 y de las
señales de condición sk k=0,1,2

Por simple inspección visual se observa que la señal de control c1 se activa en los siguientes casos:
1) Si el estado actual es S1 y la señal de condición es s0, es decir, s0·S1
2) Si el estado actual es S1 y la señal de condición es s0 , es decir, s0 ·S1
Luego la expresión lógica de c1 es:

c1 = s 0 ·S1 + s 0 ·S1 = (s 0 + s 0 )·S1 = S1

Por otra parte por simple inspección visual se observa que la señal de control c5 se activa en los
siguientes casos:
1) Si el estado actual es S2 y la señal de condición es s1 , es decir, s1 ·S 2
2) Si el estado actual es S3 y la señal de condición es s1 , es decir, s1 ·S 3
Luego la expresión lógica de c5 es:

c5 = s1 ·S 2 + s1 ·S 3 = s1 ·( S 2 + S 3 )

Luego la afirmación correcta es la A.

SOLUCION PROBLEMA 5.20

• Diagrama ASM

• En cada estado se debe generar una sola señal de control (c 0 en S0, c1 en S1, c2 en S2)

Jose Manuel Díaz Tutor de ETC2 (Coslada) 19


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

De acuerdo con el diagrama ASM adjunto esta unidad de control tiene:


• N=3 estados (S0, S1, S2) → 3≤2n → n=2 variables de estado (Q1,Q0).
• q=2 señales de condición (Inicio,Cond1).
Además según el enunciado
• m=3 señales de control (c0,c1,c2)

Analicemos la veracidad de las afirmaciones:

I) Para implementar una unidad de control empleando una ROM y un registro, es necesario que éstos
elementos tengan las siguientes características:

Capacidad de la ROM:
C ≥ 2n+q palabras x (n+m) (bits/palabra) ≥24 palabras x 5 (bits/pal)

Registro de n≥2 bits

Puesto que la ROM de la afirmación posee un ancho de palabra de 4 bits/palabra menor del ancho
necesario (5 bits/palabra) esta afirmación es FALSA.

II) Si se usa una ROM, un MUX de selección por estado y un registro es necesario que éstos elementos
tengan las siguientes características:

Capacidad de la ROM:
C ≥ 2n+1 palabras x (n+m) (bits/palabra) ≥23 palabras x 5 (bits/pal)

Registro de n≥2 bits

MUX (2n :1)→MUX(22 :1)→MUX(4 :1)

De acuerdo con el diagrama ASM las transiciones entre estados están regidas por una única señal de
condición, luego es posible implementar la unidad de control usando una ROM, un registro y un MUX.
Además puesto que el MUX del enunciado es del tipo 4:1 y la capacidad de la ROM del enunciado es de
8 palabras x (5 bits/palabra). Se observa que todos los elementos proporcionados poseen las
características adecuadas para poder implementar la unidad de control. En conclusión la afirmación es
VERDADERA..

SOLUCION PROBLEMA 5.21

I
s0/c1 S2 s1/c4,c5
I/c0 s1/0 s2/c6
S0 S1 S4 S5
s1/c3
s0/c1,c2
S3 s1/c5

De acuerdo con el diagrama de estados adjunto esta unidad de control tiene:


• N=6 estados (S0, S1,...,S5) → 6≤2n → n=3 variables de estado (Q2,Q1,Q0).
• q=4 señales de condición (I,s0,s1,s2).
• m=7 señales de control (c0,c1,...,c6)

Analicemos la veracidad de las afirmaciones propuestas:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 20


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

A) Para implementar una unidad de control empleando una ROM y un registro, es necesario que éstos
elementos tengan las siguientes características:

Capacidad de la ROM:
C ≥ 2n+q palabras x (n+m) (bits/palabra) ≥27 palabras x 10 (bits/pal)

Registro de n≥3 bits

Puesto que la capacidad de la ROM de la afirmación posee solo 27 palabras es menor de la necesaria
(128 palabras) luego esta afirmación es FALSA.

B) Si se usa una ROM, un MUX y un registro es necesario que éstos elementos tengan las siguientes
características:

Caso 1: Multiplexor de selección por estado

- Capacidad de la ROM:
C ≥ 2n+1 palabras x (n+m) (bits/palabra) ≥24 palabras x 10 (bits/pal)

- Registro de n≥3 bits

- MUX (2n :1)→MUX(23 :1)→MUX(8 :1)

Caso 2: Multiplexor de selección por campo

- Capacidad de la ROM:
C ≥ 2n+1 palabras x (log2q+n+m) (bits/palabra) ≥24 palabras x 12 (bits/pal)

- Registro de (log2q+n) ≥5 bits

- MUX (q :1)→MUX(4 :1)

Puesto que de acuerdo con el diagrama de estados las transiciones entre estados están regidas por una
única señal de condición es posible implementar la unidad de control usando una ROM, un registro y un
MUX. El registro de la afirmación posee 3 bits, el MUX es del tipo 8:1 y la capacidad de la ROM del
enunciado es de 16 palabras x (16 bits/palabra). Se observa que todos los elementos proporcionados
poseen las características adecuadas para poder implementar una unidad de control según el caso 1. En
conclusión la afirmación es VERDADERA.

Luego la respuesta correcta es la B.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 21


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.22


• Unidad de control implementada con dos elementos de memoria tipo D, uno por cada variable de
estado.
• Hay dos variables de estado (Q1, Q0).
• La codificación de los estados es S0:(Q1=0, Q0=0), S1: (Q1=0, Q0=1), S2: (Q1=1, Q0=0).

Estado Próximo estado


presente I ⋅ s0 I ⋅ s0 I ⋅ s0 I ⋅ s0
S0 S0 S0 S1 S1
S1 S3 S2 S3 S2
S2 S0 S3 S0 S3
S3 S3 S3 S3 S3

Como se conoce la codificación de los estados es posible construir la siguiente tabla equivalente a la dada
en el enunciado:

Estado actual Señales de condición Próximo estado


Q1(t) Q0(t) I s0 Q’1(t+1) Q’0(t+1)
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 1 1
0 1 0 1 1 0
0 1 1 0 1 1
0 1 1 1 1 0
1 0 0 0 0 0
1 0 0 1 1 1
1 0 1 0 0 0
1 0 1 1 1 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1

En la implementación de una UC usando elementos de memoria tipo D, la entrada de cada uno de estos
elementos es:

D0 = Q0′
D1 = Q1′

Jose Manuel Díaz Tutor de ETC2 (Coslada) 22


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

Usando la técnica de los mapas de Karnaugh es posible obtener las expresiones lógicas de D 0 y D1.

Is0
11
Is0
00 01 10 Q0 ⋅ Q1 ⋅ I
Q1Q0 00 01 10 Q1Q0 11
00 0 0 0 0 00 0 0 1 1
Q0 Q0 ⋅ s0
01 1 1 1 1 01 1 0 0 1
11 1 1 1 1 Q1 ⋅ s0 11 1 1 1 1
10 0 1 1 0 10 0 1 1 0
Q1 ⋅ s 0
D1 = Q0 + Q1 ⋅ s 0
D0 = Q0 ⋅ s 0 + Q1 ⋅ s0 + Q0 ⋅ Q1 ⋅ I

Luego la respuesta correcta es la C.

SOLUCION PROBLEMA 5.23


Se proporciona el diagrama de estados de una unidad de control, para calcular las
expresiones de las señales de control c3 y c5

s2 / c0

I
S2
s1 / c2 , c4
s0 / c1
I / c0 , c3 s2 / c5
S0 S1 s1 / c3 S4 S5
s0 / c1 , c2
s1 / c5
S3

Las señales de control ci i=0,...,5 se expresarán como funciones del estado actual Sj j=0,...,5 y de las
señales de condición sk k=0,1,2

Por simple inspección visual se observa que la señal de control c3 se activa en los siguientes casos:
1) Si el estado actual es S0 y la señal de condición es I, es decir, I·S0
2) Si el estado actual es S3 y la señal de condición es s1, es decir, s1·S3

Luego la expresión lógica de c3 es:

c3 = I ·S 0 + s1 ·S 3

Por otra parte por simple inspección visual se observa que la señal de control c5 se activa en los
siguientes casos:
1) Si el estado actual es S3 y la señal de condición es s1 , es decir, s1 ·S 3
2) Si el estado actual es S4 y la señal de condición es s 2 , es decir, s 2 ·S 4
Luego la expresión lógica de c5 es:

c5 = s1 ·S 3 + s 2 ·S 4

Luego la afirmación correcta es la D.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 23


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.24


Diagrama ASM
Técnica de diseño de un elemento de memoria por estado
Elementos de memoria tipo J-K

En el libro de teoría esta técnica de diseño de una UC se ha descrito supuesto que se utilizan elementos de
memoria o biestables tipo D, y se necesitaban tantos biestables tipo D como estados tuviese la UC. En
este caso el diagrama ASM indica que la UC posee 3 estados {S0,S1,S2} luego serán necesarios tres
biestables tipo D para implementar la UC por la técnica de un elemento de memoria por estado. Es
posible implementar esta técnica con otros tipos de biestables pero entonces es necesario utilizar las
tablas de transición de estados y calcular las ecuaciones de entrada a los elementos de memoria.

En el enunciado se desea implementar esta técnica con biestables tipo J-K. Por lo tanto se debe
comprobar si con un biestable tipo J-K se puede emular un biestable tipo D.

La tabla de verdad o funcionamiento de un biestable tipo D es:

Entrada Estado actual Próximo estado


D Q(t) Q’(t+1)
0 0 0
0 1 0
1 0 1
1 1 1

Se observa que D=Q(t+1).

Mientras que la tabla de funcionamiento de un biestable tipo J-K es:

Entrada Entrada Estado actual Próximo estado


J K Q(t) Q’(t+1)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

Se observa que las filas sombreadas de esta tabla son precisamente la tabla de funcionamiento de un
biestable tipo D si se hace la entrada J = D y la entrada K = D .

Luego se ha demostrado que un biestable tipo J-K puede ser equivalente a un biestable tipo D. En
conclusión puesto que se necesitan 3 biestables tipo D para implementar la UC con la técnica de “un
elemento de memoria por estado”, de forma equivalente se podría implementar con 3 elementos
biestables tipo J-K.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 24


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.25


• Unidad de control implementada con dos elementos de memoria tipo D, uno por cada variable de
estado.
• Hay dos variables de estado (Q1, Q0).
• La codificación de los estados es S0:(Q1=0, Q0=0), S1: (Q1=0, Q0=1), S2: (Q1=1, Q0=0).

Estado Próximo estado


presente I ⋅ s0 I ⋅ s0 I ⋅ s0 I ⋅ s0
S0 S0 S0 S1 S1
S1 S3 S2 S3 S2
S2 S3 S1 S3 S1
S3 S3 S0 S3 S0

Como se conoce la codificación de los estados es posible construir la siguiente tabla equivalente a la dada
en el enunciado:

Estado actual Señales de condición Próximo estado


Q1(t) Q0(t) I s0 Q’1(t+1) Q’0(t+1)
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 1 1
0 1 0 1 1 0
0 1 1 0 1 1
0 1 1 1 1 0
1 0 0 0 1 1
1 0 0 1 0 1
1 0 1 0 1 1
1 0 1 1 0 1
1 1 0 0 1 1
1 1 0 1 0 0
1 1 1 0 1 1
1 1 1 1 0 0

En la implementación de una UC usando elementos de memoria tipo D, la entrada de cada uno de estos
elementos es:

D0 = Q0′
D1 = Q1′

Jose Manuel Díaz Tutor de ETC2 (Coslada) 25


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

Usando la técnica de los mapas de Karnaugh es posible obtener las expresiones lógicas de D 0 y D1.

Q1Q0 Q0 s0 IQ0
Q1Q0 so Q1
D0 = Q0 so + Q0Q1 + Q0 I = Q0 so + Q0 (Q1 + I )
D1 = Q1Q0 + s o Q1

Luego la respuesta correcta es la A).

SOLUCION PROBLEMA 5.26


UC de 28 estados.
Implementarla mediante ROM + registro + MUX de selección por campo

De acuerdo con lo indicado en el libro de teoría, para implementar la UC con estos elementos es
necesario conocer el número de señales de condición que rigen la transición entre los estados y si cada
estado requiere como máximo de una única señal de condición para pasar al próximo estado. Esta
información no se da en el enunciado. Luego la solución correcta es la C).

SOLUCION PROBLEMA 5.27


UC de 32 estados y 10 señales de condición. Sólo es necesario consultar en cada estado una
única señal de condición
Implementarla mediante ROM + registro + MUX de selección por campo

De los datos del enunciado se deduce que:


N=32 estados ≤ 2n => n=5 variables de estado
q=10 señales de condición ≤ 2h => h=4 señales de control del MUX.

Además puesto que en cada estado solamente es necesario consultar una señal de condición, es posible
implementar la UC usando los elementos y la técnica propuestos en el enunciado.

Del libro de teoría se sabe que para esta metodología de diseño el registro debe poseer dos campos, uno
para almacenar las h señales de control del MUX y otro para almacenar las n variables de estado. Luego
el tamaño del registro debe ser de h+n bits. En este caso el registro necesario debe tener un tamaño de

h+n=4+5= 9 bits

Luego la respuesta correcta es la D).

Jose Manuel Díaz Tutor de ETC2 (Coslada) 26


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.28

I s1
s1/c1,c3

S0 S1 s0/c2 S2
I/c0

s0/c1

De acuerdo con el diagrama de estados adjunto esta unidad de control tiene:


• N=3 estados (S0, S1, S2) → 3≤2n → n=2 variables de estado (Q1,Q0).
• q=3 señales de condición (I,s0,s1).
• m=4 señales de control (c0,c1, c2, c3)

Analicemos la veracidad de las afirmaciones propuestas:

I) Para implementar una unidad de control empleando una ROM y un registro, es necesario que éstos
elementos tengan las siguientes características:

- Capacidad de la ROM:
C ≥ 2n+q palabras x (n+m) (bits/palabra) ≥25 palabras x 6 (bits/pal)

- Registro de n ≥ 2 bits

Luego esta afirmación I es VERDADERA.

II) Si se usa una ROM, un MUX y un registro es necesario que éstos elementos tengan las siguientes
características:

Caso 1: Multiplexor de selección por estado

- Capacidad de la ROM:
C ≥ 2n+1 palabras x (n+m) (bits/palabra) ≥23 palabras x 6 (bits/pal)

- Registro de n≥2 bits

- MUX (2n :1)→MUX(22 :1)→MUX(4:1)

Caso 2: Multiplexor de selección por campo

- Capacidad de la ROM:
C ≥ 2n+1 palabras x (log2q+n+m) (bits/palabra) ≥23 palabras x 8 (bits/palabra)

- Registro de (log2q+n) ≥4 bits

- MUX (q :1)→MUX(4:1)

Puesto que de acuerdo con el diagrama de estados las transiciones entre estados están regidas por una
única señal de condición es posible implementar la unidad de control usando una ROM, un registro y un
MUX. El registro de la afirmación posee 2 bits, el MUX es del tipo 4:1 y la capacidad de la ROM del
enunciado es de 8 palabras x 6 (bits/palabra). Se observa que todos los elementos proporcionados poseen
las características adecuadas para poder implementar una unidad de control según el caso 1. En
conclusión la afirmación II es VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 27


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.29


• Unidad de control con cuatro estados: S 0:(Q1=0, Q0=0), S1: (Q1=0, Q0=1), S2: (Q1=1, Q0=0).
• Hay dos variables de estado (Q1, Q0).
• Unidad de control implementada con dos elementos de memoria tipo D, uno por cada variable de
estado.
• D0 = Q1 + Q0 ⋅ I + Q0 ⋅ s0
• D1 = s0 ⋅ Q1 + Q1 ⋅ Q0 + Q1 ⋅ Q0

En primer lugar debe recordarse que en un elemento de memoria tipo D cuyo estado actual es Q(t) la
función lógica del próximo estado Q(t+1) es Q(t+1)=Q’=D(t).

Luego en la unidad de control propuesta se tiene que Q1’=D1 y Q0’=D0. En el enunciado dan las
funciones lógicas de D1 y D0. Para averiguar si las afirmaciones son verdaderas o falsas basta con evaluar
estas funciones en los estados indicados en cada afirmación.

Afirmación I: Hay que evaluar las expresiones de D1 y de D0 en el estado S2 (Q1=1, Q0=0):

D0 = Q1 + Q0 ·I + Q0 ·s0 = 1 + I + 0·s0 = 1
D1 = s0 ·Q1 + Q1 ·Q0 + Q1 ·Q0 = s0 ·1 + 0·0 + 1·1 = 1

Luego el próximo estado es (D1,D0)=(Q1’,Q0’)=(1,1)=S3. Por lo tanto la afirmación es VERDADERA.

Afirmación II: Hay que evaluar las expresiones de D1 y de D0 en el estado S1 (Q1=0, Q0=1) y además
considerar que s0=1:

D0 = Q1 + Q0 ·I + Q0 ·s0 = 0 + 0·I + 1·0 = 0


D1 = s0 ·Q1 + Q1 ·Q0 + Q1 ·Q0 = 1·0 + 1·1 + 0·1 = 1

Luego el próximo estado es (D1,D0)=(Q1’,Q0’)=(0,1)=S2. Por lo tanto la afirmación es VERDADERA.

SOLUCION PROBLEMA 5.30


• Unidad de control implementada con dos elementos de memoria tipo D, uno por cada variable de
estado.
• Hay dos variables de estado (Q1, Q0).
• La codificación de los estados es S0:(Q1=0, Q0=0), S1: (Q1=0, Q0=1), S2: (Q1=1, Q0=0).

I s0/c5 s0/0

I/c0,c3 s0/c1 s1/c2


S0 S1 S2 S3
s1/c4

s0/0

Como se conoce el diagrama de transición de estados es posible construir la siguiente tabla de transición
de estados

Jose Manuel Díaz Tutor de ETC2 (Coslada) 28


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

Estado actual Señales de condición Próximo estado


Q1(t) Q0(t) I s0 Q’1(t+1) Q’0(t+1)
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 1 1
0 1 0 1 1 0
0 1 1 0 1 1
0 1 1 1 1 0
1 0 0 0 1 1
1 0 0 1 1 1
1 0 1 0 1 1
1 0 1 1 1 1
1 1 0 0 0 1
1 1 0 1 1 1
1 1 1 0 0 1
1 1 1 1 1 1

Nótese que la señal de condición s1 que aparece en el diagrama no se ha utilizado en la construcción de


esta tabla ya que realmente dicha señal no hace falta, ya que independientemente de su valor del estado S2
siempre se pasa al estado S3.

En la implementación de una UC usando elementos de memoria tipo D, la entrada de cada uno de estos
elementos es la variable asociada al próximo estado:

D0 = Q0′
D1 = Q1′

Usando la técnica de los mapas de Karnaugh es posible obtener la expresión lógica de D 1.

Aunque también sería válida la siguiente expresión:

Luego la afirmación correcta es la C.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 29


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.31


• Unidad de control implementada con: MUX (22), registro de 2 bits, ROM de 23 palabras x 6
(bits/palabra)

I
s0/c3
?
S0 S1 s0/c2 S2 S3
I/c0,c1

s1/c3

Para resolver este problema conviene recordar que si se usa una ROM, un MUX y un registro para
implementar una Unidad de Control es necesario que éstos elementos tengan las siguientes características
(n nº de variables de estado, m nº de señales de control, y q número de señales de condición):

Caso 1: Multiplexor de selección por estado

- Capacidad de la ROM: C ≥ 2n+1 palabras x (n+m) (bits/palabra)

- Registro de n≥2 bits

- MUX (2n :1)

Caso 2: Multiplexor de selección por campo

- Capacidad de la ROM: C ≥ 2n+1 palabras x (p+n+m) (bits/palabra)

- Registro de (p+n) bits

- MUX (q:1)

Siendo p el número de bits necesarios para codificar las q señales de condición.

Además tanto en el caso 1 como en el caso 2 para poder implementar una unidad de control con estos
elementos es necesario que las transiciones entre estados están regidas por una única señal de condición.

De la observación del diagrama de estados se deduce que la unidad de control posee cuatro estados, luego
se requieren de dos variables de estado para codificarlos con lo que n=2.

Si se analizan las características de los dispositivos de que se disponen en el enunciado se observa que el
registro es de 2 bits lo que descarta la implementación de la unidad de control según el caso 2. Por otra
parte la ROM del enunciado dispone de 6 bits/palabra. Como la implementación se debe hacer según el
caso 1, eso implica que

n+m=6

Como n=2, entonces m=4, es decir, como máximo sólo pueden existir cuatro señales de control (c0, c1, c2,
c3). Luego la respuesta B no es correcta ya que considera la existencia de una quinta señal de control c 4.

La respuesta B considera que el paso del estado S2 a S3 se regula con la señal de condición s2, pero del
diagrama se sabe que el paso del estado S2 a S1 se regula con la señal de condición s1. Por lo tanto se
tendrían dos señales de condición (s2 y s1) asociadas a un estado (S2) con lo que se incumpliría la
condición de que para poder implementar una unidad de control usando una ROM, registro y MUX es
necesario que las transiciones entre estados están regidas por una única señal de condición.. Luego la
respuesta B no es correcta. En conclusión la respuesta correcta es la D.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 30


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.32


• Unidad de control implementada con dos elementos de memoria tipo D, uno por cada variable de
estado.
• Hay dos variables de estado (Q1, Q0).
• La codificación de los estados es S0:(Q1=0, Q0=0), S1: (Q1=0, Q0=1), S2: (Q1=1, Q0=0).

Estado presente Próximo estado


Q1 Q0 I s0 I s0 I s0 I s0
00 00 00 01 01
01 11 10 11 10
10 11 01 11 01
11 11 00 11 00

Este problema puede resolverse de dos formas:


Forma 1: Usando la técnica de los mapas de Karnaugh para obtener la expresión lógica de D 0 y de D1.
Forma 2: Evaluar las funciones propuestas para D1 y D0 en las afirmaciones y comprobar que
efectivamente el próximo estado para cada caso coincide con el indicado en la tabla del enunciado. Con
que existe un caso en el que sea distinto la expresión será falsa.

Se va resolver de la forma 2:
Estado actual Señales Próximo estado Evaluación de las funciones propuestas
de condición
Q1(t) Q0(t) I s0 Q1’ Q2’ D1 = Q1 ·Q 0 + Q1 ·s 0 D0 = Q1 + I ·( s 0 + Q0 )
0 0 0 0 0 0 1·0+0·1=0 0+0·(1+1)=0
0 0 0 1 0 0 1·0+0·0=0 0+0·(0+1)=0
0 0 1 0 0 1 1·0+0·1=0 0+1·(1+1)=1
0 0 1 1 0 1 1·0+0·0=0 0+1·(0+1)=1
0 1 0 0 1 1 1·1+0·1=1 0+0·(1+0)=0
0 1 0 1 1 0 1·1+0·0=1
0 1 1 0 1 1 1·1+0·1=1
0 1 1 1 1 0 1·1+0·0=1
1 0 0 0 1 1 0·0+1·1=1
1 0 0 1 0 1 0·0+1·0=0
1 0 1 0 1 1 0·0+1·1=1
1 0 1 1 0 1 0·0+1·0=0
1 1 0 0 1 1 0·1+1·1=1
1 1 0 1 0 0 0·1+1·0=0
1 1 1 0 1 1 0·1+1·1=1
1 1 1 1 0 0 0·1+1·0=0

De acuerdo con la tabla construida existe al menos un caso donde D0 difiere de Q0’, por eso no ha sido
necesario seguir evaluando la función en los demás casos. Luego la afirmación I es FALSA.

Por otra parte D1 es igual a Q1’ en todos los posibles casos, en conclusión la afirmación II es
VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 31


TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

SOLUCION PROBLEMA 5.33

• Diagrama ASM

• En cada estado se debe generar una sola señal de control (c 0 en S0, c1 en S1, c2 en S2)

De acuerdo con el diagrama ASM adjunto esta unidad de control tiene:


• N=3 estados (S0, S1, S2) → 3≤2n → n=2 variables de estado (Q1,Q0).
• q=2 señales de condición (Inicio,Cond1).
Además según el enunciado
• m=3 señales de control (c0,c1,c2)

Analicemos la veracidad de las afirmaciones:

I) Para implementar una unidad de control empleando una ROM y un registro, es necesario que éstos
elementos tengan las siguientes características:

Capacidad de la ROM:
C ≥ 2n+q palabras x (n+m) (bits/palabra) ≥24 palabras x 5 (bits/pal)

Registro de n≥2 bits

Puesto que la ROM de la afirmación posee únicamente 8 palabras, ocho menos de las necesarias esta
afirmación es FALSA.

II) Si se usa una ROM, un MUX de selección por estado y un registro es necesario que éstos elementos
tengan las siguientes características:

Capacidad de la ROM:
C ≥ 2n+1 palabras x (n+m) (bits/palabra) ≥23 palabras x 5 (bits/pal)

Registro de n≥2 bits

MUX (2n :1)→MUX(22 :1)→MUX(4 :1)

De acuerdo con el diagrama ASM las transiciones entre estados están regidas por una única señal de
condición, luego es posible implementar la unidad de control usando una ROM, un registro y un MUX.
Además puesto que el MUX del enunciado es del tipo 4:1 y la capacidad de la ROM del enunciado es de
8 palabras x (8 bits/palabra). Se observa que todos los elementos proporcionados poseen las
características adecuadas para poder implementar la unidad de control. En conclusión la afirmación es
VERDADERA..

Jose Manuel Díaz Tutor de ETC2 (Coslada) 32


Problema - Junio 2ª semana:
El siguiente algoritmo describe una determinada operación de un sistema digital.
A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos
de la Figura 2: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un
contador módulo-16 bidireccional y circuitos triestado de conexión unidireccional con control de 8 bits;
además de puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y
decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples
dispositivos y evitar en su diseño posibles conflictos eléctricos entre ellos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseñada en el apartado A) empleando la técnica de los elementos de retardo. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solución.

1: Declaración: 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 A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S
c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S
00 Q(t) 0 A+B 00 Q(t) 0 -
01 D. Dcha. 1 A-B 01 Q(t)-1 mod 16 1 E
10 D. Izq. 10 Q(t)+1 mod 16
11 Carga 11 0

Figura 2: Módulos secuenciales del problema con sus tablas de funcionamiento

Solución

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 utilizarán multiplexores.
• Los registros volcarán su contenido al bus a través de sendas puertas triestado, para evitar problemas
eléctricos.
• Un contador módulo-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 ocasión y el contador de que se dispone sólo puede contar de 1 en
1, esto no supone nungún problema ya que bastará con incrementar 1 dos veces seguidas.
Del análisis del algoritmo se sigue que harán falta dos señales de condición:
• s0, que indique si el valor del registro A es múltiplo de 4. Para ello veamos cómo son los números múltiplos
de 4:

A7 A6 A5 A4 A3 A2 A1 A0

4: 0 0 0 0 0 1 0 0

8: 0 0 0 0 1 0 0 0

12: 0 0 0 0 1 1 0 0

16: 0 0 0 1 0 0 0 0

20: 0 0 0 1 0 1 0 0

Tabla 1: Los múltiplos de 4

Es decir, son todos ellos números acabados en 00. Si se admite el 0 como múltiplo de 4 (este problema se
resolverá aquí adoptando este criterio) entonces se tiene que s0 = A1 A0. Si se considera que 0 no es múltiplo
de 4 entonces alguno de los bits más significativos ha de ser distinto de 0: s0 = (A7 + A6 + A5 + A4 + A3 +
A2) A1 A0.
Otra manera de ver cómo son los números múltiplos de 4 es la siguiente: Un número binario anan-1an-2...a1a0
tiene el valor decimal an×2n + an-1×2n-1 + an-2×2n-2 + ... + a1×21 + a0×20. Para dividir este número entre
4 lo multiplicamos por 2-2, con lo que resulta: an×2n-2 + an-1×2n-3 + an-2×2n-4 + ... + a2×20 + a1×2-1 +
a0×2-2. Si el número inicial es divisible entre 4, la parte decimal del cociente de la división debe ser 0. En
este caso, la parte fraccionaria es a1×2-1 + a0×2-2, pues 2-1 = 0.5 y 2-2 = 0.25. Ya que a1 y a0 sólo 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 dígitos binarios, 14 se expresa como 1 1 1 0, luego esta señal
de condición se realizará fácilmente con una puerta AND y un inversor.
Un posible diseño 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 simultáneamente, es posible hacer uso de un único multiplexor. Así mismo, dado
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-operación, es posible gobernar cada uno de los registros con una única señal de control conectada
simultáneamente a sus entradas c0 y c1. La Figura 4 muestra cómo se realizarían estas modificaciones. (Este
diseño, al hacer uso de menos componentes y menos señales de control, es más económico.) En lo que sigue, el
problema se resolverá haciendo uso del diseño de la Figura 3.

BUS 8

0 1 0 1
c9 c0 MUX c1 MUX c10

ED c0 c2 ED c0 c4 c0 c6
Reg. desp. A c Reg. desp. B c Contador c1
EI 1 c3 EI 1 c5 c7
8
4

A1 A0 Cont3 Cont0
A B
UAL c8

s0 s1
Unidad de
Procesamiento
c0
Inicio Circuito c1
Fin de
Reloj Control
c10
Unidad de
Control

Figura 3: Diseño de la Unidad de Procesamiento


BUS 8

0 1
c0 MUX

Reloj

ED c0 c2 ED c0 c4
EI Reg. desp. A c EI Reg. desp. B c
1 1
8

A B
UAL c8

Figura 4: Fragmento de la Unidad de Procesamiento, en el que se muestran algunas posibles modificaciones en el diseño

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se diseña el diagrama
de transición de estados de la Figura 5, donde el significado detallado de cada uno de los estados propuestos viene
dado por la Tabla 2. Obsérvese que esta Unidad de Control se ha diseñado como una máquina 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 s1s0
S0 S1 S2 S3 S4 S5 S7 S8

Inicio

s1s 0
S6

Figura 5: Diagrama de estados de la Unidad de Control


Estado de la Unidad Microoperaciones Señales de control
de Control efectuadas a activar
S0 Ninguna Ninguna
S1 A ← Bus (c0=0), c2, c3
B ← Bus (c1=0), c4, c5
S2
Cont ← 0 c6, c 7
S3 Ninguna Ninguna
A←A-B
c0, c 2, c3, c8
S4 Cont ← (Cont + 1) mod
(c6=0), c7
16
Cont ← (Cont + 1) mod
S5 (c6=0), c7
16
S6 B←B+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 transición de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseñada 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 condición (s1 = 1) del estado S3 se salta al estado S 7. En caso contrario, en S3 se comprueba si A es
múltiplo de 4 (s0) o no (s0) y se salta al estado correspondiente. Obsérvese 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 técnica de los elementos de retardo, según 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. También se muestra cómo se forman las distintas señales de control a partir de las salidas de los
biestables tipo D [ver las páginas 304 a 307 del texto base de teoría]. Obsérvese que los bloques de decisión
corresponden a demultiplexores, según se muestra en la Figura 7 [ver las páginas 304 a 307 del texto base de
teoría].
Inicio Set
S0 S0

Inicio Inicio Demux


0 1

S1 S1 c2, c3

S2 S2 c4, c5,
c6, c7

s1s0 S3 S3
s1
s1 Demux
0 1
s1s0 s0
0 1

S4 S4
c0, c2, c3,
c7, c8
S5 S5
c7

S6 S6
c1, c4, c5

S7 S7
c10

S8 S8
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 realización mediante elementos de retardo
Entrada
Entrada Entrada

0 1 V Demux
V
0 1

Salida 0 Salida 1 Salida 0 Salida 1 Salida 0 Salida 1

Figura 7: Bloque de decisión (izquierda) visto como un demultiplexor (centro) y su realización equivalente con puertas
lógicas (derecha)
6 Estructura y Tecnología de Computadores II

3UREOHPD  6HSWLHPEUH 

El siguiente algoritmo describe una determinada operación de un sistema digital.


A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos
de la Figura 1: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un
contador módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertas
lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere
necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseñada 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 solución.

1: Declaración: 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 E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
E c1 c1
Q R Q

Figura 1: Módulos 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 exámenes del curso 2000/2001 7

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 más o menos significativo (A[7] o A[0]) con la
entrada serie que le corresponda (ED o EI). En este caso la operación 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 señal de reset pero se puede conseguir este efecto cargando el valor “0”
(8 bits).
‡ Una UAL capaz de sumar 1 a un número 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 operación. Además, puesto
que siempre se va a realizar la operación de suma se puede dejar el valor de la entrada de control c0 de la
UAL siempre al valor lógico “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 detección del estado 7 del contador que genere la señal de condición 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 análisis se desprende que es posible implementar la ruta de datos teniendo en cuenta que se deben generar
las señales de condición adecuadas hacia la unidad de control:
‡ s0, señal de condición correspondiente a A[0] = 1. Se genera conectando la salida A[0] del registro A a la
entrada de condición s0 de la unidad de control.
‡ s1, señal de condición de fin de bucle. Se genera conectando la salida de la puerta AND a la entrada de
condición s1 de la unidad de control.
Por otra parte, la Unidad de Control recibe una señal externa que arranca el algoritmo:
‡ I, señal de condición 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 señales de control utilizadas.
8 Estructura y Tecnología de Computadores II

Bus

0 1 c0
c1 MUX

0 ED c0 c4 0 ED c0 c2
EI Reg. desp. c1 EI Reg. desp. c1
0 c5 c3
1
B
A[0]

A B c 0
0
UAL

c0 c6
Contador c1
2 1 0 c7

s0 (valor del bit A[0])


s1(=1 Contador es 7)

c0 Unidad de
Inicio Circuito Procesamiento
c1
Fin de
Reloj Control
c7
Unidad de
Control

Figura 2: Diseño de la Unidad de Procesamiento

Señal de Control Operación controlada

c0 Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexión (1)
c1 Selección 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: Descripción de la señales de control de la Unidad de Procesamiento

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se diseña el diagrama
de transición 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 exámenes del curso 2000/2001 9

Este diagrama de transición de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseñada 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 condición de
finalización y, en caso de no verificarse, incrementa el contador y realiza otra iteración. En total el bucle se realiza
para todos los valores del contador, desde el 0 hasta el 7.

Inicio S5
s1
s0
S0 S1 S2 S3 S4 s1 S6

s0

Figura 3: Diagrama de estados de la Unidad de Control

Estado de la Unidad Microoperaciones Señales de control


de Control efectuadas a activar
S0 Ninguna Ninguna
A ← Bus c3, c2
S1 B←0 c1, c5, c4
Reset Cont (c7=0), c6
S2 Ninguna Ninguna
S3 B←B+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 método de los elementos de retardo. El diseño
correspondiente se muestra en la Figura 4. En la parte izquierda de la Figura 4 se ha vuelto a colocar el diagrama de
transición de estados de forma que sirva de ayuda y complemento al diseño lógico de la Unidad de Control.
10 Estructura y Tecnología de Computadores II

Inicio=0
S0 Set
S0 Inicio •
Inicio=1
• S1
S1 c1, c2, c3, c4, c5, c6

s0= 0
• S2 •
S2
s0 •
s0= 1

S3 • S3 •
• c4, c5

S4 s = 1 • S4 •
1
• c2
s1= 0 s1 •

S5
• S5 •
• c7

S6 • S6 •
• c0

Reloj Clear

Figura 4: Unidad de Control


Ejercicios
de
Arquitectura de Computadoras

José Garzía
 En la figura se representa el diagrama de flujo de un algoritmo.
BX
AY

A  A+B

Sí No
¿A7==1?
A  A’ B  B+1

A  A+1

C  A+B

Los registros A, B y C tienen una longitud de 8 bits. A7 representa el bit más significativo del registro A. A' es el complemento a 1 de A. En
las operaciones de suma se ignoran los arrastres del bit más significativo. Diseñe la arquitectura de un sistema digital (Sección de
Procesamiento + Sección de Control) que realice este algoritmo. Se supone que la sección de procesamiento dispone de los recursos de
cálculo necesarios en el algoritmo. Para la sección de control especifique únicamente su diagrama de estados y las acciones que tiene que
efectuar cuando se encuentra en cada uno de los mismos (no es necesario diseñar el circuito secuencial correspondiente a la sección de
control).
Sección de procesamiento
X Diagrama de estados
de la sección de control
Y
S0
C2 C0 C1
A B
C4 C3 C5
s0 s0=1 S s0=0
A la sección UAL
1

de control
S2 S4
C C6

S3
Señal de Operación
control controlada S5
C0 AY
C1 BX
C2 A  A’
C3 A  A+1
C4 A  (UAL)
C5 B  B+1
C6 C  (UAL)

Estado de la sección de control Microoperaciones efectuadas Señales de control activas


S0 BX C0, C1
AY
S1 A  A+B C4
S2 A  A’ C2
S3 A  A+1 C3
S4 B  B+1 C5
S5 C  (UAL) C6

Arquitectura de Computadoras 1 Ejercicios de diseño conjunto de las SP y SC


 Sea el siguiente algoritmo:

1: Declaración de registros : A[5], B[3], R[5];


2: Inicio: A 00001, B 100; (números binarios)
3: Bucle: A A * B;
4: B B - 1;
5: if B <> 1 then go to Bucle;
6: R A;
7: Parar;

a) ¿Cuál es el valor de R al finalizar? ¿Qué operación realiza este algoritmo?.


b) Diseñe la arquitectura de un sistema digital (Sección de Procesamiento + Sección de Control) que realice este algoritmo. Se supone que
la sección de procesamiento dispone de un recurso de cálculo que efectúa la multiplicación. Para la sección de control especifique sólo
su diagrama de estados y las acciones que tiene que efectuar cuando se encuentra en cada uno de los mismos (no es necesario diseñar el
circuito secuencial correspondiente a la sección de control).

a) Este algoritmo calcula el factorial del número inicialmente almacenado en el registro B. Mientras este contenido va decrementándose en
una unidad cada pasada por el bucle, los productos parciales se van acumulando en el registro A. Finalmente, el resultado se almacena en el
registro R.

b)
Diagrama de bloques de la sección de procesamiento Diagrama de estados
Bus B de la sección de control

Bus A S0

C0 C1
A B A la sección
C2 C3 S1
Circuito combinacional de control
s0 = b2' ·b1' · b0 s
0
R C4 UAL s0=0
S2

S3
s0=1
S4

S5
Señal de Operación
control controlada
C0 A  Bus A
C1 B  Bus B
C2 A  (UAL)
C3 B  B-1
C4 RA

Estado de la sección de control Microoperaciones efectuadas Señales de control activas


S0 A  Bus A C0, C1
B  Bus B
S1 A A * B C2
S2 B B - 1 C3
S3 ninguna ninguna
S4 RA C4
S5 ninguna ninguna

Arquitectura de Computadoras 2 Ejercicios de diseño conjunto de las SP y SC


 El siguiente algoritmo describe una determinada operación de un sistema digital.
1: Declaración: 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;

a) Diseñe la sección de procesamiento que permita realizar este algoritmo utilizando los módulos dibujados abajo: registros de
desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador módulo-8 y circuitos triestado de conexión
unidireccional con control de 8 bits; además de puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y
decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos. (En concreto dos, el
registro A y el registro B).
b) Diseñe la sección de control que ejecute este algoritmo con la sección de procesamiento diseñada en el apartado a), empleando una
memoria ROM.
E c1 c0 Q(t+1)
Clk C1 0 0 Q(t)
Registro de
ED C0 0 1 Des. Dcha.
desplazamiento
EI 1 0 Des. Izq.
Q 1 1 Carga
B A
c0 R
C0
UAL 0 A+B
1 A-B
R

c1 c0 Q(t+1)
contador C1 0 0 Q(t)
Clk
C0 0 1 0
Q 1 0 Q(t)+1 mod 8.
1 1 Q(t)
E
C0 c0 S
0 -
1 E
S

a) Antes de proponer un diseño para la sección de procesamiento hagamos unas consideraciones previas sobre los requerimientos del
algoritmo. La sección de procesamiento tiene que resolver cada uno de estos requerimientos:

 Registro A. Puede ser cargado desde el bus y desde la salida de la ALU. Por ello se precisan ocho multiplexores 2 a 1 en su entrada
para seleccionar cuál es el origen de la carga.
Puede ser fuente para el bus y para la entrada de la ALU. Por ello, su salida debe estar conectada a estos dos destinos.
 Registro B. Ídem.
 Bucle for. Utiliza el registro Cont como índice de bucle. Para el registro Cont utilizaremos el contador disponible.
El final de la cuenta lo detecta un circuito combinacional.
El caso de Cont par se detecta cuando el bit menos significativo del contador es ‘0’.
El caso de Cont impar se detecta cuando el bit menos significativo del contador es ‘1’.
 Bus. Puede recibir datos de A y de B. Debe estar aislado mediante circuitos triestado.
 Multiplicaciones y divisiones por 2.
Las divisiones en A con desplazamientos hacia la derecha. Por si el contenido en A fuera negativo, por la izquierda entra otra vez el
bit más significativo.
Las multiplicaciones en B con desplazamiento hacia la izquierda. Por la derecha entra siempre ‘0’.

Diagrama de bloques de la sección de procesamiento


Bus
MuxB MuxA Clk contador C1
BuB BuA C0 Sección
8 MUX 8 MUX s0 de
2a1 2a1 Q0 Control S
E E Q1 s1
ED CB0 ED CA0 Q2 Ci
B CB1 A CA1
EI=0 Clk EI Clk
Clk Q Q

UAL OP

Arquitectura de Computadoras 3 Ejercicios de diseño conjunto de las SP y SC


b)
Diagrama de estados Señal de control Operación controlada
de la sección de control C0 y C1 Resetean o incrementan el contador
CA0 y CA1 Cargas y desplazamientos en A
S0 CB0 y CB1 Cargas y desplazamientos en B
MuxA Selecciona la entrada en A
MuxB Selecciona la entrada en B
S1 BuA Abre al bus la salida de A
BuB Abre al bus la salida de B
OP Selecciona el tipo de operación
s0=0 S2 s0=1
Estado Estado Microoperaciones efectuadas Señales de control
S3 S5 actual siguiente activas
s1=0 S0 S1 A Bus MuxA=1, CA1 CA0=11
S4 S6 S1 S2 B Bus, Cont 0 MuxB=1, CB1 CB0=11, C1C0=01
S2 S3 si s0=0 ninguna ninguna
S7 S5 si s0=1
s1=1 S3 S4 A A+B CA1 CA0=11
S8 S4 S7 A A/2, Cont Cont+1 CA1 CA0=01, C1C0=10
S5 S6 B B-A CB1 CB0=11, OP=1
S9 S6 S6 B B*2, Cont Cont+1 CB1 CB0=10, C1C0=10
S7 S2 si s1=0 ninguna ninguna
S8 si s1=1
S10 S8 S9 Bus A BuA=1
S9 S10 Bus B BuB=1
S10 S10 ninguna ninguna

Señal de condición significado

s0 s0=0 cuando Cont es par y s0=1 cuando Cont es impar


s1 s1=0 cuando Cont7 y s1=1 cuando Cont=7

Estado Codificación asignada


actual Q3 Q2 Q1 Q0
S0 0 0 0 0
S1 0 0 0 1
S2 0 0 1 0
S3 0 0 1 1
S4 0 1 0 0
S5 0 1 0 1
S6 0 1 1 0
S7 0 1 1 1
S8 1 0 0 0
S9 1 0 0 1
S10 1 0 1 0

Arquitectura de Computadoras 4 Ejercicios de diseño conjunto de las SP y SC


Sección de control microprogramada con selección por estado
00
01 MUX
s0 02 24 a 1 A0
03 ROM
04 A1
05 A2
06 25 palabras de 15 bits
s1 A3
07
08 A4 Q3 Q2 Q1 Q0 C1 C0 CB1 CB0 CA1 CA0 MuxB MuxA BuB BuA OP
Sólo se indican de 09
forma explícita las 10
11 Estado futuro
entradas 02 y 07
del multiplexor. Las 12
restantes entradas 13 Registro
son irrelevantes 14 Q3 Q2 Q1 Q0
15

Señales de control
Estado en curso

Estado Dirección de la ROM Contenido de la ROM


en
Estado en curso Condición Estado futuro Señales de control
curso Q3Q2Q1Q0 s1 ó s0 Q3Q2Q1Q0 C1 C0 CB1 CB0 CA1 CA0 MuxB MuxA BuB BuA OP
S0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0
0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0
S1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
S2 0 0 1 0 0 si s0=0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 si s0=1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
S3 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0
0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0
S4 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0
0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0
S5 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1
0 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1
S6 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0
0 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0
S7 0 1 1 1 0 si s1=0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 si s1=1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
S8 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0
1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0
S9 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0
1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0
S10 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Arquitectura de Computadoras 5 Ejercicios de diseño conjunto de las SP y SC


 El siguiente algoritmo describe una determinada operación de un sistema digital.
1: Declaración: 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 A;
12: Bus B;
13: Parar;
a) Diseñe la sección de procesamiento que permita realizar este algoritmo utilizando los módulos dibujados abajo: registros de
desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador módulo-8 y circuitos triestado de conexión
unidireccional con control de 8 bits; además de puertas lógicas y los módulos combinacionales (multiplexores, demultiplexores,
codificadores, decodificadores, etc.) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.
(en concreto dos, el registro A y el registro B).

b) Diseñe la sección de control que ejecute este algoritmo con la sección de procesamiento diseñada en el apartado a) empleando una
memoria ROM.
E c1 c0 Q(t+1)
Clk C1 0 0 Q(t)
Registro de
ED C0 0 1 Des. Dcha.
desplazamiento
EI 1 0 Des. Izq.
Q 1 1 Carga
B A
c0 R
C0
UAL 0 A+B
1 A-B
R

c1 c0 Q(t+1)
contador C1 0 0 Q(t)
Clk
C0 0 1 Q(t)-1 mod 8
Q 1 0 Q(t)+1 mod 8
1 1 0
E
C0 c0 S
0 -
1 E
S

a) Antes de proponer un diseño para la sección de procesamiento hagamos unas consideraciones previas sobre los requerimientos del
algoritmo. La sección de procesamiento tiene que resolver cada uno de estos requerimientos:
 Registro A. Puede ser cargado desde el bus y desde la salida de la ALU. Por ello se precisan ocho multiplexores 2 a 1 en su entrada
para seleccionar cuál es el origen de la carga.
Puede ser fuente para el bus y para la entrada de la ALU. Por ello, su salida debe estar conectada a estos dos destinos.
Su capacidad de desplazamiento no será utilizada. Esto tiene dos consecuencias:
1ª Las entradas de control sólo tendrán valores c1c0=00 ó c1c0=11. Como en todo caso tienen ambas el mismo valor, pueden
estar unidas, así sólo se necesita una señal de control para ambas.
2ª Las entradas ED y EI pueden estar conectadas a cualquier valor irrelevante.

 Registro B. Ídem.
 Bucle while. Utiliza el registro Cont como índice de bucle. Para el registro Cont utilizaremos el contador disponible.
El final de la cuenta lo detecta un circuito combinacional.
El caso de A par se detecta cuando el bit menos significativo de A es ‘0’.
El caso de A impar se detecta cuando el bit menos significativo de A es ‘1’.
 Bus. Puede recibir datos de A y de B. Debe estar aislado mediante circuitos triestado.

Diagrama de bloques de la sección de procesamiento


Bus
MuxB MuxA Clk contador C1
8 MUX BuB BuA C0 Sección
8 MUX s0
2a1 de
2a1
Q0 Control S
ED E ED E Q1 s1
CB CA Q2 Ci
B A
Clk EI Clk EI
Q Q Clk
s0=A[0]
OP
UAL

Arquitectura de Computadoras 6 Ejercicios de diseño conjunto de las SP y SC


b)
Diagrama de estados Señal de control Operación controlada
de la sección de control C0 y C1 Resetean o incrementan el contador
CA Carga en paralelo en A
CB Carga en paralelo en B
S0
MuxA Selecciona la entrada en A
MuxB Selecciona la entrada en B
BuA Abre al bus la salida de A
S1 BuB Abre al bus la salida de B
OP Selecciona el tipo de operación

s0=0 S2 s0=1 Estado Estado Microoperaciones efectuadas Señales de control activas


actual siguiente
S3 S4 S0 S1 A Bus MuxA=1, CA=1
s1=0 S1 S2 B Bus, Cont 0 MuxB=1, CB=1, C1C0=11
S5 S2 S3 si s0=0 ninguna ninguna
S4 si s0=1
s1=1
S3 S4 A A-B, Cont Cont+1 CA=1, C1C0=10, OP=1
S6 S4 S5 B B+A, Cont Cont-1 CB=1, C1C0=01
S5 S2 si s1=0 ninguna ninguna
S7 S6 si s1=1
S6 S7 Bus A BuA=1

S8
S7 S8 Bus B BuB=1
S8 S8 ninguna ninguna

Señal de condición significado


s0 s0=0 cuando A es par y s0=1 cuando A es impar
s1 s1=0 cuando Cont7 y s1=1 cuando Cont=7

Estado Codificación asignada


actual Q3 Q2 Q1 Q0
S0 0 0 0 0
S1 0 0 0 1
S2 0 0 1 0
S3 0 0 1 1
S4 0 1 0 0
S5 0 1 0 1
S6 0 1 1 0
S7 0 1 1 1
S8 1 0 0 0

Arquitectura de Computadoras 7 Ejercicios de diseño conjunto de las SP y SC


Sección de control microprogramada con selección por estado
00
01 MUX
s0 02 24 a 1 A0
03 ROM
04 A1
s1 05 A2
06 25 palabras de 13 bits
A3
07
08 A4 Q3 Q2 Q1 Q0 C1 C0 CB CA MuxB MuxA BuB BuA OP
Sólo se indican de 09
forma explícita las 10
11 Estado futuro
entradas 02 y 05
del multiplexor. Las 12
restantes entradas 13 Registro
son irrelevantes 14 Q3 Q2 Q1 Q0
15

Señales de control
Estado en curso

Estado Dirección de la ROM Contenido de la ROM


en
Estado en curso condición Estado futuro Señales de control
curso Q3 Q2 Q1 Q0 s1 ó s0 Q3Q2Q1Q0 C1 C0 CB CA MuxB MuxA BuB BuA OP
S0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0
0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0
S1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0
0 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0
S2 0 0 1 0 0 si s0=0 0 0 1 1 0 0 0 0 0 0 0 0 0
0 0 1 0 1 si s0=1 0 1 0 0 0 0 0 0 0 0 0 0 0
S3 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1
0 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1
S4 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0
0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0
S5 0 1 0 1 0 si s1=0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 si s1=1 0 1 1 0 0 0 0 0 0 0 0 0 0
S6 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
S7 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0
0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0
S8 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

Arquitectura de Computadoras 8 Ejercicios de diseño conjunto de las SP y SC


 El siguiente algoritmo describe una determinada operación de un sistema digital.
1: Declaración: A[8], B[8], Cont[3]; Bus[8]
2: A Bus;
3: B Bus, Cont 0;
4: while A < 128
6: 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 A;
13: Bus B;
14: Parar;

a) Diseñe la sección de procesamiento que permita realizar este algoritmo utilizando los módulos dibujados abajo: registros de
desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador módulo-8 y circuitos triestado de conexión
unidireccional con control de 8 bits; además de puertas lógicas y los módulos combinacionales (multiplexores, demultiplexores,
codificadores, decodificadores, etc.) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples
dispositivos.

b) Diseñe la sección de control que ejecute este algoritmo con la sección de procesamiento diseñada en el apartado a) empleando
una memoria ROM.
E c1 c0 Q(t+1)
Clk C1 0 0 Q(t)
Registro de
ED C0 0 1 Des. Dcha.
desplazamiento
EI 1 0 Des. Izq.
Q 1 1 Carga
B A
c0 R
C0
UAL 0 A+B
1 A-B
R

c1 c0 Q(t+1)
contador C1 0 0 Q(t)
Clk
C0 0 1 0
Q 1 0 Q(t)+1 mod 8.
1 1 Q(t)
E
C0 c0 S
0 -
1 E
S

a) Antes de proponer un diseño para la sección de procesamiento hagamos unas consideraciones previas sobre los requerimientos del
algoritmo. La sección de procesamiento tiene que resolver cada uno de estos requerimientos:

 Registro A. Puede ser cargado desde el bus y desde la salida de la ALU. Por ello se precisan ocho multiplexores 2 a 1 en su entrada
para seleccionar cuál es el origen de la carga.
Puede ser fuente para el bus y para la entrada de la ALU. Por ello, su salida debe estar conectada a estos dos destinos.
Su capacidad de desplazamiento no será utilizada. Esto tiene dos consecuencias:

1ª Las entradas de control sólo tendrán valores c1c0=00 ó c1c0=11.


Como en todo caso tienen ambas el mismo valor, pueden estar unidas, así sólo se necesita una señal de control para ambas.
2ª Las entradas ED y EI pueden estar conectadas a cualquier valor irrelevante.

 Registro B. Sólo puede ser cargado desde el bus.


Su capacidad de desplazamiento no será utilizada. Esto tiene dos consecuencias:

1ª Las entradas de control sólo tendrán valores c1c0=00 ó c1c0=11.


Como en todo caso tienen ambas el mismo valor, pueden estar unidas, así sólo se necesita una señal de control para ambas.
2ª Las entradas ED y EI pueden estar conectadas a cualquier valor irrelevante.

 UAL. Su entrada izquierda puede proceder del registro B o del contador. Por ello se precisan ocho multiplexores 2 a 1 en su entrada
izquierda para seleccionar cuál es el origen del operando izquierdo. Su salida sólo se conecta al registro A.

Sólo se utiliza para sumar. Por tanto, su entrada de control puede estar permanentemente a ‘0’. No necesitamos señal de control
para la operación de la UAL.

Arquitectura de Computadoras 9 Ejercicios de diseño conjunto de las SP y SC


 Operación A A + OperandoIzquierdo;
Pueden estar activas simultáneamente las señales de selección de suma en la ALU y de carga en el registro A.

Para evitar que uno de los operandos cambie antes de acabar la operación:

OperandoIzquierdo A
B A

C0
UAL
R

No es necesario:
ti ti+1 ti+2
Reloj

OP ADD

CargaEnA

Podemos aprovechar que la carga en A es el en flanco negativo de la señal correspondiente; cuando ya se ha terminado suma.
ti ti+1 ti+2
Reloj

OP ADD

CargaEnA

 Bucle while. Utiliza el registro Cont como índice de bucle. Para el registro Cont utilizaremos el contador disponible.
Son necesarios dos circuitos combinacionales para detectar:

1º El final del bucle (A  128).


Si el registro tuviera más de ocho bits, deberían ser tenidos en cuenta estos dos detalles:

1.1 Siempre es cierta la implicación A7=1  A128. Es decir: ...1xxxxxxxb  A128.


1.2 No siempre es cierta la implicación A7=0  A<128. Pues podría ser A7=0 y haber algún bit más significativo An=1.

Combinando ambos detalles, en general es falsa la equivalencia: A7=1  A128.


Pero en nuestro caso, al tratarse de un registro de ocho bits, sí es cierta la equivalencia.
Por tanto, la señal utilizada para discernir si se cumple (A  128) será simplemente el bit A7 del registro A.

2º Cont<4
Para Cont < 4 (100b), Q2 = 0
Para Cont  4 (100b), Q2 = 1

La señal para saber si Cont es menor que 4 será simplemente el bit Q2 del registro Cont.

 Bus. Puede recibir datos de A y de B. Debe estar aislado mediante circuitos triestado.

Diagrama de bloques de la sección de procesamiento


Bus
E MuxA
ED
CB BuB
B BuA 8 MUX
Clk EI 2a1
Q E
Clk Contador C1 MuxAlu ED CA
Q2 Q1 Q0 A
C0 8 MUX EI
3 8 Clk Q
2a1
5
‘0’ s0=A7
s1=Q2
A la sección
UAL OP=0 de control
A la sección de control

Arquitectura de Computadoras 10 Ejercicios de diseño conjunto de las SP y SC


b)
Diagrama de estados Señal de control Operación controlada
de la sección de control C0 y C1 Resetean o incrementan el contador
CA Carga en paralelo en A
CB Carga en paralelo en B
S0 MuxA Selecciona la entrada en A
MuxAlu Selecciona la entrada izquierda de la UAL
S1 BuA Abre al bus la salida de A
BuB Abre al bus la salida de B

S2 s0=1 Estado Estado Microoperaciones efectuadas Señales de control


actual siguiente activas
s0=0 S0 S1 A Bus MuxA=1, CA=1
S3
s1=0 s1=1
S1 S2 B Bus, Cont 0 CB=1, C1C0=01
S2 S3 si s0=0 ninguna ninguna
S4 S5 S7 si s0=1
S3 S4 si s1=0 ninguna ninguna
S5 si s1=1
S6
S4 S6 A A + Cont CA=1, MuxAlu=0

S7 S5 S6 A A + B CA=1, MuxAlu=1


S6 S2 Cont (Cont+1) mod 8 C1C0=10

S8
S7 S8 Bus A BuA=1
S8 S9 Bus B BuB=1
S9 S9 ninguna ninguna
S9
Señal de condición significado
s0 s0=0 cuando Cont<4 y s0=1 cuando Cont4
s1 s1=0 cuando Cont<128 y s1=1 cuando Cont128

Estado Codificación asignada


actual Q3 Q2 Q1 Q0
S0 0 0 0 0
S1 0 0 0 1
S2 0 0 1 0
S3 0 0 1 1
S4 0 1 0 0
S5 0 1 0 1
S6 0 1 1 0
S7 0 1 1 1
S8 1 0 0 0
S9 1 0 0 1

Arquitectura de Computadoras 11 Ejercicios de diseño conjunto de las SP y SC


Sección de control microprogramada con selección por estado
00
s0 01 MUX
02 24 a 1 A0
s1 03 ROM
04 A1
05 A2
06 25 palabras de 12 bits
A3
07
08 A4 Q3 Q2 Q1 Q0 C1 C0 CB CA MuxB MuxA BuB BuA
Sólo se indican de 09
forma explícita las 10
11 Estado futuro
entradas 02 y 03
del multiplexor. Las 12
restantes entradas 13 Registro
son irrelevantes 14 Q3 Q2 Q1 Q0
15

Señales de control
Estado en curso

Estado Dirección de la ROM Contenido de la ROM


en
Estado en curso Condición Estado futuro Señales de control
curso Q3Q2Q1Q0 s1 ó s0 Q3Q2Q1Q0 C1 C0 CB CA MuxAlu MuxA BuB BuA
S0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0
0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0
S1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0
0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0
S2 0 0 1 0 0 si s0=0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 1 0 1 si s0=1 0 1 1 1 0 0 0 0 0 0 0 0
S3 0 0 1 1 0 si s1=0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 si s1=1 0 1 0 1 0 0 0 0 0 0 0 0
S4 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0
0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0
S5 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0
0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0
S6 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0
S7 0 1 1 1 0 1 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 1
S8 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0
1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0
S9 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0
1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0

Arquitectura de Computadoras 12 Ejercicios de diseño conjunto de las SP y SC


3
U
R
OH
P
D
E


El siguiente algoritmo describe una determinada operación de un sistema digital.


a) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los
módulos dibujados abajo (Figura 99-2-1): registros de desplazamiento de 8 bits, una UAL con dos
entradas de 8 bits cada una, un contador módulo-8 y circuitos triestado de conexión unidireccional con
control de 8 bits; además de puertas lógicas y los módulos combinacionales (MUX, DMUX,
codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan
datos múltiples dispositivos y evitar en su diseño posibles conflictos eléctricos entre ellos.
b) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseñada en el apartado a) empleando un registro de desplazamiento. Detalle y explique claramente
todos y cada uno de los pasos seguidos hasta obtener la solución.

Figura 99-2-1: Módulos 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; sólo es necesario poder cargar el registro B desde el
bus. Ambos registros deben poder enviar su contenido a la UAL para realizar operaciones aritméticas con ellos. El
ciclo while se controlará mediante el valor del registro A y el bucle if mediante un contador módulo-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 través de un multiplexor que selecciona el bus o la salida de la UAL.
Los registros A y B se vuelcan al bus a través de puertas triestado que evitan posibles conflictos eléctricos. Las
entradas ED y EI de los registros no se utilizan en este problema.
La señal de condición s0 indica A≥128, lo que implica que el bit más significativo de A (A7) sea 1. La señal de
condición s1 indica CONT≥4, lo que implica que el bit más 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 más significativas:
0 0 0 0 0 CONT2 CONT1 CONT0
8 BUS

C9 C0 0 MUX 1 C10

C7
0
C1 C3 CONT C6
ED 0 ED 0
CK A CK B 1
C2 C4
EI 1 EI 1
3
CK
8

8 “0”
5
1 0 MUX 1 C8 1

s0(=A7) s1(=CONT2)

A B
C5
UAL

Figura 99-2-2: Unidad de Procesamiento

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

Señales de Control Operación

C0 Selecciona BUS (1) o UAL (0)

C1, C2 Control del registro de desplazamiento A (según Figura 99-2-1)

C3, C4 Control del registro de desplazamiento B (según Figura 99-2-1)

C5 Suma (0) o resta (1)

C6, C7 Control del contador(según Figura 99-2-1)

C8 Selecciona B (0) o CONT (1)

Tabla 99-2-1: Significado de las señales de control


Señales de Control Operación

C9 A → BUS

C10 B → BUS

Tabla 99-2-1: Significado de las señales 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 solución no es única y no se ha buscado minimizar el
número de estados). El significado de cada uno de sus estados se detalla en la Tabla 99-2-2.

Estado Microoperaciones Señales de control

S0 A ← BUS C0, C1, C2

B ← BUS C3, C4
S1
CONT = 0 C6, C7

S2 ------ ------

S3 ------ ------

S4 A ← A + CONT C0, C1, C2, C5, C8

S5 A←B+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 transición de estados corespondiente para una Unidad de Control basada en un registro de
desplazamiento se muestra en la Tabla 99-2-3. La codificación de los estados se ha realizado procurando
minimizar el número de cargas en paralelo del registro. La Tabla 99-2-4 está más detallada, y tiene en cuenta la
codificación de los estados.
Estado Código Condición Transición Operación ED

S0 0 0 0 0 (0) --- S 0 → S1 DD 1

S1 1 0 0 0 (8) --- S 1 → S2 DD 1

s0 S2 → S3 DD 1
S2 1 1 0 0 (12)
s0 S2 → S7 L -

s1 S3 → S4 DD 1
S3 1 1 1 0 (14)
s1 S3→ S5 L -

S4 1 1 1 1 (15) --- S4 → S6 L -

S5 0 1 0 1 (5) --- S 5 → S6 DD 1

S6 1 0 1 0 (10) --- S6 → S2 L -

S7 0 1 1 1 (7) --- S 7 → S8 DD 1

S8 1 0 1 1 (11) --- S8 → S9 DD 1

S9 1 1 0 1 (13) --- S9 → S9 --- -

Tabla 99-2-3: Tabla de transición de estados

Próximo
Estado Condición w1 w0 E3 E2 E1 E0 Operación ED S. de control
estado

S0 = 0 0 0 0 (0) --- S1 = 1 0 0 0 01 ----- DD 1 C0, C1, C2

S1 = 1 0 0 0 (8) --- S2 = 1 1 0 0 01 ----- DD 1 C3, C4, C6, C7

s0 S3 = 1 1 1 0 01 ----- DD 1
S2 = 1 1 0 0 (12) ------
s0 S7 = 0 1 1 1 11 0111 L -

Tabla 99-2-4: Tabla de transición de estados teniendo en cuenta la codificación de los mismos
Próximo
Estado Condición w1 w 0 E3 E2 E1 E0 Operación ED S. de control
estado

s1 S4 = 1 1 1 1 01 ----- DD 1
S3 = 1 1 1 0 (14) ------
s1 S5 = 0 1 0 1 11 0101 L -

S4 = 1 1 1 1 (15) --- S6 = 1 0 1 0 11 1010 L - C0, C1, C2, C5, C8

S5 = 0 1 0 1 (5) --- S6 = 1 0 1 0 01 ----- DD 1 C0, C1, C2, C5, C8

S6 = 1 0 1 0 (10) --- S2 = 1 1 0 0 11 1100 L - C6, C7

S7 = 0 1 1 1 (7) --- S8 = 1 0 1 1 01 ----- DD 1 C10

S8 = 1 0 1 1 (11) --- S9 = 1 1 0 1 01 ----- DD 1 C9

S9 = 1 1 0 1 (13) --- S9 = 1 1 0 1 00 ----- --- - ------

Tabla 99-2-4: Tabla de transición de estados teniendo en cuenta la codificación de los mismos

El esquema de la Unidad de Control se muestra en la Figura 99-2-4. Las expresiones lógicas 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 fácilmente en la Unidad de Control (Figura 99-2-4) mediante puertas
lógicas. La entrada ED del registro está fija a 1 y la entrada EI no se utiliza.
0 S0 (C0, C1, C2)
3
2 1
1 2
0
3
4
5 S5 (C0, C1, C2, C5, C8)

Decodificador
6
Q3 Q2 Q 1 Q0 7 S7 (C10)
1 ED
w0 8 S1 (C3, C4, C6, C7)
EI
Reg. Desp. 9
w1
10 S6 (C6, C7)
E3 E2 E 1 E 0 11 S8 (C9)
>

12 S2 (---)
13 S9 (---)
CK 14 S3 (---)
15 S4 (C0, C1, C2, C5, C8)

Figura 99-2-4: Unidad de Control mediante un registro de desplazamiento (faltan por implementar las señales Ei y wi)

3U
RE
OH
P
D


.
3: B ← Bus;
4: for Cont = 0 to 7 do
5: if Cont es par then
6: A ← Α + Β; Α ← Α / 2
7: else
8: B ← Β − Α; Β ← Β ∗ 2
9: endif
10: endfor
11: Bus ← A;
12: Bus ← Β;
13: Parar;

Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S

Figura 98-2-1: Módulos del problema con sus tablas de funcionamiento

6
R
OF
LX
yQ

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


significado de todas la señales 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 conexión
unidireccional con control de 8 bits.
‡ Existe camino de los registros A y Ba la entrada de la UAL.
‡ Un contador módulo 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 lógica 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

0 1 c7 c8 1 0
c5 c6
MUX MUX

c c1 c c3
0 ED Reg. des. c01 0 EI Reg. des. c01
c2 c4
A B

A B c0 c0
UAL

c0 c9
Contador c1 c10
2 1 0

s1(=1 Contador es impar)

s0(=0 Contador es 0)

c0 Unidad de
Inicio Circuito Procesamiento
c1
Fin de
Reloj Control
c10
Unidad de
Control
Figura 98-2-2: Diseño de la Unidad de Procesamiento
Señal de Control Operacióncontrolada

c0 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 Selección MUX ntrada
e de A: UAL (0)y Bus (1)
c6 Selección 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 Conexión (1)
c8 Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexión (1)
c10 y c9 Contador: Nada (00), Reset (01), Incrementar (10) y Nada (11)

Tabla 98-2-1: Descripción de la señales de control de la Unidad de Procesamiento


B) Para describir el funcionamiento de la Unidad de Control, diseñamos el diagrama de transición de estados de la
Figura 98-2-3 donde la descripción 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 transición de estados cumple todos los requisitos para ejecutar el algoritmopropuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseñada en el apartado anterior. Se puede
comprobar, por ejemplo, que ejecuta el bucle for 8 veces.

s0
Inicio
S4 S5 s0
s1

S0 S1 S2 S3 S8 S9 S10
s1
S6 S7 s0

s0
Figura 98-2-3: Diagrama de estados de la Unidad de Control
Estadode la Unidad Microoperaciones Señales de control
de Control efectuadas a activar
S0 Ninguna Ninguna
A← Bus
S1 c1, c2, c5, c9, (c10=0)
Reset Cont
S2 B ← Bus c 3, c4, c6
S3 Ninguna Ninguna
A ← A+ B
S4 (c0=0), c1, c2, (c5=0), c10, (c9=0)
Incrementar Cont
S5 Desplazar Derecha A (c 2=0), c1
B ← B- A
S6 c0, c3, c4, (c6=0), c10, (c9=0)
Incrementar Cont
S7 Desplazar Izquierda B c 4, (c3=0)
S8 Bus ← A c7
S9 Bus ← B c8
S10 Ninguna Ninguna

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

Para implementar esta Unidad de Control vamos a emplear el método de los elementos de retardo. El diseño
correspondiente se muestra en la Figura 98-2-4.
Inicio=0
S0 Set
S0 Inicio •
Inicio=1

• S1
S1 c1, c2, c5, c9

• S2 •
• c3, c4, c6
S2

• S3 •
s1

S3
s1= 1
s1= 0
• S4 •
S4 s0= 1 • c1, c2, c10
• S5 •
• c1
s0

S5

s0= 0 • S6 •
S6 • c0, c3, c4 ,c10
• S7 •
s0 • c4
s0= 1 •
S7

s0= 0

• S8 •
S8
• c7

• S9 •
• c8
S9

• S10 •
S10

Reloj Clear

Figura 98-2-4: Unidad de Control


4: C ← Bus
5: for Contador = 0to 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;
Utilizando los módulos dibujados abajo: registros de desplazamiento de 8
bits, una UAL con dos entradas de 8 bits cada una y un contador módulo-8;
además de biestables tipo D, puertas lógicas y los módulos combinacionales
que considere necesarios:
A) Diseñar la Unidad de Procesamiento que permita realizar este
algoritmo.
B) Diseñar la Unidad de Control, utilizando la técnica de elementos de
retardo, que ejecute este algoritmo con la Unidad de Procesamiento
diseñada en el apartado A).

E A B
ED c0 c0 c0
Reg. despl. c1 UAL c1 Contador c1
Q R Q
c1c0 Q c1c0 R c1c0 Q
00 Nada 00 A+B 00 Q(t)
01 Carga 01 A-B 01 0
10 Desp. Dcha 10 A*B 10 Q(t)+1 mod 8
11 Nada 11 A/B 11 Q(t)

Figura 96-3-1 Módulos del problema y debajo su tabla de funcionamiento

Solución
A) Antes de proponer un diseño 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 información desde el bus y desde la
salida de la UAL. Al llegarle información desde dos lugares distintos es
necesario colocar un multiplexor en la entrada para seleccionar cuál de
los dos debe ser cargado en el registro. También el registro A debe
entregar su contenido a la UAL.
• Al registro B le llega información del Bus y entrega su contenido a la
UAL.
• El registro C recibe información desde el Bus y el algoritmo necesita
consultar el valor de sus dos bits menos significativos para comprobar si
son iguales o distintos. Esta condición la generaremos mediante la
función lógica 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 módulo 8 y para detectar el final
de la cuenta hacemos el producto lógico (AND) de sus tres salidas.
• Los registros de desplazamiento del enunciando son los únicos
elementos de almacenamiento disponibles, por lo que se utilizarán 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 diseño 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 diseño conviene hacer una observación. Los registros A y B sólo
van a utilizar dos valores de sus entradas de control
c1c0 Q
00 Nada
01 Carga

por lo que se puede fijar una de ellas, la más significativa c1, directamente a 0.
Bus

0 1
MUX c0
C
c c1 c c2 c c3
0 ED Reg. des. c0 0 ED Reg. des. c0 0 ED Reg. des. c0 c4
1 0 1 0 1

A B C(1) C(0)

c0 c7
A B c0 c5 Contado r c1 c8
UAL c1 c6

s1

s0= C(0) ⊕ C(1)

c0 Unidad de
Inicio Circuito c1 Procesamiento
Fin de
Reloj Control c8
Unidad de
Control
Figura 96-3-2 Diagrama de bloques, puntos de control (c 0 a c9) y señales de condición (s 0 y
s1) de la Unidad de Procesamiento solicitada
Para completar este diseño, es necesario hacer una breve descripción del
significado de cada una de las entradas de control que gobiernan su
funcionamiento (ve rTabla 96-3-1).
Señal de Control Operación controlada

c0 Entrada de selección 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 división (11)

c8 y c7 Control del contador: nada (00 y 11), reset (01) o incremento (10)

Tabla 96-3-1 Descripción de la señales 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 descripción detallada
de cada uno de los estados junto con las señales 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 condición generada por el contador en el estado S6 y después, si
no se hubiera llegado al final de la cuenta (s1=1), incrementar el contador.

S7

s1
S4
s0 s1
S0 S1 S2 S3 S6 S8

s0 S5

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


Estado de la Unidad Microoperaciones Señales de control
de Control efectuadas a activar

S0 A ← Bus c0, c1, c7


contado r ← 0

S1 B ← Bus c2

S2 C ← Bus c3

S3 Ninguna Ninguna

S4 A←A/B c1, c6, c7

S5 A←A+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 método de diseño utilizando elementos de retardo es prácticamente una


transcripción directa del diagrama de estados. En l Figura
a 96-3-4 se muestra
la Unidad de Control diseñada utilizando este método, junto con el diagrama
de estados de la Figura 96-3-3, redibujado en vertical, para servir de apoyo en
el diseño.
0
S0
S0
• c0, c1, c7

S1
• S1
• c2
• S2 •
• c3
S2

• S3 •
s0
S3 •

s0 = 1
• S4 •
S4 • c1, c6, c5
s0 = 0
• S5 •
• c1

S5
• S6 •
s1 • c4

S6

s1 = 0 • S7 •
• c8
s1= 1 S7

• S8 •

S8 Reloj Clear

Figura 96-3-4 Unidad de Control


7: if C(3) = C(5) then A ← A * B
8: else A ← A - B endif;
9: Desplazar derecha (C);
10: end;
11: Bus ← A;
12: Parar;

Ck E A B Ck E
ED c0 c0 c0
Reg. Desp. UAL Contador c0
c1 c1 c1
Q R Q S
c1 c0 Q(t+1) c1c0 R c1c0 Q(t+1) c0 S
00 Q(t) 00 A+B 00 Q(t) 0 -
01 Carga 01 A-B 01 0 1 E
10 Des. Dcha. 10 A*B 10 Q(t)+1 mod 8
11 Q(t) 11 A/B 11 Q(t)

Figura 97-2-1 Módulos del problema y debajo su tabla de funcionamiento


Solución
A) Antes de proponer un diseño 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 utilizarán 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 información desde el bus (paso 2 del
algoritmo) y desde la salida de la UAL (pasos 7 y 8 del algoritmo). Al
llegarle información desde dos lugares distintos es necesario colocar un
multiplexor en la entrada para seleccionar cuál 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 conexión al bus es
necesario colocar un circuito triestado para evitar que este registro
envíe continuamente su salida al bus. Si no se colocara este circuito
triestado se producirían continuos conflictos eléctricos en el bus que lo
harían totalmente inservible (ver Capítulo 1 del libro de teoría).
• Al registro B le llega información del Bus y entrega su contenido a la
UAL.
• El registro C recibe información desde el Bus y el algoritmo necesita
consultar el valor de sus dos bits menos significativos para comprobar si
son iguales o distintos. Esta condición se genera directamente mediante la
función lógica 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 módulo 8. La forma
de detectar el final de la cuenta depende del diagrama de estados que se
emplee. En esta solución se propone incrementar el contador nada mas
entrar en el bucle y comprobar la condición de finalización en el mismo
estado en el que se desplaza el registro C. Si se hace así, la Unidad de
Control tiene que comprobar cuándo el contador ha llegado a 4, es decir,
simplemente tiene que saber si el bit más 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 módulo-8 tienen
una entrada de reloj Ck. En el diseño 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 sincronización correcta en todas las
acciones de ambas.
Un posible diseño para la Unidad de Procesamiento pedida, teniendo en
cuenta todos estos requisitos , puede ser el mostrado en la Figura 97-2-2.
Sobre este diseño conviene hacer una observación. Los registros A y B sólo
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 1 c9
c0
MUX
C
c c1 c c2 c c3
0 ED Reg. des. c01 0 ED Reg. des. c01 0 ED Reg. des. c01 c4
0 0
A B C(3) C(5)

A B c0 c5
UAL c1 c6

c0 s0= C(3) ⊕ C(5)


c7
Contador c1 c8
2 1 0 s1

c0 Unidad de
Inicio Circuito c1 Procesamiento
Fin de
Reloj Control c9
Unidad de
Control
Figura 97-2-2 Diagrama de bloques, puntos de control (c0 a c9) y señales de condición (s0 y
s1) de la Unidad de Procesamiento solicitada
Para completar este diseño, es necesario hacer una breve descripción del
significado de cada una de las entradas de control que gobiernan el
funcionamiento de la Unidad de Procesamiento (ver Tabla 97-2-1).
Señal de Control Operación controlada

c0 Entrada de selección 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 división (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 Descripción de la señales 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 descripción detallada de
cada uno de los estados junto con las señales de control a activar en cada uno
de ellos, y la codificación de los estados empleada es la mostrada en la Tabla
97-2-3.
s1

S4 s1
S0 S1 S2 s0
S3 S6 S7

s0 s1
S5

s1

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


Estado de la Unidad Microoperaciones Señales de control
de Control efectuadas a activar
S0 A ← Bus c0, c1, c7
contador ← 0
S1 B ← Bus c2
S2 C ← Bus c3
S3 Ninguna Ninguna
S4 A←A-B c1, c5, c4, c8
Desplazar derecha C
Incrementar contador
S5 A←A*B c1, c6, c4, c8
Desplazar derecha C
Incrementar contador
S6 Bus ← A c9
S7 Ninguna Ninguna

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


A la hora de diseñar la Unidad de Control utilizando memoria ROM el
enunciado indica que se valorará la utilización de una memoria de tamaño
mínimo. Para conseguir este objetivo hay que darse cuenta que en cada estado
se consulta, como máximo, una condición, por lo que sería posible reducir el
número de palabras de la ROM a la mitad si se selecciona previamente la
condición utilizando un multiplexor. Las entradas de selección de este
multiplexor pueden ser el mismo estado (selección por estado) o un bit
adicional almacenado en la memoria ROM (selección por campo). Como esta
segunda solución (selección por campo) requiere de una memoria ROM de
tamaño mayor al tener que almacenar ese bit adicional por estado, se opta por
la primera (selección 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 Codificación de los estados

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


enunciado del problema. Tiene 4 líneas de direcciones (1 para la condición 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 señales de control), por tanto tiene una
tamaño de 24 palabras x 13 bits por palabra.

NOTA
Un error muy frecuente a la hora de resolver el problema es la utilización de
puntos de control en vez de las entradas de control de los módulos empleados
(registros de desplazamiento, contadores, etc). Tal y como se indica en las
páginas 321 a 323 del libro de teoría, “Los puntos de control se realizan
mediante circuitos cuya naturaleza depende de las características de los
dispositivos conectados a los caminos de datos sobre los que actúa ”. n
0
1
2
s0 3
s1 4 MUX A0
s1 5 A1 ROM
6
A2
7
16 palabras × 13 bits
0 1 2 A3
p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0
Estado futuro

• Inicio Cl Registro
• Reloj
Estado presente Q2 Q1 Q0 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0

Figura 97-2-4 Unidad de Control diseñada con una memoria ROM

Dirección de la ROM Contenido de la ROM


Estado
A3 A2 A1 A0 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0
Estado presente + Cond. Próximo Estado Control
Presente
Q2 Q1 Q0 si Q2 Q1 Q0 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1
S0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1
0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0
S1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0
0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0
S2 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0
0 1 1 0 (si s0 = 0) 1 0 1 0 0 0 0 0 0 0 0 0 0
S3 0 1 1 1 (si s0 = 1) 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 (si s1 = 0) 0 1 1 0 1 0 0 1 1 0 0 1 0
S4 1 0 0 1 (si s1 = 1) 1 1 0 0 1 0 0 1 1 0 0 1 0
1 0 1 0 (si s1 = 0) 0 1 1 0 1 0 1 0 1 0 0 1 0
S5 1 0 1 1 (si s1 = 1) 1 1 0 0 1 0 1 0 1 0 0 1 0
1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0
S6 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0
1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0
S7 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
Tabla 97-3-4 Contenido de la memoria ROM
Diseñe 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)Diseñe razonadamente la Unidad de Procesamiento, utilizando los
recursos que considere necesarios.
B) Describa todas las señales de control de la Unidad de Procesamiento
diseñada 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 señales de control activadas en cada unos de
los estados.
D)Diseñe razonadamente la Unidad de Control, empleando cualquiera
de las técnicas de diseño estudiadas a lo largo del curso. Indique
claramente todos los pasos seguidos.
Solución
A) A la vista del algoritmo propuesto, la Unidad de Procesamiento que se
diseñe 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 operación.
Bajo estas consideraciones la Figura 97-3-1 muestra la posible realización 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.
8 Bus-Entrada

0 1
c0
MUX

c1 LD c4 LD
A X
CK > CK >
“1” 8

c2 S/R 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
señal de reloj CK por lo que no se producirán problemas a la hora de
realimentar la salida del sumador/restador a la entrada del registro A.
También 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 señal de control c3. La puerta lógica AND compara la salida
del registro X con 255: si todos sus bits están a 1 el valor de X es 255 y se
genera la señal de condición s0.
B)

Señal Descripción

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 Descripción de las señales de control utilizadas

C)
s0
S0 S1 S2

s0 S4 S5

S3

Figura 97-3-2 Diagrama de estados

Señales de
Estado Microoperación
control

S0 X ← Bus-Entrada c4
S1 A ← Bus-Entrada c0,c1
S2 A←A+1 c0,c1,c2
S3 A←A-1 c0,c1,c2
Tabla 97-3-2 Descripción de los estados y sus microoperaciones asociadas
Señales de
Estado Microoperación
control

S4 Bus-Salida ← A c3
S5 Parar -----
Tabla 97-3-2 Descripción de los estados y sus microoperaciones asociadas

D) Utilizaremos la técnica 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 técnicas de diseño, comparando las
características y dificultad de cada una de ellas.)
Ya que hay 6 estados harán falta 3 biestables tipo D. Una posible
codificación 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 codificación de los estados

Del diagrama de estados de la Figura 97-3-2 y la codificación elegida en la


Tabla 97-3-3 se obtiene directamente la tabla de transición de estados (Tabla
97-3-4), y a partir de ella las funciones lógicas de las entradas de los biestables
mediante mapas de Karnaugh.
Próx.
Est. actual
Condición estado S. control
Q2Q1Q0
Q2Q1Q0

000 --- 000 c4


001 s0 010 c0,c1
s0 011
010 --- 100 c0,c1,c2
011 --- 100 c0,c1,c2
100 --- 101 c3
101 --- 101 -----
Tabla 97-3-4 Tabla de transición de estados

Q1Q0 Q1Q0 Q1Q0


s 0Q 2 00 01 11 10 s 0Q 2 00 01 11 10 s 0Q 2 00 01 11 10
00 0 0 1 1 00 0 1 0 0 00 0 1 0 0
D2 01 1 1 X X D1 01 0 0 X X D0 01 1 1 X X
11 1 1 X X 11 0 0 X X 11 1 1 X X
10 0 0 1 1 10 0 1 0 0 10 0 0 0 0

D2=Q2+Q1; D1=Q2Q1Q0; D0=Q2+s0Q1Q0.


A partir de aquí se construye fácilmente la Unidad de Control siguiendo la
técnica de diseño correspondiente (Figura 97-3-3). Para general las señales de
control se puede utilizar un decodificador, a partir de la codificación del
estado Q2Q1Q0.
Q2
D2 Q2
Q1
1
CK > Cl Q2
H 7
Inicio
Q2 6
2

Decodificador
Q1 D1 Q1 5
Q0 4 c3
CK 1 c0,c1
> Cl Q1 3
2 c0,c1,c2
Inicio
0 1 c1
s0 Q2
D0 Q0 0 c4
Q1
Q0 CK > Cl Q0
Inicio
Figura 97-3-3 Unidad de Control
6: B Å 0;
7: endif;
8: Despl.CerradoDcha(A);
9: Despl.CerradoDcha(A);
10: endfor;
11: Bus Å B;
12: Parar;

Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S


00 Q(t) 0 A+B 00 Q(t) 0 -
01 Des. Dcha. 1 A-B 01 0 1 E
10 Des. Izq. 10 Q(t)+1 mod 8
11 Carga 11 Q(t)

Figura 1: Módulos secuenciales del problema con sus tablas de funcionamiento.

Solución
a) Del análisis 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 operación A Å Bus. El tipo de
registro disponible es capaz de cargar en paralelo, y puede realizar esta operación.
- Desplazamiento cerrado a la derecha, correspondiente a la operación
Despl.CerradoDcha(A). En este caso el tipo de registro sólo realiza la operación
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.

6
ƒ Es necesario generar una señal de condición, correspondiente a la operación if A1A0≠01 then,
_ _
que se llamará s1. Para ello se puede usar la expresión equivalente NOT ( A1 A0 ) = A1 + A0 de
tal forma que se generará dicha condición usando una puerta OR y un inversor, como se
muestra en la Figura 3.

Figura 3: Generación de la señal de condición s1.

_
Otra opción podría ser generar la condición s1 como A1 AND A0 y tenerlo en cuenta a la hora
de realizar el diagrama de estados considerando la operación if A1A0≠01 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 BÅ0, BÅ1) y volcar su contenido al bus
(Operación BusÅB).
- Para volcar el contenido del registro al bus es necesario usar una puerta triestado que
controle la operación de escritura en el bus.
- Para distinguir el valor a cargar se podría 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 señal de control (generada
por la unidad de control) que determina el valor del bit menos significativo de la entrada. Si
llamamos a esta señal 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.

7
ƒ Finalmente es necesario implementar la lógica de la operación for Cont=0 to 3 do usando
un contador de tamaño adecuado. En este caso se debe contar de 0 a 3 y se dispone de un
contador módulo 8 (con tres estados Cont2Cont1Cont0) con lo que se hará necesario detectar
el fin de cuenta (Cont=3) usando una señal de condición s0. Esta señal de condición se
puede generar usando la condición Cont1Cont0=11 o bien usar la señal Cont2 como señal de
fin de cuenta (si Cont2=1 entonces Cont>3). Se va a usar esta segunda aproximación porque
de esta forma no es necesario usar una puerta AND de las entradas Cont1 y Cont0. El
diagrama de conexiones quedaría 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
señales de condición que debe generar, sólo quedan por definir las señales de control que la unidad
de control debe generar. En la Tabla 1 se muestran las definiciones de cada una de las señales de
control, la operación que realizan y el valor de las señales de control para dicha operación.

Señal de Operación a realizar Valor


control
CA0, CA1 Cargar registro A 11
CA0, CA1 Desplazamiento cerrado a la derecha de A 10
CB, Cargar registro B con 0 1
CB, CLOADB Cargar registro B con 1 11
CC0, CC1 Resetear contador 10
CC0, CC1 Incrementar módulo 8 una unidad el contador. 01
CBUS Volcar el contenido del registro B en el bus 1
Tabla 1: Señales de control que debe generar la Unidad de Control para cada operación.

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 señal de control, cB, asociada a la carga (si cB=1 Æ c1c0=11) y a la conservación el estado
(si cB=0 Æ c1c0=00). La señal CBUS es la señal 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.

8
Figura 6: Diseño de la Unidad de Procesamiento.

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


diseñado el diagrama de transición de estados de la Figura 7, donde el significado detallado de cada
uno de los estados propuestos viene dado por la Tabla 2. Obsérvese que esta Unidad de Control se
ha diseñado como una máquina 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.

9
Estado de la Microoperaciones efectuadas Señales 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 (Comprobamos condiciones s1 y s0) Ninguna
S4 BÅ0 CB
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 transición de estados cumple todos los requisitos para ejecutar el algoritmo
propuesto en el enunciado del problema utilizando la Unidad de Procesamiento diseñada 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 microoperación que se ejecuta dentro del bucle, de tal forma que cuando se llega al
valor Cont=4 se activa la señal s0 y se termina el bucle. Obsérvese que siempre se deben ejecutar las
dos microoperaciones de desplazamiento cerrado del registro A independientemente de la
condición A1A0 ≠ 01 y que además se debe hacer en dos estados consecutivos.

La Unidad de Control se realiza utilizando la técnica de los elementos de retardo, según pide el
enunciado,
asignando un biestable tipo D a cada estado, tal como se muestra en la Figura 8. También se
muestra cómo se forman las distintas señales de control a partir de las salidas de los biestables tipo
D [ver las páginas 304 a 307 del texto base de teoría]. Obsérvese que los bloques de decisión
corresponden a demultiplexores, según se muestra en la Figura 8 [ver las páginas 304 a 307 del
texto base de teoría].

10
Figura 8: Unidad de Control mediante elementos de retardo.

11
1) Se dispone de un computador de 32 bits con la siguiente estructura:

MP

CPU
CACHE

DISCO1 DISCO2 ....... DISCO


n

El sistema de memoria está formado por una Memoria principal cuyo


tiempo de acceso es de 550nseg y una caché con un tiempo de acceso
de 50nseg con un hit ratio del 90% y una política de actualización
write-back.
La CPU realiza 9x106 peticiones por segundo al sistema de memoria y
se dispone de discos cuya velocidad de transferencia es de 1Mbyte/seg.

a) Se pide calcular cuantos discos se pueden conectar al sistema sin


afectar al rendimiento de la CPU en más de un 25%.
Nota: Considerar despreciable el tiempo en realizar el write-back.

Solución:
a)
 Se harían 0,75 x 9x106 =6,75 x106 peticiones a memoria
/seg para afectar menos del 25% el rendimiento de la CPU.
 Cada disco transfiere 1Mbyte/seg -> 256 Kpalabras/seg ->
218 palabras /seg.
 Por tanto el cuello de botella para las transferencias estará
en el tiempo de respuesta de la memoria o en la capacidad
de tráfico del bus.

- T. acceso medio a memoria = 50x0,9+550x0,1=100ns


- La memoria permite 1/100x10-9= 107peticiones/seg que tendrán que
repartirse entre CPU y E/S.
- Si la CPU hace 6,75 x106 pet/seg a memoria quedarán libres para el
disco en 1 seg: 107 - 6,75 x106 =3,25 x106,
sabemos que cada disco transfiere 218 palabras /seg-> 3,25 x106/218
=12,39, es decir se podrán soportar hasta 12 discos.
2) Sea un sistema de disco con las siguiente características: 1021
bytes/sector, 48 sectores/pista, 120 pistas/superficie y 8 superficies; el
tiempo medio de movimiento de pista a pista es de 6 mseg y la velocidad
de rotación del disco es de 360 rpm. Una CPU lee un sector del disco
utilizando E/S controlada por interrupciones. Se produce una
interrupción cada vez que se transmite un byte. Si tarda 2 seg en
procesar cada instrucción, ¿Qué porcentaje máximo del tiempo estará la
CPU ocupada en la operación de E/S?.
Si se empleara un controlador DMA para la transferencia y se supone
una interrupción por sector, ¿Qué porcentaje máximo del tiempo estará
la CPU ocupada en la operación de E/S?.
Solución:

360 rpm  6 rps  tarda 1/6 en dar una vuelta completa.

1/6
tsector = = 3.47 ms
48

3.47 x 10-3
tbytes = = 3.39 s
1024

2 s
% CPU = x 100 = 59%
3.39 s

3) Elegir una de entre las opciones para cada apartado.


a) Un controlador de interrupciones.
1. Indica la fuente de interrupciones.
2. Decide el periférico que debe ser atendido.
3. Sirve para ampliar el nº de líneas de interrupciones
de la CPU.
4. Todas son ciertas.
b) La línea INTA.
1. Indica que está pendiente un reconocimiento de
interrupción.
2. Indica que está pendiente y sin reconocer una
interrupción.
3. Permite saber que la interrupción pendiente ha sido
reconocida.
4. Indica que la CPU está preparada para reconocer
una interrupción.
c) En un sistema con Daisy Chain, la prioridad de un módulo
depende:
1. De la prioridad asignada a su línea de interrupción
en la cadena.
2. De la CPU.
3. Del controlador de interrupciones de la cadena.
4. De su posición en la cadena.
Solución:
a) 4 b) 3 c) 4
4) Se dispone de un computador que funciona a una velocidad de 107
ciclos/seg y en el que, en promedio, una instrucción emplea 4 ciclos
máquina y cada operación de lectura o escritura de memoria dura 1
ciclo máquina.
Determinar la máxima velocidad de transferencia de datos, en palabras
por segundo, para los siguientes casos:
a) E/S controlada por programa y empleando 3 instrucciones en
transferir cada palabra.
b) DMA con estrategia de transferencia por ráfagas.
c) DMA con estrategia de transferencia por robo de ciclos.
d) DMA con estrategia de transferencia transparente y suponiendo
que en cada instrucción, en promedio, hay 2 ciclos en los cuales
la CPU no utiliza el bus.
Solución:

a) E/S y 3 I
1 instrucción  4 ciclos x = 12 ciclos
3 instrucciones  x
107 ciclos 1 palabra
* = 8.3 x 105 palabra/seg
Vmax = seg 12 ciclos

b) Ráfagas
107 ciclos 1 palabra
Vmax = seg * = 107 palabra/seg
ciclo

c) Robo de ciclo
107 ciclos 1 palabra
Vmax = seg * = 2x106 palabra/seg
5 ciclos

d) Transparente 2 ciclos sin usar el bus.

107 ciclos 2 palabra 1 instruc


* * = 5x106 pal/s
Vmax = seg 1 instruc 4 ciclos

5) Supongamos que el número de ciclos de reloj para una operación de


polling (escrutinio) es de 100 y que el procesador lo ejecuta con un reloj
de 50Mhz. Determinar la fracción del tiempo de CPU consumido en la
operación de escrutinio para los tres casos siguientes, suponiendo que
se escribe con suficiente frecuencia para que no se pierda ningún dato:

b) El ratón debe ser escrutado 30 veces por segundo para asegurar


que no falla ningún movimiento hecho por el usuario.
c) El disquete transfiere datos al procesador en unidades de 16 bits
y tiene una velocidad de datos de 50KBytes/seg.
d) El disco duro transfiere datos en unidades de palabra de 32 bits y
puede transferir a 2MBytes/seg.
Solución:
a) Ciclos para escrutinio: 30x100=3000 ciclos/seg.

3000x100
% T. Proc. = = 0,006 %
50 x 106

Es el porcentaje de tiempo que se emplea en escrutar el ratón.

b) Sabemos que en una operación de escrutinio se transfieren 2


bytes. Por tanto para mantener la velocidad del disco se tienen
que realizar 50K/2 operaciones de escrutinio/seg.

Ciclos para escrutinio: 25K * 100 = 2500x 210ciclos/seg.

2500x 210 x100


% T. Proc = = 5,12 %
50 x 106

c) En una operación se emplean 4 bytes.

Ciclos para escrutinio: 2Mb/4 =500K x100 ciclos/seg.

500K x 100 x 100


% T. Proc = = 100 %
50 x 106

 Esto sería un grave problema por que en el acceso al disco


duro el procesador quedaría totalmente ocupado.

6) Suponiendo el mismo procesador del ejercicio anterior, es decir con


una frecuencia de trabajo de 50Mhz y con una velocidad de
transferencia entre disquete y procesador de 50Kbytes/seg en unidades
de 16 bits. Obtener la fracción consumida por el procesador sabiendo
que la transferencia es mediante interrupciones y que el disquete se
activa transfiriendo solamente el 10% del tiempo de la operación de
E/S. Suponer que el gasto para cada transferencia, incluyendo la
interrupción, es de 100 ciclos de reloj.
Solución:

En cada transferencia se transfieren 2 bytes.


Para mantener la velocidad: 50K/2 = 25K transferencias /seg.
Ciclos para escrutinio = 25Kx100=2500x 210ciclos/seg.
Suponiendo que el disco este siempre activo:

2500x 210 x100


% T. Proc = = 5,12 %
50 x 106

Como solo se activa el 10% de tiempo de transferencia:

5,12
% T. Proc = = 0,512 %
10
7) Suponemos nuevamente un procesador que trabaja a 50Mhz y cuya
disco duro transfiere unidades de 32 bits a una velocidad de
2Mbytes/seg. Suponer inicialmente una transferencia de DMA que
utiliza 1000 ciclos de reloj para el procesador, y suponer que el
tratamiento de la interrupción a la terminación de un DMA necesita 500
ciclos de reloj para el procesador. Si el disco utiliza DMA y en cada
bloque transfiere 4KB. ¿Qué fracción del procesador se consume si el
disco está transfiriendo activamente el 100% del tiempo?

Solución:

 Sabemos que el disco transfiere a 2Mbytes/seg y el DMA


transfiere bloques de 4KB. Luego cada transferencia DMA
tarda:
4KB/2MB/seg = 2x10-3 seg/transferencia.
 Si una transferencia DMA emplea 1000+500 ciclos por
interrupción:
1500/2x10-3=750x 103 ciclos/segundo

 Si ahora dividimos por los ciclos de CPU:

750 x103
% T. Proc = = 1,5 %
50 x106

Como vemos no se consumen todos los ciclos del procesador como


ocurría en E/S por programa.
Unidad Aritmético Lógica

Problemas de UNIDAD ARITMETICO-LOGICA:


Problema 2ª semana de Junio de 2000
Se desea realizar una Unidad Aritmético Lógica (UAL) como la mostrada en la figura, con dos entradas de datos X (x1x0) e Y (y1y0),
una entrada de control C (c1c0) y una salida de datos R (r3r2r1r0). El funcionamiento de la UAL viene descrito por la siguiente tabla:

Para resolver el problema, seguir obligatoriamente los siguientes apartados:


a) (1 punto) Diseñar un comparador de números de dos bits utilizando únicamente comparadores de números de un bit y puertas
lógicas.
b) (2 puntos) Diseñar un sumador/multiplicador de dos números de 2 bits utilizando únicamente un módulo de memoria ROM.
¿Cuál es el tamaño necesario para este módulo 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) (1 punto) Utilizando únicamente los módulos diseñados en los apartados anteriores, los módulos combinacionales necesarios y
puertas lógicas, diseñe la UAL pedida.
Solución
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 comparación 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 + I1 M0
I = I1 I0
m = m1 + I1 m0
La explicación 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 lógico pedido en este apartado obtenido a partir de las expresiones anteriores.

Página 12
Unidad Aritmético Lógica

b) Para calcular el tamaño de la memoria ROM necesaria hay que saber el número 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 selección de la operación 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 números de dos bits tiene tan sólo 3 bits pero, para el
resultado del producto de dos números de dos bits se requieren 4 bits. Como el circuito a diseñar tiene que poder hacer
ambas operaciones, su salida ha de tener, necesariamente, 4 bits.
Por tanto, el tamaño de la memoria ROM necesario para implementar el sumador es de: 2 palabras × 4 bits/palabra. El significado
5

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 debería tener la memoria ROM.

c) En la Figura 2000-2-4 se muestra el diseño 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. También la entrada de control de
la UAL c0 se utiliza para seleccionar la operación a realizar por el Sumador/Multiplicador.

Página 13
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 6: Diseño del procesador


SOLUCION
PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2009-2010
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

PROBLEMAS
TEMA 6: Diseño 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 número con el acumulador cuando el número es:
a) Un operando inmediato.
b) Un operando con direccionamiento directo.
c) Un operando con direccionamiento indirecto.
Líneas de Unidad Líneas de
datos de dirección
Control

RM RI RD CP

Bus interno
de la UCP

R R2 AC
1
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 señales de control. La señal de condición s0 se activa cuando el contenido
del registro acumulador (AC) sea igual a cero. Obtener las secuencias de las microoperaciones y las señales 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 dirección de memoria.

b) Almacenar acumulador en una dirección 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.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

RD c11
Entrada 1
UAL c12
c5
c13
c8
c0
Memoria c2 CP c6
s0
c1
Acumulador (AC)
c3 c4
c9 c10

RM • • •• •

c7
c15
RI

c14
Reloj Unidad c0
s0
Señales de de
condición c13
Control

Figura 6.2: Caminos de datos y puntos de control

Señal de control Microoperación controlada


c0 Leer de la memoria
c1 Escribir en la memoria
c2 Transferir el contenido de RM a RD (RD←(RM))
c3 Transferir el contenido de CP a RM (RM←(CP))
c4 Transferir el contenido de RM a CP (CP←(RM))
c5 Transferir el contenido de CP a RD (RD←(CP))
c6 Incrementar en 1 el contenido del CP (CP←(CP)+1)
c7 Transferir el contenido de RM a RI (RI←(RM))
c8 Transferir el contenido de RM a la entrada 1 de la UAL
c9 Transferir el contenido de RM a AC (AC←(RM))
c10 Transferir el contenido de AC a RM (RM←(AC))
c11 AC←(AC)+ Entrada 1
c12 AC←(AC) AND Entrada 1
c13 Complementar el contenido de AC (AC←( AC ) )
c14 Transferir el campo de dirección de RI a RD (RD←(RI(dirección)))
c15 Transferir el campo de datos de RI a RM (RM←(RI(datos)))

Tabla 6.2: Señales de control de la CPU de la figura 6.2

6.3 Indique si las siguientes afirmaciones son ciertas :


I. Para la fase de ejecución del ciclo de instrucción existen tantas secuencias de microinstrucciones
como códigos de operación existan en el repertorio de instrucciones.
II. Cada fase del ciclo de instrucción se puede descomponer en una secuencia de operaciones
elementales llamadas instrucciones máquina

6.4 En un procesador con instrucciones de cero direcciones (procesador con pila), ¿qué secuencia de
instrucciones calcula la expresión 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

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

6.5 El formato de instrucción de un procesador de una dirección tiene 6 bits para el código de operación y 10
para la dirección del operando. Suponiendo que una instrucción de bifurcación, con direccionamiento relativo al
contador de programa, almacenada en la posición 530 (en decimal), origina un salto a la posición 620 (en
decimal). Si el código de operación de la instrucción de salto es 110011, ¿cuál es la codificación en binario de
dicha instrucción?

6.6 Considérese 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 expresión calcula?

6.7 Empleando un procesador de una dirección (procesador con acumulador) con un registro R1, indicar qué
operación calcula la secuencia de instrucciones: Load A; Add B; Add C; Mult D, Add A, Store R1, Mult R1,
Div A, Store C.

6.8 En un procesador con instrucciones de cero direcciones, indicar cuantos accesos a memoria principal se
necesitan para completar la secuencia Y = Y(X+Z). Para el cálculo de accesos a memoria se supondrá que el
ancho de palabra es suficiente para que cada instrucción ocupe una única palabra de memoria. También se
supondrá que la pila es cableada.

6.9 Empleando un procesador de una dirección (procesador con acumulador) con un registro R1, indicar qué
operación calcula la secuencia de instrucciones: Load A; Add B; Mult D, Add A, Store R1, Mult R1, Mult R1;
Mult A; Div B; Add A; Store C.

6.10. Cierto procesador tiene 32 registros, utiliza operandos inmediatos de 16 bits y tiene 142 instrucciones en
su repertorio de instrucciones. En un determinado programa el 20% de las instrucciones tienen un registro de
entrada y un registro de salida, el 30% tienen dos registros de entrada y uno de salida, el 25% tiene un registro
de entrada, un registro de salida y un operando inmediato y el 25% restante tiene un operando inmediato y un
registro de salida
a) ¿Cuantos bits se necesitan para cada uno de los cuatro tipos de instrucciones? Supóngase que se impone
que todas las instrucciones tengan una longitud múltiplo de 8 bits.
b) ¿Cuánta memoria menos ocupa el programa cuando se utiliza una codificación del repertorio de
instrucciones de longitud variable que cuando se utiliza una codificación de longitud fija?
Nota: Un repertorio de instrucciones es de longitud fija cuando todas las instrucciones tienen la misma longitud
y es de longitud variable si la longitud de las instrucciones no es igual para todas las instrucciones del repertorio.

6.11 En un procesador con instrucciones de cero direcciones, determinar cuantos accesos a memoria se necesitan
para completar la secuencia Y = (X+Y)+Z.

6.12 Empleando un procesador de una dirección (procesador con acumulador) con un banco de registro Ri,
indicar qué operación calcula la secuencia de instrucciones: Load X; Add Y; Add Z; Mult X, Store R1, Mult R1,
Div X, Store X.

6.13 Determinar el número mínimo de palabras que podría tener una instrucción que especifica dos direcciones
en un computador cuya memoria es de 16M palabras. Las palabras de memoria son de 8 bits. Los operandos
pueden direccionar todo el mapa de memoria. El código de operación es de 8 bits y emplea para ambos
operandos un direccionamiento directo o absoluto.

6.14 En una máquina con 16 registros y un registro de instrucción (RI) de 16 bits ¿cuál sería el número máximo
de instrucciones que podríamos tener si todas las instrucciones tienen un tamaño de una sola palabra y un único
formato “cod_op r1, r2”, donde r1 y r2 son dos registros y cod_op el código de operación de la instrucción?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

6.15 El formato de instrucción de un procesador de una dirección tiene 6 bits para el código de operación y 10
para la dirección del operando. Si la codificación en binario de una instrucción de bifurcación, con
direccionamiento relativo al contador de programa, es 1100110001011000, y está originando un salto a la
posición 600 (en decimal) ¿cuál es el contenido del contador de programas (en decimal) antes de la ejecución de
dicha instrucción?

6.16 Cierto procesador tiene 32 registros, utiliza operandos inmediatos de 16 bits y tiene 142 instrucciones en su
repertorio de instrucciones. Un determinado programa emplea instrucciones de dos tipos: el primer tipo utiliza
un registro de entrada y un registro de salida y el segundo tipo un registro de salida y un operando inmediato.
Suponiendo que se impone que todas las instrucciones tengan una longitud múltiplo de 8 determinar si las
siguientes afirmaciones son verdaderas o falsas:
I. El número de bits que se necesitan para el primer tipo de instrucciones es de 24 bits.
II. El número de bits que se necesitan para el segundo tipo de instrucciones es de 32 bits.

6.17 Un computador tiene las siguientes características:


• Una memoria M.
• Un acumulador A.
• Un registro de estado de un solo bit: el bit N.
• Tres instrucciones de longitud fija y direccionamiento directo:
STA D : M[D] ← <A>
SUB D : A ← <A> - M[D]
JNB D: IF N=1 THEN CP ← D ELSE CP ← <CP> + 1

Codificar tres programas que realicen las siguientes funciones:


a) (1.25 pto) Carga el acumulador con el contenido de la posición de memoria X.
b) (1.25 pto) Suma el contenido de la posición de memoria X al contenido del acumulador.
c) (1.5 pto) Implementación de un salto incondicional a la posición Y.

6.18 Empleando un procesador de una dirección (procesador con acumulador) con un registro R1, indicar qué
operación calcula la secuencia de instrucciones: Load X; Add Y; Add Z; Mult X, Store R1, Mult R1, Mult Z,
Div Y, Store X.

6.19 Considérese un computador con un microprocesador cuyo juego de instrucciones permite 60 códigos de
operación diferentes. Determinar si las siguientes afirmaciones son verdaderas o falsas:
I. Con un formato de instrucción de 6 bits para el código de operación y 12 bits para el campo de dirección
es posible direccionar 16384 posiciones de memoria directamente.
II. Si la palabra de memoria es de 32 bits se podrán direccionar 232 posiciones de memoria utilizando
direccionamiento indirecto.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 6: Diseño del procesador. Solución problemas

CONTENIDO
SOLUCION PROBLEMA 6.1 ..................................................................................................................... 3
SOLUCION PROBLEMA 6.2 ..................................................................................................................... 4
SOLUCION PROBLEMA 6.3 ..................................................................................................................... 6
SOLUCION PROBLEMA 6.4 ..................................................................................................................... 6
SOLUCION PROBLEMA 6.5 ..................................................................................................................... 8
SOLUCION PROBLEMA 6.6 ..................................................................................................................... 9
SOLUCION PROBLEMA 6.7 ..................................................................................................................... 9
SOLUCION PROBLEMA 6.8 ................................................................................................................... 10
SOLUCION PROBLEMA 6.9 ................................................................................................................... 11
SOLUCION PROBLEMA 6.10 ................................................................................................................. 11
SOLUCION PROBLEMA 6.11 ................................................................................................................. 14
SOLUCION PROBLEMA 6.12 ................................................................................................................. 15
SOLUCION PROBLEMA 6.13 ................................................................................................................. 15
SOLUCION PROBLEMA 6.14 ................................................................................................................. 16
SOLUCION PROBLEMA 6.15 ................................................................................................................. 16
SOLUCION PROBLEMA 6.16 ................................................................................................................. 17
SOLUCION PROBLEMA 6.17 ................................................................................................................. 18
SOLUCION PROBLEMA 6.18 ................................................................................................................. 20
SOLUCION PROBLEMA 6.19 ................................................................................................................. 20

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 6: Diseño del procesador. Solución 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 señales de
control activan una función específica de la UAL, su salida pasa a ser el resultado de la operación
correspondiente con sus entradas. Por este motivo, la salida de la UAL no puede conectarse directamente
al bus, ya que esta salida se realimentaría a la entrada. En su lugar, el registro R2 permite el
almacenamiento temporal de la salida.
Se utiliza en este problema la siguiente notación:
AC acumulador
RD registro de dirección de memoria que especifica la próxima dirección 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 instrucción, en el se almacena la instrucción que se va ejecutar .
RI(datos) campo de datos de la instrucción almacenada en el RI.
RI(dirección) campo de dirección de la instrucción 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
instrucción 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 instrucción almacenada en RI. A
continuación 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 dirección de la
instrucción almacenada en RI se encuentra la dirección de memoria donde hay que ir a buscar el
operando. Las microoperaciones a realizar son:
RD ← (RI(dirección))
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
dirección de la instrucción almacenada en RI. A continuación se descarga en RM el contenido de la
posición de memoria especificada en RD. Posteriormente se almacena en R1 el contenido de RM. A
continuación se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC
el contenido de R2.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 6: Diseño del procesador. Solución problemas

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


instrucción almacenada en RI se encuentra la dirección de memoria donde hay que ir a buscar la
dirección de memoria donde se encuentra el operando. Las microoperaciones a realizar son:
RD ← (RI(dirección))
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
dirección de la instrucción almacenada en RI. A continuación se descarga en RM el contenido de la
posición de memoria especificada en RD, que contiene la dirección de memoria donde hay que buscar el
operando. A continuación se carga en RD la dirección 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
continuación se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC
el contenido de R2.

SOLUCION PROBLEMA 6.2

Se utiliza en este problema la siguiente notación:


AC acumulador
RD registro de dirección de memoria que especifica la próxima dirección 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 instrucción, en el se almacena la instrucción que se va ejecutar .
RI(datos) campo de datos de la instrucción almacenada en el RI.
RI(dirección) campo de dirección de la instrucción almacenada en el RI.
(XX) Contenido del registro XX.

a) Cargar acumulador con el contenido de una dirección de memoria. En la siguiente tabla se indican las
microoperaciones necesarias, así como las señales de control que hay que activar para la realización de
las mismas.

Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
AC←(RM) c9

b) Almacenar el contenido del acumulador en una dirección de memoria. En la siguiente tabla se indican
las microoperaciones necesarias, así como las señales de control que hay que activar para la realización
de las mismas.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 6: Diseño del procesador. Solución problemas

Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←(AC) c10
memoria←(RM) c1

c) Sumar al acumulador un operando con direccionamiento inmediato. En la siguiente tabla se indican las
microoperaciones necesarias, así como las señales de control que hay que activar para la realización de
las mismas.

Microoperaciones Señales de
Control
RM←(RI(dato)) c15
Entrada 1←(RM) c8
AC←(AC)+ Entrada 1 c11

d) Sumar al acumulador un operando con direccionamiento directo. En la siguiente tabla se indican las
microoperaciones necesarias, así como las señales de control que hay que activar para la realización de
las mismas.
Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
Entrada 1←(RM) c8
AC←(AC)+ Entrada 1 c11

e) Sumar al acumulador un operando con direccionamiento indirecto. En la siguiente tabla se indican las
microoperaciones necesarias, así como las señales de control que hay que activar para la realización de
las mismas.
Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
RD←(RM) c2
RM←memoria c0
Entrada 1←(RM) c8
AC←(AC)+ Entrada 1 c11

f) AND con el acumulador y un operando en modo directo. En la siguiente tabla se indican las
microoperaciones necesarias, así como las señales de control que hay que activar para la realización de
las mismas.
Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
Entrada 1←(RM) c8
AC←(AC) AND Entrada 1 c12

g) Bifurcar, en modo de direccionamiento directo. En la siguiente tabla se indican las microoperaciones


necesarias, así como las señales de control que hay que activar para la realización de las mismas.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 6: Diseño del procesador. Solución problemas

Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
CP←(RM) c4

h) Bifurcar si acumulador=0, en modo de direccionamiento directo. En la siguiente tabla se indican las


microoperaciones necesarias, así como las señales de control que hay que activar para la realización de
las mismas.

Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
Si s0=1 CP←(RM) c4

SOLUCION PROBLEMA 6.3


De acuerdo con lo explicado en el libro de Teoría
Afirmación I : Es Verdadera

Afirmación II : Es Falsa ya que cada fase del ciclo de instrucción 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 expresión X=Y2·(X+Z)

El funcionamiento de un procesador con cero instrucciones se explica en la sección 6.1.4 del libro de
teoría. 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 tendría la pila tras ejecutar cada instrucción. Según se
sitúa un dato más a la izquierda en la pila, significa que lleva más tiempo almacenado, es decir, los datos
que entran en la pila lo hacen por su derecha. En consecuencia el elemento almacenado más a la derecha
en la pila constituye la cima de la pila

La expresión que se pide calcular también se puede expresar equivalentemente de la siguientes formas :

X=(X+Z)·Y·Y=Y·Y·(X+Z)
Opción A) :
Instrucciones Contenido de la pila
Push[X]; Y
Push[Z]; Y Z
Add ; Y+Z
Push[Y]; Y+Z Y
Push[Y]; Y+Z Y Y
Mult; Y+Z YxY
Mult; (Y+Z)xYxY
Pop[X];
Luego esta secuencia de instrucciones calcula la expresión pedida.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 6: Diseño del procesador. Solución problemas

Opción B) :

Instrucciones Contenido de la pila


Push[Y]; Y
Push[Y]; Y Y
Push[X]; Y Y X
Push[Z]; Y Y X Z
Add; Y Y X+Z
Mult; Y Yx(X+Z)
Mult; YxYx(X+Z)
Pop[X];

Luego esta secuencia de instrucciones calcula la expresión pedida.

Opción C) :

Instrucciones Contenido de la pila


Push[Y]; Y
Push[Y]; Y Y
Mult; YxY
Push[X]; YxY X
Push[Z]; YxY X Z
Add; YxY X+Z
Mult; (YxY)x(X+Z)
Pop[X];

Luego esta secuencia de instrucciones calcula la expresión pedida.

Luego la respuesta correcta es la D.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.5


Procesador de una dirección.
6 bits para el código de operación.
10 bits para la dirección de un operando.
Instrucción de bifurcación, con direccionamiento relativo al contador del programa,
almacenada en la dirección DIR10=530 origina un salto a la posición DIR 10=620.
El código de operación de una cierta instrucción es 110011
Codificación en binario de la instrucción?

De acuerdo con el enunciado se tiene el siguiente formato de instrucción:

6 bits 10 bits

Código
DIR[Operando]
Operación :

Una instrucción de bifurcación con direccionamiento relativo al contador de programa CP, se puede
expresar de la siguiente forma:

6 bits 10 bits

Código
Desplazamiento
Operación

Donde la dirección 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 código de operación de la instrucción 110011 y acabamos de calcular el


desplazamiento, que expresado sobre un tamaño de 10 bits toma la forma: 0001011010. Luego la
instrucción pedida es:

110011 0001011010

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 6: Diseño del procesador. Solución 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 sección 6.1.4 del libro de
teoría. Un problema relacionado con éste es el 6.4 del libro de problemas.

Se representa en una tabla las instrucciones y el contenido que tendría la pila tras ejecutar cada
instrucción. Según se sitúa un dato más a la izquierda en la pila, significa que lleva más tiempo
almacenado, es decir, los datos que entran en la pila lo hacen por su derecha. En consecuencia el
elemento almacenado más a la derecha en la pila constituye la cima de la pila

Instrucciones Contenido de la pila


Push M[C]; C
Push M[D]; C D
Add; C+D
Push M[C]; C+D C
Push M[D]; C+D C D
Add; C+D C+D
Mult; (C+D)·(C+D)
Pop M[A];

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

SOLUCION PROBLEMA 6.7


Procesador de una dirección (procesador con acumulador) con un registro R1
Operaciones a realizar: Load A; Add B; Add C; Mult D, Add A, Store R1, Mult R1, Div A,
Store C

En la siguiente tabla se muestran las instrucciones a ejecutar, su significado, el contenido del acumulador
y el contenido del registro. Se va a utilizar la siguiente notación: Ac representa al acumulador, M[X]
representa a la posición de memoria X y R1 representa al registro.

Instrucción Significado Acumulador (Ac) Registro (R1)


1 Load A Ac ← M[A] A --
2 Add B Ac ← Ac +`M[B] A+B --
3 Add C Ac ← Ac +`M[C] A+B+C --
4 Mult D Ac ← Ac x`M[D] (A+B+C)·D --
5 Add A Ac ← Ac +`M[A] ((A+B+C)·D)+A --
6 Store R1 R1 ← Ac ((A+B+C)·D)+A [(A+B+C)·D]+A
7 Mult R1 Ac ← Ac x R1 (((A+B+C)·D)+A)2 [(A+B+C)·D]+A
8 Div A Ac ← Ac / M[A] (((A+B+C)·D)+A)2/A [(A+B+C)·D]+A
9 Store C M[C]←Ac (((A+B+C)·D)+A)2/A [(A+B+C)·D]+A

Al finalizar la operación 9 la posición de memoria C tendrá almacenado el valor (((A+B+C)·D)+A)2/A.


Luego la operación que calcula esta secuencia de 9 operaciones es:

C=(((A+B+C)·D)+A)2/A

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.8


Procesador con instrucciones de cero direcciones
Cada instrucción ocupa una palabra de memoria.
La pila es cableada.
Operación a realizar Y=Y·(X+Z)

De acuerdo con el funcionamiento de este tipo de procesadores una posible secuencia de instrucciones a
ejecutar para implementar la operación Y=Y·(X+Z) sería:
1) Push M[Z];
2) Push M[X];
3) Add;
4) Push M[Y];
5) Mult;
6) Pop M[Y]

El número de accesos a memoria NAM para ejecutar estas seis instrucciones será la suma de dos
componentes:
NAM=NFB+NFE

donde NFE son los accesos a memoria durante la fase de búsqueda de estas instrucciones y NFE son los
accesos a memoria durante la fase de ejecución.

En este caso NFB= 6 ya que hay que 6 instrucciones en este programa. Se supone que cada instrucción
ocupa una palabra (como así lo indica el enunciado) y que en un acceso a memoria se lee o se escribe una
palabra.

Por otra parte, el enunciado indica que la pila es cableada lo que significa que no se implementa en la
memoria. En consecuencia los únicos tipos de instrucciones que requieren acceder a memoria durante su
ejecución son: Push y Pop. Las instrucciones tipo Push requieren de un acceso a memoria para leer el
operando de memoria que se carga en la pila. Lo mismo sucede con las instrucciones de tipo Pop pero en
este caso para escribir en memoria el valor almacenado en la cumbre de la pila. En conclusión puesto que
el programa consta de 3 instrucciones tipo Push y una instrucción tipo Pop, NFE=4.

Luego, el número total de accesos a memoria es NAM=6+4=10 accesos.

Se puede comprobar que se obtendría el mismo resultado si se considerara la secuencia de instrucciones

1) Push M[Y];
2) Push M[X];
3) Push M[Z];
4) Add;
5) Mult;
6) Pop M[Y]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.9


Procesador de una dirección (procesador con acumulador) con un registro R1
Operaciones a realizar: Load A; Add B; Mult D, Add A, Store R1, Mult R1, Mult R1; Mult
A; Div B; Add A; Store C

En la siguiente tabla se muestran las instrucciones a ejecutar, su significado, el contenido del acumulador
y el contenido del registro. Se va a utilizar la siguiente notación: Ac representa al acumulador, M[X]
representa a la posición de memoria X y R1 representa al registro.

Instrucción Significado Acumulador (Ac) Registro (R1)


1 Load A Ac ← M[A] A --
2 Add B Ac ← Ac +`M[B] A+B --
3 Mult D Ac ← Ac x`M[D] (A+B)·D --
4 Add A Ac ← Ac +`M[A] (A+B)·D+A --
5 Store R1 R1 ← Ac (A+B)·D+A [(A+B)·D]+A
6 Mult R1 Ac ← Ac x`R1 ((A+B)·D+A)2 [(A+B)·D]+A
7 Mult R1 Ac ← Ac x R1 ((A+B)·D+A)3 [(A+B)·D]+A
8 Mult A Ac ← Ac x M[A] ((A+B)·D+A)3·A [(A+B)·D]+A
9 Div B Ac ← Ac / M[B] (((A+B)·D+A)3·A)/B [(A+B)·D]+A
10 Add A Ac ← Ac +`M[A] ((((A+B)·D+A)3·A)/B)+A [(A+B)·D]+A
11 Store C M[C]←Ac ((((A+B)·D+A)3·A)/B)+A [(A+B)·D]+A

Al finalizar la operación 11 la posición de memoria C tendrá almacenado el valor


[(((A+B)·D+A)3·A)/B]+A. Luego la operación que calcula esta secuencia de 11 operaciones es:

C=((((A+B)·D+A)3·A)/B)+A

SOLUCION PROBLEMA 6.10


Procesador con 32 registros.
Operando inmediato de 16 bits.
142 instrucciones en su repertorio.
En un determinado programa:
• el 20% de las instrucciones tienen un registro de entrada y un registro de salida.
• el 30% tienen dos registros de entrada y uno de salida.
• el 25% tiene un registro de entrada, un registro de salida y un operando inmediato
• el 25% restante tiene un operando inmediato y un registro de salida

a) Puesto que se tiene un repertorio de 142 instrucciones, como 142<=2n => n=8, se necesitan 8 bits para
codificarlas dentro del código de operación de la instrucción [COD. OP]

Por otra parte el procesador dispone de 32 registros, como 32<=2n => n= 5, se necesitan 5 bits para
codificar el identificador del registro [REG].

Asimismo, del enunciado se sabe que el campo operando inmediato [OP] tiene un tamaño de 16 bits

Con estos datos solamente se necesita sumar el tamaño de cada campo que compone un determinado tipo
de instrucción y redondearlo a un múltiplo de 8:

- Tipo 1: Instrucciones con un registro de entrada y un registro de salida:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 6: Diseño del procesador. Solución problemas

8 bits 5 bits 5 bits

COD. OP. REG REG

Se necesitan L1= 8+5+5=18≤ 24 bits

- Tipo 2: Instrucciones con dos registros de entrada y uno de salida:

8 bits 5 bits 5 bits 5 bits

COD. OP. REG REG REG

Se necesitan L2= 8+5+5+5=23 ≤ 24 bits

- Tipo 3: Instrucciones con un registro de entrada, un registro de salida y un operando inmediato:

8 bits 5 bits 5 bits 16 bits

COD. OP. REG REG OP

Se necesitan L3= 8+5+5+16=34 ≤ 40 bits

- Tipo 4: Instrucciones con un operando inmediato y un registro de salida:

8 bits 16 bits 5 bits

COD. OP. OP REG

Se necesitan L4= 8+16+5=19 ≤ 32 bits

b) En primer lugar se va a calcular la memoria que ocupa el programa si se utilizase un repertorio de


instrucciones de longitud fija (LF). La longitud que se debe considerar para dicho repertorio se
corresponde con la mayor de las longitudes de los diferentes tipos de instrucciones. En este caso las
instrucciones de mayor longitud son las del tipo 3, con 40 bits. Luego la memoria que ocupa el programa
considerando que todas sus instrucciones ocupan 40 bits es:

C PLF = 40· N T bits

donde NT es el número de instrucciones de que consta el programa. Es obvio que en promedio el número
de bits que ocupa una instrucción de un repertorio de LF de 40 bits es de 40 bits/instrucción.
Formalmente se calcularía de la siguiente forma:

C PLF
= 40 (bits/instrucción)
NT

Se va a considerar ahora que el repertorio de instrucciones es de longitud variable (LV), en dicho caso la
memoria que ocupa el programa es:

C PLV = 24· N1 + 24·N 2 + 40·N 3 + 32· N 4 bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 6: Diseño del procesador. Solución problemas

donde Ni i=1,2,3,4 es el número de instrucciones del tipo i que ocupa el programa. En promedio el
número de bits que ocupa una instrucción de un repertorio de LV es:

C PLV N N N N
= 24· 1 + 24· 2 + 40· 3 + 32· 4 = 24·0.2 + 24·0.3 + 40·0.25 + 32·0.25 = 30 (bits/instrucción)
NT NT NT NT NT

Luego en promedio usando un repertorio de LV se ahorran con respecto al repertorio de LF

C PLF C PLV
− = 40 − 30 = 10 (bits/instrucción)
NT NT

O en porcentaje, el ahorro de memoria sería del

C PLF C PLV

NT NT 10
LF
= ·100 = 25%
CP 40
NT

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.11


Procesador con instrucciones de cero direcciones
Operación a realizar Y=(X+Y)+Z

De acuerdo con el funcionamiento de este tipo de procesadores una posible secuencia de instrucciones a
ejecutar para implementar la operación Y=(X+Y)+Z sería:
1) Push M[X];
2) Push M[Y];
3) Add;
4) Push M[Z];
5) Add;
6) Pop M[Y]

El número de accesos a memoria NAM para ejecutar estas seis instrucciones será la suma de dos
componentes:
NAM=NFB+NFE

donde NFE son los accesos a memoria durante la fase de búsqueda de estas instrucciones y NFE son los
accesos a memoria durante la fase de ejecución.

En este caso NFB= 6 ya que hay que 6 instrucciones en este programa. Se supone que cada instrucción
ocupa una palabra y que en un acceso a memoria se lee o se escribe una palabra.

Por otra parte, se va suponer que la pila es cableada lo que significa que no se implementa en la memoria.
En consecuencia los únicos tipos de instrucciones que requieren acceder a memoria durante su ejecución
son: Push y Pop. Las instrucciones tipo Push requieren de un acceso a memoria para leer el operando de
memoria que se carga en la pila. Lo mismo sucede con las instrucciones de tipo Pop pero en este caso
para escribir en memoria el valor almacenado en la cumbre de la pila. En conclusión puesto que el
programa consta de 3 instrucciones tipo Push y una instrucción tipo Pop, NFE=4.

Luego, el número total de accesos a memoria es NAM=6+4=10 accesos.

Se puede comprobar que se obtendría el mismo resultado si se considerara la secuencia de instrucciones

1) Push M[X];
2) Push M[Y];
3) Push M[Z];
4) Add;
5) Add;
6) Pop M[Y]

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.12


Procesador de una dirección (procesador con acumulador) con un registro R1
Operaciones a realizar: Load X; Add Y; Add Z; Mult X, Store R1, Mult R1,Div X, Store X

En la siguiente tabla se muestran las instrucciones a ejecutar, su significado, el contenido del acumulador
y el contenido del registro. Se va a utilizar la siguiente notación: Ac representa al acumulador, M[X]
representa a la posición de memoria X y R1 representa al registro.

Instrucción Significado Acumulador (Ac) Registro (R1)


1 Load X Ac ← M[X] X
2 Add Y Ac ← Ac + M[Y] X+Y
3 Add Z Ac ← Ac + M[Z] X+Y+Z
4 Mult X Ac ← Ac x M[X] (X+Y+Z)·X
5 Store R1 R1 ← Ac (X+Y+Z)·X (X+Y+Z)·X
6 Mult R1 Ac ← Ac x R1 ((X+Y+Z)·X)2 (X+Y+Z)·X
7 Div X Ac ← Ac / M[X] ((X+Y+Z)·X)2/X (X+Y+Z)·X
8 Store C M[C] ← Ac ((X+Y+Z)·X)2/X (X+Y+Z)·X

Al finalizar la operación 8 la posición de memoria C tendrá almacenado el valor (((X+Y)+Z)·X)2/X.


Luego la operación que calcula esta secuencia de 8 operaciones es:

C=((X+Y+Z)·X)2/X=((X+Y+Z)2·X2)/X=(X+Y+Z)2·X

SOLUCION PROBLEMA 6.13


Instrucción que especifica dos direcciones.
Memoria principal de 16 M palabras.
Longitud de palabra de L=8 bits.
Los operandos pueden direccionar todo el mapa de memoria.
Código de operación de 8 bits.
Ambos operandos con direccionamiento directo o absoluto

La capacidad de la memoria principal es de 16 Mpalabras=224 palabras, luego una dirección de memoria


(DirMp) tiene un tamaño de 24 bits.

La instrucción que se propone en el enunciado consta de 3 campos:

[Código Operación| DirMp | DirMp]

cuyos tamaños son 8 bits, 24 bits y 24 bits, respectivamente. Luego el tamaño de esta instrucción es

LI= 8+24+24=56 bits.

Finalmente el número de palabras NP que ocupará está instrucción se obtiene dividiendo el tamaño de la
instrucción LI entre el tamaño de una palabra LP:

LI 56
NP = = = 7 palabras
LP 8

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.14


Máquina con 16 registros.
Registro de instrucción de 16 bits.
Todas las instrucciones tienen un tamaño de una única palabra.
Un único formato de intrucción: [Cod_Operacion | r1 | r2 ] siendo r1 y r2 dos registros

El registro de instrucción RI tiene un tamaño de 16 bits, eso implica que las instrucciones tienen un
tamaño de 16 bits. Por otra parte, la máquina posee 16 registros luego se necesitan 4 bits para direccionar
a un registro determinado.

Por lo tanto, si una instrucción tiene un tamaño de 16 bits y cada uno de los campos r1 y r2 ocupa 4 bits,
entonces el campo Cod_Operación tendrá un tamaño de 16-(4+4)=8 bits. Con lo que el número máximo
de instrucciones que puede tener el repertorio de la máquina sería de 2 8=256 instrucciones.

SOLUCION PROBLEMA 6.15


Procesador de una dirección.
6 bits para el código de operación.
10 bits para la dirección de un operando.
La instrucción en binario 1100110001011000 es una instrucción de bifurcación, con
direccionamiento relativo al contador del programa,
Origina un salto a la posición DIR10=600.

De acuerdo con el enunciado se tiene el siguiente formato de instrucción:

6 bits 10 bits

Código
DIR[Operando]
Operación :

Una instrucción de bifurcación con direccionamiento relativo al contador de programa CP, se puede
expresar de la siguiente forma:

6 bits 10 bits

Código
Desplazamiento
Operación

Donde la dirección del operando se obtiene mediante la siguiente expresión:

DIRfinal= CP + Desplazamiento

De acuerdo con el enunciado:

Desplazamiento= 00010110002= 26+24+23= 64+16+8 = 8810


DIRfinal=60010

Sustituyendo los datos del enunciado se tiene:

60010= CP10 + 8810

Luego despejando y operando se obtiene que:

Jose Manuel Díaz Tutor de ETC2 (Coslada) 16


TEMA 6: Diseño del procesador. Solución problemas

CP10 = 60010 - 8810 =51210

El contenido del contador del programa es 512.

SOLUCION PROBLEMA 6.16


Procesador con 32 registros.
Su repertorio de instrucciones tiene 142 instrucciones.
Operandos inmediatos de 16 bits
Un programa utiliza dos tipos de instrucciones:
Tipo I: [Cod_op | registro de entrada | registro de salida]
Tipo II: [Cod_op | registro de salida | operando inmediato]
Todas las instrucciones deben tener un tamaño múltiplo de 8

El procesador tiene un repertorio de 142 instrucciones, luego el código de operación de una instrucción
tendrá un tamaño de n bits donde n se obtiene de resolver la siguiente desigualdad

142 ≤ 2n → n=8 bits.

Por otro lado el procesador tiene 32 registros con lo que se necesitan m bits para direccionarlos donde m
se obtiene de resolver la siguiente desigualdad:

32 ≤ 2m → m=5 bits.

Luego el tamaño de las instrucciones de tipo I

[Cod_op | registro de entrada | registro de salida]

será: 8+5+5=18 bits

Mientras que el tamaño de las instrucciones de tipo II

[Cod_op | registro de salida | operando inmediato]

será: 8+5+16=29 bits

Faltaría adecuar los tamaños a la restricción de que el tamaño de las instrucciones deben ser múltiplos de
8. Así las instrucciones de tipo I ocuparan 24 bits y las de tipo II 32 bits. Este aumento se consigue por
ejemplo utilizando 8 bits en vez de 5 para direccionar los registros.

En consecuencia las afirmaciones I y II son verdaderas.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 17


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.17


• Computador con:
• Un acumulador A.
• Una memoria M.
• Un registro de estado de un solo bit: el bit N.
• Tres instrucciones de longitud fija y direccionamiento directo:
STA D : M[D] ← <A>
SUB D : A ← <A> - M[D]
JNB D: IF N=1 THEN CP ← D ELSE CP ← <CP> + 1

a) Se va suponer que el contenido inicial del acumulador A y de las posiciones de memoria M[X] y M[Y[
son a, x e y, respectivamente.La realización de la operación A ← M[X] se consigue con la secuencia de
instrucciones que se recopila en la siguiente tabla:

Instrucción Significado Contenido después de ejecutar la


instrucción
A M[X] M[Y]
1) STA Y M[Y]←<A> a x a
Copia a en M[Y]
2) SUB Y A ← <A> - M[Y] 0 x a
Consigue el valor 0 en A
3) SUB X A ← <A> - M[X] -x x a
Consigue el valor -x en A
4) STA Y M[Y]←<A> -x x -x
Copia -x en M[Y]
5) SUB Y A ← <A> - M[Y] 0 x -x
Consigue el valor 0 en A
6) SUB Y A ← <A> - M[Y] x x -x
Consigue el valor x en A

Jose Manuel Díaz Tutor de ETC2 (Coslada) 18


TEMA 6: Diseño del procesador. Solución problemas

b) Se va suponer que el contenido inicial del acumulador A y de las posiciones de memoria M[X] y M[Y[
son a, x e y, respectivamente.La realización de la operación A ← A + M[X] se consigue con la secuencia
de instrucciones que se recopila en la siguiente tabla:

Instrucción Significado Contenido después de ejecutar la


instrucción
A M[X] M[Y]
1) STA Y M[Y]←<A> a x a
Copia a en M[Y]
2) SUB Y A ← <A> - M[Y] 0 x a
Consigue el valor 0 en A
3) SUB Y A ← <A> - M[Y] -a x a
Consigue el valor -a en A
4) JNB Y A ← <A> - M[X] -a-x x a
Consigue el valor -a-x en A
5) STA Y M[Y]←<A> -(a+x) x -(a+x)
Copia -a-x en M[Y]
6) SUB Y A ← <A> - M[Y] 0 x -(a+x)
Consigue el valor 0 en A
7) SUB Y A ← <A> - M[Y] a+x x -(a+x)
Consigue el valor a+x en A

c) Se va suponer que el contenido inicial del acumulador A y de la posición de memoria M[X] son a y x, ,
respectivamente. Además se va suponer que el bit de estado N vale 1 si el contenido del acumulador A es
un número negativo. La realización de la operación de salto incondicional a la posición Y se consigue
con la secuencia de instrucciones que se recopila en la siguiente tabla:

Instrucción Significado Contenido después de ejecutar la


instrucción

A M[X] N CP
1) STA X M[Y]←<A> a a 0
Copia a en M[X]
2) SUB X A ← <A> - M[X] 0 a 0
Consigue el valor 0 en A
3) SUB X A ← <A> - M[X] -a a 1
Consigue un valor negativo (-a)
en A para forzar que N=1
4) JNB Y IF N=1 THEN CP ← Y -a a 1 Y
ELSE CP ← <CP> + 1
Almacena en CP la dirección Y

Jose Manuel Díaz Tutor de ETC2 (Coslada) 19


TEMA 6: Diseño del procesador. Solución problemas

SOLUCION PROBLEMA 6.18


Procesador de una dirección (procesador con acumulador) con un registro R1
Operaciones a realizar: Load X; Add Y; Add Z; Mult X, Store R1, Mult R1, Mult Z, Div Y,
Store X
En la siguiente tabla se muestran las instrucciones a ejecutar, su significado, el contenido del acumulador
y el contenido del registro. Se va a utilizar la siguiente notación: Ac representa al acumulador, M[X]
representa a la posición de memoria X y R1 representa al registro.

Instrucción Significado Acumulador (Ac) Registro (R1)


1 Load X Ac ← M[X] X
2 Add Y Ac ← Ac + M[Y] X+Y
3 Add Z Ac ← Ac + M[Z] X+Y+Z
4 Mult X Ac ← Ac x M[X] (X+Y+Z)·X
5 Store R1 R1 ← Ac (X+Y+Z)·X (X+Y+Z)·X
6 Mult R1 Ac ← Ac x R1 (X+Y+Z)2·X2
7 Mult Z Ac ← Ac x M[Z] (X+Y+Z)2·X2·Z
8 Div Y Ac ← Ac / M[Y] ((X+Y+Z)2·X2·Z)/Y
9 Store X M[X] ← Ac ((X+Y+Z)2·X2·Z)/Y

Al finalizar la operación 8 la posición de memoria X tendrá almacenado el valor ((X+Y+Z)2·X2·Z)/Y.


Luego la operación que calcula esta secuencia de 8 operaciones es:

X=((X+Y+Z)2·X2·Z)/Y

SOLUCION PROBLEMA 6.19


Microprocesador con un repertorio de instrucciones que permite 60 códigos de operación
diferentes

AFIRMACIÓN I:

Existen 60 códigos de operación diferentes, luego el campo código de operación de una instrucción
tendrá un tamaño de n bits donde n se obtiene de resolver la siguiente desigualdad

60 ≤ 2n → n=6 bits.

Luego la primera parte de la afirmación es cierta.

Si se utilizan 12 bits para el campo de dirección el número de posiciones de memoria que se pueden
direccionar directamente es de 212=4*1024=4096 posiciones, no de 16384 como indica la afirmación. En
conclusión la afirmación es FALSA.

AFIRMACIÓN II:

El direccionamiento indirecto consiste en que la instrucción contiene la dirección de la palabra de


memoria cuyo contenido hay que leer para obtener la dirección del operando direccionado. Es decir, el
acceso a un operando requiere de dos lecturas en memoria principal. En consecuencia si una palabra tiene
32 bits la dirección que se almacena dentro de la palabra para realizar el direccionamiento indirecto
puede tener un tamaño máximo de 32 bits, con lo que se pueden direccionar 232 posiciones de memoria.
En conclusión la afirmación es VERDADERA.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 20


Diseño del procesador
Solución c: Ejecución paralelo de varias microórdenes (ord)

Se basa en reordenar la secuencia de ords para realizar el mismo tiempo las que no tengan influencia unas sobre
otras.

EXAMENES
Preguntas de test:

2ª semana

6.- En una Unidad de Control microprogramada con formato de microinstrucciones vertical, un subcampo que deba especificar 16
señales de control habrá de tener una anchura mínima de:
A) 4 bits. Mucho cuidado porque en el caso del formato vertical,
B) 5 bits. codificar las señales siempre hay que tener en cuenta
C) 16 bits. una codificación de más, la correspondiente a que
todas las señales de control estén desactivadas.
El caso del formato vertical, esto no se considera
porque cuando se precisa que no esté activada
ninguna de las señales, basta con ponerlas todas a 0.

1ª semana /Septiembre 2006

1.- Un computador usa el formato vertical de codificación de instrucciones para parte de las señales de control y el formato
horizontal para k señales de control. El formato vertical posee n campos codificados de m bits cada uno.
¿Cuál es el máximo número de señales de control que pueden usarse en este computador?
m m m
A) k + n2 . B) k + n . C) k + n(2 -1). D) Ninguna de las anteriores.

1ª semana
6.- Un computador microprogramado tiene un total de 132 señales 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 tamaño de los subcampos codificados sería de 4 y 5 bits, respectivamente.
II. Al existir señales mutuamente excluyentes no puede utilizarse el formato vertical de microinstrucciones.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

2.- Una Unidad de Control microprogramada con direccionamiento explícito con dos direcciones por microinstrucción, tiene una
memoria de control con 35 bits de longitud de palabra. Si las microinstrucciones emplean 15 bits para los campos de control, el
número máximo de palabras de la memoria de control de esta Unidad de Control microprogramada es de:
10 20 17
A) 2 palabras B) 2 palabras C) 2 palabras D) Ninguna de las anteriores

Página 18
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II

TEMA 7: Microprogramación
SOLUCION
PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2007-2008
Jose Manuel Díaz Martínez
Tutor de la asignatura ETC-II
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

PROBLEMAS
TEMA 7: Microprogramación

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. ¿Cuál es el número máximo de
señales de control que puede tener este computador?

7.2 Un computador digital tiene 114 señales 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 tamaño del campo codificado sería de 3 bits.
2) Al existir señales de control mutuamente excluyentes nunca se puede utilizar el formato de
microinstrucción horizontal.

7.3 Un computador utiliza microinstrucciones de formato horizontal con direccionamiento explícito. Las
microinstrucciones deben gobernar 135 señales de control y codificar un repertorio de 50 instrucciones máquina,
para lo cual la Unidad de Control Microprogramada dispone una memoria de control de 2048 palabras. ¿Cuántos
bits tiene el campo de dirección de cada microinstrucción?

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 máximo de 2j señales de control.
II. Cada señal de control tiene un subcampo independiente de un bit que indica el correspondiente
valor de la señal 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 próxima microinstrucción de la
memoria de control.
II. La ejecución de la microinstrucción consiste en generar las señales de control necesarias.

7.6 Indicar si las siguientes afirmaciones son verdaderas o falsas. Utilizando microinstrucciones con formato
horizontal:
I. No se puede ejecutar simultáneamente cualquier subconjunto de señales de control.
II. Cada señal de control tiene un subcampo independiente de un bit que indica el correspondiente
valor de la señal de control.

7.7 ¿Las siguientes afirmaciones son ciertas?


I. El formato horizontal de microinstrucciones requiere de memorias de control más grandes.
II. El formato vertical de microinstrucciones tiene las señales de control ya decodificadas.

7.8 Indique la afirmación 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 lógica cableada es la imposibilidad de gestionar
saltos a subrutinas al carecer del registro contador de programa.
C) Si se quiere minimizar el tamaño de la memoria de control de una unidad de control
microprogramada debe utilizarse formato vertical.
D) Todas las respuestas anteriores son ciertas.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

7.9 Un computador microprogramado tiene un total de 132 señales 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 tamaño de los subcampos codificados sería de 4 y 5 bits,
respectivamente.
II. Al existir señales 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 microinstrucción está dividida en dos campos. Un campo de control de 13 bits que indica las
microoperaciones que se realizan y un campo de selección de dirección que especifica un tipo de bifurcación
condicional, que es función de las señales de condición que recibe como entrada la Unidad de Control. Son
posibles 8 señales de condición.
a) ¿Cuántos bits se necesitan en el campo de selección de dirección?
b) ¿Cuántos bits tiene el campo de dirección?
c) ¿Cuál es el tamaño de la memoria de control?
Registro de Instrucción (RI)

Lógica de
transformación

Señales de Lógica de
condición bifurcación Multiplexor
Selección de
la dirección +1

Selección de una RDC


señal de condición
para la bifurcación

Memoria
de
Control

RMC Control Dirección

Señales de Control

Figura 7.10: Unidad de Control microprogramada con una dirección por microinstrucción

7.11 Con las mismas especificaciones del problema anterior ¿cómo se puede realizar una ruptura incondicional
de secuencia?. ¿Cómo se puede evitar la bifurcación?, es decir, describir una microinstrucción que no
especifique ningún tipo de bifurcación (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 código de operación de las instrucciones tiene 5 bits y la memoria de
control una capacidad de 1024 palabras. Sugerir una lógica de transformación de RI en RDC.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

7.13 Una UCP tiene 32 registros internos de 16 bits, una UAL con 16 funciones lógicas y 16 funciones
aritméticas y un registro de desplazamiento con 8 operaciones posibles. La UAL recibe una entrada de un bit
que indica si la operación es aritmética (0) o lógica (1), y cuatro bits adicionales que codifican la operación a
realizar, una de las 16 posibles. La operación 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, según se muestra en la
Figura 7.13. La UCP es capaz de direccionar un máximo de 64 Kb de memoria principal, tiene 8 señales de
condición diferentes (para las bifurcaciones condicionales), y dos modos de direccionamiento (inmediato y
directo).
Diseñar un formato de microinstrucción 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 señales de control ¿Qué anchura mínima debe tener?

7.15 Una Unidad de Control microprogramada con direccionamiento explícito con dos direcciones por
microinstrucción, tiene una memoria de control con 35 bits de longitud de palabra. Si las microinstrucciones
emplean 15 bits para los campos de control. ¿Cuál es el número máximo de palabras de la memoria de control de
esta Unidad de Control microprogramada?

7.16 Una Unidad de Control microprogramada con direccionamiento explícito con dos direcciones por
microinstrucción y microprogramación horizontal tiene una memoria de control con 1K palabras x 32
bits/palabra de capacidad. Indicar el número máximo de puntos de control en la ruta de datos asociada.

7.17 Una Unidad de Control microprogramada con direccionamiento implícito tiene una memoria de control con
24 bits de longitud de palabra. Si las microinstrucciones emplean 15 bits para los campos de control y se pueden
evaluar 8 condiciones en el caso de microinstrucciones de bifurcación, calcular el tamaño máximo de la
memoria de control en esta Unidad de Control microprogramada.

7.18 Un computador utiliza microinstrucciones de formato vertical. El formato tiene 15 subcampos codificados
de 2 bits, 5 subcampos codificados de 3 bits y 2 subcampos codificados de 5 bits. ¿Cuál es el número máximo de
señales de control que puede tener este computador?.

7.19 La Unidad de Control microprogramada de un computador tiene un tamaño de microinstrucción de 50 bits.


La parte de control del formato de una microinstrucción emplea 21 bits para seleccionar independientemente las
microoperaciones que se llevan a cabo. Esta unidad de control tiene un campo para indicar el tipo de bifurcación
a realizar (condicional, incondicional o no bifurcar) y un campo para seleccionar una de las 13 señales de
condición posibles. ¿Cuál es el tamaño máximo de la memoria de control?

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

7.20 Un computador tiene un formato de instrucciones de 20 bits, donde los 6 más significativos (I19,I18,..,I14)
son el código de operación y el resto (I13,I12,..,I0) hacen referencia a los operandos. La Unidad de Control
Microprogramada que implementa el repertorio de instrucciones del computador asigna 16 palabras
consecutivas de la memoria de control para el microprograma de cada una de estas instrucciones. A partir de una
instrucción máquina, indicar una salida posible de la lógica de transformación de RI en RDC para acceder
directamente al comienzo de cada microprograma.

7.21 La Unidad de Control microprogramada de un computador tiene un tamaño de microinstrucción de 42 bits.


La parte de control del formato de una microinstrucción emplea 20 bits para seleccionar independientemente las
microoperaciones que se llevan a cabo. Esta unidad de control tiene un campo para indicar el tipo de bifurcación
a realizar (condicional, incondicional o no bifurcar) y un campo para seleccionar una única señal de condición
de las 16 señales disponibles. ¿Cuál es el tamaño máximo de la memoria de control?

7.22 Un computador usa un formato de microinstrucción mixto, parte horizontal y parte vertical. La parte con
formato horizontal de codificación tiene una longitud de k bits y la parte con formato vertical de codificación
posee m campos codificados de n bits cada uno. ¿Cuál es el máximo número de señales de control que pueden
usarse en este computador?

7.23 Una unidad de control microprogramada con direccionamiento implícito tiene una memoria de control con
24 bits de longitud de palabra. Si las microinstrucciones emplean 15 bits para los campos de control y el tamaño
máximo de la memoria de control de esta Unidad de Control microprogramada es de 220 palabras, ¿cuántas
condiciones como máximo se pueden evaluar en el caso de microinstrucciones de bifurcación?

7.24 Se está diseñando un computador, y se quiere estudiar la posibilidad de dotarle de una unidad de control
microprogramada con un formato de microinstrucción horizontal, o bien con un formato de microinstrucción
vertical. El secuenciador de microprograma que se va a utilizar, proporciona una dirección de 12 bits.
Los respectivos formatos de microinstrucción son los que se muestran en las figuras 1 y 2. En el formato
horizontal, Ai (i=1,2,3), Bj (j=1,2,3), Ck (k=1,..,4), Dm (m=1,2,3) y En (n=1,…,8) son señales de control. En el
formato vertical campo 4 se decodifica como sel-B o sel-D a partir del campo 2, que es un campo de selección.

A1 A2 A3 B1 B2 B3 C1 C2 C3 C4 D1 D2 D3 E1 ... E8.

Figura 1: Formato de microinstrucción horizontal.

sel-A x Sel-C sel-B o sel D sel-E

campo 1 campo 2 campo 3 campo 4 campo 5

Figura 2: Formato de microinstrucción vertical.


A) Comparar el tamaño de la memoria de control para ambas alternativas.
B) Comparar el tiempo de activación de las señales de control para los dos tipos de memoria de control.
C) Comentar y razonar los resultados obtenidos en los apartados anteriores.

7.25 El tamaño máximo de la memoria de control de un computador es de 220 palabras. La parte de control del
formato de una microinstrucción (de la unidad de control microprogramada) de este computador emplea 8 bits
para seleccionar independientemente las microoperaciones que se llevan a cabo. Esta unidad de control tiene un
campo para indicar el tipo de bifurcación a realizar (condicional, incondicional o no bifurcar) y un campo para
seleccionar una única señal de condición de las 32 señales disponibles. ¿Cuál es el tamaño de las
microinstrucciones en bits?

7.26 Indique si las siguientes afirmaciones son verdaderas:


I. El formato horizontal de microinstrucciones permite que existan microinstrucciones de bifurcación
condicional.
II. El formato horizontal de microinstrucciones permite tener memorias de control más pequeñas que el
formato vertical.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010

7.27 Indique si las siguientes afirmaciones son verdaderas:


I. El formato horizontal de microinstrucciones permite tener las señales de control ya decodificadas, por lo
que su ejecución es más rápida que el formato vertical.
II. El formato horizontal de microinstrucciones permite tener varias señales de control de un mismo subcampo
activas a la vez.

7.28 Un computador utiliza microinstrucciones de formato vertical. Sabiendo que el número máximo de señales
de control que puede tener este computador es de 67 y que el formato de microinstrucción tiene 4 subcampos
codificados de 1 bit, 6 subcampos codificados de 2 bits y otros 3 subcampos codificados de n bits ¿cuál es este
número n de bits?

7.29 Un computador digital tiene 88 señales de control diferentes, siendo 5 de ellas mutuamente excluyentes.
Indique si las siguientes afirmaciones son verdaderas:
I. Si se utilizan microinstrucciones de formato vertical el tamaño del campo codificado sería de 3 bits
como mínimo.
II. Al existir señales de control mutuamente excluyentes se puede utilizar el formato de microinstrucción
horizontal.

7.30 El número máximo de palabras de la memoria de control de una unidad de control microprogramada con
direccionamiento explícito con dos direcciones por microinstrucción es 212 palabras. Si las microinstrucciones
emplean 13 bits para los campos de control, ¿cuál es la longitud de palabra, en bits, de la memoria de control?

7.31 Un computador microprogramado tiene un total de 132 señales 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 tamaño de los subcampos codificados serían para ambos grupos de señales
de 5 bits.
II. Al existir dos grupos de señales de control mutuamente excluyentes no puede utilizarse el formato de
microinstrucción vertical.

Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
TEMA 7: Microprogramación Solución 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 ................................................................................................................... 9
SOLUCION PROBLEMA 7.16 ................................................................................................................... 9
SOLUCION PROBLEMA 7.17 ................................................................................................................. 10
SOLUCION PROBLEMA 7.18 ................................................................................................................. 11
SOLUCION PROBLEMA 7.19 ................................................................................................................. 11
SOLUCION PROBLEMA 7.20 ................................................................................................................. 11
SOLUCION PROBLEMA 7.21 ................................................................................................................. 12
SOLUCION PROBLEMA 7.22 ................................................................................................................. 13
SOLUCION PROBLEMA 7.23 ................................................................................................................. 13
SOLUCION PROBLEMA 7.24 ................................................................................................................. 14
SOLUCION PROBLEMA 7.25 ................................................................................................................. 15

Jose Manuel Díaz Tutor de ETC2 (Coslada) 2


TEMA 7: Microprogramación Solución 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 sólo puede tener una de sus salidas activadas en un determinado instante de tiempo.
Eso implica que el computador puede tener activadas como máximo 13 señales de control o microordenes
simultáneamente.

Por otro lado si un subcampo tiene j bits, puede codificar un total de 2j-1 señales de control. Una
codificación se reserva para especificar el caso en que ninguna de las señales 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 señales de control
5 subcampos codificados de tres bits → 5·(23-1)=35 señales de control
3 subcampos codificados de tres bits → 3·(24-1)=45 señales de control

Lo que hace un total de 85 señales de control.

SOLUCION PROBLEMA 7.2


DATOS
• Computador digital con 114 señales de control diferentes.
• Siendo 6 de ellas mutuamente excluyentes

Afirmación I:
Hay que tener en cuenta que el enunciado dice que de las 114 señales de control diferentes, 6 son
mutuamente excluyentes. Eso implica que esas 6 señales deben ser codificadas dentro de un mismo
subcampo. Dicho subcampo debe tener como mínimo 3 bits, con lso que se tendrían 8 codificaciones: 6
codificaciones asociadas a cada una de las 6 señales de control, 1 codificación para indicar el caso en que
no se active ninguna de las señales de control codificadas en este subcampo y la codificación restante no
se utilizaría. Luego la afirmación I es verdadera.

Afirmación II:
Esta afirmación es falsa. Ya que con el formato horizontal existe un subcampo asignado a cada señal de
control, independientemente de que sean excluyentes o no.

SOLUCION PROBLEMA 7.3


DATOS
• Microinstrucciones de formato horizontal con direccionamiento explícito.
• Las microinstrucciones deben gobernar 135 señales de control
• Codificar un repertorio de 50 instrucciones máquina
• Memoria de control de 2048 palabras

La memoria de control es de 2048 palabras = 2 ·1024 palabras = 2·210=211 palabras. Luego el campo de
dirección de cada microinstrucción debe tener 11 bits para especificar una posición de la memoria de
control

Jose Manuel Díaz Tutor de ETC2 (Coslada) 3


TEMA 7: Microprogramación Solución problemas

SOLUCION PROBLEMA 7.4


Afirmación I: Es Falsa ya que un subcampo de j bits puede codificar un total de 2j-1 señales de control
ya que una de las codificaciones se debe reservar para especificar el caso en que ninguna de las señales
de control de ese subcampo se encuentre activa.

Afirmación 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 Teoría sobre las tareas de una unidad de control
microprogramada:

Afirmación I: Verdadera

Afirmación II: Verdadera

SOLUCION PROBLEMA 7.6


Afirmación I: Es Falsa ya que en este formato cada señal de control tiene asociado un subcampo.

Afirmación II: Es Verdadera es la característica típica de las microinstrucciones con formato horizontal

SOLUCION PROBLEMA 7.7


Afirmación I: Es Verdadera. ya que existe un subcampo por cada señal de control lo que genera
microinstrucciones muy anchas.

Afirmación II: Es Falsa, las tiene codificadas.

SOLUCION PROBLEMA 7.8


Afirmación 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 máquina.

Afirmación B: Es Falsa

Afirmación C: Es Verdadera. ya que en las microinstrucciones con formato horizontal existe un


subcampo por cada señal de control lo que genera microinstrucciones muy anchas.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 4


TEMA 7: Microprogramación Solución problemas

SOLUCION PROBLEMA 7.9


DATOS
• 132 señales de control
• Un grupo de 16 señales de control mutuamente excluyentes entre si.
• Otro grupo de 32 señales de control mutuamente excluyentes entre si.

Afirmación I : Es falsa ya que un subcampo codificado de i bits puede codificar a los sumo 2i-1 señales
de control diferentes. Por este motivo harían falta dos subcampos de 5 bits cada uno.

Afirmación II : Es falsa ya que el formato vertical de microinstrucciones saca partido precisamente del
hecho de que existan señales 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 microinstrucción se divide en dos subcampos :
• Subcampo de control de 13 bits para indicar las microoperaciones a realizar.
• Subcampo de selección de dirección que especifica un tipo de bifurcación condicional. Es
función de las señales de condición.
• Se tienen 8 señales de condición

Por un lado el tamaño de una microinstrucción es de 24 bits.


a) Puesto que el subcampo de selección de dirección es función de las señales de condición, se
requerirán 3 bits en ese subcampo para codificar las 8 señales de condición disponibles.

b) Luego el campo de control ( subcampo de control + subcampo de selección de dirección) constará de


13 + 3 = 16 bits. Por lo que el campo de dirección constará de 24 -16 =8 bits. Luego el formato de la
microinstrucción es:

Subcampo de control Subcampo de campo de dirección


(microoperación) selección de
dirección
13 bits 3 bits 8 bits

c) Puesto que se tienen 8 bits en el campo de dirección se podrán direccionar 28 direcciones. El tamaño
de la memoria de control será:

C=28 pal x 24 bits/pal

SOLUCION PROBLEMA 7.11


El formato de microinstrucción del problema anterior define una microinstrucción de bifurcación
condicional, ya que siempre se está evaluando una de las señales de condición, aquella especificada en el
subcampo de selección.

Para tener microinstrucciones que no especifiquen ningún tipo de bifurcación, basta con definir el
subcampo de control de manera que uno de sus bits (T) indique bifurcación/ no- bifurcación (1/0) Este es
el formato que se muestra a continuación

Subcampo de control T Subcampo de selección campo de dirección


(microoperación) de dirección
13 bits 1 bit 3 bits 8 bits

Jose Manuel Díaz Tutor de ETC2 (Coslada) 5


TEMA 7: Microprogramación Solución problemas

SOLUCION PROBLEMA 7.12


DATOS
• Cada instrucción máquina se le asignan 8 palabras en la memoria de control
• El Código de operación (Cod_Op) de las instrucciones tienen 5 bits.
• La memoria de control tiene una capacidad de 1024 palabras.

Puesto que el campo del código de operación (Cod_Op) de las instrucciones máquina tiene 5 bits, se
podrán 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 sólo habrá que ocupar:

23 pal/µp x 25 µp= 28 pal

Luego la dirección 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 códigos de operación posible. Como se comprueba, la dirección inicial del microprograma
correspondiente a un determinado código de operación está formada por los 5 bits de este, como bits más
significativos, más tres bits a 0 adicionales.

Código de operación Direcciones en la M. Control Formato de las direcciones


00000 00000000 - 00000111 00000XXX
00001 00001000 - 00001111 00001XXX
00010 00010000 - 00010111 00010XXX
... ... ...
11111 11111000 - 11111111 11111XXX

Teniendo esto presente la estructura del bloque “Lógica de transformación” es el que se muestra en la
siguiente figura:

Código de
RI
operación

“000”

Lógica de
transformación

Jose Manuel Díaz Tutor de ETC2 (Coslada) 6


TEMA 7: Microprogramación Solución 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 básicas:
1) Bifurcación (B): Condicionales (8 señales de condición) e incondicionales.
2) Aritméticas y lógicas (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 podría considerar como un tipo independiente
de las operaciones de memoria):
dirección ← (Ri)
Ri ← (dirección)
Ri ← valor
El formato de microinstrucción que se elija ha de permitir todos estos tipos de operaciones. La solución
no es única. A continuación se expone cada una de las posibilidades, indicando sus ventajas e
inconvenientes.

A) Microinstrucciones de formato horizontal. Cada señal de control tiene un subcampo independiente de


1 bit que indica el correspondiente valor de la señal de control. Éstas son:
Registros 1 al 31: 2 señales cada uno.
Registro 0: 3 señales de carga y 1 de salida al bus.
Registro de desplazamiento: 1 señal de carga y 3 de control de modo.
UAL: 2 señales de carga y 5 de control de modo.
16 bits de direccionamiento directo o inmediato.
Es decir, en total hay 93 señales de control que han de ser especificadas, una a una, en la
microinstrucción (al ser tantas señales no se ha representado gráficamente este formato de
microinstrucción).
Éste es el modo más sencillo y más rápido de ejecutar, ya que no es necesario ningún tipo de
decodificación de las microinstrucciones. Cada bit de la microinstrucción se corresponde directamente
con una única señal de control.
Sin embargo, su longitud es muy grande y no está bien aprovechada; por ejemplo, una instrucción no
puede realizar simultáneamente una operación 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 señales se excluyen
mutuamente.

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


horizontal. No existe un bit por señal de control, sino que éstas se encuentran codificadas:
- Las señales 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
combinación, la 00000, que se puede utilizar para indicar que no se lee el valor de ningún
registro. En este caso la lectura de un registro excluye la de todos los demás.
- Lo mismo sucede con las señales de carga de los registros 1 al 31.
- Las 4 señales 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 señales de control que no necesitan más
codificación.
- La UAL se controla con un total de 7 señales.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 7


TEMA 7: Microprogramación Solución problemas

- 16 bits de direccionamiento directo o inmediato.


El formato de microinstrucción es el de la Figura 67-16-2.

5 5 2 4 7 16
Dirección o
Lec. Reg. Escr. Reg. R0 RD UAL
Valor
Figura 67-16-2 Formato de microinstrucciones vertical

Este tipo de microinstrucción sólo necesita una longitud de palabra de control de 39 bits, frente a los 93
del formato horizontal. Sin embargo, el nivel de decodificación adicional añade complejidad al hardware
y hace que la ejecución de las microinstrucciones resulte más lenta, a igualdad de tecnología empleada.

C) Microinstrucciones verticales de formato variable. Representan un nivel adicional de codificación


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 microinstrucción, según se muestra en la Figura 67-16-3. En este
caso, el ancho de palabra de control es de un mínimo de 21 bits.

1 1 3 16
B
BIFURC. (1) Tipo Condición Dirección

1 2 1 4 5
NB UAL
UAL A/L Función Registro
(0) (00)

1 2 3
NB DESP.
DESPL. Tipo
(0) (01)

1 2 5 5
NB TRANS.
TRANSF. R. Origen R. Destino
(0) (10)

1 2 1 1 16
NB MEM.
MEM. L/E Modo Dirección o Valor
(0) (11)
Figura 67-16-3 Microinstrucciones verticales de formato variable

El formato de microinstrucción vertical variable implica el que algunos campos determinen la forma en
que se han de decodificar los demás.
El primer campo (B/NB) es común a todos los formatos, y determina si la instrucción es de bifurcación
(cuando vale 1) o no (cuando vale 0).
En las instrucciones de bifurcación el segundo campo indica el tipo de bifurcación, condicional (1) o
incondicional (0). Sigue un campo que sólo se interpreta en las bifurcaciones condicionales, para fijar el
tipo de condición que determina la bifurcación. Finalmente, hay un campo adicional que señala la
dirección a la que hay que saltar.
En las instrucciones que no implican bifurcación, el siguiente campo de 2 bits indica el tipo de operación
a realizar: UAL, desplazamiento, transferencia de registros u operaciones con memoria.
En las operaciones tipo UAL el tercer campo indica si la operación es aritmética (0) o lógica (1), el
siguiente campo indica la función, y el último el registro que se empleará, junto con el acumulador, en las
operaciones que requieren dos registros. En el caso de una operación que requiera un único operando,
este campo se ignora y la operación 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 microinstrucción es ignorado.
En las operaciones de transferencia de registros, hay dos campos que indican el registro origen y el
registro destino.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 8


TEMA 7: Microprogramación Solución problemas

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 dirección 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 más corta, pero la decodificación de las
microinstrucciones es complicada y requiere varios niveles, siendo por tanto más lenta.
La elección del formato más adecuado resulta de un compromiso entre velocidad, eficiencia, sencillez de
diseño y coste, dependiendo por tanto de cada caso particular.

SOLUCION PROBLEMA 7.14


DATOS
• Formato de microinstrucciones vertical.
• 16 señales de control

En general un subcampo de control de j bits de una microinstrucción de formato vertical puede codificar
un total 2j-1 señales de control ya que una codificación se debe reservar para especificar el caso en que
ninguna de las señales de control de ese subcampo se encuentre activa. Por lo tanto:

Puesto que se tienen 16 señales de control y hay que reservar una codificación por lo explicado
anteriormente, se requiere un decodificador con al menos 17 salidas. Este decodificador debe poseer
como mínimo 5 entradas, ya que para codificar estas 17 salidas se requieren 5 bits al verificarse que
25=32 >17. Por lo tanto la anchura mínima de este subcampo debe ser de 5 bits.

SOLUCION PROBLEMA 7.15


DATOS
• Unidad de control microprogramada.
• Direccionamiento explícito con 2 direcciones por microinstrucción.
• 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 según 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
explícito con 2 direcciones por microinstrucción.

Luego una dirección de memoria de control requiere para especificarse 20/2=10 bits. En consecuencia, el
número de palabras máxima que tendrá la memoria de control, es decir que pueden ser direccionadas con
10 bits es: 210 palabras

SOLUCION PROBLEMA 7.16


DATOS
• Unidad de control microprogramada.
• Direccionamiento explícito con 2 direcciones por microinstrucción.
• Microprogramación horizontal
• Memoria de control de 1K palabras x 32 bits/palabra
• ¿Máximo número de puntos de control?

La memoria de control almacenará las posibles microinstrucciones que se pueden ejecutar en el sistema,
la anchura de esta memoria y por tanto de una microinstrucción según el enunciado es de 32 bits.

Por otra parte puesto que hay 1 K palabras, el número de bits necesarios para codificar una dirección de
esta memoria de control es 10, ya que 1 K= 210. Luego como se utiliza un direccionamiento explícito con
dos direcciones por microinstrucción se requieren 2x10=20 bits para especificar ambas direcciones.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 9


TEMA 7: Microprogramación Solución problemas

Como la anchura de una microinstrucción es de 32 bits, eso significa que se utilizan 12 bits (32-20) para
el campo de control. Es decir, la estructura de la microinstrucción sería

32 bits

Control DIR1 DIR2

12 bits 10 bits 10 bits

Como el enunciado indica que se usa microprogramación horizontal, eso significa que se asigna un bit a
cada una de las señales de control existentes en la unidad de procesamiento. En consecuencia puesto que
el campo de control de la microinstrucción tiene un tamaño de 12 bits, como máximo podrán existir 12
señales de control. Puesto que cada señal de control se aplica a un determinado punto físico de control
como máximo existirán 12 puntos de control.

SOLUCION PROBLEMA 7.17


DATOS
• Unidad de control microprogramada.
• Direccionamiento implícito
• Memoria de control de 24 bits/palabra
• Microinstrucciones con 15 bits para los campos de control.
• Se pueden evaluar 8 condiciones en el caso de las instrucciones de bifurcación.
• ¿Tamaño máximo de la memoria de control?

La memoria de control almacenará las posibles microinstrucciones que se pueden ejecutar en el sistema,
la anchura de esta memoria y por tanto de una microinstrucción según el enunciado es de 24 bits.

Como se utiliza direccionamiento implícito, el bit más significativo (bit de formato) de la


microinstrucción indicara el tipo de microinstrucción: 0 (Control), 1(Bifurcación). En el caso de tratarse
de una microinstrucción de control se tendría la siguiente estructura:

24 bits

0 Control Sin asignar

1 bit 15 bits 8 bits

En el caso de una microinstrucción de bifurcación, se necesitarán 3 bits para codificar las 8=23
condiciones posibles de salto, los restantes bits se usarían para especificar una dirección de la memoria de
control luego su estructura sería:

24 bits

Cond.
1 Bifurcación DIRMc

1 bit 3 bits 20 bits

Luego se requieren 20 bits para codificar una dirección de la memoria de control, en consecuencia, el
tamaño de dicha memoria es 220 palabras.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 10


TEMA 7: Microprogramación Solución problemas

SOLUCION PROBLEMA 7.18


DATOS
• Microinstrucciones de formato vertical.
• Este formato tiene 15 subcampos de 2 bits, 5 subcampos de 3 bits y 2 subcampos de 5 bits.
• ¿Número máximo de señales de control?

En el enunciado nos dicen que se tiene un total de 22 (15+5+2) subcampos, cada uno de los cuales
requiere de un decodificador que sólo puede tener una de sus salidas activadas en un determinado
instante de tiempo. Eso implica que el computador puede tener activadas como máximo 22 señales de
control o microórdenes simultáneamente.

Por otro lado si un subcampo tiene j bits, puede codificar un total de 2j-1 señales de control. Una
codificación se reserva para especificar el caso en que ninguna de las señales de control de ese subcampo
se encuentre activa.

Luego del enunciado se sabe que el formato tiene:


15 subcampos codificados de 2 bits → 15 x·(22-1)=15 x 3= 45 señales de control
5 subcampos codificados de 3 bits → 5·x (23-1)= 5 x 7= 35 señales de control
2 subcampos codificados de 5 bits → 2·x (25-1)=2 x 31= 62 señales de control

Lo que hace un total de 45+35+62=142 señales de control.

SOLUCION PROBLEMA 7.19


DATOS
• Unidad de control microprogramada.
• Tamaño de una microinstrucción 50 bits
⇒ 21 bits para seleccionar independientemente las microoperaciones que lleva a cabo.
⇒ Un campo para indicar el tipo de bifurcación a realizar (condicional, incondicional, o no
bifurcar).
⇒ Un campo para seleccionar una de las 13 señales de condición posibles

Del enunciado sabemos que la distribución de los 50 bits de una microinstrucción es la siguiente:
• 21 bits para seleccionar independientemente las microoperaciones que lleva a cabo.
• Un campo para indicar el tipo de bifurcación a realizar (condicional, incondicional, o no
bifurcar). Luego dicho campo debe tener un tamaño de 2 bits para poder codificar estas tres
posibilidades (3≤22)
• Un campo para seleccionar una de las 13 señales de condición posibles. Luego dicho campo
debe tener un tamaño de 4 bits para poder codificar las 13 señales de condición. (13≤24)

Por lo tanto quedan disponibles 50 -(21+2+4)= 23 bits.. Entonces una dirección de la memoria de control
puede tener como máximo un tamaño de 23 bits, y en consecuencia el tamaño de la memoria de control
será como máximo de 223 palabras.

SOLUCION PROBLEMA 7.20


DATOS
• Cada instrucción máquina tiene un tamaño de 20 bits:
∗ Los 6 bits más significativos (I19,I18,..,I14) codifican el código de operación.
∗ Los 14 bits restantes (I13,I12,..,I0) hacen referencia a los operandos.
• Cada microprograma asociado a un código de operación ocupa 16 palabras consecutivas de la
memoria de control

Puesto que el campo del código de operación (Cod_Op) de las instrucciones máquina tiene 6 bits, se
podrán codificar un total de 26= 64 operaciones. Cada una de estas operaciones tiene asociado un
microprograma (µp), luego hay que almacenar 64 microprogramas en la memoria de control.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 11


TEMA 7: Microprogramación Solución problemas

Cada microprograma ocupa 16 palabras consecutivas de la memoria de control. Por lo tanto la capacidad
minima necesaria para la memoria de control es:

24 pal/µp x 26 µp= 210 pal

Luego la dirección para acceder a palabras de la memoria de control tiene 10 bits.

En la siguiente tabla se muestran las direcciones de la memoria de control que se corresponden a cada
uno de los 64 códigos de operación posible.

Código de operación Direcciones del µP asociado en la Formato de las direcciones


Memoria de Control
000000 0000000000 - 0000001111 000000XXXX
000001 0000010000 - 0000011111 000001XXXX
000010 0000100000 - 0000101111 000010XXXX
... ... ...
11111 1111110000 - 1111111111 111111XXXX

Como se comprueba, la dirección inicial del microprograma correspondiente a un determinado código de


operación está formada por los 6 bits de este, como bits más significativos, más cuatro bits a 0
adicionales. Es decir

(I19,I18,I17,I16,I15,I14,0,0,0,0)

SOLUCION PROBLEMA 7.21


DATOS
• Unidad de control microprogramada.
• Tamaño de una microinstrucción 42 bits
⇒ 20 bits para seleccionar independientemente las microoperaciones que lleva a cabo.
⇒ Un campo para indicar el tipo de bifurcación a realizar (condicional, incondicional, o no
bifurcar).
⇒ Un campo para seleccionar una de las 16 señales de condición posibles

Del enunciado sabemos que la distribución de los 42 bits de una microinstrucción es la siguiente:
• 20 bits para seleccionar independientemente las microoperaciones que lleva a cabo.
• Un campo para indicar el tipo de bifurcación a realizar (condicional, incondicional, o no
bifurcar). Luego dicho campo debe tener un tamaño de 2 bits para poder codificar estas tres
posibilidades (3≤22)
• Un campo para seleccionar una de las 13 señales de condición posibles. Luego dicho campo
debe tener un tamaño de 4 bits para poder codificar las 13 señales de condición. (16≤24)

Por lo tanto quedan disponibles 42-(20+2+4)= 16 bits.. Entonces una dirección de la memoria de control
puede tener como máximo un tamaño de 16 bits, y en consecuencia el tamaño de la memoria de control
será como máximo de 216 palabras.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 12


TEMA 7: Microprogramación Solución problemas

SOLUCION PROBLEMA 7.22


DATOS
• Computador usa un formato de microinstrucción mixto, parte horizontal y parte vertical
• La parte con formato horizontal de codificación tiene una longitud de k bits.
• La parte con formato vertical de codificación posee m campos codificados de n bits cada uno.

El número máximo de señales de control Nmax que pueden usarse en este computador vendrá dado por la
suma de las señales que pueden usarse en la parte horizontal más las que pueden usarse en la parte
vertical:

En la parte con formato horizontal se asigna un bit a cada señal de control. Luego como el tamaño de esta
parte es k bits se pueden tener k señales de control.

En un campo con formato vertical de n bits se pueden codificar un máximo de 2n-1 señales de control, ya
que siempre se debe reservar una codificación para indicar el caso en que ninguna señal de control está
activada. Luego si se disponen de m campos con formato vertical de n bits. Se podrán codificar un
máximo de m (2n-1) señales de control.

Por lo tanto

N max = k + m·(2 n − 1)

SOLUCION PROBLEMA 7.23


DATOS
• Unidad de control microprogramada con direccionamiento implícito.
• Memoria de control de 24 bits de longitud de palabra.
• Las microinstrucciones emplean 15 bits para los campos de control.
• El tamaño máximo de la memoria de control es de 220 palabras.

La memoria de control almacenará las posibles microinstrucciones que se pueden ejecutar en el sistema,
la anchura de esta memoria y por tanto de una microinstrucción según el enunciado es de 24 bits.

Además como la memoria de control tiene una capacidad de 220 el número de bits n necesarios para
codificar una dirección de la memoria es de 20 bits.

Como se utiliza direccionamiento implícito, el bit más significativo (bit de formato) de la


microinstrucción indicara el tipo de microinstrucción: 0 (Control), 1(Bifurcación). En el caso de tratarse
de una microinstrucción de control se tendría la siguiente estructura:

24 bits

0 Control Sin asignar

1 bit 15 bits 8 bits

En el caso de una microinstrucción de bifurcación, puesto que una dirección de la memoria de control
ocupa 20 bits, la estructura de la microinstrucción sería el que se muestra en la figura

Jose Manuel Díaz Tutor de ETC2 (Coslada) 13


TEMA 7: Microprogramación Solución problemas

24 bits

Cond.
1 Bifurcación
DIRMc

1 bit 3 bits 20 bits

Es decir, se dispone de 3 bits para codificar las condiciones de bifurcación. Luego el número máximo de
condiciones de bifurcación es 23=8.

SOLUCION PROBLEMA 7.24


DATOS
• Unidad de control microprogramada.
• Formato de microinstrucción horizontal o vertical
• Direcciones de 12 bits
• Formato de la microinstrucción horizontal en la Figura 1.
• Ai (i=1,2,3), Bj (j=1,2,3), Ck (k=1,..,4), Dm (m=1,2,3) y En (n=1,…,8) son señales de control
• Formato de la microinstrucción horizontal en la Figura 2
• El campo 4 se decodifica como sel-B o sel-D a partir del campo 2, que es un campo de selección

Para resolver este problema se puede consultar la sección 7.2.4 del libro de teoría.

A)
- Cálculo del tamaño de la memoria de control con formato de microinstrucción horizontal:
El campo de control se muestra en la siguiente figura:

A1 A2 A3 B1 B2 B3 C1 C2 C3 C4 D1 D2 D3 E1 ………. E8
3 bits 3 bits 4 bits 3 bits 8 bits

De donde es fácil comprobar que el tamaño del campo de control con el formato horizontal es de 21 bits
Como el campo de dirección de la microinstrucción, según el enunciado, tiene 12 bits, el número de
microinstrucciones es de 212. Por lo tanto, el tamaño de la memoria de control utilizando formato
horizontal es de 212× 21 bits

- Cálculo del tamaño de la memoria de control con formato de microinstrucción vertical:


Teniendo en cuenta que en este caso con un subcampo de j bits se pueden especificar 2j-1 señales de
control (una de las codificaciones hay que reservarla para el caso de que ninguna señal de control esté
activa), el formato de los subcampos de control de la microinstrucción con formato vertical es el que se
muestra en la siguiente figura:

sel-A x sel-C sel-B o sel D sel-E


2 1 3 2 4

Luego en este caso el número de bits utilizados en los subcampos de control de la microinstrucción
vertical es de 12 bits.

Como el número de microinstrucciones es de 212, el tamaño de la memoria de control utilizando formato


vertical es de 212× 12 bits

Ambas memorias tienen el mismo número de palabras, pero la horizontal necesita un ancho de palabra
casi el doble que la vertical, luego su tamaño será prácticamente el doble que la vertical.

B) En el diseño vertical las señales de control se activan un cierto tiempo después respecto al diseño
horizontal, igual al tiempo de decodificación. Según se puede apreciar en la figura siguiente, la
decodificación impone un retardo igual al decodificador más lento, es decir, al decodificador 4×16.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 14


TEMA 7: Microprogramación Solución problemas

sel-A X sel-C sel-B o sel-D sel-E

2 3 2 4
1

DEC DEC DEC DEC DEC


2x4 3x8 2x4 2x4 4x16

A1 A2 A3 No C1 C2 C3 C4 .... No B1 B2 B3 No D1 D2 D3 No E1 E2 ... E8 ....... No

C) El ahorro de memoria del diseño vertical es lógico, puesto que las señales de control están codificadas,
mientras que en el caso de la horizontal tenemos un bit para activar directamente cada señal.

Por la misma razón, esta ventaja del caso vertical produce el inconveniente de introducir un retraso en la
activación de las señales, puesto que se ha de realizar la decodificación.

En el diseño habría que estudiar si lo que se prima más es un diseño rápido (en cuyo caso nos
inclinaríamos por la memoria horizontal), o bien se valora más la optimización del tamaño de la memoria
de control y la posibilidad de reducir errores de microcodificación (es este caso sería mejor el diseño
vertical).

SOLUCION PROBLEMA 7.25


DATOS
• El tamaño máximo de la memoria de control es de 220 palabras.
• La parte de control del formato de una microinstrucción emplea 8 bits para seleccionar la operación.
• Posee un campo para indicar el tipo de bifurcación a realizar (condicional, incondicional o no
bifurcar).
• Un campo para seleccionar una de las 32 señales de condición posible

De acuerdo con la información del enunciado y supuesto direccionamiento explícito con una dirección
por microinstrucción, el formato de microinstrucción de que se dispone sería el siguiente supuesto:

Selección Tipo Señal


microoperación Bifurcación Condición
DIRMc

• El campo [Selección microoperación] tiene un tamaño de 8 bits.


• El campo [Tipo de bifurcación] puesto que existen tres posibles tipos requerirá n bits para
codificarlos, donde n se obtiene de 3≤2n => n=2 bits
• El campo [Señal de condición] puesto que existen 32 señales de condición posibles requerirá n bits
para codificarlas, donde n se obtiene de 32≤2n => n=5 bits.
• El campo [Dirección de la memoria de control] puesto que la memoria de control tiene una capacidad
de 220 palabras requerirá n=20 bits para codificar una dirección.

En consecuencia el tamaño de una microinstrucción es: 8+2+5+20=35 bits.

Jose Manuel Díaz Tutor de ETC2 (Coslada) 15


EXAMENES
6 Estructura y Tecnología de Computadores II

3UREOHPD  6HSWLHPEUH 

El siguiente algoritmo describe una determinada operación de un sistema digital.


A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos
de la Figura 1: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un
contador módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertas
lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere
necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseñada 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 solución.

1: Declaración: 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 E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
E c1 c1
Q R Q

Figura 1: Módulos 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 exámenes del curso 2000/2001 7

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 más o menos significativo (A[7] o A[0]) con la
entrada serie que le corresponda (ED o EI). En este caso la operación 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 señal de reset pero se puede conseguir este efecto cargando el valor “0”
(8 bits).
‡ Una UAL capaz de sumar 1 a un número 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 operación. Además, puesto
que siempre se va a realizar la operación de suma se puede dejar el valor de la entrada de control c0 de la
UAL siempre al valor lógico “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 detección del estado 7 del contador que genere la señal de condición 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 análisis se desprende que es posible implementar la ruta de datos teniendo en cuenta que se deben generar
las señales de condición adecuadas hacia la unidad de control:
‡ s0, señal de condición correspondiente a A[0] = 1. Se genera conectando la salida A[0] del registro A a la
entrada de condición s0 de la unidad de control.
‡ s1, señal de condición de fin de bucle. Se genera conectando la salida de la puerta AND a la entrada de
condición s1 de la unidad de control.
Por otra parte, la Unidad de Control recibe una señal externa que arranca el algoritmo:
‡ I, señal de condición 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 señales de control utilizadas.
8 Estructura y Tecnología de Computadores II

Bus

0 1 c0
c1 MUX

0 ED c0 c4 0 ED c0 c2
EI Reg. desp. c1 EI Reg. desp. c1
0 c5 c3
1
B
A[0]

A B c 0
0
UAL

c0 c6
Contador c1
2 1 0 c7

s0 (valor del bit A[0])


s1(=1 Contador es 7)

c0 Unidad de
Inicio Circuito Procesamiento
c1
Fin de
Reloj Control
c7
Unidad de
Control

Figura 2: Diseño de la Unidad de Procesamiento

Señal de Control Operación controlada

c0 Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexión (1)
c1 Selección 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: Descripción de la señales de control de la Unidad de Procesamiento

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se diseña el diagrama
de transición 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 exámenes del curso 2000/2001 9

Este diagrama de transición de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseñada 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 condición de
finalización y, en caso de no verificarse, incrementa el contador y realiza otra iteración. En total el bucle se realiza
para todos los valores del contador, desde el 0 hasta el 7.

Inicio S5
s1
s0
S0 S1 S2 S3 S4 s1 S6

s0

Figura 3: Diagrama de estados de la Unidad de Control

Estado de la Unidad Microoperaciones Señales de control


de Control efectuadas a activar
S0 Ninguna Ninguna
A ← Bus c3, c2
S1 B←0 c1, c5, c4
Reset Cont (c7=0), c6
S2 Ninguna Ninguna
S3 B←B+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 método de los elementos de retardo. El diseño
correspondiente se muestra en la Figura 4. En la parte izquierda de la Figura 4 se ha vuelto a colocar el diagrama de
transición de estados de forma que sirva de ayuda y complemento al diseño lógico de la Unidad de Control.
10 Estructura y Tecnología de Computadores II

Inicio=0
S0 Set
S0 Inicio •
Inicio=1
• S1
S1 c1, c2, c3, c4, c5, c6

s0= 0
• S2 •
S2
s0 •
s0= 1

S3 • S3 •
• c4, c5

S4 s = 1 • S4 •
1
• c2
s1= 0 s1 •

S5
• S5 •
• c7

S6 • S6 •
• c0

Reloj Clear

Figura 4: Unidad de Control


Problema - Junio 2ª semana:
El siguiente algoritmo describe una determinada operación de un sistema digital.
A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos
de la Figura 2: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un
contador módulo-16 bidireccional y circuitos triestado de conexión unidireccional con control de 8 bits;
además de puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y
decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples
dispositivos y evitar en su diseño posibles conflictos eléctricos entre ellos.
B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento
diseñada en el apartado A) empleando la técnica de los elementos de retardo. Detalle y explique
claramente todos y cada uno de los pasos seguidos hasta obtener la solución.

1: Declaración: 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 A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S
c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S
00 Q(t) 0 A+B 00 Q(t) 0 -
01 D. Dcha. 1 A-B 01 Q(t)-1 mod 16 1 E
10 D. Izq. 10 Q(t)+1 mod 16
11 Carga 11 0

Figura 2: Módulos secuenciales del problema con sus tablas de funcionamiento

Solución

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 utilizarán multiplexores.
• Los registros volcarán su contenido al bus a través de sendas puertas triestado, para evitar problemas
eléctricos.
• Un contador módulo-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 ocasión y el contador de que se dispone sólo puede contar de 1 en
1, esto no supone nungún problema ya que bastará con incrementar 1 dos veces seguidas.
Del análisis del algoritmo se sigue que harán falta dos señales de condición:
• s0, que indique si el valor del registro A es múltiplo de 4. Para ello veamos cómo son los números múltiplos
de 4:

A7 A6 A5 A4 A3 A2 A1 A0

4: 0 0 0 0 0 1 0 0

8: 0 0 0 0 1 0 0 0

12: 0 0 0 0 1 1 0 0

16: 0 0 0 1 0 0 0 0

20: 0 0 0 1 0 1 0 0

Tabla 1: Los múltiplos de 4

Es decir, son todos ellos números acabados en 00. Si se admite el 0 como múltiplo de 4 (este problema se
resolverá aquí adoptando este criterio) entonces se tiene que s0 = A1 A0. Si se considera que 0 no es múltiplo
de 4 entonces alguno de los bits más significativos ha de ser distinto de 0: s0 = (A7 + A6 + A5 + A4 + A3 +
A2) A1 A0.
Otra manera de ver cómo son los números múltiplos de 4 es la siguiente: Un número binario anan-1an-2...a1a0
tiene el valor decimal an×2n + an-1×2n-1 + an-2×2n-2 + ... + a1×21 + a0×20. Para dividir este número entre
4 lo multiplicamos por 2-2, con lo que resulta: an×2n-2 + an-1×2n-3 + an-2×2n-4 + ... + a2×20 + a1×2-1 +
a0×2-2. Si el número inicial es divisible entre 4, la parte decimal del cociente de la división debe ser 0. En
este caso, la parte fraccionaria es a1×2-1 + a0×2-2, pues 2-1 = 0.5 y 2-2 = 0.25. Ya que a1 y a0 sólo 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 dígitos binarios, 14 se expresa como 1 1 1 0, luego esta señal
de condición se realizará fácilmente con una puerta AND y un inversor.
Un posible diseño 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 simultáneamente, es posible hacer uso de un único multiplexor. Así mismo, dado
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-operación, es posible gobernar cada uno de los registros con una única señal de control conectada
simultáneamente a sus entradas c0 y c1. La Figura 4 muestra cómo se realizarían estas modificaciones. (Este
diseño, al hacer uso de menos componentes y menos señales de control, es más económico.) En lo que sigue, el
problema se resolverá haciendo uso del diseño de la Figura 3.

BUS 8

0 1 0 1
c9 c0 MUX c1 MUX c10

ED c0 c2 ED c0 c4 c0 c6
Reg. desp. A c Reg. desp. B c Contador c1
EI 1 c3 EI 1 c5 c7
8
4

A1 A0 Cont3 Cont0
A B
UAL c8

s0 s1
Unidad de
Procesamiento
c0
Inicio Circuito c1
Fin de
Reloj Control
c10
Unidad de
Control

Figura 3: Diseño de la Unidad de Procesamiento


BUS 8

0 1
c0 MUX

Reloj

ED c0 c2 ED c0 c4
EI Reg. desp. A c EI Reg. desp. B c
1 1
8

A B
UAL c8

Figura 4: Fragmento de la Unidad de Procesamiento, en el que se muestran algunas posibles modificaciones en el diseño

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se diseña el diagrama
de transición de estados de la Figura 5, donde el significado detallado de cada uno de los estados propuestos viene
dado por la Tabla 2. Obsérvese que esta Unidad de Control se ha diseñado como una máquina 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 s1s0
S0 S1 S2 S3 S4 S5 S7 S8

Inicio

s1s 0
S6

Figura 5: Diagrama de estados de la Unidad de Control


Estado de la Unidad Microoperaciones Señales de control
de Control efectuadas a activar
S0 Ninguna Ninguna
S1 A ← Bus (c0=0), c2, c3
B ← Bus (c1=0), c4, c5
S2
Cont ← 0 c6, c 7
S3 Ninguna Ninguna
A←A-B
c0, c 2, c3, c8
S4 Cont ← (Cont + 1) mod
(c6=0), c7
16
Cont ← (Cont + 1) mod
S5 (c6=0), c7
16
S6 B←B+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 transición de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el
enunciado del problema utilizando la Unidad de Procesamiento diseñada 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 condición (s1 = 1) del estado S3 se salta al estado S 7. En caso contrario, en S3 se comprueba si A es
múltiplo de 4 (s0) o no (s0) y se salta al estado correspondiente. Obsérvese 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 técnica de los elementos de retardo, según 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. También se muestra cómo se forman las distintas señales de control a partir de las salidas de los
biestables tipo D [ver las páginas 304 a 307 del texto base de teoría]. Obsérvese que los bloques de decisión
corresponden a demultiplexores, según se muestra en la Figura 7 [ver las páginas 304 a 307 del texto base de
teoría].
Inicio Set
S0 S0

Inicio Inicio Demux


0 1

S1 S1 c2, c3

S2 S2 c4, c5,
c6, c7

s1s0 S3 S3
s1
s1 Demux
0 1
s1s0 s0
0 1

S4 S4
c0, c2, c3,
c7, c8
S5 S5
c7

S6 S6
c1, c4, c5

S7 S7
c10

S8 S8
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 realización mediante elementos de retardo
Entrada
Entrada Entrada

0 1 V Demux
V
0 1

Salida 0 Salida 1 Salida 0 Salida 1 Salida 0 Salida 1

Figura 7: Bloque de decisión (izquierda) visto como un demultiplexor (centro) y su realización equivalente con puertas
lógicas (derecha)
2005 1ª Semana

4.- Un bus con arbitraje centralizado por encadenamiento (daisy-chaining) y con un único nivel de prioridad tiene
conectados 4 dispositivos (d1, d2, d3, d4). El dispositivo d1 es el que se encuentra conectado más próximo al
árbitro, a continuación está conectado d2, seguidamente d3 y finalmente d4. La fracción de la capacidad utilizada
por los dispositivos d1, d2, d3 y d4 es 0.2, 0.35, 0.1 y 0.25 respectivamente. Indique cuál es la capacidad sobrante
del dispositivo d3. (Nota: Se define la capacidad sobrante de un dispositivo como 1 menos la suma de las
fracciones de las capacidades utilizadas por todos los dispositivos que tienen una prioridad superior).

A) 0.75 B) 0.35 C) 0.45 D) Ninguna de las anteriores.

Cs3 = 1 − 0.2 − 0.35 = 0.45 ⇒ C

2005_Septiembre_reserva

Cs4 = 1 − 0 = 1 ⇒ D

El nivel de mayor prioridad es el 2, por lo tanto el dispositivo con mayor prioridad será el primero de los
conectados en dicho nivel, esto es, el d4. Como nos pide la fracción de la capacidad sobrante de dicho
dispositivo, dicha capacidad será 1-(la de los dispositivos con mayor prioridad (ninguno)), por lo tanto 1.
SOLUCIÓN
SOLUCION
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz
y Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 3 puntos, las cuestiones teóricas 4 puntos y el problema 3 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.2 puntos. El test es eliminatorio, debiendo obtener una
calificación mínima de 1.3 puntos para superarlo (con 3 preguntas correctas se supera).
Examen tipo C.
1.- Sabiendo que la frecuencia del reloj del bus de la figura es de 100 MHz.
T1 T2 T3

Reloj

A0-
A23
D0-D31

Lect/Escr

El tiempo que se necesita para transferir un fichero de 100MB (100 × 220 bytes) es:
A) 0,254 s B) 0,786 s C) 0,567 s D) Ninguna de las anteriores.
2.- Un sistema jerárquico de memoria tiene una memoria caché de 8Kpalabras, dividida en bloques de 256
palabras y con un tiempo de acceso de 20 ns, y una memoria principal de 512 Kpalabras con un tiempo de acceso
de 120 ns. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria caché y después se
lee el dato desde la caché. Si la tasa de acierto de la caché es del 90%, ¿cuál es el tiempo de acceso medio de
este sistema?
A) 3092 ns B) 1650 ns C) 975 ns D) Ninguna de las anteriores.
3.- Un controlador de DMA está transmitiendo palabras a memoria mediante la estrategia de robo de ciclos.
Cuando la CPU dispone en exclusiva del bus, el 75% de las instrucciones emplean 4 ciclos de reloj en ser
ejecutadas y el 25% emplean 6 ciclos, aunque en 2 de ellos no se requiera el acceso al bus. Si la frecuencia del
computador es de 225 MHz, ¿cuántas instrucciones por segundo deja de ejecutar la CPU cuando el controlador
de DMA está realizando la transmisión?
A) 1,1 × 10 6 B) 7,5 × 10 6 C) 9,1 × 10 6 D) Ninguna de las anteriores.
4.- El siguiente algoritmo describe una determinada operación de un sistema digital:
1: Declaración: A[8], B[8], Cont[3;
2: A  Bus; Si los valores cargados en los registros A y B desde el bus
3: B  Bus; de entrada son 00110000 y 01001000, respectivamente,
4: for Cont = 2 to 5 do ¿cuál es el valor de A y B después de la ejecución del
5: if Cont es par then algoritmo, respectivamente?
6: A  A + B; B  A / 2 A) 01110100 y 00010100
7: else B) 10110100 y 01011010
8: A  A - B; A  B * 2 C) 01001000 y 00110000
9: endif; D) Ninguna de las anteriores.
10: endfor;
11: Bus  A;
12: Bus  B;
13: Parar;
5.- Empleando únicamente una ROM, se pretende diseñar un comparador de dos números de 6 bits que genere
las funciones “mayor que”, “menor que” e “igual que”. Indicar cuál de las siguientes ROM podría emplearse:
A) 210 palabras × 4 bits/palabra B) 212 palabras × 4 bits/palabra
C) Las dos anteriores. D) Ninguna de las anteriores.
6.- En un procesador con instrucciones de cero direcciones (con pila), determinar cuál es el número mínimo de
instrucciones que se necesitan para completar la secuencia Y = (X+Y) × Z.
A) 3 B) 5 C) 6 D) Ninguna de las anteriores.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (1 punto): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (1 punto): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (1 punto): Justificar razonadamente el resultado de la pregunta 3 del test.

Cuestión 4 (1 punto): Justificar razonadamente el resultado de la pregunta 4 del test.


Problema (Contestar el problema en lo que resta de este folio por delante y por detrás como máximo):
Se dispone de un PC en el cual el bus de direcciones tiene 32 bits y el ancho de palabra es de 64 bits. El mapa de
memoria de este PC tiene dos secciones:
El área conocida como memoria convencional (los primeros 640Kbytes de memoria), utilizada principalmente
por el sistema operativo y programas residentes.
El área de memoria superior, situada a continuación, hasta ocupar 1 Mbyte. Esta área está reservada para
adaptadores hardware y la ROM BIOS, entre otros.

Los primeros 1024 Kbytes de este computador (128 Kpalabras × 64 bits) se distribuyen de la siguiente manera:
640 Kbytes de memoria RAM (80 Kpalabras × 64 bits)
384 Kbytes de memoria ROM (48 Kpalabras × 64 bits)
Sabiendo que se dispone de módulos de memoria de las siguientes características:
Módulos RAM Módulos ROM
2 Kpalabras × 16 bits 16 Kpalabras × 8 bits
32 Kpalabras × 32 bits 16 Kpalabras × 16 bits
64 Kpalabras × 16 bits 64 Kpalabras × 1 bit
Se pide:
A) (0.5 ptos) Analizar si se podría diseñar un mapa de memoria con el tipo de pastillas disponibles. En el
caso de que no sea posible, proponer otra opción.
B) (1 pto) Indicar cuántos módulos de memoria y de qué características serían necesarios para diseñar el
mapa de memoria, utilizando el menor número de pastillas posible.
C) (1.5 ptos) Realizar el diseño del mapa de memoria de modo que la memoria RAM ocupe las posiciones
inferiores de memoria y a continuación esté situada la memoria ROM. Dibujar el esquema del mapa de
memoria resultante.
SOLUCIONES

1.- Sabiendo que la frecuencia del reloj del bus de la figura es de 100 MHz.
T1 T2 T3

Reloj

A0-
A23
D0-D31

Lect/Escr

El tiempo que se necesita para transferir un fichero de 100MB (100 × 220 bytes) es:
A) 0,254 s B) 0,786 s C) 0,567 s D) Ninguna de las anteriores.

Solución:
Para calcular el tiempo necesario para transferir un fichero hay que tener en cuenta el tamaño del fichero y el
ancho de banda del bus.

Como la frecuencia del bus es de 100 MHz, eso significa que el tiempo de ciclo es 10 ns. Y por lo tanto, el ancho
de banda será el siguiente:

Otro aspecto a tener en cuenta son las unidades y sus múltiplos.


Cuando hablamos de cantidad de información (el tamaño de un fichero por ejemplo) los múltiplos representan
potencias de 2, es decir, 1 MB = 220 bytes, o 1 GB = 230 bytes. Sin embargo, cuando hablamos de velocidad de
transferencia como ocurre en el caso del ancho de banda, los múltiplos representan potencias de 10, es decir, 1
MB/s = 106 bytes/s, o 1 GB/s = 109 bytes/s. Si tenemos todo esto en cuenta, el tiempo que se pide lo calculamos
de la siguiente forma:

Respuesta: B) 0,786 s
2.- Un sistema jerárquico de memoria tiene una memoria caché de 8Kpalabras, dividida en bloques de 256
palabras y con un tiempo de acceso de 20 ns, y una memoria principal de 512Kpalabras con un tiempo de acceso
de 120 ns. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria caché y después se
lee el dato desde la caché. Si la tasa de acierto de la caché es del 90%, ¿cuál es el tiempo de acceso medio de
este sistema?
A) 3092 ns B) 1650 ns C) 975 ns D) Ninguna de las anteriores.

Solución:
Véase el apartado 2.5.5 del texto base de teoría. El tiempo medio de acceso al sistema de memoria viene dado
por la expresión siguiente:
ta = h × tacierto + ( 1 – h ) × tfallo

donde
tacierto es el tiempo de acceso en caso de acierto
tfallo es el tiempo de acceso en caso de fallo
h es la tasa de acierto

Es decir, el tiempo medio de acceso es la media ponderada del tiempo medio de acceso en caso de acierto y del
tiempo medio de acceso en caso de fallo.
En caso de acierto, el tiempo medio de acceso es el tiempo de acceso a la memoria caché, 20 nseg. La
probabilidad de acierto es del 90 % (h = 0.90).
En caso de fallo, primero se mueve el bloque completo que ha producido el fallo desde la memoria principal a la
memoria caché y luego, según el enunciado, se mueve la palabra que ha producido el fallo desde la caché a la
CPU. Luego en caso de fallo hay que mover 256 palabras (un bloque) desde la memoria principal, lo que tarda
un tiempo de 256×120 ns = 30720 ns; después se mueve una palabra desde la caché, lo que emplea otros 20 ns.
Luego en caso de fallo se tarda 30740 ns. La probabilidad de un fallo de referencia es del 100 % – 90 % = 10 %
(h = 0.1).
Por tanto, el tiempo medio de acceso de este sistema de memoria es:
0.90 × 20 ns + 0.1×30740 ns = 18 ns + 3074 ns = 3092 ns.

Respuesta: A (3092 ns)

3.- Un controlador de DMA está transmitiendo palabras a memoria mediante la estrategia de robo de ciclos.
Cuando la CPU dispone en exclusiva del bus, el 75% de las instrucciones emplean 4 ciclos de reloj en ser
ejecutadas, y el 25% emplean 6 ciclos, aunque en 2 de ellos no se requiera el acceso al bus en ambos casos. Si la
frecuencia del computador es de 225 MHz, ¿cuántas instrucciones por segundo deja de ejecutar la CPU cuando
el controlador de DMA está realizando la transmisión?
A) 1,1 × 10 6 B) 7,5 ×10 6 C) 9,1 × 10 6 D) Ninguna de las anteriores.

Solución:
(Análogo al problema 3.8 del libro, ver explicación). En este caso, hay dos tipos de instrucciones: el 75%
emplean 4 ciclos y el 25 % 6 ciclos. Por tanto, la velocidad de ejecución cuando no hay DMA es:
f Hz 225 106
vnormal    5 107 instruc / s
0.75  4 ciclos / instrucció n  0.25  6 ciclos / instrucció n 4.5
Cuando hay DMA, en un 75% de los casos se emplean 5 ciclos entre instrucción e instrucción y en un 25% se
emplean 7. Por tanto,
f Hz 225  106
vDMA    4,09 107 instruc / s
0.75  5 ciclos / instrucció n  0.25  7 ciclos / instrucció n 5.5
Luego el número de instrucciones por segundo que deja de ejecutar la CPU cuando el controlador de DMA está
realizando la transmisión es:
vDMA  vDMA  5 107  4,09 107 instruc. / s  9,1106 instruc / s

Respuesta: C ( 9,1 × 10 6 instrucciones/s)

4.- El siguiente algoritmo describe una determinada operación de un sistema digital:


1: Declaración: A[8], B[8], Cont[3;
2: A  Bus; Si los valores cargados en los registros A y B desde el bus
3: B  Bus; de entrada son 00110000 y 01001000, respectivamente,
4: for Cont = 2 to 5 do ¿cuál es el valor de A y B después de la ejecución del
5: if Cont es par then algoritmo, respectivamente?
6: A  A + B; B  A / 2 A) 01110100 y 00010100
7: else B) 10110100 y 01011010
8: A  A - B; A  B × 2 C) 01001000 y 00110000
9: endif; D) Ninguna de las anteriores
10: endfor;
11: Bus  A;
12: Bus  B;
13: Parar;
Solución:
A) 01110100 y 00010100
B) 10110100 y 01011010
C) 01001000 y 00110000

Según el enunciado los valores almacenados en A y B son 4810 (00110000) y 7210 (01001000). En la tabla se
recogen los valores asignados a A y B para cada iteración del bucle:

Cont A B
2 120 60
3 120 60
4 180 90
5 180 90

Por tanto, el valor final de A y B son 18010 y 9010 (10110100 y 01011010), que se corresponde con la respuesta
B.

Respuesta: B (10110100 y 01011010)

5.- Empleando únicamente una ROM, se pretende diseñar un comparador de dos números de 6 bits que genere
las funciones “mayor que”, “menor que” e “igual que”. Indicar cuál de las siguientes ROM podría emplearse:
A) 210 palabras × 4 bits/palabra B) 212 palabras × 4 bits/palabra
C) Las dos anteriores. D) Ninguna de las anteriores.

Solución:
En un caso general se necesitará una memoria ROM de un tamaño mínimo de:

(2núm. entradas) palabras×(núm. salidas) bits/palabra

En el caso del comparador propuesto el número de entradas es 6 + 6 = 12, y el número de salidas es 3, por lo
que se necesitará una memoria ROM de un tamaño mínimo de 212 palabras × 3 bits/palabra.
La respuesta A propone una capacidad con un número de palabras inferior al necesario y no vale. Sin embargo la
respuesta B tiene capacidad mayor que la necesaria por lo que se podría emplear para diseñar el comparador.

Respuesta: B (212 palabras × 4 bits/palabra)

6.- En un procesador con instrucciones de cero direcciones (con pila), determinar cuál es el número mínimo de
instrucciones que se necesitan para completar la secuencia Y = (X+Y) × Z.
A) 3 B) 5 C) 6 D) Ninguna de las anteriores.

Solución:
De acuerdo con el funcionamiento de este tipo de procesadores una posible secuencia de instrucciones a ejecutar
para implementar la operación Y = (X+Y) × Z sería:

1) Push M[X];
2) Push M[Y];
3) Add;
4) Push M[Z];
5) Mult;
6) Pop M[Y]
Luego el número mínimo de instrucciones es 6.

Respuesta: C (6)
PROBLEMA

Problema (Contestar el problema en lo que resta de este folio por delante y por detrás como máximo):

Se dispone de un PC en el cual el bus de direcciones tiene 32 bits y el ancho de palabra es de 64 bits. El mapa de
memoria de este PC tiene dos secciones:
El área conocida como memoria convencional (los primeros 640Kbytes de memoria), utilizada principalmente
por el sistema operativo y programas residentes.
El área de memoria superior, situada a continuación, hasta ocupar 1 Mbyte. Esta área está reservada para
adaptadores hardware y la ROM BIOS, entre otros.

Los primeros 1024 Kbytes de este computador (128 Kpalabras × 64 bits) se distribuyen de la siguiente manera:
640 Kbytes de memoria RAM (80 Kpalabras × 64 bits)
384 Kbytes de memoria ROM (48 Kpalabras × 64 bits)
Sabiendo que se dispone de módulos de memoria de las siguientes características:

Módulos RAM Módulos ROM


2 Kpalabras × 16 bits 16 Kpalabras × 8 bits
32 Kpalabras × 32 bits 16 Kpalabras × 16 bits
64 Kpalabras × 16 bits 64 Kpalabras × 1 bit

Se pide:
A) (0.5 ptos) Analizar si se podría diseñar un mapa de memoria con el tipo de pastillas disponibles. En el
caso de que no sea posible, proponer otra opción.
B) (1 pto) Indicar cuántos módulos de memoria y de qué características serían necesarios para diseñar el
mapa de memoria, utilizando el menor número de pastillas posible.
C) (1.5 ptos) Realizar el diseño del mapa de memoria de modo que la memoria RAM ocupe las posiciones
inferiores de memoria y a continuación esté situada la memoria ROM. Dibujar el esquema del mapa de
memoria resultante.

Solución:

A) El bus de direcciones tiene 32 líneas, lo cual permite direccionar hasta 2 32 = 4Gpalabras de memoria. En el
caso propuesto se trata de realizar una memoria de 128Kpalabras, para lo cual sólo son necesarias 17 líneas, ya
que 217 = 128 Kpalabras.
Por otro lado, también hay que comprobar que el bus de datos proporciona el ancho de palabra suficiente. El bus
de datos tiene 64 bits de ancho de palabra y la palabra de memoria es de 64 bits.
Por tanto, sí, es posible diseñar dicho mapa de memoria.

B)
Para la memoria RAM, se dispone de los siguientes módulos de memoria:
2 Kpalabras × 16 bits
32 Kpalabras × 32 bits
64 Kpalabras × 16 bits

Realizando los siguientes cálculos:


Para la memoria ROM, se dispone de los siguientes módulos de memoria:
16 Kpalabras × 8 bits
16 Kpalabras × 16 bits
64 Kpalabras × 1 bit
Realizando los siguientes cálculos:

Utilizando el menor número de módulos posibles, el mapa de memoria quedaría definido por las siguientes
pastillas de memoria:
6 RAM de 32 Kpalabras × 32 bits, distribuidos en 3 filas y 2 columnas.
12 ROM de 16 Kpalabras × 16 bits, distribuidos en 3 filas y 4 columnas.

C) Para diseñar el mapa de memoria, es preciso averiguar el número de líneas que se necesitan para direccionar
cada pastilla de memoria:
Módulos RAM de 32 Kpalabras × 32 bits:
32 Kpalabras ≤ 2n para direccionar 32 Kpalabras se necesitan n = 15 bits, es decir, las líneas A0..A14, para cada
una de las pastillas de memoria RAM.
Las pastillas de la última fila de memoria RAM no se utilizarán completamente, sino que sólo será preciso utilizar
las primeras 16 Kpalabras de dichos módulos de memoria.
Módulos ROM de 16 Kpalabras × 16 bits:
16 Kpalabras ≤ 2n para direccionar 16 Kpalabras se necesitan n = 14 bits, es decir, las líneas A0..A13, para cada
una de las pastillas de memoria ROM.
En este caso se utilizan completamente todos los módulos de memoria.

Además, por el apartado A), sabemos que se necesitan 17 líneas para direccionar el primer Mbyte del mapa de
memoria propuesto. Por tanto, el mapa de memoria queda de la siguiente manera:
A continuación se muestra un mapa de memoria simplificado, puesto que se ha utilizado un solo decodificador,
que permite seleccionar únicamente la zona de memoria requerida en el problema. Además, por simplicidad, se
han eliminado las líneas de lectura/escritura para la memoria RAM y la línea de lectura para la memoria ROM.
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo C.
1.- Se dispone de módulos de memoria ROM que tienen una capacidad 24n palabras × (n+1) bits/palabra. ¿Cuál
es el número mínimo de módulos de este tipo necesarios para diseñar un circuito combinacional que sea capaz
de sumar 3 números de 2n bits cada uno?
A) 24n +1 módulos. B) 22n +2 módulos. C) 22n +1 módulos. D) Ninguna de las anteriores.
2.- Se dispone de un procesador de 16 bits con 28 instrucciones. El código de una instrucción de bifurcación es
4932 en hexadecimal. El contenido del PC tras la ejecución de la instrucción es 400 (valor expresado en
decimal). ¿Qué valor expresado en decimal almacenaba el PC en estos dos instantes de tiempo?
I. Antes de la ejecución de la instrucción.
II. Durante la ejecución de la instrucción, tras finalizar la decodificación.
A) 94 y 94. B) 94 y 400. C) 932 y 400. D) 932 y 932.
3.- Realizar el diseño del diagrama de estados de un sumador de dos números de 1 bit utilizando tan sólo 2
estados. Indicar en ese caso las ecuaciones del bit de suma (S) y del bit de acarreo (C), llamando X al primer
número, Y al segundo y Q al bit del biestable.
A) S = notQ (X xor Y) + Q (X xor notY) y C = Q.
B) S = notQ (X xor notY) + Q (X xor notY) y C = notQ.
C) S = notQ (X xor Y) + Q (not X xor notY) y C = Q.
D) Ninguna de las anteriores.

4.- La capacidad de almacenamiento total en bits que se necesita para implementar una memoria caché de
correspondencia directa de 64 Kbytes (216 bytes) de datos, bloques de 4 bytes y direcciones de 32 bits es:
Nota: Considerar que cada bloque de la memoria caché necesita un campo de etiqueta (del tamaño adecuado).
A) 512 Kbits. B) 768 Kbits. C) 560 Kbits. D) 704 Kbits.
5.- Una memoria caché con correspondencia directa consta de 256 bloques con 64 bytes por bloque. La
memoria principal tiene una capacidad de 4Mbytes (222 bytes). A la dirección de memoria principal, expresada
en binario, 1101000000001101110000, ¿qué bloque, expresado en decimal, le corresponde?:
A) 6. B) 3. C) 13. D) Ninguna de las anteriores.
6.- Se pretenden utilizar dos sistemas de Entrada/Salida (E/S) diferentes en un proceso de transferencia. El
primer sistema (sistema A) puede soportar 1000 operaciones de E/S por segundo y el segundo sistema (sistema
B) 750 operaciones de E/S por segundo. Ambos sistemas utilizan el mismo procesador, que ejecuta 50 millones
de instrucciones por segundo. Suponer que cada transferencia requiere 5 operaciones de E/S y que cada
operación de E/S requiere 10.000 instrucciones. Ignorando el tiempo de respuesta y suponiendo que las
transferencias se pueden solapar arbitrariamente, ¿cuál es la máxima tasa de transferencia por segundo que
puede darse en cada caso?
A) Sistema A: 250 transferencias/s y Sistema B: 300 transferencias/s.
B) Sistema A: 150 transferencias/s y Sistema B: 225 transferencias/s.
C) Sistema A: 180 transferencias/s y Sistema B: 135 transferencias/s.
D) Ninguna de las anteriores.
7.- Con respecto a la llamada de un subprograma S dentro de un programa P en el que se utiliza una pila para
almacenar las direcciones de retorno, indique si las siguientes afirmaciones son verdaderas:
I. Cuando se ejecuta CALL S primeramente se almacena el contenido del PC en la pila, a continuación se
incrementa el puntero de pila, y finalmente se transfiere el control al subprograma S.
II. Cuando se ejecuta RET, se transfiere el contenido de la pila al PC y a continuación se incrementa el puntero
de pila.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

8.- Calcular la capacidad mínima que debe tener un módulo de memoria ROM, capaz de implementar un
sumador binario que sume un número A de 6 bits con otro número B de 3 bits.
A) 29 palabras × 7 bits/palabra. B) 27 palabras × 9 bits/palabra.
C) 29 palabras × 9 bits/palabra. D) Ninguna de las anteriores.

Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.


Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):

El mapa de memoria de un procesador con bus de direcciones de 20 bits y bus de datos de 8 bits está ocupado
por 2 módulos de memoria RAM de 64Kbytes × 8 bits y uno de memoria ROM de 128 Kbytes × 8 bits. Se desea
que las posiciones de memoria más bajas estén ocupadas por la memoria ROM y que inmediatamente a
continuación se sitúe la memoria RAM. Diseñar el circuito de decodificación suponiendo que las señales de
“selección de chip” CS se activan en bajo, realizando para ello los siguientes apartados:

A) (2 ptos) Proponer un mapa de memoria que utilice los módulos y especificaciones indicados en el
enunciado.
B) (2 ptos) Diseñar el circuito de decodificación pedido, indicando qué función realiza cada uno de los
elementos que lo componen.
SOLUCIONES

1.- Se dispone de módulos de memoria ROM que tienen una capacidad 24n palabras × (n+1) bits/palabra. ¿Cuál
es el número mínimo de módulos de este tipo necesarios para diseñar un circuito combinacional que sea capaz
de sumar 3 números de 2n bits cada uno?
A) 24n +1 módulos. B) 22n +2 módulos. C) 22n +1 módulos. D) Ninguna de las anteriores.

Solución

Para sumar 3 números de 2n bits cada uno, hacen falta un total de 2n+2 bits para almacenar el resultado. El
tamaño de la memoria necesaria para almacenar la suma será por tanto de 22n +2n +2n palabras, es decir 26n
palabras de 2n+2 bits cada una de ellas.

(26n × (2n+2)) / (24n × (n+1)) = (22n × 2) = 22n +1 módulos memoria ROM.

Respuesta: C (22n+1 módulos).

2.- Se dispone de un procesador de 16 bits con 28 instrucciones. El código de una instrucción de bifurcación es
4932 en hexadecimal. El contenido del PC tras la ejecución de la instrucción es 400 (valor expresado en
decimal). ¿Qué valor expresado en decimal almacenaba el PC en estos dos instantes de tiempo?
I. Antes de la ejecución de la instrucción.
II. Durante la ejecución de la instrucción, tras finalizar la decodificación.
A) 94 y 94. B) 94 y 400. C) 932 y 400. D) 932 y 932.

Solución

Como el número de instrucciones es 28, son necesarios 5 bits para el código de instrucción y 11 (= 16 - 5) se
corresponden con el operando. En este caso, si pasamos la instrucción en hexadecimal a binario se obtiene:
(0100100100110010). Entonces, el operando (11 bits menos significativos) en decimal es 306. Por lo tanto, si
el salto de bifurcación es a la dirección 306, y actualmente el PC contiene el valor 400, la dirección de origen
es 400-306=94.

Por otro lado, como después de la fase de decodificación, el PC ya apunta a la dirección de memoria de la
siguiente instrucción, su contenido será 400.

Respuesta: B (94 y 400).

3.- Realizar el diseño del diagrama de estados de un sumador de dos números de 1 bit utilizando tan sólo 2
estados. Indicar en ese caso las ecuaciones del bit de suma (S) y del bit de acarreo (C), llamando X al primer
número, Y al segundo y Q al bit del biestable.
A) S = notQ (X xor Y) + Q (X xor notY) y C = Q.
B) S = notQ (X xor notY) + Q (X xor notY) y C = notQ.
C) S = notQ (X xor Y) + Q (not X xor notY) y C = Q.
D) Ninguna de las anteriores.

Solución

El primer estado S0 será el estado sin acarreo, y el segundo estado S1 el estado con acarreo.
En el primer estado con entrada 00 nos quedamos en el mismo estado y la salida es 0. Con entrada 01 o 10 nos
quedamos en el mismo estado y la salida es 1 y con entrada 11, cambiamos de estado al segundo y la salida es
0.

En el segundo estado con entrada 00 cambiamos de estado al primero y la salida es 1. Con entrada 01 o 10 nos
quedamos en el segundo estado y la salida es 0 y con entrada 11, nos quedamos en el segundo estado y la salida
es 1.
Por tanto se necesita 1 único biestable donde Q = 0 es S0 y Q = 1 es S1.

Q X Y Q’ S
0 0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
1 0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 1

Respuesta: A (S = notQ (X xor Y) + Q (X xor notY) y C = Q)

4.- La capacidad de almacenamiento total en bits que se necesita para implementar una memoria caché de
correspondencia directa de 64 Kbytes (216 bytes) de datos, bloques de 4 bytes y direcciones de 32 bits es:
Nota: Considerar que cada bloque de la memoria caché necesita un campo de etiqueta (del tamaño adecuado).
A) 512 Kbits. B) 768 Kbits. C) 560 Kbits. D) 704 Kbits.

Solución

Hay que determinar el número de bits que contienen los 3 campos (etiqueta, bloque y palabra) en los que se
divide el formato de la dirección de Mp en una memoria caché con correspondencia directa.

El número total de bits para direccionar a la Mp, según los datos del problema es de: n = 32 bits. Como el
tamaño del bloque es de 4 bytes, entonces el número de bloques en los que se divide la Mc es:

C = (64 Kbytes)/(4 bytes/bloque) = 16 Kbloques.


Esto implica que el campo bloque tiene una longitud en bits de: b = log2(C) = log2(214) = 14.

Como el número de bytes/bloque es k = 4, esto implica que el campo palabra tiene una longitud en bits de:
p = log2(k) = log2(22) = 2.

A partir de estos datos podemos ya determinar el número de bits que contiene el campo etiqueta que es de:

e = n – p – b = 32 – 2 – 14 = 16 bits.

Luego la capacidad de almacenamiento total en bits que se necesita para implementar esta memoria caché es
de:

64 Kbytes  8 bits/byte + 16 Kbloques  16 bits para la etiqueta/bloque = 768 Kbits

Luego la respuesta correcta es la B

Respuesta: B (768 Kbits.)

5.- Una memoria caché con correspondencia directa consta de 256 bloques con 64 bytes por bloque. La
memoria principal tiene una capacidad de 4Mbytes (222 bytes). A la dirección de memoria principal, expresada
en binario, 110100000000110000, ¿qué bloque, expresado en decimal, le corresponde?:
A) 6. B) 3. C) 13. D) Ninguna de las anteriores.
Solución

Hay que determinar el número de bits que contienen los 3 campos (etiqueta, bloque y palabra) en los que se
divide el formato de la dirección de Mp en una memoria caché con correspondencia directa.

Como la capacidad de la memoria principal es de 4M bytes (222), esto implica que el número total de bits para
direccionar a la Mp es de: n = 22 bits.

Como el número de bloques que tiene la caché es C = 256, esto implica que el campo bloque tiene una longitud
en bits de: b = log2(C) = log2(28) = 8.

Como el número de bytes/bloque es k = 64, esto implica que el campo palabra tiene una longitud en bits de: p =
log2(k) = log2(26) = 6.

A partir de estos datos podemos ya determinar el número de bits que contiene el campo etiqueta que es de:
e = n – p – b = 22 – 6 – 8 = 8 bits.

A la dirección de memoria principal, expresada en binario, 1101000000001101110000, le corresponderán


entonces los contenidos siguientes en los diferentes campos de la dirección:
 etiqueta (los 8 bits más significativos de la dirección): 11010000
 bloque (los 8 bits siguientes de la dirección): 00001101
 palabra (los 6 bits menos significativos de la dirección): 110000

Luego el bloque expresado en decimal es el 13 y la respuesta correcta es la C

Respuesta: C (13).

6.- Se pretenden utilizar dos sistemas de Entrada/Salida (E/S) diferentes en un proceso de transferencia. El
primer sistema (sistema A) puede soportar 1000 operaciones de E/S por segundo y el segundo sistema (sistema
B) 750 operaciones de E/S por segundo. Ambos sistemas utilizan el mismo procesador, que ejecuta 50 millones
de instrucciones por segundo. Suponer que cada transferencia requiere 5 operaciones de E/S y que cada
operación de E/S requiere 10.000 instrucciones. Ignorando el tiempo de respuesta y suponiendo que las
transferencias se pueden solapar arbitrariamente, ¿cuál es la máxima tasa de transferencia por segundo que
puede darse en cada caso?
A) Sistema A: 250 transferencias/s y Sistema B: 300 transferencias/s.
B) Sistema A: 150 transferencias/s y Sistema B: 225 transferencias/s.
C) Sistema A: 180 transferencias/s y Sistema B: 135 transferencias/s.
D) Ninguna de las anteriores.

Solución

Cada transferencia requiere 50.000 instrucciones (5 operaciones de E/S × 10.000 instrucciones/operación de


E/S = 50.000 instrucciones).

Por lo tanto, la CPU puede soportar:

(50106 instrucciones/s)/(50103 instrucciones/transferencia) = 103 transferencias/s.

El factor limitante viene impuesto por cada uno de los sistemas de E/S.

El primer sistema puede soportar 1000 operaciones de E/S por segundo o lo que es lo mismo:

200 transferencias/s = ((1000 operaciones de E/S/s) / (5 operaciones de E/S/transferencia))

El segundo sistema puede soportar 750 operaciones de E/S por segundo o lo que es lo mismo:

150 transferencias/s = ((750 operaciones de E/S/s) / (5 operaciones de E/S/transferencia))


Respuesta: D (Ninguna de las anteriores).

7.- Con respecto a la llamada de un subprograma S dentro de un programa P en el que se utiliza una pila para
almacenar las direcciones de retorno, indique si las siguientes afirmaciones son verdaderas:
I. Cuando se ejecuta CALL S primeramente se almacena el contenido del PC en la pila, a continuación se
incrementa el puntero de pila, y finalmente se transfiere el control al subprograma S.
II. Cuando se ejecuta RET, se transfiere el contenido de la pila al PC y a continuación se incrementa el puntero
de pila.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

Ver página 335 del libro de texto, apartado 6.3.5.

I. Es falsa. Primeramente se ha de mover el puntero de pila y después almacenar el contenido del PC. Además
la operación sobre el puntero es decrementar y no incrementar.
II. Es verdadera.
Respuesta: C (I: no, II: sí.)

8.- Calcular la capacidad mínima que debe tener un módulo de memoria ROM, capaz de implementar un
sumador binario que sume un número A de 6 bits con otro número B de 3 bits.
A) 29 palabras × 7 bits/palabra. B) 27 palabras × 9 bits/palabra.
C) 29 palabras × 9 bits/palabra. D) Ninguna de las anteriores.

Solución

El número A de 6 bits se representa como (A5 A4 A3 A2 A1 A0) y el número B de 3 bits como (B2 B1 B0). La
suma de un número de 6 bits con otro de 3 bits requiere de 7 bits para poder realizarse. Los 6 bits menos
significativos del resultado son los bits de suma, y el más significativo el bit de acarreo.

Por otro lado para almacenar la solución utilizando un módulo de memoria tipo ROM, es necesario que éste
tenga una capacidad de memoria de 2(6+3) = 29 palabras.

Por tanto, hace falta un módulo mínimo de memoria ROM de 29 palabras × 7 bits/palabra.

Respuesta: A (29 palabras × 7 bits/palabra).

PROBLEMA
El mapa de memoria de un procesador con bus de direcciones de 20 bits y bus de datos de 8 bits está ocupado
por 2 módulos de memoria RAM de 64Kbytes × 8 bits y uno de memoria ROM de 128 Kbytes × 8 bits. Se desea
que las posiciones de memoria más bajas estén ocupadas por la memoria ROM y que inmediatamente a
continuación se sitúe la memoria RAM. Diseñar el circuito de decodificación suponiendo que las señales de
“selección de chip” CS se activan en bajo, realizando para ello los siguientes apartados:

A) (2 ptos) Proponer un mapa de memoria que utilice los módulos y especificaciones indicados en el
enunciado.
B) (2 ptos) Diseñar el circuito de decodificación pedido, indicando qué función realiza cada uno de los
elementos que lo componen.

SOLUCIÓN
A)

El espacio de direccionamiento, que es de 1 Mbyte, consta de direcciones de 20 bits y se subdivide, a partir de


los bits más significativos del bus de direcciones (A19, A18, A17, …), en regiones más pequeñas hasta que se
alcancen las capacidades de los chips de memoria (ver la primera Figura).

Figura Mapa de memoria

Se determinan las expresiones de las entradas de “selección de chip” (CSx) de los diferentes módulos en
función de los bits del bus de direcciones que delimitan la región del espacio de direccionamiento donde se
sitúa el contenido del módulo de memoria de acuerdo con las especificaciones del problema teniendo en cuenta
que las señales de “selección de chip” CS se activan en bajo

Del mapa de memoria de la figura se sigue que cuando las líneas de dirección A19, A18 y A17 valgan 000 se
deberá activar la señal de selección del módulo ROM. Como se activa en baja se tiene que:

CS ROM  A19 A18 A17  


 CS ROM  A19 A18 A17  A19  A18  A17

Análogamente cuando las líneas de dirección A19, A18, A17 y A16 valgan 0010 se deberá activar la señal de
selección del primer módulo RAM. Como se activa en baja se tiene que:

CS RAM 1  A19 A18 A17 A16  


 CS RAM 1  A19 A18 A17 A16  A19  A18  A17  A16

Finalmente cuando las líneas de dirección A19, A18, A17 y A16 valgan 0011 se deberá activar la señal de
selección del segundo módulo RAM. Como se activa en baja se tiene que

 
CS RAM 2  A19 A18 A17 A16  CS RAM 2  A19 A18 A17 A16  A19  A18  A17  A16

B)

Se implementa el sistema de decodificación usando los bits más significativos del bus de direcciones para
activar las líneas de control de “selección de chip”. El bus de direcciones de los módulos de memoria se
conecta a los bits menos significativos del bus de direcciones del procesador. El bus de datos de los módulos se
conecta al del procesador (ver segunda Figura).

Circuito de decodificación
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.
1.- Calcular el porcentaje de aprovechamiento de la capacidad total de la memoria que se usa para diseñar un
circuito combinacional que multiplica dos números binarios de 5 bits y 4 bits respectivamente, partiendo de
módulos de memoria ROM de 26 palabras × 6 bits/palabra.
A) Un aprovechamiento inferior al 50%.
B) Un aprovechamiento comprendido entre el 50% y el 80%.
C) Un aprovechamiento superior al 80%.
D) Ninguna de las anteriores.
2.- Se considera un procesador que dispone de 20 líneas de direcciones (A19 - A0). Para la construcción de su
unidad de memoria se dispone de módulos de 32K palabras, utilizándose las líneas más significativas (A19 -
A17) para la selección de cada módulo. En el mapa de memoria, las direcciones 5FFFF y 80000 (en notación
hexadecimal) se encuentran respectivamente en los módulos:
A) 3 y 4. B) 2 y 3. C) 2 y 4. D) Ninguna de las anteriores.
Nota: Los sucesivos módulos de memoria se comienzan a numerar desde el módulo 0, que corresponde a las
direcciones más bajas de memoria
3.- Un computador tiene conectado un ratón cuya rutina de actualización de su posición y posterior localización
del puntero en la pantalla requiere de 2000 ciclos para su ejecución. Esta rutina debe ejecutarse al menos 30
veces para poder actualizar la posición del ratón en la pantalla. Si el computador tiene una frecuencia de
2,7 GHz, indicar en que rango se encuentra el porcentaje de tiempo que dedica el computador a ejecutar esta
rutina.
A) Menor que 0,05%. B) Mayor que 0,05% y menor que 0,5%.
C) Mayor que 0,5% y menor que 1%. D) Ninguna de las anteriores.
4.- El siguiente algoritmo describe una determinada operación de un sistema digital:
1: Declaración: A[8], B[8], Cont[3]; A1 y A0 son los dos bits menos significativos del
2: A  Bus-Entrada; registro A. Si inicialmente se cargan los registros A y
3: B Bus-Entrada; B desde el bus de entrada con los valores 00010011 y
4: for Cont = 0 to 2 do 11100011 respectivamente, ¿cuáles son los valores
5: if A1 A0  0 1 then contenidos en A y B al finalizar el algoritmo?
6: B 0; A) A = 01001100; B =11100011.
7: endif; B) A = 01001100; B =00000000.
8: Despl.CerradoDcha(A); C) A = 00100110; B =00000000.
9: Despl.CerradoDcha(A); D) Ninguna de las anteriores.
10: endfor;
11: Bus B;
12: Parar;
5.- Dada una memoria caché de tamaño 32 bytes que utiliza correspondencia directa, indicar en qué bloque se
localiza el byte 36 de la memoria principal.
I. Si los bloques tienen un tamaño de 4 bytes.
II. Si los bloques tienen un tamaño de 8 bytes.
A) I: 1, II: 4. B) I: 1, II: 0. C) I: 4, II: 0. D) I: 4, II: 1.
6.- Un bus síncrono tiene un ancho de banda de 5,56 Mbytes/s (1Mbyte= 106 bytes). Sabiendo que multiplexa
16 líneas de datos y que el tiempo de acceso a memoria es de 240 ns en el proceso de lectura, ¿cuál es el tiempo
de ciclo del bus?
A) 80 ns. B) 40 ns. C) 60 ns. D) 30 ns.

7.- Indique si las siguientes afirmaciones son verdaderas:


I. En un procesador de n direcciones todas sus instrucciones deben tener n direcciones explícitas.
II. En los procesadores de pila puede haber instrucciones con una dirección explícita.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

8.- Un ordenador con 24 líneas de dirección tiene una memoria de 16Mbytes (224 bytes) y utiliza E/S aislada de
memoria. Si cada periférico ocupa 8 direcciones, ¿cuál es el número máximo de periféricos que pueden
conectar a este ordenador?
A) 218. B) 221. C) 220. D) Ninguna de las anteriores.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


Se tiene un computador con una memoria caché que utiliza correspondencia directa. Inicialmente la memoria
caché está vacía, consta de 16 bytes por bloque (4 palabras) y un tamaño total de 16 palabras. Dada la siguiente
secuencia de referencias a palabras de memoria:

1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4, 43, 5, 6, 9, 17

A) (1.5 ptos) Mostrar los aciertos y los fallos de la memoria caché.


B) (1 pto) Mostrar el contenido final de la memoria caché.
C) (1.5 ptos) Calcular la tasa de fallos y la tasa de aciertos.
SOLUCIONES

1.- Calcular el porcentaje de aprovechamiento de la capacidad total de la memoria que se usa para diseñar un
circuito combinacional que multiplica dos números binarios de 5 bits y 4 bits respectivamente, partiendo de
módulos de memoria ROM de 26 palabras × 6 bits/palabra.
A) Un aprovechamiento inferior al 50%.
B) Un aprovechamiento comprendido entre el 50% y el 80%.
C) Un aprovechamiento superior al 80%.
D) Ninguna de las anteriores.

Solución
Con un número de 5 bits se representa como máximo el número 31 y con un número de 4 bits el número 15, por
tanto, el mayor número que se puede representar es 465 (31×15), para lo cual se necesitan 9 bits. Este será el
número de bits necesario para almacenar la palabra.

Para almacenar todas las posibles palabras para realizar la multiplicación hacen falta 25+4 palabras. Con
módulos como los disponibles hacen falta 8 filas de este tipo de módulos (29 / 26 = 23) y en cada una de estas
filas se necesitan 2 módulos, por tanto un total de 16 módulos.

Porcentaje = [(29 × 9) / (16 × (26 × 6))] × 100 = 75 %

Respuesta : B (Un aprovechamiento comprendido entre el 50% y el 80%).


2.- Se considera un procesador que dispone de 20 líneas de direcciones (A19 - A0). Para la construcción de su
unidad de memoria se dispone de módulos de 32K palabras, utilizándose las líneas más significativas (A19 -
A17) para la selección de cada módulo. En el mapa de memoria, las direcciones 5FFFF y 80000 (en notación
hexadecimal) se encuentran respectivamente en los módulos:
A) 3 y 4. B) 2 y 3. C) 2 y 4. D) Ninguna de las anteriores.
Nota: Los sucesivos módulos de memoria se comienzan a numerar desde el módulo 0, que corresponde a las
direcciones más bajas de memoria

Solución
La dirección base de un módulo es la dirección de memoria principal que hay que emplear para acceder a la
primera posición de dicho módulo. En este caso concreto las sucesivas direcciones base de cada módulo las
generaremos con valores sucesivos de los bits A19A17, que son los empleados para seleccionar cada módulo, y
el resto de los bits de la dirección, A16..A0, con el valor cero. En la tabla siguiente se muestra el resultado.

Dirección base en binario Dir. base en


A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A hexadecima
0 l
Módulo 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000
Módulo 1 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20000
Módulo 2 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40000
Módulo 3 0 1 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60000
Módulo 4 1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80000
Módulo 5 1 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A0000
Módulo 6 1 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 0 0 00
Módulo 7 1 1 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 E 0 0 00

Respuesta: C (módulos 2 y 4).

3.- Un computador tiene conectado un ratón cuya rutina de actualización de su posición y posterior localización
del puntero en la pantalla requiere de 2000 ciclos para su ejecución. Esta rutina debe ejecutarse al menos 30
veces para poder actualizar la posición del ratón en la pantalla. Si el computador tiene una frecuencia de
2,7 GHz, indicar en que rango se encuentra el porcentaje de tiempo que dedica el computador a ejecutar esta
rutina.
A) Menor que 0,05%. B) Mayor que 0,05% y menor que 0,5%.
C) Mayor que 0,5% y menor que 1%. D) Ninguna de las anteriores.

Solución

2000 ciclos  30 = 60000 ciclos

60000 ciclos / 2,7 109 Hz = 22,22 µs

(22,22 µs /106 (µs /s)) 100% = 0,00222 %

Respuesta : A (Menor que 0,05%).

4.- El siguiente algoritmo describe una determinada operación de un sistema digital:


1: Declaración: A[8], B[8], Cont[3]; A1 y A0 son los dos bits menos significativos del
2: A  Bus-Entrada; registro A. Si inicialmente se cargan los registros A y
3: B Bus-Entrada; B desde el bus de entrada con los valores 00010011 y
4: for Cont = 0 to 2 do 11100011 respectivamente, ¿cuáles son los valores
5: if A1 A0  0 1 then contenidos en A y B al finalizar el algoritmo?
6: B 0; A) A = 01001100; B =11100011.
7: endif; B) A = 01001100; B =00000000.
8: Despl.CerradoDcha(A); C) A = 00100110; B =00000000.
9: Despl.CerradoDcha(A); D) Ninguna de las anteriores.
10: endfor;
11: Bus B;
12: Parar;

Solución
Primera iteración del bucle Cont = 0:

Nº instrucción A B
2: A  Bus-Entrada; 00010011 --
3: B Bus-Entrada; 11100011
4: for Cont = 0 to 2 do
5: if A1 A0  0 1 then
6: B 0; 00000000
7: endif;
8: Despl.CerradoDcha(A); 10001001
9: Despl.CerradoDcha(A); 11000100
10: endfor
11:

Segunda iteración del bucle Cont = 1:

Nº instrucción A B
11000100 00000000

4: for Cont = 0 to 2 do
5: if A1 A0  0 1 then
6: B 0; 00000000
7: endif;
8: Despl.CerradoDcha(A); 01100010
9: Despl.CerradoDcha(A); 00110001
10: endfor

Primera iteración del bucle Cont = 2:

Nº instrucción A B
00110001 00000000

4: for Cont = 0 to 2 do
5: if A1 A0  0 1 then
6: B 0; 00000000
7: endif;
8: Despl.CerradoDcha(A); 10011000
9: Despl.CerradoDcha(A); 01001100
10: endfor
Bus B
Respuesta: B (A = 01001100; B =00000000).

5.- Dada una memoria caché de tamaño 32 bytes que utiliza correspondencia directa, indicar en qué bloque se
localiza el byte 36 de la memoria principal.
I. Si los bloques tienen un tamaño de 4 bytes.
II. Si los bloques tienen un tamaño de 8 bytes.
A) I: 1, II: 4. B) I: 1, II: 0. C) I: 4, II: 0. D) I: 4, II: 1.

Solución

I. El número de bloques de la memoria caché es C =32/4 = 8


El byte 36 de la memoria principal se localiza en el bloque j = 9
El número de bloque i asignado en la memoria caché al bloque j de la memoria principal se calcula mediante
la siguiente función de transformación:
i = j módulo C = 9 módulo 8 = 1

II. El número de bloques de la memoria caché es C =32/8 = 4


El byte 36 de la memoria principal se localiza en el bloque j = 4
El número de bloque i asignado en la memoria caché al bloque j de la memoria principal se calcula mediante
la siguiente función de transformación:
i = j módulo C = 4 módulo 4 = 0

Respuesta: B (I: 1, II: 0)

6.- Un bus síncrono tiene un ancho de banda de 5,56 Mbytes/s (1Mbyte= 106 bytes). Sabiendo que multiplexa
16 líneas de datos y que el tiempo de acceso a memoria es de 240 ns en el proceso de lectura, ¿cuál es el tiempo
de ciclo del bus?
A) 80 ns. B) 40 ns. C) 60 ns. D) 30 ns.

Solución

Con el ancho de banda dado y sabiendo que se disponen de 16 líneas (2 bytes), se puede calcular el tiempo de
ejecución de la operación de lectura:
t = 2bytes/ 5,56 Mbytes/s = 0,360 µs= 360 ns
Como se necesitarán dos ciclos adicionales, además de los que se usan en el acceso a memoria, uno para el
direccionamiento y otro para el envío de datos a la CPU, se obtiene la siguiente ecuación para el tiempo de
ciclo del bus:
t = 2x+240=360.
Por tanto x=60 ns, y el número de ciclos para el acceso a memoria es 4.

Respuesta: C (60 ns)

7.- Indique si las siguientes afirmaciones son verdaderas:


I. En un procesador de n direcciones todas sus instrucciones deben tener n direcciones explícitas.
II. En los procesadores de pila puede haber instrucciones con una dirección explícita.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

I. Es Falsa. Por ejemplo, existen operaciones binarias en procesadores con tres direcciones que se especifican
con dos direcciones.
II. Es verdadera. Las operaciones para sacar y meter en la pila tienen explícita una dirección.
Respuesta: C (I: no, II: sí)

8.- Un ordenador con 24 líneas de dirección tiene una memoria de 16Mbytes (224 bytes) y utiliza E/S aislada de
memoria. Si cada periférico ocupa 8 direcciones, ¿cuál es el número máximo de periféricos que puede
conectarse a este ordenador?
A) 218. B) 221. C) 220. D) Ninguna de las anteriores.

Solución

Como es E/S aislada de memoria, el nº de direcciones para acceder a palabras en periféricos es igual al número
total de direcciones disponibles: 224
Como cada periférico ocupa 8 direcciones, el número máximo de periféricos que puede conectarse es:
224 direcciones/(8 direcciones/periférico) = 221 periféricos
Respuesta : B

PROBLEMA
Se tiene un computador con una memoria caché que utiliza correspondencia directa. Inicialmente la memoria
caché está vacía, consta de 16 bytes por bloque (4 palabras) y un tamaño total de 16 palabras. Dada la siguiente
secuencia de referencias a palabras de memoria:

1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4, 43, 5, 6, 9, 17

A) (1.5 ptos) Mostrar los aciertos y los fallos de la memoria caché.


B) (1 pto) Mostrar el contenido final de la memoria caché.
C) (1.5 ptos) Calcular la tasa de fallos y la tasa de aciertos.

Solución

16 bytes por bloque → 2 bits indican la palabra dentro del bloque y 2 bits indican el byte dentro de la palabra
16 palabras en total/4 palabras por bloque → 4 bloques diferentes → 2 bits indican el número de bloque

Referencias a memoria
Referencia Referencia Referencia de byte Acierto/Fallo Nº bloque
de palabra de byte (en binario)

1 4 (0...00000000) (00) (01) (00) Fallo 0


4 16 (0...00000000) (01) (00) (00) Fallo 1
8 32 (0...00000000) (10) (00) (00) Fallo 2
5 20 (0...00000000) (01) (01) (00) Acierto 1
20 80 (0...00000001) (01) (00) (00) Fallo 1
17 68 (0...00000001) (00) (01) (00) Fallo 0
19 76 (0...00000001) (00) (11) (00) Acierto 0
56 224 (0...00000011) (10) (00) (00) Fallo 2
9 36 (0...00000000) (10) (01) (00) Fallo 2
11 44 (0...00000000) (10) (11) (00) Acierto 2
4 16 (0...00000000) (01) (00) (00) Fallo 1
43 172 (0...00000010) (10) (11) (00) Fallo 2
5 20 (0...00000000) (01) (01) (00) Acierto 1
6 24 (0...00000000) (01) (10) (00) Acierto 1
9 36 (0...00000000) (10) (01) (00) Fallo 2
17 68 (0...00000001) (00) (01) (00) Acierto 0

Contenido final de la memoria caché

Nº Bloque Etiqueta Datos (en su lugar


referencia de palabra)
0 0...0000 0001 = 1 17
1 0...0000 0000 = 0 4
2 0...0000 0000 = 0 9
3 - -

El número de accesos total es 16. De los 16 accesos, 10 son fallos y 6 son aciertos, así que la tasa de fallos es de
10/16  100 = 62.5 % de fallos. La tasa de aciertos es 100-tasa de fallos, o también 6/16  100 = 37.5 % de
aciertos.
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.

1.-Dado un procesador que trabaja con un reloj de 50 MHz (50 × 106 Hz) y un CD que transfiere datos a dicho
procesador mediante palabras de 16 bits a una velocidad de 50 KBytes /s (50 × 210 Bytes/s). Si se añade un
controlador de interrupciones que invierte un tiempo de 100 ciclos de reloj en cada transferencia, determinar la
fracción consumida por el procesador cuando el CD está activo.
A) 2%. B) 3%. C) 5,12%. D) Ninguna de las anteriores.
2.- En una memoria caché en la que se realizan 2 accesos, se producen 211 fallos. La memoria caché tiene un
14

tiempo de acceso medio de 6 ns, mientras que el tiempo de acceso medio de la memoria principal es de 90 ns.
Indicar si las siguientes afirmaciones son verdaderas.
I. La tasa de aciertos es del 75%.
II. El tiempo de acceso medio al sistema conjunto memoria principal-memoria caché es de 16,5 ns.
A) I: sí; II: sí. B) I: sí; II: no. C) I: no; II: sí. D) I: no; II: no.
3.- Diseñar una Unidad de Control con 20 estados, que genere 27 señales de control totalmente independientes
y que reciba 5 señales de condición, utilizando para ello una memoria ROM pero minimizando la capacidad de
ésta. En cada estado se utiliza, como máximo, una única condición. Usando un multiplexor con selección por
estado para diseñar esta Unidad de Control sería necesario:
A) Un registro de 5 bits, un MUX 32:1 y una ROM de 26 palabras  32 bits/palabra.
B) Un registro de 20 bits, un MUX 5:1 y una ROM de 25 palabras  48 bits/palabra.
C) Un registro de 5 bits, un MUX 5:1 y una ROM de 26 palabras  32 bits/palabra.
D) Ninguna de las anteriores.
4.- Sea un computador con una palabra de memoria de 28 bits y un repertorio de instrucciones con 12
instrucciones diferentes. Si cada instrucción tiene tres operandos con un modo de direccionamiento directo a
memoria, ¿qué tamaño debe tener el registro contador de programa?
A) 8 bits. B) 12 bits. C) 16 bits. D) Ninguna de las anteriores.
5.- Un procesador dispone de 8 líneas de petición de interrupción numeradas de la 0 a la 7. Las interrupciones
con número bajo tienen mayor prioridad. El procesador comienza a trabajar sin interrupciones pendientes y en
un momento dado se produce la siguiente secuencia de peticiones: 4 7 1 3 0 5 6 4 2 1. Suponiendo que la
gestión de una interrupción tarda un tiempo suficiente como para que se produzcan otras dos interrupciones y
que no hay anidamiento, indicar el orden en que se gestiona la secuencia de peticiones dada.
A) 4 1 0 3 2 1 4 5 6 7 B) 4 7 1 3 0 5 6 4 2 1 C) 4 0 1 1 2 3 4 5 6 7 D) Ninguna de las anteriores.
6.- Con respecto al modo de direccionamiento relativo, indicar si las siguientes afirmaciones son verdaderas:
I. Permite reubicar un programa más fácilmente y cambiar ciertas direcciones sin tener que volver a compilar el
programa.
II. Reduce el número de bits para especificar las direcciones.
A) I: sí; II: sí. B) I: sí; II: no. C) I: no; II: sí. D) I: no; II: no.
7.- Cuál es el tamaño en bytes de una memoria caché con correspondencia asociativa por conjuntos que tiene la
siguiente longitud de sus tres campos: ETIQUETA 20 bits, CONJUNTO 6 bits y PALABRA 6 bits. La caché
tiene 8 bloques por conjunto y su longitud de palabra es de 4 bytes. Nota: 1KBytes = 210 bytes.
A) 256 KBytes. B) 512 KBytes. C) 128 KBytes. D) Ninguna de las anteriores.
8.- Un multiplicador binario de 2 números de 12 bits cada uno se puede realizar con una memoria ROM de la
siguiente capacidad:
A) 212 palabras × 24 bits/palabra. B) 224 palabras × 24 bits/palabra.
C) 224 palabras × 12 bits/palabra. D) 216 palabras × 12 bits/palabra.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


Sea un bus capaz de realizar 500 × 106 transferencias/s, al que está conectado un procesador con un reloj de
500 MHz (500 × 106 Hz). En dicho procesador, se ejecuta un programa que realiza un acceso a datos por cada
4 ciclos de instrucción, siendo de lectura el 80% de los accesos a datos.
Teniendo en cuenta que durante la ejecución de dicho programa se han medido una media de
2,5 ciclos/instrucción, determinar el porcentaje de ocupación del bus durante la ejecución de dicho programa en
los siguientes casos:

A) (2 ptos.) Haciendo uso de un bus multiplexado (es decir en primer lugar se envía la dirección de la que se
quiere leer o donde se quiere escribir y a continuación los datos).
B) (2 ptos.) Haciendo uso de un bus no multiplexado (en lectura se envía primero la dirección por el bus de
direcciones y a continuación se recibe el dato por el bus de datos y en escritura se envía la dirección por el bus
de direcciones a la vez que se envía el dato por el bus de datos).
SOLUCIONES

1.- Dado un procesador que trabaja con un reloj de 50 MHz (50 × 106 Hz) y un CD que transfiere datos a dicho
procesador mediante palabras de 16 bits a una velocidad de 50 KBytes/s (50 × 210 Bytes/s). Si se añade un
controlador de interrupciones que invierte un tiempo de 100 ciclos de reloj en cada transferencia, determinar la
fracción consumida por el procesador cuando el CD está activo.
A) 2%. B) 3%. C) 5,12%. D) Ninguna de las anteriores.

Solución

La velocidad a la cual el CD debe interrumpir cuando está transfiriendo se debe calcular como sigue (Nota,
donde pone int indica interrupcion):

50 KByte / s ciclos ciclos ciclos


 100  2500  210  25,6  105
2 B / int int s s

Y por tanto, la fracción consumida por el procesador será:

25,6  105
 100  5,12%
50  106

La gran diferencia con la E/S programada es que el CD no está leyéndose el 100% del tiempo y por tanto el
dispositivo no perturba a la CPU, al contrario que con la E/S programada, donde la CPU encuesta sin descanso
a los dispositivos.

Respuesta: C)

2.- En una memoria caché en la que se realizan 214 accesos se producen 211 fallos. La memoria caché tiene un
tiempo de acceso medio de 6 ns, mientras que el tiempo de acceso medio de la memoria principal es de 90 ns.
Indicar si las siguientes afirmaciones son verdaderas.
I. La tasa de aciertos es del 75%.
II. El tiempo de acceso medio al sistema conjunto memoria principal-memoria caché es de 16,5 ns.
A) I: sí; II: sí. B) I: sí; II: no. C) I: no; II: sí. D) I: no; II: no.

Solución

Afirmación I. Para calcular la tasa de fallos (tfallos) se puede usar la fórmula:

N .Fallos 211
t fallos   14  2 3  0,125  12,5 %
N . Accesos 2

Con este dato, se puede calcular la tasa de aciertos h = (1- tfallos) = 87.5%, por lo que la afirmación I es falsa.

Afirmación II. Para el cálculo del tiempo de acceso efectivo a memoria se puede emplear la ecuación (2.5) de
la página 102 del libro de teoría:
Ta= h × tcache + (1-h) × tp = 0,875×6 ns + 0,125×90 ns = 5,25 + 11,25 = 16,5 ns

Por lo que la afirmación II es verdadera.

Respuesta: C)

3.- Diseñar una Unidad de Control con 20 estados, que genere 27 señales de control totalmente independientes
y que reciba 5 señales de condición, utilizando para ello una memoria ROM pero minimizando la capacidad de
ésta. En cada estado se utiliza, como máximo, una única condición. Usando un multiplexor con selección por
estado para diseñar esta Unidad de Control sería necesario:
A) Un registro de 5 bits, un MUX 32:1 y una ROM de 26 palabras  32 bits/palabra.
B) Un registro de 20 bits, un MUX 5:1 y una ROM de 25 palabras  48 bits/palabra.
C) Un registro de 5 bits, un MUX 5:1 y una ROM de 26 palabras  32 bits/palabra.
D) Ninguna de las anteriores.

Solución

En el diseño de la Unidad de Control se utilizan los siguientes componentes: Una memoria ROM, un registro y
un multiplexor con selección por estado.

A partir de los datos del enunciado se deduce que:

Variables de estado n = 5 ya que 25 = 32 > 20 estados;


Señales de control: m = 27:
Señales de condición: q = 5;

En base a esos datos, la capacidad de la memoria ROM necesaria es:

C  2 n 1  n  m   2 6  5  27   2 6 pal  32 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 selección por estado, tiene 25 entradas y requiere de 5 señales de selección. Es
decir es un MUX 32:1.

Por lo tanto, la respuesta correcta es la A.

Respuesta: A)

4.- Sea un computador con una palabra de memoria de 28 bits y un repertorio de instrucciones con 12
instrucciones diferentes. Si cada instrucción tiene tres operandos con un modo de direccionamiento directo a
memoria, ¿qué tamaño debe tener el registro contador de programa?
A) 8 bits. B) 12 bits. C) 16 bits. D) Ninguna de las anteriores.

Solución

Para codificar 12 instrucciones son necesarios 4 bits. Sabiendo que cada palabra son 28 bits, tenemos
28-4=24 bits para los tres operandos. Por lo que cada operando son 24 bits/3= 8 bits.

Dado que el contador de programa guarda la dirección en memoria de la siguiente instrucción a ejecutar, debe
ser capaz de almacenar cualquier dirección de memoria, es decir, debe tener un ancho de 8 bits.

27:24 23:16 15:8 7:0


Código Op. Operando 1 Operando 2 Operando 3

Respuesta A)

5.- Un procesador dispone de 8 líneas de petición de interrupción numeradas de la 0 a la 7. Las interrupciones


con número bajo tienen mayor prioridad. El procesador comienza a trabajar sin interrupciones pendientes y en
un momento dado se produce la siguiente secuencia de peticiones: 4 7 1 3 0 5 6 4 2 1. Suponiendo que la
gestión de una interrupción tarda un tiempo suficiente como para que se produzcan otras dos interrupciones y
que no hay anidamiento, indicar el orden en que se gestiona la secuencia de peticiones dada.
A) 4 1 0 3 2 1 4 5 6 7 B) 4 7 1 3 0 5 6 4 2 1 C) 4 0 1 1 2 3 4 5 6 7 D) Ninguna de las anteriores.

Solución

Inicialmente comienza a trabajar con la 4 que es la primera y durante ese periodo se producen las interrupciones
7 y 1, que se ponen a la cola. Al finalizar la 4 atiende la 1, por ser la de mayor prioridad, y en ese intervalo de
tiempo se producen la 3 y la 0. Al finalizar la 1 atiende la 0 y se producen la 5 y la 6. Tras finalizar de atender
la petición 0 atiende la 3 y se producen la 4 y la 2. Después atiende la 2 y se produce la 1 que es la última. Ya
con todas en la cola se ejecutan por orden de prioridad 4 5 6 7.

Por tanto, la respuesta correcta es la A.

Respuesta: A)

6.- Con respecto al modo de direccionamiento relativo, indicar si las siguientes afirmaciones son verdaderas:
I. Permite reubicar un programa más fácilmente y cambiar ciertas direcciones sin tener que volver a compilar el
programa.
II. Reduce el número de bits para especificar las direcciones.
A) I: sí; II: sí. B) I: sí; II: no. C) I: no; II: sí. D) I: no; II: no.

Solución

Ver página 327 del libro de teoría.

Respuesta: A)

7.- Cuál es el tamaño en bytes de una memoria caché con correspondencia asociativa por conjuntos que tiene la
siguiente longitud de sus tres campos: ETIQUETA 20 bits, CONJUNTO 6 bits y PALABRA 6 bits. La caché
tiene 8 bloques por conjunto y su longitud de palabra es de 4 bytes. Nota: 1 Kbyte = 210 bytes.
A) 256 KBytes. B) 512 KBytes. C) 128 KBytes. D) Ninguna de las anteriores.

Solución

Ver la sección 2.5.2 del libro base de teoría. El enunciado indica que la memoria caché interpreta la dirección
de la memoria principal de la forma siguiente:

ETIQUETA 20 bits, CONJUNTO 6 bits, PALABRA 6 bits

El tamaño de la memoria caché se calcula haciendo las siguientes consideraciones:

• Puesto que son necesarios 6 bits para especificar el conjunto, la caché dispone de 26 conjuntos.
• Según se indica en el enunciado, tiene 8 bloques por conjunto = 23 bloques por conjunto.
• Son necesarios 6 bits para direccionar una palabra dentro del bloque, con lo cual tiene 26 palabras en cada
bloque.
• El enunciado indica que la longitud de cada palabra es de 22 bytes.

De todo lo anterior se sigue que el tamaño de la caché es el siguiente:

(26 conjuntos)×(23 bloques/conjunto)×(26 palabras/bloque)×(22 bytes/palabra) = 217 bytes = 128K bytes

Respuesta: C)
8.- Un multiplicador binario de 2 números de 12 bits cada uno se puede realizar con una memoria ROM de la
siguiente capacidad:
A) 212 palabras × 24 bits/palabra. B) 224 palabras × 24 bits/palabra.
C) 224 palabras × 12 bits/palabra. D) 216 palabras × 12 bits/palabra.

Solución

Para conocer el tamaño adecuado de la memoria ROM que se necesita, hay que darse cuenta de que el producto
de un número binario de 12 bits por otro número binario de otros 12 bits, da como resultado un número binario
de 24 bits.

Por tanto la memoria ROM pedida debe ser capaz de almacenar todos los resultados de multiplicar 2 números
binarios de 12 bits. Si el resultado de cada multiplicación ocupa 24 bits, serán 224 los posibles resultados de
llevar a cabo estas multiplicaciones.

Por tanto la ROM necesaria debe tener una capacidad igual a la descrita en la respuesta B.

Respuesta: B)

PROBLEMA

Sea un bus capaz de realizar 500 × 106 transferencias/s, al que está conectado un procesador con un reloj de
500 MHz (500 × 106 Hz). En dicho procesador, se ejecuta un programa que realiza un acceso a datos por cada 4
ciclos de instrucción, siendo de lectura el 80% de los accesos a datos.
Teniendo en cuenta que durante la ejecución de dicho programa se han medido una media de 2,5
ciclos/instrucción, determinar el porcentaje de ocupación del bus durante la ejecución de dicho programa en los
siguientes casos:

A) (2 ptos.) Haciendo uso de un bus multiplexado (es decir en primer lugar se envía la dirección de la que se
quiere leer o donde se quiere escribir y a continuación los datos).
B) (2 ptos.) Haciendo uso de un bus no multiplexado (en lectura se envía primero la dirección por el bus de
direcciones y a continuación se recibe el dato por el bus de datos y en escritura se envía la dirección por el bus
de direcciones a la vez que se envía el dato por el bus de datos).

SOLUCION

Independientemente del tipo de bus se deben realizar los siguientes cálculos.

A partir de la frecuencia de reloj del procesador y sabiendo que el número medio de ciclos por instrucción
empleado en la ejecución del programa es 2,5, se calcula el número de instrucciones ejecutadas por segundo:

(500 × 106 ciclos/s)/(2,5 ciclos/inst) = 200 × 106 inst/s

El número de ciclos de instrucción por segundo es, por lo tanto 200 × 106.

Ya que se realiza un acceso a datos por cada 4 ciclos de instrucción, el número de peticiones de acceso a datos
es de 50 × 106, de las que el 80% son lecturas. Por tanto, en total habrá que tener en cuenta las siguientes
peticiones:

200 × 106 + 0,8 × 50 × 106 = 240 × 106 lecturas/s


0,2 × 50 × 106 = 10 × 106 escrituras/s
A) Si el bus está multiplexado, cada petición necesita 2 ciclos del bus, empleándose:

2 × 250 × 106 = 500 × 106 ciclos/s

El porcentaje de ocupación del bus sería del 100 %

B) Si el bus no está multiplexado, las peticiones de lectura necesitarían 2 ciclos de bus, mientras que las de
escritura solo uno, por lo que en total se emplearían:

2 × 240 × 106 + 1 × 10 × 106 = 490 × 106 ciclos/s

En este caso, el porcentaje de ocupación del bus sería del 98 % (490/500)


MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo C.
1.- Se dispone de un banco de tres registros R1, R2 y R3 que contienen los datos 29, 25 y 27 respectivamente.
El contenido de un conjunto de posiciones de memoria es el que aparece en la tabla adjunta.
2510 87 Indicar cuál es el resultado de ejecutar la siguiente instrucción ADD R1, R3, (R2),
2610 986 sabiendo que el primer operando de la instrucción es el destino. Nota: La notación (Ri)
2710 75 hace referencia al modo de direccionamiento indirecto a través de registro.
2810 876 A) R1114 B) R152 C) R1162 D) Ninguna de las anteriores.
2910 63
2.- Considerar dos microprocesadores con buses de datos de 8 y 16 bits, respectivamente. Los dos
procesadores son idénticos en todo lo demás, y sus ciclos de bus son iguales. Suponiendo que la mitad de las
instrucciones y los operandos son de 1 byte, y la otra mitad son de 2 bytes, ¿en qué factor difieren las
velocidades de transferencia de los dos microprocesadores?
A) No difieren. B) 1,33. C) 1,5. D) Ninguna de las anteriores.
3.- Se dispone de una memoria asociativa de n palabras y 12 bits/palabra. Indicar cuál de los siguientes valores
de los registros de argumento (A) y máscara (K) proporcionan un 1 en todos aquellos bits del registro de marca
(M) cuya celda de memoria contenga un número impar, y un 0 en caso contrario. Nota: Se considera que el cero
es un número par y se supone que todos los bits del registro de validez están a 1 por lo que todas las palabras de
la memoria están operativas.
A) A=100000000010, K=000000000001 B) A=100000000001, K=100000000000
C) A=101111000011, K=000000000001 D) Ninguna de las anteriores.
4.- En un procesador con instrucciones de cero direcciones (con pila), determinar el número mínimo de
instrucciones que se necesitan para completar la operación Y = X×Y+Z.
A) 3. B) 5. C) 6. D) Ninguna de las anteriores.
5.- Se desea implementar el diagrama ASM de la siguiente figura utilizando un registro y una memoria ROM.

S0 S1 01 S2 10 S3 11
1
Inicio Cond
0 0 1

Suponiendo que para cada estado se debe generar una sola señal de control (c0 en S0, c1 en S1, c2 en S2 y c3 en
S3), indicar los tamaños que deben tener el registro y la memoria ROM mínima necesaria, respectivamente:
A) 2 bits y 16 palabras × 6 bits/palabra. B) 4 bits y 16 palabras × 4 bits/palabra.
C) 4 bits y 8 palabras × 6 bits/palabra. D) Ninguna de las anteriores.
6.- Se dispone de un procesador que trabaja con un reloj de 50 MHz (50 × 106 Hz) y de un disco duro que
transfiere datos en bloques de 4 bytes a una velocidad de 2 MByte/s (2 × 106 Byte/s). A este sistema se le añade
un controlador de DMA, cuya transferencia utiliza 1000 ciclos de reloj del procesador, y el tratamiento de
interrupción tras la finalización de dicha transferencia necesita 500 ciclos de reloj. Si la transferencia media del
disco es de 4KByte (4 × 103 Byte), determinar la fracción consumida por el procesador cuando el disco duro
está activo.
A) 15%. B) 1,5%. C) 5%. D) Ninguna de las anteriores.
n
7.- Cuántos módulos de memoria ROM de 2 palabras × n bits/palabra serán necesarios para diseñar un circuito
combinacional que eleve al cubo un número X de n bits.
A) 3. B) 2n+2. C) 3×22n. D) Ninguna de las anteriores.

8.- Se desea construir un multiplicador binario que multiplique dos números de 4 y 8 bits, respectivamente.
Para ello se utilizan exclusivamente dos módulos ROM de 256 palabras × 8 bits/palabra y sumadores binarios
paralelos de 4 bits. ¿Cuál es el mínimo número necesario de sumadores de este tipo?
A) 4. B) 3. C) 2. D) Ninguna de las anteriores.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):

Un computador dispone de un sistema de memoria central constituida por una memoria principal Mp de
64K palabras y una memoria caché Mc de 4K palabras, con bloques de 64 palabras. En él se ejecuta 9 veces
consecutivas un bucle de programa que recorre secuencialmente desde la dirección 0 de memoria a la dirección
4351. Si se supone inicialmente vacía la memoria caché y que el tiempo de acceso a Mp es 4 veces superior al
de Mc, calcular el número de fallos, aciertos y tiempo medio de acceso en los siguientes supuestos:
A) (2 ptos) Memoria caché con correspondencia directa.
B) (2 ptos) Memoria caché con correspondencia asociativa por conjuntos de 4 conjuntos, que utiliza la
política de reemplazamiento LRU.

SOLUCIONES
1.- Se dispone de un banco de tres registros R1, R2 y R3 que contienen los datos 29, 25 y 27 respectivamente.
El contenido de un conjunto de posiciones de memoria es el que aparece en la tabla adjunta.
2510 87 Indicar cuál es el resultado de ejecutar la siguiente instrucción ADD R1, R3, (R2),
2610 986 sabiendo que el primer operando de la instrucción es el destino. Nota: La notación (Ri)
2710 75 hace referencia al modo de direccionamiento indirecto a través de registro.
2810 876 B) R1114 B) R152 C) R1162 D) Ninguna de las anteriores.
2910 63

Solución

La instrucción ADD R1, R3, (R2) usa dos modos de direccionamiento: el directo a registro y el indirecto a
registro.

El primer operando es el contenido del registro R3: por tanto, operando1 = 27. El segundo operando es el
contenido de la posición de memoria almacenada en R2: por tanto, operando2 = 87. Como consecuencia, el
resultado de la operación de suma se almacenará en R1 y será 27+87 = 114.

Respuesta: A (R1114).

2.- Considerar dos microprocesadores con buses de datos de 8 y 16 bits, respectivamente. Los dos
procesadores son idénticos en todo lo demás, y sus ciclos de bus son iguales. Suponiendo que la mitad de las
instrucciones y los operandos son de 1 byte, y la otra mitad son de 2 bytes, ¿en qué factor difieren las
velocidades de transferencia de los dos microprocesadores?
A) No difieren. B) 1,33. C) 1,5. D) Ninguna de las anteriores.

Solución

Supóngase que se realizan 100 transferencias de operandos e instrucciones, de las cuales 50 son de un byte y 50
son de 2 bytes de longitud. El microprocesador de 8 bits necesita un número de ciclos igual a:

Nº de ciclos = 1 ciclo × 50 instrucciones de 1 byte + 2 ciclos × 50 instrucciones de 2 bytes = 150 ciclos.

En cambio, el microprocesador de 16 bits necesita un número de ciclos igual a:

Nº de ciclos = 1 ciclo × 50 instrucciones de 1 byte + 1 ciclo × 50 instrucciones de 2 bytes = 100 ciclos.

Por lo tanto, la velocidad de transferencia de datos difiere en un factor de 1,5. (Que se obtiene de dividir el
número de ciclos necesarios para el primero entre el número de ciclos necesario para el segundo).

Respuesta: C (1,5)

3.- Se dispone de una memoria asociativa de n palabras y 12 bits/palabra. Indicar cuál de los siguientes valores
de los registros de argumento (A) y máscara (K) proporcionan un 1 en todos aquellos bits del registro de marca
(M) cuya celda de memoria contenga un número impar, y un 0 en caso contrario. Nota: Se considera que el cero
es un número par y se supone que todos los bits del registro de validez están a 1 por lo que todas las palabras de
la memoria están operativas.
A) A=100000000010, K=000000000001 B) A=100000000001, K=100000000000
C) A=101111000011, K=000000000001 D) Ninguna de las anteriores.

Solución
Véase el apartado 2.4 del texto base de teoría.

Un número binario es impar cuando su bit menos significativo es igual a 1. Es decir, en el caso de números de
12 bits, cuando es de la forma XXXX XXXX XXX1, donde X puede ser 0 ó 1.

Según se indica en el enunciado, cuando la celda de memoria contenga un número impar (es decir, un número
con el bit menos significativo igual a 1) en el correspondiente bit del registro de marca debe obtenerse un 1. Por
el contrario, cuando el número sea par (su bit menos significativo sea 0), el correspondiente bit del registro de
marca debe ser 0. Para ello, los registros de argumento (A) y máscara (K) deben tomar los valores siguientes:

A = XXXX XXXX XXX1 (donde X puede valer 0 ó 1)


K = 0000 0000 0001

En particular, los valores dados en la respuesta C son válidos:

A = 1011 1100 0011


K = 0000 0000 0001

Respuesta: C (A = 1011 1100 0011, K = 0000 0000 0001)

4.- En un procesador con instrucciones de cero direcciones (con pila), determinar el número mínimo de
instrucciones que se necesitan para completar la operación Y = X×Y+Z.
A) 3. B) 5. C) 6. D) Ninguna de las anteriores.

Solución

De acuerdo con el funcionamiento de este tipo de procesadores una posible secuencia mínima de instrucciones
a ejecutar para implementar la operación Y = X×Y+Z sería:

1) Push M[X];
2) Push M[Y];
3) Mult;
4) Push M[Z];
5) Add;
6) Pop M[Y]

Luego el número de intrucciones mínimo es 6.


Respuesta: C (6)

5.- Se desea implementar el diagrama ASM de la siguiente figura utilizando un registro y una memoria ROM.

S0 S1 01 S2 10 S3 11
1
Inicio Cond
0 0 1

Suponiendo que para cada estado se debe generar una sola señal de control (c0 en S0, c1 en S1, c2 en S2 y c3 en
S3), indicar los tamaños que deben tener el registro y la memoria ROM mínima necesaria, respectivamente:

A) 2 bits y 16 palabras × 6 bits/palabra. B) 4 bits y 16 palabras × 4 bits/palabra.


C) 4 bits y 8 palabras × 6 bits/palabra. D) Ninguna de las anteriores.
Solución

El diagrama mostrado en el enunciado tiene 4 estados, 2 condiciones (que se consultan de manera excluyente) y
4 señales de control. Por tanto, es necesario usar 2 bits para la codificación del estado (n = 2), dos señales de
condición (q = 2) y cuatro señales de control (m = 4).

Para diseñar la unidad de control usando únicamente una memoria ROM y un registro sería necesario un
registro de al menos 2 bits y una memoria ROM de al menos 2n+q palabras × (n+m) bits, es decir, de al menos
16 palabras con 6 bits/palabra.

Respuesta: A (2 bits y 16 palabras × 6 bits/palabra)

6.- Se dispone de un procesador que trabaja con un reloj de 50 MHz (50 × 106 Hz) y de un disco duro que
transfiere datos en bloques de 4 bytes a una velocidad de 2 MByte/s (2 × 106 Byte/s). A este sistema se le añade
un controlador de DMA, cuya transferencia utiliza 1000 ciclos de reloj del procesador, y el tratamiento de
interrupción tras la finalización de dicha transferencia necesita 500 ciclos de reloj. Si la transferencia media del
disco es de 4KByte (4 × 103 Byte), determinar la fracción consumida por el procesador cuando el disco duro
está activo.
A) 15%. B) 1,5%. C) 5%. D) Ninguna de las anteriores.

Solución

Cada transferencia de DMA utiliza:

4 KByte / transf .
 2  10 3 s / transf .
2 MByte / s

Si es el disco está transfiriendo constantemente, éste requiere:

(1000  500)ciclos / transf .


 750  10 3 ciclos / s
2  10 3 s / transf .

Como el procesador funciona a 50 MHz:


750  10 3
Fracción consumida por el procesador =  100  1,5%
50  106

Respuesta: B (1,5%)

7.- Cuántos módulos de memoria ROM de 2n palabras × n bits/palabra serán necesarios para diseñar un circuito
combinacional que eleve al cubo un número X de n bits.
A) 3. B) 2n+2. C) 3×22n. D) Ninguna de las anteriores.

Solución

Si sólo se fuera a utilizar una única memoria ROM, cuya capacidad se pudiese decidir, ésta tendría que tener
una capacidad de 2n palabras×3n bits/palabra. No obstante, como el módulo de memoria ROM del que se
dispone es de 2n palabras × n bits/palabra, serán necesarios 3 módulos para cubrir las necesidades de
almacenamiento.

Respuesta: A (3)
8.- Se desea construir un multiplicador binario que multiplique dos números de 4 y 8 bits, respectivamente.
Para ello se utilizan exclusivamente dos módulos ROM de 256 palabras × 8 bits/palabra y sumadores binarios
paralelos de 4 bits. ¿Cuál es el mínimo número necesario de sumadores de este tipo?
A) 4. B) 3. C) 2. D) Ninguna de las anteriores.

Solución

Se deben multiplicar dos números binarios, uno de 4 bits y otro de 8 bits. El resultado de la operación necesita
12 bits para poder ser expresado.

Se dispone de dos módulos ROM de 256 palabras de 8 bits/palabra y de sumadores binarios paralelos de 4 bits.
Los módulos ROM utilizados, pueden almacenar la multiplicación de dos números binarios de 8 bits. Para
llevar a cabo la multiplicación se supone que el multiplicando es el número de 8 bits Y = (Y7,Y6, …,Y1,Y0), que
se puede dividir en dos de 4 bits que sean Ysup =(Y7,Y6,Y5,Y4) e Yinf = (Y3,Y2,Y1,Y0). El multiplicador será un
X = (X3,X2,X1,X0).

El primer modulo ROM tendrá como entradas Yinf y X almacenando el producto de ambos. Y el segundo tendrá
como entradas Ysup y X almacenando igualmente su producto. Cada módulo ROM guarda palabras de 8 bits. En
el primer módulo los 4 bits menos significativos de la palabra serán ya parte del resultado de multiplicar de
forma completa el número de 8 por el de 4 bits, pero los 4 más significativos se deben sumar a los 4 menos
significativos del segundo módulo ROM, para lo cual se debe usar el primer sumador binario. La salida de este
sumador serán 4 bits más del resultado.

Los 4 bits más significativos del segundo módulo ROM deben sumarse al acarreo del sumador anterior,
proporcionando los 4 bits restantes del resultado de la multiplicación. Así pues se precisan 2 sumadores de 4
bits.

Respuesta: C (2)

PROBLEMA
Un computador dispone de un sistema de memoria central constituida por una memoria principal Mp de
64K palabras y una memoria caché Mc de 4K palabras con bloques de 64 palabras. En él se ejecuta 9 veces
consecutivas un bucle de programa que recorre secuencialmente desde la dirección 0 de memoria a la dirección
4351. Si se supone inicialmente vacía la memoria caché y que el tiempo de acceso a Mp es 4 veces superior al
de Mc, calcular el número de fallos, aciertos y tiempo medio de acceso en los siguientes supuestos:

A) (2 ptos) Memoria caché con correspondencia directa.


B) (2 ptos) Memoria caché con correspondencia asociativa por conjuntos de 4 conjuntos, que utiliza la política
de reemplazamiento LRU.

Solución

La Mc tiene un tamaño de 4K palabras = 4096 palabras, por lo que las 4351 direcciones propuestas no caben en
caché de forma simultánea y hay que realizar reemplazamientos.

Recorrido palabras 0…….4.351 → recorrido bloques 0…..67 ( 4351/64 = 67 )


Nº de bloques de Mc = 4K/64 = 64 bloques.

A)
Correspondencia Directa
Mc 1ª pasada
Falla la 1ª palabra de un total de 68 bloques referenciados  68 fallos
0 / 64

1 / 65
8 pasadas restantes
falla 1ª palabra de 8 bloques (4+4)  8 x 8 = 64 fallos
2 / 66
Nº Fallos = 64+68=132
3 / 67 Nº Referencias = 9 x 4.352 = 39.168
Nº Aciertos = 39.168-132=39.036
4
Tasa_aciertos =Nº Aciertos/Nº Referencias = 39.036/39.168 = 0,997
Tacierto = Tasa_aciertos*T  lectura directa (read through)
Tfallos = 1-Tasa_aciertos
63
Pfallo = 4T

Taccesomedio = Tacierto+Tfallos* Pfallo = 0,997T+(1-0,997)*4T = 1,009T


B)

Correspondencia Asociativa por Conjuntos de 4 Conjuntos


1 2 3 4 5

0/ 64 /48

16 /0 /64
1ª pasada
C0
32 / 16 falla 1ª palabra de 68 bloques  68 fallos
48 / 32
8 pasadas restantes
1 / 65 fallan 5 bloques en cada uno de los 4 primeros conjuntos  8x4x5 = 160 fallos
17 / 1
C1 Nº Fallos = 160+68=228
33 / 17 Nº Referencias = 9 x 4.352 = 39.168
49 Nº Aciertos = 39.168-228=38.940
2 / 66

18 / 2

34 / 18
C2 Tasa_aciertos =Nº Aciertos/Nº Referencias = 38.940/39.168 = 0,994

50 Tacierto = Tasa_aciertos*T  lectura directa (read through)


3 / 67
Tfallos = 1-Tasa_aciertos
19 / 3
C3
35 / 19 Pfallo = 4T
51

Taccesomedio = Tacierto+Tfallos* Pfallo = 0,994T+(1-0,994)*4T = 1,018T

15

31
C15
47

63

Nota: Se ha considerado como buena la solución del apartado b) del problema de considerar 4 conjuntos en lugar de 16.
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 3 puntos, las cuestiones teóricas 4 puntos y el problema 3 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.2 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.3 puntos para superarlo (con 3 preguntas correctas se supera).
Examen tipo A.
1.- Se tiene un sistema con una memoria principal de 1024 K palabras y una memoria caché de 32 K palabras
con bloques de 64 palabras, siendo el tamaño de la palabra de 2 bytes. Se sabe que el sistema de memoria caché
tiene asignada una función de correspondencia directa. Indicar cuál de las siguientes direcciones provocaría un
reemplazamiento del bloque de memoria caché ocupado por el bloque de memoria principal asociado a la
dirección 1712010.
A) 1715010 B) 8266810 C) 1737610 D) Ninguna de las anteriores.
2.- Considérese el esquema de interrupciones que se muestra en la siguiente figura. Se disponen de 8 niveles de
interrupción donde el nivel más prioritario es el 0 y el menos prioritario es el 7. En un determinado momento,
se encuentran activas las siguientes líneas de interrupción: PI2 PI5 y PI6. El registro de máscara de
interrupciones Mi tiene valor 1 si la interrupción no está enmascarada y 0 si sí lo está. Suponiendo que el
sistema de enmascaramiento es tal que si una línea de interrupción está activa implica que cualquiera con la
misma prioridad o inferior será enmascarada, ¿cuál es el contenido de los registros de estado y de máscara de
interrupciones, respectivamente?

A) 00100000 y 11000000
B) 00100110 y 11000000
C) 00000000 y 11000000
D) Ninguna de las anteriores.

3.- Empleando únicamente una memoria ROM, se pretende diseñar un comparador de dos números de 2n bits
que genere las funciones “mayor que”, “menor que” e “igual que”. Indicar cuál de las siguientes ROM podría
emplearse.
A) 22n palabras × 2 bits/palabra B) 2n palabras × 2 bits/palabra
C) 22n palabras × 1 bit/palabra D) Ninguna de las anteriores.
4.- En una CPU la longitud de los datos y de las instrucciones es de 16 bits. Las instrucciones tienen el
siguiente formato: los 5 bits más significativos se corresponden con el código de operación y los restantes con
la dirección de memoria con la que se va a operar. Se dispone de los siguientes códigos de operación:
00011: Cargar el registro acumulador desde memoria
00101: Almacenar en memoria al contenido del registro acumulador
00110: Sumar el contenido del registro acumulador y el de una dirección de
memoria dada, almacenando el resultado en el registro acumulador.
Indicar cuál de los siguientes fragmentos de programa, en hexadecimal, realiza la operación de sumar el
contenido de la dirección de memoria 30810 con el contenido de la dirección de memoria 67510 y almacena en
resultado en la dirección de memoria 30810.
A) 1934, 32A3, 2934 B) 3308, 6675, 5308
C) Los dos fragmentos anteriores son correctos. D) Ninguna de los anteriores.
5.- Dado el siguiente diagrama ASM, indicar cuántos elementos de memoria tipo J-K son necesarios para
implementarlo si se usa la técnica de diseño con un elemento de memoria por estado.
A) 2 B) 3
C) 4 D) No es posible implementar el diagrama con elementos de memoria tipo J-K, únicamente tipo D.

6.- Se dispone de un computador con palabras de memoria de 28 bits y con un repertorio de 12 instrucciones
diferentes. Cada instrucción tiene dos operandos con un modo de direccionamiento directo a memoria. Indicar
si las siguientes afirmaciones son verdaderas o falsas.
I. La máxima memoria direccionable es 212 direcciones.
II. El tamaño que debe tener el registro contador de programa del computador es de 24 bits.
A) I: sí; II: sí. B) I: sí; II: no. C) I: no; II: sí. D) I: no; II: no.

Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.


Cuestión 1 (1 punto): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (1 punto): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (1 punto): Justificar razonadamente el resultado de la pregunta 3 del test.


Cuestión 4 (1 punto): Justificar razonadamente el resultado de la pregunta 4 del test.

Problema (Contestar el problema en lo que resta de folio, por detrás y si es necesario, un folio adicional):

Sea un computador capaz de ejecutar 10 MIPS (107 instrucciones/s). A este computador se le conecta
únicamente un periférico con una velocidad de transferencia de 20000 bytes/s y sobre él se desea que se
realicen operaciones de lectura de bloques de 1024 bytes.
Para analizar el comportamiento de la pareja computador-periférico ante las diferentes técnicas de entrada-
salida (programada, mediante interrupciones y por DMA), se sabe que:
 La rutina de transferencia de E/S programada consta de 10 instrucciones.
 La rutina de tratamiento de interrupción en la E/S mediante interrupciones consta de 20 instrucciones.
 La rutina de inicialización del DMA consta de 8 instrucciones. Y en cada operación de escritura de un
dato en memoria el controlador ocupa el bus durante 500 ns.
Indicar el número de instrucciones de otros procesos que puede realizar el computador durante cada uno de los
tipos de E/S previstos.
A) (1 pto) E/S controlada por programa.
B) (1 pto) E/S mediante interrupciones.
C) (1 pto) E/S con controlador de DMA.
Soluciones del examen Tipo A

1.- Se tiene un sistema con una memoria principal de 1024 K palabras y una memoria caché de 32 K palabras
con bloques de 64 palabras, siendo el tamaño de la palabra de 2 bytes. Se sabe que el sistema de memoria caché
tiene asignada una función de correspondencia directa. Indicar cuál de las siguientes direcciones provocaría un
reemplazamiento del bloque de memoria caché ocupado por el bloque de memoria principal asociado a la
dirección 1712010.
A) 1715010 B) 8266810 C) 1737610 D) Ninguna de las anteriores.

Solución.
Véase el apartado 2.5.2 del libro de teoría. Las direcciones de memoria principal tendrán una anchura de n = 20
bits, ya que el número total de palabras de ésta es de 1024 K palabras = 220 palabras.
Como la caché utiliza correspondencia directa, una dirección de memoria principal se compondrá de los
campos: Etiqueta, Bloque y Palabra.
La capacidad de la memoria caché es de 32 K palabras = 215 palabras. Como se tienen 64 palabras/bloque, el
número de bloques en la memoria caché es:
215 palabras/(26 palabras/bloque) = 29 bloques.
Por lo tanto el campo Bloque tiene una anchura de b = 9 bits. Como hay 26 palabras/bloque, se necesitan 6 bits
para el campo Palabra.
Finalmente, el campo etiqueta tendrá 20-(9+6) = 5 bits de anchura.
Resumiendo, una dirección estará compuesta por 20 bits correspondiendo los 5 primeros bits a la etiqueta, los 9
siguientes al bloque y los 6 últimos a la palabra.
Para responder a esta pregunta basta con descomponer las direcciones proporcionadas en sus respectivos 3
campos:
17120 = 00000 100001011 100000
Opción A) 17150 = 00000 100001011 111110. Está en el mismo bloque y tiene igual etiqueta, y por lo tanto no
implica reemplazamiento.
Opción B) 82668 = 00010 100001011 101100. Tiene el mismo número de bloque y distinta etiqueta. Si se
hiciera una referencia a memoria, éste bloque sustituiría al actual (el asociado al 17120).
Opción C) 17376 = 00000 100001111 100000. Es otro bloque y no se corresponde con el ocupado por el
bloque asociado a la dirección 17120
Respuesta: B

2.- Considérese el esquema de interrupciones que se muestra en la siguiente figura. Se disponen de 8 niveles de
interrupción donde el nivel más prioritario es el 0 y el menos prioritario es el 7. En un determinado momento,
se encuentran activas las siguientes líneas de interrupción: PI2 PI5 y PI6. El registro de máscara de
interrupciones Mi tiene valor 1 si la interrupción no está enmascarada y 0 si sí lo está. Suponiendo que el
sistema de enmascaramiento es tal que si una línea de interrupción está activa implica que cualquiera con la
misma prioridad o inferior será enmascarada, ¿cuál es el contenido de los registros de estado y de máscara de
interrupciones, respectivamente?
A) 00100000 y 11000000
B) 00100110 y 11000000
C) 00000000 y 11000000
D) Ninguna de las anteriores.

Solución.
De acuerdo con el enunciado, se tiene que PI0 = PI1 = PI3 = PI4 = PI7 = 0 y PI2 = PI5 = PI6 = 1.
Además, de acuerdo con las especificaciones, estarán enmascaradas todas las interrupciones excepto PI0 y PI1,
por tanto, el contenido del registro de máscara de interrupciones será: 11000000.
Dada la existencia de las puertas AND para cada bit del registro de estado de interrupciones se tiene que
00100110 & 11000000 = 00000000.
Respuesta: C) 00000000 y 11000000

3.- Empleando únicamente una memoria ROM, se pretende diseñar un comparador de dos números de 2n bits
que genere las funciones “mayor que”, “menor que” e “igual que”. Indicar cuál de las siguientes ROM podría
emplearse.
A) 22n palabras × 2 bits/palabra B) 2n palabras × 2 bits/palabra
C) 22n palabras × 1 bit/palabra D) Ninguna de las anteriores.

Solución.
En un caso general se necesitará una memoria ROM de un tamaño mínimo de:
(2núm. entradas) palabras × (núm. salidas) bits/palabra
En el caso del comparador propuesto el número de entradas es 2n + 2n = 4n, y el número de salidas es 3, por lo
que se necesitará una memoria ROM de un tamaño mínimo de 24n palabras × 3 bits/palabra.
Respuesta: D

4.- En una CPU la longitud de los datos y de las instrucciones es de 16 bits. Las instrucciones tienen el
siguiente formato: los 5 bits más significativos se corresponden con el código de operación y los restantes con
la dirección de memoria con la que se va a operar. Se dispone de los siguientes códigos de operación:
00011: Cargar el registro acumulador desde memoria
00101: Almacenar en memoria al contenido del registro acumulador
00110: Sumar el contenido del registro acumulador y el de una dirección de
memoria dada, almacenando el resultado en el registro acumulador.
Indicar cuál de los siguientes fragmentos de programa, en hexadecimal, realiza la operación de sumar el
contenido de la dirección de memoria 308 10 con el contenido de la dirección de memoria 67510 y almacena en
resultado en la dirección de memoria 30810.
A) 1934, 32A3, 2934 B) 3308, 6675, 5308
C) Los dos fragmentos anteriores son correctos. D) Ninguna de los anteriores.
Solución.
Las direcciones 308 y 675, en decimal, son en binario:

Decimal Binario Binario (11 bits)


308 100110100 00100110100
675 1010100011 01010100011
Por tanto, la secuencia de operaciones, con el formato código de operación (5 bits) y dirección (11 bits) que se
describen en el enunciado será:
0001 1001 0011 0100
0011 0010 1010 0011
0010 1001 0011 0100
Que en hexadecimal, es 193416, 32A316, 293416. Por tanto, la opción correcta es la A).
Respuesta A

5.- Dado el siguiente diagrama ASM, indicar cuántos elementos de memoria tipo J-K son necesarios para
implementarlo si se usa la técnica de diseño con un elemento de memoria por estado.
A) 2 B) 3
C) 4 D) No es posible implementar el diagrama con elementos de memoria tipo J-K, únicamente tipo D.

Solución.
En el libro de teoría esta técnica de diseño de una Unidad de Control se ha descrito supuesto que se utilizan
elementos de memoria o biestables tipo D, y se necesitaban tantos biestables tipo D como estados tuviese la
Unidad de Control.
En este caso el diagrama ASM indica que la Unidad de Control posee 3 estados {S0, S1, S2}, luego serán
necesarios tres biestables tipo D para implementar la Unidad de Control por la técnica de un elemento de
memoria por estado. Es posible implementar esta técnica con otros tipos de biestables pero entonces es
necesario utilizar las tablas de transición de estados y calcular las ecuaciones de entrada a los elementos de
memoria.
En el enunciado se desea implementar esta técnica con biestables tipo J-K. Por lo tanto se debe comprobar si
con un biestable tipo J-K se puede emular un biestable tipo D.
La tabla de verdad o funcionamiento de un biestable tipo D es:

Entrada Estado actual Próximo estado


D Q(t) Q’(t+1)
0 0 0
0 1 0
1 0 1
1 1 1

Se observa que D = Q’(t+1).


Mientras que la tabla de funcionamiento de un biestable tipo J-K es:

Entrada Entrada Estado actual Próximo estado


J K Q(t) Q’(t+1)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

Se observa que las filas sombreadas de esta tabla son precisamente la tabla de funcionamiento de un biestable
tipo D si se hace la entrada J = D y la entrada K  D .
Luego se ha demostrado que un biestable tipo J-K puede ser equivalente a un biestable tipo D. En conclusión
puesto que se necesitan 3 biestables tipo D para implementar la Unidad de Control con la técnica de “un
elemento de memoria por estado”, de forma equivalente se podría implementar con 3 elementos biestables tipo
J-K.
Respuesta: B

6.- Se dispone de un computador con palabras de memoria de 28 bits y con un repertorio de 12 instrucciones
diferentes. Cada instrucción tiene dos operandos con un modo de direccionamiento directo a memoria. Indicar
si las siguientes afirmaciones son verdaderas o falsas.
I. La máxima memoria direccionable es 212 direcciones.
II. El tamaño que debe tener el registro contador de programa del computador es de 24 bits.
A) I: sí; II: sí. B) I: sí; II: no. C) I: no; II: sí. D) I: no; II: no.

Solución.
Afirmación I. Se tienen 12 instrucciones, por lo tanto para el código de operación se necesitan 4 bits, los 24
restantes se utilizan la mitad para cada operando:

27:24 23:12 11:0


CÓDIGO OPERACIÓN OPERANDO1 OPERANDO2

En el direccionamiento directo la dirección de memoria a la que se quiere acceder está escrita en la propia
instrucción. Como en este caso, el campo que se puede utilizar para escribir una dirección de memoria tiene 12
bits, la máxima memoria direccionable son 212 posiciones. Luego la afirmación I es verdadera.

Afirmación II. El contador de programa guarda la dirección de memoria de la siguiente instrucción a ejecutar.
Por lo tanto, debe ser capaz de almacenar cualquier dirección de memoria. Por lo tanto debe tener un ancho de
12 bits. Luego la afirmación II es falsa.
Respuesta: B

Problema
Sea un computador capaz de ejecutar 10 MIPS (107 instrucciones/s). A este computador se le conecta
únicamente un periférico con una velocidad de transferencia de 20000 bytes/s y sobre él se desea que se
realicen operaciones de lectura de bloques de 1024 bytes.
Para analizar el comportamiento de la pareja computador-periférico ante las diferentes técnicas de entrada-
salida (programada, mediante interrupciones y por DMA), se sabe que:
 La rutina de transferencia de E/S programada consta de 10 instrucciones.
 La rutina de tratamiento de interrupción en la E/S mediante interrupciones consta de 20 instrucciones.
 La rutina de inicialización del DMA consta de 8 instrucciones. Y en cada operación de escritura de un
dato en memoria el controlador ocupa el bus durante 500 ns. Se trata de un DMA por robo de ciclo.
Indicar el número de instrucciones de otros procesos que puede realizar el computador durante cada uno de los
tipos de E/S previstos.
A) (1 pto) E/S controlada por programa.
B) (1 pto) E/S mediante interrupciones.
C) (1 pto) E/S con controlador de DMA.

Solución.
El periférico suministra 20000 bytes/s, por tanto enviará un dato cada 50 μs. Como los bloques son de 1.024
bytes, una operación de E/S durará:
50μs / dato × 1024 datos = 51.200 μs.
E/S programada
El periférico proporcionará un dato cada 50 μs. La CPU en ese tiempo es capaz de ejecutar 500 instrucciones
(ya que el computador trabaja a 10 MIPS). La mayor parte de las instrucciones estarán dedicadas a realizar el
muestreo sobre el periférico.
La rutina de E/S programada consta de 10 instrucciones, pero el tiempo de ejecución es despreciable frente las
500 instrucciones que es capaz de realizar la CPU en el tiempo de transmitir un dato. Y dado que en transmitir
los 1024 bytes se emplean 51200 μs, las instrucciones que podría haber realizado la CPU serían 512000.
Además, al ser entrada-salida programada, la CPU está plenamente dedicada a ejecutar las instrucciones de la
rutina de entrada-salida, con lo que no es capaz de ejecutar ninguna instrucción de otro proceso.

E/S mediante interrupciones


La rutina de interrupción consta de 20 instrucciones, y se ejecutará cada vez que está lista para entregar un dato
nuevo. Al ser los bloques de 1024 bytes, se ejecutará un total de 20 × 1024 = 20480 instrucciones dedicadas a la
transferencia de datos, con lo que la CPU podría dedicar tiempo a otros procesos.

El número de instrucciones de otros procesos que puede ejecutar la CPU es de:


512000 instrucciones – 20480 instrucciones = 491520 instrucciones
E/S mediante DMA
La CPU dedicará el tiempo necesario para poder programar el controlador de DMA. El DMA emplea robo de
ciclo, con lo que el periférico ocupará los buses 500 ns / byte. Con lo que para leer 1024 bytes, tardará:
500 ns × 1024 bytes = 512000 ns = 512 μs
Dado que la rutina de inicialización del controlador del DMA consta de 8 instrucciones, se puede aproximar el
cálculo a los 512 μs. que se corresponden con los robos de ciclo.
En ese tiempo, la CPU habrá ejecutado 5120 instrucciones, que se corresponderán con el hecho de que durante
el robo de ciclo por cada dato, la CPU no puede acceder a los buses.
La CPU podrá ejecutar 512000 instrucciones – 5120 instrucciones = 506880 instrucciones correspondientes a
otros procesos.
En resumen se tiene:
Tipo de E/S Instrucciones totales Instrucciones para otros procesos
E/S programada 512000 0
E/S mediante interrupciones 20480 491520
E/S mediante DMA 5120 506580
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 3 puntos, las cuestiones teóricas 4 puntos y el problema 3 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.2 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.3 puntos para superarlo (con 3 preguntas correctas se supera).
Examen tipo C.
1.- Una memoria caché asociativa por conjuntos dispone de 32 conjuntos y utiliza bloques de 64 palabras,
siendo su capacidad total de 32 Kpalabras. La memoria principal tiene una capacidad de 32 Mpalabras.
¿Cuántos bits hay en los diferentes campos del formato de dirección? Nota: 1 Kpalabra = 210 palabras,
1 Mpalabra = 220 palabras.
A) Etiqueta: 13, Conjunto: 5, Palabra: 7 B) Etiqueta: 15, Conjunto: 5, Palabra: 5
C) Etiqueta: 14, Conjunto: 5, Palabra: 6 D) Ninguna de las anteriores.
2.- Suponer un sistema de E/S gestionada mediante interrupciones anidables con 3 niveles de prioridad. En el
cronograma de la Figura 1, en la parte superior, se muestra el orden de llegada de varias peticiones de
interrupción donde cada subíndice hace referencia a un nivel de interrupción. En la parte inferior de la figura, se
muestra la ejecución de las rutinas de interrupción en cada instante. Cada caja representa una duración de 5 u.t.
Suponiendo que el tiempo de gestión de las interrupciones es despreciable, ¿cuál de las siguientes afirmaciones
es verdadera?
A) INTx es la interrupción más prioritaria.
B) La duración del tratamiento de INTx es 15 u.t. y la de INTy es 10 u.t.
C) No se pueden establecer conclusiones sobre qué interrupción es más prioritaria entre INT y e INTz
D) Ninguna de las anteriores.

Figura 1. Cronograma de rutinas de interrupción.

3.- Considerar el siguiente diagrama de estados, correspondiente a una unidad de control (Figura 2). Señalar
cuál de las siguientes afirmaciones es correcta:
I
S0
A) Puede realizarse la síntesis de la unidad de control empleando un registro
I c0 , c3 de 2 bits y una memoria ROM de 32 palabras, con 8 bits por palabra.
S1 B) Puede realizarse la síntesis de la unidad de control empleando un registro
s0 0 s0 c1 de 2 bits, un multiplexor de 4 a 1, y una memoria ROM de 4 palabras, con
S2 8 bits por palabra.
s1 c2 , c3 s1 c2 , c3
C) Las dos anteriores son correctas.
Figura 2. Diagrama de estados. D) Todas las anteriores son falsas.

4.- Un computador posee 1 registro índice cuyo contenido en un instante concreto, expresado en hexadecimal,
es (R1) = 000A. El computador tiene una memoria de 32 Kpalabras de 16 bits. Suponer que cada palabra
contiene un valor igual a su dirección en memoria y que se utiliza una instrucción con un valor en el campo de
direcciones (CD) = (00AB). La dirección final en el caso de que se utilicen los direccionamientos Indirecto e
Indexado a través del registro R1 es respectivamente:
A) 00AB y 000A B) 00A9 y 000B C) 00AB y 00B5 D) Ninguna de las anteriores.
5.- Se desea diseñar un circuito combinacional, que sea un sumador de 1 número de 4 bits de longitud, 2
números de tres bits de longitud y 2 números de un bit de longitud, utilizando únicamente módulos SBC. ¿Cuál
es el número mínimo de módulos SBC necesarios?
A) 8 B) 7 C) 6 D) Ninguno de los anteriores.
6.- Un diseñador de compiladores está intentando decidir entre dos secuencias de código para una máquina en
particular. Los diseñadores hardware le han proporcionado los siguientes datos sobre los ciclos promedio por
instrucción (CPI), para las distintas clases de instrucciones dadas en la Tabla 1. Para una declaración particular
de un lenguaje de alto nivel, el diseñador del compilador está considerando las secuencias de código que
requieren el número instrucciones (NI) de cada tipo dadas en la Tabla 2. Los CPI de las secuencias 1 y 2 son
respectivamente:
A) 3 y 10 B) 1 y 2 C) 2 y 1.5 D) Ninguna de las anteriores.

Tabla 1. CPI instrucciones. Tabla 2. Número de instrucciones por tipo para cada secuencia.
Clase de instrucción CPI NI A NI B NI C NI Total
A 1 Secuencia 1 2 1 2 5
B 2 Secuencia 2 4 1 1 6
C 3

Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.


Cuestión 1 (1 punto): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (1 punto): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (1 punto): Justificar razonadamente el resultado de la pregunta 3 del test.

Cuestión 4 (1 punto): Justificar razonadamente el resultado de la pregunta 4 del test.


Problema (Contestar el problema en lo que resta de folio, por detrás y si es necesario, un folio adicional):

Se dispone de una unidad de disco duro de brazo móvil con las siguientes características:
 8 superficies, 120 pistas por superficie y 80 sectores por pista.
 Sectores de 512 bytes de información neta.
 Velocidad de rotación de 1500 rpm.
 El tiempo necesario para desplazar la cabeza entre dos pistas contiguas es de 0.25 ms, con un tiempo de
estabilización de la cabeza de 3 ms.
Calcular:
A) (1 pto) La densidad de grabación lineal para las pistas de un cilindro cuyo radio es de 3 cm.
B) (1 pto) La velocidad de transferencia.
C) (1 pto) El tiempo medio de acceso de este disco (indicando todos los tiempos implicados).
Soluciones del examen Tipo C

1.- Una memoria caché asociativa por conjuntos dispone de 32 conjuntos y utiliza bloques de 64 palabras,
siendo su capacidad total de 32 Kpalabras. La memoria principal tiene una capacidad de 32 Mpalabras.
¿Cuántos bits hay en los diferentes campos del formato de dirección? Nota: 1 Kpalabra = 210 palabras,
1 Mpalabra = 220 palabras.
A) Etiqueta: 13, Conjunto: 5, Palabra: 7 B) Etiqueta: 15, Conjunto: 5, Palabra: 5
C) Etiqueta: 14, Conjunto: 5, Palabra: 6 D) Ninguna de las anteriores.
Solución.
Se tiene una memoria caché asociativa por conjuntos donde el número de conjuntos q = 32 (25). La capacidad
total de la memoria caché es de 32 Kpalabras (o sea 215 palabras) estructurada en bloques de 64 (26) palabras
cada uno de ellos.
La capacidad de la memoria principal es de 32 Mpalabras (es decir 25 x 220 = 225), por tanto, el formato de la
dirección de una palabra de memoria necesita 25 bits. Como la memoria caché utiliza una correspondencia
asociativa por conjuntos, el formato de la dirección se divide en:
 Bits de etiqueta (los más significativos de la dirección).
 Bits de conjunto (los centrales de la dirección)
 Bits de palabra (los menos significativos de la dirección).
Como hay 64 palabras en cada bloque de memoria principal, se necesitan 6 bits para el campo de palabra.
Como se tienen 32 = 25 conjuntos, son 5 los bits que se dedican al campo de conjunto. Por tanto 25-5-6 = 14
son los bits que se dedican al campo de etiqueta.
Respuesta: C (Etiqueta: 14, Conjunto: 5, Palabra: 6)

2.- Suponer un sistema de E/S gestionada mediante interrupciones anidables con 3 niveles de prioridad. En el
cronograma de la Figura 1, en la parte superior, se muestra el orden de llegada de varias peticiones de
interrupción donde cada subíndice hace referencia a un nivel de interrupción. En la parte inferior de la figura, se
muestra la ejecución de las rutinas de interrupción en cada instante. Cada caja representa una duración de 5 u.t.
Suponiendo que el tiempo de gestión de las interrupciones es despreciable, ¿cuál de las siguientes afirmaciones
es verdadera?
A) INTx es la interrupción más prioritaria.
B) La duración del tratamiento de INTx es 15 u.t. y la de INTy es 10 u.t.
C) No se pueden establecer conclusiones sobre qué interrupción es más prioritaria entre INTy e INTz
D) Ninguna de las anteriores.

Figura 1. Cronograma de rutinas de interrupción.


Solución.
De acuerdo con el cronograma se puede hacer la siguiente asignación:

La primera asignación se debe a que en t = 0 la única interrupción que ha llegado es INTx.


En t = 10 u.t. llega la interrupción INTy. Dado que INTx continúa su ejecución y no es interrumpida, podemos
asegurar que la prioridad de INTx es mayor que INTy. Además, se cumple que la duración del tratamiento de
INTx es de 15 u.t.
En t = 15 u.t. comienza a atenderse otra interrupción, que sólo puede ser INT y, que se ejecuta durante 10 u.t. En
t = 25 u.t. se produce otra interrupción INTx. Con esto se ha demostrado que INTx es más prioritaria, por lo que
se interrumpe la ejecución de INTy e INTx pasa a ejecutarse.
En t = 35 u.t. llega otra interrupción: INTz. Dado que INTx continúa con su ejecución, podemos asegurar que la
prioridad de INTx es mayor que la de INTz, y por tanto, INTx es la interrupción más prioritaria.
Con todo ello se puede establecer que la afirmación A) es verdadera.
Una vez INTx finaliza, continúa ejecutándose INTy. Por tanto, podemos garantizar que la prioridad de INT y es
mayor que INTz, y concluir que la afirmación C) es falsa. La duración total de tratamiento de la rutina de INT y
es de 10 u.t. + 10 u.t. = 20 u.t., por tanto, B) es falsa.
Respuesta: A) INTx es la interrupción más prioritaria.

3.- Considerar el siguiente diagrama de estados, correspondiente a una unidad de control (Figura 2). Señalar
cuál de las siguientes afirmaciones es correcta:
I
S0
A) Puede realizarse la síntesis de la unidad de control empleando un registro
I c0 , c3 de 2 bits y una memoria ROM de 32 palabras, con 8 bits por palabra.
S1 B) Puede realizarse la síntesis de la unidad de control empleando un registro
s0 0 s0 c1 de 2 bits, un multiplexor de 4 a 1, y una memoria ROM de 4 palabras, con
S2 8 bits por palabra.
s1 c2 , c3 s1 c2 , c3
C) Las dos anteriores son correctas.
Figura 3. Diagrama de estados. D) Todas las anteriores son falsas.

Solución.
El diagrama tiene:
 3 estados, luego necesita n = 2 bits para su codificación.
 q = 3 entradas a la unidad de control: I, s0, s1
 m = 4 salidas de la unidad de control: c0, c1, c2,c3

A) Diseñando la Unidad de Control con una ROM y un registro, es suficiente con utilizar una ROM de 2n+q =
32 palabras de (n+m) = 6 bits/palabra y un registro de n=2 bits. El esquema del diseño se muestra en la
Figura 3.

Figura 3. Diseño de la U.C. con ROM y registro Figura 4. Diseño de la U.C. con el método de selección por estado

B) Si se utiliza para el diseño el método de selección por estado, se necesitaría una ROM de 2n+1 = 8 palabras
de n+m = 6 bits por palabra; un registro de n = 2 bits y un multiplexor de 2n = 4 a 1. El diseño es el que se
muestra en la Figura 4. De donde se concluye que no vale la respuesta 2 puesto que la ROM necesaria es de
8 palabras y no de 4 como en el enunciado.

Respuesta: A) Puede realizarse la síntesis de la unidad de control empleando un registro de 2 bits y una
memoria ROM de 32 palabras, con 8 bits por palabra.
4.- Un computador posee 1 registro índice cuyo contenido en un instante concreto, expresado en hexadecimal,
es (R1) = 000A. El computador tiene una memoria de 32 Kpalabras de 16 bits. Suponer que cada palabra
contiene un valor igual a su dirección en memoria y que se utiliza una instrucción con un valor en el campo de
direcciones (CD) = (00AB). La dirección final en el caso de que se utilicen los direccionamientos Indirecto e
Indexado a través del registro R1 es respectivamente:
A) 00AB y 000A B) 00A9 y 000B C) 00AB y 00B5 D) Ninguna de las anteriores.
Solución.
Direccionamiento indirecto: La dirección inicial se obtiene leyendo el contenido de la posición de memoria
dada por el campo de direcciones de la instrucción: (CD) = 00AB. Como según el enunciado, cada palabra
contiene un valor igual a su dirección en memoria, la indirección (00AB) = 00AB. Por tanto, la dirección de
memoria a la que se accede es 00AB.
Direccionamiento indexado a través del registro R1: En este caso, como ((CD)) = (00AB) = 00AB. La
dirección definitiva se calcula sumando el contenido del registro índice con la dirección obtenida en la
indirección: (R1) + 00AB = 000A+00AB = 00B5. La dirección de memoria a la que se accede en este caso es
00B5.
Respuesta: C) 00AB y 00B5

5.- Se desea diseñar un circuito combinacional, que sea un sumador de 1 número de 4 bits de longitud, 2
números de tres bits de longitud y 2 números de un bit de longitud, utilizando únicamente módulos SBC. ¿Cuál
es el número mínimo de módulos SBC necesarios?
A) 8 B) 7 C) 6 D) Ninguno de los anteriores.

Solución.
Un Sumador Binario Completo (SBC) dispone de tres entradas de 1 bit (el sumando xi, el sumando yi, y el
acarreo de la etapa anterior ci-1) y dos salidas de 1 bit (el acarreo a la etapa siguiente ci, y el bit de suma si). El
funcionamiento de un SBC en notación de puntos se muestra en la Figura 5 donde cada punto representa 1 bit
de la entrada, o de la salida.

Figura 5. Notación de puntos de un SBC

En la Figura 6 se muestra la suma de los números indicados en la cuestión mediante notación de puntos y
haciendo uso de los SBC’s necesarios. Como se puede observar son necesarios 7 SBC’s como mínimo.
Figura 6. Reducción mediante un árbol de Wallace
Respuesta: B: 7 módulos SBC’s

6.- Un diseñador de compiladores está intentando decidir entre dos secuencias de código para una máquina en
particular. Los diseñadores hardware le han proporcionado los siguientes datos sobre los ciclos promedio por
instrucción, para las distintas clases de instrucciones dadas en la Tabla 1. Para una declaración particular de un
lenguaje de alto nivel, el diseñador del compilador está considerando las secuencias de código que requieren el
número instrucciones (NI) de cada tipo dadas en la Tabla 2. El CPI de las secuencias 1 y 2 son respectivamente:
A) 3 y 10 B) 1 y 2 C) 2 y 1.5 D) Ninguna de las anteriores.
Tabla 3. CPI instrucciones. Tabla 4. Número de instrucciones por tipo para cada secuencia.
Clase de instrucción CPI NI A NI B NI C NI Total
A 1 Secuencia 1 2 1 2 5
B 2 Secuencia 2 4 1 1 6
C 3

Solución.
Para cada secuencia calculamos el CPI como la media de los CPI ponderada por el número de instrucciones. Es
decir:
Para la secuencia 1: CPI1 = (2 × 1 + 1 ×2 + 2 × 3) / 5 = 2.0
Para la secuencia 2: CPI2 = (4 × 1 + 1 ×2 + 1×3) / 6 = 1.5
Respuesta: C) 2 y 1.5
Problema
Se dispone de una unidad de disco duro de brazo móvil con las siguientes características:
 8 superficies, 120 pistas por superficie y 80 sectores por pista.
 Sectores de 512 bytes de información neta.
 Velocidad de rotación de 1500 rpm.
 El tiempo necesario para desplazar la cabeza entre dos pistas contiguas es de 0.25 ms, con un tiempo de
estabilización de la cabeza de 3 ms.
Calcular:
A) (1 pto) La densidad de grabación lineal para las pistas de un cilindro cuyo radio es de 3 cm.
B) (1 pto) La velocidad de transferencia.
C) (1 pto) El tiempo medio de acceso de este disco (indicando todos los tiempos implicados).

Solución.
A) La longitud de la pista cuyo radio es de 3 cm es: 2 × × 3 cm
En esa pista, como en todas las del disco, tenemos 80 sectores (densidad angular constante). La densidad lineal
Dlineal suele expresarse en bits/cm
80 sec t  512 bytes / sec t  8 bits / byte 327680 bits
Dlineal    17384 bits / cm
2    3 cm 6 cm

B) La velocidad de transferencia vtransfer es:


1500 rpm
vtransfer  pista / s  80 sec t / pista  512 bytes / sec tor  1024000 bytes / s .
60 s / m
C) Tiempo medio de acceso del disco. Sean:
Tbmed = Tiempo medio de búsqueda o posicionado
Trotmed = Latencia rotacional media
Taccesomed = Tbmed + Trotmed

Entonces:
Tbmed  60 pistas  0,25 ms  3 ms  18 ms
1
Trotmed  0,5  20 ms
1500 rpm
60 s / m
Taccesomed  Tbmed  Trotmed  38 ms
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.
1.- Considérese una máquina en la que las instrucciones entre registros (de cálculo) emplean 4 ciclos de reloj
para su ejecución y el resto de instrucciones usan 6 ciclos. Si un programa de 2000 instrucciones, donde un
20% de las mismas son de cálculo, se ejecuta en 7 ms, ¿cuál es la frecuencia de reloj en ciclos?
A) 625 ns. B) 350 ns. C) 515 ns. D) Ninguna de las anteriores.
2.- Indicar cuál debe ser el tamaño mínimo del módulo de memoria ROM necesario para diseñar un comparador
de dos números de 3 bits que genere como salidas las funciones “mayor que” y “menor que”.
A) 26 palabras × 2 bits/palabra. B) 26 palabras × 3 bits/palabra.
C) 26 palabras × 6 bits/palabra. D) Ninguna de las anteriores.
3.- En un disco magnético de 1024 pistas numeradas de 0 a 1023 se tiene la siguiente cola de peticiones de
disco: 100, 405, 1020, 95, 321, 627, 940, 3. Inicialmente la cabeza se encuentra en la pista 300. El orden en el
que se atienden las peticiones es el siguiente: 321, 405, 627, 940, 1020, 100, 95, 3. ¿Qué tipo de planificación
usa el disco?
A) SSTF. B) SCAN. C) LOOK. D) Las tres anteriores son posibles.
4.- Se desea diseñar un circuito combinacional, que sea un sumador de 13 números de 1 bit de longitud,
utilizando únicamente módulos SBC. Indicar cuál es el número mínimo de módulos SBC necesarios para ello.
A) 9 B) 10 C) 11 D) Ninguna de las anteriores.
5.- Indique si las siguientes afirmaciones son verdaderas. En el bus de arbitraje distribuido con respecto al
arbitraje centralizado:
I. La posición de conexión de los dispositivos a la línea de arbitraje no determina la prioridad de aquellos en el
uso del bus, mientras que en el caso centralizado sí lo hace.
II. Es más barato ya que no requiere un árbitro, pero es menos rápido y fiable que el arbitraje centralizado.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.
6.- En un computador cuando la CPU dispone en exclusiva del bus las instrucciones emplean 6 ciclos de reloj
en ser ejecutadas, aunque en 2 de ellos, el segundo y el tercero, no se requiere acceso al bus. Si el controlador
de DMA tarda 5 ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmaciones son
ciertas:
I. Se puede implementar la estrategia con DMA por ráfagas.
II. Se puede implementar la estrategia con DMA transparente.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.
7.- Un computador dispone de 5 registros de propósito general: R0, R1, R2, R3 y R4. El contenido (Contenido)
de ciertas posiciones de memoria (Posición) y la semántica de una serie de instrucciones se muestra en la tabla
siguiente:
Posición Contenido Semántica
2000 2030
2010 …
2020 … LOAD R0, 20 ; R020
2030 2060 LOAD R1, #2020 [.R0] ; R1  M (2020 + R0)
2040 520 LOAD R2, #2000 ; R2  M(2000)
2050 … LOAD R3, [[.R2]] ; R3  M(M(R2))
2060 897
El contenido final de los 5 registros una vez ejecutadas estas instrucciones en el orden en el que se han
expuesto en dicha tabla, suponiendo que inicialmente estaban todos a 0, es:
A) R0:20; R1: 520; R2: 2030; R3: 897; R4:0. B) R0:2040; R1: 2030; R2: 2000; R3: 897; R4:0.
C) R0:20; R1: 2040; R2: 2030; R3: 2060; R4:0. D) Ninguna de las anteriores.

8.- En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indicar cuál de las
siguientes afirmaciones, acerca de las señales de control (ci), es la correcta.

A) c2 = S2 s2 I
B) c3 = S1 s1 / c2, c3
I / c1 S1
C) Las dos afirmaciones
anteriores son correctas. S3 S4
S0 s1 / c3 s1 / c1
D) Todas las afirmaciones
anteriores son falsas. s2 / c1, c2
S2

Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.


Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


Se desea construir un juego de instrucciones con las siguientes características:
 Palabra de instrucción: 32 bits.
 X instrucciones sin operandos.
 100 instrucciones de un operando, en donde el operando tendrá 24 bits.
 153 instrucciones de dos operandos, en donde cada uno de los operandos tendrá 12 bits.
 300 instrucciones de tres operandos, en donde cada uno de los tres operandos tendrá 6, 6 y 4 bits
respectivamente.

A) (1 pto.) Calcular el tamaño de los campos de código de operación para cada tipo de instrucción.
B) (1 pto.) Indicar cómo se asignarían los códigos de operación y se distribuirían las instrucciones.
C) (2 ptos.) Calcular el valor máximo de X.

SOLUCIONES
1.- Considérese una máquina en la que las instrucciones entre registros (de cálculo) emplean 4 ciclos de reloj
para su ejecución y el resto de instrucciones usan 6 ciclos. Si un programa de 2000 instrucciones, donde un
20% de las mismas son de cálculo, se ejecuta en 7 ms, ¿cuál es la frecuencia de reloj en ciclos?
A) 625 ns. B) 350 ns. C) 515 ns. D) Ninguna de las anteriores.

Solución

El problema se reduce a resolver la siguiente ecuación:


(4×0.2 + 6×0.8) ×2000 × Frec. = 7 ms

Operando, se obtiene:

Frec. = 7 ms / 11200 = 6.25×10-4 ms, que pasando a ns son 625 ns.

Respuesta : A (625 ns).

2.- Indicar cuál debe ser el tamaño mínimo del módulo de memoria ROM necesario para diseñar un comparador
de dos números de 3 bits que genere como salidas las funciones “mayor que” y “menor que”.
A) 26 palabras × 2 bits/palabra. B) 26 palabras × 3 bits/palabra.
C) 26 palabras × 6 bits/palabra. D) Ninguna de las anteriores.

Solución
En el caso del comparador propuesto el número de entradas es 3 + 3 = 6, puesto que se trata de comparar dos
números de 3 bits cada uno de ellos. El número de salidas es 2, una que indica si el primer número es mayor
que el segundo, y otra que indique si el primer número es menor que el segundo. Por tanto, el tamaño mínimo
de ROM necesario es:
26 palabras × 2 bits/palabra

Respuesta: A (26 palabras × 2 bits/palabra).

3.- En un disco magnético de 1024 pistas numeradas de 0 a 1023 se tiene la siguiente cola de peticiones de
disco: 100, 405, 1020, 95, 321, 627, 940, 3. Inicialmente la cabeza se encuentra en la pista 300. El orden en el
que se atienden las peticiones es el siguiente: 321, 405, 627, 940, 1020, 100, 95, 3. ¿Qué tipo de planificación
usa el disco?
A) SSTF. B) SCAN. C) LOOK. D) Las tres anteriores son posibles.

Solución

La planificación SSTF atiende las peticiones de pistas que se encuentran más cerca de la pista actual. Como la
cabeza se encuentra inicialmente en la 300, la pista más cercana es la 321 y la cabeza se mueve hacia las pistas
crecientes. A continuación comprueba de nuevo cuál es la pista más cercana. Por un lado está la petición de 405
y por otro la 100. El número de pistas a recorrer es menor hacia la 405, por lo que la cabeza se sigue
desplazando hacia ella siguiendo el mismo sentido. Razonando de la misma manera, la cabeza avanza hasta la
pista 1020, y a continuación retrocede en sentido contrario para leer las pistas 100, 95 y 3. Por tanto, si el disco
usase una planificación SSTF, la secuencia de atención de peticiones sería la dada.

Los algoritmos SCAN y LOOK se diferencian en que en el caso de LOOK la cabeza no se desplaza hasta el
extremo del disco si no hasta la última petición en cada dirección. Este hecho no influye en el orden de atención
de peticiones y será la misma para ambos casos. La cabeza se mueve en un sentido y va leyendo las peticiones
que se encuentra. Suponiendo que la cabeza se está moviendo en el sentido de las pistas crecientes, las pistas se
irán leyendo en el orden 321, 405, 627, 930, 1020, y a continuación la cabeza se desplazará en el sentido
contrario y se leerán las pistas 100, 95 y 3. Por tanto, la secuencia dada también es la de los algoritmos SCAN y
LOOK.
Respuesta : D

4.- Se desea diseñar un circuito combinacional, que sea un sumador de 13 números de 1 bit de longitud,
utilizando únicamente módulos SBC. Indicar cuál es el número mínimo de módulos SBC necesarios para ello.
A) 9 B) 10 C) 11 D) Ninguna de las anteriores.

Solución

Respuesta: B (10 SBC’s)

5.- Indicar si las siguientes afirmaciones son verdaderas. En el bus de arbitraje distribuido con respecto al
arbitraje centralizado:
I. La posición de conexión de los dispositivos a la línea de arbitraje no determina la prioridad de aquellos en el
uso del bus, mientras que en el caso centralizado sí lo hace.
II. Es más barato ya que no requiere un árbitro, pero es menos rápido y fiable que el arbitraje centralizado.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

I. Es falsa, ya que la posición si determina la prioridad de los dispositivos tanto en el caso distribuido como
centralizado.
II. Es falsa. El arbitraje distribuido es más barato y además es más rápido y fiable debido a que no está sujeto al
posible mal funcionamiento del dispositivo árbitro.
Respuesta : D (Las dos son falsas).

6.- En un computador cuando la CPU dispone en exclusiva del bus las instrucciones emplean 6 ciclos de reloj
en ser ejecutadas, aunque en 2 de ellos, el segundo y el tercero, no se requiere acceso al bus. Si el controlador
de DMA tarda 5 ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmaciones son
ciertas:
I. Se puede implementar la estrategia con DMA por ráfagas.
II. Se puede implementar la estrategia con DMA transparente.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

Afirmación I: Es verdadera. En la estrategia de DMA por ráfagas el controlador de DMA hace uso del bus
cuando se ha finalizado la ejecución de una instrucción y no lo libera hasta después de haber finalizado de
enviar todas las palabras.

Afirmación II: Es falsa. En la estrategia de DMA transparente, el controlador de DMA hace uso del bus en
aquellos ciclos durante la ejecución de una instrucción en que la CPU no necesita utilizarlo. Puesto que el
controlador de DMA requiere 5 ciclos consecutivos para enviar una palabra y la CPU únicamente no utiliza el
bus en el segundo y tercero de los seis que se requiere para ejecutar una instrucción, nunca hay 5 ciclos
consecutivos en que el bus esté libre y por lo tanto no se puede utilizar esta estrategia de DMA.

Respuesta : B (La primera verdadera y la segunda falsa).

7.- Un computador dispone de 5 registros de propósito general: R0, R1, R2, R3 y R4. El contenido (Contenido)
de ciertas posiciones de memoria (Posición) y la semántica de una serie de instrucciones se muestra en la tabla
siguiente:
Posición Contenido Semántica
2000 2030
2010 …
2020 … LOAD R0, 20 ; R020
2030 2060 LOAD R1, #2020 [.R0] ; R1  M (2020 + R0)
2040 520 LOAD R2, #2000 ; R2  M(2000)
2050 … LOAD R3, [[.R2]] ; R3  M(M(R2))
2060 897
El contenido final de los 5 registros una vez ejecutadas estas instrucciones en el orden en el que se han
expuesto en dicha tabla, suponiendo que inicialmente estaban todos a 0, es:
A) R0:20; R1: 520; R2: 2030; R3: 897; R4:0. B) R0:2040; R1: 2030; R2: 2000; R3: 897; R4:0.
C) R0:20; R1: 2040; R2: 2030; R3: 2060; R4:0. D) Ninguna de las anteriores.
Solución

R0: 20
R1: 520
R2: 2030
R3: 897
R4: 0
Respuesta: A

8.- En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indicar cuál de las
siguientes afirmaciones, acerca de las señales de control (ci), es la correcta.

A) c2 = S2 s2 I
B) c3 = S1 s1 / c2, c3
I / c1 S1
C) Las dos afirmaciones
anteriores son correctas. S3 S4
S0 s1 / c3 s1 / c1
D) Todas las afirmaciones
anteriores son falsas. s2 / c1, c2
S2

Solución

Del diagrama de estados se deduce que:


c 2  S1 s1  S 2 s 2
c3  S1 s1  S1 s1  S1

Respuesta : B (c3 = S1)

PROBLEMA
Se desea construir un juego de instrucciones con las siguientes características:
 Palabra de instrucción: 32 bits.
 X instrucciones sin operandos.
 100 instrucciones de un operando, en donde el operando tendrá 24 bits.
 153 instrucciones de dos operandos, en donde cada uno de los operandos tendrá 12 bits.
 300 instrucciones de tres operandos, en donde cada uno de los tres operandos tendrá 6, 6 y 4 bits
respectivamente.

A) (1 pto.) Calcular el tamaño de los campos de código de operación para cada tipo de instrucción.
B) (1 pto.) Indicar cómo se asignarían los códigos de operación y se distribuirían las instrucciones.
C) (2 ptos.) Calcular el valor máximo de X.

Solución
A) Se comienza por calcular el tamaño de los campos de código de operación para cada uno de los tipos de
instrucciones. Se tiene lo siguiente:

Las instrucciones sin operandos tienen 32 bits de campo de código de operación.


Las instrucciones con 1 operando tienen 32-24=8 bits de campo de código de operación.
Las instrucciones con 2 operandos tienen 32-12-12=8 bits de campo de código de operación.
Las instrucciones con 3 operandos tienen 32-6-6-4=16 bits de campo de código de operación.

B) Por lo tanto, se comienza por colocar las instrucciones de 1 y de 2 operandos, ya que tienen el código de
operación más pequeño. Luego se asignarán códigos a las de 3 operandos, y finalmente se verán cuántas
combinaciones quedan libres para instrucciones sin operandos.

Las instrucciones de 1 y de 2 operandos tienen ambas códigos de operación de 8 bits, por lo que pueden
estudiarse simultáneamente. Con 8 bits tenemos 28 = 256 combinaciones posibles. Dado que hay que
colocar 100+153=253 instrucciones, nos sobran 3 combinaciones. Reservamos entonces las combinaciones
0xFD, 0xFE y 0xFF para extender el código.

Las instrucciones de 3 operandos tienen 16 bits de código de operación, lo que en principio permitiría
codificar 216 instrucciones distintas. Sin embargo, de los 16 bits del código de operación los 8 primeros
codifican instrucciones de 1 y de 2 operandos, a excepción de las combinaciones 0xFD, 0xFE y 0xFF ya
mencionadas. Por lo tanto, esto nos da un total de 3×28 instrucciones de tres operandos posibles. Como
sólo se necesitan combinaciones para 300 instrucciones de tres operandos, nos sobran 768 – 300 = 468
combinaciones de los 16 primeros bits.

Las instrucciones de 0 operandos tienen 32 bits de código de operación. Sin embargo, no pueden utilizarse
todos los bits libremente. En concreto, sólo podrá disponerse libremente de los últimos 16 bits, ya que los
16 primeros intervienen en la codificación de las instrucciones de 1, 2 y 3 operandos y por lo tanto sólo
podrán usarse las combinaciones que estén libres.

C) Como se ha visto anteriormente, tras haber colocado las instrucciones de 1, 2 y 3 operandos nos han
sobrado 468 combinaciones de los 16 primeros bits. Por lo tanto, el número máximo de instrucciones sin
operandos que puede colocarse es de:

468×216 = 30.670.848

Por lo tanto, en las condiciones del problema podrían codificarse más de treinta millones de instrucciones
sin operandos. Naturalmente, esto no significa que haya que usar todas las combinaciones.
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz
y Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTREGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.
1.- Sabiendo que la palabra de memoria tiene 32 bits, que el repertorio de instrucciones tiene 16 instrucciones
diferentes y que cada instrucción tiene dos operandos con direccionamiento directo a memoria, ¿cuál es la
máxima memoria direccionable?
A) 214 posiciones. B) 216 posiciones. C) 228 posiciones. D) 232 posiciones.
2.- Un procesador con un bus de 10 MHz tiene una instrucción que tiene cinco etapas: lectura del código de
operación (4 ciclos de bus), lectura de la dirección del operando (3 ciclos), lectura del operando (3 ciclos), suma
de 1 al operando (3 ciclos), y almacenar el operando (3 ciclos). Cuando el procesador va a iniciar la etapa de
lectura del operando, se activa la línea de petición de interrupción. ¿Después de cuánto tiempo entra el
procesador en el ciclo de reconocimiento de interrupción?
A) 0 ns. B) 100 ns. C) 300 ns. D) 900 ns.
3.- Se desea diseñar un circuito combinacional, que sea un sumador de 6 números de 1 bit de longitud,
utilizando únicamente módulos SBC. ¿Cuál es el número mínimo de módulos SBC necesarios?
A) 3 B) 4 C) 5 D) Ninguna de las anteriores.
4.- Se tiene una memoria caché con 64 bloques con capacidad para 512 palabras cada uno. Si la función de
correspondencia es totalmente asociativa y las direcciones de memoria principal tienen 24 bits, indique en qué
bloque (expresado en decimal) se ubicará la palabra con dirección de memoria principal 001FFF expresada en
hexadecimal:
A) 31 B) Podría utilizarse cualquier bloque. C) 11 D) Ninguna de las anteriores.
5.- Si al número binario X = 111100011000 le aplicamos la siguiente secuencia de operaciones de
desplazamiento: 4 operaciones LDCS seguidas de 8 operaciones LICS, ¿cuál es el resultado de la operación?
A) 011000111100 B) 110001100011 C) 000110001111 D) Ninguna de las anteriores.
6.- Se dispone de un procesador que trabaja con un reloj de 50 MHz (= 50 × 106 Hz) que requiere 100 ciclos
para realizar una operación de encuesta. Determinar cuál debe ser la velocidad de transferencia de un CD que
transfiere datos al procesador en palabras de 16 bits, sin perder ningún dato, sabiendo que la fracción de tiempo
de CPU que se consume al realizar la operación de encuesta es del 5,12%. Nota: 1KB/s = 103 bytes / s.
A) 10 KB/s B) 50KB/s C) 100KB/s D) Ninguna de las anteriores.
7.- Dado el siguiente algoritmo. Indicar cuál será el valor de A, B y Contador al final de la ejecución del
algoritmo si el valor de dato se inicializa a 5.

Contador  8; A  dato;
Repeat
B  Contador × 2;
Decrementar Contador;
Until B < A

A) Contador = 2, A = 5 y B = 4 B) Contador = 1, A = 5 y B = 4
C) Contador = 1, A = 5 y B = 2 D) Ninguna de las anteriores.

8.- Se desea implementar el diagrama ASM de la figura utilizando la técnica de selección por estado.
S0 S1 01 S2 10 S3 11
1
Inicio Cond
0 0 1

Suponiendo que para cada estado se debe generar una sola señal de control (c0 en S0, c1 en S1, c2 en S2 y c3 en
S3), el número de entradas del multiplexor y el tamaño de la memoria ROM mínima necesaria, son
respectivamente:
A) 4 entradas y 6 palabras con 8 bits/palabra.
B) 4 entradas y 8 palabras con 6 bits/palabra.
C) 6 entradas y 16 palabras con 8 bits/palabra.
D) Ninguna de las anteriores.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


(4 ptos) Se desea construir una memoria de 512 Mbytes, de la que los últimos 32 Mbytes deberán ser de ROM y
el resto de RAM. Se dispone para ello de los siguientes módulos en cantidad suficiente:
 RAM: Módulos de tipo A, de 128 Mpalabras de 4 bits.
 RAM: Módulos de tipo B, de 64 Mpalabras de 4 bits.
 RAM: Módulos de tipo C, de 32 Mpalabras de 8 bits.
 ROM: Módulos de tipo D, de 32 Mpalabras de 4 bits.
 Circuitería combinacional adicional en cantidad suficiente.
Diseñar el módulo de memoria, indicando detalladamente la conexión de las líneas de datos, direcciones y
control necesarias para gestionarla.
SOLUCIONES

1.- Sabiendo que la palabra de memoria tiene 32 bits, que el repertorio de instrucciones tiene 16 instrucciones
diferentes y que cada instrucción tiene dos operandos con direccionamiento directo a memoria, ¿cuál es la
máxima memoria direccionable?
A) 214 posiciones. B) 216 posiciones. C) 228 posiciones. D) 232 posiciones.
Solución
El número de bits necesarios para codificar 16 instrucciones es 4. Si el tamaño de la palabra de memoria tiene
32 bits, 32-4=28 bits será el tamaño de los operandos. Por tanto, el tamaño de cada operando sería 28 bits/2=14
bits y la máxima memoria direccionable será 214 bits.

31:28 27:14 13:0


Código Op. Operando 1 Operando 2

Respuesta : A (214 posiciones)

2.- Un procesador con un bus de 10 MHz tiene una instrucción que tiene cinco etapas: lectura del código de
operación (4 ciclos de bus), lectura de la dirección del operando (3 ciclos), lectura del operando (3 ciclos), suma
de 1 al operando (3 ciclos), y almacenar el operando (3 ciclos). Cuando el procesador va a iniciar la etapa de
lectura del operando, se activa la línea de petición de interrupción. ¿Después de cuánto tiempo entra el
procesador en el ciclo de reconocimiento de interrupción?
A) 0 ns. B) 100 ns. C) 300 ns. D) 900 ns.

Solución
El procesador atenderá la interrupción cuando finalice la instrucción en curso, es decir, si se encuentra en la
etapa de lectura del operando, necesitará de otros 9 ciclos para completar la instrucción, por tanto
9 x 100 ns= 900 ns.

Respuesta : D (900 ns)

3.- Se desea diseñar un circuito combinacional, que sea un sumador de 6 números de 1 bit de longitud,
utilizando únicamente módulos SBC. ¿Cuál es el número mínimo de módulos SBC necesarios?
A) 3 B) 4 C) 5 D) Ninguna de las anteriores.
Solución

Un Sumador Binario Completo (SBC) dispone de tres entradas de 1 bit (el sumando xi, el sumando yi, y el
acarreo de la etapa anterior ci-1 ) y dos salidas de 1 bit (el acarreo a la etapa siguiente ci, y el bit de suma si ). El
funcionamiento de un SBC en notación de puntos se muestra en la Figura 1 donde cada punto representa 1 bit de
la entrada, o de la salida.

Figura 1 Notación de puntos de un SBC

Se desean sumar 6 números binarios de 1 bit cada uno, que se pueden representar de la forma siguiente: x0, x1,
x2, x3, x4, x5. Como son números de un único bit su suma como máximo da como resultado 6 en decimal, que
expresado en binario es el número 110. Por tanto, el resultado de la suma se debe expresar con cuatro bits, s2 s1
s0. En la Figura 2 se muestra la suma de estos 6 números mediante notación de puntos y haciendo uso de los
SBC’s necesarios. Como se puede observar son necesarios 4 SBC’s como mínimo.

Figura 2 Reducción mediante un árbol de Wallace

Respuesta: B (4 módulos SBC)

4.- Se tiene una memoria caché con 64 bloques con capacidad para 512 palabras cada uno. Si la función de
correspondencia es totalmente asociativa y las direcciones de memoria principal tienen 24 bits, indique en qué
bloque (expresado en decimal) se ubicará la palabra con dirección de memoria principal 001FFF expresada en
hexadecimal:
A) 31 B) Podría utilizarse cualquier bloque. C) 11 D) Ninguna de las anteriores.
Solución

Utilizando correspondencia totalmente asociativa cualquier bloque de la memoria principal se puede ubicar en
cualquier bloque de la memoria caché.
Respuesta: B (Podría utilizarse cualquier bloque)

5.- Si al número binario X = 111100011000 le aplicamos la siguiente secuencia de operaciones de


desplazamiento: 4 operaciones LDCS seguidas de 8 operaciones LICS, ¿cuál es el resultado de la operación?
A) 011000111100 B) 110001100011 C) 000110001111 D) Ninguna de las anteriores.
Solución

Si analizamos la secuencia de operaciones de desplazamiento propuesta, las 4 operaciones LDCS se ven


contrarrestadas por otras 4 operaciones LICS. Por ello, la secuencia de desplazamientos del enunciado equivale
a aplicar 4 operaciones LICS sobre el número binario. El resultado es 000110001111.

Respuesta: C (000110001111)

6.- Se dispone de un procesador que trabaja con un reloj de 50 MHz (= 50 × 106 Hz) que requiere 100 ciclos
para realizar una operación de encuesta. Determinar cuál debe ser la velocidad de transferencia de un CD que
transfiere datos al procesador en palabras de 16 bits, sin perder ningún dato, sabiendo que la fracción de tiempo
de CPU que se consume al realizar la operación de encuesta es del 5,12%. Nota: 1KB/s = 103 bytes / s.
A) 10 KB/s B) 50KB/s C) 100KB/s D) Ninguna de las anteriores.
Solución

El número de ciclos/s que se emplean en la operación de encuesta son:

5,12% (fracción consumida) × (50×106 ciclos/s) =

0,0512 × (50×106) = 2,56 ×106 ciclos/s


Si N es el número de encuestas/s entonces:

N encuestas/s × 100 ciclos/encuesta = 2,56 × 106 ciclos /s

De donde:

N = 2,56 × 104 encuestas / s =


25K encuestas / s (con 1 K = 103 bytes)

Por último la velocidad será

25K encuestas /s × (2 bytes /encuesta) = 50 Kbytes / s = 50 Kbytes/s

Respuesta: B (50KB/s)

7.- Dado el siguiente algoritmo. Indicar cuál será el valor de A, B y Contador al final de la ejecución del
algoritmo si el valor de dato se inicializa a 5.

Contador  8; A  dato;
Repeat
B  Contador × 2;
Decrementar Contador;
Until B < A

A) Contador = 2, A = 5 y B = 4 B) Contador = 1, A = 5 y B = 4
C) Contador = 1, A = 5 y B = 2 D) Ninguna de las anteriores.

Solución

Inicialmente Contador = 8 y A = 5 y se comienza el bucle. El primer valor de B es 16 y Contador pasa a valer 7.


Como 16 es mayor que 5 se repite el bucle, hasta que B valga 4 en cuyo caso el valor de la variable Contador al
entrar en el bucle es 2 y al salir es 1. Por lo tanto la solución es:

B = 4 Contador = 1 y A = 5

Respuesta: B. (Contador = 1, A= 5 y B = 4)

8.- Se desea implementar el diagrama ASM de la figura utilizando la técnica de selección por estado.

S0 S1 01 S2 10 S3 11
1
Inicio Cond
0 0 1

Suponiendo que para cada estado se debe generar una sola señal de control (c0 en S0, c1 en S1, c2 en S2 y c3 en
S3), el número de entradas del multiplexor y el tamaño de la memoria ROM mínima necesaria, son
respectivamente:
A) 4 entradas y 6 palabras con 8 bits/palabra.
B) 4 entradas y 8 palabras con 6 bits/palabra.
C) 6 entradas y 16 palabras con 8 bits/palabra.
D) Ninguna de las anteriores.

Solución
El diagrama mostrado en el enunciado tiene 4 estados, 2 condiciones (que se consultan de manera excluyente) y
4 señales de control. Por tanto, es necesario usar 2 bits para la codificación del estado (n = 2), dos señales de
condición (q = 2) y cuatro señales de control (m = 4).

Como en cada estado sólo se necesita una señal de condición, la técnica de selección por estado necesita
multiplexor de 2n entradas y la ROM debe tener al menos (2n+1) palabras con (n+m) bits/palabra. Por lo tanto, el
MUX debe tener 4 entradas y la memoria ROM mínima necesaria un tamaño de 8 palabras con 6 bits/palabra.

Respuesta: B (4 entradas y 8 palabras con 6 bits/palabra)

PROBLEMA
Se desea construir una memoria de 512 Mbytes, de la que los últimos 32 Mbytes deberán ser de ROM y el resto
de RAM. Se dispone para ello de los siguientes módulos en cantidad suficiente:
 RAM: Módulos de tipo A, de 128 Mpalabras de 4 bits.
 RAM: Módulos de tipo B, de 64 Mpalabras de 4 bits.
 RAM: Módulos de tipo C, de 32 Mpalabras de 8 bits.
 ROM: Módulos de tipo D, de 32 Mpalabras de 4 bits.
 Circuitería combinacional adicional en cantidad suficiente.

Diseñar el módulo de memoria, indicando detalladamente la conexión de las líneas de datos, direcciones y
control necesarias para gestionarla.

Solución
En la Figura 1 aparece el esquema de la memoria requerida. Por simplicidad, no se han conectado entre sí las
líneas R y W, que van conectadas a todos los módulos de memoria que posean esa conexión.
Figura 1. Conexión de los módulos de memoria
ETc 2 - I ~ S~n'?CvJ~
...

_ _ =12 .::

~oo 'flSe¡ retA.1"O c..pl'"

":7

..2..0 \·,~s\v.vt:f.i Of1~";' ~ ~"'\.{ ~'O

~I __ :$'1$9/

- (, <:;j I
..loo· lo ¡ ¡

-~---
-ti. ..
-2. (O' rpsr¡J"'~~~"
I '
Soo • lo Úl('l10 mo.<.t W) D

L
'¡>->'"I

D l'r.
'hc.j J{) r .... J,'s 'lo ;.111~Ast::
d t 'cE> [.;« q. () f' ~
t-..lm c....

e\ \lo. lar de del c~ O.


'''' dIrt>CC Ibt"\

J 4 b. ~~ , p... ... "s~ v4110 r M> \e SJff\t.. t" \ valo ....


)

I'M pi.' <"c.....


f' 110
(l..a
~ ~
p,~'O
bJ~
j
d@ los ~. de le=. C.If'!cc1O'" •
• ~
I

1\.t s ...'
I
'o
~\ dI" lc~
j •

~~ le fl' pt':isa ,.. va.IQr-


'f. ¡) P 're pJi' d""
llf
por e.\ I
~ ~ ~68~Lt
lo .L"h. '('(). (1 ~ o 1ft' re..
,J
-. 16 3~.a

.-C>A
--
4)
Al P o dI'r .s 01.:- p 00 { ~ po.,c.. \P¡l>'- /Ptc r','LIT
O I

~ ro lo. braS
1
\".0 ¡j p~·t n...!. ~CJ O f1,sJ . s,' So""'

ele S' fa 6J />;'


r(l

S
10D
o

o ~
b l
f o o
o f 1o 6
! ~ _.. --_. AODU

~, o
J 4
/),,.. boJe

c) SUrn¿¡ .3n J¡/ 3 l""> ~ot-J)


3 f)
,...
.3 f) -6;1 D'!tu. A _o/ ~
-==I~ 7

¡¿ P.JtJ /Je<k j -t .3 n b,' I­


V 31)

i),rPC('
B __

~ (3(\;D d-;=;--- ._--


"-----~.---

DC\ Jo .< x j

+)

----,­
- Ce> lYl r Q ,:::1:1
~~ /,
M ~o .,l,I7I~ \rO~
/
V r R.ar-'J
t. co ¿~ 'e\~"

"
If\

"-.-­ -2 l( .208 l"1 JO¡/. el ~ 1J"


I d&- so
1V'c.!Ir
8/
. / lA

8 4 r,,-fí.,:.1

R
)'
., I..r.r Ib'y¡
lo o
.200
e h-I e h--I
q
Q "r¡ ::; 2 4! ~ 20 B =- /1 o 6 l¡ q~ Po t<) ..2 y 2 IZ =­
1oB5L.¡Lj
106 L¡Cft 1 I
---- - ~o lt k 0,' t ... ~ lo~ e. 102.4
~0.2'-f
~
~ ~)l: lo?\{ b,b J) FQ)..so e
-~
-
/

~o, M c.. k '~


«~
,o;:~

r.. O.?>¡-.(:j ~~
\ --T-II:-T--- .----1
. .__!_~. -l_:'-L.~ .@_~-.J
~2 b.-I
.l 2 - .Zo -: 7'2 J,- f tClrt.:. {i'/~c~¡/:;" d p
So- I ~o
JJ
/0"f/'-Iv d
,z
2

J
/
d~ lOS
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz
y Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 3 puntos, las cuestiones teóricas 4 puntos y el problema 3 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.2 puntos. El test es eliminatorio, debiendo obtener una
calificación mínima de 1.3 puntos para superarlo (con 3 preguntas correctas se supera).
Examen tipo A.
1.- Sabiendo que la frecuencia del reloj del bus de la figura es de 100 MHz.
T1 T2 T3

Reloj

A0 - A23

D0- D31

Lect / Escr

¿Cuál será el ancho de banda de este bus expresado en bytes/s?:

A) 35 × 106 B) 80 × 106 C) 133,33 × 106 D) Ninguna de las anteriores.


2.-Se tiene un sistema con una memoria principal de 512 Kpalabras y una memoria caché de 64 Kpalabras con
bloques de 32 palabras, siendo el tamaño de la palabra de 4 bytes. Sabiendo que el sistema de memoria caché
tiene asignada una función de correspondencia de tipo directo, indicar cuál de las siguientes direcciones
provocaría un reemplazamiento del bloque de memoria caché ocupado por el bloque de memoria principal
asociado a la dirección 1712010.
A) 8266810 B) 1737610 C) 1715010 D) Ninguna de las anteriores.
3.- Se desea diseñar un circuito combinacional, que sea un sumador de 1 número de 3 bits de longitud, 5
números de 2 bits de longitud y 1 número de 1 bit de longitud, utilizando únicamente módulos SBC. ¿Cuál es el
número mínimo de módulos SBC necesarios?
A) 8 B) 7 C) 9 D) Ninguna de las anteriores.
4.- Sea una CPU con 8 líneas de interrupción que denotamos por PI i, con i = 0,…7, siendo 7 el menor nivel de
prioridad, y 0 el mayor. Se producen 6 peticiones de interrupción, en el siguiente orden: PI3, PI1, PI0, PI6, PI5,
PI7. Teniendo en cuenta que la duración de las rutinas de interrupción y los tiempos de solicitud de las
interrupciones son los dados en la tabla siguiente, ¿cuál es el orden en que se tratan las interrupciones si el
sistema permite anidamiento de interrupciones?
Tiempo Duración A) PI3 PI1 PI0 PI6 PI5 PI7
Interrupción
petición rutina
PI3 0 5 B) PI3 PI0 PI1 PI6 PI5 PI7
PI1 3 3
PI0 3 2 C) PI3 PI0 PI1 PI3 PI6 PI5 PI6 PI7
PI6 8 3 D) Ninguna de las anteriores.
PI5 11 4
PI7 15 2
5.- Un computador posee 1 registro índice cuyo contenido en un instante concreto, expresado en hexadecimal,
es (R1) = 000B. El computador tiene una memoria de 64Kpalabras de 16 bits. Supóngase que cada palabra
contiene un valor igual a su dirección en memoria y que se utiliza una instrucción con un valor en el campo de
direcciones (CD) = (00C9). La dirección final en el caso de que se utilicen los direccionamientos Indirecto e
Indexado a través del registro R1 es respectivamente:
A) 00C9 y 00D4 B) 00C7 y 000B C) 00C8 y 00D7 D) Ninguna de las anteriores.
6.- En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indicar cuál de las siguientes
afirmaciones, acerca de las señales de control (ci), es correcta:

s1 / c1,c3
Ī
s1 A) c2 = S1+ S2 × s1
B) c3 = S2 × s1
I/c0 s0 / c2
S0 S1 S2 C) Las dos anteriores son ciertas.
D) Las dos anteriores son falsas.
s0 / c2

Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.


Cuestión 1 (1 punto): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (1 punto): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (1 punto): Justificar razonadamente el resultado de la pregunta 3 del test.

Cuestión 4 (1 punto): Justificar razonadamente el resultado de la pregunta 4 del test.


Problema (Contestar el problema en lo que resta de este folio por delante y por detrás como máximo):
Se tiene un computador cuyo procesador trabaja con un reloj de 1 GHz (109 Hz). Cada vez que se programa una
transferencia por DMA (se necesitan 2000 ciclos de reloj para ello) el disco duro transfiere directamente a
memoria un bloque de 8KB (8 × 210 bytes), siendo la velocidad de funcionamiento del disco de 8MB/s (8 × 106
bytes/s).

Cuando acaba la transferencia de un bloque, el procesador recibe una petición de interrupción. El procesador
necesita 1000 ciclos de reloj en total para detectar la interrupción, identificarla, saltar a la rutina de atención
correspondiente y ejecutar dicha rutina.

Se pide lo siguiente:
A) (0.75 ptos) El tiempo t1 que el procesador utilizará para programar los controladores.
B) (0.75 ptos) El tiempo ttransferencia que el controlador necesitará para transferir el bloque entero.
C) (0.75 ptos) El tiempo t2 que dedica el procesador a finalizar la transferencia por DMA.
D) (0.75 ptos) La sobrecarga que sufre el procesador al realizar una operación de E/S por DMA con el disco
duro.

Nota: La sobrecarga del procesador en una operación de E/S es el porcentaje de tiempo que dedica el
procesador a la operación de E/S frente al tiempo total que tiene.
SOLUCIONES

1.- Sabiendo que la frecuencia del reloj del bus de la figura es de 100 MHz.
T1 T2 T3

Reloj

A0 - A23

D0- D31

Lect / Escr

¿Cuál será el ancho de banda de este bus expresado en bytes/s?:

A) 35 × 106 B) 80 × 106 C) 133,33 × 106 D) Ninguna de las anteriores.

Solución:

Para calcular el ancho de banda de un bus dado se necesitan dos datos:


la cantidad de información que se puede transferir por el bus
el tiempo que se necesita para transferir esa información.

Según la figura del enunciado, el protocolo puede transferir 4 bytes (puesto que el bus de datos es de 32 bits,
(D0 - D31) en 3 ciclos (T1 / T2 / T3).

Como la frecuencia del bus es de 100 MHz, eso significa que el tiempo de ciclo es 10 ns. Y por lo tanto, el ancho
de banda será el siguiente:

Respuesta: C) 133,33 × 106

2.-Se tiene un sistema con una memoria principal de 512 Kpalabras y una memoria caché de 64 Kpalabras con
bloques de 32 palabras, siendo el tamaño de la palabra de 4 bytes. Sabiendo que el sistema de memoria caché
tiene asignada una función de correspondencia de tipo directo, indicar cuál de las siguientes direcciones
provocaría un reemplazamiento del bloque de memoria caché ocupado por el bloque de memoria principal
asociado a la dirección 1712010.
A) 8266810 B) 1737610 C) 1715010 D) Ninguna de las anteriores.

Solución:

Véase el apartado 2.5.2 del libro de teoría. Las direcciones de memoria principal tendrán una anchura de n=19
bits, ya que el número total de palabras de ésta es de 512 Kpalabras = 219 palabras.

Como la memoria caché utiliza una función de correspondencia directa, una dirección de memoria principal se
compondrá de los campos Etiqueta, Bloque y Palabra. La capacidad de la memoria caché es de 64 Kpalabras
= 216 palabras. Como se tienen 32 palabras/bloque, el número total de bloques en la memoria caché = 216
palabras /(25 palabras/bloque) = 211 bloques.

Por lo tanto el campo Bloque tiene una anchura de b = 11 bits. Como hay 25 palabras/bloque, se necesitan 5 bits
para el campo Palabra.
Finalmente, el campo Etiqueta tendrá 19 - (11+5) = 3 bits de anchura.

Resumiendo, una dirección estará compuesta por 19 bits correspondiendo los 3 primeros bits a la etiqueta, los 11
siguientes al bloque y los 5 últimos a la palabra.

Para responder a esta pregunta basta con descomponer las direcciones proporcionadas en la solución en sus
respectivos 3 campos: 1712010 = 000 01000010111 00000

Opción A) 8266810 = 001 01000010111 01100.


Tiene el mismo número de bloque y distinta etiqueta. Si se hiciera una referencia a memoria, éste bloque
sustituiría al actual (el asociado al 1712010).

Opción B) 1737610 = 000 01000011111 00000.


Es otro bloque y no se corresponde con el ocupado por el bloque asociado a la dirección 1712010

Opción C) 1715010 = 000 01000010111 11110.


Está en el mismo bloque y tiene igual etiqueta, y por lo tanto no implica reemplazamiento.

Respuesta: A

3.- Se desea diseñar un circuito combinacional, que sea un sumador de 1 número de 3 bits de longitud, 5
números de 2 bits de longitud y 1 número de 1 bit de longitud, utilizando únicamente módulos SBC. ¿Cuál es el
número mínimo de módulos SBC necesarios?
A) 8 B) 7 C) 9 D) Ninguna de las anteriores.

Solución:

Un Sumador Binario Completo (SBC) dispone de tres entradas de 1 bit (el sumando xi, el sumando yi, y el
acarreo de la etapa anterior ci-1) y dos salidas de 1 bit (el acarreo a la etapa siguiente ci, y el bit de suma si).

El funcionamiento de un SBC en notación de puntos se muestra en la siguiente figura, donde cada punto
representa 1 bit de la entrada, o de la salida.

Notación de puntos de un SBC

En la siguiente figura se muestra la suma de los números indicados en la cuestión mediante notación de puntos y
haciendo uso de los SBC’s necesarios. Como se puede observar son necesarios 10 SBC’s como mínimo.
Reducción mediante un árbol de Wallace

Respuesta: D (10 módulos SBC’s, ninguna de las anteriores)

4.- Sea una CPU con 8 líneas de interrupción que denotamos por PI i, con i = 0,…7, siendo 7 el menor nivel de
prioridad, y 0 el mayor. Se producen 6 peticiones de interrupción, en el siguiente orden: PI3, PI1, PI0, PI6, PI5,
PI7. Teniendo en cuenta que la duración de las rutinas de interrupción y los tiempos de solicitud de las
interrupciones son los dados en la tabla siguiente, ¿cuál es el orden en que se tratan las interrupciones si el
sistema permite anidamiento de interrupciones?

Tiempo Duración A) PI3 PI1 PI0 PI6 PI5 PI7


Interrupción
petición rutina
PI3 0 5 B) PI3 PI0 PI1 PI6 PI5 PI7
PI1 3 3
PI0 3 2 C) PI3 PI0 PI1 PI3 PI6 PI5 PI6 PI7
PI6 8 3 D) Ninguna de las anteriores.
PI5 11 4
PI7 15 2

Solución:

Como el sistema permite anidamiento, cuando comienza a ejecutarse el programa de servicio de una interrupción
si llega una más prioritaria, se interrumpe la ejecución de la rutina para atender a la más prioritaria. Por tanto, el
cronograma de la ejecución de las rutinas sería el siguiente:

PI3 PI0 PI1 PI3 PI6 PI5 PI6 PI7

Llegada: PI3 PI0 PI6 PI5 PI7


PI1

Por tanto, la secuencia se corresponde con la respuesta c).

Respuesta: C (PI3 PI0 PI1 PI3 PI6 PI5 PI6 PI7)

5.- Un computador posee 1 registro índice cuyo contenido en un instante concreto, expresado en hexadecimal,
es (R1) = 000B. El computador tiene una memoria de 64Kpalabras de 16 bits. Supóngase que cada palabra
contiene un valor igual a su dirección en memoria y que se utiliza una instrucción con un valor en el campo de
direcciones (CD) = (00C9). La dirección final en el caso de que se utilicen los direccionamientos Indirecto e
Indexado a través del registro R1 es respectivamente:
A) 00C9 y 00D4 B) 00C7 y 000B C) 00C8 y 00D7 D) Ninguna de las anteriores.

Solución:

Direccionamiento indirecto: La dirección inicial se obtiene leyendo el contenido de la posición de memoria


dada por el campo de direcciones de la instrucción: (CD) = 00C9.

Como según el enunciado, cada palabra contiene un valor igual a su dirección en memoria, la indirección (00C9)
= 00C9.

Por tanto, la dirección de memoria a la que se accede es 00C9.

Direccionamiento indexado a través del registro R1: En este caso, como ((CD)) = (00C9) = 00C9. La
dirección definitiva se calcula sumando el contenido del registro índice con la dirección obtenida en la
indirección: (R1) + 00C9 = 000B+00C9 = 00D4.

La dirección de memoria a la que se accede en este caso es 00D4.

Respuesta: A) 00C9 y 00D4

6.- En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indicar cuál de las siguientes
afirmaciones, acerca de las señales de control (ci), es correcta:

s1 / c1, c3
Ī
s1 A) c2 = S1+ S2 × s1
B) c3 = S2 × s1
I/c0 s0 / c2
S0 S1 S2 C) Las dos anteriores son ciertas.
D) Las dos anteriores son falsas.
s0 / c2

Solución:

Para la activación de c2 hay que estar en el estado S1, pudiendo valer s0 0 ó 1. Sin embargo, partiendo del estado
S2, c2 no se activa. Por tanto, la respuesta A) es falsa.

Para la activación de c3 es necesario estar en el estado S2 y s1=1, por tanto la respuesta B) es cierta.

PROBLEMA

Se tiene un computador cuyo procesador trabaja con un reloj de 1 GHz (109 Hz). Cada vez que se programa una
transferencia por DMA (se necesitan 2000 ciclos de reloj para ello) el disco duro transfiere directamente a
memoria un bloque de 8KB (8 × 210 bytes), siendo la velocidad de funcionamiento del disco de 8MB/s (8 × 106
bytes/s).

Cuando acaba la transferencia de un bloque, el procesador recibe una petición de interrupción. El procesador
necesita 1000 ciclos de reloj en total para detectar la interrupción, identificarla, saltar a la rutina de atención
correspondiente y ejecutar dicha rutina.

Se pide lo siguiente:
A) (0.75 ptos) El tiempo t1 que el procesador utilizará para programar los controladores.
B) (0.75 ptos) El tiempo ttransferencia que el controlador necesitará para transferir el bloque entero.
C) (0.75 ptos) El tiempo t2 que dedica el procesador a finalizar la transferencia por DMA.
D) (0.75 ptos) La sobrecarga que sufre el procesador al realizar una operación de E/S por DMA con el disco
duro.

Nota: La sobrecarga del procesador en una operación de E/S es el porcentaje de tiempo que dedica el
procesador a la operación de E/S frente al tiempo total que tiene.

SOLUCIÓN

Partiendo de que la frecuencia del reloj es de 1 GHz se puede calcular el periodo de la señal de reloj o la
duración del ciclo de reloj:
1 1 1
T    110 9 s  1 ns
f 1GHz 110 Hz
9

En este problema, se tiene que calcular la sobrecarga para una transferencia por DMA. Para iniciar una
transferencia por DMA el procesador debe programar tanto el controlador de DMA como el controlador del
disco duro, y para ello, como se indica en el enunciado, el procesador necesita 2000 ciclos de reloj (en general el
procesador utilizará un tiempo t1 para programar los controladores).
Cuando el procesador haya programado el controlador de DMA, éste cogerá el control del bus y comenzará a
realizar la transferencia. Mientras dure la transferencia (el controlador necesitará un tiempo ttransferencia para
transferir el bloque entero) el procesador podrá dedicarse a otras tareas. Sin embargo cuando acabe la
transferencia, el controlador de DMA enviará una petición de interrupción al procesador para que éste sepa que
la transferencia ha terminado. En este último paso el procesador dedica 1000 ciclos a la operación de E/S (t2 es
el tiempo que dedica el procesador a finalizar la transferencia por DMA).
El disco duro en este tipo de transferencias no está trabajando de forma continua, realiza una única transferencia
de un bloque grande. Esto implica que a la hora de calcular la sobrecarga no se puede considerar el intervalo de
tiempo entre dos datos consecutivos como referencia. El intervalo de tiempo a considerar es el siguiente: se
empieza a contar desde que el procesador decide iniciar la transferencia, incluyendo el tiempo para que transfiera
el bloque entero hasta que termine de ejecutar la rutina del final de la transferencia. De forma esquemática:
t
ttransferencia

t1 t2

Programar Transferencia Fin de la


controlador del bloque transferencia
Petición interrupción
CPU DMA CPU

Por lo tanto la sobrecarga (SC) se calcula (en tanto por ciento) de la siguiente forma:
t1  t 2 t1  t 2
SC %   100  100
t t1  ttransferencia  t 2
Se necesita conocer cuánto tiempo precisa el periférico para transferir un bloque entero. La velocidad de
funcionamiento de este disco duro es de 8 MB/s y los bloques que transfiere son de 8 KB:

8 Kb 8  210 bytes
ttransferencia    1024 10 6 s  1024s
8 Mb s 8 10 bytes s
6

Si se analiza bien la ecuación anterior, se ve que por una parte se dice que 8 KB = 8 × 210 bytes, mientras que
por otra parte se tiene que 8 MB/s = 8 × 106 bytes/s.
Es muy importante diferenciar estos dos casos, ya que los múltiplos (kilo, mega) no representan lo mismo en
ambos casos. Cuando se habla de cantidad de información o capacidad de almacenamiento de los dispositivos los
múltiplos (kilo, mega, giga…) representan potencias de 2 (210, 220, 230…, respectivamente), sin embargo cuando
se habla de velocidad, los múltiplos representan potencias de 10 (103, 106, 109…, respectivamente).
A la hora de calcular la sobrecarga los tiempos t1 y t2 hay que indicarlos en segundos y no en ciclos para realizar
correctamente la división con t. Para ello se realiza el siguiente cálculo:
t1 = 2000 ciclos 1 ns/ciclo = 2000 ns
t2 = 1000 ciclos  1 ns/ciclo = 1000 ns
Y la sobrecarga será:

SC % 
2000  1000ns 100 
3s
 0,29 %
2000  1000ns  1024s 1027 s
Nota: Hay que tener en cuenta que en la ecuación anterior los tiempos están indicados en distintas unidades, dos
están en nanosegundos, y el tercero en microsegundos. Los tres tiempos se deben poner en la misma unidad de
tiempo, en este caso en microsegundos.
La sobrecarga en este caso es muy pequeña, el procesador dedica poco tiempo a la operación de entrada/salida
puesto que el controlador de DMA libera de gran parte de ese trabajo al procesador.
r2o 11¡ _ I~ s -A

!)
(R.I): ooo A
,#..2 µ. /"'/ " I 6 - . . E/ i::1:1,,/,,.,, ,cf:, d~ e.:c'< d,r.-ee10',,: v~k,.- d,r¡111u·,b',.,

cu ,'r1slr-vco'd,, .::. (ooAB)

01rt'rc10',, ,·n cl1'f"~r h

iJ,r-~ .: ooA8 -o (oo4B) .. ooAB


ooA 8 .:: t:> oAd
E I t.rJ,, ft0ri . do ej. /'" cltr

D1re. in el~~ c...cb


©
V•r :- o oA 8
+.
RJ = o o o Ll
O o B ~
-- '* I (L),. lt#~; ¿ dt!> (oo 13s).: ooB5

2} (Jo oo) ~ .Jo '1 O .J.oAó R~, ti o · (fi..e) :- 4 O


1
r~o..:1v) -- .,306 o
J.otl 1) 12 I 1 J:J Jo~ [. Ro] ) ~o .<J::J
(JrJ llo} .: JO O V
(Jo 6~): .sso
+
- l, o
3 060
(3~ 6 o)~ s so

(R 1)= ss o
J.oll O 12 ? J iJ 3~ () () J ( Rl) ..- n(.Jo oo) .::;;¡~ R2= 304 o
,Lo¡ji) ¡¿ /¡
'
[ [ !l?]) J . {p4) - n (n (~?)) ::c,
{,12") ~ 4o (iJ. 2)= Jooo .::'4{3c 4o) ~ .3oa o
(!i)= SSo ~ooo) -:: 3o 4 o
d=- (!24)= Jo4o
(P.~) ::. .30" o
(12~) -: ? ? ?
{?4) = 3o 4o
S ,· StJ !° ,,.,!' m os 1"e e/ ¡',.. t'o'o ~ cb.s la~ r~1:S Jro!i Jo,,., fJ

(R~) ~ p J'" .s.. /¡.J r ,¡;Y! 6tO ,.. ¡ ~ /, @


I
J¡;.. s.',., fe. "1 '$
no ~s. ).. A,. .b ' Jv ~ / 1 } e n-o r tY1 o/ ,-:,, ."
.2 OA i)
PJ,'tb J {~) = (4~) J ,¡ C)t'l)¡#17 l'd. d. Jc.~,..L¡~
). o A f)
R2, -#Joo o J (R2) : ..300 o .
~)
a.,74 ,..o. d:,,.. ~ r1 $ 6 ,· l.s
', ::::. ,. ,, Co,, ...¡. /,el~ s:

s
- ¿ "

s 1 c:4rn ~!=:
< =b Q..o M
) Bv. d1.- " Ao 6 • ~s
r~

"
z~ 8
=
J
•' d c.~~= 'Z b ,·b

4) t1"',.,,. ~u~ o r1 O. J,1/ a. ~ ¡>~ I Je. /? .b :l.s

/ ] A i<~J fJ\ 1:1\.1 íO fo) C AR ~ 14 A.:S r~('c,. 't ¡/ e


'/
1. 11 os
~AQt'tJ 1 40nn -
M ~ se~ el) (¡1.)

- ~
pa~S ?
Lse-= ~
¡¡71 tPtJ Eí!J 1"1~'2CA
r1 et"? ij
~ 9 rl ~ 1)1'1 +o,. ?~ ~ t-S B =b
1oc4a ~ i:i 1 ,, ,,
r1 t.$('~ ¡t~ ro_ . _o1
,, 1\

@ d- A fl. ~ ü r-f é : i.- - -- "º


'2ec
s) Dt ~~~_.,,•.-----r
¡ -----~
ko~vP

So /1 e ¡.J: :.0\1'
- --:o-:TT~ .t t
A ()fo"'¡1 _1

tJ ev p ().e_._ _ __
D~ -
D2

R~&.0n~·~e~1:,...,::.-·----~~~~~~~~~--

~LA \JISTA D éL DU.\ GR/JM.Ll

).. )/ ,,~111. ¡,, ot¡)l'a.r 'r:;,,., s~ ~"),v, r º"da "'/ d1~í'o.s 1'IN0 ~/be
~tJ for. ll'A r10',., d~J i>i.1s Ae.1' 1°1',., d, u.Jo c JNt?éDl lJro? ef,I
'
,, J •• b dt.1dc.... d .. I
~ 1.:1 " ' o __. S".i- ? ocJ ,.., ""'c. e/¿,,,,_ ¡;o,- e,.,.,. io ~ ,...,
h I
l'Y n€1)J,lj íD
..
1 y#. 'lle ,..,. ,;¡ ''° J
-.Jr, /. ·,-,..,..,
1 ,o d~ 1 do
~ f1:1 r /'~,..; o1. b1tk c..

/1.J v to/oodc..cJ,-1 de a,,,.,,,.,,,;Íe.uó;.,

k J,r,~c c1~ Jo ~ J, ('1 /.r¡ ,. /


p,,
/"'f: t'.CI? 0 /'In? I
ir. é: e J.w,_ ,. / d. s¡;o J 1.J1v" ?- iJe
b s
1) (C1[rlTU)
'1 ,~,. 'b 1 Q Je "u Jo,..,';> .. r b
1
1 .,,,
e/t> iJ .So p.-ro ¡#,, U# ,, )..,..,, '
r-1~ 1

hvc.. ( C/~,. J.o)


) c. / , -V- c.
o (' tJ / , ~ (' b~


I
e; ,.
G)
:r. -]~ DPJQ rro //a, Jo /~ T8

.tJ 1 E sº
s,
,~ r
W'I
0

j
.Io
o
O
o
J,

O
Jz
o
O
I~
"
t
S
~
1
0
..s; Pr
,.
f
0
i
o~
I~
~
1~
1o 0 .2 o é) , i) 4 " 1 .2º
- ' do< '"Yº JF f s.14111 .3 o _o 1 1 1 1
4 o 1 o o o .----., 3°
~ ~ ~ ~
\1
. Tod:>s CV...o J,l =10=ll 4of s o o f iº-
I 3 ~¡O l ~ O o ,¿~
~
Q 4 1
1
g- "'bcios l""fO l !,J3.-loa-o 11 - 0. d. - 1 t _ 1 Í \!.
'
1 1 ó O O O O f ~o
4! (/ J o o 1 1 • 1 111.
-o '00l,7 --- oo 1 ~ l o j o f o 1 .J o

_!_ ¡ i o 1 i • f , '~
#2 1 J ~ () o- o - ,1 ..3 o
/3 J ! o I 4 t ~ 1- ~
J't 1 t f o 4 o 1 ~
I S t 1 1 1 \ J_ - \ ,J_ 1~

l j '1 pet ~ kM 1"1'1 v.; h, _


J. ~. _.l. ¡,
-Ja l~ .h J-l
- -
J~

J~ 1
.l2 1~ 4s " _
j
l- lz 1 11t

l2 o .!t.. 1 f l 1!
·, l i \ r1 / 1~
- - !
J.o / lz o o 1i
0
~ = 1.2 + 13 s 1
: r~ + i z r, · ~ 0
'P '?:> .k Jp "' A.

cetJ -. 1, .b ,· ~ b.i, e-le. ks


...¿:,, 'o, f-,. bu~ cL-r,-er 1Cl'I ...,~

I fA.
N E:l'1 '"'ºY- J(. 16 p.o fC') - a:,,,_ o

~ ~ ~ ¡t ,.. ~ 6 r<.A M

A7 B) So I~ t 1'o n CP "
'º. e_ e r¡ •'t\ ~ l ee:... d..!? ~
3 ! l"l.i
11f
-COI"'\
~M
'"º liJt 1~ : .s ~ z 1 ti
1tf
(C l! ~ ~ 1"'- " y .c=ti .,<¡).',, ! 1t1
B e

--
Cor.
{J..~1"1

rr.t..r \2.~li><~ ~c.


g i' '-\ '¿ . . \' ~ .3 ,. l.
'
,z.1
\ 'L i
'1 1?f
\1.'ft.ii 'g

M!:)?~ -t-
rAHc.No
-
?6: l..2.ílL.=t1 .z ~ ~ 0
'~ ._ ..:.
·10
A1 ~ ~ 8 oC::.-11"4:.S
'. ~ \
1-o r2A t'7
' ~ o lL + .a <¡ 4 \L .:::A J. M )l. ' (;, ~ z ;::t~ Ao -: " ~ 1,
A,q /j,¡ .A,r\.á1c \ A~41v .,643 A,z tJ,, P10 A~/.l p /J1 /J6 As ~~ 4~ A2 A, .ll o u.r-.-rt ,~,,,.ci!) Ce 13
- }o - - - - . - o ~ á __o_o_ o_o_-+-----e::::-
0 o O l - i 1 1 F F" f"' F PA f"\ O 'I f
-~--J 1
o oo
o o t
; o
• 1
-
• i
o
js
1 <..o
rr~
f
RAM . ~ 1
.3

D f O
o -
r º1 LIºººº
SF'rFf: f2t.ri 4 ,s

o
o o 6 o oºº 6.- +
--t
f 1 ¡;to,,
f_._ .... '-.f. F'FrF'
' o j Soooo
~

.f 'º~
v__o_i_J 1
_Cf fFrF
t2ori ~.4

L) 'º
,, l
'· o
j o ~
! 1-2 ~ F f f
o l e O ooo
O O Ou
~,., ~ .N

o 1, Rol"( i~,13
f ,.'\) ~i:- ~F
(Jf tF ºº
l~
01..>
·( F F f í
;<.ori ll, IJ

DPcod , · ~· ceo.do,.-. ~P pdrj,'t\ c.~ ~ 3 a.. 8 - ~'""A,'! A':1

4
. ';
·~
Ar;, t-" 1 r=J - . f". l'°i J 12A:o fio
QA"'f
2 D1S l e~f)o l ª:~ Dll ~~~
~Qw 1 1 1 1 (¿) hhl 1 1
lt. 1 , l~ . j) 1blS
\).J
e Pu ~,., 1 l
-t" «· 1 1 ~ 1~
:,:hl
~IV C~
§i$ 1 ~
(' ..S I 1 ~ ~l e.s

~
b to.º 15

r, 11 ~ ~ í\ 11 ~~ n \1 ~t
[)o
~'i

RQ~
PI,)..,

G y

~
l'

L_
es
-
- c.s '~Ll~

~~~
02~ - - 1
11 éEi···~ C S't

!z
~t: S~
~o
1 (
b
~: nr 1 ~! n11 ~s~ /)¡ }-
,--
M I (l..' c7 I ' li{ ;:;-
'

\~
( ( ( ( ( (
[ \ ( :f (
f
¡ ( ( ( ' ( (
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz y
Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTRÉGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.
1.- Considérese una máquina en la que las instrucciones entre registros (de cálculo) emplean 4 ciclos de reloj
para su ejecución y el resto de instrucciones usan 6 ciclos. Si un programa de 2000 instrucciones, donde un
20% de las mismas son de cálculo, se ejecuta en 7 ms, ¿cuál es la frecuencia de reloj en ciclos?
A) 625 ns. B) 350 ns. C) 515 ns. D) Ninguna de las anteriores.
2.- Indicar cuál debe ser el tamaño mínimo del módulo de memoria ROM necesario para diseñar un comparador
de dos números de 3 bits que genere como salidas las funciones “mayor que” y “menor que”.
A) 26 palabras × 2 bits/palabra. B) 26 palabras × 3 bits/palabra.
C) 26 palabras × 6 bits/palabra. D) Ninguna de las anteriores.
3.- En un disco magnético de 1024 pistas numeradas de 0 a 1023 se tiene la siguiente cola de peticiones de
disco: 100, 405, 1020, 95, 321, 627, 940, 3. Inicialmente la cabeza se encuentra en la pista 300. El orden en el
que se atienden las peticiones es el siguiente: 321, 405, 627, 940, 1020, 100, 95, 3. ¿Qué tipo de planificación
usa el disco?
A) SSTF. B) SCAN. C) LOOK. D) Las tres anteriores son posibles.
4.- Se desea diseñar un circuito combinacional, que sea un sumador de 13 números de 1 bit de longitud,
utilizando únicamente módulos SBC. Indicar cuál es el número mínimo de módulos SBC necesarios para ello.
A) 9 B) 10 C) 11 D) Ninguna de las anteriores.
5.- Indique si las siguientes afirmaciones son verdaderas. En el bus de arbitraje distribuido con respecto al
arbitraje centralizado:
I. La posición de conexión de los dispositivos a la línea de arbitraje no determina la prioridad de aquellos en el
uso del bus, mientras que en el caso centralizado sí lo hace.
II. Es más barato ya que no requiere un árbitro, pero es menos rápido y fiable que el arbitraje centralizado.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.
6.- En un computador cuando la CPU dispone en exclusiva del bus las instrucciones emplean 6 ciclos de reloj
en ser ejecutadas, aunque en 2 de ellos, el segundo y el tercero, no se requiere acceso al bus. Si el controlador
de DMA tarda 5 ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmaciones son
ciertas:
I. Se puede implementar la estrategia con DMA por ráfagas.
II. Se puede implementar la estrategia con DMA transparente.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.
7.- Un computador dispone de 5 registros de propósito general: R0, R1, R2, R3 y R4. El contenido (Contenido)
de ciertas posiciones de memoria (Posición) y la semántica de una serie de instrucciones se muestra en la tabla
siguiente:
Posición Contenido Semántica
2000 2030
2010 …
2020 … LOAD R0, 20 ; R020
2030 2060 LOAD R1, #2020 [.R0] ; R1  M (2020 + R0)
2040 520 LOAD R2, #2000 ; R2  M(2000)
2050 … LOAD R3, [[.R2]] ; R3  M(M(R2))
2060 897
El contenido final de los 5 registros una vez ejecutadas estas instrucciones en el orden en el que se han
expuesto en dicha tabla, suponiendo que inicialmente estaban todos a 0, es:
A) R0:20; R1: 520; R2: 2030; R3: 897; R4:0. B) R0:2040; R1: 2030; R2: 2000; R3: 897; R4:0.
C) R0:20; R1: 2040; R2: 2030; R3: 2060; R4:0. D) Ninguna de las anteriores.

8.- En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indicar cuál de las
siguientes afirmaciones, acerca de las señales de control (ci), es la correcta.

A) c2 = S2 s2 I
B) c3 = S1 s1 / c2, c3
I / c1 S1
C) Las dos afirmaciones
anteriores son correctas. S3 S4
S0 s1 / c3 s1 / c1
D) Todas las afirmaciones
anteriores son falsas. s2 / c1, c2
S2

Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.


Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


Se desea construir un juego de instrucciones con las siguientes características:
 Palabra de instrucción: 32 bits.
 X instrucciones sin operandos.
 100 instrucciones de un operando, en donde el operando tendrá 24 bits.
 153 instrucciones de dos operandos, en donde cada uno de los operandos tendrá 12 bits.
 300 instrucciones de tres operandos, en donde cada uno de los tres operandos tendrá 6, 6 y 4 bits
respectivamente.

A) (1 pto.) Calcular el tamaño de los campos de código de operación para cada tipo de instrucción.
B) (1 pto.) Indicar cómo se asignarían los códigos de operación y se distribuirían las instrucciones.
C) (2 ptos.) Calcular el valor máximo de X.

SOLUCIONES
1.- Considérese una máquina en la que las instrucciones entre registros (de cálculo) emplean 4 ciclos de reloj
para su ejecución y el resto de instrucciones usan 6 ciclos. Si un programa de 2000 instrucciones, donde un
20% de las mismas son de cálculo, se ejecuta en 7 ms, ¿cuál es la frecuencia de reloj en ciclos?
A) 625 ns. B) 350 ns. C) 515 ns. D) Ninguna de las anteriores.

Solución

El problema se reduce a resolver la siguiente ecuación:


(4×0.2 + 6×0.8) ×2000 × Frec. = 7 ms

Operando, se obtiene:

Frec. = 7 ms / 11200 = 6.25×10-4 ms, que pasando a ns son 625 ns.

Respuesta : A (625 ns).

2.- Indicar cuál debe ser el tamaño mínimo del módulo de memoria ROM necesario para diseñar un comparador
de dos números de 3 bits que genere como salidas las funciones “mayor que” y “menor que”.
A) 26 palabras × 2 bits/palabra. B) 26 palabras × 3 bits/palabra.
C) 26 palabras × 6 bits/palabra. D) Ninguna de las anteriores.

Solución
En el caso del comparador propuesto el número de entradas es 3 + 3 = 6, puesto que se trata de comparar dos
números de 3 bits cada uno de ellos. El número de salidas es 2, una que indica si el primer número es mayor
que el segundo, y otra que indique si el primer número es menor que el segundo. Por tanto, el tamaño mínimo
de ROM necesario es:
26 palabras × 2 bits/palabra

Respuesta: A (26 palabras × 2 bits/palabra).

3.- En un disco magnético de 1024 pistas numeradas de 0 a 1023 se tiene la siguiente cola de peticiones de
disco: 100, 405, 1020, 95, 321, 627, 940, 3. Inicialmente la cabeza se encuentra en la pista 300. El orden en el
que se atienden las peticiones es el siguiente: 321, 405, 627, 940, 1020, 100, 95, 3. ¿Qué tipo de planificación
usa el disco?
A) SSTF. B) SCAN. C) LOOK. D) Las tres anteriores son posibles.

Solución

La planificación SSTF atiende las peticiones de pistas que se encuentran más cerca de la pista actual. Como la
cabeza se encuentra inicialmente en la 300, la pista más cercana es la 321 y la cabeza se mueve hacia las pistas
crecientes. A continuación comprueba de nuevo cuál es la pista más cercana. Por un lado está la petición de 405
y por otro la 100. El número de pistas a recorrer es menor hacia la 405, por lo que la cabeza se sigue
desplazando hacia ella siguiendo el mismo sentido. Razonando de la misma manera, la cabeza avanza hasta la
pista 1020, y a continuación retrocede en sentido contrario para leer las pistas 100, 95 y 3. Por tanto, si el disco
usase una planificación SSTF, la secuencia de atención de peticiones sería la dada.

Los algoritmos SCAN y LOOK se diferencian en que en el caso de LOOK la cabeza no se desplaza hasta el
extremo del disco si no hasta la última petición en cada dirección. Este hecho no influye en el orden de atención
de peticiones y será la misma para ambos casos. La cabeza se mueve en un sentido y va leyendo las peticiones
que se encuentra. Suponiendo que la cabeza se está moviendo en el sentido de las pistas crecientes, las pistas se
irán leyendo en el orden 321, 405, 627, 930, 1020, y a continuación la cabeza se desplazará en el sentido
contrario y se leerán las pistas 100, 95 y 3. Por tanto, la secuencia dada también es la de los algoritmos SCAN y
LOOK.
Respuesta : D

4.- Se desea diseñar un circuito combinacional, que sea un sumador de 13 números de 1 bit de longitud,
utilizando únicamente módulos SBC. Indicar cuál es el número mínimo de módulos SBC necesarios para ello.
A) 9 B) 10 C) 11 D) Ninguna de las anteriores.

Solución

Respuesta: B (10 SBC’s)

5.- Indicar si las siguientes afirmaciones son verdaderas. En el bus de arbitraje distribuido con respecto al
arbitraje centralizado:
I. La posición de conexión de los dispositivos a la línea de arbitraje no determina la prioridad de aquellos en el
uso del bus, mientras que en el caso centralizado sí lo hace.
II. Es más barato ya que no requiere un árbitro, pero es menos rápido y fiable que el arbitraje centralizado.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

I. Es falsa, ya que la posición si determina la prioridad de los dispositivos tanto en el caso distribuido como
centralizado.
II. Es falsa. El arbitraje distribuido es más barato y además es más rápido y fiable debido a que no está sujeto al
posible mal funcionamiento del dispositivo árbitro.
Respuesta : D (Las dos son falsas).

6.- En un computador cuando la CPU dispone en exclusiva del bus las instrucciones emplean 6 ciclos de reloj
en ser ejecutadas, aunque en 2 de ellos, el segundo y el tercero, no se requiere acceso al bus. Si el controlador
de DMA tarda 5 ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmaciones son
ciertas:
I. Se puede implementar la estrategia con DMA por ráfagas.
II. Se puede implementar la estrategia con DMA transparente.
A) I: sí, II: sí. B) I: sí, II: no. C) I: no, II: sí. D) I: no, II: no.

Solución

Afirmación I: Es verdadera. En la estrategia de DMA por ráfagas el controlador de DMA hace uso del bus
cuando se ha finalizado la ejecución de una instrucción y no lo libera hasta después de haber finalizado de
enviar todas las palabras.

Afirmación II: Es falsa. En la estrategia de DMA transparente, el controlador de DMA hace uso del bus en
aquellos ciclos durante la ejecución de una instrucción en que la CPU no necesita utilizarlo. Puesto que el
controlador de DMA requiere 5 ciclos consecutivos para enviar una palabra y la CPU únicamente no utiliza el
bus en el segundo y tercero de los seis que se requiere para ejecutar una instrucción, nunca hay 5 ciclos
consecutivos en que el bus esté libre y por lo tanto no se puede utilizar esta estrategia de DMA.

Respuesta : B (La primera verdadera y la segunda falsa).

7.- Un computador dispone de 5 registros de propósito general: R0, R1, R2, R3 y R4. El contenido (Contenido)
de ciertas posiciones de memoria (Posición) y la semántica de una serie de instrucciones se muestra en la tabla
siguiente:
Posición Contenido Semántica
2000 2030
2010 …
2020 … LOAD R0, 20 ; R020
2030 2060 LOAD R1, #2020 [.R0] ; R1  M (2020 + R0)
2040 520 LOAD R2, #2000 ; R2  M(2000)
2050 … LOAD R3, [[.R2]] ; R3  M(M(R2))
2060 897
El contenido final de los 5 registros una vez ejecutadas estas instrucciones en el orden en el que se han
expuesto en dicha tabla, suponiendo que inicialmente estaban todos a 0, es:
A) R0:20; R1: 520; R2: 2030; R3: 897; R4:0. B) R0:2040; R1: 2030; R2: 2000; R3: 897; R4:0.
C) R0:20; R1: 2040; R2: 2030; R3: 2060; R4:0. D) Ninguna de las anteriores.
Solución

R0: 20
R1: 520
R2: 2030
R3: 897
R4: 0
Respuesta: A

8.- En la figura adjunta se muestra el diagrama de estados de una unidad de control. Indicar cuál de las
siguientes afirmaciones, acerca de las señales de control (ci), es la correcta.

A) c2 = S2 s2 I
B) c3 = S1 s1 / c2, c3
I / c1 S1
C) Las dos afirmaciones
anteriores son correctas. S3 S4
S0 s1 / c3 s1 / c1
D) Todas las afirmaciones
anteriores son falsas. s2 / c1, c2
S2

Solución

Del diagrama de estados se deduce que:


c 2  S1 s1  S 2 s 2
c3  S1 s1  S1 s1  S1

Respuesta : B (c3 = S1)

PROBLEMA
Se desea construir un juego de instrucciones con las siguientes características:
 Palabra de instrucción: 32 bits.
 X instrucciones sin operandos.
 100 instrucciones de un operando, en donde el operando tendrá 24 bits.
 153 instrucciones de dos operandos, en donde cada uno de los operandos tendrá 12 bits.
 300 instrucciones de tres operandos, en donde cada uno de los tres operandos tendrá 6, 6 y 4 bits
respectivamente.

A) (1 pto.) Calcular el tamaño de los campos de código de operación para cada tipo de instrucción.
B) (1 pto.) Indicar cómo se asignarían los códigos de operación y se distribuirían las instrucciones.
C) (2 ptos.) Calcular el valor máximo de X.

Solución
A) Se comienza por calcular el tamaño de los campos de código de operación para cada uno de los tipos de
instrucciones. Se tiene lo siguiente:

Las instrucciones sin operandos tienen 32 bits de campo de código de operación.


Las instrucciones con 1 operando tienen 32-24=8 bits de campo de código de operación.
Las instrucciones con 2 operandos tienen 32-12-12=8 bits de campo de código de operación.
Las instrucciones con 3 operandos tienen 32-6-6-4=16 bits de campo de código de operación.

B) Por lo tanto, se comienza por colocar las instrucciones de 1 y de 2 operandos, ya que tienen el código de
operación más pequeño. Luego se asignarán códigos a las de 3 operandos, y finalmente se verán cuántas
combinaciones quedan libres para instrucciones sin operandos.

Las instrucciones de 1 y de 2 operandos tienen ambas códigos de operación de 8 bits, por lo que pueden
estudiarse simultáneamente. Con 8 bits tenemos 28 = 256 combinaciones posibles. Dado que hay que
colocar 100+153=253 instrucciones, nos sobran 3 combinaciones. Reservamos entonces las combinaciones
0xFD, 0xFE y 0xFF para extender el código.

Las instrucciones de 3 operandos tienen 16 bits de código de operación, lo que en principio permitiría
codificar 216 instrucciones distintas. Sin embargo, de los 16 bits del código de operación los 8 primeros
codifican instrucciones de 1 y de 2 operandos, a excepción de las combinaciones 0xFD, 0xFE y 0xFF ya
mencionadas. Por lo tanto, esto nos da un total de 3×28 instrucciones de tres operandos posibles. Como
sólo se necesitan combinaciones para 300 instrucciones de tres operandos, nos sobran 768 – 300 = 468
combinaciones de los 16 primeros bits.

Las instrucciones de 0 operandos tienen 32 bits de código de operación. Sin embargo, no pueden utilizarse
todos los bits libremente. En concreto, sólo podrá disponerse libremente de los últimos 16 bits, ya que los
16 primeros intervienen en la codificación de las instrucciones de 1, 2 y 3 operandos y por lo tanto sólo
podrán usarse las combinaciones que estén libres.

C) Como se ha visto anteriormente, tras haber colocado las instrucciones de 1, 2 y 3 operandos nos han
sobrado 468 combinaciones de los 16 primeros bits. Por lo tanto, el número máximo de instrucciones sin
operandos que puede colocarse es de:

468×216 = 30.670.848

Por lo tanto, en las condiciones del problema podrían codificarse más de treinta millones de instrucciones
sin operandos. Naturalmente, esto no significa que haya que usar todas las combinaciones.
MATERIAL PERMITIDO: los libros “Ingeniería de Computadores I”, “Problemas de Ingeniería de Computadores
I”, “Estructura y tecnología de computadores” y “Problemas de estructura y tecnología de computadores”, ed. Sanz
y Torres, y calculadora no programable. NO SE PERMITEN FOTOCOPIAS.
INSTRUCCIONES: ENTREGUE ESTA HOJA con el resto de hojas de su examen. La puntuación del examen es la
siguiente: el test vale 4 puntos, las cuestiones teóricas 2 puntos y el problema 4 puntos. Las respuestas correctas del test
puntúan 0.5 puntos y las respuestas erróneas del test descuentan 0.1 puntos. El test es eliminatorio, debiendo obtener
una calificación mínima de 1.6 puntos para superarlo (con 4 preguntas correctas se supera).
Examen tipo A.
1.- Sabiendo que la palabra de memoria tiene 32 bits, que el repertorio de instrucciones tiene 16 instrucciones
diferentes y que cada instrucción tiene dos operandos con direccionamiento directo a memoria, ¿cuál es la
máxima memoria direccionable?
A) 214 posiciones. B) 216 posiciones. C) 228 posiciones. D) 232 posiciones.
2.- Un procesador con un bus de 10 MHz tiene una instrucción que tiene cinco etapas: lectura del código de
operación (4 ciclos de bus), lectura de la dirección del operando (3 ciclos), lectura del operando (3 ciclos), suma
de 1 al operando (3 ciclos), y almacenar el operando (3 ciclos). Cuando el procesador va a iniciar la etapa de
lectura del operando, se activa la línea de petición de interrupción. ¿Después de cuánto tiempo entra el
procesador en el ciclo de reconocimiento de interrupción?
A) 0 ns. B) 100 ns. C) 300 ns. D) 900 ns.
3.- Se desea diseñar un circuito combinacional, que sea un sumador de 6 números de 1 bit de longitud,
utilizando únicamente módulos SBC. ¿Cuál es el número mínimo de módulos SBC necesarios?
A) 3 B) 4 C) 5 D) Ninguna de las anteriores.
4.- Se tiene una memoria caché con 64 bloques con capacidad para 512 palabras cada uno. Si la función de
correspondencia es totalmente asociativa y las direcciones de memoria principal tienen 24 bits, indique en qué
bloque (expresado en decimal) se ubicará la palabra con dirección de memoria principal 001FFF expresada en
hexadecimal:
A) 31 B) Podría utilizarse cualquier bloque. C) 11 D) Ninguna de las anteriores.
5.- Si al número binario X = 111100011000 le aplicamos la siguiente secuencia de operaciones de
desplazamiento: 4 operaciones LDCS seguidas de 8 operaciones LICS, ¿cuál es el resultado de la operación?
A) 011000111100 B) 110001100011 C) 000110001111 D) Ninguna de las anteriores.
6.- Se dispone de un procesador que trabaja con un reloj de 50 MHz (= 50 × 106 Hz) que requiere 100 ciclos
para realizar una operación de encuesta. Determinar cuál debe ser la velocidad de transferencia de un CD que
transfiere datos al procesador en palabras de 16 bits, sin perder ningún dato, sabiendo que la fracción de tiempo
de CPU que se consume al realizar la operación de encuesta es del 5,12%. Nota: 1KB/s = 103 bytes / s.
A) 10 KB/s B) 50KB/s C) 100KB/s D) Ninguna de las anteriores.
7.- Dado el siguiente algoritmo. Indicar cuál será el valor de A, B y Contador al final de la ejecución del
algoritmo si el valor de dato se inicializa a 5.

Contador  8; A  dato;
Repeat
B  Contador × 2;
Decrementar Contador;
Until B < A

A) Contador = 2, A = 5 y B = 4 B) Contador = 1, A = 5 y B = 4
C) Contador = 1, A = 5 y B = 2 D) Ninguna de las anteriores.

8.- Se desea implementar el diagrama ASM de la figura utilizando la técnica de selección por estado.
S0 S1 01 S2 10 S3 11
1
Inicio Cond
0 0 1

Suponiendo que para cada estado se debe generar una sola señal de control (c0 en S0, c1 en S1, c2 en S2 y c3 en
S3), el número de entradas del multiplexor y el tamaño de la memoria ROM mínima necesaria, son
respectivamente:
A) 4 entradas y 6 palabras con 8 bits/palabra.
B) 4 entradas y 8 palabras con 6 bits/palabra.
C) 6 entradas y 16 palabras con 8 bits/palabra.
D) Ninguna de las anteriores.
Cuestiones: Conteste únicamente en el espacio disponible debajo del enunciado de la pregunta.
Cuestión 1 (0.5 puntos): Justificar razonadamente el resultado de la pregunta 1 del test.

Cuestión 2 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 2 del test.

Cuestión 3 (0.75 puntos): Justificar razonadamente el resultado de la pregunta 3 del test.

Problema (Contestar el problema en hoja de examen aparte, no en la hoja de lectura óptica):


(4 ptos) Se desea construir una memoria de 512 Mbytes, de la que los últimos 32 Mbytes deberán ser de ROM y
el resto de RAM. Se dispone para ello de los siguientes módulos en cantidad suficiente:
 RAM: Módulos de tipo A, de 128 Mpalabras de 4 bits.
 RAM: Módulos de tipo B, de 64 Mpalabras de 4 bits.
 RAM: Módulos de tipo C, de 32 Mpalabras de 8 bits.
 ROM: Módulos de tipo D, de 32 Mpalabras de 4 bits.
 Circuitería combinacional adicional en cantidad suficiente.
Diseñar el módulo de memoria, indicando detalladamente la conexión de las líneas de datos, direcciones y
control necesarias para gestionarla.
SOLUCIONES

1.- Sabiendo que la palabra de memoria tiene 32 bits, que el repertorio de instrucciones tiene 16 instrucciones
diferentes y que cada instrucción tiene dos operandos con direccionamiento directo a memoria, ¿cuál es la
máxima memoria direccionable?
A) 214 posiciones. B) 216 posiciones. C) 228 posiciones. D) 232 posiciones.
Solución
El número de bits necesarios para codificar 16 instrucciones es 4. Si el tamaño de la palabra de memoria tiene
32 bits, 32-4=28 bits será el tamaño de los operandos. Por tanto, el tamaño de cada operando sería 28 bits/2=14
bits y la máxima memoria direccionable será 214 bits.

31:28 27:14 13:0


Código Op. Operando 1 Operando 2

Respuesta : A (214 posiciones)

2.- Un procesador con un bus de 10 MHz tiene una instrucción que tiene cinco etapas: lectura del código de
operación (4 ciclos de bus), lectura de la dirección del operando (3 ciclos), lectura del operando (3 ciclos), suma
de 1 al operando (3 ciclos), y almacenar el operando (3 ciclos). Cuando el procesador va a iniciar la etapa de
lectura del operando, se activa la línea de petición de interrupción. ¿Después de cuánto tiempo entra el
procesador en el ciclo de reconocimiento de interrupción?
A) 0 ns. B) 100 ns. C) 300 ns. D) 900 ns.

Solución
El procesador atenderá la interrupción cuando finalice la instrucción en curso, es decir, si se encuentra en la
etapa de lectura del operando, necesitará de otros 9 ciclos para completar la instrucción, por tanto
9 x 100 ns= 900 ns.

Respuesta : D (900 ns)

3.- Se desea diseñar un circuito combinacional, que sea un sumador de 6 números de 1 bit de longitud,
utilizando únicamente módulos SBC. ¿Cuál es el número mínimo de módulos SBC necesarios?
A) 3 B) 4 C) 5 D) Ninguna de las anteriores.
Solución

Un Sumador Binario Completo (SBC) dispone de tres entradas de 1 bit (el sumando xi, el sumando yi, y el
acarreo de la etapa anterior ci-1 ) y dos salidas de 1 bit (el acarreo a la etapa siguiente ci, y el bit de suma si ). El
funcionamiento de un SBC en notación de puntos se muestra en la Figura 1 donde cada punto representa 1 bit de
la entrada, o de la salida.

Figura 1 Notación de puntos de un SBC

Se desean sumar 6 números binarios de 1 bit cada uno, que se pueden representar de la forma siguiente: x0, x1,
x2, x3, x4, x5. Como son números de un único bit su suma como máximo da como resultado 6 en decimal, que
expresado en binario es el número 110. Por tanto, el resultado de la suma se debe expresar con cuatro bits, s2 s1
s0. En la Figura 2 se muestra la suma de estos 6 números mediante notación de puntos y haciendo uso de los
SBC’s necesarios. Como se puede observar son necesarios 4 SBC’s como mínimo.

Figura 2 Reducción mediante un árbol de Wallace

Respuesta: B (4 módulos SBC)

4.- Se tiene una memoria caché con 64 bloques con capacidad para 512 palabras cada uno. Si la función de
correspondencia es totalmente asociativa y las direcciones de memoria principal tienen 24 bits, indique en qué
bloque (expresado en decimal) se ubicará la palabra con dirección de memoria principal 001FFF expresada en
hexadecimal:
A) 31 B) Podría utilizarse cualquier bloque. C) 11 D) Ninguna de las anteriores.
Solución

Utilizando correspondencia totalmente asociativa cualquier bloque de la memoria principal se puede ubicar en
cualquier bloque de la memoria caché.
Respuesta: B (Podría utilizarse cualquier bloque)

5.- Si al número binario X = 111100011000 le aplicamos la siguiente secuencia de operaciones de


desplazamiento: 4 operaciones LDCS seguidas de 8 operaciones LICS, ¿cuál es el resultado de la operación?
A) 011000111100 B) 110001100011 C) 000110001111 D) Ninguna de las anteriores.
Solución

Si analizamos la secuencia de operaciones de desplazamiento propuesta, las 4 operaciones LDCS se ven


contrarrestadas por otras 4 operaciones LICS. Por ello, la secuencia de desplazamientos del enunciado equivale
a aplicar 4 operaciones LICS sobre el número binario. El resultado es 000110001111.

Respuesta: C (000110001111)

6.- Se dispone de un procesador que trabaja con un reloj de 50 MHz (= 50 × 106 Hz) que requiere 100 ciclos
para realizar una operación de encuesta. Determinar cuál debe ser la velocidad de transferencia de un CD que
transfiere datos al procesador en palabras de 16 bits, sin perder ningún dato, sabiendo que la fracción de tiempo
de CPU que se consume al realizar la operación de encuesta es del 5,12%. Nota: 1KB/s = 103 bytes / s.
A) 10 KB/s B) 50KB/s C) 100KB/s D) Ninguna de las anteriores.
Solución

El número de ciclos/s que se emplean en la operación de encuesta son:

5,12% (fracción consumida) × (50×106 ciclos/s) =

0,0512 × (50×106) = 2,56 ×106 ciclos/s


Si N es el número de encuestas/s entonces:

N encuestas/s × 100 ciclos/encuesta = 2,56 × 106 ciclos /s

De donde:

N = 2,56 × 104 encuestas / s =


25K encuestas / s (con 1 K = 103 bytes)

Por último la velocidad será

25K encuestas /s × (2 bytes /encuesta) = 50 Kbytes / s = 50 Kbytes/s

Respuesta: B (50KB/s)

7.- Dado el siguiente algoritmo. Indicar cuál será el valor de A, B y Contador al final de la ejecución del
algoritmo si el valor de dato se inicializa a 5.

Contador  8; A  dato;
Repeat
B  Contador × 2;
Decrementar Contador;
Until B < A

A) Contador = 2, A = 5 y B = 4 B) Contador = 1, A = 5 y B = 4
C) Contador = 1, A = 5 y B = 2 D) Ninguna de las anteriores.

Solución

Inicialmente Contador = 8 y A = 5 y se comienza el bucle. El primer valor de B es 16 y Contador pasa a valer 7.


Como 16 es mayor que 5 se repite el bucle, hasta que B valga 4 en cuyo caso el valor de la variable Contador al
entrar en el bucle es 2 y al salir es 1. Por lo tanto la solución es:

B = 4 Contador = 1 y A = 5

Respuesta: B. (Contador = 1, A= 5 y B = 4)

8.- Se desea implementar el diagrama ASM de la figura utilizando la técnica de selección por estado.

S0 S1 01 S2 10 S3 11
1
Inicio Cond
0 0 1

Suponiendo que para cada estado se debe generar una sola señal de control (c0 en S0, c1 en S1, c2 en S2 y c3 en
S3), el número de entradas del multiplexor y el tamaño de la memoria ROM mínima necesaria, son
respectivamente:
A) 4 entradas y 6 palabras con 8 bits/palabra.
B) 4 entradas y 8 palabras con 6 bits/palabra.
C) 6 entradas y 16 palabras con 8 bits/palabra.
D) Ninguna de las anteriores.

Solución
El diagrama mostrado en el enunciado tiene 4 estados, 2 condiciones (que se consultan de manera excluyente) y
4 señales de control. Por tanto, es necesario usar 2 bits para la codificación del estado (n = 2), dos señales de
condición (q = 2) y cuatro señales de control (m = 4).

Como en cada estado sólo se necesita una señal de condición, la técnica de selección por estado necesita
multiplexor de 2n entradas y la ROM debe tener al menos (2n+1) palabras con (n+m) bits/palabra. Por lo tanto, el
MUX debe tener 4 entradas y la memoria ROM mínima necesaria un tamaño de 8 palabras con 6 bits/palabra.

Respuesta: B (4 entradas y 8 palabras con 6 bits/palabra)

PROBLEMA
Se desea construir una memoria de 512 Mbytes, de la que los últimos 32 Mbytes deberán ser de ROM y el resto
de RAM. Se dispone para ello de los siguientes módulos en cantidad suficiente:
 RAM: Módulos de tipo A, de 128 Mpalabras de 4 bits.
 RAM: Módulos de tipo B, de 64 Mpalabras de 4 bits.
 RAM: Módulos de tipo C, de 32 Mpalabras de 8 bits.
 ROM: Módulos de tipo D, de 32 Mpalabras de 4 bits.
 Circuitería combinacional adicional en cantidad suficiente.

Diseñar el módulo de memoria, indicando detalladamente la conexión de las líneas de datos, direcciones y
control necesarias para gestionarla.

Solución
En la Figura 1 aparece el esquema de la memoria requerida. Por simplicidad, no se han conectado entre sí las
líneas R y W, que van conectadas a todos los módulos de memoria que posean esa conexión.
Figura 1. Conexión de los módulos de memoria
22fo ' 4a-t

8i {i
4zB4q
0 h oi,d io L_;r---¡t__J !--J
-

l@o6irYto
H

4ct tTz. A
a o{;Oó
44o

oa t I

xs 3
lJ*l",r!- b 2¿ &

Mfr-}-*^

úvf lrr \r¿ (*1 *

También podría gustarte