zoukankan      html  css  js  c++  java
  • 2018-2019-1 20165330 《信息安全系统设计基础》第五周学习总结

    学习目标

    • 了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
    • 理解局部性原理
    • 理解缓存思想
    • 理解局部性原理和缓存思想在存储层次结构中的应用
    • 高速缓存的原理和应用

    学习内容

    存储技术
    1. 随机访问存储器
      • 静态RAM (SRAM):SRAM将每个位存储在一个双稳态的(bitable)存储器单元里。用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下
      • 动态RAM(DRAM):DRAM将每个位存储为对一个电容的充电,用来作为主存以及图形系统的帧缓冲区。
        • 快页模式DRAM(FPM DRAM):异步控制信号,允许对同一行连续的访问可以直接从行缓冲区得到服务。
        • 扩展数据输出DRAM(EDO DRAM):异步控制信号,允许单独的CAS信号在时间上的更紧密一点。
        • 同步DRAM(SDRAM):同步的控制信号,比异步的快。
        • 双倍数据速率同步DRAM(DDR SDRAM):使用两个时钟沿作为控制信号,使DRAM速度翻倍。
        • 视频RAM(VRAM):用在图形系统的帧缓冲区中。
      • 访问主存
        • 读事务:从主存传送数据到 CPU。
        • 写事务:从CPU传送数据到主存
          image
    2. 磁盘存储:保存大量数据的存储设备
      • 构造
        image
      • 磁盘容量:一个磁盘上可以记录的最大位数称为它的最大容量
        image
      • 决定容量的因素:记录密度 磁道密度 面密度
      • 存储:以扇区大小的块来读写数据
      • 扇区的访问时间:寻道时间、旋转时间、传送时间
      • 逻辑磁盘块:一个B个扇区大小的的逻辑块的序列,编号为0-(B-1)
    3. 第三种存储技术——固态硬盘
      • 由一个SSD包由一个或多个闪存芯片和闪存翻译层组成
      • 随机访问时间比旋转磁盘要快,能耗更低,更结实,但容易磨损
    局部性
    1. 局部性原理
      • 含义:引用最近引用过的数据项。这种局部性原理对硬件和软件系统的设计和性能都有着极大的影响。
      • 包括:时间局部性和空间局部性
      • 一般而言,具有良好局部性的程序要比局部性差的程序运行的更快。
    2. 对程序数据引用的局部性
      • 步长:是评价局部性的指标,即如果在连续的数组中,每隔k个元素进行访问,就叫做步长为k的引用模式
      • 一般而言,随着步长的增加,空间局部性下降
    3. 取指令的局部性
      • 循环体里的指令是按照连续的存储器顺序执行的
      • 循环有良好的空间局部性,因为循环体会被执行多次,所以它也有良好的时间局部性
      • 对于循环来说,循环体越小,循环的次数越多,局部性越好
    存储器层次结构
    1. 存储器层次结构
      image
    2. 缓存
      • 高速缓存的过程
      • 层次结构中的每一层都缓存来自较低一层的数据对象
      • 缓存命中:当程序需要第k+1层的某个数据对象d时,它会首先在第k层寻找,如果d刚好在第k层,那么程序就会从第k层直接读取d
      • 缓存不命中:当程序需要第k+1层的某个数据对象d时,它会首先在第k层寻找,在第k层没有缓存数据对象d
        • 分有:冷缓存、冲突不命中、容量不命中
    高速缓存存储器
    1. 定义
      • 高速缓存组:包含E个高速缓存行
      • 高速缓存行:由B = 2^b字节的数据块组成
      • 有效位:指明这个行是否包含有意义的信息
      • 标记位:唯一地标识存储在这个高速缓存行中的块,t = m -(b+s)
    2. 层次结构
      image
    3. 参数
      image
    4. 三种高速缓存
      • 直接映射高速缓存:每个组只有一行(E = 1)的高速缓存
      • 组相联高速缓存:每个组都保存有多于一个的高速缓存行(I<E<C/B)
      • 全相联高速缓存
    5. 处理写不命中
      • 写分配---通常写回对应
      • 非写分配---通常直写对应
    6. 对程序性能的影响
      • 注重内循环
      • 以步长为1来读数据
      • 尽可能使用存储器中读入的数据对象

    ch04课下测试错题总结

    Y86-64中()指令没有访存操作.

    A .
    rrmovl

    B .
    irmovq

    C .
    rmmovq

    D .
    pushq

    E .
    jXX

    F .
    ret

    正确答案:A B E

    解析:rrmovl是寄存器-寄存器传送,irmovq是立即数-寄存器传送,不需要访存。书上P270对jXX访存的标注是空白的,所以jXX没有访存操作。

  • 相关阅读:
    战争迷雾Fog Of War
    [UE4]运行时UMG组件跟随鼠标的逻辑:拖拽UMG组件(蓝图)
    [UE4]FString常用API
    用PNG作为Texture创建Material
    [UE4]C++代码操作SplineMesh
    [UE4]Visual Studio的相关插件安装:UE4.natvis和UnrealVS Extension
    TSubobjectPtr和C++传统指针的区别
    组件Slate教程 & UMG widget构造初始化函数中获取其内部组件
    设置UMG的ComboBox(String)字体大小
    UMG设置组件自适应居中或靠边
  • 原文地址:https://www.cnblogs.com/besty-zyx/p/9864919.html
Copyright © 2011-2022 走看看