Kaj je neposredni dostop do pomnilnika (DMA) in kako deluje? [MiniTool Wiki]
What Is Direct Memory Access
Hitra navigacija:
Lahko sprejmete RDMA tehnologija, ki omogoča računalnikom v omrežju izmenjavo podatkov v glavnem pomnilniku brez vključevanja procesorja, predpomnilnika ali operacijskega sistema katerega koli računalnika. Lahko pa uporabite tudi funkcijo DMA za neposredno pošiljanje podatkov iz priložene naprave v pomnilnik na matični plošči računalnika. Ta objava od MiniTool govori predvsem o DMA.
Definicija neposrednega dostopa do pomnilnika
Najprej, kaj je neposreden dostop do pomnilnika? Neposredni dostop do pomnilnika je mogoče okrajšati na DMA, kar je značilnost računalniških sistemov. Omogoča vhodno / izhodnim (I / O) napravam dostop do glavnega sistemskega pomnilnika ( pomnilnik z naključnim dostopom ), neodvisno od centralne procesorske enote (CPU), ki pospeši delovanje pomnilnika.
Namig: Morda vas bo zanimala ta objava - 8 koristnih rešitev za 100-odstotno popravljanje procesorja v sistemu Windows 10 .
Brez neposrednega dostopa do pomnilnika, ko CPU uporablja programirane vhode / izhode, je običajno v celoti zaseden med celotno operacijo branja ali pisanja, zato ne more opravljati drugih nalog. Z DMA CPU najprej začne prenos, nato med izvajanjem izvaja druge operacije in na koncu prejme prekinitev od krmilnika DMA (DMAC), ko je operacija končana.
Neposreden dostop do pomnilnika je koristen, kadar CPU ne more slediti hitrosti prenosa podatkov ali kadar CPU mora opraviti delo, medtem ko čaka na razmeroma počasen prenos I / O podatkov.
Številni strojni sistemi sprejemajo neposreden dostop do pomnilnika, kot so krmilniki diskovnih pogonov, grafične kartice, omrežne kartice in zvočne kartice. DMA se uporablja tudi za prenos podatkov na čipu v večjedrnih procesorjih. V primerjavi z računalniki brez kanalov z neposrednim dostopom do pomnilnika lahko računalniki s kanali DMA prenašajo podatke med napravami z veliko manjšo porabo procesorja.
Neposredni dostop do pomnilnika se lahko uporablja tudi za kopiranje ali premikanje podatkov v pomnilnik za »pomnilnik v pomnilnik«. Lahko prenese drage pomnilniške operacije (na primer velike kopije ali operacije razprševanja) s CPU na namenski mehanizem DMA. DMA je pomemben pri arhitekturah računalništva na omrežju na čipu in pomnilniku.
Kako deluje neposredni dostop do pomnilnika?
Kako potem deluje neposredni dostop do pomnilnika? Standardni neposredni dostop do pomnilnika (imenovan tudi neodvisni DMA) sprejme krmilnik DMA. Krmilnik DMA lahko ustvari naslove pomnilnika in zažene cikle branja ali pisanja pomnilnika. Zajema več registrov strojne opreme, ki jih lahko prebere in zapiše CPU.
Ti registri so sestavljeni iz registra pomnilniškega naslova, registra števila bajtov in enega ali več kontrolnih registrov. Odvisno od funkcij, ki jih zagotavlja krmilnik neposrednega dostopa do pomnilnika, lahko ti nadzorni registri določijo neko kombinacijo vira, cilja, smeri prenosa (branje iz vhodno-izhodne naprave ali pisanje nanjo), velikosti prenosne enote in / ali števila bajtov za prenos v enem zaporedju.
Za izvajanje operacij vnosa, izhoda ali pomnilnika v pomnilnik gostiteljski procesor inicializira krmilnik DMA s številom besed za prenos in uporabljenim naslovom pomnilnika. Nato CPU ukaže zunanji napravi, da začne prenos podatkov.
Nato krmilnik neposrednega dostopa do pomnilnika v sistemski pomnilnik ponudi naslove in nadzorne črte za branje / pisanje. Vsakič, ko je bajt podatkov pripravljen za prenos med zunanjo napravo in pomnilnikom, krmilnik DMA poveča svoj notranji naslovni register, dokler se ne prenese celoten podatkovni blok.
Načini delovanja
Neposredni dostop do pomnilnika deluje različno v različnih načinih delovanja.
Rafalni način
V zaporednem načinu se celoten podatkovni blok prenaša v neprekinjenem zaporedju. Ko CPU krmilniku DMA omogoči dostop do sistemskega vodila, bo krmilnik DMA prenesel vse bajte podatkov v podatkovnem bloku, preden sprosti nadzor nad sistemskimi vodili nazaj na CPU, vendar bo CPU nedejaven za precej dolgo. Ta način se imenuje tudi »Block Transfer Mode«.
Način kraje cikla
Način kraje cikla se uporablja v sistemu, kjer CPU ni mogoče onemogočiti toliko časa, kot je potrebno za način rafalnega prenosa. V načinu kraje cikla dobi krmilnik DMA dostop do sistemskega vodila z uporabo signalov BR (Bus Request) in BG (Bus Grant), ki sta enaka načinu zaporednih posnetkov. Ta dva signala nadzorujeta vmesnik med CPU in DMA krmilnikom.
Po eni strani v načinu kraje cikla hitrost prenosa podatkovnega bloka ni tako hitra kot v načinu zaporedja, po drugi strani pa čas mirovanja CPU ni tako dolg kot v načinu zaporedja.
Pregleden način
Prozorni način traja najdlje časa za prenos podatkovnih blokov, vendar je tudi najučinkovitejši način glede na splošno zmogljivost sistema. V preglednem načinu krmilnik neposrednega dostopa do pomnilnika prenaša podatke samo, če CPU izvaja operacije, ki ne uporabljajo sistemskih vodilov.
Glavna prednost preglednega načina je, da CPU nikoli ne preneha izvajati svojih programov, prenosi neposrednega dostopa do pomnilnika pa so časovno brezplačni, pomanjkljivost pa je, da mora strojna oprema določiti, kdaj CPU ne uporablja sistemskih vodilov, kar lahko biti zapleteno. Temu pravimo tudi 'način skritega prenosa podatkov DMA'.