A look back at what made CELL challenging yet special and how developers like Naughty Dog managed to effectively utilize it.
Consoles harware isn’t, well, it just isn’t unique anymore. With the advent of x86-based consoles like the PS4 and Xbox One, the days of wild, custom hardware architectures are long gone. While Microsoft certaintly wasn’t kidding around when it said that the Xbox One X was the most powerful console ever made, at the end of the day, the Xbox One X isn’t all that different from an upper midrange PC, hardware-wise.
This isn’t to say that standardization isn’t without benefits: today’s consoles make life much easier for developers, who can easily build games for multiple platforms with ease, since the underlying hardware is similar. This is a good thing for both console and PC gamers. This generation, more multiplats have made their way over to PC than ever before. Series as wildly disparate as Tekken, Metal Gear Solid, Dynasty Warriors, and Destiny have made their debut on PC this gen thanks both to a growing PC audience and greater ease of cross-platform development.
But this wasn’t always the case. Sony, in particular, has a history of experimenting with custom architectures for consoles. The PS3’s Cell processor in particular is a fascinating case.
"The SPEs were a set of 8 further streamlined processor cores, with limitations such as not feature cache and not having branch prediction. Engaging the PPE was straightforward. The trouble came from getting the SPEs to perform to their fullest extent."
Development on Cell began in 2000, when the PS3 wasn’t much more than a whiteboard drawing. Sony teamed up with Toshiba and IBM in a joint venture (creatively) called STI for a wide range of commercial applications, ranging from scientific work to graphics and physics processing. What’s important to note is that while powerful, Cell wasn’t purpose-built for gaming and this had implications for PS3 game development down the road.
Circa 2005 when the PS3 was announced, the Cell was a radical departure from anything on the market. The very first dual core processors in the world, the Athlon x2 and the Pentium D, were released in May 2005, the same month that the PS3 was announced at E3. In contrast, the PS3’s Cell featured what’s essentially a 1+8 core design, optimized for running parallelized code. The PPE, or PowerPC Processor Element, is at the heart of Cell. The PPE is essentially a rather simplified general purpose processor based on the PowerPC architecture. PowerPC-based hardware was fairly common at the time, with MACs having shipped with PowerPC processors until 2005.
"The Xbox 360 made use of a unified 512 MB RAM pool, shared by both the GPU and the processor. This allowed for a degree of flexibility when it came to, say, budgeting for a higher resolution texture."
So far, we’re basically looking at a single PowerPC core running at 3.2 GHz. So far, nothing special–the Xbox 360’s Xenon processor consists of three of these. The SPEs (Synergistic Processing Elements) are what made Cell unique (and, of course, what made it uniquely challenging for game developers to work with). The SPEs were a set of 8 further streamlined processor cores, with limitations such as not feature cache and not having branch prediction. Engaging the PPE was straightforward. The trouble came from getting the SPEs to perform to their fullest extent.
The Cell’s wide architecture played a big role in the deficit that was often seen between the PS3 and Xbox 360 in 7th-gen multiplats. Skyrim’s among the worst offenders, but many titles, from Assassin’s Creed to the Far Cry games often ran and performed worse on the PS3. For much of the seventh gen, dual-core processors were common in the PC space and the Xbox 360’s Xenos was tricore. As a result, there was an emphasis on writing code optimized for high single-threaded performance. This was great if you were rocking a Core 2 Duo or an Xbox 360, with its 3 3.2 GHz PowerPC cores. But the same code wouldn’t run so hot on the Cell: you have one, relatively high-performance PPE and 8 specialized SPEs. Oftentimes, developers simply opted to make minimal use of the SPEs, offloading most of the processing load to the single PPE.
"The potential of Cell is nowhere more evident than in Naughty Dog’s PS3 games. One only needs to take a look at the visual jump from Uncharted 1 to The Last of Us."
This was obviously problematic from a performance viewpoint. Moreover, in the case of game engines that were optimized for single and dual-core performance (such as Skyrim’s Creation Engine), there wasn’t much that could be done apart from this very unoptimal solution. This is the reason behind sub-25 FPS framerates in games like Skyrim with extensive world-building and AI to handle in terms of the CPU load.
While multiplats generally fared poorly on PS3, first-party titles were another matter, offering better visual fidelity and scope than most exclusives on the Xbox 360. A studio like Naughty Dog, with greater experience working with the harder and better accessibility to Sony itself were able to wring the most out of the SPEs over time. Interestingly, Kaz Hirai himself is said to have said that the Cell’s unusual architecture was deliberate–that making the PS3 hard to code for meant that developers would only slowly tap into the PS3’s full potential, allowing titles to keep pushing the limit years after the PS3 came out. The potential of Cell is nowhere more evident than in Naughty Dog’s PS3 games (one only needs to take a look at the visual jump from Uncharted 1 to The Last of Us).
When the Cell was optimized in the best possible manner to deal with the PS3’s GPU, there was a drastic increase in polygons in character models when one compares Nathan Drake from Uncharted 1 to Joel from The Last of Us. Environmental effects look more detailed, higher resolution textures were now being accomodated (anyone remembers this tree from Uncharted 2?), monumental improvements in NPC interaction (Ellie from from The Last of Us is a great example) and phenomenal improvements in dynamic lighting and physical based rendering (although limited), and all of this at a rather steady frame rate. Credit must also be given to the PS4 Graphics team (the ICE team) for optimizing the PS3’s API in order to streamline communication between the CPU, GPU and memory. In many ways, the optimization implemented during the later days of the PS3 CELL processor set the benchmark for future PS4 development framework and tools.
In Naughty Dog’s own words, “Uncharted 1 used maybe 30 percent efficiency. Uncharted 2 we were finally using 100 percent, but it wasn’t as efficient as it could be. Then, Uncharted 3 we got way more efficient. With The Last of Us, we are as efficient as we can possibly be. It’s just squeezing every last drop of power out of the system.” Going from Drake’s Fortune to Drake’s Deception sees a night-and-day improvement in visual fidelity, made possible by the years Naughty Dog spent familiarizing themselves with the Cell’s quirks. It wasn’t just the wide Cell architecture that made the PS3 a challenge to develop for. The Xbox 360 made use of a unified 512 MB RAM pool, shared by both the GPU and the processor. This allowed for a degree of flexibility when it came to, say, budgeting for a higher resolution texture.
The PS3 on the other hand utilized a split memory design, with 256 MB allocated for the GPU and another 256 MB for the CPU. In addition to the fact that the PS3 versions of multiplats often used lower-resolution textures, they often featured a lower framebuffer resolution as well, in order to avoid going over the tiny 256 MB VRAM budget.
"With the PS4, Sony’s played it smart by rectifying many of the PS3’s shortcomings. A shared 8 GB pool of memory–16 times as much as the PS3 had– is by and large sufficient at 1080p."
Despite the Cell’s quirks, and despite the other teething problems the PS3 faced such as backlash to its exorbitant launch price, the console did surprisingly well for itself. New PS3 unirs continued to be released as late as last year, a full decade after the console launched. That’s a frankly staggering degree of longevity for any kind of electronics hardware. With the PS4, Sony’s played it smart by rectifying many of the PS3’s shortcomings. A shared 8 GB pool of memory–16 times as much as the PS3 had– is by and large sufficient at 1080p. While the Jaguar processor cores are relatively weak compared to their PC counterparts, their shared x86 architecture makes coding for the PS3 a much easier task. And, last but not least, the price was right: For $399 at launch, and now available for $299 and less, the PS4 offered a lot more for a lot less. A sound pricing strategy is a big part of the reason why the PS4 is Sony’s fastest-selling console to date.
But still, with the PS3 on its last legs, it’s nice to look back at what made the last-gen console special and so long-lived, quirks and all.