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

存储器层次结构

6.1 存储技术

6.1.1 随机访问存储器(RAM) 运存

·静态(SRAM):用来作为高速缓存存储器。将每个位存储在一个双稳态的存储器单元里。
                并无限期的保持在两个状态或配置之一。其他任何状态都是不稳定的。
                在有干扰的情况下,当干扰消除电路恢复稳定。
·动态(DRAM):用来作为主存以及图形系统的帧缓冲区。将每个位存储为对一个电容的充电。
                对干扰十分敏感,当电容电压被扰乱之后就不会恢复了。
  静态与动态的区别:
     ·只要有供电SRAM就会保持不变,与DRAM不同不需要刷新
     ·SRAM的存取比DRAM快
     ·SRAM对抗干扰能力比DRAM强,而功耗更大

·传统的DRAM
  DRAM中的单元被分为d个超单元,超单元被分为r行c列的阵型,d=rc。每个超单元都由w个DRAM单元组成。

  信息通过外部引脚连接器流入和流出芯片
  引脚可以传送字节date或者超单元地址addr
  行地址i称为RAS,列地址j称为CAS,请求共享相同的地址引脚,中间会过渡一个内部行缓冲区
  采用二位阵列而不是线性数组的优点是减少地址引脚的数量,缺点是必须分两步发送地址增加访问时间

·增强的DRAM 
  快页模式:传统模式对同一行连续访问超单元需要发送多次请求,而快页模式一次RAS或CAS后跟多个CAS请求可直接达到目的,从而时间更快。
  扩展数据输出:快页模式的增强版,CAS信号在时间上靠的更紧
  同步:同步比异步存储器更快的输出超单元的内容
  双倍数据速率同步:同步的增强模式,两个时钟沿作为控制信号,速度翻倍。

·非易失性存储器(ROM)  内存
  区分方式:被重新编写的次数和重编所用的机制
     ·可编程ROM:只能编写一次
     ·可擦写可编程ROM:多次编写
  
·访问主存
  数据流在处理器和DRAM中来回通过。读事物指主存传送数据到CPU;写事物指CPU传送数据到主存
  I/O桥的作用:将系统总线的电子信号翻译成存储器总线的电子信号
  读写事物基本分为三步:CPU读地址→传送数据字→存储数据

6.1.2 磁盘存储
·磁盘构造:由一个或多个盘片构成,盘片表面覆盖磁性记录材料,通过中央的转轴旋转。
盘片上有同心圆围成的磁道每个磁道划分为一组扇区

·磁盘容量:可记录的最大位数。决定因素:记录密度、磁道密度、面密度
      计算磁盘容量:   

      练习题6.2,可以根据公式算出,其中,有多少个柱面就代表有多少个磁道的集合

·磁盘操作:寻道:沿着半径轴前后移动传动臂,可以定位在任何磁道上。
      对扇区的访问时间有三个主要的部分:(平均)

          寻道时间:移动传动臂所需的时间,依赖于读写头以前的位置以及读写的速度
          旋转时间:驱动器等待目标扇区的第一个旋转位的到达,依赖于读写头到达目标磁道是盘面的位置和磁盘的旋转速度
          传送时间:目标扇区第一个位位于读写头下,依赖于旋转速度和磁道的扇区数目

          从公式可以看出:平均传送时间 = 最大传送时间 * 1/一个磁道的扇区数

·逻辑磁盘块:维护着逻辑块号和实际磁盘扇区之间的映射关系
      三元组:盘面,磁道,扇区

·连接到I/O设备:
      ·通用串行总线:连接USB总线,各种外围I/O设备。
      ·图形卡;硬件和软件逻辑,代表CPU在显示器上画像素。
      ·主机总线适配器:连接磁盘

·访问磁盘:CPU使用存储器映射技术

6.1.3 固态硬盘:处理来自PCU的读写逻辑磁盘块的请求

·顺序读比顺序写稍微快一点,但随即访问写比读慢一个数量级,原因:擦除块需要时间;修改数据需要拷贝到新的块。

·SSD的优缺点:由半导体储存器构成,没有移动的部件,所以访问速度快,能耗低,结实
               但是容易磨损

6.2 局部性
时间局部性:被引用过的存储器的位置在将来可能被多次引用 (同一存储器)
空间局部性:被引用过的存储器的位置在将来可能引用附近一个存储器的位置 (不同存储器)

6.2.1 对程序数据引用的局部性

·顺序引用模式:步长为1的引用模式。随着步长的增加,空间局部性下降

6.2.2 取指令的局部性:程序指令是放在存储器中的,CPU必去读取指令,所以能评价程序关于取指令的局部性
CPU只能读取指令不能修改或重写
·对于取指令来说,循环良好的时间和空间局部性,循环体越小,迭代次数越多,局部性越好。

练习题6.8 步长为1,遵循行优先顺序来访问,从内到外。
练习题6.9 关键是明白数组在存储器中排列的。
          函数1,步长为1,始终遵循从内到外,空间性最好
          函数2,N个结构中的每一个局部性最好,但是需要跳转到下个结构。
          函数3,结构内跳转,结构与结构之间跳转,所以空间性最差

6.3 存储器层次结构

6.3.1 存储器结构中的缓存
·中心思想:位于k层的更小更快的存储设备作为位于k+1层更大更慢的存储设备的缓存
数据总是以块大小为传送单元在上下层之间来回拷贝。离CPU越远,使用的块越大。

 ·缓存命中:需要k+1层的某个数据d,刚好在k层找到

 ·缓存不命中:覆盖现象:从k=1层取出包含d的块到k层,如果k层满则覆盖

6.3.2 小结

6.4 高速缓存存储器

6.4.1 通用的高速缓存存储器结构

 ·高速缓存包含S个高速缓存组2^s
 ·每个组包含E个高速缓存行
 ·每个行有2^b字节的数据块
  所以高速缓存的大小 C = S * E * B

 ·练习题6.10 根据6-28的表推理计算

6.4.2 直接映射高速缓存:高速缓存行数只有一行

 ·组选择:高速缓存从w位的地址中抽取s组索引位
 ·行匹配:确定是否有字w的一个拷贝存储在组i包含的一个高速缓存行中。每个组只有一行。
 ·字选择:确定所需的字在快中从哪里开始。块偏移提供了所需的字的第一个字节的偏移

 ·不命中时的行替换:从存储器层次结构中的下一层取出被请求的块

 ·综合
    ·标记位和索引位连接起来唯一的标示了存储器中的每个块
    ·多个块同一映射到一个高速缓存组
    ·映射到同一高速缓存组的块由标记位唯一标示

 ·CPU执行一系列读时都发生了什么
   1)读地址0的字:缓存不命中,从第一层取出块0并返回存储器位置0的内容
   2)读地址1的字:高速缓存命中,立即从高速缓存行的块1中返回
   3)读地址13的字:缓存不命中,所以块6加载到组2
   4)读地址8的字缓存不命中,但是缓存行有效,标记位不匹配,块4加载到组0。

 ·冲突不命中:即使有良好的空间局部性且好俗缓存中也有足够的空间,但是引用还是会导致冲突不命中,因为:
               这些块被映射到了同一个高速缓存组,导致速度下降
               每组只有一行

6.4.3 组相连的高速缓存

 ·组选择:与直接映射高速缓存相同
 ·行匹配和字选择:高速缓存必须搜索组中的每一行,寻找一个有效的行标记与地址中的标记相匹配
     !图6-36 !
 ·不命中时对的行替换:替换策略就是随机选择要替换的行

6.4.4 全相连高速缓存

 ·是有一个包含所有高速缓存行的组组成
 ·组选择:注意地址中没有组索引位,地址被划分为标记和块偏移
 ·行匹配和字选择:与组相连是规模大小的区别

6.4.5 有关写的问题

 ·直写:立即将w的高速缓存块写回到紧挨着的低一层
 ·写回:尽可能的推迟存储器更新直到替换算法要驱逐更新过的块
 ·写分配:加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块

6.4.7 高速缓存参数的性能影响

 ·不命中率:不命中数量/引用数量
 ·命中率:1-不命中率
 ·命中时间:高速缓存传送一个字到CPU的时间
 ·不命中处罚:

 ·高速缓存大小的影响、块大小的影响、相连度的影响、写策略的影响。

6.5 编写高速缓存友好的代码

   基本方法:让最常见的情况运行得快
             在每个循环内部缓存不命中数量最小

6.6 综合:高速缓存对程序性能的影响

6.6.1 存储山

posted @ 2015-10-27 16:06  20135236贾瑗  Views(143)  Comments(1Edit  收藏  举报