Entrada Salida Manejada por Interrupciones
Soluciona la espera de la CPU
No se requiere el chequeo repetido por parte de la CPU del dispositivo
El módulo de E/S interrumpe cuando está listo
Entrada Salida Manejada por Interrupciones, Operación Básica
La CPU coloca un comando, ej.: lectura
El módulo E/S toma el dato del periférico, mientras tanto la CPU hace otro trabajo
El módulo de E/S interrumpe la CPU
La CPU accede al dato
Punto de vista de la CPU
Colocar el comando de lectura
Hacer otro trabajo
Chequear si hay interrupciones al final de cada ciclo de instrucción
Si es interrunpida: Salvar contexto (registros) Procesar interrupción Buscar el dato & alamacenarlo
Ciclo de Interrupción Agregado al ciclo de instrucción El procesador chequea si hay interrupciones Indicado por una señal de interrupción Si no hay interrupción, buscar la próxima instrucción Si hay interrupciones pendientes: Suspender la ejecución del programa actual Salvar el contexto Poner en el PC la dirección de comienzo de la rutina de atención de la interrupción (handler) Procesar la interrupción Reestablecer el contexto y continuar la ejecución del programa interrumpido
Transferencia de Control via Interrupciones
Entrada Salida Manejada por Interrupciones, continúa ejemplo b) E/S por interrupciones
La impresora genera una interrupción cada vez que está preparada para recibir un nuevo byte ð Suponemos que son necesarias 10 instrucciones para ejecutar el handler (salvar contexto, comprobar estado, transferir byte, restaurar contexto) ð Para transferir 10 Kbyte tenemos repetir el proceso 10.000 veces Þ hay ejecutar 100.000 instrucciones para atender al periférico Þ la CPU tarda 0,001 s
CONCLUSIÓN:
Ø La E/S por interrupciones reduce en 10.000 veces el tiempo que la CPU está ocupada gestionando la impresora
Interrupciones, en forma más amplia Mecanismo por el cual los distintos módulos (e.g. E/S) pueden interrumpir la secuencia de procesamiento normal. Excepción de Programa e.g. overflow, división por cero Timer Generada por timer interno del procesador Usada en “pre-emptive” multi-tasking E/S de controlador de I/O Falla de Hardware e.g. error de paridad en memoria
Una clasificación de las interrupciones
Internas (excepciones)
Externas
De Software
Ternimología no consistente entre distintas máquinas: interrupciones, faults, traps, excepciones, cubren todos los posibles aspectos: Pedido de dispositovo de E/S, breakpoint, overflow, underflow, page fault, memory access violation, power failure, etc.
Tópicos de Diseño
Como identificar al módulo que pidió la interrpción?
Como tratar con múltiples interrpciones? i.e. un handler de interrupciones siendo interrunpido
Identificando el Módulo que Interrumpe (1) Una línea de interrupción diferente para cada módulo (vectorizada) Ejemplo: PC Limita el número de dispositivos Una sola línea de interrupción compartida entre todos los módulos Software Poll La CPU le pregunta a cada módulo uno a la vez Lento
Identificando el Módulo que Interrumpe (2)
Daisy Chain o Hardware poll Un “Interrupt Acknowledge” se envía a la cadena El Módulo responsable ubica un “vector” en el bus La CPU usa el vector para identificar el handler a usarse CPU IRQ INTA
Interrupciones Múltiples Deshabilitar interrupciones El procesador no atiende los pedidos de interrupción mientras procesa una interrupción Las interrupciones que permanecen pendientes son chequedas luego que haber sido procesada la primer interrupción La interrupciones se manejan en secuencia Definir prioridades Las interrupciones de baja prioridad pueden ser interrunpidas por interrupciones de prioridad más alta Cuando una interrupción de prioridad más alta ha sido procesada, el procesador regresa a la interrurción previa
Múltiples Interrupciones – Secuencial
Múltiples Interrupciones – Anidadas
Ejemplo – Bus ISA PC 80×86 tiene una línea de interrupción Los sistemas basados en el 8086 tienen un contolador de interrpciones 8259A El 8259A tiene 8 líneas de interrupción
Secuencia de Eventos El 8259A accepta interrupciones El 8259A determina la prioridad El 8259A lo indica al 8086 (eleva la línea INTR) La CPU responde con una línea CPU de Acknowledgment El 8259A pone el vector correcto en el bus de datos La CPU procesa la interrupción
Sistema de Interrupción del Bus ISA Se encadenan dos 8259As juntos Link via interrupción 2 Se tienen 15 líneas 16 líneas menos una para el link Se usa la IRQ 9 para re-rutear la IRQ 2 Compatibilidad hacia atrás Incorporada en el chip set
Parallel I/O ports Serial I/O ports Counter/Timer Processor core Internal memory To external memory A-to-D conversion D-to-A conversion Procesador Embarcado
Horno a Microondas
Cámara Digital
Acceso Directo a Memoria (Direct Memory Access o DMA) La entrada salida programada o por interrupciones requiere una activa intervención de la CPU la tasa de transferencia se ve limitada la CPU se ve atada al proceso El DMA es la solución
Ejemplo periférico rápido Ø Procesador a 200 MHz (tiempo ciclo = 5 ns.; Ciclo medio por instrucción: CPI = 2 ciclos ð Una instrucción tarda en promedio 2 x 5 ns = 10 nsÞ ~100 MIPS Ø Disco con velocidad de transferencia de 10 Mbytes/s (1 byte cada 2*10-7 seg) Ø Queremos transferir un archivo de memoria a disco de 10 Mbytes
a) E/S con espera de respuesta La CPU entra en un lazo y envía un nuevo byte cada vez que el disco está preparado para recibirlo ð El disco tarda 1 seg en recibir un archivo de 10 Mbytes ð La CPU está ocupada con la operación de E/S durante 1 s (en ese tiempo la CPU podría haber ejecutado 200 millones de instrucciones)
b) E/S por interrupciones El disco genera una interrupción cada vez que está preparado par a recibir un nuevo byte ð Suponemos que la RTI tiene 10 instrucciones ( salvar contexto, comprobar estado, transferir byte, restaurar contexto, RTE) ð Para transferir 10 Mbytes tenemos que ejecutar 107 veces la RTI Þ hay que ejecutar 100 millones de instrucciones para atender al periférico Þ la CPU tarda 1 s ð La CPU está ocupada con la operación de E/S durante 1 s CONCLUSIÓN: La E/S por interrupciones no mejora el tiempo que la CPU está ocupada en atender al periférico
Acceso Directo a Memoria (DMA)
Función del DMA La técnica de DMA permite la transferencia de datos entre un periférico y la memoria sin intervención de la CPU (salvo en la fase de inicialización de los parámetros de la transferencia)
Configuraciones DMA (1) Un Bus, controlador DMA separado Cada transferencia usa el bus dos veces I/O a DMA luego DMA a memoria La CPU es suspendida dos veces
Página anterior | Volver al principio del trabajo | Página siguiente |