리셋 벡터
Reset vector컴퓨팅에서 리셋 벡터는 중앙 처리 장치가 리셋 후 처음 실행할 명령을 찾기 위해 가는 기본 위치다.재설정 벡터는 포인터 또는 주소로서, CPU는 항상 명령을 실행할 수 있는 즉시 시작해야 한다.이 주소는 CPU를 포함하는 시스템을 부팅하는 과정의 첫 번째 단계로서 CPU의 작동을 시작하기 위한 지침을 포함하도록 초기화된 비휘발성 메모리의 한 섹션에 있다.
프로세서
- 8086 프로세서의 재설정 벡터는 물리적 주소 FFFF0h(1MB 미만 16바이트)에 있다.재설정 시 CS 레지스터의 값은 FFFFh이고 재설정 시 IP 레지스터의 값은 0000h로 분할 주소 FFFFh:0000h를 형성하며, 이 주소는 물리적 주소 FFFF0h에 매핑된다.[1]
- 80286 프로세서의 재설정 벡터는 물리적 주소 FFFFF0h(16MB 미만 16바이트)에 있다.재설정 시 CS 레지스터의 값은 설명자 베이스가 FF0000h로 설정된 F000h이고 재설정 시 IP 레지스터의 값은 FFF0h로 분할된 주소 FF000h를 형성한다.FFF0h(실제 모드에서의 물리적 주소 FFFFF0h에 매핑).[2]이는 CS 레지스터를 수정하지 않고도 보호 모드로 전환될 수 있는 충분한 공간을 확보하기 위해 변경되었다.[3]
- 80386 이상 x86 프로세서의 재설정 벡터는 물리적 주소 FFFFF0h(4GB 미만 16바이트)이다.재설정 시 CS 레지스터의 선택기 부분의 값은 F000h이고, CS 레지스터의 기본 부분의 값은 FFFF0000h이며, 재설정 시 IP 레지스터의 값은 FFF0h로[4] 분할된 주소 FFFF0000h를 형성한다.FFF0h, 실제 모드의 실제 주소 FFFFF0h에 매핑된다.[5][6]
- PowerPC/Power ISA 프로세서의 리셋 벡터는 32비트 프로세서의 경우 0x00000100, 64비트 프로세서의 경우 0x000000000100의 유효주소에 있다.
- m68k Architecture 프로세서의 리셋 벡터는 초기 인터럽트 스택 레지스터(IISR; 실제로 리셋된 벡터가 아니며 리셋 후 스택 포인터를 초기화하는 데 사용된다.)의 경우 0x0이고 초기 프로그램 카운터(리셋)[7]의 경우 0x4이다.
- SPARC 버전 8 프로세서의 리셋 벡터는 0x00이고 SPARC 버전 9 프로세서의 리셋 벡터는 전원 켜기 리셋의 경우 0x20, 감시기 리셋의 경우 0x40, 외부에서 시작된 리셋의 경우 0x60, 소프트웨어 시작 리셋의 경우 0x80이다.[8][9]
- MIPS32 프로세서의 재설정 벡터는 KSEG1 비 캐시 가능 영역의 마지막 4 MB에 위치한 가상 주소 0xBFC00000에 있다.[10][11]코어는 재설정 시와 예외가 인식되면 커널 모드로 전환되므로 가상 주소를 물리적 주소에 매핑할 수 있다.[12]
- ARM 프로세서 제품군의 재설정 벡터는 주소 0x0[13] 또는 0xFF이다.FF0000. 정상 실행 중에는 RAM을 원래 ROM 기반 벡터 테이블과 비교하여 성능을 향상시키기 위해 이 위치에 다시 매핑한다.[14]
참고 항목
참조
- ^ "iAPX 86,88 User's Manual" (PDF). Intel. 1981. System Reset, p. 2-29, table 2-4. Retrieved April 15, 2018.
- ^ "AMD 80286 Datasheet" (PDF). AMD. 1985. p. 13.
the 286 begins execution in real mode with the instruction at physical location FFFFF0H.
- ^ "iAPX 286 Programmer's Reference Manual" (PDF). Intel. 1983. Appendix D, iAPX 86/88 Software Compatibility Considerations, p. D-2. Retrieved April 15, 2018.
After reset, CS:IP = F000:FFF0 on the iAPX 286. This change was made to allow sufficient code space to enter protected mode without reloading CS.
- ^ "80386 Programmer's Reference Manual" (PDF). Intel. 1990. Section 10.1 Processor State After Reset, pages 10-1 - 10.3.
- ^ "80386 Programmer's Reference Manual" (PDF). Intel. 1990. Section 10.2.3 First Instruction, p. 10-4. Retrieved November 3, 2013.
Execution begins with the instruction addressed by the initial contents of the CS and IP registers. To allow the initialization software to be placed in a ROM at the top of the address space, the high 12 bits of addresses issued for the code segment are set, until the first instruction which loads the CS register, such as a far jump or call. As a result, instruction fetching begins from address 0FFFFFFF0H.
- ^ "Intel® 64 and IA-32 Architectures Software Developer's Manual" (PDF). Intel. May 2012. Section 9.1.4 First Instruction Executed, p. 2611. Retrieved August 23, 2012.
The first instruction that is fetched and executed following a hardware reset is located at physical address FFFFFFF0h. This address is 16 bytes below the processor’s uppermost physical address. The EPROM containing the software-initialization code must be located at this address.
- ^ Labrosse, Jean J. (2008). Embedded Software. Newnes. ISBN 9780750685832.
- ^ The SPARC Architecture Manual, Version 8. SPARC International. p. 75.
- ^ The SPARC Architecture Manual, Version 9. SPARC International. pp. 109–112.
- ^ "MIPS32 Architecture For Programmers; Vol III: The MIPS32 Privileged Resource Architecture" (PDF). MIPS Technologies.
- ^ Noergaard, Tammy (2005-02-28). Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers. Elsevier. ISBN 9780080491240.
- ^ "MIPS32 M4K Processor Core Software User's Manual" (PDF). cdn2.imgtec.com. August 29, 2008. Archived from the original (PDF) on 2017-08-26.
- ^ "5.9.1. Vector Table and Reset". Cortex-M3 Technical Reference Manual. Retrieved 2017-11-10.
- ^ "Boot sequence for an ARM based embedded system -2 - DM". www.embeddedrelated.com. Retrieved 2017-11-10.