1. Ликбез по Эльбрусу
Состояние продуктовой линейки на сегодня,
ключевые особенности архитектуры Эльбрус,
производительность, планы на будущее
Константин Трушкин,
ЗАО МЦСТ
2. Что делает МЦСТ
Исследования в области архитектуры
микропроцессоров
Разработка микропроцессоров (архитектура,
верификация, физическое проектирование)
Разработка вычислительных комплексов
Разработка оптимизирующих и бинарных
компиляторов
Разработка операционных систем
3. Что сделано на сегодня
Архитектурные разработки
Архитектура Эльбрус
Процессоры SPARC 3-х поколений
МЦСТ-R1000: 1ГГц, 4 ядра SPARC V9
Процессоры Эльбрус 4-х поколений
Эльбрус-2С+, 500 МГц, 2 ядра «Эльбрус» + 4 ядра
DSP, 90 нм
Эльбрус-4С, 800 МГц, 4 ядра «Эльбрус», 65 нм
Южный мост КПИ
4. МЦСТ R1000
Тактовая частота – 1000 МГц
4 ядра SPARC V9
2 MB L2$
1 канал DDR2-800
3 межпроцессорных канала (2 * 2 ГБ/с)
1 канал I/O (2 * 1 ГБ/с).
Суммарная производительность 4-х ядер:
8/16 Gflops (FP64/FP32)
Количество транзисторов – 180 млн
Рассеиваемая мощность – 15 Вт
Технология – 90 нм, 10 слоев металла
Площадь кристалла - 128 мм2
5. Эльбрус - 2C+ Тактовая частота – 500 МГц
2 ядра «Эльбрус»,
2 * 1 MB L2$
2 канала DDR2-800
4 ядра DSP
3 межпроцессорных канала (2 * 2 ГБ/с)
2 канала I/O (2 * 1 ГБ/с).
Суммарная производительность:
2-х ядер «Эльбрус» - 8/16 Gflops (FP64/FP32)
4-х ядер DSP - 12 Gflops (FP32)
Количество транзисторов – 368 млн
Рассеиваемая мощность – 25 Вт
Технология – 90 нм, 9 слоев металла
Площадь кристалла - 289 мм2
6. Процессор прошёл
испытания в марте
2014 года
Тактовая частота 800 МГц, 4 ядра
L2$ 8 МБ
3 канала DDR3-1600
3 межпроцессорных канала (по 12 ГБ/с)
До 4 процессоров в системе
1 канал IO-link (4 ГБ/с)
Улучшения в микроархитектуре
Поддержка многопоточной двоичной трансляции x86-64
Улучшенная поддержка многопроцессорности
Средства энергосбережения
380 мм2, 968 млн транзисторов
65 нм, среднее энергопотребление 45 Вт
Эльбрус-4С
7. Тактовая частота – 250 МГц КПИ
Дуплексный канал I/O-link (4 ГБ/с).
Интерфейсы
PCI Express 1.0a x8
PCI 2.3 (33/66 МГц, 32/64 бит)
Gigabit Ethernet,
4 * SATA 2.0,
2 * USB 2.0
RS 232/485, IEEE1284, Audio, SPI, I2C, GPIO
Количество транзисторов – 30 млн
Рассеиваемая мощность – 5 Вт
Технология – 130 нм, 9 слоев металла
Размер кристалла – 112 мм2
8. Многопроцессорность
Объединение до 4
процессоров на общей
памяти через когерентные
межпроцессорные каналы
без привлечения
дополнительной
аппаратуры
Связь «каждый с
каждым» минимизирует
задержки обращения к
памяти в соседних узлах
Возможность добавления в
систему дополнительных
Структура: cache-coherent NUMA «южных мостов»
9. Программное обеспечение
Операционная система на базе ядра Linux (2.6.33 –
3.10)
Улучшенный real-time
Сертификация (2й класс НСД, 2й класс НДВ)
Инструменты разработчика
Оптимизирующие компиляторы (C, C++, Fortran)
Отладчик, профилировщик, binutils
Пользовательское ПО
Дистрибутив, близкий к Debian
Firefox, LibreOffice, Gimp, Postgresql, Apache, …
Бинарный компилятор x86->Elbrus (системы, приложений)
11. Асинхронная предподкачка
Устройство асинхронной
подкачки данных (AAU)
Асинхронная
программа
Кэш 2-го уровня
(L2$)
Оперативная память
Арифметико-логические
устройства (ALU)
Регистровый файл (RF)
Основная программа
Буфер предварит.
подкачки данных (APB)
данные асинхронные
данные
адреса
Вычисляет адреса
Подкачивает данные
Управляет синхронной
подкачкой данных
12. Конвейеризованные циклы
prologue
counter
epilogue
counter
…
loop counter
iteration
stage
time
stage of stores
stage of loads
stores
disabled
loads
disabled
Переименование регистров в цикле
Поддержка пролога и эпилога
Спекулятивные вычисления и предикаты
13. Подготовленные переходы
3 дополнительных конвейера
(фронт-энды), работающие
параллельно с основным
конвейером
Переключение на
дополнительный конвейер по
условию без потери тактов
Отсутствуют ошибки
предсказателя переходов
Main pipeline
256
I$
CT condition
D
S
CT
Preparation pipelines
B
CTP
main target x 3
14. Пиковая производительность
лин.уч. циклы
Int (8) / FP (9) / St (2) / Ld (4) - 10 + +
Обработка предикатов - 3 + +
Передача управления - 1 + +
Загрузка литерала 32/64 - 4/2 +
Асинхронная загрузка в РФ - 4 +
Адресная арифметика - 4 +
Обработка счетчика цикла - 1 +
----------------------------------------------------------------------------------------
Всего: 18/16 23
15. Компиляторы
C/C++
ISO/IEC 14882:2003 C++
ISO/IEC 9899:1999 С
Поддежка GNU расширений - gcc 4.4
Fortran 77, 90
Java-машина – OpenJDK 6 (в разработке)
«Компилятор приложений» для х86-
совместимых бинарных файлов (Linux)
16. Компилятор С/С++
Более 300 оптимизаций: локальные, межмодульные,
глобальные
Анализ и разрыв зависимостей (dam, rtmd, srtmd)
Цикловые оптимизации (unroll, fuse, loop2scalar, interchange, unswitching,
конвейеризация и накрутка, splitting, …)
Преобразование условий (if-conversion)
Оптимизация расположения массивов в памяти
Программный префетч, использование аппаратного буфера предзагрузки
...
Векторизация (на линейных участках, цикловая, в т.ч. для
циклов с рекуррентностями)
Автоматическое распараллеливание (на общей памяти)
Поддержка OpenMP 3.0
24. Библиотеки для HPC
EML – более 1000 функций
Векторные вычисления
Линейная алгебра
Обработка сигналов
Обработка изображений
MPI (MPICH2-1.1.1)
25. Плата «Монокуб»
Процессор Эльбрус-2С+, 500 МГц
Два канала DDR2-800
PCI-Express x 16 (разведено x8)
8 * USB 2.0, 4 * SATA 2.0,
VGA + DVI на базе SM718
Gigabit Ethernet, RS-232, Audio, CF
miniITX (170mm x 170mm)
ВК Монокуб-РС
26. Процессор Эльбрус-4С, 800 МГц
Три канала DDR3-1600
PCI-Express x 16 (разведено x8)
Два слота PCI
8 * USB 2.0, 4 * SATA 2.0 (один –
mSATA диск)
VGA + DVI на основе SM718
Gigabit Ethernet, 2*RS-232, Audio, CF
microATX
АРМ Эльбрус-4С
27. Стоечный сервер 3U
Сервер на базе процессоров Эльбрус-4С
4 процессора Эльбрус-4С (4 ядра, 800 МГц), 2 моста КПИ
Оперативная память: 24 модуля DIMM DDR3
Интерфейсы: SATA 2.0 – 8 каналов, Gigabit Ethernet – 2
канала, PCI Express 1.0 x8 – 2 слота, PCI – 2 слота
Высота корпуса 3U / 2 U, в перспективе – 1 U
28. Стоечный сервер 1U
4 процессора Эльбрус-4С
12 модулей памяти DDR3
2 южных моста КПИ
2 х Gigabit Ethernet
2x слот PCI Express x 8
8 каналов SATA 2.0
Слот расширения с 2
линками ввода-вывода для
спец. карт
29. 2015: Эльбрус-8С
1.3…1.5 ГГц, 8 ядер
До 25 операций в такт
L2$ 8*512КБ, L3$ 16 МБ
4 канала DDR3-1600
3 межпроцессорных
канала
1 канал IO-link v.2 (2 * 8
ГБ/с)
31. 2015: Эльбрус-1С+
1 ГГц, 1 ядро
До 25 операций в такт
L2$ 2МБ
2 канала DDR3-1600
Встроенное 2D/3D
видеоядро
1 канал IO-link v.2 (2 * 8
ГБ/с)
Эльбрус-1С+
32. Доверенная платформа Эльбрус
Hardware
BIOS
OS
Application
Application
Application
√
√
√
√
Описание аппаратуры - в виде RTL(Verilog), поддержка от разработчиков
Средства разработки и BIOS предоставляются в исх. кодах
√
33. Ошибки и уязвимости
Распределение уязвимостей АСУ ТП по типам
Отчёт «Безопасность промышленных
систем в цифрах v2.1», Positive Technologies, 2012
В архитектуре Эльбрус стек вызовов защищён аппаратно.
34. «Защищённый режим» исполнения
«Защищённый режим» процессора Эльбрус аппаратно
контролирует run-time ошибки программы в работе с памятью
и гарантирует целостность указателей
Аппаратно контролируются ошибки:
Обращение за границы объекта (массива)
Обращение по «зависшему» указателю (dangling pointer)
Чтение неинициализированных данных
Pointer forging
Замедление работы программ – около 20%
35. «Защищённый режим» исполнения
разм. | смещ. | адрес
Теги данных
дескриптор массива
числовое значение
неинициализированные
данные
3.14
4096
разм. | смещ. | адрес
public | private | t | адрес
разм. | смещ. | адрес
25
31
разм. | смещ. | адрес
дескриптор массива
массив, область стека
адрес
смещение
Массив, область стека
размер
дескриптор
массива
адрес
разм.
36. Защищённые вычисления: проблемы
В существующих программах массово используются непереносимые
приёмы программирования, не регламентированные стандартом языка
В существующих программах много скрытых ошибок
Высокая скорость изменения базы кодов Open Source
Нет чёткого спроса на перенос в «защищённый режим» какой-либо
конкретной подсистемы
Отсутствие нормативной базы, регламентирующей преимущества от
использования средств runtime отладки
Требуется масштабная программа рефакторинга ПО для исправления
ошибок и перевода в «защищённый режим»
37. СПАСИБО ЗА
ВНИМАНИЕ!
Константин Трушкин
тел.+7 (499) 135-0593
E-mail: trushkin_k@mcst.ru
ЗАО МЦСТ
тел.+7 (495) 363-9665
Факс +7 (495) 363-9599
E-mail: mcst@mcst.ru
www.mcst.ru