Hva er direkte minnetilgang?
Direkte minnetilgang, noen ganger kalt DMA, er en metode for å overføre data fra tilfeldig tilgangsminne til en annen del av en datamaskin uten å okkupere den sentrale behandlingsenheten. Denne muligheten er innebygd i de fleste moderne datasystemer. Det gjør at datamaskinen kan utføre flere oppgaver samtidig, og til slutt gjøre datamaskinen raskere.
Akkurat som eieren av en liten bedrift behandler alle rapporter og informasjon som går inn eller ut av kontoret sitt, må den sentrale behandlingsenheten til en datamaskin behandle all inngang eller utdata fra datamaskinen. Før direkte hukommelsestilgang, laste ned eller laste opp data tok all den sentrale prosessorens oppmerksomhet. Det kunne bare gjøre en oppgave om gangen.
En datamaskin med direkte minnetilgang aktivert er som en liten bedriftseier med et par assistenter. I stedet for å håndtere all informasjonen direkte, er den sentrale prosesseringsenheten i stand til å delegere oppgaven til den direkte minnetilgangskontrolleren. Dette er en enhet innebygd i hovedkortet som fører tilsyn med direkte minnetilgangsoperasjoner. Den sentrale behandlingsenheten står da fritt til å utføre andre oppgaver mens opplastingen eller nedlastingen finner sted. Når den delegerte oppgaven er fullført, forteller DMA-kontrolleren den sentrale behandlingsenheten.
Hver port på en datamaskin har minst én direkte minnetilgangskanal som kan tilordnes enheter koblet gjennom porten. For å fungere ordentlig, må hver enhet tilordnes en annen kanal. De fleste kort som kan installeres på en datamaskin, for eksempel lyd, nettverk eller skjermkort, kan bruke direkte minnetilgang for å utføre oppgavene sine.
Multikjerneprosessorer kan også bruke direkte minnetilgang. De har vanligvis en type midlertidig minne som kalles lokalt eller skrapepad-minne. Når handlingen de jobber med er fullført, kan de overføre dataene fra lokalt minne til hovedminnet ved å bruke en direkte tilgangsminnekanal.
Ulempen med, avhengig av DMA, er at det kan forårsake det som kalles tap av cache-sammenheng. I utgangspunktet betyr dette at data beveger seg hele tiden og kan lagres på flere midlertidige steder. Problemet med dette er at når datamaskinen blir bedt om å få tilgang til informasjon, har den kanskje ikke tilgang til den nyeste informasjonen. Dataprodusenter kan håndtere dette ved hjelp av spesiell maskinvare eller ved å programmere operativsystemet for å beskytte mot tap av cache-sammenheng.