Next: Les microprocesseurs Alpha Up: Les microprocesseurs MIPS Previous: Le développement de

Perspectives

Selon les plans dévoilés par MIPS, SGI a demandé à MTI et QED de travailler ensemble sur le successeur du R4600, projet connu sous le nom de P4. Normalement disponible à partir du deuxième trimestre 96, ce processeur devrait atteindre 200 SPECint92, soit 50%de plus que l'Orion le plus rapide actuellement. Il devrait recevoir plus d'attention sur les performances flottantes qui devraient atteindre 300 SPECfp92. Ces performances requièrent un processeur superscalaire séquencé à 200 MHz. Le processeur Orion, destiné au marché Windows NT, a été limité par ses performances flottantes. Les spécifications du P4 au contraire le désignent comme un processeur de station de travail de milieu de gamme.

En 1998, le D2 devrait succéder au P4. Ce processeur devrait délivrer des performances du niveau du R10000 avec un coût équivalent à celui de l'Orion.
Dans le haut de gamme, le R8000 devrait voir sa fréquence de fonctionnement croître jusqu'à 100 MHz avec l'utilisation d'une technologie à 0.5 m. Déjà les premiers systèmes à 90 MHz sont annoncés.

Cependant ce produit sera rendu obsolète par le R10000 que nous présentons au chapitre suivant. Initialement prévu avec une technologie CMOS à 0.5 m et une fréquence interne de 200 MHz, une version à 0.35 m est attendue pour fin 1996 et devrait permettre d'atteindre 300 MHz et jusqu'à 500 SPECint92. MTI travaille déjà sur son successeur, le H1, qui vise les 1000 SPECint92 pour le premier semestre 1998.

Le processeur MIPS R10000

Annoncé en octobre 1994, ce processeur est le tout dernier RISC 64 bits de MIPS. Il intégre les principales techniques évoluées d'architecture de processeurs telles que architecture superscalaire, exécution dans le désordre, prédiction dynamique à deux bits, pile de branchement, renommage de registres, etc...

Ce processeur est annoncé à 200 MHz. Il met en oeuvre une architecture découplée avec trois files d'instructions indépendantes :

À chaque cycle, quatre instructions peuvent être chargées à partir du cache et six peuvent être émises vers les unités d'exécution (dans le cas le plus favorable : deux instructions arithmétiques entières, deux instructions arithmétiques flottantes, une lecture/écriture et une instruction de branchement conditionnel flottant).
Le R10000 utilise un pipeline de cinq étages pour les opérations arithmétiques entières, six étages pour les accès mémoires et sept étages pour les opérations flottantes. Les deux premiers étages sont communs (accès au cache, décodage, renommage et détection de branchement s'effectuant au cycle suivant). Le MIPS R10000 implémente 64 registres physiques pour les instructions entières et flottantes, soit le double de registres logiques vus par le programmeur. Au fur et à mesure de leur décodage, toutes les instructions sont renommées avant d'être expédiées vers leurs files respectives. La table de renommage entière a douze ports de lecture et quatre ports d'écriture alors que celle concernant les instructions flottantes a seize ports de lecture et quatre ports d'écriture, ceci afin de soutenir un traitement de quatre instructions par cycle. Quand les instructions sont émises vers leur file respective, elles sont également entrées dans une liste d'instructions << actives >>. Cette liste contient jusqu'à 32 instructions consécutives et garantit que l'exécution des instructions effectuée de manière spéculative ou dans le désordre est conforme à un modèle ordonné pour le reste du système. Une instruction peut être extraite de cette liste quand toutes les instructions qui la précède ont été effectuées. Jusqu'à quatre instructions peuvent être extraites de cette liste à chaque cycle (à raison cependant d'une seule écriture). Par ailleurs ce concept de liste d'instructions active est particulièrement utile pour la gestion des branchements ou pour traiter les exceptions. Effectivement, en cas d'exception, la liste est utilisée pour << défaire >> les résultats des instructions exécutées dans le désordre. Ceci est effectué de manière simple à travers la table de renommage.
Dans le cas des branchements, la table de renommage est sauvegardée au moment de l'exécution spéculative de l'instruction de branchement et est restituée si une mauvaise prédiction est détectée. La structure de sauvegarde de cette table supporte jusqu'à quatre niveaux de branchement.
Le cache d'instructions a une capacité de 32 Ko et est associatif à deux voies. Les instructions sont partiellement décodées avant d'y être inscrites. Un cache de reprise à quatre entrées permet de réduire la pénalité d'annulation des branches mal prédites (deux cycles si les instructions sont présentes dans ce cache, trois autrement). Le cache de données primaire a une structure particulière avec une taille de 32 Ko organisé en deux bancs de 16 Ko entrelacés associatifs par ensemble à deux voies. Par ailleurs une interface pour un cache secondaire externe d'une capacité maximale de 16 Mo est implémentée. Un bus de données de 128 bits permet d'atteindre un taux de transfert de 3.2 Go/sec. Appelé bus avalanche par MIPS, ce bus a la possibilité de maintenir jusqu'à huit transactions en attente d'exécution.
Le support multiprocesseur a été considérablement amélioré. Le R10000 supporte une configuration en grappe. Jusqu'à quatre processeurs peuvent être placés sur le même bus avec seulement l'adjonction d'un composant externe servant d'interface avec les autres ressources du système. Cette configuration réduit non seulement la complexité du système mais aussi son coût.
Le R10000 implémente le jeu d'instructions MIPS IV mis en oeuvre sur le R8000. Réalisé en technologie CMOS 0.5 m à quatre couches de métal, les performances annoncées de ce processeur sont de l'ordre de 300 SPECint92 et 600 SPECfp92.



Next: Les microprocesseurs Alpha Up: Les microprocesseurs MIPS Previous: Le développement de


flloansi@IRISA.irisa.fr
Fri Jun 7 11:05:24 MET DST 1996