- PVSM.RU - https://www.pvsm.ru -

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 1

Оказывается, в Кыргызстане, который в 11 веке стоял аккурат посередине Великого шёлкового пути, спустя тысячу лет появились проектировщики цифровых схем на уровне регистровых передач. Во время семинара «Модели бизнеса и основы технологий микроэлектроники для Центральной Азии» [1] мы встретились с инженером Азаматом Бексадаевым, который принимал участие в разработке двух блоков на верилоге для международного проекта Parallella [2]. Этот проект был инициирован американской компанией Adapteva [3], которая сейчас превратилась в Zero ASIC [4].

Основой технологии Adapteva была решетка из большого количества процессорных ядер внутри одной микросхемы. Ядра имели собственную архитектуру под названием Epiphany [5] и были оптимизированы под энергоэффективные вычисления с плавающей точкой. По микроархитектуре каждое ядро было суперскаляром с внеочередными выполнением инструкций (out-of-order – OoO).

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

Целью технологии было построить своего рода встроенный суперкомпьютер, в котором помимо решетки из 1024 ядер на чипе – можно было бы строить еще и решетку следущего уровня, из многих таких чипов, вплоть до миллиарда ядер. Adapteva выпустила несколько чипов на TSMC, в том числе чип на 16 нанометров в 2016 году. Деньги в проекте были от кикстартера, венчурных капиталистов и американских военных. Adapteva также вероятно пыталась продать компании Ericcson идею использовать Epiphany для распознавания речи и лиц в сотовых телефонах, судя по упоминанию Эриксона и раcпознавания в разных материалах (1 [5]2 [3]).

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 2

Плата Parallella [2], которую Adapteva пробовала раскрутить через Kickstarter для энтузиастов новых технологий вычислений, включала не только чип с ранней версией решетки процессоров Epiphany, но и более мейнстримный чип Xilinx Zynq, а также другие компоненты, в том числе порт Ethernet. Чип Zynq, с которым в основном работал Азамат Бексадаев, представляет из себя комбинацию из двухядерного процессора ARM Cortex A9 – c матрицей из ячеек реконфигурируемой логики – Field-Programmable Gate Array – FPGA, которые по-русски принято называть Программируемые Логические Интегральные Схемы – ПЛИС.

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 3

Хотя ПЛИС работают как правило на более низкой частоте, чем ASIC (фиксированные микросхемы, Application-Specific Integrated Circuits), а также требуют больше ресурсов (площади на кристалле, электроэнергии), ПЛИС из-за их возможности меняться на лету широко применяют для обучения проектировщиков микросхем, для прототипорования ASIC-ов и для некоторых малосерийных изделий. Пара слов о сущности ПЛИС из другой моей заметки на Хабре [6]:

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

ПЛИС-ы / FPGA — не процессоры, «программируя» ПЛИС (заполняя конфигурационную память ПЛИС-а) вы создаете электронную схему (хардвер), в то время как при программировании процессора (фиксированного хардвера) вы подсовываете ему цепочку написанных в память последовательных инструкций программы (софтвер).

Внизу — схема простейшего блока FPGA, в который входит look-up table (LUT) и flip-flop. Правда в этой схеме не показаны мультиплексоры, которые меняют функцию ячейки, и соединения с конфигурационной памятью.

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 4

Диаграммы, иллюстрирующие структуру FPGA:

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 5

И еще одна:

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 6

Какую же именно схему реализовывал Азамат Бексадаев на Zynq FPGA а проекте Parallella? Два блока, которые Азамат описал в своем профайле на LinkedIn [7]: контроллер флеш-карты памяти и аппаратный grep, обработка текста хардвером. Я тоже когда-то писал про обработку текста схемой без процессора в заметке “Как делать парсинг текста голым хардвером, без процессора и без софтвера” [8], но у Азамата задача горадо более сложная. Вот репозиторий проекта на GitHub [9] и детали из линкдина Азамата:

  1. Redesigned SD/eMMC Host Controller (HC) from “Wishbone” interface into the “AMBA AXI” interface and written key features for this Controller:

    • Extended data bus from 1 bit to 8 bit,

    • Written module Single Operation DMA (SDMA),

    • Upgraded SDMA to Advanced DMA (ADMA),

    • Written AutoCMD23 feature to optimise CMD exchange flow between Card and HC,

    • Controller was upgraded to work in High Speed mode. This mode allow read/write data in 50MHZ,

    • Implemented supporting of Dual Data Rate (DDR) mode, which is doubled the speed data transferring.

    All these implemented upgrades and features speeded up the Host Controller from 14MB/s to 97MB/s. Some of features were carried out together with the changes of kernel SDHCI host driver.

  2. Developed Pattern searching engine on FPGA with Regular Expression. Meta-characters compatible with POSIX standard. (Analogue of “grep”):

    • Participated in building and testing of subset construction algorithm that searches of patterns for some of the regexp meta characters.

Responsibility:

  • Develop RTL design on Xilinix ZYNQ 7020 SoC using Verilog HDL. Development kit – ZedBoard, Target board is Parallella.

  • Integrate Design with Linux driver.

  • Testing and debugging the each steps of the projects.

  • Measure electrical utilization. Comparing and analyzing metric results.

  • Writing documentation.

  • Competence in Agile Scrum methodology. Daily Scrum, Sprint planing, Backlog grooming, Sprint retrospectives.

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 7

Какова же мораль всей этой истории? В Кыргизстане есть инженеры, которые умеют писать профессиональный код на языках описания аппаратуры, получают это умение в местных вузах (в кыргызском политехе есть курс по VHDL с лабами на FPGA) и развивают это умение с помощью участия в open-source проектах. Такое наблюдение поддерживает идею, ради которой собственно и был организован семинар в Бишкеке: в Средней Азии можно, с относительно низкого старта, развить экосистему проектирования микроэлектронных чипов, используя оставшиеся от советского периода традиции образования, в комбинации с поддержкой местных бизнесменов и международных технологических компаний.

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 8

Кстати, пока я смотрел на фрагмент кода Азамата, который я вынес в заголовок (фрагмент генерирует сигнал AWREADY протокола AXI), я осознал, что этот дизайн можно сделать более эффективным. Кто из читателей первым скажет как именно? Вот исходники [10]. Подсказка: про это написано в свежей редакции стандарта AXI.

Материалы самого семинара (код, фото и видео) вы можете скачать и посмотреть на сайте Digital Design & Verification in Central Asia [11].

Автор: Юрий Панчул / Yuri Panchul

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/verilog/378130

Ссылки в тексте:

[1] «Модели бизнеса и основы технологий микроэлектроники для Центральной Азии»: https://www.auca.kg/ru/auca_news/5226/

[2] Parallella: https://parallella.org/

[3] Adapteva: https://en.wikipedia.org/wiki/Adapteva

[4] Zero ASIC: https://www.zeroasic.com/

[5] Epiphany: https://parallella.org/wp-content/uploads/2016/10/e5_1024core_soc.pdf

[6] о сущности ПЛИС из другой моей заметки на Хабре: https://habr.com/ru/post/260069/

[7] Азамат описал в своем профайле на LinkedIn: https://www.linkedin.com/in/azamat-beksadaev-4222295a/

[8] “Как делать парсинг текста голым хардвером, без процессора и без софтвера”: https://habr.com/ru/post/278681/

[9] репозиторий проекта на GitHub: https://github.com/subutai-attic/pars

[10] исходники: https://github.com/subutai-attic/pars/blame/master/FPGA/eMMC_HC_v3.0/sd-eMMC_controller/src/sd_emmc_controller_S00_AXI.v

[11] Digital Design & Verification in Central Asia: https://ddvca.com/

[12] Источник: https://habr.com/ru/post/683720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=683720