Közvetlen memória-hozzáférés (DMA) a számítógépes architektúrában

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





A számítógépes program futtatásához a számítógép egynél több alkotóelemének szinkron működésére van szükség. Például, Processzorok - szükséges vezérlési információk, címek stb., Buszok biztosítása - információk és adatok átviteléhez a memóriából az I / O eszközökbe és a memóriából… stb. A rendszer érdekes tényezője az lenne, ahogyan az információátvitelt kezeli a processzor, a memória és az I / O eszközök között. Általában a processzorok az adatátvitel folyamatát ellenőrzik, az átviteltől kezdve az adatok rendeltetési helyén történő tárolásáig. Ez megnöveli a processzor terhelését, és legtöbbször ideális állapotban marad, ezáltal csökken a rendszer hatékonysága. Az I / O eszközök és a memória közötti adatátvitel felgyorsítása érdekében a DMA vezérlő állomásmesterként működik. A DMA vezérlő adatokat továbbít a processzor minimális beavatkozása mellett.

Mi az a DMA vezérlő?

A DMA kifejezés a memória közvetlen elérését jelenti. A közvetlen memória eléréshez használt hardvereszközt DMA vezérlőnek hívják. DMA vezérlő egy vezérlő egység , az I / O eszköz része interfész áramkör , amely az adatblokkokat továbbíthatja az I / O eszközök és a fő memória között, a processzor minimális beavatkozásával.




DMA vezérlő diagram a számítógépes architektúrában

A DMA vezérlő interfészt biztosít a busz és a bemeneti-kimeneti eszközök között. Bár az adatokat a processzor beavatkozása nélkül továbbítja, a processzor ellenőrzi. A processzor úgy kezdeményezi a DMA vezérlőt, hogy elküldi a kezdő címet, az adatblokkban szereplő szavak számát és az adatátvitel irányát. az I / O eszközöktől a memóriáig vagy a fő memóriától az I / O eszközökig. Több külső eszköz is csatlakoztatható a DMA vezérlőhöz.

DMA a számítógép-építészetben

DMA a számítógép-építészetben



A DMA vezérlő tartalmaz egy címegységet a címek előállításához és az I / O eszköz kiválasztásához az átvitelhez. Tartalmazza továbbá a vezérlőegységet és az adatszámlálást az átvitt blokkok számának megtartásához és az adatátvitel irányának megjelöléséhez. Az átvitel befejezése után a DMA megszakítás felmondásával tájékoztatja a processzort. A DMA vezérlő tipikus blokkvázlatát az alábbi ábra mutatja.

A DMA vezérlő tipikus blokkvázlata

A DMA vezérlő tipikus blokkvázlata

A DMA Controller működése

Az adatátvitelhez a DMA vezérlőnek meg kell osztania a buszt a processzorral. A buszt adott időben tartó eszközt buszmesternek hívják. Amikor az I / O eszközről a memóriába vagy fordítva kell átvinni, a processzor leállítja az aktuális program végrehajtását, növekszik A program számláló, az adatokat áthelyezi a verem fölé, majd egy DMA választó jelet küld a DMA vezérlőnek a címsínen keresztül.

Ha a DMA vezérlő szabad, akkor a buszkérés jelének emelésével kéri a busz vezérlését a processzortól. A processzor megadja a buszt a vezérlőnek a busz engedélyezési jel felemelésével, most a DMA vezérlő a busz mester. A processzor úgy kezdeményezi a DMA vezérlőt, hogy elküldi a memória címeket, az átvitelre kerülő adatblokkok számát és az adatátvitel irányát. Az adatátviteli feladat hozzárendelése után a DMA vezérlőhöz, ahelyett, hogy ideális esetben az adatátvitel befejezéséig várna, a processzor folytatja a program végrehajtását, miután lekérte az utasításokat a veremből.


Adatátvitel a DMA által számítógéppel a DMA által

Adatátvitel a számítógépen a DMA vezérlő által

A DMA vezérlő most már rendelkezik a buszok teljes irányításával, és közvetlenül képes együttműködni a memóriával és az I / O eszközökkel, függetlenül a CPU-tól. Az adatátvitelt a processzor által kapott vezérlési utasításoknak megfelelően hajtja végre. Az adatátvitel befejezése után letiltja a busz kérési jelet és a CPU letiltja a busz engedélyezési jelet, ezzel áthelyezve a buszok vezérlését a CPU-ba.

Amikor egy I / O eszköz meg akarja kezdeni az átvitelt, akkor DMA kérési jelet küld a DMA vezérlőnek, amelyet a vezérlő nyugtáz, ha szabad. Ezután a vezérlő a processzort kéri a buszhoz, emelve a busz kérési jelet. Miután megkapta a busz engedélyezési jelét, továbbítja az adatokat az eszközről. N csatornás DMA vezérlőhöz n külső eszköz csatlakoztatható.

A DMA három módban továbbítja az adatokat, amelyek a következőket tartalmazzák.

nak nek) Folyamatos üzemmód : Ebben a módban a DMA csak a teljes adatátvitel befejezése után adja át a buszokat a CPU-nak. Eközben, ha a CPU-nak buszra van szüksége, akkor ideálisnak kell maradnia, és várnia kell az adatátvitelre.

b) Ciklus lopási mód : Ebben a módban a DMA minden bájt átvitele után vezérli a buszokat a CPU-nak. Folyamatosan megküldi a buszvezérlés iránti kérelmet, elvégzi az egy bájt átvitelét és visszaadja a buszt. Ezzel a CPU-val nem kell sokáig várni, ha magasabb prioritású feladathoz buszra van szüksége.

c) Átlátszó mód: Itt a DMA csak akkor továbbít adatokat, amikor a CPU végrehajtja az utasítást, amely nem igényli a buszok használatát.

8237 DMA vezérlő

  • A 8237 4 I / O csatornával rendelkezik, valamint a csatornák számának növelésének rugalmassága.
  • Minden csatorna külön programozható, 64k címmel és adatkapacitással rendelkezik.
  • Az időzítés vezérlő blokk, a program parancs vezérlő blokk, a Prioritás kódoló blokk a 8237A három fő blokkja.
  • A belső időzítést és a külső vezérlő jeleket az időzítés vezérlő blokk vezérli.
  • A mikroprocesszor által a DMA-nak adott különféle parancsokat a program parancsvezérlő blokkja dekódolja.
  • Hogy melyik csatornának kell a legmagasabb prioritást adni, azt a prioritás határozza meg kódoló blokk .
    A 8237A 27 belső nyilvántartással rendelkezik.

A 8237A két ciklusban működik - ideális ciklus és aktív ciklus, ahol minden ciklus 7 különálló állapotot tartalmaz, amelyek mindegyike egy-egy óra periódusból áll.

S0- Az első állapot, amikor a vezérlő kérte a buszt, és várta a nyugtázást a processzortól.

S1, S2, S3, S4 a 8237A működési állapota, ahol a tényleges adatátvitel történik. Ha több időre van szükség az átviteli várakozási állapotokhoz, SW hozzáadódik ezekhez az állapotokhoz.

A memóriából memóriába történő átvitelhez olvasás memóriából és írás memóriába átvitelt kell végrehajtani. Nyolc állapot szükséges egy egyszeri átvitelhez. Az első négy állapot S11, S12, S13, S14 előfizetéssel végzi az olvasás memóriából átvitelét, a következő négy S21, S22, S23, S24 pedig írás-memória átvitelre szolgál.

A DMA ideális állapotba kerül, amikor egyetlen csatorna sem kér szolgáltatást, és végrehajtja az SI állapotot. Az SI egy inaktív állapot, ahol a DMA inaktív, amíg meg nem kap egy kérést. Ebben az állapotban a DMA olyan programállapotban van, ahol a processzor programozhatja a DMA-t.

Amikor a DMA ideális állapotban van, és további csatornakéréseket nem kap, HRQ jelet ad ki a processzornak, és aktív állapotba lép, ahol akár sorozatfelvételi, ciklus-lopási vagy átlátszó módban is meg tudja kezdeni az adatátvitelt.

8237 PinDiagram

8237 tűs diagram

8257 DMA vezérlő

Egyetlen Intel 8212 I / O port eszközzel párosítva a 8257 DMA vezérlő egy komplett 4 csatornát alkot DMA vezérlő . Az átviteli kérelem kézhezvételekor a 8257

  • A processzortól megszerzi a rendszerbusz vezérlését.
  • A legmagasabb prioritású csatornához csatlakoztatott periféria nyugtázásra kerül.
  • A memóriacím legkevésbé fontos bitjei a rendszerbusz A0-A7 címsorai fölé kerülnek.
  • A legjelentősebb 8 bit a memóriacím adatait a 8212 I / O portra vezetik át adatvonalakon keresztül.
  • Generálja a megfelelő vezérlőjeleket az adatok továbbításához a perifériák és a címzett memóriahelyek között.
  • Amikor a megadott számú bájt átkerül, a vezérlő a terminálszám (TC) kimenet aktiválásával tájékoztatja a CPU-t az átvitel végéről.

Minden csatornánál a 8257 kettőt tartalmaz 16 bites regiszterek - 1) DMA címregiszter és 2) Terminálszám regiszter, amelyet inicializálni kell, mielőtt egy csatorna engedélyezve lenne. Az első elérendő memóriahely címe betöltésre kerül a DMA címregiszterbe. A terminálszámláló regiszterbe beillesztett érték alacsonyabb rendű 14 bitje a DMA ciklusok számát mínusz egy jelzi a terminálszám kimenet aktiválása előtt. Egy csatorna működésének típusát a terminálszámláló regiszter legjelentősebb két bitje jelzi.

8257 tűs diagram

8257 tűs diagram

A DMA Controller előnyei és hátrányai

A DMA vezérlő előnyei és hátrányai a következők.

Előnyök

  • A DMA felgyorsítja a memória műveleteket a CPU részvételének megkerülésével.
  • A CPU túlterhelése csökken.
  • Minden átvitelhez csak néhány óraóra szükséges

Hátrányok

  • A gyorsítótár-koherencia problémája akkor tapasztalható, amikor a DMA-t használják adatátvitelre.
  • Növeli a rendszer árát.

DMA ( Közvetlen memória-hozzáférés ) vezérlőt használnak grafikus kártyákhoz, hálózati kártyákhoz, hangkártyákhoz stb. ... A DMA-t chipen belüli átvitelre is használják többmagos processzorokban. Három módjának egyikében működve a DMA jelentősen csökkentheti a processzor terhelését. A DMA melyik módjában dolgozott együtt? Az Ön szerint melyik mód a hatékonyabb?