exponenta event banner

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

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

Многопроцессорная модель SoC

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

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

Примечание

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

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

При создании кода модель верхнего уровня Simulink ® и каждый ссылочный блок модели должны иметь параметр Hardware board, установленный на поддерживаемую многопроцессорную аппаратную плату, например TI Delfino F2837xD. В модели верхнего уровня необходимо задать для параметра Единица обработки значение 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) щелкните Выполнить (Run).

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

См. также

| | |

Связанные темы

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