TD pipeline
TD1 : Exercices de statistiques descriptives. A- Statistiques descriptives
unidimensionnelles. Exercice 1 : Soit x une série statistique. Démontrer la
formule de ...
part of the document
ents et cinq cycles pour les opérations mémoire. On suppose que les fréquences relatives de ces opérations sont respectivement de 40%, 20% et 40%. On suppose qu'à cause des dispersions d'horloge et des temps d'établissement, le fait de pipeliner la machine ajoute 1ns de surcoût au cycle d'horloge. Sans perdre compte l'impact de la latence, quelle est l'accélération de l'exécution des instructions liée au pipeline ?
Le temps moyen d'exécution d'une instruction sur la machine non pipelinée est :
Tps d'exécution moyen d'une instruction = Cycle d'horloge * CPI moyen
= 10*((40%+20%)*4+40%*5) = 44ns.
Dans la machine pipelinée, l'horloge doit fonctionner à la vitesse de l'étage le plus lent plus le surcoût, ce qui fera 10+1 = 11 ns ; ceci est le temps moyen d'exécution d'une instruction. Ainsi l'accélération due au pipeline est :
Accélération = Tps moyen sans pipeline/ Tps moyen d'exécution avec pipeline
= 44/11=4 fois
exercice
On suppose que les temps utilisés par les cinq unités fonctionnelles qui opèrent dans chacun des cinq cycles sont les suivants : 10ns,8 ns, 10ns 10ns et 7ns. On suppose que le pipeline ajoute 1ns de surcoût. Quelle est l'accélération par rapport au chemin de données en un seul cycle ?
Puisque la machine non pipelinée exécute toutes les instructions en un seul cycle d'horloge, son temps moyen d'exécution d'une instruction est simplement le temps de cycle d'horloge. Ce temps de cycle est égal à la somme des temps d'exécution de chaque étape :
Tps d'exécution moyen d'instruction = 10+8+10+10+7 = 45ns
Le temps de cycle sur la machine pipelinée doit être le plus grand de tous les étages du pipeline 10ns plus le surcoût (1ns) soit un total de 11ns. Puisque le CPI est 1, cela donne un temps d'exécution moyen de 11 ns.
On a donc :
Accélération pipeline = Tps moyen d'exécution d'une instruction sans pipeline/Temps moyen d'exécution d'une instruction avec pipeline
= 45/11 = 4,1 fois.
Déroulement des instructions pipelinées
Indiquer les différents signaux à chaque étapes de pipeline pour la suite d'instructions suivante :
add $2,$3,$1
beq $6,$12,100
InstructionLignes de contrôle
étage exécutionLignes de contrôle
étage mémoire
Lignes de contrôle étage d'écritureRegDstUAL
Op1UAL
Op2UALSrcBranchementLire
MEMEcr
MemEcrire
RegMemversRegformat R110000010Lw000101011Swx0010010xBeqx0101000x
Performances
Performances des pipelines avec suspension
Les aléas empêchent linstruction suivante du flux dinstruction de sexécuter au cycle dhorloge prévu :
Les aléas sont :
Les aléas structurels interviennent lors de conflits de ressources, quand le matériel ne peut gérer toutes les combinaisons possibles de recouvrement dinstructions au moment de lexécution.
Les aléas de données interviennent quand une instruction dépend du résultat dune instruction précédente.
Les aléas de contrôle résultent de lexécution en pipeline des branchements et des autres instructions qui modifient le CP.
On a EMBED Equation.3
Exercice
Ragardons combien peut coûter laléa structurel de chargement. Supposons que les références données constituent 40% des instruction, et que le CPI idéal de la machine pipelinée est de 1 en ignorant laléa structurel. On suppose que la machine avec aléa structurel a une fréquence dhorloge qui est 1,05 fois plus élevée que celle de la machine sans aléa. Sans considérer dautres dégradations de performance, quel pipeline, avec ou sans al éa structurel, est le plus rapide, et de combien ?
Il y a plusieurs manière de resoudre ce problème. Le plus simple est peut être de calculer le temps moyen dune instruction sur les deux machines : Dabord, calculons laccélération du pipeline pour chaque machine en utilisant la formule :
EMBED Equation.3
Puisquil ny a pas de suspensions, le temps moyen dune instruction pour la machine idéale est simplement le temps de cycle idéal. Le temps moyen dune instruction pour la machine avec aléas structurel est :
EMBED Equation.3
La machine sans aléa structurel est de manière évidente plus rapide. On peut utiliser le rapport des temps moyens dexécution dune instruction pour dire quelle est de 1,33 fois plus rapide.
Pour éviter cet aléa structurel, le concepteur peut fournir un accès mémoire séparé pour les instructions, soit en divisant le cache en caches séparés pour les instructions et données.
Exercice
Supposons que 30% des instructions soient des chargements, et quune fois sur deux, une instruction qui suit une instruction de chargement dépende du résultat du chargement. Si cet aléa crée un délai dun seul cycle, de combien la machine pipelinée idéale (avec un CPI de 1), qui najoute pas de délai au pipeline, est-elle plus rapide que celle avec un pipeline réel ? Ignorer toutes les suspensions autres que celles du pipeline.
La machine idéale est plus rapide du rapport des CPI. Le CPI pour les instructions qui suivent un chargement est de 1,5, car elles sont suspendues une fois sur deux. Parce que les chargements représentent 30% des instructions, le CPI effectif est (0,7*1+0,3*1,5). La machine idéale est donc 1,15 fois plus rapide.
Les aléas de données
exercice
Considérons l'exécution pipelinée de ces instructions :
add r1,r2,r2
sub r4,r1,r5
and r6,r1,r7
or r8,r1,r9
xor r10,r1,r11
indiquer le nombre d'aléas de données.
exercice
même exercice avec :
add r1,r2,r2
sub r4,r3,r5
and r6,r1,r7
or r8,r1,r4
xor r10,r1,r11
Exercice
Pour la séquence d'instructions des exercices précédents indiquer les chemins d'envois et le nombre restant à traiter.
Tous les aléas ont disparus
add r1,r2,r2MIDIEXMERsub r4,r1,r5MIDInopnopnopEXMERand r6,r1,r7MInopnopnopDIEXMERor r8,r1,r9nopnopnopMIDIEXMERxor r10,r1,r11MIDIEXMERadd r1,r2,r2MIDIEXMERsub r4,r1,r5MIDIEXMERand r6,r1,r7MIDIEXMERor r8,r1,r9MIDIEXMERxor r10,r1,r11MIDIEXMERadd r1,r2,r2MIDIEXMERsub r4,r3,r5MIDIEXMERand r6,r1,r7MIDInopnopEXMERor r8,r1,r4MInopnopDIEXMERxor r10,r1,r11nopMIDIEXMERadd r1,r2,r2MIDIEXMERsub r4,r3,r5MIDIEXMERand r6,r1,r7MIDIEXMERor r8,r1,r4MIDIEXMERxor r10,r1,r11MIDIEXMER
Exercice
Mêmes questions que l'exercice REF _Ref462110218 \n 5.3 pour la séquence suivante
add r1,r2,r3
lw r4,0(r1)
sw 12(r1),r4
add r1,r2,r3MIDIEXMERlw r4,0(r1)MIDInopnopnopEXMERsw 12(r1),r4MInopnopnopnopnopnopDIEXadd r1,r2,r3MIDIEXMERlw r4,0(r1)MIDIEXMERsw 12(r1),r4MIDIEXMER
Tous les aléas ont disparus
Exercice
Même questions que l'exercice précédent pour la séquence :
lw r1,0(r2)
sub r4,r1,r5
and r6,r1,r7
or r8,r1,r9
lw r1,0(r2)MIDIEXMERsub r4,r1,r5MIDInopnopnopEXMERand r6,r1,r7MInopnopnopDIEXMERor r8,r1,r9nopnopnopMIDIEXMERlw r1,0(r2)MIDIEXMERsub r4,r1,r5MIDInopEXMERand r6,r1,r7MInopDIEXMERor r8,r1,r9nopMIDIEXMER
L'instruction de chargement peut envoi son résultat aux instructions and et or, mais pas à sub, puisque cela impliquerait d'envoyer le résultat "en remontant dans le temps ».
L'ordonnancement du compilateur pour les aléas de données
Exercice
générer le code qui évite les suspensions de pipeline pour la séquence suivante :
a = b+c;
d=e-f;
On suppose que les chargement on une latence de 1 cycle.
lw rb,b
lw rc,c
lw re,e instructions échangées pour éviter une suspension
add ra,rb,rc
lw rf,f
sw a,ra sw et lw intervertis pour éviter la suspension
sub rd,re,rf
sw d,rd
Les deux blocages des chargements lw rc,c vers add ra,rb,rc et lw rf,f vers sub rd,re,rf) ont été éliminés. Il existe une dépendance entre l'instruction UAL et le rangement, mais la structure du pipeline permet l'envoi du résultat. On remarquera que l'utilisation de registres différents dans les deux premières instructions était importante pour que cet ordonnancement soit correct. En particulier si e était chargée dans le même registre que b ou c, cet ordonnancement ne serait pas correct. En général, l'ordonnancement du pipeline peut augmenter le nombre de registres nécessaires.
Le pipeline PAGE 6