ARM Architecture

dwightsabio 14,650 views 26 slides Mar 26, 2017
Slide 1
Slide 1 of 26
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26

About This Presentation

ArmArch


Slide Content

ARM Architecture Com
p
uter Or
g
ani
z
ation and Assembl
y
Lan
g
ua
g
es
pgz ygg
Yung-Yu Chuang with slides by Peng-Sheng Chen, Ville Pietikainen

ARM history • 1983 developed by Acorn computers
T l 6502 i BBC t

T
o

rep
l
ace
6502 i
n
BBC
compu
t
ers

– 4-man VLSI design team
It i li it f th i i t

It
s

s
i
mp
li
c
it
y

comes
f
rom
th
e
i
nexper
i
ence
t
eam
– Match the needs for generalized SoC for reasonable
power performance and die size power
,
performance and die size
– The first commercial RISC implemenation
1990 ARM (Ad d RISC M hi ) d b

1990 ARM (Ad
vance
d RISC M
ac
hi
ne
)
,

owne
d b
y

Acorn, Apple and VLSI

ARM Ltd Design and license ARM core design but not fabricate

Why ARM? • One of the most licensed and thus widespread
processor cores in the world processor cores in the world
– Used in PDA, cell phones, multimedia players,
handheld game console digital TV and cameras handheld game console
,
digital TV and cameras
– ARM7: GBA, iPod
ARM9: NDS PSP Sony Ericsson BenQ

ARM9: NDS
,
PSP
,
Sony Ericsson
,
BenQ
– ARM11: Apple iPhone, Nokia N93, N800
90% of 32
bit embedded RISC processors till 2009

90% of 32
-
bit embedded RISC processors till 2009
• Used especially in portable devices due to its
l ti d bl l
ow

power

consump
ti
on

an
d
reasona
bl
e

performance

ARM powered products

ARM processors • A simple but powerful design
A hl f il f di hi iil di

A
w
h
o
l
e
f
am
il
y

o
f d
es
i
gns

s
h
ar
i
ng

s
i
m
il
ar
d
es
i
gn

principles and a common instruction set

Naming ARM •ARMxyzTDMIEJFS

x: series

x: series
– y: MMU
z: cache

z: cache
– T: Thumb
D: debugger

D: debugger
– M: Multiplier
I: EmbeddedICE (built
in debugger hardware)

I: EmbeddedICE (built
-
in debugger hardware)
– E: Enhanced instruction
J J ll (JVM)

J
:
J
aze
ll
e
(JVM)
– F: Floating-point
S Sthiibl i ( d i f EDA

S
:
S
yn
th
es
i
z
ibl
e

vers
i
on
(
source

co
d
e

vers
i
on
f
or
EDA
tools)

Popular ARM architectures •ARM7TDMI
3 i li t (f t h/d d / t )

3
p
i
pe
li
ne

s
t
ages
(f
e
t
c
h/d
eco
d
e
/
execu
t
e
)
– High code density/low power consumption
O f th t d ARM
i (f l
d

O
ne

o
f th
e

mos
t
use
d ARM
-vers
i
on
(f
or
l
ow-en
d
systems) All ARM cores after ARM7TDMI include TDMI even if

All ARM cores after ARM7TDMI include TDMI even if they do not include TDMI in their labels
ARM9TDMI

ARM9TDMI
– Compatible with ARM7
5 t (f t h/d d / t / / it )

5
s
t
ages
(f
e
t
c
h/d
eco
d
e
/
execu
t
e
/
memory
/
wr
it
e
)
– Separate instruction and data cache
•ARM11

ARM family comparison year 1995 1997 1999 2003

ARM is a RISC • RISC: simple but powerful instructions that
execute within a single cycle at high clock speed execute within a single cycle at high clock speed
.
• Four major design rules:
– Instructions: reduced set/single cycle/fixed length
– Pipeline: decode in one stage/no need for microcode
– Registers: a large set of general-purpose registers – Load/store architecture: data processing instructions
apply to registers only; load/store to transfer data
from memory Rl i il di d f lk

R
esu
l
ts
i
n

s
i
mp
l
e
d
es
i
gn

an
d f
ast

c
l
oc
k
rate
• The distinction blurs because CISC implements
RISC concepts

ARM design philosophy • Small processor for lower power consumption
(for embedded system) (for embedded system)
• High code density for limited memory and
hil i titi
p
h
ys
i
ca
l
s
i
ze

res
t
r
i
c
ti
ons
• The ability to use slow and low-cost memory
• Reduced die size for reducing manufacture cost
and accommodatin
g
more
p
eri
p
herals
gpp

ARM features • Different from pure RISC in several ways:
V i bl l ti f t i i t ti

V
ar
i
a
bl
e

cyc
l
e

execu
ti
on
f
or

cer
t
a
i
n
i
ns
t
ruc
ti
ons:

multiple-register load/store (faster/higher code density) density)
– Inline barrel shifter leading to more complex
instructions: improves performance and code density instructions: improves performance and code density
– Thumb 16-bit instruction set: 30% code density
im
p
rovement
p
– Conditional execution: improve performance and
code density by reducing branch
– Enhanced instructions: DSP instructions

ARM architecture

ARM architecture • Load/store
architecture architecture
• A large array of
if i t
un
if
orm

reg
i
s
t
ers
• Fixed-length 32-bit
instructions
• 3-address instructions

Registers • Only 16 registers are visible to a specific mode.
A mode could access A mode could access
– A particular set of r0-r12
13 ( t k i t )
–r
13 (
sp,

s
t
ac
k
po
i
n
t
er
)
– r14 (lr, link register)
15 ( )
–r
15 (
pc,

program

counter
)
– Current program status register (cpsr) – The uses of r0-r13 are orthogonal

General-purpose registers
0 8 7 16 15 24 23 31
8
-
bit Byte
8
bit

Byte
16-bit Half word
32-bit word

6 data types (signed/unsigned)

6 data types (signed/unsigned)
• All ARM operations are 32-bit. Shorter data
t l td b dt tf t
ypes

are

on
l
y

suppor
t
e
d b
y
d
a
t
a
t
rans
f
er

operations.

Program counter • Store the address of the instruction to be
executed executed
• All instructions are 32-bit wide and word-
li d
a
li
gne
d
• Thus, the last two bits of pc are undefined.

Program status register (CPSR)
mode bits
overflow
T
humb state
carry/borrow
zero
FIQ disable
IR
Q
disable
negative
Q

Processor modes

Register organization

Instruction sets • ARM/Thumb/Jazelle

Pipeline ARM7 ARM9ARM9 In execution pc always 8 bytes ahead In execution
,
pc always 8 bytes ahead

Pipeline • Execution of a branch or direct modification of
pc causes ARM core to flush its pipeline pc causes ARM core to flush its pipeline
• ARM10 starts to use branch prediction • An instruction in the execution stage will
complete even though an interrupt has been
raised. Other instructions in the pipeline are abondond.

Interrupts
Vector table
:
Interrupt handlers handlers
code

Interrupts

References
Tags