На что влияет энергопотребление процессора
Почему процессор не работает на полную мощность?
Производительность центрального процессора (ЦП) зависит от разных факторов. В первую очередь это касается скорости его работы и его разрядности. Собственно, так было с момента появления первого ЦП. Однако, развитие микроэлектроники за это время существенно продвинулось вперёд и теперь мощность процессора завит от гораздо большего количества различных факторов, явлений, обстоятельств и параметров.
Важно! Следует понимать, что в данном случае под «мощностью» понимается вовсе не электрическая мощность, потребляемая процессором из сети электропитания. Речь идёт о количестве работы выполняемой процессором, как исполнителем команд, за какое-то время. То есть, это его производительность или, как её ещё называют, вычислительна мощность.
Что же такое производительность процессора и на что она влияет в современных персональных компьютерах? Чем больше производительность ЦП, тем выше быстродействие всего ПК в целом. И, хотя в современном мире, ЦП уже давно перестал быть «бутылочным горлом», то есть, самым медленным элементом компьютерной системы, всё равно, именно вопросы его производительности выходят на первый план, когда речь заходит о быстродействии системы в целом.
В данной статье будут рассмотрены различные факторы, от которых зависит мощность ЦП, а также даны рекомендации о том, как заставить его работать на полную мощность.
Факторы, влияющие на мощность процессора
Разрядность процессора
Чем выше разрядность процессора, тем быстрее он может обрабатывать данные. Первые процессоры были 4-х битные. В настоящее время существуют 64-х разрядные ЦП и все операционные системы поддерживают их.
Количество ядер процессора
Чем больше ядер процессора задействовано в какой-то момент времени, тем больше его быстродействие, поскольку фактически работает не один процессор, а несколько. Соответственно, теоретически производительность возрастает в разы по сравнению с однопроцессорной системой.
Многопоточность
Каждое физическое ядро благодаря дополнительному набору регистров и достаточному количеству кэш-памяти может быть представлено в виде двух ЦП, каждый из которых выполняет минимальную задачу ОС – так называемый поток. Поток является самой маленькой неделимой единицей кода, за которой «следит» ОС. Собственно, разбитие на задачи – это фактически разбитие на потоки. Использование много поточности в некоторых случаях может дать выигрыш в производительности не хуже, чем даёт удвоение числа ядер.
Энергопотребление и охлаждение
В рамках одной технологии производства, чем выше быстродействие ЦП, тем больше он выделяет тепла, поэтому следует заранее подумать о том, что увеличение производительности должно сопровождаться увеличением эффективности системы охлаждения.
Встроенное графическое ядро
Этот модуль, по сути, является разновидностью математического сопроцессора, поскольку вся работа с графикой – это на 99% вычисления. Поэтому, если программа может использовать графическое ядро и задействовать его для своих нужд, мощность ЦП только увеличится.
Зависимость частоты процессора от количества ядер
Первые многоядерные ЦП работали на частотах существенно ниже топовых одноядерных ЦП, однако, превышали их по быстродействию. Естественно, своё давала оптимизация кода, однако, эффект был заметен уже тогда.
В настоящее время нет прямой зависимости между частотами ЦП и количеством ядер на нём в одном кристалле. Современные ЦП могут обладать как 12 ядрами с частотой 4 ГГц, так и 8 ядрами с частотами в 3 ГГц и 4.5 ГГц.
Влияние тактовой частоты процессора на производительность
Тактовая частота ЦП влияет на его производительность, однако, до какого-то значения. Дальнейший рост частоты приводит к существенному увеличению энергопотребления ЦП и её увеличение нецелесообразно. В настоящее время редко встречаются ЦП, работающие с частотами выше 5.0-5.5 ГГц.
Определение мощности процессора
Однозначного ответа на вопрос, как узнать или найти мощность процессора не существует. Хотя-бы лишь потому, что до сих пор нет однозначного критерия, который был бы универсален и позволял бы её определять.
Однако, существует интересная методика, позволяющая оценить мощность компьютера. Она достаточно проста, однако, поскольку в её реализации задействуются почти все узлы ЦП, достаточно эффективна. И хоть она не претендует на универсальность можно с её помощью проверить ПК и с высокой точностью сформировать представление о мощности ЦП.
При помощи специальной программы определяет производительность ЦП во флопах. Флоп (или флопс) – это одна математическая операция с плавающей точкой в секунду. Таким образом, производительность ЦП, его быстродействие или его мощность измеряется в количестве математических операций, которые он может делать в секунду. Пример такой программы – приложение LINPACK.
Например, у i7-5960 (Socket FCLGA2011-3, архитектура — Haswell) максимальная производительность зафиксирована на уровне 350 гигафлопс, то есть 350 миллиардов таких операций в секунду. Какой-нибудь ЦП попроще (например, i3) имеет производительность от 30 до 60 гигафлопс.
Повышение мощности процессора
Для увеличения мощности ЦП применяется комплексный подход. При этом мероприятия разделяются на два типа: аппаратные и программные. Их целью является не только оптимизация работы системы, но и разгрузка ЦП от лишних задач, которые могли появиться у него из-за невнимания пользователя или того, кто занимался администрированием ПК.
«Аппаратные» мероприятия заключаются в оптимизации работы системы на уровне взаимодействия ЦП и различных периферийных устройств: от оперативной памяти и жестких дисков до видеокарты и клавиатуры. В общем случае, по части «железа» следует проделать такие манипуляции:
Набор аппаратных средств достаточно скромен, однако, его эффективность высокая. Например, правильно расставив тайминги памяти, можно увеличить быстродействие системы на 5-10%.
Теперь рассмотрим программные средства повышения мощности ЦП. Они гораздо разнообразнее и подчас эффективнее аппаратных, однако, не всегда приятны некоторым пользователям:
Питание современных процессоров
Обеспечение питания – одна из наиболее сложных задач при разработке современных процессоров. Сеть доставки питания (power delivery network, PDN) должна отвечать повышенным требованиям современной КМОП-технологии, обеспечивать питание с высокой эффективностью и быстро реагировать на изменения в энергопотреблении.
И эти проблемы встречаются как у смартфонов с потреблением в 1 Вт, так и у серверных процессоров на 200 Вт и массивных ускорителей машинного обучения – к примеру, Cerebras CS-1 на 15 кВт. Для работы с заданной тактовой частотой каждому транзистору и каждой схеме современного чипа требуется питание с правильным напряжением. Если напряжение будет слишком низким, элементы схемы будут переключаться медленно, что приведёт к появлению ошибок, проблемам со стабильностью и другим неожиданным отказам.
Из-за физики кремния КМОП обычно работает на напряжении в 1 В. Однако у современных технологий, использующих транзисторы FinFET и другие техники, номинальные напряжения могут находиться в диапазоне от 0,65 В до 1,2 В. Инновационные схемы могут использовать напряжение питания, близкое к пороговому значению транзисторов (near-threshold voltage, NTV) – эту технологию продемонстрировало исследование от Intel. И хотя процессоры, использующие NTV (к примеру, Ambiq Micro), уже появились в продаже, эта технология всё ещё довольно нова. Энергопотребление коммутационной схемы (такой, как процессор) пропорционально квадрату напряжения, поэтому для увеличения эффективности необходимо уменьшать напряжение. Для разработчиков чипов это классическая проблема поиска золотой середины: напряжение должно быть достаточно высоким для того, чтобы избежать ошибок, но не выше.
Однако работа под низким напряжением – это сложная задача в плане обеспечения питания, поскольку в этом случае к процессору нужно подводить большой ток. Возьмём современный серверный процессор – Intel Cascade Lake Xeon 14 нм. TDP у самых мощных процессоров этой модели достигают 205 Вт, что теоретически даёт нам ток в 205 А при напряжении в 1 В. На самом деле, конечно, процессоры устроены гораздо сложнее, и используют различные напряжения и схемы питания, однако такой простой пример будет полезен для понимания ситуации. Если энергопотребление процессора останется на том же уровне, а напряжение понизится до 0,75 В, это увеличит нужный ток до 274 А. И хотя передовые серверные процессоры от Intel довольно прожорливы, они не идут в сравнение с некоторыми ускорителями вычислений. К примеру Nvidia Volta V100 потребляет 450 Вт, некоторые будущие их процессоры будут есть уже по 600 Вт, и, как было упомянуто ранее, Cerebras CS-1 потребляет невероятные 15 кВт.
Обычно гораздо эффективнее получается передавать энергию при высоком напряжении и низком токе. Чем выше напряжение, тем меньше ток и тем меньше требуется проводов, что уменьшает стоимость системы. Кроме того, потери на сопротивление пропорциональны квадрату тока, поэтому увеличение напряжения и уменьшение тока понижает потери на сопротивление и увеличивает эффективность энергетической системы. Поэтому обычно линии электропередач работают с напряжением выше 110 кВ – и те же самые базовые принципы применимы и для сервера или дата-центра. Хотя некоторые сервера используют традиционные 12 В, некоторые из новых перешли на 48 В для эффективности – в особенности ускорители, потребляющие более 350 Вт.
Если свести всё это вместе, то теоретической целью обеспечения питания будет передача энергии по системе с максимально возможным напряжением, а потом преобразование в очень низкое и стабильное напряжение, для эффективных и стабильных вычислений.
Анатомия сети передачи питания
Как показано на рис. 1, проблема обеспечения питания затрагивает всю систему, начинаясь с основного источника питания и продолжаясь до электрораспределительной сети в процессоре, доходя в итоге до транзисторов, выполняющих вычисления на кристалле. У настольных компьютеров БП преобразует 110 В или 220 В в 12 В постоянного тока, распространяемого по всей материнской плате, к процессору и другим компонентам. У ноутбуков или смартфонов всё немного не так – типичные литий-ионные батареи выдают постоянное напряжение в 3,7 В, поэтому преобразования переменного напряжения в постоянное не происходит, а понижение напряжения требуется не такое сильное.
Рис. 1: Обеспечение питания в современных системах. Слева — Intel FIVR, справа – традиционный VRM
У стандартных процессоров, например, от AMD, модуль регулятора напряжения (voltage regulation module, VRM) понижает напряжение примерно до 1 В. Обычно VRM располагаются недалеко от процессора, так, чтобы большую часть расстояния проходили сигналы на 12 В. 1 В передаётся на небольшое расстояние по материнской плате, через плату процессора, и внутрь самого процессора по его контактам. В процессоре есть своя электрораспределительная сеть, расходящаяся от контактов и использующая различные промежуточные металлические слои для доставки энергии к транзисторам. VRM работают на довольно низкой частоте в 1 МГц, то есть, могут подстраивать выходящее напряжение только раз в микросекунду.
Многие системы на базе Intel работают по той же схеме, однако используют дополнительный шаг в обеспечении питания. FIVR (fully-integrated voltage regulator – полностью интегрированный модуль регулятора напряжения) интегрирован в сам кристалл процессора и распределяет энергию по десяткам шин питания в его различные блоки (ядра CPU, кэши L2, блоки GPU и т.п.). FIVR используется в большинстве серверных процессоров, начиная с поколения Haswell. Также он используется в клиентских процессорах Haswell и Broadwell, а теперь и в клиентах Ice Lake и Tiger Lake. Отметим, что семейство клиентов Skylake (Coffee Lake, Comet Lake, и т.д.) FIVR не используют. В этих системах VRM на материнской плате преобразуют 12 В (или 48 В) в 1,8 В, и передают энергию от VRM, через всю материнскую плату, плату процессора и его контакты в FIVR. FIVR отвечает за последний шаг в преобразовании энергии, и понижает напряжение с 1,8 В до 1 В, в зависимости от нужд конкретной шины питания.
Одно из преимуществ FIVR состоит в том, что напряжение, поданное с VRM материнской платы на процессор получается в два раза выше, чем у обычных систем. Использование более высокого напряжения уменьшает требуемую силу тока примерно в 2 раза, уменьшает количество контактов питания и повышает эффективность. Минус в том, что преобразование напряжения никогда не бывает на 100% эффективным, и FIVR теряют часть энергии. Взаимоотношение между выигрышем в эффективности и потерей при преобразовании сильно зависит от конкретной ситуации. В целом для процессоров с высоким энергопотреблением система с FIVR обычно выигрывает. Кроме того, FIVR потрясающе быстро работает – её тактовая частота составляет 140 МГц, на два порядка больше, чем у VRM на материнке.
Необходимость быстрой реакции в изменчивых условиях
Скорость FIVR подводит нас к одной из крупнейших проблем обеспечения питания современных процессоров. Концентрация на постоянном питании и температурных характеристик (TDP) преуменьшает значимость проблемы. Современные процессы чрезвычайно динамичны, а их поведение меняется на основе нагрузки. Транзистору при переключении требуется относительно небольшой ток. Однако если множество транзисторов переключаются одновременно, то общее потребление может достичь значительных величин и создать шум на питании чипа. У таких высокоскоростных чипов, как CPU или GPU, количество переключающихся транзисторов может значительно меняться от цикла к циклу. К примеру, когда ядро CPU начинает выполнять команды умножения с накоплением AVX512, энергопотребление становится гораздо больше, чем в случае выполнения целочисленной арифметики. Сходным образом системы динамического изменения напряжения и частоты (DVFS) меняют частоту и напряжение процессора на лету в ответ на изменения загрузки или рабочих условий. Эти внезапные всплески в энергопотреблении могут привести к временным проседаниям напряжения.
Эту проблему могут проиллюстрировать два примера. Большинство дата-центров оптимизируют под эффективность и высокую утилизацию – то есть, 40-60% утилизации CPU, а в пиках и того больше. Если мы вернёмся к TPD 205 Вт у Intel Xeon по спецификации, то этот процессор в моменты максимальной загрузки потребляет ток в 273,75 A по основным шинам питания, и невероятные 413 Вт.
Клиентские процессоры, особенно у ноутбуков и смартфонов, ведут себя совсем не так, и представляют ещё более интересную проблему. Они обычно оптимизированы под очень неровную работу и должны выдавать максимальную мощность на кратких промежутках времени (к примеру, при загрузке веб-страницы), и потреблять очень мало во время простоя (к примеру, ожидая пользовательского ввода). Ноутбук, работающий с 40-60% утилизацией CPU, нереально быстро просаживал бы батарею. Клиентский процессор порядка 90% времени проводит в режиме ожидания. В итоге у клиентских процессоров получается ещё большая разница между TPD, максимальной мощностью и потреблением тока. Последние процессоры Ice Lake серий U и Y имеют TPD в 15 Вт и 9 Вт соответственно. Для увеличения быстродействия вендоры могут устанавливать TPD выше, вплоть до 25 Вт и 12 Вт соответственно. Однако максимальное энергопотребление для CPU и GPU значительно выше – до 70 А и 49 А соответственно, и это не считая питание контроллера памяти и всей периферии ядра.
Основная проблема тут в том, что регуляторы напряжения, будь то VRM на материнской плате или FIVR от Intel, реагируют гораздо медленнее, чем могут появляться кратковременные всплески, вызванные переключениями транзисторов. FIVR у Haswell может повысить напряжение на шине питания от 0 до 0,8 В за 0,32 мкс. Однако для современных процессоров на 3 ГГц это выльется в порядка 1000 тактов. Обычные, менее быстрые VRM могут увеличивать напряжение на 10-23 мВ за мкс, и на аналогичное повышение от 0 до 0,8 у них уйдёт в 100 раз больше времени, или порядка 100 000 тактов. Без очень эффективной схемы эти временные пики могут вызвать проседания напряжения – по смыслу это похоже на то, как в старых домах тускнеет свет лампочек, когда хозяева включают микроволновку или фен. Исключение составляют клиентские процессоры Skylake и процессоры от AMD, использующие регуляторы с небольшим падением напряжения (LDO), которые также работают очень быстро. Однако LDO работают как переменное сопротивление, и умеют только уменьшать напряжение, идущее на шину питания. Поскольку LDO работают через сопротивление, для больших изменений напряжения (более 10%) они становятся неэффективными.
Как уже упоминалось, если процессор работает на частоте 3 ГГц, а напряжение внезапно падает, то транзисторы могут уже не работать корректно – поэтому либо нужно держать постоянное напряжение, либо ронять частоту. На практике же большинство компаний используют комбинацию из разных мер. К примеру, AMD разработала технологию адаптивного изменения частоты, уменьшающую её во время проседаний напряжения.
Плавная подача питания развязывающими конденсаторами
Чтобы устранить несоответствие между почти мгновенными всплесками потребления и задержкой на регуляторах напряжения, современные системы полагаются на развязывающие, или обходные конденсаторы. Эти конденсаторы хранят энергию и могут быстро высвобождать её, чтобы гарантировать постоянное напряжение в моменты, когда регуляторы только начинают реагировать. Вернёмся к рис. 1: системы включают в себя развязывающие конденсаторы на каждом шаге работы сети подачи питания. На МА конденсаторы встречаются во многих местах, но особенно много их вокруг гнезда процессора – см. рис. 2. В платы процессоров также встраивают развязывающие конденсаторы, обычно по краям и снизу. Наконец, на кристаллах процессора тоже располагают конденсаторы; они ближе всего расположены к активным схемам и дают скорейший отклик на временные всплески энергопотребления.
Рис. 2: развязывающие конденсаторы вокруг гнезда процессора
На кристаллах располагаются совершенно разные конденсаторы. Простейший их тип – обычный транзистор, который иногда называют МОП-конденсатором. Такие конденсаторы можно легко вставлять в стандартные ячейки на небольшом расстоянии от важных участков, где ожидается сильный шум переключения. Поскольку они располагаются близко к активным участкам, они легко могут поглощать шум и быстро подавать дополнительный ток.
Кроме того, на чипах, разработанных при помощи различных средств автоматизации, встречаются «пробелы» – участки, оставшиеся пустыми из-за несовершенства инструментов и ограничений по расположению блоков разной формы в непосредственной близости друг от друга. Распространённой практикой является заполнение этих пробелов конденсаторами – по сути, это «бесплатно». И хотя МОП-конденсаторы можно сделать в любом техпроцессе и легко разместить на кристалле, они не являются идеальными конденсаторами. Как и другие транзисторы, они дают утечку, а также их бывает сложно втиснуть в забитые компонентами участки чипа. Ещё один вариант – изменить техпроцесс и создавать более специализированные структуры, такие, как металл-диэлектрик-металл (MIM) конденсаторы, металл-оксид-металл (MOM) конденсаторы, или траншейные конденсаторы [deep trench capacitors].
Рис. 3: MIM- конденсаторы от Intel на 22 нм для eDRAM
Как следует из названия, MIM- конденсаторы формируется из двух параллельных металлических слоёв с high-k диэлектриком между ними. В процессе на 22 нм от Intel используются два разных вида MIM-конденсаторов. Как видно на рис. 3, первый тип MIM-конденсаторов используется для одноразрядных ячеек в eDRAM и формируется в нижних металлических слоях M2-M4. Второй представлен в процессе 22FFL и использует толстые верхние слои в 4 мкм в качестве параллельных металлических слоёв. Intel тут не делает ничего уникального – другие производители тоже используют MIM-конденсаторы. К примеру, AMD использовала MIM-конденсаторы верхнего уровня в процессоре Zen CCX для развязки и уменьшения провалов напряжения. MIM-конденсаторы обычно работают лучше, чем МОП-конденсаторы, однако располагаются они чуть дальше, поскольку нхаодятся в верхних металлических слоях, а необходимость предпринимать дополнительные шаги на производстве немного увеличивает стоимость. MOM-конденсаторы используют сходную идею параллельных металлических линий, только поворачивают их на 90°. Металлические линии формируются горизонтально в двух соседних вертикальных металлических слоях (к примеру, M3 и M4), а межслойный оксид-диэлектрик играет роль изолятора.
Ещё одним вариантом будут траншейные конденсаторы, однако они редко встречаются в производстве, поскольку травление траншей с высоким разрешением значительно повышает стоимость процесса. Их использовали уже несколько поколений технологий изготовления процессоров, начиная с техпроцесса SOI на 32 нм от IBM и далее, с SOI на 14 нм. Траншейные конденсаторы от IBM используются для развязки в больших массивах eDRAM, реализующих кэши L2, L3 и L4 в процессорах POWER и zArch. В качестве примера IBM заявляет, что смогла убрать все конденсаторы с платы процессора z12, сделанного для мейнфрейма по техпроцессу 32 нм, и заменить их траншейными конденсаторами. После этого на IEDM 2019 TSMC рассказала о процессе формирования траншейных конденсаторов на кремниевой вставке. Хитроумный и элегантный подход – хотя такие конденсаторы располагаются уже не так близко к активной логике, как те, что находятся на самом кристалле, поэтому неспособны полностью заменить развязывающие конденсаторы.
Обеспечение системы питанием находит компромисс между быстродействием, эффективностью и стоимостью
При обеспечивании питанием высокоскоростных процессоров приходится обходить несметное количество проблем. В идеале, сеть доставки питания должна работать при высоком напряжении для эффективности передачи энергии, но в итоге выдавать низкое и стабильное напряжение для КМОП-логики, на которой реализован процессор. Преобразование питания, из переменного в постоянный ток, и из высокого в низкое напряжение должно быть максимально эффективным.
В то же время, ток, требуемый для работы процессора, постоянно меняется, реагируя на изменяющиеся условия работы – такие, как смесь инструкций или динамическое изменение напряжения. Для сглаживания этих почти мгновенных изменений и уменьшения шума в современных схемах почти на каждом уровне доставки питания, от материнской платы до кристалла процессора, используются развязывающие конденсаторы. Чем быстрее и отзывчивее сеть, тем меньше развязывающих конденсаторов ей требуется. Если взять сам процессор, то для него доступно несколько вариантов размещения конденсаторов на кристалле. Проще всего использовать обычные транзисторы, поскольку их легко разместить в рамках любого техпроцесса, однако они работают не очень эффективно. Многие производители предлагают конденсаторы улучшенной эффективности, созданные при помощи особых технологий или схем разработки — такие, как MIM-конденсаторы, и более редкие ТК, на кремнии или вставке.
Все эти переменные связаны между собой – техпроцесс, развязывающие конденсаторы, динамическое изменение напряжения и частоты, регуляторы напряжения – и разработчики процессоров обязаны учитывать их все, чтобы получать максимально возможные быстродействие, эффективность по минимальной цене.
Почему процессоры Intel потребляют больше ожидаемого: требования к теплоотводу и турбо-режим
В последнее время сообщество любителей самостоятельной сборки ПК пронизано темой энергопотребления. У новейших восьмиядерных процессоров от Intel показатель TDP заявлен в 95 Вт, однако пользователи наблюдают, как те потребляют 150-180 Вт, что совершенно не имеет смысла. В этой инструкции мы объясним вам, почему это происходит, и почему это доставляет столько проблем авторам обзоров железа.
Что такое TDP (Thermal Design Power, требования к теплоотводу)
Для каждого процессора Intel гарантирует определённую рабочую частоту с определённой мощностью, часто имея в виду определённый кулер. Большая часть людей приравнивает TDP к максимальному энергопотреблению, учитывая, что в расчётах тепловая мощность процессора, которую необходимо рассеять, равна мощности, им потребляемой. И обычно TDP обозначает величину этой мощности.
Но, строго говоря, TDP относится к возможностям кулера по рассеиванию энергии. TDP – это минимальная возможность кулера, гарантирующая указанную эффективность. Часть энергии рассеивается через сокет и материнскую плату, а значит, рейтинг кулера может быть ниже TDP, но в большинстве обсуждений TDP и энергопотребление обычно означали одно и то же: сколько энергии процессор потребляет под нагрузкой.
В рамках системы TDP можно установить в прошивке. Если процессор использовал TDP в качестве максимального ограничения по мощности, то мы бы увидели, как та же измерительная программа выдаёт подобные графики для процессоров высокой мощности с несколькими ядрами.
В последние годы Intel использовала именно такое определение TDP. Для любого заданного процессора Intel гарантировала рабочую частоту (базовую частоту) для конкретной мощности – TDP. Это значит, что процессор типа 65 Вт Core i7-8700, с обычной частотой 3,2 ГГц, и 4,7 ГГц в турбо-режиме, гарантированно будет потреблять до 65 Вт только при работе на частоте в 3,2 ГГц. Intel не гарантирует эффективной работы выше указанных 3,2 ГГц и 65 Вт.
Кроме базовых показателей, Intel также использует турбо-режим. Что-то вроде Core i7-8700 может показывать в турбо-режиме 4,7 ГГц, и потреблять при этом гораздо больше энергии, чем процессор, работающий на 3,2 ГГц. Турбо-режим для всех ядер на процессоре Core i7-8700 работает на частоте 4,3 ГГц – куда как больше гарантированной 3,2 ГГц. Ситуация усложняется, когда турбо-режимы не опускаются до базовой частоты. То есть, если процессор будет работать с постоянным превышением TDP, купленный вами кулер на 65 Вт (или тот, что шёл в комплекте) станет узким местом. Если вам нужно больше быстродействия, такой кулер надо выкинуть и взять что-то получше.
Однако производитель вам этого не сообщает. Если охлаждения для турбо-режимов будет недостаточно, а процессор достигнет температурного потолка, то большая часть современных процов перейдут в режим ограничения мощности, уменьшив быстродействие с тем, чтобы оставаться в рамках заданного энергопотребления. И в результате быстрый процессор не достигает пределов своих возможностей.
Значит, TDP ничего не значит? Почему это стало проблемой только сейчас?
За последнее десятилетие методика использования термина TDP не поменялась, а вот процессоры начали по-другому использовать свой энергетический бюджет. Недавнее появление шести- и восьмиядерных потребительских процессоров с частотами за 4 ГГц означает, что новые процессоры с большой загрузкой превышают заявленное TDP. В прошлом мы видели, как четырёхядерные процессоры с обозначенным рейтингом в 95 Вт использовали только 50 Вт даже под полной нагрузкой в турбо-режиме. И если мы добавляем ядра, а обозначение TDP на упаковке не меняем, то что-то должно поменяться.
Тайные цифры, которых нет на упаковке
Внутри каждого процессора Intel определяет несколько уровней энергии на основе возможностей и ожидаемых рабочих режимов. Однако все эти уровни энергии и возможности можно подстраивать на уровне прошивки, в результате чего OEM-производители решают, как эти процессоры будут работать в их системе. В итоге значение потребления энергии процессором в системе оказывается весьма размытым показателем.
Для простоты можно следить за тремя важными значениями. Intel называет их PL1 (уровень энергии 1), PL2 (уровень энергии 2) и T (Tau).
PL1 – эффективное равномерное ожидаемое потребление энергии в долгосрочной перспективе. По сути, PL1 обычно определяется, как TDP процессора. То есть, если TDP равно 80 Вт, то PL1 равно 80 Вт.
PL2 – краткосрочное максимальное потребление энергии процессором. Эта величина выше PL1, и в это состояние процессор переходит под нагрузкой, что позволяет ему использовать турбо-режимы вплоть до максимального значения PL2. Это значит, что если Intel определила несколько турбо-режимов у процессора, они будут работать, только когда PL2 доходит до максимального энергопотребления. В режиме PL1 турбо не работает.
Tau – временная переменная. Она определяет, как долго процессор должен оставаться в режиме PL2 перед тем, как откатиться на PL1. Tau не зависит от мощности и температуры процессора (ожидается, что при достижении температурного ограничения будет использоваться другой набор сверхнизких значений напряжения и частоты, а система PL1/PL2 перестаёт работать).
Вот официальные определения от Intel:
Давайте разберём ситуацию большой нагрузки на процессор.
Сначала он начинает работу в режиме PL2. Если нагрузка однопоточная, мы должны достичь верхнего значения турбо, которое обозначено в спецификации. Обычно энергопотребление одного ядра не приблизится к значению PL2 всего чипа. Если мы будем продолжать нагружать ядра, процессор отреагирует, уменьшая частоту турбо-режима в соответствии с по-ядерными значениями, определяемыми Intel. Если энергопотребление процессора достигает значения PL2, то его частота изменяется так, чтобы не выходить за рамки PL2.
Когда система находится под серьёзной нагрузкой долгий промежуток времени, «Tau» секунд, прошивка должна перейти на PL1 как на новое ограничение по мощности. Таблицы турбо перестают применяться – они работают только с режимом PL2.
Если потребление выходит за пределы PL1, тогда частота и напряжение изменяются так, чтобы потребление энергии оставалось в этих пределах. То есть процессор целиком уменьшает частоту от состояния PL2 до состояния PL1 на время работы под нагрузкой. Это значит, что температура процессора должна уменьшиться, и это должно увеличить время жизни процессора.
Режим PL1 работает, пока не исчезнет нагрузка, и ядро не перейдёт в состояние бездействия на определённое количество времени (обычно до 5 секунд). После этого режим PL2 снова может быть включён при появлении другой большой нагрузки.
Приведём примеры некоторых величин – Intel перечисляет несколько вариантов в спецификациях различных процессоров. Для примера я взял Core i7-8700K. Для этого проца верно следующее:
PL1 = TDP = 95 Вт
PL2 = TDP * 1.25 = 118.75 Вт
Tau = 8 сек
В данном случае система должна суметь разогнаться до 119 Вт на восемь секунд, а потом снова откатится назад до 95 Вт. Так работает уже несколько поколений процессоров Intel, и по большей части, это не имело особого значения, поскольку энергопотребление процессора целиком часто оказывалось сильно ниже значения PL1 даже под полной нагрузкой.
Однако вся ерунда начинается, когда в игру вступают производители материнских плат, поскольку PL1, PL2 и Tau можно настраивать в прошивке. К примеру, на графике выше можно снять ограничения с PL2, а PL1 назначить 165 Вт и 95 Вт.
Мир случайных чисел
В основном я буду говорить о потребительской электронике. Часто PL1, PL2 и Tau тщательно контролируются в таких ограниченных по охлаждению условиях, как ноутбуки или небольшие ПК. Я знаком с несколькими мощными, и в то же время стильными вариантами ПК, у которых PL2 также приравнивали к TDP, чтобы процессор смог немного разогнаться, но не до такой степени, чтобы нагрузка одного-двух ядер выходила за пределы TDP.
Однако в наших обзорах CPU после распространения шестиядерных процессоров мы часто начали видеть цифры гораздо большие, чем PL1 или PL2, и это потребление продолжается сколь угодно долго, если только не выходит за пределы ограничений температуры. Почему это происходит?
Зачем производители так поступают? Тому может быть много причин, хотя конкретные причины у конкретных производителей могут разниться.
Во-первых, это означает, что пользователь может поддерживать турбо-режим постоянно, и каждое ядро будет работать в режиме турбо каждую секунду. Результаты измерений быстродействия будут доставать до небес, в обзорах или когда пользователя меряются показателями, всё выглядит прекрасно,
Во-вторых, продукты для этого и разрабатываются. Intel часто с каждым запуском определяет спецификацию мат.платы по умолчанию (у них даже были свои материнки, которые они продавали в розницу), с определённым количеством фаз питания и с ожидаемым временем жизни. Производители, очевидно, могут внедрять свои варианты: больше фаз питания, более мощные фазы, особый подвод питания для улучшения эффективности, и т.д. Если их плата может поддерживать турбо-режим всех ядер беспрерывно, то почему бы и нет?
В-третьих, производители более дорогих моделей плат знают, что энтузиасты будут использовать для них улучшенные системы охлаждения. Если процессор потребляет более 160 Вт, а у пользователя есть приличная система охлаждения, тогда турбо-режим на всех ядрах улучшит впечатление от продукта. Стандарты Intel определяются для рекомендованных компанией кулеров.
Так как же правильно, кому доверять, в чём разница?
Intel назначает стандарты для своих запчастей. PL1, PL2, Tau, схема материнки, настройки прошивки – для всего есть значения по умолчанию, рекомендованные Intel. Некоторые из них публичные, например, те, что Intel указывает в документах, некоторые – конфиденциальные (и Intel нам о них не расскажет, как бы мы ни упрашивали). Однако это всё же рекомендованные значения. А по итогам, производители материнских плат могут делать всё, что им заблагорассудится. И они так и делают.
В результате, к примеру, мне тестировать оборудование из-за этого становится сложнее. Разным пользователям захочется, чтобы наши настройки были:
1. Рекомендованными Intel,
2. Как из коробки,
3. Вывернуты на максимум.
И, естественно, рекомендации Intel дадут куда как меньшие показатели, чем «из коробки», а вариант «вывернуты на максимум» говорит сам за себя.
Стоит отметить, что до сих пор во всех тестах во всех обзорах CPU железо запускалось на настройках «из коробки», а не «рекомендованных Intel».
Чтобы дать некий контекст по значениям измерений, мы использовали мощный CPU и
получили следующие результаты в 25-30 секундном тесте с полной нагрузкой:
AnandTech | PL2 | Tau | PL1 | Result |
---|---|---|---|---|
Unlimited | 4096W | 999s | 4096W | 100% |
Intel Spec, 165W | 207W | 8s | 165W | 98% |
Constant 165W | 165W | 1s | 165W | 94% |
Intel Spec, 95W | 118W | 8s | 95W | 84% |
Constant 95W | 95W | 1s | 95W | 71% |
В последнее время было замечено, что некоторые производители материнских плат меняют свою стратегию по PL1/PL2/Tau, и урезают значение Tau до чего-то разумного, вроде 30 секунд. При запуске измерений скорости на таких материнских платах, пользователи получают результаты меньше, чем обычно, хотя эти результаты оказываются ближе к спецификациям Intel.
Дело в том, что когда на материнских платах стоит значение Auto, производитель обычно не раскрывает точную величину этого значения. В результате описывать работу такого оборудования очень тяжело. А ещё эти значения могут меняться в зависимости от установленного процессора.
Мы обычно проводим тестирования с настройками «из коробки», за исключением памяти, с которой мы используем значения, рекомендованные производителем. Мы считаем, что это наиболее честный способ сообщать читателям о том, на какую скорость они смогут рассчитывать, когда практически никакие настройки не менялись. В реальности это обычно означает, что PL2 установлено в какое-то очень большое значение, а Tau – в очень долгое. Мы постоянно сталкиваемся с режимом турбо, пока температура остаётся в установленных пределах.
Сегодняшняя ситуация, и что мы можем с ней сделать
Давно хотел написать подобную статью, по меньшей мере, с момента запуска Kaby Lake. Большая часть процессоров в потребительских материнских платах работает с неограниченным PL2, и это считалось нормальным годами. И только по результатам тестирования Core i9-9900K мы начали замечать нечто странное. В нашей статье на прошлой неделе по поводу нового Xeon E написано, что наша материнская плата Supermicro буквально следует рекомендациям от Intel. Может показаться очевидным, что более коммерческая/серверная плата будет следовать спецификациям от Intel, но вживую я лично видел такое впервые. Очевидно, что потребительские платы по таким спецификациям не работают, и не работали. Я бы сказал, что собственные результаты тестирования от Intel (и результаты тестирования процессоров Intel от AMD) на потребительских материнках тоже не соответствуют спецификациям от Intel.
Таким образом Intel и другие смогут объяснить пиковое потребление и базовую частоту.
Если пользователи хотят, чтобы потребительские материнские платы изменились, то это будет сложнее сделать. Все производители хотят опередить друг друга, поэтому мы сталкиваемся с такими вещами, как опция Multi-Core Turbo, включённая по умолчанию. Производители предпочитают путь «неограниченного PL2», поскольку это позволяет им пролезать на вершины чартов быстродействия. А вот в ноутбуках с ограниченными возможностями по охлаждению часто заданы свои варианты PL1, PL2 и Tau, и часто они строго соответствуют этим параметрам.
Вопрос в том, насколько спецификации от Intel важны для настольных процессоров от Intel? Если нам надо следовать этим рекомендациям буквально, может, мы сделаем ещё один шаг, и будем использовать только стоковые кулеры?