ฉันทราบว่า SMBios Type 20 จะช่วยได้ที่นี่ แต่เป็นตัวเลือกของเวอร์ชัน2.5 (2006-09-05) หน้า 25, L796 และหน้า 131ในขณะที่ประเภท 16, 17 และ 19 เป็นข้อบังคับ แต่ไม่มาก ช่วยด้วย.
อาร์เรย์หน่วยความจำกายภาพ (ชนิด 16)
มีหนึ่งในโครงสร้างเหล่านี้สำหรับทั้งระบบอธิบายสิ่งที่เป็นไปได้ในบอร์ดนี้
Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 768 GB
Error Information Handle: Not Provided
Number Of Devices: 24
อุปกรณ์หน่วยความจำ (ประเภท 17)
มีหนึ่งเร็กคอร์ดต่อ Dimm แต่ละตัวซึ่งจะบอกคุณเกี่ยวกับ Dimms แบบฟิสิคัลที่ติดตั้งบนกระดาน
Handle 0x1100, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: 1
Locator: DIMM_A1
Bank Locator: Not Specified
Type: DDR3
Type Detail: Synchronous Registered (Buffered)
Speed: 1600 MHz
Manufacturer: XXXX
Serial Number: XXXX
Asset Tag: XXXX
Part Number: XXXX
Rank: 1
Configured Clock Speed: 1333 MHz
ที่อยู่ที่แมปหน่วยความจำของอาร์เรย์ (ชนิด 19)
อาจมีหลายระเบียนเหล่านี้และแต่ละระเบียนแสดงช่วงของที่อยู่ทางกายภาพ
นี่คือเอาต์พุตที่มีสอง 2GB sticks:
Handle 0x1300, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000CFFFFFFF
Range Size: 3328 MB
Physical Array Handle: 0x1000
Partition Width: 2
Handle 0x1301, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00100000000
Ending Address: 0x0012FFFFFFF
Range Size: 768 MB
Physical Array Handle: 0x1000
Partition Width: 2
และนี่คือผลลัพธ์ที่มี 4 แท่ง 2 * 2GB และ 2 * 4GB:
Handle 0x1300, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000CFFFFFFF
Range Size: 3328 MB
Physical Array Handle: 0x1000
Partition Width: 2
Handle 0x1301, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00100000000
Ending Address: 0x0032FFFFFFF
Range Size: 8960 MB
Physical Array Handle: 0x1000
Partition Width: 2
โปรดทราบว่าในผลลัพธ์ตัวอย่างแรกด้านบนมี 2GB DIMM สองตัว แต่มีสองช่วงคือ 3.3GB และ 0.7GB ด้วย 4 Dimms ระบบจะรวมกันของส่วนที่อยู่ของหน่วยความจำที่แมปลงในพื้นที่สองชิ้นเพราะมันเป็นเพียงตัวแทนเช่นเดียวกับแผนที่ e820 นั่นคือช่วงที่อยู่ทางกายภาพของหน่วยความจำที่ถูกต้อง
ระเบียน 1 ถึงหลายระเบียน 20 เชื่อมโยงกับอุปกรณ์หน่วยความจำประเภท 17 เพียงหนึ่งเดียวซึ่งหมายความว่าสามารถทราบช่วงฟิสิคัลทั้งหมด:
ตัวอย่าง
$ sudo dmidecode -t 20
# dmidecode 2.12
SMBIOS 2.6 present.
Handle 0x002F, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000FFFFFFFF
Range Size: 4 GB
Physical Device Handle: 0x002B
Memory Array Mapped Address Handle: 0x002E
Partition Row Position: 1
Handle 0x0030, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00100000000
Ending Address: 0x001FFFFFFFF
Range Size: 4 GB
Physical Device Handle: 0x002C
Memory Array Mapped Address Handle: 0x002E
Partition Row Position: 1
ดูเหมือนว่าจะเป็นไปได้จากที่อยู่ไปยัง DIMM สำหรับEDAC -วัตถุประสงค์ในการตรวจจับและแก้ไขข้อผิดพลาดแต่ไม่ใช่จาก DIMM ไปจนถึงช่วงทั้งหมด
ดูที่ซอร์สโค้ดของmcelogมันยังใช้ type 20 สำหรับการถอดรหัส
lshw
ใช้dmidecode
เป็นรหัสฐานและdmidecode -t 20
ให้ข้อมูลที่ต้องการ แต่ตามที่ระบุไว้โดยรุ่น 2.5 ของ SMBIOS โครงสร้างที่เก็บข้อมูลนี้"ที่อยู่อุปกรณ์ที่แมปหน่วยความจำ"หรือที่รู้จักประเภท 20หรือที่ตั้งธนาคารเป็นทางเลือก - ดังนั้น Q คือถ้ามีวิธีอื่นในการดึงข้อมูลเดียวกัน - การเชื่อมโยงระหว่างtype 17
's สคุ้มค่าและช่วงที่อยู่ทางกายภาพ (ตามที่กำหนดไว้โดยเลือกType 20
)
dmidecode -t 20
ผลลัพธ์บางอย่างคุณสามารถอธิบายค่าตัวระบุตำแหน่งของประเภท 17 เทียบกับส่วนเสริมทางกายภาพ, ประเภท 20 ได้หรือไม่
dmidecode
และlshw
แต่ฉันคิดว่าคุณกำลังมองหาข้อมูลเพิ่มเติมกว่าสิ่งเหล่านี้ให้?