P6マイクロアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
P6マイクロアーキテクチャ (P6 Microarchitecture)はインテルの6世代目の80x86系CPU設計である。1995年11月に発売されたPentium Proに初めて搭載され、2000年までの主力アーキテクチャとして使われた。その後はNetBurstマイクロアーキテクチャに移行したが、モバイル向けのCPUでは2007年現在も使われ続け、開発は継続されている。
目次 |
[編集] 概要
P6マイクロアーキテクチャは、それまでの世代とは一線を画する設計に基づく。
- x86命令セットをμOPsと呼ばれるRISC的命令セットへの分割・変換を行う命令変換機構を備える
- 命令変換機構において命令発行系統を3系統もつスーパースケーラ構造である
- 投機的実行機能とアウト・オブ・オーダー実行機能とレジスタ・リネーミング機能を備える
- μOPs実行部はRISCプロセッサである
- 10~14段のパイプラインステージを持つスーパーパイプライン構造である(Pentiumは5段)
- 長いパイプラインを効率よく動作させる分岐予測機構を備える
- ベクトルプロセッサ機能を持つ(Pentium III以降)
- CPUと密結合したキャッシュメモリを備える(最大L2迄)
- 一連の書き込みをバス幅に揃える高度なライトバック機能を備える
- 対称型マルチプロセッサを前提としたバスプロトコルを備える
- 高周波数で駆動できるGTLバスドライブ方式を採用する
等、インストラクションセットこそ互換性はあるが、全く別物といって良い物である。
さらにシステムレベルでは、設計当時予想されたシステムの大規模化を考慮して、メモリタイプ範囲レジスタ (MTRR)の追加、ページサイズ拡張 (PSE)、アドレスバスの拡張(PAE)が行われた。その他、エラッタ(設計ミスによる不具合)対策として書き換え可能なコントロールストアを持ち、マイクロコードをソフトウエアで書き換えられるようになった。BIOSまたはオペレーティングシステムから暗号化されたコードブロックをCPUに書き込むにより致命的なエラッタの発生を抑制する事ができる。
P6マイクロアーキテクチャ発表に先駆けて、NexGen社のNexGenプロセッサの設計思想を大いに参考にしていると考えられている。NexGen社はのちにAMDに吸収され、AMDはインテルに対抗できる程のテクノロジを獲得し、K6プロセッサ以降、熾烈な戦いを現在も続けている。
P6マイクロアーキテクチャに基づいて作られた最初のCPU、Pentium Proは、コンシューマー市場では全く成功しなかったが、サーバーおよびワークステーション用途ではチップセット共々の安定性と高パフォーマンスが評価され、ダウンサイジングの時流も追い風となって一定の成功を収めた。 さらに16bit命令セットに対する高速化とMMX命令セットを追加したPentium IIとして発売されることで、一般コンシューマ市場にも広く受け入れられることとなった。
[編集] 同アーキテクチャに属するCPU
- Celeron / モバイルCeleron (Pentium II / Pentium III 系統のみ)
- Celeron M
- Pentium Pro
- Pentium II
- モバイルPentium II
- Pentium II Xeon
- Pentium III
- モバイルPentium III
- モバイルPentium III-M
- Pentium III-S
- Pentium III Xeon
- Pentium M
- Intel Core Duo / Solo
- Intel LPIA
[編集] 廉価版P6プロセッサ Celeron
インテルは、新しいマイクロアーキテクチャのプロセッサの発売にともない旧来のプロセッサの大幅なディスカウントを行い、従来のプラットフォームを採用する競合する他社の成長を阻止すると言う戦略をとっていた。その結果、最新のプラットフォームは高値で安定し、インテルの財務状況は良好であった。しかしインテルのP5マイクロアーキテクチャのプラットフォームでAMD社はK6プロセッサを発売した。K6シリーズによりAMDはインテル製プロセッサの低価格版という位置づけではなく、性能とのバランスが良好な製品として認知されるようになった。その為、追従する競合他社を狙撃するためにはまだ主流であるP6マイクロアーキテクチャでも低価格な製品の発売を余儀なくされた。
Pentium IIを元にマルチプロセッサ機能・キャッシュメモリを削除した初代Celeronは、安価である事もさることながら、メモリアクセスレイテンシが大幅に引き下げられたSDRAMが低廉化していた事、クロックアップの妨げになるSRAMが無い事からカジュアルなオーバークロックブームを引き起こし、人気商品となった。また簡単な修正で無効化されていたマルチプロセッサ機能を回復させる事が出来る事から、マルチプロセッサ環境を安価に構築することが出来た。CeleronによってP6マイクロアーキテクチャが如何に普及したかはRSA主催「56ビットシークレットキーチャレンジ」に参加したDistributed.netに非常に多数のCeleronプロセッサコンピュータが登録されたことで知ることが出来る。
この後、P6マイクロアーキテクチャに留まらずインテルは、デスクトップおよびモバイルで高性能高機能製品に対しPentium、低価格製品にCeleronの二つのブランド体制をとるようになった。
[編集] ハイエンド向けP6プロセッサ Xeon
Pentium IIやCeleronがポストPentiumである様に、Pentium Proにも直系の子孫となるブランドが作られた。それがXeonプロセッサである。初代XeonはPentium IIコアでバックサイドバスが強化され、コア周波数と同じ速度で外付けのキャッシュメモリにアクセス出来るよう改良されている。またキャッシュメモリ容量も大容量化(512KB,1MB,2MB)されている。Pentium IIやPentium IIIとの大きな違いとして、4つのCPUまでの対称型マルチプロセッシング(SMP)に対応している事、コア・キャッシュメモリSRAMの放熱性を配慮した巨大なカートリッジSLOT2に組み込まれている。
以後Xeonのブランドはサーバーなど基幹業務やデータベース、ネットワークシステム向けの高収益ライン商品の看板となり、後続アーキテクチャ製品に引き継がれた。
[編集] Pentium M(Banias,Dothan)/Intel Core(Yonah)
Pentium M以降において、P6マイクロアーキテクチャは大幅な改良が行われた。
- フロントサイドバスの高速化。
- BaniasはPentium 4 Northwoodコアに相当する、400MHz駆動のバスを備えた。
- さらに後続バージョンDothanにおいて533MHz、Yonahでは667MHzに高速化された。
- キャッシュメモリの大容量化。
- Baniasで1MBに大容量化。
- Dothanで2MBに大容量化。
- SSE2,SSE3のサポート
- BaniasでSSE2をサポートし、YonahはSSE3をサポートした。
- 以上Baniasから対応
- キャッシュメモリ電源管理機能の追加
- デュアルコアとコアの電源管理機能の追加
- シェアードキャッシュメモリ
- 以上Yonahから対応
基本的な設計プロファイルこそP6マイクロアーキテクチャを踏襲しているが、公開されたダイの写真から見ても大幅に手が加えられており原型をとどめていない。インテルはBaniasであるPentium Mを新マイクロアーキテクチャと発表し、CPUとコンパニオンチップのセットにセントリーノモバイルテクノロジの名を冠してリリースした。インテルがマイクロアーキテクチャに名前を付けなかった事から、北米などでP6+マイクロアーキテクチャ(P-Six-Plus)等と呼ばれている。
[編集] 前世代および次世代との関係
当時、インテルはプロセッサ開発を2チーム体制で行っていた。プロセッサの開発には多大な時間が必要であり、2チーム体制をとることでプロセッサのマイクロアーキテクチャの更新の頻度を倍化させ、商品をより最新の技術に基づくものとするためである。
インテルのCPUの開発チームはその所在地の地名で呼ばれることが多い。一つはサンタクララ(カリフォルニア州)であり、もう一つはオレゴン(オレゴン州)と呼ばれる。Pentiumの製品名で販売されたP5マイクロアーキテクチャはサンタクララによるものである。P5に続くP6マイクロアーキテクチャはオレゴンが担当しており、P6の次世代にあたるP7マイクロアーキテクチャはP5マイクロアーキテクチャの開発を終了していたサンタクララによって基礎研究が進められていた。しかしインテルはIA-64という全く新たなマイクロアーキテクチャの開発に着手を決定し、進捗度の浅いP7マイクロアーキテクチャの開発を中止してサンタクララそのままがIA-64を担当することになった。IA-64マイクロアーキテクチャをP7と呼ぶこともあるのはこの背景によるものである。
P7マイクロアーキテクチャの開発キャンセルにより、P6マイクロアーキテクチャはP8マイクロアーキテクチャまでの2世代に相当する期間で商品性の維持の必要に迫られた。競合するAMD社の新しいK7マイクロ7アーキテクチャの製品の発売により一時期窮することもあったが、アグレッシブな改良を加えられ使命を十分に果たし、続くP8マイクロアーキテクチャに引き継がれた。
P8マイクロアーキテクチャは、当初の持ち回り順に従いP6マイクロアーキテクチャを担当したオレゴンが担当した。この頃マイクロアーキテクチャも消費者の耳目を集めるところとなり、無機的な記号であったP8は語感の良いNetBurstマイクロアーキテクチャという正式名称が与えられた。AMD社のK7マイクロアーキテクチャに基づく新製品でP6マイクロアーキテクチャ製品は窮地に追い込まれたが、それに続くNetBurstマイクロアーキテクチャのプロセッサは、K7マイクロアーキテクチャを十分に超える性能を示した。世界的不況にあった当時、PCおよびプロセッサの販売数の減衰を予見したインテルは、P6マイクロアーキテクチャと比較して生産性に難があるNetBurstマイクロアーキテクチャであっても十分に需要に応えられると判断し、まだ性能向上の余地のあったP6マイクロアーキテクチャではあったが意図的に供給量を絞る一方で価格も高く目に設定する決定を下す。これにより主流は急速にNetBurstマイクロアーキテクチャのPentium 4に移行した。
しかしNetBurstマイクロアーキテクチャは比較的に高発熱高消費電力であり、半導体製造技術の更なる開発を前提としていた。ブレードサーバーやモバイルといったカテゴリは当初よりP6マイクロアーキテクチャを存続させるなどNetBurstマイクロアーキテクチャでは不適であり、インテルは半導体製造技術の予想を楽観視し過ぎており、NetBurstマイクロアーキテクチャの高発熱高消費電力の問題を解決できずにいた。半導体製造技術の行き詰まりはインテルのみならず半導体業界全体の成長を阻害するものであったが、高発熱高消費電力のNetBurstマイクロアーキテクチャに主体を移したインテルはその影響を強く受けることとなった。クロックあたりの処理能力の低いNetBurstマイクロアーキテクチャの性能向上の主体は動作クロック周波数の向上であり、AMD社の新たなK8アーキテクチャの登場によりさらなる動作クロック周波数の向上が行われ、高発熱高消費電力にとめどがなくなり、大規模サーバーやデスクトップのカテゴリでも扱いに困るにまでなっていた。特にこの間、デスクトップの省スペース化や液晶との一体化が進んだ日本では、その高発熱・消費電力が嫌われ、本来モバイル用であるはずのCeleron Mが採用されたデスクトップが各社から多数発売されるまでになっていた。シングルコアでの性能向上といった当時のプロセッサ技術の方向性のままででは消費電力と発熱の低減と性能の向上はは両立しないという見方は業界の一致したものであり、10GHzまでの動作クロックを見越したNetBurstマイクロアーキテクチャであったが、商品化が行われたのは計画半ばの3.8GHzまでであり、それを超える計画は打ち切られた。
インテルをはじめ業界全体がマルチコア化へと流れることとなった。完成後のP5マイクロアーキテクチャとP6マイクロアーキテクチャに対して小さな改良を担当しプロセッサ開発の経験を積んでいたインテルのイスラエルの開発チームは、P6マイクロアーキテクチャなどを基に大幅な改良を行い、消費電力あたりの性能を高めたPentium Mを発売するに至った。続けてPentium Mをマルチコア化した"Yonah"ことIntel Coreプロセッサを開発したが、絶対的な性能はまだNetBurstを超えるものではなく、さらなる開発が必要であった。
十分な経験を積んだイスラエルがNetBurstに継ぐマイクロアーキテクチャの開発に起用されることとなった。そしてIntelは2006年3月7日、IDFにおいてP6、NetBurstのいずれにも拠らない、新たに一から作り出した低消費電力と高性能を両立したCoreマイクロアーキテクチャを発表した。同時にこれまで続いたPentiumブランドを全面的に廃止し、Intel Coreブランドに移行することを表明した。
このようにP6マイクロアーキテクチャは、インテルの決定に反し当初の計画を大幅に超える設計となった。最初の応用製品であるPentium Proの発売から既に10年以上が経過し、一時的に第一線を退くも様々な改良を受けながらもP6マイクロアーキテクチャ製品が発表発売された。同社の歴史では最も成功したマイクロアーキテクチャと言える。
余談ではあるが、Core2のCPUID命令による、アーキテクチャ識別フィールドはNetBurstの0x0fからP6マイクロアーキテクチャ系の0x06に戻された。しかしこの後退はCPUの動的最適化においては適切とは言えない。Core2のデコーダは4つの汎用命令パイプライン(2本は浮動小数点命令を兼ねる)と1つのCISC命令専用 パイプラインがスケジューラに接続されている。P6のデコーダでは2つの汎用命令パイプラインと1つの浮動小数点パイプラインがスケジューラに接続されている。従って両者の最適化には共通点が無く、Core2を知らないプログラムは不適切なコードを選択してしまう可能性がある。CPUIDにおけるアーキテクチャ識別フィールドの後退は古いプログラムに混乱をもたらし、新しいプログラムではわずかではあるが余計な手間をプログラマにもたらす。インテルが何故このような判断をしたのかは謎である。