Coleccion Problemas Etc II
-
Upload
andres-ortega-a -
Category
Documents
-
view
254 -
download
3
Transcript of 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
COLECCIÓN PROBLEMAS ESTRUCTURA Y TECNOLOGÍA COPUTADORES 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
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
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 ?
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
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?
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.
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)
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
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é?
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.
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.
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.
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
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
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
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?.
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
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.
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 +=
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.
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
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?
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
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.
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;
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
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
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 ;
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)
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)
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)
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.
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
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?
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.
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.
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?
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
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
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.
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.
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.
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 ===−
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.
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 =≈
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.
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.
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.
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
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
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
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).
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
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
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
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
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
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
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.
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.
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.
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
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
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
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
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.
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
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
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.
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
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.
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.
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.
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
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
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.
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.
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é.
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.
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 :
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
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.
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.
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= ô
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 % .
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.
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
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
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
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 % .
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:
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%
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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
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
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) • ( ) ( / )
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
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
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 ===
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
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− = − =• • ( / )
-------
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.
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
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.
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 ===
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
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.
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
SOLUCIÓN PROBLEMA
3 - 17
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.
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
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
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
)
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
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
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.
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 =+=+=+=
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.
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 ===
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.
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
===
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
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
SOLUCIÓN PROBLEMA
3 - 35
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
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
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
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
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
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
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
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
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 ====
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.
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
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 ===
SOLUCIÓN PROBLEMA
3 - 41
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:
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
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
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 .
5 Estructura y Tecnología de Computadores II
Figura 9: Controlador de interrupciones capaz de atender a 6 periféricos.
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
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
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.
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
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
•
•
•
•
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
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
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
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
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
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
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
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=
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
•
••
•
•
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.
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 %.
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.
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.
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
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
SOLUCIÓN PROBLEMA
4 - 12
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
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
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
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
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
SOLUCIÓN PROBLEMA
4 - 16
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
⊕
⊕ ⊕ ⊕
⊕
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
•
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
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.
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 .
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.
SOLUCIÓN PROBLEMA
4 - 26
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.
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
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
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
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
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.
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..
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.
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).
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.
SOLUCIÓN PROBLEMA
4 - 37
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
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
+ =
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
+ =
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
+ =
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• •
• ••
• • • •
• • • ••• ••• •••
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
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
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
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
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
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;
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
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
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
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
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
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.
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
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..
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
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.
SOLUCIÓN PROBLEMA
5 - 5
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
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”
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
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
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
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
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.
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.
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
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.
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.
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.
SOLUCIÓN PROBLEMA
5 - 9
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
�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)
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
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
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
SOLUCIÓN PROBLEMA
5 - 10
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
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
⊕
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
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
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
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
SOLUCIÓN PROBLEMA
5 - 11
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)
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
⊕
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
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
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
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
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
SOLUCIÓN PROBLEMA
5 - 12
Diseñe un circuito digital (Unidad de Procesamiento + Unidad de Control)que realice el algoritmo que se muestra en el recuadro. Para ello siga 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.
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
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
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
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
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
SOLUCIÓN PROBLEMA
5 - 15
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
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.
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
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
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
SOLUCIÓN PROBLEMA
5 - 16
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
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
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
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
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
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
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
SOLUCIÓN PROBLEMA
5 - 17
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
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
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
Figura 6: Diseño de la Unidad de Procesamiento.
b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se ha
diseñado el diagrama de transición de estados de la Figura 7, donde el significado detallado de cada uno de los estados propuestos viene dado por la Tabla 2. Obsérvese que esta Unidad de Control se ha diseñado como una máquina de Moore. (Dada la sencillez del algoritmo propuesto, se ha obtenido directamente el diagrama de estados a partir de éste, sin necesidad de pasar por el diagrama ASM.)
Figura 7: Diagrama de estados de la unidad de control.
9
Estado de la
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
Figura 8: Unidad de Control mediante elementos de retardo.
11
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
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
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.
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.
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
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
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.
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.
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
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.
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
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
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
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.
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
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
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.
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
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.
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