Введение
Не стихают на профессиональных интернет-форумах споры о судьбе микропроцессора (МП) «Байкал-Т». Но, как ни странно, мы не обнаружили в специализированных СМИ ни одной статьи об этом МП, которая давала бы более-менее полное представление о его возможностях, так сказать описывала бы «от А до Я». В настоящем материале мы попытаемся ликвидировать этот пробел, рассмотрев устройство МП. Прежде всего, речь пойдет об аппаратной части. Вне рамок статьи останется среда разработки и ПО.
Двухядерный микропроцессор базируется на суперсалярных ядрах MIPSP5600 Warriorкомпании ImaginationTechnologies. Вполне оправданный выбор, учитывая, что МП позиционируется, прежде всего, для телекоммуникационного оборудования, а также может использоваться в промышленной электронике решениях типа «тонкий клиент» и мультимедийных устройствах. Отметим, что МП «Байкал-Т» это первая в мире реализация ядра P5600 Warrior на кристалле. Структурная схема МП показана на рисунке 1.

Рис. 1. Структурная схема МП
Процессорные ядра MIPS широко используются в телекоме, специалисты, работающие в этой отрасли, привыкли к ним, у них наработаны решения, подобраны библиотеки и нет смысла выходить на этот рынок с ядрами другого типа. МП производится по 28-нм технологии на известной тайваньской фабрике TSMC и является доверенным российским процессором. Рабочий диапазон температуры МП подтвержден испытаниями в пределах 0–70⁰С, по расчетным данным диапазон температур достигает –45…70⁰С. МП выпускается в 578-выводном корпусе размером 25×25 мм. Энергопотребление не превышает 5 Вт.
Суперскалярное процессорное ядро MIPSP5600 Warrior
Структурная схема 32-бит ядра MIPSP5600 Warrior приведена на рисунке 2.

Рис. 2. Структурная схема 32-бит ядра MIPSP5600 Warrior
Это ядро ориентировано на достижении максимальной производительности, поэтому в отличие от предыдущих ядер 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 виртуальных машин (ВМ).

Рис. 3. Структура аппаратной виртуализации
На всякий случай, буквально в 2 словах, напомним читателю основные принципы виртуализации. Виртуальная машина представляет собой контекст процессора, созданный ПО. Каждая ВМ «не подозревают» о существовании других ВМ. В нашем случае ВМ это ОС, работающая со своими приложениями. Хост машина это аппаратное средство, в нашем случае ядро MIPSP5600. С хост машиной связан корневой контекст (полный комплект адресуемых регистров). С ВМ (гостевой машиной) связан гостевой контекст (сокращенный набор адресуемых регистров).
Наличие 2 активных контекстов принципиально важно. Во-первых, потому что возможно реализовать быстрый переход между гостевым и корневым режимами. Во-вторых, она позволяет привилегированным ВМ обращаться напрямую к гостевым регистрам, минуя гипервизор. Благодаря этим 2 обстоятельствам возрастает производительность МП в режиме виртуализации.
Важно отметить, что при аппаратной виртуализации не требуется доработка гостевых ОС. Технология OmniShield компании ImaginationTechnologiesпозволяет создавать в памяти безопасные области, доступные только пользователю. Всеми ВМ управляет отдельная ОС, называемая гипервизором, которая служит своего рода управляющим интерфейсом между ВМ и аппаратным средством. Гипервизор работает в корневом контексте и управляет аппаратными средствами. Его основная функция заключается в загрузке ПО, работающего в гостевом контексте.
Кратко принципы виртуализации можно сформулировать следующим образом:
- Работа ПО на ВМ ничем не должна отличаться от реализации этого же ПО на аппаратном средстве.
- Всеми ВМ управляет гипервизор.
- Большая часть команд, исполняемых ВМ, не должна требовать вмешательства гипервизора. Разумеется, немаскируемые прерывания и исключения должны выполняться корневой ОС.
В процессоре «Байкал-Т» возможно использование до 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 контроллера интерфейса 1GbEthernet (GMAC).
- Контроллер PCIExpress.
- Контроллер SATA.
- Контроллер USB.
Интерфейс 10GbEthernet соответствует требованиям стандартов IEEE 802.3-2008 и энергосберегающего стандарта Ethernet (EEE). Вот некоторые его основные параметры.
· Программируемая длина кадра, поддержка как стандартных кадров, так и кадров «jumbo» большого размера (расширяемых до 16 Кбайт).
· Поддержка кадров с метками виртуальных сетей VLAN, обрабатываемых в соответствии со стандартом IEEE 802.1Q.
· Вычисление контрольной суммы заголовка Ipv4 при передаче и приёме.
· Вычисление контрольных сумм протоколов пакетов TCP, UDP и ICMP при передаче и приёме.
· Проверка принимаемых и получаемых кадров 32-битным циклическим избыточным кодом (CRC).
Контроллеры интерфейса 1GbEthernet идентичны и полностью соответствуют стандарту EEE 802.3-2008. Интерфейс к внешнему PHY поддерживается по протоколу RGMII, скорость передачи данных 0/100/1000Мбит/с.
Встроенный головной коммутатор (Root Complex) шины PCI Express, поддерживающий соединение PCI шириной до четырёх трактов и отвечает требованиям спецификации PCIe base 3.0, revision 1.0. Поддерживаются протокольные уровни транзакций, канальный уровень и подуровень управления доступом к среде (MAC) физического уровня. Основные параметры.
- До 4-х трактов (Gen1 2.5 Гбит/с, Gen2 5.0 Гбит/с, Gen3 8.0 Гбит/с).
- 32 запроса в очереди.
- Режим очереди с промежуточным хранением и пересылкой принимаемых пакетов уровня транзакций.
- Максимальная длина запроса на чтение – 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 – соответствует PDtrace™ Interface Specification, MIPS Technologies document MD00136.
Бенчмарки
МП «Байкал-Т» прошел практически все возможные е испытания на производительность и нигде не потерял лицо. Вот список тестов [3].
· Coremark. Тес используется для оценки производительности во встраиваемых приложениях . В его состав входят функции обработки матриц, вычисление кода CRC, обработка списков и аналогичные задачи.
· Dhrystone. Тест оценивает производительность при выполнении операций с целочисленной арифметикой.
· Whetstone Тест оценивает производительность при выполнении арифметических операций с плавающей запятой.
· Stream. Тест используется для оценки полосы пропускания памяти.
· SPEC CPU 2006. Тест оценивает производительность при выполнении операций с целочисленной арифметикой.
· Iperf. Формирование пакетов по протоколам TCP, UDP и SCTP для оценки пропускной способности МП в сети.
Результаты испытаний по первым трем бенчмаркам приведены в таблице 1.
Таблица 1. Результаты испытаний МП «Байкал-Т» по Dhrystone, Whetstone, CoreMark
|
Бенчмарк |
Компилятор |
Общая производительность процессора |
Удельная производительность одного ядра на МГц |
||
|
Dhrystone |
GCC 5.3 |
4 398 |
(одно ядро) |
|
3,66 |
|
Whetstone |
GCC 5.3 |
1 213 |
(два ядра) |
|
0,526 |
|
CoreMark |
GCC 5.3 |
12 364 |
(два ядра) |
|
5,15 |
|
Mentor GCC 4.9 + plugin |
13 142 |
(два ядра) |
|
5,47 |
|
Оценка пропускной способности системы памяти на бенчмарке 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.silicon-russia.com.
3. Тесты демонстрации производительности для микропроцессора Baikal-T1//www.baikalelectronics.ru
5. Владимир Егоров Сравнение коммуникационныхмикроконтроллеров QorIQLS1021A и «Байкал-Т1»//Электронные компоненты № 6, 2017 г.
6. Нина Кузьмина Встраиваемые компьютерыFASTWEL на базе российскихмикропроцессоров//СТА №3, 2017 г.

5 марта, 2012
29 октября, 2021