Soviel ich weiß wurden auch die ersten Mehrkern-CPUs ab 8 Kerne (Cell Prozessor) für die Konsolen eingeführt.
Da gab es die für den PC nur auf teuren Highend-Sockeln.
Ich denke schon das so etwas die Entwicklung insgesamt beschleunigt hat.
Und nicht wie manche behaupten, dass die Konsolen die Entwicklung ausbremsen würden.
Im Grunde basiert der Cell auf einem IBM RISC prozessor mit einem Kern 1C/2T, dazu gesellen sich die speziellen Recheneinheiten, 7 SPU´s davon in der PS3 damit die Ausbeute erhöht werden konnte.
Dies war auch der Grund warum die Entwickler irgendwann die PS3 als Mainplattform gewählt hatten, denn die optimierung für PS3 war schwieriger, und was auf PS3 lief, lief im Grunde auch auf Xbox.
Daher würde ich sage, dass es keine richtige 8 Kern CPU sei im klassischen Sinne. Die Xbox 360 hatte 3 Kern IBM RISC CPU mit 6Threads jedoch nur "In Order", was sie bestimmt etwas ausgebremst hat.
Für meinen Fall super interessant. Mich hat schon immer beeindruckt, dass Grafik und Physik auf PS3 super inteagiert hat. Schnee & Wasser als Beispiel in Uncharted 2.
Dafür war die Wasserdarstellung auf der Xbox grandiös Beispiel Bioshock das einige Befehle von DX10 auf der 360 nutzen konnte.
Quelle:
https://de.wikipedia.org/wiki/Cell_(Prozessor)
Das Grundkonzept der Cell-Prozessoren sieht acht
Synergistic Processing Elements (SPE) und ein
PowerPC Processing Element (PPE) vor. Die einzelnen
Prozessorkerne sind über einen
Element Interconnect Bus (EIB) gekoppelt, der Daten mit bis zu 96 Byte pro CPU-Takt übertragen kann. Sowohl das PPE als auch die SPEs können pro CPU-Takt mit 8 Bytes auf den EIB zugreifen. Der EIB ist dabei als Ringbus (4× 128 Bit) realisiert und wird mit halbem CPU-Takt getaktet. Der Zugriff auf den Hauptspeicher erfolgt über einen Memory Interface Controller (MIC).
[1]
Power Processor Element (PPE)
Der Steuerprozessor (PPE) basiert auf der
64-Bit-PowerPC-Architektur von
IBM, dessen
Pipeline aber im Vergleich zu üblichen PowerPC-Prozessoren in order, das heißt nacheinander abarbeitend, arbeitet. Jedoch verfügt das PPE über
Delayed-Execution Pipelines, welche Out-Of-Order Execution zumindest für Load Instructions erlauben.
[8] Da er zwei
Threads gleichzeitig abarbeiten kann, entstehen bei entsprechend eingerichteten Programmen die üblichen In-Order-Nachteile durch blockierte Pipelines in geringerem Maße. Dem PPE stehen 512 KB L2-
Cache zur Verfügung. Insgesamt verfügt die
CPU also über 2,5 MB internen Speicher.
Synergistic Processing Unit (SPU)
Eine SPU arbeitet mit zwei
Pipelines (
even und
odd), die insgesamt 23-Stufen lang sind. Die
even Pipeline beherbergt die Floating Point und Fixed Point Units, während sich sämtliche andere Funktionseinheiten auf der
odd Pipeline befinden. Eine SPU kann zwei Instruktionen pro Takt ausführen (
dual issue), davon je eine pro Pipeline. Dies entspricht maximal acht Gleitkommaoperationen pro Takt bei einfacher Genauigkeit. Bei 3,2 GHz Taktrate ergibt sich somit eine theoretische Leistung von 25,6 GFLOPS pro SPU.
[5]
Implementiert ist lediglich eine statische Sprungvorhersage. Wichtig ist in diesem Bezug deshalb die Leistung des Compilers, da
Pipeline-Hazards eine Wartezeit von 18 Takten nach sich ziehen. Die hohe Anzahl an Registersätzen hilft zusätzlich Latenzen zu überbrücken, indem Schleifen aufgelöst (
Loop unrolling) oder Algorithmen mehrfach parallel ausgeführt werden können.
[3]
Bei den SPUs handelt es sich nicht um
Koprozessoren. Sie können unabhängig voneinander arbeiten und sind zudem kompatibel zu PPE-Programmcode, sofern dieser rekompiliert und um DMA-Calls erweitert wurde. Obwohl SPUs für spezifischere Anwendungsgebiete entworfen wurden, handelt es sich um Prozessoren mit General Purpose
Instruction Set.
[6][7]