Для строительства многоэтажного дома требуется большая профессиональная команда. Невозможно возвести надежное здание без архитекторов, геологов, инженеров-строителей, монтажников и людей других специальностей. Это справедливо и для создания любой современной микросхемы. Чтобы отправить чертежи процессора или видеокарты на фабрику, нужны инженеры по разработке аппаратного обеспечения разных специальностей.
Разработка микросхем: первое знакомство с инженерными специальностями и инструментами
Все современные электронные устройства содержат результаты труда инженеров по разработке аппаратного обеспечения: разные микросхемы, процессоры и видеокарты. Без них невозможно представить себе ноутбуки, серверы, фотоаппараты и даже такие мелочи, как фитнес-браслеты. Работа инженеров, которые занимаются разработкой «железа», базируется на электронике, полупроводниках и транзисторах.
Эта заметка поможет узнать про аппаратную разработку в первом приближении: познакомит с ключевыми специальностями, инструментами, которые используют hardware-инженеры, и компаниями, в которых они работают. Текст, который мы написали вместе с Николаем Терновым, инженером по разработке аппаратного обеспечения и амбассадором RISC-V International, — без большого погружения в технические детали для тех читателей «Истового инженера», кто никогда не слышал о разработке аппаратуры, но озадачен выбором будущей профессии. Это вступление к подборке открытых курсов по созданию микропроцессоров и компьютерным архитектурам, которые позволят сделать первые шаги к инженерной специальности.
Кто создает современные процессоры
Разберем рабочие задачи разных hardware-инженеров на примере создания микропроцессоров. В разработке таких сложных чипов есть три основных направления: логическое проектирование, физическое проектирование и верификация. Возьмем наиболее популярную специальность из каждого направления, чтобы не превращать заметку в бесконечный список.
Логическим проектированием занимаются RTL-дизайнеры. Они на уровне регистровых передач описывают логику работы разных модулей, из соединений которых будет создаваться конечный процессор. В ходе работы такие специалисты много взаимодействует с другими командами. Например, с командой верификации для отладки ошибок в модулях и с командой физического проектирования. Это необходимо для того, чтобы модули соответствовали заданным требованиям по площади, частоте и энергоэффективности. Если продолжать строительную аналогию, то RTL-дизайнеры — это поставщики стройматериалов, из которых будет возводиться здание.
За то, что относится к физическому проектированию процессора, отвечают backend-инженеры. С помощью специальных программ они компонуют состоящие из транзисторов и проводов логические блоки на кристалле микросхемы и несут ответственность за их эффективное размещение. Backend-инженеры занимаются синтезом тактового дерева, маршрутизацией, статическим анализом временных характеристик и даже физической верификацией. Это своего рода строители-профессионалы, которые берут готовые материалы и возводят из них дом сложной архитектуры. При этом учитывают, как расположить внутренние помещения удобнее для жильцов.
Инженеры-верификаторы на разных этапах процесса проверяют, что все работает как запланировано. Эдакий технический надзор на строительстве, который подтверждает, что здание все выдержит и будет надежным. Верификация — один из самых ответственных этапов проектирования процессора, зачастую она занимает даже больше времени, чем разработка. Если с фабрики придет микросхема с ошибкой, это будет означать нарушение сроков проекта, выход за рамки запланированного бюджета, потерю конкурентного преимущества из-за затрат на выпуск новой ревизии чипа и подрыв доверия потенциальных покупателей.
На самом высоком уровне стоят архитекторы, которые принимают решение о проектировании всего аппаратного блока на основе задачи, которую должно решать конечное изделие. Они составляют высокоуровневую модель процессора, как архитектор дома — проект будущего здания. В hardware-разработке такой человек определяет, какая периферия нужна, как достичь определенного уровня пропускной способности у памяти, как-то или иное решение повлияет на характеристики будущего микрочипа. Например, придется ли увеличивать площадь кремниевого кристалла и возрастет ли энергопотребления процессора.
На самом деле, инженерных специальностей даже в разработке процессоров, не говоря уже об аппаратной разработке в целом, гораздо больше. Но несмотря на большое разнообразие, базовые знания для всех специальностей одинаковы. Любому аппаратному инженеру важно разбираться в компьютерных архитектурах, микроархитектурах и цифровой схемотехнике. Получить их помогут бесплатные курсы из нашей подборки.
Инструменты для разработки микросхем
Разрабатывать микросхемы помогают специальные технологии: языки описания аппаратуры, системы автоматизированного проектирования (EDA), FPGA, ASIC и программные симуляторы.
Если раньше инженеры сами рисовали логические схемы, которые лежат в основе любого микрочипа, то сейчас схемы описывают текстом на языках описания аппаратуры. Такие языки позволяют объяснить системе автоматизированного проектирования, как будет выглядеть финальное цифровое устройство. Наиболее часто используют языки Verilog, SystemVerilog и VHDL. Также понемногу набирает популярность язык конструирования аппаратуры Chisel, но его по-прежнему сложно встретить в больших проектах.
Вот пример кода на языке Verilog, который описывает поведение простого модуля с названием top:
Результат работы RTL-инженера, который пишет код на языке описания аппаратуры, — это цифровая схема на уровне регистровых передач, которая выполняет определенные действия. Например, вычислительный конвейер видеокарты для ускорения отрисовки графики в видеоиграх. В основе такой схемы лежит множество простейших цифровых блоков: AND, OR, NOT, XOR и триггеры для сохранения значения сигнала в память.
Описания блоков инженеры передают EDA-системам, например, Quartus или Vivado. Те создают из него «нарисованные» схемы с помощью специальных коммерческих библиотек. Инженеры проверяют и отлаживают то, что получилось, в RTL-симуляторах, функциональных эмуляторах, на FPGA-платах или с помощью ASIC. Дальше проделывают комплекс работ по физическому проектированию — трассировке и размещению транзисторов, из которых будет состоять финальное устройство. После верификации получается файл с образом слоев будущей микросхемы, который отправляют на фабрику.
Итоговый «железный» продукт, который становится итогом работы hardware-инженеров, нельзя изменить после получения с производства.
Если на любом этапе процесса была допущена ошибка и микросхема уже приехала с фабрики, то исправить ситуацию уже невозможно. Вы получили брак. При этом разработка и производство процессора могут занимать 2−2,5 года. Из-за столь высокой цены ошибки в разработке аппаратного обеспечения критически важны все шаги, и именно поэтому особенно много внимания уделяют верификации. Здесь как с ракетой, которую запускают в космос: или она полетит по намеченному плану или придется начинать все сначала.
В каких компаниях работают hardware-инженеры
Наиболее известные компании, которые нанимают разработчиков аппаратного обеспечения, — это NVIDIA, AMD и Intel. Их штат насчитывает тысячи инженеров, которые создают знакомые многим видеокарты и процессоры.
Если вы читаете эту статью со смартфона, то с высокой вероятностью его процессор работает на базе ядра, созданного инженерами ARM. ARM продает архитектурные лицензии и готовые IP-ядра, из которых другие компании создают процессоры под разные задачи.
Например, компания Apple приобрела архитектурную лицензию ARM и начала разрабатывать собственные системы на кристалле. Примерами же использования готовых лицензированных ядер ARM могут быть мобильные процессоры компании Qualcomm или японский суперкомпьютер Fugaku от Fujitsu, который на осень 2023 года занимает четвертое место в списке мировых суперкомпьютеров.
Конечно, аппаратная разработка представлена не только за рубежом. В России тоже есть компании, где инженеры создают аппаратное обеспечение, просто они не столь известны. Так, свои IP-ядра выпускает компания Syntacore, одна из сооснователей международного консорциума RISC-V.
Также стоит упомянуть компанию «ЭЛВИС», в которой инженеры разрабатывают узкоспециализированные ядра на базе архитектуры MIPS. Есть и «МЦСТ», где создают процессор «Эльбрус» на базе архитектуры VLIW.
Компания «Байкал» тоже создает процессоры общего назначения. Она использует лицензированный IP тех самых ядер ARM. Инженеры компании берут готовые ядра и собирают их вместе, подобно конструктору, добавляя специальные блоки соединения, чтобы ядра могли общаться друг с другом, и периферию, чтобы они могли общаться с внешним миром.