3.4.5 Dialogue avec l’UC et le contrôleur
Chaque transfert DMA fonctionne avec un cycle dont voici les étapes :
- Lorsqu’un périphérique d’E/S souhaite transférer des données vers ou depuis la mémoire, il envoie une requête DMA (DRQ) au contrôleur DMA.
- Le contrôleur DMA accepte cette DRQ et demande à l’unité centrale d’attendre quelques cycles d’horloge en lui envoyant la demande HOLD.
- L’UC reçoit la demande de maintien (HOLD) du contrôleur DMA, abandonne le bus et envoie l’accusé de réception de maintien (HLDA) au contrôleur DMA
- Après avoir reçu l’accusé de réception de maintien (HLDA), le contrôleur DMA informe le périphérique d’E/S (DACK) que le transfert de données peut être effectué et le contrôleur DMA prend en charge le bus système et transfère les données vers ou depuis la mémoire
- Lorsque le transfert de données est terminé, le DMA déclenche une interruption pour informer le processeur que la tâche de transfert de données est terminée et que le processeur peut reprendre le contrôle du bus et commencer le traitement là où il l’a laissé

Figure 3.7. Dialogue DMAC-UC et DMAC-périphérique