?

Log in

No account? Create an account

ramlamyammambam

Мультиклет и Кварк

« previous entry | next entry »
2012 июл 5 | 14:07

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

На Хабре появилась взвешенная статья "Критический взгляд со стороны на процессоры Мультиклет", где озвучены многие сомнительные места.  А я конспективно пройдусь по списку преимуществ новой архитектуры, заявленному на официальном сайте Мультиклет.
  • Увеличение производительности при одновременном снижении энергопотребления - не представлено никаких реальных данных по сравнению производительности с другими архитектурами.  Например Dhrystone или Specmark.
  • «Естественная» реализация параллелизма (без решения задачи распараллеливания) - хотелось бы видеть примеры такого распараллеливания, хотя бы для простых известных алгоритмов. 
  • Уменьшение площади кристалла - отсутствуют данные для сравнения.
  • Эффективная реализация любого класса задач (коммутационная среда не вносит каких-либо ограничений в межклеточный обмен данными) - не подтверждено цифрами.  Боюсь, главный тормоз будет в подгрузке потока инструкций.
  • Выполнение задачи без перекомпиляции на любом количестве клеток - в качестве доказательства меня бы устроил запуск какого-нибудь простого кода на RTL-симуляторе процессора с разным количеством клеток. 
  • Непрерывное выполнение программы при деградации аппаратной среды (отказ клеток) - интересно, как это работает при отсутствии в процесоре схем контроля и отключения клеток.
  • Дефектоустойчивость производства (кристалл считается годным, даже при отбракованности части клеток) - аналогично.
Печалит отсутствие симулятора и компилятора Си для заявленной архитектуры.  На мой взгляд, имело бы смысл всю разработку затевать именно с этого, и при получении хороших результатов выпекать кремний.  А так телега впереди лошади.

Между тем, незамеченным прошло другая интереснейшая вещь: процессор "Кварк", разработанный дизайн-центром KM211.   Абсолютно оригинальный RISC-процессор с интересными параметрами, компилятор GCC, работающий Линукс, готовая микросхема К5512БП1Ф.

 

С документацией, правда, тоже хреново. 

Ссылка | оставить комментарий |

Comments {27}

_slw

(без темы)

from: _slw
date: 2012 июл 5 22:38 (UTC)
Ссылка

а именно саму архитектуру прокоментировать можете?

не продукт получившийся, а архитектуру. насколько перспективно, или наоборот тупиково.
действительно ли будут большие проблемы при наращивании числа ядер?

thesz считает, что эксперименты с такой архитектурой уже были, что в принципе ничего оригинального в ней нет

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2012 июл 5 22:57 (UTC)
Ссылка

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

Вот интересный комментарий: http://chiptalk.ru/multiclet/

Я не видел раньше ничего похожего, вроде свежая идея. Но в высшей степени спорная. Годится в качестве темы академических исследований для какого-нибудь серьёзного университета. Проблемы при увеличении числа ядер будут. Четыре клетки это немного, да и те не факт что получится успевать кормить инструкциями. Проблема ветвлений и переходов вообще замалчивается. Может быть, в этой архитектуре не поддерживаются циклы и логические операторы?

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

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: winpooh
date: 2012 июл 6 9:54 (UTC)
Ссылка

Sony Cell не то же самое было? (вопрос может показаться чересчур дилетантским, но я и есть в этой области полный дилетант :))

Ответить | Уровень выше | Ветвь дискуссии

Serguey Zefirov

(без темы)

from: thesz
date: 2012 июл 6 20:31 (UTC)
Ссылка

Нет.

Ответить | Уровень выше | Ветвь дискуссии

Serguey Zefirov

(без темы)

from: thesz
date: 2012 июл 6 20:31 (UTC)
Ссылка

В качестве альтернативы предлагаю WaveScalar: http://wavescalar.cs.washington.edu/

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

Хотя большинство обмена и идёт через память, есть возможность посылать данные "в будущее" - например, на следующую итерацию цикла и тп.

Масштабируется. Путём изменения отношения АЛУ может быть оптимизирована под конкретный набор операций в конкретном классе задач.

Ответить | Уровень выше | Ветвь дискуссии

Yuri Panchul

(без темы)

from: panchul
date: 2012 июл 6 2:25 (UTC)
Ссылка

Я уже про это коментировал. Мой комментарий выглядит так:

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

Я бегло пробежал глазами по документу MCP_concept_eng.doc с их вебсайта. Зацепил глазами странные для меня утверждения.

Например они утверждают, что могут обеспечить высокую паралельность, просто загружая все команды («триады») линейного участка (между переходами) и затем исполняя те, для которых аргументы готовы. По их мнению, это лучше, чем современные суперскалярные процессоры, потому что проще. Допустим. Но при этом они против предсказателя переходов (все должно быть закончено перед условным переходом ), что сразу вызывает вопросы. Ведь условные переходы в типичных софтверных приложениях происходят часто, и branch prediction + speculative execution дают ощутимый выигрыш в скорости. Если ждать, чтобы закончились все операции линейного участка «триад», то бОльшая часть их сильно параллельного хардвера будет простаивать.

Хотя с другой стороны, при чем тут вообще суперскалярные процессоры и обычные приложения если они утверждают, что конкурируют не с ними, а с DSP TMS320?

С третьей стороны на вебсайте у них говорится, что на этом устройстве собирается работать Линукс, что лично меня еще больше сбивает с толку -

http://www.multiclet.com/index.php?option=com_content&view=article&id=96%3Amcp0411100101&catid=39%3Amulticellular-processors&Itemid=62&lang=en

Это Линукс работающий на данном устройстве, или данное устройство работает как сопроцессор к процессору общего назначения, на котором крутится Линукс?

----------------------

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

The cell instruction set is based upon some intermediate presentation of a compiled program after the syntax analysis (triads) and actually it is a sort of hardware realization of input programming language. It minimizes the labour costs to create compilers due to the fact that blocks of machine-oriented optimization and paralleling disappear as well as command generating block dramatically decreases. The notion "assembler programming" disappears as the processor language is not visible and thus it is “not programmable”. The software becomes really hardware-independent

Это что-же, у них также нет локальных и глобальных оптимизаций во время компиляции? Subexpression elimination, constant propagation, data flow graph? Они собираются компенсировать отсутствие всех этих оптимизаций параллельностью?

---------------------

Также меня смутило как они собираются сражаться с хакерами и вирусами:

If necessary, the disordered triads ensure an individual object code for every processor after every compilation. This fact as well as the closure of the triad subsets make it dramatically impossible to unauthorizedly, secretly and from without interfere into the system software. … The system code is individual and unprivileged users use only the high-level language for programming which permits to create a new and effective toolkit against viruses.

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

Ответить | Ветвь дискуссии

(без темы)

from: dmzlj
date: 2012 июл 6 3:15 (UTC)
Ссылка

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

Ответить | Ветвь дискуссии

Андрей Суворов

(без темы)

from: suvorow_
date: 2012 июл 6 7:25 (UTC)
Ссылка

Не вырастет. Сейчас много денег крутится только в сегменте х86, сравнимо, но несколько меньше - в сегменте ARM-совместимых систем-на-кристалле. Суммарная доля всех остальных риск-архитектур меньше этих двух, а контроллеры и DSP, которых в штуках производится очень много, стоят сущие копейки.

Множество маргинальных архитектур рождаются и умирают, даже не став по-настоящему известными.

Ответить | Уровень выше | Ветвь дискуссии

Le dernier héros

(без темы)

from: ledernierheros
date: 2012 июл 6 10:20 (UTC)
Ссылка

>Сейчас много денег крутится только в сегменте х86, сравнимо, но несколько меньше - в сегменте ARM-совместимых систем-на-кристалле. Суммарная доля всех остальных риск-архитектур меньше этих двух

Специально умолчали про MIPS, чтобы подразнить хозяина журнала? :-)

Ответить | Уровень выше | Ветвь дискуссии

George Melnikov

(без темы)

from: mr_parson
date: 2012 июл 20 20:44 (UTC)
Ссылка

при этом есть мнение, что новая архитектура необходима:
http://www.russianelectronics.ru/provider-r/news/snabworldmarket/doc/59386/

не видел упоминаемого в статье доклада и статьи с EE Times, но тем не менее...

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: winpooh
date: 2012 июл 6 13:49 (UTC)
Ссылка

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

На том же Хабре кто-то из разработчиков написал, что допиливает для этого процессора C89.
С другой стороны, не пора ли изобретать новый C? Он же был придуман 40 лет назад совсем для другой архитектуры.

Ответить | Ветвь дискуссии

(без темы)

from: hogzie
date: 2012 июл 7 0:49 (UTC)
Ссылка

Хорошая идея для сколковского гранта. :P

Ответить | Уровень выше | Ветвь дискуссии

Lev Serebryakov

(без темы)

from: blacklion
date: 2012 июл 6 18:27 (UTC)
Ссылка

что же они все на gcc-то! Кривой же, неудобный, весь из костылей, с плохой лицензией...
Я понимаю лет 5-7 назад брать gcc и пилить к нему свой бэкенд — но сейчас-то!

Ответить | Ветвь дискуссии

_slw

(без темы)

from: _slw
date: 2012 июл 6 20:34 (UTC)
Ссылка

так вроде они с 2001 года пилят

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: hogzie
date: 2012 июл 7 0:20 (UTC)
Ссылка

Похоже на очередной роспил, прикрытый секретностью и недоступностью документации. Сколько уж можно!?

Ответить | Ветвь дискуссии

(без темы)

from: hogzie
date: 2012 июл 7 0:47 (UTC)
Ссылка

Вот тут автор в комментариях под своей статьей просто жжот напалмом:
http://habrahabr.ru/post/146865/
Когда его начали спрашивать про особенность архитектуры, используя общепринятые термины, он начал кидаться своими собственными, не объясняя их сути. Много демаогогии. А когда дело дошло до простого вопроса и термина instruction pipeline, то он полез в википедию узнавать, что это такое. :D

Ответить | Ветвь дискуссии

Alec Voropay

(без темы)

from: alec_v
date: 2012 авг 4 20:11 (UTC)
Ссылка

Сложилось стойкое ощущение, что в Распилково получить грант можно только на "необычную" архитектуру, типа аппаратного Braifuck, векторного гипертекстово фидонета или в крайнем случае EPIC Эльбрус. "Обычные" архитектуры вызывают у грантодателей уныние и зевоту. Посевные инвестиции, чтож...

Ждем процессорного аналога Петрика.

Ответить | Ветвь дискуссии

Борис Зырянов

(без темы)

from: Борис Зырянов
date: 2012 окт 22 13:09 (UTC)
Ссылка

могу успокоить всех любителей радеть за государственные деньги) НИКАКИХ грантов от государства или Сколково, или Роснано и тд и тп) проект Мультиклет не имеет, развивается на частные средства частных акционеров.

Ответить | Уровень выше | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2012 окт 23 3:15 (UTC)
Ссылка

Приветствую, Борис!
Народ, умудрённый российским опытом, обычно склонен к пессимизму, ничего не поделаешь.
Выпуск opensource симулятора, в комплекте с ассемблером, мог бы значительно поднять интерес к новой архитектуре.

Ответить | Уровень выше | Ветвь дискуссии

teewoon

(без темы)

from: teewoon
date: 2012 дек 13 22:56 (UTC)
Ссылка

Посмею вставить еще пару копеек насчет Мультиклета. IMHO для embedded приложений он вообще никакой, Хотя по обвесу и параметрам больше ему некуда.

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

Переходы в ветвящемся коде. Спорный вопрос, но в задачах где вычислительная моща не самое главное, а всё опирается на коммуникации и короткие кусочки кода (Finite State Machines, микроядра и прочие real-time related плюшки), это может из ложки дегтя превратиться в бочку.

А еще непонятно покусительство на СВЯТЫЕ клеточные (однородные структуры) в плане названия. Вот как ни вертел документацию - ничего клеточного не нашел. Т.е. именно локальной связности вычислительных узлов. Пока что они связаны опосредованно через коммутатор - локального бога, который хранит промежуточные результаты операций, а потом делает отложенную запись в общие регистры. Ну еще чота он делает, но все операции проциков через него =(

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2012 дек 13 23:42 (UTC)
Ссылка

Вот с этих вопросов и начинается реальная работа для архитектора. Первый прототип - это только 5% пути. Тут cycle-accurate симулятор самая необходимая вещь.

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: superzveruga
date: 2012 дек 27 13:05 (UTC)
Ссылка

"Уничтожительная" статья на хабре о мультиклете держится на комментариях beeruser, который в то же время совершает порадоксально глупые ошибки объясняя архитектуру Эльбруса 2С+

...2C+ это не «тот самый» Эльбрус — это банальный Sparc с DSP...

Что совершенно неверно. Эльбрус это своя уникальная VLIW архитектура. Серия SPARC процессоров от МЦСТ называется RXXX.

beeruser потому не понял mikanoid, потомучто он пытался распаралеливать команды по клеткам, а в Мультиклете распаралеливаются не только команды но и каждая команда! Т. е. одна команда может выполняться сразу на 4 (в зависимости от количества клеток) ALU. При этом обмен информацией, которая нужна для исполнения одной или группы команд происходит по возможности через межклеточные связи (коммутатор). Что исключает потребность в использовании памяти и, соответственно, ускоряет производительность в те моменты, когда вместо обращения к памяти происходит считывание из коммутатора.

Edited at 2012-12-27 13:09 (UTC)

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2012 дек 27 17:32 (UTC)
Ссылка

Чехарда с Эльбрусом это отдельная анекдотическая история. Эльбрус-2С+ имеет архитектуру VLIW (Бабаян). Эльбрус-S это SPARC (Sun Microsystems). Но самое смешное, что ни то, ни другое не имеет никакого отношения ни к Эльбрусу-2, ни к Эльбрусу - безадресая стековая архитектура имени Бурцева и Пентковского.

Что вы имеете в виду под распараллеливанием каждой команды? Обычно одна инструкция процессора выполняется за один такт. Можете ли вы привести пример кода с выполнением сразу на 4 ALU? Иначе непонятно.

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: superzveruga
date: 2012 дек 28 17:29 (UTC)
Ссылка

Эльбрус-S это тоже технология VLIW. Все процессоры SPARC имеют маркировку RXXXX!

Хотите лучше понять Мультиклет читайте http://habrahabr.ru/post/163057/

Ответить | Уровень выше | Ветвь дискуссии | Развернуть

(Скрытый комментарий)

(без темы)

from: superzveruga
date: 2012 дек 29 12:43 (UTC)
Ссылка

Вот с чего вы взяли, что Эльбрус-S это SPARC? Зайдите на сайт МЦСТ и прочитайте спецификацию. :)

Ответить | Уровень выше | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2012 дек 30 3:59 (UTC)
Ссылка

Хорошо, согласен: теперь вижу, что Эльбрус-S это более ранний одноядерный вариант Эльбрус-2С+, минус DSP.

На сайте МЦСТ микропроцессоры с архитектурой SPARC везде аккуратно именуются как Rxxx, все честно. Но вычислительный комплекс на их основе - уже Эльбрус-90 микро. Операционная система тоже Эльбрус (на базе Linux).

Ответить | Уровень выше | Ветвь дискуссии

(без темы)

from: superzveruga
date: 2012 дек 30 7:28 (UTC)
Ссылка

http://www.mcst.ru/b_8-9.shtml

...Микросхема, разработанная на базе микропроцессора «Эльбрус»...

Первый Эльбрус это архитектура Е2К!

...Ядро микросхемы является высокопроизводительным универсальным процессором с архитектурой широкого командного слова...

Т. е. VLIW, а не SPARС!

...Архитектура микросхемы содержит средства поддержки выполнения программного обеспечения платформы х86, перетранслированного в коды «Эльбрус-S»...

Этой функцией обладают только процессоры с архитектурой E2K от МЦСТ!

Вот, черным по белому написано, что это никакой не SPARC!

Edited at 2012-12-30 07:29 (UTC)

Ответить | Уровень выше | Ветвь дискуссии