嵌入式系统编译、优化与管理技术解析
1. 嵌入式系统中的SPM分配策略
在嵌入式系统中,SPM(Scratch Pad Memory)的分配有多种方法,其中混合方法较为独特。它将SPM划分为两块区域,一块由进程共同使用,另一块则为进程提供专属的分配空间,这两块区域的大小通过优化来确定。
一些动态场景下,系统运行时应用程序集合可能会发生变化,这时动态内存管理器就派上用场了。有学者提出基于间接寻址的SPM管理算法,并将其集成到操作系统中,这种方法能将库元素迁移到SPM,即便增加了间接寻址,仍可降低25% - 35%的能耗。若系统有内存管理单元(MMU),就能避免间接寻址带来的额外开销。有技术利用MMU,在编译时将代码段分类,根据是否适合分配到SPM分别处理。当首次访问相关代码时会触发页错误,进而调用SPM管理器进行空间分配和释放操作以及地址转换表的更新。不过,当前SPM的大小在页表中占比小,导致分配粒度较粗。
SPM分配还涉及架构和目标两个维度。架构上,除常见的单核单内存层单SPM系统,还有缓存与SPM并存的混合系统,可通过合理分配SPM空间减少缓存缺失。不同的内存技术如闪存和非易失性RAM也各有特点。此外,SPM可能在多核间共享,内存也存在多级层次。还有研究提出基于整数线性规划(ILP)的方法解决此类分配问题。目标维度上,除了常见的能耗和运行时间最小化,还可考虑最坏情况能耗、可靠性、耐久性以及避免内存过热等目标。
2. 实时软件编译与定时分析的融合
目前大多数编译器没有集成定时模型,实时软件开发通常采用迭代方法。先使用不考虑定时信息的编译器编译软件,再用定时分析器分析生成的代码。若不满足定时约束,就需更改编译器输入并重复该过程,这种“试错
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



