펜티엄(일명 i586)은 인텔이 1993년 3월 22일에 출시한 x86 마이크로프로세서이다. 이는 펜티엄 브랜드를 사용하는 첫 번째 CPU로, 8086 호환 프로세서 계열의 다섯 번째 세대로 여겨진다. 내부적으로는 P5라는 마이크로아키텍처로 불린다.
인텔 i486과 마찬가지로 펜티엄은 32비트 i386과 명령어 세트 호환성을 가지고 있다. 이는 i486과 유사한 마이크로아키텍처를 사용하지만, 이중 정수 파이프라인 설계를 구현할 수 있을 만큼 확장되었다. 또한 더 발전된 부동소수점 유닛(FPU)을 갖추고 있다. 일부 학자와 RISC 경쟁자들은 복잡한 CISC 명령어 집합을 갖춘 마이크로아키텍처에서 이중 파이프라인 설계를 구현하는 것이 불가능하다고 주장했으나, 펜티엄은 이를 실현하였다.
P5 펜티엄은 첫 번째 슈퍼스칼라 x86 프로세서로, 이는 종종 두 개의 명령어를 동시에 실행할 수 있음을 의미한다. 이를 구현하기 위해 사용된 몇 가지 기술은 이전의 슈퍼스칼라 인텔 i960 CA(1989)에서 기반을 두었으며, 다른 세부 사항은 P5 설계를 위해 독자적으로 발명되었다. 또한, i386이나 i486에서 복사된 부분도 많았다. i486과 마찬가지로 펜티엄은 특정 명령어 또는 명령어의 일부에 따라 최적화된 마이크로코드 시스템과 RISC와 유사한 기술을 사용했다.
주요 특징으로는 재설계되고 상당히 빨라진 부동소수점 유닛, 넓은 64비트 데이터 버스(내부 및 외부), 분리된 코드 및 데이터 캐시, 성능을 향상시키기 위한 여러 가지 기술과 기능이 있다.
P5는 i486에 비해 멀티프로세서 지원이 더 뛰어나며, IBM 메인프레임 컴퓨터와 유사한 하드웨어 멀티프로세싱 지원을 갖춘 첫 번째 x86 CPU이다. 인텔은 IBM과 협력하여 이 기능을 정의하고 P5 마이크로아키텍처에 설계하였다. 이전 세대의 x86 프로세서와 경쟁사 제품에는 이 기능이 없었다.
이중 파이프라인의 잠재력을 최대한 활용하기 위해 특정 컴파일러는 명령어 수준의 병렬성을 더 잘 활용하도록 최적화되었으나, 모든 애플리케이션이 다시 컴파일되어도 상당한 이점을 얻는 것은 아니었다. 더 빠른 FPU는 부동 소수점 성능을 i486이나 i387에 비해 크게 향상시켰다. 인텔은 개발 도구 공급업체, 독립 소프트웨어 공급업체(ISV) 및 운영 체제(OS) 회사와 협력하여 이들의 제품을 최적화하는 데 자원을 할애했다.
1996년 10월, 유사한 펜티엄 MMX가 소개되었으며, 이는 같은 기본 마이크로아키텍처에 MMX 명령어 세트, 더 큰 캐시 및 기타 향상을 추가한 것이다.
경쟁 제품으로는 슈퍼스칼라 PowerPC 601(1993), SuperSPARC(1992), DEC Alpha 21064(1992), AMD 29050(1990), Motorola MC88110(1991) 및 Motorola 68060(1994) 등이 있다. 이들 중 대부분도 슈퍼스칼라 인오더 이중 명령어 파이프라인 구성을 사용하였으며, 비슈퍼스칼라인 Motorola 68040(1990)과 MIPS R4000(1991)도 포함된다.
인텔은 1997년 펜티엄 II가 출시된 이후, P5 펜티엄 프로세서를 저렴한 제품으로 판매하였으며, 2000년 초에 이를 단종하고 80486 브랜드를 대체한 셀러론 프로세서로 전환하였다.
개발
P5 마이크로아키텍처는 386 및 486을 설계한 같은 산타클라라 팀에 의해 개발되었다. 디자인 작업은 1989년에 시작되었으며, 팀은 슈퍼스칼라 RISC 아키텍처를 사용하기로 결정했다. 1990년에는 초기 설계가 성공적으로 시뮬레이션되었고, 디자인이 실리콘으로 이전된 것은 1992년 4월이었다. 베타 테스트가 시작된 후, 1992년 중반까지 P5 팀에는 200명의 엔지니어가 있었다. 인텔은 처음에 1992년 6월 PC 엑스포에서 P5를 시연할 계획이었으나, 디자인 문제로 인해 데모가 취소되었고 공식 발표는 1993년 봄으로 연기되었다.
P5의 초기 설계는 60–66 MHz 펜티엄에서 부동소수점 유닛에 문제가 있어 일부 나눗셈 작업에서 잘못된(하지만 예측 가능한) 결과를 초래했다. 이 결함은 1994년 버지니아주 린치버그 대학의 토마스 나이슬리 교수가 발견하였으며, "펜티엄 FDIV 버그"로 알려지게 되었다. 이로 인해 인텔은 결함이 있는 프로세서를 교체하는 프로그램을 만들었다.
1997년에는 특별한 권한 없이도 시스템을 충돌시킬 수 있는 악성 프로그램이 발견되었으며, 이를 "F00F 버그"라 불렀다. 모든 P5 시리즈 프로세서가 영향을 받았으며, 수정된 스텝이 출시되지 않았지만 현대 운영 체제는 충돌을 방지하기 위해 패치가 적용되었다.
i486 대비 개선 사항
P5 마이크로아키텍처는 이전의 i486 아키텍처에 비해 몇 가지 중요한 발전을 가져왔다.
성능:
- 슈퍼스칼라 아키텍처: 펜티엄은 두 개의 데이터 경로(파이프라인)를 갖추고 있어 많은 경우 클럭 주기당 두 개의 명령어를 처리할 수 있다. 주요 파이프(U)는 모든 명령어를 처리할 수 있고, 다른 파이프(V)는 가장 일반적인 간단한 명령어를 처리할 수 있다. 일부 RISC 지지자들은 "복잡한" x86 명령어 집합이 조밀하게 파이프라인된 마이크로아키텍처에서 구현될 수 없다고 주장했으나, 펜티엄은 이를 가능하고 실현 가능하다는 것을 입증하였다.
- 64비트 외부 데이터 버스: 메모리 접근 시 읽거나 쓸 수 있는 정보의 양이 두 배로 늘어나, 펜티엄은 80486보다 코드 캐시를 더 빠르게 로드할 수 있게 되었다. 또한 64비트 및 80비트 x87 FPU 데이터의 접근 및 저장 속도를 높인다.
- 코드 및 데이터 캐시 분리: 486에 비해 페치 및 피연산자 읽기/쓰기 충돌을 줄인다. 접근 시간과 구현 비용을 줄이기 위해 두 캐시는 각각 2-way associative로 구성되어 있으며, 486의 단일 4-way 캐시보다 효율적이다. 펜티엄의 또 다른 향상점은 코드 캐시에서 연속 블록을 읽을 수 있는 능력으로, 두 캐시 라인 사이에 분할되어 있을 경우에도 가능하다(최악의 경우 최소 17바이트).
- 더 빠른 부동소수점 유닛: 일부 명령어는 엄청난 개선을 보여주며, 특히 FMUL의 경우 80486 FPU보다 최대 15배 높은 처리량을 기록하였다. 펜티엄은 또한 FXCH ST(x) 명령어를 일반적인 수학적 또는 로드/스토어 FPU 명령어와 병렬로 실행할 수 있다.
- 4입력 주소 추가기: 펜티엄은 80486에 비해 주소 계산 지연 시간을 더욱 줄인다. 펜티엄은 세그먼트-기반 + 기본 레지스터 + 스케일된 레지스터 + 즉시 오프셋으로 전체 주소 모드를 단일 사이클에서 계산할 수 있으며, 486은 3입력 주소 추가기만 가지고 있어 이러한 계산을 두 사이클에 걸쳐 나누어야 한다.
- 마이크로코드 최적화: 두 개의 파이프라인을 사용하여 REP MOVSW와 같은 자동 반복 명령어가 클럭 주기마다 한 번 반복되도록 할 수 있으며, 80486은 각 반복에 세 클럭이 필요했다. 또한 디코드 단계에서 첫 번째 마이크로코드 단어에 대한 접근 최적화로 인해 여러 자주 사용되는 명령어가 보다 빠르게 실행될 수 있다. 예를 들어, (486→펜티엄, 클럭 사이클 수): CALL(3→1), RET(5→2), 시프트/회전(2–3→1).
- 더 빠르고 완전한 하드웨어 기반 곱셈기: MUL 및 IMUL과 같은 명령어는 80486보다 몇 배 빠르고 예측 가능해졌다. 32비트 피연산자에 대해 실행 시간은 13
42 클럭 사이클에서 1011로 줄어들었다. - 가상화된 인터럽트: 가상 8086 모드의 속도를 높인다.
- 분기 예측: 성능 향상을 위해 분기 예측 기능이 추가되었다.
기타 특징:
- 향상된 디버깅 기능: 프로세서 기반 디버그 포트가 도입되었다.
- 향상된 자가 테스트 기능: L1 캐시 패리티 체크와 같은 기능이 추가되었다.
- 새로운 명령어: CPUID, CMPXCHG8B, RDTSC, RDMSR, WRMSR, RSM이 포함되었다.
- 테스트 레지스터 TR0–TR7: 이들 레지스터와 접근을 위한 MOV 명령어가 제거되었다.
- 펜티엄 MMX: 나중에 출시된 펜티엄 MMX는 MMX 명령어 세트를 추가했으며, 이는 멀티미디어 응용 프로그램에 사용되는 기본 정수 SIMD 명령어 세트 확장이다. MMX는 레지스터를 재사용하여 x87 FPU 명령어와 동시에 사용할 수 없었다. 또한, 명령어 및 데이터 캐시 크기가 두 배로 증가하고 성능 향상을 위한 몇 가지 마이크로 아키텍처 변경이 이루어졌다.
펜티엄은 초당 1억 개 이상의 명령어(MIPS)를 실행하도록 설계되었으며, 75 MHz 모델은 특정 벤치마크에서 126.5 MIPS에 도달할 수 있었다. 펜티엄 아키텍처는 일반 벤치마크에서 486 프로세서의 성능을 거의 두 배 제공하였다. 가장 빠른 80486 부품(약간 개선된 마이크로아키텍처 및 100 MHz 작동을 갖춘)은 첫 번째 세대 펜티엄과 거의 동일한 성능을 보였으며, AMD Am5x86은 이름에도 불구하고 실제로는 486급 CPU로, 순수 ALU 성능에 있어 펜티엄 75와 대략 동일하였다.
60~66 MHz P5 펜티엄의 초기 버전은 부동소수점 유닛에 문제가 있어 일부 나눗셈 작업에서 잘못된(하지만 예측 가능한) 결과를 초래하였다. 이 결함은 1994년 버지니아주 린치버그 대학의 토마스 나이슬리 교수에 의해 발견되었으며, "펜티엄 FDIV 버그"로 널리 알려지게 되었다. 이로 인해 인텔은 결함이 있는 프로세서를 교체하는 프로그램을 마련하였다.
1997년에는 특별한 권한 없이도 시스템을 충돌시킬 수 있는 악성 프로그램이 발견되었으며, 이를 "F00F 버그"라고 불렀다. 모든 P5 시리즈 프로세서가 영향을 받았고, 수정된 스텝이 출시되지 않았으나 현대 운영 체제는 충돌을 방지하기 위한 패치가 적용되었다.
코어 및 스테핑
펜티엄은 1990년대 중반 개인용 컴퓨터를 위한 인텔의 주요 마이크로프로세서였다. 원래 설계는 새로운 공정으로 재구현되었으며, 경쟁력을 유지하고 휴대용 컴퓨터와 같은 특정 시장을 타겟으로 하기 위해 새로운 기능이 추가되었다. 이로 인해 P5 마이크로아키텍처의 여러 변형이 존재하게 되었다.
P5
- 인텔 펜티엄 마이크로아키텍처: 첫 번째 펜티엄 마이크로프로세서 코어는 "P5"라는 코드명이 붙여졌으며, 제품 코드는 80501(가장 초기의 스테핑인 Q0399의 경우 80500)이다. 두 가지 버전이 있었고, 각각 60 MHz와 66 MHz에서 작동하도록 지정되었으며, Socket 4를 사용하였다. 이 첫 번째 펜티엄 구현은 273핀 PGA 형태로 출시되었고, 5V 전원 공급 장치에서 작동하였다. 이는 일반적인 트랜지스터-트랜지스터 논리(TTL) 호환성 요구 사항에서 파생된 것이다. 트랜지스터 수는 310만 개였으며, 크기는 16.7 mm x 17.6 mm로, 면적은 293.92 mm²에 이른다. 800 nm 바이폴라 보완 금속 산화물 반도체(BiCMOS) 공정으로 제작되었다. 5볼트 설계는 후속 모델과 비교했을 때 운영 주파수에 대해 상대적으로 높은 에너지 소비를 초래하였다.
P54C
- 인텔 펜티엄 P54C: P5에 이어 1994년에 P54C(80502)가 출시되었으며, 75, 90, 100 MHz에서 작동하는 버전이 있었다. 3.3V 전원 공급 장치로 작동하며, Socket 5로 전환되었다. 이는 3.3볼트에서 작동하는 첫 번째 펜티엄 프로세서로, 에너지 소비를 줄였지만 메인보드에서 전압 조정이 필요하였다. 486 프로세서에서처럼 내부 클럭 배수를 사용하여 내부 회로가 외부 주소 및 데이터 버스보다 높은 주파수에서 작동할 수 있도록 하였다. 또한 이 모델은 양방향 다중 처리 기능을 지원하며, 통합 로컬 APIC와 새로운 전원 관리 기능을 갖추고 있다. 트랜지스터 수는 330만 개이며, 크기는 163 mm²이다. 공정은 500 nm와 600 nm로 정의될 수 있는 BiCMOS 공정으로 제작되었다.
P54CQS
- P54CQS: P54C의 후속 모델로, 1995년 초에 출시되었으며 120 MHz에서 작동한다. 350 nm BiCMOS 공정으로 제작된 이 모델은 상업적으로 350 nm 공정으로 제작된 첫 번째 마이크로프로세서이다. 트랜지스터 수는 P54C와 동일하며, 새 공정임에도 불구하고 다이 면적도 동일하다. 칩은 패키지와 와이어 본딩으로 연결되었으며, 이 방식은 칩의 가장자리에서만 연결을 허용한다. 작은 칩은 패키지의 재설계를 요구할 수 있기 때문에 칩의 크기를 동일하게 유지하고, 기존 패드 링을 유지하면서 펜티엄의 논리 회로 크기를 줄여서 더 높은 클럭 주파수를 달성하도록 하였다.
P54CS
- P54CS: P54CQS에 이어 빠르게 출시된 P54CS는 133, 150, 166 및 200 MHz에서 작동하며, Socket 7을 도입하였다. 트랜지스터 수는 330만 개이며, 크기는 90 mm²이고, 350 nm BiCMOS 공정으로 4단계의 상호 연결을 갖추고 있다.
P24T
- P24T: 1995년에 출시된 P24T 펜티엄 오버드라이브는 486 시스템을 위한 것으로, 3.3V 600 nm 버전을 기반으로 하여 63 MHz 또는 83 MHz 클럭으로 작동하였다. 이들은 Socket 2/3를 사용하였으며, 486 메인보드의 32비트 데이터 버스와 느린 온보드 L2 캐시를 보완하기 위해 수정이 필요하였다. 이 모델은 32 KB L1 캐시를 갖추고 있으며, 이는 이전 P55C 펜티엄 CPU의 두 배 크기이다.
P55C
- 인텔 펜티엄 MMX 마이크로아키텍처: P55C(또는 80503)는 인텔의 이스라엘 하이파 연구 개발 센터에서 개발되었다. MMX 기술이 적용된 펜티엄으로 판매되었으며, P5 코어를 기반으로 하면서 멀티미디어 작업 성능을 향상시키기 위한 57개의 "MMX" 명령어 세트를 도입하였다. 펜티엄 MMX 라인은 1996년 10월 22일에 소개되었으며, 1997년 1월에 출시되었다.
새로운 명령어는 64비트 패킹 벡터 데이터 타입에서 작동하였다: 여덟 개의 8비트 정수, 네 개의 16비트 정수, 두 개의 32비트 정수 또는 하나의 64비트 정수로 구성된 벡터이다. 예를 들어, PADDUSB(패킹된 ADD 부호 없는 포화 바이트) 명령어는 두 벡터를 요소별로 더하며, 오버플로우가 발생할 경우 최대 값인 255로 포화된다. 이러한 전문화된 명령어는 일반적으로 프로그래머의 특별한 코딩이 필요하다.
코어의 다른 변화로는 6단계 파이프라인(구 P5의 5단계)과 반환 스택이 있으며, 더 나은 병렬성, 향상된 명령어 디코더, 16KB L1 데이터 캐시와 16KB L1 명령어 캐시가 포함되어 있다. L1 캐시는 4-way 연관성을 가지며, P5의 8KB L1 데이터/명령어와는 달리 각 파이프라인에 해당하는 하나의 쓰기 버퍼가 아닌 네 개의 쓰기 버퍼를 지원한다. 향상된 분기 예측 기능은 펜티엄 프로에서 가져온 것으로, 512개의 엔트리 버퍼를 가지고 있다(P5의 경우 256개).
트랜지스터 수는 450만 개이며, 면적은 140 mm²이다. 공정은 280 nm CMOS로, 이전의 350 nm BiCMOS 공정과 유사한 금속 피치를 가지고 있어 인텔에서는 이를 "350 nm"로 설명하였다. 이 공정은 4단계의 상호 연결을 갖추고 있다.
P55C는 Socket 7과 호환되지만, 칩에 전원을 공급하기 위한 전압 요구 사항이 표준 Socket 7 사양과 다르다. P55C 표준이 설정되기 전의 Socket 7용 메인보드는 이 CPU의 적절한 작동을 위해 필요한 이중 전압 레일(2.8V 코어 전압, 3.3V 입출력(I/O) 전압)을 준수하지 않는다. 인텔은 이 문제를 해결하기 위해 자체 전압 조정 기능이 있는 오버드라이브 업그레이드 키트를 제공하였다.
펜티엄 MMX 노트북 CPU는 CPU가 직접 부착된 모바일 모듈을 사용하였다. 이 모듈은 소형 인쇄 회로 기판(PCB) 형태로, 노트북 메인보드에 스냅 연결되며, 일반적으로 열 분산 장치가 설치되어 모듈과 접촉하게 된다. 250 nm 틸라무크 모바일 펜티엄 MMX(오리건주 도시 이름을 따름)에서는 모듈이 430TX 칩셋과 시스템의 512 KB 정적 RAM 캐시 메모리도 함께 장착하였다.
The Pentium (also known as i586) is an x86 microprocessor released by Intel on March 22, 1993. It is considered the first CPU to use the Pentium brand and is regarded as the fifth generation of the 8086-compatible processor family. Internally, it is referred to as the P5 microarchitecture. Like the Intel i486, the Pentium is compatible with the 32-bit i386 instruction set. It uses a microarchitecture similar to the i486 but has been expanded to implement a dual-integer pipeline design. Additionally, it features a more advanced floating-point unit (FPU). Some scholars and RISC competitors argued that implementing a dual pipeline design in a complex CISC microarchitecture was impossible, but the Pentium proved this feasible. The P5 Pentium is the first superscalar x86 processor, meaning it can often execute two instructions simultaneously. Several techniques used to implement this were based on the earlier superscalar Intel i960 CA (1989), while other details were independently invented for the P5 design. There are also many parts copied from the i386 or i486. Like the i486, the Pentium utilized a microcode system optimized for specific instructions or parts of instructions, employing RISC-like techniques. Key features include a redesigned and significantly faster floating-point unit, a wide 64-bit data bus (internal and external), separate code and data caches, and various technologies and features to enhance performance. The P5 has superior multiprocessor support compared to the i486 and is the first x86 CPU with hardware multiprocessing support similar to IBM mainframe computers. Intel collaborated with IBM to define this feature and design it into the P5 microarchitecture. Previous generations of x86 processors and competitor products lacked this capability. To maximize the potential of the dual pipeline, certain compilers were optimized to better exploit instruction-level parallelism, although not all applications gained significant benefits even when recompiled. The faster FPU greatly improved floating-point performance compared to the i486 or i387. Intel invested resources in optimizing products from development tool vendors, independent software vendors (ISVs), and operating system (OS) companies. In October 1996, a similar Pentium MMX was introduced, adding the MMX instruction set, larger caches, and other enhancements to the same basic microarchitecture. Competitors included the superscalar PowerPC 601 (1993), SuperSPARC (1992), DEC Alpha 21064 (1992), AMD 29050 (1990), Motorola MC88110 (1991), and Motorola 68060 (1994). Most of these also used superscalar in-order dual instruction pipeline configurations, including the non-superscalar Motorola 68040 (1990) and MIPS R4000 (1991). After the release of the Pentium II in 1997, Intel marketed the P5 Pentium processor as a budget product, discontinuing it in the early 2000s and transitioning to the Celeron processor, which replaced the 80486 brand.
Development
The P5 microarchitecture was developed by the same Santa Clara team that designed the 386 and 486. Design work began in 1989, and the team decided to use a superscalar RISC architecture. By 1990, the initial design was successfully simulated, and the design was transferred to silicon in April 1992. By mid-1992, the P5 team had 200 engineers after beta testing began. Intel initially planned to demonstrate the P5 at the PC Expo in June 1992, but the demo was canceled due to design issues, and the official announcement was postponed to spring 1993.
The early design of the P5, operating at 60–66 MHz, had issues with the floating-point unit, leading to incorrect (but predictable) results in some division operations. This flaw was discovered in 1994 by Professor Thomas Nicely at Lynchburg College in Virginia and became known as the "Pentium FDIV bug." As a result, Intel created a program to replace the defective processors.
In 1997, a malicious program was discovered that could crash systems without special privileges, known as the "F00F bug." All P5 series processors were affected, and although no revised step was released, modern operating systems applied patches to prevent crashes.
Improvements Over i486
The P5 microarchitecture brought several significant advancements over the previous i486 architecture.
Performance:
- Superscalar Architecture: The Pentium has two data paths (pipelines), allowing it to process two instructions per clock cycle in many cases. The main pipe (U) can handle all instructions, while the other pipe (V) handles the most common simple instructions. Some RISC advocates argued that the "complex" x86 instruction set could not be implemented in a densely pipelined microarchitecture, but the Pentium proved this possible and feasible.
- 64-bit External Data Bus: The amount of information that can be read or written during memory access has doubled, allowing the Pentium to load code caches faster than the 80486. It also increases the access and storage speed for 64-bit and 80-bit x87 FPU data.
- Separate Code and Data Caches: This reduces fetch and operand read/write conflicts compared to the 486. Each cache is organized as 2-way associative to reduce access time and implementation costs, making it more efficient than the single 4-way cache of the 486. Another improvement is the ability to read continuous blocks from the code cache, even if split between two cache lines (at worst, a minimum of 17 bytes).
- Faster Floating-Point Unit: Some instructions show tremendous improvements, particularly FMUL, which achieved up to 15 times the throughput of the 80486 FPU. The Pentium can also execute the FXCH ST(x) instruction in parallel with typical mathematical or load/store FPU instructions.
- 4-Input Address Adder: The Pentium further reduces address calculation latency compared to the 80486. It can calculate the full address mode in a single cycle, while the 486 had to split this calculation over two cycles.
- Microcode Optimization: Using two pipelines allows automatic repeat instructions like REP MOVSW to repeat once per clock cycle, while the 80486 required three clocks for each repetition. Additionally, optimizations in accessing the first microcode word during the decode stage allow several frequently used instructions to execute faster (e.g., (486→Pentium, clock cycle count): CALL (3→1), RET (5→2), shift/rotate (2–3→1)).
- Faster and More Complete Hardware Multiplier: Instructions like MUL and IMUL became several times faster and more predictable than the 80486. The execution time for 32-bit operands decreased from 1342 clock cycles to 1011.
- Virtualized Interrupts: Increased speed in virtual 8086 mode.
- Branch Prediction: Added branch prediction capabilities for performance improvement.
Other Features:
- Enhanced Debugging Features: A processor-based debug port was introduced.
- Improved Self-Test Features: Functions like L1 cache parity checks were added.
- New Instructions: Included CPUID, CMPXCHG8B, RDTSC, RDMSR, WRMSR, and RSM.
- Test Registers TR0–TR7: These registers and the MOV instruction for accessing them were removed.
The Pentium MMX, released later, added the MMX instruction set, which is a basic integer SIMD instruction set extension used in multimedia applications. MMX could not be used simultaneously with x87 FPU instructions due to register reuse. Additionally, the instruction and data cache sizes were doubled, and several microarchitecture changes were made for performance improvements. The Pentium was designed to execute over 100 million instructions per second (MIPS), with the 75 MHz model reaching 126.5 MIPS in specific benchmarks. The Pentium architecture nearly doubled the performance of the 486 processor in general benchmarks. The fastest 80486 parts (with slightly improved microarchitecture and operating at 100 MHz) exhibited performance nearly identical to the first-generation Pentium, while the AMD Am5x86, despite its name, was effectively a 486-class CPU, comparable in pure ALU performance to the Pentium 75. The initial versions of the 60–66 MHz P5 Pentium had issues with the floating-point unit, leading to incorrect (but predictable) results in some division operations. This flaw was widely known as the "Pentium FDIV bug," discovered by Professor Thomas Nicely in 1994, prompting Intel to establish a program to replace defective processors. In 1997, a malicious program was found that could crash systems without special privileges, known as the "F00F bug." All P5 series processors were affected, and while no revised step was released, modern operating systems applied patches to prevent crashes.
Cores and Stepping
- P5: The first Pentium microprocessor core, codenamed "P5," had a product code of 80501 (80500 for the earliest stepping Q0399). There were two versions, specified to operate at 60 MHz and 66 MHz, using Socket 4. This first Pentium implementation was released in a 273-pin PGA form factor and operated on a 5V power supply, derived from standard transistor-transistor logic (TTL) compatibility requirements. It contained 3.1 million transistors, measuring 16.7 mm x 17.6 mm, with an area of 293.92 mm², manufactured using an 800 nm bipolar complementary metal-oxide-semiconductor (BiCMOS) process. The 5-volt design resulted in relatively high energy consumption compared to subsequent models.
- P54C: Released in 1994, the P54C (80502) followed the P5 and had versions operating at 75, 90, and 100 MHz. It operated on a 3.3V power supply and transitioned to Socket 5. This was the first Pentium processor to operate at 3.3 volts, reducing energy consumption but requiring voltage adjustments on the motherboard. Like the 486 processor, it used an internal clock multiplier to allow internal circuits to operate at higher frequencies than the external address and data bus. This model also supported symmetric multiprocessing and featured an integrated local APIC and new power management capabilities. It contained 3.3 million transistors and measured 163 mm², manufactured using a process that could be defined as 500 nm and 600 nm BiCMOS.
- P54CQS: The P54CQS, a successor to the P54C, was released in early 1995 and operated at 120 MHz. Manufactured using a 350 nm BiCMOS process, this model was the first commercially produced microprocessor made with a 350 nm process. The transistor count remained the same as the P54C, and despite the new process, the die area was also unchanged. The chip was connected to the package and wire bonding, allowing connections only from the chip's edges. To achieve higher clock frequencies, the chip's logic circuit size was reduced while maintaining the same die size and existing pad ring.
- P54CS: Released shortly after the P54CQS, the P54CS operated at 133, 150, 166, and 200 MHz, introducing Socket 7. It contained 3.3 million transistors, measured 90 mm², and was manufactured using a 350 nm BiCMOS process with four levels of interconnect.
- P24T: The P24T Pentium OverDrive, released in 1995, was designed for 486 systems and operated at clock speeds of 63 MHz or 83 MHz based on a 3.3V 600 nm version. These used Socket 2/3 and required modifications to complement the 32-bit data bus and slow onboard L2 cache of 486 motherboards. This model featured a 32 KB L1 cache, double the size of the previous P55C Pentium CPU.
- P55C: The P55C (or 80503) is the Intel Pentium MMX microarchitecture developed at Intel's Haifa research and development center in Israel. It was marketed as a Pentium with MMX technology, introducing 57 "MMX" instructions to enhance multimedia performance based on the P5 core. The Pentium MMX line was introduced on October 22, 1996, and released in January 1997. The new instructions operated on 64-bit packed vector data types: vectors consisting of eight 8-bit integers, four 16-bit integers, two 32-bit integers, or one 64-bit integer. For example, the PADDUSB (packed ADD unsigned saturation byte) instruction adds two vectors element-wise, saturating to the maximum value of 255 in case of overflow. These specialized instructions generally require special coding by programmers.
Other changes in the core include a 6-stage pipeline (up from 5 stages in the P5) and a return stack, providing better parallelism, improved instruction decoders, a 16KB L1 data cache, and a 16KB L1 instruction cache. The L1 cache has 4-way associativity, and unlike the P5's 8KB L1 data/instruction cache, it supports four write buffers instead of one corresponding to each pipeline. Enhanced branch prediction features were inherited from the Pentium Pro, with a buffer of 512 entries (256 for the P5). The transistor count is 4.5 million, with an area of 140 mm². The process is 280 nm CMOS, described by Intel as "350 nm," similar in metal pitch to the previous 350 nm BiCMOS process. This process features four levels of interconnect. Pentium MMX notebook CPUs used mobile modules with the CPU directly attached. These modules, in the form of small printed circuit boards (PCBs), snap onto the notebook motherboard, typically with a heat dissipation device in contact with the module. The 250 nm Tillamook mobile Pentium MMX (named after a city in Oregon) included the module with the 430TX chipset and 512 KB of static RAM cache memory.
ペンティウム(別名i586)は、インテルが1993年3月22日に発売したx86マイクロプロセッサです。これは、ペンティウムブランドを使用する最初のCPUであり、8086互換プロセッサファミリーの第5世代と見なされています。内部的にはP5というマイクロアーキテクチャと呼ばれています。
インテルi486と同様に、ペンティウムは32ビットi386命令セットと互換性があります。これはi486と類似のマイクロアーキテクチャを使用していますが、二重整数パイプライン設計を実装できるように拡張されています。また、より進化した浮動小数点ユニット(FPU)を備えています。一部の学者やRISC競争相手は、複雑なCISC命令セットを持つマイクロアーキテクチャで二重パイプライン設計を実装することは不可能だと主張しましたが、ペンティウムはこれを実現しました。
P5ペンティウムは、最初のスーパースカラx86プロセッサであり、これはしばしば2つの命令を同時に実行できることを意味します。これを実現するために使用された技術のいくつかは、以前のスーパースカラインテルi960 CA(1989)に基づいており、他の詳細はP5設計のために独自に発明されました。また、i386やi486からコピーされた部分も多くあります。i486と同様に、ペンティウムは特定の命令または命令の一部に基づいて最適化されたマイクロコードシステムとRISCに類似した技術を使用しました。
主な特徴には、再設計されて大幅に高速化された浮動小数点ユニット、広い64ビットデータバス(内部および外部)、分離されたコードおよびデータキャッシュ、性能を向上させるためのさまざまな技術と機能があります。
P5はi486に比べてマルチプロセッササポートが優れており、IBMメインフレームコンピュータに類似したハードウェアマルチプロセッシングサポートを備えた最初のx86 CPUです。インテルはIBMと協力してこの機能を定義し、P5マイクロアーキテクチャに設計しました。以前の世代のx86プロセッサや競合製品にはこの機能がありませんでした。
二重パイプラインの潜在能力を最大限に活用するために、特定のコンパイラは命令レベルの並列性をよりよく活用するように最適化されましたが、すべてのアプリケーションが再コンパイルされても、かなりの利点を得るわけではありませんでした。より高速なFPUは、i486やi387に比べて浮動小数点性能を大幅に向上させました。インテルは開発ツール供給業者、独立ソフトウェア供給業者(ISV)、およびオペレーティングシステム(OS)会社と協力して、これらの製品を最適化するためにリソースを投入しました。
1996年10月、類似のペンティウムMMXが紹介され、これは同じ基本マイクロアーキテクチャにMMX命令セット、より大きなキャッシュ、およびその他の改善を追加したものです。
競合製品には、スーパースカラPowerPC 601(1993)、SuperSPARC(1992)、DEC Alpha 21064(1992)、AMD 29050(1990)、Motorola MC88110(1991)、およびMotorola 68060(1994)などがあります。これらのほとんどもスーパースカラインオーダー二重命令パイプライン構成を使用しており、非スーパースカラのMotorola 68040(1990)やMIPS R4000(1991)も含まれます。
インテルは1997年にペンティウムIIを発売した後、P5ペンティウムプロセッサを低価格製品として販売し、2000年代初頭にこれを廃止し、80486ブランドを置き換えたセレロンプロセッサに移行しました。
開発
P5マイクロアーキテクチャは、386および486を設計した同じサンタクララチームによって開発されました。デザイン作業は1989年に始まり、チームはスーパースカラRISCアーキテクチャを使用することを決定しました。1990年には初期設計が成功裏にシミュレーションされ、設計がシリコンに移行されたのは1992年4月でした。ベータテストが始まった後、1992年中頃までにP5チームには200人のエンジニアがいました。インテルは当初、1992年6月のPCエキスポでP5をデモする予定でしたが、デザインの問題によりデモはキャンセルされ、公式発表は1993年春に延期されました。
P5の初期設計は、60〜66 MHzペンティウムで浮動小数点ユニットに問題があり、一部の除算操作で誤った(しかし予測可能な)結果を引き起こしました。この欠陥は1994年にバージニア州リンチバーグ大学のトーマス・ナイシリー教授によって発見され、「ペンティウムFDIVバグ」として知られるようになりました。このため、インテルは欠陥のあるプロセッサを交換するプログラムを作成しました。
1997年には、特別な権限なしにシステムをクラッシュさせることができる悪意のあるプログラムが発見され、「F00Fバグ」と呼ばれました。すべてのP5シリーズプロセッサが影響を受け、修正されたステップはリリースされませんでしたが、現代のオペレーティングシステムはクラッシュを防ぐためにパッチを適用しました。
i486に対する改善点
P5マイクロアーキテクチャは、以前のi486アーキテクチャに対していくつかの重要な進展をもたらしました。
性能:
- スーパースカラアーキテクチャ: ペンティウムは2つのデータパス(パイプライン)を備えており、多くの場合、クロックサイクルごとに2つの命令を処理できます。主要なパイプ(U)はすべての命令を処理でき、もう一方のパイプ(V)は最も一般的な単純な命令を処理します。一部のRISC支持者は、「複雑な」x86命令セットが密にパイプライン化されたマイクロアーキテクチャで実装できないと主張しましたが、ペンティウムはこれを可能で実現可能であることを証明しました。
- 64ビット外部データバス: メモリアクセス時に読み書きできる情報の量が2倍になり、ペンティウムは80486よりもコードキャッシュをより迅速にロードできるようになりました。また、64ビットおよび80ビットx87 FPUデータのアクセスおよび保存速度も向上します。
- コードおよびデータキャッシュの分離: 486に比べてフェッチおよびオペランドの読み書きの衝突を減少させます。アクセス時間と実装コストを削減するために、2つのキャッシュはそれぞれ2-way associativeで構成されており、486の単一4-wayキャッシュよりも効率的です。ペンティウムのもう一つの改善点は、コードキャッシュから連続ブロックを読み取る能力であり、2つのキャッシュラインの間に分割されている場合でも可能です(最悪の場合、最小17バイト)。
- より高速な浮動小数点ユニット: 一部の命令は驚異的な改善を示し、特にFMULの場合、80486 FPUよりも最大15倍のスループットを記録しました。ペンティウムはまた、FXCH ST(x)命令を一般的な数学的またはロード/ストアFPU命令と並行して実行できます。
- 4入力アドレス加算器: ペンティウムは80486に比べてアドレス計算の遅延時間をさらに短縮します。ペンティウムはセグメントベース + 基本レジスタ + スケールされたレジスタ + 即時オフセットで全体のアドレスモードを単一サイクルで計算でき、486は3入力アドレス加算器しか持っておらず、これらの計算を2サイクルに分ける必要がありました。
- マイクロコード最適化: 2つのパイプラインを使用することで、REP MOVSWのような自動繰り返し命令がクロックサイクルごとに1回繰り返されるようにでき、80486は各繰り返しに3クロックが必要でした。また、デコード段階での最初のマイクロコード単語へのアクセス最適化により、いくつかの頻繁に使用される命令がより迅速に実行できるようになります(例:(486→ペンティウム、クロックサイクル数):CALL(3→1)、RET(5→2)、シフト/回転(2–3→1))。
- より高速で完全なハードウェアベースの乗算器: MULおよびIMULのような命令は、80486よりも数倍高速で予測可能になりました。32ビットオペランドに対する実行時間は1342クロックサイクルから1011に短縮されました。
- 仮想化された割り込み: 仮想8086モードの速度を向上させます。
- 分岐予測: 性能向上のために分岐予測機能が追加されました。
その他の特徴:
- 改善されたデバッグ機能: プロセッサベースのデバッグポートが導入されました。
- 改善された自己テスト機能: L1キャッシュパリティチェックなどの機能が追加されました。
- 新しい命令: CPUID、CMPXCHG8B、RDTSC、RDMSR、WRMSR、RSMが含まれました。
- テストレジスタTR0–TR7: これらのレジスタとアクセスのためのMOV命令が削除されました。
後にリリースされたペンティウムMMXは、MMX命令セットを追加し、これはマルチメディアアプリケーションに使用される基本整数SIMD命令セット拡張です。MMXはレジスタを再利用するため、x87 FPU命令と同時に使用することはできませんでした。また、命令およびデータキャッシュのサイズが2倍になり、性能向上のためのいくつかのマイクロアーキテクチャの変更が行われました。
ペンティウムは、1秒間に1億以上の命令(MIPS)を実行するように設計されており、75 MHzモデルは特定のベンチマークで126.5 MIPSに達することができました。ペンティウムアーキテクチャは、一般的なベンチマークで486プロセッサの性能をほぼ2倍提供しました。最も高速な80486部品(わずかに改善されたマイクロアーキテクチャと100 MHz動作を持つ)は、最初の世代のペンティウムとほぼ同じ性能を示し、AMD Am5x86は名前にもかかわらず、実際には486クラスのCPUであり、純粋なALU性能においてペンティウム75とほぼ同等でした。
60〜66 MHzのP5ペンティウムの初期バージョンは、浮動小数点ユニットに問題があり、一部の除算操作で誤った(しかし予測可能な)結果を引き起こしました。この欠陥は1994年にバージニア州リンチバーグ大学のトーマス・ナイシリー教授によって発見され、「ペンティウムFDIVバグ」として広く知られるようになりました。このため、インテルは欠陥のあるプロセッサを交換するプログラムを設けました。
1997年には、特別な権限なしにシステムをクラッシュさせることができる悪意のあるプログラムが発見され、「F00Fバグ」と呼ばれました。すべてのP5シリーズプロセッサが影響を受け、修正されたステップはリリースされませんでしたが、現代のオペレーティングシステムはクラッシュを防ぐためにパッチを適用しました。
コアとステッピング
ペンティウムは1990年代中頃のパーソナルコンピュータ向けのインテルの主要マイクロプロセッサでした。元の設計は新しいプロセスで再実装され、競争力を維持し、ポータブルコンピュータなどの特定の市場をターゲットにするために新しい機能が追加されました。これにより、P5マイクロアーキテクチャのいくつかの変種が存在することになりました。
- P5: 最初のペンティウムマイクロプロセッサコアは「P5」というコード名が付けられ、製品コードは80501(最初のステッピングQ0399の場合は80500)です。2つのバージョンがあり、それぞれ60 MHzと66 MHzで動作するように指定され、Socket 4を使用しました。この最初のペンティウム実装は273ピンPGA形式で発売され、5V電源で動作しました。これは一般的なトランジスタ-トランジスタロジック(TTL)互換性要件から派生したものです。トランジスタ数は310万個で、サイズは16.7 mm x 17.6 mm、面積は293.92 mm²に達します。800 nmバイポーラ補完金属酸化物半導体(BiCMOS)プロセスで製造されました。5ボルト設計は、後続モデルと比較して相対的に高いエネルギー消費を引き起こしました。
- P54C: P5に続いて1994年にP54C(80502)が発売され、75、90、100 MHzで動作するバージョンがありました。3.3V電源で動作し、Socket 5に移行しました。これは3.3ボルトで動作する最初のペンティウムプロセッサで、エネルギー消費を削減しましたが、マザーボードでの電圧調整が必要でした。486プロセッサと同様に、内部クロック倍数を使用して内部回路が外部アドレスおよびデータバスよりも高い周波数で動作できるようにしました。また、このモデルは双方向マルチプロセッシング機能をサポートし、統合ローカルAPICと新しい電源管理機能を備えています。トランジスタ数は330万個で、サイズは163 mm²です。プロセスは500 nmおよび600 nmで定義されるBiCMOSプロセスで製造されました。
- P54CQS: P54Cの後継モデルで、1995年初頭に発売され、120 MHzで動作します。350 nm BiCMOSプロセスで製造されたこのモデルは、商業的に350 nmプロセスで製造された最初のマイクロプロセッサです。トランジスタ数はP54Cと同じで、新しいプロセスにもかかわらずダイ面積も同じです。チップはパッケージとワイヤーボンディングで接続され、この方式はチップの端からのみ接続を許可します。小さなチップはパッケージの再設計を要求する可能性があるため、チップのサイズを同じに保ち、既存のパッドリングを維持しながらペンティウムの論理回路サイズを縮小してより高いクロック周波数を達成するようにしました。
- P54CS: P54CQSに続いて迅速に発売されたP54CSは、133、150、166、および200 MHzで動作し、Socket 7を導入しました。トランジスタ数は330万個で、サイズは90 mm²で、350 nm BiCMOSプロセスで4段階の相互接続を備えています。
- P24T: 1995年に発売されたP24Tペンティウムオーバードライブは、486システム向けに設計され、3.3V 600 nmバージョンに基づいて63 MHzまたは83 MHzのクロックで動作しました。これらはSocket 2/3を使用し、486マザーボードの32ビットデータバスと遅いオンボードL2キャッシュを補完するために修正が必要でした。このモデルは32 KB L1キャッシュを備えており、これは以前のP55CペンティウムCPUの2倍のサイズです。
- P55C: P55C(または80503)は、インテルのイスラエルハイファ研究開発センターで開発されたインテルペンティウムMMXマイクロアーキテクチャです。MMX技術が適用されたペンティウムとして販売され、P5コアを基にしながらマルチメディア作業性能を向上させるための57の「MMX」命令セットを導入しました。ペンティウムMMXラインは1996年10月22日に紹介され、1997年1月に発売されました。
新しい命令は64ビットパッキングベクターデータタイプで動作しました:8つの8ビット整数、4つの16ビット整数、2つの32ビット整数、または1つの64ビット整数で構成されるベクターです。たとえば、PADDUSB(パッキングされたADD符号なし飽和バイト)命令は、2つのベクターを要素ごとに加算し、オーバーフローが発生した場合は最大値である255に飽和します。これらの専門化された命令は、一般的にプログラマーの特別なコーディングを必要とします。
コアの他の変更には、6段階のパイプライン(以前のP5の5段階)と戻りスタックが含まれ、より良い並列性、改善された命令デコーダ、16KB L1データキャッシュ、16KB L1命令キャッシュが含まれています。L1キャッシュは4-way連想性を持ち、P5の8KB L1データ/命令キャッシュとは異なり、各パイプラインに対応する1つの書き込みバッファではなく、4つの書き込みバッファをサポートしています。改善された分岐予測機能はペンティウムプロから引き継がれ、512エントリバッファを持っています(P5の場合は256)。
トランジスタ数は450万個で、面積は140 mm²です。プロセスは280 nm CMOSで、以前の350 nm BiCMOSプロセスと類似の金属ピッチを持ち、インテルではこれを「350 nm」と説明しました。このプロセスは4段階の相互接続を備えています。
ペンティウムMMXノートブックCPUは、CPUが直接取り付けられたモバイルモジュールを使用しました。これらのモジュールは小型のプリント基板(PCB)形式で、ノートブックのメインボードにスナップ接続され、通常は熱分散装置が設置されてモジュールと接触します。250 nmティラミクモバイルペンティウムMMX(オレゴン州の都市名にちなんで名付けられた)では、モジュールに430TXチップセットとシステムの512 KB静的RAMキャッシュメモリも搭載されていました。
'Computer > CPU' 카테고리의 다른 글
Celeron [Intel / April 15, 1998] (0) | 2024.10.06 |
---|---|
Pentium II [Intel / May 7, 1997] (0) | 2024.10.05 |
Intel i486 [Intel / April 10, 1989] (0) | 2024.10.03 |
Intel i386 [Intel / 1985] (0) | 2024.10.02 |
Intel i860 [Intel / 1989] (0) | 2024.10.01 |