Что удерживает производителей оборудования от перехода на многоядерное оборудование на основе RTOS?

Что удерживает производителей оборудования от перехода на многоядерное оборудование на основе RTOS?

Недавно Rockwell Collins сертифицировала свои системы отображения на базе RTOS:

Почему крупные игроки не переходят в такие сегменты, как RTOS, многоядерные процессоры? Это из-за трудностей с сертификацией?

Многие системы авионики от разных производителей используют RTOS. Чего-то не хватает в вашем вопросе?
Я работаю в отрасли авионики уже более 8 лет, я еще никогда не сталкивался с RTOS, многоядерными проектами. Может не в той компании работаете? :)
Я думаю, что это может быть языковая путаница. Вы спрашиваете только о многоядерности? Думаю, да, поскольку INTEGRITY, VxWorks и т. д. — все это RTOS, и они существуют уже много лет.
Речь идет об ОСРВ и Mutlicore. Как я уже сказал, возможно, он участвовал в разработке/тестировании системы на основе RTOS. Если оставить в стороне RTOS, как насчет многоядерных систем?
Извините, не знаю об этом. Я бывший инженер по авионике, теперь занимаюсь программным обеспечением, и мои знания об оборудовании устарели. Последние, над которыми я работал, были одноядерными, но только потому, что многоядерные тогда еще не были разработчиками.
На RTOS и Multicire — « aviationtoday.com/av/issue/feature/… » и на Multicore « mil-embedded.com/articles/… » Так что мне было интересно, кто-то из этого сообщества уже прошел :)
намного сложнее тестировать SMP-системы и нет реального преимущества для авионики?
Почему никто не видит официальных препятствий для сертификации многоядерности, если кто-то полностью вовлечен в процесс сертификации?
Я верю, что ОСРВ QNX Neutrino существует в сертифицированном оборудовании, и мне придется покопаться, чтобы выяснить, какое из них. Хотя ОС действительно многоядерна, мне придется копать дальше, чтобы выяснить, действительно ли сертифицированный процессор является многоядерным.
Если не считать больших основных и многофункциональных дисплеев для авионики, потребность в многоядерных процессорах с полноценной ОСРВ очень мала. Кроме того, стоимость лицензии на сертифицированную ОС может быть очень высокой. Стоимость сертификации для разработки пользовательской RTOS еще более непомерно высока. Легче (и быстрее) писать и сертифицировать программное обеспечение, написанное для «голого железа».

Ответы (3)

Стоимость разработки, сложность и необходимость.

В системе, которая должна быть жесткой в ​​реальном времени, многоядерность — это боль (думаю, дорогая), и большинство вещей, которые должны быть жесткими в реальном времени, не так сложны. Вещи, которые не должны быть в жестком реальном времени, не должны быть RTOS, поэтому у вас есть одна система, которая обрабатывает все вещи в жестком реальном времени, и другая, которая работает под управлением Linux и обрабатывает другие вещи.

… и даже если бы было достаточно вещей жесткого реального времени, чтобы занять несколько процессоров, с точки зрения надежности гораздо лучше запускать их на совершенно отдельных платах, что именно и делается: критические системы представляют собой множество независимых блоков, каждый с отдельная небольшая задача.

Многоядерная технология AFAIK в настоящее время используется в некоторых автомобильных решениях, однако обычно не как SMP( симметричная многоядерная обработка ), а либо AMP( асимметричная многоядерная обработка ), где каждое ядро ​​выполняет свои собственные выделенные задачи, либо как двойные ядра с фиксированным шагом, выполняющие один и тот же код для дополнительных надежность.

В этой статье инженеры Freescale предлагают несколько причин для его внедрения в автомобили:

Автомобильные SoC традиционно были одноядерными, поскольку для них не предназначалось много вычислительной работы или высокопроизводительных приложений. Автомобили были проще, как и приложения, а также SoC. По мере того, как все больше и больше электроники освобождали место в автомобилях, сложность SoC продолжала расти. Теперь основное внимание уделяется тому, чтобы большая часть автомобилей находилась под электронным управлением.

Высококачественные автомобили, выпускаемые в наши дни, оснащены такими функциями, как электронный контроль устойчивости (ESC), система контроля тяги (TCS), усовершенствованные системы помощи водителю (ADAS) и т. д. Эти функции требуют сложных SoC, которые могут быстро собирать, обрабатывать и передавать данные. скорость от нескольких периферийных устройств.

Независимо от того, на какой высокой частоте работает одно ядро, оно всегда будет иметь узкие места и проблемы с производительностью при выполнении нескольких задач. Одно ядро, работающее на более высокой частоте, потребляет больше энергии. Это делает одноядерную архитектуру непригодной для приложений со сверхнизким энергопотреблением. Двухъядерная архитектура SOC обеспечивает лучшее соотношение производительности и энергопотребления, чем одноядерная архитектура.

У Freescale также есть документ Embedded Multicore: An Introduction , в котором подробно рассматриваются преимущества и проблемы многоядерных чипов во встраиваемых средах. Например (на межблочных шинах):

По иронии судьбы, хотя микропроцессоры могут почти мгновенно выполнять сложные задачи, на которые десятки лет назад институты тратили миллионы и строили комнаты, переход к многоядерным процессорам выявил простую проблему: поскольку общая пропускная способность должна быть разделена между ведущими шинами, больше ядер означает меньшую пропускную способность на ядро.

Кроме того, с увеличением трафика шины возрастает риск коллизий, что еще больше снижает пропускную способность. Короче говоря, шина не масштабируется выше четырех ядер.

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

Однако в какой-то момент они могут быть внедрены и в авионике:

Рабочая группа Multicore for Avionics (MCFA), в которую входят представители BAE Systems, BARCO, Boeing, EADS, ELBIT, GE Aviation, Hamilton Sunstrand, Honeywell, Rockwell Collins, Thales и Freescale, была создана, чтобы помочь коммерческим авиационным компаниям использовать преимущества производительности, мощности и размера сложных встроенных многоядерных процессоров, таких как процессоры Freescale

источник

Отчет о заседании рабочей группы 2013 г.: http://onboard.thalesgroup.com/successful-multi-core-for-avionics-working-group-meeting-with-authorities/

Многоядерные системы означают, что на уровне процессора должна быть шина межсоединений, которая разделяет данные. Это межсоединение обеспечивает некоторый уровень неопределенности на уровне наносекунд — что, если запрошенные данные находятся в кэше ядра 1, а процесс — в ядре 2? Что делать, если возникает спор?

Кроме того, когда RTOS запускает микроядро, как она будет использовать несколько ядер — как отдельные единицы? Будет ли он соответствовать строгим правилам безопасности, если он использует общий кеш L3, но имеет отдельный кеш L1/L2?

Мы очень хорошо научились создавать алгоритмы когерентности кэша: en.wikipedia.org/wiki/Cache_coherence Существуют альтернативные механизмы для программирования в SMP-системах, и на самом деле они намного ближе к тому, что существующие системы используют для вызываемой передачи сообщений или модели акторов. .