多核执行和核心可视化
SoC Blockset™允许模拟任务执行,因为它们在多核处理器上的行为。在多核模拟中,任务可以在分配给不同的处理器核心时同时运行。此外,将低优先级任务分配给唯一的核心可以防止这些任务被抢占,从而为最终应用程序提供更大的信心。
指定任务的核心
要设置任务执行所在的处理器核心,请打开任务管理器块对话框掩码。选择一个任务从可用的任务中。在任务属性中,设置核心到一个非负整数值。在模拟过程中,任务实例在指定的核心上执行,但会被在同一核心上执行的其他任务抢占。有关任务抢占的详细信息,请参见任务优先级和抢占.
核心可视化仿真数据检查器
SoC Blockset提供处理器内核的视图模拟数据检查器.该图显示了相对于任务状态的核心活动的可视化。
在模拟数据检查器,信号核心
显示在该核心上执行的当前任务。当核心活动显示为空闲时,该核心的所有任务都处于等待状态,内核可以将该核心用于不属于主应用程序的后台任务。我
请注意
如果一个任务实例在模拟期间没有运行到完成,该实例的相关核心状态将在模拟数据检查器显示中显示为空。
多核任务执行
这个例子显示了由任务管理器块管理的多个任务的模拟,在多个核上执行,并显示模拟数据检查器中显示的核心活动。
这个模型模拟了一个软件应用程序,运行在一个ARM处理器上,有3个定时器驱动的任务。一个任务管理器块调度任务的执行,在软件应用程序
块模型。任务1,用句点0.01
秒,执行核心0
.任务2和任务3,周期为0.02
而且0.03
秒,分别执行核心1
.
单击Run按钮构建并运行模型。当模型完成运行时,打开仿真数据检查器显示以查看仿真的结果。选择核心0而且核心1查询核心执行状态。
如Simulation Data Inspector所示,内核要么执行正在运行的任务,要么移到空闲状态,以执行后台内核任务。此外,由于在这个应用程序中使用了两个高优先级的核心,Task1在每个触发器事件开始时执行。同样,Task2和Task3也不会被Task1抢占。因此,应用程序可以更好地利用可用的处理器资源。