【スペシャル】Pentium 4のマイクロアーキテクチャのすごさ:頭脳放談(3/3 ページ)
インテルから発表された次期主力プロセッサ「Pentium 4」。一見、単なるPentium IIIの後継だが、実はPentium Pro以来のアーキテクチャが徹底的に見直され、昔の面影を失うほど改良されたプロセッサなのだ。
バスのバンド幅も格段に向上
演算能力の強化だけでは、プロセッサ全体としての性能向上は期待できない。プロセッサにデータやコードを供給するためのシステム・バス(FSB:Front Side Bus)の高速化も必須だ。Pentium 4の持つ、新たなバス・アーキテクチャは、前世代Pentium IIIの3倍のバス・クロックとなる400MHzのバスである。Intel 850チップセットにより、デュアル・チャンネルのDirect RDRAMを使って、3.2GB/sという超高速な転送レートを実現している。プロセッサのクロックはプロセッサだけの都合で比較的簡単に上げることができるが、バスはチップセットやメモリなど外部の部品やボード設計の問題もあるので、プロセッサほど単純に高速化していくのは難しい。Pentium IIIからPentium 4への世代交代を絶好の機会として、バスの高速化に踏み切ったのは当然ともいえる。内部のチョットした改良などよりは、格段に大きな効果があるし、長年にわたる影響があることは間違いない。
Intel 850のブロック図(インテルの資料より)
メモリ・バスには、デュアル・チャンネルのDirect RDRAMを採用し、最大3.2GB/sという転送レートを実現している。ICH2は、Pentium III用チップセットのIntel 815Eでも採用しているもの。
ただ、DDR SDRAM陣営に対して特許で攻撃せざるを得ないような状況になっているRambusに頼っていていいのか、という気もしないではない。もちろんDirect RDRAMだけでなく、SDRAMサポートのためのチップセットも開発中とのことだが、Direct RDRAMのコスト性能比がもっとよく、Direct RDRAMを使ったボードやチップセットの動作がもっと安定していれば、これほど多くの会社がDDR SDRAMに走ることもなかったのではないかと思う。このところのインテル製チップセットがらみの大きなトラブルは、ほとんど全てDirect RDRAMから無理やりSDRAMへとブリッジするチップで起きているのだ(ニュース解説:動き始めたDDR SDRAMと対抗するRambus)。この際、もっと先を見据えて、より高性能で使いやすいDRAM仕様の開発をしないと、急激に伸びるプロセッサ性能を支えきれない恐れもある。インテルのDRAM戦略に再考を求めたいところだ。
もはや32bitとはいえない?
先ほど少し触れたが、Pentium 4では、浮動小数点演算とマルチメディア・サポートのため、128bit幅のデータを扱う拡張が施されている。そのユニットを使って、MMXやSSEのさらなる拡張であるSSE2(Streaming SIMD Extensions 2)と呼ばれるSIMD命令群を実行できる。これにより倍精度の浮動小数点演算さえもSIMD実行できるようになった。
また、このような幅の広いデータのハンドリングのため、通常の32bit幅の整数を扱うデータ・ポートとは別に、128bit幅のポートを用意して階層記憶システムに接続している。
こうして見ると、確かに普通の整数演算命令のデータ・パスこそ32bitであるので、Pentium 4は32bit・プロセッサという分類になる。だが、実質的に処理できるデータの幅を考えると、128bitプロセッサといって言えないこともない(そう言い切るにはSSE2はちょっと偏った命令セットではあるが)。
制御フローこそ32bitで書く必要があるだろうが、データ処理は128bit(実質は64bit幅の倍精度浮動小数点数)で書かなければならない。こうなると、だんだん32bitというカテゴリに収まらなくなってきていることは間違いない。実際、Pentium 4の命令セットを眺めていると、8086以来の16bit命令セットに80386以降の32bit命令セットを加えた項目数より、MMX→SSE→SSE2と拡張されてきたSIMD系の命令セットの項目数の方が多いようだ。命令セットだけ見ると、もはや128bit SIMD命令を持つプロセッサの制御のために386命令セットが残っているといった雰囲気である。
まぁ同じ128bit幅といっても、IA-32とIA-64では、片やSIMDのスーパー・スカラー、片やVLIW(インテル式に正確に言うならEPIC)であるので、用途ごとの向き不向きははっきりしている、ということなのかもしれないが、IA-64に予約されていたはずの世界の一部に、IA-32であるPentium 4は重なってきているような気もする。あからさまにx86命令を64bitに拡張しようとしているAMDとは、やり方こそ異なるけれど、実質は似てきているのじゃないか。この先いったいどうなるのだろう。
向上著しい浮動小数点演算性能
ベンチマーク結果を見ていると、PentiumからPentium Proへ変わったときも似たような状況が起こったのだが、大きなアーキテクチャの改良があり、クロック周波数が伸びた割には、性能はさほど伸びていない。Pentium Proのときには古い16bitコードで初代Pentiumより遅くなるケースがあって、問題になったのに比べれば、Pentium 4の場合は一応の向上はある点が救いといえるだろう。Pentium IIIの最高周波数とあまり変わらないクロック周波数までPentium 4を落として、Pentium IIIと競争させたら簡単に負けてしまう。多分、1.4GHzというのは、Pentium 4にしてよかったと思える最低のクロック周波数であろう。
しかし、それは失敗でも何でもなく、そうあるように設計されたように思われる。Pentium 4が狙ったのは、同じ周波数でより速くという方向ではなく、同じ製造プロセスであればより高いクロック周波数を狙う、という点にあると考えられるからだ。そんな中、ベンチマークの中で格段に性能向上が見られるのは、浮動小数点演算である。さらにSSE2の命令セットをうまく適用できるアルゴリズムであれば、クロック周波数以上の性能向上もあり得そうである。浮動小数点演算能力は意外と「買い」かもしれない。
ヘッド・ルームが肝心
「ヘッド・ルーム(頭上スペース)」。車であれば、座席に座ったときの車内天井までの間隙のことを指す。マイクロプロセッサ業界の場合、現在のクロック周波数と、そのアーキテクチャで狙える上限のクロック周波数との間隙を「ヘッド・ルーム」という表現で示している。そういう点で、Pentium Proから始まったP6アーキテクチャを改良して高速化してきたPentium IIIはヘッド・ルームに余裕がなくなってきていた。今回のPentium 4は、天井すれすれになってしまったヘッド・ルームを、ハイパー・パイプラインで代表される徹底的な新設計で広げた。つまり限界と予想される上限周波数は引き上げられ、これによりIA-32の命脈はさらに延びたように思われる。
しかし、周波数アップのための設計方針に対するペナルティーは小さくなく、そのままでは同じクロック周波数での性能は低下してしまう恐れもあった。Pentium 4で採用された数々の技巧の多くは、積極的な性能向上というより、こうしたペナルティーを補うものである。
ただし、SSE2やシステム・バスバンド幅の向上はプロセッサの処理能力そのものを大幅に引き上げる可能性を秘めており、その周波数向上、システム・バスの能力向上とあわせ、ある意味IA-64でなくとも済む、という領域が増えるように思われる。Pentium 4は、かなり大きなインパクトのあるプロセッサである。これが「切り札」になるためには、またしてもチップセット、DRAM、ボードの早急かつ完璧な整備の必要がある。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.