Supermicro X7DAE メモリ設定

作成
2007/07/08 Sun
更新
2008/03/05 Wed

Tipsへ戻る トップへ戻る

◎注意

 この項目については、かなり当て推量を含みます。結果については、得られた物をありのままに記述しています。しかし、解釈については資料、実験共に不足しています。

◎概要

 FB-DIMM 特有のメモリ設定について、資料が少なく、ずいぶんと迷いました。以下では、メインクライアントPCで使っている Supermicro X7DAE の BIOS中のメモリ設定を実例として記述します。

1.結論

 簡単に調査して検討した結果、以下の様に落ち着きました。

 FB-DIMM を4枚差しで、M/B 上の DIMM の物理的な配置は下記写真通りに1スロットおきに全バンクに差し込みました。(取説通り)

4枚を1枚おきに全バンクに配分

 関連パラメータは以下の通り。

X7DAE の FB-DIMM 関係のパラメータ設定値
設定項目名称 BIOS 初期値 現設定
インターリーブ1:41:2
High Temp DRAM OPDisableEnable
AMB Thermal SenserDisableEnable
Thermal ThrottleDisableEnable
Global Activation ThrottleDisableDisable

2.思案した所

2−1.わかりにくかった事柄

 メインライアントの ettc-mai2 は、M/B に Supermicro X7DAE を使っています。このボードはチップセットに Intel 5000X を使っており、このチップセットは DDR2-SDRAM FB-DIMM を要求します。

 この FB-DIMM と Intel 5000X は、一般的とは言いにくく参考となる物が少ない所があります。2世代ほど前の、サーバ・ワークステーション用途の Intel 860 等は特殊といえる RD-RAM のを使っていましたが、これでさえ、高性能デスクトップパソコン用のチップセットには使われていた物でした。その後の Intel E7xxx 系は、デスクトップ用のチップセットでは全く使われていないレジスタード DIMM を使っていましたが、チップセットの設定項目に大幅な違いはありませんでした。

 それに対して DDR2-SDRAM FB-DIMM は、DDR2 と言いながら、かなり性格が異なり、見たことのない設置項目が多くなっていました。検討を始めたときには日本語のパンフレットも見付けにくい状況で以下の項目で戸惑いました。

 これらについて簡単に調査して検討した結果を以下で説明します。

2−2.Intel 5000X のメモリチャネルと良いインターリーブ値

 Intel 5000X は4本のメモリチャネルを持ちます。これは、通常のデスクトップ用のチップセットがデュアルリンクでメモリ転送速度を向上させるのと同じ構造で、それが2本ではなく4本になったということです。この上に2チャンネルを一組でメモリインターリーブ(参照 Wikipedia)が設定できます。メモリインターリーブは1:1、1:2、1:4から選択できます。1つのチャネルに接続されるメモリバンクが2つ場合は1:2が最も速くなり、メモリバンクが4つ場合は1:4が最も速くなるはずです。

 Supermicro X7DAE は、メモリバンク( X7DAE のメモリスロットのグループ名称)が4つで各バンクに2枚のメモリが刺さります。インターリーブで言うところのメモリバンクと名称が重なるので、区別のためにこちらのバンクを X7DAE バンクと仮に呼ぶことにします。

 各 X7DAE バンクに1チャンネルずつ割り当てられているとすると、各 X7DAE バンクにメモリを散らばらせた方が速くなる事になります。FB-DIMM 4枚の場合、各 X7DAE バンクに1枚ずつ DIMM を差すと速くなるはずで、取扱説明書にもそうなっています。これを実際に試してみました。

 4枚を1枚おきに全 X7DAE バンクに配分したものを(1)とします。

1つずつ隙間が空く

 4枚を連続して2つの X7DAE バンクのみに配分した物を(2)とします。

隙間なしに4枚

 この2つをインターリーブ以外のパラメータを固定して比較します。使用しているメモリは、2Gbyte DDR2 667 FB-DIMM (Transcend TS256MFB72V6K-T) です。

X7DAEのFB-DIMM関係のパラメータ設定値
設定項目名称 設定
High Temp DRAM OPE
AMB Thermal SenserE
Thermal ThrottleE
Global Activation ThrottleD
D=Disable E=Enable

 CrystalMark 2004R2 [0.9.123.338] (C) 2001-2007 hiyohiyによる結果は以下の通り。

X7DAEのインターリーブと転送速度
インターリーブ (1)のRead (2)のRead
1:17503.38 MB/s3098.84 MB/s
1:27681.48 MB/s5532.35 MB/s
1:47503.38 MB/s6275.58 MB/s

 (1)と(2)は、大きな速度差がありますので、各X7DAEバンクにチャネルが割当たっている事は間違いなさそうです。また、(2)のほうは、1:4まで速度が伸びています。これは、(2)はX7DAEバンクに2枚のメモリが刺さっていて、Transcend TS256MFB72V6K-Tは128Mx4のメモリチップで2Gbyte{[(128Mx4)x8]x2}構成されているので内部的に2バンクあり、計4バンクとなっているためではないかと想像しています。

 ただし、インターリーブ間の差はあまり大きくなく、測定にばらつきも多い感じですので、測定誤差の範囲かも知れません。それでも1:1は良くない事ははっきり分かりました。

 (1)の方は、1:2が一番速くなっています。これも先の推測を後押ししてくれます。しかし(2)の時よりインターリーブ間の差はわずかです。

 はっきりしないところはありますが、以下の推測をしています。

 Windows XP (32bit) は、4Gbyte までしかサポートしません。TS256MFB72V6K-T を4枚使うと使うと、8Gbyte になり、4Gbyte 無駄になってしまいます。チャネルもインターリーブも使い切るためには、2バンク構成の 512MByte DDR2 667 FB-DIMM を8枚使うのが一番速くて無駄がなさそうです。

2−3.High Temp DRAM OP て何?

 このパラメータは高温時に DRAM が高温時にも転送速度を落として、動作する様に調整するというパラメータのようだと解釈しました。

 このパラメータは、最大 DRAM 温度をSPDから読み取るか、BIOS にあらかじめ設定してある値を使うかを切り替える物のようです。Enable にすると SPD から読み取ることになります。

 初めは、これを Disable にすれば高温時にも転送速度が落ちないのかと考えました。しかし他のパラメータと組で考えると、そうではないようで、AMB Thermal Senser が Enable でこのパラメータが Disable の場合、全て高温時の転送速度が落ちた状態になるようです。BIOS にあらかじめに設定してある値が低めなのだと思います。安全側と言うことでしょうか。

 以下の表は(1)パターンで読み出し時の転送速度の変化を調べた物です。

High Temp DRAM OP と転送速度
インターリーブ AMB Thermal Senser High Temp DRAM OP 転送速度
1:4EnableEnable7503.38 MB/s
EnableDisable5599.01 MB/s
DisableDisable7920.94 MB/s
1:2EnableEnable7681.48 MB/s
DisableDisable7859.26 MB/s

2−4.AMB Thermal Senser て何?

 FB-DIMM は AMB (high-speed Advanced Memory Buffer) とよばれるバッファが DIMM を制御します。ぎりぎりの性能を引き出そうとすると、温度変化によるばらつきを吸収する必要があるようで、AMB の温度が監視できるようになっているようです。それを有効にするパラメータではないかと解釈しました。

 これが有効になると、他の温度が関わる各種パラメータも有効になるようです。

2−5.Thermal Throttle て何?

 これは、High Temp DRAM OPよりさらに段階的に温度で転送速度を調節する機構の有効/無効を切り替える物のようです。

 これを有効にすると、FB-DIMM とチップセット間で(多分クロックの)クローズドループを構成して転送速度を調整する物のようです。

2−6.Global Activation Throttle て何?

 FB-DIMM とチップセット間で(多分クロックの)クローズドループを構成して温度変化などのばらつきを吸収すると言う物のようです。あるしきい値温度を超えると通常の Thermal Throttle の動作になるようです。

 これを有効にすると(BIOSに)事前に設定されいる値を元に、オープンループで全体の速度調節を行うようにする物のようです。

 ettc-main2 では、このパラーメータを Enable にすると転送速度ががた落ちするので、Transcend TS256MFB72V6K-T はBIOS 上に事前に設定された値が無く、うまく働いていない物と考えます。

3.試した組み合わせと結果の一覧

メモリ関係各種パラメータと転送速度の実測値
実験番号 メモリ物理配置 インターリーブ パラメータ Read Write Read/Write
001 (2) 1:4 EEED 6275.58 MB/s 2403.96 MB/s 2396.54 MB/s
002 (2) 1:2 EEED 5532.35 MB/s 2012.59 MB/s 2014.41 MB/s
003 (2) 1:1 EEED 3098.84 MB/s 1683.39 MB/s 1578.27 MB/s
004 (2) 1:4 DDDD 7165.00 MB/s 2400.68 MB/s 2333.10 MB/s
101 (1) 1:4 EEED 7503.38 MB/s 3945.48 MB/s 3898.47 MB/s
102 (1) 1:2 EEED 7681.48 MB/s 4105.13 MB/s 3973.05 MB/s
104 (1) 1:4 DDDD 7920.94 MB/s 3867.93 MB/s 3700.97 MB/s
105 (1) 1:2 DDDD 7859.26 MB/s 3685.36 MB/s 3588.16 MB/s
106 (1) 1:4 DEED 5599.01 MB/s 2786.50 MB/s 2687.24 MB/s
107 (1) 1:4 DEED 6208.28 MB/s 2985.99 MB/s 2991.90 MB/s
パラメータの項の意味
D=Disable E=Enable

4.考察と雑感

 同じパラメータでも実験結果がばらついていることが分かっており、細かな違いを完全に把握しきれていません。Intel 5000X は、各 CPU ごとに FSB を独立して持ち、メモリバスも、21Gbyte/s の高速バスです。この性能をうまく測り切れていないように思います。

 この揺らいだ結果に基づいて解釈しているため、各パラメータの意味も今一つつかみきれていません。

 そうはいっても、何らかの形で設定を決めてしまわなくてはなりません。速度だけで選べば BIOS デフォルトである実験番号104が一番速いのですが、この時のパソコン全体の動きがどうも怪しいので、実験を始めたような所がありますのでこれを選ぶ事はしませんでした。結局、安定しそう中で一番速い実験番号102のパターンを選びました。もう少し時が経てば少ないなりに情報も増えると思いますので、追々詰めていきたいと思っております。

 なお、Windows XPは、4Gbyteを超えるメモリを搭載すると動かなくなると言う噂も見聞きしましたが、8Gbyteで実験した今回の結果を見る限り4Gbyte 未満しか認識は出来なくても動かなくなるようなことは全くありませんでした。今回の結果よりチップセットとそのHALが正しく対応していれば問題はないと考えます。

参考

  1. Intel 製品概要 インテルR 5000X チップセット
  2. Intel 5000X Chipset Memory Controller Hub (MCH) - Datasheet
  3. @IT FB-DIMMがサーバのメモリを変える?
  4. @IT FB-DIMMに向かうサーバ向けメモリを知る

Tipsへ戻る トップへ戻る