You are on page 1of 112

Ar

hite ture des ordinateurs


IUP GEII - informatique & tele ommuni ations
1ere annee

Patri k Mar el

24 janvier 2001
2

TABLE DES MATIERES 3

Table des matieres

1 Preambule 9
2 Introdu tion 11
2.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Ma hine Von Neumann . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Aper u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 Dispositifs de base . . . . . . . . . . . . . . . . . . . . . . 15
2.4.2 Unites fon tionnelles . . . . . . . . . . . . . . . . . . . . . 16
2.5 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Pre-requis 19
3.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Prin ipe de odage . . . . . . . . . . . . . . . . . . . . . . 20
3.2.2 Quelques odes . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Systeme de numeration . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.1 Conversions binaire-de imale . . . . . . . . . . . . . . . . 22
3.3.2 Representation des nombres negatifs . . . . . . . . . . . . 23
3.3.3 Representation des nombres reels . . . . . . . . . . . . . . 24
3.4 Algebre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5 Les ir uits logiques ombinatoires . . . . . . . . . . . . . . . . . 28
3.6 Les ir uits sequentiels . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Cir uits de al ul 35
4.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Arithmetique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.1 Arithmetique binaire . . . . . . . . . . . . . . . . . . . . . 36
4.2.2 Arithmetique ottante . . . . . . . . . . . . . . . . . . . . 38
4.3 Cir uits arithmetiques . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1 Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.2 Multipli ation . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.3 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4 
TABLE DES MATIERES

5 Memoire 53
5.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2 Les ara teristiques . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3 Mode d'a es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4 Memoire prin ipale . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.5 Memoire a he . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.6 Exemple : le pentium II . . . . . . . . . . . . . . . . . . . . . . . 63
6 Inter onnexions 65
6.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2 Stru ture d'inter onnexion . . . . . . . . . . . . . . . . . . . . . . 66
6.3 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.3.1 De nition et stru ture . . . . . . . . . . . . . . . . . . . . 66
6.3.2 Cara teristiques . . . . . . . . . . . . . . . . . . . . . . . 68
6.4 Syn hronisation des e hanges . . . . . . . . . . . . . . . . . . . . 70
6.4.1 Communi ation syn hrone . . . . . . . . . . . . . . . . . . 71
6.4.2 Communi ation asyn hrone . . . . . . . . . . . . . . . . . 71
6.4.3 Communi ation semi-asyn hrone . . . . . . . . . . . . . . 73
6.5 Te hniques d'arbitrage . . . . . . . . . . . . . . . . . . . . . . . . 73
6.5.1 Types d'arbitrage . . . . . . . . . . . . . . . . . . . . . . . 73
6.5.2 Me hanismes materiels d'arbitres . . . . . . . . . . . . . . 74
6.5.3 Strategies d'arbitrage . . . . . . . . . . . . . . . . . . . . 77
6.6 Exemple : le bus PCI . . . . . . . . . . . . . . . . . . . . . . . . . 78
7 Jeu d'instru tions 79
7.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.2 De nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.3 Cara teristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3.1 Classi ation . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3.2 Types d'instru tions . . . . . . . . . . . . . . . . . . . . . 83
7.3.3 Types d'operandes . . . . . . . . . . . . . . . . . . . . . . 83
7.3.4 Exemple : le pentium II . . . . . . . . . . . . . . . . . . . 83
7.4 Stru ture d'une instru tion . . . . . . . . . . . . . . . . . . . . . 85
7.4.1 L'adressage . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.4.2 Format d'instru tion . . . . . . . . . . . . . . . . . . . . . 86
7.4.3 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . 87
7.5 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8 CPU 91
8.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.2 Organisation de la CPU . . . . . . . . . . . . . . . . . . . . . . . 92
8.2.1 Organisation du pro esseur . . . . . . . . . . . . . . . . . 92
8.2.2 Organisation des registres . . . . . . . . . . . . . . . . . . 92
8.3 Cy le de l'instru tion . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.3.1 Cy le normal . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.3.2 Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . 95

TABLE DES MATIERES 5

8.4 Redu ed Instru tion Set Computers . . . . . . . . . . . . . . . . 96


8.4.1 Cara teristiques . . . . . . . . . . . . . . . . . . . . . . . 96
8.4.2 Exemple de ma hine RISC . . . . . . . . . . . . . . . . . 96
8.5 Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
8.5.1 Pipeline de base . . . . . . . . . . . . . . . . . . . . . . . 99
8.5.2 Les aleas . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.6 Ameliorations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.6.1 Ar hite ture supers alaire . . . . . . . . . . . . . . . . . . 102
8.6.2 Ar hite ture VLIW . . . . . . . . . . . . . . . . . . . . . . 103
9 Unite de ommande 105
9.1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.2 Mi ro-operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.3 Contr^ole du pro esseur . . . . . . . . . . . . . . . . . . . . . . . . 108
9.4 Implantation de l'unite de ommande . . . . . . . . . . . . . . . 109
9.4.1 Implantation materielle . . . . . . . . . . . . . . . . . . . 109
9.4.2 Implantation mi ro-programmee . . . . . . . . . . . . . . 110
6 
TABLE DES MATIERES
TABLE DES FIGURES 7

Table des gures


8 TABLE DES FIGURES
9

Chapitre 1

Preambule
10 
CHAPITRE 1. PREAMBULE

Contexte Ce i est un support de ours disponible aux formats html (http://www.blois.univ-


tours.fr/ mar el/ar hi) et posts ript. Il on erne le ours d'ar hie ture des or-
dinateurs propose aux etudiants de premiere annee de l'IUP GEII option infor-
matique et tele ommuni ations de Blois.

Obje tif Qu'est e qu'un ordinateur? Selon un di tionnaire Ha hette :


ordinateur : n. m. INFORM Ma hine apable d'e e tuer automati-
quement des operations arithmetiques et logiques (a des ns s ien-
ti ques, administratives, omptables, et .) a partir de programmes
de nissant la sequen e de es operations.
Ce ours propose de repondre a la question \qu'est e qu'un ordinateur ?"
en repondant a la question \ omment fon tionne un ordinateur?".

Moyens Nous disposons de 40 heures de ours et 15 heures de TD durant


lesquelles nous aborderons les points suivants :
{ introdu tion : historique et aper u ( ours 2)
{ pre-requis : odage et algebre de Boole ( ours 3)
{ arithmetique et ir uits de al ul ( ours 4)
{ memoire ( ours 5)
{ inter onnexions - bus ( ours 6)
{ jeux d'instru tions ( ours 7)
{ CPU ( ours 8)
{ unite de ommande (9)
La methode de progression est la suivante : le ours introduit les prin ipes
generaux et quelques exemples fondamentaux. Les TDs font l'objet de sean es
parti uliere durant lesquelles les notions de ours sont rappelees, expli ites, au
besoin etendues. Ils onsistent en une serie d'exer i e d'appli ation et d'appro-
fondissement. Les TDs, ainsi que leur orre tion, sont evalues.
Je souhaite egalement mentionner omme moyen toute ontribution que le
le teur voudra m'apporter.

Remer iements et bibliographie Pour e support de ours, je me suis ins-


pire
{ du ours d'ar hite ture de Mohamed Taghelit que le present ours rem-
pla e,
{ du livre \ omputer organization and ar hite ture ( fth edition)" de William
Stallings,
{ de do uments et supports de ours trouves sur le web, notamment eux
de Mi hel Cubero-Castan, Guy Chesnot, M. Billaud, Patri k Trau et Reto
Zimmermann.
Mer i a toutes es personnes pour m'avoir permis l'a es a leur do uments.
11

Chapitre 2

Introdu tion
12 CHAPITRE 2. INTRODUCTION

2.1 Introdu tion


Le but de e premier ours est d'avoir une premiere idee de e qui se passe a
l'interieur de la ma hine lorsqu'un utilisateur interragit ave elle. C'est un ours
d'introdu tion qui omprend :
{ introdu tion
{ historique
{ ma hine Von Neumann
{ aper u
{ on lusion
A titre d'exemple, on s'interesse a la sequen e d'evenements suivante : le ture
d'un nombre au lavier, operation sur e nombre, aÆ hage du resultat a l'e ran.

La ma hine per ue par l'utilisateur Intera tions ave la ma hine au tra-


vers des peripheriques (dispositifs externes a l'unite entrale) :
{ lavier,
{ souris,
{ e ran,
{ imprimante,
{ disquette, et ...
Intera tions = entrees de ommandes, lan ements d'appli ation, visualisa-
tion, et ...

La ma hine invisible a l'utilisateur La boite noire qu'est l'unite entrale


ontient en fait 3 unites fon tionnelles :
{ l'automate,
{ la partie al ul,
{ la memoire.

! Toute a tion de l'utilisateur se traduit par l'exe ution d'une sequen e


d'operations (faisant intervenir es unites).

2.2 Historique

! La motivation prin ipale est la volonte d'automatiser une suite de t^a hes
elementaires.
D'abord existent des ma hines / automates spe ialises : boite a musique, metiers
a tisser... puis on asso ie automate et ma hine a al ul. Charles Babbage (19eme
s ie le) fut le premier a de rire les prin ipes d'un al ulateur d'appli ation
2.2. HISTORIQUE 13

generale (ma hine pouvant repeter des sequen es d'operations et hoisir une
serie d'operations parti uliere en fon tion de l'etat du al ul). Le modele Von
Neumann (1946) pose les bases des ma hines universelles ( f. se tion 2.3).
On observe generalement 5 generations (etapes de isives) dans l'evolution (prin-
ipalement te hnologique) de es ma hines :

1945-1958
{ ordinateurs dedies, exemplaire uniques
{ ma hines volumineuses et peu ables
{ te hnologie a lampes, relais, resistan es
{ 104 elements logiques
{ programmation par artes perforees

! la plupart des on epts ar hite turaux (notamment le bug !) des ordinateurs


modernes datent de ette epoque.
Notons que le premier ordinateur numerique generaliste, l'ENIAC, ommande
par l'armee ameri aine en 1943 et realise en 1946, a eu pour premiere t^a he des
al uls omplexes pour l'etude de faisabilite de la bombe H.

1958-1964
{ usage general, ma hine able
{ te hnologie a transistors
{ 105 elements logiques
{ apparition des langages de programmation evolues (COBOL, FORTRAN,
LISP)

1964-1971 ou 75 ou 78
{ te hnologie des ir uits integres (S/MSI small/medium s ale integration)
{ 106 elements logiques
{ avenement du systeme d'exploitation omplexe, des mini-ordinateurs.

! La loi de Moore ( o-fondateur d'INTEL) veut que le nombre de transistors


integrables sur une seule pu e double haque annee.

1971/5/8-1978/85
{ te hnologie LSI (large SI)
{ 107 elements logiques
{ avenement de reseaux de ma hines
{ traitement distribue/reparti
14 CHAPITRE 2. INTRODUCTION

! 1971 : invention par INTEL du mi ropro esseur = toutes les omposantes


de la CPU sont reunies sur une m^eme pu e.

apres Le but originel de ette inqieme generation etait les ma hines langages
dediees a l'IA...
{ te hnologie VL/WSI (very large, wafer)
{ 108 elements logiques (le PII ontient 7,5 millions de transistors, memoire
non omprise)
{ systemes distribues intera tif
{ multimedia, traitement de donnees non numeriques (textes, images, pa-
roles)
{ parallelisme massif

2.3 Ma hine Von Neumann


John Von Neumann est a l'origine (1946) d'un modele de ma hine universelle
(non spe ialisee) qui ara terise les ma hines possedant les elements suivants :
{ une memoire ontenant programme (instru tions) et donnees,
{ une unite arithmetique et logique (UAL ou ALU),
{ une unite permettant l'e hange d'information ave les peripheriques : l'unite
d'entree/sortie (E/S ou I/O),
{ une unite de ommande (UC).
Ces dispositifs permettent la mise en uvres des fon tions de base d'un ordi-
nateur : le sto kage de donnees, le traitement des donnees, le mouvement des
donnees et le ontr^ole. Le fon tionnement s hematique en est le suivant : l'UC
1. extrait une instru tion de la memoire,
2. analyse l'instru tion,
3. re her he dans la memoire les donnees on ernees par l'instru tion,
4. de len he l'operation adequate sur l'ALU ou l'E/S,
5. range au besoin le resultat dans la memoire.

! La plupart des ma hines a tuelles s'appuient sur le modele Von Neumann.

2.4 Aper u
Cet aper u est une introdu tion au omportement des di erentes elements om-
posant l'unite entrale. Il est tres s hematique et sera developpe dans les ours
suivants. Il introduit des notions de base omme le y le d'horloge, les hrono-
grammes.
2.4. APERC
U 15

COMPUTER

I/O Memory

System
Bus

CPU

CPU

Arithmetic
Registers and
Logic Unit

2.4.1 Dispositifs de baseInternal CPU


Horloge Utilisee pour syn hroniser l'ensemble des dispositifs logiques d'un
Interconnection
ordinateur.
Caden ement des instru tions a frequen e onstante : l'horloge divise le temps
en battements de m^eme duree appeles y les.
Par exemple, une frequen e d'horloge d'un mi ropro esseur
Control Unit a 500MHz donne
des y les elementaires de 2 nanose ondes.

Registres Elements de memoire rapide internes a la CPU.

! Plus petit est 1.5


Figure l'espa eThe
de re her he,
Centralplus rapide est l'a es a l'information.
Processing Unit (CPU)

Memorisation ommandee par un signal de hargement : 2 types de registres


suivant que le hargement se fait sur niveau ou sur front.
16 CHAPITRE 2. INTRODUCTION

Bus Ensemble de ls ele triques sur lesquels transitent les informations entre
les unites.
Largeur du bus = nombre de ls onstituant le hemin = nombre d'impulsions
ele triques pouvant ^etre envoyes en parallele (en m^eme temps).

2.4.2 Unites fon tionnelles


Memoire Ve teur dont haque omposante est a essible par une adresse.
Les operations permises sur la memoires sont les operations de le ture et d'e riture.
L'UC ins rit l'adresse d'une ellule dans un registre d'adresse (RA) et demande
une operation de le ture ou d'e riture. Les e hanges se font par l'intermediaire
d'un registre de mot (RM ).
Le mot = l'unite d'information a essible en une seule operation de le ture (sa
taille varie en fon tion de la ma hine).

ALU Vue omme une fon tion a 3 parametres : 1 operation, 2 arguments. Elle
renvoie un resultat.
Un registre lui est asso ie : l' a umulateur (ACC ) pour par exemple memoriser
un resultat intermediaire.

E/S Sert d'interfa e ave les peripheriques.


Les operations asso iees (le ture et/ou e riture) sont fon tion du peripherique.

? Quels sont les peripheriques ou seule est permise la le ture? l'e riture?
les deux?
De maniere simiulaire a la memoire, on dispose d'un registre memorisant l'adresse
du peripherique (le registre de sele tion du peripherique (RSP )) et d'un registre
d'e hange de donnees (RE ).

Unite de ommandes Son fon tionnement est elui de rit plus haut.
Compteur ordinal (P C ) = registre ontenant l'adresse memoire de l'instru tion
a exe uter.
Registre d'instru tion (RI ) memorise l'instru tion (une instru tion est omposee
de plusieurs parties, ou hamps)

La ma hine omplete Une memoire, une ALU, une unite de ommande, une
unite d'E/S, un bus, et hop !

Jeux d'instru tions Di erents formats d'instru tion suivant le nombre de


parties reservees aux operandes (ou adresses).
Par exemples :
j ode operation j operande j (format 1 adresse)
j ode operation j operande 1 j operande 2 j (format 2 adresse)
2.4. APERC
U 17

0 : lirePériph - clavie
1 : additionner - 163
registre 2 : écrirePériph - écr
adresse ALU

accumulateur
registre
mot

registre compteur registre de registre


instruction ordinal sélection d’échange

horloge 1111111
0000000
0000000
1111111
1111101
00000
écran clavier lecteur

Exemple d'instru tions au format 1 adresse :


{ lirePeriph - nomPeriph
{ additionner - adresse
Exemple de fon tionnement ave une horloge a 4 phases (pour un format 1
adresse) : as d'une a quisition au lavier, d'une addition de la valeur lue ave
une donnee en memoire, puis aÆ hage du resultat a l'e ran.
H0 : RA PC
H1 : RI RM; P C PC + 1 l'instru tion est lirePeriph - nomPeriph
H2 : RSP RIp RIp est la partie nomP eriph de l'instru tion
H3 : ACC RE
H0 : RA PC nouveau y le, nouvelle instru tion
H1 : RI RM; P C PC + 1 l'instru tion est additionner - adresse
H2 : RA RIp RIp est la partie adresse de l'instru tion
H3 : ACC ACC + RM
H0 : RA PC nouveau y le, nouvelle instru tion
H1 : RI RM; P C PC + 1 l'instru tion est e rirePeriph - nomPeriph
H2 : RSP RIp RIp est la partie nomP eriph de l'instru tion
H3 : RE ACC
hargeur = programme qui lit un programme (sur un support externe) et l'e rit
en memoire. Le hargeur est harge par un dispositif materiel/ROM (appele
18 CHAPITRE 2. INTRODUCTION

mi ro hargeur).

2.5 Con lusion


L'evolution te hnologique des ordinateurs est liee a l'evolution des besoins (en
terme d'appli ation). Ce qui explique la ourse aux performan es (et indire te-
ment le hallenge qu'il y a a gerer la diversite dans l'evolution des performan es
de haque omposant).

! Le prin ipe de on eption d'une ma hine est lie a la performan e.


Quelles sont les mesures de performan e obje tives :
{ la frequen e d'horloge? obje tif pour une m^eme ar hite ture
{ nombre d'instru tion /s? obje tif pour un m^eme jeu d'instru tions (MIPS,
MFLOPS)
{ temps d'exe ution des programmes (ben hmarks)? oui !

! La performan e depend fortement de l'ar hite ture !


19

Chapitre 3

Pre-requis
20 
CHAPITRE 3. PRE-REQUIS

3.1 Introdu tion


Le but de e ours est de presenter les pre-requis a l'etude des unites fon tion-
nelles d'une ma hine. Ces pre-requis sont prin ipalement la numeration binaire
et la logique booleenne. De maniere plus pre ise, e ours etudie :
{ odage
{ numeration
{ algebre de Boole
{ ir uits ombinatoires
{ ir uits sequentiels

3.2 Codage
3.2.1 Prin ipe de odage
Soit I un ensemble d'informations. Soit A = fa1 ; : : : ; an g un ensemble ni de
symboles appele alphabet. Les ai sont appeles ara teres de A. Un ensemble
ordonne de ara teres est appele mot. La base du odage est le ardinal de
l'ensemble A.
Coder I onsiste a faire orrespondre a haque elements de I un mot de A. Un
odage est redondant si un element est asso ie a plusieurs odes.
Un odage peut ^etre a longueur xe :
{ numero de telephone d'un parti ulier
{ numero de se urite so iale
{ ode postal
ou a longueur variable
{ alphabet morse
{ ADN

? Pour un odage de longueur xe n, si b est la base du odage, monter que


l'on peut representer b elements, et que l'on a alors b ! odages possibles.
n n

3.2.2 Quelques odes

! Ne pas onfondre un nombre et sa representation !

Notation positionelle La representation d'un nombre est un odage. La


representation d'un nombre dans une base b donnee:

an an 1 : : : a1 a0 =
X n

ai b
i

=0
i
3.2. CODAGE 21

Code binaire naturel Alphabet de 2 ara teres : 0 et 1 ( ara teres binaires


appeles bits)
Correspondan e basee sur la representation des nombres en base 2.
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

? Pourquoi e tableau ne ontient pas le ode de 8?


Generalement, les bits les plus a gau he sont appeles poids forts.

! Le odage binaire naturel n'est qu'un odage parti ulier.

Code BCD/DCB De imal Code Binaire : haque hi re d'un nombre est sur
ode 4 bits
0 0000
1 0001
2 0011
.. ..
. .
10 0001 0000
11 0001 0001
Ce ode simpli e la onversion de imal binaire.

Code de Gray Distan e de 1 entre deux mots de ode onse utif


0 000
1 001
2 011
3 010
4 110
5 111
6 101
7 100
Ce ode evite le hangement simultane de 2 bits, et don les etats transitoires
indesirables.
22 
CHAPITRE 3. PRE-REQUIS

Dete tion d'erreurs La transformation d'un 0 en 1 ou d'un 1 en 0 est une


erreur frequente en informatique (probleme de transmission, defaillan e d'un
ir uit, et ...)
Un ode redondant peut ^etre utilise pour dete ter des erreurs.
Exemple : ajout d'un bit (dit bit de parite). Le bit supplementaire maintient la
parite de l'information :
{ 0110 devient 01100,
{ 1011 devient 10111
Il existe d'autres odes orre teur d'erreurs, ou l'augmentation de la redondan e
permet de dete ter et orriger une erreur. Dans le ode de Hamming, 3 bits sont
ajoutes a quatre bits de donnees pour ontr^oler la parite de trois groupes de
trois bits de donnees di erents.

? Comment un tel odage permet t'il la dete tion d'une erreur?

Codage des donnees alphanumeriques Fa e aux multiple possibilites de


odage, des organismes de normalisation ont vu le jour (le plus elebre etant
l'ISO).
Code ASCII = ode employe pour les ara teres alphanumeriques (a,b,1,?, ,,,).
Code sur 7 bits (+ 1 bit de parite).
{ A est ode par 1000001,
{ e est ode par 1100101,
{ 7 est ode par 0110111,
{ ! est ode par 0100001,
{ et ...
Uni ode = ode re ent sur 16 bits ontenant pratiquement tous les alphabets
existants (employe dans java).

3.3 Systeme de numeration


L'homme a 10 doigt. Le systeme de numeration humain est le systeme de imal.
L'ordinateur a 2 etat signi atifs (impulsion ele triques). Le systeme de numeration
qu'il emploie est don le systeme binaire.

! L'homme ompte sur ses doigts, l'ordinateur ompte sur ses bits.

3.3.1 Conversions binaire-de imale


Base b vers base 10 an an 1 : : : a1 a0 exprime en base b (note a
n an 1 : : : a1 a0 )
b
vers une representation en base 10 :

3.3. SYSTEME 
DE NUMERATION 23

an b n
+ an 1  bn 1 + : : : + a1  b + a0
Cas de la partie fra tionnaire :

a1 b 1 + a2  b 2 + : : : + an b n

Base 10 vers base b


A10 = an  bn + an 1  bn 1 + : : : + a1  b + a0

= ((: : : (an  b + an 1 )  b + : : : )  b + a1 )  b + a0
a0 est le reste de la division entiere du nombre par la base b. Des divisions
entieres su essives par la base donnent don tous les ai .
Cas de la partie fra tionnaire : sur un prin ipe similaire, des multipli ations
su essives par la base donnent tous les ai .

?
a 10?
Quelles sont les representations de 100 dans toutes les bases inferieures

? Conversion ave une base puissan e de la base de depart, par exemple


o tale (8 = 23) ou hexade imale (16 = 24 ) et binaire.

3.3.2 Representation des nombres negatifs


Signe et valeur absolue Sur n bits : signe = bit de poids fort (0 : positif, 1 :
negatif), n-1 bits = valeur absolue.
Intervalle de valeurs representes pour n bits : [ 2n 1 + 1; 2n 1 1℄

? Quelles sont les 2 representations possibles pour zero?

Notations omplementes Complement a 1: inversion de haque bit de la


valeur absolue du nombre a representer.

-1 110
-2 101
-3 100
24 
CHAPITRE 3. PRE-REQUIS

Intervalle de valeurs representes pour n bits : [ 2n 1 + 1; 2n 1 1℄

? Quelles sont les 2 representations possibles pour zero?

Complement a 2 = omplement a 1 + 1

-1 111
-2 110
-3 101

Intervalle de valeurs representes pour n bits : [ 2n 1 ; 2n 1 1℄

? Combien de representation possible pour zero?

Notation ex edentaire Ajout au nombre de la valeur d'un ex es (souvent


translation de 2n 1 , ainsi le bit de poids fort fait oÆ e de bit de signe).
Intervalle de valeurs representes pour n bits ave un ex es de 2n 1 : [ 2n 1 ; 2n 1
1℄
Inter^et : simpli e toutes les operations ou les omparaisons (qui se font unique-
ment sur des nombres positifs).

3.3.3 Representation des nombres reels


Plusieurs representations possibles :
{ virgule xe : revient a manipuler des entiers ( aisses enregistreuses)
{ ouple (numerateur,denominateur) : representation juste uniquement pour
les nombres rationnels
{ virgule ottante

Virgule ottante Un nombre reel m  b est represente par un signe, une


e

mantisse m, un exposant e, et une base b.

! La representation en virgule ottante est la representation des reels la plus


utilisee.

Il existe une in nite de representation du m^eme nombre. Representation norma-


lisee : pour une base b, la mantisse est prise dans l'intervalle [1; b[ (zero admet
une representation parti uliere).
La pre ision et l'intervalle de valeurs representees dependent du nombre de bits
utilises pour oder la mantisee et l'exposant.

3.3. SYSTEME 
DE NUMERATION 25

Norme IEEE754
{
nombres odes sur 32 bits (simple pre ision), ou 64 bits (double pre ision)
{
la mantisse appartient a l'intervalle [1; 0; 10; 0[ (en binaire)
{
le seul hi re a gau he de la virgule etant toujours 1, n'est pas represente
{
l'exposant est ode ave un ex es de 127 (simple pre ision) ou 1023 (double
pre ision)
Sur 32 bits : ( 1)S  1; M  2E 127

S exposant E mantisse M
1 bits 8 bits 23 bits

Exemple : -5 est ode par 1100 0000 1010 0000 0000 0000 0000 0000

? Veri er que e odage est le bon !

! La norme IEEE 754 est la norme la plus utilisee pour representer les reels.

Pre ision La representation des nombre reels sur une ma hine se base sur un
nombre ni de valeurs. C'est don une representation appro hee.
Pre ision de la representation = di eren e entre les mantisses de deux nombres
reels onse utifs.

! La pre ision ne depend que de la mantisse.

IEEE 754, simple pre ision (32 bits) : la pre ision est de 2 23 .
Les valeurs parti ulieres representes ave IEEE 754 :

E M valeur representee
max 0 1
max 6 0
= NaN
0 0 0
0 6 = nombres denormalises

La valeur (propageable) NaN signi e Not A p Number. Elle est pratique pour
representer le resultat de ertains al ul (e.g., 1).
26 
CHAPITRE 3. PRE-REQUIS

3.4 Algebre de Boole


Constitue une partie des travaux de Georges Boole (1815-1864) relatif a l'elaboration
d'une base mathematique au raisonnement logique.
Une algebre de Boole est la donnee de :
{ un ensemble E ,
{ deux elements parti uliers de E : 0 et 1,
{ deux operations binaires sur E : + et . (le . sera parfois omis),
{ une operation unaire sur E.
qui veri ent les axiomes suivants : soient a; b 2 E
ommutativite a+b=b+a ab=ba
asso iativite (a+b)+ =a+(b+ ) (ab) =a(b )
distributivite a(b+ )=ab+a a+(b )=(a+b)(a+ )
elements neutres a+0=a a1=a
omplementation a+a=1 aa=0
Les theoremes suivants peuvent ^etre deduits :
idempoten e a+a=a aa=a
absorption a+ab=a a(a+b)=a
De Morgan (dualite) a + b=a.b ab=a+b
elements absorbants a+1=1 a0=0

? Demontrer que aa=a


On se restreind i i a l'algebre de Boole minimale, ou E = f0; 1g. Cette algebre
peut ^etre interpretee omme suit :
{ 1 est interprete \vrai" et 0 \faux",
{ + est interprete \ou" (disjon tion logique)
{ . est interprete \et" ( onjon tion logique)
{ est interprete \non" (negation logique)

? L'algebre des ensembles munis des operations d'union, d'interse tion et


de omplementation est elle une algebre de boole?

Tables de verite et portes logiques On a les tables de verites suivantes :


a b a+b a b ab
a a 0 0 0 0 0 0
0 1 0 1 1 0 1 0
1 0 1 0 1 1 0 0
1 1 1 1 1 1

3.4. ALGEBRE DE BOOLE 27

? Comment peut ^etre interpretee l'operation logique dont la table est :


a b ab
0 0 0
0 1 1
1 0 1
1 1 0

Ces operations sont mises en uvres par des ir uits logiques de base appeles
portes logiques.

! La plupart des ir uits integres des ordinateurs a tuels sont on us a partir
de portes NON-ET (NAND) et NON-OU (NOR).

? Montrer que les operations ET, OU et NON sont realisables a partir de


portes NAND.

Expressions et fon tions booleennes Expression booleenne = terme onstruit


a partir de variables booleennes et d'operateur booleens.
Fon tion booleenne = fon tion binaire a variables binaires (de f0; 1gn dans
f0; 1g).
Une fon tion booleenne peut ^etre de rite par :
{ sa table de verite (re ensant toutes les ombinaisons de valeur des va-
riables)
{ une expression booleenne (de rivant la sortie 1 de la fon tion, par onven-
tion, a designe la valeur 0 pour a)
Exemple : fon tion booleenne majorite s'exprime par
a b majorite
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
ou : majorite(a,b, ) = ab + ab + ab + ab

? Montrer qu'il y a 22 fon tions booleennes a n arguments?


n
28 
CHAPITRE 3. PRE-REQUIS

! Les portes NAND et NOR sont dites ompletes ar on peut realiser n'im-
porte quelle fon tion boleenne ave l'une ou l'autre.

Simpli aton d'expressions booleennes Deux fon tions booleennes sont


equivalentes ssi les valeurs de leurs sorties sont les m^emes pour toutes les on -
gurations identiques de leurs variables d'entrees.
Il est interessant de minimiser le o^ut (en nombre de portes logiques) de realisation
d'une fon tion en trouvant l'expression booleenne de ette fon tion la moins ou-
teuse.

? Montrer que la fon tion majorite(a,b, ) se simpli e en b + a + ab

? Un aÆ heur 7 segments est ompose de 7 diodes notes a, b, : : : , g dis-


posees \en 8". Des nombres sont fournis en binaire sur 4 bits, x1 x2 x3 x4 . Don-
ner l'expression des 7 fon tions a(x1 x2 x3 x4 ), b(x1 x2 x3 x4 ), et ... qui permettent
d'aÆ her les nombres fournis.

3.5 Les ir uits logiques ombinatoires


Cir uits ombinatoires = ir uits dont la fon tion de sortie s'exprime par une
expression logique des seules variables d'entrees.
Voi i quelques ir uits ombinatoires intervenant dans la realisation des ompo-
sants logiques d'un ordinateur.

De odeur Cir uit permettant d'envoyer un signal a une sortie hoisie.
Il dispose de
{ n lignes d'entrees
{ 2n lignes de sortie
La table de verite d'un de odeur \2 vers 4" (n = 2) est la suivante :
e1 e0 s0 s1 s2 s3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
Et voi i la realisation d'un tel de odeur :

3.6. LES CIRCUITS SEQUENTIELS 29

Multiplexeur Cir uit permettant de sele tionner une entree parmi plusieurs.
Il dispose de
{ 2n entrees
{ 1 sortie
{ n lignes de sele tion
Voi i la realisation d'un multiplexeur \4 voies" (n = 2) :

? Sa hant sa realisation, quelle est la table de verite de e multiplexeur?

Comparateur Cir uit e e tuant la omparaison de deux nombres binaires.

? Realiser un omparateur de mots de 4 bits.

3.6 Les ir uits sequentiels


Aussi appeles ir uits de memorisation ar leur sorties dependent :
{ de l'etat des variables d'entree
{ de l'etat anterieur de ertaines variables de sortie
Un ir uit sequentiel possede des entrees E, des sorties S et un etat interne
Q. Il est de ni par deux fon tions S = f (E; Q) et Q0 = g (E; Q) indiquant
respe tivement la nouvelle sortie et le nouvel etat.

Notion d'etat stable Bistable = 2 portes NON montees en oppposition.

Ce ir uit a 2 etats stables di erents :


{ Q1 = 0 et Q2 = 1
{ Q1 = 1 et Q2 = 0

! Le ir uit ompose d'une porte NON rebou lee sur elle-m^eme est un ir uit
astable.
30 
CHAPITRE 3. PRE-REQUIS

Bas ule RS Ajout de ommandes reset (R) et set (S) au bistable.

Table de verite (Qi represente la sortie Q a l'instant i, x un etat quel onque) :


R S Qi Qi+1
0 0 x x
0 1 x 1
1 0 x 0
1 1 x interdit

? Que se passe t'il si R et S valent 1 simultanement? S'ils repassent ensuite


simultanement a 0?

Bas ule RST L'horloge peut ^etre vue omme la syn hronisation de l'odre
d'apparition des variables logiques.

L'ajout d'une entree d'horloge permet de valider les ommandes R et S :


{ si T = 1, fon tionnement omme une bas ule RS
{ si T = 0, onservation de l'etat ourant

Bas ule D Aussi appelee lat h. Inter^et :


{ pas d'etat instable
{ memorisation de l'entree

! La bas ule D est utilisee pour la on eption des memoires.

Bas ule JK Bas ule RS ave sorties rebou lees sur les entrees : pas d'etat
interdit.

J K Qi Qi+1
0 0 x x
0 1 x 0
1 0 x 1
1 1 x x

3.6. LES CIRCUITS SEQUENTIELS 31

SYMBOLES DES OPERATEURS LOGIQUES


Symbole Equations Symbole
(Norme MILSTD 086B) (notation française)

Ensemble quelconque (la fonction


est notée ou symbolisée à l’intérieur)

Inverseur

Ampli inverseur

Opérateur ET (AND)

Opérateur OU (OR)

Opérateur NON ET (NAND)

Opérateur NON OU (NOR)

Opérateur OU Exclusif (XOR)


32 
CHAPITRE 3. PRE-REQUIS

e1 e0

s0
s1
s2
s3

c1 c0 e3 e2 e1 e0

E1 Q1
Q2 E2

S Q

R Q

3.6. LES CIRCUITS SEQUENTIELS 33

S S Q Q
T
R R Q Q

D
S Q
T
R

J S Q Q
T
K R Q Q
34 
CHAPITRE 3. PRE-REQUIS
35

Chapitre 4

Cir uits de al ul
36 CHAPITRE 4. CIRCUITS DE CALCUL

4.1 Introdu tion

! INTEL a depense 300 millions de dollars pour le rempla ement de i ruits


PENTIUM bogues...

Ce ours suit le ours sur les prerequis en ontinuant les manipulation de


nombres odes selon di erentes representations binaires (simple, omplementes,
IEEE 754, ...) Il est onstitue d'une premiere partie portant sur les operations
arithmetiques (en binaire pure, et en ottant) et d'une deuxieme partie sur la
mise en oeuvre de es operations.

! Dans e ours, le symbole \+" designe l'addition et non le ou logique. Le


ou logique sera designe par le symbole \_" et le et logique par le symbole \^".

4.2 Arithmetique
4.2.1 Arithmetique binaire
Les operations en binaire s'e e tuent omme en base 10 :
{ pour l'addition et la soustra tion, on opere hi re par hi re, des poids
faibes aux poids forts, en propageant la retenue,
{ pour la multipli ation et la division, on pro ede par serie d'additions ou
de soustra tions.

Addition et soustra tion Ces operations peuvent ^etre de rites par les tables
de verite suivantes :
a b somme retenue
0 0 0 0 somme(a,b) = a  b
0 1 1 0 retenue(a,b) = ab
1 0 1 0
1 1 0 1
a b di eren e retenue
0 0 0 0 di eren e(a,b) = a  b
0 1 1 1 retenue(a,b) = ab
1 0 1 0
1 1 0 0
Exemple : en binaire naturel
27 + 22 = 49 : 11011 + 10110 = 110001
27 - 22 = 5 : 11011 - 10110 = 000101

4.2. ARITHMETIQUE 37

Debordement (over ow) Il intervient lorsque le resultat de l'operation n'est


pas representable dans le systeme utilise (i.e., ave le nombre de hi res utilise).
Dans le as d'une addition de deux nombres en odage binaire naturel, le
debordement orrespond a une retenue sortante a 1 ( as de 27 + 22 sur 5 bits).

Addition ave le omplement a deux Considerons d'abord le as d'une ad-


dition sans debordement (on ne onsidere que les n bits resultats d'une operation
sur deux nombres sur n bits). Detaillons les 4 as (selon les signes des operandes) :

5 00101 -5 11011 -5 11011 5 00101


9 01001 -9 10111 9 01001 -9 10111
14 01110 -14 10010 4 00100 -4 11100

Comment est- e possible ? Cas de l'addition de X et Y deux entiers negatifs.


Soit Z = X + Y . En omplement a deux, j X j= 2n j X j. Don

Z = (2n j X j) + (2 j Y j)
n

= 2n+1 (j X j + j Y j)
= 2n+1 jZj
e qui sur n bits donne bien 2n - j Z j.
Considerons le as du debordement : il y a debordement si
{ les operandes X et Y sont de m^eme signe, et
{ j X j + j Y j  2n+1

13 01101 -13 10011


9 01001 -9 10111
sur n bits -10 10110 10 01010
sur n+1 bits 22 010110 -22 101010

Le debordement peut ^etre dete te :


{ en omparant le signe des operandes au signe du resultat : s'ils sont di erents,
il y a debordement, ou
{ en omparant la retenue entrante dans le bit de poids fort ave la retenue
sortante : s'ils sont di erents, il y a debordement.

? Comment fon tionne l'addition de nombres odes en omplement a 1?


38 CHAPITRE 4. CIRCUITS DE CALCUL

Multipli ation et division La multipli ation est tres simple : elle ne onsiste
qu'en des additions su essives du multipli ande ave lui m^eme de ale. Le resultat
d'une multipli ation ave des operandes de n bits est ode sur 2n bits.

! Ces operations fon tionnent aussi ave des nombres odes en notations
omplementees.

Exemple :
11 01011 -5 1...11011 11 01011
13 01101 -3 1...11101 -3 1...11101
143 010001111 15 000001111 -33 111011111
La division onsiste en des soustra tion su essives. Par exemple : 1510 =310 =
1111=11 = 101

? Cal uler 1101; 11  110; 01 et 1110; 10=1101

4.2.2 Arithmetique ottante


Multipli ation C'est l'operation la plus simple en virgule ottante. Pour
deux nombres x1 = ( 1)s1  m1  2e1 et x2 = ( 1)s1  m2  2e2 , on a
x1  x2 = ( 1)s1  ( 1)s2  m1  m2  2e1 +e2 .
Le prin ipe general est don :
1. al ul du signe (s1  s2 )
2. multipli ation entiere des mantisses : m1  m2 ( f plus haut)
3. mise de la mantisee a p bits ( f plus bas)
4. al ul de l'exposant : e1 +e2 (enlever une fois la valeur de l'ex es au besoin !)

Arrondi La multipli ation des deux mantisses sur p bits donne un resultat sur
2p bits, duquel on doit onserver une mantisse de p bits. Il faut don arrondir
et eventuellement ajuster l'exposant pour normaliser le resultat.
Pour arrondir, on s'appuie sur :
{ le bit de garde : p + 1ieme bit
{ le bit d'arrondi : p + 2ieme bit
{ le bit persistant : un ou logique des bits elimines
Les p bits gardes sont fon tion du bit de poids fort du resultat :
{ si le bit de poids fort est 0, le resultat obtenu est de la forme 01,... On
doit onserver le bit de garde dans le resultat.
{ si le bit de poids fort est 1, le resultat est de la forme 10,... On ajuste
l'exposant, le bit de garde devient le bit d'arrondi, et l'an ien bit d'arrondi
entre dans le al ul du bit persistant.

4.2. ARITHMETIQUE 39

? Multipli ation de 5 par 10 et 5 par 15 ave mantisses de 4 bits.

Il y a plusieurs manieres d'arrondir...

Les arrondis IEEE Soient r le bit d'arrondi, s le bit persistant, et p0 bit de


poid faible du resultat. Le standard IEEE propose 4 appro hes d'arrondi :

mode d'arrondi resultat positif ou nul resultat negatif


au plus pres resultat + (r ^p0 ) _ (r ^ s) resultat + (r ^p0 ) _ (r ^ s)
vers - 1 in hange resultat + (r _ s)
vers + 1 resultat + (r _ s) in hange
0 in hange in hange

L'arrondi au plus pres, qui est l'appro he par defaut, onsiste a arrondir a la
plus pro he valeur representable.

? En utilisant une mantisse sur 6 bits, al uler la mantisse du resultat de


l'operation : 1; 01011  1; 00101 en utilisant un arrondi au plus pres.

Debordement Il intervient lorsque l'exposant du resultat est superieur a la


valeur maximum ou inferieur a la valeur minimum.

Addition L'algorithme d'addition de deux nombres ottants est un peu plus


omplique, ar il faut non seulement tenir ompte des signes, mais aussi aligner
les virgules.

? Appliquer l'algorithme (distribue en ours) : e e tuer sur 4 bits 1; 001 


2 2 + 1; 111  20 , puis 1; 25 1; 5.

Division Pour deux nombres x1 = s1  2 1 et x2 = s2  2 2 , on a x1 =x2 =


e e

s1 =s22 . e1 e2

Pour diviser deux mantisses sur p bits, on al ul le resultat sur p bits, plus deux
bits supplementaires : le bit de garde et le bit d'arrondi. Le reste donne la valeur
du bit persistant.
40 CHAPITRE 4. CIRCUITS DE CALCUL

Considerons 8=3, 'est a dire : 1; 000  23 =1; 100  21


1, 0 0 0 1, 1 0 0
1, 0 0 0 0 0, 1 0 1 0 1
- 1 1 0 0 g a
1 0 0 0 0
- 1 1 0 0
1 0 0 0 0
- 1 1 0 0
1 0 0
p p p
ou g designe le bit de garde, a le bit d'arrondi et p le bit persistant. Pour
l'instant, le resultat est 0; 101  22 . La normalisation donne 1; 010  21 , 'est a
dire 2,5, et l'arrondi 1; 011  21 soit 2,75 (le resultat orre t est 2,6666...).

4.3 Cir uits arithmetiques


Cette se tion presente quelques ir uits typiques de mise en oeuvre de operations
arithmetiques de rites i-dessus.

4.3.1 Addition
La on eption d'un additionneur n bits (appele full adder ou additionneur om-
plet) demande de prendre en ompte systematiquement la retenue ( arry) en-
trant dans un etage d'addition et de generer un bit de resultat et un bit de
retenue. Ainsi la table de verite de l'addition devient :
rin a b somme rout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

? Le ir uit implantant la table de verite de l'addition sans retenue entrante


est appele demi-additionneur. Construire un additionneur omplet a partir de
demi-additionneurs.
Suivent quelques exemples d'additionneurs. L'amelioration d'un additionneur
(en terme de temps de al ul) porte sur la propagation de la retenue.

4.3. CIRCUITS ARITHMETIQUES 41

Additionneur a propagation simple de retenue (CPA : arry propagate


adder) Un additionneur n bits est realise en utilisant n additionneurs om-
plets, haque retenue sortant de l'etage d'addition i servant de retenue entrante
dans l'etage i + 1.
La retenue entrante au premier etage est positionnee a 0. La retenue sortante
du dernier etage pourra servir d'indi ateur de debordement.

? Faire la synthese logique d'un additionneur omplet sur 1 bit le plus rapide
possible en utilisant des portes NOT, AND, OR, NAND, NOR. Determiner
le temps maximum pour e e tuer une addition en supposant que le temps de
42 CHAPITRE 4. CIRCUITS DE CALCUL

traversee d'une porte NOT, NAND ou NOR est de  et le temps de traversee


d'une porte AND ou OR est de 2 .

! L'in onvenient majeur de e ir uit est le temps ne essaire a la propaga-


tion de la retenue, qui est proportionnel au nombre d'etage. La omplexite en
temps d'un additionneur n bits est don en O(n).

Additionneur a retenue anti ipee (CLA : arry look-ahead adder) Le


prin ipe de et additionneur est, pour haque etage d'addition, d'anti iper (to
look ahead) la retenue avant de al uler la somme.
Le fait d'obtenir une retenue sortante a un etage d'addition est due a
{ une generation de retenue a et etage, ou
{ une propagation de retenue par et etage
Ce qui se retrouve dans l'expression de la retenue pour un etage i :

ri+1 = (ai ^ bi ) _ (ai ^ ri ) _ (bi ^ ri ) = (ai ^ bi ) _ (ai _ bi ) ^ ri


Ainsi
{ gi = (ai ^ bi ) est appele generateur de retenue et
{ pi = (ai _ bi ) est appele propagateur de retenue.
Don
ri+1 = gi _ (pi ^ ri )

e qui, si on developpe les ri , donne :

ri+1 = gi _ (pi ^ (gi 1 _ (pi 1 ^ (: : : g0 _ (p0 ^ r0 ) : : : )


En developpant en ore :

ri+1 = gi _ (pi ^ gi 1 )
_ (pi ^ pi 1 ^ gi 2 )
_ :::
_ (pi ^ pi 1 ^ : : : ^ p1 ^ g0 )
_ (pi ^ pi 1 ^ : : : ^ p1 ^ p0 ^ r0 )

Ce i permet de al uler haque retenue en fon tion de r0 et des ai ; bi des etages


pre edents.

4.3. CIRCUITS ARITHMETIQUES 43

Mise en oeuvre de l'additionneur a anti ipation de retenue Un moyen


d'implanter l'additionneur obtenu est de realiser un ir uit al ulant la propa-
gation et la generation de retenue pour un etage en fon tion de la propagation
et la generation des etages pre edents.
Il y a propagation a l'etage j si dans les etages i a j il y a toujours eu propagation :

Pj;i = pj ^ pj 1 : : : pi+1 ^ pi
Il y a generation a l'etage j si 'est l'etage j lui m^eme qui genere, ou si les etages
d'avant ont tous genere et propage :

Gj;i = gj _ pj ^ gj 1 _ pj ^ pj 1 ^ gj 2 _ : : : _ pj ^ pj 1 : : : pi+1 ^ gi
Don la retenue a l'etage j peut s'exprimer en fon tion de la retenue a l'etage
i; i < j :

rj +1 = Gj;i _ Pj;i ^ ri
Utilisons un ir uit pouvant generer les signaux P1;0 ; G1;0 et les retenues r1 ; r2
en fon tion des ouples (p0 ; g0 ), (p1 ; g1 ) et de la retenue entrante r0 .
Pour un tel ir uit :

G1;0 = g1 _ p1 ^ g0

P1;0 = p1 ^ p0

r1 = g0 _ p0 ^ r0
Supposons qu'un additionneur un bit nous al ule aussi la propagation et la
generation. Il est possible d'organiser un generateur de retenue en arbre, qui
permet d'anti iper haque retenue avant d'additionner.

! Un additionneur a anti ipation de retenue sur n bits fon tionne en log(n)


etapes pour le al ul des n retenues + 1 etape pour l'addition nale.

? Faire fon tionner et additionneur sur 00101011 + 10110111


44 CHAPITRE 4. CIRCUITS DE CALCUL

Additionneur a saut de retenue ( arry-skip adder) Considerons un


etage d'addition : s'il y a propagation de retenue, alors la retenue sortante est
la retenue entrante, sinon la retenue sortante est la retenue generee.
L'inter^et de ette onstatation est que pour un additionneur n bits, le signal de
propagation est plus simple (rapide) a al uler que la propagation elle m^eme.

? Comment realiser un tel additionneur?

Additionneur a sele tion de retenue ( arry sele t adder) Un tel addi-


tionneur est realise ave deux additionneurs fon tionnant en parallele, l'un ave
une retenue entrante a 0, l'autre ave une retenue entrante a 1. Des re eption de
la retenue entrante e e tive, une simple sele tion permet d'obtenir le resultat.

4.3. CIRCUITS ARITHMETIQUES 45

! L'addition est don realisable tres rapidement.

4.3.2 Multipli ation


Le prin ipe de la multipli ation est la generation de produits partiels et leur
addition. Ainsi, l'amelioration d'un multiplieur passe par es deux aspe ts : no-
tamment, elle onsiste en la redu tion du nombre de produits partiels (don
d'additions), ou l'a eleration de l'addition des produits partiels.

Multipli ation sequentielle Supposons que notre ALU ontienne des re-
gistres de n bits. Un multiplieur sequentiel opere sur 2 nombres non signes,
A = an 1 : : : a1 a0 et B = bn 1 : : : b1 b0 . Ces deux nombres sont ontenus dans
deux registres A et B , et on utilise un registre supplementaire P . L'algorithme
de al ul de A  B est le suivant :
1. P 0
2. faire n fois
(a) si le hi re de poid faible de A est 1 alors
{ P P + B,
{ sinon P P + 0
46 CHAPITRE 4. CIRCUITS DE CALCUL

(b) de alage des registres P et A vers la droite : le bit de poids fort de
P re oit la retenue sortante, le bit de poids faible de P est transfere
dans le bit de poids fort de A. L'an ien bit de poids faible de A est
perdu.

Le resultat se trouve dans P (les bits de poids fort) et dans A (les bits de poids
fables).

! n additions sont ne essaires

Multipli ation a onservation de retenue L'idee de e multiplieur est


d'asso ier un me anisme de propagation de retenue au me anisme de de alage du
registre P . Ainsi la retenue n'est plus propagee sur haque etage d'une addition,
mais est onservee pour l'addition suivante.

4.3. CIRCUITS ARITHMETIQUES 47

Re odage de Booth Le but de e re odage est de reduire le nombre de


produits partiels. Il est base sur la onstatation suivante : 2i+j 2i = 2i+j 1 +
2i+j 2 + : : : + 2i Ainsi lors d'une multipli ation, lorsqu'une sequen e de j 1
apparait dans le multipli ande (du bit i + j 1 au bit i), on peut rempla er les
j additions par :
{ une addition pour le rang i + j et
{ une soustra tion pour le rang i.
Par exemple le nombre 000111110011100 se re ode en 001000010100100, ou 1
indique une soustra tion et 1 indique une addition.

? Multiplier 3 par 15 en employant le re odage de Booth.

! Re odage non lie a une implantation parti uliere.

Multiplieur a base plus elevee (radix-4 modi ed Booth re oding)


Une multipli ation a base plus elevee (sous entendu que 2) onsidere plusieurs
bits simultanement (au lieu de 1 habituellement). Ainsi, un multiplieur a base
2k onsidere k bits simultanement.
48 CHAPITRE 4. CIRCUITS DE CALCUL

! Le nombre de produits partiels est divise par k.


Considerons un multiplieur a base 4. On onsidere les bits deux par deux, en
s'appuyant sur le bit pre edent la paire ourante. De plus, on emploi un re odage
de Booth. Pour un nombre A, on a

A =
X2
n=

(a2i 1 + a2i 2a2i+1 )22i


i=0
ave a 1 = 0 (par exemple, 3 = 2  21 1  20 )

! Une multipli ation par la base = un de alage vers la gau he.
L'operation a faire sur le resultat intermediaire est donnee par la table suivante
(en fon tion des bits du multipli ande A) :
a2i+1 a2i a2i 1 r esultat intermediaire
0 0 0 0
0 0 1 +B
0 1 0 +B
0 1 1 +2B
1 0 0 -2B
1 0 1 -B
1 1 0 -B
1 1 1 0
Exemple : la multipli ation de 7 (A = 00111) par 3 (B = 00011) se fait omme
suit :
0 0 1 1 1
 0 0 0 1 1
- 0 0 0 1 1 (-B)
+ 0 0 0 1 1 (+2B)
0 0 0 0 0 1 0 1 0 1

? Donner la table permettant de determiner le multipli ande intermediaire


a ajouter pour une multipli ation en base 8.

Multipli ation en reseau (parallel multiplier) L'idee est d'utiliser un


ir uit pour haque element xi yj d'un produit partiel :
x3 x2 x1 x0
y3 y2 y1 y0
x3 y0 x2 y0 x1 y0 x0 y0
x3 y1 x2 y1 x1 y1 x0 y1
x3 y2 x2 y2 x1 y2 x0 y2
x3 y3 x2 y3 x1 y3 x0 y3
p7 p6 p5 p4 p3 p2 p1 p0

4.3. CIRCUITS ARITHMETIQUES 49

Chaque element xi yj :
{ multiplie xi par yj (xi ^ yj )
{ additionne la somme partielle provenant de l'element xi+1 yj 1
{ tient ompte de la retenue provenant de l'element xi 1 yj
{ envoie la retenue a l'element xi+1 yj
{ envoie la somme a l'element xi yj +1
Le ir uit utilise est le suivant, ou (r; S ) = X  Y + K + M (S est la somme, et
r est la retenue sortante).

Ce qui permet d'organiser un multipli ateur reseau omme suit.

4.3.3 Division
L'amelioration des diviseurs porte sur la redu tion du nombre d'operations (ad-
dition, soustra tion) intermediaires ne essite par l'operation de division.
Dans tous les diviseurs presentes i-dessous, les operandes sont 2 nombres non
signes de n bits, ontenus dans deux registres : le registre A ontient le dividende,
et le registre B ontient le diviseur. On utilise un registre supplementaire P. En
n de division, le registre A ontient le quotient et le registre P ontient le reste.

Division ave restauration L'algorithme de division ave restauration est


le suivant (dans e qui suit, p < 0 s'interprete omme \P ontient un nombre
negatif") :
1. P 0
2. faire n fois
(a) de alage des registres P, A d'un bit vers la gau he : le bit de poids
fort de A est inje te dans le bit de poids faible de P
50 CHAPITRE 4. CIRCUITS DE CALCUL

(b) P P B
( ) si P < 0 alors
le bit de poids faible de A est mis a 0,
P P + B (etape de restauration)
sinon
le bit de poids faible de A est mis a 1

Division sans restauration L'etape de restauration peut ^etre evitee en han-


geant la phase iterative par :
1. si P <0
de alage des registres P, A d'un bit vers la gau he : le bit de poids
fort de A est inje te dans le bit de poids faible de P
P P +B
sinon
de alage des registres P, A d'un bit vers la gau he : le bit de poids
fort de A est inje te dans le bit de poids faible de P
P P B

4.3. CIRCUITS ARITHMETIQUES 51

2. si P < 0
le bit de poids faible de A est mis a 0
sinon
le bit de poids faible de A est mis a 1
Une restauration nale est toutefois ne essaire si P < 0 en n de division.

Division SRT A haque etape de la division sans restauration, une addition


ou une soustra tion est realisee. Un algorithme a ete propose independament
par Sweeney, Robertson, To her pour eviter une ou plusieurs de es additions
dans ertains as.
Dans e qui suit, les qi sont les bits du quotient, inje tes dans les bits de poids
faible de A.
1. si il y a k 0 dans les bits de poids fort de B, on de ale de k-1 positions
vers la gau he les registres P,A et B.
2. pour i de 0 a n-1
(a) si les trois bits de poids fort de P sont egaux
de aler P,A d'une position a gau he : le bit de poids fort de A
est inje te dans le bit de poids faible de P
qi 0
52 CHAPITRE 4. CIRCUITS DE CALCUL

sinon
si P < 0
{ de aler P,A d'une position vers la gau he : le bit de poids fort
de A est inje te dans le bit de poids faible de P
{ qi 1
{ P P +B
sinon
{ de aler P,A d'une position vers la gau he : le bit de poids fort
de A est inje te dans le bit de poids faible de P
{ qi 1
{ P P B
3. si P < 0 (le reste nal est negatif)
P P +B
A A 1
4. de aler le reste de k-1 positions vers la droite

? Tester et algorithme sur 8/3


53

Chapitre 5

Memoire
54 
CHAPITRE 5. MEMOIRE

5.1 Introdu tion


Ce ours introduit la strategie memoire mise en oeuvre dans un ordinateur,
et les ara teristiques asso iees a ette strategie en terme d'organisation et de
performan e.

! A e jour, il n'existe pas de te hnologie optimale pour satisfaire le besoin


en memoire d'un ordinateur.
On ommen e par aborder les ara teristiques d'une memoire, puis on detaille
les di erents mode d'a es. Le ours se fo alise ensuite sur la hierar hie memoire
interne, 'est a dire la memoire prin ipale et la memoire a he. L'exemple du
pentium II est rapidement presente.

5.2 Les ara teristiques


Dans e hapitre, on appellera memoire tout dispositif (ele tronique) apable
de onserver et restituer une information.
On parlera de mot memoire (ou plus simplement de mot) pour designer l'en-
semble de bits pouvant ^etre lus ou e rits simultanement.

Les di erents types physiques de memoires Les di erents supports uti-


lises sont prin ipalement
{ semi- ondu teur (e.g., registre)
{ magnetique (e.g., disquette)
{ optique (e.g., d-rom)

Duree de memorisation Elle peut ^etre fon tion du temps (de quasi-permanente,
e.g., disque, ROM a temporaire, ex. memoire dynamique), ou fon tion de la
presen e d'alimentation ele trique (volatilite : e.g., RAM).

Empla ement Il orrespond a la lo alisation de la memoire dans la ma hine :


{ dans le pro esseur (registre)
{ interne (memoire prin ipale)
{ externe (aussi appelee memoire se ondaire).

Capa ite Elle Represente le nombre d'informations sto kable. Exprimee en


o tet (byte) ou en mot (word) de 8, 16 ou 32 bits. On utilise des puissan e de
deux, ave les unites suivantes :
{ kilo 1K = 210 = 1024
{ mega 1M = 220 = 1 048 576
{ giga 1G = 230 = 1 073 741 824
{ tera 1T = 240 = 1 099 511 627 776
{ peta 1P = 250 = 1 125 899 906 842 620

5.3. MODE D'ACCES 55

Performan e On onsidere prin ipalement les informations suivantes :


{ le temps d'a es : le temps ne essaire a une operation de le ture/e riture
i.e., le temps qui separe l'instant ou l'operation est demandee (exemple :
l'adresse est presentee a la memoire pour une operation de le ture) du
l'instant ou l'operation est terminee (l'information est disponible),
{ le debit : la quantite d'informations lues/e rites par unites de temps (exemple :
Mo/s).

Mode d'a es Il s'agit de la maniere de retrouver une information, d'a eder
a un mot memoire ( f se tion 5.3).

Hierar hie L'ideal est de posseder une memoire illimitee et tres rapide. Or
le temps d'a es augmente ave la apa ite. L'idee adoptee pour l'organisation
de la memoire est don de onsiderer que seules les donnees les plus utilisees
ne essitent un temps d'a es tres petit.
Ainsi la memoire est organisee en une hierar hie :
{ du plus au moins rapide, 'est a dire
{ de la apa ite la plus faible a la apa ite la plus grande, 'est a dire
{ du omposant le plus outeux au omposant le moins outeux !

5.3 Mode d'a es


Le mode d'a es a une memoire depend surtout de l'utilsation qu'on veut en
faire.

A es aleatoire Il s'agit du mode d'a es le plus employe. Il est utilise par
{ les memoires qui omposent la memoire prin ipale,
{ quelques memoires a hes.
A haque mot memoire est asso iee une adresse unique (pas d'ambiguite dans
la designation du mot re her he). Le fon tionnement est elui presentee deja au
hapitre introdu tion. N'importe quelle adresse peut ^etre traitee (d'ou le nom).
La taille d'une adresse depend de la apa ite de la memoire. Par exemple, pour
une memoire de 4 Gbits il faut au moins une adresse de 32 bits : 1 gigabits =
230 = 1 073 741 824 bits, 4Go = 4  230 = 22  230 .
Les operations asso iees a e mode d'a es :
{ le ture(adr),
{ e riture(adr,donnee)
Le temps d'a es est onstant (il est independant des a es pre edents).

A es par le ontenu Ce mode d'a es ara terise les memoires appelees
memoires asso iatives.
Il est employe prin ipalement par les memoire a hes.
56 
CHAPITRE 5. MEMOIRE

Le prin ipe est similaire a la memoire a a es aleatoire sans notion d'adresse :
un mot est retrouve par une partie de son ontenu.
En general, une memoire asso iative est divisee en 2 parties :
1. une partie ontenant un des ripteur ( le) et permettant une omparaison
en parallele de e des ripteur ave un autre des ripteur, et
2. une deuxieme partie fournissant le mot asso ie au des ripteur.
Les operations asso iees a e mode d'a es :
{ e riture( le,donnee)
{ le ture( le)
{ existe( le)
{ retirer( le)
Le temps d'a es est onstant.

A es sequentiel Employe pour l'ar hivage d'importants volumes de donnees


(par exemple sur bandes magnetiques).
Les diverses informations sont e rites les une derriere les autres : pour a eder
a une donnee, il faut avoir lu les pre edentes.
Les operations asso iees a e mode d'a es :
{ debut : se positionner sur la premiere donnee
{ le ture : lire une donnee
{ e riture(donnees) : e rire donnee
{ n : se positionner apres la derniere donnee
Le temps d'a es est variable.

A es dire t Employe pour les disques (durs ou souple).


Chaque blo de donnees a une adresse unique. Une donnee est a edee en
a edant le blo qui la ontient, puis en se depla ant dans le blo jusqu'a sa
position.
Les operations asso iees a e mode d'a es :
{ le ture(blo ,depla ement)
{ e riture(blo ,depla ement,donnee)
Le temps d'a es est variable.

5.4 Memoire prin ipale

! L'a es a la memoire prin ipale est le hemin le plus important dans l'or-
dinateur.

5.4. MEMOIRE PRINCIPALE 57

Types Les memoires omposant la memoire prin ipale sont des memoires a
base de semi- ondu teurs, employant un mode d'a es aleatoire. Elles sont de
deux types : volatiles ou non.
Le terme RAM orrespond aux memoires volatiles. Elles sto kent des donnees
temporaires. A tuellement on en trouve prin ipalement 2 types :
{ RAM dynamique (DRAM) : des ondensateurs sont utilises omme unites
de memorisation. Elles ne essitent un rafrai hissement periodique. Elles
sont simples, denses, peu outeuses.
{ RAM statique : des bas ules sont utilisees omme unites de memorisation.
Elles sont plus rapides, et ne ne essitent pas de rafai hissement.

! Le ir uit DRAM demeure (depuis plus de 20 ans) la brique de base de la


memoire prin ipale.
Les ROM (Read-Only, Read-Mostly Memory) sont utilisees pour sto ker des
informations permanentes (programmes systemes, mi roprogrammation, f plus
tard). On en trouve de plusieurs types, selon omment sont faites/possibles la
le ture/e riture
{ ROM : e riture unique lors de la fabri ation
{ PROM : e riture unique apres fabri ation
{ EPROM : admet un nombre d'e riture limite (e a age par ultra-violet).

Organisation L'element de base d'une memoire semi- ondu teur est appele
ellule. Une ellule possede 3 onnexions :
{ une entree de sele tion indiquant si la ellule est on ernee par l'operation
ourante
{ une entree de ontr^ole indiquant l'operation ourante est une le ture (Out-
put Enable) ou une e riture (Write Enable)
{ une ligne bidire tionnelle pour les donnees.
A partir de et element de base, realisons un ir uit memoire RAM de M mots
de B bits ha un. On peut organiser ette memoire en une matri e de M lignes et
B olonnes. Ainsi, outre les entrees de sele tion, le ture et e riture (toutes sur 1
bit), on doit disposer de log2 (M ) lignes d'adresse (par exemple, 10 = log2 (1024))
et de B lignes de donnees.

Supposons maintenant qu'a partir de ir uits RAM de 1024  8 bits et de ir uits


ROM de 4096  8 bits, on her he a realiser un espa e adressable de 216 mots
de 32 bits, et disposer de 4096 mots memoires en RAM et 4096 mots memoire
en ROM. Pour obtenir un mot, il faut en parallele 4 ir uits de 8 bits.
On de nit une arte d'adresse memoire, 'est a dire l'o upation e e tive de
l'espa e adressable :
{ les 4096 mots memoires RAM orrespondront aux adresses les plus basses
(de 0 a 4096),
58 
CHAPITRE 5. MEMOIRE

{ les 4096 mots de memoires ROM orrespondront aux adresses les plus
elevees (de 61440 a 65535),
{ les autres adresses resteront ino upees.
etage bits d'adresse
RAM 0 0000 00xx xxxx xxxx
RAM 1 0000 01xx xxxx xxxx
RAM 2 0000 10xx xxxx xxxx
RAM 3 0000 11xx xxxx xxxx
ino upe
ROM 4 1111 xxxx xxxx xxxx
Cette memoire possede les parti ularites suivantes :
{ elle est adressable au mot : deux valeurs onse utives d'adresse designent
deux mots onse utifs,
{ l'organisation physique mots par mot re ete l'organisation logique.
Il faut hoisir une onvention pour l'adresse de l'o tet de poids faible dans le
mot :
{ adresse la plus faible du mot : onvention petit bout (little endian, employe
par la famille i386),
{ adresse la plus elevee du mot : onvention gros bout (big endian, employe
par la famille 68000)

Memoire dynamique DRAM Du fait de leur grande apa ite et de leur


stru ture interne, les ir uits de memoire dynamique multiplexent le bus adresse :
l'adresse de n bits d'un mot est envoye en 2 fois n=2 bis. Deux signaux indiquent
si la demi adresse ourante est en fait les bits de poids faible ou de poits fort de

5.5. MEMOIRE CACHE 59

l'adresse. Ces signaux sont nommes RAS (Row Adress Sele t) et CAS (Column
Adress Sele t).
Ainsi pour realiser une memoire de 16 M mots de 1 bit a partir de ir uits de 4
M mots de 1 bit, on assemble 4 ir uits di eren ies par le signal CAS.
Ce type de memoire ne essite un ompteur memorisant le numero de ligne de-
vant subir un y le de rafrai hissement (refresh ounter).
Un ontr^oleur de memoire dynamique est un ir uit integre qui regroupe :
{ la partie ompteur
{ la partie multiplexage d'adresses
{ la partie generation des signaux CAS et RAS
{ d'autres fon tionalites ( ontr^ole d'a es au bus de donnees, f plus tard...)

5.5 Memoire a he

! La performan e des mi ropro esseurs augmente de environ 55% par an


depuis 1987. La performan e des memoire augmente de environ 7% par an.
60 
CHAPITRE 5. MEMOIRE

Le a he memoire est un niveau de memorisation intermediaire tres rapide (plu-


sieurs dizaines de fois que la memoire prin ipale) et de petite apa ite destine
a memoriser les donnees ou instru tions les plus re emment a edees.
Un a he est typiquement situe entre le pro esseur et la memoire, mais peut
aussi ^etre situe entre le pro esseur et un autre a he, et ...

Prin ipe Re her he d'une donnee dans le a he avant de la re her her dans
la memoire prin ipale :
{ su es a he : la donnee est presente dans le a he
{ defaut de a he : la donnee est absente du a he
Un blo est un ensemble de mots d'adresses ontigues. La memoire est de oupee
logiquement en blo de m^eme taille (e.g., de 4 a 128 o tets, 32 o tets pour un
pro esseur Alpha AXP 21064). Lors d'un a es a une adresse, on regarde si le
blo ontenant l'adresse est dans le a he. En as de defaut de a he, le blo
entier est opie dans le a he.
Explorons les ara teristiques d'un a he.

Nombre de a hes et lo alisation A tuellement, la norme est a l'utilisation


de multiple a hes, organises en niveau (level).
Un a he peut ^etre situe sur la m^eme pu e que le pro esseur (on- hip/internal
a he), ou n'^etre qu'a essible via un bus externe au pro esseur (external a he).
L'utilisation d'un a he interne permet
{ d'augmenter les performan es
{ de laisser le bus externe disponible

5.5. MEMOIRE CACHE 61

Une organisation typique est : un a he interne (de niveau 1) et un a he externe


(de niveau 2). Le a he de niveau 2 doit ^etre de 10 a 100 fois plus grand que
le/les a hes de niveau 1 pour ^etre interessant.

Contenu Ave l'utilisation de multiples a hes a surgi l'idee de dedier un


a he au sto kage des donnees et un a he au sto kage des instru tions. L'inter^et
reside dans la possibilite pour le pro esseur de disso ier le me anisme d'exe ution
des instru tions d'ave elui de re her he et de odage des instru tions.

Taille du a he Il doit ^etre suÆsament petit pour que son o^ut soit pro he de
elui d'une memoire prin ipale, et que le temps d'a es soit le plus interessant
possible, et suÆsament grand pour ne pas avoir a trop a eder a la memoire
prin ipale. Des etudes ont montre que les a hes les plus eÆ a es on une taille
inferieure a 512 K mots, mais leur performan e dependent beau oup de la nature
des appli ations traitees par la ma hine...

Correspondan e La taille du a he est beau oup plus petite que la taille de


la memoire. Il faut de nir une strategie de opie des blo s de donnees dans le
a he. 3 strategies sont possibles :
{ orrespondan e dire te : haque blo memoire ne peut ^etre pla e que dans
un seul blo du a he,
{ orrespondan e totalement asso iative : haque blo memoire peut ^etre
pla e dans n'importe quel blo du a he
62 
CHAPITRE 5. MEMOIRE

{ orrespondan e asso iative par ensemble : haque blo memoire peut ^etre
pla e dans n'importe quel blo du a he parmi un ensemble de n blo s.
Aujourd'hui la grande majorite des a hes sont a orrespondan e dire te ou a
orrespondan e asso iative par ensemble de 2 ou 4 blo .

A es a un blo du a he Les adresses memoires peuvent ^etre onstruites


en fon tion de la orrespondan e entre memoire prin ipale et a he. Dans e as,
l'adresse memoire d'un mot ontient des informations sur sa presen e dans un
blo et sa presen e eventuelle dans le a he. Elle se de ompose en deux partie :
{ un numero de blo , qui se de ompose en
{ un index, orrespondant a l'empla ement de e blo dans le a he
{ une etiquette permetant d'identi er le blo memoire orrespondant
au blo pla e dans le a he
{ un depla ement dans le blo (le numero du mot dans la blo ).
Ainsi, une table d'etiquette est maintenue, qui donne pour haque blo du a he
l'etiquette du blo memoire pla e dans e blo , ou le fait qu'au un blo memoire
n'a ete opie dans e blo .

Algorithme de rempla ement Il existe plusieurs manieres de determiner


quel blo du a he va re evoir le blo memoire ayant provoque un defaut de
a he.

! Le probleme ne se pose que dans le as de la orresponda e asso iative


(totale ou par ensemble).
Divers strategies sont employees, prin ipalement :
{ hoisir un blo andidat de maniere aleatoire
{ hoisir le plus an ien blo du a he (FIFO, First In First Out)
{ hoisir le blo le moins re emment utilise (LRU Least Re ently Used)
{ hoisir le blo le moins frequemment utilise (LFU Least Frequently Used)
Les strategie on ernant l'utilisation (LFU, LRU) sont les plus eÆ a e (vient
ensuite la strategie aleatoire). Les strategies aleatoire et FIFO sont plus fa iles
a implanter.

Politique d'e riture Considerons le as d'une operation d'e riture. Deux


situations se presentent selon que le blo dans lequel on souhaite e rire se trouve
dans le a he ou non.
Dans le premier as, on peut hoisir
{ d'e rire a la fois dans le blo du a he et dans le blo de la memoire
(e riture simultanee, ou write through)
{ d'e rire uniquement dans le blo du a he, et di erer l'e riture de e blo
en memoire lorsque l'empla ement qu'il o upe sera designe pour re evoir
un nouveau blo memoire (ree riture ou write ba k).
5.6. EXEMPLE : LE PENTIUM II 63

? Lorsqu'on adopte une strategie write ba k, que se passe t'il lorsqu'un


peripherique demande l'a es a la memoire?
Dans le deuxieme as, on peut hoisir
{ de harger le blo de la memoire dans le a he puis e e tuer l'operation
d'e riture (e riture allouee)
{ d'e e tuer l'e riture dire tement dans la memoire (e riture non allouee).
Une optimisation lassique pour diminuer l'attente de la n d'une e riture
onsiste a utiliser un tampon d'e riture, permettant au pro esseur de onti-
nuer a travailler des que la donnee est e rite dans le tampon, sans attendre
l'a quittement de la memoire.

Performan e On peut evaluer la peforman e d'une memoire utilisant un


a he par le al ul du temps d'a es memoire moyen :
temps d'a es memoire moyen = temps d'a es su es
+ taux d'e he  penalite d'e he
temps d'a es su es = temps d'a es a une donnee residant dans le a he
taux d'e he = nombre de defaut de a he / nombre d'a es a he
Exemple : lors de l'exe ution d'une instru tion, le pro esseur prend du temps
pour la de oder, a eder aux donnees en memoire ne essitees par ette insstru -
tion, et de len her les operations sur es donnees. Voi i le as suivant :
duree d'un y le horloge :
penalite d'e he : 10 y les
duree d'une instru tion (sans referen e memoire) : 2 y les
nombre de referen es memoire par instru tion : 1,33
taux d'e he : 2%
temps d'a es su es : negligeable
temps d'exe ution moyen d'une instru tion = (2 + 1; 33  2%  10) = 2; 27
et dans le as ou il n'y a pas de a he, e temps passe a :
temps d'exe ution moyen d'une instru tion = (2 + 1; 33  10) = 15; 3

5.6 Exemple : le pentium II


Le pentium II d'Intel emploie un type parti ulier de memoire DRAM, la SDRAM,
et deux niveau de a hes.

SDRAM La SDRAM (Syn hronous DRAM) est une evolution de la DRAM.


La DRAM est asyn hrone ; lorsque le pro esseur demande une operation de le -
ture/e riture, il doit attendre pendant le temps orrespondant au temps d'a es
du ir uit que l'operation soit exe utee.
La SDRAM e hange ses donnees ave le pro esseur en se basant sur un signal
d'horloge externe. Elle dispose de registres internes pour sto ker les informations
a traiter (en le ture ou e riture). Elle repond apres un nombre de y les d'horloge
xe (le pro esseur peut faire autre hose entre temps). Elle dispose d'un mode
64 
CHAPITRE 5. MEMOIRE

d'a es \en rafale" (burst mode) pour lequel seule l'adresse de debut d'une
sequen e de mots (a lire/e rire) est donnee ( e qui elimine le de odage des
adresses suivantes).

Ca he Evolution a he de la famille i386 :

pro esseur a he
80386 0
80486 1 a he interne 8Ko
pentium 1 a he interne donnee 8 Ko et 1 a he interne instru tions 8 Ko
pentium 2 1 a he interne donnee 16 Ko et 1 a he interne instru tions 16 Ko
1 a he externe 256 Ko ommun au 2 a hes internes
pentium 3 1 a he interne donnee 16 Ko et 1 a he interne instru tions 16 Ko
1 a he externe 256 Ko ommun au 2 a hes internes
par omparaison :

pro esseur a he
INTEL eleron 2 1 a he interne donnee 16 Ko et 1 a he interne instru tions 16 Ko
1 a he externe 128 Ko
AMD athlon 1 a he interne 128 Ko
1 a he externe 256 Ko
Les a hes internes du pentium 2 sont a orrespondan e asso iative par en-
semble. Le a he interne donnee utilise un algorithme LRU pour le rempla e-
ment et une politique d'e riture write ba k. Il peut ^etre on gure pour adopter
une politique write-through.
65

Chapitre 6

Inter onnexions
66 CHAPITRE 6. INTERCONNEXIONS

6.1 Introdu tion


Ce ours presente la ommuni ation entre les di erentes unites fon tionnelles
de la ma hine. On s'attarde tout d'abord sur l'ar ite ture globale de ommu-
ni ation, puis on examine les ara teristiques et le fon tionnement des bus. Le
ours se los sur l'exemple du bus PCI.

6.2 Stru ture d'inter onnexion


Rappel : un ordinateur se ompose de trois unites fontionnelles, dediees aux
operations suivantes :
{ la memoire : le ture, e riture d'un mot de donnee a une adresse
{ l'unite d'entrees-sorties (E/S) : omportement similaire a la memoire. Chaque
peripherique a une adresse (appelee numero de port), et les operations sont
le ture e riture de mots a une adresse
{ le pro esseur ( ontenant l'ALU) : le ture des instru tions et des donnees,
e riture des donnees, utilise des signaux de ontr^ole pour ontr^oler le
syseme
Ces 3 unites ommmuniquent les unes ave les autres. On appelle stru ture
d'inter onnexion l'ensemble des hemins les onne tant.
La stru ture d'inter onnexion doit pouvoir supporter les types de transfert sui-
vants :
{ memoire vers pro esseur : le ture d'instru tions
{ pro esseur vers memoire : e riture de donnees
{ E/S vers pro esseur : le ture de donnees transmises par un peripheriques
{ pro esseur vers E/S : transfert de donnees vers un peripherique
{ E/S vers memoire ou memoire vers E/S : utilisation du prin ipe d'a es
dire t a la memoire (Dire t Memory A ess) pour faire ommuniquer les
deux unites sans passer par le pro esseur.

6.3 Bus
6.3.1 De nition et stru ture
De nition : un bus est un hemin partage entre plusieurs unites (ou modules).

! Un seul equipement transmet a un instant donne.

Un bus onsiste typiquement de 50 a 100 lignes transmettant des signaux representant


des 1 ou des 0 (generalement des ondu teurs). Chaque ligne possede une fon -
tion propre. On distingue 3 groupes de fon tion di erentes :
{ les lignes de donnees (appelees bus de donnees),
6.3. BUS 67

{ les lignes d'adresses (bus d'adresse),


{ les lignes de ontr^ole, dont la fon tion est de ontroler l'a es et l'utilisation
des bus d'adresses et donnees. Ces signaux sont de deux types :
{ des signaux de timing indiquant la validite des informations d'adresse
ou de donnees,
{ signaux de ommandes indiquant le type d'operation a e e tuer.
Parmi les signaux de ontr^ole les plus ourants, on trouve :
{ memory write : ordre d'e riture de la donnee sur le bus a l'adresse memoire
indiquee,
{ memory read : ordre de le ture de la donnee a l'adresse memoire indiquee,
{ I/O write : ordre d'e riture de la donnee sur le bus sur le port indique,
{ I/O read : ordre de le ture de la donnee sur le port indique,
{ transfer ACK : indique que les donnees ont ete a eptees ou pla ees sur le
bus,
{ bus request : indique qu'un module demande l'a es au bus,
{ bus grant : indique qu'un module a obtenu l'a es au bus,
{ lo k : utilise pour syn hroniser les transferts
{ reset : utilise pour la reinitialisation de tous les modules,
{ des signaux gerant les interruptions ( f plus tard).

Fon tionnement s hematique Une transa tion typique se ompose de 3


parties :
{ l'obtention du bus,
{ l'envoi d'une adresse et
{ l'envoi des donnees.
On parlera de transa tion de type e riture quand un module veut transferer des
donnees : une fois le bus obtenu, l'emetteur transmet ses donnees.
On parlera de transa tion de type le ture quand un module veut demander des
donnees : une fois le bus obtenu, l'emetteur transmet une requ^ete au module
destination, et attend les donnees.

Hierar hie bus multiple Plus le nombre d'equipement onne tes a un bus
est grand, plus les performan es de la ma hine de roissent (le bus devient un
goulot d'etranglement). De plus la longueur physique du bus joue sur la vi-
tesse de transfert de l'information : approximativement la vitesse de signal dans
un ondu teur orrespond a la moitie de la vitesse de la lumiere dans le vide
(exemple pour une horloge a 200 Mhz, pour un y le de 5ns, le signal n'a par-
ouru que 75 m).
Les stru tures d'inter onnexions les plus ommunes sont basees sur l'utilisation
d'une d'une hierar hie de bus.
Les gures suivantes en donne quelques exemples.
68 CHAPITRE 6. INTERCONNEXIONS

L'inter^et est de separer ommuni ation pro esseur/memoire de ommuni ation


E/S.

! De maniere generale, on her hera a etager en fon tion de la performan e


des peripheriques.

On obtient ainsi deux grandes familles de bus :


{ les bus UC-memoire, appeles bus systeme, generalement ourts et rapides.
Lors de la on eption d'un bus systeme on onnait les omposants qui
utiliseront le bus.
{ les bus E/S, plus long, moins rapides, o rent une gamme etendue de debits,
et font souvent l'objet de normalisation.

6.3.2 Cara teristiques


Largeur du bus Correspond au nombre d'information pouvant ^etre envoyees
en parallele. Le debit sera d'autant plus grand que la largeur est elevee. Un bus
6.3. BUS 69

tres large permettra l'envoi simultane de donnees et adresses. Un bus peu large
demandera un multiplexage des donees et adresses.
La largeur du bus de donnees est determinante pour les performan es du systeme :
si le bus a une largeur de 8 bits et que les instru tions sont odees sur 16 bits,
le pro esseur doit faire deux a es memoire pendant un y le instru tion. A -
tuellement, la largeur d'un bus de donnees est de 8, 16 ou 32 bits.
La largeur du bus d'adresses determine la taille de la apa ite memorielle de
l'ordinateur. Typiquement, les bits de poids fort sont utilisees pour sele tionner
soit un module d'E/S, soit la memoire, et les bits de poids faible servent a
sele tionner un port ou un empla ement memoire.

Type de transfert de donnees Il existe plusieurs moyen de transferer des


donnees :
1. e riture multiplexee : l'adresse est pla ee sur le bus en premier, ensuite les
donnees,
2. le ture multiplexee : l'adresse est pla ee sur le bus en premier, ensuite,
apres un temps d'a es aux donnees, les donnees,
3. le ture/e riture non multiplexee : l'adresse et les donnees sont pla ees sur
le bus en m^eme temps,
4. le ture-modi ation-e riture : une donnee est lue a une adresse et est
immediatement modi ee (i.e., par une e riture a ette adresse),
5. transfert de blo de donnees : une adresse est pla ee sur le bus, ensuite les
donnees a e rire/lire a l'adresse pla ee et aux adresses onse utives.

? Quel est l'in onvenient d'un transfert de type 5?


70 CHAPITRE 6. INTERCONNEXIONS

Syn hronisation La transmission peut ^etre syn hrone ou asyn hrone.


Dans une ommuni ation syn hrone, le signal d'horloge est transmis sur les
lignes de ontr^ole. Un proto ole est xe en fon tion de e signal pour emettre
adresses et donnees. Cela permet une ommuni ation rapide au prix de peu
de logique de ontr^ole. Neanmoins ela impose a l'emetteur et au re epteur de
fon tionner a la m^eme frequen e d'horloge.
Dans une ommuni ation asyn hrone, l'absen e de referen e a une horloge ne essite
des e hanges de signaux pour indiquer la progression de la ommuni ation.
La ommuni ation est moins rapide, et est realisee ave une logique plus im-
portante. L'avantage est de permettre la ommunni ation entre omposants
heterogenes (par exemple possedant une frequen e d'horloge di erente).

! En general, le bus systeme fon tionnera de maniere syn hrone et un bus


d'E/S de maniere asyn hrone.
La syn hronisation est detaillee dans la se tion suivante.

Te hnique d'arbitrage Un module sera appele ma^tre s'il lui est permi de
demarrer une transa tion sur le bus (exemple : l'UC, un module d'E/S).

! Il ne peut y avoir qu'un seul ma^tre a la fois.


Un omposant non ma^tre sera dit es lave. Lorsqu'il existe plusieurs ma^tres de
bus potentiels, un me anisme d'arbitrage est ne essaire pour designer qui sera
le pro hain ma^tre ( f se tion 6.5).
Une transa tion faisant intervenir plusieurs es laves (par exemple adresse a tous
les a hes pour les rendre oherents) est appelee di usion (broad ast).

Performan es La performan e d'un bus est de nie par les riteres suivants :
{ la bande passante, 'est a dire la quantite d'in rmations e hangees par
unite de temps,
{ la laten e, 'est a dire le temps de reponse du bus a une requ^ete de trans-
fert,
{ la harge, 'est a dire le nombre maximum d'unites pouvant ^etres onne tees
au bus, et
{ la longueur physique du bus.

6.4 Syn hronisation des e hanges


L'e hange de donnees ne essite un timing qui peut ^etre implante de 3 manieres
di erentes :
{ une maniere syn hrone lorsque les evenements ont lieu a des moments
pre is dans le temps

6.4. SYNCHRONISATION DES ECHANGES 71

{ une maniere asyn hrone lorsque les evenements peuvent avoir lieu a des
moements arbitraires
{ une maniere semi-asyn hrone lorsque les evenements peuvent avoir lieu de
maniere asyn hrone lors des di erentes phases d'une horloge.

6.4.1 Communi ation syn hrone


Le timing des operations est ontr^ole par une horloge, il n'y a pas de dialogue
entre emetteur et re epteur pour le ontr^ole de l'e hange. 2 signaux sont utilises,
qui sont generes par l'horloge :
{ DR (Data Ready) : utilise par l'emetteur, il signal que les donnees sont
pla ees sur le bus
{ DA (Data A epted/A knowledge) : utilise par le re epteur, il signal que
les donnees ont ete re ues.

Ce type de syn hronisation doit ^etre adapte au re epteur le plus lent.

6.4.2 Communi ation asyn hrone


Il n'y a pas besoin d'horloge xe. Les signaux sont generes par les modules. On
distingue trois type de proto oles asyn hrone : non-entrela e, semi-entrela e,
ompletement entrela e.

Transa tion asyn hrone non-entrela ee

Dans e as, il ne faut pas que t5 soit inferieur a t4 ( e qui peut arriver si
l'emetteur est tres rapide). Si tel est le as, le pro hain y le de bus pourrait
ommen er avant la retombee du signal DA. Le proto ole asyn hrone semi-
entrela e permet de resoudre partiellement e probleme.
72 CHAPITRE 6. INTERCONNEXIONS

Transa tion asyn hrone semi-entrela ee

L'emetteur fait retomber le signal DR en reponse au signal DA. Mais le probleme


n'est toujours pas resolu entierement, l'emetteur pouvant ommen er une nou-
velle transa tion trop t^ot.

Transa tion asyn hrone ompletement entrela ee

Dans la as d'un proto ole asyn hrone ompletement entrela ee (aussi appele
handshake, poignee de main), l'en hainement des evenements est le suivant :
1. l'emetteur pla e les donnees sur le bus
2. l'emetteur leve le signal DR
6.5. TECHNIQUES D'ARBITRAGE 73

3. le re epteur lit la donnee


4. le re epteur leve le signal DA
5. l'emetteur remet DR a zero
6. l'emetteur retire sa donnee du bus
7. le re epteur remet DA a zero
L'emetteur est don for e de debuter une nouvelle transa tion lorsque le signal
DA est retombe.
Ce proto ole est tres souvent utilise ar il permet de syn hroniser des modules
ayant des vitesses tres di erentes. Un me anisme de time-out est mis en pla e
pour eviter qu'un module ne reagissant plus soit assimile a un module tres lent.
Les in onvenient de e proto ole sont que les delais de transmission des signaux
de ontr^ole ralentissent la ommuni ation, et qu'il est sensible au bruit (le pas-
sage errone de 1 a 0 ou de 0 a 1 d'un signal de ontr^ole entraine une violation
du proto ole).

6.4.3 Communi ation semi-asyn hrone


Ce type de transfert emploi aussi des signaux de ontr^ole. Les transitions des
signaux de ontr^ole ne peuvent avoir lieu qu'a des instants pre is, determines
par une horloge. Le temps entre deux transistions su essives peut ^etre variable.
On retrouvera les modes non-entrela e, semi-entrela e, et entrela e. Le prin ipal
avantage de e proto ole est qu'il est moins sensible au bruit.

? Pourquoi e proto ole est il moins sensible aux bruits?

6.5 Te hniques d'arbitrage


L'arbitrage de bus garantit qu'a tout moment il n'y a pas plus d'un seul ma^tre.

6.5.1 Types d'arbitrage


Arbitrage statique L'arbitrage statique onsiste a rendre ma^tre les andi-
dats potentiels a tour de r^ole, dans un ordre xe. L'in onvenient est que si un
ma^tre ne souhaite pas faire de transa tion a un moment donne, il reste ma^tre
et le bus est inutilise (non-operation). L'avantage est la simpli ite de mise en
oeuvre. Ce type d'arbitrage est utilise ave un proto ole syn hrone lorsqu'il y a
peu de ma^tres potentiels.

Arbitrage dynamique L'arbitrage dynamique permet d'allouer le bus sur


demande, lorsqu'il est libre, a un ma^tre potentiel qui en fait la demande en
emettant un signal BR (Bus Request).
74 CHAPITRE 6. INTERCONNEXIONS

Lorsqu'il y a plusieurs demandes simultanees, un hoix doit ^etre fait qui peut
^etre :
{ suivant une priorite a e tee de maniere unique a haque ma^tre potentiel
(les bus d'E/S utilisent souvent e type d'arbitrage)
{ de maniere equitable (pour eviter qu'un ma^tre potentiel de petite priorite
voit ses demandes onstamment rejetees)
{ en ombinant les deux premieres politiques : un hoix equitable departage
deux demandes de m^eme priorite.
Le bus n'est attribue que lorsqu'il est libre. La liberation du bus peut avoir lieu
de plusieurs manieres:
{ en n de transa tion,
{ sur demande : le ma^tre onserve le bus jusqu'a une nouvelle demande.
Cette politique est utilisee lorsque un ma^tre (exemple le pro esseur) est
elui qui demande le plus souvent (exemple, par rapport a un module
d'E/S),
{ par preemption : un module prioritaire peut devenir ma^tre avant la n
d'une transa tion moins prioritaire.

6.5.2 Me hanismes materiels d'arbitres


La realisation materiel d'un me anisme d'arbitrage peut ^etre distribue, 'est a
dire reparti sur l'ensemble des modules onne tes au bus, ou bien entralisee,
'est a dire soit se trouver sur un seul des modules onne tes au bus ou faire
l'objet d'un module dedie appele bus arbitre ou ontr^oleur de bus.
Cette realisation est basee sur les trois signaux de ontr^ole suivants :
{ BR pour Bus Request : signale une demande de bus,
{ BA/BG pour Bus A knowledge/Bus Grant : signale l'obtention du bus,
{ BB pour Bus Busy : signale l'o upation du bus.
Commen ons par les trois te hniques d'arbitrage entralises.

Daisy hain La stru ture en guirlande (daisy hain) fon tionne de la maniere
suivante :
6.5. TECHNIQUES D'ARBITRAGE 75

Un ordre de priorite est impose par la guirlande


1. les elements desirant ^etre ma^tre emettent un signal BR,
2. l'arbitre re oit le ou logique des signaux BR,
3. si BR, l'arbitre envoie le signal BG a la guirlande,
4. le module demandeur de plus haute priorite leve le signal BB et fait re-
tomber le signal BG, il devient ma^tre du bus,
5. une fois la transa tion nie, le ma^tre fait retomber le signal BB.
Les avantages de et arbitre sont sa simpli ite de realisation, qui est de plus
quasi-independante du nombre de modules onne tes. Les in onvenients sont la
priorite statique, la lenteur de reponse de l'arbitre (proportionnelle a la longueur
de la guirlande), et une grande sensibilite aux pannes.

? Que se passe t'il si un module tombe en panne?

Requ^ete-autorisation Chaque module onne te au bus dispose de lignes BG


et BR propre.

Les avantages sont l'absen e de delai de reponse, de sensibilite aux pannes d'un
module, et le ara tere non statique de la priorite. L'in onvenient est la multi-
pli ation des lignes de ontr^ole.

Arbitrage mixte Cette te hnique est une ombinaison des deux te hniques
pre edentes.

Chaque serie de modules possedant des lignes BG et BR est organisee en guir-


lande. Di erentes strategies d'arbitrage peuvent ^etre implantees pour designer
le sous ensemble dont un element sera ma^tre du bus ( f plus bas). Pour une
serie de module, la priorite est xe par la guirlande.
76 CHAPITRE 6. INTERCONNEXIONS

Arbitrage de entralise Le defaut de l'arbitrage entralise est la sensibilite


de l'arbitre aux pannes : si l'arbitre tombe en panne, au une allo ation ne peut
avoir lieu. L'arbitrage de entralise fon tionne de la maniere suivante :

Chaque module possede un numero de priorite unique, et dialogue ave son


propre arbitre. Lorsqu'un module souhaite avoir le bus,
1. il envoie son numero de priorite a son arbitre,
2. l'arbitre pla e e numero sur le bus numero arbitrage (un groupe de lignes
de ontr^ole du bus reservees a et e et),
3. le numero qui apparait sur es lignes est en fait le ou logique de tous les
numeros de priorite des modules desirant ^etre ma^tre
4. e numero (resultat du ou logique) est ompare par haque arbitre au
numero du module dont depend l'arbitre,
5. si e n'est pas elui de plus grande priorite, il est retire, sinon il est main-
tenu
6. reste don sur les lignes de ontr^ole du bus le numero du module pouvant
^etre ma^tre,
7. l'arbitre de e module peut don signaler au module qu'il est le nouveau
ma^tre (signal BG) et leve le signal BB.
Ce type d'arbitre est parti ulierement utilise dans les on gurations multipro-
esseur, ou l'e hange d'informations entre pro esseurs se fait via un bus.
6.5. TECHNIQUES D'ARBITRAGE 77

6.5.3 Strategies d'arbitrage


Lorsque la priorite n'est pas xee statiquement, l'arbitre doit adopter une strategie
pour departager les ma^tres potentiels. Les deux notions generalement examinees
sont :
{ le niveau de priorite : l'arbitre hoisi le module le plus prioritaire au mo-
ment ou le bus est disponible,
{ l'an iennete de la demande : l'arbitre alloue le bus au module dont la
demande est la plus an ienne.
Les strategies peuvent ^etre basees sur un seul de es riteres, ou les deux. Exa-
minons quelques strategies simples.

Strategie lineaire Un numero xe est attribue a haque demandeur. Les


numeros sont ranges par ordre de priorite de roissante.
Exemple : 4 L 3 L 1 L 2 signi e que le module le plus prioritaire est le module
4, et le moins prioritaire le 2.
Cette strategie est simple a realiser, mais il y a risque de famine pour un de-
mandeur moins prioritaire.

Strategie ir ulaire La priorite ir ule sur les demandeurs : les numero sont
pla es dans une liste ir ulaire, et 'est le demandeur dont le numero est pla e
a droite du numero du dernier ma^tre du bus qui devient ma^tre a son tour.
Exemple : 4 R 3 R 1 R 2 signi e que le module le plus prioritaire est le module
4 si le module 2 etait ma^tre du bus lors de la derniere transa tion.
Cette strategie est plus diÆ ile a realiser que la pre edente (il faut onnaitre le
dernier ma^tre) mais evite la situation de famine.

Strategie y lique Pour haque demandeur, on garde l'anteriorite des de-


mandes pre edentes. L'arbitre applique une strategie lineaire sur les modules
lasses par ordre d'anteriorite de roissante (le module le plus an iennement servi
sera le plus prioritaire).
Exemple : 1 C 2 C 3 C 4, singni e que si a un moment donne, le plus an ien-
nement servi est l'element numero 4, puis l'element numero 1, puis l'element
numero 3 et en n l'element numero 2, l'element le plus prioritaire sera le 4. Si,
seul le numero 3 demande le bus, il l'obtiendra, mais la priorite sera alors par
ordre de roissant: 4, 1, 2 et 3.

Strategie multiple Il s'agit simplement de melanger plusieurs strategies de rites


i-dessus.
Exemple : 1 R (3 C 4) R (5 L 6) signi e que 5 sera le plus prioritaire si 3 ou 4
ont ete servis en dernier.
78 CHAPITRE 6. INTERCONNEXIONS

6.6 Exemple : le bus PCI


Le bus PCI (Peripheral Component Inter onne t) est un standard (ses spe i a-
tions sont dans le domaine publi ) developpe par intel , utilise pour les ommuni-
ations ave les E/S ( artes graphiques, artes reseau, ontroleur de disques, ...).
Ses qualites (pro esseur-independant, on gurable, haut debit) l'ont rendu tres
populaire et utilise dans des ordinateurs personnels, des serveurs, des stations
de travail.
Ses ara teristiques sont les suivantes (version 2.1) :
largeur 32 ou 64 bits
aden e a 66 Mhz
debit max 528 Mo/s
transfert multiplexage adresses et donnees
en rafale
timing semi-syn hrone
arbitrage entralise
syn hrone
requ^ete-autorisation
a he

Transa tion Le bus PCI omprend des lignes de ontr^ole pour detailler type
d'operation (le ture/e riture) et destinataire (memoire, E/S). Une transa tion
onsiste en une phase d'emission d'une adresse, suivie de une ou plusieurs phase
d'emission de donnees. Lors d'une transa tion, tous les evenements sont syn-
hronises sur des fronts des endants d'horloge.

Arbitrage L'arbitrage est entralise, et repose sur deux signaux BG et BR


pour haque module. La strategie n'est pas xee par la spe i ation du bus,
et l'arbitre omprend plusieurs types de strategies (FIFO, ir ulaire, xation
de priorite). L'arbitrage est a he, 'est a dire qu'il est e e tue pendant une
transa tion.
79

Chapitre 7

Jeu d'instru tions


80 CHAPITRE 7. JEU D'INSTRUCTIONS

7.1 Introdu tion


On a outume de dire que le jeu d'instru tion est la partie visible de la ma hine
par le programmeur (prin ipalement pour l'e riture de ompilateur). Il y a une
orrespondan e dire te entre le jeu d'instru tion d'une ma hine, sa programma-
tion et la on eption de sa CPU. La onnaissan e du jeu d'instru tion par le
programmeur o re en quelque sorte une vue logique de la ma hine en terme de
registres, de types de donnees, ou de fon tionnement de l'ALU.

! Con evoir une CPU 'est en grande partie on evoir le jeu d'instru tions.
Ce ours ommen e par des de nitions (et un rappel du hapitre 1) portant sur
les instru tions et leurs in uen e sur la CPU. Puis il est divisee en 2 grandes
parties : la premiere partie repond a la question \que fait une instru tion ?"
et la se onde a la question \ omment spe i er operation et operandes d'une
instru tion?"
Le pentium II sera pris en exemple.

7.2 De nition


Les operations de la CPU sont determinees par les instru tions qu'elle exe ute.
L'ensemble des instru tions qu'une CPU parti uliere peut exe uter est appele
jeu d'instru tion de la CPU. Chaque type de ma hine possede don un jeu
d'instru tions et une CPU spe i que.
Une instru tion doit ontenir des informations requises par la CPU pour son
exe ution :
{ le ode operation : un ode (binaire) identi ant l'operation a exe uter,
appele op ode
{ la referen e aux operandes sour es : une ou plusieurs adresses faisant referen es
aux operandes parametres de l'operation (qui peuvent provenir de la memoire,
d'un registre de la CPU, ou d'un peripherique),
{ la referen e a l'operande resultat : l'operation peut produire un resultat et
referen er expli itement e resultat,
{ la referen e a la pro haine instru tion : indique a la CPU ou her her l'ins-
tru tion suivant l'exe ution de l'instru tion ourante (elle peut ^etre impli-
ite, 'est le as lorsqu'il l'instru tion suivante est ontigue a l'instru tion
ourante).

Representation de l'instru tion Chaque instru tion est representee par


une sequen e de bits, de oupee en hamps. Il y a di erents formats d'instru -
tion selon le nombre de parties reservees aux operandes. En general, un jeu
d'instru tions in lue plusieurs formats d'instru tion di erents.
Durant l'exe ution d'une instru tion, elle- i est hargee dans le registre d'ins-
tru tion (IR) de la CPU, qui doit en extraire les di erents hamps.

7.3. CARACTERISTIQUES 81

Cette sequen e de bit admet une representation symbolique, ou l'op ode est
represente par une abbreviation appelee mnemonique. Chaque op ode admet
une representation binaire xe. Par exemple ADD R; Y signi e ajouter la valeur
ontenue a l'adresse Y au ontenu du registre R.
Il est don possible de programmer en employant un tel langage, appele langage
ma hine. Aujourd'hui, la programmation ne se fait plus qu'ave des langages
de haut niveau (ou au pire ave des langage d'assemblage, qui sont une legere
abstra tion des langages ma hine). Les langages ma hines reste ependant un
bon moyen de de rire les jeux d'instru tion.

! Le jeu d'instru tion doit ^etre suÆsament expressif pour oder toute ins-
tru tion d'un langage de haut niveau. Ainsi, une instru tion d'un langage de
haut niveau orrespond en fait a plusieurs instru tions du langage ma hine.

? Soit l'instru tion en langage de haut niveau


elle traduite en langage ma hine?
X = X + Y . Comment est

Con eption du jeu d'instru tion Il n'y a pas de onsen us sur la on eption
d'un jeu d'ins tru tions. Les aspe t fondamentaux a prendre en ompte sont :
{ les operations : ombien en faut il, quelle doit ^etre leur omplexite ?
{ les types de donnees : quels sont les types de donnees supportes par les
operations?
{ les registres : ombien en faut il et omment sont ils utilises?
{ l'adressage : quelles sont les di erentes fa ons de faire referen e aux donnees?
{ le format : quelle(s) longueur(s) d'instru tion adopter, quelle sera le nombre
et la taille de hamps?
Ces aspe ts sont grandement relies les uns aux autres, et doivent ^etre onsideres
ensemble. Ils sont detailles dans la suite.

! La on eption du jeu d'instru tions in ue grandement sur la on eption


de la CPU.

7.3 Cara teristiques


7.3.1 Classi ation
On peut lassi er les jeux d'instru tion selon le nombre d'adresses d'operandes
manipulees (le format d'instru tion), ou selon la relation entre la memoire et les
registres de la CPU.
82 CHAPITRE 7. JEU D'INSTRUCTIONS

Format d'instru tion Une operation fait referen e a des donnees sour es et
peut faire referen e a une destination. Ces referen es sont en fait les adresses
des donnees. Le format d'une instru tion orrespond au nombre de hamps
de l'instru tion reserve a es adresses. En theorie, il en faudrait 4 (pour deux
operandes, un resultat, la pro haine instru tion). En pratique :
{ les formats d'instru tion a trois adresses ils sont peu ourants, ar donne
lieu a des instru tions longues ;
{ les formats d'instru tion a deux adresses ne essitent que l'une des adresses
fasse oÆ e de sour e et de destination ( e qui doit ^etre gere si la donnee
sour e doit rester disponible) ;
{ les instru tions employant base sur un format a une seule adresse em-
ploient systematiquement un registre CPU, l'a umulateur, pour garder
une operande et le resultat ;
{ Les instru tions n'employant au une adresse utilisent systematiquement
une pile, ou sta k (i.e., une stru ture de liste geree de maniere LIFO) pour
sto ker operandes et resultats.

? Quel est l'impa t du format dans le odage de X = X + Y ?


Le hoix du nombre d'adresse est fait en onsiderant le fait suivant : moins il
y a d'adresses, plus les instru tion sont ourtes, moins la CPU est omplexe,
mais les instru tions seront plus nombreuses, don les programmes plus lents
a exe uter. Disposer de plusieurs adresses est onjoint a la possibilite d'utiliser
plusieurs registres.

! A tuellement la plupart des ma hines utilisent un jeu d'instru tions melangeant


les formats 2 adresses et 3 adresses.

Relation entre memoire et registres Les registres sont des elements de


memorisation rapide interne a la CPU. En disposer permet de minimiser les
a es a la memoire et d'a elerer l'exe ution des instru tions. Ainsi le jeu d'ins-
tru tion peut ^etre base sur di erentes strategies de sto kage des donnees :
{ registre-registre ( hargement-rangement) : deux instru tions sont dediees
au hargement de registre a partir de la memoire et au rangement de
registre dans la memoire. Donne lieu a des instru tions simples dont
l'exe ution est rapide (nombre de y les xe) mais le nombre d'instru tions
generees est important,
{ registre-memoire : les instru tions peuvent manipuler les donnees dire -
tement dans les registres ou dans la memoire. Le ode genere est plus
ompa t mais les instru tions sont plus diÆ iles a de oder, et le nombre
de y les pour l'exe ution est variable,
{ memoire-memoire : il y a a es systematique a la memoire, qui peut devenir
un goul^ot d'etranglement ( on erne les an iennes ma hines).

7.3. CARACTERISTIQUES 83

! La tendan e a tuelle est l'emploi du hargement-rangement.

7.3.2 Types d'instru tions


Le nombre d'op odes varie d'une ma hine a l'autre. On peut ependant donner
les ategories prin ipales suivantes :
{ transfert de donnees : es instru tions spe i ent l'empla ement des operandes
sour e et destination, la taille des donnees a transferer, ainsi que la maniere
d'a eder a es donnee (le mode d'adressage) ;
{ les operations arithmetique : toutes les ma hines omprennent les operations
de base sur des entiers signes ( xed point numbers), la plupart in luent
des instru tions pour les operations sur des ottants, d'autres instru tions
sont parfois disponibles ;
{ logique : servent aux manipulations de donnees bit a bit (masque), aux
de alages,
{ onversion : hangement du format d'une donnee (e.g., DCB vers binaire) ;
{ E/S : transfert de donnees ave les E/S ;
{ ontr^ole systeme : instru tions reservees a un mode d'exe ution privilegie
(e.g., pour l'utilisation du systeme d'exploitation) ;
{ transfert de ontr^ole : instru tions impliquant un hangement expli ite du
ompteur ordinal, pour exe uter un bran hement onditionnel, ou une
repetition.

7.3.3 Types d'operandes


Les donnees sur lesquelles les instru tions operent peuvent ^etre rangees dans les
ategories suivantes :
{ les adresses, qui peuvent ^etre onsiderees omme des entiers non signes
sur lesquels des al uls sont possibles ;
{ les nombres : entiers ( xed-point), ottants, DCB. Ils peuvent avoir un
r^ole spe i que (e.g., ompteur, de taille de hamps) ;
{ les ara teres, sous forme de odes ASCII ;
{ des donnees logiques, 'est a dire des sequen es de bits ayant ha un un
sens (e.g., un tableau de booleens).
Certaines ma hines emploient des types de donnees plus evoluees (liste ou ha^ne
de ara teres).

7.3.4 Exemple : le pentium II


Types de donnees Le pentium II utilise la onvention little endian, 'est
a dire que l'o tet de plus faible poids est sto ke a la plus petite adresse. Il
travaille sur des donnees de longueur 8 (o tet), 16 (mot), 32 (double mot) ou 64
bits (quadruple mot) qui sont quali ees de generiques, et peuvent ontenir une
84 CHAPITRE 7. JEU D'INSTRUCTIONS

sequen e de bits arbitraire. Plus pre isement, le pentium II supporte des types
de donnees spe i ques (manipules par des operations parti ulieres) :
{ general : ontenu arbitraire sur 8, 16, 32 ou 64 bits ;
{ entier : binaire signe en omplement a 2 sur 8, 16 ou 32 bits ;
{ ordinal : entier non signe sur 8, 16 ou 32 bits ;
{ BDC : entier entre 0 et 9 sur 8 bits ;
{ pa ked b d : 2 hi res BDC (de 0 a 99) sur un o tet ;
{ pointeur : une adresse sur 32 bits ;
{ hamps binaire : sequen e de bits onsideres ha un de maniere ndependante
(bornee a 232 bits);
{ ha^ne d'o tet : sequen e d'o tets, mots ou doubles mots (bornee a 232
o tets) ;
{ ottants : orrespond a un ensemble de types utilises par l'unite arithmetique
en virgule ottante, manipulees par des operations dediees. Ces types sont :
{ entier mot : binaire en omplement a 2 sur 16 bits ;
{ entier ourt : binaire en omplement a 2 sur 32 bits ;
{ entier long : binaire en omplement a 2 sur 64 bits ;
{ pa ked BCD : 1 bit de signe, 18 o tet BDC ;
{ simple pre ision, double pre ision et pre ision etendue (sur 80 bits,
64 bits de mantisse et 15 bits d'exposant) : standard IEEE 754.

Types d'operation Le pentium II omprend un jeu d'operations omplexe,


in luant de nombreuses operations spe ialisees. L'idee etait d'optimiser la tra-
du tion de ode de haut niveau en langage ma hine. Ainsi, on trouve les ategories
d'instru tions ommunes a la majorite des ma hines, et d'autres ategories par-
ti ulieres au pentium II :
{ les operations de transfert de ontr^ole donnent lieu a un type d'operations
supportant des operations de langage de haut niveau ;
{ un ensemble d'instru tion est dedie a la gestion de la memoire et du a he
interne ( es instru tions sont exe utees seulement a partir de l'OS) ;
{ des instru tions de bran hement sont de nies pour fon tionner onjointe-
ment au test de registres de ondition (registres ontenant des informations
sur des operations arithmetique ou de omparaison).
En 1996, Intel a introduit un ensemble de 57 nouvelles instru tions dediees
aux operations multimedia, appele MMX. Ces instru tions permettent d'e e -
tuer une m^eme operation sur plusieurs elements a la fois (prin ipe SIMD). Les
donnees video et audio sont omposees de large tableaux de petits types de
donnees (8 ou 16 bits, parfois 32) alors que les instru tions onventionnelles
sont alibrees pour des types de donnees plus grands (32 ou 64 bits). Ainsi,
trois nouveaux types de donnees ont ete introduits en MMX, ha un de 64 bits
de oupes en hamps ontenant ha un un entier :
{ pa ked bytes : 8 o tets ;
{ pa ked word : 4 mots ;
7.4. STRUCTURE D'UNE INSTRUCTION 85

{ pa ked doubleword : 2 double mot.


La majorite des nouvelles instru tions onsiste en une operation parallele sur
des o tets, mots ou doubles mots.

7.4 Stru ture d'une instru tion


Dans la on eption d'un jeu d'instru tion, un parametre important est le nombre
de registres et leur utilisation. Les CPU modernes omportent de multiples
registres non spe i ques disponibles pour le programmeur.

7.4.1 L'adressage
L'instru tion fait referen e a des donnees. Or la taille d'un hamp adresse dans
une instru tion est petite, alors qu'il faut pouvoir adresser un espa e memoire
important. Ainsi une variete de te hnique d'adressage, 'est a dire de manieres
d'obtenir une adresse e e tive, ont ete proposees.

Modes d'adressage Voi i les modes d'adressage les plus ommuns :


{ l'adressage immediat : l'operande est donnee dans l'instru tion. Pas de
referen e a la memoire, mais la taille de l'operande est limitee ;
{ l'adressage dire t : l'adresse memoire de l'operande est donnee dans l'ins-
tru tion. Simple, mais la taille de l'espa e adressable est limitee ;
{ l'adressage registre : l'adresse du registre interne (generalement sur 3 ou
4 bits) dans lequel est ontenue l'operande est donnee dans l'instru tion.
Pas de referen e a la memoire, mais la taille de l'espa e adressable est
limitee ;
{ l'adressage indire t par memoire : l'adresse de l'operande est le ontenu de
l'adresse memoire donnee dans l'instru tion. Implique plusieurs referen es
a la memoire ;
{ l'adressage indire t par registre : l'adresse de l'operande est le ontenu du
registre dont l'adresse est donnee dans l'instru tion.
{ adressage depla ement : l'adresse de l'operande est donnee en deux par-
ties, une base dans un registre (peut ^etre le Program Counter) et un
depla ement (a ajouter a la base) dans l'instru tion. Flexible, mais om-
plexe.
On s'aper oit qu'il y a antagonisme entre :
{ espa e adressable et exibilite d'une part, et
{ nombre de referen es memoire et omplexite du al ul d'adresse d'autre
part.
Les modes d'adressage immediat, indire t par registre et depla ement sont les
plus utilises. Toutes les ma hines disposent de plusieurs modes d'adressage. Pour
86 CHAPITRE 7. JEU D'INSTRUCTIONS

un jeu d'instru tion, il y a deux manieres de di eren ier les modes d'adressage
utilises :
{ par l'utilisation d'un ou plusieurs bits indiquant quel est le mode employe.
Ces bits sont appeles spe i ateur d'adresse. Cette methode est adoptee
lorsqu'on souhaite disposer d'un grand nombre de mode d'adressage, et
peut donner lieu a une taille d'instru tion variable ;
{ par l'utilisation d'op odes di erents, e qui permet de onserver une taille
d'instru tion xe ( e qui fa ilitera la realisation materielle).

7.4.2 Format d'instru tion


Le format d'une instru tion de nit les hamps de l'instru tion (op ode et adresses)
et l'adressage employe.

Taille d'instru tion Plus le jeu d'instru tions est omplexe (en termes de
nombre d'op odes, de types d'operandes et de mode d'adressage), plus fa ile
( ompa te) sera la programmation. Mais un jeu d'instru tion omplexe implique
une longueur d'instru tion importante, e qui implique une onsommation im-
portante en espa e. La longueur d'une instru tion doit ^etre onsideree onjoin-
tement a
{ la taille et l'organisation de la memoire. Ainsi la memoire pourra ^etre
adressable a la taille de l'instru tion ;
{ la stru ture d'inter onnexion. Ainsi la longueur de l'instru tion sera un
multiple de la taille du bus de donnees ;
{ la omplexite et la vitesse de la CPU. Par exemple, si la CPU exe ute
les instru tions plus vite qu'elle ne les harge a partir de la memoire, la
memoire devient un goulot d'etranglement ; la solution peut ^etre de reduire
la taille de l'instru tion.
Pour un jeu d'instru tion, la taille de l'instru tion peut demeurer xe ou ^etre va-
riable. Une taille d'instru tion variable autorise une large gamme d'op odes (de
tailles di erentes), et une plus grande exibilite d'adressage. Mais ela a roit
la omplexite de la CPU.

Allo ation des bits L'allo ation des bits pour les di erents hamps de l'ins-
tru tion depend des fa teurs suivants :
{ le nombre d'operandes ;
{ le nombre d'operations : pour une taille d'instru tion xee, plus le nombre
d'op odes est grand plus la apa ite d'adressage de oulant des hamps
adresse sera reduite. Si on souhaite a la fois une taille d'instru tion rai-
sonnable, une apa ite d'adressage raisonnable et un nombre d'op odes
important, on peut utiliser une taille d'op ode variable. Ainsi, pour des ins-
tru tions utilisant peu de parametres ou une apa ite d'adressage moindre,
quelques bits sont rajoutes au hamps op ode.
7.4. STRUCTURE D'UNE INSTRUCTION 87

{ le nombre de modes d'adressage : si le mode d'adressage n'est pas indique


impli itement ( ertaines instru tions sont reservees a un mode d'adressage
parti ulier), il l'est expli itement via un ou plusieurs bits dedies. Chaque
adresse d'operande peut omporter le mode d'adresage qui la on erne ;
{ l'utilisation des registres : un ensemble de registres est disponible dans la
CPU pour re evoir des donnees et des adresses. Ce i onstitue un petit
espa e d'adressage, qui ne ne essite que quelques bits d'adresse (maximum
5). Ces registres peuvent ^etre separes en groupe (un pour les donnees, un
autre pour les adresses), dont l'identi ation est deportee au niveau de
l'op ode ;
{ l'espa e adressable : il est dire tement relie au nombre de bit d'adresses a
utiliser et don au modes d'adressage permis ;
{ la fa on d'adresser la memoire : adresser une memoire a l'o tet demande
plus de bit d'adresse qu'adresser la m^eme memoire au mot.

7.4.3 Quelques exemples


Les paragraphes suivant montrent omment les hoix de on eption de jeu d'ins-
tru tions ont ete fait pour di erentes ma hines.

Alpha Le pro esseur ALpha de DEC ontient 32 registres (R0 a R31) de 64


bits pour la manipulation des entiers et 32 registres (F0 a F31) de 64 bits pour
la manipulation des ottants. Les registres R31 et F31 sont a le ture seule et
ontiennent la representation de 0.
Les instru tions ont une taille xe de 32 bits. Il y a 4 formats d'instru tion
possibles :
{ les instru tions spe i ques au systeme d'exploitation : op ode sur 6 bits +
un nombre sur 26 bits ;
{ les instru tions de bran hement : op ode sur 6 bits + adresse registre sur
5 bits + depla ement sur 21 bits ;
{ les instru tions de transfert de donnees : op ode sur 6 bits + adresse re-
gistre sur 5 bits + adresse registre sur 5 bits + depla ement sur 16 bits ;
{ les instru tions utilisees pour les operations de al ul entier ou ottant :
op ode sur 6 bits + adresse registre sur 5 bits + adresse registre sur 5 bits
+ extension de l'op ode sur 11 bits + adresse registre sur 5 bits.

SPARC Le pro esseur SPARC de SUN possede un grand nombre de registres


(peut ^etre superieur a 520). Neanmoins seuls 32 registres sont visibles simul-
tanements, divises en 4 groupes de registres spe i ques. Les instru tions ont
une taille xe de 32 bits. 3 format d'instru tions di erents sont utilises. Le
format est ode sur 2 bits.
{ le premier ne orrespond qu'a une seule operation de bran hement, l'appel
de sous-programme. Cette instru tion ne omprend don pas d'op ode
mais simplement un depla ement sur 30 bits ;
88 CHAPITRE 7. JEU D'INSTRUCTIONS

{ le deuxieme a un op ode sur 3 bits. Cet op ode distingue 2 types d'ins-


tru tion
{ les instru tions de bran hement : une ondition de saut sur 4 bits
( omparee au ontenu d'un registre de ondition), un depla ement
sur 22 bits
{ une instru tion permettant de harger une donnee dans les poids
fort d'un registres : adresse registre sur 5 bits + 22 bits de donnee
immediate ;
{ le troisieme format (3 adresses) orrespond a toutes les autres operations :
une adresse registre de destination sur 5 bits, une adresse registre sour e
sur 5 bits, une extension de l'op ode sur 6 bits. Selon ette extension :
{ une extension du ode operation pour les operations ottante sur 9
bits + une adresse registre sour e sur 5 bits
{ une donnee immediate sur 13 bits
{ un espa e d'adressage memoire sur 8 bits + une adresse registre
sour e sur 5 bits.

Pentium II Le pentium II omprend 9 modes d'adressage, pouvant utiliser


un registre segment, un registre de base et un registre d'index :
{ immediat : l'operande est in lue dans l'instru tion
{ registre : l'operande est ontenue dans un registre
{ depla ement : l'adresse est le ontenu du registre segment + un depla ement
in lu dans l'instru tion
{ indire t par registre : l'adresse est le ontenu du registre segment + ontenu
du registre de base
{ base et depla ement : idem pre edent + depla ement
{ base indexe ave depla ement : idem pre edent + registre index
{ base indexe ave depla ement : idem pre edent + registre index  un fa -
teur
{ indexe ave depla ement : idem pre edent - base
{ relatif : l'adresse est le ontenu du ompteur ordinal + un depla ement
ontenu dans l'instru tion
Le pentium omprend une grande variete de formats, l'op ode etant le seul
element re urrent. Le mode d'adressage est donnee par l'op ode. L'instru tion
omporte :
{ un pre xe de 0, 1, 2, 3 ou 4 o tet,
{ un op ode de 1 ou 2 o tets,
{ un spe i ateur d'adresse de 0, 1 ou 2 o tets,
{ un depla ement de 0, 1, 2 ou 4 o tets,
{ un hamp pour l'adressage immediat de 0, 1, 2 ou 4 o tets
Les raisons de ette variete sont l'eÆ a ite d'exe ution de langages de haut
niveau, et le respe t de la ompatibilite as endante de la famille 8086 dont le
pentium est issu.
7.5. CONCLUSION 89

7.5 Con lusion


On oppose traditionnellement
{ CISC (Complex Instru tion Set Computer), les ma hines possedant un jeu
d'instru tion omplexe, en nombre d'instru tion, de mode d'adressages, de
registres, et ... ( omme le pentium) a
{ RISC (Redu ed Instru tion Set Computer), les ma hines possedant un jeu
d'instru tion reduit ( omme le SPARC ou l'ALPHA) et don une ar hi-
te ture orrepondant a e jeu d'instru tion reduit.
Un jeu d'instru tions omplexe est il preferable a un jeu d'instru tion reduit
RISC ? En fait, il est tres diÆ ile de omparer des ma hines CISC a des ma-
hines RISC. A tuellement, les deux te hnologies ont quelque peu onverge : les
performan es atteintes font que les systemes RISC deviennent plus omplexes,
et la re her he de performan es superieures pousse les on epteurs CISC a en-
visager des problemes traditionnellement asso ies aux ma hines RISC.
90 CHAPITRE 7. JEU D'INSTRUCTIONS
91

Chapitre 8

CPU
92 CHAPITRE 8. CPU

8.1 Introdu tion


Ce ours omplete le pre edent en etudiant la stru ture de la CPU. Le modele
RISC est utilise omme support re urrent de la presentation.

8.2 Organisation de la CPU


8.2.1 Organisation du pro esseur
La CPU possede :
{ une ALU pour le traitement des donnees,
{ une unite de ommande qui ontr^ole le mouvement des donnees et des
instru tions, ainsi que les operations de l'ALU,
{ des registres spe i ques pour sto ker temporairement les donnees et les
instru tions
{ un bus interne pour inter onne ter es di erentes omposants.

8.2.2 Organisation des registres


L'exe ution d'une instru tion demande le sto kage temporaire de donnees. La
memoire interne de la CPU est de oupee en 2 types de registres :
{ les registres visibles par l'utilisateur qui permettent au programmeur d'op-
timiser les referen es a la memoire
{ les registres de ontr^ole et de statuts, utilises par l'unite de ommandes
pour ontroler l'a tivite de la CPU et par des programmes du systeme
d'exploitation pour ontroler l'exe ution des programmes.

Registres visibles par l'utilisateur Une registre utilisateur est un registre


referen able par les instru tions exe utees par la CPU. On trouve di erentes
ategories :
{ donnees : ne peuvent pas ^etre employes pour le al ul d'adresses ;
{ adresses : souvent devolus a un mode d'adressage parti ulier ( ontenant
des valeurs de base ou d'index) ;
{ onditions ( ags) : onstitues d'une suite de bits independants dont ha un
est positionne en fon tion du resultat d'une operation ;
{ autres : n'ont pas de fon tion spe i que.
Le hoix des registres pour une CPU est base sur les questions suivantes :
{ quelle proportion de registres spe ialises adopter?
{ quel nombre de registres adopter?
{ quelle taille de registres adopter?

? Quels sont les impa ts des reponses a es questions?


8.2. ORGANISATION DE LA CPU 93

Registres de ontr^ole et de statuts En general, es registres ne sont pas vi-


sibles par l'utilisateur. 4 registres sont essentiels a l'exe ution d'une instru tion,
ils sont utilises pour l'e hange ave la memoire prin ipale :
{ le ompteur ordinal (PC, pour Program Counter) : ontient l'adresse de la
pro haine instru tion a exe uter ;
{ le registre d'instru tion (IR) : ontient l'instru tion du fet h le plus re ent ;
{ le registre d'adresse memoire (MAR) : ontient une adresse memoire. Est
dire tement onne te au bus d'adresse ;
{ le registre tampon memoire (MBR) : ontient un mot de donnees a e rire
en memoire ou un mot lu re emment. Est dire tement onne te au bus de
donnees. Fait le lien ave les registres visibles par l'utilisateur.
Des registres supplementaires peuvent ^etre inter ales entre l'ALU et les registres
utilisateurs/le MBR.
94 CHAPITRE 8. CPU

Un registre PSW (Program Status Word) ontient des informations de status.


Parmi les plus frequentes :
{ signe : le bit de signe du resultat de la derniere operation arithmetique
{ zero : a 1 lorsque le resultat est 0
{ retenue : a 1 lorsqu'une operation a generee une retenue
{ egal : a 1 si le resultat d'une omparaison est une egalite
{ debordement : a 1 lorsqu'une operation a provoque un debordement
{ interruption : indique si le fon tionnement normal peut ^etre interrompu
{ superviseur : indique un mode privilegie
En plus du PSW, un registre peut faire oÆ e de pointeur sur une zone memoire
ontenant des informations supplementaires.
L'implantation de registres de ontr^ole peut aussi ^etre faite en fon tion de la
prise en ompte du systeme d'exploitation.

8.3 Cy le de l'instru tion


Le y le de l'instru tion fait referen e a la fa on dont la ma hine exe ute une
instru tion.

8.3.1 Cy le normal
Ce travail est e e tue par la CPU et onsiste en :
{ re her he de l'instru tion (fet h) : l'instru tion est lue depuis la memoire
{ interpretation de l'instru tion (de ode) : l'instru tion est de odee pour
determiner a quelle a tion elle orrespond
{ exe ution (exe ute) :
{ re her he des donnees (fet h data) : l'exe ution de l'instru tion peut
demander la le ture de donnees dans la memoire ou depuis un module
d'E/S
{ traitement des donnees (pro ess data) : l'exe ution de l'instru tion
peut demander des operations arithmetiques ou logiques sur les donnees
{ e riture des donnees (write data) : l'exe ution de l'instru tion peut
demander l'e riture du resultat dans la memoire ou depuis un module
d'E/S
Toutes les ma hines ont un s hema d'exe ution similaire, qui onsiste don a
exe uter la bou le suivante :
{ repeter
{ fet h
{ de ode
{ exe ute
8.3. CYCLE DE L'INSTRUCTION 95

Flots de donnees La sequen e exa te des evenements se produisant durant


un y le depend de l'ar hite ture de la CPU. Considerons le as generique d'une
CPU possedant un registre MAR, un registre MBR un ompteur ordinal PC et
un registre d'instru tion IR.
{ fet h :
{ M AR P C
{ l'unite de ontr^ole demande une le ture de la memoire prin ipale
{ le resultat de la le ture est pla e dans MBR
{ IR M BR
{ PC PC + 1
{ de ode :
{ l'unite de ontr^ole determine si le ontenu de IR utilise un adressage
indire t ; si 'est le as, y le indire t :
{ M AR les N bits de poids faibles de MBR
{ l'unite de ontr^ole demande une le ture de la memoire prin ipale
{ le resultat de la le ture est pla e dans MBR
{ M AR M BR
{ l'unite de ontr^ole demande une le ture de la memoire prin ipale
{ le resultat de la le ture est pla e dans MBR
{ exe ute : depend des instru tions.

! Les y les fet h et de ode sont simples et previsibles, le y le exe ute est
imprevisible.

8.3.2 Interruptions
Chaque ordinateur permet un me anisme selon lequel un module (E/S, memoire)
peut interrompre le deroulement normal de e y le. Si une interruption survient,
l'etat ourant (prin ipalement le ompteur ordinal) est sauvegarde et l'inter-
ruption est traitee (i.e., l'exe ution est detournee sur une suite d'instru tions
traitant l'interruption, appelee routine d'interruption).
Le y le d'interruption est simple et previsible :
{ M BR P C
{ M AR une adresse memoire ou sauvegarder PC
{ l'unite de ontr^ole demande une e riture dans la memoire prin ipale
{ P C adresse de la routine d'interruption
Le nouveau y le ommen e par le fet h de la premiere instru tion de la routine
d'interruption.
96 CHAPITRE 8. CPU

8.4 Redu ed Instru tion Set Computers


8.4.1 Cara teristiques
Une raison majeur de l'avenement des RISC est la onstatation que les ompi-
lateurs produisent surtout des instru tions simples (les instru tions omplexes
des CISC sont don rarement exploitees et peuvent sou rir d'^etre re odees par
des instru tions plus simples).
Les ara teristiques ommunes aux ar hite tures RISC sont les suivants :
{ vers une instru tion par y le : les instru tions peuvent ^etre realisees par
materiel ;
{ des operations registre-registre dans une a hite ture de type hargement-
rangement ;
{ des modes d'adressage simples et peu nombreux, les modes d'adressages
omplexes pouvant ^etre realises a partir des modes d'adressages simples ;
{ des formats d'instru tions simples et peu nombreux, taille d'instru tion
xe, possedant des hamps xes.
Le tout resulte en des instru tions et une unite de ontr^ole simples.

8.4.2 Exemple de ma hine RISC


Considerons la ma hine RISC suivante.

Jeu d'instru tions et registres La ma hine utilise 3 formats d'instru tions


(on ne s'interesse pas au troisieme format orrespondant aux instru tions de
8.4. REDUCED INSTRUCTION SET COMPUTERS 97

saut).

Les instru tions sont reparties dans 4 groupes :


{ a es memoire : instru tion de hargement-rangement ;
{ operation registre-registre : al ul ou e hange de donnees n'impliquant que
des registres ;
{ operations registre-immediat : al ul impliquant un registre et une donnee
immediate ;
{ bran hement.
Les instru tions et les donnees sont lues dans deux a hes internes dedies (adres-
sables a l'o tet). Les registres internes sont les suivants :
{ RI : registre d'instru tion
{ CP : ompteur ordinal
{ NCP : adresse de l'instru tion suivante
{ A, B, IMM entrees d'ALU
{ SALU : sortie ALU
{ COND : registre de ondition/statut
{ DMC : sortie memoire de donnees
{ des registres utilisateurs

Cy le d'instru tion Detaillons le y le d'instru tion exe ute par ette ma-
hine (le traitement de l'op ode n'est pas detaille).
1. fet h (LI)
{ RI memoire d'instru tion(PC)
{ NCP CP + 4
2. de ode (DI)
{ A registre(RI25::21 )
98 CHAPITRE 8. CPU

{ B registre(RI20::16 )
{ IMM RI15::0
3. exe ute/ al ul de l'adresse e e tive (EX) selon l'op ode, une des 4
operations suivantes est realisee :
{ a es memoire
{ SALU A + IMM
{ operation registre-registre
{ SALU A op B
{ operation registre-immediat
{ SALU A op IMM
{ bran hement
{ SALU NCP + IMM
{ COND A op 0
4. a es memoire/bran hement (MEM)
{ hargement
{ DMC memoire donnees(SALU)
{ CP NCP
{ rangement
{ memoire donnees(SALU) B
{ CP NCP
{ bran hement
{ si COND alors CP SALU sinon CP NCP
{ autres instru tions
{ CP NCP
5. e riture du resultat (ER)
{ hargement
{ registre(RI20::16 ) DMC
{ operation registre-registre
{ registre(RI15::11 ) SALU
{ operation registre-immediat
{ registre(RI20::16 ) SALU

? Quels sont les modes d'adressage employes?

L'exe ution d'une instru tion prendra de 4 a 5 y les, les plus rapides etant les
instru tions de bran hement. Pour une ma hine de e type, on estime qu'elles
onstituent 12 % des instru tions exe utes. La duree moyenne d'une instru tion
est don de 12%  4 + 88%  5 = 4; 88 y les.
8.5. PIPELINE 99

Realisation

Un inter^et des ma hines RISC est qu'elle autorise un pipeline plus eÆ a e.

8.5 Pipeline
Pour ameliorer les performan es de ette ma hine on her he a diminuer le
temps d'exe ution d'une instru tion. L'idee est de faire travailler a la ha^ne les
di erentes unites fon tionnelles.

8.5.1 Pipeline de base


Pipeline a 3 etages Soit l'exe ution d'une instru tion en 3 phases independantes
(fet h, de ode, exe ute) realisee ha une en 1 y le d'horloge. La mise en pipe-
line onsiste a faire travailler en parallele les 3 unites responsables des 3 phases.
100 CHAPITRE 8. CPU

Ainsi, au y le i, on re her he l'instru tion i, on de ode l'instru tion i 1 et on


exe ute l'instru tion i 2. Au y le i + 1, on re her hera l'instru tion i + 1, on
de odera l'instru tion i et on exe utera l'instru tion i 1.
y le d'horloge 1 2 3 4 5 6
etage fet h inst 1 inst 2 inst 3 inst 4 inst 5 inst 6
etage de ode inst 1 inst 2 inst 3 inst 4 inst 5
etage exe ute inst 1 inst 2 inst 3 inst 4
Le temps moyen d'exe ution d'une instru tion est divise par 3. On parle de
pipeline a 3 etages. Le temps d'exe ution de n instru tions est de 2+n y les
d'horloge. Le delai de 2 y les est appele temps de laten e du pipeline.

Pipeline a 5 etages Appliquons e prin ipe a la ma hine RISC de rite plus
haut. Les 5 phases doivent ^etre rendues independantes. Toute information issue
d'un etage et devant ^etre utilisee par l'etage suivant doit ^etre memorisee dans un
registre servant d'interfa e entre les etages. On obtient ainsi le fon tionnement
de rit par le tableau suivant :
y le d'horloge 1 2 3 4 5 6
etage LI inst 1 inst 2 inst 3 inst 4 inst 5 inst 6
etage DI inst 1 inst 2 inst 3 inst 4 inst 5
etage EX inst 1 inst 2 inst 3 inst 4
etage MEM inst 1 inst 2 inst 3
etage ER inst 1 inst 2

Quelques remarques :
1. l'emploi de deux a hes spe ialises se revele judi ieux : haque memoire
est solli itee a haque y le. Cela n'aurait pas ete possible si un seul a he
ontenant donnees et instru tions avait ete utilise ;
2. le blo registres doit permettre deux le tures (registres sour es pour l'etage
DI) et une e riture (resultat pour l'etage ER) dans le m^eme y le. Un
probleme survient si l'e riture on erne un registre a ede en le ture ;
3. le multiplexeur de sele tion du registre CP a ete depla e de l'etage MEM
vers l'etage LI. L'exe ution a l'etage LI peut dependre de la presen e dans
l'etage MEM d'une instru tion de bran hement ompliquant le fon tion-
nement du pipeline.

8.5.2 Les aleas


Un alea est une situation qui emp^e he l'instru tion suivante de s'exe uter au
y le d'horloge prevu. On distingue plusieurs sortes d'aleas.

Alea stru turel Il apparait lorsqu'un on it de ressour es ne peut pas ^etre


gere par le materiel. C'est le as de la memoire unique pour instru tions et
donnees. Dans e as, le pipeline est suspendu durant un y le pour lever l'alea.
8.5. PIPELINE 101

Alea de donnees Il apparait lorsqu'il y a dependan e de donnees entre les


instru tions. Soit par exemple les deux instru tions

1. r2 memoire(120)
2. r3 r2 + r1

Au moment ou l'instru tion 2 a besoin de l'information produite par l'instru tion
1, l'instru tion 2 est a l'etage DI et l'instru tion 1 est a l'etage EX.

Alea de ontr^ole Il on erne les instru tions de modi ation du registre PC.
Le as trivial est l'instru tion de bran hement onditionnel. Jusqu'a l'exe ution
d'une telle instru tion, il est impossible de savoir si un bran hement est e e tue
ou non. Par exemple, pour la ma hine RISC, l'adresse de l'instru tion suivante
102 CHAPITRE 8. CPU

n'est onnue qu'au niveau de l'etage EX.


y le d'horloge 1 2 3 4 5 6 7 8
instru tion 1 LI DI EX MEM ER
instru tion 2 LI DI EX MEM ER
instru tion 3 LI DI EX MEM ER
instru tion 4 LI DI EX
instru tion 5 LI DI
instru tion 6 LI
instru tion 7 LI DI
instru tion 8 LI

! Cet alea est le prin ipal fa teur de degradation de performan e dans une
ar hite ture pipeline.
Plusieurs solutions ont ete proposees pour gerer les bran hements dans une
ar hite ture pipeline :
{ dupliquer l'ar hite ture de pipeline pour traiter les deux as du bran he-
ment (pris ou pas) ;
{ pre harger l'instru tion (ou la suite d'instru tion) orrespondant a l'adresse
de bran hement (quitte a ne pas l'utiliser) ;
{ se baser sur une predi tion des bran hements
{ supposer qu'un bran hement ne sera jamais/toujours pris ;
{ supposer que ertains op odes favorisent le bran hement ;
{ se baser sur un historique des bran hements ;
{ generer des instru tion NOP (No OPeration) apres l'instru tions de bran-
hement le temps que le bran hement puisse se on lure.

8.6 Ameliorations
8.6.1 Ar hite ture supers alaire
Les ar hite ture supers alaires disposent de plusieurs unites fon tionnelles (unites
pour les operations entieres, unites pour les operations ottantes, ...). Ainsi les
instru tions les plus ommunes (arithmetiques, hargement, rangement, bran-
hement) peuvent ^etre exe utes simultanement et independament dans di erents
pipelines. De plus, les instru tions peuvent ^etre exe utees dans un ordre di erent
de l'ordre du programme.

Par exemple, si on exe ute la sequen e d'instru tions


{ DIV x,y

8.6. AMELIORATIONS 103

{ ADDF z,w
{ SUB u,v
les instru tions se termineront dans l'ordre SUB, ADDF et DIV.

8.6.2 Ar hite ture VLIW


Le sequen ement et l'ordonan ement des operations sont realises par le om-
pilateur. Une instru tion est omposee de plusieurs hamps, haque hamps
ommande une operation sur une unite de la ma hine. L'instru tion peut ^etre
tres longue, d'ou le nom de Very Long Instru tion Word (jusqu'a 1024 bits).
Imaginons une ma hine VLIW disposant
{ d'une memoire qui permet deux operations simultanees (le ture ou e riture)
{ un additionneur
{ un soustra teur
{ un multiplieur
{ un diviseur
Les instru tions d'une telle ma hine pourront omporter 6 hamps : 2 pour
les operations de hargement/rangement en memoire et 4 pour les operations
arithemtiques.
Soit par exemple le programme a exe uter :
{ A=J+K
{ B=LM
{ C=N-B
{ D=A/B
Les instru tions VLIW pourront ^etre :
104 CHAPITRE 8. CPU

LOAD Rj,J LOAD Rk,K


LOAD Rl,L LOAD Rm,M Ra = Rj + Rk
STORE Ra,A LOAD Rn,N Rb = Rl  Rm
STORE Rb,B R = Rn - Rb Rd = Ra / R
STORE R ,C STORE Rd,D
Ce qui fait 5 instru tions pouvant s'exe uter ha une en 1 y le d'horloge. Ce
prin ipe est adopte dans la nouvelle ar hite ture 64 bits developpee par Intel et
HP.
105

Chapitre 9

Unite de ommande
106  DE COMMANDE
CHAPITRE 9. UNITE

9.1 Introdu tion


Ce ours examine les operations et l'organisation de l'unite de ommande. Cette
unite regit l'ordinateur en se basant seulement sur les instru tions a exe uter et
la nature du resultat des operations arithemtiques et logiques. Elle ne prend en
onsideration ni les donnees traitees, ni les resultats produits. Et elle ontr^ole
la ma hine seulement via quelques signaux de ontr^ole.
Ce ours poursuit l'analyse des endante entreprise depuis le ours sur le jeu
d'instru tion.

9.2 Mi ro-operations
L'exe ution d'un programme onsiste en l'exe ution sequentielle d'instru tions.
Chaque instru tion est exe utee durant un y le d'instru tion. Un y le d'ins-
tru tion se de ompose en plusieurs phases (fet h, de ode, ...). Chaque phase
du y le d'instru tion est onstitue d'une ou plusieurs etapes simples appelees
mi ro-operations.
Les mi ro-operations sont les operations fon tionnelles atomiques du pro esseur.
Elles peuvent ^etre regroupees pour s'exe uter en parallele a ondition
{ de respe ter la dependan e des donnees
{ d'eviter les on its
Ce on ept est explique sur un exemple simple.
Supposons que nous disposons des registres PC, IR, MAR et MBR de rit au
ours pre edent. Le y le de l'instru tion omprend les y les de fet h, indire t,
exe ute et interrupt.
Commen ons par detailler les y les previsibles. Chaque y le implique une
petite sequen e xee de mi ro-operations.

Fet h Le y le fet h onsiste en 3 etapes et omprend 4 mi ro-operations :


t1 MAR PC
t2 MBR memoire
PC PC + T
t3 IR MBR
ou T est la taille d'une instru tion et les ti representent des unites de temps de
valeur egale (le ompteur ordinal aurait pu ^etre in remente lors de t3).

Indire t Pour e y le, on suppose un format une adresse. En as de y le


indire t, le ontenu de IR est dire tement a e te pour nalement ontenir une
adresse dire te.
t1 MAR IR(adresse)
t2 MBR memoire
t3 IR(adresse) MBR(adresse)
ou IR(adresse) identi e le hamps adresse du registre IR. Le registre IR est
maintenant dans le m^eme etat que si l'adressage indire t n'avait pas ete utilise.

9.2. MICRO-OPERATIONS 107

Interrupt Apres le y le exe ute, un test est e e tue pour savoir si une in-
terruption est survenue. Si oui, un y le d'interruption est de len he, qui peut
omprendre les mi ro-operations suivantes :
t1 MBR PC
t2 MAR adresse de sauvegarde
PC adresse de routine d'interruption
t3 memoire MBR

Exe ute Le y le exe ute n'est pas previsible. Pour une ma hine ave n
di erents op odes, n di erentes sequen es de mi ro-operations peuvent se pro-
duire.
Par exemple, onsiderons l'instru tion ADD R1,X. Elle peut orrespondre a la
sequen e de mi ro-operations suivante :
t1 MAR IR(adresse)
t2 MBR memoire
t3 R1 R1 + MBR
Considerons maintenant deux exemples plus omplexes. Le premier on erne
l'instru tion ISZ X, qui in remente X de 1 et qui saute l'instru tion suivante
si le resultat est 0. Elle peut orrespondre a la sequen e de mi ro-operations
suivante :
t1 MAR IR(adresse)
t2 MBR memoire
t3 MBR MBR + 1
t4 memoire MBR
si MBR = 0 alors PC PC + T
ou T est la taille d'une instru tion. Pour l'instru tion BSA X, qui sauvegarde
l'adresse de l'instru tion suivante dans X et demande de poursuivre l'exe ution
par l'instru tion situee a l'adresse X + T, on a :
t1 MAR IR(adresse)
MBR PC
t2 PC IR(adresse)
memoire MBR
t3 PC PC + T
ou T est la taille de l'instru tion. Cette instru tion est typiquement utilisee pour
les appels de sous-routines.
On voit bien qu'une sequen e de mi ro-operations est ne essaire pour haque
op ode.

Le y le d'instru tion Pour oordonner les sequen es de mi ro-operations


entre elles, un nouveau registre est ne essaire qui ontiendra l'etat du pro esseur
en terme de y le. Appelons e registre ICC (Instru tion Cy le Code). Dans
notre exemple, seuls 2 bits omposent e registre :
108  DE COMMANDE
CHAPITRE 9. UNITE

00 fet h
01 indire t
10 exe ute
11 interrupt
Le registre ICC est modi e en n de ha un des 4 y les.

9.3 Contr^ole du pro esseur


Nous nous interessons maintenant aux a tivites a implanter dans l'unite de om-
mande pour exe uter les sequen es de mi ro-operations. L'unite de ommande
doit exe uter 2 t^a hes basiques :
{ le sequen ement des mi ro-operations
{ l'exe ution des mi ro-operations
Ces mi ro-operations appartiennent toutes aux ategories suivantes :
{ transfert de donnees entre registres
{ transfert de donnees d'un registre vers une interfa e externe (e.g., bus)
{ transfert de donnees d'une interfa e externe (e.g., bus) vers un registre
{ operation sur l'ALU en utilisant des registres pour les operandes sour es
et le resultat

Intera tions entre l'unite de ommande et l'exterieur Les entrees de


l'unite de ommande sont
{ l'horloge : une mi ro-operation s'exe ute en un top d'horloge ;
{ le registre d'instru tion : l'op ode permet de determiner quelle sequen e
de mi ro-operations doit ^etre exe utee lors d'un y le exe ute ;
{ le registre de ondition : utilise pour determiner le statut du pro esseur et
pour les instru tions onditionnelles ;
{ des signaux de ontr^ole du bus de ontr^ole : par exemple pour dete ter une
interruption ou re evoir les a quittements des unites externes.
Les sorties de l'unite de ommande sont
{ des signaux de ontr^ole internes au pro esseur, de 2 types :
{ des signaux de len hant des transferts entre registre
{ des signaux de len hant des operations sur l'ALU
{ des signaux de ontr^ole transportes par le bus de ontr^ole, de 2 types :
{ a destination de la memoire
{ a destination des modules d'E/S

Exemple Ainsi, pendant un fet h, les signaux de ontr^ole envoyes seront les
suivants :
{ un signal autorisant le hargement de MAR par le ontenu de PC
{ simultanement
{ un signal pla ant le ontenu du MAR sur le bus d'adresse
 DE COMMANDE
9.4. IMPLANTATION DE L'UNITE 109

{ l'a tivation d'une ligne le ture memoire du bus de ontr^ole


{ un signal autorisant le hargement de MBR par le bus de donnees
{ un signal de len hant une operation in rementant le PC ( e qui peut
^etre fait independament de l'ALU si on onsidere une logique dedie)
{ un signal autorisant le hargement de IR par MBR
Ensuite, le ontenu de IR est analyse pour savoir quel y le doit suivre (indire t
ou exe ute). Les y les indire t et interrupt fon tionnent de maniere similaire.
Nous verrons le y le exe ute plus tard...
y le timing signal de ontr^ole
fet h t1 : MAR PC C2
t2 : MBR memoire C5 , Cr
PC PC + T
t3 :IR MBR C4
indire t t1 : MAR IR(adresse) C8
t2 : MBR memoire C5 , Cr
t3 : IR(adresse) MBR(adresse) C4
interrupt t1 : MBR PC C1
t2 : MAR adresse de sauvegarde
PC adresse de routine d'interruption
t3 : memoire MBR C12 , Cw

Organisation L'organisation typique de la CPU omprend un bus interne (ou


un ensemble de bus internes) pour la ir ulation interne des di erentes infor-
mations (donnees, instru tions, adresses). Ce bus relie tous les registres internes
et l'ALU. Chaque signal de ontr^ole interne emis par l'unite de ommande (ex-
eptes les signaux de lan hant des operations sur l'ALU) ontr^ole en fait l'a es
a e bus.

9.4 Implantation de l'unite de ommande


Les te hniques d'implantation de l'unite de ommande se partage en 2 ategories :
{ implantation materielle
{ implantation mi ro-programmee

9.4.1 Implantation materielle


Dans e as la, l'unite de ommande est essentiellement un ir uit ombinatoire
elaborant les signaux de ontr^ole.
L'op ode passe par un de odeur dont haque sortie orrespond a une sequen e
de mir o-operations parti uliere, don a une sequen e de signaux de ontr^ole
parti uliere.
Le signal d'horloge sert a alimenter un ompteur donnant haque periode ti. Ce
ompteur est reinitialise en n de haque y le.
110  DE COMMANDE
CHAPITRE 9. UNITE

La logique utilisee orrespond aux equations booleennes des signaux de sorties


en fon tion du y le, de la valeur delivree par le ompteur et de l'op ode, 'est
a dire de la valeur fournie par le de odeur.

9.4.2 Implantation mi ro-programmee


Dans un pro esseur moderne bea oup plus omplexe que l'exemple qui a servi
dans e ours, le nombre d'equation booleenne ne essaires a l'implantation de
l'unite de ommande est prohibitif pour la onstru tion d'un ir uit ombi-
natoire. La mi roprogrammation onstitue une solution simple a e probleme.
C'est une te hnique tres ommune dans les pro esseurs CISC ontemporains.

Mi ro-instru tions Les mi ro-operations peuvent ^etre onsiderees omme


des operations de len hees par des instru tions d'un langage. Ces instru tions
sont appelees mi ro-instru tions et un programme a base de mi ro-instru tions
est appele mi ro-programme. Une instru tion et une mi ro-instru tion partagent
quelques ara teristiques ommunes :
{ elles sont de omposees en hamps
{ elles sont rangees dans une memoire a une adresse pre ise.
Un de oupage en hamps est par exemple :
{ un mot de ontr^ole orrespondant a l'a tivation des signaux binaires
{ 1 bit pour haque ligne de ontr^ole interne
{ 1 bit pour haque ligne de ontr^ole du bus de ontr^ole
{ l'adresse de la mi ro-instru tion a exe uter ensuite si une ondition est
remplie
{ la ondition de bran hement
Une telle mi ro instru tion est interpretee de la maniere suivante :
1. de len her la/les mi ro-opeations en positionnant les signaux de ontr^ole
en fon tion du mot de ontr^ole (un 1 a tive un signal, un 0 n'a tive pas
ou desa tive un signal)
2. si la ondition indiquee par les bits de ondition est fausse alors exe uter
la mi ro-instru tion a l'adresse suivante
3. si la ondition indiquee par les bits de ondition est vraie alors exe uter la
mi ro-instru tion dont l'adresse est mentionnee dans le hamps adresse.
Les mi ro-instru tions sont organisees en sequen es dans une memoire de ontr^ole.
Chaque sequen e de nit une routine orrespondant a
{ un sous- y le du y le d'instru tion
{ un op ode pour le y le exe ute
 DE COMMANDE
9.4. IMPLANTATION DE L'UNITE 111

..
.
..
. routine du y le fet h
saut vers indire t ou exe ute
..
.
..
. routine du y le indire t
saut vers exe ute
..
.
..
. routine du y le interrupt
saut vers fet h
saut vers routine d'op ode routine du y le exe ute
..
.
..
. routine ADD
saut vers fet h ou interrupt
..
.
..
. routine AND
saut vers fet h ou interrupt
.. ..
. .
..
.
..
. routine SUB
saut vers fet h ou interrupt

Realisation Implanter une unite de ommande mi ro-programmee revient


simplement a exe uter le programme de la memoire de ontr^ole. Par analogie a
une CPU, e i requiert :
{ la memoire de ontr^ole sto kant les mi ro-instru tions
{ un registre d'adresse de ontr^ole ontenant l'adresse de la pro haine mi ro-
instru tion a lire
{ un registre de ontr^ole ontenant la mi ro-instru tion. La partie de e
registre ontenant le mot de ontr^ole est dire tement reliee aux lignes
orrespondant aux signaux de ontr^ole
{ un sequen eur qui harge le register d'adresse de ontr^ole et envoie des
ordres de le ture a la memoire de ontr^ole.

! Lire une instru tion revient a exe uter ette instru tion.
Ainsi, en un top d'horloge, l'unite de ommande fon tionne de la maniere sui-
vante :
1. le sequen eur envoie une ommande de le ture a la memoire de ontr^ole
112  DE COMMANDE
CHAPITRE 9. UNITE

2. la mi ro-instru tion dont l'adresse est spe i ee par l'adresse ontenue dans
le registre d'adresse de ontr^ole est hargee dans le registre de ontr^ole
3. le ontenu du registre de ontr^ole permet de generer les signaux de ontr^ole
et donne l'adresse de la mi ro-instru tion suivante au sequen eur
4. le sequen eur harge une nouvelle adresse dans le registre d'adresse de
ontr^ole en fon tion de l'adresse delivree par le registre de ontr^ole et des
onditions provenant de l'ALU. Cette adresse peut ^etre
{ l'adresse ourante + 1
{ l'adresse du registre de ontr^ole
{ l'adresse d'une routine orrespondant a l'op ode du registre d'ins-
tru tion

You might also like