Accueil » Dossier » Le processeur Cell » Page 8

Le processeur Cell

1 : Introduction 2 : La première révolution RISC 3 : La quête d’un meilleur ILP 4 : L’aveu d’un échec 5 : L’aveu d’un échec (suite) 6 : Les nouveaux enjeux 7 : Le CELL : une vue d’ensemble 9 : Les SPE : la force du Cell (suite) 10 : Le PPE : le maître d’œuvre 11 : Le PPE : le maître d’œuvre (suite), l'EIB 12 : Conclusion

Les SPE : la force du Cell

Les SPE sont la principale nouveauté du Cell. Comme IBM se plaît à le répéter dans une métaphore du plus bel effet, les SPE sont l’orchestre et le PPE le chef d’orchestre. Mais trêve de représentations figurées, intéressons nous aux détails techniques de ces fameux SPE.

Les SPE sont constitués de trois unités :

  • une unité de calcul appelée Synergistic Processing Unit (SPU)
  • un contrôleur DMA : le Memory Flow Controller (MFC)
  • 256Ko de SRAM appelée Local Store (LS)
Ces trois unités forment un total de 21 millions de transistors (7 millions de logique et 14 millions de SRAM).

SPU

Les SPU sont des processeurs SIMD : Single Instruction Multiple Data, ce qui signifie qu’ils appliquent la même instruction à un ensemble de données. En l’occurrence ils sont particulièrement adaptés au traitement vectoriel vu qu’ils opèrent essentiellement sur des vecteurs de 4 éléments de 32 bits chacun stockés dans des registres 128 bits. A ce propos, les SPU disposent d’un très large fichier unifié de 128 registres 128 bits, utilisé aussi bien pour les entiers, les nombres en virgules flottantes ou les opérations conditionnelles. Un aussi grand nombre de registres se révèle particulièrement utile pour le déroulement des boucles.

L’architecture des SPU est de type chargement-rangement, tous les accès mémoire se font entre la Local Store et le fichier de registres ce qui est classique dans les architectures RISC. Le SPU comme nous l’avons dit plus tôt exécute les instructions dans l’ordre du programme mais offre une forme limitée de lancement multiple. Ainsi chaque SPU dispose de deux pipes d’exécution, le premier se charge d’effectuer les chargements, rangements, ainsi que les opérations de manipulation d’octets et les branchements. Le deuxième effectue les opérations flottantes, les opérations arithmétiques et logiques ainsi que quelques opérations de manipulations d’octets. Les SPU sont donc capables d’effectuer au mieux deux instructions par cycle.


Les SPU sont optimisés pour effectuer leurs calculs sur les nombres flottants simple précisions. A chaque cycle ils sont ainsi capables d’effectuer une opération FMAC (Floating Point Multiply-Accumulate) sur quatre nombres flottants simple précision ce qui offre une performance de crête de 32 GFlops par SPU pour un processeur cadencé à 4 GHz. Notons toutefois qu’à l’image des VU de l’Emotion Engine (le processeur de la PS2), les SPU ne sont pas conformes à la norme IEEE 754. Celle-ci défini un comportement bien précis pour l’arrondi, et les exceptions en cas de débordement, division par zéro, etc. En ignorant cette norme, les SPU peuvent offrir de meilleures performances et à un coût moindre. De plus ce n’est pas tellement pénalisant vu le cadre d’application des programmes destinés à être exécutés sur les SPU.

En revanche dans le cadre de calculs scientifiques, qui peuvent être un autre débouché pour le Cell, le respect de la norme IEEE 754 est primordial, aussi lors de calculs double précision les SPU respectent cette norme. En contrepartie les SPU ne sont plus capables d’exécuter qu’une FMAC sur deux nombres double précision par cycle, et une FMAC ne peut être exécutée que tous les 7 cycles. La performance de crête retombe donc dans ce cas à 2.3 GFlops environ par SPU pour un processeur à 4GHz ce qui est nettement moins impressionnant.

Le jeu d’instructions des SPU est dérivé du jeu d’instructions VMX mais n’est pas complètement identique. Rappelons ici que le jeu d’instructions VMX aussi appelé Altivec par Motorola ou encore Velocity Engine par Apple, est une extension du jeu d’instructions PowerPC offrant 162 nouvelles instructions dédiées au traitement vectoriel. Les instructions arithmétiques disponibles sur les SPU sont donc similaires à celles du jeu d’instructions VMX mais certaines ont été retirées. Le jeu d’instructions des SPU inclus en revanche des nouvelles instructions par rapport au VMX pour contrôler les transferts de et vers la mémoire externe par l’intermédiaire de l’unité MFC.

Sommaire :

  1. Introduction
  2. La première révolution RISC
  3. La quête d’un meilleur ILP
  4. L’aveu d’un échec
  5. L’aveu d’un échec (suite)
  6. Les nouveaux enjeux
  7. Le CELL : une vue d’ensemble
  8. Les SPE : la force du Cell
  9. Les SPE : la force du Cell (suite)
  10. Le PPE : le maître d’œuvre
  11. Le PPE : le maître d’œuvre (suite), l'EIB
  12. Conclusion