МикроЛАБ Системс
Комплексные Решения ЦОС
  Прикладные Материалы

 

Домашняя

Новости

Продукция

Цены

Публикации

Поддержка

О Кампании

Контакты

Вакансии

 

Сделано в России / Made in Russia

MicroLAB Systems is a Member of Xilinx Alliance ProgramMicroLAB Systems is a Member of Texas Instruments 3rd Party Network
MicroLAB Systems is an Executive Member of PICMG Open Modular Computing Standards Consortium PICMG Advanced Mezzanine Card (AdvancedMC, AMC) Specification
PICMG MicroTCA Specification

 

 

скачать в PDF формате

AN-ru-201

 AN #201 Rev.B (2019-08-06)
© 2019 «МикроЛАБ Системс»

Выбор ОСРВ для ПЦОС TI TMS320C6678 и среды TASDK разработки ПО для AdvancedMC (AMC) модулей TORNADO-A6678x

П.А. Семенов, к.т.н.
О
.Ю. Милосердин, к.т.н.

 

Настоящий прикладной материал является частью руководства пользователя среды TASDK® (сокращение от TORNADO-Axxx Software Development Kit) разработки прикладного программного обеспечения (ПО) для AdvancedMC (AMC) модулей TORNADO-A6678x (далее как TA6678x) фирмы МикроЛАБ Системс, построенных на базе 8-ми ядерного процессора ЦОС (ПЦОС) TMS320C6678 фирмы Texas Instruments (TI, www.ti.com) и ПЛИС Xilinx Virtex-7 (www.xilinx.com).

Данный материал содержит обзор, сравнение, результаты тестирования и рекомендации по выбору операционной системы реального времени (ОСРВ) для разработки прикладного ПО ПЦОС TMS320C6678 AMC-модулей TA6678x на базе среды TASDK фирмы МикроЛАБ Системс.

Этот же материал может быть рекомендован как общее руководство по выбору ОСРВ для разработки прикладного ПО для любых устройств на базе ПЦОС TI TMS320C667x.

Нужна ли ОСРВ для ПЦОС TI TMS320C6678?

В общем случае, если учесть архитектуру и особенности функционирования 8-ми ядерного ПЦОС TI TMS320C6678, то вопрос "Нужна ли ОСРВ для ПЦОС TI TMS320C6678?" является риторическим и не совсем корректным.

Рассмотрим несколько примеров.

Когда ОСРВ не нужна ...

Так, если рассматривать ПЦОС TI TMS320C6678 как аппаратную платформу для выполнения только алгоритмов ЦОС, то ответ будет однозначный - "Не только не нужна, но и вредна".

Это связано с тем, что любой ПЦОС и его прикладное ПО всегда "затачиваются" исключительно на выполнение алгритмов ЦОС с максимально возможной скоростью в реальном времени, а любая ОСРВ для ПЦОС только снижает его производительность и существенно повышает риск "не уложиться" во временные спецификации конкретного приложения.

Именно поэтому, все ОСРВ не нашли применения для одноядерных ПЦОС для диспетчеризации задач управления и ЦОС. Эта "печальная" участь постигла как порты ПЦОС таких широко известных, универсальных, мультиплатформенных и отлично оптимизированных ОСРВ как Nucleus RTX/Plus фирмы Accelerated Technology (сегодня подразделение фирмы Mentor Graphics) и многих других, так и специализированную ОСРВ SPOX фирмы Spectron Microsystems для ПЦОС TI TMS320C3x/C4x (была куплена в 1995г. фирмой Texas Instruments и далее преобразовалась в TI DSP SysBIOS и TI-RTOS). Известны даже порты Linux для ПЦОС TI TMS320C64xx, которые бессмысленны по своей сути.

Когда ОСРВ нужна ...

Однако, если учесть 8-ми ядерную архитектуру ПЦОС TI TMS320C6678 со множеством интегрированных контроллеров и при этом переформулировать вопрос "Нужна ли ОСРВ для ПЦОС TI TMS320C6678?" в "Нужна ли ОСРВ для ПЦОС TI TMS320C6678 в случае, если требуется .... ?", то такая постановка может быть вполне корректна и оправдана.

Примером является требование поддержки внешней коммуникации через локальную сеть (LAN) с применением встроенных портов 1GbE ПЦОС TI TMS320C6678. Фирма TI задумала и реализовала архитектуру "Keystone" с оптимизированными высокоскоростными каналами внутренней коммуникации как в своих гетерогенных мультиядерных "системах на кристалле" ARM+ПЦОС (66KAK2Exx, 66AK2Gxx, 66KAK2Lxx, и др.), так и в гомогенных мультиядерных ПЦОС типа TMS320C667x и др. Все из этих устройств имеют встроенные периферийные встроенные порты 1GbE (SGMII) с коммутатором Ethernet, которые предназначены для внешней коммуникации через LAN для задач приемо-передачи данных реального времении и для удаленного управления, в зависимости от конкретного приложения.

Для программной реализации коммуникации через LAN требуется ПО IP-стека с поддержкой UDP и TCP/IP пакетов, который, в свою очередь, требует наличия ОСРВ для эффективной работы. Т.к. 8-ми ядерный ПЦОС TMS320C6678 имеет встроенный загрузчик, который стартует на ядре #0 ПЦОС, то в случае приложений с коммуникацией по портам 1GbE через LAN, ядро #0 ПЦОС разумно выделить для задач удаленного управления и приемо-передачи данных реального времени на базе ОСРВ и IP-стека, а ядра #1..#7 - для выполнения приложений ЦОС реального времени без ОСРВ ("bare-metal").

По сути, в этом случае ядро #0 ПЦОС выполняет функционал встроенного управляющего контроллера на базе дешевого процессора (например ARM или RISC), что характерно для ядер ARM при использовании "систем на кристалле" ARM+ПЦОС (66KAK2Exx, 66AK2Gxx, 66KAK2Lxx, и др.). Однако, если сравнить с максимально возможной загрузкой приложениями ЦОС, то это приводит к незначительной потери всего лишь 1/8 (12.5%) от суммарной производительности ПЦОС, но при этом придает универсальные возможности дистанционного управления устройством и внешней коммуникации. Конечно, в общем случае ПО для ядер #1..#7 ПЦОС может также использовать ОСРВ, но это не целесообразно, т.к. приведет к неоправданной потере производительности приложений ЦОС для этих ядер.

Организация ПО для ПЦОС TMS320C6678 AMC-модулей TA6678x на базе ОСРВ и среды TASDK

Именно описанным выше образом организовано функционирование ПО для ПЦОС TMS320C6678 AMC-модулей TA6678x на базе среды TASDK фирмы МикроЛАБ Системс:

  • Ядро #0 ПЦОС выполняет готовое управляющее системное приложение TASDK DSP System Manager на базе ОСРВ и IP-стека, которое предназначено для управления всем устройством, загрузкой приложений для ядер #1..#7 ПЦОС и внешней коммуникации по портам 1GbE SGMII ПЦОС.

  • Ядра #1..#7 ПЦОС выделяются для выполнения приложений ЦОС реального времени без ОСРВ, которые разрабатываются пользователем на базе библиотеки TASDK "bare-metal" для ПЦОС.

Поддерживаемые ОСРВ для ПЦОС TI TMS320C6678 и среды TASDK для AMC-модулей TA6678x

Среда TASDK разработки ПО для ПЦОС AMC-модулей TA6678x поддерживает следующие ОСРВ:

  •  "Свободно распространяемая" бесплатная ОСРВ с открытым кодом SysBIOS (TI-RTOS) фирмы Texas Instruments. Эта ОСРВ входит в стандартный комплект поставки TASDK для AMC-модулей TA6678x и также доступна для скачивания с сайта TI (http://www.ti.com/tool/PROCESSOR-SDK-C667x ).

  • Коммерческая пре-сертифицированная ОСРВ ThreadX® фирмы Express Logic Inc (www.expresslogic.com) промышленного уровня для высокоскоростных и "критических" приложений с последующей сертификацией разрабатываемого ПО. Эта ОСРВ поставляется в составе специального комплекта поставки TASDK/ThreadX, который доступен по отдельному заказу. Возможны различные конфигурации поставки ОСРВ ThreadX в зависимости от требований разработки прикладного ПО и поэтапного перехода к сертификации ПО.

В последующих разделах приводится сравнение ОСРВ для среды TASDK для AMC-модулей TA6678x по общим критериям и объективным показателям различных тестов, что позволяет сделать правильный выбор ОСРВ для среды TASDK в зависимости от конкретных требований разрабатываемого прикладного ПО и требований эксплуатации AMC-модулей.

Общие критерии сравнения ОСРВ для среды TASDK для AMC-модулей TA6678x

Общее сравнение ОСРВ для среды TASDK для AMC-модулей TA6678x можно провести на основе сравнительного анализа следующих характеристик для каждой из ОСРВ:

  • Функционал ОСРВ.

  • Функционал сетевой функции (опции) ОСРВ.

  •  Наличие исходного кода ОСРВ.

  •  Наличие и качество технической поддержки.

  • Качество API интерфейса библиотек ОСРВ.

  •  Наличие пре-сертификации ОСРВ на соответствие промышленным стандартам.

  • Области применения ОСРВ и количество устройств, на которых работате ОСРВ.

В настоящем разделе кратко рассматриваются перечисленные выше общие критерии сравнения ОСРВ для среды TASDK для AMC-модулей TA6678x. Для более детальнй информации обращайтесь к документации для рассматриваемых ОСРВ или в службу технической поддержки МикроЛАБ Системс.

Сравнение функционала ОСРВ и сетевой функции ОСРВ для среды TASDK для AMC-модулей TA6678x

В таблице 1 приведено сравнение функционалов ОСРВ и сетевых функций (опций) ОСРВ для среды TASDK для AMC-модулей TA6678x.

Таблица 1.  Сравнение функционала ОСРВ SysBIOS+NDK (TI) и ThreadX+NetXDuo (Express Logic) для TASDK для AMC-модулей TA6678x.

Компонент/функция

Поддержка в ОСРВ
SysBIOS+NDK
(Texas Instruments)

Поддержка в ОСРВ
ThreadX+NetXDuo
(Express Logic)

Унифицированные
API функции
в библиотеках
TASDK_RTOS_xxx.LIB

Функционал ОСРВ

Управление задачами (task control)

+

+

+

Программируемая задержка (delay)

+

+

+

Сообщения (message)

+

+

+

Семафоры (semaphore)

+

+

+

Мьютексы (mutex)

+

+

+

События (event)

+

+

+

Таймеры (timer)

+

+

+

Функционал сетевой функции  ОСРВ

Поддержка IP v4

+

+

 

Поддержка IP v6

+

+

 

Прием/передача UDP пакетов

+

+

 

Прием/передача TCP/IP пакетов

+

+

 

Дополнительные IP протоколы (AutoIP, DHCP, DNS, FTP, HTTP, POP3, PPP, SMTP, SNMP, Telnet, TFTP)

-+
(только несколько протоколов)

++

 

Поддержка защищенных IP протоколов (IPsec)

-

+

 

Сервисный функционал

Трассировщик (trace) и визуализатор событий ядра ОСРВ, сетевой функции и приложения пользователя

-

++

 

Системный отладчик
(system level debugger)

-

++

 

Как видно из приведенного сравнения, функционал ОСРВ SysBIOS (TI) и ThreadX (Express Logic)  примерно одинаков. Однако, функционал сетевой функции ОСРВ ThreadX+NetXDuo несколько шире, чем у сетевой функции ОСРВ SysBIOS+NDK. Кроме того, у ОСРВ ThreadX имеется богатый сервисный функционал в виде универсального трассировщика и системного отладчика, которые полностью отсутствуют у ОСРВ SysBIOS, что значительно упрощает отладку и "тонкую" настройку разрабатываемого многозадачного прикладного ПО.

Интерфейс API библиотек ОСРВ для среды TASDK для AMC-модулей TA6678x

Сравнение "качества" интерфейса API библиотек ОСРВ является достаточно субъективным критерием, который может быть различным у разных пользователей.

Однако, при реальном сравнении синтаксиса и имен API функций ОСРВ, можно сказать, что "качество" API  интерфейса ОСРВ ThreadX+NetXDuo (Express Logic) гораздо лучше, чем у ОСРВ SysBIOS+NDK (TI) за счет легко запоминающихся имен API функций без сокращения.

Необходимо отметить, что данный критерий сравнения ОСРВ является несущественным для разработки приложений для ядра #0 ПЦОС TI TMS320C6678 на базе среды TASDK для AMC-модулей TA6678x, т.к. пользователю рекомендуется пользоваться унифицированными библиотеками TASDK_RTOS_xxx.LIB с удобным унифицированным интерфейсом ОСРВ вместо непосредственного вызова API функций ОСРВ. При использовании библиотек TASDK_RTOS_xxx.LIB пользователю не потребуется использовать непосредственно вызовы API функций ОСРВ. Библиотеки TASDK_RTOS_xxx.LIB транслируют унифицированные API функции ОСРВ в соответствующие вызовы ОСРВ SysBIOS+NDK и ThreadX+NetXDuo, что позволяет иметь единый код разрабатываемого приложения для всех ОСРВ и обеспечить быструю компиляцию приложения для любой поддерживаемой ОСРВ без модификации самого кода.

Наличие и качество исходного кода ОСРВ для среды TASDK для AMC-модулей TA6678x

Обе ОСРВ SysBIOS+NDK (TI) и ThreadX+NetXDuo (Express Logic) поставляются с исходными кодами, что позволяет модифицировать код при наличии такой необходимости.

Однако, при реальном сравнении "качества" исходного кода поддерживаемых ОСРВ, можно сказать, что "качество" кода ОСРВ ThreadX+NetXDuo (Express Logic) значительно лучше, чем у ОСРВ SysBIOS+NDK (TI) за счет наличия подробных комментариев, понятных имен используемых переменных и локальных функций, и лучшего оформления кода.

Аналогично критерию интерфейса API библиотек ОСРВ, данный критерий сравнения ОСРВ также является несущественным для разработки приложений для ядра #0 ПЦОС TI TMS320C6678 на базе среды TASDK для AMC-модулей TA6678x, т.к. пользователю рекомендуется пользоваться унифицированными библиотеками TASDK_RTOS_xxx.LIB с удобным унифицированным интерфейсом ОСРВ вместо непосредственного вызова API функций ОСРВ.

Пре-сертификация ОСРВ для среды TASDK для AMC-модулей TA6678x

Критерий наличия для конкретной ОСРВ пре-сертификатов соответствия промышленным стандартам имеет значение в случае, если к разрабатываемому прикладному ПО предъявляются повышенные требования по надежности работы и требование обязательной последующей сертификации разрабатываемого ПО. Это имеет место при использовании изделий для "критических" приложений (телекоммуникация, медицина, промышленные установки, авионика, и др).

Из поддерживаемых ОСРВ для среды TASDK для AMC-модулей TA6678x, только ОСРВ ThreadX+NetXDuo фирмы Express Logic имеет пре-сертификацию по целому ряду промышленных стандартов UL (www.ul.com) и TUV (www.tuvsud.com) и стандартов IoT (интернет вещей), что позволяет гаранировать надежность ее работы в "критических" приложениях. Для множества стандартов UL и TUV имеются полные аналоги стандартов ГОСТ.

ОСРВ SysBIOS+NDK фирмы Texas Instruments не имеет пре-сертификации на соответствие промышленным стандартам и, соответственно, не гарантирует надежность разрабатываемого приложения ПЦОС и не допускает использования для "критических" приложений.

Техническая поддержка ОСРВ для среды TASDK для AMC-модулей TA6678x

Техническая поддержка любого ПО, в том числе и ОСРВ, определяется его "открытостью" и лицензией.

Так, все "свободные" бесплатные ОСРВ с откытым кодом, как правило, либо имеют техническую поддержку через он-лайн форум пользователей (и/или разработчиков), либо вообще не имеют технической поддержки. К таковой ОСРВ для среды TASDK для AMC-модулей TA6678x относится ОСРВ SysBIOS+NDK фирмы Texas Instruments. Она не имеет прямой технической поддержки от TI, однако имеет он-лайн форум пользователей. Ответы на технические вопросы на форуме либо приходят с большой задержкой (и, как правило с низким техническим уровнем), либо не приходят вообще (типовой случай).

Полной противоположностью является быстрая и высококвалифицированная техническая поддержка коммерческой ОСРВ ThreadX+NetXDuo фирмы Express Logic. При этом, базовую техническую поддержку осуществляет фирма МикроЛАБ Системс (как официальный дистрибьютор Express Logic на территории РФ), а поддержку по специальным техническим вопросам - сама фирма Express Logic.

Однако, данный критерий является несущественным для разработки приложений для ядра #0 ПЦОС TI TMS320C6678 на базе среды TASDK для AMC-модулей TA6678x, т.к. пользователю рекомендуется пользоваться унифицированными библиотеками TASDK_RTOS_xxx.LIB с удобным унифицированным интерфейсом ОСРВ вместо непосредственного вызова API функций ОСРВ. В результате, техническая поддержка ОСРВ не потребуется.

Всем разработчикам прикладного ПО на базе среды TASDK для AMC-модулей TA6678x фирмой МикроЛАБ Системс оказывает полноценная техническая поддержка среды TASDK.

Области применения ОСРВ для среды TASDK для AMC-модулей TA6678x

Критерий широты применения конкретной ОСРВ и числа ее инсталляций (количества подтвержденно успешно работающих промышленных устройств с конкретной ОСРВ) является одним из основных для определения ее популярности и успешности. Этот фактор является косвенной характеристикой качества и надежности ОСРВ.

Из поддерживаемых ОСРВ для среды TASDK для AMC-модулей TA6678x, только ОСРВ ThreadX+NetXDuo фирмы Express Logic может подтвердить более 6 млрд. промышленно эксплуатируемых устройств, использующих эту ОСРВ в своем ПО. Основными областями применения устройств на базе ОСРВ ThreadX являются компьютерная техника (принтеры Hewlett Packard), промышленность, медицина, IoT (интернет вещей), бытовая техника, сетевые маршрутизаторы, "Системы на Кристалле", авионика, военная техника и др. Такой широкий спектр применения ОСРВ объясняется больших числов поддерживаемых аппаратных платформ (типов процессоров).

Полной противоположностью является ОСРВ SysBIOS+NDK (TI-RTOS, TI-RTOS-MCU) фирмы Texas Instruments, которая рассчитана исключительно на процессоры фирмы Texas Instruments (ПЦОС, процессоры ARM, микроконтроллеры MSP430), из которых только процессоры TI ARM имеют относительно широкое распространение. Никаких данных, подтверждающих число промышленно эксплуатируемых устройств с этой ОСРВ, не приводится.

Выводы по общему сравнению ОСРВ для среды TASDK для AMC-модулей TA6678x

На основе проведенного выше общего сравнения ОСРВ SysBIOS+NDK (Texas Instruments) и ThreadX+NetXDuo (Express Logic) для среды TASDK для AMC-модулей TA6678x, можно сделать следующие выводы:

  • ОСРВ SysBIOS+NDK является "свободно" распространяемой с открытым кодом. ОСРВ ThreadX+NetXDuo является коммерческой.

  • Функционал ОСРВ SysBIOS и ThreadX примерно одинаков.

  • Функционал сетевой функции ОСРВ ThreadX+NetXDuo несколько шире, чем у сетевой функции ОСРВ SysBIOS+NDK.

  • ОСРВ ThreadX имеет богатый сервисный функционал в виде универсального трассировщика и системного отладчика, которые полностью отсутствуют у ОСРВ SysBIOS, что значительно упрощает отладку и "тонкую" настройку разрабатываемого многозадачного прикладного ПО.

  • "Качество" API  интерфейса ОСРВ ThreadX+NetXDuo гораздо лучше, чем у ОСРВ SysBIOS+NDK. Однако, данное преимущество не имеет принципиального значения из-за того, что использование непосредственно вызовов API функций ОСРВ не требуется при разработки приложений на базе среды TASDK для AMC-модулей TA6678x.

  • Обе ОСРВ поставляются с исходными кодами, что позволяет модифицировать код при наличии такой необходимости. "Качество" исходного кода ОСРВ ThreadX+NetXDuo значительно лучше, чем у ОСРВ SysBIOS+NDK.  Однако, данное преимущество не имеет принципиального значения из-за того, что использование вызовов API функций ОСРВ не требуется при разработки приложений на базе среды TASDK для AMC-модулей TA6678x.

  • Только ОСРВ ThreadX+NetXDuo имеет пре-сертификацию по целому ряду промышленных стандартов UL и TUV, а также стандартов IoT (интернет вещей), что позволяет гаранировать надежность ее работы в "критических" приложениях.  ОСРВ SysBIOS+NDK не имеет пре-сертификации.

  • Техническая поддержка ОСРВ ThreadX+NetXDuo является быстрой и высококвалифицированной. Техническая поддержка ОСРВ SysBIOS+NDK осуществляется через он-лайн форум пользователей (и/или разработчиков) с большой задержкой ответов, а в большинстве случаев без ответа. Однако, данное преимущество не имеет принципиального значения из-за того, что использование вызовов API функций ОСРВ не требуется при разработки приложений на базе среды TASDK для AMC-модулей TA6678x.

  • ОСРВ ThreadX+NetXDuo установлена и функционирует более чем на 6 млрд. промышленно эксплуатируемых устройств в различных областях применения. Для ОСРВ SysBIOS+NDK не существует данных, подтверждающих число промышленно эксплуатируемых устройств с этой ОСРВ.

Тесты качества и производительности ОСРВ для среды TASDK для AMC-модулей TA6678x

Показатели качества и производительности ОСРВ являются основными характеристиками всех встраиваемых ОСРВ. Именно эти параметры главным образом определяют быстродействие ОСРВ и соответствие разрабатываемого ПО техническим требованиям приложения в части обработки данных реального времени и управления устройством.

В настоящем разделе будут рассмотрены сравнительные характеристики качества и производительности ОСРВ SysBIOS (TI) и ThreadX (Express Logic Inc), используемых в среде TASDK для ядра #0 ПЦОС TI TMS320C6678 AMC-модуля TORNADO-A6678/FMC.

Характеристики производительности ОСРВ

К характеристикам производительности ОСРВ обычно относят временные спецификации ОСРВ, включающие времена сохранения и восстановления контекста задач (потоков), переключения задач, создания и удаления задач, передачи сообщений, обработки семафоров, отклика на прерывания, выделения памяти, и др.

Казалось бы, что все эти параметры можно узнать из документации для конкретных ОСРВ. Однако, временные характеристики доступны далеко не для всех ОСРВ. Так, они никогда не публикуются для "свобдных" ОСРВ с отрытым кодом (FreeRTOS, TI SysBIOS, Linux и др). Это происходит потому, что основной целью и преимуществом "свободных" ОСРВ является именно открытый код, а не конкуренция и достижение максимально возможной производительности. Как правило, "свободные" ОСРВ с открытым кодом значительно проигрывают коммерческим ОСРВ по характеристикам производительности, которые существуют и развиваются в условиях жесткой конкуренции, и именно характеристики производительности ОСРВ для них являются одними из ключевых для успешного продвижения на рынке.

Временные спецификации для отдельных компонентов (объектов) ОСРВ (времена сохранения и восстановления контекста задач, переключения задач, создания и удаления задач, передачи сообщений, обработки семафоров, отклика на прерывания, выделения памяти, и др.) измеряют либо в единицах тактах процессора, или в единицах времени (нс, мкс) при заданной частоте процессора. Как правило, точно измерить эти параметры могут только сами производители ОСРВ, т.к. это требует доступ к коду ОСРВ и детальное знание кода ядра ОСРВ для определения "временных точек" кода, между которыми необходимо производить измерения на симуляторе процессора. Для "свободных" ОСРВ с открытым кодом, такие измерения в принципе могут быть сделаны и самим разработчиком прикладного ПО, однако, только если он достаточно хорошо разбирается в коде ядра ОСРВ.

Знание временных спецификаций для различных компонентов ОСРВ позволяет разработчику прикладного ПО оценить "временные издержки", вносимые ОСРВ в работу реально разрабатываемого приложения, и в целом сделать выбор ОСРВ для реализации своего проекта.

Характеристики качества ОСРВ

Кроме характеристик производительности ОСРВ, важными параметрами для выбора ОСРВ являются  характеристики "качества" ОСРВ, которые характеризуют "качество" выполнения функционала ОСРВ.

Основными характеристиками "качества" ОСРВ являются:

  • Соответствие ОСРВ требованию детерминизма.

  • Наличие "утечкек" памяти ОСРВ.

Характеристика детерминизма ОСРВ является фундаментальным показателем качества ОСРВ, отвечающая за способность ОСРВ гарантировать, что все готовые к выполнению задачи с одинаковыми приоритетами получат одинаковое число запусков от диспетчера задач в течение определенного интервала времени. Эта характеристика является непосредственной оценкой качества алгоритма работы диспетчера задач ядра ОСРВ, являющимся основным компонентом ОСРВ. Наличие детерминизма ОСРВ особенно критично для приложений с требованием гарантированного времени отклика на внешние события и непосредственно определяет гарантированное время отклика приложения на все внешние события.

Характеристика "утечки" памяти ОСРВ определяет качество алгоритма динамического управления пулом памяти ОСРВ, который также является одним из основных компонентов ОСРВ. Остутствие "утечки" памяти ОСРВ гарантирует долговременную правильную работу разрабатываемого приложения, которое использует динамичекое выделение и возврат областей памяти из различных задач ОСРВ. В противном случае,  приложение будет "фатально" остановлено через некоторое время после старта.

Тесты Thread Metrics оценки качества и производительности ОСРВ

В настоящее время нет общепринятых независимых тестов оценки производительности ОСРВ, которые бы широко использовались для сравнительной оценки временных характеристик ОСРВ для различных типов процессоров. Вместо этого, пользователи и сами фирмы-разработчики ОСРВ проводят свои множественные уникальные тесты, позводяющие получить абсолютные покомпонентные оценки временных характиристик ОСРВ в единицах времени (нс, мкс) с различной степенью достоверности. При неоспоримом желании иметь такие результаты, они все-таки не дают сравнительной оценки различных ОСРВ, и, что особенно важно, не позволяют оценить реальные типовые временные характеристики разрабатываемого приложения, которое всегда включает вызовы API-функций ОСРВ со встроенной диспетчеризацией задач. В последнем случае реальная временная оценка далеко не всегда получается путем суммирования временных параметров отдельных компонентов ОСРВ. Кроме того, абсолютные временные зарактеристик не дают оценок "качества" ОСРВ.

Для объективной оценки "качества" и производительности ОСРВ могут быть использованы унифицированные тесты Thread Metrics, разработанные фирмой Express Logic Inc. Исходный код для тестов Thread Metrics можно скачать по ссылке https://rtos.com/support/extra-tools/ после простой регистрации или запросить в фирме МикроЛАБ Системс как официальном дистрибьюторе фирмы Express Logic на территории РФ.

Тесты Thread Metrics являются простыми и понятными по сути, а также легко и без ограничений портируются на любую встраиваемую ОСРВ. Они также могут спортированы даже на ОС Linux и Windows с определенными ограничениями.

Тесты Thread Metrics включают:

  • Тест Cooperative Scheduling.

  • Тест Preemptive Scheduling.

  • Тест Interrupt Processing.

  • Тест Interrupt Preemption Processing.

  • Тест Message Processing.

  • Тест Synchronization Processing.

  • Тест Memory Allocation.

Схемы (алгоритмы) для всех тестов Thread Metrics приведены на рисунках 1-7.

Рис.1Схема теста Thread Metrics Cooperative Scheduling.

 

Рис.2.  Схема теста Thread Metrics Preemptive Scheduling.

 

Рис.3.  Схема теста Thread Metrics Interrupt Processing.

 

Рис.4.  Схема теста Thread Metrics Interrupt Preemption Processing.

 

Рис.5.  Схема теста Thread Metrics Message Processing.

 

Рис.6.  Схема теста Thread Metrics Synchronization Processing.

 

Рис.7.  Схема теста Thread Metrics Memory Allocation.

Все тесты являются простыми и цикличными, построенные таким образом, чтобы основное время в этих тестах занимали соответствующие вызовы API функций ОСРВ и диспетчеризация задач в ядре ОСРВ, а не смысловая обработка данных, которая будет "размывать" характеристики производительности ОСРВ. В результате, время выполнения каждого цикла с достаточной точностью будет соответствовать времени выполнения вызовов к ядру ОСРВ и будет включать как время выполнения API-функций ОСРВ, так и время диспетчеризации задач.

В качестве объективной оценки производительности для каждого теста используется число полных циклов за определенный промежуток времени.

ВНИМАНИЕ

Тесты Thread Metrics не являются "абсолютными" измерительными тестами, позволяющими измерить отдельные временные характеристики ОСРВ (время сохранения и восстановления контекста, время переключения задач, время обработки ссобщений, и др.) в единицах тактов процессора. Как правило, такие тесты не дают полноценных интегральных временных характеристик поведения ОСРВ в реальных приложениях.

Вместо этого, тесты Thread Metrics являются сравнительными тестами, позволяющим сравнивать практически важные интегральные временные характеристики ОСРВ для различных комбинаций операций ядра ОСРВ, которые часто используются в реальных приложениях.

Именно поэтому тесты Thread Metrics были выбраны для сравнительной оценки качества и производительности ОСРВ, используемых в среде TASDK для AMC-модулей TORNADO-Axxx.

Оценка качества ОСРВ в тестах Thread Metrics

Особое значение среди тестов Thread Metrics имеют тесты Cooperative Scheduling и Preemptive Scheduling, которые позволяют определить "качество" ОСРВ в виде ее соответствия фундаментальному требованию детерминизма ОСРВ. Эта характеристика особенно критична для приложений с требованием гарантированного времени отклика на внешние события.

В тестах Thread Metrics Cooperative Scheduling и Preemptive Scheduling используются задачи с одинаковыми приоритетами. В случае ОСРВ, соответствующей требованию детерминизма, все эти задачи должны получить одинаковое число проходов за заданное время от диспетчера задач (допустимая ошибка составляет  ±1 от числа проходов). В противном случае, тестируемая ОСРВ считается не соответствующей фундаментальному требованию детерминизма.

Результаты тестов Thread Metrics для ОСРВ среды TASDK для AMC-модулей TA6678x

Перед проведением тестирования, все тесты Thread Metrics были портированы фирмой МикроЛАБ Системс на ОСРВ SysBIOS (TI) и ThreadX (Express Logic Inc) для ядра #0 ПЦОС AMC-модуля TORNADO-A6678/FMC. Данные тесты входят в комплект поставки TASDK для AMC-модулей TA6678x.

На рис.8 представлены результаты тестов Thread Metrics качества и производительность ОСРВ SysBIOS (TI) и ThreadX (Express Logic Inc) для ядра #0 ПЦОС AMC-модуля TORNADO-A6678/FMC.

Рис.8Результаты теста Thread Metrics для ОСРВ SysBIOS (TI) и ThreadX (Express Logic Inc) для ядра #0 ПЦОС AMC-модуля TORNADO-A6678/FMC.

Тесты Thread Metrics для ядра #0 ПЦОС AMC-модуля TORNADO-A6678/FMC показали следующее:

  1. Обе ОСРВ SysBIOS фирмы Texas Instruments и ThreadX фирмы Express Logic соответствуют требованию детерминизма ОСРВ, т.е. гарантируют выполнение всех задач за заданный промежуток времени.

  2. ОСРВ ThreadX фирмы Express Logic имеет до ~3x раз большую производительность чем ОСРВ SysBIOS фирмы Texas Instruments.

Таким образом, производительность ОСРВ ThreadX фирмы Express Logic значительно превосходит производительность ОСРВ SysBIOS фирмы Texas Instruments для ядра #0 ПЦОС TMS320C6678. Выбор ОСРВ ThreadX фирмы Express Logic является более предпочтительным по сравнению с ОСРВ SysBIOS фирмы Texas Instruments для TASDK для высокоскоростных приложений для ядра #0 ПЦОС TMS320C6678.

Тесты пропускной способности сетевой функции ОСРВ для среды TASDK по интерфейсу 1GbE SGMII ПЦОС AMC-модулей TA6678x

Показатели пропускной способности сетевой функции ОСРВ характеризуют максимальное быстродействие Ethernet интерфейсов в разрабатываемом приложении. Эти параметры определяют соответствие разрабатываемого ПО требованиям приложения в части максимальной скорости внешней коммуникации для ввода/вывода и управления устройствов по LAN/WAN портам.

В настоящем разделе будут рассмотрены характеристики пропускной способности сетевыx функций ОСРВ SysBIOS (TI) и ThreadX (Express Logic Inc), используемых в среде TASDK для 1GbE портов SGMII-0/1 и ядра #0 ПЦОС TI TMS320C6678 AMC-модуля TORNADO-A6678/FMC.

Характеристики пропускной способности сетевой функции ОСРВ

Пропускная способность сетевой функции ОСРВ измеряется в количестве принятых/переданных бит в секунду (bps) и сильно зависит от реализации сетевой функции (IP стека) ОСРВ, настройки параметров задач ОСРВ, загрузки процессора, а также от типов используемых коммуникационных IP пакетов (UDP, TCP/IP).

Для исключения зависимости от реализации конкретного пользовательского приложения, используются характеристики максимальной пропускной способности сетевой функции ОСРВ, которые определяются алгоритмом работы IP стека и характеристиками производительности ОСРВ (времена сохранения и восстановления контекста задач, время переключения задач, время реакции на прерывания, и др.). Измерения производят для различных типов используемых IP пакетов и отдельно в режимах приема и передачи данных.

Тесты IPERF оценки производительности сетевой функции ОСРВ

Тесты IPERF является общепринытыми свободно распространяемыми тестами с открытым кодом (https://iperf.fr/) для объективной оценки пропускной способности сетевого функционала ОСРВ с применением разных типов IP пакетов.

Тесты IPERF включают:

  • Тест IPERF UDP Send пропускной способности сетевой функции ОСРВ при передаче UDP пакетов.

  • Тест IPERF UDP Receive пропускной способности сетевой функции ОСРВ при приеме UDP пакетов.

  • Тест IPERF TCP Send пропускной способности сетевой функции ОСРВ при передаче TCP пакетов.

  • Тест IPERF TCP Receive пропускной способности сетевой функции ОСРВ при приеме TCP пакетов.

Все тесты IPERF производятся между двумя нодами - испытуемым устройством и измерительным устройством, используя прямое соединение Ethernet портов без внешних коммутаторов IP пакетов. В качестве измерительного устройства обычно используется ПК, для которого имеется специальная программа на JavaScript.

Для тестов IPERF AMC-модуля TA6678x использовался 1GbE порт #0 ПЦОС, который доступен через порт #0 AdvancedMC интерфейса при установке AMC-модуля в адаптер AdvancedMC слота (симулятор кросс-панели MicroTCA). В качестве измерительного устройства использовался 1GbE порт ПК c Windows 7/64.

Суть тестов IPERF в следующем:

  • Для теста IPERF UDP Send, испытуемое устройство непрерывно генерирует UDP пакеты заданной длины, а измерительное устройство их принимает и считает количество принятых пакетов за заданной промежуток времени. Смысловая обработка принятых байтов данных UDP пакетов не производится.  Измерительное устройство должно гарантированно успевать принимать генерируемые испытуемым устройством UDP пакеты. Количество принятых байт данных измерительным устройством в течение заданного времени далее пересчитывается в максимальную пропускную способность (bps) испытуемого устройства при передаче UDP пакетов.

  • Для теста IPERF UDP Receive, измерительное устройство непрерывно генерирует UDP пакеты заданной длины c максимально возможной скоростью, а испытуемое устройство их принимает и считает количество принятых пакетов за заданной промежуток времени. Смысловая обработка принятых байтов данных UDP пакетов не производится. Измерительное устройство должно гарантированно иметь возможность генерировать большее число UDP пакетов в единицу времени чем их способно принять испытуемое устройством. Количество принятых байт данных испытуемым устройством в течение заданного времени далее пересчитывается в максимальную пропускную способность (bps) испытуемого устройства при приеме UDP пакетов. Также вычисляется процент потерь принимаемых UDP пакетов.

  • Для теста IPERF TCP Send, испытуемое устройство непрерывно генерирует TCP пакеты заданной длины, а измерительное устройство их принимает, подтверждает и считает количество принятых пакетов за заданной промежуток времени. Смысловая обработка принятых байтов данных TCP пакетов не производится. Измерительное устройство должно гарантированно успевать принимать и подтверждать генерируемые испытуемым устройством TCP пакеты. Количество принятых байт данных измерительным устройством в течение заданного времени далее пересчитывается в максимальную пропускную способность (bps) испытуемого устройства при передаче TCP пакетов.

  • Для теста IPERF TCP Receive, измерительное устройство непрерывно генерирует TCP пакеты заданной длины c максимально возможной скоростью, а испытуемое устройство их принимает, подтверждает и считает количество принятых пакетов за заданной промежуток времени. Смысловая обработка принятых байтов данных TCP пакетов не производится. Измерительное устройство должно гарантированно иметь возможность принимать большее число TCP пакетов в единицу времени чем их способно принять испытуемое устройством. Количество принятых байт данных испытуемым устройством в течение заданного времени далее пересчитывается в максимальную пропускную способность (bps) испытуемого устройства при приеме TCP пакетов. Также вычисляется процент потерь принимаемых TCP пакетов.

Результаты тестов IPERF для сетевой функции ОСРВ СРЕДЫ TASDK для AMC-модулей TA6678x

Перед проведением тестирования, все тесты IPERF были портированы фирмой МикроЛАБ Системс на ОСРВ SysBIOS с сетевой опцией NDK (Texas Instruments) и ОСРВ ThreadX с сетевой опцией NetXDuo (Express Logic Inc) для 1GbE порта SGMII-0 и ядра #0 ПЦОС AMC-модуля TORNADO-A6678/FMC. Данные тесты входят в комплект поставки TASDK для AMC-модулей TA6678x.

На рис.9 представлены результаты тестов IPERF пропускной способности сетевых функций ОСРВ SysBIOS+NDK (TI) и ThreadX+NetXDuo (Express Logic Inc) для 1GbE SGMII порта и ядра #0 ПЦОС AMC-модуля TORNADO-A6678/FMC.

Рис.9Результаты тестов IPERF для сетевых функций ОСРВ SysBIOS+NDK (TI) и ThreadX+NetXDuo (Express Logic Inc) для 1GbE SGMII порта и ядра #0 ПЦОС TMS320C6678 AMC-модуля TORNADO-A6678/FMC.

Тесты IPERF для сетевой функции NetXDuo ОСРВ ThreadX фирмы Express Logic и сетевой функции NDK ОСРВ SysBIOS фирмы Texas Instruments показали следующее:

  1. Сетевая функция NetXDuo ОСРВ ThreadX имеет до ~2.4x раз большую пропускную способность по тестам TCP/Send, TCP/Receive и UDP/Send, чем сетевая функция NDK ОСРВ SysBIOS.

  2. Cетевая функция NDK ОСРВ SysBIOS имеет недопустимо большие потери при приеме UDP пакетов для интерйеса 1GbE. Пропускная способность теста UDP/Receive составила всего ~6Mbps для сетевой функция NDK ОСРВ SysBIOS, что в ~150 раз хуже, чем для сетевой функции NetXDuo ОСРВ ThreadX. В связи с очевидной аномальностью этого результата, он не учитывался в сравненительном анализе. Наиболее вероятно, этот результат связан с недоработками IP стека сетевой функция NDK ОСРВ SysBIOS для UDP пакетов. Пользователю следует принимать во внимание такой результат при приеме UDP пакетов при разработке приложений для ОСРВ SysBIOS с сетевой опцией NDK.

  3. Достигаемая пропускная способность сетевой функции NetXDuo ОСРВ ThreadX составляет ~860Mbps при передаче и ~930Mbps при приеме TCP/IP пакетов, что соответствует практически полной реализации максимальной пропускной способности  1000Mbps интерфейса 1GbE ПЦОС.

  4. Достигаемая пропускная способность сетевой функции NetXDuo ОСРВ ThreadX составляет ~960Mbps при передаче и приеме UDP пакетов, что соответствует практически полной реализации максимальной пропускной способности 1000Mbps интерфейса 1GbE ПЦОС.

Таким образом, выбор ОСРВ ThreadX является более предпочтительным для сетевой коммуникации по сравнению с ОСРВ SysBIOS для разработки высокоскоростных приложений на базе среды TASDK для ядра #0 ПЦОС TMS320C6678 с коммуникацией по порту 1GbE ПЦОС.

Выбор ОСРВ для среды TASDK для AMC-модулей TA6678x

В таблице 2 представлены суммарно обобщенные критерии выбора ОСРВ для TASDK для разработки прикладного ПО для ядра #0 ПЦОС TI TMS320C6678 AMC-модулей TA6678х. Рекомендации основаны на приведенных выше общем сравнении ОСРВ и сравнительных тестах ОСРВ. Эти же рекомендации справедливы для выбора ОСРВ для других устройств на базе ПЦОС TI TMS320C6678, т.е. не для AMC-модулей TA6678х.

Таблица 2.  Выбор ОСРВ для среды TASDK для разработки приложений для ядра #0 ПЦОС TI TMS320C6678 для AMC-модулей TA6678x.

Критерий и/или требования к ПО ПЦОС

Рекомендуемая ОСРВ для среды TASDK

Примечания

"Только ЦОС" приложение без коммуникации по портам 1GbE ПЦОС.

--> ОСРВ не используется

Используется библиотека "DSP Bare-metal" среды TASDK/Basic. Среда TASDK/Basic входит в стандартный комплект поставки AMC-модулей TA6678x.

Нет каких-либо требований.
Тип ОСРВ не имеет значения.

--> SysBIOS+NDK
(Texas Instruments)

Среда TASDK/Basic с ОСРВ SysBIOS+NDK (TI) входит в стандартный комплект поставки AMC-модулей TA6678x.

"Свободно" распространяемая бесплатная ОСРВ с открытым кодом.

Высокоскоростные многозадачные приложения без коммуникации по портам 1GbE ПЦОС.

--> ThreadX+NetXDuo
(Express Logic)

ОСРВ ThreadX+NetXDuo для среды TASDK/ThreadX заказывается отдельно от AMC-модулей TA6678x.

Существуют различные комплекты поставки ОСРВ ThreadX+NetXDuo и цены для поэтапной разработки ПО и перехода к сертификации ПО:

  • Скомпилированные библиотеки ОСРВ ThreadX+NetXDuo без исходного кода.

  • ОСРВ ThreadX+NetXDuo с исходным кодом.

  • Пре-сертифицированная ОСРВ ThreadX+NetXDuo с исходным кодом и сертификационной документацией.

Все скомпилированные демо/тесты в составе TASDK для AMC-модулей TA6678x с ОСРВ ThreadX+NetXDuo входят в стандартный комплект поставки AMC-модулей TA6678x.

Высокоскоростная коммуникация по портам 1GbE ПЦОС с применением TCP/IP пакетов.

Высокоскоростная коммуникация по портам 1GbE ПЦОС с применением UDP пакетов.

Поддержка дополнительных IP-протоколов (AutoIP, DHCP, DNS, FTP, HTTP, POP3, PPP, SMTP, SNMP, Telnet, TFTP) и/или "защищенных протоколов" (IP-sec) при коммуникации по портам 1GbE ПЦОС.

Высокая надежность работы многозадачного ПО для ядра #0 ПЦОС.

Наличие универсального трассировщика и системного отладчика для отладки и "тонкой" настройки многозадачного ПО для ядра #0 ПЦОС.

Наличие пре-сертификации по промышленным стандартам UL и TUV (для большинства стандартов есть прямые аналоги в ГОСТ).

Последующая сертификация разрабатываемого ПО.

  

Фирма «МикроЛАБ Системс»

Дубнинская ул, д. 83, оф. 612, г.Москва, 127591, Российская Федерация
тел.
+7-(499)-900-6208
E-mail: info@mlabsys.ru    WEB: www.mlabsys.ru  

 

    (C) МикроЛАБ Системс, 1992-2022
последнее обновление: 15 Apr 2022 12:29