Pređi na sadržaj

Programirani ulaz-izlaz

S Vikipedije, slobodne enciklopedije

Programirani ulaz-izlaz (takođe programirani ulaz/izlaz, programirani I/O, PIO) je metod prenosa podataka, putem ulaza/izlaza (I/O), između centralne procesorske jedinice (CPU) i perifernog uređaja, kao npr. mrežni adapter ili paralelni ATA uređaj za skladištenje. Svaki prenos stavke podataka pokreće instrukcija u programu, koja uključuje CPU za svaku transakciju. Nasuprot tome, u operacijama direktnog pristupa memoriji (DMA), CPU nije uključen u prenos podataka.

Termin se može odnositi ili na I/O mapiran u memoriji (MMIO) ili na I/O mapiran na portu (PMIO). PMIO se odnosi na transfere koristeći poseban adresni prostor izvan normalne memorije, kojem se obično pristupa pomoću namenskih instrukcija, kao što su IN i OUT u x86 arhitekturi. MMI[1] se odnosi na transfere na I/O uređaje koji su mapirani u normalni adresni prostor koji je dostupan programu. PMIO je bio veoma koristan za rane mikroprocesore sa malim adresnim prostorom, pošto I/O uređaji nisu trošili dragocene resurse.

Najpoznatiji primer PC uređaja koji koristi programirani I/O je AT Attachment (ATA) interfejs i Serial ATA interfejs; međutim, interfejs AT Attachment-a takođe može da radi u bilo kom od nekoliko DMA režima. Mnogi stariji uređaji na računaru takođe koriste PIO, uključujući stare serijske portove, zastarele paralelne portove kada nisu u ECP režimu, PS/2 portove za tastaturu i miš, zastareli digitalni interfejs muzičkih instrumenata (MIDI) i portove za džojstik, intervalni tajmer i starije mrežne interfejse.

PIO režim u ATA interfejsu[uredi | uredi izvor]

PIO interfejs je grupisan u različite režime koji odgovaraju različitim brzinama prenosa. Električna signalizacija između različitih režima je slična — samo je vreme ciklusa između transakcija smanjeno da bi se postigla veća brzina prenosa. Svi ATA uređaji podržavaju najsporiji režim — režim 0. Pristupom informacionim registrima (koristeći režim 0) na ATA drajvu, CPU može da odredi maksimalnu brzinu prenosa za uređaj i da konfiguriše ATA kontroler za optimalne performanse.

PIO režimi zahtevaju mnogo CPU-a da bi se konfigurisala transakcija podataka i preneli podaci. Zbog ove neefikasnosti, DMA (i na kraju Ultra direktan pristup memoriji (UDMA)) interfejs je kreiran da poveća performanse. Jednostavna digitalna logika potrebna za implementaciju PIO transfera i dalje čini ovaj metod prenosa korisnim i danas, posebno ako su visoke brzine prenosa nepotrebne kao u ugrađenim sistemima, ili sa čipovima koji se programiraju na terenu (FPGA), gde se PIO režim može koristiti bez značajan gubitak performansi.

Dva dodatna napredna vremenska režima definisana su u CompactFlash specifikaciji 2.0. To su PIO režimi 5 i 6. Oni su specifični za CompactFlash.

PIO režimi
Režim Maksimalna brzina prenosa (MB/s) Minimalno vreme ciklusa Standard gde je definisana specifikacija
Režim 0 3.3 600 ns ATA-1
Režim 1 5.2 383 ns ATA-1
Režim 2 8.3 240 ns ATA-1
Režim 3 11.1 180 ns ATA-2
Režim 4 16.7 120 ns ATA-2
Režim 5 20 100 ns CompactFlash 2.0
Režim 6 25 80 ns CompactFlash 2.0

PIO režim 5[uredi | uredi izvor]

Predložen je PIO režim 5[2] sa radom na 22 MB/s, ali nikada nije implementiran na hard diskove jer bi procesori tog vremena bili osakaćeni čekajući hard disk u predloženim PIO 5 tajminzima, a DMA standard je to na kraju izbegao. Iako nijedan hard disk nikada nije proizveden da podržava ovaj režim, neki proizvođači matičnih ploča su unapred obezbedili BIOS podršku za njega. PIO režim 5 se može koristiti sa CompactFlash karticama povezanim na ATA preko CF-y-ATA adaptera.

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ Stallings, William (2012). Computer Organization and Architecture (9th izd.). Pearson. 
  2. ^ Chen, Joseph (10. 1. 1995). „Proposed 22 MByte/Sec ATA Timing Extension for ATA-3” (PDF). T10.org. Technical Committee T10 (X3T10). Arhivirano (PDF) iz originala 20. 6. 2010. g. Pristupljeno 19. 2. 2020.