Coleccion Problemas Etc II

304
COLECCIÓN PROBLEMAS ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II INFORMÁTICA SISTEMAS Y GESTIÓN DELEGACIÓN DE ALUMNOS CENTRO ASOCIADO DE BALEARES

Transcript of Coleccion Problemas Etc II

Page 1: Coleccion Problemas Etc II

COLECCIÓN PROBLEMAS

ESTRUCTURA Y TECNOLOGÍA

DE COMPUTADORES II

INFORMÁTICA SISTEMAS Y GESTIÓN

DELEGACIÓN DE ALUMNOS

CENTRO ASOCIADO DE BALEARES

Page 2: Coleccion Problemas Etc II

COLECCIÓN PROBLEMAS ESTRUCTURA Y TECNOLOGÍA COPUTADORES II

Page 3: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

PROBLEMASTEMA 1: Estructuras de interconexión de un computador

Problemas propuestos en examen

1.1 Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con unformato único compuesto por un campo de 5 bits, para el código de operación, y otro campo de 11 bitspara los operandos. Todos los 16 códigos de operación comienzan por un 0 y, por tanto, van del 00000 al01111. Indicar si las siguientes afirmaciones son verdaderas o falsas

I. Si en una dirección de memoria nos encontramos el valor 0011010110001010, necesariamente esuna instrucción máquina.

II. Si en una dirección de memoria nos encontramos el valor 1011010110001010, necesariamente esun dato.

1.2 La memoria de un ordenador consta de 10 módulos independientes conectados a un bus de memoriacomún. En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistema alcomienzo de la operación y durante un 20% del tiempo total del ciclo de escritura. El 80% del tiempo deciclo de escritura restante el módulo lo emplea para almacenar el dato internamente. Si las operaciones deescritura de dichos módulos de memoria pueden solaparse, ¿en cuánto se ve incrementada la velocidadmá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áquinaocupan una longitud de 16 ó 32 bits (1 ó 2 palabras). En ambos casos, el código de operación de lasinstrucciones 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 parainstrucciones.

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 memoriacomún. En una operación de escritura cada uno de estos módulos únicamente ocupa el bus del sistemadurante 25 nseg. Al comienzo de la operación. Durante los 75 nseg. siguientes completa el ciclo deescritura almacenando el dato internamente. Si las operaciones de escritura de dichos módulos de memoriapueden solaparse, ¿cuál es la velocidad máxima de almacenamiento de la memoria del ordenador ?

1.5 Indique si las siguientes afirmaciones son verdaderas.I. Una transferencia de datos en un bus que utiliza la técnica de multiplexación en el tiempo de

direcciones y datos se realiza de la forma siguiente: se coloca la dirección en el Bus deDirecciones y se mantiene mientras el dato se sitúa en el Bus de Datos.

II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma línea deun bus, sólo una de ellas puede estar en estado de alta impedancia.

1.6 A un bus dedicado a E/S se han conectado la memoria principal y cinco discos iguales. El tiempo deciclo de la memoria principal es 400 nseg. La velocidad de transferencia de cada disco es B. La longitud depalabra 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 contemporizació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

Page 4: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

1.7 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido:I. La 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.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. Elformato de las instrucciones es el siguiente: los 4 bits más significativos de la instrucción representan elcódigo de operación y los otros 12 bits representan la dirección de memoria. A continuación se muestrauna 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 correctosD) Ninguno de los anteriores

Page 5: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

PROBLEMASTEMA 2: Unidad de memoria

Problemas propuestos en examen

2.1 Una memoría caché asociativa por conjuntos consta de 16 (24) conjuntos con 4 particiones porconjunto. La memoria principal tiene una capacidad de 1M (220) palabras dividida en bloques de 128 (27)palabras. A la dirección de memoria principal, expresada en binario, 10100001100100110000 ¿Qué conjuntole corresponde (expresarlo en decimal) ?.

2.2 Un computador tiene una unidad de memoria de 2M (221) palabras y una memoria caché de 1K (210)palabras con un tamaño de partición de 64 (26) palabras. Suponer que se hace una referencia a la direcciónde memoria principal, expresada en binario, 000000001100100110000.

a) Si la memoria caché utiliza correspondencia directa, ¿En qué partición de la memoria caché seríaposible encontrar esa dirección de memoria principal?. ¿Qué etiqueta habría que buscar en esapartició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 quebuscar 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 dememoria principal 000000000, 000000001, 000000011, 000100001, 000100101, 000010000, 000010010 y000000000, 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 porconjunto. El algoritmo de reemplazamiento utilizado es FIFO (Firts-In Firts-Out).

c) La memoria caché emplea correspondencia totalmente asociativa. El algoritmo dereemplazamiento 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 de10 nseg, y una memoria principal de 1024 Kpalabras con un tiempo de acceso de 100 nseg. Si la tasa deacierto de la caché es del 90%. Calcular el tiempo de acceso medio del conjunto si cuando se produce unfallo en la caché el sistema tarda 20 nseg adicionales en tratar el fallo y la palabra solicitada es enviada dela 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 enla 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 delregistro argumento, del registro de máscara y delcontenido de la memoria, ¿cuál sería el valor delregistro de marca?

0 1 0 1 1 1 0 0 ARGUMENTO

1 0 1 0 1 1 0 1 MÁSCARA

1 0 0 1 1 1 1 1 ?0 1 0 1 1 0 1 0 ?0 1 0 1 0 0 1 0 ? MARCA0 1 1 0 1 1 1 0 ?0 0 0 1 1 1 1 0 ?

Page 6: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

2.7 Un computador tiene una unidad de memoria de 4096 palabras y una memoria caché de 64 palabras. Lamemoria caché utiliza correspondencia directa, con un tamaño de partición de 16 palabras. Suponer queinicialmente la memoria caché está vacía y que se leen sucesivamente las direcciones de memoria principal000000010000, 000100010100, 000001001000 y 000001111000. Indicar si de las afirmaciones siguientes sonciertas:

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 delos bloques existentes en la caché.

II. Si se leyera la dirección de memoria principal 000001110001 se produciría un acierto en la memoriacaché y sería necesario reemplazar un bloque existente en la caché.

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

A la vista de los valores del registro de máscara y delcontenido de la memoria, ¿cuántos de los argumentospropuestos a continuación producirían ese registro de marca?

2.9 Un computador tiene una unidad de memoria de 4096 palabras y una memoria caché de 128 palabras. Lamemoria 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 inicialmentela memoria caché está vacía y que se leen sucesivamente las direcciones de memoria principal000000010000, 000100010100, 000001001000 y 000001111000. Indicar si las afirmaciones siguientes sonciertas:

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é de1K palabras. La memoria caché utiliza correspondencia asociativa por conjuntos, con un tamaño departición de 16 palabras y 4 particiones por conjunto. Explicar razonadamente en qué campos se divide ladirección de memoria principal 0000110111000011 e indique el valor de cada uno de estos campo endecimal.

2.11 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores delregistro argumento y del contenido de la memoria, ¿cuántos de losregistros de máscara propuestos a continuación producirían eseregistro de marca en el acceso a memoria?

0 0 1 0 1 0 0 1 Máscara 1

1 0 1 0 0 0 0 1 Máscara 2

1 0 1 0 1 0 0 1 Máscara 3

1 0 1 1 1 0 0 1 Máscara 4

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 80nseg. y un tiempo de ciclo de 100 nseg.?

? ? ? ? ? ? ? ? ARGUMENTO

1 0 0 1 0 1 0 0 MÁSCARA

1 1 0 1 1 1 1 1 01 1 0 1 1 0 1 0 10 0 0 1 0 0 0 1 0 MARCA1 0 1 0 0 1 1 0 01 1 0 1 1 0 0 1 1

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

0 1 0 1 1 1 0 0 ARGUMENTO

? ? ? ? ? ? ? ? MÁSCARA

1 0 0 1 1 1 1 1 00 1 0 1 1 0 1 0 10 1 0 1 0 0 1 0 0 MARCA0 1 1 0 1 1 1 0 00 0 0 1 1 1 1 0 1

Page 7: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

2.13 Indicar si las siguientes afirmaciones son verdaderas o falsas. Para diseñar un módulo de memoria de256 palabras de 4 bits

I. Utilizando organización 2D, para seleccionar la palabra haría falta un decodificador de 8 entradasy 28 salidas.

II. Utilizando organización 2 ½ D, para seleccionar la palabra harían falta dos decodificadores de 4entradas y 24 salidas.

2.14 En una memoria caché en la que se realizan 230 accesos con una tasa de aciertos del 75%, ¿Cúal es elnúmero de fallos producidos ?

2.15 Un computador tiene una unidad de memoria de 256 palabras y una memoria caché de 32 palabras. Lamemoria caché es totalmente asociativa, con un tamaño de partición de 8 palabras y cuando se produceun 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 sucesivamentelas 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 delregistro argumento, del registro de máscara, del registro etiqueta y del contenido de la memoria, ¿cuál seríael valor del registro de marca?

1 0 0 1 1 0 1 0 ARGUMENTO1 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 ?

ETIQUET 1 1 0 0 1 0 0 0 0 ? MARCA0 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. Lamemoria caché es totalmente asociativa, con un tamaño de partición de 8 palabras. Cuando se produce unfallo 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 sonverdaderas 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, divididaen particiones de 8 palabras y con un tiempo de acceso de 10 nseg, y por una memoria principal de 1024Kpalabras 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álserá 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 de8 palabras y con un tiempo de acceso de 10 nseg, y una memoria principal de 1024 Kpalabras con untiempo de acceso de 100 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a lamemoria caché y después se lee el dato desde la caché. Si la tasa de acierto de la caché es del 90%, ¿cuál esel tiempo de acceso medio de este sistema?

Page 8: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

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

1 0 0 1 1 0 1 0 ARGUMENTO1 0 0 1 0 1 0 1 MASCARA

1 1 1 0 1 1 1 1 1 Palabra 0 01 1 1 0 1 1 0 1 0 Palabra 1 1

ETIQUET 1 1 0 0 1 0 0 0 0 Palabra 2 1 MARCA0 1 0 1 0 0 1 1 0 Palabra 3 00 1 1 0 1 1 0 0 0 Palabra 4 0

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 queinicialmente la memoria caché está vacía y que se leen sucesivamente las direcciones de memoria principal000000010000, 000100010100, 000001001000 y 000001111000. Indicar si al finalizar estas cuatro operacionesde 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 A 11 -A0 . Para la construcción desu 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 (primeradirecció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 nivelessuperiores a los inferiores): registros de la CPU, caché primaria, caché secundaria, memoria principal ydiscos 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 algunosbloques de ésta.

2.24 Indicar si las siguientes afirmaciones son verdaderas o falsas. En un sistema de memoria caché concorrespondencia 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 A 11 -A0 . Para la construcción desu 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 dememoria.

B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes módulos dememoria.

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 queinicialmente la memoria caché está vacía y que se leen sucesivamente las direcciones de memoria principal000000010000, 000100010100, 000001001000 y 000001111000. Indicar si al finalizar estas cuatro operacionesde 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.

Page 9: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

2.27 Un computador tiene una memoria principal de 32k palabras de 16 bits/palabra. También tiene unamemoria caché asociativa por conjuntos de 4k palabras, con 4 bloques por conjunto y 64 palabras porbloque. Considérese que la memoria caché está inicialmente vacía y que utiliza el algoritmo FIFO para elreemplazo 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 lamemoria principal. Se pide:

a) (0.50 puntos) Especifique el número de bits de los campos en que se descompone una direcciónde memoria principal de este sistema.

b) (0.25 puntos) Calcule cuánto tiempo se tardaría en realizar estos accesos a memoria principal sieste computador no tuviera memoria caché.

c) (2 puntos) Calcule cuántos fallos se producen en la caché a la hora de realizar estos accesos amemoria principal. Explique claramente su razonamiento.

d) (1.25 puntos) Si cada vez que se produce un fallo primero se mueve el bloque completo dememoria principal a memoria caché y después se lee el dato de la caché, calcule cuánto tiempotardaría la CPU en realizar estos accesos a memoria.

2.28 Un programa tiene dos bucles anidados, un bucle interior menor que se ejecuta 20 veces y un bucleexterior 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 elprincipio y final del programa. Las direcciones se muestran en formato decimal(hexadecimal), por ejemplo165(H00A5).

Todas las direcciones de memoria de las diferentes secciones, 17-22, 23-164, 165-239, etc., contieneninstrucciones que deben ejecutarse en secuencia de línea recta. El programa se ejecuta en un computadorcon una memoria principal de 64k palabras y una memoria caché con correspondencia directa de 1kpalabras y un tamaño de bloque de 128 palabras. El tiempo de acceso a la memoria principal es de 10t y eltiempo de acceso a la memoria caché es de 1t.

a) (0.25 puntos) Especifique el número de bits de los campos en quese descompone una dirección de memoria principal de este sistema.

b) (0.75 puntos) Calcule cuánto tiempo se tardaría en ejecutar esteprograma si este computador no tuviera memoria caché.

c) (2 puntos) Calcule cuántos fallos se producen en la caché a la horade ejecutar este programa. Explique claramente su razonamiento.(Sugerencia: diferencie entre la primera ejecución del bucle exteriory las nueve restantes.)

d) (1 punto) Si cada vez que se produce un fallo primero se mueve elbloque completo de memoria principal a memoria caché y despuésse lee el dato de la caché, calcule cuánto tiempo se tardaría enejecutar este programa en este computador.

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

2.30 Se considera un procesador que dispone de 12 líneas de direcciones A 11 -A0 . Para la construcción desu unidad de memoria se dispone de módulos de 2K palabras, utilizándose la línea A1 para la selección decada 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 dememoria.

B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes módulos dememoria.

C) El módulo en que se encuentra almacenada una dirección de memoria queda determinado por elvalor de A10 .

D) Ninguna de las anteriores es verdadera.

17 (H0011)

23 (H0017)

165 (H00A5)

239 (H00EF)

1200 (H04B0)

1500 (H05DC)

17 (H0011)

23 (H0017)

165 (H00A5)

239 (H00EF)

1200 (H04B0)

1500 (H05DC)

Page 10: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

2.31 Un computador tiene una memoria principal de 64k palabras de 16 bits/palabra. También tiene unamemoria 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 elbloque que se haya utilizado más recientemente. Supóngase que la UCP ejecuta un bucle 5 veces, en elque accede a 2301 palabras, desde la dirección 0 hasta la dirección 2300. La memoria caché es 7 veces másveloz 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 dememoria principal de este sistema.

B) (0.25 puntos) Calcule cuánto tiempo se tardaría en realizar estos accesos a memoria principal si estecomputador no tuviera memoria caché.

C) (1.5 puntos) Realice una tabla con 5 columnas, una columna por cada vez que se ejecuta el bucle, ytantas filas como bloques tenga la memoria caché. En cada columna ponga el valor de la etiquetaexistente en cada bloque de la caché al finalizar cada uno de los cinco ciclos. Expresar el valor de laetiqueta en hexadecimal.

D) (1.00 puntos) Calcule cuántos fallos se producen en la caché a la hora de realizar estos accesos amemoria principal. Explique claramente su razonamiento.

E) (1.00 puntos) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoriaprincipal a memoria caché y después se lee el dato de la caché, calcule cuánto tiempo tardaría laUCP 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 deaciertos correspondiente ?.

2.33 Un computador tiene una unidad de memoria de 8192 Kpalabras y una memoria caché de 2 Kpalabras.La memoria caché utiliza correspondencia asociativa por conjuntos, con un tamaño de partición de 64palabras y 4 particiones por conjunto. Suponer que inicialmente la memoria caché está llena con laejecució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 secuencialmentelas direcciones 128, 129, 130 hasta la 143, posteriormente se repite un bucle de lectura de las direcciones131,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 delregistro argumento, registro etiqueta y del contenido de la memoria, ¿cuántos de los registros de máscarapropuestos a continuación producirían ese registro de marca en el acceso a memoria?

2.35 Una memoria caché por correspondencia directa utiliza particiones de 64 palabras y su capacidad totalson 1024 palabras. La memoria principal tiene capacidad para 220 palabras. Decir si las siguientesafirmaciones son ciertas:

I. Las direcciones de memoria principal 1D45F y 02075, expresadas en hexadecimal, se correspondencon 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 lamemoria caché.

2.36 Supóngase una memoria RAM de 1024 palabras × 16 bits/palabra construida empleando circuitosintegrados de memoria RAM de 128 palabras × 8 bits/palabra. A fin de permitir el direccionamiento de laspalabras de la memoria, calcular: a) El número de líneas del bus de direcciones. b)El número de lineas delbus de direcciones comunes a todos los módulos.

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

0 1 1 0 1 1 1 1 0 01 1 1 0 1 1 0 1 0 1

ETIQUETA 1 1 0 0 1 0 0 0 0 0 MARCA1 1 0 1 0 0 1 1 0 01 1 1 0 1 1 0 0 0 1

0 1 0 0 1 0 0 1 máscara 10 1 0 0 0 0 0 0 máscara 20 0 0 1 1 0 0 0 máscara 30 0 0 1 1 0 0 1 máscara 40 0 0 0 1 0 0 1 máscara 5

Page 11: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

2.37 ¿Cuál es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 100nseg 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 enparticiones de 16 palabras y con un tiempo de acceso de 10 µs, y por una memoria principal de 1024Kpalabras con un tiempo de acceso de 200 µseg. Cuando se produce un fallo, primero se mueve el bloquecompleto a la memoria caché y después se lee el dato desde la caché. La política de ubicación yreemplazamiento tarda 20 µseg por término medio. Si la tasa de acierto es del 99%, decir si las siguientesafirmaciones 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 1Kpalabras. La memoria principal tiene una capacidad de 64K palabras. En un determinado instante, ladirección 6B59, expresada en hexadecimal, de la memoria principal se encuentra en la caché. Decir si lassiguientes 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áscercana a la CPU y la memoria de nivel 2 es la más cercana a la memoria principal. Indique si las siguientesafirmaciones 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 copiaexacta de los bloques de la memoria caché de nivel 1.

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 únicomódulo y ocupa las direcciones más bajas de la memoria, comenzando en la dirección 0. La RAM, con 48Kbytes de capacidad, ocupa las direcciones restantes. Indique si las siguientes afirmaciones sonverdaderas:

I. La función lógica de la señal de habilitación del módulo de memoria ROM es 1415 AACS ROM = .

II. Los dos bits menos significativos de la dirección, A1 A0 , se pueden utilizar para distinguir siuna 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 enpromedio 2 mseg en colocar en su posición la cabeza de lectura-escritura. ¿Cuál es el tiempo medio quetarda en leer o escribir 103 bytes?

2.43 Un sistema jerárquico de memoria tiene una memoria caché de 256 palabras, dividida en particiones de8 palabras y con un tiempo de acceso de 20 nseg, y una memoria principal de 1024 Kpalabras con untiempo de acceso de 200 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a lamemoria caché y después se lee el dato desde la caché. Si la tasa de acierto de la caché es del 90%, ¿cuál esel 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 deaciertos:

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

Page 12: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

2.46 Con el objetivo de acercar la velocidad de la unidad de memoria de un computador a la velocidad delos registros de su CPU, a un coste razonable, indique cuál de las siguientes alternativas sería másadecuada:

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.

Page 13: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

PROBLEMASTEMA 3: Unidad de Entrada/Salida

Problemas propuestos en examen

3.1 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 2 unidades decinta. Las unidades de disco tienen una velocidad de transferencia de 500 Kbytes/seg, y las de cinta de150 Kbytes/seg. Calcular la máxima velocidad de transferencia agregada a este sistema.

3.2 Un computador dispone de un canal selector que controla 2 unidades de disco y 2 unidades de cinta.Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 105

bytes/seg. Si para la transferencia de un byte del canal selector a memoria principal se utiliza el bus delsistema durante 10 nseg., ¿qué porcentaje máximo de tiempo estaría ocupado el bus del sistema en unatransferencia 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, enpromedio, una instrucción emplea 10 ciclos máquina y cada operación de lectura o escritura de memoriatarda 5 ciclos máquina. Determinar la máxima velocidad de transferencia de datos si en este sistema seemplea 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/salidalocalizada en memoria.

a) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada unoocupa una sola dirección?

b) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada unoocupa 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 tresprimeras líneas mediante 3 bits del registro de estado RE de la UCP, de forma que una petición deinterrupción en PIj enmascara las líneas PIi con i<j e i≠0. Se supone que se producen 4 peticiones deinterrupción en este orden : PI3,PI2, PI0 y PI1. Teniendo en cuenta que las tres últimas se producen mientrasse 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 deciclos. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos dereloj en ser ejecutadas, aunque en 2 de ellos no requiere el acceso al bus. Si la frecuencia de reloj delcomputador es de 200×106 ciclos/seg., ¿cuántas instrucciones por segundo deja de ejecutar la UCP cuandoel 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, enpromedio, 4 ciclos máquina en ser ejecutada y en 2 de estos ciclos no hace uso del bus. Este computadortiene un controlador de DMA que emplea 1 ciclo en la transferencia de una palabra. Indicar si son ciertaslas siguientes afirmaciones:

I. Utilizando DMA transparente la máxima velocidad de transferencia de datos es de 50.000.000palabras/seg.

II. Empleando DMA por robo de ciclos la máxima velocidad de transferencia de datos es de20.000.000 palabras/seg.

Page 14: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

3.8 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 5 unidades decinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de2×105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza elbus del sistema durante 100 nseg. ¿Qué porcentaje máximo de tiempo estaría ocupado el bus del sistema enuna 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 unacapacidad de 256 Kb. En un instante determinado inicia una operación de E/S con una impresora a unavelocidad de transferencia de 256 Kb/seg. Si el controlador de E/S recibe la información que debe enviar ala impresora a una velocidad de 1Mb/seg, ¿cuánto tiempo tardará en llenarse por primera vez el buffersuponiendo que inicialmente está vacío, y que recibe y envía información simultáneamente de formacontinua?

3.10 Si llamamos VP, VI y VD a las velocidades máximas de transferencia empleando E/S controlada porprograma, 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/salidaaislada 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, enpromedio, 4 ciclos de reloj en ser ejecutadas, aunque en 1 de ellos no requieren el acceso al bus. Lafrecuencia de reloj del computador es de 200×106 ciclos/seg. Si se tarda un ciclo en transmitir una palabraempleando DMA, indicar si las siguientes afirmaciones son ciertas:

I. Empleando DMA por robo de ciclos se consigue la misma velocidad de transferencia que conDMA transparente.

II. La velocidad de ejecución del procesador se reduce más con DMA por robo de ciclos que conDMA transparente.

3.14 Un computador dispone de un canal multiplexor que controla 3 unidades de disco y 5 unidades decinta. Las unidades de disco tienen una velocidad de transferencia de 5×106 bytes/seg., y las de cinta de105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el busdel sistema durante 50 nseg., explique razonadamente qué porcentaje máximo de tiempo estaría ocupado elbus del sistema en una transferencia de datos a través de este canal multiplexor.

3.15 Indicar cuál de las siguientes afirmaciones es verdadera:A) La principal desventaja de las interrupciones vectorizadas consiste en que la UCP ha de comprobar,

uno por uno, el estado de todos los controladores de E/S de los dispositivos que tiene conectados.B) La UCP recibe el vector de interrupción a través del bus de datos o del bus de direcciones,

indistintamente.C) Las interrupciones multinivel no permiten la identificación de la fuente de interrupción mediante un

vector de interrupción.D) Ninguna de las anteriores.

3.16 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 10 unidades decinta. 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.

Page 15: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

3.17 Se dispone de una UCP con una única línea de petición de interrupción (INTR) y una única línea deaceptación de interrupción (INTA). Se desea diseñar para esta UCP un controlador de interrupciones comoel mostrado en la figura, de manera que pueda atender interrupciones generadas por 4 dispositivosexternos 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ásprioritaria (la máxima prioridad la tiene INTR3 y la mínima INTR0). Además, cada una de estas líneas deinterrupción se ha de poder enmascarar de manera individual mediante un registro de máscara delcontrolador de interrupciones (el mecanismo de acceso a este registro por parte de la UCP no es relevantepara este problema).

Cuando la UCP activa su línea de aceptación INTA se debe informar al periférico correspondiente, demanera individual, de que su petición ha sidoaceptada, mediante las líneas de aceptaciónINTA3, INTA2, INTA1 e INTA0.A) (0.75 puntos) Obtener la tabla de verdad de

las 4 líneas INTAi (i=1..4) en función de las 4líneas INTRi (i=1..4) e INTA, suponiendoque ninguna de las líneas de petición estáenmascarada.

B) (0.75 puntos) Diseñar un circuito lógico queimplemente el mecanismo deenmascaramiento de las 4 líneas INTRi(i=1..4).

C) (0.75 puntos) Diseñar un circuito lógico que implemente el esquema de prioridades de las 4 líneasINTRi (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 elprograma 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 decinta. 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 delsistema durante 100 nseg. ¿Qué porcentaje máximo de tiempo estaría ocupado el bus del sistema en unatransferencia 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 PIicon 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 producensimultá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 delsistema durante 50 nseg., ¿qué porcentaje máximo de tiempo estaría ocupado el bus del sistema en unatransferencia de datos a través de este canal selector?.

UCPControlador

deinterrupciones

INTR

INTA

INTA0

INTA1

INTA2

INTA3

INTR0

INTR1

INTR2

INTR3

Page 16: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

3.22 En el mecanismo de E/S mostrado en la figura, indicarque afirmaciones son ciertas :

I. Hay un único espacio de direcciones para lasposiciones de memoria y los dispositivos de E/S.

II. Se pueden utilizar instrucciones del tipo referenciaa memoria para acceder a datos de E/S.

3.23 Sea una UCP con 4 líneas de interrupciónenmascarables 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 decinta. 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 decinta. 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 delsistema durante 200 nseg. ¿Qué porcentaje máximo de tiempo estaría ocupado el bus del sistema en unatransferencia de datos del canal multiplexor a memoria principal?

3.26 Se desea diseñar un controlador de interrupciones con las siguientes características. Tiene unmódulo de gestión de prioridades de forma que cuando se reciban peticiones de interrupción simultáneaspor más de una línea sólo se reconozca la más prioritaria. Tiene un módulo de enmascaramiento quepermite enmascarar de manera individual cualquiera de las líneas de petición. ¿En qué orden se colocaríanestos 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 decinta. 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 delsistema 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 DMAtransparente. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4ciclos de reloj en ser ejecutadas, pero en uno de ellos no hace uso del bus. El controlador de DMA tardaun ciclo de reloj en transmitir una palabra. Explicar razonadamente qué reducción en la velocidad de la UCPsupone 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 enser ejecutadas, aunque en 2 de ellos consecutivos no se requiere el acceso al bus. El controlador de DMAtarda 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 por100·106

palabras?

...Perif. 1 Perif. n

MemoriaPrincipal UCP

Controlador E/S

Bus de datosBus de direccionesLeerEscribir

Page 17: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

3.31 En un sistema de E/S de un computador están conectados 2 discos duros, 1 impresora y 1 CDROM. Elsistema de E/S gestiona los dispositivos mediante interrupciones anidables y además estos estánagrupados por prioridades con P1>P2>P3, siendo la prioridad de los discos P1, la del CDROM P2 y la dela 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 impresorade 15 u.t. En un instante determinado (t=0 u.t.) se produce una petición de interrupción del primer discoduro, después en el instante t=3 u.t. llega una petición de interrupción de la impresora, posteriormente seproduce una interrupción del CDROM en t = 5 u.t. y finalmente llega una petición de interrupción delsegundo disco duro en t = 14 u.t. ¿En qué instante de tiempo finaliza la ejecución de la rutina deinterrupción del CDROM?

3.32 Indique si las siguientes afirmaciones son verdaderas.I. El controlador de DMA necesita tener el control del Bus para poder transmitir datos desde (o hacia)

la memoria.II. La estrategia de transmisión por ráfagas es la más adecuada cuando se desea eliminar

completamente la interferencia entre el controlador de DMA y la CPU.

3.33 Indique si las siguientes afirmaciones son verdaderas.I. En los computadores provistos de procesador de E/S (PE/S) las instrucciones se E/S se almacenan

en la memoria principal y son ejecutadas por la CPU.II. El PE/S inicia la transferencia de E/S al dar la orden a la CPU para que ejecute el programa con

instrucciones de E/S almacenado en memoria.

3.34 En el registro de estado del procesador Motorola 68000 hay tres bits (I2 I1 I0) usados para enmascararlas interrupciones de ciertos dispositivos. ¿Cuál es la configuración de estos bits si se desean enmascararlas 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 deaceptación de interrupción (INTA). Se desea diseñar para esta UCP un controlador de interrupciones comoel mostrado en la Figura, de manera que pueda atender interrupciones generadas por 8 dispositivosexternos 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 reconocela más prioritaria (la máxima prioridad la tiene INTR7 y la mínima INTR0). Este controlador no permiteenmascaramiento.

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.

A) (1.00 puntos) Obtener la tabla de verdadde las 8 líneas INTAi (i=0..7) en funciónde las 8 líneas INTRi (i=0..7) e INTA.

B) (1.00 puntos) Diseñar un circuito lógicoque implemente el esquema deprioridades de las 8 líneas INTRi (i=0..7).

C) (0.75 puntos) Diseñar el controlador deinterrupciones solicitado utilizando paraello los resultados obtenidos en losapartados anteriores.

D) (1.25 puntos) Indique razonadamentecómo conectaría 2 controladores de interrupciones de 8 entradas, como el diseñado en el apartadoanterior, para poder atender las peticiones de interrupción de 15 dispositivos externos. (Se valorarápositivamente la simplicidad del diseño.)

UCPControlador

deinterrupciones

INTR

INTA

INTA0

INTA7

INTR0

INTR7

Page 18: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

3.36 En un sistema cuando la UCP dispone en exclusiva del bus las instrucciones emplean 3 ciclos de relojen ser ejecutadas, aunque en 1 de ellos, el segundo, no requiere el acceso al bus. Si el controlador deDMA tarda dos ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmacionesson 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 decinta. 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 delsistema 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/salidaaislada. ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupauna sola dirección?

3.39 Indicar cuál de las siguientes afirmaciones es falsa.A) Un PE/S de tipo canal selector controla múltiples dispositivos de alta velocidad.B) Un PE/S de tipo canal multiplexor puede controlar de forma simultánea operaciones de E/S con

múltiples dispositivos.C) En E/S controlada por programa la CPU realiza, entre otras operaciones, la comprobación del

estado del periférico.D) Alguna de las anteriores es falsa.

3.40 En un computador que usa E/S controlada por programa, el dispositivo de E/S tarda 6 mseg en tenerdisponible el dato solicitado. Suponiendo que el computador sólo se dedica a E/S, que el bucle de esperase implementa con una única instrucción, que la lectura de un dato y solicitud del siguiente dato por partede la CPU lleva 10 instrucciones, y que cada instrucción de la CPU se ejecuta en 200 µseg, ¿qué tanto porciento de su tiempo dedica la CPU al bucle de espera?.

Page 19: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

PROBLEMASTEMA 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 dedos números X (x2x1x0) e Y (y2y1y0) de 3 bits cada uno, siendo su salida S (s3s2s1s0).

UAL

y2 y1y0x2 x1x0

c

s3 s2 s1 s0

El funcionamiento de la unidad viene descrito por:c = 0 : suma S = X + Y

c = 1 : comparaciónSi X > Y entonces S = 1 0 0 0Si X = Y entonces S = 0 1 0 0Si X < Y entonces S = 0 0 1 0

Para resolver el problema, seguir obligatoriamente los siguientes apartados:

a) Diseñar un comparador de números de 1 bit utilizando únicamente puertas lógicas.

b) Utilizando comparadores como el diseñado en el apartado A) y puertas lógicas, diseñar uncomparador de números de 3 bits.

c) Utilizando únicamente sumadores binarios completos (SBC), diseñar un sumador binario denúmeros de 3 bits.

d) Utilizando únicamente los módulos diseñados en B) (comparador de números de 3 bits) y C)(sumador binario de números de 3 bits) y los circuitos combinacionales que considerenecesarios, diseñe la UAL pedida.

4.2 Diseñar el circuito de comparación secuencial que se muestra en la figura. El circuito posee dosentradas 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 deforma serie, comenzando por los más significativos. El circuito genera sus salidas de acuerdo con lasiguiente tabla

M I m

X>Y 1 0 0

X=Y 0 1 0

X<Y 0 0 1

Para ello:

a) Indique el diagrama de estados del circuito, especificando claramente cuál es el significado decada 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 lasfunciones de excitación de los biestables.

d) Implemente el circuito con biestables tipo D y puertas lógicas NAND y NOT únicamente.

MI

m

Comparador

Secuencial

xn-1xn-2x0

yn-1yn-2y0

Page 20: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

4.3 Se desea realizar un circuito combinacional que multiplique dos números binarios, uno de ellos de 3bits (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 ).

ROM16x4

Bus dedirecciones

Bus dedatos

4 4

Selección decircuito

CS

Módulo de memoria ROM a utilizar

a) ¿Cuántos módulos ROM son necesarios? Dibujar el esquema del circuito que se obtieneutilizando los módulos ROM propuestos y, si considera necesario, otros móduloscombinacionales.

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 formade 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 paradiseñ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 tipoAND 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 binariocompleto SBC, desarrolle las expresiones del resultado de la suma (S1 y S0) y del acarreo (C1) de la suma delos 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 enbinario puro sin signo, utilizando únicamente 2 memorias ROM de 64 palabras × 6 bits/palabra y 2sumadores 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.

Page 21: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

4.11 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario completo (SBC) dedos 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 yxs ⊕= (⊕ es la OR exclusiva).

II. La función lógica del acarreo de salida es 1)( −⊕+= cyxxyc (⊕ es la OR exclusiva).

4.12 Se desea realizar una Unidad Aritmético Lógica (UAL) como la mostrada en la figura, con dosentradas de datos X (x2x1x0) e Y (y1y0), una entrada de control C (c1c0) y una salida de datosS (s3s2s1s0). El funcionamiento de la UAL viene descrito por la siguiente tabla:

Señal de control Operaciónc1c0 = 00 : suma S = X + Yc1c0 = 01 : resta S = X - Yc1c0 = 10 : comparación Si X > Y entonces S = 1 0 0 0

Si X = Y entonces S = 0 1 0 0Si X < Y entonces S = 0 0 1 0

c1c0 = 11 : sacar X S = X (s3=0, s2s1s0=x2x1x0)

UAL

y1y0x2 x1x0

s3 s2 s1 s0

3 2

c1c02

Para resolver el problema, seguir obligatoriamente los siguientes apartados:a) Utilizando únicamente puertas lógicas, diseñar un Sumador Binario Completo (SBC).

b) Diseñar un sumador/restador binario de números de tres bits utilizando SBC’s como el diseñado

en el apartado A) y las puertas lógicas necesarias.

c) Diseñar un comparador de números de tres bits utilizando únicamente un módulo de memoriaROM. ¿Cuál es el tamaño necesario para este módulo de memoria ROM? Indique claramente elsignificado de cada una de sus entradas y cada una de sus salidas. Escriba el contenido de lamemoria 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úmerosbinarios de un bit, x e y:

I. Una posible función lógica del resultado de la suma es xyyxs )( +=II. Una posible función lógica del acarreo de salida es yxc +=

Page 22: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

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.

4.16 Se desea construir un sumador binario con aceleración de arrastres (SBAA) para 2 números binariosX 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) condos entradas de datos xi e yi y un acarreo de entrada ci-1. Exprese la función lógica de sus cuatrosalidas: si (suma), ci (acarreo de salida), gi (generación de acarreo) y pi (propagación de acarreo). Apartir de estas funciones lógicas, y empleando únicamente puertas lógicas, diseñe este SBCmodificado.

b) La figura central muestra un circuito de aceleración de arrastres (CAA) de 3 bits con tres entradasde 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 deestas 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.

yixi

SBCmodificado

ci-1ci

si gi pi

p0p1 g0g1p2g2

c0c1c2

c-1CAA

y0y1 x0x1y2x2

s0s1s2

c-1SBAAde 3 bits

c2

4.17 En la suma de los números binarios x= 100101010010011 e y=001010110101011. Calcular cuantassecuencias de arrastre se generan y la longitud máxima de las secuencias de arrastre.

4.18 Calcular la capacidad que deberá poseer una memoria ROM, para implementar un sumador binario de2 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íaposible realizarlo:

I. Utilizando únicamente 4 ROM de 256 palabras x16 bits/palabra, un decodificador binario de 2entradas 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. Indiquesi 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.

Page 23: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

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

4.23 Se desea diseñar un circuito sumador/restador de dos números de cuatro bits cada uno, x3x2x1x0 ey3y2y1y0 ,con una señal de control M adicional para indicar la operación a realizar. Indicar si las siguientesafirmaciones 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 dosentradas de datos X (x1x0 ) e Y (y1 y0 ), una entrada de control C (c1c0 ) y una salida de datos R (r3r2r1r0). Elfuncionamiento de la UAL viene descrito por la Tabla 1.

Señal de control Operaciónc1c0 = 00 : suma R = X + Yc1c0 = 01 : producto R= X·Yc1c0 = 10 : comparación Si X > Y entonces R = 1 0 0 0

Si X = Y entonces R = 0 1 0 0Si X < Y entonces R = 0 0 1 0

c1c0 = 11 : sacar X , Y R = X , Y (r3= 1x , r2= 0x , r1= 1y , r0= 0y )

Tabla 1: Tabla de funcionamiento de la UAL

Para resolver el problema, seguir obligatoriamente los siguientes apartados:

a) Diseñar un comparador de números de dos bits utilizando únicamente comparadores de números de unbit y puertas lógicas.

b) Diseñar un sumador/multiplicador de dos números de 2 bits utilizando únicamente un módulo dememoria ROM. ¿Cuál es el tamaño necesario para este módulo de memoria ROM? Indique claramente elsignificado de cada una de sus entradas y cada una de sus salidas. Escriba todo el contenido de lamemoria ROM en forma de tabla.

c) Utilizando únicamente los módulos diseñados en los apartados anteriores, los móduloscombinacionales necesarios y puertas lógicas, diseñe la UAL pedida.

UAL

y1y0x1x0

r3 r2 r1 r0

2 2

c1c02

Figura 1: Módulo UAL

Page 24: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

4.27 Dados dos números binarios de 1 bit, x e y, la expresión lógica representa: xyyx )( + .

A) El bit de suma. B) El bit de acarreo de su suma.

C) El complemento a 1 de x e y .D) Ninguno de las anteriores.

4.28 ¿Cuántos SBC de 1 bit harían falta para construir un sumador binario serie capaz de sumar dosnú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 unasalida 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, 0en caso contrario) y r5 (1 si X<Y, 0 en caso contrario).

• Realizar cuatro operaciones de desplazamiento sobre X empleando dos entradas adicionalesllamadas ed (entrada por la derecha) y eI (entrada por la izquierda). El resultado de la operación es elnú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 odesplazamiento) y dos señales más d1 d0 para indicar el tipo de operación de desplazamiento. Decir cuál deestas afirmaciones es verdadera.

I. Se puede realizar usando 2 módulos de memoria ROM de 64 Kpalabras · 8 bits y una puerta lógicaNOT.

II. Se puede realizar usando 1 módulo de memoria ROM de 1 Mpalabras · 8 bits.

4.30 Indique si las siguientes afirmaciones son verdaderas.I. Un SBC (Sumador Binario Completo) se puede realizar utilizando 2 SSB (Semisumador Binario)

conectados en cascada y una puerta lógica OR.II. El circuito obtenido en la otra afirmación es más lento que si se sintetiza el SBC como un circuito

combinacional de dos niveles de puertas AND-OR.

4.31 En un sumador binario de dos números de dos bits, x1x0 e y1y0 , respectivamente, donde S1S0 es elresultado de la suma, C1 es el acarreo de la suma y C-1 es el acarreo de entrada, las expresiones:

E1= x1 ⊕ y1 ⊕ (x0y0 + (x0 ⊕ y0 )C-1) E2 = x1 y1 + (x1 ⊕ y1)(x0y0 + (x0 ⊕ y0 )C-1)

corresponden a: A) S1 y C1 , respectivamente. B) C1 y S1 , respectivamente. C) S1 y S0 , respectivamente. D) Ninguna de las anteriores.

4.32 Indique si las siguientes afirmaciones son verdaderas:I. La complejidad de un sumador binario serie crece con el número de bits que hay que sumar.II. Utilizando un sumador binario serie, el tiempo de cálculo crece linealmente con el número de bits

que hay que sumar.

4.33 Decir cuál es el retardo que se obtiene al calcular la suma de dos números de 4 bits cada uno:I. Si el sumador se ha implementado usando lógica combinacional con 2 niveles y cada puerta tarda 5

µs en generar el resultado, el retardo es de 20 µs.II. Si el sumador se ha implementado usando 4 SBC's (Sumador Binario Completo) y cada uno de ellos

tarda 10 µs en generar sus salidas el retardo es de 40 µs.

4.34 Se desea comparar el valor de dos números binarios, uno de 5 bits: X= x4x3x2x1x0 , y otro de 4 bits:Y=y3y2 y1y0. Utilizando comparadores de un bit se compara cada pareja de bits, xi con yi , i=0...3,obteniéndose: Mi (xi >yi ), Ii (xi =yi ) y mi (xi <yi ). Indicar si las siguientes afirmaciones son verdaderas ofalsas:

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 = 32104 IIIIx .

4.35 ¿Cuántos SSB y puertas OR hacen falta para construir un sumador binario paralelo capaz de sumarnúmeros de 8 bits?

Page 25: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

4.36 Sean 2 números binarios de 12 bits representados en código BCD: X= 010100011001,Y= 001101000111. Calcular el resultado de la resta X-Y, expresado en código BCD.

4.37 En los diseños indicados en los siguientes apartados, deben utilizarse multiplexores y elementos dememoria 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 laentrada paralelo; S0, S1, S2, S3 la salida paralelo; C1, C2 las líneas de control; y CK la señal de reloj. Elregistro 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 enparalelo de la entrada y mantener la información almacenada sin modificar (no operación: NOP). Lacodificació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 realizardesplazamientos lógicos (LICS y LDCS) realice desplazamientos algebraicos (también llamadosaritméticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico-Derecha-Cerrado - Simple).

Operación C2 C1NOP 0 0LICS 0 1LDCS 1 0

CARGA 1 1Tabla 1 : Codificación de las entradas de control

Paralelo/Paralelo

E3 E2 E1 E0

S3 S2 S1 S0

C1

C2

CK

Figura 1

Serie/Serie

E

S

C1

C2

CK

Figura 2

4.38 En la Tabla inferior se muestra la Tabla de Transición de Estados de un circuito secuencial síncronocon 2 estados (S0 y S1) y dos entradas (x, y). Q es la variable de estado necesaria para la representación delos 2 estados del circuito. El circuito se diseña empleando un elemento de memoria tipo D.

Estado Presente Entrada xyQ 00 01 10 110 0 0 1 01 1 0 1 1

Indicar cuál de las siguientes expresiones de entrada al elemento de memoria es correcta:A) yxQyxQD +=B) yxxyQD ++= )(C) yxQD =D) Ninguna de las anteriores

Page 26: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

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.

4.40 Si al número binario X = 01010001110 le aplicamos la siguiente secuencia de operaciones dedesplazamiento: LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS, ¿cuál es el resultado de la operación?

4.41 Indique cuántos módulos de memoria ROM de 2n palabras × 1 bit/palabra serían necesarios paradiseñar un circuito combinacional que sume un número n bits y otro de 2n bits.

Page 27: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

PROBLEMASTEMA 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 decontrol totalmente independientes, y que reciba 9 señales de condición pero en cada estado va a serconsultada como máximo una de ellas. Indicar cual de las siguientes afirmaciones es cierta : Si en el diseñointeresa 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 totalmenteindependientes y reciba 4 señales de condición, utilizando memoria ROM pero minimizando la capacidadnecesaria de ésta, ya que en cada estado se utiliza, como máximo, una única condición. Utilizando unmultiplexor con selección por campo para diseñar esta Unidad de Control, explicar razonadamente eltamaño del registro , del multiplexor y de la memoria ROM que sería necesario utilizar.

5.3 El siguiente algoritmo describe una determinada operación de un sistema digital.A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos

dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una,un contador módulo-8 bidireccional y circuitos triestado de conexión unidireccional con control de 8bits; además de puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores ydecodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiplesdispositivos y evitar en su diseño posibles conflictos eléctricos entre ellos.

B) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada enel apartado A) empleando la técnica de los elementos de retardo. Detalle y explique claramente todosy cada uno de los pasos seguidos hasta obtener la solución.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

5.4 Se desea diseñar con memoria ROMuna Unidad de Control con 200 estados, que genere 37 señales decontrol totalmente independientes, y que reciba 9 señales de condición pero en cada estado va a serconsultada como máximo una de ellas. Utilizando en el diseño un multiplexor con selección por campoharí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 laanteriores

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S00 Q(t) 0 A+B 00 Q(t) 0 -01 Des. Dcha. 1 A-B 01 Q(t) -1 mod 8 1 E10 Des. Izq. 10 Q(t)+1 mod 811 Carga 11 0

1: Declaración: A[8], B[8], Cont[3]; Bus[8]2: A ← Bus;3: B ← Bus, Cont=0;4: while Cont ≠ 75: if A es par then6: A ← A – B, Cont = (Cont +1) mod 8;7: else8: B ← B + A, Cont = (Cont -1) mod 8;9: endif;10: endwhile;11: Bus ← B;12: Bus ← A;13: Parar;

Page 28: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

5.5 El siguiente algoritmo describe una determinada operación de un sistema digital.A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos

dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una,un contador módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además depuertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) queconsidere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos y evitar ensu diseño posibles conflictos eléctricos entre ellos.

B) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada enel apartado A) empleando un registro de desplazamiento. Detalle y explique claramente todos y cadauno de los pasos seguidos hasta obtener la solución.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

E

5.6 Se desea diseñar una Unidad de Control con 18 estados, que genere 30 señales de control totalmenteindependientes y reciba 4 señales de condición, utilizando memoria ROM pero minimizando la capacidadnecesaria de ésta, ya que en cada estado se utiliza, como máximo, una única condición. Utilizando unmultiplexor 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 26 palabras × 35 bits/palabra.B) Un registro de 18 bits, un MUX 8:1 y una ROM de 25 palabras × 48 bits/palabra.C) Un registro de 5 bits, un MUX 8:1 y una ROM de 26 palabras × 30 bits/palabra.D) Ninguna de las anteriores es cierta.

5.7 A la hora de diseñar una Unidad de Control con 32 estados, que genere 4 señales de control, reciba 2señales de condición y en un estado se puedan consultar las dos condiciones simultáneamente, decir silas siguientes afirmaciones son ciertas:

A) Diseñándola con “elementos de retardo” sería necesario utilizar 5 biestables (25=32).

B) Diseñándola con memoria ROM haría falta un módulo de 27 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 controltotalmente independientes, reciba 5 señales de condición que pueden ser consultadas simultáneamente encualquier estado, decir si las siguientes afirmaciones son ciertas:

A) Diseñándola con “elementos de retardo” sería necesario utilizar 6 biestables (26=64).

B) Diseñándola con memoria ROM haría falta un módulo de 211 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.

1: Declaración: A[8], B[8], Cont[3]; Bus[8]2: A ← Bus;3: B ← Bus, Cont=0;4: while A < 1285: if Cont < 4 then6: A ← A + Cont;7: else8: A ← B + A;9: endif;10: Cont = (Cont +1) mod 8;11: endwhile;12: Bus ← B;13: Bus ← A;15: Parar;

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S00 Q(t) 0 A+B 00 Q(t) 0 -01 Des. Dcha. 1 A-B 01 0 1 E10 Des. Izq. 10 Q(t)+1 mod 811 Carga 11 Carga

Page 29: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

5.9 El siguiente algoritmo describe una determinada operación de un sistema digital.A) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos

dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una,un contador módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además depuertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) queconsidere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiples dispositivos.

B) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada enel apartado A) empleando cualquiera de los métodos propuestos en la asignatura. Detalle y expliqueclaramente todos y cada uno de los pasos seguidos hasta obtener la solución.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

5.10 El siguiente algoritmo describe una determinada operación de un sistema digital, siendo C(0) el bitmenos 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 entradasde 8 bits cada una y un contador módulo-8; además de biestables tipo D, puertas lógicas y los móduloscombinacionales 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 algoritmocon la Unidad de Procesamiento diseñada en el apartado A)

1: Declaración: A[8], B[8], Cont[3];2: A ← Bus;3: B ← Bus;4: for Cont = 0 to 7 do5: if Cont es par then6: A ← A + B; A ← A / 27: else8: B ← B - A; B ← B * 29: endif;10: endfor;11: Bus ← A;12: Bus ← B;13: Parar;

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S00 Q(t) 0 A+B 00 Q(t) 0 -01 Des. Dcha. 1 A-B 01 0 1 E10 Des. Izq. 10 Q(t)+1 mod 811 Carga 11 Q(t)

1: Declaración de registros : A[8], B[8], C[8],Contador[3]2: A ← Bus3: B ← Bus4: C ← Bus5: for Contador = 0 to 7 do6: begin7: if C(0)≠C(1) then A ← A / B8: else A ← A + B endif9: Desplazar derecha (C)10: end11: Parar;

c1c0 Q(t+1) c1c0 R c1c0 Q(t+1)00 Nada 00 A+B 00 Q(t)01 Carga 01 A-B 01 010 Des. Dcha. 10 A*B 10 Q(t)+1 mod 811 Nada 00 A/B 11 Q(t)

Reg. despl. UAL Contadorc0c1

c0c1

Q R Q

E A B

ED

Page 30: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

5.11 El siguiente algoritmo describe una determinada operación de un sistema digital, siendo C(i) el bit i delregistro C (C(0) es el bit menos significativo).a) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulos dibujadosabajo : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contadormódulo-8 y un circuito triestado de conexión unidireccional con control de 8 bits, además de puertaslogicas y los módulos combinacionales que considere necesarios. En el desplazamiento a la derecha seintroduce un 0.b) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseñada en elapartado A), utilizando una memoria ROM y los elementos que considere necesarios. Debe indicar laestructura de la Unidad de Control y el contenido de la memoria ROM detallada y razonadamente. Sevalorará la utilización de una ROM de tamaño mínimo

1: Declaración: A[8], B[8], C[8], Contador [3] ;2: A←Bus;3: B←Bus;4: C←Bus;5: for Contador=0 to 3 do6: begin7: if C(3)=C(5) then A←A*B8: else A←A-B endif;9: Desplazar Derecha (C);10: end11: Bus←A;12: Parar ;

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

5.12 Diseñe un circuito digital(unidad de procesamiento + unidad de control ) que realice el algoritmo quese muestra en el recuadro. Para ello siga los siguientes apartados :a) Diseñe razonadamente la unidad deprocesamiento, utilizando los recursos queconsidere necesarios.b) Describa todas las señales de control dela Unidad de Procesamiento diseñada enA).c) Dibuje el diagrama de estados de unaUnidad de Control que realice el algoritmopropuesto. Describa en forma de tabla, lasmicrooperaciones y las señales de controlactivadas en cada uno de los estados.d) Diseñe razonadamente la Unidad de Control, empleando cualquiera de las técnicas de diseño estudiadasa lo largo del curso. Indique claramente todos los pasos seguidos.

c1c0 Q(t+1) c1c0 R c1c0 Q(t+1) c0 S00 Q(t) 00 A+B 00 Q(t) 0 -01 Carga 01 A-B 01 0 1 E10 Des. Dcha 10 A*B 10 Q(t)+1 mod 811 Q(t) 11 A/B 11 Q(t)

1 : Declaración de registros: A[8], X[8] ;2 : Declaración de buses : Bus-Entrada[8], Bus-Salida[8];3 :Inicio: X←Bus-Entrada ;4 : A←Bus-Entrada ;5 : Test: if X=255 then go to Sumar ;6 : Restar: A←A-1 ;7 : go to Sacar ;8 : Sumar : A←A+1 ;9 : Sacar : Bus-Salida←A ;10 : Parar : go to Parar ;

Page 31: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

5.13 Se desea diseñar con memoria ROM una Unidad de Control con 200 estados, que genere 37 señalesde control totalmente independientes, y que reciba 9 señales de condición pero en cada estado va a serconsultada 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 ?

5.14 Se desea diseñar con una memoria ROM una unidad de control con 128 estados, que genere 244señales de control totalmente independientes y que reciba 20 señales de condición pero en cada estadovan a ser consultadas como máximo una de ellas. La memoria ROM usada tiene un coste de 10 ptas/Kbit.Indicar si las siguientes afirmaciones son verdaderas o falsas:

I) Si se utiliza un diseño con selección por estado el coste de la ROM es de 640 ptas.II) Si se utiliza un diseño con selección por campo el coste de la ROM es de 640 ptas.

5.15 El siguiente algoritmo describe una determinada operación de un sistema digital.

1: Declaración: A[8], B[8], Cont[3];2: A ← Bus;3: B ←0;4: for Cont = 0 to 7 do5: if A[0] es 1 then6: B ← B + 1;7: endif;8: Despl.CerradoDcha(A);9: endfor10: Bus ←B;11: Parar;

A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando losmódulos de la Figura : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cadauna, 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 ydecodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiplesdispositivos.

B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamientodiseñada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y expliqueclaramente todos y cada uno de los pasos seguidos hasta obtener la solución.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S00 Q(t) 0 A+B 00 Q(t) 0 -01 Des. Dcha 1 A-B 01 0 1 E10 Des. Izqa 10 Q(t)-1 mod 811 Carga 11 Q(t)

Page 32: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

5.16 El siguiente algoritmo describe una determinada operación de un sistema digital.

1: Declaración: A[8], B[8], Cont[4]; Bus[8]2: A ← Bus;3: B ← Bus, Cont = 0;4: while Cont ≠145: if A es multiplo de 4 then6: A ← A - B, Cont = (Cont +2) mod 16;7: else8: B ← B + A;9: endif;10: endwhile;11: Bus ← B;12: Bus ← A;13: Parar;

A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando losmódulos de la Figura 2: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cadauna, un contador módulo-16 bidireccional y circuitos triestado de conexión unidireccional con controlde 8 bits; además de puertas lógicas y los módulos combinacionales (MUX, DMUX, codificadores ydecodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos múltiplesdispositivos 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 Procesamientodiseñada en el apartado A) empleando la técnica de los elementos de retardo. Detalle y expliqueclaramente todos y cada uno de los pasos seguidos hasta obtener la solución.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

Figura 2: Módulos secuenciales del problema con sus tablas de funcionamiento.

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S00 Q(t) 0 A+B 00 Q(t) 0 -01 Des. Dcha 1 A-B 01 Q(t)-1 mod 16 1 E10 Des. Izqa 10 Q(t)+1 mod 1611 Carga 11 0)

Page 33: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2002-2003

5.17 El siguiente algoritmo describe una determinada operación de un sistema digital.

1: Declaración: A[8], B[8], Cont[3];2: A ← Bus;3: B ←1;4: for Cont = 0 to 3 do5: if A1 A0 ≠ 0 1 then6: B ←0;7: endif;8: Despl.CerradoDcha(A);9: Despl.CerradoDcha(A);10: endfor11: Bus ←B;12: Parar;

A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando, si sonnecesarios, los módulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dosentradas de 8 bits cada una, un contador módulo-8 y circuitos triestado de conexión unidireccional concontrol 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 vuelcandatos múltiples dispositivos.

B) (2 puntos) Diseñar la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamientodiseñada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y expliqueclaramente todos y cada uno de los pasos seguidos hasta obtener la solución.

Nota: A0 es el bit menos significativo de A.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S00 Q(t) 0 A+B 00 Q(t) 0 -01 Des. Dcha 1 A-B 01 0 1 E10 Des. Izqa 10 Q(t)+1 mod 811 Carga 11 Q(t)

Page 34: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2003-2004

PROBLEMASTEMA 6: Diseño del procesador

Problemas propuestos en examen

6.1 Para la UCP con bus interno de la Figura 6.1 escribir la secuencia de microoperaciones que se necesitan parasumar un número con el acumulador cuando el número es:

a) Un operando inmediato.

b) Un operando con direccionamiento directo.

c) Un operando con direccionamiento indirecto.

Unidadde

Control

RIRM

Líneas dedatos

RD

Líneas dedirección

CP

R1

R2UAL

AC

Bus internode la UCP

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 seda el significado de cada una de las señales de control. La señal de condición s0 se activa cuando el contenidodel registro acumulador (AC) sea igual a cero. Obtener las secuencias de las microoperaciones y las señales decontrol que hay que activar para que esta UCP ejecute las siguientes instrucciones, suponiendo que éstas seencuentran ya almacenadas en el registro de instrucciones (RI) :

a) Cargar acumulador con el contenido de una dirección de memoria.

b) Almacenar acumulador en una dirección de memoria.

c) Sumar al acumulador un operando con direccionamiento inmediato.

d) Sumar al acumulador un operando con direccionamiento directo.

e) Sumar al acumulador un operando con direccionamiento indirecto.

f) AND con el acumulador de un operando en modo directo.

g) Bifurcar, en modo de direccionamiento directo.

h) Bifurcar si acumulador = 0, en modo de direccionamiento directo.

Page 35: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2003-2004

c5

c3

c2

c4c9

c8

c10

c7

c0

c1

Memoria

RM

RD

RI

CP c6

• • •• •

UAL

Acumulador (AC)

Unidad

de

Control

c11

c13

c12

Relojc0

c13

Señales decondición

Entrada 1

s0

s0

c15

c14

Figura 6.2: Caminos de datos y puntos de control

Señal de control Microoperación controladac0 Leer de la memoriac1 Escribir en la memoriac2 Transferir el contenido de RM a RD (RD←(RM))c3 Transferir el contenido de CP a RM (RM←(CP))c4 Transferir el contenido de RM a CP (CP←(RM))c5 Transferir el contenido de CP a RD (RD←(CP))c6 Incrementar en 1 el contenido del CP (CP←(CP)+1)c7 Transferir el contenido de RM a RI (RI←(RM))c8 Transferir el contenido de RM a la entrada 1 de la UALc9 Transferir el contenido de RM a AC (AC←(RM))c10 Transferir el contenido de AC a RM (RM←(AC))c11 AC←(AC)+ Entrada 1c12 AC←(AC) AND Entrada 1c13 Complementar el contenido de AC (AC←( AC ) )c14 Transferir el campo de dirección de RI a RD (RD←(RI(dirección)))c15 Transferir el campo de datos de RI a RM (RM←(RI(datos)))

Tabla 6.2: Señales de control de la CPU de la figura 6.2

6.3 Indique si las siguientes afirmaciones son ciertas :I. Para la fase de ejecución del ciclo de instrucción existen tantas secuencias de microinstrucciones

como códigos de operación existan en el repertorio de instrucciones.II. Cada fase del ciclo de instrucción se puede descomponer en una secuencia de operaciones

elementales llamadas instrucciones máquina

6.4 En un procesador con instrucciones de cero direcciones (procesador con pila), ¿qué secuencia deinstrucciones 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

Page 36: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2003-2004

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 10para la dirección del operando. Suponiendo que una instrucción de bifurcación, con direccionamiento relativo alcontador de programa, almacenada en la posición 530 (en decimal), origina un salto a la posición 620 (endecimal). Si el código de operación de la instrucción de salto es 110011, ¿cuál es la codificación en binario dedicha instrucción?

6.6 Considérese un procesador con instrucciones de cero direcciones (procesador con pila). Se tiene la siguientesecuencia de instrucciones:

Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Mult; Pop M[A]

¿Que expresión calcula?

Page 37: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2003-2004

PROBLEMASTEMA 7: Microprogramación

Problemas propuestos en examen

7.1 Un computador utiliza microinstrucciones de formato vertical. El formato tiene 5 subcampos codificados de1 bit, 5 subcampos codificados de 3 bits y 3 subcampos codificados de 4 bits. ¿Cuál es el número máximo deseñales de control que puede tener este computador?

7.2 Un computador digital tiene 114 señales de control diferentes, siendo 6 de ellas mutuamente excluyentes.Indique si las siguientes afirmaciones son verdaderas:

1) Si se utilizan microinstrucciones de formato vertical el tamaño del campo codificado sería de 3 bits.2) Al existir señales de control mutuamente excluyentes nunca se puede utilizar el formato de

microinstrucción horizontal.

7.3 Un computador utiliza microinstrucciones de formato horizontal con direccionamiento explícito. Lasmicroinstrucciones 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ántosbits tiene el campo de dirección de cada microinstrucción?

7.4 Indicar si las siguientes afirmaciones son verdaderas o falsas. Utilizando microinstrucciones con formatovertical:

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

I. No se puede ejecutar simultáneamente cualquier subconjunto de señales de control.II. Cada señal de control tiene un subcampo independiente de un bit que indica el correspondiente

valor de la señal de control.

7.7 ¿Las siguientes afirmaciones son ciertas?I. El formato horizontal de microinstrucciones requiere de memorias de control más grandes.II. El formato vertical de microinstrucciones tiene las señales de control ya decodificadas.

7.8 Indique la afirmación verdadera:A) En una unidad de control microprogramada la memoria de control se utiliza para almacenar en ella

los contenidos de los registros de la UCP.B) El principal problema de la unidad de control con lógica cableada es la imposibilidad de gestionar

saltos a subrutinas al carecer del registro contador de programa.C) Si se quiere minimizar el tamaño de la memoria de control de una unidad de control

microprogramada debe utilizarse formato vertical.D) Todas las respuestas anteriores son ciertas.

Page 38: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2003-2004

7.9 Un computador microprogramado tiene un total de 132 señales de control. De ellas, un grupo de 16 sonmutuamente excluyentes entre sí y otro grupo de 30 son mutuamente excluyentes entre sí. Indique si lassiguientes 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 demicroinstrucciones.

7.10 La Unidad de Control microprogramada de un computador tiene la estructura que se muestra en la Figura7.10. Se supone que la memoria de control tiene una longitud de palabra de 24 bits. La parte de control delformato de una microinstrucción está dividida en dos campos. Un campo de control de 13 bits que indica lasmicrooperaciones que se realizan y un campo de selección de dirección que especifica un tipo de bifurcacióncondicional, que es función de las señales de condición que recibe como entrada la Unidad de Control. Sonposibles 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?

Memoria

deControl

RDC

RMC

Señales de Control

Señales decondición

Registro de Instrucción (RI)

Control Dirección

Lógica detransformación

MultiplexorLógica debifurcación Selección de

la dirección

Selección de unaseñal de condición

+ 1

•para la bifurcación

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 incondicionalde secuencia?. ¿Cómo se puede evitar la bifurcación?, es decir, describir una microinstrucción que noespecifique 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 unaUnidad de Control microprogramada. El código de operación de las instrucciones tiene 5 bits y la memoria decontrol una capacidad de 1024 palabras. Sugerir una lógica de transformación de RI en RDC.

Page 39: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso 2003-2004

7.13 Una UCP tiene 32 registros internos de 16 bits, una UAL con 16 funciones lógicas y 16 funcionesaritméticas y un registro de desplazamiento con 8 operaciones posibles. La UAL recibe una entrada de un bitque indica si la operación es aritmética (0) o lógica (1), y cuatro bits adicionales que codifican la operación arealizar, una de las 16 posibles. La operación a realizar por el registro de desplazamiento se controla con unaentrada de 3 bits. Todos estos elementos se conectan mediante un bus interno de la UCP, según se muestra en laFigura 7.13. La UCP es capaz de direccionar un máximo de 64 Kb de memoria principal, tiene 8 señales decondición diferentes (para las bifurcaciones condicionales), y dos modos de direccionamiento (inmediato ydirecto).Diseñar un formato de microinstrucción que especifique las diferentes microoperaciones.

Bus internode la UCP

UAL

R1 R31

RD R0

...

34

A/L

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

7.14 En una Unidad de Control microprogramada con formato de microinstrucciones vertical, un subcampo quedeba 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 pormicroinstrucción, tiene una memoria de control con 35 bits de longitud de palabra. Si las microinstruccionesemplean 15 bits para los campos de control. ¿Cuál es el número máximo de palabras de la memoria de control deesta Unidad de Control microprogramada?

Page 40: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DECOMPUTADORES II

TEMA 1: Estructuras deinterconexión de un computador

SOLUCION A LOS PROBLEMASPROPUESTOS EN EXAMEN

Curso 2002-2003Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 41: Coleccion Problemas Etc II

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

2

CONTENIDOSOLUCION PROBLEMA 1.1........................................................................................................................................ 3SOLUCION PROBLEMA 1.2........................................................................................................................................ 4SOLUCION PROBLEMA 1.3........................................................................................................................................ 5SOLUCION PROBLEMA 1.4........................................................................................................................................ 6SOLUCION PROBLEMA 1.5........................................................................................................................................ 7SOLUCION PROBLEMA 1.6........................................................................................................................................ 8SOLUCION PROBLEMA 1.7........................................................................................................................................ 9SOLUCION PROBLEMA 1.8........................................................................................................................................ 9SOLUCION PROBLEMA 1.9...................................................................................................................................... 10SOLUCION PROBLEMA 1.10.................................................................................................................................... 11

Page 42: Coleccion Problemas Etc II

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

3

SOLUCION PROBLEMA 1.1DATOS

• Tamaño de palabra de 16 bits.• Repertorio de 16 instrucciones.• Formato de instrucción :

• Campo de 5 bits para el código de operación.• Campo de11 bits para el campo de operandos.

• Los 16 códigos de operación comienzan por un 0 (00000-01111)

Afirmación I

- De acuerdo con los principios de un computador con una arquitectura de Von Neuman, en la memoriaprincipal se pueden almacenar tanto datos como instrucciones. Que el contenido de una palabra dememoria sea considerado un dato o una instrucción dependerá del momento del ciclo de instrucción enque 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 dememoria 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, puedeser un dato o una instrucción máquina dependiendo de la fase de ejecución de la instrucción en que nosencontremos.

Afirmación II

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

Page 43: Coleccion Problemas Etc II

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

4

SOLUCION PROBLEMA 1.2DATOS

• • Memoria de 10 módulos independientes conectados a un mismo bus de memoria.

• • Cada bus ocupa el bus durante el 20% del ciclo de escritura.

• • El 80 % del tiempo de ciclo restante el módulo almacena el dato internamente.

• • Las operaciones de estos módulos pueden solaparse.

Supongamos que la memoria del computador consta de un único módulo, la velocidad máxima dealmacenamiento sería:

)/(1

segpalt

vc

max =

De acuerdo con el enunciado del problema el tiempo de ciclo tc, se puede considerar como la suma de doscomponentes :

- 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 entodo momento uno de los módulos esté accediendo al bus, se llega a la situación representada por lasiguiente figura

tiempo

modulos

mod 1mod 2mod 3mod 4mod 5mod 6mod 7mod 8mod 9mod10

10·tbus

12

34

56

78

910

El módulo 1 inicia una operación de escritura haciendo uso del bus en exclusiva durante tbus. Acontinuación el módulo 2 puede iniciar su operación de escritura y así sucesivamente hasta llegar almó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 tantocada 10·tbus empiezan o finalizan 10 operaciones de escritura. Encerradas en un circulo se enumeran estas10 operaciones. La velocidad de almacenamiento definida como el número de palabras escritas en memoriapor unidad de tiempo, es por tanto

)/(·52.0·2.0·10

10)(·10

)(10segpalv

vtsegt

palv max

max

cbusmax ====′

Luego la velocidad de almacenamiento se ve incrementada 5 veces.

Page 44: Coleccion Problemas Etc II

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

5

SOLUCION PROBLEMA 1.3DATOSn Computador de Von Neuman

n Longitud de palabra de 16 bits.

n Instrucciones máquina ocupan 16 o 32 bits (1 o 2 palabras)

n Codigo de operación ocupa un campo de 7 bits.

Una de las características de la arquitectura de Von Neumann es precisamente el tener un único espacio dememoria 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ódigosde operación, formato de instrucciones, etc. Sin embargo, si nos referimos a microinstrucciones, sí tienesentido. La afirmación II es falsa.

Page 45: Coleccion Problemas Etc II

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

6

SOLUCION PROBLEMA 1.4DATOS

• • Memoria de 20 módulos independientes conectados a un mismo bus de memoria.

• • Cada bus ocupa el bus durante el 25 nseg del ciclo de escritura.

• • Durante los 75 nseg siguientes el módulo almacena el dato internamente.

• • Las operaciones de estos módulos pueden solaparse.

tbus=25 nseg t alm=75 nseg

tc=100 nseg

De forma inmediata se ve que si cada 100 nseg. el módulo de memoria ocupa 25 nseg., es decir, 1/4 deltiempo, vamos a poder solapar, cómo máximo, 4 operaciones de escritura con 4 módulos de memoriadistintos aunque nuestro sistema disponga de 20 módulos. Para aclarar este punto en la Figura se muestrasolapamiento máximo que se puede conseguir utilizando todos los módulos de memoria. En el instante detiempo 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 yacabar 4 operaciones de escritura cada 100 nseg. La velocidad resultante es:

)/(10·410

4)(100

)(4 7

7segpal

nsegpal

vmax ===−

Page 46: Coleccion Problemas Etc II

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

7

SOLUCION PROBLEMA 1.5Afirmación I:

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

Afirmación II:

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

Page 47: Coleccion Problemas Etc II

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

8

SOLUCION PROBLEMA 1.6DATOS

• • En un Bus se han conectado la memoria principal y cinco discos iguales.

• • Tiempo de ciclo de Mp es t c=400nseg.

• • La velocidad de transferencia de cada disco es vT=B (bits/seg).

• • La longitud de una palabra es de 32 bits.

• • Cada transmisión sobre el bus necesita 500 nseg para enviar el dato y las diferentes ordenes delprotocolo.

• • Se desea usar un Bus con temporización síncrona.

En un bus con temporización sincrona, todos los dispositivos conectados a él están funcionando conuna frecuencia de reloj fija. Su utilización es conveniente cuando los dispositivos que tiene conectadostienen velocidades de transferencia vT muy parecidas ya que si se tienen conectados un grupoheterogéneo de dispositivos, con velocidades muy distintas, el bus debe adecuarse al más lentoimpidiendo 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 . Deacuerdo con el razonamiento anterior, si se desea utilizar un bus con temporización síncrona todos loselementos conectados a él deben tener velocidades de transferencia parecidas. Por ello la velocidad detransferencia 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

TvB ≈

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

)/(10·2510·40011 6

9segpalabras

tv

CT ===

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

)/(10·832·10·25 76 segbitspalabra

bitsseg

palabrasvT =

=

Luego

)/(10·8 7 segbitsvB T =≈

Page 48: Coleccion Problemas Etc II

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

9

SOLUCION PROBLEMA 1.7DATOS

• • Bus con arbitraje distribuido

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

e

Ent

d

Ent Sal

c

Ent Sal

b

Ent Sal

a

Línea de arbitraje

Ent Sal

Solicitud del bus

Ocupada

1

Figura: Bus con arbitraje distribuido

Afirmación I:

Es FALSA, ya que en este tipo de arbitraje el dispositivo más cercano a la línea de arbitraje es aquel quetiene 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 utilizadoel bus por ningún otro módulo pese a poseer una mayor prioridad.

SOLUCION PROBLEMA 1.8Afirmación A:

• • Es FALSA. Un bus puede transportar datos, direcciones y también señales de control.

Afirmación B:

• • Es VERDADERA. Por ejemplo, en el bus del sistema se encuentran conectados la CPU, la memoriaprincipal y los controladores de E/S, cada uno de estos elementos poseen velocidades distintas.

Afirmación C:

• • Es FALSA, es necesario un método de arbitraje (centralizado o distribuido) para gestionar el uso delbus por parte de los distintos elementos conectados al mismo.

Afirmación D:

• • Es FALSA, ya que es verdadera la afirmación B.

Page 49: Coleccion Problemas Etc II

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

10

SOLUCION PROBLEMA 1.9DATOS

• • Bus con arbitraje distribuido

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

e

Ent

d

Ent Sal

c

Ent Sal

b

Ent Sal

a

Línea de arbitraje

Ent Sal

Solicitud del bus

Ocupada

1

Figura: Bus con arbitraje distribuido

Afirmación I:

• • Es VERDADERA, ya que en este método de arbitraje el dispositivo más cercano a la línea de arbitrajees 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 controlsuficiente para poder acceder al bus y todos ellos actúan de forma cooperativa para compartir elrecurso.

Page 50: Coleccion Problemas Etc II

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

11

SOLUCION PROBLEMA 1.10DATOS

• • Instrucciones y datos tienen una longitud de 16 bits.

• • Formato de instrucción

Cod. Operación Dirección

4 bits 12 bits

16 bits

Cod. Operación Dirección

4 bits 12 bits

16 bits

• • Códigos de operación:

0011: Ac←[M]

0101: M←[Ac]

0110: Ac←[Ac]+[M]

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

M indica una dirección de memoria.

[M] hace referencia al contenido de la dirección de memoria M

Ac indica la dirección del acumulador.

[Ac] hace referencia al contenido de la dirección de memoria M

La equivalencia en hexadecimal de los códigos de operación es:316 Ac←[M]

516 M←[Ac]

616 Ac←[Ac]+[M]

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

3A516←[3A516]+[3B916]

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

Opción 1:

1) 33A516 que indica la operación Ac←[3A516]

2) 63B916 que indica la operación Ac←[Ac] + [3B916]

3) 53A516 que indica la operación 3A516←[Ac]

Opción 2:

1) 33B916 que indica la operación Ac←[3B916]

2) 63A516 que indica la operación Ac←[Ac] + [3A516]

3) 53A516 que indica la operación 3A516←[Ac]

Luego la respuesta correcta es la C.

Page 51: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DECOMPUTADORES II

TEMA 2: Unidad de Memoria

SOLUCION A LOS PROBLEMASPROPUESTOS EN EXAMEN

Curso 2002-2003Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 52: Coleccion Problemas Etc II

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

2

CONTENIDOSOLUCION PROBLEMA 2.1........................................................................................................................................ 3SOLUCION PROBLEMA 2.2........................................................................................................................................ 4SOLUCION PROBLEMA 2.3........................................................................................................................................ 5SOLUCION PROBLEMA 2.4........................................................................................................................................ 7SOLUCION PROBLEMA 2.5........................................................................................................................................ 8SOLUCION PROBLEMA 2.6........................................................................................................................................ 9SOLUCION PROBLEMA 2.7...................................................................................................................................... 10SOLUCION PROBLEMA 2.8...................................................................................................................................... 12SOLUCION PROBLEMA 2.9...................................................................................................................................... 13SOLUCION PROBLEMA 2.10.................................................................................................................................... 14SOLUCION PROBLEMA 2.11.................................................................................................................................... 15SOLUCION PROBLEMA 2.12.................................................................................................................................... 16SOLUCION PROBLEMA 2.13.................................................................................................................................... 17SOLUCION PROBLEMA 2.14.................................................................................................................................... 18SOLUCION PROBLEMA 2.15.................................................................................................................................... 19SOLUCION PROBLEMA 2.16.................................................................................................................................... 20SOLUCION PROBLEMA 2.17.................................................................................................................................... 21SOLUCION PROBLEMA 2.18.................................................................................................................................... 22SOLUCION PROBLEMA 2.19.................................................................................................................................... 23SOLUCION PROBLEMA 2.20.................................................................................................................................... 23SOLUCION PROBLEMA 2.21.................................................................................................................................... 24SOLUCION PROBLEMA 2.22.................................................................................................................................... 25SOLUCION PROBLEMA 2.23.................................................................................................................................... 26SOLUCION PROBLEMA 2.24.................................................................................................................................... 26SOLUCION PROBLEMA 2.25.................................................................................................................................... 27SOLUCION PROBLEMA 2.26.................................................................................................................................... 29SOLUCION PROBLEMA 2.27.................................................................................................................................... 30SOLUCION PROBLEMA 2.28.................................................................................................................................... 34SOLUCION PROBLEMA 2.29.................................................................................................................................... 37SOLUCION PROBLEMA 2.30.................................................................................................................................... 38SOLUCION PROBLEMA 2.31.................................................................................................................................... 39SOLUCION PROBLEMA 2.32.................................................................................................................................... 42SOLUCION PROBLEMA 2.33.................................................................................................................................... 43SOLUCION PROBLEMA 2.34.................................................................................................................................... 45SOLUCION PROBLEMA 2.35.................................................................................................................................... 47SOLUCION PROBLEMA 2.36.................................................................................................................................... 48SOLUCION PROBLEMA 2.37.................................................................................................................................... 49SOLUCION PROBLEMA 2.38.................................................................................................................................... 50SOLUCION PROBLEMA 2.39.................................................................................................................................... 51SOLUCION PROBLEMA 2.40.................................................................................................................................... 52SOLUCION PROBLEMA 2.41.................................................................................................................................... 53SOLUCION PROBLEMA 2.42.................................................................................................................................... 54SOLUCION PROBLEMA 2.43.................................................................................................................................... 55SOLUCION PROBLEMA 2.44.................................................................................................................................... 56SOLUCION PROBLEMA 2.45.................................................................................................................................... 56SOLUCION PROBLEMA 2.46.................................................................................................................................... 57

Page 53: Coleccion Problemas Etc II

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

3

SOLUCION PROBLEMA 2.1DATOS• • Memoria caché (Mc) asociativa por conjuntos.

• • q=16 (24 ) conjuntos• • r= 4 particiones/ conjunto

• • Memoria principal CMp = 1 M (220)palabras• • K=128 (27) palabras/bloque

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

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

CMenbloquesconjuntobloques

conjuntosrqC 62416 =⋅=⋅=

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

Conjunto de Mc

Etiqueta Palabra

n=20 bits

9 bits log2q= 4 bits log2K= 7 bits

Luego la dirección que se nos plantea es:

Etiqueta Conjunto de Mc Palabra101 000 011 0010 0110000

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

Page 54: Coleccion Problemas Etc II

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

4

SOLUCION PROBLEMA 2.2DATOS• • Memoria principal CMp = 2 M (221)palabras• • Memoria caché CMc = 1 K (210) palabras

• • K=64 (26) palabras/bloque

De los datos del enunciado se deduce que el número de bloques C de Mc es:

bloquesbloquepalpal

C 46

10

2/2

2==

a) La memoria caché utiliza función de correspondencia directa. Por lo tanto el formato de una direccióndesde el punto de vista de la memoria caché es :

Bloque de Mc

Etiqueta Palabra

n=21 bits

11 bits log2C= 4 bits log2K= 6 bits

Luego dada la dirección en binario del enunciado,

0100000 000 001 10 110000

El bloque de la Mc al que hace referencia es el número 410 (0100).La etiqueta que habría que buscar es 610 (000 000 001 10).

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

Etiqueta Palabra

n=21 bits

15 bits log2K= 6 bits

Luego dada la dirección en binario del enunciado,

000 000 001 100 100 110 000

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

Page 55: Coleccion Problemas Etc II

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

5

SOLUCION PROBLEMA 2.3DATOS• CMp = 512 (29) palabras• CMc = 32 (25) palabras• El tamaño de partición es K=8 (23) palabras/bloque

• • La caché está inicialmente vacia.

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

.4222 2

3

5

bloquesC ===

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

Bloque de McEtiqueta Palabra

n=9 bits

4 bits log2C= 2 bits log2K= 3 bits

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

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Nº bloque (i) de la Mc alque hace referencia la

dirección

Fallo o acierto

000 0 00 000 0 0 Fallose carga j=0 en i=0

000 0 00 001 0 0 Acierto000 0 00 011 0 0 Acierto000 1 00 001 4 0 Fallo

se carga j=4 en i=0000 1 00 101 4 0 Acierto000 0 10 000 2 2 Fallo

se carga j=2 en i=2000 0 10 010 2 2 Acierto000 0 00 000 0 0 Fallo

se carga j=0 en i=0

Nº Total de fallos=4

b) La caché emplea correspondencia asociativa por conjuntos, con r=2 bloques/conjunto. El algoritmo dereemplazamiento utilizado es FIFO (First-In Firt-Out). Se sustituye el bloque más antiguo en caché.

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

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

Conjunto de Mc

Etiqueta Palabra

n=9 bits

5 bits log2q= 1 bits log2K= 3 bits

Page 56: Coleccion Problemas Etc II

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

6

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

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Nº conjunto (i) de la Mc alque hace referencia la

dirección

Fallo o acierto

000 00 0 000 0 0 Fallo se carga elbloque j=0 en el

bloque 0 delconjunto i=0

000 00 0 001 0 0 Acierto000 00 0 011 0 0 Acierto000 10 0 001 4 0 Fallo se carga el

bloque j=4 en elbloque 1 delconjunto i=0

000 10 0 101 4 0 Acierto000 01 0 000 2 0 Fallo se carga el

bloque j=2 en elbloque 0 delconjunto i=0

000 01 0 010 2 0 Acierto000 00 0 000 0 0 Fallo se carga el

bloque j=0 en elbloque 1 delconjunto i=0

Nº Total de fallos=4

c) La caché emplea correspondencia totalmente asociativa. El algoritmo de reemplazamiento utilizado esLRU (Least Recently Used). Se sustituye el bloque utilizado menos recientemente.

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

Etiqueta Palabra

n=9 bits

6 bits log2K= 3 bits

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

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Fallo o Acierto

000 00 0 000 0 Fallo se carga el bloquej=0 en el bloque i=0

000 00 0 001 0 acierto000 00 0 011 0 acierto000 10 0 001 4 Fallo se carga el bloque

j=4 en el bloque i=1000 10 0 101 4 acierto000 01 0 000 2 Fallo se carga el bloque

j=2 en el bloque i=2000 01 0 010 2 acierto000 00 0 000 0 acierto

Nº Total de fallos = 3

Page 57: Coleccion Problemas Etc II

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

7

SOLUCION PROBLEMA 2.4DATOS• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp

• Mc: Capacidad 256 palabras y tiempo de acceso t ac=10 nseg• Mp: Capacidad 1024 Kpalabras y tiempo de acceso tap= 100 nseg• Tasa de acierto h=0.9• Cuando se produce un fallo en Mc :

• El sistema tarda tex=20 nseg adicionales en tratar el fallo.• • La palabra solicitada es enviada de Mp a Mc donde es leída por la CPU.

El tiempo de acceso medio tam se define como:

gfgaam ththt ⋅−+⋅= )1( (1)

Donde tga es el tiempo de gestión del acierto. Normalmente se cumple que:

nsegtt acga 10==

Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en la Mc. De acuerdo con el enunciadocuando 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.

nsegtttt acapexgf 1301010020 =++=++=

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

nseg22=+=⋅+⋅= 1391301.0109.0amt

Page 58: Coleccion Problemas Etc II

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

8

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

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

.4222 2

3

5

bloquesK

CC Mc ====

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

.64222 6

3

9

bloquesK

CM Mp ====

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 vistade la Mc tendría los siguientes campos:

Etiqueta Palabra

n=9 bits

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

Obsérvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa elnúmero de bloque j de la Mp, con lo que el tamaño de la etiqueta también se podía haber calculado de lasiguiente forma e=log2M= log22

6= 6 bits

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

Direcciones leídas Etiqueta= Nº de bloque j de Mp Fallo o acierto000000 000 0 Fallo

se carga j=0 en i=0000000 001 0 Acierto000000 011 0 Acierto000100 001 4 Fallo

se carga j=4 en i=1000100 101 4 Acierto000010 000 2 Fallo

se carga j=2 en i=2000010 010 2 Acierto000000 000 0 Acierto

Nº Total de fallos=3

Page 59: Coleccion Problemas Etc II

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

9

SOLUCION PROBLEMA 2.6

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

0 1 0 1 1 1 0 0 ARGUMENTO

1 0 1 0 1 1 0 1 MASCARA

1 0 0 1 1 1 1 1 ?

0 1 0 1 1 0 1 0 ?

0 1 0 1 0 0 1 0 ? MARCA

0 1 1 0 1 1 1 0 ?

0 0 0 1 1 1 1 0 ?

El segundo paso es ir comparando los bits no tachados del registro ARGUMENTO, 0X0X11X0,con losbits no tachados de cada una de las filas de la matriz asociativa. Si son iguales se coloca un 1 y en casocontrario 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 registrode Marca resultante es:

0

0

0

0

1

Page 60: Coleccion Problemas Etc II

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

10

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

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

.4222 2

4

6

bloquesK

CC Mc ====

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

.256222 8

4

12

bloquesK

CM Mp ====

Es decir, que los 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:

Bloque nº ide Mc

Etiqueta Palabra

n=12 bits

6 bits log2C= 2 bits log2K= 4 bits

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

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Nº bloque (i) de la Mc alque hace referencia la

dirección

Fallo o acierto

000000 01 0000 1 1 Fallose carga j=1 en i=1 queinicialmente esta vacío

000100 01 0100 17 1 Fallose carga j=17 en i=1

000001 00 1000 4 0 Fallose carga j=4 en i=0 queinicialmente esta vacío

000001 11 1000 7 3 Fallose carga j=7 en i=3 queinicialmente esta vacío

Page 61: Coleccion Problemas Etc II

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

11

Afirmación I:

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Nº bloque (i) de la Mc alque hace referencia la

dirección

Fallo o acierto

000000 01 0100 1 1 Fallose carga j=1 en i=1

010011 10 1100 78 2 Fallose carga j=78 en i=2que inicialmente esta

vacío

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

Afirmación II:

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Nº bloque (i) de la Mc alque hace referencia la

dirección

Fallo o acierto

000001 11 0001 7 3 Acierto

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

Page 62: Coleccion Problemas Etc II

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

12

SOLUCION PROBLEMA 2.8Para resolver este problema los pasos a seguir son:

1)Tachar las filas de la memoria asociativa cuyo bit del registro de marca está a 0.

2)Tachar las columnas de la matriz asociativa cuyo bit del registro de máscara está a 0. Como se muestra enla figura :

? ? ? ? ? ? ? ? ARGUMENTO

1 0 0 1 0 1 0 0 MASCARA

1 1 0 1 1 1 1 1 0

1 1 0 1 1 0 1 0 1

0 0 0 1 0 0 0 1 0 MARCA

1 0 1 0 0 1 1 0 0

1 1 0 1 1 0 0 1 1

A la vista de la matriz asociativa el argumento que genera este registro de marca debe de tener la siguienteestructura: 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 memoriaasociativa. 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 argumento3 y el 4 producirían el registro de marca dado.

1 0 1 1 0 1 0 0 Argumento 1

0 1 0 1 1 1 1 1 Argumento 2

1 0 0 1 1 0 0 0 Argumento 3

1 1 1 1 1 0 1 0 Argumento 4

0 1 0 1 0 0 1 1 Argumento 5

Luego la solución es: 2 argumentos.

Page 63: Coleccion Problemas Etc II

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

13

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

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

.8222 3

4

7

bloquesK

CC Mc ====

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

.256222 8

4

12

bloquesK

CM Mp ====

Es decir, que los log2M=8 bits más significativos de una dirección de memoria hacen referencia al bloque jde 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 vistade la Mc tendría los siguientes campos:

Etiqueta Palabra

n=12 bits

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

Obsérvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa elnúmero de bloque j de la Mp, con lo que el tamaño de la etiqueta también se podía haber calculado de lasiguiente forma e=log2M= log22

8= 8 bits

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

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Fallo o acierto

0000 0001 0000 1 Fallo se carga j=1 en i=0 que inicialmenteesta vacío

0001 0001 0100 17 Fallo se carga j=17 en i=1 que inicialmenteesta vacío

0000 0100 1000 4 Fallo se carga j=4 en i=2 que inicialmenteesta vacío

0000 0111 1000 7 Fallo se carga j=7 en i=3 que inicialmenteesta vacío

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

Page 64: Coleccion Problemas Etc II

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

14

Afirmación II:

Direcciones leídas Nº de bloque (j) de la Mp alque hace referencia la

dirección.

Fallo o acierto

0110 0111 0100 103 Fallo se carga j=103 en i=4 que inicialmenteestá vacía

Es FALSA, ya que aunque efectivamente se produce un Fallo, no hay que reemplazar bloque de la cachéya que los bloques i=4, 5, 6, 7 se encuentran vacíos.

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

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

.64222 6

4

10

bloquesK

CC Mc ====

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

.16222

)/()( 4

2

6

conjuntosconjuntobloquesr

bloquesCq ====

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

Conjuntode Mc

Etiqueta Palabra

e=n-(c+p)e=8 bits

c=log2qc= 4 bits

p= log2Kp= 4 bits

n=16 bits

Por lo tanto la dirección del enunciado se divide en tres campos:

11000000 1101 0011

El valor de sus campos en decimal es:

Etiqueta = (0000 1101)2=1310

Conjunto de Mc = (1100)2=1210

Palabra = (0011)2=310

1213 3

Page 65: Coleccion Problemas Etc II

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

15

SOLUCION PROBLEMA 2.11Una posible solución a este problema consiste en ir probando uno a uno con los registros de máscaradados para verificar si producen el registro de Marca especificado, con lo que sería resolver 5 veces unproblema como el problema 2.6

1) La Máscara1 si que produce el registro de Marca especificado.

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

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

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

0 1 0 1 1 1 0 0 ARGUMENTO

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

1 0 0 1 1 1 1 1 00 1 0 1 1 0 1 0 10 1 0 1 0 0 1 0 0 MARCA0 1 1 0 1 1 1 0 00 0 0 1 1 1 1 0 1

0 1 0 1 1 1 0 0 ARGUMENTO

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

1 0 0 1 1 1 1 1 00 1 0 1 1 0 1 0 10 1 0 1 0 0 1 0 1 MARCA0 1 1 0 1 1 1 0 00 0 0 1 1 1 1 0 1

0 1 0 1 1 1 0 0 ARGUMENTO

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

1 0 0 1 1 1 1 1 00 1 0 1 1 0 1 0 10 1 0 1 0 0 1 0 0 MARCA0 1 1 0 1 1 1 0 00 0 0 1 1 1 1 0 1

0 1 0 1 1 1 0 0 ARGUMENTO

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

1 0 0 1 1 1 1 1 00 1 0 1 1 0 1 0 10 1 0 1 0 0 1 0 0 MARCA0 1 1 0 1 1 1 0 00 0 0 1 1 1 1 0 1

Page 66: Coleccion Problemas Etc II

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

16

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

Luego la solución es 3 registros de máscara producen el registro de Marca especificado.

SOLUCION PROBLEMA 2.12DATOS

• • Memoria de acceso aleatorio• • tA= 80 nseg.• • tC= 100 nseg

El tiempo de acceso tA se define como el tiempo necesario para leer o escribir un determinado número debits. O también como el tiempo transcurrido desde que se solicita una información hasta que se dispone deella.

Por otro lado el tiempo de ciclo, tC, se define como el tiempo transcurrido entre dos lecturas consecutivasen memoria. Y limitará la frecuencia de acceso en una memoria de acceso aleatorio.

Por definición, la frecuencia de acceso fA o velocidad de transferencia vT se define como el número depalabras que se pueden leer o escribir en memoria por unidad de tiempo.

CA t

f1

=

Luego sustituyendo, se obtiene:

17

7910

101

10·1001 −

−− === segf A

0 1 0 1 1 1 0 0 ARGUMENTO

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

1 0 0 1 1 1 1 1 00 1 0 1 1 0 1 0 00 1 0 1 0 0 1 0 0 MARCA0 1 1 0 1 1 1 0 00 0 0 1 1 1 1 0 1

Page 67: Coleccion Problemas Etc II

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

17

SOLUCION PROBLEMA 2.13DATOS

• • Se desea diseñar un módulo de memoria de capacidad 256 palabras de 4 bits

Con el dato que proporcionan en el enunciado es posible deducir los n bits necesarios para codificar todaslas posiciones (palabras) de memoria, es decir, conocer cual es la anchura de una dirección de memoria.Puesto que 256=28 → n=log22

8= 8 bits.

Análisis de la Afirmación ISi se utiliza organización 2D (ver libro de teoría pags.62-64), se requiere un decodificar que reciba los n=8bits 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.

Matriz de celdas

2n x m

Control

deco

difi

cado

r

n 2n

SC R/W

m m

Datode salida

Datode entrada

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

Matriz de celdas

2n x m

Control

n/2 2n/2

SC R/W

m m

Datode salida

Datode entrada

n/2

2n/2

Decode X

De

co

de

Y

Page 68: Coleccion Problemas Etc II

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

18

SOLUCION PROBLEMA 2.14DATOS

• • Número total de accesos NT=230

• • Tasa de aciertos h=75 %

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

T

F

NN

h =−1

Despejando el número total de Fallos:

( ) TF NhN ·1−=

Sustituyendo valores se obtiene:

( ) 28

2

303030 2

22

225.02·75.01 ==⋅=−=FN

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

Page 69: Coleccion Problemas Etc II

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

19

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

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

.4222 2

3

5

bloquesK

CC Mc ====

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

.32222 5

3

8

bloquesK

CM Mp ====

Es decir, que los log2M= 5 bits más significativos de una dirección de memoria hacen referencia al bloque jde 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 vistade la Mc tendría los siguientes campos:

Etiqueta Palabra

n=8 bits

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

Obsérvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa elnúmero de bloque j de la Mp, con lo que el tamaño de la etiqueta también se podía haber calculado de lasiguiente forma e=log2M= log22

5= 5 bits

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

Direcciones leídas Nº de bloque (j) de la Mp al quehace referencia la dirección.

Fallo o acierto

00000 000 0 Fallo se carga j=0 en i=0 queinicialmente esta vacío

00000 001 0 Acierto00000 011 0 Acierto00100 001 4 Fallo se carga j=4 en i=1 que

inicialmente esta vacío00100 101 4 Acierto00010 000 2 Fallo se carga j=2 en i=2 que

inicialmente esta vacío00010 010 2 Acierto00000 000 0 Acierto

Número total de fallos: 3 Fallos

Page 70: Coleccion Problemas Etc II

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

20

SOLUCION PROBLEMA 2.16

A la hora de calcular el valor del registro de marca sólo hay que tener en cuenta las palabras activas, esdecir, aquellas cuyo bit de etiqueta está a 1. Luego a la vista del registro de etiqueta las palabras 4 y 5 nose encuentran activas y los bits correspondientes del registro de marca deben ser 0.

1 0 0 1 1 0 1 0 ARGUMENTO

1 0 0 1 0 1 0 1 MASCARA

1 1 1 0 1 1 1 1 1 ?

1 1 1 0 1 1 0 1 0 ?

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

0 1 0 1 0 0 1 1 0 0

0 1 1 0 1 1 0 0 0 0

Por otro lado y de acuerdo al funcionamiento estándar de una memoria asociativa, en las palabras activassólo se consideran los bits del argumento cuya correspondiente bit de máscara está a 1. Por lo tanto lascolumnas 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 lamemoria asociativa al tener 1xx1x1x1 dará un 0 en su bit del registro de marca. Mientras que las filas 2 y3 de la memoria asociativa al tener el mismo valor que el argumento 1xx1x0x0 darán un 1 en su bit delregistro de marca.

La marca correcta es la que corresponde a la respuesta C :0

1

1

0

0

Page 71: Coleccion Problemas Etc II

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

21

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

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

Direcciones leídas Nº de bloque (j) de la Mp al quehace referencia la dirección.

Fallo o acierto

00000 000 0 Fallo se carga j=0 en i=0 queinicialmente esta vacío

00000 001 0 Acierto00000 011 0 Acierto00100 001 4 Fallo se carga j=4 en i=1 que

inicialmente esta vacío00100 101 4 Acierto00010 000 2 Fallo se carga j=2 en i=2 que

inicialmente esta vacío00010 010 2 Acierto00000 000 0 Acierto00100 111 4 Acierto

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

Page 72: Coleccion Problemas Etc II

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

22

SOLUCION PROBLEMA 2.18DATOS• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp

• Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso t ac=10 nseg• Mp: Capacidad 1024 Kpalabras y tiempo de acceso tp= 100 nseg• Tasa de acierto h=0.9• Cuando se produce un fallo en Mc :

• Se mueve el dato a la CPU.• • Simultáneamente se mueve el bloque desde la Mp a la Mc

El tiempo de acceso medio tam se define como:

gfgaam ththt ⋅−+⋅= )1( (1)

Donde tga es el tiempo de gestión del acierto. Normalmente se cumple que :

nsegtt caga 10==

Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en Mc. De acuerdo con el enunciadocuando se produce un fallo, el sistema entonces simultáneamente mueve el dato a la CPU empleando untiempo tap y mueve el bloque que consta de 8 palabras desde la Mp a la Mc, este movimiento emplea untiempo de 8·tap. Luego tgf

es:

{ } nsegtttt apapapgf 80010088,8max =⋅=⋅=⋅=

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

nseg89=+=⋅+⋅= 8098001.0109.0amt

Page 73: Coleccion Problemas Etc II

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

23

SOLUCION PROBLEMA 2.19DATOS• Sistema jerárquico de memoria: Memoria Caché Mc y Memoria Principal Mp

• Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso t ca=10 nseg• Mp: Capacidad 1024 Kpalabras y tiempo de acceso tap= 100 nseg• Tasa de acierto h=0.9• Cuando se produce un fallo en Mc :

• Primero se mueve el bloque completo desde Mp a Mc

• • Después la CPU lee el dato en la Mc

El tiempo de acceso medio tam se define como:

gfgaam ththt ⋅−+⋅= )1( (1)

Donde tga es el tiempo de gestión del acierto. Normalmente se cumple que:

nsegtt acga 10==

Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en MC. De acuerdo con el enunciadocuando se produce un Fallo, el sistema primero mueve el bloque que consta de 8 palabras desde la Mp a laMc, este movimiento emplea un tiempo de 8·tap, y a continuación lee el dato desde la caché. Luego tgf

es:

nsegttt acapgf 8101010088 =+⋅=+⋅=

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

nseg90=+=⋅+⋅= 8198101.0109.0amt

SOLUCION PROBLEMA 2.20

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

Page 74: Coleccion Problemas Etc II

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

24

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

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

Page 75: Coleccion Problemas Etc II

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

25

SOLUCION PROBLEMA 2.22DATOS

• • Procesador con 12 líneas de dirección A11A10....A0

• • Para construir su unidad de memoria se dispone de módulos de 1K =(210) palabras• • Las líneas más significativas (A11-A10) se utilizan para la selección de cada módulo

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno porcada línea. Por otro lado puesto que se tienen dos líneas A11 y A10 para seleccionar módulos de memoriade 1K, el número total de módulos para implementar el mapa de memoria es 22=4 módulos. En la siguientetabla 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 Base)

Dirección final

módulo nº 0 0000 0000 0000

000 (hexadecimal)

0011 1111 1111

3FF (hexadecimal)

módulo nº 1 0100 0000 0000

400 (hexadecimal)

0111 1111 1111

7FF (hexadecimal)

módulo nº 2 1000 0000 0000

800 (hexadecimal)

1011 1111 1111

BFF (hexadecimal)

módulo nº 3 1100 0000 0000

C00 (hexadecimal)

1111 1111 1111

FFF (hexadecimal)

La solución al problema (las direcciones base de cada módulo) está dada por lo tanto en la tabla anterior.

Page 76: Coleccion Problemas Etc II

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

26

SOLUCION PROBLEMA 2.23DATOS

• • Computador con un sistema jerárquico de memoria.• • El orden de los niveles superiores a los inferiores es:

n n registros de la CPU ------> Nivel Superiorn n caché primarian n caché secundarian n memoria principaln n discos magnéticos -----> Nivel Inferior

Cuando se dispone de un sistema jerárquico de memoria se cumplen los siguientes principios:

1) El coste por palabra es mayor en los niveles superiores que en los inferiores.

2) La capacidad de memoria es menor en los niveles superiores que en los inferiores.

3) La velocidad de transferencia o frecuencia de acceso es mayor en los niveles superiores que en losinferiores.

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, elcoste por palabra es mayor en la caché primaria que en la secundaria.

Afirmación II: Es Verdadera, puesto que la caché primaria está en un nivel superior a la caché secundaria,la capacidad es menor en la caché primaria que en la secundaria.

SOLUCION PROBLEMA 2.24DATOS

• • Sistema de memoria caché con correspondencia totalmente asociativa

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

Afirmación II: Esta afirmación es verdadera

Page 77: Coleccion Problemas Etc II

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

27

SOLUCION PROBLEMA 2.25DATOS

• • Procesador con 12 líneas de dirección A11A10....A0

• • Para construir su unidad de memoria se dispone de módulos de 1K =(210) palabras• • Las líneas más significativas (A1-A0) se utilizan para la selección de cada módulo

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno porcada línea. Por otro lado puesto que se tienen dos líneas A 1 y A0 para seleccionar módulos de memoria de1K, el número total de módulos para implementar el mapa de memoria es 22=4 módulos. En la siguiente tablase 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 valorhexadecimal (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 valorhexadecimal (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

Page 78: Coleccion Problemas Etc II

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

28

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 valorhexadecimal (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 valorhexadecimal (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, ladirección C89 se refiere al módulo 1 y la dirección C8A se refiere al módulo 2.

Page 79: Coleccion Problemas Etc II

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

29

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

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

.4222 2

4

6

bloquesK

CC Mc ====

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

.256222 8

4

12

bloquesK

CM Mp ====

Es decir, que los log2M= 8 bits más significativos de una dirección de memoria hacen referencia al bloque jde 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:

Bloque nº ide McEtiqueta Palabra

n=12 bits

e=(n-b-p)e=6 bits

b=log2Cb= 2 bits

p=log2Kp= 4 bits

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

Direcciones leídas Nº de bloque (j)de la Mp

Nº de bloque (i)de la Mc

Fallo o acierto

000000 01 0000 1 1 Fallo se carga j=1 en i=1que inicialmente esta

vacío000100 01 0100 17 1 Fallo se carga j=17 en i=1000001 00 1000 4 0 Fallo se carga j=4 en i=0

que inicialmente estavacío

000001 11 1000 7 3 Fallo se carga j=7 en i=3que inicialmente esta

vacío

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

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

Page 80: Coleccion Problemas Etc II

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

30

SOLUCION PROBLEMA 2.27DATOS

• • Mp con 32k palabras de 16 bits/palabra• • Mc asociativa por conjuntos de 4k palabras

n n r =4 bloques/conjunton n K= 64 palabras/bloque

• • La Mc está inicialmente vacía y utiliza el algoritmo FIFO para el reemplazo de bloques.• • La CPU accede a 4352 palabras de las direcciones 0, 1, 2,...,4351, en orden.• • Después repite esta secuencia 9 veces.• • La Mc es 10 veces más veloz que la Mp → tap=10tac

a) Como se trata de una caché asociativa por conjuntos el formato de dirección de la memoria principal sedivide en tres campos: Etiqueta, Conjunto y Palabra.

Para direccionar las 32k palabras de la memoria principal hacen falta 15 bits (32k = 25 ·210 = 215 ). 15 bits es, por tanto, el ancho de una dirección de memoria principal.

La memoria caché tendrá (4 bloques/conjunto)·(64 palabras/bloque) = 256 (28 ) palabras/conjunto. La cachétendrá, por tanto, un total de q=(4096 palabras) / (256 palabras/conjunto) = 16 conjuntos.

Así, la caché tendrá 26 palabras/bloque y 24 conjuntos. Por tanto, los campos Conjunto y Palabra tendrán 4y 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.

Conjunto de Mc

Etiqueta Palabra

n= 15 bits

5 bits log2q= 4 bits log2K= 6 bits

b) Si el computador no tiene memoria caché todas las palabras se han de leer de la memoria principal. Eltiempo necesario para hacerlo será el tiempo necesario para leer una palabra multiplicado por el numerototal 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. Siel tiempo necesario para acceder a una palabra de memoria principal es 10tac (frente a tac que sería el tiemponecesario para acceder a una palabra de caché), el tiempo total es

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

c) Para resolver esta cuestión conviene distinguir entre la primera lectura del bucle y las nueve restantes:

• • Primera lectura:Corresponde a la primera lectura secuencial de las palabras 0 a 4351. Se considera que la caché estáinicialmente vacía. Dado que el tamaño de la memoria caché es de 4096 palabras y el número de palabras alas que se accede es de 4352, es claro que la caché no puede almacenar simultáneamente todas estaspalabras.

Como se ha visto en a), la caché está organizada en 16 conjuntos de 4 particiones por conjunto, lo quehace un total de 64 particiones. Cada una de estas particiones tiene 64 palabras, lo que hace el total de las4096 palabras de la caché.

Page 81: Coleccion Problemas Etc II

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

31

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, 64palabras.

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 a63 que, según el formato de dirección de la memoria principal corresponden al conjunto 0. Como las cuatroparticiones de este conjunto se encuentran vacías se puede suponer que se almacenarán en la partición 0del conjunto 0. La lectura de las palabras 1 a 63 no origina fallos, pues estas palabras ya se encuentran enla caché.

Se lee la palabra 64: Un nuevo fallo. Se traen las direcciones 64 a 127, que corresponden al conjunto 1. Sesupone 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. Los16 bloques siguientes irán a la partición 1 de sus conjuntos. Se suceden las lecturas, hasta haber leído losprimeros 64 (0 a 63) bloques de la caché, es decir, las primeras 4096 (0-4095) palabras: en este momento lacaché 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 quelleven 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 seencuentra completo. Hay que reemplazar la partición más antigua de este conjunto, que como se acaba dever 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 entodos los casos.

De este modo termina la primera lectura de las direcciones de memoria. El contenido de la caché quedacomo se muestra en la Tabla 1.

• • Siguientes lecturas (2ª a 10ª) :Al realizar el segundo ciclo de lecturas a cada dirección le corresponde el mismo conjunto que en laprimera lectura, según el mecanismo de la caché asociativa por conjuntos. El que una palabra produzca unfallo o no dependerá de si todavía se encuentra en la caché. En la Tabla 1 se observa que los conjuntos 4 a15 no van a producir fallos, pues su contenido no ha variado. Pero sí va a haber problemas con losconjuntos 0 a 3:

La dirección 0, que correspondía al bloque 0, ya no está en la caché, pues fue sustituído por el bloque 64.La partición más antigua en esta ocasión es la 1, que contenía el bloque 16 de memoria principal. Luegohabrá 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 hacerun reemplazamiento en la partición más antigua de este conjunto, que ahora es la 2: el bloque 32 esreemplazado por el 16. Análogamente, el bloque 32 reemplazará al 48, el 48 al 64 y el 64 al 0. En la segundalectura 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 lasegunda lectura. Al finalizar este segundo ciclo de lecturas el contenido de la caché quedará como semuestra en la Tabla 2.

La situación en el tercer ciclo es análoga a lo sucedido en el segundo: se producirán 5 fallos en cuatrogrupos, es decir, 20 fallos en total. Lo mismo sucede en los ciclos siguientes.

Page 82: Coleccion Problemas Etc II

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

32

Conjunto ide Mc

Contenido particiones(nº bloque j de Mp)

064163248

165173349

266183450

367193551

468203652

···

1515314763

Tabla 1. Contenido de la memoria caché después del primer ciclo de lecturas

Conjunto ide Mc

Contenido particiones(nº bloque j de Mp)

048641632

149651733

250661834

351671935

44203652

···

···

1515314763

Tabla 2. Contenido de la memoria caché después del segundo ciclo de lecturas

Cómputo del número total de fallos:En el primer ciclo de lecturas se producía un fallo en cada uno de los 68 bloques a leer: 68 fallos en total. Enlos 9 ciclos siguientes, 20 fallos en cada uno de ellos. Luego

fallosN F 24820968 =⋅+=

D) En caso de fallo se especifica que las acciones que tienen lugar son :

Page 83: Coleccion Problemas Etc II

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

33

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:

acacacacapgf tKttKttKt )110(10· +⋅=+⋅⋅=+=Por otro lado el tiempo de gestión del acierto, es el tiempo de acceso a la memoria caché tga=tac

Luego el tiempo total que se emplea es:

acFacAa tKNtNt )110( +⋅⋅+⋅=Como NA=NT - NF, entonces:

( ) ( ) acFTacFacFTa tKNNtKNtNNt ⋅⋅⋅+=+⋅⋅+⋅−= 10)110(

Sustituyendo valores se obtiene

( ) acaca ttt ⋅=⋅⋅⋅+= 202240641024843520 seg

Page 84: Coleccion Problemas Etc II

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

34

SOLUCION PROBLEMA 2.28DATOS

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

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

Por otro lado la anchura del campo PALABRA que especifica la posición de una palabra en el interior deun bloque viene dada p=log2K=log2128= 7 bits.La anchura del campo BLOQUE que especifica el i bloque de Mc donde se busca la palabra viene dado por:b=log2(CMc/K)=log2(2

10/27)=log2(23)=3 bits.

Por ultimo la anchura del campo ETIQUETA, es e=n-(b+p)=16-(7+3)= 6 bits.

Es decir, desde el punto de vista de la memoria caché, una dirección de memoria principal se consideracompuesta de la forma indicada en la figura.

Bloque de Mc

Etiqueta Palabra

n=16 bits

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

b) En este apartado se pide calcular el tiempo que tardaría en ejecutarse el programa si el computador notuviera caché. Ya que no se indica el tiempo que tardan en ejecutarse las instrucciones, se ha de suponerque es despreciable frente al tiempo de acceso a memoria (la memoria es muy lenta comparada con lavelocidad 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, eltiempo 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 encada sección del programa, y tener en cuenta cuántas veces se ejecuta cada una de estas secciones, talcomo se muestra en la Tabla 1.

Sección Nº Instrucciones Veces que se ejecuta Total instrucciones17-22 6 1 623-164 142 10 1420165-239 75 20 x 10 15000240-1200 961 10 96101201-1500 300 1 300

Nº Total de accesos a memoria principal 26336Tabla 1. Cálculo del número total de accesos a memoria principal

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

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

Page 85: Coleccion Problemas Etc II

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

35

c) Dado que el computador utiliza una caché con correspondencia directa, a cada palabra de la memoriaprincipal le corresponde un único bloque de la memoria caché, según el formato de los campos que sededujo en el apartado a). En la Tabla 2 se muestra la correspondencia entre las distintas direcciones de lamemoria principal y sus campos etiqueta, partición y palabra. Estos campos se obtienen haciendo gruposde 6, 3 y 7 bits, respectivamente, con la representación en binario puro de la dirección. La representaciónbinaria se ha obtenido, a su vez, fácilmente a partir de la representación hexadecimal.

Formato dirección memoria principalDirección Etiqueta

(6 bits)Bloque i de Mc

(3 bits)Palabra(7 bits)

1722

000000000000

000000

00100010010110

23164

000000000000

000001

00101110100100

165239

000000000000

001001

01001011101111

2401200

000000000001

001001

11100000110000

12011500

000001000001

001001

01100011011100

Tabla 2. Formato de las direcciones de memoria principal

A partir de la Tabla 2 es fácil calcular el número de fallos que se producen en el acceso a la memoria caché.Para ello, basta con ir ejecutando el programa, tal como se muestra en la figura del enunciadp, “con lápiz ypapel” 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 enteradesde la memoria principal.

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

Con esto finaliza la primera ejecución del bucle exterior. Se ha producido un total de 10 fallos (1 + 1 + 8). Elestado de la caché ha quedado como se muestra en la Tabla 3.

Page 86: Coleccion Problemas Etc II

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

36

Bloque ide Mc

Etiqueta

0 0000011 0000012 0000003 0000004 0000005 0000006 0000007 000000

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

3) Segunda a décima ejecución del bucle exterior:Como se ha visto anteriormente, el bucle exterior comienza referenciando las particiones 000 y 001correspondientes a la etiqueta 000000. Estas particiones han sido reemplazadas por las correspondientes ala etiqueta 000001. Se producen por tanto dos fallos y se reemplazan las particiones.

El bucle sigue referenciando las particiones 010 a 111 (etiqueta 000000), que como se comprueba en laTabla 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 sidosustituí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 quehabí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 elmismo contenido que había al comenzar. En total, en las nueve ejecuciones se producirán 9·4 = 36 fallos, yel 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 etiqueta000001. La 1 ya se encuentra cargada en la caché, pero la 2 y la 3 no; por tanto se producen otros 2 fallos.

Cómputo del número total de fallos:El número total de fallos es NF= 10 + 36 + 2 = 48 fallos .

d) Para calcular el tiempo total que se tarda en ejecutar el programa con la memoria caché hay quecontabilizar el número total de accesos NT realizan a la memoria caché, que es igual al número total deinstrucciones que se ejecutan en el programa: 26.336. Es decir NT=26336

En caso de fallo se especifica que las acciones que tienen lugar son :1. Se mueve el bloque completo de Mp a Mc.2. La CPU lee el dato desde la caché.

Es decir, que el tiempo de gestión de fallos tgf es:

ô)110(ôô10· +⋅=+⋅⋅=+= KKttKt acapgf

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

Page 87: Coleccion Problemas Etc II

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

37

Luego el tiempo total que se emplea es:

ô)110(ô +⋅⋅+⋅= KNNt FAa

Como NA=NT - NF, entonces:

( ) ( ) ô10ô)110(ô ⋅⋅⋅+=+⋅⋅+⋅−= KNNKNNNt FTFFTa

Sustituyendo valores se obtiene

( ) ô87776ô128104826336 ⋅=⋅⋅⋅+=at seg

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

%8.9926336

4826336=

−=

−==

T

FT

T

A

NNN

NN

h

%3.33ô·263360

ô·87776)(

)(==

+

pa

pca

Mt

MMt

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 memoriaprincipal la velocidad sólo mejora en un factor 3, debido a la carga que supone mover bloques completosdesde la memoria principal a la memoria caché.

SOLUCION PROBLEMA 2.29DATOS

• • Número total de accesos NT=220

• Número de fallos NF=217

• • Tasa de fallos?

La definición de tasa de fallos es:

125.081

21

22

320

17

=====T

F

NN

fallosdeTasa

Luego la Tasa de fallos es 12.5 % .

Page 88: Coleccion Problemas Etc II

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

38

SOLUCION PROBLEMA 2.30DATOS

• • Procesador con 12 líneas de dirección A11A10....A0

• • Para construir su unidad de memoria se dispone de módulos de 2K =(211) palabras• • La línea A1 se utilizan para la selección de cada módulo

De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno porcada línea. Por otro lado puesto que se tienen una única línea A1 para seleccionar módulos de memoria de2K, el número total de módulos para implementar el mapa de memoria es 2 módulos. En la siguiente tabla semuestra 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 valorhexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F):

Y Y 0

Y Y 1

Y Y 4

Y Y 5

Y Y 8

Y Y 9

Y Y C

Y Y D

Módulo 1

Las direcciones que hacen referencia al segundo módulo de memoria (módulo nº 1) son:

XXXX XXXX XX10

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

Y Y 2

Y Y 3

Y Y 6

Y Y 7

Y Y A

Y Y B

Y Y E

Y Y F

De acuerdo con el análisis realizado las afirmaciones son:

A) FALSA Ya que C89 se encuentra en el módulo 0 y C8A en el módulo 1.

B) VERDADERA. Ya que C89 se encuentra en el módulo 0 y C8A en el módulo 1.

C) FALSA. La línea de selección es A1.

D) FALSA. La afirmación B es verdadera.

Page 89: Coleccion Problemas Etc II

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

39

SOLUCION PROBLEMA 2.31DATOS

• • Memoria principal de CMp= 64k palabras =216

• • Memoria caché de CMc= 2k palabras =211

• • Utiliza correspondencia totalmente asociativa• • K= 256 palabras/bloque =28

• • La memoria caché está inicialmente vacia.• • Cuando la memoria caché está llena, se reemplaza el bloque que se ha utilizado más

recientemente.• • La CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la dirección 0 a la

2300.• • tap=7·tac

A) Cuando se utiliza correspondencia totalmente asociativa la dirección de memoria principal sedescompone en dos campos: etiqueta y palabra. La anchura de una dirección de memoria principal esn=log2CMp=log22

16=16 bits. Por otro lado los bits necesarios para codificar la posición de una palabra enun bloque es p=log2K=log22

8=8 bits. Por lo tanto los bits del campo etiqueta son e=n-p=16-8=8 bits. Es decir el formato de una dirección queda de la siguiente forma:

Etiqueta Palabra

n=16 bits

e=8 bits p= 8 bits

B) Puesto que se supone que no hay memoria caché, el número total de accesos que realiza la CPU a lamemoria principal en la ejecución 5 veces de ese bucle de direcciones es NT= 5·2301=11505 accesos. Eltiempo de acceso medio a la memoria principal es tap=7·tac. Luego el tiempo que se tardaría en realizarestos NT accesos es:

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

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

8222 3

8

11

====K

CC Mc bloques

Por lo tanto la tabla que nos piden tendrá 8 filas y 5 columnas una por cada vez que se ejecuta el bucle.

Por otra parte el número de bloques de la memoria principal es:

256222 8

8

16

====K

CM Mp

bloques

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ónde cada ciclo habrá que realizar un único reemplazamiento.

En la siguiente Tabla se muestra los rangos de direcciones de Mp correspondientes a los 9 primerosbloques, los que intervienen en el problema, con las etiquetas que tendrían al ser cargados en memoriacaché. En el apartado A) se vio que los 8 bits más significativos se la dirección se corresponden con el

Page 90: Coleccion Problemas Etc II

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

40

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

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

0 - 255 0000 - 00FF 00256 - 511 0100 - 01FF 01512 - 767 0200 - 02FF 02768 - 1023 0300 - 03FF 031024 - 1279 0400 - 04FF 041280 - 1535 0500 - 05FF 051536 - 1791 0600 - 06FF 061792 - 2027 0700 - 07FF 072048 - 2303 0800 - 08FF 08

A la hora de explicar que ocurre cuando se acceden a las direcciones del enunciado del problema, se vaa distinguir el primer ciclo del resto de ciclos.

• Primera ejecución del cicloLa caché se va llenando con bloques de memoria principal que son copiados cuando se produce laprimera referencia a una dirección del bloque. Por ejemplo, cuando se referencia la dirección 1536, semueve de memoria principal a memoria caché el bloque completo que contiene las direcciones de la1536 a la 1791. Al utilizar la técnica de correspondencia totalmente asociativa, el bloque se mueve acualquiera de las particiones vacías de la caché, en el caso del ejemplo anterior a la partición 6.

El problema se plantea cuando la memoria ya está llena y se referencia la dirección 2048, pertenecienteal bloque con etiqueta 08. La técnica de reemplazamiento propuesta en el problema es: “reemplazar elbloque que se haya utilizado más recientemente”. En este caso, es el bloque almacenado en lapartición 7 y con etiqueta 07.

Por todo lo visto, al finalizar el primer ciclo, en la caché se encuentran almacenadas todas lasdirecciones propuestas excepto las pertenecientes al bloque con etiqueta 07.

• Segunda ejecución del cicloEn esta segunda ejecución del ciclo se producen aciertos hasta referenciar la primera dirección delbloque 07, sustituido en el ciclo anterior. Utilizando la técnica de reemplazamiento propuesta, elúltimo bloque referenciado es el 06, que es sustituido por el 07. Posteriormente las direcciones delbloque 08 dan aciertos.

• Resto de ciclosSe producen situaciones similares a la del segundo ciclo, con una sustitución en cada uno de ellos.

Luego la tabla que nos piden es la siguiente:

Bloque de Mc 1ª vez 2ª vez 3ª vez 4ª vez 5ª vezi=0 00 00 00 00 00i=1 01 01 01 01 01i=2 02 02 02 02 02i=3 03 03 03 03 04i=4 04 04 04 05 05i=5 05 05 06 06 06i=6 06 07 07 07 07i=7 08 08 08 08 08

Page 91: Coleccion Problemas Etc II

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

41

C) Para contestar este apartado se va a utilizar la Tabla creada en el apartado anterior. Allí se ha visto quela ejecución del ciclo la primera vez sigue un patrón distinto a la ejecución del ciclo las 4 vecessiguientes. Estudiando por separado ambos casos:

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

• Segunda ejecución del ciclo y sucesivas . Se produce un único fallo en cada ciclo.

El número total de fallos será: NF= 9 + 4 = 13 fallos .

D) En caso de fallo se especifica que las acciones que tienen lugar son :1. Se mueve el bloque completo de Mp a Mc.2. La CPU lee el dato desde la caché.

Es decir, que el tiempo de gestión de fallos tgf es:

acacacacapgf tKttKttKt )17(7· +⋅=+⋅⋅=+=

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

Luego el tiempo total que se emplea es:

acFacAa tKNtNt )17( +⋅⋅+⋅=

Como NA=NT - NF, entonces:

( ) ( ) acFTacFacFTa tKNNtKNtNNt ⋅⋅⋅+=+⋅⋅+⋅−= 7)17(

Sustituyendo valores se obtiene

( ) acaca ttt ⋅=⋅⋅⋅+= 3480125671311505 seg

Page 92: Coleccion Problemas Etc II

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

42

SOLUCION PROBLEMA 2.32DATOS

• • Número total de accesos NT=220

• • Número de fallos NF=217

La definición de tasa de fallos es:

T

F

NN

hfallosdeTasa =−= )1(

Despejando la tasa de aciertos h:

875.0125.0122

11 20

17

=−=−=−=T

F

NN

h

Luego la tasa de aciertos h= 87.5 % .

Page 93: Coleccion Problemas Etc II

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

43

SOLUCION PROBLEMA 2.33DATOS

• • Memoria principal de CMp= 8192 Kpalabras.• • Memoria caché de CMc= 2 Kpalabras=211 palabras• • La memoria caché utiliza.correspondencia asociativa por conjuntosn n K=64 palabras/ bloque (26)n n r= 4 bloques/conjunto

• • Inicialmente la memoria caché está llena con la ejecución de un programa Prog1• • Se carga en memoria principal un nuevo programa Prog2• • Prog2 efectúa la siguiente secuencia de referencias en la ejecución de su código :

n n Lee secuencialmente las direcciones 128,129,130,....., 143n n Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133n n Finalmente lee secuencialmente las direcciones 134,135,....,168

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

Conjunto de Mc

Etiqueta Palabra

e bits c bits p bits

n bits

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

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

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

56

11

222

===K

CC Mc bloques

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

32

55

222

42

====rC

q conjuntos

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ónes el siguiente:

Page 94: Coleccion Problemas Etc II

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

44

Conjunto de Mc

Etiqueta Palabra

14 bits 3 bits 6 bits

23 bits

La tasa de acierto h, se define como:

T

A

NN

accesosdetotalNumeroaciertosdeNumero

h ==

Del enunciado se puede calcular el número total de accesos NT.• Lee secuencialmente las direcciones 128,129,130,....., 143 → (143-128)+1= 16 accesos• Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133 → 20·3= 60 accesos• Finalmente lee secuencialmente las direcciones 134,135,....,168 → (168-134)+1=35 accesos

Por lo tanto NT= 16+60+35= 111 accesos

Queda por calcular el número de aciertos.

Para su cálculo hay que tener en cuenta, que cuando se carga en memoria principal Prog2, en la memoriacaché no hay ninguna copia del código de este nuevo programa por lo que primera referencia a su códigova a producir necesariamente un fallo en la memoria caché.

En la función de correspondencia asociativa por conjuntos, cada bloque j de palabras de memoria principaltiene asignado un conjunto i de memoria caché mediante la relación:

quloji mod=

De acuerdo a esta relación y sabido que el número de palabras que tiene un bloque de memoria principal esK= 64. Es posible conocer el conjunto de Mc asociado a cada bloque de la Mp.

• El bloque j=0 de Mp (direcciones 0 a 63) → Conjunto i=0 de MC

• El bloque j=1 de Mp (direcciones 64 a 127) → Conjunto i=1 de MC

• El bloque j=2 de Mp (direcciones 128 a 191) → Conjunto i=2 de MC

El programa Prog2 utiliza las direcciones (128 a 168) que se encuentran exclusivamente dentro del bloquej=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ánaciertos.

Es decir, el número de aciertos es NA=NT-NF, siendo NF el número de fallos NA=111-1=110 aciertos.

Luego la tasa de acierto es:

99.0111110

==h

Es decir 99%

Page 95: Coleccion Problemas Etc II

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

45

SOLUCION PROBLEMA 2.34

Una posible forma de resolver el problema consiste en ir probando uno a uno con los registros de máscaradados para verificar si producen el registro de Marca especificado.

1) Máscara 1

0 1 0 1 1 1 0 0 ARGUMENTO

0 1 0 0 1 0 0 1 MASCARA

0 1 1 0 1 1 1 1 0 0

1 1 1 0 1 1 0 1 0 1

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

1 1 0 1 0 0 1 1 0 0

1 1 1 0 1 1 0 0 0 1

La mascara 1 si genera este registro de marca. Hay que recordar que si el bit de etiqueta está a 0, el bitcorrespondiente del registro de marca se pone a 0, por eso se ha tachado la primera fila de la matriz deceldas asociativa.

2) Máscara 2

0 1 0 1 1 1 0 0 ARGUMENTO

0 1 0 0 0 0 0 0 MASCARA

0 1 1 0 1 1 1 1 0 0

1 1 1 0 1 1 0 1 0 1

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

1 1 0 1 0 0 1 1 0 0

1 1 1 0 1 1 0 0 0 1

La mascara 2 si genera este registro de marca.

Page 96: Coleccion Problemas Etc II

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

46

3) Máscara 3

0 1 0 1 1 1 0 0 ARGUMENTO

0 0 0 1 1 0 0 0 MASCARA

0 1 1 0 1 1 1 1 0 0

1 1 1 0 1 1 0 1 0 1

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

1 1 0 1 0 0 1 1 0 0

1 1 1 0 1 1 0 0 0 1

La mascara 3 si genera este registro de marca.

4) Máscara 4

0 1 0 1 1 1 0 0 ARGUMENTO

0 0 0 1 1 0 0 1 MASCARA

0 1 1 0 1 1 1 1 0 0

1 1 1 0 1 1 0 1 0 1

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

1 1 0 1 0 0 1 1 0 0

1 1 1 0 1 1 0 0 0 1

La mascara 4 si genera este registro de marca.

5) Máscara 5

0 1 0 1 1 1 0 0 ARGUMENTO

0 0 0 0 1 0 0 1 MASCARA

0 1 1 0 1 1 1 1 0 0

1 1 1 0 1 1 0 1 0 1

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

1 1 0 1 0 0 1 1 0 0

1 1 1 0 1 1 0 0 0 1

La mascara 5 si genera este registro de marca.

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

Page 97: Coleccion Problemas Etc II

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

47

SOLUCION PROBLEMA 2.35DATOS• CMp = 220 palabras• CMc = 1024 (210) palabras• K=64 (26) palabras/bloque• • Función de correspondencia directa

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

.16222 4

6

10

bloquesK

CC Mc ====

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

bloquesK

CM Mp 14

6

20

222

===

Es decir, que los log2M= 14 bits más significativos de una dirección de memoria hacen referencia al bloquej 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:

Bloque nº ide McEtiqueta Palabra

n=20 bits

e=(n-b-p)e=10 bits

b=log2Cb= 4 bits

p=log2Kp= 6 bits

Afirmación I:La dirección 1D45F se expresa en binario de la siguiente forma: 0001 1101 0100 0101 1111

Desde el punto de vista de la Mc se descompone en los siguientes campos:

Etiqueta Bloque nº i de MC Palabra0001110101 0001 011111

Luego esta dirección hace referencia al bloque i=00012=110 de MC. Luego la afirmación es FALSA. No hacefalta analizar la dirección 02075.

Afirmación II:La dirección 2A23B se expresa en binario de la siguiente forma: 0010 1010 0010 0011 1011

Desde el punto de vista de la Mc se descompone en los siguientes campos:

Etiqueta Bloque nº i de MC Palabra0010101000 1000 111011

Luego esta dirección hace referencia al bloque i=10002=810 de MC. Luego la afirmación es VERDADERA.

Page 98: Coleccion Problemas Etc II

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

48

SOLUCION PROBLEMA 2.36DATOS• • Memoria RAM de capacidad total CT= de 1024 palabras x 16 bits/palabra.• • Construida con módulos de memoria RAM de capacidad C0= 128 palabras x 8 bits/palabra

El número de líneas del bus de direcciones n se calcula a partir del número de palabras que posee lamemoria RAM construida. Es decir:

líneasn 102log1024log 1022 ===

Puesto que el número de palabras que posee el modulo RAM unidad es de 128, para conseguir 1024palabras de capacidad total se necesitarán:

módulos8222

1281024 3

7

10

===

Por otra parte, el número de líneas del bus de direcciones que se utilizarán para seleccionar entre estosocho módulos nS es:

lineasnS 32log 32 ==

Luego, el número de líneas del bus de direcciones comunes nC a todos los módulos serán:

líneasnnn SC 7310 =−=−=

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 unamemoria RAM de capacidad CT. Pues bien, obsérvese que CT se descompone de la siguiente forma:

037

373373410

·16)/2·2·(16

/2·2)·2·2(/2·22·2/22

CpalbitsxpalC

palbitsxpalpalbitsxpalpalbitsxpalC

T

T

==

===

Es decir se necesita un total de 16 módulos.

Page 99: Coleccion Problemas Etc II

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

49

SOLUCION PROBLEMA 2.37DATOS• • Memoria de acceso aleatorio.• • ta=100 nseg.• • tc=200 nseg.

En una memoria de acceso aleatorio la frecuencia de acceso fa se calcula de la siguiente forma:

16179

9 ·10·5·2

10·200

1010·2001

20011 −−

− ====== segsegsegsegnsegt

fc

a

Luego la frecuencia de acceso es fa=5·106 seg-1.

Page 100: Coleccion Problemas Etc II

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

50

SOLUCION PROBLEMA 2.38DATOS• Sistema jerárquico de memoria.• CMc:=128 palabras, K= 16 pal/ bloque, t ca=10 µseg• CMp=1024 Kpalabras, tp= 200 µseg• Tasa de acierto h=0.99• Cuando se produce un fallo en Mc :

• Se mueve el bloque completo a la MC.• • Se lee el dato desde MC.• • textra=20 µseg

El tiempo de acceso medio tam se define como:

gfgaam ththt ⋅−+⋅= )1( (1)

Donde tga es el tiempo empleado en gestionar un acierto. Normalmente se cumple que :

segtt caacierto µ10==

De acuerdo con el enunciado el tiempo de gestión de un fallo será la suma de tres componentes, ya quecuando se produce un fallo:

1) El sistema mueve el bloque completo a la caché, es decir hay que realizar K accesos a lamemoria 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:

segtttKt extracapgf µ3230201020016· =++⋅=++=

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

segtam µ2.423.329.9323001.01099.0 =+=⋅+⋅=

Por otra si sólo se utilizara la memoria principal el tiempo de acceso medio sería:

segtt pam µ200' ==

Se observa que:

7.4' =

am

am

tt

Luego las afirmaciones son:

Afirmación I: VERDADERA.

Afirmación II: VERDADERA

Page 101: Coleccion Problemas Etc II

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

51

SOLUCION PROBLEMA 2.39DATOS• CMp = 64 Kpalabras = (216) palabras• CMc = 1K palabras = (210) palabras• • K=8 palabras/bloque = (23) palabras/bloque• • Función de correspondencia directa.• • En un determinado instante la dirección 6B59, de la memoria principal está en la memoria caché

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

.128222 7

3

10

bloquesK

CC Mc ====

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

.8222 13

3

16

KbloquesK

CM Mp ====

Es decir, que los log2M= 13 bits más significativos de una dirección de memoria hacen referencia al bloquej 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:

Bloque nº ide McEtiqueta Palabra

n=16 bits

e=(n-b-p)e=6 bits

b=log2Cb= 7 bits

p=log2Kp= 3 bits

AFIRMACION I:Para comprobar la validez de esta afirmación hay que pasar la dirección 6B59 a código binario.

6B5916= 0110 1011 0101 1001

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

1101011011010 001

Luego el bloque i de MC al que hace referencia es: i=11010112=10710. Luego la afirmación es VERDADERA.

AFIRMACION II:Para comprobar la validez de esta afirmación hay que pasar la dirección 675E a código binario.

675E16= 0110 0111 0101 1111

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

1101011011001 111

La etiqueta de esta dirección es 011001, distinta de la etiqueta 011010 de la dirección 6B59 que si queestaba en la Mc. Luego 675E no está en la MC. La afirmación es VERDADERA.

Page 102: Coleccion Problemas Etc II

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

52

SOLUCION PROBLEMA 2.40DATOS• • Sistema jerárquico de memoria con memoria caché de dos niveles.• • La caché de nivel 1, es la más cercana a la CPU• • La caché de nivel 2, es la más cercana a la memoria principal.

AFIRMACION I:

En un sistema jerárquico de memoria con dos niveles de memoria caché, la caché 1 (MC1), más cercana a laCPU, posee una capacidad inferior a la caché de nivel 2 (MC2), más cercana a la memoria principal. Enconsecuencia nunca la MC1 puede contener una copia de todos los bloques de la MC2, sólo de algunos deellos. Luego, la afirmación es FALSA.

AFIRMACION II:

Con la política de post-escritura, las modificaciones que se realicen en la caché 1 no se reflejaráninmediatamente en la caché 2. Por tanto, el contenido de un bloque de caché de nivel 1 no siempre seráigual al contenido de un bloque correspondiente en la caché de nivel 2. Luego, la afirmación es FALSA.

Page 103: Coleccion Problemas Etc II

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

53

SOLUCION PROBLEMA 2.41DATOS• • 16 líneas de dirección A15-A0.• • Memoria compuesta de módulos ROM y módulos RAM.• • La ROM consta de un único módulo y ocupa las direcciones más bajas de memoria, comenzando por la

dirección 0.• • La RAM con una capacidad de CRAM=48Kbytes ocupa las direcciones restantes.

Puesto que el sistema consta de n=16 líneas de dirección, podrá direccionar una capacidad de memoria de

KbytesbytesCT 64216 ==

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

RAMROMT CCC +=

Puesto que se conocen CT y CRAM es posible calcular CROM

KbytesKbytesKbytesCCC RAMTROM 164864 =−=−=

Luego se tiene un sistema de CT=64 Kbytes que se distribuye de la siguiente forma:n Un único módulo de ROM de capacidad CROM=16 Kbytes, que contiene las direcciones bajas

de memoria, comenzando desde la 0.n Varios módulos de memoria RAM (en el enunciado no concreta el número, suponemos como

hipótesis de trabajo que hay tres) que suman entre todos ellos una capacidadCRAM=48 Kbytes.

Si se supone que el sistema posee al menos tres módulos de memoria RAM y uno de ROM, se necesitarándos 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, lasdirecciones que acceden a la ROM son de la forma:

00XX XXXX XXXX XXXX

Se tiene por tanto la siguiente tabla de selección de módulos:

A15A14 Función lógica de selección Modulo seleccionado00

1415AACSROM = ROM

0114150 AACSRAM = RAM nº 0

1014151 AACSRAM = RAM nº 1

1114152 AACSRAM = RAM nº 2

De acuerdo con el razonamiento realizado, se tiene:

Afirmación I: VERDADERA.Afirmación II: FALSA.

Nota: El enunciado de este problema es bastante puñetero ya que el alumno debe de suponer doshipótesis, nada evidentes, para poder resolverlo: 1) Cada palabra de memoria ocupa un byte. 2) Hay dos otres módulos de memoria RAM.

Page 104: Coleccion Problemas Etc II

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

54

SOLUCION PROBLEMA 2.42DATOS• • Memoria de acceso NO aleatorio.• • fa=2·106 bits/seg..• • ta=2mseg• • N=103 bytes

En una memoria de acceso NO aleatorio la frecuencia de acceso fa o velocidad de transferencia vT secalcula de la siguiente forma:

anaT tt

Nfv

−==

Despejando tn:

aT

n tvN

t +=

Sustituyendo valores:

msegsegsegsegbits

bytebitsbytestn 610·610·210·4)(10·2

)/(10·2)/(2)·(10 3333

6

33

==+=+= −−−−

Luego el tiempo medio en leer o escribir 103 bytes es t n=6 mseg.

Page 105: Coleccion Problemas Etc II

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

55

SOLUCION PROBLEMA 2.43DATOS• Sistema jerárquico de memoria.• CMc:=256 palabras, K= 8 pal/ bloque, t ac=20 nseg• CMp=1024 Kpalabras, tap= 200 nseg• Tasa de acierto h=0.90• Cuando se produce un fallo en Mc :

• Se mueve el bloque completo a la MC.• • Se lee el dato desde MC.

El tiempo de acceso medio tam se define como:

gfgaam ththt ⋅−+⋅= )1( (1)

Donde tga es el tiempo de gestión del acierto. Normalmente se cumple que:

nsegtt caga 20==

De acuerdo con el enunciado el tiempo de gestión de un fallo será la suma de dos componentes, ya quecuando se produce un fallo:

1) El sistema mueve el bloque completo a la caché, es decir hay que realizar K accesos a lamemoria principal, lo que supone un tiempo de K·tap.

2) Se lee el dato desde la caché, lo que supone un tiempo de t ac.

Luego:

segnttKt acapgf 1620202008· =+⋅=+=

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

segntam 18016218162010.02090.0 =+=⋅+⋅=

Luego la solución es tam=180 nseg.

Page 106: Coleccion Problemas Etc II

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

56

SOLUCION PROBLEMA 2.44DATOS

• • Número total de accesos NT=1020

• • Número de fallos NF=1018

La definición de tasa de fallos es:

T

F

NN

hfallosdeTasa =−= )1(

Despejando la tasa de aciertos h:

99.001.0110

11

1010

11 220

18

=−=−=−=−=T

F

NN

h

Luego la tasa de aciertos h= 99 % .

SOLUCION PROBLEMA 2.45DATOS

• • Función de correspondencia asociativa por conjuntos:• • ETIQUETA: 20 bits, CONJUNTO: 7 bits, PALABRA: 5 bits.• • r=2 bloques/conjunto.• • L=Longitud de palabra es 1 byte.

Puesto que se conoce el número de bits c=7 bits del campo CONJUNTO con el que se codifica el númerode conjunto de la MC, es posible obtener el número de conjuntos total q de la MC:

conjuntosq c 12822 7 ===

El número de bloques C de la memoria caché se calcula de la siguiente forma:

bloquesconjuntobloquesrconjuntosqC 87 22·2)/()·( ===

Por otra parte el número de bits p=5 utilizados para el campo PALABRA con el que se codifica la posiciónde una palabra dentro de un bloque, es posible obtener el número de palabras K que tiene un bloque:

)/(3222 5 bloquepalabrasK p ===

Finalmente la capacidad CMc de la memoria caché viene dada por:

KbytespalabrabytexpalabrasC

palabrabytexbloquesbloquepalabrasLxCKC

Mc

Mc

8)/(1)(2

)/(1)(2)·/(2·13

85

==

==

Luego CMc=8 Kbytes

Page 107: Coleccion Problemas Etc II

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

57

SOLUCION PROBLEMA 2.46DATOS

• • Se desea acercar la velocidad de la unidad de memoria de un computador a la velocidad de losregistros de su CPU, a un coste razonable.

Para resolver este problema hay que recordar las propiedades de un sistema jerárquico de memoria.

Afirmación A: Es falsa ya que aumentar el número de registros de la CPU no influye en la velocidad de launidad de memoria principal, además es muy costoso.

Afirmación B: Es verdadera, ya que incluir una memoria caché en el sistema disminuye el tiempo medio deacceso 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 lavelocidad de la unidad de memoria.

Afirmación D: Es falsa, la afirmación B es verdadera.

Page 108: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DECOMPUTADORES II

TEMA 3: Unidad de Entrada Salida

SOLUCION A LOS PROBLEMASPROPUESTOS EN EXAMEN

Curso 2002-2003Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 109: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA Solución de los problemas

2

CONTENIDOSOLUCION PROBLEMA 3.1........................................................................................................................................ 3SOLUCION PROBLEMA 3.2........................................................................................................................................ 4SOLUCION PROBLEMA 3.3........................................................................................................................................ 5SOLUCION PROBLEMA 3.4........................................................................................................................................ 6SOLUCION PROBLEMA 3.5........................................................................................................................................ 7SOLUCION PROBLEMA 3.6........................................................................................................................................ 8SOLUCION PROBLEMA 3.7........................................................................................................................................ 9SOLUCION PROBLEMA 3.8...................................................................................................................................... 10SOLUCION PROBLEMA 3.9...................................................................................................................................... 11SOLUCION PROBLEMA 3.10.................................................................................................................................... 11SOLUCION PROBLEMA 3.12.................................................................................................................................... 12SOLUCION PROBLEMA 3.13.................................................................................................................................... 13SOLUCION PROBLEMA 3.14.................................................................................................................................... 14SOLUCION PROBLEMA 3.15.................................................................................................................................... 14SOLUCION PROBLEMA 3.16.................................................................................................................................... 15SOLUCION PROBLEMA 3.17.................................................................................................................................... 15SOLUCION PROBLEMA 3.18.................................................................................................................................... 15SOLUCION PROBLEMA 3.19.................................................................................................................................... 15SOLUCION PROBLEMA 3.20.................................................................................................................................... 17SOLUCION PROBLEMA 3.21.................................................................................................................................... 18SOLUCION PROBLEMA 3.22.................................................................................................................................... 18SOLUCION PROBLEMA 3.23.................................................................................................................................... 18SOLUCION PROBLEMA 3.24.................................................................................................................................... 19SOLUCION PROBLEMA 3.25.................................................................................................................................... 20SOLUCION PROBLEMA 3.26.................................................................................................................................... 21SOLUCION PROBLEMA 3.27.................................................................................................................................... 21SOLUCION PROBLEMA 3.28.................................................................................................................................... 22SOLUCION PROBLEMA 3.29.................................................................................................................................... 22SOLUCION PROBLEMA 3.30.................................................................................................................................... 23SOLUCION PROBLEMA 3.31.................................................................................................................................... 24SOLUCION PROBLEMA 3.32.................................................................................................................................... 25SOLUCION PROBLEMA 3.33.................................................................................................................................... 25SOLUCION PROBLEMA 3.34.................................................................................................................................... 25SOLUCION PROBLEMA 3.35.................................................................................................................................... 25SOLUCION PROBLEMA 3.36.................................................................................................................................... 26SOLUCION PROBLEMA 3.37.................................................................................................................................... 27SOLUCION PROBLEMA 3.38.................................................................................................................................... 28SOLUCION PROBLEMA 3.39.................................................................................................................................... 28SOLUCION PROBLEMA 3.40.................................................................................................................................... 29

Page 110: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

3

SOLUCION PROBLEMA 3.1DATOS

n Canal multiplexorn 2 unidades de disco =>vTD=500 Kbytes/segn 2 unidades de cinta =>vTC= 150 Kbytes/seg

En un canal multiplexor la velocidad máxima de transferencia viene dada por la suma de las velocidades decada uno de los dispositivos que controla. Luego

v v v v Kbytes segtmax Tcanal TD TC= = + = + =2 2 2 2 150 1300• • • (500) • ( ) ( / )

Page 111: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

4

SOLUCION PROBLEMA 3.2DATOS

n Canal selectorn 2 unidades de disco =>vTD=106 bytes/segn 2 unidades de cinta =>vTC= 105 bytes/segn tbus=10nseg

Se tiene una configuración como la que se muestra en la figura :

CanalSelector

Mp

E/S

E/S

D

D

C

CBus del sistema

En primer lugar se va a obtener la velocidad de transferencia del canal selector vTcanal, que viene dada por lavelocidad del dispositivo más rápido que controla, es decir, la velocidad de transferencia de una unidad dedisco.

v v bytes segTcanal TD= = 106 ( / )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre unperiférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

tv

seg nsegTcanalTcanal

= = = =−1 110

10 100066

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la transferenciade 1 byte entre un periférico y memoria principal Mp e s tbus=10 nseg. En la figura se representanesquemáticamente tTcanal y tbus.

tTcanal=1000 nseg

tbus= 10 nseg

Luego P es :

%1100•100010

100• ===Tcanal

bus

tt

P

Page 112: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

5

SOLUCION PROBLEMA 3.3DATOS

n frecuencia del computador es f=108 ciclos/segn 10 ciclos/instrucciónn 5 ciclos/paln DMA con estrategia de transferencia por ráfagas

En este tipo de estrategia el controlador del DMA toma el control del bus del sistema, una vez que la CPUha ejecutado una instrucción y no lo cede hasta que ha transferido todo el bloque de palabras. Nos pidencalcular la máxima velocidad de transferencia de datos vtmax (pal/seg). Dicha velocidad vendrá dada por elcociente entre la velocidad del computador y el número de ciclos que se necesitan para escribir o leer unapalabra.

vf ciclos seg

ciclos palpal segtmax = = =

( / )( / )

• /5

105

2 108

7

Page 113: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

6

SOLUCION PROBLEMA 3.4DATOS

n n= 13 líneas de dirección.n Memoria con 212 palabrasn Utiliza E/S localizada en memoria.

El computador utiliza E/S localizada en memoria, eso significa que el controlador de E/S y la memoriacomparten las líneas de control (lectura y escritura), por lo que se cumple el número total de direccionesposibles NTD estará formado por las direcciones de palabras de memoria MDM y las direcciones de palabrasen periféricos NDP:

DPDMD NNN +=

El número total de direcciones ND viene definido por el número n de líneas de dirección.

132=DN direcciones

El número de direcciones para acceder a palabras de memoria es

122=DMN direcciones

Luego el número de direcciones para acceder a palabras en los periféricos vendrá dado por :

121213 222 =−=−= DMDDP NNN direcciones

a) Nos dicen que cada periférico ocupa una dirección => R= 1 dirección/periférico. Luego el númeromáximo de periféricos NPmax es :

cos2)/(1

)(2 1212

perifériperdir

dirR

NN DP

Pmax ===

b) Nos dicen que cada periférico ocupa 8 direcciones => R= 8 dir/peri. Luego el número máximo deperiféricos NPmax es :

cos2)/(2

)(2 9

3

12

perifériperdir

dirR

NN DP

Pmax ===

Page 114: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

7

SOLUCION PROBLEMA 3.5DATOSn 4 líneas de interrupción PI3, PI2, PI1 y PI0

n Son enmascarables las líneas PI3, PI2, y PI1

n Una petición de interrupción PIj enmascara las líneas Pii con i<j e i≠0.n Se producen 4 peticiones de interrupción es este orden: PI3, PI2, PI0 y PI1

n Las tres últimas peticiones se producen mientras se está ejecutando el programa de servicio de PI3

De acuerdo con el enunciado la prioridad de las diferentes líneas es:

prior(PI0)> prior(PI3)> prior(PI2)> prior(PI1) Analicemos la secuencia de petición de interrupciones.

1) Llega PI3, se enmascaran PI2 y PI1, y se comienza a ejecutar el programa de servicio de lainterrupción PI3.

2) Llega PI2, como está enmascarada no se atiende.3) Llega PI0, como tiene una prioridad superior a PI3, se detiene la ejecución del programa de

servicio de PI3 y se ejecuta completo el programa de servicio de PI0.

4) Se continua con el programa de servicio de PI3. Llega PI1 como está enmascarada no se atiende.5) Terminado el programa de servicio de PI3 se ejecuta el programa de servicio de PI2, dejando

enmascarada PI1.6) Terminado el programa de servicio de PI2 se ejecuta el programa de servicio de PI1, ahora no hay

ninguna línea enmascarada.7) Se termina el programa de ejecución de PI1. Luego el orden de ejecución de las interrupciones es:

PI3, PI0, PI3, PI2 y PI1

Page 115: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

8

SOLUCION PROBLEMA 3.6DATOS

n frecuencia del reloj del computador es f=200·106 ciclos/segn 4 ciclos/instrucciónn 2 ciclos/instrucción no requiere el uso del busn DMA con estrategia de robo de ciclos

Para resolver este problema, primero hay que calcular la velocidad de ejecución vejec1

(instrucciones/segundo) cuando no hay DMA y a continuación calcular la velocidad de ejecución vejec2

(instrucciones/segundo) cuando hay DMA con estrategia de robo de ciclos. La velocidad de ejecuciónvejec se define como el número de instrucciones que el computador es capaz de ejecutar en un segundo.

1)Calcular vejec1 .

Ejecuciónnormal

1 ciclo

Instr1 Instr2 Instr3

Sino hay DMA el computador tarda en promedio 4 ciclos en ejecutar cada instrucción. Luego la velocidadde ejecución es:

vf ciclos seg

ciclos instx

instr segejec1

67

4200 10

45 10= = =

( / )( / )

• ( / )

2) Calcular vejec2 .

Ejecución conDMA por robode ciclos

1 ciclo

Instr1 Instr2DMA DMAInstr3

Ahora cada vez que se ejecuta una instrucción, a continuación se cede el bus del sistema al controlador deDMA para que realice la transferencia de una palabra. Por lo que ahora transcurren 5 ciclos entreinstrucción e instrucción. Luego la velocidad de ejecución es:

vf ciclos seg

ciclos instx

instr segejec1

67

5200 10

54 10= = =

( / )( / )

• ( / )

3) El número de instrucciones que dejen de ejecutarse por segundo viene dado por :

v v instr segejec ejec1 27 7 75 10 4 10 10− = − =• • ( / )

-------

Page 116: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

9

SOLUCION PROBLEMA 3.7DATOS

n frecuencia del reloj del computador es f=108 ciclos/segn 4 ciclos/instrucciónn 2 ciclos/instrucción no requiere el uso del busn 1 ciclo/palabra

I) Afirmación: Con DMA transparente v tmax=5·107 (pal/seg)

Ejecución conDMAtransparente

1 ciclo

Instr1 Instr2 Instr3

Se ha de recordar que en la estrategia de DMA transparente, el DMA se realiza en aquellas fases de laejecución de una instrucción en que la CPU no hace uso del bus. El enunciado del problema nos dice queen promedio el computador necesita 4 ciclos para ejecutar una instrucción y que sólo en dos de ellos norequiere el uso del bus. Además nos dicen que el controlador de DMA únicamente necesita de 1 ciclo paratransmitir una palabra. Luego el número de palabras que se transmiten por DMA en la ejecución de unainstrucción (R), vendría dado por:

Rciclos instrciclo pal

pal instr= =21

2( / )( / )

( / )

La velocidad de ejecución es:

vf ciclos seg

ciclos instinstr segejec = = =

( / )( / )

• ( / )4

104

25 108

6

La velocidad de transferencia máxima es:

v R v pal inst inst seg pal segtmax ejec= = ⋅ =• ( / ) • ( / ) • ( / )2 25 10 5 106 7

Luego la afirmación I es verdadera.

II)Con DMA por robo de ciclos vtmax=2·107 (pal/seg).

Ejecución conDMA por robode ciclos

1 ciclo

Instr1 Instr2 Instr3

La velocidad de ejecución es:

vf ciclos seg

ciclos instinstr segejec = = =

( / )( / )

• ( / )5

105

2 108

7

La velocidad de transferencia máxima, puesto que R=1pal/inst

v R v pal inst inst seg pal segtmax ejec= = ⋅ =• ( / ) • ( / ) • ( / )1 2 10 2 107 7

La afirmación II, es verdadera.

Page 117: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

10

SOLUCION PROBLEMA 3.8DATOS

n Canal multiplexorn 2 unidades de disco =>vTD=106 bytes/segn 5 unidades de cinta =>vTC= 2·105 bytes/segn tbus=100nseg

Se tiene una configuración como la que se muestra en la figura:

CanalMultiplexor

Mp

E/S

E/S

D

D

C

Bus del sistema

C

C

C

C

En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor vTcanal, que viene dadapor la suma de las velocidades de cada uno de los dispositivos que controla.

v v v bytes segTcanal TD TC= + = + ⋅ = ⋅2 5 2 10 5 2 10 3 106 5 6• • • • ( / )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entreun periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

tv

nsegTcanalTcanal

= =⋅

=1 1

3 101000

36

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la transferenciade 1 byte entre un periférico y memoria principal Mp e s tbus=100 nseg. En la figura se representanesquemáticamente tTcanal y tbus.

tTcanal=1000/3 nseg

tbus= 100 nseg

Luego P es :

%30100•

31000100

100• ===Tcanal

bus

tt

P

Page 118: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

11

SOLUCION PROBLEMA 3.9DATOS

n Controlador de E/S con buffer de capacidad C=256 Kb.n Buffer inicialmente vacio.n Operación de E/S con una impresora :

n Recibe datos por el bus del sistema a vin= 1 Mb/seg.n Transmite datos a la impresora a vout= 256 Kb/seg.n Recibe y transmite de forma continua simultáneamente.

Buffervin vout

De los datos del problema se deduce que el buffer recibe datos a una velocidad más elevada de lo quetransmite. Habrá que calcular la velocidad de llenado v, que será:

v v v bytes seg bytes seg bytes segin out= − = − = − =2 2 2 1 2 3 220 18 2 18 18( / ) ( / ) ( ) • • ( / )

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

tCv

bytesbytes seg

segllenado = = =2

3 20 33

18

18

( )• ( / )

.

SOLUCION PROBLEMA 3.10DATOS

n VP velocidad máxima de transferencia empleando E/S controlada por programa.n VI velocidad máxima de transferencia empleando E/S controlada con interrupciones.n VD velocidad máxima de transferencia empleando E/S controlada con DMA.

La relación que se cumple es : VD > VI >VPLa respuesta correcta es la B.

Page 119: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

12

SOLUCION PROBLEMA 3.12DATOS

n n= 32 líneas de dirección.n Memoria con 32 Mbn Utiliza E/S aislada de memoria.n R=16 direcciones/periférico

El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria disponende líneas de control (lectura y escritura) autónomas, por lo que el mapa de direcciones de palabras dememoria es independiente del mapa de direcciones de palabras en periféricos.

El número total de direcciones ND viene definido por el número n de líneas de dirección.

322=DN direcciones

El número de direcciones para acceder a palabras en los periféricos NDP será igual al número total dedirecciones disponibles:

322== DDP NN direcciones

Nos dicen que cada periférico ocupa 16 direcciones => R= 16 dir/peri. Luego el número máximo deperiféricos NPmax es :

cos2)/(2

)(2 28

4

32

perifériperdir

dirR

NN DP

Pmax ===

Page 120: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

13

SOLUCION PROBLEMA 3.13DATOS

n Frecuencia del reloj del computador es f=200·106 ciclos/segn 4 ciclos/instrucciónn 1 ciclo/instrucción no requiere el uso del busn 1 ciclo/palabra

• Si se realiza DMA por robo de ciclos:

Ejecución conDMA por robode ciclos

1 ciclo

Instr1 Instr2 Instr3

La velocidad de ejecución es:

)/(10•410•40510·200

)/(5)/( 76

6

seginstrinstciclossegciclosf

vejec ====

Puesto que el sistema utiliza 1 ciclo en transferir 1 palabra y como tras ejecutar una instrucción se cede 1ciclo para realizar DMA entonces el número de palabras que se transmiten tras ejecutar una instrucción esR=1pal/inst. Así la velocidad de transferencia máxima es:

)/(10•4)/(104•)/(1• 77max segpalseginstinstpalvRv eject =⋅==

• Si se realiza DMA transparente:

Ejecución con DMAtransparente

1 ciclo

Instr1 Instr2 Instr3

La velocidad de ejecución es:

)/(10•510•50410·200

)/(4)/( 76

6

seginstrinstciclossegciclosf

vejec ====

En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecución de unainstrucción en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio elcomputador necesita 4 ciclos para ejecutar una instrucción y que sólo en uno de ellos no requiere el usodel bus. Además nos dicen que el controlador de DMA únicamente necesita 1 ciclo para transmitir unapalabra. Luego el número de palabras R que se transmiten en la ejecución de una instrucción, vendría dadopor:

)/(1)/(1)/(1

instrpalpalcicloinstrciclos

R ==

La velocidad de transferencia máxima es:

)/(10•5)/(105•)/(1• 77max segpalseginstinstpalvRv eject =⋅==

De acuerdo con estos resultados las afirmaciones son: Afirmación I: FALSA Afirmación II: VERDADERA

Page 121: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

14

SOLUCION PROBLEMA 3.14DATOS

n Canal multiplexorn 3 unidades de disco =>vTD=5·106 bytes/segn 5 unidades de cinta => vTC= 105 bytes/segn tbus=50 nseg

En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor vTcanal, que viene dadapor la suma de las velocidades de cada uno de los dispositivos que controla.

)/(105.1510•510·5•3•5•3 656 segbytesvvv TCTDTcanal ⋅=+=+=

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entreun periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

nsegnsegv

tTcanal

Tcanal 5.645.15

100010·105.15

10105.15

1196

9

6 ==⋅

=⋅

== −

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la transferenciade 1 byte entre un periférico y memoria principal Mp e s tbus=50 nseg. En la figura se representanesquemáticamente tTcanal y tbus.

tTcanal=64.5 nseg

tbus= 50 nseg

Luego el porcentaje máximo de tiempo P que estaría ocupado el bus del sistema en una transferencia dedatos a través de este canal multiplexor sería :

%5.77100•5.64

50100• ===

Tcanal

bus

tt

P

SOLUCION PROBLEMA 3.15Afirmación I: Es falsa ya que la comprobación de la interrupción es por hardware (línea RI) y no porsoftware eso corresponde al tipo encuesta.Afirmación II: Es falsa, la CPU recibe el vector de interrupciones vint exclusivamente por el bus de datos.Afirmación III: Es falsa, se tratan de conceptos independientes, ya que se está hablando por un lado deidentificación de la interrupción I y por otro de niveles de interrupción I.

Luego la respuesta correcta es la D.

Page 122: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

15

SOLUCION PROBLEMA 3.16DATOS

n Canal multiplexorn 2 unidades de disco => vTD=106 bytes/segn 10 unidades de cinta => vTC= 103 bytes/seg

La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades decada uno de los dispositivos que controla.

)/(10·01.21010•210•1010•2•10•2 64636 segbytesvvv TCTDTcanal =+=+=+=

SOLUCION PROBLEMA 3.17

La solución a este problema se encuentra en el archivo probT3_17.pdf

SOLUCION PROBLEMA 3.18DATOSn 4 líneas de interrupción PI1, PI2, PI3 y PI4

n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1)n El sistema no permite anidamiento.n Se producen 4 peticiones de interrupción es este orden: PI3, PI1, PI4 y PI2

n Las tres últimas peticiones se producen mientras se está ejecutando el programa de servicio de PI3

Conviene darse cuenta de que el sistema no permite anidamiento, en consecuencia se trata de unsistema con un único nivel de interrupciones, de tal forma que cuando comienza a ejecutarse elprograma de gestión de una interrupción, éste se completará antes de atender a otra petición deinterrupción.

Analicemos la secuencia de petición de interrupciones :1) Llega PI3 y comienza a ejecutarse el programa de gestión de PI3.2) Llega PI1, continua ejecutándose el programa de gestión de PI3.3) Llega PI4, continua ejecutándose el programa de gestión de PI3.4) Llega PI2, continua ejecutándose el programa de gestión de PI3.5) Terminado el programa de gestión de PI3, se procede a ejecutar el programa de gestión de PI4

que es la interrupción recibida con mayor prioridad.6) Terminado el programa de gestión de PI4, se procede a ejecutar el programa de gestión de PI2

que es la interrupción recibida con mayor prioridad.7) Terminado el programa de gestión de PI1, se procede a ejecutar el programa de gestión de PI4

que es la interrupción recibida con mayor prioridad. Luego el orden de ejecución de las interrupciones es:

PI3, PI4, PI2 y PI1

Page 123: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

3 - 17

Page 124: Coleccion Problemas Etc II

Problemas de los exámenes del curso 97/98 13

Figura 99-3-1: Diagrama de la conexión del controlador de interrupciones a la UCP

6ROXFLyQ

Antes de contestar los apartados pedidos, conviene hacer un resumen de cómo ha de funcionar el controlador deinterrupciones 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áles la petición más prioritaria.

3) Cuando la UCP conceda la interrupción activando INTA, se informará al periférico cuya petición deinterrupción se a seleccionado en 2) que su petición va a ser atendida, mediante su línea de aceptaciónINTA i correspondiente.

Obsérvese que los puntos 1) y 2) no son intercambiables, es decir, se han de ejecutar necesariamente en eseorden. En caso contrario se podrían ocasionar situaciones anómalas. (Por ejemplo, si INTR2 e INTR3 están activaspero ambos niveles de interrupción están enmascarados, INTR no se debe activar. Pero se se genera INTR y luegose comprueba qué niveles están enmascarados se habría producido una petición de interrupción cuando deberíahaber 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, entoncesINTA j=1.

� Si INTA=1 e INTRj=1, pero existe un INTRk de mayor prioridad que también está activado, entoncesINTA j=0.

Page 125: Coleccion Problemas Etc II

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

b) El controlador de interrupciones posee un registro interno de máscara MASK cuyos bits individualesM3..M0 enmascaran selectivamente las líneas de petición de interrupción. (El contenido de este registro es escritopor 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ácilmentecon una puerta AND. El enmascaramiento de las cuatro líneas de petición será, por tanto, el que se muestra en laFigura 99-3-2.

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

c) En este apartado hay que seleccionar, a partir de las líneas de petición que ya han pasado por el mecanismode enmascaramiento INTR’i, la petición activa más prioritaria. Una posible solución consiste en utilizar uncodificador de prioridad seguido de un decodificador (Figura 99-3-3; obsérvese que ambos dispositivos tienen susentradas de habilitación H activadas).

INTA INTR 3 INTR 2 INTR 1 INTR 0 INTA 3 INTA 2 INTA 1 INTA 0

0 X X X X 0 0 0 0

1 1 X X X 1 0 0 0

1 0 1 X X 0 1 0 0

1 0 0 1 X 0 0 1 0

1 0 0 0 1 0 0 0 1

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

M3 M2 M1 M0

INTR0

INTR3

INTR1

INTR2

INTR’3

INTR’ 2

INTR’1

INTR’0

MASK

Page 126: Coleccion Problemas Etc II

Problemas de los exámenes del curso 97/98 15

Figura 99-3-3: Mecanismo de gestión de prioridades

El codificador de prioridad genera la codificación binaria de la línea INTR’j más prioritaria que está activa. Apartir 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íneasINTR’ i. Esto se recoge en la Tabla 99-3-2.

La salida A del codificador de prioridad indica que alguna de sus entradas está a 1. Es decir, cuando alguna delas líneas INTR’i esté a 1 significa que hay alguna petición no enmascarada activa, y que por tanto hay que activarla 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 deaceptación INTAi, y dado que sólo una de las líneas Ii puede estar activada en cada momento, la correspondiente ala petición no enmascarada de mayor prioridad, basta con hacer la Y-lógica entre Ii e INTA, según la Figura99-3-4.

INTR’ 3 INTR’ 2 INTR’ 1 INTR’ 0 I3 I2 I1 I0

1 X X X 1 0 0 0

0 1 X X 0 1 0 0

0 0 1 X 0 0 1 0

0 0 0 1 0 0 0 1

Tabla 99-3-2: Tabla de verdad del mecanismo de gestión de prioridades (X representa 0 ó 1, indistintamente)

Codificadorde prioridad

3

2

1

0

1

0

1

0

3

2

1

0

H HA

INTR’1

INTR’0

INTR’3

INTR’2

I1

I3

I0

I2

INTR

1 1

Decodificador

Page 127: Coleccion Problemas Etc II

16 Estructura y Tecnología de Computadores II

Figura 99-3-4: Generación de las señales de aceptación INTAi

e) Para construir el controlador de interrupciones solicitado tan solo hay que encadenar los módulosimplementados en los apartados b), c) y d), según se muestra en la Figura 99-3-5.

Figura 99-3-5: Controlador de interrupciones

INTA

I3

I2

I1

I0

INTA1

INTA0

INTA3

INTA2

Prio

ridad

es (

c)

Con

cesi

ón (

d)

UCP

CONTROLADOR DE INTERRUPCIONES

INTR3

INTR2

INTR1

INTR0

INTR’3

INTR’2

INTR’1

INTR’0

I2

I3

I1

I0

INTA3

INTA2

INTA1

INTA0

INTA

INTR

{De

los

per

iféric

os

{

A lo

s pe

rifér

icos

Enm

asca

ram

ient

o (b

)

Page 128: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

16

SOLUCION PROBLEMA 3.19DATOS

n Canal multiplexorn 2 unidades de disco => vTD=106 bytes/segn 10 unidades de cinta => vTC= 103 bytes/segn tbus=100 nseg

La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades decada uno de los dispositivos que controla.

)/(10·01.21010•210•1010•2•10•2 64636 segbytesvvv TCTDTcanal =+=+=+=La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entreun periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

nsegv

tTcanal

Tcanal 5.49710·1001.2

101001.2

1196

9

6 =⋅

=⋅

== −

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la transferenciade 1 byte entre un periférico y memoria principal Mp es tbus=100 nseg. En la Figura se representanesquemáticamente tTcanal y tbus.

tTcanal=497.5 nseg

tbus= 100 nseg

Luego el porcentaje máximo de tiempo P que estaría ocupado el bus del sistema en una transferencia dedatos a través de este canal multiplexor sería :

%1.20100•5.497

100100• ===

Tcanal

bus

tt

P

Page 129: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

17

SOLUCION PROBLEMA 3.20DATOSn 5 líneas de interrupción PI4, PI3, PI2, PI1, PI0

n Enmascarables mediante 5 bits del Registro de estado de la CPU.n Una petición PIj desactiva las líneas PIi con i <jn prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1) > prior(PI0)n Interrupciones anidables. Sistema multinivel.n Se producen 4 peticiones de interrupción es este orden: PI2, PI4, PI3, PI1

n Antes de finalizar PI2, llegan simultáneamente (PI4, PI3, PI1)

Analicemos la secuencia de petición de interrupciones :

1) Llega PI2 y comienza a ejecutarse el programa de servicio de PI2.2) Llegan (PI4, PI3, PI1) simultáneamente, puesto que PI4 es la interrupción más prioritaria se

comienza a ejecuta el programa de servicio de PI4 hasta completarlo. Quedan pendientes deatender PI3, PI2 y PI1

3) Finalizado el programa de servicio de PI4, comienza a ejecutar el programa de servicio dePI3, que es la interrupción pendiente de mayor prioridad, hasta completarlo. Quedanpendientes de atender PI2 y PI1.

4) Finalizado el programa de servicio de PI3, continúa con la ejecución del programa deservicio de PI2, que es la interrupción pendiente de mayor prioridad, justo en el punto enque fue interrumpido en el paso 2) hasta completarlo. Queda pendiente de atender PI1.

5) Se atiende a PI1

Luego el orden en que se tratan las interrupciones es:

PI2, PI4, PI3, PI2, PI1

Page 130: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

18

SOLUCION PROBLEMA 3.21DATOS

n Canal selectorn 3 unidades de disco => vTD=5·106 bytes/segn 5 unidades de cinta => vTC= 105 bytes/segn tbus=50 nseg

La velocidad de transferencia de un canal selector vTcanal es:

)/(10•5},max{ 6 segbytesvvv TCTDTcanal ==

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entreun periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

nsegnsegv

tTcanal

Tcanal 2005

100010·105

1010511

96

9

6 ==⋅

=⋅

== −

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la transferenciade 1 byte entre un periférico y memoria principal Mp e s tbus=50 nseg. En la Figura se representanesquemáticamente tTcanal y tbus.

tTcanal=200 nseg

tbus= 200 nseg

Luego el porcentaje máximo de tiempo P que estaría ocupado el bus del sistema en una transferencia dedatos a través de este canal multiplexor sería :

%25100•20050

100• ===Tcanal

bus

tt

P

SOLUCION PROBLEMA 3.22DATOS

n El mecanismo de la figura es E/S localizada en memoria.

La E/S localizada en memoria se caracteriza porque el espacio de direcciones disponible estácompartido por la memoria y por los elementos periféricos. De tal forma que dada una dirección se puedeacceder a una posición de memoria o un periférico. Luego en consecuencia las afirmaciones I y II sonverdaderas.

Page 131: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

19

SOLUCION PROBLEMA 3.23DATOSn 4 líneas de interrupción PI1, PI2, PI3 y PI4

n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1)n El sistema permite anidamiento.n Se producen 4 peticiones de interrupción es este orden: PI3, PI1, PI4 y PI2

n Las tres últimas peticiones se producen mientras se está ejecutando el programa de servicio de PI3

Conviene darse cuenta de que el sistema permite anidamiento, en consecuencia se trata de unsistema multinivel de interrupciones, de tal forma que cuando comienza a ejecutarse el programa degestión de una interrupción, si llega una interrupción de prioridad superior pasa a ejecutar la rutina deservicio de dicha interrupción.

Analicemos la secuencia de petición de interrupciones :1) Está ejecutando el programa de gestión de PI3.2) Llega PI1, puesto que prio(PI1)<prio(PI3) ignora PI1 colocándola en una cola a la espera de ser

atendida, continua con el programa de gestión de PI3.3) Llega PI4, puesto que prio(PI4)>prio(PI3) detiene la ejecución del programa de gestión de PI3 y

comienza a ejecutar el programa de servicio de PI4.4) Llega PI2, puesto que prio(PI2)<prio(PI4) ignora PI2 colocándola en una cola a la espera de ser

atendida, continua ejecutando el programa de gestión de PI4,5) Terminado el programa de gestión de PI4, se procede a continuar con el programa de gestión

de PI3 hasta su finalización.6) Terminado el programa de gestión de PI3, se procede a ejecutar el programa de gestión de PI2

que es la interrupción colocada en la cola de espera con mayor prioridad.7) Terminado el programa de gestión de PI2, se procede a ejecutar el programa de gestión de PI1.

Luego el orden de ejecución de las interrupciones es:

PI3, PI4, PI3, PI2, PI1

SOLUCION PROBLEMA 3.24DATOS

n Canal multiplexorn 2 unidades de disco => vTD=106 bytes/segn 10 unidades de cinta => vTC= 103 bytes/seg

La velocidad de transferencia del canal multiplexor vTcanal viene dada por la suma de las velocidades decada uno de los dispositivos que controla.

)/(10·01.21010•210•1010•2•10•2 64636 segbytesvvv TCTDTcanal =+=+=+=

Page 132: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

20

SOLUCION PROBLEMA 3.25DATOS

n Canal multiplexorn 5 unidades de disco =>vTD=106 bytes/segn 10 unidades de cinta =>vTC= 2·105 bytes/segn tbus=200 nseg

En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor vTcanal, que viene dadapor la suma de las velocidades de cada uno de los dispositivos que controla.

v v v bytes segTcanal TD TC= + = + ⋅ = ⋅5 10 5 10 10 2 10 7 106 5 6• • • • ( / )

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entre unperiférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

tv

nsegTcanalTcanal

= =⋅

= =1 1

7 101000

714286 .

El enunciado del problema nos dice que el tiempo de utilización del bus del sistema tbus en la transferenciade 1 byte entre un periférico y memoria principal Mp e s tbus=100 nseg. En la figura se representanesquemáticamente tTcanal y tbus.

tTcanal=142.8 nseg

tbus= 200 nseg

De la figura se deduce que se tiene un sistema cuyo canal puede transmitir un byte entre uno de susperiféricos y memoria, más rápido de lo que ese byte tarda en transmitirse por el bus del sistema. El tiempode transferencia viene limitado por el tiempo de utilización del bus del sistema , ya que tbus>tTcanal. Por lotanto el tiempo de transferencia es :

t tT bus=

Luego P es :

Ptt

tt

bus

T

bus

bus

= = = =• • • %100 100200200

100 100

Es decir, el bus estaría saturado.

Page 133: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

21

SOLUCION PROBLEMA 3.26DATOS

n Módulo de gestión de prioridadesn Módulo de enmascaramiento

El orden de colocación de los módulos es: Primero el módulo de enmascaramiento y a continuación el módulo de gestión de prioridades. La razón de esta colocación es obvia, ya que si se colocasen al revés podría darse la circunstancia deque ante una petición múltiple de interrupciones el módulo de gestión de prioridades marcase como másprioritaria una interrupción que al pasar por el módulo de enmascaramiento resultase estar enmascarada.Con lo que no se atendería ninguna.

SOLUCION PROBLEMA 3.27DATOS

n n= 13 líneas de dirección.n Memoria con 3x211 palabrasn Utiliza E/S localizada en memoria.n R=16 direcciones/periférico

El computador utiliza E/S localizada en memoria, eso significa que el controlador de E/S y la memoriacomparten las líneas de control (lectura y escritura), por lo que se cumple el número total de direccionesposibles NTD estará formado por las direcciones de palabras de memoria MDM y las direcciones de palabrasen periféricos NDP:

DPDMD NNN +=

El número total de direcciones ND viene definido por el número n de líneas de dirección.

132=DN direcciones

El número de direcciones para acceder a palabras de memoria es

1123⋅=DMN direcciones

Luego el número de direcciones para acceder a palabras en los periféricos vendrá dado por :

11111113 22)34(232 =⋅−=⋅−=−= DMDDP NNN direcciones

Nos dicen que cada periférico ocupa una dirección => R= 16 dirección/periférico. Luego el número máximode periféricos NPmax es :

cos2)/(2

)(2 7

4

11

perifériperdir

dirR

NN DP

Pmax ===

Page 134: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

22

SOLUCION PROBLEMA 3.28DATOS

n Canal multiplexorn 5 unidades de disco =>vTD=106 bytes/segn 10 unidades de cinta =>vTC= 2·105 bytes/segn tbus=200 nseg

Este problema es completamente análogo al problema 3.25, salvo que nos piden la velocidad detransferencia agregada a este sistema. Puesto que el sistema está saturado P=100%. La velocidad máximade transferencia viene dada por la inversa del tiempo de utilización del bus:

)/(1052

10200

11),max(

1 67

max segbytesnseg

bytettt

vbusTcanalbus

T ⋅=====

SOLUCION PROBLEMA 3.29DATOS

n Estrategia DMA transparenten Frecuencia del reloj del computador es f=200·106 ciclos/segn 4 ciclos/instrucciónn 1 ciclo/instrucción no requiere el uso del busn 1 ciclo/palabra

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

Ejecución con DMAtransparente

1 ciclo

Instr1 Instr2 Instr3

La estrategia de DMA transparente es la única que no produce ninguna reducción o interferencia en lavelocidad de ejecución de la CPU, ya que el DMA se realiza justamente en aquellos fases de la ejecuciónde una instrucción en que la CPU no requiere hacer uso del bus del sistema.

Page 135: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

23

SOLUCION PROBLEMA 3.30DATOS

n Frecuencia del reloj del computador es f=200·106 ciclos/segn 4 ciclos/instrucciónn 2 ciclos/instrucción consecutivos no requiere el uso del busn 2 ciclos/palabran Se desea mover un bloque de datos compuesto de 100·106 palabras

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

Ejecución con DMAtransparente

1 ciclo

Instr1 Instr2 Instr3

La velocidad de ejecución de la CPU es:

)/(10•510•50410·200

)/(4)/( 76

6

seginstrinstciclossegciclosf

vejec ====

En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecución de unainstrucción en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio elcomputador necesita 4 ciclos para ejecutar una instrucción y que sólo en dos de ellos consecutivos norequiere el uso del bus. Además nos dicen que el controlador de DMA necesita 2 ciclos para transmitir unapalabra. Luego el número de palabras R que se transmiten en la ejecución de una instrucción, vendría dadopor:

)/(1)/(2)/(2

instrpalpalciclos

instrciclosR ==

La velocidad de transferencia máxima es:

)/(10•5)/(105•)/(1• 77max segpalseginstinstpalvRv eject =⋅==

Luego, el tiempo que tardará el controlador de DMA en mover un bloque de datos de N=10·107 palabrases:

segsegpalv

palNt

t

210·510·10

)/()(

7

7

max

===

Page 136: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

24

SOLUCION PROBLEMA 3.31DATOS

n Periféricos conectados: 2 discos duros, 1 CDROM, 1 impresora.n PI1 petición de interrupción disco duro.n PI2 petición de interrupción CDROM.n PI3 petición de interrupción impresora.n Interrupciones anidables con prio(PI1) > prio(PI2) > prio(PI3)n Tiempo de servicio de las rutinas de servicio en unidades de tiempo (u.t)

• ts1=10 u.t (disco duro)• ts2=30 u.t (CDROM)• ts3=15 u.t (impresora)

n En t=0 u.t petición de interrupción del primer disco duro.n En t=3 u.t petición de interrupción de la impresora.n En t=5 u.t petición de interrupción del CDROM.n En t=14 u.t petición de interrupción del segundo disco duro.

Conviene darse cuenta de que el sistema permite anidamiento, en consecuencia se trata de un sistemamultinivel de interrupciones, de tal forma que cuando comienza a ejecutarse el programa de gestión de unainterrupción, si llega una interrupción de prioridad superior pasa a ejecutar la rutina de servicio de dichainterrupción.

u.t.0 10 20 30 40 50

5

PI1 PI3

3

PI2 PI1

14 24

RutinaDisco Duro 1

Rutina CDROM

RutinaDisco Duro 2

Rutina CDROM

Figura 3.31.1 De acuerdo con el enunciado la forma de atender a las interrupciones (ver Figura 3.31.1) es lasiguiente.

1) En t=0 u.t comienza a ejecutar la rutina de servicio del primer disco duro, que requiere un tiempototal de ejecución de t s1=10 u.t.

2) En t=3 u.t la CPU está ejecutando todavía la rutina de servicio del primer disco duro llega lapetición de interrupción de la impresora PI3. Puesto que prio(PI3)<prio(PI1) la ignora y la colocaen 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 lapetición de interrupción del CD-ROM PI2. Puesto que prio(PI2)<prio(PI1) la ignora y la coloca enuna 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 aejecutar la rutina de servicio del CD-ROM, que es la interrupción en cola de espera de mayorprioridad. 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 deinterrupción del segundo disco duro PI1. Puesto que prio(PI1)>prio(PI2) detiene la ejecución dela rutina de servicio del CDROM, cuando aún le restan t s2-4= 26 u.t para terminarla, y comienza a

Page 137: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

25

ejecutar la rutina de servicio del segundo disco duro que requiere un tiempo total en seratendida de t s1= 10 u.t

6) En t=24 u.t termina la ejecución de la rutina de servicio del segundo disco duro. Retoma la CPUejecució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 deservicio de la impresora que se encontraba en la cola de espera, que requiere un tiempo total dets3=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 larutina de servicio de la interrupción del CDROM. Otra forma de calcular este valor es darse cuenta de quees la suma de los tiempos 2·t s1+ts2=2·10+30=50 u.t correspondientes a ejecutar tres rutinas de servicio : ladel primer disco, la del segundo disco y la del CDROM.

SOLUCION PROBLEMA 3.32

AFIRMACION I : Verdadera. Efectivamente el controlador de DMA necesita tener el control del bus delsistema para la realización de operaciones de transmisión de datos.

AFIRMACION II: Falsa. De hecho la estrategia de transmisión por ráfagas es la que produce una mayorinterferencia con la CPU, es decir, una mayor reducción de la velocidad de ejecución de la CPU.

SOLUCION PROBLEMA 3.33En sistemas provistos de PE/S, la CPU es se encarga de iniciar la transferencia de E/S, y el PE/S ejecuta lasinstrucciones de E/S que se encuentran almacenadas en memoria principal.

AFIRMACION I : Falsa.

AFIRMACION II: Falsa.

SOLUCION PROBLEMA 3.34

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

SOLUCION PROBLEMA 3.35La solución a este problema se encuentra en el archivo probT3_35.pdf

Page 138: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

3 - 35

Page 139: Coleccion Problemas Etc II

Problemas de los exámenes del curso 2000/2001 13

6ROXFLyQ

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

� Si INTA = 0, no se activa ninguna de las líneas de aceptación, aunque haya peticiones pendientes.

� Si INTA = 1, se activa la línea de aceptación de la petición INTRi más prioritaria.

b) En este apartado hay que seleccionar, a partir de las líneas INTRi la petición más prioritaria. Una posiblesolución consiste en utilizar un codificador de prioridad seguido de un decodificador. En la Figura 2 se muestra eldiseño propuesto, donde se puede observar que tanto el codificador de prioridad como el decodificador tienen sus

ENTRADAS SALIDAS

INTA INTR 7 INTR 6 INTR 5 INTR 4 INTR 3 INTR 2 INTR 1 INTR 0 INTA 7 INTA 6 INTA 5 INTA 4 INTA 3 INTA 2 INTA 1 INTA 0

0 X X X X X X X X 0 0 0 0 0 0 0 0

1 1 X X X X X X X 1 0 0 0 0 0 0 0

1 0 1 X X X X X X 0 1 0 0 0 0 0 0

1 0 0 1 X X X X X 0 0 1 0 0 0 0 0

1 0 0 0 1 X X X X 0 0 0 1 0 0 0 0

1 0 0 0 0 1 X X X 0 0 0 0 1 0 0 0

1 0 0 0 0 0 1 X X 0 0 0 0 0 1 0 0

1 0 0 0 0 0 0 1 X 0 0 0 0 0 0 1 0

1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

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

UCP Controlador

de interrupciones

INTR

INTA

INTR0

INTR7

INTR1

INTA0 INTA1

INTA7

Page 140: Coleccion Problemas Etc II

14 Estructura y Tecnología de Computadores II

entradas de habilitación H activadas.

Figura 2: Mecanismo de gestión de prioridades

El codificador de prioridad genera la codificación binaria de la línea INTRi más prioritaria. A partir de aquí,por medio del decodificador se consigue que únicamente se active la línea Ii, y que las restantes salidas Ij, menosprioritarias, se encuentren a cero, independientemente de cómo se encuentren las correspondientes líneas INTRj.Esto se recoge en la Tabla 4.

INTR 7 INTR 6 INTR 5 INTR 4 INTR 3 INTR 2 INTR 1 INTR 0 INTR I 7 I6 I5 I4 I3 I2 I1 I0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 X X X X X X X 1 1 0 0 0 0 0 0 0

0 1 X X X X X X 1 0 1 0 0 0 0 0 0

0 0 1 X X X X X 1 0 0 1 0 0 0 0 0

0 0 0 1 X X X X 1 0 0 0 1 0 0 0 0

0 0 0 0 1 X X X 1 0 0 0 0 1 0 0 0

0 0 0 0 0 1 X X 1 0 0 0 0 0 1 0 0

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

2

1

0

7

6

5

4

3

2

1

0

2

1

0

7

6

5

4

3

2

1

0

Codificador deprioridad Decodificador

H A H

1 1

INTR7

INTR5

INTR2

INTR1

INTR6

INTR4

INTR3

INTR0

I7

I6

I5

I4

I3

I2

I1

I0

INTR

Page 141: Coleccion Problemas Etc II

Problemas de los exámenes del curso 2000/2001 15

Cuando alguna de las líneas INTRi esté a 1 significa que hay alguna petición de interrupción activa y que, portanto, hay que activar la línea INTR conectada a la UCP para transmitir la petición. Para esto se utiliza la salida Adel codificador de prioridad que se activa cuando alguna de sus entradas está a 1. El comportamiento de esta línease 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 tieneque activar en ese instante la línea de aceptación INTAi correspondiente al dispositivo más prioritario que tengapendiente una petición. Esta información se generó en el apartado anterior mediante las salidas Ii. Entonces, paragenerar 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).

Figura 3: Generación de las señales de aceptación INTAi

Para construir ahora el controlador de interrupciones solicitado tan solo hay que encadenar los módulosimplementados en el apartado B (ver Figura 2) con el de la Figura 3, tal y como muestra la Figura 4.

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

INTR 7 INTR 6 INTR 5 INTR 4 INTR 3 INTR 2 INTR 1 INTR 0 INTR I 7 I6 I5 I4 I3 I2 I1 I0

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

INTA

I4

I2

I1

I0

INTA1

INTA0

INTA6

INTA2

I3

I6

I5

I7

INTA5

INTA4

INTA3

INTA7

Page 142: Coleccion Problemas Etc II

16 Estructura y Tecnología de Computadores II

Figura 4: Controlador de interrupciones solicitado en el problema

Otra posible solución consiste en conectar la salida INTA de la UCP a la entrada de habilitación H deldecodificador de la Figura 2 de la página 14. De esta manera, las salidas del decodificador son ahora las señalesINTAi, tal como se muestra en la Figura 5.

INTR7

INTR5

INTR2

INTR1

INTR6

INTR4

INTR3

INTR0

I7

I5

I2

I1

I6

I4

I3

I0

Módulo degestión deprioridades(Figura 2)

Módulo deaceptación(Figura 3)

UCP

INTA7

INTA5

INTA2

INTA1

INTA6

INTA4

INTA3

INTA0

INTR

INTA

Controlador deInterrupciones

7

6

5

4

3

2

1

0

7 6 5 4 3 2 1 0

Page 143: Coleccion Problemas Etc II

Problemas de los exámenes del curso 2000/2001 17

Figura 5: Diseño alternativo

Figura 6: Representación del módulo controlador de interrupciones

d) En este apartado se va a representar el controlador de interrupciones como el módulo representado en laFigura 6. La forma de conectar dos de estos módulos para poder atender las peticiones de 15 dispositivos externosse muestra en la Figura 7. Denominando CI1 al controlador de interrupciones 1 y CI2 al controlador deinterrupciones 2, el diseño tiene las siguientes características:

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

2

1

0

7

6

5

4

3

2

1

0

2

1

0

7

6

5

4

3

2

1

0

Codificador deprioridad Decodificador

H A H

1

INTR7

INTR5

INTR2

INTR1

INTR6

INTR4

INTR3

INTR0

INTA7

INTA6

INTA5

INTA4

INTA3

INTA2

INTA1

INTA0

INTRINTA

INTA7

INTA5

INTA2

INTA1

INTA6

INTA4

INTA3

INTA0

C o n tro lado rde

In terrupc iones

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

INTAINTRINTR7

INTR5

INTR2

INTR1

INTR6

INTR4

INTR3

INTR0

Page 144: Coleccion Problemas Etc II

18 Estructura y Tecnología de Computadores II

� La salida de petición de interrupción INTR del CI2 se ha conectado con la entrada INTR0 del CI1, y la salidade aceptación INTA0 del CI1 se ha conectado con la entrada INTA del CI2. De esta forma, las peticionesINTR7 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 paraatender a cualquier número arbitrario de peticiones.

Figura 7: Controlador de interrupciones de 15 entradas

Nota importante:

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

INTR14

INTR12

INTR9

INTR8

INTR13

INTR11

INTR10

UCP

INTA 7

INTA 5

INTA 2

INTA 1

INTA 6

INTA 4

INTA 3

INTA 0

INTR INTA

C on tro lado rde

In terrupc iones

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

INTAINTRINTA14

INTA12

INTA9

INTA8

INTA13

INTA11

INTA10

C o n tro lado rde

In terrupc iones

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

INTAINTRINTR7

INTR5

INTR2

INTR1

INTR6

INTR4

INTR3

INTR0

1

2

Page 145: Coleccion Problemas Etc II

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 deprioridades 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 laspeticiones INTR7, INTR6 e INTR5, y la UCP ha concedido la interrupción mediante la activación de la línea deconcesión INTA. Al ser la más prioritaria, la petición 7 debe ser atendida; efectivamente, el circuito propuestogenera 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 ados dispositivos diferentes, lo que es una situación errónea que puede ocasionar graves conflictos en elfuncionamiento del computador.

Es fácil encontrar otras muchas situaciones en las que este dispositivo concede la interrución a variosdispositivos simultáneamente. Se trata, por tanto, de una propuesta de solución no válida.

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

INTA7

INTA6

INTA5

INTA0

INTR7

INTR6

INTR5

INTR0

INTA

1

1

1

1

1

0

1

Page 146: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

26

SOLUCION PROBLEMA 3.36DATOS

n Si CPU dispone en exclusiva del busn Las instrucciones emplean 3 ciclos de reloj en ser ejecutadas.n En 1 de esos ciclos, el segundo, no requiere el acceso al bus.

n El controlador de DMA tarda dos ciclos de reloj consecutivos en transmitir una palabra.

AFIRMACION I : Es verdadera, ya que en la estrategia de DMA por ráfagas el controlador de DMA haceuso del bus cuando se ha finalizado la ejecución de una instrucción y no lo libera hasta haber finalizado deenviar todas las palabras.

AFIRMACION II: Es falsa., en la estrategia de DMA transparente, el controlador de DMA hace uso delbus en aquellos ciclos durante la ejecución de una instrucción en que la CPU no necesita utilizarlo. Puestoque el controlador de DMA requiere dos ciclos consecutivos para enviar una palabra y por otra parte laCPU únicamente no utiliza el bus, en el segundo de los tres que requiere para ejecutar una instrucción (verFigura), nunca hay dos ciclos consecutivos en que el bus este libre y por lo tanto no se puede implementarel DMA con esta estrategia.

1 ciclo

Instr1 Instr2 Instr3

Page 147: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

27

SOLUCION PROBLEMA 3.37DATOS

n Canal multiplexorn 5 unidades de disco =>vTD=106 bytes/segn 5 unidades de cinta => vTC= 105 bytes/segn tbus=50 nseg

En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor vTcanal, que viene dadapor la suma de las velocidades de cada uno de los dispositivos que controla.

)/(105.510•510•5•5•5 656 segbytesvvv TCTDTcanal ⋅=+=+=

La velocidad de transferencia del canal, vTcanal, indica el número de bytes que se pueden transmitir entreun periférico y la memoria principal en un segundo. A partir de vTcanal se puede obtener el tiempo necesariopara transmitir un byte entre un periférico y Mp.

nsegnsegv

tTcanal

Tcanal 81.1815.5

100010·105.5

10105.5

1196

9

6 ==⋅

=⋅

== −

La velocidad máxima de transferencia agregada a este sistema es:

)/(10·5.51

),max(1 6

max segpalvttt

v TcanalTcanalTcanalbus

T ====

Page 148: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

28

SOLUCION PROBLEMA 3.38DATOS

n n= 24 líneas de dirección.n Memoria con 220 palabrasn Utiliza E/S aislada de memoria.n R=1 dirección/periférico

El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria disponende líneas de control (lectura y escritura) autónomas, por lo que el mapa de direcciones de palabras dememoria es independiente del mapa de direcciones de palabras en periféricos.

El número total de direcciones ND viene definido por el número n de líneas de dirección.

2422 == nDN direcciones

El número de direcciones para acceder a palabras en los periféricos NDP será igual al número total dedirecciones disponibles:

242== DDP NN direcciones

Nos dicen que cada periférico ocupa 1 dirección => R= 1 dirección/periférico. Luego el número máximo deperiféricos NPmax es :

sperifericoperiféricodirección

sdireccioneR

NN DP

P24

24

max 2)/(1

)(2===

SOLUCION PROBLEMA 3.39

Afirmación A: VERDADERA. Efectivamente un PE/S de tipo canal selector controla múltiples dispositivosde alta velocidad.

Afirmación B: VERDADERA. Efectivamente un PE/S de tipo canal multiplexor puede controlar de formasimultánea operaciones de E/S con múltiples dispositivos.

Afirmación B: VERDADERA. En E/S controlada por programa la CPU realiza entre otras operaciones, lacomprobación del estado del periférico.

Afirmación D: FALSA. Las afirmaciones A, B y C son verdaderas.

Page 149: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

29

SOLUCION PROBLEMA 3.40DATOS

n E/S controlada por programa.n El dispositivo de E/S tarda 6 mseg en tener el dato solicitado.→ t1=6 msegn Se supone que:n - El computador sólo se dedica a E/S.n - El bucle de espera se implementa con 1 instrucción.→NBE=1 instrn - La lectura de un dato y la solicitud del siguiente dato por la CPU requiere 10instrucciones.→N2=10 instruccionesn - Cada instrucción de la CPU se ejecuta en t I=200 µseg.

La E/S controlada por programa se puede considerar formada por tres etapas, tal y como se como semuestra en la siguiente figura:

Bucle de espera

Lectura de un dato

Petición del siguientedato

t1 (seg)

t2 (seg)

T (seg)

Tiempos de ejecución Número deInstrucciones empleadas

N1 (instr )

N2 (instr )

N (instr )

El tiempo total T que se tarda en ejecutar una E/S controlada por programa, será la suma del tiempo t1 quepermanece la CPU en el bucle de espera y del tiempo t2 que emplea la CPU en leer un dato y solicitar elsiguiente:

21 ttT +=

Del enunciado se sabe que t 1=6 ms, además se sabe el número de instrucciones que emplea el programa enleer un dato y pedir el siguiente es N2=10 instr. Como también se conoce el tiempo que se emplea enejecutar una instrucción tI, entonces t 2 se puede calcular de la siguiente forma:

mseginstrseginstrinstrsegtinstrNsegt I 2)/(200)·(10)/()·()( 22 === µ

Por lo tanto

msegT 862 =+=

Luego el porcentaje de tiempo P que dedica la CPU al bucle de espera es:

%75100·86

100·1 ===Tt

P

Page 150: Coleccion Problemas Etc II

TEMA 3: UNIDAD DE ENTRADA SALIDA. Solución de los problemas.

30

Comentarios

Aunque en el problema no lo piden con los datos de que disponemos y los que hemos calculado tambiénsería posible calcular los siguientes:

n Número total de instrucciones NT que emplea el programa de E/S:

instrinstrsegt

segTinstrN

IT 40

10·20010·8

)/()(

)( 6

3

=== −

n Número total de instrucciones N1 que ejecuta el programa de E/S en el bucle de espera

instrinstrsegt

segtinstrN

I

3010·200

10·6)/(

)()( 6

31

1 === −

También puede calcularse como:

instrNNN T 30104021 =−=−=

n De acuerdo con el enunciado ejecutar una vez el bucle de espera requiere de NBE=1 instr, luego elnúmero R de veces que se ejecuta el bucle de espera es:

vecesvezinstrN

instrNvecesR

BE

30130

)/()(

)( 1 ===

Page 151: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

3 - 41

Page 152: Coleccion Problemas Etc II

1 Estructura y Tecnología de Computadores II

Problema 3.41:

Una CPU dispone de una única línea de petición de interrupción (INTR) y de una única línea deaceptación de interrupción. Diseñe para esa CPU un controlador de interrupciones, de manera que sepuedan atender interrupciones generadas por 3 dispositivos externos mediante líneas de petición deinterrupción (ver la Figura adjunta). Cuando se reciben peticiones de interrupción simultáneas, sólo sereconoce la más prioritaria. La máxima prioridad la tiene INTR0 y la mínima INTR2. Además, cada unade estas líneas de interrupción se ha de poder enmascarar de manera individual mediante un registro demáscara (M2M1M0) del controlador de interrupciones (el mecanismo de acceso de la CPU a este registrono es relevante para este problema). Cuando M j = 0, la correspondiente señal INTR j está enmascarada yno debe ser atendida. Cuando la CPU activa su línea de aceptación, INTA, se debe informar al periféricocorrespondiente, de manera individual, que su petición ha sido aceptada, mediante las líneas deaceptación INTA2 … INTA0.

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

B) Obtenga la función lógica de las tres líneas INTA2, INTA1, INTA0 en función de las líneas INTR0 , INTR1 ,

INTR2 , INTA y de los bits del registro de máscara.

C) Diseñe el circuito lógico del controlador de interrupciones, usando para ello puertas AND, OR y NOT.

D) Explique razonadamente cómo podrían conectarse varios controladores de interrupciones de 3 entradas,como el diseñado en el apartado anterior, para poder atender las peticiones de interrupción de 6 periféricosexternos.

012

012

CONTROLADOR DE INTERRUPCIONES

INTR

INTA

0INTR1INTR2INTR

0INTA1INTA2INTA

CPU

INTR

INTA

[ ]2 1 0M M MMáscara:

012

012

CONTROLADOR DE INTERRUPCIONES

INTR

INTA

0INTR1INTR2INTR

0INTA1INTA2INTA

CPU

INTR

INTA

[ ]2 1 0M M MMáscara:

Page 153: Coleccion Problemas Etc II

Examen junio 2003 2

Solución

Este problema es similar a los problemas 3-9 y 3-13 del texto “Problemas de Estructura y Tecnología deComputadores”, 2ª edición. Se recomienda consultar la solución a estos dos problemas con el fin de facilitar lacomprensió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 quetodas las líneas de petición están enmascaradas. Por este motivo, es preciso tener en cuenta el enmascaramiento delas 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 devariables auxiliares, INTR’ i, las cuales representan tanto a la señal de petición de interrupción como a sumecanismo 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 unapetición de interrupción por una línea no enmascarada, se genera una petición a la CPU.

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

A continuación, se sustituye en la Tabla 1 cada conjunto de valores de INTR’0 , INTR’1 e INTR’2 por las

combinaciones de valores de M0, M1, M2, INTR0, INTR1 e INTR2 que lo producen. Para ello se tiene en cuenta que:

La tabla de la verdad obtenida realizando las sustituciones anteriormente indicadas se muestra en la Tabla 2.

INTA INTR’0 INTR’1 INTR’2 INTR INTA0 INTA1 INTA20 X X X X 0 0 01 1 X X 1 1 0 01 0 1 X 1 0 1 01 0 0 1 1 0 0 11 0 0 0 0 0 0 0

Mi INTRi INTR’ i1 1 10 X 0X 0 0

Page 154: Coleccion Problemas Etc II

3 Estructura y Tecnología de Computadores II

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

B) Obtenga la función lógica de las tres líneas INTA2, INTA1, INTA0 en función de las líneas INTR0 , INTR1 ,

INTR2 , INTA y de los bits del registro de máscara.

De la Tabla 1, se deduce que:

• INTA0 = INTA INTR’0

• INTA1 = INTA INTR’1 INTR’0

• INTA2 = INTA INTR’2 INTR’1 INTR’0

Sustituyendo INTR’i por (Mi INTRi), se obtienen las tres funciones lógicas pedidas (que igualmente podíanhaber sido obtenidas de la Tabla 2):

• INTA0 = INTA M0 INTR0

• INTA1 = INTA M1 INTR1 (M0 INTR0)

• INTA2 = INTA M2 INTR2 (M1 INTR1) (M0 INTR0)

C) Diseñe el circuito lógico del controlador de interrupciones, usando para ello puertas AND, OR y NOT.

En la Figura 8 se muestra un posible diseño.

INTA M0 M1 M2 INTR0 INTR1 INTR2 INTR INTA0 INTA1 INTA20 X X X X X X X 0 0 01 1 X X 1 X X 1 1 0 01 0 1 X X 1 X 1 0 1 01 X 1 X 0 1 X 1 0 1 01 0 0 1 X X 1 1 0 0 11 0 X 1 X 0 1 1 0 0 11 X 0 1 0 X 1 1 0 0 11 X X 1 0 0 1 1 0 0 11 0 0 0 X X X 0 0 0 01 0 0 X X X 0 0 0 0 01 0 X 0 X 0 X 0 0 0 01 0 X X X 0 0 0 0 0 01 X 0 0 0 X X 0 0 0 01 X 0 X 0 X 0 0 0 0 01 X X 0 0 0 X 0 0 0 01 X X X 0 0 0 0 0 0 0

Page 155: Coleccion Problemas Etc II

Examen junio 2003 4

Figura 8: Controlador de interrupciones

D) Explique razonadamente cómo podrían conectarse varios controladores de interrupciones de 3 entradas,como el diseñado en el apartado anterior, para poder atender las peticiones de interrupción de 6 periféricosexternos.

Este apartado es análogo al apartado f) del problema 3-13. La conexión de los controladores puede realizarsecomo se muestra en la Figura 9. Aunque el dispositivo obtenido de la conexión de los tres controladores permitiríagestionar 7 periféricos, sólo se señala en la Figura 9 la conexión de 6 de ellos, tal como se pide en el enunciado.

Con la estructura mostrada en la Figura 9, cuando se produce una petición de interrupción por cualquiera delas líneas INTRi, ésta se transmite a la CPU. Las peticiones realizadas por los dos controladores más alejados de la

CPU generan peticiones en la línea INTR0 del controlador situado inmediatamente delante de ellos. Asimismo,cuando la CPU activa la línea de aceptación, INTA, los dos controladores no conectados directamente a la CPU nopueden activar ninguna de sus salidas hasta que los controladores más próximos que ellos a la CPU no transmitanpor sus respectivas líneas de aceptación INTA0 .

Page 156: Coleccion Problemas Etc II

5 Estructura y Tecnología de Computadores II

Figura 9: Controlador de interrupciones capaz de atender a 6 periféricos.

Page 157: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DECOMPUTADORES II

TEMA 4: Unidad Aritmético-Lógica

SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 158: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen.

2

CONTENIDO

SOLUCION PROBLEMA 4.1........................................................................................................................................ 3SOLUCION PROBLEMA 4.2........................................................................................................................................ 3SOLUCION PROBLEMA 4.3........................................................................................................................................ 4SOLUCION PROBLEMA 4.4........................................................................................................................................ 6SOLUCION PROBLEMA 4.5........................................................................................................................................ 6SOLUCION PROBLEMA 4.6........................................................................................................................................ 6SOLUCION PROBLEMA 4.7........................................................................................................................................ 7SOLUCION PROBLEMA 4.8........................................................................................................................................ 7SOLUCION PROBLEMA 4.9........................................................................................................................................ 7SOLUCION PROBLEMA 4.10...................................................................................................................................... 8SOLUCION PROBLEMA 4.11...................................................................................................................................... 9SOLUCION PROBLEMA 4.12...................................................................................................................................... 9SOLUCION PROBLEMA 4.13...................................................................................................................................... 9SOLUCION PROBLEMA 4.14...................................................................................................................................... 9SOLUCION PROBLEMA 4.15.................................................................................................................................... 10SOLUCION PROBLEMA 4.16.................................................................................................................................... 10SOLUCION PROBLEMA 4.17.................................................................................................................................... 10SOLUCION PROBLEMA 4.18.................................................................................................................................... 11SOLUCION PROBLEMA 4.19.................................................................................................................................... 11SOLUCION PROBLEMA 4.20.................................................................................................................................... 11SOLUCION PROBLEMA 4.21.................................................................................................................................... 12SOLUCION PROBLEMA 4.22.................................................................................................................................... 12SOLUCION PROBLEMA 4.23.................................................................................................................................... 12SOLUCION PROBLEMA 4.24.................................................................................................................................... 13SOLUCION PROBLEMA 4.25.................................................................................................................................... 13SOLUCION PROBLEMA 4.26.................................................................................................................................... 13SOLUCION PROBLEMA 4.27.................................................................................................................................... 13SOLUCION PROBLEMA 4.28.................................................................................................................................... 13SOLUCION PROBLEMA 4.29.................................................................................................................................... 14SOLUCION PROBLEMA 4.30.................................................................................................................................... 15SOLUCION PROBLEMA 4.31.................................................................................................................................... 15SOLUCION PROBLEMA 4.32.................................................................................................................................... 15SOLUCION PROBLEMA 4.33.................................................................................................................................... 16SOLUCION PROBLEMA 4.34.................................................................................................................................... 17SOLUCION PROBLEMA 4.35.................................................................................................................................... 17SOLUCION PROBLEMA 4.36.................................................................................................................................... 18SOLUCION PROBLEMA 4.37.................................................................................................................................... 18SOLUCION PROBLEMA 4.38.................................................................................................................................... 18SOLUCION PROBLEMA 4.39.................................................................................................................................... 19SOLUCION PROBLEMA 4.40.................................................................................................................................... 20SOLUCION PROBLEMA 4.41.................................................................................................................................... 20

Page 159: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

3

SOLUCION PROBLEMA 4.1

La solución a este problema se encuentra en el fichero probT4_01.pdf.

SOLUCION PROBLEMA 4.2

La solución a este problema se encuentra en el fichero probT4_02.pdf.

Page 160: Coleccion Problemas Etc II

2

SoluciónA) El módulo comparador de dos bits que se quiere diseñar viene

representado en la Figura 96-1-2, donde x e y son las entradas de datos, y M, Iy m son las tres salidas del comparador.

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

Como el enunciado sólo permite utilizar puertas lógicas vamos aimplementarlo mediante un circuito combinacional. La Tabla 96-1-1 muestrala tabla de verdad del comparador de 2 bits.

x y

x>y x=y x<y

M I m

Page 161: Coleccion Problemas Etc II

3

A partir de la Tabla 96-1-1 se deducen las siguientes funciones lógicas paraM, I y m:

M = x y

I = x y + x y = m = x y

y el circuito lógico correspondiente se muestra en la Figura 96-1-3.

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

B) Para comparar X e Y es necesario comparar cada bit de uno de ellos conel bit de igual peso del otro. Para hacer estas comparaciones utilizamoscomparadores de 1 bit como el diseñado en el apartado anterior. Si elresultado de la comparación de xi e yi es: Mi, Ii y mi, se cumple que:

Mi =1 si xi > yi

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

x y + x y

x

y

M

I

m

Page 162: Coleccion Problemas Etc II

4

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 3bits 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.

Figura 96-1-4 Circuito lógico de un comparador de dos números de 3 bits

x2 y2

x>y x=y x<y

M2 I2 m2

x1 y1

x>y x=y x<y

M1 I1 m1

x0 y0

x>y x=y x<y

M0 I0 m0•

••

••

••

••

IM m

Page 163: Coleccion Problemas Etc II

5

C) Sobre este apartado no hay ningún comentario a hacer, y directamentela solución es la mostrada en la Figura 96-1-5.

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 elenunciado del problema, donde además de los módulos diseñados en losapartados anteriores, se han empleado 4 multiplexores con 2 entradas dedatos y una salida.

La entrada de selección de la “c” del la UAL está conectada directamente ala 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+YHay 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 sufunción. El resultado de la suma de 2 números de 3 bits requiere un máximode 4 bits.

SBC

x0 y0

s0

c-1c0SBC

x1 y1

s1

c1SBC

x2 y2

s2

c2

Page 164: Coleccion Problemas Etc II

6

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

COMPARADOR SUMADOR

x2x1x0 y2y1y0 x2x1x0 y2y1y0

M I m

MUX01

c0 MUX01

c0 MUX01

c0 MUX01

c0c

s2 s1 s0

c2

• •“0”

s3 s2 s1 s0

••

X Y

UAL

Page 165: Coleccion Problemas Etc II

A)(1.5 puntos) Indique el diagrama de estados del circuito,especificando claramente cuál es el significado de cada uno de losestados.

B) (0.5 puntos) Indique cómo codifica los estados y obtenga la tabla detransición de estados correspondiente.

C) (1 punto) Suponiendo que sólo dispone de biestables tipo D para eldiseño del circuito, calcular las funciones de excitación de losbiestables.

D)(1 punto) Implemente el circuito con biestables tipo D y puertaslógicas NAND y NOT únicamente.

Figura 96-2-1 Diagrama de bloques del comparador

Solución

Figura 96-2-2 Diagrama de estados del circuito

Un posible diagrama de transición de estados para el comparador secuecial

Comparadorsecuencial

xn-1 xn-2 ... x0

yn-1 yn-2 ... y0

M mI

X

Y

Reloj

S1 / 100

S0 / 010

S2 / 001

11

00

10

01 xx

xx

Page 166: Coleccion Problemas Etc II

propuesto es el de la Figura 96-2-2. Los símbolos utilizados en este diagramason los mostrados en la Figura 96-2-3 donde: Si es el estado, xiyi son los bitsde la entrada, y MIm son los tres bits de la salida.

Figura 96-2-3 Significado de los símbolos utilizados en el diagrama de estados

La explicación del diagrama de estados de la Figura 96-2-2 es la siguiente.Al comparar dos números binarios X e Y, comenzando por sus bits de máspeso, en cuanto lleguen al comparador dos bits distintos ya es posible indicarcuál de ellos es menor y cuál es mayor, independientemente del valor de lossiguientes bits. Por ejemplo:

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 llegandoson iguales, el sistema no cambia de estado, pero en el instante en que lleguendos distintos, pasa al estado S1 si xi>yi o al estado S2 si xi<yi. A partir de esemomento, independientemente del valores de las siguientes entradas alcomparador, el sistema no cambia de estado. Luego el significado de losestados es el siguiente:

• S0 X = Y• S1 X > Y• S2 X < YA 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.

Si / MIm

xiyi

X = 00100111010101000Y = 00100101010101111

Page 167: Coleccion Problemas Etc II

B) Una posible codificación de los estados es la mostrada en la Tabla96-2-3.

A partir de esta codificación y de la Tabla 96-2-2 se obtiene directamente latabla de transición de estados (Tabla 96-2-4).

Entradas xi yiEstado presente

00 01 10 11SalidaM I m

S0 (igual) S0 S2 S1 S0 0 1 0

S1 (mayor) S1 S1 S1 S1 1 0 0

S2 (menor) S2 S2 S2 S2 0 0 1

Próximo estado

Tabla 96-2-2 Tabla de estados del comparador secuencial

Estado Q1Q0

S0 (igual) 0 0

S1 (mayor) 0 1

S2 (menor) 1 0

Tabla 96-2-3 Codificación de los estados

Page 168: Coleccion Problemas Etc II

C) Teniendo en cuenta la función de excitación de un elemento de memoriatipo D:

D = Q(t+1)y la tabla de transición de estados, se deducen las expresiones de las entradasD1 y D0 a los dos elementos de memoria necesarios para almacenar el estadodel comparador (ver Figura 96-2-4).

Figura 96-2-4 Funciones de excitación de los biestables del comparador

D) Para implementar el circuito utilizando bistables tipo D y puertaslógicas NAND y NOT únicamente, no sirven directamente las funciones deexcitación obtenidas en el apartado anterior, pero negando dos veces cada una

Entradas xi yiEstado pres. Q1Q0

00 01 10 11SalidaM I m

0 0 0 0 1 0 0 1 0 0 0 1 0

0 1 0 1 0 1 0 1 0 1 1 0 0

1 0 1 0 1 0 1 0 1 0 0 0 1

Próximo estado

Tabla 96-2-4 Tabla de transición de estados y salida del comparador

Q1Q0xiyi 00 1001 11

00

01

11

10

D1 = xiyiQ0 + Q1

00 1001 11

00

01

11

10

D0 = xi yi Q1 + Q0

x

x

x

x

Q1Q0xiyi

x

x

x

x

1

1

1

1

1

1

1

1

11

Page 169: Coleccion Problemas Etc II

de ellas se obtienen las expresiones buscadas.

Finalmente sólo falta calcular las expresiones lógicas de las tres salidas enfunción del estado, para ello utilizamos la Tabla 96-2-5.

Las expresiones lógicas para la salida que se obtienen de la Tabla 96-2-5son:

Utilizando las funciones de excitación de los elementos de memoria tipo Dy las expresiones lógicas de la salida en función del estados, el circuitosecuencial del comparador que se obtiene es el que se muestra en la Figura

Q1 Q0 M I m

0 0 0 1 0

0 1 1 0 0

1 0 0 0 1

1 1 x x x

Tabla 96-2-5 Valor de la salida en función del estado

D1 xiyiQ0 Q1+ xiyiQ0 Q1+ xiyiQ0 Q1⋅= = =

D0 xiyiQ1 Q0+ xiyiQ1 Q0+ xiyiQ1 Q0⋅= = =

M Q0=

I Q1Q0 Q1Q0= =

m Q1=

Page 170: Coleccion Problemas Etc II

96-2-5.

Figura 96-2-5 Circuito secuencial del comparador

Q0

Q1

Q0

Q1

Ck

D1

Ck

D0

Reloj

yi

xi

m

I

M

••

Page 171: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

4

SOLUCION PROBLEMA 4.3

a) Para conocer los módulos de ROM necesarios, es necesario darse cuenta que el producto de unnúmero binario B(b2b1b0) de 3 bits por otro número binario A(A1A0) de 2 bits da como resultado unnúmero binario P(p4p3p2p1p0) de de 5 bits.

b2 b1 b0

x a1 a0

• • •• • •

p4 p3 p2 p1 p0

Por lo tanto en la ROM se deben almacenar todos los resultados posibles que pueden resultar almultiplicar un número de 3 bits por otro de 2 bits. El número de resultados posibles es 25. Por otro ladoya se ha visto que el resultado debe de tener 5 bits. Luego se necesitaría un módulo ROM decapacidad

C=25 pal x 5 bits/pal

Ahora bien los módulos de ROM de que se disponen tienen una capacidad de 24 pal x 4 bits/pal.Luego para conseguir almacenar 25 (32) resultados necesitamos 2 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á elbit más significativo (p4) de cada resultado quedando tres bits (r2r1r0) sin utilizar (x) y en el otro loscuatro bits restantes (p 3p2p1p0). Luego el número de módulos necesarios es 4. El esquema sería :

ROM16x44 4

CS

ROM16x44 4

CS

ROM16x44 4

CS

ROM16x44 4

CS

b2

b1 b0 a1 a0

4

p3 p2 p1 p0

p3 p2 p1 p0

2b

p4

p4

p 4p 3

p2 p 1

p 0

Módulo 1 Módulo 2

Módulo 3 Módulo 4

Comentar que con el bit b2 se selecciona el par de módulos donde se encuentra almacenado elresultado. Y con los bits b1b0a1a0 ya se determina la posición de ROM que se va a leer.

Page 172: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

5

b) A continuación se muestran la tablas de los contenidos de cada uno de los módulos.

Dirección Contenidos de los módulos ROM

b2 b1 b0 a1 a0 r2 r1 r0 p4 p3 p2 p1 p0

0 0 0 0 0 x x x 0 0 0 0 00 0 0 0 1 x x x 0 0 0 0 00 0 0 1 0 x x x 0 0 0 0 00 0 0 1 1 x x x 0 0 0 0 00 0 1 0 0 x x x 0 0 0 0 00 0 1 0 1 x x x 0 0 0 0 10 0 1 1 0 x x x 0 0 0 1 00 0 1 1 1 x x x 0 0 0 1 10 1 0 0 0 x x x 0 0 0 0 00 1 0 0 1 x x x 0 0 0 1 00 1 0 1 0 x x x 0 0 1 0 00 1 0 1 1 x x x 0 0 1 1 00 1 1 0 0 x x x 0 0 0 0 00 1 1 0 1 x x x 0 0 0 1 10 1 1 1 0 x x x 0 0 1 1 00 1 1 1 1 x x x 0 1 0 0 1

Módulo 1 Módulo 2

1 0 0 0 0 x x x 0 0 0 0 01 0 0 0 1 x x x 0 0 1 0 01 0 0 1 0 x x x 0 1 0 0 01 0 0 1 1 x x x 0 0 1 1 01 0 1 0 0 x x x 0 0 0 0 01 0 1 0 1 x x x 0 0 1 0 11 0 1 1 0 x x x 0 1 0 1 01 0 1 1 1 x x x 0 1 1 1 11 1 0 0 0 x x x 0 0 0 0 01 1 0 0 1 x x x 0 0 1 1 01 1 0 1 0 x x x 0 1 1 0 01 1 0 1 1 x x x 1 0 0 1 01 1 1 0 0 x x x 0 0 0 0 01 1 1 0 1 x x x 0 0 1 1 11 1 1 1 0 x x x 0 1 1 1 01 1 1 1 1 x x x 1 0 1 0 1

Módulo 3 Módulo 4

c) El aprovechamiento de la memoria vendrá dado por:

%5.62100·85

100·2

5·2100·

)42·(452

100 8

5

4

5

====⋅=x

xtotalesbits

utilizadosbitsR

Una forma de mejorar el aprovechamiento sería fijarse en la tabla de contenidos de cada uno de los 4módulos del apartado b). En ella se observa que sólo en dos casos el bit p4 es 1, y son cuando semultiplica 6x3=18 y cuando se multiplica 7 x 3=21. La función lógica del bit p4 es:

011201012010124 aabbaabbbaabbbp =+=

Que puede generarse fácilmente con una puerta AND. Con lo que sólo se necesitarían 2 módulos de ROMcon un aprovechamiento R=100 %.

Page 173: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

6

SOLUCION PROBLEMA 4.4DATOS

n Dos números X e Y de 12 bits representados en binario puro:n X= 0000 1100 0010n Y= 0001 0111 0001

Para calcular la suma en BCD de estos dos números binarios puros X e Y, hay que realizar los siguientespasos:• Pasar X de binario a decimal.

X10= 27+26+21 =128 + 64 +2=194 • Pasar Y de binario a decimal.

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

• Sumar ambos números en decimal.

X10+Y10=S10= 563

• Y finalmente pasar cada cifra de S10 de decimal a binario con lo que se obtiene la suma en BCD SBCD

S10= 563 → SBCD= 0101 0110 0011

SOLUCION PROBLEMA 4.5

El producto P [p2n-1,...., p0] de dos números binarios X (xn-1,...,x0) e Y(yn-1,...,y0) de n bits cada uno, posee untotal de (n+n) bits, es decir, 2n bits. Por lo tanto la memoria que se requiere para implementar estemultiplicador requiere un bus de direcciones de 2n bits (xn-1,...,x0,yn-1,...,y0), para direccionar 2n posiblesproductos P con que tendrán un tamaño de 2n bits [p 2n-1,...., p0] cada uno. Es decir, la capacidad dememoria necesaria es:

C=22n palabras x 2n bits/palabra

Puesto que se tienen módulos de capacidad C0=2n palabras x n bits/palabra, hay que utilizar 4 módulos deeste tipo: dos para conseguir tener 22n palabras y otros dos para conseguir tener 2n bits/palabra. Se tratadel típico problema de ampliar el número de palabras y el número de bits utilizando módulos de unacapacidad dada (ver Tema-2).

SOLUCION PROBLEMA 4.6En el libro de teoría se explica que cuando se implementa un multiplicador binario mediante el algoritmo delápiz y papel, para dos números X de n bits e Y de m bits, con n>m, se requieren n·m puertas AND y n·(m-1) sumadores binarios completos (SBC). Puesto que nos dicen en el enunciado que hay que multiplicar dosnúmeros de n=m 8 bits . Entonces el número de puertas AND necesarias será 8·8= 64 puertas AND.

Page 174: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

7

SOLUCION PROBLEMA 4.7Del libro de teoría se comprueba en un sumador binario completo SBC que las expresiones para el bit desuma s i y para el bit de acarreo ci, vienen dado por las siguientes expresiones:

1

1

)( −

⊕+=⊕⊕=

iiiiii

iiii

cyxyxc

cyxs

Para el caso i=1 se obtiene:

011111

0111

)( cyxyxc

cyxs

⊕+=⊕⊕=

Mientras que para el caso i=0 se obtiene

100001

1000

)( −

⊕+=⊕⊕=

cyxyxc

cyxs

SOLUCION PROBLEMA 4.8Afirmación I: Se tienen dos números de n=4 bits y m= 3 bits, luego el módulo de memoria ROM que senecesitaría tendría una capacidad de

C=2n+m palabras x (n+m) bits/palabra

Es decir, C= 27 palabras x 7 bits/palabras, luego la afirmación I es verdadera.

Afirmación II: Por el mismo razonamiento de la solución del problema 4.6, se necesitarían n·m=4·3= 12puertas AND y (n·(m-1))=(4·(3-1))= 8 sumadores binarios completos. Luego la afirmación II es verdadera.

SOLUCION PROBLEMA 4.9De acuerdo con lo explicado en el libro de teoría sobre las características de un sumador binario serie.

Afirmación I: El tiempo de calculo para sumar dos números de n bits viene dado por

t=n·(δ+∆)

siendo δ el tiempo en sumar 1 bits y ∆ el retardo del elemento de memoria. Por lo tanto, se observa que eltiempo de calculo depende del número de bits n a sumar. Por lo tanto, la afirmación es Falsa.

Afirmación II: La estructura (complejidad) de un sumador binario serie es siempre la misma,independientemente del número de bits a sumar. Luego la afirmación es Falsa.

Page 175: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

8

SOLUCION PROBLEMA 4.10DATOS

n Multiplicador binario X·Yn X de 3 bits, Y de 6 bitsn Representados en binario puro sin signon Utilizando:

n 2 memorias ROM de 64 palabras x 6 bits/palabra.n 2 sumadores binarios paralelos de 3 bits cada uno.

a) Sea el número de 6 bits Y(y5y4y3y2y1y0) y el número de 3 bits X(x2x1x0) el producto de ambos númeroses un número de 9 bits P(p8p7p6p5p4p3p2p1p0). La multiplicación se puede representar esquemáticamentecomo se muestra a continuación.

y5 y4 y3 y2 y1 y0

x x2 x1 x0

# # # • • •# # # • • •

# # # • • •p05 p04 p03 p02 p01 p00

p15 p14 p13 p12 p11 p10

p8 p7 p6 p5 p4 p3 p2 p1 p0

Si se denota como Y1a (y5y4y3) y como Y0 a(y2y1y0), en el esquema anterior se puede observar que:

- Con una ROM (ROM1) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario

Y0 x X=(p05 p04 p03 p02 p01 p00).

- Con otra ROM (ROM2) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario de

Y1 x X=(p15 p14 p13 p12 p11 p10).

- Los bits p2 p1 p0 del producto final son directamente: p02 p01 p00

- Los bits p5 p4 p3 del producto final son la suma de (p05 p04 p03)+ (p12 p11 p10), y además se generará un bit deacarreo 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, yademás se generará un bit de acarreo de salida. Para implementar esta operación se necesita un sumadorbinario paralelo de 3 bits (sumador 2).

-Luego el diseño del sumador con los elementos propuestos es el que se muestra en la figura

ROM 126 x 6

ΣROM 126 x 6

Σ

000

p8 p7 p6

p5 p4 p3

p2 p1 p00

p05 p04 p03

p15 p14 p13

p12 p11 p10

Y0

X

Y1

X

Page 176: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

9

SOLUCION PROBLEMA 4.11De acuerdo con las expresiones generales para el resultado de la suma y el acarreo de salida de un SBCdeducidas en el libro de teoría(ver problema 4.7):Afirmación I: Falsa.Afirmación II: Verdadera.

SOLUCION PROBLEMA 4.12

La solución a este problema se encuentra en el fichero probT4_12.pdf.

SOLUCION PROBLEMA 4.13De acuerdo con las expresiones generales deducidas en el libro de teoría para un comparador de númerosde tamaño n>1 implementado mediante un circuito combinacional:

0121211

0121

0121211

.....

...

.....

mIIImImm

IIIII

MIIIMIMM

nnnnn

nn

nnnnn

−−−−−

−−

−−−−−

+++==

+++=

En el caso que se propone n=4,

0123123233

0123

0123123233

mIIImIImImm

IIIII

MIIIMIIMIMM

+++==

+++=

Por lo tanto:

Afirmación I: FalsaAfirmación II: Falsa

SOLUCION PROBLEMA 4.14De acuerdo con las expresiones generales deducidas en el libro de teoría para el semisumador binario SSBde dos números binarios de un bit., x e y

xycyxyxyxs

=⊕=+=

Por lo tanto:Afirmación I: Desarrollando la expresión lógica dada en el enunciado s=

yxyxyxyxyyyxxxyxyxxyyxs ⊕=+=+++=++=+= ))(()(Luego la afirmación es verdadera.

Afirmación II: Falsa

Page 177: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

4 - 12

Page 178: Coleccion Problemas Etc II

Figura 98-1-1: Módulo UAL

6ROXFLyQ

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

Si = xi yi ci-1

ci = xi yi + (xi yi) ci-1

donde xi e yi son los datos de entrada, ci-1 es el acarreo de entrada, Si es el resultado de la suma y ci es el acarreo desalida. El diseño resultante se muestra en la Figura 98-1-2.

Figura 98-1-2: Sumador Binario Completo

B) Como x - y = x + (-y), si se dispone de un circuito que calcula la suma de números negativos se puede efectuar laoperación de restar. En el caso de la representación de números negativos en complemento a 2 la resta resultaespecialmente sencilla, porque el valor negativo es muy simple de realizar. En efecto, si y = yn-1 yn-2.... y1 y0 es unnú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

3 2

UAL2

c1c0

x2x1x0 y1y0

S3 S2 S1 S0

⊕ ⊕

xi yici-1

Si

ci

Page 179: Coleccion Problemas Etc II

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

Figura 98-1-3: Sumador-restador binario paralelo con propagación de arrastre

C) Este comparador consiste en un circuito con 6 entradas (x2x1x0y2y1y0) y tres salidas (MIm). El módulo de

memoria ROM necesario tiene que tener un tamaño mínimo de 26x3. El contenido de las 16 primeras posiciones dememoria se muestra en la Tabla 98-1-2.

Figura 98-1-4: Comparador diseñado con memoria ROM

SBC

y0 x0

S0

c-1c0SBC

y1 x1

S1

c1SBC

y2 x2

S2

c2

M• • •

Sumador/restador

x2 x1 x0 y2 y1 y0

S2 S1 S0

c2M

A3

A2

A1

ROM

64 palabras × 3 bits

A0

A5

A4

b2 b1 b0

y2

x2

x1

x0

y1

y0

M I m

Comparador

M I m

y2 y1 y0x2 x1 x0

Page 180: Coleccion Problemas Etc II

D) En la Figura 98-1-5 se muestra el diseño de la UAL pedida en el problema donde se han utilizado 4multiplexores 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 elSumador/Restador.

Dirección memor ia(x2 x1 x0 y2 y1 y0)

Contenido(M I m)

A5 A4 A3 A2 A1 A0 b2 b1 b0

0 0 0 0 0 00 0 0 0 0 10 0 0 0 1 00 0 0 0 1 1

0 1 00 0 10 0 10 0 1

0 0 0 1 0 00 0 0 1 0 10 0 0 1 1 00 0 0 1 1 1

0 0 10 0 10 0 10 0 1

0 0 1 0 0 00 0 1 0 0 10 0 1 0 1 00 0 1 0 1 1

1 0 00 1 00 0 10 0 1

0 0 1 1 0 00 0 1 1 0 10 0 1 1 1 00 0 1 1 1 1

0 0 10 0 10 0 10 0 1

..... .....

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

Page 181: Coleccion Problemas Etc II

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

3UREOHPD�����

Sumador/restador

S3

MComparador

MUX01

MUX01

MUX01

MUX01

c0c1

M I m

y2 y1 y0x2 x1 x0 y2 y1 y0x2 x1 x0

3 2 1 0 3 2 1 0 3 2 1 03 2 1 0

S2 S1 S0

c2

x2x1x0

y1y0

0 0

00

S2 S1 S0

Page 182: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

10

SOLUCION PROBLEMA 4.15DATOS

n Dos números binarios de 12 bits representados en código BCDn XBCD= 0101 1000 1001 YBCD= 0011 0100 0111

El método más rápido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binarioa decimal y realizar la suma:Así: XBCD= 0101 1000 1001 = 5 8 9 YBCD= 0011 0100 0111 = 3 4 7

La suma SBCD=XBCD + YBCD= 9 3 6 = 1001 0011 0110

SOLUCION PROBLEMA 4.16La solución a este problema se encuentra en el fichero probT4_16.pdf.

SOLUCION PROBLEMA 4.17El número de secuencias de arrastre viene dada por el número de veces que el bit xi=yi=1, en la figura sepuede apreciar que se generarán 3 secuencias de arrastre:

001110011010100101110100101001

+

Por otro lado dichas secuencias de arrastre se propagarán hasta que xi=yi=0. En la Figura inferior se puedeobservar como la longitud máxima de las secuencias de arrastre es 6.

1 0 0 1 0 1 0 1 0 0 1 0 0 1 10 0 1 0 1 0 1 1 0 1 0 1 0 1 1

+

6 2

1

Page 183: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

4 - 16

Page 184: Coleccion Problemas Etc II

3UREOHPD�����

Se desea construir un sumador binario con aceleración de arrastres (SBAA) para 2 números binarios X e Y de 3bits 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 (SBCmodificado) 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 deacarreo). A partir de estas funciones lógicas, y empleando únicamente puertas lógicas, diseñe este SBCmodificado.

B) (1.5 puntos) La figura central muestra un circuito de aceleración de arrastres (CAA) de 3 bits con tresentradas de generación de acarreo gi, tres entradas de propagación de acarreo pi y un acarreo de entradac-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 enB), 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.

Figura 98-3-1: Módulos del problema

6ROXFLyQ

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

pi = xi yi

gi = xi yi

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.

yixi

SBCmodificado

ci-1ci

si gi pi

p0p1 g0g1p2g2

c0c1c2

c-1CAA

y0y1 x0x1y2x2

s0s1s2

c-1SBAAde 3 bits

c2

⊕ ⊕ ⊕

Page 185: Coleccion Problemas Etc II

Figura 98-3-2: SBC modificado

B) Para construir las expresiones de c2, c1 y c0 generados por este módulo a partir de las entradas de generación de

acarreo gi (i= 1,2,3), las entradas de propagación de acarreo pi (i= 1,2,3) y el acarreo de entrada c-1, se comienza porla 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ñose puede observar cómo los arrastres que se introducen en los SBC modificados son los generados directamentepor 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.

S B C

xi yi

ci ci-1

si pi gi

••

••

xi yi ci-1

ci gi si pi

modificado

Page 186: Coleccion Problemas Etc II

Figura 98-3-3: Circuito de aceleración de arrastres (CAA)

Figura 98-3-4: Sumador binario de 3 bits con aceleración de arrastre

••

••

••

••

c2 c1 c0

c-1

p2 g2 p1 g1 p0 g0

c2

g2p2

c1 c0

c-1CAA

g1p1 g0p0

c2

c1

y2 x2

c0

c-1

s0 p0 g0

S B C

Modificado

S B C

Modificado

S B C

Modificado

CAA

s1

p1 g1 s2

p2 g2

y0 x0 y1 x1

s2

x2y2

s1 s0

c-1SBAA

x1y1 x0y0

c2

c0 c1 c2

Page 187: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

11

SOLUCION PROBLEMA 4.18Para expresar la suma de un número binario X=[X7 X6 X5 X4 X3 X2 X1 X0] de 8 bits y de otro número binarioY=[Y3 Y2 Y1 Y0] de 4 bits, se requieren de 9 bits [C S7 S6 S5 S4 S3 S2 S1 S0] (el resultado S de 8 bits más un bitde acarreo C).Por lo tanto para implementar todas los resultados posibles, se necesita una ROM de 2(8+4) palabras, cadapalabra debe poseer 9 bits para almacenar el resultado y el acarreo. Luego la capacidad de la memoria ROMnecesaria es:

)/(921 2 palabrabitsxpalabrasC =

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

SOLUCION PROBLEMA 4.19Afirmación ISi se quiere implementar con una ROM un multiplicador binario de dos números binarios sin signo,X=[X2X1X0] de n= 3 bit ee Y=[Y1Y0] de m=2 bits. La memoria ROM deberá tener tantas palabras comocomo combinaciones de X ·Y se puedan producir, es decir, 2(n+m) = 2(3+2)=25 palabras.Por otro lado la memoria ROM debe tener tantos bit por palabra como bits tenga el resultado del productode X·Y, en general, el producto P de un número de n bits por otro de m bits posee n+m bits, es decir, ennuestro caso, 3+2+1=6 bits/palabra.Luego la capacidad de la memoria ROM necesaria es:

)/(525 palabrabitsxpalabrasC =

Luego la afirmación I, es FALSA.

Afirmación II:En el libro de teoría se explica que cuando se implementa un multiplicador binario mediante el algoritmo delápiz y papel, para dos números X de n bits e Y de m bits, con n>m, se requieren n·m puertas AND y n·(m-1) sumadores binarios completos (SBC).En nuestro caso n=3, m=2, se requerirían 3·2= 6 puertas AND y 3(2-1)= 3 SBC

Luego la afirmación II, es VERDADERA.

SOLUCION PROBLEMA 4.20Por el mismo razonamiento realizado para comprobar la afirmación I, del problema 4.19 con n=24 y m=16, lamemoria ROM que se necesitaría para implementar el multiplicador debe tener una capacidad de

palabrabitsxpalabrasxCT /402)1624(2 4 0)1 62 4( =+= +

Afirmación I: La capacidad total de los módulos ROM disponible es C=4·(28 x 16). Como C<CT, laafirmació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, laafirmación es FALSA.

Page 188: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

12

SOLUCION PROBLEMA 4.21En el libro de teoría se explica que cuando se implementa un multiplicador binario mediante el algoritmo delápiz y papel, para dos números X de n bits e Y de m bits, con n>m, se requieren n·m puertas AND y n·(m-1) sumadores binarios completos (SBC).En nuestro caso n=4, m=4, se requerirían 4·4= 16 puertas AND y 4(4-1)= 12 SBC

Afirmación I : Puesto que un sumador binario con aceleración de arrastre de 4 bits es equivalente a 4 SBC.Se tendrían 4+8 =12 SBC, que junto con las 16 puertas AND disponibles permiten construir el multiplicadorbinario 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 ANDnecesarias.

SOLUCION PROBLEMA 4.22De acuerdo con la sección 4.2.2 del libro de teoría dedicada a los sumadores con anticipación de arrastre, laexpresión general del bit de arrastre de la etapa ci , en función de los bits de propagación de arrastre (p i, pi-

1,...,p0) y de los bits de generación de arrastre (gi, gi-1,...,g0), es:

101011211 ........... −−−−−− +++++= cpppgpppgppgpgc iiiiiiiiiii

La expresión que dan en el enunciado es:

1012012122 −+++ cpppgppgpg

que de acuerdo con la expresión general se corresponde con c2, luego la respuesta correcta es la B.

SOLUCION PROBLEMA 4.23El circuito que se quiere implementar tiene 2 entradas de 4 bits cada una para los operandos X [x3x2x1x0] e Y[y3y2y1y0]. Y una entrada adicional M de 1 bit para indicar si la operación es de suma o de resta. Luego elnúmero total de bits de entrada de este circuito es 9.Por otro lado, este circuito debe tener dos salidas, una de 4 bits para indicar el resultado de la resta o de lasuma y un bits de acarreo. Luego el número total de bits de salida del circuito es 5.

La tabla de verdad o tabla de funcionamiento del circuito constaría de 9 bits de entradas y de 5 bits desalida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mínima :

CT= 29 palabras x 5 bits/palabra

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

Page 189: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

13

SOLUCION PROBLEMA 4.24DATOS

n Dos números binarios de 16 bits representados en código BCDn XBCD=0011 1001 0101 0100 YBCD= 0011 1001 0000 0110

El método más rápido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binarioa decimal y realizar la suma:Así:XBCD= 0011 1001 0101 0100 = 3 9 5 4YBCD= 0011 1001 0000 0110 = 3 9 0 6

La suma SBCD=XBCD + YBCD= 7 8 6 0 = 0111 1000 0110 0000

SOLUCION PROBLEMA 4.25El circuito que se quiere implementar tiene 1 entrada de 3 bits para el operando X [x2x1x0] y una entrada de4 bits para el operando Y [y3y2y1y0]. Luego el número total de bits de entrada de este circuito es 7.Por otro lado, este circuito debe tener dos salidas, de 1 bits cada una, M (si x>y) e I(x=y). Luego el númerototal de bits de salida del circuito es 2.

La tabla de verdad o tabla de funcionamiento del circuito constaría de 7 bits de entrada y de 2 bits desalida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mínima :

CT= 27 palabras x 2 bits/palabra

Afirmación I: VERDADERA. La capacidad de la ROM es superior a CT.Afirmación II: VERDADERA. La capacidad de la ROM es superior a CT.

SOLUCION PROBLEMA 4.26

La solución a este problema se encuentra en el fichero probT4_26.pdf.

SOLUCION PROBLEMA 4.27La expresión lógica xyyx ⋅+ )( se puede desarrollar de la siguiente forma:

yxxyxyyxyxxyyx ⊕=+=+⋅+=⋅+ )()()(

Que se corresponde con la expresión lógica del bit de suma s= yx ⊕ .

Por lo tanto la respuesta correcta es la A

SOLUCION PROBLEMA 4.28De acuerdo con lo que se explica en el libro de teoría sobre las características de un sumador binario serie,este dispositivo solamente requiere de 1 SBC de 1bit.

Page 190: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

4 - 26

Page 191: Coleccion Problemas Etc II

6ROXFLyQ

a) Para comparar X e Y es necesario comparar cada bit de uno de ellos con el bit de igual peso del otro. Parahacer 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 siguientesfunciones booleanas:

M = M1 + I1 M0

I = I1 I0

m = m1 + I1 m0

La explicación de estas expresiones es inmediata:

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

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

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

La Figura 2000-2-2 muestra el circuito lógico pedido en este apartado obtenido a partir de las expresionesanteriores.

Page 192: Coleccion Problemas Etc II

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

� Entradas. Este circuito tiene 5 entradas: 2 para la entrada de datos X (x1x0), 2 para la entrada de datosY (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ólo3 bits pero, para el resultado del producto de dos números de dos bits se requieren 4 bits. Como elcircuito 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 × 4bits/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.

x1 y1

x>y x=y x<y

M1 I1 m1

x0 y0

x>y x=y x<y

M0 I0 m0

••

••

••

••

IM m

Comparador

M I m

y1 y0x1 x0

Page 193: Coleccion Problemas Etc II

Figura 2000-2-3: Sumador/Multiplicador diseñado con 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 4multiplexores 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 elSumador/Multiplicador.

Dirección memor iac x1 x0 y1 y0

ContenidoDir ección memoria

c x1 x0 y1 y0Contenido

A4 A3 A2 A1 A0 b3 b2 b1 b0 A4 A3 A2 A1 A0 b3 b2 b1 b0

0 0 0 0 00 0 0 0 10 0 0 1 00 0 0 1 1

0 0 0 00 0 0 10 0 1 00 0 1 1

1 0 0 0 01 0 0 0 11 0 0 1 01 0 0 1 1

0 0 0 00 0 0 00 0 0 00 0 0 0

0 0 1 0 00 0 1 0 10 0 1 1 00 0 1 1 1

0 0 0 10 0 1 00 0 1 10 1 0 0

1 0 1 0 01 0 1 0 11 0 1 1 01 0 1 1 1

0 0 0 00 0 0 10 0 1 00 0 1 1

0 1 0 0 00 1 0 0 10 1 0 1 00 1 0 1 1

0 0 1 00 0 1 10 1 0 00 1 0 1

1 1 0 0 01 1 0 0 11 1 0 1 01 1 0 1 1

0 0 0 00 0 1 00 1 0 00 1 1 0

0 1 1 0 00 1 1 0 10 1 1 1 00 1 1 1 1

0 0 1 10 1 0 00 1 0 10 1 1 0

1 1 1 0 01 1 1 0 11 1 1 1 01 1 1 1 1

0 0 0 00 0 1 10 1 1 01 0 0 1

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

A3

A2

A1

ROM

32 palabras × 4 bits

A0

A4

b2 b1 b0

x0

c

x1

y1

y0b3

Sumador / Multiplicador

y1 y0x1 x0

cb2 b1 b0b3

c

Page 194: Coleccion Problemas Etc II

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

Sumador/Multiplicador

r3

cComparador

MUX01

MUX01

MUX01

MUX01

c0c1

M I m

y1 y0x1 x0 y1 y0x1 x0

3 2 1 0 3 2 1 0 3 2 1 03 2 1 0

b3 b2 b1 b0

x1x0

y1y0

0

r2 r1 r0

Page 195: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

14

SOLUCION PROBLEMA 4.29El circuito que se quiere implementar tiene 2 entradas de 8 bits cada una para los operandos X e Y. Ademásel circuito tiene 5 entradas de 1 bit, C, ed, eI, d1 y d0. Luego el número total de bits de entrada de estecircuito es 21.Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el número total debits de salida del circuito es 8.

La tabla de verdad o tabla de funcionamiento del circuito constaría de 21 bits de entradas y de 8 bits desalida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mínima :

CT= 221 palabras x 8 bits/palabra

Afirmación I: La memoria total entre las dos ROM propuestas en la afirmación es C=217 palabras x8bits/palabra. Por lo que podría pensarse que esta afirmación es falsa. Pero si se lee atentamente elenunciado se observa que se trata de dos circuitos independientes, por un lado un comparador y por otroun 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 bitsde 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 debits 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 de8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidadmínima :

C= 216 palabras x 8 bits/palabra

Desplazador: Tiene 1 entradas de 8 bits para el operando X y 4 entradas de 1 bit ed, eI, d1 y d0 Luego elnú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 debits 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 de8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidadmínima :

C= 212 palabras x 8 bits/palabra

ROM216x8 8

H

ROM216x8

1

8

H

C

8

Y

X

8

edeid1d2

1

1

1

18

R

Page 196: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

15

Con el inversor se utiliza para habilitar uno de los dos módulos de memoria ROM, de acuerdo con el valorde la señal C=1(Comparador) y C=0 (Desplazador). Se tiene por tanto el esquema que se muestra en laFigura

La afirmación I es VERDADERA

Afirmación II: La memoria total de la ROM que proponen es inferior a CT, luego la afirmación es FALSA.

SOLUCION PROBLEMA 4.30De acuerdo con lo que se explica en el libro de teoría sobre las características de un sumador binariocompleto SBC, este se puede construir de al menos dos modos:

1) Se puede construir con dos niveles de puertas lógicas, un nivel de puertas AND y un nivel depuertas OR.

2) También, se puede construir con 2 SSB y una puerta OR.

Afirmación I: VERDADERA.Afirmación II: VERDADERA. Ya que si se construye del modo1, puesto que un SSB requiere de dosniveles de puertas AND-OR, habría que atravesar un total de 4 niveles como máximo, el retardo sería mayorque si se construye el SBC del modo 2.

SOLUCION PROBLEMA 4.31En el libro de teoría se deducen las expresiones de los bits de suma y de acarreo en un sumador binariocompleto (ver Problema 4.7). Por lo tanto, las expresiones E1 y E2 son equivalentes a:

011112

0111

)( cyxyxE

cyxE

⊕+=⊕⊕=

Es decir, E1 y E2 son respectivamente S1 y C1. Luego la respuesta correcta es la A

SOLUCION PROBLEMA 4.32De acuerdo con lo que se explica en el libro de teoría sobre las características de un sumador binario serie(ver Problema 4.9)

Afirmación I: FALSA. Ya que la complejidad de un sumador binario serie es siempre la mismaindependientemente del número de bits que tenga que sumar.

Afirmación II: VERDADERA.

Page 197: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

16

SOLUCION PROBLEMA 4.33

Afirmación I: Si se usa lógica combinacional de dos niveles y cada puerta tiene un retardo de 5 µs, elretardo total es t=2·5=10 µs. La afirmación es FALSA

Afirmación II: En un sumador binario paralelo (sumador con propagación de arrastre), en el caso másdesfavorable el resultado no será efectivo hasta que no haya pasado un tiempo t=n·δ, donde n es elnúmero de bits y δ es el tiempo que tarda un SBC en generar el arrastre para la etapa siguiente. Según elenunciado n=4 bits y δ=10 µs, luego t=40 µs. La afirmación es VERDADERA..

Page 198: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

17

SOLUCION PROBLEMA 4.34De acuerdo con las expresiones generales deducidas en el libro de teoría para un comparador de númerosde tamaño n>1 implementado mediante un circuito combinacional:

0121211

0121

0121211

.....

...

.....

mIIImImm

IIIII

MIIIMIMM

nnnnn

nn

nnnnn

−−−−−

−−

−−−−−

+++==

+++=

En el caso que se propone n=5, ya que el número Y de cuatro bits se puede considerar que tiene 5 bitssuponiendo y 4=0, luego

01234

012341234234344

IIIIIIMIIIIMIIIMIIMIMM

=++++=

Puesto que M 4 e I4 son:

44444

444

yxyxIyxM

+==

y además y4=0, entonces:

44

44

xIxM

==

Luego

01234

012341234234344

IIIIxIMIIIxMIIxMIxMxxM

=++++=

En la expresión de M, 14 =x , por lo tanto se llega

01234

01231232334

IIIIxIMIIIMIIMIMxM

=++++=

Afirmación I: VerdaderaAfirmación II: Verdadera

SOLUCION PROBLEMA 4.35Puesto que un sumador binario paralelo de números de 8 bits, se puede implementar con 8 SBC. Como unSBC se puede implementar con 2 SSB y 1 puerta OR. Entonces el sumador pedido requeriría 2·8=16 SSB y1·8=8 puertas OR.

Page 199: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

18

SOLUCION PROBLEMA 4.36DATOS

n Dos números binarios de 12 bits representados en código BCDn XBCD= 0101 0001 1001 YBCD= 0011 0100 0111n XBCB- YBCD expresado en código BCD?

El método más rápido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binarioa decimal y realizar la resta:Así:XBCD= 0101 0001 1001 = 51910

YBCD= 0011 0100 0111 = 34710

La resta XBCD - YBCD= 17210 que expresada en código BCD resulta 0001 0111 0010.

SOLUCION PROBLEMA 4.37

La solución a este problema se encuentra en el fichero probT4_37.pdf.

SOLUCION PROBLEMA 4.38DATOS

n Circuito secuencial síncrono con dos estados (S0, S1).y con dos entradas (x,y)n Q es la variable de estado, que puede tomar los valores 0 para referirse al estado S0 y 1 para

referirse al estado S1.n El circuito se diseña utilizando un elemento de memoria de tipo D.

FORMA 1:La forma más adecuada de resolver este ejercicio consiste en construir la tabla de la verdad de cada una delas soluciones propuestas y compararlas con los valores de D(t) obtenidos de la tabla de estados delenunciado.

(Q(t), x , y) De la TablaD(t)

Solución AyxQyxQtD ····)( +=

Solución ByxxyQtD ··)()( ++=

Solución CyxQtD ··)( =

0 0 0 0 0 0 00 0 1 0 0 0 00 1 0 1 1 1 00 1 1 0 0 0 01 0 0 1 1 1 01 0 1 0 1 0 01 1 0 1 0 1 11 1 1 1 0 1 0

Luego la respuesta correcta es la B), ya que es la única que genera una D(t) igual a la indicada en elenunciado (columna 2).

Una misma función lógica puede expresarse de múltiples maneras, todas ellas equivalentes entre sí. Comose deduce a continuación, en este caso la solución B) coincide con la expresión simplificada de la funciónde entrada al elemento de memoria, D(t)=Q(t+1).

Page 200: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

19

FORMA 2:

Otra forma alternativa de hacer este problema es obteniendo la función lógica D(t) a partir del método dereducción de Karnough. tal y como se muestra en la siguiente figura:

Q \ xy 00 01 11 10

0 0 0 0 1

1 1 0 1 1

Luego la expresión simplificada obtenida con este método es:

yxxyQyxxQyQtD ·)·(···)( ++=++=

¡¡Atención!!: El que la expresión simplificada obtenida por el método de Karnough sea igual a la expresiónB) es condición suficiente para afirmar que la solución correcta es la B), sin embargo no es una condiciónnecesaria, ya que al plantear el enunciado del ejercicio, podría haberse sustituido la expresión B) porcualquier otra de sus formas equivalentes como por ejemplo:

yxxQxyQxyQyxxQxxyQtD ········)·(·)( +++=+++=

SOLUCION PROBLEMA 4.39DATOS

n Dos números binarios de 12 bits representados en código BCDn XBCD= 1001 0011 0101 YBCD= 0001 0101 0001n Resto división entera XBCB/YBCD expresado en binario?

El método más rápido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binarioa decimal y realizar la resta:Así:XBCD= 1001 0011 0101 = 93510

YBCD= 0001 0101 0001 = 15110

El resto de la división entera XBCD/YBCD= 02910 que expresado en binario resulta 0000 0001 1101.

Page 201: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

4 - 37

Page 202: Coleccion Problemas Etc II

Problema - Junio 1ª semana:

A) (1.5 puntos) Diseñar el registro de desplazamiento de 4 bits de la figura de la izquierda. E0, E1, E2, E3representan la entrada paralelo; S0, S1, S2, S3 la salida paralelo; C1, C2 las líneas de control; y CK la señalde 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 enparalelo de la entrada y mantener la información almacenada sin modificar (no operación: NOP). Lacodificación de las entradas de control se muestra en la tabla adjunta.

B) (1 punto) Diseñar el mismo registro del apartado A) pero con la estructura entrada serie / salida serie que semuestra en la figura de la derecha.

C) (1.5 puntos) Diseñar el mismo registro del apartado A) pero de modo que en lugar de realizardesplazamientos lógicos (LICS y LDCS) realice desplazamientos algebraicos (también llamadosaritméticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico-Derecha - Cerrado - Simple).

En los diseños deben utilizarse multiplexores y elementos de memoria D. Explicar detalladamente cada paso.

Figura 1: Registros de desplazamiento

E3 E2 E1 E0

S3 S2 S1 S0

C2

C1 CK

Paralelo/Paralelo

E

S

C2

C1 CKSerie/Serie

Page 203: Coleccion Problemas Etc II

1

Solución

Para resolver este problema conviene ver las páginas 255 y ss. del texto base de teoría, así como losproblemas 4-37 y 4-38 de la primera edición del libro de problemas o los problemas 4-39 y 4-40 de la segundaedició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 muestraestos dos tipos de desplazamientos para un registro de 4 bits como el que pide diseñar el enunciado delproblema.

Figura 2: Representación gráfica de los desplazamientos LDCS y LICS

Por tanto, la descripción del comportamiento de la salida del circuito es la siguiente:

donde Q(t) representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t. Análogamente Q(t +1)representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t+1.

Para diseñar el registro se van a utilizar 4 biestables tipo D. En la entrada de cada uno de estos 4 biestables secoloca un multiplexor que, en función de las señales de control C1 y C2 del registro, seleccione el valor adecuado aintroducir en cada registro para que se comporte según la descripción mencionada antes. El resultado del diseño semuestra en la Figura 3.

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

S

LDCS LICS

2 1 0 3

0 3 2 1

( ) si Control = NOP( , , , ) si Control = LICS

( 1)( , , , ) si Control = LDCS( 3, 2, 1, 0) si Control = CARGA

Q tQ Q Q Q

Q tQ Q Q QE E E E

+ =

Page 204: Coleccion Problemas Etc II

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 LDCSy LICS, pero con entrada serie / salida serie. Ni en el módulo de la Figura 1 ni el enunciado se menciona enqué bit se comienza la carga serie, ni en qué bit se efectúa la lectura serie. Siguiendo el criterio del libro detexto, para resolver este problema se supone que se sigue el esquema de la Figura 4 para estas operaciones.

.

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:

Haciendo las modificaciones oportunas en el diseño de la Figura 3 para contemplar los cambios pedidos, elresultado se muestra en la Figura 5.

MUX3 2 1 0

Q3D

MUX3 2 1 0

Q2D

MUX3 2 1 0

Q0D

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�����������

Reloj

C1C2

S0S2S3

E3

••

MUX3 2 1 0

Q1D

S1

E2 E1 E0E3 E2 E1 E0

S3 S2 S1 S0

C2

C1 CK

Paralelo/Paralelo

• •• •

• • • •

• • • •• • ••

•• • •

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������

RelojCargar

E

Q3 Q0Q2

Q

Q1

2 1 0 3

0 3 2 1

3 2 1

( ) si Control = NOP( , , , ) si Control = LICS

( 1)( , , , ) si Control = LDCS( , , , ) si Control = CARGA

Q tQ Q Q Q

Q tQ Q Q QE Q Q Q

+ =

Page 205: Coleccion Problemas Etc II

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 Tabla2. En la Figura 6 se muestra la representación gráfica de los dos tipos de desplazamientos solicitados en esteapartado, AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico- Derecha - Cerrado -Simple), para un registro de 4 bits.

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:

Operación C2 C1

NOP 0 0

AICS 0 1

ADCS 1 0

CARGA 1 1

Tabla 2: Codificación de las entradas de control

MUX3 2 1 0

Q3D

MUX3 2 1 0

Q2D

MUX3 2 1 0

Q0D

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�����������

Reloj

C1C2

S

E

••

MUX3 2 1 0

Q1D

• •• •

• • • •• • ••

•• • • E

S

C2

C1 CKSerie/Serie

• • •

ADCS AICS

S S

3 1 0 2

3 0 2 1

( ) si Control = NOP( , , , ) si Control = AICS

( 1)( , , , ) si Control = ADCS( 3, 2, 1, 0) si Control = CARGA

Q tQ Q Q Q

Q tQ Q Q QE E E E

+ =

Page 206: Coleccion Problemas Etc II

Siguiendo el mismo procedimiento de antes, la Figura 7 contiene el diseño pedido.

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

MUX3 2 1 0

Q3D

MUX3 2 1 0

Q2D

MUX3 2 1 0

Q0D

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

Reloj

C1C2

S0S2S3

E3

••

MUX3 2 1 0

Q1D

S1

E2 E1 E0

E3 E2 E1 E0

S3 S2 S1 S0

C2

C1 CK

Paralelo/Paralelo• •

• ••

• • • •

• • • ••• ••• •••

Page 207: Coleccion Problemas Etc II

TEMA 4: UNIDAD ARITMETICO-LOGICA Solución a los problemas propuestos en examen

20

SOLUCION PROBLEMA 4.40DATOS

n X= 010 1000 1110n Secuencia de desplazamiento LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS,

Con la notación LICS se está haciendo referencia a un desplazamiento de un bit, de tipo Lógico, hacia laIzquierda, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LICS(X)= 101 0001 1100

Mientras que con la notación LDCS se está haciendo referencia a un desplazamiento de un bit, de tipoLógico, hacia la Derecha, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X seobtiene:

LDCS(X)= 001 0100 0111

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

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

Se observa que la aplicación de un desplazamiento LICS seguido por un desplazamiento LDCS se cancelany se sigue manteniendo X.

En consecuencia, el resultado de la secuencia de desplazamientos:

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

es equivalente a la realización de una único desplazamiento LDCS (X). Es decir, el resultado es:

LDCS(X)= 001 0100 0111

SOLUCION PROBLEMA 4.41DATOS

n C0= 2n palabras x 1bit/palabran Implementación de un sumador de dos números de n bits y 2n bits

La suma de un número X de n bits (Xn-1, Xn-2,...,X0) y de un número Y de 2n bits (Y2n-1, Y2n-2,..., Y0), da comoresultado 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 :

)/)(12(2

)/)(12(2

)/(º2

3

2

º

palbitsnpalC

palbitsnpalC

palbitssalidasNpalC

nT

nnT

entradasdeNT

+×=

+×=

×=+

Luego el número de módulos N de capacidad C0 que se requieren para implementar una memoria decapacidad CT es:

)12(2)/(1

)/(1222 2

3

0

+×=+

== npalbits

palbitsnx

palpal

CC

N nn

nT módulos

Page 208: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIA DECOMPUTADORES II

TEMA 5: Diseño de transferenciaentre registros

SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 209: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas.

2

CONTENIDO

SOLUCION PROBLEMA 5.1........................................................................................................................................ 3SOLUCION PROBLEMA 5.2........................................................................................................................................ 4SOLUCION PROBLEMA 5.3........................................................................................................................................ 5SOLUCION PROBLEMA 5.4...................................................................................................................................... 14SOLUCION PROBLEMA 5.5...................................................................................................................................... 15SOLUCION PROBLEMA 5.6...................................................................................................................................... 15SOLUCION PROBLEMA 5.7...................................................................................................................................... 16SOLUCION PROBLEMA 5.8...................................................................................................................................... 16SOLUCION PROBLEMA 5.9...................................................................................................................................... 17SOLUCION PROBLEMA 5.10.................................................................................................................................... 17SOLUCION PROBLEMA 5.11.................................................................................................................................... 17SOLUCION PROBLEMA 5.12.................................................................................................................................... 18SOLUCION PROBLEMA 5.13.................................................................................................................................... 18SOLUCION PROBLEMA 5.14.................................................................................................................................... 19SOLUCION PROBLEMA 5.15.................................................................................................................................... 19SOLUCION PROBLEMA 5.16.................................................................................................................................... 19SOLUCION PROBLEMA 5.17.................................................................................................................................... 20

Page 210: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

3

SOLUCION PROBLEMA 5.1n Diseñar una UC con memoria ROM con:

n 200 estadosn Genere 37 señales de control independientes entre si.n 9 señales de condición.

n En cada estado se consulta una señal de condición como máximo.n Interesa sobre todo minimizar el tamaño del multiplexor a utilizar.

Puesto que en cada estado se consulta una señal de condición como máximo, es posible utilizar para eldiseño de la Unidad de Control las siguientes configuraciones:a) Memoria ROM + registro + multiplexor de selección por estado.b) Memoria ROM + registro + multiplexor de selección por campo.

De los datos del enunciado se deduce que:variables de estado n=8 ya que 28=256>200 estadosseñales de control : m=37señales de condición : q=9 ≤ (2h =16) → h=4

En la configuración a) según lo estudiado en teoría, el multiplexor utilizado tiene 2n=28=256 entradas y n=8señales de selección.

En la configuración b) según lo estudiado en teoría, el multiplexor utilizado tiene 2h=24=16 entradas y h=4señales de control.

Luego es en la configuración b) donde se minimiza el tamaño del multiplexor .Afirmación I: FalsaAfirmación II: Verdadera

Page 211: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

4

SOLUCION PROBLEMA 5.2DATOS

n Diseñar una UC con :n 18 estadosn Genere m=30 señales de control independientes entre si.n q=4 señales de condición.

n Utilizar memoria ROM, pero minimizando la capacidad de la misma.n En cada estado se utiliza como máximo una condición.n Utilizar un multiplexor por selección por campo

Se tienen 18 estados luego es necesario n=5 variables de estado para codificarlos.La capacidad de la ROM necesario es:

( ) ( ) palbitxpalxqmnC n /37223052log2 662

1 =++=++×= +

El registro tiene la siguiente estructura:

log2q bits n bits

Luego debe de tener una capacidad de

CR=log2q+n=2+5=7 bits

El multiplexor al ser del tipo de selección por campo, tiene q=4 entradas y requiere de log2q=2 señales deselección.

El esquema de la Unidad de Control implementada con los anteriores elementos sería el que se muestra enla siguiente figura:

ROM26 x 37 bits

q

5

m=30

MUX(4)

4

2 5

61

log2q n

2

Page 212: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

5

SOLUCION PROBLEMA 5.3

a) DISEÑO DE LA UNIDAD DE PROCESAMIENTO1) El primer paso es conocer el tipo y número decomponentes necesarios para diseñar la Unidad deProcesamiento. De la observación del algoritmo se deduceque es necesario:• Un registro de 8 bits para el almacenamiento de A.• Un registro de 8 bits para el almacenamiento de B.• Un contador módulo-8.• Un elemento de cálculo (UAL) que realice la suma y la

resta de dos números binarios de 8 bits.• Puesto que al registro A se le pueden cargar datos

desde el bus (A←Bus) o desde la UAL (A←A - B) esnecesario un multiplexor de dos salidas MUX(2).

• Puesto que al registro B se le pueden cargar datosdesde el bus (B←Bus) o desde la UAL (B←B - A) es necesario un multiplexor de dos salidas MUX(2).

• Como tanto el registro A como el registro B deben volcar su contenido al Bus ( Bus←A, Bus←B), esnecesaria la utilización de 2 puertas triestado de conexión unidireccional con control de 8 bits.

• Se necesita una puerta AND, que reciba como entradas las 3 salidas del contador, de tal forma que lasalida de la puerta valdrá 1 cuando el contador alcance el valor 7(111).

• Finalmente se comprueba, mediante la lectura atenta del enunciado del problema, que todos loscomponentes que se necesitan son elementos disponibles.

2) El segundo paso es definir las señales de condición que serán salidas de la Unidad de Procesamiento.

De la observación del algoritmo se deduce que hay dos señales de condición:

s0 que valdrá 1 cuando el contador alcance el valor 7. s1 que corresponde al bit menos significativo del número A. Si s1=0 el número es par sino es

impar

3) El tercer paso es numerar los puntos o señales de control y especificar la función que realiza cada unade estas señales.

-Señales de controlLuego la Unidad de Procesamiento diseñada requiere de 11 señales de control (c10,.....,c0).c0 selecciona Bus si vale 0, selecciona UAL si vale 1.c1 selecciona Bus si vale 0, selecciona UAL si vale 1.c2 cuando vale 1 , se realiza la microperación Bus ← Ac3 cuando vale 1 , se realiza la microperación Bus ← Bc5c4 control del registro de desplazamiento A.(Ver enunciado)c7c6 control del registro de desplazamiento B. (Ver enunciado)c8 control de la UAL ( si vale 0 :suma, si vale 1 :resta)c10c9 control del contador. (Ver enunciado)

-ComentarioLas entradas ED y EI de los registros de desplazamiento no se utilizan y pueden conectarse a 0 o a 1indistintamente.

1: Declaración: A[8], B[8], Cont[3]; Bus[8]2: A ← Bus;3: B ← Bus, Cont=0;4: while Cont ≠ 75: if A es par then6: A ← A – B, Cont = (Cont +1) mod 8;7: else8: B ← B + A, Cont = (Cont -1) mod 8;9: endif;10: endwhile;11: Bus ← B;12: Bus ← A;13: Parar;

Page 213: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

6

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

MUX0 1 MUX0 1 MUX0 1 MUX0 1

EDEI

EDEI

0

1A

EDEI

EDEI

0

1B

UALBA

BUS

c0c1

c2 c3

c4c5

c6c7

c8

0

1CONT c9

c10

s1=A0 s0

8

Reloj

0

000

Figura 1 : Diseño de la Unidad de Procesamiento

b)DISEÑO DE LA UNIDAD DE CONTROL.Del algoritmo se deduce que un posible diagrama de estados (existen varias posibilidades) para la Unidadde Control es el que se muestra en la Figura 2.

S0 S1 S2 S5 S6 S7

S3 S4

0s

10ss 10ss

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 estadocorrespondería a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de lasseñales de condición s 1 y s 0 , se puede pasar a S3(s1=0 y s 0=0, A es par y el contador no ha llegado a 7) o aS4(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 estediagrama se tienen 8 estados

Page 214: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

7

En la Tabla 1 se muestran las microperaciones y las señales de control asociadas a cada estado.

Estado Microoperaciones Señales de ControlS0 A←Bus

540 cccS1 B←Bus,

Cont=0

761 ccc

910ccS2 ------- ---------S3 A←A-B

cont=(cont+1)mod8

5408 cccc

910ccS4 B←A+B

cont=(cont-1)mod8

7618 cccc

910ccS5 Bus←B

3cS6 Bus←A

2cS7 Parar ----------Tabla 1 : Microperaciones y señales de control asociadas a cada estado

Una vez definido el diagrama de estados y las microoperaciones y señales de control asociadas con cadaestado estamos en condiciones de diseñar la Unidad de Control mediante la técnica de los elementos deretardo, 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 observaratentamente 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 utilizaran8 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, recibeentradas del estado S1, del estado S3 y del estado S4 por lo que debe utilizarse una puerta OR de tresentradas. Por otro lado el estado S7, recibe entrada del estado S6 y del propio estado S7, por lo que se debeutilizar 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 tengacomo señales de selección las señales de condición que regulan la transición desde ese estado hacia losotros estados. En nuestro problema se observa que en el estado S2, dependiendo del valor de las señalesde condición s 0 y s 1, 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=1independientemente del valor de s1), por lo que se utilizará un demultiplexor con 2 señales de selección (s0

y s 1) y 4 salidas( salida 0 hacia S3, salida 1 hacia S4 y salida 2 y 3 hacia S5).

4) La salida de cada elemento de memoria, debe llevar rotuladas las señales de control que va activar y queserán las correspondientes al estado al que está asignado el elemento de memoria. En nuestro problema lasseñ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 loselementos de memoria tienen una entrada síncrona (CK) para la señal de reloj.

La Unidad de Control diseñada se muestra en la Figura 3. Expliquemos el funcionamiento de esta Unidadde Control. Inicialmente se activa la señal asíncrona de SET del elemento de memoria asignado al estado S0

y la señal asíncrona de CLEAR de los restantes elementos de memoria, así el elemento de memoriaasignado a S0 contendrá un 1, mientras que los restantes elementos de memoria contendrán un 0. Este 1 seva a ir propagando por los diferentes elementos de memoria de acuerdo al diagrama de la Figura 2, en cadaciclo de reloj, de tal forma que en un instante de tiempo determinado solamente habrá un estado activo, esdecir un elemento de memoria conteniendo un 1 los restantes elementos de memoria contendrán el valor 0

Page 215: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

8

S0S0

S1S1

S2S2

S3S3

S4S4

S5S5

S6S6

S7S7

0 1 2 3

s0

s1

540 ccc

910761 ccccc

−−−−

9105408 cccccc

9107618 cccccc

3c

2c

CK CLEAR

SET

Figura 3 :Unidad de Control diseñada con un elemento de memoria por estado

Page 216: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

9

OTRAS POSIBILIDADES DE DISEÑAR LA UNIDAD DE CONTROL DEL problema 5.3

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

- Con lo mostrado en las páginas 3-6 se habría resuelto el problema de la forma que se indica en elenunciado. 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. Porotro parte se tienen q=2 (s0 y s 1) variables de condición y m=11 señales de control. Entonces la capacidadde la memoria ROM necesaria es :

C= 2(3+2) palabras x (3+11) bits/palabra = 25palabras x 14 bits/palabra.

- En la Tabla 2 se muestra el contenido de la memoria ROM y en la Figura 4 el esquema de la Unidad deControl

Dirección de la ROMA4A3A2A1A0

Contenido de la memoria ROMp13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

Estado actual Cond PróximoEstado

Señales de control

Q2 Q1 Q0 s0 s1 Q2 Q1 Q0 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0

0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 00 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 00 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 00 0 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 00 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 00 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 00 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 00 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 00 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 11 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 01 0 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 01 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 01 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 01 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 01 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 01 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 01 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 01 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 01 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 01 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 01 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 01 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Tabla 2 : Contenido de la memoria ROM

Page 217: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

10

ROM

25 x 14

Registro

Q(t+1)

Q(t)

A4 A3 A2

A1 A0

3

11

Señales de control

Señales de condición

3

2

Figura 4 : Diseño de la Unidad de Control con una memoria ROM y un registro

2) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM, UN REGISTRO YUN MULTIPLEXOR DE SELECCION POR ESTADO.

Si el diagrama de estados de la Unidad de Control de la Figura 2, se modifica añadiendo un estado dondese pregunte sobre el valor de s 1, entonces para pasar de un estado a otro solamente se necesita conocer elvalor de una única señal de condición. Este nuevo diagrama de estado se muestra en la Figura 5.

S0 S1 S2 S6 S7 S8

S4 S5

0s

1sS3

0s

1s

S0 S1 S2 S6 S7 S8

S4 S5

0s

1sS3

0s

1s

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 estadocorrespondería a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de lasseñales de condición s 0, 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 escuando pasa a S6. Desde S6 pasa a S7, y desde S7 pasa a S8 donde se detiene ya que es el estado de finaldel 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ónpor estado y m=11 señales de control. Entonces la capacidad de la memoria ROM necesaria es :

C= 2(4+1) palabras x (4+11) bits/palabra = 25 palabras x 15 bits/palabra.

- En la Tabla 3 se muestra el contenido de la memoria ROM y en la Figura 6 el esquema de la Unidad deControl

Page 218: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

11

Dirección de la ROMA4A3A2A1A0

Contenido de la memoria ROMp14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

Estado actual Cond PróximoEstado

Señales de control

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 00 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 00 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 0 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 1 0 0(s0) 0 0 1 1 0 0 0 0 0 0 0 0 0 0 00 0 1 0 1(s0) 0 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 0(s1) 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1(s1) 0 1 0 1 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 00 1 0 1 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 00 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 00 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 00 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 00 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 01 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 01 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 rangode direcciones 10010 hasta 11111 sin ser utilizado

ROM

25 x 15

Registro

Q(t+1)

Q(t)

A4 A3 A2 A1

A0

4

11

Señal de condición

41

00s0s1

0000

0000

0000

MUX(16)

4

Figura 6 : Diseño de la Unidad de Control con una memoria ROM, un registro y un multiplexor porselección de estado

Comentario : El multiplexor al tener 4 señales de selección (Q3, Q2, Q1, Q0), tiene 16 entradas disponiblesMUX(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.

Page 219: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

12

3) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM, UN REGISTRO YUN MULTIPLEXOR DE SELECCION POR CAMPO.

En el diagrama de estados de la Figura 5 se tienen 9 estados, por lo que se necesitarían n=4 variables deestado (Q3, Q2, Q1, Q0) para codificarlos. Por otro parte se tienen q=2 (s0 en el estado S2 y s 1 en el estado S3)variables de condición y m=11 señales de control. Entonces la capacidad de la memoria ROM necesaria sise desea utilizar un multiplexor de selección por campo es:

C= 2(4+1) palabras x (log22+ 4+11) bits/palabra = 25 palabras x 16 bits/palabra.

- En la Tabla 4 se muestra el contenido de la memoria ROM y en la Figura 7 el esquema de la Unidad deControl

Dirección de la ROMA4A3A2A1A0

Contenido de la memoria ROMp15p14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

Estado actual Cond SelMUX

PróximoEstado

Señales de control

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 00 0 0 0 1 - 0 0 0 1 0 0 0 0 0 1 1 0 0 0 00 0 0 1 0 0(s0) 0 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 0 1 1 0(s0) 0 0 1 0 1 1 0 1 1 0 0 0 0 0 00 0 1 0 0(s0) 1(s1) 0 0 1 1 0 0 0 0 0 0 0 0 0 0 00 0 1 0 1(s0) - 0 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 0(s1) - 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1(s1) - 0 1 0 1 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0(s0) 0 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 0 0 1 0(s0) 0 0 1 0 1 0 1 0 0 1 1 0 0 0 10 1 0 1 0 0(s0) 0 0 1 0 0 1 0 1 1 0 0 0 0 1 00 1 0 1 1 0(s0) 0 0 1 0 0 1 0 1 1 0 0 0 0 1 00 1 1 0 0 - 0 1 1 1 0 0 0 0 0 0 0 1 0 0 00 1 1 0 1 - 0 1 1 1 0 0 0 0 0 0 0 1 0 0 00 1 1 1 0 - 1 0 0 0 0 0 0 0 0 0 0 0 1 0 00 1 1 1 1 - 1 0 0 0 0 0 0 0 0 0 0 0 1 0 01 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Tabla 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 rangode 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 elpró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 delmultiplexor. Por otro lado, p15=1 cuando el próximo estado es S3, de tal forma que la señal de condición queutiliza es la s1, que ha sido conectada a la entrada 1 del multiplexor

Page 220: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

13

ROM25 x 16 bits

s0

4Q(t+1)

11 Señales de control

MUX(2)

1 4

1

p15

s1

0

1

1

Q(t)

A4 A3 A2 A1

A0Señal decondición

Figura 7 : Diseño de la Unidad de Control con una memoria ROM, un registro y un multiplexor deselección por campo

Comentario : El multiplexor tiene log22=1 señal de selección y 2 entradas disponibles MUX(2). La entrada0 se debe conectar a la señal de condición s 0 y la entrada 1 a la señal de condición s1.

Comentario : Indicar que para diseñar la Unidad de Control, con el diagrama de estados de la Figura 5,utilizando únicamente una ROM y un registro. La capacidad de la ROM necesaria sería 24+2

palabras+(11+4) bits/palabras. Que es claramente mayor a las dos propuestas anteriores..

Page 221: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

14

SOLUCION PROBLEMA 5.4DATOS

n Diseñar una UC con memoria ROM con:n 200 estadosn Genere 37 señales de control independientes entre si.n 9 señales de condición.

n En cada estado se consulta una señal de condición como máximo.n Utilizar un multiplexor con selección por campo.

Del enunciado se deduce que se debe diseñar una Unidad de Control con los siguientes componentes:Memoria ROM + registro + multiplexor de selección por campo.

Además de los datos del enunciado se deduce que:variables de estado n=8 ya que 28=256>200 estadosseñales de control : m=37señales de condición : q=9 ≤ 2h →h=4

El número de entradas totales del multiplexor es 2h= 24=16, de las cuales sólo se utilizan 9 (entradas 0 a 8),una para cada señal de condición, el resto ( desde la entrada 9 hasta la 15) se colocan a 0.

La capacidad de la ROM sería :

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

C = 29 palabras x 49 (bits/palabra)

La respuesta correcta es la C

Page 222: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

15

SOLUCION PROBLEMA 5.5

La solución de este problema se encuentra en el fichero probT5_05.pdf.

SOLUCION PROBLEMA 5.6DATOS

n Diseñar una UC con memoria ROM con:n 18 estadosn Genere 30 señales de control independientes entre si.n 4 señales de condición.

n En cada estado se consulta una señal de condición como máximo.n Utilizar un multiplexor con selección por estado

Del enunciado se deduce que se debe diseñar una Unidad de Control con los siguientes componentes:Memoria ROM + registro + multiplexor de selección por estado.

Además de los datos del enunciado se deduce que:variables de estado n=5 ya que 25=32>18 estadosseñales de control : m=30señales de condición : q=4

• La capacidad de la ROM necesario es:

( ) ( ) palbitsxpalxmnC n /35230522 661 =+=+×= +

• 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 deselección. Es decir es un MUX 32 :1.

La respuesta correcta es la A.

Page 223: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 5

Page 224: Coleccion Problemas Etc II

3UREOHPD�����

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 losmódulos dibujados abajo (Figura 99-2-1): registros de desplazamiento de 8 bits, una UAL con dosentradas de 8 bits cada una, un contador módulo-8 y circuitos triestado de conexión unidireccional concontrol 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 vuelcandatos 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 Procesamientodiseñada en el apartado a) empleando un registro de desplazamiento. Detalle y explique claramentetodos y cada uno de los pasos seguidos hasta obtener la solución.

Figura 99-2-1: Módulos del problema y debajo su tabla de funcionamiento

6ROXFLyQ

a) A la vista del algoritmo propuesto, la Unidad de Control ha de tener dos registros A y B. Se debe podercargar el registro A bien desde el bus o bien desde la UAL; sólo es necesario poder cargar el registro B desde elbus. Ambos registros deben poder enviar su contenido a la UAL para realizar operaciones aritméticas con ellos. Elciclo 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 losrequisitos. 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. Lasentradas 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 decondició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 5ceros en las posiciones más significativas:

0 0 0 0 0 CONT2 CONT1 CONT0

Page 225: Coleccion Problemas Etc II

Figura 99-2-2: Unidad de Procesamiento

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

Señales de Control Operación

C0 Selecciona BUS (1) o UAL (0)

C1, C2 Control del registro de desplazamiento A (según Figura 99-2-1)

C3, C4 Control del registro de desplazamiento B (según Figura 99-2-1)

C5 Suma (0) o resta (1)

C6, C7 Control del contador(según Figura 99-2-1)

C8 Selecciona B (0) o CONT (1)

Tabla 99-2-1: Significado de las señales de control

A0

1

ED

EI

B0

1

ED

EI

C8

C9 C10

C1

C2

C3

C4

C7

C6

CK

CONT

8 BUS

3

0

1CK CK

MUX0 1

MUX0 1C0

5

A B

UALC5

8

8

1 1

s0(=A7) s1(=CONT2)

“0”

Page 226: Coleccion Problemas Etc II

b) El diagrama de estados de la Unidad de Control que realiza el algoritmo pedido en la Unidad deProcesamiento propuesta se muestra en la Figura 99-2-3 (la solución no es única y no se ha buscado minimizar elnúmero de estados). El significado de cada uno de sus estados se detalla en la Tabla 99-2-2.

C9 A → BUS

C10 B → BUS

Estado Micr ooperaciones Señales de control

S0 A ← BUS C0, C1, C2

S1B ← BUSCONT = 0

C3, C4

C6, C7

S2 ------ ------

S3 ------ ------

S4 A ← A + CONT C0, C1, C2, C5, C8

S5 A ← B + A C0, C1, C2, C5, C8

S6 CONT ← (CONT + 1) mod 8 C6, C7

S7 BUS ← B C10

S8 BUS ← A C9

S9 (Parar) ------

Tabla 99-2-2: Significado de los estados

Señales de Control Operación

Tabla 99-2-1: Significado de las señales de control

Page 227: Coleccion Problemas Etc II

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

La tabla de transición de estados corespondiente para una Unidad de Control basada en un registro dedesplazamiento se muestra en la Tabla 99-2-3. La codificación de los estados se ha realizado procurandominimizar el número de cargas en paralelo del registro. La Tabla 99-2-4 está más detallada, y tiene en cuenta lacodificación de los estados.

S0

S5

S6

S4

S3

S2

S1

S7

S9

S8

s0

s1

s0

s1

Page 228: Coleccion Problemas Etc II

Estado Código Condición Transición Operación ED

S0 0 0 0 0 (0) --- S0 → S1 DD 1

S1 1 0 0 0 (8) --- S1 → S2 DD 1

S2 1 1 0 0 (12)s0s0

S2 → S3S2 → S7

DDL

1-

S3 1 1 1 0 (14)s1s1

S3 → S4S3→ S5

DDL

1-

S4 1 1 1 1 (15) --- S4 → S6 L -

S5 0 1 0 1 (5) --- S5 → S6 DD 1

S6 1 0 1 0 (10) --- S6 → S2 L -

S7 0 1 1 1 (7) --- S7 → S8 DD 1

S8 1 0 1 1 (11) --- S8 → S9 DD 1

S9 1 1 0 1 (13) --- S9 → S9 --- -

Tabla 99-2-3: Tabla de transición de estados

Estado CondiciónPróximo estado

w1 w0 E3 E2 E1 E0 Operación ED S. de control

S0 = 0 0 0 0 (0) --- S1 = 1 0 0 0 0 1 ----- DD 1 C0, C1, C2

S1 = 1 0 0 0 (8) --- S2 = 1 1 0 0 0 1 ----- DD 1 C3, C4, C6, C7

S2 = 1 1 0 0 (12)s0s0

S3 = 1 1 1 0S7 = 0 1 1 1

0 11 1

-----0 1 1 1

DDL

1-

------

Tabla 99-2-4: Tabla de transición de estados teniendo en cuenta la codifi cación de los mismos

Page 229: Coleccion Problemas Etc II

El esquema de la Unidad de Control se muestra en la Figura 99-2-4. Las expresiones lógicas de sus entradasse 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 puertaslógicas. La entrada ED del registro está fija a 1 y la entrada EI no se utiliza.

S3 = 1 1 1 0 (14)s1s1

S4 = 1 1 1 1S5 = 0 1 0 1

0 11 1

-----0 1 0 1

DDL

1-

------

S4 = 1 1 1 1 (15) --- S6 = 1 0 1 0 1 1 1 0 1 0 L - C0, C1, C2, C5, C8

S5 = 0 1 0 1 (5) --- S6 = 1 0 1 0 0 1 ----- DD 1 C0, C1, C2, C5, C8

S6 = 1 0 1 0 (10) --- S2 = 1 1 0 0 1 1 1 1 0 0 L - C6, C7

S7 = 0 1 1 1 (7) --- S8 = 1 0 1 1 0 1 ----- DD 1 C10

S8 = 1 0 1 1 (11) --- S9 = 1 1 0 1 0 1 ----- DD 1 C9

S9 = 1 1 0 1 (13) --- S9 = 1 1 0 1 0 0 ----- --- - ------

Estado CondiciónPróximo estado

w1 w0 E3 E2 E1 E0 Operación ED S. de control

Tabla 99-2-4: Tabla de transición de estados teniendo en cuenta la codificación de los mismos

Page 230: Coleccion Problemas Etc II

Figura 99-2-4: Unidad de Control mediante un registro de desplazamiento (faltan por implementar las señales Ei y wi)

3UREOHPD�����

.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Dec

odifi

cado

r

3210

Q3 Q2 Q1 Q0

E3 E2 E1 E0

ED

EI

>

CK

1w0

w1

S0 (C0, C1, C2)

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

S7 (C10)

S1 (C3, C4, C6, C7)

S6 (C6, C7)

S8 (C9)

S2 (---)

S9 (---)

S3 (---)

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

Reg. Desp.

Page 231: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

16

SOLUCION PROBLEMA 5.7DATOS

n Diseñar una UC con:n 32 estadosn Genere 4 señales de control independientes entre si.n 2 señales de condición.

n En cada estado se pueden consultar las dos señales de condición simultáneamente.

De los datos del enunciado se deduce lo siguiente ;variables de estado n=5 ya que 25=32 estadosseñales de control : m=4señales de condición : q=2

Vamos a ir analizando cada una de las afirmaciones:A) Si se utiliza la técnica de los elementos de retardo sería necesario utilizar 32 elementos de retardo, uno

por cada estado y no 5 como dice el enunciado. Luego la afirmación es falsa.B) Si se utiliza una memoria ROM se requiere que tenga una capacidad de C= 2n+q x (n+m)= 27 palabras x 9

bits/palabra. Luego la afirmación es falsa.C) Si se utiliza un contador, este debe ser de módulo- 25. Luego la afirmación es falsa.

La respuesta correcta es la D.

SOLUCION PROBLEMA 5.8DATOS

n Diseñar una UC con:n 64 estadosn Genere 30 señales de control independientes entre si.n 5 señales de condición.

n En cada estado se pueden consultar diferentes señales de condición simultáneamente.

De los datos del enunciado se deduce lo siguiente ;variables de estado 64=26 =>n=6señales de control : m=30señales de condición : q=5

Vamos a ir analizando cada una de las afirmaciones:A) Si se utiliza la técnica de los elementos de retardo sería necesario utilizar 64 elementos de retardo, uno

por cada estado y no 6 como dice el enunciado. Luego la afirmación es falsa.B) Si se utiliza una memoria ROM se requiere que tenga una capacidad mínima de C=

2n+q x (n+m)= 211 palabras x 36 bits/palabra. La afirmación es falsaC) Si se utiliza un contador, este debe ser de módulo- 26. Luego la afirmación es Verdadera.

La respuesta correcta es la C.

Page 232: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

17

SOLUCION PROBLEMA 5.9

La solución de este problema se encuentra en el fichero probT5_09.pdf.

Explicación previa a la resolución del problema

En el algoritmo que hay que implementar se plantea la multiplicación y la división de un número binario por2. Para realizar estas operaciones es necesario recordar como se pasa un número binario a decimal:

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

n-2+...+x020

• La multiplicación de un número binario por 2 es:

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

n-1+...+x02

Lo que es equivalente a desplazar el número binario un bit hacia la izquierda e introducir un 0 en laposición menos significativa.

Ejemplos:El número 410= (0100)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0 enla 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 enla posición menos significativa se obtiene (0110)2= 610= 2 x 310.

• La división entera de un número binario por 2 es:

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

n-3+...+x120

Lo que es equivalente a desplazar el número binario un bit hacia la derecha perdiéndose el contenido delbit 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.

SOLUCION PROBLEMA 5.10

La solución de este problema se encuentra en el fichero probT5_10.pdf.

SOLUCION PROBLEMA 5.11

Page 233: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

18

La solución de este problema se encuentra en el fichero probT5_11.pdf.

SOLUCION PROBLEMA 5.12

La solución de este problema se encuentra en el fichero probT5_12.pdf.

SOLUCION PROBLEMA 5.13n Diseñar una UC con memoria ROM con:

n 200 estadosn Genere 37 señales de control independientes entre si.n 9 señales de condición.

n En cada estado se consulta una señal de condición como máximo.n Se utiliza el diseño con un multiplexor con selección por campo

Se tiene una Unidad de Control diseñada conMemoria ROM + registro + multiplexor de selección por campo.

De los datos del enunciado se deduce que:variables de estado n=8 ya que 28=256>200 estadosseñales de control : m=37señales de condición : q=9 ≤ 2h →h=4

En este diseño según lo estudiado en teoría, se necesitará un multiplexor con 2h= 24=16 entradas de lascuales sólo se utilizan 9 una para cada señal de condición. el resto se conectan a 0.

Luego la respuesta es 16 entradas de datos.

Page 234: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

19

SOLUCION PROBLEMA 5.14n Diseñar una UC con memoria ROM con:

n 128 estadosn Genere 244 señales de control independientes entre si.n 20 señales de condición.

n La memoria ROM utilizada tiene un coste de 10 ptas/Kbit

De los datos del enunciado se deduce que:variables de estado n=7 ya que 27=127 estadosseñales de control : m=244señales de condición : q=20 ≤ 2h→h=5

Afirmación I:

Se tiene una Unidad de Control diseñada con Memoria ROM + registro + multiplexor de selección porestado. La Capacidad de la ROM es:

C=2n+1 palabras x (n+m) bits/palabras

Luego sustituyendo valores se tiene:C=28·251 bits = (28·251·210)/210=(251/4) Kbits

Luego el coste es $=(215/4) Kbits · 10 ptas/Kbits = 2150/4= 627.5 ptas.

Luego la afirmación es FALSA.

Afirmación II:

Se tiene una Unidad de Control diseñada con Memoria ROM + registro + multiplexor de selección porcampo. La Capacidad de la ROM es:

C=2n+1 palabras x (h+ n+m) bits/palabras

Luego sustituyendo valores se tiene:C=28·(5+7+244)= 28 ·256 bits = 28 · 28=216=26·210=64 Kbits

Luego el coste es $=64 Kbits · 10 ptas/Kbits = 640 ptas.

Luego la afirmación es VERDADERA.

SOLUCION PROBLEMA 5.15

La solución de este problema se encuentra en el fichero probT5_15.pdf.

SOLUCION PROBLEMA 5.16

La solución de este problema se encuentra en el fichero probT5_16.pdf.

Page 235: Coleccion Problemas Etc II

TEMA 5: DISEÑO DE TRANSFERENCIA ENTRE REGISTROS Solución problemas

20

SOLUCION PROBLEMA 5.17

La solución de este problema se encuentra en el fichero probT5_17.pdf.

Page 236: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 9

Page 237: Coleccion Problemas Etc II

3: B ← Bus;4: for Cont = 0 to 7 do5: if Cont es par then6: A ← Α + Β; Α ← Α / 27: else8: B ← Β − Α; Β ← Β ∗ 29: endif10: endfor11: Bus ← A;12: Bus ← Β;13: Parar;

Figura 98-2-1: Módulos del problema con sus tablas de funcionamiento

6ROXFLyQ

A) En la Figura 98-2-2 se muestra un posible diseño de la Unidad de Procesamiento y la Tabla 98-2-1 elsignificado de todas la señales de control utilizadas. Repasando en algoritmo vemos que permite realizar todos ycada uno de sus pasos:

� Los registros A y B pueden cargar valores desde el bus del sistema o desde la salida de la UAL. Unmultiplexor a la entrada de cada uno de estos registros permite seleccionar qué dato es el que se va acargar.

� Los registros A y B pueden volcar sus valores en el bus mediante sendos circuitos triestado de conexiónunidireccional con control de 8 bits.

� Existe camino de los registros A y B a la entrada de la UAL.

� Un contador módulo 8 permite gobernar el bucle for del algoritmo.

� A partir del valor del contador se generan dos condiciones cuyo valor puede ser consultado por laUnidad de Control en cualquier instante:

�so: es la suma lógica de todos los bits del sumador. Su valor es cero cuando el contador está a cero.

Reg. Desp.c0

c1

E

Q

Contadorc0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

Page 238: Coleccion Problemas Etc II

�s1: es el bit menos significativo del contador. Su valor es 0 cuando el contador tiene valor par, y es1 cuando el contador tiene valor impar.

Figura 98-2-2: Diseño de la Unidad de Procesamiento

UAL

Contador

c0

c0c1

A B

MUX

0 1

Reg. des.c0c1

ED Reg. des.c0c1

EI

A

s1(=1 Contador es impar)

c2 c4

c5

c1 c3

c0

c9c10

Circuito

de

Control

c0c1

c10

Inicio

Fin

Reloj

Unidad deProcesamiento

Unidad deControl

Bus

00

c7

2 1 0

c8MUX

01c6

B

s0(=0 Contador es 0)

Page 239: Coleccion Problemas Etc II

B) Para describir el funcionamiento de la Unidad de Control, diseñamos el diagrama de transición de estados de laFigura 98-2-3 donde la descripción detallada de las acciones a realizar en cada un de estos estados viene dada en laTabla 98-2-2.

Este diagrama de transición de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en elenunciado del problema utilizando la Unidad de Procesamiento diseñada en el apartado anterior. Se puedecomprobar, por ejemplo, que ejecuta el bucle for 8 veces.

Figura 98-2-3: Diagrama de estados de la Unidad de Control

Señal de Control Operación controlada

c0 Control de la UAL: Suma (0) y Resta (1),

c2 y c1 Control registro A: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)

c4 y c3 Control registro B: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)

c5 Selección MUX entrada de A: UAL (0) y Bus (1)

c6 Selección MUX entrada de B: UAL (0) y Bus (1)

c7 Puerta triestado que conecta la salida de A con el Bus: Nada (0) y Conexión (1)

c8 Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexión (1)

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

Tabla 98-2-1: Descripción de la señales de control de la Unidad de Procesamiento

S0 S1 S3

S7

S8

S5 s0

s0

S10

s1

s1

S2 S9

S4

S6 s0

Inicio

s0

Page 240: Coleccion Problemas Etc II

Para implementar esta Unidad de Control vamos a emplear el método de los elementos de retardo. El diseñocorrespondiente se muestra en la Figura 98-2-4.

Estado de la Unidad de Control

Microoperaciones efectuadas

Señales de control a activar

S0 Ninguna Ninguna

S1A← BusReset Cont

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

S2 B ← Bus c3, c4, c6

S3 Ninguna Ninguna

S4A ← A + BIncrementar Cont

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

S5 Desplazar Derecha A (c 2=0), c1

S6B ← B - AIncrementar Cont

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

S7 Desplazar Izquierda B c 4, (c3=0)

S8 Bus ← A c7

S9 Bus ← B c8

S10 Ninguna Ninguna

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

Page 241: Coleccion Problemas Etc II

Figura 98-2-4: Unidad de Control

Reloj Clear

S0

S1

S2

S3

S4

S5

S6

S7

S8

s1= 1

S1

S2

S3

S4

S5

S7

S6

S8

c1, c2, c5, c9

s1

S10

S0

S9

s0

s0

S9

S10

s1= 0

s0= 1

s0= 0

s0= 1

s0= 0

c3, c4, c6

c1, c2, c10•

c1

c0, c3, c4 ,c10

c4

c7

c8

SetInicio=0

Inicio=1

Inicio

Page 242: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 10

Page 243: Coleccion Problemas Etc II

4: C ← Bus5: for Contador = 0 to 7 do6: begin7: if C(0) C(1) then A ← A / B8: else A ← A + B endif9: Desplazar derecha (C)10: end11: Parar;

Utilizando los módulos dibujados abajo: registros de desplazamiento de 8bits, 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 combinacionalesque considere necesarios:

A)Diseñar la Unidad de Procesamiento que permita realizar estealgoritmo.

B) Diseñar la Unidad de Control, utilizando la técnica de elementos deretardo, que ejecute este algoritmo con la Unidad de Procesamientodiseñada en el apartado A).

Figura 96-3-1 Módulos del problema y debajo su tabla de funcionamiento

SoluciónA) Antes de proponer un diseño para la Unidad de Procesamiento hagamos

unas consideraciones previas sobre los requerimientos del algoritmo. LaUnidad de Procesamiento tiene que resolver cada uno de estos

c1c0 Q c1c0 R c1c0 Q

0 0 Nada 0 0 A+B 0 0 Q(t)

0 1 Carga 0 1 A-B 0 1 0

1 0 Desp. Dcha 1 0 A*B 1 0 Q(t)+1 mod 8

1 1 Nada 1 1 A/B 1 1 Q(t)

Reg. despl. UAL Contadorc0c1

c0c1

c0c1

Q R Q

E A B

ED

Page 244: Coleccion Problemas Etc II

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 esnecesario colocar un multiplexor en la entrada para seleccionar cuál delos dos debe ser cargado en el registro. También el registro A debeentregar su contenido a la UAL.

• Al registro B le llega información del Bus y entrega su contenido a laUAL.

• El registro C recibe información desde el Bus y el algoritmo necesitaconsultar el valor de sus dos bits menos significativos para comprobar sison iguales o distintos. Esta condición la generaremos mediante lafunción lógica C(0) C(1).

• En el algoritmo hay un bucle que se ejecutará un total de 8 veces. Paracontrolar esto se utilizamos el contador módulo 8 y para detectar el finalde la cuenta hacemos el producto lógico (AND) de sus tres salidas.

• Los registros de desplazamiento del enunciando son los únicoselementos de almacenamiento disponibles, por lo que se utilizarán paralos tres registros: A, B y C. En el caso de A y B no se hará uso de lacapacidad de estos registros para realizar desplazamientos. A la hora dehacer desplazamientos en el registro C hay que introducir un 0, tal ycomo exige el enunciado del problema, por lo que habrá que fijar suentrada ED a 0. Con los registros A y B no existe este problema, no sevan a hacer desplazamientos con ellos, y su entrada ED se fijaarbitrariamente a un valor determinado, por ejemplo 0.

Un posible diseño para la Unidad de Procesamiento pedida, teniendo encuenta todos estas consideraciones iniciales, puede ser el mostrado en laFigura 96-3-2.

Sobre este diseño conviene hacer una observación. Los registros A y B sólovan a utilizar dos valores de sus entradas de control

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

c1c0 Q

0 0 Nada

0 1 Carga

Page 245: Coleccion Problemas Etc II

Figura 96-3-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 delsignificado de cada una de las entradas de control que gobiernan sufuncionamiento (ve r Tabla 96-3-1).

UALContado rc0

c1

c0c1A B

MUX

0 1

Reg. des.c0c1

ED Reg. des.c0c1

ED Reg. des.c0c1

ED

A B C(0)C(1)

C

s1

0 0

c0

c1c2 c3

c4

c5c6

c7c8

Circuito

de

Control

c0c1

c8

Inicio

Fin

Reloj

Unidad deProcesamiento

Unidad deControl

s0= C(0) ⊕ C(1)

Bus

000

Page 246: Coleccion Problemas Etc II

B) Un posible diagrama de estados para la Unidad de Control que gobierneel funcionamiento de la Unidad de Procesamiento de la Figura 96-3-2, es elmostrado en la Figura 96-3-3. La Tabla 96-3-2 da una descripción detalladade cada uno de los estados junto con las señales de control a activar en cadauno de ellos.

Una de las dificultades que tiene este algoritmo es que el bucle debeejecutarse necesariamente ocho veces. Para conseguirlo se ha optado porcomprobar la condición generada por el contador en el estado S6 y después, sino se hubiera llegado al final de la cuenta (s1=1), incrementar el contador.

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

Señal de Control Operación controlada

c0 Entrada de selección del multiplexor

c1 Cargar A desde la salida del multiplexor

c2 Cargar B desde el Bus

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

c6 y c5 Control de la UAL: suma (00), resta (01), producto (10) o división (11)

c8 y c7 Control del contador: nada (00 y 11), reset (01) o incremento (10)

Tabla 96-3-1 Descripción de la señales de contro l de la Unidad de Procesamiento

S0 S1 S3

S5

S6

S4

s0

s0

S7

S8s1

s1

S2

Page 247: Coleccion Problemas Etc II

El método de diseño utilizando elementos de retardo es prácticamente unatranscripción directa del diagrama de estados. En l a Figura 96-3-4 se muestrala Unidad de Control diseñada utilizando este método, junto con el diagramade estados de la Figura 96-3-3, redibujado en vertical, para servir de apoyo enel diseño.

Estado de la Unidad de Control

Microoperaciones efectuadas

Señales de control a activar

S0 A ← Buscontador ← 0

c0, c1, c7

S1 B ← Bus c2

S2 C ← Bus c3

S3 Ninguna Ninguna

S4 A ← A / B c1, c6, c7

S5 A ← A + B c1

S6 Desplazar derecha C c4

S7 Incrementar contador c8

S8 Ninguna Ninguna

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

Page 248: Coleccion Problemas Etc II

Figura 96-3-4 Unidad de Control

Reloj Clear

s0 = 0

s0 = 1

S0

0

S0

S1

S2

S3

S4

S5

S6

S7

S8

s1 = 0

s1= 1

S1

S2

S3 •

S4 •

S5

S7 •

S6

S8

c0, c1, c7

c2

c3

c1

c1, c6, c5

c4

c8

s0

s1

Page 249: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 11

Page 250: Coleccion Problemas Etc II

7: if C(3) = C(5) then A ← A * B8: else A ← A - B endif;9: Desplazar derecha (C);10: end;11: Bus ← A;12: Parar;

Figura 97-2-1 Módulos del problema y debajo su tabla de funcionamiento

SoluciónA) Antes de proponer un diseño para la Unidad de Procesamiento hagamos

unas consideraciones previas sobre las necesidades del algoritmo. La Unidadde Procesamiento tiene que resolver cada uno de estos requerimientos.

• Los registros de desplazamiento del enunciando son los únicos elementosde almacenamiento disponibles, por lo que se utilizarán necesariamentepara los tres registros: A, B y C. En el caso de A y B no se hará uso de lacapacidad de estos registros para realizar desplazamientos, pero sí en C(paso 9 del algoritmo).

• A la hora de hacer desplazamientos en el registro C hay que introducir un0, tal y como exige el apartado A) del problema, por lo que habrá que fijarsu entrada ED a 0. Con los registros A y B no existe este problema ya queno se van a hacer desplazamientos con ellos, y su entrada ED se fijaarbitrariamente a un valor determinado, por ejemplo 0.

• El registro A tiene que poder recibir información desde el bus (paso 2 delalgoritmo) y desde la salida de la UAL (pasos 7 y 8 del algoritmo). Al

Reg. Desp.c0

c1

ED

E

Q

Contadorc0

c1Q

UALc0

c1

A

R

B E

S

c0

Ck Ck

c1c0 Q(t+1) c1c0 R c1c0 Q(t+1) c0 S00 Q(t) 00 A+B 00 Q(t) 0 -01 Carga 01 A-B 01 0 1 E10 Des. Dcha. 10 A*B 10 Q(t)+1 mod 811 Q(t) 11 A/B 11 Q(t)

Page 251: Coleccion Problemas Etc II

llegarle información desde dos lugares distintos es necesario colocar unmultiplexor en la entrada para seleccionar cuál de los dos debe sercargado en el registro.

• El registro A debe entregar su contenido a la UAL y al bus. Su salida tieneque estar conectada con ambos, pero para la conexión al bus esnecesario colocar un circuito triestado para evitar que este registroenvíe continuamente su salida al bus. Si no se colocara este circuitotriestado se producirían continuos conflictos eléctricos en el bus que loharían totalmente inservible (ver Capítulo 1 del libro de teoría).

• Al registro B le llega información del Bus y entrega su contenido a laUAL.

• El registro C recibe información desde el Bus y el algoritmo necesitaconsultar el valor de sus dos bits menos significativos para comprobar sison iguales o distintos. Esta condición se genera directamente mediante lafunción lógica C(3) C(5).

• En el algoritmo hay un bucle que se ejecutará un total de 4 veces, desde 0hasta 3. Para controlar esto se utilizamos el contador módulo 8. La formade detectar el final de la cuenta depende del diagrama de estados que seemplee. En esta solución se propone incrementar el contador nada masentrar en el bucle y comprobar la condición de finalización en el mismoestado en el que se desplaza el registro C. Si se hace así, la Unidad deControl tiene que comprobar cuándo el contador ha llegado a 4, es decir,simplemente tiene que saber si el bit más significativo del contador es 1 oes 0. Si es 1 el bucle ha llegado al final y se salta al estado S6 en eldiagrama de estados de la Figura 97-2-3.

• Los registros de desplazamiento de 8 bits y el contador módulo-8 tienenuna entrada de reloj Ck. En el diseño de la Unidad de Procesamientohabrá que conectar todas las entradas de reloj con la que llega a la Unidadde Control para conseguir una sincronización correcta en todas lasacciones de ambas.

Un posible diseño para la Unidad de Procesamiento pedida, teniendo encuenta todos estos requisitos , puede ser el mostrado en la Figura 97-2-2.

Sobre este diseño conviene hacer una observación. Los registros A y B sólo

Page 252: Coleccion Problemas Etc II

van a utilizar dos valores de sus entradas de control

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

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 delsignificado de cada una de las entradas de control que gobiernan elfuncionamiento de la Unidad de Procesamiento (ver Tabla 97-2-1).

c1c0 Q(t+1)

0 0 Q(t)

0 1 Carga

UAL

Contador

c0c1

c0c1

A B

MUX

0 1

Reg. des.c0c1

ED Reg. des.c0c1

ED Reg. des.c0c1

ED

A B C(5)C(3)

C

s1

0 0

c0

c1 c2 c3c4

c5c6

c7c8

Circuito

de

Control

c0c1

c9

Inicio

Fin

Reloj

Unidad deProcesamiento

Unidad deControl

s0= C(3) ⊕ C(5)

Bus

000

c9

2 1 0

Page 253: Coleccion Problemas Etc II

B) Un posible diagrama de estados para la Unidad de Control que gobierneel funcionamiento de la Unidad de Procesamiento de la Figura 97-2-2, es elmostrado en la Figura 97-2-3. La Tabla 97-2-2 da una descripción detallada decada uno de los estados junto con las señales de control a activar en cada unode ellos, y la codificación de los estados empleada es la mostrada en la Tabla97-2-3.

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

Señal de Control Operación controlada

c0 Entrada de selección del multiplexor

c1 Cargar A desde la salida del multiplexor

c2 Cargar B desde el Bus

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

c6 y c5 Control de la UAL: suma (00), resta (01), producto (10) o división (11)

c8 y c7 Control del contador: nada (00 y 11), reset (01) o incremento (10)

c9 Control del circuito triestado: Bus ← A (1), A aislado del bus (0)

Tabla 97-2-1 Descripción de la señales de control de la Unidad de Procesamiento

S0 S1 S3

S5

S6

S4

s0

s0 S7

s1

s1

S2

s1

s1

Page 254: Coleccion Problemas Etc II

A la hora de diseñar la Unidad de Control utilizando memoria ROM elenunciado indica que se valorará la utilización de una memoria de tamañomínimo. Para conseguir este objetivo hay que darse cuenta que en cada estadose consulta, como máximo, una condición, por lo que sería posible reducir elnúmero de palabras de la ROM a la mitad si se selecciona previamente lacondición utilizando un multiplexor. Las entradas de selección de estemultiplexor pueden ser el mismo estado (selección por estado) o un bitadicional almacenado en la memoria ROM (selección por campo). Como estasegunda solución (selección por campo) requiere de una memoria ROM detamaño mayor al tener que almacenar ese bit adicional por estado, se opta porla primera (selección por estado) aunque requiere del multiplexormencionado.

Estado de la Unidad de Control

Microoperaciones efectuadas

Señales de contr ol a activar

S0 A ← Buscontador ← 0

c0, c1, c7

S1 B ← Bus c2

S2 C ← Bus c3

S3 Ninguna Ninguna

S4 A ← A - BDesplazar derecha CIncrementar contador

c1, c5, c4, c8

S5 A ← A * BDesplazar derecha CIncrementar contador

c1, c6, c4, c8

S6 Bus ← A c9

S7 Ninguna Ninguna

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

Page 255: Coleccion Problemas Etc II

La Figura 97-2-4 muestra la estructura de la Unidad de Control pedida en elenunciado del problema. Tiene 4 líneas de direcciones (1 para la condición ylas otras 3 para el valor del estado actual) y una logintud de palabra de 13 bits(3 para el estado siguiente y 10 para las señales de control), por tanto tiene una

tamaño de 24 palabras x 13 bits por palabra.

NOTAUn 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 laspáginas 321 a 323 del libro de teoría, “Los puntos de control se realizanmediante circuitos cuya naturaleza depende de las características de losdispositivos conectados a los caminos de datos sobre los que actúa n”.

Estado Q2 Q1Q0

S0 0 0 0

S1 0 0 1

S2 0 1 0

S3 0 1 1

S4 1 0 0

S5 1 0 1

S6 1 1 0

S7 1 1 1

Tabla 97-2-3 Codificación de los estados

Page 256: Coleccion Problemas Etc II

Figura 97-2-4 Unidad de Control diseñada con una memoria ROM

EstadoDirección de la ROM

A3 A2 A1 A0

Contenido de la ROMp12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

PresenteEstado presente + Cond.

Q2 Q1 Q0 si Próximo Estado Control

Q2 Q1 Q0 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0

S0

0 0 0 0 0 0 0 1

0 0 1 0 0 1 0 0 0 0 0 1 10 0 1 0 0 1 0 0 0 0 0 1 1

S1

0 0 1 0 0 0 1 1

0 1 0 0 0 0 0 0 0 0 1 0 00 1 0 0 0 0 0 0 0 0 1 0 0

S2

0 1 0 00 1 0 1

0 1 1 0 0 0 0 0 0 1 0 0 00 1 1 0 0 0 0 0 0 1 0 0 0

S3

0 1 1 0 (si s0 = 0)0 1 1 1 (si s0 = 1)

1 0 1 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0

S4

1 0 0 0 (si s1 = 0)1 0 0 1 (si s1 = 1)

0 1 1 0 1 0 0 1 1 0 0 1 01 1 0 0 1 0 0 1 1 0 0 1 0

S5

1 0 1 0 (si s1 = 0)1 0 1 1 (si s1 = 1)

0 1 1 0 1 0 1 0 1 0 0 1 01 1 0 0 1 0 1 0 1 0 0 1 0

S6

1 1 0 0 1 1 0 1

1 1 1 1 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0 0 0

S7

1 1 1 01 1 1 1

1 1 1 0 0 0 0 0 0 0 0 0 01 1 1 0 0 0 0 0 0 0 0 0 0

Tabla 97-3-4 Contenido de la memoria ROM

s1 A0

A1

A2

Registro

ROM

16 palabras × 13 bits

RelojInicio Cl

p0p4 p1p2p5 p3

Estado presente

Estado futuro

s0

c0c2 c1c3

MUX

0

2

6

0 2

p6p7p9p10 p8p11p12

A31

1

4

3

7

5

c4c6 c5c7c8c9

s1

••

Q0Q2 Q1

Page 257: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 12

Page 258: Coleccion Problemas Etc II

Diseñe un circuito digital (Unidad de Procesamiento + Unidad de Control)que realice el algoritmo que se muestra en el recuadro. Para ello siga lossiguientes apartados:

A)Diseñe razonadamente la Unidad de Procesamiento, utilizando losrecursos que considere necesarios.

B) Describa todas las señales de control de la Unidad de Procesamientodiseñada en A).

C) Dibuje el diagrama de estados de una Unidad de Control que realiceel algoritmo propuesto. Describa, en forma de tabla, lasmicrooperaciones y las señales de control activadas en cada unos delos estados.

D)Diseñe razonadamente la Unidad de Control, empleando cualquierade las técnicas de diseño estudiadas a lo largo del curso. Indiqueclaramente todos los pasos seguidos.

SoluciónA) A la vista del algoritmo propuesto, la Unidad de Procesamiento que se

diseñe ha de ser capaz de:

1) Transferir el contenido del bus de entrada a ambos registros (X y A).

2) Incrementar/decrementar el contenido del registro A.

3) Transferir el contenido del registro A al bus de salida.

4) Comparar el contenido del registro X con 255 (11111111).

Para realizar la Unidad de Procesamiento utilizaremos registrosconvencionales, sin capacidad de incremento/decremento, por lo que haráfalta un circuito combinacional adicional capaz de realizar esta operación.Bajo estas consideraciones la Figura 97-3-1 muestra la posible realización deuna Unidad de Procesamiento que puede ejecutar el algortimo propuesto. Seha utilizado un sumador/restador binario convencional para las operacionesde incremento/decremento.

Page 259: Coleccion Problemas Etc II

Figura 97-3-1 Unidad de Procesamiento

Se ha supuesto que los registros son disparados por el flanco de bajada de laseñal de reloj CK por lo que no se producirán problemas a la hora derealimentar la salida del sumador/restador a la entrada del registro A.También se supone que las operaciones de suma y resta no producenproblemas de desbordamiento. Para evitar que la salida del registro A sevuelque en el bus de salida indebidamente se ha utilizado una puerta triestadogobernada por la señal de control c3. La puerta lógica AND compara la salidadel registro X con 255: si todos sus bits están a 1 el valor de X es 255 y segenera la señal de condición s0.

Bus-Entrada

Bus-Salida

0 1

MUX

A X

S/R

> >

LD LD

“1”

8

8

8

s0 (X=255)

CKCK

c0

c2

c1

c3

c4

0

Page 260: Coleccion Problemas Etc II

B)

C)

Figura 97-3-2 Diagrama de estados

Señal Descripción

c0 Selecciona una de las entradas del multiplexor

c1 Carga del registro A

c2 Suma (1) o resta (0)

c3 Salida del registro A al bus de salida

c4 Carga del registro X

Tabla 97-3-1 Descripción de las señales de control utilizadas

Estado MicrooperaciónSeñales de

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

S0 S2S1

S4

S3

S5

s0

s0

Page 261: Coleccion Problemas Etc II

D) Utilizaremos la técnica de la Unidad de Control cableada con biestablestipo D. (Un ejercicio muy recomendable que puede realizar el alumno esrepetir este apartado utilizando otras técnicas de diseño, comparando lascaracterísticas y dificultad de cada una de ellas.)

Ya que hay 6 estados harán falta 3 biestables tipo D. Una posiblecodificación de los estados es la mostrada en la Tabla 97-3-3.

Del diagrama de estados de la Figura 97-3-2 y la codificación elegida en laTabla 97-3-3 se obtiene directamente la tabla de transición de estados (Tabla97-3-4), y a partir de ella las funciones lógicas de las entradas de los biestablesmediante mapas de Karnaugh.

S4 Bus-Salida ← A c3

S5 Parar -----

Estado Q2Q1Q0

S0 0 0 0

S1 0 0 1

S2 0 1 0

S3 0 1 1

S4 1 0 0

S5 1 0 1

Tabla 97-3-3 Tabla de codificación de los estados

Estado MicrooperaciónSeñales de

control

Tabla 97-3-2 Descripción de los estados y sus microoperaciones asociadas

Page 262: Coleccion Problemas Etc II

D2=Q2+Q1; D1=Q2Q1Q0; D0=Q2+s0Q1Q0.

A partir de aquí se construye fácilmente la Unidad de Control siguiendo latécnica de diseño correspondiente (Figura 97-3-3). Para general las señales decontrol se puede utilizar un decodificador, a partir de la codificación delestado Q2Q1Q0.

Est. actualQ2Q1Q0

CondiciónPróx. estado

Q2Q1Q0

S. control

0 0 0 --- 0 0 0 c4

0 0 1 s0s0

0 1 00 1 1

c0,c1

0 1 0 --- 1 0 0 c0,c1,c2

0 1 1 --- 1 0 0 c0,c1,c2

1 0 0 --- 1 0 1 c3

1 0 1 --- 1 0 1 -----

Tabla 97-3-4 Tabla de transición de estados

00 01 10

00

11

01

10

11

s0Q2

Q1Q000 01 10

00

11

01

10

11

s0Q2

Q1Q000 01 10

00

11

01

10

11

s0Q2

Q1Q0

0 10

0 0

0 0 0

0 0

0

1

1 1

1 1

1 1 1

1

1 1X X

X X

X X

X X

X

X X

XD1 D0

1

1 1D2

0

0 0 0

0 00

0 0 00

Page 263: Coleccion Problemas Etc II

Figura 97-3-3 Unidad de Control

D2

>

Q2

Q2

D1

>

Q1

Q1

D0

>

Q0

Q0

0

1

2

3

4

5

6

7

0

1

2

De

cod

ifica

dor

H

1

CK

CK

CK

Q2

Q1

Q2

Q1

Q0

Q2s0

Q1

Q0

c4

c1

c0,c1,c2

c3c0,c1

Cl

Cl

Cl

Inicio

Inicio

Inicio

Page 264: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 15

Page 265: Coleccion Problemas Etc II

6 Estructura y Tecnología de Computadores II

3UREOHPD � 6HSWLHPEUH �

El siguiente algoritmo describe una determinada operación de un sistema digital.

A) (2 puntos) Diseñar la Unidad de Procesamiento que permita realizar este algoritmo utilizando los módulosde la Figura 1: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, uncontador módulo-8 y circuitos triestado de conexión unidireccional con control de 8 bits; además de puertaslógicas y los módulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considerenecesarios. 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 Procesamientodiseñada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y expliqueclaramente todos y cada uno de los pasos seguidos hasta obtener la solución.

1: Declaración: A[8], B[8], Cont[3];2: A ← Bus;3: B ← 0;4: for Cont = 0 to 7 do5: if A[0] es 1 then 6: B ← B + 1;7: endif;8: Despl.CerradoDcha(A);9: endfor10: Bus ← Β;11: Parar;

Figura 1: Módulos del problema con sus tablas de funcionamiento

6ROXFLyQ

a) En primer lugar se debe analizar las operaciones que debe realizar el algoritmo para ver qué recursos senecesitan 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 desplazamientocerrado a la derecha. En este caso se dispone de un registro de desplazamiento simple que permite realizar

Reg. Desp.c0

c1

E

Q

Contadorc0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

Page 266: Coleccion Problemas Etc II

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 operacionesde desplazamiento sean cerradas se debe conectar el bit más o menos significativo (A[7] o A[0]) con laentrada serie que le corresponda (ED o EI). En este caso la operación es hacia la derecha con lo que en la rutade 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 estecaso 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 operacionesA+B y A-B, fijando una de las entradas al valor constante 1 se puede realizar la operación. Además, puestoque siempre se va a realizar la operación de suma se puede dejar el valor de la entrada de control c0 de laUAL 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 cargardesde 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. Paraello 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 generarlas 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 laentrada 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 decondició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 dedatos con los elementos definidos anteriormente y que cumple todos los requisitos del algoritmo planteado. En laTabla 1 se describen todas las señales de control utilizadas.

Page 267: Coleccion Problemas Etc II

8 Estructura y Tecnología de Computadores II

Figura 2: Diseño de la Unidad de Procesamiento

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se diseña el diagramade transición de estados de la Figura 3, donde el significado detallado de cada uno de los estados propuestos vienedado por la Tabla 2.

Señal de Control Operación controlada

c0 Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexión (1)

c1 Selección MUX entrada de B: UAL (0) y valor 0 (1)

c3 y c2 Control registro A: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)

c5 y c4 Control registro B: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11)

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

Tabla 1: Descripción de la señales de control de la Unidad de Procesamiento

UAL

Contador

c0

c0c1

A B

MUX0 1

Reg. desp.c0c1

ED

B

s0 (valor del bit A[0])

c5

c1

c4

0

c6c7

Circuito

de

Control

c0c1

c7

Inicio

Fin

Reloj

Unidad deProcesamiento

Unidad deControl

Bus

0

c0

2 1 0

A[0]

s1(=1 Contador es 7)

EI0Reg. desp.

c0c1

ED

c3

c20EI

0

1

Page 268: Coleccion Problemas Etc II

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 elenunciado del problema utilizando la Unidad de Procesamiento diseñada en el apartado anterior. Se puedecomprobar, por ejemplo, que ejecuta el bucle for 8 veces ya que en el estado S4 consulta por la condición definalización y, en caso de no verificarse, incrementa el contador y realiza otra iteración. En total el bucle se realizapara todos los valores del contador, desde el 0 hasta el 7.

Figura 3: Diagrama de estados de la Unidad de Control

Para implementar esta Unidad de Control vamos a emplear el método de los elementos de retardo. El diseñocorrespondiente se muestra en la Figura 4. En la parte izquierda de la Figura 4 se ha vuelto a colocar el diagrama detransición de estados de forma que sirva de ayuda y complemento al diseño lógico de la Unidad de Control.

Estado de la Unidad de Control

Microoperaciones efectuadas

Señales de control a activar

S0 Ninguna Ninguna

S1

A ← BusB ← 0Reset Cont

c3, c2c1, c5, c4(c7=0), c6

S2 Ninguna Ninguna

S3 B ← B + 1 (c1=0), c5, c4

S4 Despl.CerradoDcha(A) (c3=0), c2

S5 Incrementar Cont c7, (c6=0)

S6 Bus ← B c0

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

S0 S1 S4

S5

s1

s1

S6S2 S3

s0

Inicio

s0

Page 269: Coleccion Problemas Etc II

10 Estructura y Tecnología de Computadores II

Figura 4: Unidad de Control

Reloj Clear

S0

S1

S2

S3

S4

S5

S6

s1= 1

S1

S3

S2

c1, c2, c3, c4, c5, c6

s0

S0

s1= 0

s0= 1

s0= 0

c4, c5

c2

c7

SetInicio=0

Inicio=1

Inicio

S5 ••

S4• •

s1 •

S6 ••

• c0

Page 270: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 16

Page 271: Coleccion Problemas Etc II

6 Estructura y Tecnología de Computadores II

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 Procesamientodiseñada en el apartado A) empleando la técnica de los elementos de retardo. Detalle y expliqueclaramente todos y cada uno de los pasos seguidos hasta obtener la solución.

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

Figura 2: Módulos secuenciales del problema con sus tablas de funcionamiento

Solución

a) En primer lugar se deben analizar las operaciones a realizar para ver qué recursos se necesitan y si éstos seencuentran 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 registrosde 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.

Reg. Desp.c0

c1

E

QContador

c0

c1Q

UAL c0

A

R

B E

S

c0

Ck CkED

EI

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

Page 272: Coleccion Problemas Etc II

Problemas de los exámenes del curso 2001/2002 7

• Los registros volcarán su contenido al bus a través de sendas puertas triestado, para evitar problemaseléctricos.

• Un contador módulo-16 (de 4 bits de longitud de palabra por tanto). Aunque en el algoritmo propuesto lacuenta se ha de incrementar en 2 en cada ocasión y el contador de que se dispone sólo puede contar de 1 en1, 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últiplosde 4:

Es decir, son todos ellos números acabados en 00. Si se admite el 0 como múltiplo de 4 (este problema seresolverá aquí adoptando este criterio) entonces se tiene que s0 = A1 A0. Si se considera que 0 no es múltiplode 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ñalde 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 semuestra en la Figura 3.

Ésta no es la única Unidad de Procesamiento capaz de realizar el algoritmo pedido. Por ejemplo, dado que losregistros A y B no se van a cargar simultáneamente, es posible hacer uso de un único multiplexor. Así mismo, dado

A7 A6 A5 A4 A3 A2 A1 A0

4: 0 0 0 0 0 1 0 0

8: 0 0 0 0 1 0 0 0

12: 0 0 0 0 1 1 0 0

16: 0 0 0 1 0 0 0 0

20: 0 0 0 1 0 1 0 0

Tabla 1: Los múltiplos de 4

Page 273: Coleccion Problemas Etc II

8 Estructura y Tecnología de Computadores II

que la capacidad de desplazamiento de los registros no se va a utilizar, y ya que 11 implica carga en paralelo y 00implica no-operación, es posible gobernar cada uno de los registros con una única señal de control conectadasimultáneamente a sus entradas c0 y c1. La Figura 4 muestra cómo se realizarían estas modificaciones. (Estediseño, al hacer uso de menos componentes y menos señales de control, es más económico.) En lo que sigue, elproblema se resolverá haciendo uso del diseño de la Figura 3.

Figura 3: Diseño de la Unidad de Procesamiento

Reg. desp. Bc0c1

ED

c5

c4EI

Reg. desp. Ac0c1

ED

c3

c2EI

MUX0 1

c0 MUX0 1

c1

Contadorc0c1

c6c7

8

A1 A0Cont3 Cont0

4

A B

UAL

8BUS

Circuito

de

Control

c0c1

c10

Inicio

Fin

Reloj

Unidad deProcesamiento

Unidad deControl

c8

c9 c10

s0 s1

Page 274: Coleccion Problemas Etc II

Problemas de los exámenes del curso 2001/2002 9

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 diagramade transición de estados de la Figura 5, donde el significado detallado de cada uno de los estados propuestos vienedado por la Tabla 2. Obsérvese que esta Unidad de Control se ha diseñado como una máquina de Moore. (Dada lasencillez del algoritmo propuesto, se ha obtenido directamente el diagrama de estados a partir de éste, sinnecesidad de pasar por el diagrama ASM.)

Figura 5: Diagrama de estados de la Unidad de Control

Reg. desp. Bc0c1

EDEI

Reg. desp. Ac0c1

ED c2EI

MUX0 1

c0

8

A B

UAL

8BUS

c8

c4

Reloj

S0 S1 S2 S3 S4 S5

S6

S7 S8

Inicio

Inicio

s1s0

s1

s1s0

Page 275: Coleccion Problemas Etc II

10 Estructura y Tecnología de Computadores II

Este diagrama de transición de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en elenunciado del problema utilizando la Unidad de Procesamiento diseñada en el apartado anterior. Se puedecomprobar, por ejemplo, que ejecuta el bucle while mientras el valor del contador sea distinto de 14, ya que deverificarse esta condición (s1 = 1) del estado S3 se salta al estado S7. En caso contrario, en S3 se comprueba si A esmúltiplo de 4 (s0) o no (s0) y se salta al estado correspondiente. Obsérvese que, como se comentó en el apartadoanterior, el contador no se puede incrementar en 2 en un único estado, por lo que ha habido que incrementarlo enuna unidad dos veces consecutivas, en los estados S4 y S5.

La Unidad de Control se realiza utilizando la técnica de los elementos de retardo, según pide el enunciado,asignando un biestable tipo D a cada estado, tal como se muestra en la Figura 6. Para evaluar las condiciones en S3,en lugar de utilizar un demultiplexor de dos entradas de control (s1 y s0) y cuatro salidas se ha preferido utilizar, demanera equivalente, dos multiplexores colocados en cascada, cada uno de ellos con una única entrada de control ydos salidas. También se muestra cómo se forman las distintas señales de control a partir de las salidas de losbiestables tipo D [ver las páginas 304 a 307 del texto base de teoría]. Obsérvese que los bloques de decisióncorresponden a demultiplexores, según se muestra en la Figura 7 [ver las páginas 304 a 307 del texto base deteoría].

Estado de la Unidad de Control

Microoperaciones efectuadas

Señales de control a activar

S0 Ninguna Ninguna

S1 A ← Bus (c0=0), c2, c3

S2B ← BusCont ← 0

(c1=0), c4, c5c6, c7

S3 Ninguna Ninguna

S4

A ← A - BCont ← (Cont + 1) mod 16

c0, c2, c3, c8(c6=0), c7

S5Cont ← (Cont + 1) mod 16

(c6=0), c7

S6 B ← B + A c1, c4, c5, (c8=0)

S7 Bus ← B c10

S8 Bus ← A c9

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

Page 276: Coleccion Problemas Etc II

Problemas de los exámenes del curso 2001/2002 11

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

S0

S1

S2

S8

S7

S6

S5

S4

S3

Demux0 1

0 1

Demux0 1

Inicio

s1

s0

S0

S8

S5

S4

S3

S2

S1

S7

S6

Inicio

Inicio

s1

s1s0

s1s0

CK Clear

Set

c2, c3

c7

c10

c1, c4, c5

c0, c2, c3,

c9

c4, c5,c6, c7

c7, c8

c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10

Page 277: Coleccion Problemas Etc II

12 Estructura y Tecnología de Computadores II

Figura 7: Bloque de decisión (izquierda) visto como un demultiplexor (centro) y su realización equivalente con puertas lógicas (derecha)

V

V

V

EntradaEntrada

Entrada

Salida 0Salida 0 Salida 0Salida 1 Salida 1 Salida 1

0

1 Demux0

1

Page 278: Coleccion Problemas Etc II

SOLUCIÓN PROBLEMA

5 - 17

Page 279: Coleccion Problemas Etc II

6: B 0; 7: endif; 8: Despl.CerradoDcha(A); 9: Despl.CerradoDcha(A); 10: endfor; 11: Bus B; 12: Parar;

Reg. Desp. c0

c1

E

Q Contador

c0

c1Q

UAL c0

A

R

B E

S c0

Ck CkED

EI

c1c0 Q(t+1) c0 R c1c0 Q(t+1) c0 S

00 Q(t) 0 A+B 00 Q(t) 0 - 01 Des. Dcha. 1 A-B 01 0 1 E 10 Des. Izq. 10 Q(t)+1 mod 8 11 Carga 11 Q(t)

Figura 1: Módulos secuenciales del problema con sus tablas de funcionamiento.

Solución

a) Del análisis de las operaciones del algoritmo propuesto se puede concluir que:

Es necesario un registro de 8 bits llamado A. Este registro debe poder realizar dos operaciones: - Carga de 8 bits de datos desde el bus, correspondiente a la operación A Bus. El tipo de

registro disponible es capaz de cargar en paralelo, y puede realizar esta operación. - Desplazamiento cerrado a la derecha, correspondiente a la operación

Despl.CerradoDcha(A). En este caso el tipo de registro sólo realiza la operación Despl.Dcha, con lo que se hace necesario conectar el bit menos significativo de A (llamado A0), a la entrada ED del registro.

En la Figura 2 se puede observar el esquema de conexiones para este registro:

Figura 2: Diagramas de conexiones para el registro A.

6

Page 280: Coleccion Problemas Etc II

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 de tal forma que se generará dicha condición usando una puerta OR y un inversor, como se muestra en la Figura 3.

_

010

_

1 )( AAAANOT +=

Figura 3: Generación de la señal de condición s1.

Otra opción podría ser generar la condición s1 como y tenerlo en cuenta a la hora de realizar el diagrama de estados considerando la operación if A

0

_

1 AANDA

1A0≠01 then verdadera cuando no se cumple s1 (es decir, NOT s1).

Es necesario un registro de 8 bits llamado B. Este registro debe ser capaz de cargar dos valores constantes “0” y “1” (Operaciones B 0, B 1) y volcar su contenido al bus (Operación Bus B). - Para volcar el contenido del registro al bus es necesario usar una puerta triestado que

controle la operación de escritura en el bus. - Para distinguir el valor a cargar se podría usar un multiplexor con dos entradas constantes 0

y 1 y usar el valor de salida del multiplexor 2 a 1 como bit menos significativo de la entrada E del registro B, poniendo al valor constante 0 el resto de bits de la entrada E del registro. Pero en este caso se puede eliminar dicho multiplexor y usar una señal de control (generada por la unidad de control) que determina el valor del bit menos significativo de la entrada. Si llamamos a esta señal de control CLOADB, cuando sea igual a 1 se cargará el valor “1” en el registro B y si es igual a 0 se cargara “0” en B. En la Figura 4 se muestra el diagrama de conexiones para el registro B.

Figura 4: Diagramas de conexiones para el registro A.

7

Page 281: Coleccion Problemas Etc II

Finalmente es necesario implementar la lógica de la operación for Cont=0 to 3 do usando un contador de tamaño adecuado. En este caso se debe contar de 0 a 3 y se dispone de un contador módulo 8 (con tres estados Cont2Cont1Cont0) con lo que se hará necesario detectar el fin de cuenta (Cont=3) usando una señal de condición s0. Esta señal de condición se puede generar usando la condición Cont1Cont0=11 o bien usar la señal Cont2 como señal de fin de cuenta (si Cont2=1 entonces Cont>3). Se va a usar esta segunda aproximación porque de esta forma no es necesario usar una puerta AND de las entradas Cont1 y Cont0. El diagrama de conexiones quedaría tan simple como el que se muestra en la Figura 5.

Figura 5: Diagramas de conexiones para el registro A.

Una vez definidos los recursos necesarios para implementar la unidad de procesamiento y las señales de condición que debe generar, sólo quedan por definir las señales de control que la unidad de control debe generar. En la Tabla 1 se muestran las definiciones de cada una de las señales de control, la operación que realizan y el valor de las señales de control para dicha operación.

Señal de control

Operación a realizar Valor

CA0, CA1 Cargar registro A 11 CA0, CA1 Desplazamiento cerrado a la derecha de A 10 CB, Cargar registro B con 0 1 CB, CLOADB Cargar registro B con 1 11 CC0, CC1 Resetear contador 10 CC0, CC1 Incrementar módulo 8 una unidad el contador. 01 CBUS Volcar el contenido del registro B en el bus 1

Tabla 1: Señales de control que debe generar la Unidad de Control para cada operación.

De esta tabla se puede deducir que las variables de control del registro A y el contador se corresponden con las entradas c1 y c0 de los mismos, pero en el caso del registro B solo es necesario usar una señal de control, cB, asociada a la carga (si cB=1 c1c0=11) y a la conservación el estado (si cB=0 c1c0=00). La señal CBUS es la señal de control de la puerta triestado que controla la escritura en el bus.

Con todo esto, el diagrama de la unidad de procesamiento queda como se muestra en la Figura 6.

8

Page 282: Coleccion Problemas Etc II

Figura 6: Diseño de la Unidad de Procesamiento.

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

diseñado el diagrama de transición de estados de la Figura 7, donde el significado detallado de cada uno de los estados propuestos viene dado por la Tabla 2. Obsérvese que esta Unidad de Control se ha diseñado como una máquina de Moore. (Dada la sencillez del algoritmo propuesto, se ha obtenido directamente el diagrama de estados a partir de éste, sin necesidad de pasar por el diagrama ASM.)

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

9

Page 283: Coleccion Problemas Etc II

Estado de la

unidad de control Microoperaciones efectuadas Señales de control a

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

Cont Cont+1 (mod 8) CA0, CC1

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

Page 284: Coleccion Problemas Etc II

Figura 8: Unidad de Control mediante elementos de retardo.

11

Page 285: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIADE COMPUTADORES II

TEMA 6: Diseño del procesador

SOLUCIONPROBLEMAS PROPUESTOS EN EXAMEN

Curso 2003-2004Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 286: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

CONTENIDOSOLUCION PROBLEMA 6.1 ..................................................................................................................... 3SOLUCION PROBLEMA 6.2 ..................................................................................................................... 5SOLUCION PROBLEMA 6.3 ..................................................................................................................... 7SOLUCION PROBLEMA 6.4 ..................................................................................................................... 7SOLUCION PROBLEMA 6.5 ..................................................................................................................... 9SOLUCION PROBLEMA 6.6 ................................................................................................................... 10

Page 287: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

SOLUCION PROBLEMA 6.1

Antes de comenzar a contestar a los diferentes apartados conviene darse cuenta de que la UAL es uncircuito combinacional que no tiene ninguna capacidad de memoria, de manera que cuando las señales decontrol activan una función específica de la UAL, su salida pasa a ser el resultado de la operacióncorrespondiente con sus entradas. Por este motivo, la salida de la UAL no puede conectarse directamenteal bus, ya que esta salida se realimentaría a la entrada. En su lugar, el registro R2 permite elalmacenamiento 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 leero a escribir.

RM registro de datos de memoria contiene el dato a escribir en la memoria o recibe el dato leido en lamemoria.

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 lainstrucció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. Acontinuación se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en ACel contenido de R2.

b) Al tratarse de un operando con direccionamiento directo, significa que en el campo de dirección de lainstrucción almacenada en RI se encuentra la dirección de memoria donde hay que ir a buscar eloperando. 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 dedirección de la instrucción almacenada en RI. A continuación se descarga en RM el contenido de laposición de memoria especificada en RD. Posteriormente se almacena en R1 el contenido de RM. Acontinuación se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en ACel contenido de R2.

Page 288: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

c) Al tratarse de un operando con direccionamiento indirecto, significa que en el campo de dirección de lainstrucción almacenada en RI se encuentra la dirección de memoria donde hay que ir a buscar ladirección de memoria donde se encuentra el operando. Las microoperaciones a realizar son:

RD ← (RI(dirección))

RM ← memoria

RD ← (RM)

RM ← memoria

R1 ← (RM)

R2 ← (R1) + (AC)

AC ← (R2)

Es decir primero se carga en RD (registro de direcciones de memoria) el contenido del campo dedirección de la instrucción almacenada en RI. A continuación se descarga en RM el contenido de laposición de memoria especificada en RD, que contiene la dirección de memoria donde hay que buscar eloperando. A continuación se carga en RD la dirección de memoria almacenada en RD. El paso siguientees descargar el operando de la memoria a RM. Posteriormente se almacena en R1 el contenido de RM. Acontinuación se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en ACel contenido de R2.

Page 289: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

SOLUCION PROBLEMA 6.2

Se utiliza en este problema la siguiente notación:

AC acumulador

RD registro de dirección de memoria que especifica la próxima dirección de memoria donde se vaa leer o a escribir.

RM registro de datos de memoria contiene el dato a escribir en la memoria o recibe el dato leidoen la memoria.

RI registro de instrucción, en el se almacena la instrucción que se va ejecutar .

RI(datos) campo de datos de la instrucción almacenada en el RI.

RI(dirección) campo de dirección de la instrucción almacenada en el RI.

(XX) Contenido del registro XX.

a) Cargar acumulador con el contenido de una dirección de memoria. En la siguiente tabla se indican lasmicrooperaciones necesarias, así como las señales de control que hay que activar para la realización delas mismas.

Microoperaciones Señales deControl

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 indicanlas microoperaciones necesarias, así como las señales de control que hay que activar para la realizaciónde las mismas.

Microoperaciones Señales deControl

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 lasmicrooperaciones necesarias, así como las señales de control que hay que activar para la realización delas mismas.

Microoperaciones Señales deControl

RM←(RI(dato)) c15

Entrada 1←(RM) c8

AC←(AC)+ Entrada 1 c11

Page 290: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

d) Sumar al acumulador un operando con direccionamiento directo. En la siguiente tabla se indican lasmicrooperaciones necesarias, así como las señales de control que hay que activar para la realización delas mismas.

Microoperaciones Señales deControl

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 lasmicrooperaciones necesarias, así como las señales de control que hay que activar para la realización delas mismas.

Microoperaciones Señales deControl

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 lasmicrooperaciones necesarias, así como las señales de control que hay que activar para la realización delas mismas.

Microoperaciones Señales deControl

RD←(RI(dirección)) c14

RM←memoria c0

Entrada 1←(RM) c8

AC←(AC) AND Entrada 1 c12

g) Bifurcar, en modo de direccionamiento directo. En la siguiente tabla se indican las microoperacionesnecesarias, así como las señales de control que hay que activar para la realización de las mismas.

Microoperaciones Señales deControl

RD←(RI(dirección)) c14

RM←memoria c0

CP←(RM) c4

h) Bifurcar si acumulador=0, en modo de direccionamiento directo. En la siguiente tabla se indican lasmicrooperaciones necesarias, así como las señales de control que hay que activar para la realización delas mismas.

Microoperaciones Señales deControl

RD←(RI(dirección)) c14

RM←memoria c0

Si s0=1 CP←(RM) c4

Page 291: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

SOLUCION PROBLEMA 6.3De acuerdo con lo explicado en el libro de TeoríaAfirmación I : Es Verdadera

Afirmación II : Es Falsa ya que cada fase del ciclo de instrucción se puede descomponer en unasecuencia de operaciones elementales llamadas microoperaciones.

SOLUCION PROBLEMA 6.4 Procesador con cero instrucciones. Secuencia de instrucciones para calcular la expresión X=Y2·(X+Z)

El funcionamiento de un procesador con cero instrucciones se explica en la sección 6.1.4 del libro deteorí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 representaen una tabla las instrucciones y el contenido que tendría la pila tras ejecutar cada instrucción. Según sesitúa un dato más a la izquierda en la pila, significa que lleva más tiempo almacenado, es decir, los datosque entran en la pila lo hacen por su derecha. En consecuencia el elemento almacenado más a la derechaen 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 pilaPush[X]; YPush[Z]; Y ZAdd ; Y+Z

Push[Y]; Y+Z YPush[Y]; Y+Z Y YMult; Y+Z YxYMult; (Y+Z)xYxYPop[X];

Luego esta secuencia de instrucciones calcula la expresión pedida.

Opción B) :

Instrucciones Contenido de la pilaPush[Y]; YPush[Y]; Y YPush[X]; Y Y XPush[Z]; Y Y X ZAdd; Y Y X+ZMult; Y Yx(X+Z)Mult; YxYx(X+Z)Pop[X];

Luego esta secuencia de instrucciones calcula la expresión pedida.

Page 292: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

Opción C) :

Instrucciones Contenido de la pilaPush[Y]; YPush[Y]; Y YMult; YxY

Push[X]; YxY XPush[Z]; YxY X ZAdd; YxY X+ZMult; (YxY)x(X+Z)Pop[X];

Luego esta secuencia de instrucciones calcula la expresión pedida.

Luego la respuesta correcta es la D.

Page 293: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

SOLUCION PROBLEMA 6.5 Procesador de una dirección. 6 bits para el código de operación. 10 bits para la dirección de un operando. Instrucción de bifurcación, con direccionamiento relativo al contador del programa,

almacenada en la dirección DIR10=530 origina un salto a la posición DIR10=620. El código de operación de una cierta instrucción es 110011 Codificación en binario de la instrucción?

De acuerdo con el enunciado se tiene el siguiente formato de instrucción:

CódigoOperación DIR[Operando]

6 bits 10 bits

:

Una instrucción de bifurcación con direccionamiento relativo al contador de programa CP, se puedeexpresar de la siguiente forma:

CódigoOperación Desplazamiento

6 bits 10 bits

Donde la dirección del operando se obtiene a partir de:

DIRfinal= [CP]+ Desplazamiento

Sustituyendo los datos del enunciado se tiene:

620= 530+ Desplazamiento

Luego:

Desplazamiento=90

Si se pasa a binario el Desplazamiento se tiene:

Desplazamiento10=90=64+16+8+2=26+24+23+2

Desplazamiento2=1011010

En el enunciado nos dan el código de operación de la instrucción 110011 y acabamos de calcular eldesplazamiento, que expresado sobre un tamaño de 10 bits toma la forma: 0001011010. Luego lainstrucción pedida es:

110011 0001011010

Page 294: Coleccion Problemas Etc II

TEMA 6: Diseño del procesador. Solución problemas

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

SOLUCION PROBLEMA 6.6 Procesador con cero instrucciones. Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Mult; Pop M[A]

El funcionamiento de un procesador con cero instrucciones se explica en la sección 6.1.4 del libro deteorí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 cadainstrucción. Según se sitúa un dato más a la izquierda en la pila, significa que lleva más tiempoalmacenado, es decir, los datos que entran en la pila lo hacen por su derecha. En consecuencia elelemento almacenado más a la derecha en la pila constituye la cima de la pila

Instrucciones Contenido de la pilaPush M[C]; CPush M[D]; C D

Add; C+DPush M[C]; C+D CPush M[D]; C+D C D

Add; C+D C+DMult; (C+D)·(C+D)

Pop M[A];

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

Page 295: Coleccion Problemas Etc II

ESTRUCTURA Y TECNOLOGIADE COMPUTADORES II

TEMA 7: Microprogramación

SOLUCIONPROBLEMAS PROPUESTOS EN EXAMEN

Curso 2003-2004Jose Manuel Díaz Martínez

Tutor de la asignatura ETC-II

Page 296: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

CONTENIDOSOLUCION PROBLEMA 7.1 ..................................................................................................................... 3SOLUCION PROBLEMA 7.2 ..................................................................................................................... 3SOLUCION PROBLEMA 7.3 ..................................................................................................................... 3SOLUCION PROBLEMA 7.4 ..................................................................................................................... 4SOLUCION PROBLEMA 7.5 ..................................................................................................................... 4SOLUCION PROBLEMA 7.6 ..................................................................................................................... 4SOLUCION PROBLEMA 7.7 ..................................................................................................................... 4SOLUCION PROBLEMA 7.8 ..................................................................................................................... 4SOLUCION PROBLEMA 7.9 ..................................................................................................................... 5SOLUCION PROBLEMA 7.10 ................................................................................................................... 5SOLUCION PROBLEMA 7.11 ................................................................................................................... 5SOLUCION PROBLEMA 7.12 ................................................................................................................... 6SOLUCION PROBLEMA 7.13 ................................................................................................................... 7SOLUCION PROBLEMA 7.14 ................................................................................................................... 9SOLUCION PROBLEMA 7.15 ................................................................................................................. 10

Page 297: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

SOLUCION PROBLEMA 7.1En el enunciado nos dicen que se tiene un total de (5+5+3) subcampos, cada uno de los cuales requiere deun decodificador que sólo puede tener una de sus salidas activadas en un determinado instante de tiempo.Eso implica que el computador puede tener activadas como máximo 13 señales de control o microordenessimultáneamente.

Por otro lado si un subcampo tiene j bits, puede codificar un total de 2j-1 señales de control. Unacodificación se reserva para especificar el caso en que ninguna de las señales de control de ese subcampose encuentre activa.

Luego del enunciado se sabe que el formato tiene:5 subcampos codificados de un bit → 5 ·(21-1)=5 señales de control5 subcampos codificados de tres bits → 5·(23-1)=35 señales de control3 subcampos codificados de tres bits → 3·(24-1)=45 señales de control

Lo que hace un total de 85 señales de control.

SOLUCION PROBLEMA 7.2DATOS• Computador digital con 114 señales de control diferentes.• Siendo 6 de ellas mutuamente excluyentes

Afirmación I:Hay que tener en cuenta que el enunciado dice que de las 114 señales de control diferentes, 6 sonmutuamente excluyentes. Eso implica que esas 6 señales deben ser codificadas dentro de un mismosubcampo. Dicho subcampo debe tener como mínimo 3 bits, con los que se tendrían 8 codificaciones: 6codificaciones asociadas a cada una de las 6 señales de control, 1 codificación para indicar el caso en queno se active ninguna de las señales de control codificadas en este subcampo y la codificación restante nose 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 decontrol, independientemente de que sean excluyentes o no.

SOLUCION PROBLEMA 7.3DATOS• Microinstrucciones de formato horizontal con direccionamiento explícito.• Las microinstrucciones deben gobernar 135 señales de control• Codificar un repertorio de 50 instrucciones máquina• Memoria de control de 2048 palabras

La memoria de control es de 2048 palabras = 2 ·1024 palabras = 2·210=211 palabras. Luego el campo dedirección de cada microinstrucción debe tener 11 bits para especificar una posición de la memoria decontrol

Page 298: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

SOLUCION PROBLEMA 7.4

Afirmación I: Es Falsa ya que un subcampo de j bits puede codificar un total de 2j-1 señales de controlya que una de las codificaciones se debe reservar para especificar el caso en que ninguna de las señalesde control de ese subcampo se encuentre activa.

Afirmación II: Es Falsa ya que eso únicamente ocurre en las microinstrucciones con formato horizontal.

SOLUCION PROBLEMA 7.5De acuerdo con lo que se explica en el libro de Teoría sobre las tareas de una unidad de controlmicroprogramada:

Afirmación I: Verdadera

Afirmación II: Verdadera

SOLUCION PROBLEMA 7.6

Afirmación I: Es Falsa ya que en este formato cada señal de control tiene asociado un subcampo.

Afirmación II: Es Verdadera es la característica típica de las microinstrucciones con formato horizontal

SOLUCION PROBLEMA 7.7

Afirmación I: Es Verdadera. ya que existe un subcampo por cada señal de control lo que generamicroinstrucciones muy anchas.

Afirmación II: Es Falsa, las tiene codificadas.

SOLUCION PROBLEMA 7.8Afirmación A: Es Falsa. En una unidad de control microprogramada la memoria de control se utiliza paraalmacenar en ella los microprogramas asociados a las instrucciones máquina.

Afirmación B: Es Falsa

Afirmación C: Es Verdadera. ya que en las microinstrucciones con formato horizontal existe unsubcampo por cada señal de control lo que genera microinstrucciones muy anchas.

Page 299: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

SOLUCION PROBLEMA 7.9DATOS• 132 señales de control• Un grupo de 16 señales de control mutuamente excluyentes entre si.• Otro grupo de 32 señales de control mutuamente excluyentes entre si.

Afirmación I : Es falsa ya que un subcampo codificado de i bits puede codificar a los sumo 2i-1 señalesde 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 delhecho de que existan señales de control mutuamente excluyentes.

SOLUCION PROBLEMA 7.10DATOS• Memoria de control con longitud de palabra de 24 bits.• La parte de control del formato de una microinstrucción se divide en dos subcampos :

• Subcampo de control de 13 bits para indicar las microoperaciones a realizar.• Subcampo de selección de dirección que especifica un tipo de bifurcación condicional. Es

función de las señales de condición.• Se tienen 8 señales de condición

Por un lado el tamaño de una microinstrucción es de 24 bits.a) Puesto que el subcampo de selección de dirección es función de las señales de condición, se

requerirán 3 bits en ese subcampo para codificar las 8 señales de condición disponibles.

b) Luego el campo de control ( subcampo de control + subcampo de selección de dirección) constará de13 + 3 = 16 bits. Por lo que el campo de dirección constará de 24 -16 =8 bits. Luego el formato de lamicroinstrucción es:

Subcampo de control(microoperación)

Subcampo deselección de

dirección

campo de dirección

13 bits 3 bits 8 bits

c) Puesto que se tienen 8 bits en el campo de dirección se podrán direccionar 28 direcciones. El tamañode la memoria de control será:

C=28 pal x 24 bits/pal

SOLUCION PROBLEMA 7.11El formato de microinstrucción del problema anterior define una microinstrucción de bifurcacióncondicional, ya que siempre se está evaluando una de las señales de condición, aquella especificada en elsubcampo de selección.

Para tener microinstrucciones que no especifiquen ningún tipo de bifurcación, basta con definir elsubcampo de control de manera que uno de sus bits (T) indique bifurcación/ no- bifurcación (1/0) Este esel formato que se muestra a continuación

Subcampo de control(microoperación)

T Subcampo de selecciónde dirección

campo de dirección

13 bits 1 bit 3 bits 8 bits

Page 300: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

SOLUCION PROBLEMA 7.12DATOS• Cada instrucción máquina se le asignan 8 palabras en la memoria de control• El Código de operación (Cod_Op) de las instrucciones tienen 5 bits.• La memoria de control tiene una capacidad de 1024 palabras.

Puesto que el campo del código de operación (Cod_Op) de las instrucciones máquina tiene 5 bits, sepodrán codificar un total de 25= 32 operaciones.

Cada una de estas operaciones tiene asociado un microprograma (µp) ,cada uno de los cuales ocupa 8palabras. Por lo tanto de la capacidad total de la memoria de control 210 palabras sólo habrá que ocupar:

23 pal/µp x 25 µp= 28 pal

Luego la dirección para acceder a palabras de la memoria de control tiene 8 bits.

En la siguiente tabla se muestran las direcciones de la memoria de control que se corresponden a cadauno de los 32 códigos de operación posible. Como se comprueba, la dirección inicial del microprogramacorrespondiente a un determinado código de operación está formada por los 5 bits de este, como bits mássignificativos, más tres bits a 0 adicionales.

Código de operación Direcciones en la M. Control Formato de las direcciones00000 00000000 - 00000111 00000XXX00001 00001000 - 00001111 00001XXX00010 00010000 - 00010111 00010XXX

... ... ...11111 11111000 - 11111111 11111XXX

Teniendo esto presente la estructura del bloque “Lógica de transformación” es el que se muestra en lasiguiente figura:

Código deoperación

RI

“000”

5

8

Lógica detransformación

Page 301: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

SOLUCION PROBLEMA 7.13A la vista del esquema de la Unidad de Procesamiento (Figura 67-16-1), se deduce que son posibles 5tipos de operaciones básicas:

1) Bifurcación (B): Condicionales (8 señales de condición) e incondicionales.

2) Aritméticas y lógicas (UAL).

3) Desplazamiento (DESP): 3 bits para indicar el tipo de desplazamiento.

4) Transferencia de registros (TRANS): Rdestino ← (Rorigen).

5) Memoria (MEM): Operaciones de lectura y escritura en memoria principal, o asignar unvalor directo a un registro (este último caso se podría considerar como un tipo independientede las operaciones de memoria):

dirección ← (Ri)Ri ← (dirección)Ri ← valor

El formato de microinstrucción que se elija ha de permitir todos estos tipos de operaciones. La soluciónno es única. A continuación se expone cada una de las posibilidades, indicando sus ventajas einconvenientes.

A) Microinstrucciones de formato horizontal. Cada señal de control tiene un subcampo independiente de1 bit que indica el correspondiente valor de la señal de control. Éstas son:

Registros 1 al 31: 2 señales cada uno.

Registro 0: 3 señales de carga y 1 de salida al bus.

Registro de desplazamiento: 1 señal de carga y 3 de control de modo.

UAL: 2 señales de carga y 5 de control de modo.

16 bits de direccionamiento directo o inmediato.

Es decir, en total hay 93 señales de control que han de ser especificadas, una a una, en lamicroinstrucción (al ser tantas señales no se ha representado gráficamente este formato demicroinstrucción).Éste es el modo más sencillo y más rápido de ejecutar, ya que no es necesario ningún tipo dedecodificación de las microinstrucciones. Cada bit de la microinstrucción se corresponde directamentecon una única señal de control.Sin embargo, su longitud es muy grande y no está bien aprovechada; por ejemplo, una instrucción nopuede realizar simultáneamente una operación de la UAL y del registro de desplazamiento, pues enambas interviene el registro R0. Es decir, se tiene un formato en el que muchas señales se excluyenmutuamente.

Page 302: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

B) Microinstrucciones de formato vertical. Soluciona en parte la longitud excesiva del formatohorizontal. No existe un bit por señal de control, sino que éstas se encuentran codificadas:

- Las señales de lectura de los registros 1 al 31 se pueden codificar con únicamente 5 bits(25=32). Así, 00001 indicará lectura del registro R1, 00010 lectura del registro R2, etc. Sobra unacombinación, la 00000, que se puede utilizar para indicar que no se lee el valor de ningúnregistro. En este caso la lectura de un registro excluye la de todos los demás.

- Lo mismo sucede con las señales de carga de los registros 1 al 31.

- Las 4 señales de control del registro R0 (3 de carga y una de lectura con salida al bus) sepueden codificar con 2 bits.

- El registro de desplazamiento RD tiene un total de 4 señales de control que no necesitan máscodificación.

- La UAL se controla con un total de 7 señales.

- 16 bits de direccionamiento directo o inmediato.

El formato de microinstrucción es el de la Figura 67-16-2.

5 5 2 4 7

UALRDR0Lec. Reg. Escr. Reg.

16Dirección oValor

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 93del formato horizontal. Sin embargo, el nivel de decodificación adicional añade complejidad al hardwarey hace que la ejecución de las microinstrucciones resulte más lenta, a igualdad de tecnología empleada.

C) Microinstrucciones verticales de formato variable. Representan un nivel adicional de codificaciónfrente al formato vertical fijo. Como se indicó anteriormente, hay 5 tipos de operaciones. A cada uno deellos se le asigna un formato especial de microinstrucción, según se muestra en la Figura 67-16-3. En estecaso, el ancho de palabra de control es de un mínimo de 21 bits.

1 1

1 2 1 4 5

1 2 3

1 2 5 5

1 2 1 1

B

NB

BIFURC.

UAL

DESPL.

TRANSF.

MEM.

Tipo Condición Dirección

UAL(00)

A/L Función Registro

DESP.(01)

Tipo

TRANS.(10)

3

R. Origen R. Destino

16

16

MEM.(11)

L/E Modo Dirección o Valor

(1)

(0)

NB(0)

NB(0)

NB(0)

Figura 67-16-3 Microinstrucciones verticales de formato variable

Page 303: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

El formato de microinstrucción vertical variable implica el que algunos campos determinen la forma enque 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) oincondicional (0). Sigue un campo que sólo se interpreta en las bifurcaciones condicionales, para fijar eltipo de condición que determina la bifurcación. Finalmente, hay un campo adicional que señala ladirecció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óna 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), elsiguiente campo indica la función, y el último el registro que se empleará, junto con el acumulador, en lasoperaciones 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, elsentido, 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 elregistro destino.Finalmente, en las operaciones con memoria, el tercer campo indica lectura o escritura, el cuarto el modode direccionamiento (directo o inmediato) y el último la dirección de memoria, para el caso dedireccionamiento directo. El direccionamiento inmediato es diferente, ya que este último campo contieneel valor que hay que cargar en el registro R0.Este formato es el que utiliza una palabra de control más corta, pero la decodificación de lasmicroinstrucciones 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 dediseño y coste, dependiendo por tanto de cada caso particular.

SOLUCION PROBLEMA 7.14DATOS• Formato de microinstrucciones vertical.• 16 señales de control

En general un subcampo de control de j bits de una microinstrucción de formato vertical puede codificarun total 2j-1 señales de control ya que una codificación se debe reservar para especificar el caso en queninguna 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 explicadoanteriormente, se requiere un decodificador con al menos 17 salidas. Este decodificador debe poseercomo mínimo 5 entradas, ya que para codificar estas 17 salidas se requieren 5 bits al verificarse que25=32 >17. Por lo tanto la anchura mínima de este subcampo debe ser de 5 bits.

Page 304: Coleccion Problemas Etc II

TEMA 7: Microprogramación Solución problemas

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

SOLUCION PROBLEMA 7.15DATOS• Unidad de control microprogramada.• Direccionamiento explícito con 2 direcciones por microinstrucción.• Memoria de control de 35 bits.• 15 bits para los campos de control.

La memoria de control almacenará las posibles microinstrucciones que se pueden ejecutar en el sistema,la anchura de esta memoria según el enunciado es de 35 bits, de los cuales 15 son para los bits de controly los 20 restantes para almacenar dos direcciones de memoria de control, ya que se usa direccionamientoexplícito con 2 direcciones por microinstrucción.

Luego una dirección de memoria de control requiere para especificarse 20/2=10 bits. En consecuencia, elnúmero de palabras máxima que tendrá la memoria de control, es decir que pueden ser direccionadas con10 bits es: 210 palabras