Professional Documents
Culture Documents
&
The ARM Architecture
ARM Applications
History
Data Processing
Data Movement
Control Flow
Special Instructions
– Eg. Switching to privileged mode
How will u improve the Processor
Performance?
Fetch
Decode
Register Access
ALU
Memory, if necessary
Write Back
Pipeline Hazards
Instruction
1 Fetch Dec Reg ALU Mem Res
Instruction
1 Fetch Dec Reg ALU Mem Res
Branch Instructions?
RISC Architecture
RISC CISC
Fixed width instructions Variable length instructions
Few formats of instructions Several formats of
instructions
Load/Store Architecture Memory values can be used
as operands in instructions
Large Register bank Small Register Bank
RISC CISC
Hardwired instruction Microcode ROMS
decode instruction decoder
Single cycle execution of Multi cycle execution on
instruction instruction
RISC Advantages
Steve Furber
sfurber@cs.man.ac.uk
Father of ARM
Architectural Inheritance
A Load/Store Architecture
Fixed Length 32-bit Instructions
3- Address Instruction Formats
Features Rejected from Berkeley RISC
Delayed Branches
– Branches cause problem in Pipelines
– Most RISC Processor wait for execution
of branch
– Original ARM did not use delayed
Branching bcoz it makes exception
handling complex
– later helped simplify the re-
implementation of the Architecture
Features Rejected from Berkeley RISC
31 2827 8 7 6 5 4 0
NZCV unused IF T mode
The Memory System
bit 31 bit 0
23 22 21 20
19 18 17 16
word16
15 14 13 12
half-word14
half-word12
11 10 9 8
word8
7 6 5 4
byte6half-word4
3 2 1 0
byte
byte3byte2
byte1
byte0 address
Load-Store Architecture
Opera
tions
Arithmetic Operations
MOV r0, r2 r0 := r2
MVN r0, r2 r0 := not r2
Comparison Operations
00000 00000
LSL #5 LSR #5
31 0 31 0
0 1
00000 0 1 1111 1
31 0 31 0
C
C C
ROR #5 RRX
specif
y the Shift Value in Register
numbe
r of
bits
the
second
operan
d
should
be
shifte
risons
a
special
Setting the Condition Codes
reques
t
needs
to be
made
At
assem
bly
level
the
reques
t is
made
seco
nd
oper Multiplies
and
not
supp
orte
d
– The
resul
t
regis
ter
must
Single Register Load & Store
Data Transfer Instructions
transfer of a data item (byte, half-word,
–
word)
between ARM registers and memory
Multiple Register Load & Store
– enable transfer of large quantities of data
– used for procedure entry and exit, to
save/restore workspace registers, to copy
blocks of data around memory
Single Register Swap Instructions
– allow exchange between a register and memory
in one instruction
– used to implement semaphores to ensure
mutual exclusion on accesses to shared data in
multis
Register-Indirect Addressing