Speculative Execution Was A Troublemaker For Xbox 360

Part of why people can’t stop talking about Meltdown/Spectre is the fact that all the individual pieces have been sitting in plain sight for a long time. When everyone saw how it all came together last week, many people (and not even necessarily security focused people) smacked themselves on the forehead: “Why didn’t I see that earlier?” Speculative execution has caused headaches going way back. [Bruce Dawson] tells one such story he experienced back in 2005. (Warning: ads on page may autoplay video.)

It’s centered around Xbox 360’s custom PowerPC processor. Among the customization on this chip was the addition of an instruction designed to improve memory performance. This instruction was a hack that violated some memory consistency guarantees held by the basic design, so they knew up front it had to be used very carefully. Even worse: debugging problems in this area were a pain. When memory consistency goes wrong, the code visible in the debugger might not be the actual code that crashed.

Since we’re talking about the dark side of speculative execution, you can already guess how the story ends: no matter how carefully it was used, the special instruction continued to cause problems when speculatively executed outside the constrained conditions. Extensive testing proved that instructions that were not being executed were causing crashes. That feels more like superstition than engineering. As far as he can recall, it ended up being more trouble than it was worth and was never used in any shipped Xbox 360 titles.

[Main image source: AnandTech article on Xbox 360 hardware]

PS3 Ubuntu Install For Emulation

snes9x

Gizmodo has done us all a favor by wading through many forum posts and condensing them into a handy guide to installing Ubuntu on your Playstation 3. It covers some of the caveats of going this route. You have to backup all of your game data before starting since the system repartitions the drive. Ubuntu installs without any problem, but because the cell processor is a PowerPC architecture it means not everything has been ported to it. There are a few things you need to install to get the Sixaxis controller to be recognized as a joystick. Super Nintendo emulator SNES9X is available and works, mostly. It doesn’t support fullscreen and cries if you reconfigure the buttons.

Supporting developers through alternate operating systems isn’t new to Sony. With the original Playstation, they released Net Yaroze, a consumer grade dev kit. The Playstation 2 was the first time they officially supported Linux on a game console (our first Linux machine). The ground breaking thing about the Playstation 3 was bundling in Linux support with every single console; no specialized hardware needed. Unfortunately they’re not near as open with the PSP.