Chapitre 2
Microprocesseurs
2.1 Introduction
Le microprocesseur est `a l’ordinateur ce que le cerveau est `a l’ˆetre humain. C’est `a dire un m´ecanisme
r´egulateur charg´e de r´ealiser la coop´eration entre les diff´erents ´el´ements (RAM, ROM, PIO) qui lui sont
associ´es dans le but de r´ealiser des op´erations. Un microprocesseur est donc avant tout un calculateur. Il
est int´eressant de noter que la discipline qui traite de l’´etude des ordinateurs est d´efinie par deux termes
diff´erents en fonction des cultures mais qui expriment deux aspects compl´ementaires des machines : ce
qu’elles font et ce `a quoi elles peuvent servir.
certains utilisent le terme computer science ou science des calculateurs et expriment ainsi qu’un
ordinateur est une machine ax´ee sur le calcul,
d’autres parlent d’informatique contraction des mots information et automatique pour exprimer
qu’un ordinateur est aussi utilis´e comme outil de traitement automatique de l’information.
On comprendra ais´ement que la diff´erence entre calcul et traitement de l’information est tenue d`es lors
que l’on sait qu’un ordinateur n’a pas conscience de la diff´erence entre un chiffre et une lettre puisque pour
lui toute information se r´esume `a des interrupteurs allum´es ou ´eteints.
2.1.1 Architecture de Von Neumann
Les premiers calculateurs virent le jour durant la seconde guerre mondiale. Cependant jusqu’en 1945
leur utilisation se r´ev´elait plutˆot fastidieuse en raison de leur architecture. Par exemple, l’ENIAC (Electro-
nic Numerical Integrator And Calculator) conc¸u en 1945 par John Eckert et John Mauchly `a l’universit´e
de Pennsylvanie ´etait compos´e de 18000 tubes `a vide et 6000 commutateurs interconnect´es par un en-
chevˆetrement de cˆables, le tout pesant 30 tonnes. Il ´etait capable de multiplier deux nombres de 10 chiffres
d´ecimaux en 3 ms. Les programmes de l’ENIAC ´etaient ´ecrits sur des cartes perfor´ees et il fallait brancher
et d´ebrancher des dizaines de cˆables pour lancer un calcul.
John Von Neuman math´ematicien d’origine hongroise avait particip´e `a la construction de l’ENIAC.
Il travailla ensuite `a Princeton `a la construction d’une nouvelle machine : l’EDVAC (Electronic Discrete
Variable Automatic Computer) qui pr´efigure l’architecture des ordinateurs modernes.
Commande
Unité de
Mémoire
UAL
ACC
Entrée
Sortie
FIG. 2.1 – Architecture de Von Neumann
La machine de Von Neumann ´etait form´ee de 5 composantes (cf. figure 2.1) : m´emoire, unit´e arithm´etique
23
22 octobre 2005 Couche physique et logique, repr´esentation ...
et logique, unit´e de contrˆole, dispositifs d’entr´ees et sorties. Von Neumann montra que pour ˆetre efficace
son architecture devait fonctionner ´electroniquement selon la num´erotation binaire.
Paradoxalement,en raison de querelles intestines entre les concepteurs de l’ENIAC concernant la pater-
nit´e de certains brevet la conception de l’EDVAC pris du retard et c’est le britannique Maurice Wilkes qui
`a Cambridge en 1949 acheva la conception du premier ordinateur bas´e sur l’architecture de Von Neumann :
l’EDSAC (Electronic Delay Storage Automatic Calculator). Aujourd’hui tous nos ordinateurs fonctionnent
suivant le mod`ele de Von Neumann.
2.2 Organisation fonctionnelle
Un microprocesseur ou CPU pour Central Processing Unit (ou unit´e centrale de traitement UCT)
se compose de deux unit´es fonctionnelles : l’UAL qualif´ee de partie op´erative et l’UC qualifi´ee de partie
contrˆole.
– l’UAL ou Unit´
e Arithm´
etique et Logique compose la partie op´
erative du microprocesseur, c’est `a
dire qu’elle effectue les calculs et les transferts de donn´ees n´ecessaires `a la r´ealisation des op´erations
arithm´etiques,
– l’UC ou Unit´
e de Contrˆ
ole se charge de d´ecoder les commandes et de les ex´ecuter en envoyant `a
l’UAL les calculs `a effectuer.
2.2.1 Registres
Le CPU se compose ´egalement de registres qui sont des mots m´emoires propres au processeur et qui
m´emorisent l’´etat dans lequel se trouve le processeur. Les registres de base sont les suivants :
le Compteur Ordinal CO contient l’adresse en m´emoire de la prochaine instruction `a ex´ecuter. Il est
mis `a jour apr`es chaque ex´ection d’une instruction
le registre d’instruction RI contient l’instruction `a ex´ecuter. Il se compose de deux parties :
une zone op´eration qui repr´esente le code de l’op´eration
une zone qui contient une donn´ee ou une adresse
l’accumulateur ACC est un registre important de l’UAL puisque c’est avec lui que sont r´ealis´ees la
plupart des op´erations arithm´etiques.
le registre d’´
etat PSW (Program Status Word) est un indicateur du r´esultat d’une op´eration r´ealis´ee
par l’UAL. Il indique entre autres choses si le r´esultat est ´egal `a z´ero ou un d´epassement de capacit´e.
le pointeur de pile SP (Stack Pointer) indique le sommet de la pile des appels de proc´edures.
les registres g´en´eraux qui sont des registres utilis´es dans certaines instructions particuli`eres.
2.2.2 L’unit´
e arithm´
etique et Logique
U.A.L
Accumulateur
Registre d’état
C Z V S P
Mémoire
Commande
A B
FIG. 2.2 – Sch ´ma d’une UAL
LUAL se compose de registres et de circuits arithm´etiques (additionneur, soustracteur, comparateur,
d´ecaleur) permettant de r´ealiser des op´erations entre registres.
24
22 octobre 2005 Couche physique et logique, repr´esentation ...
On peut par exemple imaginer une UAL de base compos´ee de 2 registres Aet Bet r´ealisant 8 op´erations
diff´erentes entre Aet B:
ADD addition A+BA
SUB soustraction ABA
MUL multiplication A×BA
DIV division A/B A
AND et logique A and B A
OR ou logique A or B, A
XOR ou exclusif A xor B A
CMP comparaison A=, >, < B flags
En sortie de l’UAL se trouve le registre d´etat comprenant des flags (indicateurs) qui informent l’utili-
sateur quant au r´esultat de l’op´eration effectu´ee :
Flags Rˆole
C indicateur de retenue
Z indicateur de valeur nulle
V indicateur de d´ebordement
Sindicateur de signe
P indicateur de parit´e
Ainsi, si l’on compare le contenu des registres Aet B, on pourrait choisir la convention d’´etat des flags
suivante pour indiquer le r´esultat de la comparaison :
Condition Z C S
A=B1 0 0
A > B 0 1 0
AB1 1 0
A < B 0 0 1
AB1 0 1
2.2.3 L’unit´
e de contrˆ
ole
Elle coordonne l’ex´ecution des commandes et se compose de deux circuits :
le d´
ecodeur qui `a partir de la commande contenue dans le registre d’instruction d´etermine quelle
commande devra ˆetre ex´ecut´ee,
le s´
equenceur r´ealise l’ex´ecution de la commande en envoyant des microcommandes `a d’autres cir-
cuits du syst`eme dans un ordre pr´ecis
2.2.4 Description d’un langage machine
Lordinateur ne comprend qu’une s´erie d’instructions cod´ees de mani`ere bien d´efinie et que l’on nomme
langage machine. Un programmeen langage machine est d´ecrit par une s´erie de nombres exprim´es g´en´eralement
en hexad´ecimal. Pour faciliter l’utilisation du langage machine on a conc¸u un langage d’usage plus intuitif
pour l’ˆetre humain et baptis´e langage d’assemblage ou plus bri`evement assembleur.
Nous allons proc´eder de mani`ere inverse en d´ecrivantun langage d’assemblage et en montrant comment
on peut le coder au niveau de la machine (cf. TD 6).
Maurice Wilkes de l’universit´e de Cambridge mit au point le premier langage assembleur en 1950.
2.2.4.1 Langage assembleur
Supposons que nous disposions d’une machine tr`es simple compos´ee
d’un bus d’adresse de 16 bits,
d’un bus de donn´ees de 8 bits,
d’une m´emoire de 64 Ko,
25
22 octobre 2005 Couche physique et logique, repr´esentation ...
Séquenceur
Décodeur
Bus de données
Accumulateur
U.A.L
R.E
Code
Opération Adresse
Compteur
Ordinal
Bus d’adresses
PSR
CEB
EDA CEA
CRA
CRI
CAD
LMM
LEC ECR
EMM
CCOLCO
Mémoire
Centrale
Registre
R.I.
FIG. 2.3 – Sch´ema d’une Unit´e Centrale de Traitement
d’une UAL de deux registres A,Bet d’un registre de pile SP
Le langage que nous utiliserons se compose de quatre s´eries d’instructions :
des instructions d’acc`es `a la m´emoire et aux registres
0MOV A,B mettre la valeur de B dans A
MOV B,A mettre la valeur de A dans B
1MOV A,data mettre la valeur data dans A
MOV B,data mettre la valeur data dans B
2MOV A,[adr] mettre le contenu de l’adresse [adr] dans A
MOV B,[adr] mettre le contenu de l’adresse [adr] dans B
3MOV [adr],A mettre le contenu de A `a l’adresse [adr]
MOV [adr],B mettre le contenu de B `a l’adresse [adr]
4MOV A,[SP+dec] mettre la valeur de pile dans A
MOV B,[SP+dec] mettre la valeur de pile dans B
5MOV [SP+dec],A mettre la valeur de A dans la pile
MOV [SP+dec],B mettre la valeur de B dans la pile
des instructions arithm´etiques et logiques ADD, SUB, DIV, MUL, AND, OR, XOR, CMP qui peuvent
avoir trois d´eclinaisons
ADD A,data additionner la valeur data `a A
ADD A,[adr] additionner le contenu de l’adresse [adr] `a A
ADD A,B additionner B `a A
des instructions de d´eplacement conditionnelles et d’appel de coroutines :
26
22 octobre 2005 Couche physique et logique, repr´esentation ...
JE adr saut `a l’adresse adr si A=B
JNE adr saut `a l’adresse adr si A6=B
JG adr saut `a l’adresse adr si A > B
JGE adr saut `a l’adresse adr si AB
JL adr saut `a l’adresse adr si A < B
JLE adr saut `a l’adresse adr si AB
CALL adr saut `a l’adresse adr
RET retour d’appel
Pour les 6 premi`eres instructions un appel pr´ealable `a l’instruction CMP doit ˆetre effectu´e. Pour l’ins-
truction CALL, l’adresse de la prochaine instruction `a ex´ecuter est plac´ee sur la pile. L’instruction
RET permet de revenir `a cette instruction.
des instructions de manipulation de la pile
PUSH A empiler le contenu de A
PUSH B empiler le contenu de B
POP A d´epiler et mettre le sommet de pile dans A
POP B d´epiler et mettre le sommet de pile dans B
2.2.4.2 Influence de la longeur des adresses
Lors de la conception d’un microprocesseur, le codage des instructions revˆet un aspect important. Il
s’agit pour le concepteur de d´efinir un format d’instruction qui permette de coder l’instruction `a r´ealiser
mais ´egalement les donn´ees ou adresses sur lesquelles on doit travailler.
En effet,plus les instructions sont courtes plus elles sont efficaces : si une machine poss`ede une m´emoire
ayant un d´ebit de dbits/s et que la longueur moyenne de ses instructions est de nbits, alors cette m´emoire
peut d´elivrer d/n instructions par seconde.
Il faut ´egalement prendre en compte la largeur en bits d’une instruction et s’arranger pour que les
instructions aient une taille multiple de la largeur des donn´ees manipul´ees par le processeur afin d’´eviter le
gaspillage de la m´emoire.
La largeur des adresses influe ´egalement sur les performances. Consid´erons par exemple une m´emoire
de 64 Ko. Celle-ci peut ˆetre organis´ee sous deux formats diff´erents :
cas n1: une m´emoire de 216 octets
cas n2: une m´emoire de 214 mots de 4 octets
Si on d´esire comparer 1 octet avec un autre octet, dans le cas 2 cela entrıne un surcoˆut car il faut
charger 2 fois 4 octets depuis la m´emoire et extraire les octets correspondants. Cependant, plus une adresse
est courte, plus l’instruction correspondante est courte. Il y a donc un compromis `a trouver.
2.2.4.3 Code op´
eration expansif
Consid´erons une machine codant des instructions sur m=c+abits, soit cbits pour le code op´eration
et abits pour l’adresse. Cette codification permet de repr´esenter 2cinstructions et 2aadresses. On peut
d´esirer modifier ce codage des instructions de la mani`ere suivante :
c+ 1 bits pour le code op´eration et a1bits pour l’adresse, soit 2 fois plus d’instructions mais 2 fois
moins d’adresses
ou c1bits pour le code op´eration et a+ 1 bits pour l’adresse, soit 2 fois moins d’instructions mais
2 fois plus d’adresses
Le proc´ed´e qui consiste `a modifier le nombre de bits r´eserv´es au codage des instructions en fonction de
leur nombre et de l’adressage m´emoire s’appelle code op´eration expansif. Exemple :
00 xxxxxxxxxxxxxx 3 instructions avec adresse sur 14 bits
01 xxxxxxxxxxxxxx
10 xxxxxxxxxxxxxx
1100 xxxxxxxxxxxx 3 instructions avec adresse sur 12 bits
1101 xxxxxxxxxxxx
1110 xxxxxxxxxxxx
27
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !