Семинары по введению во всё: от верилога и цифровой логики до микроархитектуры встроенных процессоров и RTOS-ов

Господа! Мы с Тимуром Палташевым из AMD в Саннивейл, Калифорния, а также с несколькими соратниками из России, Украины и Казахстана решили спланировать несколько семинаров разных форматов, которые покрывают темы на стыке хардвера и софтвера: цифровая логика, Verilog, правила RTL (Register Transfer Level), введение в микроахитектуру (строение конвейера) процессоров, низкоуровневое программирование на ассемблере, использование микроконтроллеров, особенности чипов для интернета вещей, введение в RTOS-ы, лабы на ПЛИС-ах / FPGA, а также (для части аудитории, которая интересуется производством чипов) физические аспекты проектирования и производства на фабрике (для последнего мы решили привлечь материалы от преподавателя курса в Университете Калифорнии Санта Круз, отделение в Silicon Valley).

Цель этого поста — обсудить кому что нравится на основе детального плана первого из таких семинаров, который будет в Казахстане. Идея данного семинара в том, чтобы пригласить некоторое преподавателей казахстанских вузов и сделать для них обзор, чтобы помочь им сориентироваться, в каких местах можно повысить качество их программ в программировании встроенных систем, электронике, а также затронуть связанные области типа интернета вещей и роботики.

elizabeth_panchul_160702_085714-2

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

1. Русский перевод учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», пост про который получил на Хабре 140 тысяч просмотров и который используют преподаватели во многих вузах, в том числе в МФТИ и МВТУ.

2. Курс по микроконтроллерам Microchip PIC32MZ, созданный профессором Александром Дином из университета Северной Каролины, в кооперации с Imagination Technologies, Microchip Technology и Digilent (отделением National Instruments), над ревью которого работали и российские вузы, в том числе МИЭТ в Зеленограде и СГАУ в Самаре.

3. MIPSfpga — это пакет, который содержит процессорное ядро в исходниках на Verilog, которое можно менять, добавлять новые инструкции, строить многопроцессорные системы, менять одновременно софтвер и хардвер и т.д. См. также пост Как делать парсинг текста голым хардвером, без процессора и без софтвера про один из блоков MIPSfpga.

Кроме этого, уже после Казахстана, мы планируем привлечь для подготовки семинаров в России и в Украине преподавателя из UC Santa Cruz Extension in Silicon Valley по имени Чарльз Данкак который разрешил мне сделать краткую вырезку из слайдов его курса «Разработка нанометровых специализированных микросхем: от спецификации до кремния»:

Developing the Nanometer ASIC: From Spec to Silicon by Charles T Dancak

Но теперь вот для вашей критики расписание в Казахстане. Мне интересно кто бы как расставил акценты:

0ad3ef5d03d007c5094dd42f0f37c5ef.png
b727a8515df8fd3d09cbf472f0afbd70.png
1399bc2eebde79a84589d62f26feea38.png
3aa50641c08761bbec4d616d10a02d1b.png
ec22dc8eaf54af426b3bf1b285b28a5e.png
5756a79545ee4e924977df53ea0b66e4.png
cdbe5acdbd7406a609af5dfcf7d5bbae.png
5df80b96d1679159f4172550d8e32548.png
2b11dca0ee8f2be712779d7f910d590c.png
0736d250189f966c8e45ee24571a7b27.png
539ba561f80c055d70d5944b9c00c95d.png

Для обоснования семинара в Казахстане его устроителям я написал такой текст:

Семинар нацелен на следущие группы университетских преподавателей:

1. Преподаватели цифровой схемотехники, заинтересованные в улучшении своих существующих курсов. На семинаре мы представим русский перевод популярного учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», который, помимо введения в основы цифровой логики, содержит введение в языки описания аппаратуры Verilog и VHDL, а также показывает студенту, как построить собственный конвейерный микропроцессор, который может быть реализован на недорогих студенческих платах с микросхемами ПЛИС.

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

2. Преподаватели программирования на языках высокого уровня, заинтересованные в расширении своих курсов с помощью включения низкоуровневого программирования на ассемблере MIPS, одной из трех главных ахитектур (ARM, MIPS, x86), которые применяются во встроенных системах.

Студенты, изучившие этот материал, смогут специализироваться в программировании микроконтроллеров (например Microchip PIC32MZ) и встроенных процессоров (например MediaTek MT7688), с самым широким спектром применений — в транспорте, агропромышленных системах и «интернете вещей». Кроме этого, студенты смогут специализироваться в направлениях, которые требуют знания низкоуровневого программирования — написание компиляторов, ядер операционных систем и гипервизоров для виртуализации.

3. Преподаватели программирования микроконтроллеров, которые хотят улучшить свои курсы, используя курс Connected MCU, разработанном в университете Северной Каролины, в сотрудничестве с Imagination Technologies, Microchip Technology и Digilent (отделения National Instruments).

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

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

5. Преподаватели, желающие внедрить новое для многих вузов преподавание проектирования систем на кристалле (System on Chip — SoC). Сейчас даже небольшие компании в области интернета вещей начали проектировать собственные специализированные системы на кристалле, соединяющие экономичные процессорные ядра с их собственной периферией, после чего использовать контрактное производство таких микросхем в Китае. Пакет MIPSfpga, который сожержится в материалах семинара, позволяет прототипировать такие системы, используя недорогие студенческие платы ПЛИС.

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

Комментарии (17)

  • 3 июля 2016 в 10:20

    +1

    цитата — заинтересованные в расширении своих курсов с помощью включения низкоуровневого программирования на ассемблере MIPS, одной из трех главных ахитектур (ARM, MIPS, x86), которые применяются во встроенных системах.

    тут нужно добавить — одной из самых малораспостраненных из трех архитектур

    цитата — Студенты, изучившие этот материал, смогут специализироваться в программировании микроконтроллеров (например Microchip PIC32MZ)

    а почему собственно выбран PIC32MZ, а не например STM32?
    просто в прикладном плане количество проектов на базе STM32 на порядки превышает количество проектов на PIC32.
    Кому нужен после института специалист, который знает очень много о малоиспользуемой платформе?
    Это как программист, который плохо знает английский, но хорошо знает латинский…(просто в институте учили латинский).

    P.S. Я конечно догадываюсь о материальном участии фирмы Microchip

    • 3 июля 2016 в 10:26

      0

      Как всегда под такой статьей первый коммент — от поклонника ARM и STM32 который кипит праведным негодованием, что MIPS и PIC32MZ вообще смеют существовать.

      Прежле всего, если вам хочется курса на основе STM32 — напишите его сами и опубликуйте пост на Хабре.

      Далее, в STM32 F4 / ARM Cortex M4, которые по классу соответствуют MIPS M5150 в PIC32MZ EF,
      в STM32 F4 / ARM Cortex M4 нет кэшей, нет хардверной виртуализации и ниже производительность. А вот в MIPS M5150 в PIC32MZ EF кэши и хардверная виртуализация есть. И TLB MMU.

      Кэши студентам учить надо или не надо?

  • 3 июля 2016 в 10:42

    +1

    никто негодованием не кипит, насчет права существования MIPS и PIC32MZ, которые объективно уже сушествуют, речь идет о том что нужно
    студенту давать разносторонние и полезные в будущей жизни знания, а вот ограничение кругозора одним MIPS — надругательство над студентом

    писать ещё один курс на основе STM32 — уже моветон, их столько написано…(в том числе и на Хабре)

    и к сожалению жизнь говорит об обратном, — студентам после учебы нужно найти сразу РАБОТУ,
    , а вот не зная STM, но зная кэши от PIC32, до «кэша» в виде «зелени» доберется он не скоро…

    • 3 июля 2016 в 10:53

      0

      ***, а вот ограничение кругозора одним MIPS — надругательство над студентом ***

      Никто ничего не ограничивает — студенту нужно владеть несколькими архитектурами. Это вы хотите всех заставить изучать только то, что используете вы лично.

      *** писать ещё один курс на основе STM32 — уже моветон, их столько написано…(в том числе и на Хабре) ***

      Приведите ссылку на курс на основе STM32, в котором разбирается не только как подсоедить какой-нибудь SPI, но и работу микроконтроллера с RTOS и эффекты конвейера на производительность.

      ***, а вот не зная STM, но зная кэши от PIC32, до «кэша» в виде «зелени» доберется он не скоро… ***

      Работа кэша процессора — необходимый элемент образования инженера.

      И если вы считаете, что якобы на PIC32 работы нет, то почему семинары Microchip Technology в Питере собирают кучу народа?

      • 3 июля 2016 в 18:41

        0

        Мне кажется, изучать как раз и нужно «как подсоединить какой-нибудь SPI», и стараться не засорять голову всяким мусором вроде «эффекты конвейера на производительность».
        Пользователям давно уже по барабану, что там под капотом — 8 битный микроконтроллер или MiniATX компьютер на Windows 10. Пользователю главное, чтобы машина работала, робот сам шагал, а злые птички запускались из рогатки. За это платят деньги.

        Могу привести такой пример. Можно долго изучать сопромат, металлургию, токарное дело и потом найти работу высококлассным токарем на станке ЧПУ и изготавливать детали для автомобилей какой-то конкретной модели на заводе Toyota.

        А можно быть рабочим в СТО, знать, как в целом устроены автомобили, уметь чинить как двигатель в BMW, так и тормоза в Toyota. Да, рабочий будет получать чуть меньше (но не всегда!), но для того, чтобы устроиться на работу, не нужно ехать в Японию, в любом селе можно устроиться.

        Каждый выбирает работу по себе. Но нельзя всех _принудительно_ учить быть профессиональным токарем в Toyota.

        • 3 июля 2016 в 18:44

          0

          *** Пользователям давно уже по барабану, что там под капотом — 8 битный микроконтроллер или MiniATX компьютер на Windows 10. Пользователю главное, чтобы машина работала, робот сам шагал, а злые птички запускались из рогатки. За это платят деньги. ***

          Это так, только если вы гововорите о высокоуровневом программировании.

          Большая часть семинара — не о программировании (ARM или MIPS), а о разработке системы на кристалле, т.е. главным пунктом является день 4 с MIPSfpga, где интегрируется микропроцессорное ядро на верилоге с памятью и устройствами ввода-вывода, после чего эта система синтезируется для реализации в ПЛИС / FPGA.

          Введеление в Verilog и программирование на ассемблере делаются сначала, чтобы часть с MIPSfpga могли сделать даже люди с нуля, а часть с PIC32MZ вводится в конце, так как PIC32MZ EC использует ровно то же самое процессорное ядро MIPS micrpAptiv UP (а PIC32MZ EF — MIPS M5150), что и MIPSfpga, т.е. слушатель получает возможность сравнить систему изнутри и снаружи, в виде готового микроконтроллера.

          У ARM точного аналога MIPSfpga вообше нет, так как пакет от ARM под названием Design Start содержит ядро ARM Cortex M0 в obfuscated нечитаемом виде, его нельзя менять, добавлять в него новые инструкции, смотреть как изменения в железе влияют на производительность.

          Конечная цель семинаров — чтобы в России образовалось больше команд типа ELVEES-NeoTek и Байкал Электроникс, которые бы разрабатывали чипы встроенных специализированных процессоров.

          См. пресс-релиз от ЭЛВИС-НеоТек:

          elvees.ru/home/index.php? id=17&tx_ttnews%5Btt_news%5D=766&cHash=89a2b4a4dba86aa5dac54e69ffa45d7a

          «ЭЛВИС-НеоТек», проектная компания РОСНАНО, входящая в группу компаний «ЭЛВИС», и компания Imagination Technologies передали в производство семантический процессор ELISE (ELVEES Image Semantic Engine) — мультиплатформенную систему-на-кристалле (СнК) нового поколения, разработанную по технологическому процессу 28 нм, которая предназначена для создания систем для быстрорастущих мировых рынков видеоаналитики: умные города, ритейл, интернет вещей, дополненная реальность, мультимедиа и т.д.

          На основе чипа ELISE могут создаваться IP-камеры с функциями видеоаналитики на борту, мультимедийные устройства и мобильные гаджеты, системы помощи водителю (ADAS), устройства связи и навигации, роботы.

          Для СнК ELISE компания «ЭЛВИС-НеоТек» приобрела права на использование широкой линейки IP-модулей и платформ Imagination:


          Высокопроизводительный двухъядерный процессор MIPS Warrior P5607, а также процессор MIPS InterAptiv, позволяющий работать с несколькими потоками, и энергоэффективный процессор MIPS M5150, которые обеспечивают значительное повышение скорости работы приложений видеоаналитики и обработки звука, требующих большой вычислительной мощности.


  • 3 июля 2016 в 11:04

    +4

    не сочтите за рекламу сайта trud.com

    Работа: stm32 Россия 52 вакансии
    Работа: pic32 Россия 1 вакансия

    • 3 июля 2016 в 14:36 (комментарий был изменён)

      +2

      Работа: менеджер магазина Россия 17 178 вакансий

      Мне кажется, вам вообще микроконтроллеры учить не надо. Никакие. Не найдёте вы с ними работы.

      А если серьёзно — человек, который может писать только под микроконтроллер X, потому что его учили писать только под микроконтроллер X, называется «кодер», а не «программист», и в общем и целом вряд ли заработает много — будет годами фигачить шаблонный код для шаблонных проектов. Минимально приличный же программист, освоив MIPS, без особых проблем займётся и другими архитектурами.

      И, внезапно, именно поэтому на сайте trud.com там мало нужны люди, умеющие фигачить шаблонный код под конкретную архитектуру.

      • 3 июля 2016 в 14:46

        –2

        передергивать про менеджеров глупо с Вашей стороны, Вы еще президента сюда приплетите…

        а нормальный программист освоит сначала именно STM32 и вообще ARM архитектуру, а не то, что ему предлагает проплаченный фирмой Microchip преподаватель…

        цитата-
        человек, который может писать только под микроконтроллер X, потому что его учили писать только под микроконтроллер X, называется «кодер», а не «программист»

        по Вашему определению если заменить X=STM32 на X=PIC32 получается конгитивный диссонанс

        • 3 июля 2016 в 14:51

          +2

          передергивать про менеджеров глупо с Вашей стороны, Вы еще президента сюда приплетите

          Ну, не я первый начал. Вытащили на свет сайт третьего эшелона, вбили в него глупый запрос — получили глупый ответ.

          а нормальный программист освоит сначала именно STM32 и вообще ARM архитектуру

          А если он освоит не STM32, то тогда он не нормальный или не программист? Какова цель освоения им именно STM32? И нет, «я освоил STM32, потому что на алиэкспрессе платы на них по $5» — это не цель, это её отсутствие.

          • 3 июля 2016 в 15:34

            0

            цитата-
            Вытащили на свет сайт третьего эшелона, вбили в него глупый запрос — получили глупый ответ.
            предложите сайт первого эшелона и вбейте на нем не глупый запрос, — наверное он будет звучать, как поиск работы для программиста, разбирающегося в кэше PIC32?

            цель освоения именно STM32 & ARM именно и в том, что платы на них по 5 долларов (ибо студенты не могут их покупать по 50–100 как на PIC32, хотя Вы и считаете это наверное «нещебродством»), а самая главная цель — изучение самой распостранненой архитектуры на сегодня.
            Ваши возражения против приоритета изучения самых распостраненных архитектур — это из области, Windows — must die & Linux forever — я имею цель показать, что я крутой и знаю MIPS, а то что работодателям нужен ARM — так они лохи, считают каждую копейку и жадничают сотку купить платку у Microchip.
            И называть освоение архитектуры ARM отсутствием цели — это даже не грубость, а просто разговор из серии «сам дурак»

            • 3 июля 2016 в 15:42

              +2

              ибо студенты не могут их покупать по 50–100 как на PIC32

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

              хотя Вы и считаете это наверное «нещебродством»

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

              Ваши возражения против приоритета изучения самых распостраненных архитектур — это из области, Windows — must die & Linux forever — я имею цель показать, что я крутой и знаю MIPS, а то что работодателям нужен ARM — так они лохи, считают каждую копейку и жадничают сотку купить платку у Microchip.

              а) Я не знаю ни MIPS, ни ARM, ни даже x86, хотя мы работаем со всеми тремя. AVR могу со словарём.
              б) Зато я — работодатель.

              И фраза «я знаю STM32, потому что мы проходили его в университете» для меня будет с большой вероятностью означать конец собеседования.

          • 3 июля 2016 в 18:21

            0

            Я сам недавно выпущенный студент и хочу ответить вам. Вакансий для начинающих на хэдхантере с упоминанием mips нет совсем (Санкт-Петербург). Поэтому логично, что мне, как начинающему нормальному (среднему) программисту, пришлось разбираться в первую очередь в архитектуре arm.

            Кроме того, вы упоминаете RTOS. Операционные системы являются абстракцией и позволяют программисту отрешиться от проблем с конвейеризацией и кэшированием. И у меня возникает вопрос:, а какова цель ваших семинаров?
            Большая часть того, что вы предлагаете, дается в университетской программе, даже в средненьком вузе.

            • 3 июля 2016 в 18:41

              0

              Большая часть семинара — не о программировании (ARM или MIPS), а о разработке системы на кристалле, т.е. главным пунктом является день 4 с MIPSfpga, где интегрируется микропроцессорное ядро на верилоге с памятью и устройствами ввода-вывода, после чего эта система синтезируется для реализации в ПЛИС / FPGA.

              Введение в Verilog и программирование на ассемблере делаются сначала, чтобы часть с MIPSfpga могли сделать даже люди с нуля, а часть с PIC32MZ вводится в конце, так как PIC32MZ EC использует ровно то же самое процессорное ядро MIPS micrpAptiv UP (а PIC32MZ EF — MIPS M5150), что и MIPSfpga, т.е. слушатель получает возможность сравнить систему изнутри и снаружи, в виде готового микроконтроллера.

              У ARM точного аналога MIPSfpga вообше нет, так как пакет от ARM под названием Design Start содержит ядро ARM Cortex M0 в obfuscated нечитаемом виде, его нельзя менять, добавлять в него новые инструкции, смотреть как изменения в железе влияют на производительность.

              Конечная цель семинаров — чтобы в России образовалось больше команд типа ELVEES-NeoTek и Байкал Электроникс, которые бы разрабатывали чипы встроенных специализированных процессоров.

              См. пресс-релиз от ЭЛВИС-НеоТек:

              elvees.ru/home/index.php? id=17&tx_ttnews%5Btt_news%5D=766&cHash=89a2b4a4dba86aa5dac54e69ffa45d7a

              «ЭЛВИС-НеоТек», проектная компания РОСНАНО, входящая в группу компаний «ЭЛВИС», и компания Imagination Technologies передали в производство семантический процессор ELISE (ELVEES Image Semantic Engine) — мультиплатформенную систему-на-кристалле (СнК) нового поколения, разработанную по технологическому процессу 28 нм, которая предназначена для создания систем для быстрорастущих мировых рынков видеоаналитики: умные города, ритейл, интернет вещей, дополненная реальность, мультимедиа и т.д.

              На основе чипа ELISE могут создаваться IP-камеры с функциями видеоаналитики на борту, мультимедийные устройства и мобильные гаджеты, системы помощи водителю (ADAS), устройства связи и навигации, роботы.

              Для СнК ELISE компания «ЭЛВИС-НеоТек» приобрела права на использование широкой линейки IP-модулей и платформ Imagination:


              Высокопроизводительный двухъядерный процессор MIPS Warrior P5607, а также процессор MIPS InterAptiv, позволяющий работать с несколькими потоками, и энергоэффективный процессор MIPS M5150, которые обеспечивают значительное повышение скорости работы приложений видеоаналитики и обработки звука, требующих большой вычислительной мощности.

              *** Большая часть того, что вы предлагаете, дается в университетской программе, даже в средненьком вузе.
              html-теги ***

              В последнее время ситуация в России улучшилась, но даже 5 лет назад во многих программах были дыры, например были программы с цифровой схемотехникой, но без использования Verilog или VHDL, или скажем с архитектурой (ассемблером), но без микроахитектуры (структуры конвейера). В Украине и Казахстане эти дыры тоже сейчас постепенно закрывают.

        • 3 июля 2016 в 15:49

          0

          Я начал писать программы в те времена, когда миром правил Intel 8080. С тех пор на моём счету сотни проектов для самых различных процессоров/микроконтроллеров: Intel, Motorola, Microchip, Zilog, Atmel. Сравнительно недавно пришлось и под ARM кое-что делать. Имею опыт использования софтпроцессоров в составе FPGA Xilinx и Altera. Только вот до STM32 что-то никак руки не дошли. Честно говоря — даже не знаю, что это такое. Но клятвенно обещаю — погуглить!

          Я ненормальный программист?

  • 3 июля 2016 в 18:21

    0

    В Москве семинар планируется?
    • 3 июля 2016 в 18:21

      0

      Да, в конце октября

© Habrahabr.ru