元麻布春男の週刊PCホットライン

オーバークロックメモリのメリット、デメリット



 PCのメインメモリに用いられるDRAMは、汎用DRAMとも呼ばれる量産品だ。実際にメモリの増設に用いるメモリモジュール(DIMM)は、この汎用DRAMを基板上に集積したものである。ただし、メモリモジュールのスペックは1通りではなく、さまざまなスペックのモジュールが提供されており、ユーザーは自分が利用するシステムやマザーボードに合わせて、適切なモジュールを購入する必要がある。

 メモリモジュールには、モジュールの種類(デスクトップPCに用いる標準サイズのDIMMかノートPC用のSO-DIMMか)、メモリの種類(DDR2あるいはDDR3か、など)、エラー訂正等の機能の有無(ECC付か、アンバッファかレジスタ付きか、など)、さらには容量、速度の違いがある。当然のことながら製品(メーカー)も複数存在するし、メーカー名が明示されない「バルク」も存在する。もちろん、実際に店頭で購入する場合には、これらをいちいち全て指定することはなく、たとえばデスクトップPC用のPC3-10600の2GBを2枚、といった注文の仕方をすることが多い。

 デスクトップPC用と言ってしまえば、ほぼ自動的にアンバッファでECC無しの標準サイズDIMMということになり、PC3-10600と指定することで、DDR3メモリでデータレートが1,333MHz(DDR3-1333)ということが決まる。「2GBを2枚」で、容量と数量が示されたから、おそらく販売店は、どの製品(メーカー)がいいですか、的なことを答えて、商談が進んでいく。場合によっては、最初からどのメーカーをと、ユーザーが名指しで指定することもあるだろう。

●クロックとレイテンシで速度が決まる

 ここで少し「ウルサイ」ユーザーなら、同じデータレート(クロック)でも、複数の速度グレードがあり、それによって価格が異なることを知っているハズだ。CL=9とか、場合によってはPC3-10600 9-9-9、さらにもう1つ数字を追加して、PC3-10600 9-9-9-24などと呼ぶこともある。CLというのはCAS Latency(tCAS)の略で、おおざっぱに言ってしまえば、アドレス(列アドレス)を指定してからデータにアクセスするまでの待ち時間を示す。当然、この値が小さい方が高速なメモリということになる。

 一方、9-9-9-24という数字の並びは、順にtCAS-tRCD-tRP-tRASを示している。一般にメモリにアクセスする際のアドレス指定は行(Row)アドレスと列(Column)アドレスの2回に分けて行なわれるが、tRCDはこの間隔(待ち時間)を表している。tRPはアクセスしていた行アドレスへのアクセスを止め、別の行アドレスへアクセスするのに必要な待ち時間(プリチャージ時間)、tRASは特定の行アドレスを出力して(アクティブ)から、その行に対するアクセスを終了するまでの最小時間を表す。こうしたメモリアクセスに必要なデータは、モジュール上のSPD(Serial Presence Detect)と呼ばれる小さな不揮発メモリ(EEPROM)に書き込まれており、メモリコントローラはこのデータを読み出して利用する(実際には、SPDに書き込まれているデータは、これよりはるかに多い)。

 このSPDに書かれているデータは、そのフォーマットだけでなく、標準的なパラメータ(フォーマットに書かれるべき個別のデータ)がJEDECで定められている。こうした標準があるおかげで、「PC3-10600」といった簡単な指定だけで、基本的には動作するメモリモジュールを購入することができるというわけだ。おそらく市販されているメモリモジュールのほとんどは、JEDECの標準に従っている。

 こうしたJEDEC標準に準拠したメモリモジュールに加え、最近、販売店の店頭で見かける機会が増えているのが、PMP(Performance Memory Profile)に対応したメモリモジュールだ。メモリアクセスのパラメータが書き込まれたSPDには、最初から未使用の領域が残されている。ここに追加のパラメータを用意することで、必ずしもJEDEC標準には合致しないながらも、より高速な動作を保証したモジュールだ。JEDECのスペックを標準とするなら、それを上回る設定というわけで、オーバークロックメモリと呼ばれることもある(もう1つ意味があるとすれば、オーバークロッカー向けのメモリ、ということだろう)。

●メモリコントローラ用プロファイルをSPDに用意

 では誰が追加するパラメータを定義しているのか。それはチップセット(メモリコントローラ)ベンダーだ。現在、PC向けにメモリコントローラを提供している(チップセット内蔵、あるいはCPU内蔵)のは、NVIDIA、AMD、Intelの3社であり、それぞれが自社のプラットフォーム用にPMPを用意している。NVIDIAのEPP2(Enhanced Performance Profile 2.0)、AMDのBEMP(Black Edition Memory Profile)、そしてIntelのXMP(eXtreme Memory Profile)だ。中でもIntelのXMPは、CPUの市場シェアが高いこともあり、対応製品を見かける機会が多くなっている。

 表は、4月上旬の時点で筆者が調べた、あるオンラインショップが販売していたKingstonとCorsairの、PMP対応メモリの一覧だ。といっても、PMPによりPC3-12800(DDR3-1600)相当の帯域を提供する2GBモジュール2枚組のキットだけで、実際にはこの2社だけでも他の速度グレードや3枚組のキット等も用意されている(PMPに対応しないJEDECのみのモジュールもある)。さらに、Crucial、A-Data、UMAX、Patriotなど、ここに書ききれない数のベンダーが、PMP対応メモリを発売している。市場にどれだけバリエーションがあるのか、想像もつかない。それでも、この不完全な表を掲載することにしたのは、この表からある程度PMP対応メモリの傾向が読み取れるからだ。

【表】ある販売店(オンライン)で扱っていたKingstonとCorsairのパフォーマンスメモリ
(オーバークロック時にPC3-12800相当、2GB×2のキットのみ)
メーカー 型番 販売価格 シリーズ名 JEDECプロファイル PMP *1 PMPプロファイル クーリング 備考
Kingston KHX1600C8D3K2/4GX 12,980円 HyperX 9-9-9-24
1,333MHz
1.5V
XMP 8-8-8-24
1,600MHz
1.65V
ヒートスプレッダ
Kingston KHX1600C8D3T1K2/4GX 13,980円 HyperX 9-9-9-24
1,333MHz
1.5V
XMP 8-8-8-24
1,600MHz
1.65V
大型ヒートシンク付
Kingston KHX1600C9D3LK2/4GX 15,480円 LoVo HyperX 不明 XMP 9-9-9-27
1,600MHz
1.35V
ヒートスプレッダ
Corsair CMX4GX3M2A1600C9 12,480円 XMS 9-9-9-24
1,333MHz
1.5V
XMP 9-9-9-24
1,600MHz
1.65V
ヒートスプレッダ
Corsair CMX4GX3M2A1600C8 13,980円 XMS 7-7-7-20
1,333MHz
1.5V
XMP 8-8-8-24
1,600MHz
1.65V
ヒートスプレッダ
Corsair TW3X4G1600C9D 13,780円 Dominator 9-9-9-24
1,333MHz
1.5V
XMP 9-9-9-24
1,600MHz
1.8V
大型ヒートシンク付 電圧注意
Corsair CMD4GX3M2B1600C8 15,480円 Dominator 9-9-9-24
1,333MHz
1.5V
BEMP 8-8-8-24
1,600MHz
1.65V
大型ヒートシンク付
Corsair CMD4GX3M2A1600C8 15,480円 Dominator 9-9-9-24
1,333MHz
1.5V
XMP 8-8-8-24
1,600MHz
1.65V
大型ヒートシンク付
Corsair CMP4GX3M2A1600C8 16,480円 Dominator 9-9-9-24
1,333MHz
1.5V
XMP 8-8-8-24
1,600MHz
1.65V
大型ヒートシンク付
Corsair CMP4GX3M2C1600C7 17,980円 Dominator 9-9-9-24
1,333MHz
1.5V
XMP 7-7-7-20
1,600MHz
1.65V
大型ヒートシンク付
Corsair CMG4GX3M2B1600C7 20,980円 Dominator GT 9-9-9-24
1,333MHz
1.5V
BEMP 7-7-7-20
1,600MHz
1.65V
大型ヒートシンク付
Corsair CMG4GX3M2A1600C7 21,980円 Dominator GT 9-9-9-24
1,333MHz
1.5V
XMP 7-7-7-20
1,600MHz
1.65V
大型ヒートシンク付
Corsair CMT4GX3M2A1600C7 21,980円 Dominator GT 9-9-9-24
1,333MHz
1.5V
XMP 7-7-7-20
1,600MHz
1.65V
ファン付
Corsair CMT4GX3M2A1600C6 29,799円 Dominator GT 不明 XMP 6-6-6-20
1,600MHz
1.65V
ファン付
*1 PMP(DDR3対応のPerformance Memory Profile)
XMP = (Intel) eXtreme Memory Profile
BEMP = (AMD) Black Edition Memory Profile
EPP2 = (NVIDIA) Enhanced Performance Profile 2.0

 まず最初に述べておく必要があるのは、いずれの製品もJEDEC準拠のプロファイルを備えた上で、オーバークロック時のプロファイル(PMPプロファイル)を備えている、ということだ。表中、2カ所が不明となっているが、これは筆者が調べられなかっただけで、必ずJEDECに準拠したプロファイルを備えているハズである。つまり、PMPプロファイルに対応したメモリも、JEDEC準拠のメモリとして利用することができる。これはPMPプロファイルが、JEDEC仕様の拡張であることを考えれば当然とも言える。

 ただし、JEDEC準拠のメモリとして利用する場合、PMPプロファイルで利用するよりも遅くなる。PMPプロファイルがオーバークロック時のものであることを考えれば当たり前だが、販売店によってはオーバークロック時のスペックを示したPMPモジュールと、JEDEC準拠のスペックを同列に扱っていることがある点に注意が必要だ。たとえば、JEDEC準拠のPC3-12800(DDR3-1600)のモジュールと、PMP時にPC3-12800相当になるモジュールの両方をPC3-12800として販売している場合だ。前者はJEDECの標準に準拠した状態、たとえば動作電圧1.5VでPC3-12800として利用することができるが、後者は動作電圧を1.65Vまで上げてやらないとPC3-12800としては利用できない可能性が高い。メーカー製PC等、メモリの設定を細かく調整できないPCでは、利用可能なスペックが違ってくるので間違えないようにする必要がある。

 この例でも明らかなように、PMP対応メモリのほとんどに共通する2番目のポイントは、動作電圧を標準の1.5Vから引き上げている、ということだ(LoVo HyperXは除く)。半導体の動作速度は、電子の移動速度によって決まり、電圧を上げることで高速になる(もちろん上げすぎると壊れるが)。1.65Vというのは、IntelがCPU内蔵メモリコントローラと組み合わせる際に、上限値として示したものとされ、多くの製品がこれに従って上限を1.65Vとしている。表中、1つだけ1.8V動作の製品があるが、これはCore 2 Duo対応の(メモリコントローラをチップセット側に内蔵していた時代の)製品だ。

 逆にKingstonのLoVo HyperXは、PMP時の動作電圧が1.35Vとなっている。JEDECの規定では、1.35V動作のメモリモジュールは必ず1.5Vでも動作することが求められており、おそらくこのLoVo HyperXも1.5Vで動作すると思われる。が、1.5V動作時のパラメータ(JEDECプロファイル)を、今回Webサイト等で見つけることができなかった。

 3番目のポイントは、同じPMPプロファイルのメモリで価格の違いとなるのは、レイテンシの違いである、ということだ。今回は同一クロックでの比較であるため、そのような形になる。

 今回表にまとめたPMP対応メモリのほとんどは、ヒートスプレッダや大型のヒートシンクを装備する。これが4番目のポイントだ。CPUをオーバークロックすると消費電力が跳ね上がるように、メモリもオーバークロックすれば消費電力は上がる。その熱を逃がすために、ヒートスプレッダやヒートシンクが必要になる、という事情はきっとあるだろう。

 それに加えて、ヒートスプレッダの採用には、メモリチップの型番を隠すという意味もありそうだ。オーバークロックメモリは、ある種の選別品であり、チップに書かれたスペックとモジュールとしての仕様は必ずしも一致しない。それによるユーザーの混乱を避けるという意味が1つ。それからどのメーカーからどんなチップを入れているのか知られたくない、という意味があるのではないかと思われる。

 もう1つ、ヒートスプレッダやヒートシンクに意味があるとすれば、それは商品としての雰囲気、ということになるだろう。オーバークロックメモリのユーザーにはゲーマーが多いと思われ、彼らに好まれる雰囲気を醸し出すのに、特別なデザインを加えたヒートシンクやヒートスプレッダを利用する、というわけだ。

 5番目のポイントとして挙げておきたいのは、PMPは1種類ではない、ということだ。この表ではIntelのXMPが大半で、AMDのBEMPが2製品ということになったが、メーカーのカタログにはNVIDIAのEPP2に対応した製品も記載されている。これらのPMP間には互換性がないから、たとえばIntel製CPUのプラットフォームにEPP2のメモリを組み合わせても、そのままではJEDEC準拠のメモリとしてしか利用できない(上述したように、この場合パッケージ等に書かれた帯域より、1ランク下での利用となる可能性が高い)。

 もちろん、PMPを利用せず、手動でパラメータを設定すれば、チップの限界まで性能を引き出すことはできるわけだが、それには経験と長時間のトライ&エラーが必要となる。言い換えればPMPの存在意義は、誰もが簡単にメモリのオーバークロックができる、という点にある。

●XMP対応メモリの注意点

 それでは代表的なPMPであるXMPに準拠したKingstonの「KHX1600C8D3K2/4GX」を例に、XMP対応メモリの動作を見てみることにしよう。このテストにはマザーボードとしてIntelのDP55KG、CPUにCore i7-870を用いた。

今回用いたXMP対応のKingstonKHX1600C8D3K2/4GX KHX1600C8D3K2/4GXをインストールすると、BIOSセットアップのPerformance Memory ProfileからもXMP-1600が見えるようになる。Intel Desktop Control Centerと同じ設定をBIOSセットアップから行なうことも可能だ

 図1は、XMPメモリをシステムにインストールした状態で、何も設定を変更せず、IntelのExtremeシリーズマザーボード付属のユーティリティであるIntel Desktop Control Centerでメモリの設定を調べたところだ。メモリの設定はPC3-10600(DDR3-1333) 9-9-9-24に設定されており、KHX1600C8D3K2/4GXがXMPでサポートするPC3-12800(DDR3-1600) 8-8-8-24には自動設定されてはいない。

【図1】Intel Desktop Control Centerによるデフォルト設定の表示。ただインストールするだけではXMPプロファイルではなく、JEDECプロファイルを利用している

 しかし、下のメモリのダイアログをスクロールさせていくとXMP Profileと書かれたドロップダウンボックスがあり、そこには本メモリがサポートするプロファイル(XMP-1600)が用意されている(図2)。もちろんXMPに対応していないメモリでは、このようなプロファイルは表示されない。ちなみに、表ではKHX1600C8D3K2/4GXのパラメータは8-8-8-24となっているが、これはWebで調べたもの。CPU-ZでSPDを読み出したところ、パラメータは8-8-8-20と出た(図3)から、こちらが正しいものと思われる。

【図2】メモリ設定のダイアログにはXMP-1600のプロファイルが見えている 【図3】CPU-ZでKHX1600C8D3K2/4GXのSPD情報を表示したところ。JEDECプロファイルに加えて、XMP-1600のプロファイルが用意されている

 さて、このXMP-1600のプロファイルを選択したら、これを有効にするためには再起動しなければならない。再起動した後、再びIntel Desktop Control Centerを開いたのが図4だ。メモリのパラメータはPC3-12800(DDR3-1600)8-8-8-20に設定されている。

【図4】XMP-1600プロファイルを有効にして再起動した状態。メモリがPC3-12800 8-8-8-20に設定されたほか、Uncoreの電圧も1.32Vに引き上げられている

 ここで注目して欲しいのは、図4左上のUncore Hub Voltageの項だ。図1では1.12Vに設定されていたが、メモリのオーバークロックに合わせて1.32Vに設定されている。左のインジケータが赤に変わっているのは、定格を越えたスペックが設定されていることを示したものだ。XMPメモリを、それをサポートしたマザーボードと組み合わせた場合、単にメモリのパラメータを調整するだけでなく、メモリコントローラ側で必要な設定等も自動的に行なわれる。これがXMPを利用する最大のメリットだ。こうした設定は、オーバークロックをする上で不可欠なノウハウだが、初心者では気づかなかったり、見落としたりすることも多い。また、限界を求めるベテランにとっても、とりあえずのたたき台としてXMPの設定値は参考になるし、低レイテンシで動作するハイエンド品は、オーバークロックを助けてくれるハズだ。

 XMPに代表されるPMP対応のメモリは、オーバークロックを志すユーザーにとっては、頼もしい味方かもしれない。ただ、実際にオーバークロックを行なう際には、ホストクロックを上げる代わりに、メモリのクロック倍数を下げる、といったトレードオフも必要になるだろう。元々、メモリの動作クロックを上げるだけでは、一般的なアプリケーションの性能はそれほど向上しない。そういう意味では、一般のユーザーにはあまり関係のない製品とも言える。むしろ、PMPによるオーバークロック時のスペックを、JEDEC標準のスペックと間違えて購入することに気をつけたい。オーバークロックをしない、定格で利用するユーザーにとって、PMPメモリは1グレード下のメモリを購入することに等しいからだ。