Vous êtes sur la page 1sur 14

Chapitre I

INTRODUCTION AUX SYSTEMES À BASE DE


MICROPROCESSEURS
I.1- Définition :
Un microprocesseur est un composant électronique qui regroupe un nombre
important de transistors élémentaires interconnectés. Le microprocesseur réalise les
fonctions d’unité centrale de traitement (CPU : Central Processing Unit) : Il exécute
SYSTÈMES À MICROPROCESSEURS séquentiellement des instructions envoyées par un programme. Le premier microprocesseur
(Intel 4004) fût inventé en 1972. Le microprocesseur est le cerveau de l’ordinateur, c’est lui
qui coordonne le reste des éléments, il se charge des calculs et exécute les instructions qui lui
ont été programmées. Toutes ces opérations sont des informations numériques (0 ou 1).

NOTES DE COURS I.2 - Composition interne d’un microprocesseur:


Un microprocesseur est constitué de circuits logiques. Ces circuits sont composés de

A. BA-RAZZOUK transistors qui fonctionnent en interrupteurs ouverts ou fermés. On utilise deux sortes de
technologies: MOS et CMOS, à partir desquelles sont construites les fonctions logiques de
base (OU logique, ET logique, NON). Ces fonctions de base constituent le circuit interne du
microprocesseur et servent à concevoir d’autres fonctions plus complexes comme, l’addition,
la soustraction … En effet, il est impossible de câbler toutes les instructions sur un
processeur car celui-ci est limité par la taille de la gravure, et celle du silicium. Ainsi pour
mettre plus d’instructions il faudrait un processeur ayant une très grande surface de silicium.
Le silicium coûte cher, d’autre part il chauffe beaucoup. Le processeur traite donc les
informations compliquées à l’aide d’une série d’instructions simples.

I.3 – Structure CISC et structure RISC des microprocesseurs :

I.3.1 - La structure CISC :


Année universitaire 2011 – 2012 L’architecture CISC (Complex Instruction Set Computer : «ordinateur avec jeu
Semestre 5 d’instructions complexes»). Les processeurs basés sur l’architecture CISC peuvent traiter des
instructions complexes, qui sont directement câblées sur leurs circuits électroniques, c’est-à-
dire que certaines instructions difficiles à créer à partir des instructions de base sont

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 1/27


directement imprimées sur le silicium de la puce afin de gagner en rapidité d’exécution sur On pourrait conclure que les processeurs basés sur une architecture de type RISC sont
ces commandes. les plus utilisés. Cependant, ce n’est pas le cas. En effet, les ordinateurs construits autour
L’inconvénient de ce type d’architecture provient justement du fait que des fonctions d’une architecture RISC nécessitent une quantité de mémoire plus importante que les
supplémentaires sont imprimées sur le silicium, d’où un coût élevé, échauffement ordinateurs de type CISC.
supplémentaire … Cette technologie est basée sur un jeu de plus de 400 instructions. Les Les processeurs RISC ont un jeu d’instructions réduit mais pour exécuter une
instructions sont de longueurs variables et peuvent parfois prendre plus d’un cycle d’horloge instruction, ils ont besoin de nombreuses instructions élémentaires comparés aux
ce qui les rend lentes à l’exécution étant donné qu’un processeur basé sur l’architecture CISC processeurs CISC. Pour un même résultat, un processeur RISC doit donc exploiter des
ne peut traiter qu’une instruction à la fois! instructions plus nombreuses (qui sont cependant plus simples et donc plus rapides à
L’architecture CISC est utilisée par tous les processeurs de type x86, c’est-à-dire les exécuter). La taille des programmes des processeurs RISC est notablement plus grande (peut
processeurs fabriqués par Intel, AMD, Cyrix, ... atteindre le double) car ils sont écrits avec des instructions moins expressives. Les
processeurs RISC sont caractérisés par l’utilisation de nombreux registres qui réduisent les
I.3.2 - La structure RISC : échanges de données avec la mémoire, très peu de formats d’instruction différents pour
Contrairement à l’architecture CISC, un processeur utilisant la technologie RISC faciliter et accélérer le décodage des instructions ainsi qu’un schéma de séquencement unique
(Reduced Instruction Set Computer : «ordinateur à jeu d’instructions réduit») n’a que très des instructions pour en simplifier l’exécution.
peu de fonctions supplémentaires câblées. Cela impose donc des programmes ayant des
instructions simples interprétables par le processeur et se traduit par une programmation I.4 - Horloge :
plus difficile qui nécessite un compilateur plus puissant. Le fonctionnement d’un processeur est cadencé et synchronisé par une horloge.
Pour les instructions qui ne peuvent pas être décrites à partir d’instructions simples, et L’horloge est réalisée à base d’un circuit à quartz, constituant une horloge de précision. On
qui sont en fait peu nombreuses dans cette architecture, elles sont câblées directement sur le peut également trouver le circuit d’horloge à quartz intégré au microprocesseur.
circuit électronique des processeurs sans alourdir de manière significative leur fabrication. A chaque coup d’horloge le processeur effectue une opération élémentaire. Ainsi, plus
L’avantage d’une telle architecture est bien évidemment le coût réduit de fabrication la fréquence d’horloge est élevée, plus le processeur effectue d’opérations par seconde
des processeurs. De plus, les instructions étant simples et peu nombreuses (128 instructions (MIPS: Million d’Instructions Par Seconde). A titre d’exemple un processeur ayant une
de base), peuvent être exécutées en un cycle d’horloge, ce qui rend l’exécution des fréquence de 100 MHz effectue 100 000 000 instructions élémentaires par seconde. La
programmes plus rapide qu’avec des processeurs basés sur une architecture CISC. De plus, fréquence est un élément déterminant de la vitesse du microprocesseur. Il convient de savoir
de tels processeurs sont capables d’exécuter plusieurs instructions simultanément en les qu’une opération effectuée par l’utilisateur peut correspondre à de nombreux cycles pour le
traitant en parallèle. processeur. Mais, plus la fréquence est élevée, plus le processeur réagira vite.

I.3.3 - Comparaison des structures CISC et RISC : I.5 - Architecture d’un microprocesseur :
À comparer les spécificités des deux architectures, on préfèrerait utiliser les processeurs Un microprocesseur peut être divisé en trois grandes parties :
RISC. En effet, un processeur RISC peut atteindre une vitesse d’exécution jusqu’à 70% plus • Un ensemble de registres ;
rapide qu’un processeur CISC de même fréquence. • Une unité de contrôle (UC) ;
• Une unité arithmétique et logique (UAL).

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 2/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 3/27
I.5.1 - Les registres : I.5.2 - L’unité de contrôle:
Les registres sont de petites mémoires, à accès parallèle, dont la capacité peut varier L’unité de contrôle (UC) est le centre nerveux du microprocesseur. Elle permet de
d’un à plusieurs octets. On distingue deux types de registres : les registres d’usage général et "séquencer" le déroulement des instructions et mettre en place chaque section du
les registres d’adresses (pointeurs). microprocesseur à tour de rôle. Elle effectue la recherche en mémoire de l’instruction, et
après que le code opératoire d’une instruction, chargé dans le registre d’instructions, soit
a) Les registres d’usage général : décodé, l’UC exécute l’instruction en animant les circuits électroniques internes nécessaires à
Ce sont des mémoires rapides, à l’intérieur du microprocesseur, qui permettent à l’UAL cette exécution (mise en place des portes logiques) et prépare l’instruction suivante.
de manipuler des données à vitesse élevée. Ils sont connectés au BUS de données interne du L’UC contrôle en plus tous les drivers des BUS, achemine les données entre les
microprocesseur. L’adresse d’un registre est associée à son nom (on donne généralement registres, anime les opérations sur les données en utilisant l’UAL et stocke le résultat dans les
comme nom une lettre : A, B) registres adéquats. L’unité de contrôle élabore tous les signaux de synchronisation internes
Exemple : TFR A, B : transfert du contenu du registre A dans le registre B. ou externes au microprocesseur (BUS de commande) et délivre tous les signaux nécessaires
au fonctionnement du microprocesseur.
b) Les registres d’adresses (pointeurs) :
Ce sont des registres connectés sur le BUS d’adresses. On peut citer comme registres: 1.5.3 - L’unité arithmétique et logique « UAL »:
• Le compteur ordinal (compteur programme PC) ; L’unité arithmétique et logique (UAL) est chargée de traiter et d’exécuter les opérations
• Le pointeur de pile (Stack Pointer SP) ; arithmétiques et logiques du programme. L’UAL possède un additionneur n bits et des
• Les registres d’index. fonctions logiques (n étant le nombre de bits du microprocesseur).
Le compteur ordinal (PC) contient l’adresse de l’instruction à rechercher en mémoire. L’UAL est un circuit qui peut effectuer plusieurs opérations sur deux nombres binaires.
L’unité de contrôle incrémente le compteur ordinal du nombre d’octets sur lequel Tous les ordinateurs contiennent une UAL comme un module à l’intérieur de l’unité centrale
l’instruction en cours d’exécution est codée. Le compteur ordinal contiendra alors l’adresse de traitement (CPU). L’UAL réalise des opérations arithmétiques et logiques spécifiées par
de l’instruction suivante. les instructions d’un programme.
Le pointeur de pile contient l’adresse de la pile. Celle-ci est une partie de la mémoire, La figure I.1 est un exemple d’une UAL à 1 bit. Les entrées X et Y sont deux variables
elle permet de stocker des informations (le contenu des registres) relatives au traitement des booléennes sur lesquelles une opération particulière est réalisée. La sortie Z est le résultat de
interruptions et des sous-programmes. La pile est gérée en LIFO : (Last In First Out) l’opération. L’UAL montrée réalise l’une des quatre fonctions (NON, OU, ET ou SOMME)
dernier entré premier sorti. Le fonctionnement est identique à une pile d’assiettes. Le sur les entrées X et Y pour générer le résultat Z. La fonction réalisée est déterminée par les
pointeur de pile SP pointe le haut de la pile, il est décrémenté avant chaque empilement et valeurs des entrées fonctionnelles F0 et F1. Par exemple, lorsque F0 et F1 sont à 0 et 1
incrémenté après chaque dépilement. respectivement, une opération OU est réalisée sur les entrées X et Y. Lorsque F0 et F1 sont
Les registres d’index permettent de mémoriser une adresse particulière (par exemple : toutes les deux à 1, une opération d’addition est réalisée et l’entrée de retenue de même que
début d’un tableau dans la mémoire). Ces registres sont aussi utilisés pour adresser la la sortie de retenue sont utilisées. La table de vérité de la figure I.1 résume ces opérations.
mémoire de manière différente. C’est le mode d’adressage indexé.

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 4/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 5/27
Sortie retenue I.6 - Circulation de l’information dans un microprocesseur :
Tous les programmes qui sont exécutés par le microprocesseur sont contenus dans la

D0
mémoire. Chaque instruction du programme est représentée par un mot de 8 bits, appelé
Multiplexeur
X D1
4 entrées code opératoire (Op-code), qui est stocké à une adresse mémoire. Pour exécuter les
Z
instructions d’un programme, le microprocesseur réalise un cycle d’exécution pour chaque
D2
Y
D3 A B instruction.
Unité
logique On distingue 4 étapes pour réaliser un cycle d’exécution d’une instruction (figure I.2):
Additionneur 1. Recherche de l’instruction en mémoire;
complet
2. Décodage de l’instruction ;
F0
F1 3. Exécution de l’instruction ;
4. Retour au début.
Entrée retenue
F0 F1 Z
0 0 X
0 1 X +Y Recherche
1 0 X .Y
1 1 ∑ (X ,Y )

Figure I.1 - UAL à 1 bits et 4 fonctions Décodage

L’UAL de la figure I.1 peut être considérée comme un module, qui contient trois sous- Exécution

modules: un additionneur complet, une unité logique et un multiplexeur à 4 entrées.


L’additionneur complet et l’unité logique sont utilisés pour réaliser des opérations de Figure I.2 - Cycle d’exécution des instructions
sommation et des opérations logiques sur les variables d’entrée. Le multiplexeur est utilisé
pour diriger la sortie de la fonction sélectionnée vers la sortie Z de l’UAL. I.6.1 - Cycle de recherche :
Une UAL à 8 bits peut être construite par la mise en cascade de huit UAL à 1 bit. Le cycle de recherche commence par l’acheminement du contenu du registre compteur
Toutes les entrées fonctionnelles F0 et F1 doivent être connectées ensemble pour que l’UAL ordinal (PC) sur le BUS des adresses, et par la mise du BUS de contrôle dans une condition
puisse réaliser la même fonction sur chaque bit en parallèle. de lecture. L’octet, qui représente le code opératoire de l’instruction (Op-Code) est ensuite
L’unité arithmétique et logique (UAL) d’un microprocesseur 8 bits contient le matériel mis sur le BUS des données par la mémoire, et chargé dans le registre d’instructions (IR) du
requis pour réaliser des opérations arithmétiques et logiques sur des mots de 8 bits. Elle peut microprocesseur. Maintenant que l’instruction est reçue, le compteur ordinal est incrémenté
être considérée comme composée de huit UALs de 1 bit en parallèle qui réalisent la même de un pour pointer le prochain octet dans la mémoire.
opération sur tous les 8 bits.
L’unité arithmétique et logique d’un microprocesseur peut effectuer d’autres fonctions I.6.2 - Cycle de décodage :
que la simple UAL présentée ci-dessus. Par exemple, le résultat d’une opération affecte les Le cycle de décodage s’amorce après le chargement de l’instruction dans le registre
bits du registre d’état du microprocesseur. d’instructions. L’Op-code de 8 bits contenu dans le registre d’instructions est décodé en
utilisant un décodeur 8 vers 256. Le signal adéquat est alors envoyé à l’unité de traitement.

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 6/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 7/27
I.6.3 - Cycle d’exécution : Étape 1 :
Le registre Compteur Ordinal contient l’adresse de l’instruction à exécuter. Il la met sur le BUS
Le cycle d’exécution est réalisé par l’unité de traitement, en se basant sur le signal reçu
des adresses.
du décodeur (8 vers 256). L’exécution de l’instruction peut inclure la lecture de données
additionnelles de la mémoire, le transfert de données entre les registres, le stockage de MICROPROCESSEUR
données en mémoire et les opérations de l’UAL. UNITÉ DE TRAÎTEMENT UNITÉ DE CONTRÔLE

Après qu’une instruction soit complètement exécutée, le cycle d’exécution d’instruction


BUS de
recommence de nouveau par un nouveau cycle de recherche. Le registre compteur ordinal INTERFACE données
DE DONNÉES
(PC) contiendra toujours l’adresse de la prochaine instruction à exécuter à la fin du cycle
d’exécution. Le registre d’instructions (IR) contiendra toujours l’Op-code de l’instruction en
cours d’exécution. COMPTEUR
ORDINAL
MICROPROCESSEUR

UNITÉ DE TRAÎTEMENT UNITÉ DE CONTRÔLE BUS


INTERFACE INTERFACE d’adresses
BUS de DE CONTRÔLE D’ADRESSES
INTERFACE données
DE DONNÉES

BUS
de contrôle

Étape 2 :
La lecture de l’instruction consiste à transférer le contenu de l’adresse mémoire
correspondante dans le Registre d’instructions.
BUS
INTERFACE INTERFACE d’adresses
DE CONTRÔLE D’ADRESSES MICROPROCESSEUR

UNITÉ DE TRAÎTEMENT UNITÉ DE CONTRÔLE


BUS de
BUS INTERFACE DE DONNÉES INTERNE données
INTERFACE
de contrôle DE DONNÉES

REGISTRE D’INSTRUCTIONS

COMPTEUR
ORDINAL

BUS
INTERFACE INTERFACE d’adresses
DE CONTRÔLE D’ADRESSES

BUS
de contrôle

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 8/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 9/27
Étape 3 : I.7 - Architecture d’un système à base de microprocesseur :
L’analyse (décodage) du premier octet du registre d’instructions permet au microprocesseur de
Il est constitué de plusieurs circuits. Le microprocesseur ne peut être utilisé seul. Il faut
connaître le nombre d’octets que comporte l’instruction ainsi que l’opération élémentaire à
lui adjoindre (voir figure I.3):
exécuter.
● Des mémoires pour stocker les données et le programme ;

MICROPROCESSEUR
● Des circuits d’entrées/sorties (E/S) et d’interface ;

UNITÉ DE TRAÎTEMENT UNITÉ DE CONTRÔLE ● Des circuits annexes multiplexeurs, décodeurs, portes logiques ;
BUS de ● Une horloge ("cadencement" et synchronisation de l’ensemble) ;
INTERFACE DE DONNÉES INTERNE données
INTERFACE
DE DONNÉES ● Une alimentation.
La mémoire est reliée au microprocesseur par le BUS données et le BUS d’adresses et

REGISTRE D’INSTRUCTIONS des fils de commande ( R / W et CS ) qui sont la base du BUS de commande.
DÉCODEUR Le microprocesseur traite des instructions, qui lui ont été programmées, l’une à la suite
DE FONCTIONS COMPTEUR
(8 vers 256) ORDINAL de l’autre, sans aucune décision de sa part. Même des instructions conditionnelles sont
BUS influencées par des situations extérieures: clavier, demande de service d’un périphérique
INTERFACE INTERFACE d’adresses
DE CONTRÔLE D’ADRESSES (requête d’interruption matérielle à travers la ligne IRQ ).

BUS de données (Bidirectionnel)


BUS
de contrôle

Étape 4 :
Microprocesseur Dispositif Interface Périphérique
Le microprocesseur effectue le traitement correspondant (unité de traitement) Horloge
(CPU)
Mémoire Mémoire
d’E/S
(CLK) (RAM) (ROM)

MICROPROCESSEUR IRQ R/W R/W CS CS IRQ R/W CS

UNITÉ DE TRAÎTEMENT UNITÉ DE CONTRÔLE


BUS de BUS d’adresses
INTERFACE DE DONNÉES INTERNE données (Unidirectionnel) BUS de commande
INTERFACE (Bidirectionnel)
DE DONNÉES
R/W, IRQ, CS
Décodage
ACCU. A ACCU. B REG. D’ÉTAT d’adresses

REGISTRE D’INSTRUCTIONS
Figure I.3 - Architecture d’un système à microprocesseur
DÉCODEUR
DE FONCTIONS COMPTEUR
UAL (8 vers 256) ORDINAL Le circuit électronique représenté à la figure I.3 est général, Néanmoins, tous les

BUS
systèmes à microprocesseurs incluent au minimum :
INTERFACE INTERFACE d’adresses
DE CONTRÔLE D’ADRESSES
● Une mémoire morte (ROM - non effaçable) contenant les instructions de base pour
démarrer le montage électronique. Dans le cas d’un microcontrôleur, cette mémoire
ROM est intégrée au processeur.
BUS
de contrôle
● Un système d’interfaçage avec le processeur qui nécessite trois BUS: un BUS de
données, un BUS d’adresses et un BUS de commande.

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 10/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 11/27
I.8 - BUS d’un système à base de microprocesseur : signaler au processeur de faire une interruption et de se tenir prêt à recevoir des données de
I.8.1 - Définition : l’extérieur ou exécuter un sous programme spécifique. Par exemple, IRQ : Signal bas signifie
Un BUS est un ensemble de lignes de communication (matérialisé par des fils) reliant qu’il est actif lorsque le signal est à 0 V, non actif lorsque le signal est à l’état haut
deux circuits numériques (ou plus) entre eux. (typiquement 5V).
Nous présenterons au chapitre suivant le brochage d’un microprocesseur ainsi que la
I.8.2 - BUS d’adresses : signification des différents signaux de commande.
Chaque emplacement mémoire ou périphérique externe est désigné par une adresse Pour brancher plusieurs éléments sur un même BUS tout en évitant les conflits, il est
spécifique (parfois plusieurs l’une à la suite de l’autre), similaire à des adresses postales. nécessaire d’utiliser des drivers à trois-états.
Chaque circuit reçoit une adresse propre, une adresse spécifique qui n’est donc pas partagée
I.8.5 - La logique à trois états :
entre plusieurs circuits. Le BUS d’adresses est constitué de plusieurs lignes. Un BUS
La logique à trois états n’est pas une logique qui s’occupe, par exemple de 1, 0, et -1 en
d’adresses de 8 bits correspond à 8 lignes et peut donc adresser 28 adresses, soit 256 adresses
tant que valeurs numériques, ou « vrai », « faut » et « peut-être » comme valeurs logiques. Si
différentes, un BUS à 12 bits peut adresser 212 adresses, soit 4096 adresses différentes et ainsi
l’on désigne cette possibilité, on emploie des termes comme la « logique à trois valeurs ».
de suite.
Les « drivers » de BUS à trois états sont des dispositifs qui, en plus de pouvoir mettre
leurs sorties à « un » ou « zéro » (niveau « haut » ou niveau « bas »), peuvent également
I.8.3 - BUS de données :
débrancher leurs sorties. Lorsqu’il y a plusieurs « drivers » standards (à deux états) reliés à
Le BUS de données interne est bidirectionnel et est utilisé pour acheminer les données
une même ligne d’un BUS, n’importe lequel d’entre eux peut mettre la ligne au niveau « haut
entre les registres, l’UAL et le BUS de données externe du microprocesseur à travers les
» ou « bas », mais lorsque deux d’entre eux tentent simultanément, de commander la ligne,
buffers. Les buffers contiennent les drivers de BUS requis pour contrôler les trois BUS
un problème surgira quand l’un met la ligne au niveau « haut » tandis que l’autre met la ligne
externes.
au niveau « bas » (court-circuit franc). D’où la nécessité d’utiliser des « drivers » à trois états.
Le BUS de données externe est bidirectionnel et permet de transférer des données
de/à l’adresse indiquée par le BUS d’adresses. Lui aussi est constitué d’un certain nombre de a) Sortie logique standard :
lignes. Toutes les capacités des BUS de données sont désignées sous 8 lignes de données (ou Une sortie logique standard est soit à l’état haut, soit à l’état bas. Le potentiel de la
Octet « en anglais Byte »), ou en multiple de 8 bits, les processeurs actuels utilisent 64 lignes sortie est défini par l’état des transistors internes du circuit logique.
de données par exemple. Donc 1 MB (Méga Byte) de mémoire signifie 1 M sous 8 lignes, Pour simplifier, des interrupteurs simples sont représentés sur le schéma :
soit 8 Mb (Méga bits). Soit T1 est fermé, la tension de sortie VS = VCC ;
Soit T2 est fermé, la tension de sortie VS = 0 V.
I.8.4 - BUS de commande : Remarque : Deux sorties ne doivent pas être connectées l’une à l’autre.
Les différents signaux connectés sur ce BUS permettent de gérer les flux VCC

d’information, ils assurent le dialogue nécessaire pour le transfert des données à (Ecriture)
T1
ou de (Lecture) à/de l’adresse indiquée.
T2
Les signaux du BUS de commande permettent également de gérer les interruptions. VS

Les interruptions sont des commandes spécifiques qui permettent à un circuit externe de
Figure I.4 – Sortie logique standard
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 12/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 13/27
b) Sortie à trois états : I.9 - Mémoire d’un système à base de microprocesseur :
Dans une logique à trois états, il est possible de bloquer simultanément les deux I.9.1 - Types de Mémoires :
transistors de sortie. On distingue deux familles de mémoires: les mémoires mortes (ROM) et les mémoire
Soit la sortie est à l’état haut ; vives (RAM).
Soit la sortie est à l’état bas ; Les RAM permettent l’écriture et la lecture. Il existe deux types de mémoires RAM :
Soit la sortie est en haute impédance (T1 et T2 ouverts). Les RAM statiques (qui stockent l’information dans une bascule) et les RAM dynamiques
VCC (où l’information est sauvegardée par effet capacitif dans la capacité intrinsèque grille-source
«CGS » d’un transistor MOS). Les RAM dynamiques nécessitent un rafraîchissement toutes
T1
les 2 ms pour rétablir la charge du condensateur CGS (qui fuit) et de ce fait maintenir
T2
VS l’information stockée.
Les RAM sont raccordées par l’extérieur aux BUS d’adresses et BUS de données. Les
Figure I.5 – Sortie logique à trois états
signaux de contrôle sont CE/ CS (Chip Enable ou Chip Select), R / W . Ces mémoires sont
Remarque : Une entrée est dédiée à la mise du circuit en haute impédance.
volatiles (elle perdent leur contenu lorsqu’on coupe leur alimentation).
Ce type de circuit est utilisé pour connecter simultanément plusieurs circuits sur un
Les ROM sont utilisables uniquement en lecture et programmées directement à la
même BUS, un seul des circuits est connecté à un instant, les autres sont en haute impédance
fabrication du circuit électronique. Le contenu (programme ou données) n’est donc pas
pour éviter les conflits. C’est le cas dans les microsystèmes avec un BUS de données sur
modifiable. De ce fait, d’autres circuits de type ROM modifiables sont utilisés: EPROM
lequel sont raccordés de nombreux circuits (RAM, ROM ... ) comme illustré à la figure I.6.
(ROM programmable électriquement) programmables en 1 fois (mais peuvent être dans
D0 ●● D7 certaines versions effacées à la lumière UV), EEPROM (ROM programmables et effaçables
électriquement), que l’on peut effacer complètement plusieurs fois et les ROM Flash que
l’on peut écrire directement par un signal électrique. L’écriture sur une mémoire flash écrase
RAM
tout simplement le contenu précédent. Les ROM Flash sont similaires aux mémoires
CS EEPROM, mais l’effacement peut se faire sélectivement par blocs et ne nécessite pas le
démontage du circuit. Toutes les mémoires ROM gardent les informations lorsqu’on coupe
la tension d’alimentation.
ROM

CS I.9.2 - Principe et fonctionnement de la mémoire :


La mémoire est accédée par le microprocesseur à travers les BUS. Elle est utilisée pour

Figure I.6 – Branchement de plusieurs mémoires sur un même BUS stocker et récupérer des données à des adresses spécifiques ou « emplacements mémoire ».
Le nombre de bits à chaque adresse est déterminé par le microprocesseur utilisé. Un
Les dispositifs à trois états ne sont pas essentiels ! Il est toujours possible de remplacer microprocesseur 8 bits requiert 8 bits de données par adresse. Un microprocesseur 32 bits
une ligne de BUS commandée par un ou plusieurs drivers à trois états par un multiplexeur requiert 32 bits de données par adresse.
équivalent, mais de tels changements ne sont physiquement pas commodes.

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 14/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 15/27
La mémoire RAM statique utilise des bascules D-Latch comme composant
R/W D3
fondamental. Chaque bascule D est utilisée pour stocker un bit d’information. Une mémoire Case mémoire D2
4 bits D1
de 4 bits peut être construite à l’aide de 4 bascules D comme montré à la figure I.7. Les CS
D0
lignes bidirectionnelles D0 à D3 sont utilisées pour transmettre et recevoir les données du
Figure I.7b – Case mémoire 4 bits, diagramme-bloc
BUS de données. Une opération d’écriture est réalisée quand les entrées R/ W et CS (Chip
Select) sont au niveau bas. Durant l’opération d’écriture, la donnée est reçue du BUS de R/W
D3
Case mémoire
données et stockée dans la bascule D (par la sortie de la cellule mémoire). Une opération de 4 bits  D0

CS
lecture de la mémoire est réalisée quand R/ W est à l’état haut et CS à l’état bas. Durant une
opération de lecture, la donnée est transmise au BUS de données à partir de la sortie Q de la Figure I.7c – Case mémoire 4 bits, diagramme-bloc
bascule D, à travers des buffers à trois états comme illustré à la figure I.7a. Plusieurs sorties I.9.3 - Décodage d’adresses :
sont connectées à une même ligne du BUS de données, et de ce fait, des buffers à trois états La mémoire est configurée de façon à ce qu’un de plusieurs mots de données puisse
sont nécessaires. être accédé par le microprocesseur à travers les trois BUS. Un mot de données dans la
La représentation en diagramme-bloc d’un mot par une mémoire 4 bits est montrée à mémoire est sélectionné par le microprocesseur en transmettant son adresse sur le BUS
la figure I.7b et I.7c. A noter que les mêmes entrées et sorties existent sur le diagramme-bloc d’adresses. Des décodeurs sont utilisés avec la mémoire pour décoder cette adresse et
et sur le circuit numérique. Le diagramme-bloc de la figure I.7b montre les lignes sélectionner l’emplacement mémoire spécifié.
bidirectionnelles des données séparément, alors que la figure I.7c montre le BUS de donnée La figure I.8 montre une mémoire de 8 mots (cases) de 4 bits. Considérons que
comme une ligne double. chacune des 8 cases mémoires de 4 bits est le module montré à la figure I.7c. Ces modules

D Q D3 sont interconnectés avec les lignes du BUS de données D0 à D3 et l’entrée R/ W allant à


R/W
C chaque module. Les entrées CS de chaque module sont connectés aux sorties du décodeur 3

CS
vers 8 avec sortie à logique négative (càd la sortie est sélectionnée à l’état bas alors que toutes

D Q D2
les autres sorties sont au niveau haut).
Huit combinaisons possibles existent (càd 000 à 111) pour les trois entrées du
C

décodeur 3 vers 8. Chaque combinaison représente une adresse de l’un des mots de 4 bits.

D Q D1
Ce code de trois bits vient des trois bits les moins significatifs du bus d’adresses, et donc, les

C
lignes du BUS d’adresses A0, A1 et A2 sont connectées aux entrées de sélection du décodeur
A, B, C.
D Q D0 Les décodeurs ont d’habitude une entrée G , qui désactive toutes les sorties. Sur la
C figure I.8a, l’entrée G peut être utilisée comme un CS pour le module mémoire de 8 mots à
4 bits. Le diagramme-bloc de cette mémoire est illustré sur la figure I.8b.
R/ W Opération
CS
0 0 Ecriture Le nombre de mots qui peut être accédé en mémoire est dépendant du nombre
1 0 Lecture d’entrées du BUS d’adresses disponibles sur la mémoire. Pour n lignes d’adresses, 2n adresses
Figure I.7a – Case mémoire 4 bits, circuit numérique
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 16/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 17/27
peuvent être spécifiées. Contenu dans toute la mémoire, est un décodeur n vers 2n qui D3
R/W Case
mémoire D2
décodera les adresses et accédera un des 2n emplacements mémoire. 4 bits D1
CS D0
Plusieurs modules mémoire peuvent être connectés de façon à ce que plus de mots R/W Case
mémoire
puissent être accédés. 4 bits
CS
Par exemple, supposons que 32 mots de 4 bits sont à construire en utilisant des
R/W Case
modules de 8 mots à 4 bits (8×4 bits, comme ceux de la figure I.8). La mémoire de 32 mots mémoire
4 bits
A2 A Décodeur
à 4 bits (32×4 bits) peut être construite en utilisant quatre modules mémoire de 8×4 bits et 3 vers 8 avec sortie CS
A1 B
logique négative
A0 C R/W Case
un décodeur 2 vers 4. Ce circuit est illustré à la figure I.9a. Pour sélectionner l’un des 32 G mémoire
4 bits
mots, cinq lignes du BUS d’adresses doivent être décodées, soit A0 à A4. Le décodeur 3 vers CS CS

8 de chaque module mémoire est utilisé pour décoder les lignes d’adresses A0, A1 et A2. Les R/W Case
mémoire
lignes d’adresses A3 et A4 sont connectés aux deux entrées de sélection, A et B, du décodeur 4 bits
CS

2 vers 4. Les sorties, en logique négative, du décodeur sont connectées aux entrées CS du R/W Case
mémoire
module mémoire 8×4 bits. Les lignes du BUS de données et l’entrée R/ W sont 4 bits
CS

interconnectées pour former les BUS de données et de commande. L’entrée G du décodeur R/W Case
mémoire
4 bits
peut être utilisée comme une entrée CS , pour ce module de 32×4 bits. Un diagramme-bloc CS

de la mémoire 32x4-bits est montré à la figure I.9b. R/W R/W Case


mémoire
4 bits
CS

Figure I.8a - Mémoire de 8 mots de 4 bits, circuit numérique

A2
D3
A1
Mémoire D2
A0 8 Mots de 4 bits D1
CS
D0
R/W

Figure I.8b - Mémoire de 8 mots de 4 bits, diagramme-bloc

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 18/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 19/27
A2 un programme qui additionne la valeur 1 à une variable en mémoire, sauvegarde le résultat
D3
A1
Mémoire
A0 8 Mots de 4 bits
D2 en mémoire et l’affiche.
D1
CS
D0
R/W
A4 A Décodeur I.10.1 - Programmation en langage évolué :
2 vers 4 avec sortie
logique négative Les langages évolués, plus puissants, plus proches de la langue parlée, sont capables de
A3 B A2
G A1
Mémoire
A0 8 Mots de 4 bits
résumer des instructions complexes (Basic, Fortran, Pascal, C, Ada). Les codes sources sont
CS
traduits ou interprétés en binaire à l’aide de programmes spécialisés : les compilateurs ou les
R/W
interpréteurs. Ces langages permettent d’écrire le programme d’application pour lequel, en
A2
A2 définitive, le système à base de microprocesseur a été conçu et génèrent le code assembleur
A1 A1
Mémoire
A0 A0 8 Mots de 4 bits correspondant. Ensuite, un assembleur est utilisé pour générer le code machine (suite de
CS CS
R/W R/W zéros et de uns) qu’exécutera le microprocesseur. En plus de l’assembleur, des compilateurs,
interpréteurs, d’autres programmes sont utilisés : programmes d’édition, d’initialisation, de
A2
A1 chargement, de mise au point, etc.
Mémoire
A0 8 Mots de 4 bits
CS
Les compilateurs en langage évolué (C, Pascal, Basic, …) sont disponibles pour la
R/W plupart des microprocesseurs, typiquement de par des fournisseurs tiers. Ce sont
Figure I.9a - Mémoire de 32 mots de 4 bits, circuit numérique habituellement les compilateurs en langage C qui sont populaires, mais des compilateurs en
A4 Pascal ou en Basic peuvent également être disponibles. Ici encore, le meilleur guide pour le
A3
D3 choix de tel ou tel compilateur en langage évolué reste fabricant du microprocesseur.
A2
Mémoire D2
A1 32 Mots de 4 bits Pour l’exemple donné en début du paragraphe, la programmation en langage évolué
D1
A0
CS
D0 donnera :
R/W C PASCAL
var1 = var2+1 var1 := var2+1
Figure I.8b - Mémoire de 32 mots de 4 bits, diagramme-bloc
printf("Résultat = %d",var1) writeln(‘Résultat =’,var1)
write (1,200) var1
I.10 - La programmation des systèmes à base de microprocesseurs : Chaque ligne représente une instruction dans un langage évolué ou haut niveau et qui
La programmation des systèmes à base microprocesseurs implique l’utilisation de est un langage symbolique proche de l’anglais
codes soigneusement travaillés pour contrôler les signaux de commande qui interagissent
I.10.2 - Programmation en assembleur :
avec la puce du processeur. Habituellement, les fonctions qui sont exigées du processeur
La plupart des systèmes à base de microprocesseurs sont programmées en langage
sont des actions de commande en temps-réel. Les programmes pour de telles applications
assembleur. Chaque instruction que le processeur peut exécuter, est dotée d’un mnémonique
peuvent facilement devenir fortement complexes et exiger la connaissance détaillée de toutes
qui vient de l’anglais (par exemple, ADD pour l’instruction d’ajouter deux nombres). Des
les fonctions de la puce du processeur.
programmes de traduction (assembleurs) sont fournis par les constructeurs des
L’introduction du programme dans la machine peut se faire sous plusieurs formes : en
microprocesseurs pour traduire ces mnémoniques (le code source) en code machine (qui
langage évolué, en assembleur, en binaire ou en hexadécimal. Nous prenons à titre d’exemple
sont des suites de « zéro » et de « un » que le microprocesseur interprète). Ces assembleurs

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 20/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 21/27
sont fournis gratuitement au public par les constructeurs. Cependant, des assembleurs L’exemple considéré donnera en langage machine du MC 6809 de MOTOROLA, le
programme suivant (var2 est rangée à l’adresse $2000, var1 à l’adresse $2001) :
spécifiques et commodes pour des systèmes à microprocesseurs spécifiques sont
habituellement achetés de fournisseurs tiers. 1011 0110 0010 0000 0000 0000
1000 1011 0000 0001
Presque tous les assembleurs des microprocesseurs sont censés être employés sur des 1011 0111 0010 0000 0000 0001
ordinateurs personnels; quelques uns sont disponibles pour les stations de travail (mini- 1011 1101 0000 0000 0000 0000

ordinateurs). L’utilisateur devra vérifier avec le fabricant des microprocesseurs la version et


I.10.4 - Programmation sous forme hexadécimale :
la mise à jour appropriée à utiliser.
La forme hexadécimale est une forme un peu plus évoluée que le codage en langage
A partir d’un clavier alphanumérique (alphabet + chiffres), on introduit les instructions
machine. Il faut alors un clavier hexadécimal (0,......, 9, A,......., F) pour introduire le
sous forme symbolique mnémonique.
programme en machine.
Pour l’exemple donné en début du paragraphe, la programmation en assembleur du
En hexadécimal du MC 6809 MOTOROLA, l’exemple considéré donnera :
microprocesseur MC6809 de MOTOROLA donnera (on suppose que var2 est rangée dans
B6 20 00
la cellule d’adresse $2000 et var1 dans la cellule d’adresse $2001) : 8B 01
LDA var2 B7 20 01
ADDA #$01 BD 00 00
STA var1
JSR affichage (affichage identifie un sous programme situé à l’adresse $0000) Les langages symboliques de haut ou de bas niveau ne sont pas exécutables. Pour
qu’un programme écrit en langage d’assemblage devienne exécutable, il faut le traduire dans
Chaque ligne représente une instruction dans un langage d’assemblage propre au circuit
le langage machine du microprocesseur utilisé pour son exécution.
électronique du microprocesseur utilisé. Ce langage dit de bas niveau est encore un langage
A chaque instruction en langage d’assemblage correspond une instruction en langage
symbolique proche de l’anglais.
machine (= opération élémentaire du microprocesseur). Il en résulte que :
Remarques :
● L’assembleur n’est jamais un logiciel très encombrant ;
Assembleur : traduit le langage d’assemblage d’un microprocesseur dans le langage machine de
● Le langage d’assemblage est le langage symbolique le plus proche de la machine.
ce même processeur.
Pour qu’un programme écrit en langage évolué devienne exécutable, il faut le traduire
Cross-assembleur : traduit le langage d’assemblage d’un microprocesseur dans le langage
dans le langage machine du microprocesseur du système informatique utilisé pour son
machine d’un autre microprocesseur.
exécution (compilateur). Cette traduction se fait souvent en deux étapes : du langage évolué

I.10.3 - Programmation sous forme binaire : vers l’assembleur du microprocesseur considéré, ensuite de l’assembleur vers le code objet.

La forme binaire est le langage machine. C’est le langage compris par le Un langage évolué est un langage puissant : une instruction en langage évolué sera

microprocesseur. traduite par le compilateur à l’aide de plusieurs instructions machine, donc le code généré par
Le programme en langage d’assemblage est le code source. Le programme en langage un compilateur a toujours une taille plus importante.
binaire est le code objet. Il est donc nécessaire d’avoir un moyen de traduction du code
source en code objet : c’est le programme spécialisé assembleur. Cependant, les instructions
en langage assembleur restent très élémentaires puisque ce sont celles du microprocesseur,
représentées en mnémoniques.

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 22/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 23/27
I.10.5 - Exemple complet de programmation du microprocesseur MC6809 : I.11 - Applications des microprocesseurs :
Adresse Op-Code Opérande Code assembleur Les microprocesseurs sont des composants bon marché, miniatures, et consomment
D000 86 12 LDA #$12
D002 8B 0C ADDA #$0C très peu de puissance. Au cours des dernières années, leur performance a augmenté avec un
D004 B7 D100 STA $D100 taux plus important que celui des plus grands ordinateurs. Ces facteurs ont amené une
D007 BB D110 ADDA $D110
D00A B7 D101 STA $D101 explosion des applications à base des microprocesseurs. Une section courte dans ce chapitre
D00D 8B 1E ADDA #$1E
ne pourra jamais rendre justice à chaque application ; donc, nous nous limiterons à présenter
D00F B7 D102 STA $D102
D012 24 07 BCC $D01B quelques exemples typiques d’applications dans trois grands secteurs de l’électronique:
D014 86 00 LDA #$00
D016 B7 D110 STA $D110 • Acquisition et traitement des données : où les microprocesseurs sont utilisés pour
D009 20 EC BRA $D007 superviser des capteurs. Les données captées sont soit enregistrées et traitées sur le
D01B 3F SWI
microprocesseur, soit communiquées à un autre ordinateur ;
Figure I.10 - Exemple d’un programme en assembleur (Pour le microprocesseur MC6809)
• La commande : où les microprocesseurs ont en grande partie remplacé l’électronique
analogique pour commander des robots de fabrication, des appareils électroménagers,
ROM d’amorçage (Boot ROM) 0000
0001 des ascenseurs, des avions … etc. ;
0002
… • Le calcul : où les microprocesseurs ont transformé le concept d’ordinateur en rendant
3FFF possible le traitement parallèle, où plusieurs microprocesseurs se divisent la tâche
Adresses des périphériques 4000
4001 pour effectuer des calculs complexes en des temps réduits.
4002 Évidemment, ces catégories ne sont pas strictement disjointes. Elles représentent,

7FFF cependant, les utilisations les plus dominantes des microprocesseurs.
RAM système 8000
8001
8002 I.12 - Microcontrôleurs :

Début du programme D000 86 Ce sont des microprocesseurs conçus particulièrement pour l’usage dans des
D001 12 applications de commande. Les microcontrôleurs sont des circuits qui réunissent en un seul
D002 8B
D003 0C boîtier :
D004 B7 • Le microprocesseur ;
D005 D1
D006 00 • Les mémoires RAM (espace de travail) et ROM ;
D007 BB • Les circuits d’entrée et de sortie (ports) ;
D008 D1
D009 10 • Des temporisateurs (Timers) ;
D00A B7
D00B D1
• Des convertisseurs A/N et N/A.
D00C 01 Les capacités sont évidemment relativement faibles, mais une petite application peut

… alors être réalisée avec un nombre minimal de boîtiers: monochip, horloge, alimentation.

FFFF
Figure I.11 - Contenu de la mémoire correspondant au programme ci-dessus

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 24/27 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 25/27
Processus

Capteurs Actionneurs

Amplificateur

A/N N/A
Microcontrôleur

µP
Mémoire E/S

Figure I.12 – Commande d’un procédé par microcontrôleur

La figure I.12 montre une architecture simplifiée d’un système de commande à base de
microcontrôleur. Le processus à commander est surveillé à l’aide capteurs. Les sorties des
capteurs sont acheminées aux convertisseurs A/N qui convertissent les signaux analogiques
captés en signaux numériques appropriés pour l’usage dans le microcontrôleur. Le
microcontrôleur lit le signal numérique du convertisseur A/N et l’emploie comme une
entrée à un programme de commande stocké dans la mémoire de microcontrôleur. Le
programme produit les sorties numériques qui sont acheminées aux convertisseurs N/A. Les
sorties analogiques des convertisseurs N/A (en général de faible puissance) sont ensuite
acheminés aux amplificateurs, et les signaux amplifiés sont employées pour commander les
actionneurs qui agissent sur le processus commandé.

A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre I Page 26/27