计算机/操作系统如何分辨机器中的RAM类型?


81

Mac OS X如何分辨机器中的RAM类型?例如,我正在研究一个DDR3 RAM @ 1600MHz的计算机,我认为如果不打开机箱并查看它就不可能知道RAM,如何在其他系统上做到这一点?


6
注意:我删除了评论,因为这些评论都没有用。您可以使用超级用户聊天进行讨论。
slhck

@Celeritas:我已经回滚了您的最新编辑。询问开发者/制造商为什么选择在其产品中添加或省略功能不是建设性的
卡兰2013年

@Karan我想知道Mac硬件或OS是否与Windows运行的硬件有所不同,从而更容易确定RAM的类型。操作系统中似乎内置了一项有用的功能,以便人们知道要升级时要获得哪种RAM。您可以编辑问题以反映我刚才告诉您的内容,但可以重新措词以使其更适合。
Celeritas

1
由于您已经问过是否可以在Windows上执行此操作,并且已经收到了告诉您如何操作的答案,因此很明显,没有基本的硬件差异可以阻止Windows显示是否需要的信息(如下面所示,存储了SPD数据在RAM模块上,并且任何希望读取它的OS / app都可以访问它)。除此之外,讨论MS为什么不选择不这样做(即使对最终用户有用)真的没有意义。
卡兰

i2c总线是任何操作系统都可以接口的标准。SPD表示为128字节,256字节或512字节EEPROM。操作系统只需要使用i2c从EEPROM收集这些字节(遵循另一个称为JEDEC的标准),然后使用该数据即可确定正在讨论的内存类型。它与操作系统无关。
LawrenceC

Answers:


147

RAM棒上有一个称为“ 序列存在检测”的小芯片,其中包含诸如容量,首选时间,制造商甚至序列号之类的信息。

操作系统可以使用i2c总线(还包括温度传感器之类的东西)来访问SPD信息。我认为您可以使用各种i2c实用程序直接从Linux读取SPD。

维基百科文章中的这张图片很好地描绘了它: Ë


2
在Linux中,dmidecode --type memory可以查看一些信息。显然,它可以输出制造商和序列号,但至少在我的系统上这些报告为简单ManufacturerNSerNumNN是什么似乎是插槽编号。
CVn

2
我以为可以dmidecode解析BIOS在启动时放在一起的东西。BIOS应该读取SPD并进行相应的报告-错误的BIOS并不是什么新鲜事物。
LawrenceC

1
+1是提及SPD的唯一答案
Jonathon Reinhart

1
在我看来,曾经有一段时间RAM棒没有SPD芯片。。。至少我清楚地记得,在查看RAM的价格表时,将物品明确标记为SPD和非SPD(大约是推出DIMM标准的时间)
Mikhail

1
@Mikhail是的,SIMM有4个用于“感知检测”的引脚-将它们拉高或拉低以提供指示大小和速度的标识符。ohlandl.ipv7.net/config/mempresence.html
ali1234年

47

在Windows上:

wmic memoryChip get /?

将为您提供各种RAM信息,您可以从命令提示符处直接请求。

例如,

wmic memorychip get serialnumber

给您序列号。您也可以使用SpeedModel有时甚至Manufacturer更多。

WMI是查询SMBIOS数据的Windows方法。苹果,Linux,Windows和其他任何想要在大多数硬件上运行的人都需要出于某种原因而在某种程度上支持SMBIOS。

您可以使用SMBIOS(例如,通过Windows中的WMI或WMIC)来收集硬盘信息,网络信息(是10/100还是10/100/1000卡?)。

更进一步,每个制造商在NIC上都有一个用于MAC地址的代码。RAM还具有制造商代码。因此,您要做的就是获取他们的代码,例如,我在笔记本电脑中使用的2 x2GB内存是830B,它是为制造商建立数据库(830B可能是一个品牌,然后也转售了!),以及型号说明了什么。我相信CPUz就是这样工作的-基本查询和真正完整且最新的数据库。


3
请注意,WMI能够查询DMI / SMBus信息,但Windows无法实现。此外,dmidecode纯查询和解码DMI信息也可以作为Windows端口使用
syneticon-dj

@ syneticon-dj我不确定您是否在此处添加了任何内容,您的意思尚不清楚。WMI是Windows Management Instrumentation,其功能和职责之一是阅读SMBUS。但是,如果您要说的是所有的屁股都是蠢货,但并非所有的屁股都是屁屁……那么,是的,确切的是……?
法国奥斯汀T

我的观点是,您的措辞不够准确,容易被人误解。WMI 可以与SMBIOS交互,但在任何方面都不能实现(它位​​于硬件/ BIOS端,而不是OS内)。
syneticon-dj

它确实说:“ WMI是用于读取设备的SMBus标准的Windows实现。” 这是Windows读取/查询和了解内部内容的方式...但是WMI的功能还很多。
法国奥斯汀T

2
@ syneticon-dj-如果输入错误,请进行编辑。
谜团

18

内存速度和类型与BIOS协商,可以由操作系统读取。

http://www.computermemoryupgrade.net/index1.html上有一个非常好的网站,可以使您对这些事情有更深入的了解

但是,您无需通过以下方法即可打开盖子,从而轻松确定自己的类型和速度:

苹果->关于本机->更多信息->系统报告

打开硬件->内存

您应该看到每个RAM棒,包括大小,类型和速度(为了有趣,还可以通过Status来确定状态)

带内存的系统报告


13

在许多Linux发行版(例如Debian)上,您可以使用lshw硬件列表程序

sudo lshw |grep DDR
         description: SODIMM DDR3 Synchronous 1067 MHz (0.9 ns)
         description: SODIMM DDR3 Synchronous 1067 MHz (0.9 ns)

我猜想RAM和所有其他硬件一样,会向OS报告其描述和功能。如果Linux可以做到,我认为OSX无法做到。

如果您的发行版未安装lshw,则可以使用软件包管理器进行安装,例如

aptitude install lshw

或从项目网站下载。


仅供参考,lshw在OS X上不可用:
slhck 2013年

@ b.long膝盖反应是因为问题被标记为win / osx,而不是Linux?
Dan Neely

确实,对此感到抱歉-我没有阅读完整的问题(或标题)。我以为是在问任何操作系统
大约

@slhck我不好,我只是做了一个快速的google搜索,OSX lshw并在苹果网站上看到了这篇文章,我认为它存在于OSX中,而没有实际阅读相关文章。(脸红)。无论如何,我的意思是,如果Linux可以看到RAM类型,为什么不应该OSX?


4

RAM棒将其时间,速度和类型存储在棒上的小芯片上。您的计算机如何知道在不破坏其数据的情况下以多快的速度运行RAM?相同的芯片。苹果只是选择显示这些数据。



第一句话没有多大意义。
CVn 2013年

2
那没有意义吗?对我来说很有意义,这是我收到的第一个投诉。
MarcusJ

2

为了补充ultrasawblade的回答,在Linux上,对SPD数据进行解码,可以使用i2c-tools中decode-dimms perl脚本:

sudo modprobe -a i2c-i801 eeprom
decode-dimms

或对于格式化的HTML花式:

decode-dimms -f | w3m -T text/html

(w3m是基于文本的浏览器/寻呼机)。或者,当然:

decode-dimms -f > dimms.html
xdg-open dimms.html

1

Speccy是Windows软件,它将告诉您许多有关计算机的信息,包括RAM类型/大小/总插槽/可用插槽。


2
我曾经使用CPU-Z在Windows机器上获取此类信息-它为您提供了有关CPU,RAM等的非常详细的信息。它小巧,整洁并定期更新。
米哈伊尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.