ARM ARCHITECTURE
The ARM architecture describes a family of RISC-based computer processors designed and licensed by British company ARM Holdings. It was first developed in the 1980s and globally as of 2013 is the most widely used 32-bit instruction set architecture in terms of quantity produced. In 2011 alone, producers of chips based on ARM architectures reported shipments of 7.9 billion ARM-based processors, representing 95% of smartphones, 90% of hard disk drives, 40% of digital televisions and set-top boxes, 15% of microcontrollers and 20% of mobile computers.
As an IP core business, ARM Holdings itself does not manufacture its own electronic chips, but licenses its designs to other semiconductor manufacturers. ARM-based processors and systems on a chip include the Qualcomm Snapdragon, nVidia Tegra, and Texas Instruments OMAP, as well as ARM's Cortex series and Apple System on Chips (used in its iPhones). The name was originally an acronym for Advanced RISC Machine, and in its early days Acorn RISC Machine.
Using a RISC based approach to computer design, ARM processors require significantly fewer transistors than processors that would typically be found in a traditional computer. The benefits of this approach are lower costs, less heat, and less power usage, traits that are desirable for use in light, portable, battery-powered devices such as smart phones and tablet computers. The reduced complexity and simpler design allows companies to build a low-energy system on a chip for an embedded system incorporating memory, interfaces, radios, etc. The earliest example was the Apple Newton tablet but this same approach is still used in the Apple A4 and A5 chips in the iPad.
ARM periodically releases updates to its core – currently ARMv7 and ARMv8 – which chip manufacturers can then license and use for their own devices. Variants are available for each of these to include or exclude optional capabilities. Current versions use 32-bit instructions with 32-bit addressed 1 byte wide memory which is effectively reduced to just over 24 bit addressing due to 4 byte alignment, with some addressing reserved in bytewise allocation for Memory Mapped I/O, but accommodates 16-bit instructions for economy and can also handle Java bytecodes which use 32-bit addresses. More recently, ARM architecture has included 64-bit versions – in 2012, Microsoft produced its new Surface tablet with ARM technology and AMD announced that it would start producing server chips based on the 64-bit ARM core in 2014.
The ARM architecture specifies the following CPU modes. At any moment in time, the CPU can be in only one mode, but it can switch modes due to external events (interrupts) or programmatically.
User mode
The only non-privileged mode.
System mode
The only privileged mode that is not entered by an exception. It can only be entered by executing an instruction that explicitly writes to the mode bits of the CPSR.
Supervisor (svc) mode
A privileged mode entered whenever the CPU is reset or when a SWI instruction is executed.
Abort mode
A privileged mode that is entered whenever a prefetch abort or data abort exception occurs.
Undefined mode
A privileged mode that is entered whenever an undefined instruction exception occurs.
Interrupt mode
A privileged mode that is entered whenever the processor accepts an IRQ interrupt.
Fast Interrupt mode
A privileged mode that is entered whenever the processor accepts an FIQ interrupt.
Hyp mode
A hypervisor mode introduced in armv-7a for cortex-A15 processor for providing hardware virtualization support.