[email protected] chapitre2 la technique du pipeline architecture des ordinateurs...

45
[email protected] Chapitre2 Chapitre2 La technique du La technique du Pipeline Pipeline Architecture Des Architecture Des Ordinateurs Ordinateurs Master Info Première Master Info Première Année Année Master1/IUP 3 Master1/IUP 3

Upload: fraser-guery

Post on 03-Apr-2015

104 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Chapitre2Chapitre2La technique du La technique du

PipelinePipelineArchitecture Des OrdinateursArchitecture Des OrdinateursMaster Info Première AnnéeMaster Info Première Année

Master1/IUP 3Master1/IUP 3

Page 2: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

IntroductionIntroduction Idée : Ne pas attendre la fin de l ’instruction Idée : Ne pas attendre la fin de l ’instruction

pour démarrer une nouvellepour démarrer une nouvelle Découper l ’exécution de l ’instruction en Découper l ’exécution de l ’instruction en

phase +- indépendantes et de même phase +- indépendantes et de même degrés degrés de complexitéde complexité

–Si non perte de temps Si non perte de temps

A B C D

4 Paquets Laver Essorer Plier 30 mn 40mn 20mn

Page 3: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Solution naïve : Un paquet à la foisSolution naïve : Un paquet à la fois

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20

6h 7h 8h 9h 10h 11h12h

Time

6h pour laver les 4 paquets

Page 4: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Laver mes vêtements en pipeline: Laver mes vêtements en pipeline:

Possible mais !!Possible mais !!

Les 4 paquets sont lavés en 3.5h au lieu de 6hLes 4 paquets sont lavés en 3.5h au lieu de 6h

A

B

C

D

6 PM 7 8 9 10 11

Time

30 40 40 40 40 20

Perte de temps à transférer les paquets

Page 5: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Appliquant le principe à Appliquant le principe à l’architecturel’architecture

Rappel :Rappel :

L’exécution de l’instruction se fait toujours en 5 étapesL’exécution de l’instruction se fait toujours en 5 étapes

1.1. Lecture de l’instructionLecture de l’instruction

2.2. Décodage et en même temps lecture des registresDécodage et en même temps lecture des registres

3.3. Calcul dans l’UAL Calcul dans l’UAL Instruction UAL : appliquer l’opérationInstruction UAL : appliquer l’opération Instruction Mémoire : Calculer l’adresseInstruction Mémoire : Calculer l’adresse Instruction de branchement : Calculer l’adresse de Instruction de branchement : Calculer l’adresse de

branchement et évaluer la conditionbranchement et évaluer la condition

4.4. Accès mémoire Accès mémoire

5.5. Mise à jour du registre destination (pour les UAL et Mise à jour du registre destination (pour les UAL et loads) ou CP (pour les branchements)loads) ou CP (pour les branchements)

Page 6: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Chemin de données de la machine MIPS sans Chemin de données de la machine MIPS sans PipelinePipeline

ac k

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Instruction

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Rea dregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Address

Datamemory

1

ALUresult

Mux

ALUZero

IF: Instruction fetch ID: Instruction decode/register file read

EX: Execute/address calculation

MEM: Memory access WB: Write

L’exécution de l’instruction se fait toujours de gauche à droite, sauf pour l’écriture du résultat et la mise à jour de CP en cas de branchement pris.

Num de reg Contenu regBranchem

ent terminé étape 4

CP+4

Page 7: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

EXEMPLEEXEMPLEac k

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Instruction

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Rea dregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Address

Datamemory

1

ALUresult

Mux

ALUZero

IF: Instruction fetch ID: Instruction decode/register file read

EX: Execute/address calculation

MEM: Memory access WB: Write

L’exécution de l’instruction se fait toujours de gauche à droite, sauf pour l’écriture du résultat et la mise à jour de CP en cas de branchement pris.

Num de reg Contenu regBranchem

ent terminé étape 4

100ADD R1, R2, R3 1

23

3

3

Page 8: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Exécution des instructions sans et Exécution des instructions sans et

avec avec pipileinepipileine

F D Ex Mem Er

F D Ex Mem Er

F D Ex Mem Er

F D Ex Mem Er

F D Ex Mem Er

10 5 10 10 5

Temps

F D Ex Mem Er

10 5 10 10 5 F D Ex Mem Er

10 5 10 10 5

F D Ex Mem Er

10

Idéalement : CPI = 1

1 Instruction par cycle

Page 9: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Les instructions ne sont pas Les instructions ne sont pas sauvegardéessauvegardées

ac k

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Instruction

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Rea dregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Address

Datamemory

1

ALUresult

Mux

ALUZero

IF: Instruction fetch ID: Instruction decode/register file read

EX: Execute/address calculation

MEM: Memory access WB: Write

L’instruction contient des informations (numéros des registres, signaux de contrôle, …) qui seront utilisées bien après la lecture de l’instruction. Il faut les mémoriser.

Num de reg Contenu regBranchem

ent terminé étape 4

100

ADD R1, R2, R3

1

23

1

2 3

3

3

104 Sub R5, R6, R7

5

6

7

37

Page 10: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Chemin de données pipeliné : ajout Chemin de données pipeliné : ajout

des buffersdes buffers

Instruct ion

me mory

Address

4

32

0

A ddAdd

result

S hi ft

left 2

Inst

ruc

tion

IF/ ID EX/ MEM ME M/W B

Mux

0

1

Ad d

PC

0Writedata

Mux

1

Registers

Readdata 1

Readdata 2

Rea dregister 1

Rea dregister 2

16Si gn

extend

Writeregister

Writedata

R eaddata

1

ALUresult

Mux

A LU

Zero

ID/EX

Datamemory

Address

Buffer pour stocker le résultat : le tapis roulant

Ces « buffers » sont utilisés non seulement pour stocker les données mais aussi les signaux de contrôle.L'écriture dans les buffers est faite à chaque fin de cycle par les signaux :

FI/IDWrite, ID/ExWrite, EX/MemWrite, Mem/RbWriteA

dd R1, R

2, R3

Page 11: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Chemin de données pipeliné : ajout Chemin de données pipeliné : ajout

des buffersdes buffers

Instruct ion

me mory

Address

4

32

0

A ddAdd

result

S hi ft

left 2

Inst

ruc

tion

IF/ ID EX/ MEM ME M/W B

Mux

0

1

Ad d

PC

0Writedata

Mux

1

Registers

Readdata 1

Readdata 2

Rea dregister 1

Rea dregister 2

16Si gn

extend

Writeregister

Writedata

R eaddata

1

ALUresult

Mux

A LU

Zero

ID/EX

Datamemory

Address

Buffer pour stocker le résultat : le tapis roulant

Ces « buffers » sont utilisés non seulement pour stocker les données mais aussi les signaux de contrôle.L'écriture dans les buffers est faite à chaque fin de cycle par les signaux :

FI/IDWrite, ID/ExWrite, EX/MemWrite, Mem/RbWrite

Add R

1, R2, R

3

Sub R

5, R6, R

7

Page 12: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Chemin de données pipeliné : ajout Chemin de données pipeliné : ajout

des buffersdes buffers

Instruct ion

me mory

Address

4

32

0

A ddAdd

result

S hi ft

left 2

Inst

ruc

tion

IF/ ID EX/ MEM ME M/W B

Mux

0

1

Ad d

PC

0Writedata

Mux

1

Registers

Readdata 1

Readdata 2

Rea dregister 1

Rea dregister 2

16Si gn

extend

Writeregister

Writedata

R eaddata

1

ALUresult

Mux

A LU

Zero

ID/EX

Datamemory

Address

Buffer pour stocker le résultat : le tapis roulant

Ces « buffers » sont utilisés non seulement pour stocker les données mais aussi les signaux de contrôle.L'écriture dans les buffers est faite à chaque fin de cycle par les signaux :

FI/IDWrite, ID/ExWrite, EX/MemWrite, Mem/RbWrite

Add R

1, R2, R

3

Sub …

.

LW …

..

Page 13: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Chemin de données pipeliné : ajout Chemin de données pipeliné : ajout

des buffersdes buffers

Instruct ion

me mory

Address

4

32

0

A ddAdd

result

S hi ft

left 2

Inst

ruc

tion

IF/ ID EX/ MEM ME M/W B

Mux

0

1

Ad d

PC

0Writedata

Mux

1

Registers

Readdata 1

Readdata 2

Rea dregister 1

Rea dregister 2

16Si gn

extend

Writeregister

Writedata

R eaddata

1

ALUresult

Mux

A LU

Zero

ID/EX

Datamemory

Address

Buffer pour stocker le résultat : le tapis roulant

Ces « buffers » sont utilisés non seulement pour stocker les données mais aussi les signaux de contrôle.L'écriture dans les buffers est faite à chaque fin de cycle par les signaux :

FI/IDWrite, ID/ExWrite, EX/MemWrite, Mem/RbWrite

Add R

1, R2, R

3

Sub …

.

LW …

..

Add …

Page 14: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Représentation graphiqueReprésentation graphique

IM Reg DM Reg

IM Reg DM Reg

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

lw $10, 20($1)

sub $11, $2, $3

ALU

ALU

Ordre d ’exécution

Lecture Mémoire Ecriture Registre

Page 15: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Les signaux de contrôle des étages Les signaux de contrôle des étages

RegDst = 1; On écrit dans rd, si non dans rtALUOpx : donne l’opération à réaliser dans l’UAL

exemple 001 : addition, 010 : soustracation , ….100: regarder le champ fonction

Branch =1 si c’est une instr de branchementMemRead = 1 on fait une lecture en mémoireMemWrite = 1 on fait une écriture en mémoireRegWrite =1 on écrit dans un registre rd ou rt (suivant RegDst)MemToReg = 1 ; la donnée écrite dans le reg provient de la mémoire ; si non du regsitre

Execution/Address Calculation stage control lines

Memory access stage control lines

Write-back stage control

lines

InstructionReg Dst

ALU Op1

ALU Op0

ALU Src Branch

Mem Read

Mem Write

Reg write

Mem to Reg

R-format 1 1 0 0 0 0 0 1 0lw 0 0 0 1 0 1 0 1 1

sw X 0 0 1 0 0 1 0 X

beq X 0 1 0 1 0 0 0 X

Page 16: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Mémorisation des signaux de Mémorisation des signaux de contrôlecontrôle

Control

EX

M

WB

M

WB

WB

IF/ID ID/EX EX/MEM ME M/ WB

Instruction

Une fois l’instruction décodée et pour éviter de redécoder de nouveau;On stocke les signaux de contrôle dans les buffers de pipeleine

Page 17: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

PC

Instructionmemory

Inst

ruct

ion

Add

Instruction[20– 16]

Me

mto

Re

g

ALUOp

Branch

Reg st

AL Src

4

16 32Instruction[15– 0]

0

0

Mux

0

1

AddAdd

result

R

ontrol

ALU

Instruction[15– 11]

6

EX

M

WB

M

WB

WB

D

U

egistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signex tend

Mux

1

ALUresult

Zero

Writedata

Readdata

Mux

1

ALUcontrol

Shiftlef t 2R

eg

Writ

e

MemRead

C

IF/ID

PCSrc

ID/EX

EX/MEM

MEM/WB

Mux

0

1

Me

mW

rite

Address

Datamemory

Address

Il faut garder le num du reg destination

rt ou rd

Le chemin de données avec les Le chemin de données avec les signaux de contrôlesignaux de contrôle

Page 18: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Instructionmemory

Inst

ruct

ion

Add

Instruction[20– 16]

Me

mto

Re

g

ALUOp

Branch

Reg st

AL Src

4

16 32Instruction[15– 0]

0

0

Mux

0

1

AddAdd

result

R

ontrol

ALU

Instruction[15– 11]

6

EX

M

WB

M

WB

WB

D

U

egistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signex tend

Mux

1

ALUresult

Zero

Writedata

Readdata

Mux

1

ALUcontrol

Shiftlef t 2R

eg

Writ

e

MemRead

C

IF/ID

PCSrc

ID/EX

EX/MEM

MEM/WB

Mux

0

1

Me

mW

rite

Address

Datamemory

Address

Le chemin de données avec les Le chemin de données avec les signaux de contrôlesignaux de contrôle

100

100104

104

104 104

Add r3, r2,

r1

1

211

5

2

33

1 1

0 0

00

0 1

00

1

11

+

0

0 0

0

0

3

3

16 16

10

16

16

0

fonc

Add r3, r2, r1100

Page 19: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Problèmes liés à l exploitation Problèmes liés à l exploitation du pipelinedu pipeline

Pourquoi ne peut-on pas obtenir un CPI = 1?Pourquoi ne peut-on pas obtenir un CPI = 1? 3 causes : Les aléas3 causes : Les aléas

– Les aléas de structurelsLes aléas de structurels : Plusieurs instructions veulent utiliser la : Plusieurs instructions veulent utiliser la même unité: exemple 1’instruction lie en mémoire (Fetch) et une même unité: exemple 1’instruction lie en mémoire (Fetch) et une autre écrit en mémoire un store d ’une données. autre écrit en mémoire un store d ’une données.

– Solution : dédoubler les unités ou multiplier les ports de Solution : dédoubler les unités ou multiplier les ports de lecture/Ecriture (ex Transparent suivant)lecture/Ecriture (ex Transparent suivant)

– Les aléas de donnéesLes aléas de données : Dépendance de données : Dépendance de données– L’instruction J a besoin d’une donnée qui est entrain de se calculer L’instruction J a besoin d’une donnée qui est entrain de se calculer

par I . J dépend de I et toute les deux sont dans le pipeline.par I . J dépend de I et toute les deux sont dans le pipeline.

– Les aléas de contrôleLes aléas de contrôle : Instruction de branchement : Instruction de branchement– La décision de prendre le branchement ou non n ’est connu qu ’ à la La décision de prendre le branchement ou non n ’est connu qu ’ à la

fin de la phase 4. fin de la phase 4.

– Risque : Il ne faut pas exécuter les instructions se trouvant juste Risque : Il ne faut pas exécuter les instructions se trouvant juste après le branchement. Risque d’écraser les registresaprès le branchement. Risque d’écraser les registres

Page 20: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Détourner les aléas structurels en Détourner les aléas structurels en multipliant les unités fonctionnellesmultipliant les unités fonctionnelles

Aléas structurel sur la mémoire

Avoir une mémoire (cache) Instruction et une mémoire (cache) données

Page 21: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Les aléas de donnéesLes aléas de données

IM Reg

IM Reg

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

sub $2, $1, $3

Programexecutionorder(in instructions)

and $12, $2, $5

IM Reg DM Reg

IM DM Reg

IM DM Reg

CC 7 CC 8 CC 9

10 10 10 10 10/–20 –20 –20 –20 –20

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

Value of register $2:

DM Reg

Reg

Reg

Reg

DM

au début à la fin

Les instructions : and, or et add utilisent

l’ancien contenu du reg 2 !!!

CC : clock cycle

Page 22: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Quelles solutions pour les Quelles solutions pour les

dépendances dépendances de données (DD)?de données (DD)?

1) Compter sur le compilateur pour détecter les DD, et 1) Compter sur le compilateur pour détecter les DD, et insérer les instructions NOP. Inconv. : perte de tempsinsérer les instructions NOP. Inconv. : perte de temps– Dans notre cas à chaque dépendance entre deux instructions :Dans notre cas à chaque dépendance entre deux instructions :

Il faut insérer 1, 2 ou 3 Nop suivant la distance entre les instructions.Il faut insérer 1, 2 ou 3 Nop suivant la distance entre les instructions.

subsub $2, $1, $3$2, $1, $3

and and $12, $2, $5$12, $2, $5

oror $13, $6, $2$13, $6, $2

addadd $14, $2, $2$14, $2, $2

swsw $15, 100($2)$15, 100($2)

– Remarque le compilateur peut aussi déplacer du code pour l ’insérer Remarque le compilateur peut aussi déplacer du code pour l ’insérer entre deux instructions dépendantes. (cf. TD)entre deux instructions dépendantes. (cf. TD)

NopNopNop

Page 23: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Résoudre les aléas de données Résoudre les aléas de données

par des instructions sans effet par des instructions sans effet (les NOP)(les NOP)

IM Regsub $2, $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

DM Reg

IM Reg

IM Reg DM Reg

IM DM Reg

Reg

Reg

DM

IM Reg

IM Reg DM Reg

IM DM Reg

Reg

Reg

DM

NOP

NOP

NOP

Valeur dans R2 disponible

Page 24: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Autres solutionsAutres solutions

2) Utiliser le matériel adéquat pour détecter 2) Utiliser le matériel adéquat pour détecter la dépendance et suspendre l ’arrivée de la dépendance et suspendre l ’arrivée de nouvelle instruction tant que le résultat n ’est nouvelle instruction tant que le résultat n ’est pas calculé. Aléas résolu.pas calculé. Aléas résolu.

On bloque l ’arrivé des instruction: And, Or et On bloque l ’arrivé des instruction: And, Or et Add jusqu’à ce que le reg 2 soit écrit.Add jusqu’à ce que le reg 2 soit écrit.

Un comparateur pour comparer le no du reg Un comparateur pour comparer le no du reg lue avec no du registre destinationlue avec no du registre destination

même chose que le schéma précédent mais même chose que le schéma précédent mais des suspensions au lieu de NOPdes suspensions au lieu de NOP

Page 25: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

3) Par Envoi direct Direct3) Par Envoi direct Direct « Forwarding » ou « By-pass »« Forwarding » ou « By-pass »

Le résultat est envoyé directement vers l’instruction destination Le résultat est envoyé directement vers l’instruction destination

avant qu’il ne soit écrit dans le registre destination:avant qu’il ne soit écrit dans le registre destination:

Il y a transmission directe entre instructions sans passer par les regsIl y a transmission directe entre instructions sans passer par les regs

I M R e g

I M R eg

C C 1 C C 2 C C 3 C C 4 C C 5 C C 6

Ti m e (i n c lo c k cy cle s )

s ub $ 2, $1 , $ 3

Pr og ra me x e c uti o n o rde r(i n ins tr u c tio ns )

a nd $ 12 , $ 2, $ 5

I M R eg D M R e g

I M D M R e g

I M D M R e g

C C 7 C C 8 C C 9

10 1 0 1 0 1 0 1 0/ – 20 – 2 0 – 2 0 – 2 0 – 20

o r $ 1 3, $ 6, $2

a d d $ 14 , $ 2, $ 2

s w $ 15 , 1 0 0 ( $2)

V al ue o f re gi st er $ 2 :

D M R eg

R e g

R eg

R eg

X X X – 2 0 X X X X XV alu e o f E X/ M E M :X X X X – 2 0 X X X XVa lu e o f M E M/ W B :

D M

Lorsqu’un reg est lu et écrit dans le même cycle,

on lit la nouvelle valeur

Page 26: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

L ’envoi direct (direct L ’envoi direct (direct forwarding)forwarding)

Les registresUAL

Sans envoi direct

Les registres

UAL

Mx

Mx

Avec envoi direct

Page 27: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Mux

A L UID/E X M E M/ WB

Datame m ory

E X/ M E MRe gisters

SANS ENVOI DIRECT

R e g i st e r s

Mux M

ux

A L U

I D / E X M E M / W B

D a tam e m o ry

Mux

F o r w a r d i n gu n it

E X / M E M

b. W i t h fo r w a r d in g

F o r w a r d B

R dE X / M E M . R e g is te r R d

M E M / W B . R e g i st e r R d

R tR tR s

F o r w a r d A

Mux

AVEC ENVOI DIRECT

Add $6, $12, $13Add $2, $3, $4Sub $5, $6, $6…. Rs Rt

Page 28: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Le chemin de données complet avec Le chemin de données complet avec

l’envoi directl’envoi direct

PCInstructionmemory

Registers

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Forwardingunit

IF/ID

Inst

ruc

t ion

Mux

RdEX/MEM.RegisterRd

MEM/WB.RegisterRd

Rt

Rt

Rs

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

regWriteregWrite

TDDonnez le schéma de

l’unitéForward

Unit

Page 29: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

L ’envoie direct ne marche à L ’envoie direct ne marche à chaque coup!!!chaque coup!!!

Re g

IM

Re g

Re g

IM

C C 1 C C 2 C C 3 C C 4 C C 5 C C 6

Tim e (in clock cycle s)

lw $2, 20($1)

Pro gra m

exe cutio n

order

(in in stru ctio ns)

and $4, $2, $5

IM Reg D M Re g

I M D M Re g

I M D M Re g

C C 7 C C 8 C C 9

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

D M Reg

Re g

Reg

D M

Le problème des instructions de chargement

?

Page 30: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Solution : Retarder d ’un cycle Solution : Retarder d ’un cycle l ’instruction ANDl ’instruction AND

lw $2, 20($1)

Program

execution

order

(in instructions)

and $4, $2, $5

or $8, $2, $6

add $9, $4, $2

Reg

IM Reg

IM DM

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time (in clock cycles)

IM Reg DM Reg

IM DM Reg

CC 7 CC 8 CC 9 CC 10

DM Reg

Reg

Reg

Bulle

Pour ne pas avancer il faut mettre à zéro les sng de

contrôle

Pour ne pas avancer ilne faut pas charger une

nouvelle instruction et ne pas modifier PC

Page 31: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

L ’aléas de données avec une instruction de L ’aléas de données avec une instruction de chargementchargement

PCInstruction

memory

Registers

Mux

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Hazarddetection

unit

Forwardingunit

0

Mux

IF/ID

Ins t

ruct

i on

ID/EX.MemRead

IF/I

DW

rit e

PC

Wri

t e

ID/EX.RegisterRt

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

Rt

Rs

Rd

RtEX/MEM.RegisterRd

MEM/WB.RegisterRd

Lw rt, 100(Rs)

And Rs, Rt, Rd

Rs, Rtrt

RAZ

lw $2, 20($1)

and $4, $2, $5

rt

rs rt

Page 32: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Dernier type d ’aléas : les Dernier type d ’aléas : les

aléas de contrôle aléas de contrôle les branchements pris les branchements pris

Le résultat de la condition du branchement n’est connu qu ’à la fin de la phase 4.Pendant la phase 2, et 3 et 4, les trois instructions suivantes ont été chargées

Problème si la condition est vérifiée , On écrase des registres !!!!!!

Reg

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM DM

IM DM

IM DM

DM

DM Reg

Reg Reg

Reg

Reg

RegIM

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($7)

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Reg

Page 33: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] Deux solutions possibles pour Deux solutions possibles pour

lutter contre les aléas de lutter contre les aléas de branchementbranchement

1 : Dés qu ’une instruction de branchement est chargée dans 1 : Dés qu ’une instruction de branchement est chargée dans IF/D, on bloque l’arrivée de nouvelle instruction jusqu’à ce que la IF/D, on bloque l’arrivée de nouvelle instruction jusqu’à ce que la condition soit évaluée: Perte de 3 cycles condition soit évaluée: Perte de 3 cycles

Reg

CC 1

Time (in clock cycles)

40 beq $1, $3, 7

Programexecutionorder(in instructions)

IM Reg

IM

IM

IM

DM

DM Reg

RegIM72 lw $4, 50($7)

CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9

Page 34: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

2) Continuer l ’exécution des instructions 2) Continuer l ’exécution des instructions chargéeschargées

Mais vider les buffers si branchement Mais vider les buffers si branchement pris.pris.

Les instructions se trouvant après l’instruction Les instructions se trouvant après l’instruction branchement sont toujours chargéesbranchement sont toujours chargées

Si la condition est vérifiée, les instructions sont Si la condition est vérifiée, les instructions sont vidées des buffers IF/ID, ID/EXE, EXE/MEM, on met vidées des buffers IF/ID, ID/EXE, EXE/MEM, on met des zéros partout.des zéros partout.

PCInstructionmemory

Control

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

0

Mux

0

Mux

ID.Flush

EX.FlushIF.Flush

IF/ID

0

Mux

IF.Flush

IF/ID

0

Mux

Branchement pris

0

0

0

0

0 0

1 11

COP

Page 35: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected] 3) On peut remplir le vide par des 3) On peut remplir le vide par des

instructions utilesinstructions utilesDelayed BranchDelayed Branch

b. From target

sub $t4, $t5, $t6

add $s1, $s2, $s3

if $s1 = 0 then

add $s1, $s2, $s3

if $s1 = 0 then

sub $t4, $t5, $t6

Delay slot

a. From before

add $s1, $s2, $s3

if $s2 = 0 then

Delay slot

if $s2 = 0 then

add $s1, $s2, $s3

Exemple avec une instruction

Page 36: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Exemples de quelques processeurs Exemples de quelques processeurs pipelinés pipelinés

ARM7 (1990) : processeur pour applications embarqués à ARM7 (1990) : processeur pour applications embarqués à 3 étages de pipeline.3 étages de pipeline.– Les instructions sont exécutées dans le même ordre de leurs Les instructions sont exécutées dans le même ordre de leurs

lectures (in order)lectures (in order)

FETCH

DECODE

EXECUTE

Instruction fetched from memory

Decoding of registers used in instruction

Register(s) read from Register BankShift and ALU operationWrite register(s) back to Register Bank

PC

PC - 4

PC - 8

Page 37: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Pipeline sur le PentiumI (1995)Pipeline sur le PentiumI (1995) Les étapes (pipeline) du Pentium I (instructions Les étapes (pipeline) du Pentium I (instructions

arithmétiques entières)arithmétiques entières)– Prefetch. Chargement des instructions du cache Prefetch. Chargement des instructions du cache

(ou de la mémoire) dans les tampons de pré-(ou de la mémoire) dans les tampons de pré-chargement.chargement.

– Decode 1. Décodage de l’instruction. Decode 1. Décodage de l’instruction. – Decode 2. Calcul de l'adresse des opérandes Decode 2. Calcul de l'adresse des opérandes

présentes en mémoire. présentes en mémoire. – Execute. Exécution des instructions et accès à la Execute. Exécution des instructions et accès à la

mémoire. mémoire. – Write Back. Modification de l'état du processeur Write Back. Modification de l'état du processeur

par l'achèvement de l'exécution des instructions. par l'achèvement de l'exécution des instructions.

Pipeline de 10 étages sur l’Athlon, 12 étages sur Pipeline de 10 étages sur l’Athlon, 12 étages sur le Pentium III et le Pentium III et

20 étages sur le pentium IV20 étages sur le pentium IV

Page 38: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Micro-acrhitecture Pentium4Micro-acrhitecture Pentium4

Page 39: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Pipeline sur MIPS R3000 et Pipeline sur MIPS R3000 et R4000R4000

Le MIPS R3000 implémente un pipeline de cinq étages Le MIPS R3000 implémente un pipeline de cinq étages typique d'un processeur RISC traditionnel (chargement typique d'un processeur RISC traditionnel (chargement de l'instruction, décodage, exécution ou calcul de de l'instruction, décodage, exécution ou calcul de l'adresse, accès à la mémoire, mise à jour du banc de l'adresse, accès à la mémoire, mise à jour du banc de registres). registres).

La gestion des interblocages (aléas de données) au La gestion des interblocages (aléas de données) au sein du pipeline est effectuée par logiciel. sein du pipeline est effectuée par logiciel.

Le MIPS R4000 est le premier des processeurs RISC à Le MIPS R4000 est le premier des processeurs RISC à mettre en œuvre la technique du superpipeline.mettre en œuvre la technique du superpipeline.– Division de chaque étage du pipeline en sous phases.Division de chaque étage du pipeline en sous phases.

Les étages critiques ont été divisés en deux, voire en Les étages critiques ont été divisés en deux, voire en trois, pour permettre à ce processeur d'atteindre des trois, pour permettre à ce processeur d'atteindre des fréquences élevées. Le pipeline a au total une fréquences élevées. Le pipeline a au total une profondeur de huit étages. profondeur de huit étages.

Page 40: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Le pipeline sur les processeurs Le pipeline sur les processeurs Alpha 21064Alpha 21064

le DEC 21064 utilise la technique du superpipeline le DEC 21064 utilise la technique du superpipeline avec un pipeline de sept étages. Les quatre premiers avec un pipeline de sept étages. Les quatre premiers servent au chargement des instructions, à leur servent au chargement des instructions, à leur décodage, à la prédiction de branchement ainsi qu'à décodage, à la prédiction de branchement ainsi qu'à la résolution des conflits sur un processeur la résolution des conflits sur un processeur superscalaire de degré deux. superscalaire de degré deux.

Ces quatre premiers étages sont dit statiques dans la Ces quatre premiers étages sont dit statiques dans la mesure où les instructions peuvent attendre à ce mesure où les instructions peuvent attendre à ce niveau la résolution des conflits de ressources, par niveau la résolution des conflits de ressources, par opposition aux étages d'exécution dits dynamiques, opposition aux étages d'exécution dits dynamiques, et dans lesquels la phase d'exécution des instructions et dans lesquels la phase d'exécution des instructions ne peut être interrompue. Ces quatre premiers ne peut être interrompue. Ces quatre premiers étages sont donc communs aux pipelines entier et étages sont donc communs aux pipelines entier et flottant. Le pipeline flottant du DEC 21064 a une flottant. Le pipeline flottant du DEC 21064 a une profondeur de dix étages. profondeur de dix étages.

Page 41: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

PowerPC 603PowerPC 603 PowerPc : Les pipelines d'exécution des PowerPc : Les pipelines d'exécution des

instructions entières et flottantes ont une instructions entières et flottantes ont une profondeur respective de cinq et six étagesprofondeur respective de cinq et six étages

Page 42: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

PowerPc 970 (alias G4)PowerPc 970 (alias G4)Execution core• Support for up to 215 in-flight instructions• Simultaneous issue of up to 10 out-of-order operations:

•–One Velocity Engine permute operation (SIMD)•–One Velocity Engine arithmetic logic operation (SIMD)•–Two floating-point operations•–Two fixed-point register-to-register operations•–Two load or store operations•–One condition register operation•–One branch operation

• 64K L1 instruction cache; 32K L1 data cache• 512K internal L2 cache• Support for up to eight outstanding L1 cache line misses• Hardware-initiated instruction prefetching from L2 cache• 58 million transistors• Maximum core frequency: 2GHz

Page 43: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

P4 : un pipeline à 20 étages P4 : un pipeline à 20 étages

Page 44: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Pipeline du core-DuoPipeline du core-Duo

Page 45: Smail.Niar@univ-valenciennes.fr Chapitre2 La technique du Pipeline Architecture Des Ordinateurs Master Info Première Année Master1/IUP 3

[email protected]

Plus de détails : Plus de détails :

Intel P4 :Intel P4 :– http://www.hardware.fr/html/articles/lire.php3?article=283http://www.hardware.fr/html/articles/lire.php3?article=283

http://www.active-hardware.com/francais/reviews/http://www.active-hardware.com/francais/reviews/processor/pentium4-2fr.htmprocessor/pentium4-2fr.htm

PowerPc :PowerPc :– http://www.rs6000.ibm.com/resource/technology/603.htmlhttp://www.rs6000.ibm.com/resource/technology/603.html

Cours du Pr Sanchez , Ecole Polytechnique de Cours du Pr Sanchez , Ecole Polytechnique de Lausanne Lausanne – http://lslwww.epfl.ch/pages/teaching/cours_lsl/ao/home.htmlhttp://lslwww.epfl.ch/pages/teaching/cours_lsl/ao/home.html