Эльбрус/архитектура: различия между версиями

Материал из ALT Linux Wiki
Строка 45: Строка 45:
* [https://habr.com/ru/company/smartengines/blog/317672/ Оптимизация кода для платформы Эльбрус на простых примерах]
* [https://habr.com/ru/company/smartengines/blog/317672/ Оптимизация кода для платформы Эльбрус на простых примерах]
* [https://habr.com/ru/company/jugru/blog/419155/ Портирование JS на Эльбрус]
* [https://habr.com/ru/company/jugru/blog/419155/ Портирование JS на Эльбрус]
* [https://habr.com/ru/company/oleg-bunin/blog/584628/ Архитектура и особенности процессора Эльбрус 2000]
* [https://github.com/smxi/inxi/issues/197 inxi: Elbrus CPU support data and implementation]
* [https://github.com/smxi/inxi/issues/197 inxi: Elbrus CPU support data and implementation]
* [http://trueconf.ru/blog/wiki/chto-takoe-proczessor-elbrus Что такое процессор "Эльбрус"? История создания. Где применяется?]
* [http://trueconf.ru/blog/wiki/chto-takoe-proczessor-elbrus Что такое процессор "Эльбрус"? История создания. Где применяется?]

Версия от 17:04, 26 октября 2021

Elbrus arch.jpg

Архитектура "Эльбрус"

Оригинальная 64-битная Little Endian VLIW; также известна как "Эльбрус-2000" (сокращённо e2k).

Не путать со SPARC и иными RISC, а также x86 (CISC).

Архитектура ядра Эльбрус

Версии

Микропроцессоры "Эльбрус" различаются версиями микроархитектуры и системы команд; на январь 2021 года известны следующие:

Совместимость

В процессе портирования Альта была отмечена отличная практическая совместимость процессоров четвёртого поколения с бинарным кодом e2kv3, включая ядро, видеоподсистему и даже бинарный транслятор; официально она не гарантируется, хотя неофициально и подтверждается.

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

При сборке под e2k для производительности и совместимости следует применять компилятор, настроенный под конкретную версию архитектуры (начиная с lcc 1.23 -- возможна настройка и под конкретный процессор).

При этом разница по 7za b, собранным под v3 и v4, на v4 составила у нас порядка процента.

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

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

Ссылки

  1. нет поддержки в OSL после 3.0-rc35, где ядро 3.14.79 и компилятор 1.21.25