存储系统|查找方法

2021年11月30日

查找方法

  1. 通过目录表来实现

    即用地址中的内存块中的索引先找到对应的cache目录表的侯选位置(是一个大组的整体位置),然后通过标识来对比这个组内的来找,找到即命中,找不到不命中,访问内存。

    找侯选位置中的目录表项可以用顺序查找也可以用并行查找

    并行查找可以用相联存储器或者单体多字存储器+比较器来查找(非重点)

    替换算法


1

有一个新的块要调入,要替换哪个块?

对于直接映像只能有一个块别无选择,组相联映像找到对应的组,全相联映像可以替换任意块

2

替换算法

  1. 随机法
  2. 先进先出fifo 只是记录进来的时刻
  3. 最近最少使用法lru 记录的是最后一次访问的时间 lru对于大部分替换算法性能已经够用 注意和lfu区别(记录频次)(最不经常使用页替换) 2

lru算法的硬件实现 堆栈法 <复习>

数据结构:逻辑结构和物理结构的匹配映射

线性表->>数组,队列,堆栈(先入后出,只能在栈顶操作,有两个指针),串(每个元素都是一个字符)

链表->>循环链表,双向链表

<复习>

堆栈法

这里的堆栈思想是对于组来说的

使用堆栈的思想,如果访问了一个块,查找组堆栈里是否有这个块,如果有这个块,说明这个组里命中,则抽出这个块,上面的压下来,这个块从上面压入,如果没有这个块,则直接压入,最下面的块自动被消除

速度较低,成本较⾼(只适⽤于相联度较⼩的LRU算法)

比较对法

<复习>

<复习>

对于块中每两个组成一个Cn2

每个组合称为Txy

如Tab

Tab=1表示a比b更近访问过

Tab=0表示b比a更近访问过

则让Tac∗∗Tbc=1时说明块c最晚被访问(对于只有abc三块的情况下)。

写策略

写直达法

执行写操作时不仅写入cache也写入一下级存储器

写直达法所导致的cpu停顿称为cpu写停顿

可使用写缓冲器来来优化减少写停顿

优点:速度快,所使用的存储器带宽低

写回法

执行写操作时,只写入cache。仅当cache中相应的块被替换时才写入主存。(设置“修改位”)

优点:一致性好,易于实现

写操作时的调块

由于写访问并不需要用到所访问单元的原先数据,所以当发生写不命中时可以选择以下两种方式

(1) 按写分配(写时取)

写不命中时,先把所写单元所在块调入cache,再行写入

对应了写回法

(2) 不按写分配(绕写法)

写不命中时,直接写入下一级存储器而不是调块

对应了写直达法

改进cache性能

平均访存时间=命中时间+不命中率∗∗不命中开销

cpu时间=IC∗∗(CPI(execution)+访存次数∗∗不命中率∗∗不命中开销(对应的是周期数))∗∗时钟周期时间

注意

  1. Cache命中对应的时钟周期数应该被看作cpu执行时钟周期数的一部分
  2. 1说明了cpu执行周期数应该要比Cache1对应的时钟周期数要大
  3. 平均访存时间和程序执行时间的区别在于1是平均访存时间对应的是整体地址访问存储器的行为来说的,而cpu时间对应的cpu执行的时间
  4. Cache命中是不访问存储器的,cpu时间计算公式中访存次数×不命中率×不命中开开销和不命中率×不命中开销是等价的
  5. 存储器停顿周期数=平均访存次数×不命中率×不命中开销
  6. 平均访存次数=访存次数/指令数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值