|
Опубликую тут небольшой этос:
Довелось еще раз окунуться в эту проблематику увидев статью на сайте Микрософта и окончательно сформировать (в том числе и для себя) ответ на вопрос почему не видно 4ГБ в ПК при установленных 4ГБ и, самое главное, что нужно, чтобы их увидеть. И так.
1. Почему не видно 4ГБ при установленных 4ГБ? Ответ прост и не изменился. Процессоры (до недавних пор) были 32 бит, а значит, способны адресовать 4ГБ памяти. Кроме того в системе много устройств
(в т.ч. и PCI/PCIe) с которыми можно общаться (передавать или принимать данные) по средствам т.н. memory mapped I/O. Memory mapped I/O означает то, что память находящаяся на борту контроллера (например, сетевого) ложится в адресное пространство процессора и процессор вместо инструкций ввода-вывода (IN/OUT – медленно выполняются, так работали в прошлом веке) использует инструкции MOVE (копирование; быстрее, 21 век) для перемещения данных из и в устройство.
Каждое устройство в компьютере имеет память на борту (например SATA контроллер) через которую процессор общается с ним. Memory mapped I/O Ее объем (суммарно, на всех устройствах) может достигать 1ГБ и более если установлена графическая карта на 512МБ и более. Например PCI/PCIe устройства могут занимать 256МБ суммарно, даже тогда, когда графический адаптер с большим ОЗУ отсутствует. Теперь представьте, что у вас 4ГБ памяти (ОЗУ) и 1ГБ (ввод-вывод) = 5ГБ которые нужно просунуть в 4ГБ окно процессора. Это аналогично тому, что вам на базаре в ведро насыпают яблок больше, чем само ведро. Вам придется отказаться от того, что не влезло. В нашем случае не влазит 1ГБ оперативной памяти. Поэтому мы видим 3ГБ оперативной памяти и ОС нам
об этом с удовольствием сообщает. Самое, возможно, труднопонимаемое, то, что в этом принимает участие ОС.
Интел давно попытался обойти этот барьер и ввел 36 бит адресов на процессоре. Microsoft и Intel назвали это PAE (Physical Address Extensions) и это позволило процессорам (начиная с Pentium Pro) работать с 64ГБ ОЗУ под управлением 32 бит ОС. XP поддерживает этот режим /PAE, но тем не менее, имеет ограничение в 4ГБ физического ОЗУ.
Главным образом PAE там нужен, для того, чтоб работал XD (DEP) бит. Без него эта функция не работает.
Обратите внимание, что когда у вас в системе стоит 3ГБ и меньше, то вы увидите эту память в полном объеме.
Почему? Понятно. 3+1 = 4ГБ. 4ГБ адресного пространства процессора достаточно для 3ГБ памяти и 1ГБ ввода-вывода.
2. Что нужно, чтобы это работало. Интуитивно вы скажете, что 64бит ОС решает эту задачу. К сожалению нет. Для того, чтобы это работало необходимо, чтобы чипсет смог к 4ГБ ОЗУ присоединить 1ГБ ввода-вывода.
Это сможет сделать только чипсет (северный и южный мост, обязательно) который может работать с 8ГБ. А это 975, 965 и т.д Другими словами вам нужно 3 вещи, чтобы увидеть 4ГБ в ОС при установленных 4ГБ
64 бит ОС (Vista 64, XP 64)
8ГБ чипсет (975, 965 +)
нужный BIOS (может влиять на результат).
Другими словами. Если у вас 64 бит Vista и 945P чипсет и 4ГБ оперативной памяти, то вы НИКОГДА не увидите 4ГБ в OC.
Вывод один. 3ГБ на 32 бит ОС!!!! это оптимальный объем.
Если вас интересуют подробности от МС. http://support.microsoft.com/kb/929605/en-us
PS. Коллеги, которые ХОРОШО ориентируются в написанном. Не цепляйтесь к словам. Я многое опустил, для упрощения. Например то, что PS/2 устройства не работают через memory mapped I/O и т.п.
И еще. http://www.nix.ru/support/faq/show_articles.php?number=644 Приложения для использования более 2-х гб должно быть перекомпилированны
Последний раз редактировалось AleS good; 16.10.2007 в 13:39.
PAE есть во всех ОС. И оно работает, хотя в разных ОС по разному - в одних глючнее, в других не очень.
Во FreeBSD, например, столько разнообразных глюков на PAE, что даже поставить его боюсь, про винды не в курсе, в Linux работает неплохо. Чтоб не быть голословным:
cat /proc/meminfo |grep MemTotal
MemTotal: 8054716 kB
# uname -a && cat /proc/meminfo |grep MemTotal
Linux ???.???.?? 2.6.18-8.1.8.el5PAE #1 SMP Tue Jul 10 07:50:36 EDT 2007 i686 i686 i386 GNU/Linux
MemTotal: 8054716 kB
говорится про десктопные оси - в частности, XP 32-bit.
А также - про чипсет, который работает с бОльшим объемом памяти
да на семинаре сам представитель интела об этом заявляли решение проблемы с помощью чипсета 965 он не афишировал... да и сам он врятли устанавливал такую память в 945.
интересно где бы надыбать 2 гига планку шоб проверить на личном опыте![]()
но на кофе брейке, я не помню как звали тренера, помню что на том семинаре ещё виста и ЛГ были, рассказывали про вот такие проблемы, и о целесообразности 64 битных осей в общем. Типа преимущество нашли тока в винампе, а так тока лишний вагончик за собой таскается... что-то типа таких фраз.![]()
Ты таки возьми и посмотри приведенный мною выше кусок скриншота.
Затем прочитай что такое PAE. Windows 2003 - 32-х битная система, прекрасно видит 16 гиг памяти. По твоим словам - уже сколько лет производители серверов обманывают покупателей - продают 32-х битные сервера, на которые покупатели ставят до фига памяти, из которых работает только 3,2 гига. А покупатели такие идиоты что покупают такие сервера, да еще и память докупают которую использовать не могут. Так что-ли?
Тут видимо имеется ввидуТ.е. если есть интегрированное видео, сетевая, сериал-ата контроллеры, то некоторые системы резервируют для них из физической памяти какое-то колечество мегобайт. Ну так это не проблема 32-битной или какой-бы то ни было ещё ОС. У меня есть Vist 64, XP 32, openSuSE 32. В биосе чётко светится инфо о систем installed 4096, reserved 640, available 3456. И все системы пользуют эту память.Various devices in a typical computer require memory-mapped access. This is known as memory-mapped I/O (MMIO). For the MMIO space to be available to 32-bit operating systems, the MMIO space must reside within the first 4 GB of address space.
Последний раз редактировалось paha; 24.10.2007 в 12:52.
Венера
Социальные закладки