|
| Longueur des pipelines et performance | |

| | |
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. |


| | |
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.
|


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



 
|