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

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

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

 

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

Date: 2012-07-05 22:38 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
а именно саму архитектуру прокоментировать можете?

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

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

Date: 2012-07-06 09:54 (UTC)
From: [identity profile] winpooh.livejournal.com
Sony Cell не то же самое было? (вопрос может показаться чересчур дилетантским, но я и есть в этой области полный дилетант :))

Date: 2012-07-06 20:31 (UTC)
From: [identity profile] thesz.livejournal.com
Нет.

Date: 2012-07-06 14:59 (UTC)
From: [identity profile] vitaly vidmirov (from livejournal.com)
Я не видел раньше ничего похожего, вроде свежая идея.
http://www.cs.utexas.edu/~trips/overview.html

Date: 2012-07-06 20:31 (UTC)
From: [identity profile] thesz.livejournal.com
В качестве альтернативы предлагаю WaveScalar: http://wavescalar.cs.washington.edu/

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

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

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

Date: 2012-07-06 02:25 (UTC)
From: [identity profile] panchul.livejournal.com
Я уже про это коментировал. Мой комментарий выглядит так:

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

Я бегло пробежал глазами по документу 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.

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

Date: 2012-07-06 03:15 (UTC)
From: [identity profile] dmzlj.livejournal.com
но то, что вообще вдруг стали делать процессоры, да еще различных странных архитектур, а не тупо клоны чего-нибудь --- уже хорошо, наверное.
может из этого хаоса что-нибудь и вырастет в итоге.

Date: 2012-07-06 07:25 (UTC)
From: [identity profile] suvorow-.livejournal.com
Не вырастет. Сейчас много денег крутится только в сегменте х86, сравнимо, но несколько меньше - в сегменте ARM-совместимых систем-на-кристалле. Суммарная доля всех остальных риск-архитектур меньше этих двух, а контроллеры и DSP, которых в штуках производится очень много, стоят сущие копейки.

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

Date: 2012-07-06 10:20 (UTC)
From: [identity profile] ledernierheros.livejournal.com
>Сейчас много денег крутится только в сегменте х86, сравнимо, но несколько меньше - в сегменте ARM-совместимых систем-на-кристалле. Суммарная доля всех остальных риск-архитектур меньше этих двух

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

Date: 2012-07-20 20:44 (UTC)
From: [identity profile] mr-parson.livejournal.com
при этом есть мнение, что новая архитектура необходима:
http://www.russianelectronics.ru/provider-r/news/snabworldmarket/doc/59386/

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

Date: 2012-07-06 13:49 (UTC)
From: [identity profile] winpooh.livejournal.com
> Печалит отсутствие симулятора и компилятора Си для заявленной архитектуры. На мой взгляд, имело бы смысл всю разработку затевать именно с этого, и при получении хороших результатов выпекать кремний. А так телега впереди лошади.

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

Date: 2012-07-07 00:49 (UTC)
From: [identity profile] hogzie.livejournal.com
Хорошая идея для сколковского гранта. :P

Date: 2012-07-06 18:27 (UTC)
From: [identity profile] blacklion.livejournal.com
что же они все на gcc-то! Кривой же, неудобный, весь из костылей, с плохой лицензией...
Я понимаю лет 5-7 назад брать gcc и пилить к нему свой бэкенд — но сейчас-то!

Date: 2012-07-06 20:34 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
так вроде они с 2001 года пилят

Date: 2012-07-07 00:20 (UTC)
From: [identity profile] hogzie.livejournal.com
Похоже на очередной роспил, прикрытый секретностью и недоступностью документации. Сколько уж можно!?

Date: 2012-07-07 00:47 (UTC)
From: [identity profile] hogzie.livejournal.com
Вот тут автор в комментариях под своей статьей просто жжот напалмом:
http://habrahabr.ru/post/146865/
Когда его начали спрашивать про особенность архитектуры, используя общепринятые термины, он начал кидаться своими собственными, не объясняя их сути. Много демаогогии. А когда дело дошло до простого вопроса и термина instruction pipeline, то он полез в википедию узнавать, что это такое. :D

Date: 2012-08-04 20:11 (UTC)
From: [identity profile] alec_v.livejournal.com
Сложилось стойкое ощущение, что в Распилково получить грант можно только на "необычную" архитектуру, типа аппаратного Braifuck, векторного гипертекстово фидонета или в крайнем случае EPIC Эльбрус. "Обычные" архитектуры вызывают у грантодателей уныние и зевоту. Посевные инвестиции, чтож...

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

Date: 2012-10-22 13:09 (UTC)
From: [identity profile] Борис Зырянов (from livejournal.com)
могу успокоить всех любителей радеть за государственные деньги) НИКАКИХ грантов от государства или Сколково, или Роснано и тд и тп) проект Мультиклет не имеет, развивается на частные средства частных акционеров.

Date: 2012-12-13 22:56 (UTC)
From: [identity profile] teewoon.livejournal.com
Посмею вставить еще пару копеек насчет Мультиклета. IMHO для embedded приложений он вообще никакой, Хотя по обвесу и параметрам больше ему некуда.

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

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

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

Date: 2012-12-27 13:05 (UTC)
From: [identity profile] superzveruga.livejournal.com
"Уничтожительная" статья на хабре о мультиклете держится на комментариях beeruser, который в то же время совершает порадоксально глупые ошибки объясняя архитектуру Эльбруса 2С+

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

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

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

Date: 2012-12-28 17:29 (UTC)
From: [identity profile] superzveruga.livejournal.com
Эльбрус-S это тоже технология VLIW. Все процессоры SPARC имеют маркировку RXXXX!

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

Date: 2012-12-29 12:43 (UTC)
From: [identity profile] superzveruga.livejournal.com
Вот с чего вы взяли, что Эльбрус-S это SPARC? Зайдите на сайт МЦСТ и прочитайте спецификацию. :)

Date: 2012-12-30 07:28 (UTC)
From: [identity profile] superzveruga.livejournal.com
http://www.mcst.ru/b_8-9.shtml

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

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

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

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

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

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

Вот, черным по белому написано, что это никакой не SPARC!
Edited Date: 2012-12-30 07:29 (UTC)