user

Авторизация

Добро пожаловать!

Регистрация

Graf

Технологии

Процессоры Эльбрус: на что способны российские процессоры

 Всем добрый день. В сегодняшней статье я представлю вам максимально подробный обзор о российских процессорах «Эльбрус». На сегодняшний день, из-за политической ситуации, у многих людей появился страх что продукция зарубежных компаний пропадет с российских рынков. Но можете не волноваться компаний будет не выгодно прекращать продажу на территории России. Возможно будет повышение цен, возможно и такое что спрос будет выше предложения. Но выход есть, и это наша компания “МЦСТ” которая производит процессоры “Эльбрус”. Данные процессоры уже используются в государственных учреждениях.

История российского компьютер-строения

 Многие люди задаются вопросом почему Россия не производит высокотехнологичные компьютеры. Но это не так, Россия (СССР) была лидером в производстве компьютеров. Самый технологический и мощный компьютер был произведен в России (СССР). Даже такие вещи как многопроцессорность и многодетность была разработана в России (СССР). Но развал СССР сыграл важную роль в развитии компьютерных технологий.

 После развала СССР, зарубежные компании украли все наши разработки и умы сказав, что они сами будут производить компьютерные технологии и продавать нам их за нефть и газ. Именно такие компании как Intel и AMD присвоили себе технологии, над которыми работали наши умы.

 И вот прошло 30 лет и теперь эти компании не так охотно хотят продавать нам якобы свои технологии. Но наша компания МЦСТ решила положить этому конец. Сейчас данная компания производит не только процессоры для общего применения, но электронику, которая применяется вооруженными силами.

Эльбрус 8С

 Сегодня мы будем рассматривать процессоры «Эльбрус 8С». Но мы должны сказать, что на сегодняшний момент есть новые процессоры «Эльбрус 8СВ». Разница у этих процессоров в том, что актуальная версия поддерживает формат памяти DDR 4. Также уже совсем скоро должен появиться «Эльбрус 16С». Этот процессор можно купить уже сейчас, но это лишь демонстрационная версия, которую уже все успели обхаять.

 Также нужно уточнить что у нашего процессора есть версии с разной частотой. У процессора, который мы будем использовать чистота 1.3GHz. Возможно сейчас многие скажут, что это очень мало, но нет. В данном процессоре совершенно другая архитектура, которая никак не похожа на архитектуру у Intel и AMD. Имя этой архитектуры – E2K (Elbrus 2000).

 В основе этой архитектуры лежит его сердце под названием VLIW (Very Long Instruction Word).

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

 На сегодняшний день существует две основные архитектуры CISC и RISC. Конечно это не единственные архитектуры, но доминирующих только две это – х86 и ARM. X86 базируется на принципе CISC, а ARM на принципе RISC.

 Но в чем же разница между этими архитектурами? CISC процесс расшифровывается как Complex Instruction Set Computer, то есть «компьютер со сложным набором инструкций». Это когда в процессор поступает команда, которая говорит процессору выполнить сразу несколько вещей. Например, мы говорим процессору открыть файл, удалить папку, и запустить программу, одной командой. В данном случае компьютер примет и выполнит данную команду.

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

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

 И вроде бы VLIW больше похож на CISC, но по своей логике RISC ближе к VLIW. Дело в том, что CISC не ограничен длиной. Он может давать как короткую команду, так и максимально длинную. Но в RISC наоборот все команды одной длины. Также работает и VLIW, он всегда дает команды одной длины.

CISC RISC

 И сразу же задается вопрос “Какой из них лучше?”. Правильный ответ НИКАКОЙ. У каждого подхода есть свои преимущества и недостатки.

VLIW

 На сегодняшний день большинство процессоров построенные на системе CISC, на самом деле используют RISC. В 1995 году Intel вдруг перешел на RISC внутри ядер, а после на данную архитектуру перешел и AMD. И получается, что у большинства современных процессоров в Backend стоит RISC, а в Frontend CISC. Это значит, что процессор мыслит, как система RISC, а команды поступают как CISC.

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

 Но для чего же это было сделано? Ответ очень простой. Intel и AMD нужно было каким-то способом распараллелить команды, чтобы задействовать больше вычислительной мощности. Тем самым скорость выполнения команд увеличилась в разы. Такой принцип работы, когда одна команда разбивается на несколько, с целью задействовать как можно больше блоков процессора называется неявный параллелизм.

 Принцип работы неявного параллелизма заключается в том, что код, который написал программист автоматически разбивается процессором. Тем самым написание программного кода занимает меньше времени.

 И теперь становиться интересно почему Эльбрус использует технологию VLIW ведь если даже Intel решил перейти на RISC. Дело в том, что в VLIW разбитием команды занимается компилятор, а в Intel же этим разбитием занимается специально выделенной блок. У каждого из них есть свои плюсы и минусы, по сути они выполняют одно и тоже действие, но разными математическими способами.

 И кажется, что Эльбрус всех переиграла и остается только увеличивать количество транзисторов в процессоре, тем самым увеличивая производительность. Но не все так просто. Дело в ограничениях. Одну команду можно разбить только на 4 микрооперации. Дело в том, что программы пишутся на процессоры команды которых разбиваются на четыре части. И в случае если процессор будет разбивать на большее количество микропроцессов, весь софт придется перекомпилировать. Поэтому приходится придерживаться стандартов.

 Одним из минуса Эльбруса является то что программисту приходится самому говорить процессору, как и что распараллелить. К счастью ему в этом помогает компилятор, который большую часть забирает на себя. И получается, что по задействованию всех вычислительных блоков лежит на руках программиста и компилятора. Это значит, что Эльбрус использует явный параллелизм. Получается, что в случае с Intel и AMD код поступающий в процессор он сам распараллеливает, то в случае с Эльбрус команда уже распараллелена программистом и если все сделано правильно, то она поступает на арифметические блоки, которые возвращают результат. Тем самым в Эльбрусе нет блока, который занимается распараллеливанием, а это значит в процессоре становится больше места для вычислительных блоков.

 Одна из самых важных проблем Эльбруса заключается в том, что он работает не со всеми языками программирования. Данный процессор может работать только с тремя языками, это: С (Си), С++ и Fortran. Эльбрус — это процессоры которые очень плохо работают с последовательными вычислениями и интерпретированными языками. И с такими языками он работает очень плохо. Эльбрус их понимает, но выполняет очень медленно. Но есть и решение, а именно новая архитектура E2Kv7 на процессоре Эльбрус 32С, которая должна появиться к 2030 году. Данная архитектура будет оптимизирована под интерпретируемые языки программирования.

Безопасность Эльбрус

 Регистры, которые хранят данные у Эльбруса разделены на три части, это: стек процедур (PS), стек связующей информации (PCS) и стек пользователя (US). Программист имеет доступ только к одному стеку, а именно к стеку пользователя. То как будут храниться данные отвечает компилятор и пользователь не имеет возможности узнать где именно хранятся данные.

 PS стек отвечает за хранение данных. Представим, что есть программа, которая хранится в ячейке под номером 1, а в ячейке под номером 2 хранятся данные которые использует наша программа. Если мы запускаем программу, то у нас сперва процессор обращается к ячейке №1 запуская программу, а потом к ячейке №2 получая нужные ему данные. И адреса программы и адреса данных хранятся в PS стеке и к ним никто не имеет доступа. В PCS стеке хранится дополнительная информация, которая говорит о том, что вы делали в программе. А в US стеке хранятся те самые данные которые использовала программа.

 Самое интересное то что все стеки разграничены на физическом уровне. То есть процессор никому и никогда не даст к ним доступа.

 Еще один интересный момент, касающийся работы памяти. При любом типе работы процессор может простаивать из-за задержки получения памяти. И компилятор Эльбрус может предугадывать, когда и какие данные нужно загрузить. Но что делать если нужно загрузить большое количество данных? Для таких случаев есть Asynchronous Prefetch Buffer (APB). Это отдельный модуль, который отвечает за подкачку данных. То есть если процессор видит, что мы используем большое количество однотипных данных, то загрузкой этих данных будет заниматься блок APB тем самым снижая нагрузку на процессор.

Возможности Эльбруса

 Одной из самых интересных возможностей Эльбруса это то что он способен начать следующий цикл еще до того как завершил предыдущий. Дело в том, что компилятор разбирает какие данные в каких циклах от каких других данных зависимы, то он может определить в каких случаях можно запустить циклы параллельно. За счет большого числа регистров с которыми одновременно может работать процессор он имеет возможность выполнять параллельно те задачи, которые программист не собирался.

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

 Сегодня самый оптимальный процессор МЦСТ это Эльбрус 8СВ с архитектурой E2Kv5. Самое новое у данной архитектуры это SIMD. SIMD это инструкция по задействованию регистров в 128бит. А также в данной версии появились инструкции по задействованию FPU. FPU это ускорение векторных вычислений, то есть вычисления с плавающей запятой.

Заключение

 С уверенностью можно сказать что Эльбрус это не какая-то железяка. Данные процессоры никак не превосходят те же самые процессоры Intel и AMD. Уже сейчас Эльбрус используют в государственных учреждениях ведь именно для этого он и создавался. Но это не значит, что мы всегда будем позади. Если государство поддержит МЦСТ, то есть большая вероятность что процессоры Эльбрус сможет конкурировать с другими процессорами зарубежных компаний.