#computer architecture#memory2

cache(高速缓存--书桌)
现在也用来塞着那些基于局部性原理来管理的存储器
前言:
两级层次结构中存储信息交换的最小单元称为块block或行line(一个信息块就是一本书)
90%的时间只access到10%的memory
一个重要的原理:
1666976-20190911190304894-417926292.png

  • 数据项的读取
    1666976-20190910112759651-924496111.png
    直接映射:
    1666976-20190910113128102-5243825.png

由于cache中的每个位置可能对应于主存中多个不同的地址,如何知道cache中的数据项是否是所请求的字呢?cache里要摆放data和tag
1666976-20190910124936263-964143456.png

有效位被设置,表示可以使用该块中的值
举个栗子
1666976-20190910125611218-773292178.png
如果是hit的话表明cache里面有,就不用从底层调用了
1666976-20190910125800449-1377186831.png
如果data的tag不一样的话,要把旧的写回去或者被盖过去
1666976-20190910130105939-694129769.png

举个栗子
cache有64个block,一个block是16位
一个块,offset就是4位 0-3 指向block中的每一位
因为有64个块,所以index就是6位
剩下的都是tag
这里的32位是指memory的块地址
1666976-20190910133135378-1736346766.png

块不能太大也不能太小
1666976-20190910134755908-1866612856.png
1666976-20190910142613924-1540696504.png
1666976-20190910142907844-1151032367.png

读cache,会有hit和miss
1666976-20190910143628337-1591293166.png
写cache,也会有hit和miss,由于写回memory太浪费时间所以引入buffer,写入cache的data被写入buffer,由buffer再慢慢写回去
1666976-20190910143734547-1411605151.png
1666976-20190910144635994-1608503843.png
对于write miss,有两种情况:
1.把data从main memory搬进cache,再进行写操作,write through;
2.直接写进main memory,不经过cache(因为对于这一块数据除了写操作就没别的了),write back;

举个栗子:
内置FastMATH处理器的cache
1666976-20190911195215390-349658544.png
1666976-20190911201212419-990666115.png

有三种存储带宽 one-word-wide/wide/interleaved
1666976-20190918142059263-1528207229.png

对于cache和memory之间的数据传输有access time 和cycle time
access time是指从memory里面拿到资料的时间
cycle time是指 要等这么长的时间才能拿到下一笔资料

miss penalty
1666976-20190918142237252-1481027634.png

access DRAM的方法和cache不一样,按行按列找,先把整个行读下来
1666976-20190918142844623-1128184497.png

DDR SDRAMhttps://www.cnblogs.com/shengansong/archive/2012/09/01/2666213.html
1666976-20190918144221843-747821302.png

每个章节和小标题要背一下 top-down

cache性能的计算举例
1666976-20190918145626280-2034225493.png
1666976-20190918150236461-870363962.png

cache性能的提升
结构上的优化:
direct mapped
fully associate(成本高)
这两种比较极端
取一个中间的 set associate
1666976-20190918153911065-1596953195.png
1666976-20190918155027123-411328572.png
再次举例说明这三种的区别
1666976-20190918155613472-306404174.png
1666976-20190918155647505-618818723.png

多层cache,数量上增加:
第一层小而快,为了减少hit时间
第二层略大,为了减少miss概率
1666976-20190918162607900-848955916.png

转载于:https://www.cnblogs.com/zhanghaha-zzz/p/11496171.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值