第28回 Baniasの「高性能で低消費電力」という矛盾頭脳放談

インテルのノートPC向け新プロセサ「Banias」の概要が徐々にではあるが明らかになってきた。Baniasで採用される低消費電力化の技術とは?

» 2002年09月19日 05時00分 公開
「頭脳放談」のインデックス

連載目次

 プロセッサ・コアに手を入れる(改良を加える)のは難しいものだ。拡張用のインターフェイスを追加したり、メモリ・コントローラを内蔵したり、といった変更ならばまだしも、いったん出来上がったプロセッサ・コアの内部に手を入れるのはリスクが大きい。ましてやプロセッサ構造の根幹となる、パイプラインの段数を変えるといったような変更は、命令セット互換の別プロセッサを再設計するような大仕事となってしまう。以前に設計したプロセッサの中で、そのまま流用できる部品が何か見付かれば「御の字」といったところだろう。それにこの手の「改造」は、ヘタな新規設計よりもトラブルが生じやすいのも経験則として有名である。

 現在、インテルが「Banias(バニアス)」という開発コード名で開発しているノートPC向けのx86プロセッサが、まさにそのような大仕事となっているようだ。ノートPC向けといっても、モバイルPentium 4-Mのように既存アーキテクチャ(この場合はPentium 4)をベースに低消費電力化するのではなく、アーキテクチャそのものから見直そうというのだから、そうならざるを得ないだろう。2002年9月9日〜12日まで米国カリフォルニア州サンノゼで開催された開発者向けのカンファレンス「IDF Fall 2002」でも、Baniasについていくつか発表があった模様だが、結局、アーキテクチャの詳細については明らかにされなかったようだ(Intelの「Baniasのプラットフォームに関するニュースリリース」)。そこで、各種報道などを踏まえて、Baniasに実装されると思われる技術を推測してみたい。

Baniasに見る消費電力削減の努力

 アーキテクチャから見直すのならば、その対象となるところは沢山あるはずだ。なぜならば高性能化と低消費電力化は、正反対に近いほど考え方のベクトルが異なっているからである。これまでのx86系プロセッサは、Pentium 4までひたすらに高性能化を狙ったアーキテクチャの改造を繰り返してきた。端的にいえば、より多くのトランジスタをより並列に動かす、ということと等価である。現在のプロセッサが立脚するトランジスタ・テクノロジにおいて、トランジスタのスイッチングに要する消費電力は、その「容量」と「電圧の2乗」の掛け算で表される。スイッチングの回数は動作クロックに比例するので、消費電力は動作クロックに比例することになる。さらにその動作クロックは、人気と価格にも直結するので、向上する一方である。何らかの方法で動作クロックを上げずに性能が向上できるとしても、性能の指標が動作クロックになっている現在、動作クロックを引き下げるという方法は採用しにくい。

 そこで、いままではプロセス・テクノロジ面主体で動作電圧を低くすることで消費電力を抑えてきた。トランジスタの性格から、動作電圧を低くすれば動作クロックは遅くなってしまうが、トランジスタのスレッショルド電圧*1を下げることで動作クロックを高速なままに保つことができる。しかし、スレッショルド電圧を下げると、トランジスタの状態が停止しているときのリーク電流が何けたも上がってしまうという問題が起きる(このあたりの事情については「第9回 銅配線にまつわるエトセトラ」参照のこと)。こういった問題は、電圧や動作クロックを可変にしたり、新しい素材を活用したりして、何とか切り抜けてきたわけだ。

*1 threshold:「しきい」や「境界」のこと。スレッショルド電圧とは、ある電圧値を過ぎたところで、電流が流れ始める境界となる電圧レベルのこと。例えば、スレッショルド電圧が0.8Vだとすると、0Vから0.8Vまでの電圧をかけてもほどんど電流が流れないが、0.8Vを過ぎると急に回路が電流を流し始める。


 当然、動作クロックや電源電圧を動的に操作するのはBaniasでも同様だが、これだけではモバイルPentium 4-Mなどと同じであり、それ以上の低消費電力は実現できない。それにトランジスタのスレッショルド電圧と電源電圧、動作クロック、リーク電流という複雑に依存し合った関係に手を付けて、危ない綱渡りをしてまで低電圧にするのにも限界がある。そこで、ほかに手を付けていない要因にまで踏み込む必要性が生まれる。

 まず「容量」。端的にいえば各トランジスタのキャパシタンス(コンデンサ成分)である。プロセッサ全体としてみれば、プロセッサ実装設計の結果であるが、その総数とそれぞれの大きさに根本的に影響を与えているのはアーキテクチャである。そして、「スイッチング回数」。これまた端的にいえば、実行するプログラム依存である。しかし、間接的には実装設計の結果であり、その根本を左右しているのはアーキテクチャである。この両面のバランスを見直すということだ。やれる仕事は沢山あるに決まっている。しかし、「性能」を考えるとやれる仕事も限られてしまう、という難問でもある。

細かな努力をコツコツと

 まず真っ先に「スペキュラティブ(speculative:投機的)」なものが最初にやり玉に挙がるだろう。これは実際に実行されるか否か、まだ確定していない段階で先に命令実行などをやっておく手法だ。うまくいけば高性能化の効果は抜群だが、外れるとやり直し、すなわちその動作のためにスイッチしたトランジスタの消費電力がすべてパァになる。分岐予測などというのは、表立って「投機的」とはいわないが、まさにこのカテゴリである。しかし非常に深いパイプ段数を持つ近代的なプロセッサでは、分岐予測をせずにパイプラインをストール(分岐の結果が出るまで待つこと)させたのでは性能が極端に落ちてしまう。とすれば答えはヒトツしかない。ともかく「予測を当てる」ことだ。

Baniasが採用する低消費電力化の技術 Baniasが採用する低消費電力化の技術
IDF Fall 2002の2日目のキーノート・スピーチのプレゼンテーション資料より。このようにBaniasではさまざまな技術が採用されている。

 この場合、嬉しいことに予測精度の向上は無駄な電気を使わないだけでなく、性能向上にも直結する。高性能化と低消費電力化のベクトルが合っている数少ない例だろう。インテルの場合、「アドバンスド(Advanced)」な分岐予測をBaniasに搭載するらしい。飛ぶか飛ばぬかの2つに1つの判断だからコインを投げてでも50%は当たる。単純かつ静的なアルゴリズムでも採用すれば60%以上の確率で予測が的中するのだ。というと、分岐予測の精度向上は簡単なように思えるが、すでに巧妙な分岐予測を実装してきたインテルのこと、ほんの少しの精度アップでも達成するには大変な努力が必要となる。そのうえ向上の余地が少ない分、これで消費電力が大幅に小さくなるとも思えない。

 だいたいスーパースカラーという構造自体が電気を多く消費するような構造なのだ。電気のことだけを考えるならば、シンプルなスカラー構造が一番である。スーパースカラー化で性能が2倍になったという話は聞いたことがなく、せいぜい50%とか60%アップがいいところ。しかし、その性能向上のためには、4つも5つも実行ユニットが必要となるため、性能向上に対するオーバーヘッドは大きい。そのためかBaniasではMicro-Op fusion(マイクロ・オペレーション・フュージョン)という手法を採用して、このオーバーヘッドに対処するらしい。詳細は分からないが、複数の命令をセットにして実行するようなものらしい。初代Pentiumが、2つの命令をペアにして、スーパースカラーで実行していたことを考えると、先祖返りを感じさせる。確かに初代Pentiumはインオーダー(記述された命令順で実行)で投機的なところがない設計だったうえ、実行ユニットの並列性にも制限があったので、模範とするのにちょうどよいのかもしれない。

 ほかにも、プロセッサ内部のシステム・バス上の各コンポーネントに対する電力供給の最適化なども挙げているが、これについては「こんなことをまだしていなかったのかい?」というような話である。それとも詳細を聞いたら、他社に類例を見ないくらい細かな制御をしているのかもしれないが、こういうのは大変な作業の割に1つ1つの効果はわずかなものだ。

 最後にスタック操作のハードウェア化といった話もあるらしい。確かにスタック操作などは、プログラムの表に現れない裏方仕事なのにもかかわらず頻繁に発生するので、これを効率化できれば効果は大きそうだ。ただ、これもソフトウェアに依存するので、どこまでがどう実現されるのかは分からない。

Baniasの努力で何を得るのか?

 こうして見てみるとBaniasというのは、細かな改良を積み重ねて低消費電力化を図っている、ということが見て取れる。大体において、正攻法でアーキテクチャ面、論理設計面から低消費電力化を図ろうとすればそうせざるを得ない。一方でBaniasの場合は、ほかのケースなら採用したであろう「低消費電力化は図れるが性能は落ちる」というような選択をともかく採用したくなかったようだ。性能に目をつぶってまで消費電力に大きく舵を取れば、劇的に手を入れられるところもある。しかし、PC向けということがあるのだろう、見た目に分かるような性能低下を抜きにやろうとしている。この目標は立派だ。時間もかかるに違いない。そのうえ、少しでも結果のバランスが悪ければ、労力をかけたのに中途半端のそしりを受けて終わる危険性もはらんでいる。

 システム全体を考えれば、グラフィックス、ハードディスク、液晶ディスプレイのバックライトなど、ほかのコンポーネントの電力消費も大きい。プロセッサだけが頑張ってみても、システム全体からすると効果がないのも事実である。インテルがチップセットからシステム・レベル全体での低消費電力化を志向するのも当然だろう。どうもBaniasというのは、そういうインテルの考えた枠組みをプロセッサ以外のハードウェアやソフトウェアに強制するためのキッカケにすぎないのではないか、とも思えてくる。

Baniasが目指す方向性 Baniasが目指す方向性
IDF Fall 2002の2日目のキーノート・スピーチのプレゼンテーション資料より。Intelは、BaniasによってモバイルPCの革新を目指すとしている。しかし、そのためにはディスプレイやバッテリなどのキー・テクノロジの発展が重要だとしている。Baniasは真のモバイルPCを実現するためのキッカケにすぎないのかもしれない。

 このプロジェクト自体、Transmetaのx86互換低消費電力プロセッサ「Crusoe」の衝撃に端を発したものだと思うが、そのTransmeta自身は登場したときほどの勢いがない。Baniasが出たときには主敵なし、という事態もあり得るのではないだろうか。さらに性能に目をつぶって低消費電力化を極限まで追い求めるという方向も面白いとは思うが、そうするとインテルの組み込み/携帯機器向けプロセッサ「XScale」が狙っている市場とダブってきてしまう。このクラスになるとまた要求される事項が大きく変ってくるので、この市場にBaniasを投入するようなことはインテルも考えないだろう。するとBaniasを中心として、ハードウェアやソフトウェアの枠組みを作り、それでノートPCベンダを囲い込むことによって、ノートPC市場に入り込んでくる競合をつぶしておしまい、というような展開で止まってしまうのだろうか。そうだとしたら、ちょっとツマラナイと感じる今日この頃である。

筆者紹介

Massa POP Izumida

日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。


「頭脳放談」のインデックス

頭脳放談

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。