Опции перегрузки ЦП

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

Например, примите, что вашим шагом расчета модели является 1 мс, но выполнение конкретного шага модели берет 3.1 мс. Этот шаг модели заставляет ядро пропускать три шага и вызывает три перегрузки.

Как правило, ядро Simulink® Real-Time™ останавливает выполнение модели, когда это сталкивается с перегрузкой ЦП. Однако некоторые приложения реального времени могут терпеть несколько перегрузок ЦП без значительной потери данных, например, во время запуска. Для таких приложений можно позволить конкретное количество и настройку перегрузок ЦП. Вы делаете это использование TLCOptions настройки xPCMaxOverloads, xPCMaxOverloadLen, и xPCStartupFlag.

Примечание

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

Поведение опции

Если ваше приложение реального времени вызывает перегрузку ЦП, оно заканчивается, текущее выполнение продвигаются, и игнорирует прерывания по таймеру. В конце шага выполнения ядро сравнивает количество перегрузки ЦП с пределами, заданными xPCMaxOverloads и xPCMaxOverloadLen. Если количество не превышает пределы, приложение выполняется на следующем шаге. В противном случае это останавливается.

Пределы:

  • xPCMaxOverloads — Количество приемлемых перегрузок во время выполнения приложения реального времени.

    Когда xPCMaxOverloads установлен в значение, выполнение остановок программного обеспечения Simulink Real-Time с перегрузкой ЦП при следующей перегрузке в рамках того же выполнения приложений. Например, если xPCMaxOverloads установлен в 3, программное обеспечение останавливается с перегрузкой ЦП при четвертой перегрузке в том же выполнении приложений.

    Значение по умолчанию 0 средние значения, что перегрузки указаны на первой перегрузке.

  • xPCMaxOverloadLen — Количество приемлемых перегрузок, в модулях шага расчета, в том же шаге выполнения.

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

    Значение по умолчанию 0 средние значения, что перегрузки указаны на первой перегрузке в том же шаге выполнения.

    Задайте значение, которое меньше чем или равно значению для xPCMaxOverloads. Если xPCMaxOverload установлен в значение, например, 4, и xPCMaxOverloadLen не задан, остановки приложения реального времени, если одно из следующего происходит:

    • Совокупные перегрузки начиная с выполнения запускаются, больше 4.

    • Один шаг выполнения имеет две перегрузки.

  • xPCStartupFlag — Количество выполнения модели при запуске.

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

    Значение по умолчанию 1 средние значения, что перегрузки проигнорированы на первом шаге. Если xPCMaxOverloads и xPCMaxOverloadLen не установлены, их настройка по умолчанию определяет ответ программного обеспечения на перегрузки.

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

Эти три опции взаимодействуют. Когда Ядро Simulink Real-Time запускает модель, оно сравнивает количество перегрузок ЦП к значениям xPCMaxOverloads и xPCMaxOverloadLen. Когда количество перегрузок ЦП достигает ниже этих двух значений, ядро прекращает выполнять модель.

Предположим, что вы вводите следующий TLCOptions настройки для модели xpcosc.

set_param('xpcosc','TLCOptions','-axPCMaxOverloads=30 
          -axPCOverLoadLen=2 -axPCStartupFlag=5')

С этими настройками программное обеспечение игнорирует перегрузки ЦП для первых пяти итераций через модель. После первых пяти итераций программное обеспечение позволяет до 30 Перегрузки ЦП, позволяя самое большее две перегрузки ЦП на шаг модели.

Можно использовать блоки Set Overload Counter и Get Overload Counter, чтобы установить и отследить числа перегрузки ЦП. Можно использовать блок Time Stamp Counter, чтобы профилировать модель

Нарушение xPCMaxOverloads

Примите тот xPCMaxOverloads 3 и xPCMaxOverloadLen 2. Программное обеспечение терпит первые три перегрузки и прекращает выполняться в четвертом. Количество перегрузок превышает максимальное количество, допускал выполнение в реальном времени.

Нарушение xPCMaxOverloadLen

Примите тот xPCMaxOverloads 3 и xPCMaxOverloadLen 1. Программное обеспечение терпит первые две перегрузки и прекращает выполняться в третьем. Второе выполнение шага более длительно, чем максимальная позволенная продолжительность перегрузки одного шага расчета.

Нарушение xPCStartupFlag

Примите тот xPCStartupFlag 3. Ядро игнорирует перегрузки ЦП для первых трех временных шагов и прекращает выполняться на первой перегрузке в следующем временном шаге.

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

| |