Режимы выполнения

Ядро Simulink® Real-Time™ имеет три взаимоисключающих режима выполнения. Можно выполнить приложение реального времени в одном режиме нев реальном времени и в двух режимах реального времени.

  • Прервите режим — Чтобы использовать этот режим реального времени, на панели Simulink Real-Time Options в диалоговом окне Configuration Parameters, установить Execution mode на Real-Time.

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

  • Режим Polling — Чтобы использовать этот режим реального времени:

    1. Используйте многожильный целевой компьютер.

    2. В Simulink Real-Time Explorer проверяйте, что целевая установка Multicore CPU установлена в 'on' для целевого компьютера, который вы намереваетесь использовать.

    3. На Simulink Real-Time Options разделяют на области в диалоговом окне Configuration Parameters, набор Execution mode к Real-Time.

    4. Позвольте опросить путем установки установки TLCOptions -axpcCPUClockPoll на ненулевое значение.

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

  • Режим Freerun — Чтобы использовать этот режим нев реальном времени, в диалоговом окне Configuration Parameters:

    1. На панели Simulink Real-Time Options, набор Execution mode к Freerun.

    2. На панели Solver снимите флажок для Treat each discrete rate as a separate task.

    В этом режиме поток приложения реального времени не ожидает таймера. Ядро запускает приложение максимально быстро. Если приложение реального времени имеет условный код, время между каждым выполнением может отличаться. Многоскоростные модели не могут быть выполнены в режиме выполнения Freerun.

Прервите режим

То, когда вы устанавливаете Execution mode на Real-Time на панели Simulink Real-Time Options в диалоговом окне Configuration Parameters, прерываете режим, является набором режима выполнения в реальном времени по умолчанию. Этот режим обеспечивает самую большую гибкость. Выберите этот режим для приложений реального времени, которые выполняются в данном основном шаге расчета, не перегружая центральный процессор.

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

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

Полная задержка режима прерывания эквивалентна модели Simulink, содержащей сто нетривиальных блоков. По крайней мере 5% высоты требуются, потому что центральный процессор должен также обслужить более низкие приоритетные задачи. Это требование может вызвать дополнительные неудачные обращения в кэш и поэтому неоптимальную скорость выполнения.

Опрос режима

Режим Polling для ядра разработан, чтобы выполнить приложения реального времени в шагах расчета близко к пределу центрального процессора. Режим Polling с высокоскоростным и платами ввода-вывода низкой задержки и драйверами позволяет вам достигать меньших шагов расчета для приложений реального времени. Вы не можете достигнуть этих меньших шагов расчета с помощью режима прерывания программного обеспечения Simulink Real-Time.

Режим Polling имеет два основного использования:

  • Системы управления — модели Системы управления среднего размера модели и сложности ввода-вывода, которые выполняются во времена небольшой выборки (Ts = 10–50 мкс).

  • Системы DSP — Основанные на выборке системные модели DSP среднего размера модели и сложности ввода-вывода, которые выполняются на уровне высоких частот дискретизации (Fs = 20-100 кГц). Модели DSP в основном аудио процесса и речевые данные.

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

В режиме прерывания, когда центральный процессор закончил выполнять код в реальном времени, он уступает остальную часть его времени выполнения операционной системе. Операционная система может использовать это время, чтобы выполнить другие задачи, такие как задачи ввода-вывода или фон. Когда следующий шаг выполнения планируется, таймер генерирует прерывание, и Simulink Real-Time выполняет следующий шаг.

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

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

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

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

Прежде, чем рассмотреть режим опроса, сделайте следующее:

  • Оптимизируйте скорость выполнения модели — Чтобы найти возможную оптимизацию скорости с помощью альтернативных блоков, использовать Советника по вопросам Производительности или профилировщик. Если модель содержит непрерывные состояния, дискретизация этих состояний значительно уменьшает сложность модели. Можно избежать дорогостоящего алгоритма интегрирования фиксированного шага. Если непрерывные состояния не могут быть дискретизированы, используйте алгоритм интегрирования с самым низкоуровневым, которое все еще приводит к необходимым числовым результатам.

  • Используйте самый быстрый доступный центральный процессор — Использование центральный процессор с самой высокой тактовой частотой, доступной для данного форм-фактора целевого компьютера. Для настольного форм-фактора используйте центральный процессор с тактовой частотой выше 3 ГГц. Для модели мобильной системы (например, форм-фактор PC/104), используют центральный процессор с тактовой частотой выше 1 ГГц.

  • Используйте самые низкие модули ввода-вывода задержки и доступные драйверы — Много приложений реального времени связываются с модулями ввода-вывода по шине PCI. Каждый доступ к регистру вводит сравнительно высокое время задержки. Используя самые низкие модули ввода-вывода задержки и доступные драйверы крайне важно.

  • Рассмотрите под управлением менее критический код на более медленном уровне, использовав в своих интересах многозадачные возможности Simulink Real-Time.

Установите режим опроса

Режим Polling является альтернативой режиму прерывания по умолчанию ядра. Ядро на загрузочном медиа-контенте, созданном пользовательским интерфейсом, позволяет запускать приложение реального времени в любом режиме, не используя другой загрузочный диск.

По умолчанию приложение реального времени выполняется в режиме прерывания. Чтобы переключиться на опрос режима, вы позволяете опросить использование установки TLCOptions.

Следующий пример использует xpcosc.

  1. Открытый Simulink Real-Time Explorer.

  2. Выберите панель Свойств для целевого компьютера, который вы намереваетесь использовать.

  3. В разделе Target settings проверяйте, что параметр Multicore CPU выбран.

  4. Открытая модель xpcosc.

  5. В диалоговом окне Configuration Parameters, на панели Simulink Real-Time Options, устанавливает Execution mode на Real-Time.

  6. В Командном окне введите:

    set_param('xpcosc','TLCOptions', '-axpcCPUClockPoll=1')
  7. Создайте и загрузите приложение реального времени.

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

set_param('xpcosc','TLCOptions','')
set_param('xpcosc','TLCOptions','-axpcCPUClockPoll=0')

Восстановите и загрузите приложение реального времени.

Ограничения на многоядерные процессоры

Опрос режима запускается только на целевом компьютере многоядерного процессора с многожильной включенной обработкой. Для получения дополнительной информации смотрите Настройку Многоядерного процессора.

Режим Polling отключает прерывания на ядре, куда задача базовой ставки запускается. Фоновые задачи и образцовые задачи кроме задачи базовой ставки неактивны на этом ядре. Задачи для коммуникации Ethernet, обновлений целевого компьютера и передач UDP работают на других ядрах. Прерывания все еще включены на ядрах кроме того, запускающего задачу опроса.

Смотрите также

| |

Похожие темы