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

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

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

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.
Опять же, я не смотрел глубоко - это так, свободные ассоциации по поводу.