Vous êtes sur la page 1sur 88

NSY104:ArchitecturedesSystmesInformatiques

Jeudinstructionet Pipeline

PierreSWEID CNAMdeClichy

Page1

Planduchapitre

1. Introduction.

NSY104:ArchitecturedesSystmesInformatiques

2. Les pipelines.
3. Les conflits dans un pipeline et leur rsolution.
4. Principes d'ordonnancement pour un pipeline.

PierreSWEID CNAMdeClichy

Page2

Introduction1

Pipelines,cachesetmodledebase :ParmilesprescriptionsdeNeumann,ontrouve:
Ladeuxime:
NSY104:ArchitecturedesSystmesInformatiques

Le programme et les donnes sont logs dans une mme mmoire dcoupe en
cellules.

On saffranchit de cette rgle par le schma dAken ( architecture de Harvard )


entre instructions et donnes et par la technique des caches entre les donnes.
On est ainsi certain de maintenir la cohrence d'excution par l'unicit de la mmoire
de donnes.

Lacinquime:
L'excution de chaque instruction est acheve avant que la suivante soit prise en
compte.

On est ainsi certain d'viter des collisions dommageables entre donnes.

On s'affranchit de cette rgle en installant un pipeline.

Pour Info : architecture de Harvard est une conception de microprocesseurs qui spare physiquement la mmoire
de donnes et la mmoire programme. Laccs chacune des deux mmoires seffectue via deux bus distincts

PierreSWEID CNAMdeClichy

Page3

Introduction2

Lesplacesdesdeuxtechniquesdescachesetdespipelinessontmontresdansle

NSY104:ArchitecturedesSystmesInformatiques

schmasuivant:

PierreSWEID CNAMdeClichy

Page4

Introduction3

La simultanit (temporelle) consiste dcomposer le dcodage des instructions


Ces structures qui apportent une simultanit, anticipation et recouvrement, ont

NSY104:ArchitecturedesSystmesInformatiques

t nommes chane d'assemblage, on dit aujourd'hui pipeline.

Le pipeline augmente les performances du seul processeur

Leparalllisme (spatial)consistedupliquerlessupportsdesdonnes,poury
accderdansunmmetempsoupourdisposerdemmoiresauxcaractristiques
meilleures.
Ce sont les caches
L'analogieusuelleestcelledelalogistiqueentrepts:
unentreptcentralcontientlestock,desentreptsrgionauxcontiennent
desstocksintermdiairesenpluspetitesquantits,enfinlestockarrirede
chaquemagasincontientunapprovisionnementminime.
Un cache comble en partie les diffrences de performances
temporelles entre deux voisins

PierreSWEID CNAMdeClichy

Page5

NSY104:ArchitecturedesSystmesInformatiques

LEPIPELINES

PierreSWEID CNAMdeClichy

Page6

Introduction
Les premiers ordinateurs excutaient les instructions de manire trs
simple :

NSY104:ArchitecturedesSystmesInformatiques

le processeur extrayait une instruction de la mmoire,


la dcodait afin de la reconnatre,
lisait ses entres dans le fichier de registres,
ralisait le calcul requis,
puis crivait le rsultat dans le fichier de registres.
Les instructions qui accdaient la mmoire taient lgrement diffrentes, mais
lexcution de chaque instruction tait entirement acheve avant que ne
commence celle de la suivante.
Problme de ce systme de fonctionnement :
Dispositif matriel diffrent est requis pour chacune de ces tapes
(extraction de linstruction, dcodage, lecture des registres, excution et
criture des registres),
Donc, la grande majorit du mcanisme matriel reste-t-il inoprant la plupart
de temps, en attendant que les autres sections du processeur achvent leur
partie du travail dexcution.
PierreSWEID CNAMdeClichy

Page7

NSY104:ArchitecturedesSystmesInformatiques

Introduction
Exemple analogue : processus de fabrication des pains
Fabriquer un pain
Prparer la pte pour un pain,
laisser monter la patte,
Cuire la patte,
puis en rpter le processus tout entier pour le pain suivant.
Solution damlioration
Si lon ne peut pas acclrer le processus de prparation dun pain (chaque
tape devant tre ralise dans cet ordre et ncessitant un certain temps), il
serait nanmoins possible dacclrer la prparation de plusieurs pains en
prparant la pte du second pain pendant que celle du premier lve,
puis la pte du troisime pendant que lve celle du second et cuit celle du
premier, etc.,

de sorte quil y aurait toujours quatre pains en cours de fabrication tout


moment.
Conclusion :
avec cette technique, chaque pain prendrait autant de temps fabriquer, mais le
nombre de pains fabriqus en un temps donn serait augment.

PierreSWEID CNAMdeClichy

Page8

Dfinitions
Piplining ?
Le pipelining est une technique permettant de recouvrir lexcution de

NSY104:ArchitecturedesSystmesInformatiques

plusieurs instructions afin de rduire le temps dexcution dune squence


dinstructions.
Comme dans le cas de notre fabrication de pains, chaque instruction prend
le mme temps sexcuter sur processeur pipelin quelle ne le ferait sur
un processeur non pipelin (et mme un peu plus longtemps, pour tre
exact, car le pipelining ncessite quelques ajouts matriels au processeur),
mais la vitesse laquelle les instructions peuvent tre excutes est
augmente par le traitement simultan des instructions

PierreSWEID CNAMdeClichy

Page9

Dfinitions
Piplining ?
Anticiper est commencer un travail alors que le prcdent n'est pas

NSY104:ArchitecturedesSystmesInformatiques

termin.
Recouvrir s'entend ici par poursuivre un traitement alors que le
suivant est entam.
L'anticipation et le recouvrement sont issus d'un constat :
le chargement d'une instruction et le dbut au moins de son dcodage
ne dpendent pas, sauf branchement, du rsultat de l'excution de
l'instruction prcdente.

PierreSWEID CNAMdeClichy

Page10

Dfinitions

NSY104:ArchitecturedesSystmesInformatiques

Notions de latence et dbit : Lorsquil est question de pipelining et de


performance dordinateurs en gnral, deux termes sont souvent utiliss : la
latence et le dbit.
La latence dsigne la quantit de temps quune unique opration prend pour
sexcuter.
Le dbit dsigne la vitesse laquelle les oprations sexcutent (en gnral, il est
exprim en oprations/seconde ou en oprations/cycle).

Conclusions:
Dans un processeur non pipelin,
Le dbit = (1/latence), puisque chaque opration sexcute sparment.

Dans un processeur pipelin,


Le dbit > (1/latence), puisque les excutions dinstructions se recouvrent.
La latence dun processeur pipelin reste nanmoins une donne importante, car
elle dtermine la frquence avec laquelle les instructions peuvent tre
excutes.
PierreSWEID CNAMdeClichy

Page11

NSY104:ArchitecturedesSystmesInformatiques

Rappels

Les jeux dinstruction

PierreSWEID CNAMdeClichy

Page12

Modlesdeprogrammation

NSY104:ArchitecturedesSystmesInformatiques

Vue gnrale de la manire dont les instructions sont excutes :

Le processeur lit linstruction dans la mmoire ;


Ladresse de linstruction suivante excuter est stocke dans le CO ;
Le processeur dcode linstruction
Le processeur excute linstruction ;
Le rsultat de linstruction scrit soit dans un registre, soit dans la mmoire.

Lune des caractristiques qui diffrencie les processeurs entre eux est
leur jeu dinstructions
un ensemble doprations basiques que propose chaque type de processeur.

Les premiers ordinateurs possdaient des jeux dinstructions trs diffrents


les uns des autres et la conception de ces jeux constituait lune des tches
principales des architectes dordinateurs.
A mesure que le domaine a volu, les jeux des diffrents processeurs ont
commenc se ressembler.
A prsent, presque tous les processeurs proposent des jeux dinstructions trs
similaires, quils utilisent un modle de programmation piles ou registres
gnraux.
PierreSWEID CNAMdeClichy

Page13

Lesjeuxdinstruction
Dfinitions
Partie de larchitecture avec laquelle le programmeur ou le concepteur

NSY104:ArchitecturedesSystmesInformatiques

de compilateur est en contact.


Ensemble des instructions que peut excuter un processeur
Ensemble des circuits logiques cbls dans un processeur
Exemples doprations
Arithmtique & logique (addition, division, etc.)
Transfert de donnes (chargement, rangement)
Contrle (branchement, saut, appel, etc.)
Systme (appels OS, gestion mmoire virtuelle)
Flottant (addition, division, comparaison, etc.)
Dcimal (addition, multiplication, etc.)
Chaines (comparaison, recherche, etc.)
Graphique (pixel, vertex, etc.)
PierreSWEID CNAMdeClichy

Page14

Lesjeuxdinstruction
Classification base sur le stockage interne au processeur
1. Architecture pile
NSY104:ArchitecturedesSystmesInformatiques

Oprandes au sommet de la pile


2. Architecture accumulateur
Un oprande est laccumulateur
3. Architecture registres gnraux
Oprandes explicites:
A. Registre-mmoire
Accs mmoire comme partie dune instruction quelconque

B. Registre-registre et chargement-rangement
Instructions ddies pour accder la mmoire (LOAD,
STORE)

http://fr.wikipedia.org/wiki/Jeu_d'instructions
PierreSWEID CNAMdeClichy

Page15

Lesjeuxdinstruction

NSY104:ArchitecturedesSystmesInformatiques

Classification base sur le stockage interne au


processeur
1. Architecture pile
Oprandes au sommet de la pile
C=A+B

Push A
Push B
Add
Pop C

Dans les architectures pile, les instructions lisent leurs


oprandes et crivent leurs rsultats dans une pile, une
structure de donnes obissant la logique du dernier
entr, premier sorti (LIFO Last In First Out).
Les piles prennent en charge deux oprations de base :
PUSH et POP.
a. Lopration PUSH prend un argument et place sa
valeur en haut de pile, en poussant toutes les donnes
prcdentes dun cran vers le bas.
b. Lopration POP retire la valeur du haut de la pile et
la retourne, afin quelle puisse tre utilise comme
entre dune instruction.
PierreSWEID CNAMdeClichy

PUSH #X
PILEX
ADD
a PILE ;
b PILE ;
PILE a + b (calcul sur des
entiers)
POP
a PILE (la valeur dpile
est abandonne)
Page16

Lesjeuxdinstruction
Classification base sur le stockage interne au processeur

NSY104:ArchitecturedesSystmesInformatiques

2. Architecture accumulateur

accumulateur
Autre oprand

Un oprande est laccumulateur


C=A+B
Load A
Add B
Store C

Laccumulateur est localis grce au mode d'adressage implicite. tous les calculs se
font implicitement sur celui-ci
De plus, le rsultat des instructions arithmtiques et logiques est stock dans
l'accumulateur, et on n'a pas besoin de prciser o stocker le rsultat : pas de mode
d'adressage pour le rsultat.
L'opration C= A + B sera traduite par la squence suivante :

LOAD A ; copie le contenu de l'adresse A dans l'accumulateur


ADD B ; ajoute le contenu de l'adresse B celui de l'accumulateur, stocke le rsultat dans
l'accumulateur
STORE C ; stocke la valeur de l'accumulateur l'adresse C

PierreSWEID CNAMdeClichy

Page17

NSY104:ArchitecturedesSystmesInformatiques

Lesjeuxdinstruction
Classification base sur le stockage interne au
processeur
3. Architecture registres gnraux
Oprandes explicites:
A. Registre-mmoire

registres

Accs mmoire comme partie dune


instruction quelconque

C=A+B
Load R0, A
Add R1, R0, B

mmoire

Store R1, C
Ici une instruction peut avoir comme oprande un ou plusieurs registres (typiquement
un ou deux) et une adresse mmoire
De manire gnrale, le nombre total d'accs la mmoire diminue fortement compar
aux machines pile, grce une utilisation plus efficace des registres
L'exemple C =A + B peut donc tre traduit par la squence

LOAD R0, A
; copie le contenu de l'adresse A dans le registre R0
ADD R1, R0, B ; R1 = R0 + B
STORE R1, C
; stocke la valeur de R1 l'adresse C

PierreSWEID CNAMdeClichy

Page18

Lesjeuxdinstruction

NSY104:ArchitecturedesSystmesInformatiques

3. Architecture registres gnraux


Oprandes explicites:
B. Registre-registre et chargement-rangement

registres

Instructions ddies pour accder la


mmoire (LOAD, STORE)

C=A+B

Load R0, A
Load R1, B
Add R2, R0, R1
Store R2, C
mmoire

Si les instructions ne peuvent avoir que des registres comme oprandes, il faut deux
instructions, LOAD et STORE par exemple, pour respectivement charger un registre
depuis une location mmoire et stocker le contenu d'un registre une adresse donne.
Le nombre de registres est un facteur important.
prend une instruction de plus.
Les processeurs RISC actuels sont tous de ce type Ceci
Le nombre d'accs mmoire ou la
Par exemple, la squence C = A + B sera traduite en :
a.
b.
c.
d.

LOAD R0, A ; charge A dans le registre R0


LOAD R1, B ; charge B dans le registre R1
ADD R2, R0, R1 ; R2 R0 + R1
STORE R2, C ; stocke R2 l'adresse C

PierreSWEID CNAMdeClichy

rutilisation des registres ne change pas


compar aux machines registres-mmoire.
L'avantage des machines registresregistre est leur simplicit.
Leurs instructions sont assez simples, ce qui
fait que leur implmentation par le
processeur est aise

Page19

Adressagedesoprandes

NSY104:ArchitecturedesSystmesInformatiques

Les modes dadressage

d : taille dun lment


PierreSWEID CNAMdeClichy

Page20

Leprocesseur

NSY104:ArchitecturedesSystmesInformatiques

Traitement normal (non pipeline) du flot dinstructions : cas classique

1)
2)
3)
4)
5)

Lecture de linstruction : LI (IF)


Dcodage de linstruction : DI (ID)
Excution de linstruction :EX(EX)
Accs mmoire (MEM)
Ecriture du Rsultat ER (WB : Write Back )

Traitement dune instruction = squence dtapes


Lecture, dcodage, etc.
Lorsque le traitement se situe une tape, les lments responsables des
autres tapes sont au repos (inutiliss)

PierreSWEID CNAMdeClichy

Page21

ImplmentationsimpledeRISC
Dfinition de CPI/IPC ?
A. Cas dun systme qui excute une seule instruction par cycle

NSY104:ArchitecturedesSystmesInformatiques

Un systme de mesure utilis pour dcrire la performance des ordinateurs


consiste valuer le nombre de cycles dhorloge requis pour excuter
chaque instruction.
On appelle cet indice de performance le CPI (Cycles Par instruction).
Dfinition : Le CPI dun programme donn sur un systme donn est calcul
en divisant le nombre de cycles dhorloge requis pour excuter le
programme par le nombre dinstructions excutes pour le faire tourner.

B. Cas dun systme qui excute plus dune instruction par cycle
on fait appel lIPC (Instructions excutes Par Cycle) au lieu du CPI.
Dfinition : LIPC est calcul en divisant le nombre dinstructions excutes
pour faire tourner le programme par le nombre de cycles dhorloge requis
pour son excution.

PierreSWEID CNAMdeClichy

Page22

ImplmentationsimpledeRISC
Chaque instruction prendrait, au plus, 5 cycles dhorloge

NSY104:ArchitecturedesSystmesInformatiques

Sous ensemble:
Chargement/rangement
UAL entires
Branchement

Branchement en 2 cycles
Peut se terminer DI
Rangements en 4 cycles
Se termine MEM
Autres en 5 cycles

PierreSWEID CNAMdeClichy

Page23

NSY104:ArchitecturedesSystmesInformatiques

ImplmentationsimpledeRISC
Calcul du CPI (Cycles Par instruction)
Branchements : 12%
Rangements : 10%
CPI = (12x2 + 10x4 + 78x5)/100
CPI = 4,54
Temps dexcution moyen
Cycle dhorloge x CPI
Exemple CH = 1ns : 4,54 ns

Branchement en 2 cycles

Peut se terminer DI

Rangements en 4 cycles

Se termine MEM

Autres en 5 cycles

LIPC et le CPI fournissent la mme information et le choix de lun ou lautre indice se


fait gnralement en considrant lequel des deux fournit une valeur suprieur 1.
Un indice IPC lev est gnralement significatif dun haut niveau de performance,
tandis quun CPI lev dsigne un faible niveau de performance.
N.B : dautres indicateurs de Mesure de la performance
MIPS
MFLOPS
PierreSWEID CNAMdeClichy

Chapitre : Mesure de
la performance
Page24

Excutiondesinstructions lestapesfondamentales

NSY104:ArchitecturedesSystmesInformatiques

Lexcution dune instruction : Les tapes fondamentales :


Instruction UAL

Instruction Mmoire

Instruction de Branchement

1.
2.
3.
4.
5.
6.

1.
2.
3.
4.
5.
6.

5.

Lecture instruction (LI)


Incrmentation CP (CP)
Dcodage dInstruction (DI)
Lecture des Oprandes (LR)
Excution (EX)
Ecriture Rsultat (ER)

Instructions entires
LI/CP DI/LR EX ER
Instructions flottantes
LI/CP DI/LR EX1 EX2 ... ER

Lecture instruction (LI)


Incrmentation CP (CP)
Dcodage dInstruction (DI)
Calcul de lAdresse Mmoire (LR)
Accs Mmoire (AM)
Ecrfiture Rsultat (ER)

Instructions mmoire
LI/CP DI/LR CA AM ER

1.
2.
3.
4.

Lecture instruction (LI)


Incrmentation CP (CP)
Dcodage dInstruction (DI)
Calcul de lAdresse de
Branchement (CAB)
Excution (EX)

Instructions de branchement
LI/CP DI/CAB/EX

http://people.ee.duke.edu/~sorin/prior-courses/ece152-spring2009/
PierreSWEID CNAMdeClichy

Page25

Excutiondesinstructions lestapesfondamentales

NSY104:ArchitecturedesSystmesInformatiques

Rappel :
Lexcution de linstruction se fait toujours en 5 tapes :
1.
Lecture de linstruction
2.
Dcodage et en mme temps lecture des registres
3.
Calcul dans lUAL

Instruction UAL
: appliquer lopration

Instruction Mmoire
: Calculer ladresse

Instruction de branchement
: Calculer ladresse de
branchement et valuer la
condition
4.
Accs mmoire
5.
Mise jour du registre destination (pour les UAL et loads) ou CP (pour
les branchements)

PierreSWEID CNAMdeClichy

Page26

NSY104:ArchitecturedesSystmesInformatiques

Lepipeline

PierreSWEID CNAMdeClichy

Page27

Lepipeline
Ide gnrale
Lancer le traitement dune instruction avant que la prcdente ne soit
NSY104:ArchitecturedesSystmesInformatiques

termine
Recouvrement des instructions
On exploite le paralllisme entre les instructions dun flot dinstructions
squentielles
Optimiser le temps dutilisation des diffrents lments du processeur.

Dcoupage des instructions en sous-parties lmentaires


En relation avec les tapes de traitement de linstruction
Dfinition des tages du pipeline
travail la chaine

Excution des sous-parties lmentaires dans les tages


correspondants du pipeline.
PierreSWEID CNAMdeClichy

Page28

Lepipeline
Le temps pass par une instruction dans un tage est appel cycle

NSY104:ArchitecturedesSystmesInformatiques

processeur
La longueur dun cycle processeur est dtermine par ltage le plus lent.
Souvent gal un cycle dhorloge, parfois 2

Lidal est dquilibrer la longueur des tages du pipeline


Sinon le tages les plus rapides attendent les plus lents
Pas optimal

Insertion de registres intermdiaires entre les tages


Registres pipeline

PierreSWEID CNAMdeClichy

Page29

Lepipeline

NSY104:ArchitecturedesSystmesInformatiques

Exemple avec un pipeline 5 tages :


1)
2)
3)
4)
5)

Lecture de linstruction : LI (IF)


Dcodage de linstruction : DI (ID)
Excution de linstruction :EX(EX)
Accs mmoire (MEM)
Ecriture du Rsultat ER (WB : Write Back)

PierreSWEID CNAMdeClichy

Page30

Lepipeline

NSY104:ArchitecturedesSystmesInformatiques

Le pipeline

PierreSWEID CNAMdeClichy

Page31

Lepipeline
Le pipeline
1. Lecture de linstruction (IF)

NSY104:ArchitecturedesSystmesInformatiques

La prochaine instruction excuter est charge partir de la case


mmoire pointe par le compteur de programme (CP) dans le registre
d'instruction IR.
Le compteur de programme est incrment pour pointer sur l'instruction
suivante.

PierreSWEID CNAMdeClichy

Page32

Lepipeline

NSY104:ArchitecturedesSystmesInformatiques

2. Dcodage de linstruction (ID)


Cette tape consiste prparer les arguments de l'instruction pour l'tape
suivante o ils seront utiliss. Ces arguments sont placs dans deux
registres A et B.
Si l'instruction utilise le contenu de un ou deux registres, ceux-ci sont lus et
leurs contenus sont rangs en A et B.
Pour les instructions de branchement avec offset, le contenu de PC est
rang en A et l'offset tendu dans B.
Pour les instructions de branchement avec un registre, le contenu de ce
registre est rang en A et B est rempli avec 0.
Les instructions de rangement ST* mettent le contenu du registre qui doit tre
transfr en mmoire dans le registre C.

PierreSWEID CNAMdeClichy

Page33

Lepipeline

NSY104:ArchitecturedesSystmesInformatiques

3. Excution de linstruction (EX)


Cette tape utilise lUAL pour combiner les arguments. L'opration ralise
dpend du type de l'instruction.
Instruction arithmtique ou logique (ADD, AND et NOT)
Les deux arguments contenus dans les registres A et B sont fournis l'unit
arithmtique et logique pour calculer le rsultat.
Instruction de chargement et rangement (LD* et ST*)
Le calcul de l'adresse est effectu partir de l'adresse provenant du registre A
et de l'offset contenu dans le registre B.
Instruction de branchement (BR*, JMP, JSR, JSRR et TRAP)
Pour les instructions contenant un offset, addition avec le contenu du CP.
Pour les instructions utilisant un registre, le contenu du registre est transmis.

PierreSWEID CNAMdeClichy

Page34

Lepipeline

NSY104:ArchitecturedesSystmesInformatiques

4. Accs mmoire (MEM)


Cette tape est uniquement utile pour les instruction de chargement et
de rangement.
Pour les instructions arithmtiques et logiques ou les branchements, rien n'est
effectu. L'adresse du mot mmoire est contenue dans le registre R.
Dans le cas d'un rangement, la valeur ranger provient du registre C.
Dans le cas d'un chargement, la valeur lue en mmoire est mise dans le registre R
pour l'tape suivante

5. Ecriture du rsultat (WB)


Le rsultat des oprations arithmtiques et logiques est rang dans le registre
destination.
La valeur lue en mmoire par les instructions de chargement est aussi range dans
le registre destination.
Les instructions de branchement rangent la nouvelle adresse dans CP.

PierreSWEID CNAMdeClichy

Page35

Conceptiondepipline
Conception du pipeline :
Pour implmenter le pipelining, les concepteurs divisent le chemin de donnes dun

NSY104:ArchitecturedesSystmesInformatiques

processeur en plusieurs sections et placent des registres tampon appels latches


( bascules - loquets = sorte de fermeture trs simple) entre chaque section.
Au dbut de chaque cycle, les latches de pipeline lisent leurs entres et les copient
leurs sorties, qui restent ensuite constantes pendant le reste du cycle.
Ceci partage le chemin de donnes en plusieurs segments, dont chacun
possde une latence dun cycle dhorloge (ou plus) , car les instructions ne
sont pas autorises passer le latch de pipeline jusquau dbut du cycle
suivant.
La portion de chemin de donnes quun signal parcourt au cours dun cycle est
appele tage du pipeline, et les concepteurs dcrivent souvent les pipelines qui
prennent n cycles traverser comme tant des pipelines n tages.

PierreSWEID CNAMdeClichy

Page36

Conceptiondepipline

NSY104:ArchitecturedesSystmesInformatiques

Exemple de pipeline 5 tages

PierreSWEID CNAMdeClichy

Page37

Conceptiondepipline
La figure suivante illustre la manire dont les instructions scoulent
dans le pipeline :

NSY104:ArchitecturedesSystmesInformatiques

Attention :
1) Lecture de linstruction : LI (IF)
2) Dcodage de linstruction : DI (ID)
3) Excution de linstruction :EX(EX)
4) Accs mmoire (MEM)
5) Ecriture du Rsultat ER (WB : Write Back)

1. Au cycle 1, la premire instruction entre dans ltage dExtraction dInstruction (EI) du


pipeline et sarrte au latch de pipeline situ entre cet tage et ltage de dcodage
dinstruction (DI).
2. Au cycle 2, la deuxime instruction entre dans ltage EI du pipeline, tandis que
linstruction 1 passe ltage DI.
3. Au troisime cycle, linstruction 1 entre dans ltage de lecture de registres (LR),
linstruction 2 passe dans ltage de dcodage dinstruction et linstruction 3 entre dans
ltage dextraction.
Les instructions avancent dans le pipeline au rythme dun tage par cycle jusqu ce quelles
parviennent ltage dcriture dans le registre (ER), aprs quoi elles se terminent
PierreSWEID CNAMdeClichy

Page38

Lesdeuxvuesdufonctionnementd'unpipeline
Exemples : Les deux figures suivantes prsentent deux vues du fonctionnement
d'un pipeline de principe six tages.

NSY104:ArchitecturedesSystmesInformatiques

Exemple 1 : en suivant les instructions dans le temps vue diachronique.

PierreSWEID CNAMdeClichy

Page39

Lesdeuxvuesdufonctionnementd'unpipeline

NSY104:ArchitecturedesSystmesInformatiques

Exemple2:Ensuivantlestagesdansletemps vuesynchronique:

PierreSWEID CNAMdeClichy

Page40

Remarque
Un pipeline ne serait pas efficace s'il tait gr par programme, il doit tre
gr par le matriel, ainsi :
NSY104:ArchitecturedesSystmesInformatiques

Le programmeur ne peut ni ne doit voir le pipeline.


Le pipeline ne fait jamais partie de l'architecture induite par le jeu d'instructions
La justification du pipeline est propre au processeur lui mme.
technique constante, un pipeline produit une augmentation des performances
du seul processeur, qui ne serait pas atteignable par d'autres moyens.

PierreSWEID CNAMdeClichy

Page41

Terminologie
Chaquetagefonctionneindpendammentdesautressouslesrservesultrieures.
Unsignald'horlogeuniqueestutilispourlacommandedestransfertsentretages.
NSY104:ArchitecturedesSystmesInformatiques

Sapriodeestgaleaudlaiproprel'tagelepluslent.
Onobservecourammentdesralisationsde512tages,lePentiumIVfait
exceptionavec20tages.
1. Dansuntage estraliseunetape dutraitement.
2. Lenombred'tages estaussinommprofondeur dupipeline.
Unpipelinedeprofondeurk,contientaupluskinstructionssuccessives.
3. Danslecasidal,chaquetageopresuruneinstructiondiffrentetout
instant.

PierreSWEID CNAMdeClichy

Page42

L'augmentationdudbitapporteparunpipeline1

NSY104:ArchitecturedesSystmesInformatiques

Nousprsentonslescalculssousplusieurshypothses.
Soitt

letempstotaldedcodagesanspipeline.

Soit t1

letempsdetraitementdel'tapelapluslongue.

Soitk

lenombred'tages.

Letempsdetransitd'uneinstructiondansledcodeursanspipelineest
Letempsdetransitd'uneinstructiondanslepipelineest

:t
:kxt1

Supposonslepipelinevideaudbut,ilseraremplipendantletempsdetransitdela
premireinstructionsoit :
:kxt1.

Dsquelepipelineestplein,unrsultatestobtenutoutesles

Silenombred'instructionsexcuterestn,letempstotald'excutionest:

:t1 secondes

kxt1 +(n1)xt1 =(n+k1)xt1


L'acclration estalors S = n x t / ( k + n 1 ) x t 1
Sin esttrsgrandS devientprochedet/t1
PierreSWEID CNAMdeClichy

Page43

L'augmentationdudbitapporteparunpipeline2

NSY104:ArchitecturedesSystmesInformatiques

Application:
Supposonslestapesquirpartiessansperte

:t1=t/k,

l'acclrationestalors

:S = n x k / ( k + n 1 ) .

Elletendversk quandn augmenteindfiniment.

Conclusion :
L'acclrationapporteparunpipelineidalquirparti tendverslenombrede
sestages.

PierreSWEID CNAMdeClichy

Page44

L'augmentationdudbitapporteparunpipeline3

NSY104:ArchitecturedesSystmesInformatiques

Exemple : d'un pipeline pour un additionneur simplifi en virgule flottante.


Soit un flot indfini d'additions.
Une fois le pipeline rempli :
L'additiondemande10cycles
L'alignementdemande5cycles
Lanormalisationdemande25cycles

:
:
:

Sans pipeline chaque excution ncessite

untage
untage
untage

10+5+25 = 40 cycles;

Avec un pipeline quatre tages o l'opration la plus longue est faite en 25 cycles;
Chaque addition est faite en

: 25+25+25 = 75 cycles;

Une addition est acheve tous les

: 25 cycles;

Le facteur d'augmentation du dbit est

: 40/25 = 1,6.

Sil'ondcomposel'tagedenormalisationentroistageschacunde10cycles,entout
30cyclesaulieude25,l'tapelapluslonguedure10cycles,
lefacteurd'augmentationdudbit est40/10=4.
InstructionN
InstructionN+1
InstructionN+2
InstructionN+3

PierreSWEID CNAMdeClichy

AD

AL
AD

NOR
AL
AD

NOR
AL
AD

NOR
AL

NOR

Page45

Conclusions
Le gain se situe au niveau du dbit

NSY104:ArchitecturedesSystmesInformatiques

Le temps de traitement dune instruction nest pas rduit.


Il est mme souvent augment
Gestion du passage entre les tages
Temps de stabilisation entre les tages

Exemple avec le pipeline prcdent :


Dbit max atteint lorsque tous les tages sont chargs :
1 instruction par cycle

PierreSWEID CNAMdeClichy

Page46

Conclusions

Le temps de cycle dun processeur pipelin dpend de quatre facteurs


le temps de cycle de la version non pipeline du processeur ;

NSY104:ArchitecturedesSystmesInformatiques

le nombre dtage du pipeline ;


la manire dont la logique du chemin de donnes est rpartie entre les
tages (si cette rpartition est quilibre) ;
la latence de latch du pipeline.

Si la logique peut tre rpartie de manire gale entre les tages du


pipeline, la priode dhorloge du processeur pipelin est :
Temps de cyclePiplin

Temps de cycleNon Piplin


Nbr d' tages du Pipeline

latence de latch du pipeline

Cest aussi le temps moyen dexcution par instruction


Donc, Le pipeline rduit le temps moyen dexcution par instruction

PierreSWEID CNAMdeClichy

Page47

Conclusions
Temps de cycle des processeurs pipelins
Si lon ne considre que le nombre de cycles requis pour excuter un jeu
NSY104:ArchitecturedesSystmesInformatiques

dinstructions donn,
Comme vue (sera vue aussi) le pipelining namliore pas les performances du
processeur.
Tout loppos, le pipelining dun processeur augmente en gnral le nombre de
cycles dhorloge que ncessite un programme pour sexcuter, parce que
certaines instructions restent bloques dans le pipeline en attendant que
dautres instructions aient gnres leurs entres.
Etant donn que le processeur pipelin possde un dbit dune instruction par
cycle, le nombre total dinstructions excut par unit de temps est plus lev dans
le processeur pipelin, qui savre donc plus performant.

PierreSWEID CNAMdeClichy

Page48

Conclusions
Dans un cas idal
Lacclration serait donne par le nombre dtages du pipeline
NSY104:ArchitecturedesSystmesInformatiques

Relation :
Tps moy. instruction NP / tps moy. instruction pipeline

Le pipeline peut diminuer, selon les approches adopts


le nombre de cycles par instructions (CPI : Cycle Par Instruction)
le temps de cycle
ou une combinaison des deux

NP Non Pipeline
PierreSWEID CNAMdeClichy

Page49

Exemples

NSY104:ArchitecturedesSystmesInformatiques

Exercice 01 :
Un processeur non pipelin possde un temps de cycle de 25 ns. Quel est le
temps de cycle dune version pipeline du processeur avec 5 tages de
pipeline galement diviss, si chaque latch du pipeline possde une latence
de 1 ns ?
quen serait-il si le processeur tait divis en 50 tages de pipeline ?

PierreSWEID CNAMdeClichy

Page50

Exemples

NSY104:ArchitecturedesSystmesInformatiques

Exercice 01 :
Un processeur non pipelin possde un temps de cycle de 25 ns. Quel est le
temps de cycle dune version pipeline du processeur avec 5 tages de
pipeline galement diviss, si chaque latch du pipeline possde une latence
de 1 ns ?
quen serait-il si le processeur tait divis en 50 tages de pipeline ?

Solution :

En appliquant lquation propose prcdemment, le temps de cycle pour le pipeline


5 tages est : (25ns/5) + 1ns = 6 ns.

Pour le pipeline de 50 tages, le temps de cycle est de : (25 ns/50) + 1 ns = 1,5 ns.

Remarque :
Dans le pipeline 5 tages, la latence de latch ne correspond qu un sixime du
temps de cycle complet, tandis que la latence de latch du pipeline 50 tages
correspond au 2/3 du temps de cycle total.
On peut galement prsenter les choses en indiquant que le pipeline 50 tages
possde un temps de cycle correspondant au quart de celui du pipeline 5 tages,
alors que dix fois plus de latches sont utiliss.

PierreSWEID CNAMdeClichy

Page51

Exemples
Exercice 02 :

Rappel : Lorsquun processeur ne peut pas tre divis en tages de latences

NSY104:ArchitecturedesSystmesInformatiques

gales, le temps de cycle de lhorloge du processeur est gal la latence du


plus long tage du pipeline ajoute au dlai de latch du pipeline, car le
temps de cycle doit tre suffisamment long pour que ltage le plus long se
termine et stocke son rsultat dans le latch qui le spare de ltage suivant.

Exemple : Supposons quun processeur non pipelin possdant un temps de


cycle de 25 ns soit divis en 5 tages de pipeline avec des latences de 5, 7,
3, 6 et 4 ns. Si la latence du latch du pipeline est de 1 ns, quel est le temps de
cycle du processeur ?

PierreSWEID CNAMdeClichy

Page52

Exemples
Exercice 02 :

Rappel : Lorsquun processeur ne peut pas tre divis en tages de latences

NSY104:ArchitecturedesSystmesInformatiques

gales, le temps de cycle de lhorloge du processeur est gal la latence du


plus long tage du pipeline ajoute au dlai de latch du pipeline, car le
temps de cycle doit tre suffisamment long pour que ltage le plus long se
termine et stocke son rsultat dans le latch qui le spare de ltage suivant.

Exemple : Supposons quun processeur non pipelin possdant un temps de


cycle de 25 ns soit divis en 5 tages de pipeline avec des latences de 5, 7,
3, 6 et 4 ns. Si la latence du latch du pipeline est de 1 ns, quel est le temps de
cycle du processeur ?

Solution : Ltage le plus long du pipeline possde une latence de 7 ns. En


ajoutant le dlai de 1 ns pour le latch du pipeline, on obtient une latence totale
de 8 ns, qui correspond au temps de cycle du processeur.

PierreSWEID CNAMdeClichy

Page53

Exemples

NSY104:ArchitecturedesSystmesInformatiques

Latence de pipeline

On a vue que :
Le pipelining peut rduire le temps de cycle dun processeur et
donc augmenter le dbit des instructions,
Par contre, il augmente nanmoins la latence du processeur dau
moins la somme de toutes les latences de latch du pipeline.

La latence dun pipeline correspond la quantit de temps quune


instruction prend pour le traverser, c'est--dire au produit du nombre
dtages du pipeline par le temps de cycle.
Latence dun pipeline = nombre dtages x temps de cycle

Exemple : Si un processeur non pipelin possdant un temps de cycle de 25 ns


est divis de manire gale en 5 tages de pipeline utilisant des latches dune
latence de 1 ns chacun, quelle est la latence totale du pipeline ? quen serait-il
si le processeur tait divis en 50 tages de pipeline ?

PierreSWEID CNAMdeClichy

Page54

Exemples

NSY104:ArchitecturedesSystmesInformatiques

Latence de pipeline

On a vue que :
Le pipelining peut rduire le temps de cycle dun processeur et
donc augmenter le dbit des instructions,
Par contre, il augmente nanmoins la latence du processeur dau
moins la somme de toutes les latences de latch du pipeline.

La latence dun pipeline correspond la quantit de temps quune


instruction prend pour le traverser, c'est--dire au produit du nombre
dtages du pipeline par le temps de cycle.
Latence dun pipeline = nombre dtages x temps de cycle

Exemple : Si un processeur non pipelin possdant un temps de cycle de 25 ns


est divis de manire gale en 5 tages de pipeline utilisant des latches dune
latence de 1 ns chacun, quelle est la latence totale du pipeline ? quen serait-il
si le processeur tait divis en 50 tages de pipeline ?
Solution : Temps de cycle du processeur pipelin 5 tages : 6 ns, et 50
tages 1,5 ns (selon lexercice prcdent).
Latence du pipeline 5 tages
= 6 x 5 = 30 ns
Latence du pipeline 50 tages
= 1,5 x 50 = 75 ns
PierreSWEID CNAMdeClichy

Page55

NSY104:ArchitecturedesSystmesInformatiques

Lesconflits dansunpipelineetleurrsolution

PierreSWEID CNAMdeClichy

Page56

Lesconflitsdansunpipelineetleurrsolution2

NSY104:ArchitecturedesSystmesInformatiques

Prcisions:

Les conflits tiennent aux instructions et non au pipeline.

Ce sont des conflits dans le pipeline et non des conflits du pipeline.

PierreSWEID CNAMdeClichy

Page57

I Originesetnaturedesconflits 1

Les instructions utilisent des ressources de la machine pour leur


excution.
NSY104:ArchitecturedesSystmesInformatiques

Elles manipulent des donnes.


Les branchements structurent la commande du programme.
Ceci engendre un certain nombre de conflits dans les pipelines
Les trois causes de conflits tiennent alors :
1. Aux ressources de la machine autres que le pipeline.
Cas suivant : Deux instructions prsentes dans le pipeline qui doivent
utiliser la mme ressource (matrielle ou logicielle).
Exemples : le bus pour deux transferts, un registre pour deux critures,
une UAL unique qui doit faire une addition et calculer une adresse.

PierreSWEID CNAMdeClichy

Page58

I Originesetnaturedesconflits 1

2. Aux donnes manipules, par leur dpendance et les diffrences de

NSY104:ArchitecturedesSystmesInformatiques

dures d'excution des instructions.


Exemple classique de conflit de donnes:
Un oprande de In+1 est le rsultat de In, mais In n'est pas termine alors
que In+1 commence. .

PierreSWEID CNAMdeClichy

Page59

I Originesetnaturedesconflits 2

3. la commande programme. Les branchements rompent l'ordre de la


squence.
NSY104:ArchitecturedesSystmesInformatiques

Le branchement inconditionnel sera trait trs tt par son code


d'opration.

Le branchement conditionnel ne peut tre dcid qu'aprs


excution de l'instruction.
Ceci amne :
une obligation : pouvoir annuler les travaux en cours qui doivent
donc tre rversibles, dchargement du pipeline
et une ncessit : prvoir au mieux la branche qui sera prise.

PierreSWEID CNAMdeClichy

Page60

II Lesconflitsderessources,point1,phnomnesetsolutions1

Phnomnes:

NSY104:ArchitecturedesSystmesInformatiques

Ceconflitapparatquanddeuxoprationsdevraientutiliserlammeressourceau
mmeinstant.
Pourprvoircettat,ilfautconnatrel'tatd'occupationdesressourceschaque
instantetfaireunedtectionprventive.
Comment?
Onentretientpourcelaunetabledesrservationsquicontientl'tat
d'occupation desressourcespourchaquecycled'horloge.
Chaquecolonne corresponduntagedupipeline.
Chaqueressourcedisposed'uneligne.Lacase(i,j) est1silaressourcei est
utilisel'instantj,zrosinon.

Solutions:
Duplicationdesressourcesencause;
Nouvelordonnancementdesinstructions;
Attentedelibrationdelaressource.

PierreSWEID CNAMdeClichy

R1
R2
R3
:
:
:
:
Rn

Etage1 Etage2
1
0
0
1

..

Etagen

Page61

II Lesconflitsderessources,point1,phnomnesetsolutions2

Exemples :

NSY104:ArchitecturedesSystmesInformatiques

Exemple 1 : Dans un pipeline quelconque qui a un accs unique la


mmoire, toute lecture d'oprande, toute criture de rsultat sera en
conflit avec la lecture d'une instruction suivante.

Exemple 2 : cas dun bus dcriture unique dans les registres et un


besoin dcriture simultan provoqu par 2 instructions durant le mme
cycle dhorloge

PierreSWEID CNAMdeClichy

Page62

III Lesconflitsdedpendanceentrelesdonnes,point2,
phnomnesetsolutions1
Phnomnes:
Ladpendancedesdonnesapparatdanslespipelines.Elleestd'autantplus

NSY104:ArchitecturedesSystmesInformatiques

critiquequedesinstructionspeuventtreexcutesdansledsordre.
Ladpendanceprovientdesdeuxoprationsdelectureetd'criture,ilyena
donc4,nommesenanglosaxon:
1. RAR

Lectureaprslecture,

readafterread;

2. WAR

critureaprslecture,

writeafterread;

3. RAW

Lectureaprscriture,

readafterwrite;

4. WAW

critureaprscriture,

writeafterwrite.

PierreSWEID CNAMdeClichy

Page63

III Lesconflitsdedpendanceentrelesdonnes,point2,
phnomnesetsolutions2

1. LadpendanceRAR:

Lecturessuccessivesdelammedonne,n'apportepasdeconflit.

NSY104:ArchitecturedesSystmesInformatiques

2. DansladpendanceWAR:

UneinstructionderangI+n critdansunregistreluparuneinstructionderang I.

Sicesinstructionssontexcutesdansledsordre,ilnefautpasquelaI+nse
termineavantqueI n'aitluleregistre.

Cette dpendance n'apparat qu'en cas d'excution dans le


dsordre.

3. DansladpendanceRAW,

uneinstructionderangI+n litunregistrecritparuneinstructionderangI.

Ilfautattendrequel'instructionIcrivesonrsultatavantdelirel'oprandedel'instruction
I+n.

Cette dpendance existe dans un excution squentielle

PierreSWEID CNAMdeClichy

Page64

III Lesconflitsdedpendanceentrelesdonnes,point2,
phnomnesetsolutions2

4. DansladpendanceWAW:

uneinstructionderangI+ncritdansunregistreluimmecritparl'instruction

NSY104:ArchitecturedesSystmesInformatiques

derang I.

Sicesinstructionssontexcutesdansledsordre,ilnefautpasquelaI+n se
termineavantquela Inesetermine.

Cette fausse dpendance n'apparat qu'en cas d'excution


dans le dsordre.

PierreSWEID CNAMdeClichy

Page65

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
3

NSY104:ArchitecturedesSystmesInformatiques

Exemplessurunpetitprogramme:

int a:=3;
int b:=2;
int c:=1;
a:=b+c;
b:=a+b;
b:=a+c;

Peuttrecompilen:

LDI r31,3
LDI r30,2
LDI r29,1
i1:ADDr31,r30,r29i1
i2:ADDr30,r31,r30i2
i3:ADDr30,r31,r29i3

;initialisea,chargementimmdiat.
;initialiseb,idem.
;initialisec,idem.
;litr30etr29,critdansr31
;litr31etr30,critdansr30
;litr31etr29,critdansr30

PierreSWEID CNAMdeClichy

Page66

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
3

NSY104:ArchitecturedesSystmesInformatiques

Exemplessurunpetitprogramme:

int a:=3;
int b:=2;
int c:=1;
a:=b+c;(i1)
b:=a+b;(i2)
b:=a+c;(i3

Peuttrecompilen:

LDI r31,3
LDI r30,2
LDI r29,1
i1:ADDr31,r30,r29i1
i2:ADDr30,r31,r30i2
i3:ADDr30,r31,r29i3

;initialisea,chargementimmdiat.
;initialiseb,idem.
;initialisec,idem.
;litr30etr29,critdansr31
;litr31etr30,critdansr30
;litr31etr29,critdansr30

i1dpenddei2enWAR
i2dpenddei3enWAW
i2dpenddei1enRAW,

cari2critdansr30,lupari1.
cari2critdansr30,critpari3
cari2litr31,critpari1.

Enexcutionsquentielle,ladpendanceRAWapparatseule.
Enexcutiondansledsordre,lesdeuxautrespeuventsurvenir.
PierreSWEID CNAMdeClichy

Page67

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
4

Solutions, toujours prventives :

NSY104:ArchitecturedesSystmesInformatiques

1. Le pipeline tant aliment en squence,


on dtecte les situations prcdentes par examen de son contenu.
Dans tous les cas, un couple d'instructions est en cause. La seconde
sera bloque dans le pipeline jusqu' la fin de la premire.

On dit que le pipeline contient une bulle.

PierreSWEID CNAMdeClichy

Page68

III Lesconflitsdedpendanceentrelesdonnes,point2,*phnomnesetsolutions
5

2. Le travail de prvention peut tre confi au compilateur ou un post


processeur de compilation, avec tous les inconvnients associs.
NSY104:ArchitecturedesSystmesInformatiques

La dtection est alors statique et,


soit l'ordre des instructions est modifi,
soit une instruction de non opration est insre qui provoque un
effet de bulle dans le pipeline.

Le traitement des instructions qui suivent un branchement conditionnel est


particulirement pnalisante.
On dit que l'on a fait de l'ordonnancement de pipeline.

PierreSWEID CNAMdeClichy

Page69

III Lesconflitsdedpendanceentrelesdonnes,point2,*phnomnesetsolutions
6

NSY104:ArchitecturedesSystmesInformatiques

Les alas de donnes-Exemple


Program
execution
order
(in instructions)
sub $2, $1, $3

and $12, $2, $5

IM

Reg

IM

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

PierreSWEID CNAMdeClichy

DM

DM

Reg

IM

Reg

Reg

DM

Reg

IM

Les instructions : and, or et add


utilisent
lancien contenu du reg 2 !!!

DM

Reg

IM

Reg

Reg

Reg

DM

Reg

Page70

III Lesconflitsdedpendanceentrelesdonnes,point2,*phnomnesetsolutions
7

ComptersurlecompilateurpourdtecterlesDD,et
insrerlesinstructionsNOP.Inconv.:pertedetemps
Dansnotrecaschaquedpendanceentredeuxinstructions:
NSY104:ArchitecturedesSystmesInformatiques

Ilfautinsrer1,2ou3Nop suivantladistanceentrelesinstructions.

sub

$2, $1, $3

and

$12, $2, $5

or

$13, $6, $2

add

$14, $2, $2

sw

$15, 100($2)

Nop
Nop
Nop

Remarquelecompilateurpeutaussidplacerducodepour
l insrerentredeuxinstructionsdpendantes.

PierreSWEID CNAMdeClichy

Page71

III Lesconflitsdedpendanceentrelesdonnes,point2,*phnomnesetsolutions
8
Rsoudrelesalasdedonnespardesinstructionssanseffet(lesNOP)

NSY104:ArchitecturedesSystmesInformatiques

sub$2,$1,$3

IM

Reg

IM
NOP

DM

DM

Reg

IM
NOP

Reg

Reg

DM

Reg

IM

Valeur dans
R2 disponible

Reg

DM

Reg

Reg

NOP

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

PierreSWEID CNAMdeClichy

IM

DM

Reg

IM

DM

Reg

IM

Reg

Reg

Reg

DM

Reg

Page72

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
9

3. Lecourtcircuitmatriel

consisteprendrelersultatd'uneinstructionetlefournirenentrede

NSY104:ArchitecturedesSystmesInformatiques

l'instructionsuivantesansdptintermdiairedansunregistre.

Cen'estpastoujoursefficace,cettetechniquediteforwarding .

PierreSWEID CNAMdeClichy

Page73

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
9

3. Lecourtcircuitmatriel exemple

NSY104:ArchitecturedesSystmesInformatiques

Lersultatestenvoydirectementverslinstructiondestinationavantquilnesoit
critdansleregistredestination:Ilyatransmissiondirecteentreinstructionssans
passerparlesregs
Lorsquun reg est lu et
crit dans le mme cycle,

Pr og ra m
e x e c uti o n o r d e r
(i n i n s tr u c tio n s )
s u b $ 2, $ 1 , $ 3

IM

a n d $ 1 2 , $ 2, $ 5

o r $ 1 3 , $ 6, $ 2

a d d $ 1 4 , $ 2, $ 2

s w $ 15, 1 00($2)

Reg

IM

DM

DM

Reg

IM

Reg

Reg

IM

on lit la nouvelle valeur


Reg

DM

DM

Reg

IM

Reg

Reg

Reg

DM

Reg

lw (load word)
: cherche un mot en mmoire [instruction relatif] : implique une lecture mmoire
Lw $10, 20($1)
: lire la donn se trouvant dans ladresse : @[$1 + 20] et la mettre dans ladresse @10
Sw : (store word) : pour un stockage, implique une criture mmoire

PierreSWEID CNAMdeClichy

Page74

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
10

4. Lerenommagedesregistres utilisedesregistresnonvisibles,nonaccessiblesau

NSY104:ArchitecturedesSystmesInformatiques

programmeur.Onyrangedesrsultatsintermdiaires.

Dansl'exemplecidessous,sionpeutplacerlersultatdei2,prvupourtre
dansr30,dansunautreregistre
lesdeuxinstructionspeuventtreexcutessimultanment.

PierreSWEID CNAMdeClichy

Page75

III Lesconflitsdedpendanceentrelesdonnes,point2,phnomnesetsolutions
10

Le renommage de registre peut tre systmatique.

NSY104:ArchitecturedesSystmesInformatiques

Les instructions sont dcodes dans l'ordre et chaque fois qu'une instruction
part l'excution, on lui attribue un registre de renommage pour ranger son
rsultat.
A la fin de l'excution, les registres de renommage sont recopis dans l'ordre du
programme dans les registres officiels pour conserver la smantique du
programme.

PierreSWEID CNAMdeClichy

Page76

IV Lesconflitsdecommande,point3,phnomnesetsolutions1

Phnomnes :
Les instructions de branchement inconditionnels (les sauts) et les

NSY104:ArchitecturedesSystmesInformatiques

branchements conditionnels rompent la squentialit d'excution.


Du simple au complexe, correspondant une rsolution de plus en plus
loigne de l'entre du pipeline, nous avons :
A. le saut adresse explicite;
B. le saut adresse calcule, via un registre d'index par exemple;
C. le branchement conditionnel adresse fixe;
D. le branchement conditionnel adresse calcule.

PierreSWEID CNAMdeClichy

Page77

IV Lesconflitsdecommande,point3,phnomnesetsolutions4

A.Lessauts
Leurtraitementestrelativementsimplecarmmesil'adresseestcalcule,ellel'est
NSY104:ArchitecturedesSystmesInformatiques

danslestoutpremierstages.
B.Lesbranchementsconditionnels
Ilssontdes:excutionsconditionnelles etdestestsdeboucles.
Unbranchementestspcifi par:
Letestducontenud'unregistregnral,
Letestducontenud'unregistrespcial,registredecodedecondition,
Uneconditionspcifie dansl'instruction.

Lavaleurtesteestengnral: 0,testplusrapideque,plusgrandque.
L'tageolersultatestconnuestassezhaut :

4dansunMIPS,

6dansunAlpha21164,

11 dansunPentiumIV.

PierreSWEID CNAMdeClichy

Page78

IV Lesconflitsdecommande,point3,phnomnesetsolutions5

NSY104:ArchitecturedesSystmesInformatiques

Le rsultat de la condition du branchement nest connu qu la fin de la phase 4.


Pendant la phase 2, et 3 et 4, les trois instructions suivantes ont t charges
Problme si la condition est vrifie , On crase des registres !!!!!!
Time (in clock cycles)
Program
execution
CC 2
CC 1
order
(in instructions)
40 beq $1, $3, 7

IM

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($7)

CC 3

Reg

IM

CC 4

CC 5

DM

Reg

Reg

IM

DM

Reg

IM

CC 6

CC 8

CC 9

Reg

DM

Reg

IM

CC 7

Reg

DM

Reg

Reg

DM

Reg

beq : branche if equal


PierreSWEID CNAMdeClichy

Page79

IV Lesconflitsdecommande,point3,phnomnesetsolutions6

NSY104:ArchitecturedesSystmesInformatiques

Exemple1:

int a;
uneexcutionconditionnelle (if then else)quiaffecte1 ou1 la int b;
if(a==0)
variableb selonquelavariablea contient0ounon :
b=1;
else
b=1;

0008 : CMPWI r3,0

compare a 0

000C: BNE *+12

si diffrent, va a l'adresse 00000018, branchement conditionnel


branch if not equal

0010: LDI r31,1 ;

sinon affecte 1 dans b

0014: BR *+8 ;

va$0000001C,branchementinconditionnel

0018: LDI r31,-1 ;

affecte -1 b

001C: ...

LersultatdeCMPWIditsilebranchementestprisetenchanesurLDIr31,1 ou
s'iln'estpasprisetenchanesurLDIr31,1.
Cetestpeutdemander56cycles.Cesattentesetcesindcisionsdiminuentles
performances.
PierreSWEID CNAMdeClichy

Page80

IV Lesconflitsdecommande,point3,phnomnesetsolutions7

NSY104:ArchitecturedesSystmesInformatiques

Exemple2uneboucle quicalculelasommedes10premiersnombresentiers:
inti;
intsomme=0;
for(i=1;i<=10;i++)
somme=somme+i;

0008: LDI r30,0

charge 0 dans somme

000C: LDI r31,1

charge 1 dans i

0010: BR *+12;

va en $0000001C

0014: ADD r30,r30,r31

ajoute i somme

0018: ADD r31,r31,1

ajoute 1 i

001C: CMPWI r31,10 ;

compare i 10

0020: BLE *-12;

si <=, va en $00000014, branchement conditionnel : branch if lower or


equal

DansleprogrammecidessusADDr30,r30,r31seraitdjluquandleprocesseurdtecteque
BR*+12estunbranchementetsilebranchementestpris,uneinstructionatlance
tort.
Certainsprocesseurslisentplusieursinstructionssimultanment.

PierreSWEID CNAMdeClichy

Page81

IV Lesconflitsdecommande,point3,phnomnesetsolutions9

Lestroisgrandstypesdesolutions

NSY104:ArchitecturedesSystmesInformatiques

1.La neutralisation.
Principe: Unefoisdtecteuneinstructiondebranchement,lepipelinecessed'tre
alimentjusqu'lacomplteexcutiondel'instruction.
Cettesolutionprvienttoutedifficult.
Letempsperdu augmenteaveclaprofondeurdupipeline.
Cettesolutionestcourammentemployepourlessauts.

PierreSWEID CNAMdeClichy

Page82

IV Lesconflitsdecommande,point3,phnomnesetsolutions10

NSY104:ArchitecturedesSystmesInformatiques

La neutralisation-exemple
DsquuneinstructiondebranchementestchargedansIF/D,onbloquelarrivede
nouvelleinstructionjusqucequelaconditionsoitvalue:Pertede3cycles
Time (in clock cycles)
Program
execution
CC 2
CC 1
order
(in instructions)
40 beq $1, $3, 7

IM

CC 3

Reg

CC 4

CC 5

DM

Reg

CC 6

CC 7

CC 8

CC 9

DM

Reg

IM

IM

IM

72 lw $4, 50($7)

PierreSWEID CNAMdeClichy

IM

Reg

Page83

IV Lesconflitsdecommande,point3,phnomnesetsolutions11

2. Leretarddebranchement(delayedbranch)
Principe:
NSY104:ArchitecturedesSystmesInformatiques

Enfonctiondelaprofondeurdupipeline,onremplitsipossiblelestages
situsaudessousdel'instructiondebranchement pardesinstructions
indpendantesdursultatdubranchement,ventuellementpardesnon
oprations(NOP).
Cettesolutionestcourammentemployepourlessauts.
Cette opration de remplissage peut tre faite de trois faons.

Les deux premires relvent de la compilation ou d'un analyse pralable l'excution.

A. Transporter au del du branchement des instructions qui le prcdent condition


quelaconditiondebranchementn'utilisepasleursrsultats.

PierreSWEID CNAMdeClichy

Page84

IV Lesconflitsdecommande,point3,phnomnesetsolutions12

B. Excuter des instructions postrieures l'instruction de branchement qui doivent

NSY104:ArchitecturedesSystmesInformatiques

tre excutes dans les deux cas.


C. Excuter les instructions d'une branche qui suit le branchement. On nomme cela
excution spculative.
Remarque: Cetteexcution excutionspculative doitimprativementtre
rversible.Pourcela,touteslesmodificationsapportesauxregistres,lammoire
etl'tatinternedelamachinedoiventtrenotespourpouvoirannulerces
modificationssibesoinest.
Rappel : Excution spculative
L'excution spculative d'une instruction signifie que l'excution de cette instruction est lance
de manire anticipe (i.e. sans tre certain que l'instruction doit rellement tre excute).
C'est par exemple le cas lors qu'il y a prdiction de branchements.

PierreSWEID CNAMdeClichy

Page85

NSY104:ArchitecturedesSystmesInformatiques

Micro acrhitecturePentium4

PierreSWEID CNAMdeClichy

Page86

NSY104:ArchitecturedesSystmesInformatiques

Exemple:P4:unpipeline20tages

PierreSWEID CNAMdeClichy

Page87

PowerPC603

PowerPc:
Lespipelinesd'excutiondesinstructionsentiresetflottantesontune
profondeurrespectivedecinq etsixtages

NSY104:ArchitecturedesSystmesInformatiques

PierreSWEID CNAMdeClichy

Page88