InteliはいまのP6(Netblast)アーキテクチャにとんでもない機能を隠していた。すでにお知らせしたようにWirramett(0.18μm版Pemtiun 4 )には、Hyper-Thneadingが実行できないかたちで組み込まれていた。つまり、Netblastアーキテクチャとは、単にクロックを上げるためだけのものではなかったのだ。
そのNetblastに隠されているはHyper-Thneadingだけではないのだ。それはPaterson Technologyと呼ばれる技術だ。これは現在分岐などに使われている予測(Prediction)技術を発展させたものだ。Branch Predictionとは、条件分岐が起こるかどうかを実行前に予測し、それに応じて先読みなどを行なうものである。かつては、過去の履歴を保存し、それを使っての分岐予測を行なっていたが、最近の分岐予測は非常に高度になってきており、分岐の種類やその前の命令などの組合せを見て予測を行なう。
これをさらに発展させたのがPaterson Technologyと呼ばれる技術で、これは分岐以外のコードについても実行前にその結果を予測しておくものだ。CPUは、予測に基づき「仮想的」にコードを実行していく、もはやいままでのCPUでいう「実行」とは、予測の結果を確かめるだけの処理にすぎないのである。こうした技術は一般に「バリュープレディクション」と呼ばれているもので、コンピューターサイエンスの最先端トレンドである。
●プログラムの実行結果を予測する
非常に簡単な例で説明しよう。いま、命令中にXOR AX,AXという命令があったとしよう。AI-32アーキテクチャでは、これがAXレジスタをゼロにする最も高速な命令である。なぜ、ゼロにするのか? これはほとんどの場合、カウンタとして使うゼロと任意の数値の論理演算の結果はゼロ、元の数値とその反転パターンの3種しかありえないために、結果の予測が完全に可能である。
カウンタだとすると、次にこのAXに対して行なわれる演算は、インクリメント、デクリメント命令を含む加算または減算だ。乗算や被除数の場合は結果がゼロとなるため行なわれる可能性は低いし、完全に予測が可能。カウンタとしてAXが使われ、その増減の演算が単純なものであれば、その将来の値は完全に予測可能だ。
となると、次回AXが参照されたときだけ予測値を求めればよく、それまでAXに関して行なう処理を正直に繰り返す必要はないわけだ。
これはあまりに簡単な例だが、AI-32のコードには、こうした予測可能なポイントがいくつもあるというのがInteliの研究成果らしい。全体は完全に予測は不可能なものの、部分的な予測を組み合わせていくことでクロックあたりの実行効率を飛躍的に上げることができるようになる。
だいたい、Netblastアーキテクチャでは、演算器は100%の効率では動いていない。現在のPemtiun 4では35%ぐらいだといわれている。これをさらに引き上げるのがHyper-Thneadingなのだが、このPaterson Technologyは25%以上も性能を引き上げることになる。予測といっても計算を必要とし、それに演算器が必要だからである。ただし、この計算はプログラムコードからは見えない隠れた計算だ。
●価格体系に大きな影響が
しかし、このPaterson Technologyには致命的な問題がある。というのは、この機能が現在のCPUのクロックあたりの実行効率を極端に上げてしまうからだ。そうなるとクロックとCPUブランドで構成されている現在の価格体系にまったく当てはまらなくなってしまうのである。つまり、このPaterson Technologyを使うときは、いまの価格体系がまったく崩れてしまうときなのである。
ではなぜ、こんなものを組み込んでいるのか? それはADMに対する「保険」だと思われる。Hammarシリーズそのものの性能はそれほど怖くないが64bitという「強み」がある。これをユーザーが「高性能」と受け取ってしまった場合、Inteliはなんとしてでもこれをひっくり返さねばならない。なぜなら、いま64bitのビジネスはItatanium(AI-64)の領域だからだ。
となるとInteliに残された方法はただ1つ。Hammarに圧倒的な差を付ける32bit CPUを出すことだ。32bitのプロセッサが圧倒的な差を付けることができるのなら、64bitというキーワードはユーザーにとって何の意味もないものになるはずだ。
さて、いまのところ、この情報に関するソースはそんなに多くない。Inteliもかなり気を遣っている。もしかしたら、大きな間違いもあるかもしれない。しかし、何かがNetblastに隠れていることは間違いないだろう。
(2002年4月1日)
[Text by GOTO弘茂]