จะทราบได้อย่างไรว่า RAM ECC ทำงานหรือไม่


19

ฉันวางแผนที่จะรับ ECC RAM เพื่อแทนที่ RAM ที่ไม่ใช่ ECC ที่ฉันติดตั้งไว้บนมาเธอร์บอร์ด Asus M5A97 Pro ของฉัน (ชิปเซ็ต AMD 970, FX-6100 CPU)

หลังจากติดตั้ง RAM แล้วฉันจะรู้ได้อย่างไรว่าคุณสมบัติ ECC ของ RAM ทำงานอย่างถูกต้องหรือไม่

ฉันคิดเกี่ยวกับdmidecode --type memoryสิ่งที่พิมพ์ในปัจจุบันสำหรับแต่ละ RAM ติด:

Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits

(สำหรับหนึ่งฉันคาดหวังว่าด้วย 1 บิตของ ECC ต่อไบต์ความกว้างของข้อมูลจะยังคงอยู่ 64 บิต แต่ความกว้างทั้งหมดในการอ่าน 72 บิต)

สามารถใช้เพื่อพิจารณาว่า ECC ทำงานได้หรือไม่? หรือ dmidecode อยู่ในระดับต่ำเกินไปหรือไม่ ฉันจะใช้อะไรได้อีก (ยกเว้นการรอและดูว่าข้อผิดพลาด ECC ปรากฏในบันทึกซึ่งจะบ่งบอกว่ามันใช้งานได้ แต่ไม่ใช่ว่ามันไม่ทำงาน)

ปรับปรุง:ฉันคิดในภายหลังของ edac-utils Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not setการติดตั้งพวกเขาก็จะได้รับ ที่ให้ฉันedac-utilและedac-ctlexecutables สามารถใช้หนึ่งในนั้นเพื่อจุดประสงค์นี้ได้หรือไม่?


2
บางคนที่มีเวลามากกว่าที่ฉันสามารถเพิ่มส่วนเกี่ยวกับ ecc_check.c จากpugetsystems.com/labs/articles/…เป็นคำตอบอย่างใดอย่างหนึ่งได้หรือไม่
Costin Gușă

คำตอบ:


12

ดูเหมือนว่าไม่มีวิธีที่จะบอกได้อย่างแน่นอน แต่วิธีการที่หลากหลายสามารถให้คำตอบได้บ้าง เห็นได้ชัดว่าคุณต้องลองใช้วิธีที่แตกต่างกันจนกว่าคุณจะพบสิ่งที่บอกว่า ECC ใช้งานได้

ในกรณีของฉันmemtest86 + 4.20ไม่สามารถเกลี้ยกล่อมให้ตระหนักว่ามันกำลังจัดการกับ ECC RAM; แม้ว่าฉันจะกำหนดค่าไว้สำหรับ ECC On แต่ก็ยังคงรายงานECC: Disabledในบรรทัด IMC ฉันยังไม่ได้ลองกับรุ่นที่ใหม่กว่า อย่างไรก็ตาม (อาจเป็นไปได้หลังจากติดตั้ง edac-utils แต่น่าเสียดายที่ฉันทำทั้งสองอย่างพร้อมกัน), Linux รายงานในบันทึกการบูต (สลับกับรายการอื่น ๆ ):

[    4.867198] EDAC MC: Ver: 2.1.0
...
[    4.874374] MCE: In-kernel MCE decoding enabled.
[    4.875414] AMD64 EDAC driver v3.4.0
[    4.875438] EDAC amd64: DRAM ECC enabled.
...
[    4.875542] EDAC amd64: CS0: Unbuffered DDR3 RAM
[    4.875545] EDAC amd64: CS1: Unbuffered DDR3 RAM
[    4.875546] EDAC amd64: CS2: Unbuffered DDR3 RAM
[    4.875548] EDAC amd64: CS3: Unbuffered DDR3 RAM

ซึ่งเป็นข้อบ่งชี้ที่ดีงาม การทำด้วยตนเอง/etc/init.d/edac restartไม่ได้สร้างรายการบันทึกที่คล้ายกันและเมื่อดูที่บันทึกเก่าจากการรีบูตไม่กี่ครั้งที่ผ่านมาฉันเห็น:

[   13.886688] EDAC MC: Ver: 2.1.0
[   13.890389] MCE: In-kernel MCE decoding enabled.
[   13.891082] AMD64 EDAC driver v3.4.0
[   13.891107] EDAC amd64: DRAM ECC disabled.
[   13.891116] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[   13.891117]  Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[   13.891118]  (Note that use of the override may cause unknown side effects.)

dmidecode --type memoryยังมีข้อบ่งชี้สองประการที่น่าสนใจ: คุณสมบัติ "ประเภทการแก้ไขข้อผิดพลาด" ของหน่วยความจำกายภาพ (ซึ่งอย่างไรก็ตามด้วยเหตุผลบางอย่างแสดงให้เห็นว่าเหมือนกันบน non-ECC RAMดังนั้นสิ่งนี้อาจเกี่ยวข้องกับการสนับสนุนของเมนบอร์ดมากกว่าความสามารถของหน่วยความจำ)

Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: Multi-bit ECC

และความกว้างรวมและความกว้างข้อมูลของอุปกรณ์หน่วยความจำตามลำดับ (บิตเพิ่มเติมที่ใช้สำหรับ ECC):

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

5

มีวิธีที่ง่ายและมีประสิทธิภาพในการทำเช่นนี้โดยที่คุณมีสิทธิ์เข้าใช้คอนโซลในเซิร์ฟเวอร์ / พีซีของคุณและสามารถรีบูตได้: memtest86 +

เครื่องมือที่ดีนี้จะแสดงให้คุณเห็นอย่างรวดเร็วหากหน่วยความจำเปิดใช้งาน ECC ฉันยังเชื่อว่ามันจะทำการตรวจสอบ ECC เมื่อทำการทดสอบจริง

นี่คือภาพหน้าจอ (ล้าสมัยเล็กน้อย): ป้อนคำอธิบายรูปภาพที่นี่


ที่สมบูรณ์แบบ! สำหรับตอนนี้ฉันเห็นIMC : AMD FX(tm)-6100 Six-Core Processor (ECC : Disabled)และ offECC ฉันคิดว่าถ้ามันแสดงอะไรนอกเหนือจากDisabledและoffสำหรับ ECC ด้วย DIMM ใหม่ฉันทุกคนพร้อมแล้วเท่าที่ฮาร์ดแวร์จะไปอย่างน้อย?
CVn

2
@ MichaelKjörlingฉันจัดการกับ ECC บนเซิร์ฟเวอร์มาตรฐานอุตสาหกรรมที่มี Xeon CPU เท่านั้นดังนั้นฉันจึงไม่มีความคิด ฉันสามารถจินตนาการได้ว่า CPU ต้องการการรองรับ ECC เนื่องจากตัวควบคุมหน่วยความจำอยู่ในนั้น
pauska

en.wikipedia.org/wiki/…แสดง FX-6100 เป็น Zambezi (Bulldozer-based) ซึ่ง "ทุกรุ่นรองรับ ... ECC [RAM]"
CVn

น่าเสียดาย memtest86 + 4.20 ดูเหมือนจะไม่ต้องการรับรู้ RAM ของฉันในฐานะ ECC อย่างไรก็ตามมีข้อบ่งชี้ที่แข็งแกร่งอีกหลายข้อที่ ECC ใช้งานอยู่ เห็นคำตอบของฉัน ยังขอบคุณมาก!
CVn

1
ดูเหมือนว่าจะเกี่ยวข้องกัน
Faheem Mitha
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.