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

    1、存储技术
    易失性存储器

    SRAM和DRAM

    传统的DRAM与增强的DRAM
    传统DRAM

    ①DRAM芯片中的单元(位)被分成了d个超单元,每个超单元都由w个DRAM单元组成, 一个d*w的DRAM共存储dw位信息。超单元被组织成一个r行c列的长方形阵列,rc=d。每个超单元的地址用(i,j)来表示(从零开始)。设计成二维矩阵是为了降低芯片上地址引脚的数量。

    ②信息通过称为引脚的外部连接器流入/流出芯片,每个引脚携带一个1位信号。

    ③每个DRAM信号被连接到称为存储控制器的电路,电路每次传输量为8位。行地址i,RAS请求;列地址j,CA

    ④请求共享相同的DRAM地址引脚。组织成二维阵列而不是线性数组的一个原因是降低芯片上地址引脚的数量。二维阵列阻止的缺点是必须分两步发送地址,这增加了访问时间。

    增强的DRAM

    快页模式DRAM(FPM DRAM):异步控制信号,允许对同一行连续的访问可以直接从行缓冲区得到服务。

    扩展数据输出DRAM(EDO DRAM):异步控制信号,允许单独的CAS信号在时间上靠的更紧密一点

    同步DRAM(SDRAM):同步的控制信号,比异步的快

    双倍数据速率同步DRAM(DDR SDRAM):使用两个时钟沿作为控制信号,使DRAM速度翻倍。

    Rambus DRAM(RDRAM):一种私有技术

    视频RAM(VRAM):用在图形系统的帧缓冲区中。

    存储器模块
    双列直插存储器模块(DIMM):168个引脚,以64位为块传入/传出数据到存储控制器。
    单列直插存储器模块(SIMM):72个引脚,以32位为块传入/传出数据到存储控制器。
    访问主存
    读事务:从主存传送数据到CPU
    写事务:从CPU传送数据到主存
    总线:一组并行的导线,能携带地址、数据和控制信号。
    系统总线:连接总线接口和I/O桥
    存储器总线:连接I/O桥和主存
    非易失性存储器

    ROM(只读存储器)
    ROM可按照它们能够被重编程的次数和对它们进行重编程所用的机制分类为:PROM(可编程ROM),EPROM(可擦写可编程ROM),闪存(基于EEPROM),固态硬盘(SSD,基于闪存)
    磁盘
    磁盘构造

    磁盘操作:寻道、旋转、读取(时间开销主要是寻道时间和旋转延迟造成)

    逻辑磁盘块:磁盘中有一个小的硬件/固件设备,称为磁盘之气空啊,维护着逻辑块号和实际物理磁盘扇区之间的映射关系。
    固态硬盘(SSD)
    固态硬盘结构:闪存翻译层与磁盘控制器作用相同,一个闪存由B个块序列组成,每个块由P页组成。
    数据是以页为单位读写的。只有在一页所属的整个块被擦除后(有效内容拷贝到其他块)才可写这一页。通常页的大小是5124KB,块是由32128页组成。
    2、局限性
    (1) 时间局部性:被引用过一次的存储器位置很可能在不远的将来再被多次引用。

    (2)空间局部性:被引用过一次的存储器位置附近的数据可能在不远的将来被引用。

    (3)取指令的局部性:指令也是存储在存储器中的,循环的时间和空间局部性是好的。循环体越小,迭代次数越多,局部性越好。

    3、存储器层次结构
    存储器层次结构中的缓存

    高速缓存确定一个请求是否命中,然后抽取出被请求的字的过程,分为三步
    组选择
    行匹配
    字抽取
    直接映射高速缓存中不命中时,每个组只包含有一行,替换策略是:用心取出的行替换当前的行。
    一个1 < E < C/B的告诉缓存通常称为E路组相联高速缓存
    存储器层次结构示意图

    4、高速缓存存储器
    通用的高速缓存存储器结构

    一个计算机系统每个存储地址有m位,形成M=2^m个不同的地址。
    高速缓存被组织成一个有S=2^s个高速缓存组的数组,每个组包含E个高速缓存行,每个行是由- 一个B=2^b字节的数据块、一位有效位以及t=m-(b+s)个标记位组成,唯一标识存储在这个高速缓存行中的块。
    高速缓存的结构用元组(S,E,B,m)来描述,高速缓存的大小C = S * E * B。
    直接映射高速缓存

    直接映射高速缓存:每个组只有一行的高速缓存。
    组选择:
    高速缓存从w的地址中间抽取出s个组索引位
    组索引位:一个对应于一个组号的无符号整数。
    行匹配:
    判断缓存命中的两个充分必要条件:该行设置了有效位;高速缓存行中的标记和w的地址中的标记相匹配
    字选择:确定所需要的字在块中是从哪里开始的。
    组相联高速缓存

    组相连高速缓存中的组选择:与直接映射高速缓存中的组选择一样,组索引位标识组。
    组相连高速缓存中的行匹配和字选择:把每个组看做一个小的相关联存储器,是一个(key,value)对的数组,
    以key为输入,返回对应数组中的value值。高速缓存必须搜索组中的每一行,寻找有效的行其标记与地址中的相匹配。
    组相连高速缓存中不命中时的行替换:最简单的替换策略是随机选择要替换的行,其他复杂的策略则使用了局部性原理,例如最不常使用、最近最少使用等。
    全相联高速缓存

    全相连高速缓存中的组选择:只有一个组,没有组索引位。
    全相连高速缓存中的行匹配和字选择:与组相连高速缓存是一样的,但规模大很多,因此只适合做小的高速缓存,例如虚拟存储系统中的翻译备用缓冲器。
    有关写的问题

    直写:
    立即将w的高速缓存块写回到紧接着的第一层中
    缺点是每次写都会引起总线流量。
    写回:
    只有当替换算法要驱逐更新过的块时,才能把它写到紧接着的低一层中,由于局部性,写回能显著减少总线流量。
    缺点是增加了复杂性。
    另一个问题是如何处理写不命中。
    写分配:加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。 缺点是每次不命中都会导致一个块从低一层传送到高速缓存。
    非写分配:避开高速缓存,直接把这个字写到低一层中。
    高速缓存参数的性能影响

    不命中率:不命中数量/引用数量
    命中率:1-不命中率
    命中时间:从高速缓存传送一个字到CPU所需的时间,包括组选择,行匹配,字抽取的时间。
    不命中处罚:由于不命中所需要的额外时间。
    综合:高速缓存对程序性能的影响

    存储器山
    一个程序从存储系统中读数据的速率称为读吞吐量,或者读带宽,通常以兆字节每秒(MB/s)为单位。
    读带宽的时间和空间局部性的二维函数称为存储器山。

  • 相关阅读:
    一条语句批量插入多条数据
    VMware Workstation 15 Pro 永久激活密钥
    windows下java项目打包、启动批处理 .bat文件
    java简写名词解释
    windows查看所有进程:netstat -ano
    Java验证jwt token
    【转载】三种方法从 HTTPS 网站导出 SSL 证书链
    使用solr将CSV/XML/DB/JSON数据发布为Rest Service
    检验多个xsd的xml是否合法
    Eclipse 打包运行maven项目
  • 原文地址:https://www.cnblogs.com/0630tx/p/9866683.html
Copyright © 2011-2022 走看看