ARM Processors
ARM Processors
Introduction
This architecture introduced in 1980 by Acorn Computers. ARM1 was designed by the team led by Sophie
Wilson and Steve Furber in 1985 and served as the foundation for subsequent ARM processors. ARM processor is
stands for Advanced RISC Machines processor. It is a 32-bit processor.
The architecture of this processor id RISC architecture that is contained in the name as R. Because if that this
is the first RISC micro-processor that was released to the commercial use. Mainly these processors used in portable
devices because the low power consumption of this processors. It means ARM processors are basically used in
devices that powered by batteries.
When we are considering about the RISC architecture, we can’t forget about the CISC architecture. Because
it helps to understand about the functionality of the RISC processors. A short comparison between the RISC and CISC
architectures, is given below.
RISC CISC
➢ Reduces Instruction Set Computers ➢ Complex Instruction Set Computers
➢ RISC has simple decoding of instructions. ➢ CISC has complex decoding of instructions.
➢ Execute the instructions in less time. ➢ Execution of instruction takes long time.
➢ This architecture can be used in high-end ➢ This architecture can be used in low-end
applications. applications.
➢ E.g.: - Telecommunication, Image processing, ➢ E.g.: - Home automations, Security systems and
Video processing and etc. etc.
➢ RISC has fixed format of instructions. ➢ CISC has variable format of instructions.
➢ Programs that written for RISC processors take ➢ Programs that written for CISC processors takes
large memory space. low memory space.
➢ E.g.: - Motorola 68000, System/360, AMD, Intel
➢ E.g.: - ARM, ARC, SPARC … x86 CPUs …
• Called as ARM.
• 1st version of ARM processors.
• It had 26-bit addressing.
ARMv1 • Didn't have Multipy or Co-processor
• Called as ARM2.
• This is the first commercial chip.
ARMv2 • It had 32-bit result Multiply instructions and Co-processor.
• Called as ARM3.
• On-Chip-Cache. It means Cache memory was on the chip.
ARM v2 a • Added Load & Store architecture and cache management
• Called as ARM6.
• It had 32-bit addressing.
ARMv3 • Supports to the Virtual memory.
The important fact about these instructions is, it accesses the memory and all other instructions use
registers as operands. Let’s consider about the Load and Store instructions separately.
➢ Load instructions
o LDR R0, [R1]
▪ The “R1” is the address of the memory location.
▪ “R0” is the content of the address that in the “R1”.
▪ “LDR” stands for “Load Register”.
▪ These instructions are allowed to access the memory.
➢ Store instructions
o ADD R0, R1, R2
▪ “R1” and “R2” are Source operands.
▪ Can’t access to the memory. It can access only the register.
▪ The simple procedure of instruction that given above is,
R0 = R1 + R2
▪ The instructions will only process values which are in registers and it will always place result
of such processing into a register.
The main benefit of this method is it can increase the processing speed.
Basic architecture of ARM processor
Barrel shifter: - It can do shifting and rotating operations. And it also a 32-bit unit. Barrel shifter can execute
various types of operations.
Shift operations
Logical operations
Arithmetic operations
Rotate operations
Bit manipulation
The ARM instruction set includes a variety of data processing instructions, which are fundamental for
performing arithmetic, logical, compare and register movement on data. These instructions operate on registers and
immediate values, enabling the manipulation of data within the processor. Here's an overview of the main data
processing instructions from the ARM instruction set.
Compare: - Compares two operands and updates the processor flags based on the result, without
storing the result. (CMP)
Register movement: - Copies the one operand value to register (MOV), Move NOT (MVN)
data processing instructions operate on operands, which are the inputs to the instructions. These operands
can take various forms, allowing for flexibility in performing arithmetic, logical, and control operations. Here are the
types of operands commonly used in data processing instructions.
registers are denoted by symbolic names such as R0, R1, ..., R15 (or alternatively, r0, r1, ..., r15).
Registers can be used as both source and destination operands in data processing instructions.
Immediate operands
Replace the second source operand with an immediate operand, which is a literal constant,
preceded by “#”.
Shifted register values involve shifting the bits of a register left or right by a specified number of
positions before using them as operands. There are some shifting instructions,
those are Logical Shift Left (LSL), Logical Shift Right (LSR), Arithmetic Shift Left (ASL), Arithmetic Shift
Right (ASR), Rotate Right (ROR), Rotate Right Exclusive (RRX).
E. g.: - AND R1, R2, R3, LSL #2 ➔ Perform a logical AND operation between R2 and
Memory addresses specify locations in the system's memory where data is stored. Memory
addresses can be used as operands to load or store data from or to memory.
E. g.: - LDR R1, [R2] ➔ Load the data from the memory location pointed to by R2 into register R1
Transfer data from one location to another location and that location can be register. There are three types
of instructions in this. Those are,
It can change the flow of the execution of instructions. There are various types of control flow instructions.
Some of them are given below,