52
프로젝트 1 1 ARM CPU Architecture 단국대학교 컴퓨터학과 2009 백승재 ib 1383@d k k k ibanez1383@dankook.ac.kr http://embedded.dankook.ac.kr/~ibanez1383 단국대학교 백승재

ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Embed Size (px)

Citation preview

Page 1: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

프로젝트 1

1

ARM CPU Architecture

단국대학교

컴퓨터학과

2009백승재

ib 1383@d k k [email protected]://embedded.dankook.ac.kr/~ibanez1383

단국대학교 백승재

Page 2: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

강의 목표 2

ARM 종류와 특징 및 최신 동향 파악

ARM CPU Architecture 이해

ARM Assembly 숙지

단국대학교 백승재

Page 3: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM 3

ARM? Advanced RISC Machines! not In 1983 at Acorn Computers Ltd.By Herman Hauser Steve Furber Sophie Wilson Robert HeatonBy Herman Hauser, Steve Furber, Sophie Wilson, Robert Heaton, Jamie UrquhartFor low power, low cost, simple, small

단국대학교 백승재

Today, the ARM family accounts for approximately 75% of all embedded 32-bit RISC CPUs.

Page 4: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM® 4

They do not sells ARM processorsThey sells only IP

What’s the IP?What’s the IP?As ‘Hard macrocell’ or ‘Synthesizable core’ ... To processors manufactures

They also sells various development enviroments

단국대학교 백승재

Page 5: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

An auxiliary textbooks 5

Steve Furber Andrew SlossSteve FurberAddison-Wesley

Andrew SlossMorgan Kaufmann

단국대학교 백승재

Page 6: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Core & Family & Processor 6

ARM11ARMv6M Cortex-M1

CortexCortex-A8 Cortex-A9 Cortex-A9 MPCoreCortex-R4(F)

ARMv7-AARMv7-RARMv7-M Cortex-M3

13 stage pipeline, superscalar, application profile, NEON, ...

ARM 5TEJ

ARMv6 ARM1136J(F)-SARM11

ARM1156T2(F)-SARM1176JZ(F)-S

ARMv6T2ARMv6KZARMv6K ARM11 MPCore

8 stage pipeline, SIMD9 stage pipeline, Thumb-2

1~4 core SMP

ARMv5TE

ARMv5TEJARM7EJ-SARM7TDMIARM926EJ-SARM9E

ARM10E ARM1026EJ-S

5 stage pipeline, Jazelle, Enhanced DSP instructions

ARMv4TARM7TDMI ARM719T ARM720T ARM740TARM7TDMI

ARM946E-S ARM966E-S ARM968E-S ARM966HSARM9EARM1020E ARM1022EARM10E

XScale 80200 IOP321 PXA210 PXA250 PXA255 PXA26x PXA27x Monahans PXA900 IXP42x

3 stage pipeline, Thumb

6 stage pipeline7 stage pipeline

ARMv4SA-110 SA-1110StrongARMARM810ARM8

9 0 0ARM7TDMIARM9TDMI ARM920T ARM922T ARM940TARM9TDMI

3 stage pipeline, Thumb

5 stage pipeline, static branch prediction

ARMv2ARM1 ARM2 ARM2a

ARMv3ARM60 ARM600 ARM610ARM700 ARM710 ARM7100 ARM7500 ARM7500FE

ARM2/3

ARM6ARM7

CORE

ProcessorFAMILY

MUL instruction, MMU, CPU cache

32bit addr

단국대학교 백승재

ARMv1ARM1ARM1

/ Processor, ,

Page 7: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Case Study: Cortex-A9 MPCore 7

단국대학교 백승재

Page 8: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Case Study: OMAP 4 8

1080 pixel full HD 동영상 녹화.재생, DSLR급의 2천만 화소 사진 촬영, 약 1주일간의오디오 재생, 기존 스마트폰 대비 10배 이상 빠른 웹페이지 로딩, 7배 이상의 컴퓨팅 성

단국대학교 백승재

능, ....

Page 9: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Architecture Ver

ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}

x : 제품군

y : MMU/MPUhz : cache

T : Thumb 16bit decoderD : JTAG DebuggM : 고속 덧셈기

I : EmbeddedICE macrocellE : DSP 확장 명령어E : DSP 확장 명령어

J : JazelleF : VFP DeviceS : Synthesizible version

단국대학교 백승재

Page 10: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM pipeline

3 stage3-stageFetch : Instruction fetchDecode : Instruction decoding, operand readExecute : ALU 연산결과 생성 레지스터에 기록Execute : ALU 연산결과 생성, 레지스터에 기록

5-stageFetch : Instruction fecthDecode : Instruction decoding operand readDecode : Instruction decoding, operand readExecute : ALU 연산결과 생성, load/store 명령인 경우 메모리 주소계산

Buffer/data : 필요 시 data 메모리 접근 / 그렇지 않으면 모든 명령어에 대해서 동일한 파이프라인 흐름을 만들기 위해 한 클럭 동안buffer 됨Write-back : 결과를 레지스터 파일에 저장

6-stage

7 or 8-stage

6 stageFetch, Issue, Decode, Execute, Memory, Write

단국대학교 백승재

Why?

Page 11: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Architecture의 몇가지 특징

Pipelined architecture

특정 명령어(load/store-multiple instructions)에 대한 여러 cycle에 걸친 실행 허용

2개의 source reg (Rn, Rm)와 1개의 결과 reg(Rd)

Inline barrel shifterInline barrel shifterBarrel shifter를 통한 operand의 선처리 작업 가능

ARM 32-bit instruction set과 Thumb 16-bit instruction setThumb instruction set을 사용하여 코드 크기를 30% 정도 줄임

Conditional ExecutionB h i t ti 의 수를 줄여 코드 크기와 성능을 향상 시킴Branch instruction의 수를 줄여 코드 크기와 성능을 향상 시킴

Data forwadingPipeline 단계에서 각 operand의 forwading가능p p g

PC값의 모호성증가된 PC값은 별도 reg에 저장

단국대학교 백승재

Page 12: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Register

r 0r 1r 2

r 0r 1r 2

r 0r 1r 2

r 0r 1r 2

r 0r 1r 2

r 0r 1r 2

U b ked r 3r 4r 5r 6

r 3r 4r 5r 6

r 3r 4r 5r 6

r 3r 4r 5r 6

r 3r 4r 5r 6

r 3r 4r 5r 6

Unbanked Register

r 8r 9r 1 0

r 7r 8r 9r 1 0

r 7r 8r 9r 1 0

r 7r 8r 9r 1 0

r 7r 8r 9r 1 0

r 7r 8r 9r 1 0

r 7

r 11r12r 13(SP)r 14(LR)

r 11r12r 13(SP)r 14(LR)

r 11r12r 13(SP)r 14(LR)

r 11r12r 13(SP)r 14(LR)

r 11r12r 13(SP)r 14(LR)

r 11r12r 13(SP)r 14(LR)

Banked Register

( )r 15(PC)

CPSR

( )r 15(PC)

( )r 15(PC)

( )r 15(PC)

( )r 15(PC)

( )r 15(PC)

SPSR SPSR SPSR SPSR SPSR

User

User Mode System Mode

FIQ IRQ Supervisor Undefined Abort

단국대학교 백승재

User Mode System Mode

Page 13: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Processor Mode

Privileged modecpsr을 완전히 읽고 쓸 수 있는 6개의 모드

abort(메모리 액세스가 실패한 경우) modeFIQ IRQ dFIQ, IRQ modesupervisor(리셋 걸렸을 때 진입, OS 커널이 동작) modesystem(user mode의 특수한 경우로, cpsr을 완전히 읽고 쓸 수 있음) modeundefined(비 정의된 명령어 등을 만났을 때) mode

일반 모드User mode(일반 app용)cpsr의 제어 필드는 읽기만 가능, 상태 플래그는 읽고 쓰기가 가능

특정 mode 진입 방법에서 의 값을Privileged mode에서 CPSR의 mode 값을 set

Exception의 발생

단국대학교 백승재

Page 14: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Special registers

각 레지스터의 용도

R13 : SP(Stack Pointer) 스택을 사용하지 않을 경우 일반 레지스터로 사용 가능

R14 : LR(Link Register)Branch시 복귀 주소 저장

사용하지 않을 경우 일반레지스터로 사용 가능

스택 비사용으로 인한 성능향상 가능

R15 : PC(Program Counter)R15 : PC(Program Counter)Operand로 사용가능

mov pc, lr ?

중첩된 b h?중첩된 branch?

단국대학교 백승재

Page 15: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

CPSR registerCurrent Program Status RegisterCurrent Program Status Register

N Z C V UNUSED I F T Mode

7 6 5 4 3 2 1 031 30 29 28

Q

27

CPSR[4:0]CPSR[4:0] Mode 의미 Register

10000 User User mode user

10001 FIQ fast interrupt 처리 _fiq

10010 IRQ 정상 interrupt 처리 _irq

10011 SVC Software interrupt (SWI) 처리 _svc

10111 Abort Memory fault 처리 abt10111 Abort Memory fault 처리 _abt

11011 Undef 정의되지 않은 명령어 trap 처리 _und

11111 System Privileged OS task 실행 user

CPSR[31:27] 비교명령어나 S가 붙은 명령어에 의해 변경N: negative

마지막 ALU 연산의 결과가 음의 값

32bit 결과값의 MSB가 1 Z: zero

마지막 ALU 연산의 결과가 0C: carry

마지막 ALU 연산이나 shift 연산의 결과가 carry-out를 발생시킴

V: oVerflow

단국대학교 백승재

마지막 ALU 연산이 sign bit에 overflow를 발생시킴

Q: Enhanced DSP instruction에서 overflow나 saturation

Page 16: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM의 Exception

Exception, INT 발생시 PC값은 미리 정해진 주소를 가리킴

Exception/INT 약자 주소

Reset RESET 0x0000 0000Reset RESET 0x0000 0000

Undefined Instruction UNDEF 0x0000 0004

Software Instruction SWI 0x0000 0008

Prefetch Abort PABT 0x0000 000c

Data Abort DABT 0x0000 0010

Reserved 0x0000 0014

Interrupt Request IRQ 0x0000 0018

Fast Interrupt Request FIQ 0x0000 001c

그렇다면 0x00000000 번지에는?branch 명령어 레이블

단국대학교 백승재

Booting 과정 및 자세한 Interrupt 처리는 다음에 자세히...

Page 17: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Barrel Shifter

Operand의 선처리 작업

Rn Rm Immediate #imm

Register Rm

Barrel Shifter

Logical shift left by immediate Rm, LSL #imm

Logical shift left by register Rm, LSL Rs

Logical shift right by immediate Rm, LSR #imm

Logical shift right by register Rm, LSR Rs

Arithmetic shift right by immediate Rm, ASR #imm

A i h i hif i h b i R ASR R

ALUArithmetic shift right by register Rm, ASR Rs

Rotate right by immediate Rm, ROR #imm

Rotate right by register Rm, ROR Rs

RdRotate right with extend Rm, RRX

단국대학교 백승재

Page 18: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Arithmetic Shift와 Logical Shift

Logical right shift는 shift 되어 비어 있는 왼쪽 k개의 bit를 0으로 채움

Arithmetic right shift는 shift 되어 비어 있는 왼쪽 k개의 bit를 원래의MSB(Most Significant Bit)를 가지고 채움S ( os S g ca )를 가지 채움

10000000001110000100000100000100X >> 8

00000000100000000011100001000001

11111111100000000011100001000001

Logical shift

Arithmetic shiftArithmetic shift

단국대학교 백승재

Page 19: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Barrel Shifter 사용 예

단국대학교 백승재

Page 20: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(1/4)

단국대학교 백승재

Page 21: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(2/4)

단국대학교 백승재

Page 22: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(3/4)

단국대학교 백승재

Page 23: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(4/4)

단국대학교 백승재

Page 24: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Basic Instructions

binary op 설 명

0000 AND Rd = op1 AND op2

0001 EOR Rd = op1 XOR op20001 EOR Rd op1 XOR op2

0010 SUB Rd = op1 – op2

0011 RSB Rd = op2 – op1

0100 ADD Rd 1 + 20100 ADD Rd = op1 + op2

0101 ADC Rd = op1 + op2 + C

0110 SBC Rd = op1 – op2 + C – 1

0111 RSC Rd = op2 – op1 + C – 1

1000 TST op1 AND op2 CPSR

1001 TEQ op1 XOR op2 CPSR

1010 CMP op1 – op2 CPSR

1011 CMN op1 + op2 CPSR

1100 ORR Rd = op1 OR op2

1101 MOV Rd = op2

1110 BIC Rd = op1 AND (NOT op2)

1111 MVN Rd = NOT op2

단국대학교 백승재

p

Page 25: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(1/4)

단국대학교 백승재

Page 26: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(2/4)

단국대학교 백승재

Page 27: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(3/4)

단국대학교 백승재

Page 28: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(4/4)

단국대학교 백승재

Page 29: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(1/7)

단국대학교 백승재

Page 30: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(2/7)

단국대학교 백승재

Page 31: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(3/7)

단국대학교 백승재

Page 32: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(4/7)

단국대학교 백승재

Page 33: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(5/7)

단국대학교 백승재

Page 34: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(6/7)

단국대학교 백승재

Page 35: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(7/7)

단국대학교 백승재

Page 36: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

PSR 관련, MUL, 데이터 이동 instruction

MRS{cond} Rd, <psr> Transfer PSR contents to a reg

MSR{cond} <psr>, Rm Transfer reg contents to PSR

MUL{cond}{S} Rd, Rm, RsRd = Rm * Rs

MLA{cond}{S} Rd, Rm, Rs, RnRd R * R + RRd = Rm * Rs + Rn

LDR{cond}{B} Rd, address{!}Rd = contents of addr

LDR{cond}{B} Rd, =expressionRd iRd = expression

STR{cond}{B} Rd, address{i}contents of addr = Rd

단국대학교 백승재

contents of addr Rd

Page 37: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Multiple reg Data Transfer

1 Post-Increment Addr

<LDM|STM>{cond}mode Rn{!}, {reg_list}{^}

1. Post-Increment Addr2. Pre-Increment Addr3 Post Decrement Addr3. Post-Decrement Addr4. Pre-Decrement Addr

단국대학교 백승재

Page 38: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(1/5)

단국대학교 백승재

Page 39: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(2/5)

단국대학교 백승재

Page 40: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(3/5)

단국대학교 백승재

Page 41: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(4/5)

단국대학교 백승재

Page 42: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(5/5)

단국대학교 백승재

Page 43: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Swap instruction & SWI

SWP{cond}{B} Rd, Rm, [Rn]

Temp = Rn; Rn = Rm; Rd = tempB: bit 0 ~ 7까지만 영향 미침

Int disable없이 semaphore연산 가능

SWI{cond} <expression>

Software interrupt instructionExpression의 내용이 SWI명령의 low24bit에 인코딩됨Expression의 내용이 SWI명령의 low24bit에 인코딩됨

단국대학교 백승재

Page 44: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(1/2)

단국대학교 백승재

Page 45: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

수행 예제(2/2)

단국대학교 백승재

Page 46: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Branch Instruction

24비트의 offset을 2비트 left로 shift하여, +/-32MB 접근

만약 32MB가 넘을 때는 Register를 이용

단국대학교 백승재

Page 47: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Procedure Call Standard(APCS)

Reg i s ter APCS name APCS ro l e0 a1 Argument 1 / integer result / scratch register1 a2 Argument 2 / scratch register2 a3 Argument 3 / scratch register2 a3 Argument 3 / scratch register3 a4 Argument 4 / scratch register4 v1 Register variable 15 v2 Register variable 26 v3 Register variable 37 v4 Register variable 48 v5 Register variable 59 sb/v6 Static base / register variable 69 sb/v6 Static base / register variable 610 sl/v7 Stack limit / register variable 711 fp Frame pointer12 ip Scratch reg. / new sb in inter-link-unit calls

d f k f13 sp Lower end of current stack frame14 lr Link address / scratch register15 pc Program counter

단국대학교 백승재

Page 48: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Stack

Why? When?Stack addressing mode

단국대학교 백승재

Page 49: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

49Stack Mode

HighSP

HighSP

base baseLow

Full AscendingLow

base

Empty Ascending

High base High basebase g base

Low

SP

LowSP

단국대학교 백승재

Full Descendingo

Empty Descending

Page 50: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

Addressing Mode and Stack 50

Addressing ModePost-increment Addressing (IA)Pre-increment Addressing (IB)g ( )Post-decrement Addressing (DA)Pre-decrement Addressing (DB)

StackStackFull Assending (FA)Empty Assending (EA)Full Decending (FD)Full Decending (FD)Empty Decending (ED)

단국대학교 백승재

Page 51: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

조건부 실행

니모닉 의미 상태플래그

EQ equal Z

NE not equal zq

CS HS carry set / unsigned higher 또는 same C

CC LO carry clear / unsigned lower c

MI minus / negative N

PL plus / positive 또는 zero n

VS overflow VVS overflow V

VC no overflow v

HI unsigned higher zC

LS unsigned lower 또는 same Z or c

GE signed greater than 또는 equal NV or nv

LT signed less than Nv or nVLT signed less than Nv or nV

GT signed greater than NzV or nzv

LE signed less than 또는 equal Z or Nv or nV

단국대학교 백승재

AL always(무조건 실행) ignored

Page 52: ARM CPU Architecture - Embedded System Lab.embedded.dankook.ac.kr/.../2009_Project1/LN_1_ARM_CPU_0.pdf · 2009-05-10 · 강의목표 2 ARM 종류와특징및최신동향파악 ARM

ARM Assembly Test 52

-O3

ARM compiler

IA compiler

-O3

단국대학교 백승재

IA compiler