Architecture de processeurs
Mots clés : microprocesseur, Risc,
antémémoire, prédiction de branchement, multiflot simultané
.
Résumé :
Les progrès technologiques permettent une plus grande
densité d'intégration et une plus grande fréquence de
fonctionnement des composants pour les processeurs. Ainsi,
il est aujourd'hui possible d'intégrer sur un même
composant une dizaine d'unités fonctionnelles et une grande
antémémoire fonctionnant à une fréquence de l'ordre de 1
Ghz.
Cependant ces progrès ne se traduisent pas
linéairement en un gain de performances. En effet, le temps
de cycle des processeurs décroît plus rapidement que les
temps d'accès à la mémoire principale, ce qui rend la
performance effective du processeur de plus en plus
dépendante du comportement de sa hiérarchie mémoire. De
même, le parallélisme d'instructions limité des programmes
(dépendances de données et contrÔle) réduit les gains liés
à l'exécution superscalaire.
Les actions de recherche que nous menons portent sur
la structure et les optimisations matérielles et
logicielles des hiérarchies mémoire, en particulier
antémémoires, sur les mécanismes de lancement des
instructions, en particulier prédiction de branchement
ainsi que sur les structures de processeur multiflot
simultané. Ces actions de recherche s'appuient sur une
veille technologique sur les microprocesseurs menée depuis
1991.
L'évolution des microprocesseurs est extrêmement rapide.
Depuis début 1991, nous menons une activité de veille
technologique et de diffusion d'informations sur les
microprocesseurs. Sept rapports détaillés comparant les
architectures de processeurs ont été diffusés à ce jour.
Cette activité de veille technologique permet d'orienter les
recherches du projet en architecture de processeurs.
La différence entre temps d'accès à l'antémémoire sur le
composant et temps d'accès à la mémoire principale tend à
croître. Il est donc de plus en plus important d'optimiser le
comportement des antémémoires. Le taux de succès lors des
accès à une antémémoire dépend de nombreux facteurs liés à
son organisation matérielle et à l'application. Nos
recherches portent à la fois sur l'étude de structures
d'antémémoires ``skewed-associative'' [4] ainsi
que sur les techniques logicielles de détection et
d'exploitation de la localité [5] et
d'optimisation du placement de données.
L'allongement des pipelines et l'exécution superscalaire
font que le délai entre le chargement d'une instruction et
son exécution correspond aujourd'hui à l'exécution de
plusieurs dizaines d'instructions. Or, toute instruction de
branchement rompt le flot de contrÔle et devrait donc en
principe arrêter le séquencement. Afin d'éviter un tel arrêt,
des mécanismes d'anticipation appelés prédicteurs de
branchement sont mis en oeuvre dans les processeurs
d'aujourd'hui. D'autre part, avec l'avènement de l'exécution
dans le désordre et de l'exécution spéculative très
agressive, le chargement en parallèle d'un seul bloc de base
(c'est-à-dire l'anticipation d'un seul branchement par cycle)
apparaît comme une limitation. Il est maintenant nécessaire
de charger plusieurs blocs de base par cycle. Nos travaux
dans ce domaine visent à améliorer la précision de la
prédiction de branchement ainsi qu'à augmenter le nombre
d'instructions chargées par cycle [11].
Si jusqu'à présent, la recherche de la performance ultime
sur un seul processus a guidé l'industrie du microprocesseur,
l'énorme potentiel d'intégration aujourd'hui disponible
permet d'envisager que, d'ici à quelques années, plusieurs
processus s'exécutent en parallèle sur le même composant.
Parmi les solutions exploitant ces nouvelles données
technologiques, le multiflot simultané [TEL95],
semble l'une des méthodes les plus prometteuses. Le
multiflot simultané est basé sur l'exécution de
plusieurs flots d'instructions indépendants ou issus d'une
application parallèle sur un processeur superscalaire. Nous
étudions les implications de l'utilisation du multiflot
simultané dans le processeur.