Отображение адресов памяти физическим модулям в Windows XP
Я планирую запустить 32-разрядную Windows XP на рабочей станции с двумя процессорами на основе микроархитектуры Intel Nehalem и трехканальной оперативной памяти. Несмотря на то, что XP ограничена 4 ГБ ОЗУ, я понимаю, что она будет работать с установленным более 4 ГБ, но будет отображать только 4 ГБ (или чуть меньше).
У меня такой вопрос: если предположить, что в шести модулях по 1 ГБ установлено 6 ГБ ОЗУ, какие физические 4 ГБ Windows будет отображать в своем адресном пространстве?
Особенно:
Будет ли он использовать все шесть модулей по 1 ГБ, используя все каналы памяти? (Я предполагаю, что да, и что сопоставление с отдельными модулями в группе происходит аппаратно.)
Будет ли он сопоставлять 2 ГБ адресного пространства каждому из двух узлов NUMA (поскольку каждый процессор имеет собственный интерфейс памяти), или один процессор получит быстрый доступ к 3 ГБ ОЗУ, а другой - только 1 ГБ?
Спасибо!
1 ответ
Насколько я понимаю, контроллер материнской платы будет обрабатывать сопоставление мест виртуальной памяти с физическим адресом оперативной памяти. Поскольку работает трехканальная память и большинство контроллеров материнской платы работают, оба ЦП будут работать вместе, отображая нижние 4 ГБ ОЗУ, распределенные одинаково вдоль первых трех модулей ОЗУ (заполняя первые три набора по 3 ГБ, работая вместе в первую очередь), с последний гигабайт разнесен среди последних трех модулей.
Без этой реализации не было бы "трехканального" доступа к памяти, что сильно ухудшало бы производительность. Кроме того, именно поэтому реализация памяти основана на аппаратном обеспечении, а не на программном обеспечении, поэтому с вашей стороны проблем быть не должно.
Следует отметить, что ограничение в 4 ГБ существует только из-за жестко заданного ограничения 32-разрядных адресов памяти, но у программного обеспечения нет причин, позволяющих расширить этот предел. Это ограничение было выбрано для проблем с лицензией, а также для проблем несовместимости драйверов (спасибо Йозефу Грану). Эту концепцию легче понять, если понять, что ваша материнская плата, а также системная память - это просто еще один компонент системы. В то время как вы можете быть ограничены в оперативной памяти, вы можете получить доступ к дополнительным 2 ГБ, но не для запуска программ.
Программное обеспечение существует, чтобы позволить вам создать RAM-диск из RAM, недоступной для операционной системы, в 32-битных средах. SuperSpeed имеет программу под названием RamDisk, которая позволит вам сделать это. Другим вариантом является программное обеспечение Vsuite Ramdisk (оба они немного отличаются - посмотрите список функций, чтобы узнать, какой из них соответствует вашим потребностям).
Я специально не рекламирую какое-либо программное обеспечение, но я сталкиваюсь с некоторыми из них, которые позволяют вам использовать часть оперативной памяти вне диапазона адресов 32-битной операционной системы. Хотя это и не так хорошо, как доступ операционной системы к оперативной памяти, наличие файла подкачки на основе ОЗУ намного лучше, чем файла на жестком диске. Если вы не хотите использовать файл подкачки, вы также можете использовать дополнительный RAM-диск для программ, интенсивно работающих с файлами подкачки (например, для редактирования изображений или видео).