Professional Documents
Culture Documents
Principe du pipeline
Unit 1 Unit 2 Unit 3 Unit 4 Unit 5 Unit 6
1 2 3 4 5
Jean-luc.dekeyser@lifl.fr T6 T6 T6 T6 T6
Unit 1 2 3 4 5 6
Version 2013 T5 T5 T5 T5 T5 T5
1 2 3 4 5 6 7
FONCTIONNEMENT PIPELINE 1
T4
2
T4
3
T4
4
T4
5
T4
6
T4
7
T4
8
T3 T3 T3 T3 T3 T3 T3 T3
1 2 3 4 5 6 7 8 9
T2 T2 T2 T2 T2 T2 T2 T2 T2
T 11 T 21 T 31 T 41 T 51 T 61 T 71 T 81 T 91 T 10
1
temps 4
2 5
3 6
1
12/10/2012
Fetch
Augmentation du
Speed-up parallélisme
Sur un pipe n-étages, il faut: L'instruction prefetch permet au plus
n cycles pour obtenir le 1er résultat de doubler la vitesse du processeur.
pour s-1 résultats, il faut ensuite s-1 cycles.
Soit n+s-1 cycles pour s résultats
Exécution souvent plus long que le
(sur un processeur scalaire, il faut ns cycles) chargement.
Le Speed-up est égal à La recherche de parallélisme
S = Tscal /Tpipe = ns nécessite un découpage plus fin
n+s-1
S n quand s +
Souvent en 4 ou 5 étapes successives
9 12
2
12/10/2012
3
12/10/2012
21 24
4
12/10/2012
5
12/10/2012
Efficacité Fonctionnement
Pas de vidage de pipe Détection de la dépendance et
Optimisation du compilateur blocage de pipeline jusqu'à résolution.
70% des JUMP peuvent être suivis Autoriser le chargement des
d'une instruction RISC instructions qui sont indépendantes
(pas de data dépendance)
On ne retarde que les instructions
dépendantes.
31 34
Data dépendances
Exemple:
C = 2 * (A + [@100])
32 35
6
12/10/2012
37 40
Fonctionnement Fonctionnement
10 actions 10 actions
en parallèle 38 en parallèle 41
Efficacité Limitations
Par observation, en moyenne on peut Augmenter le parallélisme au niveau de
obtenir deux instructions à exécuter l’instruction
Compilateur ou Hardware
en parallèle.
5 limitations
On limite le degré du processeur à 3 Dépendance de flot
ou 5. (projet de degré à 16 sur Alpha - Dépendance procédurale
utilisation multi-user) Conflits sur ressources
Dépendance de sortie
Antidépendance
39 42
7
12/10/2012
43 46
44 47
45 48
8
12/10/2012
49 52
50 53
Accès et exécution
Exécution désordonnée désordonnés
Utile pour les instructions demandant Découplage des étages decode et execute
plusieurs cycles Un buffer d’instructions: Instruction Window
Exemple: floating point sur Motorola 88000 Decode place les instructions dans la fenêtre
Autant d’instructions en exécution qu’il y a Quand une UF devient libre elle obtient une
d’unités instruction exécutable dans la fenêtre:
Respect des dépendances de flot et ressource et dépendance
procédurale
Dépendance de sortie
51 54
9
12/10/2012
55 58
R4 = R3 + 1 Dépendance de sortie
R4b = R3b + 1
R3 = R5 +1 R3c = R5a +1
Antidépendance
R7 = R3 + R4 R7b = R3c + R4b
56 59
Accès et exécution
désordonnés Compilation
Decode Window Execute WriteBack Lorsque l'on ne peut exécuter autant
d'instructions que le degré du processeur,
certains pipelines restent en attente.
Le nombre d'instructions en cours
d'exécution dépend des dépendances de
données entre les instructions, et des conflits
d’accès aux ressources
Le travail du compilateur devient capital:
réorganisation du code...
57 60
10