Vous êtes sur la page 1sur 28

C H A P I T R E

1
LES SYSTEMES
A MICROPROCESSEUR
(Structure et principes de base)

1
I.1 I NTRODUCTION
L’électronique a énormément évolué ces 20 dernières années
et la tendance est au numérique. Cette tendance de la dominance
des circuits numériques au détriment des techniques analogiques
est due essentiellement à la facilité de traitement des informations
binaires.
Quel que soit sa complexité et sa fonction, tout système
électronique numérique traite des données d’entrées pour
produire des résultats en sorties et des actions :
 Données d’entrées : données saisi au clavier
d’ordinateur, données reçus, données en provenance de
capteurs (mesurant la température, la pression,...)…etc.
 Données de sortie : Représentent les résultats de
traitement implémenté par le système électronique.
 Actions : affichage, impression, transmission, actions
au processus industriel commandé (signalisation,
commande de vanne, de moteur, …).

SYSTÈME
DE
TRAITEMENT

La représentation Fig. I.1: Synoptique d’un système de traitement de données


numérique des données En effet, Le mot ‘numérique’ évoque ‘nombre’ ce qui reflètent
engendre leurs
bien la nature des signaux manipulés par le circuit électronique
numérisations car toutes
les grandeurs physiques numérique: Toute donnée (signaux, textes, son, image…) est
(température, vitesse, représentée avec un nombre codé en binaire matérialisé par
couleur, débit, tension... des niveaux électriques discrets (signaux numériques) activant
etc) sont continu et les portes logiques qui constituent le circuit.
peuvent prendre un
nombre infini de valeurs. Le principal avantage de l’électronique numérique est que
La numérisation d’une cette représentation binaire des données permet d’appliquer des
donnée est composée de traitements très complexes qui sont limités seulement par les
3 étapes: technologies de réalisation des circuits et leurs performances. De
1- discrétisation,
2- quantification,
ce fait, lorsque les technologies évoluent, de nouvelles applications
3- codage émergent automatiquement; c’est ce qui explique cette évolution
spectaculaire de l’électronique numérique.
Les applications Plus encore, on rencontre dans tous les domaines aujourd’hui
émergentes des systèmes
électroniques actuels sont de plus en plus de machines et d’appareils électroniques dits
les machines intelligentes intelligents. Bien que le terme ‘intelligent’ soit un peu abusé pour
(SM : Smart Machines) et des raisons purement commerciales, l’intelligence des systèmes
l’internet des objets (IoT: électroniques numériques actuels est une réalité et fait référence à
Internet of Things) quelques caractéristiques intéressantes dont ils possèdent :
2
L’autonomie – c’est la capacité de réaliser des tâches
sans aucune assistance humaine. L’un des aspects réels
des systèmes intelligents autonomes est les moyens de
transport intelligents et particulièrement la voiture
autonome : c’est une voiture capable de rouler en toute
autonomie dans le trafic réel et sur une infrastructure
non spécifique.
Exemple : la Google car
Réactivité et adaptation - un système réactif est un
système ouvert répondant constamment aux
sollicitations de son environnement en adaptant ses
actions sur celui-ci.
Exemple : Le sèche-cheveux MoistureProtect de Phillips
a la capacité de capter, avec une technologie infrarouge,
la teneur en hydratation des cheveux et d’adapter la
température afin de préserver leur hydratation
naturelle.
Multifonctions – la majorité des appareils
électroniques actuels assurent plusieurs fonctionnalités
secondaires en plus d’une fonction principale.
Exemple : les Smartphones sont des téléphones mobiles
qui ont la capacité de prendre des photo, vidéo, jouer,
naviguer …. en plus de la fonction téléphone.
Coopération – Un tel système est doté de capacités
avancées de capture, de traitement et de
communication de données qui lui permettent de
stocker, analyser et partager les informations avec
d’autre systèmes connectés
Exemple : L’imprimante HP LaserJet 4100 passe une
commande d’encre via internet lorsque son volume est
bas et peu envoyer des emails spécifiant son état vers en
ingénieur de maintenance en cas de panne: f

Capacité d’apprentissage et de décision - c’est la


capacité de gérer ses connaissances (réflexivité) et les
moyens de les faire évoluer afin de générer des décisions
pour de nouvelles situations.
Exemple: le thermostat Nest apprend les habitudes de
réglage de l’utilisateur jour et nuit et selon la
température externe, afin d’ajuster par lui-même la
température de la maison après une semaine seulement
d’auto-programmation.
Décidemment, tout Cette intelligence n’est d’autre qu’une très grande capacité de
système intelligent ou manipulation et de traitement complexe d’un grand nombre
complexe est un système à d’informations (textes, nombres, signaux, sons, parole, images…).
base de microprocesseur(s)
Matériellement parlant ces dispositifs utilisent des programmes
complexes exécutés par un composant spécial appelé
microprocesseur (noté MP ou µP).
3
I.2 T YPES DE REALISATION D ’ UN CIRCUIT
L OGIQUE : LOGIQUES CABLÉE & PROGRAMMÉE
Dans l’unité d’enseignement de Logique Combinatoire &
séquentielle (LCS), nous avons pris connaissance de 2 types de
circuits logiques : toute fonction à réaliser (additionner, comparer,
mémoriser, compter, multiplexer …etc) sur des données
représentées sous forme binaire peut être considérée comme
combinatoire ou séquentielle. Les circuits peuvent alors être
conçus et réalisés avec des composants logiques standards très
variées ( bascules, décodeurs, additionneurs, compteurs, …etc).

Cependant; il existe une autre forme de réalisation d’une


fonction autre que de câbler des composants standards comme le
montre l’exemple suivant :

Exemple : On veut réaliser un circuit logique dont la fonction est


donnée par la description suivante:

Vérin
commandé
par f Capteurs
X1X2X3
Pièce
Tapis Catégorie 2
roulant Pièces X1X2X3
000
Catégorie 1 010
X1X2X3 Pièces 011
001 Bac 2
111
101
100 Bac 1
110

Fig. I.2 : système de tri de pièces

4
En réalité, il existe une On peut réaliser ce circuit avec 2 manières différentes:
troisième manière pour
réaliser cette fonction qui 1- en utilisant la logique câblée : le circuit est réalisé sous la forme
consiste à utiliser les de somme de mintermes avec des portes logiques. Evidement il
composants logiques existant d’autres formes de réalisation câblée en utilisant par
programmables (module en exemple des multiplexeurs.
Master 1)

X1

X2
f

X3

Fig. I.3 : Réalisation câblée de la fonction

2- en utilisant la logique programmée : Le circuit est réalisé avec


un processeur (et quelques circuits associés) qui exécutera le
programme donné par l’organigramme suivant :

Début

Lire
x1, x2 et x3

NON NON
x1 ≠ x3 ? x2 ≠ x3 ?

OUI OUI

NON OUI
x2 = 0 ? x1 = 1 ?

OUI NON

f=1 f=0

Fin

Fig. I.4 : Organigramme du programme correspondant la fonction f

5
Pour la réalisation de ces 2 En général, la mise en œuvre d’un système programmé
parties nous avons besoins s’appuie sur deux réalisations distinctes:
d’outils matériels et
logiciels. Les outils logiciels 1. réalisation matérielle (hardware): correspond à l’aspect
sont appelé logiciels CAO matériel du système dont l’élément principal est le
(Conception Assisté par microprocesseur appelé aussi CPU (Central Processing
Ordinateur.) nommée Unit).
également en anglais EDA
(pour Electronic design 2. réalisation logicielle (software): correspond à un
automation) ou ECAD ensemble d’instructions qui définissent les actions à
(pour Electronic Computer effectuer par le matériel pour réaliser le traitement
Aided Design). Ces outils
permettent principalement
souhaité (programme).
de concevoir les circuits et Le choix du type de logique (câblée ou programmée) à
de tester virtuellement leur
utiliser pour réaliser un circuit, dépend de 3 critères: la
fonctionnement par
simulation. complexité, l’évolutivité et la rapidité.
 Complexité: Dans la logique câblée, la taille du
circuit croit avec la complexité du circuit. La logique
programmée nécessite un minimum de composant
mais la taille du circuit n'augmente plus avec la
complexité du circuit ( ou moins vite qu'en logique
câblée).
 Evolutivité: En logique câblée, la moindre
modification de la fonction du système entraîne la
mise au point d'un nouveau circuit. Alors qu'en
logique programmée on pourra parfois se contenter
d'une modification du programme.
 Rapidité : En fait, la logique câblée garde l'avantage
en terme de rapidité.
Pour illustrer ces critères de choix, nous comparons les 2
réalisations d’un fréquencemètre numérique données
par l’exemple suivant:

Exemple: Réalisation câblée et programmé d’un fréquencemètre.


Le principe des fréquencemètres est de compter les cycles issus
d'une fréquence de référence durant une période ou bien un
nombre connu de périodes du signal à mesurer :
Entrée
(fréquence
à mesurer)

Compteur Afficheur

Séquenceur
Signal de
référence

Fig I.5 Synoptique de fonctionnement

6
1- Réalisation d’un fréquencemètre numérique 50MHz avec des
composants standard (bascules, compteurs, décodeurs)

Fig. I.6 : Réalisation d’un fréquencemètre en logique câblée.


7
2- Réalisation d’un fréquencemètre numérique 550MHz à base de
processeur :

Fig. I.7: Réalisation d’un fréquencemètre en logique programmée.

8
I.3 T YPES DE SYSTEMES A MICROPROCESSEUR
Les systèmes à base de microprocesseurs (ou systèmes à
microprocesseurs tout court) se déclinent en deux catégories :
 Les ordinateurs : l’ordinateur est un calculateur à usage général
ou spécifique composé d’une unité centrale et de plusieurs
périphériques (Clavier, Ecran, …). Il existe plusieurs types
d’ordinateurs distingués par leurs performances: super
ordinateur, station de travail, serveurs, ordinateur de bureau
(Personnel Compter PC), ordinateur portable.
 Les systèmes embarqués : Un système embarqué (embedded
System en anglais) est un système très spécialisé. Il contient
généralement un ou plusieurs microprocesseurs destinés à
exécuter un ensemble de programmes définis lors de la
conception (à usage spécifique). Un système embarqué est un
calculateur mais ne possède pas des périphériques standards
tels qu'un clavier ou un écran d'ordinateur. Contrairement à un
ordinateur, l'interface homme machine (IHM) d'un système
embarqué peut être aussi simple qu'une LED ou aussi complexe
qu'un système de vision de nuit, ou un afficheur LCD (Liquid
Crystal Display), un afficheur tactile …etc. Les systèmes
embarqués sont peu encombrant, à faible consommation et
utilisés dans des applications très diverses tels que :
 le transport (avionique, spatial, automobile, ferroviaire,
maritime…etc.),
 les appareils électriques et électroniques (appareils photo,
jouets, télévision, électroménager, systèmes audio,
téléphones portables…etc.),
 les systèmes de commande, de télécommunication,
distribution d'énergie …etc.

Exemple : L’embarqué de l’automobile


L’automobile est le second utilisateur de systèmes embarqués
(31%) derrière l’aéronautique (38%). Certains véhicules possèdent
jusqu’à 80 calculateurs avec près de A million de lignes de codes.

Fig. I.8: Fonctions assurées par microprocesseurs.

9
I.4 S TRUCTURE D ’ UN SYSTEME A MICROPROCESSEUR
I.4.1 L E MICROPROCESSEUR ET SON ENVIRONNEMENT
Le microprocesseur est un circuit séquentiel très complexe
dont la fonction est d’exécuter, l’une après l’autre, une suite
ordonnée d’instructions élémentaires pour produire le résultat
désiré. L’instruction élémentaire d’un microprocesseur est très
différente des instructions des langages étudiés tels que Pascal et
Matlab : la figure ci-dessous donne un exemple de la forme de cette
instruction.

opération
Opérande
1
, Opérande
2

Données traitées par


l’opération

FIG. I.9 : Exemple d’une instruction élémentaire.

Exemple :
ADD X,15; pour le microprocesseur Intel8086 X=X+15 !!!

Pour fonctionner, le microprocesseur ne peut être utilisé seul.


Bien que l’exécution des instructions soit entièrement confiée
au CPU, mais ce dernier ne mémorise pas le programme à
exécuter. Les instructions du programme et les données doivent
donc être rangés quelque part, à la disposition du CPU : c’est le
rôle de la mémoire.
Les données et les instructions sont évidemment mémorisées
et manipulées sous la forme binaire. Le rôle du microprocesseur
est alors de les récupérer (lire) de la mémoire, de traiter les
données en exécutant les instructions, et ranger (écrire) les
résultats de nouveau dans la mémoire.
Il restera encore la partie relative à l’échange de données
avec les périphériques pour l’acquisition des données et leur
exploitation proprement dite: acquisition au clavier, stockage à
long terme en disque, affichage, transmission…etc. Ces taches sont
confiées aux interfaces d’entrées/sortie.
Ces 3 éléments (CPU, mémoires, interfaces d’E/S), qui se
présentent matériellement sous forme d’un ou plusieurs circuits
intégrés; sont interconnectés au moyen d’un ensemble de fils
appelé bus. Un bus permet de transférer les bits de données entre
le CPU et la mémoire et les unités d’E/S, sous forme parallèle,
c’est-à-dire en faisant circuler n bits simultanément : on parle alors
de bus de taille ou largeur n.

10
Cependant, il existe 2 architectures de système vis à vis les
informations véhiculées par le bus:
 l’architecture Von Neuman. C’est la plus courante. Les
instructions et les données circulent sur le même bus
(Réalisation plus simple).
 l’architecture Harvard. Les instructions et les données
circulent sur 2 bus différents (mémoire de programme
séparée de la mémoire de données) (Echanges rapides).

Zone de

Périphériques
programme
Processeur Entrées/
CPU
Mémoire Sorties
Zone de
données

(a)

B
BUS

Périphériques
Mémoire de
Processeur Mémoire de Entrées/
programme
CPU données Sorties

(b)

B
BUS

FIG. I.10: Architecture Von Neuman (a) et Harvard (b).

Exemple : la carte mère d’un PC (Architecture Von Neuman,


interfaces E/S, ports de connexion, …….)

FIG. I.11: Constituants d’une carte mère d’un PC

11
I.4.1.1 O RG A N I S A TI O N D E L A M E M O I RE :
L’octet (ou Byte en anglais) La mémoire peut être vue comme un ensemble de cellules ou
est l’unité de mesure de la cases de même taille (en général 1 octet = 8 bits) contenant
taille de données et des chacune une information: une instruction ou une donnée.
capacités mémoire.
Chaque case mémoire est repérée par un numéro d’ordre
unique: son adresse. L’adresse est aussi manipulée sous forme
binaire (notée en hexadécimal) et représentée sur un certain
nombre de bit qui dépend du nombre de cases à adresser:

Contenu des 3Eh 0000h


cases 05h 0001h
mémoires
(noté en C6h 0002h
hexadécimal)
12h 0003h

Adresses
Case des cases
mémoire mémoires
(notées en
hexadécimal)

FIG. I.12: Structure de la mémoire.

Les instructions et leurs opérandes sont stockés en mémoire.


La taille d’une instruction en nombre de cases mémoires nécessaire
pour la mémoriser varie d’un processeur à un autre.

Exemple :
- L’instruction ADD X ,15
- Rangée en mémoire à l’adresse 4000h
- Son code est : 80 06 06 01 0F (X représente l’adresse 0106h !!!)

Opération: Contenu case mémoire + valeur immédiate

80 06 06 01 ,, 0F

Adresse Valeur
Code
Case immédiate
opération
mémoire

12
Rangement en mémoire :

Case
mémoire
?? 0106h X contenant la
donnée
(1 octet)

80h 4000h

06h 4001h Cases


mémoire
06h 4002h contenant
l‘instruction
01h 4003h (5 octets)
0Fh 4004h

FIG. I.13 : Rangement de l’instruction ADD X ,15 en mémoire

Pour les données représentées sur plusieurs octets (par


exemple : l’entier 0A0B0C0Dh qui occupe 4 octets), l'ordre dans
lequel ces octets sont organisés en mémoire peut être :
1- Little Endian : L’octet de poids le plus faible (ici 0D) est
enregistré à l'adresse mémoire la plus petite, l'octet de
poids suivant (ici 0C) est enregistré à l'adresse mémoire
suivante et ainsi de suite.
2- Big Endian: c’est l'octet de poids le plus fort (ici 0A) qui
est enregistré d’abord à l'adresse mémoire la plus petite.

j k
Mémoire Mémoire

13
Une case mémoire peut être lue ou écrite par le
microprocesseur (cas des mémoires vives) ou bien seulement lue
(cas des mémoires mortes). La mémoire est contrôlée en écriture
ou lecture (accès mémoire) à travers les signaux de contrôle R/W
(Read/Write).

Bus de données
Mémoire
Bus d’adresses

W R

FIG. I.14 : Brochage de base d’une mémoire


La mémoire est caractérisé par :
sa capacité: nombre total de cases exprimée en :
unité abréviation conversion
10
1 Kilo-octets Ko 2 =1024 octets
20
1 Méga-octets Mo 2 octets =1024 Koctets
30
1 Giga-octets Go 2 octets =1024 Moctets

son temps d'accès: c’est le temps au bout du quel le


contenu de la case mémoire sélectionnée est disponible
sur le bus de données.
Temps d’établissement de l’adresse
Adresse stable

Bus
0
Adresse
d’adresse

Lecture Interdite Lecture Authorisée

Commande
de lecture

Données
Temps d’accès stables

Bus de
données Valeurs non significatives Données

FIG. I.15 : Chronogrammes d’un accès mémoire (lecture).

Outre que la mémoire utilisé pour le programme et les


données (mémoire centrale) ; ils existent d’autres organes de
mémorisation situant à l’intérieur et à l’extérieur du µP.

14
Vitesse Taille Registres
Caches
Mémoire principale
Disques
Organes
périphériques

FIG. I.16 : Hiérarchie des organes de mémorisation


Les registres sont intégrés au CPU pour éviter des pertes de
temps trop fréquentes causées par des transferts incessants de
données entre le microprocesseur et les mémoires : se sont des
cellules de mémoire internes (donc d’accès rapide) en nombre
limité. Les caches sont aussi des mémoires internes au µP composé
de centaines ou de milliers de cellules dont l’intérêt est d’accélérer
l’exécution des programmes.

I.4.1.2 L I AI S O N S M I C RO P RO CE S S E U R M E M O I RE S & E/S :


Le bus de communication peut être décomposé en trois bus
spécialisés distincts :
le bus d’adresses permet au microprocesseur de
spécifier l’adresse de la case mémoire ou de l’interface
E/S sélectionnée;
le bus de données (et/ou d’instructions) permet les
transferts entre le microprocesseur et la mémoire ou les
E/S ;
le bus de commande transmet les ordres de lecture et
d’écriture et d’autres commandes à la mémoire et aux
E/S. Périphériques

Entrées/
CPU Mémoire Sorties

Largeur du bus

n
Bus de données
p
Bus d’adresses
Bus de commandes

FIG. I.17 : différents types de bus


La largeur de bus de données n représente la taille des
données manipulées en une fois: on parle alors de processeurs
8bits, 16bits, 32bits et 64bits. Cette taille caractérise aussi les
éléments internes du microprocesseur tels que les registres.

15
La largeur du bus d’adresses du CPU caractérise l’espace
mémoire adressable par le µP: p lignes d’adresses permettent
d’adresser 2p cases mémoire: par exemple 8 bits d’adresses
permettent d’adresser 256 cases mémoires.
Les bus de données et de commande sont bidirectionnels, le
bus d’adresse est unidirectionnel : seul le microprocesseur peut
délivrer des adresses (il existe une dérogation pour les circuits
d’accès direct à la mémoire, DMA : Direct Access Memory).
1.3.2 S TRUCTURE INTERNE D ’ UN MICROPROCESSEUR
On peut représenter un microprocesseur par le schéma
fonctionnel suivant :

Horloge p bits
Bus d’adresse
Reset

n bits
CPU Bus de données
Signaux de
commande du
microprocesseur Bus de commandes

FIG. I.18 : Brochage minimal d’un microprocesseur


- L’entrée de remise à zéro ou « Reset » est un signal fondamental
pour permettre au système de démarrer dans un état
parfaitement connu;
- l’entrée d’horloge (ou clk pour clock) est le signal qui
conditionne tout le cadencement du travail du
microprocesseur;
Le microprocesseur est composé de tous les blocs
fonctionnels nécessaires pour exécuter les instructions, c-à-d , pour
lire l’instruction, la décoder, l’exécuter, lire les données, et
sauvegarder les résultats.
L’architecture interne visible à la figure I.19 fait apparaître
des bus internes sur lesquels débouchent les blocs fonctionnels de
base: (unité arithmétique et logique, compteur programme,
registres d’adresses (pointeurs), registre d’instruction, registres de
données, l’accumulateur, unité de décodage et de commande, … ).
Ces blocs travaillent en parfaite synchronisation, et leurs
complexité et caractéristiques varient d’un microprocesseur à un
autre.

16
Bus de
Bus interne de données
données

Etat
Clk
Bus de
commandes

Bus
Bus interne d’adresses
d’adresses

FIG. I.19 : Structure interne du microprocesseur


Cette architecture comporte 2 unités fonctionnelles de base :
l’unité de contrôle et l’unité de traitement
1.3.2.1 L ’ UN I TE DE CONTROLE :
Le compteur de L’unité de contrôle comprend le compteur de programme, le
programme est aussi registre d’instruction, le décodeur et le séquenceur.
appelé pointeur
d’instruction (IP: Pour exécuter les instructions dans l’ordre établi par le
Instruction Pointer) ou programme, le microprocesseur doit savoir à chaque instant
compteur d’instructions ou l’adresse de la prochaine instruction à exécuter. Le
compteur ordinal. Sa
microprocesseur utilise le compteur programme à cet effet.
valeur initiale vaut une
valeur bien définie et fixe à Après sa lecture de la mémoire, l’instruction en cours
chaque mise sous tension d’exécution sera mémorisée dans le registre d’instruction.
du microprocesseur ou bien
lors d’une remise à zéro Pour identifier le traitement décrit par l’instruction en cours
(reset). d’exécution, le décodage de l’instruction est réalisé par le décodeur
d’instruction. Ce dernier procure une économie de mémorisation
de séquences à réaliser en permettant le classement des
instructions selon une partie de leur code opératoire, cette partie
étant révélatrice du type d’instruction et, donc, des traitements
élémentaires que son exécution suppose.
L’exécution d’une instruction se décompose en plusieurs
phases. Des signaux de commande sont produits par le séquenceur
en fonction de l’opération demandé. Le séquenceur, est
conditionné par l’horloge et le microprogramme.

1.3.2.2 L ’ UN I TE D E T R AI TE M E N T :
UAL ou ALU pour Cette unité se compose de l’unité arithmétique et logique
Arithmetic and Logic Unit (UAL), du registre d’état, et un certain nombre de registres de
en anglais
travail et d’adresses.
L’UAL est utilisé pour l’exécution d’instructions de la classe
des opérations arithmétiques et logiques. L’UAL est constituée d’un
17
certain nombre de circuits formant un ensemble homogène :
registres à décalage, additionneurs, multiplieurs… Elle est
classiquement représentée en forme de « V » (figure I.20)
puisqu’elle possède généralement deux entrées (opérandes) pour
une sortie (résultat).

FIG. I.20 : L’UAL


L’unité arithmétique et logique doit être en relation avec
toutes les sources de données figurant dans le microprocesseur:
accumulateur, registres divers, mémoire de données externe. Ces
différentes sources ainsi que la sortie de l’UAL (source des
résultats) sont liés au bus de données.
Le registre d’état est un registre très spécial. Il est
généralement composé de 8 bits à considérer et interpréter
individuellement. Chacun de ces bits est un indicateur dont l'état
dépend du résultat de la dernière opération effectuée par l’UAL. On
les appelle indicateurs d’état ou drapeaux (ou flag en anglais).
Les principaux indicateurs sont donnés par la figure suivante:

... S Z OV C

FIG. I.21 : les principaux drapeaux


Les registres généraux et spécialisés (d’adresses …) sont
connectés aux différents bus (selon la spécialité) ; Lorsque l’un des
registres est privilégié en ce sens qu’il est impliqué dans un
nombre important d’instructions de divers types, on lui donne le
nom d’« accumulateur » (registre principal).
18
I.4.3 PRINCIPES DE FONCTIONNEMENT

I.4.3.1 N O TI O N D E CY CL E D ’ E X E CU TI O N

L’exécution d’une instruction est généralement composée


de 4 phases (figure I.21) :
1. Recherche de l'instruction à exécuter
2. Décodage de l’instruction et recherche de l'opérande
3. Exécution de l'instruction
4. Sauvegarde du résultat.
De nature séquentielle, l’horloge du microprocesseur
cadence ces étapes; L’exécution d’une étape se fera, au moins, en
une période d’oscillation de l’horloge (coup ou top d’horloge). C’est
ainsi que plusieurs tops d’horloge forment « un temps de cycle
d’exécution ». Certaines instructions nécessitent plusieurs cycles
d’exécution.
Les performances d’un microprocesseur en terme de vitesse
n’est pas estimé à la seule cadence de son horloge mais avec le
nombre d’instructions exécutées par seconde exprimé en MIPS
(Millions d’instructions par seconde).
Cycle d’exécution
d’une instruction

Recherche Décodage Exécution Sauvegarde

Cycle
d’horloge

FIG. I.22 : Structure interne du microprocesseur

Les détails d’exécution par phases sont les suivants (figure I.23) :

P HA S E 1 : R E C HE R CH E D E L ' I N ST RU C T I O N A T RAI T E R (F ET C H )
1. Le compteur programme contient l'adresse de l'instruction
à exécuter. Cette valeur est placée sur le bus d'adresses par l'unité
de commande qui émet un ordre de lecture.
2. L'instruction est récupérée du bus de données est stockée
dans le registre instruction du processeur.

P HA S E 2 : D E CO D AG E D E L ’ I N ST RU CT I O N ET R E CH E RC H E D E
L ' O P E R AN D E (D E CO D E )

Le registre d'instruction contient maintenant l'instruction. Le


décodeur interprète le code opératoire pour déterminer la nature
de l'opération à effectuer (addition, rotation,...).
1. L'unité de commande génère les commandes élémentaires
nécessaires pour effectuer l’opération.
19
2. Si l'instruction nécessite une donnée en provenance de la
mémoire, l'unité de commande récupère sa valeur sur le bus de
données.
3. L’opérande est stocké dans un registre.

P HA S E 3 : E X E CU T I O N D E L ' I N ST RU C T I O N (E X E CU T E )
1. L’opération est effectuée.
2. Les drapeaux sont positionnés (registre d'état).

P HA S E 4 : S A UV E GA RD E D U R E SU LT A T (S AV E )
1. L’adresse de sauvegarde est fournie par l’instruction ou un
registre d’adresse. Cette valeur est placée sur le bus d'adresses par
l'unité de commande.
2. L'unité de commande place le résultat à sauvegarder sur le
bus de données et émet un ordre d’écriture.
3. L'unité de commande positionne le PC pour l'instruction
suivante.

P hase Bus interne de données Bus de

4-2 P hase données


P hase
2-3
1-2

P hase P hase
3
Etat 2-1 Clk
Bus de
commandes

P hase
P hase
4-1 P hase
1-1 Bus
2-2
Bus interne d’adresses
d’adresses

FIG. I.23 : phases du cycle d’exécution

I.4.3.2 N O TI O N D E PI PE L I N E

Chaque étape d’exécution (Recherche ; Décode ; Exécute,


Sauvegarde) utilise un des blocs fonctionnels du
microprocesseur (figure I.23). Donc, lorsqu’une exécution
se trouve dans l’une des étapes, les autres blocs associés aux
autres étapes ne sont pas utilisés.
Il peut donc y avoir une instruction en cours d’exécution dans
chacune des étapes et chacun des composants du microprocesseur
peut être utilisé à chaque cycle d’horloge : l’efficacité devient
maximale.

20
Le temps d’exécution d’une instruction n’est pas réduit mais
le débit d’exécution des instructions est considérablement
augmenté.

Modèle classique:

R1 R2 R3

D1 D2 D3

E1 E2 E3

S1 S2 S3
Cycle
1 2 3 4 5 6 7 8 9 10 12 13 d’horloge

Modèle pipeliné:

R1 R2 R3 R4 R5 R6 R7 R8 R9

D1 D2 D3 D4 D5 D6 D7 D8 D9

E1 E2 E3 E4 E5 E6 E7 E8 E9

S1 S2 S3 S4 S5 S6 S7 S8 S9
Cycle
1 2 3 4 5 6 7 8 9 10 12 13 d’horloge
FIG. I.24 : fonctionnement d’un étage pipeline.

I.4.3.3 N O TI O N D E C A CHE

L’écart de performance entre le microprocesseur et la


mémoire est très grand: le temps de cycle d’exécution du
processeur est beaucoup plus réduit que le temps d’accès de la
mémoire. La mémoire n'est plus en mesure de délivrer des
informations aussi rapidement que le processeur est capable de les
traiter. Ce qui ralentit tout le système.
Pour remédier à ce problème, une mémoire très rapide est
intégrée au µP pour interfacer la mémoire. C’est le cache mémoire.
On compense ainsi la faible vitesse relative de la mémoire en
permettant au µP d’acquérir les données à sa vitesse propre.
La taille du cache est donc très inférieure à celle de la
mémoire principale (quelques centaines de Ko) et sa fonction est
de stocker les informations les plus récentes ou les plus souvent
utilisées par le µP.
Le principe du cache est très simple: le microprocesseur
envoie toutes ses requêtes comme s’il agissait de la mémoire
principale :

21
- Si la donnée ou l’instruction requise est présente dans le
cache, elle est alors envoyée directement au microprocesseur.
On parle de succès de cache.

j
Unité de Unité de Cache Mémoire
traitement commande CPU mémoire principale

k
FIG. I.25 : Succès de cache.
- Si la donnée ou l’instruction n’est pas dans le cache, et le
contrôleur de cache envoie alors une requête à la mémoire
principale. Une fois l’information récupérée, il la renvoie au
microprocesseur tout en la stockant dans le cache. On parle de
défaut de cache.

j k
Unité de Unité de Cache Mémoire
traitement commande CPU mémoire principale

m l
FIG. I.26 : Défaut de cache.

I.5 P ROGRAMMATION EN ASSE MBLEUR


I.5.1 N OTION DE LANGAGE MAC HINE
Le langage machine est le seul langage compris par le
microprocesseur: il consiste à exprimer les instructions du
programme en ‘1’ et ‘0’ (chaque instruction est une séquence de
bits). La difficulté de la manipulation d’un tel langage à pousser la
création en première étape, du langage assembleur qui utilise des
mnémoniques (abréviations significatives) pour exprimer les
instructions.
Fortement bas niveau (et donc, intrinsèquement optimisé),
l'assembleur posa et pose toujours d'énormes problèmes
d’élaboration et de mise à jour des programmes. Manipuler des
mnémoniques à la place des codes binaires n'as pas vraiment
réduit la complexité de l'écriture des programmes : instructions
trop élémentaires.
Pour contourner cette difficulté, les langages dits évolués fut
créé: Basic, Pascal, C , C++, C#, java…etc . Un logiciel se charge alors
de traduire les instructions en code machine : c'est le compilateur

22
FIG. I.27 : Niveaux de langages de programmation.

Exemple :

I.5.2 LE JEU D ’ INSTRUCTION


Le jeu d'instructions d’un processeur est l'ensemble des
opérations élémentaires qu'il peut accomplir. Ce jeu d'instruction
détermine ainsi son architecture: c’est l’implémentation matérielle
de ces opérations élémentaires.
On peut classer les processeurs en 2 grandes familles selon
l’organisation de leur jeu d’instruction : CISC et RISC.
■ Les processeurs CISC (pour Complex Instruction Set
Computers). Leurs jeu d’instruction est composé de 100 à 300
instruction et plus. Ces processeurs peuvent exécuter des
opérations complexes comme par exemple la recherche d’un
caractère dans une table.
■ Les processeurs RISC (pour Reduced Instruction Set
Computers). Dans les processeurs RISC, les instructions sont très
simples et très rapides. La majorité d’entre elles, notamment les
instructions arithmétiques et logiques, n’accèdent qu’aux registres
(qui sont plus nombreux dans ces processeurs). Les accès à la
mémoire principale (et aux organes périphériques) sont traités par
des instructions spécifiques. Cette approche provoque un
allongement sensible des programmes.
23
Selon le type du Le jeu d’instruction de n’importe quel processeur comprend
processeur, d’autres classes les 3 classes suivantes:
sont ajoutées pour
améliorer les performances  instructions d’opérations arithmétiques et logiques
pour une application cible  instructions de transfert de données (chargement et
(instructions de gestion
mémoire, multimédia, rangement dans la mémoire).
opérations de calculs etc..).  instructions de contrôle (branchement/déroutement :
sauts conditionnels et inconditionnels).

I.6 TYPES DE MICROPROCES SEURS


Pivoté par l’augmentation perpétuelle des taux d’intégration
de fabrication des circuits intégrés, les microprocesseurs ont connu
un grand développement mais dans trois directions différentes, ce
qui a abouti à la génération de:
microprocesseurs plus puissants: les microprocesseurs à
usage général (Ordinateurs)
microprocesseurs plus complets: les microcontrôleurs
microprocesseurs plus spécialisés: les DSP (Digital Signal
Processor), les GPU (Graphics Processing Unit)
I.6.1 DES MICROPROCESSEURS A USAGE GENERAL
Les possibilités d’intégration ont permis d’ajouter plus de
blocs fonctionnels afin d’augmenter considérablement la puissance
de traitement en terme de rapidité de calcul pour des applications
très variées: augmentation de la fréquence de l’horloge, de la
largeur des bus, des unités de traitement…
Les microprocesseurs classiques à usage général actuels sont
essentiellement représentés par les microprocesseurs Intel de type
CISC utilisée dans les PC et, depuis peu, dans les Macs (Apple
computers). Décliné actuellement en plusieurs familles (PC et
Portables).
La première famille 8 bits (Intel 8080) a inspiré les familles
16 bits qui leur ont succédé: du 8086 (16 bits), en passant par le
80286 (version améliorée), le 80386 (32 bits), le 80486
(coprocesseur mathématique incorporé), la série des Pentium (PI,
PII, PIII, Pentium 4), et plus récents l’Itanium (64 bits) et les Core
i3, i5, i7 (solo, duo, quad….).

24
Exemple :
- Les caractéristiques du microprocesseur Intel8086

- Les caractéristiques du microprocesseur Intel I7

Les microprocesseurs à usage général sont caractérisés par la


largeur de bus de données ; la fréquence de fonctionnement et la
taille de leurs caches.
Pour atteindre les performances actuelles, les concepteurs
utilisent un ensemble de techniques d’amélioration visant la
diminution du temps d'exécution des instructions et du
programme:
L’intégration de coprocesseur mathématique (capacités
de calcul en virgule flottante, prendre en charge
d’opérations sur plusieurs données simultanément : SIMD
(single Instruction Multiple Data)
Plusieurs étages de pipeline (superpipeline)
Architecture superscalaire (multicore=multiCPU)
La complexité de ces microprocesseurs a engendré deux
problèmes au niveau de leur exploitation:
25
la mise en œuvre logicielle et matérielle des systèmes
utilisant ces ‘monstres technologiques’ demande une
spécialisation et un grand savoir-faire.
l’utilisation de ces composants dans des systèmes
embarquées est très limitée à cause de la consommation
élevée et les problèmes thermiques engendré par la
densité d’intégration et la fréquence de fonctionnement
élevée (l’énergie thermique dégagée résultante de
l’activité est évacuée au travers un système de
refroidissement encombrant).

FIG. I.28 : Système de refroidissement.


L’environnement Dans des systèmes de commande en ambiance industrielle
industriel se présente sous des procédés industriels, des ordinateurs en boîtier étanche sont
trois formes :
- environnement physique utilisés pour les ambiances difficiles (température, poussière
et mécanique (poussières, gamme, risque de projection ...).
température, humidité,
vibrations);
- pollution chimique ;
- perturbation électrique.
(Parasites
électromagnétiques)

FIG. I.29 : Ordinateur industriel.

FIG. I.30 : Ordinateurs dans une unité de production


automatisée.
26
I.6.2 L ES MICROCON TROLEURS
Les possibilités d’intégration sont exploitées pour intégrer
sur la même puce avec le noyau CPU la mémoire de programme et
de données et les interfaces d’E/S de façon à constituer des
systèmes les plus complets possibles (mais pas forcément trop
performants). Donc, les petits microprocesseurs ont évolué vers ce
qu’on appelle les microcontrôleurs (MCU ou µC).

FIG. I.31 : Architecture d’un microcontrôleur.


Outre que le type du noyau (CISC, RISC), la fréquence de
fonctionnement et la largeur de bus de données que l’on peut
apparenter à un CPU comme évoqué précédemment, c’est au
niveau du type et de la qualité des interfaces et des périphériques
intégrés qu’on pourra juger de l’adéquation d’un microcontrôleur
donné avec des tâches de l’application envisagée.
Les microcontrôleurs se caractérisent par:
- une plus faible consommation électrique (quelques
milliwatts). Les microcontrôleurs peuvent généralement se
placer dans un état de sommeil, dans lequel ils présentent une
très faible consommation électrique (quelques nanowatts),
- une vitesse de fonctionnement plus faible (quelques
mégahertz à quelques centaines de mégahertz).
- un coût réduit par rapport aux microprocesseurs
polyvalents à usage général utilisés dans les ordinateurs
personnels.
Les microcontrôleurs ont été créés avec ces caractéristiques
pour s’adapter aux domaines d’application ou la très grande

27
puissance de calcul n’est pas nécessaire autant que l’embarcation,
la consommation électrique réduite et le faible coût (systèmes
embarqués). Ce composant est utilisé pour la mise en œuvre de
système miniaturisée et autonome (faible consommation)
nécessitant des ressources de communication, de conversion …
pour assurer des fonctions très variées telles que : mise en forme
de signal, contrôle, applications plus ou moins complexes avec
calcul.
Pratiquement, on rencontre trois grandes familles de µC:
- La plus ancienne : la famille PIC (Programmable
Intelligent Computer) de Microchip Technology, est
basée sur un petit noyau microprocesseur de type
RISC . Ce microcontrôleur évolua de 8 à, récemment,
32 bits en passant par une déclinaison de 16 bits
(figure I.32)
- La plus utilisée dans le domaine des applications
grand public, de l’électroménager aux
télécommunications: la famille MCS-51 (CISC)
fabriqués initialement par Intel puis par plusieurs
fabricant: Motorola (Série 68HC11), Atmel (Série
AVR) et Comfile Technology (Cubloc, basé sur uP
Atmel)
- Très utilisée dans les systèmes destinés à une
utilisation industrielle: la famille Motorola 6805,
68HC05, 68HC11 (née sur la lancée du
microprocesseur 6800).

FIG. I.32 : Familles PIC de Microchip.

28

Vous aimerez peut-être aussi