![]()
Précédent : Panorama Remonter :
Présentation et objectifs
généraux Suivant : Environnements de développement pour
architectures
Mots clés : microprocesseur, Risc, antémémoire, prédiction de branchement, multiflot simultané .
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épendences de données et contrôle) réduit les gains liés à l'exécution superscalaire.
Les actions de recherches 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'' [[5]] ainsi que sur les techniques logicielles de détection et d'exploitation de la localité [[6]] 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
uvre 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 trop limité. 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 [[9]].
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.