ARM processors are among the most popular CPU architectures in the world today. They are found in billions of devices, from mobile phones to smart TVs, wearables, networking equipment and more. The ARM architecture is known for its power efficiency which makes it well suited for battery-powered devices.
ARM stands for Advanced RISC Machine. It uses a RISC (Reduced Instruction Set Computer) architecture which is different from CISC (Complex Instruction Set Computer) architectures found in x86 processors from Intel and AMD. The key benefits of RISC include simpler design, higher performance and lower power consumption.
History of ARM
ARM was originally developed in the early 1980s by Acorn Computers, a British personal computer company. They needed a processor for their upcoming 32-bit Acorn Archimedes computer. Since existing processors at the time were not suitable for their needs, Acorn decided to design their own RISC processor.
The first ARM processor was the ARM1 which operated at 8MHz. It was followed by ARM2 which added virtual memory support. In the 1990s, Apple partnered with Acorn to create ARM processors for their Newton PDA. Advance RISC Machines was spun out as a separate company called Advanced RISC Machines Ltd. It later changed its name to ARM Holdings.
Over the years, ARM evolved from a 32-bit to 64-bit capable architecture with additions like thumb instruction set, SIMD extensions, TrustZone security extensions and more. ARM also transitioned from designing their own cores to just licensing their IP to partners who would design the actual chips.
ARM Processor Fundamentals
Some key features of ARM processors include:
- RISC Load/Store Architecture – Instructions operate only on registers, not directly on memory.
- Fixed Length 32-bit Instruction Format
- Load/Store Architecture – Data transfers only between registers and memory.
- Condition Code System – Most instructions can be conditionally executed based on status flags.
- Uniform Register File – All registers are general purpose, not split into data/address registers.
- Hardwired Control Unit – Decodes instructions in hardware, simpler design.
These RISC principles allow ARM processors to deliver high performance at low power. The fixed length 32-bit instructions are very power efficient. The load/store architecture reduces overall complexity compared to CISC instruction sets. The uniform register file also enables flexible usage of all registers.
ARM Processor Architecture
The ARM architecture defines the instruction set and programmer’s model, while microarchitecture is left to implementers. This enables different ARM-based chips to have customized microarchitectures while maintaining compatibility at the instruction set level.
Some key components of the ARM architecture include:
- General Purpose Registers (R0-R12) – Used to store data for processing
- Stack Pointers (R13) – Used as stack pointer for function calls
- Link Register (R14) – Stores return address for functions
- Program Counter (R15) – Contains address of current instruction
- Current Program Status Register (CPSR) – Holds processor flags like condition codes, interrupt disable, etc.
- Coprocessor 15 (CP15) – Used for architecture feature configuration
The ARM instruction set provides typical arithmetic, logical, branch and load/store instructions. It also has some unique instructions like conditional execution and coprocessor support.
ARM processors have 31 general purpose 32-bit registers R0-R30 of which R13-R15 have special roles as mentioned above. The current program status flags are stored in the CPSR register. System control coprocessors like CP15 are used to configure caches, MMUs, debug etc.
ARM Execution Modes
ARM processors support different execution modes to provide privilege separation between software running at different exception levels.
The modes are:
- User (unprivileged) Mode – Used for normal applications
- FIQ Mode – Used for FIQ interrupts
- IRQ Mode – Used for general IRQ interrupts
- Supervisor Mode – Used for protected OS kernel functions
- Abort Mode – Entered on data/instruction abort exceptions
- Undefined Mode – Entered on undefined instruction exception
- System Mode – Highest privilege mode for OS kernel
Lower privilege modes cannot access resources reserved for higher privilege modes. Mode changes occur on exception/interrupt entries and exits according to a fixed priority scheme. This provides security through privilege separation.
ARM Instruction Set Extensions
While the base ARM instruction set is 32-bit RISC, various extensions have been added over time to enhance performance and capabilities:
- Thumb – 16-bit instruction set overlay for improved code density
- Thumb-2 – Extension of Thumb with 32-bit instructions for better performance
- NEON – SIMD instructions for media/signal processing
- VFP – Floating point coprocessor instructions
- Cryptography Extensions – Instructions for hardware crypto acceleration
- TrustZone – Security extensions for trusted execution environments
These extensions allow the ARM architecture to scale from microcontrollers to high performance application processors. Thumb provides a high code density 16-bit instruction set for embedded use cases. Thumb-2 extends it to 32-bit for better performance. NEON and VFP add rich multimedia and floating point capabilities. TrustZone improves security.
ARM Licensing and Implementations
ARM itself does not manufacture any silicon chips. Instead, it licenses its IP to partners who design chips based on it. Some key ARM licensees include:
- Qualcomm – Snapdragon SoCs for mobile devices
- Apple – Custom ARM designs for iPhones and iPads
- Samsung – Exynos application processors
- Huawei – HiSilicon Kirin mobile SoCs
- Nvidia – Tegra application processors
- Marvell – Embedded processors
Partners take ARM’s architecture and add their own customizations and implementations. This enables tailoring processors as per specific device requirements. It has also enabled ARM’s adoption across a wide range of devices and market segments.
ARM offers different core designs that partners can license:
- Cortex-A Series – High performance application processors
- Cortex-R Series – Real-time processors
- Cortex-M Series – Microcontroller processors
- SecurCore – Processors for safety critical systems
- Ethos – Processors for machine learning
In addition to processor cores, ARM also licenses its instruction sets, architectures, interconnects and other IP to enable SoC design.
ARM in Mobile and Embedded Markets
ARM dominates the mobile and embedded markets thanks to its power efficiency:
- Smartphones – Apple, Qualcomm, Samsung Exynos all use custom ARM chips
- Tablets – Apple, Qualcomm, Mediatek and others use ARM
- Wearables – Small ARM MCUs used in smart watches, fitness bands, etc.
- IoT devices – ARM Cortex-M cores popular in this segment
- Networking – Used in infrastructure routers, switches, gateways etc.
Performance per watt is critical in battery operated devices. ARM’s RISC architecture and focus on power efficiency has made it the CPU of choice for mobile and embedded applications where x86 isn’t suitable.
ARM also enjoys a healthy mobile app ecosystem built around Android and iOS which run on ARM devices. This availability of software also continues to drive adoption.
ARM in Servers and PCs
While ARM dominates mobile and embedded, it has not had much success in the server and PC markets which are dominated by x86 chips from Intel and AMD:
- Some ARM-based laptops have been launched but are still a niche
- ARM-based servers also exist but have not seen wide adoption
- Issues like software ecosystem, core performance hold ARM back
- Intel and AMD’s x86 chips enjoy software compatibility going back decades
- Emulation can overcome software limitations but impacts performance
However, ARM keeps trying to break into PCs and servers via its partners. Qualcomm has ARM-based server CPUs. Apple is switching to ARM for its Mac computers. The superior power efficiency of ARM could eventually make it more competitive with x86.
ARM in the Data Center and Cloud
Related to servers, ARM is also trying to make headway into data centers and cloud infrastructure:
- Amazon AWS offers ARM-based EC2 cloud compute instances
- Microsoft Azure has ARM virtual machine support
- Some development around ARM-based open hardware designs for cloud servers
- Power efficiency benefits combined with customized designs appeal to big cloud providers
Cloud providers like the ability to tailor and differentiate their hardware infrastructure. ARM allows licensing of IP to enable custom data center processors. Energy savings also appeal although software compatibility remains an issue.
The Future of ARM
ARM is expected to continue dominating in its stronghold markets of mobile and embedded devices. Its ecosystem is well established in these segments. Emerging areas like machine learning, automotive and IoT will further expand ARM’s reach.
Competing with x86 in the PC and server markets will be more challenging. But ARM remains a compelling choice for applications that demand power efficiency. Its RISC architecture also scales nicely into the era of 5G and AI.
As software stacks become more hardware agnostic with cross-platform frameworks and emulation, ARM penetrating the PC and server markets becomes more viable. ARM is also enhancing performance with every new generation. So the future remains bright for the venerable RISC architecture that powers the smartphones in our pockets and palms.