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

SSEとハードウェアプリフェッチサポートで性能を上げるPalomino


●Athlon HではなくAthlon 4になったわけ

 結局「Athlon 4」として登場したAMDの新Athlon 4「Palomino(パロミノ)」。前回伝えたように、AMDは4月中旬頃はPalominoを「Athlon H」というブランド名で導入する予定でいた。ブランドネーミングでこれだけゴタゴタするあたりがじつにAMDらしい。AMDのパトリック・ムアヘッド副社長(Marketing, Computation Products Group)によると「Hも検討した案に入っていたが、顧客からのフィードバックの結果、CPUコアチェンジを表すには数字の方が適していることがわかった」ので、Athlon 4にしたという。まあ、確かにIntelのCPUに対するポジショニングはわかりやすい。

 さて、Palominoは事前の情報があまりに少なかったので、このコラムでもかなり間違った推測をしていた。フタを開けてみると、AMDはこの新コアにできる限りのことはすべて詰め込んでいた。サブブランドをつけるのも当然と言える。Palominoコア開発にかけたエンジアリングリソースは結構なものだ。キャッシュを統合しただけのThunderbirdとはかなり位置づけが異なる。AthlonとAthlon 4の関係は、K6に対するK6-2の関係と似ている。以下が主要なAthlon 4の公開スペックだ。

正式発表されたPalominoことモバイルAthlon 4
・ダイサイズ:128平方mm
・トランジスタ数:3,750万
・3DNow! Professional(SSE命令フルサポート)
・XMMレジスタ
・ハードウェアプリフェッチ
・PowerNOW!
・低消費電力化(20%削減)
・TLB拡張
・サーマルダイオード
・モバイル版電圧1.4V

 ダイサイズは従来のAthlon(Thunderbird:サンダーバード)の約120平方mmから数%増えた。トランジスタ数は50万の増加。つまり、コストオーバーヘッドは最小に抑えたということになる。ちなみに、AMDは今回新モバイルDuronも発表しているが、これはPalominoコアを使ったものだ。Palominoの256KBのL2キャッシュのうち、64KB分だけを製造オプションで活かして使っている。PalominoのDuron版である「Morgan(モルガン)」はまだ投入されない。

●XMMレジスタを新設しSSEをサポート

 新フィーチャでまず、目立つのは「3DNow! Professional」。この新命令ではIntelのSSE(ストリーミングSIMD拡張命令)をフルサポートする。この意味は、SSEの単精度浮動小数点SIMD(Single Instruction, Multiple Data)命令とSSE用に追加されたXMMレジスタをサポートするということだ。追加された新命令は52個。これで、Palominoは3DNow!とEnhanced 3DNow!、そしてSSEをサポートすることになった。

 3DNow!とSSEは、演算命令自体はよく似ているが、レジスタが異なっていた。SSEより先に登場した3DNow!は、レジスタを物理的に新設せず、浮動小数点レジスタを定義し直した64bit幅のMMXレジスタを使っている。それに対して、SSEでは128bit幅の専用レジスタ8本(XMM0~XMM7)を使う。そのため、3DNow!が2個の単精度浮動小数点データをSIMDパック化できるだけなのに対して、SSEは2倍の4個のデータをSIMDパック化できる。

 Palominoでは、今回、このSSE命令とXMMレジスタを実装している。ただし、まだ演算ユニット自体が128bit幅に拡張されたかどうかわからない。一番容易なのは、従来の3DNow!の演算ユニットで両命令を実行、MMXとXMMの両方のレジスタに対応できるようにすることだ。演算自体は3DNow!と似ているので、対応は比較的容易だ。その場合、演算ユニットが64bit幅のままなら、従来の3DNow!演算とピーク性能は変わらない。トランジスタ数の増加が少ないことから見て、演算ユニット自体には大きな変更は加えられていない可能性が高い。

 一方、IntelがPentium 4で採用したSSE2は、Hammerまでサポートしない。これは、倍精度浮動小数点演算のSIMD化を含むSSE2のサポートは、演算ユニットの大幅な拡張を含み、トランジスタを食うためである可能性が高い。Hammerでは、現在64bitモード時のみSSE2命令を使えることになっている。しかし、フタを開けたら32bitモード時にも使えたとしても、驚かない。演算ユニットとレジスタ自体は対応するので、あとは命令セットをインプリメントするかどうかだけだからだ。

●DDR SDRAMに合わせてハードウェアプリフェッチ

 Palominoのもうひとつの大きな特徴はハードウェアによるデータプリフェッチのサポート。現在のハイエンドCPUの場合、プリフェッチングは性能の向上に大きな効果がある。それは、CPUコアのクロックばかりが上がってしまったのに、メモリアクセスのレイテンシは一向に縮まらないからだ。いったんメモリにアクセスにいくと、その間、CPUのパイプラインがストールしてしまう場合がある。これは、高速道路に信号を設けるようなもので、そこでCPU性能はがくっとブレーキがかかってしまう。

 そこで出てきたのがプリフェッチだ。前もって必要と思われるデータをキャッシュに取り込む(プリフェッチ)しておけば、データ待ちによる演算ユニットのストールをなくすことができる。実際に、ループ処理で連続したアドレスのデータを読み込んでゆくような、データフェッチを予測できるパターンは多い。そこで、それをハードウェアで自動的にやってしまおうというのがPalominoのハードウェアプリフェッチだ。

 この手法の利点は、3DNow!やSSEのプリフェッチ命令で明示的に指示しなくても、自動的にフェッチしてくれるので、従来のアプリケーションでも性能が上がること。しかし、難点もある。それは、メモリ帯域を圧迫する可能性があることだ。つまり、投機的なプリフェッチを自動的に行なっていると、必ず無駄なフェッチが出てくる。その分は、メモリ帯域やFSB(フロントサイドバス)帯域を圧迫することになる。もし、十分なメモリ帯域がないと、プリフェッチをがんがん行なったったために、帯域ネックで性能が落ちてしまうことも考えられる。そのため、ハードウェアデータプリフェッチは、十分なメモリ帯域があることを前提としたアプローチにならざるをえない。

 AMDがPalominoにこのフィーチャを入れたことは、Palominoの論理設計を始めた1年以上前の段階で、メモリ帯域が広がることを予測していたことになる。DDR SDRAMは今年後半には浸透して来そうな気配なので、Palominoはちょうどぴったりということになる。この手の拡張は、メモリ市場の動向に左右されるのでCPUメーカーにとっては賭けとなる。そして、AMDは今回は賭けに勝ちそうだ。

●ピン互換を維持

 前回のコラムで、チップセットとマザーボードのPalominoサポートの話を取り上げた。これについて、日本AMDの小島洋一部長(コンピュテーション製品グループテクニカル・マーケティング部)は「Athlon 4のピンは物理的には従来のAthlonと同じ。基本的にこれまでのAthlonのインフラを使用できる。しかし、従来使われていなかったピンに信号が追加されているため、Athlon 4の新しい機能を使うには新たにマザーボードの配線が必要」と説明する。

 つまり、これまで未定義だったピンのうち新たに利用されたピンがあるということだ。日本AMDによると、それはサーマルダイオードとPowerNOW!の実装に伴なうものに限られるという。ハードウェアプリフェッチなどでのピンの変更はないという。つまり、デスクトップ版Palominoでも、原則として現在のマザーボードで、BIOSアップグレードや電圧で対応できればサポートできることになる。

□関連記事
【5月15日】日本AMD、モバイルAthlon 4/Duronの発表会を開催
http://pc.watch.impress.co.jp/docs/article/20010515/amd.htm


バックナンバー

(2001年5月17日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


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

Copyright (c) 2001 impress corporation All rights reserved.