펜티엄 프로
펜티엄 프로(Pentium Pro)는 인텔이 개발 및 제조한 6세대 X86 마이크로프로세서로, 1995년 11월 1일 공개되었다.[1] 이 프로세서는 P6 마이크로아키텍처 (때로는 i686으로도 불림)를 구현했으며, 이를 적용한 최초의 x86 인텔 CPU였다. 펜티엄 프로는 원래 모든 응용 분야에서 기존 펜티엄을 대체하도록 의도되었다. 나중에 서버 및 하이엔드 데스크톱 프로세서로 더 좁은 역할로 축소되었다. 펜티엄 프로는 슈퍼컴퓨터에도 사용되었는데, 가장 주목할 만한 것은 1996년 최초로 1 테라플롭스를 넘어섰고 1997년부터 2000년까지 TOP500 목록에서 1위를 차지했던 ASCI Red였다. ASCI Red는 각 컴퓨팅 노드에 두 개의 펜티엄 프로 CPU를 사용했다.[2] 펜티엄과 펜티엄 MMX가 각각 310만 개와 450만 개의 트랜지스터를 가졌던 반면, 펜티엄 프로는 550만 개의 트랜지스터를 포함했다.[3] 이 프로세서는 듀얼 및 쿼드 프로세서 구성을 모두 지원했으며, 비교적 큰 직사각형 소켓 8이라는 단일 폼 팩터로만 출시되었다. 펜티엄 프로는 1998년에 펜티엄 II 제온으로 대체되었다. 마이크로아키텍처![]() ![]() ![]() ![]() 펜티엄 프로의 수석 설계자는 슈퍼스칼라에 전문화되었고 인텔 iAPX 432의 수석 엔지니어로도 일했던 프레드 폴락이었다.[4] 요약펜티엄 프로는 펜티엄의 P5 마이크로아키텍처와는 다른 새로운 마이크로아키텍처를 통합했다. 이 프로세서는 명령 풀을 사용하는 디커플드 14단계 슈퍼파이프라인 아키텍처를 가지고 있다. 펜티엄 프로(P6)는 넥스젠 Nx586 및 사이릭스 6x86과 같은 다른 현대적인 X86 디자인을 반영하는 많은 급진적인 아키텍처적 차이를 구현했다. 펜티엄 프로 파이프라인은 IA-32 명령어를 버퍼링된 마이크로 오퍼레이션 시퀀스로 동적으로 변환하기 위한 추가 디코딩 단계를 가졌다. 이 시퀀스는 여러 실행 장치에 동시에 발행될 수 있는 병렬화 가능한 작업을 감지하기 위해 분석, 재정렬 및 이름 변경될 수 있었다. 따라서 펜티엄 프로는 레지스터 이름 변경을 통한 투기적 실행을 포함하는 비순차적 명령어 처리를 특징으로 했다. 또한 더 넓은 36비트 주소 버스를 가졌으며, 물리 주소 확장(PAE)에 의해 사용 가능하여 최대 64 GB (64 × 10243 bytes)의 메모리에 접근할 수 있었다. 펜티엄 프로는 8KB 명령어 캐시를 가지고 있으며, 여기서 매 사이클마다 최대 16바이트가 페치되어 명령어 디코더로 전송된다. 세 개의 명령어 디코더가 있다. 디코더들의 능력은 같지 않다: 오직 하나만이 모든 x86 명령어를 디코딩할 수 있으며, 나머지 두 개는 간단한 x86 명령어만 디코딩할 수 있다. 이는 펜티엄 프로가 여러 명령어를 동시에 디코딩하는 능력을 제한하여 슈퍼스칼라 실행을 제한한다. x86 명령어는 118비트 마이크로 오퍼레이션(마이크로 오퍼레이션)으로 디코딩된다. 마이크로 오퍼레이션은 축소 명령어 집합 컴퓨터(RISC)와 유사하다; 즉, 연산, 두 개의 소스 및 대상을 인코딩한다. 일반 디코더는 사이클당 최대 4개의 마이크로 오퍼레이션을 생성할 수 있으며, 간단한 디코더는 사이클당 각각 1개의 마이크로 오퍼레이션을 생성할 수 있다. 따라서 메모리에서 작동하는 x86 명령어(예: 이 레지스터를 메모리의 이 위치에 추가)는 일반 디코더에 의해서만 처리될 수 있는데, 이 연산에는 최소 3개의 마이크로 오퍼레이션이 필요하기 때문이다. 마찬가지로 간단한 디코더는 1개의 마이크로 오퍼레이션으로 번역될 수 있는 명령어로 제한된다. 4개 이상의 마이크로 오퍼레이션이 필요한 명령어는 시퀀서의 도움을 받아 번역되며, 시퀀서는 여러 클럭 사이클에 걸쳐 필요한 마이크로 오퍼레이션을 생성한다. 펜티엄 프로는 바이오스 및 운영체제(OS) 제어 하에 업그레이드 가능한 마이크로코드를 지원한 x86 계열의 첫 프로세서였다.[5] 마이크로 오퍼레이션은 리-오더 버퍼 (ROB)를 빠져나와 예약 스테이션 (RS)에 진입하여 실행 장치로 디스패치되기를 기다린다. 각 클럭 사이클에 최대 5개의 마이크로 오퍼레이션이 5개의 실행 장치로 디스패치될 수 있다. 펜티엄 프로는 총 6개의 실행 장치를 가지고 있다: 두 개의 정수 장치, 하나의 부동소수점 장치(FPU), 로드 장치, 스토어 주소 장치, 스토어 데이터 장치.[6] 정수 장치 중 하나는 FPU와 동일한 포트를 공유하므로, 펜티엄 프로는 다른 세 개의 실행 장치에 대한 마이크로 오퍼레이션 외에 사이클당 하나의 정수 마이크로 오퍼레이션과 하나의 부동소수점 마이크로 오퍼레이션 또는 두 개의 정수 마이크로 오퍼레이션만 디스패치할 수 있다. 두 정수 장치 중 포트 0에서 FPU와 경로를 공유하는 장치만이 배럴 시프터, 곱셈기, 나눗셈기, LEA 명령어 지원 등 모든 기능을 갖추고 있다. 포트 1에 연결된 두 번째 정수 장치는 이러한 기능을 가지고 있지 않으며 덧셈, 뺄셈, 분기 대상 주소 계산과 같은 간단한 연산으로 제한된다.[6] FPU는 부동소수점 연산을 실행한다. 덧셈과 곱셈은 파이프라인 처리되며 각각 3사이클과 5사이클의 지연 시간을 갖는다. 나눗셈과 제곱근은 파이프라인 처리되지 않으며 FPU의 포트를 공유하는 별도의 장치에서 실행된다. 나눗셈과 제곱근은 각각 18-36사이클과 29-69사이클의 지연 시간을 갖는다. 가장 작은 숫자는 단정밀도(32비트) 부동소수점 숫자에 해당하고 가장 큰 숫자는 확장 정밀도(80비트) 숫자에 해당한다. 나눗셈과 제곱근은 덧셈 및 곱셈과 동시에 작동할 수 있으며, 결과가 ROB에 저장되어야 할 때만 실행이 중단된다. 마이크로프로세서가 출시된 후, 부동소수점 장치에서 버그가 발견되었는데, 일반적으로 "펜티엄 프로 및 펜티엄 II FPU 버그"라고 불리며 인텔에서는 "플래그 오차(flag erratum)"라고 불렸다. 이 버그는 부동소수점 숫자가 더 작은 정수 형식에 맞지 않을 때 부동소수점-정수 변환 중에 특정 상황에서 발생하여 FPU가 문서화된 동작에서 벗어나게 한다. 이 버그는 사소한 것으로 간주되며, 거의 영향을 미치는 소프트웨어 프로그램이 없을 정도로 특별한 상황에서 발생한다. 펜티엄 프로 P6 마이크로아키텍처는 인텔에서 10년 이상 여러 형태로 사용되었다. 파이프라인은 초기 150MHz부터 "튜얼라틴" 펜티엄 III의 1.4GHz까지 확장되었다. 이 디자인의 다양한 특징은 그 이후에도 파생 코어인 바니아스에서 펜티엄 M과 인텔 코어 (요나)로 이어졌고, 이 자체가 2006년부터 코어 마이크로아키텍처 (코어 2 프로세서)로 발전했다.[7] 명령어 집합펜티엄 프로 (P6)는 인텔 제품군에 새로운 '조건부 이동' 명령어를 도입했다; `CMOVcc` 및 `FCMOVcc` ('조건부 이동') 명령어는 레지스터 또는 메모리에서 소스 값을 가져와 플래그 레지스터의 조건 `cc`에 따라 선택적으로 그 값을 대상 레지스터에 쓴다. 이 조건은 조건부 점프 (`Jcc`) 명령어에서 사용되는 것과 동일하다. 예를 들어, `CMOVNE`는 플래그 레지스터가 NE (같지 않음) 조건과 일치할 때, 즉 제로 플래그가 설정되지 않았을 때 지정된 값을 레지스터로 이동시킨다. 만약 제로 플래그가 설정되어 있다면, 조건은 거짓이 되고 대상 레지스터는 그 값을 유지한다. 이는 비용이 많이 드는 조건부 분기 없이 간단한 if-then-else 연산 (C 언어의 `? :` 연산에서 흔히 사용되는 것과 같은)을 허용한다. `FCMOVcc` 변형은 부동소수점 레지스터에 대해 동일한 기능을 제공한다. 안타깝게도 `CMOV`는 즉시 값 (인라인 상수) 소스 값이나 메모리 대상을 지원하지 않는다. 두 번째 개발은 `UD2` 불법 명령어의 문서화였다. 이 연산 코드는 예약되어 있으며 P6 및 모든 이후 프로세서에서 불법 명령어 예외를 발생시키도록 보장된다. 이는 개발자가 소프트웨어에서 버그가 감지되었을 때 미래 지향적인 방식으로 현재 프로그램을 쉽게 충돌시킬 수 있도록 한다. 성능당시에는 고급 기술이었음에도 불구하고, 펜티엄 프로의 비순차적 레지스터 이름 변경 아키텍처는 16비트 코드 및 혼합 코드(16비트와 8비트 (8/16), 또는 16비트와 32비트 (16/32)) 실행에 어려움을 겪었는데, 이는 부분 레지스터 사용으로 인해 파이프라인 플러싱이 자주 발생했기 때문이다.[8] 부분 레지스터의 특정 사용은 당시에는 일반적인 성능 최적화 방법이었는데, P6 이전 인텔 프로세서에서는 성능 저하가 없었기 때문이다. 또한 펜티엄 프로 출시 당시 주류 운영 체제는 16비트 도스와 혼합 16/32비트 윈도우 3.1x 및 윈도우 95였다(후자는 최소 80386 CPU가 필요했지만, 성능상의 이유로 여전히 16비트 윈도우 USER 동적 연결 라이브러리, user.exe와 같은 많은 코드가 16비트였다). 이와 함께 펜티엄 프로 시스템의 높은 비용은 당시 PC 구매자들 사이에서 판매 부진으로 이어졌다. 펜티엄 프로의 P6 마이크로아키텍처를 완전히 활용하려면 윈도우 NT, 리눅스, 유닉스, 또는 OS/2와 같은 완전한 32비트 운영 체제가 필요했다. 레거시 코드의 성능 문제는 나중에 인텔이 펜티엄 II로 부분적으로 완화했다. RISC 마이크로프로세서와 비교했을 때, 펜티엄 프로는 출시 당시 SPECint95 벤치마크를 실행할 때 정수 성능에서 가장 빠른 RISC 마이크로프로세서를 약간 능가했지만,[9] 부동소수점 성능은 일부 RISC 마이크로프로세서의 절반 수준으로 현저히 낮았다.[9] 펜티엄 프로의 정수 성능 우위는 빠르게 사라졌으며, 1996년 1월 MIPS 테크놀로지스 R10000에 의해 추월당하고, 이어서 디지털 이큅먼트 코퍼레이션의 알파 21164의 EV56 변형에 의해 추월당했다.[10] 평론가들은 P6 플랫폼의 약점으로 비디오 메모리에 대한 매우 느린 쓰기 속도를 빠르게 지적했으며, VIDSPEED와 같은 벤치마크에서 동일한 클럭 속도의 펜티엄 시스템의 10% 수준으로 성능이 낮았다. 이를 우회하는 방법으로는 퀘이크와 같은 게임에서 VESA 드로잉을 비디오 메모리 대신 시스템 메모리로 설정하는 것이 있었고,[11] 나중에는 CPU의 쓰기 결합 기능을 활성화하여 특정 게임에서 성능을 두 배로 높일 수 있는 FASTVID와 같은 유틸리티가 등장했다.[12][13] 1997년부터 윈도우 비디오 드라이버에 의해 메모리 타입 범위 레지스터(MTRR)가 자동으로 설정되었고, 그 이후로 개선된 캐시/메모리 서브시스템과 FPU 성능 덕분에 1990년대 중후반의 새로운 3D 게임에서 펜티엄을 클럭 대 클럭으로 압도했으며, 특히 윈도우 NT 4.0을 사용할 때 더욱 두드러졌다. 그러나 MMX 구현 부족으로 해당 명령어를 활용하는 멀티미디어 애플리케이션에서는 성능이 저하되었다. 캐싱아마도 펜티엄 프로의 가장 눈에 띄는 추가 기능은 온패키지 L2 캐시였는데, 도입 당시 256KB에서 1997년에는 1MB까지 범위가 늘어났다. 당시 제조 기술로는 대규모 L2 캐시를 프로세서 코어에 통합하는 것이 불가능했다. 대신 인텔은 L2 다이를 패키지 안에 별도로 배치하여 CPU 코어와 동일한 클럭 속도로 작동할 수 있도록 했다. 또한, 대부분의 마더보드 기반 캐시 방식이 CPU와 메인 시스템 버스를 공유했던 것과 달리, 펜티엄 프로의 캐시는 자체 백사이드 버스(인텔은 이중 독립 버스라고 불렀다)를 가지고 있었다. 이로 인해 CPU는 메인 메모리와 캐시를 동시에 읽을 수 있어 전통적인 병목 현상을 크게 줄였다.[14] 캐시는 또한 "논블로킹"이었는데, 이는 프로세서가 한 번에 여러 캐시 요청(최대 4개)을 발행할 수 있어 캐시 미스 페널티를 줄였다는 의미이다; 이는 메모리 수준 병렬성(MLP)의 한 예시이다. 이러한 특징들이 결합되어 이전 프로세서의 마더보드 기반 캐시보다 훨씬 빠른 L2 캐시를 만들어냈다. 이 캐시만으로도 CPU는 이전 X86 CPU에 비해 입출력 성능에서 우위를 점했다. 다중 프로세서 구성에서 펜티엄 프로의 통합 캐시는 각 CPU가 중앙 캐시를 공유하는 아키텍처에 비해 성능을 급증시켰다. 하지만 이 훨씬 빠른 L2 캐시는 몇 가지 복잡성을 동반했다. 펜티엄 프로의 "온패키지 캐시" 배열은 독특했다. 프로세서와 캐시는 동일한 패키지 내의 별도 다이에 있었고 풀 스피드 버스로 긴밀하게 연결되어 있었다. 두 개 또는 세 개의 다이는 테스트가 가능하기 전에 생산 과정 초기에 함께 접합되어야 했다. 이는 어느 한 다이에서 단 하나의 작은 결함이라도 발생하면 전체 어셈블리를 폐기해야 했음을 의미했으며, 이는 펜티엄 프로의 비교적 낮은 생산 수율과 높은 비용의 원인 중 하나였다. 이 칩의 모든 버전은 비쌌고, 특히 1024KB 버전은 두 개의 512KB 캐시 다이와 프로세서 다이가 필요했기 때문에 특히 그러했다. 사용 가능한 모델펜티엄 프로의 클럭 속도는 150, 166, 180 또는 200MHz였으며, 외부 버스 클럭은 60 또는 66MHz였다. 개발 초기 단계에서 133MHz 펜티엄 프로 시제품이 개발되었지만 출시되지는 않았다. 일부 사용자들은 펜티엄 프로 칩을 오버클럭했는데, 200MHz 버전은 종종 233MHz로, 180MHz 버전은 종종 200MHz로, 150MHz 버전은 종종 166MHz로 작동되었다. 이 칩은 대칭형 다중 처리 구성에서 인기가 있었으며, 듀얼 및 쿼드 SMP 서버 및 워크스테이션 설정이 일반적이었다. 인텔은 전력 소모와 발열 문제로 원래 펜티엄 프로의 모바일 프로세서 버전을 제공하지 않았다.[15] 적어도 한 공급업체는 펜티엄 프로를 탑재한 휴대용 컴퓨터(임페리얼 컴퓨터의 6200TLP)를 판매했다.[16] 인텔의 "패밀리/모델/스테핑" 방식에서 펜티엄 프로는 패밀리 6, 모델 1이며 인텔 제품 코드는 80521이다.
제조펜티엄 프로 프로세서 다이와 별도의 캐시 메모리 다이를 제조하는 데 사용된 공정은 변경되었고, 같은 패키지 내에서 여러 공정이 조합되어 사용되었다.
패키징펜티엄 프로(최대 512KB 캐시)는 세라믹 멀티칩 모듈(MCM)로 패키징된다. MCM은 387개의 핀을 가지고 있으며, 그 중 약 절반은 핀 그리드 배열(PGA)로, 나머지 절반은 삽입형 핀 그리드 배열(IPGA)로 배열되어 있다. 패키징은 소켓 8용으로 설계되었다. MCM은 마이크로프로세서 다이와 동반 캐시 다이가 위치하는 두 개의 하부 캐비티를 포함한다. 다이들은 방열판에 접합되어 있으며, 노출된 상단은 다이에서 방열판과 같은 냉각 장치로 열이 더 직접적으로 전달되도록 돕는다. 다이들은 일반적인 와이어 본딩을 사용하여 패키지에 연결된다. 캐비티는 세라믹 플레이트로 캡핑된다. 1MB 캐시를 가진 펜티엄 프로는 플라스틱 MCM을 사용한다. 두 개의 캐비티 대신 하나만 있으며, 세 개의 다이가 방열판 대신 패키지에 접합되어 있다. 캐비티는 에폭시로 채워져 있다. 업그레이드 경로1998년, 소켓 8용 300/333MHz 펜티엄 II 오버드라이브 프로세서가 출시되었다. 데슈트 펜티엄 II 제온에 사용된 일부 기술을 기반으로, 더블 L1과 512KB의 풀 스피드 L2 캐시, MMX 기능을 특징으로 하며, 인텔은 펜티엄 프로 시스템 소유자를 위한 드롭인 업그레이드 옵션으로 생산했다. 그러나 쿼드 프로세서 시스템에 사용할 수 있는 업그레이드는 아니었으며, 4-way 이상의 멀티프로세싱은 지원하지 않고 2-way 글루리스 멀티프로세싱만 지원했다. 그럼에도 불구하고 일부 사용자들은 쿼드 및 헥사 프로세서 시스템(특히 ALR 6x6)을 다양한 성공률로 비공식적으로 업그레이드했다.[19] ASCI Red 슈퍼컴퓨터 또한 1999년에 이러한 특수 패키징된 펜티엄 II 오버드라이브 프로세서를 활용하여 그 해에 전체적으로 2 테라플롭스 성능을 초과한 최초의 컴퓨터가 되었으며, 2000년 ASCI 화이트 슈퍼컴퓨터에 의해 추월될 때까지 TOP500 목록에서 그 위치를 유지했다. 1996년 처음부터 사용되던 원래의 듀얼 펜티엄 프로 프로세서는 각 컴퓨팅 노드에서 듀얼 펜티엄 II 오버드라이브 프로세서로 교체되었다. ASCI Red는 2006년에 가동 중단되기 전까지 남은 수명 동안 계속해서 듀얼 펜티엄 II 오버드라이브 프로세서를 사용했다. 슬롯 1 마더보드가 보편화되면서 여러 제조업체는 Tyan M2020, Asus C-P6S1, Tekram P6SL1, Abit KP6를 포함하는 소켓 8-슬롯 1 어댑터 형태의 슬로켓을 출시했다. 이 슬로켓은 펜티엄 프로 프로세서가 슬롯 1 마더보드와 함께 사용될 수 있도록 했지만, 소수의 칩셋만이 이 슬로켓을 지원하여 널리 사용되지는 않았다. 예를 들어, 인텔 440FX 칩셋은 펜티엄 프로와 펜티엄 II 프로세서를 모두 명시적으로 지원했지만, 인텔 440BX 및 이후의 슬롯 1 칩셋은 펜티엄 II만 명시적으로 지원하고 펜티엄 프로는 지원하지 않았다. 슬로켓은 1990년대 후반 인텔이 소켓 370 셀러론 및 펜티엄 III 프로세서를 도입하면서 소켓 370에서 슬롯 1 어댑터 형태로 다시 인기를 얻었다. 이러한 형태의 슬로켓은 컴퓨터 제작자, 특히 듀얼 프로세서 시스템의 경우 비용을 절감할 수 있게 해 주었고, 슬롯 1 마더보드가 당시 사용 가능한 슬롯 1 CPU를 넘어 계속 CPU 업그레이드를 받을 수 있도록 했다. 또한 새로운 CPU에 더 낮은 코어 전압을 공급하기 위해 자체 전압 레귤레이터 모듈을 갖추고 있었는데, 이는 마더보드가 자체적으로는 허용하지 않았을 것이다. 코어 사양펜티엄 프로
펜티엄 II 오버드라이브![]()
버스 및 다중 프로세서 기능펜티엄 프로 버스 설계는 퓨처버스, 인텔 iAPX 432 버스, 그리고 인텔 i960 버스 요소들의 영향을 받았다.[22] 퓨처버스는 1970년대 후반부터 모토로라 68000이 사용하던 VME버스를 대체하는 주요 표준화된 고급 버스로 의도되었으나, 수십 년간 표준화 위원회 내에서 정체되어 있었다.[22] 인텔의 iAPX 432 이니셔티브 또한 상업적 실패였으나, 그 이후 캐시 없는 다중 프로세서 시스템을 지원하는 분할 트랜잭션 버스를 구축하는 방법을 배웠다. i960은 분할 트랜잭션 iAPX 432 버스를 더 발전시켜 캐시 일관성 프로토콜을 포함시켰고, 결과적으로 퓨처버스의 야심을 강하게 연상시키는 기능 세트를 갖추게 되었다.[22] 펜티엄 프로는 프론트 사이드 버스에 GTL+ 신호 방식을 사용했다.[23] 펜티엄 프로는 최대 4-way 디자인에 자체적으로 사용될 수 있었다. 8-way 펜티엄 프로 컴퓨터도 제작되었지만, 이들은 여러 버스를 사용했다.[24] 펜티엄 프로는 또한 4-way SMP 분할 트랜잭션 캐시 일관성 버스를 생산되는 모든 칩의 필수 기능으로 포함하도록 설계되었는데,[22] 이는 또한 복제 프로세서를 사용하여 경쟁자가 소켓에 접근하는 것을 막는 방법으로도 작용한다.[22] 펜티엄 프로는 윈도우 95 및 다른 많은 16비트 및 혼합 16/32비트 운영 체제에 대한 16비트 지원이 미흡하여 대중을 위한 컴퓨터로는 성공하지 못했지만(위에서 언급했듯이), 고급 통합 버스 설계 덕분에 파일 서버 분야에서는 상당한 성공을 거두며,[22] 이전에는 고가의 워크스테이션 부문에서만 사용할 수 있었던 많은 고급 기능을 대중 시장에 도입했다. 펜티엄 프로/6세대 경쟁자같이 보기각주
외부 링크
|
Portal di Ensiklopedia Dunia