デュアルチャンネルで動作しているか確かめる No.2
以前CPU-Zというフリーソフトでデュアルチャンネル動作を確認する方法を紹介したが、
CPU-Zの情報は間違っていることがあり、100%信用できる情報ではない。
また同じ記事にBIOS設定画面や診断画面を確認するとよい、と書いたが、それもまた必ずしも正確な情報が示されているとは限らない。
ということで今回はソフトウェアに頼らずに、メモリがデュアルチャンネルで動作しているか確認してみる。
○Intel 945GM Expressチップセット
Intel製CPUならCore 2 Duoまでの世代はチップセットにメモリコントローラを内蔵しているので、チップセットの技術文書を参照することになる。
参考文書
Mobile Intel 945GM Express Chipset Datasheet
特に参考となる個所
・5 Host Bridge Device 0 - Configuration Registers (D0:F0)
・6.2.46 DCC - DRAM Channel Control
データシートを読んでいくと、、、Memory Mapped I/O Registerのアドレス200h-203h「DRAM Channel Control」にデュアルチャンネル動作に関する情報がありそうだ。
このMemory Mapped I/O RegisterはPCI Configuration Registerで指定したアドレスのメモリ上に現れるらしい。
というわけでRWというフリーソフトを使って調べることにする。
PCI Configuration Registers の Bus 0, Device 0, Function 0のアドレス44h-47hを参照すると、Memory Mapped I/O RegisterのベースアドレスがFED14000hであることがわかる。
つまり「DRAM Channel Control」はこのベースアドレスに200hを足したFED14200hにあるということ。
そこで物理メモリの実アドレスFED14200hを参照する。
DRAM Channel Control (FED14200h)のDWORD値は「000F 0202」となっている。
データシートでは
Bit | Description | (補足) |
1:0 | DRAM Addressing Mode Control (DAMC) 00: Single-Channel 01: Dual-Channel Asymmetric (Stacked) 10: Dual-Channel Interleaved 11: Reserved |
DRAM割り当てモード制御 00: シングルチャンネル 01: 非対称デュアルチャンネル 10: 対称デュアルチャンネル 11: (未使用) |
という説明があることから、このパソコンは(対称)デュアルチャンネルで動作していることが分かる。
こちらはCPU-Zの画面。
ChannelsはDualで合っているが、DC ModeはSymmetricと表示されるべきところが空欄のままになっている
ちなみにBIOS設定画面や診断画面にはデュアルチャンネルに関するメッセージはなかった。
○Intel Core i3, i5, i7 Mobile(ノートPC向け) 第1世代
Core iシリーズではメモリコントローラをCPUに内蔵しているため、CPUの技術文書を参考することになる。
なおCore iシリーズにはNehalemベースの第1世代とSandy Bridgeベースの第2世代があり、第2世代ではレジスタの構造が変わっているため以下の方法は通用しない。
参考文書
Intel Core i7-600, i5-500, i5-400 and i3-300 Mobile Processor Series Datasheet - Volume 2
特に参考となる個所
・1.8.13 MCHBAR - Processor Memory Mapped Register Range Base
・1.9.1 CSZMAP - Channel Size Mapping
945GMチップセットとはMemory Mapped Registerの構造が大きく変わっているが、やることはそれほど変わらない。
データシートを読んでいくと、、、「CSZMAP - Channel Size Mapping (100h-107h)」で判断できそうだ。
まずはPCI Configration Registers , Bus 0, Device 0, Function 0のアドレス48h-4Fhを参照。
すると945GMの時と同じFED14001hだった。
次に物理メモリアドレス (FED14000hに100hを足してFED14100h) を参照する。
Channel Size Mapping (FED14100h)のQWORD値は「0000 0800 0400 0400」となっている。
データシートを読むと、
Bit | Description | (補足) |
63:48 | Reserved | (未使用) |
47:32 | 2 Channel Size (2CHSZ) | デュアルチャンネルで動作しているメモリ容量(MiB) |
31:16 | 1 Channel Size (1CHSZ) | シングルチャンネルで動作しているメモリ容量(MiB) |
15:0 | Channel 0 Single Channel Size (C0SCSIZE) | チャンネル0のシングルチャンネル部分のメモリ容量(MiB) |
となっていることから、このパソコンのメモリは2GiBがデュアルチャンネル、1GiBがシングルチャンネル、つまり非対称デュアルチャンネル(フレックスモード)で動作していることが分かる。
また、チャンネル0に2GiB、チャンネル1に1GiBのメモリを実装していることもわかる。
こちらはCPU-Zの画面。
ChannelsはDualになっており問題なし。しかしDC ModeはAsymmetricであるはずがSymmetricになっている。
ちなみにBIOS設定画面ではSingle Channelと表示されていた。