Večina srednjih in velikih računalnikov ima enega ali več vhodno-izhodnih procesorjev, ki skrbijo za vse operacije z vhodno-izhodnimi napravami. Pri tem načinu CPE nima neposrednega dostopa do registrov naprav. Svoje vhodno-izhodne zahteve sporoča vhodno-izhodnim procesorjem, ki imajo dostop do registrov ter poskrbijo, da se bodo zahteve izvršile.
Na računalnikih z vhodno-izhodni procesorji so vhodno/izhodne naprave priključene na posebna vodila, ki služijo za njihovo komuniciranje z vhodno-izhodnimi procesorji. Ti so z drugimi vodili povezani z glavnim pomnilnikom običajno preko krmilnika pomnilnika. Povezovalne strukture, ki se uporabljajo za priključevanje vhodno-izhodnih naprav, se pri različnih računalnikih precej razlikujejo.
Vhodno/izhodni procesorji so zaradi manjših stroškov včasih realizirani tako, da uporabljajo oziroma si delijo določene funkcije s CPE. V takih primerih vhodno-izhodnih procesorjev kot fizično samostojnih enot pogosto sploh ni. Obstajajo pa v logičnem smislu kot samostojne enote, od katerih programer lahko zahteva izvedbo vhodno-izhodnih operacij.
Z izrazom neposreden dostop do pomnilnika ali DMA, se želi poudariti, da je možen dostop do pomnilnika mimo mikroprocesorja. V sistemih, ki DMA ne uporabljajo, ima namreč dostop do pomnilnika samo mikroprocesor. Vhodno-izhodne naprave (oziroma njihovi krmilniki) lahko prenašajo podatke v ali iz pomnilnika samo s sodelovanjem mikroprocesorja. Ker mikroprocesor pri teh prenosih izvaja program, se ta vrsta vhodno-izhodnih prenosov označuje kot programski vhod-izhod.
Za vsako preneseno pomnilniško besedo je pri programskem vhodu-izhodu potrebno izvršiti nekaj (tipično od 4 do 8) ukazov. Če upoštevamo, da mikroprocesor za vsak ukaz potrebuje čas v trajanju več urnih period, je razvidna počasnost programskega vhoda-izhoda. Pri neposrednem dostopu do pomnilnika je seveda za prenos ene besede potreben samo pas v tajanju enega dostopa do pomnilnika. Značilno za vhodno-izhodne prenose je, da skoraj vedno želimo prenesti v ali iz pomnilnika polje besed določene dolžine. Tipične dolžine polj so nekaj sto besed n‐ le redko manj. Za te vrste prenosov so proizvajalci mikroprocesorjev razvili posebne elemente, ki so znani pod imenom DMA krmilnik.
Večina DMA krmilnikov je namenjena prenosu med pomnilnikom in krmilniki vhodno-izhodnih naprav, obstajajo pa tudi DMA krmilniki, ki lahko vršijo prenose iz enega dela v drug del krmilnika. Nekateri lahko med prenosi tudi iščejo v naprej določen vzorcebitov v pomnilniški besedi. DMA krmilniki niso vedno realizirani kot posebni elementi (čipi). V principu je namreč mogoče integrirati DMA krmilnik v krmilnik vhodno-izhodne naprave in danes obstaja kar nekaj čipov te vrste. Tu je pomembno poudariti, da se s tako integracijo lastnosti DMA prenosov ne spremenijo.
Vsak prenos polja besed vhodno-izhodne naprave v pomnilnik (ali obratno) obsega pri prenosu vsake besede naslednje zaporedje šesti operacij:
To zaporedje se ponavlja, dokler pri nekem prenosu v zadnji točki ne ugotovimo, da je prenešeno celo polje. Pri programskem vhodu-izhodu lahko pri nekaterih mikroprocesorjih realiziramo več operacij z enim ukazom. Kljub temu da so v programih včasih skrite, ni nobenega dvoma, da je vsaka od naštetih operacij nujno potrebna.
Iz opisa operacij sledita dve pomembni ugotovitvi. Prva je, da mora vsak DMA krmilnik vsebovati najmanj naslednje sposobnosti in dele:
Druga ugotovitev je, da so DMA prenosi vedno bistveno hitrejši od programskega vhoda-izhoda.
SERŠ Maribor, Strokovna gimnazija, leto: 2002, avtor: Jure Štern