9 novembre 2004
Chapitre 4
Microprocesseurs
4.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.
4.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. 4.1 – Architecture de Von Neumann
61
9 novembre 2004
CHAPITRE 4. MICROPROCESSEURS
La machinede Von Neumann ´etait form´ee de5 composantes(cf. figure 4.1):m´emoire, unit´e arithm´etique
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 ordinateurbas´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.
4.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.
4.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.
4.2.2 L’unit´
e arithm´
etique et Logique
L’UAL se compose de registres et de circuits arithm´etiques (additionneur, soustracteur, comparateur,
d´ecaleur) permettant de r´ealiser des op´erations entre registres.
On peut par exemple imaginerune UAL de base compos´ee de 2 registres et et r´ealisant 8 op´erations
diff´erentes entre et :
ADD addition
SUB soustraction
MUL multiplication
DIV division
AND et logique
OR ou logique
XOR ou exclusif
CMP comparaison
62
9 novembre 2004
4.2. ORGANISATION FONCTIONNELLE
U.A.L
Accumulateur
Registre d’état
C Z V S P
Mémoire
Commande
A B
FIG. 4.2 – Sch ´
ma d’une UAL
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
S indicateur de signe
P indicateur de parit´e
Ainsi, si l’on compare le contenu des registres et , on pourrait choisir la convention d’´etat des flags
suivante pour indiquer le r´esultat de la comparaison:
Condition 1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
4.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
4.2.4 Description d’un langage machine
L’ordinateurne comprend qu’unes´erie d’instructions cod´ees de mani`ere bien d´efinie et que l’on nomme
langage machine.Un programmeen langagemachine est d´ecrit par unes´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 inverseen d´ecrivant un langaged’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.
63
9 novembre 2004
CHAPITRE 4. MICROPROCESSEURS
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. 4.3 – Sch´
ema d’une Unit´
e Centrale de Traitement
4.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,
d’une UAL de deux registres , et d’un registre de pile
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
64
9 novembre 2004
4.2. ORGANISATION FONCTIONNELLE
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:
JE adr saut `a l’adresse adr si
JNE adr saut `a l’adresse adr si
JG adr saut `a l’adresse adr si
JGE adr saut `a l’adresse adr si
JL adr saut `a l’adresse adr si
JLE adr saut `a l’adresse adr si
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
4.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 bits/s et que la longueur moyenne de ses instructions est de bits, alors cette m´emoire
peut d´elivrer 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 n 1: une m´emoire de octets
cas n 2: une m´emoire de mots de 4 octets
Si on d´esire comparer 1 octet avec un autre octet, dans le cas 2 cela entraˆı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.
4.2.4.3 Code op´
eration expansif
Consid´erons une machine codant des instructions sur bits, soit bits pour le code op´eration
et bits pour l’adresse. Cette codification permet de repr´esenter instructions et adresses. On peut
d´esirer modifier ce codage des instructions de la mani`ere suivante:
bits pour le codeop´eration et bits pour l’adresse, soit 2 fois plus d’instructionsmais 2 fois
moins d’adresses
65
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 !