gestion des entrees-sorties

publicité
GESTION DES ENTREES-SORTIES
•
Le
rôle
des
unités
d ’échanges
• L’adressage
et
la
constitution des unités
d ’échanges
• Les modes de transferts :
mode programmé, DMA
Horloge
Joëlle Delacroix-NFA004
Processeur
Central
Bus
Mémoire
Centrale
d'
échange
Interface d’entrées/sorties
1
Périphériques de l’ordinateur
Horloge
Processeur
Central
Bus
d' échange
Mémoire
Centrale
Interface d’entrées/sorties
Un périphérique est un matériel électronique
pouvant être raccordé à un ordinateur par
l'intermédiaire de l'une de ses interfaces d'entréesortie (interface VGA, HDMI, USB, RJ45.), le plus
souvent par l'intermédiaire d'un connecteur.
L’interface d’entrées-sorties est pilotée par un
driver (pilote d’entrées-sorties)
•
On distingue habituellement les catégories de périphériques suivantes :
– périphériques de sortie: ce sont des périphériques permettant à l’ordinateur
d’émettre des informations vers l’extérieur, tels qu'un écran, une imprimante..
– périphériques d'entrée : ce sont des périphériques capables uniquement
d'envoyer des informations à l'ordinateur, par exemple la souris, le clavier, etc.
– périphériques d'entrée-sortie : ce sont des périphériques capables d'envoyer
des informations à l'ordinateur et permettant également à l’ordinateur démettre
des informations vers l’extérieur, par exemple le modem, le disque dur
•
Interfaces
1.
2.
3.
4.
3
USB : connexion « à chaud » de périphériques
RJ45 : connexion au réseau local filaire
VGA : connexion de l’écran
HDMI : connexion à un écran haute résolution
Joëlle Delacroix-NFA004
2
4
4
1
2
L ’unité d ’échange
• Rôle de l ’unité d ’échange
Horlo
ge
Processeur
Central
Mémoire
Cache
Bus
d' échange
Mémoir
e
Central
e
Unité d’échange
• connexion des unités
périphériques au bus
• gestion des échanges entre le
processeur et les périphériques
(adaptation)
• Particularités des unités
d ’échanges
• Constitution et adressage
• Gestion des transferts
Joëlle Delacroix-NFA004
3
L ’unité d ’échange
DONNEES
PORT
de communication
Contrôle/ Synchro
Selon protocole
(série, Parallèle…)
PERIPHERIQUE
Dialogue spécifique
Bus d’entrées/sorties
Interface d’E/S
Format normalisé
CPU
Interface
d’entrées-sorties
USB (contrôleur)
Connecteur USB
 Port de communication :
Voies en entrées et sorties entre UE
et périphériques
Joëlle Delacroix-NFA004
Protocole de
communication USB
4
L ’unité d ’échange
Unité d ’échange
• Un registre de commande dans
lequel le processeur décrit le
travail à effectuer
commande
• Un registre de données qui
contient les mots à échanger
entre le périphérique et la
Transfert Ok ?
mémoire centrale
Prête ?
état
données
• Une registre d ’état qui indique
si l ’unité d ’échange est prête,
si l ’échange s ’est bien déroulé,
etc...
Joëlle Delacroix-NFA004
5
Un exemple d’unité
L’INTERFACE
SER
Réseau
Processeur
Graphique
SCSI
d ’échange
L’UART
Ethernet
PCI/ISA
100 MHZ
Carte parallèle
Bus ISA
8 MHZ
Pont
Carte série
Mémoire
Centrale
Slots d’extension
Bus PCI
33 MHz
Pont PCI
Bus AGP
Processeur
Central
66 MHZ
Horloge
Mémoire Locale
Modem RTC
Réseau
Ports USB
Disques IDE
Joëlle Delacroix-NFA004
6
Un exemple d’unité
d ’échange
L’UART
Processeur
Graphique
SCSI
Ethernet
Connecteurs V 24
Pont
PCI/ISA
Mémoire
Centrale
Ports USB
UART
Protocole RS232
Bus ISA
Bus PCI
Pont PCI
Slots d’extension
Chipset AGP
Processeur
Central
Bus AGP
Horloge
Mémoire Locale
Réseau
RTC
Modem RTC
(ETCD : équipement terminal
de circuit de données)
(ETTD : équipement terminal
de traitement de données)
Joëlle Delacroix-NFA004
7
Un exemple d’unité d ’échange
INTR
L’UART (universal Asynchronous
Receiver Transmitter)
8
1
Valider
Interruptions
Statut ligne
BUS
Donnée reçue
Réception
à décalage
Réception
Logique
d’interruption
1
0
0
1
1001
Logique
communication
1
0
0
1
Ident.
Interruption
1
0
0
1
Diviseur
1001
1
Contrôle ligne
Statut Modem
8
0
RTS
DTR
CTS
DSR
RSLD
RI
Contrôle Modem
Transmission.
100
Transmission
à décalage
Joëlle Delacroix-NFA004
1
Donnée transmise
8
L’unité d ’échange : adressage
Unité d ’échange
A3
CO
RI
AregC
AregE
AregD
commande
état
données
Espace d’adresse des entrées - sorties
C’est le processeur qui charge
les registres de l’UE en fonction
de l’opération d’E/S réalisée 
Il doit adresser les registres des UE
A1
A2
A3
A4
A5
A6
A7
A8
Store D R1 A8
écrire R1 dans registre de données de l’UE
Espace d’adresse de la mémoire centrale
Joëlle Delacroix-NFA004
9
L’unité d ’échange : adressage
• Le processeur peut adresser de deux façons différentes les
registres d’une unité d’échange (espace d’adresses des
entrées-sorties).
• Espace séparé : l’espace d’adresses des entrée-sorties est distinct
de celui de la mémoire centrale. Le processeur désigne grâce à une
ligne de commande du bus à quel espace il s’adresse.
• Espace intégré ou unique : l’espace d’adresses des entrées-orties
est contenu dans celui de la mémoire centrale. Cette zone est
invalide pour le contrôleur de mémoire.
Joëlle Delacroix-NFA004
10
L’unité d ’échange : adressage dans un espace séparé
espace d ’adressage séparé
0
• LOAD D R1 60
• un mot mémoire d’adresse 60
est chargé dans le registre R1
Mots mémoires
Espace
Adresses
mémoire
• IN D R1 60
• un registre d’adresse 60 d ’une
unité d ’échange est chargé
dans R1
200
0
100
Registres des
unités d ’échanges
Espace
 c ’est le type d ’instruction qui
Adresses
distingue l ’espace d ’adressage
Entrées-sorties
concerné
Joëlle Delacroix-NFA004
11
L’unité d ’échange : adressage dans un espace séparé
Bus
de
commandes
in/out
Lecture/Ecriture
Bus
de
données
LOAD D R1 60
Mémoire
RAM
Unité
d'
échange
Bus
d'adresse
60
Joëlle Delacroix-NFA004
12
L’unité d ’échange : adressage dans un espace séparé
Bus
de
commandes
in/out
Lecture/Ecriture
Bus
de
données
• IN D R1 60
Mémoire
RAM
Unité
d'
échange
Bus
d'adresse
60
Joëlle Delacroix-NFA004
13
L’unité d ’échange : adressage dans un espace séparé
• Des instructions
spécifiques d’entréesorties in/out adressent
les unités d’échanges.
IN D R1 X
OUT D R1 X
Le contenu du
registre d’UE
d’adresse X est
placé dans le
registre R1 du
processeur
Le contenu du
registre R1 du
processeur est
placé dans le
registre d’UE
d’adresse X
Joëlle Delacroix-NFA004
14
L’unité d ’échange : adressage dans un espace unique
espace d ’adressage unique
• LOAD D R1 102
0
100
101
• le mot mémoire d’adresse 102
est chargé dans le registre R1
Mots mémoires
300
• LOAD D R1 203
• Le registre d ’une unité
d ’échange d’adresse 203 est
chargé dans R1
200
201
Espace
Adresses
mémoire
Registres des
unités d ’échanges
 c ’est l ’adresse utilisée qui
Espace
Adresses
détermine l ’espace adressé
Entrées-sorties
Joëlle Delacroix-NFA004
15
L’unité d ’échange : adressage dans un espace unique
Bus de commandes
Lecture/Ecriture
Bus
de
données
LOAD D R1 203
Mémoire
RAM
Unité
d'
échange
Bus
d'adresse
203
Joëlle Delacroix-NFA004
16
L’unité d ’échange : adressage dans un espace unique
Bus de commandes
Lecture/Ecriture
Bus
de
données
LOAD D R1 102
Mémoire
RAM
Unité
d'
échange
Bus
d'adresse
102
Joëlle Delacroix-NFA004
17
Adressage Unité d'échange
espace séparé, espace intégré
Espace intégré
Espace séparé
Les mêmes instructions (load/store)
adressent les deux espaces
d’adresses : simplicité de
programmation
Des instructions différentes
adressent les deux espaces
d’adresses :
Load/store mémoire
In/out  entrées/sorties
L’espace d’adresses des entréesorties est limité par celui de la
mémoire centrale. Il impute sur la
taille de l’espace d’adresses de la
mémoire.
L’espace d’adresses des entréessorties n’est pas limité en taille
Si l’espace des adresses mémoire est petit, on préférera un espace séparé
d’entrées-sorties.
Joëlle Delacroix-NFA004
18
GESTION DES ENTREES-SORTIES
• Le rôle des unités d ’échanges
• L ’adressage et la constitution des unités d ’échanges
 Les modes de transferts : mode programmé, DMA
Joëlle Delacroix-NFA004
19
GESTION DES ENTREESSORTIES
On souhaite imprimer N
octets de la mémoire
centrale
 Chaque octet doit être
écrit dans RD, puis être
envoyé à l’imprimante
par l’UE
Mémoire centrale
CPU
N octets
RD libre ?
1. Mettre octet dans RD; RD libre, N fois
UE
RD libre
non
UE
RD
2. Transférer RD dans
l’imprimante;
3. Libérer RD
oui
Mettre octet
dans RD
RD occupé
Ecrire octet sur
IMP
RD libre
Joëlle Delacroix-NFA004
20
GESTION DES ENTREES-SORTIES
Système d’exploitation
Programme utilisateur
Pilote (driver)
Début
Char buf (1..n)
Imprimer ()
Imprimer (buf, n octets)
CPU
(logiciel)
Tester()
fin
Mémoire centrale
UE
RD
N octets
(matériel)
Joëlle Delacroix-NFA004
21
GESTION DES ENTREES-SORTIES
• Pilote d’entrées-sorties : c’est un programme du système
d’exploitation qui gère l’unité d’échange.
• Chaque unité d’échange a son propre pilote (driver).
• Un programme utilisateur faut appel au pilote pour utiliser
un périphérique.
• Les opérations réalisées par le pilote divergent en
fonction du mode d’entrées-sorties utilisé (programmés,
avec interruptions, avec DMA)
Joëlle Delacroix-NFA004
22
Le mode d’entrées-sorties programmé
• Par défaut, une unité d'échange :
• ne sait pas accéder à la
mémoire centrale
• ne sait pas délivrer son état
commande
Prête ?
état
Transfert Ok ?
données
Unité d’échange
1. Le processeur doit lire
chaque mot depuis la mémoire
centrale et le placer dans RD
(ou vice versa)
2. Le processeur doit scruter le
registre RE pour savoir si
l'unité d'échange est prête
pour un nouveau transfert
Joëlle Delacroix-NFA004
23
Le mode programmé
Mémoire centrale , pilote d’E/S
Tant que les N octets ne sont pas transférés
Tant que UE non prête (bit P de RE)
attendre
fin tant que
transférer l’octet suivant dans RD
fin tant que
CPU
Test du bit P de RE
RD libre
?
RE
UE
P
RD
•
Traitement des entréessorties
• le CPU gère l'entréesortie par scrutation de
L'UE
• le CPU est complètement
occupé par l'entréesortie.
Joëlle Delacroix-NFA004
non
oui
Mettre octet
dans RD
RD occupé
Ecrire octet sur
IMP
RD libre
24
Le mode programmé
Pg utilisateur
pilote
Imprimer (buf, 2 octets)
RE prêt
RE non prêt
RE prêt
RE non prêt
1 octet -> RD
attente
1 octet -> RD
attente
Scrutation
de RE
RD
RE
prêt
RD
RE
cpu
Scrutation
de RE
RD
RE
octet
non prêt
prêt
RD
octet
RE non prêt
UE
prêt
prêt
non prêt
Écriture octet
imprimante
Joëlle Delacroix-NFA004
Écriture octet
imprimante
25
Le mode d’entrées-sorties avec interruptions
• Par défaut, une unité d'échange :
• ne sait pas délivrer son état
commande
Prête ?
état
Transfert Ok ?
données
 Le processeur doit scruter le
registre RE pour savoir si l'unité
d'échange est prête pour un
nouveau transfert
 Il faut ajouter un mécanisme qui
permette à l‘UE de signaler son
état par elle même : les
interruptions
Unité d’échange
Joëlle Delacroix-NFA004
26
Le mode d’entrées-sorties avec interruptions
Numéro
1
2
3
4
CPU
Mémoire centrale
IRQ numéro
UE
p
RE
UE
adresse
1000
1100
1500
2000
Une interruption est un signal asynchrone
pouvant être émis par tout dispositif
externe au processeur, qui interrompt le
travail courant du processeur pour forcer
l'exécution d'un programme traitant la
cause de l'interruption : la routine d'interruption
Joëlle Delacroix-NFA004
27
Le mode d’entréessorties avec
interruptions
Mémoire centrale
Sous_Programme d'IRQ_UE :
transférer donnée_suivante dans RD
RTI
Pilote d’Entrées-sorties :
Vérifier UE prête;
Transférer première_donnée dans RD;
CPU
RD libre
?
RE
non
RD
• Traitement des entrées-sorties
 L'UE délivre une interruption
pour signaler qu'elle est prête : le
processeur ne fait plus de
scrutation du registre d’état
Joëlle Delacroix-NFA004
oui
Mettre octet
dans RD
RD libre
UE
IRQ
RD occupé
Ecrire octet sur
IMP
RD libre
28
Pg utilisateur
Le mode d’entréessorties avec interruptions
pilote
Routine
IRQ
Imprimer (buf, 2 octets)
cpu
RE prêt
1 octet -> RD
RE prêt
Fin e/s
RE prêt
1 octet -> RD
actif
inactif
irq
RD
RE
prêt
RD
RE
RD
RE
octet
non prêt
irq
prêt
RD
octet
RE non prêt
UE
prêt
prêt
non prêt
Écriture octet
imprimante
Joëlle Delacroix-NFA004
Écriture octet
imprimante
29
Le mode d’entrées-sorties avec DMA
• Par défaut, une unité d'échange :
•
commande
Prête ?
état
Transfert Ok ?
données
ne sait pas accéder à la mémoire
centrale
 Le processeur doit lire chaque
mot depuis la mémoire centrale et
le placer dans RD (ou vice versa)
 Il faut permettre à L'UE d’accéder
à la mémoire centrale sans
recourir au processeur : le DMA
(DIRECT MEMORY ACCESS)
Unité d’échange
Joëlle Delacroix-NFA004
30
Le mode d’entrées-sorties avec DMA
•
Le DMA est un contrôleur d’entrées-sorties qui permet
aux unités d’échanges d’accéder à la mémoire
centrale sans intervention du processeur.
•
Les dispositifs gérés par le DMA sur un PC sont entre
autres :
• Le contrôleur de disquettes (canal DMA2)
• Les contrôleurs de disques durs (canal DMA6)
• La carte son (canal DMA1)
• Le port parallèle (imprimante) (canal DMA3)
•
DMA3
DMA2
Contrôleur
DMA
Chaque dispositif utilise un canal DMA identifié par
une adresse de début et une adresse de fin en
mémoire centrale qui désigne la zone en MC
accessible pour le transfert.
UE
•
Mémoire
centrale
UE
Le contrôleur DMA d’un PC gère 8 canaux DMA.
Joëlle Delacroix-NFA004
31
Le mode d’entréessorties avec DMA
Sous_Programme d'IRQ_DMA :
Vérification transfert OK
RTI
Pilote d’entrées-sorties :
Initialiser DMA :
nb = nombre d'octets à transférer
@m = adresse premier octet en MC
sens = écriture;
@p = adresse périphérique
CPU
Lancer DMA
DMA
UE
nb
sens
@p
@m
p
RE
•
Traitement des entrées-sorties
• le processeur (pilote) initialise le DMA
• le DMA effectue l'entrée/sortie;
• le DMA signale la fin d'entrée-sortie par
une IRQ
Joëlle Delacroix-NFA004
32
Le mode d’entréessorties avec DMA
Pg utilisateur
pilote
Routine
IRQ
Imprimer (buf, 2 octets)
RE prêt
Fin e/s
Init DMA
Lancer DMA
irq
RD
RE
prêt
RD
RE
RD
RE
octet
non prêt
prêt
RD
octet
RE non prêt
Écriture octet
imprimante
Joëlle Delacroix-NFA004
actif
cpu
inactif
actif
DMA
inactif
prêt
prêt
UE
non prêt
Écriture octet
imprimante
33
Le mode d’entrées-sorties avec DMA
Joëlle Delacroix-NFA004
34
Le mode d’entrées-sorties avec DMA
• DMA et processeur sont en concurrence pour l’accès au
bus et à la mémoire centrale.
 Un seul dispositif peut être à un moment donné maître du bus et
y initialiser un transfert avec la mémoire (esclave)
cpu
bus
DMA
Le maître initie le transfert sur le bus
L’esclave répond aux sollicitations du maître
Mémoire
centrale
 Transfert en mode bloc (burst, rafale)
 Transfert en mode vol de cycle
Joëlle Delacroix-NFA004
35
Entrées-sorties avec DMA : mode rafale
•
Le DMA opère le transfert des n octets en une seule séquence
ininterrompue.


Durant ce transfert, le DMA est maître du bus.
Le processeur est « suspendu » durant la totalité du transfert.
Le DMA force l’accès au bus (REQ_DMA)
Le CPU acquitte la demande (ACQ_DMA) et se place dans un état
de suspension
III. Le DMA réalise le transfert. A la fin du transfert, il relâche le bus
(REQ_DMA)
IV. Le processeur quitte l’état suspendu, relâche ACQ_DMA.
V. Le DMA envoie une IRQ.
I.
II.
cpu
DMA
REQ_DMA / ACQ_DMA
INTR
bus
Joëlle Delacroix-NFA004
36
I.
II.
III.
IV.
V.
Le DMA force l’accès au bus (REQ_DMA)
Le CPU acquitte la demande (ACQ_DMA) et se place dans
un état de suspension
Le DMA réalise le transfert. A la fin du transfert, il relâche le
bus (REQ_DMA)
Le processeur quitte l’état suspendu, relâche ACQ_DMA.
Le DMA envoie une IRQ.
Le mode avec DMA
(burst mode)
Pg utilisateur
pilote
Routine
IRQ
Imprimer (buf, 2 octets)
I. REQ_DMA
II. ACQ_DMA
Init DMA
Lancer DMA
III. REQ_DMA
IV. ACQ_DMA
RE prêt
Fin e/s
II. État suspendu
III. Transfert
RD
RE
prêt
RD
RE
RD
RE
octet
non prêt
prêt
V. irq
RD
octet
RE non prêt
Écriture octet
imprimante
Joëlle Delacroix-NFA004
prêt
actif
cpu
inactif
actif
DMA
inactif
prêt
UE
non prêt
Écriture octet
imprimante
37
Entrées-sorties avec DMA : mode vol de cycle
• Le DMA opère le transfert des n octets octet par octet.
 Il « vole » des cycles d’accès au bus pour transférer chaque octet.
 Le processeur est « suspendu » durant le transfert d’un octet
 Processeur et DMA se partagent l’accès au bus durant le transfert des n
octets.
Joëlle Delacroix-NFA004
38
Le mode avec DMA
(vol de cycle)
Pg utilisateur
pilote
Imprimer (buf, 2 octets)
Routine
IRQ
III. REQ_DMA
IV. ACQ_DMA
I. REQ_DMA
II. ACQ_DMA
RE prêt
Fin e/s
Init DMA
Lancer DMA
État suspendu
État suspendu
irq
RD
RE
prêt
RD
RE
RD
RE
octet
non prêt
prêt
RD
octet
RE non prêt
Écriture octet
imprimante
Joëlle Delacroix-NFA004
actif
cpu
inactif
actif
DMA
inactif
prêt
prêt
UE
non prêt
Écriture octet
imprimante
39
Pg utilisateur
Le mode avec DMA
(vol de cycle)
pilote
Routine
IRQ
III. REQ_DMA
IV. ACQ_DMA
I. REQ_DMA
II. ACQ_DMA
Imprimer (buf, 2 octets)
Pg utilisateur
RE prêt
Fin e/s
Init DMA
Lancer DMA
État suspendu
État suspendu
irq
RD
RE
prêt
RD
RE
RD
RE
octet
non prêt
prêt
RD
octet
RE non prêt
Écriture octet
imprimante
Joëlle Delacroix-NFA004
actif
cpu
inactif
actif
DMA
inactif
prêt
prêt
UE
non prêt
Écriture octet
imprimante
40
Téléchargement