Priamy prístup do pamäte (DMA) v architektúre počítačov

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Na vykonávanie počítačového programu vyžaduje synchrónne fungovanie viac ako jednej súčasti počítača. Napríklad, Procesory - poskytovanie potrebných riadiacich informácií, adries ... atď., Zberníc - na prenos informácií a údajov do a z pamäte na I / O zariadenia ... atď. Zaujímavým faktorom systému by bol spôsob, akým spracováva prenos informácií medzi procesorom, pamäťou a I / O zariadeniami. Procesory zvyčajne riadia celý proces prenosu údajov, a to hneď od zahájenia prenosu do úložiska dát v mieste určenia. To zvyšuje zaťaženie procesora a väčšinou zostáva v ideálnom stave, čím sa znižuje účinnosť systému. Na urýchlenie prenosu dát medzi I / O zariadeniami a pamäťou funguje DMA radič ako stanica master. Radič DMA prenáša údaje s minimálnym zásahom procesora.

Čo je to radič DMA?

Pojem DMA znamená priamy prístup do pamäte. Hardvérové ​​zariadenie používané na priamy prístup do pamäte sa nazýva radič DMA. DMA radič je riadiaca jednotka , súčasť I / O zariadení obvod rozhrania , ktorý dokáže prenášať bloky dát medzi I / O zariadeniami a hlavnou pamäťou s minimálnym zásahom procesora.




Schéma radiča DMA v počítačovej architektúre

Radič DMA poskytuje rozhranie medzi zbernicou a vstupno-výstupnými zariadeniami. Aj keď prenáša údaje bez zásahu procesora, je ovládaný procesorom. Procesor inicializuje DMA radič zaslaním počiatočnej adresy, počtu slov v dátovom bloku a smeru prenosu dát, t.j. z I / O zariadení do pamäte alebo z hlavnej pamäte na I / O zariadenia. K radiču DMA je možné pripojiť viac ako jedno externé zariadenie.

DMA v počítačovej architektúre

DMA v počítačovej architektúre



DMA radič obsahuje adresnú jednotku na generovanie adries a výber I / O zariadenia na prenos. Obsahuje tiež riadiacu jednotku a počet dát na udržanie počtu prenesených blokov a indikáciu smeru prenosu dát. Po dokončení prenosu DMA informuje procesor zvýšením prerušenia. Typická bloková schéma radiča DMA je znázornená na obrázku nižšie.

Typická bloková schéma radiča DMA

Typická bloková schéma radiča DMA

Práca radiča DMA

Radič DMA musí na uskutočnenie prenosu údajov zdieľať zbernicu s procesorom. Zariadenie, ktoré drží zbernicu v danom čase, sa nazýva zbernica master. Keď sa musí vykonať prenos z I / O zariadenia do pamäte alebo naopak, procesor zastaví vykonávanie aktuálneho programu, v prírastkoch Program počítadlo, presunie dáta po zásobníku a potom pošle DMA výberový signál do DMA radiča cez adresnú zbernicu.

Ak je radič DMA voľný, požiada o riadenie zbernice od procesora zvýšením signálu žiadosti o zbernicu. Procesor poskytuje zbernicu radiču zvýšením signálu pridelenia zbernice, teraz je radič DMA radičom zbernice. Procesor inicializuje DMA radič zaslaním adries pamäte, počtu blokov dát, ktoré sa majú preniesť, a smeru dátového prenosu. Po priradení úlohy prenosu údajov radiču DMA namiesto ideálneho čakania na dokončenie prenosu údajov procesor obnoví vykonávanie programu po načítaní pokynov zo zásobníka.


Prenos údajov pomocou DMA v počítači pomocou DMA

Prenos údajov v počítači radičom DMA

DMA radič má teraz plnú kontrolu nad zbernicami a môže komunikovať priamo s pamäťou a I / O zariadeniami nezávisle od CPU. Vykonáva prenos údajov podľa riadiacich pokynov prijatých procesorom. Po dokončení prenosu dát deaktivuje signál žiadosti o zbernicu a CPU deaktivuje signál pridelenia zbernice, čím presunie riadenie zberníc na CPU.

Ak chce I / O zariadenie iniciovať prenos, odošle signál žiadosti DMA do radiča DMA, ktorý radič potvrdí, ak je voľný. Potom radič požiada procesor o zbernicu a zvýši signál žiadosti o zbernicu. Po prijatí signálu zbernice prenesie údaje zo zariadenia. Pre n smerovaný radič DMA je možné pripojiť n počet externých zariadení.

DMA prenáša údaje v troch režimoch, ktoré zahŕňajú nasledujúce.

do) Režim série : V tomto režime DMA odovzdáva zbernice do CPU až po dokončení celého dátového prenosu. Medzitým, ak procesor vyžaduje zbernicu, musí zostať ideálny a čakať na prenos údajov.

b) Cyklus kradnutia : V tomto režime dáva DMA kontrolu nad zbernicami do CPU po prenose každého bytu. Priebežne vydáva požiadavku na riadenie zbernice, vykoná prenos jedného bajtu a vráti zbernicu. Vďaka tomu procesor nemusí dlho čakať, ak potrebuje zbernicu na úlohy s vyššou prioritou.

c) Transparentný režim: Tu DMA prenáša údaje iba vtedy, keď procesor vykonáva inštrukciu, ktorá nevyžaduje použitie zberníc.

8237 DMA radič

  • 8237 má 4 I / O kanály spolu s flexibilitou zvyšovania počtu kanálov.
  • Každý kanál je možné programovať individuálne a má kapacitu 64 000 adries a dát.
  • Riadiaci blok časovania, riadiaci blok programových príkazov, blok prioritného enkodéra sú tri hlavné bloky 8237A.
  • Interné časovacie a externé riadiace signály sú riadené riadiacim blokom časovania.
  • Rôzne príkazy dané mikroprocesorom DMA sú dekódované riadiacim blokom programových príkazov.
  • Ktorý kanál musí mať najvyššiu prioritu, rozhoduje priorita blok kódovača .
    8237A má 27 interných registrov.

8237A pracuje v dvoch cykloch - ideálny cyklus a aktívny cyklus, kde každý cyklus obsahuje 7 samostatných stavov zložených z jednej hodinovej periódy.

S0- Prvý stav, keď radič požiadal o zbernicu a čaká na potvrdenie od procesora.

S1, S2, S3, S4 sa nazývajú pracovné stavy 8237A, kde dochádza k skutočnému prenosu údajov. Ak je na prenos potrebných viac času, stavy čakania sa pridajú SW.

Pre prenos z pamäte do pamäte je potrebné vykonať prenosy čítania z pamäte a zápisu do pamäte. Na jeden prenos je potrebných osem štátov. Prvé štyri stavy s indexmi S11, S12, S13, S14 uskutočňujú prenos z pamäte na čítanie a ďalšie štyri S21, S22, S23, S24 slúžia na prenos z pamäte do pamäte.

DMA ide do ideálneho stavu, keď žiadny kanál nežiada o službu a nevykonáva stav SI. SI je neaktívny stav, keď je DMA neaktívny, kým nedostane požiadavku. V tomto stave je DMA v programovom stave, v ktorom procesor môže programovať DMA.

Keď je DMA v ideálnom stave a nedostane žiadne ďalšie požiadavky na kanál, odošle signál HRQ do procesora a vstúpi do aktívneho stavu, v ktorom môže zahájiť prenos dát buď v dávkovom režime, v režime krádeže cyklu alebo v transparentnom režime.

8237 PinDiagram

8237 pinový diagram

Ovládač DMA 8257

Po spárovaní s jedným vstupno-výstupným zariadením Intel 8212 I / O port tvorí radič 8257 DMA kompletný 4 kanál Radič DMA . Po prijatí žiadosti o prenos riadiaca jednotka 8257

  • Získava kontrolu nad systémovou zbernicou od procesora.
  • Periféria pripojená k kanálu s najvyššou prioritou je potvrdená.
  • Najmenej významné bity adresy pamäte sa presunú cez riadky adresy A0-A7 systémovej zbernice.
  • Najvýznamnejšie 8 bit adresy pamäte sú vedené na 8212 I / O port dátovými linkami.
  • Generuje príslušné riadiace signály na prenos údajov medzi perifériami a adresovanými pamäťovými miestami.
  • Keď sa prenesie zadaný počet bajtov, radič informuje procesor o konci prenosu aktiváciou výstupu počtu terminálov (TC).

Pre každý kanál obsahuje 8257 dva 16-bitové registre - 1) Register adries DMA a 2) Register počtu terminálov, ktorý by sa mal inicializovať pred povolením kanálu. Adresa prvého pamäťového miesta, do ktorého sa má pristupovať, sa zavedie do registra adries DMA. 14 bitov dolnej objednávky hodnoty načítanej do registra počtu terminálov označuje počet cyklov DMA mínus jeden pred aktiváciou výstupu počtu terminálov. Typ operácie pre kanál je označený najvýznamnejšími dvoma bitmi registra počtu terminálov.

8257 pinový diagram

8257 pinový diagram

Výhody a nevýhody radiča DMA

Medzi výhody a nevýhody radiča DMA patria nasledujúce.

Výhody

  • DMA urýchľuje operácie pamäte tým, že obchádza zapojenie CPU.
  • Pracovné preťaženie CPU klesá.
  • Pre každý prevod je potrebných iba niekoľko počtov hodinových cyklov

Nevýhody

  • Problém s koherenciou medzipamäte je možné pozorovať, keď sa na prenos dát používa DMA.
  • Zvyšuje cenu systému.

DMA ( Priamy prístup do pamäte ) radič sa používa v grafických kartách, sieťových kartách, zvukových kartách atď ... DMA sa používa aj na prenos v rámci čipu vo viacjadrových procesoroch. Pri prevádzke v jednom zo svojich troch režimov môže DMA výrazne znížiť zaťaženie procesora. V ktorom z režimov DMA ste pracovali? Ktorý z režimov, ktorý považujete za efektívnejší?