Ликбез по Эльбрусу Состояние продуктовой линейки на сегодня, ключевые особенности архитектуры Эльбрус, производительность, планы на будущее Константин Трушкин, ЗАО МЦСТ
Ликбез по ЭльбрусуСостояние продуктовой линейки на сегодня, ключевые особенности архитектуры Эльбрус, производительность, планы на будущее
Константин Трушкин, ЗАО МЦСТ
Что делает МЦСТ
Исследования в области архитектуры микропроцессоров
Разработка микропроцессоров (архитектура, верификация, физическое проектирование)
Разработка вычислительных комплексов Разработка оптимизирующих и бинарных
компиляторов Разработка операционных систем
Что сделано на сегодня
Архитектурные разработки Архитектура Эльбрус
Процессоры SPARC 3-х поколений МЦСТ-R1000: 1ГГц, 4 ядра SPARC V9
Процессоры Эльбрус 4-х поколений Эльбрус-2С+, 500 МГц, 2 ядра «Эльбрус» + 4
ядра DSP, 90 нм Эльбрус-4С, 800 МГц, 4 ядра «Эльбрус», 65 нм
Южный мост КПИ
МЦСТ R1000 Тактовая частота – 1000 МГц
4 ядра SPARC V92 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
Эльбрус - 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
Процессор прошёл испытания в марте
2014 года
Тактовая частота 800 МГц, 4 ядра L2$ 8 МБ 3 канала DDR3-1600 3 межпроцессорных канала (по 12
ГБ/с)До 4 процессоров в системе
1 канал IO-link (4 ГБ/с) Улучшения в микроархитектуре
Поддержка многопоточной двоичной трансляции x86-64
Улучшенная поддержка многопроцессорности Средства энергосбережения
380 мм2, 968 млн транзисторов 65 нм, среднее энергопотребление 45
Вт
Эльбрус-4С
КПИ Тактовая частота – 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
Многопроцессорность
Объединение до 4 процессоров на общей памяти через когерентные межпроцессорные каналы без привлечения дополнительной аппаратуры
Связь «каждый с каждым» минимизирует задержки обращения к памяти в соседних узлах
Возможность добавления в систему дополнительных «южных мостов»Структура: cache-coherent NUMA
Программное обеспечение Операционная система на базе ядра Linux
(2.6.33 – 3.10) Улучшенный real-time Сертификация (2й класс НСД, 2й класс НДВ)
Инструменты разработчика Оптимизирующие компиляторы (C, C++, Fortran) Отладчик, профилировщик, binutils
Пользовательское ПО Дистрибутив, близкий к Debian Firefox, LibreOffice, Gimp, Postgresql, Apache, … Бинарный компилятор x86->Elbrus (системы,
приложений)
Структура м/п Эльбрус
Асинхронная предподкачка
Устройство асинхронной подкачки данных (AAU)
Асинхронная программа
Кэш 2-го уровня (L2$)
Оперативная память
Регистровый файл (RF)
Основная программа
Арифметико-логические устройства (ALU)
Буфер предварит. подкачки данных (APB)
данные асинхронныеданные
адреса
Вычисляет адресаПодкачивает данные
Управляет синхроннойподкачкой данных
Конвейеризованные циклы
prologuecounter epilogue
counter
…
loop counter
iterationstage
time
stage of stores
stage of loads
storesdisabled
loadsdisabled
Переименование регистров в цикле Поддержка пролога и эпилога Спекулятивные вычисления и предикаты
Подготовленные переходы
3 дополнительных конвейера (фронт-энды), работающие параллельно с основным конвейером
Переключение на дополнительный конвейер по условию без потери тактов
Отсутствуют ошибки предсказателя переходов
I$
S
D
CT conditionCT
Preparation pipelines
Main pipelineB
CTPtarget x 3main
256
Пиковая производительность
лин.уч. циклы
Int (8) / FP (9) / St (2) / Ld (4) - 10 + +Обработка предикатов - 3 +
+Передача управления - 1 + +Загрузка литерала 32/64 - 4/2 +Асинхронная загрузка в РФ - 4 +Адресная арифметика - 4 +Обработка счетчика цикла - 1 +---------------------------------------------------------------------------------
-------Всего: 18/16 23
Компиляторы
C/C++ ISO/IEC 14882:2003 C++ ISO/IEC 9899:1999 С Поддежка GNU расширений - gcc 4.4
Fortran 77, 90 Java-машина – OpenJDK 6 (в разработке) «Компилятор приложений» для х86-
совместимых бинарных файлов (Linux)
Компилятор С/С++ Более 300 оптимизаций: локальные, межмодульные,
глобальные Анализ и разрыв зависимостей (dam, rtmd, srtmd) Цикловые оптимизации (unroll, fuse, loop2scalar, interchange,
unswitching, конвейеризация и накрутка, splitting, …) Преобразование условий (if-conversion) Оптимизация расположения массивов в памяти Программный префетч, использование аппаратного буфера
предзагрузки ...
Векторизация (на линейных участках, цикловая, в т.ч. для циклов с рекуррентностями)
Автоматическое распараллеливание (на общей памяти)
Поддержка OpenMP 3.0
Сглаживание по 7 точкам – простой алгоритм
Сглаживание по 7 точкам – простой алгоритм
Сглаживание по 7 точкам – оптимизированный алгоритм
Сглаживание по 7 точкам – оптимизированный алгоритм
Intel(R) Core(TM) i5 CPU 650
Эльбрус-2С+ Отношение
Частота 3.20 ГГц 500 МГЦ 6.4
Простой алгоритм
3016ms 7356ms 2.4
Оптимизированный алгоритм
2551ms 4666ms 1.8
Компилятор gcc 4.6 x86-64 lcc, вер. 18
Сводная таблица результатов
SPEC CPU 2000 Int (peak)
0
200
400
600
800
1000
1200
1400
1600
1800
2000
164.gzip 175.vpr 176.gcc 181.mcf 186.crafty 197.parser 252.eon 253.perlbmk 254.gap 255.vortex 256.bzip2 300.tw olf Геом.ср.
Atom D510/1660 МГц МЦСТ R1000/1000 МГц Эльбрус-2С+/500 МГц
Pentium-M/1000 МГц Эльбрус-4С+/800 МГц (прогноз)
SPEC CPU2000 INT
SPEC CPU2000 FPSPEC CPU 2000 FP (peak)
0
500
1000
1500
2000
2500
3000
3500
4000
168.w upw ise 171.sw im 172.mgrid 173.applu 177.mesa 179.art 183.equake 188.ammp 200.sixtrack 301.apsi Геом.ср.
Atom D510/1660 МГц МЦСТ R1000/1000 МГц Эльбрус-2С+/500 МГц
Core2Duo E6300/1860 МГц Эльбрус-4С+/800 МГц (прогноз)
540611251
18001
4982
Библиотеки для HPC
EML – более 1000 функцийВекторные вычисленияЛинейная алгебраОбработка сигналовОбработка изображений
MPI (MPICH2-1.1.1)
Плата «Монокуб»
Процессор Эльбрус-2С+, 500 МГц
Два канала DDR2-800PCI-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)
ВК Монокуб-РС
Процессор Эльбрус-4С, 800 МГцТри канала DDR3-1600PCI-Express x 16 (разведено x8)Два слота PCI 8 * USB 2.0, 4 * SATA 2.0 (один –
mSATA диск) VGA + DVI на основе SM718Gigabit Ethernet, 2*RS-232,
Audio, CF microATX
АРМ Эльбрус-4С
Сервер на базе процессоров Эльбрус-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
Стоечный сервер 3U
Стоечный сервер 1U
4 процессора Эльбрус-4С 12 модулей памяти DDR3
2 южных моста КПИ 2 х Gigabit Ethernet 2x слот PCI Express x 8
8 каналов SATA 2.0 Слот расширения с 2
линками ввода-вывода для спец. карт
2015: Эльбрус-8С 1.3…1.5 ГГц, 8 ядер До 25 операций в такт L2$ 8*512КБ, L3$ 16
МБ 4 канала DDR3-1600 3 межпроцессорных
канала 1 канал IO-link v.2 (2 *
8 ГБ/с) 28 нм, ??? Вт
2015: КПИ-2 IO-Link v.2 (2 * 8 ГБ/с) PCI Express 2.0 x20 3 * Gigabit Ethernet 8 * SATA 3.0 8 * USB 2.0 32 * GPIO ... 65 нм, макс. 15 Вт
2015: Эльбрус-1С+ 1 ГГц, 1 ядро До 25 операций в такт L2$ 2МБ 2 канала DDR3-1600 Встроенное 2D/3D
видеоядро 1 канал IO-link v.2 (2 * 8
ГБ/с) 40 нм, ~10 Вт
Эльбрус-1С+
Доверенная платформа Эльбрус
Hardware
BIO
S
Описание аппаратуры - в виде RTL(Verilog), поддержка от разработчиковСредства разработки и BIOS предоставляются в исх. кодах
OS
Application
Application
Application
√
√
√
√
√
Ошибки и уязвимости
Распределение уязвимостей АСУ ТП по типам
Отчёт «Безопасность промышленных систем в цифрах v2.1», Positive Technologies, 2012
В архитектуре Эльбрус стек вызовов защищён аппаратно.
«Защищённый режим» исполнения«Защищённый режим» процессора Эльбрус аппаратно
контролирует run-time ошибки программы в работе с памятью и гарантирует целостность указателей
Аппаратно контролируются ошибки:Обращение за границы объекта (массива)Обращение по «зависшему» указателю (dangling
pointer)Чтение неинициализированных данныхPointer forging
Замедление работы программ – около 20%
«Защищённый режим» исполнения
разм. | смещ. | адрес
дескриптор массива
числовое значение
неинициализированные данные
Теги данных
3.14
4096 разм. | смещ. | адрес public | private | t | адрес
разм. | смещ. | адрес
25
31 разм. | смещ. | адрес
дескриптор массива
массив, область стека
Массив, область стека
адрес
смещение
размер
адрес
дескриптор массива
разм.
Защищённые вычисления: проблемыВ существующих программах массово используются
непереносимые приёмы программирования, не регламентированные стандартом языка
В существующих программах много скрытых ошибокВысокая скорость изменения базы кодов Open SourceНет чёткого спроса на перенос в «защищённый режим» какой-либо
конкретной подсистемыОтсутствие нормативной базы, регламентирующей преимущества
от использования средств runtime отладки
Требуется масштабная программа рефакторинга ПО для исправления ошибок и перевода в «защищённый режим»
ЗАО МЦСТтел.+7 (495) 363-9665
Факс +7 (495) 363-9599E-mail: [email protected]
www.mcst.ru
СПАСИБО ЗА ВНИМАНИЕ!
Константин Трушкинтел.+7 (499) 135-0593
E-mail: [email protected]