Direct Memory Access (DMA) pour accès direct à la mémoire est comme son nom l’indique un mode qui permet d’accéder directement à la mémoire centrale d’un ordinateur.
Comme son nom l’indique, dans un ordinateur, le DMA facilite le transfert de données entre les E/S et la mémoire directement, au lieu d’impliquer le CPU comme dans les deux autres cas de transfert de données E/S.
Dans ce guide, je vous explique c’est qu’est Direct Memory Access, quel est sont intérêt et les modes de DMA qui existent.
Qu’est-ce Direct Memory Access (DMA)
L’accès direct à la mémoire (DMA) est un processus de transfert de données d’un emplacement de mémoire à un autre sans l’intervention directe du processeur (CPU).
Le principal avantage de l’utilisation du DMA est un mouvement de données plus efficace dans le système embarqué.
Il permet donc d’accélérer le processus d’exécution en contrôlant le transfert des données d’entrée/sortie sans faire intervenir l’unité centrale. La tâche est accomplie en utilisant le contrôleur DMA.
Un autre avantage peut être la réduction de la consommation d’énergie. Les deux méthodes les plus courantes pour transférer des données sans utiliser le DMA sont les suivantes :
- basé sur des interruptions – une interruption est générée lorsqu’une nouvelle donnée est disponible et que l’unité centrale doit la transférer
- polling – l’unité centrale attend qu’une nouvelle donnée soit disponible et la transfère.
Ces deux méthodes exigent que l’unité centrale soit en éveil. En revanche, certains contrôleurs DMA peuvent effectuer des transferts de données lorsque l’unité centrale est en mode veille (mode basse consommation).
L’accès direct à la mémoire : comment ça marche
L’unité fonctionnelle qui effectue les opérations d’accès direct à la mémoire est appelée contrôleur DMA.
Le schéma fonctionnel simplifié ci-dessous présente une unité centrale, une mémoire vive, une unité périphérique et un contrôleur DMA. Tous ces éléments, à l’exception de l’unité périphérique, sont connectés sur le même bus.
Comme l’unité centrale et le contrôleur DMA doivent être en mesure d’initier des transferts, ils disposent d’interfaces maîtres. Bien que l’objectif soit d’avoir un DMA qui fonctionne de manière indépendante, c’est l’unité centrale qui doit configurer le contrôleur DMA pour qu’il effectue les transferts.
Le contrôleur DMA peut être dédié à une unité périphérique spécifique compatible DMA (comme ci-dessous) ou peut être un DMA plus général capable d’accéder à différents types de périphériques en mémoire.
Le DMA ou contrôleur d’accès direct à la mémoire est un dispositif externe qui contrôle le transfert de données entre le dispositif d’E/S et la mémoire sans l’intervention du processeur. Il a la capacité d’accéder directement à la mémoire principale pour des opérations de lecture ou d’écriture.
Un contrôleur DMA peut adresser directement la mémoire ou utiliser une mémoire tampon partagée avec le système.
Il transfère les données avec une intervention minimale du processeur. Lorsque le contrôleur DMA reçoit les informations, le DMA démarre et continue à transférer des données entre la mémoire et les périphériques d’E/S jusqu’à ce qu’un bloc entier soit transféré. Lorsque la tâche assignée au DMA est terminée, il informe l’unité centrale de la fin de la tâche.
Les types de transferts
Les modes de transfert de données concernent la manière dont l’unité centrale acquiert le bus système pour son activité.
Le contrôleur DMA prend en charge les deux modes de transfert suivants :
- Transfert en rafale – L’ensemble des données est transféré en continu sans interruption. Le contrôle du bus est rendu à l’unité centrale lorsque l’ensemble des données a été transféré. L’inconvénient de ce transfert est que si l’unité centrale a besoin de données de la mémoire pendant ce temps, elle doit attendre que le transfert soit terminé.
- Transfert à cycle fractionné – Le contrôle du bus est rendu périodiquement à l’unité centrale. Le transfert de données ne se fait pas en continu. L’avantage est que l’unité centrale ne reste pas inactive pendant un certain temps, en attendant les données de la mémoire.
Le DMA peut être configuré en 3 modes :
- De mémoire à mémoire
- Périphérique vers mémoire
- Mémoire vers périphérique
Quels sont les modes de DMA
Il existe différents modes de DMA selon le débit et le nombre de pages mémoires utilisées.
Mode | Débit maximum Nombre de pages | |
---|---|---|
N° | Nom | Mo/s |
0 | transfert simple (interleaving mode) | 4,16 |
1 | transfert de blocs (burst mode) | 13,3 |
2 | transfert en cascade | 16,6 |
3 | Ultra DMA 33 | 33,3 |
4 | Ultra DMA 66 | 66,7 |
5 | Ultra DMA 100 | 100,0 |
6 | Ultra DMA 133 | 133,3 |
Source : https://fr.wikipedia.org/wiki/Acc%C3%A8s_direct_%C3%A0_la_m%C3%A9moire
Liens
- BIOS : Rôle et le fonctionnement
- Carte mère : définition, composants et comment les choisir
- Processeur CPU et coeurs : Caractéristiques et fonctionnement
- La carte graphique et le GPU, mémoire VRAM : définition et fonctionnement
- La mémoire RAM : qu’est-ce que c’est et à quoi cela sert ?
- Qu’est-ce que le PCI Express (PCIe/PCI-E)
- Chipset northbridge et southbridge, PCH, FCH : rôle et définition
- ACPI (Advanced Configuration and Power Interface)
- APM (Advanced Power Management)
- Les composants hardware et matériel d’un PC : Le dossier
- Connaitre le matériel de son PC : le dossier
L’article Direct Memory Access (DMA) est apparu en premier sur malekal.com.
0 Commentaires