Click


後藤弘茂のWeekly海外ニュース

IntelがRDRAMを必要とする理由--McKinleyとWillamette


●Intelが欲しいのは6.4GB/secのメモリ帯域

 Intelが次世代メモリとしてDirect Rambus DRAM(RDRAM)に固執してきたのは、次世代MPUがRDRAMの帯域を必要とするからだ。具体的には、次世代IA-32プロセッサ「Willamette(ウイラメット)」で3.2GB/sec、第2世代目のIA-64プロセッサ「McKinley(マッキンリ)」で6.4GB/secのメモリ帯域を欲しがっている。PC100SDRAMと比較すると、Willametteで4倍、McKinleyで8倍というとてつもない帯域となる。

 Intelは、'96年のどこかの時点で、この6.4GB/secという帯域を実現できるメモリアーキテクチャとして現実的なのはRDRAMしかないと判断したと思われる。RDRAMは1チャンネル(16/18bit幅インターフェイス)で1.6GB/secの帯域だが、2チャンネル(32/36bit幅)にすれば3.2GB/sec、4チャンネル(64/72bit幅)にすれば6.4GB/secを実現できる。これは、ほかのメモリインターフェイスのアーキテクチャに比べ、ピン当たりの転送レートが異常に高いためだ。つまり、SDRAM系と同じ64bit幅のインターフェイスを取るなら、RDRAMのピーク帯域は、原理的には1.6GB/secではなく6.4GB/secになるというわけだ。

 Intelが6.4GB/secという帯域を欲しがっているという証拠はいくつもある。まず、8月に開催されたIntelの開発者向けカンファレンス「Fall '99 Intel DeveloperForum(IDF)」で、Intelのペーター・マクウイリアムズ氏(Intel ArchitectureLabs,Intel Fellow)は、RDRAMの利点を「ハイエンドでは、4チャンネル(6.4GB/sec)まで帯域を広げる余裕があるから」と説明している。また、IDFの技術セッションでは、Intelは2001年のワークステーションには、6GB/secクラスのFSB(フロントサイドバス)とメモリ帯域が必要となると、ちゃんとチャートまで示して説明している。

 そもそも、Intelの狙いは、最初から1.6GB/secではなく、6.4GB/secだったと思われる。'96年と言えば、IA-64の基本アーキテクチャは完全に固まっており、おそらくMcKinleyのプロジェクトもスタートしているころだ。これは想像だが、IntelはMcKinleyアーキテクチャをシミュレートした結果、FSBとメモリで6.4GB/secという膨大な帯域が必要となることがわかったのではないだろうか。そして、RDRAMなら、6.4GB/secを実現できる上に、最初に1チャンネルで導入して、2チャンネル、4チャンネルと同じアーキテクチャでスケーラブルに帯域を引き上げることができるから導入しやすいと考えたのだろう。つまり、今の1.6GB/secという帯域は、「6.4GB/secを4で割る」というわり算で引き出されてきた可能性があるのだ。


●IA-64アーキテクチャはメモリ帯域を必要とする

 では、Intelの次世代MPUは、どうしてそんなに広いメモリ帯域を必要とするのだろう。それは、内部アーキテクチャが帯域をより必要とするものになっているからだ。まず、IA-64アーキテクチャのMcKinleyに関しては明確だ。

 IA-64の大きな特徴のひとつに、「プレディケーション(Predication)」という機能がある。これは、条件分岐がある場合に、条件が成立して分岐する方と分岐しない方のふたつのパスをどちらも実行してしまうというものだ。両方のパスを平行に実行しておき、条件が成立したら正しいパスだけを生かす。このプレディケーションを使うと、分岐がなくなるため、分岐予測が外れるということは起こり得なくなる。 現在の高速MPUの場合、性能の最大の足かせになっているのは、分岐予測のミスによるストールだ。これは、パイプラインが深いために、それまで処理していたパスをフラッシュして分岐先を読み込み直すことになりペナルティが大きいためだ。しかし、プレディケーションを使って分岐命令そのものをなくしてしまえば、原理的には性能がぐんと上がることになる。

 しかし、プレディケーションには問題もある。それは、読み込む命令やデータの量が大幅に増えてしまうことだ。これは当然の話で、これまではひとつのパスだけを実行していたのが、平行してもうひとつのパス、あるいはさらにその先で分岐するパスまで実行することになると、帯域は2倍3倍と必要になる。10月に開催された「Microprocessor Forum 1999」では、他のMPUメーカーは、IA-64の弱点としてこぞってこの点を指摘していた。

 つまり、IntelのIA-64は、これまで以上に広いFSB帯域と,それに見合ったメモリ帯域を用意しないと性能を引き出すことができないわけだ。そして、McKinley世代で必要となるメモリとFSBの帯域というのが、6.4GB/secだと想定されたのだろう。「Itanium(Merced)」も同じIA-64だが、こちらは、もともとMcKinleyほど実行リソースを備えていないため、2GB/sec程度の帯域になるようだ。


●Willametteもまたメモリ帯域が欲しい

 8月のこのコラムで、RDRAMが必要となる理由はWillametteのためだと書いた。しかし、McKinleyの予想がついてくると、上に書いようにRDRAMはMcKinleyのために採用された技術であることが見えてくる。だが、それはIntelがWillametteではRDRAMを重視していないということを意味しているわけではない。それどころか、Intelは、Willametteの成功のためにRDRAMを必要としているのだ。

 2000年の第4四半期に登場すると見られるWillametteも、広帯域のFSBとメモリがないと性能を発揮できないと見られる。そもそも、Willamette用のチップセット「Tehama(テハマ)」は、RDRAMインターフェイスを2チャンネル搭載していると言われる。また、WillametteのFSBは200MHzのダブルデータレートで、3.2GB/secの帯域だと言われている。つまり、133MHz FSB版Pentium IIIの3倍のFSBを持つわけだ。 Willametteが広いFSBとメモリ帯域を必要とする理由のひとつは、Willametteではプリフェッチをガンガンやって性能を上げることを前提としていることだと思われる。プリフェッチは、ストリーミングSIMD拡張命令(SSE)で加わった新命令で、使いそうな命令やデータをメインメモリから先に読み出してキャッシュに入れておくことができる。

 プリフェッチは、SSEやMMXで処理するマルチメディア系のデータに限らず使うことができる。プリフェッチをガンガンやるとMPUの性能は向上する。例えば、同様のプリフェッチ命令を3DNow!で備えるAthlonでは、プリフェッチにチューンすることで性能が20%伸びるとしている。しかし、プリフェッチもまた帯域が必要となる。Athlonはそのために1.6GB/secの帯域のFSBを備えているわけで、Willametteも同様だと思われる。

 もっとも、プリフェッチで性能を上げるためにはソフトの対応が必要で、3.2GB/secというのは、おそらく将来のヘッドルームを考えてだと思われる。つまり、将来のOSやアプリケーションがプリフェッチを多用するようになり、性能がアップするそのヘッドルームのためということだ。


●IntelはDDR SDRAMも検討

 Intelのメモリ戦略で面白いのは、メモリに広帯域を求めて、レイテンシはそれほど重視していないことだ。これは、IntelがレイテンシはMPU側のアーキテクチャの改良で対応しようとしているからだと思われる。例えば、IA-64アーキテクチャでは投機ロードが可能になっている。これはロードした内容が実行時に正当なものであるかどうかをチェックすることで、ロード命令を、ストア命令や分岐命令の前に出してしまうことができる。これで、メモリアクセスのレイテンシを隠蔽するわけだ。また、プリフェッチもメモリのレイテンシを隠す効果がある。

 こうして眺めると、RDRAMは、ひたすら広帯域が欲しいIntelにとっては妥当なチョイスだったことがわかる。その意味では、RDRAMの採用に矛盾はない。

 しかし、Intelのメモリ戦略も揺れ始めている。Intelは、OEMメーカーに対して、顧客からの要請が強いために、ハイエンドサーバーなど一部のソリューションでは200MHz DDR SDRAMの採用を検討していると伝えたと言われる。これは、大構成な構成をとるサーバー向けだが、SDRAMからRDRAMへというシナリオ通りには、すんなり行かないようだ。

□関連記事
【8月27日】WillametteのためにIntelはRDRAMに固執する
http://pc.watch.impress.co.jp/docs/article/990827/kaigai01.htm


バックナンバー

('99年12月6日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


ウォッチ編集部内PC Watch担当pc-watch-info@impress.co.jp