首页 > 系统服务 > 详细

使用cache需要满足的条件

时间:2019-09-12 16:02:44      阅读:103      评论:0      收藏:0      [点我收藏+]

某个区域是否能够使能cache,一般需要满足以下条件:

1、此区域起始地址与cache行大小(32字节)对齐,且区域大小是cache行大小的整数倍。

cache以行为基本操作单位,如果区域不满足上述要求,则cache操作此区域会因为行操作导致操作了此区域范围外的地址,这可能导致意想不到的结果。

2、反复读不会有额外的边际效应

对于同一行来说,cache的缓存读操作可能发生多次,这就要求这一行每次读不会有额外的边际效应。串口读FIFO寄存器就不满足这样的条件,每读一次串口FIFO寄存器就会返回一个接收到的数据,每一次读结果不同,所以串口读FIFO寄存器所在行不能时能读cache。

3、反复读应该返回最后写入的数据

串口读FIFO寄存器依然是个反例,它返回的是接收到的数据,而不是最后写入的数据。

4、对于区域内的某个地址,读操作可以预取其周围这个区域内的地址而不会有边际效应

对串口控制寄存器而言,读取它虽然没有边际效应,但是如果预取其周围的串口读FIFO寄存器,则会产生边际效应。

5、多次写同一数据不会产生边际效应

对于一位置多次写入同一数据,不能造成额外的影响,且重复写入期间这个位置的数据不能被改变。

6、合并写不会造成额外影响

cache可能会导致写合并,仍然以串口发送FIFO寄存器为例。多次写被合并为一次的话,会使得串口发生的数据减少。

  通常情况下,满足以上条件的储存区域只有内存,而例如串口、以太网等外设控制器区域基本不能全部满足以上情况,所以不能时能cache。

使用cache需要满足的条件

原文:https://www.cnblogs.com/hujingzheng/p/11512195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!