Pentium Pro(ペンティアム プロ)は、インテルが1995年11月に発売したx86アーキテクチャのマイクロプロセッサ(CPU)である。P6マイクロアーキテクチャを採用した最初の製品であり、x86プロセッサとしては初めてRISCプロセッサに迫る性能を実現した。主な用途はローエンドサーバ、ワークステーション、ハイエンドデスクトップパソコンなど高度な処理を必要とする環境下で利用された。

## 概要

Pentium Proは、「Pentium」という名称が付けられているが、内部構造はP5マイクロアーキテクチャのPentiumとは完全に異なり、P6マイクロアーキテクチャを採用した最初のCPUである。P6マイクロアーキテクチャはRISCの設計思想を取り込み、x86命令を複数の単純化した命令に分割して実行する。また、命令発行ポートを5つ持つスーパースカラ構造、多段パイプラインを効率よく動作させるための分岐予測といった先進技術を採用し、32ビットコードでは同クロックのPentiumを大きく凌駕する演算処理速度を実現した。

Pentium Proは、2次キャッシュメモリにアクセスするための内部バスを、メインメモリにアクセスするための外部バスから分離し、CPUコアと等速度で動作する2次キャッシュメモリをCPUコアと同一のパッケージ上に搭載した。外部バスにフロントサイドバス(FSB)、内部バスにバックサイドバス(BSB)と個別の名称を与えてバス・アーキテクチャを解説するのは後継のPentium IIからで、Pentium Proが発表された当時はこの二つを合わせてデュアル・インディペンデント・バス(DIB)と呼称していた。DIBの導入により、頻繁に発生する2次キャッシュへのアクセスが低速なFSBに律速されることを回避し、2次キャッシュとメインメモリへの同時アクセスも可能となり、メモリアクセスでCPUの動作が阻害されることを低減した。

新しく開発されたSocket 8に装着するCPUパッケージはCPUとは別に2次キャッシュメモリのチップを搭載し、巨大な長方形の形態をとっていた。CPU自体のトランジスタ数は550万個であったが2次キャッシュはその数倍ものトランジスタ数であった。後年発売された2次キャッシュメモリ1 MB版のPentium Proは512 KBのメモリチップ2枚とCPUコア1枚の3チップ構成となっている。

Pentium(P54C Pentium)において除算において計算結果を誤ることがある致命的なエラッタを起こし、その対策として全数リコールを行った反省から、P6マイクロアーキテクチャはマイクロコードの一部をソフトウェアで書き換えられるようになっている。Pentium Pro以降のCPUで発生したエラッタは、過去判っている範囲において、BIOSやオペレーティングシステム(OS)を介して供給される、暗号化されたコードブロックをCPUに書き込むことで回避している。また、整数乗算が4サイクルのパイプライン実行が可能になったほか、多くの命令でPentiumより高速化している。

## モデル

Pentium Proのモデルは、CPUコアのクロックおよび2次キャッシュメモリの容量により区別される。

- 133 MHz版がエンジニアリング用サンプルとして提供された。外部バスのクロックは66 MHz、2次キャッシュメモリの容量は256 KB。
- 1995年11月に150 MHz、180 MHz、200 MHz版が発売された。外部バスのクロックは、150 MHz、180 MHz版が60 MHz、200 MHz版が66 MHz。2次キャッシュメモリの容量はいずれも256 KB。
- 1996年前半に2次キャッシュメモリの容量が512 KBの166 MHz、200 MHz版が発売された。外部バスのクロックはいずれも66 MHz。
- 1997年8月に2次キャッシュメモリの容量が1 MBの200 MHz版が発売された。外部バスのクロックは66 MHz。2次キャッシュメモリの容量が256 KB、512 KBのものは紫色に金色のヒートスプレッダであるのに対し、1 MBのものは黒一色に白で「Pentium Pro」のロゴが印刷されている。これは、1 MB版はCPUコアに加え512 KBのメモリチップ2枚を収めるため、セラミックではなく樹脂製(FRP)パッケージとなり、上面にアルミのヒートスプレッダを貼り付けた構造となっていることによる。また、1 MB版は消費電力が大きいため、CPUに電源を供給するためのVRMも別のものを使用する必要がある。

## チップセット

インテルからPentium Pro用に以下の3種類のチップセットが提供された。

- 450GX(Orion)
  - Pentium Proの発売と同時に提供されたサーバ向けチップセット。
  - 4 CPUまでのSMPをサポート。
  - メモリコントローラは4 GBまでのFast Page Mode (FPM) DRAMと4 wayまでのインターリーブをサポート。メモリコントローラを2系統搭載することによって、8 GBまでのFPM DRAMをサポート。
  - PCIブリッジはPCI 2.0をサポート。PCIブリッジを2個搭載することによって、PCIのパフォーマンスを向上できる。
- 450KX(Mars)
  - Pentium Proの発売と同時に提供されたワークステーション向けチップセット。機能的には450GXのサブセット。
  - 2 CPUまでのSMPをサポート。
  - メモリコントローラは1 GBまでのFPM DRAMと2 wayまでのインターリーブをサポート。
  - PCIブリッジはPCI 2.0をサポート。
  - メモリコントローラ6個、PCIブリッジ1個のチップ7個から構成され、それ以外にPCI - ISAブリッジ用チップが必要。同時期のPentium用チップセット430FX(Triton)が3個のチップ(PCI-ISAブリッジを除く)から構成されていたのと比べ、複雑な構成となり、Pentium Proシステムが高価な原因であった。
- 440FX(Natoma)
  - 450KXの後継チップセットとして1996年5月に提供された。
  - 2 CPUまでのSMPをサポート。
  - メモリコントローラは1 GBまでのFPM DRAM、Extended Data Out(EDO)DRAM、Burst Extended Data Out(BEDO)DRAMをサポート。
  - PCIブリッジはPCI 2.1をサポート。
  - USB 1.0をサポート。
  - 2個のチップ(PCI-ISAブリッジを除く)から構成されており、450KXより低価格にPentium Proシステムを提供できるようになった。
  - 1997年8月に440LXが提供されるまで、Pentium IIシステムでも使用された。
  - 一部の機種ではCeleronシステムにも流用された。特にPC-9800シリーズではこの時期に本格的な開発が事実上ストップしたため、2003年9月の受注終了までCeleron搭載機に使われつづけた。

上記以外の独自チップセットを使用して、4 CPUを超えるSMPを実現したシステムも存在した。

## 性能

200 MHz、2次キャッシュメモリ256 KBのPentium Proを搭載したシステムは、SPECint95 8.09、SPECfp95 6.75を記録した。これはPentium Pro発売時に最速のPentiumであった、133 MHzのPentiumを搭載したシステムのおよそ2倍の性能であった。当時のRISCプロセッサとの比較では、従来はRISCプロセッサの領域と考えられていた整数演算性能を実現し、浮動小数点演算においてもRISCプロセッサの性能に近づいていた。2000年6月にはインテルで開発したASCI Redが9,632のPentium Proを搭載し、最大理論性能で3.2 TFLOPSの演算速度によりスーパーコンピュータのTOP500の第1位に輝いた。

Pentium Proは32ビットコードに特化した設計のため、16ビットコードの実行速度においてはPentiumに劣り、ほとんどの場合、200 MHzのPentium Proは133 MHzのPentiumより遅かった。Pentium Proの発売当時のデスクトップパーソナルコンピュータはWindows 3.x上の16ビットアプリケーションからWindows 95上の32ビットアプリケーションへの移行期であったが、32ビットアプリケーションの実行速度においても、Pentium ProはPentiumに対してWindows NT上ほどWindows 95上では大きな差を示せなかった(Windows 95内の一部が16ビットコードで記述されていたためとされる)。このような問題自体はマイクロアーキテクチャの切り替え時には珍しいことではなく、同じような問題はIntel 486からPentiumへ、Pentium IIIからPentium 4への移行時にも発生したが、特にPentium Proの場合は象徴的な特徴となり、実際にWindows NTモデルばかりが出荷され、当時主流だったWindows 95プレインストールモデルがまず見られないほどの明確な差別化が発生した。

## 応用製品

サーバ、ワークステーション向けCPUとして発売され、主に以下の用途の製品に使用された。

- 4 CPUまでのローエンドサーバ
- ワークステーション
- Windows NTをインストールしたハイエンドデスクトップパーソナルコンピュータ

Pentium Proは、Windows 95をインストールしたデスクトップパーソナルコンピュータ向けに使用されることはほとんどなかった。この用途では、Pentium、Pentium MMXが使用された。

## 後継CPU

Pentium ProはCPUコアと2次キャッシュメモリを同一のパッケージ上に搭載したことが足枷となり、歩留まりが悪く(コア、キャッシュ双方の不良率が同じであったとしても、単純計算で1チップ構成CPUの2倍の不良率となる)、製造コストは高止まりした。この問題を解決するため、後続製品のPentium II、Celeronではパッケージ形状が変更され、Socket 8の代わりにSlot 1を使用した。

- 1997年5月に発売されたPentium IIは2次キャッシュメモリをCPUコアと同一基板上に搭載した。2次キャッシュメモリの動作クロックは、CPUコアの1/2。この製品のパッケージ形状はSingle Edge Connector Cartridge(SECC)と呼ばれた。
- 1998年4月に発売されたCeleron(Covington)は、2次キャッシュメモリを省略した。また、1998年8月に発売されたCeleron(Mendocino)は、容量を削減した2次キャッシュメモリをCPUコア内に搭載した。これらの製品のパッケージ形状はSingle Edge Processor Package(SEPP)と呼ばれた。

結局、Socket 8に対応するCPUは、Pentium Proとそのオーバードライブプロセッサ以外には発売されなかった。

Pentium IIは、16ビットコードの処理速度をPentium Proより改善し、MMXをサポートしていた。Pentium IIが登場すると、デスクトップパーソナルコンピュータ用のPentium ProはPentium IIによって置き換えられた。しかし、Pentium Proが4 CPUまでのSMPをサポートしていたのに対し、Pentium IIは2 CPUまでのサポートであったため、Pentium IIの登場後も、サーバ向けには1998年6月にPentium II Xeonが登場するまでPentium Proが使用された。

## アップグレード

Pentium Proシステムをアップグレードするためには以下の手段があった。

- Pentium Proは外部バスに対するCPUコアのクロック倍率が固定されておらず、Pentium Pro用マザーボードの多くは3.5倍までの設定が可能であった。このため、200 MHzのPentium Proを233 MHzにオーバークロックする試みを容易に行えた。
- 1998年8月にインテルからPentium II OverDrive Processorが発売された。
  - CPUコアのクロックは、外部バスの5.0倍固定(300 MHzまたは333 MHz)。
  - CPUコアと同一基板上にCPUコアのクロックと等速度の2次キャッシュメモリを512 KB搭載。
  - MMXをサポート。
  - 2 CPUまでのSMPをサポート。(公式には動作しないとされているが、4 CPUでも動作する。)
  - インテルは日本向け製品を提供しなかったので、日本では並行輸入品のみが販売された。
  - オーバードライブプロセッサ (ODP) の提供はPentium Proの発表時から予告されていた。
- 440FXチップセットであればSocket 8とSlot 1(Socket 370に変換可能)の両方に対応しているため、Socket 370用のMendocinoコアのCeleronをSocket 8で使用するためのアダプタ(ゲタ)が発売された。またPentium ProをSlot 1(Socket 370では不可)で使用するアダプタも発売された。これらはODPとは異なり基本的に440FX向けの作りであるため、450GX/KXや、440LX以降のチップセットを使用したシステムでの動作は期待できない。
  - さらには、Socket 8をSocket 370(PPGA)に変換するアダプタに、PPGAやFC-PGAをFC-PGA2(後期のSocket 370の電気規格)に変換させるアダプタの二段挿しにより、Celeron Tualatin1.4GHz(実際のクロックは66.6x14倍の933MHz動作)や、Pentium III-S1.4GHz(実際のクロックは66.6x10.5倍の700MHz動作)、場合によってはVIA C3(逓倍率が変更可能だがパフォーマンスは劣る)を動作させることのできるマザーボードもあった。
  - いずれにせよPentium Proしか想定していないBIOSでは異なるCPUが動作しない場合も少なくないため、基本的にはBIOSが対応している必要があった。