Ano ang Direktang Pag-access sa Memorya (DMA) at Paano Ito Gumagana? [MiniTool Wiki]
What Is Direct Memory Access
Mabilis na Pag-navigate:
Maaari mong gamitin ang RDMA teknolohiya upang paganahin ang mga computer sa isang network upang makipagpalitan ng data sa pangunahing memorya nang hindi kasangkot ang processor, cache o operating system ng alinman sa computer. Ngunit maaari mo ring gamitin ang tampok na DMA upang direktang magpadala ng data mula sa isang nakalakip na aparato sa memorya sa motherboard ng computer. Ang post na ito mula sa MiniTool higit sa lahat ay pinag-uusapan ang tungkol sa DMA.
Ang Kahulugan ng Direktang Pag-access sa Memorya
Una sa lahat, ano ang Direct Memory Access? Ang Direct Memory Access ay maaaring pagpapaikli sa DMA, na isang tampok ng mga computer system. Pinapayagan ang mga aparato ng input / output (I / O) na ma-access ang pangunahing memorya ng system ( random access memory ), malaya sa gitnang pagpoproseso ng yunit (CPU), na nagpapabilis sa pagpapatakbo ng memorya.
Tip: Maaaring interesado ka sa post na ito - 8 Mga Kapaki-pakinabang na Solusyon upang Ayusin ang Iyong CPU na 100% sa Windows 10 .
Nang walang Direktang Pag-access sa Memorya, kapag gumagamit ang CPU ng mga naka-program na input / output, kadalasang ito ay buong nasasakop sa buong operasyon na basahin o isulat, kaya't hindi ito makakagawa ng iba pang mga gawain. Sa DMA, pinasimulan muna ng CPU ang paglipat, pagkatapos ay nagsasagawa ng iba pang mga operasyon habang ang paglilipat ay isinasagawa, at sa wakas ay nakakatanggap ng isang nakakagambala mula sa DMA controller (DMAC) kapag ang operasyon ay kumpleto na.
Ang Direct Memory Access ay kapaki-pakinabang tuwing hindi makasabay ang CPU sa rate ng paglipat ng data, o kapag kailangang gumanap ng trabaho ang CPU habang naghihintay para sa medyo mabagal na paglipat ng data ng I / O.
Pinagsama-sama ng maramihang mga system ng hardware ang Direct Memory Access, tulad ng mga disk drive Controller, graphics card, network card, at sound card. Ginagamit din ang DMA para sa on-chip data transfer sa mga multi-core na processor. Kung ikukumpara sa mga computer na walang mga channel ng Direct Memory Access, ang mga computer na may mga channel ng DMA ay maaaring maglipat ng data sa pagitan ng mga aparato na mas mababa ang overhead ng CPU.
Maaari ding magamit ang Direct Memory Access para sa 'memorya sa memorya' upang makopya o ilipat ang data sa memorya. Maaari nitong ilipat ang mga mamahaling pagpapatakbo ng memorya (tulad ng malalaking kopya o operasyon na magkakalat) mula sa CPU patungo sa isang nakalaang DMA engine. Mahalaga ang DMA sa mga arkitektura ng network-on-chip at memory computing.
Paano gumagana ang Direktang Memory Access?
Kung gayon paano gumagana ang Direct Memory Access? Ang Standard Direct Memory Access (tinatawag ding third-party DMA) ay gumagamit ng isang DMA controller. Ang DMA controller ay maaaring gumawa ng mga address ng memorya at ilunsad ang memorya na basahin o isulat ang mga cycle. Saklaw nito ang maramihang mga rehistro ng hardware na maaaring mabasa at isulat ng CPU.
Ang mga rehistro ay binubuo ng isang memorya ng rehistro ng address, isang byte count ng rehistro, at isa o higit pang mga rehistro ng kontrol. Nakasalalay sa mga tampok na ibinigay ng Controller ng Direct Memory Access, ang mga rehistro ng kontrol na ito ay maaaring humirang ng ilang kumbinasyon ng mapagkukunan, patutunguhan, direksyon ng paglipat (basahin mula sa o sumulat sa I / O aparato), laki ng transfer unit, at / o ang bilang ng bytes upang ilipat sa isang pagsabog.
Upang maisagawa ang pagpapatakbo ng input, output, o memorya-sa-memorya, pinasimulan ng host processor ang DMA controller na may bilang ng mga salitang ililipat at ang memory address na gagamitin. Pagkatapos ang utos ng CPU sa paligid ng aparato upang simulan ang paglipat ng data.
Pagkatapos ang Direct Memory Access controller ay nag-aalok ng mga address at basahin / isulat ang mga linya ng kontrol sa memorya ng system. Sa bawat oras na ang isang byte ng data ay handa na ilipat sa pagitan ng paligid ng aparato at ang memorya, ang DMA controller ay nagdaragdag ng panloob na address na magparehistro hanggang sa isang kumpletong bloke ng data ay mailipat.
Mga Paraan ng Pagpapatakbo
Iba't ibang gumagana ang Direct Memory Access sa iba't ibang mga mode ng pagpapatakbo.
Burst Mode
Sa burst mode, ang buong bloke ng data ay nakukuha sa isang tuloy-tuloy na pagkakasunud-sunod. Kapag pinapayagan ng CPU ang DMA controller na mag-access sa system bus, ililipat ng DMA controller ang lahat ng mga byte ng data sa bloke ng data bago ilabas ang kontrol ng mga bus ng system pabalik sa CPU, ngunit magiging sanhi ito ng pagiging hindi aktibo ng CPU para sa isang medyo matagal na. Ang mode na ito ay tinatawag ding 'Block Transfer Mode'.
Cycle Stealing Mode
Ang mode ng pagnanakaw ng ikot ay ginagamit sa isang system kung saan ang CPU ay hindi maaaring hindi paganahin para sa haba ng oras na kinakailangan para sa burst transfer mode. Sa cycle steal mode, nakakakuha ang DMA controller ng pag-access sa system bus sa pamamagitan ng paggamit ng mga signal ng BR (Bus Request) at BG (Bus Grant), na kapareho ng burst mode. Kinokontrol ng dalawang signal na ito ang interface sa pagitan ng CPU at ng DMA controller.
Sa isang banda, sa cycle steal mode, ang bilis ng paghahatid ng bloke ng data ay hindi kasing bilis ng burst mode, ngunit sa kabilang banda, ang oras ng CPU idle ay hindi kasing haba sa burst mode.
Transparent Mode
Ang transparent mode ay tumatagal ng pinakamahabang oras upang ilipat ang mga bloke ng data, ngunit ito rin ang pinaka mahusay na mode sa mga tuntunin ng pangkalahatang pagganap ng system. Sa transparent mode, ang Direct Memory Access controller ay maglilipat lamang ng data kapag ang CPU ay nagsasagawa ng mga operasyon na hindi gumagamit ng mga system bus.
Ang pangunahing bentahe ng transparent mode ay ang CPU na hindi tumitigil sa pagpapatupad ng mga programa nito, at ang mga Paglipat ng Direct Memory Access ay libre sa mga tuntunin ng oras, habang ang kawalan ay ang hardware na kailangang matukoy kung kailan hindi ginagamit ng CPU ang mga bus ng system, na maaaring maging kumplikado Tinatawag din itong 'nakatagong mode ng paglipat ng data ng DMA'.