以前から、ECCに非対応のUnbufferedメモリー32GB(8GB×4)で使用してきた。
マシンの安定動作のために、ECCに対応したメモリーに交換することにした。
○ECCに対応したメモリーには二種類ある。
マザーボードやCPU(メモリーコントローラーを内蔵)に対応したメモリーモジュールを選択する必要がある。
(非対応のメモリーを使用すると、当然マシンはbeep音エラーで起動しなかった。)
1、Unbufferedメモリーモジュール
メモリーコントローラーが、メモリーモジュールと直接コミュニケーションする方式
2、Registeredメモリーモジュール
メモリーコントローラーが、メモリーモジュールと直接に通信せず、各メモリーモジュール付属のメモリーバンクレジスターと通信する方式
ここでは、このチップセットに合うようにUnbufferedメモリーを使用した。
UEFIの画面で、ECCが有効になっていることも確認した。
○取り付けたECCメモリーは有効になっているか確認した。
ECCメモリーを導入した場合と、非ECCメモリーの場合とで、比較を行った。
次のコマンドで状態を確認することができた。
◇ECCメモリ(ただしunbuffered)を搭載した場合
テストのため、ECC/unbuffered 8GBメモリー(DDR3 1600)を4枚取り付けた結果である。
マザーボードの4つのメモリスロットにそれぞれ差し込んだ。
最初のコマンドの結果で、ECCが有効になっていることがわかった。
メモリーコントローラーMC0〜MC7が2セットあるのが見える。
8GBメモリーは、4096MBが二つに認識されて、それぞれMCに順に割り当てられているようだ。
また、二つ目のコマンドでは、データ幅が64bitに対して全体の幅が72bitになっていることがわかった。(非ECCメモリーの場合の結果では、共に64bitだった。)
# dmesg | grep EDAC
[ 3.914493] EDAC MC: Ver: 3.0.0
[ 3.920704] AMD64 EDAC driver v3.4.0
[ 3.920731] EDAC amd64: DRAM ECC enabled.
[ 3.920742] EDAC amd64: F10h detected (node 0).
[ 3.920757] EDAC MC: DCT0 chip selects:
[ 3.920759] EDAC amd64: MC: 0: 4096MB 1: 4096MB
[ 3.920760] EDAC amd64: MC: 2: 4096MB 3: 4096MB
[ 3.920761] EDAC amd64: MC: 4: 0MB 5: 0MB
[ 3.920762] EDAC amd64: MC: 6: 0MB 7: 0MB
[ 3.920763] EDAC MC: DCT1 chip selects:
[ 3.920764] EDAC amd64: MC: 0: 4096MB 1: 4096MB
[ 3.920765] EDAC amd64: MC: 2: 4096MB 3: 4096MB
[ 3.920766] EDAC amd64: MC: 4: 0MB 5: 0MB
[ 3.920767] EDAC amd64: MC: 6: 0MB 7: 0MB
[ 3.920768] EDAC amd64: using x4 syndromes.
[ 3.920769] EDAC amd64: MCT channel count: 2
[ 3.920989] EDAC MC0: Giving out device to 'amd64_edac' 'F10h': DEV 0000:00:18.2
[ 3.921016] EDAC PCI0: Giving out device to module 'amd64_edac' controller 'EDAC PCI controller': DEV '0000:00:18.2' (POLLED)
# dmidecode --type memory
# dmidecode 2.12-dmifs
SMBIOS 2.7 present.
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x0028, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK0
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Manufacturer0
Serial Number: SerNum0
Asset Tag: AssetTagNum0
Part Number: Array1_PartNumber0
Rank: Unknown
Configured Clock Speed: 800 MHz
Handle 0x002A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: Array1_PartNumber1
Rank: Unknown
Configured Clock Speed: 800 MHz
Handle 0x002C, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM2
Bank Locator: BANK2
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Manufacturer2
Serial Number: SerNum2
Asset Tag: AssetTagNum2
Part Number: Array1_PartNumber2
Rank: Unknown
Configured Clock Speed: 800 MHz
Handle 0x002E, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM3
Bank Locator: BANK3
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Manufacturer3
Serial Number: SerNum3
Asset Tag: AssetTagNum3
Part Number: Array1_PartNumber3
Rank: Unknown
Configured Clock Speed: 800 MHz
◇非ECCメモリ(unbuffered)を搭載した場合
unbuffered 8GB×4(=32GB)メモリの状態である。
# dmesg | grep EDAC
[ 3.927275] EDAC MC: Ver: 3.0.0
[ 3.931161] AMD64 EDAC driver v3.4.0
[ 3.931184] EDAC amd64: DRAM ECC disabled.
[ 3.931192] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
# dmidecode --type memory
# dmidecode 2.12-dmifs
SMBIOS 2.7 present.
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x0028, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK0
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Manufacturer0
Serial Number: SerNum0
Asset Tag: AssetTagNum0
Part Number: Array1_PartNumber0
Rank: Unknown
Configured Clock Speed: 667 MHz
Handle 0x002A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: Array1_PartNumber1
Rank: Unknown
Configured Clock Speed: 667 MHz
Handle 0x002C, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM2
Bank Locator: BANK2
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Manufacturer2
Serial Number: SerNum2
Asset Tag: AssetTagNum2
Part Number: Array1_PartNumber2
Rank: Unknown
Configured Clock Speed: 667 MHz
Handle 0x002E, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: DIMM
Set: None
Locator: DIMM3
Bank Locator: BANK3
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Manufacturer3
Serial Number: SerNum3
Asset Tag: AssetTagNum3
Part Number: Array1_PartNumber3
Rank: Unknown
Configured Clock Speed: 667 MHz
<参考>
・How to tell whether RAM ECC is working?
< http://unix.stackexchange.com/questions/139319/how-to-tell-whether-ram-ecc-is-working/139526#139526 > 2016年12月27日
・64-bit Linux doesn't recognize my RAM between 3 and 32 GB
< http://unix.stackexchange.com/questions/34687/64-bit-linux-doesnt-recognize-my-ram-between-3-and-32-gb > 2016年12月27日
・UNBUFFERED VERSUS REGISTERED ECC MEMORY – DIFFERENCE BETWEEN ECC UDIMMS AND RDIMMS
< https://www.servethehome.com/unbuffered-registered-ecc-memory-difference-ecc-udimms-rdimms/ > 2016年12月27日