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

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

Upload: ontico

Post on 15-Jun-2015

949 views

Category:

Internet


20 download

DESCRIPTION

Доклад Константина Трушкина на HighLoad++ 2014.

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]