【资料下载】如何使用Cortex®-M 高速缓存控制器实现确定性代码性能?

在基于单片机的嵌入式应用中,软件存储在非易失性存储器(通常是闪存)中并从中运行。闪存虽然为存储和执行代码提供了一种有效的介质,但从闪存中执行时,许多因素会限制确定性代码性能。影响确定性代码行为的一个重要因素是系统总线矩阵的复杂性。从 SRAM 中运行代码时,由于与闪存相同的原因,也会出现确定性代码性能问题。

非确定性代码性能主要是由于代码从存储器传播到 CPU 的时间不同造成的,而传播时间的不同与连接存储器和 CPU 的系统总线矩阵有关。如果系统中存在多个实体需要访问系统总线,非确定性代码性能问题将会更加明显。

在实时应用中,某些情况下会有一些小的、关键的代码片段要求限时执行。不建议从闪存或 SRAM 中运行这类代码,因为系统总线仲裁可能会导致达不到预期的确定性时序,也就是说,从闪存或 SRAM 中提取代码时出现了高速缓存未命中情况。代码访问时间会因系统总线访问的可用性而异,因为需要在多个总线实体之间进行仲裁。

实现关键代码确定性代码性能的有效方法是将代码从紧耦合存储器(Tightly Coupled Memory,TCM)传播到处理器执行,以避免高速缓存未命中的情况。基于 Microchip Cortex®-M4 的单片机(MCU)上的Arm® Cortex-M 高速缓存控制器(CMCC)支持从高速缓存存储器中运行关键代码以实现确定性性能。

主要内容

1、概念

2、解决方案

3、确定性性能分析

4、相关资源

想了解更多详情内容请点击下载:
点击下载

点击这里,获取更多关于应用和技术的有关信息
点击这里,获取更多工程师博客的有关信息

最新文章