DMA 25.05.03 Chapitre 5, Page 2
Arches Formations Cours Hardware Pascal Mauron
DMA
Introduction.
Un canal DMA permet aux cartes d'extension de communiquer avec la mémoire de
l'ordinateur sans passer par le microprocesseur (CPU). Le but était à l'origine de ne pas
bloquer le CPU lors d'importants transferts de mémoire. Depuis, pour des raisons de
comptabilité, les canaux DMA n'ont guère évolué et sont devenus, de ce fait, très lent par
rapport au reste des machines (attention ici l'on ne parle pas des même DMA que ceux
utilisés pour les disques dur IDE).
Le DMA est un canal utilisé pour les transferts de données à haute vitesse. Il est souvent
désigné sous le nom de canal d'accès direct à la mémoire. Il va être utilisé avec les
composants nécessitant de gros transferts de données à la plus haute vitesse possible.
Un port sériel n'utilisera pas de port DMA, mais une carte réseau en mobilisera souvent
un. Les premiers PC (XT) ne disposaient que de quatre canaux DMA, mais depuis les PC
AT, ce nombre a été porté à huit. Ce nombre a été obtenu grâce à l'ajout d'un second
composant, greffé sur le premier. Ainsi, un canal a été détourné de façon à assurer la
liaison entre ces deux chips. On utilise à cet effet le canal n°0 que l'on met en liaison
avec le n°4. Ce dernier devient alors indisponible.
Fonctionnement.
Le but principal du DMA est de prendre en charge les gros transferts de données,
libérant ainsi le processeur. Il offre un canal détourné (représenté en noir ci-dessus). Le
processeur ainsi libéré des tâches de transfert peut se consacrer à d'autres tâches. En
fait, il existe plusieurs types de transfert DMA.
Compatible Ce procédé utilise la même fréquence pour le DMA
que pour un bus ISA. Toutes les cartes ISA et EISA
supportent ce mode.
Type A Le transfert est augmenté de 25% par rapport à la
méthode précédente. Il fonctionne avec la plupart
des cartes ISA.
Type B Le transfert est augmenté de 50% par rapport au
mode Compatible. La plupart des cartes EISA et
seul un petit nombre de cartes ISA le supportent.
Type C Cette méthode augmente le transfert de 87.5%.
Seules les cartes EISA le supportent.
Il convient de noter que les périphériques PCI n'utilisent pas le DMA. Alors que dans un
transfert DMA standard, le contrôleur DMA dirige le transfert, il arrive que le
périphérique décide de tout piloter. On parle alors de Bus Mastering. En effet, les
périphériques modernes disposent de circuit DMA nettement plus véloces que le bon
vieux contrôleur intégré à votre carte mère. Cela permet, entre autres, des nouveaux
modes tels que l'Ultra-ATA.