DSC07581_2 (1).jpg

Про десктопные процессоры от Intel и AMD слышали и пользуются ими многие. Олдфаги помнят, что порядка 10 лет назад у них был конкурент — процессоры от VIA (которые, увы, конкуренции не выдержали). Ну и уж совсем гики знают про советско-российские процессоры Эльбрус (хотя, впрочем, в свете последних новостей, о них знают достаточно много людей). Поэтому в этой статье мы и поговорим об этих процессорах: как они создавались, на какой архитектуре работали, и что из себя представляют сейчас.

Эльбрус-1

В СССР отлично понимали, что за процессорами будущее. При этом брать разработки других компаний было нехорошо — нужно, чтобы и элементная база, и теоретические разработки происходили на территории страны (что, впрочем, не помешало с помощью reverse engineering создать множество клонов процессоров от Intel вплоть до 286). В результате, в 1980 году, был представлен вычислительный комплекс Эльбрус-1, который был построен по нормам ТТЛ (транзисторно-транзисторной логика — микросхемы, состоящие из биполярных транзисторов и резисторов, где транзисторы играли роль не только логических элементов, но и использовались для усиления выходного сигнала) и включал в себя 10 ЦП. Итоговая производительность была на уровне 12 млн операций в секунду: для примера, процессор Intel 8086, с которого, собственно, и пошли х86 процессоры, мог выполнять 330 тыс оп/с, и только Intel i486DX, вышедший 10 лет спустя, мог тягаться с этим вычислительным комплексом.

Эльбрус-2
110402.jpg
В 1985 году был представлен новый вычислительный комплекс — Эльбрус-2. Он также имел 10 ЦП, но построены они были на основе интегральных схем ИС-100 (полученными с помощью reverse engineering из процессоров Motorola 10000ой серии). Каждый процессор имел частоту в 20 МГц, и суммарно кластер мог оперировать со 144 МБ ОЗУ. Внешней памятью выступала магнитная лента, а адресуемый объем достигал 700 МБ (столько же, сколько на обычной CD-болванке). Итоговая производительность была уже 125 млн оп/с — это сравнимо с процессорами архитектуры Cortex M3 с частотой в 100 МГц, которые, к примеру, играют роль сопроцессоров для датчиков в iPhone (и называются Apple M7-M10): да, производительность целого вычислительного кластера, который занимал не одну комнату и требовал серьезного охлаждения, теперь помещается в крохотном чипе в смартфоне.

Эльбрус-3

Новый виток развития Эльбрус пришелся на смутные времена, 1989-1994 годы: заниматься обратной разработкой было уже нельзя: во-первых, Россия — не СССР, и патенты иностранных фирм нарушать было уже нельзя. Во-вторых, одно дело — заниматься reverse engineering процессора с 100 тыс транзисторов, а другое — с десятком миллионов: это гораздо сложнее. В итоге пришлось переходить на VLIW-архитектуру (она специально создана для многопроцессорных систем: одна инструкция процессора содержит несколько операций, выполняемых параллельно, причем известно, какой вычислительный блок выполняет какую операцию). Очевидно, что совместимости с Эльбрус-2 не было, как не было и денег на производство, так что Эльбрусы «похоронили» до начала нулевых.
complex_186.jpg
Новейшее время, разработки ЗАО МЦСТ

В начале нулевых, когда основные проблемы в стране были решены, правительство снова обратило внимание на отечественные процессоры. Увы — время было упущено: с 1994 по 2000 год Intel сделали огромный скачок: процессоры нарастили частоты на порядок, техпроцесс также уменьшился на порядок. А Эльбрусы по сути так и остались на уровне начала 90ых, и нужно было что-то решать.

И тут, на мой взгляд, МЦСТ сделали серьезную ошибку: поняв, что архитектуру нужно менять, они выбрали SPARC. Разумеется, х86-процессоры для них были закрыты, но ведь был же стабильно развивающийся ARM, который также, как и SPARC, свободен для лицензирования. И если последний прекратил свое развитие аж в 1993 году на девятой версии, то ARM развивается дальше. К счастью, в МЦСТ достаточно быстро поняли тупиковость этого пути, и уже в 2005 году представили первый процессор на собственной архитектуре «Эльбрус», и эта архитектура продолжает развиваться. Но все еще 5 лет были потеряны, что для процессоров достаточно серьезный срок.
pic_13195-e648549437af08817aba46e1421d7d17.jpg
Поговорим о «Эльбрусе» подробнее. Эта архитектура основана на все той же VLIW и разработках Эльбрус-3 90ых годов. Основное отличие от привычных нам RISC (это ARM и SPARC) и CISC (x86) заключается в принципах анализа зависимостей и порядка выполнения поступающего потока инструкций: в традиционных архитектурах именно процессор находит независимые операции и запускает их параллельно на разных ядрах, и этот динамический анализ зависимостей и поддержка внеочередного выполнения команд приводит к тому, что современные процессоры могут выполнять 4-6 команд за такт. В архитектуре «Эльбрус» основную работу по анализу зависимостей и оптимизации порядка операций берет на себя компилятор. Процессору на вход поступают т.н. «широкие команды», в каждой из которых закодированы инструкции для всех исполнительных устройств процессора, которые должны быть запущены на данном такте. От процессора не требуется анализировать зависимости между операндами или переставлять операции между широкими командами: все это делает компилятор, исходя из анализа исходного кода и планирования ресурсов процессора. В результате аппаратура процессора может быть проще и экономичнее, а процессоры способны выполнять до 23 (и даже 33 в некоторых случаях) команд за такт!

В итоге архитектура «Эльбрус» успешно исправляет основную проблему современных вычислительных систем — распараллеливание задачи на большое число потоков: если у Intel или AMD с этим проблемы (самый банальный пример — в играх 4ядерные i7 оказываются на уровне или даже лучше 8ядерных Ryzen), то МЦСТ это проблему преодолели.

Производительность Эльбрус

Еще одной важной особенностью Эльбрусов является то, что они в режиме динамичной двоичной трансляции способны «крутить» х86-код — то есть на них можно запускать Windows и полноценные программы для нее. Динамическая двоичная трансляция позволяет «на лету» преобразовывать двоичные коды х86 инструкций в машинные коды «Эльбруса», то есть по сути запускается виртуальная машина с полноценным BIOS, и уже на ней запускается х86-код.

В итоге оценить производительность мы можем сразу по двум параметрам: во-первых, в GFLOPS — это чисто математическая производительность, которая позволяет приблизительно оценить возможности процессоров на любых архитектурах. Эльбрус 4С, который сейчас является самым производительным из тех, что можно купить, имеет 4 ядра с частотой в 800 МГц, построен на 65 нм техпроцессе, имеет 8 МБ кэша L2 и производительность с двойной точностью на уровне 25 Гфлопс. Для оценки — Intel Core 2 Quad Q6600, 4ядерный мощный процессор, выпущенный в конце нулевых, имеет производительность в 35 Гфлопс. i7-4770, предтоповый процессор 2013-2014 года, имеет производительность уже 250 Гфлопс. Правда, они оба имеют тепловыделение в 65 Вт против 45 у Эльбруса, но разница в производительности гораздо существенней. 

Второй способ оценки производительности — это запуск Windows, что и было сделано: на Эльбрус-4С запустили Windows 7 и игру GTA: Vice City (которой уже больше 10 лет):

Самый интересный момент происходит на 10:07 — на экране видно, что эмулируется процессор Pentium 4 с частотой в 800 МГц, а объем доступной ОЗУ — 2.5 ГБ:

Безымянный.png

Что нам это говорит? То, что каждое ядро по своим возможностям сравнимо с Pentium 4, то есть поддерживает все те же инструкции, что и процессор почти 15-летней давности — никаких AVX, только MMX и старые версии SSE (правда, тут 4 ядра, но и случай не тот, где количество превращается в качество). Поэтому нормально будет работать софт лишь до середины нулевых — все, что новее, уже требует как минимум SSE 4, а вообще говоря уже и AVX. И второе — виртуальная машина требует 1 ГБ ОЗУ (так как всего из 4 ГБ на х86-системе доступно должно быть 3.5, а тут — 2.5), что достаточно мало. В общем и целом все это здорово, но все же хуже разработок конкурентов: так, Windows 10 была запущена и нормально работала на ARM-процессоре, причем запускали там не игрушку 15-летней давности, а достаточно тяжелый Photoshop. 

Причем небольшая производительность даже не основная проблема: для Эльбруса создана ОС на основе Linux, и там производительность более чем хорошая — проблем с запуском офисных программ и браузеров нет, а большинству пользователей (и офисных работников) большего и не нужно. Основная проблема в стоимости — так как производство небольшое, то стоимость каждого чипа оказывается заоблачной, а полностью готовый ПК стоит больше 100 тысяч рублей: за такие деньги сейчас можно собрать или хороший игровой ПК, или среднестатистическую рабочую станцию. МЦСТ же предлагает за ту же сумму по сути обычный офисный ПК, цена которого не превышает 15 тысяч рублей даже при покупке РСТ-комплектующих. Поэтому единственный очевидный сценарий использования — в госпредприятиях, где цена не имеет значения. Обычным же людям пока приходится пользоваться «басурманской» техникой, но кто знает — может быть, лет через 10, Эльбрусы станут конкурентоспособными.