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

08.06.2020      25926

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

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

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

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

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

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

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

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

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

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

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


Автор:
Аналитик


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

ЗЫ: У всех производителей процессоров это в открытом доступе, иначе бы под них никто не стал бы писать софт - как его писать без документации?
2. burmsergey 16 08.06.20 17:30 Сейчас в теме
(1) В публикации неточное введение. Поэтому если прочитать только его (первые два предложения), то формируется оценка типа "аттракцион".
На самом деле по указанной ссылке расположено нечто большее: руководство по эффективному программированию на платформе «Эльбрус».
А описание системы команд занимает в нём только одну главу из 10.
4. starik-2005 3033 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 204 08.06.20 18:52 Сейчас в теме
(1) про систему команд они давно говорили, что как только основной заказчик в лице гос.органов разрешит, так сразу и опубликуют... а до этого, несколько лет, её можно было получить по специальному запросу...
а ПО можно было давно писать на С, С++ и многих других языках, что многие и делали...
Оставьте свое сообщение

См. также

В программу подготовки спортивных программистов вошли бег и скорость печати

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

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    644    VKuser24342747    2       

1

Росстандарт утвердил протокол LoRaWAN для интернета вещей

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

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    427    VKuser24342747    0       

2

Новый закон откладывает на год вступление в силу изменений в порядок регистрации на сайтах

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    607    VKuser24342747    2       

1

Вышло крупное обновление для Android Studio

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

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    719    VKuser24342747    2       

3

GitHub опубликовал результаты ежегодного исследования проектов с открытым исходным кодом

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

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    487    VKuser24342747    1       

2

Некоммерческие проекты смогут получить бесплатный доступ к GigaChat API

Новость ИТ-компания ИТ-Новость

Компания «Сбер» заявила, что будет бесплатно предоставлять доступ к API нейросети для генерации текста GigaChat для некоммерческих проектов. Однако для них будет ограничено число доступных токенов.

01.11.2023    602    VKuser24342747    2       

3

Состоялся релиз свободной среды разработки Geany 2.0

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    692    VKuser24342747    0       

1

Минцифры подготовило критерии по выбору оператора реестра провайдеров хостинга

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило проект постановления, которое утверждает требования к организации, претендующей на статус оператора реестра провайдеров хостинга.

25.10.2023    358    VKuser24342747    0       

1

Минцифры составило алгоритм действий для компаний, у которых не работает VPN

Новость Минцифры ИТ-Новость

Минцифры подготовило разъяснения для российских организаций, у которых возникли перебои в работе VPN-сервисов для клиентов и сотрудников из-за блокировки запрещенных ресурсов Роскомнадзором.

24.10.2023    612    VKuser24342747    0       

0

«Сбер» объявила о доступности SberLinux OS Server для российских компаний

Новость Импортозамещение ИТ-Новость

«СберТех», дочерняя компания «Сбера», объявила о предоставлении доступа к собственной серверной операционной системе SberLinux OS Server российским компаниям. ОС включена в реестр отечественного ПО.

20.10.2023    830    VKuser24342747    0       

2

Минцифры внесло изменения в проект правил идентификации клиентов веб-хостингов

Новость Минцифры ИТ-Новость Роскомнадзор

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

18.10.2023    456    VKuser24342747    0       

1

Google выпустила финальную версию Android 14

Новость Android Google ИТ-Новость

Google выпустила новую версию мобильной ОС Android 14. Изменения затронули настройки внешнего вида и безопасности. Были расширены возможности камеры и инструментов для хранения данных.

12.10.2023    672    VKuser24342747    0       

1

Яндекс объявил об открытии исходного кода DataLens

Новость Аналитика ИТ-Новость Яндекс

BI-система Yandex DataLens теперь развивается в опенсорс. Код продукта выложен для всех на GitHub. Любой желающий сможет развернуть DataLens на своем железе и доработать его под свои сценарии применения.

03.10.2023    1371    ЕленаЧерепнева    1       

6

Роскомнадзор создаст реестр хостинг-провайдеров

Новость Минцифры ИТ-Новость Роскомнадзор

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

02.10.2023    561    VKuser24342747    0       

1

«СберТех» представил репозиторий GitVerse с ИИ-помощником для написания кода

Новость Импортозамещение ИТ-Новость Программист

«СберТех» начал прием заявок на тестирование веб-сервиса для публикации ИТ-проектов GitVerse. Платформа подходит для разработки программ с открытым и закрытым кодом.

26.09.2023    768    VKuser24342747    2       

1

ИП и юрлица смогут использовать смартфон для создания и замены электронной подписи

Новость ИТ-Новость ФНС Цифровая подпись

ФНС внесла изменения в правила оформления электронной подписи руководителя организации и ИП. Станет возможным продлевать ее и записывать при помощи мобильного устройства.

18.09.2023    415    VKuser24342747    1       

1

Журнал IEEE Spectrum опубликовал рейтинг популярности языков программирования

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

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1262    VKuser24342747    4       

2

В бета-версии Microsoft 365 появилась поддержка языка Python для Excel

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

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    643    VKuser24342747    0       

2

Специалисты Калифорнийского университета установили, что боты справляются с CAPTCHA лучше, чем люди

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

Международная группа исследователей изучила эффективность тестов CAPTCHA. Ученые пришли к выводу, что технология больше мешает людям, потому что боты научились с ней справляться.

24.08.2023    1142    VKuser24342747    23       

2

Google Chrome начнет поддерживать квантово-устойчивые алгоритмы шифрования

Новость Google Безопасность ИТ-Новость

В версии Google Chrome 116 появится поддержка алгоритмов шифрования, устойчивых к попыткам дешифрации при помощи квантовых вычислений. Технология объединяет преимущества классической и инновационной криптографии.

24.08.2023    466    VKuser24342747    0       

1

В реестр российского ПО включен первый комплекс обработки больших данных

Новость Импортозамещение Минцифры ИТ-Новость Реестр ПО

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

22.08.2023    452    VKuser24342747    0       

1

Microsoft внедрила новые функции в GitHub Copilot и анонсировала Windows Copilot

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

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    1138    VKuser24342747    0       

1

В JetBrains разработали ИИ-помощника для аналитиков данных

Новость Аналитика Искусственный интеллект

JetBrains представила нейросеть Ask AI для онлайн-блокнота Datalore. Виртуальный ассистент способен генерировать код на нескольких языках, предлагать доработки и упрощать процесс аналитики данных. 

16.08.2023    651    VKuser24342747    0       

1

Исследование: ChatGPT дает неправильный ответ на половину вопросов о программировании

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

Чат-бот OpenAI ошибается в 52% случаев, когда отвечает на вопросы по программированию. Однако делает это так убедительно, что пользователи не замечают ошибки. 

14.08.2023    988    VKuser24342747    5       

3

Минцифры проведет эксперимент по цифровизации «жизненного цикла» госслужащего

Новость Минцифры ИТ-Новость

Минцифры подготовило постановление о проведении эксперимента по внедрению ИТ в управление «жизненным циклом» госслужащего. Ведомство намерено автоматизировать все этапы работы сотрудников госструктур.

04.08.2023    549    VKuser24342747    0       

2