Программируемый ввод-вывод - Programmed input–output

Программируемый ввод-вывод (также программируемый ввод / вывод, программируемый ввод / вывод, PIO) - метод передача данных, через ввод, вывод (I / O), между центральное процессорное устройство (CPU) и периферийный устройство, такое как Сетевой адаптер или Параллельный ATA (PATA, ранее AT Attachment (ATA)) запоминающее устройство. Передача каждого элемента данных инициируется инструкцией в программе с участием ЦП для каждой транзакции. Напротив, в прямой доступ к памяти (DMA), ЦП не участвует в передаче данных.

Термин может относиться к ввод-вывод с отображением памяти (MMIO) или ввод-вывод с отображением портов (PMIO). PMIO относится к переводам с использованием специального адресное пространство вне нормальной памяти, обычно доступ к ней осуществляется с помощью специальных инструкций, таких как В и ИЗ в x86 архитектуры. MMIO[1] относится к передачам на устройства ввода-вывода, которые отображаются в обычное адресное пространство, доступное программе. PMIO был очень полезен для ранних микропроцессоров с маленькими адресными пространствами, поскольку ценный ресурс не потреблялся устройствами ввода-вывода.

Наиболее известным примером устройства ПК, использующего программируемый ввод / вывод, является интерфейс AT Attachment (ATA); однако этот интерфейс также может работать в любом из нескольких режимов DMA. Многие старые устройства на ПК также используют PIO, включая устаревшие последовательные порты, устаревшие параллельные порты, когда они не находятся в режиме ECP, клавиатуру и мышь. PS / 2 порты, устаревший цифровой интерфейс для музыкальных инструментов (MIDI ) и джойстик порты, интервальный таймер и старые сетевые интерфейсы.

Режим PIO в интерфейсе ATA

Интерфейс PIO сгруппирован в разные режимы, которые соответствуют разным скорость передачи. В электрическая сигнализация между различными режимами аналогичен - только время цикла между транзакциями сокращается, чтобы достичь более высокой скорости передачи. Все устройства ATA поддерживают самый медленный режим - режим 0. Обращаясь к регистрам информации (используя режим 0) на диске ATA, ЦП может определить максимальную скорость передачи данных для устройства и настроить контроллер ATA для обеспечения оптимальной производительности.

Режимы PIO требуют значительных затрат ЦП для настройки транзакции данных и передачи данных. Из-за этой неэффективности DMA (и, в конечном итоге, Ultra Direct Memory Access (UDMA ) интерфейс был создан для повышения производительности. Простая цифровая логика, необходимая для реализации передачи PIO, по-прежнему делает этот метод передачи полезным сегодня, особенно если высокие скорости передачи не нужны, как в встроенные системы, или с программируемая вентильная матрица (FPGA), в которых можно использовать режим PIO без значительной потери производительности.

Два дополнительных расширенных режима синхронизации были определены в CompactFlash спецификация 2.0. Это режимы PIO 5 и 6. Они характерны для CompactFlash.

Режимы PIO
РежимМаксимальная скорость передачи (МБ / с)Минимальное время циклаСтандарт, в котором определены спецификации
Режим 03.3600 нсАТА-1
Режим 15.2383 нсАТА-1
Режим 28.3240 нсАТА-1
Режим 311.1180 нсАТА-2
Режим 416.7120 нсАТА-2
Режим 520100 нсCompactFlash 2.0
Режим 62580 нсCompactFlash 2.0

Режим PIO 5

Был предложен режим PIO 5[2] с работой со скоростью 22 МБ / с, но никогда не был реализован на жестких дисках, потому что процессоры того времени были бы повреждены, ожидая жесткий диск в предлагаемые тайминги PIO 5, а DMA стандарт в конечном итоге устранил это. Пока нет привод жесткого диска когда-либо производились для поддержки этого режима, некоторые материнская плата производители предоставили BIOS поддержка для этого. Режим PIO Mode 5 можно использовать с картами CompactFlash, подключенными к ATA через адаптеры CF-to-ATA.

Смотрите также

Рекомендации

  1. ^ Столлингс, Уильям (2012). Компьютерная организация и архитектура (9-е изд.). Пирсон.
  2. ^ Чен, Джозеф (10 января 1995 г.). "Предлагаемое расширение тайминга ATA 22 МБ / с для ATA-3" (PDF). T10.org. Технический комитет T10 (X3T10). В архиве (PDF) с оригинала от 20 июня 2010 г.. Получено 19 февраля, 2020.