Next: PentiumPro Up: Unité flottante et Previous: MIPS R10000

UltraSPARC

L'unité flottante et graphique de l'UltraSPARC intègre cinq unités fonctionnelles et un fichier de registres. L'additionneur flottant, le multiplieur flottant et l'unité de division et de racine carrée flottante traitent toutes les opérations flottantes. L'additionneur graphique et le multiplieur graphique traitent toutes les opérations graphiques du jeu d'instructions Visual Instruction Set (voir paragraphe ).

L'UltraSPARC peut exécuter à chaque cycle au maximum deux instructions flottantes ou graphiques et une instruction load/store flottante, ce qui est rendu possible par un fichier de registres flottants composé de 32 entrées de 64 bits et possédant cinq ports de lecture et trois ports d'écriture. Ces registres sont utilisés soit comme registres 32 bits en simple précision, soit comme registres 64 bits en double précision, ou comme 16 registres de 128 bits quadruple précision. Toutes les opérations, à l'exception des divisions flottantes et des racines carrées, sont entièrement pipelinées. Les opérations de division flottante et de racine carrée peuvent être exécutées en parallèle avec les autres opérations (une seule des deux par opposition au MIPS R10000).

Les résultats de chaque unité fonctionnelle sont collectés par l'unité de complétion avant de modifier le fichier de registres. Cependant grâce au mécanisme de bypass, les résultats sont disponibles directement à la fin de leur exécution.

À noter que les instructions flottantes 128 bits de la norme SPARC V9, ne sont pas mis en oeuvre par matériel mais émulées par logiciel.

Opérations flottantes


L'additionneur flottant est entièrement pipeliné. Il traite les instructions d'addition, de soustraction et de comparaison en simple ou double précision. Il effectue la conversion entre les entiers et les flottants. Les opérations d'addition, de soustraction et de conversion sont effectuées en trois cycles, la comparaison est effectuée en un seul cycle.

Le multiplieur est entièrement pipeliné et exécute les opérations de multiplication flottante en simple et double précision en trois cycles.

Le diviseur flottant traite les opérations de division flottante en simple et double précision ainsi que les opérations de racine carrée. Il génère trois bits de la mantisse par cycle d'horloge. La latence est de 12 cycles pour les opérations en simple précision et de 22 cycles pour les opérations en double précision.

Opérations graphiques


Les deux unités graphiques sont entièrement pipelinées et réalisent les opérations sur des pixels de 8 ou 16 bits.

L'additionneur graphique réalise, en un seul cycle, les opérations d'addition, de soustraction, d'alignement, de réduction, d'extension, ainsi que les opérations logiques. Cette unité est composée de quatre additionneurs 16 bits et d'un décaleur de bits.

Le multiplieur graphique réalise en trois cycles les multiplications, les comparaisons, les compressions et les évaluations de distance entre pixels. Cette unité est composée de quatre multiplieurs 8x16 bits et d'un décaleur de bits.



Next: PentiumPro Up: Unité flottante et Previous: MIPS R10000


flloansi@IRISA.irisa.fr
Tue Jun 4 09:57:56 MET DST 1996