Cellule (microprocesseur) - Cell (microprocessor)

  (Redirigé depuis PowerXCell 8i )

Cell est une microarchitecture de microprocesseur multicœur qui combine un noyau PowerPC polyvalent de performances modestes avec des éléments de coprocessage rationalisés qui accélèrent considérablement les applications de traitement multimédia et vectoriel , ainsi que de nombreuses autres formes de calcul dédié.

Il a été développé par Sony , Toshiba et IBM , une alliance connue sous le nom de «STI». La conception architecturale et la première mise en œuvre ont été réalisées au STI Design Center d' Austin, au Texas, sur une période de quatre ans débutant en mars 2001, avec un budget estimé par Sony à près de 400 millions de dollars. Cell est un raccourci pour Cell Broadband Engine Architecture , généralement abrégé CBEA dans son intégralité ou Cell BE en partie.

La première application commerciale majeure de Cell était dans la console de jeu PlayStation 3 de Sony , sortie en 2006. En mai 2008, le supercalculateur IBM Roadrunner basé sur Cell est devenu le premier système TOP500 LINPACK à 1,0 pétaflops. Mercury Computer Systems a également développé des conceptions basées sur la cellule.

L'architecture Cell comprend une architecture de cohérence de mémoire qui met l'accent sur l'efficacité énergétique, donne la priorité à la bande passante par rapport à la faible latence et favorise le débit de calcul maximal par rapport à la simplicité du code de programme . Pour ces raisons, Cell est largement considéré comme un environnement difficile pour le développement de logiciels . IBM fournit une plate-forme de développement basée sur Linux pour aider les développeurs à programmer des puces Cell.

Histoire

Cell BE tel qu'il apparaît dans la PS3 sur la carte mère
Peter Hofstee , l'un des principaux architectes du microprocesseur Cell

Au milieu de 2000, Sony Computer Entertainment , Toshiba Corporation et IBM ont formé une alliance connue sous le nom de «STI» pour concevoir et fabriquer le processeur.

Le centre de conception STI a ouvert ses portes en mars 2001. La cellule a été conçue sur une période de quatre ans, en utilisant des versions améliorées des outils de conception du processeur POWER4 . Plus de 400 ingénieurs des trois sociétés ont travaillé ensemble à Austin, avec le soutien essentiel de onze des centres de conception d'IBM. Au cours de cette période, IBM a déposé de nombreux brevets relatifs à l'architecture cellulaire, au processus de fabrication et à l'environnement logiciel. Une première version de brevet du moteur à large bande s'est avérée être un paquet de puces comprenant quatre «éléments de traitement», qui était la description du brevet pour ce qui est maintenant connu sous le nom de PPE d' élément de traitement de puissance . Chaque élément de traitement contiendrait 8 « Synergistic Processing Elements » entités ad hoc sur la puce. Ce paquet de puces était censé fonctionner à une vitesse d'horloge de 4 GHz et avec 32 SPE fournissant 32  gigaFLOPS chacun (FP8 quart de précision), le moteur à large bande était censé avoir 1 teraFLOPS de puissance de calcul brute en théorie.

La conception avec 4 EPI et 32 ​​SPE n'a jamais été réalisée. Au lieu de cela, Sony et IBM ont uniquement fabriqué une conception avec un EPI et 8 SPE. Cette conception plus petite, le Cell Broadband Engine ou Cell / BE a été fabriquée à l'aide d'un processus SOI à 90 nm .

En mars 2007, IBM a annoncé que la version 65 nm de Cell / BE était en production dans son usine (à l'époque, maintenant GlobalFoundries) à East Fishkill, New York .

Bandai Namco Entertainment a utilisé le processeur Cell / BE pour sa carte d'arcade 357 ainsi que la 369 suivante.

En février 2008, IBM a annoncé qu'il commencerait à fabriquer des processeurs Cell avec le processus 45 nm .

En mai 2008, IBM a présenté la version haute performance à virgule flottante double précision du processeur Cell, le PowerXCell 8i , avec une taille de fonction de 65 nm.

En mai 2008, un supercalculateur basé sur Opteron et PowerXCell 8i, le système IBM Roadrunner , est devenu le premier système au monde à atteindre un petaFLOPS, et a été l'ordinateur le plus rapide du monde jusqu'au troisième trimestre 2009. Les trois supercalculateurs les plus économes en énergie au monde, comme représenté par la liste Green500 , sont également basés sur le PowerXCell 8i.

Le processeur Cell 45 nm a été introduit de concert avec la PlayStation 3 Slim de Sony en août 2009.

En novembre 2009, IBM avait interrompu le développement d'un processeur Cell avec 32 APU, mais développait toujours d'autres produits Cell.

Commercialisation

Le 17 mai 2005, Sony Computer Entertainment a confirmé certaines spécifications du processeur Cell qui serait expédié dans la future console PlayStation 3 . Cette configuration Cell a un PPE sur le cœur, avec huit SPE physiques en silicium. Dans la PlayStation 3, une SPE est verrouillée pendant le processus de test, une pratique qui contribue à améliorer les rendements de fabrication, et une autre est réservée au système d'exploitation, laissant 6 SPE gratuits à utiliser par le code des jeux. La fréquence d'horloge cible à l'introduction est de 3,2  GHz . La conception d'introduction est fabriquée à l'aide d'un processus SOI à 90 nm, la production en volume initial étant prévue pour l'installation d'IBM à East Fishkill, New York .

La relation entre les cœurs et les threads est une source courante de confusion. Le noyau PPE est à double thread et se manifeste dans le logiciel comme deux threads d'exécution indépendants tandis que chaque SPE actif se manifeste comme un thread unique. Dans la configuration PlayStation 3 telle que décrite par Sony, le processeur Cell fournit neuf threads d'exécution indépendants.

Le 28 juin 2005, IBM et Mercury Computer Systems ont annoncé un accord de partenariat pour construire des systèmes informatiques basés sur des cellules pour des applications embarquées telles que l'imagerie médicale , l'inspection industrielle , l' aérospatiale et la défense , le traitement sismique et les télécommunications . Mercury a depuis publié des lames , des serveurs rack conventionnels et des cartes accélératrices PCI Express avec processeurs Cell.

À l'automne 2006, IBM a lancé le module lame QS20 utilisant des processeurs double cellule BE pour des performances exceptionnelles dans certaines applications, atteignant un pic de 410 gigaFLOPS en précision au quart de FP8 par module. Le QS22 basé sur le processeur PowerXCell 8i a été utilisé pour le supercalculateur IBM Roadrunner . Mercury et IBM utilisent le processeur Cell entièrement utilisé avec huit SPE actifs. Le 8 avril 2008, Fixstars Corporation a publié une carte accélératrice PCI Express basée sur le processeur PowerXCell 8i.

Le serveur de calcul multimédia haute performance ZEGO de Sony utilise un processeur Cell / BE de 3,2 GHz.

Aperçu

La matrice "nue" (sans support de puce ) d'un processeur Cell

Le Cell Broadband Engine , ou Cell comme on l'appelle plus communément, est un microprocesseur conçu comme un hybride de processeurs de bureau conventionnels (tels que les familles Athlon 64 et Core 2 ) et de processeurs hautes performances plus spécialisés, tels que NVIDIA et Processeurs graphiques ATI ( GPU ). Le nom plus long indique son utilisation prévue, à savoir en tant que composant dans les systèmes de distribution en ligne actuels et futurs ; en tant que tel, il peut être utilisé dans des dispositifs d'affichage et d'enregistrement haute définition, ainsi que dans des systèmes HDTV . De plus, le processeur peut être adapté aux systèmes d' imagerie numérique (médical, scientifique, etc. ) et à la simulation physique ( par exemple , la modélisation d' ingénierie scientifique et structurelle ).

Dans une analyse simple, le processeur Cell peut être divisé en quatre composants: des structures d'entrée et de sortie externes, le processeur principal appelé Power Processing Element (PPE) (un cœur PowerPC 2.02 multithread simultané bidirectionnel ), huit co- des processeurs appelés les éléments de traitement synergiques , ou SPE, et un bus de données circulaire spécialisé à large bande passante reliant le PPE, les éléments d'entrée / sortie et les SPE, appelé le bus d'interconnexion d'élément ou EIB.

Pour atteindre les performances élevées requises pour les tâches mathématiquement intensives, telles que le décodage / encodage de flux MPEG , la génération ou la transformation de données tridimensionnelles ou l'analyse de Fourier des données, le processeur Cell associe les SPE et l'EPI via EIB pour donner accès, via Cache DMA (accès direct à la mémoire) totalement cohérent , à la fois à la mémoire principale et à d'autres stockages de données externes. Pour tirer le meilleur parti de la BEI, et pour superposer le calcul et le transfert de données, chacun des neuf éléments de traitement (PPE et SPE) est équipé d'un moteur DMA . Puisque les instructions de chargement / stockage de la SPE ne peuvent accéder qu'à sa propre mémoire de bloc-notes locale , chaque SPE dépend entièrement des DMA pour transférer les données vers et depuis la mémoire principale et les mémoires locales des autres SPE. Une opération DMA peut transférer soit une zone de bloc unique d'une taille allant jusqu'à 16 Ko, soit une liste de 2 à 2048 blocs de ce type. L'une des décisions de conception majeures dans l'architecture de Cell est l'utilisation des DMA comme moyen central de transfert de données intra-puce, en vue de permettre une asynchronie et une concurrence maximales dans le traitement des données à l'intérieur d'une puce.

Le PPE, qui est capable d'exécuter un système d'exploitation conventionnel, contrôle les SPE et peut démarrer, arrêter, interrompre et planifier des processus exécutés sur les SPE. À cette fin, l'EPI dispose d'instructions supplémentaires relatives au contrôle des SPE. Contrairement aux SPE, le PPE peut lire et écrire la mémoire principale et les mémoires locales des SPE via les instructions standard de chargement / stockage. Bien que les architectures de Turing soient complètes , les SPE ne sont pas totalement autonomes et nécessitent que l'EPI les amorce avant de pouvoir effectuer un travail utile. Étant donné que la plus grande partie de la «puissance» du système provient des éléments de traitement synergiques, l'utilisation du DMA comme méthode de transfert de données et l'empreinte mémoire locale limitée de chaque SPE posent un défi majeur aux développeurs de logiciels qui souhaitent tirer le meilleur parti de cette puissance, exigeant un réglage manuel minutieux des programmes pour extraire les performances maximales de ce processeur.

L'architecture du PPE et du bus comprend divers modes de fonctionnement donnant différents niveaux de protection de la mémoire , permettant de protéger des zones de mémoire contre l'accès par des processus spécifiques s'exécutant sur les SPE ou le PPE.

Le PPE et le SPE sont des architectures RISC avec un format d'instruction 32 bits à largeur fixe. Le PPE contient un jeu de registres à usage général (GPR) 64 bits, un jeu de registres à virgule flottante (FPR) 64 bits et un jeu de registres Altivec 128 bits . Le SPE contient uniquement des registres de 128 bits. Ceux-ci peuvent être utilisés pour des types de données scalaires allant de 8 bits à 64 bits ou pour des calculs SIMD sur une variété de formats entiers et à virgule flottante. Les adresses de mémoire système pour le PPE et la SPE sont exprimées sous forme de valeurs de 64 bits pour une plage d'adresses théorique de 2 à 64 octets (16 exaoctets ou 16 777 216 téraoctets). En pratique, tous ces bits ne sont pas implémentés dans le matériel. Les adresses de mémoire locale internes au processeur SPU (Synergistic Processor Unit) sont exprimées sous la forme d'un mot de 32 bits. Dans la documentation relative à Cell, un mot signifie toujours 32 bits, un double mot signifie 64 bits et un quadruple mot signifie 128 bits.

PowerXCell 8i

En 2008, IBM a annoncé une variante révisée de la cellule appelée PowerXCell 8i , qui est disponible dans les serveurs lame QS22 d'IBM. Le PowerXCell est fabriqué sur un processus de 65 nm et prend en charge jusqu'à 32 Go de mémoire DDR2 à fente, ainsi qu'une amélioration spectaculaire des performances en virgule flottante double précision sur les SPE d'un pic d'environ 12,8  GFLOPS à 102,4 GFLOPS au total pour huit SPE, qui, par coïncidence, sont les mêmes performances de pointe que le processeur vectoriel NEC SX-9 sorti à peu près au même moment. Le supercalculateur IBM Roadrunner , le plus rapide au monde de 2008 à 2009, était composé de 12 240 processeurs PowerXCell 8i, ainsi que de 6 562 processeurs AMD Opteron . Les superordinateurs alimentés par PowerXCell 8i ont également dominé tous les 6 systèmes les plus «verts» de la liste Green500, avec les supercalculateurs au rapport MFLOPS / Watt le plus élevé au monde. Outre le QS22 et les supercalculateurs, le processeur PowerXCell est également disponible en tant qu'accélérateur sur une carte PCI Express et est utilisé comme processeur principal dans le projet QPACE .

Depuis que le PowerXCell 8i a supprimé l'interface mémoire RAMBUS et ajouté des interfaces DDR2 beaucoup plus grandes, et des SPE améliorés, la disposition de la puce a dû être retravaillée, ce qui a entraîné à la fois une puce et un emballage plus grands.

Architecture

Alors que la puce Cell peut avoir un certain nombre de configurations différentes, la configuration de base est une puce multicœur composée d'un «Power Processor Element» («PPE») (parfois appelé «Processing Element» ou «PE»), et de plusieurs «Éléments de traitement synergique» («SPE»). Le PPE et les SPE sont reliés entre eux par un bus interne à grande vitesse appelé "Element Interconnect Bus" ("EIB").

Élément de processeur de puissance (PPE)

Le PPE est le cœur multithread bidirectionnel bidirectionnel basé sur PowerPC , à double émission dans l'ordre, avec un pipeline à 23 étages servant de contrôleur pour les huit SPE, qui gèrent la majeure partie de la charge de travail de calcul. L'EPI a des capacités d'exécution limitées dans le désordre; il peut effectuer des charges dans le désordre et a retardé les pipelines d'exécution . Le PPE fonctionnera avec les systèmes d'exploitation conventionnels en raison de sa similitude avec les autres processeurs PowerPC 64 bits, tandis que les SPE sont conçus pour l'exécution de code en virgule flottante vectorisée. Le PPE contient un cache de niveau 1 de 64 Ko (instruction de 32 Ko et données de 32 Ko) et un cache de niveau 2 de 512 Ko. La taille d'une ligne de cache est de 128 octets. En outre, IBM a inclus une unité AltiVec (VMX) qui est entièrement pipelinée pour la virgule flottante simple précision (Altivec 1 ne prend pas en charge les vecteurs à virgule flottante double précision .), Unité à virgule flottante (FXU) 32 bits avec fichier de registre 64 bits par thread, unité de chargement et de stockage (LSU) , unité à virgule flottante 64 bits (FPU) , unité de branche (BRU) et unité d'exécution de branche (BXU). L'EPI se compose de trois unités principales: l'unité d'instruction (IU), l'unité d'exécution (XU) et l'unité d'exécution vectorielle / scalaire (VSU). IU contient un cache d'instructions L1, du matériel de prédiction de branche, des tampons d'instructions et une connexion de vérification des dépendances. XU contient des unités d'exécution d'entiers (FXU) et une unité de stockage de charge (LSU). VSU contient toutes les ressources d'exécution pour FPU et VMX. Chaque PPE peut effectuer deux opérations de double précision par cycle d'horloge à l'aide d'une instruction scalaire fusionnée-multiplier-addition, ce qui se traduit par 6,4  GFLOPS à 3,2 GHz; ou huit opérations de précision simple par cycle d'horloge avec une instruction vectorielle fusionnée-multiplication-addition, ce qui se traduit par 25,6 GFLOPS à 3,2 GHz.

Xenon sur Xbox 360

L'EPI a été conçu spécifiquement pour le processeur Cell, mais lors du développement, Microsoft a approché IBM en voulant un cœur de processeur haute performance pour sa Xbox 360 . IBM s'est conformé et a fabriqué le processeur Xenon tri-core , basé sur une version légèrement modifiée du PPE avec des extensions VMX128 ajoutées.

Éléments de traitement synergique (SPE)

Chaque SPE est un processeur à double émission dans l'ordre composé d'une «unité de traitement synergique», SPU et d'un «contrôleur de flux de mémoire», MFC ( DMA , MMU et interface de bus). Les SPE ne disposent d'aucun matériel de prédiction de branche (d'où une lourde charge sur le compilateur). Chaque SPE dispose de 6 unités d'exécution réparties entre des pipelines impairs et pairs sur chaque SPE: La SPU exécute un jeu d'instructions spécialement développé (ISA) avec une organisation SIMD de 128 bits pour les instructions à simple et double précision. Avec la génération actuelle de Cell, chaque SPE contient une SRAM intégrée de 256  KiB pour les instructions et les données, appelée "Local Storage" (à ne pas confondre avec "Local Memory" dans les documents de Sony faisant référence à la VRAM) qui est visible par le EPI et peut être adressé directement par logiciel. Chaque SPE peut prendre en charge jusqu'à 4 Gio de mémoire de stockage locale. Le magasin local ne fonctionne pas comme un cache CPU conventionnel car il n'est ni transparent pour le logiciel ni ne contient de structures matérielles qui prédisent les données à charger. Les SPE contiennent un fichier de registre de 128 bits, 128 entrées et mesurent 14,5 mm 2 sur un processus de 90 nm. Une SPE peut fonctionner sur seize entiers 8 bits, huit entiers 16 bits, quatre entiers 32 bits ou quatre nombres à virgule flottante simple précision en un seul cycle d'horloge, ainsi qu'une opération de mémoire. Notez que le SPU ne peut pas accéder directement à la mémoire système; les adresses de mémoire virtuelle 64 bits formées par le SPU doivent être transmises du SPU au contrôleur de flux de mémoire SPE (MFC) pour configurer une opération DMA dans l'espace d'adressage système.

Dans un scénario d'utilisation typique, le système chargera les SPE avec de petits programmes (similaires aux threads ), enchaînant les SPE ensemble pour gérer chaque étape d'une opération complexe. Par exemple, un décodeur peut charger des programmes de lecture d'un DVD, de décodage vidéo et audio et d'afficher, et les données seraient transmises de SPE à SPE jusqu'à ce qu'elles se retrouvent finalement sur le téléviseur. Une autre possibilité est de partitionner l'ensemble de données d'entrée et de faire en sorte que plusieurs SPE exécutent le même type d'opération en parallèle. À 3,2 GHz, chaque SPE donne un 25,6 GFLOPS théorique de performances en simple précision.

Par rapport à ses contemporains d' ordinateurs personnels , les performances globales en virgule flottante relativement élevées d'un processeur Cell éclipsent apparemment les capacités de l'unité SIMD dans les processeurs comme le Pentium 4 et l' Athlon 64 . Cependant, comparer uniquement les capacités en virgule flottante d'un système est une métrique unidimensionnelle et spécifique à l'application. Contrairement à un processeur Cell, ces processeurs de bureau sont plus adaptés aux logiciels polyvalents généralement exécutés sur des ordinateurs personnels. En plus d'exécuter plusieurs instructions par horloge, les processeurs d'Intel et d'AMD disposent de prédicteurs de branche . La cellule est conçue pour compenser cela avec l'aide du compilateur, dans laquelle des instructions de préparation à la branche sont créées. Pour les opérations en virgule flottante à double précision, parfois utilisées dans les ordinateurs personnels et souvent utilisées dans le calcul scientifique, les performances des cellules chutent d'un ordre de grandeur, mais atteignent toujours 20,8 GFLOPS (1,8 GFLOPS par SPE, 6,4 GFLOPS par PPE). La variante PowerXCell 8i, spécialement conçue pour la double précision, atteint 102,4 GFLOPS dans les calculs en double précision.

Les tests d'IBM montrent que les SPE peuvent atteindre 98% de leurs performances de pointe théoriques en utilisant une multiplication de matrice parallèle optimisée.

Toshiba a développé un coprocesseur alimenté par quatre SPE, mais pas d'EPI, appelé SpursEngine, conçu pour accélérer les effets 3D et vidéo dans l'électronique grand public.

Chaque SPE dispose d'une mémoire locale de 256 Ko. Au total, les SPE disposent de 2 Mo de mémoire locale.

Bus d'interconnexion d'élément (EIB)

L'EIB est un bus de communication interne au processeur Cell qui relie les différents éléments du système sur puce: le processeur PPE, le contrôleur de mémoire (MIC), les huit coprocesseurs SPE et deux interfaces d'E / S hors puce, pour un total de 12 participants à la PS3 (le nombre de SPU peut varier dans les applications industrielles). La BEI comprend également une unité d'arbitrage qui fonctionne comme un ensemble de feux de signalisation. Dans certains documents, IBM désigne les participants à la BEI comme des «unités».

L'EIB est actuellement mis en œuvre sous la forme d'un anneau circulaire composé de quatre canaux unidirectionnels de 16 octets de largeur qui contre-tournent par paires. Lorsque les modèles de trafic le permettent, chaque canal peut acheminer jusqu'à trois transactions simultanément. Comme l'EIB fonctionne à la moitié de la fréquence d'horloge système, la fréquence effective du canal est de 16 octets toutes les deux horloges système. À concurrence maximale , avec trois transactions actives sur chacun des quatre anneaux, la bande passante instantanée maximale de la BEI est de 96 octets par horloge (12 transactions simultanées x 16 octets de largeur / 2 horloges système par transfert). Bien que ce chiffre soit souvent cité dans la littérature IBM, il n'est pas réaliste de simplement mettre à l'échelle ce nombre en fonction de la vitesse d'horloge du processeur. L'unité d'arbitrage impose des contraintes supplémentaires .

David Krolak , ingénieur senior chez IBM , concepteur principal de la BEI, explique le modèle de concurrence:

Un anneau peut démarrer une nouvelle opération tous les trois cycles. Chaque transfert prend toujours huit battements. C'était l'une des simplifications que nous avons apportées, elle est optimisée pour diffuser beaucoup de données. Si vous faites de petites opérations, cela ne fonctionne pas aussi bien. Si vous pensez à des trains de huit voitures circulant autour de cette voie, tant que les trains ne se rencontrent pas, ils peuvent coexister sur la voie.

Chaque participant sur l'EIB dispose d'un port de lecture de 16 octets et d'un port d'écriture de 16 octets. La limite pour un seul participant est de lire et d'écrire à un taux de 16 octets par horloge EIB (pour simplifier, on considère souvent 8 octets par horloge système). Chaque processeur SPU contient une file d'attente de gestion DMA dédiée capable de programmer de longues séquences de transactions vers divers points d'extrémité sans interférer avec les calculs en cours de la SPU; ces files d'attente DMA peuvent également être gérées localement ou à distance, ce qui offre une flexibilité supplémentaire dans le modèle de contrôle.

Les données circulent sur un canal EIB pas à pas autour de l'anneau. Puisqu'il y a douze participants, le nombre total de pas autour du canal pour revenir au point d'origine est de douze. Six étapes est la distance la plus longue entre une paire de participants. Un canal EIB n'est pas autorisé à transporter des données nécessitant plus de six étapes; ces données doivent emprunter l'itinéraire le plus court autour du cercle dans l'autre sens. Le nombre d'étapes impliquées dans l'envoi du paquet a très peu d'impact sur la latence de transfert: la vitesse d'horloge pilotant les étapes est très rapide par rapport à d'autres considérations. Cependant, des distances de communication plus longues sont préjudiciables à la performance globale de la BEI car elles réduisent la concurrence disponible.

Malgré la volonté initiale d'IBM d'implémenter l'EIB comme une barre transversale plus puissante, la configuration circulaire qu'ils ont adoptée pour économiser les ressources représente rarement un facteur limitant sur les performances de la puce Cell dans son ensemble. Dans le pire des cas, le programmeur doit prendre des précautions supplémentaires pour planifier des modèles de communication dans lesquels la BEI est capable de fonctionner à des niveaux de concurrence élevés.

David Krolak a expliqué:

Eh bien, au début, au début du processus de développement, plusieurs personnes poussaient pour un commutateur crossbar, et la façon dont le bus est conçu, vous pourriez en fait retirer l'EIB et mettre un commutateur crossbar si vous étiez prêt à consacrer plus de silicium. espace sur la puce au câblage. Nous avons dû trouver un équilibre entre la connectivité et la zone, et il n'y avait tout simplement pas assez de place pour mettre un commutateur crossbar complet. Nous avons donc proposé cette structure en anneau que nous pensons très intéressante. Il s'inscrit dans les contraintes de la zone et dispose toujours d'une bande passante très impressionnante.

Évaluation de la bande passante

À 3,2 GHz, chaque canal circule à un débit de 25,6 Go / s. En regardant la BEI indépendamment des éléments du système qu'elle connecte, la réalisation de douze transactions simultanées à ce débit équivaut à une bande passante EIB abstraite de 307,2 Go / s. Sur la base de cette vue, de nombreuses publications IBM décrivent la bande passante EIB disponible comme "supérieure à 300 Go / s". Ce nombre reflète la largeur de bande EIB instantanée maximale mise à l'échelle par la fréquence du processeur.

Cependant, d'autres restrictions techniques interviennent dans le mécanisme d'arbitrage des paquets acceptés sur le bus. Le groupe IBM Systems Performance a expliqué:

Chaque unité de l'EIB peut envoyer et recevoir simultanément 16 octets de données à chaque cycle de bus. La bande passante de données maximale de l'ensemble de l'EIB est limitée par le débit maximal auquel les adresses sont espionnées sur toutes les unités du système, qui est d'une par cycle de bus. Étant donné que chaque demande d'adresse surveillée peut potentiellement transférer jusqu'à 128 octets, la bande passante de données de crête théorique sur l'EIB à 3,2 GHz est de 128Bx1,6 GHz = 204,8 Go / s.

Cette citation représente apparemment toute l'étendue de la divulgation publique par IBM de ce mécanisme et de son impact. L'unité d'arbitrage EIB, le mécanisme de surveillance et la génération d'interruptions sur les défauts de traduction de segment ou de page ne sont pas bien décrits dans l'ensemble de documentation encore rendu public par IBM.

Dans la pratique, la largeur de bande effective de la BEI peut également être limitée par les participants à l'anneau impliqués. Alors que chacun des neuf cœurs de traitement peut supporter 25,6 Go / s en lecture et en écriture simultanément, le contrôleur d'interface mémoire (MIC) est lié à une paire de canaux de mémoire XDR permettant un débit maximum de 25,6 Go / s pour les lectures et écritures combinées et le deux contrôleurs IO sont documentés comme prenant en charge une vitesse d'entrée combinée maximale de 25,6 Go / s et une vitesse de sortie combinée maximale de 35 Go / s.

Pour ajouter encore à la confusion, certaines publications plus anciennes citent la bande passante de la BEI en supposant une horloge système de 4 GHz. Ce cadre de référence se traduit par une valeur de bande passante EIB instantanée de 384 Go / s et une valeur de bande passante limitée par l'arbitrage de 256 Go / s.

Tout bien considéré, le nombre théorique de 204,8 Go / s le plus souvent cité est le meilleur à garder à l'esprit. Le groupe IBM Systems Performance a démontré que des flux de données centrés sur SPU atteignent 197 Go / s sur un processeur Cell fonctionnant à 3,2 GHz, ce chiffre reflète donc également la pratique.

Contrôleurs de mémoire et d'E / S

La cellule contient une macro Rambus XIO à double canal qui s'interface avec la mémoire Rambus XDR . Le contrôleur d'interface de mémoire (MIC) est distinct de la macro XIO et est conçu par IBM. La liaison XIO-XDR fonctionne à 3,2 Gbit / s par broche. Deux canaux 32 bits peuvent fournir un maximum théorique de 25,6 Go / s.

L'interface d'E / S, également de conception Rambus, est connue sous le nom de FlexIO . L'interface FlexIO est organisée en 12 voies, chaque voie étant un chemin point à point unidirectionnel de 8 bits de large. Cinq chemins point à point de 8 bits de large sont des voies entrantes vers Cell, tandis que les sept autres sont sortantes. Cela fournit une bande passante de pointe théorique de 62,4 Go / s (36,4 Go / s en sortie, 26 Go / s en entrée) à 2,6 GHz. L'interface FlexIO peut être cadencée indépendamment, typ. à 3,2 GHz. 4 voies entrantes + 4 voies sortantes prennent en charge la cohérence de la mémoire.

Applications possibles

Carte de traitement vidéo

Certaines sociétés, telles que Leadtek , ont lancé des cartes PCI-E basées sur la Cellule pour permettre un transcodage "plus rapide qu'en temps réel" de la vidéo H.264 , MPEG-2 et MPEG-4 .

Serveur lame

Le 29 août 2007, IBM a annoncé le BladeCenter QS21. Générant des opérations en virgule flottante mesurées de 1,05 giga par seconde (gigaFLOPS) par watt, avec des performances de pointe d'environ 460 GFLOPS, c'est l'une des plates-formes informatiques les plus écoénergétiques à ce jour. Un seul châssis BladeCenter peut réaliser 6,4 opérations en virgule flottante téra par seconde (teraFLOPS) et plus de 25,8 teraFLOPS dans un rack 42U standard.

Le 13 mai 2008, IBM a annoncé le BladeCenter QS22. Le QS22 présente le processeur PowerXCell 8i avec cinq fois les performances en virgule flottante double précision du QS21 et la capacité jusqu'à 32 Go de mémoire DDR2 sur lame.

IBM a arrêté la gamme de serveurs Blade basés sur des processeurs Cell à compter du 12 janvier 2012.

Carte PCI Express

Plusieurs sociétés fournissent des cartes PCI-e utilisant IBM PowerXCell 8i. Les performances sont indiquées comme 179,2 GFlops (SP), 89,6 GFlops (DP) à 2,8 GHz.

Jeux vidéo sur console

La console de jeu vidéo PlayStation 3 de Sony a été la première application de production du processeur Cell, cadencé à 3,2  GHz et contenant sept des huit SPE opérationnels, pour permettre à Sony d'augmenter le rendement de la fabrication du processeur. Seuls six des sept SPE sont accessibles aux développeurs car l'un est réservé par le système d'exploitation.

Home cinéma

Toshiba a produit des téléviseurs HD à l' aide de Cell. Ils ont présenté un système pour décoder simultanément 48 flux MPEG-2 de définition standard sur un écran de 1920 × 1080 . Cela peut permettre à un spectateur de choisir une chaîne en fonction de dizaines de vidéos miniatures affichées simultanément à l'écran.

Supercalcul

Le supercalculateur d' IBM , IBM Roadrunner , était un hybride d' Opteron x86-64 à usage général ainsi que de processeurs Cell. Ce système a pris la première place dans le Top 500 de juin 2008 en tant que premier supercalculateur à fonctionner à des vitesses petaFLOPS , ayant gagné une vitesse soutenue de 1,026 petaFLOPS en utilisant le benchmark Linpack standard . IBM Roadrunner a utilisé la version PowerXCell 8i du processeur Cell, fabriqué à l'aide de la technologie 65 nm et de SPU améliorées capables de gérer des calculs de double précision dans les registres de 128 bits, atteignant une double précision de 102 GFLOP par puce.

Informatique en cluster

Les grappes de consoles PlayStation 3 sont une alternative intéressante aux systèmes haut de gamme basés sur les lames Cell. Innovative Computing Laboratory, un groupe dirigé par Jack Dongarra , du département d'informatique de l'Université du Tennessee, a étudié en profondeur une telle application. Terrasoft Solutions vend des clusters PS3 à 8 nœuds et 32 ​​nœuds avec Yellow Dog Linux pré-installé, une implémentation de la recherche de Dongarra.

Comme rapporté pour la première fois par Wired le 17 octobre 2007, une application intéressante d'utilisation de la PlayStation 3 dans une configuration de cluster a été mise en œuvre par l'astrophysicien Gaurav Khanna, du département de physique de l' Université du Massachusetts à Dartmouth , qui a remplacé le temps utilisé sur les supercalculateurs par un cluster de huit PlayStation 3s. Par la suite, la prochaine génération de cette machine, maintenant appelée PlayStation 3 Gravity Grid , utilise un réseau de 16 machines et exploite le processeur Cell pour l'application prévue qui est la coalescence binaire des trous noirs en utilisant la théorie des perturbations . En particulier, le cluster effectue des simulations astrophysiques de grands trous noirs supermassifs capturant des objets compacts plus petits et a généré des données numériques qui ont été publiées à plusieurs reprises dans la littérature scientifique pertinente. La version du processeur Cell utilisée par la PlayStation 3 dispose d'un processeur principal et de 6 SPE disponibles pour l'utilisateur, donnant à la machine Gravity Grid un réseau de 16 processeurs polyvalents et 96 processeurs vectoriels. La machine a un coût unique de 9 000 $ à construire et est adéquate pour les simulations de trous noirs qui coûteraient autrement 6 000 $ par exécution sur un supercalculateur conventionnel. Les calculs du trou noir ne sont pas gourmands en mémoire et sont hautement localisables, et sont donc bien adaptés à cette architecture. Khanna affirme que les performances du cluster dépassent celles d'un cluster Linux traditionnel basé sur plus de 100 cœurs Intel Xeon sur ses simulations. La PS3 Gravity Grid a attiré l'attention des médias en 2007, 2008, 2009 et 2010.

Le laboratoire de biochimie et biophysique computationnelle de l' Universitat Pompeu Fabra , à Barcelone , a déployé en 2007 un système BOINC appelé PS3GRID pour le calcul collaboratif basé sur le logiciel CellMD, le premier conçu spécifiquement pour le processeur Cell.

Le laboratoire de recherche de l'armée de l'air des États-Unis a déployé un cluster PlayStation 3 de plus de 1700 unités, surnommé le «Condor Cluster», pour analyser les images satellite haute résolution . L'armée de l'air affirme que le groupe Condor serait le 33e plus grand supercalculateur au monde en termes de capacité. Le laboratoire a ouvert le supercalculateur aux universités pour la recherche.

Informatique distribuée

Grâce à la puissance de calcul de plus d'un demi-million de consoles PlayStation 3, le projet d'informatique distribuée Folding @ home a été reconnu par Guinness World Records comme le réseau distribué le plus puissant au monde. Le premier record a été atteint le 16 septembre 2007, le projet dépassant un petaFLOPS , ce qui n'avait jamais été atteint auparavant par un réseau informatique distribué. De plus, les efforts collectifs ont permis à la PS3 à elle seule d'atteindre la marque petaFLOPS le 23 septembre 2007. En comparaison, le deuxième supercalculateur le plus puissant du monde à l'époque, BlueGene / L d' IBM , fonctionnait à environ 478,2 teraFLOPS, ce qui signifie que le calcul de Folding @ home la puissance est environ deux fois celle de BlueGene / L (bien que l'interconnexion du processeur dans BlueGene / L soit plus d'un million de fois plus rapide que la vitesse moyenne du réseau dans Folding @ home). Au 7 mai 2011, Folding @ home fonctionnait à environ 9,3 petaFLOPS x86, avec 1,6 petaFLOPS généré par 26 000 PS3 actives seules. À la fin de 2008, un cluster de 200 consoles PlayStation 3 a été utilisé pour générer un certificat SSL non autorisé, déchiffrant efficacement son cryptage.

Mainframes

IBM a annoncé le 25 avril 2007 qu'il commencerait à intégrer ses microprocesseurs à architecture de moteur à large bande dans la gamme de mainframes de l'entreprise . Cela a conduit au Gameframe .

Cracking de mot de passe

L'architecture du processeur le rend mieux adapté aux applications d' attaque par force brute cryptographique assistée par matériel que les processeurs conventionnels.

Génie logiciel

En raison de la nature flexible de la cellule, il existe plusieurs possibilités d'utilisation de ses ressources, qui ne se limitent pas à des paradigmes informatiques différents:

File d'attente des travaux

Le PPE gère une file d'attente de travaux, planifie les travaux dans les SPE et surveille la progression. Chaque SPE exécute un "mini noyau" dont le rôle est de récupérer un travail, de l'exécuter et de se synchroniser avec le PPE.

Auto-multitâche des SPE

Le mini noyau et la planification sont répartis entre les SPE. Les tâches sont synchronisées à l'aide de mutex ou de sémaphores comme dans un système d'exploitation conventionnel . Les tâches prêtes à être exécutées attendent dans une file d'attente qu'un SPE les exécute. Les SPE utilisent la mémoire partagée pour toutes les tâches de cette configuration.

Traitement de flux

Chaque SPE exécute un programme distinct. Les données proviennent d'un flux d'entrée et sont envoyées aux SPE. Lorsqu'une SPE a terminé le traitement, les données de sortie sont envoyées à un flux de sortie.

Cela fournit une architecture flexible et puissante pour le traitement de flux et permet une planification explicite pour chaque SPE séparément. D'autres processeurs sont également capables d'effectuer des tâches de streaming, mais sont limités par le noyau chargé.

Développement de logiciels open source

En 2005, des correctifs permettant la prise en charge de Cell dans le noyau Linux ont été soumis pour inclusion par les développeurs IBM. Arnd Bergmann (l'un des développeurs des correctifs susmentionnés) a également décrit l'architecture Cell basée sur Linux au LinuxTag 2005. Depuis la version 2.6.16 (20 mars 2006), le noyau Linux prend officiellement en charge le processeur Cell.

Les PPE et SPE sont programmables en C / C ++ à l'aide d'une API commune fournie par les bibliothèques.

Fixstars Solutions fournit Yellow Dog Linux pour les systèmes IBM et Mercury Cell, ainsi que pour la PlayStation 3. Terra Soft a établi un partenariat stratégique avec Mercury pour fournir un package de support Linux Board pour Cell, ainsi que le support et le développement d'applications logicielles sur diverses autres Cell plates-formes, y compris les solutions IBM BladeCenter JS21 et Cell QS20, et Mercury Cell. Terra Soft gère également la suite de construction et de gestion du cluster Y-HPC (High Performance Computing) et les outils de séquençage de gènes Y-Bio. Y-Bio est basé sur la norme RPM Linux pour la gestion des paquets et propose des outils qui aident les chercheurs en bioinformatique à mener leur travail avec une plus grande efficacité. IBM a développé un pseudo-système de fichiers pour Linux appelé "Spufs" qui simplifie l'accès et l'utilisation des ressources SPE. IBM maintient actuellement un noyau Linux et des ports GDB , tandis que Sony maintient la chaîne d'outils GNU ( GCC , binutils ).

En novembre 2005, IBM a publié sur son site Web un "Kit de développement de logiciels de moteur à large bande (CBE) version 1.0", composé d'un simulateur et de divers outils. Les versions de développement du dernier noyau et des derniers outils pour Fedora Core 4 sont maintenues sur le site Web du Barcelona Supercomputing Center .

En août 2007, Mercury Computer Systems a publié un kit de développement logiciel pour PLAYSTATION (R) 3 pour le calcul haute performance.

En novembre 2007, Fixstars Corporation a publié le nouveau module «CVCell» visant à accélérer plusieurs API OpenCV importantes pour Cell. Dans une série de tests de calcul logiciel, ils ont enregistré des temps d'exécution sur un processeur Cell 3,2 GHz qui étaient entre 6x et 27x plus rapides par rapport au même logiciel sur un Intel Core 2 Duo 2,4 GHz.

Galerie

Illustrations des différentes générations de processeurs Cell / BE et du PowerXCell 8i. Les images ne sont pas à l'échelle; Tous les boîtiers Cell / BE mesurent 42,5 × 42,5 mm et le PowerXCell 8i mesure 47,5 × 47,5 mm.

Voir également

Les références

Liens externes