当前位置:艾米科技 > 行业新闻 >

嵌入式监控屏蔽器CPU利用率

    我们专注于实时嵌入式系统,并使用MälardalenWCET基准测试摄像头干扰器。分别选择minver,adpcm,ludcmp,ndes,fir和edn这六个程序。使用随机输入多次运行每个程序,以收集内存访问跟踪并获取每个变量的平均写内存访问次数。使用Chronos WCET工具[17]获取每个程序的WCET和相应的WCEP,以便可以从WCEP上的内存访问跟踪中获取每个变量的读/写内存访问次数。每个任务都有其优先级和抢占阈值。将每个任务的最大值作为其抢占阈值,以便所有任务的堆栈帧可以在SPM中共享相同的监控屏蔽器地址。
 
    由于选择了六个任务,因此根据RM调度算法,仅当摄像头屏蔽器CPU利用率低于73.5%时才能调度任务集。定义CPU利用率约束为30%,40%,50%,60%,70%,应用遗传算法和动态度量和分配算法[18],用DVA表示遗传算法,用DMA表示动态度量和分配算法。另外,OPS表示最佳解决方案。从图4(a)可以看出,DVA算法的寿命通常比DMA更好。这可能是因为DVA算法除了将数据变量平均分配到SPM之外,还使用遗传算法来找到最佳分配方法。随着CPU利用率的提高,数据变量的总写计数也增加,越来越多的数据变量变得越来越密集,并且将更多的数据变量分配给主内存以减轻基于NVM的SPM的写压力。因此,随着每个SPM存储器地址上的写入次数减少,SPM的寿命会增加。如图4(b)所示,DVA算法的折线非常接近最优解。这也意味着DVA算法可以获得监控干扰器指标非常接近最优解的结果。
 
    图5显示了在不同CPU使用率约束下分配给SPM的全局变量和堆栈变量的大小(以字节为单位)。由于堆栈变量可以相互重叠,因此全局变量和堆栈变量的总大小可能超过SPM大小2 KB当CPU利用率为60%时,分配给SPM的全局变量的大小为1931 B,那么SPM上的堆栈变量的大小应为2048–1931 = 117B。但是,实际分配给SPM的堆栈变量的大小为333 B,这意味着大小为333 B的堆栈变量覆盖在SPM的117 B分区上。随着摄像头干扰器CPU利用率的提高,分配给SPM的堆栈变量的大小减小,因为堆栈变量是临时的并且可能需要大量写入。