Ce este accesul direct la memorie?

Accesul direct la memorie, uneori numit DMA, este o metodă de transfer de date din memoria cu acces aleatoriu într-o altă parte a unui computer fără a ocupa unitatea centrală de procesare. Această capacitate este încorporată în majoritatea sistemelor informatice moderne. Acesta permite computerului să efectueze mai multe sarcini simultan, făcând computerul mai rapid.

Așa cum proprietarul unei mici afaceri se ocupă cu toate rapoartele și informațiile care intră sau ies din biroul său, unitatea centrală de procesare a unui computer trebuie să proceseze toate intrările sau ieșirile computerului. Înainte de accesul direct la memorie, descărcarea sau încărcarea datelor a ocupat toată atenția procesorului central. Ar putea face doar o sarcină la un moment dat.

Un computer cu acces direct la memorie activat este ca un proprietar de mică afacere cu câțiva asistenți. În loc să se ocupe direct de toate informațiile, unitatea centrală de procesare este capabilă să delege sarcina controlerului de acces direct la memorie. Acesta este un dispozitiv încorporat în placa de bază care supraveghează operațiunile de acces direct la memorie. Unitatea centrală de procesare este apoi liberă să efectueze alte sarcini în timp ce are loc încărcarea sau descărcarea. Când sarcina delegată este finalizată, controlerul DMA informează unitatea centrală de procesare.

Fiecare port de pe un computer are cel puțin un canal de acces direct la memorie care poate fi atribuit dispozitivelor conectate prin acel port. Pentru a funcționa corect, fiecărui dispozitiv trebuie să i se aloce un canal diferit. Majoritatea cardurilor care pot fi instalate într-un computer, cum ar fi plăcile de sunet, de rețea sau video, pot folosi accesul direct la memorie pentru a-și îndeplini sarcinile.

Procesoarele multi-core sunt, de asemenea, capabile să utilizeze acces direct la memorie. În general, au un tip de memorie temporară numită memorie locală sau memorie scratchpad. Când acțiunea la care lucrează este finalizată, aceștia pot transfera datele din memoria locală în memoria principală folosind un canal de memorie cu acces direct.

Dezavantajul dependenței de DMA este că poate provoca ceea ce se numește o pierdere a coerenței cache-ului. Practic, aceasta înseamnă că datele se mișcă tot timpul și pot fi stocate în mai multe locații temporare. Problema cu aceasta este că atunci când computerului i se cere să acceseze informații, este posibil să nu acceseze cele mai recente informații. Producătorii de computere se pot ocupa de acest lucru folosind hardware special sau programând sistemul de operare pentru a se proteja împotriva pierderii coerenței cache-ului.