Accueil » Dossier » Le processeur Cell » Page 11

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 8 : Les SPE : la force du Cell 9 : Les SPE : la force du Cell (suite) 10 : Le PPE : le maître d’œuvre 12 : Conclusion

Le PPE : le maître d’œuvre (suite), l’EIB

IBM a préféré éviter d’ajouter une telle complexité dans son processeur, et le justifie en disant qu’ainsi le comportement est nettement plus prédictif pour le programmeur. Justification pour le moins discutable. En revanche pour limiter les cycles perdus par une architecture de ce type, IBM a rendu le PPE capable d’exécuter des instructions de deux threads en parallèle : lorsqu’un thread est suspendu par une dépendance, l’autre thread prend le relais et occupe ces précieux cycles CPU avec du travail utiles au lieu d’introduire des suspensions dans le pipeline. On parle de SMT pour Simultaneous MultiThreading. Le coût en logique est minime et le gain de performances induit peut être très intéressant. Surtout dans une architecture comme celle du PPE incapable de réordonnancer ses instructions. En revanche l’impact sur la mémoire cache peut parfois s’avérer désastreux.

La technique utilisée par le PPE n’a pas été décrite par IBM aussi nous ne pouvons ici qu’émettre des suppositions, toutefois il semblerait que la méthode utilisée soit nettement moins flexible que celle de l’Hyperthreading d’Intel. Une piste viendrait des déclarations de nombreux programmeurs (dont John Carmack et Gabe Newell) qui se sont plaints des performances du PPE (et du Xenon de la Xbox 360 par la même occasion) dans le cadre de programmes monothreadés. Ils ont en particulier dénoncé le discours de Sony et Microsoft, vantant leur impressionnante fréquence d’horloge à la moindre occasion, en indiquant qu’en pratique il fallait, dans certains cas, la diviser par deux pour obtenir une meilleure estimation des performances de ces CPU.


Encore plus troublant, lors de sa présentation sur le Cell à la dernière GDC, Dean Calver programmeur d’un jeu PS3 appelé Heavenly Sword, a indiqué qu’il conseillait de considérer, d’un point de vue logiciel, le PPE comme deux processeurs distincts fonctionnant à une fréquence deux fois moins élevée. Enfin IBM lui-même a précisé que l’exécution des threads était entrelacée sans donner plus de précision.

Ce que l’on peut déduire de tout cela, mais encore une fois cela reste des spéculations, est que l’implémentation du SMT par le PPE est assez limitée en ce sens qu’un thread ne peut lancer l’exécution d’une instruction que tous les deux cycles, l’autre cycle étant réservé à l’exécution d’une instruction de l’autre thread. Ainsi dans le cadre d’une application monothreadée on se retrouverait effectivement avec l’équivalent d’un processeur de fréquence deux fois moins élevée.

Ceci dit ceci n’est qu’une hypothèse et si l’on en croît l’article de Microprocessor Report elle serait fausse. Ainsi dans le cas où un des threads ne serait pas capable d’exécuter une instruction lors de son cycle, alors l’autre thread pourrait exécuter des instructions tous les cycles et non tous les deux cycles. Il semblerait donc que la situation ne soit pas aussi dramatique, mais l’implémentation du SMT par le PPE reste assez mystérieuse et dans tous les cas plus limitée que l’Hyperthreading car elle ne permet pas, à un cycle donné, d’avoir deux instructions de deux threads différents en cours de traitement dans des unités distinctes.


L’EIB : un anneau pour les gouverner tous

Pour garantir une bonne communication entre ces divers éléments, il fallait un réseau d’interconnexions efficace. IBM a donc développé un bus en anneau appelé EIB. En fait il s’agit plus précisément de quatre anneaux unidirectionnels : deux transférant les données dans un sens, et deux dans l’autre afin de minimiser la latence introduite par la structure en anneau. Ainsi dans le pire des cas la latence n’est que la moitié de la distance totale de l’anneau. Chaque anneau offre une largeur de 16 octets (plus un tag de 8 octets) mais ne fonctionne qu’à la moitié de la fréquence d’horloge.

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