このページの本文へ

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

CPU黒歴史 夢の5GHz CPUは燃費最悪 Prescott~Tejas

2011年09月12日 12時00分更新

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

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

命令の変換をすべてマイクロコード化
柔軟性と引き替えにパイプラインが長大に

 しかもその方法は、非常に柔軟であった。Willamette/Northwoodまでの世代は、言ってみれば完全に固定された命令セットを固定されたデコーダーで解釈して内部命令「MicroOp」に変換。それをスーパースカラー/アウトオブオーダーで実行するという仕組みをとっていた。Prescottではこのデコーダー部全体を、マイクロコードで処理する仕組みに切り替えた。

 「これによるメリットは何か?」と言えば、命令セットを簡単に変更可能な点だ。当初Prescott世代では、AMDの「x86-64」とはまったく異なる「Yamhill」と呼ばれる64bit命令セットの実装を考慮していた。ところが諸々の事情でこれは不可能となり、結局「IA32e」という形でx86-64とほぼ互換の命令セットを実装することになる。普通ならこれはデコード段の設計をやり直すことになるので、実装までには時間がかかる。だが、これを1年かからずに実装して出荷可能になったというあたりが、柔軟性の高さを裏付けている。

 だがこの柔軟性の代償は、長いレイテンシーであった。通常のデコード段は1~2サイクルで命令のデコードが可能だ。一部の複雑な命令だけがマイクロコードで処理されるため、そうした命令では10サイクル近い処理時間がかかる。ところが、全命令をマイクロコードで処理する場合、デコード段の処理で均一に10サイクル近くかかってしまう。その結果、PrescottのパイプラインはNorthwoodに比べて、10段以上増えることになったわけだ。

 しかもこの10段の増加は、動作周波数向上が期待できない類のものである。一般的に言うと、例えばパイプラインの段数を20段から30段に増やした場合、パイプライン1段あたりの処理は3分の2になる計算だから、その分動作周波数を引き上げる余地がある。ところがPrescottの場合、デコード段が余分に10段ほど増えてパイプラインが深くなっただけだから、これによる高速化が期待できない。

 そこでインテルがPrescottの世代で新たに導入した新技術が、「LVS(Low-Voltage Swing)Technology」であった。LVSに関してはインテルの発行する技術誌「Intel Technology Journal」の日本語版ダイジェストにも説明がある。かいつまんで説明してみよう。

 CPUのような回路を設計する場合、通常はスタティック回路とダイナミック回路の2種類がある。ダイナミック回路の方がトランジスタ数が少なく、高速に動作する利点がある。一方で、一定未満の周波数では動作しない※1という欠点がある。
※1 回路の動作そのものをトリガーにしているので、動作周波数が一定以下になると、回路が自身の状態を保持しきれなくなる。

 一方でスタティック回路の方は、動作周波数を0にできる(動作周波数が0になっても、回路が自身の状態を保持できる)という利点がある。そのため小規模なマイコンや組み込み向けに動作周波数を思いきり落とす必要がある用途向けCPUは、このスタティック回路を利用している。

 ダイナミック回路にはいろいろ実装方法があるが、広く使われているのがドミノ回路(Domino Circuit)である。これはドミノ倒しのように、ある回路の出力が次の段の回路のトリガーになる、という動きをするもので、NorthwoodまでのPentium 4にもこのドミノ回路が利用されてきた。ところがPrescottの世代では、ドミノ回路だけでは速度的に間に合わないと判断されたため、さらに高速に動作できるLVSを採用したというわけだ。

 もともとNetburst Architectureでは、ALUが16bit幅で2倍速という話だった。例えばCPUコア全体が3GHz動作の場合は、ALUのみ6GHzで動く。Prescottが4GHz~5GHzでの動作を狙うということは、ALUは最大10GHzもの速度で動くことになり、ドミノ回路では間に合わないという話だったようだ。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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