Многопроцессорное выполнение

SoC Blockset™ позволяет моделировать многопроцессорные выполнения, когда они ведут себя на многопроцессорном SoC. В мультипроцессорных симуляциях каждый процессор образца модели выполняется одновременно, где каждое выполнение процессора управляется независимым блоком Task Manager, представляющим либо ОС, либо планировщик с голым металлом для этого процессора. Процессоры могут взаимодействовать друг с другом с помощью межпроцессорных каналов связи, через блок IPC Channel, позволяя синхронизировать задачи и алгоритмы между менеджером задач каждого процессора.

Многопроцессорная однокристальная модель

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

В симуляции каждый Task Manager и Model блок автоматически выступает в качестве независимого процессора. Задачи, назначенные различным блокам Task Manager, выполняются независимо от другого процессора, в то время как задачи в одном блоке Task Manager все еще ведут себя зависимо. Для получения дополнительной информации о выполнении задачи в одном процессоре смотрите Что такое Выполнение задачи? и многоядерное выполнение и визуализация ядра.

Примечание

Все задачи в модели верхнего уровня должны использовать имя уникального идентификатора.

Процессоры могут связываться друг с другом асинхронно с помощью межпроцессного канала данных. Канал интерпроцессных данных состоит из блоков Interprocess Data Write, Interprocess Data Channel и Interprocess Data Read. Для получения дополнительной информации о каналах связи процессора с процессором смотрите Interprocess Data Communication в операционных системах и Interprocess Data Communication через выделенный аппаратный периферийный узел.

В генерации кода Simulink верхнего уровня® модель и каждый опорный блок Model должны иметь параметр Hardware board на поддерживаемой многопроцессорной аппаратной плате, такой как TI Delfino F2837xD. В модели верхнего уровня необходимо задать параметр Processing Unit равным none чтобы указать, что модель не строится. В каждом блоке Model ссылки необходимо задать параметр Processing Unit для определенного процессора, такого как c28xCPU1.

Многопроцессорная выборка

Этот пример показывает минимальную многопроцессорную модель, представляющую аппаратную плату TI Delfino F2837xD, которая содержит пару процессоров C28x архитектуры в том же микроконтроллере.

Каждый образец модели, управляемая Диспетчером задач, содержит свободный бегущий счетчик и коэффициент усиления. Первая модель, soc_minimal_multiCPU_ref1, запускает задачу-таймер с периодом 0,01 и медианной длительности задачи 0,008. Вторая модель, soc_minimalCPU_ref2, запускает задачу, управляемую таймером, с периодом 0,02 и медианной длительности задачи 0,018. Чтобы запустить симуляцию, на вкладке Simulation, нажмите запуск.

Проверка сроков выполнения двух задач, Task11 и Task21показывает, что каждая задача выполняется независимо от другой, симулируя ожидаемое поведение многопроцессорного устройства TI Delfino F2837xD.

См. также

| | |

Похожие темы

Внешние веб-сайты

Для просмотра документации необходимо авторизоваться на сайте