2004年3月11日

    RISCとCISC

    先ほどの日記に少し関連しますが、そういえばかつてCPUアーキテクチャはRISCかCISCかで激しい争いをしていたことがありました。簡単に言うと単純な命令をできるだけ速く実行するのがRISCで、逆に多少時間がかかる代わりに1命令で複雑な事ができるCISCという構図になりますが、クロックが上がるとRISCの方が有利になってくるので、CISCの代表であるIntelのx86系CPUが不利だと言われたことがありました。アセンブラのような低級言語(これは悪い意味ではありません)でプログラミングする場合、1命令でたくさんの事ができてコード量が減る分、圧倒的にCISCの方が楽なのですが、現在ではC言語やそこから派生した高級言語でコンパイルするため、CISCであることの利点が無くなってきたこともあります。そんな中Intelは見かけ上はx86命令が実行可能なCISCだけども、実は内部でRISC命令に変換しているので実態はRISCである、というCPU(Pentium Pro以降のCPUはすべてこれ)を作り出すことによって、この問題を克服していったのです。今回のNetBurstも、この技術をもっと極限まで追求した結果なんじゃないか、という気がしますね。

    NetBurstアーキテクチャの秘密

    Intel Pentium4プロセッサで採用されているNetBurstアーキテクチャですが、今まで秘密のベールに包まれていたものがようやく少しずつ明らかにされてきたようです。詳しくはここここを参照していただくとして、今まで高クロック化のためのアーキテクチャだと思われていたNetBurstに、実は強力な柔軟性というもっと大きな目的があったということに、私も目から鱗が落ちました。発売当初、Pentium4はクロック当たりの性能が低いとさんざん揶揄されていたものですが、その後Hyper-Threadingの存在が明らかにされ、やはりIntelはただものではないなと私も2002/02/04の日記に書いています。そして今回さらに、Hyper-ThreadingだけではないNetBurstアーキテクチャの真の目的が明るみに出たわけで、その思いをさらに強くしました。

    しかしここまでくるとほんとにTransmetaのCPUと思想は似てるなあと感じます。かつてTransmetaのCPUアーキテクチャは革新的だと言われていましたが、実はIntelも似たようなことをやっていたということになるわけで、おもしろいものですね。そういえばマイクロソフトは一昨年ごろ、ハードウェア的にセキュリティを確保するPalladiumと呼ばれる機能(現在ではNGSCBと名称が変わっています)が次期Windowsに採用される予定だと発表しましたが、それに対応してIntelのCPUにはLaGrande Technologyという機能が実装される予定だと言われていました。一方Intelと比較してTransmetaはアーキテクチャ上、いったんx86命令をCPU内部で実行可能な命令に変換してから実行するスタイルなので、このNGSCBを実装するには命令変換ソフトウェア(CMS)を変更するだけでよく、実装は非常に容易であるという記事を読んだ記憶があります(このあたりとか)。その当時はTransmetaが有利なのかなあとも思いましたが、実はIntelだってこのLaGrande Technologyの実装は、NetBurstのおかげでTransmeta並みの労力で済んでるんじゃないか、ということに今改めて気づきました。全然違うものだと思っていたのに、おかしなものですねぇ。

    でも冒頭でリンクをはったコラムの最後に書いてあるように、このNetBurstの弱点はやはり実行効率ですね。とにかく発熱がすごいというのが問題です。なのでせっかくたくさんの利点があるNetBurstですが、短命に終わっちゃうのでしょうか?Intelのことですからきっとうまい回避方法を考えてくるとは思うんですけどね。