计算机体系结构——储存层次

本文详细介绍了计算机的存储层次结构,从寄存器到远程存储,逐级递增容量、降低速度并减少成本。缓存机制作为提升数据访问速度的关键,通过缓存命中和缓存失效的概念,阐述了其工作原理。缓存友好性分为时间与空间两个方面,影响着程序性能。同时,讨论了不同类型的缓存失效,包括冷缓存、冲突性和容量失效,并提及了缓存替换算法如LRU。
摘要由CSDN通过智能技术生成

计算机体系结构——储存层次

计算机的储存层次定义了计算机如何储存数据,一种典型的储存层次为:

代号名称说明
L0寄存器寄存器的数据从内存缓存中获取数据
L1芯片内高速缓存( SRAM )L1 缓存从 L2 缓存获取数据
L2芯片外缓存( SRAM )L2 缓存从内存中获取数据
L3主存( DRAM )主存从本地硬盘获取数据
L4本地存储硬盘储存计算机产生的数据或者从网络中获取数据
L6远程储存包括网络分发文件系统, Web 服务等

这些储存结构从上到下依次:

  • 容量递增;
  • 价格递减‘;
  • 速度递减;
  • 体积递增。

储存层次中的缓存

储存层次第 k 层是第 k+1 层的缓存,缓存的主要作用是将那些在 k+1 层经常使用的数据块复制到第 k 层,这样就可以提高访问的速度。

缓存命中

当程序想要获取第 j 个数据块,发现第 k 层缓存缓存了这个数据块称为缓存命中。

一个好的程序通常需要具有好的缓存友好性,分为:

  1. 时间缓存友好性,指程序应该在短时间内访问同一个变量。
  2. 空间缓存友好性,程序应该连续访问数据,而不是跨越访问数据。

上面两点都能提高缓存命中的概率。

缓存失效

当程序想要获取第 j 个数据块,发现第 k 层缓存没有缓存第 j 个数据块,进而要从第 k+1 层获取第 j 个数据块,称为缓存失效。

如果第 k 层的缓存空间使用已满,这时需要用第 j 个数据块去覆盖某个数据块。被覆盖的数据块称为牺牲数据块,觉得被覆盖的数据块取决于缓存替换算法。例如,随机缓存替换随机选取一个数据块进行替换, LRU 缓存算法将替换距最后一次访问时间距离现在最长的那个数据块。

缓存失效的类型

如果第 k 层缓存是空的,即没有任何数据块,称为冷缓存。此时的缓存失效类型称为强制失效或者 冷失效 ,这种缓存失效持续时间不长,常发生在缓存预热之前。

第 k 层的储存通常比第 k+1 层小的很多,如何在第 k 层放置数据块和定位数据块成了一个严峻的问题。通常来说,使用一种取余策略,即将第 k + 1层第 i 个数据块放在第 k 层的第 i m o d    4 i \mod 4 imod4 的位置上,假如第 k 层有 4 个可用的位置。

这种策略引发了一种 冲突性失效的缓存失效 的类型,例如程序连续访问 0,8,0,8,0,8 恰好这两个数据块共用一个缓存位置,那么每次查询缓存的时候都被另外一个占用,缓存永远无法发挥作用。

最后一种,当程序反复使用一段内存,但是这段内存大于缓存区的长度,那么这段内存将会重复载入缓存区,造成 容量缓存失效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值