cache属性

从缓存能力弱->强

 

不可缓存类型(Uncacheable)(UC) – 从UC内存进行读写操作是不被缓存的。

 

写合并类型(Write-Combing)(WC) – 从WC内存读或者向WC内存写实不被缓存的。向这种内存的写可以由处理器内部进行合并,并且做为单一一次写操作减少内存访问次数。例如,连续的四个字的访问可以被合并为一个单独的四字写,将内存访问次数从4减少到1。WC类型的内存对于写顺序不是十分重要的显存十分有用.

 

写回类型(Writeback)(WB) – 在CPU执行写操作时,只写入Cache,不写入主存, 仅仅在执行写回(writeback)操作的时候对主存进行写操作。

 

写保护类型(Write-Protect)(WP) – 从WP类型内存的读诗被缓存的,向WP内存写如果命中缓存的话不会导致对缓存的更新。相反,所有的写回更新内存(写入内存),并且命中缓存的写操作会导致对缓存行的废弃。WP类型的内存对于ROM内存阴影(shadowed-ROM memory)是十分有用的。对于ROM内存阴影,更新必须对读取阴影位置的所有设备立即可见。

 

写通类型(Writethrough)(WT) – 从WT内存的读是被缓存的. 在对Cache进行写操作的同时,也对主存该内容进行写入。 

 

 

### AXI 缓存属性详解 AXI协议中的缓存属性通过`ARCACHE`和`AWCACHE`信号来定义,这些信号用于指示事务的特性以及如何处理缓存操作。对于读取请求而言,使用`ARCACHE`;而对于写入请求,则采用`AWCACHE`。 #### ARCACHE 和 AWCACHE 的位域解释 这两个信号均为四位宽,每一位代表不同的含义: - **Bit0 (Bufferable)**:表明该访问是否可以被缓冲。如果设置为1,则表示允许硬件对此次访问的数据进行内部存储以便后续重复利用。 - **Bit1 (Modifiable)**:当置位时意味着处理器可以在本地副本上修改数据而无需立即更新外部存储器的内容。这通常适用于独占访问模式下的优化策略[^1]。 - **Bit2 (Bufferable and Modifiable Together)**:此位置1的情况下,既允许缓冲又允许修改。它实际上是对前两位的一种组合形式,在某些特定应用场景中有助于提高性能效率。 - **Bit3 (Cacheable)**:决定当前传输能否参与缓存机制。设为1则启用缓存功能,反之禁用之。这对于控制哪些区域应该进入L1/L2等各级别的CPU Cache至关重要[^3]。 #### 实际应用案例分析 考虑一个典型的嵌入式系统设计场景,其中包含了ARM Cortex-A系列的应用处理器作为PS端,并连接有FPGA逻辑构成PL部分。假设需要频繁交换大量图像帧数据,此时可以通过配置合适的AXI VDMA模块参数并合理设定其关联的AXI接口上的缓存属性来提升整体吞吐量与响应速度。具体来说就是确保图像数据所在的物理地址空间标记为可缓存(cacheable),从而让位于SoC内的多级cache能够有效发挥作用。 ```c++ // 配置AXI VDMA实例时指定适当的缓存选项 axi_vdma_config.cache_bypass = XVC_CACHE_BYPASS_DISABLE; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值