E2K‑ в переводе из буквенного сочетания обозначает Эльбрус 2000. Архитектура «Эльбрус» — оригинальная российская разработка. Ключевые черты архитектуры «Эльбрус» — энергоэффективность и высокая производительность, достигаемые при помощи задания явного параллелизма операций. Основывается на архитектуре VLIW+EPIC.
На данный момент архитектура Е2К развилась до 6 поколения, в него входят Эльбрус 16с, Эльбрус 12с, Эльбрус 2с3 (на данный момент реализован Эльбрус 2с3, а Эльбрус 16с находится на стадии тестирования). Также был представлен процессор Эльбрус 32с, он будет относится к 7 поколению, то‑есть E2K V7. На данный момент есть реализованные процессоры E2K V4 и E2K V5. Ниже представлена таблица с не упомянутыми процессорами:
Хотелось бы выделить отличия процессоров Эльбрус 8С и Эльбрус 16С чтобы посмотреть, меняется ли в процессорах что-либо от поколения к поколению или нет. Смотрим:
1. Изменение структуры шины процессоров
Как можно заметить по структуре Эльбруса 8С в этом процессоре применяется кольцевая шина, подобно процессорам Intel. Межъядерная связь ядер осуществляется через кэш L3, тут же можно заметить разделение на 2 блока.
Перейдём к процессору Эльбрус 16С
Благодаря 2-ум этим схемам можно заметить отличия в структуре шины. Например, сразу можно заметить, то что МЦСТ решила перейти от системы кольцевой шины, новая система больше напоминает MESH который используется у Intel.
Такая структура шины позволяет наращивать количество ядер в процессоре без особо ущерба. Говоря про ущерб я имею ввиду, то что кольцевая шина имеет проблемы при общении между ядрами, это отображалось в тесте core-to-core latency (intercore).
В данной таблице наглядно показывается, то что чем дальше удалены ядра друг от друга, тем выше задержки.
Говоря про это изменения в Эльбрусе и переход к структуре MESH, я считаю что это правильное решение т.к продолжать использовать систему кольцевой шины вряд-ли бы представлялось возможным. Кольцевая шина имеет ограничение на количество ядер, с каждым последующим наращиванием числа ядер приходится масштабировать шину, при этом масштабировании теряется скорость и возрастают задержки. Переход на структуру MESH позволит далее наращивать количество ядер не задумываясь о масштабировании системы шины.
Для того чтобы статья получилось не нагромождённой кратко упомяну следующие отличия в процессорах которые как мне выделяются.
2. Новый контроллер памяти
Процессор Эльбрус 16С получил контроллер памяти DDR4. Сам же процессор имеет 8 каналов памяти, про 12С и 2С3 сказать не могу так как в кристалле их не видел.
3. Интеграция южного моста под крышку
Начиная с E2K V6 процессоры перестали требовать наличия на платы КПИ-2 для работы, начиная с этого поколения южный мост перенесён под крышку и находится в одном кристалле с ядрами.
4. Все процессоры поддерживают векторные вычисления
В МЦСТ было принято решение отказаться от модификации СВ (буква В обозначала векторный) в связи с тем что все процессоры начиная с версии архитектуры 6 имеют в базе поддержку такого типа вычислений. Поэтому не имеет смысла ждать и надеться на то что мы когда-то увидим Эльбрус 16СВ.
Не решённые проблемы Эльбруса
Закончим на этом тему нововведений, хотелось бы выделить те моменты которые до сих пор не решены (тоже выделил самое важное на мой взгляд):
Низкая частота процессора. Как бы не говорилось о том что VLIW+EPIC заточены на суперскалярность и параллелизм задач в данный момент времени существует много программ которые плохо параллелятся или в принципе не параллелятся, такие программы требовательны к IPC (количество выполненный инструкций за такт,). Путь решения этой проблемы заключается (на мой взгляд, вероятнее всего через время найду и другие способы решения): увеличение частоты процессора чтобы получить более высокий IPS (количество инструкций за секунду) чтобы «скрасить>>> проблемное место; дальнейшее улучшение одноядерной производительности чтобы таких проблем возникало меньше и дать временное решение насчёт возможности компилятора параллелить инструкции на ядра.
ПНС. Программа начального старта может мешать в дальнейшем улучшить конфигурацию ПК/СХД на базе Эльбруса так как ПНС содержит в себе перечень устройств которые могут работать с процессором. Как недавний пример проявления этой проблемы могу назвать, то что не так давно Эльбрус не мог работать с видеокартами выше чем AMD Vega 64.
Проблема с компилятором. Не буду тут сильно распинаться так как по большей части описал в пункте проблемы низкой частоты процессора, лишь отмечу что сама по себе поддержка многих ЯП недоступна, программы оптимизируются силами энтузиастов (есть энтузиасты которые планировали добавить поддержку Rust и Go в Е2К). Отдельно думаю стоит упомянуть, то что в версии архитектуры Е2К V7 вероятнее всего стоит ждать улучшения работы с языком программирования Python (предполагаю не только его, а в принципе с интерпретируемыми ЯП).