Otsene mälupääs (DMA) arvutiarhitektuuris

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Arvutiprogrammi käivitamiseks on vaja rohkem kui ühe arvuti komponendi sünkroonset tööd. Näiteks, Töötlejad - vajaliku juhtimisteabe, aadresside jms edastamine, siinid - teabe ja andmete edastamiseks mälust ja mälust sisend- / väljundseadmetesse jne. Süsteemi huvitavaks teguriks oleks viis, kuidas ta käitleb teabe edastamist protsessori, mälu ja sisend- / väljundseadmete vahel. Tavaliselt kontrollivad protsessorid kogu andmete edastamise protsessi, alates edastamise algatamisest kuni sihtkohta andmete salvestamiseni. See lisab protsessorile koormust ja enamasti püsib see ideaalses olekus, vähendades seeläbi süsteemi efektiivsust. Andmete edastamise kiirendamiseks sisend- ja väljundseadmete ja mälu vahel toimib DMA-kontroller jaamaülemina. DMA kontroller edastab andmeid protsessori minimaalse sekkumisega.

Mis on DMA kontroller?

Mõiste DMA tähistab otsest juurdepääsu mälule. Otsesele mälule juurdepääsuks kasutatavat riistvaraseadet nimetatakse DMA-kontrolleriks. DMA kontroller on juhtplokk , osa sisend- / väljundseadmetest liideseahel , mis suudab protsessori minimaalse sekkumisega edastada andmeplokke sisend- ja väljundseadmete ja põhimälu vahel.




DMA kontrolleri skeem arvutiarhitektuuris

DMA-kontroller pakub liidese siini ja sisend-väljundseadmete vahel. Kuigi see edastab andmeid ilma protsessori sekkumiseta, kontrollib neid protsessor. Protsessor algatab DMA-kontrolleri, saates algusaadressi, sõnade arvu andmeplokis ja andmete edastamise suuna. I / O-seadmetest mällu või põhimälust I / O-seadmeteni. DMA-kontrolleriga saab ühendada rohkem kui ühe välisseadme.

DMA arvutiarhitektuuris

DMA arvutiarhitektuuris



DMA-kontroller sisaldab aadressiüksust aadresside genereerimiseks ja sisend- / väljundseadme valimiseks edastamiseks. See sisaldab ka juhtplokki ja andmekogumit ülekantavate plokkide arvu arvestamiseks ja andmete edastamise suuna näitamiseks. Kui ülekanne on lõpule jõudnud, teavitab DMA töötlejat katkestuse tõstmisega. DMA kontrolleri tüüpiline plokkskeem on näidatud alloleval joonisel.

DMA kontrolleri tüüpiline plokkskeem

DMA kontrolleri tüüpiline plokkskeem

DMA kontrolleri töö

DMA-kontroller peab andmeedastuse tegemiseks siinit protsessoriga jagama. Seadet, mis hoiab siini teatud ajahetkel, nimetatakse siinihalduriks. Kui sisend- / väljundseadmest tuleb üle minna mällu või vastupidi, peatab protsessor praeguse programmi käivitamise, suurendades programm loendur, teisaldab andmed üle korstna ja saadab seejärel DMA-kontrollerile aadressbussi kaudu DMA-valiku signaali.

Kui DMA kontroller on vaba, nõuab see protsessorilt siini juhtimist, tõstes siini päringu signaali. Protsessor annab siinile kontrollerile siini andmesignaali tõstmisega, nüüd on DMA kontroller siinimeister. Protsessor käivitab DMA kontrolleri, saates mälu aadressid, edastatavate andmeplokkide arvu ja andmeedastuse suuna. Pärast andmeedastusülesande määramist DMA-kontrollerile jätkab protsessor selle asemel, et andmeedastuse lõpuleviimiseni oodata, pärast käskude korstnast virnastamist programmi täitmist.


Andmete edastamine DMA poolt arvutis DMA poolt

Andmeedastus arvutis DMA kontrolleri poolt

DMA-kontrolleril on nüüd siinide täielik kontroll ja see saab otse protsessorist sõltumatult suhelda mälu ja sisend- / väljundseadmetega. See teostab andmeedastust vastavalt protsessori poolt saadud juhtimisjuhistele. Pärast andmeedastuse lõpetamist keelab see siini päringusignaali ja CPU blokeerib siinisignaali signaali, viies seeläbi busside juhtimise protsessorile.

Kui sisend- / väljundseade soovib ülekannet algatada, saadab ta DMA-kontrollerile DMA päringusignaali, mille jaoks kontroller kinnitab, kui see on vaba. Seejärel palub kontroller siinilt protsessorit, tõstes siini päringusignaali. Pärast siinisignaali vastuvõtmist edastab see seadmest andmed. N kanaliga DMA-kontrolleri jaoks saab ühendada n välisseadmete arvu.

DMA edastab andmeid kolmes režiimis, mis sisaldavad järgmist.

kuni) Sarivõte : Selles režiimis annab DMA siirded protsessorile alles pärast kogu andmeedastuse lõppu. Kui protsessor vajab siini, peab see ideaalsena püsima ja andmeedastust ootama.

b) Tsükli varastamise režiim : Selles režiimis annab DMA pärast iga baidi ülekandmist busside juhtimise protsessorile. See väljastab pidevalt siini juhtimise päringu, teeb ühe baidi ülekande ja tagastab siini. Selle protsessori järgi ei pea kaua ootama, kui see vajab kõrgema prioriteediga ülesande jaoks siini.

c) Läbipaistev režiim: Siin edastab DMA andmeid ainult siis, kui protsessor täidab käske, mis ei nõua siinide kasutamist.

8237 DMA kontroller

  • 8237-l on 4 sisend- / väljundkanalit koos kanalite arvu suurendamise paindlikkusega.
  • Iga kanalit saab programmeerida eraldi ning sellel on 64k aadress ja andmeside.
  • Ajastuse juhtplokk, Programmi käsu juhtplokk, Prioriteedikoodri plokk on 8237A kolm peamist plokki.
  • Sisemist ajastust ja väliseid juhtimissignaale juhib ajastusjuhtimise plokk.
  • Mikroprotsessori DMA-le antud erinevad käsud dekodeeritakse programmi käskude juhtplokiga.
  • Millisele kanalile tuleb anda kõrgeim prioriteet, otsustab prioriteet kodeerija plokk .
    8237A-l on 27 siseregistrit.

8237A töötab kahes tsüklis - ideaalne tsükkel ja aktiivne tsükkel, kus iga tsükkel sisaldab 7 eraldi olekut, mis koosnevad mõlemast kellaajaperioodist.

S0- esimene olek, kus kontroller on siini taotlenud ja ootab protsessorilt kinnitust.

S1, S2, S3, S4 nimetatakse 8237A tööolekuteks, kus toimub andmete tegelik edastamine. Kui ülekande ooteseisundite jaoks on vaja rohkem aega, lisatakse nende olekute vahel SW.

Mälust mällu ülekandmiseks tuleb teha lugemine mälust ja kirjutamine mällu. Ühekordse ülekande jaoks on vaja kaheksa olekut. Esimesed neli olekut subtiitritega S11, S12, S13, S14 teevad mälust lugemise ülekande ja järgmised neli S21, S22, S23, S24 on kirjutatud mälust ülekandmist.

DMA läheb ideaalsesse olekusse, kui ükski kanal ei taotle teenust ja täidab SI-olekut. SI on passiivne olek, kus DMA pole aktiivne, kuni ta saab päringu. Selles olekus on DMA programmi seisukorras, kus protsessor saab DMA-d programmeerida.

Kui DMA on ideaalses olekus ja enam kanali taotlusi ei saa, väljastab ta protsessorile HRQ signaali ja siseneb aktiivsesse olekusse, kus saab alustada andmete edastamist kas sarivõtte, tsüklivargusrežiimi või läbipaistva režiimi abil.

8237 PinDiagram

8237 tihvtide skeem

8257 DMA kontroller

Kui see on ühendatud ühe Inteli 8212 sisend- / väljundseadmega, moodustab DMA kontroller 8257 tervikliku 4 kanali DMA kontroller . Ülekandetaotluse saamisel kontroller 8257

  • Omandab protsessorilt juhtimise süsteemibussile.
  • Kõrgeima prioriteediga kanaliga ühendatud välisseade kinnitatakse.
  • Mäluaadressi kõige vähem olulised bitid liigutatakse üle süsteemibassi aadressiridade A0-A7.
  • Kõige märkimisväärsemad 8 bitti mäluaadressist suunatakse andmeliinide kaudu 8212 sisend- / väljundporti.
  • Genereerib sobivad juhtsignaalid andmete edastamiseks välisseadmete ja adresseeritud mälupaikade vahel.
  • Kui määratud arv baite on üle kantud, teavitab kontroller protsessori üleandmise lõppu, aktiveerides terminalide loenduri (TC) väljundi.

Iga kanali 8257 sisaldab kahte 16-bitised registrid - 1) DMA aadresside register ja 2) terminalide loendite register, mis tuleks initsialiseerida enne kanali lubamist. Esimese juurdepääsetava mälu asukoha aadress laaditakse DMA aadressiregistrisse. Klemmide loendusregistrisse laaditud väärtuse madalam järjekord 14 bitti näitab DMA tsüklite arvu miinus üks enne terminalide loendamise väljundi aktiveerimist. Kanali operatsiooni tüüp on tähistatud terminalide loendiregistri kõige olulisema kahe bitiga.

8257 tihvtide skeem

8257 tihvtide skeem

DMA kontrolleri eelised ja puudused

DMA-kontrolleri eelised ja puudused hõlmavad järgmist.

Eelised

  • DMA kiirendab mälutoiminguid, vältides protsessori osalemist.
  • CPU töö ülekoormus väheneb.
  • Iga ülekande jaoks on vaja ainult mõnda arvu taktsükleid

Puudused

  • Vahemälu sidususe probleemi võib näha, kui andmeedastuseks kasutatakse DMA-d.
  • Tõstab süsteemi hinda.

DMA ( Otsene juurdepääs mälule ) kontrollerit kasutatakse graafikakaartides, võrgukaartides, helikaartides jne ... DMA-d kasutatakse ka kiibisiseseks ülekandeks mitme tuumaga protsessorites. Ühes oma kolmest režiimist töötav DMA võib protsessori koormust märkimisväärselt vähendada. Millistes DMA režiimides olete töötanud? Milline režiimist peate tõhusamaks?