260 likes | 481 Views
Organización del Computador. Entradas / Salidas. Modelo de I/O. Mapeo de I/O. En el espacio de memoria : se accede a través de instrucciones de lectura y escritura en memoria. En un espacio de I/O : se accede con instrucciones especiales de I/O (IN y OUT). Polling vs. Interrupciones.
E N D
Organización del Computador Entradas / Salidas
Mapeo de I/O • En el espacio de memoria: se accede a través de instrucciones de lectura y escritura en memoria. • En un espacio de I/O: se accede con instrucciones especiales de I/O (IN y OUT).
Polling vs. Interrupciones • Polling: el dispositivo de I/O es consultado periódicamente por la CPU. • Interrupciones: el dispositivo I/O interrumpe la CPU cuando quiere comunicarse.
Interrupciones: hardware • El controlador del dispositivo de E/S activa la señal de interrupción a la que se encuentra conectado. • La CPU termina de ejecutar la instrucción en curso y verifica si el flag IF está en 1 y la señal INTR está alta. • En este caso, sube la señal INTA. • El PIC envía por el bus de datos el identificador del dispositivo que produjo la interrupción. • Guarda el contexto del programa en la pila (PSW y PC) • Deshabilita las interrupciones globalmente usando el flag IF seteándolo en 0. • Pasamos el procesador a modo kernel para que la rutina ejecute con privilegios de sistema operativo. • Coloca Mem[Inicio_vector+((id_disp – 1) * 2)] en PC.
Interrupciones: software • Se guarda la máscara de interrupciones. • Se modifica la máscara a fin de habilitar selectivamente las interrupciones que permitiremos durante la ejecucíon de la rutina. • Se habilitan globalmente las interrupciones seteando el flag IF en 1. • Se ejecuta la rutina de atención de la interrupción solicitada. • Se deshabilitan globalmente las interrupciones seteando el flag IF en 0. • Se reemplaza la máscara de interrupciones con la original. • Retorna de la interrupción con una instrucción que restaura el estado del programa antes del llamado (IRET). • Restaura el PC de la pila • Restaura el PSW de la pila (datos de interrupción)
Interrupciones: hardware • El controlador del dispositivo de E/S activa la señal de interrupción a la que se encuentra conectado. • El codificador multiplexor notifica a la CPU que hay una interrupción. • La CPU termina de ejecutar la instrucción en curso y verifica si la máscara I2-I1-I0 <= IPL2-IPL1-IPL0. • En este caso, sube la señal IPEND. • El codificador multiplexor notifica al dispositivo, quien en caso de usar autovectorización baja la señal AVEC. • Guarda el contexto del programa en la pila (PSW y PC) • Pasamos el procesador a modo supervisor para que la rutina ejecute con privilegios de sistema operativo. • Deshabilita las interrupciones colocando I2-I1-I0 = 000. • Actualiza PC: • Si AVEC = 1, coloca Mem[Inicio_vector+((id_disp – 1) * 2)] en PC. • Si AVEC = 0, coloca Mem[bus_datos+((id_disp – 1) * 2)] en PC.
Interrupciones: software • Se guarda la máscara de interrupciones. • Se modifica la máscara a fin de habilitar selectivamente las interrupciones que permitiremos durante la ejecucíon de la rutina. • Se ejecuta la rutina de atención de la interrupción solicitada. • Se deshabilitan las interrupciones seteando I2-I1-I0 = 000. • Se reemplaza la máscara de interrupciones con la original. • Retorna de la interrupción con una instrucción que restaura el estado del programa antes del llamado (IRET). • Restaura el PC de la pila • Restaura el PSW de la pila (datos de interrupción)
Controlador DMA CPU Device 1 DREQ0 HOLD HRQ DACK0 HLDA HLDA Device 2 DREQ1 Address Bus DACK1 Controlador de DMA Device 3 DREQ2 DACK2 Address Bus DRAM Device 4 DREQ3 DACK3 Data Bus
Subsistema de DMA PC: Limitaciones • El DMA visto, introdujo mejoras en la performance de una PC con un disco rígido de 10 Mbytes. • En las máquinas modernas con discos de 200 Gbytes, el 8237, se transformaría en un cuello de botella. • Los chipsets que acompañan a los procesadores Core Duo, aún los mas modernos siguen incluyendo la lógica equivalente a este subsistema (8237 like).
Subsistema de DMA PC: Limitaciones • Las PCs modernas utilizan DMA de primera parte. • Se refiere a controladores de dispositivos de E/S (como disco por ejemplo) capaces de requerir por si solos el DMA y manejarlo. • Este concepto se conoce como Bus Mastering y en él se basa la tecnología Ultra DMA (UDMA) de los controladores IDE para discos rígidos por ejemplo.
Alternativas al DMA legacy: E/S Programada (PIO) • Esquema de acceso a la E/S mediante instrucciones de E/S del procesador (IN, OUT, INS, y OUTS) y algún hardware adicional • De acuerdo a la implementación se consiguieron diferentes velocidades de acceso. Estas se conocen como Modos de E/S Programada o PIO Modes. • La solución resultó mas que aceptable para los primeros discos rígidos de tecnología IDE/ATA, de modo que estos PIO modes fueron incluidos en las respectivas especificaciones de los estándares ATA-1 y ATA-2.
Alternativas al DMA legacy: E/S Programada (PIO) Cantidad de nano segundos para que se lleve a cabo la transferencia 1/Tiempo de Ciclo
Subsistemas de DMA modernosBus Mastering • Para los discos rígidos el método PIO, demanda demasiada CPU. • El Bus PCI aumenta la velocidad de transferencia, y permite acceder al bus del sistema de manera transparente a la CPU. • Por este motivo se desarrolló el método de Bus Mastering para reemplazar al PIO en transferencias masivas de datos de modo de liberar a la CPU. • Para habilitar Bus Mastering en un sistema, se requiere: • Soporte de hardware (chipset) • Que el dispositivo periférico soporte Bus Mastering. • Sistema operativo de 32 bits: Windows 2000, Windows XP, Linux, etc. • En algunas ocasiones se requiere la instalación de un driver.