Što je izravni pristup memoriji (DMA) i kako to funkcionira? [MiniTool Wiki]
What Is Direct Memory Access
Brza navigacija:
Možete usvojiti RDMA tehnologija koja omogućuje računalima u mreži razmjenu podataka u glavnoj memoriji bez uključivanja procesora, predmemorije ili operativnog sustava bilo kojeg računala. Ali DMA značajku možete koristiti i za izravno slanje podataka s priključenog uređaja u memoriju na matičnoj ploči računala. Ovaj post od MiniTool uglavnom govori o DMA.
Definicija izravnog pristupa memoriji
Prije svega, što je izravni pristup memoriji? Izravni pristup memoriji može se skratiti u DMA, što je značajka računalnih sustava. Omogućuje ulazno / izlaznim (I / O) uređajima pristup glavnoj memoriji sustava ( RAM memorija ), neovisno o središnjoj procesorskoj jedinici (CPU), što ubrzava memorijske operacije.
Savjet: Možda vas zanima ovaj post - 8 korisnih rješenja za stopostotno popravljanje CPU-a u sustavu Windows 10 .
Bez izravnog pristupa memoriji, kada CPU koristi programirane ulaze / izlaze, obično je potpuno zauzet tijekom cijele operacije čitanja ili pisanja, pa ne može izvršavati druge zadatke. S DMA-om CPU prvo pokreće prijenos, a zatim izvodi druge operacije dok je prijenos u tijeku i na kraju prima prekid od DMA kontrolera (DMAC) kada je operacija završena.
Izravni pristup memoriji koristan je kad CPU ne može pratiti brzinu prijenosa podataka ili kada CPU treba obaviti posao dok čeka relativno spor I / O prijenos podataka.
Višestruki hardverski sustavi usvajaju izravni pristup memoriji, poput kontrolera diskovnih pogona, grafičkih kartica, mrežnih kartica i zvučnih kartica. DMA se također koristi za prijenos podataka na čipu u višejezgrenim procesorima. U usporedbi s računalima bez izravnog pristupa memorijskim kanalima, računala s DMA kanalima mogu prenositi podatke između uređaja s mnogo manje CPU-a.
Izravni pristup memoriji također se može koristiti za 'memoriju u memoriju' za kopiranje ili premještanje podataka u memoriju. Može prenijeti skupe memorijske operacije (poput velikih kopija ili operacija skupljanja podataka) s CPU-a na namjenski DMA mehanizam. DMA je važan u računarskim arhitekturama mreže na čipu i memorije.
Kako funkcionira izravni pristup memoriji?
Kako onda funkcionira izravni pristup memoriji? Standardni izravni pristup memoriji (također se naziva i nezavisni DMA) prihvaća DMA kontroler. DMA kontroler može stvarati memorijske adrese i pokretati cikluse čitanja ili pisanja memorije. Obuhvaća višestruke hardverske registre koje CPU može čitati i pisati.
Ti se registri sastoje od registra memorijske adrese, registra brojanja bajtova i jednog ili više kontrolnih registara. Ovisno o značajkama koje pruža kontroler izravnog pristupa memoriji, ovi kontrolni registri mogu odrediti neku kombinaciju izvora, odredišta, smjera prijenosa (čitati ili upisivati na I / O uređaj), veličine prijenosne jedinice i / ili broja bajtova za prijenos u jednom nizu.
Da bi izvršio operacije unosa, izlaza ili memorije u memoriju, glavni procesor pokreće DMA kontroler s brojem riječi za prijenos i adresom memorije koju treba koristiti. Tada CPU zapovijeda perifernom uređaju da započne prijenos podataka.
Tada kontroler Direct Memory Access nudi adrese i upravljačke linije za čitanje / pisanje u sistemsku memoriju. Svaki put kad se bajt podataka pripremi za prijenos između perifernog uređaja i memorije, DMA kontroler povećava svoj unutarnji registar adresa dok se ne prenese kompletan podatkovni blok.
Načini rada
Izravni pristup memoriji djeluje različito u različitim načinima rada.
Način praska
U brzom načinu rada, cjeloviti blok podataka prenosi se u kontinuiranom slijedu. Jednom kada CPU omogući DMA kontroleru pristup sistemskoj sabirnici, DMA kontroler će prenijeti sve bajtove podataka u podatkovnom bloku prije nego što pusti kontrolu nad sistemskim sabirnicama natrag na CPU, ali će uzrokovati da CPU bude neaktivan za prilično dugo vremena. Ovaj se način naziva i 'Block Transfer Mode'.
Način krađe ciklusa
Način krađe ciklusa koristi se u sustavu u kojem CPU ne može biti onemogućen onoliko dugo koliko je potrebno za način brzog prijenosa. U načinu krađe ciklusa, DMA kontroler dobiva pristup sistemskoj sabirnici pomoću BR (Bus Request) i BG (Bus Grant) signala, koji su isti kao i burst način. Ova dva signala kontroliraju sučelje između CPU-a i DMA kontrolera.
S jedne strane, u načinu krađe ciklusa, brzina prijenosa bloka podataka nije tako brza kao u modu rafalnog snimanja, ali s druge strane, vrijeme mirovanja CPU-a nije toliko dugo kao u modu rafala.
Prozirni način rada
Transparentnom načinu rada treba najviše vremena za prijenos blokova podataka, ali ujedno je i najučinkovitiji način u pogledu ukupnih performansi sustava. U transparentnom načinu rada, kontroler izravnog pristupa memoriji prenosi podatke samo kada CPU izvodi operacije koje ne koriste sistemske sabirnice.
Glavna prednost transparentnog načina rada je što CPU nikada ne prestaje izvršavati svoje programe, a izravni pristup memoriji je vremenski besplatan, dok je nedostatak taj što hardver mora utvrditi kada CPU ne koristi sistemske sabirnice, što može biti komplicirano. To se naziva i 'način skrivenog DMA prijenosa podataka'.