Next: Le SuperSPARC Up: Les microprocesseurs SPARC Previous: La norme SPARC-V9

Le Sun SPARC

Ce processeur est maintenant obsolète du fait des nouvelles versions mais présente un intérêt historique.

Le Sun SPARC est le premier microprocesseur à caractère industriel issu des travaux de l'Université de Berkeley sur les architectures RISC et commercialisé en 1987. Ce processeur, scalaire, implémente la norme SPARC-V7 et est organisé autour d'une unité entière, d'une unité flottante externe, d'un cache unifié d'instructions et de données ainsi que d'une unité de gestion de la mémoire (voir [1]).

Pour les instructions entières, un pipeline simple de quatre étages est utilisé (chargement, décodage, exécution, mise à jour). Les instructions de lecture/écriture nécessitent un cycle supplémentaire (étage d'accès au cache). Les opérations flottantes nécessitent au minimum 5 cycles.

Les unités flottantes et entière sont totalement synchronisées. L'unité entière lit une instruction dans le cache à chaque cycle. Celle-ci est décodée en parallèle dans les deux unités. Lorsque l'unité entière reconnaît qu'il s'agit d'une instruction flottante, elle l'abandonne. Le temps d'exécution d'une instruction flottante varie de quatre cycles à 63 cycles (cas de la racine carrée double précision). Aussi, l'unité flottante comprend une pile qui permet à l'instruction d'attendre la fin de son exécution. Lorsque cette pile est pleine, il se produit un gel des pipelines entier et flottant.

L'unité entière implémente 136 registres de 32 bits utilisés à travers le mécanisme de fenêtrage (soit huit fenêtres de registres). Les opérations de multiplication/division sont émulées par logiciel.

L'unité flottante quant à elle comprend un additionneur, un multiplieur et 32 registres de 32 bits ou 16 registres de 64 bits.

Comme on l'a dit précédemment, le Sun SPARC regroupe sur un même cache externe les instructions et les données. Ce cache a une capacité maximale de 64 Ko et est à correspondance directe. Il est virtuellement adressé. La politique d'écriture est configurable en simultanée ou différée. Le temps d'accès au cache est de un cycle en cas de succès, 18 autrement. Une protection par parité est implémentée. Un deuxième niveau de cache peut également être ajouté.

L'unité de gestion mémoire est également externe. L'architecture SPARC définit un espace d'adressage linéaire paginé. La taille des pages est constante (4 Ko). L'espace virtuel alloué à un processus est un contexte. L'architecture supporte jusqu'à 256 contextes simultanément (un champ d'identification d'espace d'adressage de huit bits est émis avec les 32 bits d'adresse virtuelle). Le mécanisme de traduction d'adresse utilise plusieurs niveaux d'indirection pour convertir l'adresse virtuelle en adresse physique (à partir du contexte, adressage de la table des contextes, puis table de pointeurs de niveau 1, table de pointeurs de niveau 2, puis table de pages de niveau 3. Voir [1] pour plus de détails). L'adresse virtuelle est codée sur 32 bits, l'adresse physique compte quant à elle 36 bits .

Par ailleurs, le Sun SPARC inclut une table de traduction d'adresses, totalement associative de 64 entrées. Un algorithme aléatoire est utilisé pour le renouvellement des lignes de cette table.

Ce processeur comprend également des fonctionnalités permettant sont intégration dans des systèmes multiprocesseurs : jeu d'instructions, protocole de cohérence de type MOESI. Ce processeur traduit une différence d'approche avec le MIPS R3000 qui nécessite d'être initialisé dans un mode spécial à un fonctionnement multiprocesseur. Dans le cas du Sun SPARC, tout est réalisé par matériel avec des composants spécifiques. Le microprocesseur ignore alors qu'il fonctionne dans un environnement multiprocesseur.

Comme le MIPS R3000, le Sun SPARC a donné lieu à des déclinaisons de son architecture dans le milieu des microcontrôleurs embarqués. Le concept de fenêtres de registres favorise cette architecture en offrant des changements de contexte extrêmement rapide (pas de sauvegarde de registres). On citera à titre d'exemple le CY7C611 de Cypress Technology et le MB86930 de Fujitsu.



Next: Le SuperSPARC Up: Les microprocesseurs SPARC Previous: La norme SPARC-V9


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