Velocidades de transferencia típicas en Dispositivos I/O ...

10
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?

Transcript of Velocidades de transferencia típicas en Dispositivos I/O ...

Page 1: 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?

Page 2: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 3: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 4: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 5: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 6: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 7: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 8: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 9: Velocidades de transferencia típicas en Dispositivos I/O ...

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

Page 10: Velocidades de transferencia típicas en Dispositivos I/O ...

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