Впечатления от МЦСТ Эльбрус 2000 и OSL (ОС-Эль)
После всех санкций и отказа импортных вендоров работать с большим куском отечественного IT-рынка в виде государственных контор управляющие этими конторами не менее государственные мужи вспомнили о наличии отечественных разработок и простаивающих НИИ.
С задворок вселенной на первые места вышел МЦСТ со своей разработкой – Эльбрус 2000. Много об этом уже написано, я только лишь изложу свои впечатления.
Архитектура VLIW
О ней было известно с незапамятных времен. Вкратце: это такая архитектура, при которой в чипе есть несколько АЛУ (в Эльбрусе - 6, и да, не путайте с ядрами). И компилятор решает сам, на каких АЛУ выполнять какие команды.
Вообще процессор интересен, стоит скачать книжку с официального сайта и прочитать по диагонали избранные главы.
Первая ассоциация, которая у меня возникла (чёрт, где-то я это уже видел!) была архитектура P5 (самый первый пентиум) с его U и V конвеерами. Идея была похожей. Два АЛУ выполняют команды параллельно: на конвеер одного АЛУ попадают все команды, на конвеер другого – только вычислительные без управляющих.
В тогда ещё здравствующей «Компьютерре» по 16 рублей в лотке у метро долго муссировалась тема, что для работы такой системы нужен специальный компилятор. А значит софт, собранный для предыдущих поколений особого прироста производительности не покажет. А если и покажет, то только за счёт мегагерцев.
Производительность «пенёк» показал отменную. По разным другим причинам, не только из-за мегагерцев. Но ко второму поколению от двух АЛУ отказались в пользу увеличения количества стадий на конвеере и различных ухищрений, из-за которых мы сейчас имеем Spectre и Meltdown. Дело было, напомню, в середине девяностых годов прошлого века, за десять лет до появления первого Эльбруса 2000.
Вот такая длинная преамбула. А теперь фабула.
Волей случая я прислонился к отечественной индустрии микропроцессоров. В процессе разбора узких мест некоторого програмного обеспечения, которое должно работать на Эльбрусе, я дизассемблировал несколько интересных мест.
Так вот 6 АЛУ в коде не используется никогда. Слишком много ветвлений, которые не параллелятся. Большая часть процессора просто простаивает. Вот вам и весь VLIW (EPIC).
А про OSL я ничего писать не буду, потому что я сейчасююбх0фз8швдпамсж ш
Нет, не буду…
Есть вопрос? Напишите в комментариях!