Мультиклет!



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

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

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

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

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

К сожалению, недостаточное финансирование проекта в целом вынудило разработчиков отказаться от дальнейших работ по проектированию новейшего видеоускорителя. Чтобы имеющиеся наработки по необычной архитектуре не пропали даром, взамен было решено разработать и изготовить универсальный мультиклеточный процессор. В процессе разработки было установлено оптимальное количество процессорных блоков - "клеток" для выполнения различных задач, исходя из возможностей логического распараллеливания. Например, обработка видео могла вполне эффективно использовать ресурсы аж 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.



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