Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя
Технологии движутся вперед, я следую с ними  · 7 февр 2022

Почему частоты процессоров не растут уже больше 10 лет?

Что же остановило рост? Давайте разбираться.
Увеличению частоты в лоб мешает рост тепловыделения
Только не пугайтесь — мы на секундочку залезем в физику. Ничего жуткого, просто тепловыделение процессора, Q, пропорционально квадрату напряжения на нем V, умноженное на его частоту F (Q~V²F). При этом любой оверклокер скажет вам, что частота и напряжение процессора связаны — чтобы поднять первое, нужно поднимать и второе. И еще чуть-чуть физики. Честно, в последний раз. Не секрет, что процессоры состоят из миллионов и миллиардов транзисторов — по сути переключателей. Чтобы эти переключатели переключали, на них нужно накопить определенный заряд. А заряд у нас пропорционален току, тот — напряжению. То есть получается, что скорость переключения транзисторов процессора — грубо говоря, его частота — прямо пропорциональна напряжению на нем (V~F).
Объединим наши две формулы и получим, что тепловыделение процессора пропорционально аж кубу частоты (Q~F³).
Что это значит? Допустим, у нас есть процессор с частотой в 2 ГГц и тепловыделением около 50 Вт. Если мы захотим поднять его частоту вдвое, до 4 ГГц, нам придется увеличить тепловыделение аж в 8 раз, до 400 Вт.
Очевидно, отвести такое количество тепла от процессора сможет только система водяного охлаждения, да и то далеко не каждая. Конечно, нужно понимать, что формулы выше лишь приблизительны, но суть они передают верно: даже небольшой рост частоты приводит к ощутимому росту тепловыделения. А если учесть, что наши системы охлаждения как умели 10 лет назад отводить около 100-200 Вт тепла, так и умеют, рост частоты просто-напросто уперся в TDP.
Уменьшение техпроцесса
Ладно, в лоб не получилось. А почему бы не заняться внутренней оптимизацией процессора? Ведь что такое по сути частота процессора — это то, сколько операций в секунду он может делать. Поэтому если снизить время на одну операцию — их в секунду процессор станет делать больше и его частота вырастет. Бинго? Да, но и тут все сложно.
Самый простой способ — опять же в лоб. Просто берем и уменьшаем составные части процессора. Так как скорость перемещения сигналов — константа и сравнима со скоростью света, то чем меньшее растояние сигналам нужно проходить, тем быстрее они будут это делать и тем быстрее будет работать процессор.
То есть, иными словами, один из способов ускорить процессор — это перейти на более тонкий техпроцесс. Казалось бы, это происходит постоянно: если 10 лет назад Intel удивляла нас 22 нм чипами, то теперь TSMC уже производит 5 нм камни и не за горами переход на 3 нм. То есть на бумаге техпроцесс за это время уменьшился аж в 4 раза. А вот роста частоты почти не видно: как топтались около 4 ГГц в случае с Intel Core 2-ого поколения, так и топчемся уже с Core 10-ого поколения или новыми AMD Ryzen 5000.
Все дело в том, что уменьшение техпроцесса — фейковое. Около десяти лет назад компании перешли на трехмерный способ расположения транзисторов, а считать их плотность продолжили по площади. Вот и получилось, что на бумаге техпроцесс уменьшился сильно, а вот на деле ключевые размеры транзисторов уменьшились слабо.
Ну и добавим сюда то, что сами размеры кристаллов выросли вслед за ростом числа ядер, то есть сигналам приходится проходить большее расстояние.
Вот и получается, что на деле никакого роста частоты мы и не видим.
Оптимизация конвейера
Окей, в лоб частоту поднимать не получится из-за тепловыделение, а уменьшение техпроцесса у нас маркетинговое. А почему бы не заняться программными оптимизациями? Различные операции процессор считает по конвейерному принципу, разбивая их на более простые инструкции, которые считаются несколько тактов друг за дружкой. Причем время такта привязано к самой длинной части инструкции, то есть при выполнении более простых частей инструкции некоторое время процессор простаивает.
Простой — непорядок, скажете вы и будете правы. Как от него избавиться? Ну, можно снизить время на выполнение самой длинной части инструкции — в таком случае тактов в секунде станет больше, а значит процессор будет работать быстрее и его частота поднимется.
Проблема в том, что тут уже заоптимизировано все дальше некуда. Так, например, операция деления стоит современным процессорам пару десятков тактов. Сможете уменьшить это число хотя бы на один такт, и Intel с AMD вас озолотят.
Вторая проблема в том, что нередко самая длинная часть инструкции цепляется за предыдущие, и разбить ее нельзя. Банальный пример из жизни — это постройка дома: пока вы не возвели стены текущего этажа, вы не можете начать заниматься полом следующего. Даже если у вас уже готовы и кран, и плиты, и есть рабочие. Вот и получается, что есть казалось бы несвязанные операции «постройка стен» и «укладка пола», но разделить их нельзя, и они тянутся как одна длинная инструкция, вызывая простой процессора на более мелких.
И… все. Больше способов поднять частоту нет
В итоге к чему мы пришли? Раз охлаждать жидким азотом процессоры мы не хотим, тепловыделение ограничивает рост частоты. Техпроцесс уменьшается фейково, к тому же сами кристаллы нередко растут. В программном плане все заоптимизировано по максимуму.
Вот и получается, что просто нет больше способов частоте расти. Это в 90-ые годы был простор, когда можно было без проблем повышать тепловыделение процессоров вдвое, с 5 аж до целых 10 Вт, тем самым обеспечивая рост частоты. Тогда можно было легко снижать техпроцессы с микрометров до сотен нанометров. Ну и конвейер оптимизировать было куда. А сейчас, увы, почти всего этого нет, так что скорее всего даже 10 ГГц мы не увидим в процессорах вообще никогда.
Надеюсь это было доступно. Возможно в будущем случится какое нибудь открытие в области передачи и отвода тепла или появятся процессоры на одноатомных транзисторах, разработки в этом направлении уже ведутся или будущее за ARM?
Закон Мура больше не работает. Удваивать количество транзисторов на кристалле, каждые 2 года не получается. Нам нужно искать другой проводник или технологию, чтобы двигаться дальше.
Современные транзисторы измеряются тысячами атомов, поэтому их размеры ещё можно уменьшить в сотню раз, как минимум. Мастодонт процессоростроения Джим Келлер считает, что масштабировать полупроводниковые транзисторы можно будет ещё лет двадцать. А вы в это верите? Конечно да! этот мужик создал архитектуру AMD Zen, спроектировал процессоры для Apple и Intel.
Всё решаемо с помощью технологий. Поддержать эксперта. Перейти на donationalerts.com/r/by_lingam
Компьютеры+4