Entrada-salida programada

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Método de comunicación de la CPU con dispositivos periféricos

Entrada-salida programada (también entrada/salida programable, entrada/salida programada, E/S programada, PIO) es un método de transmisión de datos, mediante entrada/salida (E/S), entre una unidad central de procesamiento (CPU) y un dispositivo periférico, como un dispositivo de almacenamiento Parallel ATA. Cada transferencia de elementos de datos se inicia mediante una instrucción en el programa, que involucra a la CPU para cada transacción. Por el contrario, en las operaciones de acceso directo a la memoria (DMA), la CPU no participa en la transferencia de datos.

El término puede referirse a E/S asignadas a la memoria (MMIO) o E/S asignadas a puertos (PMIO). PMIO hace referencia a las transferencias que utilizan un espacio de direcciones especial fuera de la memoria normal, al que normalmente se accede con instrucciones dedicadas, como IN y OUT en arquitecturas x86. MMIO se refiere a transferencias a dispositivos de E/S que se asignan al espacio de direcciones normal disponible para el programa. PMIO fue muy útil para los primeros microprocesadores con pequeños espacios de direcciones, ya que los dispositivos de E/S no consumían el valioso recurso.

El ejemplo más conocido de un dispositivo de PC que utiliza E/S programadas es la interfaz Parallel AT Attachment (PATA); sin embargo, la interfaz AT Attachment también se puede operar en cualquiera de varios modos DMA. Muchos dispositivos más antiguos en una PC también usan PIO, incluidos los puertos seriales heredados, los puertos paralelos heredados cuando no están en modo ECP, los puertos PS/2 de teclado y mouse, los puertos MIDI y joystick heredados, el temporizador de intervalos y las interfaces de red más antiguas.

Modo PIO en la interfaz ATA

La interfaz PIO se agrupa en diferentes modos que corresponden a diferentes tasas de transferencia. La señalización eléctrica entre los diferentes modos es similar: solo se reduce el tiempo de ciclo entre transacciones para lograr una tasa de transferencia más alta. Todos los dispositivos ATA admiten el modo más lento: el Modo 0. Al acceder a los registros de información (usando el Modo 0) en una unidad ATA, la CPU puede determinar la tasa de transferencia máxima para el dispositivo y configurar el controlador ATA para un rendimiento óptimo.

Los modos PIO requieren una gran sobrecarga de la CPU para configurar una transacción de datos y transferir los datos. Debido a esta ineficiencia, la interfaz DMA (y finalmente la interfaz Ultra Direct Memory Access (UDMA)) se creó para aumentar el rendimiento. La lógica digital simple necesaria para implementar una transferencia PIO todavía hace que este método de transferencia sea útil hoy en día, especialmente si no se necesitan altas tasas de transferencia como en sistemas integrados, o con chips de matriz de puertas programables en campo (FPGA), donde el modo PIO se puede usar sin una pérdida significativa de rendimiento.

Se han definido dos modos de temporización avanzados adicionales en la especificación CompactFlash 2.0. Esos son los modos PIO 5 y 6. Son específicos de CompactFlash.

Modos PIO
ModoTasa máxima de transferencia (MB/s)Tiempo mínimo del cicloEstándar donde se define la especificaciones
Modo 0 3.3 600 ns ATA-1
Modo 1 5.2 383 ns ATA-1
Modo 2 8.3 240 ns ATA-1
Modo 3 11.1 180 ns ATA-2
Modo 4 16,7 120 ns ATA-2
Modo 5 20 100 ns CompactFlash 2.0
Modo 6 25 80 ns CompactFlash 2.0

Modo PIO 5

Se propuso un Modo 5 de PIO con un funcionamiento a 22 MB/s, pero nunca se implementó en los discos duros porque las CPU de la época se habrían paralizado esperando el disco duro en los tiempos de PIO 5 propuestos y, en última instancia, el estándar DMA. lo obvió. Si bien nunca se fabricó una unidad de disco duro para admitir este modo, algunos fabricantes de placas base proporcionaron soporte de BIOS de manera preventiva. El modo PIO 5 se puede utilizar con tarjetas CompactFlash conectadas a ATA a través de adaptadores CF a ATA.

Contenido relacionado

Lenguaje de marcado de inteligencia artificial

AIML, o Lenguaje de marcado de inteligencia artificial, es un dialecto XML para crear agentes de software de lenguaje...

Explotar (seguridad informática)

Un exploit es una pieza de software, un trozo de datos, o una secuencia de comandos que se aprovecha de un error o vulnerabilidad para provocar un...

AWK

AWK es un lenguaje específico de dominio diseñado para el procesamiento de texto y normalmente se usa como una herramienta de extracción de datos y...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save