Vous êtes sur la page 1sur 54

Fonctionnement du processeur :

exécution des instructions machine

RUPTURE DE PROGRAMME : les


INTERRUPTIONS
Joëlle Delacroix - NFA004 1
Notion d’interruptions
• L’exécution d’un programme s’effectue instruction après instruction.
 Une interruption est un mécanisme permettant de stopper
l’exécution du programme en cours afin d’aller exécuter une
tâche jugée plus prioritaire.
 Une interruption permet de signaler un événement survenu sur
la machine et d’exécuter un traitement spécifique (programme
de service ou routine d’interruption) lié à cet événement .

Elle travaille
DRING !
Elle répond Elle reprend son
au téléphone travail
Joëlle Delacroix - NFA004 2
Notion d’interruptions
• Une interruption est un mécanisme permettant de stopper
l’exécution du programme en cours afin d’aller exécuter une
tâche jugée plus prioritaire.
• Elle est caractérisée par un numéro et un traitement associé
(la routine ou traitant d’interruption - ISR - Interrupt Service
Routine)
On distingue principalement deux types d’événements :
Les interruptions externes ou matérielles sont émises
par les périphériques du processeur (fin d’écriture
disques, plus de papier imprimante…). Ce sont les IRQs.

Les interruptions internes ou logicielles sont émises par


le processeur lui-même lorsqu’il rencontre une erreur
dans l’exécution du programme (division par zéro,
accès mémoire illégal). Ce sont les trappes.
Joëlle Delacroix - NFA004 3
Notion d’interruptions
• Une interruption est un mécanisme permettant de stopper
l’exécution du programme en cours afin d’aller exécuter une
tâche jugée plus prioritaire.
• Elle évite au processeur de scruter les périphériques
Y-a-t-il le feu chez vous ?

Événement
Il y a le feu

As tu une donnée ?

Événement
IRQ 1
J’ai une donnée

SCRUTATION : Toutes les 5 minutes INTERRUPTION : quand l’événement survient


Joëlle Delacroix - NFA004 4
Mécanisme des interruptions
CPU INT

non oui
IRQ Int ?

UE Acquittement
Identification IRQ
Traitement
Traitement
instruction
de
l'interruption

Un périphérique signale un événement


au processeur en émettant une interruption
matérielle.
Le processeur teste sa ligne d’entrée d’interruption (INT) avant de commencer
le traitement de l’instruction suivante du programme qu’il exécute.
Joëlle Delacroix - NFA004 5
Les interruptions
Mémoire centrale
Numéro adresse
1 1000
INT 2 1100
CPU 3 1500
4 2000
INTA

IRQ numéro

1. L'UE envoie un signal d'interruption : INT


UE 2. Le CPU acquitte avec le signal INTA
3. L'UE transmet un numéro d'interruption.

Ce numéro indexe une table en mémoire centrale


le vecteur d'interruption, qui pour chaque numéro
d’interruption donne l'adresse de la routine
associée en mémoire centrale.
Joëlle Delacroix - NFA004 6
Table des vecteurs

Les Interruptions d'interruptions


(adresse 00000)
IRQ 3 0017

0017 traitant IRQ3

CO 1002 Programme

Programme

1002

Latence
Interruption Traitant d'IRQ n°3
n°3 CO <-- 0017
0017
Traitement IRQ

1002
CO <-- 1002
 La table des vecteurs d’interruptions
est à l’adresse 00000 sur un pc; Elle
occupe 1 Ko (256 entrées de 4 octets)
Joëlle Delacroix - NFA004 7
Processeur (Brochage)
Alimentation

Numéro IRQ
Vcc D0
et masse GND D1
D2

Données
INT D3
INTA D4
A0
D5

Microprocesseur
A1
A2 D6
A3 D7
A4 Read
Adresses

A5 Write
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15 Entrée horloge
ou cristal
Joëlle Delacroix - NFA004 8
Hiérarchisation des interruptions
• Le processeur dispose d’une seule broche INT pour recevoir les
interruptions.

• Que faire :
– Si deux interruptions arrivent en même temps ?
– Si une interruption survient durant le traitement d’une autre
interruption ?

• On introduit une notion de priorité (niveau) entre interruptions.


Les interruptions sont dites hiérarchisées.
– Exemple : 8 niveaux
Niveau 0 1 2 3 4 5 6 7
Plus forte priorité Plus faible priorité

Joëlle Delacroix - NFA004 9


Hiérarchisation des interruptions
• Le processeur dispose d’une seule broche INT pour recevoir les
interruptions.

• Que faire :
– Si deux interruptions arrivent en même temps ?
• On traite d’abord la plus prioritaire
– Si une interruption survient durant le traitement d’une autre
interruption ?
• Elle interrompt le traitement en cours seulement si elle est de
priorité supérieure

• On introduit une notion de priorité (niveau) entre interruptions.


– Exemple : 8 niveaux
Niveau 0 1 2 3 4 5 6 7

Plus forte priorité Plus faible priorité


Joëlle Delacroix - NFA004 10
Arrivée IRQ 5, 6
Traitement IRQ 5, Hiérarchisation
IRQ 6 en attente
des interruptions
Arrivée IRQ 7; IRQ 6, 7 en attente

Arrivée IRQ 2 Traitement IRQ 2,


On interrompt le IRQ 6, 7 , 5 en attente
traitement de IRQ5
Arrivée IRQ 1 Traitement IRQ 1,
On interrompt le IRQ 6, 2, 7 , 5
traitement de IRQ2 en attente
Fin traitement IRQ 1,
Fin traitement IRQ 2,
Reprise traitement IRQ 2
Reprise traitement IRQ 5

Fin traitement IRQ 5,


Traitement IRQ 6, puis IRQ 7 Delacroix - NFA004
Joëlle 11
Le contrôleur d’interruption
• La gestion des priorités entre interruptions matérielles est
à la charge d’un circuit spécifique : le contrôleur
d’interruption.
• Il reçoit les priorités délivrées par les périphériques du
processeur, mémorise les interruptions reçues, arbitre les
priorités et délivre l’interruption la plus prioritaire au
processeur.

Les ponts gèrent et intègrent :


– L’accès aux bus;
– L’adressage des unités d’échanges;
– Le contrôleur d’interruptions
– Le contrôleur DMA
– Le contrôleur de mémoire centrale
Joëlle Delacroix - NFA004 12
Arrivée IRQ 5, 6 num Adresse routine
1 Adresse CO_RT1
Traitement IRQ 5,
IRQ 6 en attente 2 Adresse CO_RT2
CO 3 Adresse CO_RT3
CO_RT5
4 Adresse CO_RT4
5 Adresse CO_RT5
CO_RT2 CO
AR_SP5 Traitement IRQ 2,
IRQ 6, 7 , 5 en attente
CO_RT1 CO
AR_SP2
Traitement IRQ 1,
IRQ 6, 2, 7 , 5
CO en attente
CO
Fin traitement IRQ 1,
Fin traitement IRQ 2, Reprise traitement IRQ 2
Reprise traitement IRQ 5
Il faut mémoriser les adresses AR_SP5, AR_SP2
Fin traitement IRQ 5,  Registres (nombre ?)
 Pile : on doit utiliser la donnée sauvegardée la
Traitement IRQ 6, puis IRQ 7 Delacroix - NFA004
Joëlle plus récente 13
La structure de pile
• La pile est une zone de la mémoire centrale constituée d’un
ensemble de mots.
• Seul le mot au sommet de la pile est accessible. Son adresse
est contenue dans le registre du processeur RSP
• Deux opérations sont seulement autorisées :
 Ajouter un mot au sommet de la pile (PUSH)
 Oter le mot au sommet de la pile (POP)

RSP

Pile

Joëlle Delacroix - NFA004 14


La structure de pile

Ajouter un mot au RSP


sommet de la pile 40
PUSH Rg1 R0 10
2
Le contenu du R0 123
registre R0 est écrit
dans le mot dont
l’adresse est (RSP).
RSP est incrémenté
RSP
40
10
2
Joëlle Delacroix - NFA004 15
La structure de pile

Oter un mot au RSP


sommet de la pile 123 RSP
loop : POP Rg1 R1 40 40
10 10
JMP loop 2 2

R1 R1
RSP est décrémenté.
Le contenu du mot
dont l’adresse est
(RSP) est mis dans le RSP
registre R1. 10
2

R1
Joëlle Delacroix - NFA004
La structure de pile
100 A
La pile est une structure 96 RB
de données régie par une 104 B
politique LIFO : Last In 108 C
First Out. 112 D
Le dernier élément ajouté 116 E
à la pile est le premier à
Mémoire centrale
en être ôté

load Im R2 3
loop : load B R1 4 R1 A
push Rg1 R1 D R3
R1 B
add Im RB 4
add Im R2 -1
R1 C
jmpp loop
pop Rg1 R3 R1 D
La structure de pile
• La pile est une zone de la mémoire centrale constituée d’un ensemble
de mots
• Dans le cadre des interruptions, cette zone est utilisée pour sauvegarder
les adresses contenues dans la CO, quand le processeur passe du
programme utilisateur aux routines d’interruptions.
Programme

1002

Traitant d'IRQ n°3


On écrit dans CO, l’adresse de
Interruption la routine d’IRQ 0017
n°3 CO <-- 0017. 1002 X
Auparavant, on mémorise Traitement IRQ
Y
la valeur du CO (1002) dans la pile RTI
1002
1002
0035

Le traitement de l’IRQ est terminé. On retourne


dans le programme utilisateur à l’adresse où il a été interrompu.
On remet dans CO la valeur écrite au sommet de pile
Joëlle Delacroix - NFA004 18
IRQ 1 10 Hiérarchisation des interruptions
IRQ 2 20
IRQ 3 30 Le processeur exécute le programme X, arrivée de IRQ 5
IRQ 4 40 CO
IRQ 5 50 CO
IRQ 6 60 1002 IRQ 5
IRQ 7 70 1002 50
IRQ 8 80
10 Routine irq1 Le processeur exécute le traitant IRQ 5, arrivée de IRQ 2
20 Routine irq2 CO CO
Routine irq3 IRQ 2
30 55 55 20
Routine irq4 1002
40
50 Routine irq5 Le processeur achève le traitant IRQ 2, reprise du traitant IRQ 5

60 Routine irq6
CO CO
70 Routine irq7
55 55
80 Routine irq8
1002
29 1002

1000 I1 Le processeur achève le traitant IRQ 5, reprise du programme X


1001 I2
1002 I3
1003 I4 CO CO
1004 I5
Programme X 59
1005 I6 1002
1002
Joëlle Delacroix - NFA004 19
Le masquage des interruptions
• Une interruption masquée n‘est pas prise en
compte par le processeur lorsque celle-ci
survient.

• Deux niveaux de masquage :


– Au niveau du processeur
– Au niveau du contrôleur

20
Le masquage des interruptions
• Au niveau du processeur,
Registre PSW du processeur masquage, démasquage global
S O C Z I • EI : Enable Interrupt
I = 1, Interruptions masquées – les interruptions sont
I = 0, Interruptions démasquées démasquées
- O : positionné à 1 si Overflow, 0 sinon • DI : Desable Interrupt
- Z : positionné à 1 si résultat opération nul, 0 sinon
- C : positionné à 1 si carry, 0 sinon
– les interruptions sont
- S : positionné à 0 si résultat opération positif, 1 sinon masquées
LOAD Im R1 10
DI
ADD Im R1 20 Interruptions IRQ attente
ADD D R1 100 masquées
ADD I R1 20
EI
MUL R R1 50 IRQ Prise en compte
Joëlle Delacroix - NFA004 21
Le masquage des interruptions
• Au niveau du contrôleur,
Contrôleur d’interruptions masquage, démasquage par
niveau
ISR IRR

IRQ 0 Les interruptions 2, 4 et 7


sont délivrées au contrôleur.
IRQ 1 L’interruption 4 est masquée;
1 1 IRQ 2 elle est ignorée.
Résolveur L’arbitrage se fait entre les
IRQ 3 interruptions 2 et 7
de priorités
1 IRQ 4 L’interruption 2 entre en
IRQ 4 service
masquée IRQ 5
IRQ 2 en
IRQ 6
service
1 IRQ 7
IMR

0 1 0 1 0 0 0 0 IRR : registre des requêtes d’interruptions


ISR : registre des interruptions en services
IMR : registre des interruptions masquées
22
Déroulement des interruptions
CPU
INT INTA EOI 2
Arrivée
IRQ 2, 7
IRR
Logique de contrôle
Traitement ISR
IRQ 2 ISR Interruptions IRQ 0
Avertir CPU IRQ 1
1 1 IRQ 2
Résolveur
de priorités IRQ 3
INT INTA EOI IRQ 4
IRQ 7, IRQ 2
2 en attente IRQ 5
IRQ 2 en
service IRQ 6
1 IRQ 7
IMR

0 0 0 0 0 0 0 0

Contrôleur d’interruptions 23
Déroulement des interruptions
CPU
INT INTA EOI 5
Arrivée
Traitement ISR
IRQ 5
IRQ 5
IRR
Traitement ISR Logique de contrôle
IRQ 2 ISR IRQ 0
FIN ISR IRQ 2 IRQ 1
1 IRQ 2
Résolveur
de priorités IRQ 3
INT INTA EOI IRQ 4
IRQ
Priorité
5 etIRQ5
IRQ
1 7 en
< IRQ
attente
2 1 IRQ 5
IRQ 5 enEn
5 service
attente IRQ 6
1 IRQ 7
IMR

0 0 0 0 0 0 0 0

Contrôleur d’interruptions 24
Déroulement des interruptions
CPU
INT INTA EOI 5
Fin
Traitement ISR
IRQ 2
IRQ 5
IRR
Logique de contrôle
ISR IRQ 0
FIN ISR IRQ 2 IRQ 1
1 IRQ 2
Résolveur
de priorités IRQ 3
INT INTA EOI IRQ 4
IRQ
Priorité
5 etIRQ5
IRQ
1 7 en
< IRQ
attente
2 1 IRQ 5
IRQ 5 enEn
5 service
attente IRQ 6
1 IRQ 7
IMR

0 0 0 0 0 0 0 0

Contrôleur d’interruptions 25
Déroulement des interruptions
1. Le contrôleur d’interruptions reçoit les signaux IRQi émis par les périphériques sur
ses bornes IRQi. Les interruptions reçus sont mémorisées dans le registre IRR. Le
contrôleur active le signal INT
2. Le processeur prend en compte le signal. Si l’indicateur I=1 au niveau du registre
d’état, le signal est ignoré, sinon, la demande d’interruption est acceptée.
3. Si la demande est acceptée, le processeur met sa sortie INTA pour indiquer au
contrôleur qu’il prend en compte sa demande.
4. En réponse, le contrôleur d’interruption arbitre les priorités entre les IRQs en attente
et place le numéro de l’interruption IRQi de plus forte priorité sur le bus de données.
Le bit correspondant dans ISR est mis à 1 et remis à 0 dans IRR.
5. Le processeur lit le numéro de l’interruption sur le bus de données et l’utilise pour
trouver le vecteur d’interruption (afin de traiter l’interruption). Le processeur
sauvegarde le CO courant sur la pile et le charge avec l’adresse du traitant
d’interruption.
6. La procédure traitant l’interruption se déroule. Lorsqu’elle est terminée, le processeur
avertit le contrôleur en activant le signal EOI. Si des interruptions sont en attente, le
process reprend.

26
Déroulement des interruptions
CPU
INT INTA EOI 1
Arrivée
Traitement ISR IRQ 1
IRQ 1
IRR
Traitement ISR Logique de contrôle
IRQ 5 ISR IRQ 0
Suspension 1 1 IRQ 1
ISR IRQ 5
IRQ 2
Résolveur
de priorités IRQ 3
INT INTA EOI IRQ 4
IRQ 1 plus
1 prioritaire que IRQ 5
IRQ 5
1 IRQ 6
1 IRQ 7
IMR

0 0 0 0 0 0 0 0

Contrôleur d’interruptions 27
Table des vecteurs
Les Interruptions matérielles d'interruptions IRQ 3 0017
(adresse 00000)
 asynchrones 0017 traitant IRQ3

1002 Programme

Mode utilisateur Mode noyau


Programme
1002
CO PUSH Rg1 CO Irq 3
1002

Interruption Traitant d'IRQ n°3


n°3 CO  0017
0017

CO Traitement IRQ
POP Rg1 CO

1002
1002 Les interruptions externes ou
matérielles sont émises par les
périphériques du processeur (fin
d’écriture disques, plus de papier
imprimante…). Ce sont les IRQs.
28
Table des vecteurs
Les Interruptions logicielles d'interruptions EXCP 0 0040
(adresse 00000)
trappes  synchrones 0040 traitant EXCP 0

EXCP 0 Programme
1002
Div A, 0
Mode utilisateur Mode noyau
Programme
1002
I = 0; CO PUSH Rg1 CO
A = 12,

A=A/I;
1002
Traitant Exception 0
CO  0040
Levée exception 0 0040

Traitement Exception 0
Arrêt du programme

Les interruptions internes ou logicielles sont


émises par le processeur lui-même lorsqu’il
rencontre une erreur dans l’exécution du
programme (division par zéro, accès mémoire
illégal). Ce sont les trappes. 29
Instructions machine / assembleur

Instructions liées EI : Autoriser les interruptions


aux interruptions DI : Masquer les interruptions
RTI : retour de traitant d’interruption

Instructions liées POP Rg1 R1 : Le sommet de pile est mis dans R1


à la pile PUSH Rg1 R1 : R1 est placé au sommet de la pile

Joëlle Delacroix - NFA004 30


GESTION DES ENTREES-SORTIES

• Le rôle des unités


d ’échanges
• L’adressage et la Horloge
Processeur
Central
constitution des unités
Bus
d ’échanges
• Les modes de transferts : Mémoire
d'
échange
Centrale
les interruptions Interface d’entrées/sorties

Joëlle Delacroix-NFA004 31
Périphériques de l’ordinateur
Processeur
Horloge Central

Bus
Un périphérique est un matériel électronique
Mémoire d' échange pouvant être raccordé à un ordinateur par
Centrale Interface d’entrées/sorties
l'intermédiaire de l'une de ses interfaces d'entrée-
sortie (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
3
• Interfaces

1. USB : connexion « à chaud » de périphériques


2. RJ45 : connexion au réseau local filaire
2 4
3. VGA : connexion de l’écran
4. HDMI : connexion à un écran haute résolution 4
Joëlle Delacroix-NFA004 1 32
L ’unité d ’échange

• Rôle de l ’unité d ’échange


• connexion des unités
Processeur
périphériques au bus
Horlo
ge
Central
• gestion des échanges entre le
processeur et les périphériques
Mémoire
Bus
(adaptation)
Cache

Mémoir
d' échange
• Particularités des unités
e
Central Unité d’échange d ’échanges
e
• Constitution et adressage
• Gestion des transferts

Joëlle Delacroix-NFA004 33
L ’unité d ’échange
DONNEES

PERIPHERIQUE
Dialogue spécifique
Format normalisé
Interface d’E/S
CPU PORT
de communication
Bus d’entrées/sorties

Contrôle/ Synchro
Selon protocole
(série, Parallèle…)

Interface
d’entrées-sorties
USB (contrôleur)

Connecteur USB

 Port de communication :
Voies en entrées et sorties entre UE Protocole de
et périphériques communication USB
Joëlle Delacroix-NFA004 34
L ’unité d ’échange

Unité d ’échange
• Un registre de commande dans
lequel le processeur décrit le
travail à effectuer
commande
Prête ? • Un registre de données qui
contient les mots à échanger
état entre le périphérique et la
Transfert Ok ? mémoire centrale

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 35
L’unité d ’échange : adressage

Unité d ’échange A3 CO

RI

AregC commande
AregE
état
AregD
données
A1
Store D R1 A8
Espace d’adresse des entrées - sorties A2
A3 écrire R1 dans registre de données de l’UE
A4
A5
C’est le processeur qui charge A6
les registres de l’UE en fonction A7
de l’opération d’E/S réalisée  A8
Il doit adresser les registres des UE
Espace d’adresse de la mémoire centrale
Joëlle Delacroix-NFA004 36
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 37
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
Espace
Mots mémoires Adresses
mémoire
• IN D R1 60
•un registre d’adresse 60
d ’une unité d ’échange est
200 chargé dans R1

0 Espace  c ’est le type d ’instruction qui


Registres des Adresses distingue l ’espace d ’adressage
unités d ’échanges Entrées-sorties concerné
100
Joëlle Delacroix-NFA004 38
L’unité d ’échange : adressage dans un espace séparé
Bus
in/out
de
Lecture/Ecriture commandes

Bus
de
données

LOAD D R1 60 Unité
Mémoire
d'
RAM
échange

60 Bus
d'adresse

Joëlle Delacroix-NFA004 39
L’unité d ’échange : adressage dans un espace séparé
Bus
in/out
de
Lecture/Ecriture commandes

Bus
de
données

• IN D R1 60 Unité
Mémoire
d'
RAM
échange

60 Bus
d'adresse

Joëlle Delacroix-NFA004 40
L’unité d ’échange : adressage dans un espace séparé

• Des instructions IN D R1 X OUT D R1 X


spécifiques d’entrée- Le contenu du Le contenu du
sorties in/out adressent registre d’UE registre R1 du
d’adresse X est processeur est
les unités d’échanges. placé dans le placé dans le
registre R1 du registre d’UE
processeur d’adresse X

Joëlle Delacroix-NFA004 41
L’unité d ’échange : adressage dans un espace unique

espace d ’adressage unique


• LOAD D R1 102
0
• le mot mémoire d’adresse 102
est chargé dans le registre R1

100 Espace
Mots mémoires Adresses
101 mémoire • LOAD D R1 203
• Le registre d ’une unité
d ’échange d’adresse 203 est
200 chargé dans R1

201 Espace  c ’est l ’adresse utilisée qui


Registres des Adresses détermine l ’espace adressé
unités d ’échanges Entrées-sorties
300
Joëlle Delacroix-NFA004 42
L’unité d ’échange : adressage dans un espace unique
Bus de commandes Lecture/Ecriture

Bus
de
données

Unité
Mémoire
d'
RAM
LOAD D R1 203 échange

Bus
203 d'adresse

Joëlle Delacroix-NFA004 43
L’unité d ’échange : adressage dans un espace unique
Bus de commandes Lecture/Ecriture

Bus
de
données

Unité
Mémoire
d'
RAM
LOAD D R1 102 échange

Bus
102 d'adresse

Joëlle Delacroix-NFA004 44
Adressage Unité d'échange
espace séparé, espace intégré
Espace intégré Espace séparé
Les mêmes instructions (load/store) Des instructions différentes
adressent les deux espaces adressent les deux espaces
d’adresses : simplicité de d’adresses :
programmation Load/store mémoire
In/out  entrées/sorties
L’espace d’adresses des entrée- L’espace d’adresses des entrées-
sorties est limité par celui de la sorties n’est pas limité en taille
mémoire centrale. Il impute sur la
taille de l’espace d’adresses de la
mémoire.
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 45
GESTION DES ENTREES- On souhaite imprimer N
octets de la mémoire
SORTIES centrale
 Chaque octet doit
Mémoire centrale être écrit dans RD,
puis être envoyé à
CPU N octets
l’imprimante par l’UE

1. Mettre octet dans RD; RD libre, N fois RD libre ?


non
oui

UE Mettre octet dans RD

RD libre
UE
RD
2. Transférer RD dans
l’imprimante;
RD occupé
3. Libérer RD
Ecrire octet sur IMP

RD libre
Joëlle Delacroix-NFA004 46
GESTION DES ENTREES-SORTIES

Système d’exploitation
Programme utilisateur Pilote (driver)
Début
Char buf (1..n) Imprimer () CPU
Imprimer (buf, n octets) (logiciel)
Tester()
fin

UE
Mémoire centrale
RD

N octets

(matériel)
Joëlle Delacroix-NFA004 47
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 48
Le mode d’entrées- Mémoire centrale
sorties avec Sous_Programme d'IRQ_UE :
transférer donnée_suivante dans RD
interruptions RTI

Pilote d’Entrées-sorties :
CPU Vérifier UE prête;
Transférer première_donnée dans RD;

RD libre
?
UE non
RE RD oui
Mettre octet
dans RD
• Traitement des entrées-sorties

RD libre
 L'UE délivre une interruption
pour signaler qu'elle est prête. RD occupé
Ecrire octet sur
IMP
RD libre
Joëlle Delacroix-NFA004 IRQ 49
Pg utilisateur
Le mode d’entrées-
pilote
sorties avec interruptions
Routine
IRQ
Imprimer (buf, 2 octets) cpu

RE prêt RE prêt RE prêt


1 octet -> RD 1 octet -> RD Fin e/s actif

inactif

irq irq

RD UE
RD RD octet RD octet
RE RE RE prêt RE non prêt prêt
prêt non prêt prêt

non prêt

Écriture octet Écriture octet


imprimante imprimante

Joëlle Delacroix-NFA004 50
Le mode d’entrées-sorties avec DMA

• Par défaut, une unité d'échange :


• ne sait pas accéder à la
mémoire centrale

commande Le processeur doit lire chaque


Prête ? mot depuis la mémoire centrale et
le placer dans RD (ou vice versa)
état
Transfert Ok ?
Il faut permettre à L'UE
d’accéder à la mémoire centrale
données sans recourir au processeur : le
DMA (DIRECT MEMORY
ACCESS)

Unité d’échange

Joëlle Delacroix-NFA004 51
Le mode d’entrées-sorties avec DMA Mémoire
centrale
• 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 :
DMA3
•Le contrôleur de disquettes (canal DMA2)
•Les contrôleurs de disques durs (canal DMA6)
DMA2
•La carte son (canal DMA1)
•Le port parallèle (imprimante) (canal DMA3)
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 UE
• Le contrôleur DMA d’un PC gère 8 canaux DMA.

Joëlle Delacroix-NFA004 52
Le mode d’entrées- Sous_Programme d'IRQ_DMA :
sorties avec DMA Vérification transfert OK
RTI

Pilote d’entrées-sorties :
Initialiser DMA :
CPU nb = nombre d'octets à transférer
@m = adresse premier octet en MC
sens = écriture;
@p = adresse périphérique

Lancer DMA
nb @p
DMA
sens @m
• Traitement des entrées-sorties
• le processeur (pilote) initialise le DMA
• le DMA effectue l'entrée/sortie;
p
UE RE • le DMA signale la fin d'entrée-sortie par
une IRQ
Joëlle Delacroix-NFA004 53
Le mode d’entrées- Pg utilisateur

sorties avec DMA pilote

Routine
IRQ
Imprimer (buf, 2 octets)

Init DMA RE prêt


Lancer DMA Fin e/s actif
cpu
inactif
irq actif
DMA
inactif

RD RD octet RD RD octet
RE RE RE prêt RE non prêt prêt
prêt non prêt prêt
UE
non prêt

Écriture octet Écriture octet


imprimante imprimante
Joëlle Delacroix-NFA004 54

Vous aimerez peut-être aussi