||<table bordercolor=black><table width=100%><bgcolor=white>
x86
CPU
마이크로아키텍처 ||
}}}}}}}}} ||
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); color: #fff;" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin:-5px -1px -11px; color: #000;"dark-style="color: #fff;" |
<rowcolor=white> 등장 시기 |
패밀리 넘버 (10진법/16진법) |
설계 기반 | 이름 | 공정 노드 |
고성능 지향 마이크로아키텍처 목록 | |||||
1996년 3월 | - | K5 | K5 | AMD 0.5 ~ 0.35 μm | |
1997년 4월 | 05 / 05h | K6 | K6 | AMD 0.35 ~ 0.18 μm | |
1999년 6월 | 06 / 06h | K7 | K7-Athlon | AMD 0.25 ~ 0.13 μm | |
2003년 4월 | 15 / 0Fh | K8-Hammer | AMD 0.13 μm ~ 65 nm | ||
2007년 9월 | 16 / 10h | K10 | AMD 65 ~ 45 nm | ||
2008년 6월 | 17 / 11h | K8 + K10 Hybrid | AMD 65 nm | ||
2011년 6월 | 18 / 12h | K10 Llano | Common Platform Alliance SOI 32 nm | ||
2011년 10월 | 21 / 15h | Bulldozer | Bulldozer | Common Platform Alliance SOI 32 nm | |
2012년 8월 | 21 / 15h | Piledriver | Common Platform Alliance SOI 32 nm | ||
2014년 1월 | 21 / 15h | Steamroller | Common Platform Alliance 28 nm | ||
2015년 6월 | 21 / 15h | Excavator | Common Platform Alliance 28 nm | ||
2017년 3월 | 23 / 17h | Zen | Zen | GlobalFoundries 14 nm | |
2018년 4월 | 23 / 17h | Zen+ | GlobalFoundries 12 nm | ||
2018년 6월 | 24 / 18h | Hygon Dhyana | GlobalFoundries 14 nm | ||
2019년 7월 | 23 / 17h | Zen 2 | TSMC 7 nm | ||
2020년 11월 | 25 / 19h | Zen 3 | TSMC 7 nm | ||
2022년 2월 | 25 / 19h | Zen 3+ | TSMC 6 nm | ||
2022년 9월 | 25 / 19h | Zen 4 | TSMC 5 ~ 4 nm | ||
2024년 7월 | 26 / 1Ah | Zen 5 | TSMC 4 ~ 3 nm | ||
미정 | 불명 | Zen 6 | 미정 | ||
고효율 지향 마이크로아키텍처 목록 | |||||
2011년 1월 | 20 / 14h | Bobcat | Bobcat | TSMC 40 nm | |
2013년 5월 | 22 / 16h | Jaguar | Jaguar | TSMC 28 nm | |
2014년 6월 | 22 / 16h | Puma | Common Platform Alliance 28 nm |
1. 개요
AMD가 합병한 넥스젠의 Nx686을 소켓7 규격에 맞게 수정하고 MMX등의 명령어 셋을 적용하여 출시한 제품. 이후 펜티엄, 펜티엄 2와 펜티엄 3와 경쟁하다가 후속 AMD K7 마이크로아키텍처가 출시되면서 단종된다.2. 역사
1997년 4월에 166MHz, 200MHz 클럭으로 처음 출시되었으며 출시 당시 펜티엄 프로를 경쟁상대로 지목하면서 펜티엄 프로급의 성능을 표방하였으나 실질적으로는 펜티엄 MMX와 경쟁하는 구도가 형성되었다. 이후 펜티엄 2가 출시된 이후에는 3DNow! 명령어 셋을 추가한 K6-2를 출시하여 경쟁 구도를 형성하였으며 1998년 한해 동안 인텔을 맹추격하였고 #, 1999년 1월에는 북미 시장 점유율에서 사상 최초로 인텔을 앞지르기도 하였다. # 펜티엄3의 출시에 맞서 K6-III 400, 450과 보다 저가형인 K6-2+를 출시했다. 후속작인 K7 애슬론이 성공적으로 개발되면서 2000년에 단종되었다.3. 특징
- 코어 레벨
- 프론트 엔드/백 엔드 공통
- x86 명령어를 'RISC86'이라는 RISC 스타일의 명령어로 변환
- 프론트 엔드
- 2단계 분기 예측(GAs) 도입
- 32 KB, 2-way set associative 명령어 캐시 (라인 크기: 32B)
- 명령어 캐시는 각각의 바이트에 대한 pre-decode 정보를 포함
- 64 엔트리 명령어 TLB
- 디코더는 사이클당 최대 2개의 x86 명령어를 변환해 최대 4개의 ROP을 백엔드에 전송 가능
- 백 엔드
- 6-issue 슈퍼스칼라 구조
- 비순차적 실행(Out-of-Order Execution) 및 추측 실행(Speculative Execution)
- 레지스터 재명명(register renaming), 데이터 포워딩 지원
- 24 RISC86 operation 크기의 명령어 컨트롤 유닛(ICU) 버퍼
- 48개의 물리 레지스터 (8개의 x86 GPR + 16개의 임시 레지스터 + 24개의 리네이밍 레지스터)
- 메모리 서브 시스템
- 32 KB, 2-way set associative, write-back 데이터 캐시 (라인 크기: 32B)
- 128 엔트리 데이터 TLB
- 데이터 캐시에는 2개의 포트가 존재
- 기타
- 3DNow! 확장 지원 (K6-2부터)
- RISC86 명령어의 종류로는 load, store, alu/alux, meu, float, branch가 존재
- PUSH 명령은 단일 store 명령으로 실행된다
- LEA 명령은 store 유닛을 사용한다.
- 8192 엔트리 크기의 분기 히스토리 테이블(BHT)
- 16 엔트리 크기의 분기 타겟 캐시(BTC)
- 16 엔트리 크기의 리턴 주소 스택(RAS)
- Load Unit: 메모리 로드 명령 처리
- Store Unit: 메모리 스토어 명령 처리
- X Unit: 복잡한 정수 연산 및 MMX 연산 처리, (K6-2부터) 3DNow! 연산 처리
- Y Unit: 단순한 정수 연산 처리, (K6-2부터) MMX 및 3DNow! 연산 처리
- FP Unit: x87 부동소수점 연산 처리
- Branch: 분기 명령어 처리
기본 설계는 P5 기반 펜티엄의 특징과 P6 기반 펜티엄 2, 3의 특징이 혼합되어 있는 형태이다. 설계 당시에는 상당히 혁신적인 요소들이 포함되어 있었다.
- 파이프라인 단수는 5단에 불과하여 P5와 동일하였으며 P6의 10단에 비해 절반에 불과하였다.
- 동시 명령어 실행은 1사이클당 2명령어까지 가능하였다. 이것 역시 P5와 동일한 수준이었다.
여기까지만 읽어 보면 그냥 구식 설계의 그런저런 호환 CPU에 불과한 듯 하지만... 이 아래부터는 내용이 완전히 달라진다.
- P5의 순차 실행(In-Order) 구조를 벗어나서 비순차적 실행(Out-of-Order Execution, OoOE) 구조를 채택하였다. 펜티엄 프로부터 사용한 P6 마이크로아키텍처와 동일한 방식이다. P6 마이크로아키텍처는 펜티엄 프로에 최초로 사용되었으나 일반 가정용 데스크탑 프로세서로는 출시되지 않았다. P6 아키텍처를 도입한 펜티엄 2는 1997년 5월에 출시되면서 비순차적 실행 구조를 최초로 도입한 데스크탑 프로세서는 1997년 4월에 출시된 K6 시리즈가 되었다.
- 데스크탑 프로세서에서는 최초로 x86-to-RISC 명령어 변환 기법을 구현하였다. 이 기능 역시 펜티엄 II에도 구현 되었으나 한 달 차이로 최초의 영예를 차지하였다.
- x86에서는 최초로 실수 연산 SIMD 기능인 3DNow!를 구현하였다. 최초의 정수연산 SIMD 기능은 MMX를 도입한 펜티엄 MMX이다.
- 데스크탑용 프로세서로 최초로 L3 캐시 메모리를 도입했다. L2 캐시 메모리를 프로세서에 내장하면서 메인보드에 붙어 있었던 캐시 메모리는 L3 캐시 메모리의 역할을 하게 되었다.
- L2 캐시 메모리 용량은 256KB로 프로세서 내부에 넣었다.
이러한 선진적인 특징들에 의해 동시 명령어 수행 능력의 열세나 파이프라인 길이의 열세에도 불구하고 550MHz의 K6-2+와 500MHz의 K6-III가 시장을 지킨 2000년까지 펜티엄 2/3에 대항하여 나름대로 강력한 경쟁 구도를 유지하는 것이 가능했으며 애슬론이 뒤를 이을 때까지 시장을 지킬 수 있었다.
4. 제품군
4.1. K6 시리즈
갓 인수한 넥스젠의 6x86을 소폭 손봐서 1997년 4월부터 출시한 제품으로 MMX를 지원한다. FSB는 66MHz이다.-
K6 (Model 6)
1997년 4월 2일 출시. 350nm 공정에 880만 개의 트랜지스터가 내장되어 있다. 소켓 7을 사용하고 전압은 2.9V(166/200MHz), 3.2/3.3V(233MHz)이다. 클럭은 133, 200, 233MHz. -
K6 Little Foot (Model 7)
1998년 1월 6일 출시. 250nm 공정을 도입했다. 공정 개선으로 전압이 2.2V로 개선되었고, 클럭도 200, 233, 266, 300MHz로 증가하였다.
4.2. K6-2 시리즈
x86 최초의 실수용 SIMD 명령어 셋인 3DNow!를 포함시키고 FSB를 100MHz로 끌어올렸다. 수퍼 소켓 7을 사용한다. 최초 출시일은 1998년 5월, 출시 클럭은 233~550MHz.-
K6-2 (Chomper)
1998년 5월 28일 출시. 250nm 공정과 930만 개의 트랜지스터가 내장되어있다. 전압은 2.2V이며 클럭은 233, 266, 300, 333/350MHz를 지원한다. -
K6-2 (Chomper Extended)
1998년 11월 16일 출시. FSB 클럭의 세분화와 클럭이 266~550MHz로 상승되었다.
4.3. K6-III 시리즈
1999년 2월, 기존 K6-2에 온-다이 풀스피드 L2 캐시 256KB를 POP 형태로 내장된 모습으로 출시되었다. 출시 클럭 400~550MHz.K6-III를 기반으로 L2 캐시만 128KB로 줄인 CPU는 K6-III가 아닌 K6-2+ 시리즈로 나왔는데, 모바일 전용이라 데스크탑용은 K6-III만 존재한다.
-
K6-III (Sharptooth, K6-3D+)
1999년 2월 22일 출시. 250nm 공정과 2140만 개의 트랜지스터가 내장되어 있다. 전압은 2.2와 2.4V이며 클럭은 400, 450MHz이다. -
K6-III-P (Mobile)
1999년 5월 31일 출시. 전압이 2.0, 2.2V로 줄어들었으며, FSB 및 클럭이 350 ~ 475MHz로 변하고 세분화되었다. -
K6-2+ (Mobile)
2000년 4월 18일 출시. 180nm 공정을 사용했고 주파수 스케일링 기술인 PowerNow!가 추가되었다. 전압은 2.0V이고 클럭은 450 ~ 550MHz이다. -
K6-III+ (Mobile)
2000년 4월 18일 출시. 역시 180nm 공정이며 PowerNow!가 들어갔다. 1.6V, 1.8V 저전압 버전이 존재하는 것이 특징. 클럭 속도는 400 ~ 500MHz이다.
5. 의의
AMD의 독자 CPU 아키텍처 전략의 허리를 담당했던 제품으로 인텔 이외의 CPU 업체도 인텔과 대등한 수준의 CPU를 만들 수 있다는 것을 보여준 제품이다. 짧은 파이프라인 단수와 선진적인 OoOE 구조의 도입, 명령어 변환 등의 기능에 의해 동 클럭 당 정수 성능은 P6계열과 충분히 경쟁할 수 있었고 온-다이 L2 캐시 도입 이후에는 메모리 구조가 매우 좋아지면서 정수 연산 성능은 말 그대로 동클럭의 펜티엄2를 누르는 경우도 자주 발생했다. 온-다이 L2 캐시의 위력은 당시 새로 출시된 셀러론에서 극명하게 드러났다. 겨우 128KB의 온-다이 L2 캐시를 내장한 셀러론 멘도시노 300AMHz가 오버클럭을 하면 하프클럭 512KB 오프-다이 캐시를 가진 동클럭의 펜티엄 III 카트마이 450MHz를 능가하는 사례가 자주 벌어졌기 때문. 게다가 두 제품의 가격 차이가 2배나 되었던 점을 고려하면 메인스트림의 존재 의의를 상실케 한다고 해도 과언이 아닐 지경이었다.다만 짧은 파이프라인으로 인한 클럭속도 상승의 한계와 당시 부각되기 시작한 실수 연산 능력에서 밀리는 문제가 있었다. 그러한 약점을 상쇄하기 위해 3DNow!를 도입하였으나 인텔이 아닌 AMD에서 출시한 신규 명령어 셋을 제대로 지원해 줄 컴파일러나 업체는 거의 없었으며[4], 게다가 배정도 실수에 대한 지원이 미비하였다. 결국은 제품 경쟁력에는 도움이 되지 않으면서 유명무실해질 수 밖에 없었다. 실질적으로 K6-III 450MHz를 마지막으로 시장에서 사라지게 된다. 그 이상의 제품들은 출시는 되었지만 시장에서 구경하기는 힘들었다. 하지만 3DNow! 명령어 셋은 차후 지원이 늘고 애슬론, 애슬론XP, 애슬론64 로 이어지는 AMD 의 역습시절에 주요한 역할을 하게 되었으니, 어찌 보면 전화위복?
6. 뒷이야기
- 인텔이 펜티엄용 소켓 7에서 펜티엄2용 슬롯 1로 이행하는 과정에서 특허 장벽을 통해 타사 칩셋의 슬롯1 사용을 막아 놓은 결과 호환 칩셋 제조업체들이 크게 위축되었다. 이는 AMD도 예외가 아니어서 AMD로서는 소켓7 규격을 어떻게든 우려먹어야 하는 상황에 처하게 되었다. VIA와 협력하여 소켓7의 FSB를 슬롯1과 대등한 100MHz까지 끌어올린 후 이를 Super 7이라고 이름 붙여서 사용하였다. Super 7을 통해 간신히 살아남은 VIA는 이후 애슬론 시절에 KT133같은 슬롯A/소켓A용 호환 칩셋 시장에서 두각을 나타냈다. 인텔은 이후 타사 칩셋에도 라이센스를 일부 허용하였다.
- 소켓7 호환 칩셋의 경우 전반적으로 메모리 입출력 성능 뿐만 아니라 AGP/PCI/HDD 컨트롤러 성능이 낮고 더군다나 윈도우 기본 드라이버에서는 칩셋에 대한 지원이 제대로 안되어 시스템 오류를 일으키는 경우가 많았다. Super 7의 대표 업체였던 VIA가 문제가 많은 저성능 칩셋으로 오명을 쓰게 된 계기가 바로 이 때 시작되었다. 다만 이는 VIA도 일부분 억울한 게 VIA가 제공하는 드라이버를 사용하게 되면 시스템 안정성 문제는 별로 없었기 때문. 하지만 상대적으로 낮은 성능은 변명의 여지조차 없던 사항이라서 이후 AMD 칩셋 시장에 NVidia나 ATI 등이 뛰어들면서 VIA는 말 그대로 쳐발리게 된다.
- 3D-Now의 경우 당시에는 혁신적이었지만, 심각한 문제가 있었는데 명령어가 사용하는 레지스터가 MMX 레지스터와 같이 사용하는 바람에 3D-Now에 속하는 명령을 쓸 경우 실질적으로 MMX 명령을 사용할 수 없었다.
7. 같이 보기
[1]
register 및 load-op 형식의 ALU/Shift 명령어, 대부분의 MOV 명령어, MOVSX/MOVZX, CALL near imm16/32, JMP near 및 Jcc(JCXZ 제외), GPR 피연산자를 사용하는 PUSH 및 POP, NOP(xchg eax, eax) 등
[2]
load-op-store 형식의 ALU 명령어, CMP mem16/32, imm8(si), LEAVE, MOV mem, imm, NOP을 제외한 레지스터 XCHG 명령어 등
[3]
정수 곱셈 및 나눗셈, BSF, BSR, BT, BTC, BTR, BTS, CBW/CWDE, CWD/CDQ, JCXZ 및 JMP far, SETcc, Rotate 연산, BCD 명령어, 세그먼트 레지스터를 사용하는 특정 명령어, 기타 복잡한 명령어들
[4]
적긴 하지만 그렇다고 아예 안쓰인 것도 아니다. 당대 유명했던
Voodoo 시리즈나
RIVA TNT2같은 유명 GPU의 경우는 드라이버나 API 등을 통해 3DNow! 최적화를 지원하였다.