Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso 2002-2003
1.2 La memoria de un ordenador consta de 10 mdulos independientes conectados a un bus de memoria comn. En una operacin de escritura cada uno de estos mdulos nicamente ocupa el bus del sistema al comienzo de la operacin y durante un 20% del tiempo total del ciclo de escritura. El 80% del tiempo de ciclo de escritura restante el mdulo lo emplea para almacenar el dato internamente. Si las operaciones de escritura de dichos mdulos de memoria pueden solaparse, en cunto se ve incrementada la velocidad mxima de almacenamiento de la memoria del ordenador en relacin a la velocidad de un nico modulo?
1.3 Un computador de von Neumann tiene una longitud de palabra de 16 bits. Sus instrucciones mquina
ocupan una longitud de 16 32 bits (1 2 palabras). En ambos casos, el cdigo de operacin de las instrucciones mquina ocupa un campo de 7 bits. Indique si las siguientes afirmaciones son verdaderas: I. La memoria principal deber estar dividida en dos bancos distintos: uno para datos y otro para instrucciones. II. Este computador tendr, como mximo, 27-1 seales de control diferentes.
1.4 La memoria de un ordenador consta de 20 mdulos independientes conectados a un bus de memoria comn. En una operacin de escritura cada uno de estos mdulos nicamente ocupa el bus del sistema durante 25 nseg. Al comienzo de la operacin. Durante los 75 nseg. siguientes completa el ciclo de escritura almacenando el dato internamente. Si las operaciones de escritura de dichos mdulos de memoria pueden solaparse, cul es la velocidad mxima de almacenamiento de la memoria del ordenador ?
1.5 Indique si las siguientes afirmaciones son verdaderas. I. Una transferencia de datos en un bus que utiliza la tcnica de multiplexacin en el tiempo de direcciones y datos se realiza de la forma siguiente: se coloca la direccin en el Bus de Direcciones y se mantiene mientras el dato se sita en el Bus de Datos. II. Cuando las salidas de varias puertas triestado se encuentran conectadas a una misma lnea de un bus, slo una de ellas puede estar en estado de alta impedancia.
1.6 A un bus dedicado a E/S se han conectado la memoria principal y cinco discos iguales. El tiempo de ciclo de la memoria principal es 400 nseg. La velocidad de transferencia de cada disco es B. La longitud de palabra es 32 bits. Cada transmisin sobre el bus necesita 500 nseg para enviar el dato y las diferentes rdenes del protocolo. En cul de las siguientes situaciones estara ms justificado el uso de un bus con temporizacin sncrona? A) B = 106 bits/seg B) B = 4 106 bits/seg C) B = 107 bits/seg D) B = 8 107 bits/seg
Curso 2002-2003
1.7 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido: I. La posicin de conexin de los dispositivos a la lnea de arbitraje no determina la prioridad de aquellos en el uso del bus. II. El uso del bus por un dispositivo se interrumpe cuando otro dispositivo con mayor prioridad solicita el uso del bus.
1.8 Indique cul de las siguientes afirmaciones sobre los buses es cierta: A) Los buses transportan nicamente datos y direcciones. B) Los buses pueden ser compartidos por dispositivos de muy distintas velocidades. C) No es necesario un mtodo de arbitraje para evitar que varias unidades vuelquen simultneamente datos al bus. D) Ninguna de las anteriores.
1.9 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido: I. La posicin de conexin de un dispositivo a la lnea de arbitraje determina su prioridad en el uso del bus. II. No se requiere un rbitro.
1.10 Considere una CPU en la que tanto las instrucciones como los datos tienen una longitud de 16 bits. El formato de las instrucciones es el siguiente: los 4 bits ms significativos de la instruccin representan el cdigo de operacin y los otros 12 bits representan la direccin de memoria. A continuacin se muestra una lista parcial de los cdigos de operacin: 0011: Cargar el registro acumulador desde memoria. 0101: Almacenar en memoria el contenido del registro acumulador. 0110: Sumar el contenido del acumulador y el de una direccin de memoria. El resultado se almacena en el acumulador. Indicar cul de los siguientes fragmentos de programa suma el contenido de la direccin de memoria 3A516 al contenido de la direccin de memoria 3B916 y almacena el resultado en la direccin de memoria 3A516. A) 33A516, 63B916, 53A516 B) 33B916, 63A516, 53A516 C) Los anteriores son correctos D) Ninguno de los anteriores
Curso 2002-2003
2.3 Un computador tiene una unidad de memoria de 512 (29) palabras y una memoria cach de 32 (25) palabras con un tamao de particin de 8 (23) palabras. Suponiendo que inicialmente la memoria cach est vaca, calcular cuntos fallos se produciran en la cach si se leyeran sucesivamente las direcciones de memoria principal 000000000, 000000001, 000000011, 000100001, 000100101, 000010000, 000010010 y 000000000, en cada una de las situaciones siguientes: a) La memoria cach emplea correspondencia directa. b) La memoria cache emplea correspondencia asociativa por conjuntos, con 2 particiones por conjunto. El algoritmo de reemplazamiento utilizado es FIFO (Firts-In Firts-Out). c) La memoria cach emplea correspondencia totalmente asociativa. El algoritmo de reemplazamiento utilizado es LRU (Least Recently Used).
2.4 Un sistema jerrquico de memoria tiene una memoria cach de 256 palabras con un tiempo de acceso de 10 nseg, y una memoria principal de 1024 Kpalabras con un tiempo de acceso de 100 nseg. Si la tasa de acierto de la cach es del 90%. Calcular el tiempo de acceso medio del conjunto si cuando se produce un fallo en la cach el sistema tarda 20 nseg adicionales en tratar el fallo y la palabra solicitada es enviada de la memoria principal a la memoria cach de donde es leda por la CPU. 2.5 Un computador tiene una unidad de memoria de 512 (29) palabras y una memoria cach de 32 (25) palabras. La memoria cach utiliza correspondencia totalmente asociativa, con un tamao de particin de 8 (23) palabras. Suponiendo que inicialmente la memoria cach est vaca, cuntos fallos se produciran en la cach si se leyeran sucesivamente las direcciones de memoria principal 000000000, 000000001, 000000011, 000100001, 000100101, 000010000, 000010010 y 000000000 ? 2.6 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del registro argumento, del registro de mscara y del 0 1 0 1 1 1 0 0 ARGUMENTO contenido de la memoria, cul sera el valor del 1 0 1 0 1 1 0 1 MSCARA registro de marca?
1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 ? ? ? ? ?
MARCA
Curso 2002-2003
2.7 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras. La memoria cach utiliza correspondencia directa, con un tamao de particin de 16 palabras. Suponer que inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal 000000010000, 000100010100, 000001001000 y 000001111000. Indicar si de las afirmaciones siguientes son ciertas: I. Si se leyeran las direcciones de memoria principal se 000000010100 y 010011101100, sucesivamente, se produciran dos fallos en la memoria cach y sera necesario reemplazar dos de los bloques existentes en la cach. II. Si se leyera la direccin de memoria principal 000001110001 se producira un acierto en la memoria cach y sera necesario reemplazar un bloque existente en la cach. 2.8 El siguiente diagrama representa una memoria asociativa y su contenido.
? 1 1 1 0 1 1 ? 0 1 1 0 0 1 ? 0 0 0 0 1 0 ? 1 1 1 1 0 1 ? 0 1 1 0 0 1 ? 1 1 0 0 1 0 ? 0 1 1 0 1 0 ? 0 1 0 1 0 1 ARGUMENTO MSCARA 0 1 0 0 1
A la vista de los valores del registro de mscara y del contenido de la memoria, cuntos de los argumentos propuestos a continuacin produciran ese registro de marca?
1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 Argumento 1 Argumento 2 Argumento 3 Argumento 4 Argumento 5
MARCA
2.9 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 128 palabras. La memoria cach utiliza correspondencia totalmente asociativa, con un tamao de particin de 16 palabras. El algoritmo de reemplazamiento es FIFO (se reemplaza la particin ms antigua). Suponer que inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal 000000010000, 000100010100, 000001001000 y 000001111000. Indicar si las afirmaciones siguientes son ciertas: I. En estas cuatro lecturas se ha producido un total de tres fallos en la memoria cach. II. Si a continuacin se leyera la direccin de memoria principal 011001110100 se producira un nuevo fallo en la cach y se tendr que reemplazar uno de los bloques de la cach. 2.10 Un computador tiene una unidad de memoria de con 16 lneas de direccin, y una memoria cach de 1K palabras. La memoria cach utiliza correspondencia asociativa por conjuntos, con un tamao de particin de 16 palabras y 4 particiones por conjunto. Explicar razonadamente en qu campos se divide la direccin de memoria principal 0000110111000011 e indique el valor de cada uno de estos campo en decimal. 2.11 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del registro argumento y del contenido de la memoria, cuntos de los 1 0 1 1 1 0 0 ARGUMENTO registros de mscara propuestos a continuacin produciran ese ? ? ? ? ? ? ? MSCARA registro de marca en el acceso a memoria?
0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 MARCA 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 Mscara 1 1 Mscara 2 1 Mscara 3 1 Mscara 4 1 Mscara 5
0 ?
2.12 Cul es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 80 nseg. y un tiempo de ciclo de 100 nseg.?
Curso 2002-2003
2.13 Indicar si las siguientes afirmaciones son verdaderas o falsas. Para disear un mdulo de memoria de 256 palabras de 4 bits I. Utilizando organizacin 2D, para seleccionar la palabra hara falta un decodificador de 8 entradas y 28 salidas. II. Utilizando organizacin 2 D, para seleccionar la palabra haran falta dos decodificadores de 4 entradas y 24 salidas. 2.14 En una memoria cach en la que se realizan 230 accesos con una tasa de aciertos del 75%, Cal es el nmero de fallos producidos ? 2.15 Un computador tiene una unidad de memoria de 256 palabras y una memoria cach de 32 palabras. La memoria cach es totalmente asociativa, con un tamao de particin de 8 palabras y cuando se produce un fallo en la cach se reemplaza la particin ms antigua. Suponiendo que inicialmente la memoria cach est vaca, explicar razonadamente cuntos fallos se produciran en la cach si se leyeran sucesivamente las direcciones de memoria principal: 00000000, 00000001, 00000011, 00100001, 00100101, 00010000, 00010010 y 00000000. 2.16 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del registro argumento, del registro de mscara, del registro etiqueta y del contenido de la memoria, cul sera el valor del registro de marca?
1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 ARGUMENTO MASCARA ? ? ? ? ?
ETIQUET
MARCA
2.17 Un computador tiene una unidad de memoria de 256 palabras y una memoria cach de 32 palabras. La memoria cach es totalmente asociativa, con un tamao de particin de 8 palabras. Cuando se produce un fallo en la cach se reemplaza la particin ms antigua. Suponer que inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal: 00000000, 00000001, 00000011, 00100001, 00100101,00010000, 00010010 y 00000000. Si se leyera la direccin 00100111. Indicar si son verdaderas o falsas las siguientes afirmaciones : I. Se producira un acierto en la memoria cach. II. Se producira un fallo en la memoria cach y sera necesario reemplazar uno de los bloques existentes en la cach. 2.18 Un sistema jerrquico de memoria est compuesto por una memoria cach de 256 palabras, dividida en particiones de 8 palabras y con un tiempo de acceso de 10 nseg, y por una memoria principal de 1024 Kpalabras con un tiempo de acceso de 100 nseg. Cuando se produce un fallo, se mueve el dato a la CPU y, simultneamente, se mueve el bloque a la memoria cach. Si la tasa de acierto de la cach es del 90%, cul ser el tiempo de acceso medio del conjunto? 2.19 Un sistema jerrquico de memoria tiene una memoria cach de 256 palabras, dividida en particiones de 8 palabras y con un tiempo de acceso de 10 nseg, y una memoria principal de 1024 Kpalabras con un tiempo de acceso de 100 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria cach y despus se lee el dato desde la cach. Si la tasa de acierto de la cach es del 90%, cul es el tiempo de acceso medio de este sistema?
Curso 2002-2003
2.20 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores de los registros argumento, mscara, etiqueta y marca, y del contenido de la memoria, en una operacin de escritura en esta memoria, en qu palabra se escribira el nuevo dato?
1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 ARGUMENTO MASCARA Palabra 0 Palabra 1 Palabra 2 Palabra 3 Palabra 4 0 1 1 0 0
ETIQUET
MARCA
2.21 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras. La memoria cach utiliza correspondencia directa, con un tamao de particin de 16 palabras. Suponer que inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal 000000010000, 000100010100, 000001001000 y 000001111000. Indicar si al finalizar estas cuatro operaciones de lectura las afirmaciones siguientes son ciertas: I. La palabra de direccin 000001111000 se encuentra almacenada en el conjunto 0 de la cach. II. El conjunto 1 de la cach tiene asociada la etiqueta 000000. 2.22 Se considera un procesador que dispone de 12 lneas de direcciones A 11 -A 0 . Para la construccin de su unidad de memoria se dispone de mdulos de 1K palabras, utilizndose las lneas ms significativas (A 11 -A 10 ) para la seleccin de cada mdulo. Cul es en el mapa de memoria, la direccin base (primera direccin de cada mdulo) en notacin hexadecimal de los sucesivos bloques de memoria ? 2.23 Un computador dispone del siguiente sistema jerrquico de memoria (ordenado de los niveles superiores a los inferiores): registros de la CPU, cach primaria, cach secundaria, memoria principal y discos magnticos. Indique si las siguientes afirmaciones son verdaderas: I. El coste por palabra de la cach primaria ser menor que el coste por palabra de la cach secundaria. II. La cach primaria ser de menor tamao que la secundaria y contendr la copia de algunos bloques de sta. 2.24 Indicar si las siguientes afirmaciones son verdaderas o falsas. En un sistema de memoria cach con correspondencia totalmente asociativa: I. No es necesario definir una poltica de reemplazamiento. II. Un posible algoritmo de reemplazamiento consiste en reemplazar particiones escogidas de forma aleatoria. 2.25 Se considera un procesador que dispone de 12 lneas de direcciones A 11 -A 0 . Para la construccin de su unidad de memoria se dispone de mdulos de 1K palabras, utilizndose las lneas menos significativas (A 1 - A 0 ) para la seleccin de cada mdulo. Indique cul de las siguientes afirmaciones es verdadera: A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo mdulo de memoria. B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes mdulos de memoria. C)Ninguna de las anteriores es verdadera.
2.26 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras. La memoria cach utiliza correspondencia directa, con un tamao de particin de 16 palabras. Suponer que inicialmente la memoria cach est vaca y que se leen sucesivamente las direcciones de memoria principal 000000010000, 000100010100, 000001001000 y 000001111000. Indicar si al finalizar estas cuatro operaciones de lectura las afirmaciones siguientes son ciertas: I. La palabra de direccin 000001111000 se encuentra almacenada en el bloque 3 de la cach. II. El bloque 1 de la cach tiene asociada la etiqueta 000100.
Curso 2002-2003
2.27 Un computador tiene una memoria principal de 32k palabras de 16 bits/palabra. Tambin tiene una memoria cach asociativa por conjuntos de 4k palabras, con 4 bloques por conjunto y 64 palabras por bloque. Considrese que la memoria cach est inicialmente vaca y que utiliza el algoritmo FIFO para el reemplazo de los bloques. Supngase que la CPU accede a 4352 palabras de las direcciones 0, 1, 2... 4351, en orden. Despus repite esta secuencia nueve veces ms. La memoria cach es 10 veces ms veloz que la memoria principal. Se pide: a) (0.50 puntos) Especifique el nmero de bits de los campos en que se descompone una direccin de memoria principal de este sistema. b) (0.25 puntos) Calcule cunto tiempo se tardara en realizar estos accesos a memoria principal si este computador no tuviera memoria cach. c) (2 puntos) Calcule cuntos fallos se producen en la cach a la hora de realizar estos accesos a memoria principal. Explique claramente su razonamiento. d) (1.25 puntos) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a memoria cach y despus se lee el dato de la cach, calcule cunto tiempo tardara la CPU en realizar estos accesos a memoria. 2.28 Un programa tiene dos bucles anidados, un bucle interior menor que se ejecuta 20 veces y un bucle exterior mucho mayor que se ejecuta 10 veces. La estructura general del programa se muestra en la figura, donde las direcciones mostradas se corresponden con el principio y final de cada uno de estos bucles, y el principio y final del programa. Las direcciones se muestran en formato decimal(hexadecimal), por ejemplo 165(H00A5). Todas las direcciones de memoria de las diferentes secciones, 17-22, 23-164, 165-239, etc., contienen instrucciones que deben ejecutarse en secuencia de lnea recta. El programa se ejecuta en un computador con una memoria principal de 64k palabras y una memoria cach con correspondencia directa de 1k palabras y un tamao de bloque de 128 palabras. El tiempo de acceso a la memoria principal es de 10t y el tiempo de acceso a la memoria cach es de 1t.
17 (H0011)
23 (H0017)
165 (H00A5)
239 (H00EF)
1200 (H04B0)
1500 (H05DC)
a) (0.25 puntos) Especifique el nmero de bits de los campos en que se descompone una direccin de memoria principal de este sistema. b) (0.75 puntos) Calcule cunto tiempo se tardara en ejecutar este programa si este computador no tuviera memoria cach. c) (2 puntos) Calcule cuntos fallos se producen en la cach a la hora de ejecutar este programa. Explique claramente su razonamiento. (Sugerencia: diferencie entre la primera ejecucin del bucle exterior y las nueve restantes.) d) (1 punto) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a memoria cach y despus se lee el dato de la cach, calcule cunto tiempo se tardara en ejecutar este programa en este computador.
2.29 En una memoria cach en la que se realizan 220 accesos se producen 217 fallos. Cual es la tasa de fallos correspondiente?. 2.30 Se considera un procesador que dispone de 12 lneas de direcciones A 11 -A 0 . Para la construccin de su unidad de memoria se dispone de mdulos de 2K palabras, utilizndose la lnea A1 para la seleccin de cada mdulo (A 0 es la lnea menos significativa). Indique cul de las siguientes afirmaciones es verdadera: A) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en el mismo mdulo de memoria. B) Las direcciones hexadecimales C89 y C8A se encuentran almacenadas en diferentes mdulos de memoria. C) El mdulo en que se encuentra almacenada una direccin de memoria queda determinado por el valor de A 10 . D) Ninguna de las anteriores es verdadera.
Curso 2002-2003
2.31 Un computador tiene una memoria principal de 64k palabras de 16 bits/palabra. Tambin tiene una memoria cach totalmente asociativa de 2k palabras y 256 palabras por bloque. Considrese que la memoria cach est inicialmente vaca y que, cuando la cach est llena, se reemplaza el bloque que se haya utilizado ms recientemente . Supngase que la UCP ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la direccin 0 hasta la direccin 2300. La memoria cach es 7 veces ms veloz que la memoria principal. Se pide: A) (0.25 puntos) Especifique el nmero de bits de los campos en que se descompone una direccin de memoria principal de este sistema. B) (0.25 puntos) Calcule cunto tiempo se tardara en realizar estos accesos a memoria principal si este computador no tuviera memoria cach. C) (1.5 puntos) Realice una tabla con 5 columnas, una columna por cada vez que se ejecuta el bucle, y tantas filas como bloques tenga la memoria cach. En cada columna ponga el valor de la etiqueta existente en cada bloque de la cach al finalizar cada uno de los cinco ciclos. Expresar el valor de la etiqueta en hexadecimal. D) (1.00 puntos) Calcule cuntos fallos se producen en la cach a la hora de realizar estos accesos a memoria principal. Explique claramente su razonamiento. E) (1.00 puntos) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a memoria cach y despus se lee el dato de la cach, calcule cunto tiempo tardara la UCP en realizar estos accesos a memoria. 2.32 En una memoria cach en la que se realizan 220 accesos se producen 217 fallos. Cual es la tasa de aciertos correspondiente ?. 2.33 Un computador tiene una unidad de memoria de 8192 Kpalabras y una memoria cach de 2 Kpalabras. La memoria cach utiliza correspondencia asociativa por conjuntos, con un tamao de particin de 64 palabras y 4 particiones por conjunto. Suponer que inicialmente la memoria cach est llena con la ejecucin de un programa anterior Prog1 y se carga en memoria principal un nuevo programa Prog2. Prog2 efecta la siguiente secuencia de referencias en la ejecucin de su cdigo: se leen secuencialmente las direcciones 128, 129, 130 hasta la 143 , posteriormente se repite un bucle de lectura de las direcciones 131,132 y 133 20 veces y finalmente se leen secuencialmente las direcciones 134, 135, 136 hasta la 168 . Cul es la tasa de aciertos obtenida para Prog2? 2.34 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores del registro argumento, registro etiqueta y del contenido de la memoria, cuntos de los registros de mscara propuestos a continuacin produciran ese registro de marca en el acceso a memoria?
0 ? 0 1 1 1 1 1 1 1 1 1 1 ? 1 1 0 0 1 0 ? 0 0 0 1 0 1 ? 1 1 1 0 1 1 ? 1 1 0 0 1 1 ? 1 0 0 1 0 0 ? 1 1 0 1 0 0 ? 0 0 0 0 0 ARGUMENTO MASCARA 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 mscara mscara mscara mscara mscara 1 2 3 4 5
ETIQUETA
MARCA
2.35 Una memoria cach por correspondencia directa utiliza particiones de 64 palabras y su capacidad total 20 son 1024 palabras. La memoria principal tiene capacidad para 2 palabras. Decir si las siguientes afirmaciones son ciertas: I. Las direcciones de memoria principal 1D45F y 02075 , expresadas en hexadecimal, se corresponden con la particin 4 de la memoria cach. II. La direccin de memoria 2A23B, expresada en hexadecimal, se corresponde con la particin 8 de la memoria cach. 2.36 Supngase una memoria RAM de 1024 palabras 16 bits/palabra construida empleando circuitos integrados de memoria RAM de 128 palabras 8 bits/palabra. A fin de permitir el direccionamiento de las palabras de la memoria, calcular: a) El nmero de lneas del bus de direcciones. b)El nmero de lineas del bus de direcciones comunes a todos los mdulos.
Curso 2002-2003
2.37 Cul es la frecuencia de acceso de una memoria de acceso aleatorio con un tiempo de acceso de 100 nseg y un tiempo de ciclo de 200 nseg? 2.38 Un sistema jerrquico de memoria est compuesto por una memoria cach de 128 palabras, dividida en particiones de 16 palabras y con un tiempo de acceso de 10 s, y por una memoria principal de 1024 Kpalabras con un tiempo de acceso de 200 seg. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria cach y despus se lee el dato desde la cach. La poltica de ubicacin y reemplazamiento tarda 20 seg por trmino medio. Si la tasa de acierto es del 99%, decir si las siguientes afirmaciones son ciertas: I. El tiempo de acceso medio es de 42,2 seg. II. Este sistema jerrquico de memoria es entre 4 y 5 veces ms rpido que la memoria principal. 2.39 Una memoria cach por correspondencia directa utiliza 8 palabras/bloque y su capacidad total son 1K palabras. La memoria principal tiene una capacidad de 64K palabras. En un determinado instante, la direccin 6B59, expresada en hexadecimal, de la memoria principal se encuentra en la cach. Decir si las siguientes afirmaciones son ciertas: I. Esta direccin se corresponde con el bloque 107, expresado en decimal, de la memoria cach. II. Del enunciado puede deducirse que la direccin 675E, expresada en hexadecimal, no est en la cach. 2.40 Sea un sistema de memoria cach con dos niveles, donde la memoria cach de nivel 1 es la ms cercana a la CPU y la memoria de nivel 2 es la ms cercana a la memoria principal. Indique si las siguientes afirmaciones son verdaderas: I. En algn momento existir una copia de todos los bloques de la cach de nivel 2 en la cach de nivel 1. II. Utilizando una poltica de post-escritura , la memoria cach de nivel 2 tiene siempre una copia exacta de los bloques de la memoria cach de nivel 1. 2.41 Un pequeo computador dispone de 16 lneas de direcciones A15 -A 0 . Su unidad de memoria est compuesta tanto por mdulos de memoria ROM como de RAM. La ROM est formada por un nico mdulo y ocupa las direcciones ms bajas de la memoria, comenzando en la direccin 0. La RAM, con 48 Kbytes de capacidad, ocupa las direcciones restantes. Indique si las siguientes afirmaciones son verdaderas: I. La funcin lgica de la seal de habilitacin del mdulo de memoria ROM es CS ROM = A15 A14 . II. Los dos bits menos significativos de la direccin, A1 A 0 , se pueden utilizar para distinguir si una direccin de memoria corresponde a ROM o a RAM. 2.42 Una memoria de acceso no aleatorio con velocidad de transferencia de 2 106 bits/seg, emplea en promedio 2 mseg en colocar en su posicin la cabeza de lectura-escritura. Cul es el tiempo medio que tarda en leer o escribir 103 bytes? 2.43 Un sistema jerrquico de memoria tiene una memoria cach de 256 palabras, dividida en particiones de 8 palabras y con un tiempo de acceso de 20 nseg, y una memoria principal de 1024 Kpalabras con un tiempo de acceso de 200 nseg. Cuando se produce un fallo, primero se mueve el bloque completo a la memoria cach y despus se lee el dato desde la cach. Si la tasa de acierto de la cach es del 90%, cul es el tiempo de acceso medio de este sistema? 2.44 En una memoria cach en la que se realizan 1020 accesos se producen 1018 fallos. Calcular la tasa de aciertos: 2.45 Desde el punto de vista de una cach una direccin de memoria principal se divide en tres campos: ETIQUETA 20 bits, CONJUNTO 7 bits y PALABRA 5 bits. La cach tiene 2 bloques por conjunto. Sabiendo que la longitud de palabra es de 1 byte, cul es el tamao de la memoria cach?
Curso 2002-2003
2.46 Con el objetivo de acercar la velocidad de la unidad de memoria de un computador a la velocidad de los registros de su CPU, a un coste razonable, indique cul de las siguientes alternativas sera ms adecuada: A) Aumentar el nmero de registros de la CPU. B) Hacer uso de una memoria cach. C) Aumentar la capacidad de los discos magnticos. D) Ninguna de las anteriores.
Curso 2002-2003
3.6 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia de robo de ciclos. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de reloj en ser ejecutadas, aunque en 2 de ellos no requiere el acceso al bus. Si la frecuencia de reloj del computador es de 200 106 ciclos/seg., cuntas instrucciones por segundo deja de ejecutar la UCP cuando el controlador de DMA est realizando una transmisin? 3.7 En un computador que funciona a una velocidad de 108 ciclos/seg una instruccin emplea, en promedio, 4 ciclos mquina en ser ejecutada y en 2 de estos ciclos no hace uso del bus. Este computador tiene un controlador de DMA que emplea 1 ciclo en la transferencia de una palabra. Indicar si son ciertas las siguientes afirmaciones: I. Utilizando DMA transparente la mxima velocidad de transferencia de datos es de 50.000.000 palabras/seg. II. Empleando DMA por robo de ciclos la mxima velocidad de transferencia de datos es de 20.000.000 palabras/seg.
Curso 2002-2003
3.8 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 5 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 2 105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 100 nseg. Qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una transferencia de datos del canal multiplexor a memoria principal? 3.9 Un controlador de E/S posee un buffer para el almacenamiento temporal de los datos con una capacidad de 256 Kb. En un instante determinado inicia una operacin de E/S con una impresora a una velocidad de transferencia de 256 Kb/seg. Si el controlador de E/S recibe la informacin que debe enviar a la impresora a una velocidad de 1Mb/seg, cunto tiempo tardar en llenarse por primera vez el buffer suponiendo que inicialmente est vaco, y que recibe y enva informacin simultneamente de forma continua? 3.10 Si llamamos VP, VI y VD a las velocidades mximas de transferencia empleando E/S controlada por programa, E/S con interrupciones y E/S con DMA, respectivamente, se verifica la relacin: A) VP<VI>VD B) VP<VI<VD C) VP>VI>VD D) Ninguna de las anteriores
3.12 Un ordenador con 32 lneas de direcciones tiene una memoria de 32 Mb y utiliza entrada/salida aislada de memoria. Cul es el nmero mximo de perifricos que pueden conectarse a este ordenador, suponiendo que cada uno ocupa 16 direcciones? 3.13 En un ordenador cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de reloj en ser ejecutadas, aunque en 1 de ellos no requieren el acceso al bus. La frecuencia de reloj del computador es de 200 106 ciclos/seg. Si se tarda un ciclo en transmitir una palabra empleando DMA, indicar si las siguientes afirmaciones son ciertas: I. Empleando DMA por robo de ciclos se consigue la misma velocidad de transferencia que con DMA transparente. II. La velocidad de ejecucin del procesador se reduce ms con DMA por robo de ciclos que con DMA transparente. 3.14 Un computador dispone de un canal multiplexor que controla 3 unidades de disco y 5 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 5 106 bytes/seg., y las de cinta de 105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 50 nseg., explique razonadamente qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una transferencia de datos a travs de este canal multiplexor. 3.15 Indicar cul de las siguientes afirmaciones es verdadera: A) La principal desventaja de las interrupciones vectorizadas consiste en que la UCP ha de comprobar, uno por uno, el estado de todos los controladores de E/S de los dispositivos que tiene conectados. B) La UCP recibe el vector de interrupcin a travs del bus de datos o del bus de direcciones, indistintamente. C) Las interrupciones multinivel no permiten la identificacin de la fuente de interrupcin mediante un vector de interrupcin. D) Ninguna de las anteriores. 3.16 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 103 bytes/seg. Razonar cul es la velocidad mxima de transferencia agregada a este sistema.
Curso 2002-2003
3.17 Se dispone de una UCP con una nica lnea de peticin de interrupcin (INTR) y una nica lnea de aceptacin de interrupcin (INTA). Se desea disear para esta UCP un controlador de interrupciones como el mostrado en la figura, de manera que pueda atender interrupciones generadas por 4 dispositivos externos mediante las lneas de peticin de interrupcin INTR3, INTR2, INTR1 e INTR0. Cuando se reciben peticiones de interrupcin simultneas por ms de una lnea slo se reconoce la ms prioritaria (la mxima prioridad la tiene INTR3 y la mnima INTR0). Adems, cada una de estas lneas de interrupcin se ha de poder enmascarar de manera individual mediante un registro de mscara del controlador de interrupciones (el mecanismo de acceso a este registro por parte de la UCP no es relevante para este problema). Cuando la UCP activa su lnea de aceptacin INTA se debe informar al perifrico correspondiente, de manera individual, de que su peticin ha sido INTR0 INTR aceptada, mediante las lneas de aceptacin INTA3, INTA2, INTA1 e INTA0. INTR1 Controlador A) (0.75 puntos) Obtener la tabla de verdad de de UCP INTR2 interrupciones las 4 lneas INTAi (i=1..4) en funcin de las 4 lneas INTRi (i=1..4) e INTA, suponiendo INTR3 INTA que ninguna de las lneas de peticin est enmascarada. INTA0 B) (0.75 puntos) Disear un circuito lgico que INTA1 implemente el mecanismo de INTA2 enmascaramiento de las 4 lneas INTRi INTA3 (i=1..4). C) (0.75 puntos) Disear un circuito lgico que implemente el esquema de prioridades de las 4 lneas INTRi (i=1..4). D) (0.75 puntos) Disear el circuito que genere las seales INTAi (i=1..4). E) (1 punto) Disear el controlador de interrupciones solicitado utilizando para ello los resultados obtenidos en los apartados anteriores. 3.18 Sea una UCP con 4 lneas de interrupcin PI1, PI2, PI3 y PI4, numeradas en orden creciente de prioridad, es decir, PI1 tiene la prioridad mnima y PI4 la mxima. El sistema no permite anidamiento de interrupciones. Se supone que se producen 4 peticiones de interrupcin en este orden: PI3, PI1, PI4 y PI2. Teniendo en cuenta que las tres ltimas se producen simultneamente mientras se est ejecutando el programa de servicio de PI3, en qu orden se tratan las interrupciones? 3.19 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 103 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 100 nseg. Qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una transferencia de datos del canal multiplexor a memoria principal? 3.20 Sea una UCP con 5 lneas de interrupcin PI4, PI3, PI2, PI1 y PI0 enmascarables mediante 5 bits del registro de estado RE de la UCP, de forma que una peticin de interrupcin en PIj enmascara las lneas PIi con i<j. Se supone que se producen 4 peticiones de interrupcin en este orden: PI2, PI4, PI3 y PI1. Teniendo en cuenta que las interrupciones son anidables y que las tres ltimas se producen simultneamente y antes de finalizar la ejecucin del programa de servicio de PI2, en qu orden se tratan las interrupciones? 3.21 Un computador dispone de un canal selector que controla 3 unidades de disco y 5 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 5 106 bytes/seg., y las de cinta de 105 bytes/seg. Si para la transferencia de un byte del canal selector a memoria principal se utiliza el bus del sistema durante 50 nseg., qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una transferencia de datos a travs de este canal selector?.
Curso 2002-2003
3.22 En el mecanismo de E/S mostrado en la figura, indicar que afirmaciones son ciertas : I. Hay un nico espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. II. Se pueden utilizar instrucciones del tipo referencia a memoria para acceder a datos de E/S.
Bus de datos Bus de direcciones Leer Escribir Memoria Principal UCP Controlador E/S
Perif. 1
3.23 Sea una UCP con 4 lneas de interrupcin enmascarables PI1, PI2, PI3 y PI4, numeradas en orden creciente de prioridad, es decir, PI1 tiene la prioridad mnima y PI4 la mxima. El sistema permite anidamiento de interrupciones. Se supone que se producen 4 peticiones de interrupcin en este orden: PI3, PI1, PI4 y PI2. Teniendo en cuenta que las tres ltimas se producen simultneamente mientras se est ejecutando el programa de servicio de PI3, en qu orden se tratan las interrupciones? 3.24 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 103 bytes/seg. Calcular la velocidad mxima de transferencia agregada a este sistema. 3.25 Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 2105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 200 nseg. Qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una transferencia de datos del canal multiplexor a memoria principal? 3.26 Se desea disear un controlador de interrupciones con las siguientes caractersticas. Tiene un mdulo de gestin de prioridades de forma que cuando se reciban peticiones de interrupcin simultneas por ms de una lnea slo se reconozca la ms prioritaria. Tiene un mdulo de enmascaramiento que permite enmascarar de manera individual cualquiera de las lneas de peticin. En qu orden se colocaran estos dos mdulos? Por qu? 3.27 Un computador con 13 lneas de direcciones tiene una memoria de 3211 palabras y utiliza entrada/salida localizada en memoria. Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno de ellos utiliza 16 direcciones? 3.28 Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 2105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 200 nseg. Cul es la velocidad mxima de transferencia agregada a este sistema? 3.29 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia de DMA transparente. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de reloj en ser ejecutadas, pero en uno de ellos no hace uso del bus. El controlador de DMA tarda un ciclo de reloj en transmitir una palabra. Explicar razonadamente qu reduccin en la velocidad de la UCP supone la transferencia de DMA. 3.30 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia transparente. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de reloj en ser ejecutadas, aunque en 2 de ellos consecutivos no se requiere el acceso al bus. El controlador de DMA tarda 2 ciclos de reloj en transmitir una palabra. Si la frecuencia de reloj del computador es de 200106 ciclos/seg., cunto tiempo tardar el controlador de DMA en mover un bloque de datos compuesto por 100106 palabras?
...
Perif. n
Curso 2002-2003
3.31 En un sistema de E/S de un computador estn conectados 2 discos duros, 1 impresora y 1 CDROM. El sistema de E/S gestiona los dispositivos mediante interrupciones anidables y adems estos estn agrupados por prioridades con P1>P2>P3, siendo la prioridad de los discos P1, la del CDROM P2 y la de la impresora P3. Se sabe adems que las rutinas de interrupcin llevan asociados unos tiempos de servicio, siendo stos para los discos de 10 u.t. (unidades de tiempo), para el CDROM de 30 u.t. y para la impresora de 15 u.t. En un instante determinado (t=0 u.t.) se produce una peticin de interrupcin del primer disco duro, despus en el instante t=3 u.t. llega una peticin de interrupcin de la impresora, posteriormente se produce una interrupcin del CDROM en t = 5 u.t. y finalmente llega una peticin de interrupcin del segundo disco duro en t = 14 u.t. En qu instante de tiempo finaliza la ejecucin de la rutina de interrupcin del CDROM? 3.32 Indique si las siguientes afirmaciones son verdaderas. I. El controlador de DMA necesita tener el control del Bus para poder transmitir datos desde (o hacia) la memoria. II. La estrategia de transmisin por rfagas es la ms adecuada cuando se desea eliminar completamente la interferencia entre el controlador de DMA y la CPU. 3.33 Indique si las siguientes afirmaciones son verdaderas. I. En los computadores provistos de procesador de E/S (PE/S) las instrucciones se E/S se almacenan en la memoria principal y son ejecutadas por la CPU. II. El PE/S inicia la transferencia de E/S al dar la orden a la CPU para que ejecute el programa con instrucciones de E/S almacenado en memoria. 3.34 En el registro de estado del procesador Motorola 68000 hay tres bits (I2 I1 I0) usados para enmascarar las interrupciones de ciertos dispositivos. Cul es la configuracin de estos bits si se desean enmascarar las interrupciones de nivel 7? 3.35 Se dispone de una UCP con una nica lnea de peticin de interrupcin (INTR) y una nica lnea de aceptacin de interrupcin (INTA). Se desea disear para esta UCP un controlador de interrupciones como el mostrado en la Figura, de manera que pueda atender interrupciones generadas por 8 dispositivos externos mediante las lneas de peticin de interrupcin INTR7, INTR6, ..., INTR1 e INTR0. Cuando se reciben peticiones de interrupcin simultneas por ms de una lnea slo se reconoce la ms prioritaria (la mxima prioridad la tiene INTR7 y la mnima INTR0). Este controlador no permite enmascaramiento. Cuando la UCP activa su lnea de aceptacin INTA se debe informar al perifrico correspondiente, de manera individual, de que su peticin ha sido aceptada, mediante las lneas de aceptacin INTA7, INTA6, ..., INTA1 e INTA0. (1.00 puntos) Obtener la tabla de verdad de las 8 lneas INTAi (i=0..7) en funcin Controlador de las 8 lneas INTRi (i=0..7) e INTA. de UCP B) (1.00 puntos) Disear un circuito lgico interrupciones que implemente el esquema de INTR7 INTA prioridades de las 8 lneas INTRi (i=0..7). C) (0.75 puntos) Disear el controlador de INTA0 interrupciones solicitado utilizando para ello los resultados obtenidos en los apartados anteriores. INTA7 D) (1.25 puntos) Indique razonadamente cmo conectara 2 controladores de interrupciones de 8 entradas, como el diseado en el apartado anterior, para poder atender las peticiones de interrupcin de 15 dispositivos externos. (Se valorar positivamente la simplicidad del diseo.)
INTR0 INTR A)
Curso 2002-2003
3.36 En un sistema cuando la UCP dispone en exclusiva del bus las instrucciones emplean 3 ciclos de reloj en ser ejecutadas, aunque en 1 de ellos, el segundo, no requiere el acceso al bus. Si el controlador de DMA tarda dos ciclos de reloj consecutivos en transmitir una palabra, decir si las siguientes afirmaciones son ciertas: I. Se puede implementar la estrategia de DMA por rfagas. II. Se puede implementar la estrategia de DMA transparente. 3.37 Un computador dispone de un canal multiplexor que controla 5 unidades de disco y 5 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 105 bytes/seg. Si para la transferencia de un byte del canal multiplexor a memoria principal se utiliza el bus del sistema durante 50 nseg, Cual es la mxima velocidad de transferencia agregada a este sistema? 3.38 Un computador con 24 lneas de direcciones tiene una memoria de 220 palabras y utiliza entrada/salida aislada. Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno ocupa una sola direccin? 3.39 Indicar cul de las siguientes afirmaciones es falsa . A) Un PE/S de tipo canal selector controla mltiples dispositivos de alta velocidad. B) Un PE/S de tipo canal multiplexor puede controlar de forma simultnea operaciones de E/S con mltiples dispositivos. C) En E/S controlada por programa la CPU realiza, entre otras operaciones, la comprobacin del estado del perifrico. D) Alguna de las anteriores es falsa. 3.40 En un computador que usa E/S controlada por programa, el dispositivo de E/S tarda 6 mseg en tener disponible el dato solicitado. Suponiendo que el computador slo se dedica a E/S, que el bucle de espera se implementa con una nica instruccin, que la lectura de un dato y solicitud del siguiente dato por parte de la CPU lleva 10 instrucciones, y que cada instruccin de la CPU se ejecuta en 200 seg, qu tanto por ciento de su tiempo dedica la CPU al bucle de espera?.
Curso 2002-2003
UAL
s2
s1
s0
Para resolver el problema, seguir obligatoriamente los siguientes apartados: a) Disear un comparador de nmeros de 1 bit utilizando nicamente puertas lgicas. b) Utilizando comparadores como el diseado en el apartado A) y puertas lgicas, disear un comparador de nmeros de 3 bits. c) Utilizando nicamente sumadores binarios completos (SBC), disear un sumador binario de nmeros de 3 bits. d) Utilizando nicamente los mdulos diseados en B) (comparador de nmeros de 3 bits) y C) (sumador binario de nmeros de 3 bits) y los circuitos combinacionales que considere necesarios, disee la UAL pedida.
4.2 Disear el circuito de comparacin secuencial que se muestra en la figura. El circuito posee dos entradas de datos X e Y, una entrada de seal de reloj y una salida Z = {M, I, m}. Recibe los bits xi e yi de forma serie, comenzando por los ms significativos. El circuito genera sus salidas de acuerdo con la siguiente tabla M X>Y X=Y X<Y Para ello: a) Indique el diagrama de estados del circuito, especificando claramente cul es el significado de cada uno de los estados. b) Indique cmo codifica los estados y obtenga la tabla de transicin de estados correspondiente. c) Suponiendo que slo dispone de biestables tipo D para el diseo del circuito, calcular las funciones de excitacin de los biestables. d) Implemente el circuito con biestables tipo D y puertas lgicas NAND y NOT nicamente. 1 0 0 I 0 1 0 m 0 0 1
x0 y0 x n-2 x n-1 y n-2 y n-1 Comparador Secuencial M I m
Curso 2002-2003
4.3 Se desea realizar un circuito combinacional que multiplique dos nmeros binarios, uno de ellos de 3 4 bits (b 2b 1b 0) y el otro de 2 bits (a 1a0), utilizando para ello mdulos de memoria ROM de capacidad 2 palabras 4 bits/palabra (vase la Figura ).
Bus de direcciones 4
ROM 16x4
CS
Bus de datos 4
Seleccin de circuito
Mdulo de memoria ROM a utilizar a) Cuntos mdulos ROM son necesarios? Dibujar el esquema del circuito que se obtiene utilizando los mdulos ROM propuestos y, si considera necesario, otros mdulos combinacionales. b) Escribir el contenido de todos los mdulos de memoria ROM utilizados en el apartado anterior. Realizar una tabla independiente para cada uno de los mdulos y especificar claramente a qu mdulo corresponde. c) Calcular el % de aprovechamiento de la capacidad total de la memoria y proponer alguna forma de mejorar el resultado.
4.4 Sean dos nmeros de 12 bits representados en binario puro : X=000011000010, Y=000101110001. Calcular el resultado de su suma, expresado en BCD. 4.5 Explique cuntos mdulos de memoria ROM de 2n palabras n bits/palabra seran necesarios para disear un circuito combinacional que multiplique dos nmeros de n bits. 4.6 Se desea construir un multiplicador binario para dos nmeros de 8 bits, utilizando puertas lgicas tipo AND y sumadores binarios completos (SBC). Cuantas puertas AND que hay que utilizar ? 4.7 A partir de las expresiones de S (resultado de la suma) y C (acarreo de la suma) de un sumador binario completo SBC, desarrolle las expresiones del resultado de la suma (S1 y S0) y del acarreo (C1) de la suma de los nmeros binarios de dos bits x1x0 e y 1y 0. 4.8 Para multiplicar dos nmeros binarios sin signo de 3 y 4 bits, respectivamente, se podra utilizar ? I. Una memoria ROM de 27 palabras con 7 bits por palabra. II. 12 puertas AND y 8 sumadores binarios completos (SBC). 4.9 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario serie: I. El tiempo de clculo no depende del nmero de bits que hay que sumar. II. La complejidad del circuito depende del nmero de bits que hay que sumar. 4.10 Disear un multiplicador para dos nmeros X e Y de 3 y 6 bits respectivamente, representados en binario puro sin signo, utilizando nicamente 2 memorias ROM de 64 palabras 6 bits/palabra y 2 sumadores binarios paralelos de 3 bits cada uno. A) Disear razonadamente el multiplicador. B) Indicar razonadamente cul ser el contenido de cada una de las memorias ROM.
Curso 2002-2003
4.11 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario completo (SBC) de dos nmeros binarios de un bit, x e y, y con acarreo de entrada c-1: I. La funcin lgica del resultado de la suma es s = x y ( es la OR exclusiva). II. La funcin lgica del acarreo de salida es c = xy + (x y)c 1 ( es la OR exclusiva). 4.12 Se desea realizar una Unidad Aritmtico Lgica (UAL) como la mostrada en la figura, con dos entradas de datos X (x2x1x0) e Y (y1y0), una entrada de control C (c1c0) y una salida de datos S (s3s2s1s0). El funcionamiento de la UAL viene descrito por la siguiente tabla:
Operacin S =X+Y S =X-Y Si X > Y entonces S = 1 0 0 0 Si X = Y entonces S = 0 1 0 0 Si X < Y entonces S = 0 0 1 0 S = X (s3=0, s2s1s0=x2x1x0) 3 2 y1 y0
c1c0 = 11 : sacar X
x 2 x 1x 0 c1c0 2 s3
UAL
s2 s1 s0
Para resolver el problema, seguir obligatoriamente los siguientes apartados: a) Utilizando nicamente puertas lgicas, disear un Sumador Binario Completo (SBC). b) Disear un sumador/restador binario de nmeros de tres bits utilizando SBCs como el diseado en el apartado A) y las puertas lgicas necesarias. c) Disear un comparador de nmeros de tres bits utilizando nicamente un mdulo de memoria ROM. Cul es el tamao necesario para este mdulo de memoria ROM? Indique claramente el significado de cada una de sus entradas y cada una de sus salidas. Escriba el contenido de la memoria ROM en forma de tabla. d) Utilizando nicamente los mdulos diseados en los apartados anteriores y los mdulos combinacionales necesarios, disee la UAL pedida.
4.13 Se desea comparar dos nmeros binarios de 4 bits cada uno: X=x3x2x1x0 con Y=y3y 2y 1y 0. Utilizando comparadores de un bit se compara cada pareja de bits, xi con y i, obtenindose: Mi (xi>y i), Ii (xi=y i) y mi (xi<y i). Entonces: I. La funcin lgica M (X>Y) es M = M 3 + I3M 2 + I3I2M 1. II. La funcin lgica m (X<Y) es m = m0 + I0m1 + I0I1m2 + I0I1I2m3. Indicar la validez de las afirmaciones I y II.
4.14 Indicar si las siguientes afirmaciones son ciertas : En un semisumador binario (SSB) de dos nmeros binarios de un bit, x e y: I. Una posible funcin lgica del resultado de la suma es s = ( x + y) xy II. Una posible funcin lgica del acarreo de salida es c = x + y
Curso 2002-2003
4.15 Sean dos nmeros binarios de 12 bits representados en cdigo BCD: X =010110001001, Y = 001101000111. Calcular el resultado de su suma, representado en BCD. 4.16 Se desea construir un sumador binario con aceleracin de arrastres (SBAA) para 2 nmeros binarios X e Y de 3 bits cada uno. Para ello, el diseo se realizar siguiendo los siguientes pasos: a) La figura de la izquierda muestra un sumador binario completo modificado (SBC modificado) con dos entradas de datos xi e yi y un acarreo de entrada ci-1. Exprese la funcin lgica de sus cuatro salidas: si (suma), ci (acarreo de salida), g i (generacin de acarreo) y p i (propagacin de acarreo). A partir de estas funciones lgicas, y empleando nicamente puertas lgicas, disee este SBC modificado. b) La figura central muestra un circuito de aceleracin de arrastres (CAA) de 3 bits con tres entradas de generacin de acarreo g i, tres entradas de propagacin de acarreo p i y un acarreo de entrada c1. Exprese las funciones lgicas de los acarreos c2, c1 y c0 generados por este mdulo. A partir de estas funciones lgicas, y empleando nicamente puertas lgicas, disee este CAA. c) Utilizando nicamente 3 SBC modificados como los diseados en A) y el CAA diseado en B), construya razonadamente el sumador binario con aceleracin de arrastre de 3 bits (SBAA) solicitado en el enunciado y mostrado en la figura de la derecha.
xi ci yi c i-1 g2 p2 g1 p1 g0 p0 x2 y2 x1 y1 x0 y0
SBC modificado
CAA
c-1
c2
SBAA de 3 bits
c-1
si
gi
pi
c2
c1
c0
s2
s1
s0
4.17 En la suma de los nmeros binarios x= 100101010010011 e y=001010110101011. Calcular cuantas secuencias de arrastre se generan y la longitud mxima de las secuencias de arrastre. 4.18 Calcular la capacidad que deber poseer una memoria ROM, para implementar un sumador binario de 2 nmeros, uno de 8 bits y el otro de 4 bits.
4.19 Para multiplicar dos nmeros binarios sin signo de 2 y 3 bits, respectivamente, Se podra utilizar?: I. Una memoria ROM de 25 palabras con 4 bits por palabra. II. 6 puertas AND y 3 sumadores binarios completos (SBC)
4.20 Se desea construir un multiplicador binario que multiplique dos nmeros de 16 y 24 bits, respectivamente, utilizando memoria ROM. Indique si con los siguientes conjuntos de componentes sera posible realizarlo: I. Utilizando nicamente 4 ROM de 256 palabras x16 bits/palabra, un decodificador binario de 2 entradas y 4 salidas y 2 puertas AND de 2 entradas. II. Utilizando nicamente 6 ROM de 256 palabras x 16 bits/palabra.
4.21 Se desea construir un multiplicador binario que multiplique dos nmeros de 4 bits cada uno. Indique si con los siguientes conjuntos de componentes sera posible realizarlo: I. Utilizando nicamente 8 SBC, 1 SBAA de 4 bits y 16 puertas AND. II. Utilizando nicamente 8 SBC y 16 puertas OR-exclusiva.
Curso 2002-2003
4.22 Un circuito de aceleracin de arrastres (CAA) de 3 bits tiene las siguientes entradas: g 2g 1g 0 (generacin de acarreo), p2 p 1p 0 (propagacin de acarreo) y c -1 (acarreo de entrada); y las siguientes salidas: c2c1c0 (acarreos). En este circuito la expresin lgica g 2 + p 2 (g 1 + p 1 (g 0 + p 0c-1 ) ) se corresponde a: A)c 3 B) c2 C) c1 D) Ninguna de las anteriores
4.23 Se desea disear un circuito sumador/restador de dos nmeros de cuatro bits cada uno, x3x2x1x0 e y 3y 2y 1y 0 ,con una seal de control M adicional para indicar la operacin a realizar. Indicar si las siguientes afirmaciones son ciertas: I. Con una memoria ROM de 28 palabras con 5 bits por palabra se podra construir. II. Con una memoria ROM de 210 palabras con 9 bits por palabra se podra construir. 4.24 Sean dos nmeros binarios de 16 bits representados en cdigo BCD: X = 0011100101010100, =0011100100000110. Calcular el resultado de su suma, representado en BCD. Y
4.25 Se desea disear un circuito comparador de dos nmeros de tres bits y cuatro bits, respectivamente (x2x1x0 e y 3y 2y 1y 0 ), que tenga 2 salidas M (x>y) e I (x=y). Indicar si las siguientes afirmaciones son ciertas: I. Con una memoria ROM de 27 palabras con 5 bits por palabra se podra construir. II. Con una memoria ROM de 210 palabras con 5 bits por palabra se podra construir. 4.26 Se desea realizar una Unidad Aritmtico Lgica (UAL) como la mostrada en la Figura 1, con dos entradas de datos X (x1x0 ) e Y (y1 y0 ), una entrada de control C (c1c0 ) y una salida de datos R (r3r2r1r0). El funcionamiento de la UAL viene descrito por la Tabla 1. Seal de control c1c0 = 00 : suma c1c0 = 01 : producto c1c0 = 10 : comparacin Operacin R=X+Y R= XY Si X > Y entonces R = 1 0 0 0 Si X = Y entonces R = 0 1 0 0 Si X < Y entonces R = 0 0 1 0 R = X , Y (r3= x1 , r2= x 0 , r1= y1 , r0= y 0 )
c1c0 = 11 : sacar X , Y
Tabla 1: Tabla de funcionamiento de la UAL Para resolver el problema, seguir obligatoriamente los siguientes apartados:
a)
Disear un comparador de nmeros de dos bits utilizando nicamente comparadores de nmeros de un bit y puertas lgicas. Disear un sumador/multiplicador de dos nmeros de 2 bits utilizando nicamente un mdulo de memoria ROM. Cul es el tamao necesario para este mdulo de memoria ROM? Indique claramente el significado de cada una de sus entradas y cada una de sus salidas. Escriba todo el contenido de la memoria ROM en forma de tabla. Utilizando nicamente los mdulos diseados en los apartados anteriores, los mdulos combinacionales necesarios y puertas lgicas, disee la UAL pedida.
2 x 1x0 c1c0 2 r3 y1y0 2
b)
c)
UAL
r2 r1 r0
Curso 2002-2003
4.27 Dados dos nmeros binarios de 1 bit, x e y, la expresin lgica representa: ( x + y) xy . A) El bit de suma. C) El complemento a 1 de x e y . B) El bit de acarreo de su suma. D) Ninguno de las anteriores. 4.28 Cuntos SBC de 1 bit haran falta para construir un sumador binario serie capaz de sumar dos nmeros binarios de n bits? 4.29 Se desea disear un circuito con dos entradas X (x7 x6 x5 x4 x3 x2 x1 x0) e Y (y 7 y 6 y 5 y 4 y 3 y 2 y 1 y 0) y una salida R (r7 r6 r5 r4 r3 r2 r1 r0 ), todas de ocho bits, que sea capaz de: Comparar X e Y generando tres seales de salida r7 (1 si X>Y, 0 en caso contrario), r6 (1 si X=Y, 0 en caso contrario) y r5 (1 si X<Y, 0 en caso contrario). Realizar cuatro operaciones de desplazamiento sobre X empleando dos entradas adicionales llamadas ed (entrada por la derecha) y eI (entrada por la izquierda). El resultado de la operacin es el nmero R de ocho bits. Para ello se desea usar una seal de control C que seleccione el tipo de operacin (comparacin o desplazamiento) y dos seales ms d1 d0 para indicar el tipo de operacin de desplazamiento. Decir cul de estas afirmaciones es verdadera. I. Se puede realizar usando 2 mdulos de memoria ROM de 64 Kpalabras 8 bits y una puerta lgica NOT. II. Se puede realizar usando 1 mdulo de memoria ROM de 1 Mpalabras 8 bits. 4.30 Indique si las siguientes afirmaciones son verdaderas. I. Un SBC (Sumador Binario Completo) se puede realizar utilizando 2 SSB (Semisumador Binario) conectados en cascada y una puerta lgica OR. II. El circuito obtenido en la otra afirmacin es ms lento que si se sintetiza el SBC como un circuito combinacional de dos niveles de puertas AND-OR. 4.31 En un sumador binario de dos nmeros de dos bits, x1x0 e y1y 0 , respectivamente, donde S1S0 es el resultado de la suma, C1 es el acarreo de la suma y C-1 es el acarreo de entrada, las expresiones: E1= x1 y 1 (x0y 0 + (x0 y 0 )C-1) E2 = x1 y 1 + (x1 y 1)(x0y 0 + (x0 y 0 )C-1) corresponden a: A) S1 y C1 , respectivamente. C) S1 y S0 , respectivamente.
4.32 Indique si las siguientes afirmaciones son verdaderas: I. La complejidad de un sumador binario serie crece con el nmero de bits que hay que sumar. II. Utilizando un sumador binario serie, el tiempo de clculo crece linealmente con el nmero de bits que hay que sumar. 4.33 Decir cul es el retardo que se obtiene al calcular la suma de dos nmeros de 4 bits cada uno: I. Si el sumador se ha implementado usando lgica combinacional con 2 niveles y cada puerta tarda 5 s en generar el resultado, el retardo es de 20 s. II. Si el sumador se ha implementado usando 4 SBC's (Sumador Binario Completo) y cada uno de ellos tarda 10 s en generar sus salidas el retardo es de 40 s. 4.34 Se desea comparar el valor de dos nmeros binarios, uno de 5 bits: X= x 4x3x2x1x0 , y otro de 4 bits: Y=y3y 2 y 1y 0. Utilizando comparadores de un bit se compara cada pareja de bits, x i con y i , i=0...3, obtenindose: Mi (xi >y i ), Ii (xi =y i ) y mi (xi <y i ). Indicar si las siguientes afirmaciones son verdaderas o falsas: I. La funcin lgica M (X>Y) es M = x4 + M 3 + I3 M 2 + I3I2M 1 + I3I2I1M 0 . II. La funcin lgica I (X=Y) es I = x 4 I 0 I1 I 2 I 3 . 4.35 Cuntos SSB y puertas OR hacen falta para construir un sumador binario paralelo capaz de sumar nmeros de 8 bits?
Curso 2002-2003
4.36 Sean 2 nmeros binarios de 12 bits representados en cdigo BCD: X= 010100011001, Y= 001101000111. Calcular el resultado de la resta X-Y, expresado en cdigo BCD. 4.37 En los diseos indicados en los siguientes apartados, deben utilizarse multiplexores y elementos de memoria D. Explicar detalladamente cada paso. A) (1.5 puntos) Disear el registro de desplazamiento de 4 bits de la Figura 1. E0, E1, E2, E3 representan la entrada paralelo; S0, S1, S2, S3 la salida paralelo; C1, C2 las lneas de control; y CK la seal de reloj. El registro debe ser capaz de realizar los dos desplazamientos siguientes: LICS (Lgico-Izquierda-CerradoSimple) y LDCS ( Lgico-Derecha-Cerrado-Simple). Adems, el circuito debe permitir la carga en paralelo de la entrada y mantener la informacin almacenada sin modificar (no operacin: NOP). La codificacin de las entradas de control se muestra en la Tabla 1. B) (1 punto) Disear el mismo registro del apartado A) pero con la estructura entrada serie / salida serie que se muestra en la Figura 2. C) (1.5 puntos) Disear el mismo registro del apartado A) pero de modo que en lugar de realizar desplazamientos lgicos (LICS y LDCS) realice desplazamientos algebraicos (tambin llamados aritmticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (AlgebraicoDerecha-Cerrado - Simple).
Operacin C2 C1 NOP 0 0 LICS 0 1 LDCS 1 0 CARGA 1 1 Tabla 1 : Codificacin de las entradas de control
E3 E2 E1 E0 E
C2 Paralelo/Paralelo C1 CK
C2 Serie/Serie C1 CK
S3 S2 S1 S0
Figura 1
Figura 2
4.38 En la Tabla inferior se muestra la Tabla de Transicin de Estados de un circuito secuencial sncrono con 2 estados (S0 y S1) y dos entradas (x, y). Q es la variable de estado necesaria para la representacin de los 2 estados del circuito. El circuito se disea empleando un elemento de memoria tipo D. Estado Presente Q 0 1 Entrada xy 01 10 0 1 0 1
00 0 1
11 0 1
Indicar cul de las siguientes expresiones de entrada al elemento de memoria es correcta: A) D = Q x y + Q x y B) D = Q ( y + x ) + x y C) D = Q x y D) Ninguna de las anteriores
Curso 2002-2003
4.39 Sean dos nmeros de 12 bits representados en cdigo BCD: X=100100110101, Y=000101010001. Calcular el resto de la divisin entera X / Y, expresado en cdigo binario. 4.40 Si al nmero binario X = 01010001110 le aplicamos la siguiente secuencia de operaciones de desplazamiento: LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS, cul es el resultado de la operacin? 4.41 Indique cuntos mdulos de memoria ROM de 2n palabras 1 bit/palabra seran necesarios para disear un circuito combinacional que sume un nmero n bits y otro de 2n bits.
Curso 2002-2003
Ck ED
E c0 c1
A UAL R
B c0
Ck Contador Q c0 c1
E c0 S
Reg. Desp. EI Q
c1c0 00 01 10 11
c0 0 1
R A+B A-B
c1c0 00 01 10 11
c0 0 1
S E
5.4 Se desea disear con memoria ROMuna Unidad de Control con 200 estados, que genere 37 seales de control totalmente independientes, y que reciba 9 seales de condicin pero en cada estado va a ser consultada como mximo una de ellas. Utilizando en el diseo un multiplexor con seleccin por campo hara falta una memoria ROM con tamao de: A) 28 palabras 45 bits B) 29 palabras 45 bits C) 29 palabras 49 bits D) Ninguna de la anteriores
Curso 2002-2003
5.5 El siguiente algoritmo describe una determinada operacin de un sistema digital. A) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos y evitar en su diseo posibles conflictos elctricos entre ellos. B) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando un registro de desplazamiento. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin. 1: Declaracin: A[8], B[8], Cont[3]; Bus[8] 2: A Bus; 3: B Bus, Cont=0; 4: while A < 128 5: if Cont < 4 then 6: A A + Cont; 7: else 8: A B + A; 9: endif; 10: Cont = (Cont +1) mod 8; 11: endwhile; 12: Bus B; 13: Bus A; 15: Parar;
Ck ED
E c0 c1
c0 0 1
A UAL R
B c0
Ck
E c0 c1
c0 0 1
E c0 S
S E
Reg. Desp. EI
c1c0 00 01 10 11
Contador Q
Q
Q(t+1) Q(t) Des. Dcha. Des. Izq. Carga
R A+B A-B
c1c0 00 01 10 11
5.6 Se desea disear una Unidad de Control con 18 estados, que genere 30 seales de control totalmente independientes y reciba 4 seales de condicin, utilizando memoria ROM pero minimizando la capacidad necesaria de sta, ya que en cada estado se utiliza, como mximo, una nica condicin. Utilizando un multiplexor con seleccin por estado, para disear esta Unidad de Control sera necesario utilizar: A) Un registro de 5 bits, un MUX 32:1 y una ROM de 26 palabras 35 bits/palabra. B) Un registro de 18 bits, un MUX 8:1 y una ROM de 25 palabras 48 bits/palabra. C) Un registro de 5 bits, un MUX 8:1 y una ROM de 26 palabras 30 bits/palabra. D) Ninguna de las anteriores es cierta.
5.7 A la hora de disear una Unidad de Control con 32 estados, que genere 4 seales de control, reciba 2 seales de condicin y en un estado se puedan consultar las dos condiciones simultneamente, decir si las siguientes afirmaciones son ciertas: 5 A) Disendola con elementos de retardo sera necesario utilizar 5 biestables (2 =32). B) Disendola con memoria ROM hara falta un mdulo de 2 palabras 5 bits/palabra. C) Disendola con un contador hara falta un contador mdulo-5. D) Ninguna de las anteriores es cierta.
7
5.8 A la hora de disear una Unidad de Control con 64 estados, que genere 30 seales de control totalmente independientes, reciba 5 seales de condicin que pueden ser consultadas simultneamente en cualquier estado, decir si las siguientes afirmaciones son ciertas: 6 A) Disendola con elementos de retardo sera necesario utilizar 6 biestables (2 =64). B) Disendola con memoria ROM hara falta un mdulo de 2 palabras 30 bits/palabra. C) Disendola con un contador hara falta un contador mdulo-64. D) Ninguna de las anteriores es cierta.
11
Curso 2002-2003
5.9 El siguiente algoritmo describe una determinada operacin de un sistema digital. A) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos. B) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando cualquiera de los mtodos propuestos en la asignatura. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin. 1: Declaracin: A[8], B[8], Cont[3]; 2: A Bus; 3: B Bus; 4: for Cont = 0 to 7 do 5: if Cont es par then 6: A A + B; A A / 2 7: else 8: B B - A; B B * 2 9: endif; 10: endfor; 11: Bus A; 12: Bus B; 13: Parar;
Ck ED
E c0 c1
c0 0 1
A UAL R
R A+B A-B
B c0
Ck Contador Q
c1c0 00 01 10 11 Q(t+1) Q(t) 0 Q(t)+1 mod 8 Q(t)
E c0 c1 S
c0 0 1 S E
Reg. Desp. EI
c1c0 00 01 10 11
c0
Q
Q(t+1) Q(t) Des. Dcha. Des. Izq. Carga
5.10 El siguiente algoritmo describe una determinada operacin de un sistema digital, siendo C(0) el bit menos significativo del registro C. En el desplazamiento a la derecha se introduce un 0. Utilizando los mdulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una y un contador mdulo-8; adems de biestables tipo D, puertas lgicas y los mdulos combinacionales que considere necesarios: A) Disear la Unidad de Procesamiento que permita realizar este algoritmo. B) Disear la Unidad de Control, utilizando la tcnica de elementos de retardo, que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A)
A c0 c1 UAL R
B c0 c1 Contador Q
1: Declaracin de registros : A[8], B[8], C[8], Contador[3] 2: A Bus 3: B Bus 4: C Bus 5: for Contador = 0 to 7 do 6: begin 7: if C(0) C(1) then A A / B 8: else A A + B endif 9: Desplazar derecha (C) 10: end 11: Parar;
ED
Reg. despl. Q
c1c0 00 01 10 11
c1c0 00 01 10 00
c1c0 00 01 10 11
Curso 2002-2003
5.11 El siguiente algoritmo describe una determinada operacin de un sistema digital, siendo C(i) el bit i del registro C (C(0) es el bit menos significativo). a) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos dibujados abajo : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y un circuito triestado de conexin unidireccional con control de 8 bits, adems de puertas logicas y los mdulos combinacionales que considere necesarios. En el desplazamiento a la derecha se introduce un 0. b) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A), utilizando una memoria ROM y los elementos que considere necesarios. Debe indicar la estructura de la Unidad de Control y el contenido de la memoria ROM detallada y razonadamente . Se valorar la utilizacin de una ROM de tamao mnimo
1: Declaracin: A[8], B[8], C[8], Contador [3] ; 2: A Bus; 3: BBus; 4: CBus; 5: for Contador=0 to 3 do 6: begin 7: if C(3)=C(5) then A A*B 8: else A A-B endif; 9: Desplazar Derecha (C); 10: end 11: BusA ; 12: Parar ;
Ck ED
E c0 c1
c1c0 00 01 10 11
A UAL R
R A+B A-B A*B A/B
B c0
Ck Contador Q
c1c0 00 01 10 11
E c0 c1 S
c0 0 1 S E
Reg. Desp. EI
c1c0 00 01 10 11
c0
Q
Q(t+1) Q(t) Carga Des. Dcha Q(t)
5.12 Disee un circuito digital(unidad de procesamiento + unidad de control ) que realice el algoritmo que se muestra en el recuadro. Para ello siga los siguientes apartados : a) Disee razonadamente la unidad de 1 : Declaracin de registros: A[8], X[8] ; procesamiento, utilizando los recursos que 2 : Declaracin de buses : Bus-Entrada[8], Bus-Salida[8]; considere necesarios. 3 :Inicio: XBus-Entrada ; b) Describa todas las seales de control de 4: A Bus-Entrada ; la Unidad de Procesamiento diseada en 5 : Test: if X=255 then go to Sumar ; A). 6 : Restar: A A-1 ; c) Dibuje el diagrama de estados de una 7: go to Sacar ; Unidad de Control que realice el algoritmo 8 : Sumar : A A+1 ; propuesto. Describa en forma de tabla, las 9 : Sacar : Bus-Salida A ; microoperaciones y las seales de control 10 : Parar : go to Parar ; activadas en cada uno de los estados. d) Disee razonadamente la Unidad de Control, empleando cualquiera de las tcnicas de diseo estudiadas a lo largo del curso. Indique claramente todos los pasos seguidos.
Curso 2002-2003
5.13 Se desea disear con memoria ROM una Unidad de Control con 200 estados, que genere 37 seales de control totalmente independientes, y que reciba 9 seales de condicin pero en cada estado va a ser consultada como mximo una de ellas. Utilizando en el diseo un multiplexor con seleccin por campo Cuantas entradas de datos tendra el multiplexor utilizado ?
5.14 Se desea disear con una memoria ROM una unidad de control con 128 estados, que genere 244 seales de control totalmente independientes y que reciba 20 seales de condicin pero en cada estado van a ser consultadas como mximo una de ellas. La memoria ROM usada tiene un coste de 10 ptas/Kbit. Indicar si las siguientes afirmaciones son verdaderas o falsas: I) Si se utiliza un diseo con seleccin por estado el coste de la ROM es de 640 ptas. II) Si se utiliza un diseo con seleccin por campo el coste de la ROM es de 640 ptas.
5.15 El siguiente algoritmo describe una determinada operacin de un sistema digital. 1: Declaracin: A[8], B[8], Cont[3]; 2: A Bus; 3: B 0; 4: for Cont = 0 to 7 do 5: if A[0] es 1 then 6: B B + 1; 7: endif; 8: Despl.CerradoDcha(A); 9: endfor 10: Bus B; 11: Parar; A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos de la Figura : registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos. B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
Ck ED
E c0 c1
c0 0 1
A UAL R
R A+B A-B
B c0
Ck Contador Q
c1c0 00 01 10 11
E c0 c1 S
c0 0 1 S E
Reg. Desp. EI
c1c0 00 01 10 11
c0
Q
Q(t+1) Q(t) Des. Dcha Des. Izqa Carga
Curso 2002-2003
5.16 El siguiente algoritmo describe una determinada operacin de un sistema digital. 1: Declaracin: A[8], B[8], Cont[4]; Bus[8] 2: A Bus; 3: B Bus, Cont = 0; 4: while Cont 14 5: if A es multiplo de 4 then 6: A A - B, Cont = (Cont +2) mod 16; 7: else 8: B B + A; 9: endi f; 10: endwhil e; 11: Bus B; 12: Bus A; 13: Parar;
A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos de la Figura 2: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-16 bidireccional y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos y evitar en su diseo posibles conflictos elctricos entre ellos. B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando la tcnica de los elementos de retardo. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
Ck ED
E c0 c1
c0 0 1
A UAL R
R A+B A-B
B c0
Ck Contador Q
c1c0 00 01 10 11
E c0 c1 S
c0 0 1 S E
Reg. Desp. EI
c1c0 00 01 10 11
c0
Q
Q(t+1) Q(t) Des. Dcha Des. Izqa Carga
Curso 2002-2003
5.17 El siguiente algoritmo describe una determinada operacin de un sistema digital. 1: Declaracin: A[8], B[8], Cont[3]; 2: A Bus; 3: B 1; 4: for Cont = 0 to 3 do 5: if A 1 A 0 0 1 then 6: B 0; 7: endif; 8: Despl.CerradoDcha(A); 9: Despl.CerradoDcha(A); 10: endfor 11: Bus B; 12: Parar; A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando, si son necesarios, los mdulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos. B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin. Nota: A 0 es el bit menos significativo de A.
Ck ED
E c0 c1
c0 0 1
A UAL R
R A+B A-B
B c0
Ck Contador Q
c1c0 00 01 10 11
E c0 c1 S
c0 0 1 S E
Reg. Desp. EI
c1c0 00 01 10 11
c0
Q
Q(t+1) Q(t) Des. Dcha Des. Izqa Carga
Curso 2003-2004
RM
RI
RD
CP
UAL
R2
AC
Figura 6.1
6.2 En la Figura 6.2 se muestra una UCP (Unidad de Control + Unidad de Procesamiento) y en la Tabla 6.2 se da el significado de cada una de las seales de control. La seal de condicin s0 se activa cuando el contenido del registro acumulador (AC) sea igual a cero. Obtener las secuencias de las microoperaciones y las seales de control que hay que activar para que esta UCP ejecute las siguientes instrucciones, suponiendo que stas se encuentran ya almacenadas en el registro de instrucciones (RI) : a) Cargar acumulador con el contenido de una direccin de memoria. b) Almacenar acumulador en una direccin de memoria. c) Sumar al acumulador un operando con direccionamiento inmediato. d) Sumar al acumulador un operando con direccionamiento directo. e) Sumar al acumulador un operando con direccionamiento indirecto. f) AND con el acumulador de un operando en modo directo. g) Bifurcar, en modo de direccionamiento directo. h) Bifurcar si acumulador = 0, en modo de direccionamiento directo.
Curso 2003-2004
c10
c15
c7
Unidad de Control
c0 c13
Figura 6.2: Caminos de datos y puntos de control Seal de control c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 Microoperacin controlada Leer de la memoria Escribir en la memoria Transferir el contenido de RM a RD (RD(RM)) Transferir el contenido de CP a RM (RM(CP)) Transferir el contenido de RM a CP (CP(RM)) Transferir el contenido de CP a RD (RD(CP)) Incrementar en 1 el contenido del CP (CP(CP)+1) Transferir el contenido de RM a RI (RI(RM)) Transferir el contenido de RM a la entrada 1 de la UAL Transferir el contenido de RM a AC (AC(RM)) Transferir el contenido de AC a RM (RM(AC)) AC(AC)+ Entrada 1 AC(AC) AND Entrada 1 Complementar el contenido de AC (AC( AC ) ) Transferir el campo de direccin de RI a RD (RD(RI(direccin))) Transferir el campo de datos de RI a RM (RM(RI(datos))) Tabla 6.2: Seales de control de la CPU de la figura 6.2 6.3 Indique si las siguientes afirmaciones son ciertas : I. Para la fase de ejecucin del ciclo de instruccin existen tantas secuencias de microinstrucciones como cdigos de operacin existan en el repertorio de instrucciones. II. Cada fase del ciclo de instruccin se puede descomponer en una secuencia de operaciones elementales llamadas instrucciones mquina
6.4 En un procesador con instrucciones de cero direcciones (procesador con pila), qu secuencia de instrucciones calcula la expresin X = Y2(X+Z) ? A) Push[X]; Push[Z]; Add; Push[Y]; Push[Y]; Mult; Mult; Pop[X]; B) Push[Y]; Push[Y]; Push[X]; Push[Z]; Add; Mult;Mult; Pop[X]; C) Push[Y]; Push[Y]; Mult; Push[X]; Push[Z]; Add; Mult; Pop[X]; D) Todas las anteriores
Curso 2003-2004
6.5 El formato de instruccin de un procesador de una direccin tiene 6 bits para el cdigo de operacin y 10 para la direccin del operando. Suponiendo que una instruccin de bifurcacin, con direccionamiento relativo al contador de programa, almacenada en la posicin 530 (en decimal), origina un salto a la posicin 620 (en decimal). Si el cdigo de operacin de la instruccin de salto es 110011, cul es la codificacin en binario de dicha instruccin? 6.6 Considrese un procesador con instrucciones de cero direcciones (procesador con pila). Se tiene la siguiente secuencia de instrucciones: Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Mult; Pop M[A] Que expresin calcula?
Curso 2003-2004
Curso 2003-2004
7.9 Un computador microprogramado tiene un total de 132 seales de control. De ellas, un grupo de 16 son mutuamente excluyentes entre s y otro grupo de 30 son mutuamente excluyentes entre s. Indique si las siguientes afirmaciones son verdaderas: I. Utilizando formato vertical, el tamao de los subcampos codificados sera de 4 y 5 bits, respectivamente. II. Al existir seales mutuamente excluyentes no puede utilizarse el formato vertical de microinstrucciones.
7.10 La Unidad de Control microprogramada de un computador tiene la estructura que se muestra en la Figura 7.10. Se supone que la memoria de control tiene una longitud de palabra de 24 bits. La parte de control del formato de una microinstruccin est dividida en dos campos. Un campo de control de 13 bits que indica las microoperaciones que se realizan y un campo de seleccin de direccin que especifica un tipo de bifurcacin condicional, que es funcin de las seales de condicin que recibe como entrada la Unidad de Control. Son posibles 8 seales de condicin. a) Cuntos bits se necesitan en el campo de seleccin de direccin? b) Cuntos bits tiene el campo de direccin? c) Cul es el tamao de la memoria de control?
Registro de Instruccin (RI)
Lgica de transformacin
Seales de condicin
Lgica de bifurcacin
Seleccin de la direccin
Multiplexor +1 RDC
Memoria de Control
RMC
Control
Direccin
Seales de Control
Figura 7.10: Unidad de Control microprogramada con una direccin por microinstruccin 7.11 Con las mismas especificaciones del problema anterior cmo se puede realizar una ruptura incondicional de secuencia?. Cmo se puede evitar la bifurcacin?, es decir, describir una microinstruccin que no especifique ningn tipo de bifurcacin (condicional o incondicional).
7.12 A cada una de las instrucciones de un computador se le asignan 8 palabras en la memoria de control de una Unidad de Control microprogramada. El cdigo de operacin de las instrucciones tiene 5 bits y la memoria de control una capacidad de 1024 palabras. Sugerir una lgica de transformacin de RI en RDC.
Curso 2003-2004
7.13 Una UCP tiene 32 registros internos de 16 bits, una UAL con 16 funciones lgicas y 16 funciones aritmticas y un registro de desplazamiento con 8 operaciones posibles. La UAL recibe una entrada de un bit que indica si la operacin es aritmtica (0) o lgica (1), y cuatro bits adicionales que codifican la operacin a realizar, una de las 16 posibles. La operacin a realizar por el registro de desplazamiento se controla con una entrada de 3 bits. Todos estos elementos se conectan mediante un bus interno de la UCP, segn se muestra en la Figura 7.13. La UCP es capaz de direccionar un mximo de 64 Kb de memoria principal, tiene 8 seales de condicin diferentes (para las bifurcaciones condicionales), y dos modos de direccionamiento (inmediato y directo). Disear un formato de microinstruccin que especifique las diferentes microoperaciones.
R1 ... R31
3 RD R0
4 UAL A/L
Figura 7.13: Unidad de Procesamiento de la UCP del problema 7.13 7.14 En una Unidad de Control microprogramada con formato de microinstrucciones vertical, un subcampo que deba especificar 16 seales de control Qu anchura mnima debe tener? 7.15 Una Unidad de Control microprogramada con direccionamiento explcito con dos direcciones por microinstruccin, tiene una memoria de control con 35 bits de longitud de palabra. Si las microinstrucciones emplean 15 bits para los campos de control. Cul es el nmero mximo de palabras de la memoria de control de esta Unidad de Control microprogramada?
CONTENIDO
SOLUCION PROBLEMA 1.1........................................................................................................................................ 3 SOLUCION PROBLEMA 1.2........................................................................................................................................ 4 SOLUCION PROBLEMA 1.3........................................................................................................................................ 5 SOLUCION PROBLEMA 1.4........................................................................................................................................ 6 SOLUCION PROBLEMA 1.5........................................................................................................................................ 7 SOLUCION PROBLEMA 1.6........................................................................................................................................ 8 SOLUCION PROBLEMA 1.7........................................................................................................................................ 9 SOLUCION PROBLEMA 1.8........................................................................................................................................ 9 SOLUCION PROBLEMA 1.9...................................................................................................................................... 10 SOLUCION PROBLEMA 1.10.................................................................................................................................... 11
Afirmacin I - De acuerdo con los principios de un computador con una arquitectura de Von Neuman, en la memoria principal se pueden almacenar tanto datos como instrucciones. Que el contenido de una palabra de memoria sea considerado un dato o una instruccin depender del momento del ciclo de instruccin en que se realice el acceso a memoria. - Si el acceso a memoria se realiza en el ciclo de bsqueda de la instruccin el contenido de la posicin de memoria ser considerada una instruccin que se almacenar en el registro de instruccin (IR). - Si el acceso a memoria se realiza en las subfases del ciclo de ejecucin (bsqueda de operandos, almacenamiento de resultados, etc) de la instruccin el contenido de la posicin de memoria ser considerado un dato. - Luego la afirmacin I, es falsa, ya que si el contenido de una direccin de memoria empieza por 0, puede ser un dato o una instruccin mquina dependiendo de la fase de ejecucin de la instruccin en que nos encontremos.
Afirmacin II - Del enunciado se sabe que para que el contenido de una posicin de memoria sea considerado una instruccin su bit ms significativo debe ser un 0, puesto que en este caso comienza por 1 necesariamente debe ser un dato. Luego la afirmacin II es verdadera.
Supongamos que la memoria del computador consta de un nico mdulo, la velocidad mxima de almacenamiento sera:
v max =
1 ( pal / seg ) tc
De acuerdo con el enunciado del problema el tiempo de ciclo tc , se puede considerar como la suma de dos componentes : - tiempo de utilizacin del bus t bus=0.2t c - tiempo de almacenamiento interno del dato t alm =0.8t c
tbus tc
talm
Utilizando los 10 mdulos disponibles, y solapando al mximo los ciclos de escritura para intentar que en todo momento uno de los mdulos est accediendo al bus, se llega a la situacin representada por la siguiente figura
modulos
mod 1 mod 2 mod 3 mod 4 mod 5 mod 6 mod 7 mod 8 mod 9 mod10
10t bus
5 6 7 8 9 10 1 2 3 4
tiempo
El mdulo 1 inicia una operacin de escritura haciendo uso del bus en exclusiva durante tbus. A continuacin el mdulo 2 puede iniciar su operacin de escritura y as sucesivamente hasta llegar al mdulo 10, al que le sigue de nuevo el mdulo 1 repitindose el ciclo. La parte central de la Figura delimitada por dos lneas punteadas se repite de forma continua y, por tanto cada 10t bus empiezan o finalizan 10 operaciones de escritura. Encerradas en un circulo se enumeran estas 10 operaciones. La velocidad de almacenamiento definida como el nmero de palabras escritas en memoria por unidad de tiempo, es por tanto
v max =
v 10( pal ) 10 = = max = 5v max ( pal / seg ) 10t bus ( seg ) 100.2t c 0.2
n Longitud de palabra de 16 bits. n Instrucciones mquina ocupan 16 o 32 bits (1 o 2 palabras) n Codigo de operacin ocupa un campo de 7 bits.
Una de las caractersticas de la arquitectura de Von Neumann es precisamente el tener un nico espacio de memoria utilizado tanto para almacenar datos como para almacenar instrucciones. La afirmacin I es falsa. Cuando se habla de instrucciones mquina no tiene sentido hablar de seales de control, sino de cdigos de operacin, formato de instrucciones, etc. Sin embargo, si nos referimos a microinstrucciones, s tiene sentido. La afirmacin II es falsa.
t alm=75 nseg
tc=100 nseg
De forma inmediata se ve que si cada 100 nseg. el mdulo de memoria ocupa 25 nseg., es decir, 1/4 del tiempo, vamos a poder solapar, cmo mximo, 4 operaciones de escritura con 4 mdulos de memoria distintos aunque nuestro sistema disponga de 20 mdulos. Para aclarar este punto en la Figura se muestra solapamiento mximo que se puede conseguir utilizando todos los mdulos de memoria. En el instante de tiempo t nicamente estn realizando parte de una operacin de escritura 4 mdulos: mdulos 2, 3, 4 y 5.
Por tanto, en una operacin de escritura continua en este sistema de memoria, se pueden llegar a iniciar y acabar 4 operaciones de escritura cada 100 nseg. La velocidad resultante es:
v max =
Afirmacin II: Es falsa, ya que si solo una puerta triestado estuviera en estado de alta impedancia, el resto tendran sus salidas activas y se producira un error al cargar la lnea del bus con ms de una entrada. Lo correcto sera justamente lo contrario, es decir, todas las puertas menos una deben estar en estado de alta impedancia.
En este problema se sabe que el bus tiene conectado la memoria principal M p y cinco discos duros . De acuerdo con el razonamiento anterior, si se desea utilizar un bus con temporizacin sncrona todos los elementos conectados a l deben tener velocidades de transferencia parecidas. Por ello la velocidad de transferencia de los discos B debe ser lo ms cercana posible a la velocidad de transferencia v T de la MP que es el dispositivo ms rpido conectado. Es decir, se debe cumplir
B vT
Por lo tanto la resolucin de este problema se reduce a calcular la velocidad de transferencia de la M p, que viene dada, supuesto que es de acceso aleatorio, por la inversa del tiempo de ciclo:
vT =
Cada palabra tiene 32 bits por lo tanto, la velocidad de transferencia v T de la MP se puede expresar en (bits/seg):
En un esquema distribuido cada mdulo contiene la lgica de control suficiente para poder acceder al bus y todos ellos actan de forma cooperativa para compartir el recurso.
Solicitud del bus Ocupada 1 Lnea de arbitraje Ent a Sal Ent b Sal Ent c Sal Ent d Sal Ent e
Afirmacin I: Es FALSA, ya que en este tipo de arbitraje el dispositivo ms cercano a la lnea de arbitraje es aquel que tiene la mxima prioridad. Afirmacin II: Es FALSA, ya que mientras la lnea de bus ocupado est activada por un modulo, no puede ser utilizado el bus por ningn otro mdulo pese a poseer una mayor prioridad.
En un esquema distribuido cada mdulo contiene la lgica de control suficiente para poder acceder al bus y todos ellos actan de forma cooperativa para compartir el recurso.
Solicitud del bus Ocupada 1 Lnea de arbitraje Ent a Sal Ent b Sal Ent c Sal Ent d Sal Ent e
Afirmacin I: Es VERDADERA, ya que en este mtodo de arbitraje el dispositivo ms cercano a la lnea de arbitraje es aquel que tiene la mxima prioridad de uso del bus. Afirmacin II: Es VERDADERA, ya que en este mtodo de arbitraje cada mdulo contiene la lgica de control suficiente para poder acceder al bus y todos ellos actan de forma cooperativa para compartir el recurso.
10
Para la resolucin de este problema se va a utilizar la siguiente nomenclatura: M indica una direccin de memoria. [M] hace referencia al contenido de la direccin de memoria M Ac indica la direccin del acumulador. [Ac] hace referencia al contenido de la direccin de memoria M La equivalencia en hexadecimal de los cdigos de operacin es: 316 Ac [M] 516 616 M [Ac] Ac [Ac]+[M]
De acuerdo con el enunciado del problema la operacin que se desea realizar es sumar el contenido de la direccin de memoria 3A516 al contenido de la direccin de memoria 3B916 y almacenar el resultado en la direccin de memoria 3A516. Es decir, de forma esquemtica dicha operacin se puede representar de la siguiente forma: 3A516[3A516]+[3B916] Esta operacin se puede realizar mediante la siguiente secuencia de instrucciones: Opcin 1: 1) 33A516 que indica la operacin Ac [3A516] 2) 63B916 que indica la operacin Ac [Ac] + [3B916] 3) 53A516 que indica la operacin 3A516[Ac]
Opcin 2: 1) 33B916 que indica la operacin Ac [3B916] 2) 63A516 que indica la operacin Ac [Ac] + [3A516] 3) 53A516 que indica la operacin 3A516[Ac] Luego la respuesta correcta es la C.
11
CONTENIDO
SOLUCION PROBLEMA 2.1........................................................................................................................................ 3 SOLUCION PROBLEMA 2.2........................................................................................................................................ 4 SOLUCION PROBLEMA 2.3........................................................................................................................................ 5 SOLUCION PROBLEMA 2.4........................................................................................................................................ 7 SOLUCION PROBLEMA 2.5........................................................................................................................................ 8 SOLUCION PROBLEMA 2.6........................................................................................................................................ 9 SOLUCION PROBLEMA 2.7...................................................................................................................................... 10 SOLUCION PROBLEMA 2.8...................................................................................................................................... 12 SOLUCION PROBLEMA 2.9...................................................................................................................................... 13 SOLUCION PROBLEMA 2.10.................................................................................................................................... 14 SOLUCION PROBLEMA 2.11.................................................................................................................................... 15 SOLUCION PROBLEMA 2.12.................................................................................................................................... 16 SOLUCION PROBLEMA 2.13.................................................................................................................................... 17 SOLUCION PROBLEMA 2.14.................................................................................................................................... 18 SOLUCION PROBLEMA 2.15.................................................................................................................................... 19 SOLUCION PROBLEMA 2.16.................................................................................................................................... 20 SOLUCION PROBLEMA 2.17.................................................................................................................................... 21 SOLUCION PROBLEMA 2.18.................................................................................................................................... 22 SOLUCION PROBLEMA 2.19.................................................................................................................................... 23 SOLUCION PROBLEMA 2.20.................................................................................................................................... 23 SOLUCION PROBLEMA 2.21.................................................................................................................................... 24 SOLUCION PROBLEMA 2.22.................................................................................................................................... 25 SOLUCION PROBLEMA 2.23.................................................................................................................................... 26 SOLUCION PROBLEMA 2.24.................................................................................................................................... 26 SOLUCION PROBLEMA 2.25.................................................................................................................................... 27 SOLUCION PROBLEMA 2.26.................................................................................................................................... 29 SOLUCION PROBLEMA 2.27.................................................................................................................................... 30 SOLUCION PROBLEMA 2.28.................................................................................................................................... 34 SOLUCION PROBLEMA 2.29.................................................................................................................................... 37 SOLUCION PROBLEMA 2.30.................................................................................................................................... 38 SOLUCION PROBLEMA 2.31.................................................................................................................................... 39 SOLUCION PROBLEMA 2.32.................................................................................................................................... 42 SOLUCION PROBLEMA 2.33.................................................................................................................................... 43 SOLUCION PROBLEMA 2.34.................................................................................................................................... 45 SOLUCION PROBLEMA 2.35.................................................................................................................................... 47 SOLUCION PROBLEMA 2.36.................................................................................................................................... 48 SOLUCION PROBLEMA 2.37.................................................................................................................................... 49 SOLUCION PROBLEMA 2.38.................................................................................................................................... 50 SOLUCION PROBLEMA 2.39.................................................................................................................................... 51 SOLUCION PROBLEMA 2.40.................................................................................................................................... 52 SOLUCION PROBLEMA 2.41.................................................................................................................................... 53 SOLUCION PROBLEMA 2.42.................................................................................................................................... 54 SOLUCION PROBLEMA 2.43.................................................................................................................................... 55 SOLUCION PROBLEMA 2.44.................................................................................................................................... 56 SOLUCION PROBLEMA 2.45.................................................................................................................................... 56 SOLUCION PROBLEMA 2.46.................................................................................................................................... 57
Puesto que la M p tiene 220palabras se requieren direcciones de longitud n=log2CMp= log2220=20 bits.
C = q r = 16 conjuntos 4
El formato de una direccin de la M c que utiliza una funcin de correspondencia asociativa por conjuntos es: n=20 bits Etiqueta Conjunto de Mc Palabra
9 bits Luego la direccin que se nos plantea es: Etiqueta 101 000 011
log2 q= 4 bits
log2K= 7 bits
Conjunto de Mc 0010
Palabra 0110000
11 bits
log2 C= 4 bits
log2 K= 6 bits
Luego dada la direccin en binario del enunciado, 000 000 001 10 0100 110000
El bloque de la M c al que hace referencia es el nmero 4 10 (0100). La etiqueta que habra que buscar es 6 10 (000 000 001 10). b) La memoria cach utiliza funcin de correspondencia totalmente asociativa. Por lo tanto el formato de una direccin desde el punto de vista de la memoria cach es :
n=21 bits Etiqueta Palabra
15 bits
log2K= 6 bits
Luego dada la direccin en binario del enunciado, 000 000 001 100 100 110 000
La etiqueta que habra que buscar es 100 10 (000 000 001 100 100).
C=
25 =2 2 = 4 bloques. 23
a) La cach emplea correspondencia directa. La direccin desde el punto de vista de la M c tendra los siguientes campos:
n=9 bits Etiqueta Bloque de Mc log2 C= 2 bits Palabra
4 bits
log2 K= 3 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 0 0 0 4 4 2 2 0 N bloque (i) de la Mc al que hace referencia la direccin 0 0 0 0 0 2 2 0 Fallo o acierto
000 0 00 000 000 0 00 001 000 0 00 011 000 1 00 001 000 1 00 101 000 0 10 000 000 0 10 010 000 0 00 000
Fallo se carga j=0 en i=0 Acierto Acierto Fallo se carga j=4 en i=0 Acierto Fallo se carga j=2 en i=2 Acierto Fallo se carga j=0 en i=0
N Total de fallos=4 b) La cach emplea correspondencia asociativa por conjuntos, con r=2 bloques/conjunto. El algoritmo de reemplazamiento utilizado es FIFO (First-In Firt-Out). Se sustituye el bloque ms antiguo en cach. El nmero de conjuntos es q=4/2=2 La direccin desde el punto de vista de la M c tendra los siguientes campos :
n=9 bits Etiqueta Conjunto de Mc Palabra
5 bits
log2 q= 1 bits
log2 K= 3 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 0 N conjunto (i) de la Mc al que hace referencia la direccin 0 Fallo o acierto
000 00 0 000
0 0 4
0 0 0
4 2
0 0
2 0
0 0
Fallo se carga el bloque j=0 en el bloque 0 del conjunto i=0 Acierto Acierto Fallo se carga el bloque j=4 en el bloque 1 del conjunto i=0 Acierto Fallo se carga el bloque j=2 en el bloque 0 del conjunto i=0 Acierto Fallo se carga el bloque j=0 en el bloque 1 del conjunto i=0
N Total de fallos=4 c) La cach emplea correspondencia totalmente asociativa. El algoritmo de reemplazamiento utilizado es LRU (Least Recently Used). Se sustituye el bloque utilizado menos recientemente. La direccin desde el punto de vista de la M c tendra los siguientes campos :
n=9 bits
Etiqueta
Palabra
6 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 0 0 0 4 4 2 2 0 Fallo o Acierto
000 00 0 000 000 00 0 001 000 00 0 011 000 10 0 001 000 10 0 101 000 01 0 000 000 01 0 010 000 00 0 000 N Total de fallos = 3
Fallo se carga el bloque j=0 en el bloque i=0 acierto acierto Fallo se carga el bloque j=4 en el bloque i=1 acierto Fallo se carga el bloque j=2 en el bloque i=2 acierto acierto
t am = h t ga + (1 h) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que:
t ga = t ac = 10 nseg
Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en la M c . De acuerdo con el enunciado cuando se produce un fallo: 1) El sistema utiliza un tiempo tex extra. 2) La palabra es enviada desde la M p a la M c , para lo que empleara un tiempo tap. 3) Finalmente dicha palabra es leda por la CPU en la M C, por lo que emplear un tiempo t ac .
C=
C Mc 25 = 3 =2 2 = 4 bloques. K 2
M=
C Mp K
29 =2 6 = 64 bloques. 23
Adems el tamao de una direccin viene dado por n=log2CMp= log229=9 bits Puesto que la cach emplea correspondencia totalmente asociativa. La direccin desde el punto de vista de la M c tendra los siguientes campos: n=9 bits Etiqueta e=n-p= 6 bits Palabra p=log2 K= 3 bits
Obsrvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el nmero de bloque j de la M p, con lo que el tamao de la etiqueta tambin se poda haber calculado de la siguiente forma e=log2M= log226= 6 bits En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Recurdese que con la letra i se denota el nmero de bloque de memoria cach. Direcciones ledas 000000 000 000000 001 000000 011 000100 001 000100 101 000010 000 000010 010 000000 000 N Total de fallos=3 Etiqueta= N de bloque j de Mp 0 0 0 4 4 2 2 0 Fallo o acierto Fallo se carga j=0 en i=0 Acierto Acierto Fallo se carga j=4 en i=1 Acierto Fallo se carga j=2 en i=2 Acierto Acierto
1 0 0 0 0
0 1 1 1 0
0 0 0 1 0
1 1 1 0 1
1 1 0 1 1
1 0 0 1 1
1 1 1 1 1
1 0 0 0 0
? ? ? ? ? MARCA
El segundo paso es ir comparando los bits no tachados del registro ARGUMENTO, 0X0X11X0,con los bits no tachados de cada una de las filas de la matriz asociativa. Si son iguales se coloca un 1 y en caso contrario se coloca un 0, en el bit de la fila correspondiente del registro de MARCA. 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 ARGUMENTO MASCARA
1 0 0 0 0
0 1 1 1 0
0 0 0 1 0
1 1 1 0 1
1 1 0 1 1
1 0 0 1 1
1 1 1 1 1
1 0 0 0 0
? ? ? ? ? MARCA
Slo la fila 5 presenta el valor 0X0X11X0 igual que el registro ARGUMENTO. Luego el valor del registro de Marca resultante es: 0 0 0 0 1
C=
C Mc 2 6 = 4 =2 2 = 4 bloques. K 2
M=
C Mp K
Es decir, que los 8 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p Adems el tamao de una direccin viene dado por n=log2CMp= log2212= 12 bits Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c tendra los siguientes campos: n=12 bits Etiqueta Bloque n i de Mc Palabra
6 bits
log2 C= 2 bits
log2 K= 4 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 1 N bloque (i) de la Mc al que hace referencia la direccin 1 Fallo o acierto
000000 01 0000
17 4
1 0
000001 11 1000
Fallo se carga j=1 en i=1 que inicialmente esta vaco Fallo se carga j=17 en i=1 Fallo se carga j=4 en i=0 que inicialmente esta vaco Fallo se carga j=7 en i=3 que inicialmente esta vaco
10
Afirmacin I: Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 1 78 N bloque (i) de la Mc al que hace referencia la direccin 1 2 Fallo o acierto
Fallo se carga j=1 en i=1 Fallo se carga j=78 en i=2 que inicialmente esta vaco
La afirmacin es FALSA, ya que aunque efectivamente se producen dos fallos, slo hay que realizar un reemplazamiento de un bloque existente ya en cach.
Afirmacin II: Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 7 N bloque (i) de la Mc al que hace referencia la direccin 3 Fallo o acierto
000001 11 0001
Acierto
La afirmacin es FALSA, ya que se produce un acierto y en consecuencia obviamente no hay que realizar ningn reemplazamiento.
11
1 1 0 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
1 0 1 0 1
0 1 0 0 1 MARCA
A la vista de la matriz asociativa el argumento que genera este registro de marca debe de tener la siguiente estructura: 1XX1X0XX donde la X representa que el valor de ese bit no importa
3) En la lista de argumentos dados se tachan las mismas columnas que se han tachado en la memoria
asociativa. Como se muestra en la figura.
1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 Argumento 1 Argumento 2 Argumento 3 Argumento 4 Argumento 5
5) Comparando cada uno de los argumentos con 1XX1X0XX. Se puede ver que slo el argumento
3 y el 4 produciran el registro de marca dado.
1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 Argumento 1 Argumento 2 Argumento 3 Argumento 4 Argumento 5
12
C=
C Mc 27 = 4 =2 3 = 8 bloques. K 2
M=
C Mp K
Es decir, que los log2M=8 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p Adems el tamao de una direccin viene dado por n=log2CMp= log2212= 12 bits Puesto que la cach emplea correspondencia totalmente asociativa. La direccin desde el punto de vista de la M c tendra los siguientes campos: n=12 bits Etiqueta e=n -p= 8 bits Palabra p= log2 K= 4 bits
Obsrvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el nmero de bloque j de la M p, con lo que el tamao de la etiqueta tambin se poda haber calculado de la siguiente forma e=log2M= log228= 8 bits En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 1 17 4 7 Fallo o acierto
0000 0001 0000 0001 0001 0100 0000 0100 1000 0000 0111 1000
Fallo se carga j=1 en i=0 que inicialmente esta vaco Fallo se carga j=17 en i=1 que inicialmente esta vaco Fallo se carga j=4 en i=2 que inicialmente esta vaco Fallo se carga j=7 en i=3 que inicialmente esta vaco
13
Afirmacin II: Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 103 Fallo o acierto
Es FALSA, ya que aunque efectivamente se produce un Fallo, no hay que reemplazar bloque de la cach ya que los bloques i=4, 5, 6, 7 se encuentran vacos.
C=
C Mc 210 = 4 =2 6 = 64 bloques. K 2
q=
Puesto que la cach emplea correspondencia asociativa por conjuntos. La direccin desde el punto de vista de la M c tendra los siguientes campos: n=16 bits Etiqueta Conjunto de Mc Palabra
c=log 2 q c= 4 bits
p= log2 K p= 4 bits
Por lo tanto la direccin del enunciado se divide en tres campos: 0000 1101 El valor de sus campos en decimal es: Etiqueta = (0000 1101)2=1310 Conjunto de M c = (1100)2=1210 Palabra = (0011)2=310 13 12 3 1100 0011
14
MARCA
MARCA
MARCA
MARCA
15
MARCA
fA =
Luego sustituyendo, se obtiene:
1 tC
fA =
1 1 = 7 = 10 7 seg 1 9 10010 10
16
2n
Matriz de celdas 2n x m
SC m
Control m
R/W
Dato Dato de salida de entrada Anlisis de la Afirmacin II Si se utiliza organizacin 21/2D (ver libro de teora pags.65-68), se requieren dos decodificares, cada uno con n/2=4 entradas y 2n/2=24 salidas. Luego la afirmacin II es verdadera.
n/2
Decode X
2 n/2
Y
n/2
2 n/2
SC
e
Matriz de celdas 2n x m
Control m m
R/W
17
1 h =
Despejando el nmero total de Fallos:
NF NT
N F = (1 h )N T
Sustituyendo valores se obtiene:
N F = (1 0.75 )2 30 = 0.25 2 30 =
Luego el nmero total de fallos es NF = 2 28.
230 = 2 28 2 2
18
C=
C Mc 2 5 = 3 =2 2 = 4 bloques. K 2
M=
C Mp K
28 =25 = 32 bloques. 23
Es decir, que los log2M= 5 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p Adems el tamao de una direccin viene dado por n=log2CMp= log228= 8 bits Puesto que la cach emplea correspondencia totalmente asociativa. La direccin desde el punto de vista de la M c tendra los siguientes campos:
n=8 bits Etiqueta e=n-p= 5 bits Palabra p=log2 K= 3 bits
Obsrvese como en el caso de emplear correspondencia totalmente asociativa la etiqueta representa el nmero de bloque j de la M p, con lo que el tamao de la etiqueta tambin se poda haber calculado de la siguiente forma e=log2M= log225= 5 bits En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas 00000 000 00000 001 00000 011 00100 001 00100 101 00010 000 00010 010 00000 000 Nmero total de fallos: 3 Fallos N de bloque (j) de la Mp al que hace referencia la direccin. 0 0 0 4 4 2 2 0 Fallo o acierto Fallo se carga j=0 en i=0 que inicialmente esta vaco Acierto Acierto Fallo se carga j=4 en i=1 que inicialmente esta vaco Acierto Fallo se carga j=2 en i=2 que inicialmente esta vaco Acierto Acierto
19
1 1 ETIQUETA 1 0 0
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
1 0 0 0 0
? ? ? 0 0 MARCA
Por otro lado y de acuerdo al funcionamiento estndar de una memoria asociativa, en las palabras activas slo se consideran los bits del argumento cuya correspondiente bit de mscara est a 1. Por lo tanto las columnas 2, 3, 5 y 7 de la memoria asociativas pueden ser tachadas ya que no van a ser comparadas. 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 ARGUMENTO MASCARA
1 1 ETIQUETA 1 0 0
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
1 0 0 0 0
0 1 1 0 0 MARCA
El argumento a comparar de acuerdo con el registro de mscara es: 1xx1x0x0. Luego la fila 1 de la memoria asociativa al tener 1xx1x1x1 dar un 0 en su bit del registro de marca. Mientras que las filas 2 y 3 de la memoria asociativa al tener el mismo valor que el argumento 1xx1x0x0 darn un 1 en su bit del registro de marca. La marca correcta es la que corresponde a la respuesta C : 0 1 1 0 0
20
Afirmacin I: Es VERDADERA, al leer dicha direccin se produce un acierto ya que el bloque j=4 ya se encuentra cargado en la M C, en concreto en el bloque i=1. Afirmacin II: Es FALSA.
21
t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que :
t ga = t ca = 10 nseg
Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en M c . De acuerdo con el enunciado cuando se produce un fallo, el sistema entonces simultneamente mueve el dato a la CPU empleando un tiempo tap y mueve el bloque que consta de 8 palabras desde la M p a la M c , este movimiento emplea un tiempo de 8t ap. Luego tgf es:
22
t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que:
t ga = t ac = 10 nseg
Por otra parte tgf es el tiempo que tarda la CPU en gestionar un fallo en MC. De acuerdo con el enunciado cuando se produce un Fallo, el sistema primero mueve el bloque que consta de 8 palabras desde la M p a la M c , este movimiento emplea un tiempo de 8t ap, y a continuacin lee el dato desde la cach. Luego tgf es:
23
24
As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:
mdulo n 1
mdulo n 2
mdulo n 3
La solucin al problema (las direcciones base de cada mdulo) est dada por lo tanto en la tabla anterior.
25
Cuando se dispone de un sistema jerrquico de memoria se cumplen los siguientes principios: 1) El coste por palabra es mayor en los niveles superiores que en los inferiores. 2) La capacidad de memoria es menor en los niveles superiores que en los inferiores. 3) La velocidad de transferencia o frecuencia de acceso es mayor en los niveles superiores que en los inferiores.
Considerando estos tres principios, es posible verificar si las afirmaciones son ciertas o no. Afirmacin I : Es Falsa, puesto que la cach primaria est en un nivel superior a la cach secundaria, el coste por palabra es mayor en la cach primaria que en la secundaria. Afirmacin II: Es Verdadera, puesto que la cach primaria est en un nivel superior a la cach secundaria, la capacidad es menor en la cach primaria que en la secundaria.
26
A1 0 0 1 1
A0 0 1 0 1
Mdulo 0 As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:
Y Y 0 Y Y 4 Y Y 8 Y Y C
Mdulo 1 Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:
Y Y 1 Y Y 5 Y Y 9 Y Y D
27
Mdulo 2 Las direcciones que hacen referencia al tercer mdulo de memoria (mdulo n 2) son:
Y Y 2 Y Y 6 Y Y A Y Y E
Modulo 3 Y las direcciones que hacen referencia al cuarto mdulo de memoria (mdulo n 3) son:
Y Y 3 Y Y 7 Y Y B Y Y F
Conocidas las direcciones que hacen referencia a cada mdulo de memoria, examinemos las afirmaciones: Afirmacin I: Es FALSA, la direccin C89 se refiere al mdulo 1 y la direccin C8A se refiere al mdulo 2. Afirmacin II: Es VERDADERA, por que efectivamente C89 y C8A se refieren a diferentes mdulos, la direccin C89 se refiere al mdulo 1 y la direccin C8A se refiere al mdulo 2.
28
C=
C Mc 26 = 4 =22 = 4 bloques. K 2
M=
C Mp K
Es decir, que los log2M= 8 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p Adems el tamao de una direccin viene dado por n=log2CMp= log2212= 12 bits Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c tendra los siguientes campos:
n=12 bits Etiqueta Bloque n i de Mc b=log 2C b= 2 bits Palabra
p=log2 K p= 4 bits
En la siguiente tabla se recoge la secuencia de direcciones ledas y los resultados que se producen al ir a buscarlas a M c. Direcciones ledas 000000 01 0000 N de bloque (j) de la Mp 1 N de bloque (i) de la Mc 1 Fallo o acierto Fallo se carga j=1 en i=1 que inicialmente esta vaco Fallo se carga j=17 en i=1 Fallo se carga j=4 en i=0 que inicialmente esta vaco Fallo se carga j=7 en i=3 que inicialmente esta vaco
17 4
1 0
000001 11 1000
Afirmacin I: De acuerdo con la tabla construida anteriormente, la afirmacin es VERDADERA. Afirmacin II: De acuerdo con la tabla construida anteriormente, el bloque i=1 de la M c tiene almacenado el bloque j=17 de la M p, por lo tanto su etiqueta es 000100. Luego la afirmacin es VERDADERA.
29
a) Como se trata de una cach asociativa por conjuntos el formato de direccin de la memoria principal se divide en tres campos: Etiqueta, Conjunto y Palabra. Para direccionar las 32k palabras de la memoria principal hacen falta 15 bits (32k = 25 210 = 215 ). 15 bits es, por tanto, el ancho de una direccin de memoria principal. La memoria cach tendr (4 bloques/conjunto)(64 palabras/bloque) = 256 (28 ) palabras/conjunto. La cach tendr, por tanto, un total de q=(4096 palabras) / (256 palabras/conjunto) = 16 conjuntos. As, la cach tendr 26 palabras/bloque y 24 conjuntos. Por tanto, los campos Conjunto y Palabra tendrn 4 y 6 bits, respectivamente. Esto hace un total de 10 bits, de los 15 de una direccin de memoria principal. Los 5 bits restantes constituyen el campo Etiqueta. n= 15 bits Etiqueta Conjunto de Mc Palabra
5 bits
log 2 q= 4 bits
b) Si el computador no tiene memoria cach todas las palabras se han de leer de la memoria principal. El tiempo necesario para hacerlo ser el tiempo necesario para leer una palabra multiplicado por el numero total de palabras a las que se accede. Como las 4352 palabras se leen un total de 10 veces, el nmero total de palabras que se leen es 4352 10. Si el tiempo necesario para acceder a una palabra de memoria principal es 10t ac (frente a t ac que sera el tiempo necesario para acceder a una palabra de cach), el tiempo total es ta = 4352 10 10t ac = 435200t ac . c) Para resolver esta cuestin conviene distinguir entre la primera lectura del bucle y las nueve restantes: Primera lectura: Corresponde a la primera lectura secuencial de las palabras 0 a 4351. Se considera que la cach est inicialmente vaca. Dado que el tamao de la memoria cach es de 4096 palabras y el nmero de palabras a las que se accede es de 4352, es claro que la cach no puede almacenar simultneamente todas estas palabras. Como se ha visto en a), la cach est organizada en 16 conjuntos de 4 particiones por conjunto, lo que hace un total de 64 particiones. Cada una de estas particiones tiene 64 palabras, lo que hace el total de las 4096 palabras de la cach.
30
Las 4352 palabras consecutivas que hay que leer corresponden a (4352 palabras) / (64 palabras/particin) = 68 particiones, 4 ms que las 64 de la cach. Cada vez que se produzca un fallo se traer un bloque completo desde la memoria principal, es decir, 64 palabras. Se lee la palabra de direccin 0: Como la cach est vaca se producir un fallo y se traern las palabras 0 a 63 que, segn el formato de direccin de la memoria principal corresponden al conjunto 0. Como las cuatro particiones de este conjunto se encuentran vacas se puede suponer que se almacenarn en la particin 0 del conjunto 0. La lectura de las palabras 1 a 63 no origina fallos, pues estas palabras ya se encuentran en la cach. Se lee la palabra 64: Un nuevo fallo. Se traen las direcciones 64 a 127, que corresponden al conjunto 1. Se supone que se utiliza la particin 0 de este conjunto. As, los primeros 16 bloques de la memoria principal irn a la particin 0 de sus respectivos conjuntos. Los 16 bloques siguientes irn a la particin 1 de sus conjuntos. Se suceden las lecturas, hasta haber ledo los primeros 64 (0 a 63) bloques de la cach, es decir, las primeras 4096 (0-4095) palabras: en este momento la cach se llena, pero quedan todava 4 bloques por leer. Dado que la poltica de reemplazamiento es FIFO, se reemplazarn las particiones de cada conjunto que lleven ms tiempo en la cach. Es este caso, la particin 0 de cada conjunto. Se lee la palabra 4096: Produce un nuevo fallo. Corresponde nuevamente al conjunto 0, pero ste se encuentra completo. Hay que reemplazar la particin ms antigua de este conjunto, que como se acaba de ver es la 0. Las palabras 4160, 4224 y 4288 producirn tres fallos ms, y corresponden a los conjuntos 1, 2 y 3, respectivamente. En cada uno de estos conjuntos se reemplaza la particin ms antigua, que es la 0 en todos los casos. De este modo termina la primera lectura de las direcciones de memoria. El contenido de la cach queda como se muestra en la Tabla 1. Siguientes lecturas (2 a 10) : Al realizar el segundo ciclo de lecturas a cada direccin le corresponde el mismo conjunto que en la primera lectura, segn el mecanismo de la cach asociativa por conjuntos. El que una palabra produzca un fallo o no depender de si todava se encuentra en la cach. En la Tabla 1 se observa que los conjuntos 4 a 15 no van a producir fallos, pues su contenido no ha variado. Pero s va a haber problemas con los conjuntos 0 a 3: La direccin 0, que corresponda al bloque 0, ya no est en la cach, pues fue sustitudo por el bloque 64. La particin ms antigua en esta ocasin es la 1, que contena el bloque 16 de memoria principal. Luego habr que escribir en la particin 1 del conjunto 0, por lo que el bloque 16 es reemplazado por el 0. Cuando ms adelante se lea el bloque 16 ste ya no estar (ha sido reemplazado por el 0) y habr que hacer un reemplazamiento en la particin ms antigua de este conjunto, que ahora es la 2: el bloque 32 es reemplazado por el 16. Anlogamente, el bloque 32 reemplazar al 48, el 48 al 64 y el 64 al 0. En la segunda lectura se producen 5 fallos en el conjunto 0. Anlogamente, en los conjuntos 1, 2 y 3 se producirn otros 5 fallos en cada una de ellos durante la segunda lectura. Al finalizar este segundo ciclo de lecturas el contenido de la cach quedar como se muestra en la Tabla 2. La situacin en el tercer ciclo es anloga a lo sucedido en el segundo: se producirn 5 fallos en cuatro grupos, es decir, 20 fallos en total. Lo mismo sucede en los ciclos siguientes.
31
Conjunto i de Mc
0
15 15 31 47 63
Conjunto i de Mc
0
15
Cmputo del nmero total de fallos: En el primer ciclo de lecturas se produca un fallo en cada uno de los 68 bloques a leer: 68 fallos en total. En los 9 ciclos siguientes, 20 fallos en cada uno de ellos. Luego
N F = 68 + 9 20 = 248 fallos
D) En caso de fallo se especifica que las acciones que tienen lugar son :
32
1. Se mueve el bloque completo de M p a M c . 2. La CPU lee el dato desde la cach. Es decir, que el tiempo de gestin de fallos tgf es:
t gf = K t ap + t ac = K 10 t ac + t ac = (10 K + 1)t ac
Por otro lado el tiempo de gestin del acierto, es el tiempo de acceso a la memoria cach tga=t ac Luego el tiempo total que se emplea es:
t a = N A t ac + N F (10 K + 1)t ac
Como NA=NT - NF, entonces:
t a = ( NT N F ) t ac + N F (10 K + 1)t ac = (N T + N F 10 K ) t ac
Sustituyendo valores se obtiene
33
a) La anchura de una direccin de memoria es n=log2CMp=log2216= 16 bits. Por otro lado la anchura del campo PALABRA que especifica la posicin de una palabra en el interior de un bloque viene dada p=log2K=log2128= 7 bits. La anchura del campo BLOQUE que especifica el i bloque de M c donde se busca la palabra viene dado por: b=log2(CMc /K)=log2(210/27)=log2(23)=3 bits. Por ultimo la anchura del campo ETIQUETA, es e=n-(b+p)=16-(7+3)= 6 bits. Es decir, desde el punto de vista de la memoria cach, una direccin de memoria principal se considera compuesta de la forma indicada en la figura. n=16 bits Etiqueta Bloque de Mc Palabra
e= 6 bits
b=3 bits
p = 7 bits
b) En este apartado se pide calcular el tiempo que tardara en ejecutarse el programa si el computador no tuviera cach. Ya que no se indica el tiempo que tardan en ejecutarse las instrucciones, se ha de suponer que es despreciable frente al tiempo de acceso a memoria (la memoria es muy lenta comparada con la velocidad de la UCP). Por tanto, el tiempo de ejecucin total ser el tiempo de acceso a memoria, que ser el nmero total de accesos a memoria multiplicado por el tiempo que lleva cada acceso. En este caso, el tiempo de acceso a tener en cuenta es el de la memoria principal (10t), ya que se supone que no hay cach. Para saber cuntas veces se accede a la memoria principal basta con contar cuntas instrucciones hay en cada seccin del programa, y tener en cuenta cuntas veces se ejecuta cada una de estas secciones, tal como se muestra en la Tabla 1.
Seccin N Instrucciones Veces que se ejecuta Total instrucciones 17-22 6 1 6 23-164 142 10 1420 165-239 75 20 x 10 15000 240-1200 961 10 9610 1201-1500 300 1 300 N Total de accesos a memoria principal 26336 Tabla 1. Clculo del nmero total de accesos a memoria principal
El tiempo total de ejecucin del programa es por tanto: ta = NTt ap= 26.336 10t = 263.360t.
34
c) Dado que el computador utiliza una cach con correspondencia directa, a cada palabra de la memoria principal le corresponde un nico bloque de la memoria cach, segn el formato de los campos que se dedujo en el apartado a). En la Tabla 2 se muestra la correspondencia entre las distintas direcciones de la memoria principal y sus campos etiqueta, particin y palabra. Estos campos se obtienen haciendo grupos de 6, 3 y 7 bits, respectivamente, con la representacin en binario puro de la direccin. La representacin binaria se ha obtenido, a su vez, fcilmente a partir de la representacin hexadecimal.
Direccin
Etiqueta (6 bits)
Palabra (7 bits)
000000 000000 000000 000000 000000 000000 000000 000001 000001 000001
000 000 000 001 001 001 001 001 001 001
0010001 0010110 0010111 0100100 0100101 1101111 1110000 0110000 0110001 1011100
A partir de la Tabla 2 es fcil calcular el nmero de fallos que se producen en el acceso a la memoria cach. Para ello, basta con ir ejecutando el programa, tal como se muestra en la figura del enunciadp, con lpiz y papel y llevar en cuenta cmo se va ocupando la memoria cach. 1) Direcciones 17-22: Estas direcciones corresponden, segn la Tabla 2, a la particin 000 (etiqueta 000000). La cach inicialmente est vaca, por lo que se produce el primer fallo. Esto hace que se traiga la particin entera desde la memoria principal. 2) Primera ejecucin del bucle exterior: 2.1) Direcciones 23-164: La direccin 23 corresponde a la particin 000 (etiqueta 000000); la 164, a la particin 001 (etiqueta 000000). La particin 000 ya se encontraba en la cach. En la direccin 128 se produjo el segundo fallo, por lo que se trajo completa la particin 001 (etiqueta 000000) desde la memoria principal. 2.2) Direcciones 165-239: Estas direcciones corresponden a la particin 001 (etiqueta 000000), que ya se encuentra en la cach. El bucle interior se ejecuta 20 veces sin que se produzca ningn fallo. 2.3) Direcciones 240-1200: Estas direcciones abarcan desde la particin 001 (etiqueta 000000) hasta la particin 001 (etiqueta 000001).Se han producido 8 fallos, que corresponden desde la particin 010 (etiqueta 000000) hasta la particin 111. (etiqueta 000000), y las particiones 000 y 001 (etiqueta 000001). Obsrvese que estas dos ltimas particiones han reemplazado a las particiones 000 y 001 (etiqueta 000000). Con esto finaliza la primera ejecucin del bucle exterior. Se ha producido un total de 10 fallos (1 + 1 + 8). El estado de la cach ha quedado como se muestra en la Tabla 3.
35
Bloque i de Mc
Etiqueta
0 1 2 3 4 5 6 7
Tabla 3. Estado de la memoria cach al finalizar la primera ejecucin del bucle exterior
3) Segunda a dcima ejecucin del bucle exterior: Como se ha visto anteriormente, el bucle exterior comienza referenciando las particiones 000 y 001 correspondientes a la etiqueta 000000. Estas particiones han sido reemplazadas por las correspondientes a la etiqueta 000001. Se producen por tanto dos fallos y se reemplazan las particiones. El bucle sigue referenciando las particiones 010 a 111 (etiqueta 000000), que como se comprueba en la Tabla 3 se encuentran en la cach. Estas particiones no producen fallos. El bucle termina referenciando las particiones 000 y 001 con etiqueta 000001, pero stas han sido sustitudas al comienzo del bucle por las correspondientes a la etiqueta 000000. Se producen, por tanto, otros dos fallos, y se reemplazan las particiones. La segunda ejecucin del bucle ha terminado con cuatro fallos y el contenido de la cach es el mismo que haba al comenzar, es decir, el mostrado en la Tabla 3. Cada subsiguiente ejecucin del bloque exterior producir otros cuatro fallos y dejar la cach con el mismo contenido que haba al comenzar. En total, en las nueve ejecuciones se producirn 94 = 36 fallos, y el contenido de la cach al finalizar ser el mostrado en la Tabla 3. 4) Direcciones 1201-1500: La salida del bucle exterior hace que se referencien las particiones 1, 2 y 3 correspondientes a la etiqueta 000001. La 1 ya se encuentra cargada en la cach, pero la 2 y la 3 no; por tanto se producen otros 2 fallos. Cmputo del nmero total de fallos: El nmero total de fallos es NF= 10 + 36 + 2 = 48 fallos .
d) Para calcular el tiempo total que se tarda en ejecutar el programa con la memoria cach hay que contabilizar el nmero total de accesos NT realizan a la memoria cach, que es igual al nmero total de instrucciones que se ejecutan en el programa: 26.336. Es decir NT=26336 En caso de fallo se especifica que las acciones que tienen lugar son : 1. Se mueve el bloque completo de M p a M c . 2. La CPU lee el dato desde la cach. Es decir, que el tiempo de gestin de fallos tgf es:
t gf = K t ap + t ac = K 10 + = (10 K + 1)
Por otro lado el tiempo de gestin del acierto, es el tiempo de acceso a la memoria cach tga=t ac =
36
t a = N A + N F (10 K + 1)
Como NA=NT - NF, entonces:
t a = ( NT N F ) + N F (10 K + 1) = ( NT + N F 10 K )
Sustituyendo valores se obtiene
h=
Obsrvese que a pesar de la alta tasa de acierto y de que la cach es 10 veces ms rpida que la memoria principal la velocidad slo mejora en un factor 3, debido a la carga que supone mover bloques completos desde la memoria principal a la memoria cach.
Tasa de fallos =
N F 217 1 1 = 20 = 3 = = 0.125 NT 2 2 8
37
A1 0 1
Mdulo 0 As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:
Y Y 0 Y Y 1 Y Y 4 Y Y 5
Mdulo 1
Y Y 8 Y Y 9 Y Y C Y Y D
Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:
Y Y 2 Y Y 3 Y Y 6 Y Y 7
De acuerdo con el anlisis realizado las afirmaciones son: A) FALSA Ya que C89 se encuentra en el mdulo 0 y C8A en el mdulo 1.
Y Y A Y Y B Y Y E Y Y F
B) VERDADERA. Ya que C89 se encuentra en el mdulo 0 y C8A en el mdulo 1. C) FALSA. La lnea de seleccin es A 1. D) FALSA. La afirmacin B es verdadera.
38
A) Cuando se utiliza correspondencia totalmente asociativa la direccin de memoria principal se descompone en dos campos: etiqueta y palabra. La anchura de una direccin de memoria principal es n =log2CMp=log2216=16 bits. Por otro lado los bits necesarios para codificar la posicin de una palabra en un bloque es p =log2K=log228=8 bits. Por lo tanto los bits del campo etiqueta son e=n p =16-8=8 bits. Es decir el formato de una direccin queda de la siguiente forma: n=16 bits Etiqueta Palabra
e=8 bits
p= 8 bits
B) Puesto que se supone que no hay memoria cach, el nmero total de accesos que realiza la CPU a la memoria principal en la ejecucin 5 veces de ese bucle de direcciones es NT= 52301=11505 accesos. El tiempo de acceso medio a la memoria principal es tap=7t ac . Luego el tiempo que se tardara en realizar estos N T accesos es:
M=
En cada bloque hay K= 256 palabras, por lo tanto las 2301 palabras a las que hace referencia la CPU, caben en 2301/256 9 bloques de memoria principal. Puesto que la M c tiene slo ocho en la ejecucin de cada ciclo habr que realizar un nico reemplazamiento. En la siguiente Tabla se muestra los rangos de direcciones de M p correspondientes a los 9 primeros bloques, los que intervienen en el problema, con las etiquetas que tendran al ser cargados en memoria cach. En el apartado A) se vio que los 8 bits ms significativos se la direccin se corresponden con el
39
campo etiqueta, esto equivale a decir que los 2 dgitos ms significativos en hexadecimal son la etiqueta. Rango de direcciones (Decimal) Rango de direcciones (Hexadecimal) Etiqueta en la Mc
0 - 255 256 - 511 512 - 767 768 - 1023 1024 - 1279 1280 - 1535 1536 - 1791 1792 - 2027 2048 - 2303
00 01 02 03 04 05 06 07 08
A la hora de explicar que ocurre cuando se acceden a las direcciones del enunciado del problema, se va a distinguir el primer ciclo del resto de ciclos. Primera ejecucin del ciclo La cach se va llenando con bloques de memoria principal que son copiados cuando se produce la primera referencia a una direccin del bloque. Por ejemplo, cuando se referencia la direccin 1536, se mueve de memoria principal a memoria cach el bloque completo que contiene las direcciones de la 1536 a la 1791. Al utilizar la tcnica de correspondencia totalmente asociativa, el bloque se mueve a cualquiera de las particiones vacas de la cach, en el caso del ejemplo anterior a la particin 6. El problema se plantea cuando la memoria ya est llena y se referencia la direccin 2048, perteneciente al bloque con etiqueta 08. La tcnica de reemplazamiento propuesta en el problema es: reemplazar el bloque que se haya utilizado ms recientemente. En este caso, es el bloque almacenado en la particin 7 y con etiqueta 07. Por todo lo visto, al finalizar el primer ciclo, en la cach se encuentran almacenadas todas las direcciones propuestas excepto las pertenecientes al bloque con etiqueta 07. Segunda ejecucin del ciclo En esta segunda ejecucin del ciclo se producen aciertos hasta referenciar la primera direccin del bloque 07, sustituido en el ciclo anterior. Utilizando la tcnica de reemplazamiento propuesta, el ltimo bloque referenciado es el 06, que es sustituido por el 07. Posteriormente las direcciones del bloque 08 dan aciertos. Resto de ciclos Se producen situaciones similares a la del segundo ciclo, con una sustitucin en cada uno de ellos.
Luego la tabla que nos piden es la siguiente: Bloque de Mc i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 1 vez 2 vez 3 vez 4 vez 5 vez
00 01 02 03 04 05 06 08
00 01 02 03 04 05 07 08
00 01 02 03 04 06 07 08
00 01 02 03 05 06 07 08
00 01 02 04 05 06 07 08
40
C) Para contestar este apartado se va a utilizar la Tabla creada en el apartado anterior. All se ha visto que la ejecucin del ciclo la primera vez sigue un patrn distinto a la ejecucin del ciclo las 4 veces siguientes. Estudiando por separado ambos casos: Primera ejecucin del ciclo. Se producen un fallo en cada uno de los nueve bloques de los consta el programa, producindose una sustitucin del bloque 07 cuando se accede al bloque 08, tal y como se ha mencionado en el apartado anterior. Segunda ejecucin del ciclo y sucesivas . Se produce un nico fallo en cada ciclo. El nmero total de fallos ser: NF= 9 + 4 = 13 fallos .
D) En caso de fallo se especifica que las acciones que tienen lugar son : 1. Se mueve el bloque completo de M p a M c . 2. La CPU lee el dato desde la cach. Es decir, que el tiempo de gestin de fallos tgf es:
t gf = K t ap + t ac = K 7 t ac + t ac = (7 K + 1)t ac
Por otro lado el tiempo de gestin del acierto, es el tiempo de acceso a la memoria cach tga=t ac Luego el tiempo total que se emplea es:
t a = N A t ac + N F (7 K + 1) t ac
Como NA=NT - NF, entonces:
t a = ( N T N F ) t ac + N F (7 K + 1)t ac = (N T + N F 7 K ) t ac
Sustituyendo valores se obtiene
41
Tasa de fallos = (1 h) =
Despejando la tasa de aciertos h:
NF NT
h = 1
42
Etiqueta
Palabra
e bits
c bits
p bits
Del dato de la capacidad de la memoria principal obtenemos el nmero de bits n que tienen las direcciones. Puesto que 8192 Kpalabras= 81024 Kpalabras = 23 210 210 palabras = 223 palabras = 2n. Con lo que n =23 bits. El nmero de bits que codifican a las palabras que tiene un bloque es p =log2K=log264= 6 bits Por otro lado, el nmero de bloques C en M C, es:
C=
C 2 5 25 q= = = 2 = 23 conjuntos r 4 2
Con lo que el nmero de bits que codifican a los conjuntos de la memoria cach es c=log2q=log223= 3 bits. Por lo tanto el nmero de bits que definen la etiqueta e=n -(c+p )=23-(3+6)=14 bits y el formato de direccin es el siguiente:
43
23 bits Conjunto de Mc
Etiqueta
Palabra
3 bits
6 bits
h=
Del enunciado se puede calcular el nmero total de accesos NT. Lee secuencialmente las direcciones 128,129,130,....., 143 (143-128)+1= 16 accesos Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133 203= 60 accesos Finalmente lee secuencialmente las direcciones 134,135,....,168 (168-134)+1=35 accesos Por lo tanto NT= 16+60+35= 111 accesos Queda por calcular el nmero de aciertos. Para su clculo hay que tener en cuenta, que cuando se carga en memoria principal Prog2, en la memoria cach no hay ninguna copia del cdigo de este nuevo programa por lo que primera referencia a su cdigo va a producir necesariamente un fallo en la memoria cach. En la funcin de correspondencia asociativa por conjuntos, cada bloque j de palabras de memoria principal tiene asignado un conjunto i de memoria cach mediante la relacin:
i = j mod ulo q
De acuerdo a esta relacin y sabido que el nmero de palabras que tiene un bloque de memoria principal es K= 64. Es posible conocer el conjunto de M c asociado a cada bloque de la M p. El bloque j=0 de M p (direcciones 0 a 63) Conjunto i=0 de M C El bloque j=1 de M p (direcciones 64 a 127) Conjunto i=1 de M C El bloque j=2 de M p (direcciones 128 a 191) Conjunto i=2 de M C
El programa Prog2 utiliza las direcciones (128 a 168) que se encuentran exclusivamente dentro del bloque j=2 de M p, por lo tanto slo se producir 1 Fallo, cuando se lee la primera direccin del mismo, la 128, cargndose entonces el bloque j=2 de M p en el conjunto i=2 de M c . Las restantes accesos a M c producirn aciertos. Es decir, el nmero de aciertos es NA=NT-NF, siendo NF el nmero de fallos NA=111-1=110 aciertos. Luego la tasa de acierto es:
h=
Es decir 99%
44
0 0
1 1
0 0
1 0
1 1
1 0
0 0
0 1
ARGUMENTO MASCARA
0 1 ETIQUETA 1 1 1
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
0 0 0 0 0
0 1 0 0 1 MARCA
La mascara 1 si genera este registro de marca. Hay que recordar que si el bit de etiqueta est a 0, el bit correspondiente del registro de marca se pone a 0, por eso se ha tachado la primera fila de la matriz de celdas asociativa.
2) Mscara 2
0 0
1 1
0 0
1 0
1 0
1 0
0 0
0 0
ARGUMENTO MASCARA
0 1 ETIQUETA 1 1 1
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
0 0 0 0 0
0 1 0 0 1 MARCA
45
0 1 ETIQUETA 1 1 1
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
0 0 0 0 0
0 1 0 0 1 MARCA
4) Mscara 4
0 0
1 0
0 0
1 1
1 1
1 0
0 0
0 1
ARGUMENTO MASCARA
0 1 ETIQUETA 1 1 1
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
0 0 0 0 0
0 1 0 0 1 MARCA
5) Mscara 5
0 0
1 0
0 0
1 0
1 1
1 0
0 0
0 1
ARGUMENTO MASCARA
0 1 ETIQUETA 1 1 1
1 1 1 1 1
1 1 0 0 1
0 0 0 1 0
1 1 1 0 1
1 1 0 0 1
1 0 0 1 0
1 1 0 1 0
0 0 0 0 0
0 1 0 0 1 MARCA
46
C=
M=
C Mp K
2 20 =214 bloques 26
Es decir, que los log2M= 14 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p Adems el tamao de una direccin viene dado por n=log2CMp= log2220= 20 bits Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c tendra los siguientes campos:
n=20 bits Etiqueta Bloque n i de Mc b=log2C b= 4 bits Palabra
p=log2 K p= 6 bits
Afirmacin I: La direccin 1D45F se expresa en binario de la siguiente forma: 0001 1101 0100 0101 1111 Desde el punto de vista de la M c se descompone en los siguientes campos: Etiqueta 0001110101 Bloque n i de MC 0001 Palabra 011111
Luego esta direccin hace referencia al bloque i=00012=110 de M C. Luego la afirmacin es FALSA. No hace falta analizar la direccin 02075 .
Afirmacin II: La direccin 2A23B se expresa en binario de la siguiente forma: 0010 1010 0010 0011 1011 Desde el punto de vista de la M c se descompone en los siguientes campos: Etiqueta 0010101000 Bloque n i de MC 1000 Palabra 111011
Luego esta direccin hace referencia al bloque i=10002=810 de M C. Luego la afirmacin es VERDADERA.
47
n S = log 2 2 3 = 3 lineas
Luego, el nmero de lneas del bus de direcciones comunes n C a todos los mdulos sern:
nC = n nS = 10 3 = 7 lneas
Hasta aqu se han indicado todos los clculos necesarios para resolver el problema. De forma adicional, vamos a calcular el nmero de mdulos de memoria RAM de capacidad C0 necesarios para construir una memoria RAM de capacidad CT. Pues bien, obsrvese que CT se descompone de la siguiente forma:
CT = 210 pal x 2 4 bits / pal = 2 3 2 7 pal x 22 3 bits / pal = ( 23 2)2 7 pal x 23 bits / pal CT = 16(2 7 pal x 2 3 bits / pal ) = 16C0
Es decir se necesita un total de 16 mdulos .
48
fa =
49
t am = h t ga + (1 h) t gf (1)
Donde tga es el tiempo empleado en gestionar un acierto. Normalmente se cumple que :
t acierto = t ca = 10 seg
De acuerdo con el enunciado el tiempo de gestin de un fallo ser la suma de tres componentes, ya que cuando se produce un fallo: 1) El sistema mueve el bloque completo a la cach, es decir hay que realizar K accesos a la memoria principal, lo que supone un tiempo de Kt p. 2) Se lee el dato desde la cach, lo que supone un tiempo de tca . 3) Adems se emplea un tiempo extra textra= 20 seg debido a la poltica de ubicacin y reemplazamiento en la cach. Luego:
t am ' = 4.7 t am
Luego las afirmaciones son: Afirmacin I: VERDADERA. Afirmacin II: VERDADERA
50
C=
M=
C Mp K
Es decir, que los log2M= 13 bits ms significativos de una direccin de memoria hacen referencia al bloque j de M p Adems el tamao de una direccin viene dado por n=log2CMp= log2216= 16 bits Puesto que la cach emplea correspondencia directa. La direccin desde el punto de vista de la M c tendra los siguientes campos:
n=16 bits Etiqueta Bloque n i de Mc b=log2C b= 7 bits Palabra
p=log2K p= 3 bits
AFIRMACION I: Para comprobar la validez de esta afirmacin hay que pasar la direccin 6B59 a cdigo binario. 6B5916= 0110 1011 0101 1001 La direccin desde el punto de vista de la M c tendra los siguientes campos:
011010 1101011 001
Luego el bloque i de M C al que hace referencia es: i=11010112=10710. Luego la afirmacin es VERDADERA. AFIRMACION II: Para comprobar la validez de esta afirmacin hay que pasar la direccin 675E a cdigo binario. 675E16= 0110 0111 0101 1111 La direccin desde el punto de vista de la M c tendra los siguientes campos:
011001 1101011 111
La etiqueta de esta direccin es 011001, distinta de la etiqueta 011010 de la direccin 6B59 que si que estaba en la M c . Luego 675E no est en la M C. La afirmacin es VERDADERA.
51
AFIRMACION I: En un sistema jerrquico de memoria con dos niveles de memoria cach, la cach 1 (M C1), ms cercana a la CPU, posee una capacidad inferior a la cach de nivel 2 (M C2), ms cercana a la memoria principal. En consecuencia nunca la M C1 puede contener una copia de todos los bloques de la MC2, slo de algunos de ellos. Luego, la afirmacin es FALSA.
AFIRMACION II: Con la poltica de post-escritura, las modificaciones que se realicen en la cach 1 no se reflejarn inmediatamente en la cach 2. Por tanto, el contenido de un bloque de cach de nivel 1 no siempre ser igual al contenido de un bloque correspondiente en la cach de nivel 2. Luego, la afirmacin es FALSA.
52
CT = C ROM + C RAM
Puesto que se conocen CT y CRAM es posible calcular CROM
CS ROM = A15 A14 CS RAM 0 = A15 A14 CS RAM 1 = A15 A14 CS RAM 2 = A15 A14
De acuerdo con el razonamiento realizado, se tiene: Afirmacin I: VERDADERA. Afirmacin II: FALSA.
Nota: El enunciado de este problema es bastante puetero ya que el alumno debe de suponer dos hiptesis, nada evidentes, para poder resolverlo: 1) Cada palabra de memoria ocupa un byte. 2) Hay dos o tres mdulos de memoria RAM.
53
vT = f a =
Despejando tn:
N tn t a
tn =
Sustituyendo valores:
N + ta vT
10 3 ( bytes)23 (bits / byte) tn = + 210 3 ( seg ) = 410 3 + 210 3 = 610 3 seg = 6 mseg 6 210 (bits / seg )
Luego el tiempo medio en leer o escribir 103 bytes es t n=6 mseg.
54
t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de gestin del acierto. Normalmente se cumple que:
t ga = t ca = 20 nseg
De acuerdo con el enunciado el tiempo de gestin de un fallo ser la suma de dos componentes, ya que cuando se produce un fallo: 1) El sistema mueve el bloque completo a la cach, es decir hay que realizar K accesos a la memoria principal, lo que supone un tiempo de Kt ap. 2) Se lee el dato desde la cach, lo que supone un tiempo de t ac . Luego:
55
Tasa de fallos = (1 h) =
Despejando la tasa de aciertos h:
NF NT
h = 1
Puesto que se conoce el nmero de bits c=7 bits del campo CONJUNTO con el que se codifica el nmero de conjunto de la M C, es posible obtener el nmero de conjuntos total q de la M C:
q = 2 c = 27 = 128 conjuntos
El nmero de bloques C de la memoria cach se calcula de la siguiente forma:
K = 2 p = 25 = 32 ( palabras / bloque )
Finalmente la capacidad CMc de la memoria cach viene dada por:
CMc = K C x L = 25 ( palabras / bloque )28 (bloques ) x 1( byte/ palabra ) CMc = 213 ( palabras ) x 1( byte/ palabra ) = 8 Kbytes
Luego CMc =8 Kbytes
56
57
CONTENIDO
SOLUCION PROBLEMA 3.1........................................................................................................................................ 3 SOLUCION PROBLEMA 3.2........................................................................................................................................ 4 SOLUCION PROBLEMA 3.3........................................................................................................................................ 5 SOLUCION PROBLEMA 3.4........................................................................................................................................ 6 SOLUCION PROBLEMA 3.5........................................................................................................................................ 7 SOLUCION PROBLEMA 3.6........................................................................................................................................ 8 SOLUCION PROBLEMA 3.7........................................................................................................................................ 9 SOLUCION PROBLEMA 3.8...................................................................................................................................... 10 SOLUCION PROBLEMA 3.9...................................................................................................................................... 11 SOLUCION PROBLEMA 3.10.................................................................................................................................... 11 SOLUCION PROBLEMA 3.12.................................................................................................................................... 12 SOLUCION PROBLEMA 3.13.................................................................................................................................... 13 SOLUCION PROBLEMA 3.14.................................................................................................................................... 14 SOLUCION PROBLEMA 3.15.................................................................................................................................... 14 SOLUCION PROBLEMA 3.16.................................................................................................................................... 15 SOLUCION PROBLEMA 3.17.................................................................................................................................... 15 SOLUCION PROBLEMA 3.18.................................................................................................................................... 15 SOLUCION PROBLEMA 3.19.................................................................................................................................... 15 SOLUCION PROBLEMA 3.20.................................................................................................................................... 17 SOLUCION PROBLEMA 3.21.................................................................................................................................... 18 SOLUCION PROBLEMA 3.22.................................................................................................................................... 18 SOLUCION PROBLEMA 3.23.................................................................................................................................... 18 SOLUCION PROBLEMA 3.24.................................................................................................................................... 19 SOLUCION PROBLEMA 3.25.................................................................................................................................... 20 SOLUCION PROBLEMA 3.26.................................................................................................................................... 21 SOLUCION PROBLEMA 3.27.................................................................................................................................... 21 SOLUCION PROBLEMA 3.28.................................................................................................................................... 22 SOLUCION PROBLEMA 3.29.................................................................................................................................... 22 SOLUCION PROBLEMA 3.30.................................................................................................................................... 23 SOLUCION PROBLEMA 3.31.................................................................................................................................... 24 SOLUCION PROBLEMA 3.32.................................................................................................................................... 25 SOLUCION PROBLEMA 3.33.................................................................................................................................... 25 SOLUCION PROBLEMA 3.34.................................................................................................................................... 25 SOLUCION PROBLEMA 3.35.................................................................................................................................... 25 SOLUCION PROBLEMA 3.36.................................................................................................................................... 26 SOLUCION PROBLEMA 3.37.................................................................................................................................... 27 SOLUCION PROBLEMA 3.38.................................................................................................................................... 28 SOLUCION PROBLEMA 3.39.................................................................................................................................... 28 SOLUCION PROBLEMA 3.40.................................................................................................................................... 29
En un canal multiplexor la velocidad mxima de transferencia viene dada por la suma de las velocidades de cada uno de los dispositivos que controla. Luego
Mp E/S
En primer lugar se va a obtener la velocidad de transferencia del canal selector v Tcanal, que viene dada por la velocidad del dispositivo ms rpido que controla, es decir, la velocidad de transferencia de una unidad de disco.
t Tcanal =
1 vTcanal
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia de 1 byte entre un perifrico y memoria principal M p e s tbus=10 nseg. En la figura se representan esquemticamente tTcanal y tbus. tbus= 10 nseg tTcanal=1000 nseg Luego P es :
P=
t bus t Tcanal
100 =
10 100 = 1% 1000
En este tipo de estrategia el controlador del DMA toma el control del bus del sistema, una vez que la CPU ha ejecutado una instruccin y no lo cede hasta que ha transferido todo el bloque de palabras. Nos piden calcular la mxima velocidad de transferencia de datos v tmax (pal/seg). Dicha velocidad vendr dada por el cociente entre la velocidad del computador y el nmero de ciclos que se necesitan para escribir o leer una palabra.
v tmax =
N D = N DM + N DP
El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 213 direcciones
El nmero de direcciones para acceder a palabras de memoria es
N DM = 212 direcciones
Luego el nmero de direcciones para acceder a palabras en los perifricos vendr dado por :
N Pmax =
b) Nos dicen que cada perifrico ocupa 8 direcciones => R= 8 dir/peri. Luego el nmero mximo de perifricos NPmax es :
N Pmax =
Para resolver este problema, primero hay que calcular la velocidad de ejecucin v ejec1 (instrucciones/segundo) cuando no hay DMA y a continuacin calcular la velocidad de ejecucin vejec2 (instrucciones/segundo) cuando hay DMA con estrategia de robo de ciclos. La velocidad de ejecucin v ejec se define como el nmero de instrucciones que el computador es capaz de ejecutar en un segundo. 1)Calcular v ejec1 .
1 ciclo Ejecucin normal Instr1 Instr2 Instr 3
Sino hay DMA el computador tarda en promedio 4 ciclos en ejecutar cada instruccin. Luego la velocidad de ejecucin es:
Instr1
DMA
Instr2
DMA
Instr3
Ahora cada vez que se ejecuta una instruccin, a continuacin se cede el bus del sistema al controlador de DMA para que realice la transferencia de una palabra. Por lo que ahora transcurren 5 ciclos entre instruccin e instruccin. Luego la velocidad de ejecucin es:
v ejec1
3) El nmero de instrucciones que dejen de ejecutarse por segundo viene dado por :
Instr1
Instr2
Instr3
Se ha de recordar que en la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecucin de una instruccin en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio el computador necesita 4 ciclos para ejecutar una instruccin y que slo en dos de ellos no requiere el uso del bus. Adems nos dicen que el controlador de DMA nicamente necesita de 1 ciclo para transmitir una palabra. Luego el nmero de palabras que se transmiten por DMA en la ejecucin de una instruccin (R), vendra dado por:
R=
La velocidad de ejecucin es:
v ejec
Instr1
Instr2
Instr3
v ejec
Mp E/S
En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor v Tcanal, que viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1 v Tcanal
1 1000 nseg 6 = 3 3 10
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia de 1 byte entre un perifrico y memoria principal M p e s tbus=100 nseg. En la figura se representan esquemticamente tTcanal y tbus. tbus = 100 nseg tTcanal=1000/3 nseg Luego P es :
P=
t bus tTcanal
100 =
10
vin Buffer
vout
De los datos del problema se deduce que el buffer recibe datos a una velocidad ms elevada de lo que transmite. Habr que calcular la velocidad de llenado v, que ser:
t llenado =
11
El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria disponen de lneas de control (lectura y escritura) autnomas, por lo que el mapa de direcciones de palabras de memoria es independiente del mapa de direcciones de palabras en perifricos. El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 2 32 direcciones
El nmero de direcciones para acceder a palabras en los perifricos NDP ser igual al nmero total de direcciones disponibles:
N DP = N D = 2 32 direcciones
Nos dicen que cada perifrico ocupa 16 direcciones => R= 16 dir/peri. Luego el nmero mximo de perifricos NPmax es :
N Pmax =
12
Instr1
Instr2
Instr3
v ejec =
Puesto que el sistema utiliza 1 ciclo en transferir 1 palabra y como tras ejecutar una instruccin se cede 1 ciclo para realizar DMA entonces el nmero de palabras que se transmiten tras ejecutar una instruccin es R=1pal/inst. As la velocidad de transferencia mxima es:
Instr1
Instr2
Instr3
v ejec =
En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecucin de una instruccin en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio el computador necesita 4 ciclos para ejecutar una instruccin y que slo en uno de ellos no requiere el uso del bus. Adems nos dicen que el controlador de DMA nicamente necesita 1 ciclo para transmitir una palabra. Luego el nmero de palabras R que se transmiten en la ejecucin de una instruccin, vendra dado por:
R=
13
En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor v Tcanal, que viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1 vTcanal
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia de 1 byte entre un perifrico y memoria principal M p e s tbus=50 nseg. En la figura se representan esquemticamente tTcanal y tbus.
tbus= 50 nseg tTcanal=64.5 nseg
Luego el porcentaje mximo de tiempo P que estara ocupado el bus del sistema en una transferencia de datos a travs de este canal multiplexor sera :
P=
t bus tTcanal
100 =
14
La velocidad de transferencia del canal multiplexor v Tcanal viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
15
SOLUCIN PROBLEMA 3 - 17
13
$4 :. O3
Antes de contestar los apartados pedidos, conviene hacer un resumen de cmo ha de funcionar el controlador de interrupciones solicitado: 1) De todas las peticiones de interrupcin INTRi se filtrarn y eliminarn las que estn enmascaradas. 2) Si despus del paso 1) todava existe alguna peticin activada se activar INTR y se seleccionar cul es la peticin ms prioritaria. 3) Cuando la UCP conceda la interrupcin activando INTA, se informar al perifrico cuya peticin de interrupcin se a seleccionado en 2) que su peticin va a ser atendida, mediante su lnea de aceptacin INTAi correspondiente. Obsrvese que los puntos 1) y 2) no son intercambiables, es decir, se han de ejecutar necesariamente en ese orden. En caso contrario se podran ocasionar situaciones anmalas. (Por ejemplo, si INTR2 e INTR3 estn activas pero ambos niveles de interrupcin estn enmascarados, INTR no se debe activar. Pero se se genera INTR y luego se comprueba qu niveles estn enmascarados se habra producido una peticin de interrupcin cuando debera haber sido filtrada por el controlador de interrupciones.).
a) Para cualquier seal INTAj, suponiendo que ninguna peticin est enmascarada, se verifica:
W W
Si INTA=0 entonces INTAj=0, independientemente de los valores de INTRi (i=0..3). Si INTA=1 e INTRj corresponde a la solicitud de peticin activada de mayor prioridad, entonces INTAj=1. Si INTA=1 e INTRj=1, pero existe un INTRk de mayor prioridad que tambin est activado, entonces INTAj=0.
14
A partir de aqu se obtiene de forma inmediata la tabla de verdad solicitada (Tabla 99-3-1).
INTA INTR3 INTR2 INTR1 INTR0 INTA3 INTA2 INTA1 INTA0
0 1 1 1 1
X 1 0 0 0
X X 1 0 0
X X X 1 0
X X X X 1
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
b) El controlador de interrupciones posee un registro interno de mscara MASK cuyos bits individuales M3..M0 enmascaran selectivamente las lneas de peticin de interrupcin. (El contenido de este registro es escrito por la UCP mediante algn mecanismo que segn el enunciado no hay que considerar en este problema.) As, cuando Mj=0 la correspondiente seal INTRj est enmascarada y no deber ser atendida. Esto se realiza fcilmente con una puerta AND. El enmascaramiento de las cuatro lneas de peticin ser, por tanto, el que se muestra en la Figura 99-3-2.
INTR3 INTR3 INTR2 INTR2 INTR1 INTR1 INTR0 INTR0
M3
M2
M1
M0
MASK
c) En este apartado hay que seleccionar, a partir de las lneas de peticin que ya han pasado por el mecanismo de enmascaramiento INTRi, la peticin activa ms prioritaria. Una posible solucin consiste en utilizar un codificador de prioridad seguido de un decodificador (Figura 99-3-3; obsrvese que ambos dispositivos tienen sus entradas de habilitacin H activadas).
15
INTR 1 H 3 A 1 H 3
INTR3
I3
INTR2
2 Codificador de prioridad 1
1 Decodificador
I2
INTR1
I1
INTR0
I0
El codificador de prioridad genera la codificacin binaria de la lnea INTRj ms prioritaria que est activa. A partir de aqu, por medio de un decodificador se consigue que se active nicamente la lnea Ij; las restantes lneas Ii menos prioritarias se encuentran a 0, independientemente de cmo se encuentren las correspondientes lneas INTRi. Esto se recoge en la Tabla 99-3-2.
INTR3 INTR2 INTR1 INTR0 I3 I2 I1 I0
1 0 0 0
X 1 0 0
X X 1 0
X X X 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Tabla 99-3-2: Tabla de verdad del mecanismo de gestin de prioridades (X representa 0 1, indistintamente)
La salida A del codificador de prioridad indica que alguna de sus entradas est a 1. Es decir, cuando alguna de las lneas INTRi est a 1 significa que hay alguna peticin no enmascarada activa, y que por tanto hay que activar la lnea INTR; para esto se utiliza la salida A.
d) Cuando la UCP concede la interrupcin activa su nica lnea INTA. Para generar las cuatro lneas de
aceptacin INTAi, y dado que slo una de las lneas Ii puede estar activada en cada momento, la correspondiente a la peticin no enmascarada de mayor prioridad, basta con hacer la Y-lgica entre Ii e INTA, segn la Figura 99-3-4.
16
I3
INTA3
I2
INTA2
I1
INTA1
I0
INTA0
INTA
e) Para construir el controlador de interrupciones solicitado tan solo hay que encadenar los mdulos implementados en los apartados b), c) y d), segn se muestra en la Figura 99-3-5.
INTR
CONTROLADOR DE INTERRUPCIONES
{
{
A los perifricos
INTR3
De los perifricos
INTR2
INTR2
I2
Concesin (d)
UCP
INTR1
INTR1
I1
INTR0
INTR0
I0
La velocidad de transferencia del canal multiplexor v Tcanal viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1 vTcanal
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia de 1 byte entre un perifrico y memoria principal M p es tbus=100 nseg. En la Figura se representan esquemticamente tTcanal y tbus.
tbus= 100 nseg
tTcanal=497.5 nseg
Luego el porcentaje mximo de tiempo P que estara ocupado el bus del sistema en una transferencia de datos a travs de este canal multiplexor sera :
P=
t bus t Tcanal
100 =
16
Analicemos la secuencia de peticin de interrupciones : 1) Llega PI2 y comienza a ejecutarse el programa de servicio de PI2. 2) Llegan (PI4, PI3, PI1) simultneamente, puesto que PI4 es la interrupcin ms prioritaria se comienza a ejecuta el programa de servicio de PI4 hasta completarlo. Quedan pendientes de atender PI3, PI2 y PI1 3) Finalizado el programa de servicio de PI4, comienza a ejecutar el programa de servicio de PI3, que es la interrupcin pendiente de mayor prioridad, hasta completarlo. Quedan pendientes de atender PI2 y PI1. 4) Finalizado el programa de servicio de PI3, contina con la ejecucin del programa de servicio de PI2, que es la interrupcin pendiente de mayor prioridad, justo en el punto en que fue interrumpido en el paso 2) hasta completarlo. Queda pendiente de atender PI1. 5) Se atiende a PI1 Luego el orden en que se tratan las interrupciones es: PI2, PI4, PI3, PI2, PI1
17
t Tcanal =
1 vTcanal
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia de 1 byte entre un perifrico y memoria principal M p e s tbus=50 nseg. En la Figura se representan esquemticamente tTcanal y tbus.
tbus= 200 nseg tTcanal=200 nseg
Luego el porcentaje mximo de tiempo P que estara ocupado el bus del sistema en una transferencia de datos a travs de este canal multiplexor sera :
P=
t bus t Tcanal
100 =
18
La velocidad de transferencia del canal multiplexor v Tcanal viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
19
En primer lugar se va a obtener la velocidad de transferencia del canal Multiplexor v Tcanal, que viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1 vTcanal
El enunciado del problema nos dice que el tiempo de utilizacin del bus del sistema tbus en la transferencia de 1 byte entre un perifrico y memoria principal M p e s tbus=100 nseg. En la figura se representan esquemticamente tTcanal y tbus. tbus = 200 nseg tTcanal=142.8 nseg De la figura se deduce que se tiene un sistema cuyo canal puede transmitir un byte entre uno de sus perifricos y memoria, ms rpido de lo que ese byte tarda en transmitirse por el bus del sistema. El tiempo de transferencia viene limitado por el tiempo de utilizacin del bus del sistema , ya que tbus>tTcanal. Por lo tanto el tiempo de transferencia es :
t T = t bus
Luego P es :
P=
20
El computador utiliza E/S localizada en memoria, eso significa que el controlador de E/S y la memoria comparten las lneas de control (lectura y escritura), por lo que se cumple el nmero total de direcciones posibles NTD estar formado por las direcciones de palabras de memoria M DM y las direcciones de palabras en perifricos NDP:
N D = N DM + N DP
El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 213 direcciones
El nmero de direcciones para acceder a palabras de memoria es
N DM = 3 211 direcciones
Luego el nmero de direcciones para acceder a palabras en los perifricos vendr dado por :
N Pmax =
21
Este problema es completamente anlogo al problema 3.25, salvo que nos piden la velocidad de transferencia agregada a este sistema. Puesto que el sistema est saturado P=100%. La velocidad mxima de transferencia viene dada por la inversa del tiempo de utilizacin del bus:
vT max =
1 t bus
Instr1
Instr2
Instr3
La estrategia de DMA transparente es la nica que no produce ninguna reduccin o interferencia en la velocidad de ejecucin de la CPU, ya que el DMA se realiza justamente en aquellos fases de la ejecucin de una instruccin en que la CPU no requiere hacer uso del bus del sistema.
22
Instr1
Instr2
Instr3
vejec
En la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la ejecucin de una instruccin en que la CPU no hace uso del bus. El enunciado del problema nos dice que en promedio el computador necesita 4 ciclos para ejecutar una instruccin y que slo en dos de ellos consecutivos no requiere el uso del bus. Adems nos dicen que el controlador de DMA necesita 2 ciclos para transmitir una palabra. Luego el nmero de palabras R que se transmiten en la ejecucin de una instruccin, vendra dado por:
R=
t=
23
n n n n
Conviene darse cuenta de que el sistema permite anidamiento, en consecuencia se trata de un sistema multinivel de interrupciones, de tal forma que cuando comienza a ejecutarse el programa de gestin de una interrupcin, si llega una interrupcin de prioridad superior pasa a ejecutar la rutina de servicio de dicha interrupcin.
PI1
PI3 PI2
PI1
0 3 5
10 14
20 24
30
40
50 u.t.
Rutina CDROM
Rutina CDROM
Figura 3.31.1
De acuerdo con el enunciado la forma de atender a las interrupciones (ver Figura 3.31.1) es la siguiente. 1) En t=0 u.t comienza a ejecutar la rutina de servicio del primer disco duro, que requiere un tiempo total de ejecucin de t s1=10 u.t. 2) En t=3 u.t la CPU est ejecutando todava la rutina de servicio del primer disco duro llega la peticin de interrupcin de la impresora PI3. Puesto que prio(PI3)<prio(PI1) la ignora y la coloca en una cola a la espera de ser atendida. 3) En t=5 u.t la CPU est ejecutando todava la rutina de servicio del primer disco duro llega la peticin de interrupcin del CD-ROM PI2. Puesto que prio(PI2)<prio(PI1) la ignora y la coloca en una cola a la espera de ser atendida. 4) En t= 10 u.t la CPU termina de ejecutar la rutina de servicio del primer disco duro y comienza a ejecutar la rutina de servicio del CD-ROM, que es la interrupcin en cola de espera de mayor prioridad. La ejecucin de esta rutina de servicio requiere un tiempo total t s2=30 seg. 5) En t=14 u.t la CPU est ejecutando todava la rutina de servicio del CDROM llega la peticin de interrupcin del segundo disco duro PI1. Puesto que prio(PI1)>prio(PI2) detiene la ejecucin de la rutina de servicio del CDROM, cuando an le restan t s2-4= 26 u.t para terminarla, y comienza a
24
ejecutar la rutina de servicio del segundo disco duro que requiere un tiempo total en ser atendida de t s1= 10 u.t 6) En t=24 u.t termina la ejecucin de la rutina de servicio del segundo disco duro. Retoma la CPU ejecucin de la rutina de servicio del CDROM del que le faltaban 26 u.t por ejecutar. 7) En t=50 u.t finaliza la rutina de servicio del CDROM y comienza la CPU a ejecutar la rutina de servicio de la impresora que se encontraba en la cola de espera, que requiere un tiempo total de ts3=15 u.t 8) En t=65 u.t finaliza la ejecucin de la rutina de servicio de la impresora. Luego la respuesta al problema se obtiene en el paso 7, es decir, en t=50 u.t finaliza la ejecucin de la rutina de servicio de la interrupcin del CDROM. Otra forma de calcular este valor es darse cuenta de que es la suma de los tiempos 2t s1+t s2=210+30=50 u.t correspondientes a ejecutar tres rutinas de servicio : la del primer disco, la del segundo disco y la del CDROM.
25
SOLUCIN PROBLEMA 3 - 35
13
UCP
INTA
$4 :. O3
a) La tabla de verdad solicitada se muestra en la Tabla 3, donde se puede observar el comportamiento solicitado:
W W
Si INTA = 0, no se activa ninguna de las lneas de aceptacin, aunque haya peticiones pendientes. Si INTA = 1, se activa la lnea de aceptacin de la peticin INTRi ms prioritaria.
ENTRADAS SALIDAS
INTA 0 1 1 1 1 1 1 1 1 1
INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0 X 1 0 0 0 0 0 0 0 0 X X 1 0 0 0 0 0 0 0 X X X 1 0 0 0 0 0 0 X X X X 1 0 0 0 0 0 X X X X X 1 0 0 0 0 X X X X X X 1 0 0 0 X X X X X X X 1 0 0 X X X X X X X X 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0
b) En este apartado hay que seleccionar, a partir de las lneas INTRi la peticin ms prioritaria. Una posible solucin consiste en utilizar un codificador de prioridad seguido de un decodificador. En la Figura 2 se muestra el diseo propuesto, donde se puede observar que tanto el codificador de prioridad como el decodificador tienen sus
14
INTR 1 H INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 7 2 6 5 4 3 2 1 0 0 0 0 I0 2 6 5 Decodificador 4 1 1 3 2 1 I3 I2 I1 I4 I6 I5 A 1 H 7 I7
Codificador de prioridad
El codificador de prioridad genera la codificacin binaria de la lnea INTRi ms prioritaria. A partir de aqu, por medio del decodificador se consigue que nicamente se active la lnea Ii, y que las restantes salidas Ij, menos prioritarias, se encuentren a cero, independientemente de cmo se encuentren las correspondientes lneas INTR j. Esto se recoge en la Tabla 4.
INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 0 0 0 0 0 0 0 0 INTR 0 I7 0 I6 0 I5 0 I4 0 I3 0 I2 0 I1 0 I0 0
15
INTR 1
I7 0
I6 0
I5 0
I4 0
I3 0
I2 0
I1 1
I0 0
Cuando alguna de las lneas INTRi est a 1 significa que hay alguna peticin de interrupcin activa y que, por tanto, hay que activar la lnea INTR conectada a la UCP para transmitir la peticin. Para esto se utiliza la salida A del codificador de prioridad que se activa cuando alguna de sus entradas est a 1. El comportamiento de esta lnea se puede ver tambin en la Tabla 4.
c) Cuando la UCP concede la interrupcin activa su nica lnea INTA. El controlador de interrupciones tiene que activar en ese instante la lnea de aceptacin INTAi correspondiente al dispositivo ms prioritario que tenga pendiente una peticin. Esta informacin se gener en el apartado anterior mediante las salidas Ii. Entonces, para generar las funciones lgicas de las ocho INTAi que tiene el controlador de interrupciones que se est diseando, basta con hacer la Y-lgica entre cada Ii y la lnea INTA de aceptacin generada por la UCP (ver Figura 3).
INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0 INTA
I7 I6 I5 I4 I3 I2 I1 I0
Para construir ahora el controlador de interrupciones solicitado tan solo hay que encadenar los mdulos implementados en el apartado B (ver Figura 2) con el de la Figura 3, tal y como muestra la Figura 4.
16
INTR
UCP
Controlador de Interrupciones
Otra posible solucin consiste en conectar la salida INTA de la UCP a la entrada de habilitacin H del decodificador de la Figura 2 de la pgina 14. De esta manera, las salidas del decodificador son ahora las seales INTAi, tal como se muestra en la Figura 5.
17
INTR INTA
Codificador de prioridad
INTA 7 6 5 4 3 2 1 0
C o ntrolador 4 de Interrupciones
3 2 1 0
Es capaz de atender peticiones de 15 dispositivos, tal y como requiere el enunciado del problema.
18
La salida de peticin de interrupcin INTR del CI2 se ha conectado con la entrada INTR0 del CI1, y la salida de aceptacin INTA0 del CI1 se ha conectado con la entrada INTA del CI2. De esta forma, las peticiones INTR7 a INTR0, solicitadas al CI2, slo se atendern cuando no haya peticiones activas en las lneas INTR8 a INTR14. Por tanto, la lnea ms prioritaria es la INTR14 y la menos prioritaria es la INTR0.
De esta manera se pueden encadenar tantos controladores de interrupciones como sean necesarios para atender a cualquier nmero arbitrario de peticiones.
UCP
INTR
INTA
INTR 7 6 5
INTA 7 6 5 4 3 2 1 0
C on trolador 4 de Interrupciones
3 2 1 0
INTR 7 6 5
INTA 7 6 5 4 3 2 1 0
C o ntrolador 4 de Interrupciones
3 2 1 0
Nota importante: A la hora de corregir este problema, el equipo docente de la asignatura se ha encontrado con bastante
19
frecuencia con el circuito que se muestra en la Figura 8. Se trata de una propuesta para el mecanismo de gestin de prioridades y generacin de las seales de aceptacin. Veamos por qu no funciona: En la Figura 8 se ha representado una situacin hipottica en la que estn activas simultneamente las peticiones INTR7, INTR6 e INTR5, y la UCP ha concedido la interrupcin mediante la activacin de la lnea de concesin INTA. Al ser la ms prioritaria, la peticin 7 debe ser atendida; efectivamente, el circuito propuesto genera INTA7 = 1, lo que es correcto. La peticin 6, al tener menor prioridad, no debe ser atendida: INTA6 = 0, correcto. Pero INTA5 es 1, cuando debera ser 0. El circuito est concediendo la interrupcin simultneamente a dos dispositivos diferentes, lo que es una situacin errnea que puede ocasionar graves conflictos en el funcionamiento del computador. Es fcil encontrar otras muchas situaciones en las que este dispositivo concede la interrucin a varios dispositivos simultneamente. Se trata, por tanto, de una propuesta de solucin no vlida.
1 INTR7 1
INTA7
0 INTR6 1
INTA6
1 INTR5 1
INTA5
INTR0 1 INTA
INTA0
Instr1
Instr2
Instr 3
26
En primer lugar se va a obtener la velocidad de transferencia del canal multiplexor v Tcanal, que viene dada por la suma de las velocidades de cada uno de los dispositivos que controla.
t Tcanal =
1 vTcanal
vT max =
1 t Tcanal
27
El computador utiliza E/S aislada de memoria, eso significa que el controlador de E/S y la memoria disponen de lneas de control (lectura y escritura) autnomas, por lo que el mapa de direcciones de palabras de memoria es independiente del mapa de direcciones de palabras en perifricos. El nmero total de direcciones ND viene definido por el nmero n de lneas de direccin.
N D = 2 n = 2 24 direcciones
El nmero de direcciones para acceder a palabras en los perifricos NDP ser igual al nmero total de direcciones disponibles:
N DP = N D = 2 24 direcciones
Nos dicen que cada perifrico ocupa 1 direccin => R= 1 direccin/perifrico. Luego el nmero mximo de perifricos NPmax es :
N P max =
28
t 1 (seg)
Bucle de espera
N 1 (instr )
N (instr )
t 2 (seg)
N2 (instr )
El tiempo total T que se tarda en ejecutar una E/S controlada por programa, ser la suma del tiempo t1 que permanece la CPU en el bucle de espera y del tiempo t2 que emplea la CPU en leer un dato y solicitar el siguiente:
T = t1 + t 2
Del enunciado se sabe que t 1=6 ms, adems se sabe el nmero de instrucciones que emplea el programa en leer un dato y pedir el siguiente es N2=10 instr. Como tambin se conoce el tiempo que se emplea en ejecutar una instruccin tI, entonces t 2 se puede calcular de la siguiente forma:
T = 2 + 6 = 8 mseg
Luego el porcentaje de tiempo P que dedica la CPU al bucle de espera es:
t 6 P = 1 100 = 100 = 75 % T 8
29
Comentarios Aunque en el problema no lo piden con los datos de que disponemos y los que hemos calculado tambin sera posible calcular los siguientes: n Nmero total de instrucciones NT que emplea el programa de E/S:
N T (instr ) =
N1 (instr ) =
Tambin puede calcularse como:
N1 = NT N 2 = 40 10 = 30 instr
n De acuerdo con el enunciado ejecutar una vez el bucle de espera requiere de NBE=1 instr, luego el nmero R de veces que se ejecuta el bucle de espera es:
R( veces) =
30
SOLUCIN PROBLEMA 3 - 41
Problema 3.41:
Una CPU dispone de una nica lnea de peticin de interrupcin (INTR) y de una nica lnea de aceptacin de interrupcin. Disee para esa CPU un controlador de interrupciones, de manera que se puedan atender interrupciones generadas por 3 dispositivos externos mediante lneas de peticin de interrupcin (ver la Figura adjunta). Cuando se reciben peticiones de interrupcin simultneas, slo se reconoce la ms prioritaria. La mxima prioridad la tiene INTR0 y la mnima INTR2 . Adems, cada una de estas lneas de interrupcin se ha de poder enmascarar de manera individual mediante un registro de mscara ( M2 M1 M0 ) del controlador de interrupciones (el mecanismo de acceso de la CPU a este registro no es relevante para este problema). Cuando M j = 0, la correspondiente seal INTR j est enmascarada y no debe ser atendida. Cuando la CPU activa su lnea de aceptacin, INTA, se debe informar al perifrico correspondiente, de manera individual, que su peticin ha sido aceptada, mediante las lneas de aceptacin INTA2 INTA0 .
INTR2 INTR1 INTR0 0 INTR INTA INTR INTA
CPU
[ M 2M 1M 0 ]
1
0 INTA0
INTA2 INTA1
A) Obtenga la tabla de la verdad del controlador de interrupciones. B) Obtenga la funcin lgica de las tres lneas INTA2, INTA1, INTA 0 en funcin de las lneas INTR0 , INTR1 , INTR2 , INTA y de los bits del registro de mscara. C) Disee el circuito lgico del controlador de interrupciones, usando para ello puertas AND, OR y NOT. D) Explique razonadamente cmo podran conectarse varios controladores de interrupciones de 3 entradas, como el diseado en el apartado anterior, para poder atender las peticiones de interrupcin de 6 perifricos externos.
Solucin Este problema es similar a los problemas 3-9 y 3-13 del texto Problemas de Estructura y Tecnologa de Computadores, 2 edicin. Se recomienda consultar la solucin a estos dos problemas con el fin de facilitar la comprensin de las explicaciones dadas a continuacin. A) Obtenga la tabla de la verdad del controlador de interrupciones. En el enunciado del problema (al contrario que en los problemas 3-9 y 3-13) se realiza la suposicin de que todas las lneas de peticin estn enmascaradas. Por este motivo, es preciso tener en cuenta el enmascaramiento de las lneas de peticin al plantear la tabla de la verdad. Un posible procedimiento para ello consiste en construir primeramente la tabla de la verdad en funcin de variables auxiliares, INTR i, las cuales representan tanto a la seal de peticin de interrupcin como a su mecanismo de enmascaramiento (ver Tabla 1):
INTRi = INTRi Mi
donde i: 0, 1, 2
La seal INTR es el or lgico de las seales INTR1, INTR 2 e INTR3 . De esta forma en cuanto haya una peticin de interrupcin por una lnea no enmascarada, se genera una peticin a la CPU.
INTA 0 1 1 1 1
INTR0 X 1 0 0 0
INTR1 X X 1 0 0
INTR2 X X X 1 0
INTR X 1 1 1 0
INTA0 0 1 0 0 0
INTA1 0 0 1 0 0
INTA 2 0 0 0 1 0
A continuacin, se sustituye en la Tabla 1 cada conjunto de valores de INTR0 , INTR1 e INTR 2 por las combinaciones de valores de M 0, M1, M2, INTR0, INTR1 e INTR2 que lo producen. Para ello se tiene en cuenta que:
Mi 1 0 X
INTRi 1 X 0
INTR i 1 0 0
La tabla de la verdad obtenida realizando las sustituciones anteriormente indicadas se muestra en la Tabla 2.
INTA 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
M0 X 1 0 X 0 0 X X 0 0 0 0 X X X X
M1 X X 1 1 0 X 0 X 0 0 X X 0 0 X X
M2 X X X X 1 1 1 1 0 X 0 X 0 X 0 X
INTR0 X 1 X 0 X X 0 0 X X X X 0 0 0 0
INTR 1 X X 1 1 X 0 X 0 X X 0 0 X X 0 0
INTR2 X X X X 1 1 1 1 X 0 X 0 X 0 X 0
INTR X 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
INTA0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
INTA1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
INTA2 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
B) Obtenga la funcin lgica de las tres lneas INTA2, INTA1, INTA 0 en funcin de las lneas INTR0 , INTR1 , INTR2 , INTA y de los bits del registro de mscara. De la Tabla 1, se deduce que: INTA0 = INTA INTR 0 INTA1 = INTA INTR 1 INTR0 INTA2 = INTA INTR 2 INTR1 INTR0 Sustituyendo INTRi por (Mi INTRi), se obtienen las tres funciones lgicas pedidas (que igualmente podan haber sido obtenidas de la Tabla 2): INTA0 = INTA M0 INTR0 INTA1 = INTA M1 INTR1 ( M0 INTR 0) INTA2 = INTA M2 INTR2 ( M1 INTR 1) (M0 INTR0 ) C) Disee el circuito lgico del controlador de interrupciones, usando para ello puertas AND, OR y NOT. En la Figura 8 se muestra un posible diseo.
D) Explique razonadamente cmo podran conectarse varios controladores de interrupciones de 3 entradas, como el diseado en el apartado anterior, para poder atender las peticiones de interrupcin de 6 perifricos externos. Este apartado es anlogo al apartado f) del problema 3-13. La conexin de los controladores puede realizarse como se muestra en la Figura 9. Aunque el dispositivo obtenido de la conexin de los tres controladores permitira gestionar 7 perifricos, slo se seala en la Figura 9 la conexin de 6 de ellos, tal como se pide en el enunciado. Con la estructura mostrada en la Figura 9, cuando se produce una peticin de interrupcin por cualquiera de las lneas INTRi, sta se transmite a la CPU. Las peticiones realizadas por los dos controladores ms alejados de la CPU generan peticiones en la lnea INTR 0 del controlador situado inmediatamente delante de ellos. Asimismo, cuando la CPU activa la lnea de aceptacin, INTA, los dos controladores no conectados directamente a la CPU no pueden activar ninguna de sus salidas hasta que los controladores ms prximos que ellos a la CPU no transmitan por sus respectivas lneas de aceptacin INTA0 .
CONTENIDO
SOLUCION PROBLEMA 4.1........................................................................................................................................ 3 SOLUCION PROBLEMA 4.2........................................................................................................................................ 3 SOLUCION PROBLEMA 4.3........................................................................................................................................ 4 SOLUCION PROBLEMA 4.4........................................................................................................................................ 6 SOLUCION PROBLEMA 4.5........................................................................................................................................ 6 SOLUCION PROBLEMA 4.6........................................................................................................................................ 6 SOLUCION PROBLEMA 4.7........................................................................................................................................ 7 SOLUCION PROBLEMA 4.8........................................................................................................................................ 7 SOLUCION PROBLEMA 4.9........................................................................................................................................ 7 SOLUCION PROBLEMA 4.10...................................................................................................................................... 8 SOLUCION PROBLEMA 4.11...................................................................................................................................... 9 SOLUCION PROBLEMA 4.12...................................................................................................................................... 9 SOLUCION PROBLEMA 4.13...................................................................................................................................... 9 SOLUCION PROBLEMA 4.14...................................................................................................................................... 9 SOLUCION PROBLEMA 4.15.................................................................................................................................... 10 SOLUCION PROBLEMA 4.16.................................................................................................................................... 10 SOLUCION PROBLEMA 4.17.................................................................................................................................... 10 SOLUCION PROBLEMA 4.18.................................................................................................................................... 11 SOLUCION PROBLEMA 4.19.................................................................................................................................... 11 SOLUCION PROBLEMA 4.20.................................................................................................................................... 11 SOLUCION PROBLEMA 4.21.................................................................................................................................... 12 SOLUCION PROBLEMA 4.22.................................................................................................................................... 12 SOLUCION PROBLEMA 4.23.................................................................................................................................... 12 SOLUCION PROBLEMA 4.24.................................................................................................................................... 13 SOLUCION PROBLEMA 4.25.................................................................................................................................... 13 SOLUCION PROBLEMA 4.26.................................................................................................................................... 13 SOLUCION PROBLEMA 4.27.................................................................................................................................... 13 SOLUCION PROBLEMA 4.28.................................................................................................................................... 13 SOLUCION PROBLEMA 4.29.................................................................................................................................... 14 SOLUCION PROBLEMA 4.30.................................................................................................................................... 15 SOLUCION PROBLEMA 4.31.................................................................................................................................... 15 SOLUCION PROBLEMA 4.32.................................................................................................................................... 15 SOLUCION PROBLEMA 4.33.................................................................................................................................... 16 SOLUCION PROBLEMA 4.34.................................................................................................................................... 17 SOLUCION PROBLEMA 4.35.................................................................................................................................... 17 SOLUCION PROBLEMA 4.36.................................................................................................................................... 18 SOLUCION PROBLEMA 4.37.................................................................................................................................... 18 SOLUCION PROBLEMA 4.38.................................................................................................................................... 18 SOLUCION PROBLEMA 4.39.................................................................................................................................... 19 SOLUCION PROBLEMA 4.40.................................................................................................................................... 20 SOLUCION PROBLEMA 4.41.................................................................................................................................... 20
Solucin A) El mdulo comparador de dos bits que se quiere disear viene representado en la Figura 96-1-2, donde x e y son las entradas de datos, y M, I y m son las tres salidas del comparador.
x>y
x=y
x<y
Como el enunciado slo permite utilizar puertas lgicas vamos a implementarlo mediante un circuito combinacional. La Tabla 96-1-1 muestra la tabla de verdad del comparador de 2 bits.
x 0 0 1 1
y 0 1 0 1
M 0 0 1 0
I 1 0 0 1
m 0 1 0 0
A partir de la Tabla 96-1-1 se deducen las siguientes funciones lgicas para M, I y m: M=xy I=xy+xy= x y + x y m=xy y el circuito lgico correspondiente se muestra en la Figura 96-1-3.
x
B) Para comparar X e Y es necesario comparar cada bit de uno de ellos con el bit de igual peso del otro. Para hacer estas comparaciones utilizamos comparadores de 1 bit como el diseado en el apartado anterior. Si el resultado de la comparacin de xi e yi es: Mi, Ii y mi, se cumple que: Mi =1 si xi > yi
Ii =1
si
xi = yi xi < yi
mi =1 si
A partir de Mi, Ii y mi se generan las salidas M, I y m del comparador de 3 bits mediante las siguientes funciones booleanas: M = M2 + I2 M1 + I2 I1 M0 I = I2 I1 I0 m= m2 + I2 m1 + I2 I1 m0 La explicacin de estas expresiones es inmediata: x > y si (x2 > y2) ((x2= y2) y (x1 > y1)) ((x2= y2) y (x1= y1) y (x0 > y0)) x = y si (x2 = y2) y (x1 = y1) y (x0= y0) x < y si (x2 < y2) ((x2= y2) y (x1 < y1)) ((x2= y2) y (x1= y1) y (x0 < y0)) La Figura 96-1-4 muestra el circuito lgico pedido en este apartado obtenido a partir de las expresiones anteriores.
x2 y2 x1 y1 x0 y0
x>y M2
x=y I2
x<y m2
x>y M1
x=y I1
x<y m1
x>y M0
x=y I0
x<y m0
C) Sobre este apartado no hay ningn comentario a hacer, y directamente la solucin es la mostrada en la Figura 96-1-5.
x2 y2 x1 y1 x0 y0
c2
SBC s2
c1
SBC s1
c0
SBC s0
c-1
D) En la Figura 96-1-6 se muestra la estructura de la UAL pedida en el enunciado del problema, donde adems de los mdulos diseados en los apartados anteriores, se han empleado 4 multiplexores con 2 entradas de datos y una salida. La entrada de seleccin de la c del la UAL est conectada directamente a la entrada de seleccion de los cuatro multiplexores de forma que: si c = 0 la salida de la UAL S = M I m 0 si c=1 la salida de la UAL S = X+Y Hay que observar como el acarreo de salida del sumador de 3 bits se ha conectados a la salida ms significativa de la UAL, ya que esa es realmente su funcin. El resultado de la suma de 2 nmeros de 3 bits requiere un mximo de 4 bits.
1 0 1 0 1 0
1 0 c0 MUX
c0 MUX
c0 MUX
c0 MUX
s3
s2
s1
s0
A)(1.5 puntos) Indique el diagrama de estados del circuito, especificando claramente cul es el significado de cada uno de los estados. B) (0.5 puntos) Indique cmo codifica los estados y obtenga la tabla de transicin de estados correspondiente. C) (1 punto) Suponiendo que slo dispone de biestables tipo D para el diseo del circuito, calcular las funciones de excitacin de los biestables. D)(1 punto) Implemente el circuito con biestables tipo D y puertas lgicas NAND y NOT nicamente.
Reloj
Comparador secuencial
Solucin
xx
xx
propuesto es el de la Figura 96-2-2. Los smbolos utilizados en este diagrama son los mostrados en la Figura 96-2-3 donde: Si es el estado, xiyi son los bits de la entrada, y MIm son los tres bits de la salida. xiyi
Si / MIm
La explicacin del diagrama de estados de la Figura 96-2-2 es la siguiente. Al comparar dos nmeros binarios X e Y, comenzando por sus bits de ms peso, en cuanto lleguen al comparador dos bits distintos ya es posible indicar cul de ellos es menor y cul es mayor, independientemente del valor de los siguientes bits. Por ejemplo: X = 00100111010101000 Y = 00100101010101111 a partir del bit marcado ya se sabe que X>Y. El sistema parte de un estado S0 que significa que los dos nmeros a comparar son iguales. Si los bits de igual peso de X y de Y que van llegando son iguales, el sistema no cambia de estado, pero en el instante en que lleguen dos distintos, pasa al estado S1 si xi>yi o al estado S2 si xi<yi. A partir de ese momento, independientemente del valores de las siguientes entradas al comparador, el sistema no cambia de estado. Luego el significado de los estados es el siguiente: S0 X = Y S1 X > Y S2 X < Y A partir del diagrama de estados de la Figura 96-2-2 se obtiene directamente la tabla de estados mostrada en la Tabla 96-2-2.
00 S0 S1 S2
Entradas xi yi 01 10 S2 S1 S2 S1 S1 S2
11 S0 S1 S2
Prximo estado
Tabla 96-2-2 Tabla de estados del comparador secuencial
Q1Q0 00 01 10
A partir de esta codificacin y de la Tabla 96-2-2 se obtiene directamente la tabla de transicin de estados (Tabla 96-2-4).
00 00 01 10
Entradas xi yi 01 10 10 01 10 01 01 10
11 00 01 10
Prximo estado
Tabla 96-2-4 Tabla de transicin de estados y salida del comparador
C) Teniendo en cuenta la funcin de excitacin de un elemento de memoria tipo D: D = Q(t+1) y la tabla de transicin de estados, se deducen las expresiones de las entradas D1 y D0 a los dos elementos de memoria necesarios para almacenar el estado del comparador (ver Figura 96-2-4).
Q1Q0 00 00 01 11 10 1 01 11 x x x x 10 1 1 1 1 Q1Q0 00 00 01 11 10 1 01 1 1 1 1 11 x x x x 10
xiyi
xiyi
D1 = xiyiQ0 + Q1
D0 = xi yi Q1 + Q0
D) Para implementar el circuito utilizando bistables tipo D y puertas lgicas NAND y NOT nicamente, no sirven directamente las funciones de excitacin obtenidas en el apartado anterior, pero negando dos veces cada una
D 1 = x i y i Q 0 + Q 1 = x i yi Q 0 + Q 1 = x i y i Q 0 Q 1 D 0 = x i y i Q 1 + Q 0 = x i yi Q 1 + Q 0 = x i y i Q 1 Q 0
Finalmente slo falta calcular las expresiones lgicas de las tres salidas en funcin del estado, para ello utilizamos la Tabla 96-2-5. Q1 Q0 00 01 10 11 MIm 010 100 001 xxx
Las expresiones lgicas para la salida que se obtienen de la Tabla 96-2-5 son: M = Q0 I = Q1 Q0 = Q1 Q0 m = Q1 Utilizando las funciones de excitacin de los elementos de memoria tipo D y las expresiones lgicas de la salida en funcin del estados, el circuito secuencial del comparador que se obtiene es el que se muestra en la Figura
96-2-5.
xi
D1 Q1 m
Ck
Q1
yi Reloj
D0 Q0
Ck
Q0
p4
Por lo tanto en la ROM se deben almacenar todos los resultados posibles que pueden resultar al multiplicar un nmero de 3 bits por otro de 2 bits. El nmero de resultados posibles es 25. Por otro lado ya se ha visto que el resultado debe de tener 5 bits. Luego se necesitara un mdulo ROM de capacidad C=25 pal x 5 bits/pal Ahora bien los mdulos de ROM de que se disponen tienen una capacidad de 24 pal x 4 bits/pal. Luego para conseguir almacenar 25 (32) resultados necesitamos 2 mdulos de este tipo (24 + 24) Por otro lado como cada resultado tiene 5 bits necesitamos otros dos mdulos: en uno se almacenar el bit ms significativo (p 4) de cada resultado quedando tres bits (r2r1r0) sin utilizar (x) y en el otro los cuatro bits restantes (p 3p 2p 1p 0). Luego el nmero de mdulos necesarios es 4 . El esquema sera :
b 1 b0 a1 a0 4 Mdulo 1 Mdulo 2
ROM 16x4
CS
ROM 16x4
CS
p3 p 2 p1 p0 4
Mdulo 3
Mdulo 4
ROM 16x4
CS
ROM 16x4
CS
p3 p 2 p1 p0 4
b2
b2
p4
Comentar que con el bit b2 se selecciona el par de mdulos donde se encuentra almacenado el resultado. Y con los bits b 1b 0a1a0 ya se determina la posicin de ROM que se va a leer.
p4 p3 p 2 p 1 p 0
p4
b) A continuacin se muestran la tablas de los contenidos de cada uno de los mdulos. Direccin b2 b1 b0 a1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Contenidos de los mdulos ROM r1 r0 p4 p3 p2 p1 p0 x x 0 0 0 0 0 x x 0 0 0 0 0 x x 0 0 0 0 0 x x 0 0 0 0 0 x x 0 0 0 0 0 x x 0 0 0 0 1 x x 0 0 0 1 0 x x 0 0 0 1 1 x x 0 0 0 0 0 x x 0 0 0 1 0 x x 0 0 1 0 0 x x 0 0 1 1 0 x x 0 0 0 0 0 x x 0 0 0 1 1 x x 0 0 1 1 0 x x 0 1 0 0 1 Mdulo 1 Mdulo 2 x x 0 0 0 0 0 x x 0 0 1 0 0 x x 0 1 0 0 0 x x 0 0 1 1 0 x x 0 0 0 0 0 x x 0 0 1 0 1 x x 0 1 0 1 0 x x 0 1 1 1 1 x x 0 0 0 0 0 x x 0 0 1 1 0 x x 0 1 1 0 0 x x 1 0 0 1 0 x x 0 0 0 0 0 x x 0 0 1 1 1 x x 0 1 1 1 0 x x 1 0 1 0 1 Mdulo 3 Mdulo 4
a0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
r2 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
c) El aprovechamiento de la memoria vendr dado por: R= bits utilizados 2 5 x5 25 5 5 100 = 100 = 8 100 = 100 = 62. 5% 4 bits totales 4(2 x4) 2 8
Una forma de mejorar el aprovechamiento sera fijarse en la tabla de contenidos de cada uno de los 4 mdulos del apartado b). En ella se observa que slo en dos casos el bit p4 es 1, y son cuando se multiplica 6x3=18 y cuando se multiplica 7 x 3=21. La funcin lgica del bit p 4 es: p 4 = b 2b1b 0 a1a 0 + b2 b1b 0 a1 a 0 = b 2b1a 1a 0 Que puede generarse fcilmente con una puerta AND. Con lo que slo se necesitaran 2 mdulos de ROM con un aprovechamiento R=100 %.
si = xi y i ci 1 ci = x i y i + ( x i yi ) ci 1
Para el caso i=1 se obtiene:
s1 = x1 y1 c 0 c1 = x1 y1 + ( x1 y1 ) c0
Mientras que para el caso i=0 se obtiene
s0 = x0 y 0 c1 c1 = x0 y 0 + ( x0 y0 ) c1
Afirmacin II: Por el mismo razonamiento de la solucin del problema 4.6, se necesitaran nm=43= 12 puertas AND y (n(m-1))=(4(3-1))= 8 sumadores binarios completos. Luego la afirmacin II es verdadera.
a) Sea el nmero de 6 bits Y(y 5y 4y 3y 2y 1y 0) y el nmero de 3 bits X(x2x1x0) el producto de ambos nmeros es un nmero de 9 bits P(p 8p 7p 6p 5p 4p 3p 2p 1p 0). La multiplicacin se puede representar esquemticamente como se muestra a continuacin. y5 x # # p 13 p6 # # # p 05 p 12 p5 # # p 04 p 11 p4 # p 03 p 10 p3 y4 y3 y2 x2 p 02 p2 y1 x1 p 01 p1 y0 x0
# p 15 p8 p 14 p7
p 00 p0
Si se denota como Y1a (y 5y 4y 3) y como Y0 a(y 2y 1y 0), en el esquema anterior se puede observar que: - Con una ROM (ROM1) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario Y0 x X=(p 05 p 04 p 03 p 02 p 01 p 00). - Con otra ROM (ROM2) de 64 pal x 6 bits/pal se pueden almacenar los resultados del producto binario de Y1 x X=(p 15 p 14 p 13 p 12 p 11 p 10). - Los bits p 2 p 1 p 0 del producto final son directamente: p 02 p 01 p 00 - Los bits p 5 p 4 p 3 del producto final son la suma de (p 05 p 04 p 03)+ (p 12 p 11 p 10), y adems se generar un bit de acarreo de salida. Para implementar esta operacin se necesita un sumador binario paralelo de 3 bits (sumador 1). - Los bits p 8 p 7 p 6 del producto final son la suma de (p 15 p 14 p 13)+ (0 0 0)+ acarreo de salida del sumador 1, y adems se generar un bit de acarreo de salida. Para implementar esta operacin se necesita un sumador binario paralelo de 3 bits (sumador 2). -Luego el diseo del sumador con los elementos propuestos es el que se muestra en la figura
Y0 X ROM 1 26 x 6 0 p 05 p04 p03 p 2 p 1 p0
p5 p 4 p 3
000
p8 p7 p 6
M = M 3 + I 3 M 2 + I 3 I 2 M 1 + I 3 I 2 I1 M 0 I = I 3 I 2 I 1I 0 m = m3 + I 3 m2 + I 3 I 2 m1 + I 3 I 2 I 1 m0
Por lo tanto: Afirmacin I: Falsa Afirmacin II: Falsa
s = x y + xy = x y c = xy
Por lo tanto: Afirmacin I: Desarrollando la expresin lgica dada en el enunciado s=
s = ( x + y) xy = ( x + y )( x + y ) = xx + x y + yy + xy = xy + xy = x y
Luego la afirmacin es verdadera. Afirmacin II: Falsa
SOLUCIN PROBLEMA 4 - 12
x2x1x0 c1c0 2
y1y0
UAL
S3 S2 S1 S0
$ 4 . : O3
A) Las expresiones que vamos a utilizar para implementar el SBC son: Si = xi yi ci-1 ci = xi yi + (xi yi) ci-1 donde xi e yi son los datos de entrada, ci-1 es el acarreo de entrada, Si es el resultado de la suma y ci es el acarreo de salida. El diseo resultante se muestra en la Figura 98-1-2.
ci-1 xi yi
Si
ci
B) Como x - y = x + (-y), si se dispone de un circuito que calcula la suma de nmeros negativos se puede efectuar la operacin de restar. En el caso de la representacin de nmeros negativos en complemento a 2 la resta resulta especialmente sencilla, porque el valor negativo es muy simple de realizar. En efecto, si y = yn-1 yn-2.... y1 y0 es un nmero entero representado en complemento a 2, entonces -y se calcula directamente: -y = yn-1 yn-2.... y1 y0 + 1. As pues, para obtener -y a partir de y, se efectan las dos operaciones siguientes: 1) Sustituir todos los bits de y por su complemento (es decir, cambiar 0 1 y 1 0) 2) Sumar 1 al bit menos significativo
Teniendo esto en cuenta, se puede disear fcilmente un nico circuito sumador-restador (ver Figura 98-1-3) donde la seal de control M gobierna la funcin a realizar:
W W
Si M = 0: S = x + y Si M = 1: S = x - y
y2 x2 y1 x1 y0 x0
x2 x 1 x 0 y2 y1 y0
c2
Sumador/restador
c2
SBC
c1
SBC
c0
SBC
c-1
S2 S1 S0
S2
S1
S0
C) Este comparador consiste en un circuito con 6 entradas (x2x1x0y2y1y0) y tres salidas (MIm). El mdulo de memoria ROM necesario tiene que tener un tamao mnimo de 26x3. El contenido de las 16 primeras posiciones de memoria se muestra en la Tabla 98-1-2.
x2 x1 x0 y2 y1 y0
Contenido (M I m) b2 b1 b0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 .....
0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1
.....
D) En la Figura 98-1-5 se muestra el diseo de la UAL pedida en el problema donde se han utilizado 4 multiplexores para seleccionar el valor adecuado a colocar en la salida, gobernados por las entradas c1 y c0. Tambin la entrada de control de la UAL c0 se utiliza para seleccionar la operacin a realizar por el Sumador/Restador.
x2 x1 x0 y1 y0
0
x2 x 1 x0
y2 y1 y0
x2 x 1 x0
y2 y1 y0
Comparador
c2
Sumador/restador S1 S0 S2
0 3 1
2 1 MUX
0 3 1
2 1 MUX
0 3 1
2 1 MUX
0 3 1
2 1 MUX
c0 c1
S3
S2
S1
S0
!74 2 , 0
Por otro lado dichas secuencias de arrastre se propagarn hasta que xi=y i=0. En la Figura inferior se puede observar como la longitud mxima de las secuencias de arrastre es 6.
6 +
1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1
10
SOLUCIN PROBLEMA 4 - 16
!74 2 , 0
Se desea construir un sumador binario con aceleracin de arrastres (SBAA) para 2 nmeros binarios X e Y de 3 bits cada uno. Para ello, el diseo se realizar siguiendo los siguientes pasos: A) (1.5 puntos) La figura de la izquierda muestra un sumador binario completo modificado (SBC modificado) con dos entradas de datos xi e yi y un acarreo de entrada ci-1. Exprese la funcin lgica de sus cuatro salidas: si (suma), ci (acarreo de salida), gi (generacin de acarreo) y pi (propagacin de acarreo). A partir de estas funciones lgicas, y empleando nicamente puertas lgicas, disee este SBC modificado. B) (1.5 puntos) La figura central muestra un circuito de aceleracin de arrastres (CAA) de 3 bits con tres entradas de generacin de acarreo gi, tres entradas de propagacin de acarreo pi y un acarreo de entrada c-1. Exprese las funciones lgicas de los acarreos c2, c1 y c0 generados por este mdulo. A partir de estas funciones lgicas, y empleando nicamente puertas lgicas, disee este CAA. C) (1 punto) Utilizando nicamente 3 SBC modificados como los diseados en A) y el CAA diseado en B), construya razonadamente el sumador binario con aceleracin de arrastre de 3 bits (SBAA) solicitado en el enunciado y mostrado en la figura de la derecha.
xi ci
yi ci-1
g2
p2
g1
p1
g0
p0
x2
y2
x1
y1
x0
y0
SBC modificado
CAA
c-1
c2
SBAA de 3 bits
c-1
si
gi
pi
c2
c1
c0
s2
s1
s0
$4 : . O 3
A) Las expresiones que vamos a utilizar para implementar el SBC modificado son: p i = xi y i g i = xi y i Si = xi yi ci-1 = pi ci-1 ci = xi yi + (xi yi) ci-1 = gi + pi ci-1 y el circuito correspondiente es el mostrado en la Figura 98-3-2.
ci-1
yi xi
yi
xi
ci
SBC modificado
ci-1
si gi pi
gi
ci
si
pi
B) Para construir las expresiones de c2, c1 y c0 generados por este mdulo a partir de las entradas de generacin de acarreo gi (i=1,2,3), las entradas de propagacin de acarreo pi (i=1,2,3) y el acarreo de entrada c-1, se comienza por la expresin de c0 y luego se va sustituyendo su valor en las siguientes.
W W W
c0 = g0 + p0 c1 = g1 + p1 c2 = g2 + p2
c-1 c0= g1 + p1 (g0 + p0 c-1) = g1 + p1 g0 + p1 p0 c-1 c1= g2 + p2 (g1 + p1 g0 + p1 p0 c-1)=g2 + p2 g1 + p2 p1 g0 +p2 p1 p0 c-1
El circuito resultante se muestra en la Figura 98-3-3. C) Los tres SBC modificados y el CAA los podemos conectar segn se muestra en la Figura 98-3-4. En este diseo se puede observar cmo los arrastres que se introducen en los SBC modificados son los generados directamente por el mdulo CAA y que, sin embargo, los arrastres generados por estos SBC modificados se quedan sin utilizar. Esta es la idea fundamental de esta tcnica.
p2
g2
p1
g1
p0
g0
c-1
p2 g2
p1 g1
p0 g0
CAA
c-1
c2
c1
c0
c2
c1
c0
x2
y2
x1
y1
x0
y0
c2
SBC Modificado
c1
SBC Modificado
c0
SBC Modificado
c-1
g2 p2 s2 c2 c1 s1
g1 p1 c0 s0
g0 p0
CAA
y2 x2
y1 x1
y0 x0
c2
SBAA
c-1
s2
s1
s0
Afirmacin I : La capacidad total de los mdulos ROM disponible es C=4(28 x 16). Como C<CT, la afirmacin es FALSA. Afirmacin II: La capacidad total de los mdulos ROM disponible es C=6(28 x 16) s. Como C<CT, la afirmacin es FALSA.
11
g 2 + p2 g1 + p2 p1 g 0 + p 2 p1 p0 c1
que de acuerdo con la expresin general se corresponde con c2, luego la respuesta correcta es la B.
12
Que se corresponde con la expresin lgica del bit de suma s= x Por lo tanto la respuesta correcta es la A
y.
13
SOLUCIN PROBLEMA 4 - 26
$ 4 . : O3
a) Para comparar X e Y es necesario comparar cada bit de uno de ellos con el bit de igual peso del otro. Para hacer estas comparaciones utilizamos los comparadores de 1 bit propuestos. Si el resultado de la comparacin de xi e yi es: Mi, Ii y mi, se cumple que:
Mi =1 si xi > yi Ii =1 si xi = yi mi =1 si xi < yi A partir de Mi, Ii y mi se generan las salidas M, I y m del comparador de 2 bits mediante las siguientes funciones booleanas: M = M1 + I 1 M0 I = I1 I0 m = m1 + I1 m0 La explicacin de estas expresiones es inmediata:
x > y si (x1 > y1) o ((x1= y1) y (x0 > y0)) x = y si (x1 = y1) y (x0= y0) x < y si (x1 < y1) o ((x1= y1) y (x0 < y0))
La Figura 2000-2-2 muestra el circuito lgico pedido en este apartado obtenido a partir de las expresiones anteriores.
x1
y1
x0
y0
x>y M1
x=y I1
x<y m1
x>y M0
x=y I0
x<y m0
x 1 x0
y1 y0
Comparador
b) Para calcular el tamao de la memoria ROM necesaria hay que saber el nmero entradas y salidas del
circuito.
W
Entradas. Este circuito tiene 5 entradas: 2 para la entrada de datos X (x1x0), 2 para la entrada de datos Y (y1y0) y una entrada de control (c) para la seleccin de la operacin a realizar por el circuito. Esta ltima entrada de control va a tener el siguiente significado:
W W
c = 0: Suma c = 1: Producto
Salidas: Este circuito tiene 4 salidas. El resultado de la suma de dos nmeros de dos bits tiene tan slo 3 bits pero, para el resultado del producto de dos nmeros de dos bits se requieren 4 bits. Como el circuito a disear tiene que poder hacer ambas operaciones, su salida ha de tener, necesariamente, 4 bits.
Por tanto, el tamao de la memoria ROM necesario para implementar el sumador es de: 25 palabras 4 bits/palabra. El significado de cada una de sus entradas y salidas se muestra claramente en la Figura 2000-2-3. Finalmente, en la Tabla 2000-2-2 se muestra el contenido que debera tener la memoria ROM.
c x1 x0 y1 y0
b3
b2
b1
b0
Direccin memoria c x1 x0 y1 y0 A4 A3 A2 A1 A0
Contenido b3 b2 b1 b0
Direccin memoria c x1 x0 y1 y0 A4 A3 A2 A1 A0
Contenido b3 b2 b1 b0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1
0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1
0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0
0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0
0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
c) En la Figura 2000-2-4 se muestra el diseo de la UAL pedida en el problema donde se han utilizado 4 multiplexores para seleccionar el valor adecuado a colocar en la salida, gobernados por las entradas de control c1 y c0. Tambin la entrada de control de la UAL c0 se utiliza para seleccionar la operacin a realizar por el Sumador/Multiplicador.
x1 x0 y1 y0 x 1 x0 y1 y0 x 1 x0 b3 y1 y0
Comparador
Sumador/Multiplicador b2 b1 b0
0 3 1
2 1 MUX
0 3 1
2 1 MUX
0 3 1
2 1 MUX
0 3 1
2 1 MUX
c0 c1
r3
r2
r1
r0
ROM 216x8
H
ed ei d1 d2
C
1
1 1 1 1
ROM 216x8
H
R 8 8
14
Con el inversor se utiliza para habilitar uno de los dos mdulos de memoria ROM, de acuerdo con el valor de la seal C=1(Comparador) y C=0 (Desplazador). Se tiene por tanto el esquema que se muestra en la Figura La afirmacin I es VERDADERA
Afirmacin II: La memoria total de la ROM que proponen es inferior a CT, luego la afirmacin es FALSA.
E1 = x1 y1 c0 E2 = x1 y1 + ( x1 y1 ) c0
Es decir, E1 y E2 son respectivamente S1 y C1. Luego la respuesta correcta es la A
15
16
M = M 4 + I 4 M 3 + I 4 I 3M 2 + I 4 I 3 I 2 M 1 + I 4 I 3 I 2 I 1M 0 I = I4 I3 I 2 I1 I0
Puesto que M 4 e I4 son:
M 4 = x4 y 4 I 4 = x 4 y 4 + x4 y 4
y adems y 4=0, entonces:
M 4 = x4 I 4 = x4
Luego
M = x4 + x4 M 3 + x 4 I 3 M 2 + x4 I 3 I 2 M 1 + x 4 I 3 I 2 I 1 M 0 I = x 4 I 3 I 2 I 1I 0
En la expresin de M,
17
Solucin B
D ( t ) = Q ( y + x ) + x y
Solucin C
D ( t ) = Q x y
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 0 1 0 1 0 1 1
0 0 1 0 1 1 0 0
0 0 1 0 1 0 1 1
0 0 0 0 0 0 1 0
Luego la respuesta correcta es la B), ya que es la nica que genera una D(t) igual a la indicada en el enunciado (columna 2). Una misma funcin lgica puede expresarse de mltiples maneras, todas ellas equivalentes entre s. Como se deduce a continuacin, en este caso la solucin B) coincide con la expresin simplificada de la funcin de entrada al elemento de memoria, D(t)=Q(t+1).
18
FORMA 2: Otra forma alternativa de hacer este problema es obteniendo la funcin lgica D(t) a partir del mtodo de reduccin de Karnough. tal y como se muestra en la siguiente figura:
Q \ xy 0 1
00 0 1
01 0 0
11 0 1
10 1 1
D(t ) = Q y + Qx + x y = Q( y + x ) + x y
Atencin!!: El que la expresin simplificada obtenida por el mtodo de Karnough sea igual a la expresin B) es condicin suficiente para afirmar que la solucin correcta es la B), sin embargo no es una condicin necesaria, ya que al plantear el enunciado del ejercicio, podra haberse sustituido la expresin B) por cualquier otra de sus formas equivalentes como por ejemplo:
D(t ) = Q y ( x + x ) + Q x + x y = Q y x + Q y x + Qx + x y
19
SOLUCIN PROBLEMA 4 - 37
Problema - Junio 1 semana: A) (1.5 puntos) Disear el registro de desplazamiento de 4 bits de la figura de la izquierda. E0, E1, E2, E3 representan la entrada paralelo; S0, S1, S2, S3 la salida paralelo; C1, C2 las lneas de control; y CK la seal de reloj. El registro debe ser capaz de realizar los dos desplazamientos siguientes: LICS (Lgico-IzquierdaCerrado-Simple) y LDCS (Lgico-Derecha-Cerrado-Simple). Adems, el circuito debe permitir la carga en paralelo de la entrada y mantener la informacin almacenada sin modificar (no operacin: NOP). La codificacin de las entradas de control se muestra en la tabla adjunta. B) (1 punto) Disear el mismo registro del apartado A) pero con la estructura entrada serie / salida serie que se muestra en la figura de la derecha. C) (1.5 puntos) Disear el mismo registro del apartado A) pero de modo que en lugar de realizar desplazamientos lgicos (LICS y LDCS) realice desplazamientos algebraicos (tambin llamados aritmticos) cerrados simples: AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (AlgebraicoDerecha - Cerrado - Simple). En los diseos deben utilizarse multiplexores y elementos de memoria D. Explicar detalladamente cada paso. E3 E2 E1 E0 E
C2 C1
Paralelo/ Paralelo
C2 CK C1
Serie/Serie
CK
S3 S2 S1 S0
Operacin
C2
C1
0 0 1 1
0 1 0 1
Solucin Para resolver este problema conviene ver las pginas 255 y ss. del texto base de teora, as como los problemas 4-37 y 4-38 de la primera edicin del libro de problemas o los problemas 4-39 y 4-40 de la segunda edicin. A) Las dos operaciones de desplamiento a realizar por el registro de desplazamiento son LICS (Lgico-Izquierda- Cerrado-Simple) y LDCS (Lgico-Derecha-Cerrado-Simple). La Figura 2 muestra estos dos tipos de desplazamientos para un registro de 4 bits como el que pide disear el enunciado del problema.
LDCS
LICS
donde Q(t) representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t. Anlogamente Q(t +1) representa el vector de salidas (Q3, Q2, Q1, Q0) del registro en el instante t+1. Para disear el registro se van a utilizar 4 biestables tipo D. En la entrada de cada uno de estos 4 biestables se coloca un multiplexor que, en funcin de las seales de control C1 y C2 del registro, seleccione el valor adecuado a introducir en cada registro para que se comporte segn la descripcin mencionada antes. El resultado del diseo se muestra en la Figura 3.
E3
E2
E1
E0
E3 E2 E1 E0
3 2 1 0 MUX C1 C2
3 2 1 0 MUX
3 2 1 0 MUX
3 2 1 0 MUX
D Q3
D Q2
C2 C1
Reloj
D Q1 D Q0
Paralelo/ Paralelo
CK
S2
S1
S0
S3 S2 S1 S0
S3
B) En este segundo apartado, el enunciado pide disear el mismo registro de antes, con desplazamientos LDCS y LICS, pero con entrada serie / salida serie. Ni en el mdulo de la Figura 1 ni el enunciado se menciona en qu bit se comienza la carga serie, ni en qu bit se efecta la lectura serie. Siguiendo el criterio del libro de texto, para resolver este problema se supone que se sigue el esquema de la Figura 4 para estas operaciones. .
Q
Reloj Cargar Q3 Q2 Q1 Q0
Por tanto, la descripcin del comportamiento del estado del circuito es la siguiente:
Q (t ) (Q , Q , Q , Q ) Q (t + 1) = 2 1 0 3 (Q0 , Q3 , Q2 , Q1 ) ( E , Q3 , Q2 , Q1 )
Haciendo las modificaciones oportunas en el diseo de la Figura 3 para contemplar los cambios pedidos, el resultado se muestra en la Figura 5.
3 2 1 0 MUX C1 C2
3 2 1 0 MUX
3 2 1 0 MUX
3 2 1 0 MUX
D Q3
D Q2
Reloj D Q1 D Q0
C2 C1
Serie/Serie
CK
C) En este ltimo caso, se va a suponer que la codificacin de las entradas de control es la mostrada en la Tabla 2. En la Figura 6 se muestra la representacin grfica de los dos tipos de desplazamientos solicitados en este apartado, AICS (Algebraico-Izquierda-Cerrado-Simple) y ADCS (Algebraico- Derecha - Cerrado Simple), para un registro de 4 bits.
Operacin
C2
C1
0 0 1 1
0 1 0 1
S ADCS
S AICS
Por tanto, la descripcin en este caso del comportamiento de la salida del circuito es la siguiente:
3 2 1 0 MUX C1 C2
3 2 1 0 MUX
3 2 1 0 MUX
E3 E2 E1 E0
3 2 1 0 MUX
D Q3
D Q2
C2 C1
Reloj
D Q1 D Q0
Paralelo/ Paralelo
CK
S2
S1
S0
S3 S2 S1 S0
S3
CT = 2 N de entradas pal N salidas (bits / pal ) CT = 2 n + 2 n pal ( 2n + 1)(bits / pal ) CT = 2 3 n pal ( 2n + 1)( bits / pal )
Luego el nmero de mdulos N de capacidad C 0 que se requieren para implementar una memoria de capacidad CT es:
N=
20
Solucin problemas.
CONTENIDO
SOLUCION PROBLEMA 5.1........................................................................................................................................ 3 SOLUCION PROBLEMA 5.2........................................................................................................................................ 4 SOLUCION PROBLEMA 5.3........................................................................................................................................ 5 SOLUCION PROBLEMA 5.4...................................................................................................................................... 14 SOLUCION PROBLEMA 5.5...................................................................................................................................... 15 SOLUCION PROBLEMA 5.6...................................................................................................................................... 15 SOLUCION PROBLEMA 5.7...................................................................................................................................... 16 SOLUCION PROBLEMA 5.8...................................................................................................................................... 16 SOLUCION PROBLEMA 5.9...................................................................................................................................... 17 SOLUCION PROBLEMA 5.10.................................................................................................................................... 17 SOLUCION PROBLEMA 5.11.................................................................................................................................... 17 SOLUCION PROBLEMA 5.12.................................................................................................................................... 18 SOLUCION PROBLEMA 5.13.................................................................................................................................... 18 SOLUCION PROBLEMA 5.14.................................................................................................................................... 19 SOLUCION PROBLEMA 5.15.................................................................................................................................... 19 SOLUCION PROBLEMA 5.16.................................................................................................................................... 19 SOLUCION PROBLEMA 5.17.................................................................................................................................... 20
Solucin problemas
Solucin problemas
2 log2 q 2 5
5 n m=30
Solucin problemas
Solucin problemas
4) El cuarto paso es dibujar la Unidad de Procesamiento. En la Figura 1 se muestra la Unidad de Procesamiento resultante:
8
BUS Reloj
c0 c2 0 0
ED EI
MUX
c1
MUX
CONT
0 1
c3
A 0 1
c9 c10
c4 c5
0 0
ED EI
0 1
c6 c7
UAL
c8
s0
b)DISEO DE LA UNIDAD DE CONTROL. Del algoritmo se deduce que un posible diagrama de estados (existen varias posibilidades) para la Unidad de Control es el que se muestra en la Figura 2.
S0
S1
s0 s1
S2
s0 s1
s0
S5
S6
S7
S3
S4
Figura 2 : Diagrama de estados de la Unidad de Control. Se comienza en el estado S y de este se pasa al estado S 0, se pasa al estado S 1 2. Este estado correspondera a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de las seales de condicin s 1 y s 0 , se puede pasar a S3(s 1=0 y s 0=0, A es par y el contador no ha llegado a 7) o a S4(s 1=1 y s 0=0, A es impar y el contador no ha llegado a7 ) o bien a S5(s 0=1 el contador ha llegado a 7). Desde S3 o S4 se vuelve a S2, as hasta que el contador llegue a 7 , en cuyo caso salta al valor S5. Desde S5 pasa a S6, y desde S6 pasa a S7 donde se detiene ya que es el estado de final del algoritmo. En este diagrama se tienen 8 estados
Solucin problemas
En la Tabla 1 se muestran las microperaciones y las seales de control asociadas a cada estado. Estado S0 S1 Microoperaciones A Bus BBus, Cont=0 ------A A-B cont=(cont+1)mod8 BA+B cont=(cont-1)mod8 BusB BusA Seales de Control
c 0 c 4 c5 c1 c6 c 7 c10 c 9
---------
S2 S3
c8 c 0 c 4 c5 c10 c 9 c8 c1 c 6 c7 c10 c 9 c3 c2
S4
S5 S6
S7 Parar ---------Tabla 1 : Microperaciones y seales de control asociadas a cada estado Una vez definido el diagrama de estados y las microoperaciones y seales de control asociadas con cada estado estamos en condiciones de disear la Unidad de Control mediante la tcnica de los elementos de retardo, esta tcnica tambin es conocida como diseo con un elemento de memoria por estado. Utilizando est tcnica la implementacin de la Unidad de Control es inmediata. Se debe observar atentamente el diagrama de estado de la Figura 2. Los pasos a seguir son : 1) Asignar un elemento de memoria (biestable) tipo D a cada estado. Como tenemos 8 estados se utilizaran 8 elementos de memoria tipo D 2) Si un estado recibe entradas de ms de un estado se debe utilizar una puerta OR. As el estado S2, recibe entradas del estado S1, del estado S3 y del estado S4 por lo que debe utilizarse una puerta OR de tres entradas. Por otro lado el estado S7, recibe entrada del estado S6 y del propio estado S7, por lo que se debe utilizar una puerta OR de 2 entradas. 3) Si un estado tiene salidas hacia ms de un estado, se debe utilizar un elemento demultiplexor que tenga como seales de seleccin las seales de condicin que regulan la transicin desde ese estado hacia los otros estados. En nuestro problema se observa que en el estado S2, dependiendo del valor de las seales de condicin s 0 y s 1, se pasa al estado S3(si s 0=0 y s 1=0), al estado S4 (si s0=0 y s1=1) o al estado S5(si s0=1 independientemente del valor de s 1), por lo que se utilizar un demultiplexor con 2 seales de seleccin (s 0 y s 1) y 4 salidas( salida 0 hacia S3, salida 1 hacia S4 y salida 2 y 3 hacia S5). 4) La salida de cada elemento de memoria, debe llevar rotuladas las seales de control que va activar y que sern las correspondientes al estado al que est asignado el elemento de memoria. En nuestro problema las seales de control asignadas en cada estado son las que se muestran en la Tabla 1. 5) El elemento de memoria asignado al estado S0, debe poseer una entrada asincrona (SET) de puesta a 1, mientras que los restantes estados deben poseer una entrada asincrona(CLEAR) de puesta a 0. Todos los elementos de memoria tienen una entrada sncrona (CK) para la seal de reloj. La Unidad de Control diseada se muestra en la Figura 3. Expliquemos el funcionamiento de esta Unidad de Control. Inicialmente se activa la seal asncrona de SET del elemento de memoria asignado al estado S0 y la seal asncrona de CLEAR de los restantes elementos de memoria, as el elemento de memoria asignado a S0 contendr un 1, mientras que los restantes elementos de memoria contendrn un 0. Este 1 se va a ir propagando por los diferentes elementos de memoria de acuerdo al diagrama de la Figura 2, en cada ciclo de reloj, de tal forma que en un instante de tiempo determinado solamente habr un estado activo, es decir un elemento de memoria conteniendo un 1 los restantes elementos de memoria contendrn el valor 0
Solucin problemas
S0 S1
SET c0 c4 c5
c1c6 c7c10c9
S2
s0 s1 0 1 2 3
S3
c8c0c4c5c10c9
S4
c8c1c6c7c10c9
S5
c3
S6
c2
CK
S7
CLEAR
Solucin problemas
OTRAS POSIBILIDADES DE DISEAR LA UNIDAD DE CONTROL DEL problema 5.3 1) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM Y UN REGISTRO - Con lo mostrado en las pginas 3-6 se habra resuelto el problema de la forma que se indica en el enunciado. Ahora vamos a disear la Unidad de Control utilizando una memoria ROM y un registro. - Puesto que se tienen 8 estados se necesitaran n=3 variables de estado (Q2, Q1, Q0) para codificarlos. Por otro parte se tienen q=2 (s 0 y s 1) variables de condicin y m=11 seales de control. Entonces la capacidad de la memoria ROM necesaria es : C= 2(3+2) palabras x (3+11) bits/palabra = 25palabras x 14 bits/palabra. - En la Tabla 2 se muestra el contenido de la memoria ROM y en la Figura 4 el esquema de la Unidad de Control Direccin de la ROM A4A3A2A1A0 Estado actual Cond Q2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Q1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Q0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 s0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 s1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Contenido de la memoria ROM p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Seales de control c5 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c4 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 c2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 c1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 c0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Solucin problemas
A4 A3 A2
3 2
A1 A0
Seales de condicin
Registro
11
Figura 4 : Diseo de la Unidad de Control con una memoria ROM y un registro 2) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM, UN REGISTRO Y UN MULTIPLEXOR DE SELECCION POR ESTADO. Si el diagrama de estados de la Unidad de Control de la Figura 2, se modifica aadiendo un estado donde se pregunte sobre el valor de s 1, entonces para pasar de un estado a otro solamente se necesita conocer el valor de una nica seal de condicin. Este nuevo diagrama de estado se muestra en la Figura 5.
S0
S1
s1
S2
s0 s1
s0
S6
S7
S8
S4
S3
S5
Figura 5 : Diagrama de estados de la Unidad de Control. Se comienza en el estado S y de ste se pasa al estado S 0, se pasa al estado S 1 2. Este estado correspondera a comprobar si el contador ha llegado al valor 7. Ahora dependiendo de los valores de las seales de condicin s 0, se puede pasar a S3 (s 0=0) o a S6 (s 0=1). En S3 puede pasar a S4 (s 1=0) o a S5(s 1=1). Cuando se encuentra en S4 o en S5, vuelve a S2 hasta que el contador alcance el valor 7 (s 0=1) que es cuando pasa a S6. Desde S6 pasa a S7, y desde S7 pasa a S8 donde se detiene ya que es el estado de final del algoritmo. En este diagrama se tienen 9 estados, por lo que se necesitaran n=4 variables de estado (Q3, Q2, Q1, Q0) para codificarlos. Por otro parte se tienen 1 (s 0 en el estado S2 y s 1 en el estado S3) variable de condicin por estado y m=11 seales de control. Entonces la capacidad de la memoria ROM necesaria es : C= 2(4+1) palabras x (4+11) bits/palabra = 25 palabras x 15 bits/palabra. - En la Tabla 3 se muestra el contenido de la memoria ROM y en la Figura 6 el esquema de la Unidad de Control
10
Solucin problemas
Contenido de la memoria ROM p14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Prximo Estado Q3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 Q2 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 Tabla 3 Seales de control
Q3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Q2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0
Q1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0
Q0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
c6 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0
c5 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
c4 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
c3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
c2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
c1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
c0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
Comentario : Puesto que se tienen 9 estados se han utilizado 4 bits para codificarlos, lo que deja el rango de direcciones 10010 hasta 11111 sin ser utilizado
MUX(16)
0 0
s0 s1
0 0 0 0 0 0 0 0 0 0 0 0
A4 A3 A2 A1 4 1 A0
Seal de condicin
ROM 25 x 15 Q(t+1) 4 11
Registro Q(t) 4
Figura 6 : Diseo de la Unidad de Control con una memoria ROM, un registro y un multiplexor por seleccin de estado Comentario : El multiplexor al tener 4 seales de seleccin (Q3, Q2, Q1, Q0), tiene 16 entradas disponibles MUX(16). La entrada 2 se debe conectar a la seal de condicin s 0 y la entrada 3 a la seal de condicin s1. EL resto de entradas se conectan al valor 0.
11
Solucin problemas
3) IMPLEMENTACION DE LA UNIDAD DE CONTROL CON UNA MEMORIA ROM, UN REGISTRO Y UN MULTIPLEXOR DE SELECCION POR CAMPO. En el diagrama de estados de la Figura 5 se tienen 9 estados, por lo que se necesitaran n=4 variables de estado (Q3, Q2, Q1, Q0) para codificarlos. Por otro parte se tienen q=2 (s 0 en el estado S2 y s 1 en el estado S3) variables de condicin y m=11 seales de control. Entonces la capacidad de la memoria ROM necesaria si se desea utilizar un multiplexor de seleccin por campo es: C= 2(4+1) palabras x (log22+ 4+11) bits/palabra = 25 palabras x 16 bits/palabra. - En la Tabla 4 se muestra el contenido de la memoria ROM y en la Figura 7 el esquema de la Unidad de Control Direccin de la ROM A4A3A2A1A0 Estado actual
Cond
Contenido de la memoria ROM p15p14 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Sel MUX Prximo Estado Seales de control
Q3 Q2 Q1 Q0 s p 15 Q3 Q2 Q1 Q0 c10 c9 c8 c7 c6 c5 c4 c3 c2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0(s 0) 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0(s 0) 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 0(s 0) 1(s 1) 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1(s 0) 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0(s 1) 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1(s 1) 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0(s 0) 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0(s 0) 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0(s 0) 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 0(s 0) 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 Tabla 4 : Contenido de la memoria ROM (Cond : seal de condicin. sel MUX : seleccin multiplexor) Comentario : Puesto que se tienen 9 estados se han utilizado 4 bits para codificarlos, lo que deja el rango de direcciones 10010 hasta 11111 sin ser utilizado. Comentario : El bit p15 va a ser la seal de seleccin del multiplexor, se define conjuntamente con el prximo estado. As si nos fijamos en la Tabla 4, se puede ver que p15=0 cuando el prximo estado es S2, de tal forma que la seal de condicin que utiliza es la s0, que ha sido conectada a la entrada 0 del multiplexor. Por otro lado, p 15=1 cuando el prximo estado es S3, de tal forma que la seal de condicin que utiliza es la s 1, que ha sido conectada a la entrada 1 del multiplexor
c1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
c0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
12
Solucin problemas
MUX(2) s0 s1 0 1 1
Seal de condicin
A4 A3 A 2 A 1 A0 ROM 2 5 x 16 bits
1 p 15 1 4
Figura 7 : Diseo de la Unidad de Control con una memoria ROM, un registro y un multiplexor de seleccin por campo Comentario : El multiplexor tiene log22=1 seal de seleccin y 2 entradas disponibles MUX(2). La entrada 0 se debe conectar a la seal de condicin s 0 y la entrada 1 a la seal de condicin s 1. Comentario : Indicar que para disear la Unidad de Control, con el diagrama de estados de la Figura 5, utilizando nicamente una ROM y un registro. La capacidad de la ROM necesaria sera 24+2 palabras+(11+4) bits/palabras. Que es claramente mayor a las dos propuestas anteriores..
13
Solucin problemas
14
Solucin problemas
La respuesta correcta es la A.
15
! 7 4 0 2 ,
El siguiente algoritmo describe una determinada operacin de un sistema digital. a) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos dibujados abajo (Figura 99-2-1): registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos y evitar en su diseo posibles conflictos elctricos entre ellos. b) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado a) empleando un registro de desplazamiento. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin.
$ 4 . : O3
a) A la vista del algoritmo propuesto, la Unidad de Control ha de tener dos registros A y B. Se debe poder cargar el registro A bien desde el bus o bien desde la UAL; slo es necesario poder cargar el registro B desde el bus. Ambos registros deben poder enviar su contenido a la UAL para realizar operaciones aritmticas con ellos. El ciclo while se controlar mediante el valor del registro A y el bucle if mediante un contador mdulo-8.
La Figura 99-2-2 muestra el diagrama de una posible Unidad de Procesamiento que cumple todos los requisitos. La carga del registro A se realiza a travs de un multiplexor que selecciona el bus o la salida de la UAL. Los registros A y B se vuelcan al bus a travs de puertas triestado que evitan posibles conflictos elctricos. Las entradas ED y EI de los registros no se utilizan en este problema. La seal de condicin s0 indica A128, lo que implica que el bit ms significativo de A (A7) sea 1. La seal de condicin s1 indica CONT4, lo que implica que el bit ms significativo de CONT (CONT2) sea 1. La salida de CONT es de 3 bits. Por este motivo, para introducir CONT en la UAL, hay que completarlo con 5 ceros en las posiciones ms significativas: 0 0 0 0 0 CONT2 CONT1 CONT0
8 BUS
C9
C0
0 MUX 1 C1 C2 CK C3 C4
C10 0 1 3 CK C7 C6
CK
ED A EI 8
0 1
ED B EI
0 1
CONT
8 1 s0(=A7)
0 5 C8 1 s1(=CONT2)
0 MUX 1
A UAL
C5
Seales de Control
Operacin
Selecciona BUS (1) o UAL (0) Control del registro de desplazamiento A (segn Figura 99-2-1) Control del registro de desplazamiento B (segn Figura 99-2-1) Suma (0) o resta (1) Control del contador(segn Figura 99-2-1) Selecciona B (0) o CONT (1) Tabla 99-2-1: Significado de las seales de control
Seales de Control
Operacin
C9 C10
Estado
Microoperaciones
Seales de control
S0
A BUS B BUS CONT = 0 ----------A A + CONT AB+A CONT (CONT + 1) mod 8 BUS B BUS A (Parar)
C0, C1, C2 C3, C4 C6, C7 ----------C0, C1, C2, C5, C8 C0, C1, C2, C5, C8 C6, C7 C10 C9 ------
S1
S2 S3 S4 S5 S6 S7 S8 S9
S0
S1
S2 s0 S3 s1 S4
s0
s1
S5
S6
S7
S8
S9
La tabla de transicin de estados corespondiente para una Unidad de Control basada en un registro de desplazamiento se muestra en la Tabla 99-2-3. La codificacin de los estados se ha realizado procurando minimizar el nmero de cargas en paralelo del registro. La Tabla 99-2-4 est ms detallada, y tiene en cuenta la codificacin de los estados.
Estado
Cdigo
Condicin
Transicin
Operacin
ED
S0 S1
0 0 0 0 (0) 1 0 0 0 (8)
----s0 s0 s1 s1 -------------
S 0 S1 S 1 S2 S2 S3 S2 S7 S3 S4 S3 S5 S4 S6 S 5 S6 S6 S2 S 7 S8 S8 S9 S9 S9
DD DD DD L DD L L DD L DD DD ---
1 1 1 1 1 1 1 -
S2
1 1 0 0 (12)
S3
1 1 1 0 (14)
S4 S5 S6 S7 S8 S9
Estado
Condicin
Prximo estado
w1 w0
E3 E2 E1 E0
Operacin
ED
S. de control
S0 = 0 0 0 0 (0) S1 = 1 0 0 0 (8)
----s0 s0
S1 = 1 0 0 0 S2 = 1 1 0 0 S3 = 1 1 1 0 S7 = 0 1 1 1
01 01 01 11
------------0111
DD DD DD L
1 1 1 -
S2 = 1 1 0 0 (12)
------
Tabla 99-2-4: Tabla de transicin de estados teniendo en cuenta la codificacin de los mismos
Estado
Condicin
Prximo estado
w1 w 0
E3 E2 E1 E0
Operacin
ED
S. de control
S3 = 1 1 1 0 (14)
s1 s1 -------------
S4 = 1 1 1 1 S5 = 0 1 0 1 S6 = 1 0 1 0 S6 = 1 0 1 0 S2 = 1 1 0 0 S8 = 1 0 1 1 S9 = 1 1 0 1 S9 = 1 1 0 1
01 11 11 01 11 01 01 00
DD L L DD L DD DD ---
1 1 1 1 -
------
C0, C1, C2, C5, C8 C0, C1, C2, C5, C8 C6, C7 C10 C9 ------
Tabla 99-2-4: Tabla de transicin de estados teniendo en cuenta la codificacin de los mismos
El esquema de la Unidad de Control se muestra en la Figura 99-2-4. Las expresiones lgicas de sus entradas se obtienen de la Tabla 99-2-4: w1 = S2s0 + S3s1 + S4 + S6 w2 = S9 E3 = S4 + S6 E2 = S2s0 + S3s1 + S6 E1 = S2s0 + S4 E0 = S2s0 + S3s1 Estas expresiones se implememtan fcilmente en la Unidad de Control (Figura 99-2-4) mediante puertas lgicas. La entrada ED del registro est fija a 1 y la entrada EI no se utiliza.
3 2 1 0
0 1 2 3 4 5 Decodificador 6 7 8 9 10 11 12 13
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)
ED EI
Q3 Q2 Q 1 Q0 w0 Reg. Desp. w1 E3 E2 E 1 E 0
>
CK
14 15
Figura 99-2-4: Unidad de Control mediante un registro de desplazamiento (faltan por implementar las seales Ei y wi)
!7 40 2 ,
Solucin problemas
16
Solucin problemas
La multiplicacin de un nmero binario por 2 es: [xn-1 xn-2...x0]x2 binario a decimal xn-12n+ xn-22n-1+...+x02
Lo que es equivalente a desplazar el nmero binario un bit hacia la izquierda e introducir un 0 en la posicin menos significativa. Ejemplos: El nmero 410= (0100)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0 en la posicin menos significativa se obtiene (1000)2= 82= 2 x 410. El nmero 310= (0011)2 al multiplicarlo por 2 se debe desplazar un bit hacia la izquierda e introducir un 0 en la posicin menos significativa se obtiene (0110)2= 610= 2 x 310.
La divisin entera de un nmero binario por 2 es: [xn-1 xn-2...x0]/2 binario a decimal xn-12n-2+ xn-22n-3+...+x120
Lo que es equivalente a desplazar el nmero binario un bit hacia la derecha perdindose el contenido del bit menos significativo. Ejemplos: El nmero 410= (0100)2 al dividirlo por 2 se debe desplazar un bit hacia la derecha se obtiene (0010)2= 210= 410/ 210. El nmero 310= (0011)2 al dividirlo por 2 se debe desplazar un bit hacia la derecha se obtiene (0001)2= 110= 410/ 310. Es una divisin entera.
17
Solucin problemas
En este diseo segn lo estudiado en teora, se necesitar un multiplexor con 2h= 24=16 entradas de las cuales slo se utilizan 9 una para cada seal de condicin. el resto se conectan a 0. Luego la respuesta es 16 entradas de datos .
18
Solucin problemas
Afirmacin I: Se tiene una Unidad de Control diseada con Memoria ROM + registro + multiplexor de seleccin por estado. La Capacidad de la ROM es: C=2n+1 palabras x (n+m) bits/palabras Luego sustituyendo valores se tiene: C=28251 bits = (28251210)/210=(251/4) Kbits Luego el coste es $=(215/4) Kbits 10 ptas/Kbits = 2150/4= 627.5 ptas. Luego la afirmacin es FALSA. Afirmacin II: Se tiene una Unidad de Control diseada con Memoria ROM + registro + multiplexor de seleccin por campo. La Capacidad de la ROM es: C=2n+1 palabras x (h+ n+m) bits/palabras Luego sustituyendo valores se tiene: C=28(5+7+244)= 28 256 bits = 28 28=216=26210=64 Kbits Luego el coste es $=64 Kbits 10 ptas/Kbits = 640 ptas. Luego la afirmacin es VERDADERA.
19
Solucin problemas
20
B Bus; for Cont = 0 to 7 do if Cont es par then A + ; / 2 else B ; 2 endif endfor Bus A; Bus ; Parar;
Ck ED
E c0 c1
A UAL R
B c0
Ck Contador Q c0 c1
E c0 S
Reg. Desp. EI Q
$ 4 . : O3
2 se muestra un posible diseo de la Unidad de Procesamient o y la Tabla 98-21 el A) En la Figura 98-2significado de todas la seales de control utilizadas. Repasando en algoritmo vemo s que permite realizar todo sy cada uno de sus pasos:
W
Los registros A y Bpueden cargar valores desde el bus del sistema o desde la salida de la UAL.Un multiplexor a a l entrada de cada uno de estos registros permite seleccionar qu dato es el que se va a cargar. Los registros A y Bpueden volcar sus valores en el bus mediante sendos circuitos triestado de conexin unidireccional con control de 8 bits. Existe camino de los registros A y Ba la entrada de la UAL. Un contador mdulo 8 permite gobernar el bucle for del algoritmo. A partir del valor del contador se generan dos condiciones cuyo valor puede ser consultado por la Unidad de Control en cualquie r instante:
Wso:
W W W
es la suma lgica de todos los bits del sumador. Su valor es cero cuando el contador est a cero.
Ws1:
es el bit menos significativo del contador. Suvalor es 0 cuando el contador tiene valor par, y es 1 cuando el contador tiene valor impar.
Bus
c5
c7
c8
MUX
c6
ED
EI
c Reg. des. c0 1 B
c3 c4
UAL
B c0
c0
Contador
2 1 0
c0 c1
c9 c10
s1(=1 C ontador es impar)
s0(=0 Contador es 0)
Circuito de Control
c0 c1
Unidad de Procesamiento
Operacincontrolada Control de la UAL: Su ma (0) y Resta (1), Control registro A: Nada (00), Des. Dcha.(01), Des. Izq. (10) y Carga (11) Control registro B: Nada (00), Des. Dc ha. (01), Des. Iz q. (10) y C arga (11) Seleccin MUX ntrada e de A: UAL (0)y Bus (1) Seleccin MUX ntrada e de B: UA L (0) y Bus (1) Puerta triestado que conecta la salida de A con el Bus: Nada (0) y Conexin (1) Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Co nexin (1) Contador: Nada (00), R eset (01), In crementar (10) y N ada (11)
B) Para describir el funcionamiento de la Unid ad de Control, diseamos el diagrama de transicin de estados de la Figura 98-2-3 donde la descripcin detallada de las cciones a a realizar en cada un de estos estados viene dad a en la Tabla 98-2-2. Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmopropuesto en el enunciado del problema utilizando la Unida d de Procesamiento diseada en el apartado anterior. Se puede comprobar, por ejemplo, que ejecuta el bucle for 8 veces.
Inicio s1 S0 S1 S2 S3 s1 S6 s0 S4 S5
s0 s0 S8 S7 s0 S9 S10
Seales de control a activar Ninguna c1, c2, c5, c9, (c10=0) c 3, c4, c6 Ninguna (c0=0), c1, c2, (c5=0), c10, (c9=0) (c 2=0), c1 c0, c3, c4, (c6=0), c10, (c9=0) c 4, (c3=0) c7 c8 Ninguna
trol en cada estado Tabla 98-2 -2: Acciones tomadas por la Unidad de Con
Para implementar esta Unidad de Control vamos a emple ar el mtodo de los elementos de r etardo. El diseo correspondiente se muestra en la Figura 98-2-4.
S1
S2
c3, c4, c6
S2
s1 s1= 1
S3
S3
s1= 0
S4
s0= 1
S4
s0
S5
c1
S5
s0= 0
S6
S6
s0
S7
c4
s0= 1
S7
s0= 0
S8
S8
c7
S9
c8
S9
S10
S10
Reloj Clear
SOLUCIN PROBLEMA 5 - 10
4: 5: 6: 7: 8: 9: 10: 11:
C Bus for Contador = 0to 7 do begin if C(0) C(1) then A A / B else A A + B endif Desplazar derecha (C) end Parar;
Utilizando los mdulos dibujados abajo: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una y un contador mdulo-8; adems de biestables tipo D, puertas lgicas y los mdulos combinacionales que considere necesarios: A) Disear la Unidad de Procesamiento que permita realizar este algoritmo. B) Disear la Unidad de Control, utilizando la tcnica de elementos de retardo, que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A). E ED Reg. despl. Q
c1c0 00 01 10 11 Q Nada Carga Desp. Dcha Nada c1c0 00 01 10 11
A c0 c1 UAL R
R A+B A-B A*B A/B
B c0 c1 Contador Q
c1c0 00 01 10 11 Q Q(t) 0 Q(t)+1 mod 8 Q(t)
c0 c1
Solucin A) Antes de proponer un diseo para la Unidad de Procesamiento hagamos unas consideraciones previas sobre los requerimientos del algoritmo. La Unidad de Procesamiento tiene que resolver cada uno de estos
requerimientos. El registro A tiene que poder recibir informacin desde el bus y desde la salida de la UAL. Al llegarle informacin desde dos lugares distintos es necesario colocar un multiplexor en la entrada para seleccionar cul de los dos debe ser cargado en el registro. Tambin el registro A debe entregar su contenido a la UAL. Al registro B le llega informacin del Bus y entrega su contenido a la UAL. El registro C recibe informacin desde el Bus y el algoritmo necesita consultar el valor de sus dos bits menos significativos para comprobar si son iguales o distintos. Esta condicin la generaremos mediante la funcin lgica C(0) C(1). En el algoritmo hay un bucle que se ejecutar un total de 8 veces. Para controlar esto se utilizamos el contador mdulo 8 y para detectar el final de la cuenta hacemos el producto lgico (AND) de sus tres salidas. Los registros de desplazamiento del enunciando son los nicos elementos de almacenamiento disponibles, por lo que se utilizarn para los tres registros: A, B y C. En el caso de A y B no se har uso de la capacidad de estos registros para realizar desplazamientos. A la hora de hacer desplazamientos en el registro C hay que introducir un 0, tal y como exige el enunciado del problema, por lo que habr que fijar su entrada ED a 0. Con los registros A y B no existe este problema, no se van a hacer desplazamientos con ellos, y su entrada ED se fija arbitrariamente a un valor determinado, por ejemplo 0. Un posible diseo para la Unidad de Procesamiento pedida, teniendo en cuenta todos estas consideraciones iniciales, puede ser el mostrado en la Figura 96-3-2. Sobre este diseo conviene hacer una observacin. Los registros A y B slo van a utilizar dos valores de sus entradas de control
c1c0 00 01 Q Nada Carga
Bus
0 1
ED
c1 0
ED
ED
B c0 c1 UAL
c5 c6 s1
Contado r
c7 c8
Circuito de Control
c0 c1
Unidad de Procesamiento
c8 Unidad de Control
Figura 96-3-2 Diagrama de bloques, puntos de control (c 0 a c9) y seales de condicin (s 0 y s1) de la Unidad de Procesamiento solicitada
Para completar este diseo, es necesario hacer una breve descripcin del significado de cada una de las entradas de control que gobiernan su funcionamiento (ve rTabla 96-3-1).
Seal de Control c0 c1 c2 c4 y c3 c6 y c5 c8 y c7
Operacin controlada Entrada de seleccin del multiplexor Cargar A desde la salida del multiplexor Cargar B desde el Bus Cargar C desde el Bus (01), desplazamiento derecha de C (10) o nada (00) Control de la UAL: suma (00), resta (01), producto (10) o divisin (11) Control del contador: nada (00 y 11), reset (01) o incremento (10)
B) Un posible diagrama de estados para la Unidad de Control que gobierne el funcionamiento de la Unidad de Procesamiento de la Figura 96-3-2, es el mostrado en la Figura 96-3-3. La Tabla 96-3-2 da una descripcin detallada de cada uno de los estados junto con las seales de control a activar en cada uno de ellos. Una de las dificultades que tiene este algoritmo es que el bucle debe ejecutarse necesariamente ocho veces. Para conseguirlo se ha optado por comprobar la condicin generada por el contador en el estado S6 y despus, si no se hubiera llegado al final de la cuenta (s1=1), incrementar el contador.
S7 s1 S4 S0 S1 S2 S3 s0 s0 S5 S6 s1 S8
Microoperaciones efectuadas A Bus contado r 0 B Bus C Bus Ninguna AA/B AA+B Desplazar derecha C Incrementar contador Ninguna
S1 S2 S3 S4 S5 S6 S7 S8
El mtodo de diseo utilizando elementos de retardo es prcticamente una transcripcin directa del diagrama de estados. En l Figura a 96-3-4 se muestra la Unidad de Control diseada utilizando este mtodo, junto con el diagrama de estados de la Figura 96-3-3, redibujado en vertical, para servir de apoyo en el diseo.
0
S0 S0
S1
c0, c1, c7 c2
S1
S2
c3
S2
S3
S3 s0 = 1 s0 = 0 S4
s0
S4
c1, c6, c5
S5
c1
S5
s1 S6 s1 = 0 s1= 1 S7
S6
c4
S7
c8
S8 Reloj S8
Clear
SOLUCIN PROBLEMA 5 - 11
if C(3) = C(5) then A A * B else A A - B endif; Desplazar derecha (C); end; Bus A; Parar;
Ck ED
E c0 c1
c1c0 00 01 10 11
A UAL R
B c0 c1
c1c0 00 01 10 11
Ck Contador Q c0 c1
E c0 S
c0 0 1 S E
Reg. Desp. Q
c1 c0 00 01 10 11 Q(t+1) Q(t) Carga Des. Dcha. Q(t)
Solucin A) Antes de proponer un diseo para la Unidad de Procesamiento hagamos unas consideraciones previas sobre las necesidades del algoritmo. La Unidad de Procesamiento tiene que resolver cada uno de estos requerimientos. Los registros de desplazamiento del enunciando son los nicos elementos de almacenamiento disponibles, por lo que se utilizarn necesariamente para los tres registros: A, B y C. En el caso de A y B no se har uso de la capacidad de estos registros para realizar desplazamientos, pero s en C (paso 9 del algoritmo). A la hora de hacer desplazamientos en el registro C hay que introducir un 0, tal y como exige el apartado A) del problema, por lo que habr que fijar su entrada ED a 0. Con los registros A y B no existe este problema ya que no se van a hacer desplazamientos con ellos, y su entrada ED se fija arbitrariamente a un valor determinado, por ejemplo 0. El registro A tiene que poder recibir informacin desde el bus (paso 2 del algoritmo) y desde la salida de la UAL (pasos 7 y 8 del algoritmo). Al
llegarle informacin desde dos lugares distintos es necesario colocar un multiplexor en la entrada para seleccionar cul de los dos debe ser cargado en el registro. El registro A debe entregar su contenido a la UAL y al bus. Su salida tiene que estar conectada con ambos, pero para la conexin al bus es necesario colocar un circuito triestado para evitar que este registro enve continuamente su salida al bus. Si no se colocara este circuito triestado se produciran continuos conflictos elctricos en el bus que lo haran totalmente inservible (ver Captulo 1 del libro de teora). Al registro B le llega informacin del Bus y entrega su contenido a la UAL. El registro C recibe informacin desde el Bus y el algoritmo necesita consultar el valor de sus dos bits menos significativos para comprobar si son iguales o distintos. Esta condicin se genera directamente mediante la funcin lgica C(3) C(5). En el algoritmo hay un bucle que se ejecutar un total de 4 veces, desde 0 hasta 3. Para controlar esto se utilizamos el contador mdulo 8. La forma de detectar el final de la cuenta depende del diagrama de estados que se emplee. En esta solucin se propone incrementar el contador nada mas entrar en el bucle y comprobar la condicin de finalizacin en el mismo estado en el que se desplaza el registro C. Si se hace as, la Unidad de Control tiene que comprobar cundo el contador ha llegado a 4, es decir, simplemente tiene que saber si el bit ms significativo del contador es 1 o es 0. Si es 1 el bucle ha llegado al final y se salta al estado S6 en el diagrama de estados de la Figura 97-2-3. Los registros de desplazamiento de 8 bits y el contador mdulo-8 tienen una entrada de reloj Ck. En el diseo de la Unidad de Procesamiento habr que conectar todas las entradas de reloj con la que llega a la Unidad de Control para conseguir una sincronizacin correcta en todas las acciones de ambas. Un posible diseo para la Unidad de Procesamiento pedida, teniendo en cuenta todos estos requisitos , puede ser el mostrado en la Figura 97-2-2. Sobre este diseo conviene hacer una observacin. Los registros A y B slo
c0
c9 C
ED
ED
ED
A UAL
B c0 c1
Contador
2 1 0
c0 c1
c7 c8
s1
Circuito de Control
c0 c1
Unidad de Procesamiento
c9
Unidad de Control
Figura 97-2-2 Diagrama de bloques, puntos de control (c0 a c9) y seales de condicin (s0 y s1) de la Unidad de Procesamiento solicitada
Para completar este diseo, es necesario hacer una breve descripcin del significado de cada una de las entradas de control que gobiernan el funcionamiento de la Unidad de Procesamiento (ver Tabla 97-2-1).
Seal de Control c0 c1 c2 c4 y c3 c6 y c5 c8 y c7 c9
Operacin controlada Entrada de seleccin del multiplexor Cargar A desde la salida del multiplexor Cargar B desde el Bus Cargar C desde el Bus (01), desplazamiento derecha de C (10) o nada (00) Control de la UAL: suma (00), resta (01), producto (10) o divisin (11) Control del contador: nada (00 y 11), reset (01) o incremento (10) Control del circuito triestado: Bus A (1), A aislado del bus (0)
B) Un posible diagrama de estados para la Unidad de Control que gobierne el funcionamiento de la Unidad de Procesamiento de la Figura 97-2-2, es el mostrado en la Figura 97-2-3. La Tabla 97-2-2 da una descripcin detallada de cada uno de los estados junto con las seales de control a activar en cada uno de ellos, y la codificacin de los estados empleada es la mostrada en la Tabla 97-2-3.
s1 S4 S0 S1 S2 S3 s0 s0 S5 s1 s1 s1 S6 S7
Microoperaciones efectuadas A Bus contador 0 B Bus C Bus Ninguna AA-B Desplazar derecha C Incrementar contador AA*B Desplazar derecha C Incrementar contador Bus A Ninguna
S5
S6 S7
c9 Ninguna
A la hora de disear la Unidad de Control utilizando memoria ROM el enunciado indica que se valorar la utilizacin de una memoria de tamao mnimo. Para conseguir este objetivo hay que darse cuenta que en cada estado se consulta, como mximo, una condicin, por lo que sera posible reducir el nmero de palabras de la ROM a la mitad si se selecciona previamente la condicin utilizando un multiplexor. Las entradas de seleccin de este multiplexor pueden ser el mismo estado (seleccin por estado) o un bit adicional almacenado en la memoria ROM (seleccin por campo). Como esta segunda solucin (seleccin por campo) requiere de una memoria ROM de tamao mayor al tener que almacenar ese bit adicional por estado, se opta por la primera (seleccin por estado) aunque requiere del multiplexor mencionado.
Estado S0 S1 S2 S3 S4 S5 S6 S7
La Figura 97-2-4 muestra la estructura de la Unidad de Control pedida en el enunciado del problema. Tiene 4 lneas de direcciones (1 para la condicin y las otras 3 para el valor del estado actual) y una logintud de palabra de 13 bits (3 para el estado siguiente y 10 para las seales de control), por tanto tiene una tamao de 24 palabras x 13 bits por palabra.
NOTA Un error muy frecuente a la hora de resolver el problema es la utilizacin de puntos de control en vez de las entradas de control de los mdulos empleados (registros de desplazamiento, contadores, etc). Tal y como se indica en las pginas 321 a 323 del libro de teora, Los puntos de control se realizan mediante circuitos cuya naturaleza depende de las caractersticas de los dispositivos conectados a los caminos de datos sobre los que acta .
0 1
s0 s1 s1
2 3 4 5 6 7
MUX
A0 A1 A2 ROM 16 palabras 13 bits p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Estado futuro Inicio Reloj Cl Registro c9 c8 c7 c6 c5 c4 c3 c2 c1 c0
0 1 2
A3
Estado presente Q2 Q1 Q0
S0 S1 S2 S3 S4 S5 S6 S7
SOLUCIN PROBLEMA 5 - 12
Disee un circuito digital (Unidad de Procesamiento + Unidad de Control) que realice el algoritmo que se muestra en el recuadro. Para ello siga los siguientes apartados: A)Disee razonadamente la Unidad de Procesamiento, utilizando los recursos que considere necesarios. B) Describa todas las seales de control de la Unidad de Procesamiento diseada en A). C) Dibuje el diagrama de estados de una Unidad de Control que realice el algoritmo propuesto. Describa, en forma de tabla, las microoperaciones y las seales de control activadas en cada unos de los estados. D)Disee razonadamente la Unidad de Control, empleando cualquiera de las tcnicas de diseo estudiadas a lo largo del curso. Indique claramente todos los pasos seguidos. Solucin A) A la vista del algoritmo propuesto, la Unidad de Procesamiento que se disee ha de ser capaz de: 1) Transferir el contenido del bus de entrada a ambos registros (X y A). 2) Incrementar/decrementar el contenido del registro A. 3) Transferir el contenido del registro A al bus de salida. 4) Comparar el contenido del registro X con 255 (11111111). Para realizar la Unidad de Procesamiento utilizaremos registros convencionales, sin capacidad de incremento/decremento, por lo que har falta un circuito combinacional adicional capaz de realizar esta operacin. Bajo estas consideraciones la Figura 97-3-1 muestra la posible realizacin de una Unidad de Procesamiento que puede ejecutar el algortimo propuesto. Se ha utilizado un sumador/restador binario convencional para las operaciones de incremento/decremento.
Bus-Entrada
c0
0 MUX
c1 CK
LD >
A 1
c4 CK
LD > 8
c2
S/R
0 s0 (X=255)
c3 8 Bus-Salida
Se ha supuesto que los registros son disparados por el flanco de bajada de la seal de reloj CK por lo que no se producirn problemas a la hora de realimentar la salida del sumador/restador a la entrada del registro A. Tambin se supone que las operaciones de suma y resta no producen problemas de desbordamiento. Para evitar que la salida del registro A se vuelque en el bus de salida indebidamente se ha utilizado una puerta triestado gobernada por la seal de control c3. La puerta lgica AND compara la salida del registro X con 255: si todos sus bits estn a 1 el valor de X es 255 y se genera la seal de condicin s0.
B) Seal c0 c1 c2 c3 c4 Descripcin Selecciona una de las entradas del multiplexor Carga del registro A Suma (1) o resta (0) Salida del registro A al bus de salida Carga del registro X
Tabla 97-3-1 Descripcin de las seales de control utilizadas
C) S0 S1 s0 S3
Figura 97-3-2 Diagrama de estados
s0
S2 S4 S5
Estado S0 S1 S2 S3
Estado S4 S5
D) Utilizaremos la tcnica de la Unidad de Control cableada con biestables tipo D. (Un ejercicio muy recomendable que puede realizar el alumno es repetir este apartado utilizando otras tcnicas de diseo, comparando las caractersticas y dificultad de cada una de ellas.) Ya que hay 6 estados harn falta 3 biestables tipo D. Una posible codificacin de los estados es la mostrada en la Tabla 97-3-3. Estado S0 S1 S2 S3 S4 S5 Q2Q1Q0 000 001 010 011 100 101
Del diagrama de estados de la Figura 97-3-2 y la codificacin elegida en la Tabla 97-3-3 se obtiene directamente la tabla de transicin de estados (Tabla 97-3-4), y a partir de ella las funciones lgicas de las entradas de los biestables mediante mapas de Karnaugh.
Prx. estado Q2Q1Q0 000 010 011 100 100 101 101
Q1Q0 00 s 0Q 2 00 0 D2 01 1 11 1 10 0
01 0 1 1 0
11 1 X X 1
10 1 X X 1
Q1Q0 00 s 0Q 2 00 0 D1 01 0 11 0 10 0
01 1 0 0 1
11 0 X X 0
10 0 X X 0
Q1Q0 00 s 0Q 2 00 0 D0 01 1 11 1 10 0
01 1 1 1 0
11 0 X X 0
10 0 X X 0
D2=Q2+Q1;
D1=Q2Q1Q0;
D0=Q2+s0Q1Q0.
A partir de aqu se construye fcilmente la Unidad de Control siguiendo la tcnica de diseo correspondiente (Figura 97-3-3). Para general las seales de control se puede utilizar un decodificador, a partir de la codificacin del estado Q2Q1Q0.
Q2 Q1 CK Q2 Q1 Q0
D2
Q2 1
> Cl Q2
Inicio D1 Q1 H 7 6 2 5 4 1 3 2 0 1 0 Decodificador
CK
> Cl Q1
Inicio
c3 c0,c1 c0,c1,c2 c1 c4
s0 Q1 Q0
Q2 CK
D0
Q0
> Cl Q0
SOLUCIN PROBLEMA 5 - 15
!74- 02,
$059 02-70
El siguiente algoritmo describe una determinada operacin de un sistema digital. A) (2 puntos) Disear la Unidad de Procesamiento que permita realizar este algoritmo utilizando los mdulos de la Figura 1: registros de desplazamiento de 8 bits, una UAL con dos entradas de 8 bits cada una, un contador mdulo-8 y circuitos triestado de conexin unidireccional con control de 8 bits; adems de puertas lgicas y los mdulos combinacionales (MUX, DMUX, codificadores y decodificadores) que considere necesarios. Debe tener en cuenta que al bus vuelcan datos mltiples dispositivos. B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando un elemento de memoria tipo D por estado. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin. 1: Declaracin: A[8], B[8], Cont[3]; 2: A Bus; 3: B 0; 4: for Cont = 0 to 7 do 5: if A[0] es 1 then 6: B B + 1; 7: endif; 8: Despl.CerradoDcha(A); 9: endfor 10: Bus ; 11: Parar;
Ck ED
A UAL R
B c0
Ck Contador Q c0 c1
E c0 S
c0 Reg. Desp. c1 EI Q
$4 :. O3
a) En primer lugar se debe analizar las operaciones que debe realizar el algoritmo para ver qu recursos se necesitan y si stos se encuentran entre los que se ofrecen en el enunciado:
W
Un registro A que debe tener la capacidad de carga en paralelo y que sea capaz de realizar un desplazamiento cerrado a la derecha. En este caso se dispone de un registro de desplazamiento simple que permite realizar
operaciones de carga y desplazamiento (a la derecha y a la izquierda). Para conseguir que estas operaciones de desplazamiento sean cerradas se debe conectar el bit ms o menos significativo (A[7] o A[0]) con la entrada serie que le corresponda (ED o EI). En este caso la operacin es hacia la derecha con lo que en la ruta de datos se debe conectar el bit A[0] con la entrada EI del registro A.
W Un registro B que debe tener la capacidad de carga en paralelo y ser capaz de inicializarse a 0. En este caso el registro no dispone de una seal de reset pero se puede conseguir este efecto cargando el valor 0 (8 bits). W Una UAL capaz de sumar 1 a un nmero de ocho bits. Como la propuesta UAL puede realizar las operaciones A+B y A-B, fijando una de las entradas al valor constante 1 se puede realizar la operacin. Adems, puesto que siempre se va a realizar la operacin de suma se puede dejar el valor de la entrada de control c 0 de la UAL siempre al valor lgico 0. W Un multiplexor de dos entradas para seleccionar el valor a cargar en el registro B, ya que se debe poder cargar desde la salida de la UAL o de un valor fijo igual a 0. W 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. W Un circuito de deteccin del estado 7 del contador que genere la seal de condicin para el fin de bucle. Para ello se puede usar una puerta AND de tres entradas conectadas a los bits de estado del contador Q2,Q1y Q0. W Una puerta triestado que conecte la salida del registro B con el bus de datos.
Del anlisis se desprende que es posible implementar la ruta de datos teniendo en cuenta que se deben generar las seales de condicin adecuadas hacia la unidad de control:
W s0, seal de condicin correspondiente a A[0] = 1. Se genera conectando la salida A[0] del registro A a la entrada de condicin s0 de la unidad de control. W s1, seal de condicin de fin de bucle. Se genera conectando la salida de la puerta AND a la entrada de condicin s1 de la unidad de control.
Por otra parte, la Unidad de Control recibe una seal externa que arranca el algoritmo:
Bus 0 0 1 MUX c0
c1
0 0
ED EI
Reg. desp. B
c0 c1
c4 c5 1
ED EI
Reg. desp.
c0 c1
c2 c3
A[0] A UAL B c 0 0
Contador 2 1 0
c0 c1
s1(=1 Contador es 7)
Circuito de Control
c0 c1
Unidad de Procesamiento
c7 Unidad de Control
Seal de Control c0 c1 c3 y c2 c5 y c4 c7 y c6
Operacin controlada Puerta triestado que conecta la salida de B con el Bus: Nada (0) y Conexin (1) Seleccin MUX entrada de B: UAL (0) y valor 0 (1) Control registro A: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11) Control registro B: Nada (00), Des. Dcha. (01), Des. Izq. (10) y Carga (11) Contador: Nada (00), Reset (01), Incrementar (10) y Nada (11)
b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se disea el diagrama de transicin de estados de la Figura 3, donde el significado detallado de cada uno de los estados propuestos viene dado por la Tabla 2.
Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el enunciado del problema utilizando la Unidad de Procesamiento diseada en el apartado anterior. Se puede comprobar, por ejemplo, que ejecuta el bucle for 8 veces ya que en el estado S4 consulta por la condicin de finalizacin y, en caso de no verificarse, incrementa el contador y realiza otra iteracin. En total el bucle se realiza para todos los valores del contador, desde el 0 hasta el 7.
Inicio s0 S5 s1 S0 S1 S2 s0 S3 S4 s1 S6
Microoperaciones efectuadas Ninguna A Bus B0 Reset Cont Ninguna BB+1 Despl.CerradoDcha(A) Incrementar Cont Bus B
Seales de control a activar Ninguna c3, c2 c1, c5, c4 (c7=0), c6 Ninguna (c1=0), c5, c4 (c3=0), c2 c7, (c6=0) c0
Para implementar esta Unidad de Control vamos a emplear el mtodo de los elementos de retardo. El diseo correspondiente se muestra en la Figura 4. En la parte izquierda de la Figura 4 se ha vuelto a colocar el diagrama de transicin de estados de forma que sirva de ayuda y complemento al diseo lgico de la Unidad de Control.
10
S1
s0
S2
s0= 0
S2
s0= 1
S3
S3
c4, c5
S4 s = 1 1
s1= 0 s1
S4
c2
S5
S5
c7
S6 S6
c0
Reloj Clear
SOLUCIN PROBLEMA 5 - 16
dispositivos y evitar en su diseo posibles conflictos elctricos entre ellos. B) (2 puntos) Disear la Unidad de Control que ejecute este algoritmo con la Unidad de Procesamiento diseada en el apartado A) empleando la tcnica de los elementos de retardo. Detalle y explique claramente todos y cada uno de los pasos seguidos hasta obtener la solucin. 1: Declaracin: A[8], B[8], Cont[4]; Bus[8] 2: A Bus; 3: B Bus, Cont = 0; 4: while Cont 14 5: if A es multiplo de 4 then 6: A A - B, Cont = (Cont +2) mod 16; 7: else 8: B B + A; 9: endif; 10: endwhile; 11: Bus B; 12: Bus A; 13: Parar;
Ck ED
E c0 c1
A UAL R
c0 0 1
B c0
Ck Contador Q c0 c1
E c0 S c0 0 1
S E
Reg. Desp. EI
c1c0 00 01 10 11
Q Q(t+1)
Q(t) D. Dcha. D. Izq. Carga
R A+B A-B
Solucin
a) En primer lugar se deben analizar las operaciones a realizar para ver qu recursos se necesitan y si stos se encuentran disponibles:
Sendos registros A y B de 8 bits que deben poder cargarse desde el bus y volcar su contenido al bus. As mismo, deben poder cargarse desde la salida de la UAL. Como registros nos ofrece el enunciado registros de desplazamiento de 8 bits con capacidad de carga en paralelo. stos son los registros que habr que utilizar, aunque su capacidad de desplazamiento no se utilizar. Para seleccionar el origen de datos de los registros se utilizarn multiplexores.
Los registros volcarn su contenido al bus a travs de sendas puertas triestado, para evitar problemas elctricos. Un contador mdulo-16 (de 4 bits de longitud de palabra por tanto). Aunque en el algoritmo propuesto la cuenta se ha de incrementar en 2 en cada ocasin y el contador de que se dispone slo puede contar de 1 en 1, esto no supone nungn problema ya que bastar con incrementar 1 dos veces seguidas. Del anlisis del algoritmo se sigue que harn falta dos seales de condicin: s0, que indique si el valor del registro A es mltiplo de 4. Para ello veamos cmo son los nmeros mltiplos de 4:
A7 4: 8: 12: 16: 20: 0 0 0 0 0 A6 0 0 0 0 0 A5 0 0 0 0 0 A4 0 0 0 1 1 A3 0 1 1 0 0 A2 1 0 1 0 1 A1 0 0 0 0 0 A0 0 0 0 0 0
Tabla 1: Los mltiplos de 4 Es decir, son todos ellos nmeros acabados en 00. Si se admite el 0 como mltiplo de 4 (este problema se resolver aqu adoptando este criterio) entonces se tiene que s0 = A1 A0. Si se considera que 0 no es mltiplo de 4 entonces alguno de los bits ms significativos ha de ser distinto de 0: s0 = (A7 + A6 + A5 + A4 + A3 + A2) A1 A0. Otra manera de ver cmo son los nmeros mltiplos de 4 es la siguiente: Un nmero binario anan-1an-2...a1a0 tiene el valor decimal an2n + an-12n-1 + an-22n-2 + ... + a121 + a020. Para dividir este nmero entre 4 lo multiplicamos por 2-2, con lo que resulta: an2n-2 + an-12n-3 + an-22n-4 + ... + a220 + a12-1 + a02-2. Si el nmero inicial es divisible entre 4, la parte decimal del cociente de la divisin debe ser 0. En este caso, la parte fraccionaria es a12-1 + a02-2, pues 2-1 = 0.5 y 2-2 = 0.25. Ya que a1 y a0 slo pueden tomar los valores 0 1 ( 0), la nica forma de que la parte fraccionaria sea 0 es que a1 = a0 = 0. s1, que indica si el contador vale 14. Con cuatro dgitos binarios, 14 se expresa como 1 1 1 0, luego esta seal de condicin se realizar fcilmente con una puerta AND y un inversor. Un posible diseo para la Unidad de Procesamiento, que cumple con todos estos requisitos, es el que se muestra en la Figura 3. sta no es la nica Unidad de Procesamiento capaz de realizar el algoritmo pedido. Por ejemplo, dado que los registros A y B no se van a cargar simultneamente, es posible hacer uso de un nico multiplexor. As mismo, dado
que la capacidad de desplazamiento de los registros no se va a utilizar, y ya que 11 implica carga en paralelo y 00 implica no-operacin, es posible gobernar cada uno de los registros con una nica seal de control conectada simultneamente a sus entradas c0 y c1. La Figura 4 muestra cmo se realizaran estas modificaciones. (Este diseo, al hacer uso de menos componentes y menos seales de control, es ms econmico.) En lo que sigue, el problema se resolver haciendo uso del diseo de la Figura 3.
BUS 8
c9
c0
0 1 MUX
c1
0 1 MUX
c10
ED EI
c0 Reg. desp. A c 1 8
c2 c3
ED EI
c0 Reg. desp. B c 1
c4 c5
c0 c1
c6 c7
A1
A0 A UAL B c8
s0
s1 Unidad de Procesamiento c0 c1
Circuito de Control
BUS
c0 Reloj ED EI
0 1 MUX
c0 Reg. desp. A c 1 8
c2
ED EI
c0 Reg. desp. B c 1
c4
A UAL
B c8
Figura 4: Fragmento de la Unidad de Procesamiento, en el que se muestran algunas posibles modificaciones en el diseo
b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se disea el diagrama de transicin de estados de la Figura 5, donde el significado detallado de cada uno de los estados propuestos viene dado por la Tabla 2. Obsrvese que esta Unidad de Control se ha diseado como una mquina de Moore. (Dada la sencillez del algoritmo propuesto, se ha obtenido directamente el diagrama de estados a partir de ste, sin necesidad de pasar por el diagrama ASM.)
s1
Inicio S0 Inicio S1 S2 S3
s1s0
S4
S5
S7
S8
s1s 0
S6
10
Microoperaciones efectuadas Ninguna A Bus B Bus Cont 0 Ninguna AA-B Cont (Cont + 1) mod 16 Cont (Cont + 1) mod 16 BB+A Bus B Bus A
Seales de control a activar Ninguna (c0=0), c2, c3 (c1=0), c4, c5 c6, c 7 Ninguna c0, c 2, c3, c8 (c6=0), c7 (c6=0), c7 c1, c 4, c5, (c8=0) c10 c9
Este diagrama de transicin de estados cumple todos los requisitos para ejecutar el algoritmo propuesto en el enunciado del problema utilizando la Unidad de Procesamiento diseada en el apartado anterior. Se puede comprobar, por ejemplo, que ejecuta el bucle while mientras el valor del contador sea distinto de 14, ya que de verificarse esta condicin ( s1 = 1) del estado S3 se salta al estado S 7. En caso contrario, en S3 se comprueba si A es mltiplo de 4 (s0) o no (s0) y se salta al estado correspondiente. Obsrvese que, como se coment en el apartado anterior, el contador no se puede incrementar en 2 en un nico estado, por lo que ha habido que incrementarlo en una unidad dos veces consecutivas, en los estados S 4 y S5. La Unidad de Control se realiza utilizando la tcnica de los elementos de retardo, segn pide el enunciado, asignando un biestable tipo D a cada estado, tal como se muestra en la Figura 6. Para evaluar las condiciones en S 3, en lugar de utilizar un demultiplexor de dos entradas de control ( s1 y s0) y cuatro salidas se ha preferido utilizar, de manera equivalente, dos multiplexores colocados en cascada, cada uno de ellos con una nica entrada de control y dos salidas. Tambin se muestra cmo se forman las distintas seales de control a partir de las salidas de los biestables tipo D [ver las pginas 304 a 307 del texto base de teora]. Obsrvese que los bloques de decisin corresponden a demultiplexores, segn se muestra en la Figura 7 [ver las pginas 304 a 307 del texto base de teora].
11
Inicio
S0 Inicio Inicio 0
S0
Demux 1
Set
S1
S1 S2
S2
s1s0
S3
s1 s1 0 s0 0
S3
Demux 1 1
s1s0
S4
S4 S5 S6 S7 S8
S5
S6
S7
S8 CK
c9
Clear
c0
c1
c2
c3
c4
c5
c6
c7
c8
c9
c10
Figura 6: Unidad de Control mediante elementos de retardo (derecha); se muestra nuevamente el diagrama de estados (izquierda) para ilustrar el alto grado de paralelismo que existe entre ste y la realizacin mediante elementos de retardo
12
Salida 0
Salida 1
Salida 0 Salida 1
Salida 0
Salida 1
Figura 7: Bloque de decisin (izquierda) visto como un demultiplexor (centro) y su realizacin equivalente con puertas lgicas (derecha)
SOLUCIN PROBLEMA 5 - 17
Ck
ED EI
c1c0 00 01 10 11
E c0 c1
c0 0 1
A UAL R
B c0
Ck
Reg. Desp. Q
Q(t+1) Q(t) Des. Dcha. Des. Izq. Carga
Contador Q
c0 c1
S
c0 0 1
c0
R A+B A-B
c1c0 00 01 10 11
S E
Solucin
a) Del anlisis de las operaciones del algoritmo propuesto se puede concluir que: