Estructura de Computadores 7.- E/S y dispositivos periféricos Contenido Clasificación y tipos de periféricos Módulos de E/S. Instrucciones de E/S. Técnicas de E/S. E/S programada. E/S mediante interrupciones. E/S por DMA. E/S y unidad de control. Página 2 Sistema de E/S Conjunto de dispositivos periféricos junto con los elementos de interfaz (módulos de E/S). Los periféricos se conectan al computador a través de módulos de E/S que actúan como interfaz. CPU Memoria Principal Módulo E/S 1... Módulo E/S n P1 P2... Pk Pj Página 3 1
Dispositivos periféricos Almacenamiento: Discos. Cintas. Unidades CD. Unidades DVD.... Comunicación: Computador-Persona: Ratón. Monitor. Teclado.... Computador-Computador Adaptadores de red.... Página 4 Periféricos: Características diferenciadoras Velocidad de transferencia: Muy diversa. Suele ser bastante menor que la CPU. Modo de operación: Muy diferente dependiendo del tipo de periférico. Ancho de palabra distinto del ancho del palabra del computador: Los periféricos suelen tener ancho de palabra de byte. Página 5 Comunicación CPU-Periférico Los módulos de E/S unifican la visión que tiene la CPU de los periféricos. La CPU interacciona con los módulos de E/S. Los periféricos no se conectan directamente al computador (se conectan a través de módulos de E/S). Página 6 2
Periféricos: Disco magnético Plato circular con superficie que se puede magnetizar. Magnetización 0 o 1. Un disco duro puede tener varios platos. Cada superficie esta dividida en pistas. Las pistas se dividen en sectores (unidad mínima de transferencia) 512 bytes Página 7 Parámetros de un disco Capacidad C = 2 * Nplatos * Npistas * Nsectores * 512 bytes Velocidad de rotación El disco está girando continuamente. Velocidad de rotación (3600 rpm, 7200 rpm) Tiempo de acceso Tb Tiempo de búsqueda. Tr Tiempo rotacional (latencia). Tt Tiempo de transferencia. Ta = Tb + Tr + Tt Página 8 Tiempo de búsqueda Tiempo necesario para mover la cabeza a la pista adecuada. Np Número de pistas atravesadas. K Constante que depende del disco. Ta Tiempo de comienzo (aceleración). Tb = Np * K + Ta Página 9 3
Tiempo rotacional Tiempo que es necesario esperar hasta que el sector pase justo por debajo de la cabeza. El tiempo rotacional medio se puede estimar como el tiempo necesario para dar media vuelta. Ejemplo: Vr = 7200 rpm = 120 rps Tiempo de una vuelta 1/120 s = 8,3 ms Tr = 0,5 * 8,3 ms = 4,15 ms Página 10 Tiempo de transferencia Tiempo que se tarda en transferir la información. N Número de bytes por pista. R Tiempo en dar una vuelta. tr(sector) = (512 * R) / N Página 11 Módulos de E/S Elemento que media en la comunicación entre el procesador y un dispositivo. Funciones: Control y temporización. Comunicación con el procesador. Comunicación con los dispositivos. Almacenamiento temporal de datos. Detección de errores. Página 12 4
Control y temporización Coordinación de actividades y recursos. Ejemplo: Control de transferencia de datos. 1. El procesador pregunta al módulo de E/S el estado del dispositivo. 2. El módulo de E/S devuelve el estado del dispositivo. 3. El procesador solicita la transferencia del dato (si el dispositivo está operativo y preparado). 4. El módulo de E/S obtiene un dato del dispositivo externo. 5. Los datos se transfieren desde el módulo al procesador. Página 13 Comunicación Con el procesador: Información de control (READ, WRITE). Datos. Información de estado (READY, BUSY). Reconocimiento de dirección. Con el dispositivo: Señales de control. Señales de estado. Datos. propias de cada periférico Página 14 Almacenamiento temporal de datos Existe diferencia de velocidad entre los periféricos y el procesador. El módulo de E/S dispone de una memoria intermedia (búfer) en la que se almacenan los datos. El módulo de E/S opera tanto a la velocidad del procesador (o la memoria principal) como a la velocidad del periférico. Página 15 5
Detección de errores Errores: Defectos mecánicos. Defectos eléctricos. Cambios accidentales en los bits durante la transmisión. El módulo de E/S dispone de mecanismos para: Detección de los errores. Notificación de los errores al procesador. Página 16 Estructura simplificada de un módulo de E/S Datos Registro de datos Registro de control Registro de estado Líneas de dirección Líneas de control Lógica de E/S Lógica de interfaz de dispositivo externo Datos Estado Control Página 17 Instrucciones de E/S Permiten realizar transferencia de una palabra entre el procesador y el módulo de E/S. Instrucciones especializadas: IN OUT Instrucciones no especializadas: MOVE Cuando se ejecuta la instrucción se deben generar los siguientes tipos de señal: Señales de dirección. Selección de periférico. Señales de datos. Intercambio de datos. Señales de control. Tipo de operación. Sincronización. Página 18 6
Direccionamiento de E/S Cada dirección de E/S identifica una puerta de entrada/salida. Un periférico puede tener varias puertas de E/S. Cada puerta permite enviar y/o recibir información a nivel de palabra. El conjunto de direcciones de E/S forma el mapa de E/S. Página 19 Mapa común y mapa separado Mapa separado: Existen instrucciones independientes para E/S y para memoria. Una misma dirección puede referenciar a memoria o a E/S (dependerá de la instrucción usada). Mapa común: Las mismas instrucciones se usan para E/S y para memoria. Cada dirección solo puede referenciar a memoria o a E/S. Página 20 E/S programada El procesador ejecuta una instrucción de E/S. El módulo de E/S realiza la acción y activa los bits apropiados de su registro de estado. El módulo de E/S no interrumpe (notifica) al computador cuando finaliza la acción. El procesador es responsable de comprobar periódicamente el estado del módulo de E/S Página 21 7
E/S programada Enviar orden de lectura al módulo de E/S Leer palabra del módulo de E/S Leer el estado del módulo de E/S Escribir palabra en memoria No preparado Comprobar estado Condición de Error Fin Si Preparado No Página 22 Ejemplo Módulo de E/S Registro de estado (dirección 1000) 0 Dispositivo preparado. 1 Dispositivo no preparado. Registro de datos (dirección 1001) Registro de control (dirección 1002) 0 Leer en el periférico. 1 Escribir en el periférico. Página 23 Ejemplo: Programa #Enviar orden de lectura li $t3, 1 li $t1, 0 sw $t1, 1002 # Leer el estado del periférico bucle: lw $t2, 1000 #Comprobar el estado beq $t3, $t2, bucle #leer el dato lw $t4, 1001 Página 24 8
E/S programada: Inconveniente El procesador tiene que esperar hasta que la operación se ha completado. Durante el tiempo de espera se está consumiendo CPU. No se puede ejecutar ninguna otra acción hasta que no se ha completado la operación de E/S. Página 25 E/S mediante interrupciones Solución al inconveniente de la E/S programada. El módulo de E/S interrumpe al procesador cuando está preparado para realizar la transferencia. Permite que el procesador ejecute otras instrucciones hasta que se produzca la interrupción Página 26 E/S mediante interrupciones Enviar orden de lectura al módulo de E/S Otra cosa Leer palabra del módulo de E/S Leer el estado del módulo de E/S Interrup. Escribir palabra en memoria Comprobar estado Condición de Error Fin Si Preparado No Página 27 9
Procesamiento de la interrupción 1. El dispositivo envía una señal de interrupción al procesador. 2. El procesador termina la ejecución de la instrucción en curso y comprueba que hay una interrupción. 3. El procesador envía una señal de reconocimiento de interrupción al dispositivo. 4. El dispositivo desactiva su señal de interrupción. Página 28 Procesamiento de la interrupción 5. El procesador se prepara para transferir el control, almacenando en la pila: La palabra de estado. El contador del programa. 6. El procesador carga en el contador de programa la posición de inicio de la rutina de tratamiento de interrupción solicitada. 7. Se ejecuta la rutina de tratamiento de interrupción y después se vuelve al programa en ejecución. Página 29 Cuestiones de diseño Identificación del peticionario. Selección de la rutina de tratamiento. Desactivación de la solicitud de interrupción. Superposición de peticiones. Resolución de prioridades. Anidamiento de interrupciones. Página 30 10
Líneas de interrupción Líneas de interrupción múltiples: Una por periférico. Simplifica la identificación del periférico que interrumpe. Poco flexible. Línea de interrupción única: Línea única compartida por todos los periféricos. Biestable de inhibición de interrupciones (BGII). La línea de interrupción se organiza en colector abierto para que cualquier dispositivo la pueda poner a 0. Página 31 Línea de interrupción única 5V INT BGII INT1 INT2 INT3 Página 32 Linea de interrupción única Identificación del peticionario: Es necesario interrogar a todos los periféricos para consultar su estado polling o muestreo. Prioridades: Orden establecido por la rutina de tratamiento. Anidamiento de interrupciones: No es posible. Página 33 11
Líneas de interrupción y aceptación Se añade línea de aceptación de interrupción (INTA). INTA se usa como testigo, que se queda el dispositivo más prioritario. La rutina de tratamiento sigue siendo única. Sigue siendo necesario realizar muestreo. Página 34 Interrupciones vectorizadas Los periféricos que interrumpen suministran la dirección de su rutina de tratamiento. Alternativas: Direccionamiento absoluto: El dispositivo envía la dirección absoluta de su rutina. Direccionamiento relativo: El dispositivo envía un desplazamiento con respecto a una dirección base conocida por la CPU. Direccionamiento relativo indirecto: El dispositivo envía la posición relativa en una tabla de direcciones de rutinas. Página 35 Prioridades y niveles de interrupción Se necesitan mecanismos para pode inhibir las interrupciones de algunos dispositivos. Mecanismos: Biestable general BGII. Asociar a cada nivel de interrupción un biestable de inhibición de nivel (máscara de interrupción). Usar un registro con el mínimo nivel que puede interrumpir. Pueden existir interrupciones no enmascarables. Página 36 12
E/S mediante DMA El módulo de E/S se comunica directamente con la memoria principal del computador. Transferencia si intervención de CPU. Secuencia: La CPU envía la información de la acción a realizar al módulo de E/S. El módulo de E/S realiza transferencias a/de memoria. El módulo de E/S interrumpe a la CPU para indicar que la operación ha finalizado. Página 37 DMA: Información necesaria Dirección de memoria principal. Tipo de operación: lectura o escritura. Número de datos a transferir. Dirección en el periférico. Página 38 DMA:Conflictos Varios clientes (CPU/Módulo o Módulo/Módulo) pueden generar ciclos de acceso simultaneo a memoria. Se necesitan mecanismo de resolución de conflictos: Memoria multipuerta. Robo de ciclo. Página 39 13
Memoria multipuerta Puerta 1 CPU Memoria Principal Puerta 2 Puerta 3 Módulo E/S Módulo E/S Puerta 4 Módulo E/S Página 40 Robo de ciclo Memoria de puerta única compartida por CPU y periféricos. El control de los buses pertenece a la CPU. Un periférico puede solicitar un ciclo. La CPU pierde un ciclo, cediéndolo al periférico. Página 41 Robo de ciclo El módulo de E/S solicita a la CPU un robo de ciclo (BREQ). La CPU contesta mediante señal de aceptación (BACK). La CPU comprueba la señal BREQ al final de cada fase. El módulo de E/S accede a memoria. El módulo de E/S desactiva la petición (BREQ). La CPU desactiva la concesión del ciclo (BACK). Página 42 14
DMA: Modos DMA simple: Se roba un ciclo para cada transferencia. DMA a ráfagas: Se roba un ciclo durante el que se realizan varias transferencias. Requiere que se igualen las velocidades de memoria principal y módulo de E/S. Más eficiente. Página 43 Lecturas recomendadas Fundamentos de los computadores de Miguel Capítulo 8 Organización y arquitectura de computadores Stallings Capítulo 6 Página 44 15