| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| en:multiasm:paarm:chapter_5_1 [2025/02/18 15:05] – eriks.klavins | en:multiasm:paarm:chapter_5_1 [2025/03/07 06:04] (current) – eriks.klavins |
|---|
| ====== Overview of ARM and Mobile Device Architecture ====== | ====== Overview of ARM and Mobile Device Architecture ====== |
| Let's take a look at the mobile devices market. Mobile phones, tablets, and other devices are built on ARM processor architecture. For an example take Snapdragon SoC (System-on-Chip) designed by Qualcomm – this chip integrates CPU based on ARM architecture. Of course, that chip may have an additional graphics processing unit(GPU) and even a digital signal processor(DSP) for faster signal processing. Similarly, Apple A18 processors are based on ARM architecture. | Now you may realize that there is more than one assembly language type. The most widely used assembly language types are ARM, MIPS, and x86. New architectures will come, and they will replace the old ones, just because they may have reduced power consumption, or silicon die size. Another push for new CPU architecture is malware that uses the architecture features against users, to steal their data. Such malware, like “Spectre” and “Meltdown”, perform attacks based on vulnerabilities in modern CPU designs. Used vulnerabilities were designed as a feature for the CPU – speculative execution and branch prediction. So – this means that in the future, there will be new architectures or their newer versions and alongside them, new malwares. |
| The only difference between all these mobile devices is the ARM version on which the processor is designed. ARM stands for Advanced RISC Machine. Today, ARM has multiple processor architecture series, including Cortex-M, Cortex-R, Cortex-A, and Cortex-X, as well as other series. | |
| Cortex-X series processors are made for performance to be used in Smartphones and Laptops. Now it supports up to 14 cores but this value changes over time. Similarly, the Cortex-A series is made for devices designed to execute complex computation tasks. These processors are made to provide power-efficient workloads for increasing battery life. Similarly to the Cortex-X series, these processors also may have up to 14 cores. The cortex-R series is made for real-time operations, where reaction to events is crucial. These are made specifically to be used in time-sensitive and safety-critical environments. The architecture itself is very similar to the Cortex-A processors with some exceptions that will not be discussed here. The Cortex-M series is for microcontrollers where low power consumption and computational power are required. Many wearable devices, IoT, and embedded devices contain ARM microcontrollers. | |
| Mobile devices tend to use Cortex-A series processors. To learn its architecture, we will use the Raspberry PI. For ARM architecture, we will use the Cortex-M series microcontroller. | |
| We chose an ST-manufactured microcontroller STM32H743VIT6 microcontroller, to work with assembler programming language. The microcontroller itself is being chosen for a reason – the processor core is based on ARMv7 Cortex-M7 which is one of the most powerful processor architectures among microcontrollers. | |
| |