このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第172回

インテルCPU進化論 失敗でも多くの知見を残したPrescott

2012年10月08日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

ほぼ同じ構造でステージ数が
20段と31段で異なる理由とは?

図1 Prescottのパイプライン構造図

図2 Willametteのパイプライン構造図

 Willamette世代の内部構造図(左)と、Prescottの内部構造図(右)を見比べても、違いは以下の4点程度だ。

こちらはWillametteの構造図。「Intel Technology Journal Q1, 2001」より引用

こちらがPrescottの構造図。構造そのものにはまったく違いがない。「Intel Technology Journal Volume 08, Issue 01」より引用

  • Trace Cacheの「BTB」(Branch Target Buffer、分岐予測バッファ)のサイズが4倍になった
  • 1次データキャッシュのサイズが2倍になった
  • 2次キャッシュのサイズが4倍になった
  • Bus Interface Unitの速度が4倍になった

 CPU黒歴史のPrescott編でも書いたが、PrescottとWillametteにパイプライン構造の差はほとんどない。図1はPrescottの想定パイプラインステージだが、前回掲載図2と比べて最大の差は、パイプラインの段数にTrace Cacheを入れるか否かである。

 要するに、Willametteでも「2次キャッシュからのFetch」から数えると25~26段のステージ(実際には28段くらい?)があったところ、Prescottではそれが若干増えて、トータルで31段になったわけだ。なぜインテルは、Willametteでは20段と言っていたのに、Prescottでは31段と言うようになったのか? それは当時のマーケティング戦略を考えるとわかりやすい。

 NetBurst ArchitectureはIPCこそ低いものの、動作周波数を引き上げることで性能を確保するコンセプトの設計で、そのために長大なパイプラインを備えていた。WillametteはTrace Cache以降だけで20段ものステージがあり、インテルは「それが高速動作を可能にしている」と説明していた。続くPrescottは「5GHzを狙う」と発表されていたが、Trace Cache以降のステージ数だけを見ると「20段から増えていないのに、どうして5GHzが狙えるの?」と思われかねない。そこで方針を変えて、Fetchからの段数も合わせた数字を示すようにしたのではないか、と筆者は想像している。

 WillametteとPrescottのパイプライン構造の違いを見てみよう。まず大きく異なるのはデコーダー部である。Willametteでは従来型の、「Hard-Codedデコーダー」(対応する命令を固定してハードウェアで作りこんだデコーダー)に、一部の複雑な命令のみマイクロコードROMを併用するという構造だった。Willametteに限らずほとんどのCPUがこの構造をとっており、P6アーキテクチャーも例外ではない。

 ところがPrescottでは、このHard-Codedデコーダーをほぼ撤廃したようで、ほとんどの命令をマイクロコードROMでデコードしている。あるいは、フロントエンドがマイクロコード、バックエンドがHard-Codedという形なのかもしれないが、とにかくほぼすべての命令を、いったんマイクロコードの形で処理できるような仕組みにしている。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン