Новые технологии буста ядер в процессорах

Intel Turbo Boost и Turbo Boost 2.0

На youtube канале сайта есть видео о том как современные процессоры выбирают частоты для работы в бусте.

Видео, правда это, уже чутка устарело, оно хорошо описывает классический турбо буст, рассказывает о том, что производители понимают под TDP и как их заявленные характеристики соотносятся с тем что есть в реальности. Сильно повторяться о базовых технологиях поэтому не будем. А тем временем в части авторазгона мир на месте не стоял, так что появились новые методы увеличения производительности.

В частности у intel это Adaptive Boost и Thermal Velocity Boost.

Что касается новых бустов, то термал велосити буст, завязан на сложных химико-физических свойствах полупроводников и особенностей p-n переходов и эти сложные эффекты мы посмотрим и на практике. В качестве научно исследовательского оборудования у нас будет, конечно, не что-то размаха большого адронного коллайдера, но всё же для реализации, так скажем, научно-демонстрационного стенда придётся подключить компьютер к кондиционеру.

Но фокусы с магией оставим на потом. А пока вообще вспомним базовые вещи про бусты.

Общие принципы

Суть в том, что задачи на процессорах бывают разные.

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

(почитать о том как работают современные процессорные конвейеры Intel и AMD можно тут, тут и тут)

Естественно использование большей части транзисторов каждый такт вызывает и большее энергопотребление и больший нагрев.

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

Из чего выходит логичный вывод о том, что в моменты, когда приходят на исполнение плохо оптимизированные задачи, вызывающие простои, то задействованные части процессора можно ускорять за счёт неактивности не задействованных.

В общем — идея простая и понятная.

Естественно реализовать её не так просто.

На доработку ушло десятилетие, да и не думаю, что этот процесс завершен, так что в будущем увидим и ещё какие-то бусты.

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

Тогда хорошо параллелящихся задач было не много, поэтому частоты зависели от числа плотно занятых ядер.

Чем меньше ядер используется, тем выше их частота.

Со временем все ядра уже хоть чем-то но стали заниматься, а значит такой буст уже становился бессмысленным и у intel и у AMD подход изменился.

AMD в принципе не стали делать привязку к занятым ядрам. В intel всё таки частотные формулы буста остались, то есть все ядра на максимальную частоту процессоры не бустили, но частота стала завязана и на число задействованных ядер, а на величину оставшегося теплопакета процессора.

Процессор стремиться держать большие частоты, но как только задача становится более плотной по задействованию транзисторов — частота снижается. И этот баланс держится в реальном времени.

Turbo Boost MAX 3.0

Появился впоследствии и буст версии 3.0. Отличия заключаются в том, что после производства intel определяли самые частотные ядра и им отдаётся приоритет на выполнение многопоточных задач. Соответственно эти ядра периодически и бустяться сильнее остальных.

В AMD подход сейчас аналогичный.

Что касается заявленных частот — intel сильно в цифрах прибавили частотные формулы. Во первых — это красиво смотрелось в спецификациях, то есть сделано по маркетинговым соображениям; а во вторых: имея конкурента — не имело смысла излишне ограничивать процессор зажатыми частотными формулами, если в простой задаче процессор действительно мог укладываться в TDP имея хороший буст на все ядра.

Intel Adaptive Boost

Апогеем этого подхода стало появление адаптив буст. Штука совсем новая, но по сути является продолжением подхода расширения частотной формулы.

Intel по сути частотную формулу бустра просто убрали. На деле, скорее всего, причиной того, что ограничения были до этого — это неравномерность частотного потенциала разных ядер. А так как используемый 14-нм техпроцесс вылизан уже донельзя, то скорее всего — разница по потенциалу ядер стала минимальной, а значит — можно прописать таблицы зависимостей частот и напряжений на большие частоты и разрешить процессорам разгоняться ещё сильнее, когда это позволяет остаток TDP.

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

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

Грубо говоря тогда я рассказал вам как продлить турбобуст вверх по частотам, и при этом в тяжёлых задачах штатными методами предотвращать перегрев и излишний шум от охлаждения. И напомню, что тогда на не самом удачном i9 9900k я в играх получил стабильные 5,2 ГГц на все ядра на тонкой башне на 4 трубки.

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

Это несложная процедура, но теперь intel по сути делает это из коробки и называется это intel adaptive boost.

Ну и как вы понимаете — теперь пользователю нужно только указать желаемый предельный TDP и разгон сам подстроится под возможности охлаждения. А на деле — это уже реализовывают и производители материнских плат. Они автоматически оценивают качество охлаждения и сами подкручивают лимиты. В общем — на самом деле в текущий момент смысла в ручном разгоне для повседневной работы нет. Производители всё делают сами, остаётся только попытать счастье с андервольтингом, тогда при возникновении тяжёлой нагрузки частоты будут падать чуть меньше.

Ну и остаётся — самое интересное, ради чего мы тут все и собрались.

Thermal Velocity Boost

Дело в том, что сейчас мы всё вышесказанное оценивали из соображений того, что физические свойства процессора — это данность, с которой нам надо смириться.

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

Ограничения тут чисто физические.

Это анимация (видео ниже), в которой показано как те или иные участки процессор intel 4004 активируются при активации тех или иных пинов, но каждое приходящее питание расходится на каскады из тысяч транзисторов.

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

И суть в том, что открытие транзистора — это процесс не мгновенный. Он, конечно, быстрый. Но когда возникают длинные каскады связей — суммарные отрезки времени на отработку команды уже становятся значимыми. И если мы будем бесконечно увеличивать частоту, то в определённый момент — выполнение прошлой команды начнёт накладываться на выполнение следующей. Ну и результаты выполнения операций будут по сути — случайными. Естественно в таком режиме компьютер не сможет работать.

Чтобы добиться работы на бОльшей частоте можно до определённого уровня увеличивать напряжение. Большее напряжение позволяет жестче обращаться с транзисторами, уменьшая время переходных процессов.

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

В общем-то ситуация нам всем знакомая. Разгоняя процессор приходится поднимать его напряжение. Естественно законы ома никто не отменял, так что при этом у нас ещё и намного сильнее начинается греться процессор.

Вообще нагрев происходит и от увеличения частоты, но от увеличения частоты он линеен, то есть увеличил частоту в два раза — увеличилось потребление в два раза. Увеличил частоту с 4500 МГц до 5 ГГц, потребление увеличилось на 11%. Ну и очевидно, что на деле это не 11%, а намного больше, но причина этого в том, что приходится подавать более высокое напряжение.

В первом приближении — от напряжения потребление увеличивается квадратично.

Поэтому с ростом напряжения нагрев увеличивается очень сильно.

Но на самом деле — время переходного процесса транзистора зависит не только от напряжения. То есть можно изменить условия так, чтобы процессор работал на больших частотах без увеличения напряжения.

И именно на тех принципах, что я сейчас покажу работает термал велосити буст.

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

Но отсутствие теории я с лихвой сейчас компенсирую практикой.

В общем — будем смотреть на фокусы с процессором. Мы будем менять его частотный потенциал при помощи кондиционера и куска скотча.

Ну и главное — измерим полученные в ходе эксперимента результаты.

Но для начала я покажу сейчас и немного другой эффект. Дело в том, что от изменения температуры меняется не только частотный потенциал, но и электрическое сопротивление процессора.

Для демонстрации этого эффекта я зафиксировал одну и ту же частоту и напряжение и провёл тест Cinebench R15 на процессорах с разным обдувом.

С башней гелид сирокко и вентилятором на 1800 оборотов и с подачей воздуха в этот же радиатор с температурой около 10 градусов из кондиционера.

При равных напряжениях — изменилось потребление, упав со 132 Ватта до 125 Ватт. Ну и соответственно, различия температур в тестах обусловлено не только тем, что обдув был холодным воздухом, но и тем, что процессор при равной задачи и равном напряжении потреблял меньше энергии.

Что касается изменения сопротивления — в полупроводниках от температуры — это вопрос не однозначный, но у процессор есть ещё огромная сеть из микроскопических по толщине нарощенных медных соединений, через которые проходят сотни ампер тока, и на них снижение температур однозначно сказывается уменьшением сопротивления, что и выливается в уменьшении потребления при прочих равных.

Хотя на разнице в 20 градусов эффект этот не очень заметен, с пельтье разница у меня была побольше.

Ну и теперь давайте перейдём уже к основной части — изменению частотного потенциала от температуры.

Я сделал два набора тестов в которых лесенкой по 100 МГц поднимал частоту процессора и находил минимальное напряжение при котором компьютер стабильно проходил Cinebench R15. Один набор — с обычным охлаждением, второй — с кондиционером.

Единственное на низких частотах оказалось, что показания V core и потребляемой мощности при снижении напряжения под виндой из датчиков intel отображаются неверно.

Так что для мониторинга я использовал данные, которые собирает материнская плата и разгон делал из под биоса.

Зависимость напряжения от частоты

На низких частотах, когда и с обычным кулером температуры были не высокими — напряжения для обоих вариантов охлаждения были практически идентичными.

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

На воздухе я смог получить 5,1 ГГц. На 5,2 уже нужны были напряжения при которых бы процессор троттлил.

С кондиционером я получил частоту 5,2 ГГц, и аналогично для 5,3 не удалось подобрать рабочие параметры.

На частоте 5,2 ГГц с охлаждением кондиционером для стабильной работы потребовалось напряжение примерно такое же, как на частоте 5,1 ГГц с охлаждением о воздух.

Учитывая, что разница всего 20 градусов — полученные результаты довольно значимые.

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

При этом короткую нагрузку процессор вывозил и на частоте 5,5 ГГц, просто из-за того что не успевал прогреться, а на низких температурах используемого напряжения было достаточно для стабильной работы.

Ну и в играх кондиционер позволил взять 5,3 ГГц на все ядра.

Я специально поставил минимальные настройки графики в игре чтобы сильнее нагрузить процессор. Но в итоге — температуры всё равно были достаточно низкими и установленного напряжения хватало.

И теперь возвращаемся обратно к термал велосити буст.

Как вы могли увидеть — процессор на сниженных температурах получил дополнительную стабильность в 100 МГц на равных напряжениях.

Именно на основе этого эффекта и работает термалвелосити буст.

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

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

Но подобное поведение всё равно в части задач способно увеличить видимую для пользователя разницу. Например когда вы сёрфите интернет — нагрузка возникает редко, в основном когда открываются новые страницы. В это время процессор обычно бывает холодным, а значит в момент открытия страницы процессор может использовать дополнительный буст от большей стабильности на низких температурах. Аналогично, например, и в играх. Если процессор мощный и многоядерный, то как правило в играх он занят на 20-30%, и находится в довольно холодном состоянии. В случае возникновения каких-то фоновых задач или кратковременной нагрузке игрой, из-за которых могли бы возникать микрофризы — процессор может кратковременно поднять частоту выше максимальной благодаря показанному эффекту и снизить время фриза, сделав игру более плавной и комфортной.

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

Пару слов про охлаждение кондиционером

В целом — в летнюю жару помочь может, но в сравнении даже с 4-мя модулями пельтье на 6 вольтах — кондиционер хуже. Да и потребляет он намного больше. Четыре 15 амперных модуля, рассчитанных на 15 Вольт потреблять на 6 вольтах в сумме будут около 140 Ватт, при этом снижая потребление процессора на примерно 50 Ватт за счёт улучшения стабильности процессора на низких температурах, то есть по сути увеличивая потребление компьютера меньше, чем на 100 Ватт.

Пример конструкции с модулями Пельтье, которую можно встроить в водяную систему охлаждения вместо водоблока процессора

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

Короче — с воздушным кондиционером работать смысла нет. Либо пельтье, либо водяные или гликолевые чиллеры.

Ну либо идти уже в низкие температуры, которые потребуют по меньшей мере — защиту для платы от конденсата.

Видео на YouTube канале "Этот компьютер"

Добавить комментарий