Оперативная память и система Windows.

Прошло несколько лет с тех пор, как была написана статья «Четыре гигабайта памяти - недостижимая цель? », а вопросов, почему Windows не видит все четыре гигабайта, меньше не стало. К числу вопрошающих добавились и обладатели 64-разрядных систем, которых эта проблема, казалось бы, не должна была коснуться. И стало ясно, что пора писать новую статью на эту же тему. Как и раньше, речь пойдет только об операционных системах Windows, причем в основном клиентских, то есть Windows XP, Windows Vista, Windows 7 и грядущей Windows 8. В некоторых случаях намеренно будут использоваться несколько упрощенные описания тех или иных аспектов. Это даст возможность сосредоточиться на предмете данной статьи, не вдаваясь в излишние подробности, в частности, внутреннего устройства процессоров и наборов микросхем (чипсетов) для системных плат. Рекомендуем предварительно прочитать указанную выше статью, так как не всё, сказанное в ней, будет повторено здесь.

Хотя теоретически 32-разрядной системе доступны (без дополнительных ухищрений) до 4 ГБ физической памяти, 32-разрядные клиентские версии Windows не могут использовать весь этот объем из-за того, что часть адресов используется устройствами компьютера. Ту часть ОЗУ, адреса которой совпадают с адресами устройств, необходимо отключать, чтобы избежать конфликта между ОЗУ и памятью соответствующего устройства - например, видеоадаптера.

Рис. 1. Если оперативная память в адресах, используемых устройствами, не отключена, возникает конфликт

Оперативная память заполняет адреса, начиная с нулевого, а устройствам, как правило, отводятся адреса в четвертом гигабайте. Пока размер ОЗУ не превышает двух-трех гигабайт, конфликты не возникают. Как только верхняя граница установленной памяти входит в ту зону, где находятся адреса устройств, возникает проблема: по одному и тому же адресу находятся и ячейка оперативной памяти, и ячейка памяти устройства (того же видеоадаптера). В этом случае запись данных в память приведет к искажению изображения на мониторе и наоборот: изменение изображения - к искажению содержания памяти, то есть программного кода или данных (скажем, текста в документе). Чтобы конфликты не возникали, операционной системе приходится отказываться от использования той части ОЗУ, которая перекрывается с адресами устройств.

В середине девяностых годов прошлого века для расширения доступного объема ОЗУ была разработана технология PAE (Physical Address Extension), увеличивающая число линий адреса с 32 до 36 - тем самым максимальный объем ОЗУ вырастал с 4 до 64 ГБ. Эта технология первоначально предназначалась для серверов, однако позже появилась и в клиентской Windows XP. Некоторые особенности реализации этой технологии в современных контроллерах памяти дают возможность не только использовать PAE по ее прямому назначению, но и «перекидывать» память в другие адреса. Таким образом, часть памяти, которая ради предотвращения конфликтов не используется, может быть перемещена в старшие адреса, например в пятый гигабайт - и снова стать доступной системе.

В обсуждении первой статьи было высказано замечание, что некорректно отождествлять наличие в контроллере памяти системной платы поддержки PAE - и способность платы переадресовывать память; что это вполне могут быть вещи, друг с другом не связанные. Однако практика показывает, что в «железе» для настольных систем это понятия взаимозаменяемые. К примеру, Intel в документации к своему набору микросхем G35 ни слова не говорит о возможности (реально существующей) переадресации памяти, зато подчеркивает поддержку РАЕ. А не поддерживающий PAE набор i945 не имеет и переадресации памяти. С процессорами AMD64 и последними моделями процессоров Intel дело обстоит еще проще: в них контроллер памяти встроен в процессор, и поддержка PAE (и ОЗУ размером более 4 ГБ) автоматически подразумевает поддержку переадресации.

Рис. 2. Переадресация

Рисунок достаточно условный, переадресация совсем не обязательно выполняется блоками именно по одному гигабайту, дискретность может быть другой и определяется контроллером памяти (который, напомним, является либо частью оборудования системной платы, либо частью процессора). В программе BIOS Setup компьютера обычно бывает настройка, разрешающая или запрещающая переадресацию. Она может иметь различные наименования - например, Memory remap, Memory hole, 64-bit OS и тому подобное. Ее название лучше всего выяснить в руководстве к системной плате. Необходимо отметить, что если используется 32-разрядная система, то на некоторых системных платах, преимущественно достаточно старых, переадресацию необходимо отключать - в противном случае объем доступного системе ОЗУ может уменьшиться.

По умолчанию в Windows XP режим РАЕ был отключен, поскольку реальной надобности в нем не было (напомним, что в 2001 году типичный объем памяти настольного компьютера составлял 128-256 МБ). Тем не менее, если его включить, то ХР могла бы использовать все четыре гигабайта памяти - при условии, конечно, что системная плата поддерживала бы РАЕ. Но, повторим, реальной надобности включать этот режим в те годы не было. При желании читатель может для пробы установить на современный компьютер Windows XP или Windows XP SP1 (делать это для работы, конечно, не стоит), включить режим PAE и своими глазами убедиться, что системе доступны четыре гигабайта ОЗУ.

В 2003 году «Майкрософт» начала разрабатывать второй пакет исправлений для Windows XP (вышедший в 2004 году), поскольку столкнулась с необходимостью существенно снизить число уязвимостей в компонентах ОС. Одним из путей было использование предотвращения выполнения данных (Data Execution Prevention, DEP) - набора программных и аппаратных технологий, позволяющих выполнять дополнительные проверки содержимого памяти и в ряде случаев предотвращать запуск вредоносного кода. Эти проверки выполняются как на программном уровне, так и на аппаратном (при наличии соответствующего процессора). AMD назвала эту функцию процессора «защита страниц от выполнения» (no-execute page-protection, NX), а Intel использовала термин «запрет на выполнение» (Execute Disable bit, XD).

Однако использование такой аппаратной защиты требует перевода процессора в режим PAE, поэтому Windows XP SP2 при обнаружении подходящего процессора стала включать этот режим по умолчанию. И вот тут «Майкрософт» столкнулась с довольно серьезной проблемой: оказалось, что не все драйверы могут работать в режиме PAE. Попробуем пояснить эту особенность, не слишком углубляясь в устройство процессоров и механизмы адресации.

В Windows используется так называемая плоская модель памяти. Тридцать два разряда адреса обеспечивают обращение к пространству размером четыре гигабайта. Таким образом, каждой ячейке ОЗУ или ячейке памяти другого устройства соответствует определенный адрес, и никаких двусмысленностей тут быть не может. Включенный режим PAE дает возможность использовать 36 разрядов адреса и увеличить количество ячеек памяти в 16 раз. Но ведь система команд процессора остается той же самой и может адресовать только 4 миллиарда (двоичных) байтов! И вот, чтобы обеспечить возможность доступа к любому из 64 миллиардов байтов, указав только 32 разряда адреса, в процессоре включается дополнительный этап трансляции адресов (те, кого интересуют подробности, могут обратиться к специальной литературе - например, книге Руссиновича и Соломона «Внутреннее устройство Windows»). В результате 32-разрядный адрес в программе может указывать на любой из байтов в 36-разрядном пространстве.

Прикладных программ эта особенность никак не касается, они работают в своих собственных виртуальных адресах. А вот драйверам, которые должны обращаться к реальным адресам конкретных устройств, приходится решать дополнительные задачи. Ведь сформированный этим драйвером 32-разрядный адрес может после дополнительного этапа трансляции оказаться совсем другим, и выданная драйвером команда может, например, вместо вывода значка на экран изменить значение в одной из ячеек таблицы Excel. А если окажутся запорченными какие-либо системные данные, то тут и до аварийного завершения работы с выводом синего экрана рукой подать. Поэтому для успешной работы в режиме PAE драйверы должны быть написаны с учетом особенностей этого режима.

Однако поскольку исторически сложилось так, что до того времени в клиентских компьютерах PAE не использовался, некоторые компании не считали нужным поддерживать этот режим в написанных ими драйверах. Ведь оборудование, которое они выпускали (звуковые платы, к примеру), не предназначалось для серверов, и драйверы не имели серверной версии - так зачем без необходимости эти драйверы усложнять? Тем более, что для тестирования работы в режиме PAE раньше требовалось устанавливать серверную ОС и использовать серверное оборудование (системные платы для настольных компьютеров лишь относительно недавно стали поддерживать PAE). Так что разработчикам драйверов проще и выгоднее было просто забыть про этот PAE и обеспечить работоспособность на обычных клиентских компьютерах с обычными персональными, а не серверными ОС.

И вот с такими драйверами и возникли проблемы в XP SP2. Хотя количество фирм, драйверы которых переставали работать или даже вызывали крах системы, оказалось невелико, количество выпущенных этими фирмами устройств исчислялось миллионами. Соответственно, и количество пользователей, которые могли бы после установки SP2 получить неприятный сюрприз, оказывалось весьма значительным. В результате многие пользователи и сами отказались бы устанавливать этот пакет, и разнесли бы о нем дурную славу, что повлияло бы и на других пользователей. Они, хоть и без каких-либо веских причин, тоже отказались бы его устанавливать.

А необходимость повышения безопасности ХР компания «Майкрософт» ощущала очень остро. Впрочем, рассуждения на тему, почему мы увидели Windows XP SP2 и не увидели чего-то наподобие Windows XP Second Edition, выходят за рамки данной статьи.

Главное, что нас интересует, это то, что для обеспечения совместимости с плохо написанными драйверами функциональность PAE в SP2 для Windows XP была обрезана. И хотя сам этот режим существует и, более того, на компьютерах с современными процессорами включается по умолчанию, никакого расширения адресного пространства он не дает, просто передавая на выход те же адреса, которые были поданы на вход. Фактически система ведет себя как обычная 32-разрядная без PAE.

То же самое поведение было унаследовано Windows Vista, а затем перешло к Windows 7 и будущей Windows 8. Конечно, 32-разрядным. Причина, по которой это поведение не изменилось, осталась той же самой: обеспечение совместимости. Тем более что необходимость выгадывать доли гигабайта отпала: те, кому нужны большие объемы памяти, могут использовать 64-разрядные версии ОС.

Иногда можно услышать вопрос: если именно этот обрезанный режим PAE мешает системе видеть все четыре гигабайта - так, может, отключить его вовсе, чтобы не мешал, и, вуаля, системе станут доступны 4 ГБ? Увы, не станут: для этого требуется как раз наличие PAE, притом полноценного. Другой не так уж редко задаваемый вопрос звучит так: если устройства действительно мешают системе использовать всю память и резервируют ее часть под свои нужды, то почему же они ничего не резервировали, когда в компьютере стояло два гигабайта ОЗУ?

Вернемся к первому рисунку и рассмотрим ситуацию подробнее. Прежде всего отметим, что нужно четко различать два понятия: размер адресного пространства и объем ОЗУ. Смешение их воедино препятствует пониманию сути вопроса. Адресное пространство - это набор всех существующих (к которым может обратиться процессор и другие устройства) адресов. Для процессоров семейства i386 это 4 гигабайта в обычном режиме и 64 ГБ с использованием PAE. У 64-разрядных систем размер адресного пространства составляет 2 ТБ.

Размер адресного пространства никак не зависит от объема ОЗУ. Даже если вытащить из компьютера всю оперативную память, размер адресного пространства не изменится ни на йоту.

Адресное пространство может быть реальным, в котором работает сама операционная система, и виртуальным, которое ОС создает для работающих в ней программ. Но особенности использования памяти в Windows будут описаны в другой статье. Здесь же отметим только, что к реальному адресному пространству программы доступа не имеют - по реальным адресам могут обращаться только сама операционная система и драйверы.

Рассмотрим, как же в компьютере используется адресное пространство. Сразу подчеркнем, что его распределение выполняется оборудованием компьютера («железом») и операционная система в общем случае не может на это повлиять. Есть только один способ: изменить настройки оборудования с помощью технологии Plug&Play. О ней много говорили в середине 90-х годов прошлого века, но теперь она воспринимается как что-то само собой разумеющееся, и всё увеличивается число людей, которые о ней даже не слышали.

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

Базовая программа в системной плате, часто обобщенно называемая BIOS (хотя на самом деле BIOS (базовой системой ввода-вывода) она не является) при включении компьютера опрашивает устройства. Она определяет, какие диапазоны адресов каждое устройство может использовать, потом старается распределить память так, чтобы ни одно устройство не мешало другому, а затем сообщает устройствам свое решение. Устройства настраивают свои параметры согласно этим указаниям, и можно начинать загрузку ОС.

Раз уж об этом зашла речь, заметим, что в ряде системных плат есть настройка под названием «P&P OS». Если эта настройка выключена (No), то системная плата выполняет распределение адресов для всех устройств. Если включена (Yes), то распределение памяти выполняется только для устройств, необходимых для загрузки, а настройкой остальных устройств будет заниматься операционная система. В случае Windows XP и более новых ОС этого семейства данную настройку рекомендуется включать, поскольку в большинстве случаев Windows выполнит требуемую настройку по крайней мере не хуже, чем BIOS.

Поскольку при таком самоконфигурировании распределяются адреса памяти, не имеет никакого значения, сколько ОЗУ установлено в компьютере - процесс все равно будет протекать одинаково.

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

Поскольку изменение адреса при настройке устройств выполняется с некоторым шагом, определяемым характеристиками устройства, заданными изготовителем, то сплошной участок адресов для устройств получить невозможно - между адресами отдельных устройств появляются неиспользуемые промежутки. Теоретически эти промежутки можно было бы использовать для обращения к оперативной памяти, но это усложнило бы работу диспетчера памяти операционной системы. По этой и по другим причинам Windows использует ОЗУ до первого адреса памяти, занятого устройством. ОЗУ, находящееся от этого адреса и выше, останется неиспользуемым. Если, конечно, контроллер памяти не организует переадресацию.

Иногда задают вопрос: а можно ли повлиять на распределение адресов, чтобы сдвинуть все устройства в адресном пространстве как можно выше и сделать как можно больше памяти доступной системе. В общем случае без вмешательства в конструкцию или микропрограммы самих устройств это сделать невозможно. Если же руки все-таки чешутся, а времени не жалко, можно попробовать следующий метод: в BIOS Setup включить настройку «PnP OS» (она может или вовсе отсутствовать или называться по-другому), чтобы адреса для большинства устройств распределяла Windows, а затем переустанавливать драйверы, используя отредактированные файлы inf с удаленными областями памяти, которые, на ваш взгляд, расположены слишком низко.

В интернете можно найти разные советы, которые, якобы, должны дать системе возможность использовать все четыре гигабайта, основанные на принудительном включении PAE. Как легко понять из изложенного, никакого выигрыша это дать не может, поскольку не имеет значения, включен ли PAE автоматически или принудительно - работает этот режим в обоих случаях одинаково.

Может возникнуть также вопрос: а что будет, если установить видеоадаптер с четырьмя гигабайтами памяти. Ведь тогда получается, что система останется совсем без ОЗУ и работать не сможет. На самом деле ничего страшного не произойдет: видеоадаптеры уже довольно давно используют участок адресного пространства размером 256 МБ, и доступ ко всему объему памяти видеоускорителя осуществляется через окно такого размера. Так что больше 256 мегабайт видеоадаптер не отнимет. Возможно, в каких-то моделях размер этого окна увеличен вдвое или даже вчетверо, но автору в руки они пока не попадали.

64 разряда

Итак, с 32-разрядными системами мы разобрались. Теперь перейдем к 64-разрядным.

Вот уж тут-то, казалось бы, никаких подводных камней быть не должно. Система может использовать куда больше четырех гигабайт, так что, на первый взгляд, достаточно воткнуть в системную плату память и установить систему. Но оказывается, не все так просто. Прежде всего, отметим, что специального оборудования, предназначенного только для 64-разрядных систем, найти не удастся (мы говорим об обычных ПК). Любая системная плата, сетевая плата, видеоадаптер и пр., работающие в 64-разрядной системе, должны с одинаковым успехом работать в 32-разрядной.

А это означает, что адреса устройств должны оставаться в пределах первых четырех гигабайт. И значит, все ограничения, накладываемые на объем памяти, доступный 32-разрядной системе, оказываются применимыми и к 64-разрядной - конечно, в том случае, если системная плата не поддерживает переадресацию или если эта переадресация отключена в настройках.

Не поддерживают переадресацию системные платы на наборах микросхем Intel до 945 включительно. Новыми их, конечно, не назовешь, но компьютеры на их базе еще существуют и используются. Так вот, на таких платах и 64-разрядная, и 32-разрядная системы смогут увидеть одинаковое количество памяти, и оно будет меньше 4 ГБ. Почему меньше - описано выше.

С 64-разрядными процессорами AMD дело обстоит проще: у них контроллер памяти уже довольно давно встроен в процессор, и переадресация отсутствует только в устаревших моделях. Все процессоры для 939-контактного гнезда и более новые поддерживают больше 4 ГБ и, соответственно, умеют выполнять переадресацию памяти. То же самое относится к процессорам Intel семейств Core i3, i5, i7.

Впрочем, и тут может быть загвоздка: если на системной плате не выполнена разводка дополнительных адресных линий, то не будет и возможности обратиться к переадресованной памяти. А некоторые младшие модели системных плат для удешевления выпускают именно такими, так что необходимо смотреть описание конкретной системной платы.

И здесь нас поджидает сюрприз, подобный тому, с которым мы сталкиваемся в 32-разрядной системе: использование адресного пространства для работы устройств может ограничить объем памяти, доступный Windows.

Например, если системная плата поддерживает до 8 ГБ ОЗУ (скажем, использующая набор микросхем G35), и установить все эти 8 ГБ, то использоваться будут только ≈7-7,25 ГБ. Причина заключается в следующем: на такой системной плате разведены 33 линии адреса, что, с точки зрения изготовителя, вполне логично - зачем усложнять конструкцию, если больше 8 ГБ плата все равно не поддерживает? Поэтому даже если контроллер памяти сможет перекинуть неиспользуемый участок ОЗУ в девятый гигабайт, обратиться к нему все равно будет невозможно. Для этого потребуется 34-разрядный адрес, который физически нельзя сформировать на 33-разрядной системной шине. Точно так же на платах, поддерживающих 16 ГБ, Windows сможет использовать ≈15-15,25 ГБ и так далее.

С переадресацией связан еще один малоизвестный нюанс. Ограничение размера памяти, выполняемое в программе msconfig (или соответствующими настройками конфигурации загрузки) относится не к собственно величине памяти, а к верхней границе адресов используемой памяти.

Рис. 3. Эта настройка ограничивает верхнюю границу адресов, а не размер памяти

То есть если задать эту величину равной 4096 МБ, то память, расположенная выше этой границы (переадресованная в пятый гигабайт, например), использоваться не будет, и фактически объем памяти будет ограничен примерно тремя гигабайтами. Эту особенность в некоторых случаях удается использовать для диагностики того, работает переадресация или нет. Например, автору встретился случай, когда на ноутбуке Windows использовала 3,75 ГБ из четырех, и было неясно: то ли не работает переадресация, то ли память используется на какие-то нужды. Установка флажка и ограничение размера памяти четырьмя гигабайтами привели к тому, что стали использоваться только 3,25 ГБ. Из этого можно сделать вывод, что переадресация работала, а четверть гигабайта, следовательно, использовалась для видеоадаптера или каких-то других целей.

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

Не секрет, что наличие большого объема оперативной памяти благотворно сказывается на скорости работы многих приложений. В этом материале мы поговорим о взаимодействии ОЗУ и системы Windows, а так же ответим на многие распространенные вопросы по этой теме.

Вступление

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

Не обошла эта тенденция и оперативную память, которая в последнее время очень сильно подешевела. Лет 15 назад, модуль памяти объемом четыре мегабайта (только вдумайтесь!) стоил около 100 долларов, а на сегодняшний день стоимость четырех гигабайт ОЗУ (ОЗУ - оперативное запоминающее устройство или оперативная память) составляет всего около 700 рублей. Не секрет, что наличие большого объема оперативной памяти благотворно сказывается на скорости работы многих приложений, поэтому именно этот объем является минимальным для большинства современных компьютеров даже начального уровня. Более же продвинутые системы содержат 8, 16 и более гигабайт «оперативки».

И все бы хорошо, но наверняка многие пользователи сталкивались с одной неприятностью, в том случае, если в компьютере установлено четыре и более гигабайт оперативной памяти, 32-разрядная операционная система Windows их попросту не видит.

В этой статье вы узнаете, как операционная система работает с оперативной памятью, какие объемы ОЗУ поддерживают различные редакции Windows, почему в некоторых случаях ОС не видит всю установленную память, из-за чего это происходит и можно ли что-то сделать в этой ситуации, что такое файл подкачки, а так же многое другое. Но для начала давайте сделаем небольшой экскурс в теорию организации физической памяти компьютера, а так же разберемся, как вообще ОЗУ влияет на производительность системы.

Адресное пространство

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

Один байт может хранить одно из 256 значений (2 8), которые в зависимости от их интерпретации могут быть как числами, так символами или буквами. Например, значение 56, может обозначать как обычное число, так и букву «V» в кодировке ASCII. В нескольких байтах, можно хранить гораздо большие значения. Например, три байта могут принимать уже 16 777 216 значений (256 3), в которых может быть закодировано целиком короткое слово.

Что бы какое-либо устройство или программа могли иметь возможность обратиться к конкретному байту в памяти (адресовать его) для того, что бы записать туда или получить оттуда данные, ему присваивается уникальный индекс, называемый адресом . Диапазон адресов от нуля до максимума получил название адресного пространства .

Физическая и виртуальная память

В первых ЭВМ, размер адресного пространства был тождественно равен размеру установленной оперативной памяти. То есть, если в компьютере было установлено 128 Кб памяти, то и максимальный объем памяти, который могла использовать программа при работе, равнялся 128 Кб. При этом адрес какого-либо объекта приложения равнялся адресу физической ячейки запоминающего устройства.

Такой способ адресации был весьма простым, но имел пару существенных недостатков. Во-первых, память выполняемого приложения была ограничена оперативной памятью, которая на тот момент была сильно дорогой и устанавливалась на компьютер в очень маленьких количествах. Во-вторых, все запущенные программы выполнялись в одном адресном пространстве, что приводило к вероятности ошибочной записи данных несколькими приложениями в одну и ту же ячейку. В случае возникновения такой ситуации, о последствиях догадаться несложно.

В современных компьютерах устройства и программы работают не с реальной (физической ) памятью, а виртуальной , которая ее имитирует. Это дает возможность приложению считать, что на машине установлено максимальное теоритически возможное количество ОЗУ, а так же то, что оно является единственной программой, запущенной на компьютере.

Таким образом, адресное пространство ЭВМ наших дней, больше не ограничено размером ее физической (оперативной) памяти и имеет свой максимальный возможный размер, зависящий от рабочей среды, которой является операционная система.

На сегодняшний день операционная система Windows имеет как 32-разрядную, так и 64-разрядную версии. В первой, исходя из названия, для адресации используется 32-битное адресное пространство, максимальный размер которого равен 2 32 = 4 294 967 296 байт или 4 Гб (гигабайт). 64-битная версия операционной системы увеличивает размер адресного пространства до невероятных 2 64 = 18 446 744 073 709 551 616 байт - более 18 квинтиллионов байт или 16 Эб (эксабайт). Правда стоит отметить, что современные клиентские операционные системы Windows 7 x64 в силу объективных причин поддерживают максимальное адресное пространство размером 16 Тб (2 44).

При этом объемы в 4 Гб и 16 Тб, в зависимости от системы, выделяются каждому работающему приложению! То есть любая запущенная программа получает свое собственное адресное пространство, которое не пересекается с другими.

Влияние объема оперативной памяти на скорость работы системы

А что же происходит, когда записи в адресном пространстве по размеру начинают превышать реально установленный объем физической памяти? В этом случае, часть временно не использующихся данных переносится из ОЗУ на жесткий диск в так называемый файл подкачки или «своп» (swap). Если программам вновь понадобятся эти данные, то система по первому требованию, вернет их обратно с диска в оперативную память.

Если в компьютере установлен небольшой объем оперативной памяти, то ОС возможно довольно часто придется перемещать данные из ОЗУ в файл подкачки и обратно, вследствие чего сильно возрастает нагрузка на жесткий диск, что в свою очередь приводит к замедлению работы всей системы. В случае запуска сразу нескольких приложений, может получиться так, что все свое время система начнет тратить на обмен информацией между памятью и диском, вместо того чтобы выполнять программы. Визуально, в этот момент, система «зависает», то есть перестает отвечать на команды пользователя.

Чем больше реальный объем оперативной памяти, тем реже идет обращение к винчестеру, а вследствие этого возрастает и общая производительность компьютера. Именно поэтому, увеличение размера ОЗУ практически всегда положительно сказывается на скорости работы системы, а с учетом нынешних цен на память, многим пользователям вполне доступна установка 8, 16 или даже 32 Гб «оперативки». Особенно благоприятно большой объем памяти сказывается при работе с графическими приложениями (включая современные трехмерные игры) и программами видеомонтажа.

Стоит знать, что разные версии 64-битной операционной системы Windows могут поддерживать разный максимальный объем оперативной памяти. И если пользователям старших редакций Vista или 7 (Professional, Enterprise, Ultimate), поддерживающих до 192 Гб памяти, волноваться особо нечего, так как на домашних компьютерах такой объем практически не достижим, то тем, у кого установлены версии Home Basic и Home Premium есть над чем задуматься. Возможности этих редакций сильно урезаны, и если Premium поддерживает до 16 Гб «оперативки», то Basic только 8 Гб. Максимально доступный объем оперативной памяти, поддерживаемый уже устаревшей Windows XP (64-битной версии) составляет 16 Гб.

Почему 32-битная система Windows не видит 4 Гб ОЗУ

Наверняка, многие пользователи хотят воспользоваться падением цен на память и нарастить ее объем в собственных компьютерах. Процедура эта нехитрая - вынуть старые планки из системной платы и вставить новые можно за считанные минуты без каких-либо специальных инструментов. Далее включаем компьютер, тихо радуемся, когда при загрузке программа самотестирования отображает новый объем установленной ОЗУ (хотя и здесь могут быть проблемы, но об этом чуть ниже). Затем, дожидаемся загрузки Windows, заходим в свойства компьютера и… видим, что в разделе «Установленная память» красуется цифра в три с лишним гигабайта, вместо, например, реально установленных четырех. Так что же произошло и можно ли это исправить?

Как мы уже знаем, чисто теоретически 32-х разрядной системе без каких-либо дополнительных ухищрений доступны до 4 гигабайт оперативной памяти (2 32), но Windows не может использовать весь этот объем, так как часть его отводится под устройства компьютера.

Теперь, самое время сделать небольшой экскурс в историю. В первых настольных ПК, выпущенных в начале 80-ых годов, адресное пространство их физической памяти было поделено на две части в соотношении пять к трем. Первая часть отводилось под оперативную память (ОЗУ), а вторая предназначалась для размещения программы самотестирования (POST), базовой системы ввода-вывода (BIOS) и памяти устройств. При этом та часть адресного пространства, которая отводилась под устройства, не могла быть одновременно использована под оперативную память компьютера.

Все изменилось, когда в 1985 году компания Intel выпустила на рынок процессор 80386. Тогда были приняты сразу два решения об изменении распределения физической памяти в компьютерах, основанных на новых чипах. Распределение адресов в первом мегабайте памяти было принято оставить неизменным для совместимости со старым программным обеспечением и предыдущими моделями ЭВМ. Для компьютерных же устройств, нуждающихся в использовании памяти, теперь выделялся четвертый гигабайт. Все остальное пространство отводилось под ОЗУ.

Возможно, сегодня это решение многим покажется не совсем верным, но в то время несколько гигабайт оперативной памяти казалось просто фантастикой! Да и вряд ли кто предполагал, что сама архитектура и такой порядок распределения адресов проживет столько лет. Но и посей день, во всех современных компьютерах оперативная память начинает занимать адреса, начиная с нулевого, а оборудование - начиная с отметки 4 Гб в обратном направлении.

Теперь давайте более наглядно рассмотрим, как же распределяется память с момента начала загрузки компьютера. Здесь важно помнить, что все программы и компьютерные устройства работают не с физической памятью напрямую, а с адресным пространством, размер которого никак не зависит от реального объема установленной ОЗУ. То есть если убрать из компьютера всю установленную в него оперативную память, то размер адресного пространства ни капли не изменится. Напомним, что для 32-битных систем он равен 4 Гб.

Сразу же после включения машины, специальная программа, называемая БИОС (BIOS), начинает обращаться к установленным устройствам. Ее задача, сначала собрать сведения о том, какие диапазоны адресов то или иное устройство может использовать, а потом распределить память так, что бы они не мешали друг другу при работе. После того, как необходимые виртуальные адреса под оборудование становятся зарезервированными в адресном пространстве (от четвертого гигабайта сверху вниз), начинается загрузка операционной системы.

Как мы уже говорили ранее, под установленную оперативную память адресное пространство выделяется снизу вверх - от нуля и далее. Таким образом, после загрузки системы физическая память «проецируется» на адресное пространство (от 0 до 2 Гб) и Windows не видя никаких конфликтов с адресами, зарезервированными под устройства, показывает вам весь установленный объем оперативной памяти.

Таким образом, пока объем оперативной памяти не превышает двух-трех гигабайт, в большинстве случаев никаких проблем не возникает, но как только этот рубеж превышается, возможны появления конфликтов. В четвертом гигабайте вполне вероятно возникновение ситуации, когда на один и тот же адрес будут претендовать как ячейка оперативной памяти, так и ячейка памяти устройства, например видеокарты. Если туда будут записаны данные ОЗУ, то это приведет к искажению изображения на экране, в случае же смены картинки на мониторе - исказится содержимое памяти. Чтобы не допустить таких конфликтов, операционная система не использует под ОЗУ ту часть физической памяти, которая отведена под адреса устройств.

После установки 4 Гб физической памяти, теоретически ее адреса займут все доступное адресное пространство для 32-битных систем. Но доступными останутся только те, которые попадут в незарезервированную устройствами область. В нашем примере, Windows будет считать, что объем установленной оперативной памяти равен 3,5 Гб.

Довольно долгое время никого особенно проблема четвертого гигабайта не волновала. Под нужды устройств использовалось совсем немного места - десятки килобайт для контроллеров дисков и сетевого адаптера, плюс несколько мегабайт под память видеокарты. Сами же объемы оперативной памяти были тоже небольшими, а значит, пересечение адресов используемых ОЗУ и устройствами в доступном адресном пространстве было практически невозможным.

Первый тревожный звонок прозвенел с появлением технологии AGP. На тот момент, видеоадаптеры с аппаратным ускорением трехмерной графики резко увеличили свою потребность в использовании собственной оперативной памяти. А AGP дала возможность графическим адаптерам использовать для собственных нужд часть памяти компьютера, в случае нехватки собственной. При этом вне зависимости от типа адаптера и количества у него собственной памяти, резервируется 256 Мбайт адресов, так как этот размер задается не самой видеоплатой, а оборудованием шины AGP. С приходом технологии PCI-Express ситуация принципиально не изменилась и размер резервируемого места остался тем же.

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

В некоторых случаях, правда, довольно редких, объем адресного пространства, отведённого под устройства, может достигать и двух гигабайт. В большинстве же случаев, заблокированным оказывается пространство от 500 Мб до 1 Гб.

Технология PAE

Так можно все-таки увидеть все 4 Гб памяти в 32-разрядной Windows? Да, если у вас установлена серверная ОС, например Windows Server 2003 или Server 2008.

В середине 90-х годов была разработана технология расширения доступного объема ОЗУ, получившая название PAE (Physical Address Extension). Впервые она была воплощена в процессорах Intel Pentium Pro, в результате чего они смогли использовать не 32-х, а 36-битную шину адреса, что теоретически позволяло использовать максимально не 4, а 64 Гб оперативной памяти.

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

Первое - процессор должен быть установлен в системную плату, оснащенную специальным диспетчером памяти, осуществляющим поддержку расширения физических адресов. Как правило, в микропрограмме BIOS Setup (БИОС), запускающейся сразу же после включения компьютера, существует специальная настройка, запрещающая или разрешающая переадресацию. В разных моделях материнских плат ее наименование может быть различным, например: Memory Remap, 64-bit OS, Memory Hole и другое. Точное название этой опции можно выяснить из руководства конкретной системной платы. Кстати, старые материнские платы могут вообще не поддерживать режим расширения адресов (это так же можно выяснить из инструкции).

Второе - в операционной системе должен быть включен режим PAE. Так вот в серверных системах он задействован по умолчанию. Поэтому, если у вас установлена 32-битная Windows подобного типа и не слишком старый компьютер (нет вышеуказанных ограничений по железу), то благодаря использованию технологии PAE, будут доступны все 4 Гб оперативной памяти.

Вполне логично, что данную технологию можно было бы применить в клиентских системах и ее применяют, но с некоторыми ограничениями.

Изначально, в первой версии Windows XP данный режим был отключен, так как в 2001 году средний объем ОЗУ в персональных компьютерах составлял 128 - 256 Мб, и никакой необходимости в его включении не было. Возможно, положение дел оставалось бы таким еще довольно долго, но в 2003 году компания Microsoftприступила к разработке второго пакета исправлений для XP, призванного существенно снизить количество уязвимостей в системе. Одним из нововведений, принесенным вторым сервис паком, стало использование аппаратных и программных технологий, предотвращающих запуск вредоносного кода путем дополнительной проверки содержимого памяти. На аппаратном уровне эту проверку выполняет процессор. При этом в компании Intel данная функция носит названия Execute Disable bit (запрет на выполнение), а в AMD - No-execute page-protection (защита страниц от выполнения).

Однако, что бы такая аппаратная защита стала возможна, необходим перевод процессора в режим PAE. Именно поэтому, начиная с Windows XP SP2, данный режим, при наличии подходящего процессора, включается автоматически. Но самое основное, что в 32-разрядных Windows XP с пакетами обновлений SP2 и SP3, а так же последующих Windows Vista и Windows 7, расширение физических адресов реализовано только частично. Эти системы не поддерживают 36-битную адресацию памяти и включенный режим PAE, не добавляет в их распоряжение ни байта адресного пространства, что делает невозможным переброску в верхние участки заблокированных адресов ОЗУ. Причина такой реализации - обеспечение совместимости с драйверами устройств.

Как мы помним, операционная система и все программы используют виртуальные адресные пространства и соответственно виртуальные адреса, которые впоследствии пересчитывается в физические. Процедура эта происходит в два этапа при выключенном режиме PAE и в три, при включенном расширении физических адресов. Драйверы, в отличие от обычных программ, работают напрямую с реальными адресами и для корректной работы в режиме PAE должны понимать усложненную процедуру трансляции адресов. Ведь сформированный драйвером 32-битный адрес после дополнительного (третьего) этапа трансляции может измениться и чтобы выданная им команда достигла цели, необходимо это учитывать.

Разработчики драйверов, предназначенных для серверных систем это принимали в расчет, а вот драйвера для клиентских Windows, устанавливаемых на обычные домашние ПК, во многих случаях были написаны без учета алгоритма работы с включенным PAE. Ведь так было проще - меньше времени уходило на программирование и тестирование, да и сам драйвер занимал меньше места. Тем более к тому моменту, до выхода Windows XP SP2, режим PAE в настольных системах не использовался, а оборудование, которое выпускалось для «персоналок», во многих случаев не было предназначено для серверов (например, звуковые платы). Так что никакой острой необходимости усложнять драйвера, и выпускать их серверные версии у производителей не было.

Именно с такими, неадаптированными драйверами, и возникли серьезные проблемы в Windows со вторым пакетом обновлений. Не смотря на то, что, общее количество драйверов, вызывавших сбои или крах системы, было не таким уж и большим, количество устройств их использующих исчислялось миллионами. В результате огромное количество пользователей после установки второго сервис-пака могли столкнуться с неприятностями и в дальнейшем отказаться от его использования. Поэтому Microsoft пришлось идти на компромисс.

Для обеспечения совместимости с некорректно написанными драйверами функционал PAE в Windows XP SP2 было решено обрезать. Выразилось это в том, что на третьем этапе трансляции адресов на выход передавались те же адреса, которые были поданы на вход. Таким образом, никакого расширения адресного пространства не происходило, и система продолжала оперировать теми же четырьмя гигабайтами.

Как уже упоминалось выше, такой обрезанный режим PAE унаследовали все современные 32-разрядные системы, включая Windows 7 и Windows 8. А вот если вы установите ради эксперимента на свой компьютер оригинальную Windows XP или XP SP1 и включите режим PAE (там он по умолчанию отключен), то увидите собственными глазами, что системе будет доступно все 4 Гб ОЗУ.

ОЗУ и 64-битные системы Windows

Казалось бы, что у 64-разрядных систем никаких проблем с установкой больших объемов памяти быть недолжно. Сколько ОЗУ установили, столько «операционка» и будет видеть. И все же здесь есть свои подводные камни.

Не смотря на то, что 64-битная Windows может использовать адресное пространство и оперативную память, объемы которых далеко превышают четыре гигабайта, правило размещения адресов устройств, здесь точно такое же, как и в 32-битных системах, то есть устройства занимают ячейки в четвертом гигабайте сверху вниз. Сохранение этого принципа опять же обеспечивает нормальную работоспособность любого оборудования, предназначенного для обычных ПК, которое должно с одинаковым успехом работать, как в 32-разрядной системе, так и в 64-разрядной.

Получается, что все ограничения, накладываемые на физическую память в 32-битной системе, должны остаться и в 64-битной, а значит, видимый объем оперативной памяти будет опять неполным, если ваша материнская плата не поддерживает переадресацию или она отключена в настройках. Конечно, такие системные платы уже не выпускаются, но все еще используются во многих компьютерах.

Еще один «сюрприз» вас может ожидать, если в материнскую плату будет установлен максимальный поддерживаемый объем памяти. Например, еще недавно популярный чипсет для бюджетных решений Intel G41 позволяет устанавливать до 8 Гб оперативной памяти. Как правило, в этом случае, на системной плате разведены 33 адресные линии (2 33 = 8 589 934 592 байт = 8 Гб). С точки зрения производителя это вполне объяснимо - зачем делать шину более высокой разрядности, если набор системной логики все равно не поддерживает большие объемы памяти? Но из-за этого, даже если контроллер памяти и может перекинуть заблокированный участок ОЗУ в девятый гигабайт, сделать это у него не получиться, так как для этого потребуется 34-разрядная шина, а не 33-х, как в нашем случае. В итоге пользователю будет доступно только семь с небольшим гигабайт ОЗУ. Тоже самое касается плат поддерживающих 16 и 32 Гб.

В некоторых случаях, даже при работающей переадресации в 64-битной системе несколько десяткой или сотен мегабайт могут все равно оказаться заблокированы системой под оборудование. Виной тому могут стать технологические особенности системной платы, которая в любой ситуации будет резервировать какой-то объем памяти, например, для нужд встроенного видеоадаптера или RAID-контроллера.

Заключение

В заключение давайте сделаем несколько основополагающих выводов, исходя из всего вышесказанного.

Хотя 32-битные системы Windows чисто теоретически могут использовать до 4 Гб оперативной памяти, некоторый ее объем всегда оказывается зарезервированным под нужды устройств, после чего в доступности оказывается обычно не более 3-3,5 Гб.

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

В клиентских 32-разрядных версиях Windowsрежим PAE был урезан для обеспечения совместимости с драйверами устройств из-за чего в WindowsXP SP2/SP3, Windows Vista, Windows 7, а так же Windows 8 увидеть все максимально допустимые четыре гигабайта ОЗУ невозможно и исправить это нельзя.

Таким образом, если вы собираетесь установить в компьютер более трех гигабайт оперативной памяти, то необходимо использовать 64-битные версии операционных систем, которые позволяют видеть до 192 Гб ОЗУ и имеют неурезанный режим PAE. В противном случае весь остальной объем памяти будет недоступен для использования.

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

Думаю, ни для кого не является секретом, что оперативная память — это важный компонент геймерской системы, и на быстродействие в играх влияют сразу несколько параметров ОЗУ. Например, не так давно лаборатория 3DNews выяснила, что центральные процессоры AMD Ryzen очень чувствительны к частоте DDR4. Тестирование показало: использование быстрой памяти DDR4-3200 в сравнении со стандартной DDR4-2133 при одинаковых таймингах увеличивает FPS в играх на 12-16% в зависимости от приложения. Поэтому, если вы хотите выжать максимум из своей системы, покупка быстрого комплекта ОЗУ — это один из самых действенных вариантов.

На производительность влияет не только частота, но и задержки. И все же самый важный параметр оперативной памяти — это объем. Если в случае использования медленного комплекта мы лишаемся единиц FPS, то при нехватке определенного количества гигабайтов игра либо будет тормозить, либо не запустится вовсе. Поэтому мы решили выяснить, сколько ОЗУ необходимо игровому компьютеру в 2017 году. Очевидно, что основная «баталия» развернется между комплектами объемом 8 и 16 Гбайт.

Наглядный пример — пользователь произвел апгрейд своего компьютера, дополнив имеющуюся конфигурацию видеокартой уровня GeForce GTX 1060 3 Гбайт. Теперь его системный блок полностью соответствует рекомендуемым требованиям Watch_Dogs 2, в которую так хотелось поиграть. Однако даже без применения максимальных настроек качества графики времяпрепровождение в любимой «песочнице» было омрачено то и дело появляющимися микрозависаниями. И вроде GeForce GTX 1060 отлично справляется со своей работой, так как средний показатель держится в районе 50 FPS, но все впечатление портят эти просадки! Оказывается, к возникновению визуально заметного падения частоты кадров причастна нехватка оперативной памяти, потому что добавление еще 8 Гбайт отчасти решило эту проблему — при тех же настройках и с той же видеокартой играть стало комфортнее.

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

⇡ Современные игровые платформы

Под определение «игровой компьютер» попадает очень большое число конфигураций. Например, в ежемесячной рубрике « » рассматриваются десять различных систем. В состав самой недорогой входят Pentium G4560, GeForce GTX 1060 3 Гбайт и 8 Гбайт DDR4. Использование такого объема оперативной памяти — самый распространенный вариант, если верить официальной статистике игрового клиента Steam. Но современные платформы позволяют устанавливать 64 и даже 128 Гбайт ОЗУ.

Актуальные игровые платформы
Intel AMD
Сокет LGA1155 LGA2011 LGA1150 LGA2011-v3 LGA1151 AM3+ FM2/2+ AM4
Год поступления в продажу 2011 год 2011 год 2013 год 2014 год 2015 год 2011 год 2012 год 2017 год
Поддерживаемые процессоры Sandy Bridge, Ivy Bridge Sandy Bridge-E,
Ivy Bridge-E
Haswell, Haswell Refresh и Devil"s Canyon, Broadwell Haswell-E, Broadwell-E Skylake, Kaby Lake Zambezi, Vishera Trinity, Richland, Kaveri, Godavari (Kaveri Refresh) Ryzen, AMD 7th Generation A-series/Athlon
Контроллер памяти DDR3-1066/1333 DDR3-1066/1333
/1600/1866
DDR3-1333/1600 DDR4-2133/2400 DDR4-1866/2133/
2400, DDR3L-1333/1600
DDR3-1066/1333/
1600/1866
DDR3-1600/1866/
2400
DDR4-2133/2400/
2666
Встроенный, двух-канальный Встроенный, четырех-канальный Встроенный, двух-канальный Встроенный, четыре-хканальный Встроенный, двух-
канальный
Встроенный, двух-канальный Встроенный, двух-канальный Встроенный, двух-канальный
Максимальный объем оперативной памяти 32 Гбайт 64 Гбайт 32 Гбайт Haswell-E— 64 Гбайт Broadwell-E — 128 Гбайт 64 Гбайт 32 Гбайт 64 Гбайт 64 Гбайт

Даже сейчас, без тестирования, можно смело заявить: указанный максимальный объем оперативной памяти избыточен для игровых конфигураций, хотя сфера развлечений и является в последнее время наиболее активным двигателем компьютерного прогресса. Как уже было сказано, большинство пользователей устанавливают в свои системы 8 или 16 Гбайт. В таблице перечислены как самые современные (LGA1151, LGA2011-v3, AM4), так и проверенные временем платформы, которые вполне можно отнести к разряду игровых в 2017 году. В большинстве случаев центральные процессоры AMD и Intel используют двухканальные контроллеры оперативной памяти. Это значит, что на материнских платах под соответствующую платформу используется либо два слота DIMM, либо четыре. А у плат с гнездом LGA2011 и LGA2011-v3 четыре или восемь разъемов для установки ОЗУ соответственно. Для процессоров Haswell-E и Broadwell-E есть и «экзотическое» исключение из правил — ASRock X99E-ITX/ac.

Двухканальный режим встроенного в центральный процессор контроллера памяти подразумевает использование четного количества модулей. Для того чтобы со временем спокойно нарастить объем ОЗУ, лучше использовать материнскую плату с четырьмя слотами DIMM. Так, мы можем приобрести комплект памяти объемом 16 Гбайт, состоящий из двух модулей по 8 Гбайт, а со временем докупить еще два модуля с аналогичными характеристиками. Некоторые материнки располагают всего парой разъемов для установки оперативки — это либо совсем бюджетные платы (например, на базе чипсетов H110, B250 и A320 для процессоров Kaby Lake и Ryzen), либо устройства форм-фактора mini-ITX, либо эксклюзивные оверклокерские решения, такие как ASUS Maximus IX Apex. Данные устройства поддерживают вдвое меньший объем ОЗУ: 32 Гбайт для процессоров Skylake, Kaby Lake и Ryzen; 16 Гбайт для процессоров Haswell, Broadwell, Sandy Bridge, Ivy Bridge и Vishera. Учитывайте этот момент при апгрейде или при сборке системного блока с нуля.

⇡ Тестовый стенд

Во время всех испытаний использовалась платформа LGA1151 вместе с процессором Core i7-7700K, разогнанным до 4,5 ГГц. Менялись видеокарты, оперативная память и накопители. Полный перечень комплектующих представлен в таблице.

Конфигурация тестового стенда
Центральный процессор Intel Core i7-7700K @4,5 ГГц
Материнская плата ASUS MAXIMUS IX Hero
Оперативная память Kingston HyperX Predator HX430C15PB3K4/64, DDR4-3000, 4 × 16 Гбайт
Kingston HyperX Fury HX421C14FB2K2/16, DDR4-2133, 2 × 8 Гбайт
Накопители Western Digital WD1003FZEX, 1 Тбайт
Samsung 850 Pro
Видеокарты ASUS GeForce GTX 1060 (DUAL-GTX1060-3G), 3 Гбайт
ASUS Radeon RX 480 (DUAL-RX480-O4G), 4 Гбайт
Блок питания Corsair AX1500i, 1500 Вт
Процессорный кулер Noctua NH-D9DX
Корпус Lian Li PC-T60A
Монитор NEC EA244UHD
Операционная система Windows 10 Pro x64
ПО для видеокарт
AMD Crimson ReLive Edition 17.4.2
NVIDIA GeForce Game Ready Driver 381.65
Дополнительное ПО
Удаление драйверов Display Driver Uninstaller 17.0.6.1
Измерение FPS Fraps 3.5.99
FRAFS Bench Viewer
Action! 2.3.0
Разгон и мониторинг GPU-Z 1.19.0
MSI Afterburner 4.3.0
Дополнительное оборудование
Тепловизор Fluke Ti400
Шумомер Mastech MS6708
Ваттметр watts up? PRO

⇡ Потребление оперативной памяти в современных играх

Определить, сколько оперативной памяти потребляют современные игры, не так сложно. Существует большое количество диагностических утилит. Но важно понимать, что объем используемого ОЗУ зависит от нескольких параметров, а потому может заметно отличаться на разных системах. Так, вместе с запуском игр не перестает работать и различный софт.

Например, открытие всего десяти вкладок Chrome приводит к увеличению потребления оперативной памяти на 1,5 Гбайт. Аппетиты браузера Google уже давно стали «мемом», но давайте не будем забывать про постоянно активные мессенджеры, антивирусы, драйверы и прочие утилиты, которые загружаются вместе с операционной системой.

Недавно я провел сравнительное тестирование GeForce GTX 1060 3 Гбайт и Radeon RX 470 4 Гбайт. Среди пользователей бытует мнение, что дополнительный гигабайт видеопамяти — это еще один довод в пользу графического адаптера AMD. Небольшой эксперимент показал, что из двенадцати игр ровно половина потребляет больше четырех гигабайт видеопамяти в разрешении Full HD. В стенде использовался ускоритель GeForce GTX 1080 с 8 Гбайт GDDR5. Получается, что в случае нехватки видеопамяти все данные, которые не поместились в ячейки GDDR5, будут помещены в ОЗУ. Некоторые игры сразу же информируют пользователя о превышении лимита видеопамяти. Некоторые — GTA V, HITMAN, Battlefield 1 — элементарно не дадут выставить более высокое качество графики, пока пользователь сам не снимет специальный «предохранитель» в меню с настройками. Поэтому для более детального изучения вопроса необходимо использовать несколько видеокарт. Мой выбор остановился на трех ходовых моделях NVIDIA: GeForce GTX 1060 с 3 и 6 Гбайт GDDR5, а также GeForce GTX 1080.

Настройки графики в играх
API Качество Полноэкранное сглаживание
1920 × 1080 / 2560 × 1440 / 3840 × 2160
1 «Ведьмак-3: Дикая охота», Новиград и окрестности DirectX 11 Макс. качество, NVIDIA HairWorks вкл AA
2 Mass Effect Andromeda, первое задание Макс. качество Временное сглаживание
3 Ghost Recon Wildlands, встроенный бенчмарк Макс. качество SMAA + FXAA
4 GTA V, город и окрестности Макс. качество 4 × MSAA + FXAA
5 Rise of the Tomb Raider, советская база Макс. качество SMAA
6 Watch_Dogs 2, город и окрестности Ультра, HBAO+ Временное сглаживание 2 × MSAA
7 Fallout 4, Даймонд-сити и окрестности Макс. качество, текстуры высокого разрешения, осколки от пуль выкл. TAA
8 HITMAN, встроенный бенчмарк DirectX 12 Макс. качество SMAA
9 Total War: WARHAMMER, встроенный бенчмарк Макс. качество 4 × MSAA
10 Battlefield 1, миссия «Работа для молодых» Ультра TAA
11 Deus Ex: Mankind Divided, комплекс «Утулек» Макс. качество 2 × MSAA
12 Sid Meier’s Civilization VI, встроенный бенчмарк Ультра 8 × MSAA
13 Star Wars Battlefront, карта «Битва на Эндоре» Макс. качество TAA
14 Tom Clancy"s The Division, встроенный бенчмарк Макс. качество SMAA
15 DOOM, миссия OИК Vulkan Ультра TSSAA 8TX

Потребление оперативной памяти измерялось в пятнадцати приложениях. На графиках отображен максимальный показатель загрузки, который был зафиксирован после 10 минут произвольного игрового процесса. Для большей наглядности результаты округлены. Показатели загрузки ОЗУ фиксировались при помощи программы MSI Afterburner с частотой опроса 100 мс. Среди прочих программ при запуске игр активными были только клиенты Steam, Origin и Uplay, а также «Защитник Windows», FRAPS и MSI Afterburner.

Высказанное ранее предположение стало фактом — уже в разрешении Full HD мы видим, что с применением 3-гигабайтной версии GeForce GTX 1060 планку в 8 Гбайт ОЗУ преодолели девять игр из пятнадцати. То есть больше половины. Те же самые игры, запускаемые на стендах с GeForce GTX 1060 6 Гбайт и GeForce GTX 1080, оказались менее «прожорливыми» по части оперативной памяти.

При увеличении разрешения тенденция сохранилась — уже тринадцать из пятнадцати игр потребляли больше 8 Гбайт оперативной памяти в стенде с установленной GeForce GTX 1060 3 Гбайт. Стабильно больше 10 Гбайт ОЗУ потреблялось в семи проектах. Заметно возросла загрузка оперативки и в случае использования в стенде GeForce GTX 1060 6 Гбайт. Значит, играм при заданных нами настройках качества графики уже недостаточно шести гигабайт видеопамяти.

Тестирование в разрешении Ultra HD проводилось только с участием GeForce GTX 1080, потому что использовать версии GeForce GTX 1060 в таком разрешении нет никакого смысла — графические процессоры этих видеокарт элементарно не справятся с возросшей нагрузкой.

Результаты оказались вполне прогнозируемыми. Можно смело констатировать: многие современные ААА-проекты на близких к максимальным настройках качества графики потребляют больше 8 Гбайт оперативной памяти. Кроме того, замеры в Rise of the Tomb Raider, Watch_Dogs 2, Deus Ex: Mankind Divided и Mass Effect Andromeda демонстрируют отсутствие серьезного запаса прочности при наличии в системе и 16 Гбайт ОЗУ. К тому же тестирование проводилось с минимумом активных приложений в Windows 10. На мой взгляд, есть все предпосылки к тому, что в скором времени появятся проекты, которым будет недостаточно 16 Гбайт оперативной памяти при максимальных или близких к ним настройках качества графики.

Думаю, многие уже обратили внимание на тот факт, что я рассмотрел всего один сценарий — игры на максимальных (или близких к ним) настройках качества графики. Однако большинство геймеров пользуются менее производительными видеокартами, а потому используют различные режимы качества.

Компьютерные игры тем и хороши, что, как правило, обладают большим количеством настроек, которые ухудшают или улучшают качество выдаваемой картинки. Например, в Deus Ex: Mankind Divided заложено пять заранее запрограммированных режимов: «Низкие», «Средние», «Высокие», «Очень высокие» и «Ультра». Подобными категориями пользуются многие разработчики. Обратите внимание, что достаточно тяжело (иногда даже нереально) на глаз определить, где выставлено высокое качество, а где — очень высокое. Таким образом, выкручивать ползунки до максимума в ряде игр нет никакого смысла. А видеопамяти и ОЗУ при этом используется заметно меньше.

Из списка игр, которые на максимальных (или близких к ним) настройках качества потребляли больше всего оперативной памяти, я выбрал пять приложений: Watch_Dogs 2, Mass Effect Andromeda, Rise of the Tomb Raider, Deus Ex: Mankind Divided и Ghost Recon Wildlands. Используя все те же видеокарты NVIDIA, я измерял потребление оперативной памяти при активации заранее заготовленных разработчиками режимов. В некоторых играх (Watch_Dogs 2 и Ghost Recon Wildlands) при изменении общего качества графики автоматически меняется и сглаживание. В других приложениях параметр антиалиасинга необходимо задавать отдельно. Собственно говоря, в Mass Effect Andromeda, Rise of the Tomb Raider, Deus Ex: Mankind Divided для этой части эксперимента сглаживание не использовалось вообще. Результаты занесены в сводную таблицу.

Зеленым цветом выделены области, в которых зафиксирован отрадный факт — игры при активации определенного режима качества графики потребляют меньше 8 Гбайт оперативной памяти. Таблица наглядно показывает, что выставление параметров «Высокий» и «Средний» подходит для видеокарт, у которых видеопамяти 4 Гбайт и меньше, для графических адаптеров с 6+ Гбайт GDDR5 — тем более.

Заметно и резкое падение потребления ОЗУ в Rise of the Tomb Raider при использовании 3-гигабайтной версии GeForce GTX 1060. Мы видим логичное подтверждение тому факту, что при использовании режима качества картинки «Высокое» игра требует меньше видеопамяти, чем на «максималках».

Конечно же, сказывается на потреблении видеоОЗУ и системной памяти и отключение сглаживания, которое должно устранить неровности (лесенки) по краям объектов. Антиалиазинг — это один из параметров, критичный к объему видеопамяти. Поэтому в игровой системе с 8 Гбайт ОЗУ и графическим ускорителем с 2, 3 или 4 Гбайт видеопамяти есть смысл выключать сглаживание или же использовать «легкие» режимы, если такие поддерживаются приложением.

Текстуры — это второй параметр, критичный к объему видеопамяти, а следовательно, и оперативной памяти. Использование текстур низкого разрешения заметно портит изображение, но в то же время особой разницы между режимами «Высокое» и «Очень высокое» в Rise of the Tomb Raider не наблюдается (в других играх — тоже). Поэтому при нехватке видеопамяти и ОЗУ и этим параметром вполне можно пожертвовать ради достижения комфортного фреймрейта.

Максимальное потребление оперативной памяти (NVIDIA GeForce GTX 1060 3 Гбайт), Мбайт
Качество текстур
Rise of the Tomb Raider (общие настройки качества — максимальные, но без сглаживания) Watch_Dogs 2 (общие настройки качества — режим "Ультра", но без сглаживания) Deus Ex: Mankind Divided (общие настройки качества — максимальные, но без сглаживания)
Очень высокое 11600 Ультра 11000 Ультра 11000
Высокое 6900 Высокое 9700 Очень высокое 9600
Среднее 6400 Среднее 8800 Высокое 7800
Низкое 6200 Низкое 7800 Среднее 7100
Низкое 6900
Тени
Очень высокое 10700 HFTS 11600 Очень высокое 11000
Высокое 10500 PCSS 11000 Высокое 10900
Среднее 10300 Ультра 11000 Среднее 10800
Выкл. 10300 Очень высокое 11000
Высокое 10400
Среднее 10400
Низкое 10300

Настроек изображения в компьютерных играх очень много. Разработчики тесно сотрудничают с производителями железа — AMD, NVIDIA и Intel, а потому приложения изобилуют разным количеством всевозможных опций. Например, в Rise of the Tomb Raider реализован режим PureHair, который заметно преображает прически персонажей этой игры. А еще используются различные технологии преграждения окружающего света (SSAO, HBAO, HBAO+, VXAO и так далее), которые затемняют впадины и углы, добавляя им визуальной глубины.

Все эти настройки в той или иной степени влияют на потребление видеопамяти и ОЗУ. Однако не так сильно, как сглаживание, тени и размер текстур.

Вроде бы ответ на основной вопрос получен: замеры потребления оперативной памяти показывают, что 16 Гбайт — наше все, если вы планируете играть с максимальными настройками качества графики. С другой стороны, есть доказательство того, что и 8 Гбайт ОЗУ все еще достаточно для любого современного проекта — требуется лишь снизить качество изображения. Чаще всего достаточно выставить режим «Высокое» или «Среднее». По мнению автора, картинка при этом будет все равно вполне приемлемого уровня. Однако интересно узнать, как поведут себя типовые игровые системы при нехватке ОЗУ? Этому вопросу посвящена вторая часть эксперимента.

Оперативная память (ОЗУ) – это память компьютера, которая отвечает за быстрый обмен пользовательских и системных данных с процессором. ОЗУ является не менее важным устройством в системном блоке, чем материнская плата или процессор. Правильно выбрать оперативную память – очень сложно, так как их достаточно много видов и у них много важных особенностей. Именно поэтому в данной статье мы постараемся рассказать вам всё то, что вам необходимо знать для правильного выбора ОЗУ.

Особенности ОЗУ

Для чего нужна оперативная память

Предназначение ОЗУ - хранить использующуюся пользователем или программами в данный момент информацию. Оперативная память обменивается данными с процессором непосредственно или через кэш. Быстродействие ОЗУ в десятки или даже сотни раз выше, чем скорость работы жёсткого диска. Приведем пример: скорость работы DDR3 – 12800 Мб/сек., когда скорость HDD – 80 Мб/сек. В данном случае разница в 160 раз, что согласитесь весьма и весьма существенно.

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

Почему важен объём ОЗУ?

Объем оперативной памяти напрямую влияет на быстродействие отдельных программ и системы в целом. Чем больше объём оперативной памяти, тем меньше придётся системе обращаться к жёсткому диску, а соответственно не будет никаких зависаний и небольших подтормаживаний.

На практике оперативная память играет роль некого буфера между жёстким диском и процессором. К примеру, вы решили поиграть в игру. Когда игра загрузилась - вы видите игровое меню, а это значит, что данные с HDD были перенесены в RAM. Теперь вы работаете непосредственно с оперативной памятью. Далее загружаются уровни игры и ваш профиль – это также выгрузка данных с HDD в RAM. Сам игровой процесс – это взаимодействие оперативной памяти с процессором.

То же самое происходит, когда вы работаете с программами. От количества оперативной памяти будет зависеть то, со сколькими документами вы сможете работать одновременно, сколько вкладок в браузере сможете открывать без зависаний. Если у вас большой объём ОЗУ, тогда можно открывать всё вышеперечисленное в паре с игрой, да и еще в небольшом окошке в углу экрана можно смотреть фильм. Большой объём ОЗУ позволяет вам смотреть фильмы высокого разрешения без подвисаний, а также использовать различные графические эффекты.

Выбор оперативной памяти

Тип оперативной памяти

Подбирая тип ОЗУ, обязательно обратите внимание на особенности вашей материнской платы, так как именно она будет диктовать вам условия. Обычно на сайте производителя вы найдете исчерпывающую информацию о том, какой тип ОЗУ поддерживает материнская плата и другие её особенности, под которые будет производиться выбор памяти.

Все современные модели материнских плат поддерживают тип оперативной памяти DDR3. Важно отметить, что ОЗУ делятся на: компьютерные и для ноутбука. То есть для компьютера используются длинные панельки, а для ноутбука короткие, поэтому они друг к другу не подходят.

Какой объём оперативной памяти выбрать

Если речь идет о стационарном компьютере, то сегодня самый оптимальный объём оперативной памяти – 8 Гб. В тандеме с хорошо сбалансированными комплектующими их вполне хватит для большинства игр, не говоря уже о различных программах и работе с мультимедиа контентом.

Ограничением в выборе объёма ОЗУ может стать , так как не все они поддерживают большие объёмы оперативной памяти. Именно это нужно узнать в первую очередь в характеристиках «материнки».

Что касается ноутбука, то для начала изучите его параметры: количество слотов для оперативной памяти и поддерживающий объём. Таким образом, вы должны также узнать есть ли свободные слоты в материнской плате для установки дополнительных панелек ОЗУ, а также будет ли поддерживаться материнской платой данный объём оперативной памяти. Для большинства ноутбуков вполне достаточным будет 4 Гб оперативной памяти.

Также при выборе ОЗУ помните о том, что 32-ух битные операционные системы не поддерживают более 4-ёх Гб оперативной памяти, а то и меньше. Поэтому смысла увеличивать её объём – нет. Покупать ОЗУ большего объёма стоит в том случае, если вы установите 64-ёх битную операционную систему, которая поддерживает вплоть до 64-ёх Гб оперативной памяти. Но для этого у вас должен быть мощный компьютер.

Количество планок

Компьютеры, в которых общий объём оперативной памяти разделён на равное количество планок, под имеющиеся для них слоты – это самый лучший вариант. Две планки по 4 Гб лучше, чем одна на 8 Гб. Дело в том, что материнские платы имеют поддержку двух- и более канальных режимов работы с оперативной памятью. В теории, активировав этот режим, пропускная способность увеличивается в 2 раза. На практике немного меньше, но это довольно ощутимо. Поэтому старайтесь рассредоточить общий объём ОЗУ по слотам, но при этом будьте расчётливыми.

Рано или поздно, а вам нужно будет делать апгрейд компьютера, поэтому дайте себе возможность в будущем увеличить и объём ОЗУ. Например, если у вас 4 слота для оперативной памяти - купите две панельки по 4 Гб, в будущем вы сможете приобрести ещё 2 по 4 Гб – и таким образом правильно увеличите объём. Если же вы купите планки меньшего объёма – то впоследствии вам придётся их положить в коробку и купить новые, так как толку от них не будет. Больший объём планок ОЗУ приветствуется, но нелогичен.

Планки ОЗУ могут продаваться как по одной, так и в комплекте. Покупать ОЗУ в комплекте выгоднее, чем по одной.

Тактовая частота, пропускная способность и напряжение питания

Когда вы будете выбирать ОЗУ, обратите внимание на то, чтобы тактовая частота, пропускная способность и напряжение питания поддерживались материнской палатой. Кстати, чем выше значение перечисленных параметров, тем мощнее оперативная память.

Радиатор

Эксперты сайта сайт настоятельно рекомендуют отдать предпочтение моделям оперативной памяти с радиатором. Радиатор ОЗУ – это металлическая пластина, которая находится на микросхемах панелек. Радиаторы используются для улучшения теплоотдачи, преимущественно в моделях, работающих на высокой частоте.

Какой фирмы лучше всего покупать оперативную память

Очень важна и фирма, которая выпускает ОЗУ. На сегодняшний день отлично проявляют себя в работе панельки ОЗУ от таких производителей как:


  • Corsair;

  • Kingston;

  • Hynix;

  • Patriot Memory;

  • Transcend.

При выборе оперативной памяти старайтесь, чтобы все имеющиеся панельки были не только одной фирмы, но и одной модели и с одинаковыми параметрами, для качественной и синхронной работы.

Цена

Оперативная память в сравнении с другими комплектующими, такими как: , материнская плата, и прочими, стоит довольно дешево. Пара планок DDR3 по 4 Гб (общим объёмом в 8 Гб) стоит от 2500 до 3000 рублей. Если покупать планки отдельно, то они обойдутся немного дороже.

Не нужно покупать только что вышедшие модели ОЗУ (например, 32 Гб DDR3). Во-первых, в среднем один мегабайт памяти в таком случае стоит дороже, во-вторых, вы вряд ли найдете способ задействовать весь объем памяти. Как правило, 8 Гб оперативной памяти вполне достаточно для комфортной работы любому пользователю.

Оперативная память является одним из наиболее важных компонентов персонального компьютера. От ее количества зависит быстродействие ПК, а также скорость обработки различных запросов центральным процессором. Если оперативной памяти становится слишком мало, то частично решить проблему может виртуальная память.

Максимально поддерживаемый объем оперативной памяти

При выборе и покупке определенного количества оперативной памяти пользователю стоит учитывать ее максимальное количество, которое способна поддерживать операционная система и материнская плата. Обычно проблема заключается именно в ОС. Например, Windows XP поддерживает только до 4 гигабайт оперативной памяти (при условии, что установлена 32-х разрядная версия). В том случае если ее будет больше, то ОС просто не будет ее считывать, соответственно, остальная ее часть не будет использоваться. Что касается 64-х разрядных версий, то они способны поддерживать до 128 Гб оперативной памяти. К сожалению, количество максимально поддерживаемой ограничивается еще и версией операционной системы, а не только ее разрядностью.

Кроме того, небольшая часть оперативной памяти расходуется еще и на используемые устройства. То есть если у пользователя установлена 32-х разрядная операционная система Windows XP и 4 гигабайта оперативной памяти, то приблизительно 400-500 Мб будет уходить на обеспечение работоспособности другим устройствам.

Что касается современных операционных систем семейства Windows, то они способны работать при наличии 192 гигабайт оперативной памяти, а Windows Server 2008 поддерживает до 2 терабайт. Подобное расширение стало возможно благодаря использованию виртуального адресного пространства. Каждый пользователь персонального компьютера может более подробно ознакомиться с максимально поддерживаемым количеством оперативной памяти каждой версии ОС Windows на их официальном сайте. В целом, для хорошей работоспособности персонального компьютера сегодня требуется не меньше 4 гигабайт оперативной памяти (при условии если компьютер будет использоваться в качестве своеобразной мультимедийной станции). Если на персональном компьютере будут выполняться только офисные задачи и использоваться только офисные приложения, то вполне хватит 1-2 гигабайт оперативной памяти. Конечно, если пользователь будет использовать ПК как для игр, так и для офисных приложений, то количество оперативной памяти лучше довести до возможного максимума.



В продолжение темы:
Android

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