我注意到SMBios Type 20在这里会有所帮助,但是从版本2.5(2006-09-05)pp.25,L796和pp.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有一个记录,告诉您板上安装的物理Dimm。
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记忆棒的输出:
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
这是四根棍子的输出;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的源代码,它还将20类型用于其解码。
lshw
用途dmidecode
为代码库,并dmidecode -t 20
提供了希望的信息。但是,如前所述,通过SMBIOS 2.5版,该信息保存结构称为“存储设备映射地址”类型20或存储单元位置)的结构是可选的-因此,如果存在另一种检索相同信息的方法,则Q为。– type 17
的定位符值和物理地址范围之间的链接(由可选Type 20
)。
dmidecode -t 20
输出,您能解释一下类型17的定位器值与物理地址(类型20)吗?
dmidecode
和lshw
,但我认为你正在寻找比这些提供更多?