LiteNet.Ru - Актуально о ПК и ПО. 2006-2019.
СТАТЬИ | НОВОСТИ | ПРОГРАММЫ | ОБРАТНАЯ СВЯЗЬ | КАРТА САЙТА
Сейчас на сайте: 3 пользователей онлайн
Обновления
Материал Установил CentOS 7 как легко и просто настроить ssh доступ? [24.03.24]
Комментарии Спасибо... [17.02.24]
Материал Форма ввода php [08.05.23]
Материал Windows 11 LTSC выйдет во второй половине 2024 года [08.05.23]
Материал Microsoft прекратит выпуск обновлений для Windows 10 [29.04.23]
Комментарии Огромный респект и... [04.10.22]
Комментарии не помогло... [10.07.22]
Комментарии не получается войт... [02.11.21]
Комментарии Да нет в редакторе... [05.10.21]
Комментарии Toshiba Tecra s11 ... [21.07.21]
Комментарии Все получилось, сп... [21.07.21]
Комментарии не сработало... [04.06.21]
Комментарии Доброго времени! У... [27.03.21]
Комментарии У меня этот метод ... [19.03.21]
Комментарии всё испробовал,не ... [17.03.21]
Материал Представлена настоящая зарядка по воздуху Xiaomi Mi Air Charge [31.01.21]
Материал Отныне для запуска WhatsApp на ПК и в браузере требуется биометрия [31.01.21]
Материал Google Chrome 88.0.4324.104 [31.01.21]
Материал Avast Free Antivirus 20.10.5824 [31.01.21]
Материал Яндекс.Браузер 20.12.3.138 [31.01.21]
Материал Maxthon 6.1.1.1000 [31.01.21]
Материал MKVToolnix 53.0.0 [31.01.21]
Материал ProduKey 1.95 [31.01.21]
Комментарии Самый лучший брауз... [17.11.20]

RSS

Последние добавленные статьи

Экстремальный разгон DDR памяти
21.02.2006

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

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

Гнать или не гнать?
Вклад быстродействия памяти в общую производительность системы, в первую очередь, определяется интенсивностью ее использования. Приложения, обрабатывающие свои данные локально (в процессорном кэше) и практически никогда не обращающиеся к основной памяти, совершенно безразличны к ее разгону. Например, архиваторы. Считается, что объем потребляемой ими памяти совпадает с размерами пакуемого файла и для оценки "влиятельности" тех или иных настроек достаточно измерять время упаковки. В процессе экспериментов выясняется, что подавляющее большинство настроек довольно прохладно относятся к производительности системы, отклоняя ее на считанные доли процента, практические не выходящие за пределы инструментальной погрешности. Какого черта тогда было делать неработающие рычаги управления?! В действительности же они работают, просто мы измеряем скорость автомобиля, не снявшись с нейтрали.

Никакой архиватор не обрабатывает весь файл целиком, вместо этого он нарезает его на крохотные порции (порядка 16-64 Кб) и каждую из них упаковывает индивидуально, сосредоточив максимум запросов в пределах кэш-памяти первого и второго уровней. А если емкости кэша окажется недостаточно? Тогда процессор задействует основную память, и тут на ее настройках можно сыграть! Правда, радикальней будет переход на процессор с более емкой кэш-памятью, тем более что разница в стоимости не так уж и велика.

Реально в разгоне памяти нуждаются лишь приложения, обрабатывающие порции данных от 256 Кб и выше (программы видеомонтажа, графические редакторы, игры и т.п.). Чем выше степень загрузки памяти, тем больший выигрыш дает ее разгон. Волна модинга вынесла на рынок множество оригинальных моделей с индикаторами загрузки по бортам. Аналогичные индикаторы появились и на некоторых материнских платах. Эти перемигивающиеся огоньки не только красивы, но еще и полезны - позволяют определить целесообразность разгона в каждом конкретном случае.

Подготовка к разгону
Для разгона лучше всего подходят материнские платы с большим количеством тонких настроек на борту (Gigabyte GA-K8VNXP, ASUS K8V Deluxe). Конкретный перечень определяется возможностями чипсета, с одной стороны, и гибкостью прошивки BIOS – с другой. Существует множество хакерских прошивок и утилит, открывающих доступ ко всем настройкам контроллера памяти, которые только поддерживает чипсет. Однако прибегать к их помощи крайне нежелательно, так как они приводят к серьезным проблемам (аппаратным поломкам в том числе). Лучше изначально приобретай плату с расширенными настройками, их список можно найти в документации или посмотреть в BIOS Setup.

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

Некоторые чипсеты (например, Intel 857P) тщательно контролируют температуру памяти, автоматически уменьшая интенсивность запросов при ее перегреве. С одной стороны, это хорошо, так как повышается стабильность системы, но, с другой стороны, затрудняется ее разгон. Либо отключи термодатчик, либо запрети мониторинг температуры памяти в BIOS, либо скорректируй пороговые значения.

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

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

Для достижения стабильной работы разогнанной памяти рекомендуется чуть-чуть увеличить питающее напряжение (обычно за это отвечает линяя 3.3V) и поменять режим управления (Drive Control) с Normal на Strong. Однако делать это можно только при надлежащем охлаждении, в противном случае память перегреется и быстро выйдет из строя.

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

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

Независимо от выбранной частоты в системах с DDR-памятью команды на запись/чтение передаются только по переднему фронту тактового импульса, а сами обрабатываемые данные – по обоим. Расстояние между двумя соседними фронтами равно 1/2 тика, поэтому в настройках таймингов так много дробных величин.

Базовые настройки
Для перехода на ручное управление в меню BIOS необходимо найти пункт наподобие "Auto Configuration" или "SPD" и переключить его на "Manual". SPD расшифровывается как "Serial Presence Detect" и конструктивно представляет собой крошечную микросхему, хранящую основные характеристики и тайминги DIMM-модуля, гарантируемые производителем.

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

Не доверяй автоматике! Ручная настройка всегда предпочтительнее, поскольку оперирует не с произвольной выборкой нескольких модулей памяти, а с конкретным экземпляром.

CL
Величина CL (CAS# Latency) задает количество тактов между отправкой DDR-микросхеме команды чтения (не записи!) и сбросом первой порции данных на шину. При этом DRAM-страница должна быть заблаговременно открыта, за что отвечает тайминг tRCD. При последовательном чтении ячеек величина CL не играет никакой роли и может быть сколь угодно большой, в противном случае мы теряем CL тактов на каждый цикл пакетного обмена. Его продолжительность даже при благоприятном стечении обстоятельств составляет по меньшей мере 10 –20 тактов, поэтому сокращения CAS# Latency на один такт в лучшем случае увеличивает производительность приблизительно на 10%. Кстати говоря, CAS# Latency хорошо разгоняется, поскольку управляет не тормозным массивом конденсаторов, а быстрым буфером статической памяти и его логикой. При хаотичном доступе к памяти, когда открытие/закрытие DRAM-страниц происходит на каждом шагу, вклад, вносимый задержкой CL в общую продолжительность цикла обмена, становится настолько мал, что им можно полностью пренебречь.

В большинстве случаев CAS# Latency составляет 2.0 или 2.5 тактов. Уменьшать ее до 1.5 не рекомендуется.

tRCD
Величина tRCD (RAS# to CAS# Delay или Active to CMD) определяет время открытия DRAM-страницы, в процессе которого со строки конденсаторов считывается заряд и заносится в буфер статической памяти, локально обрабатывающий все последующие обращения. Средняя длина страницы составляет 2 Кб, ширина пакетного цикла обмена – 32 или 64 байт. При последовательном чтении ячеек открытия новых страниц происходят на каждом 32, 64 цикле, а при перекрестном чередовании банков (о котором речь еще впереди) и того реже. Некоторые контроллеры памяти автоматически открывают следующую страницу, когда текущая подходит к концу, благодаря чему задержка полностью маскируется. При хаотичном доступе к памяти картина иная. Открытие новых страниц происходит значительно чаще, и латентность подсистемы памяти существенно возрастает. Тем не менее, уменьшать величину tRCD категорически не рекомендуется. Во-первых, реального выигрыша производительности это все равно не даст (полный пакетный цикл занимает порядка 30 тактов, и сокращение RAS# to CAS# Latency на один такт увеличивает быстродействие всего лишь на ~3. Во-вторых, с разгоном tRCD надежность микросхемы катастрофически падает, и существенно увеличивается ее нагрев.

Правильные люди не уменьшают RAS# to CAS# Latency, а напротив, увеличивают ее, параллельно с этим наращивая тактовую частоту. В результате, получается наибольший прирост производительности.

tRP
Величина tRP (RAS# Precharge Delay, Precharge to active) определяет время закрытия DRAM-страницы, в процессе которого происходят возврат данных в банк памяти и его перезарядка. Во время перезарядки этот банк недоступен, но доступны все остальные банки (большинство DDR-модулей содержит четыре таких банка). Банк закрывается на перезарядку всякий раз, когда происходит обращение к другой странице из этого же самого банка. При последовательном чтении/записи ячеек значение tRP никак не влияет на производительность. При хаотичном чтении RAS# Precharge снижает быстродействие системы только тогда, когда все запросы оказываются сосредоточены в пределах одного банка, что при правильно выбранном чередовании практически никогда не случается.

Если микросхемы памяти поддерживают режим Auto Precharge и контроллер об этом "знает", то перезаряд начинается сразу же после того, как будет прочитана последняя ячейка DRAM-страницы, в результате чего производительность системы несколько возрастает.

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

tRAS
Величина tRAS (DRAM Precharge Delay, Active to Precharge Delay, Precharge Wait State, Row Active Delay, Row Precharge Delay) устанавливает минимальный промежуток времени между открытием/закрытием одной DRAM-страницы. Реальное время хаотичного доступа к одному банку памяти без учета латентности процессора и чипсета: tRC = tRAS + tRP. Если микросхема памяти поддерживает tRAS Lockout feature (режим обхода tRAS; большинство микросхем его поддерживает), то при переключении между DRAM-страницами величина tRAS игнорируется и вместо нее берется tRCD. Если же режим обхода tRAS не поддерживается, уменьшение Precharge Delay слегка ускоряет хаотичный доступ, но злоупотреблять этим не следует, и лучше изменить чередование банков – производительность возрастет и стабильность не пострадает.

Тонкие настройки для гурманов
Не все BIOS'ы обеспечивают возможность тонкой настройки памяти. А если обеспечивают, не всегда открывают доступ по умолчанию (например, в Gigabyte GA-K8VNXP для этого необходимо нажать Ctrl-F1). Опции тонкой настройки не обеспечивают радикального прироста производительности, но в ряде случаев оказываются очень полезными.

Burst Length
Длина пакетного цикла чтения. Для достижения наивысшей производительности она должна быть равна размеру процессорной кэш-линейки (32 байта, или 4 пульса, для P-3, 64 байта, или 8 пульсов, для P-4 или AMD Athlon). Никак не влияет на надежность, но более длинные пакетные циклы несколько уменьшают энергопотребление.

Bank Interleaving
Режим чередования банков. Если чередование выключено, обеспечивается максимум одновременно открытых страниц для работы. Например, для копирования данных из пункта А в пункт B требуется два открытых банка. Однако, если эти оба "пункта" попадут в один банк, время копирования существенно возрастет. Чтобы этого избежать, необходимо изменить алгоритм трансляции адресов так, чтобы рассредоточить совместно обрабатываемые порции данных по различным банкам. Как правило, нужный режим чередования подбирается экспериментально, и для каждого приложения этот режим свой.

Command Rate CMD
Определяет минимальный промежуток времени между двумя соседними командами. Чаще всего равен двум-трем тактам, реже – одному (это зависит не столько от используемого модуля памяти, сколько от проворности контроллера). Полная конвейеризация выдачи результата достигается лишь при Command Rate, равном одному, и увеличивает производительность подсистемы памяти практически на 25%.

Некоторые BIOS'ы именуют эту опцию как "2T Command", предлагая на выбор Disabled (отказаться) и Enabled (принять). Если по умолчанию частота следования команд была равна 1T, то 2T выбирать не надо. А если она равнялась 3T? Когда документация молчит как партизан, нужный режим работы приходится выбирать экспериментально.

tWCL, tDQSS
То же самое, что и CL, но только для записи. При последовательной записи ячеек с Command Rate, равном одному, полностью маскируется и никак не влияет на производительность. В противном случае сокращение tWCL на один такт слегка увеличивает быстродействие системы (но не более чем на 10%). Слишком малая величина tWCL может стать причиной искажения записываемых данных.

tWR
Минимальный промежуток времени между завершением операции записи и закрытием DRAM-страницы. При последовательной записи никак не влияет на производительность, при записи вразброс - увеличивает быстродействие на 1-3%, но при этом возможна потеря оперативных данных.

tRWT
Минимальный промежуток времени между завершением операции записи и началом операции чтения одной и той же DRAM-страницы. При интенсивном чередовании команд записи и чтения существенно увеличивает производительность, однако схема взаимодействия с оперативной памятью, реализованная в процессорах Intel Pentium и AMD Athlon, делает это событие крайне маловероятным. Большинство чипсетов имеют раздельные очереди на запись/чтение и автоматически оптимизируют порядок следования запросов, поэтому значение tRWT становится некритичным и лучше установить его на максимум для улучшения стабильности работы системы.

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

tRFC
Продолжительность регенерации в тактах. Обычно составляет порядка 10–20 тиков. Практически никак не влияет на производительность (особенно при штатной периодичности регенерацией), поэтому лучше выставить эту величину на максимум, что увеличит стабильность работы системы, особенно разогнанной.

tRC
Величина рабочего цикла RAS. Должна быть равна сумме tRAS и tRP, иначе нормальная работоспособность системы не гарантирована. Следует заметить, что некоторые BIOS'ы не позволяют явно выбирать tRP, но предоставляют доступ к tRAS и tRС (тогда tRP = tRC – tRAS).

Виртуальные тесты против суровой реальности
Скажи, что быстрее – КамАЗ или Формула-1? А это смотря для чего! За какое время Формула-1 перевезет пару сотен тонн кирпича и за какое время ее перевезет КамАЗ? Вот так и с тестовыми программами. Представленная ими информация объективна, но она ничего не говорит о реальном быстродействии конкретного приложения на отдельно взятой задаче. Забудь о тестовых программах! Лучше запусти свое критичное приложение и измерь время выполнения типичной задачи, на которую расходуешь львиную долю машинного времени. Теперь, манипулируя настройками BIOS'а, добейся, чтобы время выполнения этой задачи было минимальным. Но помни о том, что скорость выполнения всех остальных задач может как упасть, так и возрасти. Ищи золотую середину.
Народная мудрость гласит: нельзя все разгонять, на чем-то надо и сидеть. За несколько дополнительных процентов производительности приходится расплачиваться нестабильной работой системы, частыми зависаниями и перезагрузками, которые съедают весь выигрыш от разгона. И хорошо, если имеют место только перезагрузки, а не потеря всех хранящихся на жестком диске данных – кэш файловой системы хранится в оперативной памяти. Если он окажется искажен... Впрочем, такой исход событий крайне маловероятен, и разгонять оперативную память не только можно, но и нужно.

Мы коснемся главным образом одно/двухканальных контроллеров DDR-памяти; память DDR II в силу своей новизны и незначительных конструктивных отличий от DDR здесь не рассматривается.

А если таких индикаторов нет? Тогда интенсивность использования памяти можно определить косвенно – по ее нагреву. Чем выше нагрев, тем больше загрузка. Или же воспользуйся утилитой CPUMon от Марка Руссиновича, бесплатную версию которой можно скачать с сервера sysinternals.com.

Пользоваться ей очень просто. В меню "Class" выбираешь "Bus" (шина), а в окне "Counter" – «BUS_TRAN_MEM» (количество транзакций памяти). Теперь запускаешь тестовое приложение (например, игрушку или процедуру рендеринга) и нажимаешь "Start". А затем, спустя некоторое время(в течение которого утилита будет накапливать статистические данные), нажимаешь "Stop" и в появившемся диалоговом окне смотришь на строку «BUS_TRAN_MEM». Чем больше происходит обращений в единицу времени, тем целесообразнее разгон.

Не все модули памяти разгоняются одинаково. Уважающие себя производители (Kingston Technology, IBM, Samsung) обеспечивают солидный запас прочности, и модули уверенно работают даже на ускоренных таймингах и повышенных тактовых частотах. Продукция дерьмовых производителей, наоборот, едва выдерживает даже заявленные характеристики, и ее приходится слегка тормозить.

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

Стратегия разгона определяется типом преобладающих запросов к памяти. Можно выделить две основных категории обработки ячеек: последовательную и хаотичную. При последовательной обработке независимых данных ячейки памяти передаются по шине сплошным потоком и реальная производительность определяется одной лишь пропускной способностью. Латентность полностью маскируется и становится несущественной. Напротив, при хаотичном чтении/записи пропускная способность вырождается и быстродействие системы зависит главным образом от того, как быстро микросхема памяти может переключаться между банками (а делает это она очень медленно, но мы ее ускорим).

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

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

Ядро памяти, представляющее собой матрицу конденсаторов, намного более инертно и разгоняется плохо, катастрофически уменьшая надежность сохранности информации даже при небольшом увеличении частоты. Чувствительнее всего матрица относится к продолжительности перезарядки (tRP) и времени открытия DRMA-страницы (tRCD), которые задаются в импульсах тактовой частоты. Для достижения максимальной производительности вместе с увеличением тактовой частоты следует увеличивать и "ядерные" тайминги (чем больше значение тайминга, тем дольше задержка). Разумеется, это увеличение не обязательно должно быть строго пропорциональным. На хороших микросхемах памяти при двукратном увеличении тактовой частоты тайминги увеличиваются всего лишь в полтора раза. При последовательном чтении ячеек, когда латентность полностью маскируется, ты получишь двойной прирост производительности памяти с минимальными потерями в надежности.

Как быть, если в BIOS'е встретилась настройка, которая не описана в документации на материнскую плату? Обратись к спецификации на оперативную память, электронную версию которой можно бесплатно скачать с сервера организации JEDEC (www.jedec.org/DOWNLOAD/search/JESD79D.pdf). Если не окажется и там, загляни в техническое описание своего чипсета, которое можно найти на сайте производителя.

Имеет смысл разгонять загруженную память. Если память используется не интенсивно, разгонять ее или нет - пофигу.

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

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

Платы с пятью и более слотами для разгона не пригодны изначально.

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

Чтобы управлять характеристикам и таймингами памяти, в BIOS необходимо переключить "Auto Configuration" (или "SPD") в "Manual".

Опции более тонкой настройки памяти не дают особого прироста производительности, но могут оказаться полезными.

Парадокс, но левые производители памяти не выдерживают даже заявленные характеристики, и, как результат, их приходится тормозить (!), а не разгонять.

Что еще почитать?


Оставленные комментарии:


Всего 0 комментариев


Введите Ваше имя:


Не используйте HTML и ВВ-коды - не работает. Пользуйтесь смайликами :)
Very HappySmileLaughingCoolWinkSurprised
RazzSleepSadShockedEvil or Very MadRolling Eyes

В этом поле Вы можете ввести текст комментария:


До конца всего осталось символов

Код на БОТливость: Код на БОТливость:
Введите код: