嵌入式系统优化:从编译到电源与热管理
1. 嵌入式系统的SPM分配
SPM(Scratch Pad Memory)分配存在多种方式,其中一种混合方法是将SPM划分为两个区域:一个是进程共同使用的区域,另一个是进程可获得专属分配空间的区域,这两个区域的大小通过优化来确定。
在更动态的情况下,系统使用期间应用程序集可能会发生变化,此时动态内存管理器就派上用场了。Pyka提出了一种基于SPM管理器的算法,该算法使用间接寻址并集成到操作系统中,这种方法还允许将库元素迁移到SPM,尽管存在额外的间接寻址层,但仍可实现25% - 35%的能耗降低。
若有内存管理单元(MMU),则可避免额外的间接寻址层。Egger等人开发了一种利用MMU的技术:在编译时,将代码段分类为是否从分配到SPM中受益。受益的代码存储在虚拟地址空间的特定区域,该区域最初未映射到物理内存,因此首次访问代码时会发生页错误。页错误处理会调用SPM管理器(SPMM),SPMM会在SPM中分配(和释放)空间,并根据需要更新虚拟到真实地址的转换表。不过,当前SPM的大小仅对应于现代页表中的少数条目,导致SPM分配粒度较粗。
SPM分配还涉及架构和目标函数两个维度:
- 架构维度 :之前主要考虑的是单核心、单内存层次和单SPM的系统,实际上还存在其他架构。例如,混合系统可能同时包含缓存和SPM,可通过在缓存冲突时选择性分配SPM空间来减少缓存缺失;不同的内存技术,如闪存或其他类型的非易失性RAM,对于闪存,负载均衡很重要;还可能存在多级内存,SPM可能跨核心共享,也可能有多个可共享的内存层次。
- 目标函数维度 :之前
超级会员免费看
订阅专栏 解锁全文
969

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



