Ejercicios Resueltos Por Tema y Examenes PDF
Ejercicios Resueltos Por Tema y Examenes PDF
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
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.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:
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.
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.
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.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
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.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.
Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010
TERMINADOR
DEL BUS
ARBITRO BG
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
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.
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
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.
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.
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
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.
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
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.
Ocupada
1
Línea de arbitraje
a b c d e
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.
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.
Ocupada
1
Línea de arbitraje
a b c d e
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.
16 bits
4 bits 12 bits
• Códigos de operación:
0011: Ac←[M]
0101: M←[Ac]
0110: Ac←[Ac]+[M]
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]
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.
[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.
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:
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.
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
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
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
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
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.
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:
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.
1
M1
2
M2
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).
1
M1
2
M2
3
M3
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).
Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
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).
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:
Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
5
M5
M6
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:
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.
4 bits 12 bits
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]
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]
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:
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
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 %.
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
accesos
N = N B + N E = 1.4·10 8 + 0.4·10 8 = 1.8·10 8 = 180·10 6
s
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
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:
f (ciclos / s ) 8·10 6
n I max = = = 2·10 6 instr / s = 2 MIPS
4 (ciclos / instr ) 4
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:
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
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
4 bits 8 bits
• Códigos de operación:
0111: Ac←[M]
1101: M←[Ac]
1110: Ac←[Ac]-[M]
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]
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.
Ocupada
1
Línea de arbitraje
a b c d e
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.
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.
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.
tbus=20 ns talm=80 ns
tc=100 ns
Figura 1.23.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:
Afirmación I:
1
M1
2
M2
3
M3
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:
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:
Módulos
tc =100 ns
1
M1
2
M2
3
M3
4
M4
5
M5
M6
Se observa que en un periodo de tiempo igual a tc=100 ns se siguen escribiendo cinco palabras.
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 C es falsa, ya que ese requisito sólo se da en los buses con arbitraje
distribuido.
4 bits 12 bits
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]
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
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]
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.
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.
4 bits 8 bits
• Códigos de operación:
0111: Ac←[M]
1101: M←[Ac]
1100: Ac←[Ac]+[M]
C16 Ac←[Ac]+[M]
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]
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.
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:
Solución
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
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).
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.
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
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:
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.
UCP
memoria HD1 HD2 HD3 HD4 HD5
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?.
✗ 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
✗ 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
(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.
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.
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.
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.
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):
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.
✎ 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:
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
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:
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?.
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
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.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
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.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
Puesto que la Mp tiene 220palabras se requieren direcciones de longitud n=log 2CMp= log2220=20 bits.
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
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
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
La etiqueta que habría que buscar es 10010 (000 000 001 100 100).
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
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é.
n=9 bits
Conjunto
Etiqueta Palabra
de Mc
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
Etiqueta Palabra
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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.
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
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é.
Nº Total de fallos=3
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
C Mc 2 6
C= = 4 =2 2 = 4 bloques.
K 2
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
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
Afirmación I:
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:
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
C Mc 2 7
C= = 4 =2 3 = 8 bloques.
K 2
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
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
Afirmación II:
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.
C Mc 210
C= = 4 =2 6 = 64 bloques.
K 2
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
13 12 3
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
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
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
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
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
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.
1
fA =
tC
1 1
fA = −9
= −7 = 10 7 seg −1
100·10 10
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
NF
1− h =
NT
Despejando el número total de Fallos:
N F = (1 − h )· N T
2 30
N F = (1 − 0.75)·2 30 = 0.25 ⋅ 2 30 = = 2 28
22
C Mc 2 5
C= = 3 = 2 2 = 4 bloques.
K 2
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
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
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.
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.
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.
t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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 am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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:
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.
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.
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.
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
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
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.
C Mc 2 6
C= = 4 = 2 2 = 4 bloques.
K 2
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
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
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.
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
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
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é.
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.
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.
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
t a = N A ⋅ t ac + N F ⋅ (10 ⋅ K + 1)t ac
Como NA=NT - NF, entonces:
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
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.
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.
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.
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.
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
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.
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= τ
t a = N A ⋅ τ + N F ⋅ (10 ⋅ K + 1) τ
t a = ( N T − N F ) ⋅ τ + N F ⋅ (10 ⋅ K + 1) τ = ( N T + N F ⋅10 ⋅ K ) ⋅ τ
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é.
N F 217 1 1
Tasa de fallos = = 20 = 3 = = 0.125
NT 2 2 8
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
n=16 bits
Etiqueta Palabra
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:
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.
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.
campo etiqueta, esto equivale a decir que los 2 dígitos más significativos en hexadecimal son la
etiqueta.
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.
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.
• Resto de ciclos
Se producen situaciones similares a la del segundo ciclo, con una sustitución en cada uno de ellos.
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.
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
t a = N A ⋅ t ac + N F ⋅ (7 ⋅ K + 1)t ac
t a = (N T − N F ) ⋅ t ac + N F ⋅ (7 ⋅ K + 1)t ac = (N T + N F ⋅ 7 ⋅ K ) ⋅ t ac
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
El formato de dirección para una memoria caché con correspondencia asociativa por conjuntos es, el
siguiente:
n bits
Conjunto
Etiqueta Palabra
de Mc
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
C Mc 211
C= = 6 = 2 5 bloques
K 2
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:
23 bits
Conjunto
Etiqueta Palabra
de Mc
Numero de aciertos N
h= = A
Numero total de accesos N T
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é.
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 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.
110
h= = 0.99
111
Es decir 99%
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
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.
C Mc 210
C= = 6 = 2 4 = 16 bloques.
K 2
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
Afirmación I:
La dirección 1D45F se expresa en binario de la siguiente forma: 0001 1101 0100 0101 1111
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
Luego esta dirección hace referencia al bloque i=10002=810 de MC. Luego la afirmación es
VERDADERA.
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:
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
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
t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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:
Por otra si sólo se utilizara la memoria principal el tiempo de acceso medio sería:
Se observa que:
t am '
= 4.7
t am
Afirmación I: VERDADERA.
C Mc 210
C= = 3 =2 7 = 128 bloques.
K 2
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
AFIRMACION I:
Para comprobar la validez de esta afirmación hay que pasar la dirección 6B59 a código binario.
AFIRMACION II:
Para comprobar la validez de esta afirmación hay que pasar la dirección 675E a código binario.
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.
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:
Puesto que el sistema consta de n=16 líneas de dirección, podrá direccionar una capacidad de memoria de
CT = C ROM + C RAM
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:
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.
N
vT = f a =
tn − ta
Despejando tn:
N
tn = + ta
vT
Sustituyendo valores:
t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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:
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
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
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)
Para resolver este problema hay que recordar las propiedades de un sistema jerárquico de memoria.
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.
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]
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.
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:
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:
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:
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.
AFIRMACION I:
Se desea una memoria de capacidad total CT= 28 Kpalabras x 25 bits/palabras.
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:
Se verifican que:
CT1≥CT
CT2≥CT
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
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
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
n = log 2 2 32 = 32 bits
con lo b es:
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.
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
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
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
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:
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
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.
Líneas A19 y A0 permiten seleccionar una palabra ubicada en una línea de módulos.
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
A23 + A22 + A21 · A20 + A21 · A19 = A23 + A22 + A21 ·( A20 + A19 )
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:
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:
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
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
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.
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
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
Luego
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
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:
Con estas consideraciones previas se está en disposición de poder analizar las afirmaciones propuestas:
Afirmación I:
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.
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
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
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.
En las siguientes 9 veces que se ejecuta el bucle del programa como los bloques ya están cargados en Mc
se producen aciertos.
NA=173+186 x 9=1847
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:
- 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:
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.
- 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.
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
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é.
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.
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 ε:
R2 − R1
N PS =
ε
Sustituyendo valores y operando se obtiene
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 )
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.
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
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.
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
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:
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
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
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.
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:
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:
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:
Opción C:
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.
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:
∑p k − pk −1
LMB = k =1
N
es recomendable construirse la siguiente tabla
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:
∑p k − pk −1
LMB = k =1
N
es recomendable construirse la siguiente tabla
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.
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
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
Por lo tanto
NS 636
tt = = = 0.04140 s = 41.40 ms
S · f 128·120
Luego:
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
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)
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.
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
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.
Afirmación I:
La tasa de aciertos h es:
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)
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
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.
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.
e = n − p = 16 − 9 = 7bits
Luego se tendría el siguiente formato para las direcciones:
n=16 bits
Etiqueta Palabra
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:
Puesto que cada acceso a memoria requiere un tiempo tap, entonces el tiempo total empleado en realizar
estos NT accesos sería:
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é.
0
Tabla 2: Primera ejecución del bucle.
0
Tabla 4: Etiquetas de cada bloque de la caché al finalizar cada ciclo.
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 = 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
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
Por lo tanto:
TF = 45 ⋅ 512.125·tap = 23045.625·t ap
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.
C Mc 2 Kpalabras 211
C= = = 9 = 2 2 = 4 bloques
K 512 palabras / bloque 2
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.
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.
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:
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).
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:
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
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:
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.
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
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
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:
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:
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.
t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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:
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
Por lo tanto
NS 36
tt = = = 0.045 s = 45 ms
S · f 8·100
Luego:
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
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.
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
40 bits
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.
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
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:
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:
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.
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:
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:
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.
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.
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
b) Para contestar a este apartado hay que pasar la dirección 186A0 de hexadecimal a binario:
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.
t am = h ⋅ t ga + (1 − h) ⋅ t gf (1)
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:
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
El tamaño n de una dirección de memoria se puede obtener de la capacidad de memoria principal, ya que
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.
e = n − (c + p ) = 23 − (5 + 3) = 15 bits
Luego
23 bits
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
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:
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
e = n − (c + p ) = 16 − (1 + 8) = 7 bits
Luego
16 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
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:
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
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:
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:
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:
De forma general una dirección dentro de este rango puede representarse en binario como
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
C Mp 128 K 217
M = = = 8 = 29 = 512 módulos
PB 256 2
n bits
Bloque j de Mp Palabra
f 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
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
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
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
e = n − (b + p ) = 17 − (3 + 8) = 6 bits
Luego:
17 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
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
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:
0
0
1
0
0
0
1
0
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
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
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
C Mc 2 5
C= = 3 = 2 2 = 4 bloques.
K 2
Luego i=0,1,2 y3
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
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
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.
En la siguiente tabla se recoge la secuencia de direcciones leídas y los resultados que se producen al ir a
buscarlas a Mc.
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
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
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:
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.
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.
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
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
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.
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
b 9 ×1024 ×1000ms
tt = = = 9,375ms
P× f 16 ×1024 ×
3600
60
El tiempo empleado para leer la segunda pista es:
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í,
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?
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
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
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
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.
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:
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:
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:
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).
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á:
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.
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]
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
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) 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á:
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
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
El algoritmo general del funcionamiento de una memoria asociativa (con etiqueta de validez) es:
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
0 1 0 1 1 1 0 0 argumento
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
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
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
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.
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
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.
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
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.
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:
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
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.
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
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.
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.
? ? ? ? ? ? ? ? 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:
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).
Activar I
Activar I
M ← 00...0
i=7
i=7
M ← 00...0
Mi=1
Mi=1
M ← 11...1 i = i -1
i = i -1 No
¿ i< 0 ?
No Sí
¿ i< 0 ?
Fin
Sí
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.
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 c MEMORIA CACHÉ
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 4 MEMORIA CACHÉ
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?
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.
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
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
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
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
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.
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é
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 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
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:
00110 determina:
✔ Conjunto 3.
✔ Almacenar 0b=0d en el directorio.
Estado actual:
Estado actual:
Estado actual:
10000 determina:
✔ Conjunto 0. No hay fallo de línea, pues ya estaba allí.
✔ Almacenar 0b=0d en el directorio.
Estado actual:
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.
Los contenidos de la MP son los iniciales, excepto en las posiciones 8 y 16; cuyos contenidos son 100 y 101, respectivamente.
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)
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
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
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
Tiempo total debido a las lecturas sin memoria caché 26336·10 = 263360·
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
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.
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.
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:
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
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:
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
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
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
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
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
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) = 2567 = 1792
Coste total = 23015 + 13 1792 = 34801
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)
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
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?.
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
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
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.
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
11 211 palabras
SC R/W '
Bus de datos
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
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.
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
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)
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
Módulo 0 latch
Módulo 1 latch
mux
Módulo 2 latch
Módulo 3 latch
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
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
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.
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
Sistema A Sistema B
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
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.
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.
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
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
2 0/2
1 0/1
0 0/0
T 2T 4T 6T 8T t
Tiempo=8T.
8 ciclos de memoria.
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
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
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.
0 0 No permitida
0 1 Lectura
1 0 Escritura
Unidad de Memoria 3
1 1 Ninguna
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.
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
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
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
m
m-1 m-2 ... m0
CS CS CS
Bus de datos
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
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.
m
m-1 m-2 ... m0
CS CS CS
Bus de datos
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
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.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
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
La solución al problema (las direcciones base de cada módulo) está dada por lo tanto en
la tabla anterior.
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.
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:
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:
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:
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
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.
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:
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:
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)
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
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.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
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?
Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010
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.
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?
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.
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?
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
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
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
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.
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.
tbus= 10 nseg
tTcanal=1000 nseg
Luego P es :
tbus 10
P= • 100 = • 100 = 1%
tTcanal 1000
En este tipo de estrategia el controlador del DMA toma el control del bus del sistema, una vez que la
CPU ha ejecutado una 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.
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
N D = 213 direcciones
N DM = 212 direcciones
Luego el número de direcciones para acceder a palabras en los periféricos vendrá dado por :
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 )
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.
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:
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:
3) El número de instrucciones que dejen de ejecutarse por segundo viene dado por :
-------
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:
2(ciclos / instr )
R= = 2( pal / instr )
1(ciclo / pal )
1 ciclo
Ejecución con
DMA por robo
de ciclos
Instr1 Instr2 Instr3
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.
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.
tTcanal=1000/3 nseg
Luego P es :
tbus 100
P= • 100 = • 100 = 30%
tTcanal 1000
3
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á:
C 2 18 (bytes)
t llenado = = = 0.33 seg
v 3 • 2 18 (bytes / seg )
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.
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 )
1 ciclo
Ejecución con
DMA por robo
de ciclos
Instr1 Instr2 Instr3
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 )
1 ciclo
Ejecución con
DMA
transparente
Instr1 Instr2 Instr3
1(ciclos / instr )
R= = 1( pal / instr )
1(ciclo / pal )
De acuerdo con estos resultados las afirmaciones son: Afirmación I: FALSA Afirmación II:
VERDADERA
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.
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 = 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
La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.
La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.
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.
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
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 = 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
La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades de
cada uno de los dispositivos que controla.
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.
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.
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 :
t bus t 200
P= • 100 = bus • 100 = • 100 = 100 %
tT t bus 200
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.
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
N D = 213 direcciones
N DM = 3 ⋅ 211 direcciones
Luego el número de direcciones para acceder a palabras en los periféricos vendrá dado por :
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 )
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
1 ciclo
Ejecución con
DMA
transparente
Instr1 Instr2 Instr3
1 ciclo
Ejecución con
DMA
transparente
Instr1 Instr2 Instr3
2(ciclos / instr )
R= = 1( pal / instr )
2(ciclos / pal )
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
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.
0 10 20 30 40 50
u.t.
3 5 14 24
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.
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.
AFIRMACION I : Falsa.
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
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.
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
1 1
vT max = = = vTcanal = 5.5·10 6 ( pal / seg )
max(t bus , tTcanal ) tTcanal
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.
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)
Afirmación C: VERDADERA. En E/S controlada por programa la CPU realiza entre otras operaciones,
la comprobación del estado del periférico.
La E/S controlada por programa se puede considerar formada por tres etapas, tal y como se como se
muestra en la siguiente figura:
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)
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:
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
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:
T ( seg ) 8·10 −3
N T (instr ) = = = 40 instr
t I ( seg / instr ) 200·10 −6
t1 ( seg ) 6·10 −3
N1 (instr ) = = = 30 instr
t I ( seg / instr ) 200·10 −6
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
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.
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
CB
vTB =
t fB
2) A continuación hay que calcular los (ciclos/seg) que requiere la operación de DMA:
ciclos
2 23
seg = 2 20 instr
ciclos seg
8
instr
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.
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.
Afirmación D: VERDADERA.
Afirmación B: FALSA. Ya que se utiliza para controlar la E/S de varios dispositivos de BAJA
velocidad.
Afirmación D: FALSA.
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:
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
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.
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
S 0 = I 0 + I1
S1 = I 0 + I 2 I 1
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:
2(ciclos / instr )
R= = 2( pal / instr )
1(ciclo / pal )
f (ciclos / seg ) 10 6
vejec = = = 2.5 • 10 5 (instr / seg )
4(ciclos / inst ) 4
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
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:
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 )
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):
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.
Asimismo puesto que hay que transmitir 500 bytes y en la transmisión de cada byte se ocupan los buses
durante 100 ns, entonces:
Luego
T = TinicioDMA +T cesiónBUS = 2 + 50 = 52 µs
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:
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
512(bytes)
Tt = = 0.5 s
210 (bytes / s )
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).
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
Puesto que la transmisión del bloque produce 512 interrupciones, el número total de instrucciones que se
ejecutan asociadas a dichas interrupciones es:
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:
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
• 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.
Por lo tanto la velocidad del canal selector es cuatro veces menor que la del canal multiplexor.
a) Para contestar a este apartado en primer lugar hay que calcular la velocidad de ejecución en
instrucciones/seg de la CPU:
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:
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:
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)
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:
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
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
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:
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
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:
640
P= ·100 = 1%
64000
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:
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
M = 212 palabras
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:
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:
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)
f
C2 + C − =0
vejec1 − vejec 2
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:
120·10 6
− 1 + 1 + 4·
C= 10 7 = − 1 + 49 = − 1 + 7 = 3 ciclos
2 2 2
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
1.- Un computador con 15 líneas de direcciones tiene una memoria de 3213 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 3213 de estas direcciones, quedan libres 215- (3213 ) = 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
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:
¿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).
Solución
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
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
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
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.
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:
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.
PROBLEMA
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
5 3
X Y
ALU E0
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 SalidaR
S6
Solución
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 palabras32
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
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:
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
Reloj
Dirección
Datos
R/W
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:
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 (CD) 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 CD
Push M[C]; CD, C
Push M[D]; CD, C, D
Mult; CD, CD
Add; (CD)+ (CD)
Pop M[A];
Respuesta: C
PROBLEM,A
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.
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
PROBLEMAS
TEMA 3: Unidad de Entrada/Salida
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
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).
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
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
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
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.
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
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.
{
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
INTR0
INTR
INTR1 Controlador
de
interrupciones UCP
INTR7
INTA
INTA0
INTA1
INTA7
6ROXFLyQ
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
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
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
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.
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
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
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
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
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
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
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
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
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 .
2 1 0 INTR
CONTROLADOR DE
INTR
INTERRUPCIONES INTA CPU
INTA
Máscara: [ M 2M 1M 0 ]
2 1 0
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.
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
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
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
Solución:
Instante de
entrada de las
interrupciones PI2 PI1 PI4 PI3
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.
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
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.
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.
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.
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?
Página 13
ESTRUCTURA Y TECNOLOGIA
DE COMPUTADORES II
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
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:
3 2
x2 x1x0 y1y0
c 1c 0 UAL
2
s3 s2 s1 s0
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
si gi pi c2 c1 c0 s2 s1 s0
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.
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
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.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:
corresponden a:
A) S1 y C1 , respectivamente. B) C1 y S1 , respectivamente.
C) S1 y S0 , respectivamente. D) Ninguna de las anteriores.
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?
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.
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.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.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.
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.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?
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.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.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
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
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.
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 %.
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+Y10=S10= 563
• Y finalmente pasar cada cifra de S10 de decimal a binario con lo que se obtiene la suma en BCD SBCD
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
si = xi ⊕ yi ⊕ ci −1
ci = xi yi + ( xi ⊕ yi )ci −1
s 0 = x0 ⊕ y 0 ⊕ c −1
c1 = x0 y 0 + ( x0 ⊕ y 0 )c −1
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.
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.
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
- Con otra ROM (ROM2) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario
de
- 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
Y1
ROM 1
26 x 6
X p15 p14 p13
Σ p8 p7 p6
000
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
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.
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
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
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
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.
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.
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.
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 :
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 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 :
( x + y ) ⋅ xy = ( x + y ) ⋅ ( x + y ) = yx + yx = x ⊕ y
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 :
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 :
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 :
8 ROM
X 216x8 8
8 H
ed 1 R
ei 1
ROM
d1 1 216x8 8 8
d2 1
H
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.
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.
E1 = x1 ⊕ y1 ⊕ c0
E 2 = x1 y1 + ( x1 ⊕ y1 )c0
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..
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
M 4 = x4 y 4
I 4 = x4 y 4 + x4 y 4
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
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
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.
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.
Luego la respuesta correcta es la B), ya que es la única que genera una D(t) igual a la indicada en el
enunciado (columna 2).
Una misma 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
¡¡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:
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.
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:
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:
es equivalente a la realización de una único desplazamiento LDCS (X). Es decir, el resultado es:
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 :
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 )
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
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, 10
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.
f3
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:
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:
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:
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:
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):
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:
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.
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.
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.
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.
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].
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):
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:
c1 s1 SBC 3
c2 s2
x6
SBC 4 c3 s3
c1
c2
c4 s4 s3
S2 S1 S0
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:
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.
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:
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:
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:
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
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:
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:
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.
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
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:
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:
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.
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 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
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:
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.
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:
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.
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:
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
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:
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:
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).
Con una ROM (ROM1) de 64 pal x 16 bits/pal se pueden almacenar los resultados del producto binario
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
p7 p6 p5 p4 p3 p2 p1 p0
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
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
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
[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
X= 3 9 5 4
Y= 3 9 0 6
X+Y= 7 8 6 0
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.
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:
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 )
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.
X= 5 1 9
Y= 3 4 7
X-Y= 1 7 2
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.
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:
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 )
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.
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:
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í:
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:
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
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:
Página 2
Problema 2.2
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
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.
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.
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.
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.
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
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?.
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
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?.
Lógica de transformación
Señales de Selección de
Lógica la dirección
condición
de Multiplexor
bifurcación +1
RDC
135 Señales
de control
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.
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
Ciclo 3.
(RI) R5 ; (R5) = $FF33
(AC) CP ; (CP) = $F0E0
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
Ciclo 3.
(AC) RO1 ; (RO1) = $22E0
(AC) BD
(BD) RI ; (RI) = $22E0
Ciclo 4.
(RO1) (RO2) AC
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
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
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.
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
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
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
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.
%0000 0100 1100 1110 = $04CE A partir de este momento: (CP) = $04CE
José Garzía
2009
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.
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
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
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
0 0 1 0
1 0 0 0
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
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.
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
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.
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) = 22n-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 = 22m-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
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
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
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).
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
Por tanto, la suma total de los retardos de este sumador con dos niveles de aceleración es:
dos niveles de aceleración =9
(X Y)max = Xmax Ymax = (Bn-1) (Bn-1) = BnBn + 1- 2Bn = B2n + 1 - Bn+1 B2n + 1 - 21 = B2n- 1, número sin signo representable con 2n 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 2n bits:
n
.. .. ..
x+ .. .. ..
...
...
n .. .. ..
...
...
2 n-1
... ... . .
2n
En el peor de los casos posibles, X Y = (2n-1) (2n-1) = 2n2n + 1- 22n = 22n + 1 - 2n+1 22n + 1 - 2 = 22n- 1, número sin signo representable con
2n bits.
M7 M6 ... M0
x m7 m6 ... m0
p07 p06 ... p00
p17 p16 ... p10
...
+ p77 p76 ... p70
Hay 8 productos parciales. Cada producto parcial tiene 8 bits. Por tanto, la matriz es de 64 pij,.
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.
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
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?.
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.
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
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 c1 p0
c1 g1 g 0 p1 c1 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
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.
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
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.
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
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
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
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
(c1cn)'
MUX S1
s1 2a1
c1 c0'
MUX S2
s2 2a1
c1 c0'
MUX S3
s3 2a1
c1 c0'
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?.
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.
x y
M I m
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
•
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
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
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
•
“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
S1 / 100
10 xx
11
S0 / 010
00
01 S2 / 001 xx
xiyi
Si / MIm
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
Estado Q1Q0
S0 (igual) 00
S1 (mayor) 01
S2 (menor) 10
Tabla 96-2-3 Codificación de los estados
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
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
M = Q0
I = Q1 Q0 = Q1 Q0
m = Q1
xi •
D1 Q1 m
Ck Q1 • I
•
• •
D0 Q0 M
yi •
Reloj • Ck Q0
x2x1x0 y1y0
2
c1c0
UAL
S3 S2 S1 S0
6
R
OF
LX
yQ
ci-1 xi yi
Si
ci
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
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
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
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
si gi pi c2 c1 c0 s2 s1 s0
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
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
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
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
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
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
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
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
• • • • 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
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:
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
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
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
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
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
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
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
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:
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.
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.
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
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
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:
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.
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.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.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.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
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.
Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010
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
Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010
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.
Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
EI c1 c1
Q R Q S
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:
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}.
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
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.
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:
MUX(4)
4 1 6
q ROM
26 x 37 bits
2 5
log2q n
5 m=30
2
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:
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.
-Comentario
Las entradas ED y EI de los registros de desplazamiento no se utilizan y pueden conectarse a 0 o a 1
indistintamente.
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
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
En la Tabla 1 se muestran las microperaciones y las 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.
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
- 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.
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
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.
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.
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:
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
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 : 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..
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.
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.
C = 29 palabras x 49 (bits/palabra)
La respuesta correcta es la C
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.
• 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.
La respuesta correcta es la D.
La respuesta correcta es la C.
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:
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.
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.
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.
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.
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:
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:
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.
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.
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.
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
2 [Q1(t+1) Q0(t+1)] 2
Registro
4 Señales de
[Q1(t) Q0(t)] control
[c3 c2 c1 c0]
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.
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:
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 )
• Diagrama ASM
• En cada estado se debe generar una sola señal de control (c 0 en S0, c1 en S1, c2 en S2)
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)
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)
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..
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
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)
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:
- Capacidad de la ROM:
C ≥ 2n+1 palabras x (n+m) (bits/palabra) ≥24 palabras x 10 (bits/pal)
- Capacidad de la ROM:
C ≥ 2n+1 palabras x (log2q+n+m) (bits/palabra) ≥24 palabras x 12 (bits/pal)
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.
Como se conoce la codificación de los estados es posible construir la siguiente tabla equivalente a la dada
en el enunciado:
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′
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
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
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
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.
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.
Como se conoce la codificación de los estados es posible construir la siguiente tabla equivalente a la dada
en el enunciado:
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′
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
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).
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
I s1
s1/c1,c3
S0 S1 s0/c2 S2
I/c0
s0/c1
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
II) Si se usa una ROM, un MUX 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 6 (bits/pal)
- Capacidad de la ROM:
C ≥ 2n+1 palabras x (log2q+n+m) (bits/palabra) ≥23 palabras x 8 (bits/palabra)
- 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.
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.
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
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:
I s0/c5 s0/0
s0/0
Como se conoce el diagrama de transición de estados es posible construir la siguiente tabla de transición
de estados
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′
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):
- MUX (q:1)
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.
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.
• Diagrama ASM
• En cada estado se debe generar una sola señal de control (c 0 en S0, c1 en S1, c2 en S2)
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)
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)
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..
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
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
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
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
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
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
Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
E c1 c1
Q R Q
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
c0 Unidad de
Inicio Circuito Procesamiento
c1
Fin de
Reloj Control
c7
Unidad de
Control
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)
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
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
José Garzía
En la figura se representa el diagrama de flujo de un algoritmo.
BX
AY
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 AY
C1 BX
C2 A A’
C3 A A+1
C4 A (UAL)
C5 B B+1
C6 C (UAL)
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 RA
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’.
UAL OP
Señales de control
Estado en curso
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.
S8
S7 S8 Bus B BuB=1
S8 S8 ninguna ninguna
Señales de control
Estado en curso
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:
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.
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:
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.
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 Cont4
s1 s1=0 cuando Cont<128 y s1=1 cuando Cont128
Señales de control
Estado en curso
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
C9 A → BUS
C10 B → BUS
B ← BUS C3, C4
S1
CONT = 0 C6, C7
S2 ------ ------
S3 ------ ------
S7 BUS ← B C10
S8 BUS ← A C9
S9 (Parar) ------
S1
s0
S2
s0
s1
S3
s1
S4 S5
S6
S7
S8
S9
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
Próximo
Estado Condición w1 w0 E3 E2 E1 E0 Operación ED S. de control
estado
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 -
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
6
R
OF
LX
yQ
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
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
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
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
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)
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
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
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)
S7
s1
S4
s0 s1
S0 S1 S2 S3 S6 S8
s0 S5
S1 B ← Bus c2
S2 C ← Bus c3
S3 Ninguna Ninguna
S5 A←A+B c1
S6 Desplazar derecha C c4
S7 Incrementar contador c8
S8 Ninguna Ninguna
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
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)
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 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
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)
S4 s1
S0 S1 S2 s0
S3 S6 S7
s0 s1
S5
s1
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
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
Señal Descripción
C)
s0
S0 S1 S2
s0 S4 S5
S3
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
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
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
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.
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.
_
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.
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.
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.
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.
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
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.
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
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
3000x100
% T. Proc. = = 0,006 %
50 x 106
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:
750 x103
% T. Proc = = 1,5 %
50 x106
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
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
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.
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
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]
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.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
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.
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.
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
Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
CP←(RM) c4
Microoperaciones Señales de
Control
RD←(RI(dirección)) c14
RM←memoria c0
Si s0=1 CP←(RM) c4
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.
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.
Opción B) :
Opción C) :
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
Luego:
Desplazamiento=90
Desplazamiento10=90=64+16+8+2=26+24+23+2
Desplazamiento2=1011010
110011 0001011010
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
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.
C=(((A+B+C)·D)+A)2/A
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.
1) Push M[Y];
2) Push M[X];
3) Push M[Z];
4) Add;
5) Mult;
6) Pop M[Y]
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.
C=((((A+B)·D+A)3·A)/B)+A
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:
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:
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
C PLF C PLV
− = 40 − 30 = 10 (bits/instrucción)
NT NT
C PLF C PLV
−
NT NT 10
LF
= ·100 = 25%
CP 40
NT
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.
1) Push M[X];
2) Push M[Y];
3) Push M[Z];
4) Add;
5) Add;
6) Pop M[Y]
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.
C=((X+Y+Z)·X)2/X=((X+Y+Z)2·X2)/X=(X+Y+Z)2·X
cuyos tamaños son 8 bits, 24 bits y 24 bits, respectivamente. Luego el tamaño de esta instrucción es
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
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.
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
DIRfinal= CP + Desplazamiento
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
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.
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.
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:
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:
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:
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
X=((X+Y+Z)2·X2·Z)/Y
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.
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:
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.- 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 + n2 . 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
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.
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
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
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?.
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.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.
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?
Recopilación realizada por Jose Manuel Díaz, tutor de ETC2 en Coslada (Madrid)
ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2009-2010
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
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.
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.
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
Afirmación II: Es Falsa ya que eso únicamente ocurre en las microinstrucciones con formato horizontal.
Afirmación I: Verdadera
Afirmación II: Es Verdadera es la característica típica de las microinstrucciones con formato horizontal
Afirmación B: Es Falsa
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.
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á:
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
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:
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.
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
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.
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.
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.
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.
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
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.
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
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.
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.
24 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
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.
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.
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.
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.
Cada microprograma ocupa 16 palabras consecutivas de la memoria de control. Por lo tanto la capacidad
minima necesaria para la memoria de control es:
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.
(I19,I18,I17,I16,I15,I14,0,0,0,0)
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.
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)
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.
24 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
24 bits
Cond.
1 Bifurcación
DIRMc
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.
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
Luego en este caso el número de bits utilizados en los subcampos de control de la microinstrucción
vertical es de 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.
2 3 2 4
1
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).
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:
3UREOHPD 6HSWLHPEUH
Ck E A B Ck E
ED c0 c0
c0
Reg. Desp. UAL Contador c0
E c1 c1
Q R Q
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
c0 Unidad de
Inicio Circuito Procesamiento
c1
Fin de
Reloj Control
c7
Unidad de
Control
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)
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
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
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
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
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
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
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
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).
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.
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:
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.
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,1106 instruc / s
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.
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:
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.
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:
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
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.
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.
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.
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
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:
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:
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.
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
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:
El segundo sistema puede soportar 750 operaciones de E/S por segundo o lo que es lo mismo:
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
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.
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)
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:
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:
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.
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.
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.
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.
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
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:
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
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
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 = 2x+240=360.
Por tanto x=60 ns, y el número de ciclos para el acceso a memoria es 4.
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:
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)
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.
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):
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
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
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.
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.
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.
Respuesta A)
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.
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
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:
• 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.
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
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:
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:
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:
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.
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) R1114 B) R152 C) R1162 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 (R1114).
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:
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:
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]
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:
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.
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
4 KByte / transf .
2 10 3 s / transf .
2 MByte / s
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:
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.
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
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
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.
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:
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:
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:
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.
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
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.
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.
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
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 ; R020
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
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
Operando, se obtiene:
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
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
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.
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 ; R020
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
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:
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.
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.
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.
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.
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.
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)
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
De donde:
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
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.
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 .::
":7
~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....
1\.t s ...'
I
'o
~\ dI" lc~
j •
.-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""'
S
10D
o
o ~
b l
f o o
o f 1o 6
! ~ _.. --_. AODU
~, o
J 4
/),,.. boJe
i),rPC('
B __
DC\ Jo .< x j
+)
----,
- Ce> lYl r Q ,:::1:1
~~ /,
M ~o .,l,I7I~ \rO~
/
V r R.ar-'J
t. co ¿~ 'e\~"
"
If\
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
-~
-
/
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
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
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
Solució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:
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
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.
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
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?
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:
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:
Como según el enunciado, cada palabra contiene un valor igual a su dirección en memoria, la indirección (00C9)
= 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.
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 110 9 s 1 ns
f 1GHz 110 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
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 1024s
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 1000ns 100
3s
0,29 %
2000 1000ns 1024s 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',.,
(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
s
- ¿ "
s 1 c:4rn ~!=:
< =b Q..o M
) Bv. d1.- " Ao 6 • ~s
r~
'º
"
z~ 8
=
J
•' d c.~~= 'Z b ,·b
- ~
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\
So /1 e ¡.J: :.0\1'
- --:o-:TT~ .t t
A ()fo"'¡1 _1
tJ ev p ().e_._ _ __
D~ -
D2
R~&.0n~·~e~1:,...,::.-·----~~~~~~~~~--
).. )/ ,,~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..
~©
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~
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.
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
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
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 ; R020
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
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
Operando, se obtiene:
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
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
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.
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 ; R020
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
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:
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.
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.
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.
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.
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.
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)
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
De donde:
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
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.
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-}-*^