In this article, I want to look deeper into ARMv7-A, the Applications profile.
Because of the products in which it is used, ARMv7-A has perhaps the highest public profile of the ARMv7-A architectures. Since it is targeted at high-performance application processors which need to run a platform OS, like Linux, Android or Windows Phone, it gets a lot of headline exposure in consumer electronics. Your new smart electricity meter is likely to be powered by a Cortex-M microcontroller but it’s very unlikely that you’ll find that information in the user manual; your new mobile phone, on the other hand, is almost certain to be powered by a Cortex-A applications processor and, if you check out the specifications, you’ll likely find that highlighted as one of its features. You may find other information as well, such as whether it is dual-core or quad-core, what clock speed it runs at and so on.
As explained in the earlier document on microcontrollers, ARMv7-M was the first profile of the ARMv7 architecture to result in physical products, with the release of the Cortex-M3 in 2004. ARMv7-A was launched just a year later with the release of the Cortex-A8 processor in 2005.
While the ARMv7-M profile took a radically different direction to earlier architecture evolutions, with its cut-down instruction set, fixed memory map and hardware exception handling, the ARMv7-A profile continued the “upwards-and-to-the-right” evolution in capability and performance.
The high-performance devices which have since been released by ARM’s partners based on Cortex-A processors have enabled the huge growth in the smartphone and tablet industries of the last few years. Their ability to enable a huge increase in processing power while remaining extremely power-efficient is what has enabled us to carry in our pockets more processing power than a desktop system of only a few years ago.
The ARMv7-A architecture is targeted at applications which require a rich OS platform, such as Linux or Android. As such, the architecture includes support for full virtual memory, security and multimedia processing. Although best known for its extensive use in the smartphone/superphone and tablet markets, It is also extensively used in high-performance network switches, gaming platforms, digital TV and many other applications.
Building on all the features of ARMv6 and earlier, here are some highlights of what is provided in ARMv7-A.
Although the features below re an optional part of the architecture (meaning that their inclusion is not an absolute requirement for a conformant processor), many of them (TrustZone, for example) are supported by all of the ARMv7-A cores available from ARM. For a complete list, see the table at the bottom of this article.
ARM big.LITTLE processing is an energy-saving technology which combined multiple processors with different performance characteristics in a single multiprocessing system. In a typical system, one or more “BIG” cores, such as the Cortex-A15, are paired with one or more “little” cores, such as the Cortex-A7, to provide a system which can tackle both high intensity and low intensity tasks in the most energy-efficient manner. The operating system automatically selects the best core for each running task, seamlessly migrating tasks from one core to another as needs change. Unused cores can be completely shutdown, maximizing the energy saving. Because all the cores in the system support the same architecture and provide the same behaviour to software, this migration is completely transparent to the programmer and can be accomplished extremely quickly and efficiently.
ARMv7-A big.LITTLE systems typically use a combination of Cortex-A15 and Cortex-A7. Future ARMv8 systems will use Cortex-A57 and Cortex-A53 in the same way.
The following cores in the Cortex-A series support the ARMv7-A architecture. Together, they provide a scalable range of power-efficient performance points for their target applications.
Cortex-A5
MPCore
Cortex-A7
Cortex-A8
Cortex-A9
Cortex-A9 MPCore
Cortex-A12
Cortex-A15
Architecture
ARMv7-A
MP
Y
LPAE
Virtualization
TrustZone
NEON
O
FPU
PMU
For more detail on the Cortex-A series, please look at the product pages on ARM's website.
Permission granted :-)