Мультиклет!



Этот раздел посвящён первому отечественному мультиклеточному микропроцессору.

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

Оказывается, ещё в 2001 году начались работы по созданию прототипа мультиклеточного процессора. В 2008 году начато финансирование проекта, в 2009 был изготовлен прототип мультиклеточного процессора, в 2010 огранизована фирма "Мультиклет", а уже в 2012 были изготовлены первые 3000 экземпляров процессора MultiClet P1 малайзийской фирмой SilTerra по технологии 180нм.

Разработчики процессора изначально проектировали аппаратный ускоритель компьютерной графики для видеокарт, и перед ними сразу встала задача организовать распараллеливание большого количества математических вычислений. Поскольку, в 2001 году повсеместно использовалось программное распараллеливание, эффективность которого напрямую зависела от программистов, то при создании новой процессорной архитектуры сразу было решено прорабатывать аппаратное распараллеливание выполнения программы между процессорными блоками. То есть, если традиционный многоядерный процессор представляет собой несколько отдельных и независимых друг от друга процессоров на общем кристалле, объединяемых только арбитром, распределяющим доступ нескольких ядер к шинам компьютера, то в мультиклеточном процессоре, процессорные блоки дополнительно связаны между собой. К сожалению, недостаточное финансирование проекта в целом, вынудил разработчиков отказаться от дальнейших работ по проектированию видеоускорителя. Чтобы имеющиеся наработки по необычной архитектуре не пропали даром, взамен было решено разработать и изготовить универсальный мультиклеточный процессор. В процессе разработки было установлено оптимальное количество процессорных блоков - "клеток" для выполнения различных задач, исходя из возможностей логического распараллеливания. Например, обработка видео могла вполне эффективно использовать ресурсы 64-клеточного процессора, но обработка звука не могла эффективно использовать более 16 клеток, а для универсальных задач примерный потолок логического распараллеливания и вовсе снизиля до 4-х клеток. Можно, конечно, заставить и 64-клеточный процессор корпеть над универсальной задачей, но, в большинстве случаев, использоваться будет не больше 4-х клеток. Итого, вместо навороченного 256-клеточного видеоускорителя на свет появился простенький четырёхклеточный MultiClet P1.

Я заинтересовался мультиклеточным процессором и в числе первых ста покупателей приобрёл отладочную плату LDM-MCp0411100101-Q208 Evolution по "новогодней" цене.

Не смотря на громкие заявления, MultiClet P1 был пробным шаром, опытным вариантом, процессором-лабораторией для экспериментальной проверки самой идеи мультиклеточной архитектуры при выполнении практических задач, а также поиска различных подводных камней и путей для дальнейших улучшений. В этом процессоре было воплощены только сами клетки с раздельными блоками памяти программ, распараллеливание программы осуществлялось только компилятором. В дальнейшем, опыт процессора MultiClet P1 был учтён и в 2015 был выпущен MultiClet R1 с блоком аппаратного распарралеливания программ. Тем не менее, MultiClet P1 не остался в стороне и нашёл применение в выпускаемых принтерах Foil Print 106 фирмой ООО "Виршке"


Как устроен и работает мультиклеточный процессор

Авторская статья, написанная в начале февраля 2017 для разъяснения неочевидных моментов из фирменного описания работы мультиклеточного процессора MCp0411100101.


Примеры программ на ассемблере для процессора MCp0411100101

Мои примеры программ для отладочной платы LDM-MCp0411100101-Q208 Evolution, написанные в ходе экспериментов и изучения мультиклеточного процессора.


В результате экспериментов был выявлен ряд подводных камней процессора MultiClet P1. Во-первых, прерывания работают только от системного таймера, поэтому за периферией придётся следить самому программисту. Во-вторых, переходы между пакетами команд занимают 10-12 тактов машинного времени! Писать программы надо из длинных пакетов команд. В третьих, нельзя писать в регистр системного таймера числа больше 0х0000FFFF, хоть и говорится что таймер 32-битный пользоваться можно только младшими 16 битами, иначе не будут работать прерывания! Наконец, нельзя писать в регистр предделителя системного таймера числа больше 0х14 (20), иначе в работе программы обработки прерываний появятся воистину бессмысленные и беспощадные глюки при выполнении арифметических команд и неведомого влияния значений регистров на арифметику.


В настоящее время, опытный процессор MultiClet P1 уходит в историю, но на смену ему в 2015 году пришёл MultiClet R1, а в 2018 выпущены первые образцы новейшего процессора MultiClet S1



Сайт работает на микрокомпьютере