Програмирани улаз-излаз

С Википедије, слободне енциклопедије

Програмирани улаз-излаз (такође програмирани улаз/излаз, програмирани I/О, PIO) је метод преноса података, путем улаза/излаза (I/O), између централне процесорске јединице (CPU) и периферног уређаја, као нпр. мрежни адаптер или паралелни ATA уређај за складиштење. Сваки пренос ставке података покреће инструкција у програму, која укључује CPU за сваку трансакцију. Насупрот томе, у операцијама директног приступа меморији (DMA), CPU није укључен у пренос података.

Термин се може односити или на I/O мапиран у меморији (MMIO) или на I/O мапиран на порту (PMIO). PMIO се односи на трансфере користећи посебан адресни простор изван нормалне меморије, којем се обично приступа помоћу наменских инструкција, као што су IN и OUT у x86 архитектури. MMI[1] се односи на трансфере на I/O уређаје који су мапирани у нормални адресни простор који је доступан програму. PMIO је био веома користан за ране микропроцесоре са малим адресним простором, пошто I/O уређаји нису трошили драгоценe ресурсe.

Најпознатији пример PC уређаја који користи програмирани I/O је AT Attachment (ATA) интерфејс и Serial ATA интерфејс; међутим, интерфејс AT Attachment-a такође може да ради у било ком од неколико DMA режима. Многи старији уређаји на рачунару такође користе PIO, укључујући старе серијске портове, застареле паралелне портове када нису у ECP режиму, PS/2 портове за тастатуру и миш, застарели дигитални интерфејс музичких инструмената (MIDI) и портове за џојстик, интервални тајмер и старије мрежне интерфејсе.

PIO режим у ATA интерфејсу[уреди | уреди извор]

PIO интерфејс је груписан у различите режиме који одговарају различитим брзинама преноса. Електрична сигнализација између различитих режима је слична — само је време циклуса између трансакција смањено да би се постигла већа брзина преноса. Сви ATA уређаји подржавају најспорији режим — режим 0. Приступом информационим регистрима (користећи режим 0) на ATA драјву, CPU може да одреди максималну брзину преноса за уређај и да конфигурише ATA контролер за оптималне перформансе.

PIO режими захтевају много CPU-а да би се конфигурисала трансакција података и пренели подаци. Због ове неефикасности, DMA (и на крају Ултра директан приступ меморији (UDMA)) интерфејс је креиран да повећа перформансе. Једноставна дигитална логика потребна за имплементацију PIO трансфера и даље чини овај метод преноса корисним и данас, посебно ако су високе брзине преноса непотребне као у уграђеним системима, или са чиповима који се програмирају на терену (FPGA), где се PIO режим може користити без значајан губитак перформанси.

Два додатна напредна временска режима дефинисана су у CompactFlash спецификацији 2.0. То су PIO режими 5 и 6. Они су специфични за CompactFlash.

PIO режими
Режим Максимална брзина преноса (MB/s) Минимално време циклуса Стандард где је дефинисана спецификација
Режим 0 3.3 600 ns АТА-1
Режим 1 5.2 383 ns АТА-1
Режим 2 8.3 240 ns АТА-1
Режим 3 11.1 180 ns АТА-2
Режим 4 16.7 120 ns АТА-2
Режим 5 20 100 ns CompactFlash 2.0
Режим 6 25 80 ns CompactFlash 2.0

PIO режим 5[уреди | уреди извор]

Предложен је PIO режим 5[2] са радом на 22 MB/s, али никада није имплементиран на хард дискове јер би процесори тог времена били осакаћени чекајући хард диск у предложеним PIO 5 тајминзима, а DMA стандард је то на крају избегао. Иако ниједан хард диск никада није произведен да подржава овај режим, неки произвођачи матичних плоча су унапред обезбедили BIOS подршку за њега. PIO режим 5 се може користити са CompactFlash картицама повезаним на ATA преко CF-y-ATA адаптера.

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ Stallings, William (2012). Computer Organization and Architecture (9th изд.). Pearson. 
  2. ^ Chen, Joseph (10. 1. 1995). „Proposed 22 MByte/Sec ATA Timing Extension for ATA-3” (PDF). T10.org. Technical Committee T10 (X3T10). Архивирано (PDF) из оригинала 20. 6. 2010. г. Приступљено 19. 2. 2020.