Académique Documents
Professionnel Documents
Culture Documents
Tfaker PDF
Tfaker PDF
pipeline
NSY 104
Jérôme Dupire NSY104
Exemples d’opérations
Arithmétique & logique (addition, division, etc.)
Transfert de données (chargement, rangement)
Contrôle (branchement, saut, appel, etc.)
Système (appels OS, gestion memoire virtuelle)
Flottant (addition, division, comparaison,etc.)
Décimal (addition, multiplication, etc.)
Chaines (comparaison, recherche, etc.)
Graphique (pixel, vertex, etc.)
Jérôme Dupire NSY104
Exemples
MMX
3DNow!
SSE
AltiVec
Jérôme Dupire NSY104
C=A+B
Push A
Push B
Add
Pop C
Jérôme Dupire NSY104
C=A+B
Load A
Add B
Store C
Jérôme Dupire NSY104
C=A+B
Load R1, A
Add R3, R1, B
Store R3, C
Jérôme Dupire NSY104
C=A+B
Load R1, A
Load R2, B
Add R3, R2, R1
Store R3, C
Jérôme Dupire NSY104
Le processeur
Traitement normal (non pipelinée) du flot d’instructions
Branchement en 2 cycles
Peut se terminer à DI
Rangements en 4 cycles
Se termine à MEM
Autres en 5 cycles
Jérôme Dupire NSY104
Indicateurs de performance
Calcul du CPI (cycle per instruction)
Distribution des types d’instruction
Branchements : 12%
Rangements : 10%
Indicateurs de performance
L'exécution d'une instruction nécessite plusieurs temps de cycle, c'est ce que l'on
appelle le CPI (Cycles per Instruction ou nombre de cycles par instruction).
Le temps d'exécution d'un programme est alors donné par la formule suivante (si
on considère que toutes les instructions ont le même CPI) :
avec :
Texec : temp d'exécution du programme
Nins : nombre d'instructions
CPI : nombre de cycles par instructions
Tcycle : temps de cycle
Jérôme Dupire NSY104
Indicateurs de performance
L'ensemble des améliorations des microprocesseurs visent à diminuer le temps
d'exécution du programme.
Le pipeline
Idée générale
Lancer le traitement d’une instruction avant que la précédente
ne soit terminée
Recouvrement des instructions
On exploite le parallélisme entre les instructions d’un flot
d’instructions séquentielles
Optimiser le temps d’utilisation des différents éléments du
processeur.
Découpage des instructions en sous-parties élémentaires
En relation avec les étapes de traitement de l’instruction
Définition des étages du pipeline
« travail à la chaine »
Exécution des sous-parties élémentaires dans les étages
correspondants du pipeline.
Jérôme Dupire NSY104
Le pipeline
Le temps passé par une instruction dans un étage est appelé
(temps de) cycle processeur
La longueur d’un cycle est déterminée par l’étage le plus lent.
Souvent égal à un cycle d’horloge, parfois 2
Le pipeline
Exemple avec un pipeline à 5 étages :
1) Lecture de l’instruction (IF)
2) Décodage de l’instruction (ID)
3) Exécution de l’instruction (EX)
4) Accès mémoire (MEM)
5) Ecriture du résultat (WB)
Jérôme Dupire NSY104
Le pipeline
Jérôme Dupire NSY104
Le pipeline
Le pipeline
Le pipeline
Le pipeline
Le pipeline
Le pipeline
Le gain se situe au niveau du débit
Le temps de traitement d’une instruction n’est pas réduit.
Il est même souvent augmenté
Gestion du passage entre les étages
Temps de stabilisation
Le pipeline
Dans un cas idéal
L’accélération serait donnée par le nombre d’étages du pipeline
Tps moy. instruction NP / tps moy. instruction pipelinée
La loi d’Amdahl
La loi d'Amdahl, énoncée par Gene Amdahl, exprime le gain de
performance qu'on peut attendre d'un ordinateur en améliorant une
composante de sa performance. Sous sa forme générale elle indique
que le gain de performance égale le temps d'exécution d'une tâche
complète sans l'amélioration divisé par le temps d'exécution de la
même tâche avec l'amélioration.
Soit :
T le temps d'exécution d'un programme sur le système d'origine.
Ta le temps d'exécution du même programme sur le système
amélioré.
s est la fraction du temps T concernée par l'amélioration.
Ac est l'accélération obtenue par l'amélioration.
S est l’accélération globale
Ta = (1-S).T + (s.T/Ac)
Jérôme Dupire NSY104
La loi d’Amdahl
Jérôme Dupire NSY104
Le pipeline - Aléas
Les aléas structurels
Ils interviennent lors des conflits de ressources.
Conséquences possibles
Blocage du pipeline
Augmentation du CPI
Jérôme Dupire NSY104
Le pipeline - Aléas
Les aléas structurels
S’expliquent par le fait qu’une unité fonctionnelle n’est pas
complètement pipelinée
Ou qu’une ressource n’a pas été dupliquée suffisamment
Exemple d’un bus d’écriture unique dans les registres et un
besoin d’écriture simultané provoqué par 2 instructions
durant le même cycle d’horloge
Ce problème est généralement résolu en séparant la mémoire
où se trouvent les instructions de celle où se trouvent les
données.
Ceci est réalisé au niveau des caches de niveau 1. Le micro-
processeur doit alors avoir deux bus distincts pour accéder
simultanément aux deux caches.
Jérôme Dupire NSY104
Le pipeline - Aléas
Ces aléas peuvent amener à suspendre des opérations
Etage vacant: bulle (bubble = NOP - No OPeration)
Dans l’attente
De la libération de la ressource (structurel)
De la disponibilité de la valeur (donnée)
Jérôme Dupire NSY104
Le pipeline - Aléas
Exemple (aléa structurel à cause d’un seul bus mémoire données
et instructions)
LDR R7,R6,0
ADD R6,R6,1
ADD R0,R0,1
ADD R1,R1,1
Jérôme Dupire NSY104
Le pipeline - Aléas
Les aléas de données
S’expliquent par le fait que la temporalité des instructions est
modifiée par le pipeline
Le recouvrement des opérations peut provoquer
l’apparition d’états faux (lecture de valeurs erronées par
exemple)
ADD R1,R2,R3
SUB R4,R1,R5
AND R6,R1,R7
OR R8,R1,R9
Jérôme Dupire NSY104
Le pipeline - Aléas
Exemple (aléa de données)
LDR R1,R6,0
ADD R0,R1,R2
Jérôme Dupire NSY104
Le pipeline - Aléas
Le conflit d'accès à la mémoire se produit à chaque fois qu'une
instruction de chargement ou de rangement est exécutée (MA)
Le pipeline - Aléas
Exemples
A
ADD R1, R2, R3 // R1 = R2 + R3
STORE R1, 1000 // C(1000) = R1
B
MOV R1, #1000 // R1 = 1000
JUMP R1 // Saut