计算机组成与系统结构 cache 原理与计算

cache原理以及相关计算

一、cache存在的意义

介绍cache之前, 大家需要先知道局部性原理:

局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

  • 时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。
    程序循环、堆栈等是产生时间局部性的原因
  • 空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与正在使用的信息在空间地址上是临近的。
  • 顺序局部性(Order Locality):在典型程序中,除转移类指令外,大部分指令是顺序进行的。顺序执行和非顺序执行的比例大致是5:1。此外,对大型数组访问也是顺序的。
    指令的顺序执行、数组的连续存放等是产生顺序局部性的原因

因此, 既然CPU对于Main Memory中不论是数据(data
)还是指令(instruction)的访问都是趋于集中的, 那么我们是不是可以开辟另外一个区域来存放这些连续的内容呢?

于是cache就诞生了, 暂存可能要访问的内容, 从而能够快速访问局部内容, 大大提高访问速度.

CPU对于存储访问的分层: Cache<–>Main Memory<–>External Memory

二、cache的特点

  • 位于普通主内存和CPU之间
  • 可能位于CPU芯片或模块上
  • 与主内存的大小相比,Cache相对较小
  • 运行速度接近处理器
  • 和主存比非常贵
  • 存储的是主存中一部分内容的 副本(copy)

三、cache中存储的内容

Cache将Memory中的一个Block(由K个字构成)作为一个Line来存储, 一个Line中的内容和对应的Block内容是一样的.

每个Line中都有几位的内容来标记其对应的Block号, 称之为Tag位, 存在开头的位置.

每个Block对应着K个Word(s), 因此需要logK(向上取整)位来标记一个字存在Block中的位置.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值