このページの本文へ

【最新パーツ性能チェック Vol.40】待望のDDR2対応Athlon 64が登場! FX-62と5000+の性能はどこまで伸びるのか?

2006年05月23日 12時59分更新

文● 月刊アスキー編集部 野口岳郎

  • この記事をはてなブックマークに追加
  • 本文印刷

そもそもメモリ性能はどれくらいのインパクトを持つものなのか

 今回テストするのは、FXの新たな最上位モデルとなるFX62(クロックがFX60から200MHz上がり、2.8GHzとなった)と、X2の最上位となる5000+(クロックが4800+から200MHz上がり、2.6GHzとなった。ただしキャッシュはコアあたり512KBで、4800+のコアあたり1MBよりは少ない)。
 新シリーズの最大の特徴は、すでに述べたとおり、内蔵メモリコントローラがDDR2対応に切り替わったことだ。対応メモリはDDR2-400(PC2-3200)、DDR2-533(PC2-4300)、DDR2-666(PC2-5300)およびDDR2-800(PC2-6400)の4種。DDRには対応していない。
 そのほか、消費電力削減のほか、新機能として、AMDの仮想化支援機構、コードネーム“Pacifica”こと“AMD Virtualization Technology”にも対応している。この機能を使った仮想化ソフトが登場した際に、スループットや安定性の向上が見込める。

 さて、今回DDR2-800に対応したことで、ピークメモリ性能は従来(DDR-400)の2倍にまで向上することになる。ピーク性能だけでいえば、メモリのチャネル数を倍にしたのに匹敵する大幅な性能アップだが、果たしてこれは、実際のアプリケーションにおいてどの程度の性能向上をもたらすのだろうか? 

 BIOS設定でDDR2-400からDDR2-800までに変えて、メモリ性能がどう変わるかを確認したのがグラフ1と2だ。BIOSデフォルトだとクロックにかかわらず23-18-5-5-5という巨大レイテンシを入れられてしまうので、適宜修正した。DDR2-800の場合は、一般的なスペックとして、RC=21、RAS=16、CLなど=5に設定している。ただし今回借用したテストベッドにはCorsairの1066MHzのDDR2メモリが装着されていたので、現状最高速設定として、800MHzで18-12-4-4-4という設定でもテストし、これを「MAX」と表記している。

グラフ1 「Sandra 2005」のMemory Bandwidthの結果。DDR2-400はDDR-400よりかなり性能が低い。また、DDR2-800でもあまり性能が上がっていないグラフ2 「Everest Home 220」によるメモリリードの結果。伸び率は高くなったが、絶対的な数値としては毎秒5.5GBでは振るわない

 ご覧のとおり、最大2倍という期待からすると振るわない結果になった。FX62の場合、「Sandra 2005」では400とMAXの差がわずか28%。「Everest」でも36%アップにとどまった。絶対的なスコアとしても、理論値(12.8GB/秒)に対し7GB/秒ほどでは物足りない。なにしろDDR時代には理論値の6.4GBに対し、約90%に相当する5.8GBほどの値が出ているのだ。また、同じ400MHzの状態だと、DDRよりDDR2のほうがかなり遅い。
 内部にボトルネックがあるのではないかと思いたくもなるが、Athlonシリーズは排他式キャッシュを採用していることもあり、メモリ性能を正しく測定するには困難がつきまとう。5000+については「Sandra 2007」が間に合ったので、こちらでもメモリ速度を計測したところ、DDR2-800利用時は7500と大きくスコアが伸びている。とはいえこれでもまだ理論性能の60%弱だ。テストアルゴリズムの問題はあるにせよ、やはりクロックが上がったことでさまざまなレイテンシが増え、DDR-400時代のような実効性能を出すのは困難になっているのは確かだろう。

FX62と5000+のメモリ性能の奇妙な変化

 ところで、2つのテストのグラフを見ると、奇妙なことに気がつく。そう、同じメモリを使っているのに、FX62のほうが5000+よりメモリ性能が高くなっているのだ。まあ、メモリの性能を測っているつもりでも、コアの性能やキャッシュの量などが影響してしまっている、といって片付けるのは簡単だが、ではDDR2-400の場合には両者の差がないのはなぜだろう。さらに、「Everest」で見ると、DDR2-533、666については5000+のほうが速くなっている。

 謎を解く鍵かもしれない情報がOpteronのデータシートに載っている。結論から言うと、Opteronのメモリ用クロックは、CPUクロックを整数分の1に分周して作っていることが示唆されている。たとえば2.4GHzのOpteronがDDR400(クロックは200MHz)をドライブするために、内部クロックを12分の1にして200MHzの信号を作っているわけだ。これはAthlon 64でも同じ構造だと思われる。
 これまでのAthlon 64は、当然のようにDDR400を使ってきたが、CPUクロックが200MHzの倍数だったから、適当な値で分周すれば必ず200MHzジャストの信号を作ることができた。ところが今回、メモリクロックが上がったため、仮に従来どおりの手法でメモリクロックを作っていると問題が生じる。DDR2-800をドライブするには400MHzの信号を作る必要があるが、CPUのコアクロックが2.6GHzの場合、7分周すると371MHzでちょっと足りない。とは言っても6分周だと433MHzになってしまい規定をオーバーしてしまう、といった事態が発生するわけだ。具体的に言えば、FX62は2.8GHzだから、7分周でジャスト400MHzを作れるが、5000+は2.6GHzなので、7分周の371MHzで使わざるを得ないことになる。これはDDR2-800に限らず、他の設定においても、ジャストにあわせられない場合が出てくる。表にまとめてみた。かなりのケースで、ベストのクロックが作れないことがわかる。

表2 整数分周の場合の各メモリモジュールの実働クロック

CPUクロック DDR(2)-400 DDR2-533 DDR2-666 DDR2-800
2000400500667800
2200400489629733
2400400533600800
2600400520650743
2800400509622800

   これはあくまで仮説であり、コアとは非同期にメモリクロックを出せるようにしたとか、あるいは0.5単位で分周できるようにした、という可能性がないわけではない。ただ「Everest」の計測結果は、この表の数値と非常によく一致する。つまり、DDR2-800設定だと5000+の性能が振るわないが、666や533だとFX62より5000+が速くなっている、という現象をうまく説明できる。実際問題、800MHzのうち20MHzや30MHz違ったところで実使用レベルでわかるような差にはなりはしないが、こだわる方は購入前にデータシートをあたるなどしたほうがいいかもしれない。

「CPUZ」で見た5000+のメモリステータス。BIOSではDDR2-800に設定しているのに、メモリクロックはコアを7分周した371MHzと表示されている。この表示が正しければ、CPUのクロックと利用するモジュールによる実メモリクロックは上の表のようになるはずである

カテゴリートップへ

注目ニュース

ASCII倶楽部

ASCII.jpメール アキバマガジン

クルマ情報byASCII

ピックアップ