Наряду с поддержкой новых чипсетов, важнейшей особенностью новой версии универсального тестового пакета RightMark Memory Analyzer 3.3 является возможность изменения таймингов памяти «на ходу». Данная возможность представляет огромный интерес как для профессиональных тестировщиков платформ, так и для конечных пользователей, поскольку она позволяет найти оптимальную конфигурацию подсистемы памяти, с точки зрения баланса производительности и стабильности функционирования системы. Среди достоинств такого подхода можно отметить, что, во-первых, большинство подобных параметров сравнительно редко встречаются в настройках BIOS, что делает невозможным тонкую настройку системы «стандартными» методами. Во-вторых, немаловажным фактором является удобство динамического изменения таймингов памяти поскольку в данном случае не требуется перезагрузка операционной системы при изменении любого из параметров. Изменение таймингов памяти в RMMA 3.3
Приступая к рассмотрению реализации возможности динамического изменения таймингов в RMMA 3.3, прежде всего, предупредим наших пользователей, что такая процедура, как и всякое другое изменение любых параметров системы за их допустимые пределы, является потенциально опасной для Вашей системы. В связи с этим, первоначально при попытке включения опции Adjust Memory Timings (в разделе Platform Info, Memory) программой выдается соответствующее предупреждение:
Действительно, результатом динамического изменения таймингов памяти в принципе может быть все, что угодно: зависание системы, нарушение стабильности ее работы, потеря данных, повреждение ее отдельных компонентов и т.п. — причем все перечисленные «симптомы» могут проявиться не сразу после изменения таймингов, а лишь через некоторый промежуток времени. Конечно, это относится лишь к «нормальным», т.е. допустимым установкам таймингов. Ибо все попытки выставления слишком «грубых», явно недопустимых значений таймингов, вроде 2.0-1-1-3, проявят себя незамедлительно, в виде моментального зависания системы.
В этой связи следует подробнее остановиться на важнейшем тайминге памяти величине задержки выдачи сигнала CAS# (CAS# Latency, tCL). Дело в том, что изменение этого параметра обязательно должно сопровождаться записью соответствующего значения в Mode Register устройства памяти. В то время как возможность изменения Mode Register предоставляется большинством чипсетов, весьма вероятно, что ее реальное осуществление возможно лишь один раз, при инициализации системы после чего запись требуемых значений в соответствующие регистры контроллера памяти им просто игнорируется. Судя по всему, таким нехорошим свойством обладают все поддерживаемые в настоящий момент чипсеты Intel (попытка изменения tCL приводит к зависанию системы), тогда как сравнительно раритетные чипсеты семейства AMD 750/760 позволяют изменять значение задержки CAS# прямо «на ходу».
Итак, при включении (разрешении) опции Adjust Memory Timings функциональность программы расширяется следующим образом:
Как и прежде, доступность тех или иных установок таймингов, равно как и выбор их возможных значений, целиком определяется типом используемого чипсета. Выбор значений интересующего Вас тайминга осуществляется простым нажатием на соответствующее поле, после чего становится доступным список возможных значений, одно из которых можно выбрать.
Важно отметить, что некоторые платформы позволяют выставлять разные значения таймингов для разных модулей памяти (таковым свойством обладают, как правило, старые чипсеты, способные поддерживать более одного типа памяти одновременно), либо для разных каналов памяти в асимметричном двухканальном режиме (это свойственно новейшим чипсетам, например, Intel 915/925). Выбор значений таймингов для другого модуля/канала памяти осуществляется изменением Row Index. Появившаяся в этом же разделе возможность изменения номера текущего процессора (CPU Index) в настоящее время не используется. Она имеет смысл лишь для многопроцессорных систем на базе процессоров AMD Opteron, которые, как известно, характеризуются наличием собственного (интегрированного) контроллера памяти. Поддержка интегрированного контроллера памяти процессоров AMD K8 планируется в следующей версии программы. Альтернативное изменение таймингов памяти
Дистрибутив новой версии тестового пакета RightMark Memory Analyzer 3.3 содержит в себе отдельную утилиту timings.exe, исполняемую из командной строки. Она предоставляет Вам более удобный способ изменения любых (поддерживаемых чипсетом) таймингов памяти на желаемые значения, например, при запуске операционной системы, в том случае, если это не позволяют сделать настройки BIOS.
Значения таймингов, устанавливаемых утилитой при ее запуске, прописываются в файле timings.dat достаточно простым образом, что хорошо документировано и снабжено поясняющими примерами в самом файле. Поэтому лишь вкратце прокомментируем здесь настройки timings.dat:
Переменная | Описание |
---|---|
cpu [x] | Установка CpuIndex = x. В настоящее время не используется, будет использоваться в дальнейшем для многопроцессорных систем AMD Opteron. |
row [x] | Установка RowIndex = x. Соответствует номеру модуля, используется ранними чипсетами с возможностью установки различных таймингов для каждого модуля. |
channel [x] | Выбор номера канала (x = 0, 1). Используется чипсетами Intel 915/925 в асимметричном двухканальном режиме. |
timings [a] [b] [c] [d] | Быстрая установка значений таймингов памяти: tCL = a, tRCD = b, tRP = c, tRAS = d |
Таким образом, если вы хотите, скажем, установить значения таймингов 4-4-4-8 для обоих каналов памяти типа DDR2 на чипсете Intel 915 в случае асимметричного режима их функционирования, файл timings.dat должен выглядеть следующим образом:
channel 0
timings 4 4 4 8
channel 1
timings 4 4 4 8