Вы находитесь на странице: 1из 17

Microprocesseurs & DSP 7

Chapitre 2. Système à microprocesseur


(3 semaine)

2.1 Composants annexes au microprocesseur :


Le processeur à lui seul ne peut rien faire. Il faut lui adjoindre d'autres composants pour
pouvoir réaliser un système numérique.

2.1.1 Décodeurs :
Un décodeur est un circuit possédant n entrées et n sorties numérotées (figure 2.1). À tout moment,
une et une seule sortie est active : celle dont le numéro correspond à la valeur binaire présente sur les n
entrées. Le décodeur traduit donc la valeur d’entrée en une information de position spatiale.

Fig.2.1 Décodeur 3 vers 8. Avec la valeur 6 en entrée (110 en binaire), la sortie numéro
6 est activée.

Un décodeur peut être utilisé pour n’activer qu’au plus un composant 3-états à la fois, puisqu’au plus
une seule de ses sorties est active à la fois.

2.1.2 Multiplexeurs :
Ces sont des circuits d’aiguillage pour les signaux logiques. Un multiplexeur possède 2nentrées de
données, n entrées de commandes, et une seule sortie. On indique sur la commande le numéro (en binaire) de
l’entrée de donnée qui va être aiguillée en sortie. On a en figure 2.2 un exemple de multiplexeur 8 vers 1 sur
la commande duquel est écrit (; la sortie reflète alors l’état de la sixième entrée : E6.

Fig.2.2 Multiplexeur 8 vers 1.L’entrée numéro 6 est aiguillée vers la sortie.


Microprocesseurs & DSP 8

Bien sûr, les multiplexeurs peuvent être mis en parallèle pour aiguiller des bus entiers. On mettra
alors en commun les lignes de commande, et en parallèle les lignes de données.

2.1.3 Mémoires :
Cette section est consacrée aux circuits utilisés dans la mémoire centrale des ordinateurs, qui contient
les programmes et les données manipulés par les programmes. Une mémoire est constituée de cellules
mémoires (bascules bistables) qui sont regroupées pour former des cases mémoires. Ces cases mémoires sont
ordonnées et chaque case mémoire est identifiée par une adresse unique obtenue par la combinaison binaire
d'un ensemble de fils constituant le bus d'adresse. Cette adresse est généralement exprimée en hexadécimal.
L'ensemble de fils permettant de lire ou d'écrire sur chaque cellule mémoire forme le bus de donnée. Lorsque

n
le bus d'adresse est composé de n fils, la taille de la mémoire est T=2 cases ou mots. Le nombre m de fils du
bus de donnée quant à lui indique la largeur des mots mémoires. La largeur dépend de l’architecture utilisée.
(voir figure 2.3). On peut donc voir une mémoire comme un ruban de cases numérotées.

Fig.2.3 Organisation mémoire.


De telles mémoires se classent en deux grands types, selon qu’elles sont en lecture seule ou en
lecture-écriture.

2.1.3.1 R.A.M :
Les RAMs (Random Access Memory) peuvent être lues et écrites, et l’attribut random indique que
ces lectures-écritures peuvent se faire à des suites d’adresses totalement quelconques, par opposition à des
mémoires de type séquentiel (comme les disques durs) qui font des séries d’accès à des adresses
consécutives.
Une RAM peut être statique ou dynamique.Chaque bit mémoire d’une RAM statique (SRAM) est
constitué d’une bascule, et conserve son état tant qu’elle est alimentée. A l’inverse, chaque bit d’une RAM
dynamique (DRAM) est composé d’une capacité, qui doit être rafraîchie périodiquement par une
électronique séparée. Les RAMs statiques ont un taux d’intégration plus faible que les RAM dynamiques,
Microprocesseurs & DSP 9

puisqu’un bit mémoire nécessite 6 transistors dans un cas, une capacité et un transistor dans l’autre.
2.1.3.2 R.O.M : Les ROMs (Read Only Memory) sont fonctionnellement identiques aux RAMs, mais ne
permettent que la lecture et pas l’écriture. Utilisées dans la mémoire centrale d’un ordinateur, les RAMs
pourront stocker les programmes et les données, alors que les ROMs vont seulement stocker des programmes
invariables, comme par exemple le programme exécuté au démarrage de la machine, et stocké dans la ROM
dite de BIOS. Dans certains ordinateurs plus anciens, tout le système d’exploitation était stocké en ROM, ce
qui permettait d’avoir un système incorruptible et au démarrage rapide.
Les ROMs existent également dans un grand nombre de types différents, principalement selon la
façon dont on peut programmer leur contenu (invariable, par définition).
- Il y a d’abord les ROMs programmées par masque à l’usine ; elles sont produites en grand nombre avec un
faible coût à l’unité, mais leur contenu ne peut jamais être mis à jour ultérieurement.
- Les PROMs (Programmable Rom) sont programmables par un appareil spécial, qui généralement détruit
par un courant fort une liaison interne correspondant à un bit.
- Les EPROMs (Erasable PROM) fonctionnent de la même façon, mais possèdent une fenêtre transparente et
peuvent être effacées par une exposition d’une vingtaine de minutes aux rayons ultraviolets.
- Elles sont maintenant souvent remplacées par des EEPROMs (Electrically EPROM), reprogrammables
électriquement. Les mémoires Flash sont également une forme de mémoires effaçables électriquement, mais
on réserve généralement le terme EEPROM aux mémoires capables d’effacer à l’échelle du mot, et le terme
"mémoires Flash" à celles qui effacent à l’échelle de blocs. Dans les deux cas, le temps d’effacement est long
par rapport au temps de lecture, et elles ne peuvent pas être considérées comme une forme spéciale de RAM.
On trouve de la mémoire EEPROM et flash dans les assistants personnels, dans les sticks mémoire sur ports
USB, pour le stockage du firmware de nombreux appareils (BIOS d’ordinateurs, lecteurs de DVD, tuners
satellites, etc...)

Les boîtiers mémoires disposent d'un certain nombre de connections externes leur permettant d'être
reliés ensemble sur un même bus de donnée et de pouvoir accéder à ce bus indépendamment des autres.
L'entrée notée CE (Chip Enable) ou CS (Chip Select), souvent complémentée, permet de déconnecter
électroniquement la mémoire du bus de donnée (bus de donnée à l'état haute impédance). L'entrée R/W
permet d'autoriser l'écriture ou la lecture de la mémoire.

Fig.2.4 Interface d’un boîtier de RAM statique de n mots de m bits, avec données lues et écrites communes.
Microprocesseurs & DSP 10

Lire une mémoire consiste à placer sur le bus d'adresse les coordonnées de la case mémoire, la
sélectionner à l'aide du CS, et ensuite transférer son contenu sur le bus de donnée externe (Figure 2.5) .

Fig.2.5 Chronogramme de lecture d'une case mémoire.


2.1.3.3 Associations de blocs mémoires :
En pratique les circuits mémoires ont des caractéristiques ne leur permettant pas de satisfaire
directement les exigences d'espace mémoires dans les systèmes électroniques. On associe donc différents
circuits mémoires afin de remplir ces exigences a savoir augmenter la zone adressable et ou la largeur des
mots mémoires. On procède pour cela soit à un agrandissement du bus de données (association parallèle),
soit à un agrandissement du bus d'adresse (association série), soit les deux la fois.
- Association en parallèle : On effectue une mise en parallèle des blocs mémoires élémentaire afin
d'augmenter la largeur des mots, c'est-à-dire la largeur du bus de données, le bus d'adresse commun aux blocs
élémentaire restant inchangé. On pourrait par exemple associer en parallèle 4 blocs mémoires de 8 bits pour
former un mots mémoires de 32 bits.
- Association en série : On effectue une association série des blocs mémoires pour augmenter le nombre de
mots mémoires, c'est-à-dire la capacité de la zone adressable. Pour ce faire on augmente la largeur du bus
d'adresse.

Fig.2.6 Association de circuits mémoires


Microprocesseurs & DSP 11

2.2 Architecture :
Un système à base de microprocesseur est formé des trois éléments :
- Une unité de traitement centrale (CPU : Central Processing Unit)
- Une mémoire (ROM et RAM)
- Des ports d'entrées/sorties.
Les trois modules sont interconnectés à l'aide de trois bus (comme le montre la figure suivante) : bus
de données, bus d'adresses et bus de contrôles ou commandes.

Fig.2.7 Système à base de microprocesseur.


- Le bus de données : c'est un ensemble de fils bidirectionnels qui va permettre le transfert de données entre
les différents éléments du système. C'est par ce bus que sont transmises les données qui doivent être traitées
par le microprocesseur. C'est également par ce bus que transitent les résultats en sortie du microprocesseur.
Autrement dit, toutes les données entrantes et sortantes du microprocesseur sont véhiculées par le bus de
données qui fixe la longueur du mot échangé avec la mémoire.
- Le bus d'adresses : il permet d'adresser un élément par le microprocesseur, il est unidirectionnel, il
détermine la capacité maximale d'adressage du système, c'est à dire le nombre maximum de mots de la
mémoire associée (ex : 16 bits "adressent" 64 Kmots).
- Le bus de commande/contrôle : c'est un bus qui permet de véhiculer les signaux de contrôles et de
commandes tels que l'horloge, les signaux R/W, etc ... Ce bus sert à coordonner tous les échanges
d'informations décrits précédemment. Il véhicule des données qui valident la mémoire et les ports
d'entrées/sorties. Il introduit des délais d'attente lorsque des informations sont envoyées à un périphérique qui
présente une vitesse de traitement réduite. Le bus de commandes évite les conflits de bus lorsque deux
éléments cherchent à communiquer en même temps.
La mémoire sert au rangement de deux types d'informations :
-Des données : les informations traitée par le microprocesseur.
-Des instructions : ensemble d'informations codées qui gère l'activité du microprocesseur.
Les interfaces d'entrées sorties vont permettre au microprocesseur de communiquer avec le monde
extérieur. Nous trouvons des ports utilisés exclusivement pour l'entrée, et d'autres ports exclusivement pour
Microprocesseurs & DSP 12

la sortie. Il existe aussi des ports bidirectionnels. Donc le microprocesseur peut lire des données à partir d'un
périphérique d'entrée (exemple souris, clavier, disque dur, etc...) de même il peut restituer le résultat de son
traitement au monde extérieur en adressant des périphériques de sortie (tels que l'imprimante, l'écran, etc...)
En résumé, les interfaces d'entrées/sorties vont soulager le microprocesseur pour la communication avec le
monde extérieur.
Le microprocesseur doit donc contrôler les fonctions effectuées par les autres modules, il doit chercher ainsi
que décoder des instructions rangées en mémoire, et il doit adresser des interfaces d'entrées/sorties pour lire
des données du monde extérieur, et restituer le résultat de son traitement.

Conception d’un plan mémoire :


L'espace mémoire total adressable par un microprocesseur est divisé sur les différents périphériques
par zones. Des zones vides peuvent exister. Chaque zone est délimitée par une adresse de début et une
adresse de fin. Chaque zone possède une taille fixe.

Fig.2.8 Cartographie mémoire.

Le Tableau suivant donne l'espace adressable en fonction de la largeur du bus d'adresses :

Nombre de bits 8 10 16 20 24 30
Espace mémoire 256 Octets 1 Ko 64 Ko 1 Mo 16 Mo 1 Go

Décodage d’adresses :
Le but du décodage d'adresse est de déterminer les combinaisons logiques des fils d'adresse qui
permettent d'activer le boîtier mémoire adéquat. Le décodage de type linéaire associe un composant à un bit
de sélection du microprocesseur. Les bits de sélection sont les bits de poids fort du bus d'adresses. Les bits de
poids faible permettent d’accéder aux cases mémoires à l’intérieur du composant. Méthode simple ne
nécessitant aucun composant externe et valable pour systèmes à nombre de boîtiers mémoires ou
périphériques réduit. Le décodage par zone ne gaspille pas le nombre de bits réservés pour le décodage. Un
décodeur d'adresse permet de sélectionner les boîtiers mémoires ou périphériques par plages d'adresses.
Microprocesseurs & DSP 13

Exemples de décodage d'adresses :


Cas 1 : Le microprocesseur et le circuit de mémoire ont la même largeur de bus d'adresses (16 bits).

Cas 2 : 1 x µP avec bus d'adresses de 16bits, 2 x Circuits mémoire de 32Ko.

Cas 3 : 1 x µP avec bus d'adresses de 16bits, 2 x Circuits mémoire de 16Ko. Décodage par inverseur.

Il y a des images de mémoire (zone accessible par adresses différentes).


Microprocesseurs & DSP 14

Cas 4 : 1 x µP avec bus d'adresses de 16bits, 2 x Circuits mémoire de 16Ko. Décodage par 74LS139.

Cas 5 : 1 x µP avec bus d'adresses de 16bits, 8 x Circuits mémoire de 8Ko. Décodage par 74LS138.

2.3 Circuits d’entrées-sorties (Différents types et usages) :


On appelle entrées-sorties dans un système à base de µP, les échanges d'informations entre le µP et
les périphériques qui lui sont connectés. Ainsi, le système peut réagir à des modifications de son
environnement, voire le contrôler. Elles sont parfois désignées par l'acronyme I/O.
Les périphériques sont reliés au µP par l’intermédiaire d'interfaces d'entrées/sorties munies d'un ou plusieurs
ports d'entrées et de sorties.
Microprocesseurs & DSP 15

Un port d'entrée est essentiellement composé de tampons trois états. Ceux-ci se comportent comme
des interrupteurs électroniques qui font apparaître, au moment voulu, les niveaux logiques du périphérique
d'entrée sur le bus de données; ces niveaux seront mémorisés dans un registre du µP.

Un port de sortie est essentiellement composé de bascules de type D. Celles-ci se comportent comme
de petites mémoires. Leur entrée est reliée au bus de données. Le processeur vient écrire un niveau logique 0
ou 1 dans chacun des bascules. Les sorties des bascules contrôlent les périphériques, généralement via un
étage de puissance.

Il existe deux méthodes classiques pour adresser les circuits d'entrées/sorties. La première méthode
consiste à séparer l'adressage de la mémoire et l'adressage des entrées/sorties. En plus du bus d'adresse, il y a
une ligne supplémentaire où le processeur indique s'il s'adresse à la mémoire ou aux circuits d'entrées/sorties.
Cette méthode a l'avantage d'augmenter d'une certaine façon l'espace d'adressage. C'est pourquoi les premiers
micro-processeurs l'utilisaient car leur espace d'adressage était souvent réduit. Cette méthode a par contre
l'inconvénient de nécessiter des instructions spécifiques pour accéder aux circuits d'entrées/sorties.

La seconde méthode consiste à réserver une partie de l'adressage de la mémoire aux entrées/sorties.
On parle d'entrées/sorties en mémoire. Cette méthode réduit donc l'espace d'adressage disponible pour la
mémoire mais ce n'est pas gênant sur les micro-processeurs modernes qui disposent d'un (très) large espace
d'adressage. Elle permet aussi l'utilisation des instructions de chargement et rangement pour accéder aux
circuits d'entrées/sorties et de bénéficier ainsi des différents modes d'adressage. Cette méthode est toujours
utilisée sur les micro-processeurs RISC car elle diminue le nombre d'instructions et simplifie le décodage de
celles-ci.

Scrutation des circuits d'entrées/sorties

Lorsqu'un circuit d'entrée/sortie a reçu une donnée, le micro-processeur doit venir la lire pour la
récupérer. Les buffers de ces circuits sont généralement assez petits. Ceci implique que la donnée doit être
lue rapidement. Sinon, des données qui arrivent risquent d'être perdues.

Il existe essentiellement deux méthodes pour éviter que des données soient perdues. La première
consiste à faire en sorte que le micro-processeur interroge régulièrement les différents circuits d'entrée/sortie
pour savoir si une donnée est disponible. Cette méthode est la plus simple. Par contre, elle utilise beaucoup le
micro-processeur même quand il n'a aucune entrée/sortie. La seconde utilise les interruption qui permettent
aux circuit d'entrée/sortie de prévenir le micro-processeur lorsqu'une donnée est disponible. Le micro-
processeur interrompt alors la tâche en cours pour lire la donnée et la placer dans un buffer en mémoire où
elle est mise en attente pour une tâche.

L'interface d'E/S possède de la mémoire tampon pour stocker les données échangées (1 octet à
quelques Méga-octets, suivant le type d'interface). L'interface stocke aussi des informations pour gérer la
communication avec le périphérique :
Microprocesseurs & DSP 16

- des informations de commande, pour définir le mode de fonctionnement de l'interface: sens de transfert
(entrée ou sortie), mode de transfert des données (par scrutation ou interruption), etc. Ces informations de
commandes sont communiquées à l'interface lors de la phase d'initialisation de celle-ci, avant le début du
transfert.
- des informations d'état, qui mémorisent la manière dont le transfert c'est effectué (erreur de transmission,
réception d'informations, etc...). Ces informations sont destinées au µP.
La communication entre l'interface d'entrées/sorties et les périphériques peut être série (sur un seul fil
bit par bit) ou parallèle (sur plusieurs fils). Malgré la rapidité de la liaison parallèle, elle n'est pas adaptée à
certaines applications. En effet ce type de liaison a des faiblesses lorsqu'il s'agit de communiquer avec un
organe pour une longue distance, on préfère donc utiliser la liaison série malgré son faible débit contre la
liaison parallèle. Le circuit 8255 d'Intel est un exemple d'interface d'entrée/sortie parallèle.
La liaison entre l'émetteur et le récepteur en mode série peut être : Simplexe, Half duplexe ou Full
duplexe. La vitesse de transmission est mesurée en bps (bits par seconde), mais aussi en BAUD (nombre des
changements du signal par Seconde). Les vitesses normalisées sont : 50, 75, 110, 150, 300, 600, 1200,
2400,4800, 9600, 19200, 38400 bauds. Il existe 2 types de communications série: Synchrone et Asynchrone.
Communications asynchrones : la transmission s'effectue caractère par caractère. Un caractère comprend :
- un bit de départ (START),
- des bits de donnée selon un format variable (5, 6, 7, 8 bits),
- un bit de parité (optionnel),
- un ou plusieurs bits d'arrêt (Stop).
Communications synchrones : Avec la communication synchrone les données sont transmissent d'une
manière continue. Il est donc nécessaire d'effectuer la synchronisation des caractères au début du bloc de
données (avec un signal d'horloge). Le circuit 8250 est un exemple d'interface d'entrée/sortie série.

Une troisième méthode est utilisée lors d'un transfert de la mémoire RAM à un port d'E/S. Pour éviter
que le µP effectue des opérations de lecture et d'écriture répétées (un certain temps est perdu entre le
traitement de chaque octet), une procédure est mise au point pour l'accès direct à la mémoire (Direct Memory
Access), qui permet de transférer des données de la mémoire RAM au port d'E/S sans passer par le µP. Pour
cela, on utilise un contrôleur DMA, qui reprend le rôle du µP, c'est à dire qu'il gère les transferts de la RAM
aux ports d'E/S.

2.4 Interfaçage avec le monde extérieur :


Un système à base de µP communique avec le monde extérieur par l’intermédiaire d'interfaces
d'entrées/sorties. Les périphériques d'entrée/sortie peuvent êtres des claviers, écrans, ... s'il s'agit d'un
système informatique ou des interrupteurs, moteurs, ... s'il s’agit d'un système industriel ou autres.
Microprocesseurs & DSP 17

2.4.1 Interfaçage de capteurs :


Les capteurs sont des dispositifs utilisés en industrie pour transformer l'état d'une grandeur physique
observée en une grandeur utilisable, telle qu'une tension électrique. Les capteurs passifs sont modélisables
par une impédance et nécessitent un apport énergétique extérieur pour fonctionner. Les capteurs actifs
effectuent directement la transformation en grandeur électrique. La grandeur de sortie est une différence de
potentiel directement exploitable.
Les capteurs présentent différents types de sortie :
 Capteurs Analogiques : Le signal électrique de sortie possède une valeur analogique qui est une
fonction de la grandeur physique mesurée par le capteur. Exemple : thermocouple.
 Capteurs Numériques : La sortie est une séquence d'états logiques qui forment un nombre. Exemple :
codeur optique absolu.
 Capteurs Logiques : La sortie peut prendre deux états logiques 1 ou 0. Exemple : capteur de fin de
course.
La sortie analogique des capteurs analogiques doit être convertie en numérique pour être traitée avec
un système numérique. Cette tâche se fait par un convertisseur analogique-numérique qui transforme un
signal électrique analogique (tension, courant) en une valeur numérique. Généralement, il possède:
- une entrée "début de conversion" qui permet de démarrer la conversion (Start)
- une sortie "fin de conversion" qui indique que la conversion est terminée (End)
- une ou plusieurs entrées analogiques (courant ou tension)
- plusieurs sorties numériques, dont le nombre est fonction de la résolution (8, 10 ou 12 bits)

Fig.2.14 Schéma d'un Convertisseur A-N typique.

Fig.2.15 a) et b) interfaçage de switch, c) interfçage de capteur passif.


Microprocesseurs & DSP 18

2.4.2 Interfaçage d'actionneurs :


Pour modifier le comportement ou l’état d'un système (agir sur l'environnement extérieur), on utilise
les actionneurs qui transforment l'énergie qui leurs est fournie en un phénomène physique exemple
mouvement de déplacement ou de rotation. Exemple d'actionneurs : Moteurs électriques, vérin hydraulique
ou pneumatique, résistance chauffante, etc...
Les actionneurs sont des dispositifs de moyenne ou grande puissance et nécessitent donc des
énergies très grandes. La commande des actionneurs à partir de systèmes à base de µP passe par des
dispositifs d'amplification de puissance, exemples : relais, transistors de puissance, triacs, thyristors, etc...

Fig.2.16 Branchement de différents actionneurs.


2.4.3 Exemples d’application :
Beaucoup de périphériques, de capteurs et d'actionneurs peuvent êtres connectés avec les interfaces
d'entrées/sorties parallèles. Si le nombre de périphériques dépasse le nombre de lignes disponibles sur une
interface on peut rajouter le nombre d'interface nécessaire pour relier tout les périphériques.
On prendra comme exemple d'interface parallèle le circuit 8255 d'Intel :

Fig.2.17 Branchement de l'interface // 8255 avec un microprocesseur.


Microprocesseurs & DSP 19

Exemple 1 : Ensemble d'interrupteurs et de LEDs interfacés avec le 8255

Exemple 2 : Interfaçage d'un module d'affichage 7-seg. avec le 8255

Exemple 3 : Interfaçage d'un C.A-N avec le 8255


Microprocesseurs & DSP 20

Exemple 4 : Interfaçage d'un clavier 16-touches avec le 8255

Exemple 4 : Interfaçage d'un modem avec le 8250

2.5 Les interruptions :


Ce mode d'échange est principalement basé sur l'initiative du périphérique. Grâce à ce mécanisme
d'interruption, le dispositif périphérique prend l'initiative de l'échange. Une interruption est un événement qui
provoque l'arrêt du programme en cours et provoque le branchement du microprocesseur à un sous-
programme particulier dit de "traitement de l'interruption".

2.5.1 Interruptions matérielles :


Une interruption est signalée au processeur par un signal électrique sur une borne spéciale. Lors de la
réception de ce signal, le processeur (traite) l'interruption dès la fin de l'instruction qu'il était en train
d'exécuter. Le traitement de l'interruption consiste soit :
- à exécuter une routine d'interruption qui est un programme appelé automatiquement lorsqu'une interruption
survient. L'adresse de début de la routine est donnée par la table des vecteurs d'interruptions.
Microprocesseurs & DSP 21

- à l'ignorer et passer normalement à l'instruction suivante : c'est possible uniquement pour certaines
interruptions, nommées interruptions masquables. Il est en effet parfois nécessaire de pouvoir ignorer les
interruptions pendant un certains temps (pour effectuer des traitements très urgents par exemple). Lorsque le
traitement est terminé, le µP démasque les interruptions et les prend alors en compte.
Lorsque le (programme d'interruption) traitant a effectué son travail, il exécute l'instruction spéciale
IRET qui permet de reprendre l'exécution à l'endroit où elle avait été interrompue.
Le microprocesseur 8086 possède trois lignes principales d'interruption : INTR, NMI, et RESET.
Si le système est relié à plusieurs périphériques, alors qu'il n'y a qu'un seul signal de demande d'interruption :
INTR, la présence d'un contrôleur d'interruptions devient une nécessité. C'est un circuit spécial, extérieur au
µP, dont le rôle est de distribuer et de mettre en attente les demandes d'interruptions provenant des différents
périphériques.

Fig.2.23 Contrôleur d'interruptions programmable.


Le contrôleur est relié aux interfaces gérant les périphériques par les bornes IRQ (InteRrupt
reQuest). Il gère les demandes d'interruption envoyées par les périphériques, de façon à les envoyer une par
une au µP (via INTR). Il est possible de programmer le contrôleur pour affecter des priorités différentes à
chaque périphérique. Avant d'envoyer l'interruption suivante, le contrôleur attend d'avoir reçu le signal INTA,
indiquant que le processeur a bien traité l'interruption en cours.
Une interruption est dite non masquable signifie qu'elle doit toujours être reconnue par le µP dés que
le signal électrique a été déclenché.

2.5.2 Interruptions logicielles :


Les interruptions logicielles sont semblables aux interruptions matérielles. L'unique différence réside
dans le fait que les interruptions logicielles sont émises par des programmes. Ces interruptions ont une
fonction définie . Pour un système informatique genre PC ces interruptions sont définies par le DOS et le
BIOS (exemple la lecture et l'écriture sur le disque, l'écriture des données à l'écran, etc..). Contrairement à
l'entrée INTR du µP, l'interruption logicielle ne peut être ni invalidé ni masquée.
Microprocesseurs & DSP 22

2.5.4 Traitement des interruptions :


Nous donnons ici le déroulement d'une interruption externe masquable (sur un PC) :
1. Un signal INT est émis par un périphérique (ou par l'interface gérant celui- ci).

2. Le contrôleur d'interruptions reçoit ce signal sur une de ses bornes IRQi. Dès que cela est possible (suivant
les autres interruptions en attente de traitement), le contrôleur envoie un signal sur sa borne INT.
3. Le microprocesseur prend en compte le signal sur sa borne INTR après avoir achevé l'exécution de
l'instruction en cours (ce qui peut prendre quelques cycles d'horloge). Si l'indicateur IF=0, le signal est
ignoré, sinon, la demande d'interruption est acceptée.
4. Si la demande est acceptée, le microprocesseur met sa sortie INTA au niveau 0 pendant 2 cycles d'horloge,
pour indiquer au contrôleur qu'il prend en compte sa demande.
5. En réponse, le contrôleur d'interruption place le numéro de l'interruption associé à la borne IRQi sur le bus
de données.
6. Le processeur lit le numéro de l'interruption sur le bus de données et l'utilise pour trouver le vecteur
d'interruption. Ensuite, tout se passe comme pour un appel système c'est à dire que le processeur :
(a) sauvegarde les indicateurs du registre d'état sur la pile ;

(b) met l'indicateur IF à 0 (masque les interruptions suivantes) ;

(c) sauvegarde CS et IP sur la pile ;

(d) cherche dans la table des vecteurs d'interruptions l'adresse du traitant


d'interruption, qu'il charge dans CS:IP.

7. La procédure traitant l'interruption se déroule. Pendant ce temps, les interruptions sont masquées (IF=0).
Si le traitement est long, on peut dans certains cas ré-autoriser les interruptions avec l'instruction STI.
8. La procédure se termine par l'instruction IRET, qui restaure CS, IP et les indicateurs à partir de la pile, ce
qui permet de reprendre le programme qui avait été interrompu.

2.6 Pile et ses utilisations :


Lors d'une interruption ou lors de l'appel à une fonction ou un sous-programme, certaines
informations relatives au programme en cours d'exécution (le contenu de certains registres du µP) sont
sauvegardées provisoirement dans la pile (stack en anglais), en attendant de les utiliser plus tard. La pile est
une petite zone en mémoire RAM réservée pour cet usage. Elle a une structure fondée sur le principe
"dernier arrivé, premier sorti" (LIFO pour last in, first out), ce qui veut dire, que le dernier élément ajouté à
la pile sera le premier à être utilisé. Le µP retient l'adresse du dernier élément.
Le terme "Empiler" est utilisé pour ajouter un élément à la pile ("Push" en anglais). Pour enlever un
élément de la pile on utilise le terme "Dépiler" ("Pop" en anglais).

Chargement de la pile :

-envoyer l'octet à sauvegarder à l'adresse pointée par le pointeur de pile.

-décrémenter le pointeur de pile pour indiquer la prochaine case libre.


Microprocesseurs & DSP 23

Déchargement de la pile :

-incrémenter le pointeur de pile pour revenir à la dernière case occupée

-lire l'octet pointé par le pointeur de pile.

Dans le µP 8086 le registre SP sert à indiquer l'adresse du sommet d'une pile dans la RAM. Les
instruction push et pop permettent respectivement d'empiler et de dépiler des données. Les instructions call
et ret utilisent la pile pour appeler une fonction et la quitter par la suite en retournant à l'instruction suivant
immédiatement l'appel.

En cas d'interruption, les registres FLAGS, CS et IP sont automatiquement empilés. Dans le cas d'un
changement de niveau de priorité lors de l'interruption, les registres SS et SP le sont aussi.

Вам также может понравиться