Операционная система Эльбрус и микропроцессоры серии Эльбрус в бортовых системах реального времени Евгений Кравцунов, Константин Трушкин
СБИС разработки МЦСТ Процессоры SPARC (RISC) 3-х поколений МЦСТ-R1000: 1ГГц, 4 ядра SPARC V9 Процессоры Эльбрус (VLIW) 4-х поколений Эльбрус-2С+, 500 МГц, 2 ядра «Эльбрус» + 4 ядра DSP Эльбрус-4С, 800 МГц, 4 ядра «Эльбрус» Южный мост КПИ
Процессор прошёл Государственные испытания в марте 2014 года Тактовая частота 800 МГц 4 ядра L2$ 8 МБ, До 23 операций/такт на ядро 3 канала памяти DDR межпроцессорных канала (16 ГБ/с) 1 канал IO-link (4 ГБ/с) Улучшения в микро архитектуре Количество транзисторов – 968 млн Рассеиваемая мощность – ~45 Вт Технология – 65 нм, 9 слоев металла Площадь кристалла мм 2 Эльбрус-4С
Процессор завершил гос. испытания в 2014 году Тактовая частота 300 МГц, 2 ядра «Эльбрус» L2$ 2 * 1 МБ 2 канала DDR межпроцессорных канала (по 4 ГБ/с) 2 канала IO-link (2 ГБ/с) Количество транзисторов: 300 млн Рассеиваемая мощность: ~20 Вт Технология: 90 нм, 10 слоёв металла Площадь кристалла: 320 мм 2 Производство на фабрике Микрон Эльбрус-2СМ
КПИ Тактовая частота – 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) через когерентные межпроцессорные каналы без привлечения дополнительной аппаратуры Возможность добавления в систему дополнительных «южных мостов»
Структура м/п Эльбрус
Асинхронная пред подкачка Устройство асинхронной подкачки данных (AAU) Асинхронная программа Кэш 2-го уровня (L2$) Оперативная память Регистровый файл (RF) Основная программа Арифметико-логические устройства (ALU) Буфер предварит. подкачки данных (APB) данные асинхронные данные адреса Вычисляет адреса Подкачивает данные Управляет синхронной подкачкой данных
Пиковая производительность лин.уч. циклы Int (8) / FP (9) / St (2) / Ld (4) Обработка предикатов Передача управления Загрузка литерала 32/64- 4/2 + Асинхронная загрузка в РФ- 4 + Адресная арифметика- 4 + Обработка счетчика цикла Всего:18/16 23
SPEC CPU2000 INT
SPEC CPU2000 FP
Сглаживание по 7 точкам – простой алгоритм
Сглаживание по 7 точкам – оптимизированный алгоритм
Intel(R) Core(TM) i5 CPU 650 Эльбрус-2С+Отношение Частота 3.20 ГГц 500 МГЦ6.4 Простой алгоритм 3016ms7356ms2.4 Оптимизированн ый алгоритм 2551ms4666ms1.8 Компиляторgcc 4.6 x86-64lcc, вер. 18 Сводная таблица результатов
ВК на базе МП Эльбрус
2015: Эльбрус-8С 1.3 ГГц 8 ядер Эльбрус 250 Гигафлопс L2$ 8*512КБ, L3$ 16 МБ 4 канала памяти DDR межпроц. канала по 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 * USB * GPIO... Технология 65 нм Энергопотребление 12 Вт Получены первые инженерные образцы
Сервер на базе четырёх процессоров Эльбрус-8С 4 процессора Эльбрус-8С Южный мост КПИ-2 Оперативная память до 256 Гбайт на сервер Интерфейсы: SATA 3.0 – 8 каналов, Gigabit Ethernet – 3 канала, PCI Express 2.0 x20, PCI, интерконнект Высота корпуса 1U Мощность сервера – 1 Терафлопс 40 Тфлопс в стойке Сервер Эльбрус-8С Макетный образец четырёхпроцессорного сервера
Gflops SP TSMC Микрон Эльбрус-4С 65 нм, 4 я 50GF Эльбрус-8С 28 нм, 8 я 250GF Эльбрус-16С 16 нм, 8…16 я 0,5 … 1TF Эльбрус-32С 10 нм, 32 я 4TF Эльбрус-4СМ 65 нм, 4 я 50GF Эльбрус-8СМ 32 нм, 8 я 250GF Дорожная карта Эльбрус-2СМ 90 нм, 2 я 10GF Эльбрус-1С+ 40 нм, 1 я + GPU 24GF Индексом «М» (зелёным цветом) отмечены модели, планируемые к выпуску на отечественной фабрике Микрон (Зеленоград)
Ошибки и уязвимости Распределение уязвимостей АСУ ТП по типам Отчёт «Безопасность промышленных систем в цифрах v2.1», Positive Technologies, 2012
Память приложения
«Защищённый режим»: контроль ошибок во время исполнения Аппаратно контролируются ошибки программы в работе с памятью и гарантируется целостность указателей Обращение за границы объекта (массива) Обращение по указателю на уже освобождённую память объекта, закончившего жизненный цикл Чтение неинициализированных данных Обращение по неадресным данным как по указателю Результат: Рост производительности труда программиста – на порядок Возможность создавать надёжные программы, устойчивые к кибернетическим атакам Замедление скорости работы программ – около 20%
Защищённый режим Эльбруса. Структура дескриптора 32 bit40 bit32 bit24 bit8 bit Текущее положение База ГраницаВремя жизни + служебные биты Теги 128 bit 32 bit2 bit Данные или часть дескриптора Теги Дескриптор: Значения тегов: 00 - Неинициализированное 10 – Данные, 01 и 11 - Часть дескриптора Структура машинного слова в памяти:
Защищённый режим Эльбруса. Использование дескриптора
Контексты модулей A и B объявленные в них объекты и функции ссылки на объекты и функции других модулей Контексты модулей A и B не пересекаются Межмодульная защита
Каждому модулю соответствует свой дескриптор Дескриптор модуля хранится при исполнении на аппаратных регистрах, недоступных пользователю При вызове функции другого модуля происходит смена дескриптора модуля Межмодульная защита
«Защищённый режим»: контроль ошибок во время исполнения Исполнение программ на обычном компьютере – как езда по шоссе с разметкой. Пока все программы действуют без ошибок «по правилам», всё хорошо работает… … но если нарушить правила, под угрозой будет безопасность всей вычислительной машины Защищённый режим – как разделитель: даёт «железные» гарантии, что все корректно работающие программы будут в безопасности
ОС Эльбрус Используется структура пакетов Debian Отпортировано более 3000 базовых пакетов из набора Debian 5.0 (Lenny) и многие другие, в том числе: LibreOffice 3.6 Firefox PostgreSQL 9.2 Qt 5.0 Основана на ядре Linux Встроена поддержка режима реального времени Двоичный транслятор приложений: слой кросс-архитектурной виртуализации x86 Elbrus, совместимый с эмулятором WINE Средства разработки – компиляторы С/С++/Fortran, Java-машина (OpenJDK 6)