Три года назад появился на свет первый мультиклеточный процессор. На тот момент для нас было действительно приятным событием то, что процессор заработал с первой попытки реализации новой архитектуры в кремнии. Для процессора Мультиклет P1 были разработаны две отладочные платы, которые позволяли освоить процессор и имели в свое составе основные элементы периферии.

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


Рис 1. Эскиз процессорной платы

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


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

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


Рис 2. Эскиз базовой платы

    Разработку отладочной платы доверили профессионалам из LDM-Systems. Мы конечно предполагали, что получится в итоге, т.к. данная компания уже изготавливала для нас отладочную плату для процессора Мультиклет P1. Но результат превзошел все наши ожидания.

Был разработан отладочный комплект, состоящий из базовой универсальной платы и подключаемой к ней процессорной платы, см рис.3.


Рис 3. Полная версия отладочного комплекта

    Процессор R1 запустился с первого раза и замигал светодиодами. Конечно, изготовить такую достаточно объемную вещь идеально было непросто. Но было от чего отталкиваться и без особых проблем мы пришли к версии отладки, которая мне нравится, и надеюсь, удовлетворит потребности большинства наших пользователей. Стоит отметить, что в какой-то момент пришлось достаточно много линий развести заново на плате(в очередной раз я настоял на этом, поэтому отчасти это моя вина, что первым пользователям была немного сдвинута дата доставки), чтобы всё было эстетично и удобно для пользователей со всеми блоками периферии, как говорится «встречают по одёжке». За что мы очень благодарны нашим мастерам из LDM-Systems, которые построили уютный пункт управления для Мультиклет R1.

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


Рис 4. Максимальная комплектация базовой платы

Второй тип отличается базовой платой, которая называется pMB101 и имеет несколько урезанный набор разъемов на борту, но позволяет воспользоваться всеми необходимыми интерфейсами и собрать свое устройство в виде компактного готового модуля, см рис 5.



Рис 5. Версия компактной базовой платы

Третий тип также имеет отличие в версии базовой платы, которая называется uMB301 и позволяет состыковать процессорную плату в максимально компактном виде, см рис 6.


Рис 6. Версия микро базовой платы

Таким образом, мы получили комплектации седан, хэтчбек и купе. На рис 7 показано с какими основными интерфейсами возможно работать на базовой плате, хотя имеются также интерфейсы SPI, I2C, I2S и другие, которые можно задействовать через выводы на процессорной или базовой плате.


Рис 7. Основные интерфейсы базовой платы

Также мы подготовили видео демонстрацию работы отладочной платы:



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

3. Минимальная комплектация
    Как и в автомобильной промышленности, по многочисленным заявкам была выпущена минимальная комплектация отладочного комплекта. Но почти каждый автомобиль, купленный в минимальной комплектации можно затем довести до комплектации «Люкс» и приобрести зимнюю резину. Мы решили не отходить от этой концепции и в результате мы сняли часть элементов процессорной платы, а также защитный корпус программатора. Мы не стали действовать столь радикально как в фильме Марсианин и с нашего модуля скинули только некоторые компоненты периферии, что позволило снизить затраты на производство процессорной платы с Мультиклет R1 с учетом программатора в комплекте до уровня отладочной платы предыдущего поколения с Мультиклет P1.

Получилась минимальная комплектация процессорной платы, см рис 8.


Рис 8. Процессорная плата с сокращенным количеством элементов

На процессорную плату не были установлены некоторые компоненты для работы периферии и их обвязка, на рис. 9 продемонстрированы данные элементы.


Рис 9. Основные элементы, которые не были установлены на плату

Таким образом, основными не установленными компонентами стали 2 памяти SRAM, 2 памяти SDRAM, микросхемы физического уровня для USB, ETHERNET. Вы можете довести процессорную плату до максимальной комплектации. Для этого достаточно обратиться к официальному дилеру или в любой салон паяльных услуг. По компонентам вы также в праве сами решать, какие устанавливать, оригинальные или нет.

В состав минимальной комплектации также входит программатор без корпуса (см рис. 10) и microUSB – USB шнур для подачи питания от порта USB.


Рис 10. Бюджетный вариант программатора

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


Рис 11. Переходники для процессорной платы с цанговых разъемов

Таким образом, минимальная комплектация, состоящая из процессорной платы, бюджетного программатора и шнура microUSB-USB позволяет осваивать мультиклеточный процессор R1 и проводить разработку и отладку различных устройств.
    Как и полный комплект плат, так и плату в минимальной комплектации можно «прокачать» под свои нужды, прикрепив в качестве следующего этажа плату с навигационным оборудованием, силовыми ключами, модулем управления шаговыми двигателями. Разработчик дополнительных модулей, которые позиционируются как Slave-модули конечно не Xzibit, но рассматривает предложения пользователей на изготовление дополнительных модулей. Навигационный модуль, модуль с силовыми ключами и модуль для подключения системы экранов показаны на рис 12.




Рис 12. Slave модули

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

4. Заключение
    И напоследок хотелось бы сказать, что сейчас полным ходом идет разработка всего необходимого ПО (в т.ч. компилятора llvm), заработала лаборатория в УрФУ в радиотехническом институте (ИРИТ-РТФ). В лаборатории установлены комплекты максимальной комплектации, для удобства организации учебного процесса. Робототехнические наборы «Роботология» выходят на серийное производство, но их специфика больше направлена на освоение «Робототехники» школьниками, а также на быстрое знакомство с отечественным процессором, хотя отдельные элементы могут найти свое применение и в промышленности.

В ближайшее время у нас планируется организовать бесплатный удаленный доступ к отладочной плате, чтобы большее число желающих смогли попробовать работу с платой в нашей среде. У нас будет вестись трансляция на youtube отладочной платы, чтобы пользователи могли видеть, что происходит. В качестве ОС будет Fedora. Подключиться удаленно смогут как пользователи Linux, Mac так и Windows, достаточно просто запросить временной интервал.

Спасибо всем, кто проявляет интерес к нашему развитию, и ожидаем новую волну пожеланий, критики и предложений. Именно Вы делаете нас лучше!

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


  1. IronHead
    22.10.2015 12:21
    +2

    Раздача демо плат не планируется? Хотелось бы потрогать руками, попробовать что из себя представляет.


    1. byria
      22.10.2015 12:46

      подписываюсь!


    1. persei
      22.10.2015 12:54

      Да, это был бы хороший шаг по популяризации :)


      1. IronHead
        22.10.2015 13:03

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


        1. krufter
          22.10.2015 13:33
          +1

          Я обеими руками за бесплатную раздачу плат под проекты, но руководство считает, что на данном этапе достаточно бюджетной версии. Именно руководство отчитывается за средства перед частными инвесторами. Мы сами производим процессоры и пишем необходимый софт. Отладочные платы производит партнер компании LDM-Systems и насколько мне известно, они планируют акции на бюджетные отладки, но пока до бесплатной раздачи не дошло.
          Но каждый день происходят перемены и наверное всё к лучшему, поэтому настанет еще время для бесплатной раздачи. А пока «живую» плату можно потрогать в Уральском Федеральном университете на факультете ИРИТ-РТФ.


          1. IronHead
            22.10.2015 13:38

            Опять Санкт-Петербург на отшибе цивилизации )
            Будут акции или платы появятся в Санкт-Петербурге — сообщайте в новых статьях.
            Рад буду приехать в какой нибудь хакспэйс, попробовать свои идеи на данном железе.


            1. krufter
              22.10.2015 13:55
              +1

              Обязательно сообщим. Будем рады, если например, СПбГУ согласится сделать учебный класс. Из Санкт-Петербурга компания Embox пробовала свои идеи, есть даже статья habrahabr.ru/company/embox/blog/265059. Но так как мы находимся в Екатеринбурге, то УрФУ нам ближе.


  1. Halt
    22.10.2015 14:11
    +2

    Вы упомянули что «разрабатывается компилятор llvm». Выходит, что я был прав и LLVM все таки возможно применить и для нестандартной (нерегистровой) архитектуры? Или же ребята взялись за расширение LLVM и на такой вариант?

    Хотел бы услышать подробности или поговорить с тем, кто это делает.


    1. krufter
      22.10.2015 14:25

      Насколько мне известно, LLVM скажут, что у нас обычная регистровая машина с кучей регистров. Затем LLVM оптимизирует Си код(а нам нравится как он это оптимизирует) и после этого произойдет преобразование к ссылкам коммутатора, где это необходимо. Таким образом, получится полноценный портированный LLVM. На данном этапе идет активная фаза портирования, вопросы над которыми приходится подумать периодически возникают, но ничего непреодолимого на данный момент нет. Если интересны подробности или хотите помочь, то могу дать контакты разработчика.


      1. Halt
        22.10.2015 14:41
        +1

        Тогда интересно было бы усшылать, как решили проблемы, которые обозначил aaefimov в прошлом треде.

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


        1. krufter
          22.10.2015 16:01

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


    1. 32bit_me
      22.10.2015 18:46

      По LLVM можно обсудить со мной, например. Что у вас за архитектура, если не секрет?


      1. Halt
        22.10.2015 19:59

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


        1. 32bit_me
          22.10.2015 20:07

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


          1. Halt
            22.10.2015 20:59

            Прекрасно… в лучших традициях, как говорится.

            P.S.: А пруфы есть?


            1. 32bit_me
              22.10.2015 21:34

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


              1. Halt
                22.10.2015 21:36
                +2

                Во-первых, вы уже вынесли. Во-вторых, полярность мнений в любом случае лучше, чем однобокий пиар, так что уж будьте добры. Ну или в приват хотя бы.


          1. krufter
            22.10.2015 23:16
            +1

            Подскажите ваш ник на нашем форуме, я проанализирую переписку. Обычно я стараюсь отвечать максимально корректно. Но вы же приходили лично к нам и общались со мной, Стрельцовым(автор мультиклеточной архитектуры). В общих чертах вы показали куда встраиваться нам, но это мы уже знали, там вариантов немного. Детального обсуждения как вы планируете обходить основные преграды не было высказано. Как я понял Вы сейчас сами в процессе изучения LLVM пишете под какой-то процессор компилятор, но всё в стадии разработки.
            Один из наших сотрудников за несколько месяцев собрал компилятор на базе lcc и пообещал за полгода сделать на базе своих наработок собственный компилятор для мультиклеточного процессора. Прошло больше двух с половиной лет, нашлись грабли и трудности, которые надо отлаживать. Разработчики из компании Embox после портирования своей ОС заявили, что не могут идти дальше только за счет одного компилятора стандарта Си99, нужны и расширения. А для их поддержки нужен приличный штат(не забываем, что финансирование у нас не как у Эльбруса и то, что мы вступили в 2012 в Сколково не принесло до сегодняшнего дня грантов, но мы не теряем надежды, т.к. кому-то гранты всё-же выдают), если мы пишем своё. В итоге после появления машины времени вернемся назад в 2012 и попытаемся всеми силами изменить решение в пользу разработки компилятора на базе LLVM. Хотя нельзя сказать, что эта база нам подходит, придется разработчику(а то что, если ему дадут время, компилятор он напишет я не сомневаюсь) компилятора на базе LLVM прилично подумать, как что-то появится дельное в открытый доступ должны выложить.
            К сожалению, в этом суровом мире не всё происходит объективно и честно и зачастую кажется, что всё против тебя и ничего не получается, хочется уехать в другую страну. Но я люблю свою Родину, даже свою первую машину ВАЗ 21065 с полным багажником запчастей мне нравится вспоминать и у нее были плюсы по сравнению с мерседесом S класса, и я стараюсь делать хоть что-то, чтобы в России стало чуточку лучше. Очень жаль, что вы так быстро сдаетесь. Если сделать компилятор действительно просто, то попробуйте его написать и если это нам понравится, то вы сможете продать его за хорошие деньги.


            1. 32bit_me
              23.10.2015 03:23

              ОК. Вот фраза, котой мне ответили на вашем форуме: "Если зашли повыделываться, то лучше зайдите в другое место. Тут уже в курсе, что вы самый умный, а вот на других форумах, ещё не знают об этом." Так вот, я заходил не «повыделываться», как вы изящно выражаетесь, а предложить свой вариант архитектуры бэкенда, и вы даже не стали слушать.
              > Если сделать компилятор действительно просто, то попробуйте его написать и если это нам понравится, то вы сможете продать его за хорошие деньги
              Это не совсем просто, знаете ли. «Если понравится»? А если не понравится? И что вы называете хорошими деньгами? Я мог бы это сделать бесплатно, но сейчас такой вариант исключается,


              1. Halt
                23.10.2015 09:44
                +1

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

                Что в нас не так? А потом удивляемся еще, почему у нас так мало открытых проектов. Я все это еще 10 лет назад на себе ощутил и с тех пор ничего не поменялось.


                1. 32bit_me
                  23.10.2015 10:53
                  +2

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


                  1. krufter
                    23.10.2015 11:15

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


                    1. 32bit_me
                      23.10.2015 11:55
                      +1

                      OK, я также по общался с этим вашим стрельцовым. Я после вашего «семинара» предложил ему помочь с LLVM, без всякой задней мысли, просто видя из ваших ответов на форумах, что у вас есть затруднения с этой системой. Сейчас я жалею, что это сделал, конечно. Ваш стрельцов, во-первых, позвонил через три недели, после того, как мы с ним договаривались, во-вторых, тыкал, хотя я с ним, кажется, не пил, в-третьих, сразу стал что-то требовать, какие-то сроки.
                      Мне это не нужно.


                      1. krufter
                        23.10.2015 12:29
                        -1

                        Николай Викторович Стрельцов является техническим директором компании Мультиклет. У нас в компании в разговоре с Вами все проходило очень корректно и Николай Викторович обещал как только появится больше ясности с компилятором через некоторое время с Вами связаться. За телефонный разговор я не могу ручаться, но от себя лично приношу Вам извинения за всё, что могло Вас как-то обидеть, мы постараемся Вас больше не беспокоить.


                        1. 32bit_me
                          23.10.2015 15:28

                          В любом случае я расцениваю ваше поведение как нелепую и немотивированную агрессию.
                          Вы могли бы получить большую выгоду от сотрудничества, но предпочли самую тупую стратегию поведения.


                          1. krufter
                            23.10.2015 23:26
                            -1

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


                            1. 32bit_me
                              24.10.2015 04:44
                              -2

                              По факту вы не модерируете форум, и ваш техдиректор очень неумный человек, так скажем.


                              1. krufter
                                24.10.2015 11:34

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


                                1. 32bit_me
                                  24.10.2015 12:49
                                  -3

                                  Дододо. У меня нет желания с вами тут дискутировать.


                                1. 32bit_me
                                  24.10.2015 12:55
                                  -3

                                  После вашего форума и вашей конторы нужно руки с мылом мыть.


              1. krufter
                23.10.2015 10:45

                Владимир, поймите, что кроме сотрудников мультиклета на форуме также общаются обычные пользователи. Именно для понимания кто перед Вами мы сделали к каждому нику сотрудника подпись _multiclet, у меня это krufter_multiclet. Вам ответил пользователь Yaisis, который не является нашим сотрудником и мы не можем нести ответственность за его высказывания, вот ссылка для полного понимания разговора multiclet.com/community/boards/9/topics/53?r=1446#message-1446
                Поверьте мы стараемся отвечать конструктивно на форуме, по запросам пользователей пишем необходимый код и прикладываем все усилия для хорошей репутации(наши ответы в почте и на форуме не ограничиваются рабочим днем, иногда и по ночам и в выходные ведем поддержку).
                Пожалуйста, не обижайтесь на Мультиклет.
                И не обращайте внимание, если какой-то троль(на нашем форуме таких нет) пытается вас вывести из себя. Мы на себе это ощутили, когда нам говорили, что у нас вообще ничего нет, затем что FPGA а не кристалл внутри корпуса(Barsmonster даже вытравил кристалл P1, за что мы ему очень благодарны) и даже сейчас продолжают говорить, что мы выпустили какую-то крипто-флешку, сделали какой-то крипто-телефон. В их понимании если дистрибутив Windows не работает на процессоре и нет настольного ПК, то и нет процессора.


  1. phozzy
    23.10.2015 12:30

    В продолжение темы LLVM, почему тогда не Rust?


    1. krufter
      23.10.2015 12:40

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


    1. Halt
      23.10.2015 13:00
      +1

      Если напишут target для LLVM, то в него можно будет компилировать любой IR код от любого фронтенда: clang, rust, llst и т. д. Rust в этом смысле не является чем-то особенным.


      1. krufter
        23.10.2015 13:47

        Полностью с Вами согласны.


  1. KOLANICH
    23.10.2015 13:33

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


    1. krufter
      23.10.2015 13:45

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


    1. 32bit_me
      23.10.2015 16:33

      На FPGA можно выполнить любую программу, единственное ограничение — это ресурсы. Во-первых, можно включить в проект FPGA встраиваемый процессор, которых очень много, примером может служить NIOS II, второй подход — это преобразование программы с языка высокого уровня, например, С в HDL-код. Такое преобразование умеют делать некоторые инструментальные средства, такие как Xilinx Vivado HLS. Если грамотно распределить задачу между программной частью и «логикой», то можно решать весьма сложные задачи, например, обработку изображений в реальном времени, и это является обычной практикой.
      И конечно, SoC, такие как Cyclone V и Xilinx Zynq, очень хороши. Перешивка FPGA во время исполнения программы в SoC также возможна, даже элементарна (для исполняемой программы FPGA выглядит просто как устройство /dev/fpga0, например, в которое прошивка закатывается командой dd. Так что здесь проблем нет. Единственное, что может останавливать, это цена подобных устройств. Но она будет снижаться, как это обычно происходит в электронной индустрии.


      1. amartology
        23.10.2015 18:11

        Да, и проблема как раз в том, что ASIC, способную решать ту же самую задачу, что и навороченная FPGA, можно произвести гораздо дешевле и по более простой технологии. FPGA незаменимы в ситуациях, когда у вас небольшой тираж конечного продукта, и городить ради него ASIC экономически неоправданно.
        Впрочем, это не имеет отношения к вопросу, чем «Мультиклет» (или любой другой микропроцессор) лучше, чем ПЛИС.


        1. 32bit_me
          23.10.2015 18:20

          Насчёт ASIC и FPGA согласен, так и есть. Чем мультиклет лучше ПЛИС — ничем не лучше. Чем любой другой микропроцессор лучше/хуже, чем ПЛИС — этот вопрос имеет великое множество аспектов. Лично я считаю, что будущнн за интегрированными решениями, процессор + ПЛИС. Не зря же Intel купила Альтеру.


          1. amartology
            23.10.2015 21:18

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


            1. 32bit_me
              23.10.2015 21:54

              Про российские не слышал, если честно, рад, если разрабатывают. Я думаю, оба варианта (процессор с ПЛИС и ПЛИС с процессором) найдут свои применения.