Pull to refresh

Баллада о «Мультиклете»

Reading time 22 min
Views 22K
High performance *System Programming *
Нет, я не раскрою вам загадку, скрывающуюся в названии MCp0411100101, но постараюсь развёрнуто ответить на комментарий nerudo, записанный в топике Процессоры «Мультиклет» стали доступнее:

Читая описание архитектурных новшевств этого мультиклета, мне хочется воспользоваться фразой из соседнего топика: «Я не понимаю».


Если кратко, то MCp — это потоковый (от dataflow) процессор с оригинальной EPIC-архитектурой. EPIC — это Explicitly Parallel Instruction Computing, вычисления с явным параллелизмом инструкций. Я применяю этот термин здесь именно в этом смысле, как аббревиатуру, а не как ссылку на архитектуру Itanium-ов. Явный параллелизм в MCp совсем другого рода.
Узнать, какой именно EPIC в MCp
Total votes 103: ↑97 and ↓6 +91
Comments 180

Мультиклет: Первые практические тесты и производительность

Reading time 4 min
Views 36K
Programming microcontrollers *
В мои руки попала отладочная плата мультиклета, и результатами его тестирования хочу поделится. Также расскажу и о нескольких подводных камнях, которые на первых порах могут несколько подпортить нервы тем, кто захочет лично потрогать Мультиклет.

Сразу стоит заметить, что я рассматриваю только разработку на C (а не на Ассемблере) т.к. нынче время работы программистов стоит дороже мегагерцев и памяти. У С-компилятора Мультиклета тяжелая судьба, и на _данный момент_ он находится в зачаточном состоянии (в частности, не реализованы какие-либо оптимизации). Ситуация обещает исправиться к середине/концу года.
Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Comments 53

Часть 2: Как «открыть» микросхему и что у неё внутри? Z80, Мультиклет, MSP430, PIC и другие

Reading time 3 min
Views 84K
Zeptobars corporate blog
В этой статье — продолжаем ковырять микросхемы (а если вы пропустили первую статью — она тут).

Под катом — внутренности К565РУ5, Z80, КР580ВМ80А, MSP430F122, PIC16C505, PIC12C508, российского радиационно-стойкого микроконтроллера 1886ВЕ10, STM32F103VGT6, таймер 556, новый чип RFID из билетов Метро и Мультиклет.

Ну и пара слов о более каноническом способе вскрытия микросхем, который оставляет их в работоспособном состоянии.
Читать дальше →
Total votes 151: ↑148 and ↓3 +145
Comments 75

MultiClet: осваиваем SPI на примере работы с LCD

Reading time 4 min
Views 22K
Programming microcontrollers *
Sandbox
В начале мая я стал счастливым обладателем отладочного комплекта LDM-MCp. Пару месяцев он пылился на столе, было много работы, назревал отпуск. Вернувшись, с новыми силами, светлой головой и рвением что-то пощупать-поделать, но точно не работу, руки сами потянулись за новую игрушку. Поставил SDK под Linux, всё подключил.

Квест первый


Сразу после подключения система радостно обнаружила спаренное FTDI-устройство, создав сразу два ttyUSBx-девайса. И тут дилемма — либо использовать Serial-консоль, либо иметь возможность заливать прошивки, — идущий в комплекте загрузчик работает напрямую с FTDI-устройством. Пришлось на коленке рисовать скрипты для «правильной» загрузки модуля ftdi_sio. Наколенность проявила себя в использовании питоновских биндингов к библиотеке ftd2xx. Общая суть сводится к выгрузке модуля, блокированию FTDI, используемого для прошивки, и одновременной с этим загрузке модуля обратно. Тогда ядерный модуль может заблокировать оставшийся FTDI для UART.

Hello, world! — слишком банально


Простенький «Hello, world!» с мигающими LED заработал сразу, только обнаружилось, что после прошивки линуксовым mc-ploader'ом необходимо дополнительо сбросить плату или подожать, пока сработает WDT.
Когда-то зимой заказывал себе пару SPI-экранчиков HY28A, но с нашей почтой пришли они только в мае. Тут и решение само пришло — начать с экранчика. Вооружившись USB'ым логическим анализатором SYSCLK DX, полез штудировать спеки на регистры GPIO и SPIx в процессоре MCp и ковыряться в примерах использования SPI.

Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 11

Как я тестировал IDE компании «Мультиклет»

Reading time 4 min
Views 7.3K
IT systems testing *Debugging *
Sandbox
В качестве среды разработки компанией «Мультиклет» был выбран текстовый редактор Geany с основными функциями интегрированной среды разработки. Для поддержки необходимых для отладки инструментов разработчиками компании «Мультиклет» был написан плагин MC-DBG, о тестировании возможностей которого пойдет речь в данной статье.
Читать дальше →
Total votes 16: ↑9 and ↓7 +2
Comments 0

Мультиклеточный процессор — это что?

Reading time 18 min
Views 50K
Programming *
Многие слышали о мультиклеточной архитектуре, процессорах и даже первых устройствах на них. Особенно продвинутые пользователи опробовали свои алгоритмы. Были проведены первые простые тесты производительности, а также пользователь Barsmonster, вытравил кристалл процессора Р1. Сейчас уже проходит первые проверки процессор R1 и скоро будет доступен всем. Но ответ на вопрос о том, как работает мультиклеточная архитектура и в чём её отличие, знают не все. Попытаемся сейчас ввести в курс дела.
Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Comments 37

Мультиклет R1 — первые тесты

Reading time 10 min
Views 75K
Computer hardware
     Время идёт, и мультиклеточный процессор продолжает расти, развиваться. Пока, правда, не размножается, и состоит всего из 4-х клеток, но это все у него впереди. В данной статье попытаюсь описать основные особенности нового процессора Мультиклет R1, его характеристики и функционал, а также сравнить процессор нового поколения с родоначальником династии — процессором Мультиклет P1.
     Кратко пробежимся по историческим моментам выпуска процессоров, заглянем ненадолго в теоретические основы работы наших процессоров, обратим внимание на особенности нового процессора и его основные возможности, сравним процессоры P1 и R1, покажем прототип первого продукта на R1, и в завершении сделаем небольшой анонс.


Рис 1. Кремниевая пластина процессоров R1
Читать дальше →
Total votes 81: ↑76 and ↓5 +71
Comments 150

Существует ли отечественный процессор Мультиклет?

Reading time 8 min
Views 44K
Embox corporate blog System Programming *Compilers *C *
В этом посте я хочу рассказать о наших усилиях по использованию российского процессора с оригинальной архитектурой Мультиклет. Нам интересен перенос нашей ОСРВ Embox на данную платформу, так как это даст возможность использовать довольно большое количество приложений, которые у нас имеются — например, SIP-телефон, о котором мы уже рассказывали.

Речь пойдёт о проблемах, с которыми мы столкнулись в процессе переноса, и о том, как мы эти проблемы устраняли. Возможно, это будет интересно не только тем, кто планирует использовать данный процессор, но и тем, кому по каким-то причинам будет необходимо перейти со стандарта c99 и gcc на стандарт c89 и какой-нибудь несовместимый с gcc компилятор. Также в заключении я позволю себе добавить личные ощущения от взаимодействия с данной платформой.
Читать дальше →
Total votes 76: ↑74 and ↓2 +72
Comments 95

Мультиклет стал еще доступнее

Reading time 6 min
Views 14K
Computer hardware Robotics CPU DIY
    Три года назад появился на свет первый мультиклеточный процессор. На тот момент для нас было действительно приятным событием то, что процессор заработал с первой попытки реализации новой архитектуры в кремнии. Для процессора Мультиклет P1 были разработаны две отладочные платы, которые позволяли освоить процессор и имели в свое составе основные элементы периферии.

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


Рис 1. Эскиз процессорной платы
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 44

Компилятор С/С++ на базе LLVM для мультиклеточных процессоров: быть или не быть?

Reading time 24 min
Views 21K
Compilers *C *Programming microcontrollers *

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


Немного истории


С начала основания компании "Мультиклет" в 2010 велась разработка нескольких типов компиляторов для мультиклеточной архитектуры:


  1. С первым процессором Multiclet P1 в 2012 году был разработан в составе программного обеспечения компилятор С89 на базе LCC. Одновременно велась разработка первого варианта собственного компилятора, приостановленная ввиду изначально сложного нереализуемого замысла.
    Как уже неоднократно указывалось во многих статьях на данную тему, а также признавалось самими разработчиками компании, компилятор на базе LCC имеет ряд существенных недостатков: поддержка лишь языка С89, отсутствие каких-либо оптимизаций.
    Впоследствии данный компилятор был адаптирован для поддержки нового процессора Multiclet R1 (2015 г.), система команд которого была значительно расширена, но компилятор этого не учитывал.
    Принимая во внимание эти недостатки, руководство компании в 2012 году собрало группу программистов, которым была поставлена задача разработать новый компилятор С99, лишённый указанных недостатков.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 36

Компилятор LLVM для MultiClet: бенчмарк WhetStone

Reading time 7 min
Views 6.1K
IT systems testing *Compilers *C *Concurrent computing *
В разговорах о мультиклеточной архитектуре ранее часто обсуждалась её применимость к той или иной задаче в контексте количества присутствующего в ней естественного параллелизма. Так, при выполнении различных бенчмарков, в частности, CoreMark, велась речь о несоответствии таких программ мультиклеточной архитектуре, ввиду достаточно жесткой последовательности алгоритма, не позволяющего клеткам внутри группы извлекать достаточное количество параллельно исполняемых в ходе работы команд. В данной статье мы оценим мультиклеты в более показательных условиях — при помощи бенчмарка WhetStone.
Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 16

Перспектива: MultiClet S1

Reading time 16 min
Views 17K
High performance *Compilers *CPU Cryptocurrencies Supercomputers
Sandbox


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


На данный момент новый процессор находится в разработке, но уже появились первые результаты и можно оценить, на что он будет способен.
Читать дальше →
Total votes 54: ↑52 and ↓2 +50
Comments 42

Развитие компилятора C для нового мультиклета-нейропроцессора

Reading time 9 min
Views 3.7K
High performance *Compilers *Artificial Intelligence CPU


На конференции разработчиков системного и инструментального ПО – OS DAY 2016, которая прошла в г. Иннополис 9-10 июня 2016 (Казань) при обсуждении доклада о мультиклеточной архитектуре была высказана мысль, что она будет наиболее эффективной при решении задач искусственного интеллекта. Условия для разработки нового процессора общего назначения, ориентированного на задачи ИИ, сложились в текущем году.

Нейропроцессор Мультиклет S2, проект которого был впервые представлен на Huawei Innovation Forum 2019 является дальнейшим развитием мультиклеточной архитектуры. От ранее созданных мультиклетов он отличается системой команд, а именно вводом новых типов малоразмерных данных (с фиксированной и плавающей запятой) и операций с ними. Увеличено количество клеток – 256 и частота – 2,5 ГГц, что должно обеспечить пиковую производительность 81,9 TФлопс на 16F и, соответственно, сделать его сравнимым, в части нейровычислений, с возможностями современных специализированных ASIC TPU (TPU-3: 90 Тфлопс на 16F).

Так как эффективность использования процессоров в значительной мере зависит от оптимальности компилятора разработана развиваемая схема оптимизации кода.
Рассмотрим ее более подробно.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 14

Мультиклеточная архитектура: тесты и развитие

Reading time 8 min
Views 6.2K
High performance *Compilers *CPU Cryptocurrencies Supercomputers

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

«Мультиклеточный процессор — это что?»

«Мультиклет R1 — первые тесты»

«Компилятор С/С++ на базе LLVM для мультиклеточных процессоров: быть или не быть?»

«Перспектива: MultiClet S1»

«Развитие компилятора C для нового мультиклета-нейропроцессора»

Первое, что необходимо сказать, – Мультиклет концептуально переходит от разработки отдельных процессоров к разработке мультиклеточной платформы на основе MultiClet B – базового элемента, состоящего из 4 клеток.  

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 24

Мультиклеты: влияние реконфигурации на бенчмарки и задачи майнинга

Reading time 12 min
Views 2.5K
High performance *Video cards CPU Cryptocurrencies Supercomputers

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

Как известно, физические и технологические ограничения, объективно существующие при проектировании и изготовлении новых микропроцессоров, постепенно перешли из теоретической в практическую плоскость. Планарные транзисторы перестали уменьшаться в 2D размерах и стали переходить в 3D измерение. Расстояния на чипе стали ограничивать тактовую частоту, а размеры чипа привели к тому, что на пластине годным стало считаться то, что хоть как-то работает. При этом, микропроцессоры стали напоминать ламповые компьютеры 60-х годов прошлого века, на корпусе которых можно было жарить яичницу.

Сегодня большинство бенчмарков процессоров, в первую очередь, оценивают производительность. Насколько быстро рисуется картинка на дисплее, насколько быстро перемножаются матрицы или как быстро осуществляется поиск в базе данных. Это, безусловно, важно. Но почему-то мало кто задается вопросом, насколько это оптимально. Может быть, лучше увеличить время решения на 10% и при этом уменьшить энергопотребление на 50%?

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 36