Wat is directe geheugentoegang?
Directe geheugentoegang, soms DMA genoemd, is een methode voor het overbrengen van gegevens van het willekeurig toegankelijke geheugen naar een ander deel van een computer zonder de centrale verwerkingseenheid in beslag te nemen. Deze mogelijkheid is ingebouwd in de meeste moderne computersystemen. Hiermee kan de computer meerdere taken tegelijk uitvoeren, waardoor de computer uiteindelijk sneller wordt.
Net zoals de eigenaar van een klein bedrijf zich bezighoudt met alle rapporten en informatie die zijn of haar kantoor binnenkomt of verlaat, moet de centrale verwerkingseenheid van een computer alle invoer of uitvoer van de computer verwerken. Voordat directe geheugentoegang werd verkregen, kreeg het downloaden of uploaden van gegevens alle aandacht van de centrale processor. Het kan slechts één taak tegelijk uitvoeren.
Een computer waarop directe geheugentoegang is ingeschakeld, is als een kleine bedrijfseigenaar met een paar assistenten. In plaats van alle informatie rechtstreeks af te handelen, kan de centrale verwerkingseenheid de taak delegeren aan de directe geheugentoegangcontroller. Dit is een apparaat ingebouwd in het moederbord dat toezicht houdt op directe geheugentoegang. De centrale verwerkingseenheid is dan vrij om andere taken uit te voeren terwijl de upload of download plaatsvindt. Wanneer de gedelegeerde taak is voltooid, meldt de DMA-controller de centrale verwerkingseenheid.
Elke poort op een computer heeft ten minste één direct geheugentoegangskanaal dat kan worden toegewezen aan apparaten die via die poort zijn verbonden. Om goed te werken, moet aan elk apparaat een ander kanaal worden toegewezen. De meeste kaarten die op een computer kunnen worden geïnstalleerd, zoals geluids-, netwerk- of videokaarten, kunnen directe geheugentoegang gebruiken om hun taken uit te voeren.
Multi-coreprocessors kunnen ook directe geheugentoegang gebruiken. Ze hebben over het algemeen een type tijdelijk geheugen dat lokaal geheugen of kladblokgeheugen wordt genoemd. Wanneer de actie waaraan ze werken is voltooid, kunnen ze de gegevens van het lokale geheugen naar het hoofdgeheugen overbrengen met behulp van een geheugenkanaal met directe toegang.
Het nadeel van afhankelijk zijn van DMA is dat dit een verlies van cache-coherentie kan veroorzaken. Dit betekent in feite dat gegevens voortdurend worden verplaatst en op meerdere tijdelijke locaties kunnen worden opgeslagen. Het probleem hiermee is dat wanneer de computer wordt gevraagd toegang te krijgen tot informatie, deze mogelijk geen toegang heeft tot de meest recente informatie. Computerfabrikanten kunnen hiermee omgaan met speciale hardware of door het besturingssysteem te programmeren om te voorkomen dat de cache-coherentie verloren gaat.