SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: What are the various instruction sets supported by ARM processor?
SUBSCRIBE
SoCSoC
Font ResizerAa
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Search
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Have an existing account? Sign In
Follow US
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
© S-O-C.ORG, All Rights Reserved.
Arm

What are the various instruction sets supported by ARM processor?

Javier Massey
Last updated: September 15, 2023 12:14 pm
Javier Massey 7 Min Read
Share
SHARE

ARM processors support a variety of instruction set architectures (ISAs) that determine the type of instructions the processor can execute. The main ISAs supported by ARM processors include:

Contents
ARMv8-AARMv7-AARMv6ARMv5TEARMv4TOlder ARM ArchitecturesSummary of ARM Instruction Set ArchitecturesARM Processor FamiliesComparisons Between ARM Instruction SetsConclusion

ARMv8-A

The ARMv8-A architecture is the latest generation and supports 64-bit processing. It includes the A64 instruction set which supports 64-bit registers and a 64-bit address space. ARMv8-A also supports 32-bit processing through the A32 instruction set for compatibility with older software. Key features of ARMv8-A include:

  • 64-bit registers and address space in A64 mode
  • Advanced SIMD and floating point instructions
  • Hardware virtualization support
  • Enhanced security through TrustZone
  • Improved power efficiency

ARMv8-A is used in high-end application processors found in smartphones, servers, and other devices needing top performance.

ARMv7-A

ARMv7-A architecture added support for features like the Thumb-2 instruction set, SIMD media instructions, and enhanced floating point capabilities. The ARMv7-A profile is a 32-bit architecture that includes:

  • Thumb-2 instruction set with both 16-bit and 32-bit instructions
  • Advanced single instruction, multiple data (SIMD) instructions
  • VFPv3/v4 floating point unit
  • Hardware divide instructions
  • TrustZone security extensions

ARMv7-A offers a good balance of performance and power efficiency and is popular in mobile devices like smartphones and tablets.

ARMv6

Introduced in the early 2000s, ARMv6 added support for the Thumb-2 instruction set, which brought 16-bit Thumb instructions up to feature parity with 32-bit ARM instructions. Key features of ARMv6 include:

  • Thumb-2 instruction set
  • VFPv2 floating point unit
  • Media instructions for SIMD processing
  • Hardware divide instructions

ARMv6 offers good performance for mid-range embedded devices. It is commonly used in lower cost Android phones and embedded electronics.

ARMv5TE

ARMv5TE added support for the Thumb instruction set, which uses 16-bit instructions instead of 32-bit for improved code density and power efficiency. Main features of ARMv5TE include:

  • 16-bit Thumb instruction set
  • VFPv2 floating point unit (optional)
  • Enhanced DSP instructions
  • Saturation arithmetic logic

ARMv5TE offers a good balance of performance, code size, and power for many embedded systems. It has been popular in a wide range of microcontrollers and SoC designs.

ARMv4T

Introduced in the late 90s, ARMv4 was the first ARM architecture to add support for the Thumb 16-bit instruction set. Key attributes include:

  • 16-bit Thumb instruction set
  • VFP floating point unit (optional)
  • Enhanced 16-bit multiply instructions

ARMv4T offers good performance for basic embedded systems while minimizing code size. It has been used in microcontrollers, calculators, and other cost-sensitive devices.

Older ARM Architectures

In ARM’s early history, it developed a series of simpler architectures for basic embedded systems:

  • ARMv3 – Added support for unified cache and introduced the ARM9 series of cores.
  • ARMv2 – Introduced pipeline processing capabilities for improved performance.
  • ARMv1 – The original ARM ISA was a 32-bit RISC architecture focusing on efficiency.

These older architecture versions are rarely used today but were instrumental in establishing ARM’s foothold in the embedded microprocessor market in the 1990s and early 2000s.

Summary of ARM Instruction Set Architectures

In summary, here are some of the key instruction sets supported on ARM processors:

  • A64 – 64-bit instruction set used in ARMv8-A architecture
  • A32 – 32-bit instruction set in ARMv8-A architecture
  • Thumb-2 – Mixed 16-bit and 32-bit instruction set first introduced in ARMv6
  • Thumb – Original 16-bit Thumb instruction set in ARMv4T and later
  • ARM – Classic 32-bit ARM instruction set in all ARM architectures

The Thumb instruction sets (Thumb-2 and Thumb) are particularly notable because they enable ARM processors to achieve high code density without sacrificing performance. This makes ARM ideal for embedded applications where memory footprint is often constrained.

ARM’s strategy of incrementally building upon prior architectures while maintaining backwards compatibility has been key to its successful evolution over 3+ decades in the embedded processing industry.

ARM Processor Families

In addition to the instruction set architectures, ARM processor cores themselves are grouped into families that target different performance levels and use cases:

  • Cortex-A – High performance application processors for smartphones, tablets, servers
  • Cortex-R – Real-time processors focused on reliability and safety
  • Cortex-M – Microcontroller optimized for embedded applications
  • Cortex-A – High efficiency, low power cores for simple IoT devices

Each processor family has cores that implement different ARM instruction sets. For example, Cortex-A processors support ARMv8-A while Cortex-M processors use Thumb-2 code from ARMv6T2 or ARMv7-M architectures.

This allows ARM’s partners to choose a core family and instruction set appropriate for everything from basic embedded devices (Cortex-M + Thumb-2) up to high-performance application processors (Cortex-A + ARMv8-A).

Comparisons Between ARM Instruction Sets

The various ARM instruction sets provide different advantages that suit them to different applications:

  • ARMv8-A – Best overall performance and advanced features for high-end processors
  • ARMv7-A – Good balance of performance and efficiency for mid-range devices
  • Thumb-2 – Optimized for smallest code size while retaining high performance
  • Thumb – Very compact code for simplest embedded devices
  • ARMv4/5 – Good performance on older process nodes with minimal silicon area

The Thumb instruction sets are notable for achieving much higher code density than regular 32-bit ARM instructions, reducing memory requirements. Here is a typical comparison between Thumb, Thumb-2, and ARM code size:

  • Thumb code size: 60% smaller than ARM
  • Thumb-2 code size: 25-35% smaller than ARM

Actual code density improvements will vary by application. But Thumb and Thumb-2 instruction sets are a key reason why ARM processors are attractive for embedded systems.

Conclusion

ARM’s success lies in its large ecosystem of compatible processor cores that implement a range of instruction set architectures. The ARMv8-A, ARMv7-A, and Thumb-2 ISAs strike a good balance of high performance and power efficiency for most applications. The Thumb instruction set enables smaller code size where memory is constrained. And older ARM ISAs still power a vast number of existing embedded devices.

ARM will continue enhancing its architectures, doubling down on 64-bit processing and expanding into new markets. But its careful, backwards-compatible evolution gives confidence that today’s ARM software investments will carry forward to next-generation ARM cores and platforms.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article What is the frequency of the Cortex-M0 clock?
Next Article Is the Cortex M0 really low-power?
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

2k Followers Like
3k Followers Follow
10.1k Followers Pin
- Sponsored-
Ad image

You Might Also Like

Loading the EXC_RETURN Value for Cortex-M Context Switching

Context switching between threads or tasks on Cortex-M processors involves…

4 Min Read

ARM Cortex M0 Unaligned Access

The ARM Cortex-M0 is an ultra-low power 32-bit microcontroller core…

7 Min Read

Arm vs x86: A Detailed Comparison

Arm and x86 are the two most common CPU architectures…

7 Min Read

Does ARM allow unaligned access?

The answer is yes, ARM does allow unaligned memory accesses,…

6 Min Read
SoCSoC
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
Welcome Back!

Sign in to your account