我的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
简单的答案是你无法从你的电脑上获得这些信息。
复杂的答案是,有5个因素会影响你正在搜索的值:
-
操作系统:这不仅仅是32位或64位的问题:Windows版本有内存限制的物理地址扩展
-
CPU规格手册或制造商网站:所有的处理器都指定了它们的内存限制,比如你的是32GB。
-
主板规格手册或制造商网站:所有主板都指定了它们的内存限制。32 gb .
-
CPU的实际内存限制:CPU架构分为32位和64位。一个简单的32位CPU支持4GB内存。在支持PAE的情况下,理论上的可寻址内存限制是64GB,因为在这种情况下CPU的地址大小是36位。64位CPU可寻址16EB (16777216 TB)内存
-
主板实际内存限制:主板的芯片组规格是基于当前的架构,所以如果市场上没有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内存限制相同,因为没有容量更大的内存模块可以测试它。
因此,基本上有许多因素和规格,可以考虑,但没有真正的方法来获得精确的系统的可寻址内存的确切数量。