You are on page 1of 25

Agenda

Introduction to ARM Ltd


Programmers Model
Instruction Sets
System Design
Development Tools

39v10 The ARM Architecture TM


1 1
39v10 The ARM Architecture TM
2 2
39v10 The ARM Architecture TM
3 3
39v10 The ARM Architecture TM
4 4
39v10 The ARM Architecture TM
5 5
39v10 The ARM Architecture TM
6 6
39v10 The ARM Architecture TM
7 7
39v10 The ARM Architecture TM
8 8
39v10 The ARM Architecture TM
9 9
39v10 The ARM Architecture TM
10 10
39v10 The ARM Architecture TM
11 11
ARM Partnership Model

39v10 The ARM Architecture TM


12 12
ARM Powered Products

39v10 The ARM Architecture TM


13 13
Programmers Model
The structure of the ARM
architecture
How it has developed
Register set, modes and
exceptions
The endian issue

39v10 The ARM Architecture TM


14 14
The ARM Architecture

T H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R
TM
15 L D
Data Sizes and Instruction Sets
 The ARM is a 32-bit architecture.

 When used in relation to the ARM:


 Byte means 8 bits
 Halfword means 16 bits (two bytes)
 Word means 32 bits (four bytes)

 Most ARM’s implement two instruction sets


 32-bit ARM Instruction Set
 16-bit Thumb Instruction Set

 Jazelle cores can also execute Java bytecode


39v10 The ARM Architecture TM
16 16
Processor Modes

39v10 The ARM Architecture TM


17 17
39v10 The ARM Architecture TM
18 18
Current Visible Registers
The ARM Register Set
r0
Abort Mode
r1
r2
r3 Banked
Current Visible Registers r4
r5
r0
Undef
SVCMode
IRQ
FIQ
User Mode
Mode
Mode
Mode r6 User FIQ IRQ
r1
r7
r2
r8 r8
r3
r9
Banked out Registers r9
r4
r10 r10
r5
r6 User FIQr11 IRQ SVC r11
Undef Abort
r12 r12
r7
r13 (sp) r13 (sp) r13 (sp) r13 (sp)
r8 r8 r8
r14 (lr) r14 (lr) r14 (lr) r14 (lr)
r9 r9 r9
r15 (pc)
r10 r10 r10
r11 r11 r11
cpsr
r12 r12 r12
spsr spsr spsr
r13 (sp) r13 (sp) r13 (sp) r13 (sp) r13 (sp) r13 (sp) r13 (sp)
r14 (lr) r14 (lr) r14 (lr) r14 (lr) r14 (lr) r14 (lr) r14 (lr)
r15 (pc)

cpsr
spsr spsr spsr spsr spsr spsr

39v10 The ARM Architecture TM


19 19
Register Organization Summary
User FIQ IRQ SVC Undef Abort
r0
r1
User
r2 mode
r3 r0-r7,
r4 r15, User User User User
and mode mode mode mode Thumb state
r5
cpsr r0-r12, r0-r12, r0-r12, r0-r12, Low registers
r6
r15, r15, r15, r15,
r7 and and and and
r8 r8 cpsr cpsr cpsr cpsr
r9 r9
r10 r10 Thumb state
r11 r11 High registers
r12 r12
r13 (sp) r13 (sp) r13 (sp) r13 (sp) r13 (sp) r13 (sp)
r14 (lr) r14 (lr) r14 (lr) r14 (lr) r14 (lr) r14 (lr)
r15 (pc)

cpsr
spsr spsr spsr spsr spsr

Note: System mode uses the User mode register set

39v10 The ARM Architecture TM


20 20
Program Status Registers

39v10 The ARM Architecture TM


21 21
39v10 The ARM Architecture TM
22 22
Program Status Registers
 Condition code flags  Interrupt Disable bits.
 N = Negative result from ALU
 I = 1: Disables the IRQ.
 Z = Zero result from ALU  F = 1: Disables the FIQ.
 C = ALU operation Carried out
 V = ALU operation oVerflowed  T Bit
 Architecture xT only
 T = 0: Processor in ARM state
 Sticky Overflow flag - Q flag  T = 1: Processor in Thumb state
 Architecture 5TE/J only
 Indicates if saturation has  GE for SIMD instructions
occurred  Mode bits
 J bit  Specify the processor mode
 Architecture 5TEJ only
 J = 1: Processor in Jazelle state

39v10 The ARM Architecture TM


23 23
Program Counter (r15)

 When the processor is executing in ARM state:


 All instructions are 32 bits wide
 All instructions must be word aligned
 Therefore the pc value is stored in bits [31:2] with bits [1:0] undefined (as
instruction cannot be halfword or byte aligned).

 When the processor is executing in Thumb state:


 All instructions are 16 bits wide
 All instructions must be halfword aligned
 Therefore the pc value is stored in bits [31:1] with bit [0] undefined (as
instruction cannot be byte aligned).

 When the processor is executing in Jazelle state:


 All instructions are 8 bits wide
 Processor performs a word access to read 4 instructions at once

39v10 The ARM Architecture TM


24 24
‘s memory organization
 Byte addressed memory
 Maximum 232 bytes of memory NB
NB--Lowest
Lowestbyte
byte
 A word = 32-bits, half-word = 16 bits address
address== LSB
LSBof
of
 Words aligned on 4-byte boundaries word
word
“Little-endian”
“Little-endian”
20

16
Word
Wordaddresses
addresses
follow
followLSB
LSBbyte
byte
12
address
address
8

39v10 The ARM Architecture TM


25 25

You might also like