Sous-sections
Architecture de processeurs (cf. 2.1)
Participants : Thierry Lafage,
André Seznec, FranÇois Bodin, Romain Dolbeau, Pierre
Michaud.
Mots clés : microprocesseur, Risc,
antémémoire, localité, hiérarchie mémoire, prédiction de
branchement, multiflots .
Résumé :
Les actions de recherche du projet Caps en architecture
de processeurs portent sur les mécanismes de lancement des
instructions, en particulier prédiction de branchement et
ordonnancement du séquencement ainsi que sur les structures
de processeur multiflot simultané.
Participants : Pierre Michaud,
André Seznec.
Les performances des microprocesseurs actuels reposent de
plus en plus sur les mécanismes de prédiction de branchements
dynamiques. Les tables de prédiction des branchements
conditionnels sont en général mises en oeuvre sans utiliser
d'étiquettes, ce qui entraîne un phénomène d'interférence
appelé «aliasing». Comme l'introduction d'associativité dans
ces tables nécessiterait la présence d'étiquettes coûteuses,
une nouvelle approche pour résoudre le problème de
l'«aliasing» de conflit sans utiliser d'étiquettes a été
proposée. Le Skewed Branch Predictor est une structure à
trois tables : chaque table est indexée avec une
fonction différente et la prédiction est fournie par un vote
à la majorité. Lorsqu'une prédiction est mauvaise, les trois
bancs sont mis à jour. Cette redondance augmente l'aliasing
de capacité, mais le compromis entre la réduction de
l'aliasing de conflit et l'augmentation de l'aliasing de
capacité s'avère bénéfique [8].
Pour permettre de réduire
le goulot d'étranglement noté sur les processeurs à
nombreuses unités fonctionnelles, nous avons proposé en 1996
un mécanisme appelé «multiple-block ahead branch predictor»,
[11]. Ce mécanisme prédit efficacement les
adresses de plusieurs blocs d'instructions en avance. Un
mécanisme différent appelé «trace cache» a aussi été proposé
en 1996 par l'équipe de Jim Smith (université du Wisconsin)
[RBS96].
Nous avons mené une étude afin de mieux comprendre les
besoins en débit de chargement d'instructions dans les
processeurs superscalaires à exécution non ordonnée [15].
Cette étude a montré que le besoin en débit de chargement
d'instructions dépend de la fréquence des mauvaises
prédictions de branchements et du parallélisme d'instructions
des applications. En particulier, nous avons montré que le
besoin en débit de chargement est proportionnel au degré de
parallélisme d'instructions dans une fenêtre d'instructions
de taille fixe, et qu'il varie également comme la racine
carrée de la distance en instructions entre 2 branchements
mal prédits successifs. Cette étude permet de mieux
comprendre l'impact de nouvelles techniques architecturales
comme la prédiction de valeur [LS96b] ou la prédication [MHB+94] sur le dimensionnement des mécanismes
de chargement d'instructions. En corollaire de cette étude,
nous avons constaté l'importance de disposer d'un tampon
d'ordonnancement d'instructions dont la taille est du même
ordre de grandeur que la distance entre les branchements mal
prédits (de quelques dizaines à quelques centaines
d'instructions). Cette constatation nous a conduit à orienter
nos recherches vers les mécanismes d'ordonnancement dynamique
des instructions.
Le problème de l'ordonnancement dynamique des instructions
vient de la difficulté de concilier un grand tampon
d'ordonnancement avec un temps de cycle court. Nous avons
commencé à explorer une nouvelle approche pour résoudre ce
dilemme. Cette approche consiste à faire précéder la phase
d'ordonnancement par une phase de pré-ordonnancement. Ce
pré-ordonnancement est basé sur les dépendances entre
instructions et les latences mais ne prend pas en compte les
conflits de ressources. Cette phase de pré-ordonnancement
produit une approximation de l'ordre d'exécution des
instructions, ce qui facilite la tâche de la phase
d'ordonnancement. Nos premiers travaux de recherche dans ce
domaine nous ont conduit à proposer une mise en oeuvre
matérielle basée sur ce principe et à étudier sa viabilité
[21].
Participants : Jonathan Perret,
Pierre Michaud, André Seznec.
Les processeurs multiflot simultané vont devenir dans les
prochaines années une brique de base des machines haute
performance. Jusqu'à présent, la plupart des études sur le
multiflot simultané ont porté sur des flots provenant
d'applications distinctes (souvent des "petites"
applications). Le comportement du mutiflot simultané a été
peu étudié sur des flots provenant d'une même
application.
Nous menons une étude en collaboration avec le CEA sur le
comportement du multiflot simultané sur une application
d'indexation et recherche d'images. Cette application
grandeur nature "stresse" à la fois les capacités de calcul
de la machine et sa hiérarchie mémoire. Le but de l'étude est
de déterminer par des simulations comment exploiter au mieux
le potentiel du multiflot simultané sur ce type
d'application, en introduisant éventuellement de nouveaux
supports architecturaux.
Participants : André Seznec,
Romain Dolbeau.
Parmi les solutions pour exploiter les possibilités
d'intégration, le multiflot simultané [TEL95]
est l'une des solutions les plus prometteuses. Disposer de
plusieurs flots exécutables simultanément sur une
architecture superscalaire doit permettre de maximiser
le taux d'utilisation du processeur et donc les performances.
Cette approche a d'ailleurs été retenue pour un futur
processeur haute perormance de Compaq, l'Alpha 21464. Une
étude a été menée pour quantifier le comportement des
architectures multiflots simultanés en présence de
changements de contexte [18].
Mais le multiflot seul n'apporte aucun bénéfice si la
charge de travail du processeur se limite à une application
non parallélisée. Une nouvelle voie étudiée est la création
de flots spéculatifs appartenant à l'application
séquentielle. Ces ``processus spéculatifs'' sont prédits lors
de l'exécution (par exemple, les itérations suivantes d'une
boucle, le retour d'une procédure lancée avant
l'exécution de cette procédure, ...) et commencent leur
exécution parallèlement (simultanément) au flot non
spéculatif. Les travaux en cours consistent à developper les
outils permettant d'étudier le potentiel de gain d'une telle
approche : instrumentation des programmes et outils d'étude
du parallèlisme potentiel et des dépendances pour les divers
flots spéculatifs envisagés.