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

1250
Josef Grahn

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

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

Особенно:

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

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

Спасибо!

5
Я знаю, что вы поместили windows-xp в тег, но Windows 2003 Server в режиме «рабочей станции» будет работать для вас, предоставляя вам лучший доступ к памяти. Лицензия стоила дороже, чем убийца IrqJD 13 лет назад 0
К сожалению, у меня есть аппаратное обеспечение, в котором отсутствуют драйверы для чего-либо, кроме 32-разрядной XP, и оно не будет работать на 2003 Server (по словам производителя, я сам не проверял это). Стоимость дополнительной лицензии была бы неприятностью, но не убийцей в моем случае. Josef Grahn 13 лет назад 0

1 ответ на вопрос

2
Breakthrough

Насколько я понимаю, контроллер материнской платы будет обрабатывать сопоставление мест виртуальной памяти с физическим адресом оперативной памяти. Поскольку работает трехканальная память и большинство контроллеров материнской платы работают, оба ЦП будут работать вместе, отображая нижние 4 ГБ ОЗУ, распределенные одинаково вдоль первых трех модулей ОЗУ (заполняя первые три набора по 3 ГБ, работая вместе в первую очередь), с последний гигабайт разнесен среди последних трех модулей.

Без этой реализации не было бы «трехканального» доступа к памяти, что сильно ухудшало бы производительность. Кроме того, именно поэтому реализация памяти основана на аппаратном обеспечении, а не на программном обеспечении, поэтому с вашей стороны проблем быть не должно.

Следует отметить, что ограничение в 4 ГБ существует только из-за жестко заданного ограничения 32-разрядных адресов памяти, но у программного обеспечения нет причин, позволяющих расширить этот предел. Это ограничение было выбрано для проблем с лицензией, а также для проблем несовместимости драйверов (спасибо Йозефу Грану). Эту концепцию легче понять, если понимать, что ваша материнская плата, а также системная память - это просто еще один компонент системы. Хотя вы можете быть ограничены в оперативной памяти, вы можете получить доступ к дополнительным 2 ГБ, но не для запуска программ.

Программное обеспечение существует, чтобы позволить вам создать RAM-диск из RAM, недоступной для операционной системы, в 32-битных средах. SuperSpeed имеет программу под названием RamDisk, которая позволит вам сделать это. Другим вариантом является программное обеспечение Vsuite Ramdisk (оба они немного отличаются - посмотрите список функций, чтобы узнать, какой из них соответствует вашим потребностям).

Я специально не рекламирую какое-либо программное обеспечение, но я сталкиваюсь с некоторыми из них, которые позволяют вам использовать часть оперативной памяти вне диапазона адресов 32-битной операционной системы. Хотя это и не так хорошо, как доступ операционной системы к ОЗУ, наличие файла подкачки на основе ОЗУ намного лучше, чем файла на жестком диске. Если вы не хотите использовать файл подкачки, вы также можете использовать дополнительный RAM-диск для программ, интенсивно работающих с файлами подкачки (например, для редактирования изображений или видео).

Спасибо за тщательный ответ. С полностью прозрачным отображением физического адресного пространства в модули памяти я бы ожидал, что ядро ​​будет использовать младшие 4 ГБ и, как вы говорите, эффективно использовать 3 ГБ из первого триплета модуля и 1 ГБ из другого. Однако, когда ядро ​​поддерживает NUMA, это отображение не может быть полностью прозрачным. Таким образом, часть моего вопроса остается: будет ли ядро ​​XP, несмотря на «знание», что физическое адресное пространство равномерно распределено по двум узлам NUMA, просто использовать самые низкие физические 4 ГБ или оно более умное в любом случае? Josef Grahn 13 лет назад 1
Хотя ядро ​​отвечает за программную часть NUMA, оно не за аппаратное обеспечение. Поскольку ядро ​​XP физически «видит» только нижние 4 ГБ ОЗУ, в этой области будут вызываться команды NUMA. NUMA отвечает только за то, * где * в карте памяти расположены объекты, и поскольку ядро ​​XP будет иметь только карту памяти 4 ГБ (как описано в моем ответе), а расположение этой карты памяти зависит от оборудования. Breakthrough 13 лет назад 0
Хорошо, я приму ваш ответ. Небольшое замечание: зная, что ядро ​​XP на самом деле знает PAE, я ожидал, что оно сможет «видеть» всю физическую оперативную память и, следовательно, по крайней мере теоретически сможет отобразить любые 4 ГБ в виртуальное адресное пространство, при сохранении лимита 4 ГБ (лицензия). Однако позже я наткнулся на этот замечательный пост в блоге Марка Руссиновича, в котором говорилось, что в ядре был установлен 32-разрядный предел адресов из-за проблем с драйверами, ограничивающий полезное физическое адресное пространство до 4 ГБ, несмотря на PAE: http: // blogs. technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx Josef Grahn 13 лет назад 0
_ «Насколько я понимаю, контроллер материнской платы будет обрабатывать сопоставление местоположений виртуальной памяти с физическим адресом ОЗУ.» _ Данные фактически находятся в таблицах страниц, которые поддерживаются в ОЗУ операционной системой. MMU ЦП обращается к ним (и кэширует их в TLB, части ЦП). Существует PTE для каждого определенного номера виртуальной страницы; MMU использует их содержимое для перевода номеров виртуальных страниц в физические. Контроллер памяти (будь то часть набора микросхем на материнской плате или часть процессора, как в последних топологиях) работает только с физическими (RAM) адресами. Jamie Hanrahan 6 лет назад 0

Похожие вопросы