Vous êtes sur la page 1sur 4

Les entrées-sorties et les interruptions

1. Circuits d’entrées-sorties :

Une interface d’entrées/sorties est un circuit intégré permettant au microprocesseur de


communiquer avec l’environnement extérieur (périphériques) : clavier, écran, imprimante,
modem, disques, processus industriel…
Les interfaces d’E/S sont connectées au microprocesseur à travers les bus d’adresses, de
données et de commandes.

Figure.1. les connexions entre le microprocesseur et les interfaces E/S

Les points d’accès aux interfaces sont appelés ports.

Figure.2. Schéma synoptique d’un circuit d’E/S.

1.1. Adressage des ports d’E/S

Un circuit d’E/S possédé des registres pour gérer les échanges avec les périphériques :

 Registres de configuration ;
 Registres des données.
A chaque registre a assigné une adresse : le microprocesseur accédé à un port d’E/S en
spécifiant l’adresse de l’un de ses registres.

Le microprocesseur peut voir les adresses des ports d’E/S de deux manières :

1.2. Adressage cartographique (memory mapped) : les adresses des ports d’E/S
appartiennent au même espace mémoire que les circuits mémoire (on dit que les E/S
sont mappées en mémoire) :

00000h
Circuits
E/S
Espace
mémoire totale
adressable Circuit
mémoire

FFFFFh
Conséquence :

- L’espace d’adressage des mémoires diminue ;


- L’adressage des ports d’E/S se fait avec une adresse de même longue (même nombre de
bits) que pour les cases mémoires ;
- Toutes les instructions employées avec des cases mémoires peuvent être appliquées aux
ports d’E/S : les mêmes instructions permettent de lire et écrire dans la case mémoire et
les ports d’E/S, tous les modes d’adressages étant valables pour les E/S.

1.3. Adressage indépendant (Isolated) : le microprocesseur considère deux espaces


distincts :
- Espaces adressage de la mémoire ;
- Espaces adressage des ports d’E/S ;

C’est le cas du microprocesseur 8086 ;

Circuit mémoire
1 Mo

64 K
Circuit d’E/S
o

Conséquence :

- Contrairement à adressage cartographie, adresse mémoire totale adressable n’est pas


diminué
- L’adressage du port d’E/S peut se faire avec une adresse plus courte (nombre de bits
inférieur) que pour les circuits mémoires ;
- Les instructions utilisées pour l’accès à la mémoire ne sont plus utilisables pour accès
aux ports d’E/S /ceux-ci disposent d’instructions spécifiques ;
- Une même adresse peut désigner soit une case mémoire, soit un port d’E/S : le
microprocesseur doit donc fournir un signal permettant de différencier l’adressage de
mémoire de l’adressage des ports d’E/S.

Remarque : l’adressage indépendant des ports d’E/S n’est possible que pour les
microprocesseurs possédant un signal permettant de différencier l’adressage de la mémoire de
l’adressage des ports d’E/S ainsi que les instructions spécifiques pour l’accès aux ports d’E/S.
par contre, l’adressage cartographique est possible pour tous les microprocesseurs.

2. Les interruptions :

Une interruption permet d’arrêter un programme, en cours d’exécution sur le processeur, pour
que celui-ci traite une tâche considérée comme plus urgente. Quand cette tâche est terminée, le
processus interrompu doit alors être repris en l’état où il avait été laissé. Lorsqu’une interruption
est acceptée par le processeur, elle va permettre au périphérique ou au logiciel de suspendre le
fonctionnement du microprocesseur et de lui demander l’exécution d’un sous-programme de
service, dit également sous-programme d’interruption.

2.1. Les différents types d’interruptions


Une interruption peut être provoquée de diverses manières :
- par un périphérique (interruption externe et matérielle), par un programme
(l’interruption externe et logicielle) ou alors par le processeur (l’interruption interne
également appelée exception).
- Les exceptions les plus courantes sont la division par zéro, le dépassement de capacité,
un accès anormal à une zone mémoire...

2.2. Hiérarchisation des interruptions


Certaines interruptions peuvent être plus importantes que d’autres et se doivent donc d’être
prioritaires :

2.2.1. Les interruptions non masquables


Les processeurs disposent d’instructions autorisant ou interdisant les interruptions. C’est ainsi
que, si le programme ne doit absolument pas être interrompu (processus système prioritaire en
cours de traitement par exemple), on interdira les interruptions qui pourraient se produire, et en
perturber le déroulement. Cependant, certaines interruptions ne sauraient être interdites, soit du
fait de leur nécessité, soit du fait de leur niveau de priorité. L’exemple le plus flagrant est
l’interruption pour coupure de courant ! Ces interruptions sont dites non masquables.

2.2.2. Les interruptions masquables


Par opposition, une interruption est dite masquable quand on peut demander à l’unité centrale
de l’ignorer. On peut ainsi masquer, à un moment donné, certaines interruptions afin de
préserver le déroulement du programme en cours, de toute interruption intempestive (sauf bien
évidemment des interruptions non masquables).
2.3. Reconnaissance des interruptions
Interruption multiniveau : chaque équipement susceptible d’émettre une interruption est relié
à une entrée d’interruption particulière. Cette solution, techniquement la plus simple, est
cependant coûteuse en broches d’entrées du processeur et de ce fait peu utilisé.

IRQ 1
IRQ 2
Processeur …

Interruption ligne unique : dans cette technique, une seule entrée est réservée au niveau de
l’unité centrale, lui indiquant si une interruption est demandée. Si plusieurs équipements sont
reliés à cette ligne, quand l’UC reçoit la demande d’interruption, elle doit alors scruter tous les
équipements pour en déterminer l’émetteur ; cette technique est appelée scrutation.

IRQ 1
Processeur IRQ 2

Interruption vectorisée : ce type d’interruption ne consiste pas seulement en un signal de


demande, mais comporte également un identificateur qui permet de se brancher directement sur
le sous-programme de service approprié. Cet identificateur est un « numéro » appelé vecteur,
identifiant le périphérique qui est à l’origine de la demande d’interruption.
Ce vecteur déposé sur le bus de données peut être fourni par un composant particulier appelé
contrôleur d’interruptions, ou par le périphérique lui-même, mais il est alors nécessaire de gérer
une hiérarchisation des priorités afin de ne pas déposer simultanément deux vecteurs sur le bus
de données.

IRQ 1
Contrôleur
Processeur IRQ 2
d’interruption …

2.4. Traitement des interruptions


Le traitement d’une interruption se déroule généralement de la manière suivante :
– Réception par l’unité centrale d’une demande d’interruption interne ou externe
– Acceptation (ou rejet) de cette demande par l’unité centrale
– Fin du traitement de l’instruction en cours
– Sauvegarde de l’état du système, c’est-à-dire du contenu des divers registres (compteur
ordinal, registre d’état...), de manière à pouvoir reprendre l’exécution du programme
interrompu en l’état où il se trouvait au moment de l’interruption
– Modification du contenu du compteur ordinal qui prend comme nouvelle valeur l’adresse
de la première instruction du sous-programme associé à cette interruption.
Le sous-programme d’interruption une fois terminé provoque la restauration de l’état dans
lequel se trouvait le système au moment de la prise en compte de l’interruption.

Vous aimerez peut-être aussi