Kas ir tiešā piekļuve atmiņai (DMA) un kā tā darbojas? [MiniTool Wiki]
What Is Direct Memory Access
Ātrā navigācija:
Jūs varat pieņemt RDMA tehnoloģija, kas tīkla datoriem ļauj apmainīties ar datiem galvenajā atmiņā, neiesaistot kāda datora procesoru, kešatmiņu vai operētājsistēmu. Bet jūs varat arī izmantot DMA funkciju, lai tieši nosūtītu datus no pievienotās ierīces uz atmiņu datora mātesplatē. Šis ieraksts no MiniTool galvenokārt runā par DMA.
Tiešās atmiņas piekļuves definīcija
Pirmkārt, kas ir tiešā piekļuve atmiņai? Tiešo atmiņas piekļuvi var saīsināt kā DMA, kas ir datorsistēmu iezīme. Tas ļauj ievades / izvades (I / O) ierīcēm piekļūt galvenajai sistēmas atmiņai ( brīvpiekļuves atmiņa ), neatkarīgi no centrālā procesora (CPU), kas paātrina atmiņas darbību.
Padoms: Jūs varētu interesēt šis ieraksts - 8 noderīgi risinājumi, kā Windows 10 pilnībā novērst CPU .
Bez tiešas piekļuves atmiņai, ja centrālais procesors izmanto ieprogrammētas ieejas / izejas, tas parasti ir pilnībā aizņemts visas lasīšanas vai rakstīšanas darbības laikā, tāpēc nevar veikt citus uzdevumus. Izmantojot DMA, centrālais procesors vispirms sāk pārsūtīšanu, pēc tam veic citas darbības, kamēr pārsūtīšana notiek, un, beidzoties operācijai, saņem pārtraukumu no DMA kontroliera (DMAC).
Tiešā piekļuve atmiņai ir noderīga ikreiz, kad centrālais procesors nespēj sekot līdzi datu pārraides ātrumam vai kad procesoram ir jāveic darbs, gaidot samērā lēnu I / O datu pārsūtīšanu.
Vairākas aparatūras sistēmas nodrošina tiešu piekļuvi atmiņai, piemēram, diskdziņa kontrolleri, grafikas kartes, tīkla kartes un skaņas kartes. DMA tiek izmantots arī mikroshēmu datu pārsūtīšanai daudzkodolu procesoros. Salīdzinot ar datoriem bez tiešās atmiņas piekļuves kanāliem, datori ar DMA kanāliem var pārsūtīt datus starp ierīcēm ar daudz mazāku CPU pieskaitāmo daļu.
Tiešo piekļuvi atmiņai var izmantot arī “atmiņai atmiņā”, lai kopētu vai pārvietotu datus atmiņā. Tas var pārsūtīt dārgas atmiņas darbības (piemēram, lielas kopijas vai izkliedes savākšanas darbības) no centrālā procesora uz īpašu DMA dzinēju. DMA ir svarīga tīkla mikroshēmā un atmiņas skaitļošanas arhitektūrās.
Kā darbojas tiešā piekļuve atmiņai?
Tad kā darbojas tiešā atmiņas piekļuve? Standarta tiešā piekļuve atmiņai (saukta arī par trešās puses DMA) pieņem DMA kontrolieri. DMA kontrolieris var izveidot atmiņas adreses un palaist atmiņas lasīšanas vai rakstīšanas ciklus. Tas aptver vairākus aparatūras reģistrus, kurus CPU var nolasīt un rakstīt.
Šie reģistri sastāv no atmiņas adrešu reģistra, baitu skaitīšanas reģistra un viena vai vairākiem kontroles reģistriem. Atkarībā no tiešās atmiņas piekļuves kontroliera piedāvātajām funkcijām, šie vadības reģistri var noteikt kādu avota, mērķa, pārsūtīšanas virziena (nolasīt no I / O ierīces vai rakstīt uz I / O ierīci), pārsūtīšanas vienības lieluma un / vai skaita kombināciju. baiti, kas jāpārsūta vienā sērijā.
Lai veiktu ievades, izvades vai atmiņas no atmiņas darbības, resursdatora procesors inicializē DMA kontrolleri ar pārsūtāmo vārdu skaitu un izmantojamo atmiņas adresi. Tad centrālais procesors komandē perifērijas ierīci sākt datu pārsūtīšanu.
Tad kontrolieris Direct Memory Access piedāvā adreses un nolasa / raksta vadības līnijas sistēmas atmiņā. Katru reizi, kad datu baits tiek sagatavots pārsūtīšanai starp perifērijas ierīci un atmiņu, DMA kontrolieris palielina savu iekšējo adrešu reģistru, līdz tiek pārsūtīts pilnīgs datu bloks.
Darbības režīmi
Tiešā atmiņas piekļuve dažādos darbības režīmos darbojas atšķirīgi.
Sērijas režīms
Sērijveida režīmā pilns datu bloks tiek pārraidīts nepārtrauktā secībā. Kad CPU ļauj DMA kontrolierim piekļūt sistēmas kopnei, DMA kontrolieris pārsūtīs visus datu baitus datu blokā, pirms sistēmas kopņu vadība tiks atdota atpakaļ uz CPU, bet tas izraisīs CPU neaktīvu ievērojams ilgs laiks. Šo režīmu sauc arī par “Block Transfer Mode”.
Cikla zagšanas režīms
Cikla zagšanas režīms tiek izmantots sistēmā, kurā CPU nevar atspējot uz sērijas pārsūtīšanas režīmam nepieciešamo laiku. Cikla zagšanas režīmā DMA kontrolieris iegūst piekļuvi sistēmas kopnei, izmantojot BR (kopnes pieprasījums) un BG (kopnes dotācija) signālus, kas ir vienādi ar pārsprāgtības režīmu. Šie divi signāli kontrolē saskarni starp CPU un DMA kontrolieri.
No vienas puses, cikla zādzības režīmā datu bloka pārraides ātrums nav tik ātrs kā pārsprāgt režīmā, bet, no otras puses, CPU dīkstāves laiks nav tik ilgs kā pārsprāgt režīmā.
Caurspīdīgs režīms
Caurspīdīgajam režīmam ir nepieciešams visilgākais laiks datu bloku pārsūtīšanai, taču tas ir arī visefektīvākais režīms sistēmas vispārējās veiktspējas ziņā. Pārredzamā režīmā tiešās atmiņas piekļuves kontrolieris datus pārsūta tikai tad, kad centrālais procesors veic darbības, kas neizmanto sistēmas kopnes.
Caurspīdīgā režīma galvenā priekšrocība ir tā, ka centrālais procesors nekad neapstājas izpildīt savas programmas, un tiešās atmiņas piekļuves pārsūtīšana laika ziņā ir bez maksas, savukārt trūkums ir tāds, ka aparatūrai ir jānosaka, kad CPU neizmanto sistēmas kopnes, kas var būt sarežģītiem. To sauc arī par “slēpto DMA datu pārsūtīšanas režīmu”.