0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Cache写入方式原理简介

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-10-31 11:43 次阅读

提高高速缓存命中率的最好方法是尽量使Cache存放CPU最近一直在使用的指令与数据,当Cache装满后,可将相对长期不用的数据删除,提高Cache的使用效率。

为保持Cache中数据与主存储器中数据的一致性,避免CPU在读写过程中将Cache中的新数据遗失,造成错误地读数据,确保Cache中更新过程的数据不会因覆盖而消失,必须将Cache中的数据更新及时准确地反映到主存储器中,这是一个Cache写入过程,Cache写入的方式通常采用直写式、缓冲直写式与回写式三种,下面比较介绍这三种Cache写入方式。

1- 直写式(Write Through)系统

CPU对Cache写入时,将数据同时写入到主存储器中,这样可保证Cache中的内容与主存储器的内容完全一致。这种方式比较直观,而且简单、可靠,但由于每次对Cache更新时都要对主存储器进行写操作,而这必须通过系统总线来完成,因此总线工作频繁,系统运行速度就会受到影响。

2-缓冲直写式(Post Wirte)系统

为解决直写式系统对总线速度的影响问题,在主存储器的数据写入时增加缓冲器区。当要写入主存储器的数据被缓冲器锁存后,CPU便可执行下一个周期的操作,不必等待数据写入主存储器。这相对于给主存储器增加了一个单向单次高速缓存。

比如,在写入周期之后可以紧接着一个数据已存在于Cache中的读取周期,这样就可避免直写式系统造成的操作延时,但这个缓冲器只能存储一次写入的数据,当连续两次写操作发生时,CPU仍需等待。

3-回写式(Write Back)系统

前面两种写入方式系统,都是在写Cache的同时对主存储器进行写操作。实际上这不仅是对总线带宽的占用,浪费了宝贵的执行时间,而且在有些情况下是不必要的,可以通过增加额外的标准来判断是否有必要更新数据。回写式系统就是通过在Cache中的每一数据块的标志字段中加入一更新位,解决主存储器不必要的写操作。

比如,若Cache中的数据曾被CPU更新过但还未更新主存储器,则该更新位被置1。每次CPU将一块新内容写入Cache时,首先检查Cache中该数据块的更新位,若更新位为0,则将数据直接写入Cache;反之,若更新位为1,则先将Cache中的该项内容写入到主存储器中相应的位置,再将新数据写回Cache中。

与直写式系统相比,回写式系统可省下一些不必要的立即回写操作,而在许多情况下这是很频繁出现的。即使一个Cache被更新,若未被新的数据所取代,则没有必要立刻进行主存储器的写操作。也就是说,实际写入主存储器的次数,可能少于CPU实际所执行写入周期的次数,但回写式系统的结构较复杂,Cache也必须用额外的容量来存储标志。由于回写系统的高效率,现代的Cache大多采取这种方式进行操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10446

    浏览量

    206572
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87608
  • Cache
    +关注

    关注

    0

    文章

    127

    浏览量

    27985
  • 系统
    +关注

    关注

    1

    文章

    981

    浏览量

    21036
收藏 人收藏

    评论

    相关推荐

    SH2A系列Cache的原理与应用

    Cache种类:instruction cache & operand cacheCache工作方式:write-back & write-throughCache的查找算法
    发表于 12-29 15:42

    cache的应用——什么时候需要刷cache1

    DDR, 只有该地址在cache中被换出去时候,才会同步到ddr(2)、Device和ddr直接无cache,device直接从ddr(src地址)中读取数据, 此时当然读不到前面cpu写入的数据
    发表于 07-22 08:43

    cache有哪些缺点?实现cache的组织方式有哪几种

    是一个很大的问题。外设空间有时,程序员希望能够立马从外设寄存器中读取最新数据,例如timer,这个时候外设寄存器的值就不应该填充到cache中。cache写回策略有时,我们希望确认处理器内核写入的数据
    发表于 06-15 16:16

    浅析cache控制器的分配策略与替换策略

    时决定替换掉哪一个way的cacheline;写策略cache收到处理器内核的写请求时,相应的cache行为,例如是否先写到cache中,等到实在有必要时再写入到主存中。分配策略当处理
    发表于 06-15 16:24

    光盘写入方式

    光盘写入方式
    发表于 12-26 09:58 1821次阅读

    光盘拷贝机写入方式

    光盘拷贝机写入方式 制作不同类型的光盘时采用的写入方式也不尽相同,目前较常用的写入方式有以下几
    发表于 12-30 10:07 762次阅读

    什么是Cache

    什么是Cache  英文缩写: Cache 中文译名: 高速缓存器 分  类: IP与多媒体 解  释: 信息在本地的临时存储
    发表于 02-22 17:26 956次阅读

    从三个方面阐述Cache

    关于cache,大概可以从三个方面进行阐述:内存到cache的映射方式cache的写策略,cache的替换策略。 映射
    的头像 发表于 11-21 11:09 2186次阅读

    Buffer和Cache的定义

    但是让我问你,由于 Buffer 只是将写入磁盘的数据的缓存。反过来,它还会缓存从磁盘读取的数据吗?或者 Cache 是从文件中读取数据的缓存,那么它是否也为写入文件缓存数据呢?
    的头像 发表于 05-13 09:53 1459次阅读

    Buffer和Cache介绍

    设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。
    的头像 发表于 08-18 09:50 919次阅读

    什么是 Cache? Cache读写原理

    由于写入数据和读取指令分别通过 D-Cache 和 I-Cache,所以需要同步 D-Cache 和 I-Cache,即复制后需要先将 D-
    发表于 12-06 09:55 1269次阅读

    使用Spring Cache实现缓存

    在学习Spring Cache之前,笔者经常会硬编码的方式使用缓存。
    的头像 发表于 05-11 17:40 396次阅读
    使用Spring <b class='flag-5'>Cache</b>实现缓存

    Cache工作原理讲解 Cache写入方式原理简介

    Cache是位于CPU与主存储器即DRAM(Dynamic RAM,动态存储器)之间的少量超高速静态存储器SRAM(Static RAM),它是为了解决CPU与主存之间速度匹配问题而设置的,不能由用户直接寻址访问。
    的头像 发表于 10-17 10:37 504次阅读
    <b class='flag-5'>Cache</b>工作原理讲解 <b class='flag-5'>Cache</b><b class='flag-5'>写入</b><b class='flag-5'>方式</b>原理<b class='flag-5'>简介</b>

    Cache内容锁定是什么

    “锁定”在cache中的块在常规的cache替换操作中不会被替换,但当通过C7控制cache中特定的块时,比如使某特定的块无效时,这些被“锁定”在cache中的块也将受到相应
    的头像 发表于 10-31 11:31 372次阅读

    Cache工作原理是什么

    Cache中时,则需切换存取主储器,由于速度较慢,需要插入等待,这种情况称高速未命中; 在CPU存取主存储器的时候,按照最优化原则将存储信息同时写入Cache中以保证下次可能的高速缓存命中。 因此,同一数据可能同时存储在主存储
    的头像 发表于 10-31 11:34 511次阅读
    <b class='flag-5'>Cache</b>工作原理是什么