这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【S32K3XX】Cache 缓存策略

共2条 1/1 1 跳转至

【S32K3XX】Cache 缓存策略

高工
2025-09-23 13:45:58     打赏

【简介】

S32K3XX 系列芯片是支持L1 的CACHE 特性。S32K3XX CACHE 的接口说明在之前的(https://forum.eepw.com.cn/thread/393569/1)文章中有介绍,memory 的的cache 属性配置是通过MPU来配置的,此贴中有介绍(https://forum.eepw.com.cn/thread/393625/1),本贴在此基础上进一步了解CACHE 的缓存策略的说明。

【缓存策略说明】

以下图片是S32K3XX 所属的ARMV7-M 架构中对CACHE 的描述,我们今天主题的MCU S32K3XX 在芯片设计时支支持L1的Cache.

image.png

对于Cache 的缓存策略可以分为读策略,写策略(cache hit/cache miss) 三种场景进行讨论。

读策略RA(read allocate):

对于读操作可配置的策略为(RA - read allocate),对于RA 属性的策略 意味着当读访问触发Cache Miss 时,会分配cache line 标记为valid 同时将K3 32byte 的cache lin 大小的数据从主存中加载到cache line 对这些数据的访问后续将cache hit 后续直接从cache 中读取数据。
 

写策略(cache hit)

WB(write back):

在写缓存命中时,仅更新数据缓存 同时cache line 标记为Dity 并且对主存的写入被推迟,指导cache line 被刷回到主存或者调用clean 清理刷回到主存。


WT(write through)

WT 策略在写缓存命中时,和WT 的区别为cache line 和主存的数据都会被更新。


写策略(cache miss)

WA(Write Allocate)

写时,在缓存未命中时,将分配一个缓存行(Cache Line),并加载来自主内存的数据。这意味着在处理器上执行 store类指令可能会导致发生突发读取,分配一个Cache Line,将数据从主内存加载到高速缓存CacheLine,然后再把store指令要写的数据写入缓存Cache Line,至于是否写入主存参考Write Policy (Cache hit case)。

No Write Allocate     策略

写时,在缓存未命中时,不会分配缓存行(Cache Line),数据将直接写入主内存。在这里,在读取时发生缓存未命中之前,不会缓存一行,然后使用 Read Allocate 策略加载缓存。


对于WA/RA 策略芯片文档中描述如下

image.png


WT/WB 策略描述如下

image.png


以下是ARM-V7M 中MPU_PASR 寄存器的策略配置说明,可以通过TEX/C/B 来配置memory 的缓存策略

image.png

image.png








                


院士
2025-09-23 22:12:21     打赏
2楼

大佬一出手就是优秀帖子。

在线等ing


共2条 1/1 1 跳转至

回复

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