Document revision histroy $Log: ae32000-isa-rm_ko.tex,v $ Revision /05/06 10:00:34 babyworm fix type Revision /03/12 01:32:38 babyworm

Size: px
Start display at page:

Download "Document revision histroy $Log: ae32000-isa-rm_ko.tex,v $ Revision 1.7 2008/05/06 10:00:34 babyworm fix type Revision 1.6 2008/03/12 01:32:38 babyworm"

Transcription

1 for AE32000: An 32bit EISC microprocessor Processor Team, R&D center, ADChips Inc. Revision : 1.7 January 12, 2010 Advanced Digital Chips Inc.

2 Document revision histroy $Log: ae32000-isa-rm_ko.tex,v $ Revision /05/06 10:00:34 babyworm fix type Revision /03/12 01:32:38 babyworm modified hangul emph type Revision /03/12 01:28:47 pioneer Correct typo Revision /10/12 02:49:09 babyworm fix font Revision /10/12 02:32:43 babyworm fix format Revision /09/18 07:38:49 babyworm modify style Revision /09/18 05:45:41 babyworm Initially Added c Advanced Digital Chips Inc. All right reserved. No part of this document may be reproduced in any form without written permission from Advanced Digital Chips Inc. Advanced Digital Chips Inc. reserves the right to change in its products or product specification to improve function or design at any time, without notice. Office 14th Floor, Instopia Bldg., , Dogok-Dong, Gangnam-Gu, Seoul, , Korea. Tel : Fax : URL :

3 Contents 목차 2 1 Introduction About this Document Cautions Feedback About EISC Architecture About AE Programmer s Model Data Types Processor Modes 관리자 모드 사용자 모드 OSI 모드 General Purpose Registers Special Purpose Registers Status Register Program Counter(PC) Link Register(LR) Extenstion Register(ER) Multiply Result Registers CR0, CR SSP, ISP, USP

4 2.5 Exceptions Exception의 종류 ) Reset ) External Hardware Interrupt ) Software Interrupt ) Non Maskable Interrupt ) System Coprocessor Interrupt ) Coprocessor Interrupt ) Breakpoint & Watchpoint Interrupt ) Bus Error ) Double Fault ) Undefined Instruction Exception ) Unimplemented Instruction Exception Interrupt Vector Table Vector Base Exception Priority Memory Interface Address Space Endianness Unaligned Menory Access Prefetching & Self-Modifying Code Memory Map Memory Mapped I/O Instruction Set Highlights Binary Encoding Memory Access Move Branch Arithmetic & Logical Coprocessor Access DSP Acceleration Multiply and Accumulation Saturate Arithmetic

5 3.7.3 Unpack Miscellianeous JAVA Acceleration AE32000 Instructions ABS - absolute value ADC - addition with carry ADD - addition ADDQ - short immediate addition AND - bitwise AND ASL - Arithmetic Shift Left ASR - Arithmetic Shift Right AVGB - SIMD average (SIMD BYTE) AVGS - SIMD average (SIMD SHORT) BRKPT - instruction breakpoint CLR - clear a bit of status register CMP - compare CMPQ - short immediate compare CNT0 - count leading zeros CNT1 - count leading ones CPCMD - coprocessor command CVB - convert to byte CVS - convert to short EXEC - exception on coprocessor status EXJ - exchange Java mode EXTB - extension from byte EXTS - extension from short GETC - get a status from coprocessor HALT - halt instruction to save power consumption JAL - jump and link JALR - register indirect jump and link JC - jump on carry JGE - jump on signed greater or equal JGT - jump on signed greater

6 4.30 JHI - jump on unsigned higher JLE - jump on signed less or equal JLS - jump on unsigned lower or equal JLT - jump on signed less than JM - jump on minus JMP - jump always JNC - jump on not carry JNV - jump on not overflow JNZ - jump on not zero JP - jump on positive JPLR - jump to link register JR - register indirect jump JV - jump on overflow JZ - jump on zero LD - load 32-bit LDAU - Auto-Increment load LDB - load signed byte LDBU - load unsigned byte LDC - load on coprocessor LDI - load immediate LDS - load signed short LDSU - load unsigned short LEA - load effective address LERI - load extension register with immediate LSR - logical shift right MAC - multiply and add MACB - SIMD MAC BYTE MACS - SIMD MAC SHORT MAX - Maximum MFCR0 - move from CR MFCR1 - move from CR MFMH - move from MH MFML - move from ML MFMRE - move from MRE

7 4.64 MIN - Minimum MRS - multiply result shift and extraction MSOPB - SIMD MAC BYTE MSOPS - SIMD MAC SHORT MTCR0 - move to CR MTCR1 - move to CR MTMH - move to MH MTML - move to ML MTMRE - move to MRE MUL - signed multiply MULU - unsigned multiply MVFC - move from coprocessor MVTC - move to coprocessor NEG - negate NOP - no operation NOT - logical inversion OR - bitwise OR POP - pop list PREFD - data cache prefetch PREFI - instruction cache prefetch PUSH - push list ROL - rotete left ROR - rotete right SADD - saturated addition SADDB - signed saturated addition (SIMD BYTE) SADDS - signed saturated addition (SIMD SHORT) SADUB - unsigned saturated addition (SIMD BYTE) SADUS - unsigned saturated addition (SIMD SHORT) SBC - subtract with carry SET - set status register SSL - set shift left STAU - Auto-Increment store ST - store 32-bit STB - store byte

8 4.98 STC - store on coprocessor STEP - single step debugging STS - store short SUB - subtract SWI - software interrupt SYNC - synchronization TST - test(logical compare) UPKHS - unpack short to higher part UPKLS - unpack short to lower part UPK0HB - unpack 0 byte to higher part UPK0LB - unpack 0 byte to lower part UPK1HB - unpack 1 byte to higher part UPK1LB - unpack 1 byte to lower part UPK2HB - unpack 2 byte to higher part UPK2LB - unpack 2 byte to lower part UPK3HB - unpack 3 byte to higher part UPK3LB - unpack 2 byte to lower part XOR - bitwise XOR A 찾아보기 259 7

9 List of Tables 2.1 상태 레지스터의 각 비트 정의 및 설정 방법 Counter Register의 각 필드 정의 및 동작 인터럽트 우선 순위 Memory Access Instructions Move Instructions Branch Instructions Arithmetic & Logical Instructions Coprocessor Access Instructions Multiply and Accumulation Instructions Saturate Instructions Unpack Instructions DSP 기타 Instructions JAVA Instructions Bank에 따른 POP list Bank에 따른 PUSH list

10 List of Figures 2.1 사용에 주의하여야 할 범용 레지스터 Status Register Counter Register field Exception 처리 과정 인터럽트 벡터 테이블의 구성 Endianess Instruction Set Highlights SIMD MAC 연산의 동작 Saturate Arithmetic Unpack 연산의 동작

11 This page intentionally left blank TRADEMARKS EISC R 는 Advacned Digital Chips Inc.의 등록상표입니다. AE32000 R 은 Advacned Digital Chips Inc.의 등록상표입니다. AMBA R, AHB R, AXI R, APB R 는 ARM Inc.의 등록상표입니다. GNU toolchain은 GPL/LGPL을 따릅니다. 기타 각사의 등록 상표는 각사의 소유입니다. 10

12 Chapter 1 Introduction 본 매뉴얼은 32비트 EISC프로세서인 AE32000 명령어 셋 아키텍쳐에 대 한 전반적인 내용을 다루도록 한다. AE32000 명령어 셋 아키텍쳐(ISA)는 EISC(Extendable Instruction Set Architecture)를 기반으로 하며, 16비트 의 고정 길이 명령어 형식을 지니고 있다. 본 장에서는 다음과 같은 사항을 다루도록 한다. About this Document About EISC Architecture About AE

13 1.1. ABOUT THIS DOCUMENT About this Document 이 문서는 EISC 아키텍처 기반의 32비트 마이크로 프로세서 명령어 셋 아키텍처인 AE32000에 대하여 설명하려고 한다. 또한, AE32000 명령어 셋에서 정의 된 명령어들에 대하여 설명하고 사용법 및 주의 사항을 제시하기 위하여 작성되었다. 이 문서는 AE32000 프로세서를 이용하는데 알아야 하는 명령어에 대한 프로세서의 동작을 기술하는데 집중 하도록 한다 Cautions AE32000의 명령어 셋은 프로세서의 구현에 따라 확장/축소 될 수 있으므로, 자신의 프로 세서 참조 매뉴얼을 통하여 지원되는 명령어 및 특성을 알고 있어야 한다. 이 매뉴얼에서 는 해당 명령어가 공통적으로 적용되지 않는 경우에는 해당 명령이 어느 프로세서(혹은 variant)에서 사용 혹은 사용 불가능한지를 명시적으로 나타내도록 한다 Feedback 문서에 오류나 정정 사항이 있다면, 홈페이지 접속하셔서 알려주시거 나, 해주시면 감사드리겠습니다.

14 1.2. ABOUT EISC ARCHITECTURE About EISC Architecture 내장형 프로세서는 일반적인 데이터 처리용 프로세서와 비교하여 보았을때 저가, 저전력 이 중요한 부분을 차지한다. 수행 프로그램이 ROM의 형태로 저장되는 내장형 프로세서 분야에서 수행 프로그램의 크기를 효과적으로 줄임으로 다이(die)에 있어서 많은 크기를 차지하는 ROM의 크기를 줄일 수 있으므로 조금 더 저가의 내장형 시스템을 공급할 수 있다. EISC(Extendable Instruction Set Computer)는 수행 프로그램의 크기 및 메모리 접근 의 회수를 매우 효과적으로 줄일 수 있도록 설계된 명령어 셋으로서, 확장 명령어를 이용 하여 명령어의 즉치 값 및 변위 등의 값을 자 유롭게 확장할 수 있는 형태를 지닌 아키 텍쳐로서 기존의 CISC와 RISC의 장점을 합친 형태를 취하고 있다. EISC는 기본적으로 RISC가 갖고 있는 간단한 구조의 하드웨어를 취하면서도 CISC의 장점을 추가하여 높은 성능을 갖게 하였고, 코드 밀도가 높아 기존의 RISC 프로세서와 비교하여 약 60%, CISC 프로세서와 비교하여 약 80% 정도로 프로그램 크기가 작다는 장점을 지니고 있다. 따라 서, 코드 밀도가 중시되는 내장형 응용 분야에 있어서 강점을 지니고 있다. 기존의 CISC (Complex Instruction Set Computer) 기반의 마이크로 프로세서는 코드 밀도에 있어서 장 점이 있으나 고속화에 문제점을 지니고 있으며, RISC (Reduce Instruction Set Computer) 기반의 마이크로 프로세서는 대부분 32-bit 크기의 명령어를 지님으로 프로그램 코드의 크 기가 지나치게 커진다는 단점을 지니고 있다. EISC기반의 32-bit 마이크로 프로세서인 AE32000은 16-bit 크기의 명령어를 이용하여 32-bit 데이터를 효과적으로 처리할 수 있도록 설계되었다. 이는 ARM사의 Thumb 계열의 프로세서나 MIPS16에서도 채택하고 있는 방법이나, EISC 아키텍쳐의 경우 16-bit 크기의 명령어 사용으로 인한 즉치 값(immediate value) 공간의부족을 이전의 접근 방식과는 다 르게 독립적으로 사용 가능한 LERI(Load Extension Register and set E) 명령을 이용하는 것으로 해결하였다. LERI명령은 2비트 Op-Code와 14비트 즉치 값을 가지는 명령으로서 ER(Extension Register)에 즉치 값을 저장하고, 이후에 즉치 값의 확장이 필요한 명령에 서 ER의 값을 인출하여 해당 명령어의 즉치 값과 덧붙이는 구조를 지니고 있다. 이러한 구조의 장점은 앞에서 기술한 바와 같이 짧은 즉치 값의 크기로 인하여 발생 가능한 문제 를 효과적으로 해결 할 수 있다는 것이나, LERI의 부가로 인하여 코드의 길이가 길어질 수 있다는 문제와 성능의 저하를 가져 올 수 있다는 문제를 지니고 있다. 따라서, EISC 기반의 프로세서는 이 LERI를 효과적으로 처리하는 것이 중요하다.

15 1.2. ABOUT EISC ARCHITECTURE 14 AE32000은 EISC기반의 32-bit 마이크로 프로세서로서 Low-End용 32-bit 마이크로 프 로세서인 SE3208의 특징에 부가적으로 더 깊은 파이프라인과 OSI(On-Silicon In Circuit Emulator) 지원 기능, 캐쉬 및 가상 메모리의 지원기능, LERI 명령어 폴딩 기능등을 추 가하여 성능을 향상시킨 프로세서이다. 본 사용자 매뉴얼은 고성능 EISC(Extendable Instruction Set Computer) Family중 32bit버전인 AE32000에 대하여 다루도록 한다.

16 1.3. ABOUT AE About AE32000 AE32000은 EISC 아키텍쳐를 기반으로 하고 있는 32-bit 프로세서를 위한 명령어 셋 아 키텍처이다. 이 명령어 셋은 16비트 명령어를 이용하여 32비트 데이터 패스를 제어하는 축약 코드 RISC(Compressed Code RISC)의 형태적 특징을 지니고 있음으로써, 코드 밀 도가 상대적으로 훌륭하며, EISC 아키텍처 특유의 즉치 확장 기능을 통하여 쉽게 32비트 즉치값의 생성이 가능함으로써, 즉치 연산이 용이하고, 32비트 메모리 영역에 대한 주소 생성이 간단하다는 장점을 지니고 있다. AE32000 아키텍처는 그 구현에 있어서 프로세서의 처리 효율을 향상시키기 위하여 분리된 명령어/데이터 버스를 지니는 Separated-Bus 아키텍처 1 를 채용하며, 즉치 확장을 위한 leri 2 명령어를 좀더 효과적으로 처리하기 위한 LERI instruction folding 기법이 적 용된다. AE32000 명령어 셋 아키텍처는 보조 프로세서를 통한 기능 확장성을 지니고 있으며 4개의 보조 프로세서와 연결 가능한데, 보조 프로세서 0번은 시스템 보조 프로세서로 1 번은 부동 소수점 연산 보조 프로세서로 예약 되어 있다. AE32000 명령어 셋 아키텍처는 다음과 같이 몇 가지 Revision을 지니고 있다. 해당 명 령어 셋은 binary 수준에서 하위 호환성을 지니고 있으나, AE32000A와 AE32000B간에는 곱셈의 결과 저장 방식이 다르므로, 호환성이 떨어진다. 1. AE32000A: 초기 AE32000 아키텍처. 현재 사용하지 않음 2. AE32000B: MH/ML 및 기본적인 DSP가 추가된 ISA. 3. AE32000C: 사용되지 않는 PREFD, PREFI 명령등이 제외 혹은 시스템 보조 프로세서 의 기능으로 변경되었으며, DSP 기능 확장, JAVA 기능 확장 및 명령어 추가. (a) AE32000C-DSP: SIMD DSP 확장 명령어가 추가 됨 (b) AE32000C-Tiny: 저전력 프로세서를 위하여 DSP 명령어 중 일부 제한 (c) AE32000C-JAVA: JAVA 하드웨어 가속기를 위하여 확장 명령어가 추가 됨 1 Harvard Architecture라고도 불린다 2 즉치값 확장을 위하여 사용되는 명령어. 159페이지의 4.53절을 참조하라

17 Chapter 2 Programmer s Model 본 장에서는 프로그래머 관점에서의 AE32000 프로세서 기반의 SoC에서 프로그램을 작성하는데 있어서 필요한 사항을 기술하도록 한다. 16

18 2.1. DATA TYPES Data Types AE32000은 32비트 데이터 처리를 기반으로 하고 있으므로 word의 크기는 32비트가 된 다. AE32000은 다음과 같은 형식의 데이터 처리를 지원한다. 또한, 각 데이터는 signed 와 unsigned number가 지원된다. byte : 8 bits, char short : 16 bits, short int word : 32 bits, int, long int 32비트간의 곱셈을 수행하는 경우 그 결과는 64비트로 표현 될 수 있다. 64비트 값의 길이는 컴파일러에 따라 그 정의가 다르다. MSC_VER : signed 64bit int, signed int64 GNUC : signed long long

19 2.2. PROCESSOR MODES Processor Modes 많은 프로세서들은 동작 모드를 구분함으로서 사용자 프로그램의 잘못된 프로그램으로 인하여 프로세서가 오 동작하는 것을 방지하고 있다. AE32000은 기존의 프로세서들이 가지고 있는 관리자 모드 및 사용자 모드 이외에 디버깅시에 사용할 수 있는 OSI 모드를 지니고 있다. 다음은 AE32000이 지원하는 프로세서 모드들이다. 관리자 모드 (Supervisor mode) 사용자 모드 (User mode) OSI 모드 (OSI mode) 관리자 모드 : 관리자 모드는 모든 자원에 대한 접근이 가능한 모드로서, OS와 같이 자 원 관리를 담당하는 프로그램들이 사용하는 모드이다. 프로세서의 모드를 구분함으로서 사용 자원 관리에 있어서 안정성을 높이기 위하여 사용된다. 사용자 모드에서 SWI를 통 하여 진입 가능하며, POP SR을 통하여 이전 프로세서 모드로 복귀 가능하다. 관리자 모드에서 사용자 모드, 혹은 OSI모드로 전환할 때 SET, CLR을 통하여 processor mode 를 직접 바꿈으로서 모드를 바꾸는 것은 시스템 초기 이외에는 권장되지 않으며, 반드시 사용이 필요한 경우 주의하여야 한다. 사용자 모드 : 사용자 모드는 사용자 프로그램이 수행되는 모드로서, 일반 용도의 프로 그램이 구동되는 부분이다. 사용자에서는 사용자에게 할당된 자원(할당된 메모리 영역 및 보조 프로세서)에 대한 접근만이 가능하며, 만일 사용자에게 할당되지 않은 자원에 접근 하는 경우 violation이 발생한다. OSI 모드 : 프로세서의 동작을 디버깅하기 위한 모드로서, 관리자 모드의 권한과 동일 한 자원 접근 권한을 지닌다. 단, 관리자 모드와 구분되는 스택 영역을 지니고 있으므로, 관리자 모드에서의 각 레지스터 상태를 보다 정확하고 쉽게 찾아낼 수 있다는 장점이 있 다. (물론, 이러한 동작은 관리자 모드에서 세심한 프로그램을 통하여 찾아낼 수 있으나, OSI모드를 사용하는 경우 모니터 프로그램 및 관리가 간단하다는 장점을 지닌다.)

20 2.3. GENERAL PURPOSE REGISTERS General Purpose Registers AE32000은 16개의 범용 레지스터를 지니고 있으므로, 데이터를 위한 메모리의 잦은 접근 을 줄일 수 있다는 장점을 지닌다. ae32000-elf-gcc를 이용하여 컴파일 하는 경우 5번과 7 번 레지스터는 frame pointer과 index register로서 사용되도록 지정되어 있으므로, 인라인 어셈블러에서 이 레지스터를 사용할 때는 주의를 기울여야 한다. 일반적으로 8번과 9번 레지스터는 argument passing을 위하여 사용되므로, 만일 인자 에 대한 처리를 인라인 어셈블러를 통하여 하고자 할때 이 레지스터들의 사용에 주의하여 야 한다. 2개 이상의 인자가 사용될 경우에는 부족한 인수들을 stack을 이용하여 passing 한다. 컴파일러에서 레지스터를 할당할 때는 0, 1, 2, 3, 4, 6, 10, 11, 12, 13, 14, 15의 순서로 할당을 선호하게 된다. 자세한 사항은 ae32000-elf-gcc혹은 소프트웨어 레퍼런스 매뉴얼을 참조. 번 호 목 적 5 Frame Pointer 7 Index Register 8 Argument 0 9 Argument 1 Figure 2.1: 사용에 주의하여야 할 범용 레지스터

21 2.4. SPECIAL PURPOSE REGISTERS Special Purpose Registers AE32000에는 9개의 특수 목적 레지스터와 3개의 스택 포인터 레지스터들이 존재하며, 이중 각 동작 모드에서 사용되는 스택 포인터(SSP, ISP, USP)를 제외한 모든 특수 목적 레지스터들은 PUSH/POP되는 것이 가능하다 Status Register AE32000의 동작 상태 혹은 설정을 나타내는 레지스터로서 SET/CLR 명령에 의하여 15~0 번 비트까지 조절 할 수 있다. 단, 15~8번 비트의 경우 관리자 모드에서만 변경 가능하며, 사용자 모드에서 15~8번 비트를 변경하고자 하는 경우 아무런 영향을 미치지 않는다 Proc. Proc. Processor Reserved Version Revision Reserved J STEP Mode NMI ENI VI E Endianess Mode L C Z S V Family Always 0 (Hi) (Lo) Processor ID Tag Step Mode Enable Non- JAVA Mode Maskable Interrupt Enable Interrupt Extension Flag Auto-vectored Interrupt When VI is 0. Lock Carry Zero EISC Proc. Mode [15,9] 00: Supervisor Mode 01: OSI Mode 10: User Mode Sign Overflow Figure 2.2: Status Register Table 2.1: 상태 레지스터의 각 비트 정의 및 설정 방법 Tag Width Description Processor Family 4bit 프로세서의 종류를 나타낸다. AE32000C-Lucida 프로세서의 경우 AE32000 Family로서 4 번 을 지닌다. Version 4bit 프로세서의 버전을 나타낸다. AE32000C-Lucida 프로세서의 경우 AE32000의 세번째 버전인 C 버전에 해당하므로, 3 값을 지닌다. Revision 4bit 프로세서의 revision을 나타낸다. Revision은 동일한 명령어 셋 아키텍쳐 및 구성에서 마이크로 아키텍쳐적으로 작은 수정이 가해진 경우이다. AE32000C-Lucifer : 0 AE32000C-Lucida : 1

22 2.4. SPECIAL PURPOSE REGISTERS 21 Table 2.1: 상태 레지스터의 각 비트 정의 및 설정 방법(계속) Tag Width Description J 1bit JAVA Flag를 의미한다. JAVA 응용 프로그램을 JAVA 하드웨어 가속기를 사용하여 실 행 시키는 경우에 사용된다. SET/CLR 명령을 이용하여 프로 세서의 모드를 변경시킬 수 없다. Bit Setting 0 : EISC Mode 1 : JAVA Mode STEP 1bit Single Step Mode를 의미한다. 디버깅 기능 중에 Single Step 기능을 활성화 시킨 경우를 의미 한다. Single Step Mode가 적용되는 경우 하나의 명령어(LERI 제외)가 실핼된 후 자동적으로 OSI exception이 발생하게 된다. Single Step Mode는 관리자 모드 및 사용자 모드에서만 적용 되며, OSI 모드에서는 Single Step Mode로 지정되어 있더라도 Single Step 기능을 수행하지 않는다. Bit Setting 0 : Disable 1 : Enable Proc Mode 2bit Processor Operation Mode를 의미한다. SR의 15번째 bit와 9번째 bit의 조합으로서 구성되며, 프로세서 의 현재 동작을 나타낸다. SET/CLR 명령을 이용하여 프로세 서의 상태를 변경시킬 수 있으나, 이는 권장되지 않는다. Bit Setting 00 : Supervisor Mode 01 : OSI Mode 10 : User Mode 11 : Undefined Mode

23 2.4. SPECIAL PURPOSE REGISTERS 22 Table 2.1: 상태 레지스터의 각 비트 정의 및 설정 방법(계속) Tag Width Description NMI 1bit Non Maskable Interrupt Enable을 의미한다. Non Maskable Interrupt(NMI)를 받아들일 것인지 결정한다. Bit Setting 0 : Disalbe 1 : Enable INT 1bit Interrupt Enable을 의미한다. 외부 인터럽트를 받아들일 것인지 결정한다. Bit Setting 0 : Disable 1 : Enable VI 1bit Vectored Interrupt Mode를 의미한다. 외부 인터럽트의 처리 방식을 vectored 형식으로 할 것인지 auto vectored 형식으로 할 것인지 결정한다. Bit Setting 0 : Autovectored Interrupt 1 : Vectored Interrupt E 1bit Extension Flag를 의미한다. Bit Setting 0 : Normal Instruction 1 : Extenstion Instruction

24 2.4. SPECIAL PURPOSE REGISTERS 23 Table 2.1: 상태 레지스터의 각 비트 정의 및 설정 방법(계속) Tag Width Description Endian 1bit Endianess를 의미한다. 프로세서의 Endian 형식을 결정한다. 이 비트는 Power-On Configuration으로서 동작 중간에 변경할 수 없다. Bit Setting 0 : Little Endian Mode 1 : Big Endian Mode L 1bit Lock Flag를 의미한다. Lock은 프로세서의 Automic processing 동작에 설정된다. 이 bit이 설정되어 있는 경우 프로세서는 NMI와 INT가 disable된 것 처럼 동작한다. Bit Setting 0 : Disable 1 : Enable - Locking Mode C 1bit Carry Flag를 의미한다. 이전 연산의 결과에서 Carry가 발생한 경우 설정된다. Bit Setting 0 : Carry Not Occured 1 : Carry Occured Z 1bit Zero Flag를 의미한다. 이전 연산의 결과가 0 인 경우 설정된다. Bit Setting 0 : Result isn t Zero 1 : Result is Zero

25 2.4. SPECIAL PURPOSE REGISTERS 24 Table 2.1: 상태 레지스터의 각 비트 정의 및 설정 방법(계속) Tag Width Description S 1bit Sign Flag를 의미한다. 이전 연산의 결과가 음수인 경우 설정된다. Bit Setting 0 : Positive result 1 : Negative result V 1bit Overflow Flag를 의미한다. 이전 연산의 과정에서 Overflow가 발생한 경우 설정된다. Bit Setting 0 : Overflow Not Occured 1 : Overflow Occured Program Counter(PC) 프로그램의 수행 위치를 가르키는 레지스터로서 다음에 수행되어야 할 명령의 주소를 지 니고 있다. 단, 파이프라인 프로세서에서는 여러 개의 명령이 동시에 수행되고 있으므로, ID 단계에서 수행되는 명령을 기준으로 PC값이 설정되며, 분기가 결정된 경우 분기 목적 주소가 PC로 설정된다. 주의) 0bit은 항상 0 값을 가진다 Link Register(LR) Jump and Link 형식의 분기( JAL, JALR 명령)를 수행하는 경우 복귀할 주소(link address) 를 저장한다. 분기에서의 복귀는 JPLR명령을 이용하여 LR에 저장된 주소로 분기할 수 있으며, 만일 중첩된 분기에서 복귀할 때는 PUSH LR, POP PC의 명령어 Sequence를 이용할 수도 있다. 주의) 0bit은 항상 0 값을 가진다

26 2.4. SPECIAL PURPOSE REGISTERS Extenstion Register(ER) LERI 1 명령을 통하여 설정되며, 즉치값이나 오프셋을 확장하는데 이용되며, 이 레지스 터의 값은 SR의 E-flag가 1 인 경우에만 valid하다. AE32000 계열의 프로세서는 LERI Folding기능을 지니고 있으므로, 아키텍쳐/마이크로아키텍쳐 수준에서 실제로 사용하지 는 않는다. 따라서, ER을 PUSH하는 경우 0 의 값이 PUSH되며, POP의 경우에도 프로 세서의 동작상에 영향을 주지 않는다. 따라서, 실제적인 아키텍쳐 수준에서 ER은 dummy 로 동작한다. 단, UDI(Undefined Instruction Interrupt)의 경우나 UII(Unimplemented Instruction Interrupt)에서는 해당 명령을 인터럽트 핸들러에서 분석하여 동작을 수행하기 위하여 ER 의 값을 GAP(General Access Pointer) 형태로 보존한다 Multiply Result Registers Multiply Result Register는 곱셈( MUL, MULU / MAC 연산 및 MAC 관련 DSP 동작의 결과를 저장하는 레지스터로서 일반적인 경우에 64 비트의 크기를 지닌다. 이 결과 값의 상위 32비트는 MH로, 하위 32비트는 ML로 지정된다. MAC 연산의 경우 이 레지스터들은 accumulation register로서 사용되며, DSP 확장 옵션 2 을 사용한 경우 accumulator의 정확 성을 잃지 않기 위하여 MRE 레지스터가 부가적으로 사용되어 Multiply Result Register의 상위 16비트 3 를 추가적으로 확장 할 수 있다. MRE 4 레지스터는 일반적인 PUSH/POP 에 의하여 저장/복원될 수 없으므로, 값의 보존이 필요한 경우 반드시 범용 레지스터를 경유하여 PUSH/POP을 수행하여야 한다 CR0, CR1 자동 증가 메모리 지정 모드를 지원하기 위한 레지스터로서, 반복적인 for loop 및 DSP 연산을 효과적으로 지원하기 위하여 사용된다. 다음과 같은 주소 모드가 지원되며, 주소 모드에 따라 각 비트의 용도가 변경된다. 그림. 2.3과 표. 2.2는 각각 Counter Register의 필드 정보와 모드별 동작에 대한 기술이다. Auto Increment Mode : 12비트 카운터를 자동으로 incrementor만큼 증가 시킨다. 카운터는 항상 POST Increment된다. AE32000C 프로세서군에서 모두 사용할 수 있다. 1 Load Extension Register with Immediate : 즉치 값으로서 ER을 확장하는 명령 2 이 옵션에 대한 자세한 사항은 AE32000C-Lucida Processor User Guide를 참조 3 구현에 따라 다를 수 있으나, 일반적으로 16비트가 추가된다 4 MUL/MULU 명령어들은 이 레지스터를 사용하지 않는다. MAC과 연관성 있는 명령어들만 사용한다. 단 MAC 명령어와 연관성이 있는 명령어를 이용하는 경우에도 AE32000C-Lucida version에서만 MRE를 이용할 수 있다.

27 2.4. SPECIAL PURPOSE REGISTERS E O F F M O D E In c r C N T M A S K Figure 2.3: Counter Register field Auto Increment with End-offset Compare Mode : 12비트 카운터를 자동으로 incrementor만큼 증가 시킨다. 카운터는 항상 POST Increment되며 EOFF과의 비교는 PRE Increment 값이 사용된다. 카운터가 EOFF과 같을 경우 zero-flag가 인가된다. AE32000C 프로세서군에서 모두 사용할 수 있다. Wrap-around Auto Increment Mode : 12비트 카운터를 자동으로 incrementor만큼 증가 시킨다. 메모리 주소는 항상 POST Increment된다. 단, 카운터 값이 MASK에 의해 마스킹되므로 cicular 형태로 메모리 접근이 일어난다. DSP 확장 옵션을 사용해야 해당 모드를 사용할 수 있다. Wrap-around Auto Increment with End Check Mode : 기본 동작은 Wrap-around Auto Increment Mode와 같다. 단, 카운터가 0 이 되는 경우 zero-flag가 인가 된다. 이때 비교에 사용되는 카운터는 POST Increment된 값을 사용한다. DSP 확장 옵션을 사용해야 해당 모드를 사용할 수 있다. Bit Reverse Mode : 카운터를 n-bit에 대해 증가 시키되, 이를 n-bit 단위로 bit reverse하여 메모리 주소를 생성한다. 이때, n-bit는 MASK에 의해 결정된다. 예를들어 카운터가 0x1이고 MASK가 0xF인 경우, 메모리 주소의 오프셋 값은 0x8 이 되고, 카운터가 0x3이고 MASK가 0xFF인 경우, 메모리 주소의 오프셋 값은 0xC0 가 된다. DSP 확장 옵션을 사용해야 해당 모드를 사용할 수 있다.

28 2.4. SPECIAL PURPOSE REGISTERS 27 Table 2.2: Counter Register의 각 필드 정의 및 동작 Tag Width Description Mode 4bit Counter Register의 동작 모드를 결정한다. 주소 모드를 지정하며, 지정된 모드에 따라 Counter Register의 다른 필드의 역할이 결정된다. Bit Setting 0000 : Auto Increment Mode 0001 : Auto Increment with End-offset Compare Mode 0100 : Wrap-around Auto Increment Mode 0101 : Wrap-around Auto Increment with End Check Mode 0110 : Bit Reverse Mode Incrementor 4bit Counter의 증분을 나타낸다. Counter에 더해질 계수를 지정한다. 현재는 항상 4 의 값이 사 용된다. Bit Setting 0000 : 4 End Offset 12bit 최종 값을 나타낸다. Auto Increment with End-offset Compare Mode에서 최종 값 으로 사용된다. Counter 값이 최종 값과 일치하는 경우 SR의 zero-flag가 설정된다. Mask 12bit 몇 비트 연산을 수행할 것인지 결정한다. Wrap-around Mode 및 Bit Reverse Mode에서 몇 비트 연산을 수행할 것인지 결정한다. Wrap-around Auto Increment with End Check Mode인 경우, 카운터가 최종 값에 이르면 SR의 zero-flag가 설정된다. Bit Reverse Mode에서는 Mask의 크기를 8비트 이하만 지원한 다. Counter 12bit Counter의 값을 나타낸다. 실제적인 카운터의 값을 지니고 있다. 이 값이 index register와 더해져서 메모리 접근 주소로 사용된다.

29 2.4. SPECIAL PURPOSE REGISTERS SSP, ISP, USP AE32000 프로세서는 각 프로세서 동작 모드에 해당하는 스택 포인터를 지닌다. 스택 포 인터는 스택 영역의 최상위 위치(가장 최근에 PUSH된 entry의 주소)를 지정하며, 하위 2 비트의 값은 항상 0 값을 지닌다. 스택의 성장은 항상 상위 주소에서 하위 주소 방향으로 이루어진다.(PUSH시 주소가 감소한다.) 스택 포인터는 프로세서 동작 모드에 따라 shadowing되며, 현재 프로세서 동작 모드 이외의 스택 포인터는 시스템 보조프로세서의 레지스터(SCPR13, SCPR14)를 통하여 접 근이 가능하다. SCPR13 : User Stack Pointer Supervisor Mode, OSI Mode 에서 USP에 접근할 수 있도록 한다. SCRP14 : OSI Stack Pointer / Supervisor Stack Pointer Supervisor Mode 에서 ISP에 접근할 수 있으며, OSI Mode 에서 SSP에 접근할 수 있도록 한다. 각 프로세서 동작 모드를 사용하기 위해서는 프로그래밍 초기에 해당 스택 포인터를 지정해 주어야만 한다. 이때 LEA명령을 이용해 현재 프로세서 동작 모드에 해당하는 스 택 포인터 값을 설정할 수 있다. 프로그램에서 하나 이상의 프로세서 동작 모드를 사용할 경우, 각 동작 모드를 변경해 가며 LEA 명령을 이용해 각 동작 모드에 해당하는 스택 포 인터 값을 설정할 수 있다. 하지만, 아래의 예와 같이 시스템 보조프로세서 레지스터를 이용하여 동작 모드의 변경 없이 다른 동작 모드의 스택 포인터를 설정할 수도 있다. 이때 시스템 보조프로세서 레지스터를 접근하기 위한 MVTC 명령이 사용된다.

30 2.5. EXCEPTIONS Exceptions Exception은 프로세서의 정상적인 흐름을 방해하는 모든 상황을 의미한다. AE32000 프 로세서는 프로그램 수행중에 exception이 발생하였을 경우, 그림. 2.4와 같은 과정을 통해 exception을 처리한다. 3) Get Interrupt Vector address Vector Table 2) Access Interrupt Vector Table 4) Jump to Interrupt Handler Interrupt Handler Function 5) Execute Interrupt Handler 1) Save context Stack 6) Resotre context Figure 2.4: Exception 처리 과정 1. Save context Exception 발생과 관련이 있는 명령이 있는지 확인하여, exception 처리 이후 해당 명령부터 다시 수행하기 위해 현재의 프로세서 상태 및 해당 명령의 주소를 스택 영역에 저장한다. 2. Access Interrupt Vector Table

31 2.5. EXCEPTIONS 30 발생된 exception의 종류에 해당하는 인터럽트 벡터 테이블에 접근한다 5. 인터럽트 벡터 테이블에 대한 자세한 내용은 2.5.2절을 참조하기 바란다. 3. Get Interrupt Vector address 인터럽트 벡터 테이블을 접근하여 exception을 처리하기 위한 인터럽트 핸들러의 함 수 포인터를 가지고 온다. 4. Jump to Interrupt Handler Exception을 처리하기 위한 인터럽트 핸들러 함수로 분기한다. 5. Execute Interrupt Handler Exception을 처리하기 위한 인터럽트 핸들러 함수를 수행한다. 인터럽트 핸들러에서 사용할 범용 레지스터들은 스택을 통해 보관되어야 하며, exception을 처리한 이후 인터럽트 핸들러 함수를 빠져 나올 때는 저장된 범용 레지스터와 함께 (1)단계에서 저장된 프로세서 상태 및 복구 명령의 주소를 복구시켜야 한다 Restore context 인터럽트 핸들러 함수를 수행한 이후 exception 발생 이전의 프로세서 상태로 복구 시킨다 Exception의 종류 1) Reset 코어 프로세서의 초기화 동작을 요구하고자 할 때, 외부에서 코어 프로세서로 입력해 주 는 신호를 통하여 발생한다. 이 인터럽트를 받는 경우 프로세서는 초기화를 수행한다. 초기화시 모든 범용 레지스터 및 특수 목적 레지스터는 unknown 값 또는 0 의 값으로 변경된다 7. 리셋 벡터는 Power-on Configration에 따라 달라진다. 2) External Hardware Interrupt 외부 하드웨어 모듈에서 요청하는 인터럽트를 의미한다. 현재 상태의 PC, SR 값을 관리 자 스택에 PUSH한 후 인터럽트 핸들러를 수행한다. 다른 PUSH가 필요한 레지스터들은 인터럽트 핸들러에 의하여 관리되어야 한다. 외부 인터럽트는 다음 두 가지 방식으로 인 터럽트 벡터를 지정할 수 있다. 5 인터럽트가 발생하면, 그 인터럽트의 종류에 따라 특정 번호가 주어지며 이를 기반으로 인터럽트 벡터 테이 블에 접근한다. 6 해당 동작은 인터럽트 핸들러 함수 앞부분에 #pragma interupt handler 를 추가하여 동작되는 부분이다. 자세한 내용은 Software User Guide 를 참조하기 바란다. 7 구현 모델에 따라 변경될 수 있다.

32 2.5. EXCEPTIONS 31 Auto-vectored Interrupt: 인터럽트 벡터가 지정되어 있는 경우로서, 인터럽트가 발생한 경우 내정되어 있는 인터럽트 벡터로 이동한다. Vectored Interrupt: 외부 인터럽트 컨트롤러에서 해당 인터럽트의 번호를 넘겨줌으로서, 인터럽트 벡터 의 위치를 판별하여 선택된 인터럽트 벡터로 이동한다. 3) Software Interrupt 소프트웨어적으로 발생시키는 인터럽트를 의미한다. 관리자의 자원을 사용자 모드에서 접근하고자 하는 경우 호출하며, 일반적으로 system call을 위하여 사용된다. 현재 상태 의 PC, SR 값을 관리자 스택에 PUSH한 후, 지정된 인터럽트 번호의 인터럽트 핸들러를 수행한다. 4) Non Maskable Interrupt 5) System Coprocessor Interrupt 메모리 접근 과정에서 발생하는 인터럽트들을 의미한다. Memory Management Unit에 의 해 발생되며, 다음과 같은 경우에 발생된다. Access violation: 관리자 영역으로 지정된 부분을 사용자가 접근하는 경우 Address alignment error: TLB miss: TLB를 사용하여 가상 주소를 접근하고자 할 때 TLB에 entry가 존재 하지 않는 경우 6) Coprocessor Interrupt 보조 프로세서의 접근 과정에서 발생하는 인터럽트를 의미한다. 또한, 이 인터럽트는 연 산을 수행하는 보조 프로세서의 연산 결과를 polling하여 발생시킬 수 있다. 보조 프로세 서 접근 과정에서 발생하는 인터럽트는 관리자 전용으로 지정된 보조 프로세서를 사용자 모드에서 접근할 때 발생한다.

33 2.5. EXCEPTIONS 32 7) Breakpoint & Watchpoint Interrupt OSI에서 제공하는 디버깅 기능을 제공하기 위한 인터럽트이다. OSI 모듈에서 지정된 breakpoint 8 와 watchpoint 9 의 조건을 만족하였을 때 이 인터럽트가 호출되어 프로세서의 동작 모드를 OSI 모드로 변경시킨다. 8) Bus Error 명령어 버스나 데이터 버스의 복구 불가능한 버스의 오류를 의미한다. 목적 주소에 메모 리가 존재하지 않는 경우 발생할 수 있다. 인터럽트 벡터 테이블 주소가 0x 으로 고정되어 있다 10. 9) Double Fault 인터럽트가 발생하여 인터럽트 핸들러로 진입하는 과정에서 오류가 발생한 경우를 의미 한다. 이 경우 supervisor stack의 영역에 문제가 있거나, 인터럽트 핸들러의 위치를 변경 시키는 Vector base register의 설정이 잘못되어 있는 경우 발생할 수 있다. 인터럽트 벡터 테이블 주소가 0x C로 고정되어 있다 ) Undefined Instruction Exception 정의되지 않은 명령이 입력된 경우 발생하는 예외이다. 이 경우 버전에 따라 오류를 발 생시키거나, NOP로 처리할 수 있다. 11) Unimplemented Instruction Exception 명령어 셋에는 정의되어 있으나, 해당 버전에서는 구현되어 있지 않은 명령을 의미한다. 이 경우 인터럽트를 통하여 소프트웨어적으로 에뮬레이션함으로서 값을 얻어낸다. 호환 성을 높이기 위하여 사용된다 Interrupt Vector Table Exception의 처리를 위하여 프로세서는 인터럽트 핸들러 함수를 읽어와야 하는데, 이 인 터럽트 핸들러 함수의 주소는 인터럽트 벡터 테이블에 존재한다. AE32000 프로세서의 인터럽트 벡터 테이블은 기본적으로 0x0번지에 존재하며, 뒤에 나올 2.5.3절에서 설명할 8 관찰할 명령어 접근 주소를 의미한다. 9 관찰할 데이터 접근 주소를 의미한다. 10 자세한 내용은 2.5.2절을 참조하기 바란다. 11 자세한 내용은 2.5.2절을 참조하기 바란다.

34 2.5. EXCEPTIONS 33 벡터 베이스를 변경하여 위치를 이동시킬 수 있다. 단, 몇 가지 인터럽트들의 벡터 위치 는 이동시킬 수 없다. 그림. 2.5는 벡터 테이블의 구성을 나타내며, 그림에서 shade 처리 되어 있는 인터럽트들은 벡터 위치를 이동시키는 것이 불가능하다. Word Size Reset 0x NMI 0x INT (auto) 0x Double Fault 0x C Bus Error 0x x Reserved 0x x C SCP exception 0x CP1 exception 0x CP2 exception 0x CP3 exception 0x C Reset (OSI) 0x OSI break 0x UDI 0x UII SWI 0x C 0x x C 0x INT (vectored) 0x FC Reset (OSIROM) 0xFFFF 0000 OSI break (OSIROM) 0xFFFF 0004 Figure 2.5: 인터럽트 벡터 테이블의 구성 인터럽트 벡터는 앞에서 언급하였듯이 0x0번지에 위치해야 하므로, C 컴파일러를 사 용하는 경우에는 loader script에서 반드시 이 위치가 0x0에 올 수 있도록 다음과 같이 memory layout을 지정하여야 한다. 1 SECTIONS 2 {

35 2.5. EXCEPTIONS 34 3 /* Read-only sections, merged into text segment: */ 4. = 0x0; 5.text : 6 { 7 *(.vects) // Interrupt vector location 위의.vects 는 section을 가르키는 symbol로서, 로더에서 이러한 section symbol을 기반 으로 메모리를 배치하게 된다. 물론, 이러한 section symbol은 코드 내에 존재해야 의미를 지닌다. 코드 내에 정의된.vects 는 다음과 같다. 1 void (*vector_table[])(void) attribute ((section (".vects")))= { 2 reset_vector, /* V00 : Reset Vector */ 3 nmi_autovector, /* V01 : NMI Vector */ 4 interrupt_autovector, /* V02 : Interrupt Auto Vector */ 5 double_fault_exception, /* V03 : Double fault Vector */ 6 bus_error_exception, /* V04 : Bus Error Exception */ 7 NOTUSEDISR, /* V05 : Reserved */ 8 NOTUSEDISR, /* V06 : Reserved */ 9 NOTUSEDISR, /* V07 : Reserved */ 10 coprocessor0_exception, /* V08 : Coprocessor0 Exception*/ 11 coprocessor1_exception, /* V09 : Coprocessor1 Exception*/ 12 coprocessor2_exception, /* V0A : Coprocessor2 Exception*/ 13 coprocessor3_exception, /* V0B : Coprocessor3 Exception*/ 14 osi_reset_vector, /* V0C : OSI reset vector */ 15 osi_break_exception, /* V0D : OSI break exception */ }; 위에서 볼 수 있듯이 벡터 테이블은 인자를 지니지 않고, 반환값을 지니지 않는 함수 포인터들의 배열로 이루어져 있다. 또한, 테이블의 속성으로서 section symbol을.vects 로서 지정하여 로더에서 이를 인식할 수 있도록 해 두었다.

36 2.5. EXCEPTIONS Vector Base 벡터 베이스란 인터럽트 벡터 테이블의 위치를 의미한다. 기본적으로 인터럽트 벡터 테 이블은 0x0번지에 위치하며, 벡터 베이스를 변경하여 인터럽트 벡터 테이블의 위치를 이 동시킬 수 있다. 단, 앞서 설명했듯이 몇 가지 인터럽트들의 벡터 위치는 이동시킬 수 없으며, 이동될 수 없는 벡터들은 그림. 2.5을(를) 참조하기 바란다. 벡터 베이스는 시스 템 보조 프로세서의 12번 레지스터인 벡터 베이스 레지스터에 저장되며, 이 값이 지정된 이후부터 대부분의 인터럽트는 변경된 인터럽트 벡터 테이블로부터 벡터 주소를 읽어온 다. 즉, 시스템 보조 프로세서의 12번 레지스터는 프로세서 리셋시 0의 값을 가지며, 레지 스터를 설정하게 되면 인터럽트 벡터 테이블의 위치가 변경되는 것이다. 이때, 단순히 인터럽트 벡터 테이블의 위치가 변경된 것이지 벡터 테이블의 데이터(인터럽트 핸들러의 주소)가 옮겨진 것은 아니다. 따라서, 기존의 인터럽트 벡터 테이블의 데이터를 복사한 위치이거나, 별도의 인터럽트 벡터 테이블이 존재하는 위치로 벡터 베이스를 지정하여야 한다. 벡터 베이스 레지스터는 벡터 테이블의 접근을 ROM 영역에서 RAM 영역으로 변경 하는 경우, 동작의 수행 시간을 단축시키고 인터럽트의 hooking을 가능하게 할 수 있 다. 벡터 베이스에서 지정된 벡터 테이블 영역은 가상 메모리를 사용하는 경우 반드시 TLB(Traslate Look-aside Buffer) 내에 존재해야 한다. 이는 AE32000 프로세서의 경우 software managed TLB를 채용하고 있으므로, 벡터 처리 과정 중에 벡터 테이블 접근에서 TLB miss exception이 발생하는 경우 불필요한 double fault가 발생할 수 있기 때문이다 Exception Priority AE32000 프로세서의 인터럽트는 인터럽트들 간의 우선 순위가 존재한다. 프로세서 내부 적으로 지니고 있는 우선 순위는 표. 2.3과 같다. 인터럽트 간의 우선 순위는 같은 시점에 서 발생한 하나 이상의 인터럽트의 우선 순위를 가리는데 사용되며, 일반적으로는 먼저 요청된 인터럽트가 우선한다. Table 2.3: 인터럽트 우선 순위 순위 설명 약어 1 Reset RST 2 Bus Error BERR 3 Double Fault DF 4 OSI Exception OSI 5 Coprocessor Exception CP

37 2.5. EXCEPTIONS 36 Table 2.3: 인터럽트 우선 순위(계속) 순위 설명 약어 6 System-Coprocessor Exception CP0 7 Non-Maskable Interrup NMI 8 Software Interrupt SWI 9 Interrupt INT 10 Halt HALT 11 Undefined Instruction Exception UDI 12 Unimplemented Instruction Exception UII

38 2.6. MEMORY INTERFACE Memory Interface Address Space AE32000은 32bit프로세서이므로 32bit주소 영역을 지니고 있다. 즉, 4GB 까지의 선형 메 모리 영역에 대한 접근이 가능하다. 내장형 응용 분야에서 4GB의 메모리를 요구하는 경 우는 매우 제한적이므 로, 실제 주소 영역을 제한할 수 있다. 하지만, 이러한 경우에도 시스템 보조 프로세서에서 제공하는 가상 주소를 이용하여 32비트 주소 영역을 사용할 수 있다 Endianness Endian이란 한 워드 내에서의 데이터를 어떠한 방향으로 정렬할 것인지를 규정하는 것 이다. Endian은 크게 Big Endian과 Little Endian으로 나뉜다. Big Endian은 말 그대로 워드의 큰 부분(상위)이 워 드의 끝에 위치하는 것을 나타내며, Little Endian은 말 그대 로 워드의 작 은 부분(하위)이 워드의 끝에 위치하는 것을 의미한다. 아래의 그림은 한 워드를 특정 위치에 저장한 경우의 그림이다. Figure 2.6: Endianess 위의 그림과 같이 Little Endian의 경우 작은 값을 워드의 하위에 위치시 킨다. Little Endian의 장점은 데이터의 크기와 관계없이 동일한 접근 방식 을 사용하면 되므로, 데 이터 크기가 커지는 math routine등에서 사용이 쉽다는 점이다. Big Endian의 경우 위의 그림에서와 같이 상위의 값이 워드의 하위에 위 치한다. Big Endian의 장점은 최상위 바 이트가 워드의 최하위에 위치하고 있으므로, 부호를 판별하기 용이하다는 장점을 지니고 있다. (즉, 데이터 길이와 관계없이 offset을 0으로 하고 바이트를 읽는 경우 그 데이터의

39 2.6. MEMORY INTERFACE 38 부호를 판별할 수 있다. 이는 byte단위로 입력되는 스트림에서 연산 종류 를 빠르게 결 정할 수 있다는 장점을 지닌다). 단점은 데이터의 크기가 바 뀌는 경우 그 접근 방식이 달라져야 한다는 점이다. AE32000은 구현에 따라 Little-Endian version과 Bi-Endian버전 이 있다. 또한 endian이 구분에 따라 다른 컴파일러를 이용해야 하므로 주의를 기 울여야 한다 Unaligned Menory Access 정렬되지 않은 메모리 접근은 워드 단위로 정렬된 메모리에서 워드 단위에서 나올 수 없는 주소로 워드에 접근을 시 도한 경우이다. 예를 들면 32bit시스템에서 0x2라는 주소로 워 드를 접근 하는 경우 메모리 구성상 0x0이라는 주소에서 상위 2바이트를 읽어오고, 0x4 라는 주소에서 하위 2바이트를 읽어와서 정렬해야 하는데, 이러한 메 모리 접근을 unaligned memory access라 한다. AE32000은 구현에 따라 unaligned memory access에 대 하여 exception 을 발생시키는 버전과 이를 지원하는 버전으로 구분된다. 이를 지원하지 않는 버전의 경우에도 exception handling을 통하여 이를 지원할 수 있으 므로, 큰 문제는 되지 않으나 속도 차이가 크게 날 수 있으므로 항상 염 두에 두고 프로그램을 작성하여야 한다 Prefetching & Self-Modifying Code 이 절에서는 프로그래밍에 주의해야 할 부분을 설명한다. Prefetching - Prefetch는 다수의 명령어를 프로세서에서 먼저 읽어 들이 는 동작을 의미한다. AE32000에서는 구현에 따라 틀리지만, 메모리와 프 로세서간의 속도 차 이를 극복하기 위하여 캐쉬 메모리를 사용하는 경우가 많다. 이 경우 캐쉬 미스가 발생한 경우 명령어 접근에 시간이 오래 걸리 며, 명령어 fetch가 끝날 때까지 프 로세서는 정지한다. Prefetch는 이러한 문제를 줄일 수 있는 방법으로서 사용된다. AE32000에서는 이외에 LERI 명령어의 folding을 위하여 사용된다. Self-Modifying Code - Self-Modifying Code 는 프로그램 수행 도중에 프 로그램 자체를 변경하는 프로그램을 의미한다. 이러한 프로그램은 네트웍 을 firmware 업 그레이드 등의 용도로 유용하게 사용될 수 있으나, 하드웨 어적인 복잡도나 context 의 관리가 어려워진다는 단점을 지니고 있으므로 대부분의 프로세서에서는 이를 허 용하지 않는다. AE32000는 기본적으로 자체 변경 코드를 지원하지 않으며, 이러한 동작 을 수행하기 위해서는 프로그램에서 변경할 프로그램을 일정 RAM영역에 둔 다음에 RESET interrupt 수행하도록 하고, 리셋 벡터 부분에서 해당 RAM영역의 데이터를 writeable-rom(eg. flash ROM)으로 옮기는 동작을 수행하면 된다.

40 2.6. MEMORY INTERFACE Memory Map AE32000는 기본적으로 최하위 주소에 벡터 테이블을 위치시키도록 되어 있으며, 이 부 분에 대해서는 변경 할 수 없다. (벡터 테이블의 위치는 Vector Base를 변경함으로서, 그 위치를 조정할 수 있으나 inexact exception processing을 하는 exception은 항상 0x0번지 를 지닌다 참조) 또한, 스택은 상위 주소 영역에서 하위 주소 영역으로 성장 하므 로, 스택 영역은 메모리의 상위 부분에 위치하여야 하며 충분한 공간 이 주어져야 한다. AE32000에서는 이 두 가지 조건을 만족하는 경우 어떠한 형태의 메모리 맵이라도 구성 가능하다 Memory Mapped I/O AE32000은 장치 접근을 위한 dedicated instruction이 없으며, 모두 memory mapped방 식을 취하고 있다. 이 장치들에 대한 메모리 할당은 버스에서 지정하는 것을 따르도록 한다.

41 Chapter 3 Instruction Set Highlights AE32000는 코드 밀도를 높이기 위하여 다양한 명령어를 갖추고 있다. 본 장에서는 AE32000의 명령어에 대한 대략적인 구분과 주의 사항에 대해 설명한다. 40

42 3.1. BINARY ENCODING Binary Encoding AE32000 프로세서의 binary encoding과 간략한 Mnemonic은 그림. 3.1과 같다. Mnemonic 에 사용된 지시어들은 다음과 같은 뜻을 가진다. dst 목적 레지스터(destination register)로 범용 레지스터 중의 하나를 뜻한다. 연산의 결과를 저장하는 레지스터이다. src, src1, src2 원천 레지스터(source register)로 범용 레지스터 중의 하나를 뜻한다. 연산에 사용 되는 오퍼랜드를 의미한다. idx 인덱스 레지스터(index register)로 범용 레지스터 중의 하나를 뜻한다. 1 index addressing에서 인덱스 값으로 사용된다. offset 즉치 값(immediate value)으로 정수 값을 가진다. index addressing, stack addressing, pc reltive program memory addressing에서 변위(offset) 값으로 사용된다. imm 즉치 값(immediate value)으로 정수 값을 가진다. 연산에 직접 사용되거나 LERI 명 령에 의해 확장되어 연산에 사용된다. list PUSH, POP 명령에 사용되는 범용 레지스터, 특수 목적 레지스터의 집합을 나타낸 다. sftamt 쉬프트 연산에 사용되는 쉬프트 횟수를 나타낸다. 정수 값으로 0에서 31 사이의 값 을 가진다. sftreg 쉬프트 연산에 사용되는 쉬프트 횟수를 간직하는 레지스터로 범용 레지스터 중의 하나를 뜻한다. 32비트 레지스터 가운데 하위 5비트가 사용된다. 1 LDAU, STAU 명령에서는 다른 의미를 가진다.

43 3.1. BINARY ENCODING 42 flag pos SET, CLR 명령에 사용되는 정수 값으로 상태 레지스터의 0에서 15 사이의 각 비트 를 나타낸다. or Counter Register의 number를 나타낸다. cpno 보조프로세서(Coprocessor)의 number를 나타낸다. 0에서 3 사이의 정수 값을 가진 다. src grp UNPACK 연산에 사용되는 연속된 두개의 범용 레지스터를 뜻한다. 하위에 0과 1 이 생략된 두 개의 범용 레지스터를 나타낸다.(예 ,5번 레지스터)

44 3.1. BINARY ENCODING 43 Figure 3.1: Instruction Set Highlights Instruction f e d c b a Mnemonic LD dst offset idx LD (idx, off), dst ST src offset idx ST src, (idx, off) LDB dst 0 offset idx LDB (idx, off), dst LDS dst 1 offset idx LDS (idx, off), dst STB dst 0 offset idx STB src, (idx, off) STS dst 1 offset idx STS src, (idx, off) LERI 0 1 imm LERI imm LDBU dst 0 offset idx LDBU (idx, off), dst LDSU dst 1 offset idx LDSU (idx, off), dst LD dst 0 offset LD (SP, off), dst ST src 1 offset ST src, (SP, off) LDI dst imm LDI imm, dst PUSH REG LIST(7,6,5,4,3,2,1,0) PUSH list PUSH (15,14,13,12,11,10,9,8) PUSH list PUSH (SR,PC,LR,ER,MH,ML,CR1,CR0) PUSH list POP REG LIST(7,6,5,4,3,2,1,0) POP list POP (15,14,13,12,11,10,9,8) POP list POP (SR,PC,LR,ER,MH,ML,CR1,CR0) POP list LEA(ASPO) offset LEA (SP, imm), SP MRS imm dst MRS imm, dst Reserved ADD dst src/imm ADD src/imm, dst ADC dst src/imm ADC src/imm, dst SUB dst src/imm SUB src/imm, dst SBC dst src/imm SBC src/imm, dst AND dst src/imm AND src/imm, dst OR dst src/imm OR src/imm, dst XOR dst src/imm XOR src/imm, dst CMP dst src/imm CMP src/imm, dst ASR dst 0 sftamt 0 0 ASR sftamt, dst LSR dst 0 sftamt 0 1 LSR sftamt, dst ASL dst 0 sftamt 1 0 ASL sftamt, dst SSL dst 0 sftamt 1 1 SSL sftamt, dst ASR dst 1 0 sftreg 0 0 ASR sftreg, dst LSR dst 1 0 sftreg 0 1 LSR sftamt, dst ASL dst 1 0 sftreg 1 0 ASL sftreg, dst SSL dst 1 0 sftreg 1 1 SSL sftreg, dst

45 3.1. BINARY ENCODING 44 Instruction f e d c b a Mnemonic ADDQ dst imm ADDQ imm, dst CMPQ dst imm CMPQ imm, src JNV offset JNV lable JV offset JV lable JP offset JP lable JM offset JM lable JNZ offset JNZ lable JZ offset JZ lable JNC offset JNC lable JC offset JC lable JGT offset JGT lable JLT offset JLT lable JGE offset JGE lable JLE offset JLE lable JHI offset JHI lable JLS offset JLS lable JMP offset JMP lable JAL offset JAL lable EXTB dst EXTB dst EXTS dst EXTS dst MFMRE dst MFMRE dst MTMRE src MTMRE src CVB dst CVB dst CVS dst CVS dst NEG dst NEG dst NOT dst NOT dst JR src JR src JALR src JALR src JPLR JPLR NOP NOP SWI imm SWI exception_no STEP STEP HALT imm HALT halt_level BRKPT BRKPT CNT src CNT0 src CNT src CNT1 src SET flag pos SET position CLR flag pos CLR position MTML src MTML src MTMH src MTMH src MFML dst MFML dst MFMH dst MFMH dst MTCR src MTCR0 src MTCR src MTCR1 src SYNC SYNC EXJ EXJ LEA(LSEA) idx LEA (idx, imm), SP LEA(LESA) dst LEA (SP, imm), dst MFCR dst MFCR0 dst MFCR dst MFCR1 dst AVGB dst 0 src/imm AVGB src/imm, dst AVGS dst 1 src/imm AVGS src/imm, dst

46 3.1. BINARY ENCODING 45 Instruction f e d c b a Mnemonic TST src2 src1 TST src1, src2 LEA dst idx LEA (idx, imm), dst ROR imm dst ROR imm, dst ROL imm dst ROL imm, dst MUL dst 0 src/imm MUL src/imm, dst MULU dst 1 src/imm MULU src/imm, dst MAC src2 src1/imm MAC src1/imm, src2 LDB offset dst LDB (SP, imm), dst LDS offset dst LDS (SP, imm), dst LDBU offset dst LDBU (SP, imm), dst LDSU offset dst LDSU (SP, imm), dst STB offset src STB src, (SP, imm) STS offset src STS src, (SP, imm) LDAU idx cr dst LDAU CRNO, idx, dst STAU idx cr src STAU CRNO, src, idx CPCMD cpno 0 0 cpcmd CPCMD CPNO, cpcmd GETCn cpno status GETC CPNO, bit_position EXECn cpno status EXEC CPNO, bit_position MVTCn cpno dst MVTC CPNO, cpdst MVFCn cpno src MVFC CPNO, cpdst LDCn cpno dst LDC CPNO, (R1, imm), cpdst LDCn cpno dst LDC CPNO, (SP, imm), cpdst STCn cpno src STC CPNO, cpsrc, (R1, imm) STCn cpno src STC CPNO, cpsrc, (SP, imm) Reserved MACB src2 src1/imm MACB src1/imm, src2 MACS src2 src1/imm MACS src1/imm, src2 MSOPB src2 src1/imm MSOPB src1/imm, src2 MSOPS src2 src1/imm MSOPS src1/imm, src2 SADDB dst src/imm SADDB src/imm, dst SADDS dst src/imm SADDS src/imm, dst SADUB dst src/imm SADUB src/imm, dst SADUS dst src/imm SADUS src/imm, dst SADD dst src/imm SADD src/imm, dst UPKLS src_grp 0 dst UPKLS src_grp, dst UPKHS src_grp 1 dst UPKHS src_grp, dst MIN dst 0 src/imm MIN src/imm, dst MAX dst 1 src/imm MAX src/imm, dst ABS dst ABS dst Reserved UPK0LB src_grp 0 dst UPK0LB src_grp, dst UPK0HB src_grp 1 dst UPK0HB src_grp, dst UPK1LB src_grp 0 dst UPK1LB src_grp, dst UPK1HB src_grp 1 dst UPK1HB src_grp, dst UPK2LB src_grp 0 dst UPK2LB src_grp, dst UPK2HB src_grp 1 dst UPK2HB src_grp, dst UPK3LB src_grp 0 dst UPK3LB src_grp, dst UPK3HB src_grp 1 dst UPK3HB src_grp, dst

47 3.2. MEMORY ACCESS Memory Access AE32000 프로세서에서 지원되는 메모리 접근 명령들은 표. 3.1에 나열되어 있다. Table 3.1: Memory Access Instructions Class Details Mnemonic Load Word LD (%Ri/%SP, imm), %Rd Byte (unsigned) Byte (signed) Short (unsigned) Short (signed) Word (auto increment) LDBU (%Ri/%SP, imm), %Rd LDB (%Ri/%SP, imm), %Rd LDSU (%Ri/%SP, imm), %Rd LDS (%Ri/%SP, imm), %Rd LDAU CRNO, %Ri, %Rd Load Multiple Pop POP reg list Store Word ST %Rs, (%Ri/%SP, imm) Byte Short Word (auto increment) STB %Rs, (%Ri/%SP, imm) STS %Rs, (%Ri/%SP, imm) STAU CRNO, %Rs, %Ri Store Multiple Push PUSH reg list Byte, Short(Half Word), Word 크기로 접근이 가능하며, Load의 경우 Byte/Short 크 기의 데이터를 signed/unsigned extension을 통해 32비트 레지스터에 채울 수 있다. PUSH/POP 명령은 하나의 명령을 통해 다수의 레지스터에 대한 Load/Store를 할 수 있다. LD/ST auto increment 명령어들은 AE32000C 버젼에서 지원하는 DSP연산(Auto Increment Mode)을 강화하기 위해 추가되었다.

48 3.3. MOVE Move AE32000에서 지원되는 레지스터간의 데이터 이동 명령들은 표. 3.2에 나열되어 있다. Table 3.2: Move Instructions Class Details Mnemonic Move Move MOV %s, %d Move with add Move from GPR to MH Move from GPR to ML Move from MH to GPR Move from ML to GPR Move from GPR to MRE Move from MRE to GPR Move from GPR to CR0 Move from GPR to CR1 Move from CR0 to GPR Move from CR1 to GPR LEA (%Rs/%SP, imm), %Rd/%SP MTMH %Rs MTML %Rs MFMH %Rd MFML %Rd MTMRE %Rs MFMRE %Rd MTCR0 %Rs MTCR1 %Rs MFCR0 %Rd MFCR1 %Rd 범용 레지스터간의 데이터 이동은 MOV 명령을 사용한다. 범용 레지스터와 스택 포이터간의 데이터 이동은 LEA 명령을 사용하며, 이동시에 즉치값을 같이 더하여 이동할 수 있다. 이때 즉치값은 32비트 singed number 이므로, 실제적으로 가/감산이 가능하다. 범용 레지스터와 특수 목적 레지스터간의 데이터 이동은 MTxx, MFxx 명령을 사용 하며, 즉치값이 더해질 수 없다. 단, 음영 부분의 명령어는 AE32000C에서만 지원한다.

49 3.4. BRANCH Branch 분기 명령은 프로그램의 흐름을 제어하는 동작을 수행하는 명령으로서, 조건 분기와 무 조건 분기로 나뉜다. AE32000 프로세서에서는 코드 밀도를 향상시키기 위하여 다양한 형태의 조건 분기를 지원한다. 분기 명령들은 표. 3.3에 나열되어 있다. Table 3.3: Branch Instructions Class Details Mnemonic Branch Jump JMP label Jump and Link Jump on overflow clear Jump on overflow set Jump on sign clear (positive or zero) Jump on sign set (negative) Jump on non-zero (not equal) Jump on zero (equal) Jump carry clear (unsigned higher or equal) Jump carry set (unsigned lower) Jump signed greater Jump signed less Jump signed greater or equal Jump signed less or equal Jump unsigned higher Jump unsigned lower or equal Jump register indirect Jump register indirect and Link Jump to LR(Link Register) JAL label JNV label JV label JP label JN label JNZ label JZ label JNC label JC label JGT label JLT label JGE label JLE label JHI label JLS label JR %Rs JALR %Rs JPLR 분기의 목적 주소는 다음 두 가지 형태로 지정할 수 있다. PC-relative : 현재 PC값을 기준으로 offset 만큼 분기하는 방식으로 가장 일 반적으로 사용되는 형태이다. offset의 값은 32bit singend값이 될 수 있어 가/ 감산이 가능하다. Register indirect : 범용 레지스터의 값을 이용해 분기하는 방식으로서, dynamic linked library 등의 함수를 연결할 때 사용된다. AE32000 프로세서의

50 3.4. BRANCH 49 구현에서는 PC-relative 방식보다 더 많은 분기 패널티가 존재한다. JAL, JALR 명령은 분기의 시점에서 현재 PC값을 LR(Link Register)에 저장하며, JPLR 명령을 통해 복귀할 수 있다.

51 3.5. ARITHMETIC & LOGICAL Arithmetic & Logical AE32000 프로세서에서는 기본적인 산술 연산 이외에 DSP에서 사용할 수 있는 다양한 연산 기능(32비트 배럴 쉬프트, MAC연산, leading 0/1 count)을 제공한다. Table 3.4: Arithmetic & Logical Instructions Class Details Mnemonic flag Arithmetic Add ADD %Rs/imm, %Rd C Z S V Add with short immediate ADDQ imm5, %Rd C Z S V Add with carry ADC %Rs/imm, %Rd C Z S V Substract SUB %Rs/imm, %Rd C Z S V Substract with carry SBC %Rs/imm, %Rd C Z S V Negate NEG %Rd Logical AND AND %Rs/imm, %Rd Z S OR OR %Rs/imm, %Rd Z S XOR XOR %Rs/imm, %Rd Z S NOT NOT %Rd Z S Test TST %Rs1/imm, %Rs2 Z S Compare Compare CMP %Rs1/imm, %Rs2 C Z S V Compare with short immediate CMPQ imm5, %Rs C Z S V Shift Arithmetic shift right ASR %Rc/imm5, %Rd C Z S Logical shift right LSR %Rc/imm5, %Rd C Z S Arithmetic shift left ASL %Rc/imm5, %Rd C Z S Set shift left SSL %Rc/imm5, %Rd C Z S Multiply Multiply MUL %Rs/imm, %Rd Multiply unsigned Multiply and accumulate MULU %Rs/imm, %Rd MAC %Rs/imm, %Rs2 Misc Extension from byte to word EXTB %Rd Z S Extension from short to word EXTS %Rd Z S Convert from word to byte CVB %Rd Z S Convert from word to short CVS %Rd Z S Count leading zero CNT0 %Rs Z Count leading one CNT1 %Rs Z

52 3.5. ARITHMETIC & LOGICAL 51 각 연산의 결과에 의해 변경되는 flag는 표. 3.4에 표시되어 있다. 대부분의 연산 기능의 경우 %Rs 대신 즉치값을 이용하는 것이 가능하며, 이때 즉치 값은 32bit singed number가 된다. MUL, MULU 연산의 %Rd는 짝수 범용 레지스터(R0, R2, R4,...)만 가능하다.

53 3.6. COPROCESSOR ACCESS Coprocessor Access AE32000 프로세서는 시스템 보조 프로세서 이외에 3개 까지의 보조 프로세서를 연결하는 것이 가능하다. 보조 프로세서를 접근하기 위한 명령들은 표. 3.5에 나열되어 있다. Table 3.5: Coprocessor Access Instructions Class Details Mnemonic flag Coprocessor Instruction CPCMD coproc command Move from Coproc. to GPR MVFC Move from GPR to Coproc. MVTC Check status bit in Coproc. GETC imm4 Z Load from memory to Coproc. LDC CPNO, (%Ri, imm), %Rd@CP Store from Coproc. to memory STC CPNO, %Rs@CP, (%Ri, imm) Exception on Coproc. status EXEC imm4 Z MVTC, MVFC 명령은 범용 레지스터 0번을 이용한 데이터 전달만 가능하다. LDC, STC 명령은 시스템 보조 프로세서와 같이 사용될 수 없다. LDC, STC 명령의 인덱스 레지스터는 스택 포인터 또는 범용 레지스터 2 1번이 이 용된다. EXEC 명령은 보조 프로세서의 상태 비트를 이용하여 Coprocessor Interrupt를 발 생시킨다. 2 스택 포인터를 이용한 이유는 스택 기반의 주소 indexing이 빈번하기 때문이며, GPR 1 번의 경우는 명령어 인코딩 용량 관계로 임의로 지정하여 사용하였다.

=

= written by vangelis(vangelis@wowhacker.org) 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111 110112 + 100012 = 1011002 110 0000 0101

More information

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

Microsoft 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 information

hwp

hwp 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 information

Chapter ...

Chapter ... 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

Deok9_Exploit Technique

Deok9_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 information

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

Microsoft 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

ARM01

ARM01 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 information

hlogin2

hlogin2 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 information

T100MD+

T100MD+ 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

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

(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

Microsoft PowerPoint - hy2-12.pptx

Microsoft PowerPoint - hy2-12.pptx 2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출

More information

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

INTRO 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 information

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

Microsoft 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 information

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

Microsoft PowerPoint - 05-ARM-Instruction-Set.ppt ARM 명령어집합 임베디드시스템소프트웨어 I 내용 ARM 구조 프로세서수행모드 레지스터구조 예외처리과정 ARM 명령어형식 조건수행접미사 데이터처리명령어 곱셈명령어 Load/Store 명령어 다중레지스터 Load/Store 스택명령어 SWI 명령어 Branch 명령어 상태레지스터접근명령어 명령어요약 ARM 명령어집합 2 ARM 구조특징 모든명령어가 32bit

More information

SRC PLUS 제어기 MANUAL

SRC 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 information

Microsoft Word - FunctionCall

Microsoft 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 information

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

Microsoft PowerPoint - hw8.ppt [호환 모드] 8.1 데이터경로와제어장치 Chapter 8 데이터경로와제어장치 많은순차회로의설계는다음의두부분으로구성 datapath: data의이동및연산을위한장치 control unit에상태신호제공 control ol unit: datapath th 에서적절한순서로 data 이동및연산을수행할수있도록제어신호제공. 먼저, datapath를설계 다음에, control unit

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

[8051] 강의자료.PDF

[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 information

Remote UI Guide

Remote 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 information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

Microsoft PowerPoint - polling.pptx

Microsoft 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

ºÎ·ÏB

ºÎ·Ï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 information

歯FDA6000COP.PDF

歯FDA6000COP.PDF OPERATION MANUAL AC Servo Drive FDA6000COP [OPERATION UNIT] Ver 1.0 (Soft. Ver. 8.00 ~) FDA6000C Series Servo Drive OTIS LG 1. 1.1 OPERATION UNIT FDA6000COP. UNIT, FDA6000COP,,,. 1.1.1 UP DOWN ENTER 1.1.2

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<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

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

ARM Reverse Engineering

ARM 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

MicrocontrollerAcademy_Lab_ST_040709

MicrocontrollerAcademy_Lab_ST_040709 Micro-Controller Academy Program Lab Materials STMicroelectronics ST72F324J6B5 Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun

More information

MAX+plus II Getting Started - 무작정따라하기

MAX+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 information

Microsoft Word - Installation and User Manual_CMD V2.2_.doc

Microsoft Word - Installation and User Manual_CMD V2.2_.doc CARDMATIC CMD INSTALLATION MANUAL 씨앤에이씨스템(C&A SYSTEM Co., Ltd.) 본사 : 서울특별시 용산구 신계동 24-1(금양빌딩 2층) TEL. (02)718-2386( 代 ) FAX. (02) 701-2966 공장/연구소 : 경기도 고양시 일산동구 백석동 1141-2 유니테크빌 324호 TEL. (031)907-1386

More information

CANTUS Evaluation Board Ap. Note

CANTUS 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 information

Microsoft Word - ExecutionStack

Microsoft 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 information

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

Microsoft 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

Microsoft PowerPoint - CHAP-03 [호환 모드]

Microsoft PowerPoint - CHAP-03 [호환 모드] 컴퓨터구성 Lecture Series #4 Chapter 3: Data Representation Spring, 2013 컴퓨터구성 : Spring, 2013: No. 4-1 Data Types Introduction This chapter presents data types used in computers for representing diverse numbers

More information

untitled

untitled CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power

More information

APOGEE Insight_KR_Base_3P11

APOGEE 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 information

Introduction to LMC

Introduction to LMC Introduction to LMC 황선태 국민대학교컴퓨터공학부 Layout of the Little Man Computer 10 12 123 00 01 02 03 97 98 99 Mailboxes 100 개의박스가있는데각박스에는 00 에서 99 까지의주소가할당되어있고그안에는 3 자리숫자가써있는종이한장이들어있다 이때각메일박스의내용과주소는같은개념이아니므로혼동하면안된다

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

Microsoft PowerPoint - o8.pptx

Microsoft 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 information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<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 information

untitled

untitled 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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 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 information

강의10

강의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 information

untitled

untitled 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

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

API 매뉴얼

API 매뉴얼 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 information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

9

9 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

인켈(국문)pdf.pdf

인켈(국문)pdf.pdf M F - 2 5 0 Portable Digital Music Player FM PRESET STEREOMONO FM FM FM FM EQ PC Install Disc MP3/FM Program U S B P C Firmware Upgrade General Repeat Mode FM Band Sleep Time Power Off Time Resume Load

More information

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

2. 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

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

Microsoft PowerPoint - a8a.ppt [호환 모드] 이장의내용 8 장고급프로시저 스택프레임 재귀 (Recursion) Invoke, Addr, Proc, Proto 디렉티브 다중모듈프로그램작성 2 8.2 스택프레임 Stack Frame ( 또는 activation record) procedure 의다음사항을저장한 영역 urn address passed parameter ( 스택매개변수 ) saved register

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<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 information

歯설명서_020925_.PDF

歯설명서_020925_.PDF GMPC-III (Protocol Converter-III) USER S MANUAL 1 1 1 4 2 5 2.1 5 2.2 5 2.3 6 3 7 3.1 7 4 8 4.1 8 4.2 8 5 GMPC-III 9 5.1 9 5.2 I-NET 9 5.3 ( ) 9 5.4 ( ) ( ) 10 6 12 6.1 12 7 GMPC-III 13 7.1 CPU 13 7.2

More information

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

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

No Slide Title

No 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 information

핸디로더(PGM-500) 사용자 메뉴얼

핸디로더(PGM-500) 사용자 메뉴얼 PLC PGM-500 1. 1.1 PGM-500... 1.2... 1.3... 2. 2.1... 2.2... 3. 4. 5. 6. 3.1... 3.2... 4.1 (EDIT)... 4.2 (MONITOR)... 4.3 (SYSTEM)... 5.1... 5.2... 5.3 Timer/Counter/SR... 5.4... 5.5... 5.6... 6.1...

More information

1217 WebTrafMon II

1217 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

1

1 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 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

목차 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

구문 분석

구문 분석 컴파일러구성 제 10 강 중간언어 / 인터프리터 Motivation rapid development of machine architectures proliferation of programming languages portable & adaptable compiler design --- P_CODE porting --- rewriting only back-end

More information

C# Programming Guide - Types

C# 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 information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여

More information

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

Here 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 information

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

. 고성능마이크로프로세서 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

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

슬라이드 1

슬라이드 1 명령어집합 주소지정모드 (addressing mode) 내용 명령어는크게연산자부분과이연산에필요한주소부분으로구성 이때주소부분은다양한형태를해석될수있으며, 해석하는방법을주소지정방식 ( 모드 )(addressing mode) 라한다. 즉피연산자정보를구하는방법을주소지정방식이라고함 명령어형식 주소지정 명령어형식에있는주소필드는상대적으로짧다. 따라서지정할수있는위치가제한된다.

More information

Computer Architecture

Computer Architecture 명령어의구조와주소지정방식 명령어세트명령어의형식주소지정방식실제명령어의형태 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 2.4 명령어세트 (instruction set) 어떤 CPU 를위하여정의되어있는명령어들의집합 명령어세트설계를위해결정되어야할사항들 2 연산종류 (operation repertoire) CPU 가수행할연산들의수와종류및복잡도

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

untitled

untitled CAN BUS RS232 Line CAN H/W FIFO RS232 FIFO CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter PROTOCOL Converter CAN2RS232 Converter Block Diagram > +- syntax

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

온라인 IT 교육최강 (  강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1 - 2. 중앙처리장치 (Central Processing Unit) 주기억장치에기억된명령을꺼내서해독하고, 시스템전체에지시신호를내는장치명령코드가명령을수행할수있게필요한제어기능을제공제어장치의구성

More information

BJFHOMINQJPS.hwp

BJFHOMINQJPS.hwp 제1 과목 : 디지털 전자회로 1. 다음 회로의 출력전류 Ic 의 안정에 대한 설명 중 옳지 않은 것 Ie를 크게 해치지 않는 범위 내에서 Re 가 크면 클수록 좋 출력파형이 크게 일그러지지 않는 범위 내에서 β 가 크면 클수록 좋 게르마늄 트랜지스터에서 Ico가 Ic 의 안정에 가장 큰 영향을 준 Rc는 Ic 의 안정에 큰 영향을 준 6. 비동기식 모드 (mode)-13

More information

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

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

More information

IoT FND8 7-SEGMENT api

IoT FND8 7-SEGMENT api IoT FND8 7-SEGMENT api http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고 CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.

More information

Microsoft PowerPoint - ch07.ppt

Microsoft PowerPoint - ch07.ppt chapter 07. 시스코라우터기본동작 한빛미디어 -1- 학습목표 시스코라우터외적, 내적구성요소 시스코라우터부팅단계 시스코라우터명령어모드 한빛미디어 -2- 시스코라우터구성요소 라우터외부구성요소 (1) [ 그림 ] 2600 라우터전면도 인터페이스카드 전원부 LED 라우터조건 한빛미디어 -3- 시스코라우터구성요소 라우터외부구성요소 (2) [ 그림 ] VTY 를이용한라우터접속

More information

PRO1_09E [읽기 전용]

PRO1_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 information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. 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 information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

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

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 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 information

슬라이드 1

슬라이드 1 사용 전에 사용자 주의 사항을 반드시 읽고 정확하게 지켜주시기 바랍니다. 사용설명서의 구성품 형상과 색상은 실제와 다를 수 있습니다. 사용설명서의 내용은 제품의 소프트웨어 버전이나 통신 사업자의 사정에 따라 다를 수 있습니다. 본 사용설명서는 저작권법에 의해 보호를 받고 있습니다. 본 사용설명서는 주식회사 블루버드소프트에서 제작한 것으로 편집 오류, 정보 누락

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1) [ Version 1.3 ] Access Point,. Access Point IP 10.0.0.1, Subnet Mask 255.255.255.224, DHCP Client. DHCP Server IP IP,, IP 10.0.0.X. (Tip: Auto Sensing Straight, Cross-over.) step 1]. step 2] LAN. step

More information

Microsoft PowerPoint - 강의2.ppt

Microsoft PowerPoint - 강의2.ppt Chap 2. Embedded Processors 서경대학교컴퓨터공학과교수이광엽 kylee@skuniv.ac.kr Embedded Processors Embedded processors 발전 Microprocessors 발전 better fabrication technology standalone microcontrollers integrated processors

More information

The_IDA_Pro_Book

The_IDA_Pro_Book The IDA Pro Book Hacking Group OVERTIME force (forceteam01@gmail.com) GETTING STARTED WITH IDA IDA New : Go : IDA Previous : IDA File File -> Open Processor type : Loading Segment and Loading Offset x86

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

6주차.key

6주차.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 information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

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

FARA PLC N70plus 시스템 사용자 메뉴얼 FARA PLC N70plus FARA PLC N70plus FARA PLC N70plus FARA PLC N70plus RUN h P U S H h i RUN PROG. ERROR COMM1 COMM2 REMOTE PROG. INITIALIZE (CPL9216A) (CPL9215A) FARA PLC N70plus CPL9215A CPL9216A CPL93023

More information

Manufacturing6

Manufacturing6 σ6 Six Sigma, it makes Better & Competitive - - 200138 : KOREA SiGMA MANAGEMENT C G Page 2 Function Method Measurement ( / Input Input : Man / Machine Man Machine Machine Man / Measurement Man Measurement

More information

MR-3000A-MAN.hwp

MR-3000A-MAN.hwp ITS Field Emulator for Traffic Local Controller [ MR-3000A ] User's Manual MORU Industrial Systems. www.moru.com - 1 - 1. 개요 MR-3000A는교통관제시스템에있어서현장용교통신호제어기의개발, 신호제어알고리즘의개발및검증, 교통신호제어기생산 LINE에서의자체검사수단등으로활용될수있도록개발된물리적모의시험장치이다.

More information

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

-. 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 information

R50_51_kor_ch1

R50_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