Отображение адресов памяти физическим модулям в Windows XP

Я планирую запустить 32-разрядную Windows XP на рабочей станции с двумя процессорами на основе микроархитектуры Intel Nehalem и трехканальной оперативной памяти. Несмотря на то, что XP ограничена 4 ГБ ОЗУ, я понимаю, что она будет работать с установленным более 4 ГБ, но будет отображать только 4 ГБ (или чуть меньше).

Мой вопрос: если предположить, что в шести модулях по 1 ГБ установлено 6 ГБ ОЗУ, то какие физические 4 ГБ Windows будет отображать в своем адресном пространстве?

Особенно:

  • Будет ли он использовать все шесть модулей по 1 ГБ, используя все каналы памяти? (Я предполагаю, что да, и что сопоставление с отдельными модулями в группе происходит аппаратно.)

  • Будет ли он отображать 2 ГБ адресного пространства на каждый из двух узлов NUMA (поскольку каждый процессор имеет собственный интерфейс памяти), или один процессор получит быстрый доступ к 3 ГБ ОЗУ, а другой - только 1 ГБ?

Спасибо!

1 ответ

Решение

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

После того, как вопрос был задан, я также натолкнулся на это сообщение в блоге Марка Руссиновича, объясняющее, как ядро ​​Windows XP управляет памятью.

В заключение получается, что в результате ядро, хотя и поддерживает PAE, усекает все адреса физической памяти до 32-битной, что означает, что будет использовано только самое низкое физическое 4 ГБ ОЗУ. Это, в свою очередь, отображается аппаратно на модули памяти и соответствует полному первому триплету модуля (всего 3 ГБ) и трети второго триплета (разброс по всем трем его модулям - всего 1 ГБ),

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

Другие вопросы по тегам