信息安全系统设计基础第六周学习总结

第六章 存储器层次结构

第一节 存储技术

随机访问存储器

随机访问存储器:

  • 静态RAM(SRAM)
  • 动态RAM (DRAM)
    静态RAM比动态RAM更快
    SRAM作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。
    DRAM作为主存以图形系统的帧缓存区。
    静态RAM
    储存在一个双稳态的存储单元里,他可以无限期的保持在两个不同的电压配置或状态之一。

如图,钟摆是从稳定-亚稳态-稳定的过程。
由于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

  • 快页模式DRAM(FPM DRAM)
    FPM DRAM允许对同一行连续的访问可以直接从行缓冲区得到服务。
  • 扩展数据输出DRAM(EDO DRAM)
    它允许单独的CAS信号在时间上靠的更紧密一点。
  • 同步DRAM(SDRAM)
    SDRAM用与驱动存储控制器相同的外部时钟信号的上升沿来代替许多这样的控制信号。
  • 双倍数据速率同步DRAM(DDR SDRAM)
    不同类型的DDR SDRAM是用提高有效宽带的很小的预取缓冲区大小来划分:DDR(2位),DDR2(4位),DDR3(8位)
  • Rambus DRAM(RDRAM)
  • 视频RAM(VRAM)
    它用在图形系统的帧缓冲区
    非易失性存储器
    如果断电,DRAM和SRAM会丢失他们的信息,它们都是易失的。
    非易失性存储器在关电后也仍然保存着他们的信息。
    PROM即可编程ROM,只能被编程一次。
    可擦写可编程ROM(EPROM)
    闪存,一类非易失性存储器,固态硬盘即是基于此产生的。
    访问主存
  • 总线
  • 总线事务
  • 读事务
  • 写事务

磁盘存储

磁盘构造

  • 盘片
  • 表面
  • 主轴
     * 旋转速率
     * 磁道
     * 扇区
     * 间隙

     * 磁盘
     * 旋转磁盘

磁盘容量
 * 记录密度(位/英寸)
 * 磁道密度(道/英寸)
 * 面密度(位/平方英尺)
磁盘操作

  • 任何时刻,所有的读写头都位于同一柱面上。
  • 在传动臂末端的读/写头在磁盘表面高度约0.1微米处一层薄薄的气垫上飞翔,速度大约为80km/h。磁盘以扇区大小的块来读写数据。
  • 对扇区的访问时间有三个主要部分组成:
  1. 寻道时间(seek time):为了读取某个目标扇区的内容,传动臂把读/写头首先定位到包含目标扇区的磁道上。所需时间即为寻道时间,约等于最大旋转时间。

  2. 旋转时间(rotational latency):定位到期望的磁道后,驱动器等待目标扇区的第一个位旋转到读/写头下。

  3. 传送时间(transfer time)

逻辑磁盘块
现代磁盘构造复杂,有多个盘面,这些盘面上有不同的记录区。为了对操作系统隐藏这样的复杂性,现代磁盘将它们的构造简化为一个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的地址中的标记相匹配

直接映射高速缓存中的字缓存

运行中的直接映射高速缓存


组相联高速缓存

 * 组选择

 * 行匹配和字选择

全相联高速缓存

 * 组选择

 * 字选择

一个真实的高速缓存层次结构的解剖

高速缓存参数的性能影响

 * 不命中率
 * 命中率
 * 命中时间
 * 不命中的处罚
高速缓存大小的影响
块大小的影响
相联度的影响
写策略的影响

参考来源:《深入理解计算机系统》

posted @ 2015-10-26 22:14  20135330张若嘉  阅读(294)  评论(1编辑  收藏  举报