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.
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.