主存和cache每一块相等_笔记:cpu中的cache(一)

前言:绝大部分内容来源于北京大学的慕课《计算机组成原理》,地址:

https://www.coursera.org/learn/jisuanji-zucheng

5dfaeb59ebdddb587ada9c566601939c.png
存储体系(《深入理解计算机系统》)

cache是为了解决cpu和内存速度不对等的问题。

一,cache的结构

当前较为普遍的cache配置是L1,L2,L3。

bd60f3de34ae82564303b87a119a3ccb.png
Core i7的多级高速缓存

L1 Cache:指令和数据分离,各32KB 8路组相联,命中时间4个周期 。

L2 Cache:统一的指令和数据,共256KB 8路组相联,命中时间11个周期 。

L3 Cache:统一的指令和数据,多核共享,共8MB 16路组相联,命中时间30~40个周期。

155d092a611eea6f22e2d3b4ef215a58.png
cache的结构

局部性:

计算机程序从时间和空间都表现出“局部性” 。

时间局部性(Temporal Locality) :最近被访问的存储器单元(指令或数据)很快还会被访问 。

空间局部性(Spatial Locality):正在被访问的存储器单元附近的单元很快会被访问。

缓存行(Cache Line):根据局部性结论可以知道,CPU为了高效,在获取数据不是一个字节一个字节,而是一块一块(block),也即Cache Line(常见的有64Byte)。

2d10fbcf01ce4a9c345a253c7f001cfb.png
cache与内存的映射模型

二,cache访问流程

94f42ab710ea132603650812597eed8e.png
cache访问流程

Cache命中时的写策略:

① 写穿透(Write Through):数据同时写入Cache和主存 。

② 写返回(Write Back):数据只写入Cache,仅当该数据块被替换时 才将数据写回主存。

Cache失效”时的写策略 :

① 写不分配(Write Non-Allocate):直接将数据写入主存 。

② 写分配(Write Allocate):将该数据所在的块读入Cache后,再将数 据写入Cache。

参考:

https://www.coursera.org/learn/jisuanji-zucheng

https://coolshell.cn/articles/20793.html

https://www.stardog.com/blog/writing-cache-friendly-code/

https://dzone.com/articles/optimizing-memory-access-with-cpu-cache

https://coolshell.cn/articles/10249.html

https://max.book118.com/html/2017/1007/136335602.shtm

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值