Professional Documents
Culture Documents
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.
Lacinquime:
L'excution de chaque instruction est acheve avant que la suivante soit prise en
compte.
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
NSY104:ArchitecturedesSystmesInformatiques
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
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.,
PierreSWEID CNAMdeClichy
Page8
Dfinitions
Piplining ?
Le pipelining est une technique permettant de recouvrir lexcution de
NSY104:ArchitecturedesSystmesInformatiques
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
Conclusions:
Dans un processeur non pipelin,
Le dbit = (1/latence), puisque chaque opration sexcute sparment.
Page11
NSY104:ArchitecturedesSystmesInformatiques
Rappels
PierreSWEID CNAMdeClichy
Page12
Modlesdeprogrammation
NSY104:ArchitecturedesSystmesInformatiques
Lune des caractristiques qui diffrencie les processeurs entre eux est
leur jeu dinstructions
un ensemble doprations basiques que propose chaque type de processeur.
Page13
Lesjeuxdinstruction
Dfinitions
Partie de larchitecture avec laquelle le programmeur ou le concepteur
NSY104:ArchitecturedesSystmesInformatiques
Page14
Lesjeuxdinstruction
Classification base sur le stockage interne au processeur
1. Architecture pile
NSY104:ArchitecturedesSystmesInformatiques
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
Push A
Push B
Add
Pop C
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
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 :
PierreSWEID CNAMdeClichy
Page17
NSY104:ArchitecturedesSystmesInformatiques
Lesjeuxdinstruction
Classification base sur le stockage interne au
processeur
3. Architecture registres gnraux
Oprandes explicites:
A. Registre-mmoire
registres
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
registres
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.
PierreSWEID CNAMdeClichy
Page19
Adressagedesoprandes
NSY104:ArchitecturedesSystmesInformatiques
Page20
Leprocesseur
NSY104:ArchitecturedesSystmesInformatiques
1)
2)
3)
4)
5)
PierreSWEID CNAMdeClichy
Page21
ImplmentationsimpledeRISC
Dfinition de CPI/IPC ?
A. Cas dun systme qui excute une seule instruction par cycle
NSY104:ArchitecturedesSystmesInformatiques
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
Chapitre : Mesure de
la performance
Page24
Excutiondesinstructions lestapesfondamentales
NSY104:ArchitecturedesSystmesInformatiques
Instruction Mmoire
Instruction de Branchement
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
5.
6.
5.
Instructions entires
LI/CP DI/LR EX ER
Instructions flottantes
LI/CP DI/LR EX1 EX2 ... ER
Instructions mmoire
LI/CP DI/LR CA AM ER
1.
2.
3.
4.
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.
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
PierreSWEID CNAMdeClichy
Page29
Lepipeline
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page30
Lepipeline
NSY104:ArchitecturedesSystmesInformatiques
Le pipeline
PierreSWEID CNAMdeClichy
Page31
Lepipeline
Le pipeline
1. Lecture de linstruction (IF)
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page32
Lepipeline
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page33
Lepipeline
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page34
Lepipeline
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page35
Conceptiondepipline
Conception du pipeline :
Pour implmenter le pipelining, les concepteurs divisent le chemin de donnes dun
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page36
Conceptiondepipline
NSY104:ArchitecturedesSystmesInformatiques
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)
Page38
Lesdeuxvuesdufonctionnementd'unpipeline
Exemples : Les deux figures suivantes prsentent deux vues du fonctionnement
d'un pipeline de principe six tages.
NSY104:ArchitecturedesSystmesInformatiques
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
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
Page43
L'augmentationdudbitapporteparunpipeline2
NSY104:ArchitecturedesSystmesInformatiques
Application:
Supposonslestapesquirpartiessansperte
:t1=t/k,
l'acclrationestalors
:S = n x k / ( k + n 1 ) .
Conclusion :
L'acclrationapporteparunpipelineidalquirparti tendverslenombrede
sestages.
PierreSWEID CNAMdeClichy
Page44
L'augmentationdudbitapporteparunpipeline3
NSY104:ArchitecturedesSystmesInformatiques
:
:
:
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;
: 25 cycles;
: 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
PierreSWEID CNAMdeClichy
Page46
Conclusions
NSY104:ArchitecturedesSystmesInformatiques
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
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 :
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 :
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page52
Exemples
Exercice 02 :
NSY104:ArchitecturedesSystmesInformatiques
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.
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.
Page55
NSY104:ArchitecturedesSystmesInformatiques
Lesconflits dansunpipelineetleurrsolution
PierreSWEID CNAMdeClichy
Page56
Lesconflitsdansunpipelineetleurrsolution2
NSY104:ArchitecturedesSystmesInformatiques
Prcisions:
PierreSWEID CNAMdeClichy
Page57
I Originesetnaturedesconflits 1
PierreSWEID CNAMdeClichy
Page58
I Originesetnaturedesconflits 1
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page59
I Originesetnaturedesconflits 2
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
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.
3. DansladpendanceRAW,
uneinstructionderangI+n litunregistrecritparuneinstructionderangI.
Ilfautattendrequel'instructionIcrivesonrsultatavantdelirel'oprandedel'instruction
I+n.
PierreSWEID CNAMdeClichy
Page64
III Lesconflitsdedpendanceentrelesdonnes,point2,
phnomnesetsolutions2
4. DansladpendanceWAW:
uneinstructionderangI+ncritdansunregistreluimmecritparl'instruction
NSY104:ArchitecturedesSystmesInformatiques
derang I.
Sicesinstructionssontexcutesdansledsordre,ilnefautpasquelaI+n se
termineavantquela Inesetermine.
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
NSY104:ArchitecturedesSystmesInformatiques
PierreSWEID CNAMdeClichy
Page68
III Lesconflitsdedpendanceentrelesdonnes,point2,*phnomnesetsolutions
5
PierreSWEID CNAMdeClichy
Page69
III Lesconflitsdedpendanceentrelesdonnes,point2,*phnomnesetsolutions
6
NSY104:ArchitecturedesSystmesInformatiques
IM
Reg
IM
or $13, $6, $2
sw $15, 100($2)
PierreSWEID CNAMdeClichy
DM
DM
Reg
IM
Reg
Reg
DM
Reg
IM
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
or $13, $6, $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
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
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
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
IM
48 or $13, $6, $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
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;
compare a 0
0014: BR *+8 ;
va$0000001C,branchementinconditionnel
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;
charge 1 dans i
0010: BR *+12;
va en $0000001C
ajoute i somme
ajoute 1 i
compare i 10
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.
PierreSWEID CNAMdeClichy
Page84
IV Lesconflitsdecommande,point3,phnomnesetsolutions12
NSY104:ArchitecturedesSystmesInformatiques
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