Развитие архитектуры процессоров Эльбрус: анализ моделей 8С и 16С

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

На данный момент архитектура Е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 блоков. Ниже будет представлен список процессоров и будут описаны некоторые характеристики не упомянутые мною в тексте..

Развитие архитектуры процессоров Эльбрус: анализ моделей 8С и 16С
Поколения Эльбрусов

Хотелось бы выделить отличия процессоров Эльбрус 8С и Эльбрус 16С чтобы посмотреть, меняется ли в процессорах что-либо от поколения к поколению или нет. Смотрим:

1. Изменение структуры шины процессоров

Структура процессора Эльбрус 8С
Структура процессора Эльбрус 8С

Как можно заметить по структуре Эльбруса 8С в этом процессоре применяется кольцевая шина, подобно процессорам Intel. Межъядерная связь ядер осуществляется через кэш L3, тут же можно заметить разделение на 2 блока, это подтверждает слова о том, что Эльбрус 8С состоит из 2-ух процессоров Эльбрус 4С (слегка модифицирован, например повышена частота)

Перейдём к процессору Эльбрус 16С

Структура процессорной связи OCN в Эльбрус 16С
Структура процессорной связи OCN в Эльбрус 16С
Коммутатор Tile
Коммутатор Tile

Благодаря 2-ум этим схемам можно заметить отличия в структуре шины. Например, сразу можно заметить, то что МЦСТ решила перейти от системы кольцевой шины, новая система больше напоминает MESH который используется у Intel

MESH шина у Intel
MESH шина у Intel

Такая структура шины позволяет наращивать количество ядер в процессоре без особо ущерба. Говоря про ущерб я имею ввиду, то что кольцевая шина имеет проблемы при общении между ядрами, это отображалось в тесте core-to-core latency (intercore)

Тест intercore I5-10600K
Тест intercore I5-10600K

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

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

Для того чтобы статья получилось не нагромождённой кратко упомяну следующие отличия в процессорах которые как мне выделяются

2. Новый контроллер памяти

Процессор Эльбрус 16С получил контроллер памяти DDR4. Сам же процессор имеет 8 каналов памяти, про 12С и 2С3 сказать не могу так как в кристалле их не видел

3. Интеграция южного моста под крышку

Начиная с E2K V6 процессоры перестали требовать наличия на платы КПИ-2 для работы, начиная с этого поколения южный мост перенесён под крышку и находится в одном кристалле с ядрами

4. Все процессоры поддерживают векторные вычисления

В МЦСТ было принято решение отказаться от модификации СВ (буква В обозначала векторный) в связи с тем что все процессоры начиная с версии архитектуры 6 имеют в базе поддержку такого типа вычислений. Поэтому не имеет смысла ждать и надеться на то что мы когда-то увидим Эльбрус 16СВ

Не решённые проблемы Эльбруса

Закончим на этом тему нововведений, хотелось бы выделить те моменты которые до сих пор не решены (тоже выделил самое важное на мой взгляд):

  1. Низкая частота процессора. Как бы не говорилось о том что VLIW+EPIC заточены на суперскалярность и параллелизм задач в данный момент времени существует много программ которые плохо параллелятся или в принципе не параллелятся, такие программы требовательны к IPC (количество выполненный инструкций за такт,). Путь решения этой проблемы заключается (на мой взгляд, вероятнее всего через время найду и другие способы решения): увеличение частоты процессора чтобы получить более высокий IPS (количество инструкций за секунду) чтобы «скрасить>>> проблемное место; дальнейшее улучшение одноядерной производительности чтобы таких проблем возникало меньше и дать временное решение насчёт возможности компилятора параллелить инструкции на ядра

  2. ПНС. Программа начального старта может мешать в дальнейшем улучшить конфигурацию ПК/СХД на базе Эльбруса так как ПНС содержит в себе перечень устройств которые могут работать с процессором. Как недавний пример проявления этой проблемы могу назвать, то что не так давно Эльбрус не мог работать с видеокартами выше чем AMD Vega 64

  3. Проблема с компилятором. Не буду тут сильно распинаться так как по большей части описал в пункте проблемы низкой частоты процессора, лишь отмечу что сама по себе поддержка многих ЯП недоступна, программы оптимизируются силами энтузиастов (есть энтузиасты которые планировали добавить поддержку Rust и Go в Е2К). Отдельно думаю стоит упомянуть, то что в версии архитектуры Е2К V7 вероятнее всего стоит ждать улучшения работы с языком программирования Python (предполагаю не только его, а в принципе с интерпретируемыми ЯП).

 

Источник

Читайте также