Accès direct à la mémoire

Fiabilité

Que signifie l’accès direct à la mémoire ?

L’accès direct à la mémoire (DMA) est une méthode qui permet à un périphérique d’entrée/sortie (E/S) d’envoyer ou de recevoir des données directement vers ou depuis la mémoire principale, en contournant le CPU pour accélérer les opérations de mémoire.

Le processus est géré par une puce appelée contrôleur DMA (DMAC).

Techopedia explique l’accès direct à la mémoire

Une partie définie de la mémoire est utilisée pour envoyer des données directement d’un périphérique à la carte mère sans impliquer le microprocesseur, de sorte que le processus n’interfère pas avec le fonctionnement général de l’ordinateur.

Dans les ordinateurs plus anciens, les quatre canaux DMA étaient numérotés 0, 1, 2 et 3. Lorsque le bus d’expansion ISA (Industry Standard Architecture) de 16 bits a été introduit, les canaux 5, 6 et 7 ont été ajoutés.

L’ISA était une norme de bus informatique pour les ordinateurs compatibles IBM, permettant à un périphérique d’initier des transactions (maîtrise du bus) à une vitesse plus rapide. Le contrôleur DMA ISA possède 8 canaux DMA, chacun étant associé à une adresse de 16 bits et à des registres de comptage.

L’ISA a depuis été remplacé par des cartes d’extension AGP (accelerated graphics port) et PCI (peripheral component interconnect), qui sont beaucoup plus rapides. Chaque DMA transfère environ 2 Mo de données par seconde.

Les outils de ressources système d’un ordinateur sont utilisés pour la communication entre le matériel et les logiciels. Les quatre types de ressources système sont les suivants

  • Adresses I/O.
  • Adresses de mémoire.
  • Numéros de demande d’interruption (IRQ).
  • Canaux d’accès direct à la mémoire (DMA).

Les canaux DMA sont utilisés pour communiquer des données entre le périphérique et la mémoire du système. Les quatre ressources du système dépendent de certaines lignes d’un bus. Certaines lignes du bus sont utilisées pour les IRQ, d’autres pour les adresses (les adresses d’E/S et l’adresse mémoire) et d’autres encore pour les canaux DMA.

Un canal DMA permet à un périphérique de transférer des données sans exposer l’unité centrale à une surcharge de travail. Sans les canaux DMA, l’unité centrale copie chaque donnée à l’aide d’un bus périphérique à partir du périphérique d’E/S. L’utilisation d’un bus périphérique occupe l’unité centrale. L’utilisation d’un bus périphérique occupe l’unité centrale pendant le processus de lecture/écriture et ne permet pas d’effectuer d’autres tâches tant que l’opération n’est pas terminée.

Avec le DMA, l’unité centrale peut effectuer d’autres tâches pendant le transfert des données. Le transfert de données est d’abord initié par l’unité centrale. Le bloc de données peut être transféré de et vers la mémoire par le DMAC de trois manières.

En mode rafale, le bus système n’est libéré qu’une fois le transfert de données terminé. En mode cycle stealing, pendant le transfert de données entre le canal DMA et le périphérique d’E/S, le bus système est libéré pendant quelques cycles d’horloge afin que l’unité centrale puisse effectuer d’autres tâches. Lorsque le transfert de données est terminé, l’unité centrale reçoit une demande d’interruption du contrôleur DMA. En mode transparent, le DMAC peut prendre en charge le bus système uniquement lorsque le processeur n’en a pas besoin.

Cependant, l’utilisation d’un contrôleur DMA peut entraîner des problèmes de cohérence de la mémoire cache. Les données stockées dans la RAM à laquelle accède le contrôleur DMA peuvent ne pas être mises à jour avec les données correctes du cache si le processeur utilise une mémoire externe.

Les solutions consistent à vider les lignes de cache avant de commencer les transferts DMA sortants ou à effectuer une invalidation de cache sur les transferts DMA entrants lorsque des écritures externes sont signalées au contrôleur de cache.

Termes connexes

Margaret Rouse
Experte en technologie

Margaret Rouse est une écrivaine technique primée et enseignante reconnue pour sa capacité à expliquer des sujets techniques complexes à un public non technique et commercial. Au cours des vingt dernières années, ses explications ont été publiées sur les sites Web de TechTarget et elle a été citée comme une autorité dans des articles du New York Times, du Time Magazine, de USA Today, de ZDNet, de PC Magazine et de Discovery Magazine. L'idée que Margaret se fait d'une journée amusante est d'aider les professionnels de l'informatique et des affaires à apprendre à parler leurs langages hautement spécialisés respectifs. Si…