CSAPP学习笔记 -- 第六章 存储器层次结构(上)
存储器系统是一个具有不同容量,成本和访问时间的存储器的层次结构。
局部性原理
6.1 存储技术
6.1.1 随机访问存储器
随机访问存储器RAM分为两类
-
静态SRAM
-
每个位存储在一个双稳态的存储器单元
-
-
动态DRAM
-
每个位存储为对一个电容的充电
-
对干扰敏感且不恢复
-
-
传统的DRAM
-
每个DRAM芯片连接到一个内存控制器的电路,通过RAS和CAS的超地址(i, j)请求读取内容
-
内存模块
-
DRAM芯片封装在内存模块中,插到主办的扩展槽上。
-
传统DRAM的组合模型
-
增强的DRAM
-
快页模式DRAM
-
扩展数据输出DRAM
-
同步DRAM
-
双倍速率DRAM
-
视频DRAM
-
非易失性存储器
-
DRAM和SRAM是断电易失的,但是ROM不会
-
可擦写可编程ROM
-
电子可擦除ROM
-
闪存
-
固态硬盘
-
访问主存
-
总线
-
读事务、写事务
-
6.1.2 磁盘存储
-
磁盘构造
-
-
磁盘容量
-
记录密度:磁道一英寸的段中可以放入的位数
-
磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数
-
面密度:记录密度和磁道密度的乘积
-
-
磁盘操作
-
读/写头、传动臂、寻道
-
-
寻道时间
-
旋转时间
-
传送时间
-
访问时间的计算参考例
-
-
逻辑磁盘块
-
三元组(盘面,磁道,扇区)
-
连接I/O设备
-
通用串行总线(USB)控制器
-
图形卡
-
主机总线适配器
-
访问磁盘
-
内存映射I/O、直接内存访问DMA
-
6.1.3 固态硬盘
略过
6.1.4 存储技术趋势
关于存储技术的讨论
-
不同的存储技术有不同的价格和性能折中
-
不同存储技术的价格和性能属性以截然不同的速率变化着
6.2 局部性
局部性原理:计算机程序倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
-
分为时间局部性和空间局部性
-
一般而言,有良好局部性的程序比局部性差的程序运行的更快
-
因此引用了高速缓存寄存器
6.2.1 对程序数据引用的局部性
步长为k的引用模式,步长越长,空间局部性下降。
6.2.2 取指令的局部性
指令按照连续的内存顺序执行,因此具有良好的空间局部性
循环体执行多次,因此具有良好的时间局部性
6.2.3 局部性小结
-
重复引用相同变量的程序具有良好的时间局部性
-
步长为k的引用模式,步长越长,空间局部性下降。
-
对于取指令来说,循环体具有好的时间和空间局部性
6.3 存储器层次结构
6.3.1 存储器层次结构中的缓存
层次结构中的每一层都缓存来自较低一层的数据对象
-
缓存命中
-
缓存不命中
-
替换策略
-
缓存不命中类型
-
强制性不命中/冷不命中
-
冲突不命中
-
容量不命中
-
缓存管理
6.3.2 存储器层次结构概念小结
基于缓存的存储器层次结构行之有效,是因为有较慢的存储设备比较快的存储设备要便宜,还因为程序倾向于展示局部性。