Технология управления скоростью вращения вентиляторов Intel QST
Технологии тепловой защиты процессоров
Аппаратный мониторинг температуры процессора
Тепловые характеристики процессора
Способы управления скоростью вращения вентиляторов
Управление методом изменения напряжения питания
Управление методом широтно-импульсной модуляции напряжения питания
Алгоритм весовой матрицы вентиляторов Fan Output Weighting Matrix
Аппаратная реализация технологии Intel QST
Давно уже прошли те времена, когда скорость вращения вентилятора кулера на процессоре не регулировалась и он постоянно вращался максимально быстро. Понятно, что использование неуправляемых вентиляторов для охлаждения процессоров нерационально, поскольку это делает систему излишне шумной, ведь процессор охлаждается даже тогда, когда в этом нет никакой нужды.
В настоящее время все процессорные кулеры обладают функциональной возможностью управления скоростью вращения вентилятора. Идея управления скоростью вращения вентилятора проста: эффективность теплорассеивания кулера должна быть пропорциональна количеству выделяемого процессором тепла. Понятно, что чем больше загружен процессор, тем выше его тепловыделение и, следовательно, температура, а потому скорость вращения вентилятора должна зависеть от температуры процессора. Вопрос лишь в том, какова функциональная зависимость между скоростью вращения вентилятора и температурой процессора и как реализовано управление скоростью вращения. В этой статье мы подробно рассмотрим современную технологию управления скоростью вращения вентилятора Intel QST, реализованную на большинстве материнских плат для процессоров Intel.
Какой кулер нам нужен
Если говорить о функциональной зависимости между скоростью вращения вентилятора и температурой процессора, то она должна быть такой, чтобы обеспечить, с одной стороны, минимальный уровень шума, создаваемый вентилятором, а с другой — условия охлаждения, при которых процессор не превышал бы своей критической температуры, при достижении которой срабатывает тепловая защита. Проще говоря, вентилятор кулера процессора должен вращаться быстро только тогда, когда это действительно необходимо.
Довольно часто на различных форумах задают один и тот же вопрос: если температура процессора составляет, к примеру, 70 °С — это много или нет и не нужно ли поменять кулер на более мощный? Поменять кулер на более мощный, конечно, можно, но от этого система станет более шумной, а вот реальной пользы не будет. Вообще, рассуждения о том, является ли температура в 70 °С высокой для процессора или нет, лишены всякого смысла. Во-первых, каждый процессор рассчитан на работу в определенном температурном диапазоне, верхняя граница которого определяется критической температурой процессора, по достижении которой срабатывает тепловая защита. И главное, чтобы кулер обеспечивал такое охлаждение, при котором не достигается критическое значение температуры даже в случае стопроцентной загрузки в течение длительного времени. Если при стопроцентной загрузке процессора с одним кулером его температура составляет 70 °С, а с другим — 75 °С, то говорить о том, что первый кулер более предпочтителен, чем второй, некорректно, поскольку и тот и другой справляются со своей задачей по охлаждению процессора. В этом случае имеет смысл сравнивать кулеры не по температуре процессора, а по создаваемому ими уровню шума.
Во-вторых, когда говорят о температуре процессора, то возникает вопрос, как она измеряется. Дело в том, что, несмотря на большое количество утилит, определяющих температуру процессора, ни одна утилита (и это принципиальный момент) не может корректно измерить температуру процессора. А потому, если по показаниям какой-либо утилиты температура процессора составляет 70 °С, это вовсе не значит, что она действительно равна этому значению. Наверное, все, кто пытался измерить температуру процессора на материнской плате с помощью различных утилит, замечали, что они выдают совершенно разные значения, причем нередко их показания просто абсурдны. Ситуация, когда утилита демонстрирует температуру процессора ниже температуры окружающей среды (что в принципе невозможно), — отнюдь не редкость. Для того чтобы понять, почему так происходит, необходимо разобраться, каким образом подобные утилиты определяют температуру процессора. Однако прежде придется сделать небольшое отступление и ознакомиться с тем, как реализуется тепловая защита процессоров Intel.
Технологии тепловой защиты процессоров
Все современные процессоры имеют встроенные средства тепловой защиты, предотвращающие возможность их перегрева. В процессорах Intel используется три типа тепловой защиты: Thermal Monitor, Thermal Monitor 2 и режим аварийного отключения.
Технология Thermal Monitor
Технология Thermal Monitor (TM) заключается в следующем. При достижении процессором некого критического значения температуры генерируется специальный служебный сигнал PROCHOT#, при котором активируется специальный модуль Thermal Control Unit. Задача этого модуля заключается в том, чтобы модулировать номинальную тактовую частоту процессора. При модуляции в период действия сигнала PROCHOT# на номинальный сигнал тактовой частоты процессора накладывается еще один тактирующий сигнал прореживания (Duty cycle), частота которого гораздо ниже тактовой частоты процессора. В результате частота тактирования процессора оказывается прореженной и можно говорить, что эффективная частота процессора ниже номинальной (рис. 1). Важно отметить, что технология Thermal Monitor никак не влияет на частоту тактирования процессора, а лишь модулирует ее.
Рис. 1. Модуляция частоты в технологии Thermal Monitor
В результате прореживания тактовой частоты процессор будет иметь меньшую производительность и меньшее тепловыделение, а температура процессора, как следствие, снизится. Как только температура ядра процессора станет ниже критического значения на 1 °С, сигнал PROCHOT# исчезнет и номинальная тактовая частота процессора совпадет с эффективной.
Если процессор поддерживает технологию TM, то в некоторых случаях пользователь может в BIOS настраивать сигнал Duty cycle, управляя его скважностью.
Если в тактирующем сигнале Duty cycle промежуток времени, в течение которого производится тактирование процессора, обозначить Ton., а промежуток времени, в течение которого тактирование процессора не производится, — Toff, то под скважностью сигнала Duty cycle понимается отношение промежутка Ton к суммарному времени Ton + Toff:
Значение скважности сигнала Duty cycle задается в процентах с шагом 12,5% в диапазоне от 12,5 до 87,5%.
Значение Toff зависит от частоты процессора, уменьшаясь с ростом частоты. Максимально допустимое значение времени Toff составляет 3 мкс. К примеру, если задать значение скважности сигнала Duty cycle равным 87,5% (7/8) при значении TToff 3 мкс, то несложно подсчитать, что значение Ton составит 21 мкс.
Технология Thermal Monitor 2
Кроме технологии Thermal Monitor, все современные процессоры Intel поддерживают усовершенствованную технологию тепловой защиты Thermal Monitor 2 (TM2), которая позволяет в еще большей степени влиять на энергопотребление процессора при достижении им критической температуры.
В технологии TM2 при достижении процессором критической температуры активируется служебный сигнал PROCHOT#, при котором происходит скачкообразное снижение тактовой частоты процессора и напряжения питания (рис. 2).
Рис. 2. Изменение тактовой частоты и напряжения питания
в технологии
Thermal Monitor 2
Снижение тактовой частоты процессора производится за счет уменьшения коэффициента умножения до минимального значения. Процесс изменения тактовой частоты занимает очень мало времени — всего 5 мкс. По достижении минимального значения тактовой частоты процессора происходит ступенчатое уменьшение напряжения питания процессора порциями по 12,5 мВ. Минимальное значение напряжения соответствует минимальной частоте процессора.
В результате снижения тактовой частоты процессора и напряжения питания снижается и его энергопотребление, а следовательно, и температура процессора. После того как температура процессора достигнет значения ниже критического, напряжение питания процессора вновь ступенчато увеличивается, после чего скачкообразно восстанавливается значение тактовой частоты процессора.
Режим аварийного отключения
Если процессор поддерживает технологию тепловой защиты TM2, то он поддерживает и технологию TM. В этом случае при достижении процессором критического значения температуры сначала активируется технология тепловой защиты TM2, а если этого оказывается недостаточно (например, используется слабый кулер, который неспособен отвести нужное количество тепла даже при работе процессора на минимальной частоте и при минимальном напряжении), то активируется технология TM. Если же и этого мало, то для предотвращения перегрева процессоров применяется их аварийное отключение. Этот режим включается, когда температура процессора примерно на 20-25 °С превышает критическое значение. В этом случае генерируется служебный сигнал THERMTRIP# на аварийное отключение системы. Точное значение температуры, при котором происходит генерация сигнала THERMTRIP# на аварийное отключение системы, задается в процессе калибровки процессора и не может быть изменено. Более того, точное значение этой температуры различно для разных моделей процессоров (даже если речь идет о разных экземплярах одной и той же модели процессора) и неизвестно.
Аппаратный мониторинг температуры процессора
Все рассмотренные технологии тепловой защиты процессоров требуют постоянного мониторинга температуры процессоров. То есть мониторинг температуры реализован в любом процессоре и все утилиты, которые способны отображать температуру процессора (так же как и BIOS), используют его.
В принципе, то, как именно определяется температура процессора, зависит от конкретного процессора, а потому утилит, которые могли бы одновременно определять температуру процессоров и Intel и AMD, очень мало. Да и те, что есть, делают это некорректно. К примеру, известная утилита Everest более-менее корректно (для некоторых моделей) определяет температуру процессоров Intel и совершенно некорректно — температуру процессоров AMD (особенно если речь идет о новых моделях). Как именно утилиты определяют температуру процессоров AMD, нам неизвестно. К сожалению, компания AMD очень скупа на любую техническую информацию о своих процессорах, а потому в дальнейшем мы сосредоточимся исключительно на способах измерения температуры процессоров Intel.
Для мониторинга температуры в процессорах Intel используется два метода. Первый предназначен для определения температуры в старых процессорах Intel на базе микроархитектуры NetBurst (Pentium 4, Celeron D, Pentium D). В них есть встроенный термодиод (p-n-переход), по значению напряжения на котором можно косвенно определять значение температуры. Проблема заключается в том, что напряжение на термодиоде с изменением температуры изменяется нелинейно и требуется соответствующая таблица калибровки, то есть таблица пересчета напряжения в температуру. Такие таблицы «зашиты» в микросхему мониторинга, и все утилиты мониторинга, контролирующие температуру процессора, считывают значение температуры с микросхемы мониторинга. Именно поэтому в старых компьютерах при обновлении версии BIOS могли меняться и показания температуры процессора, демонстрируемые утилитами мониторинга и самой BIOS.
Для контроля температуры современных процессоров Intel с микроархитектурой Intel Core в каждом ядре процессора имеется специальный цифровой датчик температуры (Digital Temperature Sensor, DTS), являющийся неотъемлемой частью ядра процессора (рис. 3).
Рис. 3. Структурная схема цифрового датчика температуры в процессорах
с микроархитектурой Intel Core
Этот датчик преобразует аналоговое значение напряжения в цифровое значение температуры, которое сохраняется во внутренних программно-доступных регистрах процессора. Причем во внутренних регистрах процессора сохраняется не абсолютное значение температуры, а отрицательная разница ?T между текущим значением температуры процессора и ее критическим значением Tj : ?T = T-Tj. К примеру, если критическое значение температуры составляет 100 °С, а текущее значение — 85 °С, то DTS-сенсор будет определять значение ?T = –15 °С. То есть датчик DTS используется процессором не для контроля текущего абсолютного значения температуры, а для отслеживания состояния, когда текущая температура достигнет критического значения температуры Tj, при котором срабатывает тепловая защита. Когда разница между критическим значением температуры tj процессора и текущим значением становится равной нулю, генерируется сигнал PROCHOT#, при котором активируется тепловая защита процессора.
Значение ?T, сохраняемое во внутренних программно-доступных регистрах процессора, доступно также для чтения по интерфейсу PECI (Platform Environment Control Interface).
Интерфейс PECI был представлен компанией Intel в 2006 году для процессоров с архитектурой Intel Core, которые содержат DTS-сенсоры. Собственно, DTS-сенсоры совместно с интерфейсом PECI представляют собой единое решение для теплового мониторинга процессоров. Шина PECI является одноконтактной; по ней процессор связан с южным мостом чипсета, и южный мост, а также устройства, подключенные к южному мосту, могут получить доступ к значению dT, сохраняемому во внутренних регистрах процессора.
Интерфейс PECI используется системой FSC (Fan Speed Control) для управления скоростью вращения вентиляторов.
В двухъядерных процессорах, когда имеется два DTS-сенсора (по одному на каждое ядро), в буфере PECI сохраняется значение DTS, соответствующее более высокой температуре (значение, более близкое к tj ), и именно это значение доступно системе FSC (рис. 4).
Рис. 4. DTS-сенсоры и интерфейс PECI в двухъядерном процессоре
В четырехъядерном процессоре, имеющем структуру 2x2, то есть два двухъядерных процессора в одном корпусе, два PECI-домена (рис. 5). В этом случае система FSC использует оба PECI-домена для отслеживания температуры в обоих кристаллах, а для контроля скорости вращения вентилятора — значение более высокой температуры.
Рис. 5. DTS-сенсоры и интерфейс PECI в четырехъядерном процессоре
со структурой 2x2
В монолитных четырехъядерных процессорах, то есть в процессорах, имеющих структуру «четыре ядра на одном кристалле», всего один PECI-домен, и по интерфейсу PECI системе FSC доступно значение температуры ?T самого горячего ядра (рис. 6).
Рис. 6. DTS-сенсоры и интерфейс PECI
в четырехъядерном процессоре со структурой
«четыре ядра на одном кристалле»
Итак, после краткого знакомства с тем, каким образом осуществляется мониторинг температуры процессора, можно ответить на один важный вопрос: почему показаниям всех без исключения утилит мониторинга, отслеживающих температуру процессора, нельзя доверять? Потому что на аппаратном уровне абсолютное значение температуры процессора не отслеживается. Все утилиты могут лишь получить доступ к программно-доступным регистрам процессора, в которых сохраняется отрицательное значение ?T, то есть разница между текущей температурой процессора и критической температурой Tj, по достижении которой генерируется сигнал PROCHOT#.
В принципе, зная критическую температуру процессора tj и значение ?T, можно определить и значение текущей температуры процессора (T = ?T+Tj ). Собственно, все утилиты мониторинга температуры процессоров Intel именно таким образом и пытаются определить температуру процессора. Проблема заключается в том, что критическое значение температуры tj неизвестно. И дело вовсе не в том, что это какие-то секретные данные. Просто значение критической температуры индивидуально для каждого процессора (даже если речь идет о разных образцах одной и той же модели процессора) и «зашивается» в процессор на этапе его калибровки. Поэтому можно говорить лишь о примерном значении критической температуры процессоров (с точностью до 5 °С) — рис. 7.
Рис. 7. Примерное значение критической температуры для
двухъядерных и четырехъядерных процессоров Intel
Точность определения температуры процессора различными утилитами зависит от того, какое именно значение критической температуры используется в утилите для конкретного процессора. К примеру, если в программе применяется критическое значение температуры 80 °С, а реальное значение для процессора составляет 85 °С, то понятно, что утилита будет определять температуру процессора на 5 °С ниже, чем она есть на самом деле.
Из утилит, которые определяют значение температуры процессора по значению DTS, можно отметить утилиты Real Temp и Core Temp. Но если, к примеру, взять процессор Intel Core 2 Extreme QX6850 на ядре Kentsfield, то в утилите Core Temp для этого процессора используется значение критической температуры 100 °С, а в утилите Real Temp — 95 °С. Соответственно утилита Core Temp определяет температуру ядер процессора на 5 °С выше, чем утилита Real Temp.
Вообще, если говорить о мониторинге температуры процессора с помощью различных утилит, то более корректно отслеживать не абсолютное значение температуры, а именно разницу ?T между текущим значением T и критическим значением tj (рис. 8 и 9). Отметим, что утилиты Real Temp и Core Temp могут отображать разницу ?T для каждого ядра процессора.
Рис. 8. Отображение разницы ?T между
текущим значением T и критическим значением Tj
в утилите Core Temp 0.99.1 для процессора
Intel Core 2 Extreme QX6850
Рис. 9. Отображение разницы ?T между
текущим значением T и критическим значением Tj
в утилите Real Temp 2.70 для процессора
Intel Core 2 Extreme QX6850
Однако даже в том случае, когда отслеживается не абсолютное значение температуры процессора, а именно разница ?T между текущим значением T и критическим значением tj по показаниям датчика DTS, нужно иметь в виду одно важное обстоятельство. Дело в том, что, несмотря на фабричную калибровку DTS-сенсоров, их показания являются точными только при температуре, близкой к критической. Это не связано с тем, что показания DTS-сенсоров нестабильны. Просто процесс калибровки DTS-сенсоров заключается в том, чтобы установить однозначное соответствие между реальной температурой и температурой, определяемой DTS-сенсором. Понятно, что эта зависимость линейная. Процесс калибровки производится при температуре, близкой к критической. При этом наклон прямой, отображающей зависимость между реальной температурой и температурой DTS-сенсора, может варьироваться в широких пределах (рис. 10).
Рис. 10. Показания DTS-сенсора являются точными только
при температуре, близкой к критической
В результате показания DTS-сенсора можно считать точными только при температуре, близкой к критической, однако если речь идет о диапазоне температур, далеком от Tj, то полагаться на показания DTS-сенсора не стоит. К примеру, если процессор не нагружен и имеет хороший кулер, а значение ?T, определяемое DTS-сенсором, составляет –60 °С, то это еще ничего не значит. Реальное значение ?T может быть и –70 °С, и –50 °С. Если предположить, что tj для данного процессора составляет 100 °С, то это означает, что реальная температура в точке размещения DTS-сенсора может быть как 30, так и 50 °С. То есть температурная ошибка в таких условиях может оказаться очень большой. Это еще одна причина, на основании которой можно утверждать, что ни одна утилита не в состоянии корректно определять температуру процессора.
Собственно, вывод, который можно сделать на основании всего вышеизложенного, заключается в следующем. Корректный мониторинг температуры процессора с помощью различных утилит возможен только в том случае, если, во-первых, утилиты отображают значение DTS-сенсоров dT, то есть разницу между текущим и критическим значениями температуры, а во-вторых, если речь идет о диапазоне температур, близких к критической.
В завершение описания технологии аппаратного мониторинга температуры добавим, что в процессорах следующего поколения семейства Intel Core i7 (известных также под кодовым наименованием Nehalem) аппаратный мониторинг температуры тоже будет производиться с использованием DTS-сенсоров, однако с небольшими изменениями. В процессорах Nehalem на этапе калибровки DTS-сенсоров значение критической температуры tj будет заноситься в специальные программно-доступные регистры процессора. Поэтому в процессорах Nehalem можно будет корректно отслеживать не только ?T, но и реальную температуру процессора.
Тепловые характеристики процессора
После рассмотрения методов мониторинга температуры процессоров с архитектурой Intel Core для полноты картины напомним, какие еще (кроме критической температуры) используются тепловые характеристики процессора. В технической спецификации на любой процессор Intel в обязательном порядке указываются его тепловой профиль, TDP и максимальная температура корпуса.
Тепловой профиль (Thermal Profile) — это зависимость между количеством рассеиваемого процессором тепла (Power) через теплорассеивающую крышку и температурой корпуса (рис. 11).
Рис. 11. Тепловой профиль процессоров Intel Core 2 Duo серии E8000
При этом под температурой корпуса понимается температура, измеряемая в геометрическом центре теплорассеивающей крышки процессора (рис. 12).
Рис. 12. Точка, в которой измеряется температура корпуса процессора
Важно подчеркнуть, что температура корпуса процессора никак не связана с температурой, определяемой DTS-датчиком, а тепловыделение процессора — это не его энергопотребление.
Тепловой профиль процессора, определяющий зависимость между тепловыделением процессора и температурой корпуса, — это, скорее, некая лабораторная характеристика процессора, в том смысле что в реальных условиях (не в лабораторных) невозможно измерить ни тепловыделение процессора, ни температуру корпуса. Более практичной в этом плане является такая характеристика процессора, как TDP (Thermal Design Profile). Любой процессор рассчитан на работу в определенных термальных условиях, когда его тепловыделение и температура корпуса не превышают некоторых максимальных значений. Так вот, тепловыделение процессора, при котором достигается максимальная температура корпуса процессора, называется TDP. По тепловому профилю процессора всегда можно определить его TDP. К примеру, для процессоров Intel Core 2 Duo серии E8000, чей тепловой профиль показан на рис. 11, TDP составляет 65 Вт, причем при тепловыделении процессора 65 Вт температура корпуса процессора составит 72,4 °С.
Знание TDP процессора важно для того, чтобы определить, какой кулер необходимо использовать для его охлаждения. Кулер должен рассеивать тепла не меньше, чем TDP процессора. В противном случае процессор будет перегреваться и активировать технологии тепловой защиты. Отметим, что многие производители в технических характеристиках своих кулеров указывают, какую тепловую мощность они способны рассеять.
Кроме максимальной температуры корпуса, TDP и теплового профиля, в документации на процессор нередко встречается и такая характеристика, как Tcontrol. С ней мы ознакомимся чуть позже, при описании технологии Intel QST.
Способы управления скоростью вращения вентиляторов
Как уже отмечалось, интенсивность теплорассеивания кулера процессора должна зависеть от его текущей температуры. Понятно, что интенсивность теплорассеивания зависит также от скорости вращения вентилятора, поэтому необходимо, чтобы скорость вращения вентилятора зависела от температуры процессора. Если говорить о способах управления скоростью вращения вентиляторов, то их два: управление методом изменения напряжения питания и управление методом широтно-импульсной модуляции напряжения питания (Pulse Wide Modulation, PWM).
Управление методом изменения напряжения питания
В технологии управления скоростью вращения вентилятора методом изменения напряжения питания для изменения скорости вращения меняется напряжение питания, подаваемое на электромотор вентилятора. Диапазон изменения напряжения питания составляет от 6 до 12 В. Данная схема управления скоростью вращения вентилятора достаточно проста: контроллер на материнской плате (Fan Speed Control, FSC), анализируя текущее значение температуры процессора, выставляет нужное значение напряжения питания вентилятора. До определенного значения температуры процессора напряжение питания на вентиляторе минимально и вентилятор вращается на минимальной скорости, создавая минимальный уровень шума. Как только температура процессора достигает некого порогового значения, напряжение питания вентилятора начинает динамически увеличиваться вплоть до максимального значения в зависимости от температуры. Соответственно меняется и скорость вращения вентилятора.
Рассмотренная технология управления скоростью вращения вентилятора реализована во всех материнских платах. Правда, почти все современные материнские платы поддерживают и второй способ управления скоростью вращения вентилятора — метод широтно-импульсной модуляции напряжения питания. Причем определить это очень просто. Если материнская плата совместима с технологией управления скоростью вращения вентилятора методом широтно-импульсной модуляции напряжения питания, то разъем для подключения кулера процессора должен иметь четыре контакта. Если же разъем является трехконтактным (как на старых материнских платах), то поддерживается только метод изменения напряжения питания. При этом его можно втыкать в четырехконтактный разъем, но в BIOS нужно выбрать соответствующий метод управления скоростью вращения. В случае если плата поддерживает оба способа изменения скорости вращения вентилятора, то в настройках BIOS должна иметься возможность выбора между методами управления.
Говоря о количестве контактов, заметим, что один из них — это напряжение питания, другой — «земля», а третий — сигнал тахометра, формируемый вентилятором и необходимый для определения текущей скорости его вращения. Сигнал тахометра представляет собой прямоугольные импульсы напряжения, причем за один оборот вентилятора формируется два импульса напряжения. Зная частоту следования импульсов сигнала тахометра (f), можно определить скорость вращения вентилятора: RPM (об./мин) = f(Гц)x30.
Управление методом широтно-импульсной модуляции напряжения питания
Второй способ управления скоростью вращения вентилятора — это применение широтно-импульсной модуляции (ШИМ-модуляции), или, если использовать англоязычное сокращение, модуляции PWM (Pulse Wide Modulation). Идея этого метода достаточно проста. Специальный PWM-контроллер на материнской плате формирует последовательность прямоугольных импульсов, подаваемых на контроллер вентилятора. Эти импульсы используются как управляющие сигналы для своеобразного электронного ключа, который периодически подключает и отключает вентилятор от напряжения питания в 12 В. Частота управляющих PWM-импульсов остается неизменной, меняется лишь их скважность, определяемая как отношение времени, при котором PWM-сигнал находится при высоком напряжении (Ton), к длительности всего импульса (Ton+Toff):
К примеру, если скважность составляет 40%, то это означает, что время, в течение которого на вентилятор подается напряжение, составляет 40% от периода PWM-импульса.
Согласно рекомендациям Intel, частота следования управляющих PWM-импульсов должна находиться в диапазоне от 21 до 28 кГц, а рекомендуемое значение амплитуды PWM-импульсов составляет 3,3 В (максимальное значение амплитуды — 5,25 В).
Преимуществом PWM-технологии является возможность изменения скорости вращения вентилятора в более широком диапазоне, нежели при использовании технологии динамического изменения напряжения питания.
Как уже отмечалось, все вентиляторы, поддерживающие PWM-технологию, имеют четыре контакта. Первые три из них точно такие же, как и у трехконтактных вентиляторов (напряжение питания, «земля» и сигнал тахометра), а четвертый контакт предназначен для передачи управляющих PWM-импульсов.
Технология Intel QST
Итак, мы рассмотрели способ аппаратного контроля температуры процессоров Intel и методы динамического изменения скорости вращения вентиляторов, то есть, по сути, метод динамического изменения эффективности теплоотвода, создаваемый процессорным кулером. Нам осталось лишь выяснить, каким образом используется контроль температуры процессора для управления скоростью вращения вентиляторов, то есть алгоритм, по которому осуществляется регулирование скорости вращения вентиляторов в зависимости от температуры процессора.
Контроллер, отвечающий за регулирование скорости вращения вентилятора, имеет обобщающее название FSC (Fan Speed Control). До недавнего времени на всех материнских платах он представлял собой отдельную микросхему (например, производства Winbond), которая, получая сведения о температуре процессора, управляла скоростью вращения вентиляторов. Как правило, это многофункциональные микросхемы, и управление скоростью вращения вентиляторов — лишь одна из их возможностей. Такие специализированные микросхемы содержат встроенный PWM-контроллер, а также позволяют динамически изменять напряжение на вентиляторе (для трехпиновых кулеров). Алгоритм, по которому изменяется скважность PWM-импульсов или напряжение на вентиляторе, «прошит» в самом контроллере. Программированием FSC-контроллеров занимаются производители материнских плат.
Альтернативный способ заключается в том, чтобы использовать для управления скоростью вращения вентиляторов не отдельную специализированную микросхему, а контроллер, встроенный в чипсет. Собственно, в этом и состоит технология Intel QST (Intel Quiet System Technology). Преимущество данного подхода заключается как минимум в том, что нет необходимости применять отдельную микросхему, что позволяет снизить себестоимость производства материнской платы.
Технология Intel QST впервые была реализована в чипсете Intel 965 Express и теперь поддерживается всеми новыми чипсетами Intel. Это вовсе не означает, что все производители материнских плат используют преимущества данной технологии. К примеру, несмотря на наличие встроенного в чипсет контроллера FSC, на многих материнских платах до сих пор реализуется управление скоростью вращения вентиляторами с использованием отдельных микросхем на материнских платах. Определить, поддерживает ли плата технологию Intel QST или нет, не так-то просто. Но если на плате нет отдельной микросхемы мониторинга типа Winbond, то это верный признак того, что на ней реализована поддержка технологии Intel QST. Однако наличие такой отдельной микросхемы еще не означает, что плата не поддерживает технологию Intel QST, поскольку, как мы уже отмечали, на эти микросхемы возлагается не только функция контроля за скоростью вращения вентиляторов.
Итак, ознакомимся с технологией Intel QST более подробно. Технология Intel QST призвана реализовать такой алгоритм управления скоростью вращения вентиляторов, чтобы, с одной стороны, минимизировать уровень создаваемого ими шума, а с другой — обеспечить эффективное охлаждение процессора.
Что касается преимуществ технологии Intel QST, то их как минимум четыре. Во-первых, как уже отмечалось, это интегрированное в чипсет решение, что позволяет снизить себестоимость производства материнских плат. Во-вторых, технология Intel QST позволяет контролировать не только скорость вращения вентилятора процессора, но и других вентиляторов, установленных в корпусе ПК или на материнской плате, за счет использования алгоритма весовой матрицы вентиляторов Fan Output Weighting Matrix. В-третьих, в технологии Intel QST реализован особый PID-алгоритм, позволяющий более точно (в сравнении с традиционными методами) контролировать температуру процессора или чипсета, соотнося ее с некой контрольной температурой Tcontrol, что позволяет в итоге минимизировать уровень создаваемого вентиляторами шума. И в-четвертых, технология Intel QST полностью программируемая.
Вкратце управление скоростью вращения вентилятора кулера процессора в технологии Intel QST можно описать следующим образом. Для контроля температуры процессора используются DTS-сенсоры, а само значение температуры передается по интерфейсу PECI в схему FSC, которая на основе полученных данных и заданного значения контрольной температуры Tcontrol выбирает требуемую скважность PWM-импульсов или напряжение питания (для трехконтактных вентиляторов), что позволяет изменить скорость вращения вентилятора. К примеру, если значение температуры, определяемое DTS-сенсором, менее –20 °С, то скорость вращения вентилятора может быть минимальной. При более высоком значении температуры скважность PWM-импульсов (или напряжение питания), а следовательно, и скорость вращения вентилятора увеличивается линейно с ростом температуры, достигая максимального значения при температуре Tcontrol, которая может составлять, к примеру, –10 °С (рис. 13).
Рис. 13. Пример зависимости скорости вращения вентилятора
от температуры процессора в технологии Intel QST
Структурная блок-схема реализации технологии Intel QST представлена на рис. 14.
Рис. 14. Структурная блок-схема реализации технологии Intel QST
PID-контроллер
Основным компонентом технологии Intel QST является PID-контроллер (Proportional-Integral-Derivative), задача которого заключается в выборе нужной скважности PWM-импульсов/напряжения питания на основе данных о текущей температуре процессора. PID-контроллеры широко используются в технике и электронике как контроллеры с обратной связью для поддержания на заданном уровне определенных параметров процесса. К примеру, PID-контроллеры находят применение для контроля на заданном уровне температуры, давления или скорости течения жидкости. В дальнейшем мы рассмотрим принцип действия PID-контроллера применительно к контролю температуры процесса.
Принцип действия PID-контроллера достаточно прост. Входными данными PID-контроллера являются текущая температура процесса (например, температура процессора или чипсета) и некая заранее определенная контрольная температура Tcontrol (иногда ее обозначают как Target Temperature или Setpoint). PID-контроллер рассчитывает разницу (ошибку) между текущей температурой и контрольной и на ее основе, а также с учетом скорости ее изменения и предыдущих значений разницы по специальному алгоритму вычисляет изменение скважности PWM-импульсов, необходимое для минимизации ошибки. То есть если рассматривать разницу между текущей и контрольной температурой как функцию ошибки, зависящую от времени e(t), то задача PID-контроллера заключается в том, чтобы минимизировать функцию ошибки, или, проще говоря, изменять скорость вращения вентилятора таким образом, чтобы постоянно удерживать температуру процессора на уровне контрольного значения.
Основной особенностью PID-контроллера является то, что алгоритм расчета необходимых изменений учитывает не только абсолютное значение разницы (ошибки) между текущей температурой и контрольной, но и скорость изменения температуры, а также предыдущие значения ошибок. То есть в алгоритме расчета необходимых корректировок используются три составляющие: пропорциональный член (Proportional, Pout), интегральный член (Integral, Iout) и дифференциальный член (Derivative, Dout). По их названиям получил имя и сам контроллер — Proportional-Integral-Derivative (PID).
Пропорциональный член Pout учитывает текущую разницу (ошибку) между текущим значением температуры и контрольным значением. Интегральный член Iout учитывает значение ошибок в предыдущие моменты времени, а дифференциальный член Dout характеризует скорость изменения ошибки.
Пропорциональный член Pout определяется как произведение ошибки e(t) в текущий момент на некий коэффициент пропорциональности Kp :
Pout = Kpe(t).
Коэффициент Kp — это настраиваемая характеристика PID-контроллера. Чем больше значение коэффициента Kp, тем больше будет изменение управляемой характеристики при заданном значении ошибки. Слишком большие значения Kp приводят к нестабильности системы, в то время как слишком малые значения Kp — к недостаточной чувствительности PID-контроллера.
Интегральный член Iout характеризует накопленную сумму ошибок за некоторый интервал времени, то есть учитывает предысторию развития процесса. Интегральный член определяется как произведение коэффициента Ki на интеграл от функции ошибок по времени:
Коэффициент Ki является настраиваемой характеристикой PID-контроллера. Интегральный член совместно с пропорциональным членом позволяет ускорить процесс минимизации ошибки и стабилизировать температуру на заданном уровне. В то же время большое значение коэффициента Ki может привести к колебаниям текущей температуры относительно контрольной, то есть к возникновению временных перегревов (Tcontrol).
Дифференциальный член Dout характеризует скорость изменения температуры и определяется как производная от функции ошибок по времени, умноженная на коэффициент пропорциональности Ki :
Коэффициент Kd — это настраиваемая характеристика PID-контроллера. Дифференциальный член позволяет управлять скоростью изменения управляемой характеристики PID-контроллера (в нашем случае изменением скважности PWM-импульсов (?PWM) или напряжения питания) и тем самым избежать временного перегрева, обусловливаемого интегральным членом. В то же время увеличение значения коэффициента Kd имеет и негативные последствия. Дело в том, что дифференциальный член чувствителен к шуму и усиливает его. Поэтому слишком большие значения коэффициента Kd приводят к нестабильности системы.
Структурная блок-схема PID-контроллера показана на рис. 15.
Рис. 15. Структурная блок-схема PID-контроллера
Алгоритм расчета необходимого изменения скважности PWM-импульсов (?PWM) как реакции на возникающую ошибку достаточно прост:
?PWM = –Pout–Iout+Dout.
При этом нужно отметить, что эффективность работы PID-контроллера определяется оптимальностью подбора коэффициентов Kp, Ki и Kd. Задача настройки PID-контроллера (его прошивки) возлагается на производителя материнской платы с использованием специализированного программного обеспечения Intel.
Возможный характер изменения температуры и скорости вращения вентилятора при применении PID-контроллера показан на рис. 16.
Рис. 16. Возможный характер изменения температуры
и скорости вращения вентилятора
при использовании PID-контроллера
Алгоритм весовой матрицы вентиляторов Fan Output Weighting Matrix
Как уже отмечалось, одно из преимуществ технологии Intel QST заключается в том, что она позволяет одновременно контролировать скорость вращения нескольких вентиляторов. К примеру, это может быть вентилятор процессора, вентилятор северного моста чипсета и вентиляторы, устанавливаемые на передней и задней стенках корпуса. Для реализации данной возможности в технологии Intel QST контролируется несколько рабочих температур (с применением PID-алгоритма). К примеру, первый термодатчик контролирует процессор, а второй может быть расположен вблизи модулей памяти. Самый простой способ управлять вентиляторами — сделать их полностью независимыми друг от друга, то есть скорость первого вентилятора будет определяться исключительно показаниями первого термодатчика T1, а скорость второго — показаниями второго термодатчика T2. В то же время можно использовать показания и первого и второго термодатчиков для управления одновременно обоими вентиляторами. Для этого применяется так называемая весовая матрица вентиляторов (Fan Output Weighting Matrix). В ней указывается весовой коэффициент для каждого термодатчика, вклад каждого вентилятора в охлаждение всей системы в целом. Рассмотрим пример использования весовой матрицы вентиляторов на примере двух термодатчиков (рис. 17). Пусть показания первого термодатчика полностью (с весовым коэффициентом 1) определяют скорость первого вентилятора и никак не определяют (с весовым коэффициентом 0) скорость второго вентилятора. Показания второго термодатчика также полностью определяют скорость первого вентилятора и частично (с весовым коэффициентом 0,5) скорость второго вентилятора. То есть если показания первого термодатчика достигнут контрольной температуры, то это приведет к увеличению скорости вращения первого вентилятора за счет изменения ?PWM и никак не отразится на скорости второго вентилятора. Если же показания второго термодатчика достигнут контрольной температуры, то происходит изменение ?PWM для первого вентилятора и изменение, равное 0,5 ?PWM, для второго вентилятора. То есть требуемые изменения ?PWM предварительно умножаются на соответствующий весовой коэффициент, определяемый для каждого вентилятора, и только после этого подаются на каждый из управляемых вентиляторов. Таким образом, скорость вращения вентилятора процессора может увеличиться, даже если температура самого процессора еще не достигла контрольного значения. Это означает, что какой-то другой термодатчик в системе достиг своего контрольного значения, а в весовой матрице вентиляторов для этого термодатчика определен ненулевой весовой коэффициент для вентилятора процессора.
Рис. 17. Принцип реализации весовой матрицы вентиляторов
Отметим, что весовая матрица вентиляторов позволяет управлять несколькими вентиляторами даже в том случае, если выполняется только контроль температуры процессора и на самой плате нет больше интегрированных термодатчиков. Для этого нужно лишь прописать соответствующие весовые коэффициенты в матрице вентиляторов. К примеру, пусть в компьютере применяются вентилятор процессора (Fan 1), вентилятор северного моста чипсета (Fan 2), вентилятор, устанавливаемый на передней стенке корпуса (Fan 3), и вентилятор, устанавливаемый на задней стенке корпуса (Fan 4). В этом случае при достижении процессором контрольной температуры необходимо увеличить эффективность его охлаждения, а также немного повысить поток воздуха через корпус компьютера, чтобы обеспечить вывод тепла из него. Кроме того, можно предположить, что увеличение температуры процессора до контрольного значения приведет к повышению температуры северного моста чипсета. Поэтому весовая матрица вентиляторов в данном случае может выглядеть следующим образом:
|
Fan 1 |
Fan 2 |
Fan 3 |
Fan 4 |
T |
1 |
0,25 |
0,5 |
0,5 |
То есть при достижении процессором контрольной температуры на ?PWM увеличится скважность PWMимпульсов вентилятора процессора (значение ?PWM определяется PIDалгоритмом), на 0,25 ?PWM возрастет скважность PWMимпульсов вентилятора северного моста чипсета и на 0,5 ?PWM — скважность PWMимпульсов переднего и заднего корпусных вентиляторов.
Отметим, что несмотря на то, что в приведенных примерах использования весовой матрицы вентиляторов рассматривались лишь вентиляторы, поддерживающие PWMуправление, эту же матрицу можно применять и для вентиляторов, поддерживающих управление методом изменения напряжения.
Программирование весовой матрицы вентиляторов доступно только производителям материнских плат с помощью специальных утилит Intel, а обычному пользователю данная процедура недоступна. В то же время нужно отметить, что производители материнских плат не слишком широко используют данную возможность. К примеру, нам еще не доводилось видеть материнские платы, в которых была бы реализована возможность управления скоростью вращения вентиляторов в технологии Intel QST.
Аппаратная реализация технологии Intel QST
В заключение расскажем, каким образом технология Intel QST реализована на аппаратном уровне. Как мы уже отмечали, это решение, интегрированное в чипсет. В северном мосте чипсета имеется программируемый блок ME (Memory Engine), на который возлагается задача отработки PIDалгоритма для контроля температуры. В южном мосте чипсета располагается блок FSC, который содержит PWMконтроллеры и непосредственно управляет вентиляторами (рис. 18).
Рис. 18. Аппаратная реализация технологии
Intel QS
Кроме того, для реализации технологии Intel QST необходимо, чтобы в системе применялся канал памяти Channel A (слот DIMM 0) и 2 Мбайт было зарезервировано для Intel QST. Также требуется наличие микросхемы SPI флэшпамяти c достаточным местом для прошивки (Firmware) технологии Intel QST.