Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
DESCRIPTION
Доклад Константина Трушкина на HighLoad++ 2014.TRANSCRIPT
Ликбез по ЭльбрусуСостояние продуктовой линейки на сегодня, ключевые особенности архитектуры Эльбрус, производительность, планы на будущее
Константин Трушкин, ЗАО МЦСТ
Что делает МЦСТ
Исследования в области архитектуры микропроцессоров
Разработка микропроцессоров (архитектура, верификация, физическое проектирование)
Разработка вычислительных комплексов Разработка оптимизирующих и бинарных
компиляторов Разработка операционных систем
Что сделано на сегодня
Архитектурные разработки Архитектура Эльбрус
Процессоры 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]