Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parPascal Leonard Modifié depuis plus de 10 années
1
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline Les systèmes modernes utilisent tous des architectures pipelines – Pourquoi?
2
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Matière couverte Principes de base des systèmes pipelines Utilisation de pipeline dans un microprocesseur simple Problèmes rencontrés
3
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Exemple: le lavage du linge Soient 4 étudiants qui désirent faire leur lavage Il y a une laveuse, une sécheuse, et une table pour plier le linge Le lavage prend 30 minutes Le séchage prend 40 minutes Le pliage prend 20 minutes Si lopération commence à 6h00 du soir, à quelle heure termineront-ils?
4
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lavage du linge: 1ère itération L: 30 S: 40 P: 20 4 * (30 + 40 + 20) = 360 minutes On termine à minuit
5
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lavage du linge: 2e itération: pipeline L:30, S: 40, P: 20 On superpose le lavage, séchage et pliage: 30 40 30 70 20 40 30 110 20 40 30 150 20 40 190 20 210 On termine à 21h30 Régime permanent: 100 min/pers
6
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lavage du linge: 3e itération – sécheuse/plieuse L:30, SP: 50 (une sécheuse/plieuse): SP = 50, au lieu de S + P = 40 + 20 = 60 30 50 30 80 50 30 130 50 30 180 50 230 On termine à 21h50 Régime permanent: 100 min/pers
7
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lavage du linge: 4e itération: 2 sécheuses L:30, S1: 20, S2: 20, P: 20 180 20 30 20 60 30 20 90 20 30 20 120 20 140 20 160 On termine à 21h00 Régime permanent: 110 min/pers
8
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lavage du linge: 5e itération: 1 sécheuse « haute température » L:30, S1: 15, S2: 20, P: 20 180 20 30 15 60 20 160 30 20 90 15 30 20 120 15 20 140 15 On termine à 21h00 Régime permanent: 110 min/pers
9
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lavage du linge: 6e itération: 2 sécheuses « haute température » L:30, S1: 15, S2: 15, P: 20 170 20 30 60 15 30 90 20 15 30 120 20 15 20 150 15 On termine à 20h50! Régime permanent: 80 min/pers
10
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Leçons du pipeline de lavage Le pipeline naméliore pas la latence. Il améliore le temps moyen par tâche (throughput) La vitesse du pipeline est limitée par létage le plus lent Plusieurs tâches se font en parallèle Accélération possible: nombre détages Les durées détage inégales limitent laccélération Le temps de remplir et de vider le pipeline réduit laccélération
11
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Le processeur DLX (De Luxe)
12
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Vue « pipeline » du DLX
13
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines La loi de Amdahl N = (performance avec amélioration) (performance sans amélioration) = 1 (1 – Fraction améliorée) + Fraction (améliorée) Accélération (améliorée)
14
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Performance: principe de base Comment mesurer et comparer la performance? X est N fois plus rapide que Y veut dire: N = (temps dexécution de Y) (temps dexécution de X) On doit distinguer le temps de réponse pour une tâche du temps moyen de réponse (throughput)
15
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Équation de la performance dun CPU Temps CPU = coups dhorloge dun programme multiplié par la période de lhorloge Soit IC = Instruction Count = Nombre dinstructions dun programme Soit CPI = Clock cycle Per Instruction = coups dhorloge dun programme IC Alors: temps CPU = IC * CPI * période de lhorloge
16
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Le pipeline – principes de base Une instruction par coup dhorloge Linformation doit être propagée dun étage à lautre Il ne peut y avoir de conflit de ressources Lajout de registres (ou de latches) a un impact sur la période de lhorloge
17
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Le DLX – pipeline à 5 étages
18
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Larrêt temporaire du pipeline (stall) Dans certains cas, on doit arrêter temporairement un ou plusieurs étages dun processeur: « cache miss » Problème local à une instruction
19
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Impact des « stalls » sur la performance Amélioration = CPI(sans) * période (sans) CPI(avec) période (avec) CPI(avec) = 1 + stall / instruction Amélioration = CPI(sans) 1 + stall / instruction Amélioration = profondeur du pipeline 1 + stall / instruction
20
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Les obstacles majeurs au pipeline Problèmes structuraux Problèmes de dépendances de données Problèmes de contrôle
21
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Exemple de problème de structure
22
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Effet dun problème de structure sur les stall
23
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipelines: classification des problèmes de dépendance de données RAW (Read after Write): instruction subséquente lit la source avant que linstruction précédente lait écrite. Problème résolu avec « forwarding » WAW (Write after Write): instruction subséquente tente décrire une destination avant que linstruction précédente lait écrite. Ce type de problème existe dans les pipelines où lécriture se fait à plus dun endroit WAR (Write after Read): instruction subséquente écrit la destination avant que linstruction précédente ne lait lue. Ce type de problème peut apparaître lorsquil y a des écritures hâtives et des lectures tardives
24
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Problème de dépendance de données RAW
25
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Solution au RAW: le « forwarding »
26
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Autre exemple de « forwarding »
27
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: Problèmes de données exigeant des retards (stalls) Soit la séquence dinstructions suivante: LWR1, 0 (R2) SUBR4, R1, R5 ANDR6, R1, R7 ORR8, R1, R9 La 1ère instruction est une lecture de la mémoire. La 2e utilise dans lALU la valeur lue en mémoire (MEM1 et ALU2 sont concurrentes) Solution: on utilise un dispositif matériel, le « pipeline interlock », pour détecter ce cas et introduire un retard (stall)
28
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Stalls: impact sur la performance Supposons que 30% des instructions sont des « load » Supposons que 50% des instructions qui suivent un « load » utilisent la valeur lue Le CPI de linstruction qui suit le « load » est de 1.5 (stall ½ du temps) Puisque 30% des instructions sont des « load », les CPI moyen devient: CPI = (0,7 * 1 + 0,3 * 1,5) = 1,15
29
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Certains « stalls » peuvent être évités, mais pas tous
30
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Effet dun « stall » sur le pipeline
31
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines La nécéssité des « stall » - exemple LWR1, 0(R1) IFID EXMEM WB SUB R4, R1, R5IF IDEX MEM WB AND R6, R1, R7 IFID EX MEM WB OR R8, R1, R9IF ID EX MEM WB LWR1, 0(R1) IFID EXMEM WB SUB R4, R1, R5IF IDstall EX MEM WB AND R6, R1, R7 IFstall ID EX MEM WB OR R8, R1, R9stall IF ID EX MEM WB
32
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: utilisation des compilateurs pour réduire les problèmes de dépendences Linstruction de haut niveau suivante: A = B + C cause un délai (stall) pour charger la 2e valeur (C) Solution: on tente, à laide du compilateur, déviter de générer du code où un « load » est immédiatement suivi par lutilisation du registre visé. Cette technique est appellée « pipeline scheduling » ou « instruction scheduling »
33
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Exemple de « pipeline scheduling » Soient les instructions suivantes: A = B + C D = E – F Le code suivant évitera les « stall »: LWRb, B LWRc, C LWRe, E ADDRa, Rb, Rc LWRf, F SWA, Ra SUBRd, Re, Rf SWD, Rd
34
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Réalisation du contrôle du pipeline du DLX Lorsquune instruction passe de ID à EX, on dit que linstruction est émise (issued). Dans le DLX, tous les problèmes de dépendances de données peuvent être détectés durant la phase ID. Sil y a un problème de dépendance, il ny a quà retarder lémission de linstruction. De même, on peut détecter durant la phase ID quels « forwarding » devront être faits, et à quels moments Pour pouvoir contrôler ces 2 opérations, il y a 4 cas à considérer: Pas de dépendance Dépendance qui exige un « stall » Dépendance qui exige un « forward » Dépendance dénouée delle-même
35
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: insertion de « stalls » Lorsquon détecte un problème de dépendance de données exigeant un « stall », il faut simplement faire 3 choses: Émettre un no-op à létage EX Recirculer létat de ID Conserver le même IF
36
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: insertion de « forward » Pour détecter la nécessité de faire un « forward », il y a un certain nombre de cas qui doivent être détectés dans le pipeline. Dans le DLX, il y a 10 cas à considérer pour les « forward sur les entrées de lALU Note: lajout de chemins de « forward » implique que la taille des multiplexeurs des destinations doit augmenter
37
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Cas à considérer pour le « forwarding » des entrées de lALU du DLX
38
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: délais causés par des problèmes de contrôle Lorsquon exécute un branchement (branch), limpact sur la performance peut être important. Dans le DLX tel que présenté jusquà maintenant, la modification du PC (lorsquun branchement est utilisé) ne se fait quà la fin de létage MEM. Le plus simple à faire est de retarder lexécution jusquà ce que le PC soit valide. Dans ce cas, on doit attendre 3 cycles dhorloge. Mais… Cext très coûteux! Pour réduire les délais des branchements, on peut faire 2 choses: Déterminer plus rapidement si le branchement est utilisé ou non Calculer le PC résultant plus rapidement
39
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: réduction des délais des branchements La solution simple est de retarder lexécution en présence de branchements, mais elle est coûteuse en termes de performance. Peut-on faire mieux?
40
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: réduction des délais de branchement
41
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: réduction des délais de branchement (2) On peut supposer que le branchement ne sera pas effectué. Dans ce cas, on continue tout simplement de lire des instructions pendant le calcul du branchement On peut supposer que le branchement sera effectué. On commence à lire les instructions dès que la destination du branchement est connue. Pour le DLX, ceci napporte rien, puisquon sait simultanément la destination et la décision de branchement
42
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: réduction des délais des branchements (3) On peut utiliser le branchement retardé (delayed branch). Dans le DLX, puisquil y a au maximum un délai dune instruction avant de connaître la décision de branchement, on utilise un « branch- delay slot ». Cest-à-dire que linstruction qui suit immédiatement celle de branchement est une instruction commue aux deux possibilités de branchement.
43
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: branchement retardé Il existe trois possibilités pour utiliser le « branch-delay slot »: Intervertir linstruction de branchement et celle qui la précède. Ceci ne fonctionne que si cette instruction naffecte pas le branchement Utiliser la première instruction du branchement effectué. Ne fonctionne que si cette instruction naffecte pas le branchement non-effectué Utiliser la première instruction du branchement non- effectué. Dual de la solution précédente. Que choisir? Tout dépend…
44
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Lutilisation du « branch-delay slot »
45
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: Branchement retardé (2) Que faire sil ny a pas dinstructions sans impact sur lautre branche? Solution: on peut inclure dans le matériel un système de reconnaissance et délimination des mauvaises instructions de « branch-delay slot ». Il suffit que le compilateur indique pour quelle branche linstruction du « branch-delay slot » fonctionne. Le processeur na quà comparer la prédiction du compilateur avec la décision réelle, et canceller linstruction si la prédiction est invalide.
46
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: prédiction des branchements Comment le compilateur peut-il décider des branchements? Étude du comportement des programmes en général (% général des branchements utilisés, vers lavant et vers larrière) Étude des résultats de lexécution du programme (souvent, système bi-modal)
47
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Performance des « branch-delay slots »
48
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Pipeline: pourquoi est-ce difficile à réaliser? Difficulté majeure: comment gérer les exceptions (interruptions)? Utilisation de périphériques Utilisation de services du système dexploitation Exceptions arithmétiques Fautes de pages Fautes de segmentation Etc. Difficulté dérivée: exceptions multiples, exceptions désordonnées
49
© 2001 Frédéric MailhotUniversité de Sherbrooke Systèmes pipelines Exemples dexceptions Requête dentrée/sortie Appel à une fonction de lOS à partir dune application Debuggage: tracing, breakpoints Dépassement arithmétique (overflow, underflow) Faute de page Mauvais accès à la mémoire Instruction non-définie Mauvais fonctionnement du matériel Problème dalimentation
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.