Suora muistipääsy (DMA) tietokonearkkitehtuurissa

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tietokoneohjelman suorittamiseksi se vaatii tietokoneen useamman kuin yhden komponentin synkronisen toiminnan. Esimerkiksi, Suorittimet - tarvittavien ohjaustietojen, osoitteiden jne., Väylien toimittaminen - tietojen ja tietojen siirtämiseksi muistista I / O-laitteisiin jne. Järjestelmän mielenkiintoinen tekijä olisi tapa, jolla se käsittelee tiedonsiirtoa prosessorin, muistin ja I / O-laitteiden välillä. Yleensä prosessorit hallitsevat kaikkea tiedonsiirtoprosessia heti siirron aloittamisesta tietojen tallennukseen määränpäässä. Tämä lisää prosessorin kuormitusta ja suurimman osan ajasta se pysyy ihanteellisessa tilassa, mikä heikentää järjestelmän tehokkuutta. Tiedonsiirron nopeuttamiseksi I / O-laitteiden ja muistin välillä DMA-ohjain toimii aseman isäntänä. DMA-ohjain siirtää tietoja prosessorin minimaalisella väliintulolla.

Mikä on DMA-ohjain?

Termi DMA tarkoittaa suoraa pääsyä muistiin. Suoraan muistiin pääsyä varten käytettävää laitteistoa kutsutaan DMA-ohjaimeksi. DMA ohjain on ohjausyksikkö , osa I / O-laitteita liitäntäpiiri , joka voi siirtää tietolohkoja I / O-laitteiden ja päämuistin välillä prosessorin minimaalisella väliintulolla.




DMA-ohjaimen kaavio tietokonearkkitehtuurissa

DMA-ohjain tarjoaa liitännän väylän ja tulo-lähtölaitteiden välillä. Vaikka se siirtää tietoja ilman prosessorin puuttumista, prosessori ohjaa sitä. Prosessori käynnistää DMA-ohjaimen lähettämällä aloitusosoitteen, sanalukumäärän datalohkossa ja tiedonsiirron suunnan. I / O-laitteista muistiin tai päämuistista I / O-laitteisiin. DMA-ohjaimeen voidaan liittää useampi kuin yksi ulkoinen laite.

DMA tietokonearkkitehtuurissa

DMA tietokonearkkitehtuurissa



DMA-ohjain sisältää osoiteyksikön osoitteiden muodostamiseksi ja I / O-laitteen valitsemiseksi siirtoa varten. Se sisältää myös ohjausyksikön ja datamäärän siirrettyjen lohkojen lukumäärän pitämiseksi ja tietojen siirtosuunnan osoittamiseksi. Kun siirto on valmis, DMA ilmoittaa prosessorille nostamalla keskeytyksen. DMA-ohjaimen tyypillinen lohkokaavio on esitetty alla olevassa kuvassa.

DMA-ohjaimen tyypillinen lohkokaavio

DMA-ohjaimen tyypillinen lohkokaavio

DMA-ohjaimen toiminta

DMA-ohjaimen on jaettava väylä prosessorin kanssa tiedonsiirron suorittamiseksi. Laitetta, joka pitää väylän tiettynä ajankohtana, kutsutaan väylämasteriksi. Kun siirto I / O-laitteesta muistiin tai päinvastoin on suoritettava, prosessori lopettaa nykyisen ohjelman suorittamisen, lisää ohjelma laskuri, siirtää datan pinon yli ja lähettää sitten DMA-valintasignaalin DMA-ohjaimelle osoiteväylän kautta.

Jos DMA-ohjain on vapaa, se pyytää väylän ohjausta prosessorilta nostamalla väyläpyyntösignaalia. Prosessori myöntää väylän ohjaimelle nostamalla väylän myöntämissignaalia, nyt DMA-ohjain on väylämesteri. Prosessori käynnistää DMA-ohjaimen lähettämällä muistiosoitteet, siirrettävien tietolohkojen lukumäärän ja tiedonsiirron suunnan. Kun olet määrittänyt tiedonsiirtotehtävän DMA-ohjaimelle, prosessori jatkaa ohjelman suorittamista sen jälkeen, kun se on odottanut tiedonsiirron loppuun saattamista, saatuaan ohjeet pinosta.


Tietojen siirto DMA: lla tietokoneella, DMA

Tietojen siirto tietokoneella DMA-ohjaimen avulla

DMA-ohjaimella on nyt väylien täydellinen hallinta ja se voi olla vuorovaikutuksessa suoraan muistin ja I / O-laitteiden kanssa prosessorista riippumatta. Se suorittaa tiedonsiirron prosessorin saamien ohjausohjeiden mukaisesti. Tiedonsiirron päättymisen jälkeen se poistaa väyläpyyntösignaalin käytöstä ja keskusyksikkö poistaa väylän myöntämissignaalin täten siirtäen väylien ohjauksen keskusyksikköön.

Kun I / O-laite haluaa aloittaa siirron, se lähettää DMA-kyselysignaalin DMA-ohjaimelle, jolle ohjain kuittaa, jos se on vapaa. Sitten ohjain pyytää prosessoria väylälle, nostaen väyläpyyntösignaalia. Vastaanotettuaan väylän myöntämissignaalin se siirtää tiedot laitteesta. N kanavoitua DMA-ohjainta varten voidaan liittää n lukumäärä ulkoisia laitteita.

DMA siirtää tiedot kolmessa tilassa, jotka sisältävät seuraavat.

) Sarjakuvaustila : Tässä tilassa DMA siirtää väylät CPU: lle vasta koko tiedonsiirron päätyttyä. Samaan aikaan, jos CPU vaatii väylän, sen on pysyttävä ihanteellisena ja odotettava tiedonsiirtoa.

b) Syklin varastustila : Tässä tilassa DMA antaa väylien hallinnan prosessorille jokaisen tavun siirron jälkeen. Se lähettää jatkuvasti väyläohjauspyynnön, siirtää yhden tavun ja palauttaa väylän. Tämän suorittimen ei tarvitse odottaa kauan, jos se tarvitsee väylän korkeamman prioriteetin tehtävään.

c) Läpinäkyvä tila: Tässä DMA siirtää dataa vain, kun CPU suorittaa käskyn, joka ei vaadi väylien käyttöä.

8237 DMA-ohjain

  • 8237: ssä on 4 I / O-kanavaa sekä joustavuus lisätä kanavien määrää.
  • Jokainen kanava voidaan ohjelmoida erikseen, ja sillä on 64 k: n osoite ja datakyky.
  • Ajoituksen ohjauslohko, Program-komennon ohjauslohko, Priority Encoder Block ovat 8237A: n kolme päälohkoa.
  • Sisäisiä ajoitus- ja ulkoisia ohjaussignaaleja ohjaa ajoituksen ohjauslohko.
  • Eri mikroprosessorin DMA: lle antamat komennot dekoodataan ohjelmakomennon ohjauslohkolla.
  • Prioriteetti päättää, mille kanavalle on annettava korkein prioriteetti enkooderilohko .
    8237A: lla on 27 sisäistä rekisteriä.

8237A toimii kahdessa jaksossa - ihanteellinen sykli ja aktiivinen sykli, joissa jokainen sykli sisältää 7 erillistä tilaa, joista kussakin on yksi kellojakso.

S0- Ensimmäinen tila, jossa ohjain on pyytänyt väylää ja odottaa kuittausta prosessorilta.

S1, S2, S3, S4 kutsutaan 8237A: n toimintatiloiksi, joissa todellinen tiedonsiirto tapahtuu. Jos siirron odotustiloihin tarvitaan enemmän aikaa, SW lisätään näiden tilojen välille.

Muistista muistiin siirtämistä varten on tehtävä luenta muistista ja kirjoitus muistiin -siirrot. Yhden siirron edellyttämät kahdeksan tilaa. Ensimmäiset neljä tilaa, joiden tilauskoodit ovat S11, S12, S13, S14, suorittavat lukemisen muistista ja seuraavat neljä S21, S22, S23, S24 ovat kirjoitus muistiin -siirtoa varten.

DMA menee ihanteelliseen tilaan, kun mikään kanava ei pyydä palvelua ja suorittaa SI-tilaa. SI on passiivinen tila, jossa DMA ei ole aktiivinen, kunnes se vastaanottaa pyynnön. Tässä tilassa DMA on ohjelmassa, jossa prosessori voi ohjelmoida DMA: n.

Kun DMA on ihanteellisessa tilassa eikä saa uusia kanavapyyntöjä, se lähettää HRQ-signaalin prosessorille ja siirtyy aktiiviseen tilaan, jossa se voi aloittaa tiedonsiirron joko purskemoodilla, syklivarastustilalla tai läpinäkyvällä tavalla.

8237 Pin-kaavio

8237-nastakaavio

8257 DMA-ohjain

Yhdistettynä yhden Intel 8212 I / O -porttilaitteen kanssa 8257 DMA-ohjain muodostaa täydellisen 4-kanavan DMA-ohjain . Vastaanotettuaan siirtopyynnön 8257-ohjain-

  • Hankkii ohjausjärjestelmän väylän prosessorista.
  • Korkeimman prioriteetin kanavalle liitetty oheislaite kuitataan.
  • Muistiosoitteen vähiten merkitsevät bitit siirretään järjestelmäväylän osoiterivien A0-A7 yli.
  • Merkittävin 8-bittinen muistiosoitteesta ajetaan 8212 I / O-porttiin datalinjojen kautta.
  • Luo sopivat ohjaussignaalit datan siirtämiseen oheislaitteiden ja osoitettujen muistipaikkojen välillä.
  • Kun määritetty määrä tavuja siirretään, ohjain ilmoittaa CPU: lle siirron lopun aktivoimalla päätelaitteiden (TC) lähdön.

Kutakin kanavaa 8257 sisältää kaksi 16-bittiset rekisterit - 1) DMA-osoiterekisteri ja 2) Päätelaitteiden rekisteri, joka tulisi alustaa ennen kuin kanava otetaan käyttöön. Ensimmäisen käytetyn muistipaikan osoite ladataan DMA-osoiterekisteriin. Päätelaitteiden rekisteriin ladatun arvon alempi järjestys 14 bittiä ilmaisee DMA-syklien lukumäärän miinus yksi ennen päätelaitteen laskennan lähtöä. Kanavan operaatiotyyppi osoitetaan päätelaitteiden rekisterin merkittävimmillä kahdella bitillä.

8257 tappi kaavio

8257 tappi kaavio

DMA-ohjaimen edut ja haitat

DMA-ohjaimen etuja ja haittoja ovat seuraavat.

Edut

  • DMA nopeuttaa muistitoimintoja ohittamalla suorittimen osallistumisen.
  • CPU: n työn ylikuormitus vähenee.
  • Kutakin siirtoa varten tarvitaan vain muutama kellojaksojen määrä

Haitat

  • Välimuistin koherenssiongelma näkyy, kun DMA: ta käytetään tiedonsiirtoon.
  • Nostaa järjestelmän hintaa.

DMA ( Suora pääsy muistiin ) ohjainta käytetään näytönohjaimissa, verkkokorteissa, äänikorteissa jne. ... DMA: ta käytetään myös sirujen sisäiseen siirtoon moniydinsuorittimissa. Yhdessä kolmesta tilastaan ​​toimiva DMA voi vähentää prosessorin kuormitusta huomattavasti. Missä DMA-moodeissa olet työskennellyt? Kumpi tila on mielestäsi tehokkaampi?