UltraSPARC IIi

L'UltraSPARC IIi, successeur de l'UltraSPARC, est un microprocesseur 64 bits de Sun Microsystems dont la distribution commença en 1997.



Catégories :

Microprocesseur SPARC - Microprocesseur par architecture - Microprocesseur - Processeur 64 bits

Recherche sur Google Images :


Source image : x86-secret.com
Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur.

Page(s) en rapport avec ce sujet :

  • Acheter et comparer Sun Ultra 5 400 - UltraSPARC IIi 400 MHz avec Super Comparateur Sun Ultra 5 400 - UltraSPARC IIi 400 MHz. Ordinateurs de bureau et ... (source : super-comparateur)
  • The UltraSPARC III, code-named "Cheetah", is a microprocessor that implements the SPARC V9 instruction set architecture (ISA) developed by Sun Microsystems... (source : en.wikipedia)
  • Introduced in 1997, the UltraSPARC IIi, a highly integrated UltraSPARC II with PCI interface, ... Sun Microsystems UltraSPARC IIi SME 1040, 333 MHz Top Side... (source : cpu-collection)

L'UltraSPARC IIi, successeur de l'UltraSPARC, est un microprocesseur 64 bits de Sun Microsystems dont la distribution commença en 1997.

L'UltraSPARC IIi est basé sur les spécifications SPARC version 9, et équipe surtout les stations Sun allant de l'Ultra 5 à l'Ultra 60 mais aussi les premiers modèles de Sunblade.

Principaux blocs fonctionnels

Les principaux composants formant l'UltraSPARC IIi sont :

Registres

L'UltraSPARC IIi implémente la technique de la fenêtre de registres, c'est-à-dire qu'il met à disposition de l'utilisateur plusieurs jeux de registres interchangeables.

En plus des 8 registres globaux (%g0 à %g7), qui sont dupliqués selon le mode de fonctionnement du microprocesseur (4 modes sont disponibles), l'utilisateur a accès à une fenêtre coulissante de 24 registres :

La fenêtre de registres est dite coulissante car dans le prologue d'une fonction, on fait appel à une instruction qui transforme les registres de sortie en registres d'entrée, et qui libère un nouveau jeu de 16 registres locaux et de sortie. Dans l'épilogue, on revient à l'ancienne fenêtre, ce qui à pour effet de restaurer les registres locaux et d'entrée.

L'UltraSPARC IIi offre 8 fenêtres de registres, au delà, c'est au dispositif d'exploitation d'assurer la sauvegarde des fenêtre précédentes contre l'écrasement. En effet, la fenêtre fonctionne de manière circulaire : une fois sur la dernière fenêtre, on reprend à la première.

La FPU offre 32 registres pouvant contenir soit des flottants simple précision soit des flottants double précision (IEEE754).

Pipeline

Le pipeline de l'UltraSPARC IIi se compose de 9 étages :

L'UltraSPARC IIi est superscalaire de degré 4, c'est-à-dire qu'il peut exécuter selon certaines contraintes 4 instructions simultanément. Parmi ces contraintes :

Dans le cas des instructions FPU ou des instructions graphiques, la fin du pipeline change :

Chaque instruction de branchement est suivi d'un delay slot, c'est-à-dire une instruction qui sera toujours exécutée même si le branchement est pris. Il est envisageable d'annuler l'effet du delay slot, en utilisant des instructions spécifiques.

Caches

Jeu d'instructions

Le jeu d'instructions de l'UltraSPARC IIi est le Visual Instruction Set de Sun. Il offre :

Exemple en assembleur

La fonction suivante calcule la somme des entiers 64 bits d'un tableau.

sum:
	save %sp, -192, %sp	/* sauve l'ancienne fenêtre de registre	*/
				/* à cet instant :			     */
				/* %i0 = nombre de cases du tableau	*/
				/* %i1 = adresse du tableau		*/
	sllx %i0, 3, %l0	/* calcule la taille du tableau en mémoire	*/
				/* il s'agit d'une multiplication par 8		*/
				/* (décalage de 3 bits vers la gauche)		*/
	add %i1, %l0, %l0	/* calcule l'adresse de fin du tableau dans %l0	*/
	mov %i1, %l1		/* copie l'adresse du tableau dans %l1		*/
	clr %i0			/* on utilise le registre %i0 pour la somme	*/
				/* car registre est le registre de retour	*/
	/* maintenant, on va parcourir les adresses de %l1 (début du tableau) à	*/
	/* %l0 (fin du tableau) et additionner les valeurs			*/
.loop:	ldx [%l1], %l2		/* lit la valeur courante du tableau dans %l2	*/
	add %l1, 8, %l1		/* avance dans le tableau d'une case (8 octets)	*/
	cmp %l1, %l0		/* compare l'adresse courante à l'adresse de fin*/
	blt .loop		/* si %l1 < %l0, saute au label loop		   */
	 add %i0, %l2, %i0	/* additionne la valeur à la somme		*/
	ret			/* restaure l'ancienne fenêtre de registre	*/
	 restore		/* instruction en delay-slot			*/

On observe que l'addition juste après le branchement est exécutée même lorsque le branchement est pris. Mettre une instruction utile dans le delay slot permet ici de gagner un cycle par itération.

Unité de gestion de la mémoire

La MMU de l'UltraSPARC IIi est constituée par la LSU (Load/Store Unit) et les Translation Lookaside Buffers (TLB)  : I-TLB et D-TLB.

La gestion de la mémoire virtuelle fait appel à deux TLB de 64 entrées de type full associative. Chaque entrée dans un TLB est divisée en 2 :

Quand une adresse doit être traduite, les tags du TLB correspondant (I-TLB pour la lecture d'instructions, D-TLB pour les accès mémoire faits par la LSU), est parcouru à la recherche d'une adresse correspondante. Si une telle entrée est trouvée, le numéro de contexte est alors comparé au numéro de contexte courant, ou si la page est globale, alors cette comparaison n'est pas faite. Une fois l'entrée identifiée, la partie données est lue et l'adresse est traduite.

En cas de TLB-miss (c'est-à-dire si aucune entrée ne convient), le microprocesseur entame une recherche dans un cache positionné en mémoire par l'utilisateur : le Translation Storage Buffer (TSB). Cette recherche est bien entendu plus longue car il y a de nombreux accès mémoire. Cependant, l'utilisation du TSB est optionnelle.

Enfin, s'il n'existe aucune entrée ni dans le TLB ni dans le TSB, une exception est déclenchée. De la même manière, s'il existe une entrée mais que les permissions sont insuffisantes, une exception est aussi déclenchée. C'est alors au dispositif d'exploitation :

Évidemment, il faut particulièrement soigneusement maintenir les TLB, afin d'optimiser les performances et d'éviter les plantages.

Il est envisageable de contourner le mécanisme de traduction d'adresse, en utilisant 2 identifiants d'espace d'adressage spécifiques (Bypass ASIs). Cette opération est cependant réservée au superviseur.

Liens et sources

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/UltraSPARC_IIi.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu