Впечатления от МЦСТ Эльбрус 2000 и OSL (ОС-Эль)

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

С задворок вселенной на первые места вышел МЦСТ со своей разработкой – Эльбрус 2000. Много об этом уже написано, я только лишь изложу свои впечатления.

Архитектура VLIW

О ней было известно с незапамятных времен. Вкратце: это такая архитектура, при которой в чипе есть несколько АЛУ (в Эльбрусе - 6, и да, не путайте с ядрами). И компилятор решает сам, на каких АЛУ выполнять какие команды.

Вообще процессор интересен, стоит скачать книжку с официального сайта и прочитать по диагонали избранные главы.

Первая ассоциация, которая у меня возникла (чёрт, где-то я это уже видел!) была архитектура P5 (самый первый пентиум) с его U и V конвеерами. Идея была похожей. Два АЛУ выполняют команды параллельно: на конвеер одного АЛУ попадают все команды, на конвеер другого – только вычислительные без управляющих.

В тогда ещё здравствующей «Компьютерре» по 16 рублей в лотке у метро долго муссировалась тема, что для работы такой системы нужен специальный компилятор. А значит софт, собранный для предыдущих поколений особого прироста производительности не покажет. А если и покажет, то только за счёт мегагерцев.

Производительность «пенёк» показал отменную. По разным другим причинам, не только из-за мегагерцев. Но ко второму поколению от двух АЛУ отказались в пользу увеличения количества стадий на конвеере и различных ухищрений, из-за которых мы сейчас имеем Spectre и Meltdown. Дело было, напомню, в середине девяностых годов прошлого века, за десять лет до появления первого Эльбруса 2000.

Вот такая длинная преамбула. А теперь фабула.

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

Так вот 6 АЛУ в коде не используется никогда. Слишком много ветвлений, которые не параллелятся. Большая часть процессора просто простаивает. Вот вам и весь VLIW (EPIC).

А про OSL я ничего писать не буду, потому что я сейчасююбх0фз8швдпамсж ш

Нет, не буду…

Есть вопрос? Напишите в комментариях!