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

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

Например, примите, что ваш образцовый шаг расчета является мс 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, позволяя самое большее две перегрузки ЦП на образцовый шаг.

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

Нарушение xPCMaxOverloads

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

Нарушение xPCMaxOverloadLen

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

Нарушение xPCStartupFlag

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

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

| |