DMA
Koostaja
Ragnar Luup AK21 2013
Sissejuhatus?
Arvuti kasutab andmete edastamiseks ja lugemiseks 3 erinevat meetodit polling, katkestus ja DMA (direct memory access). Erinevaid meetodeid kasutatakse erinevates kohtades vastavalt vajadusele kuid tänapäeva arvutis on kasutusel peamiselt DMA. DMA vahemälu kasutatakse nii protsessori kui ka graafika juures. Kasutatakse teda igal pool kus on vaja vahendada andmeid suures koguses ja kiirelt. Kõikjal kus kasutatakse DMA-d töötab ta paraleelselt ja märkamatult vastava seadmega. DMA on võrreldes teiste meetoditega palju kiirem kuna on konkreetse riistvara osa ja kirjutamine/lugemine toimub kiirelt. Samuti vähendab DMA kasutus infoläägi (latency.
Ajalugu
DMA tuli kastusele kohe alguses IBM PC-dega kuna muud moodi ei olnud lihtsalt võimalik lahendada erinevatel kiirustel töötavate seadmete probleemi.
DMA tööpõhimõte
Kujutame ette arvuti riistvara ja selle töötamist (joonis A). Arvuti protsessor teeb pidevalt tööd infoga mis tuleb temale BUS pealt. DMA kontroller suhtleb aga I/O seadmetega ja paigutab informatsiooni otse mällu, kui see info on kokku korjatud siis annab DMA kontroller protsessorile märku ja protsessor peatab töö infoga mis talle tuleb mujalt ja võtab käsile DMA kontrolleri poolt edastatava info. DMA kontroller annab protsessorile ainult mälu aadressi ja infohulga suuruse ja protsessor läheb võtab mälust vajaliku informatsiooni töötlemiseks. Pärast lõpetamist võtab ta tagasi BUS pealt tuleva informatsiooni töötlemise. Seda kõike on vaja selleks et ei tekiks ifokadu näiteks siis kui I/O seade on liiga kiire ja infot on palju ning protsessor ei jõua seda ära töödelda. Samamoodi kui I/O seade on liiga aeglane.
Kasutatud materjal
http://www.dave-reed.com/csc539.S05/Lectures/computer.ppt
http://cires.colorado.edu/jimenez-group/QAMSResources/Docs/DMAFundamentals.pdf
http://www.linuxjournal.com/article/7104
http://www.talktoanit.com/A+/aplus-website/lessons-io-principles.html