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

Материал из ALT Linux Wiki
мНет описания правки
Строка 8: Строка 8:


[[Модели процессоров Эльбрус|Микропроцессоры "Эльбрус"]] различаются версиями микроархитектуры и системы команд; на июль 2019 года известны следующие:
[[Модели процессоров Эльбрус|Микропроцессоры "Эльбрус"]] различаются версиями микроархитектуры и системы команд; на июль 2019 года известны следующие:
* v2: "Эльбрус-2С+", "Эльбрус-2СМ" (устарела)
* v2: "Эльбрус-2С+", "Эльбрус-2СМ" <small>(устарела с лета 2018, нет поддержки в OSL после 3.0-rc35, где ядро 3.14.79 и компилятор 1.21.25)</small>
* '''v3: "Эльбрус-4С" (предыдущая)''' ''<small>e4c, он же e2s</small>''
* '''v3: "Эльбрус-4С" (предыдущая)''' ''<small>e4c, он же e2s</small>''
* '''v4: "Эльбрус-8С", "Эльбрус-1С+" (актуальная)''' ''<small>e8c, он же p1; и e1cp, он же e1c или p2</small>''
* '''v4: "Эльбрус-8С", "Эльбрус-1С+" (актуальная)''' ''<small>e8c, он же p1; и e1cp, он же e1c+ или p2</small>''
* v5: "Эльбрус-8СВ" (инженерные образцы, расширенные векторные вычисления) ''<small>e8c2, он же p9</small>''
* v5: "Эльбрус-8СВ" (инженерные образцы, расширенные векторные вычисления) ''<small>e8c2, он же p9</small>''
* v6: "Эльбрус-16С", "Эльбрус-12С", "Эльбрус-2С3" ([https://www.youtube.com/watch?v=f_hwK0zM9y8&t=24m25s с аппаратной виртуализацией]) ''<small>e16c, e12c, e2c3</small>''
* v6: "Эльбрус-16С", "Эльбрус-12С", "Эльбрус-2С3" ([https://www.youtube.com/watch?v=f_hwK0zM9y8&t=24m25s с аппаратной виртуализацией]) ''<small>e16c, e12c, e2c3</small>''

Версия от 04:30, 26 ноября 2020

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

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

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

Версии

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

  • v2: "Эльбрус-2С+", "Эльбрус-2СМ" (устарела с лета 2018, нет поддержки в OSL после 3.0-rc35, где ядро 3.14.79 и компилятор 1.21.25)
  • v3: "Эльбрус-4С" (предыдущая) e4c, он же e2s
  • v4: "Эльбрус-8С", "Эльбрус-1С+" (актуальная) e8c, он же p1; и e1cp, он же e1c+ или p2
  • v5: "Эльбрус-8СВ" (инженерные образцы, расширенные векторные вычисления) e8c2, он же p9
  • v6: "Эльбрус-16С", "Эльбрус-12С", "Эльбрус-2С3" (с аппаратной виртуализацией) e16c, e12c, e2c3

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

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

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

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

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

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

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

Ссылки