计算机/操作系统如何分辨机器里有什么类型的 RAM?

计算机/操作系统如何分辨机器里有什么类型的 RAM?

Mac OS X 如何知道机器中的 RAM 类型?例如,我正在使用一台具有 DDR3 RAM @ 1600MHz 的机器,我认为如果不打开机箱并查看它,就不可能知道 RAM 类型。在其他系统上如何做到这一点?

答案1

RAM 条上有一块小芯片,称为串行存在检测,其中包含容量、首选时间、制造商甚至序列号等信息。

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

维基百科文章中的这张图片对此进行了很好的描述: 埃

更新:

有些 PC 使用的是焊接 RAM,而不是 RAM DIMM/SODIMM。这些 PC 上的固件出厂时就带有 RAM 信息,这些信息内置在固件所在的闪存中 - 然后固件将设置一个“虚拟 SPD”,操作系统可以使用该 SPD 以相同的方式进行查询/检测。

gregdavill.github.io

当笔记本电脑开始将内存移到主板上而不是插槽中时,它们仍然需要一种机制来模拟 SPD 信息,以便您的操作系统可以正确检测并显示有关系统中安装的内存的信息。它们没有填充 EEPROM,而是简单地将此信息嵌入 BIOS FLASH 中。BIOS 启动序列的一部分是从 FLASH 中提取 SPD 表,并创建操作系统可以查询的虚拟 SPD。

该文章专门讨论了 Dell XPS13 - 还提到了“电阻带” - 固件将检查(通过芯片组可访问的 GPIO 引脚)是否存在这些带 - 允许为不同的主板版本使用相同的固件。从那里固件会相应地设置虚拟 SPD。

答案2

在 Windows 上:

wmic memoryChip get /?

将为您提供可直接从命令提示符询问的各种 RAM 信息。

例如,

wmic memorychip get serialnumber

为您提供序列号。有时您还可以Speed使用等等。ModelManufacturer

WMI 是 Windows 的查询方法系统管理基本输入输出系统数据。Apple、Linux、Windows 以及任何想要在大多数硬件上运行的人都需要在某种程度上支持 SMBIOS,原因各不相同。

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

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

答案3

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

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

但是,您无需打开盖子,就可以通过以下方式轻松确定您的类型和速度:

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

打开硬件 -> 内存

您应该看到每条 RAM 的大小、类型和速度(为了好玩,还可以查看状态以确保一切正常)

带内存的系统报告

答案4

在 Mac OS X 上从终端运行:

$ system_profiler SPMemoryDataType

相关内容