Вольтаж на процессоре на что влияет

Краткое руководство по управлению питанием процессора

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Как центральный процессор может сокращать собственное энергопотребление? Основы этого процесса — в статье.

Центральный процессор (CPU) спроектирован на бесконечно долгую работу при определенной нагрузке. Практически никто не проводит вычисления круглые сутки, поэтому большую часть времени он не работает на расчетном максимуме. Тогда какой смысл держать его включенным на полную мощность? Здесь стоит задуматься об управлении питанием процессора. Эта тема включает в себя оперативную память, графические ускорители и так далее, но я собираюсь рассказать только про CPU.

Если вы знаете про C-состояния (C-states), P-состояния (P-states) и то, как процессор переходит между ними, то, возможно, в этой статье вы не увидите ничего нового. Если это не так, продолжайте читать.

Я планировал добавить реальные примеры из ОС Linux, но статья становилась все больше, так что я решил приберечь это для следующей статьи.

Основные источники информации, использованные в этом тексте:

Особенности CPU

Согласно официальной странице продукта, мой процессор поддерживает следующие технологии:

Теперь выясним, что значит каждое из этих определений.

Как снизить энергопотребление процессора во время его работы?

На процессорах для массового использования (мы не берем в расчет вещи, которые возможны при их проектировании) для снижения потребляемой энергии можно реализовать один из сценариев:

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

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Примечание для тех, кто разбирается в цифровой электронике: Pcpu = Pdynamic + Pshort circuit + Pleak. При работающем процессоре Pdynamic является наиболее важной составляющей, именно эта часть зависит линейно от частоты и квадратично от напряжения. Pshort circuit пропорционально частоте, а Pleak — напряжению.

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

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

Каков предел энергопотребления процессора?

Это во многом зависит от процессора, но для процессора E3-1245 v5 @ 3.50 ГГц расчетная тепловая мощность (Thermal Design Power, TDP) составляет 80 ватт. Это среднее значение, которое процессор может выдерживать бесконечно долго (Power Limit, PL1 на изображении ниже). Системы охлаждения должны быть рассчитаны на это значение, чтобы быть надежными. Фактическое энергопотребление процессора может быть выше в течение короткого промежутка времени (состояния PL2, PL3, PL4 на изображении ниже). TDP измеряется при нагрузке высокой вычислительной сложности (худший случай), когда все ядра работают на базовой частоте (3.5 ГГц).

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Как видно на изображении выше, процессор в состоянии PL2 потребляет больше энергии, чем заявлено в TDP. Процессор может находиться в этом состоянии до 100 секунд, а это достаточно долго.

Состояния питания (C-states) vs состояния производительности (P-states)

Состояния питания (C-states) vs состояния производительности (P-states)
Вот два способа снизить энергопотребление процессора:

P-состояния описывают второй случай. Подсистемы процессора работают, но не требуют максимальной производительности, поэтому напряжение и/или тактовая частота для этой подсистемы может быть снижена. Таким образом, P-состояния, P[X], обозначают, что некоторая подсистема (например, ядро), работает на заданной паре (частота, напряжение).

Так как большинство современных процессоров состоит из нескольких ядер, то С-состояния разделены на С-состояния ядра (Core C-states, CC-states) и на С-состояния процессора (Package C-states, PC-states). Причина появления PC-состояний очень проста. Существуют компоненты с общим доступом (например, общий кэш), которые могут быть отключены только после отключения всех ядер, имеющих доступ к этому компоненту. Однако мы в роли пользователя или программиста не можем взаимодействовать с состояниями пакета напрямую, но можем управлять состояниями отдельных ядер. Таким образом, управляя CC-состояниями, мы косвенно управляем и PC-состояниями.

Состояния нумеруются от нуля по возрастанию, то есть C0, C1… и P0, P1… Большее число обозначает большее энергосбережение. C0 означает, что все компоненты включены. P0 означает максимальную производительность, то есть максимальные тактовую частоту, напряжение и энергопотребление.

С-состояния

Вот базовые С-состояния (определенные в стандарте ACPI).

Примечание: Из-за технологии Intel® Hyper-Threading существуют также С-состояния потоков. Хотя отдельный поток может работать с С-состояниями, изменения в энергопотреблении происходят, только когда ядро входит в нужное состояние. В данной статье тема C-состояний на потоках рассматриваться не будет.

Вот описание состояний из даташита:

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Примечание: LLC обозначает Last Level Cache, кэш последнего уровня и обозначает общий L3 кэш процессора.

Визуальное представление состояний:

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Источник: Software Impact to Platform Energy-Efficiency White Paper

Последовательность C-состояний простыми словами:

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Однако если ядро работает (C0), то единственное состояние, в котором может находиться процессор, — C0. С другой стороны, если ядро полностью выключено (C8), процессор может находиться в C0, если другое ядро работает.

Примечание: Intel Software Developer’s Manual упоминает про суб-C-состояния (sub C-state). Каждое С-состояние состоит из нескольких суб-С-состояний. После изучения исходного кода модуля ядра intel_idle я понял, что состояния C1 и C1E являются состоянием С1 с подтипом 0 и 1 соответственно.

Число подтипов для каждого из восьми С-состояний (0..7) определяется с помощью инструкции CPUID. Для моего процессора утилита cpuid выводит следующую информацию:

Замечание из инструкции Intel: «Состояния C0..C7 для расширения MWAIT — это специфичные для процессора C-состояния, а не ACPI C-состояния». Поэтому не путайте эти состояния с ACPI C-состояниями, они явно связаны и между ними есть соответствие, но это не одно и то же.

Я создал гистограмму, представленную ниже, из исходного кода драйвера intel_idle для моего процессора (модель 0x5e). Подписи горизонтальной оси:

Имя C-состояния: специфичное для процессора состояние: специфичное суб-состояние.

Вертикальная ось обозначает задержку выхода и целевые резидентные значения из исходного кода. Задержка выхода используется для оценки влияния данного состояния в реальном времени (то есть сколько времени потребуется для возвращения в С0 из этого состояния). Целевое резидентное значение обозначает минимальное время, которое ядро должно находиться в данном состоянии, чтобы оправдать энергетические затраты на переход в это состояние и обратно. Обратите внимание на логарифмический масштаб вертикальной оси. Задержки и минимальное время нахождения в состоянии увеличивается экспоненциально с увеличением номера состояния.

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Константы задержок выхода и целевых резидентных значении C-состояний в исходном коде intel_idle
Примечание: Хотя состояния С9 и С10 включены в таблицу, они имеют 0 суб-состояний и поэтому не используются в моем процессоре. Остальные процессоры из семейства могут поддерживать эти состояния.

Состояния питания ACPI

Прежде чем говорить про P-состояния, стоит упомянуть про состояния питания ACPI. Это то, что мы, пользователи, знаем, когда используем компьютер. Так называемые глобальные системные состояния (G[Х]) перечислены в таблице ниже.

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Источник: ACPI Specification v6.2
Также существует специальное глобальное состояние G1/S4, Non-Volatile Sleep, когда состояние системы сохраняется на энергонезависимое хранилище (например, диск) и затем производится выключение. Это позволяет достичь минимального энергопотребления, как в состоянии Soft Off, но возвращение в состояние G0 возможно без перезагрузки. Оно более известно как гибернация.

Существует несколько состояний сна (Sx). Всего таких состояний шесть, включая S0 — отсутствие сна. Состояния S1-S4 используются в G1, а S5, Soft Off, используется в G2. Краткий обзор:

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Вот поддерживаемые состояния ACPI.

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

Комбинации состояний ACPI G/S и С-состояний процессора

Приятно видеть все комбинации в таблице:

Вольтаж на процессоре на что влияет. Смотреть фото Вольтаж на процессоре на что влияет. Смотреть картинку Вольтаж на процессоре на что влияет. Картинка про Вольтаж на процессоре на что влияет. Фото Вольтаж на процессоре на что влияет

В состоянии G0/S0/C8 системы процессора запущены, но все ядра отключены.

В G1 (S3 или S4) некорректно говорить про С-состояния (это касается как CC-состояний, так и PC-состояний), так как процессор полностью обесточен.

Для G3 не существует S-состояний. Система не спит, она физически отключена и не может проснуться. Ей необходимо сначала получить питание.

Как программно запросить переход в энергосберегающее С-состояние?

Современный (но не единственный) способ запросить переход в энергосберегающее состояние — это использовать инструкцию MWAIT или инструкцию HLT. Это инструкции привилегированного уровня, и они не могут быть выполнены пользовательскими программами.

Инструкция MWAIT (Monitor Wait) заставляет процессор перейти в оптимизированное состояние (C-состояние) до тех пор, пока по указанному (с помощью другой инструкции, MONITOR) адресу не будет произведена запись. Для управления питанием MWAIT работает с регистром EAX. Биты 4-7 используются для указания целевого С-состояния, а биты 0-3 указывают суб-состояние.

Примечание: Я думаю, что на данный момент только AMD обладает инструкциями MONITORX/MWAITX, которые, помимо мониторинга записи по адресу, работают с таймером. Это еще называется Timed MWAIT.

Инструкция HLT (halt) останавливает выполнение, и ядро переходит в состояние HALT до тех пор, пока не произойдет прерывание. Это означает, что ядро переходит в состояние C1 или C1E.

Что вынуждает ядро входить в определенное С-состояние?

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

Возможно ли отключить С-состояния (всегда использовать С0)?

Это возможно, но не рекомендуется. В даташите (секция 4.2.2, страница 64) есть примечание: «Долгосрочная надежность не гарантируется, если все энергосберегающие состояния простоя не включены». Поэтому вам не стоит отключать С-состояния.

Как прерывания влияют на процессор\ядро в состоянии сна?

Когда происходит прерывание, соответствующее ядро пробуждается и переходит в состояние С0. Однако, например Intel® Xeon® E3-1200 v5, поддерживает технологию Power Aware Interrupt Routing (PAIR), у которой есть два достоинства:

P-состояния

P-состояния подразумевают, что ядро в состоянии С0, потому что ему требуется питание, чтобы выполнять инструкции. P-состояния позволяют изменять напряжение и частоту ядра (другими словами рабочий режим), чтобы снизить энергопотребление. Существует набор P-состояний, каждое из которых соответствует разных рабочим режимам (пары напряжение-частота). Наиболее высокий рабочий режим (P0) предоставляет максимальную производительность.

Процессор Intel® Xeon® E3–1200 v5 позволяет контролировать P-состояния из операционной системы (Intel® SpeedStep Technology) или оставить это оборудованию (Intel® Speed Shift Technology). Вся информация ниже специфична для семейства Intel® Xeon® E3-1200 v5, но я полагаю, это в той или иной степени актуально и для других современных процессоров.

P-состояния, управляемые операционной системой

В этом случае операционная система знает о P-состояниях и конкретном состоянии, запрошенным ОС. Проще говоря, операционная система выбирает рабочую частоту, а напряжение подбирается процессором в зависимости от частоты и других факторов. После того, как P-состояние запрошено записью в моделезависимый регистр (подразумевается запись 16 бит в регистр IA32_PERF_CTL), напряжение изменяется до автоматически вычисленного значения и тактовый генератор переключается на заданную частоту. Все ядра имеют одно общее P-состояние, поэтому невозможно установить P-состояние эксклюзивно для одного ядра. Текущее P-состояние (рабочий режим) можно узнать, прочитав информацию из другого моделезависимого регистра — IA32_PERF_STATUS.

Смена P-состояния мгновенна, поэтому в секунду можно выполнять множество переходов. Это отличает от переходов C, которые выполняются дольше и требуют энергетических затрат.

P-состояния, управляемые оборудованием

В этом случае ОС знает об аппаратной поддержке P-состояний и отправляет запросы с указанием нагрузки. В запросах не указывается конкретное P-состояние или частота. На основе информации от ОС, а также других факторов и ограничений оборудование выбирает подходящее P-состояние.

Я хочу рассказать об этом подробнее в следующей статье, но сейчас я поделюсь с вами своими мыслями. Мой домашний компьютер работает в этом режиме, я узнал это, проверив IA32_PM_ENABLE. Максимальный (но не гарантированный) уровень производительности — 39, минимальный — 1. Можно предположить, что существует 39 P-состояний. На данный момент уровень 39 установлен ОС как минимальный и как максимальный, потому что я отключил динамическое изменение частоты процессора в ядре.

Заметки про Intel® Turbo Boost

Поскольку TDP (расчетная тепловая мощность) — это максимальная мощность, которую процессор может выдержать, то процессор может повышать свою частоту выше базовой, при условии что энергопотребление не превысит TDP. Технология Turbo Boost может временно повышать энергопотребление до границы PL2 (Power Limit 2) на короткий промежуток времени. Поведение Turbo Boost может быть изменено через подсказки оборудованию.

Применима ли эта информация о C-состояниях и P-состояниях к мобильным и встраиваемым процессорам?

Для примера, недавний MacBook Air с процессором i5-5350U в основном поддерживает возможности, описанные выше (но я не уверен про P-состояния, контролируемые оборудованием). Я также смотрел документацию ARM Cortex-A, и, хотя там применяются другие термины, механизмы управления питанием выглядят похоже.

Как это все работает, например, на Linux?

На этот вопрос я отвечу в другой статье.

Как я могу узнать состояние процессора?

Существует не так много приложений, которые могут выводить эту информацию. Но вы можете использовать, например, CoreFreq.

Вот какую информацию можно получить (это не весь вывод).

Вот информация о ядре, включая информацию о драйвере idle.

Мониторинг счетчиков С-состояний (для ядра):

Источник

Питание современных процессоров

Обеспечение питания – одна из наиболее сложных задач при разработке современных процессоров. Сеть доставки питания (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-конденсаторы, и более редкие ТК, на кремнии или вставке.

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *