I was going to write a long-winded writeup using knowledge I have gleaned from various Ars Technica
articles as to how the Emotion Engine
works, but instead I'll make this short, sweet, and not above my level of understanding. Modern consoles and PCs handle 3D
gaming in a very simple manner: take data, such as models and texture maps, from main memory and transfer it to video memory
to be worked on by the graphics card
. To improve performance, larger, slightly faster cache (i.e. video memory
) is added to the graphics card, and processor speeds are ramped up.
The Emotion Engine approaches 3D gaming in an entirely different manner. Instead of relying on a large cache, the EE relies upon very high bandwidth; a 128-bit bus connects the constituents of the Emotion Engine: the 300MHz MIPS III, the two vector units (vu0 and vu1), the 10 channel DMA controller, the FPU, and a few other devices. The cache for the EE is virtually non-existant in comparison to most video cards. Possessing only 4200KB of cache (4MB of which is video memory), the Playstation 2 must rely almost entirely upon its large bus and high bandwidth RDRAM to keep it afloat. Programmers must pipe data straight from main memory to the EE for processing, relying very seldomly on the skimpy cache. This is proving to be an uphill battle for most veteran programmers, but for those who are making headway, the results are astonishing. Second generation PS2 games are looking fantastic (no, I refuse to mention Metal Gear Solid 2), and as soon as more libraries and standards are set forth, the quality of games can only stand to improve.
My primary sources for this information were Ars Technica's A Technical Overview of the Emotion Engine and The Playstation 2 vs. the PC