인텔 P5 마이크로아키텍처

덤프버전 :

인텔® 펜티엄® 시리즈
Intel® Pentium® Series

P5 라인 [ 펼치기 · 접기 ]
마이크로아키텍처 이름
제품명
코드네임
등장 시기
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
아톰 라인 [ 펼치기 · 접기 ]
마이크로아키텍처 이름
제품명
코드네임
등장 시기
실버몬트
데스크톱: 펜티엄 J
랩톱: 펜티엄 N
베이 트레일
2013년 3분기
에어몬트
브라스웰
2016년 1분기
골드몬트
아폴로 레이크
2016년 3분기
골드몬트 플러스
데스크톱: 펜티엄 실버 J
랩톱: 펜티엄 실버 N
제미니 레이크
2017년 4분기
제미니 레이크 리프레시
2019년 4분기
관련 CPU
제온
Xeon

코어
Core

셀러론
Celeron

아톰
Atom



1. 개요
2. 특징
3. 상세



1. 개요[편집]


1993년 3월 22일, 인텔 펜티엄 시리즈에 최초로 이용된 마이크로아키텍처로, x86 최초의 슈퍼스칼라 마이크로프로세서이다.

후속 아키텍처는 인텔 P6 마이크로아키텍처.


2. 특징[편집]


파일:pentium_diagram.jpg

대표적인 특징은 486에 비해 개선된 사항들로, 다음과 같다.
  • 코어 레벨 (486 대비)
    • 프론트 엔드/백 엔드 공통
      • 두 개의 정수 파이프라인으로 구성된 슈퍼스칼라 아키텍처
    • 프론트 엔드
      • 분기 예측 도입 및 분기 대상 버퍼(BTB) 추가
      • 명령어 인출 대역폭이 사이클당 16 바이트 → 32바이트로 증가 (2배)
      • 정렬되지 않은 경우의 명령어 인출 성능 개선 (split fetching 도입)
    • 백 엔드
      • 간단한 명령어를 처리할 수 있는 정수 파이프라인 (V-Pipe) 추가 (총 1개→2개)
      • 하드웨어 곱셈 유닛 추가
      • 빨라진 부동 소수점 연산 장치(FPU)
        • FPU의 파이프라인화
        • 명령어 실행 latency, throughput 개선
        • 간단한 부동소수점 명령어와 뒤따르는 FXCH 명령어를 병렬로 실행 가능
      • 마이크로코드 개선
    • 메모리 서브 시스템
      • 코드 캐시와 데이터 캐시의 분리
      • 캐시 구성이 8 KB, 4-way → (I) 8 KB, 2-way + (D) 8 KB, 2-way 로 변화
      • 데이터 캐시를 2개의 뱅크로 나누어 동시에 접근할 수 있도록 함
      • 캐시 라인 크기가 16B → 32B로 증가
      • 4M 페이지 지원 추가 (Page Size Extension)
      • 4M DTLB 추가
    • 기타
      • 파이프라인은 80486과 동일하게 5단계(PF-D1-D2-EX-WB)로 구성
      • CMPXCHG8B, CPUID, RDTSC 등의 명령어 추가
  • 프로세서 레벨 (486 대비)
    • 32비트에서 64비트로 넓어진 외부 데이터 버스폭

슈퍼스칼라 구조의 도입 및 부동소수점 유닛의 개선으로 으로 486 대비 클럭당 성능이 크게 향상되었다. 다만 순차적 실행 방식 등의 한계로 인해 P5에 최적화된 컴파일러로 재컴파일하지 않은 경우 최적화된 바이너리 대비 정수 연산에서 30%, 부동소수점 연산에서 50% 가량 낮은 성능을 보였다고 한다. P5와 P54 모델 중, 초기형 저클럭 모델에는 FDIV 버그가 존재한다. 또한 잘못된 CMPXCHG8B 명령어가 LOCK 접두사와 사용된 경우 시스템이 정지하는 F00F 버그도 존재하였으나 해당 버그의 경우 운영체제 차원에서 해결 가능하여 FDIV 버그와 달리 크게 이슈화되지는 않았다.


3. 상세[편집]


P5 마이크로아키텍처는 U-pipe와 V-pipe 2개의 파이프라인을 두어 특정한 명령어 조합에 대해 클럭당 2개의 명령어를 실행할 수 있도록 하였다. (이때 첫번째 명령어는 U-pipe에서, 두번째 명령어는 V-pipe에서 실행된다.) 한 사이클당 하나의 명령어가 실행되는 경우 U-pipe에서 실행되며, U-pipe는 모든 명령어를, V-pipe는 일부 명령어만을 실행할 수 있다.

동시에 실행할 수 있는 명령어의 조합은 다음과 같다:
  • 대부분의 ALU 명령어 (mov, add, sub, and, or, xor)
  • 비교 명령어 (cmp, test)
  • 스택 조작 명령어 (push, pop)
  • Carry 및 borrow 명령어(adc, sbb 등)는 U pipe에서만 실행될 수 있다.
  • 접두사가 사용된 명령어의 경우 U pipe에서만 실행될 수 있다. 단, Pentium MMX에서는 0Fh, 66h, 67h 접두사가 사용된 명령어가 V pipe에서 실행될 수 있음
  • shift imm 명령어는 U pipe에서만 실행될 수 있다.
  • fadd, fmul, fld 등 일부 부동소수점 명령어는 U pipe에서만 실행될 수 있다.
  • call near, jmp near, jcc 등 단순한 control transfer 명령어 및 fxch 명령어가 U pipe에서 실행되는 경우 V pipe를 사용할 수 없다. (이러한 명령어가 V pipe에서 실행되는 경우 동시에 U pipe를 사용할 수 있다.)

동시에 실행할 수 없는 명령어의 조합은 다음과 같다:
  • CL 레지스터를 shift count로 사용하는 shift 및 rotate 명령어
  • mul, div 등 여러 사이클에 걸쳐 실행되는 사칙연산 명령어
  • ret, enter, pusha, movs, stos, loopnz 등의 확장된 명령어
  • fscale, fldcw, fst 등 일부 부동소수점 명령어
  • push, sreg, call far 등 inter-segment 명령어
  • 레지스터 의존성(RAW, WAW)이 존재하는 경우. 이때 al, ah 등 8비트 및 16비트 레지스터는 해당하는 32비트 레지스터에 대한 참조로 간주되므로 한 명령어가 al에 값을 쓰고 그 다음 명령어가 ah에 값을 쓰는 경우 eax에 대한 WAW hazard 때문에 동시에 실행될 수 없다. (단, EFLAGS에 대한 WAW 의존성 및 스택 포인터, 조건 코드에 대한 의존성은 예외)
  • 두 명령어가 동일한 데이터 캐시 뱅크에 접근하는 경우
  • (접두사를 제외한) 두 명령어 중 하나가 7바이트를 초과하는 경우. Pentium MMX의 경우 첫 번째 명령어에 대한 제한이 11바이트까지로 완화되었다.


4. 사용 모델[편집]




파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-15 00:17:03에 나무위키 인텔 P5 마이크로아키텍처 문서에서 가져왔습니다.