Ускоряем память или меньше не значит лучше

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




Уже прошли те времена, когда доступ к настройкам подсистемы памяти в BIOS Setup был закрыт от лишних глаз. Сейчас их столько, что даже подготовленный пользователь может растеряться при таком разнообразии, не говоря уже о простом "юзере". Мы постараемся максимально разъяснить действия, необходимые для повышения производительности системы посредством простейших настроек основных таймингов и, при необходимости, некоторых других параметров. В данном материале мы рассмотрим платформу Intel с памятью DDR2 на базе чипсета от той же компании, и основной целью будет показать не то, насколько поднимется быстродействие, а то, как именно его необходимо поднять. Что касается альтернативных решений, то для памяти стандарта DDR2 наши рекомендации практически полностью применимы, а для обычной DDR (меньшие частота и задержки, и большее напряжение) есть некоторые оговорки, но в целом принципы настройки те же.

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

На данный момент времени самым актуальным типом памяти является DDR2-800, но он появился недавно и пока только набирает обороты. Следующий тип (вернее, предыдущий), DDR2-667, является одним из самых распространенных, а DDR2-533 уже начинает сходить со сцены, хотя и присутствует на рынке в должном количестве. Память DDR2-400 нет смысла рассматривать, так как она практически уже исчезла из обихода. Модули памяти каждого типа имеют определенный набор таймингов, а для большей совместимости с имеющимся разнообразием оборудования они немного завышены. Так, в SPD модулей DDR2-533 производители обычно указывают временные задержки 4-4-4-12 (CL-RCD-RP-RAS), в DDR2-667 - 5-5-5-15 и в DDR2-800 - 5-5-5-18, при стандартном напряжении питания 1,8-1,85 В. Но ничто не мешает их снизить для увеличения производительности системы, а при условии поднятия напряжения всего до 2-2,1 В (что для памяти будет в пределах нормы, но охлаждение все же не помешает) вполне возможно установить еще более агрессивные задержки.

В качестве тестовой платформы для наших экспериментов мы выбрали следующую конфигурацию:
  • Материнская плата: ASUS P5B-E (Intel P965, BIOS 1202)
  • Процессор: Intel Core 2 Extreme X6800 (2,93 ГГц, 4 Мб кэш, FSB1066, LGA775)
  • Система охлаждения: Thermaltake Big Typhoon
  • Видеокарта: ASUS EN7800GT Dual (2хGeForce 7800GT, но использовалось только "половина" видеокарты)
  • HDD: Samsung HD120IJ (120 Гб, 7200 об/мин, SATAII)
  • Привод: Samsung TS-H552 (DVD+/-RW)
  • Блок питания: Zalman ZM600-HP


В качестве оперативной памяти использовалось два модуля DDR2-800 объемом 1 Гб производства Hynix (1GB 2Rx8 PC2-6400U-555-12), благодаря чему появилась возможность расширить количество тестов с различными режимами работы памяти и комбинациями таймингов.

Приведем перечень необходимого ПО, позволяющего проверить стабильность системы и зафиксировать результаты настроек памяти. Для проверки стабильной работы памяти можно использовать такие тестовые программы как Testmem, Testmem+, S&M, Prime95, в качестве утилиты настройки таймингов "на лету" в среде Windows применяется MemSet (для платформ Intel и AMD) и A64Info (только для AMD). Выяснение оправданности экспериментов над памятью можно осуществить архиватором WinRAR 3.70b (имеется встроенный бенчмарк), программой SuperPI, рассчитывающая значение числа Пи, тестовым пакетом Everest (также есть встроенный бенчмарк), SiSoft Sandra и т.д.

Основные же настройки осуществляются в BIOS Setup. Для этого необходимо во время старта системы нажать клавишу Del, F2 или другую, в зависимости от производителя платы. Далее ищем пункт меню, отвечающий за настройки памяти: тайминги и режим работы. В нашем случае искомые настройки находились в Advanced/Chipset Setting/North Bridge Configuration (тайминги) и Advanced/Configure System Frequency (режим работы или, проще говоря, частота памяти). В BIOS'е других плат настройки памяти могут находиться в "Advanced Chipset Features" (Biostar), "Advanced/Memory Configuration" (Intel), "Soft Menu + Advanced Chipset Features" (abit), "Advanced Chipset Features/DRAM Configuration" (EPoX), "OverClocking Features/DRAM Configuration" (Sapphire), "MB Intelligent Tweaker" (Gigabyte, для активации настроек необходимо в главном окне BIOS нажать Ctrl+F1) и т.д. Напряжение питания обычно изменяется в пункте меню, отвечающем за оверклокинг и обозначается как "Memory Voltage", "DDR2 OverVoltage Control", "DIMM Voltage", "DRAM Voltage", "VDIMM" и т.д. Также у различных плат от одного и того же производителя настройки могут отличаться как по названию и размещению, так и по количеству, так что в каждом отдельном случае придется обратиться к инструкции.

Если нет желания поднимать рабочую частоту модулей (при условии возможностей и поддержки со стороны платы) выше ее номинальной, то можно ограничиться уменьшением задержек. Если да, то вам скорее придется прибегнуть к повышению напряжения питания, равно как и при снижении таймингов, в зависимости от самой памяти. Для изменения настроек достаточно необходимые пункты перевести из режима "Auto" в "Manual". Нас интересуют основные тайминги, которые обычно находятся вместе и называются следующим образом: CAS# Latency Time (CAS, CL, Tcl, tCL), RAS# to CAS# Delay (RCD, Trcd, tRCD), RAS# Precharge (Row Precharge Time, RP, Trp, tRP) и RAS# Activate to Precharge (RAS, Min.RAS# Active Time, Cycle Time, Tras, tRAS). Также есть еще один параметр - Command Rate (Memory Timing, 1T/2T Memory Timing, CMD-ADDR Timing Mode) принимающий значение 1T или 2T (в чипсете AMD RD600 появилось еще одно значение - 3Т) и присутствующий на платформе AMD или в чипсетах NVidia (в логике от Intel он заблокирован в значении 2T). При снижении этого параметра до единицы увеличивается быстродействие подсистемы памяти, но снижается максимально возможная ее частота. При попытке изменить основные тайминги на некоторых материнских платах могут ожидать "подводные камни" - отключив автоматическую настройку, мы тем самым сбрасываем значения подтаймингов (дополнительные тайминги, влияющие как на частоту, так и на быстродействие памяти, но не так значительно, как основные), как, например, на нашей тестовой плате. В этом случае придется воспользоваться программой MemSet (желательно последней версии) и просмотреть для каждого режима работы памяти значения подтаймингов (субтаймингов), чтобы установить аналогичные в BIOS'e.



Если названия задержек не совпадут, то тут хорошо проявляет себя "метод научного тыка". Незначительно изменяя дополнительные настройки в BIOS Setup, проверяем программой, что, где и как изменилось.

Теперь для памяти, функционирующей на частоте 533 МГц, можно попытаться вместо стандартных задержек 4-4-4-12 (или какого-либо другого варианта) установить 3-3-3-9 или даже 3-3-3-8. Если с такими настройками система не стартует, поднимаем напряжение на модулях памяти до 1,9-2,1 В. Выше не рекомендуется, даже при 2,1 В желательно использовать дополнительное охлаждение памяти (простейший вариант - направить на них поток воздуха от обычного кулера). Но сперва необходимо провести тесты при стандартных настройках, например в очень чувствительном к таймингам архиваторе WinRAR (Tools/Benchmark and hardware test). После изменения параметров проверяем снова и, если результат удовлетворяет, оставляем как есть. Если нет, как это произошло в нашем тестировании, то при помощи утилиты MemSet в среде Windows (эта операция может привести либо к зависанию системы, либо, что еще хуже, полной неработоспособности ее) или же средствами BIOS Setup поднимаем на единицу RAS# to CAS# Delay и снова тестируем. После можно попытаться уменьшить на единицу параметр RAS# Precharge, что немного увеличит быстродействие.

Тоже самое проделываем для памяти DDR2-667: вместо значений 5-5-5-15 выставляем 3-3-3-9. При проведении тестов нам пришлось также увеличить RAS# to CAS# Delay, иначе быстродействие ничем не отличалось от стандартных настроек.

Для системы, использующей DDR2-800, задержки можно уменьшить до 4-4-4-12 или даже 4-4-3-10, в зависимости от конкретных модулей. В любом случае подбор таймингов сугубо индивидуален, и дать конкретные рекомендации достаточно сложно, но приведенные примеры вполне могут помочь вам в тонкой настройке системы. И не забываем о напряжении питания.

В итоге мы провели тестирование с восемью различными вариантами и комбинациями режимов работы памяти и ее задержками, а также включили в тесты результаты оверклокерской памяти, - Team Xtreem TXDD1024M1066HC4, работавшей на эффективной частоте 800 МГц при таймингах 3-3-3-8. Итак, для режима 533 МГц вышло три комбинации с таймингами 4-4-4-12, 3-4-3-8 и 3-4-2-8, для 667 МГц всего две - 5-5-5-15 и 3-4-3-9, а для режима 800 МГц, как и в первом случае, три - 5-5-5-18, 4-4-4-12 и 4-4-3-10. В качестве тестовых пакетов использовались: подтест памяти из синтетического пакета PCMark05, архиватор WinRAR 3.70b, программа расчета числа Пи - SuperPI и игра Doom 3 (разрешение 1024x768, качество графики High). Латентность памяти проверялась встроенным бенчмарком программы Everest. Все тесты проходили в среде Windows XP Professional Edition SP2. Представленные результаты на диаграммах расположены по режимам работы.











Как видите по результатам, разница в некоторых тестах незначительная, а порой даже мизерная. Это обусловлено тем, что системная шина процессора Core 2 Duo, равная 1066 МГц, имеет теоретическую пропускную способность 8,5 Гб/с, что соответствует пропускной способности двухканальной памяти DDR2-533. При использовании более скоростной памяти ограничивающим фактором быстродействия системы становится шина FSB. Уменьшение задержек ведет к росту быстродействия, но не так заметно, как повышение частоты памяти. При использовании в качестве тестового стенда платформы AMD можно было бы наблюдать совсем другую картину, что мы по возможности и сделаем в следующий раз, а пока вернемся к нашим тестам.

В синтетике рост производительности при уменьшении задержек для каждого из режимов составил 0,5% для 533 МГц, 2,3% для 667 МГц и 1% для 800 МГц. Заметен значительный рост производительности при переходе от памяти DDR2-533 к DDR2-667, а вот смена с 667 на DDR2-800 дает уже не такую прибавку скорости. Также память уровнем ниже и с низкими таймингами вплотную приближается к более высокочастотному варианту, но с номинальными настройками. И это справедливо практически для каждого теста. Для архиватора WinRAR, который достаточно чувствителен к изменению таймингов, показатель производительности немного вырос: 3,3% для DDR2-533 и 8,4% для DDR2-667/800. Расчет восьмимиллионного знака числа Пи отнесся к различным комбинациям в процентном соотношении лучше, чем PCMark05, хоть и незначительно. Игровое приложение не сильно жалует DDR2-677 с таймингами 5-5-5-15, и только снижение последних позволило обойти менее скоростную память (которой, как оказалось, все равно, какие тайминги стоят) на два кадра. Настройка памяти DDR2-800 дала прибавку еще в два кадра, а оверклокерский вариант, который имел неплохой разрыв в остальных тестах, не слишком вырвался вперед относительно менее дорогого аналога. Все же, кроме процессора и памяти, есть еще одно звено - видеоподсистема, которая вносит свои коррективы в производительность всей системы в целом. Результат латентности памяти удивил, хотя, если присмотреться к графику, становится ясно, отчего показатели именно такие, какие есть. Падая с ростом частоты и уменьшением таймингов от режима DDR2-533 4-4-4-12, латентность имеет "провал" на DDR2-667 3-4-3-9, а последний режим практически ничем кроме частоты от предыдущего не отличается. И благодаря столь низким задержкам DDR2-667 запросто обходит DDR2-800, которая имеет более высокие значения, но пропускная способность DDR2-800 позволяет в реальных приложениях все же вырваться вперед.

И в заключение хотелось бы сказать, что несмотря на небольшой процент прироста быстродействия (~0,5-8,5), который получается от уменьшения временных задержек, эффект все же присутствует. И даже при переходе с DDR2-533 на DDR2-800 мы получаем прибавку в среднем 3-4%, а в WinRAR более 20. Так что подобный "тюнинг" имеет свои плюсы и позволяет даже без серьезного разгона немного поднять производительность системы.