Menu

Echange direct avec la mémoire

Ce mode permet le transfert de blocs de données entre la mémoire et un périphérique sans passer par le microprocesseur. Pour cela, un circuit appelé contrôleur de DMA (Direct Memory Access) prend en charge les différentes opérations.

Le DMA se charge entièrement du transfert d’un bloc de données. Le microprocesseur doit tout de même :

initialiser l’échange en donnant au DMA l’identification du périphérique concerné donner le sens du transfert

fournir l’adresse du premier et du dernier mot concernés par le transfert Un contrôleur de DMA est doté d’un registre d’adresse, d’un registre de donnée, d’un compteur et d’un dispositif de commande (logique câblée). Pour chaque mot échangée, le DMA demande au microprocesseur le contrôle du bus, effectue la lecture ou l'écriture mémoire à l'adresse contenue dans son registre et libère le bus. Il incrémente ensuite cette adresse et décrémente son compteur. Lorsque le compteur atteint zéro, le dispositif informe le processeur de la fin du transfert par une ligne d'interruption.

Le principal avantage est que pendant toute la durée du transfert, le processeur est libre d'effectuer un traitement quelconque. La seule contrainte est une limitation de ses propres accès mémoire pendant toute la durée de l'opération, puisqu'il doit parfois retarder certains de ses accès pour permettre au dispositif d'accès direct à la mémoire d'effectuer les siens : il y a apparition de vols de cycle.

En savoir plus...

Interruption

Une interruption est un signal, généralement asynchrone au programme en cours, pouvant être émis par tout dispositif externe au microprocesseur. Le microprocesseur possède une ou plusieurs entrées réservées à cet effet. Sous réserve de certaines conditions, elle peut interrompre le travail courant du microprocesseur pour forcer l’exécution d’un programme traitant la cause de l’interruption.

Dans un échange de données par interruption, le microprocesseur exécute donc son programme principal jusqu’à ce qu’il reçoive un signal sur sa ligne de requête d’interruption. Il se charge alors d’effectuer le transfert de données entre l’interface et la mémoire. Principe de fonctionnement d’une interruption :

Avant chaque exécution d’instructions, le microprocesseur examine si il y a eu une requête sur sa ligne d’interruption. Si c’est le cas, il interrompt toutes ces activités et sauvegarde l’état présent

(registres, PC, accumulateurs, registre d’état) dans un registre particulier appelé pile. Les données y sont ‘’entassées’’ comme on empile des livres (la première donnée sauvegardée sera donc la dernière à être restituée). Ensuite, il exécute le programme d’interruption puis restitue l’état sauvegardé avant de reprendre le programme principale. Remarques :

Certaine source d’interruption possède leur propre autorisation de fonctionnement sous la forme d’un bit à positionner, on l’appelle le masque d’interruption. On peut donc interdire ou autoriser certaines sources d’interruptions, on les appelle les interruptions masquables.

Chaque source d’interruption possède un vecteur d’interruption où est sauvegardé l’adresse de départ du programme à exécuter.

Les interruptions sont classées par ordre de priorité. Dans le cas où plusieurs interruptions se présentent en même temps, le microprocesseur traite d’abord celle avec la priorité la plus élevée.

En savoir plus...

Scrutation

Dans la version la plus rudimentaire, le microprocesseur interroge l’interface pour savoir si des transferts sont prêts. Tant que des transferts ne sont pas prêts, le microprocesseur attend.

L’inconvénient majeur est que le microprocesseur se retrouve souvent en phase d’attente. Il est complètement occupé par l’interface d’entrée/sortie. De plus, l’initiative de l’échange de données est dépendante du programme exécuté par le microprocesseur. Il peut donc arriver que des requêtes d’échange ne soient pas traitées immédiatement car le microprocesseur ne se trouve pas encore dans la boucle de scrutation. Ce type d’échange est très lent.

En savoir plus...

Techniques d’échange de données

Avant d’envoyer ou de recevoir des informations, le microprocesseur doit connaître l’état du
périphérique. En effet, le microprocesseur doit savoir si un périphérique est prêt à recevoir ou à
transmettre une information pour que la transmission se fasse correctement. Il existe 2 modes
d’échange d’information :

  • Le mode programmé par scrutation ou interruption où le microprocesseur sert

d’intermédiaire entre la mémoire et le périphérique

  • Le mode en accès direct à la mémoire (DMA) où le microprocesseur ne se charge

pas de l’échange de données.

En savoir plus...

Constitution

Pour cela, l’interface est constituée par : Un registre de commande dans lequel le processeur décrit le travail à effectuer (sens de transfert, mode de transfert). Un ou plusieurs registres de données qui contiennent les mots à échanger entre le périphérique et la mémoire Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est bien déroulé, etc… On accède aux données de l’interface par le biais d’un espace d’adresses d’entrées/sorties.

En savoir plus...
S'abonner à ce flux RSS

Besoin d’avis?

Demandez maintenant un examen gratuit et sans engagement de votre site web.
Nous faisons un examen élaboré, et nous effectuons un rapport SEO avec des conseils
pour l’amélioration, la trouvabilité et la conversion de votre site web.

Audit SEO