IA-32
IA-32IA-32 ("Intel Architecture, 32-bit"[3]의 줄임말, i386이라고도[1][2] 함)는 인텔에 의해 설계되어 1985년에 80386 마이크로프로세서에 처음 구현된 x86 명령 집합 아키텍처의 32비트 버전입니다.IA-32는 32비트 [4]컴퓨팅을 지원하는 x86의 첫 번째 화신입니다.따라서 "IA-32"라는 용어는 32비트 [5][6]컴퓨팅을 지원하는 모든 x86 버전을 지칭하는 메타네임으로 사용될 수 있습니다.
다양한 프로그래밍 언어 지침에서 IA-32는 여전히 "i386" 아키텍처로 언급되기도 합니다.일부 다른 맥락에서 IA-32 ISA의 특정 반복은 80486, P5 및 P6 마이크로아키텍처가 각각 제공하는 명령어 슈퍼셋을 참조하여 i486, i586 및 i686으로 분류되기도 한다.이러한 업데이트는 기본 IA-32 세트와 함께 부동 소수점 기능 및 MMX 확장을 포함한 수많은 추가 기능을 제공했습니다.
인텔은 역사적으로 IA-32 프로세서의 가장 큰 제조원이며 AMD 다음으로 큰 공급원이었습니다.1990년대에는 VIA, Transmeta 및 기타 칩 제조원에서도 IA-32 호환 프로세서(WinChip 등)를 생산했습니다.현대에 들어서도 인텔은 2019년까지 인텔 Quark 마이크로컨트롤러 플랫폼 하에서 IA-32 프로세서를 생산하고 있었습니다.그러나 2000년대 이후 대부분의 제조원(인텔 포함)은 x86, x86-64의 64비트 베리에이션을 기반으로 한 CPU 구현으로 거의 독점적으로 이행하여 사양상 동작하는 레거시 동작 모드를 제공하고 있습니다.n IA-32 ISA의 하위 호환성.현재 x86-64가 널리 보급되어 있지만, 2018년 현재 많은 최신 운영 체제의 IA-32 보호 모드 버전은 여전히 유지되고 있습니다. 예를 들어 Microsoft Windows(Windows 10 이전, Windows 11에는 x86-64 호환 프로세서가 x86-64 버전의 [7]x86-64 호환 프로세서가 필요합니다.) 및 Debian Linux [8]배포판이 있습니다.IA-32의 이름에도 불구하고(그리고 약간의 혼란을 야기함), AMD에서 유래한 64비트 x86의 진화는 ""로 알려져 있지 않습니다.IA-64"는 인텔의 Itanium 아키텍처에 속하는 명칭입니다.
아키텍처의 특징
IA-32의 주요 정의 특성은 32비트 범용 프로세서 레지스터(EAX 및 EBX 등), 32비트 정수 연산 및 논리 연산, 보호 모드 세그먼트 내의 32비트 오프셋 및 32비트 선형 주소로의 변환입니다.디자이너들은 다른 개선사항도 함께 만들었습니다.(16비트 286 명령어세트에 비해) 가장 중요한 변경의 일부를 다음에 나타냅니다.
- 32비트 정수 기능
- 모든 범용 레지스터(GPR)는 16비트에서 32비트로 확장되며, 모든 산술 및 논리 연산, 메모리 대 레지스터 및 레지스터 대 메모리 연산 등은 32비트 정수로 직접 동작할 수 있다.스택에서 푸시 및 팝을 실행하면 디폴트로 4바이트의 진폭이 되며 세그먼트화되지 않은 포인터의 폭은 4바이트입니다.
- 보다 일반적인 어드레싱 모드
- 메모리 레퍼런스에서는 어떤 GPR도 베이스 레지스터로서 사용할 수 있고 ESP 이외의 GPR도 인덱스 레지스터로서 사용할 수 있다.인덱스 레지스터 값에 1, 2, 4, 또는 8을 곱한 후 베이스 레지스터 값과 변위에 추가할 수 있습니다.
- 추가 세그먼트 레지스터
- FS와 GS라는 두 개의 세그먼트 레지스터가 추가로 제공됩니다.
- 가상 주소 공간 확대
- IA-32 아키텍처에서는 세그먼트 내에 16비트세그먼트 번호와 32비트 오프셋이 있는 48비트세그먼트 주소 포맷이 정의되어 있습니다.세그먼트 주소는 32비트 선형 주소에 매핑됩니다.
- 디맨드 페이징
- 32비트 선형 주소는 물리 주소가 아닌 가상 주소입니다.페이지 테이블을 통해 물리 주소로 변환됩니다.80386, 80486 및 원래의 Pentium 프로세서에서는 물리 주소는 32비트였습니다.Pentium Pro 이후의 프로세서에서는 물리 주소 확장으로 36비트의 물리 주소를 사용할 수 있었습니다.단, 리니어 주소 사이즈는 32비트였습니다.
동작 모드
동작 모드 | 필요한 운영 체제 | 실행 중인 코드 유형 | 기본 주소 크기 | 기본 오퍼랜드 크기 | 표준 GPR 폭 |
---|---|---|---|---|---|
보호 모드 | 32비트 운영체제 또는 부트 로더 | 32비트 보호 모드코드 | 32비트 | 32비트 | 32비트 |
16비트 보호 모드 운영체제, 부트로더 또는 32비트 부트로더 | 16비트 보호 모드코드 | 16비트 | 16비트 | 16비트 또는 32비트 | |
가상 8086 모드 | 16비트 또는 32비트 보호 모드 운영 체제 | 16비트 리얼 모드코드 | 16비트 | 16비트 | 16비트 또는 32비트 |
리얼 모드 | 16비트 리얼모드 운영체제 또는 부트로더 또는 32비트 부트로더 | 16비트 리얼 모드코드 | 16비트 | 16비트 | 16비트 또는 32비트 |
언리얼 모드 | 16비트 리얼모드 운영체제 또는 부트로더 또는 32비트 부트로더 | 16비트 리얼 모드코드 | 32비트 | 16비트 | 16비트 또는 32비트 |
「 」를 참조해 주세요.
레퍼런스
- ^ "DITTO". BSD General Commands Manual. Apple. December 19, 2008. Archived from the original on June 2, 2012. Retrieved August 3, 2013.
Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc.
- ^ "Additional Predefined Macros". software.intel.com. Intel. Archived from the original on February 15, 2021. Retrieved November 25, 2020.
- ^ Kemp, Steve. "Running 32-bit Applications on 64-bit Debian GNU/Linux". Debian Administration. Archived from the original on September 16, 2013. Retrieved August 31, 2013.
- ^ "Intel 64 and IA-32 Architectures Software Developer's Manual". Intel Corporation. September 2014. p. 31. Archived from the original on January 26, 2012. Retrieved December 19, 2014.
The Intel386 processor was the first 32-bit processor in the IA-32 architecture family. It introduced 32-bit registers for use both to hold operands and for addressing.
- ^ Green, Ronald W. (May 5, 2009). "What do IA-32, Intel 64 and IA-64 Architecture mean?". software.intel.com. Intel. Archived from the original on December 19, 2014. Retrieved December 19, 2014.
- ^ "Supported Hardware". Ubuntu Help. Canonical. Archived from the original on December 19, 2014. Retrieved August 31, 2013.
- ^ "Windows 10 System Requirements & Specifications Microsoft". www.microsoft.com. Archived from the original on May 1, 2018. Retrieved August 20, 2018.
- ^ "Debian GNU/Linux on x86 Machines". Archived from the original on April 28, 2019. Retrieved August 20, 2020.