Разработчики «Эльбруса» выложили в открытый доступ систему команд процессора

08.06.2020     

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

Любое использование

Компания МЦСТ представила руководство по разработке программ, совместимых с процессором «Эльбрус». Документация включает детальное описание ассемблера и системы команд чипов, информацию об особенностях работы фирменного компилятора LCC, советы по портированию С и С++ приложений на отечественный процессор, сведения о приемах по оптимизации программ и повышению производительности устройства. 

Руководство по разработке под платформу «Эльбруса» выложено на официальном сайте МЦСТ. Оно распространяется по лицензии Creative Commons (CC-BY 4.0), которая позволяет сторонним разработкам использовать и изменять продукт, в том числе и для коммерческих целей. Обязательно лишь указание авторов исходников. 

Подробности документации

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

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

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

Об архитектуре

Документация детально рассматривает архитектуру процессоров «Эльбрус». В ней представлены сведения обо всех актуальных моделях чипов, в том числе о 4-ядерном «Эльбрус-4C», 8-ядерных «Эльбрус-8C» и «Эльбрус-8CB». Описана разница в исполнении команд скалярными и суперскалярными процессорами, подробно разъяснена конвейеризация и параллельная группировка в процессе выполнения команд.

Рассмотрение архитектуры «Эльбрусов» также включает принципы применения «очень длинных машинных команд» (VLIW), специфику использования компилятора чипа для анализа зависимостей и оптимизации порядка исполнения операций. Детально описаны прочие отличительный черты отечественной разработки от «традиционных» процессоров с архитектурой RISC/CISC.


Автор:
Александр Вашкевич Аналитик


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 2301 08.06.20 14:32 Сейчас в теме
Они что, выложили в открытый доступ систему команд? Аттракцион невиданной щедрости! ))))

ЗЫ: У всех производителей процессоров это в открытом доступе, иначе бы под них никто не стал бы писать софт - как его писать без документации?
2. burmsergey 11 08.06.20 17:30 Сейчас в теме
(1) В публикации неточное введение. Поэтому если прочитать только его (первые два предложения), то формируется оценка типа "аттракцион".
На самом деле по указанной ссылке расположено нечто большее: руководство по эффективному программированию на платформе «Эльбрус».
А описание системы команд занимает в нём только одну главу из 10.
4. starik-2005 2301 09.06.20 00:28 Сейчас в теме
(2)
руководство по эффективному программированию
На сайте Интела и AMD даже компиляторы для С/С++ свои выложены и очень много документации об оптимизации. Плюс библиотеки с оптимизированной математикой.

Создатели Эльбруса что-то втирали на счет того, что если все правильно написать, то компилятор может из этого сделать хорошо распаралелленый код, но мы то знаем, что не все в этом мире хорошо параллелится. Более того, распараллелится все по количеству ядер. Что там может быстрее работать, чем на других процессорах с более высокой частотой и IPC? Ну только если воткнули пару команд для шифрования ГОСТ - так это аппаратная штука, а не программная.

Ну ладно, давайте посмотрим руководство.

1. Работа с платформой.

Ну тут ассемблер и дизасемблер элементарных функций на С++ с указанием номера такта выполнения и механикой оптимизации. Так-то прикольно: в системе куча наборов регистров - 16 общих, 16 глобальных и 16 специальных.Регистров мало не бывает - это точно. Ну и оптимизация адресным выравниванием и помещение "широкой" команды в конвейер для однотактового (суперскалярного параллельного) выполнения. Что-то ноу-хау я тут не вижу - все процы давно уже так делают, а еще предсказывают ветвление и прочие штуки, иногда играющие плохую шутку с возможностью вытащить пару чужих байт (уязвимости типа спектра spectre). В общем -О0 .. -О4 - тоже нового ничего нет.
Ну или вот, банальное:
Обратите внимание, что в результате оптимизаций в режиме -O3 вызов был заменён на:
И что было заменено? Вызов процедуры на инлайн-код. Тоже ничего нового - это все было в самых древних компиляторах, полагаю.

В принципе эти все "широкие команды" - это основной признак архитектуры АРМ, суть которой была в том, что ну очень много команд на все случаи жизни? прибавил и перешел, умножил и перешел, если в результате больше/меньше/равно. Предположу, что ноги оттуда растут, но за дополнительные регистры - да, спасибо, полезно иногда...

Вообще, архитектура интересная, но память-то медленная - те же нейронки упрутся в ее производительность и кучей регистров горю не поможешь. Не увидел команд для 128-256-512 бит, может дальше будут.

2. Повышение производительности.
Один из известных ресурсов повышения производительности - выявление и использование параллелизма на уровне элементарных операций (устоявшийся термин ILP = Instruction-Level Parallelism).
Для АПП «Эльбрус» параллелизм выражается в машинном коде явным образом в виде Широких Команд (ШК), а задача обнаружения и эффективного использования ILP возлагается на компилятор
- этот принцип характерен для всех известных процессоров VLIW


VLIW также получила хорошее распространение на рынке GPU, так, видеопроцессоры AMD/ATI Radeon начиная с R600 и до Northern Islands включительно имеют VLIW-архитектуру.[8][9] Начиная с Southern Islands (первый квартал 2012) компания AMD/ATI отошла от подхода VLIW[10]


Т.е. тут у нас очень широкие команды, которые упаковываются в один процессорный такт, если не работают с памятью, которую придется ждать (если не в кеше). Но на сколько они щироки? Большинство современных процессоров суперскалярны и умеют любой код таким образом параллелить, есть такая штука, как SMT(АМД) - симуляция многопоточности на одном ядре. У Интела это называется Hyper Threading. Технология реализует на конвейере одного ядра одновременно выполняются команд разных потоков, сгруппированных специальным сложным аппаратным механизмом процессора. Для Эльбруса компилятор произведет такую оптимизацию и в некоторых случаях создаст "широкую команду", которая за такт пару-тройку инструкций, сгруппированных в этой команде, выполнит. В общем обычный софт будет работать на Эльбрусе долго и упорно, т.к. процессор неспособен ни ветвления предсказать, ни команды как-то иначе, чем это сделано в момент генерации машинного кода, сгруппировать. Именно по-этому от данной технологии в самых современных архитектурах давно отказались, т.к. сложно всем угодить и иметь в пакете код, оптимизированный для разных процессоров - пусть процессор сам его поймет и максимально хорошо выполнит.

Дальше там дана интересная таблица задержек на операциях с целыми и вещественными числами (не маленькая), выборки данных из кеша 1-3-го уровня (до 40 тактов) и чтения из памяти (в районе 100 тактов, что на 400-800 МГц весьма и весьма долго). Как я понял, никакого спекулятивного чтения из памяти, никакого предсказания ветвлений в этом процессоре нет. Все, что компилятор не оптимизирует, будет выполняться не быстро.


Основное, что нужно понять здесь, так это то, что такое этот пресловутый параллелизм. А это просто группировка команд для быстрого выполнения в широкую команду. Это та самая суперскалярность. Но если современные процессоры Intel и AMD умеют динамически перестраивать инструкции х86 в оптимальную последовательность одновременного выполнения, то Эльбрус тут без оптимизирующей компиляции "даст маху", ибо неспособен ни на что подобное. Ну и при частоте в 10 раз медленнее конкурентов даже четыре инструкции за такт будет выполняться в два с половиной раза дольше, чем одна инструкция за такт вообще никак не оптимизированного кода на Intel или AMD.
Serega-artem; akim2040; +2 Ответить
3. Perfolenta 193 08.06.20 18:52 Сейчас в теме
(1) про систему команд они давно говорили, что как только основной заказчик в лице гос.органов разрешит, так сразу и опубликуют... а до этого, несколько лет, её можно было получить по специальному запросу...
а ПО можно было давно писать на С, С++ и многих других языках, что многие и делали...
Оставьте свое сообщение

См. также

Топ языков программирования с самым большим сообществом разработчиков

Новость Аналитика ИТ-новость Языки программирования

Аналитики британской фирмы SlashData, изучающей сообщества разработчиков, выпустили ежегодный отчёт State of the Developer Nation, в котором описывают аудиторию 14 популярных языков программирования.

вчера в 14:11    1458    SKravchenko    0       

Кроссплатформенный эмулятор запустил старые Windows-программы в браузере

Новость Интернет ИТ-новость

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

05.05.2021    2703    VKuser24342747    0       

Apple обязала разработчиков использовать новый фреймворк AppTrackingTransparency

Новость iOS ИТ-новость Мобильные приложения

Компания Apple выпустила серию обновлений для разработчиков приложений. Требования, связанные с переходом на iOS 14.5, предполагают использование фреймворка AppTrackingTransparency для повышения прозрачности сбора пользовательских данных.

05.05.2021    1664    user1015646    0       

Теперь в Docker и в Linux: расширилась поддержка процессоров Apple M1

Новость Linux ИТ-новость

Ядро Linux получило начальную поддержку процессоров M1 производства Apple. Инструмент для развертывания и работы с контейнерами Docker также научился работать с ними.

04.05.2021    2871    user1015646    0       

Ctrl+C, Ctrl+V: эксперты подсчитали, насколько часто разработчики копируют чужой код

Новость Аналитика ИТ-новость Языки программирования

Популярный форум для разработчиков Stack Overflow в течение двух недель собирал статистику нажатий Ctrl+C или Command+C при копировании кода и других ответов. Но то, что задумывалось как первоапрельская шутка, стало в итоге серьёзным исследованием.

04.05.2021    1826    user1015646    0       

Олдскульный Yayagram: разработчик создал для бабушки гаджет для общения в Telegram

Новость ИТ-новость Мессенджеры

Когда интернет еще не изобрели, абонентов соединяли телефонистки, переключая кабели в нужные гнезда. Разработчик Мануэль Лусио Далло вдохновился этим примером и создал для своей 96-летней бабушки гаджет для общения с родными в Telegram.

30.04.2021    3865    user1015646    1       

Квантовая сеть между Москвой и Петербургом заработает во втором квартале 2021 года

Новость ИТ-новость Телекоммуникации

«Транстелеком», дочерняя компания РЖД, завершила строительство квантовой сети между Москвой и Санкт-Петербургом. После запуска проект можно будет использовать для защищенного обмена данными.

30.04.2021    2990    VKuser24342747    0       

Chrome 90 позволит делиться ссылками на фрагмент текста

Новость Интернет ИТ-новость

Google представила новую функцию для Chrome 90, которая позволит создавать ссылку на выделенную часть текста на странице в браузере.

30.04.2021    2099    SKravchenko    2       

Минцифры требует обеспечить возможность удаления предустановленных российских приложений

Новость Законодательство Импортозамещение ИТ-новость Минкомсвязь Мобильные приложения

Минцифры готовит поправки к закону об обязательной предустановке ПО, которые обяжут производителей устройств обеспечить возможность полностью удалить программы.

28.04.2021    2626    VKuser24342747    1       

Ubuntu 21.04 обеспечит интегрированную поддержку Microsoft SQL Server и Active Directory

Новость Ubuntu MS SQL ИТ-новость

Компания Canonical представила Ubuntu 21.04, которая получила название «Hirsute Hippo». Релиз содержит интеграцию с Microsoft Active Directory, SDK для разработки приложений Flutter и поддерживает локальную работу Microsoft SQL Server.

28.04.2021    3462    capitan    1       

Доступна тестовая версия дистрибутива Linux, внешне похожего на Windows 10X

Новость Linux ИТ-новость

Команда разработчиков операционной системы Zorin OS представила бета-версию Zorin OS 16. Ирландский дистрибутив Linux объединяет Flatpak, Snap Store и репозиторий Ubuntu. Он имитирует внешний вид Windows 10X, сохраняя при этом функциональность Linux.

27.04.2021    3949    SKravchenko    1       

«Яндекс» представил веб-приложение для работы с текстом и таблицами

Новость ИТ-новость Новости компаний Облачные технологии Яндекс

«Яндекс» запустил сервис «Документы» для создания и редактирования текстовых файлов, таблиц и презентаций в облаке. Услуга входит в состав набора офисных решений «Яндекс 360».

27.04.2021    4767    VKuser24342747    2       

Искусственный интеллект научился находить проблемы в коде

Новость Искусственный интеллект ИТ-новость

Исследователи из МТИ разработали систему глубокого машинного обучения для поиска проблем в коде ПО. Она станет основой инструментов автоматического анализа, которые помогут найти и устранить слабые места в IDE для создания программ.

27.04.2021    3692    user1015646    3       

Microsoft разрешит сторонние платежные системы в своем магазине

Новость Windows ИТ-новость Новости компаний Онлайн-торговля

Microsoft готовит перезапуск собственного магазина приложений Microsoft Store. Релиз будет представлен вместе со следующим крупным обновлением Windows и сделает требования для программ в маркетплейсе мягче.

26.04.2021    1995    VKuser24342747    0       

В Windows 10 появилась поддержка Linux-приложений с графическим интерфейсом

Новость Windows Linux ИТ-новость

Microsoft добавит возможность запускать в Windows 10 приложения для Linux с графическим интерфейсом. Опробовать новую функцию можно уже сейчас, используя тестовую сборку ОС.

26.04.2021    4420    VKuser24342747    2       

Linux Shell научился превращать естественный язык в команды

Новость Linux Искусственный интеллект ИТ-новость

Энтузиаст обучил нейросеть OpenAI распознавать вводимые пользователем фразы в Linux Shell и превращать их в bash-команды. Похожее расширение также появилось и для игрового движка Unity3D.

23.04.2021    3224    VKuser24342747    0       

Visual Studio 2022 получит возможность использовать более 4 ГБ памяти

Новость ИТ-новость Новости компаний Языки программирования

Microsoft рассказала о главных обновлениях в новой Visual Studio 2022. Опробовать предварительную версию среду разработки от американского ИТ-гиганта можно будет уже в этом году.

23.04.2021    2424    VKuser24342747    3       

Да здравствует Logica: Google представил новый язык программирования

Новость Google ИТ-новость Языки программирования

Компания Google разработала новый язык для логического программирования – Logica. В его основе – наработки запущенного ранее проекта Yedalog и языка Datalog для программирования декларативной логики.

21.04.2021    4260    user1015646    8       

Российские компании создадут космический дата-центр на орбите

Новость Дата-центры ИТ-новость Новости компаний

Компании RuVDS и Orbital Express договорились принять участие в совместном проекте по запуску орбитального центра обработки данных. Сервер в открытый космос будет доставлен на отечественной ракете «Союз».

20.04.2021    2875    VKuser24342747    0       

Бизнес отделяет ИТ-структуры ради налоговых льгот

Новость ИТ-новость Налоги Новости компаний

С 1 января 2021 года в РФ вступил в силу налоговый маневр, который обеспечивает льготы для ИТ-отрасли. Чтобы воспользоваться ими, крупные корпорации стали переформатировать свои ИТ-подразделения в отдельные компании.

20.04.2021    1949    user1015646    0       

Михаил Мишустин предложил создать стартап-школы при российских вузах

Новость ИТ-новость Стартапы Цифровая экономика

Премьер-министр Михаил Мишустин посетил Московский авиационный институт. Отвечая на вопрос одного из студентов, председатель правительства заявил о необходимости создания школ стартапов.

19.04.2021    2436    VKuser24342747    4       

В сервис для управления проектами Asana добавили русский язык

Новость ИТ-новость Управление проектами

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

19.04.2021    2931    user1015646    0       

У Google Docs появился российский конкурент

Новость Интернет ИТ-новость

Разработчики офисного пакета «Мой офис» представили бесплатные версии текстового редактора и электронных таблиц. Пользоваться ими можно прямо в браузере.

16.04.2021    2190    user1015646    3       

Microsoft планирует вносить свой вклад в экосистему Java

Новость ИТ-новость

Американская компания представила тестовый бесплатный дистрибутив OpenJDK с открытым исходным кодом. В скором времени ИТ-гигант обещает представить релизную версию продукта.

16.04.2021    1320    VKuser24342747    0       

Google Database Migration Service стал доступен для всех

Новость MySQL PostgreSQL Google Интеграция Интернет ИТ-новость

Компания Google открыла всем пользователям бесплатный доступ к сервису Database Migration Service. Это позволит компаниям провести миграцию своих баз из MySQL. PostgreSQL и других платформ в облако Cloud SQL без выделения дополнительных ресурсов.

15.04.2021    5152    user1015646    0