这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » [学习笔记]STM32的iCache是个啥?我要不要打开这个功能?

共2条 1/1 1 跳转至

[学习笔记]STM32的iCache是个啥?我要不要打开这个功能?

院士
2024-02-02 09:57:47   被打赏 50 分(兑奖)     打赏

STM32的iCache是个啥?我要不要打开这个功能?

STM32微处理器中的iCache功能:提升程序执行效率。

iCache是指令缓存(Instruction Cache),而指令缓存是计算机中一种重要的存储结构,主要用于存储即将被执行的指令。当CPU需要执行指令时,它首先会在指令缓存中查找该指令。如果指令已经在缓存中,CPU可以直接从缓存中获取并执行该指令,而不需要从主存储器中读取,这样可以大大减少CPU等待时间,提高程序执行效率。

在STM32H5系列(其它系列也有)上,ST对这个iCache还做了额外的优化,以进一步提高cache的性能。主要从提高cache并行性方面,提供cache命中率方面,以及在不幸发生了cache失效时,尽量降低失效延迟方面采取了相对应的措施。

有一点需要首先说明:这个模块名字叫做iCache,并不是说它只能对load指令进行缓存。它也可以对load数据进行缓存。但是同时另外一点要强调的是,它是一个单向Cache,只有读方向,没有写方向。因此这个iCache也没有和写操作相关的policy,诸如什么write through,write back等。我们可以理解为,它是用于对CODE区域的指令和常数数据,做缓存。这个Code区域,是ARM定义的0x0到0x2000 0000这512M字节的区域。

icache_01.png

此外,iCache还具有以下优点:

  1. 减少了CPU等待时间:由于指令已经预先加载到RAM中,CPU可以直接获取并执行指令,无需等待外部存储器的读取。

  2. 提高程序的实时性:对于需要快速响应的嵌入式系统来说,iCache可以确保程序代码的快速加载和执行,从而提高系统的实时性。

  3. 降低功耗:通过减少对外部存储器的访问,iCache还可以降低系统的功耗。

总的来说,iCache作为STM32微处理器中的一项重要功能,为提高程序执行效率和系统性能提供了有力支持。看样子我是需要在STM32CubeMX中打开这个功能了!


注:STM32H503系列无D-Cache。





关键词: STM32     iCache    

高工
2024-02-02 10:06:13     打赏
2楼

D-cache也是这个原理。只是其支持读、写了


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]