29.11.2019

Споживання харчування процесорами Intel. Чому споживання енергії більше очікуваного?

Процесори 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, і це споживання триває як завгодно довго, якщо тільки не виходить за межі обмежень температури. Чому це відбувається?

У будь-якому сучасному BIOS, особливо у основних виробників мат.плату, будуть присутні настройки по обмеженню потужності (короткострокове і довгострокове) і тривалості. У більшості випадків за замовчуванням користувачеві невідомо, в яке значення вони встановлені, оскільки там буде написано Auto, що є кодовим позначенням «ми знаємо, яке значення їм призначити, не хвилюйтеся». Виробники запишуть величини в пам'ять і будуть їх використовувати, але користувач побачить тільки Auto. В результаті можна призначити PL2 в 4096 Вт і зробити Tau дуже великим, наприклад, 65535, або -1 (нескінченність - залежить від варіанту BIOS). Це означає, що CPU без перерви буде працювати в режимі турбо, поки не перевищить температурні обмеження.


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

По-перше, це означає, що користувач може підтримувати турбо-режим постійно, і кожне ядро буде працювати в режимі турбо кожну секунду. Результати вимірювань швидкодії будуть діставати до небес, в оглядах або коли користувача міряються показниками, все виглядає прекрасно,

По-друге, продукти для цього і розробляються. 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 треба розміщувати на коробках два позначення потужності:

Таким чином Intel і інші зможуть пояснити пікове споживання і базову частоту.

Якщо користувачі хочуть, щоб споживчі материнські плати змінилися, то це буде складніше зробити. Всі виробники хочуть випередити один одного, тому ми стикаємося з такими речами, як опція Multi-Core Turbo, включена за замовчуванням. Виробники вважають за краще шлях «необмеженого PL2», оскільки це дозволяє їм пролазити на вершини чартів швидкодії. А ось в ноутбуках з обмеженими можливостями по охолодженню часто задані свої варіанти PL1, PL2 і Tau, і часто вони строго відповідають цим параметрам.

Питання в тому, наскільки специфікації від Intel важливі для настільних процесорів від Intel? Якщо нам треба слідувати цим рекомендаціям буквально, може, ми зробимо ще один крок, і будемо використовувати тільки стокові кулери?

Автор оригіналу: Ian Cutress