Revisiting Wide Superscalar Microarchitecture - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Theses Year : 2017

Revisiting Wide Superscalar Microarchitecture

Abstract

Depuis plusieurs décennies, la fréquence des processeurs à usage général n’a cessé d’augmenter grâce aux transistors de plus en plus rapides et aux microarchitectures avec des pipelines plus profonds. Cependant il y a environ 10 ans, à cause des courants de fuite et de la température, la finesse de gravure des processeurs a atteint sa limite physique. Depuis lors, la fréquence des processeurs n’a pas augmenté. Au lieu d’augmenter la fréquence du processeur, les fabricants ont intégré plus de coeurs sur une seule puce, agrandi la hiérarchie de caches et amélioré l’efficacité énergétique. Mettre plus de coeurs sur une seule puce a augmenté le rendement de la puce et bénéficie aux applications parallèles. Cependant, avoir plus de coeurs ne suffit pas. Il est également important d’accélérer les processeurs individuellement. En outre, la réduction de la consommation énergétique est devenue un objectif majeur lors de la conception d’une micro-architecture pour la haute performance. Certaines fonctionnalités ont été introduites dans les unités superscalaires principalement pour réduire la consommation énergétique. Un exemple de fonctionnalité est le tampon de boucles (“loop buffer”), qui est maintenant mis en oeuvre dans plusieurs micro-architectures superscalaires. Le but d’un tampon de boucle est d’économiser l’énergie dans le bloc avant du microprocesseur (cache d’instructions, prédicteur de branchements, décodeur, etc.) lors de l’exécution d’une boucle avec un corps assez petit pour tenir dans cette mémoire tampon spécifique. Pendant l’exécution d’une boucle, les instructions décodées sont fournies au bloc arrière directement depuis le tampon de boucle: le cache d’instructions, les tables de prédiction de branchement, et la plupart de la logique du bloc avant peuvent être en mode horloge fermée (clock gated), ce qui réduit la consommation énergétique de la partie avant. Si la fréquence du processeur reste constante, la seule possibilité laissée libre pour l’amélioration des performances des applications séquentielles dans les futurs processeurs est d’augmenter l’exploitation du parallélisme d’instructions (ILP). Certaines améliorations des micro-architectures (e.g., une meilleure prédiction de branchement) améliorent simultanément la performance et l’efficacité énergétique. Cependant, améliorer l’exploitation du parallélisme d’instructions a généralement un coût: augmentation de la surface de silicium, de la consommation d’énergie, des efforts de conception, etc. Par conséquent, la microarchitecture est modifiée lentement, incrément par incrément. En effet, les fabricants de processeurs ont fait des efforts continus afin d’exploiter davantage l’ ILP avec de meilleurs prédicteurs de branchements, de meilleurs préchargeurs de données, de plus grandes fenêtres d’instructions, ajout de registres physiques, et ainsi de suite. Par exemple, la micro-architecture Intel Nehalem peut émettre 6 micro-opérations par cycle à partir d’un tampon d’exécution (issue buffer) de 36 entrées, tandis que les plus récentes micro-architectures Intel Haswell peuvent émettre 8 micro-opérations par cycle à partir d’un tampon de 60 entrées. Cette thèse décrit ce que devraient être les unités superscalaires dans les 10 ans à venir et explore la possibilité d’exploiter le comportement des boucles afin de réduire la consommation énergétique au-delà du bloc avant. Certaines propositions ont été publiées notamment sur les accélérateurs de boucles et sur les unités superscalaires à bloc arrière non conventionnel. Il est soutenu que la taille de la fenêtre d’instructions peut être augmentée en combinant le regroupement (clustering) et la spécialisation des registres d’écriture (register write specialization). Une différence majeure avec les précédentes études sur les micro-architectures en grappe (Figure 1) est l’utilisation de grappes larges (wide issue clusters), contrairement aux études passées qui étaient principalement axées sur des petites grappes (narrow issue cluster). Le passage de petites grappes à des grappes larges n’est pas qu’un changement quantitatif, mais a aussi un impact qualitatif sur le problème de regroupement, et en particulier sur la politique de pilotage (steering policy). De précédentes études sur les politiques de pilotage ont montré que, tout en réalisant un bon équilibrage de charge, la réduction des communications inter-groupe est un problème difficile. L’une des conclusions d’une décennie de travaux sur les politiques de pilotage est que les plus simples tel que Mod-3 génèrent une perte significative du nombre d’instructions par cycle (IPC), alors que les politiques de pilotage qui minimisent la perte IPC sont trop complexes pour les implémentations matérielles. De facto, cette étude montre que considérer des grappes larges a un impact dramatique sur les performances de Mod-N, l’une des politiques de pilotage les plus simples. Mod-N envoie N instructions consécutives à une grappe, puis les N prochaines à une autre grappe, et ainsi de suite de façon circulaire. Baniasadi et Moshovos ont constaté que, pour les petites grappes, la valeur optimale de N est en général très faible et préconisent une politique Mod-3. Il semblerait qu’après l’article de Baniasadi et Moshovos, personne n’ait considéré la politique Mod-N autre que Mod-3. Force est de constater qu’avec des grappes larges, si la fenêtre d’instructions est assez grande et compte tenu d’un délai inter-groupe réaliste, la valeur optimale de N est beaucoup plus grande que trois, généralement plusieurs dizaines. Grâce à la localité des données dépendantes, une politique Mod-64 conduit à beaucoup moins de communications inter-grappe qu’une politique Mod-3. En conséquence, Mod-64 tolère plus les retards inter-grappe que Mod-3. En outre, environ 40% des valeurs produites par une grappe n’ont pas besoin d’être transmises à une autre grappe, ce qui permet de réduire l’énergie dépensée dans les communications inter-grappe. La seconde contribution propose deux optimisations indépendantes et orthogonales concernant la consommation énergétique et exploitant les boucles. La première optimisation détecte les micro-opérations redondantes produisant le même résultat à chaque itération puis supprime définitivement ces micro-opérations. La seconde optimisation se concentre sur la diminution de l’énergie consommée des micro-opérations de chargement (load), en détectant les situations où un chargement n’a pas besoin d’accéder à la file d’attente des enregistrements (store queue) ou n’a pas besoin d’accéder au cache de données de niveau 1 (DL1). Les optimisations proposées ont un impact négligeable sur la performance de calcul, elles concernent essentiellement la consommation énergétique.
Fichier principal
Vignette du fichier
these_Andrea_HAL.pdf (5.99 Mo) Télécharger le fichier
Origin : Files produced by the author(s)
Loading...

Dates and versions

tel-01597752 , version 1 (28-09-2017)
tel-01597752 , version 2 (18-01-2018)

Identifiers

  • HAL Id : tel-01597752 , version 1

Cite

Andrea Mondelli. Revisiting Wide Superscalar Microarchitecture. Hardware Architecture [cs.AR]. Université de Rennes 1, 2017. English. ⟨NNT : ⟩. ⟨tel-01597752v1⟩
528 View
2381 Download

Share

Gmail Facebook X LinkedIn More