首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARM:使用高速缓存加速关键代码

ARM:使用高速缓存加速关键代码
EN

Stack Overflow用户
提问于 2017-09-21 18:53:41
回答 2查看 651关注 0票数 2

假设我有一个嵌入式项目(如果有区别,使用ARM Cortex-M ),其中代码的某些部分非常关键,需要尽可能快地在确定的时间内运行。

是否有可能牺牲一部分L1缓存,并将其保留用于关键代码/数据?然后,我可以加载关键代码/数据,并始终以L1缓存速度运行/访问它们。

EN

回答 2

Stack Overflow用户

发布于 2017-09-22 15:08:23

好的,我想答案是“从技术上讲,没有”。分配给高速缓存的内存由高速缓存控制器用来做它应该做的事情,这就是高速缓存。

因此,希望芯片供应商已经提供了从最快的内存中运行代码的方法。如果芯片有TCM,那么在那里加载你的关键代码应该是很好的,并且运行的速度和它在L1缓存中缓存时一样快。如果芯片提供闪存和RAM,那么在RAM上加载关键代码也应该要快得多。在后一种情况下,缓存控制器(如果存在)可以配置为使用相同的RAM来运行缓存的代码。

票数 1
EN

Stack Overflow用户

发布于 2019-11-23 16:33:08

是的,这是可能的:

TB3186“如何使用aCortex™-M缓存控制器实现确定性代码性能”

http://ww1.microchip.com/downloads/en/DeviceDoc/How-to-Achieve-Deterministic-Code-Performance-using-CortexM-Cache-Controller-DS90003186A.pdf

..。使用CMCC,通过以某种方式加载关键代码并锁定它,可以将缓存的一部分用作确定性代码性能的TCM。当特定路被锁定时,CMCC不会将锁定的路用于例程缓存事务。具有加载的关键代码的锁定缓存路充当始终获取缓存命中条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46342076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档