Le processeur Cell

Le site Ars Technica a une bonne présentation technique du processeur Cell d’IBM, Toshiba et Sony. L’auteur, Jon “Hannibal” Strokes a déjà fait des articles sur le design de processeur très intéressants. Le concept général de ce processeur est d’avoir un petit cluster sur une puce, avec une série de petits processeurs doté de mémoire propre (pas de la cache) reliés par un réseau très rapide. Le système général est sous le contrôle d’une puce centrale qui est un PowerPC “normal”.

L’avantage de ce design, c’est que la logique du processeur est grandement simplifiée, cela veut dire une puissance très respectable, mais aussi beaucoup plus de travail pour le compilateur et le programmateur. Cette puissance ne pourra probablement pas être utilisée simplement en ajoutant un flag au compilateur.

La situation n’est pas sans rappeler les problèmes rencontré par le processeur Ithanic, qui était en théorie bien plus puissante que la ligne IA32, mais en pratique nécessitait du code très spécialisé. Les compilateurs magiques pour Ithanic ne se sont pas matérialisés, et les performance sont restées théoriques.

Toutefois j’ai l’impression que la situation est différente, d’abord car le but, en tout cas dans un premier temps n’est pas de remplacer un processeur pour ordinateur spécial, mais une utilisation dans un contexte spécialisé, en l’occurrence une console de jeux. Ensuite parce que le type de parallélisme est différent. Chaque processeur Cell peut travailler de manière autonome, et donc charger un code différent.

Ce qui est amusant, c’est que cela prouve que la notion de multiprocessing asymétrique qui était déjà présent dans le Playstation 2, avec son controleur MIPS, et encore présente. Le processeur contrôleur de la Cell est différent des Processing Elements esclaves. On se retrouve avec une sorte de mouvement pendulaire. Dans un premier temps on ajoute des unités auxiliaires au CPU pour le décharger (MMU, coprocesseur mathématique, DSP) dans un second ces fonctionnalités sont rapatriées dans le CPU.

En ce moment la tendance est plutôt à mettre un maximum de fonctionalités dans le CPU, ce qui donne certaines aberrations comme les Win-modems (des modems virtuels ou le CPU fait le gros du travail de modulation/démodulation). Néanmoins les cartes graphiques représentent une grosse exception à cette tendance, avec beaucoup d’efforts pour décharger d’abord un maximum de taches graphiques sur le GPU (comme le fait quartz extrème sous Max OS X), mais aussi des tâches plus générales.

De ce point de vue le Cell Processor est l’exemple le plus extrême avec un CPU faible et des coprocesseurs plutôt génériques. Ce qui sera intéressant, sera la comparaison avec la ligne PowerPC «normale» vu que celle ci sera utilisée dans la XBox 2, alors que la Playstation 3 utilisera un processeur Cell.

Visiblement, c’est le sujet du jour, même Antoine en parle…

One thought on “Le processeur Cell

  1. Pingback: Absyrde

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.