Определите и используйте время выполнения задачи

В этом примере показано, как выбрать доступный метод для определения времени выполнения для задач на вашем процессоре. Блок Task Manager использует время выполнения задачи, чтобы симулировать вытеснение задачи, переполнения и параллельное выполнение. Точность времени выполнения задачи обеспечивает доверие, что симуляция задачи отражает фактическое поведение на вашем процессоре.

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

Разделы в этом примере объясняют и демонстрируют каждый метод с помощью системной модели в качестве примера. В то время как этот пример использует Xilinx Zynq ZedBoard™, эти методы могут использоваться с любым, поддержал аппаратную плату SoC Blockset™ или платформу. Чтобы узнать больше о симуляции выполнения задачи, смотрите, Что такое Выполнение Задачи? тема и пример Выполнения Задачи.

open_system('soc_task_profiling');

Используйте алгоритм, синхронизирующий технические требования

Когда только системные требования будут доступны, используйте время выполнения худшего случая (WCET). WCET должен быть установлен как процент периода задачи (например, 80%).

Модель в качестве примера имеет две задачи с периодами 0,01 с и 0,03 с. Используя WCET, средние времена выполнения должны быть установлены в:

  • 8e-03 для Task1

  • 24e-03 для Task2

Этот подход производит время выполнения низкой точности. Когда вы недооцениваете WCET, ресурсы процессора могут использоваться неэффективно. Точно так же, когда вы переоцениваете WCET, нежелательные вытеснения задачи или переполнения могут произойти.

Профилируйте программное обеспечение Algorithm Using в цикле (SIL)

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

Эти шаги показывают, как использовать профилирование SIL, чтобы определить информацию о задаче для модели в качестве примера.

1. Щелкните правой кнопкой по блоку Model, нажмите Model Parameters (ModelReference) и выберите Software в цикле (SIL) в выпадающем режиме Simulation. Нажать ОК.

2. На вкладке Simulation нажмите Run, чтобы запустить SIL симуляцию. Когда симуляция завершится, кликните по блоку Model, чтобы получить метрики времени выполнения. Этот рисунок показывает метрический отчет времени выполнения.

3. Средние времена выполнения для Task1 и Task2, которые соответствуют уровням этих задач:

  • 0.30e-03 для Task1

  • 0.25e-03 для Task2

4. Используйте это время выполнения задачи в блоке Task Manager, чтобы установить среднее значение длительности задачи. Можно использовать другое время выполнения задачи, чтобы установить другие параметры синхронизации задачи в блоке Task Manager.

Профилируйте алгоритм Используя процессор в цикле (PIL)

Компиляции PIL симуляции сгенерированный исходный код и затем запускают код по вашему целевому компьютеру. В процессе моделирования метрики времени выполнения для сгенерированного кода собраны. PIL симуляция предоставляет носитель высокоточному времени выполнения, когда это профилирует алгоритм задачи на вашем процессоре. С этим подходом синхронизация одной задачи точна, но не составляет тонкие эффекты, такие как совместное использование кэш-памяти. Для получения дополнительной информации о PIL смотрите, Конфигурируют и PIL симуляция Запуска (Embedded Coder).

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

1. Щелкните правой кнопкой по блоку Model, нажмите Model Parameters (ModelReference) и выберите Processor в цикле (PIL) в выпадающем режиме Simulation. Нажать ОК.

2. На вкладке System on Chip нажмите Hardware Settings. Расширьте панель параметра ресурсов Целевого компьютера и в Адресе устройства набора группы Параметров платы, Имени пользователя и Пароле.

3. На вкладке Simulation нажмите Run, чтобы запустить PIL симуляцию. Когда симуляция завершится, кликните по блоку Model, чтобы получить метрики времени выполнения. Этот рисунок показывает метрический отчет времени выполнения.

4. Средние времена выполнения для Task1 и Task2, которые соответствуют уровням этих задач:

  • 1.93e-03 для Task1

  • 1.69e-03 для Task2

5. Используйте это время выполнения задачи в блоке Task Manager, чтобы установить среднее значение длительности задачи. Можно использовать другое время выполнения задачи, чтобы установить другие параметры синхронизации задачи в блоке Task Manager.

Профилируйте выполнение задачи на оборудовании

Профилирование SoC Blockset обеспечивает время выполнения каждой задачи в вашей модели и получает другие связанные события, такие как вытеснения, переполнения и отбрасывания задачи. Профилирование целого приложения на оборудовании обеспечивает самое точное время выполнения задачи процессора.

Эти шаги показывают, как использовать профилирование SoC Blockset, чтобы определить информацию о задаче для модели в качестве примера.

1. Щелкните правой кнопкой по блоку Model, нажмите Model Parameters (ModelReference) и выберите Normal в выпадающем режиме Simulation. Нажать ОК.

2. На вкладке System on Chip нажмите Configure, Build & Deploy. Выполните шаги, обеспеченные, чтобы подготовить модель, чтобы создать и загрузить для режима external mode и нажать Monitor & Tune. Когда режим external mode завершится, запустите эти команды в MATLAB, чтобы получить времена выполнения для Task1 и Task2:

exectime = socTaskTimes('soc_task_profiling','Run 1: soc_task_profiling')
exectime.Mean

Времена выполнения для Task1 и Task2:

  • 2.00e-03 для Task1

  • 1.80e-03 для Task2

3. socTaskTimes функционируйте также показывает распределение времен выполнения для каждой задачи как показано на этих рисунках.

4. Используйте это время выполнения задачи в блоке Task Manager, чтобы установить среднее значение длительности задачи. Можно использовать другое время выполнения задачи, чтобы установить другие параметры синхронизации задачи в блоке Task Manager.