+ All Categories
Home > Documents > 003_pipeline_2-2

003_pipeline_2-2

Date post: 17-Nov-2015
Category:
Upload: frankleprof
View: 214 times
Download: 0 times
Share this document with a friend
Description:
revisions
Popular Tags:
34
Limitations du Pipeline NSY 104
Transcript
  • 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


Recommended