50
ARM Processor Architecture ARM Processor Architecture (II) (II) Speaker: Lung-Hao Chang 張張張 Advisor: Porf. Andy Wu 張張張張張 Graduate Institute of Electronics Engineering, National Taiwan University Modified from National Chiao-Tung University IP Core Design course

ARM Processor Architecture (II)

Embed Size (px)

Citation preview

Page 1: ARM Processor Architecture (II)

ARM Processor Architecture ARM Processor Architecture (II)(II)

Speaker: Lung-Hao Chang 張龍豪Advisor: Porf. Andy Wu 吳安宇教授

Graduate Institute of Electronics Engineering,

National Taiwan University

Modified from National Chiao-Tung University IP Core Design course

Page 2: ARM Processor Architecture (II)

2SOC Consortium Course MaterialARM Platform Design 09/21/2003

Outline

ARM processor coreMemory hierarchySoftware development Summary

Page 3: ARM Processor Architecture (II)

3SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Processor Core

Page 4: ARM Processor Architecture (II)

4SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Processor Core

Current low-end ARM core for applications like digital mobile phones

TDMI– T: Thumb, 16-bit compressed instruction set– D: on-chip Debug support, enabling the processor to halt

in response to a debug request– M: enhanced Multiplier, yield a full 64-bit result, high

performance – I: EmbeddedICE hardware

Von Neumann architecture3-stage pipelineCPI ~ 1.9

Page 5: ARM Processor Architecture (II)

5SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Block Diagram

JTAG TAPcontroller

Embedded

processorcore

TCK TMSTRST TDI TDO

D[31:0]

A[31:0]

opc, r/w,mreq, trans,mas[1:0]

othersignals

scan chain 0

scan chain 2

scan chain 1

extern0extern1 ICE

bussplitter

Din[31:0]

Dout[31:0]

Page 6: ARM Processor Architecture (II)

6SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Core Diagram

Page 7: ARM Processor Architecture (II)

7SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Interface Signals (1/4)

mreqseqlock

Dout[31:0]

D[31:0]

r/wmas[1:0]

mode[4:0]trans

abort

opccpi

cpacpb

memoryinterface

MMUinterface

coprocessorinterface

mclkwaiteclk

isync

bigend

enin

irq¼q

reset

enout

abe

VddVss

clockcontrol

configuration

interrupts

initialization

buscontrol

power

aleapedbe

dbgrqbreakptdbgack

debug

execextern1extern0

dbgen

bl[3:0]

TRSTTCKTMSTDI

JTAGcontrols

TDO

Tbit statetbe

rangeout0rangeout1

dbgrqicommrxcommtx

enouti

highzbusdis

ecapclk

busen

Din[31:0]

A[31:0]

ARM7TDMI

core

tapsm[3:0]ir[3:0]tdoentck1tck2screg[3:0]

TAPinformation

drivebsecapclkbsicapclkbshighzpclkbsrstclkbssdinbssdoutbsshclkbsshclk2bs

boundaryscanextension

Page 8: ARM Processor Architecture (II)

8SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Interface Signals (2/4) Clock control

– All state change within the processor are controlled by mclk, the memory clock

– Internal clock = mclk AND \wait– eclk clock output reflects the clock used by the core

Memory interface– 32-bit address A[31:0], bidirectional data bus D[31:0], separate data

out Dout[31:0], data in Din[31:0]– seq indicates that the memory address will be sequential to that used

in the previous cycle

Page 9: ARM Processor Architecture (II)

9SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Interface Signals (3/4)– Lock indicates that the processor should keep the bus to ensure the

atomicity of the read and write phase of a SWAP instruction– \r/w, read or write– mas[1:0], encode memory access size – byte, half-word or word– bl[3:0], externally controlled enables on latches on each of the 4

bytes on the data input bus MMU interface

– \trans (translation control), 0: user mode, 1: privileged mode– \mode[4:0], bottom 5 bits of the CPSR (inverted)– Abort, disallow access

State– T bit, whether the processor is currently executing ARM or Thumb

instructions Configuration

– Bigend, big-endian or little-endian

Page 10: ARM Processor Architecture (II)

10SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM7TDMI Interface Signals (4/4) Interrupt

– \fiq, fast interrupt request, higher priority– \irq, normal interrupt request– isync, allow the interrupt synchronizer to be passed

Initialization– \reset, starts the processor from a known state, executing from

address 0000000016

ARM7TDMI characteristics

Page 11: ARM Processor Architecture (II)

11SOC Consortium Course MaterialARM Platform Design 09/21/2003

Memory Access The ARM7 is a Von Neumann,

load/store architecture, i.e.,– Only 32 bit data bus for both inst. And

data.– Only the load/store inst. (and SWP)

access memory. Memory is addressed as a 32 bit

address space Data type can be 8 bit bytes, 16 bit

half-words or 32 bit words, and may be seen as a byte line folded into 4-byte words

Words must be aligned to 4 byte boundaries, and half-words to 2 byte boundaries.

Always ensure that memory controller supports all three access sizes

Page 12: ARM Processor Architecture (II)

12SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Memory Interface Sequential (S cycle)

– (nMREQ, SEQ) = (0, 1)– The ARM core requests a transfer to or from an address which is either the

same, or one word or one-half-word greater than the preceding address.

Non-sequential (N cycle)– (nMREQ, SEQ) = (0, 0)– The ARM core requests a transfer to or from an address which is unrelated to

the address used in the preceding address.

Internal (I cycle)– (nMREQ, SEQ) = (1, 0)– The ARM core does not require a transfer, as it performing an internal

function, and no useful prefetching can be performed at the same time

Coprocessor register transfer (C cycle)– (nMREQ, SEQ) = (1, 1)– The ARM core wished to use the data bus to communicate with a

coprocessor, but does no require any action by the memory system.

Page 13: ARM Processor Architecture (II)

13SOC Consortium Course MaterialARM Platform Design 09/21/2003

Cached ARM7TDMI Macrocells

ARM710T– 8K unified write through

cache– Full memory management

unit supporting virtual memory

– Write buffer

ARM720T– As ARM 710T but with WinCE

support

ARM 740T– 8K unified write through cache– Memory protection unit– Write buffer

AMBAInterface

Inst. & data cache

MMU

ARM Core

CP15EmbeddedICE & JTAG

WriteBuffer

AMBA Address

AMBA Data

VirtualAddress

PhysicalAddress

Inst. & data

Page 14: ARM Processor Architecture (II)

14SOC Consortium Course MaterialARM Platform Design 09/21/2003

Processor Core Vs CPU Core Processor Core

– The engine that fetches instructions and execute them– E.g.: ARM7TDMI, ARM9TDMI, ARM9E-S

CPU Core– Consists of the ARM processor

core and some tightly coupled function blocks

– Cache and memory management blocks

– E.g.: ARM710T, ARM720T, ARM74T, ARM920T, ARM922T, ARM940T, ARM946E-S, and ARM966E-S

AMBAaddress

AMBAdata

instruction &data cache

AMBA interface

ARM7TDMI

EmbeddedICE& JTAG

virtual address

instruct ions & data

phy

sica

la

ddre

ss

CP15

MMU

writebuffer

ARM710T

Page 15: ARM Processor Architecture (II)

15SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM8 Higher performance than ARM7

– By increasing the clock rate– By reducing the CPI

• Higher memory bandwidth, 64-bit wide memory

• Separate memories for instruction and data accesses

memory(double-

bandwidth)

prefetchunit

integerunit

coprocessor(s)

write data

read data

addresses

instructionsPC

CPdataCPinst.

Core Organization– The prefetch unit is responsible for

fetching instructions from memory and buffering them (exploiting the double bandwidth memory)

– It is also responsible for branch prediction and use static prediction based on the branch prediction (backward: predicted ‘taken’; forward: predicted ‘not taken’)

ARM8 ARM9TDMI

ARM10TDMI

Page 16: ARM Processor Architecture (II)

16SOC Consortium Course MaterialARM Platform Design 09/21/2003

Pipeline Organization

5-stage, prefetch unit occupies the 1st stage, integer unit occupies the remainder

(1) Instruction prefetch

(2) Instruction decode and register read

(3) Execute (shift and ALU)

(4) Data memory access

(5) Write back results

Prefetch Unit

Integer Unit

Page 17: ARM Processor Architecture (II)

17SOC Consortium Course MaterialARM Platform Design 09/21/2003

Integer Unit Organization

inst. decode

register write

+4

writepipeline

multiplier

register read

mux

ALU/shifter

rot/sgn ex

PC+8instructionscoprocessorinstructions

coprocdata

forwardingpaths

writedata

address

readdata

decode

execute

memory

write

Page 18: ARM Processor Architecture (II)

18SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM8 Macrocell

8 Kbyte cache(double-

bandwidth)

prefetchunit

ARM8 integerunit

CP15

write data

read data

virtual address

instructionsPC

CPdataCPinst.

write buffer MMU

address buffer

physical address

data outdata in address

copy-back tag

JTAG

copy-back data

ARM810– 8K byte unified instruction

and data cache– Copy-back– Double-bandwidth– MMU– Coprocessor– Write buffer

Page 19: ARM Processor Architecture (II)

19SOC Consortium Course MaterialARM Platform Design 09/21/2003

StrongARM

The first ARM processor to use a modified-Harvard (separate instruction and data cache) architecture and now available from Intel

Feature– A 5-stage pipeline with register forwarding– Single-cycle execution of all common instruction s except

64-bit multiplies– Instruction cache/copy-back data cache– Write buffer– Pseudo-static operation with low power consumption

Page 20: ARM Processor Architecture (II)

20SOC Consortium Course MaterialARM Platform Design 09/21/2003

StrongARM core pipeline organization

I-cache

rot/sgn ex

+4

rotate

ALU & multiply

I decode

register read+ disp

D-cache

fetch

instructiondecode

execute

buffer/data

write-back

forwardingpaths

immediate¼elds

branchtarget

branchoffset

nextpc

regshift

load/storeaddress

LDR pc

SUBS pc

MOV pc

post-index

pre-index

LDM/STM

register write

r15

pc + 8

B, BL

pc + 4

+4

mux

shift

Page 21: ARM Processor Architecture (II)

21SOC Consortium Course MaterialARM Platform Design 09/21/2003

StrongARM Processor

SA-1110/SA-1111– Intel SA-1 core– 16-Kbyte instruction and 8-Kbyte data cache– MMU, read and write buffers– 512-byte mini-data cache

Page 22: ARM Processor Architecture (II)

22SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM9TDMI

Harvard architecture– Increases available memory bandwidth

• Instruction memory interface• Data memory interface

– Simultaneous accesses to instruction and data memory can be achieved

5-stage pipelineChanges implemented to

– Improve CPI to ~1.5– Improve maximum clock frequency

Page 23: ARM Processor Architecture (II)

23SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM9TDMI Organization

I-cache

rot/sgn ex

+4

byte repl.

ALU

I decode

register read

D-cache

fetch

instructiondecode

execute

buffer/data

write-back

forwardingpaths

immediatefields

nextpc

regshift

load/storeaddress

LDR pc

SUBS pc

post-index

pre-index

LDM/STM

register write

r15

pc + 8

pc + 4

+4

mux

shift

mul

B, BL

MOV pc

Page 24: ARM Processor Architecture (II)

24SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM9TDMI Pipeline Operations (1/2)

instructionfetch

instructionfetch

Thumbdecompress

ARMdecode

regread

regwriteshift/ALU

regwriteshift/ALU

r. read

decode

data memoryaccess

Fetch Decode Execute

Memory WriteFetch Decode Execute

ARM9TDMI:

ARM7TDMI:

The ARM9TDMI pipeline is much tighter and does not have sufficient slack time to allow Thumb instructions to be first translate into ARM instructions and then decoded

It has hardware to decode both ARM and Thumb instructions directly

Page 25: ARM Processor Architecture (II)

25SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM9TDMI Pipeline Operations (2/2)

Coprocessor support– Coprocessors: floating-point, digital signal processing, special-

purpose hardware accelerator

On-chip debugger– Additional features compared to ARM7TDMI

• Hardware single stepping• Breakpoint can be set on exceptions

ARM9TDMI characteristics

Page 26: ARM Processor Architecture (II)

26SOC Consortium Course MaterialARM Platform Design 09/21/2003

Cached ARM9TDMI Macrocell

ARM920T– ARM9TDMI– 16KB instruction cache, 16KB data cache– Full Memory Management Unit, Write Buffer

ARM922T– ARM9TDMI– 8KB instruction cache, 8KB data cache– Full Memory Management Unit, Write Buffer

ARM940T– ARM9TDMI– 4KB instruction cache, 4KB data cache– Protection Unit

Page 27: ARM Processor Architecture (II)

27SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM920T CPU Core

Page 28: ARM Processor Architecture (II)

28SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM9E-S Family Overview ARM9E-S is based on an ARM9TDMI with the following

extensions:– Single cycle 32*6 multiplier implementation

– EmbeddedICE logic RT

– Improved ARM/Thumb interworking

– New 32*16 and 16*16 multiply instructions

– New count leading zero instruction

– New saturated math instructions ARM946E-S

– ARM9E-S core

– Instruction and data caches, selectable sizes

– Instruction and data RAMs, selectable sizes

– Protection unit

– AHB bus interface

Architecture v5TE

Page 29: ARM Processor Architecture (II)

29SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM10TDMI (1/2)

High-end ARM processor corePerformance on the same IC process

ARM10TDMI ARM9TDMI ARM7TDMI×2×2

300MHz, 0.25µm CMOSIncrease clock rate

branchprediction

regwrite

r. readdecode

data memoryaccess

Memory WriteFetch Decode Execute

decode

Issue

multiplierpar tials add

instructionfetch

datawrite

shift/ALU

addr.calc.

multiply

ARM10TDMI

Page 30: ARM Processor Architecture (II)

30SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM10TDMI (2/2)

Reduce CPI– Branch prediction– Non-blocking load and store execution– 64-bit data memory → transfer 2 registers in each cycle

Page 31: ARM Processor Architecture (II)

31SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM1020T Overview Architecture v5T

– ARM1020E will be v5TE CPI ~ 1.3 6-stage pipeline Static branch prediction 32KB instruction and 32KB data caches

– ‘hit under miss’ support 64 bits per cycle LDM/STM operations EmbeddedICE Logic RT-II Support for new VFPv1 architecture ARM10200 test chip

– ARM1020T– VFP10– SDRAM memory interface– PLL

Page 32: ARM Processor Architecture (II)

32SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM1136J(F)-S First Implementations of ARMv6 Architecture

– ARM1136J-S integer-only core– ARM1136JF-S with integrated floating point

High speed pipeline microarchitecture– 8 stages

System level flexibility Low Power

– Microarchitecture designed for low power– Power management modes

Availability– Delivering to first licensees in December 2002

The ARM11 core has been developed and integrated in parallel with the ARM11 PrimeXsys Platform to ensure a fully compatible, high performance, extendable system solution

Page 33: ARM Processor Architecture (II)

33SOC Consortium Course MaterialARM Platform Design 09/21/2003

Memory Hierarchy

Page 34: ARM Processor Architecture (II)

34SOC Consortium Course MaterialARM Platform Design 09/21/2003

Memory Size and Speed

On-chip cache memory

registers

2nd-level off chip cache

Main memory

Hard diskAccess

timecapacity

Slow

Fast

Large

Small

Cost

Cheap

Expensive

Page 35: ARM Processor Architecture (II)

35SOC Consortium Course MaterialARM Platform Design 09/21/2003

Caches (1/2)

A cache memory is a small, very fast memory that retains copies of recently used memory values.

It usually implemented on the same chip as the processor.

Caches work because programs normally display the property of locality, which means that at any particular time they tend to execute the same instruction many times on the same areas of data.

An access to an item which is in the cache is called a hit, and an access to an item which is not in the cache is a miss.

Page 36: ARM Processor Architecture (II)

36SOC Consortium Course MaterialARM Platform Design 09/21/2003

Caches (2/2)

A processor can have one of the following two organizations:– A unified cache

• This is a single cache for both instructions and data

– Separate instruction and data caches• This organization is sometimes called a modified Harvard

architectures

Page 37: ARM Processor Architecture (II)

37SOC Consortium Course MaterialARM Platform Design 09/21/2003

Unified instruction and data cache

address

instructionscache memory

copies of

instructions

data

00..0016

FF..FF16

instructions

copies ofdata

registers

processor

instructionsaddress

and data

and data

Page 38: ARM Processor Architecture (II)

38SOC Consortium Course MaterialARM Platform Design 09/21/2003

Separate data and instruction caches

address

datacache

00..0016

FF..FF16

copies ofdata

registers

processor

dataaddress

address

instructionsaddress

cache

copies ofinstructions

instructions

memory

instructions

data

Page 39: ARM Processor Architecture (II)

39SOC Consortium Course MaterialARM Platform Design 09/21/2003

Cache Write Strategies

Write-through– All write operations are passed to main memory

Write-through with buffered write– All write operations are still passed to main memory and

the cache updated as appropriate, but instead of slowing the processor down to main memory speed the write address and data are stored in a write buffer which can accept the write information at high speed.

Copy-back (write-back)– No kept coherent with main memory

Page 40: ARM Processor Architecture (II)

40SOC Consortium Course MaterialARM Platform Design 09/21/2003

Software Development

Page 41: ARM Processor Architecture (II)

41SOC Consortium Course MaterialARM Platform Design 09/21/2003

ANSI C compilers – armcc and tcc ISO/Embedded C++ compilers – armcpp and tcpp ARM/Thumb assembler - armasm Linker - armlink Project management tool for windows - CodeWarrior Instruction set simulator - ARMulator Debuggers - AXD, ADW, ADU and armsd Format converter - fromelf Librarian – armar ARM profiler – armprof C and C++ libraries ROM-based debug tools (ARM Firmware Suite, AFS) Real Time Debug and Trace support Support for all ARM cores and processors including ARM9E,

ARM10, Jazelle, StrongARM and Intel Xscale

Main Components in ADS

ADS: ARM Developer Suite

Page 42: ARM Processor Architecture (II)

42SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM C Compiler

Compiler is compliant with the ANSI standard for CSupported by the appropriate library of functionsUse ARM Procedure Call Standard, APCS for all

external functions– For procedure entry and exit

May produce assembly source output– Can be inspected, hand optimized and then assembled

sequentially

Can also produce Thumb codes

Page 43: ARM Processor Architecture (II)

43SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Linker

Take one or more object files and combine themResolve symbolic references between the object

files and extract the object modules from librariesNormally the linker includes debug tables in the

output file

Page 44: ARM Processor Architecture (II)

44SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Symbolic Debugger

A front-end interface to debug program running either under emulator (on the ARMulator) or remotely on a ARM development board (via a serial line or through JTAG test interface)

ARMsd allows an executable program to be loaded into the ARMulator or a development board and run. It allows the setting of – Breakpoints, addresses in the code– Watchpoints, memory address if accessed as data

address• Cause exception to halt so that the processor state can be

examined

Page 45: ARM Processor Architecture (II)

45SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Emulator: ARMulator A suite of programs that models the behavior of various ARM

processor cores and system architecture in software on a host system

Can be operates at various levels of accuracy– Instruction accurate– Cycle accurate– Timing accurate

Benchmarking before hardware is available– Instruction count or number of cycles can be measured for a

program.– Performance analysis.

Run software on ARMulator– Through ARMsd or ARM GUI debuggers, e.g., AXD– The processor core model incorporates the remote debug interface,

so the processor and the system state are visible from the ARM symbolic debugger

– Supports a C library to allow complete C programs to run on the simulated system

Page 46: ARM Processor Architecture (II)

46SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Development Board

A circuit board including an ARM core (e.g. ARM9TDMI), memory component, I/O and electrically programmable devices

It can support both hardware and software development before the final application-specific hardware is available

Page 47: ARM Processor Architecture (II)

47SOC Consortium Course MaterialARM Platform Design 09/21/2003

ARM Integrator

A mother with some extensions to support the development of applications

Provides core modules, logic modules (Xilinx Virtex FPGA, Alter APEX FPGA), OS, input/output resources, bus arbitration, interrupt handling

Page 48: ARM Processor Architecture (II)

48SOC Consortium Course MaterialARM Platform Design 09/21/2003

Summary (1/2)

ARM Processor Family

Processor family

# of pipeline stages

Memory organization

Clock Rate MIPS/MHz

ARM6 3 Von Neumann 25 MHz

ARM7 3 Von Neumann 66 MHz 0.9

ARM8 5 Von Neumann 72 MHz 1.2

ARM9 5 Harvard 200 MHz 1.1

ARM10 6 Harvard 400 MHz 1.25

StrongARM 5 Harvard 233 MHz 1.15

ARM11 8 Von Neumann/

Harvard

550 MHz 1.2

Page 49: ARM Processor Architecture (II)

49SOC Consortium Course MaterialARM Platform Design 09/21/2003

Summary (2/2)

Memory hierarchy– Unified cache/Separate instruction and data cache– Write-through with buffered write

Software Development– CodeWarrior IDE

• armcc/tcc/armcpp/tcpp• armasm• armlink• armprof

– AXD (ARM eXtended Debugger)• armsd

– ARMulator

ARM Integrator

Page 50: ARM Processor Architecture (II)

50SOC Consortium Course MaterialARM Platform Design 09/21/2003

References

[1] http://twins.ee.nctu.edu.tw/courses/ip_core_02/index.html

[2] ARM System-on-Chip Architecture, Second Edition, edited by S.Furber, Addison Wesley Longman: ISBN 0-201-67519-6.

[3] Architecture Reference Manual, Second Edition, edited by D. Seal, Addison Wesley Longman: ISBN 0-201-73719-1.

[4] www.arm.com