Direkte minnetilgang

Hvorfor oss?

Lær hva direkte minnetilgang (DMA) er, og her forklarer vi hvordan DMA fungerer, dens historiske utvikling og forskjellige overføringsmodi, samt hvordan det forbedrer datamaskinens ytelse.

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
Technology expert
Margaret Rouse
Teknologiekspert

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,…