LGA2011のメモリ4枚実装について | Core チャンネル | フォーラム

iSUS に投稿されている記事の内容や、IA プラットフォーム上でのソフトウェア開発に関するトピックを開発者同士でディスカッションできる場としてフォーラムを公開しています。

運営ルールはフォーラムの利用案内をご覧ください。
フォーラムの使い方はこちら

 
フォーラムに投稿するにはログインが必要ですログイン

LGA2011のメモリ4枚実装について

メンバー投稿

8:32 AM
2012年7月6日


yoshihingis

投稿数 54

1

 LGA2011のSandy Bridge-Eは、メモリ4枚実装すると、メモリがクァドアクセスになり、並列処理を行う場合、メモリバンド幅が広くなり有利となると思います。
 ところが最近、メモリの価格下落で、1GメモリX4のメモリ構成でLGA2011搭載CPUのPCをBTOしてくれないメーカーが現れました。
 メモリは2Gのモジュールしか扱わないというのです。
 OS 32bitだとメモリは4Gまでしか認識できないので、2GX4枚だと8Gとなり、無駄が出ます。
 メモリ容量を無駄にしても、メモリバンド幅的には、2GX4枚を実装した方が良いのか、32bit OSでは認識できないので、2GX2枚でメモリ・デュアルアクセスで我慢すべきなのか、どちらが良いのでしょうか?
 OS 64bitにするのが一番良いのでしょうが、まだまだアプリの64bit対応は進んでおらず、32bit OSしか使用できない状況が続きそうなので、質問させていただきました。

10:27 AM
2012年7月6日


iSUS編集部 – 菅原

投稿数 206

2

LGA2011のメモリースロット8個のようなシステムでは64ビットOSが必須ではないでしょうか?64ビットOS下でも32ビットアプリケーションは動作しますし、リソースも多くとれるので、ドライバーが無い、などの問題が無ければ64ビットOSを利用された方がよろしいいかと。

パフォーマンスの観点からは、各チャンネルに1枚をお勧めします。

オプションは、

1)BTOで最低限のメモリーを搭載し、別途1Gメモリーを購入する(2G一枚無駄になりますが)。
2)余ったRAMをRAM-DISKとして使う。

が考えられますね…

2:32 AM
2012年7月7日


iSUS編集部 – 菅原

投稿数 206

3

そうそう、メモリースロットへのメモリーの差し方とパフォーマンスの関係は、こちらのスライドを参照ください。

http://www.isus.jp/file/forum/…..y_Perf.pdf

1:39 PM
2012年7月9日


yoshihingis

投稿数 54

4

菅原様、アドバイスありがとうございました。
 32bit OSで、どうしても2G Memoryしか入手できず、2GX4枚実装にした場合、メモリにはクァドアクセスになるものでしょうか?
 32bit OSだと4Gまでしか認識できないので、メモリを4枚実装しても、どこかの2枚(4Gまで)しか認識せず、デュアルアクセス相当なのでしょうか?

 メモリ容量としては4Gまでしか認識せずとも、各メモリスロットに実装したメモリを認識してくれて、32bitOSでもクァドアクセスになるなら、2GX4枚実装という選択もあるかと思っております。

 アドバイスを頂ければ幸いです。

6:41 PM
2012年7月19日


iSUS編集部 – 菅原

投稿数 206

5

yoshihingis 様

すいません。返信失念しておりました。

はい、各メモリーチャンネルにDIMMが装着されていれば、各チャンネルを利用したインターリーブアクセスになります。

3:37 PM
2014年3月5日


yoshihingis

投稿数 54

6

 基本的な質問で申し訳ないのですが、メモリを4CHアクセスで使用するためにLGA2011で1Gのメモリモジュールを4枚を装着したとします。
 プログラム上で、malloc等で1Gのメモリ領域を確保した時、装着した4枚のメモリモジュールに256Mづつ4分割されてメモリエリアは確保されるものなのでしょうか?
 もしくはメモリエリアの確保はコンパイラが適当に配置して、メモリモジュールのどこに確保される(言い換えれば、何枚分のメモリを使用して確保される)かは、プログラマが明示的に配置できないものなのでしょうか?

 装着した4枚のメモリに分割されてメモリエリアが確保されないと、4CHメモリアクセスのメモリバンド幅が有効に使用できないと思うのですが・・・。

 メモリにモジュールにメモリエリアがどのように配置されるのかご存知の方がいましたら、ご教授頂ければ幸いです。

10:27 PM
2014年3月25日


Mistlain

投稿数 4

7

メモリチャネルの部分では Symmetric MultiProcessing モデルとしたいので、明示的にアドレス指定しないで性能が落ちていたらもっと困ったと思います。元々 malloc() で貰えるのは OS 管理の仮想アドレスであり、物理アドレス(メモリ)との対応は OS が勝手にやります。この対応も数十 byte 以上のブロック単位で取扱っており byte 単位ではありません。

マルチチャネルのメモリにデータを分散させて性能に悪いことはないでしょうから、常に細切れに分散(≒インターリーブ)されているでしょう。シーケンシャルアクセスならバンド幅を生かせますし、ランダムアクセスならどちらにせよワーストケースです。

と裏付けのない回答ならこの程度ですが、根拠資料をご存知の方はいらっしゃいますか?