The ARM architecture is 28 years old this year. The ARM1 first ran code on 26th April 1985 at the office of Acorn Computers in Cambridge, UK.
Since the formation of ARM (then called “Advanced RISC Machines”) in 1990, the architecture has gone on to become the most popular and widely-used in the world, with over 10B devices shipped every year. But the architecture hasn’t stood still! On the contrary, it has been through several incremental changes to get where it is today. The most significant change occurred in 2004 with the release of architecture ARMv7. This defined three architecture profiles:
This was a result of recognising that a single architecture was not capable of addressing the incredibly diverse needs of the electronics and computing industry. The processing requirements of a smartphone or tablet are very different from those of a smart electricity meter, for instance.ARM’s current range of mainstream processors is marketed under the “Cortex” brand. So, Cortex-M3 is a processor supporting architecture ARMv7-M and is targeted at microcontroller applications. Regardless of the target application and performance point, all ARM processors are 32-bit devices with a full 32-bit ALU and 32-bit register set.
In this short article, I want to look at the key features and target markets of each profile to give you a headstart when trying to select a processor for a new design.
The ARMv7-A architecture profile represents the pinnacle of the architecture in terms of performance and capability. ARMv7-A cores, such as Cortex-A15, are targeted at high-performance systems running some kind of platform OS, like Linux or Android. Internally, they have very complex microarchitectures making use of features like out-of-order execution, superscalar pipelines, branch prediction, register renaming etc.
These processors have the following features in common:
The ARMv7-R architecture is similar in many ways to ARMv7-A. The programmer’s model is largely the same. However, key differences make the Cortex-R cores more suitable for high-performance real-time applications. Examples would be engine management, or hard disk drive controllers. Because they are typically used in highly specialised areas, Cortex-R based devices are generally custom-built for specific applications.
The following are key features of Cortex-R processors:
The microcontroller architecture, ARMv7-M, is significantly different from the others in several important ways. The motivation is to allow implementation of small, cost-effective, power-efficient devices. Although the emphasis is often on cost and size, Cortex-M devices are also capable of providing very high processing performance when required. From the “smallest” in the range, the Cortex-M0, to the top-of-the-range Cortex-M4 (which has optional floating point support), they span a huge range of performance points.
They have the following features in common.
The current range of ARM Cortex processors can be a bit bewildering. It supports requirements from servers, tablets and smartphones, through high-performance real-time, down to the tiniest microcontrollers. Hopefully, this article gives you a way in to the diversity of devices and options which are available. You can find more information about all of them on ARM's website. And if you have questions about specific devices or requirements, where else better to ask them than right here in the community!
Thx Chris. It provides me a high level view of ARM processor ranges
Chris, Thanks for providing the "big picture" of ARM processor cores. I found this very helpful! andyframe may have some good follow-on ideas for you too.