In the early 1980’s, Reduced Instruction Set Computing (RISC) promised huge efficiencies to new instruction set architectures. In particular, the simpler ISAs enabled small teams to design very high performance processors, compared with existing complex instruction sets (collectively termed CISC). Within a short span of time, nearly a dozen RISC architectures were born, targeting similar markets. MIPS, SPARC, PA-RISC, POWER, and eventually Alpha all pursued high performance microprocessors for workstations and servers. But other RISC families focused on personal computers or embedded applications, such as AMD’s 29k and most famously, ARM.
As an earlier article on ARM’s embedded success discussed, ARM was conceived in 1983 and originally intended for Acorn’s personal computers. The emphasis of the architecture was on fast handling of interrupts and I/O, which were judged to be essential for interactive use. While the ARM project was successful and the first chips were manufactured in 1985, Acorn Computers ultimately succumbed to the success of IBM-compatible PCs based on Microsoft Windows and Intel’s x86.
Fortunately, Apple and others had shown some interest and ARM was spun out from Acorn into a separate company in 1990. The result of the joint work from Apple and ARM was the ARM6, which was used in the Newton PDA, an early precursor to the iPad and iPhone. Later the ISA was licensed to Digital Equipment, which produced a high frequency design called StrongARM.
The most unique aspect of ARM is that the company has never sold a microprocessor. ARM only produces IP, which is ultimately embedded in the products of another company – first Acorn and the RiscPC, now the iPhone and the majority of smartphones. This was a fundamental departure from other early RISC families, where the target application was proprietary UNIX-based micro-computers and servers. SPARC, PA-RISC, MIPS, Alpha and POWER were all intended to yield microprocessors for internal uses. In contrast, ARM flourished as an embedded processor for low-end applications such as hard disk controllers. When Intel entered the server market with the Pentium Pro, it spelled a long slow death for many of the high-end RISC families, but was a non-event for ARM.
The current version of the ARM architecture is ARMv7, which encompasses three similar but not fully compatible profiles. The A-profile Application processors, including the A5, A7, A8, and A9, are all general purpose designs for low-power applications, such as smartphones. While floating point was initially optional, it has become a de facto requirement due to software compatibility issues. The R-profile targets Real-time uses with moderate performance requirements (e.g. disk controllers and baseband processors), but does not support virtual memory and floating point is still optional. The Microcontroller oriented M-profile is similar to the R-series, but with lower performance and cost.
Commonly, these ARM designs are purchased as IP and then incorporated into a System-on-Chip (SoC) by companies like Apple, Nvidia, and even Intel. However, in addition to ARM’s designs, there are several companies with architecture licenses. Instead of receiving an IP block, these licensees are free to create custom ARM-compatible designs to meet different requirements. While the identity of these architecture licensees is not necessarily disclosed, current licensees include Qualcomm (Snapdragon), Microsoft, Marvell, and Samsung.
Last year, ARM announced the 64-bit ARMv8 for Application processors. The new architecture is elegant, backwards compatible, and removes several crufty features from the existing ARMv7. Applied Micro simultaneously demonstrated an FPGA implementation of X-Gene, a custom 64-bit server processor based on ARMv8 that is expected in 2013. Applied Micro and others such as Microsoft helped ARM to define and shape the new architecture. More recently, Samsung and Cavium Networks have both taken architectural licenses and along with start up Calxeda, are expected to produce ARM-based server processors. As an aside, it is quite possible that ARM has developed an additional server profile, or these companies could be using the A-profile.
One of the main motivations for ARMv8 was memory addressing. The existing architecture was limited to a 4GB virtual address space, which is an uncomfortable constraint for systems with 2GB or more physical memory. The first round of 64-bit extensions were developed in the 1990’s for server-oriented RISC families. In the early 2000’s, the client-centric x86 bumped into the same virtual memory limitations and was extended to x86-64. Now a decade after x86, ARM-based tablets routinely ship with 1-2GB of memory, approaching the practical limit. With 20 years of history, ARM had a tremendous opportunity to study different approaches and learn from the mistakes and successes of others.
Discuss (195 comments)