Правда о динамическом оверклокинге или Грубые нюансы тонких технологий


Введение

Изначально данная статья задумывалась как коротенькое представление релиз-кандидата еще одной утилиты, выпускаемой в рамках проекта RightMark, имеющей рабочее название RM Spy, или RM Infiltrator(окончательное пока еще не утверждено). Эта программа призвана помочь тем, кто тестирует процессоры и системные платы. Для того чтобы четко определять в произвольный момент времени такой немаловажный параметр работающей системы, как частоту процессора. Ведь известно, что некоторые производители системных плат изначально чуть-чуть «задирают» значения FSB по умолчанию, чтобы обеспечить своим продуктам лучшие результаты в тестах производительности. Однако уже в процессе обкатки программы на реальной тестовой системе, обнаружились некоторые детали, неожиданно превратившие скромный материал-представление в нечто совершенно другое… Впрочем, об этом — позже.

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

  1. RM Spy (RM Infiltrator) предназначен именно для этой цели, а не является частью какого-нибудь монстрообразного пакета. Он представляет собой один исполняемый файл размером порядка 120 килобайт, и вообще не требует установки.
  2. Результаты его работы могут быть записаны в лог-файл.
  3. Существование параметра настройки «Start delay» позволяет спокойно выполнить все операции, которые по замыслу тестера должны предшествовать началу отслеживания частоты CPU.
  4. Существование параметра настройки «Check period» позволяет минимизировать нагрузку на процессор, создаваемую самой утилитой.

Итак, RM Spy запущен. Исходное состояние программы можно видеть на скриншоте.

В основном (оно же единственное) окне программы доступны для изменения следующие опции:

  1. Start delay: время ожидания после нажатия кнопки «Start» и до начала отслеживания частоты процессора. Задается в минутах.
  2. Check period: интервал, с которым будет определяться текущая частота CPU. Задается в секундах.
  3. Save on Stop: если поставлен этот флажок, после остановки теста, в каталоге, из которого была запущена программа, будет создан лог-файл с результатами.

Кнопка «Start», как легко догадаться, запускает процесс отслеживания с установленными параметрами, а кнопка «Exit» служит для завершения работы программы (фактически, дублируя кнопку закрытия окна).

После нажатия на кнопку «Start», утилита автоматически сворачивается в системный трей. Снова вернуть ее на экран можно двойным щелчком по ее иконке в трее.

Если процесс отслеживания частоты уже начался, вы увидите примерно такую картину.

В том случае, если отмечена опция «Save on Stop» — то по нажатию кнопки «Stop» в каталоге, из которого была запущена программа, появится лог примерно такого вида. Как видите, все очень просто и незамысловато: утилита RM Spy (RM Infiltrator) предназначена для выполнения всего одной функции, поэтому набор опций и режимов использования минимален. С другой стороны, как нам кажется, он вполне достаточен для решения основной задачи — динамического отслеживания изменения частоты процессора.

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

Пример использования

Вполне логичной нам показалась проверка функционирования RM Spy на плате, в которой динамическое изменение частоты CPU в процессе работы является не побочным эффектом или следствием вмешательства пользователя, а одной из заявленных производителем функций. Разумеется, все следящие за рынком системных плат уже поняли, что речь идет о «первой ласточке динамического оверклокинга» — технологии MSI D.O.T. (Dynamic Overclocking Technology). Смысл ее состоит в том, чтобы автоматически разгонять процессор, путем подъема частоты FSB, но не постоянно, а лишь тогда, когда это необходимо. Впрочем, обратимся к первоисточникам.

Для начала процитируем фрагмент оригинального описания D.O.T. взятый нами с сайта MSI:

What is the Dynamic Overclocking Technology? Many mobo users must feel curious about this question. Dynamic Overclocking Technology, in simple words, is the automatic overclocking function, included in the MSI's newly developed CoreCell Technology. It is designed to detect the load balance of CPU while running programs, and to adjust the best CPU frequency automatically. When the motherboard detects CPU is running programs, it will speed up CPU automatically to make the program run smoothly and faster. When the CPU is temporarily suspending or staying in the low load balance, it will restore the default settings instead. Apparently, the Dynamic Overclocking Technology will be powered only when users' PCs need to run huge amount of data like 3D games or the video process, and the CPU frequency needs to be boosted up to enhance the overall performance. On the contrary, when your PC stays in the normal status such as surfing on the Internet or doing hard drive defragment, CPU will remain the original speed without overclocking.

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

Что такое технология динамического разгона (Dynamic Overclocking Technology)? Наверняка многие владельцы системных плат MSI задавались этим вопросом. В двух словах, Dynamic Overclocking Technology — функция автоматического разгона, реализованная в рамках технологии MSI CoreCell. Основная ее задача — определить загрузку центрального процессора системы при работе с программами и провести автоматическую регулировку тактовой частоты процессора до оптимального уровня. Когда системная плата определяет, что загрузка процессора велика, тактовая частота процессора увеличивается, чтобы программы выполнялись быстрее. Очевидно, что технология будет задействована, когда ПК обрабатывает огромные объемы данных — в играх, или при обработке видео. Именно при выполнении таких задач тактовая частота процессора должна быть увеличена для повышения общей производительности системы. И, наоборот, при работе в интернете или при дефрагментации жесткого диска, когда система находится в «обычном» состоянии, тактовая частота процессора будет совпадать с его реальной частотой, без разгона.

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

Наиболее корректный способ, как легко догадаться, состоит в… анализе команд, поступающих по процессорной шине. Но от него мы сразу отказываемся, потому что стоить такое решение будет как хороший измерительный комплекс, и, наверное, потребует дополнительного процессора, по мощности, как минимум, равного основному (а то и больше). Следовательно, используется какой-нибудь косвенный способ. Какой? И тут нам пришло в голову, что один достаточно примитивный вариант есть… только уж очень примитивный. И, честно говоря, проверяли мы это предположение с одной-единственной мыслью: «давайте убедимся в том, что это неправда!». Но все же проверили. И убедились…

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

  • Процессор: AMD Athlon 64 3400+
  • Материнская плата: MSI K8T Neo-FIS2R (VIA K8T800)
  • Память: 2x512 МБ PC3200 DDR SDRAM DIMM TwinMOS (тайминги: 2-2-2-5)
  • Видеокарта: Manli ATI Radeon 9800Pro 256 МБ
  • Жесткий диск: Western Digital WD360 (SATA), 10000 об/мин

Результаты тестов

Нет, это не факт.
Это гораздо больше, чем факт:
так оно и было на самом деле!
(из к/ф «Тот самый Мюнхгаузен»)

Функционирование MSI D.O.T.

Итак, ниже — график изменения частоты процессора сразу после старта системы, снятый с помощью RM Spy. Загрузка CPU — 0%, шаг графика — 3 секунды. Частота, как легко заметить, практически не изменяется, то есть либо D.O.T. работает как нужно, либо не работает вовсе.

А это — демонстрация работы D.O.T. при игре в Return to Castle Wolfenstein (с момента запуска до окончания игры, выхода из нее, и еще некоторого времени после). Легко заметить, что динамический разгон работает, причем вроде именно так, как нужно — мы специально чередовали периоды «яростной стрельбы во все стороны» со спокойной ходьбой или даже стоянием на месте, и на графике хорошо заметно, что частота подстраивается. Вот только — подо что? Казалось бы — под нагрузку на процессор…

А теперь, вместо увеличения нагрузки на CPU, мы просто… останавливаем вентилятор на процессорном кулере при нулевой загрузке процессора. В последнее время нам нравится эта операция :).

И… частота процессора растет!!! Неужели это «оно»?! Включаем вентилятор…

Да, это «оно». Во всяком случае, данные эксперимента выявили совершенно четкую зависимость между температурой процессора на плате с включенной Dynamic Overclocking Technology, и этим динамическим оверклокингом: чем выше температура CPU — тем больше его частота. Разумеется, верхний предел существует, но ограничен он установками самой D.O.T. в BIOS Setup, а не чем-то иным. И обратное верно: если процессор становится холоднее — частота медленно приходит в норму.

Соответственно, учитывая то, что загрузка CPU во второй части эксперимента оставалась постоянной (нулевой), мы можем с практически 100% уверенностью утверждать, что собственно CPU Usage никак не отслеживается, и на функционирование технологии D.O.T. не влияет, а загруженность процессора определяется по его нагреву. Эко-то оно все просто оказалось…

Кто-то еще верит в чудеса?
Функционирование Gigabyte C.I.A.

Первая ласточка от MSI на поверку оказалась не единственной: примерно такую же задачу призвана решать технология от другого производителя Gigabyte, которую эта компания назвала «C.I.A.» CPU Intilligence Accelerator. Описание ее (в качестве источника взят пресс-релиз) достаточно сильно напоминает описание MSI D.O.T.:

…C.I.A. (CPU Intelligent Accelerator) is designed to detect CPU loading during software program’s executing, and automatically adjust CPU computing power to maximize system performance. During loading high CPU resources consumption tasks, such as video and audio encoding programs or thrilling 3D games, the CPU requires more CPU computing power; when C.I.A. is enabled, it will detect the current CPU loading and automatically accelerate the CPU computing performance, thus allow programs to execute faster and smoother. On the other hand, when the programs are terminated, the CPU will return back to its initial status…

Правда, составители пресс-релизов из Gigabyte избегают конкретных указаний на то, каким именно параметром управляет C.I.A. вместо четкого и однозначного «…adjust the best CPU frequency…» (MSI), употребляется весьма расплывчатая формулировка «accelerate the CPU computing performance». Впрочем, нам неизвестны другие способы «увеличить вычислительную производительность CPU» в процессе его работы, кроме поднятия частоты, так что это все чистой воды казуистика.

Разумеется, у нас возникла идея проверить еще и C.I.A. Хотя, если честно, никаких сомнений относительно особенностей ее функционирования мы уже не испытывали. Поэтому, не долго думая, мы взяли первую попавшуюся плату с поддержкой этой технологии (ей оказалась Gigabyte GA-8IPE1000 Pro2 на чипсете i865PE), процессор Pentium 4 3.2 ГГц, и повторили эксперимент. На сей раз, мы будем краткими, потому что ничего принципиально нового он не показал.

Система в состоянии покоя демонстрирует чуть завышенную частоту CPU, но она стабильна, а превышение номинала незначительно.

Заметны первые отличия Gigabyte C.I.A. от MSI D.O.T.: так же как и в первом случае, в процессе игры мы чередовали динамичные и «статичные» моменты (в последнем случае наш персонаж, уничтожив всех противников в зоне видимости, около полуминуты просто стоял, ничего не делая). Однако к снижению частоты это не привело — возврат в норму произошел только после завершения игры и выгрузки программы. Также хорошо заметно, что наращивание частоты CPU идет не постепенно, как у платы MSI, а резко, одной ступенькой. Теперь экспериментируем с отключением питания кулера…

Картина, полностью аналогичная предыдущей: начиная с определенного момента, частота CPU возрастает даже при нулевой загрузке. За неимением альтернативных предположений о причине этого явления (пусть и теоретических), мы вынуждены сделать вывод, что в основу C.I.A., так же как и D.O.T., положено отслеживание температуры процессора, а не его реальной загруженности работой.

MSI D.O.T. vs. Gigabyte C.I.A.

В завершение такого экспресс-сравнения технологий динамического разгона от MSI и Gigabyte, остаётся отметить, что C.I.A. реализована более… грубо, что ли? Если разгон, который мы видели на плате MSI, является, если так можно выразиться, «истинно динамическим» т.е. различным значениям температуры CPU соответствуют различные значения [повышенной] частоты FSB, то в случае с C.I.A. он скорее «включаемый по условию», триггерный. Видимо, существует некая пороговая температура CPU (в нашем тестировании она составляла около 45 градусов), по достижении которой частота FSB возрастает до заранее обусловленного предела, определенного политикой динамического оверклокинга, задаваемой посредством установок BIOS. После этого частота FSB остается неизменной — опять-таки, до того момента, пока температура процессора не станет меньше заданного значения.

Споры о том, какое решение является более правильным, мы оставим читателям. С одной стороны, D.O.T. от MSI выглядит несколько более изящно и допускает б о льшую вариабельность. С другой стороны — Gigabyte C.I.A. с основной своей функцией также справляется, при этом, не манипулируя постоянно частотой FSB (что вряд ли хорошо сказывается на стабильности системы, да и на ресурсе процессора). С третьей — можно очень долго и напряженно спорить о том, что для процессора лучше: плавное наращивание и спад частоты работы ядра при частом манипулировании частотой FSB, или же мгновенное и достаточно резкое изменение того и другого, но происходящее меньшее количество раз. Вот только нужны ли эти споры? Возможно, найдутся энтузиасты, которые захотят исследовать функционирование D.O.T. и C.I.A. более подробно, наш же интерес к данной теме вполне удовлетворен экспериментальным подтверждением одного простого факта: реального отслеживания степени загрузки CPU в обоих случаях не происходит . Что, в общем-то, закономерно: чудес на свете не бывает, а все возможные способы этого самого «реального отслеживания» достаточно трудоемки в осуществлении, и повлекли бы за собой значительное удорожание системной платы.

Также за кадром в этой статье мы оставили некоторые нюансы, которые не удалось уточнить. Например, вопрос о том, являются ли пороговые температуры «жестко прошитыми», или же они могут меняться в зависимости от каких-то внешних условий. Судя по всему, имеет место второй подход т.к. если процессор хорошенько искусственно разогреть перед запуском тестового стенда, в функционировании динамического разгона начинают появляться странности: в некоторых случаях (в большинстве) он перестает работать, а в некоторых (в меньшинстве) процессор стартует уже разогнанным. Исходя из такого поведения плат, мы можем предположить, что имеют место попытки замерить температуру CPU перед стартом системы, чтобы потом отталкиваться уже от нее, а не от какого-то фиксированного значения. Однако, видимо, данный механизм функционирует не очень корректно, потому что четкой, раз за разом повторяющейся зависимости нам отследить не удалось.

Заключение

А теперь давайте спокойно задумаемся: что же вызывает у нас… скажем так — некоторое недоумение? То, что для определения степени загруженности процессора используется информация о росте его температуры? Да, в общем, то — нет. Достаточно стандартный способ выяснения показателя по косвенному признаку, ввиду трудоемкости отслеживания основного. Однако, во-первых — существует и более правильный способ: анализ потребляемой процессором мощности. Причем данный путь значительно корректнее именно потому, что рост потребления по току свидетельствует только о возрастании нагрузки на процессор, а не о массе других факторов, включая нагрузку (что мы имеем в случае с температурой). Хотя, конечно, отслеживание силы тока при таком малом напряжении — задача весьма сложная (хоть и проще анализа команд, поступающих на процессор). Но суть в данном случае не в сложности, а в том, что анализ команд и потребления тока являются правильными методами определения загруженности CPU, в отличие от анализа его температуры.

Хорошо, пусть мы выбрали температуру. К слову, почему именно ее — понятно: это самый простой и дешевый способ. Но все равно возникает «во-вторых»: неужели нельзя было встроить в пресловутый «высокотехнологичный» чип CoreCell простенькую логику, которая бы отслеживала самые распространенные аварийные ситуации, также приводящие к росту температуры CPU? Их (распространенных) всего-то две: опережающий рост температуры внутри корпуса (т.е. когда она начинает расти до того как начнет повышаться температура CPU) и остановка (выход из строя) вентилятора на кулере. Наличествует одна из причин — значит, применение динамического оверклокинга нецелесообразно т.к. рост температуры процессора может быть обусловлен не возрастанием нагрузки, а другими (потенциально, к слову — опасными для него) факторами.

Подведем итог: за идею инженерам MSI и Gigabyte, в общем-то, можно поставить оценку «хорошо» — она вполне здравая, и даже в чем-то изящная. Изящная в основном простотой и дешевизной реализации. А вот само исполнение вызывает недоумение отсутствием учета вполне очевидных факторов, в результате чего динамический оверклокинг превращается не в способ «avoid of unnecessary risk» («избежать ненужного риска», цитируя описание D.O.T. с сайта производителя), а скорее, наоборот — в потенциальную причину ужесточения температурного режима CPU при возникновении внештатной ситуации. Более того: в случае с процессорами Pentium 4, которые поддерживают технологию Thermal Throttling, при недостаточно качественном охлаждении динамический разгон теоретически может вызвать даже уменьшение производительности!

И именно ввиду очевидной недоделанности обеих технологий, возникает навязчивое ощущение, что «постарались» тут уже не инженеры, а… скажем так, несколько другие службы. Которым, как известно, стоит только узнать о возможности реализации чего-то «маркетингово-громкого», как сразу кидается знакомый клич «даешь стране угля!», и тут уже не до инженерии — выпустить бы обещанное в срок. А там уж как-нибудь разберемся…

Закончить статью хотелось бы стандартным призывом ко всем без исключения производителям компьютерного железа: в описаниях различных технологий желательно видеть все-таки больше… как бы так выразиться… точности, что ли? Или «конкретности»?… Понятно, что среднестатистическому пользователю многие нюансы не важны, однако для «не среднего» полная информация о принципах работы той или иной функции должна быть доступна. В противном случае возникает весьма неприятное ощущение, когда обнаруживаешь, что за словами «определение загрузки центрального процессора» стоит отслеживание, мягко говоря, совершенно другой характеристики, к тому же не всегда напрямую связанной с декларированной.




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.