Direkte minnetilgang (DMA) i dataarkitektur

Prøv Instrumentet Vårt For Å Eliminere Problemer





For gjennomføring av et dataprogram krever det synkron arbeid av mer enn en komponent av en datamaskin. For eksempel, Prosessorer - å gi nødvendig kontrollinformasjon, adresser ... etc, busser - for å overføre informasjon og data til og fra minne til I / O-enheter ... osv. Den interessante faktoren i systemet vil være måten det håndterer overføring av informasjon mellom prosessor, minne og I / O-enheter. Vanligvis kontrollerer prosessorer hele prosessen med å overføre data, helt fra initiering av overføring til lagring av data på destinasjonen. Dette tilfører belastning på prosessoren, og mesteparten av tiden holder den seg i den ideelle tilstanden, og reduserer dermed effektiviteten til systemet. For å øke hastigheten på overføringen av data mellom I / O-enheter og minne, fungerer DMA-kontrolleren som stasjonsmester. DMA-kontroller overfører data med minimal inngripen fra prosessoren.

Hva er en DMA-kontroller?

Begrepet DMA står for direkte minnetilgang. Maskinvareenheten som brukes for direkte minnetilgang kalles DMA-kontrolleren. DMA kontrolleren er en kontrollenhet , en del av I / O-enheten grensesnittkrets , som kan overføre datablokker mellom I / O-enheter og hovedminne med minimal intervensjon fra prosessoren.




DMA-kontrollerdiagram i dataarkitektur

DMA-kontrolleren gir et grensesnitt mellom bussen og inngangsutgangsenhetene. Selv om den overfører data uten inngripen fra prosessoren, blir den kontrollert av prosessoren. Prosessoren initierer DMA-kontrolleren ved å sende startadressen, antall ord i datablokken og retning for overføring av data, dvs. fra I / O-enheter til minnet eller fra hovedminne til I / O-enheter. Mer enn én ekstern enhet kan kobles til DMA-kontrolleren.

DMA i dataarkitektur

DMA i dataarkitektur



DMA-kontrolleren inneholder en adresseenhet for å generere adresser og velge I / O-enhet for overføring. Den inneholder også kontrollenheten og datatellingen for å holde teller av antall overførte blokker og indikere retningen for overføring av data. Når overføringen er fullført, informerer DMA prosessoren ved å heve et avbrudd. Det typiske blokkdiagrammet til DMA-kontrolleren er vist i figuren nedenfor.

Typisk blokkskjema for DMA-kontroller

Typisk blokkskjema for DMA-kontroller

Arbeid med DMA Controller

DMA-kontrolleren må dele bussen med prosessoren for å overføre data. Enheten som holder bussen til et gitt tidspunkt kalles bussmester. Når en overføring fra I / O-enhet til minnet eller omvendt må gjøres, stopper prosessoren kjøringen av det gjeldende programmet, trinnvis programmet teller, flytter data over stabelen og sender deretter et DMA-utvalgssignal til DMA-kontrolleren over adressebussen.

Hvis DMA-kontrolleren er ledig, ber den om styring av buss fra prosessoren ved å heve bussforespørselssignalet. Prosessor tildeler bussen til kontrolleren ved å heve busstilskuddssignalet, nå er DMA-kontrolleren bussmesteren. Prosessoren initierer DMA-kontrolleren ved å sende minneadressene, antall datablokker som skal overføres og retning for dataoverføring. Etter å ha tilordnet dataoverføringsoppgaven til DMA-kontrolleren, i stedet for å vente ideelt til fullføringen av dataoverføringen, fortsetter prosessoren kjøringen av programmet etter å ha hentet instruksjonene fra bunken.


Overføring av data av DMA i datamaskinen av DMA

Overføring av data i datamaskinen av DMA Controller

DMA-kontrolleren har nå full kontroll over busser og kan samhandle direkte med minne og I / O-enheter uavhengig av CPU. Den overfører data i henhold til kontrollinstruksjonene som mottas av prosessoren. Etter fullføring av dataoverføring deaktiverer den bussforespørselssignalet og CPU deaktiverer busstilskuddssignalet og flytter dermed styringen av busser til CPUen.

Når en I / O-enhet ønsker å starte overføringen, sender den et DMA-forespørselssignal til DMA-kontrolleren, som kontrolleren bekrefter om den er gratis. Deretter ber kontrolleren prosessoren om bussen, og hever bussforespørselssignalet. Etter mottak av busstilskuddssignalet overfører den dataene fra enheten. For n kanalisert DMA-kontroller kan antall eksterne enheter kobles til.

DMA overfører dataene i tre moduser som inkluderer følgende.

til) Burst-modus : I denne modusen overleverer DMA bussene til CPU bare etter fullført full dataoverføring. I mellomtiden, hvis CPU-en krever buss, må den være ideell og vente på dataoverføring.

b) Syklus stjelmodus : I denne modusen gir DMA kontroll over busser til CPU etter overføring av hver byte. Den sender kontinuerlig en forespørsel om busskontroll, overfører en byte og returnerer bussen. Med denne prosessoren trenger ikke å vente lenge hvis den trenger en buss for oppgave med høyere prioritet.

c) Gjennomsiktig modus: Her overfører DMA bare data når CPU utfører instruksjonen som ikke krever bruk av busser.

8237 DMA-kontroller

  • 8237 har 4 I / O-kanaler sammen med fleksibiliteten til å øke antall kanaler.
  • Hver kanal kan programmeres individuelt og har 64k adresse og datafunksjon.
  • Timing-kontrollblokken, Program-kommandokontrollblokken, Priority Encoder Block er de tre hovedblokkene i 8237A.
  • Den interne timing og eksterne kontrollsignaler drives av timing control block.
  • Ulike kommandoer gitt av mikroprosessoren til DMA dekodes av programkommandokontrollblokken.
  • Hvilken kanal som må prioriteres høyest avgjøres av prioriteten kodeblokk .
    8237A har 27 interne registre.

8237A fungerer i to sykluser - Ideell syklus og aktiv syklus, der hver syklus inneholder 7 separate tilstander sammensatt av en klokkeperiode hver.

S0- Den første tilstanden der kontrolleren har bedt om buss og venter på bekreftelse fra prosessoren.

S1, S2, S3, S4 kalles arbeidstilstandene til 8237A der den faktiske overføringen av data finner sted. Hvis det er behov for mer tid for overføringsventetilstander, legges SW til mellom disse tilstandene.

For minne – til- minneoverføring, må du lese-fra-minne- og skrive-til-minne-overføringer. Åtte stater kreves for enkeltoverføring. De første fire tilstandene med abonnement S11, S12, S13, S14 overfører lese-fra-minne og de neste fire S21, S22, S23, S24 er for skriv-til-minne-overføring.

DMA går inn i den ideelle tilstanden når ingen kanaler ber om service og utfører SI-tilstand. SI er en inaktiv tilstand der DMA er inaktiv til den mottar en forespørsel. I denne tilstanden er DMA i programtilstand der prosessoren kan programmere DMA.

Når DMA er i ideell tilstand og ikke får flere kanalforespørsler, sender den ut et HRQ-signal til prosessoren og går inn i aktiv tilstand der den kan starte overføring av data enten ved burst-modus, syklus stjelmodus eller transparent modus.

8237 PinDiagram

8237 Pin Diagram

8257 DMA-kontroller

Når den er paret med en enkelt Intel 8212 I / O-portenhet, danner 8257 DMA-kontrolleren en komplett 4-kanal DMA-kontroller . Ved mottak av en overføringsforespørsel 8257 kontrolleren-

  • Får kontrollen over systembussen fra prosessoren.
  • Den perifere enheten som er koblet til kanalen med høyest prioritet blir bekreftet.
  • De minst signifikante bitene av minneadressen flyttes over adresselinjene A0-A7 til systembussen.
  • Den mest betydningsfulle 8 bit av minneadressen blir kjørt til 8212 I / O-port gjennom datalinjer.
  • Genererer de riktige kontrollsignalene for overføring av data mellom eksterne enheter og adresserte minneplasser.
  • Når det spesifiserte antall byte overføres, informerer kontrolleren CPU-slutten av overføringen ved å aktivere terminalantallutgangen (TC).

For hver kanal inneholder 8257 to 16-biters registre - 1) DMA-adresseregister og 2) Terminaltallregister, som skal initialiseres før en kanal er aktivert. Adressen til det første minneplasseringen som skal åpnes, lastes inn i DMA-adresseregisteret. Den nedre ordenen 14 bits av verdien som er lastet i terminalregistreringsregisteret, indikerer antall DMA-sykluser minus en før aktivering av terminalutgangsutgang. Operasjonstype for en kanal er indikert av de mest betydningsfulle to bitene i Terminal-telleregisteret.

8257 Pin Diagram

8257 Pin Diagram

Fordeler og ulemper med DMA Controller

Fordelene og ulempene med DMA-kontrolleren inkluderer følgende.

Fordeler

  • DMA fremskynder minneoperasjonene ved å omgå involveringen av CPU-en.
  • Arbeidsoverbelastningen på CPU avtar.
  • For hver overføring er det bare noen få antall klokkesykluser som kreves

Ulemper

  • Cache-koherenseproblem kan sees når DMA brukes til dataoverføring.
  • Øker prisen på systemet.

DMA ( Direkte minnetilgang ) kontrolleren brukes i grafikkort, nettverkskort, lydkort osv. DMA brukes også til overføring av chip innen flerkjerneprosessorer. DMA kan operere i en av de tre modusene og redusere prosessorbelastningen betydelig. I hvilke av modusene for DMA har du jobbet med? Hvilken av modusene du anser er mer effektiv?