retour à l'accueil dernière actualité articles interviews qcm dictionnaires bibliothèque forums inscription membre profile recherche sauvegardes contacts aides
entete 0titre de la page
menu du haut




Longueur des pipelines et performance
 Auteur : Julien Sébot Dernière révision : 07 Mai 2005
Faire un commentaire :   0 message(s)








Introduction
   

On entend beaucoup parler de la longueur du pipeline des microprocesseurs, récemment tout le monde semble s'accorder sur l'idée que les pipelines courts sont plus adaptés, mais cela n'a pas toujours été le cas. Pourquoi, comment, qu'est-ce qui détermine la longueur d'un pipeline, je vais essayer de vous éclairer un peu sur le sujet.

Bonne lecture :)





Articles récents sur les pipelines
   

Pour cet article je me suis essentiellement basé sur les 3 articles suivants (en anglais) datant respectivement de 2000, 2002 et 2003 et des observations faites au cours de ces dernières années :

Je vous recommande la lecture de ces articles a posteriori si vous maîtrisez assez bien les concepts utilisés en architecture des microprocesseurs, sinon je vous demande de me croire :).

Ce que tous 3 cherchent à établir est quelle est la meilleure profondeur de pipeline pour un microprocesseur pour un ensemble de contraintes données. Analyser les résultats de ces articles aujourd'hui est un exercice facile, et je ne désire pas que mes mots soient éventuellement interprétés comme une critique des travaux des auteurs respectifs.

Pour le principe de base du fonctionnement d'un pipeline dans un microprocesseur, vous pouvez lire le cours sur la prédiction de branchement. La raison fondamentale plaidant en faveur de l'allongemement des pipelines est qu'en décomposant chacune des tâches à accomplir en tâche très simple on réduit le temps mis pour l'exécution de chacune des tâches ce qui correspond à une augmentation de la fréquence. Plus le pipeline est long, meilleure doit être la prédiction de branchement pour conserver un temps d'exécution en cycle constant. On peut donc établir une courbe pour une application donnée (ou un ensemble de benchmarks ) représentant la performance en fonction de la profondeur du pipeline, et chercher le point le plus haut de la courbe pour un prédicteur de branchement choisi.





Pipelines longs
   

C'est ce que Sprangle fait dans l'article de 2000, il prend en compte de multiples paramètres dans son analyse, comme le fait que de doubler la profondeur du pipeline ne multiplie pas la fréquence par 2 car l'ajout de chaque étage a un surcoût. Il mentionne aussi qu'il omet le surcoût lié à la complexification des algorithmes qui doivent être découpés en rondelles afin d'allonger le pipeline.

Il arrive à la conclusion (avec des données de départ de très bonne qualité étant donné qu'il est un des architectes du Pentium 4) que la profondeur de pipeline optimale d'un microprocesseur similaire au Pentium 4 est de 52 étages, avec une fréquence environ 2 fois plus élevée que Willamette dans le même procédé de fabrication. Son analyse montre aussi l'importance croissante des performances de la mémoire et des caches quand on augmente les performances de calcul. Ce dernier résultat est indépendant de la fréquence, et se rapporte juste à la loi de Amdahl, si l'on décompose le temps d'exécution en temps de calcul et temps d'accès à la mémoire, on voit qu'en accélérant les calculs on augmente l'impact de la mémoire.





Le power met fin à la course à la fréquence
   

Que s'est-il donc passé entre 2000 et 2005 (depuis la publication de l'article) qui fait que ce raisonnement ne semble plus d'actualité ? En effet Intel semble avoir abandonné la course à la fréquence avec des pipelines longs et généralise l'approche multicore avec des cores à relativement faible fréquence. La réponse évidente aujourd'hui est la puissance électrique dissipée. En effet le budget en power disponible pour un microprocesseur a cessé d'augmenter, introduisant un nouveau paramètre dans l'équation. Si l'on considère la version pessimiste des prévisions de performances de Sprangle soit 30% pour une fréquence doublée et que cette machine doit travailler en dissipant autant que la machine de référence, on va devoir réduire le voltage et la fréquence du microprocesseur... L'efficacité de cette technique est généralement d'un pourcent de performance pour 3% de power, si l'on ramene ça à 30% de performances pour 100% de power (fréquence x2, sans compter les surcoûts associés aux pipelines longs) on voit que à power constant la machine à pipeline long va avoir à peu près les mêmes performances que la précédente.

C'est un résumé simpliste de ce qui est arrivé à l'architecture P4 récemment, l'impossibilité de dissiper plus a limité leur montée en fréquence et malgré des changements de procédé de fabrication, a lissé leur courbe de performance.

Les deux articles suivants d'IBM repartent sur la même analyse, mais utilisent comme unité de performance la performance au cube divisée par le power de manière à modéliser les contraintes récentes (dans le monde des PC et serveurs, pas dans l'embarqué) de dissipation. Ils arrivent à une conclusion inversée par rapport à celle de Sprangle, que la profondeur de pipeline optimale est entre 7 et 12 étages (suivant les articles et l'évolution des courants de fuite dans les procédés de fabrication) ce qui correspond approximativement à la moitié du pipeline de P4, et justifie leurs choix pour les architectures Power et PowerPC. On notera en particulier que dans leurs analyses, les applications entières sur lesquelles ils basent leurs choix demandent des pipelines plus courts, l'optimal se situant à quelques étages de plus pour les applications Floating Point. Le pentium M et l'AMD K8 se situant dans ces environs.





Conclusion
   

Les pipelines des Pentium M et le K8 ont-ils une profondeur proche de l'optimal aujourd'hui ? Probablement, mais demain ils peuvent se retrouver trop courts ou trop longs suivant l'évolution des procédés de fabrication et des techniques de design. En effet une réduction importante des surcoûts liés à l'ajout d'un étage de pipeline tout comme une augmentation imprévue des courants de fuite pourraient donner une nouvelle vie aux pipelines longs (un microprocesseur à haute fréquence avec peu de transistors est plus avantageux qu'un microprocesseur à basse fréquence avec beaucoup de transistors quand les courants de fuite sont importants), comme l'inverse pourrait contraindre un retour à des pipelines encore plus courts.




YOUM
(analyseur syntaxique temps réel)
Nombre de définitions trouvées
28
Multi-dico par texte : actif   -   Multi-mots par définition : 4






fonction
menu de droite
fin de menu

qcm du mois
Télescope spatial Hubble
fin qcm


Page générée en : 0.009 secondes
ligne
Technologies Onversity : Hydrogen 1.0 (moteur de base de données) - SE.EN 1.0 (moteur de recherche) - YOUM 2.0 (analyseur syntaxique temps réel)
Tous droits réservés à Jean-François MAQUINÉ
ligne