深入理解计算机系统——存储器层次结构

不管怎样,作为程序员我还是强烈建议大家多阅读原理性的书籍,例如《深入理解计算机系统》。。。
本节梳理下存储相关的知识点。

1、存储分类

(1)寄存器
(2)随机访问存储器(SRAM & DRAM)
(3)非易失性存储器(ROM)
需要重点提一下闪存,基于EEPROM,固态硬盘(SSD)就是基于闪存的磁盘驱动器
(4)磁盘

2、剖析计算机系统存储结构


(1)一个存储器层次结构的示意图
在这里插入图片描述
(2)Interl Core i7的高速缓存层次结构
在这里插入图片描述
(3)现代计算机系统中的存储分类

请原谅我的懒,不愿意花时间去画图。
通过上述三张图可以很清晰看出如下几点:
(1)一个存储器包含寄存器、L1高速缓存区(SRAM)、L2高速缓存区(SRAM)、L3高速缓存区(SRAM)、主存(DRAM)、本地磁盘存储、远程二级存储。
(2)从金字塔自顶向下每层的大小逐级递减,成本逐渐降低,上一层作为下一层的缓存,访问的消耗的时间周期越来越大;
(4)寄存器的访问周期是0,寄存器置于cpu内部一般保存当前运行程序需要的上下文或者正在执行的指令;L1、L2、L3高速缓存属于SRAM、主存或者帧缓存区属于DRAM;
(3)图1可以看作图2的层次机构一一对应,针对多核处理器,L1 和L2高速缓冲区每个核独享,L3高速缓存区多核共享。

3、高速缓存存储器结构

分类:高速缓存存储器的处理速度仅次于寄存器,一般分为三种:只保存指令的高速缓存寄存器i-cache,只保存数据的高速缓存寄存器d-cache,既保存指令又保存数据的高速缓冲寄存器(统一的高速缓存)。

结构:以上图Interl Core i7为例,每个CPU芯片有四个核。每个核有自己私有的32kB L1 i-cache、32kB L1 d-cache、256kB L2统一的高速缓存、8MB L3统一的高速缓存。下图是高速缓存器的简要内部结构,每一个组有若干行,每一行包含有效位、标记、数据块。

缓存命中&缓存不命中:L1是L2的缓存、L2是L3的缓存。假设需要在L2层找到对象d时,先查找L1中是否存在,若存在就是缓存命中,若不存在,就是缓存不命中;若缓存不命中,加载L2中的对象至L1,如果缓存已满,会在缓存L1中选出一块牺牲块用于替换当前需要加载的块。

直接映射高速缓存:高速缓存的映射方式分为三种:直接映射高速缓存、组相联高速缓存、全相联高速缓存。直接映射高速缓存的组织架构可以理解为下图的组织形式(S,E,B) 存储空间分为S组,每组E行,每行B字节;
直接映射高速缓存寻找过程如下:
(1)组选择:根据地址中 的组索引查找到对应的组;
(2)行匹配:组选择确定后,针对组内的行查询行标记位与地址中的标记位是否匹配;匹配则进行下一步;
(3)字选择:确定多需要的字在块中从哪里开始,根据块偏移查找块中对应的字节;
(4)若不命中需进行行替换。
组相联高速缓存是指组内所有的行合并成一行查找;
全相联高速缓存是指所有的组合并成一行查找,类似于一维数组的查找;
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值