organización del computador entradas / salidas. modelo de i/o
TRANSCRIPT
Organización del Organización del ComputadorComputador
Entradas / SalidasEntradas / Salidas
Modelo de I/OModelo de I/O
Mapeo de I/OMapeo de I/O
En el espacio de memoriaEn el espacio de memoria: se accede a : se accede a través de instrucciones de lectura y través de instrucciones de lectura y escritura en memoria.escritura en memoria.
En un espacio de I/OEn un espacio de I/O: se accede con : se accede con instrucciones especiales de I/O (IN y instrucciones especiales de I/O (IN y OUT).OUT).
Polling vs. InterrupcionesPolling vs. Interrupciones
PollingPolling: el dispositivo de I/O es : el dispositivo de I/O es consultado periódicamente por la CPU.consultado periódicamente por la CPU.
InterrupcionesInterrupciones: el dispositivo I/O : el dispositivo I/O interrumpe la CPU cuando quiere interrumpe la CPU cuando quiere comunicarse.comunicarse.
Subsistema de I/O con Subsistema de I/O con interrupcionesinterrupciones
Interrupciones Intel 8086Interrupciones Intel 8086
Interrupciones: hardwareInterrupciones: hardware
El controlador del dispositivo de E/S activa la señal de El controlador del dispositivo de E/S activa la señal de interrupción a la que se encuentra conectado. interrupción a la que se encuentra conectado.
La CPU termina de ejecutar la instrucción en curso y verifica si 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. el flag IF está en 1 y la señal INTR está alta.
En este caso, sube la señal INTA.En este caso, sube la señal INTA. El PIC envía por el bus de datos el identificador del dispositivo El PIC envía por el bus de datos el identificador del dispositivo
que produjo la interrupción.que produjo la interrupción. Guarda el contexto del programa en la pila (PSW y PC)Guarda el contexto del programa en la pila (PSW y PC) Deshabilita las interrupciones globalmente usando el flag IF Deshabilita las interrupciones globalmente usando el flag IF
seteándolo en 0.seteándolo en 0. Pasamos el procesador a modo Pasamos el procesador a modo kernelkernel para que la rutina para que la rutina
ejecute con privilegios de sistema operativo. ejecute con privilegios de sistema operativo. Coloca Mem[Inicio_vector+((id_disp – 1) * 2)] en PC.Coloca Mem[Inicio_vector+((id_disp – 1) * 2)] en PC.
Interrupciones: softwareInterrupciones: software Se guarda la máscara de interrupcionesSe guarda la máscara de interrupciones..
Se modifica la máscara a fin de habilitar selectivamente las Se modifica la máscara a fin de habilitar selectivamente las interrupciones que permitiremos durante la ejecucíon de la interrupciones que permitiremos durante la ejecucíon de la rutina.rutina.
Se habilitan globalmente las interrupciones seteando el flag IF Se habilitan globalmente las interrupciones seteando el flag IF en 1.en 1.
Se ejecuta la rutina de atención de la interrupción solicitadaSe ejecuta la rutina de atención de la interrupción solicitada.. Se deshabilitan globalmente las interrupciones seteando el Se deshabilitan globalmente las interrupciones seteando el
flag IF en 0.flag IF en 0. Se reemplaza la máscara de interrupciones con la original.Se reemplaza la máscara de interrupciones con la original. Retorna de la interrupción con una instrucción que restaura el Retorna de la interrupción con una instrucción que restaura el
estado del programa antes del llamado (IRET). estado del programa antes del llamado (IRET). Restaura el PC de la pilaRestaura el PC de la pila Restaura el PSW de la pila (datos de interrupción)Restaura el PSW de la pila (datos de interrupción)
Controlador de interrupciones IntelControlador de interrupciones Intel
Controlador de interrupciones IntelControlador de interrupciones Intel
Interrupciones Motorola 6800Interrupciones Motorola 6800
Interrupciones: hardwareInterrupciones: hardware El controlador del dispositivo de E/S activa la señal de El controlador del dispositivo de E/S activa la señal de
interrupción a la que se encuentra conectado. interrupción a la que se encuentra conectado. El codificador multiplexor notifica a la CPU que hay una El codificador multiplexor notifica a la CPU que hay una
interrupción.interrupción. La CPU termina de ejecutar la instrucción en curso y verifica si La CPU termina de ejecutar la instrucción en curso y verifica si
la máscara I2-I1-I0 <= IPL2-IPL1-IPL0. la máscara I2-I1-I0 <= IPL2-IPL1-IPL0. En este caso, sube la señal IPEND.En este caso, sube la señal IPEND. El codificador multiplexor notifica al dispositivo, quien en caso El codificador multiplexor notifica al dispositivo, quien en caso
de usar autovectorización baja la señal AVEC.de usar autovectorización baja la señal AVEC. Guarda el contexto del programa en la pila (PSW y PC)Guarda el contexto del programa en la pila (PSW y PC) Pasamos el procesador a modo Pasamos el procesador a modo supervisorsupervisor para que la rutina para que la rutina
ejecute con privilegios de sistema operativo. ejecute con privilegios de sistema operativo. Deshabilita las interrupciones colocando I2-I1-I0 = 000. Deshabilita las interrupciones colocando I2-I1-I0 = 000. Actualiza PC:Actualiza PC:
Si AVEC = 1, coloca Mem[Inicio_vector+((id_disp – 1) * 2)] en 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.Si AVEC = 0, coloca Mem[bus_datos+((id_disp – 1) * 2)] en PC.
Interrupciones: softwareInterrupciones: software
Se guarda la máscara de interrupcionesSe guarda la máscara de interrupciones..
Se modifica la máscara a fin de habilitar selectivamente las Se modifica la máscara a fin de habilitar selectivamente las interrupciones que permitiremos durante la ejecucíon de la interrupciones que permitiremos durante la ejecucíon de la rutina.rutina.
Se ejecuta la rutina de atención de la interrupción solicitadaSe ejecuta la rutina de atención de la interrupción solicitada.. Se deshabilitan las interrupciones seteando I2-I1-I0 = 000.Se deshabilitan las interrupciones seteando I2-I1-I0 = 000. Se reemplaza la máscara de interrupciones con la original.Se reemplaza la máscara de interrupciones con la original. Retorna de la interrupción con una instrucción que restaura el Retorna de la interrupción con una instrucción que restaura el
estado del programa antes del llamado (IRET). estado del programa antes del llamado (IRET). Restaura el PC de la pilaRestaura el PC de la pila Restaura el PSW de la pila (datos de interrupción)Restaura el PSW de la pila (datos de interrupción)
Acceso directo a memoria (DMA)Acceso directo a memoria (DMA)
Controlador DMAControlador DMA
DREQ0
DREQ1
DREQ2
DREQ3
DACK0
DACK1
DACK2
DACK3
HRQ
HLDA
HOLD
HLDA
CPU
Controlador de DMA
Device 1Device 1
Device 2Device 2
Device 3Device 3
Device 4Device 4
AddressBus
Ad
dre
ss
Bu
s
DRAM
Data Bus
Subsistema de DMA PC: Subsistema de DMA PC: LimitacionesLimitaciones
El DMA visto, introdujo mejoras en la El DMA visto, introdujo mejoras en la performanceperformance de una PC con un disco rígido de de una PC con un disco rígido de 10 10 MbytesMbytes. .
En las máquinas modernas con discos de 200 En las máquinas modernas con discos de 200 GbytesGbytes, el 8237, se transformaría en un cuello , el 8237, se transformaría en un cuello de botella.de botella.
Los chipsets que acompañan a los Los chipsets que acompañan a los procesadores Core Duo, aún los mas modernos procesadores Core Duo, aún los mas modernos siguen incluyendo la lógica equivalente a este siguen incluyendo la lógica equivalente a este subsistema (8237 like).subsistema (8237 like).
Subsistema de DMA PC: Subsistema de DMA PC: LimitacionesLimitaciones
Las Las PCsPCs modernas utilizan DMA de primera modernas utilizan DMA de primera parte. parte.
Se refiere a controladores de dispositivos de E/S Se refiere a controladores de dispositivos de E/S (como disco por ejemplo) capaces de requerir (como disco por ejemplo) capaces de requerir por si solos el DMA y manejarlo. por si solos el DMA y manejarlo.
Este concepto se conoce como Este concepto se conoce como Bus MasteringBus Mastering y y en él se basa la tecnología Ultra DMA (UDMA) en él se basa la tecnología Ultra DMA (UDMA) de los controladores IDE para discos rígidos por de los controladores IDE para discos rígidos por ejemplo.ejemplo.
Alternativas al DMA legacy: Alternativas al DMA legacy: E/S E/S Programada (PIO)Programada (PIO)
• Esquema de acceso a la E/S mediante Esquema de acceso a la E/S mediante instrucciones de E/S del procesador (IN, OUT, INS, instrucciones de E/S del procesador (IN, OUT, INS, y OUTS) y algún hardware adicionaly OUTS) y algún hardware adicional
• De acuerdo a la implementación se consiguieron De acuerdo a la implementación se consiguieron diferentes velocidades de acceso. Estas se diferentes velocidades de acceso. Estas se conocen como Modos de E/S Programada o PIO conocen como Modos de E/S Programada o PIO ModesModes..
• La solución resultó mas que aceptable para los La solución resultó mas que aceptable para los primeros discos rígidos de tecnología IDE/ATA, de primeros discos rígidos de tecnología IDE/ATA, de modo que estos PIO modo que estos PIO modesmodes fueron incluidos en las fueron incluidos en las respectivas especificaciones de los estándares respectivas especificaciones de los estándares ATA-1 y ATA-2.ATA-1 y ATA-2.
Alternativas al DMA legacy: Alternativas al DMA legacy: E/S E/S Programada (PIO)Programada (PIO)
Cantidad de nano segundos para que se lleve a cabo la transferencia
1/Tiempo de Ciclo
Subsistemas de DMA modernosSubsistemas 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.
Ejemplo de controlador de disco Ejemplo de controlador de disco conectado el bus I/Oconectado el bus I/O
Controlador DMA de IntelControlador DMA de Intel
Controlador DMA de IntelControlador DMA de Intel
Diagrama de tiempos de un busDiagrama de tiempos de un bus
Configuración Channel I/OConfiguración Channel I/O
ConclusionesConclusiones
Método I/OMétodo I/O Complejidad Complejidad hardwarehardware
Complejidad Complejidad softwaresoftware
VelocidadVelocidad
PollingPolling ++ ++++++ ++
InterrupcionesInterrupciones ++++ ++++ ++++
DMADMA ++++++ ++ ++++++