К возрастанию сложности проектирования процессоров

К возрастанию сложности проектирования процессоров

Выпуск 20(6744) от 14 октября 2021 г.
РУБРИКА: МИКРОЭЛЕКТРОНИКА

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

В прошлом большая часть оптимизации достигалась путем перехода к следующему технологическому уровню с меньшими проектными нормами. Но по мере уменьшения преимуществ, обеспечиваемых масштабированием при каждом таком переходе, основная часть оптимизации теперь смещается на архитектурные и, в частности, микроархитектурные изменения, что обеспечивают управление компромиссами при распределении ресурсов, потребляемой мощности, пропускной способности и площади. Это вынуждает поставщиков инструментальных средств САПР разрабатывать новые наборы возможностей для оптимизации потребляемой мощности, производительности и площади – ​особенно для сложного сочетания различных задач и приложений. В то же время это возрождает интерес к инструментальным средствам проектирования с такой мгновенной привлекательностью продукта («wow factor»), которой не было годами.

Первые инструментальные средства САПР корпорации Synopsys (с использованием синтеза) позволили проектировщикам 30 лет назад создавать новые конструкции ИС значительно быстрее (иногда за часы вместо дней и недель), при этом одновременно удавалось снизить и размеры конструкции. Появилась иллюзия, что инструментальные средства САПР – ​это магия, позволяющая делать все, что угодно. Но каждое усложнение конструкций и очередной переход на меньшие проектные нормы порождал новые проблемы. То же самое происходит и сейчас. Но теперь экосистема полупроводниковой промышленности имеет дело еще и с такими факторами, как слияние данных, искусственный интеллект (ИИ) и новые приложения. Это и облегчает существующие проблемы, и порождает новые.

Ретроспективный взгляд на проектирование процессоров позволяет сказать, что проектировщики в основном имели дело с процессорами общего назначения, которые подчинялись определенным закономерностям, таким как Закон Мура, масштабирование Деннарда и закон Амдала. Но эти закономерности перестали или перестают действовать. Соответственно требуется найти новые, различные способы повышения производительности. Одним из вариантов могут быть гетерогенные вычисления, когда определенные блоки процессора сосредоточены на исполнении определенных операций, которые они выполняют лучше всего. Это то, на что начала обращать внимание экосистема полупроводниковой промышленности. Понятно, что сейчас разработчики не могут превысить рубеж тактовой частоты в 5 ГГц и достичь еще ряда показателей. Существуют другие способы достичь этого, например – ​оптические технологии или углеродные нанотрубки (УНТ), но до реализации их потенциала осталось еще около 10 лет. Поэтому и приходится выполнять разнородные (гетерогенные) вычисления.

Речь идет о большем, чем просто разработка аппаратного обеспечения – ​речь также идет о том, как его использовать. Раньше разработчики рассматривали микроархитектуры и формировали их отдельно. Теперь, при гетерогенных вычислениях, они имеют дело не просто с универсальными вычислениями, а с рядом вычислений: одно предназначено для ИИ, а другие – ​для иных функциональностей или доменов. ИИ особенно интересен тем, что у каждой из его реализаций есть -какая-то ключевая точка дифференциации, и процессор должен быть настроен и приведен в соответствие с ее особенностями.

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

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

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

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

Это также значительно усложняет проектирование системы (см. рисунок) – ​разработчики снова сталкиваются с набором противоречивых требований. Требуется достичь наименьшей потребляемой мощности при наименьшей площади прибора – ​для обеспечения максимальной гибкости и максимальной производительности. Кроме того, руководство группы проектировщиков или заказчик требуют, с одной стороны, чтобы процессор не тратил энергию впустую, а с другой – ​наличия всех требующихся функций, конфигурируемости и оптимизируемости для обеспечения максимальной производительности. Верно одно: получить все это невозможно, но проектировщик будет стараться получить как можно больше. Так, например, для разных вариантов использования одной и той же специализированной ИС (ASIC), разработчик может попытаться выполнить «оптимизацию оптимизации», чтобы найти общие характеристики всех изменений оптимизации, которые необходимы. При этом разработчик постарается не повлиять на всю систему, что, вероятно, является самой большой опасностью при таком подходе к максимальной конфигурируемости и гибкости.



Источник: Codasip

Рисунок. Возрастание сложности проектирования ИС.


Это фундаментальное противоречие термина ASIC, который больше не привязан к одному приложению. Теперь ASIC должна обладать максимальной гибкостью, которая долгое время была зарезервирована для проектов типа вентильных матриц, программируемых пользователем (FPGA). Но с определенной точки зрения разработчик просто не может получить ту же производительность (тактовые частоты) и цену от FPGA, что и от ASIC. Ряд разработчиков немного сокращает этот разрыв между FPGA- и ASIC-подходами. Например, существуют ASIC, которые включают в себя малые FPGA – ​для загрузки некоторых пользовательских кодов оптимизации фильтрации и оптимизации обработки данных на основе приложения, запрашиваемого процессором. Возникает некоторая внутрикристальная избыточность, за которую нужно платить увеличением площади прибора, времени проектирования и верификации, а также потребляемой мощности.

Все это существенно усложняет решения, касающиеся микроархитектур и способов их проектирования.

Продолжение следует…


Ann Steffora Mutschler. Optimization Driving Changes In Microarchitectures. Electronic Engineering, September 23rd, 2021 https://semiengineering.com/optimization-driving-changes-in-microarchitectures/


ЧИТАЙТЕ ТАКЖЕ

Выпуск 24/25 (6748/6749) от 23 декабря 2021 г. г.
Выпуск 24/25 (6748/6749) от 23 декабря 2021 г. г.