Jon Peddie Blogs
AMD, ARM, and all that jazz — reading between the lines will make you cross-eyed
Posted by Jon Peddie on August 3rd 2011 | Discuss
Engineering and Development,
amd, gpu, fusion, x86, fsail, arm,
There have been persistent rumors, opinions, and speculation since AMD’s Fusion Developer’s Summit (AFDS) that because ARM was one of the keynote speakers a grand collusion was in the works—the ARMing of AMD.
The concept gets fuel from the abrupt discharge of Dirk Meyer, the company’s former president for allegedly not having a mobile strategy.
AMD’s announcement of a Fusion System Architecture—Intermediate Layer, into an open platform was one of the main messages AMD wanted to get out at AFDS. They are calling it FSAIL. AMD has said they will publish the Fusion System Architecture (FSA) virtual Instruction Set Architecture (ISA) (FSAIL), FSA memory model, and FSA dispatch. These specs will be agnostic to instruction sets for both the CPU and GPU, and will be available for all chip and system builders to use.
So, what does that mean? AMD is opening up access to its development tools for Fusion so that in theory at least, applications written to support FSAIL could be run on any processor that likewise supports the FSAIL architecture. What this now means in practice is that applications written to conform to FSAIL will run on Fusion processors because the only company building Fusion processors is AMD.
As the world stands now there are multiple island of architectures, x86, ARM, and GPUs, being the most predominate with MIPS, Power, DSP and others a distant third and so on. And, within those islands there is further segmentation. Intel has three or four internal cores, including Atom, Celeron, Core iX, and Xeon, which are translated to their overarching x86 ISA, ARM has a similar situation with multiple architectures presumably codified with the ARM ISA, and there are several variants of GPUs. With the development of FSAIL, AMD has added Fusion to the list. It’s a zoo.
ARM, clearly the most popular architecture, also has the biggest zoo, and it hasn’t launched its 64-bit ISA yet, so matters will only get worse for the zillions of developers out there. That is unless something is done. Google already put its foot down on the matter with restrictions it imposed on Honeycomb—keep it compatible or else.
And if something isn’t done it will have an economic effect of slowing adoption of ARM-based systems. ARM, MIPS, and Intel to a lesser extent, have to tread a fine line since they do not want to eliminate the raison d’etre of many of their partners. The developers of systems and SoCs need to differentiate—just not too much.
ARM is attempting to standardize some aspects of its customers’ platforms. The company has been doing this for a while without regard or concern to AMD, Intel, or Google.
As mentioned, Intel has done it. Intel’s x86 ISA looks to the outside world (external to the chip) the same. Inside it’s a different matter and the actual execution units, the ALUs and memory mangers are quite different between an Atom and a Xeon, as you would expect.
AMD approached the issue of a standard ISA from a different point of view—heterogeneously, and they call it Fusion. Fusion incorporates and X86 and GPU architectures. So, taking their grand world domination theory to its logical extreme why stop with X86 and GPUs, why not include FPGAs (AMD has some history with Cray in that area), or ARM, or MIPS, or anything? Why not indeed?
AMD socialized the concept with architects and management at a few companies. AMD was looking for a reaction and feedback, and if possible the initiation of a partnership.
They got reactions. The most often heard one was: it has to be open or don’t even start. That wasn’t a tough concept for AMD to embrace, they have been champions of open technology for years, maybe decades, and their whole techno-marketing program today is based on open.
AMD’s FSAIL hardware architecture (shared page table formats, ultimately shared MMUs, coherency between CPU and GPU, and unified address spaces etc. etc.) is so close to what ARM has been preaching for some years now, that it was no surprise that ARM was happy to discuss it at AMD’s Fusion Developer’s Summit and ARM’s presence did indeed get people thinking.
But let’s maintain perspective here. FSAIL has been introduced by AMD to bridge the gap between x86 and GPU architectures. Any thinking about sliding an ARM or MIPS CPU into that mix is fanciful—it may well be the right big picture idea for AMD, but that wasn’t why they did it.
The processor architectures (x86, GPU, RISC, DSP, etc.) are sufficiently different that to get the best efficiencies it will require careful coding for the specific architecture. You could do it AMD’s proposed way (it is technically feasible), but it has the risk of leading to inefficient code being run in the wrong place.
And, if it should even be considered being done outside of an open standard way, chaos would surely prevail.
Memory ordering. 2+2 = 4, not 5
If you believe in FSAIL you have to include the best possible optimization by the FSAIL— a “finalizer”, a dynamic compiler. That must allow the memory system architecture to be completely exploited. That means every processor behind the FSAIL fence has to have access to the system memory and it has to have it when it needs it. Prioritizing, and queuing lead to page misses, and you can just make caches so big before the chip becomes economically (and power) untenable.
Here ARM has shown the way and so has Intel. Intel has design centers in Portland, Arizona, Santa Clara and Israel, and they all have to design to the same ISA. Likewise ARM has design centers in Austin, Cambridge, and Nice and they all have to conform to a specified memory architecture.
Licenses and licensees
ARM also has something to worry about and manage that only one other company (MIPS) has to cope with—architectural licensees. Companies like Apple, Nvidia, TI, and Qualcomm who design CPUs themselves that conform to the “ARM standard”. It would be unacceptable if a CPU designed by Qualcomm did not conform to the same memory system architecture that ARM’s does (and this was close to the issue Google was trying to manage with the compatibility test suite—CTS). One of the reasons why the ARM Architecture Reference Manual went from 1200 pages to 2000 pages around ARMv6 was the detailed specification of the memory system architecture (it’s now about 3000 pages).
As for AMD licensing ARM cores/ARM architecture, well they still have an ARM license which came with the ATI acquisition, albeit for an older design. It would make all kinds of sense for AMD to practice what they preach in FSAIL and standardize on ARM’s little microcontrollers to replace the ones that AMD use all over their chips (security, power control etc.) which in most cases neither AMD nor ATI designed themselves anyway.
AMD could also benefit from ARM’s security architecture (TrustZone) to gain from the work ARM has been doing with companies like PayPal. TI has exploited this work and that helped them become the first to win Netflix certification. It might also help AMD combat their concerns about Intel and McAfee.
And there are the servers, in particular the low end servers. AMD is driving to be the “value” play in server chips. The competition there will be fierce. Price leader VIA dabbles in that area, Intel thinks Atom has a play there. MIPS licensees from China have declared that a target and at least one of ARM’s licensees will eventually take a major share of that market segment. If AMD wants to remain a player in that segment they could do it themselves by building ARM-based servers. Well, maybe.
However, AMD has two obstacles in bringing out an ARM-based (or cohabitated via FSAIL) product line. The first is limited resources. AMD has delivered one of its few profitable quarters in a long time. It’s still carrying a lot of debt, and still trimming operations to make them more efficient and in line with their ambitions for Fusion and Bulldozer.
And secondly it would be insane for the company to launch a major product line initiative without a permanent CEO. As able and stalwart as Thomas Seifert is, he’s made it clear he doesn’t want the job, so guess who’d be the first to get fired if he launched such an intuitive and the new CEO came in and didn’t like it?
AMD has the bones of a great company—it has great technology and it has great people (utterly world-class technical minds). However, if they stumble here for much longer, we are going to have to worry about their future. And sending a confusing message that gets rattled around the web with speculation is possibly one of the worst things they could do. That is not the way to keep the brand in the press.