随机访问存储器:
如图,钟摆是从稳定-亚稳态-稳定的过程。
由于SRAM存储单元的双稳定性,只要有电,它就会永远的保持它的值,即使有干扰。
动态RAM
DRAM存储器的每一个单元由一个电容和一个访问晶体管组成。
DRAM储存器单元对干扰非常敏感,当电容的电压一旦被干扰之后,就永远不能恢复了。
如图显示出DRAM与SRAM存储器的特性差别
传统的DRAM
DRAM被分成d个超单元
信息通过称为引脚的外部连接器流入和流出芯片,每个引脚带一个1位信号。
8个data引脚能传送一个字节。
每个DRAM芯片被连接到某个称为储存控制器的电路,这个电路可以一次传送w位到每个DRAM芯片或一次从DRAM芯片上传出w位。
DRAM把超单元(i,j)内容发回给控制器作为回应。
行地址i称为RAS请求,列地址j称为CAS请求,且RAS和CAS请求共享相同的DRAM地址引脚。
存储器模块
DRAM芯片包装在存储器模块中。
常见的包装包括168个引脚的双列直插存储器模块,它以64位为块传送数据,到存储器。
还包括72个引脚的单列直插存储器模块,它以32位为块传送数据,到存储器。
增强的DRAM
磁盘构造
磁盘容量
* 记录密度(位/英寸)
* 磁道密度(道/英寸)
* 面密度(位/平方英尺)
磁盘操作
逻辑磁盘块
现代磁盘构造复杂,有多个盘面,这些盘面上有不同的记录区。为了对操作系统隐藏这样的复杂性,现代磁盘将它们的构造简化为一个b个扇区大小的逻辑块的序列,编号为0,1,2,...b-1。磁盘中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号的和实际(物理)磁盘扇区之间的映射关系。
连接到I/O设备
访问磁盘
商用磁盘的剖析
固态硬盘是一种基于闪存的存储技术,在某些情况下是传统旋转磁盘的极有吸引力的替代产品。
空间局部性
有良好局部性的程序比局部性差的程序运行的更快
步长为k的引用模式:一个连续变量中,每隔k个元素进行访问。
顺序引用模式:具有步长为1的引用模式
随着步长的增加,空间局部性下降
以二维数组为例:
循环体里的指令是按照连续的存储器顺序执行的,因此循环有良好的空间局部性,因为循环体会被执行多次,所以它也有良好的时间局部性。
代码区别于程序数据的一个重要属性时在运行时是不能被修改的。
重复引用同一个变量的程序有良好的时间局部性;
* 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好;
* 对于取指令来说,循环有好的时间和空间局部性,循环体越小,循环迭代次数越多,局部性越好。
第三节 储存器层次结构
----------------------
属性:
* 存储技术
* 计算机软件
中心思想:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存
缓存命中:但程序需要第k+1层的某个数据对象d时,它首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,那么就是我们说的缓存命中。
缓存不命中:若第k层中没有缓存数据对象d,那么就是我们所说的缓存不命中。
* 替换或驱逐:覆盖一个现存的块的过程。
* 牺牲块:被驱逐的这个块。
* 替换策略:决定应该替换哪个块。
缓存不命中的种类
* 冷缓存(强制不命中\冷不命中):一个空的缓存,对于有效位为0的情况
* 缓存暖身:反复访问存储器使缓存暖身之后的稳定状态
* 放置策略:发生了不命中,第k层的缓存就必须执行某个放置策略,确定把它从第k+1层中取出来的块放在哪里。
硬件缓存通常使用的是更严格的放置策略。例如:第k+1层的块0、4、8、12会映射到第k层的块0;块1、5、9、13会映射到块1;以此类推。
* 冲突不命中:限制性的放置策略会引起的一种不命中。
* 工作集:程序是按照一系列阶段来运行的,每个阶段访问缓存块的某个相对稳定不变的集合。 容量不命中:当工作集的大小超过缓存的大小时。
两个充分必要条件:
* 该行设置了有效位
* 高速缓存行中的标记和w的地址中的标记相匹配
* 不命中率
* 命中率
* 命中时间
* 不命中的处罚
高速缓存大小的影响
块大小的影响
相联度的影响
写策略的影响
参考来源:《深入理解计算机系统》