презентацию в ppt

Download Report

Transcript презентацию в ppt

Операционная система Эльбрус и
микропроцессоры серии Эльбрус
в бортовых системах реального времени
Евгений Кравцунов,
Константин Трушкин
СБИС разработки МЦСТ
 Процессоры SPARC (RISC) 3-х поколений
 МЦСТ-R1000: 1ГГц, 4 ядра SPARC V9
 Процессоры Эльбрус (VLIW) 4-х поколений
 Эльбрус-2С+, 500 МГц, 2 ядра «Эльбрус» + 4
ядра DSP
 Эльбрус-4С, 800 МГц, 4 ядра «Эльбрус»
 Южный мост КПИ
Эльбрус-4С
Тактовая частота 800 МГц
4 ядра
 L2$ 8 МБ,
 До 23 операций/такт на ядро
3 канала памяти DDR3-1600
3 межпроцессорных канала (16 ГБ/с)
1 канал IO-link (4 ГБ/с)
Улучшения в микроархитектуре
 Количество транзисторов – 968 млн
 Рассеиваемая мощность – ~45 Вт
 Технология – 65 нм, 9 слоев металла
 Площадь кристалла - 380 мм2
Процессор прошёл
Государственные
испытания в марте 2014
года
Эльбрус-2СМ
 Тактовая частота 300 МГц,
2 ядра «Эльбрус»
 L2$ 2 * 1 МБ
 2 канала DDR2-533
 3 межпроцессорных канала (по 4 ГБ/с)
 2 канала IO-link (2 ГБ/с)
 Количество транзисторов: 300 млн
 Рассеиваемая мощность: ~20 Вт
 Технология: 90 нм, 10 слоёв металла
 Площадь кристалла: 320 мм2
 Производство на фабрике Микрон
Процессор завершил гос.
испытания в 2014 году
КПИ
 Тактовая частота – 250 МГц
 2 канала I/O (2 * 1 ГБ/с).
 Интерфейсы










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 Вт
Технология –
0.13 мкм, 9 слоев металла
Размер кристалла – 10,6х10,6 мм
Многопроцессорность
 Объединение до 4
процессоров на
общей памяти
(NUMA) через
когерентные
межпроцессорные
каналы без
привлечения
дополнительной
аппаратуры
 Возможность
добавления в
систему
дополнительных
«южных мостов»
Структура м/п Эльбрус
Пиковая производительность
лин.уч. циклы
Int (8) / FP (9) / St (2) / Ld (4)
- 10
+
+
Обработка предикатов
- 3
+
+
Передача управления
- 1
+
+
Загрузка литерала 32/64
- 4/2
+
Асинхронная загрузка в РФ
- 4
+
Адресная арифметика
- 4
+
Обработка счетчика цикла
- 1
+
---------------------------------------------------------------------------------------Всего:
18/16 23
SPEC CPU2000 INT
SPEC CPU 2000 Int (peak)
2000
1800
1600
1400
1200
1000
800
600
400
200
0
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 МГц
Pentium-M/1000 МГц
Эльбрус-4С+/800 МГц (прогноз)
Эльбрус-2С+/500 МГц
SPEC CPU2000 FP
SPEC CPU 2000 FP (peak)
4000
4982
11251 5406 18001
3500
3000
2500
2000
1500
1000
500
0
168.w upw ise 171.sw im
172.mgrid
173.applu
177.mesa
179.art
183.equake 188.ammp 200.sixtrack
Atom D510/1660 МГц
МЦСТ R1000/1000 МГц
Core2Duo E6300/1860 МГц
Эльбрус-4С+/800 МГц (прогноз)
301.apsi
Эльбрус-2С+/500 МГц
Геом.ср.
Сглаживание по 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
Компилятор
ВК на базе МП Эльбрус
2015: Эльбрус-8С
 1.3 ГГц
 8 ядер Эльбрус
 250 Гигафлопс
 L2$ 8*512КБ, L3$ 16 МБ
 4 канала памяти DDR3-1600
 3 межпроц. канала по 16 ГБ/с
 1 канал IO-link (16 ГБ/с)
 320 мм2, 2,7 млрд транзисторов
 28 нм, энергопотребление ~60 Вт
Получены первые
инженерные образцы
2015: КПИ-2
 1 канал IO-link (16 ГБ/с)
 PCI Express 2.0 x20
 3 * Gigabit Ethernet
 8 * SATA 3.0
 8 * USB 2.0
 32 * GPIO
 ...
 Технология 65 нм
 Энергопотребление 12 Вт
Получены первые
инженерные образцы
Сервер Эльбрус-8С
Сервер на базе четырёх
процессоров Эльбрус-8С
 4 процессора Эльбрус-8С
 Южный мост КПИ-2
 Оперативная память до 256
Гбайт на сервер
 Интерфейсы: SATA 3.0 – 8
каналов, Gigabit Ethernet – 3
канала, PCI Express 2.0 x20,
PCI, интерконнект
 Высота корпуса 1U
 Мощность сервера –
1 Терафлопс
 40 Тфлопс в стойке
Макетный образец
четырёхпроцессорного
сервера
Дорожная карта
Эльбрус-32С
Gflops SP
10 нм, 32я
4TF
Эльбрус-16С
16 нм, 8…16я
0,5 … 1TF
1000
Эльбрус-8С
28 нм, 8я
250GF
250GF
Эльбрус-8СМ
32 нм, 8я
100
Эльбрус-4С
65 нм, 4я
50GF
Эльбрус-4СМ
Эльбрус-1С+ 65 нм, 4я
40 нм, 1я + GPU 50GF
24GF
Эльбрус-2СМ
Индексом «М» (зелёным цветом) отмечены модели,
планируемые к выпуску на отечественной фабрике
Микрон (Зеленоград)
90 нм, 2я
10GF
10
2016
2017
2018
2019
2020
2021
2014
2015
TSMC
28
16
10
7
4
Микрон
90
65
45
32
20
Ошибки и уязвимости
Распределение уязвимостей АСУ ТП по типам
Отчёт «Безопасность промышленных
систем в цифрах v2.1», Positive Technologies, 2012
Память приложения
«Защищённый режим»: контроль
ошибок во время исполнения
Аппаратно контролируются ошибки программы в работе с
памятью и гарантируется целостность указателей
 Обращение за границы объекта (массива)
 Обращение по указателю на уже освобождённую память
объекта, закончившего жизненный цикл
 Чтение неинициализированных данных
 Обращение по неадресным данным как по указателю
Результат:
 Рост производительности труда программиста – на порядок
 Возможность создавать надёжные программы,
устойчивые к кибернетическим атакам
 Замедление скорости работы программ – около 20%
Защищённый режим Эльбруса.
Структура дескриптора
Структура машинного слова в памяти:
32 bit
2 bit
Данные или часть дескриптора
Теги
Значения тегов: 00 - Неинициализированное
10 – Данные, 01 и 11 - Часть дескриптора
Дескриптор:
32 bit
40 bit
32 bit
24 bit
8 bit
Текущее
положение
База
Граница
Время жизни +
служебные биты
Теги
128 bit
Защищённый режим Эльбруса.
Использование дескриптора
адрес
дескриптор массива
массив, область стека
смещение
3.14
разм. | смещ. | адрес
4096
размер
разм. | смещ. | адрес
public | private | t | адрес
дескриптор
массива
Теги данных
25
дескриптор массива
разм. | смещ. | адрес
числовое значение
неинициализированные
данные
Массив, область стека
разм.
31
разм. | смещ. | адрес
адрес
Межмодульная защита
/* модуль A */
int a;
extern int b;
/* экспорт в модуль B
/* импорт из модуля B
*/
*/
extern void g(); /* импорт из модуля B */
static void f(); /* внутренняя модуля А */
/* модуль B
extern int
int
static int
*/
a;
b;
c;
Модуль A
…
f2 int a;
);
ссылка на
f3();
b;
ссылка на g;
данные
/* импорт из модуля A */
/* экспорт в модуль A */
/* внутренняя модуля B */
Контексты модулей A и B
• объявленные в них объекты и функции
• ссылки на объекты и функции других модулей
Контексты модулей A и B не пересекаются
ссылка на a;
int b;
int c;
данные
void g();
void f();
void g(); /* экспорт в модуль A */
static void h(); /* внутренняя модуля B */
Модуль B
код
void h();
код
Межмодульная защита
дескрипторы
модулей
тип функции
функции
модуля
локальные
данные
функции
код
данные
типы
стек
типы модулей
типы модуля
глобальные
данные
модуля
Каждому модулю соответствует свой дескриптор
Дескриптор модуля хранится при исполнении на аппаратных регистрах,
недоступных пользователю
При вызове функции другого модуля происходит смена дескриптора модуля
«Защищённый режим»: контроль
ошибок во время исполнения
… но если нарушить
правила, под угрозой
будет безопасность
всей вычислительной
машины
Исполнение
программ на
обычном
компьютере –
как езда по шоссе
с разметкой. Пока
все программы
действуют без
ошибок «по
правилам», всё
хорошо работает…
Защищённый режим –
как разделитель: даёт
«железные» гарантии,
что все корректно
работающие
программы будут в
безопасности
ОС Эльбрус
Основана на ядре Linux
2.6.33
Встроена поддержка
режима реального времени
Средства разработки –
компиляторы С/С++/Fortran,
Java-машина (OpenJDK 6)
Используется структура пакетов Debian
Отпортировано более 3000 базовых
пакетов из набора Debian 5.0 (Lenny)
и многие другие, в том числе:
•
•
•
•
LibreOffice 3.6
Firefox 3.6.28
PostgreSQL 9.2
Qt 5.0
Двоичный транслятор приложений:
слой кросс-архитектурной
виртуализации x86<->Elbrus,
совместимый с эмулятором WINE