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

6.1 存储技术

一、随机访问存储器RAM
1、静态RAM(SRAM)比动态快,它CPU芯片上/下。二者特性对比总结如下:
在这里插入图片描述
2、传统的DRAM
图中共16个超单元,每个超单元8位,这个DRAM共128位。
在这里插入图片描述
每个DRAM芯片被连接到“内存控制器”(一个电路),这个电路一次可以从DRAM芯片读取或者传入w位。魏都区超单元(i,j)的内容,内存控制器会将行地址i先发给DRAM ,在发j。DRAM获取到(i,j)地址的内容返回给控制器。

读取过程如下:
在这里插入图片描述
二、内存模块
DRAM芯片封装在内存模块,插到主板的扩展槽上。
当内存模块有多个DRAM时,主存控制器读取值时,穿过地址(i,j),内存会将地址广播到每一个高速缓存芯片上,每个芯片把它该位置的8位值取出,最后拼接到一起响应。如下图:
在这里插入图片描述

3、增强的DRAM——使用各种方法增强访问速度。
4、非易失性存储器
易失:如果断电,DRAM和SRAM会丢失他们的信息,易失。
5、访问主存
总线事务:数据流通过成为总线的共享电子电路在处理器和DRAM主存之间来回。来回步骤称为总线事务。
总线是一组导线
在这里插入图片描述
三、磁盘存储
(一)磁盘构造
在这里插入图片描述
(二)磁盘容量
在这里插入图片描述
容量计算:注意不是除以扇区,就是字节数扇区磁道表面盘片
在这里插入图片描述
单位的说明:
在这里插入图片描述
(三)磁盘操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(四)逻辑磁盘块

磁盘封装一个磁盘控制器。维护逻辑块号和实际磁盘扇区之间的映射关系。
执行I/O操作时,读一个磁盘扇区的数据到主存:
1.操作系统 ——发送命令——》2.磁盘控制器 ——读取——》 逻辑块号
控制器执行快速表查询,将一个逻辑块号翻译成一个(盘面,磁道,扇区)的三元组,唯一标志物理扇区,控制器将读写头移动到适当柱面,等待读写。
(五)连接I/O设备
输入/输出(I/O)设备,都是通过I/O总线连接到CPU和主存的。
I/O总线比系统总线和内存总线慢,但是它可以容纳种类繁多的第三方I/O设备。
在这里插入图片描述
(六)总结
速度:CPU>SRAM>DRAM>旋转磁盘
历史提升趋势
在这里插入图片描述

6.2 局部性

时间局部性:在一个具有良好时间局部性的程序中,被引用一次放入内存位置很可能在不远的将来在被多次引用
空间连续性:如果内存位置被引用一次,那么程序很可能在不远的将来引用附近一个内存位置。
(一)以二位数组加法为例
如图为步长为1的引用模式,具有良好的空间局部性。按行读取,指令按照连续内存顺序执行。
在这里插入图片描述
下图,先按照列加,这样的循环空间局部性差,会得到步长为N的引用模式
在这里插入图片描述
在这里插入图片描述

6.3 存储器层次结构

在这里插入图片描述
在这里插入图片描述

一、存储器层次结构中的缓存
“高速缓存”是一个小而快的存储设备,作为存储在更大、也更慢的设备中的数据对象的缓冲区使用高速缓存的过程称为缓存。
数据总是以块大小作为存储单元在各个缓存层之间来回复制。相邻的两层缓存之间的块大小一致,不相邻的不一致。
在这里插入图片描述
(一)缓存命中
在这里插入图片描述
(二)缓存不命中
程序需要从K+1层读取一个数据d,正好k层有d则可以直接在k层读取,叫做缓存命中,否则叫做缓存不命中。
此时需要k层先从k+1层读取到数据,若此时k层数据已经满了,则需要使用策略替换掉一块k层的数据,在从k+1层读取过来。

6.4 高速缓存存储器

在这里插入图片描述
一、通用的高速缓存存储器组织结构
每个存储器有m位,形成M=2^m个不同的地址。
如下图,一个机器的高速缓存被组织成一个有S=2^s个高速缓存组的数组,及共s个组。每个组E行高速缓存行。每行=1个有效位+t个标记位+数据块B
在这里插入图片描述高速缓存结构s=(S,E,B,m),它的解释如下:
在这里插入图片描述
高速缓存小节
在这里插入图片描述
二、直接映射高速缓存
每个组只有1行的高速缓存。
在这里插入图片描述
直接映射高速缓存中行匹配工作方式:
当选择的组中只有一个高速缓存行,选中需要行的 有效位 设置值,行的 标记位 与要寻找的 标记位一样。字节偏移100(二进制),代表字节块汇中索引4
在这里插入图片描述
(一)一个高速缓存示例
一个高速缓存,S=共4组,E=每组1行,B=每行2字节,
内存地址大小M=2^m=16,组索引位数量s=log2S=2,块偏移位数量b=log2S=1,标记位t=m-s-b=1
在这里插入图片描述
地址(t,s,b)写法如下:
在这里插入图片描述
标记位和索引位连接起来唯一标识内存中的每个块
16个地址共8个内存块,0,1; 2,3 ; 4,5: 6,7; 8,9; 10,11 ;12,13; 14,15 ;
共4个缓存组,所以多个块会映射到一个缓存组,,他们的索引位s一致。
在这里插入图片描述
(二)直接映射高速缓存中的冲突不命中
*三、组相联高速缓存
*

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值