Date post: | 17-Nov-2015 |
Category: |
Documents |
Upload: | frankleprof |
View: | 214 times |
Download: | 0 times |
Limitations du Pipeline
NSY 104
Jrme Dupire NSY104
Dtection des dpendances2 instructions parallles
peuvent sexcuter dans le pipelinesans crer de suspension
2 instructions dpendantes ne sont pas paralllesElles doivent sexcuter dans lordreAvec un recouvrement partiel possible
3 types de dpendancesde nomde donnede contrle
Dpendances
Jrme Dupire NSY104
Les dpendances peuvent causer des alasLes alas peuvent causer des suspensions
Proprits de lorganisation du pipelineDcoupage des tages par exemple
Une dpendanceIndique la possibilit dun alaDtermine lordre dexcution des oprationsLimite la quantit de paralllisme
Objectifs:Identifier la dpendance et viter lalaEliminer la dpendance (rorganiser le code)
Dpendances
Jrme Dupire NSY104
Interviennent quand Une instruction a utilise le rsultat de linstruction bUne 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 identifierCirculation via des cases mmoires
10 (R1) = 20 (R2)
Les dpendances de donnes
Jrme Dupire NSY104
Interviennent quand des instructions indpendantes utilisent le mme nom de registre
la mme case mmoire
Anti-dpendance entre 2 instructions a et bQuand b crit dans un emplacement lu par a
Dpendance de sortieQuand a et b crivent dans le mme emplacement
Le renommage permet de contourner ces obstaclesChanger les contenants
A la vole ou statiquement, la compilation
Les dpendances de nom
Jrme Dupire NSY104
LAE (lecture aprs criture)Le plus frquent
EAL (criture aprs lecture)
EAE (criture aprs criture)
LAL (lecture aprs lecture) nest pas un alaPas de modification
Les alas de donnes
Jrme Dupire NSY104
CodeADD R1,R2, R3SUB 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
Les alas de donnes
Jrme Dupire NSY104
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
Les alas
Jrme Dupire NSY104
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 mcanismeet slectionne la valeur envoye
plutt que celle lue dans le registre source
Les alas de donnes
Jrme Dupire NSY104
Les alas de donnes
IF ID EX WBMEM
IF ID EX WBMEM
IF ID EX WBMEM
IF ID EX WBMEM
IF ID EX WBMEM
ADD R1,R2,R3SUB R4,R1,R5AND R6,R1,R7OR R8,R1,R9
WB ID
Ecriture registre 1re moiti cycle
Lecture registre 2me moiti cycle
Jrme Dupire NSY104
Cela permet dviter des suspensions du pipeline
On peut gnraliser ces chemins
vers dautres tages du pipelineADD R1,R2,R3
LD R4,0(R1)
ST R4,10(R1)
Les alas de donnes
IF ID EX WBMEM
IF ID EX WBMEM
IF ID EX WBMEM
Jrme Dupire NSY104
Certains alas ne peuvent tre rsolusSuspension du pipeline incontournable
Exemple
Les alas de donnes
IF ID EX WBMEM
LD R1, 0(R2)SUB R4,R1,R5AND R6,R1,R7OR R8,R1,R9
IF ID EX WBMEM
IF ID EX WBMEM
IF ID EX WBMEM
Jrme Dupire NSY104
Les alas de donnes
LD R1, 0(R2)SUB R4,R1,R5AND R6,R1,R7OR R8,R1,R9
IF ID EX MEM WB
IF ID Noop EX MEM WB
IF Noop ID EX MEM WB
Noop IF ID EX MEM WB
Insertion dun cycle de suspension (No-Op)
Jrme Dupire NSY104
Peuvent tre plus pnalisants que les alas de donnesDe 10 30% de rduction de performance
Le branchement Modifie le CP avec autre chose que CP+4 (longueur de linstruction)
BRANCHEMENT PRISRptition de ltape IF
Rupture de la squence
Laisse lexcution se drouler en squence (CP+4)BRANCHEMENT NON PRISPas de suspension
Linstruction qui a t charge ensuite est la bonne.
Les alas de contrle
Jrme Dupire NSY104
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
Les alas de contrle
IF ID EX M E M
W B
N o
o p
IF ID E X
M E M
W B
IF ID EX M E M
W B
IF ID EX M E M
W B
Jrme Dupire NSY104
Par le schma de prdiction non pris
Traite tous les branchements comme non pris
Chargement en squence
Si un branchement pris apparatAnnulation de linstruction charge
Chargement de la cible
Les alas de contrle
IF ID EX M E M
W B
IF N o
o p
N o
o p
N o
o p
N o
o p
IF ID E X
M E M
W B
IF ID EX M E M
W B
Jrme Dupire NSY104
Par le schma de prdiction prisTraite tous les branchements comme pris
Ds que le branchement est dcodOn lit linstruction destination
On commence lexcution
Dans notre exemple 5 tagePas dintrt
On ne connait pas ladresse de destination avant de savoir sil pris ou non
Dans dautres schmas de pipeline
Les alas de contrle
Jrme Dupire NSY104
Techniques matrielles ou logicielles pour parallliserTechniques matrielles, dynamiques
majoritairesTechniques logicielles, statiques
compilateurinformatique enfouie, IA64, Itanium
Paralllisme dans un bloc dinstructions sans branchement est faible
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
Paralllisme des instructions
Jrme Dupire NSY104
On peut exploiter le paralllisme de boucleParalllisme entre les itrations dune boucle
Pour en dgager un paralllisme dinstructions
MthodesDrouler la boucle
la compilation
Dynamiquement (matriel)
Utilisation dinstructions vectoriellesOprant sur une suite dlments de donnes
Paralllisme des instructions
Jrme Dupire NSY104
Limitation du pipelineLancement 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 dynamiqueCasser ce blocage en permettant le lancement dinstructions sans dpendance
out of order (OOO )
ExempleDIV R0, R2, R4
ADD R10, R0, R8
SUB R12, R8, R14
Lordonnancement dynamique
Jrme Dupire NSY104
Nouvel aspect grerLe lancement non ordonn entrane une terminaison non ordonne
Apparition des alas qui nexistent pas dans le pipeline ordonnEAL
EAE
Division de ltage DI en 2 partiesLancement
Dcodage de linstruction, test des alas structurels
Lecture oprandesAttente de la fin des alas de donnes, lecture des oprandes
Lordonnancement dynamique
Jrme Dupire NSY104
Par tableauToutes 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
Lordonnancement dynamique
Jrme Dupire NSY104
Lancement si une unit fonctionnelle est libre pour linstructionet quaucune autre instruction active na le mme registre destinationle tableau lance linstruction vers lunit fonctionnelle
Lecture des oprandesLe 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 critureou 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.
Lordonnancement dynamique
Jrme Dupire NSY104
Excutionlunit 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 rsultatune fois que le tableau sait que lunit fonctionnelle terminson excution.
Lordonnancement dynamique
Jrme Dupire NSY104
Mthode de TomasoluIdentifier les dpendances dinstructions
Permettre lexcution ds que les oprandes sont disponibles Evite les alas LAE
Renommage des registresEvite les alas EAL et EAE
Bus Commun de Donnes (BCD)
Stations de rservationFournissent le service de renomage de registre
Mmorisent les oprandes des instr. en attente de dmarrageDs quil est disponible
Ne passe plus par les registres originaux
Lordonnancement dynamique
Jrme Dupire NSY104
Mthode de Tomasolu3 tapes pour chaque instruction
Lancement (Renome les registres limine EAL et EAE)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
ExcutionTous les oprandes sont disponibles: lancer lexcution
Sinon, continuer de les attendre (limine LAE)
Ecriture du rsultatRsultat disponible: criture sur le BCD
sur le banc de registres
dans les stations qui lattendent
Lordonnancement dynamique
Jrme Dupire NSY104
Lordonnancement dynamiqueInstruction Lancement Excution Ecriture
LD F6, 34(R2) X X X
LD F2, 45(R3) X X
MUL F0,F2,F4 X
SUB F8,F2,F6 X
DIV F10,F0,F6 X
ADD F6,F8,F2 X
Nom Occup Op Vj Vk Qj Qk A
Load1 N
Load2 O Chargemen
t
45+reg[R3]
Add1 O SUB Mem[34+reg[R2]] Load2
Add2 O ADD Add1 Load2
Add3 N
Mul1 O MUL Reg[F4] Load2
Mul2 O DIV Mem[34+reg[R2]] Mult1
Champ F0 F2 F4 F6 F8 F10
Qi Mult1 Load2 Add2 Add1 Mult2
Etat quand le premier chargement est termin
et crit
Jrme Dupire NSY104
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
La prdiction de branchement
Jrme Dupire NSY104
Version amliore avec un prdicteur 2 bitsNcessite 2 erreurs conscutives pour tre permut
La prdiction de branchement
Prdit Pris11
Prdit Pris10
Prdit Non Pris01
Prdit Non Pris00
Jrme Dupire NSY104
Permettent lexcution de plusieurs instructions en mme tempsOn duplique le matriel pour avoir plusieurs chemins de traitement
Gnralement combin au pipeline
Les processeurs superscalaires
Jrme Dupire NSY104
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 ordonnancementStatique (compilateur)
Dynamique (matriel)
Les processeurs superscalaires
Jrme Dupire NSY104
Very Long Instruction WordAlternative au superscalaire pur
Sappuie sur les compilateurs pour rorganiser le codeEn 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
Lapproche VLIW
Jrme Dupire NSY104
Lapproche VLIW
Jrme Dupire NSY104
Compatibilit du code binaireCompilation trs proche
Du jeu dinstruction
De la structure pipeline
Diffrents matriel = compilations diffrentes
Lapproche VLIW
Diapositive numro 1Diapositive numro 2Diapositive numro 3Diapositive numro 4Diapositive numro 5Diapositive numro 6Diapositive numro 7Diapositive numro 8Diapositive numro 9Diapositive numro 10Diapositive numro 11Diapositive numro 12Diapositive numro 13Diapositive numro 14Diapositive numro 15Diapositive numro 16Diapositive numro 17Diapositive numro 18Diapositive numro 19Diapositive numro 20Diapositive numro 21Diapositive numro 22Diapositive numro 23Diapositive numro 24Diapositive numro 25Diapositive numro 26Diapositive numro 27Diapositive numro 28Diapositive numro 29Diapositive numro 30Diapositive numro 31Diapositive numro 32Diapositive numro 33Diapositive numro 34