?

Log in

No account? Create an account
Уход инженера-электронщика из Apple вызвал волнение среди биржевых спекулянтов. Как стать как он? - Юрий Панчул — LiveJournal [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Уход инженера-электронщика из Apple вызвал волнение среди биржевых спекулянтов. Как стать как он? [Apr. 5th, 2019|09:26 am]
Yuri Panchul
[Tags|]

29 марта инженер по имени Жерард Вильямс Третий ушел из компании Apple. Это известие сразу опубликовал CNET и еще три десятка изданий во всем мире, не только технических, но и финансовых. Что же такого делал этот инженер, что его уход вызвал волнение среди биржевых спекулянтов? Он 9 лет проектировал процессоры в Apple iPhone, до этого 12 лет работал в ARM, до этого проектировал DSP в Texas Instruments, а до этого разрабатывал в Интеле схемы на ПЛИС. Во всех местах он использовал технологию проектирования на уровне регистровых передач, с использованием языков описания аппаратуры Verilog и VHDL.

Примеры поближе к России? На фото справа: 25-летний москвич Илья Неганов взял в 2011 году книжку Харрис & Харрис (последнюю версию которой можно скачать здесь или здесь), спроектировал простой процессор, сейчас работает в Apple, проектирует на верилоге GPU, по выходным летает на самолетике. Ниже пара молодоженов из Санкт-Петербурга, которые проектировали на верилоге и ПЛИС обработку изображений из камеры и получили приз на конкурсе Innovate FPGA. Они провели медовый месяц в штаб-квартире Интела в Санта-Кларе. Далее товарищи из Киева, двое из которые выиграли бронзу на европейском финале Innovate FPGA. И наконец два школьника, из 5 и 9 классов, которые делают свои первые упражнения с микросхемами малой степени интеграции на макетной плате, после чего приступают к упражнениям на верилоге и ПЛИС.

Это пять точек на траектории от школьника к Жерарду Вильямсу Третьему. Траектория довольно тяжелая, так как начальный барьер для входа в проектирование цифровых микросхем выше, чем для входа в программирование. В этом посте мы поговорим о том, как облегчить начальный участок траектории для российских и других школьников.




В эти две недели группа коллег из РОСНАНО, Wave Computing, МИЭТ, IVA Technologies, ВШЭ МИЭМ, Амперка, Издательства ДМК-Пресс проводит такое мероприятие: Сначала школьники проходят теоретический онлайн-курс (части «От транзистора до микросхемы», «Логическая сторона цифровой схемотехники», «Физическая сторона цифровой схемотехники»), на котором они знакомятся с так называемым маршрутом RTL2GDSII - группой технологий, которые используют инженеры в электронных компаниях для проектирования чипов. Потом мы проводим практические занятия с микросхемами реконфигурируемой логики ПЛИС. Таким способом обучает например MIT в курсе 6.111, ну а мы пробуем это в очень базовом виде для школьников олимпиадного типа.

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

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

Стоит ли перед упражнениями с ПЛИС делать упражнения с микросхемами малой степени интеграции? На этот счет есть разные мнения: Декан Самарского Университета Илья Кудрявцев считает, что не стоит, лучше сразу давать современную технологию 2019 года, а не древние CMOS 4000 на макетной плате, которые были актуальны 50 лет назад. Инженер-проектировщик нейрочипа в IVA Technologies Станислав Жельнио считает, что стоит, так как в противном случае студенты воспринимают ПЛИС как еще один микроконтроллер типа Ардуино, но просто со странным языком программирования Verilog. На самом деле студенту или школьнику стоит сразу четко осознавать, что верилог описывает схему, а не программу (цепочку инструкций), и упражнения с CMOS 4000 помогают поселить в мозгу правильный образ.

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

Поэтому один из подходов выглядит так: спроектировать схему на микросхемах малой степени интеграции (счетчики, сдвиговые регистры, сумматоры, дешифраторы), потом повторить ее на верилоге, синтезировать и прописать в ПЛИС.

Некоторые говорят: а почему бы не нарисовать схему для ПЛИС мышкой на экране (schematic entry) и ввести ее в ПЛИС перед тем как делать упражнения на верилоге? У подхода с мышкой есть три недостатка:


  1. Он требует изучения софтвера, что дольше, чем просто втыкать компоненты в макетную плату.

  2. Опыт от перегоревшего светодиода или плавающего входа без подтягивающего резистора на макетной плате - это ценнее, чем стерильный опыт в schematic entry.

  3. Дизайнеры цифровой логики не используют schematic entry с начала 1990-х, все пишут на верилоге, иногда на VHDL.


Да, CMOS 4000 и 74XX устарели еще в 1970-е, их заменили PAL, GAL, PLD, потом интегрированные чипы. Поэтому в 1970-х их использовали в кружках для детей, а в 1980-е они вышли из моды, так как за умение их использовать перестали платить зарплату, но никто с тех пор не придумал, как нагляднее продемонстрировать например функцию D-триггера, поэтому как приквел к ПЛИС/FPGA их применять можно. В MIT делают так же - см. Lab #1 здесь.

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

Вот пример комбинационной логики, приоритетного шифратора, на микросхемах малой степени интеграции:



А вот как выглядит этот приоритетный шифратор на языке описания аппаратуры Verilog:

module priority_encoder
(
    input      [2:0] in,
    output reg [1:0] out
);

    always @*
    begin
        casez (in)
            3'b1??  : out = 2'd1;
            3'b01?  : out = 2'd2;
            3'b001  : out = 2'd3;
            default : out = 2'd0;
        endcase
    end

endmodule


Вот пример последовательностной логики, сдвигового регистра, на микросхемах малой степени интеграции:



А вот как выглядит этот сдвиговый регистр на верилоге:



Вот как выглядит процесс синтеза с языков описания аппаратуры и прошивания схемы в реконфигурируемую логику ПЛИС-а:



После таких простых упражнений школьники могу проектировать схемы, которые общаются по интерфейсам SPI, I2C, UART с датчиками освещения, компасами, клавиатурами, производят звук и даже картинки на VGA. Вот уникальный пятиклассник Вячеслав скомбинировал датчик освещения с генератором звука на FPGA плате:

Код для модуля принимающего данные с датчика освещенности, который использовал Вячеслав.



Про работу с VGA дисплеем с ПЛИС недавно вышла книжка, которую стоит перевести на русский для летних лагерей типа новосибирского ЛШЮП или будущего лагеря в зеленоградском МИЭТ.



Другие удобные упражения для начинающих - змейка на 7-сегментном индикаторе, фигуры на светодиодной матрице, ввод с клавиатуры 4x4, генерация нот (цифровой орган), конечные автоматы для распознавания последовательностей (кодовый замок).

Математически-ориентированные школьники могут попробовать сделать cтековый калькулятор, устройства для вычисления квадратного корня, систолического массива для нейровычислителя или воплотить в хардвере примеры из Hacker's Delight.

Совсем продвинутые школьники могут разрабатывать простые процессоры с конвейерностью, прерываниями, кэшами итд. Вот девятиклассник Арсений с органом на ПЛИС и девятиклассница Даша с модификацией процессора schoolMIPS.



Собственно ради таких продвинутых школьников РОСНАНО помогло организовать онлайн-курс и практические занятия 17-19 апреля в Москве. Над этим работало образовательное отделение еНАНО, и немного помогло отделение РОСНАНО в Калифорнии - RUSNANO USA. Его офис находится прямо в мировом центре венчурного капитала, на 3000 Sand Hill Road в Менло-Парке. На Сэнд-Хилл Роад приходили за деньгами основатели Apple, Google и Amazon.



РОСНАНО вложило миллиарды рублей в российские микроэлектронные проекты ЭЛВИС-НеоТек и Байкал Электроникс. Ожидается, что сегодняшние школьники познакомятся с основами RTL2GDSII, потом выучатся в университетах типа МФТИ, МИЭТ или ИТМО, станут специалистами класса Жерарда Вильямса Третьего, и потом РОСНАНО будет вкладывать в их проекты.


LinkReply

Comments:
[User Picture]From: ardelfi
2019-04-05 05:22 pm (UTC)
По описанию инженер действительно интересный (DSP в TI -- это круче чем всё остальное из перечисленного), но акции огрызка сейчас реагируют на падение продаж и прочий их корпоративный негатив. :)

Относительно устаревших 74XX, вы преувеличиваете. ПЛИСы тогда ещё были мелкими, убогими, дорогими и редкими. В качестве иллюстрации, Спектрум в восьмидесятых был на стандартной логике. Вот он, родной -- узнаю с первого взгляда:


Ну и внутри тогдашних PC тоже было такое в изобилии. IBM 5150 (XT):


Кстати, в следующий раз когда будете в РОСНАНО, спросите у них как там дела с МРАМ у Крокуса. Ну и заодно как там с электронно-лучевой литографией (Mapper Lithography контора называется). Это всё проекты с их участием. Народ волнуется. :)
(Reply) (Thread)
[User Picture]From: panchul
2019-04-05 05:31 pm (UTC)
*** Относительно устаревших 74XX, вы преувеличиваете. ПЛИСы тогда ещё были мелкими, убогими, дорогими и редкими. ***

Между 74XX начала 1970-х и FPGA конца 1980-х было довольно массовое использование PAL, GAL, PLD, мне говорил об этом бывших начальник, который проектировал мейнфреймы в Amdahl в конце 1970-х годов.
(Reply) (Parent) (Thread)
[User Picture]From: ardelfi
2019-04-05 05:46 pm (UTC)
Дык мейнфреймы -- это не массовое, а почти эксклюзив. Я посмотрел (почти со слезами) тирдаун сервера Sun (за шестизначные докризисные баксы) десятилетней давности -- там точно эксклюзив, если посмотреть как всё (хорошо) сделано. У меня был Спектрум на 1553 и 555, а осциллограф на 155. В писюках (IBM!) того времени тоже было полно 74ХХ -- на фото их видно, если сделать "view image". Вот это было массовое, и это всё восьмидесятые.
(Reply) (Parent) (Thread)
[User Picture]From: 1500py470
2019-04-06 07:07 am (UTC)
Емнип PALCE22V10 в московском метрополитене коробками, итальянская пневматика в дверях вагонов и бельгийская резина на поручнях эскалаторов говорит о неоднозначности и извилистости путей прогресса в мире, при медицинском факте применения релейной логики в нью-йоркском метрополитене и в наши дни прямо сейчас. Люди в разных мирах живут, и прошлое непредсказуемое такое, хотя большинство народа всё в 80-е на стандартной логике, а не ПЛМ с ПЛИСами или БМК делало.
(Reply) (Parent) (Thread)
[User Picture]From: 18cc
2019-04-09 10:00 am (UTC)
>DSP в TI -- это круче чем всё остальное из перечисленного)

А почему это так круто, круче чем проектирвоать процы в аппле?
(Reply) (Parent) (Thread)
[User Picture]From: ardelfi
2019-04-09 10:57 am (UTC)
Мне не удастся объяснить. Почему спроектировать самолёт круче чем автобетономешалку? Обе машины сложны, функциональны и полезны, но если поставить их рядом, такой вопрос не возникает. Может слово "круче" недостаточно выразительно.
(Reply) (Parent) (Thread)
[User Picture]From: 18cc
2019-04-09 03:43 pm (UTC)
Я ни разу не спец в этой области, но почему DSP в ti это что-то нереальное, а вот процессор в аппле -- ну так, да, неплохо. Тут соотношение по потребителям диаметрально противоположенное... Или с тз технарей и профи уровень решаемых задач несопоставим в пользу ti? Проектировать центральный компонент для продукта, которым пользуются миллиарды тоже так нетривиально.
(Reply) (Parent) (Thread)
[User Picture]From: spamsink
2019-04-05 05:39 pm (UTC)
Если писать на Верилоге, как будто это программа, а не схема, то код будет работать на симуляторе, но не будет синтезироваться, а если даже будет синтезироваться, то получится безумная (в смысле тайминга или размеров) схема.

Я с творчеством подобных инженеров сталкиваюсь чуть не каждый день, так что даёшь правильно обученных инженеров!

С другой стороны, умный синтезатор должен в большинстве случаев и сам догадываться, как описанную функциональность синтезировать оптимально. Допустим, пока в Верилоге не было $countones, все писали подсчет числа единиц не как на Си, с хитрыми масками 5555..., 3333, 0f0f... и сдвигами, а тупо в цикле прибавляли по битику к текущей сумме (впрочем, и до сих пор так пишут, тупицы). Понятно, что все уважающие себя синтезаторы делали из этого не цепочку сумматоров, а дерево.
(Reply) (Thread)
[User Picture]From: murmau
2019-04-06 11:53 pm (UTC)

Чем дальше идет развитие какой то темы тем сложнее становится войти в эту тему с ноля новому человеку. И тем больше ограничивается круг тех, кто а теме. Ибо потратить двадцать лет на обучение чтобы добавить к имеющемуся стабильному проекту какую либо новую незначительную фишку и получить за это сто баксов (ибо фишка незначительная) желающих будет немного. Или не будет вовсе.  В итоге тема сама себя задушит. Пока живы создатели, знающие тему с рождения - тема живет. Уходят создатели - тема умирает. Передать опыт о человека к человеку неаозможно. Разве что путем полностью автоматизированной разработки. Но тогда создателем становится компьютер и человек вообще перестает контролироаать тему.



Edited at 2019-04-07 03:44 am (UTC)
(Reply) (Thread)
[User Picture]From: tingoose
2019-04-09 09:49 am (UTC)
Наоборот, все эти немыслимые чудеса с каждым годом становятся доступнее "любому школьнику". Улучшается инструментарий (компиляторы, средства разработки, учебные и разработческие платы), появляется много человеческих учебных пособий "почти как arduino".

Число людей, вовлечёных в любую индустрию (кроме палеолитических) так же растёт. Так что можно спросить на форуме вопрос и с неплохой вероятностью получить полезный ответ.
(Reply) (Parent) (Thread)
[User Picture]From: murmau
2019-04-11 05:08 am (UTC)
Не путайте пользователей созданного создателями и собственно создателей того, чем потом все пользуются. Пользоваться ардуиной может сейчас практически любой школотрон. Даже я. Создать же ту ардуину это совсем совсем другой коленкор. Как минимум выходим на конечные автоматы, а там ещё комбинаторика и матричная алгебра, теория графов, карты Карно и тп. И это только теоретическая база.
Дальше у нас пойдут теоретические основы электротехники, электроника, дальше уже пойдет более приближенная к конечному продукту технология создания интегральных схем, дальше всяческие верилоги и тому подобное.
Причем надо понимать, что пока человеку интересно, пока он играется, изучает какой то этап, ну вот в это время он ничего полезного не создает. Это ему надо перебродить, наиграться и только потом он начнет выдавать реальный продукт. И так для каждого этапа. Там десятки лет уйдут. оно может и не очень сложно всё, однако объемы того, что нужно знать, чтобы создавать, они огромны. А на выходе сто баксов.

Edited at 2019-04-11 05:10 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: tingoose
2019-04-11 06:58 pm (UTC)
Создание ардуины (платы аналогичного функционала) стало так же проще быстрее и легче. Для этого даже не требуется полгода согласовывать NDA с каким-нибудь гигантом. Так же стало проще:
1. Сделать свою материнскую плату, из любого чипа
2. Адаптировать операционную систему (linux) под новый чип
3. Написать/портировать софт под новый чип с новой архитектурой

При этом объём вещей, которые следует знать, не то чтобы прямо радикально увеличился, а некоторые вещи так и вообще позабыть можно. Мы ведь благополучно не помним теорию групп при охоте на мамонтов или технологию обтёсывания каменных топоров.
(Reply) (Parent) (Thread)