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 directement des données 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).

Accès direct à la mémoire

Points clés

  • L’accès direct à la mémoire permet à un périphérique d’interagir directement avec la mémoire vive d’un ordinateur hôte.
  • Le DMA utilise un composant matériel dédié, appelé contrôleur DMA, pour gérer le processus de transfert de données.
  • Avant que le DMA ne devienne une fonctionnalité standard, l’unité centrale de l’ordinateur hôte devait gérer chaque étape d’un transfert de données.
  • La surcharge créée par les interruptions de l’unité centrale et le changement de contexte pendant les transferts de données rendait difficile l’exécution d’autres tâches par l’unité centrale.
  • Le DMA a été développé pour que l’unité centrale de traitement de l’hôte puisse effectuer d’autres tâches pendant que les données sont transférées en arrière-plan.

Comment fonctionne l’Accès Direct à la Mémoire ?

accès direct à la mémoire définition

Lorsqu’un périphérique doit transférer des données vers ou depuis la mémoire de son ordinateur hôte, son pilote de périphérique demande un canal DMA au système d’exploitation (OS) de l’hôte.

Une fois le canal DMA attribué, le système d’exploitation et le pilote du périphérique configurent le transfert en fournissant au contrôleur DMA des informations de base telles que l’emplacement de la mémoire, la taille des données et le fait que le transfert s’effectue vers ou depuis la mémoire.

À ce stade, le contrôleur DMA prend le contrôle du processus de transfert et l’unité centrale devient libre d’effectuer d’autres tâches.

Une fois le transfert de données terminé, le contrôleur DMA déclenche une alerte pour informer l’unité centrale et son système d’exploitation que le transfert est terminé.

Le système d’exploitation libère alors le canal DMA et le rend disponible pour une utilisation future par d’autres périphériques.

Types de DMA

Au fil des ans, différents types de DMA ont évolué afin d’optimiser le transfert de données dans diverses situations et en fonction des capacités du matériel.

DMA à transfert unique
Le DMAC déplace une unité de données, puis renvoie le contrôle à l’unité centrale.
Transfert de blocs DMA
Le contrôleur DMA déplace un bloc de données, puis redonne le contrôle à l’unité centrale.
DMA par dispersion
Le DMA transfère des données entre des emplacements de mémoire non contigus en une seule opération.

Modes d’Accès Direct à la Mémoire

Les modes DMA sont des variations ou des réglages au sein d’un type de DMA qui précisent la manière dont le transfert est effectué.

Mode de Transfert en Rafale
Le contrôleur DMA transfère un bloc de données en une seule salve ininterrompue.
Mode de Vol de Cycle
Le DMAC prend le contrôle du bus système pendant de courts intervalles entre les cycles de bus et transfère un octet ou un mot à la fois.
Mode Transparent
Le contrôleur DMA ne transfère des données que lorsque le CPU n’utilise pas le bus.
Mode à la demande
Le contrôleur DMA démarre, arrête et reprend les transferts en fonction de l’état du périphérique.
Mode Fly- By
Une fois que le contrôleur DMA a établi un transfert, le périphérique lit/écrit les données vers/depuis la mémoire directement sans aucune autre assistance du dit contrôleur ou de l’unité centrale.

Principes de l’Accès Direct à la Mémoire

Deux principes généraux ont guidé le développement et l’utilisation de l’accès direct à la mémoire.

  • Minimiser l’implication de l’unité centrale en permettant au contrôleur DMA de devenir temporairement le référent.
  • Inclure des mécanismes qui garantissent que les transferts DMA utilisent efficacement la mémoire et les ressources du système.

Bien que la plupart des systèmes d’exploitation activent le DMA par défaut, il ne s’agit pas d’un principe universel dans la conception du DMA lui-même.

D’une manière générale, cependant, la plupart des utilisateurs d’ordinateurs ont profité des avantages du DMA sans même le savoir.

DMA et RDMA

DMA signifie accès direct à la mémoire et RDMA signifie accès direct à la mémoire à distance. Les deux termes se ressemblent car ils impliquent tous deux un accès direct à la mémoire, mais le DMA est une fonctionnalité standard, alors que le RDMA est encore en évolution.

Concrètement, RDMA a étendu le concept de DMA aux transferts de données entre différents ordinateurs sur un réseau local (LAN) ou un réseau étendu (WAN) qui peut (ou non) inclure des centres de données tiers dans le nuage.

Le DMA utilise un contrôleur dédié pour décharger les interactions continues avec le processeur hôte. RDMA utilise des cartes d’interface réseau (NIC) spéciales pour contourner les CPU des deux systèmes concernés et permettre des transferts de données rapides et à faible latence.

Feature DMA RDMA
Scope Minimiser l’intervention de l’unité centrale lors du transfert de données entre un périphérique et son hôte. Minimiser l’intervention de l’unité centrale lors du transfert de données entre deux ordinateurs différents sur un réseau.
Transfert de données Entre un périphérique et la mémoire de son hôte. Entre les mémoires de différents ordinateurs.
Implication du CPU L’Unité Centrale de l’hôte est libérée pour effectuer d’autres tâches pendant la transmission des données. Les Unités Centrales des ordinateurs émetteurs et récepteurs sont libérées pour effectuer d’autres tâches pendant la transmission des données.
Implication OS Le système d’exploitation initie les transferts DMA, mais le transfert de données proprement dit est géré par le DMAC. Le système d’exploitation initie les transferts DMA, mais le transfert de données proprement dit est géré par des cartes d’interface réseau spéciales.
Exigences en matière de réseau Ne nécessite pas de connexion au réseau. Nécessite une connectivité réseau soutenue par une infrastructure réseau à haut débit.
Complexité Relativement simple à mettre en œuvre avec du matériel courant. Plus complexe ; nécessite des cartes réseau et des commutateurs spéciaux compatibles RDMA.
Maturité Caractéristique standard de l’informatique personnelle. Utilisé pour le calcul à haute performance (HPC) et les centres de données en cloud, mais les protocoles et le matériel évoluent encore.

Avantages et inconvénients de la DMA

La DMA a ses avantages et ses inconvénients, mais en général, les avantages de la DMA l’emportent sur ses inconvénients.

Avantages
  • Facilite les transferts de données plus rapides en éliminant l’implication de l’unité centrale après l’initialisation
  • Permet à l’unité centrale de se concentrer sur d’autres tâches pendant que les données sont transférées en arrière-plan.
  • Permet des transferts de données importants sans ralentir les opérations
Inconvénients
  • Les transferts DMA contournent la mémoire cache du processeur et peuvent entraîner des incohérences entre les données de la mémoire cache et celles de la mémoire principale
  • La DMA peut potentiellement être exploitée par des acteurs menaçants pour obtenir un accès non autorisé à la mémoire du système. Le VPN peut ajouter une couche de sécurité supplémentaire et rendre plus difficile l’exploitation à distance des vulnérabilités du DMA par un attaquant.

Conclusion

Les définitions de l’accès direct à la mémoire comme celle-ci ne sauraient trop insister sur l’importance de minimiser les interruptions de l’unité centrale en transférant le contrôle des transferts de données au contrôleur DMA.

Chaque interruption introduit une surcharge et peut dégrader les performances du système en obligeant l’Unité Centrale à interrompre sa tâche en cours, à sauvegarder son état, à traiter l’interruption, puis à reprendre sa tâche précédente.

En permettant à un contrôleur DMA de transférer directement des données, on élimine le besoin d’interactions continues avec le CPU, ce qui améliore non seulement les vitesses de transfert, mais aussi les performances du système en permettant au CPU d’effectuer d’autres tâches.

FAQ

Qu’est-ce que l’accès direct à la mémoire en termes simples ?

Comment fonctionne un DMA ?

À quoi sert une carte DMA ?

Quels sont les modes de transfert en DMA ?

Quand dois-je utiliser le DMA ?

Quelle est la différence entre DMA et DVMA ?

Termes connexes

Vincent Grethen
Responsable d'édition

Diplômé de l'Ecole de Journalisme de Louvain La Neuve en Belgique, c'est finalement le monde du contenu en ligne qui m'a permis d'assouvir ma passion pour l'écriture. Depuis plus de 10 ans, j'explore divers secteurs, notamment le bien-être, le médical ou encore le tourisme. Cette polyvalence est mon atout majeur pour capter l'attention des lecteurs et des lectrices. Aujourd'hui, ma plume évolue au rythme des innovations, au service des passionnés de technologie, toujours avec le même plaisir de jouer avec les mots.