The PS3’s exotic and stubborn Cell
Why did games tend to run worse on the PlayStation 3 than they did on the Xbox 360? A few years ago, I covered the memory limitations of the system. Though that’s not the whole story. Much of it boils down to the heart of the console: the enigmatic Cell Broadband Engine. Perhaps the most exotic CPU to ever be used in a console. So what exactly does it do, and why was it so difficult to program for?
The Cell was initially designed to fulfill a need for more parallel processing power. Parallel computing breaks down complex jobs into a lot of small jobs, which can then be processed simultaneously by a lot of simple processing cores.
Think of it this way. You’re running a car factory. Now you can hire a couple master craftsmen who know how to do every job. They can design vehicles just as well as they can assemble an engine and mount it to a chassis. However, they can only work on a handful of cars at a time. So work progresses slowly. So you build an assembly line where hundreds of low skill workers do small tasks. You have one guy who’s only job is to mount windshields. Another guy just bolts on wheels. We’ve taken a complex job and split it into many small tasks. Thus work progresses at a much quicker pace. Of course you still need those master craftsman to design the car, build prototypes, make the tools for the assembly line, etc. Jobs that can’t easily be broken down or require a more robust skill set.
The CPU in a computer is like the master craftsman, while the GPU is like the assembly line workers.
However, in 2001, the GPU couldn’t do that. The assembly line hadn’t been built yet. So IBM decided to make one that would be compatible with their existing POWER architecture. Thus the Cell Broadband Engine was born.
The Cell has a single complex master core called the Power Processing Element (PPE). This is coupled to eight additional simple slave cores, called Synergistic Processing Elements (SPE). It’s basically a hybrid a modern CPU and GPU.
The PPE delegates work to the SPEs in order to accelerate some processing tasks like video rendering and scientific calculations. Much like a modern GPU is used for today.
The results were a ridiculously powerful processor for the time. The PS3’s cell is estimated to reach a theoretical top speed of 230.4 GFLOPS. To put that into perspective, it still rivaled CPUs nearly a decade after its release.
The Cell was so powerful and versatile that Sony considered leaving the GPU out of their new PlayStation 3. Which certainly would have cut down costs for the system while still making it an absolute beast. Especially in regards to high definition multi-media, which Sony was pushing at the time. Of course the PS3 does have a conventional GPU, and it was quite expensive on launch. And Sony was still selling each unit at a deep loss.
So what went wrong?
Well, the Cell is indeed a very powerful processor. However, that’s based on the assumptions that the task at hand can be easily broken down into smaller parts, and that programmers would know how to do that. Many couldn’t, and they didn’t.
The Xbox 360 also used the Cell, but just the Power Processing Element. Three of them. Thus it was a conventional multi-core CPU as we know them today. It was also substantially easier to program for. While the 360 had theoretically less processing power than the PS3, it was far more efficient.
Most games were developed for the 360 first, then ported over to the PS3. Instead of trying to get the Cell’s finicky parallel processing to work, developers instead just offloaded most of the game’s code onto the single PPE. The SPEs remained severely underutilized, hence the system was not allowed to reach its maximum potential. Best case, games would run at par with the 360. Often times, they would run worse.
There were a few developers who were able to maximize the Cell. Most notably Sony’s first and second party studios. Hence why games like Uncharted, the Last of Us, God of War III, and Ratchet & Clank Future still look good even today. Third party titles though were a craps shoot.
The Cell though did see success in data centres. The US Navy even bought a cluster of PS3s as a cheap supercomputer. Though the technology’s days were numbered.
In 2007, Nvidia released CUDA. A programming tool that allowed for easy parallel processing using GPUs. That same year, consumer grade graphics cards were already outperforming the Cell in raw floating point performance, by a considerable margin.
Today, most game consoles still use parallel processing. Instead, parallel accelerated tasks are offloaded to the GPU, while a conventional multi-core CPU handles the rest. Thus allowing for better performance and easier programming.
Despite claims to the contrary, development of the Cell seems to have ended around 2009. It’s now a largely forgotten footnote in the history of computing. Though it’s legacy remains.
Photo by Greenpro, via Wikipedia.