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

С документацией, правда, тоже хреново.
- CNews: Российский процессор принципиально новой архитектуры уже в производстве
- РИА Новости: Резидент "Сколково" выпустил первую партию ГЛОНАСС-микропроцессоров
- Известия: «Сколково» бросает вызов Санта-Кларе
- Газета "Взгляд": Первая партия мультиклеточных процессоров произведена в России
- "Сделано у нас": Проект «Мультиклет» отмечен Академией инженерных наук
На Хабре появилась взвешенная статья "Критический взгляд со стороны на процессоры Мультиклет", где озвучены многие сомнительные места. А я конспективно пройдусь по списку преимуществ новой архитектуры, заявленному на официальном сайте Мультиклет.
- Увеличение производительности при одновременном снижении энергопотребления - не представлено никаких реальных данных по сравнению производительности с другими архитектурами. Например Dhrystone или Specmark.
- «Естественная» реализация параллелизма (без решения задачи распараллеливания) - хотелось бы видеть примеры такого распараллеливания, хотя бы для простых известных алгоритмов.
- Уменьшение площади кристалла - отсутствуют данные для сравнения.
- Эффективная реализация любого класса задач (коммутационная среда не вносит каких-либо ограничений в межклеточный обмен данными) - не подтверждено цифрами. Боюсь, главный тормоз будет в подгрузке потока инструкций.
- Выполнение задачи без перекомпиляции на любом количестве клеток - в качестве доказательства меня бы устроил запуск какого-нибудь простого кода на RTL-симуляторе процессора с разным количеством клеток.
- Непрерывное выполнение программы при деградации аппаратной среды (отказ клеток) - интересно, как это работает при отсутствии в процесоре схем контроля и отключения клеток.
- Дефектоустойчивость производства (кристалл считается годным, даже при отбракованности части клеток) - аналогично.
Между тем, незамеченным прошло другая интереснейшая вещь: процессор "Кварк", разработанный дизайн-центром KM211. Абсолютно оригинальный RISC-процессор с интересными параметрами, компилятор GCC, работающий Линукс, готовая микросхема К5512БП1Ф.

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

no subject
Date: 2012-07-05 22:38 (UTC)не продукт получившийся, а архитектуру. насколько перспективно, или наоборот тупиково.
действительно ли будут большие проблемы при наращивании числа ядер?
thesz считает, что эксперименты с такой архитектурой уже были, что в принципе ничего оригинального в ней нет
no subject
Date: 2012-07-05 22:57 (UTC)Вот интересный комментарий: http://chiptalk.ru/multiclet/
Я не видел раньше ничего похожего, вроде свежая идея. Но в высшей степени спорная. Годится в качестве темы академических исследований для какого-нибудь серьёзного университета. Проблемы при увеличении числа ядер будут. Четыре клетки это немного, да и те не факт что получится успевать кормить инструкциями. Проблема ветвлений и переходов вообще замалчивается. Может быть, в этой архитектуре не поддерживаются циклы и логические операторы?
Отдельная проблема создание компилятора. Итаниум сломался именно на этом: Не получается загрузить параллельной работой достаточное количество функциональных устройств. При том что суперскалярные процессоры успешно решают задачу в хардвере.
no subject
Date: 2012-07-06 09:54 (UTC)no subject
Date: 2012-07-06 20:31 (UTC)no subject
Date: 2012-07-06 14:59 (UTC)http://www.cs.utexas.edu/~trips/overview.html
no subject
Date: 2012-07-06 20:31 (UTC)Те же теги динамического потока данных, только добавлены "волны" - параллельно выполняющиеся инструкции, которые могут привести к синхронизации.
Хотя большинство обмена и идёт через память, есть возможность посылать данные "в будущее" - например, на следующую итерацию цикла и тп.
Масштабируется. Путём изменения отношения АЛУ может быть оптимизирована под конкретный набор операций в конкретном классе задач.
no subject
Date: 2012-07-06 02: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.
Опять же, я не смотрел глубоко - это так, свободные ассоциации по поводу.
no subject
Date: 2012-07-06 03:15 (UTC)может из этого хаоса что-нибудь и вырастет в итоге.
no subject
Date: 2012-07-06 07:25 (UTC)Множество маргинальных архитектур рождаются и умирают, даже не став по-настоящему известными.
no subject
Date: 2012-07-06 10:20 (UTC)Специально умолчали про MIPS, чтобы подразнить хозяина журнала? :-)
no subject
Date: 2012-07-20 20:44 (UTC)http://www.russianelectronics.ru/provider-r/news/snabworldmarket/doc/59386/
не видел упоминаемого в статье доклада и статьи с EE Times, но тем не менее...
no subject
Date: 2012-07-06 13:49 (UTC)На том же Хабре кто-то из разработчиков написал, что допиливает для этого процессора C89.
С другой стороны, не пора ли изобретать новый C? Он же был придуман 40 лет назад совсем для другой архитектуры.
no subject
Date: 2012-07-07 00:49 (UTC)no subject
Date: 2012-07-06 18:27 (UTC)Я понимаю лет 5-7 назад брать gcc и пилить к нему свой бэкенд — но сейчас-то!
no subject
Date: 2012-07-06 20:34 (UTC)no subject
Date: 2012-07-07 00:20 (UTC)no subject
Date: 2012-07-07 00:47 (UTC)http://habrahabr.ru/post/146865/
Когда его начали спрашивать про особенность архитектуры, используя общепринятые термины, он начал кидаться своими собственными, не объясняя их сути. Много демаогогии. А когда дело дошло до простого вопроса и термина instruction pipeline, то он полез в википедию узнавать, что это такое. :D
no subject
Date: 2012-08-04 20:11 (UTC)Ждем процессорного аналога Петрика.
no subject
Date: 2012-10-22 13:09 (UTC)no subject
Date: 2012-10-23 03:15 (UTC)Народ, умудрённый российским опытом, обычно склонен к пессимизму, ничего не поделаешь.
Выпуск opensource симулятора, в комплекте с ассемблером, мог бы значительно поднять интерес к новой архитектуре.
no subject
Date: 2012-12-13 22:56 (UTC)Печаль как раз в мудрености ядра, которое наглухо закрывается во время выполнения пучка команд. Прерыванию приходится ждать когда же оно продуплится. Сырость конструкции - один какбэ вектор прерываний с программным диспетчером. При таком ядре хз сколько оно будет жевать.
Переходы в ветвящемся коде. Спорный вопрос, но в задачах где вычислительная моща не самое главное, а всё опирается на коммуникации и короткие кусочки кода (Finite State Machines, микроядра и прочие real-time related плюшки), это может из ложки дегтя превратиться в бочку.
А еще непонятно покусительство на СВЯТЫЕ клеточные (однородные структуры) в плане названия. Вот как ни вертел документацию - ничего клеточного не нашел. Т.е. именно локальной связности вычислительных узлов. Пока что они связаны опосредованно через коммутатор - локального бога, который хранит промежуточные результаты операций, а потом делает отложенную запись в общие регистры. Ну еще чота он делает, но все операции проциков через него =(
no subject
Date: 2012-12-13 23:42 (UTC)no subject
Date: 2012-12-27 13:05 (UTC)...2C+ это не «тот самый» Эльбрус — это банальный Sparc с DSP...
Что совершенно неверно. Эльбрус это своя уникальная VLIW архитектура. Серия SPARC процессоров от МЦСТ называется RXXX.
beeruser потому не понял mikanoid, потомучто он пытался распаралеливать команды по клеткам, а в Мультиклете распаралеливаются не только команды но и каждая команда! Т. е. одна команда может выполняться сразу на 4 (в зависимости от количества клеток) ALU. При этом обмен информацией, которая нужна для исполнения одной или группы команд происходит по возможности через межклеточные связи (коммутатор). Что исключает потребность в использовании памяти и, соответственно, ускоряет производительность в те моменты, когда вместо обращения к памяти происходит считывание из коммутатора.
no subject
Date: 2012-12-27 17:32 (UTC)Что вы имеете в виду под распараллеливанием каждой команды? Обычно одна инструкция процессора выполняется за один такт. Можете ли вы привести пример кода с выполнением сразу на 4 ALU? Иначе непонятно.
no subject
Date: 2012-12-28 17:29 (UTC)Хотите лучше понять Мультиклет читайте http://habrahabr.ru/post/163057/
no subject
Date: 2012-12-29 12:43 (UTC)no subject
Date: 2012-12-30 03:59 (UTC)На сайте МЦСТ микропроцессоры с архитектурой SPARC везде аккуратно именуются как Rxxx, все честно. Но вычислительный комплекс на их основе - уже Эльбрус-90 микро. Операционная система тоже Эльбрус (на базе Linux).
no subject
Date: 2012-12-30 07:28 (UTC)...Микросхема, разработанная на базе микропроцессора «Эльбрус»...
Первый Эльбрус это архитектура Е2К!
...Ядро микросхемы является высокопроизводительным универсальным процессором с архитектурой широкого командного слова...
Т. е. VLIW, а не SPARС!
...Архитектура микросхемы содержит средства поддержки выполнения программного обеспечения платформы х86, перетранслированного в коды «Эльбрус-S»...
Этой функцией обладают только процессоры с архитектурой E2K от МЦСТ!
Вот, черным по белому написано, что это никакой не SPARC!