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

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

    教材学习内容总结

    存储技术

    基本存储技术:SRAM存储器 、DRAM存储器、ROM存储器、旋转硬盘、固态硬盘

    • 静态RAM(SRAM)

    将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的。
    特点:它可以无限制地保持在两个不同的电压配置或状态之一。其他任何状态都是不稳定的。只要有电,它就会永远地保持它的值,即使有干扰,如电子噪音,来扰乱电压,当干扰消除,电路也能恢复到稳定值。

    应用:SRAM用来作为高速缓存存储器,即可以在CPU芯片上,也可以在片下。

    • 动态RAM(DRAM)

    DRAM将每个位存储为对一个电容的充电,由一个电容和一个访问晶体管组成。
    特点:对干扰特别敏感,当电容的电压被扰乱之后,它就永远不会恢复了。暴露在光线下会导致电容电压改变。
    应用:DRAM用来作为主存以及图形系统的帧缓冲区。

    • 静态RAM(SRAM)和动态RAM(DRAM)对比

    只要供电,SRAM就会保持不变。与DRAM不同,它不需要刷新。SRAM存取比DRAM快。SRAM对诸如光和噪声这样的干扰不敏感,代价是SRAM单元比DRAM单元使用更多的晶体管,因而密集度低,而且更贵,功耗较大

    • 传统DRAM
      DRAM芯片中的单元被分成d个超单元,每个超单元都由w个DRAM单元组成,一个d*w的DRAM共存储了dw位信息。

    • ROM的区分:能被重编程的次数和对他们进行重编程所用的机制。
      PROM:只能被编程一次。
      EPROM:可擦写可编程ROM,紫外线光照清除单元内容,可擦写次数数量级1000。
      EEPROM:电子可擦除PROM,可以直接在印制电路卡上编程,可擦写次数数量级10^5。
      FLASH:闪存,基于EEPROM。

    • 磁盘存储
      由盘片构成,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料。盘片中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转。

    每个表面是由一组称为磁道的同心圆组成;每个磁道被划分成一组扇区;每个扇区包含相等数量的数据位(通常是512字节);这些数据编码在扇区上的磁性材料中。扇区之间由一些间隙分隔开,这些间隙中不存在数据位。间隙存储用来标识扇区的格式化位。

    对扇区的访问时间有三个主要的部分:
    寻道时间:为了读取某个目标扇区的内容,传动臂把读/写头首先定位到包含目标扇区的磁道上,所需时间即为寻道时间,约等于最大旋转时间,寻道时间Tseek依赖于读写头以前的位置和转动臂在盘面上移动的速度。
    旋转时间:定位到期望的磁道后,驱动器等待目标扇区的第一个位旋转到读/写头下。依赖于当读写头到达目标扇区时盘面的位置和磁盘旋转速度。
    传送时间:当目标扇区的第一个位位于读写头下时,驱动器就可以开始读或者写该扇区的内容。依赖于旋转速度和每条磁道的扇区数目。

    • 连接到I/O设备
      I/O总线比系统总线比存储器总线慢,但是它可以容纳种类繁多的第三方I/O设备。
      通用串行总线USB:连接到USB总线的设备的中转机构
      图形卡(适配器):包含硬件和软件逻辑,负责代表CPU在显示器上画像素
      主机总线适配器:将一个或多个磁盘连接到I/O总线

    • 固体磁盘
      固态硬盘是一种基于闪存的存储技术,一个SSD包由一个或多个闪存芯片和闪存翻译层组成,闪存芯片替代传统旋转磁盘中机械驱动器;闪存翻译层(一个硬件/固件设备)替代磁盘控制器,将对逻辑块的请求翻译成对底层物理设备的访问。
      性能特性: 顺序读和写(CPU按顺序访问逻辑磁盘块)性能相当,顺序读比顺序写稍快一点。随机顺序访问逻辑块时,写比读慢一个数量级。

    局部性

    • 局部性原理
      一个编写良好的计算机程序常常具有良好的局部性,即倾向于引用临近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。

    • 两种不同形式
      空间局部性
      时间局部性

    • 对程序数据引用的局部性
      步长为k的定义:一个连续变量中,每隔k个元素进行访问。
      步长为1的引用模式:就是顺序访问一个向量的每个元素,有时也被称为顺序引用模式,它是程序中空间局部性常见和重要的来源。
      一般来说,随着步长增加,空间局部性下降。

    C语言中数组在存储器中是按照行顺序存放的

    量化评价一个程序中局部性的简单原则:
    重复引用同一个变量的程序有良好的时间局部性
    对于具有步长为k的引用模式的程序,步长越小,空间局部性越好
    对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。

    存储器层次结构

    • 存储技术:不同的存储技术的访问时间差异很大,速度较快的技术每字节的成本要比速度较慢的技术高,而且容量较小,CPU和主存之间的速度差距在增大。

    • 高速缓存与缓存:高速缓存cash是一个小而快速的存储设备,它作为存储在更大、更慢的设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存。

    • 存储器层次结构的中心思想:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存,即每层存储设备都是下一层的“缓存”

    • 缓存命中
      当程序需要第k+1层的某个数据对象d时,首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,就称为缓存命中。

    • 缓存不命中
      即第k层中没有缓存数据对象d。

    • 替换策略:
      决定替换哪个块
      随机替换策略:随机选择一个牺牲块
      最近最少被使用替换策略:选择最后被访问的时间距现在最远的块

    • 高速缓存存储器

    L1高速缓存:位于CPU寄存器文件和主存之间,访问速度2-4个时钟周期
    L2高速缓存:位于L1高速缓存和主存之间,访问速度10个时钟周期
    L3高速缓存:位于L2高速缓存和主存之间,访问速度30或40个时钟周期

    • 通用的高速缓存存储器结构
      高速缓存是一个高速缓存组的数组,高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。

    它的结构可以用元组(S,E,B,m)来描述:
    m:每个存储器地址有m位,形成M=2^m个不同的地址
    S:这个数组中有S=2^s个高速缓存组
    E:每个组包含E个高速缓存行
    B:每个行是由一个B=2^b字节的数据块组成的

    标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块
    有效位:每个行有一个有效位,指明这个行是否包含有意义的信息

    • 直接映射高速缓存

    高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:
    组选择
    行匹配
    字抽取

    -直接映射高速缓存中的冲突不命中
    原因:在块之间抖动,即这些块被映射到了同一个高速缓存组,高速缓存反复的加载和驱逐相同的高速缓存块的组
    解决方法:在每个数组的结尾放B字节的填充(B字节是一个块的长度,一行是一个块,相当于分开了行)从而使得他们映射到不同的组。


    • 直写:立即将w的高速缓存块协会到紧接着的低一层中
      写回:只有当替换算法要驱逐更新过的块时,才写到紧接着的低一层中。

    写不命中的处理方法:
    写分配(对应写回):加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。
    非写分配(对应直写):避开高速缓存,直接把这个字写在低一层中。

    感悟

    本章内容总体来说还是很有趣的,比较之前的抽象概念有比较多的实际的知识。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 50/50 1/1 20/20
    第二周 50/100 1/2 30/50
    第三周 100/200 1/3 20/70
    第四周 0/200 0/3 20/90
    第五周 50/250 1/4 20/110
    第六周 50/300 1/5 20/130
    第七周 0/300 1/6 20/150

    参考资料

  • 相关阅读:
    Linux中的中断处理
    Yocto使用小技巧
    udev学习笔记汇总
    USB gadget学习笔记
    Linux常用命令
    Linux下软件安装方法
    278. First Bad Version
    MySQL的索引
    7. Reverse Integer
    排序算法
  • 原文地址:https://www.cnblogs.com/jdy1453/p/6013787.html
Copyright © 2011-2022 走看看