Apple computers will be moving away from Intel chips to its own ARM-based design. An interesting thing about Apple as a company is that it has never felt the need to tie itself to a particular system architecture or ISA. Whereas a company like Microsoft mostly tied its fortunes to Intel’s x86 architecture, and IBM, Sun, HP and other giants preferred vertical integration, Apple is currently moving towards its fifth system architecture for its computers since the company was formed.
What makes this latest change possibly unique, however, is that instead of Apple relying on an external supplier for CPUs and peripheral ICs, they are now targeting a vertical integration approach. Although the ARM ISA is licensed to Apple by Arm Holdings, the ‘Apple Silicon’ design that is used in Apple’s ARM processors is their own, produced by Apple’s own engineers and produced by foundries at the behest of Apple.
In this article I would like to take a look back at Apple’s architectural decisions over the decades and how they made Apple’s move towards vertical integration practically a certainty.
Continue reading “Changing System Architectures And The Complexities Of Apple’s Butterfly Approach To ISAs”
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]
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.