2013-05-04 2 views
3

Это мой второй вопрос, следующий за моим первым (How to detect if CPU is 32 or 64 bit).Сколько памяти поддерживает мой процессор?

Теперь я знаю, как узнать, имеет ли мой процессор 64-битную архитектуру. Но наличие 64-битной архитектуры не означает, что он может адресовать 2^64 (= 16 777 216 ТБ).

Например:

Если я запускаю этот кусок кода:

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 , Если я посмотрю мой процессор в Интернете (http://ark.intel.com/products/65520), вы увидите, что он может адресовать только 32 ГБ памяти. Теперь, как я могу извлечь эту информацию с моего компьютера?

Внимание: этот вопрос не касается того, сколько памяти поддерживает моя ОС. Я использую WinXP, 32 бит, поэтому он поддерживает только 4 ГБ.

+0

Для того, чтобы быть понятным, «память моего процессора поддерживает», вы имеете в виду * физическую память *, которая может быть * адресована *. Вы спрашиваете о поддержке PAE? –

+0

Да, я имею в виду физическую память. И да, поддержка PAE будет приятной (для 32-битной архитектуры), а также адресным пространством 64-битного процессора. –

+0

Только комментарий, но с HAL не уверен, что вы это получите. У ОС нет реальной причины знать, сколько адресной памяти аппаратное обеспечение поддерживает только количество адресной памяти, имеющейся у оборудования. И я не думаю, что это чисто процессор - биос должен также поддерживать адресацию памяти, а аппаратное обеспечение должно иметь достаточно слотов для памяти. – Paparazzi

ответ

2

Простой ответ заключается в том, что вы не можете получить эту информацию со своего компьютера.

Комплекс ответ, что есть 5 вещей, которые могут повлиять на значение, которое вы ищете:

  1. Операционная система: Это не только 32-битные или 64-бит: Physical Address Extension with memory limits of Windows versions

  2. Спецификация процессора в руководстве или на веб-сайте производителя: Все процессоры указали свой предел памяти, как и у вас 32G B.

  3. спецификации материнских плат в руководстве или на сайте производителя: Все материнские платы определили их предел памяти, например. 32GB.

  4. предела Реальной памяти процессора: архитектура процессора может быть 32-битной или 64-битной. Простой 32-разрядный процессор поддерживает 4 ГБ памяти. В случае поддержки PAE теоретический адресный предел памяти составляет 64 ГБ, потому что в этом случае размер адреса процессора составляет 36 бит. 64-битный процессор может адресовать 16EB (16777216 TB) памяти.

  5. предела Реальной памяти материнской платы: спецификация чипсета материнской платы основана на современных архитектурах, так что если нет ни одного модуля 32 Гб памяти на рынке, то производитель не может написать или сказать, что их материнская плата с 4 слоты памяти поддерживают память 128 ГБ, потому что они не знают. Говорят, что он поддерживает 32 ГБ памяти, потому что он был протестирован с памятью 4х8 ГБ.

Реальный пример из жизни: я имел процессор Intel Core i7-920 процессора в материнской плате Gigabyte GA-EX58-УД4. Материнская плата и процессор поддерживают макс. 24 ГБ памяти, основанной на веб-страницах производителей, потому что тогда на рынке были только модули памяти объемом 4 ГБ.Однако я использовал 48 ГБ памяти на этой материнской плате с Windows 7 Professional x64. Он работал хорошо, и операционная система увидела и могла использовать все из них без каких-либо проблем. Xeon-версии этой архитектуры процессора могут использовать max. 144 ГБ на основе веб-страницы. Предел был таким же, как и ограничение памяти для поддерживаемых материнских плат, потому что не было модулей памяти с большей емкостью, с которыми они могли бы протестировать.

Таким образом, в основном есть много факторов и спецификаций, которые можно принять во внимание, но нет реального способа получить точный объем адресной памяти точной системы.

Смежные вопросы