Микропроцессор 'Байкал-Т' от компании 'Байкал Электроникс'
3 года назад компания "Байкал Электроникс" объявила о получении инженерных образцов микропроцессора Байкал-Т. Компания позиционировала его как первый отечественный коммерческий микропроцессор для открытого рынка. От тех дней и по сию пору в профессиональном сообществе ведутся о нем споры, в которых можно встретить полярные мнения. Сегодня этот процессор имеется на складе компании и доступен для приобретения.
Введение
Не стихают на профессиональных интернет-форумах споры о судьбе микропроцессора (МП) "Байкал-Т". Но, как ни странно, мы не обнаружили в специализированных СМИ ни одной статьи об этом МП, которая давала бы более-менее полное представление о его возможностях, так сказать описывала бы "от А до Я". В настоящем материале мы попытаемся ликвидировать этот пробел, рассмотрев устройство МП. Прежде всего, речь пойдет об аппаратной части. Вне рамок статьи останется среда разработки и ПО.
Двухядерный микропроцессор базируется на суперсалярных ядрах MIPSP5600 Warrior компании Imagination Technologies. Вполне оправданный выбор, учитывая, что МП позиционируется, прежде всего, для телекоммуникационного оборудования, а также может использоваться в промышленной электронике решениях типа "тонкий клиент" и мультимедийных устройствах. Отметим, что МП "Байкал-Т" это первая в мире реализация ядра P5600 Warrior на кристалле. Структурная схема МП показана на рисунке 1.
Процессорные ядра MIPS широко используются в телекоме, специалисты, работающие в этой отрасли, привыкли к ним, у них наработаны решения, подобраны библиотеки и нет смысла выходить на этот рынок с ядрами другого типа. МП производится по 28-нм технологии на известной тайваньской фабрике TSMC и является доверенным российским процессором. Рабочий диапазон температуры МП подтвержден испытаниями в пределах 0-70°С, по расчетным данным диапазон температур достигает -45...70°С. МП выпускается в 578-выводном корпусе размером 25×25 мм. Энергопотребление не превышает 5 Вт.
Структурная схема 32-бит ядра MIPSP5600 Warrior приведена на рисунке 2.
Это ядро ориентировано на достижении максимальной производительности, поэтому в отличие от предыдущих ядер MIPS в ядре P5600 отказались от многопоточности и предпочли конвейерную обработку данных. В ядре используется 16-ступенчатый конвейер, при этом ядро предназначено для построения многоядерных систем, т. е. для сложных вычислительных задач вместо многопоточности можно реализовать многоядерность. Тактовая частота ядра в МП "Байкал-Т" составляет 1 ГГц или 1,2 ГГц, в зависимости от модификации. Перечислим некоторые основные параметры ядра.
a. Адресное пространство расширено до 4 Тбайт (40-бит адрес).
b. 16-ступенчатый конвейер с выборкой 4 команд за 1 цикл.
c. Арифметический сопроцессор с блоком SIMD для операции с 32 128-бит регистрами.
i. Размерности векторов в регистрах: 8×16 бит, или 16×8 бит, или 4×32 бит, или 2×64 бит.
ii. Операции с 8-, 16- и 32-бит целыми числами.
iii. Операции с 16-, 32- и 64-бит с числами с плавающей запятой, стандарт IEEE-754.
iv. Тактируется частотой ядра.
d. Выполнение за один цикл 4 команд с целыми числами и 2 операций SIMD.
e. 64-бит кэш команд.
f. 64-бит кэш данных.
g. Прогнозирование ветвлений.
h. Аппаратная виртуализация. Поддерживается технология OmniShield
i. Обеспечивает уровни привилегии для гостевой и корневой ОС.
ii. Поддерживает до 15 гостевых ОС.
iii. Поддержка буфера ассоциативной трансляции TLB и контекста сопроцессора COP0 для гостевой и корневой ОС. Полная изоляция ОС друг от друга.
iv. Программируемый блок управления памятью.
v. Буфер TLB 1 уровня, 16 записей команд ввода 32 записей данных.
vi. Буфер TLB 2 уровня, одновременный доступ, фиксированные и переменные размеры страниц.
vii. Буфер VTLB, 512×2 записей.
Виртуализация
Аппаратная (полная) виртуализация позволяет заметно повысить уровень защиты данных и увеличить производительность процессора без модификации гостевых ОС. Это не новая концепция, она апробирована на ядрах MIPS предыдущих поколений. Схематично аппаратная виртуализация представлена на рисунке 3. В ядре MIPSP5600 Warrior возможно использование до 15 виртуальных машин (ВМ).
На всякий случай, буквально в 2 словах, напомним читателю основные принципы виртуализации. Виртуальная машина представляет собой контекст процессора, созданный ПО. Каждая ВМ "не подозревают" о существовании других ВМ. В нашем случае ВМ это ОС, работающая со своими приложениями. Хост машина это аппаратное средство, в нашем случае ядро MIPSP5600. С хост машиной связан корневой контекст (полный комплект адресуемых регистров). С ВМ (гостевой машиной) связан гостевой контекст (сокращенный набор адресуемых регистров).
Наличие 2 активных контекстов принципиально важно. Во-первых, потому что возможно реализовать быстрый переход между гостевым и корневым режимами. Во-вторых, она позволяет привилегированным ВМ обращаться напрямую к гостевым регистрам, минуя гипервизор. Благодаря этим 2 обстоятельствам возрастает производительность МП в режиме виртуализации.
Важно отметить, что при аппаратной виртуализации не требуется доработка гостевых ОС. Технология OmniShield компании Imagination Technologies позволяет создавать в памяти безопасные области, доступные только пользователю. Всеми ВМ управляет отдельная ОС, называемая гипервизором, которая служит своего рода управляющим интерфейсом между ВМ и аппаратным средством. Гипервизор работает в корневом контексте и управляет аппаратными средствами. Его основная функция заключается в загрузке ПО, работающего в гостевом контексте.
Кратко принципы виртуализации можно сформулировать следующим образом:
1. Работа ПО на ВМ ничем не должна отличаться от реализации этого же ПО на аппаратном средстве.
2. Всеми ВМ управляет гипервизор.
3. Большая часть команд, исполняемых ВМ, не должна требовать вмешательства гипервизора. Разумеется, немаскируемые прерывания и исключения должны выполняться корневой ОС.
В процессоре "Байкал-Т" возможно использование до 7 одновременно выполняющихся ВМ, что должно вполне хватить для приложений, в которых планируется работа МП. В качестве гипервизора используются микроядра L4/Fiasco, L4RE. Надежность аппаратной виртуализации в МП "Байкал-Т" была подтверждена некоммерческой организацией prpl Foundation на выставке Mobile World Congress в Барселоне в феврале 2016 г. Организация prpl Foundation создана для поддержки программного обеспечения с открытым кодом на аппаратных средствах с архитектурой MIPS.
Арифметический сопроцессор FPU3
В MIPS довольно оригинально решили задачу создания арифметического сопроцессора, совместив выполнение операций с числами с плавающей запятой и векторных операции SIMD в одном блоке. В сопроцессоре FPU3 реализовано 2 конвейера обработки данных. Первый конвейер обслуживает логические операции SIMD, целочисленное сложение и сохранение данных. Второй конвейер используется при выполнении операций целочисленного умножения, а также операций сложения, умножения и деления чисел с плавающей запятой.
Что-то похожее реализовано в ядре ARM Cortex A5 в модуле обработки мультимедийной информации MPE с архитектурой NEON, котором также объединены операции с числами с плавающей запятой и векторные операции SIMD. Подобная универсальность с одной стороны удобна, одним выстрелом убивают 2 зайцев, с другой стороны, несколько избыточна - не во всех приложениях требуются операции с числами с плавающей запятой и с SIMD.
Взвесив все proetcontra, мы пришли к выводу, что для МП "Байкал-Т" такая универсализация выгодна. Упрощается реализация цифровых фильтров и других функций DSP, используемых в мультимедийных, промышленных и телекоммуникационных и приложениях, в том числе, в интернете вещей. Наверное, можно было бы обойтись без SIMD при использовании в серверных станциях, но будем считать такую избыточность в данном случае платой за универсальность. К тому же блок SIMD позволяет заметно ускорить шифрование и дешифрования, что весьма важно, если учесть, что в МП отсутствует блок аппаратных криптоускорителей.
Возможности сопроцессора FPU3 проиллюстрированы в [1], где описывается реализация шифрования и в [2], где речь идет о создании цифровых фильтров. В обоих случаях результаты, полученные при использовании SIMD сравнивались с аналогичными результатами, полученными без применения SIMD. В обоих случаях использование SIMD привело к заметному ускорению выполнения приложений.
Память
Микропроцессор оперирует с тремя уровнями памяти L1, L2 и L3. Память уровня L1 представляет собой 64-Кбайт кэш данных и 64-Кбайт кэш команд в каждом процессорном ядре. В МП встроен 8-канальный ассоциативный кэш L2 емкостью 1 Мбайт. Универсальный контроллер памяти DDR с адаптером физического интерфейса PHY поддерживает память уровня L3. Основные параметры контроллера.
Соответствует спецификации JEDEC DDR3 SDRAM Specifications JESD79-3E;
DDR3-1600, рабочая частота памяти составляет 800 МГц;
Поддерживает модуль памяти SDRAM размером до 8 Гб;
Внешняя шина шириной 32 бита с 8-битным кодом исправления ошибок;
Поддерживаются SDRAM с шириной шины 8 бит и 16 бит.
Полоса пропускания памяти DDR - до 6,4 ГБ/с;
Могут быть использованы модели памяти, которые не поддерживают исправление ошибок;
динамическая диспетчеризация для оптимизации ширины полосы пропускания и времени ожидания;
буферы на чтение и запись в блоках ассоциативной памяти (32 на чтение и 32 на запись);
отложенная запись на шине SDRAM;
для максимальной эффективности работы SDRAM команды выполняются с изменением последовательности (не по порядку);
Поддерживаются два ранга памяти.
Интерфейсы
Интерфейсы МП "Байкал-Т" разделяются на низкоскоростные и высокоскоростные. К низкоскоростным интерфейсам относятся.
32-бит контроллер GPIO;
3-бит контроллер GPIO;
2 контроллера UART;
3 контроллера SPI;
2 контроллера I2C;
В состав 32-бит контроллер GPIO входят 32 независимых канала, каждый из которых содержит регистр данных и регистр направлений. Канал, в том числе, и формируемые ими прерывания конфигурируются независимо. Контроллеру прерываний сообщается обобщенный статус всех прерываний. 3-бит контроллер GPIO аналогичен 32-бит контроллеру, но управляет только 3 линиями ввода/вывода.
Каждый из 2 контроллеров соответствует промышленному стандарту 16550 и обеспечивает максимальную скорость передачи 460,8 Кбит/с. В состав каналов входят отдельные на прием и передачу буферы FIFO емкостью 16 байт. Обмен данными между контроллером и другими модулями МП осуществляется через канал прямого доступа к памяти (DMA).
Два контроллера SPI 1 и SPI 2 идентичны и являются ведущими, каждый из них может выбрать для передачи до 4 ведомых устройств. Программируется скорость передачи и разрядность слова. Максимальная частота синхронизации составляет 25 МГц. Емкость буфера FIFO составляет 64 байта. Так же как и в контроллере UART обмен данными между контроллером и другими модулями МП осуществляется через канал DMA. Контроллеру прерываний сообщается обобщенный статус всех прерываний.
Третий контроллер SPI 0 предназначен для загрузки исполняемого кода из внешней флэш-памяти. Производитель не рекомендует использовать его для подключения других устройств, из-за того что в таком варианте может возникнуть проблема с загрузкой. Помимо загрузки из внешней флэш-памяти, возможна и загрузка из встроенного ПЗУ объемом 64 Кбайт.
Каждый из 3 идентичных контроллеров I2C обеспечивает максимальную скорость передачи данных 100 Кбит/с и может работать в режиме ведущего и ведомого устройства. Программируется 7- или 10-бит адресация, объем буферов FIFO в каждом канале составляет 8 байт. Обмен данными происходит через DMA.
Перечислим состав высокоскоростных интерфейсов.
Контроллер 10Gb Ethernet (XGbE).
2 контроллера интерфейса 1 Gb Ethernet (GMAC).
Контроллер PCIExpress.
Контроллер SATA.
Контроллер USB.
Интерфейс 10 Gb Ethernet соответствует требованиям стандартов IEEE 802.3-2008 и энергосберегающего стандарта Ethernet (EEE). Вот некоторые его основные параметры.
Программируемая длина кадра, поддержка как стандартных кадров, так и кадров "jumbo" большого размера (расширяемых до 16 Кбайт).
Поддержка кадров с метками виртуальных сетей VLAN, обрабатываемых в соответствии со стандартом IEEE 802.1Q.
Вычисление контрольной суммы заголовка Ipv4 при передаче и приёме.
Вычисление контрольных сумм протоколов пакетов TCP, UDP и ICMP при передаче и приёме.
Проверка принимаемых и получаемых кадров 32-битным циклическим избыточным кодом (CRC).
Контроллеры интерфейса 1 Gb Ethernet идентичны и полностью соответствуют стандарту EEE 802.3-2008. Интерфейс к внешнему PHY поддерживается по протоколу RGMII, скорость передачи данных 0/100/1000 Мбит/с.
Встроенный головной коммутатор (Root Complex) шины PCI Express, поддерживающий соединение PCI шириной до четырёх трактов и отвечает требованиям спецификации PCIe base 3.0, revision 1.0. Поддерживаются протокольные уровни транзакций, канальный уровень и подуровень управления доступом к среде (MAC) физического уровня. Основные параметры.
Режим очереди с промежуточным хранением и пересылкой принимаемых пакетов уровня транзакций.
Максимальная длина запроса на чтение - 256 байт.
До 256 байт полезных данных.
Контроллер Serial ATA (SATA) представляет собой блок с двумя хост-портами, соответствующими спецификациям SATA revision 3.1 и AHCI 1.3 и спецификациям ATA/ATAPI-7. Операции выполняются на скоростях 1,5 Гбит/с; 3 Гбит/с и 6 Гбит/с.
Практически во всех современных микроконтроллерах и микропроцессорах имеется встроенный интерфейс USB. МП "Байкал-Т" не стал исключением. Встроенный порт USB 2.0 обеспечивает низкоскоростной режим передачи данных (1,5 Мбит/с), полноскоростной режим (12 Мбит/с) и высокоскоростной режим (480 Мбит/с).
Средства разработки и отладки
Для сокращения времени разработки компания производит отладочные платы. Тестовый комплект ТК-Т1 выполнен в формате microATX (244×244 мм). На плате установлен МП "Байкал-Т" и реализован доступ ко всем низкоскоростным и высокоскоростным интерфейсам. Для отладки используются интерфейсы JTAG, EJTAG и DFU. В комплект поставки входит рабочая документация и средства разработки ПО (компилятор, ядро ОС Linux и образ минимальной файловой системы).
Оценочная плата BFK 3.1 выпускается в формате FlexATX (229×191 мм) с интерфейсом отладки EJTAG и ОС Embedded Linux 4.4 (Busybox RootFS). На плате установлены 2 модуля NOR-флэш емкостью 16 Мбайт и 32 Мбайта.
В МП поддерживаются следующие средства отладки и профилирования пО.
JTAG в стандарте IEEE-1149.1-2001.
EJTAG в спецификации MIPS EJTAG SpecificationMIPS Technologies document MD00047.
PDtrace - соответствует PDtraceTM Interface Specification, MIPS Technologies document MD00136.
Бенчмарки
МП "Байкал-Т" прошел практически все возможные е испытания на производительность и нигде не потерял лицо. Вот список тестов [3].
Coremark. Тес используется для оценки производительности во встраиваемых приложениях. В его состав входят функции обработки матриц, вычисление кода CRC, обработка списков и аналогичные задачи.
Dhrystone. Тест оценивает производительность при выполнении операций с целочисленной арифметикой.
Whetstone. Тест оценивает производительность при выполнении арифметических операций с плавающей запятой.
Stream. Тест используется для оценки полосы пропускания памяти.
SPEC CPU 2006. Тест оценивает производительность при выполнении операций с целочисленной арифметикой.
Iperf. Формирование пакетов по протоколам TCP, UDP и SCTP для оценки пропускной способности МП в сети.
Результаты испытаний по первым трем бенчмаркам приведены в таблице 1.
Оценка пропускной способности системы памяти на бенчмарке STREAM дала следующие результаты:
copy - 3 119 Мбайт/с;
scale - 3 110 Мбайт/с;
add - 2 467 Мбайт/с;
triad - 2 468 Мбайт/с.
В бенчмарке Iperf на протоколе TSP был достигну результат 940 Мбит/с., а в SPEC CPU 2006 результат получился 5 единиц. В [4] приведены сравнительные таблица бенчмарков МП "Байкал-Т" и МП других производителей. Практически во всех тестах МП "Байкал-Т" находится в лидерах.
Заключение
В статье рассмотрен микропроцессор "Байкал-Т". На наш взгляд, он вполне способен конкурировать со своими одноклассниками из компаний Qualcomm, Freescale (ныне входит в состав NXP), Cavium. Например, довольно подробное сравнение МП "Байкал-Т" с QorIQ LS1021A от Freescale приведено в [5].
Архитектура МП в первую очередь ориентирована на телекоммуникационные приложения, безусловно, МП найдет применение и в серверных станциях. Касательно встраиваемых приложения можно сказать, что МП отлично подходит для использования на верхнем уровне АСУ, где реализуется мониторинг и сбор данных. Использование МП на среднем уровне АСУ в программируемых логических контроллерах довольно ограничено из-за отсутствия EtherCat и некоторых других узлов, например, блока защиты памяти.
Специально для скептиков замечу, что МП "Байкал-Т" опробован и используется во встраиваемых компьютерах FASTWEL [6]. В целом МП произвел приятное впечатление, лаконичная и понятная архитектура, отличные бенчмарки. Но хорошее "железо" это условие необходимое, но еще недостаточное. Необходимы программные и инструментальные сервисы для разработчиков. И здесь, судя по документации на сайте компании, еще есть над чем работать.
Литература
1. Алексей Колотников. Применение SIMD-блока в процессоре "Байкал-Т1" для задачи шифрования по ГОСТ 28147-89//Электронные компоненты № 4, 2018 г.
2. С. Жельнио. Технология MIPS SIMD и процессор "Байкал-Т1"//www.siliconrussia.com.
3. Тесты демонстрации производительности для микропроцессора Baikal-T1//www.baikalelectronics.ru
4. Процессор Байкал-Т1 и ПАК BFK 3.1: первые тесты https://servernews.ru
5. Владимир Егоров. Сравнение коммуникационных микроконтроллеров QorIQLS1021A и "Байкал-Т1"//Электронные компоненты № 6, 2017 г.
6. Нина Кузьмина. Встраиваемые компьютеры FASTWEL на базе российских микропроцессоров//СТА № 3, 2017 г.