ARM architecture family

This was a relatively conventional machine based on the MOS Technology 6502 CPU but ran at roughly double the performance of competing designs like the Apple II due to its use of faster dynamic random-access memory (DRAM).

[25] The second was a visit by Steve Furber and Sophie Wilson to the Western Design Center, a company run by Bill Mensch and his sister, which had become the logical successor to the MOS team and was offering new versions like the WDC 65C02.

[29] Another change, and among the most important in terms of practical real-world performance, was the modification of the instruction set to take advantage of page mode DRAM.

[38] Further, as the CPU was designed for high-speed I/O, it dispensed with many of the support chips seen in these machines; notably, it lacked any dedicated direct memory access (DMA) controller which was often found on workstations.

The result was a dramatically simplified design, offering performance on par with expensive workstations but at a price point similar to contemporary desktops.

[52] In 2010, producers of chips based on ARM architectures reported shipments of 6.1 billion ARM-based processors, representing 95% of smartphones, 35% of digital televisions and set-top boxes, and 10% of mobile computers.

The original design manufacturer combines the ARM core with other parts to produce a complete device, typically one that can be built in existing semiconductor fabrication plants (fabs) at low cost and still deliver substantial performance.

More ambitious customers, including integrated device manufacturers (IDM) and foundry operators, choose to acquire the processor IP in synthesizable RTL (Verilog) form.

Complicating price matters, a merchant foundry that holds an ARM licence, such as Samsung or Fujitsu, can offer fab customers reduced licensing costs.

Compared to dedicated semiconductor foundries (such as TSMC and UMC) without in-house design services, Fujitsu/Samsung charge two- to three-times more per manufactured wafer.

[citation needed] For low to mid volume applications, a design service foundry offers lower overall pricing (through subsidisation of the licence fee).

Others include Apple's iPhone smartphones and iPod portable media players, Canon PowerShot digital cameras, Nintendo Switch hybrid, the Wii security processor and 3DS handheld game consoles, and TomTom turn-by-turn navigation systems.

[103] ARM chips are also used in Raspberry Pi, BeagleBoard, BeagleBone, PandaBoard, and other single-board computers, because they are very small, inexpensive, and consume very little power.

For example, an image processing engine might be a small ARM7TDMI core combined with a coprocessor that has specialised operations to support a specific set of HDTV transcoding primitives.

All modern ARM processors include hardware debugging facilities, allowing software debuggers to perform operations such as halting, stepping, and breakpointing of code starting from reset.

The actual transport mechanism used to access the debug facilities is not architecturally specified, but implementations generally include JTAG support.

[116] CMSIS-DAP is a standard interface that describes how various debugging software on a host PC can communicate over USB to firmware running on a hardware debugger, which in turn talks over SWD or JTAG to a CoreSight-enabled ARM Cortex CPU.

Described as reminiscent of other approaches, notably Hitachi's SH-DSP and Motorola's 68356, Piccolo did not employ dedicated local memory and relied on the bandwidth of the ARM core for DSP operand retrieval, impacting concurrent performance.

Support for this state is required starting in ARMv6 (except for the ARMv7-M profile), though newer cores only include a trivial implementation that provides no hardware acceleration.

[126] ARM's smallest processor families (Cortex M0 and M1) implement only the 16-bit Thumb instruction set for maximum performance in lowest cost applications.

[127][128][129] ThumbEE (erroneously called Thumb-2EE in some ARM documentation), which was marketed as Jazelle RCT[130] (Runtime Compilation Target), was announced in 2005 and deprecated in 2011.

These changes make the instruction set particularly suited to code generated at runtime (e.g. by JIT compilation) in managed Execution Environments.

[131] Handlers are small sections of frequently called code, commonly used to implement high level languages, such as allocating memory for a new object.

[141][142] A quirk of Neon in Armv7 devices is that it flushes all subnormal numbers to zero, and as a result the GCC compiler will not use it unless -funsafe-math-optimizations, which allows losing denormals, is turned on.

Memory and peripherals are then made aware of the operating world of the core and may use this to provide access control to secrets and code on the device.

While containing similar concepts to TrustZone for Armv8-A, it has a different architectural design, as world switching is performed using branch instructions instead of using exceptions.

[167][168] Arm SystemReady is a compliance program that helps ensure the interoperability of an operating system on Arm-based hardware from datacenter servers to industrial edge and IoT devices.

The key building blocks of the program are the specifications for minimum hardware and firmware requirements that the operating systems and hypervisors can rely upon.

[180] It also provides freely downloadable application programming interface (API) packages, architectural specifications, open-source firmware implementations, and related test suites.

[182] PSA Certified offers a multi-level security evaluation scheme for chip vendors, OS providers and IoT device makers.

ARM1 2nd processor for the BBC Micro
Microprocessor-based system on a chip
Die of an ARM610 microprocessor
Tronsmart MK908, a Rockchip -based quad-core Android "mini PC", with a microSD card next to it for a size comparison
An ARMv7 was used to power older versions of the popular Raspberry Pi single-board computers like this Raspberry Pi 2 from 2015.
An ARMv7 is also used to power the CuBox family of single-board computers.
Armv8-A Platform with Cortex A57/A53 MPCore big.LITTLE CPU chip