Vous êtes sur la page 1sur 34

Limitations du Pipeline

NSY 104

Jrme Dupire

Dpendances

Dtection des dpendances

2 instructions parallles

2 instructions dpendantes ne sont pas parallles

peuvent sexcuter dans le pipeline


sans crer de suspension

Elles doivent sexcuter dans lordre


Avec un recouvrement partiel possible

3 types de dpendances
de nom
de donne
de contrle

NSY104

Jrme Dupire

Dpendances

Les dpendances peuvent causer des alas


Les alas peuvent causer des suspensions

Proprits de lorganisation du pipeline

Une dpendance

Dcoupage des tages par exemple

Indique la possibilit dun ala


Dtermine lordre dexcution des oprations
Limite la quantit de paralllisme

Objectifs:

Identifier la dpendance et viter lala


Eliminer la dpendance (rorganiser le code)

NSY104

Jrme Dupire

NSY104

Les dpendances de donnes

Interviennent quand
Une instruction a utilise le rsultat de linstruction b
Une instr. b a une dep. de donne avec linstr. c et que c a une dep. de
donne avec a.

Transitivit
Chaines de dpendances

Peuvent tre difficiles identifier

Circulation via des cases mmoires

10 (R1) = 20 (R2)

Jrme Dupire

Les dpendances de nom

Interviennent quand des instructions indpendantes utilisent


le mme nom de registre
la mme case mmoire

Anti-dpendance entre 2 instructions a et b

Dpendance de sortie

Quand b crit dans un emplacement lu par a


Quand a et b crivent dans le mme emplacement

Le renommage permet de contourner ces obstacles


Changer les contenants
A la vole ou statiquement, la compilation

NSY104

Jrme Dupire

Les alas de donnes

LAE (lecture aprs criture)

Le plus frquent

EAL (criture aprs lecture)


EAE (criture aprs criture)

LAL (lecture aprs lecture) nest pas un ala

Pas de modification

NSY104

Jrme Dupire

NSY104

Les alas de donnes

Code
ADD R1,R2, R3
SUB R4, R1, R5

Sans prcaution, une architecture pipeline permettrait SUB


de lire R1 alors que ADD na pas rang son rsultat.
Valeur errone

Solution (matrielle): lenvoi


drivation

Jrme Dupire

Les alas

Rappel
ADD R1,R2, R3
SUB R4, R1, R5
ADD R12, R5, R4

Les problmes viennent


des dpendances entre instructions
qui empchent leur paralllisation
Identification des alas lors de DI

NSY104

Jrme Dupire

Les alas de donnes

La valeur est disponible la fin de EX (tage 3)

On cr un moyen pour communiquer ce rsultat en avance


chemin matriel

Fonctionnement
Le rsultat UAL est toujours renvoy aux entres UAL
Depuis le registre EX/MEM
Depuis le registre MEM/WB
La logique de contrle dtecte ce mcanisme

et slectionne la valeur envoye


plutt que celle lue dans le registre source

NSY104

Jrme Dupire

NSY104

Les alas de donnes


IF

ADD R1,R2,R3
SUB R4,R1,R5
AND R6,R1,R7
OR R8,R1,R9

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

WB ID
Ecriture registre 1re moiti cycle
Lecture registre 2me moiti cycle

WB

Jrme Dupire

NSY104

Les alas de donnes

Cela permet dviter des suspensions du pipeline


On peut gnraliser ces chemins
vers dautres tages du pipeline

IF

ADD R1,R2,R3
LD R4,0(R1)
ST R4,10(R1)
ID

EX

MEM

WB

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

Jrme Dupire

NSY104

Les alas de donnes

Certains alas ne peuvent tre rsolus


Suspension du pipeline incontournable
Exemple

IF

LD R1, 0(R2)
SUB R4,R1,R5
AND R6,R1,R7
OR R8,R1,R9

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

IF

ID

EX

MEM

WB

Jrme Dupire

NSY104

Les alas de donnes

Insertion dun cycle de suspension (No-Op)


IF

LD R1, 0(R2)
SUB R4,R1,R5
AND R6,R1,R7
OR R8,R1,R9

ID

EX

MEM

WB

IF

ID

Noop

EX

MEM

WB

IF

Noop

ID

EX

MEM

WB

Noop

IF

ID

EX

MEM

WB

Jrme Dupire

NSY104

Les alas de contrle

Peuvent tre plus pnalisants que les alas de donnes


De 10 30% de rduction de performance

Le branchement

Modifie le CP avec autre chose que CP+4 (longueur de linstruction)

BRANCHEMENT PRIS
Rptition de ltape IF

Rupture de la squence

Laisse lexcution se drouler en squence (CP+4)

BRANCHEMENT NON PRIS


Pas de suspension

Linstruction qui a t charge ensuite est la bonne.

Jrme Dupire

NSY104

Les alas de contrle

Minimiser les pnalits des


branchements

Par le vidage du pipeline

ou gel du pipeline
Consiste supprimer (suspendre)
toutes les instructions aprs le
branchement
jusqu la connaissance de la
destination

IF ID EX M W
E B
M

N IF ID E
o
X
o
p

M W
E B
M

IF ID EX M W
E B
M
IF ID EX M W
E B
M

Jrme Dupire

NSY104

Les alas de contrle

Par le schma de prdiction non


pris

Traite tous les branchements


comme non pris

Chargement en squence

Si un branchement pris apparat

Annulation de linstruction
charge
Chargement de la cible

IF ID EX M W
E B
M
IF

N N N N
o o o o
o o o o
p p p p
IF ID

E
X

M W
E B
M

IF ID EX M W
E B
M

Jrme Dupire

NSY104

Les alas de contrle

Par le schma de prdiction pris

Traite tous les branchements comme pris


Ds que le branchement est dcod

Dans notre exemple 5 tage

On lit linstruction destination


On commence lexcution

Pas dintrt
On ne connait pas ladresse de destination avant de savoir sil pris ou non

Dans dautres schmas de pipeline

Jrme Dupire

NSY104

Paralllisme des instructions

Techniques matrielles ou logicielles pour parallliser

Techniques matrielles, dynamiques

Techniques logicielles, statiques

compilateur
informatique enfouie, IA64, Itanium

Paralllisme dans un bloc dinstructions sans branchement est


faible

majoritaires

Dpendances forte lintrieur du bloc

Pour un MIPS, la frquence moyenne des branchements est de


15 25%

Entre 2 branchements, 4 7 instructions en squence

Jrme Dupire

Paralllisme des instructions

On peut exploiter le paralllisme de boucle

Paralllisme entre les itrations dune boucle

Pour en dgager un paralllisme dinstructions

Mthodes

Drouler la boucle

la compilation
Dynamiquement (matriel)

Utilisation dinstructions vectorielles

Oprant sur une suite dlments de donnes

NSY104

Jrme Dupire

NSY104

Lordonnancement dynamique

Limitation du pipeline

Lancement et dexcution ordonns des instructions

Si une instruction est suspendue, tout le pipeline est affect


Pas de lancement possible dune instruction suivante

Principe de lordonnancement dynamique

Casser ce blocage en permettant le lancement dinstructions sans dpendance

out of order (OOO )

Exemple

DIV R0, R2, R4


ADD R10, R0, R8
SUB R12, R8, R14

Jrme Dupire

NSY104

Lordonnancement dynamique

Nouvel aspect grer

Le lancement non ordonn entrane une terminaison non ordonne

Apparition des alas qui nexistent pas dans le pipeline ordonn


EAL
EAE

Division de ltage DI en 2 parties

Lancement

Dcodage de linstruction, test des alas structurels

Lecture oprandes

Attente de la fin des alas de donnes, lecture des oprandes

Jrme Dupire

NSY104

Lordonnancement dynamique

Par tableau
Toutes les instructions traversent ltage de lancement dans lordre.
Elles peuvent passer dans ltage suivant

dans lordre,
tre suspendue
passer lune devant lautre

ordonnancement dynamique.

La technique du tableau est connue sous le nom de tableau de marques.

Le but du tableau est dexcuter les instructions ds que possible.


Si une instruction est suspendue, les suivantes peuvent tre excutes
condition

quil ny ait pas de dpendance


que les ressources ncessaires soient disponibles

Jrme Dupire

NSY104

Lordonnancement dynamique

Lancement
si une unit fonctionnelle est libre pour linstruction
et quaucune autre instruction active na le mme registre destination
le tableau lance linstruction vers lunit fonctionnelle

Lecture des oprandes

Le tableau de marques contrle la disponibilit des oprandes sources.


Un oprande source est disponible si aucune instruction active lance
auparavant ne va la modifier en criture
ou si aucune unit fonctionnelle active nest en train dcrire loprande
dans le registre.
Si les oprandes sources respectent cette condition, le tableau indique
lunit fonctionnelle quelle peut lire les oprandes et commencer
lexcution.
Cette tape termine le dcodage de linstruction.

Jrme Dupire

NSY104

Lordonnancement dynamique

Excution
lunit fonctionnelle commence lexcution la rception des
oprandes.
Quand le rsultat est prt, elle avertit que lexcution est
termine.
Cette tape utilise plusieurs cycles du pipeline.

Ecriture du rsultat
une fois que le tableau sait que lunit fonctionnelle termin
son excution.

Jrme Dupire

NSY104

Lordonnancement dynamique

Mthode de Tomasolu

Identifier les dpendances dinstructions

Permettre lexcution ds que les oprandes sont disponibles

Renommage des registres

Evite les alas LAE

Evite les alas EAL et EAE

Bus Commun de Donnes (BCD)

Stations de rservation
Fournissent le service de renomage de registre
Mmorisent les oprandes des instr. en attente de dmarrage

Ds quil est disponible


Ne passe plus par les registres originaux

Jrme Dupire

NSY104

Lordonnancement dynamique

Mthode de Tomasolu

3 tapes pour chaque instruction

Lancement (Renome les registres limine EAL et EAE)

Excution

Obtenir linstruction suivante (FIFO)


Lancer linstr. une station libre
Sinon, attendre la libration dune station (ala structurel)
Si les oprandes ne sont pas dans les registres, observer les units fonctionnelles
qui vont les produire
Tous les oprandes sont disponibles: lancer lexcution
Sinon, continuer de les attendre (limine LAE)

Ecriture du rsultat

Rsultat disponible: criture sur le BCD


sur le banc de registres
dans les stations qui lattendent

Jrme Dupire

NSY104

Lordonnancement dynamique
Instruction

Lancement

Excution

Ecriture

LD F6, 34(R2)

LD F2, 45(R3)

MUL F0,F2,F4

SUB F8,F2,F6

DIV F10,F0,F6

ADD F6,F8,F2

X
Op

Vj

Etat quand le premier chargement est


termin et crit

Champ

F0

F2

Qi

Mult1

Vk

F6

F8

F10

Load2

Add2

Add1

Mult2

Qj

Qk

Nom

Occup

Load1

Load2

Chargemen
t

Add1

SUB

Add2

ADD

Add3

Mul1

MUL

Reg[F4]

Load2

Mul2

DIV

Mem[34+reg[R2]]

Mult1

F4

A
45+reg[R3]

Mem[34+reg[R2]]

Load2
Add1

Load2

Jrme Dupire

NSY104

La prdiction de branchement

Rduire les suspensions dues aux dpendances de contrle

Solution la plus simple:

Tampon de prdiction de branchement

Table des historiques des branchements

Petite mmoire indexe par la partie basse de ladresse de linstruction de


branchement

Contient un bit pour indiquer la prise rcente de ce branchement

Jrme Dupire

NSY104

La prdiction de branchement

Version amliore avec un prdicteur 2 bits

Ncessite 2 erreurs conscutives pour tre permut

Prdit Pris
11

Prdit Pris
10

Prdit Non Pris


01

Prdit Non Pris


00

Jrme Dupire

NSY104

Les processeurs superscalaires

Permettent lexcution de plusieurs instructions en mme temps


On duplique le matriel pour avoir plusieurs chemins de traitement
Gnralement combin au pipeline

Jrme Dupire

Les processeurs superscalaires

La nature des limitations est comparable aux architectures


prcdentes
Degr de paralllisme intrinsque du code
Le cot de la logique de contrle
Le traitement des instructions de branchement

Optimisation par ordonnancement


Statique (compilateur)
Dynamique (matriel)

NSY104

Jrme Dupire

Lapproche VLIW

Very Long Instruction Word


Alternative au superscalaire pur
Sappuie sur les compilateurs pour rorganiser le code

En groupant des instructions parallles


En taggant le dpendances possibles

Longueur de mot de 64 bits et plus


Un mot regroupe plusieurs instructions parallles
Le matriel dispose de plusieurs units fonctionnelles

indpendantes

NSY104

Jrme Dupire

Lapproche VLIW

NSY104

Jrme Dupire

Lapproche VLIW

Compatibilit du code binaire


Compilation trs proche

Du jeu dinstruction
De la structure pipeline

Diffrents matriel = compilations diffrentes

NSY104