Velocidades de transferencia típicas en Dispositivos I/O ...
Transcript of Velocidades de transferencia típicas en Dispositivos I/O ...
EC-2721 Arquitectura del Computador I!
Universidad Simón Bolívar!Departamento de Electrónica y Circuitos!
Prof. Juan. C. Regidor
Entrada y Salida!
William Stallings, Computer Organization and Architecture, Cap. 7
Velocidades de transferencia típicas en Dispositivos I/O
Entradas/Salidas: Problemas
• Amplia variedad de periféricos!—Entrega de diferentes cantidades de datos!
—Diferentes velocidades!
—Variedad de formatos!
!
• Todos más lentos que CPU y RAM!
• =>Necesidad de Módulos de I/O
Entradas salidas: Criterios
• Como acceder: ¿Aislada o Asignada en Memoria?!
!
• Como ejecutar: Programada, Manejada por Interrupciones o DMA?
Asignación de I/O
• I/O Asignada en Memoria!—Dispositivos y memoria comparten espacio de
direccionamiento!
—Se maneja igual que operaciones sobre memoria (r,w)!
—Se usan las mismas instrucciones que para transferir datos de o a memoria!
!
• I/O Aislada!—Espacios de dirección separados!
—Son necesarias líneas para seleccionar I/O o memoria!
—Comandos especiales para I/O!
– Conjunto Limitado
Decodificación de Direcciones (1)
Ubicación de la EPROM, RAM, y PIO en un espacio de memoria de 64 KB
Decodificación de Direcciones (2)
Full address decoding.
Módulos de I/O:
• Interfaz a CPU y Memoria!
!
• Interfaz a uno o mas periféricos
Modelo Genérico de Módulo I/O Dispositivos Externos
• Interacción con seres Humanos!—Pantalla, Teclado, Impresora!
!
• Relación con otras máquinas!—Monitoreo y control!
!
• Comunicación!—Modem!
—Tarjeta de Red - Network Interface Card (NIC)
Dispositivo Externo: Diagrama de Bloques Módulo I/O: Función
• Control y Temporización!
• Comunicación con el CPU !
• Comunicación con el Dispositivo!
• Almacenamiento temporal de datos (buffer)!
• Detección de errores
Transacción I/O: Pasos
• CPU chequea status en el módulo I/O del dispositivo!
• El módulo I/O returna el status!
• Si está listo, CPU solicita transferencia de datos!
• El módulo I/O obtiene datos del dispositivo!
• El módulo I/O transfiere datos al CPU!
• Variaciones para salida, DMA, etc.
El módulo I/O: Diagrama
Técnicas de Entrada Salida
• Programada!
!
• Manejada por Interrupciones!
!
• Acceso Directo a Memoria
Técnicas para Ingreso de un Bloque de Datos
I/O Programada
• CPU tiene control directo sobre I/O!—Comprobar estado!
—Comandos Read/write!
—Transferir datos!
• CPU espera al módulo I/O para completar la operación!
• Gasta tiempo de CPU
I/O Programada - detalles
• CPU solicita operación I/O!
• Módulo I/O ejecuta operación!
• Módulo I/O establece bits de status!
• CPU chequea bits de status periodicamente!
• Módulo I/O no informa al CPU directamente!
• Módulo I/O no interrumpe al CPU!
• CPU puede esperar o regresar mas tarde
I/O Programada: Comandos
• CPU emite dirección!—Identifica modulo (y dispositivo si >1 por
módulo)!
• CPU emite comando!—Control – Dice al módulo que hacer!
– ej. girar disco!
—Probar - chequear status!– ej. encendido? Error?!
—Leer/Escribir!– El Módulo transfiere datos via el buffer desde o hacia el
dispositivo
I/O Programada:!Asignada en Memoria y Aislada
I/O Manejada por Interrupciones
• Qué es una Interrupción? !
! Es una llamada a subrutina iniciada por Hardware!
Fuentes:!• Timer!
— Generado por un temporizador interno del procesador!
— Usado en multitarea!
• I/O"
— De un módulo de I/O!
• Falla de Hardware!
— ej. Error de paridad de memoria!
• Ejecución de un Programa!
— ej. división por cero
I/O Manejada por Interrupciones !Operación Básica
• El CPU emite un comando de lectura!
• El módulo I/O obtiene datos del periférico mientras el CPU trabaja!
• El módulo I/O interrumpe el CPU!
• El CPU solicita los datos!
• El módulo I/O transfiere los datos
Transferencia de Control via Interrupciones Ciclo de interrupción
• Añadido al ciclo de instrucción!
• El Procesador chequea por interrupción!
• Si no hay Interrupción pendiente busca la siguiente instrucción!
• Si hay una interrupción pendiente:!—Suspender ejecución del programa actual !
—guardar contexto!
—PC apunta al inicio de la rutina de atención !
—Completar el Procesamiento de la interrupción!
—Restablecer el contexto y continuar el programa interrumpido
Ciclo de instrucción (con interrupciones) - Diagrama de Estados
Cambios en Memoria y Registros !En una Interrupción
Desde el Punto de vista del CPU:
• Emite un comando de lectura!
• Trabaja en otra cosa!
• Verifica interrupciones al finalizar cada ciclo de instrucción!
• Si es interrumpido:-!—Almacenar contexto de ejecución (registros)!
—Procesa la interrupción!– Busca los datos & almacena
Identificando el Modulo que Interrumpe (1)
• Diferentes lineas para cada modulo!—PC!
—Limita el número de dispositivos!
!
• Encuesta por Software (Polling)!—El CPU interroga por turno a cada módulo!
—Lento
Identificando el Modulo que Interrumpe (2)
• Daisy Chain o Encuesta por Hardware!—Reconocimiento de la Interrupción devuelta por
una cadena!
—Módulo responsable coloca el vector en el bus!
—CPU usa el vector para identificar rutina de servicio!
!
• Arbitraje del Bus !—Módulo debe solicitar el bus antes de
interrumpir ! y colocar su vector!
—ej. PCI & SCSI
Arbitraje de Bus (1)
(a) Arbitraje centralizado, un nivel, Daisy Chain!(b) Arbitraje centralizado, dos niveles, Daisy Chain
Arbitraje de Bus (2)
Arbitraje de bus descentralizado.
Interrupciones Multiples: Manejo Secuencial
Interrupciones Multiples: Anidadas Interrupciones Multiples: secuencia temporal
Interrupciones Multiples: estrategias
• Desabilitar Interrupciones!—Mientras el Procesador procesa una
interrupción, ignora otras !
—Otras interrupciones permanencen pendientes hasta finalizar el procesamiento de una interrupción !
—Son atendidas secuencialmente!
• Definir prioridades!—Interrupciones de baja prioridad pueden ser
interrumpidas por otras de mayor prioridad!
—Cuando el procesador termina de procesar la interrupción de alta prioridad, retorna a la interrupción previa.
Ejemplo – Bus PC
• 80x86 posee una línea de interrupción!
!
• Sistemas basados en el 80x86 usan un controlador de interrupciones 8259A!
!
• 8259A tiene 8 líneas de interrupción
Secuencia de Eventos
• 8259A: acepta interrupciones!
• 8259A: determina prioridad!
• 8259A: señaliza al 8086 (sube línea INTR)!
• CPU: Reconoce interrupción (INTA)!
• 8259A: Coloca el vector adecuado en las líneas de datos!
• CPU: procesa interrupción
Controlador de Interrupciones !82C59A
Interfaz programable de periféricos !Intel 82C55A Interfaz Teclado/Pantalla con el 82C55A