P6マイクロアーキテクチャ

**P6マイクロアーキテクチャ**とは、インテルによって開発されたマイクロプロセッサのマイクロアーキテクチャである。1995年11月1日に正式発表され、**[[Pentium Pro]]プロセッサ**として製品化された。

## 概要
x86命令セットのCPUとしては6世代目のアーキテクチャであり、IA-32としては4世代目になる。

P6マイクロアーキテクチャを最初に採用した製品は1995年11月に発売されたPentium Proプロセッサ。2000年までインテルの主力製品のアーキテクチャとして使われた。その後、Pentium 4などに採用されたNetBurstマイクロアーキテクチャに市場の主流は移ったが、モバイル向けやブレード・サーバなど省電力低発熱が求められる市場ではそのまま継続された。そのアーキテクチャと市場はPentium MやIntel Coreに受け継がれている。

## 特徴
P6マイクロアーキテクチャは、それまでの世代とは一線を画する設計に基づく。

*x86命令セットをRISC的命令セットへ、さらにμOPsと呼ばれる単純な命令に変換する。命令によっては1つのx86命令を複数のμOPsに分割・変換する命令変換機構を備える
*命令変換機構において命令発行系統を3系統もつスーパースケーラ構造である
*6つの実行ユニット持ち、同時に5命令の発行＆実行が可能。
*投機的実行機能とアウト・オブ・オーダー実行機能とレジスタ・リネーミング機能を備える
*μOPs実行部はRISCプロセッサである
*10段から14段のパイプラインステージを持つスーパーパイプライン構造である（P5は5段）
*長いパイプラインを効率よく動作させる分岐予測機構を備える
*ベクトルプロセッサ機能を持つ（Pentium III以降）
*CPUと密結合したキャッシュメモリを備える
*一連の書き込みをバス幅に揃える高度なライトバック機能を備える
*対称型マルチプロセッサを前提としたバスプロトコルを備える
*高周波数で駆動できるGTLバスドライブ方式を採用する

等、命令セットの互換性はあるが全く別物と言える。

*物理アドレス拡張

さらにシステムレベルでは、設計当時予想されたシステムの大規模化を考慮して、メモリタイプ範囲レジスタ (MTRR) の追加、ページサイズ拡張 (PSE)、アドレスバスの拡張 (PAE) が行われた。その他、エラッタ（設計ミスによる不具合）対策として書き換え可能なコントロールストアを持ち、マイクロコードをソフトウエアで書き換えられるようになった。BIOSまたはオペレーティングシステムを介して暗号化されたコードブロックをCPUに書き込むことにより致命的なエラッタを回避できる。

P6マイクロアーキテクチャに基づいて作られ市場に投入された最初の製品となるPentium Proは、今後は32bit命令が主流となるとの想定のもとに32bit命令を効率よく処理する様に最適化されたが、当時のコンシューマ市場では依然として16bit命令の残るWindows（3.1および95）や、ほとんどが16bit命令で構成されるMS-DOSが主流であり、16ビットコードの実行パフォーマンスを軽視したPentium Proはこれらの環境においては十分なパフォーマンスを発揮できなかった。

一方、32bit命令で構成されたWindows NTやUNIX系のオペレーティングシステムを用いるサーバやワークステーション等の用途では、チップセットと共に安定性と十分なパフォーマンスが評価され、ダウンサイジングの時流も追い風となって一定の成功を収め、のちにエントリークラスのRISCワークステーションをIA32アーキテクチャが駆逐してゆく橋頭堡を築くまでに至った。

さらに16bit命令セットを高速に実行できるよう改良するとともにMMX命令セットを追加したPentium IIとして発売されることで着実に死角を埋めたP6マイクロアーキテクチャは、コンシューマ市場にも広く受け入れられることとなった。

### バリエーション


Pentium Pro
Pentium II
Celeron
Pentium III


スーパーパイプライン








Micro-OPs








書き換え可能なコントロールストア








多重分岐予測








アウト・オブ・オーダー









ストリーミングSIMD拡張命令
ストリーミングSIMD拡張命令

拡張版 Intel SpeedStep テクノロジー


投機的実行

L2キャッシュの統合 (Dixon)
Intel SpeedStep テクノロジー


MMXテクノロジー
RDRAMメモリーコントローラー
L2キャッシュのレイテンシ改善
Deeper Sleep


物理アドレス拡張
Intel QuickStart テクノロジー
システム・バッファリングの改良


L1キャッシュの増量
グラフィックス (Intel 752)
乱数ジェネレーター
ハードウェアプリフェッチ


7個の新命令
FXSAVE, FXRSTOR
L2キャッシュの統合


16ビット処理の改善
HubLink
プロセッサ・シリアル・ナンバー



オンパッケージ L2
温度センサー




Deep Sleep






デュアルインディペンデントバス















P6
Klamath
Deschutes
Timna
Katmai
Coppermine
Tualatin



## Celeron

インテルは、新しいマイクロアーキテクチャのプロセッサの発売にともない旧来のプロセッサの大幅なディスカウントを行い、従来のプラットフォームを採用する競合する他社の成長を阻止するという戦略を採用していた。その結果、最新のプラットフォームは高値で安定し、インテルの財務状況は良好であった。しかしインテルの旧世代P5マイクロアーキテクチャのプラットフォームでAMD社がK6プロセッサを発売すると、AMDはK6シリーズを単にインテル製プロセッサの廉価版という位置付けではなく、価格に見合う性能を持つ良好な製品として主張するようになった。Intelは自社製品よりも低い価格設定を行っていたAMDへの対応が必要であったが、既に終息路線としていたP5プラットホームに高クロック動作の製品を投入してAMDに対抗することはなく、既に主流としていたP6マイクロアーキテクチャにおいてより高性能で価格性能比の良好な製品を投入することで、差を詰めつつあったAMDの引き離しを図った。

Pentium IIを元にマルチプロセッサ機能・L2キャッシュを削除した初代Celeronは、安価である事もさることながら、L2キャッシュのアクセス帯域が狭められ低廉化していた事、クロックアップの妨げになるL2キャッシュが無い事からカジュアルなオーバークロックブームを引き起こし、人気商品となった。また簡単な修正で無効化されていたマルチプロセッサ機能を回復させることを日本のユーザーが発見し、そのアイデアを用いた周辺機器メーカーの製品を使うことで安価なCeleronでマルチプロセッサ環境を安価に構築することが出来るようになった。CeleronによってP6マイクロアーキテクチャが如何に普及したかはRSA主催「56ビットシークレットキーチャレンジ」に参加したDistributed.netに非常に多数のCeleronプロセッサコンピュータが登録されたことで知ることが出来る。

この後、P6マイクロアーキテクチャに留まらずインテルは、デスクトップおよびモバイルで高性能高機能製品に対しPentium、低価格製品にCeleronの二つのブランド体制をとるようになった。

## Xeon

Pentium IIやCeleronがPentiumのコンシューマ市場の後継製品であるように、Pentium Proにも直系とも言えるブランドが作られた。それがXeonプロセッサである。初代XeonはPentium IIコアでバックサイドバスが強化され、コアとは別に実装されていたL2キャッシュメモリにコアと同じ動作周波数でアクセス出来るよう改良されている。またL2キャッシュもPentium IIと比較して大容量化 (512KB,1MB,2MB) されている。Pentium IIやPentium IIIの2基に対し、Xeonは4基のCPUまでの対称型マルチプロセッシング (SMP) に対応している。外観上では放熱性を配慮して巨大なカートリッジに組み込まれている。ソケットはSC330（旧称Slot 2）。

さらにPentium IIと比べ、温度センサの内蔵やプロセッサ情報ROMの搭載、システム・ベンダが書き込み可能なスクラッチEEPROMの採用など、管理機能の充実が図られている。

以後Xeonのブランドはサーバなど基幹業務やデータベース、ネットワークシステム向けの高収益ライン商品の看板となる。高収益のXeonプロセッサはインテルの低価格市場での収益性を補うことで、低価格市場向けの製品しか持っていなかったAMDに対して値引き攻勢の原資となった。Pentium II XeonからPentium III Xeonに引き継がれ、NetBurstマイクロアーキテクチャ製品に引き継がれた。

## 同アーキテクチャに属するCPU
* Pentium Pro
* Pentium II 
* Pentium III 
* Celeron
* Xeon

## 脚注

## 関連項目
* P5マイクロアーキテクチャ
* NetBurstマイクロアーキテクチャ
* モバイル・マイクロアーキテクチャ