Tiešā atmiņas piekļuve (DMA) datoru arhitektūrā

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Datorprogrammas izpildei ir nepieciešama vairāku datoru sastāvdaļu sinhrona darbība. Piemēram, Procesori - nepieciešamās vadības informācijas, adrešu utt. Nodrošināšana, kopnes - informācijas un datu pārsūtīšanai uz atmiņu un no atmiņas uz I / O ierīcēm utt. Interesants sistēmas faktors būtu veids, kā tā rīkojas ar informācijas pārsūtīšanu starp procesoru, atmiņu un I / O ierīcēm. Parasti procesori kontrolē visu datu pārsūtīšanas procesu, sākot no pārsūtīšanas uzsākšanas līdz datu glabāšanai galamērķī. Tas palielina procesora slodzi un lielāko daļu laika tas paliek ideālā stāvoklī, tādējādi samazinot sistēmas efektivitāti. Lai paātrinātu datu pārsūtīšanu starp I / O ierīcēm un atmiņu, DMA kontrolieris darbojas kā stacijas vadītājs. DMA kontrolieris pārsūta datus ar minimālu procesora iejaukšanos.

Kas ir DMA kontrolieris?

Termins DMA nozīmē tiešu piekļuvi atmiņai. Aparatūras ierīci, ko izmanto tiešai piekļuvei atmiņai, sauc par DMA kontrolieri. DMA kontrolieris ir vadības bloks , I / O ierīces daļa saskarnes ķēde , kas ar minimālu procesora iejaukšanos var pārsūtīt datu blokus starp I / O ierīcēm un galveno atmiņu.




DMA kontroliera diagramma datoru arhitektūrā

DMA kontrolieris nodrošina saskarni starp kopni un ieejas-izejas ierīcēm. Lai gan tas pārsūta datus bez procesora iejaukšanās, to kontrolē procesors. Procesors iniciē DMA kontrolieri, nosūtot sākuma adresi, vārdu bloku datu blokā un datu pārsūtīšanas virzienu. T.i. no I / O ierīcēm līdz atmiņai vai no galvenās atmiņas uz I / O ierīcēm. DMA kontrolierim var pievienot vairākas ārējās ierīces.

DMA datoru arhitektūrā

DMA datoru arhitektūrā



DMA kontrolieris satur adrešu vienību, lai ģenerētu adreses un izvēlētos I / O ierīci pārsūtīšanai. Tas satur arī vadības bloku un datu skaitu pārskaitīto bloku skaita uzskaitei un datu pārsūtīšanas virziena norādīšanai. Kad pārsūtīšana ir pabeigta, DMA informē pārstrādātāju, izvirzot pārtraukumu. DMA kontroliera tipiskā blokshēma ir parādīta zemāk redzamajā attēlā.

Tipiska DMA kontroliera blokshēma

Tipiska DMA kontroliera blokshēma

DMA kontroliera darbība

DMA kontrolierim koplietot kopni ar procesoru, lai veiktu datu pārsūtīšanu. Ierīci, kas satur kopni noteiktā laikā, sauc par kopnes meistaru. Kad jāveic pārsūtīšana no I / O ierīces uz atmiņu vai otrādi, procesors pārtrauc pašreizējās programmas izpildi, palielinot programma skaitītājs, pārvieto datus pāri kaudzei, pēc tam nosūta DMA atlases signālu DMA kontrolierim pa adreses kopni.

Ja DMA kontrolieris ir brīvs, tas pieprasa kopnes vadību no procesora, paaugstinot kopnes pieprasījuma signālu. Procesors piešķir autobusu kontrolierim, paaugstinot kopnes piešķiršanas signālu, tagad DMA kontrolieris ir kopnes kapteinis. Procesors iniciē DMA kontrolieri, nosūtot atmiņas adreses, pārsūtāmo datu bloku skaitu un datu pārsūtīšanas virzienu. Pēc datu pārsūtīšanas uzdevuma piešķiršanas DMA kontrolierim, tā vietā, lai ideāli gaidītu līdz datu pārsūtīšanas pabeigšanai, procesors pēc instrukciju izgūšanas no kaudzes atsāk programmas izpildi.


DMA datu pārsūtīšana DMA datorā

Datu pārsūtīšana datorā, izmantojot DMA kontrolieri

DMA kontrolierim tagad ir pilnīga autobusu vadība, un tas var tieši mijiedarboties ar atmiņu un I / O ierīcēm neatkarīgi no CPU. Tas veic datu pārsūtīšanu saskaņā ar vadības instrukcijām, kuras saņēmis procesors. Pēc datu pārsūtīšanas tā atspējo kopnes pieprasījuma signālu un centrālais procesors atspējo kopnes piešķiršanas signālu, tādējādi pārvietojot kopņu vadību uz CPU.

Kad I / O ierīce vēlas sākt pārsūtīšanu, tā nosūta DMA pieprasījuma signālu DMA kontrolierim, par kuru kontrolieris apstiprina, ja tas ir brīvs. Tad kontrolieris pieprasa procesoru kopnei, paaugstinot kopnes pieprasījuma signālu. Pēc kopnes signāla saņemšanas tas pārsūta datus no ierīces. N kanālam DMA kontrolierim var pieslēgt n ārēju ierīču skaitu.

DMA pārsūta datus trīs režīmos, kas ietver sekojošo.

uz) Sērijas režīms : Šajā režīmā DMA nodod kopnes uz CPU tikai pēc visu datu pārsūtīšanas pabeigšanas. Tikmēr, ja centrālajam procesoram ir nepieciešama kopne, tam jāpaliek ideālam un jāgaida datu pārsūtīšana.

b) Cikla zagšanas režīms : Šajā režīmā pēc katra baita pārsūtīšanas DMA nodrošina autobusu vadību uz CPU. Tas nepārtraukti izsniedz pieprasījumu par kopnes vadību, pārsūta vienu baitu un atgriež kopni. Ar šo procesoru nav ilgi jāgaida, ja tam ir nepieciešams autobuss augstākas prioritātes uzdevumam.

c) Caurspīdīgs režīms: Šeit DMA pārsūta datus tikai tad, kad CPU izpilda instrukciju, kurai nav nepieciešama autobusu izmantošana.

8237 DMA kontrolieris

  • 8237 ir 4 I / O kanāli, kā arī elastība palielināt kanālu skaitu.
  • Katru kanālu var ieprogrammēt atsevišķi, un tam ir 64k adrese un datu iespējas.
  • Laika vadības bloks, Programmas komandu vadības bloks, Prioritātes kodētāja bloks ir trīs galvenie 8237A bloki.
  • Iekšējos laika un ārējās vadības signālus virza laika kontroles bloks.
  • Programmas komandu vadības bloks atšifrē dažādas komandas, kuras mikroprocesors dod DMA.
  • Kuram kanālam jāpiešķir augstākā prioritāte, izlemj prioritāte kodētāja bloks .
    8237A ir 27 iekšējie reģistri.

8237A darbojas divos ciklos - ideāls cikls un aktīvais cikls, kur katrā ciklā ir 7 atsevišķi stāvokļi, kas sastāv no katra pulksteņa perioda.

S0 - pirmais stāvoklis, kad kontrolieris ir pieprasījis kopni un gaida apstiprinājumu no procesora.

S1, S2, S3, S4 sauc par 8237A darba stāvokļiem, kur notiek faktiskā datu pārsūtīšana. Ja pārsūtīšanas gaidīšanas laikam nepieciešams vairāk laika, starp šiem stāvokļiem tiek pievienoti SW.

Pārsūtīšanai no atmiņas uz atmiņu ir jāveic pārsūtīšana no atmiņas un rakstīšana uz atmiņu. Vienai pārsūtīšanai ir nepieciešami astoņi stāvokļi. Pirmie četri stāvokļi ar abonementiem S11, S12, S13, S14 pārsūta lasīšanu no atmiņas, bet nākamie četri S21, S22, S23, S24 ir paredzēti rakstīšanas uz atmiņu pārsūtīšanai.

DMA nonāk ideālā stāvoklī, kad neviens kanāls nepieprasa pakalpojumu un veic SI stāvokli. SI ir neaktīvs stāvoklis, kad DMA ir neaktīva, līdz tā saņem pieprasījumu. Šajā stāvoklī DMA ir programmas stāvoklī, kur procesors var ieprogrammēt DMA.

Kad DMA ir ideālā stāvoklī un vairs nesaņem kanālu pieprasījumus, tas izsniedz procesoram HRQ signālu un nonāk aktīvajā stāvoklī, kur var sākt datu pārsūtīšanu vai nu ar sērijveida, cikla zagšanas vai caurspīdīga režīmu.

8237 PinDiagram

8237 tapu diagramma

8257 DMA kontrolieris

Savienojot pārī ar vienu Intel 8212 I / O porta ierīci, 8257 DMA kontrolieris veido pilnīgu 4 kanālu DMA kontrolieris . Saņemot pārsūtīšanas pieprasījumu, 8257 kontrolieris

  • No procesora iegūst kontroli pār sistēmas kopni.
  • Tiek apstiprināta perifērijas ierīce, kas savienota ar augstākās prioritātes kanālu.
  • Vismaz nozīmīgākie atmiņas adreses biti tiek pārvietoti pa sistēmas kopnes adrešu līnijām A0-A7.
  • Visnozīmīgākais 8 bitu atmiņas adreses caur datu līnijām tiek virzītas uz 8212 I / O portu.
  • Ģenerē atbilstošos vadības signālus datu pārsūtīšanai starp perifērijas ierīcēm un adresētajām atmiņas vietām.
  • Kad tiek pārsūtīts norādītais baitu skaits, kontrolieris informē CPU pārsūtīšanas beigas, aktivizējot termināļu skaitīšanas (TC) izeju.

Katram kanālam 8257 ir divi 16 bitu reģistri - 1) DMA adrešu reģistrs un 2) Termināļu skaitīšanas reģistrs, kas būtu jāinicializē pirms kanāla iespējošanas. Pirmās atmiņas vietas adrese, kurai jāpiekļūst, tiek ielādēta DMA adrešu reģistrā. Termināla skaitīšanas reģistrā ielādētās vērtības zemākās kārtas 14 biti norāda DMA ciklu skaitu mīnus viens pirms termināļu skaitīšanas izejas aktivizēšanas. Kanāla darbības veidu norāda termināļu skaitīšanas reģistra nozīmīgākie divi biti.

8257 tapu diagramma

8257 tapu diagramma

DMA kontroliera priekšrocības un trūkumi

DMA kontroliera priekšrocības un trūkumi ietver sekojošo.

Priekšrocības

  • DMA paātrina atmiņas darbības, apejot CPU iesaisti.
  • CPU darba pārslodze samazinās.
  • Katrai pārsūtīšanai ir nepieciešami tikai daži pulksteņa ciklu numuri

Trūkumi

  • Kešatmiņas saskaņotības problēmu var redzēt, kad DMA tiek izmantota datu pārsūtīšanai.
  • Palielina sistēmas cenu.

DMA ( Tieša piekļuve atmiņai ) kontrolieris tiek izmantots grafikas kartēs, tīkla kartēs, skaņas kartēs utt. DMA tiek izmantots arī mikroshēmu iekšējai pārsūtīšanai daudzkodolu procesoros. Darbojoties vienā no trim režīmiem, DMA var ievērojami samazināt procesora slodzi. Kurā no DMA režīmiem esat strādājis? Kurš no režīmiem, jūsuprāt, ir efektīvāks?