Xbox 360 GPU A Vector Co-Processor?
Anyone Seen Thomas? writes "While Beyond3D's article on the ATI C1 (XENOS) graphics processor in the XBOX 360 gives you all you need to know about ATI's next generation hardware in terms of generating screen pixels, it also gives a big clue as to how it'll be useful for general purpose vector programming. XENOS is able to write data out of its unified memory architecture into system memory, and read it back again later. So with a large pool of powerful vector hardware available, does anyone fancy the idea of having a generalised , high-performance vector processor in their PC?. Read about that and the rest of XENOS." From the article: "Since XBOX 360's announcement and ATI's unleashing from the non disclosure agreements we've had the chance to not just chat with Robert Feldstein, VP of Engineering, but also Joe Cox, Director of Engineering overseeing the XBOX graphics design team, and two lead architects of the graphics processor, Clay Taylor and Mark Fowler. Here we hope to accurately impart a slightly deeper understanding of the XBOX 360 graphics processor, how it sits within the system, understand more about its operation as well as give some insights into the capabilities of the processor."
Yes, that was the point I was trying to make. Since this article says DirectX has been basically thrown out the window when designing the XBox360's GPU it will alienate a lot of the game developers that were drawn to the original XBox. Ports of Windows games will also need to rework all their SSE optimizations to altivec and make sure their code is big endian safe for the PowerPC CPUs.
I have never written a game for the original XBox but I know you can't rely on DirectX8 completely for 3D. The XBox's 3D API is just strongly based on DirectX8. To utilize the XBox's console properties(like truly shared RAM) you have to use some extra libraries that Microsoft included in the XDK.
The PSP's CPU architechture is VERY close the the PS2's, but the PS3 is a whole nother beast. The PS2 has 2 VPUs with 32 128-bit(4x32bit) floating point registers and 16 integer registers with 16KB of Data Memory. The main CPU is MIPs based. The PS3 uses the new CELL CPU which is PowerPC based, the CELL will use 7 SPEs that each have 128 128bit registers and each has 256KB SRAM.
The PS3's SPEs will be used very sililarly to the PS2's SPUs(dot-products, etc) although they are much much bigger, there are a lot more of them, and they are a LOT faster. The CELL CPU was developed by Sony, Toshiba, and IBM and is slated to be put into TVs, PVRs, etc. It is very good at compression/decrompression, showed it off decoding 48 MPEG2 streams with power to spare.
So the answer to your question is; not yet. Sony will put a CELL CPU in many of their electronics, but not until it is cheaper.
Think about it for a minute. What component in the system is going to be hitting memory the most? (hint: it renders textures to the screen) Look at what kind of bus that most PC video cards have between the GPU and on-card memory -- they're built to reduce latency as much as possible.
.
Moving the memory controller onto the same die as the GPU yields a non-trivial performance benefit both in available bandwidth and latency (look at what kind of gains AMD got by moving the NB on-chip)
If the controller were on neither the CPU or the GPU, you end up with performance of both the CPU and GPU decreasing and higher production costs (more chips to produce/install and more traces on the board).
If the controller had been moved onto the CPU, CPU performance would be better but GPU performance would suffer. CPU performance constraints can be reduced significantly by proper management of the L2 cache. However, caching for a GPU is not an effective stratedgy given that most of the bandwidth needed is either pushing rendered data out to memory (never to be read again) or pulling in data for textures. In other words, placing the memory controller on the CPU is not an optimal performance gain.
Sticking that puppy on the GPU was definately the right decision.