Найти в Дзене
Данил Волокитин

Архитектура Е2К

E2K- в переводе из буквенного сочетания обозначает Эльбрус 2000. Архитектура «Эльбрус» - оригинальная российская разработка. Ключевые черты архитектуры «Эльбрус» - энергоэффективность и высокая производительность, достигаемые при помощи задания явного параллелизма операций. Основывается на архитектуре VLIW и входит в семейство RISC процессоров.
2.1 Примеры процессоров
На данный момент архитектура Е2К развилась до 6 поколения, в него входят Эльбрус 16с, Эльбрус 12с, Эльбрус 2с3 (на данный момент реализован Эльбрус 2с3, а Эльбрус 16с находится на стадии тестирования). Также был представлен процессор Эльбрус 32с, он будет относится к 7 поколению, то-есть E2K V7. На данный момент есть реализованные процессоры E2K V4 и E2K V5: Эльбрус 4с, Эльбрус 8с, Эльбрус 8св. Самый распространённым является Эльбрус 8с, он является улучшенным Эльбрус 4с и имеет 3 версии: Эльбрус 8с-стандарный и появился самым первым среди 8 ядерных, Эльбрус 8с1-более удачные образцы которые имеют бол

E2K- в переводе из буквенного сочетания обозначает Эльбрус 2000. Архитектура «Эльбрус» - оригинальная российская разработка. Ключевые черты архитектуры «Эльбрус» - энергоэффективность и высокая производительность, достигаемые при помощи задания явного параллелизма операций. Основывается на архитектуре VLIW и входит в семейство RISC процессоров.

2.1 Примеры процессоров
На данный момент архитектура Е2К развилась до 6 поколения, в него входят Эльбрус 16с, Эльбрус 12с, Эльбрус 2с3 (на данный момент реализован Эльбрус 2с3, а Эльбрус 16с находится на стадии тестирования). Также был представлен процессор Эльбрус 32с, он будет относится к 7 поколению, то-есть E2K V7. На данный момент есть реализованные процессоры E2K V4 и E2K V5: Эльбрус 4с, Эльбрус 8с, Эльбрус 8св. Самый распространённым является Эльбрус 8с, он является улучшенным Эльбрус 4с и имеет 3 версии: Эльбрус 8с-стандарный и появился самым первым среди 8 ядерных, Эльбрус 8с1-более удачные образцы которые имеют более высокую производительность за счёт увеличенных частот ядра и других модулей, Эльбрус 8св-самый сильный из 8 ядерного семейства, отличается не только возросшими частотами, но и реализацией векторных вычислений с помощью внедрения VEC блоков.

2.2 Различия от архитектуры CISC to RISC.
Основным отличием от архитектуры E2K от CISC to RISC является ширина длины команды инструкции, в E2K она может достигать до 512 бит. Такая инструкция собирается из более мелких инструкций. Для выполнения такой задачи нужно иметь хорошо проработанный компилятор LCC, конкретно проработанный для архитектуры Е2К. Это нужно для того чтобы подготавливать новую длинную инструкцию во время выполнения старой, также стоит упомянуть что многопоток в таких процессорах определяется на уровне составления инструкции в отличии от процессоров других архитектур.
Следующее отличие выражается в частотах процессоров, точнее в зависимости от частоты. Процессоры архитектуры Е2К не так сильно зависимы от частот т.к относится к RISC семейству, в этом семействе процессоров гораздо выгоднее улучшать микроархитектурную часть процессора чем просто наращивать частоты, ведь такое средство наращивания производительности плохо сказывается на системах где нет возможности устанавливать массивные системы охлаждения, тенденцию этого прослеживаются в архитектуре АРМ которая забирает всю большую часть рынка (ноутбуки, моноблоки, сервера, схд).


2.3 Поддерживаемые языки программирования.
"Из коробки" поддерживается классический набор языков программирования -- C, C++ и Fortran. Их компиляция реализована посредством компилятора eLbrus Compiler Collection, совместимого с популярным открытым проектом GNU Compiler Collection. Также предпринимается попытка расширения набора поддерживаемых языков программирования с помощью портирования LLVM - популярной низкоуровневой виртуальной машины, позволяющей создавать языки программирования без написания кода генерации ассемблера на конкретный набор инструкций - достаточно генерировать особый ассемблер LLVM, а виртуальная машина сама его переведёт на машинный язык выбранного процессора. На основе этой виртуальной машины построены многие популярные языки программирования, такие как Rust, Go, Crystal, Nim. Портирование затрудняет тот факт, что процессор Эльбрус построен на архитектуре VLIW, в то время как поддерживаемые на данный момент процессоры в LLVM в основном построены на архитектурах CISC и RISC. Поддерживаются многие интерпретируемые языки программирования, не требующие компиляции JIT. Эта технология затрудняет портирование ибо она на лету компилирует интерпретируемый язык в машинный код и загружает в память, однако это делается с учётом того, что для большинства современных процессоров компиляция проходит быстро, а Эльбрус требует множество оптимизаций во время компиляции, что полностью лишает смысла данное ухищрение. Тем не менее, некоторые языки с технологией JIT удалось запустить, например LuaJIT.



2.4 Нововведения которые отсутствуют в других архитектурах
Сейчас процессоры проектируются с учётом того что нужно иметь высокую производительность в многопотоке (в параллелизме), чтобы иметь способы правильно распараллелить задачу на ядра. В Эльбрусе как мы уже знаем для этой задачи есть компилятор, чего не скажешь о других процессорах.
Большая инструкция (большая длина)- архитектура VLIW подразумевает длинную инструкцию разбитую на ядра, в отличии от новых архитектур, arm- имеет короткую инструкцию.