The ARM processor architecture provides support for the 32-bit ARM and 16-bit Thumb
Instruction Set Architectures (ISAs) along with architecture extensions
to provide support for Java acceleration (Jazelle), security (TrustZone), Intelligent Energy Manager (IEM), SIMD, and NEONTM technologies.
The
ARM ISA is constantly improving to meet the increasing demands of
leading edge applications developers, while retaining the backwards
compatibility necessary to protect investment in software development.
ARMv4
The
oldest version of the processor architecture supported today. All
previous versions are now obsolete. Implementations include some
members of the ARM7 processor family and Intel StrongARM processors. ARMv4 can be considered a 32-bit ISA operating in a 32-bit address space.
ARMv4T
The ARMv4T processor architecture added the 16-bit Thumb instruction
set which enabled compilers to generate more compact code (memory
savings of up to 35% over the equivalent 32-bit code), while retaining
all the benefits of a 32-bit system.
ARMv5TE
In 1999, the ARMv5TE processor architecture introduced improvements to the Thumb architecture, along with ARM ‘Enhanced’ DSP (digital signal processing) instruction set extensions to the ARM ISA.
The
Thumb changes added a few new instructions along with improvements to
Thumb/ARM interworking, greatly improving compiler capabilities and the
ability to mix and match ARM versus Thumb routines to balance code size
and performance.
The enhanced DSP instructions include support
for saturated arithmetic, and provide up to 70% performance improvement
for audio DSP applications. Many systems require the flexibility of a
microcontroller combined with the data-processing capability of a DSP,
historically forcing designers to compromise performance with cost, or
adopt complex multi processor strategies. The ‘E’ instruction set
extensions were designed to provide a DSP capability in a general
purpose CPU, resulting in improved performance and flexibility.
ARMv5TEJ
In
2000, the ARMv5TEJ processor architecture added the Jazelle technology
extension to support Java acceleration technology, which is
particularly suited to small memory footprint designs. Jazelle
technology’s acceleration of Java bytecodes provides significantly
higher performance than a software-only based Java Virtual Machine
(JVM), accelerating Java execution by 8x and providing an 80% reduction
in power consumption compared to a non Java-accelerated core. This
functionality gives platform developers increased freedom to run Java
code alongside established operating systems (OS) and applications on
an ARM processor.
ARMv6
The
ARMv6 processor architecture, announced in 2001, features improvements
in many areas covering the memory system, improved exception handling
and better support for multiprocessing environments. ARMv6 also
includes media instructions to support Single Instruction Multiple Data (SIMD)
software execution. The SIMD extensions are optimized for a broad range
of software applications including video and audio codecs, where the
extensions increase performance by up to four times. In addition
Thumb-2 and TrustZone technologies were introduced as variants of the
ARMv6 architecture. The first implementation of the ARMv6 architecture was the ARM1136J(F)-STM processor announced in Spring 2002, followed by the ARM1156T2(F)-STM and the ARM1176JZ(F)-STM processors in 2003.
ARMv7
The ARMv7 processor architecture lies below the CortexTM family of processors and defines three distinct processor profiles: the A profile for sophisticated, virtual memory-based OS
and user applications; the R profile for real-time systems; and the M
profile optimized for microcontroller and low-cost applications.
All ARMv7 architecture profiles implement Thumb -2 technology
which is built on the foundation of the ARM industry-leading Thumb code
compression technology, while retaining complete code compatibility
with existing ARM solutions. The ARMv7 architecture also includes the NEON technology
extensions to increase DSP and media processing throughput by up to 400
percent, and offers improved floating point support to address the
needs of next generation 3D graphics and games physics, as well as
traditional embedded control applications.
NEON Media Acceleration Technology
ARM NEON technology
is an architecture option with the ARMv7A architecture and is designed
to address the demands of next generation high-performance, media
intense, low power mobile handheld devices. NEON technology is a
64/128-bit hybrid SIMD architecture, developed by ARM to accelerate the
performance of multimedia and signal processing applications including
video encode/decode, 3D graphics, speech processing, compressed audio
decoding, image processing, telephony and sound synthesis.
Vector Floating Point (VFP)
Vector
Floating Point (VFP) coprocessor support is an architecture option. The
VFP architecture supports single and double precision floating point
arithmetic, and is fully IEEE 754 compliant with suitable software
library support. The VFP architecture also includes a fully
deterministic ‘Run fast Mode’.
Provision of a
hardware floating point is essential for many applications, and can be
used as part of a System on Chip (SoC) design flow using technical
computing tools (eg MatLab and MATRIXx) to directly model the system
and derive the application code. The vector processing capability of
the ARM VFP can be used to increase performance of imaging applications
such as scaling, 2D and 3D transforms, font generation, and digital
filters.
ARM currently has VFP support for the ARM9, ARM10 and ARM11 processor families: VFP9-S and VFP10. Additional VFP options, VFPv3, were introduced with the ARMv7 architecture.
ARM TrustZone
The ARM TrustZone extensions
provide hardware support for two separate address spaces, such that
code executing in the non-secure world cannot gain access to any
address space marked as secure. A new monitor mode supports transition
between the two worlds.
The technology provides a secure
environment for system features such as key management and/or
authentication mechanisms enabled by an open OS. The protection
provided by the technology is necessary for consumer privacy and
extending a range of services, such as mobile banking and multimedia
entertainment, to widespread consumer adoption and use.
Thumb-2 Technology
ARM and Thumb code each execute in their own processor state. Thumb-2 core
technology adds a mixed mode capability, defining a new set of 32-bit
instructions that execute alongside traditional 16-bit instructions in
Thumb state. This reduces, or can remove, the need for balancing ARM
and Thumb code in a system, providing ‘ARM levels of performance’ with
‘Thumb code density’.
Thumb-2 technology
builds on the success of Thumb technology, adding to ARM’s strengths as
the leading supplier of low power, high performance processors and
systems, supply cost effective and timely solutions across a wide range
of market segments.
Other Related Technologies
In
addition to the above technologies, several other system technologies
with their own architecture provisions are available from ARM.
Debug and Trace
ARM's
debug and trace tools enable system developers to quickly debug
real-time software, and to trace instruction execution and associated
program data at full core speed. The debug and trace offering includes
host based tools along with components such as EmbeddedICE, Embedded Trace Macrocell (ETM), and the latest CoreSight technology, which form part of a modern SoC.
AMBA
The
AMBA protocol is an open standard, on-chip bus specification that
details a strategy for the interconnection and management of functional
blocks that makes up a System-on-Chip (SoC). It facilitates
"right-first-time" development of embedded processors with one or more
CPU/signal processors and multiple peripherals. The AMBA protocol
enhances a reusable design methodology by defining a common backbone
for SoC modules.
ARM Intelligent Energy Manager
ARM Intelligent Energy Manager (IEMTM)
technology implements advanced algorithms to optimally balance
processor workload and energy consumption, while maximizing system
responsiveness to meet end-user performance expectations. The
Intelligent Energy Manager technology works with the OS and
applications running on the mobile phone to dynamically adjust the
required CPU performance level through a standard programmer's model.