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

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

3天内不再提示

Cache分类与替换算法

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

根据不同的分类标准可以按以下3种方法对Cache进行分类。

•1)数据cache和指令cache

•● 指令cache:指令预取时使用的cache。

•● 数据cache:数据读写时使用的cache。

如果一个存储系统中指令cache和数据cache是同一个cache,称系统使用了统一的cache。反之,如果是分开的,那么称系统使用了独立的cache;如果系统中只包含指令cache或者数据cache,那么在配制系统时可以作为独立的cache使用了。

使用独立的数据cache和指令cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的cache,但这时候要注意保证指令和数据的一致性。

•2)写通(write-through)cache和写回(write-back)cache

•● 写回cache CPU在执行写操作时,被写的数据只写入cache,不写入主存,仅当需要替换时,才把已经修改的cache块写回到主存中,在采用这种更新算法的cache快表中,一般有一个修改位,当一块中的任何一个单元被修改时,这一块的修改位被设置为1,否则这一块的修改位仍保持为0;在需要替换这一块时,如果对应的修改位为1,则必须先把这一块写到主存中去之后,才能调入新的块,否则,只要用新调入的块覆盖该块即可。

•● 写通cache CPU在执行写操作时,必须把数据同时写入cache和主存,这样,在cache的快表中就不需要“修改位”,
当某一块需要替换时,也不必把这一块写回到主存中,新调入的块可以立即把这一块覆盖掉。

写回cache和写通cache的优缺点比较如下表所示。

图片

写回cache与写通cache比较

•3)读时分配(read-allocate)cache和写时分配(write-allocate)cache

•● 读时分配cache当进行数据写操作时,如果cache没命中,只是简单地将数据写入主存中,主要在数据读取时,才进行cache内容预取。

•●写时分配cache当进行数据写操作时,如果cache未命中,cache系统将会进行cache内容预取,从主存中将相应的块读取到cache中相应的位置,并执行写操作,把数据写入到cache中。对于写通类型的cache,数据将会同时写入到主存中,对于写回类型的cache,数据将在合适的时候写回到主存中。

由于写操作分配cache增加了cache内容预取的次数,增加了写操作的开销,但同时可能提高cache的命中率,因此这种技术对于系统整体性能的影响与程序中读操作和写操作的数量有关。

Cache替换算法

随机替换算法

通过一个伪随机数发生器产生一个伪随机数,用新块编号为该伪随机数的cache块替换掉。这种算法很简单且容易实现,但没有考虑程序的局部性特点,也没有利用历史上块地址流的分布情况,因而效果较差,同时这种算法不易预测最坏情况下cache的性能。

轮转替换算法

维护一个逻辑的计数器,利用该计数器依次选择将要被替换出去的cache块。这种算法容易预测在最坏情况下cache的性能。但在程序发生很小的变化时,可能造成cache平均性能的急剧变化,这是它的一个明显缺点。

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

    关注

    68

    文章

    10446

    浏览量

    206571
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87601
  • 存储
    +关注

    关注

    12

    文章

    3859

    浏览量

    84667
  • Cache
    +关注

    关注

    0

    文章

    127

    浏览量

    27984
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 计算机原理:5.3.10 Cache替换算法(2)

    Cache计算机原理cpu/soc
    Mr_haohao
    发布于 :2022年09月29日 07:35:20

    在嵌入式中为什么要用到Linux系统呢

    串行外设接口SPI是什么?在嵌入式中为什么要用到Linux系统呢?Cache常见的替换算法有哪几种呢?
    发表于 11-02 08:09

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

    cache的相关操作中,cache控制器需要根据需求做出许多不同的选择。例如:分配策略是否需要将数据从主存中分配到cache中;替换策略组相联ca
    发表于 06-15 16:24

    基于修正LRU的压缩Cache替换策略

    以优化压缩cache替换策略为目标,提出一种优化的基于修正LRU的压缩cache替换策略MLRU-C。MLRU-C策略能利用压缩cache
    发表于 04-15 09:51 36次下载

    分类算法分类及比较

    分类算法分类及比较 流分类算法可以根据不同的原则进行分类,本文根据对多个区域查找之间的关系
    发表于 03-04 11:26 1913次阅读

    基于BWDSP指令Cache的PLRU替换算法研究

    通过BWDSP模拟器对目前常用的几种替换算法和大小不同的指令Cache块进行仿真实验得出不同缺失率。实验结果表明,所提出的PLRU替换算法性能高于LRU、LFU、FIFO替换算法,并使
    发表于 09-25 14:50 17次下载

    一种有效的Cache优化替换策略

    该问题,一种有效的解决方法是优化Cache替换策略,减少Cache中脏块被替换出的数量。现有研究主要通过在插入和访问命中时给脏块设定较高的保护优先级来达到给脏块额外保护的目的,但是在降
    发表于 11-27 15:16 1次下载
    一种有效的<b class='flag-5'>Cache</b>优化<b class='flag-5'>替换</b>策略

    寄存器和cache的区别介绍

    本文开始阐述了CACHE的概念、CACHE替换机构与读写操作,其次介绍了寄存器的原理以及它的主要技术,最后阐述了寄存器和cache两者之间的区别。
    发表于 04-11 14:10 1.2w次阅读

    Python替换字符串的新方法

    FlashText 算法是由 Vikash Singh 于2017年发表的大规模关键词替换算法,这个算法的时间复杂度仅由文本长度(N)决定,算法时间复杂度为O(N)。
    的头像 发表于 04-09 16:37 1889次阅读

    Python替换字符串的新姿势

    FlashText 算法是由 Vikash Singh 于2017年发表的大规模关键词替换算法,这个算法的时间复杂度仅由文本长度(N)决定,算法时间复杂度为O(N)。
    的头像 发表于 02-24 10:50 690次阅读
    Python<b class='flag-5'>替换</b>字符串的新姿势

    在组相联cache中,用于替换cache line的算法有哪些?

    LRU(Least Recently Used)算法:该算法会跟踪每个cache line的age(年龄)情况,并在需要时替换掉近期最少使用的cac
    的头像 发表于 10-08 11:10 477次阅读

    Python 中怎么来实现类似 Cache 的功能

    cachetools,这是一个可扩展的基于内存的 Collections、Decorators 的封装实现。 因为是 Cache,那么就一定有它的页面置换算法。根据操作系统学过的一些知识,置换算法
    的头像 发表于 10-17 10:47 267次阅读

    基于flashtext模块使用FlashText算法进行字符串查找和替换

    FlashText 算法是由 Vikash Singh 于2017年发表的大规模关键词替换算法,这个算法的时间复杂度仅由文本长度(N)决定,算法时间复杂度为O(N)。 而对于正则表达式
    的头像 发表于 10-30 10:16 226次阅读
    基于flashtext模块使用FlashText<b class='flag-5'>算法</b>进行字符串查找和<b class='flag-5'>替换</b>

    Cache内容锁定是什么

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

    Cache替换策略和Write-through介绍

    信息到数据总线即可; 另一种是需要的数据尚未装入Cache,CPU需要从主存中读取信息的同时,Cache替换部件把该地址所在的那块存储内容从主存复制到Cache中。若
    的头像 发表于 10-31 11:48 714次阅读