최근 수정 시각 : 2023-12-31 23:14:43

인텔 P6 마이크로아키텍처

인텔® 펜티엄® 시리즈
Intel® Pentium® Series
<colbgcolor=white,#191919>{{{#!wiki style="margin: 0 -10px -5px; min-height: 26px"
{{{#!folding P5 라인 [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -11px"
<rowcolor=white> 마이크로아키텍처 이름 제품명 코드네임 등장 시기
P5 펜티엄 P5 1993년 3월
P54C 1994년 3월
P54CQS 1995년 3월
데스크톱: P54CS
랩톱: P54LM
1995년 6월
펜티엄 MMX 데스크톱: P55C
랩톱: P55LM
1997년 1월
랩톱: 틸라무크 1997년 9월
P6 펜티엄 프로 P6 1995년 11월
펜티엄 II 데스크톱: 클라매스 1997년 5월
데스크톱: 데슈츠
랩톱: 통가
1998년 1월
랩톱: 딕슨 1999년 1월
펜티엄 III 카트마이 1999년 2월
코퍼마인 1999년 10월
투알라틴 2001년 6월
인핸스드 P6 펜티엄 M 베니아스 2003년 3월
도선 2004년 5월
넷버스트 펜티엄 4 윌라멧 2000년 11월
노스우드 2002년 1월
프레스캇 2004년 2월
시더밀 2006년 1월
펜티엄 D
펜티엄 XE
스미스필드 2005년 5월
프레슬러 2006년 1월
인핸스드 P6 펜티엄 듀얼코어
→ 펜티엄
랩톱: 요나 2007년 1월
코어 데스크톱: 콘로
랩톱: 메롬
2007년 6월
데스크톱: 울프데일
랩톱: 펜린
데스크톱: 2008년 8월
랩톱: 2009년 1월
네할렘 (출시되지 않음)
펜티엄 데스크톱: 클락데일
랩톱: 애런데일
2010년 1분기
샌디 브릿지 샌디 브릿지 2011년 2분기
데스크톱: 펜티엄 G
랩톱: 펜티엄 M, U
아이비 브릿지 2012년 3분기
하스웰 데스크톱: 펜티엄 G
랩톱: 펜티엄 M, U
하스웰 데스크톱: 2012년 3분기
랩톱: 2013년 3분기
데스크톱: 펜티엄 G 하스웰 리프레시 데스크톱: 2014년 2분기
서버: 펜티엄 D
랩톱: 펜티엄 U
브로드웰 서버: 2015년 4분기
랩톱: 2015년 1분기
스카이레이크 데스크톱: 펜티엄 G
랩톱: 펜티엄 U
스카이레이크 2015년 3분기
카비레이크 2017년 1분기
데스크톱: 펜티엄 골드 G
랩톱: 펜티엄 골드 U
커피레이크 2018년 2분기
커피레이크 리프레시 2019년 2분기
코멧레이크 2020년 2분기
코브 데스크톱: 펜티엄 골드 G
랩톱: 펜티엄 골드G
}}}}}}}}}
{{{#!wiki style="margin: 0 -10px -5px; min-height: 26px"
{{{#!folding 아톰 라인 [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -11px"
<rowcolor=white> 마이크로아키텍처 이름 제품명 코드네임 등장 시기
실버몬트 데스크톱: 펜티엄 J
랩톱: 펜티엄 N
베이 트레일 2013년 3분기
에어몬트 브라스웰 2016년 1분기
골드몬트 아폴로 레이크 2016년 3분기
골드몬트 플러스 데스크톱: 펜티엄 실버 J
랩톱: 펜티엄 실버 N
제미니 레이크 2017년 4분기
제미니 레이크 리프레시 2019년 4분기 }}}}}}}}}
관련 CPU 제온
Xeon
코어
Core
셀러론
Celeron
아톰
Atom

1. 개요2. 상세
2.1. 유래2.2. 오리지널 P6 마이크로아키텍처
2.2.1. 개념도2.2.2. 특징 및 변천사
2.3. 개량판 P6 마이크로아키텍처
2.3.1. 특징 및 변천사
2.4. 2차 개량판 P6 마이크로아키텍처
2.4.1. 개념도2.4.2. 특징 및 변천사
2.5. 현대 인텔 CPU 마이크로아키텍처의 초석
3. 사용 모델

1. 개요

초창기 펜티엄 시리즈에 사용된 P5 마이크로아키텍처의 후속 마이크로아키텍처이자, 1995년 인텔 펜티엄 프로 시리즈에 최초로 이용된 마이크로아키텍처로 발표되었다.

2. 상세

2.1. 유래

본래 펜티엄이 5번째 의미가 담겨진 합성어였듯이, 그 다음 시리즈를 6번째 의미가 담겨진 합성어인 헥시엄(Hexium)으로 사용하려고 했었다. 그런데 워낙 펜티엄 네이밍이 성공적으로 굳어지는 바람에 그냥 펜티엄 파생형 네이밍인 펜티엄 프로, 펜티엄 II로 이어졌던 것. 본래 부동소수점 실수 연산 유닛의 설계를 담당했던 이스라엘 하이파 연구소가 주도적으로 맡은 첫 마이크로아키텍처이기도 하다.

2.2. 오리지널 P6 마이크로아키텍처

2.2.1. 개념도

파일:Intel_P6_Pentium_III_arch.png

2.2.2. 특징 및 변천사

  • Pentium Pro: 코어 레벨 (P5 대비)
    • 프론트 엔드/백 엔드 공통
      • 마이크로옵(micro operation, uop) 도입

        • - P6의 마이크로옵은 RISC와 비슷하게 load/store 방식을 사용한다.
          - 레지스터 사이의 단순한 연산은 하나의 마이크로옵으로 처리된다.
          - load는 하나의 마이크로옵으로 처리된다.
          - store는 address 및 data로 나뉘어 2개의 마이크로옵으로 처리된다.
          - 인텔에 따르면 x86 명령어당 평균적으로 1.5-2.0 uops로 변환된다고 한다.
    • 프론트 엔드
      • 분기 예측 개선
        • 4-bit local history 기반 2단계 분기예측기(PAs) 도입 #
        • 분기 대상 버퍼(Branch Target Buffer, BTB)가 256 → 512 엔트리로 증가 (2배)
        • BTB의 associativity는 4-way로 유지
        • 16 엔트리 크기의 리턴 스택 추가
      • 명령어 캐시의 associativity가 2-way → 4-way로 증가
      • 전작인 P5와 달리 split fetching을 지원하지 않고 정렬된 16바이트 단위로만 명령어를 인출한다.
      • 디코더가 2개 → 3개로 증가

        • - 첫 번째 디코더는 모든 명령어를 지원하며 사이클당 최대 4개의 마이크로옵을 생성할 수 있다.
          - 첫번째 디코더를 제외한 나머지 디코더는 '단순'(simple) 디코더로, 지원하는 명령어가 제한되며 사이클당 1개의 마이크로옵만 생성할 수 있다.
      • 6 엔트리 마이크로옵 큐 추가
      • 3-wide rename/allocation
    • 백 엔드
      • 비순차적 실행(Out-of-Order Execution)과 추측 실행(Speculative Execution) 방식 도입.

        • - 이로 인해 성능이 크게 향상됐다. 하지만 이로 인해 인텔 CPU에 멜트다운 보안 취약점이 있다는 것이 2018년 드러나게 된다.
      • 40 엔트리 크기의 재정렬 버퍼(reorder buffer, ROB) 추가

        • - uop의 실행 결과는 ROB에 저장되며 retire 단계에서 실제 레지스터 파일(real register file, RRF)에 기록된다.
      • 20 uops 크기의 예약소(reservation system, RS) 추가

        • - 사이클당 최대 5개의 uop을 실행 유닛에 전송 가능
      • 정수 곱셈 및 나눗셈 연산의 레이턴시 및 처리량 개선
    • 메모리 서브 시스템
      • 비순차적 메모리 접근, nonblocking data cache
      • 데이터 캐시의 크기는 8KB로 동일, 레이턴시는 3사이클로 증가
      • 데이터 캐시를 4개의 뱅크로 나누어 동시에 접근할 수 있도록 함 (사이클당 최대 1 load+1 store, 동일 사이클에 동일 뱅크에 load와 store를 동시에 수행할 수 없음)
      • 물리 주소 확장(Physical Address Extension, PAE) 기능 도입.

        • - 물리 주소가 36비트로 확장되어 최대 64GB의 메모리를 사용 할 수 있게 되었다.
          - 이 기능을 사용하기 위해서는 메인보드 칩셋과 운영 체제도 지원해야 한다.
          - 이는 저가형 프로세서인 셀러론에는 적용되지 않음
    • 기타
      • 명령어 파이프라인이 기존의 5단계에서 14단계로 크게 증가하였다. (분기 예측 실패 패널티는 10-15 사이클)
      • CMOV, FCMOV, FCOMI/FCOMIP/FUCOMI/FUCOMIP, RDPMC, UD2 명령어 추가
      • 펜티엄 프로에서는 32비트 실행 성능만 고려하여 기존 16비트 코드의 세그멘테이션, partial register, 정렬되지 않은(unaligned) 메모리 접근 등에 대해 별도의 최적화를 하지 않았기 때문에 레거시 16비트 코드 실행 시 성능상의 문제가 존재하였다.

        • - 세그먼트 레지스터를 변경하는 명령어는 마이크로코드를 통해 실행되었고 추측 실행을 지원하지 않아 직렬화를 동반하였기 때문에 수십 사이클이 소요되었는데, 세그먼트당 메모리 크기의 제약 및 x86의 적은 레지스터 수 등으로 인해 세그먼트 레지스터를 변경하는 명령어가 사용되는 경우가 많았다.
          - 8080의 영향으로 8086의 16비트 레지스터는 8비트 레지스터 2개로 나눌 수 있었는데, 이 점을 이용한 일부 어셈블리 코드에서는 레지스터의 일부분(예: AL, AH)이 ROB 상에 쪼개져 있을 때 전체 레지스터(예: AX)의 값을 읽는 경우도 있었다. 이러한 상황에서는 레지스터의 각 부분이 RRF에서 합쳐질 때까지 대기하였기 때문에(partial register stall) 성능 저하가 발생하였다.
          - 정렬되지 않은 로드의 경우 2개의 캐시 라인에 걸쳐있기 때문에 스토어 버퍼[1]에 존재하는 메모리 주소를 확인하는 작업이 복잡해지는데 이러한 경우 단순하게 이전의 모든 명령어의 실행이 완료될 때까지 대기하였기 때문에 상당한 페널티를 수반하였다.

2-way → 3-way로의 확장과 비순차적 실행의 도입으로 SPECint92 기준 P5 대비 클럭당 성능이 40% 향상되었다. 그러나 1995년 처음 채택된 펜티엄 프로는 레거시 16비트 프로그램들의 실행 성능이 형편없었던 탓에 일반 사용자 시장에선 거의 묻혀져, 1997년 5월에 16비트 실행 성능이 보강된 펜티엄II부터 일반 시장에 알려지게 되었다.
  • Pentium II/III: 코어 레벨 (Pentium Pro 대비)
    • 프론트 엔드
      • 명령어 캐시의 용량이 8 KB → 16 KB로 증가
    • 백 엔드
      • SIMD 유닛 추가 (MMX: 펜티엄 II, SSE: 펜티엄 III)
      • 16비트 실행 성능 향상

        • - 세그먼트 레지스터를 변경하는 명령어에 대한 추측 실행 지원
          - partial register에 대한 일부 경우 최적화
    • 메모리 서브 시스템
      • 데이터 캐시의 용량이 8 KB → 16 KB로 증가
      • 데이터 캐시의 associativity가 2-way → 4-way로 증가
    • 기타
      • MMX 명령어 추가 (펜티엄 II 클라매스부터)
      • FXSAVE, FXRSTOR 명령어 추가 (펜티엄 II 데슈츠부터)
      • SSE 명령어 추가 (펜티엄 III 카트마이부터)
1999년 2월 펜티엄III부터 SSE를 도입하고, 10월에 180nm로 공정 미세화 되면서 클럭을 본격적으로 끌어 올렸다.

하지만 당시 AMD가 K7 마이크로아키텍처를 내놓고 2000년 3월에 1 GHz를 먼저 돌파하게 되자, 인텔도 덩달아 1 GHz 제품을 발매하면서 1 GHz를 돌파한 인텔의 첫 마이크로아키텍처가 되었다. 1 GHz만으로는 만족할 수 없었는지 클럭을 무리하게 더 끌어 올려 1133 MHz인 펜티엄 3 1133까지 내놓았으나, 치명적인 불안정성 문제로 리콜되는 등 P6의 말년은 초라해졌다.

위기 의식을 느낀 인텔은 P6가 더 이상 클럭을 올릴 수 없는 한계에 도달했음을 깨닫게 되고 넷버스트 마이크로아키텍처를 개발해 펜티엄 4를 출시하기에 이르렀다.

2.3. 개량판 P6 마이크로아키텍처

인텔이 P6 마이크로아키텍처의 한계를 극복하기 위해 힐즈버로 연구소가 클럭을 올리기 쉬운 넷버스트 마이크로아키텍처를 내놓은 상태였는데, 취지는 나쁘지 않았을지 몰라도 소비 전력과 발열이 너무 심했다. 저전력과 낮은 발열이 요구되는 노트북 환경에서 도저히 써먹을 수 없는 부적합한 마이크로아키텍처였다.

이런 상황을 해결하기 위해 소비 전력과 발열이 그나마 나은 P6 마이크로아키텍처를 개발했던 이스라엘 하이파 연구소가 2003년에 P6 마이크로아키텍처를 개선해 노트북용 프로세서로 내놓았다. 브랜드 이름을 따온 펜티엄M 마이크로아키텍처로 더 많이 알려져 있다.

2.3.1. 특징 및 변천사

  • Pentium M: 코어 레벨 (P6 대비)
    • 프론트 엔드/백 엔드
      • 마이크로옵 퓨전(Micro-ops fusion) 도입

        • - 기존 P6의 스토어 주소 및 데이터 마이크로옵 쌍은 스토어 마이크로옵 하나로 융합된다.
          - SSE를 제외한 로드 마이크로옵과 이어지는 연산 마이크로옵 쌍은 하나의 마이크로옵으로 융합된다.
    • 프론트 엔드
      • 분기 예측기(Branch Predictor)가 개선되었다.

        • - 루프 감지기 및 간접 분기 예측기 추가
      • 명령어 캐시의 용량이 16 KB → 32 KB로 증가
      • 명령어 변환 색인 버퍼(Instuction Translation Lookaside Buffer, I-TLB)가 32에서 128 엔트리로, 데이터 변환 색인 버퍼(Data Translation Lookaside Buffer, D-TLB)가 64에서 128 엔트리로 증가했다.
      • 명령어 인출 버퍼(Instruction Fetch Buffer)가 16에서 32바이트로 증가했다.
    • 백 엔드
      • 스택 전용 엔진(Dedicated Stack Engine) 도입

        • - 스택 포인터 계산을 위한 전용 덧셈기를 추가하여 스택 명령어(push/pop)를 실행할 때마다 스택 포인터 계산을 위해 사용하던 추가적인 ALU uop을 절약
      • 재정렬 버퍼(Reorder Buffer, ROB)가 40에서 80 엔트리로 증가했다.
      • 비순차 실행용 레지스터 파일이 있는 통합 예약 스테이션(Unified Reservation Station)과 통합 스케줄러가 20에서 24 엔트리로 증가했다.
    • 메모리 서브시스템
      • L1 데이터 캐시의 용량이 16 KB → 32 KB로 증가
      • L2 캐시 메모리가 512 KiB에서 1 MiB(배니아스) 또는 2 MiB(도선)까지 용량이 증가했다.
    • 기타
      • 명령어 파이프라인이 10에서 12단계로 증가했다.
      • SSE2 명령어 집합을 추가했다.
      • Enhanced Intel SpeedStep Technology(EIST)를 개선해 전압과 클럭을 여러 단계로 조절해 소비 전력을 절약할 수 있게 됐다.
      • 소비 전력 절약 기술인 C-State의 Deeper Sleep 단계인 C4 state를 추가했다.
      • XD bit 메모리 보호 기술을 도입했다.(펜티엄 M 도선)
  • 프로세서 레벨
    • 쿼드펌핑 FSB 기술을 도입해 CPU와 노스 브릿지간 대역폭이 133에서 533 MT/s로 증가했다.

개량판 P6는 2003년 3월 펜티엄 M에 사용된 개발 코드 이름, 배니아스부터 적용되었다. 펜티엄 3의 마지막 세대이자 펜티엄 4 팀킬 CPU였던 투알라틴과 같은 130nm 공정이었다.

태생이 노트북용 CPU임에도 데스크탑용 투알라틴의 최고 클럭이었던 1.4 GHz보다 더 높은 1.8 GHz까지 도달했고, 보드 제조사들은 펜티엄 M과 조합되는 칩셋이 탑재된 메인보드를 데스크탑용에 맞는 보드로도 내놓아 이를 구하기 위해 알아보려는 사람들이 생겨났을 정도였다.

2004년 5월에는 90nm 공정으로 개선하면서 L2 캐시 메모리 용량을 2 MB로 더 증설하고 XD bit 메모리 보호 기술을 적용한 개발 코드 이름, 도선을 출시했다. CPU 클럭도 2.1GHz부터 2.27 GHz까지 끌어올렸고 FSB 전송률도 533 MT/s으로 올리면서 하이퍼스레딩을 지원하지 않는 펜티엄 4 중에서 최고 클럭 모델인 펜티엄 4 519J (3.06 GHz)과 동급 혹은 그 이상의 성능을 보여주기도 했다. 심지어 K8 마이크로아키텍처가 사용된 경쟁사의 애슬론 64 시리즈와 동클럭 대비 큰 차이 없는 수준이었다. 다만 태생이 P6라서 64비트 명령어 집합을 지원하지 않는 점은 있었다.

2.4. 2차 개량판 P6 마이크로아키텍처

2005년에 일반 가정용에도 멀티코어 프로세서가 도입됨에 따라 노트북용 제품군에서 듀얼코어가 적용된 첫 마이크로아키텍처로, 펜티엄M에 사용된 1차 개량판 P6에서 변경된 부분은 별로 없지만 펜티엄M에 해결되지 못 한 단점이 보강되었다. 이러한 특성 때문에 인핸스드 펜티엄M 마이크로아키텍처로 많이 알려져 있다.

2.4.1. 개념도

파일:Intel_P6_Core_arch.jpg

2.4.2. 특징 및 변천사

  • 65nm 공정으로 개선했다.
  • 듀얼 코어를 도입했으며, 넷버스트 마이크로아키텍처의 듀얼 코어 프로세서와 달리 L2 캐시 메모리를 공유할 수 있게 만들었다.
  • 최대 FSB 전송률을 533에서 667 MT/s로 개선했다
  • SSE3 명령어 집합을 추가했다.
  • 전력 절약 기술인 C-State의 Deeper Sleep 단계인 C4 state를 C4E state(Enhanced Deeper Sleep)로 개선해 캐시 메모리를 끌 수 있게 됐다.
  • 가상화 기술인 VT-x를 도입했다.

2006년 1월에 인텔은 펜티엄 M에 사용된 개량판 P6를 기반으로 코어 시리즈에 사용된 요나를 내놓았다. 최대 클럭은 2.33GHz로 클럭 향상이 크지 않았음에도 불구하고, 성능 향상이 매우 컸다.

2.5. 현대 인텔 CPU 마이크로아키텍처의 초석

펜티엄 프로부터 도입되었지만 직접적으로 펜티엄 2는 물론 펜티엄 3까지 이어졌고, 이후에 펜티엄 4에 사용된 넷버스트 마이크로아키텍처가 개발되었지만, 워낙에 문제투성이였던 탓에 그 이후에 등장한 펜티엄M, 코어 시리즈에서는 P6 마이크로아키텍처를 마개조한 라인으로 다시 선회하게 되면서 1995년부터 2006년까지 10년 넘게 사용된 장수 마이크로아키텍처가 되었다. 또한, P6 설계 사상을 계승하여 모든 면에서 확장되고 새로운 기능이 추가된 코어 마이크로아키텍처의 근간이 되었다. P6의 후속 마이크로아키텍처는 명목상 2000년에 발표된 넷버스트 마이크로아키텍처였지만, 이를 묻어버릴 카드로 사용한 것도 P6라는 것을 생각하면 약간 복잡하다.

10년 넘게 지난 현재까지도 현대 인텔 CPU 마이크로아키텍처의 초석으로써 쓰이고 있는데 AMD를 앞지르고 완전한 독주를 시작하게 된 계기인 코어2 시리즈에 사용된 코어 마이크로아키텍처 역시 P6 마이크로아키텍처의 설계 사상 및 철학이 계승된 것이니 말 다한 셈. 사실상 인텔이 20년 이상의 장기간 CPU 업계의 정점에 설 수 있게 해준 기반이 됐으며, 인텔의 영광의 시작이라 할 수 있었던 CPU 마이크로아키텍처였다. 하지만 2018년 인텔 CPU들이 멜트다운 보안 취약점에 노출되어 있다는 사실이 알려지면서 큰 문제가 되기도 했다.

3. 사용 모델


[1] 메모리 접근이 비순차적으로 이뤄지므로 완료되지 않은 스토어의 값을 로드 명령어가 읽어야 하는 경우가 존재한다.