Què és l'accés directe a la memòria (DMA) i com funciona? [Wiki MiniTool]
What Is Direct Memory Access
Navegació ràpida:
Podeu adoptar el fitxer RDMA tecnologia que permet als ordinadors d’una xarxa intercanviar dades a la memòria principal sense implicar el processador, la memòria cau o el sistema operatiu de cap dels dos equips. Però també podeu utilitzar la funció DMA per enviar dades directament des d’un dispositiu connectat a la memòria de la placa base de l’ordinador. Aquesta publicació de MiniTool parla principalment de DMA.
La definició d’accés directe a la memòria
En primer lloc, què és l’accés directe a la memòria? Accés directe a la memòria es pot abreviar a DMA, que és una característica dels sistemes informàtics. Permet que els dispositius d’entrada / sortida (E / S) accedeixin a la memòria principal del sistema ( memòria d'accés aleatori ), independent de la unitat central de processament (CPU), que accelera les operacions de memòria.
Consell: Us pot interessar aquest post - 8 solucions útils per solucionar la vostra CPU al 100% a Windows 10 .
Sense accés directe a la memòria, quan la CPU utilitza entrades / sortides programades, sol estar completament ocupada durant tota l’operació de lectura o escriptura, de manera que no pot realitzar altres tasques. Amb DMA, la CPU primer inicia la transferència, després realitza altres operacions mentre la transferència està en curs i, finalment, rep una interrupció del controlador DMA (DMAC) quan l'operació ha finalitzat.
L’accés directe a la memòria és útil sempre que la CPU no pot mantenir-se al dia amb la velocitat de transferència de dades o quan la CPU necessita realitzar treballs mentre s’espera una transferència de dades d’E / S relativament lenta.
Diversos sistemes de maquinari adopten accés directe a la memòria, com ara controladors de discs, targetes gràfiques, targetes de xarxa i targetes de so. DMA també s'utilitza per a la transferència de dades on-chip en processadors multi-core. En comparació amb ordinadors sense canals d’accés directe a la memòria, els equips amb canals DMA poden transferir dades entre dispositius amb una despesa de CPU molt menor.
L'accés directe a la memòria també es pot utilitzar per a 'memòria a memòria' per copiar o moure dades a la memòria. Pot transferir operacions de memòria costoses (com ara còpies grans o operacions de dispersió-recollida) de la CPU a un motor DMA dedicat. El DMA és important en arquitectures informàtiques de xarxa i xip.
Com funciona l'accés directe a la memòria?
Llavors, com funciona l'accés directe a la memòria? L’accés directe a la memòria estàndard (també anomenat DMA de tercers) adopta un controlador DMA. El controlador DMA pot produir adreces de memòria i iniciar cicles de lectura o escriptura de memòria. Cobreix múltiples registres de maquinari que la CPU pot llegir i escriure.
Aquests registres consisteixen en un registre d’adreces de memòria, un registre de recompte de bytes i un o més registres de control. Depenent de les funcions proporcionades pel controlador d’accés directe a la memòria, aquests registres de control poden designar alguna combinació d’origen, destinació, direcció de transferència (llegir o escriure al dispositiu E / S), la mida de la unitat de transferència i / o el nombre de bytes per transferir en una ràfega.
Per realitzar operacions d'entrada, sortida o memòria a memòria, el processador amfitrió inicialitza el controlador DMA amb el nombre de paraules a transferir i l'adreça de memòria a utilitzar. A continuació, la CPU ordena al dispositiu perifèric que comenci la transferència de dades.
A continuació, el controlador Direct Memory Access ofereix adreces i línies de control de lectura / escriptura a la memòria del sistema. Cada vegada que es prepara un byte de dades per transferir-se entre el dispositiu perifèric i la memòria, el controlador DMA augmenta el registre d’adreça intern fins que es transfereix un bloc de dades complet.
Modes de funcionament
L’accés directe a la memòria funciona de manera diferent en diferents modes de funcionament.
Mode de ràfega
En mode ràfega, el bloc de dades complet es transmet en una seqüència contínua. Un cop la CPU permeti al controlador DMA accedir al bus del sistema, el controlador DMA transferirà tots els bytes de dades al bloc de dades abans de deixar anar el control dels busos del sistema a la CPU, però provocarà que la CPU estigui inactiva per a un molt de temps considerable. Aquest mode també s'anomena 'Mode de transferència de blocs'.
Mode de robatori de cicle
El mode de robatori de cicle s’utilitza en un sistema on la CPU no es pot desactivar durant el temps necessari per al mode de transferència de ràfegues. En el mode de robatori de cicle, el controlador DMA obté l'accés al bus del sistema mitjançant els senyals BR (Bus Request) i BG (Bus Grant), que són els mateixos que el mode de ràfega. Aquests dos senyals controlen la interfície entre la CPU i el controlador DMA.
D'una banda, en el mode de robatori de cicle, la velocitat de transmissió del bloc de dades no és tan ràpida com en el mode de ràfega, però, d'altra banda, el temps d'inactivitat de la CPU no és tan llarg com en el mode de ràfega.
Mode transparent
El mode transparent triga més temps a transferir blocs de dades, però també és el mode més eficient en termes de rendiment general del sistema. En mode transparent, el controlador d'accés directe a la memòria només transfereix dades quan la CPU realitza operacions que no fan servir els busos del sistema.
L’avantatge principal del mode transparent és que la CPU no para d’executar els seus programes i les transferències d’accés directe a la memòria són gratuïtes en termes de temps, mentre que l’inconvenient és que el maquinari ha de determinar quan la CPU no utilitza els busos del sistema, que poden ser complicat. Això també s'anomena 'mode de transferència de dades DMA ocult'.