Эльбрус (процессорная архитектура)

Эта статья написана в рамках энциклопедии Руниверсалис и находится в стадии проработки и развития
Материал из энциклопедии Руниверсалис

«Эльбрус» (также известная как Эльбрус 2000 или E2K) — процессорная архитектура и одноимённое семейство универсальных VLIW-микропроцессоров, разрабатываемых российской компанией МЦСТ при участии ИНЭУМ, продолжая развитие процессорных технологий советских вычислительных комплексов «Эльбрус». Является оригинальной отечественной архитектурой высокопроизводительных вычислительных комплексов, впоследствии микропроцессоров.

Краткое описание

Первые работы над архитектурой были предприняты в 1986 году коллективом Института точной механики и вычислительной техники имени С. А. Лебедева (ИТМиВТ), где ранее были разработаны такие советские высокопроизводительные комплексы, как «Эльбрус-1» и «Эльбрус-2». В 1991 году под руководством Б. А. Бабаяна создан вычислительный комплекс «Эльбрус-3». В его основу впервые были положены идеи явного управления параллелизмом операций (EPIC) с помощью компилятора, что позволило добиться высокой производительности и энергоэффективности.

Из-за распада СССР разработчики ВК «Эльбрус-3» не успели закончить наладку комплекса. В 1992 году коллектив разработчиков создал компанию ЗАО «МЦСТ», приступив к работам над воплощением в жизнь микропроцессорной архитектуры.

Ключевые особенности

"Различие подходов к компилированию и выполнению кода на x86 и e2k"

В таких традиционных архитектурах, как RISC или CISC (х86, ARM, MIPS, PowerPC, SPARC), происходит поступление потока инструкций на вход процессора, рассчитанные на последовательное исполнение. Процессор определяет независимые операции, запускает их параллельно (суперскалярность) и меняет их порядок (внеочередное исполнение). Тем не менее у поддержки внеочередного исполнения и у динамического анализа зависимостей есть свои ограничения, поскольку современные процессоры обладают способностью за один такт анализировать и запускать до 4—8 команд, в то время как соответствующими блоками процессора потребляется значительное количество энергии.

Основная работа в анализе зависимостей и оптимизации порядка операций в архитектуре «Эльбрус» происходит посредством компилятора. На вход процессору поступают «широкие команды» (VLIW), каждая из которых содержит закодированные инструкции, применяющиеся во всех исполнительных устройствах процессора, которые следует запускать на определённом такте. Процессору не нужно делать анализ зависимостей, существующих между операндами, или менять местами операции между широкими командами, поскольку за это отвечает компилятор, планирующий ресурсы процессора заранее при анализе исходного кода. Благодаря этому аппаратуру процессора можно сделать экономичнее и проще.

Компилятор находит больше независимых операций и гораздо тщательнее производит анализ исходного кода, нежели аппаратура RISC/CISC-процессора, поскольку не ограничен рамками жёсткого реального времени; этим обусловлено то, что в архитектуре «Эльбрус» содержится больше, чем в «обычных» архитектурах, параллельно работающих исполнительных устройств. Она показывает непревзойдённую архитектурную скорость на многих алгоритмах.

У архитектуры «Эльбрус» есть следующие возможности:

  • работающие параллельно 6 каналов арифметико-логических устройств (АЛУ.
  • в регистровом файле содержится 256 84-разрядных регистров.
  • Аппаратная поддержка циклов, включая конвейеризацию, благодаря чему возможно повышение эффективности применения ресурсов процессора.
  • Асинхронное устройство программируемой предварительной подкачки данных, имеющее отдельные каналы считывания. Позволяет полнее использовать АЛУ и скрыть задержки доступа к памяти.
  • Поддержка однобитовых предикатов и спекулятивных вычислений, благодаря чему уменьшается число переходов, а также возможно параллельное исполнение нескольких ветвей программы до вычисления значения условного выражения.
  • Широкая команда, обладающая способностью в случае максимального заполнения задать до 25 операций за один такт (при упаковке операндов в векторные команды происходит до 48 операций).
"Устройство процессора Эльбрус"


Производительность на реальных задачах

"Производительность SPEC 2000 на задачах с плавающей запятой"
"Производительность SPEC 2000 на целочисленных задачах"

2014

На диаграммах представлена производительность процессора Эльбрус-2С+ (2011) при решении задач из пакета SPEC 2000 в сравнении с процессорами Intel Atom D510 (1,66 ГГц, кэш-память 1 Мб, DDR2-800) и Intel Pentium-M ULV (1 ГГц, кэш-память 1 Мб, 2хDDR-266).

В качестве данных для Intel Pentium-M ULV была использована информация с сайта spec.org и задействован компилятор ICC 9.1. Замер производительности процессора Intel Atom D510 осуществлялся самими сотрудниками МЦСТ с привлечением собственной сборки тестов SPEC.

При этом следует учесть, что согласно правилам комитета SPEC запрещено делать модификацию исходных кодов тестов. На практике было показано, что у архитектуры Эльбрус есть значительный резерв производительности, который можно использовать, если в критических участках сделать модификацию исходного кода.


2021

Также доступны данные SPEC CPU 2006/2017 по текущим серийным моделям отечественных процессоров «Эльбрус» и «Байкал» по состоянию на 2022 год:[1]

Процессор Частота, МГц Архитектура SPEC CPU 2006 SPEC CPU 2017 Выпущен
Байкал-M1000 1500 armv8 56.70 / 55.7 7.92 / 8.01 2019
Эльбрус-8С 1300 e2kv4 80.07 / 92.98 9.60 / 13.38 2016
Эльбрус-8СВ 1500 e2kv5 102.55 / 122.25 10.68 / 16.55 2018

2024

Из более близких к пользователю тестов: перенесённая игра War Thunder[2] на «Эльбрус-16С» с видеокартой Radeon RX 580[3] в разрешении 4К выдаёт[4] ~40--60 кадров в секунду.

Эмуляция архитектуры х86

"Эмуляция x86 на e2k"

Важность поддержки программного обеспечения, которое было написано для архитектуры Intel х86, была понятна ещё на этапе постановки задачи заказчиком. Для этого сделали систему динамической трансляции в коды процессора Эльбрус двоичных кодов Intel х86. Система двоичной трансляции образует виртуальную машину, внутри которой происходит работа гостевой операционной системы для архитектуры Intel х86. Наличие нескольких уровней оптимизации позволяет достичь высокой скорости работы оттранслированного кода, а успешный запуск на платформе Эльбрус более двадцати различных операционных систем, включая несколько версий Microsoft Windows) и сотен приложений подтверждает высокое качество эмуляции архитектуры х86.

Защищённый режим исполнения программ

От систем «Эльбрус-1» и «Эльбрус-2» была взята идея защищённого исполнения программ[5], суть которого заключается в обеспечении работы программы только лишь с инициализированными данными, с проверкой принадлежности к допустимому диапазону адресов всех обращения поступивших в память, а также в обеспечении межмодульной защиты (например, защита от ошибки в библиотеке вызывающей программы). Данные проверки осуществляются аппаратным способом. Библиотека поддержки времени исполнения и полноценный компилятор обеспечивают работу в защищённом режиме.

У МП Эльбрус при работе в обычном «незащищённом» режиме есть особенности, которые также повышают надёжность и безопасность системы, поскольку стек связующей информации, представляющий собой цепочку адресов возврата при процедурных вызовах, находится отдельно от стека пользовательских данных, а значит, недоступен для подмены адреса возврата. Кроме того, по-прежнему неизвестны двоичные вирусы для платформы «Эльбрус».

Поддерживаемые ОС

В основном на ВК «Эльбрус» применяются различные варианты дистрибутивов Linux, начиная с ОС Эльбрус; также перенесены ОСРВ Нейтрино (вариант Нейтрино-Э[6]) и Embox.

Примечания

Ссылки