ESIL/Dépt Informatique – 05/06 fiche E/S Projet Logiciel de base
4/4
5. Coût du contrôle des E/S : E/S par interruptions ou E/S par polling ?
Exercice 1 : coût des E/S par polling
Supposons qu’un processeur avec une fréquence d’horloge de 1 GHz mette 400 cycles à chaque fois qu’il consulte un
périphérique (accès aux registres de contrôle et de données du périphérique, et retour au programme appelant).
Calculer le pourcentage du temps CPU utilisé pour contrôler par polling chacun des 3 périphériques suivants :
- a) une souris que l’on doit scruter au moins 30 fois par seconde (pour ne pas manquer des mouvements de la souris).
- b) un lecteur de disquettes: les données sont transférées par blocs de 2 octets à une vitesse de 50 KO par seconde ; et
évidemment, aucune donnée ne doit être perdue.
- c) un disque dur : les données sont transférées par blocs de 16 octets, à une vitesse de 8 MO/seconde. Aucune donnée ne
doit être perdue.
Exercice 2 : coût des E/S par interruptions
Considérons le processeur de l’exercice 1 qui contrôle le même disque dur cette fois-ci par interruptions. Supposons que
chaque transfert prend 500 cycles (transfert et traitement de l’interruption). Calculer le pourcentage du temps CPU utilisé
pour contrôler le disque dur si ce dernier est actif :
- a) tout le temps
- b) seulement 10% du temps
6. E/S par DMA (Direct Memory Access)
Dans le mode de communication entre les périphériques et le processeur décrit ci-dessus, c’est le processeur qui réalise le
transfert des données entre la mémoire et le périphérique. Comme le montrent les exemples des exercices 1 et 2, ceci a souvent
un coût inacceptable notamment si le périphérique est rapide ou si le système est multi-utilisateurs.
Dans le cas des périphériques rapides (ex. disque dur) le transfert se fait par de blocs de grande taille. Pour améliorer les
performances du système on décharge le processeur du transfert des données entre le périphérique et la mémoire en le confiant
à un circuit contrôleur d’E/S qui accède directement à la mémoire. On parle de contrôleur DMA (Direct Memory Access). On
a 3 étapes dans le contrôle des E/S par DMA :
-1) le CPU initialise le DMA en donnant l’identité du dispositif d’E/S, l’opération à réaliser (entrée ou sortie), et l’adresse
mémoire (destination ou source) .
-2) le contrôleur commence l’opération sur le dispositif d’E/S et utilise le bus en mode DMA (en concurrence avec le
processeur). Un buffer dans le contrôleur est souvent nécessaire pour masquer les délais introduits par l’attente du bus
mémoire.
-3) Lorsque le transfert d’un bloc est terminé, le contrôleur interrompt le processeur. Dans le « traitement » de l’interruption, le
processeur peut « interroger » le contrôleur pour avoir le compte rendu de l’opération.
Exercice 3 : coût du contrôle des E/S par DMA
Reprendre l’exercice 2 dans le cas où le disque dur est contrôlé par un contrôleur DMA qui réalise des transferts par
blocs de 4 K octets. On supposera que l’initialisation du contrôleur prend 1000 cycles, et que le traitement de
l’interruption d’E/S prend 500 cycles. On négligera les conflits d’accès au bus entre le processeur et le contrôleur.
Exercice 4 : DMA et mémoire virtuelle – DMA et cache
a) Décrire les problèmes qui se posent pour implanter un contrôleur d’E/S fonctionnant en mode DMA dans un système
muni d’une mémoire virtuelle (le DMA utilise-t-il des adresses physiques ou des adresses virtuelles ?). Imaginer des
solutions à ces problèmes.
b) Décrire les problèmes qui se posent pour implanter un contrôleur DMA dans un système où le CPU accède à la mémoire
via un cache. Comment peut-on résoudre ces problèmes ?
Annexe : Vitesse des dispositifs d’E/S
Le tableau ci-dessous donne quelques vitesses types des principales dispositifs d’E/S. De la souris au Gigabit LAN , on a un
rapport de 1 à 100-millions.
dispositif comportement partenaire Vitesse (K Octets/s)
clavier entrée humain 0,01
souris entrée humain 0,02
haut parleur sortie humain 5,00
disquette stockage machine 50,00
imprimante laser sortie humain 100,00
disque magnétique stockage machine 10 000
réseaux sans fil E ou S machine 10 000
Ecran graphique sortie humain 30 000
Réseau local (wired LAN) E ou S machine 1 000 000