Эльбрус (процессорная архитектура)
«Эльбрус» (также известная как Эльбрус 2000 или E2K) — процессорная архитектура и одноимённое семейство универсальных VLIW-микропроцессоров, разрабатываемых российской компанией МЦСТ при участии ИНЭУМ, продолжая развитие процессорных технологий советских вычислительных комплексов «Эльбрус». Является оригинальной отечественной архитектурой высокопроизводительных вычислительных комплексов, впоследствии микропроцессоров.
Краткое описание
Первые работы над архитектурой были предприняты в 1986 году коллективом Института точной механики и вычислительной техники имени С. А. Лебедева (ИТМиВТ), где ранее были разработаны такие советские высокопроизводительные комплексы, как «Эльбрус-1» и «Эльбрус-2». В 1991 году под руководством Б. А. Бабаяна создан вычислительный комплекс «Эльбрус-3». В его основу впервые были положены идеи явного управления параллелизмом операций (EPIC) с помощью компилятора, что позволило добиться высокой производительности и энергоэффективности.
Из-за распада СССР разработчики ВК «Эльбрус-3» не успели закончить наладку комплекса. В 1992 году коллектив разработчиков создал компанию ЗАО «МЦСТ», приступив к работам над воплощением в жизнь микропроцессорной архитектуры.
Ключевые особенности
В таких традиционных архитектурах, как RISC или CISC (х86, ARM, MIPS, PowerPC, SPARC), происходит поступление потока инструкций на вход процессора, рассчитанные на последовательное исполнение. Процессор определяет независимые операции, запускает их параллельно (суперскалярность) и меняет их порядок (внеочередное исполнение). Тем не менее у поддержки внеочередного исполнения и у динамического анализа зависимостей есть свои ограничения, поскольку современные процессоры обладают способностью за один такт анализировать и запускать до 4—8 команд, в то время как соответствующими блоками процессора потребляется значительное количество энергии.
Основная работа в анализе зависимостей и оптимизации порядка операций в архитектуре «Эльбрус» происходит посредством компилятора. На вход процессору поступают «широкие команды» (VLIW), каждая из которых содержит закодированные инструкции, применяющиеся во всех исполнительных устройствах процессора, которые следует запускать на определённом такте. Процессору не нужно делать анализ зависимостей, существующих между операндами, или менять местами операции между широкими командами, поскольку за это отвечает компилятор, планирующий ресурсы процессора заранее при анализе исходного кода. Благодаря этому аппаратуру процессора можно сделать экономичнее и проще.
Компилятор находит больше независимых операций и гораздо тщательнее производит анализ исходного кода, нежели аппаратура RISC/CISC-процессора, поскольку не ограничен рамками жёсткого реального времени; этим обусловлено то, что в архитектуре «Эльбрус» содержится больше, чем в «обычных» архитектурах, параллельно работающих исполнительных устройств. Она показывает непревзойдённую архитектурную скорость на многих алгоритмах.
У архитектуры «Эльбрус» есть следующие возможности:
- работающие параллельно 6 каналов арифметико-логических устройств (АЛУ.
- в регистровом файле содержится 256 84-разрядных регистров.
- Аппаратная поддержка циклов, включая конвейеризацию, благодаря чему возможно повышение эффективности применения ресурсов процессора.
- Асинхронное устройство программируемой предварительной подкачки данных, имеющее отдельные каналы считывания. Позволяет полнее использовать АЛУ и скрыть задержки доступа к памяти.
- Поддержка однобитовых предикатов и спекулятивных вычислений, благодаря чему уменьшается число переходов, а также возможно параллельное исполнение нескольких ветвей программы до вычисления значения условного выражения.
- Широкая команда, обладающая способностью в случае максимального заполнения задать до 25 операций за один такт (при упаковке операндов в векторные команды происходит до 48 операций).
Производительность на реальных задачах
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
Важность поддержки программного обеспечения, которое было написано для архитектуры Intel х86, была понятна ещё на этапе постановки задачи заказчиком. Для этого сделали систему динамической трансляции в коды процессора Эльбрус двоичных кодов Intel х86. Система двоичной трансляции образует виртуальную машину, внутри которой происходит работа гостевой операционной системы для архитектуры Intel х86. Наличие нескольких уровней оптимизации позволяет достичь высокой скорости работы оттранслированного кода, а успешный запуск на платформе Эльбрус более двадцати различных операционных систем, включая несколько версий Microsoft Windows) и сотен приложений подтверждает высокое качество эмуляции архитектуры х86.
Защищённый режим исполнения программ
От систем «Эльбрус-1» и «Эльбрус-2» была взята идея защищённого исполнения программ[5], суть которого заключается в обеспечении работы программы только лишь с инициализированными данными, с проверкой принадлежности к допустимому диапазону адресов всех обращения поступивших в память, а также в обеспечении межмодульной защиты (например, защита от ошибки в библиотеке вызывающей программы). Данные проверки осуществляются аппаратным способом. Библиотека поддержки времени исполнения и полноценный компилятор обеспечивают работу в защищённом режиме.
У МП Эльбрус при работе в обычном «незащищённом» режиме есть особенности, которые также повышают надёжность и безопасность системы, поскольку стек связующей информации, представляющий собой цепочку адресов возврата при процедурных вызовах, находится отдельно от стека пользовательских данных, а значит, недоступен для подмены адреса возврата. Кроме того, по-прежнему неизвестны двоичные вирусы для платформы «Эльбрус».
Поддерживаемые ОС
В основном на ВК «Эльбрус» применяются различные варианты дистрибутивов Linux, начиная с ОС Эльбрус; также перенесены ОСРВ Нейтрино (вариант Нейтрино-Э[6]) и Embox.
Примечания
- ↑ Маркин А. Процессор Эльбрус — почему статья о тупике несостоятельна // Хабр, 30.08.2021
- ↑ Как мы переносили современные игры на процессор Эльбрус-8С
- ↑ Как я собрал себе домашний «Эльбрус» и как было надо
- ↑ Видеозапись Михаила Шигорина
- ↑ 11. Режим безопасных вычислений
- ↑ ЗОСРВ «Нейтрино-Э» КПДА.10965-01
Ссылки
- Краткое описание архитектуры Эльбрус (официальный сайт)