3.4.6 Les modes de transfert

Pour transférer les données d’un bout à l’autre (MC – périphériques), le contrôleur DMA doit avoir le contrôle du bus, mais ce dernier est aussi utilisé par l’UC durant l’exécution d’un programme pour accéder à la MC à son tour.  Cependant le le DMA est prioritaire et sa requête passe en premier. Dès lors, le DMA peur procéder à trois manières :

Ø  Transfert par vol de cycles (à l’amiable) : Elle consiste à freiner le fonctionnement du processeur en prenant des cycles mémoires pendant lesquels le contrôleur DMA transférera de l’information. Il peut demander le contrôle du bus chaque fois qu’il y transfert d’un caractère et le libère à la fin de chaque opération de lecture ou écriture (le DMA monopolise le bus pendant un cycle mémoire). En effet, les contrôleurs DMA sont prioritaires sur le processeur central pour l’accès à la mémoire, car ils doivent réagir rapidement à des événements externes.


Ø  Transfert par block (priorité au DMAC) : Il peut garder le contrôle du bus durant de tout un bloc de caractères et pendant le temps de transfert, l’UC ne peut pas accéder à la MC et reste donc, inactive.

 

Ø  Transfert transparent (priorité à l’UC) : Le DMA n’accède à la MC que quand l’UC est occupé à exécuter des opérations internes.

Quand on parle d’avoir le contrôle du bus, c’est du bus mémoire qu’il est question, seulement dans les ordinateurs on peut trouver un bus unique comme on peut trouver deux bus.

 Exemple : E/S par accès direct mémoire (DMA) : affichage d’un bloc de caractères


Le transfert de données depuis la MC vers un écran se déroule selon les étapes suivantes :

1)      L’UC initialise le contrôleur DMA en lui fournissant les informations nécessaires à l’opération d’E/S.

-        Elle envoi l’adresse de début de la zone mémoire (200) où se trouve le caractère à afficher vers le registre d’adresse mémoire ((RAM)=200).

-        Elle envoie le nombre caractères (64) à afficher ((RCC)=64).

-        Elle envoie l’adresse du périphérique (écran) dans le registre d’adresse périphérique ((RAP)=4).

-        Elle envoie au registre de commande (RC) le code de l’opération exécute, ici, il s’agit d’une opération d’écriture ((RC)=1)).

2)      Le contrôleur DMA remplace le processeur (UC) et se charge complètement de l’opération d’E/S) : il accède eu bus pour transférer le caractère se situant à l’adresse 200 depuis la .

3)      Quand le caractère est disponible dans le contrôleur DMA, ce dernier envoie une demande d‘écriture  au contrôleur du  périphérique (dont l’adresse est 4) et lui transmet le caractère à afficher.

4)      Le DMA incrémente son registre d’adresse mémoire d’une unité pour lire le caractère suivant à partir de la MC (nouvelle adresse = 201) et décrémente son registre compteur de caractère (RCC) d’une unité puisqu’un caractère viens d’être lu.

Quand le registre compteur de caractère est égal à zéro (RCC=0), le DMA envoie une interruption au processeur pour lui signaler la fin de l’opération d’E/S.

Modifié le: vendredi 15 novembre 2024, 18:47