DMA: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 9: Line 9:
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.
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).
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 on kasutusel juba IBM PC arvutite algusaegadest peale. Alguses kasutati seda floppy ketta andmete lugemise ja kirjutamise jaoks, hiljem hakati seda kasutama kõvaketaste juures. Sealt edasi on liikunud DMA kasutus igale poole arvutitehnoloogias.


= DMA tööpõhimõte =
= 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.
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 võtab töö järjekorda ning lõpetab töö infoga mis talle tuleb 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 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.
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.


Line 17: Line 20:


= DMA edastusmeetodid =
= DMA edastusmeetodid =
*Blokk reziim - 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.<br>
*Single reziim - 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.<br>
*Katkestusemeetod - töötab põhimõtteliselt samamoodi nagu blokk reziim aga iga natukese aja tagant tehakse katkestus ja vaadatakse kas on midagi tähtsat BUS peal mis vajab tegemist.<br>
*Block reziim - Info edastamine käib tükkide kaupa. Iga natukese aja tagant käib katkestuse ja vaadatakse kas tuleb vajalikku infot BUS pealt.<br>
*Läbipaistev reziim - Põhimõtteliselt kasutab DMA protsessorit kogu aeg kuni ei tule ülesandeid BUS pealt, kuid seda on suhteliselt raske teostada.
*Demand reziim - Põhimõtteliselt kasutab DMA protsessorit kogu aeg kuni ei tule ülesandeid BUS pealt, kuid seda on suhteliselt raske teostada.


= Kasutatud materjal =
= Kasutatud materjal =

Revision as of 21:35, 4 November 2013

Koostaja

KOOSTAMISEL

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 on kasutusel juba IBM PC arvutite algusaegadest peale. Alguses kasutati seda floppy ketta andmete lugemise ja kirjutamise jaoks, hiljem hakati seda kasutama kõvaketaste juures. Sealt edasi on liikunud DMA kasutus igale poole arvutitehnoloogias.

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 võtab töö järjekorda ning lõpetab töö infoga mis talle tuleb 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 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.

DMA edastusmeetodid

  • Single reziim - 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 reziim - Info edastamine käib tükkide kaupa. Iga natukese aja tagant käib katkestuse ja vaadatakse kas tuleb vajalikku infot BUS pealt.
  • Demand reziim - Põhimõtteliselt kasutab DMA protsessorit kogu aeg kuni ei tule ülesandeid BUS pealt, kuid seda on suhteliselt raske teostada.

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