TestMem support page - TestMem I

TestMem techsupport home page

home   news   software   articles   other   links   contact


 

Мои программы:

Тест памяти

TestMem1
TestMem2
TestMem3
TestMem4
Тест памяти и стабильности процессора под Windows
S&M
Тест стабильности процессора под DOS
S@M
Автоматическое управление частотой процессора
C&QnF2
Тест видеопамяти
TestVideoRAM
Загрузчик video BIOS
Loader
Меню для VGA
Video BIOS extender
Производительность подсистемы памяти
BenchMem
C-Temp
Other
Автоматическое управление частотой процессора

C&QnF2/C&QC2

    С О Д Е Р Ж А Н И Е
Зачем нужна эта программа
Описание работы
Внешний вид
Ограничения
Что, где, ...??

Зачем нужна эта программа.

Вообще говоря, я не планировал делать 'автономную' программу, но, увы, потратил значительно больше времени, чем планировал. Программа предназначалась для тестирования корректности моей работы с установкой частоты процессора. Первая версия (0.1.1) может управлять частотой процессора от его загруженности. Если CPU не загружен, то частота медленно снижается до минимального уровня, а при появлении признаков загрузки частота возвращается к первоначальному значению. Для первой версии нижняя частота 70MHz, что обеспечивает 2-3-кратное изменение частоты, что снижает потребление процессора в соответствующее число раз. Ставить меньшее 70MHz вряд-ли целесообразно, появятся поблемы с стабильностью памяти, да и как-то не имеет особого смысла. Например, при наличии звуковых карт типа Audigy включение опции Bus disconnect в BIOS приводит к меньшей эффективности. Для AMD Athlon XP (Barton) при 1.65V на частоте 2.2G типичное потребление покоя составляет 42W, с включением Bus disconnect 17W, при уменьшении частоты FSB с 210MHz до 70MHz - 15W. Никаких внешних проявлений работы программы я не обнаружил (правда, это не означает, что их нет - программа мало тестировалась). Т.к. изменение частоты происходит очень плавно, то помехов в блоке питания и внешних цепях не возникает, как и резких тепловых скачков процессора, которые могут вызвать повреждение кристалла. Кстати, это основная причина почему я ограничил нижнюю частоту весьма большой цифрой .... можно еще в 1.5-2 раза меньше.
В версии 0.2 введено управление напряжением.
В 0.3 - внутренние параметры программы можно настраивать, несколько расширились возможности, исправил некоторые ошибки.

Описание работы.

Программа смотрит загруженность процессора и если она очень низкая, то начинает плавно снижать частоту. При загрузке процессора происходит обратный процесс, причем скорость повышения частоты быстрее, чем снижения. Кретерий повышения частоты - загрузка процессора выше 50%. Две эти меры позволяют восстанавливать частоту заранее, меньше коллизий.
Программа стартует свернутой в tray, при необходимости ее можно оттуда вытащить или двойным кликом левой кнопкой мыши или правым. Кроме того, однократное нажатие на иконку включает-выключает управление частотой. При выключении (как и при выходе из программы) частота восстанавливается в максимум. За максимальное значение принимается значение BIOS.

Внешний вид.

Обычный.

C&QnF2 свернуто

Развернутый.

C&QnF2 раскрыто



В нормальном, свернутом режиме, программа показывает:
первая строка: загрузка процессора (0...100%) и предполагаемую мощность процессора (0...100%). Увы, показывать не относительную, а абсолютную мощность не представляется возможным. Даже для одной и той-же модели процессора мощность может различаться весьма существенно. Например, у меня были два AMD Athlon XP (Barton) с одинаковым ID, но выпущенные в разное время. На частоте 2.2G и напрядении 1.7V один из них рассеивал 75W, второй 96W. Наверно, при анализе большего числа процессоров разброс мощностей окажется еще значительнее.
вторая строка: текущие параметры - частота FSB, памяти и напряжение процессора.
третья строка: максимальные параметры - частота FSB и напряжение процессора. Для v0.3.10(11) максимальный FSB еще и можно изменить в файле настроек, а вот напряжение чисто декларативно, потому выводится серым. Этот параметр не используется в программе (v0.3.10/11).
четвертая строка: - частота и напряжение на момент запуска программы. Это максимальные параметры. (правда, максимальную частоту можно несколько изменить - см. выше)
Под информационным полем имеется 2 кнопки:
включения/выключения автоматическим управлением
переход на мою страничку в интернет
кнопка разворачивания.

При нажатии на кнопку '>>' окно увеличивается и становятся доступны средства настройки.
FSB:
min - устанавливает минимальную частоту FSB, ставится о начального значения частоты FSB до аппаратно доступного. Обычно это 70MHz. Параметр в ini - 'Fmin{/10}'. Устанавливает минимальную частоту FSB, указывать число в 0.1MHz. Т.е. 700 будет означать 70MHz.
max - устанавливает максимальную частоту FSB (в версии v0.3.10(11) не реализовано) Параметр в ini - 'Fmax{/10}'. Устанавливает максимальную частоту FSB. Увы, в v0.3.10(11) реализовано плохо, не должен сильно отличаться от начальной частоты.
Voltage:
min - минимальное напряжение на процессоре при минимальной частоте. Для плат nForce2 это может быть от 1.1V до начального(при старте программы) напряжения на процессоре. Параметр в ini - 'Vmin{/1000}'. Устанавливает минимальное напряжение на процессоре, число в mV.
max - максимальное напряжение. (в версии v0.3.10(11) не реализовано) Параметр в ini - 'Vmax{/1000}'.
Precomp.V:
low - устанавливать минимальное напряжение не при самой минимальной частоте, а несколько раньше (бОльшей частоте). Это несколько уменьшает мощность и при несильной загрузке прцессора позволяет вообще не менять напряжение, что значительно уменьшает тепловые удары (резкое изменение тепловой мощности) процессора. Параметр в ini - 'CompVmin', имеет значение от 1 до 99%.
high - аналогичный параметр, только наоборот. Эта прекомпенсация устанавливает максимальное напряжение на несколько меньшей частоте, чем максимальное. Точка с максимальным напряжением и частотой, как правило, обладает неибольшей неустойчивостью при регулировании и эта компенсация позволяет выставлять максимальную частоту более 'мягко'. Параметр в ini - 'CompVmax', имеет значение от 1 до 99%.
Установка любого параметра из этой группы возможна токо по кнопке 'apply'. Это сделано для корректной смены режимов.
Вторая группа параметров не столь серьезно сказываются на устойчивости программы и регулируют realtime, без каких-либо кнопой 'применить'.
CPU load %
Fup - порог загрузки процессора, при котором программа начинает повышать частоту (1...99%). Параметр в ini - 'CPUprcUp', может иметь значение от 1 до 99%, но не меньше CPUprcDown.
Fdown - аналогично, порог для понижения частоты. Параметр в ini - 'CPUprcDown', может иметь значение от 1 до 99%, но не больше CPUprcUp.
Speed:
Fup - скорость повышения частоты. Режимы 'fast' отличаются меньшими временными интервалами на установку, но весьма значительно загружают процессор. В некоторых случаях это может быть неприемлемо. Параметр в ini - 'SpeedUp', может иметь значение от 0 до 7, что соответствует восьми положениям движка настройки и есть: x1, x2, x4, x8, fast1, fast2, fast4, fast8.
Fdown - аналогично, скорость понижения частоты. Параметр в ini - 'SpeedDown'. Аналогично предыдущему параметру.
Delay to:
Fup - задержка перед повышением частоты. Параметр в ini - 'DelayUp', может иметь значение от 0 до 10 (секунд). При 0 задержка отключается.
Fdown - задержка перед понижением частоты. Это может быть удобно, когда, например, в играх делается небольшая пауза для загрузки уровня и чтоб при этом не происходило уменьшение частоты, можно выставить задержку. Иначе после загрузки уровня компьютер будет 'тормозить' до восстановления максимальной частоты. Параметр в ini - 'DelayDown'. Аналогична предыдущему параметру.
filtered 'CPU load' for level up/down - использовать не мгновенную, а усредненную загрузку процессора для уровней повышения/понижения частоты.
fast clock recovery - когда программа выключается, то она обязана возвратить частоту и напряжение таким, каким оно было на момент запуска. Т.е. при выходе из программы происходит 'аварийное' восстановление. Этот параметр может задать нормальную или увеличенную в 2 раза скорость восстановления. Параметр в ini - 'FastRestoreClock'. Принимает два значения - 0 = выключено и 1 = включено.
enable Bus Disconnect - очень опасная функция, особенно если BIOS mainboard не имеет опций управления Bus Disconnect. Как правило, это означает, что аппаратура плохо работает с этой функцией(Bus Disconnect). Это может порождать различные шумы, да и сказываетя на стабильности работы процессора.
Попутно индицируется состояние Bus Disconnect на момент запуска программы. У меня говорится, что это BIOS, но может быть и не так, если запускались какие-дибо программы для управления этой функцией. Параметр в ini - 'EnableBusDisconnect'. Принимает два значения - 0 = выключено и 1 = включено.
Что-либо изменив, не забывайте нажимать кнопку 'save'!

Кроме того, есть настройки в ini, которые не отображаются в окне программы.
AlwaysTrayIcon - не убирать иконку из трея при максимизации.
EnableIOcaching - кешировать работу с портами. При этом уменьшается загрузка процесоора, но другие программы могут захватить управление напряжением/частотой, что может привести к зависанию. Если у Вас не запускаются такие программы, наверно стоит включить эту опцию.
EnableVoltageControl - разрешить программе управлять напряжением процессора.
EnableAccessBusDisconnect - разрешить управлением Bus Disconnect.

С левой стороны окна программы есть два графика.
Левый рисует состояние напряжения/частоты, правый - графики загрузки процессора частоты и предполагаемой мощности процессора.
На левом графике по горизонтали отложена частота от минимального до максимального значения, а по высоте - напряжение. Бегущая желтая точка показывает текущее напряжение/частоту.
На правом графике:
мгновенная загрузка процессора
усредненная загрузка процессора
частота FSB в процентах от мин. до макс. значения.
предполагаемая мощность процессора, усреднено.

Ограничения.

Программа работает только на chipset'е nForce2. Выпуск программы для других chipset'ов процессора К7 не планируется. Под К8 - когда появится соответствующее 'железо'. 'Теоретический' перенос программы невозможен, слишком много неописанных проблем с аппаратурой (банальное отсутствие документации).
Программа может работать только тогда, когда установлен синхронный режим памяти. Эту проблему можно обойти, хоть и очень дорогой ценой, но ... как-то не очень нужно - при установке несинхронного режима памяти потери производительности подсистемы памяти настолько велики, что не могут быть скомпенсированы завышенной частотой памяти. Подробнее см. в
BenchMem.
Не работает под W9x. Причин 'больше одной', потому не будет.

Что, где, ...???

AMD K7 на nForce2:
Текущая версия:
0.3.11.

Версия для процессоров Intel Core2 с аналогичными функциями (CnQC2).
Текущая версия: 0.5.8.
При работе на процессорах Core2 обнаружился интересный момент - срабатывание термозащиты при низкой температуре по DTS (внутренние датчики температуры на ядрах процессора).
Предполагается, что термозащита TM2 должна срабатывать при приближении к пороговой Tj (100 градусов для Core2). В случае, если TM2 не способна справится с повышенной температурой, должна срабатывать TM1. Естественно, механизм TM1 должен (бы) срабатывать при температуре больше Tj. Но увы, я наблюдал падение производительности процессора при температурах горазо ниже Tj (по DTS). Причем, эта температура срабатывания имела большой гистерезис и явно слабо зависела от DTS. Скорее это зависело от температуры радиатора (крышки). Значит это не TM2 и не по DTS. Видимо, TM1.
В большенстве матплат нельзя отключить термозащиту TM1, поэтому добавил это свойство в C&QC2.
Посмотрите на температуры в разделе Core's - они далеки от 95 градусов. Причем, этот деструктивный момент я наблюдал и на двухядерном Core2 E6600 и на Core2 Q6600.

C&QC2 smart


На вкладке 'Overheat' появились соответствующие настройки:
Skip:
TM1 - отключить срабатывание аппаратного механизма TM1. Однако, программа продолжает контролировать индикацию его работы и при необходимости (см. HW. OHT) может выполнять его действия.
TM2 - аналогично TM1.
HW. OHT - просто небыло места. Это HardWare OverHeat detector. Если включить эту опцию, то программа будет игнорировать индикацию заблокированных механизмов TM1, TM2 и ограничивать частоту процессора только по данным температуры мониторинга (по DTS). Собственно, ради этого все и затевалось.
C1E - блокировать технологию расширенного Halt. Т.к. напряжением управляет моя программа, то в C1E нет совершенно никакого смысла (мощность потребления простаивающего процессора не зависит от его частоты, а только от напряжения). Пользу от C1E нет, а вот вред есть - при импульсных нагрузках (обмен с внешними устройствами типа USB &etc) обработка выполняется на пониженной частоте. Короче, это надо выключать.
Lowest Ratio&VID at Throttling detected. - при обнаружении аппаратной (TM1/2) индикации срабатывания термозащиты сразу ставить минимальную частоту и напряжение.

State: TM1, TM2 - индикация состояния мезанизмов тепловой защиты. Если зеленый, то нормально. А вот красный - беда.

Выглядит это так:

C&QC2 overheat



back