Как стать автором
Обновить

Ректоры и президенты неожиданно согласились рассказать студентам, что их ждет в микроэлектронике

Время на прочтение6 мин
Количество просмотров20K

Мы на Школе Синтеза двадцать суббот учили школьников и студентов проектировать процессоры на FPGA. Для выпуска мы решили пригласить крутых топов, и на наше удивление, откликнулись сразу семеро:

  1. Александр Редькин, гендир и основатель компании Syntacore, которая разрабатывает будущий флагман российcких процессоров для линуксных ноутбуков - суперскаляр с внеочередным исполнением инструкций, совместимый по системе команд с архитектурой RISC-V.

  2. Сергей Сергеевич Шумилин - заместитель директора по науке компании Миландр, российского лидера по разработке микроконтроллеров, пионера лицензирования ядер ARM и надежды российcких пользователей ПЛИС.

  3. Николай Суетин - главный микроэлектронщик фонда Сколково, бывший руководитель R&D Интела в России.

  4. Сергей Михайлович Абрамов - член-корреспондент РАН, руководитель разработки суперкомпьютера СКИФ и других HPC проектов.

  5. Игорь Рубенович Агамирзян - бывший менеджер Микрософта, Российской Венчурной Компании, вице-президент Высшей Школы Экономики и программист.

  6. Александр Тормасов - ректор Иннополиса, Chief Scientist компании Parallels, гуру виртуализации, лектор по компьютерной архитектуре.

  7. Тимур Палташев - известный специалист по архитектуре компьютерной графики, c 25-летним опытом в Silicon Valley и работой с питерским ИТМО.

UPD: Потом присоединились:

  1. Окунев Константин Евгеньевич - Директор по технологическому развитию ГК «Элемент»

  2. Максимов Евгений Викторович - Директор по развитию экосистемы и образовательных инициатив Группы компаний YADRO

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

Это состоится в субботу 23 апреля в Капсуле №2 Технопарка Сколково в 12:00.

UPD: Вот видео занятия:

Как записаться и что была на двух последних занятиях

Записаться можно у Александра Биленко info@chipexpo.ru. Также неплохо зарегистрироваться на сайте для получения дополнительных материалов в рассылке.

Как вообще появилась Сколковская Школа Синтеза Цифровых Схем? Когда-то лет 10 назад я поехал в МФТИ, который любят сравнивать с MIT, и обнаружил, что в нем нет аналога MIT-шного курса 6.111. Это курс в котором студенты делают всякие цифровые схемы на FPGA, с курсовыми работами по обработке видео, звука, графике итд.

Потом была долгая история, в которой энтузиасты из России, Украины, Калифорнии и Великобритании создавали учебные материалы, и все это в конечном итоге вылилось в школу с ChipEXPO и Сколково. Которая помимо материалов а-ля MIT 6.111, впитала упражнения с дизайном простейшего CPU, трейнинг на тулах для массовых ASIC-ов, курсы Клифа Каммингса и индустриальное ноу-хау.

В течение 20 занятий по субботам ученики изучили:

  1. Язык описания аппаратуры Verilog, методологии проектирования на уровне регистровых передач и основы статического анализа тайминга.

  2. Элементы архитектуры и микроархитектуры процессоров общего назначения, на примере двух реализаций архитектуры RISC-V: простейшая schoolRISCV и промышленная RVfpga.

  3. Маршрут синтеза для FPGA и для ASIC, используя САПР от Intel FPGA, Synopsys, Cadence и Mentor / Siemens EDA.

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

  5. Практические занятия по реализации на FPGA цифровых схем, работающих с сенсорами, графикой и музыкой.

Теперь что было на предыдущих занятиях.

Занятие 20. Первый шаг к графическому процессору (GPU)

Вначале речь, которая связывает студенческие упражнения с промышленным GPU:

  1. Зачем нужны графические чипы:

  2. Чем конвейер GPU отличается от конвейера CPU.

  3. Превращение сложной операции в последовательность простых.

  4. Пример: соединение «генератор команд → вычислитель координат → очередь FIFO → кадровый буфер → логика вывода на экран».

  5. Пример: алгоритмы вычисления координат точек окружности.

Далее разбор примеров от Егора Варламова (МИРЭА) и Дмитрия Смехова.

Где-то на 15-й минуте объясняется идея трехмерной компьютерной графики на пальцах:

Еще приводится ссылка на древнюю статью с описанием 15 алгоритмов рисования окружностей - вы можете сами посмотреть какие из них подходят для реализации на FPGA (статья настолько древняя, что код в ней на Фортране - ага!).

До этого было занятие 19, со спичем про реалии работы инженером в электронных компаниях, на позициях RTL дизайнер (Register Transfer Level), DV верификатор (Design Verification) и EDA программист (Electronic Design Automation) в Silicon Valley (впрочем такое же вы найдете в европейских и российких компаниях):

  1. Организация.
    1.1. Работа в большой, средней или малой компании, контракторство,
    университет или стартап.
    1.1. Структура типичной команды разработки: организация по отделам
    компании и по блокам чипа.
    1.3. Жизненный цикл проекта: от анализа требований рынка до продукта в магазине.

  2. Специализация.
    2.1. Микроархитектор блока / инженер по проектированию на уровне
    регистровых передач.
    2.2. Инженер-верификатор / специалист по моделированию.
    2.3. Разработчик программ для автоматизации проектирования /
    Electronic Design Automation, EDA.

После этого выступил Александр Силантьев из МИЭТ, который разобрал часто встречающиеся задачки с интервью для скрининга и junior позиций (задачки посложнее мы будем разбирать на другой сессии).

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

Если вы только начинаете, приобретите Харрис & Харрис и Цифровой Синтез. После него стоит приняться за Дональда Томаса, где хорошо разбирается алгоритм симуляции верилога.

К сожалению, в Харрис & Харрис нет многих важных вещей, например арбитров и очередей FIFO. Кое-то есть в учебнике, который используют в Стенфорде (зеленый справа). Например в нем есть skid buffer / double buffer - важный прием для конструирования микроархитектуры. Там же объясняется что skid buffer решает (проблемы тайминга для логики затыков в конвейере).

Также в Х&Х мало описаны арифметические блоки. Эту тематику покрывает учебник справа (он не единственный - по реализации арифметики есть штук пять хороших нишевых учебников).

Также рекомендую полезный сайт под названием RTLery.

Для введения в микроархитектуру CPU лучший современный учебник - это Шен-Липасти слева. Там есть про предсказатели перехода, переименование регистров итд - все хорошо описано и с примерами.

Если же хочется поиграться с полноценной реализацией на верилоге архитектуры RISC-V, я рекомендую книжку справа. Процессор в нем простой - микроконтроллерного класса, с простым статическим конвейером, не как суперскаляры в Шен-Липасти. Но зато этот процессор написан индустриальным дизайнером от сохи (который например проектировал космические версии Z80 и сотню других чипов), а не еще одним студентом. Который еще и дотошно все описал.

Основы верификации стоит знать не только верификатору, но и RTL-щику, чтобы не зависеть от верификаторов на юнит-тестах. В частности, стоит прочитать вот эту книжку, причем и старое (до coverage driven constrained-random verification), и новое издание (после этих изменений подхода). В первой главе хорошо описана идеология верификации, во второй писание тестового плана, потом разные трюки и индустриальные практики. Для чтения в электричке - самое то.

SystemVerilog верификатору стоит учить по книжке слева.

Отдельно стоит получить представление о UVM по другой книжке, Getting Started with UVM: A Beginner's Guide by Vanessa R. Cooper. Правда написанный в ней пример драйвера для превращения транзакций в сигналы порочен, так как из этого примера не следует как писать драйверы для конвейерных транзакций, которые занимают несколько тактов (например AXI Write с фазами адреса и данных), но в остальном книжка хороша - абсолютный минимум и вcе понятно.

Книжку справа про assertions читают в основном социопаты. Например, у меня есть знакомый, который провел с этой книжкой (а не с девушкой) рождественские каникулы. Но знать язык concurrent assertions полезно и для верификатора, и для RTL дизайнера - это одна из так сказать стаместок, которые стоит иметь в наборе инструментов (кроме Бена Коэна есть и более легкие тексты). (После того рождества моего знакомого пригласили на интервью в Локхид-Мартин верифицировать чипы для американских ракет)

Вот две книжки, откуда можно черпать идеи. Одна (слева) как писать на верилоге игры. К сожалению, ее автор хоббист, а не писатель верилога на зарплате, поэтому к его коду не стоит относится как к идеалу стиля.

Другая - сборник древних статей уже упоминавшегося выше Джима Блинна. Я уверен, что по графике есть куча более солидных текстов, но объяснение преобразования перспективы от Джима Блинна понравилось мне больше всего.

На этом я свой пост заканчиваю и мы ждем вас всех в субботу 23 апреля в Капсуле №2 Технопарка Сколково в 12:00, насколько вместится в помещение.

Эту девочку зовут Наташа
Эту девочку зовут Наташа

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какие темы вас больше интересуют?
13.28% Языки описания и верификации аппаратуры — Verilog/VHDL/SystemVerilog17
14.84% Синтез цифровых схем для FPGA19
4.69% Маршрут проектирования массовых чипов ASIC6
7.03% Суперкомпьютеры9
21.09% Процессоры CPU27
14.06% Компьютерная графика и графические процессоры, GPU18
14.06% Проектирование чипов для интернета вещей и микроконтроллеров18
10.94% Другие варианты (например «программировать на машине Тьюринга за еду») — опишите в комментариях14
Проголосовали 128 пользователей. Воздержались 46 пользователей.
Теги:
Хабы:
Всего голосов 22: ↑16 и ↓6+13
Комментарии81

Публикации

Истории

Ближайшие события

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань