Три года назад появился на свет первый мультиклеточный процессор. На тот момент для нас было действительно приятным событием то, что процессор заработал с первой попытки реализации новой архитектуры в кремнии. Для процессора Мультиклет 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. kav4ik
    09.04.2016 00:03

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


    1. nazarpc
      09.04.2016 03:15
      +1

      Статья правильная и может кому-нибудь пригодиться. Комментарий — неправильный и ненужный в контексте данной статьи — каждый оценит извращенность и целесообразность ее применения применительно к своей задаче.

      Статья банально некорректная, она не может быть правильной. Если она будет кому-то нужна — она не поможет, так как примеры не работают как положено. Комментарий же это аргументированное мнение относительно статьи. Если он неправильный и некорректный — то я трамвай, а хабр болото.


      Где об этом этом написано? Когда слово «альтернатива» превратилось в «100% совместимость в виде сниппета»? «Попрошу не перекручивать» (с)

      По всей статье: пример на flexbox, альтернатива, скриншот. Вот если бы 2 скриншота было бы рядом… впрочем, они были бы разными:)


      это было бы очевидно

      Уважаемый, давайте ФАКТЫ. К примеру, был опрос на х тысячах пользователей iOS версии 7+, у процентов сказали что они откатились бы на более старую версию. Тогда это было бы аргументом. Иначе это ваше персональное мнение, которое совершенно не репрезентативно, увы.


      овер 25% юзверей сидит на ios < 9
      И что? Нас интересуют только 2%, у которых iOS 7.1-. Что уже явно не 25% пользователей, которым flexbox недоступен, давайте не манипулировать фактами.

      овер 24% юзверей сидит на < 4.4
      Давайте конкретно. В играх с движком Unity (мы говорили про браузеры, ну да ладно) пользователей с Android 4.3- 24,1%, что отличается от указанного мною выше числа на целых 0.6%. Что существенно, но кардинально картину не меняет.


      Сколько пользователей с каких устройств будет заходить именно на ваш сайт тоже, конечно, вопрос открытый. Но всё не так грустно и неизбежно как вы тут рисуете.


    1. brntsrs
      09.04.2016 08:15
      +1

      1. vitalybaev
        09.04.2016 10:42
        +2

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


        1. Corsi
          09.04.2016 13:17

          Хотел добавить. У вас была такая вкладоччка «проверка WIFI», при клике на неё всплывало окно для ввода логина и пароля роутера. После ввода логина и пароля было сообщение, что роутер не поддерживается. Просто складывается ощющение, что всё это для сбора паролей доступа к роутерам пользователей.


          1. dom1n1k
            09.04.2016 13:56
            +1

            На многие очень дешевые или устаревшие смартфоны Chrome не ставится вообще, ругается на несовместимость железа.


            1. mr_molodoy
              09.04.2016 15:15

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

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


  1. kloppspb
    09.04.2016 15:42

    Наверное, потому, что этот регексп неправильно работает?
    http://pastebin.com/BfcXd425


    1. grossws
      09.04.2016 16:38

      Там много фреймворков, да


      1. Bormoglotx
        09.04.2016 17:39
        +1

        Это не один роутер, а два. Вы отправите пакет с ttl 5 и четвертый роутер балансируя попакетно трафик отправит пакеты двум роутерам (так как идет серия из трех пакетов), согласно его маршрутам. Те уже ответят, что Time Exceeded.


        1. urticazoku
          09.04.2016 22:11
          +2

          Извиняюсь за оффтоп: попробуйте traceroute к 162.252.205.157. Раньше такое срабатывало с 216.81.59.173 (Звездные войны и сетевые технологии).


    1. Demogor
      10.04.2016 16:19

      В-основном тем, что с питоном я практически не знаком)
      Что до широкого круга людей — ну вон, к примеру, тот же popcorn time написан на nw.js(https://github.com/popcorn-official/popcorn-desktop) — это что, кого-то отпугивает? Если программа приносит пользу, мыши будут плакать, колоться, но кушать кактус серебряной ложечкой и запивать чаем, манерно оттопырив палец.
      И еще раз — я не призываю активно бросать все языки разом и бодро учохивать с электроном под мышкой в сторону рассвета. Я вполне понимаю Ваши аргументы, мне самому не нравится расход памяти на рендер и все такое. А статья просто рассказывает о том, что есть такая вот хорошая и интересная штука, на которой можно делать разные прикольные вещи. Подтекающие памятью и жрущие CPU убогие подделки же можно и на ассемблере написать, было бы желание и упорот… упорность.


      1. Halt
        22.10.2015 19:59

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


        1. 32bit_me
          22.10.2015 20:07

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


          1. Demogor
            10.04.2016 20:20

            Насколько понимаю, web audio API умеет FFT из коробки — https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API. Также гугл сходу выдает https://github.com/livejs/audio-rms на тему RMS. Другой вопрос, что я довольно отвратительно помню те куски теории звука, что остались в памяти из универа, потому без помощи толкового математика вряд ли смогу сделать что-то быстро, довольно большой объем теории придется перешерстить. Если сильно интересно — отпишитесь в личку.


            1. golovim
              10.04.2016 22:00
              +1

              Это очень здорово! Есть только один вопрос: а вы случайно не путаете средства предоставляемые окружением разразботки языка и средства самого языка? Вы пишите о том, что у вас есть тесты, макросы, песочница. Эти вещи предоставляет ваш язык?


              1. golovim
                10.04.2016 22:01

                Спасибо! Чуть позже постараюсь написать о более сложных конструкциях языка и проблемах их трансляции в JS


          1. krufter
            22.10.2015 23:16
            +1

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


            1. vintage
              11.04.2016 10:58

              Эти проблемы решаются нормализацией и отсутствием суррогатных пар (ucs4).


              1. Milfgard
                11.04.2016 12:25
                +25

                Что-то мне GTA вспомнился. Потрачено!


                1. kolyaflash
                  11.04.2016 13:34
                  +5

                  > В сети можно легко найти достаточно сложные и, порой, запутанные алгоритмы интеграции в ваш программный код подобной системы

                  Думаю, уж лучше они, чем предложенный.


                  1. Alexeyslav
                    11.04.2016 13:49

                    Только в очень простых случаях. Из-за эффекта «дверного проёма» есть огромные шансы упустить важные детали и по этой причине очень быстро закопаться в многочисленных недоработках, недодумках и банальной забывчивости.


                    1. 32bit_me
                      23.10.2015 11:55
                      +1

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


                      1. SvyatoslavMC
                        11.04.2016 15:06
                        +1

                        Существуют и такие, и такие методологии обучения, у всего есть плюсы/минусы, свои требования к аудитории. Я вот увидел статью в таком ключе.


                        1. yegorf1
                          11.04.2016 17:30
                          +1

                          На xkcd.ru нет указания лицензирования контента


                          Ну тогда вы вообще не могли использовать картинку без согласования с авторами.


                          1. krufter
                            23.10.2015 23:26
                            -1

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


                            1. fediq
                              12.04.2016 11:50
                              +23

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

                              Если вкратце — есть способы засунуть «не все» доходы в статистику.


                              1. zedalert
                                12.04.2016 12:57
                                +1

                                Да куда им до рынка виртуализации, если они часовые пояса на своём же сервисе вебинаров не могут исправить уже 2 года, там видимо вообще не осталось специалистов.


                                1. guai
                                  12.04.2016 13:11

                                  все свои знания по юникоду перечислили? :)
                                  действительно, многие языки исторически выносили все эти проблемы за рамки, попросту забивали, сваливая на библиотеки, но появляются и такие, которые не забивают.
                                  Если б я пилил язык, скорее бы на уровне этого языка организовал бы минимум пару типов данных под utf-8 строки и 32-битный массив символов. первые для компактности, вторые для charAt за константное время, плюс трансформирование одного в другое. нормализацию кодпоинтов хотелось бы оставить за рамками, но она может быть нужна, например, для работы с файловой системой, и тогда нет смысла от нее отказываться еще где-то. и тут всё зависит от философии языка, батарейки включены, или как.
                                  короче, смотреть надо на то, что может компилятор сделать, имея знания о строках, и что из этого мы хотим, чтобы он делал. в iconv, например, мог бы сделать проверку в начале, совпадают ли входная и выходная кодировка, а потом собрать в одном бинарнике один и тот же алгоритм с трансформацией во внутреннее представление строк и без. круто? я не знаю, возможно, смотря что нам надо.
                                  оставив всё на откуп либам, лишаем себя подобных возможностей.
                                  что компилятор мог бы делать со знаниями о длине строчек в пикселях — я не представляю, возможно что-то и мог бы, но скорее это задача гуя.


                                1. stifff
                                  12.04.2016 13:13
                                  +1

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

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

                                  А книга хороша. Даже автограф захотелось )


              1. osipov_dv
                11.04.2016 13:15
                +9

                Пора писать книгу, про то как продавали первую книгу :)
                Книга хорошая, очень легко читается, проглотил на работе за сутки-двое.
                Спасибо!


  1. shiftedreality
    11.04.2016 15:10

    1. Ведь необязательная зависимость выглядит как противоречие. В таком случае хватит только геттера.

    Использование геттеров необходимо в случае обеспечения обратной совместимости. Вот пример поддержки BC во второй Мадженте

    2. В вашем примере метод вызывается на clone(), то есть в приниципе не влияет на создание обьекта.


    1. Lerk
      11.04.2016 15:21

      Конечно, в личке.


    1. sajtpro
      11.04.2016 15:35

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


      1. A_J
        11.04.2016 16:03
        +1

        Верно и обратное: если вы привыкли работать с нормальной системой (P4) то переход на марсианскую (Git), или даже SVN доставит вам много боли.


  1. HeaTTheatR
    11.04.2016 15:47

    И в чем минус предложенного?


    1. zirf
      11.04.2016 16:01

      Мы немного о разном. Ошибка допускается во время проигрыша операции в голове, скобки не помогут. Человек так производит операцию. Я говорил об этом, его так учили.


    1. ns5d
      11.04.2016 18:20
      +1

      устал скролить, может поправите статью?


      1. gandjustas
        11.04.2016 23:05

        Это больше, чем некоторые заказчики ожидают.
        Все же сравнивают цены с 1С, где "готовая конфигурация" стоит дешево.


        1. achekalin
          11.04.2016 23:21
          +5

          Вспомнилось «we kill people who kill people because killing people is wrong».


          1. b1rdex
            12.04.2016 08:42

            Видимо речь про diff списка файлов.


            1. dartraiden
              12.04.2016 09:08

              У CloudFlare, если не ошибаюсь, есть бесплатный тариф.