Ограничение на объем памяти в операционках (часть 3)

Это окончание темы. Начало. Продолжение.
Админ.

Удалось увидеть ВСЕ 4Gb под MS Windows XP SP1 Home Edition (rus).


Конфигурация:

* ASUS P5B Deluxe P965+ich8R (биос версии 0804 от 20.10.2006)
* 4 x 1Gb Hynix (двухсторонняя)
* Core 2 Duo 6600 (ДВУХядерный, естественно)

В биосе в настройках чипсета включил ремаппинг (Advanced>Chipset>North Bridge Configuratuin: Memory Remap Feature = Enabled). С отключенным ремаппингом в винде доступно было только ~3Gb, с включенным (но без ключика /PAE) - всего 2Гб (остальные два перекидывались за границу 4Gb и видны не были).

В boot.ini пришлось добавить ключик /PAE.

К сожалению, на бочку меда нашлась не одна ложка дегтя.:(
После загрузки система безбожно тормозила, открывавшиеся окна куда-то исчезали, закрывавшиеся наоборот пытались остаться на виду (полностью или частично). Звук периодически заикался, мыша продергивалась. Почти каждый щелчек кнопкой мыши сопровождался подмигиванием монитора.

Сразу закралось подозрение, что тупит какой-то из драйверов: ну не тестировались они наверняка на конфигурациях с /PAE!

В первую очередь подозрение пало на драйвер видео (nV GF7300 128М). От калейдоскопа из фрагментов окон удалось избавиться, деинсталлировав драйвера ForceWare (v93.71).

Заикания звука и торможение/дерганье мыши выличелось сменой ядра, точнее заменой типа компьютера с "Многопроцессорный компьютер с ACPI" на "Однопроцессорный компьютер с ACPI".

Думаю, проведенный эксперимент скорее всего даст такие же результаты на Win XP Pro SP1.

Так что теперь впору открывать сезон тестирования драйверов на совместимость с Win XP SP1 + /PAE.:)

Root писал(-а):
сделать из нее W2k Adv. Server тем же NT Switch'ем

Еле нашел эту прогу, на софтодроме.
В комментах люди пишут, что она нормально работает не только с win2k, но и с 2003net. А вот с NT4 и корпоротивной w2k3 наблюдаются проблемы. Сам пока не испытывал - нет нужной винды под рукой.

Аватар пользователя Root

xKVtor
вместо NTSwitch можно (и лучше) поискать такое:

Цитата:
TweakNT -WiNBETA by ibi and bophoe
Version 1.21

TweakNT is a utility that allows you to remove, add or edit the timebomb, and change the edition of any NT OS.

It should be fairly self-evident how to use it, if it isnt, I would suggest you don't even try, as you'll most likely break something.

I will say this as so many people dont get it even though it should be fairly obvious:
TweakNT is 35k, it only makes changes to the registry. This means that converting your os to anything else is purely cosmetic, it wont install any of the extra compoenents etc... so don't expect miracles. Also, be careful if you're converting - windows may not like it.

Timebomb:
Timebomb is not the same as WPA, timebomb is usually present in betas, and is normally somewhere between 120 and 360 days.


If there is a timebomb, the build will always be shown on the desktop, consequently, removing the timebomb will remove the build from desktop (unless you specify it to always show)
TweakNT also allows you to add a timebomb (not sure quite why you might want to do that) of anywhere between 1 and 93,206 days.

Converting can render your OS completely unusable, do not touch this unless you know what you're doing.
Obviously, You can't convert Windows 2000 to web server, as it doesnt exist, these are for .net but the basic "ntswitch" will work on all versions of NT.

All changes made by TweakNT are reversible, though in some cases you may not be able to get to a point where you can run TweakNT to reverse the changes, if this happens you will need to restore the backup of the registry created by TweakNT. You will be told the location of this file after the backup is created.
The backup can be restored by renaming or deleting "system" and renaming the backup file to "system".
These files are in \windows\system32\config. This renaming has to be done from a secondary OS.

TweakNT requires vb6 runtimes, if you are using 2000 or NT, you may need to install these.

Improvements in 1.1:
You can now add a timebomb (don't ask why)
Gives install and expiry date
Fixed bug that would make a install with timebomb bigger than 364 days bsod on boot (oops)
Improvements in 1.2:
Added convert to MCE and TabletPC for XP
- not sure what might happen with these on anything other than xpsp1

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Пару дней назад набрел на форум, в котором как раз обсуждалась совместимость (видео-)драйверов с виндой, работающей в режиме /PAE: nvworld.ru/php/viewtopic.php?t=17687

Заодно приведу ссылку на тему, родственную нашей:
nvworld.ru/php/viewtopic.php?p=290036#290036

PS:

DanZer писал(-а):
Data Execution Protection - защита от выполнения кода из областей памяти, помеченных, как данные. По идее - должно защищать от эксплоитов на основе переполнения буфера

Пишут, что это просто пустая маркетинговая болтовня от MS.
Разгромная статья про DEP

PPS: Решил закинуть сюда часть моей дискуссии с DrEvil с форума nvworld.ru (на случай, если тот форум будет недоступен), которая логически продолжает здешнее обсуждение. Получилось что-то наподобие миниFAQ'а.:)

nvworld.ru/php/viewtopic.php?p=290036#290036

Цитата:
DrEvil писал(-а):

Понимают этот ремаппиннг только Vista и какие-то версии ядра Linux.

В смысле "понимают" ?

Понимать должны все операционки, которые искусственно не оганичены мелкософтом пределом в 4Гб (см. таблицу ниже).

WinXP SP2 - ограничена и от ремапинга толка ноль, только хуже будет.

WinXP SP1 + /PAE - прекрасно видит все 4 гига. Вот пример: forum.rom.by/topic16311.html#133984

А вот более полный список из упомянутого интеловского документа:

Microsoft Windows       Maximum Physical 
Operating System        Memory Supported 
=================       ================ 
Server 2003 Web Edition.........2 GB 

2000 Professional...............4 GB 
2000 Server.....................4 GB 
XP Pro & Home Edition...........4 GB 
Server 2003 Standard Edition....4 GB 
---------------------------------------------

2000 Advanced Server.....................8 GB 
2000 Datacenter Server..................32 GB 
Server 2003 Enterprise Edition..........32 GB 
Server 2003 Datacenter Edition..........64 GB 

---------------------------------------------
XP 64 bit Edition.......................32 GB 
Server 2003 Enterprise 64-bit Edition...64 GB 
Server 2003 Datacenter 64-bit Edition..512 GB

А вообще говоря, с учетом того, что обычно при включенном ремапинге из под границы 4Гб "исчезают" 2Гб, получается, что реальный максимум, доступный операционкам, на 2 Гб меньше того, что указан в в приведенной выше таблице.

Если ремапинг включен, то для 32-х битных операционок с max пределом >4Gb (из таблицы) для доступа ко всей памяти выше 2Gb должна быть указана опция /PAE в boot.ini.

nvworld.ru/php/viewtopic.php?p=290058#290058

Цитата:
DrEvil
DrEvil писал(-а):
А что, до изобретения ремаппинга не видела?

До включения ремаппинга видела меньше 4 Гб (примерно 3Гб) -- часть системной памяти "затенялась железом".

DrEvil писал(-а):
Какие-то области и при ремаппинге не переносятся.

Если это так, то эти области очень и очень небольшого размера.

DrEvil писал(-а):
Вы лучше скажите, у вас с ремаппингом и PAE сколько памяти в диспетчере задач доступно сразу после загрузки? Сколько выделено?

Я вроде приводил уже ссылку на ром.бай. Вот картинка оттуда:

Запечетлен момент работы программы S&M 1.9.0a (тест памяти), которая отожрала 2 Гб оперативы (больше она захватить не смогла, т.к. пока не обучена этому - всему виной ограничение винды на максимальный кусок памяти для одного процесса).

DrEvil писал(-а):
Не все чисто с реализацией технологии у Intel. И в этом документе, и в даташитах на чипсеты упрямо приводят пример с 5 Гб физической памяти. При этом по описанию технологии ремапа никакого PAE от системы вообще не требуется, все осуществляется якобы "у ей унутре" MCH, скрытно от программной части вообще. Если бы так и было, у нас было бы доступно 4 Гб без необходимости в использовании PAE.

Ничего подобного. При включении ремаппинга та часть ОЗУ, которая раньше затенялась "железками", просто переносится сразу за границу 4Гб адресного пространства. Поскольку при включении ремаппинга на многих платах под границей 4Гб остается всего лишь 2Гб оперативы, то остальные 2 Гига начинаются сразу, как только кончается затеняемая железом область, т.е с адреса=4Гб и дальше.

Т.е. при включении ремаппинга память распределяется таким образом:

0Гб...2Гб-1 - первая порция ОЗУ (первые 2 гига)
2Гб...4Гб-1 - память, отданная на откуп (иными словами затеняемая) железу (PCI, Апертура, прочее)
4Гб...6Гб-1 - вторая порция ОЗУ (вторые 2 гига)

Естественно, чтобы добраться до второй "порции ОЗУ", операционка должна уметь адресовать более 4Гигов, т.е .должна поддерживать PAE.

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

В документе ftp.asus.com.tw/pub/ASUS/mb/4GB_Rev1.pdf даже картинка приводится (на странице 14) для лучшего усвоения.

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

Понятно, что в случае 4Гб памяти (с включенным ремапингом по схеме 2Г+2Г):
* общий объем адресуемой системной памяти будет равен 4 гигам;
* физическое адресное пространство будет равно 4гига (системная память)+2Гига (память, отданная на откуп железу)=6 Гигов.

Вот чтобы адресовать эти 6 гигов 32-х битная операционка как раз таки должна иметь поддержку ПАЕ. Самое смешное, что из этих 6 гигов для хранения программ и данных будет доступно только 4Гб. Но ведь глупо было рассчитывать на большее.:)

Как я заметил, многих смущает такой парадокс, что для прог доспупны те же 4 Гига, а все равно требуется ПАЕ. Естественно, не забываем про память, отъедаемую железом -- ее ведь тоже надо адресовать. Так что ничего удивительного в необходимости PAE нет.:)

Надеюсь, объяснил не слишком путано.:)

PS: Для закрепления разберем случай с 8 гигами оперативы. Ремаппинг (2+2) в биосе включен.

Распределение будет таким:

первые 2Гб ОЗУ + 2Гб железо + оставшиеся 6 Гб ОЗУ = 10Гб

В этом случае получается, что операционка должна уметь адресовать 10Гб. Из таблицы видно, что например W2K Advanced Server на это не способна, т.к. у нее ограничение =8Гб (см. таблицу).

Понятно, что для этой операционки лучше отключить ремаппинг, тогда получим примерно такое распределение (зависит от конкретной системы):

первые ~3.5Гб ОЗУ + ~0.5Гб железо + оставшиеся 4 Гб ОЗУ = 8Гб - уже лучше. W2kAS с адресацией 8Гб уже справится. При этом операционной системе для размещения данных будет доступно 8,0 - ~0,5 = ~7,5Гб.

Так что ремаппинг из-за его "грубости" не всегда полезен.:) К сожалению, уточняющих настроек ремаппинга (позволяющих самому решать, сколько памяти оставлять под границей 4Гб, а сколько перекидывать за границу 4Г) в виденных мною биосах не было. Но это не значит, что их не будет. Надежда умирает последней.:)

PPS: Хотя нет, вроде полгода назад попадалась одна мамка, позволявшая настраивать адреса, выше которых производился REMAP. Вот только модель ее я не помню.:(

nvworld.ru/php/viewtopic.php?p=290060#290060

Цитата:
DrEvil
DrEvil писал(-а):

Вот-вот, приводится она именно для случая более чем 4-х гигабайт установленной памяти.

Не понял, а какая разница ровно 4Гб или больше ? При TOM=4Gb заремэпленый кусок начнется сразу за границей 4Гб. Просто случай с >4Гб более общий, потому его и нарисовали.

DrEvil писал(-а):
Да и даташиты реальных чипсетов описывают процесс несколько иначе от этого документа, отсутствующего, кстати, на сайте Intel:
[...]
Physical memory по тексту идет именно как установленная DRAM, а не адресное пространство.

Другой документ - другая терминология. Но суть ТА ЖЕ САМАЯ!:)
Кстати, связка "логическая <-> физическая" мне даже больше по душе.

Цитата:
Ограничения на доступный операционке объем ОЗУ накладывают следующие компоненты:

  • Чипсет. Тут не все до конца ясно. Вроде как чипсеты на i975 поддерживают 8Gb, на 865-м - 4Гб. Но все же нужно проверить. И по остальным чипсетам статистику собрать.

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

8Gb

Q965 / P965 / G965

Q963

975X
955X

4Gb

946GZ / 946PL
945G / 945GT / 945P
925XE / 925X
915G / 915P / 915GV / 915GL

875P
865G / 865PE / 865P / 865GV

2GB

910GL
915PL
945PL / 945GZ

--------

Получаем:

  • что серия 8xx поддерживает не более 4 Гигов памяти. Вопрос о возможности ремаппинга для этих чипсетов остается открытым. Думаю, ответ можно будет подсмотреть в даташитах соответствующие MCH.

  • серия 9xx поддерживает 8Гб памяти, начинася с 955-ой модели и выше.

Насчет чипсетов под AMD: скорее всего проблем с большими объемами памяти у них не возникнет, т.к. ее максимально-поддерживаемый объем наверняка зависит от контроллера памяти, который у AMD-шных процов начиная с K8, как известно, встроенный.:) Надо будет еще уточнить.

[/][/]
Аватар пользователя savely

Цитата:
Естественно, не забываем про память, отъедаемую железом

Маленькое уточнение зануды - ну не надо так писать! Из-за этого - половина непоняток в данном вопросе. Память как некоторый объем ОЗУ - никуда не девается! Пиши - адресное пространство или диапазон адресов.

А кому счас легко...

Ленты новостей