Hardware Behind the Consoles - Part I: Microsoft's Xboxby Anand Lal Shimpi on November 21, 2001 3:47 AM EST
- Posted in
PS2 vs. Xbox: Graphics Processors
Here is where the PS2 and Xbox differ tremendously in approaches to graphics processor design. Again we'll start out with the PS2 first. The task of rendering is left to the Graphics Synthesizer (GS) which is a massively parallel graphics core running at 150MHz. The low clock speed of the core is theoretically made up for by the fact that it has 16 pixel pipelines giving a theoretical pixel fill rate of 2.4 gigapixels/s and a peak theoretical texel fill rate of 1.2 gigatexels/s for single textured games. We all know how reliable theoretical fill rates are so we'll leave the specs at that, but it is pertinent to point out that these fill rates are entirely dependent on 100% utilization of the 16 pixel pipelines of the GS. As we know from our experience with execution units in CPUs, that sort of assumption should never be made.
In order to keep those pipelines filled, Sony designed the GS around 4MB of embedded DRAM on the die of the GS and connected to the pixel pipelines by a 2560-bit (that's not a typo) bus. When operating at 150MHz this gives the GS a 48GB/s path to its 4MB of eDRAM. The theory behind this is that with that much bandwidth, keeping all 16 pixel pipes filled should not be a problem. This is one of the strong points of the GS design although it is highly unconventional due to the sheer die space and bandwidth requirements of the massively parallel pixel pipeline design.
The problem is that as you very well know, 4MB is not enough to store all of the information necessary to render frames that are supposed to be displayed at 60 fps. Thus the GS is in need of a high speed external memory bus. As with all consoles, the graphics processor and host CPU share the same memory space and bus. In the case of the PS2, Sony decided to go the Rambus route and outfitted the PS2 with 32MB of dual channel PC800 RDRAM. This is the same memory bus configuration as the Pentium 4 and thus offers 3.2GB/s of memory bandwidth to be shared between the EE and GS. This is hardly enough memory bandwidth and hardly enough memory storage for game execution code as well as high resolution textures. This is generally why most PS2 games are limited to relatively low resolution textures compared to what we're used to seeing on PCs. While the embedded DRAM of the GS core definitely helps out, there is still room for improvement.
Anti-aliasing can be done by the GS however memory bandwidth and fill rate constraints are very present since as far as we know, the GS was not designed around a multisampling AA algorithm in mind. The culmination of all of this is that PS2 games have been branded as being very aliased and poor in image quality mostly because of the lower resolution and lower detail levels that game developers are forced to use for textures combined with the usual aliasing issues.
We've already discussed the merits of the Xbox GPU as it is undoubtedly the most powerful GPU on the market today. It's a tried and true solution that is a direct derivative of the NV20/NV25 cores and is given twice the memory bandwidth of the PS2's GS. In fact, the only area in which the NV2A core falls behind is in the lack of any embedded DRAM. What is quite important is that developers are currently taking advantage of the NV2A's pixel and vertex shaders which bodes very well for the PC gaming market since it will hopefully show PC developers how easy these programs are to implement and how stunning the after effects can be.
The AA support provided for by the GPU also makes a lot of sense however developers do need to enable it in order for gamers to realize its benefits. Another limitation is that most developers are used to having the host CPU handle the T&L calculations while with the Xbox they must get used to using the GPU and its programmable T&L pipeline for all of that.