Velocidades de transferencia t picas en Dispositivos...

17
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...

Page 1: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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 …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

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

Page 11: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

Acceso Directo a Memoria

• Entrada Salida programada y con interrupciones requiere participación activa del CPU!—Velocidad de Transferencia es limitada!

—El CPU está atado!

!

• Respuesta: DMA

Funcionamiento del DMA

• Requiere un módulo Adicional (hardware) conectado al bus!

!

• DMA recibe el control del sistema cedido por el procesador

Diagrama Módulo DMA Típico Operación del DMA

• CPU al controlador DMA:!—Read/Write!

—Dirección de dispositivo!

—Dirección inicial del bloque de datos!

—Cantidad de datos a ser transferidos!

!

• CPU: trabaja en otra cosa!

!

• Controlador de DMA: !—Prepara la transferencia!

—Interrumpe cuando termina la preparación

Page 12: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

Transferencia DMA: Robo de ciclos

• Controlador DMA se apodera del bus por un ciclo!

• Transferencia de una palabra de datos!

• No es una interrupción!—CPU no cambia de contexto!

• CPU suspendido justo antes de acceder al bus!— antes de buscar operando, datos o escribir

datos!

• Disminuye la velocidad del CPU pero no tanto como otros esquemas

Puntos de acceso de DMA e Interrupciones en el Ciclo de Instrucción

DMA: Configuraciones (1)

• Bus único!

• Cada transferencia usa el bus dos veces!—I/O a DMA luego DMA a memoria!

• El CPU es suspendido dos veces

DMA: Configuraciones (2)

• Bus único, Controlador Integrado a E/S!

• Cada transferencia usa el bus una vez!—DMA a memoria!

• El CPU es suspendido una vez

Page 13: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

DMA: Configuraciones (3)

• Buses separados para E/S!

• El Bus soporta todos los dispositivos habilitados para DMA!

• Each transferencia usa el bus una vez!—DMA a memoria!

• CPU es suspendido una vez

Diagrama Módulo DMA Típico

Controlador DMA Intel 8237A

• Interfaz para la familia 80x86 y la RAM!!

• Cuando el módulo DMA necesita el bus, señaliza HOLD al procesador!!

• CPU responde HLDA (hold acknowledge) !—DMA puede usar el bus

Controlador DMA Intel 8237A

• Ej. transferir datos desde memoria al disco!1. Los dispositivos pueden solicitar servicio DMA,

levantando DREQ (DMA request)!2. El DMA coloca alto HRQ (hold request), !3. CPU finaliza el ciclo de bus actual y coloca en alto

HDLA (hold acknowledge). HOLD permanece alto durante la operación DMA!

4. El DMA activa DACK (DMA acknowledge), indicando al dispositivo que inicie la transferencia!

5. El DMA inicia la transferencia colocando la dirección del primer byte en el bus de direcciones y activando MEMR; entonces activa IOW para escribir al periferico. El DMA decrementa el contador e incrementa el apuntador de direcciones. Se repite hasta que el contador llega a cero.!

6. El DMA desactiva HRQ, devolviendo el bus al CPU

Page 14: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

Uso del Bus de Sistema: DMA 8237 Fly-By

• Mientras el DMA accede al bus, el procesador se detiene!

• Si el Procesador usa el bus, el módulo DMA duerme!—Conocido como controlador DMA “fly-by” !

• Los datos no pasan a través ni son almacenados en el chip DMA!—DMA Solamente entre un puerto I/O y memoria!

—No entre dos puertos I/O o dos localidades de memoria !

• Memoria a Memoria via registro!

• Chip 8237 contiene cuatro canales DMA!—Programados independientemente!

—Solo uno activo a la vez !

—Enumerados 0, 1, 2, y 3

Que es un Bus?

• Un camino que comunica dos o mas dispositivos!

• Generalmente en “broadcast”!

• A menudo se agrupan lineas!—P. ej. Un bus de datos de 32 bits corresponde a

32 líneas de un bit

Bus de datos

• Transporta datos!—Ojo: en este nivel no hay diferencia entre

“dato” e “instrucción”!

• El ancho suele ser una pieza clave en el rendimiento:!—8, 16, 32, 64 bit

Page 15: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

Bus de Direcciones

• Identifica la fuente o el destino de los datos!

• P. ej. El CPU necesita leer una instrucción (dato) en una posición de memoria!

• El ancho del Bus determina la capacidad máxima de memoria de el sistema!—P. ej. Mic1 tiene bus de direcciones de 32

bits=> 4G capacidad de direccionamiento

Bus de Control

• Información de Control, Estado y temporización!—read/write!

—Interrupt request!

—Señales de reloj

Esquema de interconexion de Buses Arquitectura de Bus

Page 16: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

Tradicional (ISA)!(con cache) Bus de alto rendimento

Tipos de Buses

• Dedicado!—Separa datos & lineas de dirección!

• Multiplexado!—Líneas compartidas!

—Ventaja: menos líneas!

—Desventajas:!– Control + complejo!

– Desmejora el rendimiento

PCI: Diagrama de temporización de lectura

Page 17: Velocidades de transferencia t picas en Dispositivos …prof.usb.ve/jregidor/cursos/ec2721/pdfs/7_Input Output.pdfEntrada y Salida! W illiam S tallings, Comp uter Organ ization and

PCI: Arbitraje de Bus PCI: Arbitraje de Bus