Перейти к содержимому
Статья

Почему процессоры остановились около 6 ГГц: что закончилось после гонки Pentium 4

В 2004 году Intel собиралась выпустить Pentium 4 на 4 ГГц, но отменила процессор. Спустя два десятилетия Ryzen 9 9950X и Core Ultra 9 285K разгоняются лишь до 5,7 ГГц, хотя технологии производства изменились с 90 до нескольких нанометров. Производительность при этом выросла во много раз. Причина находится в физике CMOS: напряжение перестало уменьшаться вместе с транзисторами, рост частоты стал слишком дорог по энергии, а ускорение CPU переместилось в архитектуру.

BadMadSam
Почему процессоры остановились около 6 ГГц: что закончилось после гонки Pentium 4

Автор: Изображение создано с помощью ChatGPT

В начале 2000-х частота действительно была главным способом ускорить процессор

Если посмотреть на развитие настольных процессоров конца 1990-х и начала 2000-х без знания последующих событий, сегодняшние частоты выглядят странно. Pentium III Coppermine в 1999 году начинался с 500-733 МГц, в 2000 году Intel добралась до 1 ГГц, первый Pentium 4 вышел в том же году с частотами 1,4 и 1,5 ГГц, а к ноябрю 2004 года Pentium 4 570 работал уже на 3,8 ГГц. Менее чем за пять лет максимальная частота массового настольного процессора выросла примерно в четыре раза.

NetBurst, архитектура Pentium 4, была спроектирована с расчетом на продолжение этого роста. Один из способов поднять тактовую частоту состоит в разделении обработки инструкции на большее количество более коротких этапов. Между ними устанавливаются регистры, и каждый этап должен выполнить меньше логической работы за один такт. Это позволяет уменьшить период тактового сигнала и увеличить частоту.

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

Чем длиннее конвейер, тем дороже такая ошибка. У раннего Pentium 4 конвейер был значительно глубже, чем у Pentium III, а Prescott увеличил его еще сильнее. Высокая частота поэтому не означала пропорционального увеличения полезной работы. Процессор мог совершать больше тактов в секунду, одновременно выполняя меньше полезных инструкций за каждый такт.

Intel Pentium 4 Prescott 2,4 ГГц, представитель архитектуры, на которой гонка частот приблизилась к своему пределу
Intel Pentium 4 Prescott 2,4 ГГц, представитель архитектуры, на которой гонка частот приблизилась к своему пределу

Фото: JulianVilla26

В октябре 2004 года произошел момент, который хорошо обозначает конец этой стратегии. Intel отказалась от ранее запланированного Pentium 4 на 4 ГГц. Выпущенный вскоре Pentium 4 570 на ядре Prescott остановился на 3,8 ГГц и имел TDP 115 Вт. Компания одновременно начала переносить ресурсы на многоядерные процессоры. Отмена 4-гигагерцевого Pentium 4 была подтверждена 14 октября 2004 года, причем до этого его выпуск уже переносился.

Показательно, что проблема возникла именно после перехода на более совершенный техпроцесс. Prescott производился по 90-нм технологии, тогда как предыдущий Northwood использовал 130 нм. Обычная логика подсказывает, что уменьшение транзисторов должно было снизить энергопотребление и позволить без проблем увеличить частоту. Долгое время именно так и происходило. В начале 2000-х этот механизм начал ломаться.

Почему уменьшение транзистора десятилетиями автоматически увеличивало частоту

Основу прежнего темпа развития описывает работа сотрудников IBM Роберта Деннарда, Фрица Генсслена, Хва-Ньена Ю, Лео Райдаута, Эрнеста Бассуса и Андре Леблана, опубликованная в 1974 году. Авторы исследовали, как уменьшать размеры MOSFET, одновременно изменяя напряжение и другие параметры так, чтобы электрические поля внутри транзистора оставались контролируемыми. Этот подход позднее получил название Dennard scaling.

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

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

Оригинальная публикация IBM 1974 года описывала масштабирование MOSFET с размерами порядка 1 мкм и экспериментальные транзисторы с длиной канала до 0,5 мкм. Для сравнения, Intel 8080, появившийся в том же 1974 году, содержал около 6000 транзисторов и работал на частоте порядка нескольких мегагерц.

кремниевая пластина с изготовленными на ней микросхемами, пример этапа производства полупроводниковых устройств
кремниевая пластина с изготовленными на ней микросхемами, пример этапа производства полупроводниковых устройств

Фото: J.L. Lee/NIST

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

Это изменение называют окончанием Dennard scaling, хотя физически оно не произошло в один конкретный год. Производители продолжили уменьшать транзисторы, но прежняя комбинация "меньше размер, ниже напряжение, выше частота при той же плотности мощности" больше не работала автоматически.

Для динамической части потребления CMOS полезна приближенная зависимость P ≈ C × V² × f, где C характеризует переключаемую емкость, V является напряжением, а f частотой. Формула объясняет сразу две особенности разгона. Рост частоты примерно линейно увеличивает динамическую мощность при прочих равных. Но для сохранения стабильности на высокой частоте часто приходится увеличивать напряжение, а оно входит в зависимость в квадрате. Последние сотни мегагерц поэтому могут стоить непропорционально дорого.

Например, само по себе увеличение частоты на 10% при неизменном напряжении в упрощенной модели означает примерно 10-процентный рост динамической мощности. Если для этой частоты одновременно приходится поднять напряжение на 10%, множитель становится примерно 1,1 × 1,1² = 1,331. Получается около 33% дополнительной динамической мощности вместо 10%. Это иллюстрация зависимости, а не расчет энергопотребления конкретного процессора: в реальном CPU напряжения разных блоков, утечки, тактовое управление и доля переключающихся транзисторов меняются динамически.

Pentium 4 показал, почему один гигагерц перестал быть единицей производительности

Частота говорит только о количестве тактов за секунду. Чтобы оценить выполненную работу, нужно знать, сколько полезных операций процессор способен завершить за эти такты. Отсюда появляется IPC, instructions per cycle. Упрощенно производительность одного потока можно представить как произведение частоты на количество работы за такт, но даже IPC не является постоянной характеристикой процессора: он меняется от программы, структуры кода, попаданий в кеш, переходов, зависимостей между инструкциями и используемых исполнительных блоков.

Это объясняет событие, которое в середине 2000-х выглядело необычно. После Pentium 4 Intel выпустила Core 2 Duo. Один из старших Core 2 Duo E6700 работал всего на 2,66 ГГц. Частота была примерно на 30% ниже, чем у Pentium 4 570 с его 3,8 ГГц, однако новая архитектура выполняла значительно больше полезной работы за такт и использовала два ядра. Направление развития изменилось: производительность перестала масштабироваться главным образом цифрой GHz.

Intel Pentium 4 3,0 ГГц со снятым корпусом, виден кремниевый кристалл процессора
Intel Pentium 4 3,0 ГГц со снятым корпусом, виден кремниевый кристалл процессора

Фото: yellowcloud

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

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

Современная AMD хорошо показывает, насколько далеко эта стратегия ушла от простой гонки частот. Ryzen 9 9950X на Zen 5 имеет максимальный boost 5,7 ГГц. На той же отметке находится максимальная turbo-частота Intel Core Ultra 9 285K. Разница между этими 5,7 ГГц и 3,8 ГГц Pentium 4 2004 года составляет всего 50%. За два десятилетия максимальная частота не выросла даже вдвое.

Производительность процессоров за это время выросла несопоставимо сильнее. Ryzen 9 9950X имеет 16 ядер и 32 потока, 64 МБ L3 и 16 МБ L2. Core Ultra 9 285K содержит 8 производительных и 16 эффективных ядер, суммарно 24 ядра. У Pentium 4 570 было одно ядро и 1 МБ L2. Сравнение этих чисел не дает коэффициента производительности, но хорошо показывает, куда ушел транзисторный бюджет после остановки частотной гонки.

Почему современные 5,7 ГГц совсем не похожи на 3,8 ГГц Pentium 4

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

AMD для Zen 5 заявляет средний рост IPC примерно на 16% относительно Zen 4 по собственному набору из 13 нагрузок. Частоты при этом почти не изменились: Ryzen 9 7950X на Zen 4 и Ryzen 9 9950X на Zen 5 имеют максимальный boost до 5,7 ГГц. Производительность нового ядра увеличилась без прибавки к максимальной цифре GHz. AMD связывает рост IPC Zen 5 с улучшением предсказания переходов, более широкими конвейерами и векторными блоками, увеличенным окном команд и ростом внутренней пропускной способности.

современный AMD Ryzen 5 3600 на материнской плате, пример процессора эпохи, в которой производительность давно не определяется одной частотой
современный AMD Ryzen 5 3600 на материнской плате, пример процессора эпохи, в которой производительность давно не определяется одной частотой

Фото: Irving Marca

Большую роль играет память. Арифметическое устройство способно выполнить операцию очень быстро, но сначала ему нужны операнды. Обращение к оперативной памяти занимает несравнимо больше процессорных тактов, чем простая операция в ядре. Поэтому современные CPU используют многоуровневую иерархию кешей. Маленький L1 расположен максимально близко к исполнительным блокам, L2 больше, но медленнее, L3 еще больше и часто разделяется между ядрами. Промах по всем уровням заставляет идти в DRAM и способен остановить зависимую цепочку вычислений на множество тактов.

Отсюда появляется еще один способ ускорить игру или приложение без изменения GHz: увеличить вероятность того, что нужные данные уже находятся рядом с ядром. Процессоры AMD с 3D V-Cache являются наглядным примером. Дополнительный L3 не ускоряет сам тактовый генератор. Он сокращает количество дорогих обращений к оперативной памяти в нагрузках, рабочий набор которых хорошо помещается в увеличенный кеш. Поэтому процессор с меньшей частотой способен обгонять более высокочастотную модель в отдельных играх.

С инструкциями ситуация похожая. Современные ядра имеют векторные блоки, способные обрабатывать несколько элементов данных одной инструкцией. AVX2 и AVX-512 позволяют за одну операцию выполнять работу над широкими векторами. Сравнение GHz процессоров разных поколений полностью игнорирует этот фактор. В программе, которая эффективно использует новые векторные возможности, один такт современного ядра способен соответствовать совершенно другому объему вычислений.

Наконец, частота современного CPU сама стала переменной. Значение "до 5,7 ГГц" относится к определенным условиям boost, а не к постоянной частоте всех ядер. Процессор непрерывно учитывает температуру, мощность, ток, число активных ядер и тип нагрузки. Однопоточная задача может получить высокий boost одного ядра, тогда как длительный рендер на всех ядрах работает при другой частоте. Сравнивать процессоры по максимальному boost без знания нагрузки поэтому еще менее полезно, чем сравнивать Pentium 4 по его номинальным GHz.

Почему производители добавили ядра вместо еще нескольких гигагерц

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

В 2005 году появились массовые двухъядерные настольные процессоры, а в 2006 году Core 2 Duo окончательно закрепил новое направление. С тех пор количество ядер в потребительском сегменте выросло до десятков. Это не означает, что любое приложение ускоряется пропорционально их числу. Программа должна иметь работу, которую можно разделить на независимые потоки. Рендеринг, кодирование, компиляция и многие профессиональные вычисления масштабируются хорошо. Последовательный участок алгоритма остается ограничением независимо от того, сколько дополнительных ядер простаивает рядом.

Именно поэтому производители не отказались от быстрого одиночного ядра. Настольные CPU одновременно развивают IPC, boost и многоядерность. Intel дополнительно использует неоднородную архитектуру с Performance-cores и Efficient-cores. У Core Ultra 9 285K восемь P-ядер работают рядом с шестнадцатью E-ядрами. Более компактное ядро занимает меньше площади и может давать выгодное соотношение многопоточной производительности к площади кристалла и мощности.

процессор установлен в сокет современной материнской платы, вокруг видны элементы подсистемы питания
процессор установлен в сокет современной материнской платы, вокруг видны элементы подсистемы питания

Фото: Andrey Matveev

Чиплеты решают соседнюю проблему. Большой монолитный кристалл дорог в производстве, а вероятность дефекта увеличивается вместе с площадью. AMD разделяет настольные Ryzen на вычислительные CCD и отдельный I/O Die. У Ryzen 9 9950X используются два восьмиядерных CCD плюс I/O-кристалл. Это позволяет наращивать количество ядер без изготовления одного огромного вычислительного кристалла и производить разные части процессора по подходящим для них технологическим нормам. У 9950X ядра изготовлены по 4-нм технологии TSMC, а I/O Die по 6-нм.

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

Эта ситуация известна как dark silicon: технологический процесс позволяет разместить больше транзисторов, чем можно одновременно использовать на максимальной мощности в заданном тепловом бюджете. Поэтому дополнительный транзисторный бюджет расходуют на кеши, специализированные ускорители, графику, NPU, кодеки и другие блоки, которые включаются по необходимости, а не на попытку заставить весь CPU постоянно работать на 10 ГГц.

Дойдут ли настольные процессоры до 10 ГГц

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

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

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

Показательна арифметика современных флагманов. Intel указывает для Core Ultra 9 285K максимальную turbo-частоту 5,7 ГГц, базовую мощность 125 Вт и Maximum Turbo Power 250 Вт. Ryzen 9 9950X также имеет boost до 5,7 ГГц при штатном TDP 170 Вт. Эти процессоры уже используют сложные алгоритмы boost, которые позволяют отдельным ядрам ненадолго занимать доступный запас мощности и температуры. Постоянные 10 ГГц для всех ядер потребовали бы совершенно другого энергетического режима.

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

Именно это объясняет странную на первый взгляд историю последних двадцати лет. Pentium 4 остановился на 3,8 ГГц не потому, что индустрия перестала уметь делать более быстрые транзисторы. Закончился период, когда уменьшение технологических норм почти автоматически позволяло снижать напряжение и поднимать частоту без резкого роста плотности мощности. Современные 5-6 ГГц уже работают внутри другого подхода: широкий out-of-order процессор выполняет больше инструкций за такт, использует многоуровневый кеш, несколько ядер, векторные блоки и динамически перераспределяет ограниченный энергетический бюджет.

Поэтому частота осталась полезной характеристикой только внутри близких архитектур и при одинаковых условиях. Ryzen на 5 ГГц и Pentium 4 на 5 ГГц были бы процессорами с совершенно разной производительностью. Даже два современных CPU на одинаковых 5,7 ГГц могут различаться по IPC, кешу, задержкам памяти и количеству выполняемой за такт работы. Гонка гигагерц закончилась не остановкой развития процессоров. Она закончилась тогда, когда один дополнительный гигагерц стал обходиться дороже, чем другие способы потратить те же транзисторы и ватты.

8 показов