임베디드 시스템 구조
|
|
- 현경 주
- 6 years ago
- Views:
Transcription
1 ARM 프로세서요약
2 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 1
3 프로세서의구조 레지스터 (Register) 산술논리연산장치 (ALU : Arithmetic Logic Unit) 제어장치 (CU : Control Unit) 버스 (BUS) 레지스터 내부프로세서버스 제어신호 제어장치 보수기쉬프터 산술및논리연산기상태 FLAG ALU 2
4 레지스터 (Register) 프로세서내부에서데이터를일시적으로보관하는기억장치 Flip-flop 와 Latch 로구성되어있다 범용레지스터 프로그램또는데이터처리에필요한작업을수행하기위해서사용 제어용레지스터 프로그램이나프로세서를제어 프로그램카운터 (PC : Program Counter) 등 상태레지스터 프로세서의상태를나타낸다. 3
5 버스 (BUS) 버스 (BUS) 란? 컴퓨팅시스템의각모듈에서발생한신호를공유해서사용할수있도록만든신호의집합 구동주체 (CPU 등 ) 에의해서해당소자에데이터를읽거나쓸수있도록구성된다. 어드레스버스 (address bus), 제어버스 (control bus), 그리고데이터버스 (data bus) 로 구성된다. 프로세서 레지스터 주소 제어신호 명령또는데이터 메모리 명령 / 데이터 4
6 폰노이만아키텍쳐 폰노이만 (Von-Neumann) 아키텍쳐 명령어와데이터를위한메모리인터페이스가하나이다. 명령어를읽을때데이터를읽거나쓸수없다. IBM 계열 PC( 개인용 PC), ARM7 등 프로세서 명령어 레지스터 어드레스버스데이터버스 데이터 메모리 5
7 하버드아키텍쳐 하버드 (Havard) 아키텍쳐 명령어를위한메모리인터페이스와데이터를위한메모리인터페이스가분리되어있다. 명령어를읽을때데이터를읽거나쓸수있어성능이우수하다. 버스시스템이복잡하여설계가복잡하다 ARM9, ARM10, XScale 등 프로세서 레지스터 명령어 데이터 어드레스버스데이터버스 메모리 6
8 Cache 메모리시스템 CPU 400MHz Main Memory 10MHz CPU Cache Main Memory 10MHz Bus 66MHz Bus 66MHz 고속의 CPU 가버스및메모리속도에의존적이며늦다 CPU 주변에고속의메모리를두고자주사용되는명령과데이터를저장하여시스템성능을개선 7
9 Cache 의읽기동작 Cache의성능 CPU가읽고자하는명령이나데이터가 Cache 내에존재 (Cache Hit) 하여야할회수가많아야 Cache의성능이우수하다. CPU가데이터나명령을읽고자하는데 Cache 내에원하는명령이나데이터가없으면 (Cache Miss), Cache 제어기는시스템메모리장치에서 line 크기만큼명령이나데이터를읽어 Cache 메모리에저장 (Line Fill) 한다. 8
10 Cache 의쓰기동작 Write Through CPU가특정주소에명령이나데이터를 write하는경우, 해당하는명령이나데이터가 Cache 메모리에있을때, Cache 메모리와외부메모리에모두쓰기동작을한다. Write Back CPU가특정주소에명령이나데이터를 write하는경우, 해당하는명령이나데이터가 Cache 메모리에있을때, Cache 메모리에만쓰기동작을하고, 외부의메모리에는나중에기록된다. 9
11 Microprocessor Cache Cache Improve Overall System Performance Reducing read and write cycle time by using fast memory Improving memory bus utilization 10
12 Cache Configurations Unified vs. Separated 11
13 Cache Configurations Look through vs. Look aside 12
14 MMU (Memory Management Units) 어드레스변환 (translation) 기능 CPU 에서사용되는 logical 한 Virtual 어드레스를 physical 어드레스로변환 메모리보호 (protection) 기능 CPU Virtual 어드레스 Memory Management Unit Physical 어드레스 Main Memory 13
15 Memory Mapped I/O 와 I/O-mapped I/O 구분 Memory mapped I/O I/O-mapped I/O 대표적인 CPU I/O 장치의영역 명령어 ARM, PowerPC, M68K 메모리의일부를 I/O 장치로사용 메모리와 I/O 장치모두메모리동작명령으로억세스하며, 각영역의구분은어드레스로한다. x86 계열 메모리영역과는별도의 I/O 번지영역이존재 메모리억세스명령과 I/O 억세스명령 (in/out) 이구분 하드웨어 어드레스를해석하는디코더회로에따라메모리혹은 I/O 장치가선택 메모리번지와 I/O 번지를구분하는신호가존재. 기타 - I/O 영역은 Non-cacheable 로설정해야한다 - I/O 영역변수는 volatile type 으로선언해야한다. 14
16 인터럽트인터페이스 인터럽트제어기 입출력장치에서발생되는인터럽트의요청을제어한다. 하드웨어에따라인터럽트응답을위한신호도제공된다. CPU 인터럽트요청 irq 인터럽트응답 irqack 인터럽트제어기 Mask, Pending 레지스터 인터럽트요청 irq 인터럽트응답 irqack I/O 장치 시리얼, 네트워크등 15
17 인터럽트의발생 인터럽트요청 (Interrupt Request) 외부장치에서입출력동작에대한처리를프로세서에요청 인터럽트의발생은하드웨어적으로이루어진다. 따라서인터럽트가발생하면프로세서가스스로프로그램의개입없이일련의동작을수행해야한다. 인터럽트 Vector 인터럽트서비스루틴을처리하기위한명령또는위치가저장된메모리공간 인터럽트의요청에따라프로세서는정해진절차에의하여발생된인터럽트의처리여부를결정하고인터럽트를서비스하는절차 (ISR : Interrupt Service Routine) 를수행한다. 인터럽트발생의예 시리얼로데이터입력완료 시리얼데이터전송준비완료, 또는전송에러발생 이더넷데이터수신완료, 이더넷전송에러등 16
18 인터럽트발생에의한프로세서흐름제어 MAIN 프로그램루틴 INT 발생 ISR (Interrupt Service Routine) INT 발생 ISR (Interrupt Service Routine) 17
19 인터럽트처리절차 입출력장치에서인터럽트발생 프로세서에서인터럽트인식 프로세서의현재상태를저장 하드웨어적으로처리된다. 인터럽트처리를위한프로세서상태변경 인터럽트처리후되돌아갈주소 (PC) 저장 인터럽트 Vector 로 PC 위치변경 인터럽트처리 ( 인터럽트 ISR) 18
20 인터럽트서비스루틴 (ISR) 인터럽트처리 ( 인터럽트 ISR) 스택에프로세서의레지스터정보저장 모두소프트웨어적으로처리된다. 입출력동작을처리 프로세서의상태및되돌아갈주소복원 기존에수행중이던프로그램수행 19
21 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 20
22 임베디드시스템설계절차 시스템용도분석 하드웨어사양결정 CPU, 메모리및주변장치선정 소프트웨어사양결정 OS 사용여부및 OS 선정 개발환경선정 회로도및 PCB 설계 하드웨어조립및시험 소프트웨어설계 디바이스드라이버설계 어플리케이션설계 시스템통합시험 21
23 디바이스드라이버포팅 디바이스 (Device ) 네트워크어댑터, LCD 디스플레이, PCMCIA, Audio, 터미널, 키보드, 하드디스크, 플로피디스크, 프린터등과같은주변장치들을말함 디바이스의구동에필요한프로그램, 즉디바이스드라이버가필수적으로요구됨 Device Driver 실제장치부분을추상화시켜사용자프로그램이정형화된인터페이스를통해디바이스를접근할수있도록해주는프로그램 디바이스관리에필요한정형화된인터페이스구현에요구되는함수와자료구조의집합체 응용프로그램이 H/W를제어할수있도록인터페이스제공 하드웨어와독립적인프로그램작성을가능하게함 22
24 디바이스드라이버구조 Application area Application System Call Interface VFS Kernel area Buffer Cache Network Subsystem Char Device Driver Block D/D Network D/D Device Interface Hardware Hardware 23
25 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 24
26 Hard Macrocell 과 Synthesizable Core Hard Macrocell Layout level로제공 사용자는 core를변경불가 ARM710T, ARM920T 등이대표적인예이다. Synthesizable Core RTL(Register Transfer Level) 로제공 사용자는 license 조건에의해 core의내부변경가능 내부메모리크기등 기능은변경불가 ARM7TDMI-S, ARM926EJ-S, ARM1136J-S 등 25
27 ARM 아키텍처명명법 ARM {x}{y}{z} {T}{D}{M}{I}{E}{J}{F}{-S} x : 제품군 y: MMU/MPU Z: 캐시 T: Thumb 16bit Decoder D: JTAG Debug M: Hardware Multiplier( 고속곱셈기 ) I: Embedded ICE macrocell E: DSP Enhanced 확장명령어 J: Jazelle ( Java extension 8x performance for Java) F: VFP 장치 -S: synthesizible 버전 26
28 ARM Architecture 의시장변화 ARM1136EJ 27
29 ARM 7 Family ARM7TDMI Core 32/16bit RISC Architecture 3 stage pipelining(fetch/decode/execution) Hard macrocell 32-bit ARM/16-bit Thumb Instructions Unified bus architecture 32-bit ALU & High-performance multiplier low-power, small die size Coprocessor interface Embedded ICE-RT suport, JTAG Interface Embedded Trace Macro cell ARM720T ARM7TDMI + MMU + Cache(8kb Unified) + WB + AMBA 28
30 ARM Core 비교 29
31 Aligned 과 Un-aligned 억세스 프로세서는메모리억세스 Byte, halfword(2 바이트 ) 또는 word(4 바이트 ) 단위로만가능 Aligned Access Un-aligned Access x0C x0C x x x x x x00 Word 단위 Access : 0x00, 0x04, 0x08, Half-Word Access : 0x00, 0x02, 0x04, 0x06, 0x08, Word 단위 Access : 0x01, 0x06, 0x07, Half-Word Access : 0x01, 0x03, 0x05 Abort Abort 30
32 Little-Endian 과 Big-Endian Big-Endian Little-Endian 메모리의하위어드레스 (Byte 어드레스 메모리의하위어드레스 (Byte 어드레스 0 ) 에 MSB(Most Significant Byte) 가 0 ) 에 LSB(Least Significant Byte) 가 위치하고있는메모리구조 위치하고있는메모리구조 MSB 는메모리데이터의가장상위 LSB 는메모리데이터의가장하위비트 비트 24 에서 31 까지 0 에서 7 까지 x08 0x x00 데이터비트 상위어드레스 x08 0x x00 Byte 어드레스 Word 어드레스 0,4,8 은 word 어드레스, 0,2,4,6,8,10 은 halfword 어드레스, 0,1,2,3,4, 은 byte 어드레스를니타낸다. word 로메모리를억세스하는데 1,2 또는 3 번지를억세스하면 un-aligned 억세스가된다. 31
33 Operating 모드의변환과레지스터 User SVC r0 r1 r2 r3 r4 r5 r6 r7 r8 Context 정보 5. copy 외부메모리 stack User mode r0-r12, r15, and cpsr r9 r10 r11 r12 (1) 복원 스택의위치를나타낸다. 4. PC = Vector r13 (sp) r14 (lr) r15 (pc) cpsr 3. copy (2) CPSR, PC 를동시에복원 1. copy r13 (sp) r14 (lr) spsr 2. CPSR 변경 -Mode -I/F 비트 -T Bit 32
34 프로세서의 Reset 과 Start-up 코드 프로세서에리셋신호가입력되면실행중이던명령을멈추고 1 SPSR_svc에 CPSR 값을복사 2 CPSR의값을변경 Mode bit M[4:0] 를 Supervisor 모드인 b로변경 I 비트와 F 비트를 1로세트하여인터럽트를 disable T 비트를 0으로클리어하여 ARM state로변경 3 PC 값을 LR_svc 레지스터에복사 4 PC 값을 Reset Vector 어드레스인 0x 으로변경 5 Reset 핸들러로분기하여시스템의초기화수행 33
35 Reset Handler Reset Vector 에서분기된어셈블리어로작성된처리루틴 주요동작 시스템초기화작업수행 시스템의클록 메모리컨트롤러 입출력포트의구성 MMU 등 인터럽트와스택초기화 리셋핸들러의마지막에서는 main() 함수와같은 C 로구성된함수를호출 이부분을 startup 코드라고부른다. 34
36 Startup 코드 Startup 코드를작성하기위해서는 Programmer s model, 특히명령어 시스템하드웨어구조및기능에대한전반적인사항등을모두알아야한다. Startup 코드의필수사항 Exception Vector Table의설정 Reset 핸들러의구성 35
37 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 36
38 ARM7TDM 코어의내부구조 A[31:0] 어드레스레지스터 PC +1 Register bank PC update 제어신호 제어장치 ALU-bus A-bus Multiplier B-bus Barrel Shifter Immediate 상수 명령어해석기 ( Instruction Decoder ) Data in 레지스터 Data out 레지스터 ALU D[31:0] 37
39 Data Processing 명령과내부버스 ADD Rd, Rs, OP2 OP 코드 Operand 2 : B 버스와 Barrel shifter 를통해 ALU 에입력 Operand 1 : A 버스를통해 ALU 에입력, Source 레지스터 Destination 레지스터 : ALU 버스를통해레지스터뱅크에 write 38
40 Data Transfer 명령과내부버스 LDR Rd, [ Rb, Offset ] OP 코드 Offset : B 버스와 Barrel shifter 를통해 ALU 에입력 Base 레지스터 : A 버스를통해 ALU 에입력 Destination 레지스터 : 데이터버스를통해읽혀진데이터가 write 되는레지스터 39
41 ARM7TDMI 코어 ARM7TDM core 제어신호 어드레스버스 (A[31:0]) 데이터버스 (D[31:0]) BREAK EmbeddedICE-RT TAP ARM7TDMI 는 ARM7TDM 코어에 EmbeddedICE 로직이추가된프로세서이다 JTAG 인터페이스신호 40
42 이상적인 pipeline 동작 명령 ADD SUB AND MVN XOR MOV SBC XOR 사이클 F D E F D E F D E F D E F D E F D E F D E F D E F : Fetch D : Decode E : Execute 매사이클마다명령을하나씩실행하는경우 모든명령이메모리의참조없이레지스터내의값을가지고데이터를처리 CPI 는 1 41
43 LDR 명령과 pipeline 동작 명령 ADD SUB AND 사이클 F D E F D E F D E LDR F D E M W XOR MOV F D S S E F S S D E SBC F D F : Fetch D : Decode E : Execute M : Memory W : Write S : Stall LDR 명령이사용되는경우 메모리에서데이터를읽는메모리 (M) stage 와레지스터에 write 하는 Write(W) stage 추가 레지스터에 write 동작이끝날때까지다른명령은 stall 된다. 6 clock 사이클동안에 4 개의명령실행 : CPI 는
44 Branch 명령과 pipeline 동작 명령 ADD 사이클 F D E BL 0x100 F D E L A AND MVN F D F 버려진다 MOV (0x100) F D E SBC F D E F : Fetch D : Decode E : Execute L : Link Return A : Adjust Branch 명령이사용되면 Fetch 한명령을모두버리고지정된분기하여새로운명령을읽는다 Pipeline 이깨진다 (break) 43
45 Cache 를가진 ARM7TDMI 프로세서 ARM7TDMI core CP15 Address Data MMU Data write Write Buffer Bus Interface Cache Data read 44
46 ARM9TDM 코어의내부구조 IA[31:0] ID[31:0] 어드레스레지스터 PC +1 Register bank PC update 명령어해석기 ( Instruction Decoder ) 제어장치 제어신호 Data in 레지스터 ALU-bus A-bus Multiplier B-bus Barrel Shifter C-bus DA[31:0] 어드레스레지스터 Data out 레지스터 DD[31:0] ALU +1 45
47 ARM9TDMI pipeline Instruction Fetch ARM/Thumb decode Reg Select Reg Read Shift ALU Memory Access Register Write FETCH DECODE EXECUTE MEMORY WRITE ARM : Thumb : PC PC PC-4 PC-2 PC-8 PC-4 ARM9 의경우 ARM7 과달리 32 비트 ARM 명령어와 16 비트 Thumb 명령어 decoder 를별도로가지고있다. Memory stage 가추가되어 LDR 명령이사용되더라도매사이클마다하나의 명령이실행된다. 46
48 이상적인 pipeline 동작 명령 사이클 ADD R0, R1, R2 F D E M W SUB R1, R2, R4 F D E M W AND R2, R1, R0 F D E M W LDR R4, [ R5 ] F D E M W XOR R0, R1, R2 F D E M W ADD R1, R2, R4 F D E M W SBC R1, R2, R3 F D E M F : Fetch D : Decode E : Execute M : Memory W : Write I : Interlock LDR 명령이사용되더라도매사이클마다하나의명령어실행 CPI = 1 단 LDR 명령의 Destination 레지스터가다음명령에서사용되면않된다. 47
49 LDR 명령과 Interlock 사이클 명령 사이클 ADD R0, R1, R2 F D E M W SUB R1, R2, R4 F D E M W AND R2, R1, R0 F D E M W LDR R4, [ R5 ] F D E M W XOR R0, R4, R2 F D I E M W ADD R1, R2, R3 F I D E M SBC R1, R2, R3 F D E F : Fetch D : Decode E : Execute M : Memory W : Write I : Interlock LDR 명령과 Interlock 사이클 LDR 명령의 Destination 레지스터가다음명령에서사용되는경우발생 CPI =
50 Cache 를가진 ARM9TDMI 프로세서 ARM9TDMI core CP15 Address Data Address Data MMU Data write Write Buffer Bus Interface Data read Instruction Cache Data Cache 49
51 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 50
52 명령어구조 Encoded in a 32-bit word OP code + two or three registers Byte(8bits) or Word(32bits) memory access Memory access only through LOAD and STORE instructions Conditional Execution of instructions All instructions are conditionally executed 51
53 32-bit v4t Instructions 52
54 Ex) 명령어예제 a = ( b==c)? d : e; CMPS MOVEQ MOVNE r2, r3 r1, r4 r1, r5 53
55 Memory Addressing Mode (1) Memory Access Indexed Addressing Mode Effective Address = base register (Rn)+ a signed offset (Rm) a signed offset = immediate or register (Rm) Examples LDR Rd, [Rn, #offset] ;Rd [[Rn] + offset] LDR Rd, [Rn, Rm] ;Rd [[Rn] + [Rm]] LDR Rd, [Rn] ;Rd [[Rn]] STR Rd, [Rn] ;Rd [Rn] Byte access: LDRB, STRB 54
56 Memory Addressing Mode (2) Variations of indexed addressing modes Pre-indexed mode EA = base register(r1) + a signed offset LDR R0, [R1, R2] ;R0 [R1] + [R2] Pre-indexed with writeback mode(update) EA = base register(r1) + a signed offset R1 = EA LDR R0, [R1, R2]! ; R0 [R1] + [R2] R1 [R1] + [R2] Post-indexed mode EA = R1 R1 = base register(r1) + a signed offset LDR R0, [R1], R2 ; R0 [R1] R1 [R1]+[R2] 55
57 Memory Addressing Mode (3) Shifted offset The offset magnitude in Rm could be shifted by the accompanying shift operation. Pre-indexed mode LDR R0, [R1, R2, LSL #4] Pre-indexed mode writeback mode(update) LDR R0, [R1, R2, LSL #4]! Post-indexed mode LDR R0, [R1], R2, LSL #4 Related mode 56
58 Pre-indexed addressing mode 57
59 Pre-indexed addressing mode with writebacke 58
60 Post-indexed addressing 59
61 Relative address 60
62 조건플래그 (Condition Flags) N Z C V Q J I F T Mode f s x c Condition Code flag Reserved Control bits Flag 논리연산산술연산 Negative (N=1) 사용되지않는다 Signed 연산에서비트 31 이세트되어 Negative 결과발생 Zero (Z=1) 연산결과가모두 0 연산결과가 0 Carry (C=1) Shift 동작결과 carry 발생연산결과가 32 비트를넘으면세트 overflow (O=1) 사용되지않는다연산결과가 31 비트를넘어 sign bit 상실 61
63 Condition Field 62
64 Operand2 와 Barrel Shifter Operand 1 Operand 2 Barrel Shifter 레지스터 Shift 동작과같이사용가능 Shift value 5 bit unsigned integer 하위 5비트에 shift value를가진다른 register ALU Result Immediate 상수 8 bit number 짝수 (even number) 만큼 rotate right 하여표현이가능한 32비트상수 32 비트상수가사용되면어셈블러가 rotate 값으로계산 63
65 32 비트상수사용법 32비트상수를레지스터로옮길수있는방법제공 MOV 또는 MVN 명령으로는 32비트상수를레지스터로 move 불가 Assembler에서 32비트상수를읽을수있는방법제공 Data Transfer 명령을이용한 32비트상수 loading LDR rd, =constant 어셈블러에서는사용된값 (constant) 에따라유효한명령어사용 8 비트와 ROR*2로표현가능하면 MOV 또는 MVN으로변환 LDR r0, =0xFF MOV r0, #0xFF 32 비트로만표현이가능하면코드영역내에상수값 (Literal pool) 을저장하고 PC-relative 한 LDR 명령으로변환 LDR r0, =0x5555AAAA LDR r0, [ PC, #offset ] DCD 0x5555AAAA 64
66 Relative 어드레스지정방식 LABEL 지정에의한어드레스지정 어셈블리어에서 LABEL 을지정하면어셈블러가 [PC+LABEL] 형태의 주소로변환하여참조 LDR r0, label_1. label_1 DCD 0x LDR r0, [ PC, #offset ] DCD 0x literal pool을사용한 32 비트데이터의 Load 어셈블러가코드영역내에데이터저장후 [PC+LABEL] 형태의주소로변환하여참조 LDR r0, [ PC, #offset ] LDR r0, =0x5555AAAA DCD 0x5555AAAA 65
67 Pre-indexed 어드레스지정방식 Base 레지스터 (Rn) 과 <offset> 으로주소계산후데이터전송 데이터전송이후에도 Rn 의값은별도지정이없으면변하지않는다 LDR r0, [ r1, #4 ] 상수 : 0x memory (byte addressable) 1 Word = 4 bytes + 0x3bf8 Address 0x R1: R0: 0x x512a Address 0x ??????????? 0x00003bf8 66
68 Pre-indexed 방식과 Auto update Pre-indexed 방식을사용하여참조후 Base 레지스터 Rn 갱신 LDR r0, [ r1, #4 ]! 0x memory (byte addressable) 1 Word = 4 bytes contents of r1 updated 0x1238 R1: + 0x3bf8 Address 0x R0: 0x x x512a Address 0x x00003bf8 67
69 Post-indexed 어드레스지정방식 Base 레지스터 (Rn) 가지정하는주소에데이터의전송후 Rn 값과 <Offset> 의연산결과로 Rn 갱신 LDR r0, [ r1 ], #4 contents of r1 updated 0x memory (byte addressable) R1: 0x3bf8 0x x Address 0x R0: 0x a 0x512a Address 0x
70 LDM/STM 의레지스터 LIST <register_list> 에서사용가능한레지스터 R0에서 R15(PC) 까지최재 16개 연속된레지스터표현 {r0-r5} 와같이 - 로표현가능 <register_list> 의순서지정 항상 low order의 register에서 high order 순으로지정 LDM r10, {r2,r3,r1} 실제동작 LDM r10, {r1,r2,r3} 69
71 LDM/STM 의어드레스지정방식 Addressing Mode 키워드 ( 표현방식 ) 데이타 스택 유효어드레스계산 Pre-increment Load LDMIB LDMED Increment before load Post-increment Load LDMIA LDMFD Increment after load Pre-decrement Load LDMDB LDMEA Decrement before load Post-decrement Load LDMDA LDMFA Decrement after load Pre-increment Store STMIB STMFA Increment before store Post-increment Store STMIA STMEA Increment after store Pre-decrement Store STMDB STMFD Decrement before store Post-decrement Store STMDA STMED Decrement after store 70
72 Pre-Increment 어드레스지정 STMIB r9!, {r0,r1,r2} Base 레지스터 (r9) = 0x100C 데이터저장전어드레스증가 (Increment Before) R0: R1: R2: R9: 0x01 0x02 0x03 0x100C 0x1018 0x03 0x02 0x01 0x1020 0x101C 0x1018 0x1014 0x1010 0x100C 0x1008 0x1004 0x1000 0x0FFC 0x0FF8 0x0FF4 1 r9 -> 0x1010 증가후 r0 저장 2 r9 -> 0x1014 증가후 r1 저장 3 r9 -> 0x1018 증가후 r2 저장 4 {!}, auto-update 옵션이있으면 r9 값을 0x1018로변경 71
73 Post-Increment 어드레스지정 STMIA r9!, {r0,r1,r2} Base 레지스터 (r9) = 0x100C 데이터저장후어드레스증가 (Increment After) R0: R1: R2: R9: 0x01 0x02 0x03 0x100C 0x1018 0x03 0x02 0x01 0x1020 0x101C 0x1018 0x1014 0x1010 0x100C 0x1008 0x1004 0x1000 0x0FFC 0x0FF8 0x0FF x100c에 r0 저장후 r9 -> 0x1010 증가 0x1010에 r1 저장후 r9 -> 0x1014 증가 0x1014에 r2 저장후 r9 -> 0x1018 증가 {!}, auto-update 옵션이있으면 r9 값을 0x1018로변경 72
74 Pre-Decrement 어드레스지정 STMDB r9!, {r0,r1,r2} Base 레지스터 (r9) = 0x100C 어드레스를 <register_list> 개수만큼 감소해놓고, 어드레스를증가하면서 R0: R1: R2: R9: 0x01 0x02 0x03 0x100C 0x1000 0x03 0x02 0x01 0x1020 0x101C 0x1018 0x1014 0x1010 0x100C 0x1008 0x1004 0x1000 0x0FFC 0x0FF8 0x0FF4 데이터저장 (Decrement Before) 1 어드레스를 0x1000로감소 2 0x1000에 r0 저장후어드레스증가 3 0x1004에 r1 저장후어드레스증가 4 0x1008에 r2 저장후어드레스증가 5 {!}, auto-update 옵션이있으면 r9 값을 0x1000로변경 73
75 Post-Decrement 어드레스지정 STMDA r9!, {r0,r1,r2} Base 레지스터 (r9) = 0x100C 어드레스를 <register_list> 개수만큼 감소해놓고, 어드레스를증가하면서 R0: R1: R2: R9: 0x01 0x02 0x03 0x100C 0x1000 0x03 0x02 0x01 0x1020 0x101C 0x1018 0x1014 0x1010 0x100C 0x1008 0x1004 0x1000 0x0FFC 0x0FF8 0x0FF4 데이터저장 (Decrement After) 1 어드레스를 0x1000로감소 2 어드레스증가후 0x1004에 r0 저장 3 어드레스증가후 0x1008에 r1 저장 4 어드레스증가후 0x100C에 r2 저장 5 {!}, auto-update 옵션이있으면 r9 값을 0x1000로변경 74
76 LDM/STM 의스택 (Stacks) 동작 스택동작 새로운데이터를 PUSH 를통해 top 위치에삽입하고, POP 을통해가장최근에삽입된데이터를꺼내는자료구조형태. 스택의위치지정 Base pointer : Stack 의 bottom 위치를지정 Stack pointer : Stack 의 top 위치를지정 PUSH {4, 8, 6} POP SP 6 8 SP 8 Result of pop = 6 SP BASE BASE 4 BASE 4 75
77 스택 type 에따른포인트변화 Top of memory Old SP SP r5 r4 r3 r1 r0 Old SP SP r5 r4 r3 r1 r0 SP Old SP r5 r4 r3 r1 r0 SP Old SP r5 r4 r3 r1 r0 STMFD sp!, {r0, r1, r3-r5} STMED sp!, {r0, r1, r3-r5} STMFA sp!, {r0, r1, r3-r5} STMEA sp!, {r0, r1, r3-r5} 76
78 Stack 의 Push 동작 STMFD sp!, {r0-r1,lr} Base 레지스터 (sp) = 0x100C Stack 에 context 정보저장 1 어드레스를 0x1000 로감소 R0: R1: sp: lr: pc: 0x01 0x02 0x100C 0x1000 0x1234 0x4321 0x1234 0x02 0x01 0x1020 0x101C 0x1018 0x1014 0x1010 0x100C 0x1008 0x1004 0x1000 0x0FFC 0x0FF8 0x0FF 레지스터값저장후어드레스증가링크레지스터저장후어드레스증가 Stack의위치를 0x1000로변경 77
79 Stack 의 Pop 동작 LDMFD sp!, {r0-r1,pc} Base 레지스터 (sp) = 0x1000 Stack 에서 context 정보를읽는다 1 레지스터값을읽은후어드레스증가 R0: R1: sp: lr: pc: 0x01 0x?? 0x02 0x?? 0x100C 0x1000 0x1234 0x4321 0x1234 0x1234 0x02 0x01 0x1020 0x101C 0x1018 0x1014 0x1010 0x100C 0x1008 0x1004 0x1000 0x0FFC 0x0FF8 0x0FF4 2 3 링크레지스터 (lr) 값을읽어프로그램 카운터 (pc) 에저장 Stack 의위치를 0x100C 로변경 78
80 스택과서브루틴 스택의용도중하나는서브루틴을위한일시적인레지스터저장소를제공하는것. 서브루틴에서사용되는데이터를스택에 push하고, caller 함수로 return 하기전에 pop 을통해원래의정보로환원시키는데사용 : STMFD sp!,{r0-r12, lr} ; stack all registers... ; and the return address... LDMFD sp!,{r0-r12, pc} ; load all the registers ; and return automatically privilege 모드에서 LDM 을사용하여 Pop 을할때 S bit set 옵션인 ^ 가레지스터리스트에있으면 SPSR 이 CPSR 로복사된다. 79
81 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 80
82 ARM 의메모리시스템 ARM 프로세서 MMU On-chip Caches ARM core Memory Memory Controller Buffers Physical Addresses Virtual Addresses 81
83 Cached ARM 프로세서의제어 CP15 인터페이스를통해서제어 Cache, MPU or MMU, endian 제어등 Coprocessor Register Transfer 명령 MRC : Move to Register from Coprocessor Coprocessor 레지스터내용을 ARM 레지스터로전송 MCR : Move to Coprocessor from Register ARM 레지스터의내용을 Coprocessor 레지스터로전송 MCR/MRC{cond} p15, opcode_1, rd, cn, cm, opcode_2 p15 - coprocessor 15를나타낸다 opcode_1 - always zero rd ARM의 source 또는 destination 레지스터 cn - primary CP15 register cm - additional register name opcode_2 - additional information 표시 82
84 CP15 레지스터 (ARM920T) Register 용도비고 0 ID code register Opcode_2=0 Cache type register Opcode_2=1 1 Control Register Cache, MMU enable, Endian Clock, 제어등 2 Translation table base register 3 Domain access control register 5 Fault status register 6 Fault address register 7 Cache operation register Cache control 8 TLB operation register 9 Cache lockdown register 10 TLB lockdown register 13 FSCE PID register Fast Context Switching Extension 14 Debug support register DCC enabled 4, 11, 12 Reserved 83
85 CP15 레지스터 (XScale) Register 용도비고 0 ID code register Opcode_2=0 Cache type register Opcode_2=1 1 Control Register Cache, MMU enable, Endian Clock, 제어등 2 Translation table base register 3 Domain access control register 5 Fault status register 6 Fault address register 7 Cache operation register Cache control 8 TLB operation register 9 Read buffer operation 10 TLB lockdown register 13 FSCE PID register Fast Context Switching Extension 14 Debug support register 15 Test & Clock control 11, 11, 12 Reserved 84
86 MMU 의구성 Translation Lookaside Buffer (TLB) 최근에사용된 Virtual address 를 physical address 로변화하는정보와 access permission 에대한정보를저장하고있는일종의 Cache Translation Table Walking Logic TLB 를 update 하고관리하는기능을가진 logic Access Control Logic 85
87 Translation Table Physical 메모리에있는 translation 정보를가지고있는 Table Level 1 Translation Table 4096 개의 32 비트 translation table entry 4GB 메모리를 virtual address 1MB 단위로나누어관리 Virtual address 비트 [31:20] 로정렬 Physical memory 에대한 1MB section 단위의 address translation 정보와 access control 정보를가지거나, 레벨 2 table 에대한주소정보를가진다. Level 2 Translation Table 64KB(large page), 4KB(small page), 1KB(tiny page) 단위의 translation table 을정보를가지고있다. 각 translation table 에는 address translation 정보와 access control 정보를가진다. 86
88 Translation Lookaside Buffer (TLB) 최근에사용된 Virtual address 를 physical address 로변화하는정보와 access permission 에대한정보를저장하고있는일종의 Cache TLB 가 Virtual 어드레스에대한 translation table entry 를가지고있으면 access control logic 이 access 가능을판단 접근이허용되면 virtual address 를 physical address 로변환후 access 접근의허용이않되면 CPU 에 Abort 구동 TLB 에 virtual 어드레스에대한정보가없으면 translation table walking logic 에서 table 정보를 physical 메모리에서읽어 TLB update 87
89 MMU 와메모리구성 Physical Addresses Space Virtual Addresses Space System Memory Instructions Data 32 B MMU ITLB C A PA VA DTLB C A PA VA I-CACHE D-CACHE ARM 프로세서 ARM core Translation Table TLB 관리 Translation Table Base Register 88
90 MMU 의어드레스변환 Physical Addresses 1 MB Sections Level 1 Translation Table 4096 Entries Virtual Addresses 1 MB Sections 0xFFF xFFC xFFF AP Domain Selector C B 0xFFF AP Domain Selector 1 C B 1 0 0xFFF xFFC x x x x x x002 AP Domain Selector 1 C B 1 0 Domain Selector Domain Selector Fine Table Base Coarse Table Base x000 AP Domain Selector 1 C B 1 0 0x x x x x Fault Coarse Level 2 Translation Table Fine Level 2 Translation Table 89
91 Level 1 Descriptor Level 1 Descriptor의종류 Fault Section descriptor Coarse or fine page descriptor Coarse page 는 256 entry의 Level 2 table을가진다 Fine page는 1024 entry의 Level 2 table을가진다 Descriptor Type Course Level 2 Descriptor Base Address Domain Selector 1 Section Base Address AP Domain Selector 1 Fine Level 2 Descriptor Base Address Domain Selector C B Fault Coarse page table Section Fine page table 90
92 Level 2 Descriptor Level 2 Descriptor의종류 Fault Large page : 64KB 단위관리 Small page : 4KB 단위관리 Tiny page : 1KB 단위관리 Descriptor Type Large Page Base Address AP3 AP2 AP1 AP0 C B 0 1 Small Page Base Address AP3 AP2 AP1 AP0 C B 1 0 Tiny Page Base Address AP C B Fault Large page Small Page Tiny Page 91
93 Cache 와 Write Buffer 제어 Section 또는 page 별로 Cache와 Write Buffer의사용여부결정 Cacheable Page 내의데이터가 Cache될수있음을나타낸다 Bufferable Page 내의데이터가 write buffer에 write될수있음을나타낸다. Memory mapped I/O 장치의경우에는반드시 disable 되어있어야한다. Cacheable 과 Bufferable 에의한메모리시스템특징 C B 의미 Cache의 Write 동작 0 0 Cache 불가, 쓰기버퍼불가 0 1 Cache 불가, 쓰기버퍼동작 1 0 Cache 동작, 쓰기버퍼불가 Write-through Cache 1 1 Cache 동작, 쓰기버퍼동작 Write-back Cache 92
94 Access Permission Section 또는 page 별로메모리의 access permission 제한 Access 권한은각 descriptor 의 AP 정보와 S(System) 비트와 R(Rom) 비트에의해서제어 S, R 비트는 control 레지스터의비트 8 과 9 이다 Access 가불가하면 permission fault 가발생 AP S R Supervisor Access Permission User No access No access Read only No access Read only Read only Reserved 01 X X Read / Write No Access 10 X X Read / Write Read only 11 X X Read / Write Read / Write XX 1 1 Reserved 93
95 Domain Control MMU의 Access는기본적으로 DOMAIN 의의해서제어된다. 개별적인 Access permission을갖도록제어하는데사용 16개까지의 domain 지정가능 DACR(Domain Access Control Register) 는각 domain 별로 2 비트씩할당 Domain 과 Access Permission Domain 의미설명 00 No Access 모든 access 에대하여 domain fault 발생 01 Client Page Table 의 Section descriptor 나 page descriptor 의 AP(Access Permission) 비트정보를따른다. 10 Reserved Reserved (No Access) 11 Manager Page Table 의 Section descriptor 나 page descriptor 의 AP(Access Permission) 비트정보를무시하고무조건 access 를허용한다. 94
96 MMU 설정 MMU를설정하는과정은다음과같다. 1. Build Translation Table Physical 메모리에설정 Virtual to physical translation 정보 Cacheable / Bufferable 정보 Access Permission 2. Translation Table Base 설정 CP15의 c2 사용 3. Initialize Control Register Enable Cache, MMU Clocking 모드설정 Endian 모드설정 Vector location 설정 Start Build Translation Table Translation Table Base 설정 (C2) Initialize Control Register (C1) MOV r0, =TTBase ; Translation table base MCR p15, 0, r0, c2, c0, 0 ; set TT base MRC p15, 0, r0, c1, c0, 0 ; read control register ORR r0, r0, #0x1 MCR p15, 0, r0, c1, c0, 0 ; enable MMU 95
97 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 96
98 APCS 레지스터 APCS 역 할 r0 a1 argumect 1 / interger result / scratch register r1 a2 argumect 2 / scratch register r2 a3 argumect 3 / scratch register r3 a4 argumect 4 /scratch register r4 v1 register variable 1 r5 v2 register variable 2 r6 v3 register variable 3 r7 v4 register variable 4 r8 v5 register variable 5 r9 sb/v6 Static base / register variable 6 r10 sl/v7 stack limit / register variable 7 r11 fp frame pointer r12 ip scratch reg. / new sb in inter-link-unit calls r13 sp Lower end of current stack frame r14 lr link address / scratch register r15 pc program counter 97
99 Exception Exception 외부의요청이나오류에의해서정상적으로진행되는프로그램의동작을잠시멈추고프로세서의동작모드를변환하고미리정해진프로그램을이용하여외부의요청이나오류에대한처리를하도록하는것 Exception의예 I/O 장치에서인터럽트를발생시키면 IRQ Exception 이발생하고, 프로세서는발생된 IRQ Exception 을처리하기위해 IRQ 모드로전환되어요청된인터럽트에맞는처리동작수행 ARM의 Exception Reset Undefined Instruction Software Interrupt Prefetch Abort Data Abort IRQ(Interrupt Request) FIQ(Fast Interrupt Request) 98
100 Exception Vector 와우선순위 Exception Vector Exception 이발생하면미리정해진어드레스의프로그램을수행 미리정해진프로그램의위치를 Exception Vector 라한다. Exception Vector Table 발생가능한각각의 Exception 에대하여 Vector 를정의해놓은테이블 각 Exception 별로 1 word 크기의명령어저장공간을가진다. Vector Table에는 Branch 또는이와유사한명령으로실제 Exception을처리하기위한루틴으로분기할수있는명령으로구성되어있다. FIQ의경우는 Vector Table의맨상위에위치하여분기명령없이처리루틴을프로그램할수있다. ARM은기본적으로 0x 에 Vector Table을둔다. (MMU 제어프로그램에의해위치변경가능 ) Exception 우선순위 동시에 Exception 이발생하는경우처리를위해우선순위지정 99
101 Exception Vector Table Vector Address Exception 우선순위 동작모드전환 0x Reset 1 (High) Supervisor(SVC) 0x Undefined Instruction 6 (Low) Undefined 0x Software Interrupt(SWI) 6 Supervisor(SVC) 0x C Prefetch Abort 5 Abort 0x Data Abort 2 Abort 0x Reserved 0x IRQ 4 IRQ 0x C FIQ 3 FIQ 100
102 Exception Vector Table 의명령어 Exception 마다 1 word 크기의명령어저장공간할당 Exception vector 테이블에서는 1 개의 ARM 명령만을사용할수있다. 실제 Exception Handler 가있는분기명령으로만들어진다. FIQ의 Vector Table은맨상위에있으므로핸들러를직접작성할수있다. Exception Vector Table에서사용할수있는명령어 Branch 명령 (B) 가장일반적으로사용된다. Branch 명령은 PC 값을기준으로 +/- 32MB 내에있어야한다. Handler가 32MB 영역을벗어나면다른명령을사용하여야한다. Move 명령 (MOV) Destination 레지스터를 PC로하면Branch 명령과같이사용가능 한사이클내에처리된다. Handler 어드레스가 8비트상수와 ROR로표시가능해야사용가능하다. Load 명령 (LDR) 과 Literal Pool 메모리영역내의어떤위치라도이동이가능하다. 메모리에서주소를읽기위한 1 사이클이더필요하다. 101
103 프로그램실행Exception Handling Exception 발생 CPSR 을 SPSR_<mode> 에복사 Return CPSR 값복원 PC 값복원 CPSR 의비트를수정 ARM state 로변경 Mode 비트수정 필요시인터럽트 disable Exception Handler 되돌아갈어드레스를 LR_<mode> 에저장 Exception Vector PC 값을 Vector 어드레스로변경 ARM 이하드웨어적으로처리 102
104 Return From Exception Handler Exception 처리가완료되면다음의절차를수행하여복귀 1. LR_<mode> 값을 PC 에복사한다. 2. SPSR_<mode> 를 CPSR 에복사한다. 주의사항 : 2 가지동작이하나의명령으로처리되어야한다. Exception 복귀명령 Data processing 명령에 S 접미사를사용하고 PC 를 destination 레지스터로사용하는방법 Privilege 모드에서 S 접미사를사용하면 CPSR 복원 SUBS PC, LR, #4 LDM 명령을사용하고 register list 뒤에 ^ 옵션사용 Stack 에되돌아갈주소값이계산되어들어가있어야한다. LDM SP!, {PC}^ 103
105 Exception 과 Pipeline Exception 과 Pipeline Exception 종류별로 CPU 에서발생한 Exception 을인식하는시점의 pipeline stage 가모두다르다. 따라서복원되는 PC 값의조정이필요하다. Exception 복귀명령 Exception Pipeline Stage Return 명령 Undefined Instruction Decode stage MOVS PC, LR Software Interrupt(SWI) Decode stage MOVS PC, LR Prefetch Abort Execute stage SUBS PC, LR, #4 Data Abort Memory stage SUBS PC, LR, #8 IRQ Execute stage SUBS PC, LR, #4 FIQ Execute stage SUBS PC, LR, #4 104
106 Reset Exception 발생조건 ARM로 Reset 신호가입력되면 Reset Exception 발생 Exception 발생에따른 ARM의동작 순서 동 작 동작설명 1 SPSR_svc = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = 1 CPSR[7] = 1 CPSR[4:0] = b ARM state로전환 FIQ disable IRQ disable SVC 모드로전환 3 LR_svc = unpredictable value 4 PC = 0x00 105
107 Undefined Instruction Exception 발생조건 ARM에정의되지않은명령을실행하고자하면발생 Coprocessor에서응답이없으면발생 Exception 발생에따른 ARM의동작 순서동작동작설명 1 SPSR_undef = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = no change CPSR[7] = 1 CPSR[4:0] = b ARM state 로전환 IRQ disable Undefined 모드로전환 3 LR_undef = address of undefined inst PC = 0x04 Return 명령 MOVS PC, LR 106
108 Software Interrupt (SWI) 발생조건 SWI 명령이실행되면Exception 발생 Exception 발생에따른 ARM의동작 순서동작동작설명 1 SPSR_svc = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = no change CPSR[7] = 1 CPSR[4:0] = b ARM state 로전환 IRQ disable SVC 모드로전환 3 LR_svc = address of SWI PC = 0x08 Return 명령 MOVS PC, LR 107
109 SWI Handler SWI 처리순서 SWI 명령이있는위치를찾는다. SWI 명령에있는 SWI 번호를알아낸다 cond bit (interpreted) immediate SWI 번호에해당하는동작을수행한다. SWI 의 Argument 는 R0, R1, R2, R3 을통해전달된다. 108
110 Prefetch Abort 발생조건 잘못된어드레스공간에서명령을읽으려고하면 Exception 발생 MMU나메모리 controller서발생한 Abort 신호입력에의해서발생 Exception 발생에따른 ARM의동작 순서동작동작설명 1 SPSR_abt = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = no change CPSR[7] = 1 CPSR[4:0] = b ARM state 로전환 IRQ disable Abort 모드로전환 3 LR_abt = address of abort PC = 0x0C Return 명령 SUBS PC, LR, #4 109
111 Data Abort 발생조건 잘못된어드레스공간에서데이터를읽거나쓰려고하면 Exception 발생 MMU나메모리 controller서발생한 Abort 신호입력에의해서발생 Exception 발생에따른 ARM의동작 순서동작동작설명 1 SPSR_abt = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = no change CPSR[7] = 1 CPSR[4:0] = b ARM state 로전환 IRQ disable Abort 모드로전환 3 LR_abt = address of abort PC = 0x10 Return 명령 SUBS PC, LR, #8 110
112 IRQ 발생조건 외부장치에서발생된인터럽트 (IRQ) 신호가 ARM에입력되면 Exception 발생 Exception 발생에따른 ARM의동작 순서동작동작설명 1 SPSR_irq = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = no change CPSR[7] = 1 CPSR[4:0] = b ARM state 로전환 IRQ disable IRQ 모드로전환 3 LR_irq = address of next inst PC = 0x18 Return 명령 SUBS PC, LR, #4 111
113 FIQ 발생조건 외부장치에서발생된인터럽트 (FIQ) 신호가 ARM에입력되면 Exception 발생 Exception 발생에따른 ARM의동작 순서동작동작설명 1 SPSR_fiq = CPSR 2 CPSR 값변경 CPSR[5] = 0 CPSR[6] = 1 CPSR[7] = 1 CPSR[4:0] = b ARM state로전환 FIQ disable IRQ disable FIQ 모드로전환 3 LR_fiq = address of next inst PC = 0x1C Return 명령 SUBS PC, LR, #4 112
114 물리적인메모리구조 0xFFFF_FFFF Not Used 0x60000_0000 0x48000_0000 Special Register 0x40000_0000 0x38000_0000 0x30000_0000 0x28000_0000 0x20000_0000 0x18000_0000 0x10000_0000 0x08000_0000 0x00000_0000 Boot SRAM Not Used (ngcs7) SDRAM (ngcs6) Extension (ngcs5) Extension (ngcs4) LAN (ngcs3) Extension (ngcs2) Extension (ngcs1) Flash (ngcs0) 4KB 2MB/4MB/~128MB 2MB/4MB/~128MB 128MB 128MB 128MB 128MB 128MB 128MB 1GB Accessible Region 113
115 소프트웨어동작을위한메모리구조 Stack 영역 Heap 영역 BSS(ZI) 영역 RO data Alphabetical order Z DATA(RW) 영역 TEXT(RO) 영역 RO code C B A 114
116 Startup 코드 Startup 코드를작성하기위해서는 Programmer s model, 특히명령어 시스템하드웨어구조및기능에대한전반적인사항등을모두알아야한다. Startup 코드의필수사항 Exception Vector Table의설정 Reset 핸들러의구성 시스템초기화 115
117 시스템초기화 일반적으로시스템의초기화동작은다음을포함한다. Entry point를정의 Exception vector를설정 메모리시스템을초기화 스택포인터레지스터초기화 Critical I/O 초기화 필요시프로세서의모드및 state 변환 인터럽트제어기초기화 C 프로그램에서사용되는변수영역및메모리초기화 C 코드로분기 116
118 Entry Point 선언 모든프로그램은시작되는부분을정의해야한다. 어셈블러로구성되며모든프로그램에는반드시필요 일반적으로 crt0.s(c-runtime 0 의약자 ), init.s, startup.s 등의이름사용 Entry Point 선언 SDT, ADS, RVDS or CodeWarrior ENTRY 어셈블러디렉티브를사용한다. AREA Init,CODE,READONLY ENTRY ResetHandler CodeWarrior 2.x or GNU.text.globl _start.org 0 _start: /* entry point */ 117
119 Exception Vector Table 설정 0x0 의 ROM 에 vector table 이정의되어있는경우 ROM 에 vector table 이고정되어있고시스템동작중에별도의 vector table 의 설정이필요없는경우 Re-mapping 이지원되지않는경우에는항상 vector table 이고정되어있다. 0x0 에 vector table 없이초기화코드만있는경우 0x0 번지에최소한의 reset handler가동작하도록되어있고, 이 reset handler에서 re-mapping 및 vector table 초기화 Re-mapping이지원되는경우대부분시스템동작중에 vector table의초기화과정이있다. Linux 등의대부분임베디드 OS는 OS 초기화과정에서자신의 exception vector table을초기화한다. 118
120 시스템초기화절차 1 System Reset & goto PC=0x0 Power-on 또는 reset switch 에의해서시스템 reset 2 Goto Reset Handler Reset handler 로이동 3 Disable Watch-dog Watch-dog 타이머를초기화한다. 4 Disable all interrupt 외부의모든인터럽트를받아들이지않도록한다. 5 Setup system clock Clock 주파수, PLL 등을초기화한다. 6 Setup memory controller 메모리제어기를초기화 7 Initialize each stack SVC,USR,ABT,IRQ,FIQ,Undef 등의 stack 을초기화 8 Clear BSS BSS 영역을초기화한다. 9 Goto C_Entry C 함수로분기하여메인프로그램을시작 119
121 Exception Vector Table 120
122 Initialization for Reset (1/2) 121
123 Initialization for Reset (2/2) 122
124 Memory Bank Initialization 123
125 Stack Initialization 124
126 Setup Handler 125
127 RW/ZI Initialization 126
128 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 127
129 Contents 1. 임베디드시스템의구조 2. 임베디드시스템의개발 3. ARM 아키텍처 4. ARM 프로세서의구조 5. ARM 프로세서명령어 6. Cached ARM 7. 임베디드소프트웨어개발 8. S3C2410 및실습용보드의이해 9. 디바이스제어 128
Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt
ARM 명령어집합 임베디드시스템소프트웨어 I 내용 ARM 구조 프로세서수행모드 레지스터구조 예외처리과정 ARM 명령어형식 조건수행접미사 데이터처리명령어 곱셈명령어 Load/Store 명령어 다중레지스터 Load/Store 스택명령어 SWI 명령어 Branch 명령어 상태레지스터접근명령어 명령어요약 ARM 명령어집합 2 ARM 구조특징 모든명령어가 32bit
More informationMicrosoft Word - 1. ARM Assembly 실습_xp2.doc
ARM asm 의구조 ARM Assembly 실습 1. 기본골격 AREA armex,code, READONLY ;Mark first instruction to execute start MOV r0, #10 MOV r1,#3 ADD r0, r0, r1 ; r0 = r0 + r1 stop NOP NOP B stop ; Mark end of file 위의 asm의구조를이해하고실행해보세요.
More informationMicrosoft PowerPoint - LN_1_ARM_CPU_0.ppt [호환 모드]
프로젝트 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
More informationHere is a "PLDWorld.com"... // EXCALIBUR... // Additional Resources // µc/os-ii... Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL D
Page 1 of 23 Additional Resources: µc/os-ii Author: Source: HiTEL Digital Sig Date: 2004929 µ (1) uc/os-ii RTOS uc/os-ii EP7209 uc/os-ii, EP7209 EP7209,, CPU ARM720 Core CPU ARM7 CPU wwwnanowitcom10 '
More informationARM 아키텍쳐 - ARM 아키텍쳐 - Programming 모델 - ARM 프로세서명령어 - 예외처리와시스템리셋 - ARM9TDMI 프로세서 한국기술교육대학교 전기전자통신공학부 장영조 한국기술교육대학교임베디드 SOC 설계및실습
ARM 아키텍쳐 - ARM 아키텍쳐 - Programming 모델 - ARM 프로세서명령어 - 예외처리와시스템리셋 - ARM9TDMI 프로세서 한국기술교육대학교 전기전자통신공학부 장영조 한국기술교육대학교임베디드 SOC 설계및실습 ARM (Advanced RISC Machines) v 1990년설립 v UK-based joint venture Ø Apple Computer,
More informationq ARM (Advanced RISC Machines) v 1990년설립 v UK-based joint venture Ø Apple Computer, Acorn Computer Group, and VLSI Technology q 32-bit RISC Intellectu
ARM 아키텍쳐 - ARM 아키텍쳐 - Programming 모델 - ARM 프로세서명령어 - 예외처리와시스템리셋 - ARM9TDMI 프로세서 q ARM (Advanced RISC Machines) v 1990년설립 v UK-based joint venture Ø Apple Computer, Acorn Computer Group, and VLSI Technology
More informationARM Reverse Engineering
singi@hackerschool Facebook : @sjh21a http://kernelhack.co.kr/netsec-singi.zip - First Phase About ARM ARM Operating Mode and Registers Basic ARM Instruction Thumb Mode - Second Phase Configuration of
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)
More informationMicrosoft PowerPoint - o8.pptx
메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)
More informationARM01
0 1 Chapter 1.1 1.2 1.3 1.4 1.5 ARM System Developer s guide 32, ARM., ARM,,,. ARM 1985, ARM1, 2001 20 ARM. ARM,., ARM,., ARM ARM7TDMI, 120 Dhrystone MIPS 1),. ARM7TDMI. ARM, RISC(Reduced Instruction Set
More informationhwp
BE 8 BE 6 BE 4 BE 2 BE 0 y 17 y 16 y 15 y 14 y 13 y 12 y 11 y 10 y 9 y 8 y 7 y 6 y 5 y 4 y 3 y 2 y 1 y 0 0 BE 7 BE 5 BE 3 BE 1 BE 16 BE 14 BE 12 BE 10 y 32 y 31 y 30 y 29 y 28 y 27 y 26 y 25 y 24 y 23
More information1부. 임베디드시스템
2. 마이크로프로세서시스템의 기본개념 마이크로프로세서시스템 하드웨어와소프트웨어가조합되어특정한목적을수행하는시스템 특정한기능을수행하도록마이크로프로세서와입출력장치를 내장하며, 이를제어하기위한프로그램이내장되어있는우리의일상 생활에서사용되는각종전자기기, 가전제품, 제어장치등 1 마이크로프로세서시스템응용분야 정보가전 : 세탁기, 오디오, 인터넷냉장고, HDTV 등 제어분야
More informationhlogin2
0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS
More informationChapter ...
Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >
10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절
More informationARM 프로세서 입문
ARM 프로세서입문 내용 배경과역사주요특징 ARM 계열들개발도구 역사, 파생계열과도구들 제작 EMBEDDED SYSTEMS ACADEMY 내용 Part 1 배경과역사 RISC / CISC Acorn / Advanced RISC Machine Part 2 주요특징 Registers Interrupts Memory Thumb 3-단계명령파이프라인 5-단계명령파이프라인
More informationSRC PLUS 제어기 MANUAL
,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO
More informationMicrosoft PowerPoint - M07_RTL.ppt [호환 모드]
제 7 장레지스터이동과데이터처리장치 - 디지털시스템의구성 data path 모듈 : 데이터처리, 레지스터, 연산기, MUX, control unit 모듈 : 제어신호발생, 연산의순서지정 - register transfer operation : reg 데이터이동 / 처리 reg set,operation, sequence control - micro-operation
More informationMicrosoft Word - FunctionCall
Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack
More informationMicrosoft PowerPoint - ARM System-on-chip architecture_Chap 4_23p.ppt
1 - 전체요약 4. ARM 조직과구현 2 4.1 3 단계파이프라인 ARM 조직 레지스터뱅크 : 레지스터접근을위한 2개의입력포트, 1개의출력포트, 프로그램카운터를위한 1개의입출력포트배럴쉬프터 : ALU 입력전자리이동과회전수행 ALU : 산술연산, 논리연산실행어드레스레지스터 : 메모리주소저장어드레스증가기 : 연속적인메모리주소생성데이터레지스터 : 메모리로부터읽은데이터나저장할데이터를저장명령어디코더
More informationMicrosoft PowerPoint - hy2-12.pptx
CPU의구조와기능 CPU 의명령어수행과정 명령어인출 (Instruction Fetch) : 기억장치로부터명령어를읽어온다 명령어해독 (Instruction Decode) : 수행해야할동작을결정하기위하여명령어를해독한다 모든명령어들에대하여공통적으로수행 데이터인출 (Data Fetch) : 명령어실행을위하여데이터가필요한경우에는기억장치혹은 I/O 장치로부터그데이터를읽어온다
More information한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1
한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1 본슬라이드는 M. Morris Mano and Charles Kime 의 Logic and Computer Design Fundamentals 의내용을참조하였습니다. 한국기술교육대학교전기전자통신공학부 2 1. 레지스터전송과데이터처리장치 2. 순차진행과제어 3. 명령어구조 (Instruction Set
More information마이크로프로세서 개요
1 주 개요 메카트로닉스공학부 조철우 8051 Pin Layout 8051 3 Atmel 89C2051 4 강의의개요 컴퓨터및의기원과동작원리를학습 마이크로컨트롤러를배우기위한기초원리 마이크로컨트롤러를활용하기위한도구사용법 마이크로컨트롤러를활용하기위한기초시스템설계및프로그래밍 History of Computer 컴퓨터의역사. 최초의컴퓨터 - 1946년 ENIAC,
More informationDeok9_Exploit Technique
Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security
More informationMicrosoft PowerPoint - 30.ppt [호환 모드]
이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST
More information학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능
컴퓨터구조 제 9 강 중앙처리장치의조직과기능 학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능 학습목표 rcpu 의성능을향상시키는요인들을알아본다. rcpu 의기본적인기능을이해한다. rcpu 는 ALU, 제어장치, 레지스터집합,
More informationComputer Architecture
CPU 의구조와기능 CPU 의기본구조 명령어실행과실행사이클 명령어파이프라이닝 CPU 의기능 2 명령어인출 (Instruction Fetch) 기억장치로부터명령어읽기 명령어해독 (Instruction Decode) 수행해야할동작을결정하기위하여명령어를해독 모든명령어들에대하여공통적으로수행 데이터인출 (Data Fetch) 명령어실행에필요한데이터를기억장치혹은 I/O
More information프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M
중앙처리장치 (CPU: Central Process Unit) 1) 제어장치 (Control Unit) 컴퓨터시스템의모든장치들에게동작을지시하고제어하는장치로주기억장치에서읽어온명령어를해독하고해당장치에게제어신호를보낸다. 구성회로 : 부호기, 명령해독기, 번지해독기 구성레지스터 : PC( 프로그램카운터 ), IR( 명령어레지스터 ) 부호기 ( 제어신호발생기 ) 해독한명령어에따라서해당장치로보낼제어신호를생성하는회로
More informationDE1-SoC Board
실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically
More informationMicrosoft PowerPoint - hw8.ppt [호환 모드]
8.1 데이터경로와제어장치 Chapter 8 데이터경로와제어장치 많은순차회로의설계는다음의두부분으로구성 datapath: data의이동및연산을위한장치 control unit에상태신호제공 control ol unit: datapath th 에서적절한순서로 data 이동및연산을수행할수있도록제어신호제공. 먼저, datapath를설계 다음에, control unit
More informationMicrosoft PowerPoint - polling.pptx
지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식
More information. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참
이비디오교재는정보통신부의 999년도정보통신학술진흥지원사업에의하여지원되어연세대학교전기전자공학과이용석교수연구실에서제작되었습니다 고성능마이크로프로세서 LU ( rithmetic Logic Unit) 와 Register File의구조 2. 연세대학교전기전자공학과이용석교수 Homepage: http://mpu.yonsei.ac.kr E-mail: yonglee@yonsei.ac.kr
More information라는 점이다. ARM7TDMI 같은 ARM7에서는 페치(fetch), 디코드 (decode) 그리고 실행(execute)의 3단계로 구성된 파이프라인을 적 V4 PF1 ARMv5 1994 1996 1998 2000 2002 2004 2006 I-캐시 액세 + 다이내믹
자는 ARM 프로세서를 이용한 프로젝트를 처음 진행할 당시에 농담반 진담반으로 이런 말을 자주하곤 했다. ARM으로 개발하려다가 정말 암에 걸리겠다. 처음 새로운 프로세서를 접하면 누구나 한번쯤 겪는 일이다. ARM의 경우는 그 정도가 더욱 심했다. 특히 MMU는 무엇이며, 왜 필요하고 어떻게 동작하는지? FIQ와 IRQ는 같 은 인터럽트인데 왜 달리 구분하는지?
More informationT100MD+
User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+
More information온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1
강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 - 2. 중앙처리장치 (Central Processing Unit) 주기억장치에기억된명령을꺼내서해독하고, 시스템전체에지시신호를내는장치명령코드가명령을수행할수있게필요한제어기능을제공제어장치의구성
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More information(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M
(1) 주소지정방식 Address Mode 메모리접근 분기주소 2. 8051 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data Memory 외부 Data Memory (2) 명령어세트 - 8051 명령어는 5 가지로분류,
More information인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고
CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.
More informationuntitled
9 hamks@dongguk.ac.kr : Source code Assembly language code x = a + b; ld a, %r1 ld b, %r2 add %r1, %r2, %r3 st %r3, x (Assembler) (bit pattern) (machine code) CPU security (code generator).. (Instruction
More information학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치
컴퓨터구조 제 12 강제어장치 학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 2 12. 제어장치 학습목표 r 프로세스내의제어장치의기능과역할을공부한다. r 마이크로연산의표현을공부하다. r제어장치의구성과마이크로연산을공부한다. r제어장치의구현방법을알아본다. r 마이크로프로그램을이용한제어장치의구조와동작을공부한다.
More information6주차.key
6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running
More informationINTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co
Basic reverse engineering on x86 This is for those who want to learn about basic reverse engineering on x86 (Feel free to use this, email me if you need a keynote version.) v0.1 SeungJin Beist Lee beist@grayhash.com
More informationMicrosoft PowerPoint os2.ppt [호환 모드]
2 장컴퓨터시스템구조 (Computer-System Structures) 컴퓨터시스템연산 (Computer System Operation) 입출력구조 (I/O Structure) 저장장치구조 (Storage Structure) 저장장치계층 (Storage Hierarchy) 하드웨어보호 (Hardware Protection) 일반적인시스템구조 (General
More informationMango220 Android How to compile and Transfer image to Target
Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys
More informationPowerPoint 프레젠테이션
Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More informationMicrosoft PowerPoint - hy2-12.pptx
2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출
More information목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시 주의사항... 5 2.2 설치 권고 사양... 5 2.3 프로그램 설치... 6 2.4 하드웨
최종 수정일: 2010.01.15 inexio 적외선 터치스크린 사용 설명서 [Notes] 본 매뉴얼의 정보는 예고 없이 변경될 수 있으며 사용된 이미지가 실제와 다를 수 있습니다. 1 목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시
More informationRemote UI Guide
Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................
More information9
9 hamks@dongguk.ac.kr : Source code Assembly language code x = a + b; ld a, %r1 ld b, %r2 add %r1, %r2, %r3 st %r3, x (Assembler) (bit pattern) (machine code) CPU security (code generator).. (Instruction
More informationMicrosoft Word - ExecutionStack
Lecture 15: LM code from high level language /* Simple Program */ external int get_int(); external void put_int(); int sum; clear_sum() { sum=0; int step=2; main() { register int i; static int count; clear_sum();
More informationComputer Architecture
명령어의구조와주소지정방식 명령어세트명령어의형식주소지정방식실제명령어의형태 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 2.4 명령어세트 (instruction set) 어떤 CPU 를위하여정의되어있는명령어들의집합 명령어세트설계를위해결정되어야할사항들 2 연산종류 (operation repertoire) CPU 가수행할연산들의수와종류및복잡도
More informationMicrosoft PowerPoint - 15-SMT_cho.ppt
이강좌는과학기술부의국가지정연구실인연세대학교이용석교수연구실 ( 프로세서연구실 ) 에서 C&S Technology 사의지원을받아서제작되었습니다 SMT 마이크로프로세서구조의개요.. 연세대학교전기전자공학과프로세서연구실박사과정문병인 E-mail: yonglee@yonsei.ac.kr Homepage: http://mpu.yonsei.ac.kr 전화 : - -88 고성능마이크로프로세서구조와설계강좌시리즈
More informationuntitled
Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard
More information슬라이드 1
S3C6410 & boot loader for real target android system Naver linuxkernel26 운영자 : 박철 (e2g1234@naver.com) 강좌목적 Real target Android HW system 이해 Real target Android HW system의핵심인 ARM core 그리고 S3C6410에대하여알아본다.
More information강의10
Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced
More informationKEY 디바이스 드라이버
KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)
More informationEmbedded System
컴퓨터시스템구조론 (3 장 ) Taehyoun Kim Dept. of Mechanical & Information Engineering, University of Seoul Outline 간단한컴퓨터 (Basic Computer) 를이용한어셈블리이해 어셈블리프로그램기본구조 ARM 어셈블리어 간단한컴퓨터를이용한어셈블리이해 어셈블리어란? 프로그램 (Program)
More informationºÎ·ÏB
B B.1 B.2 B.3 B.4 B.5 B.1 2 (Boolean algebra). 1854 An Investigation of the Laws of Thought on Which to Found the Mathematical Theories of Logic and Probabilities George Boole. 1938 MIT Claude Sannon [SHAN38].
More information1
1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More informationAPOGEE Insight_KR_Base_3P11
Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows
More informationCANTUS Evaluation Board Ap. Note
Preliminary CANTUS - UART - 32bits EISC Microprocessor CANTUS Ver 1. October 8, 29 Advanced Digital Chips Inc. Ver 1. PRELIMINARY CANTUS Application Note( EVM B d ) History 29-1-8 Created Preliminary Specification
More informationPRO1_09E [읽기 전용]
Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :
More information1217 WebTrafMon II
(1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network
More information[8051] 강의자료.PDF
CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4
More informationMAX+plus II Getting Started - 무작정따라하기
무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More information정보보안 개론과 실습:네트워크
` 마이크로프로세서설계및실습 2 주차강의자료 2/31 Contents 학습목표 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서특수레지스터, 범용레지스터의역할을이해할수있다. ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다. 내용
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationMicrosoft PowerPoint - Master-ChiWeon_Yoon.ppt
고속 Row Cycle 동작이가능한 VPM (Virtual Pipelined Memory) 구조에 대한연구 1998. 12. 28. 윤치원 1 발표순서 연구의필요성 관련연구 VCM (Virtual Channel Memory) POPeye : 메모리시스템성능측정기 POPeye를이용한 VCM 분석 VPM (Virtual Pipelined Memory) 결론및추후과제
More information<4D F736F F F696E74202D2037C0E52DC4B3BDC3BFCDB8DEB8F0B8AE>
7장 : 캐시와메모리 메모리계층 사용자들은값싸고빠른메모리를크면클수록갖고싶어한다! - 나에게하드디스크 (300GB) 만큼의, 속도는 RAM 정도이고비휘발성메모리가있다면.. 그런데돈이없다. 2006년현재 RAM은 52 MB/5 만원 ( GB/0 만원 ) HD는 300GB/0 만원 (GB/330원) 캐시가격을정확히산정하기는어려우나 52KB/2 만원 (GB/4000
More informationPoison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3
Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow
More information2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.
C 언어와 Assembly Language 을사용한 Programming 20011.9 경희대학교조원경 1. AVR Studio 에서사용하는 Assembler AVR Studio에서는 GCC Assembler와 AVR Assmbler를사용한다. A. GCC Assembler : GCC를사용하는경우 (WinAVR 등을사용하는경우 ) 사용할수있다. New Project
More information휠세미나3 ver0.4
andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationbn2019_2
arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationPowerPoint 프레젠테이션
중앙처리장치의 조직과기능 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring 의학진단및치료기기학 ) Prof. Jae Young Choi Section 01 컴퓨터본체에서 CPU 의위치살펴보기 CPU 는기본적으로입력된데이터와명령어를프로그램에서지정한순서에따라수행한다. 이러한방식을프로그램내장방식이라부르며이를처음제안한발명자의이름을따서,
More informationMicrosoft PowerPoint - a6.ppt [호환 모드]
이장의내용 6 장조건부처리 부울과비교명령어 조건부점프 조건부루프명령어 조건부구조 컴퓨터정보통신 어셈블리언어 2 6.2 부울과비교명령어 부울명령어 Instructions ti 동작 AND dst, src OR dst, src XOR dst, src NOT dst dst dst AND src dst dst OR src dst dst XOR src dst NOT
More information리뉴얼 xtremI 최종 softcopy
SSD를 100% 이해한 CONTENTS SSD? 03 04 05 06 07 08 09 10 11 12 13 15 14 17 18 18 19 03 SSD SSD? Solid State Drive(SSD) NAND NAND DRAM SSD [ 1. SSD ] CPU( )RAM Cache Memory Firmware GB RAM Cache Memory Memory
More informationMicrosoft Word doc
2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.
More informationPowerPoint 프레젠테이션
중앙처리장치의명령어 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring 의학진단및치료기기학 ) Prof. Jae Young Choi 스택저장장치 (1/2) 스택 (Stack) 은 CPU 내부의레지스터집합에존재하는저장장치 데이터가순차적으로저장 / 스택의길이는가변함 한번에하나의요소에만액세스가능 데이터접근방법 : 나중입력먼저출력 (LIFO:
More informationR50_51_kor_ch1
S/N : 1234567890123 Boot Device Priority NumLock [Off] Enable Keypad [By NumLock] Summary screen [Disabled] Boor-time Diagnostic Screen [Disabled] PXE OPROM [Only with F12]
More information[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr
1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Microprocessor) 1. 마이크로프로세서란? 1 작은실리콘칩위에트랜지스터를수천만개집적한소자 2 마이크로 [μ] 는매우작은크기, 프로세서는처리기혹은 CPU를뜻하므로
More information목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy... 6 2.2 Compare... 6 2.3 Copy & Compare... 6 2.4 Erase... 6 2
유영테크닉스( 주) 사용자 설명서 HDD014/034 IDE & SATA Hard Drive Duplicator 유 영 테 크 닉 스 ( 주) (032)670-7880 www.yooyoung-tech.com 목차 1. 제품 소개... 4 1.1 특징... 4 1.2 개요... 4 1.3 Function table... 5 2. 기능 소개... 6 2.1 Copy...
More information-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는
Dong Yang E&P 인버터 Modbus Monitoring Protocol 2018. 08. 27 Sun Spec (Modbus-RTU) -. Modbus Protocol 각 Field에대한설명 Frame갂의구별을위한최소한의시갂 BaudRate 9600에서 1bit 젂송시갂은 Start 0.104msec, (3.5 character Times, 1 Character
More informationPowerPoint 프레젠테이션
중앙처리장치의명령어 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring 의학진단및치료기기학 ) Prof. Jae Young Choi 스택저장장치 (1/2) 스택 (Stack) 은 CPU 내부의레지스터집합에존재하는저장장치 데이터가순차적으로저장 / 스택의길이는가변함 한번에하나의요소에만액세스가능 데이터접근방법 : 나중입력먼저출력 (LIFO:
More informationPCServerMgmt7
Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network
More informationPWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (
PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (http://ddns.hanwha-security.com) Step 1~5. Step, PC, DVR Step 1. Cable Step
More information4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr
강의정보처리필기강사조대호 차시명 체크문제 [CA-07 강 ] 주소지정방식과연산, 명령실행과제어 차시 7 차시 학습내용 1. 주소지정방식과연산 2. 명령실행과제어 학습목표 1. 주소지정방식과연산에대해이해할수있다 2. 명령실행과제어를이해하고해결할수있다 학습내용 3.3 주소지정방식 1. 주소설계시고려해야할점이아닌것은? 가. 주소를효율적으로나타낼수있어야한다. 나.
More informationPowerPoint 프레젠테이션
컴퓨터시스템의구성과기능 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring) Prof. Jae Young Choi Section 01 컴퓨터분해를통한본체살펴보기 [ 그림 4-1] 컴퓨터의분해와연결 2 주회로기판 (main board) 의구성 [ 그림 4-2] 메인보드의구성 3 구성요소 중앙처리장치 (CPU) 핵심기능인프로그램을실행하고데이터를처리한다제어장치,
More informationMicrosoft PowerPoint - e2.ppt [호환 모드]
임베디드시스템하드웨어구조 2. 임베디드시스템하드웨어 / 프로세서 SRAM/ROM CPU timer interrupt UART GPIO DMA USB I/F LAN ROM Flash SRAM 2 - 마이크로프로세서를사용한시스템 - 마이크로콘트롤러를사용한시스템 microprocessor timer interrupt DMA CPU micro-, SoC timer
More informationNo Slide Title
Copyright, 2017 Multimedia Lab., UOS 시스템프로그래밍 (Assembly Code and Calling Convention) Seong Jong Choi chois@uos.ac.kr Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea
More informationPowerPoint 프레젠테이션
1. data-addressing mode CHAPTER 6 Addressing Modes 2. use of data-address mode to form assembly language statements 3. op of program memory address mode 4. use of program memory address mode to form assembly
More informationMicrosoft Word ARM_ver2_0a.docx
[Smart]0703-ARM 프로그램설치 _ver1_0a 목차 1 윈도우기반으로리눅스컴파일하기 (Cygwin, GNU ARM 설치 )... 2 1.1 ARM datasheet 받기... 2 1.2 Cygwin GCC-4.0 4.1 4.2 toolchain 파일받기... 2 1.3 Cygwin 다운로드... 3 1.4 Cygwin Setup... 5 2 Cygwin
More information