Mikä on suora muistipääsy (DMA) ja miten se toimii? [MiniTool Wiki]
What Is Direct Memory Access
Nopea navigointi:
Voit ottaa käyttöön RDMA tekniikka, jonka avulla verkon tietokoneet voivat vaihtaa tietoja päämuistissa ottamatta huomioon kummankin tietokoneen prosessoria, välimuistia tai käyttöjärjestelmää. Mutta voit myös käyttää DMA-ominaisuutta lähettääksesi tietoja suoraan liitetystä laitteesta tietokoneen emolevyn muistiin. Tämä viesti käyttäjältä MiniTool puhuu pääasiassa DMA: sta.
Suoran muistin käytön määritelmä
Ensinnäkin, mikä on suora muistipääsy? Suora muistipääsy voidaan lyhentää DMA: ksi, mikä on tietojärjestelmien piirre. Se sallii tulo- / lähtölaitteiden (I / O) pääsyn järjestelmän päämuistiin ( RAM-muisti ), riippumaton keskusyksiköstä (CPU), joka nopeuttaa muistitoimintoja.
Kärki: Saatat olla kiinnostunut tästä viestistä - 8 hyödyllistä ratkaisua suorittimen 100% korjaamiseen Windows 10: ssä .
Ilman suoraa muistipäätöä, kun keskusyksikkö käyttää ohjelmoituja tuloja / lähtöjä, se on yleensä täysin varattu koko luku- tai kirjoitusoperaation ajan, joten se ei voi suorittaa muita tehtäviä. DMA: n avulla keskusyksikkö aloittaa ensin siirron, suorittaa sitten muut toiminnot siirron ollessa käynnissä ja lopulta vastaanottaa keskeytyksen DMA-ohjaimelta (DMAC), kun operaatio on valmis.
Suora muistipääsy on hyödyllinen aina, kun keskusyksikkö ei pysty pysymään tiedonsiirtonopeuden mukana tai kun suorittimen on suoritettava työtä odottaessaan suhteellisen hitaita I / O-tiedonsiirtoja.
Useat laitteistojärjestelmät, kuten levyasemien ohjaimet, näytönohjaimet, verkkokortit ja äänikortit, käyttävät suoraa muistin käyttöä. DMA: ta käytetään myös sirun sisäiseen tiedonsiirtoon moniytimisissä prosessoreissa. Verrattuna tietokoneisiin, joissa ei ole suoraa muistipääsy-kanavaa, DMA-kanavilla varustetut tietokoneet voivat siirtää tietoja laitteiden välillä, joissa on paljon vähemmän suorittimen lisäkustannuksia.
Suoraa muistin käyttöä voidaan käyttää myös ”muistista muistiin” tietojen kopioimiseksi tai siirtämiseksi muistissa. Se voi siirtää kalliita muistitoimintoja (kuten suuria kopioita tai hajonta-keräämisoperaatioita) suorittimesta erilliseen DMA-moottoriin. DMA on tärkeä verkko-siru ja muistilaskenta-arkkitehtuureissa.
Kuinka suora muistin käyttö toimii?
Kuinka sitten suora muistipääsy toimii? Normaali suora muistipääsy (kutsutaan myös kolmannen osapuolen DMA: ksi) hyväksyy DMA-ohjaimen. DMA-ohjain voi tuottaa muistiosoitteita ja käynnistää muistin luku- tai kirjoitusjaksoja. Se kattaa useita laitteistorekistereitä, jotka prosessori voi lukea ja kirjoittaa.
Nämä rekisterit koostuvat muistiosoiterekisteristä, tavumäärärekisteristä ja yhdestä tai useammasta ohjausrekisteristä. Direct Memory Access -ohjaimen tarjoamista ominaisuuksista riippuen nämä ohjausrekisterit voivat määrittää jonkin yhdistelmän lähteestä, kohdekohdasta, siirtosuunnasta (lukea I / O-laitteesta tai kirjoittaa siihen), siirtoyksikön koosta ja / tai tavua siirtää kerralla.
Syöttö-, tulostus- tai muistista muistiin -toimintojen suorittamiseksi isäntäprosessori alustaa DMA-ohjaimen siirrettävien sanojen lukumäärällä ja käytettävällä muistiosoitteella. Sitten CPU käskee oheislaitteen aloittamaan tiedonsiirron.
Sitten Direct Memory Access -ohjain tarjoaa osoitteita ja luku- / kirjoitusohjausrivejä järjestelmän muistiin. Aina kun tavu tietoja valmistellaan siirrettäväksi oheislaitteen ja muistin välillä, DMA-ohjain lisää sisäistä osoiterekisteriä, kunnes täydellinen datalohko on siirretty.
Toimintatavat
Suora muistin käyttö toimii eri tavoin eri toimintatiloissa.
Sarjakuvaustila
Pursketilassa täysi datalohko lähetetään jatkuvana jaksona. Kun keskusyksikkö sallii DMA-ohjaimen pääsyn järjestelmäväylään, DMA-ohjain siirtää kaikki tavut datalohkossa ennen kuin vapauttaa järjestelmäväylän ohjauksen takaisin keskusyksikköön, mutta se saa CPU: n olemaan käyttämättömänä huomattavan kauan. Tätä tilaa kutsutaan myös nimellä 'Block Transfer Mode'.
Syklin varastustila
Syklin varastamismoodia käytetään järjestelmässä, jossa CPU: ta ei voida poistaa käytöstä purskeensiirtotilaan tarvittavan ajan. Syklivarastustilassa DMA-ohjain saa pääsyn järjestelmäväylään käyttämällä BR (Bus Request) - ja BG (Bus Grant) -signaaleja, jotka ovat samat kuin pursketila. Nämä kaksi signaalia ohjaavat prosessorin ja DMA-ohjaimen välistä rajapintaa.
Yhtäältä syklivarastustilassa datalohkon lähetysnopeus ei ole yhtä nopea kuin pursketilassa, mutta toisaalta CPU: n tyhjäkäyntiaika ei ole yhtä pitkä kuin pursketilassa.
Läpinäkyvä tila
Läpinäkyvä tila vie pisin aika datalohkojen siirtämiseen, mutta se on myös tehokkain tila järjestelmän yleisen suorituskyvyn kannalta. Läpinäkyvässä tilassa Direct Memory Access -ohjain siirtää tietoja vain, kun keskusyksikkö suorittaa toimintoja, jotka eivät käytä järjestelmäväyliä.
Läpinäkyvän tilan tärkein etu on, että keskusyksikkö ei koskaan lopeta ohjelmiensa suorittamista, ja suoran muistin käytön siirrot ovat ajan suhteen ilmaisia, kun taas haittana on, että laitteiston on määritettävä, milloin keskusyksikkö ei käytä järjestelmäväyliä, mikä olla monimutkainen. Tätä kutsutaan myös 'piilotetuksi DMA-tiedonsiirtotilaksi'.