Вы находитесь на странице: 1из 304

COLECCIN PROBLEMAS ESTRUCTURA Y TECNOLOGA DE COMPUTADORES II INFORMTICA SISTEMAS Y GESTIN

DELEGACIN DE ALUMNOS CENTRO ASOCIADO DE BALEARES

COLECCIN PROBLEMAS ESTRUCTURA Y TECNOLOGA COPUTADORES II

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

PROBLEMAS TEMA 1: Estructuras de interconexin de un computador


Problemas propuestos en examen 1.1 Una CPU que emplea un tamao de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato nico compuesto por un campo de 5 bits, para el cdigo de operacin, y otro campo de 11 bits para los operandos. Todos los 16 cdigos de operacin comienzan por un 0 y, por tanto, van del 00000 al 01111. Indicar si las siguientes afirmaciones son verdaderas o falsas I. Si en una direccin de memoria nos encontramos el valor 0011010110001010, necesariamente es una instruccin mquina. II. Si en una direccin de memoria nos encontramos el valor 1011010110001010, necesariamente es un dato.

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

1.7 Indique si las siguientes afirmaciones son verdaderas. En un bus con arbitraje distribuido: I. La 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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

PROBLEMAS TEMA 2: Unidad de memoria


Problemas propuestos en examen 2.1 Una memora cach asociativa por conjuntos consta de 16 (24) conjuntos con 4 particiones por conjunto. La memoria principal tiene una capacidad de 1M (220) palabras dividida en bloques de 128 (27) palabras. A la direccin de memoria principal, expresada en binario, 10100001100100110000 Qu conjunto le corresponde (expresarlo en decimal) ?. 2.2 Un computador tiene una unidad de memoria de 2M (221) palabras y una memoria cach de 1K (210) palabras con un tamao de particin de 64 (26) palabras. Suponer que se hace una referencia a la direccin de memoria principal, expresada en binario, 000000001100100110000. a) Si la memoria cach utiliza correspondencia directa, En qu particin de la memoria cach sera posible encontrar esa direccin de memoria principal?. Qu etiqueta habra que buscar en esa particin para saber si esa direccin se encuentra en la memoria cach? b) Si la memoria cach utiliza correspondencia totalmente asociativa, qu etiqueta habra que buscar para saber si esa direccin se encuentra en la memoria cach?

2.3 Un computador tiene una unidad de memoria de 512 (29) palabras y una memoria cach de 32 (25) palabras con un 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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

2.7 Un computador tiene una unidad de memoria de 4096 palabras y una memoria cach de 64 palabras. 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.?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

2.20 El siguiente diagrama representa una memoria asociativa y su contenido. A la vista de los valores 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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

2.46 Con el objetivo de acercar la velocidad de la unidad de memoria de un computador a la velocidad 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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

PROBLEMAS TEMA 3: Unidad de Entrada/Salida


Problemas propuestos en examen 3.1 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 2 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 500 Kbytes/seg, y las de cinta de 150 Kbytes/seg. Calcular la mxima velocidad de transferencia agregada a este sistema. 3.2 Un computador dispone de un canal selector que controla 2 unidades de disco y 2 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de 106 bytes/seg., y las de cinta de 105 bytes/seg. Si para la transferencia de un byte del canal selector a memoria principal se utiliza el bus del sistema durante 10 nseg., qu porcentaje mximo de tiempo estara ocupado el bus del sistema en una transferencia de datos a travs de este canal selector?. 3.3 Se dispone de un computador que funciona a una velocidad de 108 ciclos por segundo y en el que, en promedio, una instruccin emplea 10 ciclos mquina y cada operacin de lectura o escritura de memoria tarda 5 ciclos mquina. Determinar la mxima velocidad de transferencia de datos si en este sistema se emplea DMA con estrategia de transferencia por rfagas. 3.4 Un computador con 13 lneas de direcciones tiene una memoria de 212 palabras y utiliza entrada/salida localizada en memoria. a) Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno ocupa una sola direccin? b) Cul es el nmero mximo de perifricos que pueden conectarse, suponiendo que cada uno ocupa 8 direcciones? 3.5 Sea una UCP con 4 lneas de interrupcin PI3, PI2, PI1 y PI0 de las cuales son enmascarables las tres primeras lneas mediante 3 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 e i0. Se supone que se producen 4 peticiones de interrupcin en este orden : PI3,PI2, PI0 y PI1. Teniendo en cuenta que las tres ltimas se producen mientras se est ejecutando el programa de servicio de PI3, En qu orden se tratan las interrupciones ?

3.6 Un controlador de DMA est transmitiendo palabras a memoria mediante la estrategia de robo de ciclos. Cuando la UCP dispone en exclusiva del bus las instrucciones emplean, en promedio, 4 ciclos de reloj en ser ejecutadas, aunque en 2 de ellos no requiere el acceso al bus. Si la frecuencia de reloj del computador es de 200106 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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

3.8 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 5 unidades 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 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 200106 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 5106 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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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 5106 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?.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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)

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

3.36 En un sistema cuando la UCP dispone en exclusiva del bus las instrucciones emplean 3 ciclos de 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?.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

PROBLEMAS TEMA 4: Unidad Aritmtico Lgica


Problemas propuestos en examen 4.1 Se desea realizar una Unidad Aritmtico Lgica que realice dos operaciones, suma y comparacin de dos nmeros X (x2x1x0) e Y (y2y1y0) de 3 bits cada uno, siendo su salida S (s3s2s1s0). x 2 x 1 x0 c y2 y 1 y0

UAL

s3 El funcionamiento de la unidad viene descrito por:


c = 0 : suma c = 1 : comparacin

s2

s1

s0

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

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

4.11 Indicar cuales de las siguientes afirmaciones son ciertas. En un sumador binario completo (SBC) 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:

Seal de control c1c0 = 00 : suma c1c0 = 01 : resta c1c0 = 10 : comparacin

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

4.22 Un circuito de aceleracin de arrastres (CAA) de 3 bits tiene las siguientes entradas: g g 1g 0 2 (generacin de acarreo), p2 p 1p 0 (propagacin de acarreo) y c (acarreo de entrada); y las siguientes -1 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

Figura 1: Mdulo UAL

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

B) C1 y S1 , respectivamente. D) Ninguna de las anteriores.

4.32 Indique si las siguientes afirmaciones son verdaderas: I. La complejidad de un sumador binario serie crece con el 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 x3x2x1x0 , y otro de 4 bits: 4 Y=y3y 2 y 1y 0. Utilizando comparadores de un bit se compara cada pareja de bits, x con y i , i=0...3, i 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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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 ( gico-Derecha-Cerrado-Simple). Adems, el circuito debe permitir la carga en L 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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2002-2003

PROBLEMAS TEMA 5: Diseo de transferencia entre registros


Problemas propuestos en examen 5.1 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. Indicar cual de las siguientes afirmaciones es cierta : Si en el diseo interesa minimizar, sobre todo, el tamao del multiplexor a utilizar, se empleara. I. Un MUX con seleccin por estado. II. Un MUX con seleccin por campo. 5.2 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 campo para disear esta Unidad de Control, explicar razonadamente el tamao del registro, del multiplexor y de la memoria ROM que sera necesario utilizar. 5.3 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 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) 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[3]; Bus[8] 2: A Bus; 3: B Bus, Cont=0; 4: while Cont 7 5: if A es par then 6: A A B, Cont = (Cont +1) mod 8; 7: else 8: B B + A, Cont = (Cont -1) mod 8; 9: endif; 10: endwhile; 11: Bus B; 12: Bus A; 13: Parar;

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

Q(t+1) Q(t) Des. Dcha. Des. Izq. Carga

c0 0 1

R A+B A-B

c1c0 00 01 10 11

Q(t+1) Q(t) Q(t) -1 mod 8 Q(t)+1 mod 8 0

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Q(t+1) Q(t) 0 Q(t)+1 mod 8 Carga

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Q(t+1) Nada Carga Des. Dcha. Nada

c1c0 00 01 10 00

R A+B A-B A*B A/B

c1c0 00 01 10 11

Q(t+1) Q(t) 0 Q(t)+1 mod 8 Q(t)

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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: ABus; 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)

Q(t+1) Q(t) 0 Q(t)+1 mod 8 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-SalidaA ; 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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Q(t+1) Q(t) 0 Q(t)-1 mod 8 Q(t)

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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: endif; 10: endwhile; 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

Q(t+1) Q(t) Q(t)-1 mod 16 Q(t)+1 mod 16 0)

Figura 2: Mdulos secuenciales del problema con sus tablas de funcionamiento.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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

Q(t+1) Q(t) 0 Q(t)+1 mod 8 Q(t)

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2003-2004

PROBLEMAS TEMA 6: Diseo del procesador


Problemas propuestos en examen 6.1 Para la UCP con bus interno de la Figura 6.1 escribir la secuencia de microoperaciones que se necesitan para sumar un nmero con el acumulador cuando el nmero es: a) Un operando inmediato. b) Un operando con direccionamiento directo. c) Un operando con direccionamiento indirecto.
Lneas de datos Unidad de Control Lneas de direccin

RM

RI

RD

CP

Bus interno de la UCP

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2003-2004

RD Entrada 1 c5 c0 Memoria c1 c3 RM c4 c2 CP c8 c6 Acumulador (AC) c9 s0 UAL

c11 c12 c13

c10

c15

c7

RI Reloj s0 Seales de condicin c14

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2003-2004

PROBLEMAS TEMA 7: Microprogramacin


Problemas propuestos en examen 7.1 Un computador utiliza microinstrucciones de formato vertical. El formato tiene 5 subcampos codificados de 1 bit, 5 subcampos codificados de 3 bits y 3 subcampos codificados de 4 bits. Cul es el nmero mximo de seales de control que puede tener este computador? 7.2 Un computador digital tiene 114 seales de control diferentes, siendo 6 de ellas mutuamente excluyentes. Indique si las siguientes afirmaciones son verdaderas: 1) Si se utilizan microinstrucciones de formato vertical el tamao del campo codificado sera de 3 bits. 2) Al existir seales de control mutuamente excluyentes nunca se puede utilizar el formato de microinstruccin horizontal. 7.3 Un computador utiliza microinstrucciones de formato horizontal con direccionamiento explcito. Las microinstrucciones deben gobernar 135 seales de control y codificar un repertorio de 50 instrucciones mquina, para lo cual la Unidad de Control Microprogramada dispone una memoria de control de 2048 palabras. Cuntos bits tiene el campo de direccin de cada microinstruccin? 7.4 Indicar si las siguientes afirmaciones son verdaderas o falsas. Utilizando microinstrucciones con formato vertical: I. Un subcampo de j bits puede especificar un mximo de 2j seales de control. II. Cada seal de control tiene un subcampo independiente de un bit que indica el correspondiente valor de la seal de control. 7.5 Indicar si las siguientes afirmaciones son verdaderas o falsas. En una unidad de control microprogramada: I. El secuenciamiento de las microinstrucciones consiste en obtener la prxima microinstruccin de la memoria de control. II. La ejecucin de la microinstruccin consiste en generar las seales de control necesarias. 7.6 Indicar si las siguientes afirmaciones son verdaderas o falsas. Utilizando microinstrucciones con formato horizontal: I. No se puede ejecutar simultneamente cualquier subconjunto de seales de control. II. Cada seal de control tiene un subcampo independiente de un bit que indica el correspondiente valor de la seal de control. 7.7 Las siguientes afirmaciones son ciertas? I. El formato horizontal de microinstrucciones requiere de memorias de control ms grandes. II. El formato vertical de microinstrucciones tiene las seales de control ya decodificadas. 7.8 Indique la afirmacin verdadera: A) En una unidad de control microprogramada la memoria de control se utiliza para almacenar en ella los contenidos de los registros de la UCP. B) El principal problema de la unidad de control con lgica cableada es la imposibilidad de gestionar saltos a subrutinas al carecer del registro contador de programa. C) Si se quiere minimizar el tamao de la memoria de control de una unidad de control microprogramada debe utilizarse formato vertical. D) Todas las respuestas anteriores son ciertas.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2003-2004

7.9 Un computador microprogramado tiene un total de 132 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

Seleccin de una seal de condicin para la bifurcacin

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.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

Curso 2003-2004

7.13 Una UCP tiene 32 registros internos de 16 bits, una UAL con 16 funciones 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

Bus interno de la UCP

3 RD R0

4 UAL A/L

Figura 7.13: Unidad de Procesamiento de la UCP del problema 7.13 7.14 En una Unidad de Control microprogramada con formato de microinstrucciones vertical, un subcampo que deba especificar 16 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?

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 1: Estructuras de interconexin de un computador


SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

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

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.1


DATOS Tamao de palabra de 16 bits. Repertorio de 16 instrucciones. Formato de instruccin : Campo de 5 bits para el cdigo de operacin. Campo de11 bits para el campo de operandos. Los 16 cdigos de operacin comienzan por un 0 (00000-01111)

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.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.2


DATOS Memoria de 10 mdulos independientes conectados a un mismo bus de memoria. Cada bus ocupa el bus durante el 20% del ciclo de escritura. El 80 % del tiempo de ciclo restante el mdulo almacena el dato internamente. Las operaciones de estos mdulos pueden solaparse.

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

Luego la velocidad de almacenamiento se ve incrementada 5 veces.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.3


DATOS n Computador de Von Neuman

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.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.4


DATOS Memoria de 20 mdulos independientes conectados a un mismo bus de memoria. Cada bus ocupa el bus durante el 25 nseg del ciclo de escritura. Durante los 75 nseg siguientes el mdulo almacena el dato internamente. Las operaciones de estos mdulos pueden solaparse.

tbus =25 nseg

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 =

4( pal ) 4 = 7 = 410 7 ( pal / seg ) 100( nseg ) 10

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.5


Afirmacin I: Es falsa, ya que en la tcnica de multiplexacin en el tiempo se comparten las mismas lneas de un bus, para enviar datos o direcciones, por lo que es imposible mantener en paralelo una direccin y un dato.

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.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.6


DATOS En un Bus se han conectado la memoria principal y cinco discos iguales. Tiempo de ciclo de M p es t c =400nseg. La velocidad de transferencia de cada disco es v T=B (bits/seg). La longitud de una palabra es de 32 bits. Cada transmisin sobre el bus necesita 500 nseg para enviar el dato y las diferentes ordenes del protocolo. Se desea usar un Bus con temporizacin sncrona. En un bus con temporizacin sincrona, todos los dispositivos conectados a l estn funcionando con una frecuencia de reloj fija. Su utilizacin es conveniente cuando los dispositivos que tiene conectados tienen velocidades de transferencia v T muy parecidas ya que si se tienen conectados un grupo heterogneo de dispositivos, con velocidades muy distintas, el bus debe adecuarse al ms lento impidiendo que los ms rpidos empleen todo su potencial.

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 =

1 1 = = 2510 6 ( palabras / seg ) 9 t C 40010

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

palabras bits 7 vT = 2510 6 seg 32 palabra = 810 (bits / seg )


Luego

B vT = 810 7 (bits / seg )

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.7


DATOS Bus con arbitraje distribuido

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

Figura: Bus con arbitraje distribuido

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.

SOLUCION PROBLEMA 1.8


Afirmacin A: Es FALSA. Un bus puede transportar datos, direcciones y tambin seales de control. Afirmacin B: Es VERDADERA. Por ejemplo, en el bus del sistema se encuentran conectados la CPU, la memoria principal y los controladores de E/S, cada uno de estos elementos poseen velocidades distintas. Afirmacin C: Es FALSA, es necesario un mtodo de arbitraje (centralizado o distribuido) para gestionar el uso del bus por parte de los distintos elementos conectados al mismo. Afirmacin D: Es FALSA, ya que es verdadera la afirmacin B.

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.9


DATOS Bus con arbitraje distribuido

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

Figura: Bus con arbitraje distribuido

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

TEMA 1: Estructuras de interconexin de un computador.

Solucin de los problemas

SOLUCION PROBLEMA 1.10


DATOS Instrucciones y datos tienen una longitud de 16 bits. Formato de instruccin 16 bits Cod. Operacin 4 bits Cdigos de operacin: 0011: Ac[M] 0101: M[Ac] 0110: Ac[Ac]+[M] Direccin 12 bits

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

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 2: Unidad de Memoria


SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 2: Unidad de memoria. Solucin de los problemas

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.1


DATOS Memoria cach (M c ) asociativa por conjuntos. q=16 (24 ) conjuntos r= 4 particiones/ conjunto Memoria principal CMp = 1 M (220)palabras K=128 (27) palabras/bloque

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

En segundo lugar se va a calcular el nmero de bloques C de la M c

C = q r = 16 conjuntos 4

bloques = 2 6 bloques en M C conjunto

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

El conjunto de M c al que hace referencia esta direccin es 0010 = 2 10

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.2


DATOS Memoria principal CMp = 2 M (221)palabras Memoria cach CMc = 1 K (210) palabras K=64 (26) palabras/bloque De los datos del enunciado se deduce que el nmero de bloques C de M c es:

210 pal C= 6 = 2 4 bloques 2 pal / bloque


a) La memoria cach utiliza funcin de correspondencia directa. Por lo tanto el formato de una direccin desde el punto de vista de la memoria cach es : n=21 bits Etiqueta Bloque de Mc Palabra

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).

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.3


DATOS CMp = 512 (29) palabras CMc = 32 (25) palabras El tamao de particin es K=8 (23) palabras/bloque La cach est inicialmente vacia.

De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

000 00 0 001 000 00 0 011 000 10 0 001

0 0 4

0 0 0

000 10 0 101 000 01 0 000

4 2

0 0

000 01 0 010 000 00 0 000

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

log 2K= 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 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.4


DATOS Sistema jerrquico de memoria: Memoria Cach M c y Memoria Principal M p Mc: Capacidad 256 palabras y tiempo de acceso t ac =10 nseg M p: Capacidad 1024 Kpalabras y tiempo de acceso tap= 100 nseg Tasa de acierto h=0.9 Cuando se produce un fallo en M c : El sistema tarda t ex=20 nseg adicionales en tratar el fallo. La palabra solicitada es enviada de M p a M c donde es leda por la CPU. El tiempo de acceso medio tam se define como:

t am = h t ga + (1 h) t gf (1)
Donde tga es el tiempo de 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 .

t gf = t ex + t ap + t ac = 20 + 100 + 10 = 130 nseg


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

t am = 0.9 10 + 0 .1 130 = 9 + 13 = 22 nseg

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.5


DATOS CMp = 512 (29) palabras CMc = 32 (25) palabras El tamao de particin es K=8 (23) palabras/bloque La cach est inicialmente vaca. Funcin de correspondencia totalmente asociativa

De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

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

Por otra parte, el nmero de bloques M de la M p.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.6


El primer paso a realizar es tachar las columnas de la memoria asociativa cuyo bit del registro de MASCARA se encuentre a 0. Es decir el argumento que hay que comparar es 0X0X11X0(donde la X significa que ese bit no se compara). 0 1 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

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.7


DATOS CMp = 4096 (212) palabras CMc = 64 (26) palabras K=16 (24) palabras/bloque Cach inicialmente vaca. Funcin de correspondencia directa De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

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

Por otra parte, el nmero de bloques M de la M p.

M=

C Mp K

212 =2 8 = 256 bloques. 24

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

000100 01 0100 000001 00 1000

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

000000 01 0100 010011 10 1100

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.8


Para resolver este problema los pasos a seguir son: 1)Tachar las filas de la memoria asociativa cuyo bit del registro de marca est a 0. 2)Tachar las columnas de la matriz asociativa cuyo bit del registro de mscara est a 0. Como se muestra en la figura : ? 1 ? 0 ? 0 ? 1 ? 0 ? 1 ? 0 ? 0 ARGUMENTO MASCARA

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

Luego la solucin es: 2 argumentos.

12

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.9


DATOS CMp = 4096 (212) palabras CMc = 128 (27) palabras K=16 (24) palabras/bloque Cach inicialmente vaca. Funcin de correspondencia totalmente asociativa De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

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

Por otra parte, el nmero de bloques M de la M p.

M=

C Mp K

212 =2 8 = 256 bloques. 24

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

Afirmacin I: Es FALSA, ya que se producen 4 fallos.

13

TEMA 2: Unidad de memoria.

Solucin de los problemas

Afirmacin II: Direcciones ledas N de bloque (j) de la Mp al que hace referencia la direccin. 103 Fallo o acierto

0110 0111 0100

Fallo se carga j=103 en i=4 que inicialmente est vaca

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.

SOLUCION PROBLEMA 2.10


DATOS n =16 bits CMc = 210 palabras K=16 (24) palabras/bloque Funcin de correspondencia asociativa por conjuntos. r= 4 bloques/conjunto De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

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

Por otra parte, conocido C es posible calcular el nmero de conjuntos q de la M C

q=

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

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

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

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.11


Una posible solucin a este problema consiste en ir probando uno a uno con los registros de mscara dados para verificar si producen el registro de Marca especificado, con lo que sera resolver 5 veces un problema como el problema 2.6 1) La Mscara1 si que produce el registro de Marca especificado.
0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 ARGUMENTO MSCARA 1 0 1 0 0 1

MARCA

2) La Mscara 2 no produce el registro de Marca especificado


0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 ARGUMENTO MSCARA 2 0 1 1 0 1

MARCA

3) La Mscara 3 si produce el registro de Marca especificado


0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 ARGUMENTO MSCARA 3 0 1 0 0 1

MARCA

3) La Mscara 4 si produce el registro de Marca especificado


0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 ARGUMENTO MSCARA 4 0 1 0 0 1

MARCA

15

TEMA 2: Unidad de memoria.

Solucin de los problemas

3) La Mscara 5 si produce el registro de Marca especificado


0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 ARGUMENTO MSCARA 5 0 0 0 0 1

MARCA

Luego la solucin es 3 registros de mscara producen el registro de Marca especificado.

SOLUCION PROBLEMA 2.12


DATOS Memoria de acceso aleatorio tA= 80 nseg. tC= 100 nseg El tiempo de acceso tA se define como el tiempo necesario para leer o escribir un determinado nmero de bits. O tambin como el tiempo transcurrido desde que se solicita una informacin hasta que se dispone de ella. Por otro lado el tiempo de ciclo, tC, se define como el tiempo transcurrido entre dos lecturas consecutivas en memoria. Y limitar la frecuencia de acceso en una memoria de acceso aleatorio. Por definicin, la frecuencia de acceso fA o velocidad de transferencia v T se define como el nmero de palabras que se pueden leer o escribir en memoria por unidad de tiempo.

fA =
Luego sustituyendo, se obtiene:

1 tC

fA =

1 1 = 7 = 10 7 seg 1 9 10010 10

16

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.13


DATOS Se desea disear un mdulo de memoria de capacidad 256 palabras de 4 bits Con el dato que proporcionan en el enunciado es posible deducir los n bits necesarios para codificar todas las posiciones (palabras) de memoria, es decir, conocer cual es la anchura de una direccin de memoria. Puesto que 256=28 n=log228= 8 bits. Anlisis de la Afirmacin I Si se utiliza organizacin 2D (ver libro de teora pags.62-64), se requiere un decodificar que reciba los n=8 bits del bus de direccin y genere las 2n=28 posiciones de memoria, es decir que posea 8 entradas y 28 salidas. Luego la afirmacin I es verdadera. decodificador

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

Dato Dato de salida de entrada

17

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.14


DATOS Nmero total de accesos NT=230 Tasa de aciertos h=75 % La definicin de tasa de fallos (1- h) es:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.15


DATOS CMp = 256 (28) palabras CMc = 32 (25) palabras K=8 (23) palabras/bloque Cach inicialmente vaca. Reemplazamiento FIFO Funcin de correspondencia totalmente asociativa De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

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

Por otra parte, el nmero de bloques M de la M p.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.16


A la hora de calcular el valor del registro de marca slo hay que tener en cuenta las palabras activas, es decir, aquellas cuyo bit de etiqueta est a 1. Luego a la vista del registro de etiqueta las palabras 4 y 5 no se encuentran activas y los bits correspondientes del registro de marca deben ser 0. 1 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 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.17


DATOS CMp = 256 (28) palabras CMc = 32 (25) palabras K=8 (23) palabras/bloque Cach inicialmente vaca. Reemplazamiento FIFO Funcin de correspondencia totalmente asociativa El desarrollo de este problema es exactamente igual que el del Problema 2.15, lo nico que vara es que ahora se considera que se lee adems la direccin 00100 111, que se ha aadido al final de la tabla construida en el Problema 2.15. Direcciones ledas 00000 000 00000 001 00000 011 00100 001 00100 101 00010 000 00010 010 00000 000 00100 111 N de bloque (j) de la Mp al que hace referencia la direccin. 0 0 0 4 4 2 2 0 4 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 Acierto

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.18


DATOS Sistema jerrquico de memoria: Memoria Cach M c y Memoria Principal M p Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso t ac =10 nseg M p: Capacidad 1024 Kpalabras y tiempo de acceso tp= 100 nseg Tasa de acierto h=0.9 Cuando se produce un fallo en M c : Se mueve el dato a la CPU. Simultneamente se mueve el bloque desde la M p a la M c El tiempo de acceso medio tam se define como:

t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de 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:

t gf = max 8 tap , t ap = 8 t ap = 8 100 = 800 nseg

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

t am = 0.9 10 + 0 .1 800 = 9 + 80 = 89 nseg

22

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.19


DATOS Sistema jerrquico de memoria: Memoria Cach M c y Memoria Principal M p Mc: Capacidad 256 palabras, K= 8 pal/ bloque y tiempo de acceso t ca =10 nseg M p: Capacidad 1024 Kpalabras y tiempo de acceso tap= 100 nseg Tasa de acierto h=0.9 Cuando se produce un fallo en M c : Primero se mueve el bloque completo desde M p a M c Despus la CPU lee el dato en la M c El tiempo de acceso medio tam se define como:

t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de 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:

t gf = 8 t ap + t ac = 8 100 + 10 = 810 nseg


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

t am = 0.9 10 + 0 .1 810 = 9 + 81 = 90 nseg

SOLUCION PROBLEMA 2.20


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

23

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.21


DATOS CMp = 4096 (212) palabras CMc = 64 (26) palabras K=16 (24) palabras/bloque Cach inicialmente vaca. Funcin de correspondencia directa. Afirmacin I y Afirmacin II: FALSAS. Cuando se utiliza la funcin de correspondencia directa no tiene sentido hablar de conjuntos.

24

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.22


DATOS Procesador con 12 lneas de direccin A 11A 10....A 0 Para construir su unidad de memoria se dispone de mdulos de 1K =(210) palabras Las lneas ms significativas (A 11-A 10) se utilizan para la seleccin de cada mdulo De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por cada lnea. Por otro lado puesto que se tienen dos lneas A11 y A 10 para seleccionar mdulos de memoria de 1K, el nmero total de mdulos para implementar el mapa de memoria es 22=4 mdulos. En la siguiente tabla se muestra el mdulo de memoria al que se hace referencia en funcin del valor de estas dos lneas. A11 0 0 1 1 A10 0 1 0 1 Mdulo de memoria Mdulo 0 Mdulo 1 Mdulo 2 Mdulo 3

As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:

00XX XXXX XXXX


donde X puede valer 0 o 1. Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:

01XX XXXX XXXX


Las direcciones que hacen referencia al tercer mdulo de memoria (mdulo n 2) son:

10XX XXXX XXXX


Y las direcciones que hacen referencia al cuarto mdulo de memoria (mdulo n 3) son:

11XX XXXX XXXX


En la siguiente tabla aparece la primera direccin (direccin base) y la ltima de cada mdulo de memoria, tanto en binario como en hexadecimal. Mdulo de memoria Direccin de inicio (Direccin Base) mdulo n 0 Direccin final

0000 0000 0000 0011 1111 1111


000 (hexadecimal) 3FF (hexadecimal)

mdulo n 1

0100 0000 0000 0111 1111 1111


400 (hexadecimal) 7FF (hexadecimal)

mdulo n 2

1000 0000 0000 1011 1111 1111


800 (hexadecimal) BFF (hexadecimal)

mdulo n 3

1100 0000 0000 1111 1111 1111


C00 (hexadecimal) FFF (hexadecimal)

La solucin al problema (las direcciones base de cada mdulo) est dada por lo tanto en la tabla anterior.

25

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.23


DATOS Computador con un sistema jerrquico de memoria. El orden de los niveles superiores a los inferiores es: n registros de la CPU ------> Nivel Superior n cach primaria n cach secundaria n memoria principal n discos magnticos -----> Nivel Inferior

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.

SOLUCION PROBLEMA 2.24


DATOS Sistema de memoria cach con correspondencia totalmente asociativa Afirmacin I: Esta afirmacin es Falsa, por el propio funcionamiento de este tipo de funcin de correspondencia, cuando la memoria Cach est llena hay que definir una poltica de reemplazamiento de bloques. Afirmacin II: Esta afirmacin es verdadera

26

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.25


DATOS Procesador con 12 lneas de direccin A 11A 10....A 0 Para construir su unidad de memoria se dispone de mdulos de 1K =(210) palabras Las lneas ms significativas (A 1-A 0) se utilizan para la seleccin de cada mdulo De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por cada lnea. Por otro lado puesto que se tienen dos lneas A 1 y A 0 para seleccionar mdulos de memoria de 1K, el nmero total de mdulos para implementar el mapa de memoria es 22=4 mdulos. En la siguiente tabla se muestra el mdulo de memoria al que se hace referencia en funcin del valor de estas dos lneas.

A1 0 0 1 1

A0 0 1 0 1

Mdulo de memoria Mdulo 0 Mdulo 1 Mdulo 2 Mdulo 3

Mdulo 0 As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:

XXXX XXXX XX00


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

Y Y 0 Y Y 4 Y Y 8 Y Y C
Mdulo 1 Las direcciones que hacen referencia al segundo mdulo de memoria (mdulo n 1) son:

XXXX XXXX XX01


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

Y Y 1 Y Y 5 Y Y 9 Y Y D

27

TEMA 2: Unidad de memoria.

Solucin de los problemas

Mdulo 2 Las direcciones que hacen referencia al tercer mdulo de memoria (mdulo n 2) son:

XXXX XXXX XX10


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

Y Y 2 Y Y 6 Y Y A Y Y E

Modulo 3 Y las direcciones que hacen referencia al cuarto mdulo de memoria (mdulo n 3) son:

XXXX XXXX XX11


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

Y Y 3 Y Y 7 Y Y B Y Y F
Conocidas las direcciones que hacen referencia a cada 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.26


DATOS CMp = 4096 (212) palabras CMc = 64 (26) palabras K=16 (24) palabras/bloque Cach inicialmente vaca. Funcin de correspondencia directa De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 26 = 4 =22 = 4 bloques. K 2

Por otra parte, el nmero de bloques M de la M p.

M=

C Mp K

212 =28 = 256 bloques. 24

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

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

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

000100 01 0100 000001 00 1000

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.27


DATOS M p con 32k palabras de 16 bits/palabra M c asociativa por conjuntos de 4k palabras n r =4 bloques/conjunto n K= 64 palabras/bloque La M c est inicialmente vaca y utiliza el algoritmo FIFO para el reemplazo de bloques. La CPU accede a 4352 palabras de las direcciones 0, 1, 2,...,4351, en orden. Despus repite esta secuencia 9 veces. La M c es 10 veces ms veloz que la M p tap=10t ac

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

log 2K= 6 bits

b) Si el computador no tiene memoria cach todas las palabras se han de leer de la memoria principal. El tiempo necesario para hacerlo ser el tiempo necesario para leer una palabra multiplicado por el numero total de palabras a las que se accede. Como las 4352 palabras se leen un total de 10 veces, el 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

Conjunto i de Mc
0

Contenido particiones (n bloque j de Mp)


64 16 32 48 65 17 33 49 66 18 34 50 67 19 35 51 68 20 36 52

15 15 31 47 63

Tabla 1. Contenido de la memoria cach despus del primer ciclo de lecturas

Conjunto i de Mc
0

Contenido particiones (n bloque j de Mp)


48 64 16 32 49 65 17 33 50 66 18 34 51 67 19 35 4 20 36 52 15 31 47 63

15

Tabla 2. Contenido de la memoria cach despus del segundo ciclo de lecturas

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

t a = (43520 + 248 10 64) t ac = 202240 t ac seg

33

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.28


DATOS CMp=64k palabras =216 palabras CMc =1k palabras = 210 palabras Memoria cach con funcin de correspondencia directa K= 128 palabras/bloque tap=10t tac =1t

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

c) Dado que el computador utiliza una cach con correspondencia directa, a cada palabra de la memoria principal le corresponde un nico bloque de la memoria cach, 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)

Formato direccin memoria principal Bloque i de Mc (3 bits)

Palabra (7 bits)

17 22 23 164 165 239 240 1200 1201 1500

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

Tabla 2. Formato de las direcciones de memoria principal

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

Bloque i de Mc

Etiqueta

0 1 2 3 4 5 6 7

000001 000001 000000 000000 000000 000000 000000 000000

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

Luego el tiempo total que se emplea es:

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

t a = (26336 + 48 10 128 ) = 87776 seg


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

h=

N A NT N F 26336 48 = = = 99.8% NT NT 26336 t a ( M c + M p ) 87776 = = 33.3% ta (M p ) 263360

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.

SOLUCION PROBLEMA 2.29


DATOS Nmero total de accesos NT=220 Nmero de fallos NF=217 Tasa de fallos? La definicin de tasa de fallos es:

Tasa de fallos =

N F 217 1 1 = 20 = 3 = = 0.125 NT 2 2 8

Luego la Tasa de fallos es 12.5 % .

37

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.30


DATOS Procesador con 12 lneas de direccin A 11A 10....A 0 Para construir su unidad de memoria se dispone de mdulos de 2K =(211) palabras La lnea A 1 se utilizan para la seleccin de cada mdulo De los datos se deduce que las direcciones para acceder a posiciones de memoria tienen 12 bits, uno por cada lnea. Por otro lado puesto que se tienen una nica lnea A1 para seleccionar mdulos de memoria de 2K, el nmero total de mdulos para implementar el mapa de memoria es 2 mdulos. En la siguiente tabla se muestra el mdulo de memoria al que se hace referencia en funcin del valor de A 1.

A1 0 1

Mdulo de memoria Mdulo 0 Mdulo 1

Mdulo 0 As las direcciones que hacen referencia al primer mdulo de memoria (mdulo n 0) son:

XXXX XXXX XX0X


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

Y Y 0 Y Y 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:

XXXX XXXX XX10


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

Y Y 2 Y Y 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.31


DATOS Memoria principal de CMp= 64k palabras =216 Memoria cach de CMc = 2k palabras =211 Utiliza correspondencia totalmente asociativa K= 256 palabras/bloque =28 La memoria cach est inicialmente vacia. Cuando la memoria cach est llena, se reemplaza el bloque que se ha utilizado ms recientemente. La CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la direccin 0 a la 2300. tap=7t ac

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=np=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:

tiempo = NT 7 t ac = 11505 7 t ac= 80535 t ac seg


C) El nmero de bloques de la memoria cach es:

CMc 211 C= = 8 = 2 3 = 8 bloques K 2


Por lo tanto la tabla que nos piden tendr 8 filas y 5 columnas una por cada vez que se ejecuta el bucle. Por otra parte el nmero de bloques de la memoria principal es:

M=

CMp 216 = 8 = 28 = 256 bloques K 2

En cada bloque hay K= 256 palabras, por lo tanto las 2301 palabras a las que hace referencia la CPU, caben en 2301/256 9 bloques de memoria principal. Puesto que la 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

TEMA 2: Unidad de memoria.

Solucin de los problemas

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

0000 0100 0200 0300 0400 0500 0600 0700 0800

00FF 01FF 02FF 03FF 04FF 05FF 06FF 07FF 08FF

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

C) Para contestar este apartado se va a utilizar la Tabla creada en el apartado anterior. All se ha visto que la 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

t a = (11505 + 13 7 256) t ac = 34801 t ac seg

41

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.32


DATOS Nmero total de accesos NT=220 Nmero de fallos NF=217 La definicin de tasa de fallos es:

Tasa de fallos = (1 h) =
Despejando la tasa de aciertos h:

NF NT

h = 1

NF 217 = 1 20 = 1 0.125 = 0.875 NT 2

Luego la tasa de aciertos h= 87.5 % .

42

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.33


DATOS Memoria principal de CMp= 8192 Kpalabras. Memoria cach de CMc = 2 Kpalabras=211 palabras La memoria cach utiliza.correspondencia asociativa por conjuntos n K=64 palabras/ bloque (26) n r= 4 bloques/conjunto Inicialmente la memoria cach est llena con la ejecucin de un programa Prog1 Se carga en memoria principal un nuevo programa Prog2 Prog2 efecta la siguiente secuencia de referencias en la ejecucin de su cdigo : n Lee secuencialmente las direcciones 128,129,130,....., 143 n Repite 20 veces un bucle de lectura de las direcciones 131, 132, 133 n Finalmente lee secuencialmente las direcciones 134,135,....,168 El formato de direccin para una memoria cach con correspondencia asociativa por conjuntos es, el siguiente: n bits Conjunto de Mc

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=

CMc 211 = 6 = 25 bloques K 2

El nmero total de conjuntos q viene dado por:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

23 bits Conjunto de Mc

Etiqueta

Palabra

14 bits La tasa de acierto h, se define como:

3 bits

6 bits

h=

Numero de aciertos N = A Numero total de accesos NT

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%

110 = 0.99 111

44

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.34


Una posible forma de resolver el problema consiste en ir probando uno a uno con los registros de mscara dados para verificar si producen el registro de Marca especificado. 1) Mscara 1

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

La mascara 2 si genera este registro de marca.

45

TEMA 2: Unidad de memoria.

Solucin de los problemas

3) Mscara 3 0 0 1 0 0 0 1 1 1 1 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

La mascara 3 si genera este registro de 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

La mascara 4 si genera este registro de 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

La mascara 5 si genera este registro de marca.

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

46

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.35


DATOS CMp = 220 palabras CMc = 1024 (210) palabras K=64 (26) palabras/bloque Funcin de correspondencia directa De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 210 = 6 =24 = 16 bloques. K 2

Por otra parte, el nmero de bloques M de la M p.

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

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

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.36


DATOS Memoria RAM de capacidad total CT= de 1024 palabras x 16 bits/palabra. Construida con mdulos de memoria RAM de capacidad C0= 128 palabras x 8 bits/palabra El nmero de lneas del bus de direcciones n se calcula a partir del nmero de palabras que posee la memoria RAM construida. Es decir:

n = log 2 1024 = log 2 210 = 10 lneas


Puesto que el nmero de palabras que posee el modulo RAM unidad es de 128, para conseguir 1024 palabras de capacidad total se necesitarn:

1024 210 = 7 = 23 = 8 mdulos 128 2


Por otra parte, el nmero de lneas del bus de direcciones que se utilizarn para seleccionar entre estos ocho mdulos n S es:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.37


DATOS Memoria de acceso aleatorio. ta =100 nseg. tc =200 nseg. En una memoria de acceso aleatorio la frecuencia de acceso fa se calcula de la siguiente forma:

fa =

1 1 1 10 9 10 7 = = = = seg 1 = 510 6 seg 1 9 t c 200 nseg 20010 seg 200seg 2

Luego la frecuencia de acceso es fa =5106 seg -1.

49

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.38


DATOS Sistema jerrquico de memoria. CMc :=128 palabras, K= 16 pal/ bloque, t ca =10 seg CMp=1024 Kpalabras, tp= 200 seg Tasa de acierto h=0.99 Cuando se produce un fallo en M c : Se mueve el bloque completo a la M C. Se lee el dato desde M C. textra=20 seg El tiempo de acceso medio tam se define como:

t am = h t ga + (1 h) t gf (1)
Donde tga es el tiempo empleado en gestionar un acierto. Normalmente se cumple que :

t acierto = t ca = 10 seg
De acuerdo con el enunciado el tiempo de 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 gf = K t p + tca + t extra = 16 200 + 10 + 20 = 3230 seg

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

t am = 0.99 10 + 0.01 3230 = 9.9 + 32.3 = 42 .2 seg


Por otra si slo se utilizara la memoria principal el tiempo de acceso medio sera:

t am ' = t p = 200 seg


Se observa que:

t am ' = 4.7 t am
Luego las afirmaciones son: Afirmacin I: VERDADERA. Afirmacin II: VERDADERA

50

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.39


DATOS CMp = 64 Kpalabras = (216) palabras CMc = 1K palabras = (210) palabras K=8 palabras/bloque = (23) palabras/bloque Funcin de correspondencia directa. En un determinado instante la direccin 6B59, de la memoria principal est en la memoria cach De los datos del enunciado se pueden calcular el nmero de bloques C de la M C.

C=

C Mc 210 = 3 =2 7 = 128 bloques. K 2

Por otra parte, el nmero de bloques M de la M p.

M=

C Mp K

216 =213 = 8 Kbloques. 23

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

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

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.40


DATOS Sistema jerrquico de memoria con memoria cach de dos niveles. La cach de nivel 1, es la ms cercana a la CPU La cach de nivel 2, es la ms cercana a la memoria principal.

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.41


DATOS 16 lneas de direccin A 15-A 0. Memoria compuesta de mdulos ROM y mdulos RAM. La ROM consta de un nico mdulo y ocupa las direcciones ms bajas de memoria, comenzando por la direccin 0. La RAM con una capacidad de CRAM=48Kbytes ocupa las direcciones restantes. Puesto que el sistema consta de n=16 lneas de direccin, podr direccionar una capacidad de memoria de

CT = 216 bytes = 64 Kbytes


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

CT = C ROM + C RAM
Puesto que se conocen CT y CRAM es posible calcular CROM

CROM = CT C RAM = 64 Kbytes 48Kbytes = 16 Kbytes


Luego se tiene un sistema de CT=64 Kbytes que se distribuye de la siguiente forma: n Un nico mdulo de ROM de capacidad CROM=16 Kbytes, que contiene las direcciones bajas de memoria, comenzando desde la 0. n Varios mdulos de memoria RAM (en el enunciado no concreta el nmero, suponemos como hiptesis de trabajo que hay tres) que suman entre todos ellos una capacidad CRAM=48 Kbytes. Si se supone que el sistema posee al menos tres mdulos de memoria RAM y uno de ROM, se necesitarn dos bits para seleccionar uno de los cuatro mdulos de memoria. Esos bits de seleccin deben ser A15A 14 ya que la ROM ocupa las direcciones ms bajas de memoria, comenzando por la direccin 0. Es decir, las direcciones que acceden a la ROM son de la forma: 00XX XXXX XXXX XXXX Se tiene por tanto la siguiente tabla de seleccin de mdulos: A15A14 00 01 10 11 Funcin lgica de seleccin Modulo seleccionado ROM RAM n 0 RAM n 1 RAM n 2

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.42


DATOS Memoria de acceso NO aleatorio. fa =2106 bits/seg.. ta =2mseg N=103 bytes En una memoria de acceso NO aleatorio la frecuencia de acceso fa o velocidad de transferencia v T se calcula de la siguiente forma:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.43


DATOS Sistema jerrquico de memoria. CMc :=256 palabras, K= 8 pal/ bloque, t ac =20 nseg CMp=1024 Kpalabras, tap= 200 nseg Tasa de acierto h=0.90 Cuando se produce un fallo en M c : Se mueve el bloque completo a la M C. Se lee el dato desde M C. El tiempo de acceso medio tam se define como:

t am = h t ga + (1 h ) t gf (1)
Donde tga es el tiempo de 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:

t gf = K t ap + t ac = 8 200 + 20 = 1620 n seg

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

t am = 0.90 20 + 0.10 1620 = 18 + 162 = 180 n seg


Luego la solucin es tam=180 nseg.

55

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.44


DATOS Nmero total de accesos NT=1020 Nmero de fallos NF=1018 La definicin de tasa de fallos es:

Tasa de fallos = (1 h) =
Despejando la tasa de aciertos h:

NF NT

h = 1

NF 1018 1 = 1 20 = 1 2 = 1 0.01 = 0.99 NT 10 10

Luego la tasa de aciertos h= 99 % .

SOLUCION PROBLEMA 2.45


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

Puesto que se conoce el 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:

C = q (conjuntos)r ( bloques / conjunto) = 2 7 2 = 28 bloques


Por otra parte el nmero de bits p=5 utilizados para el campo PALABRA con el que se codifica la posicin de una palabra dentro de un bloque, es posible obtener el nmero de palabras K que tiene un bloque:

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

TEMA 2: Unidad de memoria.

Solucin de los problemas

SOLUCION PROBLEMA 2.46


DATOS Se desea acercar la velocidad de la unidad de memoria de un computador a la velocidad de los registros de su CPU, a un coste razonable. Para resolver este problema hay que recordar las propiedades de un sistema jerrquico de memoria. Afirmacin A: Es falsa ya que aumentar el nmero de registros de la CPU no influye en la velocidad de la unidad de memoria principal, adems es muy costoso. Afirmacin B: Es verdadera, ya que incluir una memoria cach en el sistema disminuye el tiempo medio de acceso a la memoria y por lo tanto aumenta la velocidad. Adems a un coste razonable. Afirmacin C: Es falsa, aumentar la capacidad de los discos magnticos no influye para nada en la velocidad de la unidad de memoria. Afirmacin D: Es falsa, la afirmacin B es verdadera.

57

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 3: Unidad de Entrada Salida


SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 3: UNIDAD DE ENTRADA SALIDA

Solucin de los problemas

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.1


DATOS n Canal multiplexor n 2 unidades de disco =>v TD=500 Kbytes/seg n 2 unidades de cinta =>v TC= 150 Kbytes/seg

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

v tmax = v Tcanal = 2 v TD + 2 vTC = 2 (500) + 2 (150) = 1300( Kbytes / seg )

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.2


DATOS n n n n Canal selector 2 unidades de disco =>v TD=106 bytes/seg 2 unidades de cinta =>v TC= 105 bytes/seg tbus=10nseg

Se tiene una configuracin como la que se muestra en la figura :

Mp E/S

D Canal Selector E/S C Bus del sistema C

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.

v Tcanal = vTD = 106 ( bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

t Tcanal =

1 vTcanal

1 6 seg = 1000 nseg 6 = 10 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=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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.3


DATOS n n n n frecuencia del computador es f=108 ciclos/seg 10 ciclos/instruccin 5 ciclos/pal DMA con estrategia de transferencia por rfagas

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 =

f (ciclos / seg ) 108 = = 2 10 7 pal / seg 5( ciclos / pal ) 5

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.4


DATOS n n= 13 lneas de direccin. n Memoria con 212 palabras n Utiliza E/S localizada en memoria. El computador utiliza E/S localizada en memoria, eso significa que el controlador de E/S y la memoria comparten las 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 = 212 direcciones
Luego el nmero de direcciones para acceder a palabras en los perifricos vendr dado por :

N DP = N D N DM = 213 212 = 212 direcciones


a) Nos dicen que cada perifrico ocupa una direccin => R= 1 direccin/perifrico. Luego el nmero mximo de perifricos NPmax es :

N Pmax =

N DP 212 (dir ) = = 2 12 perifri cos R 1( dir / per )

b) Nos dicen que cada perifrico ocupa 8 direcciones => R= 8 dir/peri. Luego el nmero mximo de perifricos NPmax es :

N Pmax =

N DP 212 ( dir ) = 3 = 2 9 perifri cos R 2 ( dir / per )

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.5


DATOS n 4 lneas de interrupcin PI3, PI2, PI1 y PI0 n Son enmascarables las lneas PI3, PI2, y PI1 n Una peticin de interrupcin PIj enmascara las lneas Pii con i<j e i0. n Se producen 4 peticiones de interrupcin es este orden: PI3, PI2, PI0 y PI1 n Las tres ltimas peticiones se producen mientras se est ejecutando el programa de servicio de PI3 De acuerdo con el enunciado la prioridad de las diferentes lneas es: prior(PI0)> prior(PI3)> prior(PI2)> prior(PI1) Analicemos la secuencia de peticin de interrupciones. 1) Llega PI3, se enmascaran PI2 y PI1, y se comienza a ejecutar el programa de servicio de la interrupcin PI3. 2) Llega PI2, como est enmascarada no se atiende. 3) Llega PI0, como tiene una prioridad superior a PI3, se detiene la ejecucin del programa de servicio de PI3 y se ejecuta completo el programa de servicio de PI0. 4) Se continua con el programa de servicio de PI3. Llega PI1 como est enmascarada no se atiende. 5) Terminado el programa de servicio de PI3 se ejecuta el programa de servicio de PI2, dejando enmascarada PI1. 6) Terminado el programa de servicio de PI2 se ejecuta el programa de servicio de PI1, ahora no hay ninguna lnea enmascarada. 7) Se termina el programa de ejecucin de PI1. Luego el orden de ejecucin de las interrupciones es: PI3, PI0, PI3, PI2 y PI1

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.6


DATOS n n n n frecuencia del reloj del computador es f=200106 ciclos/seg 4 ciclos/instruccin 2 ciclos/instruccin no requiere el uso del bus DMA con estrategia de robo de ciclos

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:

f ( ciclos / seg) 200x106 v ejec1 = = = 5 107 (instr / seg ) 4( ciclos / inst) 4


2) Calcular v ejec2 .
1 ciclo Ejecucin con DMA por robo de ciclos

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

f ( ciclos / seg ) 200x10 6 = = = 4 10 7 (instr / seg ) 5( ciclos / inst) 5

3) El nmero de instrucciones que dejen de ejecutarse por segundo viene dado por :

v ejec1 v ejec2 = 5 10 7 4 10 7 = 10 7 (instr / seg )


-------

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.7


DATOS n n n n frecuencia del reloj del computador es f=108 ciclos/seg 4 ciclos/instruccin 2 ciclos/instruccin no requiere el uso del bus 1 ciclo/palabra

I) Afirmacin: Con DMA transparente v tmax =5107 (pal/seg)


1 ciclo Ejecucin con DMA transparente

Instr1

Instr2

Instr3

Se ha de recordar que en la estrategia de DMA transparente, el DMA se realiza en aquellas fases de la 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:

2( ciclos / instr ) = 2( pal / instr ) 1( ciclo / pal )

v ejec

f ( ciclos / seg ) 108 = = = 25 106 (instr / seg ) 4( ciclos / inst) 4

La velocidad de transferencia mxima es:

v tmax = R vejec = 2( pal / inst) 25 10 6 (inst / seg ) = 5 107 ( pal / seg )


Luego la afirmacin I es verdadera. II)Con DMA por robo de ciclos v tmax =2107 (pal/seg).
1 ciclo Ejecucin con DMA por robo de ciclos

Instr1

Instr2

Instr3

La velocidad de ejecucin es:

v ejec

f ( ciclos / seg ) 108 = = = 2 10 7 (instr / seg ) 5( ciclos / inst) 5

La velocidad de transferencia mxima, puesto que R=1pal/inst

v tmax = R vejec = 1( pal / inst ) 2 10 7 (inst / seg ) = 2 10 7 ( pal / seg )


La afirmacin II, es verdadera.

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.8


DATOS n n n n Canal multiplexor 2 unidades de disco =>v TD=106 bytes/seg 5 unidades de cinta =>v TC= 2105 bytes/seg tbus=100nseg

Se tiene una configuracin como la que se muestra en la figura:

Mp E/S

D Canal Multiplexor E/S Bus del sistema C C C C C

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.

v Tcanal = 2 vTD + 5 vTC = 2 10 6 + 5 2 10 5 = 3 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

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 =

100 100 = 30% 1000 3

10

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.9


DATOS n Controlador de E/S con buffer de capacidad C=256 Kb. n Buffer inicialmente vacio. n Operacin de E/S con una impresora : n Recibe datos por el bus del sistema a v in= 1 Mb/seg. n Transmite datos a la impresora a v out= 256 Kb/seg. n Recibe y transmite de forma continua simultneamente.

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:

v = v in v out = 2 20 (bytes / seg ) 218 (bytes / seg ) = ( 2 2 1) 218 = 3 2 18 ( bytes / seg )


El tiempo de llenado se calcula como el cociente entre la capacidad del buffer y la velocidad de llenado.

t llenado =

C 2 18 ( bytes) = = 0.33 seg v 3 2 18 (bytes / seg )

SOLUCION PROBLEMA 3.10


DATOS n VP velocidad mxima de transferencia empleando E/S controlada por programa. n VI velocidad mxima de transferencia empleando E/S controlada con interrupciones. n VD velocidad mxima de transferencia empleando E/S controlada con DMA. La relacin que se cumple es : VD > VI >VP La respuesta correcta es la B.

11

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.12


DATOS n n n n n= 32 lneas de direccin. Memoria con 32 Mb Utiliza E/S aislada de memoria. R=16 direcciones/perifrico

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 =

N DP 2 32 ( dir ) = 4 = 2 28 perifri cos R 2 ( dir / per )

12

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.13


DATOS n n n n Frecuencia del reloj del computador es f=200106 ciclos/seg 4 ciclos/instruccin 1 ciclo/instruccin no requiere el uso del bus 1 ciclo/palabra

Si se realiza DMA por robo de ciclos:


1 ciclo Ejecucin con DMA por robo de ciclos

Instr1

Instr2

Instr3

La velocidad de ejecucin es:

v ejec =

f ( ciclos / seg ) 20010 6 = = 40 10 6 = 4 10 7 (instr / seg ) 5(ciclos / inst ) 5

Puesto que el sistema utiliza 1 ciclo en transferir 1 palabra y como tras ejecutar una 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:

vt max = R v ejec = 1( pal / inst ) 4 10 7 (inst / seg ) = 4 10 7 ( pal / seg )


Si se realiza DMA transparente:
1 ciclo Ejecucin con DMA transparente

Instr1

Instr2

Instr3

La velocidad de ejecucin es:

v ejec =

f (ciclos / seg ) 20010 6 = = 50 106 = 5 10 7 (instr / seg ) 4( ciclos / inst ) 4

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=

1(ciclos / instr ) = 1( pal / instr) 1( ciclo / pal )

La velocidad de transferencia mxima es:

vt max = R v ejec = 1( pal / inst ) 5 10 7 (inst / seg ) = 5 10 7 ( pal / seg )


De acuerdo con estos resultados las afirmaciones son: Afirmacin I: FALSA Afirmacin II: VERDADERA

13

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.14


DATOS n n n n Canal multiplexor 3 unidades de disco =>v TD=5106 bytes/seg 5 unidades de cinta => v TC= 105 bytes/seg tbus=50 nseg

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.

vTcanal = 3 vTD + 5 vTC = 3 510 6 + 5 10 5 = 15.5 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

t Tcanal =

1 vTcanal

1 10 9 1000 = = nseg = 64.5 nseg 6 6 9 15.5 15.5 10 15.5 10 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=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 =

50 100 = 77.5% 64.5

SOLUCION PROBLEMA 3.15


Afirmacin I: Es falsa ya que la comprobacin de la interrupcin es por hardware (lnea RI) y no por software eso corresponde al tipo encuesta. Afirmacin II: Es falsa, la CPU recibe el vector de interrupciones v int exclusivamente por el bus de datos. Afirmacin III: Es falsa, se tratan de conceptos independientes, ya que se est hablando por un lado de identificacin de la interrupcin I y por otro de niveles de interrupcin I. Luego la respuesta correcta es la D.

14

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.16


DATOS n Canal multiplexor n 2 unidades de disco => v TD=106 bytes/seg n 10 unidades de cinta => v TC= 103 bytes/seg

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.

vTcanal = 2 vTD + 10 vTC = 2 106 + 10 103 = 2 106 + 10 4 = 2.0110 6 (bytes / seg )

SOLUCION PROBLEMA 3.17


La solucin a este problema se encuentra en el archivo probT3_17.pdf

SOLUCION PROBLEMA 3.18


DATOS n 4 lneas de interrupcin PI1, PI2, PI3 y PI4 n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1) n El sistema no permite anidamiento. n Se producen 4 peticiones de interrupcin es este orden: PI3, PI1, PI4 y PI2 n Las tres ltimas peticiones se producen mientras se est ejecutando el programa de servicio de PI3 Conviene darse cuenta de que el sistema no permite anidamiento, en consecuencia se trata de un sistema con un nico nivel de interrupciones, de tal forma que cuando comienza a ejecutarse el programa de gestin de una interrupcin, ste se completar antes de atender a otra peticin de interrupcin. Analicemos la secuencia de peticin de interrupciones : 1) Llega PI3 y comienza a ejecutarse el programa de gestin de PI3. 2) Llega PI1, continua ejecutndose el programa de gestin de PI3. 3) Llega PI4, continua ejecutndose el programa de gestin de PI3. 4) Llega PI2, continua ejecutndose el programa de gestin de PI3. 5) Terminado el programa de gestin de PI3, se procede a ejecutar el programa de gestin de PI4 que es la interrupcin recibida con mayor prioridad. 6) Terminado el programa de gestin de PI4, se procede a ejecutar el programa de gestin de PI2 que es la interrupcin recibida con mayor prioridad. 7) Terminado el programa de gestin de PI1, se procede a ejecutar el programa de gestin de PI4 que es la interrupcin recibida con mayor prioridad. Luego el orden de ejecucin de las interrupciones es: PI3, PI4, PI2 y PI1

15

SOLUCIN PROBLEMA 3 - 17

Problemas de los exmenes del curso 97/98

13

Figura 99-3-1: Diagrama de la conexin del controlador de interrupciones a la UCP

6ROXFLyQ

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:

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

Estructura y Tecnologa de Computadores II

A partir de aqu se obtiene de forma inmediata la tabla de verdad solicitada (Tabla 99-3-1).
INTA INTR3 INTR2 INTR1 INTR0 INTA3 INTA2 INTA1 INTA0

0 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

Tabla 99-3-1: Tabla de verdad de INTAi (X representa 0 1, indistintamente)

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

Figura 99-3-2: Mecanismo de enmascaramiento de las interrupciones

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).

Problemas de los exmenes del curso 97/98

15

INTR 1 H 3 A 1 H 3

INTR3

I3

INTR2

2 Codificador de prioridad 1

1 Decodificador

I2

INTR1

I1

INTR0

I0

Figura 99-3-3: Mecanismo de gestin de prioridades

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

Estructura y Tecnologa de Computadores II

I3

INTA3

I2

INTA2

I1

INTA1

I0

INTA0

INTA

Figura 99-3-4: Generacin de las seales de aceptacin INTAi

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 Enmascaramiento (b)

INTR3

I3 INTA Prioridades (c)

De los perifricos

INTR2

INTR2

I2

Concesin (d)

UCP

INTR1

INTR1

I1

INTR0

INTR0

I0

INTA3 INTA2 INTA1 INTA0

Figura 99-3-5: Controlador de interrupciones

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.19


DATOS n n n n Canal multiplexor 2 unidades de disco => v TD=106 bytes/seg 10 unidades de cinta => v TC= 103 bytes/seg tbus=100 nseg

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.

vTcanal = 2 vTD + 10 vTC = 2 106 + 10 103 = 2 106 + 10 4 = 2.0110 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

t Tcanal =

1 vTcanal

1 10 9 = = 497.5 nseg 2.01 106 2.0110 6 10 9

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 =

100 100 = 20.1% 497.5

16

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.20


DATOS n 5 lneas de interrupcin PI4, PI3, PI2, PI1, PI0 n Enmascarables mediante 5 bits del Registro de estado de la CPU. n Una peticin PIj desactiva las lneas PIi con i <j n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1) > prior(PI0) n Interrupciones anidables. Sistema multinivel. n Se producen 4 peticiones de interrupcin es este orden: PI2, PI4, PI3, PI1 n Antes de finalizar PI2, llegan simultneamente (PI4, PI3, PI1)

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.21


DATOS n n n n Canal selector 3 unidades de disco => v TD=5106 bytes/seg 5 unidades de cinta => v TC= 105 bytes/seg tbus=50 nseg

La velocidad de transferencia de un canal selector v Tcanal es:

vTcanal = max{ vTD , vTC } = 5 10 6 ( bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

t Tcanal =

1 vTcanal

1 10 9 1000 = = nseg = 200 nseg 6 6 9 5 5 10 5 10 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=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 =

50 100 = 25% 200

SOLUCION PROBLEMA 3.22


DATOS n El mecanismo de la figura es E/S localizada en memoria. La E/S localizada en memoria se caracteriza porque el espacio de direcciones disponible est compartido por la memoria y por los elementos perifricos. De tal forma que dada una direccin se puede acceder a una posicin de memoria o un perifrico. Luego en consecuencia las afirmaciones I y II son verdaderas.

18

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.23


DATOS n 4 lneas de interrupcin PI1, PI2, PI3 y PI4 n prior(PI4)> prior(PI3)> prior(PI2)> prior(PI1) n El sistema permite anidamiento. n Se producen 4 peticiones de interrupcin es este orden: PI3, PI1, PI4 y PI2 n Las tres ltimas peticiones se producen mientras se est ejecutando el programa de servicio de PI3 Conviene darse cuenta de que el sistema permite anidamiento, en consecuencia se trata de 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. Analicemos la secuencia de peticin de interrupciones : 1) Est ejecutando el programa de gestin de PI3. 2) Llega PI1, puesto que prio(PI1)<prio(PI3) ignora PI1 colocndola en una cola a la espera de ser atendida, continua con el programa de gestin de PI3. 3) Llega PI4, puesto que prio(PI4)>prio(PI3) detiene la ejecucin del programa de gestin de PI3 y comienza a ejecutar el programa de servicio de PI4. 4) Llega PI2, puesto que prio(PI2)<prio(PI4) ignora PI2 colocndola en una cola a la espera de ser atendida, continua ejecutando el programa de gestin de PI4, 5) Terminado el programa de gestin de PI4, se procede a continuar con el programa de gestin de PI3 hasta su finalizacin. 6) Terminado el programa de gestin de PI3, se procede a ejecutar el programa de gestin de PI2 que es la interrupcin colocada en la cola de espera con mayor prioridad. 7) Terminado el programa de gestin de PI2, se procede a ejecutar el programa de gestin de PI1. Luego el orden de ejecucin de las interrupciones es: PI3, PI4, PI3, PI2, PI1

SOLUCION PROBLEMA 3.24


DATOS n Canal multiplexor n 2 unidades de disco => v TD=106 bytes/seg n 10 unidades de cinta => v TC= 103 bytes/seg

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.

vTcanal = 2 vTD + 10 vTC = 2 106 + 10 103 = 2 106 + 10 4 = 2.0110 6 (bytes / seg )

19

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.25


DATOS n n n n Canal multiplexor 5 unidades de disco =>v TD=106 bytes/seg 10 unidades de cinta =>v TC= 2105 bytes/seg tbus=200 nseg

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.

v Tcanal = 5 v TD + 10 v TC = 5 106 + 10 2 105 = 7 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

t Tcanal =

1 vTcanal

1 1000 = 142.8 nseg 6 = 7 7 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 = 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=

t bus t 200 100 = bus 100 = 100 = 100 % tT t bus 200

Es decir, el bus estara saturado.

20

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.26


DATOS n Mdulo de gestin de prioridades n Mdulo de enmascaramiento El orden de colocacin de los mdulos es: Primero el mdulo de enmascaramiento y a continuacin el mdulo de gestin de prioridades. La razn de esta colocacin es obvia, ya que si se colocasen al revs podra darse la circunstancia de que ante una peticin mltiple de interrupciones el mdulo de gestin de prioridades marcase como ms prioritaria una interrupcin que al pasar por el mdulo de enmascaramiento resultase estar enmascarada. Con lo que no se atendera ninguna.

SOLUCION PROBLEMA 3.27


DATOS n n n n n= 13 lneas de direccin. Memoria con 3x2 11 palabras Utiliza E/S localizada en memoria. R=16 direcciones/perifrico

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 DP = N D N DM = 213 3 211 = ( 4 3) 2 11 = 211 direcciones


Nos dicen que cada perifrico ocupa una direccin => R= 16 direccin/perifrico. Luego el nmero mximo de perifricos NPmax es :

N Pmax =

N DP 211 (dir ) = 4 = 2 7 perifri cos R 2 ( dir / per )

21

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.28


DATOS n n n n Canal multiplexor 5 unidades de disco =>v TD=106 bytes/seg 10 unidades de cinta =>v TC= 2105 bytes/seg tbus=200 nseg

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 max( t bus , tTcanal )

1 t bus

1 byte 107 = = 5 10 6 (bytes / seg ) 200 nseg 2

SOLUCION PROBLEMA 3.29


DATOS n n n n n Estrategia DMA transparente Frecuencia del reloj del computador es f=200106 ciclos/seg 4 ciclos/instruccin 1 ciclo/instruccin no requiere el uso del bus 1 ciclo/palabra

El esquema de DMA transparente de este problema se representa en la siguiente figura


1 ciclo Ejecucin con DMA transparente

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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.30


DATOS n n n n n Frecuencia del reloj del computador es f=200106 ciclos/seg 4 ciclos/instruccin 2 ciclos/instruccin consecutivos no requiere el uso del bus 2 ciclos/palabra Se desea mover un bloque de datos compuesto de 100106 palabras

El esquema de DMA transparente de este problema se representa en la siguiente figura


1 ciclo Ejecucin con DMA transparente

Instr1

Instr2

Instr3

La velocidad de ejecucin de la CPU es:

vejec

f ( ciclos / seg ) 20010 6 = = = 50 106 = 5 107 (instr / seg ) 4(ciclos / inst ) 4

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=

2( ciclos / instr) = 1( pal / instr ) 2(ciclos / pal )

La velocidad de transferencia mxima es:

vt max = R v ejec = 1( pal / inst ) 5 10 7 (inst / seg ) = 5 10 7 ( pal / seg )


Luego, el tiempo que tardar el controlador de DMA en mover un bloque de datos de N=10107 palabras es:

t=

N ( pal ) 1010 7 = = 2 seg v t max ( pal / seg ) 5107

23

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.31


DATOS n n n n n n Perifricos conectados: 2 discos duros, 1 CDROM, 1 impresora. PI1 peticin de interrupcin disco duro. PI2 peticin de interrupcin CDROM. PI3 peticin de interrupcin impresora. Interrupciones anidables con prio(PI1) > prio(PI2) > prio(PI3) Tiempo de servicio de las rutinas de servicio en unidades de tiempo (u.t) ts1=10 u.t (disco duro) ts2=30 u.t (CDROM) ts3=15 u.t (impresora) En t=0 u.t peticin de interrupcin del primer disco duro. En t=3 u.t peticin de interrupcin de la impresora. En t=5 u.t peticin de interrupcin del CDROM. En t=14 u.t peticin de interrupcin del segundo disco duro.

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 Disco Duro 1

Rutina CDROM

Rutina Disco Duro 2

Rutina CDROM

Figura 3.31.1

De acuerdo con el enunciado la forma de atender a las interrupciones (ver Figura 3.31.1) es 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

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

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.

SOLUCION PROBLEMA 3.32


AFIRMACION I : Verdadera. Efectivamente el controlador de DMA necesita tener el control del bus del sistema para la realizacin de operaciones de transmisin de datos. AFIRMACION II: Falsa. De hecho la estrategia de transmisin por rfagas es la que produce una mayor interferencia con la CPU, es decir, una mayor reduccin de la velocidad de ejecucin de la CPU.

SOLUCION PROBLEMA 3.33


En sistemas provistos de PE/S, la CPU es se encarga de iniciar la transferencia de E/S, y el PE/S ejecuta las instrucciones de E/S que se encuentran almacenadas en memoria principal. AFIRMACION I : Falsa. AFIRMACION II: Falsa.

SOLUCION PROBLEMA 3.34


En el procesador Motorola 68000, las peticiones de interrupcin de nivel 7 (IPL=7) se atienden siempre. Luego con los bits (I2 I1 I0) del registro de estado no se pueden enmascarar las interrupciones de nivel 7 ya que son interrupciones no enmascarables.

SOLUCION PROBLEMA 3.35


La solucin a este problema se encuentra en el archivo probT3_35.pdf

25

SOLUCIN PROBLEMA 3 - 35

Problemas de los exmenes del curso 2000/2001

13

INTR0 INTR INTR1


Controlador de interrupciones

UCP
INTA

INTR7 INTA0 INTA1 INTA7

6ROXFLyQ

a) La tabla de verdad solicitada se muestra en la Tabla 3, donde se puede observar el comportamiento solicitado:

Si INTA = 0, no se activa ninguna de las 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

Tabla 3: Tabla de verdad de INTAi (X representa 1 0, indistintamente)

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

Estructura y Tecnologa de Computadores II

entradas de habilitacin H activadas.

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

Figura 2: Mecanismo de gestin de prioridades

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

Tabla 4: Tabla de verdad del mecanismo de gestin de prioridades (X representa 1 0, indistintamente)

Problemas de los exmenes del curso 2000/2001

15

INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 0 0 0 0 0 0 1 X

INTR 1

I7 0

I6 0

I5 0

I4 0

I3 0

I2 0

I1 1

I0 0

Tabla 4: Tabla de verdad del mecanismo de gestin de prioridades (X representa 1 0, indistintamente)

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

Figura 3: Generacin de las seales de aceptacin INTAi

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

Estructura y Tecnologa de Computadores II

INTR

INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0

7 6 5 4 3 2 1 0 Mdulo de gestin de prioridades (Figura 2)

I7 I6 I5 I4 I3 I2 I1 I0 Mdulo de aceptacin (Figura 3) INTA

UCP

7 6 5 4 3 2 1 0 INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0

Controlador de Interrupciones

Figura 4: Controlador de interrupciones solicitado en el problema

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.

Problemas de los exmenes del curso 2000/2001

17

1 H INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 7 2 6 5 4 3 2 1 0 0 0 0 2 6 5 Decodificador 4 1 1 3 2 1 A H 7

INTR INTA

INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0

Codificador de prioridad

Figura 5: Diseo alternativo

INTR INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0 7 6 5

INTA 7 6 5 4 3 2 1 0

INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0

C o ntrolador 4 de Interrupciones
3 2 1 0

Figura 6: Representacin del mdulo controlador de interrupciones

d) En este apartado se va a representar el controlador de interrupciones como el mdulo representado en la


Figura 6. La forma de conectar dos de estos mdulos para poder atender las peticiones de 15 dispositivos externos se muestra en la Figura 7. Denominando CI1 al controlador de interrupciones 1 y CI2 al controlador de interrupciones 2, el diseo tiene las siguientes caractersticas:

Es capaz de atender peticiones de 15 dispositivos, tal y como requiere el enunciado del problema.

18

Estructura y Tecnologa de Computadores II

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

INTR14 INTR13 INTR12 INTR11 INTR10 INTR9 INTR8

INTR 7 6 5

INTA 7 6 5 4 3 2 1 0

INTA14 INTA13 INTA12 INTA11 INTA10 INTA9 INTA8

C on trolador 4 de Interrupciones
3 2 1 0

INTR7 INTR6 INTR5 INTR4 INTR3 INTR2 INTR1 INTR0

INTR 7 6 5

INTA 7 6 5 4 3 2 1 0

INTA7 INTA6 INTA5 INTA4 INTA3 INTA2 INTA1 INTA0

C o ntrolador 4 de Interrupciones
3 2 1 0

Figura 7: Controlador de interrupciones de 15 entradas

Nota importante: A la hora de corregir este problema, el equipo docente de la asignatura se ha encontrado con bastante

Problemas de los exmenes del curso 2000/2001

19

frecuencia con el circuito que se muestra en la Figura 8. Se trata de una propuesta para el mecanismo de 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

Figura 8: Circuito que no gestiona correctamente el esquema de prioridades

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.36


DATOS n Si CPU dispone en exclusiva del bus n Las instrucciones emplean 3 ciclos de reloj en ser ejecutadas. n En 1 de esos ciclos, el segundo, no requiere el acceso al bus. n El controlador de DMA tarda dos ciclos de reloj consecutivos en transmitir una palabra. AFIRMACION I : Es verdadera, ya que en la estrategia de DMA por rfagas el controlador de DMA hace uso del bus cuando se ha finalizado la ejecucin de una instruccin y no lo libera hasta haber finalizado de enviar todas las palabras. AFIRMACION II: Es falsa., en la estrategia de DMA transparente, el controlador de DMA hace uso del bus en aquellos ciclos durante la ejecucin de una instruccin en que la CPU no necesita utilizarlo. Puesto que el controlador de DMA requiere dos ciclos consecutivos para enviar una palabra y por otra parte la CPU nicamente no utiliza el bus, en el segundo de los tres que requiere para ejecutar una instruccin (ver Figura), nunca hay dos ciclos consecutivos en que el bus este libre y por lo tanto no se puede implementar el DMA con esta estrategia. 1 ciclo

Instr1

Instr2

Instr 3

26

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.37


DATOS n n n n Canal multiplexor 5 unidades de disco =>v TD=106 bytes/seg 5 unidades de cinta => v TC= 105 bytes/seg tbus=50 nseg

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.

vTcanal = 5 vTD + 5 vTC = 5 10 6 + 5 10 5 = 5.5 10 6 (bytes / seg )


La velocidad de transferencia del canal, v Tcanal, indica el nmero de bytes que se pueden transmitir entre un perifrico y la memoria principal en un segundo. A partir de v Tcanal se puede obtener el tiempo necesario para transmitir un byte entre un perifrico y M p.

t Tcanal =

1 vTcanal

1 10 9 1000 = = nseg = 181.81 nseg 6 6 9 5.5 5.5 10 5.5 10 10

La velocidad mxima de transferencia agregada a este sistema es:

vT max =

1 max( tbus , tTcanal )

1 t Tcanal

= vTcanal = 5.510 6 ( pal / seg )

27

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.38


DATOS n n n n n= 24 lneas de direccin. Memoria con 220 palabras Utiliza E/S aislada de memoria. R=1 direccin/perifrico

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 =

N DP 224 (direccione s ) = = 2 24 periferico s R 1( direccin / perifrico )

SOLUCION PROBLEMA 3.39


Afirmacin A: VERDADERA. Efectivamente un PE/S de tipo canal selector controla mltiples dispositivos de alta velocidad. Afirmacin B: VERDADERA. Efectivamente un PE/S de tipo canal multiplexor puede controlar de forma simultnea operaciones de E/S con mltiples dispositivos. Afirmacin B: VERDADERA. En E/S controlada por programa la CPU realiza entre otras operaciones, la comprobacin del estado del perifrico. Afirmacin D: FALSA. Las afirmaciones A, B y C son verdaderas.

28

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

SOLUCION PROBLEMA 3.40


DATOS n E/S controlada por programa. n El dispositivo de E/S tarda 6 mseg en tener el dato solicitado. t1=6 mseg n Se supone que: n - El computador slo se dedica a E/S. n - El bucle de espera se implementa con 1 instruccin.NBE=1 instr n - La lectura de un dato y la solicitud del siguiente dato por la CPU requiere 10 instrucciones.N2=10 instrucciones n - Cada instruccin de la CPU se ejecuta en t I=200 seg. La E/S controlada por programa se puede considerar formada por tres etapas, tal y como se como se muestra en la siguiente figura:
Tiempos de ejecucin Nmero de Instrucciones empleadas

t 1 (seg)

Bucle de espera

N 1 (instr )

T (seg) Lectura de un dato

N (instr )

t 2 (seg)

N2 (instr )

Peticin del siguiente dato

El tiempo total T que se tarda en ejecutar una E/S controlada por programa, ser la suma del tiempo t1 que permanece la CPU en el bucle de espera y del tiempo t2 que emplea la CPU en leer un dato y solicitar el siguiente:

T = t1 + t 2
Del enunciado se sabe que 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 ( seg ) = N 2 (instr )t I ( seg / instr ) = 10(instr )200( seg / instr) = 2 mseg


Por lo tanto

T = 2 + 6 = 8 mseg
Luego el porcentaje de tiempo P que dedica la CPU al bucle de espera es:

t 6 P = 1 100 = 100 = 75 % T 8

29

TEMA 3: UNIDAD DE ENTRADA SALIDA.

Solucin de los problemas.

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 ) =

T ( seg ) 810 3 = = 40 instr t I ( seg / instr ) 20010 6

n Nmero total de instrucciones N1 que ejecuta el programa de E/S en el bucle de espera

N1 (instr ) =
Tambin puede calcularse como:

t1 ( seg ) 610 3 = = 30 instr t I ( seg / instr) 20010 6

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) =

N1 ( instr) 30 = = 30 veces N BE (instr / vez) 1

30

SOLUCIN PROBLEMA 3 - 41

Estructura y Tecnologa de Computadores II

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

CONTROLADOR DE INTERRUPCIONES Mscara:

[ 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.

Examen junio 2003

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

Tabla 1: Tabla de la verdad del controlador (X representa 0 1 indistintamente).

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.

Estructura y Tecnologa de Computadores II

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

Tabla 2: Tabla de la verdad del controlador (X representa 0 1 indistintamente)

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.

Examen junio 2003

Figura 8: Controlador de interrupciones

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 .

Estructura y Tecnologa de Computadores II

Figura 9: Controlador de interrupciones capaz de atender a 6 perifricos.

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 4: Unidad Aritmtico-Lgica


SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen.

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.1


La solucin a este problema se encuentra en el fichero probT4_01.pdf.

SOLUCION PROBLEMA 4.2


La solucin a este problema se encuentra en el fichero probT4_02.pdf.

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

Figura 96-1-2 Diagrama de bloques de un comparador de dos bits

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

Tabla 96-1-1 Tabla de verdad del comparador de 1 bit

A partir de la Tabla 96-1-1 se deducen las siguientes funciones 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

Figura 96-1-3 Comparador de 2 bits solicitado en el apartado A)

B) Para comparar X e Y es necesario comparar cada bit de uno de ellos con el bit de igual peso del otro. Para hacer estas comparaciones utilizamos comparadores de 1 bit como el 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

Figura 96-1-4 Circuito lgico de un comparador de dos nmeros de 3 bits 4

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

Figura 96-1-5 Sumador paralelo de nmeros de 3 bits

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.

UAL x2x1x0 y2y1y0 c2 SUMADOR s2 s1 s0

x2x1x0 y2y1y0 COMPARADOR M I m

1 0 1 0 1 0

1 0 c0 MUX

c0 MUX

c0 MUX

c0 MUX

s3

s2

s1

s0

Figura 96-1-6 Estructura de la UAL pedida en el problema

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

xn-1 xn-2 ... x0 yn-1 yn-2 ... y0

Figura 96-2-1 Diagrama de bloques del comparador

Solucin

S1 / 100 10 11 00 01 S2 / 001 S0 / 010

xx

xx

Figura 96-2-2 Diagrama de estados del circuito

Un posible diagrama de transicin de estados para el comparador secuecial

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

Figura 96-2-3 Significado de los smbolos utilizados en el diagrama de estados

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.

Estado presente S0 (igual) S1 (mayor) S2 (menor)

00 S0 S1 S2

Entradas xi yi 01 10 S2 S1 S2 S1 S1 S2

11 S0 S1 S2

Salida MIm 010 100 001

Prximo estado
Tabla 96-2-2 Tabla de estados del comparador secuencial

B) Una posible codificacin de los estados es la mostrada en la Tabla 96-2-3.

Estado S0 (igual) S1 (mayor) S2 (menor)

Q1Q0 00 01 10

Tabla 96-2-3 Codificacin de los estados

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).

Estado pres. Q1Q0 00 01 10

00 00 01 10

Entradas xi yi 01 10 10 01 10 01 01 10

11 00 01 10

Salida MIm 010 100 001

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

Figura 96-2-4 Funciones de excitacin de los biestables del comparador

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

de ellas se obtienen las expresiones buscadas.

D 1 = x i y i Q 0 + Q 1 = x i yi Q 0 + Q 1 = x i y i Q 0 Q 1 D 0 = x i y i Q 1 + Q 0 = x i yi Q 1 + Q 0 = x i y i Q 1 Q 0

Finalmente 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

Tabla 96-2-5 Valor de la salida en funcin del estado

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

Figura 96-2-5 Circuito secuencial del comparador

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.3


a) Para conocer los mdulos de ROM necesarios, es necesario darse cuenta que el producto de un nmero binario B(b 2b 1b 0) de 3 bits por otro nmero binario A(A 1A 0) de 2 bits da como resultado un nmero binario P(p 4p 3p 2p 1p 0) de de 5 bits. b2 x p3 p2 b1 a1 p1 b0 a0 p0

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

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 %.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.4


DATOS n Dos nmeros X e Y de 12 bits representados en binario puro: n X= 0000 1100 0010 n Y= 0001 0111 0001 Para calcular la suma en BCD de estos dos nmeros binarios puros X e Y, hay que realizar los siguientes pasos: Pasar X de binario a decimal. X10= 27+26+21 =128 + 64 +2=194 Pasar Y de binario a decimal. Y10= 28+26+25+24+20 =256 + 64 +32+16+1=369 Sumar ambos nmeros en decimal. X10+Y10=S10= 563 Y finalmente pasar cada cifra de S10 de decimal a binario con lo que se obtiene la suma en BCD SBCD S10= 563 S BCD = 0101 0110 0011

SOLUCION PROBLEMA 4.5


El producto P [p 2n-1,...., p 0] de dos nmeros binarios X (xn-1,...,x0) e Y(yn-1,...,y 0) de n bits cada uno, posee un total de (n+n) bits, es decir, 2n bits. Por lo tanto la memoria que se requiere para implementar este multiplicador requiere un bus de direcciones de 2n bits (xn-1,...,x0,y n-1,...,y 0), para direccionar 2n posibles productos P con que tendrn un tamao de 2n bits [p 2n-1,...., p0] cada uno. Es decir, la capacidad de memoria necesaria es: C=22n palabras x 2n bits/palabra Puesto que se tienen mdulos de capacidad C0=2n palabras x n bits/palabra, hay que utilizar 4 mdulos de este tipo: dos para conseguir tener 22n palabras y otros dos para conseguir tener 2n bits/palabra. Se trata del tpico problema de ampliar el nmero de palabras y el nmero de bits utilizando mdulos de una capacidad dada (ver Tema-2).

SOLUCION PROBLEMA 4.6


En el libro de teora se explica que cuando se implementa un multiplicador binario mediante el algoritmo de lpiz y papel, para dos nmeros X de n bits e Y de m bits, con n>m, se requieren nm puertas AND y n(m1) sumadores binarios completos (SBC). Puesto que nos dicen en el enunciado que hay que multiplicar dos nmeros de n=m 8 bits . Entonces el nmero de puertas AND necesarias ser 88= 64 puertas AND.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.7


Del libro de teora se comprueba en un sumador binario completo SBC que las expresiones para el bit de suma s i y para el bit de acarreo ci, vienen dado por las siguientes expresiones:

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

SOLUCION PROBLEMA 4.8


Afirmacin I: Se tienen dos nmeros de n=4 bits y m= 3 bits, luego el mdulo de memoria ROM que se necesitara tendra una capacidad de C=2n+m palabras x (n+m) bits/palabra Es decir, C= 27 palabras x 7 bits/palabras, luego la afirmacin I es verdadera.

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.

SOLUCION PROBLEMA 4.9


De acuerdo con lo explicado en el libro de teora sobre las caractersticas de un sumador binario serie. Afirmacin I: El tiempo de calculo para sumar dos nmeros de n bits viene dado por t=n(+) siendo el tiempo en sumar 1 bits y el retardo del elemento de memoria. Por lo tanto, se observa que el tiempo de calculo depende del nmero de bits n a sumar. Por lo tanto, la afirmacin es Falsa. Afirmacin II: La estructura (complejidad) de un sumador binario serie es siempre la misma, independientemente del nmero de bits a sumar. Luego la afirmacin es Falsa.

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.10


DATOS n n n n Multiplicador binario XY X de 3 bits, Y de 6 bits Representados en binario puro sin signo Utilizando: n 2 memorias ROM de 64 palabras x 6 bits/palabra. n 2 sumadores binarios paralelos de 3 bits cada uno.

a) Sea el 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

p12 p 11 p10 Y1 ROM 1 26 x 6 X p 15 p14 p13

p5 p 4 p 3

000

p8 p7 p 6

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.11


De acuerdo con las expresiones generales para el resultado de la suma y el acarreo de salida de un SBC deducidas en el libro de teora(ver problema 4.7): Afirmacin I: Falsa. Afirmacin II: Verdadera.

SOLUCION PROBLEMA 4.12


La solucin a este problema se encuentra en el fichero probT4_12.pdf.

SOLUCION PROBLEMA 4.13


De acuerdo con las expresiones generales deducidas en el libro de teora para un comparador de nmeros de tamao n>1 implementado mediante un circuito combinacional:

M = M n 1 + I n 1 M n 2 + ... + I n 1 I n 2 ..I1 M 0 I = I n 1 I n 2 ...I 1 I 0 m = mn 1 + I n 1 mn 2 + ... + I n 1 I n 2 ..I 1m0


En el caso que se propone n=4,

M = M 3 + I 3 M 2 + I 3 I 2 M 1 + I 3 I 2 I1 M 0 I = I 3 I 2 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

SOLUCION PROBLEMA 4.14


De acuerdo con las expresiones generales deducidas en el libro de teora para el semisumador binario SSB de dos nmeros binarios de un bit., x e y

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

Figura 98-1-1: Mdulo UAL

6yQ R OX F L

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

Figura 98-1-2: Sumador Binario Completo

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:

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

Figura 98-1-3: Sumador-restador binario paralelo con propagacin de arrastre

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

A5 A4 A3 A2 A1 A0 b2 b1 b0 ROM 64 palabras 3 bits


x2 x 1 x0 y2 y1 y0 Comparador

Figura 98-1-4: Comparador diseado con memoria ROM

Direccin memoria (x2 x1 x0 y2 y1 y0) A5 A4 A3 A2 A1 A0

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

.....

Tabla 98-1-2: Contenido de las 16 primeras posiciones de memoria

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

Figura 98-1-5: UAL pedida en el problema

3UR E  OH P D 

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.15


DATOS n Dos nmeros binarios de 12 bits representados en cdigo BCD n XBCD = 0101 1000 1001 YBCD = 0011 0100 0111 El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario a decimal y realizar la suma: As: XBCD = 0101 1000 1001 = 5 8 9 YBCD = 0011 0100 0111 = 3 4 7 La suma SBCD =XBCD + YBCD = 9 3 6 = 1001 0011 0110

SOLUCION PROBLEMA 4.16


La solucin a este problema se encuentra en el fichero probT4_16.pdf.

SOLUCION PROBLEMA 4.17


El nmero de secuencias de arrastre viene dada por el nmero de veces que el bit xi=y i=1, en la figura se puede apreciar que se generarn 3 secuencias de arrastre:

100 1010 1001 0011 001 0101 1010 1011

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

3UR E  OH P D 

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

Figura 98-3-1: Mdulos del problema

6RO XL F y Q

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

Figura 98-3-2: SBC modificado

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.

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

Figura 98-3-3: Circuito de aceleracin de arrastres (CAA)

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

Figura 98-3-4: Sumador binario de 3 bits con aceleracin de arrastre

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.18


Para expresar la suma de un nmero binario X=[X7 X6 X5 X4 X3 X2 X1 X0] de 8 bits y de otro nmero binario Y=[Y3 Y2 Y1 Y0] de 4 bits, se requieren de 9 bits [C S7 S6 S5 S4 S3 S2 S1 S0] (el resultado S de 8 bits ms un bit de acarreo C). Por lo tanto para implementar todas los resultados posibles, se necesita una ROM de 2(8+4) palabras, cada palabra debe poseer 9 bits para almacenar el resultado y el acarreo. Luego la capacidad de la memoria ROM necesaria es:

C = 2 1 2 palabras x 9 (bits / palabra)


El bus de direcciones tendr 12 bits con el siguiente significado: [X7 X6 X5 X4 X3 X2 X1 X0 Y3 Y2 Y1 Y0], es decir, los operandos X e Y. El bus de datos tendr 9 bits con el siguiente significado: [C S7 S6 S5 S4 S3 S2 S1 S0], es decir, el bits de acarreo y el resultado de la suma.

SOLUCION PROBLEMA 4.19


Afirmacin I Si se quiere implementar con una ROM un multiplicador binario de dos nmeros binarios sin signo, X=[X2X1X0] de n= 3 bit ee Y=[Y1Y0] de m=2 bits. La memoria ROM deber tener tantas palabras como como combinaciones de X Y se puedan producir, es decir, 2(n+m) = 2(3+2)=25 palabras. Por otro lado la memoria ROM debe tener tantos bit por palabra como bits tenga el resultado del producto de XY, en general, el producto P de un nmero de n bits por otro de m bits posee n+m bits, es decir, en nuestro caso, 3+2+1=6 bits/palabra. Luego la capacidad de la memoria ROM necesaria es:

C = 2 5 palabras x 5 (bits / palabra)


Luego la afirmacin I, es FALSA. Afirmacin II: En el libro de teora se explica que cuando se implementa un multiplicador binario mediante el algoritmo de lpiz y papel, para dos nmeros X de n bits e Y de m bits, con n>m, se requieren nm puertas AND y n(m1) sumadores binarios completos (SBC). En nuestro caso n=3, m=2, se requeriran 32= 6 puertas AND y 3(2-1)= 3 SBC Luego la afirmacin II, es VERDADERA.

SOLUCION PROBLEMA 4.20


Por el mismo razonamiento realizado para comprobar la afirmacin I, del problema 4.19 con n=24 y m=16, la memoria ROM que se necesitara para implementar el multiplicador debe tener una capacidad de

CT = 2 (2 4+1 6) x ( 24 + 16 ) = 2 4 0 palabras x 40 bits / palabra

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.21


En el libro de teora se explica que cuando se implementa un multiplicador binario mediante el algoritmo de lpiz y papel, para dos nmeros X de n bits e Y de m bits, con n>m, se requieren nm puertas AND y n(m1) sumadores binarios completos (SBC). En nuestro caso n=4, m=4, se requeriran 44= 16 puertas AND y 4(4-1)= 12 SBC Afirmacin I : Puesto que un sumador binario con aceleracin de arrastre de 4 bits es equivalente a 4 SBC. Se tendran 4+8 =12 SBC, que junto con las 16 puertas AND disponibles permiten construir el multiplicador binario pedido. VERDADERA. Afirmacin II: Es FALSA, ya que slo nos dan 8 SBC, faltaran 4, y no nos dan las 16 puertas AND necesarias.

SOLUCION PROBLEMA 4.22


De acuerdo con la seccin 4.2.2 del libro de teora dedicada a los sumadores con anticipacin de arrastre, la expresin general del bit de arrastre de la etapa ci , en funcin de los bits de propagacin de arrastre (p i, pi1,...,p 0) y de los bits de generacin de arrastre (g i, g i-1,...,g 0), es:

ci = g i + pi g i 1 + pi p i 1 g i 2 + ... + pi p i 1 .... p1 g 0 + pi p i 1 .... p 0 c 1


La expresin que dan en el enunciado es:

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.

SOLUCION PROBLEMA 4.23


El circuito que se quiere implementar tiene 2 entradas de 4 bits cada una para los operandos X [x3x2x1x0] e Y [y 3y 2y 1y 0]. Y una entrada adicional M de 1 bit para indicar si la operacin es de suma o de resta. Luego el nmero total de bits de entrada de este circuito es 9. Por otro lado, este circuito debe tener dos salidas, una de 4 bits para indicar el resultado de la resta o de la suma y un bits de acarreo. Luego el nmero total de bits de salida del circuito es 5. La tabla de verdad o tabla de funcionamiento del circuito constara de 9 bits de entradas y de 5 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

CT= 29 palabras x 5 bits/palabra


Afirmacin I: FALSA. La capacidad de la ROM es inferior a CT . Afirmacin II: VERDADERA. La capacidad de la ROM es superior a CT .

12

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.24


DATOS n Dos nmeros binarios de 16 bits representados en cdigo BCD n XBCD =0011 1001 0101 0100 YBCD = 0011 1001 0000 0110 El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario a decimal y realizar la suma: As: XBCD= 0011 1001 0101 0100 = 3 9 5 4 YBCD= 0011 1001 0000 0110 = 3 9 0 6 La suma SBCD =XBCD + YBCD = 7 8 6 0 = 0111 1000 0110 0000

SOLUCION PROBLEMA 4.25


El circuito que se quiere implementar tiene 1 entrada de 3 bits para el operando X [x2x1x0] y una entrada de 4 bits para el operando Y [y 3y 2y 1y 0]. Luego el nmero total de bits de entrada de este circuito es 7. Por otro lado, este circuito debe tener dos salidas, de 1 bits cada una, M (si x>y) e I(x=y). Luego el nmero total de bits de salida del circuito es 2. La tabla de verdad o tabla de funcionamiento del circuito constara de 7 bits de entrada y de 2 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

CT= 27 palabras x 2 bits/palabra


Afirmacin I: VERDADERA. La capacidad de la ROM es superior a CT. Afirmacin II: VERDADERA. La capacidad de la ROM es superior a CT.

SOLUCION PROBLEMA 4.26


La solucin a este problema se encuentra en el fichero probT4_26.pdf.

SOLUCION PROBLEMA 4.27


La expresin lgica

( x + y ) xy se puede desarrollar de la siguiente forma: ( x + y ) xy = ( x + y ) ( x + y ) = yx + yx = x y

Que se corresponde con la expresin lgica del bit de suma s= x Por lo tanto la respuesta correcta es la A

y.

SOLUCION PROBLEMA 4.28


De acuerdo con lo que se explica en el libro de teora sobre las caractersticas de un sumador binario serie, este dispositivo solamente requiere de 1 SBC de 1bit.

13

SOLUCIN PROBLEMA 4 - 26

6yQ R OX F L

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

Figura 2000-2-2: Circuito lgico de un comparador de dos nmeros de 2bits

b) Para calcular el tamao de la memoria ROM necesaria hay que saber el nmero entradas y salidas del
circuito.

Entradas. Este circuito tiene 5 entradas: 2 para la entrada de datos X (x1x0), 2 para la entrada de datos Y (y1y0) y una entrada de control (c) para la seleccin de la operacin a realizar por el circuito. Esta ltima entrada de control va a tener el siguiente significado:

c = 0: Suma c = 1: Producto

Salidas: Este circuito tiene 4 salidas. El resultado de la suma de dos 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

A4 A3 A2 A1 A0 b3 b2 b1 b0 ROM 32 palabras 4 bits


x 1 x0 y1 y0 Sumador / Multiplicador

b3

b2

b1

b0

Figura 2000-2-3: Sumador/Multiplicador diseado con memoria ROM

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

Tabla 2000-2-2: Contenido de la memoria ROM

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

Figura 2000-2-4: UAL pedida en el problema

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.29


El circuito que se quiere implementar tiene 2 entradas de 8 bits cada una para los operandos X e Y. Adems el circuito tiene 5 entradas de 1 bit, C, ed, eI, d1 y d0. Luego el nmero total de bits de entrada de este circuito es 21. Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el nmero total de bits de salida del circuito es 8. La tabla de verdad o tabla de funcionamiento del circuito constara de 21 bits de entradas y de 8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

CT= 221 palabras x 8 bits/palabra


Afirmacin I: La memoria total entre las dos ROM propuestas en la afirmacin es C=217 palabras x8 bits/palabra. Por lo que podra pensarse que esta afirmacin es falsa. Pero si se lee atentamente el enunciado se observa que se trata de dos circuitos independientes, por un lado un comparador y por otro un desplazador, que se puede implementar con las dos memorias ROM y con una puerta lgica NOT : Comparador : Tiene 2 entradas de 8 bits cada una para los operandos X e Y.. Luego el nmero total de bits de entrada de este circuito es 16. Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el nmero total de bits de salida del circuito es 8. La tabla de verdad o tabla de funcionamiento del circuito comparador constara de 16 bits de entradas y de 8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

C= 216 palabras x 8 bits/palabra


Desplazador: Tiene 1 entradas de 8 bits para el operando X y 4 entradas de 1 bit ed, eI, d1 y d 0 Luego el nmero total de bits de entrada de este circuito es 12. Por otro lado, este circuito debe tener 1 salidas de 8 bits para indicar el resultado. Luego el nmero total de bits de salida del circuito es 8. La tabla de verdad o tabla de funcionamiento del circuito comparador constara de 12 bits de entradas y de 8 bits de salida. Esta tabla puede ser implementada por una memoria ROM que disponga de una capacidad mnima :

C= 212 palabras x 8 bits/palabra


Y 8 X 8

ROM 216x8
H

ed ei d1 d2
C
1

1 1 1 1

ROM 216x8
H

R 8 8

14

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

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.

SOLUCION PROBLEMA 4.30


De acuerdo con lo que se explica en el libro de teora sobre las caractersticas de un sumador binario completo SBC, este se puede construir de al menos dos modos: 1) Se puede construir con dos niveles de puertas lgicas, un nivel de puertas AND y un nivel de puertas OR. 2) Tambin, se puede construir con 2 SSB y una puerta OR. Afirmacin I: VERDADERA. Afirmacin II: VERDADERA. Ya que si se construye del modo1, puesto que un SSB requiere de dos niveles de puertas AND-OR, habra que atravesar un total de 4 niveles como mximo, el retardo sera mayor que si se construye el SBC del modo 2.

SOLUCION PROBLEMA 4.31


En el libro de teora se deducen las expresiones de los bits de suma y de acarreo en un sumador binario completo (ver Problema 4.7). Por lo tanto, las expresiones E1 y E2 son equivalentes a:

E1 = x1 y1 c0 E2 = x1 y1 + ( x1 y1 ) c0
Es decir, E1 y E2 son respectivamente S1 y C1. Luego la respuesta correcta es la A

SOLUCION PROBLEMA 4.32


De acuerdo con lo que se explica en el libro de teora sobre las caractersticas de un sumador binario serie (ver Problema 4.9) Afirmacin I: FALSA. Ya que la complejidad de un sumador binario serie es siempre la misma independientemente del nmero de bits que tenga que sumar. Afirmacin II: VERDADERA.

15

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.33


Afirmacin I: Si se usa lgica combinacional de dos niveles y cada puerta tiene un retardo de 5 s, el retardo total es t=25=10 s. La afirmacin es FALSA Afirmacin II: En un sumador binario paralelo (sumador con propagacin de arrastre), en el caso ms desfavorable el resultado no ser efectivo hasta que no haya pasado un tiempo t=n, donde n es el nmero de bits y es el tiempo que tarda un SBC en generar el arrastre para la etapa siguiente. Segn el enunciado n=4 bits y =10 s, luego t=40 s. La afirmacin es VERDADERA..

16

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.34


De acuerdo con las expresiones generales deducidas en el libro de teora para un comparador de nmeros de tamao n>1 implementado mediante un circuito combinacional:

M = M n 1 + I n 1 M n 2 + ... + I n 1 I n 2 ..I1 M 0 I = I n 1 I n 2 ...I 1 I 0 m = mn 1 + I n 1 mn 2 + ... + I n 1 I n 2 ..I 1m0


En el caso que se propone n=5, ya que el nmero Y de cuatro bits se puede considerar que tiene 5 bits suponiendo y 4=0, luego

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,

x 4 = 1 , por lo tanto se llega M = x 4 + M 3 + I 3 M 2 + I 3 I 2 M 1 + I 3 I 2 I 1M 0 I = x4 I 3 I 2 I 1 I 0

Afirmacin I: Verdadera Afirmacin II: Verdadera

SOLUCION PROBLEMA 4.35


Puesto que un sumador binario paralelo de nmeros de 8 bits, se puede implementar con 8 SBC. Como un SBC se puede implementar con 2 SSB y 1 puerta OR. Entonces el sumador pedido requerira 28=16 SSB y 18=8 puertas OR.

17

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.36


DATOS n Dos nmeros binarios de 12 bits representados en cdigo BCD n XBCD = 0101 0001 1001 YBCD = 0011 0100 0111 n XBCB- YBCD expresado en cdigo BCD? El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario a decimal y realizar la resta: As: XBCD = 0101 0001 1001 = 51910 YBCD = 0011 0100 0111 = 34710 La resta XBCD - YBCD = 17210 que expresada en cdigo BCD resulta 0001 0111 0010.

SOLUCION PROBLEMA 4.37


La solucin a este problema se encuentra en el fichero probT4_37.pdf.

SOLUCION PROBLEMA 4.38


DATOS n Circuito secuencial sncrono con dos estados (S0, S1).y con dos entradas (x,y) n Q es la variable de estado, que puede tomar los valores 0 para referirse al estado S0 y 1 para referirse al estado S1. n El circuito se disea utilizando un elemento de memoria de tipo D. FORMA 1: La forma ms adecuada de resolver este ejercicio consiste en construir la tabla de la verdad de cada una de las soluciones propuestas y compararlas con los valores de D(t) obtenidos de la tabla de estados del enunciado. (Q(t), x , y) De la Tabla D(t) Solucin A
D (t ) = Q xy + Q x y

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

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

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

Luego la expresin simplificada obtenida con este mtodo es:

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

SOLUCION PROBLEMA 4.39


DATOS n Dos nmeros binarios de 12 bits representados en cdigo BCD n XBCD = 1001 0011 0101 YBCD = 0001 0101 0001 n Resto divisin entera XBCB/YBCD expresado en binario? El mtodo ms rpido y sencillo para resolver este problema, es pasar cada cifra BCD codificada en binario a decimal y realizar la resta: As: XBCD = 1001 0011 0101 = 93510 YBCD = 0001 0101 0001 = 15110 El resto de la divisin entera XBCD /YBCD = 02910 que expresado en binario resulta 0000 0001 1101.

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

Figura 1: Registros de desplazamiento

Operacin

C2

C1

NOP LICS LDCS CARGA

0 0 1 1

0 1 0 1

Tabla 1: Codificacin de las entradas de control

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

Figura 2: Representacin grfica de los desplazamientos LDCS y LICS

Por tanto, la descripcin del comportamiento de la salida del circuito es la siguiente:

Q(t ) (Q , Q , Q , Q ) Q(t + 1) = 2 1 0 3 (Q0 , Q3 , Q2 , Q1 ) ( E 3, E 2, E1, E 0)

si Control = NOP si Control = LICS si Control = LDCS si Control = CARGA

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

Figura 3: Registro LDCS y LICS con entrada paralelo / salida paralelo

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

Figura 4: Registro de 4 bits con entrada serie / salida serie

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 )

si Control = NOP si Control = LICS si Control = LDCS si Control = CARGA

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

Figura 5: Registro LDCS y LICS con entrada serie / salida serie

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

NOP AICS ADCS CARGA

0 0 1 1

0 1 0 1

Tabla 2: Codificacin de las entradas de control

S ADCS

S AICS

Figura 6: Representacin grfica de los desplazamientos ADCS y AICS

Por tanto, la descripcin en este caso del comportamiento de la salida del circuito es la siguiente:

Q(t ) (Q , Q , Q , Q ) Q(t + 1) = 3 1 0 2 (Q3 , Q0 , Q2 , Q1 ) ( E 3, E 2, E1, E 0)

si Control = NOP si Control = AICS si Control = ADCS si Control = CARGA

Siguiendo el mismo procedimiento de antes, la Figura 7 contiene el diseo pedido.


E3 E2 E1 E0

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

Figura 7: Registro LDCS y LICS con entrada paralelo / salida paralelo

TEMA 4: UNIDAD ARITMETICO-LOGICA

Solucin a los problemas propuestos en examen

SOLUCION PROBLEMA 4.40


DATOS n X= 010 1000 1110 n Secuencia de desplazamiento LICS, LDCS, LICS, LDCS, LICS, LDCS y LDCS, Con la notacin LICS se est haciendo referencia a un desplazamiento de un bit, de tipo Lgico, hacia la Izquierda, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LICS(X)= 101 0001 1100


Mientras que con la notacin LDCS se est haciendo referencia a un desplazamiento de un bit, de tipo Lgico, hacia la Derecha, Cerrado y Simple. Luego aplicando un desplazamiento de este tipo a X se obtiene:

LDCS(X)= 001 0100 0111


Si ahora se aplica LICS sobre LDCS(X) se obtiene

LICS(LDCS(X))= 010 1000 1110=X


Se observa que la aplicacin de un desplazamiento LICS seguido por un desplazamiento LDCS se cancelan y se sigue manteniendo X. En consecuencia, el resultado de la secuencia de desplazamientos:

(LICS LDCS) (LICS LDCS) (LICS LDCS) LDCS


es equivalente a la realizacin de una nico desplazamiento LDCS (X). Es decir, el resultado es:

LDCS(X)= 001 0100 0111

SOLUCION PROBLEMA 4.41


DATOS n C0= 2n palabras x 1bit/palabra n Implementacin de un sumador de dos nmeros de n bits y 2n bits La suma de un nmero X de n bits (Xn-1, Xn-2,...,X0) y de un nmero Y de 2n bits (Y2n-1, Y2n-2,..., Y0), da como resultado un nmero R de 2n bits (R2n-1, R2n-2,..., R0)adems hay que considerar un bit de acarreo c, luego. Es decir el sumador combinacional debe poseer (n+2n) entradas y (2n+1) salidas. En definitiva para implementar este sumador se necesita una memoria ROM de la siguiente capacidad CT :

CT = 2 N de entradas pal N salidas (bits / pal ) CT = 2 n + 2 n pal ( 2n + 1)(bits / pal ) CT = 2 3 n pal ( 2n + 1)( bits / pal )
Luego el nmero de mdulos N de capacidad C que se requieren para implementar una memoria de 0 capacidad CT es:

N=

CT 23 n pal 2n + 1 (bits / pal ) = x = 2 2 n (2 n + 1) mdulos C 0 2 n pal 1 ( bits / pal )

20

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 5: Diseo de transferencia entre registros


SOLUCION A LOS PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2002-2003 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.1


n Disear una UC con memoria ROM con: n 200 estados n Genere 37 seales de control independientes entre si. n 9 seales de condicin. n En cada estado se consulta una seal de condicin como mximo. n Interesa sobre todo minimizar el tamao del multiplexor a utilizar. Puesto que en cada estado se consulta una seal de condicin como mximo, es posible utilizar para el diseo de la Unidad de Control las siguientes configuraciones: a) Memoria ROM + registro + multiplexor de seleccin por estado. b) Memoria ROM + registro + multiplexor de seleccin por campo. De los datos del enunciado se deduce que: variables de estado n=8 ya que 28=256>200 estados seales de control : m=37 seales de condicin : q=9 (2h =16) h=4 En la configuracin a) segn lo estudiado en teora, el multiplexor utilizado tiene 2n=28=256 entradas y n=8 seales de seleccin. En la configuracin b) segn lo estudiado en teora, el multiplexor utilizado tiene 2h=24=16 entradas y h=4 seales de control. Luego es en la configuracin b) donde se minimiza el tamao del multiplexor . Afirmacin I: Falsa Afirmacin II: Verdadera

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.2


DATOS n Disear una UC con : n 18 estados n Genere m=30 seales de control independientes entre si. n q=4 seales de condicin. n Utilizar memoria ROM, pero minimizando la capacidad de la misma. n En cada estado se utiliza como mximo una condicin. n Utilizar un multiplexor por seleccin por campo Se tienen 18 estados luego es necesario n=5 variables de estado para codificarlos. La capacidad de la ROM necesario es: C = 2 n+1 (n + m + log2 q ) = 2 6 x(5 + 30 + 2 ) = 2 6 pal x 37 bit / pal El registro tiene la siguiente estructura: log2q bits Luego debe de tener una capacidad de CR=log 2q+n=2+5=7 bits El multiplexor al ser del tipo de seleccin por campo, tiene q=4 entradas y requiere de log2q=2 seales de seleccin. El esquema de la Unidad de Control implementada con los anteriores elementos sera el que se muestra en la siguiente figura: n bits

MUX(4) q 4 1 6 26 x ROM 37 bits

2 log2 q 2 5

5 n m=30

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.3


a) DISEO DE LA UNIDAD DE PROCESAMIENTO 1) El primer paso es conocer el tipo y nmero de 1: Declaracin: A[8], B[8], Cont[3]; Bus[8] componentes necesarios para disear la Unidad de 2: A Bus; Procesamiento. De la observacin del algoritmo se deduce 3: B Bus, Cont=0; 4: while Cont 7 que es necesario: 5: if A es par then Un registro de 8 bits para el almacenamiento de A. 6: A A B, Cont = (Cont +1) mod 8; Un registro de 8 bits para el almacenamiento de B. 7: else Un contador mdulo-8. 8: B B + A, Cont = (Cont -1) mod 8; Un elemento de clculo (UAL) que realice la suma y la 9: endif; resta de dos nmeros binarios de 8 bits. 10: endwhile; Puesto que al registro A se le pueden cargar datos 11: Bus B; 12: Bus A; desde el bus (ABus) o desde la UAL (AA - B) es 13: Parar; necesario un multiplexor de dos salidas MUX(2). Puesto que al registro B se le pueden cargar datos desde el bus (BBus) o desde la UAL (BB - A) es necesario un multiplexor de dos salidas MUX(2). Como tanto el registro A como el registro B deben volcar su contenido al Bus ( BusA, BusB), es necesaria la utilizacin de 2 puertas triestado de conexin unidireccional con control de 8 bits. Se necesita una puerta AND, que reciba como entradas las 3 salidas del contador, de tal forma que la salida de la puerta valdr 1 cuando el contador alcance el valor 7(111). Finalmente se comprueba, mediante la lectura atenta del enunciado del problema, que todos los componentes que se necesitan son elementos disponibles. 2) El segundo paso es definir las seales de condicin que sern salidas de la Unidad de Procesamiento. De la observacin del algoritmo se deduce que hay dos seales de condicin: s 0 que valdr 1 cuando el contador alcance el valor 7. s 1 que corresponde al bit menos significativo del nmero A. Si s1=0 el nmero es par sino es impar 3) El tercer paso es numerar los puntos o seales de control y especificar la funcin que realiza cada una de estas seales. -Seales de control Luego la Unidad de Procesamiento diseada requiere de 11 seales de control (c 10,.....,c0). c0 selecciona Bus si vale 0, selecciona UAL si vale 1. c1 selecciona Bus si vale 0, selecciona UAL si vale 1. c2 cuando vale 1 , se realiza la microperacin Bus A c3 cuando vale 1 , se realiza la microperacin Bus B c5c4 control del registro de desplazamiento A.(Ver enunciado) c7c6 control del registro de desplazamiento B. (Ver enunciado) c8 control de la UAL ( si vale 0 :suma, si vale 1 :resta) c10c9 control del contador. (Ver enunciado) -Comentario Las entradas ED y EI de los registros de desplazamiento no se utilizan y pueden conectarse a 0 o a 1 indistintamente.

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

s1 =A0 Figura 1 : Diseo de la Unidad de Procesamiento

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, se pasa al estado S y de este se pasa al estado S . Este estado 0 1 2 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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

En la Tabla 1 se muestran las microperaciones y las seales de control asociadas a cada estado. Estado S0 S1 Microoperaciones ABus BBus, Cont=0 ------AA-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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

Figura 3 :Unidad de Control diseada con un elemento de memoria por estado

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

Prximo Estado Q2 Q1 Q0 c10 c9 c8 c7 c6 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 Tabla 2 : Contenido de la memoria ROM

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

A4 A3 A2

3 2

ROM 25 x 14 Q(t+1) Q(t) 3


Seales de control

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, se pasa al estado S y de ste se pasa al estado S . Este estado 0 1 2 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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

Direccin de la ROM A4A3A2A1A0 Estado actual


Cond

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

s 0 1 0 1 0(s 0) 1(s 0) 0(s 1) 1(s 1) 0 1 0 1 0 1 0 1 0 1

Q1 Q0 c10 c9 c8 c7 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 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 : Contenido de la memoria ROM

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

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

4 Q(t+1) 11 Seales de control Q(t)

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.4


DATOS n Disear una UC con memoria ROM con: n 200 estados n Genere 37 seales de control independientes entre si. n 9 seales de condicin. n En cada estado se consulta una seal de condicin como mximo. n Utilizar un multiplexor con seleccin por campo. Del enunciado se deduce que se debe disear una Unidad de Control con los siguientes componentes: Memoria ROM + registro + multiplexor de seleccin por campo. Adems de los datos del enunciado se deduce que: variables de estado n=8 ya que 28=256>200 estados seales de control : m=37 seales de condicin : q=9 2h h=4 El nmero de entradas totales del multiplexor es 2h= 24=16, de las cuales slo se utilizan 9 (entradas 0 a 8), una para cada seal de condicin, el resto ( desde la entrada 9 hasta la 15) se colocan a 0. La capacidad de la ROM sera :

C = 2n+1 x (log2q + n + m)=2 9 x (4+8+37)


C = 29 palabras x 49 (bits/palabra)
La respuesta correcta es la C

14

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.5


La solucin de este problema se encuentra en el fichero probT5_05.pdf.

SOLUCION PROBLEMA 5.6


DATOS n Disear una UC con memoria ROM con: n 18 estados n Genere 30 seales de control independientes entre si. n 4 seales de condicin. n En cada estado se consulta una seal de condicin como mximo. n Utilizar un multiplexor con seleccin por estado Del enunciado se deduce que se debe disear una Unidad de Control con los siguientes componentes: Memoria ROM + registro + multiplexor de seleccin por estado. Adems de los datos del enunciado se deduce que: variables de estado n=5 ya que 25=32>18 estados seales de control : m=30 seales de condicin : q=4 La capacidad de la ROM necesario es: C = 2 n+1 (n + m ) = 2 6 x(5 + 30 ) = 2 6 pal x 35 bits / pal El registro tiene que almacenar las variables de estado luego debe de tener una capacidad de n=5 bits. El multiplexor al ser del tipo de seleccin por estado, tiene 25 entradas y requiere de 5 seales de seleccin. Es decir es un MUX 32 :1.

La respuesta correcta es la A.

15

SOLUCIN PROBLEMA 5-5

3 UD  RE O H P

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.

Figura 99-2-1: Mdulos del problema y debajo su tabla de funcionamiento

6yQ R OX F L

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

Figura 99-2-2: Unidad de Procesamiento

El significado de las seales de control se muestra en la Tabla 99-2-1.

Seales de Control

Operacin

C0 C1, C2 C3, C4 C5 C6, C7 C8

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

A BUS B BUS Tabla 99-2-1: Significado de las seales de control

b) El diagrama de estados de la Unidad de Control que realiza el algoritmo pedido en la Unidad de


Procesamiento propuesta se muestra en la Figura 99-2-3 (la solucin no es nica y no se ha buscado minimizar el nmero de estados). El significado de cada uno de sus estados se detalla en la Tabla 99-2-2.

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

Tabla 99-2-2: Significado de los estados

S0

S1

S2 s0 S3 s1 S4

s0

s1

S5

S6

S7

S8

S9

Figura 99-2-3: Diagrama de estados de la Unidad de Control propuesta

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

1 1 1 1 (15) 0 1 0 1 (5) 1 0 1 0 (10) 0 1 1 1 (7) 1 0 1 1 (11) 1 1 0 1 (13)

Tabla 99-2-3: Tabla de transicin de estados

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 -

C0, C1, C2 C3, C4, C6, C7

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

----0101 1010 ----1100 -------------

DD L L DD L DD DD ---

1 1 1 1 -

------

S4 = 1 1 1 1 (15) S5 = 0 1 0 1 (5) S6 = 1 0 1 0 (10) S7 = 0 1 1 1 (7) S8 = 1 0 1 1 (11) S9 = 1 1 0 1 (13)

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

S0 (C0, C1, C2)

S5 (C0, C1, C2, C5, C8) S7 (C10) S1 (C3, C4, C6, C7) S6 (C6, C7) S8 (C9) S2 (---) S9 (---) S3 (---) S4 (C0, C1, C2, C5, C8)

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)

3U  RE O  H P D 

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.7


DATOS n Disear una UC con: n 32 estados n Genere 4 seales de control independientes entre si. n 2 seales de condicin. n En cada estado se pueden consultar las dos seales de condicin simultneamente. De los datos del enunciado se deduce lo siguiente ; variables de estado n=5 ya que 25=32 estados seales de control : m=4 seales de condicin : q=2 Vamos a ir analizando cada una de las afirmaciones: A) Si se utiliza la tcnica de los elementos de retardo sera necesario utilizar 32 elementos de retardo, uno por cada estado y no 5 como dice el enunciado. Luego la afirmacin es falsa. B) Si se utiliza una memoria ROM se requiere que tenga una capacidad de C= 2n+q x (n+m)= 27 palabras x 9 bits/palabra. Luego la afirmacin es falsa. C) Si se utiliza un contador, este debe ser de mdulo- 25. Luego la afirmacin es falsa. La respuesta correcta es la D.

SOLUCION PROBLEMA 5.8


DATOS n Disear una UC con: n 64 estados n Genere 30 seales de control independientes entre si. n 5 seales de condicin. n En cada estado se pueden consultar diferentes seales de condicin simultneamente. De los datos del enunciado se deduce lo siguiente ; variables de estado 64=26 =>n=6 seales de control : m=30 seales de condicin : q=5 Vamos a ir analizando cada una de las afirmaciones: A) Si se utiliza la tcnica de los elementos de retardo sera necesario utilizar 64 elementos de retardo, uno por cada estado y no 6 como dice el enunciado. Luego la afirmacin es falsa. B) Si se utiliza una memoria ROM se requiere que tenga una capacidad mnima de C= 2n+q x (n+m)= 211 palabras x 36 bits/palabra. La afirmacin es falsa C) Si se utiliza un contador, este debe ser de mdulo- 26. Luego la afirmacin es Verdadera. La respuesta correcta es la C.

16

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.9


La solucin de este problema se encuentra en el fichero probT5_09.pdf. Explicacin previa a la resolucin del problema En el algoritmo que hay que implementar se plantea la multiplicacin y la divisin de un nmero binario por 2. Para realizar estas operaciones es necesario recordar como se pasa un nmero binario a decimal: [xn-1 xn-2...x0] binario a decimal xn-12n-1+ xn-22n-2+...+x020

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.

SOLUCION PROBLEMA 5.10


La solucin de este problema se encuentra en el fichero probT5_10.pdf.

SOLUCION PROBLEMA 5.11

17

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

La solucin de este problema se encuentra en el fichero probT5_11.pdf.

SOLUCION PROBLEMA 5.12


La solucin de este problema se encuentra en el fichero probT5_12.pdf.

SOLUCION PROBLEMA 5.13


n Disear una UC con memoria ROM con: n 200 estados n Genere 37 seales de control independientes entre si. n 9 seales de condicin. n En cada estado se consulta una seal de condicin como mximo. n Se utiliza el diseo con un multiplexor con seleccin por campo Se tiene una Unidad de Control diseada con Memoria ROM + registro + multiplexor de seleccin por campo. De los datos del enunciado se deduce que: variables de estado n=8 ya que 28=256>200 estados seales de control : m=37 seales de condicin : q=9 2h h=4

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

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.14


n Disear una UC con memoria ROM con: n 128 estados n Genere 244 seales de control independientes entre si. n 20 seales de condicin. n La memoria ROM utilizada tiene un coste de 10 ptas/Kbit De los datos del enunciado se deduce que: variables de estado n=7 ya que 27=127 estados seales de control : m=244 seales de condicin : q=20 2hh=5

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.

SOLUCION PROBLEMA 5.15


La solucin de este problema se encuentra en el fichero probT5_15.pdf.

SOLUCION PROBLEMA 5.16


La solucin de este problema se encuentra en el fichero probT5_16.pdf.

19

TEMA 5: DISEO DE TRANSFERENCIA ENTRE REGISTROS

Solucin problemas

SOLUCION PROBLEMA 5.17


La solucin de este problema se encuentra en el fichero probT5_17.pdf.

20

SOLUCIN PROBLEMA 5-9

3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:

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

Figura 98-2-1 M : dulos del problema con sus tablas de funcionamiento

6yQ R OX F L

2 o 1 A) En la Figura 98-2- se muestra un posible diseo de la Unidad de Procesamient y la Tabla 98-2- el significado de todas la seales de control utilizadas. Repasando en algoritmo vemo que permite realizar todo y s s cada uno de sus pasos:

Los registros A y Bpueden cargar valores desde el bus del sistema o desde la salida de la UAL.Un multiplexor a a entrada de cada uno de estos registros permite seleccionar qu dato es el que se va a l 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 instante: r
so:

es la suma lgica de todos los bits del sumador. Su valor es cero cuando el contador est a cero.

s1:

es el bit menos significativo del contador. Suvalor es 0 cuando el contador tiene valor par, y es 1 cuando el contador tiene valor impar.
Bus

c5

c7

c8

MUX c Reg. des. c0 1 A c1 c2

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)

Inicio Fin Reloj

Circuito de Control

c0 c1

Unidad de Procesamiento

c10 Unidad de Control

e Figura 98-2-2 Diseo de la Unidad de Proc samiento :

Seal de Control c0 c2 y c1 c4 y c3 c5 c6 c7 c8 c10 y c9

Operacincontrolada Control de la UAL: Su (0) y Resta (1), ma Control registro A: Nada (00), Des. Dcha.(01), Des. Izq. (10) y Carga (11) Control registro B: Nada (00), Des. Dc a. (01), Des. Iz . (10) y C h q arga (11) Seleccin MUX ntrada de A: UAL (0)y Bus (1) e Seleccin MUX ntrada de B: UA (0) y Bus (1) e L 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 (11) ada

Tabla 98-2-1: Descripcin de la seales de control de la Unidad de P rocesamiento

B) Para describir el funcionamiento de la Unid de Control, diseamos el diagrama de transicin de estados de la ad Figura 98-2-3 donde la descripcin detallada de las cciones a realizar en cada un de estos estados viene dad a en la a 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 de Procesamiento diseada en el apartado anterior. Se puede d 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

Figura 98-2 -3: Diagrama de estados de la Unidad de Control

Estadode la Unidad de Control S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10

Microoperaciones efectuadas Ninguna A Bus


Reset Cont

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

B Bus Ninguna A A+ B Incrementar Cont Desplazar Derecha A B B- A


Incrementar Cont

Desplazar Izquierda B Bus A Bus B Ninguna

trol Tabla 98-2 -2: Acciones tomadas por la Unidad de Con en cada estado

Para implementar esta Unidad de Control vamos a empler el mtodo de los elementos de r a etardo. El diseo correspondiente se muestra en la Figura 98-2-4.

Inicio=0 S0 S0 Inicio=1 S1 Inicio Set

S1

S2

c1, c2, c5, c9

c3, c4, c6

S2

s1 s1= 1

S3

S3
s1= 0

S4
s0= 1

S4

c1, c2, c10


s0

S5

c1

S5

s0= 0

S6

c0, c3, c4 ,c10

S6
s0

S7

c4

s0= 1

S7
s0= 0

S8

S8

c7

S9

c8

S9


S10

S10
Reloj Clear

Figura 98-2-4 Unidad de Control :

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

Figura 96-3-1 Mdulos del problema y debajo su tabla de funcionamiento

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

por lo que se puede fijar una de ellas, la ms significativa c1, directamente a 0.

Bus
0 1

MUX c Reg. des. c0 1 A

c0 C c Reg. des. c0 1 B c0 c1 c2 0 c Reg. des. c0 1 C(1) C(0) c3 c4

ED

c1 0

ED

ED

B c0 c1 UAL

c5 c6 s1

Contado r

c7 c8

s0= C(0) C(1)

Inicio Fin Reloj

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)

Tabla 96-3-1 Descripcin de la seales de contro lde la Unidad de Procesamiento

B) Un posible diagrama de estados para la Unidad de Control que gobierne el funcionamiento de la Unidad de Procesamiento de la Figura 96-3-2, es el mostrado en la Figura 96-3-3. La Tabla 96-3-2 da una 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

Figura 96-3-3 Diagrama de estados de la Unidad de Control

Estado de la Unidad de Control S0

Microoperaciones efectuadas A Bus contado r 0 B Bus C Bus Ninguna AA/B AA+B Desplazar derecha C Incrementar contador Ninguna

Seales de control a activar c0, c1, c7

S1 S2 S3 S4 S5 S6 S7 S8

c2 c3 Ninguna c1, c6, c7 c1 c4 c8 Ninguna

Tabla 96-3-2 Acciones tomadas por la Unidad de Control en cada estado

El mtodo de diseo utilizando elementos de retardo es prcticamente una transcripcin directa del diagrama de estados. En l Figura 96-3-4 se muestra a 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

Figura 96-3-4 Unidad de Control

SOLUCIN PROBLEMA 5 - 11

7: 8: 9: 10: 11: 12:

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)

R A+B A-B A*B A/B

Q(t+1) Q(t) 0 Q(t)+1 mod 8 Q(t)

Figura 97-2-1 Mdulos del problema y debajo su tabla de funcionamiento

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

van a utilizar dos valores de sus entradas de control


c1c0 00 01 Q(t+1) Q(t) Carga

por lo que se puede fijar su entrada de control c1 directamente a 0.


Bus
0 1

c0

c9 C

MUX c Reg. des. c0 1 A c1 0 c Reg. des. c0 1 B c2 0 c Reg. des. c0 1 C(3) C(5) c3 c4

ED

ED

ED

A UAL

B c0 c1

c5 c6 s0= C(3) C(5)

Contador
2 1 0

c0 c1

c7 c8

s1

Inicio Fin Reloj

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)

Tabla 97-2-1 Descripcin de la seales de control de la Unidad de Procesamiento

B) Un posible diagrama de estados para la Unidad de Control que gobierne el funcionamiento de la Unidad de Procesamiento de la Figura 97-2-2, es el mostrado en la Figura 97-2-3. La Tabla 97-2-2 da una 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

Figura 97-2-3 Diagrama de estados de la Unidad de Control

Estado de la Unidad de Control S0 S1 S2 S3 S4

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

Seales de control a activar c0, c1, c7 c2 c3 Ninguna c1, c5, c4, c8

S5

c1, c6, c4, c8

S6 S7

c9 Ninguna

Tabla 97-2-2 Acciones tomadas por la Unidad de Control en cada estado

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

Q2 Q1Q0 000 001 010 011 100 101 110 111

Tabla 97-2-3 Codificacin de los estados

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

Figura 97-2-4 Unidad de Control diseada con una memoria ROM


Estado Presente Direccin de la ROM A3 A2 A1 A0 Estado presente + Cond. Q2 Q1 Q0 si 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 (si s0 = 0) 1 (si s0 = 1) 0 (si s1 = 0) 1 (si s1 = 1) 0 (si s1 = 0) 1 (si s1 = 1) 0 1 0 1 Contenido de la ROM p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Prximo Estado Control Q2 Q1 Q0 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 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 0 0 0 0 0 0 0 0 0 0 0 0 1 1 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 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

S0 S1 S2 S3 S4 S5 S6 S7

Tabla 97-3-4 Contenido de la memoria ROM

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

Figura 97-3-1 Unidad de Procesamiento

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

Microoperacin X Bus-Entrada A Bus-Entrada AA+1 AA-1

Seales de control c4 c0,c1 c0,c1,c2 c0,c1,c2

Tabla 97-3-2 Descripcin de los estados y sus microoperaciones asociadas

Estado S4 S5

Microoperacin Bus-Salida A Parar

Seales de control c3 -----

Tabla 97-3-2 Descripcin de los estados y sus microoperaciones asociadas

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

Tabla 97-3-3 Tabla de codificacin de los estados

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.

Est. actual Q2Q1Q0 000 001 010 011 100 101

Condicin --s0 s0 ---------

Prx. estado Q2Q1Q0 000 010 011 100 100 101 101

S. control c4 c0,c1 c0,c1,c2 c0,c1,c2 c3 -----

Tabla 97-3-4 Tabla de transicin de estados

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

Inicio Figura 97-3-3 Unidad de Control

SOLUCIN PROBLEMA 5 - 15

Estructura y Tecnologa de Computadores II

3UREOHPD  6HSWLHPEUH 

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

Figura 1: Mdulos del problema con sus tablas de funcionamiento

6ROXFLyQ

a) En primer lugar se debe analizar las operaciones que debe realizar el algoritmo para ver qu recursos se necesitan y si stos se encuentran entre los que se ofrecen en el enunciado:

Un registro A que debe tener la capacidad de carga en paralelo y que sea capaz de realizar un desplazamiento cerrado a la derecha. En este caso se dispone de un registro de desplazamiento simple que permite realizar

Problemas de los exmenes del curso 2000/2001

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:

W I, seal de condicin de inicio de algoritmo.


En la Figura 1 se muestra el diagrama de bloques correspondiente a la unidad de procesamiento o ruta de datos con los elementos definidos anteriormente y que cumple todos los requisitos del algoritmo planteado. En la Tabla 1 se describen todas las seales de control utilizadas.

Estructura y Tecnologa de Computadores II

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

c6 c7 s0 (valor del bit A[0])

s1(=1 Contador es 7)

Inicio Fin Reloj

Circuito de Control

c0 c1

Unidad de Procesamiento

c7 Unidad de Control

Figura 2: Diseo de la Unidad de Procesamiento

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)

Tabla 1: Descripcin de la seales de control de la Unidad de Procesamiento

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.

Problemas de los exmenes del curso 2000/2001

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

Figura 3: Diagrama de estados de la Unidad de Control

Estado de la Unidad de Control S0 S1 S2 S3 S4 S5 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

Tabla 2: Acciones tomadas por la Unidad de Control en cada estado

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

Estructura y Tecnologa de Computadores II

Inicio=0 S0 S0 Inicio=1 S1 Inicio Set

S1


s0

c1, c2, c3, c4, c5, c6

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

Figura 4: Unidad de Control

SOLUCIN PROBLEMA 5 - 16

Estructura y Tecnologa de Computadores II

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

Q(t+1) c1c0 00 Q(t) 01 Q(t)-1 mod 16 10 Q(t)+1 mod 16 11 0

Figura 2: Mdulos secuenciales del problema con sus tablas de funcionamiento

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.

Problemas de los exmenes del curso 2001/2002

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

Estructura y Tecnologa de Computadores II

que la capacidad de desplazamiento de los registros no se va a utilizar, y ya que 11 implica carga en paralelo y 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

Contador 4 Cont3 Cont0

c0 c1

c6 c7

A1

A0 A UAL B c8

s0

s1 Unidad de Procesamiento c0 c1

Inicio Fin Reloj

Circuito de Control

c10 Unidad de Control

Figura 3: Diseo de la Unidad de Procesamiento

Problemas de los exmenes del curso 2001/2002

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

Figura 5: Diagrama de estados de la Unidad de Control

10

Estructura y Tecnologa de Computadores II

Estado de la Unidad de Control S0 S1 S2 S3 S4 S5 S6 S7 S8

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

Tabla 2: Acciones tomadas por la Unidad de Control en cada estado

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].

Problemas de los exmenes del curso 2001/2002

11

Inicio

S0 Inicio Inicio 0

S0
Demux 1

Set

S1

S1 S2

c2, c3 c4, c5, c6, c7

S2

s1s0

S3

s1 s1 0 s0 0

S3
Demux 1 1

s1s0

S4

S4 S5 S6 S7 S8

c0, c2, c3, c7, c8 c7 c1, c4, c5 c10

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

Estructura y Tecnologa de Computadores II

Entrada Entrada Entrada V 0 V 1 V 0 Demux 1

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

6: 7: 8: 9: 10: 11: 12:

B 0; endif; Despl.CerradoDcha(A); Despl.CerradoDcha(A); endfor; Bus B; Parar;

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

Q(t+1) Q(t) 0 Q(t)+1 mod 8 Q(t)

S E

Figura 1: Mdulos secuenciales del problema con sus tablas de funcionamiento.

Solucin
a) Del anlisis de las operaciones del algoritmo propuesto se puede concluir que:

Es necesario un registro de 8 bits llamado A. Este registro debe poder realizar dos operaciones: - Carga de 8 bits de datos desde el bus, correspondiente a la operacin A Bus. El tipo de registro disponible es capaz de cargar en paralelo, y puede realizar esta operacin. - Desplazamiento cerrado a la derecha, correspondiente a la operacin Despl.CerradoDcha(A). En este caso el tipo de registro slo realiza la operacin Despl.Dcha, con lo que se hace necesario conectar el bit menos significativo de A (llamado A0), a la entrada ED del registro. En la Figura 2 se puede observar el esquema de conexiones para este registro:

Figura 2: Diagramas de conexiones para el registro A.

Es necesario generar una seal de condicin, correspondiente a la operacin if A1A001 then, que se llamar s1. Para ello se puede usar la expresin equivalente NOT ( A1 A0 ) = A1 + A0 de tal forma que se generar dicha condicin usando una puerta OR y un inversor, como se muestra en la Figura 3.
_ _

Figura 3: Generacin de la seal de condicin s1.

Otra opcin podra ser generar la condicin s1 como A1 AND A0 y tenerlo en cuenta a la hora de realizar el diagrama de estados considerando la operacin if A1A001 then verdadera cuando no se cumple s1 (es decir, NOT s1). Es necesario un registro de 8 bits llamado B. Este registro debe ser capaz de cargar dos valores constantes 0 y 1 (Operaciones B 0, B 1) y volcar su contenido al bus (Operacin Bus B). - Para volcar el contenido del registro al bus es necesario usar una puerta triestado que controle la operacin de escritura en el bus. - Para distinguir el valor a cargar se podra usar un multiplexor con dos entradas constantes 0 y 1 y usar el valor de salida del multiplexor 2 a 1 como bit menos significativo de la entrada E del registro B, poniendo al valor constante 0 el resto de bits de la entrada E del registro. Pero en este caso se puede eliminar dicho multiplexor y usar una seal de control (generada por la unidad de control) que determina el valor del bit menos significativo de la entrada. Si llamamos a esta seal de control CLOADB, cuando sea igual a 1 se cargar el valor 1 en el registro B y si es igual a 0 se cargara 0 en B. En la Figura 4 se muestra el diagrama de conexiones para el registro B.

Figura 4: Diagramas de conexiones para el registro A.

Finalmente es necesario implementar la lgica de la operacin for Cont=0 to 3 do usando un contador de tamao adecuado. En este caso se debe contar de 0 a 3 y se dispone de un contador mdulo 8 (con tres estados Cont2Cont1Cont0) con lo que se har necesario detectar el fin de cuenta (Cont=3) usando una seal de condicin s0. Esta seal de condicin se puede generar usando la condicin Cont1Cont0=11 o bien usar la seal Cont2 como seal de fin de cuenta (si Cont2=1 entonces Cont>3). Se va a usar esta segunda aproximacin porque de esta forma no es necesario usar una puerta AND de las entradas Cont1 y Cont0. El diagrama de conexiones quedara tan simple como el que se muestra en la Figura 5.

Figura 5: Diagramas de conexiones para el registro A.

Una vez definidos los recursos necesarios para implementar la unidad de procesamiento y las seales de condicin que debe generar, slo quedan por definir las seales de control que la unidad de control debe generar. En la Tabla 1 se muestran las definiciones de cada una de las seales de control, la operacin que realizan y el valor de las seales de control para dicha operacin.

Seal de control CA0, CA1 CA0, CA1 CB, CB, CLOADB CC0, CC1 CC0, CC1 CBUS

Operacin a realizar Cargar registro A Desplazamiento cerrado a la derecha de A Cargar registro B con 0 Cargar registro B con 1 Resetear contador Incrementar mdulo 8 una unidad el contador. Volcar el contenido del registro B en el bus

Valor 11 10 1 11 10 01 1

Tabla 1: Seales de control que debe generar la Unidad de Control para cada operacin.

De esta tabla se puede deducir que las variables de control del registro A y el contador se corresponden con las entradas c1 y c0 de los mismos, pero en el caso del registro B solo es necesario usar una seal de control, cB, asociada a la carga (si cB=1 c1c0=11) y a la conservacin el estado (si cB=0 c1c0=00). La seal CBUS es la seal de control de la puerta triestado que controla la escritura en el bus. Con todo esto, el diagrama de la unidad de procesamiento queda como se muestra en la Figura 6.

Figura 6: Diseo de la Unidad de Procesamiento.

b) Para describir el funcionamiento de la Unidad de Control solicitada en este apartado, se ha diseado el diagrama de transicin de estados de la Figura 7, 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.)

Figura 7: Diagrama de estados de la unidad de control.

Estado de la Microoperaciones efectuadas Seales de control a unidad de control activar S0 Ninguna (Estado inicial) Ninguna S1 A Bus, Cont 0 CA0, CA1, CC0 S2 B 1 CB, CLOADB S3 Ninguna Ninguna (Comprobamos condiciones s1 y s0) B 0 CB S4 S5 Despl.CerradoDcha(A) CA0 S6 Despl.CerradoDcha(A), CA0, CC1 Cont Cont+1 (mod 8) S7 Bus B CBUS
Tabla 2: Acciones tomadas por la Unidad de Control en cada estado.

Este diagrama de 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 se ejecuta el bucle for cuatro veces, ya que se incrementa el contador en la ltima microoperacin que se ejecuta dentro del bucle, de tal forma que cuando se llega al valor Cont=4 se activa la seal s0 y se termina el bucle. Obsrvese que siempre se deben ejecutar las dos microoperaciones de desplazamiento cerrado del registro A independientemente de la condicin A1A0 01 y que adems se debe hacer en dos estados consecutivos. 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 8. 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 8 [ver las pginas 304 a 307 del texto base de teora].

10

Figura 8: Unidad de Control mediante elementos de retardo.

11

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 6: Diseo del procesador


SOLUCION PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2003-2004 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 6: Diseo del procesador.

Solucin problemas

CONTENIDO
SOLUCION PROBLEMA 6.1 ..................................................................................................................... 3 SOLUCION PROBLEMA 6.2 ..................................................................................................................... 5 SOLUCION PROBLEMA 6.3 ..................................................................................................................... 7 SOLUCION PROBLEMA 6.4 ..................................................................................................................... 7 SOLUCION PROBLEMA 6.5 ..................................................................................................................... 9 SOLUCION PROBLEMA 6.6 ................................................................................................................... 10

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.1


Antes de comenzar a contestar a los diferentes apartados conviene darse cuenta de que la UAL es un circuito combinacional que no tiene ninguna capacidad de memoria, de manera que cuando las seales de control activan una funcin especfica de la UAL, su salida pasa a ser el resultado de la operacin correspondiente con sus entradas. Por este motivo, la salida de la UAL no puede conectarse directamente al bus, ya que esta salida se realimentara a la entrada. En su lugar, el registro R2 permite el almacenamiento temporal de la salida. Se utiliza en este problema la siguiente notacin: AC acumulador RD registro de direccin de memoria que especifica la prxima direccin de memoria donde se va a leer o a escribir. RM registro de datos de memoria contiene el dato a escribir en la memoria o recibe el dato leido en la memoria. RI registro de instruccin, en el se almacena la instruccin que se va ejecutar . RI(datos) campo de datos de la instruccin almacenada en el RI. RI(direccin) campo de direccin de la instruccin almacenada en el RI. (XX) Contenido del registro XX. a) Al tratarse de un operando con direccionamiento inmediato significa que en uno de los campos de la instruccin se encuentra almacenado uno de los operandos. Las microoperaciones a realizar son: R1 (RI(dato)) R2 (R1) + (AC) AC (R2) Es decir primero se carga en R1 el contenido del campo de datos de la instruccin almacenada en RI. A continuacin se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC el contenido de R2. b) Al tratarse de un operando con direccionamiento directo, significa que en el campo de direccin de la instruccin almacenada en RI se encuentra la direccin de memoria donde hay que ir a buscar el operando. Las microoperaciones a realizar son: RD (RI(direccin)) RM memoria R1 (RM) R2 (R1) + (AC) AC (R2) Es decir primero se carga en RD (registro de direcciones de memoria) el contenido del campo de direccin de la instruccin almacenada en RI. A continuacin se descarga en RM el contenido de la posicin de memoria especificada en RD. Posteriormente se almacena en R1 el contenido de RM. A continuacin se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC el contenido de R2.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

c) Al tratarse de un operando con direccionamiento indirecto, significa que en el campo de direccin de la instruccin almacenada en RI se encuentra la direccin de memoria donde hay que ir a buscar la direccin de memoria donde se encuentra el operando. Las microoperaciones a realizar son: RD (RI(direccin)) RM memoria RD (RM) RM memoria R1 (RM) R2 (R1) + (AC) AC (R2) Es decir primero se carga en RD (registro de direcciones de memoria) el contenido del campo de direccin de la instruccin almacenada en RI. A continuacin se descarga en RM el contenido de la posicin de memoria especificada en RD, que contiene la direccin de memoria donde hay que buscar el operando. A continuacin se carga en RD la direccin de memoria almacenada en RD. El paso siguiente es descargar el operando de la memoria a RM. Posteriormente se almacena en R1 el contenido de RM. A continuacin se procede a sumar el contenido de R1 con el contenido del AC. Finalmente se carga en AC el contenido de R2.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.2


Se utiliza en este problema la siguiente notacin: AC acumulador RD registro de direccin de memoria que especifica la prxima direccin de memoria donde se va a leer o a escribir. RM registro de datos de memoria contiene el dato a escribir en la memoria o recibe el dato leido en la memoria. RI registro de instruccin, en el se almacena la instruccin que se va ejecutar . RI(datos) campo de datos de la instruccin almacenada en el RI. RI(direccin) campo de direccin de la instruccin almacenada en el RI. (XX) Contenido del registro XX.

a) Cargar acumulador con el contenido de una direccin de memoria. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones RD(RI(direccin)) RMmemoria AC(RM) Seales de Control c14 c0 c9

b) Almacenar el contenido del acumulador en una direccin de memoria. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones RD(RI(direccin)) RM(AC) memoria(RM) Seales de Control c14 c10 c1

c) Sumar al acumulador un operando con direccionamiento inmediato. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones RM(RI(dato)) Entrada 1(RM) AC(AC)+ Entrada 1 Seales de Control c15 c8 c11

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

d) Sumar al acumulador un operando con direccionamiento directo. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones Seales de Control c14 RD(RI(direccin)) c0 RMmemoria c8 Entrada 1(RM) c11 AC(AC)+ Entrada 1 e) Sumar al acumulador un operando con direccionamiento indirecto. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones Seales de Control c14 RD(RI(direccin)) c0 RMmemoria c2 RD(RM) c0 RMmemoria c8 Entrada 1(RM) c11 AC(AC)+ Entrada 1 f) AND con el acumulador y un operando en modo directo. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones Seales de Control c14 RD(RI(direccin)) c0 RMmemoria c8 Entrada 1(RM) c12 AC(AC) AND Entrada 1 g) Bifurcar, en modo de direccionamiento directo. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones RD(RI(direccin)) RMmemoria CP(RM) Seales de Control c14 c0 c4

h) Bifurcar si acumulador=0, en modo de direccionamiento directo. En la siguiente tabla se indican las microoperaciones necesarias, as como las seales de control que hay que activar para la realizacin de las mismas. Microoperaciones RD(RI(direccin)) RMmemoria Si s0=1 CP(RM) Seales de Control c14 c0 c4

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.3


De acuerdo con lo explicado en el libro de Teora Afirmacin I : Es Verdadera Afirmacin II : Es Falsa ya que cada fase del ciclo de instruccin se puede descomponer en una secuencia de operaciones elementales llamadas microoperaciones.

SOLUCION PROBLEMA 6.4


Procesador con cero instrucciones. Secuencia de instrucciones para calcular la expresin X=Y2(X+Z) El funcionamiento de un procesador con cero instrucciones se explica en la seccin 6.1.4 del libro de teora. Un problema relacionado con ste es el 6.4 del libro de problemas. Para resolver este ejercicio se debe proceder a analizar cada una de las posibles respuestas. Se representa en una tabla las instrucciones y el contenido que tendra la pila tras ejecutar cada instruccin. Segn se sita un dato ms a la izquierda en la pila, significa que lleva ms tiempo almacenado, es decir, los datos que entran en la pila lo hacen por su derecha. En consecuencia el elemento almacenado ms a la derecha en la pila constituye la cima de la pila La expresin que se pide calcular tambin se puede expresar equivalentemente de la siguientes formas : X=(X+Z)YY=YY(X+Z) Opcin A) : Instrucciones Push[X]; Push[Z]; Add ; Push[Y]; Push[Y]; Mult; Mult; Pop[X]; Contenido de la pila Y Y Z Y+Z Y+Z Y Y+Z Y Y Y+Z YxY (Y+Z)xYxY

Luego esta secuencia de instrucciones calcula la expresin pedida. Opcin B) : Instrucciones Push[Y]; Push[Y]; Push[X]; Push[Z]; Add; Mult; Mult; Pop[X]; Contenido de la pila Y Y Y Y Y Y YxYx(X+Z) Y Y Y Y Yx(X+Z)

X X X+Z

Luego esta secuencia de instrucciones calcula la expresin pedida.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador. Opcin C) : Instrucciones Push[Y]; Push[Y]; Mult; Push[X]; Push[Z]; Add; Mult; Pop[X]; Contenido de la pila Y Y Y YxY YxY X YxY X YxY X+Z (YxY)x(X+Z)

Solucin problemas

Luego esta secuencia de instrucciones calcula la expresin pedida. Luego la respuesta correcta es la D.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.5


Procesador de una direccin. 6 bits para el cdigo de operacin. 10 bits para la direccin de un operando. Instruccin de bifurcacin, con direccionamiento relativo al contador del programa, almacenada en la direccin DIR10=530 origina un salto a la posicin DIR 10=620. El cdigo de operacin de una cierta instruccin es 110011 Codificacin en binario de la instruccin? De acuerdo con el enunciado se tiene el siguiente formato de instruccin:
6 bits Cdigo Operacin 10 bits DIR[Operando]

Una instruccin de bifurcacin con direccionamiento relativo al contador de programa CP, se puede expresar de la siguiente forma:
6 bits Cdigo Operacin 10 bits Desplazamiento

Donde la direccin del operando se obtiene a partir de: DIRfinal= [CP]+ Desplazamiento Sustituyendo los datos del enunciado se tiene: 620= 530+ Desplazamiento Luego: Desplazamiento=90 Si se pasa a binario el Desplazamiento se tiene: Desplazamiento10=90=64+16+8+2=26+24+23+2 Desplazamiento2=1011010 En el enunciado nos dan el cdigo de operacin de la instruccin 110011 y acabamos de calcular el desplazamiento, que expresado sobre un tamao de 10 bits toma la forma: 0001011010. Luego la instruccin pedida es: 110011 0001011010

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 6: Diseo del procesador.

Solucin problemas

SOLUCION PROBLEMA 6.6


Procesador con cero instrucciones. Push M[C]; Push M[D]; Add; Push M[C]; Push M[D]; Add; Mult; Pop M[A] El funcionamiento de un procesador con cero instrucciones se explica en la seccin 6.1.4 del libro de teora. Un problema relacionado con ste es el 6.4 del libro de problemas. Se representa en una tabla las instrucciones y el contenido que tendra la pila tras ejecutar cada instruccin. Segn se sita un dato ms a la izquierda en la pila, significa que lleva ms tiempo almacenado, es decir, los datos que entran en la pila lo hacen por su derecha. En consecuencia el elemento almacenado ms a la derecha en la pila constituye la cima de la pila

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

Contenido de la pila C C D C+D C+D C C+D C C+D C+D (C+D)(C+D)

Luego esta secuencia de instrucciones calcula la expresin A=(C+D)2.

Jose Manuel Daz Tutor de ETC2 (Coslada)

10

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II

TEMA 7: Microprogramacin
SOLUCION PROBLEMAS PROPUESTOS EN EXAMEN

Curso 2003-2004 Jose Manuel Daz Martnez Tutor de la asignatura ETC-II

TEMA 7: Microprogramacin

Solucin problemas

CONTENIDO
SOLUCION PROBLEMA 7.1 ..................................................................................................................... 3 SOLUCION PROBLEMA 7.2 ..................................................................................................................... 3 SOLUCION PROBLEMA 7.3 ..................................................................................................................... 3 SOLUCION PROBLEMA 7.4 ..................................................................................................................... 4 SOLUCION PROBLEMA 7.5 ..................................................................................................................... 4 SOLUCION PROBLEMA 7.6 ..................................................................................................................... 4 SOLUCION PROBLEMA 7.7 ..................................................................................................................... 4 SOLUCION PROBLEMA 7.8 ..................................................................................................................... 4 SOLUCION PROBLEMA 7.9 ..................................................................................................................... 5 SOLUCION PROBLEMA 7.10 ................................................................................................................... 5 SOLUCION PROBLEMA 7.11 ................................................................................................................... 5 SOLUCION PROBLEMA 7.12 ................................................................................................................... 6 SOLUCION PROBLEMA 7.13 ................................................................................................................... 7 SOLUCION PROBLEMA 7.14 ................................................................................................................... 9 SOLUCION PROBLEMA 7.15 ................................................................................................................. 10

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.1


En el enunciado nos dicen que se tiene un total de (5+5+3) subcampos, cada uno de los cuales requiere de un decodificador que slo puede tener una de sus salidas activadas en un determinado instante de tiempo. Eso implica que el computador puede tener activadas como mximo 13 seales de control o microordenes simultneamente. Por otro lado si un subcampo tiene j bits, puede codificar un total de 2j-1 seales de control. Una codificacin se reserva para especificar el caso en que ninguna de las seales de control de ese subcampo se encuentre activa. Luego del enunciado se sabe que el formato tiene: 5 subcampos codificados de un bit 5 (21-1)=5 seales de control 5 subcampos codificados de tres bits 5(23-1)=35 seales de control 3 subcampos codificados de tres bits 3(24-1)=45 seales de control Lo que hace un total de 85 seales de control.

SOLUCION PROBLEMA 7.2


DATOS Computador digital con 114 seales de control diferentes. Siendo 6 de ellas mutuamente excluyentes Afirmacin I: Hay que tener en cuenta que el enunciado dice que de las 114 seales de control diferentes, 6 son mutuamente excluyentes. Eso implica que esas 6 seales deben ser codificadas dentro de un mismo subcampo. Dicho subcampo debe tener como mnimo 3 bits, con los que se tendran 8 codificaciones: 6 codificaciones asociadas a cada una de las 6 seales de control, 1 codificacin para indicar el caso en que no se active ninguna de las seales de control codificadas en este subcampo y la codificacin restante no se utilizara. Luego la afirmacin I es verdadera. Afirmacin II: Esta afirmacin es falsa. Ya que con el formato horizontal existe un subcampo asignado a cada seal de control, independientemente de que sean excluyentes o no.

SOLUCION PROBLEMA 7.3


DATOS Microinstrucciones de formato horizontal con direccionamiento explcito. Las microinstrucciones deben gobernar 135 seales de control Codificar un repertorio de 50 instrucciones mquina Memoria de control de 2048 palabras La memoria de control es de 2048 palabras = 2 1024 palabras = 2210=211 palabras. Luego el campo de direccin de cada microinstruccin debe tener 11 bits para especificar una posicin de la memoria de control

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.4


Afirmacin I: Es Falsa ya que un subcampo de j bits puede codificar un total de 2j-1 seales de control ya que una de las codificaciones se debe reservar para especificar el caso en que ninguna de las seales de control de ese subcampo se encuentre activa. Afirmacin II: Es Falsa ya que eso nicamente ocurre en las microinstrucciones con formato horizontal.

SOLUCION PROBLEMA 7.5


De acuerdo con lo que se explica en el libro de Teora sobre las tareas de una unidad de control microprogramada: Afirmacin I: Verdadera Afirmacin II: Verdadera

SOLUCION PROBLEMA 7.6


Afirmacin I: Es Falsa ya que en este formato cada seal de control tiene asociado un subcampo. Afirmacin II: Es Verdadera es la caracterstica tpica de las microinstrucciones con formato horizontal

SOLUCION PROBLEMA 7.7


Afirmacin I: Es Verdadera. ya que existe un subcampo por cada seal de control lo que genera microinstrucciones muy anchas. Afirmacin II: Es Falsa, las tiene codificadas.

SOLUCION PROBLEMA 7.8


Afirmacin A: Es Falsa. En una unidad de control microprogramada la memoria de control se utiliza para almacenar en ella los microprogramas asociados a las instrucciones mquina. Afirmacin B: Es Falsa Afirmacin C: Es Verdadera. ya que en las microinstrucciones con formato horizontal existe un subcampo por cada seal de control lo que genera microinstrucciones muy anchas.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.9


DATOS 132 seales de control Un grupo de 16 seales de control mutuamente excluyentes entre si. Otro grupo de 32 seales de control mutuamente excluyentes entre si. Afirmacin I : Es falsa ya que un subcampo codificado de i bits puede codificar a los sumo 2i-1 seales de control diferentes. Por este motivo haran falta dos subcampos de 5 bits cada uno. Afirmacin II : Es falsa ya que el formato vertical de microinstrucciones saca partido precisamente del hecho de que existan seales de control mutuamente excluyentes.

SOLUCION PROBLEMA 7.10


DATOS Memoria de control con longitud de palabra de 24 bits. La parte de control del formato de una microinstruccin se divide en dos subcampos : Subcampo de control de 13 bits para indicar las microoperaciones a realizar. Subcampo de seleccin de direccin que especifica un tipo de bifurcacin condicional. Es funcin de las seales de condicin. Se tienen 8 seales de condicin Por un lado el tamao de una microinstruccin es de 24 bits. a) Puesto que el subcampo de seleccin de direccin es funcin de las seales de condicin, se requerirn 3 bits en ese subcampo para codificar las 8 seales de condicin disponibles. b) Luego el campo de control ( subcampo de control + subcampo de seleccin de direccin) constar de 13 + 3 = 16 bits. Por lo que el campo de direccin constar de 24 -16 =8 bits. Luego el formato de la microinstruccin es: Subcampo de control (microoperacin) 13 bits Subcampo de seleccin de direccin 3 bits campo de direccin 8 bits

c) Puesto que se tienen 8 bits en el campo de direccin se podrn direccionar 28 direcciones. El tamao de la memoria de control ser: C=28 pal x 24 bits/pal

SOLUCION PROBLEMA 7.11


El formato de microinstruccin del problema anterior define una microinstruccin de bifurcacin condicional, ya que siempre se est evaluando una de las seales de condicin, aquella especificada en el subcampo de seleccin. Para tener microinstrucciones que no especifiquen ningn tipo de bifurcacin, basta con definir el subcampo de control de manera que uno de sus bits (T) indique bifurcacin/ no- bifurcacin (1/0) Este es el formato que se muestra a continuacin Subcampo de control (microoperacin) 13 bits T 1 bit Subcampo de seleccin de direccin 3 bits campo de direccin 8 bits

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.12


DATOS Cada instruccin mquina se le asignan 8 palabras en la memoria de control El Cdigo de operacin (Cod_Op) de las instrucciones tienen 5 bits. La memoria de control tiene una capacidad de 1024 palabras. Puesto que el campo del cdigo de operacin (Cod_Op) de las instrucciones mquina tiene 5 bits, se podrn codificar un total de 25= 32 operaciones. Cada una de estas operaciones tiene asociado un microprograma (p) ,cada uno de los cuales ocupa 8 palabras. Por lo tanto de la capacidad total de la memoria de control 210 palabras slo habr que ocupar: 23 pal/p x 25 p= 28 pal Luego la direccin para acceder a palabras de la memoria de control tiene 8 bits. En la siguiente tabla se muestran las direcciones de la memoria de control que se corresponden a cada uno de los 32 cdigos de operacin posible. Como se comprueba, la direccin inicial del microprograma correspondiente a un determinado cdigo de operacin est formada por los 5 bits de este, como bits ms significativos, ms tres bits a 0 adicionales. Cdigo de operacin 00000 00001 00010 ... 11111 Direcciones en la M. Control 00000000 - 00000111 00001000 - 00001111 00010000 - 00010111 ... 11111000 - 11111111 Formato de las direcciones 00000XXX 00001XXX 00010XXX ... 11111XXX

Teniendo esto presente la estructura del bloque Lgica de transformacin es el que se muestra en la siguiente figura:
RI Cdigo de operacin 5 000 Lgica de transformacin

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.13


A la vista del esquema de la Unidad de Procesamiento (Figura 67-16-1), se deduce que son posibles 5 tipos de operaciones bsicas: 1) Bifurcacin (B): Condicionales (8 seales de condicin) e incondicionales. 2) Aritmticas y lgicas (UAL). 3) Desplazamiento (DESP): 3 bits para indicar el tipo de desplazamiento. 4) Transferencia de registros (TRANS): Rdestino (Rorigen). 5) Memoria (MEM): Operaciones de lectura y escritura en memoria principal, o asignar un valor directo a un registro (este ltimo caso se podra considerar como un tipo independiente de las operaciones de memoria): direccin (Ri) Ri (direccin) Ri valor El formato de microinstruccin que se elija ha de permitir todos estos tipos de operaciones. La solucin no es nica. A continuacin se expone cada una de las posibilidades, indicando sus ventajas e inconvenientes. A) Microinstrucciones de formato horizontal. Cada seal de control tiene un subcampo independiente de 1 bit que indica el correspondiente valor de la seal de control. stas son: Registros 1 al 31: 2 seales cada uno. Registro 0: 3 seales de carga y 1 de salida al bus. Registro de desplazamiento: 1 seal de carga y 3 de control de modo. UAL: 2 seales de carga y 5 de control de modo. 16 bits de direccionamiento directo o inmediato. Es decir, en total hay 93 seales de control que han de ser especificadas, una a una, en la microinstruccin (al ser tantas seales no se ha representado grficamente este formato de microinstruccin). ste es el modo ms sencillo y ms rpido de ejecutar, ya que no es necesario ningn tipo de decodificacin de las microinstrucciones. Cada bit de la microinstruccin se corresponde directamente con una nica seal de control. Sin embargo, su longitud es muy grande y no est bien aprovechada; por ejemplo, una instruccin no puede realizar simultneamente una operacin de la UAL y del registro de desplazamiento, pues en ambas interviene el registro R0. Es decir, se tiene un formato en el que muchas seales se excluyen mutuamente.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

B) Microinstrucciones de formato vertical. Soluciona en parte la longitud excesiva del formato horizontal. No existe un bit por seal de control, sino que stas se encuentran codificadas: - Las seales de lectura de los registros 1 al 31 se pueden codificar con nicamente 5 bits (25=32). As, 00001 indicar lectura del registro R1, 00010 lectura del registro R2, etc. Sobra una combinacin, la 00000, que se puede utilizar para indicar que no se lee el valor de ningn registro. En este caso la lectura de un registro excluye la de todos los dems. - Lo mismo sucede con las seales de carga de los registros 1 al 31. - Las 4 seales de control del registro R0 (3 de carga y una de lectura con salida al bus) se pueden codificar con 2 bits. - El registro de desplazamiento RD tiene un total de 4 seales de control que no necesitan ms codificacin. - La UAL se controla con un total de 7 seales. - 16 bits de direccionamiento directo o inmediato. El formato de microinstruccin es el de la Figura 67-16-2.
5 Lec. Reg. 5 Escr. Reg. 2 R0 4 RD 7 UAL Valor 16 Direccin o

Figura 67-16-2 Formato de microinstrucciones vertical Este tipo de microinstruccin slo necesita una longitud de palabra de control de 39 bits, frente a los 93 del formato horizontal. Sin embargo, el nivel de decodificacin adicional aade complejidad al hardware y hace que la ejecucin de las microinstrucciones resulte ms lenta, a igualdad de tecnologa empleada. C) Microinstrucciones verticales de formato variable. Representan un nivel adicional de codificacin frente al formato vertical fijo. Como se indic anteriormente, hay 5 tipos de operaciones. A cada uno de ellos se le asigna un formato especial de microinstruccin, segn se muestra en la Figura 67-16-3. En este caso, el ancho de palabra de control es de un mnimo de 21 bits.
1 BIFURC. B (1) 1 NB (0) 1 DESPL. NB (0) 1 TRANSF. NB (0) 1 MEM. NB (0) 1 Tipo 3 Condicin 16 Direccin

UAL

2 UAL (00) 2 DESP. (01) 2 TRANS. (10) 2 MEM. (11)

1 A/L

4 Funcin

5 Registro

3 Tipo

5 R. Origen

5 R. Destino

1 L/E

1 Modo

16 Direccin o Valor

Figura 67-16-3 Microinstrucciones verticales de formato variable

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

El formato de microinstruccin vertical variable implica el que algunos campos determinen la forma en que se han de decodificar los dems. El primer campo (B/NB) es comn a todos los formatos, y determina si la instruccin es de bifurcacin (cuando vale 1) o no (cuando vale 0). En las instrucciones de bifurcacin el segundo campo indica el tipo de bifurcacin, condicional (1) o incondicional (0). Sigue un campo que slo se interpreta en las bifurcaciones condicionales, para fijar el tipo de condicin que determina la bifurcacin. Finalmente, hay un campo adicional que seala la direccin a la que hay que saltar. En las instrucciones que no implican bifurcacin, el siguiente campo de 2 bits indica el tipo de operacin a realizar: UAL, desplazamiento, transferencia de registros u operaciones con memoria. En las operaciones tipo UAL el tercer campo indica si la operacin es aritmtica (0) o lgica (1), el siguiente campo indica la funcin, y el ltimo el registro que se emplear, junto con el acumulador, en las operaciones que requieren dos registros. En el caso de una operacin que requiera un nico operando, este campo se ignora y la operacin se realiza con R0. El tercer campo de las operaciones de desplazamiento indica el tipo de desplazamiento a realizar, el sentido, etc. El resto de la palabra que compone la microinstruccin es ignorado. En las operaciones de transferencia de registros, hay dos campos que indican el registro origen y el registro destino. Finalmente, en las operaciones con memoria, el tercer campo indica lectura o escritura, el cuarto el modo de direccionamiento (directo o inmediato) y el ltimo la direccin de memoria, para el caso de direccionamiento directo. El direccionamiento inmediato es diferente, ya que este ltimo campo contiene el valor que hay que cargar en el registro R 0. Este formato es el que utiliza una palabra de control ms corta, pero la decodificacin de las microinstrucciones es complicada y requiere varios niveles, siendo por tanto ms lenta. La eleccin del formato ms adecuado resulta de un compromiso entre velocidad, eficiencia, sencillez de diseo y coste, dependiendo por tanto de cada caso particular.

SOLUCION PROBLEMA 7.14


DATOS Formato de microinstrucciones vertical. 16 seales de control En general un subcampo de control de j bits de una microinstruccin de formato vertical puede codificar un total 2j-1 seales de control ya que una codificacin se debe reservar para especificar el caso en que ninguna de las seales de control de ese subcampo se encuentre activa. Por lo tanto: Puesto que se tienen 16 seales de control y hay que reservar una codificacin por lo explicado anteriormente, se requiere un decodificador con al menos 17 salidas. Este decodificador debe poseer como mnimo 5 entradas, ya que para codificar estas 17 salidas se requieren 5 bits al verificarse que 25=32 >17. Por lo tanto la anchura mnima de este subcampo debe ser de 5 bits.

Jose Manuel Daz Tutor de ETC2 (Coslada)

TEMA 7: Microprogramacin

Solucin problemas

SOLUCION PROBLEMA 7.15


DATOS Unidad de control microprogramada. Direccionamiento explcito con 2 direcciones por microinstruccin. Memoria de control de 35 bits. 15 bits para los campos de control. La memoria de control almacenar las posibles microinstrucciones que se pueden ejecutar en el sistema, la anchura de esta memoria segn el enunciado es de 35 bits, de los cuales 15 son para los bits de control y los 20 restantes para almacenar dos direcciones de memoria de control, ya que se usa direccionamiento explcito con 2 direcciones por microinstruccin. Luego una direccin de memoria de control requiere para especificarse 20/2=10 bits. En consecuencia, el nmero de palabras mxima que tendr la memoria de control, es decir que pueden ser direccionadas con 10 bits es: 210 palabras

Jose Manuel Daz Tutor de ETC2 (Coslada)

10