Top Banner
Ликбез по Эльбрусу Состояние продуктовой линейки на сегодня, ключевые особенности архитектуры Эльбрус, производительность, планы на будущее Константин Трушкин, ЗАО МЦСТ
37

Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Jun 15, 2015

Download

Internet

Ontico

Доклад Константина Трушкина на HighLoad++ 2014.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Ликбез по ЭльбрусуСостояние продуктовой линейки на сегодня, ключевые особенности архитектуры Эльбрус, производительность, планы на будущее

Константин Трушкин, ЗАО МЦСТ

Page 2: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Что делает МЦСТ

Исследования в области архитектуры микропроцессоров

Разработка микропроцессоров (архитектура, верификация, физическое проектирование)

Разработка вычислительных комплексов Разработка оптимизирующих и бинарных

компиляторов Разработка операционных систем

Page 3: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Что сделано на сегодня

Архитектурные разработки Архитектура Эльбрус

Процессоры SPARC 3-х поколений МЦСТ-R1000: 1ГГц, 4 ядра SPARC V9

Процессоры Эльбрус 4-х поколений Эльбрус-2С+, 500 МГц, 2 ядра «Эльбрус» + 4

ядра DSP, 90 нм Эльбрус-4С, 800 МГц, 4 ядра «Эльбрус», 65 нм

Южный мост КПИ

Page 4: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

МЦСТ 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

Page 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

Page 6: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Процессор прошёл испытания в марте

2014 года

Тактовая частота 800 МГц, 4 ядра L2$ 8 МБ 3 канала DDR3-1600 3 межпроцессорных канала (по 12

ГБ/с)До 4 процессоров в системе

1 канал IO-link (4 ГБ/с) Улучшения в микроархитектуре

Поддержка многопоточной двоичной трансляции x86-64

Улучшенная поддержка многопроцессорности Средства энергосбережения

380 мм2, 968 млн транзисторов 65 нм, среднее энергопотребление 45

Вт

Эльбрус-4С

Page 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

Page 8: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Многопроцессорность

Объединение до 4 процессоров на общей памяти через когерентные межпроцессорные каналы без привлечения дополнительной аппаратуры

Связь «каждый с каждым» минимизирует задержки обращения к памяти в соседних узлах

Возможность добавления в систему дополнительных «южных мостов»Структура: cache-coherent NUMA

Page 9: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Программное обеспечение Операционная система на базе ядра Linux

(2.6.33 – 3.10) Улучшенный real-time Сертификация (2й класс НСД, 2й класс НДВ)

Инструменты разработчика Оптимизирующие компиляторы (C, C++, Fortran) Отладчик, профилировщик, binutils

Пользовательское ПО Дистрибутив, близкий к Debian Firefox, LibreOffice, Gimp, Postgresql, Apache, … Бинарный компилятор x86->Elbrus (системы,

приложений)

Page 10: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Структура м/п Эльбрус

Page 11: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Асинхронная предподкачка

Устройство асинхронной подкачки данных (AAU)

Асинхронная программа

Кэш 2-го уровня (L2$)

Оперативная память

Регистровый файл (RF)

Основная программа

Арифметико-логические устройства (ALU)

Буфер предварит. подкачки данных (APB)

данные асинхронныеданные

адреса

Вычисляет адресаПодкачивает данные

Управляет синхроннойподкачкой данных

Page 12: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Конвейеризованные циклы

prologuecounter epilogue

counter

loop counter

iterationstage

time

stage of stores

stage of loads

storesdisabled

loadsdisabled

Переименование регистров в цикле Поддержка пролога и эпилога Спекулятивные вычисления и предикаты

Page 13: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Подготовленные переходы

3 дополнительных конвейера (фронт-энды), работающие параллельно с основным конвейером

Переключение на дополнительный конвейер по условию без потери тактов

Отсутствуют ошибки предсказателя переходов

I$

S

D

CT conditionCT

Preparation pipelines

Main pipelineB

CTPtarget x 3main

256

Page 14: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Пиковая производительность

лин.уч. циклы

Int (8) / FP (9) / St (2) / Ld (4) - 10 + +Обработка предикатов - 3 +

+Передача управления - 1 + +Загрузка литерала 32/64 - 4/2 +Асинхронная загрузка в РФ - 4 +Адресная арифметика - 4 +Обработка счетчика цикла - 1 +---------------------------------------------------------------------------------

-------Всего: 18/16 23

Page 15: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Компиляторы

C/C++ ISO/IEC 14882:2003 C++ ISO/IEC 9899:1999 С Поддежка GNU расширений - gcc 4.4

Fortran 77, 90 Java-машина – OpenJDK 6 (в разработке) «Компилятор приложений» для х86-

совместимых бинарных файлов (Linux)

Page 16: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Компилятор С/С++ Более 300 оптимизаций: локальные, межмодульные,

глобальные Анализ и разрыв зависимостей (dam, rtmd, srtmd) Цикловые оптимизации (unroll, fuse, loop2scalar, interchange,

unswitching, конвейеризация и накрутка, splitting, …) Преобразование условий (if-conversion) Оптимизация расположения массивов в памяти Программный префетч, использование аппаратного буфера

предзагрузки ...

Векторизация (на линейных участках, цикловая, в т.ч. для циклов с рекуррентностями)

Автоматическое распараллеливание (на общей памяти)

Поддержка OpenMP 3.0

Page 17: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Сглаживание по 7 точкам – простой алгоритм

Page 18: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Сглаживание по 7 точкам – простой алгоритм

Page 19: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Сглаживание по 7 точкам – оптимизированный алгоритм

Page 20: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Сглаживание по 7 точкам – оптимизированный алгоритм

Page 21: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

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

Сводная таблица результатов

Page 22: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

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

Page 23: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

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

Page 24: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Библиотеки для HPC

EML – более 1000 функцийВекторные вычисленияЛинейная алгебраОбработка сигналовОбработка изображений

MPI (MPICH2-1.1.1)

Page 25: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Плата «Монокуб»

Процессор Эльбрус-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)

ВК Монокуб-РС

Page 26: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Процессор Эльбрус-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С

Page 27: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Сервер на базе процессоров Эльбрус-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

Page 28: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Стоечный сервер 1U

4 процессора Эльбрус-4С 12 модулей памяти DDR3

2 южных моста КПИ 2 х Gigabit Ethernet 2x слот PCI Express x 8

8 каналов SATA 2.0 Слот расширения с 2

линками ввода-вывода для спец. карт

Page 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 ГБ/с) 28 нм, ??? Вт

Page 30: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

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 Вт

Page 31: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

2015: Эльбрус-1С+ 1 ГГц, 1 ядро До 25 операций в такт L2$ 2МБ 2 канала DDR3-1600 Встроенное 2D/3D

видеоядро 1 канал IO-link v.2 (2 * 8

ГБ/с) 40 нм, ~10 Вт

Эльбрус-1С+

Page 32: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Доверенная платформа Эльбрус

Hardware

BIO

S

Описание аппаратуры - в виде RTL(Verilog), поддержка от разработчиковСредства разработки и BIOS предоставляются в исх. кодах

OS

Application

Application

Application

Page 33: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Ошибки и уязвимости

Распределение уязвимостей АСУ ТП по типам

Отчёт «Безопасность промышленных систем в цифрах v2.1», Positive Technologies, 2012

В архитектуре Эльбрус стек вызовов защищён аппаратно.

Page 34: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

«Защищённый режим» исполнения«Защищённый режим» процессора Эльбрус аппаратно

контролирует run-time ошибки программы в работе с памятью и гарантирует целостность указателей

Аппаратно контролируются ошибки:Обращение за границы объекта (массива)Обращение по «зависшему» указателю (dangling

pointer)Чтение неинициализированных данныхPointer forging

Замедление работы программ – около 20%

Page 35: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

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

разм. | смещ. | адрес

дескриптор массива

числовое значение

неинициализированные данные

Теги данных

3.14

4096 разм. | смещ. | адрес public | private | t | адрес

разм. | смещ. | адрес

25

31 разм. | смещ. | адрес

дескриптор массива

массив, область стека

Массив, область стека

адрес

смещение

размер

адрес

дескриптор массива

разм.

Page 36: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

Защищённые вычисления: проблемыВ существующих программах массово используются

непереносимые приёмы программирования, не регламентированные стандартом языка

В существующих программах много скрытых ошибокВысокая скорость изменения базы кодов Open SourceНет чёткого спроса на перенос в «защищённый режим» какой-либо

конкретной подсистемыОтсутствие нормативной базы, регламентирующей преимущества

от использования средств runtime отладки

Требуется масштабная программа рефакторинга ПО для исправления ошибок и перевода в «защищённый режим»

Page 37: Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)

ЗАО МЦСТтел.+7 (495) 363-9665

Факс +7 (495) 363-9599E-mail: [email protected]

www.mcst.ru

СПАСИБО ЗА ВНИМАНИЕ!

Константин Трушкинтел.+7 (499) 135-0593

E-mail: [email protected]