DMA (Direct Memory Access)

DMA (Direct Memory Access) composant du chipset gérant les accès directs des périphériques à la mémoire vive. Le DMA sert à faire transiter de grandes quantités de données, à très hautes vitesses, entre un périphérique et une zone mémoire ou entre deux zones mémoires. Le canal DMA décharge le processeur d'une tâche coûteuse en temps, par exemple pour faire transiter les données du disques dur vers la mémoire. C'est un protocole de l'interface E-IDE, qui accapare moins les ressources du micro-processeur sous réserve d'emprunter le driver IDE Bus Master. Les données transitent directement entre mémoire vive et disque dur sans passer par le processeur.

Transfert normal :
Lors d'un transfert d'octet depuis la mémoire vers le disque, le processeur (CPU) va utiliser un grand nombre de cycles d'horloge, pour décoder l'instruction, pour écrire sur le bus d'adresse, pour lire le bus de données,...ce qui est évidemment assez long.

Transfert DMA :
IL s'agit en fait de court-circuiter le transfert normal, en évitant de passer par le processeur. Néanmoins, il faut savoir que c'est tout de même le processeur qui ordonne le transfert DMA, ensuite le processeur ne s'occupe plus de rien, se trouvant totalement désactivé avec certaines méthodes alors qu'avec d'autres, il va donc pouvoir continuer d'autres opérations (moins rapidement qu'à la normale puisqu'il ne pourra pas bénéficier de tous les cycles d'horloge). C'est un circuit spécial, nommé contrôleur de DMA (sur PC : Intel 8237) , qui est en charge du transfert. Les machines actuelles possèdent 2 contrôleurs avec 4 canneaux chacun , ce qui donne 7 canneaux DMA car les 2 contrôleurs sont branchés en cascade.