Last Update Aug./08/2008 by qqqq111
メモリ価格の変動に右往左往するスレッドテンプレはwikiに移行しサイトが移転しました。移転先は「メモリ価格の変動に右往左往するスレッド」自作板@wiki。
すでにまとめサイトという役目は終えていて右往左往スレでよく話題にあがるようなことはたいてい@wikiのほうに載っていますのでそちらをご参照ください。ここはすでに管理人の落書き場と化しています。
このサイトにあるハウツー系動画を見るためには動画がH.264(すべて3MB以下)のためAdobe Flash Player 9.0.115以降が必要です。できる限り最新版をご利用ください。
誤字や不自然な表現の修正などを除き一ヶ月以内に更新されたところは青くなります。
自作板関連以外
初心者様向け
Sorry,this website is written only in Japanese. Japanese Fonts required to view this website.
いくつかのメモリスレで話題になったことなどを覚え書きのように書いております。特に注釈がない限り、Windows 2000/XP/Vista 32bit環境を想定した記述となっています。またハードウェア・パーツ類の記述はいわゆるコンシューマー向けを想定しています。エンタープライズ向けに当てはまるとは限りません。
記述が長い上繰り返し出てくるのでここで注釈を書きたいと思いますが、メモリのリマップ機能が有効となる要件を満たす環境と書かれている場合は、CPUは(x86の)物理アドレス拡張をサポートし、チップセット(およびメモリコントローラー)のサポートするアドレス空間が十分に広く、チップセット(およびメモリコントローラー)かつBIOSにMemory Hole Remap(ping)/Memory Remap Feature/Memory Hole Adjustなどと呼ばれる機能があるということを含んでいるものと解釈してください。具体的にはCPUはPentium Pro以降(AMDの場合はそれ以前はよくわかりませんが、AMD K7以降はサポートされているようです)、チップセットはintelの場合は955X以降、AMD系は正確には違うようですが、一般向けで使える割合が多いのはだいたいsocket AM2システム以降ということになります。OSはこの中には含んでいません。
Microsoftのサイトをご覧ください。マイクロソフト サポート技術情報 - 253912
いろいろ表示するソフトは存在しますが、CPU-Zが手軽のように思えます。 下の画像は例としてノーブランド系M&S PC2-6400 2GBとDELLのPCに載っていたKingston PC2-4300のSPD情報です。また細かいタイミング情報を表示あるいは多数のレイテンシを設定できるMemsetというユーティリティもあります。


CAS Latency-tRCD(RAS to CAS Delay)-tRP(RAS Precharge Time)-tRAS(Act to Precharge Delay,tRAC, RAS Pulse Width)の数値がBIOSのセッティング、SPD情報などでメモリタイミングとして出てきます。単位はclkかnsecがよく使われます。
一般的に一番大きい値のものはtRASの値で、どれも値が小さければレイテンシが下がりそれだけ高速です。
メモリ総合スレの引用ですが図にするとこんな感じです。

前の数字はwordと言います。後の数字はそのDRAMチップのbit長[幅](言い換えると1wordが何bitであるか)を表しています。例えば32M*8の構成のものは32Mword=32M*8bit=256Mbitの容量になります。Pentium系統などのメモリ-CPU間は64bit転送であることから、PC用DRAMのモジュールのデータ幅は一般的に(1チャンネルあたり)64bitであり、32M*8の256Mbitチップでシングルランク(バンク)のモジュールを形成する場合、チップは8個必要で256Mbit*8=256Mbyte(1byte=8bit)の容量のメモリモジュールになります。ダブルランクのメモリモジュールは容量が倍になります。たいてい片面実装はシングルランク、両面実装はダブルランクですが、それにあてはまらないものも存在します。
話がちょっと難しいので具体的な例を用いて少し説明を付け加えたいと思いますが、たとえば「64M*8 512MB」という説明があればチップが片面8枚で片面実装(言い換えると1rank/1bank)、「64M*8 1GB」という説明があればチップが片面8枚ずつで両面実装(2rank/2bank)となります。また最近のサーバー用DDR2レジスタードメモリを例に取ると、「128M*4 1GB」とあればチップは16枚で1rankになり、「64M*8 1GB」とあれば片面8枚で両面実装(2rank/2bank)、という感じになっているようです。
マイクロソフトのメモリ診断ソフトで、フロッピーディスク/CD-RWどちらからでも起動が可能。
standard testで4分程度、extended testで40分程度で一周するようです。(845E/PC2100 512MBで測定)
あと推奨使用設定・方法についての説明動画を簡単に作ってみました。初心者様向けです。
CPU-ZあるいはMemsetでたいてい確認できます。また現在はほぼBIOS(または起動画面)で確認できると思います。
下記は例としてCPU-ZとMemset3.2のSPD表示画像、Channels #とchan.の項目で確認できます。CPU-Zの新しいバージョンはAsymmetric Modeであるかどうかも確認できるようです。


MacもメモリはJEDEC規格準拠品が載っています。確実ではないですが相性がでなければ問題なく動作すると思われます。逆も同じことが言えます。
32bitOSではビデオカードなどデバイスが増えるとメモリマップドI/O(I/OデバイスがプログラムやOSが使うメモリと同じ空間を使う手法)によりI/Oデバイスが使うアドレス空間が増えていき、OSが使う分を圧迫していきます。ビデオカードは使うアドレス空間が大きいようで複数になると影響も大きいです。QuadSLIにすると、2GB付近までしか使えないという報告もあったりします。
解決するには64bitOSを使う(メモリのリマップ機能が有効となる要件を満たす環境が前提。サーバー用OSは使えるかどうかは別としてコンシューマー向けVGAではサポート外となっています。)かリマップされた領域をGavotteなどソフトウェアRAMディスクにて使用する方法などがあります。
このトピックの主な主眼はメモリマップドI/O(I/OデバイスがプログラムやOSが使うメモリと同じ空間を使う手法)によりI/Oデバイスが使うアドレス空間は、仕組みとして物理アドレスとしては実質使用不可能な領域だということです。もちろんOSおよびBIOSが実際より多少大きく取っていることがあるため認識できない部分をERAMなどで指定すると多少の部分は使えることはあります。
またこの話題はメモリのリマップ機能が有効となる要件を満たす環境に必要なチップセットおよびコントローラーなどが普及する以前からの話題であり、初期の939システムより前および955Xより前のチップセットあるいは一部のモバイルチップセットなどチップセット自体の制限を取り払うのは極めて困難です。そのこと自体に変化はありません。
加えて新しい情報として、メモリのリマップ機能が有効となる要件を満たす環境である場合は4GB超のアドレスに再配置されたアドレス空間を特定の作成ソフトを用いてソフトウェアRAMディスクとして使うことが可能です。例をとるとOS認識メモリ容量約3GB+ソフトウェアRAMディスク約5Gという構成でXP 32bitを使用することが可能です。
P945など古いチップセット(945は一部サポートしているチップセットが存在しているようです)でチップセットのサポートする空間が4GBが上限である場合は4GB使えないのは変わっていません。それら古いシステムでは3GBにしたほうが無難なケースもあるというのが変わっているわけでもありません。
オペレーティングシステム一覧選択画面が表示される(出ないときは起動時にF8キー)場合は一番下に項目がありますのでそれを選択します。またはスタートメニューからメモリ診断ツールの項目をクリックし、ウィンドウの指示通り再起動すればテストが始まります。 このメモリ診断ツールはほとんどWindows Memory Diagnosticと同じものだと思われます。詳しい使用法を知りたい方はWindows Memory Diagnosticの使用方法を参考にしてください。
企業サイトなども図解で説明しているのが多いのでインテルやIBMやAMDのサイトの説明を参考にし、さらにメモリを4GB以上認識させる 3、Windows Vista 64bit版 Part 4などの記述を引用してなんとか図にしてみたいと思います。図がわかりにくい場合は・・・・筆者のスキルが上がるのをお待ちくださいorz
他にも細かい領域はいろいろありますが、それらは省略しています。図が理解いただけるなら、だいたいWindowsNT系でのメモリ認識の仕組みの概要はわかっていただけるかと思います。
参考程度ですが私の持っているインテル系マザーでのXP SP2でのメモリ認識量です。ONOFF表記のないものはBIOSにMemory hole Remap設定がないものです。デバイス類はVGA(X600SE)、マウスキーボード以外はほぼつけていない状態です。
915P+Pen4+PhoenixBIOS/約3.3GB(3400MB)
925X+Pen4+PhoenixBIOS/約3.3GB(3400MB)
945P+Pen4+AwardBIOS/約3.3GB(3400MB)
P965+Core2+PhoenixBIOS/約3.5GB(3540MB)
P965+Core2+AMIBIOS/OFF時約2.9GB(2980MB)ON時約2GB(最新BIOSで3GB)
P35+Core2+AMIBIOS/OFF時約3.1GB(3170MB)ON時約3.1GB(3170MB)

メモリの性能を測るベンチでは差が出ることも多いですが、(結局メモリベンチのように大量の連続的なデータ転送を要求されることは通常では限られるため)実際(総合的な)アプリケーションのベンチマークでは必ずしも(無視できない)性能差が出るということはありません。Athlon64系統の場合は性能に若干影響が出る感じもありますので、基本的にはサポート上限の周波数を基準にするのが適当かと思います。
またメモリバンド幅の影響が大きいとされるようなものというのは、内蔵VGAの処理能力、一部の形式の動画エンコード性能、一部の形式のファイル圧縮時間、一部の3Dゲーム、などがPC情報サイトなどではよく挙げられる例かと思います。
そんなに精密にやったわけではなく蛇足に近い内容ですがCore2Duo E6600+P5K-Eという環境でやってみた比較画像を一応置いておきます。右上からStreamという古くからあるメモリベンチマーク、メモリタイミングを表示、設定できるMemSet、浮動小数点演算性能の目安となるSuperπ Mod、メモリ帯域の影響が比較的大きい部類とされるファイル圧縮の範囲から7zipのベンチマークのSSです。買い換えなどを想定しているためタイミングはAutoです。Streamベンチマークでは20%ぐらい差があるようですが、SuperπModではそれほどでもないようです。7Zipのベンチマークは5%ほど差があるようです。ここにはありませんがWinRARだとさらにベンチマークでは差があるようなのでインテル環境でもまあ圧縮解凍では効果があると言ってもいいのかもしれません。
メモリクロック400MHz(FSB/DRAM=2/3) メモリタイミングAuto
メモリクロック266MHz(FSB/DRAM=1/1) メモリタイミングAuto
性能差というのは人によってかなり感じ方が違うので非常に表現としては難しいということも一応付記しておきます。
エラーがちょっと出るので確認のためUSB機器を外したいが、CDドライブもFDDもキーボードもマウスもUSB機器ばかり。しかもPS/2もないあるいはあっても内部でUSB変換されている。できればWindowsXP/2kを入れたHDDから再起動させて自動的にMemtest86を起動させたいという方もいらっしゃるかもしれませんので、(環境がいまいち限定されますが)その一例を。方向としてはノートやメーカーPC向けの話かもしれません。
これは基本パーティションがNTFS(RAID/AHCIの場合は難しくなるor環境依存になるのでここでは割愛)でWindowsXPが入っているような環境を想定しています。基本パーティションがFATであったりネットワーク越しにイメージを読み込んでブートができるような環境であればこんなめんどくさいことをすることは不要かと思われます。
おおまかに流れを書くと、NTLDRからGrub for DOSを呼び出し、そこからコマンドでKernel memtest86.binを使うという感じになります。作業自体は難しいという範囲のことでもありませんが、boot.iniをいじくるので危険は多少伴います。
※boot.iniの編集は危険を伴います。よくわからないまま手を出すことはなさらないようお願いします。
詳細はマイクロソフトのサポートオンラインを(92977)ご覧になればと思いますが、 メモリを大量に積んでいると一部の環境でVista 32bit/64bitがインストールできない場合があります。 一応解決方法としてはインストールするときにメインメモリを2GBぐらいにして、インストールしてから上記のサポートオンラインからパッチをあてるという方法があります。
以前、私が所有しているDell Dimension C521(nforce6150)で4GB積んでかつVista64bit版を入れようとするとインストール過程途中で青画面になることがあると書きましたが、 それについてはWindows Vista 64bit版 Part 2を見てわかったのですが別の問題で、詳しくは (925528)と(941600)をご覧になればと思います。 こちらも私の環境のようにインストール時にブルースクリーンなどが発生する場合はメモリを一枚にしてインストールするのが無難かと思われます。Vista SP1ではおそらく直っているかと思いますが、SP1適用済みのメディア(イメージ)が必要かと思われます。
以前は今のランク(rank)という言葉と同じような意味でバンク(bank)という言葉が混同されて使われたりしてましたが、メモリチップの中にもメモリバンクと呼ばれるものがあって上のfour banksはチップ内のセルの集合のことを指していると思われます。DRAMメーカーのデータシートや技術資料を見る限り、512Mbitあたりまでは4メモリバンク、1Gbit/2Gbitは8メモリバンクが多いように思われますので普通は気にする必要はないものじゃないかと思います。いわゆる4ランク、4バンクまでということを指している訳ではありません。たとえばインテルのP965チップセットホワイトペーパーにはDDR2-800 512Mbitチップ16枚両面実装のモジュール4枚(1GB*4 合計8rank/8bank)のサポートがMaximum Capacityの範囲内となっています。古い話ですが、RDRAMで32バンクの話は一時期話題になったと記憶しています。
比較的新しめのチップセット、DDR2に絞って話を進めたいと思います。また概論的ではなく話を少し細かくしたいと思います、そのほうが解決しやすい場合もあると思いますので。ここは頻繁に更新・修正される可能性が高いです。
それと一部のパーツは4GBオーバーの環境で不具合が出ることが言われています。これらのハードウェアではメモリテストでエラーがでなくても、Windows上で不具合があったり不安定になったりする場合があります。ドライバの更新で解決されたものも含めて私が自作板にて不具合報告をみかけた(あるいは所有していて不具合を確認している)パーツ類
※チャンネルと書いていましたがチャネルに表記を変更。 個人的にはどうでもいいと思っていますが、インテルおよびマイクロソフトの日本語サイトで使っているカタカナ表記に倣います。とはいえそれらのサイトでも両方の表記が存在します。
インテル
AMD
自作板でよくみかける(た)ベンチマークとメモリ帯域が影響されやすいと言われているアーカイブ、エンコード関係のソフト
ゆめりあ
1024*768 最高 42468
640:480 それなり 96780
FFベンチマーク3
High 8729
N-Bench 3.1
CPU Overall 4166
3D Overall 4342
Super PI mod
1M 21.469s
CrystalMark2004R3
ALU 21359
FPU 25032
MEM 12457
GDI 9832
D2D 3729
OGL 35430
7zipベンチマーク
評価/使用率 2246MIPS
x264vfw(動画ソースは上のハウツー動画1.02GB)
single pass bitrate-based 300kbps 55秒
Ogg Vorbisエンコーダ(音楽ソースは57分程度のCDのWAV)
オプション-q0 1分56秒
ゆめりあ
1024*768 最高 42496(誤差程度)
640:480 それなり 96823(誤差程度)
FFベンチマーク3
High 8735(誤差程度)
N-Bench 3.1
CPU Overall 4199(誤差程度)
3D Overall 4344(誤差程度)
Super PI mod
1M 21.406s(-0.063s)
CrystalMark2004R3
ALU 21348(-11)
FPU 25956(+924)
MEM 13977(+1540)
GDI 9806(-26)
D2D 3728(+1)
OGL 35444(+14)
7zipベンチマーク
評価/使用率 2251MIPS(誤差程度)
x264vfw
single pass bitrate-based 300kbps 52秒(3秒faster)
Ogg Vorbisエンコーダ
オプション-q0 1分56秒(同じ)
結果を見るとCrystalMark2004R3のMemory項目で11%ぐらいの差とFPUの項目で約4%の差とx264vfwエンコードで差がありますね。この結果をもとにあえて誤解を恐れずに感想を言いますと、もともとそんなにメモリスピードがパフォーマンスにつながるケースが多いわけではありませんが、帯域が倍という割には効果が薄いような気がするなあというような印象を個人的には受けます。まあ2コアのCoreMA環境に限った話でありシングルだったり4コアだったりAMD系だとまた違った印象を受ける可能性もあるかと思いますが。x264では割合を考えるとかなり効果が高いともいえそうで、ほんとなかなか難しいところではありますね・・・。
ゆめりあ
1024*768 最高 6714
Super PI mod
1M 43.360s
CrystalMark2004R3
ALU 14958
FPU 15576
MEM 10513
GDI 13384
D2D 6340
OGL 7506
7zipベンチマーク
評価/使用率 1765MIPS
※エンコード関係は都合により省略しています。
ゆめりあ
1024*768 最高 6715(誤差程度)
Super PI mod
1M 42.468s(-0.892s)
CrystalMark2004R3
ALU 14722(-236)
FPU 15666(誤差程度)
MEM 12363(+1850)
GDI 13706(+322)
D2D 6268(-72)
OGL 7497(誤差程度)
7zipベンチマーク
評価/使用率 1788MIPS(+23MIPS)
現状AMD環境が一台しかなくなってしまい、テストするにも準備に少し手間取ってしまいました。テスト機自体が少し古めでPC5300しか用意できなかったのでちょっとパワーとしては物足りないものとなっています。 まあいいわけはこれぐらいにしてw、少し感想を書きますと、ゆめりあやCrystalMarkのOGL項目など3D関係は違いがありません、ここらへんはしょぼいVGAカードではありますが、順当なところですかねえ。後はインテル環境と違いCrystalMarkのALU FPU数値自体にあんまり差がないのにSuperPI modや7Zipでは少し差があります。ここらへんは少し興味深いところではあります。一応まとめとしてはたったこんだけでなんともいえない感じではありますが、インテル環境より実アプリでは影響は大きいような感じはここでは受けとれるような気がします。まあそれでも微妙な差とはいえるようないえないような。
はっきりいって環境に依るとしかいいようがありませんので、私がいくつかのPCで実験した結果だけ書いてみたいと思いますが、まず私が持っているビデオカード、Geforce 5200(128MB) 7600GS(256MB) 7950GT(512MB) RADEON X300SE(64MB) X1300(256MB)を同メーカー2枚ずつP5K-Eに挿してみましたが、XP32bit上にてメモリ認識容量の差に変化はありませんでした。
次にP5K-EにVGA2枚(7950GT 7600GS)とGigabit NIC2枚とサウンドブラスターAudigy4、UltraSCSIカードを挿し、オンボードはすべて有効にして、次にUSBフラッシュメモリを3つ、USB-HDDドライブ、USB-DVD-RWドライブ、USBハブをつなぎ、IEEE1394にカードリーダをつなぎます。後ろのポートはeSATA一つとIEEE1394片方ポートのみ空いていて内蔵も含め合計接続デバイスは・・・22ですかね・・・マウスなども含みます。んで起動してみたところ・・・メモリ認識量は変化はありませんでした。
今度はAMI系に比べて認識量が多め(3.2-3.4GB)と言われているPheonix系(AWARD)の場合は、965系(FOXCONN)とPCI-E搭載では最も古い世代にあたる915系(intel)が載っているPCでとりあえず7950GT(512MB)およびX300SE(64MB)を挿してみましたが変化はなし。また915マザーでも古いPCなのでデバイスを必要以上に増やすのは少し怖かったですけど、RADEON X1050とPCI-E x1に挿せるように細工したX600SEとPCIのNIC二枚挿して見ました。が、認識量に変化はないようです。
やっぱりSLIやCrossFireとかじゃないとそう関係ないんですかねえ・・・いやわかりませんけど、私が実験した限りでは増減どちらの方向にも変化する現象は見られませんでした。ビデオカードは現在12枚もっていますが、DirectX10世代になってからまったく付け替えようという気がなくなってしまったのでRADEONX1000より以降、Geforce7より以降のカードは所有していません。新しいカードだと結果は全く違うかもしれません。
またVista32bitではOS認識容量に上限があるようで(ソースはマイクロソフトのサポートオンライン)、最大値は3.12GBのようです(Vista32bitは使用したことがないので詳しいことはわかりません。MSの説明自体が間違っていることもないとはいえませんので正しいかどうかは検証が必要です。)。
余計な注意点としてはメモリのリマップ機能が有効となる要件を満たす環境であれば2000/XP/Vistaでのメモリ認識容量に関わらず特定のRAMディスク作成ソフトを用いてすべてのメモリ容量を使用すること自体はほぼ可能です。このトピックはintel945以前のPCやリマップに対応していないノート、またはuptempo、SuperCacheなどを使用している方向けを想定しています。