x86 - 위키백과, 우리 모두의 백과사전 x86 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 x86 아키텍처 16비트 1978 IA - 16 1982 실제 모드 비실제 모드 보호 모드 32비트 1986 IA - 32 가상 8086 모드 1989 부동 소수점 장치 내장 1995 물리 주소 확장 ( PAE ) 1997 MMX 1997 3DNow! 1999 SSE 2000 SSE2 2001 3DNow! 프로페셔널 2004 SSE3 2006 SSE4 64비트 ( x64 ) 2003 AMD64 ( x86 - 64 ) 롱 모드 NX 비트 2004 EM64T ( IA - 32e ) 범례 : 아키텍처 프로세서 모드 명령 집합 x86 또는 80x86은 인텔이 개발한 마이크로프로세서 계열을 부르는 말이자, 이들과 호환되는 프로세서들에서 사용한 명령어 집합 구조들을 통칭하는 말이다. x86 아키텍처는 데스크톱 컴퓨터 시장에서 매우 널리 쓰이며, PowerPC 같이 좀 더 근대적인 아키텍처를 사용한 프로세서들이 x86과 경쟁했으나 그다지 많은 시장 점유율을 확보하지는 못했다. x86 또는 80x86이라는 이름은 여기에 속하는 초기의 프로세서들 이름이 모두 80으로 시작해서 86으로 끝났기 때문에 붙여졌다. 여기에는 8086, 80186, 80286
못했다. x86 또는 80x86이라는 이름은 여기에 속하는 초기의 프로세서들 이름이 모두 80으로 시작해서 86으로 끝났기 때문에 붙여졌다. 여기에는 8086, 80186, 80286, 386, 486이 포함되며, 숫자로 상표를 등록할 수 없었기 때문에 그 뒤로는 펜티엄과 같은 별도의 이름을 사용하게 되었다. 그러나 586, 686과 같은 이름은 아직까지도 ( 비공식적으로 ) 사용되며, 전체 아키텍처를 나타내는 말에도 그 흔적이 남아 있다. x86 아키텍처를 사용하는 최초의 프로세서는 1978년에 발표된 인텔 8086으로, 이전 프로세서인 인텔 8080과 어셈블리어 단에서 호환되도록 설계되었다. [ 1 ] [ 2 ] 인텔 8086은 3년 후에 IBM PC의 표준 프로세서로 채택되었다. IBM PC는 그 후로 계속 성장하여 개인용 컴퓨터 업계의 표준이 되었으며, 그에 따라 x86 아키텍처는 매우 성공적인 명령 집합 아키텍처가 되었다. 사이릭스, 일본 전기 주식회사 ( NEC ), IBM, 트랜스메타 등의 회사들이 x86 아키텍처를 사용하는 프로세서를 생산했으며, 그중 AMD의 애슬론 계열 프로세서들은 펜티엄에 미치지는 못
전기 주식회사 ( NEC ), IBM, 트랜스메타 등의 회사들이 x86 아키텍처를 사용하는 프로세서를 생산했으며, 그중 AMD의 애슬론 계열 프로세서들은 펜티엄에 미치지는 못 하지만 상당한 시장 점유율을 차지하고 있다. x86 아키텍처는 가변 길이 명령을 쓰는 CISC 설계를 채용했으며, 하위 호환성에 중점을 두고 있다. x86 아키텍처는 다른 아키텍처와 같이 워드 경계에 맞춰서 메모리를 읽는 것이 효율적이긴 하지만, 워드 경계에 걸치는 메모리도 한 번에 접근할 수 있다. 워드들은 최하위 바이트부터 최상위 바이트까지 순서대로 ( 리틀 엔디안 ) 저장된다. 현재의 x86 프로세서들은 명령들을 내부적으로 더 작은 단위로 쪼개서 RISC와 비슷한 내부 아키텍처에서 수행한다. 목차 1 IA - 16 ( Intel Architecture, 16 - bit ) 1. 1 실제 모드 1. 2 보호 모드 2 IA - 32 ( Intel Architecture, 32 - bit ) 2. 1 SIMD 명령 집합 3 IA - 64 ( Intel Architecture, 64 - bit ) 4 같이 보기 5 각주 6 외부 링크 IA - 16 ( Intel Architecture, 16 - bit ) [ 편집 ]
32에서 최대 64 GiB의 메모리를 접근할 수 있게 한 물리 주소 확장 ( PAE ) 등도 등장했지만 근본적인 해결책은 되지 못 했다. 이에 따라 IA - 32의 64비트 확장이 여럿 제안되었는데, 보통 이들을 통칭하여 x64라 부른다. 대표적으로 완전히 새로운 설계를 사용하며 하위 호환성이 보장되지 않는 인텔의 IA - 64와, IA - 32와 호환되면서 64비트 명령을 추가한 AMD의 AMD64가 있다. IA - 64를 사용하는 아이테니엄 계열 프로세서들은 IA - 32를 하드웨어적으로 지원하기는 하지만 상당히 느리다. 2004년에 인텔은 AMD64의 구현인 EM64T를 발표했으며, 데스크톱 환경에서는 펜티엄 4부터 지원하고 있다. 같이 보기 [ 편집 ] IA - 32 각주 [ 편집 ] ↑ Stephen P. Morse ( 1980 ), 《 Intel Microprocessors : 8008 to 8086 》 ↑ 인텔 8080의 어셈블리어 코드를 그대로 어셈블하면 x86에서 작동하는 코드가 출력된다는 말이 아니다. 외부 링크 [ 편집 ] 공용에 분류가 있습니다. X86 ( 영어 ) IA - 32와 AMD64 명령 목록 vdeh명령어 집합 확장SIMD ( RISC ) 알파 MVI ARM
되었다. 예외적으로 인텔 80486SX는 비용 절감을 위해 FPU를 지원하지 않았다. SIMD 명령 집합 [ 편집 ] 80486 이후 x86 아키텍처에는 처리를 위한 SIMD 명령 집합과 이를 위한 레지스터들이 추가되었다. 이 중 처음으로 도입된 것은 펜티엄 MMX에서 소개된 MMX로, 부동 소수점 레지스터와 공유되는 64비트 정수 레지스터 8개 ( MM0부터 MM7까지 ) 와 이들을 다루는 명령들이 추가되었다. 또한 중앙처리장치의 벡터 처리가 중요해지면서 AMD에서는 부동 소수점 실수를 처리하기 위한 3DNow! 확장을 만들었으며, 새로운 128비트 정수 및 실수 레지스터를 사용하는 SSE, SSE2, SSE3 등의 확장도 등장했다. IA - 64 ( Intel Architecture, 64 - bit ) [ 편집 ] IA - 32는 4 GiB의 메모리만 접근할 수 있으며, 따라서 대규모의 처리가 필요한 작업이나 데이터베이스 등에 한계를 드러냈다. IA - 32에서 최대 64 GiB의 메모리를 접근할 수 있게 한 물리 주소 확장 ( PAE ) 등도 등장했지만 근본적인 해결책은 되지 못 했다. 이에 따라 IA - 32의 64비트 확장이 여럿
I ( 2008 ) ; 32비트, 64비트 ARMv8 또한 AES 명령어가 있음 CLMUL ( 2010 ) RdRand ( 2012 ) SHA ( 2013 ) MPX ( 2015 ) SGX ( 2015 ) 트랜잭셔널 메모리 TSX ( 2013 ) ASF 가상화 VT - x ( 2005 ) AMD - V ( 2006 ) vdeh인텔 프로세서판매 중단BCD 지향 ( 4비트 ) 4004 ( 1971 ) 4040 ( 1974 ) x86 이전 ( 8비트 ) 8008 ( 1972 ) 8080 ( 1974 ) 8085 ( 1977 ) 초기 X86 ( 16비트 ) 8086 ( 1978 ) 8088 ( 1979 ) 80186 ( 1982 ) 80188 ( 1982 ) 80286 ( 1982 ) X87 ( 외부 FPU ) 8 / 16비트 데이터버스 8087 ( 1980 ) 16비트 데이터버스 X87 80287 80387SX 32비트 데이터버스 80387DX 80487 IA - 32 ( 32비트 ) 80386 SX 376 EX 80486 SX DX2 DX4 SL RapidCAD 오버드라이브 A100 / A110 셀러론 ( 1998 ) M D ( 2004 ) 펜티엄 오리지널 오버드라이브 Pro II II 오버드라이브 III 4 M 듀얼 코어 코어 솔로 듀오 톨라파이 X86 - 64 ( 64비트
올림, 오버플로 등의 상태 비트를 담고 있으며, 마지막으로 IP 레지스터는 현재 세그먼트에서 다음에 실행될 명령어의 offset을 저장한다. 당시 8086은 64 KiB ( 65, 536 바이트 ) 의 메모리 공간과 64 KiB의 스택 공간을 지원했다. 스택에는 한 워드 단위로 값을 넣거나 [UNK] 수 있으며, 스택의 꼭대기는 SS : SP에 저장된다. 스택에 값을 넣으면 SS : SP는 줄어들며, 따라서 스택의 꼭대기는 실제로는 전체 스택에서 가장 주소가 작은 곳에 있다. 256개의 하드웨어 및 소프트웨어 인터럽트가 지원되며, 반환 주소를 스택에 저장하기 때문에 한 인터럽트가 처리되는 도중에 다른 인터럽트가 걸릴 수도 있었다. 실제 모드 [ 편집 ] 인텔 80286부터는 실제 모드 ( real mode ) 라는 프로세서 모드가 부팅시 기본으로 활성화되었다. 실제 모드는 20비트의 주소를 사용할 수 있으며, 따라서 1MiB의 메모리를 접근할 수 있다. 또한 바이오스 루틴과 주변 장치를 소프트웨어적으로 직접 접근할 수 있으나, 멀티태스킹과 같은 개념을 하드웨어적으로 지원하지는 않는다. 실제 모드에서는 메모리를 접근할 때 해당하는 16
비트 데이터 버스를 사용한다. 새로운 일반 레지스터가 추가되지는 않았으나, 모든 16비트 레지스터는 32비트로 확장되었다. 확장된 32비트 레지스터는 원래 16비트 레지스터 이름 앞에'E'를 붙여서 EAX, ESI 등의 이름을 사용한다. 명령 집합은 하위 호환성을 위해 16비트와 32비트 명령을 서로 전환할 수 있도록 고쳐졌고, 명령 앞에 특수한 접두어를 붙여서 16비트 상태에서 32비트 명령을 쓰거나 32비트 상태에서 16비트 명령을 사용할 수도 있다. 인텔 80386은 세그먼트 메모리 모델과 페이징을 지원한 첫 프로세서였으며, 이 기능들은 멀티태스킹 운영 체제에 필수적이었다. 리눅스, 386BSD, 윈도 NT 등이 386 이상의 프로세서를 대상으로 개발되었고, 그 이후로 386 아키텍처는 x86 아키텍처의 기반이 되었다. 인텔 80486에서는 기존의 인텔 80387 같은 코프로세서가 부동 소수점 장치 ( FPU ) 로 통합되었다. 예외적으로 인텔 80486SX는 비용 절감을 위해 FPU를 지원하지 않았다. SIMD 명령 집합 [ 편집 ] 80486 이후 x86 아키텍처에는 처리를 위한 SIM
드라이브 A100 / A110 셀러론 ( 1998 ) M D ( 2004 ) 펜티엄 오리지널 오버드라이브 Pro II II 오버드라이브 III 4 M 듀얼 코어 코어 솔로 듀오 톨라파이 X86 - 64 ( 64비트 ) 셀러론 D 듀얼 코어 펜티엄 4 D 익스트림 에디션 듀얼 코어 코어 2 i7 ( 일부 ) 기타 CISC iAPX 432 RISC i860 i960 스트롱ARM XScale 현재 판매 중IA - 32 ( 32비트 ) 아톰 CE SoC 쿼크 X86 - 64 ( 64비트 ) 아톰 CE SoC 셀러론 펜티엄 코어 i3 i5 i7 M 제온 E3 E5 E7 파이 EPIC 아이테니엄 목록 아톰 셀러론 코어 2 i3 i5 i7 i9 M 아이테니엄 펜티엄 프로 II III 4 D M 제온 관련 항목 칩셋 PCHs SCHs ICHs PIIXs GPUs 코드명 GMA HD 및 아이리스 그래픽스 마이크로아키텍처P5 800 nm P5 600 nm P54C 350 nm P54CS P55C 250 nm Tillamook P6 / 펜티엄 M / Enhanced Pentium M 500 nm P6 350 nm P6 Klamath 250 nm Mendocino Dixon Tonga Co
nm Tillamook P6 / 펜티엄 M / Enhanced Pentium M 500 nm P6 350 nm P6 Klamath 250 nm Mendocino Dixon Tonga Covington Deschutes Katmai Drake Tanner 180 nm Coppermine Coppermine T Timna Cascades 130 nm Tualatin Banias 90 nm Dothan Stealey 톨라파이 Canmore 65 nm Yonah Sossaman 넷버스트 180 nm Willamette Foster 130 nm Northwood Gallatin Prestonia 90 nm en : Tejas and Jayhawk Prescott Smithfield Nocona Irwindale Cranford Potomac Paxville 65 nm Cedar Mill Presler Dempsey Tulsa 코어 / 펜린 65 nm Merom - L Merom Conroe - L Allendale Conroe Kentsfield Woodcrest Clovertown Tigerton 45 nm Penryn Penryn - QC Wolfdale 요크필드 Wolfdale - DP Harpertown Dunnington 보넬 / 솔트웰 45 nm
x86 또는 80x86은 인텔이 개발한 마이크로프로세서 계열을 부르는 말이자, 이들과 호환되는 프로세서들에서 사용한 명령어 집합 구조들을 통칭하는 말이다. x86 아키텍처는 데스크톱 컴퓨터 시장에서 매우 널리 쓰이며, PowerPC 같이 좀 더 근대적인 아키텍처를 사용한 프로세서들이 x86과 경쟁했으나 그다지 많은 시장 점유율을 확보하지는 못했다. x86 또는 80x86이라는 이름은 여기에 속하는 초기의 프로세서들 이름이 모두 80으로 시작해서 86으로 끝났기 때문에 붙여졌다. 여기에는 8086, 80186, 80286, 386, 486이 포함되며 숫자로 상표를 등록할 수 없었기 때문에 그 뒤로는 펜티엄과 같은 별도의 이름을 사용하게 되었다. 그러나 586, 686과 같은 이름은 아직까지도 (비공식적으로) 사용되며, 전체 아키텍처를 나타내는 말에도 그 흔적이 남아 있다. x86 아키텍처를 사용하는 최초의 프로세서는 1978년에 발표된 인텔 8086으로, 이전 프로세서인 인텔 8080과 어셈블리어 단에서 호환되도록 설계되었다. 인텔 8086은 3년 후에 IBM PC의 표준 프로세서로 채택되었다. IBM PC는 그 후로 계속 성장하여 개인용 컴퓨터 업계의 표준이 되었으며, 그에 따라 x86 아키텍처는 매우 성공적인 명령 집합 아키텍처가 되었다. 사이릭스, 닛폰 전기(NEC), IBM, 트랜스메타 등의 회사들이 x86 아키텍처를 사용하는 프로세서를 생산했으며, 그중 AMD의 애슬론 계열 프로세서들은 펜티엄에 미치지는 못 하지만 상당한 시장 점유율을 차지하고 있다. x86 아키텍처는 가변 길이 명령을 쓰는 CISC 설계를 채용했으며, 하위 호환성에 중점을 두고 있다. x86 아키텍처는 다른 아키텍처와 같이 워드 경계에 맞춰서 메모리를 읽는 것이 효율적이긴 하지만, 워드 경계에 걸치는 메모리도 한 번에 접근할 수 있다. 워드들은 최하위 바이트부터 최상위 바이트까지 순서대로 (리틀 엔디안) 저장된다. 현재의 x86 프로세서들은 명령들을 내부적으로 더 작은 단위로 쪼개서 RISC와 비슷한 내부 아키텍처에서 수행한다.