Vous êtes sur la page 1sur 25

Chapitre 4- Architecture des systèmes programmés

I- Généralités
Les systèmes étudiés jusque-là correspondent à la logique câblée. C'est-à-dire qu’une fois le câblage effectué
et les entrées positionnées comme il convient, le système fonctionne conformément au câblage. La fonction
du système est fixe et ne peut pas être modifiée.
Pourtant pour les systèmes à microprocesseur, on effectue tout d’abord le câblage (environnement matériel)
et ensuite on élabore le programme chargé de piloter le montage réalisé. On parle alors de logique
programmée. La fonction du système est basée sur le programme écrit par l’utilisateur et ce programme peut
être à tout moment modifié.

1.1 Nécessité des systèmes à microprocesseur


Bon nombre d’applications électroniques font appel à des systèmes ou circuits capables de faire des
traitements complexes, de « réfléchir » et faire des traitements qui sciés à chaque situation rencontré.
En logique câblée, les informations sont traitées par autant d’opérateurs logiques (circuits intégrés) qu’il est
nécessaire. => Complexité de traitement limitée.
En logique programmée, un opérateur unique capable de réaliser plusieurs opérations (OU, ET, +, -, x,
etc.). Il traite séquentiellement les informations en fonction des ordres élémentaires appelés des
instructions.

Avantages de la logique programmée


Utilisation de composants ayant une grande densité d’intégration
 Carte électronique de faible encombrement.
Les composants utilisés sont programmables :
 L’application peut être mise au point ou totalement modifiée.

1.2 Notions de programme


Un programme est composé d’une suite d’instructions. Une instruction est une opération élémentaire d’un langage
de programmation. Elle peut se décomposer en deux zones ou champs :

La zone opération permet à la machine de savoir quelle opération doit être réalisée.
La zone adresse : c’est l’adresse de la case mémoire contenant la donnée qui doit être traitée.

II- Structure des systèmes à microprocesseur

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


III- Architecture minimale d’un système à microprocesseur)

1) Microprocesseur : Fonction de traitement de l’information

Un microprocesseur est un circuit intégré complexe caractérisé par une très grande intégration et doté
des facultés fonctionnelles d'interprétation et d'exécution des instructions d'un programme.

Comme dans tout circuit intégré la technologie de fabrication impose au microprocesseur


des caractéristiques :

• De temps de réponse qui se traduit par une plus ou


moins grande vitesse
d'exécution des instructions du programme.
• Et de consommation

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Exemple : le microprocesseur 6809 est fabriqué en technologie MOS canal N. Son fonctionnement est
synchronisé par une horloge dont la fréquence peut être 1, ou 1.5 ou 2 Mhz. Sa consommation type est de
0.5 W.

2) Environnement minimal :

Le microprocesseur ne peut fonctionner sans un environnement minimal comportant (voir figure ci-dessus) :

• Une zone de mémoire vive pour les données et les résultats


• Une zone de mémoire morte pour le programme
• Une ou plusieurs interfaces pour les périphériques

Entre ces différents ensembles les liaisons fonctionnelles sont assurées par trois groupes de conducteurs
en parallèle, ou bus ayant chacun une fonction spécifique :

• Un bus des données : (Data bus), bidirectionnel qui assure le transfert des informations entre le
microprocesseur et son environnement, et inversement ; son nombre de lignes ‘’n’’ est égal à la
capacité de traitement du microprocesseur ;

 Un bus des adresses : (Adress bus), unidirectionnel qui permet la sélection des informations à traiter
dans un espace mémoire qui peut avoir 2m emplacements, avec m = nombre de conducteurs du bus
d'adresses
• Un bus de commande : (Control bus), constitué par quelques conducteurs qui assurent la
synchronisation des flux d'informations sur les bus des données et des adresses.

Exemple : pour l'environnement du 6809 :

• Le bus des données communique avec le microprocesseur par l'intermédiaire de huit broches
bidirectionnelles (D0 à D7), d'où la possibilité de traiter des mots de huit bits.
• Le bus des adresses avec sa liaison établie par seize broches unidirectionnelles (A0 à A15) permet de
gérer 216 emplacements mémoires soit 65 536 (= 64 kilo-octets = 64 * 1 024 car 1 Ko = 210 octets) appelé
aussi espace mémoire ou espace adressable.
• Le bus de commande communique avec dix bornes (12 pour le microprocesseur 6809E dont l'horloge
est externe).

Le microprocesseur :

a) Organise l'enchaînement des tâches précisées dans la mémoire du programme

 Par une exploitation séquentielle des instructions situées aux adresses successives de la
mémoire
 Avec, éventuellement, des ruptures de séquence en fonction des sauts programmées

b) Rythme et synchronise l'exécution de ces tâches


c) Analyse le contenu du programme, sélectionne, gère et commande les circuits nécessaires à
l'exécution de chaque tâche

d) Prend en compte les informations extérieures au système.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


3) Architecture interne d’un microprocesseur
Un microprocesseur est construit autour de trois éléments principaux :

- Une unité de commande (UC)


- Une unité arithmétique et logique (UAL ou ALU)
- Des registres

Ces trois éléments sont reliés entre eux par un bus interne, celui-ci permettant les échanges de données entre
les différentes parties du microprocesseur.

A noter qu’il existe deux types de registres :

- les registres d'usage général permettent à l'UAL de manipuler des données à vitesse élevée.
Ils sont connectés au bus données interne au microprocesseur.
- les registres d'adresses (pointeurs) connectés sur le bus adresses.

Unité de commande et éléments associés


Elle permet de "séquencer" le déroulement des instructions. Elle effectue la recherche en mémoire de
l'instruction, le décodage, l'exécution et la préparation de l'instruction suivante.
Unité de traitement
Cette partie regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions.

3.1 Unité arithmétique et logique :


C'est un circuit complexe qui assure les fonctions :

- arithmétiques : addition et soustraction


- logiques : ET, OU, OU exclusif
- Comparaison, décalage à droite ou à gauche, incrémentation, décrémentation, mise à 1 ou à 0
d'un bit, test de bit.

Une UAL est constituée par un certain nombre de circuits tels que : complémenteur, additionneur, décaleur,
portes logiques, ...

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


3.2 Accumulateur :
Un accumulateur est un registre de travail de 8 ou 16 bits qui sert :

- à stocker une opérande au début d'une opération arithmétique et le résultat à la fin de


l'opération.
- à stocker temporairement des données en provenance de l'extérieur du microprocesseur avant
leur reprise pour être rangées en mémoire.
- à stocker des données provenant de la mémoire ou de l'UAL pour les présenter vers l'extérieur
du microprocesseur.

3.2.1 Registre des indicateurs d'état :


Les bits de ce registre de 8 bits associés à l'UAL sont à considérer individuellement. Chacun de ces bits est un
indicateur dont l'état dépend du résultat de la dernière opération effectuée. On les appelle indicateur d’état
ou flag ou drapeaux.
Dans un programme le résultat du test de leur état conditionne souvent le déroulement de la suite du
programme. On peut citer comme indicateur :
- retenue (carry : C)
- retenue intermédiaire (Auxiliary-Carry : AC)
- signe (Sign : S)
- débordement (overflow : OV ou V)
- zéro (Z)
- parité (Parity : P)

remarque : La plupart des instructions modifient le registre d'état

3.2.2 Registre index


Le contenu de ce registre de 16 bits est une adresse. Il est utilisé dans le mode d'adressage indexé.

3.2.3 Registres auxiliaires


Ils permettent de stocker le résultat des instructions exécutées par l’ALU.

3.3 Cycle d’exécution d’une instruction


L’exécution d’une instruction se décompose en trois phases qui sont :

- la recherche de l’instruction à traiter.


- le décodage de l’instruction.
- l’exécution de l’instruction.
Programmation d’un microprocesseur
La conception et la mise en œuvre des programmes qui permettent une bonne utilisation d'un microprocesseur
nécessitent la connaissance:

- du jeu d'instructions, avec leur expression mnémonique, leur code opération, leur relation
fonctionnelle,
- des procédures de gestion de la pile.
- des modes d'adressage.
Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839
- du comportement des indicateurs d'état.
- du traitement des interruptions.

Si certaines de ces données sont communes à différentes familles de microprocesseur, d'autres sont spécifiques à une seule.

4. Présentation physique d’un microprocesseur


4.1. Brochage du Microprocesseur INTEL 8086
Le microprocesseur Intel 8086 est un microprocesseur 16 bits, apparu en 1978. C’est le premier
microprocesseur de la famille Intel 80x86 (8086, 80186, 80286, 80386, 80486, Pentium, ...). Il se présente
sous la forme d’un boîtier DIP (Dual In-line Package) à 40 broches :

Figure 1 : brochage du 8086

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


4.2. Schéma fonctionnel

4.3. Architecture interne du 8086

4.3.1 Les unités d’exécution et d’interfaçage avec le bus


Il existe deux unités internes distinctes : l'UE (Unité d'Exécution) et l'UIB (Unité d'Interfaçage avec le Bus).
Le rôle de l'UIB est de récupérer et stocker les informations à traiter, et d'établir les transmissions avec les
Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839
bus du système. L'UE exécute les instructions qui lui sont transmises par l'UIB. L'image ci-dessous résume
les notions présentées ici. Le microprocesseur pris comme exemple est le 8086/8088. Les processeurs
actuels de la famille x86 traitent les informations de la même façon.
Lorsque l'UE a fini de traiter une instruction l'UIB lui transmet instantanément l'instruction suivante, et
charge la troisième instruction en vue de la transmettre à l'UE. De cette façon, l'UE est continuellement en
activité.

4.3.2 Registres internes du 8086

4.4 Le microprocesseur 6809

Le MC6809 est un microprocesseur à 8 bits très rapide et doté de caractéristiques supportant les techniques
de programmation moderne telles que la position indépendante du code, la ré-entrée et la programmation
modulaire. Différentes versions du MC6809 sont offertes, voici la désignation du numéro de code.

Brochage du MC6809

Le microprocesseur 6809 est alimenté par une tension unique de +5 volts, ±5 % sur la broche
VCC. La broche VSS constitue la masse du boîtier ou 0 volt.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Xtal et Extal
Ce sont sur ces broches que le cristal est installé afin de déterminer la vitesse d'opération. Le quartz ou la
fréquence externe est quatre fois la fréquence de travail désirée. En fonction, on retrouve, sur ces
broches, une onde sinusoïdale à la fréquence du cristal dont l'amplitude est d’environ 2.5volts. Une
horloge TTL peut être branchée à la place du cristal sur la broche EXTAL; alors, XTAL est relié à la
masse.
E et Q
E est le signal d'horloge du système pour la synchronisation avec les périphériques. Le signal Q est un
signal à la même fréquence mais déphasé de +90° par rapport au signal E du CPU. Les adresses du CPU
sont validées à partir du front montant de Q. Les données sont mémorisées sur un front descendant de E.

RESET
Un niveau bas sur cette entrée entraîne une réinitialisation complète du microprocesseur.
MRDY
Cette entrée de commande Memory Ready permet l'allongement du cycle d’horloge E afin de ralentir le
microprocesseur lorsqu’il tente de communiquer avec des dispositifs plus lents. Normalement, MRDY
est branché à +5 volts. On peut allonger E par des multiples de ¼ de cycle machine et sa valeur
maximale est de 10 microsecondes.
Bus de donnée D0 à D7
La communication entre le microprocesseur et les autres boîtiers se fait par l'intermédiaire d'un bus de
donnée bidirectionnel de 8 bits. Les lecteurs de bus du CPU sont en logique trois états. Chaque broche
peut piloter une charge TTL ou 4 charges TTL-LS ce qui représente la charge statique maximum. La
charge dynamique permise par broche est de 130 pF.
Bus d’adresses A0 à A15
Le transfert des adresses du microprocesseur vers le bus d’adresses du système se fait par l'intermédiaire
de 16 broches unidirectionnelles. Lorsque le microprocesseur exécute un cycle de travail interne, toutes
les lignes d’adresses sont à un niveau haut ; donc l’adresse à ce moment est $FFFF.
R/W
Cette broche de sortie détermine la direction du transfert sur le bus des données. Si R/W = 1, le
microprocesseur est en lecture ; D0 à D7 sont en entrées. Si R/W = 0, le processeur est en écriture ; D0 à
D7 sont en sorties. Cette broche est à haute impédance lorsque le microprocesseur libère les bus.
/HALT
Cette entrée permet d'interrompre le déroulement d'un programme de façon matérielle. Le
microprocesseur termine l'instruction en cours puis positionne BA et BS à un niveau haut. Tant que la

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


ligne /HALT est à 0, le processeur ne travaille pas. Il reprend la suite du programme lorsque la ligne
remonte à 1. Aucun registre n'est affecté durant l'arrêt.
Tant que le processeur est à l'arrêt:
- les horloges E et Q fonctionnent normalement ;
- les demandes d'interruptions /IRQ et /FIRQ sont inhibées ;
- les demandes d'interruptions prioritaires /RESET et /NMI sont prises en compte mais leur
traitement est retardé.
DMA/BREQ
DMA = Direct Memory Access ; BREQ = Bus Request
Cette entrée permet de suspendre l'utilisation des bus par le CPU pour faire un accès direct à la mémoire
DMA. Le passage à l'état bas de DMA/BREQ entraîne l'arrêt du programme à la fin de l'instruction en
cours. BA et BS passent à un niveau 1 et indiquent la disponibilité des bus au circuit demandeur. Après
16 cycles, le CPU reprend les bus pour un rafraîchissement interne. Évidemment, les lignes BA et BS
nous informent de cet état.
BA et BS
Ce sont des lignes de sorties qui indiquent l'état du processeur. BA pour Bus Available et BS pour Bus
State. Lorsque BA = 1, les lignes A0 à A15, D0 à D7 et R/W sont dans un état de haute impédance. Les
signaux BA et BS sont très utiles pour les applications possédant un périphérique capable de gérer les
bus d’adresses et de données à la place du microprocesseur (un contrôleur DMA, par exemple). Les
quatre combinaisons possibles des lignes BA et BS permettent de connaître à chaque instant, l'état du
microprocesseur. Ces indications sont validées sur le front montant de Q.

BA BS Fonctionnement du MPU
0 0 normal
0 1 reconnaissance d'interruption
1 0 reconnaissance de synchro externe
1 1 arrêt ou bus accordé

NMI, FIRQ, IRQ


- /NMI = Non Masquable Interrupt
- /FIRQ = Fast Interrupt Request
- /IRQ = Interrupt Request
Ce sont des entrées qui permettent d'interrompre le processeur. Les interruptions ont des niveaux de
priorités différentes. L'interruption NMI est la plus prioritaire, suivie de FIRQ et, en dernier, IRQ. Les 2
masques (F) et (I) font partie du registre de condition CC.
Interruption active Particularité
NMI sur une descente non-masquable.
FIRQ sur un niveau bas masquable. (F)
IRQ sur un niveau bas masquable. (I)

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Lorsqu'une interruption est demandée et n'est pas masquée, un programme d'interruption est exécuté.
Lorsque celui-ci est terminé, le processeur retourne au programme interrompu pour compléter son
exécution.

5. Les mémoires
5.1. Généralités sur les mémoires
Un ordinateur a deux caractéristiques essentielles qui sont la vitesse à laquelle il peut traiter un grand
nombre d’informations et la capacité de mémoriser ces informations. C’est cette deuxième
caractéristique que nous allons étudier.
Mémoire : Unité Fonctionnelle qui peut recevoir, conserver et restituer des informations.
On distingue deux grands types de mémoires : les mémoires centrales (électroniques) et les mémoires de
masse.
Les différents éléments de la mémoire d’un ordinateur sont ordonnés en fonction des critères suivants :
temps d’accès, capacité, et coût.
5.1.1. La mémoire centrale
C’est l’organe principal de rangement des informations utilisées par le CPU. Pour exécuter un programme, il
faut le charger en mémoire centrale. Cette mémoire est une mémoire à semi-conducteur.
5.1.2. La mémoire d’appui
Sert de mémoire intermédiaire entre la mémoire centrale et les mémoires auxiliaires. Elle est présente dans
les ordinateurs les plus évolués et permet d’augmenter la vitesse d’échange des informations entre ces deux
niveaux.
5.1.3. La mémoire de masse ou mémoire auxiliaire est une mémoire périphérique de grande capacité et de
coût relativement faible utilisée pour le stockage permanent des informations.
Elle utilise pour cela des supports magnétiques (disque dur, ZIP) ou optiques (CDROM, DVDROM).

5.2. Caractéristiques des mémoires

 Adresse : c’est la valeur numérique désignant un élément physique de mémoire. Par exemple
l’adresse d’un mot en mémoire centrale.

 La capacité d’une mémoire indique la quantité de données que la mémoire peut stocker. Cette
capacité se mesure en bits, en octets, en mots.
C = 2N x M avec N=nombres de cases mémoires (lignes du bus d’adresse) et M= longueur du mot
(nombre de lignes de données).

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


 Temps d’accès : c’est le temps qui s’écoule entre le lancement d’une opération d’accès (lecture ou
écriture) et son accomplissement.

 Cycle mémoire : c’est le temps minimal s’écoulant entre deux accès successifs à la mémoire. Il est
plus long que le temps d’accès car le bon fonctionnement de la mémoire nécessite quelques
opérations de maintien, de stabilisation des signaux dans les circuits, de synchronisation, etc.
Exemple : Chronogramme d’un cycle de lecture

 Débit : C’est le nombre d’informations lues ou écrites par secondes.

 Volatilité : elle caractérise la permanence des informations dans une mémoire.


L'information stockée est volatile si elle risque d'être altérée par un défaut d'alimentation électrique et non
volatile dans le cas contraire.

 Format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire.
On dit aussi que c’est la largeur du mot mémorisable.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


5.3. Les différents types d’accès
 Accès séquentiel : c’est l’accès le plus lent. Pour accéder à une information particulière, on est
obligé de parcourir toutes celles qui la précèdent. (exemple: les bandes magnétiques)
 Accès direct : les informations ont une adresse propre, ce qui permet d’y avoir accès directement
(exemple: mémoire centrale, registres)
 Accès semi-séquentiel : c’est une combinaison des accès direct et séquentiel. Par exemple pour un
disque magnétique, l’accès au cylindre est direct et l’accès au secteur est séquentiel.

5.4. Mémoire centrale


Contient les instructions et les données des programmes que l’on désire exécuter, ainsi qu’une partie du
système d’exploitation nécessaire au bon fonctionnement de l’ordinateur. C'est la partie où l'on retrouve les
programmes exécutables et les données à traiter. Cette section est subdivisée en deux ; d'une part, il y a la
mémoire latente et d'autre part, la mémoire vive.
 Mémoires vives (mémoires de données)
 Mémoires mortes (mémoires programme)
 Mémoires spécialisées

5.4.1. Présentation des mémoires centrales

Nous nous intéresserons uniquement aux mémoires centrales et plus précisément aux ROM et RAM.
La mémoire contient le programme (sous forme d’instructions codées en binaire) et les données
(informations utilisables au cours de l’exécution). Sa structure de base est donnée par la figure suivante :

Deux opérations sont possibles : lecture (Read R) ou écriture (Write W).


CS : Chip Select : sélection boitier (active au niveau bas)

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


5.4.2. Les ROM : Mémoire morte
C'est la mémoire de lecture ; elle contient le programme du système. L'avantage de la ROM (Read Only
Memory), c’est d'être permanente ; son contenu ne disparaît pas quand le système n'est plus alimenté. La
ROM contient toujours un programme de chargement initial ou un moniteur pour permettre le
fonctionnement du système dès la mise sous tension. Dans un contexte de contrôle de processus, presque
tous les programmes résideront en ROM car ils seront rarement changés et devront être protégés des
pannes d'alimentation.
Les ROM sont à accès aléatoire. Le brochage d’une ROM est donné par le schéma ci-dessous.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


5.4.3. Les mémoires vives
Brochage des mémoires vives

C’est la mémoire de lecture et d’écriture du système ou


RAM (Random Access Memory). Le contenu de ce type de
mémoire est perdu lorsque l'on coupe l'alimentation. La
mémoire vive (RAM) doit être chargée, avant utilisation, à
partir du clavier ou à partir d’une mémoire de masse comme,
par exemple, une unité à ruban magnétique ou une unité à
disque.

A0
A1
A2 LECTURE
ADRESSES
A3 RAM
A4 ECRITURE
A5 256 * 4
A6
A7

D0 D1 D2 D3
DONNEES

Les différents types de RAM

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


5.4.4. Interfaçage avec les ROM
Description d’une opération de lecture
• Sélection de l’adresse mémoire par application de la combinaison désirée sur le bus d’adresse.
• Sélection du circuit par activation de la broche Chip Select (CS).
• Activation de la commande de lecture
• Lecture de l’information et mise en place sur le bus de données

5.4.5. Interfaçage avec les RAM


Description d’une opération d’écriture
• Sélection de l’adresse mémoire par application de la combinaison désirée sur le bus d’adresse.
• Mise en place de la donnée sur le bus de données
• Sélection du circuit par activation de la broche Chip Select (CS).
• Activation de la commande d’écriture

6. Les entrées/sorties
Les entrées/sorties sont nécessaires pour que le microprocesseur communique avec le monde extérieur
et, évidemment, avec l'utilisateur. Ce sont des circuits intégrés servant d’interfaçage entre les
périphériques et le microprocesseur.
Les circuits d'entrée/sortie sont des circuits qui permettent l'acquisition et le transfert des données depuis
et vers l'extérieur.
Ils constituent également une séparation physique entre le microprocesseur et l'extérieur.
Le dialogue du microprocesseur à travers ces circuits peut se faire avec : clavier, écran, mémoire de
masse (HD, FD, CD), imprimante, modem, CD, convertisseurs (DAC, ADC), . . .
On appelle terminal tout dispositif menu d'un clavier et un affichage vidéo pouvant communiquer avec
un système à microprocesseur. (VDT : Video Display Terminal).

7. Les bus de communication


Évidemment, pour que le système fonctionne, il doit y avoir une communication entre le
microprocesseur, la mémoire et les entrées/sorties. Cette communication est réalisée à l'aide de trois bus
qui regroupent les signaux, selon leur fonction.
Le bus de données : C'est un bus bidirectionnel (de 8 bits pour un µp 6809) sur lequel transitent les
données échangées par les éléments du système.
Le bus d’adresses : Il s'agit d'un bus unidirectionnel (de 16 bits pour un µp6809), émanant du
microprocesseur et se propageant vers les dispositifs qu'il peut adresser. L'adresse qu'il porte permet
d'atteindre une case mémoire ou un registre spécifique avec laquelle une opération est désirée.
Le bus de contrôle : C'est un groupe de lignes issues de ou allant vers le microprocesseur et reliant ce
dernier à d'autres dispositifs. Son rôle est de véhiculer les signaux destinés à assurer la synchronisation et
la commande de l'ensemble du système. Par exemple, la ligne Reset et R/W (lecture/écriture), les lignes
d'interruptions et l'horloge appartiennent à ce bus.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


IV. Décodage d’adresses
1. Principe et fonction
Un système à microprocesseurs possède toujours plusieurs mémoires séparées (au moins une RAM, une
ROM et un PIA). Cet ensemble est vu comme une mémoire unique globale par le microprocesseur et est
appelé espace d'adressage.
Le microprocesseur doit communiquer avec les différentes mémoires et les différents boîtiers d’interface.
Ceux-ci sont reliés au microprocesseur par l’intermédiaire de bus de données qui est commun à toutes les
mémoires. Afin d’éviter tout conflit sur le bus de données, un seul composant doit être sélectionné à la fois.
C’est le rôle du décodage d’adresses. Il permet d’activer une seule mémoire à la fois en fonction de l'adresse
qui nous intéresse. A une adresse présentée par le microprocesseur, un seul circuit mémoire doit répondre.
Le circuit décodeur d’adresses peut être réalisé à l’aide des composants logiques (portes logiques) ou à
l’aide du circuit spécial décodeurs/démultiplexeurs.
Le décodeur d’adresses a pour fonction de générer des signaux pour la sélection des différents boîtiers
mémoires ou périphériques avec lesquels le microprocesseur doit communiquer. Pour éviter que deux
boîtiers répondent simultanément et créent alors un conflit sur les bus, chaque boîtier doit répondre à une
plage d’adresses différente des autres boîtiers.

Chacun de ces composants (mémoires, périphériques…) possède une broche appelée CS (Chip Select)
ou CE (Chip Enable), OE (Output Enable), G… qui permet selon l’état logique appliqué, soit :

- de le sélectionner ( CS ou CE = 0 )
- de le déconnecter électriquement du bus de données (CS ou CE = 1).

Dans ce dernier cas, on dit que les sorties du composant sont en haute impédance (HZ).

2. Représentation fonctionnelle

Le décodage d'adresse permet de définir l'emplacement des différentes zones mémoires dans l'espace
adressable.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Pour cela sa fonction est de produire les différents signaux de sélection (CS) des circuits communiquant
avec le µP : mémoires, CNA, CAN, circuit d'interface parallèle ou série ...

3. Elaboration d’un plan mémoire

a. On compte le nombre de bits du bus d’adresses.


b. On trace un tableau avec :
- une colonne pour chaque bit d’adresse,
- une colonne pour le codage hexadécimal des adresses,
- une colonne pour le nom des composants sélectionnés.
c. On identifie la structure réalisant le décodage. Elle se situe toujours sur les bits de poids fort du bus
d’adresse.
d. On complète la partie du tableau correspondant aux bits utilisés pour le décodage.
e. On identifie le composant relié à chacune des sorties de la fonction décodage.
f. On indique sa référence dans le tableau.
g. On vérifie que sa capacité correspond à la zone mémoire qui lui a été attribuée. On détermine le nombre
d’image que possède le composant si nécessaire.
h. Lorsque le tableau est complet, on peut tracer le plan mémoire de la carte.

Principe de gestion des zones d’adresses :


 Les adresses complémentaires (adresses hautes) sont fixes et sont reliées aux entrées du
décodeurs d’adresse.
 Les adresses directes sont reliées aux mémoires. Leur nombre est fonction de la capacité
de chaque circuit mémoire.

4. DECODAGE D’UNE SEULE ADRESSE : DECODAGE PAR PORTES LOGIQUES

Exemple 1 : Donner l’équation de S si l’on veut sélectionner un


boîtier mémoire par l’adresse FA45.

S=

Exemple 2 : Un circuit mémoire RAM est implanté dans la zone adressable de $2000 à $2FFF.
Déterminer sa capacité d’espace adressable, sa capacité et son nombre de lignes d’adresses.
Proposer un schéma logique (portes logiques) du circuit décodeur d’adresses.
Schématiser l’ensemble : µP + Circuit Décodeur + Mémoire RAM.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


5. DECODAGE PAR DEMULTIPLEXEUR (OU DECODEUR)
Un démultiplexeur permet de décoder plusieurs zones
mémoires de même capacité.
Exemple : *démultiplexeur 1---˃2 ;
*démultiplexeur 1---˃4 ;
* décodeur/démultiplexeur 74HC138

Fig. : Partitionnement de l'espace d'adressage

L'exemple qui suit montre l'organisation d'un espace


d'adressage 16 bits (64k). Les adresses sont exprimées en
hexa (regroupement des adresses par 4) pour plus de
concision.

FIG : Organisation d'un espace mémoire 64k

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Plan mémoire associé :

6. Analyse d’un décodeur d’adresses


À titre d’exemple, prenons le premier décodeur
d’adresses du système à microprocesseur Mod.
E6809. On peut remarquer que seules quelques
lignes du microprocesseur sont branchées sur le
décodeur 74LS139 et que celui-ci est validé par
la broche E du 6809. Il faut donc un niveau 1 sur
l’horloge E pour permettre au décodeur de
travailler.
De plus, ce sont les lignes d’adresses A15 et A14 qui décident quelle sortie du 74LS139 sera active. Pour
établir la plage d’adresses qui permet d’activer un signal de sélection choisi, on dispose, en ordre, les
lignes d’adresses en plaçant A15 à gauche et A0 à droite. On place, dans le tableau, les niveaux logiques
nécessaires pour que la sortie soit active. L’exemple suivant montre quelle plage d’adresses active la
sortie /Y2.
On place un X pour toutes les lignes d’adresses non utilisées. La sortie active ne peut pas être influencée
par le niveau de ces lignes. L’adresse minimale est obtenue en supposant que tous les X sont à un niveau
0; cela correspond donc à l’adresse hexadécimale $8000. Pour l’adresse maximale, les X représentent
des niveaux 1; l’adresse obtenue est $BFFF. La plage d’adresses correspondante au signal /Y2 est donc
$8000 à $BFFF.
Cartographie du système Mod. E6809

Exemple décodeur d’adresses du système Mod. E6809.

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Cartographie complète du système à microprocesseur Mod. E6809.
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Chip select
0 0 x x x x x x x x x x x x x x IC15A-Y0 = $0000 à $3FFF

0 1 x x x x x x x x x x x x x x IC15A-Y1 = $4000 à $7FFF

1 0 x x x x x x x x x x x x x x IC15A-Y2 = $8000 à $BFFF

1 1 x x x x x x x x x x x x x x IC15A-Y3 = $C000 à $FFFF

1 1 0 0 x x x x x x x x x x x x IC15B-KEYB = $C000 à $CFFF

1 1 0 1 x x x x x x x x x x x x IC15B-DISPL = $D000 à $DFFF

1 1 1 0 x x x x x x x x x x x x IC15B-UEPROM = $E000 à $EFFF

1 1 1 1 x x x x x x x x x x x x IC15B-SEPROM = $F000 à $FFFF

0 0 0 0 x x x x x x x x x x x x IC16A-Y0 = $0000 à $0FFF

0 0 0 1 x x x x x x x x x x x x IC16A-Y1 = $1000 à $1FFF

0 0 1 0 x x x x x x x x x x x x IC16A-Y2 = $2000 à $2FFF

0 0 1 1 x x x x x x x x x x x x IC16A-Y3 = $3000 à $3FFF

0 0 0 1 0 0 x x x x x x x x x x IC16B-SER = $1000 à $13FF

0 0 0 1 0 1 x x x x x x x x x x IC16B-PAR = $1400 à $17FF

0 0 0 1 1 0 x x x x x x x x x x IC16B-D/A = $1800 à $1BFF

0 0 0 1 1 1 x x x x x x x x x x IC16B-A/D = $1C00 à $1FFF

0 0 0 0 0 x x x x x x x x x x x IC14B-RAM1 = $0000 à $07FF

0 0 0 0 1 x x x x x x x x x x x IC14C-RAM2 = $0800 à $0FFF

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


V. Les langages de programmation
Il existe plusieurs langages de programmation ; toutefois, le langage machine est le seul compris par les
microprocesseurs et est incontestablement le plus rapide à exécuter. Le langage assembleur permet
d’utiliser des mnémoniques pour remplacer les codes machines difficiles à interpréter. Les langages
évolués bénéficient de librairies de fonctions rendant la programmation plus simple à développer.
1. Langage machine : En binaire : 10100101 ; 01100000 ; 01100101 ; 01100001 ; 10000101 ; 01100010

En hexadécimal : A5 ; 60 ; 65 ; 61 ; 85 ; 62

2. Langage Assembleur : LDA $60 ; ADC $61 ; STA $62


3. Langage de haut niveau : - Basic; - C; - Pascal; - ...

VI. Jeux d’instructions


Le jeu d'instructions est l'ensemble des opérations élémentaires qu'un μP peut effectuer.
Voyons maintenant ce qui se passe du côté du microprocesseur : chaque type de microprocesseur
possède un jeu d'instructions déterminé. Une instruction est une opération élémentaire exécutable par le
microprocesseur. Le jeu d'instructions d'un μP comporte typiquement quelques dizaines à quelques
centaines d'instructions.
On rencontre 4 types d’instructions :
1. les instructions de traitement (opérations logiques ou arithmétiques élémentaires sur des bits ou des
mots binaires)
2. les instructions qui permettent de déplacer des valeurs entre des registres internes du processeur
3. les instructions qui permettent d'échanger des valeurs (lecture et écriture) avec les mémoires externes
au processeur (mémoire de données et périphériques)
4. les instructions permettant de modifier l'ordre d'exécution d'un programme (instructions de
branchement, notamment les boucles)

VII. Etude logicielle : programmation en assembleur 8086


1. Les modes d’adressage
2. Les instructions du 8086
2.1 Les instructions de transfert
Les instructions de transfert
PUSH Op : Empiler l’opérande Op (Op doit être un opérande 16 bits)
POP Op : Dépiler dans l’opérande Op (Op doit être un opérande 16 bits)
MOV Od , Os : Copie l'opérande Source dans l'opérande Destination
MOV R1 , R2 : copier un registre dans un autre
MOV R , M : copier le contenu d’une case mémoire dans un registre
MOV M , R : copier un registre dans une case mémoire
MOV R , im : copier une constante dans un registre
MOV taille M , im : copier une constante dans une case mémoire
(taille = BYTE ou WORD)

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


2.3 Les instructions Arithmétiques
INC (incrémentation)
DEC (décrementation)
ADD (addition)
SUB (soustraction)
CMP (soustraction sans sauvegarde)
NEG

2.4. Les instructions logiques


NOT, OR, XOR
AND, TEST (= AND sans sauvegarde)
SHL (SHR), SAL (SAR)
ROL (ROR), RCL (RCR)

2.5. Les masques logiques


2.6. Les instructions de décalage
2.7. Instructions agissant sur les indicateurs
2.8 Les instructions de contrôle de boucle

2.9. Les instructions de branchement


**Saut inconditionnel
JMP
** Saut conditionnel
Pour effectuer un branchement, il faut dans bien des situations faire une comparaison. Il existe une seule
instruction de cette catégorie permettant de comparer deux registres ou emplacements de mémoire:
CMP.
Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839
Les opérations de comparaison sont toujours suivies d'une instruction de branchement conditionnel car
elles affectent les indicateurs du registre Drapeau. Le résultat de la comparaison est indiqué par les
indicateurs. Les cinq formes disponibles de cette instruction sont:
CMP reg, imm CMP AX, 0Ah
CMP reg, mem CMP AX, [BX]
CMP mem, imm CMP [BX], 0Ah
CMP mem, reg CMP [BX], AX
CMP reg, reg CMP AX, BX
"reg" étant un registre de 8 ou 16 bits (sauf un registre de segment);
"mem" étant une adresse (ou un identificateur);
"imm" est une valeur immédiate (constante).
Ces instructions sont divisées en trois groupes :
• Le premier groupe effectue le test sur un bit du registre d’état et fait le branchement :

Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839


Electroniq numériq syst prog ELT2_GBM2_RIT2_EII2 Enseignant : Coulibaly S. 70758839

Vous aimerez peut-être aussi