图解数据读写与Cache操作

本文详细解释了CPU Cache的工作原理,包括读写流程、Cache的I-Cache和D-Cache、以及在设备进行DMA操作时如何确保数据一致性。通过示例介绍了透写与回写方式,并详细描述了flush和invalidate操作在数据同步中的作用。
摘要由CSDN通过智能技术生成

  高速缓存(Cache)主要是为了解决CPU运算速度与内存(Memory)读写速度不匹配的矛盾而存在, 是CPU与内存之间的临时存贮器,容量小,但是交换速度比内存快。

  百度百科是这样介绍缓存读取的:

  CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。
  正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后内存。

  本文仅针对Cache的读写进行简单说明并通过示意图演示什么时候需要写回(flush)缓存,什么时候需要作废(Invalidate)缓存。
  Cache分为针对指令缓存的I-Cache和数据缓存的D-Cache,平时D-Cache访问比较多,以下主要讨论数据访问的D-Cache,指令缓存I-Cache原理一样。
  

Cache读写原理
  图一、Cache读写原理
  
  写入数据时:
  第一步,CPU将数据写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值