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

Post on 15-Jun-2015

949 Views

Category:

Internet

20 Downloads

Preview:

Click to see full reader

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: mcst@mcst.ru

www.mcst.ru

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

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

E-mail: trushkin_k@mcst.ru

top related