Tallinna Polütehnikum
IT ja
telekommunikatsioon Otse mällu pöördumine ehk DMA
Referaat
Koostaja:
Oskar -Ruben Järvemaa
Juhendaja: Urmas Krusell
Tallinn 2013
SisukordSissejuhatus..........................................................................................................................3
1Otse mällu pöördumine DMA. Milleks seda vaja on?.......................................................4
2Otse mällu pöördumise ehk DMA tööpõhimõte.................................................................5
3DMA edastusmeetodid.......................................................................................................7
4DMA töötlemine.................................................................................................................8
5Kokkuvõte..........................................................................................................................9
Kasutatud kirjandus............................................................................................................10
2
SissejuhatusAntud materjaliga lugemine eeldab arvuti
riistvara tööpõhimõtteid. Arvuti
kasutab andmete edastamiseks ja lugemiseks I/O seadmetelt 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, graafika kui ka paljude teiste I/O seadmete juures.
Kasutatakse teda igal pool kus on vaja vahendada andmeid suures koguses ja
kiirelt. Kõikjal kus kasutatakse DMA-d töötab ta paralleelselt ja märkamatult
protsessoriga ja vastava
seadmega millega siis parasjagu suheldakse. DMA
on võrreldes teiste meetoditega palju kiirem, kuna on konkreetse riistvara
osa. Samuti vähendab DMA kasutus latentsust(
latency ).
3
1 Otse mällu pöördumine DMA. Milleks seda vaja on?DMA (Direct Memory Access - mälu otsepöördus) on emaplaadi
arhidektuuriline suutlikkus saata edastatavad andmed seadmest (näiteks
kõvaketas, Cd-ROM) otse emaplaadil olevasse mällu.
Protsessor pole nõnda
andmeesdastusega seotud ning seega tõuseb ka üleüldine arvuti jõudlus.
Tavaliselt on määratud teatud hulk mälust alaks, mida kasutatakse DMA
tarvis. EISA ja MCA (Micro Channel Archidecture) standartid
toetavad juurdepääsu kogu mälu aadressi ulatuses. PCI (Peripheral Component
Interconnect) puhul teostatakse DMA
bus master tehnoloogia abil
(mikroprotsessor, mis delegeerib I/O lülitusi PCI kontrollerisse).
Standardis on kahte sorti DMA moode - ühesõnalised (
Single Word), kui
korraga kantakse nagu PIO moodideski üle üks sõna, ja mitmesõnalised
(Multiword). Ühesõnalised DMA moodid on küllalt mõttetud ja uuematest
standarditest on nad välja jäetud. Personaalarvuti puhul ei anna ka
mitmesõnaline DMA (PIO-ga sama ülekandekiiruse puhul) erilist võitu, sest
protsessoril pole niikuinii ülekande ajal muud teha kui selle lõppu oodata.
Nagu
mainitud , on alternatiiviks DMA-le on Programmed Input/Output
(PIO)
liides , kus andmevool suunatakse läbi protsessori.
DMA ülekande käigus liigutab
ketta kontroller andmeid ketta puhvri ja
arvuti mälu vahel otse, ilma protsessori abita. Protsessori ülesandeks on vaid
enne ülekande algust vajalikud käsud anda ja parameetrid paika panna.
Ülekandekiirus tähendab siinkohal kiirust andmete liigutamisel kettaseadmel
oleva mälupuhvri ja arvuti vahel. Sellel pole midagi tegemist ketta enesega
4
suhtlemise kiirusega, mis on ja peabki olema (oluliselt) madalam. Muidu
muutuks see pudelikaelaks, sest puhvrist lugemise/kirjutamise
vahepeal kulub ju lisaks aega muude tegevuste peale, ja kui
puhver õigeks ajaks
tühjaks/täis ei saa, peab ketas tegema terve pöörde, et vajalik koht jälle
lugemis-kirjutamispeade alla satuks. Eriti ilmektalt väljendub see siis, kui
ühe kaabli külge on ühendatud kaks
ketast ja toimub näiteks kopeerimine
neist ühelt teisele.
2 Otse mällu pöördumise ehk DMA tööpõhimõteKujutame ette arvuti riistvara ja kuidas käib käskude ja ülesannete liikumist
protsessori poole. (Joonis 1) 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 võtab töö järjekorda
ning lõpetab töö infoga mis tuleb talle BUS pealt 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 protsessor 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.
5
Joonis 1.6
3 DMA edastusmeetodidDMA kasutab peamiselt kolme loogikat kuidas ta protsessorile infot ette
valmistab. Vastavalt seadmele ja infole kasutatakse kõige sobivamat.
Üldjuhul kasutatakse kahte esimest
reziimi .
Single režiim (
burst mode) - Kogu info edastatakse ühe blokina
protsessorile. Miinuseks on see et protsessor on kogu see aeg hõivatud ja ei
võta ühtegi teist ülesannet vastu.
Block režiim (cycle stealing mode) - Info
edastamine käib tükkide kaupa. Iga
natukese aja tagant käib katkestuse (BR-bus request, BG-Bus
grant ) ja
vaadatakse kas tuleb vajalikku infot BUS pealt. Kui seda on siis võetakse see
töö vahele ja jätkatakse sealt
Demand režiim (transparent mode) - Põhimõtteliselt kasutab DMA
protsessorit kogu aeg kuni ei tule ülesandeid BUS pealt, kuid seda on
suhteliselt raske teostada. ja kontrollida
Näiteks: Kui CD-ROM seadmelt tulevat informatsiooni edastataks Single
režiimis siis oleks protsessor pidevalt hõivatud info lugemise ja ootamisega.
Selle pärast kasutataksegi Block režiimi kus infot kogutakse ja edastatakse
suurema tükina korraga.
7
4 DMA töötlemine1. Protsessor lõpetab käsiloleva töö ja annab BG (Bus Grant) signaali
ootavale seadmele.
2. Seade võtab BG signaali vastu.
3. Protsessor saab
kinnituse et BG
signaal on vastu võetud ja jääb
ootama aadressi ja andmeid seadmelt.
4. DMA seade edastab andmed allikast
sihtkohta .
5. DMA andmed cachitakse protsessoris ja protsessor jälgib et BUS peal
olev cachitud informatsiooni
aadressid ei kattuks DMA
omaga , kui
seda juhtub siis protsessor kas tühistab sisese
cache aadressi mis tal
mälus või uuendab seda siis selle informatsiooniga mis talle antakse.
6. Kui DMA on lõpetanud siis edastatakse BR (bus
release ) signaal.
7. Protsessor võtab BR signaali vastu ja pöördub tagasi BUS andmete
töötlemise juurde.
8
5 KokkuvõteIlma DMA-ta oleks raske ette kujutada arvutite tööd. Kui protsessor peaks
näiteks ootama CD lugeja järgi oleks see arvuti ressursi ebaefektiivne
kasutus. DMA võeti kasutusele kohe pc arvutite ilmumisega, kuna muud
moodi ei olnud võimalik arvuti ressurssi efektiivselt kasutada. Loomulikult
ei kasutata DMA vahemälu iga IO seadme puhul. Näiteks klaviatuuri ja
hiire puhul ei oleks see eriliselt mõistlik. Kujutame ette et kirjutad teksti ja tekst
ilmub
ekraanile mingi aja pärast. Lõppkokkuvõttes lahendas DMA väga
palju. Kiirendab arvuti tööd ja parandab andmete terviklikust näiteks siis kui
kirjutad
plaati.
Andmete kopeerimine ilma DMA-ta tekitaks olukorra kus protsessor peab
andmete kopeerimise kõrvalt tegema muid toiminguid ja see venitaks
kopeerimise aja pikaks. Sellepärast ongi kasutusel DMA, kes tegeleb
andmete liigutamisega aadress- ja andmesiinil ja protsessor saab tegeleda
infoga mis ei vaja andme- ja aadressiini hõivamist. Tänu sellele toimub asi
kasutaja jaoks märkamatult ja jääb mulje et katkestust ei ole.
9
Kasutatud kirjandus1.
https://wiki.itcollege.ee/index.php/DMA 2. www.battleit.ee/public/School/Varia/riistvara%20ja
%20arhitektuur.doc
3.
https://wiki.itcollege.ee/index.php/DMA 10
Document Outline
- Sissejuhatus
- 1 Otse mällu pöördumine DMA. Milleks seda vaja on?
- 2 Otse mällu pöördumise ehk DMA tööpõhimõte
- 3 DMA edastusmeetodid
- 4 DMA töötlemine
- 5 Kokkuvõte
- Kasutatud kirjandus
Kõik kommentaarid