Microsoft PowerPoint - LN_1_ARM_CPU_0.ppt [호환 모드]

Similar documents
Microsoft Word - 1. ARM Assembly 실습_xp2.doc

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt

ARM Reverse Engineering

라는 점이다. ARM7TDMI 같은 ARM7에서는 페치(fetch), 디코드 (decode) 그리고 실행(execute)의 3단계로 구성된 파이프라인을 적 V4 PF1 ARMv I-캐시 액세 + 다이내믹

슬라이드 1

hwp

untitled

ARM01

9

임베디드 시스템 구조

Here is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D

ARM 프로세서 입문

q ARM (Advanced RISC Machines) v 1990년설립 v UK-based joint venture Ø Apple Computer, Acorn Computer Group, and VLSI Technology q 32-bit RISC Intellectu

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

Microsoft PowerPoint - 강의2.ppt

Lectures for 2nd Edition

SRC PLUS 제어기 MANUAL

T100MD+

ARM 아키텍쳐 - ARM 아키텍쳐 - Programming 모델 - ARM 프로세서명령어 - 예외처리와시스템리셋 - ARM9TDMI 프로세서 한국기술교육대학교 전기전자통신공학부 장영조 한국기술교육대학교임베디드 SOC 설계및실습

hlogin2

Embedded System

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

Microsoft PowerPoint - e2.ppt [호환 모드]

=

untitled

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

No Slide Title

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hw8.ppt [호환 모드]

Microsoft PowerPoint - 15-SMT_cho.ppt

Deok9_Exploit Technique

강의10

Microsoft PowerPoint - o8.pptx

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

Computer Architecture

FARA PLC N70plus 시스템 사용자 메뉴얼

Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - FunctionCall

Microsoft PowerPoint - ARM System-on-chip architecture_Chap 4_23p.ppt

Microsoft PowerPoint EmbedSW-Target

ºÎ·ÏB

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Microsoft PowerPoint - a6.ppt [호환 모드]

untitled

1

Microsoft Word - ExecutionStack

160215

??


< B5BFBEC6BDC3BEC6BBE E687770>

1217 WebTrafMon II

Microsoft PowerPoint - PL_03-04.pptx

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

6주차.key

Chapter ...

歯설명서_020925_.PDF

PowerPoint 프레젠테이션

Microsoft PowerPoint - DSD06c_ISA.pptx

Microsoft PowerPoint - a8a.ppt [호환 모드]

CD-RW_Advanced.PDF

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

PowerPoint 프레젠테이션

계수를 결정하는 과정이며, 순방향 경로는 이러한 보정 계수를 데이터 경로에 적용하는 과정이다. 적응 서브시스템은 기준 신호로 송신된 데이터로부터 샘플을 캡처하고, 이를 PA로부터 출력된 신 호의 관찰 경로에 의한 동시 캡처된 신호와 비교함으로써 지속적으로 PA 특성에

슬라이드 1

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

Microsoft PowerPoint - 30.ppt [호환 모드]

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

[8051] 강의자료.PDF

중 국 6 대 패 션 시 장 조 사 보 고 서 < 2004 년 상 해 10 대 매 장 10대 패 션 제 품 의 브 랜 드 시 장 점 유 뮬 > 제 품 브 랜 드 시 장 점 유 율 제 품 브 랜 드 시 장 점유 율 C O N C H P LA Y B O Y

Microsoft Word - 青野論文_李_.doc

Computer Architecture

Microsoft PowerPoint - polling.pptx

DE1-SoC Board

10X56_NWG_KOR.indd

Microsoft PowerPoint - Master-ChiWeon_Yoon.ppt

Microsoft Word - 21_반도체.doc

PowerPoint 프레젠테이션

10주차.key

Introduction to LMC

IDA 5.x Manual hwp

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

슬라이드 1

Microsoft PowerPoint os2.ppt [호환 모드]

며 오스본을 중심으로 한 작은 정부, 시장 개혁정책을 밀고 나갔다. 이에 대응 하여 노동당은 보수당과 극명히 반대되는 정강 정책을 내세웠다. 영국의 정치 상황은 새누리당과 더불어 민주당, 국민의당이 서로 경제 민주화 와 무차별적 복지공약을 앞세우며 표를 구걸하기 위한

Microsoft PowerPoint session5.ppt [호환 모드]

4) CRC - 16bit MODBUS crc 4. MODBUS Exception Codes Code 01h 02h 03h 04h 05h 06h 10h 11h 12h 13h 14h Name ILLEGAL FUNCTION ILLEGAL DATA ADDRESS ILLEGA

단위: 환경정책 형산강살리기 수중정화활동 지원 10,000,000원*90%<절감> 형산강살리기 환경정화 및 감시활동 5,000,000원*90%<절감> 9,000 4, 민간행사보조 9,000 10,000 1,000 자연보호기념식 및 백일장(사생,서예)대회 10

Microsoft PowerPoint - 09-컴구조-5-프로세서

PowerPoint 프레젠테이션

R50_51_kor_ch1

K&R2 Reference Manual 번역본

Microsoft Word ARM_ver2_0a.docx

Microsoft PowerPoint - M09_CPUarchi.ppt [호환 모드]

Microsoft PowerPoint - a2.ppt [호환 모드]

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Transcription:

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

강의목표 2 ARM 종류와특징및최신동향파악 ARM CPU Architecture 이해 ARM Assembly 숙지

ARM 3 ARM? Advanced RISC Machines! not In 1983 at Acorn Computers Ltd. By Herman Hauser, Steve Furber, Sophie Wilson, Robert Heaton, Jamie Urquhart For low power, low cost, simple, small Today, the ARM family accounts for approximately 75% of all embedded 32-bit RISC CPUs.

ARM 4 They do not sells ARM processors They sells only IP What s the IP? As Hard macrocell or Synthesizable core... To processors manufactures They also sells various development enviroments

An auxiliary textbooks 5 Steve Furber Addison-Wesley Andrew Sloss Morgan Kaufmann

ARM Core & Family & Processor 6 Cortex ARMv6M Cortex-M1 ARMv7-A ARMv7-R ARMv7-M Cortex-A8 Cortex-A9 Cortex-A9 MPCore Cortex-R4(F) Cortex-M3 ARM11 ARMv6 ARM1136J(F)-S 8 stage pipeline, SIMD ARMv6T2 ARM1156T2(F)-S 9 stage pipeline, Thumb-2 ARMv6KZ ARM1176JZ(F)-S ARMv6K ARM11 MPCore 1~4 core SMP ARMv5TEJ ARM7TDMI ARM7EJ-S 5 stage pipeline, Jazelle, Enhanced DSP instructions ARM9E ARM926EJ-S ARM10E ARM1026EJ-S ARMv5TE ARM9E ARM946E-S ARM966E-S ARM968E-S ARM966HS ARM10E ARM1020E ARM1022E XScale 80200 IOP321 PXA210 PXA250 PXA255 PXA26x PXA27x Monahans PXA900 IXP42x ARMv4T ARM7TDMI ARM7TDMI ARM719T ARM720T ARM740T 3 stage pipeline, Thumb ARM9TDMI ARM9TDMI ARM920T ARM922T ARM940T ARMv4 StrongARM SA-110 SA-1110 ARM8 ARM810 5 stage pipeline, static branch prediction ARMv3 32bit addr ARM6 ARM60 ARM600 ARM610 ARM7 ARM700 ARM710 ARM7100 ARM7500 ARM7500FE ARMv2 ARM2/3 ARM1 ARM2 ARM2a MUL instruction, MMU, CPU cache ARMv1 ARM1 ARM1 13 stage pipeline, superscalar, application profile, NEON,... 6 stage pipeline 7 stage pipeline CORE FAMILY Processor

Case Study: Cortex-A9 MPCore 7

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

ARM Architecture Ver ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S} x : 제품군 y : MMU/MPU z : cache T : Thumb 16bit decoder D : JTAG Debug M : 고속덧셈기 I : EmbeddedICE macrocell E:DSP 확장명령어 J : Jazelle F : VFP Device S : Synthesizible version

3-stage 5-stage 6-stage Fetch : Instruction fetch ARM pipeline Decode : Instruction decoding, operand read Execute : ALU 연산결과생성, 레지스터에기록 Fetch : Instruction fecth Decode : Instruction decoding, operand read Execute : ALU 연산결과생성, load/store 명령인경우메모리주소계산 Buffer/data : 필요시 data 메모리접근 / 그렇지않으면모든명령어에대해서동일한파이프라인흐름을만들기위해한클럭동안 buffer 됨 Write-back : 결과를레지스터파일에저장 Fetch, Issue, Decode, Execute, Memory, Write 7 or 8-stage Why?

ARM Architecture 의몇가지특징 Pipelined architecture 특정명령어 (load/store-multiple instructions) 에대한여러cycle에걸친실행허용 2개의 source reg (Rn, Rm) 와 1개의결과 reg(rd) Inline barrel shifter Barrel shifter 를통한 operand 의선처리작업가능 ARM 32-bit instruction set 과 Thumb 16-bit instruction set Thumb instruction set 을사용하여코드크기를 30% 정도줄임 Conditional Execution Branch instruction ti 의수를줄여코드크기와성능을향상시킴 Data forwading Pipeline 단계에서각 operand 의 forwading 가능 PC 값의모호성 증가된 PC 값은별도 reg 에저장

ARM Register r 0 r 1 r 2 Unbanked r 3 Register r 4 Banked Register r 5 r 6 r 7 r 8 r 9 r 1 0 r 11 r12 r 13(SP) r 14(LR) r 15(PC) r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 r 1 0 r 11 r12 r 13(SP) r 14(LR) r 15(PC) r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 r 1 0 r 11 r12 r 13(SP) r 14(LR) r 15(PC) r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 r 1 0 r 11 r12 r 13(SP) r 14(LR) r 15(PC) r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 r 1 0 r 11 r12 r 13(SP) r 14(LR) r 15(PC) r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 r 1 0 r 11 r12 r 13(SP) r 14(LR) r 15(PC) CPSR SPSR SPSR SPSR SPSR SPSR User FIQ IRQ Supervisor Undefined Abort User Mode System Mode

Processor Mode Privileged mode cpsr을완전히읽고쓸수있는 6개의모드 일반모드 abort( 메모리액세스가실패한경우 ) mode FIQ, IRQ mode supervisor( 리셋걸렸을때진입, OS 커널이동작 ) mode system(user mode의특수한경우로, cpsr을완전히읽고쓸수있음 ) mode undefined( 비정의된명령어등을만났을때 ) mode User mode( 일반 app용 ) cpsr의제어필드는읽기만가능, 상태플래그는읽고쓰기가가능 특정 mode 진입방법 Privileged mode 에서 CPSR 의 mode 값을 set Exception의발생

Special registers 각레지스터의용도 R13 : SP(Stack Pointer) 스택을사용하지않을경우일반레지스터로사용가능 R14 : LR(Link Register) Branch시복귀주소저장 사용하지않을경우일반레지스터로사용가능 스택비사용으로인한성능향상가능 R15 : PC(Program Counter) Operand로사용가능 mov pc, lr? 중첩된 branch?

Current Program Status Register 31 30 29 28 27 CPSR register 7 6 5 4 3 2 1 0 N Z C V Q UNUSED I F T Mode 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 처리 _abt 11011 Undef 정의되지않은명령어 trap 처리 _und 11111 System Privileged OS task 실행 user CPSR[31:27] 비교명령어나 S 가붙은명령어에의해변경 N: negative 마지막 ALU 연산의결과가음의값 32bit 결과값의 MSB가 1 Z: zero 마지막 ALU 연산의결과가 0 C: carry 마지막 ALU 연산이나 shift 연산의결과가 carry-out를발생시킴 V: overflow 마지막 ALU 연산이 sign bit에 overflow를발생시킴 Q: Enhanced DSP instruction에서 overflow나 saturation

ARM 의 Exception Exception, INT 발생시 PC 값은미리정해진주소를가리킴 Exception/INT 약자주소 Reset 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 처리는다음에자세히...

Operand 의선처리작업 Barrel Shifter Rn Rm Immediate #imm Barrel Shifter Register Logical shift left by immediate Logical shift left by register Logical shift right by immediate Logical shift right by register Arithmetic shift right by immediate Rm Rm, LSL #imm Rm, LSL Rs Rm, LSR #imm Rm, LSR Rs Rm, ASR #imm ALU Aih Arithmetic i shift right by register Rm, ASR Rs Rotate right by immediate Rm, ROR #imm Rd Rotate right by register Rotate right with extend Rm, ROR Rs Rm, RRX

Arithmetic Shift 와 Logical Shift Logical right shift 는 shift 되어비어있는왼쪽 k 개의 bit 를 0 으로채움 Arithmetic right shift는 shift 되어비어있는왼쪽 k개의 bit를원래의 MSB(Most Significant Bit) 를가지고채움 X >> 8 Logical shift Arithmetic shift 10000000001110000100000100000100 00000000100000000011100001000001 11111111100000000011100001000001

Barrel Shifter 사용예

수행예제 (1/4)

수행예제 (2/4)

수행예제 (3/4)

수행예제 (4/4)

ARM Basic Instructions binary op 설명 0000 AND Rd = op1 AND op2 0001 EOR Rd = op1 XOR op2 0010 SUB Rd = op1 op2 0011 RSB Rd = op2 op1 0100 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

수행예제 (1/4)

수행예제 (2/4)

수행예제 (3/4)

수행예제 (4/4)

수행예제 (1/7)

수행예제 (2/7)

수행예제 (3/7)

수행예제 (4/7)

수행예제 (5/7)

수행예제 (6/7)

수행예제 (7/7)

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, Rs Rd = Rm * Rs MLA{cond}{S} Rd, Rm, Rs, Rn Rd = Rm * Rs + Rn LDR{cond}{B} Rd, address{!} Rd = contents of addr LDR{cond}{B} Rd, =expression Rd = expression STR{cond}{B} Rd, address{i} contents of addr = Rd

Multiple reg Data Transfer <LDM STM>{cond}mode Rn{!}, {reg_list}{^} 1. Post-Increment Addr 2. Pre-Increment Addr 3. Post-Decrement Addr 4. Pre-Decrement Addr

수행예제 (1/5)

수행예제 (2/5)

수행예제 (3/5)

수행예제 (4/5)

수행예제 (5/5)

Swap instruction & SWI SWP{cond}{B} Rd, Rm, [Rn] Temp = Rn; Rn = Rm; Rd = temp B: bit 0 ~ 7 까지만영향미침 Int disable 없이 semaphore 연산가능 SWI{cond} <expression> Software interrupt instruction Expression 의내용이 SWI 명령의 low24bit 에인코딩됨

수행예제 (1/2)

수행예제 (2/2)

Branch Instruction 24비트의 offset을 2비트 left로 shift하여, +/-32MB 접근만약 32MB가넘을때는Register를이용

ARM Procedure Call Standard(APCS) Reg ister APCS name APCS role 0 a1 Argument 1 / integer result / scratch register 1 a2 Argument 2 / scratch register 2 a3 Argument 3 / scratch register 3 a4 Argument 4 / scratch register 4 v1 Register variable 1 5 v2 Register variable 2 6 v3 Register variable 3 7 v4 Register variable 4 8 v5 Register variable 5 9 sb/v6 Static base / register variable 6 10 sl/v7 Stack limit / register variable 7 11 fp Frame pointer 12 ip Scratch reg. / new sb in inter-link-unit calls 13 sp Lower end of current stack frame 14 lr Link address / scratch register 15 pc Program counter

Stack Why? When? Stack addressing mode

Stack Mode 49 High SP High SP Low base Full Ascending base Low Empty Ascending High base High base Low Full Descending SP SP Low Empty Descending

Addressing Mode and Stack 50 Addressing Mode Stack Post-increment Addressing (IA) Pre-increment Addressing g( (IB) Post-decrement Addressing (DA) Pre-decrement Addressing (DB) Full Assending (FA) Empty Assending (EA) Full Decending (FD) Empty Decending (ED)

조건부실행 니모닉의미상태플래그 EQ equal Z NE not equal z 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 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 nv GT signed greater than NzV or nzv LE signed less than 또는 equal Z or Nv or nv AL always( 무조건실행 ) ignored

ARM Assembly Test 52 -O3 ARM compiler -O3 IA compiler