판 비교
1번째 줄 근처
추가: ## 개요
추가: x86(또는 80x86)은 인텔이 개발한 마이크로프로세서 계열을 부르는 말이자, 이들과 호환되는 프로세서들에서 사용되는 명령어 집합 구조(ISA)를 통칭하는 용어다. 1978년 인텔 8086이 처음 발표되면서 시작되었으며, 이후 80186, 80286, 80386, 80486 등 모델명이 '86'으로 끝나는 프로세서들이 잇따라 출시되면서 'x86'이라는 명칭이 정착되었다[1][2]. 숫자로 상표를 등록할 수 없었기 때문에 80486 이후로는 펜티엄 등 별도 브랜드명을 사용했으나, 586·686 같은 비공식 표기는 여전히 쓰이며 아키텍처 전체를 지칭하는 용어에도 그 흔적이 남아 있다[2].
추가:
추가: x86은 가변 길이 명령어를 쓰는 CISC(Complex Instruction Set Computer) 설계를 채택했으며, 하위 호환성을 최우선으로 한다[2][3]. 메모리는 바이트 단위 주소 지정과 리틀 엔디안(little-endian) 바이트 순서를 사용하며, 정렬되지 않은 메모리 접근도 대부분 명령어에서 허용된다[3]. 워드 크기는 세대에 따라 16비트, 32비트, 64비트로 확장되었고, 최신 세대에서는 SIMD 유닛을 통해 여러 스칼라 값을 병렬 처리할 수 있다[3]. 2022년 6월 기준 데스크톱·노트북 시장의 대다수가 x86 기반이며, 워크스테이션·클라우드·슈퍼컴퓨터(TOP500) 분야에서도 지배적이다[3]. 반면 임베디드·모바일·초저전력·초저가 시장에서는 ARM, RISC-V 등 다른 아키텍처가 주류를 이룬다[3].
추가:
추가: ## 역사
추가:
추가: ### 개발 배경과 초기 공개
추가:
추가: 인텔 8086은 8비트 프로세서인 8080의 16비트 확장판으로, 16비트 주소로는 다룰 수 없는 더 많은 메모리를 접근하기 위해 메모리 세그먼테이션을 도입했다[3]. 1978년 발표 당시에는 임베디드 시스템과 소형 멀티유저·싱글유저 컴퓨터를 주 타깃으로 했으며, 지일로그 Z80의 성공에 대응하려는 목적도 있었다[3]. 3년 뒤인 1981년 IBM PC의 표준 프로세서로 채택되면서 개인용 컴퓨터 업계의 사실상 표준 아키텍처로 자리 잡았다[2].
추가:
추가: ### 16비트 시대: IA-16과 실제 모드
추가:
추가: 인텔 8086과 8088은 14개의 16비트 레지스터(AX·BX·CX·DX 등 범용 4개, 세그먼트 4개, 포인터 2개, 인덱스 2개, FLAGS, IP)를 제공했다[2]. 8086은 64 KiB 메모리 공간과 64 KiB 스택 공간을 지원했으며, 256개 하드웨어·소프트웨어 인터럽트를 처리할 수 있었다[2]. 인텔 80286부터 부팅 시 기본으로 활성화되는 '실제 모드(real mode)'가 도입되어 20비트 주소(1 MiB 메모리) 접근이 가능해졌으나, 멀티태스킹을 하드웨어적으로 지원하지 않았고 세그먼트:오프셋 주소 계산 방식으로 인해 근거리 포인터(near pointer)와 원거리 포인터(far pointer)를 구분해야 하는 등 프로그래밍이 복잡해졌다[2].
추가:
추가: ### 보호 모드와 32비트 확장: IA-32
추가:
추가: 인텔 80286은 '보호 모드(protected mode)'를 추가로 제공했다. 이 모드에서는 16 MiB 물리 메모리와 1 GiB 가상 메모리를 접근할 수 있으며, 전역 기술자 테이블(GDT)과 지역 기술자 테이블(LDT)을 통해 세그먼트 기반 보호와 4단계 권한 링(ring 0~3)을 구현했다[2]. 그러나 실제 모드와의 전환이 느리고 불안정해 OS/2 등 초기 시도는 어려움을 겪었다[2].
추가:
추가: 1985년 인텔 80386(i386)이 출시되면서 아키텍처는 32비트(IA-32)로 확장되었다. 모든 레지스터·명령·I/O·메모리가 32비트가 되었고, 32비트 보호 모드에서 각 프로그램은 4 GiB 메모리를 쓸 수 있으며 페이징을 통해 하드웨어 가상 메모리를 지원하게 되었다[2]. 80386SX는 비용 절감을 위해 24비트 주소·16비트 데이터 버스를 썼다[2]. 레지스터명은 기존 16비트 이름 앞에 'E'를 붙여 EAX, ESI 등으로 확장되었고, 16비트/32비트 명령어 혼용을 위한 접두어 바이트가 도입되었다[2]. 80386은 세그먼트 메모리 모델과 페이징을 동시에 지원한 첫 프로세서로, 리눅스·386BSD·윈도우 NT 등 현대적 멀티태스킹 OS의 기반이 되었다[2]. 80486에서는 부동소수점 장치(FPU)가 온다이에 통합되었으며, 80486SX는 FPU를 뺀 저가형으로 나왔다[2].
추가:
추가: ### SIMD 명령어 집합의 도입
추가:
추가: 80486 이후 멀티미디어 처리를 위해 SIMD 명령어와 전용 레지스터가 지속적으로 추가되었다. 펜티엄 MMX에서 64비트 정수 레지스터 8개(MM0~MM7)를 부동소수점 레지스터와 공유하는 MMX가 처음 등장했고[2], AMD는 부동소수점 실수 처리를 위한 3DNow!를 독자 개발했다[2]. 이어 인텔은 128비트 XMM 레지스터를 쓰는 SSE, SSE2, SSE3 등을 내놓았으며[2], 샌디브리지에서 AVX(256비트), 나이츠 코너/나이츠 랜딩/스카이레이크-X에서 AVX-512(512비트)까지 레지스터 폭을 넓혀갔다[3].
추가:
추가: ### 64비트 전환: IA-64, AMD64, 인텔 64
추가:
추가: IA-32의 4 GiB 메모리 한계를 극복하기 위해 여러 64비트 확장이 제안되었다. 인텔은 완전히 새로운 설계인 IA-64(아이테니엄)를 내놓았으나 IA-32 하위 호환 성능이 낮았고[2], AMD는 IA-32와 호환되면서 64비트 레지스터·명령을 추가한 AMD64(x86-64)를 1999~2003년 발표했다[3]. 인텔은 2004년 AMD64와 호환되는 EM64T(나중 인텔 64)를 펜티엄 4부터 탑재했다[2]. 마이크로소프트와 썬/오라클은 'x64', 리눅스·BSD 진영은 'amd64'라 부르며, 윈도우는 32비트 버전을 'x86', 64비트 버전을 'x64'로 표기하고 64비트 설치 파일은 'AMD64' 디렉터리에 둔다[3].
추가:
추가: ### 주요 제조사와 라이선스 현황
추가:
추가: IBM, NEC, 사이릭스, 트랜스메타, VIA, AMD 등 다수 기업이 x86 프로세서를 설계·제조했으며[2][3], 초기 호환 칩은 16비트였고 32비트 설계는 1990년대 초 i386·i486 호환품부터 본격화되었다[3]. AMD K5는 29K RISC 설계를 기반으로 x86 명령을 마이크로 연산으로 변환하는 파이프라인을 도입해 현대 x86 마이크로아키텍처의 원형이 되었고[3], K6·애슬론·옵테론으로 성공을 거두었다[3]. 사이릭스 6x86은 레지스터 리네이밍과 추측 실행을 처음 구현했으나 호환성·발열 문제가 있었다[3]. 넥스젠 Nx586은 FPU와 핀 호환성이 부족했고[3], 센테어 테크놀로지(VIA C3/C7/나노)와 트랜스메타도 저전력 시장을 노렸으나 주류에서 밀렸다[3].
추가:
추가: 현재 x86 아키텍처 라이선스를 보유하고 현대 64비트 설계를 적극 생산하는 업체는 인텔과 AMD 두 곳뿐이어서 '듀오폴리(duopoly)'라 불린다[3]. VIA 테크놀로지와 합작한 중국 자오신(Zhaoxin)이 2014년부터 VIA 기반 x86 프로세서를 개발 중이며, KX-7000 등 '7' 시리즈 출시를 2021년경 계획했으나 2022년 3월 기준 아직 출시되지 않았다[3].
추가:
추가: ### X86S 제안과 철회
추가:
추가: 2023년 인텔은 레거시 실행 모드(16비트·32비트 OS 지원, 실제 모드, 페이징되지 않은 모드 등)를 제거하고 롱 모드에서 직접 부팅하는 단순화 아키텍처 'X86S'(구 X86-S)를 제안했다[3]. 32비트 사용자 코드(링 3)만 단순화된 세그먼테이션으로 허용하고, 5단계 페이징으로 바로 전환하는 식이었다[3]. 초안 명세는 2024년 6월 버전 1.2까지 갱신되었으나, 2024년 12월 인텔과 AMD가 'x86 생태계 자문 그룹'을 결성하면서 제안은 철회되었다[3].
추가:
추가: 이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.