我的CPU支持多少内存

本文关键字:内存 多少 支持 CPU 我的 | 更新日期: 2023-09-27 18:12:02

这是我的第二个问题,继我的第一个(如何检测CPU是32位还是64位)。

我现在知道如何找出我的CPU是否有64位架构。但是拥有64位架构并不意味着它可以寻址2^64 (=16,777,216 TB)。

例如:

如果我运行这段代码:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root''CIMV2", "SELECT * FROM Win32_Processor");
ManagementObjectCollection cpus = searcher.Get();
foreach (ManagementObject queryObj in cpus)
{
    Console.WriteLine("AddressWidth: {0}", queryObj["AddressWidth"]); 
    Console.WriteLine("DataWidth: {0}", queryObj["DataWidth"]); 
    Console.WriteLine("Architecture: {0}", queryObj["Architecture"]); 
}

这将导致:

AddressWidth: 32 (meaning, my OS is 32-bit)
DataWidth: 64 (meaning, my CPU is 64-bit)
Architecture: 9 (meaning 64-bit architecture)

现在我想知道我的CPU支持的最大可能内存。如果我在互联网上查找我的CPU (http://ark.intel.com/products/65520),你会看到它只能寻址32GB的内存。现在我如何从电脑中提取这些信息呢?

警告:这个问题不是关于我的操作系统支持多少内存。我用的是WinXP, 32位,所以它只支持4GB

我的CPU支持多少内存

简单的答案是你无法从你的电脑上获得这些信息。

复杂的答案是,有5个因素会影响你正在搜索的值:

  1. 操作系统:这不仅仅是32位或64位的问题:Windows版本有内存限制的物理地址扩展

  2. CPU规格手册或制造商网站:所有的处理器都指定了它们的内存限制,比如你的是32GB。

  3. 主板规格手册或制造商网站:所有主板都指定了它们的内存限制。32 gb .

  4. CPU的实际内存限制:CPU架构分为32位和64位。一个简单的32位CPU支持4GB内存。在支持PAE的情况下,理论上的可寻址内存限制是64GB,因为在这种情况下CPU的地址大小是36位。64位CPU可寻址16EB (16777216 TB)内存

  5. 主板实际内存限制:主板的芯片组规格是基于当前的架构,所以如果市场上没有32GB内存模块,那么制造商就不能写或说他们的4个内存插槽的主板支持128GB内存,因为他们不知道。他们说它支持32GB内存,因为它是用4x8GB内存测试的。

现实生活中的例子:我有一个英特尔酷睿i7-920的CPU和一个gb的GA-EX58-UD4主板。主板和CPU都支持max。24GB内存是基于制造商的网页,因为当时市场上只有4GB内存模块。然而,我在那块主板上使用了48GB的内存和Windows 7 Professional x64。它运行得很好,操作系统看到并可以毫无问题地使用它们。Xeon版本的CPU架构可以使用max。基于网页的144GB内存。这个限制与支持的主板的一个CPU内存限制相同,因为没有容量更大的内存模块可以测试它。

因此,基本上有许多因素和规格,可以考虑,但没有真正的方法来获得精确的系统的可寻址内存的确切数量。