27
Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture of ARM Processor Family Presented by Sambhavi Parajuli INFOTECH II semester, University of Stuttgart Supervisor Dominik Lücke 03.07.2006

Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Embed Size (px)

Citation preview

Page 1: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Seminar on

Architectures and Design Methods for Embedded Systems

Seminar Topic

Architecture of ARM Processor FamilyPresented by Sambhavi Parajuli

INFOTECH II semester, University of Stuttgart

Supervisor Dominik Lücke

03.07.2006

Page 2: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Overview

1. History of development of the ARM processor.

2. Features of the ARM processor architecture and oganisation

of the ARM components.

3. The ARM pipelines, modes and structure of the ARM

components.

4. Development of wide range of the ARM processor families.

5. Instructions supported by the ARM processors.

2

Page 3: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

History of the ARM Processor

• Developed the first ARM Processor (Acorn RISC Machine) in1985 at Acorn Computers Limited.

• Established a new company named Advanced RISC MachineLimited and developed ARM6.

• Continuation of the architecture enhancements from theoriginal architecture.

3

Page 4: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Features of the ARM Processor

• Incorporate features of Berkeley RISC design-a large register file-a load/store architecture-uniform and fixed length instruction field -simple addressing mode

• Other ARM architecture features -Arithmetic Logic Unit and barrel shifter-auto increment and decrement addressing mode-conditional execution of instructions

• Based on Von Neumaan Architecture or Harvard Architecture

Source: www.wikipedia.com

4

Page 5: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Internal Organisation of the ARM Processor

Source: Shuqiang Zhang5

Page 6: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

ARM Pipelines

• Pipeline mechanism to increase execution speed.

• The pipeline design of each processor family is different.

6

Page 7: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

ARM Processor Modes

Unprivileged modeUser mode

Privileged modeAbort mode Fast Interrupt Request modeInterrupt Request modeSupervisor modeSystem modeUndefined mode

ARM architecture supports seven operating modes: one unprivileged mode and six privileged modes.

7

Page 8: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Register Files

• The ARM Registers-37 registers: one program counter, six program status registers, 30 general purpose registers.

• The Banked Registers: 20 registers when the processor is in a particular privileged mode

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R15

R14

R8_fiq

R9_fiq

R10_fiq

R11_fiq

R12_fiq

R13_fiq

R14_fiq

R13_irq

R14_irq

R13_svc

R14_svc

R13_undef

R14_undef

R13_abt

R14_abt

cpsr

- Spsr_fiq Spsr_irq Spsr_svc Spsr_undef Spsr_abt

user and system fast interrupt request interrupt request supervisor undefined abort

Register Organisation

8

Page 9: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Program Status Register• Current Program Status Register

Flags Status Extension Control

Interrupt Mask

Fast Interrupt Mask

Thumb State

Processor mode

Condition flags

Jazelle (optional)

DSP

N=Negative, Z=Zero, C=Carry, V= oVerflow

• Saved Program Status Register 9

N Z C V Q J I F T Mode

31 30 29 28 27 24 7 6 5 4 0

10001fiqFast Interrupt Request

10000usrUser

11011undUndefined

11111sysSystem

10011svcSupervisor

10010irqInterrupt Request

10111abtAbort

Mode[4:0]AbbreviationProcessor Mode

Representation of Processor modes in cpsr

Page 10: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Instruction Set Design

ARM, Thumb and Jazelle

• ARM instruction set32-bit instructions,support load-store architecture,conditionally execution,use 3-address format Example : ADDS r0,r1,#1

• Thumb instruction set16-bit instructions, support load-store architecture, unconditionally execution (branch instructions), use 2-address formatExample : ADD r1,#1

• Jazelle instruction set8-bit instructions, Javabyte code execution 10

Page 11: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Interrupt and Exceptions

When an exception occurs, the processor stops normal executionand enters one of the exception modes.

Exception when processor in the Thumb mode

Table1: The Interrupt Vector Table

0xffff001c0x0000001cFIQFast Interrupt request

0xffff00180x00000018IRQInterrupt request

0xffff00140x00000014-Reserved

0xffff00100x00000010DABTData abort

0xffff000c0x0000000cPABTPrefetch abort

0xffff00080x00000008SWISoftware interrupt

0xffff00040x00000004UNDEFUndefined instruction

0xffff00000x00000000RESETReset

High AddressAddressAbbreviationException/Interrupt

ARM THUMB ARM THUMB ARM

Reset BCX BX

11Exceptions End of exceptionsSource: Trevor Martin

Page 12: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

The ARM Processor Families (I)The ARM7 Family

• 32-bit RISC Processor.• Support three-stage pipeline

• Uses Von Neumann Architecture.

Fetch Decode Execute

ARM7TDMI Processor ARM7EJ-S ProcessorSource: www.arm.com12

Page 13: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Characteristics of ARM7 family

NoNoYes---ARM7TDMI-S

NoNoYes---ARM7TDMI

YesYesYes---ARM7EJ-S

NoNoYesMMU-8k unifiedARM720T

JazelleDSPThumbMemory Mgmt

Tightly Coupled Memory

Cache size(Inst/Data

Source: www.arm.com

Widely used in many applications such as palmtop computers, portable instruments, smart card.

13

Page 14: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

The ARM Processor Families (II)

The ARM9 Family • 32-bit RISC Processor with ARM and Thumb instruction sets• Supports five-stage pipeline.

• Uses Harvard architecture

Fetch WriteMemoryExecuteDecode

ARM920T Processor ARM946E-S ProcessorSource: www.arm.com

14

Page 15: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

NoNoYesMMU8k/8kARM922T

NoNoYesMMU-16k/16kARM920T

JazelleDSPThumbMemory Mgmt

Tightly Coupled Memory

Cache size(Inst/Data)

Characteristics of ARM9 Thumb Family

Source: www.arm.com

NoYesYesMPUARM996H-S

NoYesYesDMAYesN/aARM968E-S

NoYesYes-Yes-ARM966E-S

NoYesYesMPUYesVariableARM946E-S

YesYesYesMMUYesVariableARM926EJ-S

JazelleDSPThumbMemory Mgmt

Tightly Coupled Memory

Cache size(Inst/Data)

Characteristics of ARM9E Family

Widely used in mobile phones, PDAs,digital cameras, automotivesystems, industrial control systems. 15

Page 16: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

The ARM Processor Families (III)

The ARM10 Family• 32-bit RISC processor with ARM, Thumb and DSP instruction

sets.• Supports six-stage Pipelines.

• Uses Harvard Architecture

Fetch WriteMemoryExecuteDecodeIssue

ARM1020E Processor

Source: www.arm.com 16

Page 17: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Characteristics of ARM10 family

YesYesYesMMU or MPU

YesVariableARM1026EJ-S

NoYesYesMMU-16k/16kARM1022E

NoYesYesMMU-32k/32kARM1020E

JazelleDSPThumbMemory Mgmt

Tightly Coupled Memory

Cache size(Inst/Data)

Widely used in videophone, PDAs, set-top boxes, game console,

digital video cameras,automotive and industrial control systems

17

Page 18: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

The ARM Processor Families (IV)The ARM11 Family

• 32-bit RISC processor with ARM, Thumb and DSP instruction sets.

• Uses Harvard Architecture.• Supports eight-stage Pipelines except ARM1156T2 uses nine-

stage pipeline.• Widely used in automotive and industrial control systems, 3D

graphics, security critical applications.Characteristics of ARM11 family

YesYesYesMMU+TrustZoneYesVaraibleARM1176JZ(F)-S

NoYesYesMPUYesVariableARM1156T2(F)-S

YesYesYesMMUYesVariableARM1136J(F)-S

YesYesYesMMU+cacheYesVariableARM11 MPCore

JazelleDSPThumbMemory MgmtTightly Coupled Memory

Cache size(Inst/Data)

18Source: www.arm.com

Page 19: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Instructions supported by the ARM Processors

ARM Instruction Set: standard 32-bit instruction set Thumb Instruction Set: 16-bit instruction setJazelle Instruction Set: 8-bit instruction set

ARM Instruction Set supports six different types of instructions• Data Processing Instructions• Branch Instructions• Load/Store Instructions• Software Interrupt Instruction• Program Status Register Instructions• Coprocessor Instructions

19

Page 20: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Data Processing Instructions

used to manipulate data in general-purpose registers, employ a3-address format, support barrel shifter.Arithmetic Instructions:

ADD, ADC, SUB, SBC, RSB, RSCMove Instructions:

MOV, MVNBit-Wise Logical Instructions:

AND, EOR, ORR, BICComparison Instructions:

TST, TEQ, CMP, CMNMultiply Instructions:

MUL, MLA

20

Page 21: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Examples of Data Processing Instructions

• ADD operation without barrel shifterPre r0 = 0x00000000

r1 = 0x00000002r2 = 0x00000001

ADD r0, r1, r2Post r0 = 0x00000003

• ADD operation with barrel shifterPre r0 = 0x00000000

r1 = 0x00000005ADD r0, r1, r1, LSL #1Post r0 = 0x0000000f

r1 =0x00000005

Barrel Shifter operations

Rotote right extendedRRXRotate rightRORArithmetic right shiftASRLogical shift rightLSRLogical shift leftLSLDescriptionMnemonic

21

Page 22: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Branch Instructions

Change the flow of sequencial execution of instructions andforce to modify the program counter.Branch (B)

jumps in a range of +/- 32 MB.Branch with link(BL)

suitable for subroutine call by storing the address of next instructions after BL into the link register and restore the program counter from the link register while returning from subroutine.

Branch Exchange and Branch Exchange Linkfor switching the processor state from Thumb to ARM and vice versaARM Thumb

22

Page 23: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Load/Store InstructionsTransfer data between memory and registersSingle Register Transfer Instructions

used to move a single data item in and out of register (signed, unsigned, 16-bit half words and 32-bit word)supports register indirect, base-plus-offset and stack addressing modeLDR, STR, LDRB, STRB, LDRH, STRH, LDRSB

Multiple Register Transfer Instructionsany subset or all the 16 registers loaded from or stored to memory but increase interrupt latency.addressing modes- IA, IB,DA, DB stack operations- FA, FD, EA, EDLDM, STM

Swap Instructionsswap the contect of memory with the content of registers.SWP, SWPB 23

Page 24: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Software Interrupt Instruction• Used to call the SWI exception handler (operating system

functions).• Forces processor into supervisor mode.• SWIProgram Status Register Instructions• Used to transfer the content of program status registers to/from

a general-purpose register.• MRS (copy program status register to a general purpose

register), MSR(move a general-purpose register to a program status register)

Coprocessor Instructions• Used to extend the instruction set, to control on-chips

functions (caches and memory management) and for additional computations.

• CDP (data processing), MRC/MCR (register transfer), LDC/STC (memory transfer).

24

Page 25: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Systems with ARM Processor

25

Page 26: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Conclusion

• Continuous evolution of the ARM processors.• Use of various design techniques such as RISC architectures,

pipelines, DSP extension and Jazelle technology.• High performance, lower power consumption and system cost,

low silicon area and time-to-market.• Provide benefits in the wide area of technology design and

developments such as embedded real time applications,automotive control systems, portable applications and secureapplications.

26

Page 27: Architecture of ARM Processor Family - uni-stuttgart.deradetzki/Seminar06/07_slides.pdf · Seminar on Architectures and Design Methods for Embedded Systems Seminar Topic Architecture

Thank you very much for your attention.

Any questions?

27