26. entrée sorties Flashcards
Prenons un exemple très courant, soit la copie d’un bloc de
données provenant d’un périphérique (ex: le disque dur)
vers la RAM.
* Le transfert est divisé en deux étapes principales
- La requête: le micro-processeur informe le contrôleur de
périphérique qu’il aura besoin d’un bloc de données.
* Les données doivent être transférées du périphérique vers la mémoire
tampon de son contrôleur. Ce transfert est géré par le contrôleur.
* Cela peut prendre du temps! - Le transfert: lorsque le périphérique est prêt, les données sont
ensuite copiées du contrôleur de périphérique (mémoire
tampon) vers la RAM.
Il existe trois techniques principales pour effectuer
un tel transfert
E/S programmées;
* E/S avec interruptions;
* le Direct Memory Access (DMA).
Entrées-sorties programmées étapes
- Le CPU fait une requête au module d’E-S
Le module procède alors au transfert des
données du périphérique vers sa mémoire
tampon - Le CPU interroge le module d’E-S pour
savoir si le transfert est terminé.
Tant que le transfert n’est pas terminé,
le module répond « non »
et le CPU l’interroge à nouveau - Quand les données sont (enfin!) prêtes,
le CPU procède au transfert des données
vers la RAM avec des LDR/STR.
Entrées-sorties programmées +/-
- Avantage?
- C’est simple. Pas besoin de mécanisme
supplémentaire autre que les bus que nous avons déjà. - Désavantage?
- C’est inefficace.
- Le micro-processeur est utilisé pour interroger le
périphérique alors qu’il pourrait faire autre chose pendant ce
temps. - Le microprocesseur doit gérer le transfert de données luimême:
il ne peut faire autre chose durant ce temps.
Entrées-Sorties par interruptions
Plutôt que d’interroger le module d’E-S
constamment, il émet une interruption lorsqu’il est
prêt à effectuer le transfert en RAM.
* Pendant ce temps, le microprocesseur peut faire
autre chose plutôt que de l’interroger constamment!
Entrées-Sorties par interruptions étapes
- Le CPU fait une requête au module d’E-S. Le module procède alors au transfert des
données du périphérique vers sa mémoire
tampon. Le processus ayant effectué la requête est
placé dans l’état bloqué. L’ordonnanceur
sélectionne un autre processus à exécuter. - Quand les données sont (enfin!) prêtes,
le module d’E-S soulève une interruption IRQ.
Le système d’exploitation place le processus
ayant effectué la requête dans l’état prêt - Le CPU procède au transfert des données
vers la RAM avec des LDR/STR
Entrées-Sorties par interruptions +/-
Avantages
* Plus efficace. Plus besoin d’attendre après le
périphérique, c’est lui qui dit au microprocesseur
quand il est prêt
- Désavantages?
- Plus complexe. Nécessite des circuits et mécanismes
supplémentaires pour gérer les interruptions. - Transfert inefficace. Le microprocesseur doit gérer le
transfert de données lui-même: il ne peut faire autre
chose durant ce temps.
Direct Memory Access (DMA) étapes
- Le CPU fait une requête au
module d’E-S. - Le module procède alors au
transfert des données
du périphérique vers
sa mémoire tampon.
Le processus ayant effectué la
requête est placé
dans l’état bloqué.
L’ordonnanceur sélectionne un
autre processus à exécuter - Quand les données sont
(enfin!) prêtes, le module
informe le contrôleur DMA que
les données sont prêtes - Le contrôleur DMA demande
au microprocesseur de lui
céder le contrôle des bus - S’il n’en a pas besoin,
le microprocesseur
se déconnecte des bus et
répond au contrôleur DMA. - Le contrôleur DMA démarre
le transfert entre
le module d’E-S et la mémoire.
Pendant ce temps, le CPU peut
faire autre chose!
c’est quoi DMA
transfert de données direct entre un
périphérique et la mémoire ou vice versa, effectué sans intervention du
microprocesseur
Le contrôleur de DMA est
un circuit intégré qui gère le transfert par DMA
Le transfert par DMA se fait par
bloc de données, les données étant à des
adresses contigües de la mémoire et provenant habituellement du même
périphérique
DMA +/-
- Avantages
- Beaucoup plus efficace. Le microprocesseur n’a pas à
attendre après le périphérique, et n’a pas à gérer le
transfert mémoire. - Désavantages?
- Plus complexe. Nécessite une communication entre le
CPU et le contrôleur de DMA.
Les transferts par DMA sont configurés par des instructions exécutées par le
microprocesseur. Habituellement, le microprocesseur configure le transfert
de DMA en exécutant ces instructions. Au minimum, les instructions
indiquent: x3
- Le périphérique visé
- La plage de mémoire visée (l’adresse de départ et le nombre de données à
transférer) - La vitesse de transfert, la taille des données transférées et le mode de transfert.
- Le mode de transfert est la façon dont sera déclenchée le transfert. Seul le mode de
transfert “unique”—un seul bloc de données—sera vu dans le cadre du cours.
Une fois la configuration effectuée, le transfert par DMA débute
automatiquement lors
d’un signal de périphérique ou lorsque le
microprocesseur exécute une instruction initiant le transfert
Lors de l’initialisation d’un transfert par DMA, le contrôleur de DMA négocie
l’accès au bus de données avec le microprocesseur