zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础第七周学习总结

    存储器层次结构

    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 存储山

  • 相关阅读:
    测试JavaScript
    从零开始部署小型企业级虚拟桌面 -- Vmware Horizon View 6 For Linux VDI -- 概念简介
    怎样向IT行业的朋友说明《圣经》的重要性
    关于爱剪辑、会声会影、美图秀秀
    快速登录IRC网络聊天室
    如何写一篇好的搭建教程
    从零开始部署小型企业级虚拟桌面 -- Vmware Horizon View 6 For Linux VDI
    Oracle工程师技能树
    论万金油的悲哀
    自定义地图开发(一)
  • 原文地址:https://www.cnblogs.com/javajy/p/4905168.html
Copyright © 2011-2022 走看看