Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Página 1 2. Analice las siguientes situaciones: a) Una computadora destina 12 nseg a desarrollar el trabajo propio del procesador y 35 nseg al proceso de E/S que conlleva; además se sabe que no existe solapamiento entre ambos trabajos, puesto que las tareas de E/S son totalmente dependientes del procesador ¿Cuánto tiempo implica la carga de trabajo de la máquina? La carga de trabajo lleva un tiempo de 47 ns. b) Para mejorar los tiempos se incorpora a la computadora del ítem a) una técnica de E/S con la que se logra solapar el 45% del trabajo del procesador con el de las operaciones de E/S ¿Mejora la velocidad? ¿Cuánto tiempo lleva el trabajo de la máquina? El 45% de solapamiento es de 5,4 ns. Por lo que al tiempo sin solapamiento le restamos esta pequeña reducción: 47 ns – 5,4 ns = 41,6 ns. c) Por último se mejora la velocidad del procesador reduciendo el tiempo de procesamiento a la mitad y se mantienen invariables las características operativas de la Unidad de E/S ¿Cuál es el tiempo necesario para desarrollar ambas tareas? El tiempo de trabajo propio del procesador disminuye, y además se sigue solapando el 45% de su trabajo (2,7 ns) con el de E/S; por lo que el tiempo total de trabajo es de 38,3 ns. Esto demuestra que, aunque el tiempo de proceso propio del procesador disminuya, lo que marcará la diferencia en el procesamiento total será la diminución del tiempo en las operaciones de E/S ó un mayor solapamiento entre ambas tareas. 3. Dado un sistema anfitrión con un bus de direcciones de 18 líneas, una memoria RAM de 131.072 palabras (ubicada a partir de la dirección inicial del mapa) y una memoria ROM de 65.536 palabras, y considerando que se dispone de un único espacio de direcciones para dispositivos de E/S, instrucciones y datos: a) ¿Cuál es el espacio de direcciones que puede utilizarse para periféricos? b) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa 2048 posiciones? c) ¿Cuál es el número máximo de periféricos que pueden conectarse, suponiendo que cada uno ocupa 8192 direcciones? Mapa de direcciones de 256 KB – RAM de 128 KB (17 líneas del AB) – ROM de 64 KB (18 líneas del AB) $3FFFF ROM $30000 $2FFFF a) E/S 64KB $20000 $1FFFF RAM $00000 2 0 2 0 TÉCNICAS Y ESTRUCTURAS DIGITALES TP 17 Tema: Unidades de Entrada/Salida Ingeniería Informática – Licenciatura en Sistemas TRABAJ OPERACIÓN E/S 35 ns TRABAJO CPU 12 ns OPERACIÓN E/S 35 ns TRABAJO CPU 12 ns OPERACIÓN E/S 35 ns TÉCNICAS Y ESTRUCTURAS DIGITALES Página 2 b) Por los datos enunciados, vemos que queda un espacio de 64 KB en el mapa de direcciones que se puede destinar a las operaciones y datos relacionados con los periféricos. Suponiendo que cada periférico necesita 2048 posiciones, entonces, como máximo, podremos conectar 64 KB / 2048 bytes = 64 KB * 1024 B / 2048 B = 32 periféricos. c) Se realiza el mismo razonamiento que en b). En este caso podrían instarse 8 periféricos. 4. Describa el comportamiento de las siguientes instrucciones extraídas al azar de un programa que, entre otras tareas, controla diversas entradas y salidas de datos. El programa se ejecuta en un sistema que tiene 16 líneas de direccionamiento y 8 de datos, dónde el mapa de direcciones se organiza de la siguiente forma: la primera mitad del mapa almacena los datos de las aplicaciones, 1/4 de la segunda mitad se destina a las instrucciones de los programas y el espacio de direcciones restante será utilizado para operaciones de E/S: a) LDAA $2601 b) STAA $AB10 c) MOV $B01C,B d) MOV A, $F100 d) LDAB $5312 e) STAB $8202 f) LDAA $93C0 g) LDAA $1000 Para resolver este ejercicio, al igual que el anterior, es conveniente tener a la vista el mapa de direcciones del sistema propuesto. De esa manera, al leer cada instrucción, podremos ver a qué sector del mapa de direcciones hace referencia y en función de ello deducir el objetivo de la misma. Es necesario además, entender el objetivo de cada instrucción, lo que realiza. Cabe aclarar que cada instrucción consiste en 2 partes: El sistema dado se refiere a un mapa de memoria común, puesto que indica qué sector se dedica a datos, a instrucciones y a operaciones de E/S. $FFFF E/S $C000 $BFFF INSTRUCCIONES $8000 $7FFF DATOS $0000 a) LDAA $2601: La instrucción es LDAA y a continuación se encuentra la dirección del dato. LDAA copia el contenido de una dirección de memoria principal en el registro auxiliar del procesador denominado Acumulador A. Por lo tanto esta instrucción copia el contenido de la dirección $2601 de memoria principal al Acumulador A del µp. A M($2601) b) STAA $AB10: La instrucción STAA copia el contenido del Acumulador A a una dirección de memoria principal. En este caso el valor presente en el Acumulador A es una instrucción porque se copia en el sector de instrucciones de la memoria principal: M($AB10) A c) MOV $B01C,B: En este caso en particular, la sintaxis de la instrucción es: Instrucción, Fuente, Destino La instrucción MOV copia el contenido de fuente a destino. El dato que se copia está en la dirección $B01C de memoria principal, y se graba en otro registro auxiliar del procesador, denominado Acumulador B: B M($B01C) Suponemos que el contenido de esa dirección es un dato y se traslada al µp para ser procesado. d) MOV A, $F100: Esta instrucción tiene la misma sintaxis que c) y en este caso se copia el contenido del acumulador A en la dirección $F100 de memoria principal, observamos que dicha posición corresponde a la sección de operaciones de E/S, por lo que podemos suponer que el sistema está realizando una operación de salida a través de algún periférico. A M($F100) CÓDIGO INSTRUCCIÓN DATO Ó DIRECCIÓN DEL DATO TÉCNICAS Y ESTRUCTURAS DIGITALES Página 3 e) LDAB $5312: en este caso vale el análisis que se hizo en a) excepto que aquí interviene el acumulador B del µp: B M($5312) f) LDAA $93C0: A M($93C0) Se trata de una instrucción. g) LDAA $1000: en este caso vale el análisis que se hizo en a) excepto que aquí interviene el acumulador B del µp: B M($5312) Se trata de un dato. 5. Dibuje el esquema de conexión de un sistema con 16 líneas en el AB, 8 bits de DB y un Mapa de E/S Independiente de 4 KB reservado para los controladores de periféricos del sistema. Suponiendo que un controlador tiene un registro de datos en la posición $3C1 y un registro de estado en $3C2. Indique las instrucciones necesarias para: a) Copiar el contenido de los registros de datos y de estado del controlador al inicio del mapa de direcciones. b) Copiar el contenido de la dirección $1100 al registro de estado del controlador. c) Copiar el contenido del registro de datos del controlador al registro acumulador del procesador. d) Reemplazar el contenido de los registros de datos y estado del controlador por el contenido de la dirección $4000 y 4001, respectivamente. e) Intercambiar el contenido de los registros de dato y estado. Para plantear este problema es conveniente dibujar ambos mapas de direcciones, el de memoria y el de E/S, y colocar las direcciones y los contenidos que dice el enunciado: Mapa de direcciones de MP Mapa de direcciones de E/S $FFFF $FFF $3C2 ESTADOe/s $3C1 DATOe/s $000 $4001 DATOmp3 $4000 DATOmp2 $1100 DATOmp1 $0001 $0000 a) Debemos colocar las instrucciones que nos permita copiar el registro de dato y de estado del controlador al inicio del mapa. El registro de dato del controlador está en la dirección $3C2 del mapa de E/S y el registro de estado en la dirección $3C1. Ambos valores deberán ser copiados en las direcciones $0000 y $0001 del mapa de direcciones de MP. No existe una instrucción que permita hacer esa copia en forma directa. Lo que haremos es llevar el contenido de esas posiciones a los registros auxiliares del µp y desdeallí si podremos copiarlos a la memoria principal. Debemos recordar que, cuando el sistema utiliza un mapa de E/S independiente, aparecen instrucciones específicas para operar con sus registros; cuando se ejecutan tales instrucciones, el sistema inhabilita la operación sobre la MP y habilita al mapa de E/S: INSTRUCCIONES DESCRIPCION IN $3C1 A ME/S($3C1) STAA $0000 M($0000) A IN $3C2 A ME/S($3C2) STAA $0001 M($0001) A TÉCNICAS Y ESTRUCTURAS DIGITALES Página 4 b) Debemos colocar las instrucciones que nos permita copiar el contenido de la dirección $1100 de MP al registro de estado del controlador; el mismo se encuentra en la dirección $3C2 del mapa de E/S. Sabemos que no podemos realizar esta copia en forma directa. Entonces usaremos como registro auxiliar el Acumulador A del µp: d) El resultado de este ítem se observa a continuación: Mapa de direcciones de MP Mapa de direcciones de E/S $FFFF $FFF $3C2 DATOmp3 $3C1 DATOmp2 $000 $4001 ESTADOe/s $4000 DATOe/s $1100 DATOmp1 $0001 $0000 Para realizar el intercambio de valores entre un registro del controlador y uno de MP tendremos que usar además del Acumulador A del µp una posición auxiliar más; usaremos la posición inicial del mapa de MP. Se procede de igual manera para el intercambio de valores del registro de estado y el valor de la dirección $4001. e) En este caso el resultado de la ejecución de las instrucciones será: Mapa de direcciones de E/S $FFF $3C2 DATOe/s $3C1 ESTADOe/s $000 6. Dado un sistema con un bus de direcciones de 16 líneas y un bus de datos de 8 bits, al que se conecta un controlador de periféricos correspondiente a una impresora, dibuje el mapa de direcciones y mapa de E/S del sistema e indique la dirección asociada al dispositivo. INSTRUCCIONES DESCRIPCION LDAA $1100 A M($1100) OUT $3C2 ME/S($3C2) A INSTRUCCIONES DESCRIPCION IN $3C1 A ME/S($3C1) STAA $0000 M($0000) A LDAA $4000 A M($4000) OUT $3C1 ME/S($3C1) A LDAA $0000 A M($0000) STAA $4000 M($4000) A TÉCNICAS Y ESTRUCTURAS DIGITALES Página 5 El mapa de direcciones es de 64 KB. El enunciado no nos dice la capacidad del mapa de E/S, ni con cuántas líneas se direcciona. Sin embargo vemos que el controlador de la impresora se direcciona con 6 líneas de AB (address bus) por lo que el mapa de E/S tiene una capacidad de 64 bytes. El controlador de la impresora se encuentra en la dirección 1110002 = $38 del mapa de E/S independiente. Para dibujar el esquema, ver el ejercicio resuelto B del TP y el video de la clase práctica. 7. Dado un sistema que utiliza un Mapa de Direcciones Independiente: a) dibuje la estructura y capacidad de direccionamiento de los Mapas de Memoria y de E/S, sabiendo que el primero se direcciona con 20 líneas del bus de direcciones (A0-A19) mientras que el de E/S solamente se accede usando las 13 líneas menos significativas (A0-A12) b) modifique el esquema anterior de modo que la E/S se realice utilizando un mapa de memoria común. Considere que la E/S ocupará la parte final del mapa de direcciones. ¿Cuál es el espacio en el que se pueden almacenar datos e instrucciones? y ¿cuál es el espacio de E/S? Indique direcciones de inicio y fin. Si la parte final del mapa de direcciones contendrá los registros de E/S, y considerando que el mismo tiene una capacidad de 8 KB, entonces las direcciones inicial y final de dicha porción de memoria será: A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 1 1 1 1 1 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 0 0 0 0 0 En hexadecimal desde $FE000 hasta $FFFFF. El espacio destinado a datos e instrucciones será el que está comprendido entre $00000 hasta $FDFFF (1016 KB = 1 MB – 8 KB) 8. Dado un sistema, con un bus de direcciones de 20 líneas y un bus de datos de 8 bits, al que se conecta a un controlador de periféricos en las direcciones $923 (registro de estado) y $924 (registro de datos) del Mapa de E/S: a) realice el esquema de conexión correspondiente y b) escriba las instrucciones necesarias para copiar al dispositivo los valores almacenados en las direcciones $20989, $2225B, $86310 y $00180. Suponga que al iniciar el proceso de copia debe almacenarse el contenido de la dirección $00000 en el registro de estado del dispositivo y que al finalizar debe guardarse el contenido de la posición $00010 en dicho registro. Para el ítem a) ver ejercicio B resuelto del TP. b) Recuerde que es conveniente dibujar los mapas de direccionamiento tanto de la MP como el de E/S, con sus direcciones inicial y final, y otras direcciones relevantes para el planteo del ejercicio, como las direcciones del registro de dato y de estado en el mapa de E/S. REQUERIMIENTO INSTRUCCIONES DESCRIPCION Copiar el contenido de $00000 en el Reg. de estado (inicio de la salida de datos) LDAA $00000 OUT $923 A M($00000) ME/S($923) A Llevar el contenido de la dirección $20989 al Reg. de datos del controlador, para su salida por el disposit. Llevar el contenido de la dirección $2225B al Reg. de LDAA $20989 OUT $924 A M($20989) ME/S($924) A TÉCNICAS Y ESTRUCTURAS DIGITALES Página 6 9. Dado un procesador que cuenta con los terminales INTR (atención a interrupción) e INTA (reconocimiento de interrupción) y suponiendo que éste atiende 4 controladores de dispositivos (E/S controlada por interrupción) diseñe el esquema de conexión correspondiente. Al realizar el esquema considere: a) sólo puede utilizar compuertas simples (lógica combinacional) b) se cuenta con circuitos PIC (Controlador Programable de Interrupciones). ¿Cómo se modificaría el esquema de conexión del ítem a)? ¿cuántos periféricos pueden conectarse? ¿qué ocurre si deben conectarse más periféricos que los que soporta el PIC? Ver el vídeo de la clase práctica. En el caso del ítem b), si el PIC soporta la gestión de 8 periféricos, y fuera necesario conectar más periféricos que esa cantidad limitada, lo que se podría hacer es conectar otro PIC al primero, de esa manera se soluciona el problema. 10. Dado un controlador DMA que realiza transferencias a ráfagas entre la memoria y los dispositivos y viceversa calcule el tiempo necesario para transferir un bloque de 512 bytes sabiendo que se ocupan 5,2 μs en cargar el contador de palabras, 4,5 μs en establecer la dirección de transferencia y 2,6 μs en atender la interrupción de finalización y que por cada 0,5 bytes se demora 0,25 μs. Ver el video de la clase práctica. 11. Dado un controlador DMA que realiza transferencias a ráfagas entre la memoria y los dispositivos y viceversa calcule el tamaño del bloque transferido sabiendo que, por cada bloque, el procesador demora 193,72 μs, ocupando 1,2 μs en cargar el contador de palabras, 3,2 μs en establecer la dirección de transferencia y 5 μs en atender la interrupción de finalización. Considere que para transmitir 1 byte se tarda 0,09 μs. Tiempo de la transferencia = (Inicialización del contador de palabras + Inicialización de Reg. de Dirección + Cantidad de bytes del bloque * Tiempo de Transferencia de un byte + Atención de Interrupción) Reemplazando: 193,72 μs = 1,2 μs + 3,2 μs + x bytes * 0,09 μs/byte + 5 μs Resta resolver para encontrar el valor de la incógnita, o sea, el tamaño del bloque. 12. Dado un sistema que cuenta con un controlador DMA que realiza transferencias a ráfagas entre la memoria y los dispositivos y viceversa: a) calcule el tiempo requerido para transmitir 1 bloque de datos sabiendo que el procesador tarda 7 µs en cargar el Registro de Direcciones, 3 µs en cargar el Contador de Palabras y 1,5 µs en atender la interrupción que se produce al finalizar la transmisión. Considere que cada byte tarda en enviarse 1,8 µs. b) calcule el tiemporequerido para transmitir 20 bloques de datos sabiendo que, por cada bloque, el procesador demora 9,5 µs en programar la transferencia y 8,2 µs en atender la interrupción de finalización. Considere que se transmiten bloques de 2 KB y que cada byte tarda 250 ns en enviarse. En este caso no se especifica el tiempo de inicialización del contador de palabras, ni el tiempo de inicialización del registro de direcciones, pero ambas constituyen el tiempo de programar la transferencia. Otro detalle a considerar, el tiempo de transferencia del byte está dado en ns, y el resto de los tiempos en µs, hay que unificar la unidad de medida del tiempo para operar. Recordar: 1 ns = 10 -9 seg = 0,001 µs 1 µs = 10 -6 seg = 1000 ns datos del controlador, para su salida por el disposit. Llevar el contenido de la dirección $86310 al Reg. de datos del controlador, para su salida por el disposit. Llevar el contenido de la dirección $00180 al Reg. de datos del controlador, para su salida por el disposit. Copiar el contenido de $00010 en el Reg. de estado (fin de la salida de datos) LDAA $00010 OUT $923 A M($00010) ME/S($923) A TÉCNICAS Y ESTRUCTURAS DIGITALES Página 7 Entonces 250 ns = 0,25 µs Tiempo de la transferencia de 1 bloque = x µs Tiempo de la transferencia de 20 bloques = x µs * 20 Tiempo de la transferencia de 1 bloque = 9,5 µs + 8,2 µs + 2048 bytes * 0,25 µs/byte Tiempo de la transferencia de 1 bloque = 829,7 µs Sólo resta multiplicar el tiempo de transferencia por 20, para conocer el tiempo de transferencia de los 20 bloques. c) suponiendo que el procesador tarda 3,4 µs en cargar el Registro de Direcciones, 2,5 µs en cargar el Contador de Palabras, 7,6 µs en atender la interrupción que se produce al finalizar la transmisión y 39,1 µs en transmitir un bloque de 512 bytes; ¿cuánto tarda en transferirse 1 byte? Tarda 0,05 µs en transferir un byte.
Compartir