Direkte minnetilgang

Hva betyr direkte minnetilgang (DMA)

Direkte minnetilgang (DMA) er en metode som lar en inngangs-/utgangsenhet (I/O-enhet) sende eller motta data direkte til eller fra hovedminnet, og omgår CPU-en for å akselerere minneoperasjoner.

Prosessen styres av en brikke kjent som en DMA-kontroller (DMAC).

Techopedia forklarer direkte minnetilgang

Et definert minneområde brukes til å sende data direkte fra en periferienhet til hovedkortet uten å involvere mikroprosessoren, slik at prosessen ikke forstyrrer den generelle datamaskinoperasjonen.

I eldre datamaskiner var fire DMA-kanaler nummerert 0, 1, 2 og 3. Da den 16-bits industristandardarkitekturen (ISA) ekspansjonsbussen ble introdusert, ble kanalene 5, 6 og 7 lagt til.

ISA var en datamaskinbuss-standard for IBM-kompatible datamaskiner, som tillot en enhet å initiere transaksjoner (bussmestring) i en raskere hastighet. ISA DMA-kontrolleren har 8 DMA-kanaler, hver av dem assosiert med et 16-bits adresse- og telle-register.

ISA er siden blitt erstattet av akselerert grafikkport (AGP) og periferikomponentkoblingskort (PCI) ekspansjonskort, som er mye raskere. Hver DMA-overføring overfører omtrent 2 MB data per sekund.

En datamaskins systemressursverktøy brukes til kommunikasjon mellom maskinvare og programvare. De fire typene systemressurser er:

  • I/O-adresser.
  • Minneadresser.
  • Avbruddsforespørselsnumre (IRQ).
  • Direkte minnetilgang (DMA) kanaler.

DMA-kanaler brukes til å kommunisere data mellom periferienheten og systemminnet. Alle fire systemressursene er avhengige av visse linjer på en buss. Noen linjer på bussen brukes til IRQ-er, noen for adresser (I/O-adressene og minneadressen) og noen for DMA-kanaler.

En DMA-kanal muliggjør en enhet å overføre data uten å utsette CPU-en for en arbeidsoverbelastning. Uten DMA-kanalene, kopierer CPU-en hvert datastykke ved å bruke en periferibuss fra I/O-enheten. Bruken av en periferibuss okkuperer CPU-en under lese-/skriveprosessen og tillater ikke annet arbeid å bli utført før operasjonen er fullført.

Med DMA kan CPU-en prosessere andre oppgaver mens dataoverføringen utføres. Overføringen av data initieres først av CPU-en. Datablokken kan overføres til og fra minnet av DMAC på tre måter.

I burst-modus, frigis systembussen kun etter at dataoverføringen er fullført. I syklus-stjele-modus, under over

føringen av data mellom DMA-kanalen og I/O-enheten, overgis systembussen for noen klokkesykluser slik at CPU-en kan utføre andre oppgaver. Når dataoverføringen er fullført, mottar CPU-en en avbruddsforespørsel fra DMA-kontrolleren. I transparent modus, kan DMAC ta kontroll over systembussen kun når den ikke er nødvendig for prosessoren.

Imidlertid kan bruk av en DMA-kontroller føre til problemer med cache-konsistens. Dataene som er lagret i RAM og tilgjengelig av DMA-kontrolleren, kan ikke bli oppdatert med riktig cache-data hvis CPU-en bruker eksternt minne.

Løsninger inkluderer tømming av cache-linjer før man starter utgående DMA-overføringer, eller utføring av en cache-invalidasjon på innkommende DMA-overføringer når eksterne skrivinger signaliseres til cache-kontrolleren.

Relaterte begreper

Margaret Rouse

Margaret Rouse er en prisbelønt teknisk skribent og lærer som er kjent for sin evne til å forklare kompliserte tekniske emner for et ikke-teknisk, forretningsmessig publikum. I løpet av de siste tjue årene har forklaringene hennes blitt publisert på TechTarget-nettsteder, og hun har blitt sitert som en autoritet i artikler i New York Times, Time Magazine, USA Today, ZDNet, PC Magazine og Discovery Magazine. Margarets idé om en morsom dag er å hjelpe IT- og forretningsfolk med å lære å snakke hverandres høyt spesialiserte språk. Hvis du har forslag til en ny definisjon eller ønsker å forbedre en teknisk forklaring,…