exponenta event banner

Определение и использование информации о синхронизации задач

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

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

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

open_system('soc_task_profiling');

Использовать параметры синхронизации алгоритма

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

Примерная модель имеет две задачи с периодами 0.01 с и 0.03 с. При использовании WCET среднее время выполнения должно быть установлено равным:

  • 8e-03s для Task1

  • 24e-03s для Task2

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

Алгоритм профиля с использованием программного обеспечения в цикле (SIL)

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

На этих шагах показано, как использовать профилирование SIL для определения информации о задаче для примерной модели.

1. Щелкните правой кнопкой мыши блок Модель (Model), выберите Параметры модели (Model Parameters) (Модель (Model) Привязка (Reference)) и выберите Программное обеспечение в цикле (Software-in-the-loop (SIL)) в раскрывающемся списке Режим моделирования (Simulation mode). Нажмите кнопку ОК.

2. На вкладке Моделирование (Simulation) щелкните Выполнить (Run), чтобы запустить моделирование SIL. По завершении моделирования щелкните блок Модель (Model), чтобы получить метрики времени выполнения. На этом рисунке показан отчет по метрикам времени выполнения.

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

  • 0,30e-03s для Task1

  • 0,25e-03s для Task2

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

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

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

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

1. Щелкните правой кнопкой мыши блок Модель (Model), выберите Параметры модели (Model Parameters) (Модель (Model) Привязка (Reference)) и выберите Процессор в цикле (Processor-in-the-loop (PIL)) в раскрывающемся списке Режим моделирования (Simulation mode). Нажмите кнопку ОК.

2. На вкладке System on Chip (Система на кристалле) щелкните Hardware Settings (Настройки оборудования). Разверните панель Target hardware resources parameters и в группе Board Parameters установите параметры Device Address, Username and Password.

3. На вкладке Моделирование (Simulation) щелкните Выполнить (Run), чтобы запустить моделирование PIL. По завершении моделирования щелкните блок Модель (Model), чтобы получить метрики времени выполнения. На этом рисунке показан отчет по метрикам времени выполнения.

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

  • 1.93e-03s для Task1

  • 1.69e-03s для Task2

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

Выполнение задачи профиля на оборудовании

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

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

1. Щелкните правой кнопкой мыши блок Модель (Model), выберите Параметры модели (Model Parameters) (Модель (Model) Привязка (Reference)) и выберите Нормаль (Normal) в раскрывающемся списке Режим моделирования (Simulation mode). Нажмите кнопку ОК.

2. На вкладке Система на кристалле щелкните Настроить, Построить и развернуть. Выполните действия, предусмотренные для подготовки модели к построению и загрузке для внешнего режима, и щелкните Монитор и настройка (Monitor & Tune). По завершении работы внешнего режима выполните в MATLAB следующие команды для получения времени выполнения Task1 и Task2:

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

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

  • 2.00e-03s для Task1

  • 1.80e-03s для Task2

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

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