20145330 第7周《信息安全系统设计基础》

20145330 第7周《信息安全系统设计基础》

了解存储设备的类型和特点;重点理解局部性原理和缓存思想在存储层次结构中的应用

教材学习内容总结

6.1存储技术

  • 随机访问存储器(RAM)
    • 1.静态RAM(SRAM)
      • 每位晶体管数:6
      • 相对访问时间短,存取快
      • 双稳态特性,持续
      • 对诸如光和电噪声这样的干扰不敏感
      • 相对花费高
      • 应用:高速缓存存储器
    • 2.动态RAM(DRAM)
      • 每位晶体管数:1
      • 相对访问时间长
      • 不持续,需要不断刷新
      • 对干扰非常敏感
      • 应用:主存,帧缓冲区
    • 3.传统的DRAM
      • DRAM芯片中的单元被分成d个超单元,每个超单元由w个DRAM单元组成
      • 每个DRAM芯片被连接到某个称为存储控制器的电路
        • 行地址i(RAS)
        • 列地址j(CAS)
        • RAS CAS共享相同的DRAM地址引脚
    • 4.存储器模块
      • DRAM芯片包装在存储器模块中
    • 5.增强的DRAM
      • FPM DRAM:允许对同一行连续的访问可以直接从行缓冲区得到服务
      • EDO DRAM:扩展数据输出DRAM
      • SD DRAM:同步DRAM
      • DDR DRAM:双倍数据速率同步DRAM
      • VRAM:视频RAM
    • 6.非易失性存储器(POM是以他们能够被重编程的次数和机制来区分的)
      • PROM(可编程ROM)
        • 只能被编程一次
      • EPROM(可擦写可编程ROM)
        • 可以达到1000次
      • EEPROM(电子可擦除PROM)
        • 可以达到10^5次
      • FLASH(闪存):
        • 一类非易失性存储器
        • 一种重要的存储技术
      • 固件:存储在ROM设备中的程序
  • 磁盘存储
    • 磁盘构造
      • 磁盘是由一个或多个叠放在一起的盘片组成
      • 磁盘结构:盘片、磁道、扇区、间隙、柱面;磁盘驱动器
    • 磁盘容量
      • 记录密度
      • 磁道密度
      • 面密度
      • 磁盘容量=字节数 * 平均扇区数 * 磁道数 * 表面数* 盘片数
        • 习题6.2
    • 磁盘操作
      • 寻道时间(Tseek):移动传动臂到目标扇区所需的时间
        • 通常3-9ms
      • 旋转时间(Trotation):驱动器等待目标扇区的第一个位旋转到读写头下
      • 传送时间(Ttransfer):驱动器开始读写该扇区内容的时间
        • 传送时间依赖于:旋转速度和每条磁道的扇区数目
      • 习题6.3
    • 逻辑磁盘块
      • 读取一个磁盘扇区的数据到主存-发送命令到磁盘控制器-读取某个逻辑块号
      • 内存可以看成字节数组、磁盘可以看成块数组
      • 习题6.4
    • 总线
      • 总线连接了CPU、主存和I/O设备
      • 第三方I/O设备
        • USB
        • 适配器
        • 主机总线适配器
    • 访问磁盘
      • CPU通过将命令、逻辑块号和目的存储器地址写到与磁盘相关联的存储器映射地址,发起一个磁盘读
      • 磁盘控制器读扇区,并执行到主存的DMA传送
        • DMA(直接存储器访问):设备可以自己执行读或者写总线事务,而不需要CPU干涉的过程。
      • 当DMA传送完成时,磁盘控制器用中断的方式通知CPU

6.2局部性

  • 时间局部性
    • 被引用过一次的存储器位置很可能在不远的将来再多次被引用
  • 空间局部性
    • 程序在不远的将来引用附近一个存储器位
  • 重复引用同一个变量的程序有良好的时间局部性
  • 步长越小,空间局部性越好
    • 步长为1最好
  • 习题6.8 6.9

6.3 存储器层次结构

  • 存储器层次结构:
    • 从高层往底层走,存储设备变得更慢、更便宜和更大
    • 最高层:少量快速的CPU寄存器
    • 接下来:小型到中型的基于SRAM的高速缓存存储器
    • 打的基于DRAM的主存
    • 慢速但是容量很大的本地磁盘
    • 最后一层:附加的远程服务器上的磁盘
  • 高速缓存:小而快速的存储设备,作为存储在更大更慢的设备中的数据对象的缓冲区域。
  • 缓存:使用高速缓存的过程
  • 缓存命中/缓存不命中
  • 中心思想:每层设备都是下一层的缓存

6.4 高速缓存存储器

  • 通用的高速缓存存储器结构
    • 将m个地址位划分成了t个标记位、s个组索引位和b个块偏移位
    • 结构描述(S,E,B,m)
    • 习题6.10
  • 直接映射高速缓存
    • E(高速缓存行数)=1
    • 高速缓存确定请求是否命中过程:
      • 1.组选择
      • 2.行匹配
      • 3.字抽取
    • 习题:6.11 6.12
  • 组相关高速缓存
    • 1<E<C/B
  • 全相联高速缓存
    • E=C/B
  • 习题6.13
  • 有关写的问题
    • 直写:立即将w的高速缓存块写回到紧接着的第一层中
    • 写回:只有当替换算法要驱逐更新过的块时,才能把它写到紧接着的第一层中
    • 写分配:加载相应的第一层中的块到高速缓存中,然后更新这个高速缓存
    • 非写分配:避开高速缓存,直接把这个字写到第一层中

代码调试中的问题和解决过程

  • 通过过学习王嘉澜同学的博客将代码管理并上传

教材学习中的问题和解决过程

  • 6.4
    • 问题:通过表格给的参数如何看出文件由2000个512字节的逻辑块组成
    • 解决方法:
  • 6.8
    • 问题:如何改变使得以步长为1的引用模式扫描三维数组a
    • 解决方法:步长为1时空间局部性最好,必须改变循环次数。
      • 由sum+=a[k][i][j]得,循环由里到外为kij
  • 6.9
    • 问题:对三个函数就空间局部性进行排序
    • 解决方法:同理习题6.8,解决问题的关键在于想象出数组是如何在存储器中排列的,然后分析引用模式。
      • 通过给的数组结构发现1函数以步长为1的引用模式访问数组,明显具有最好空间局部性
      • 函数2一次扫N个结构中每一个,但在每个结构中不以步长为1
      • 函数3不仅在每个结构中跳来跳去,还从结构跳到结构
  • 6.10
    • 问题:已知m,C,B,E,计算S,t,s,b
    • 解决方法:通过表格中给出参数信息与之前的公式进行带值运算
      • S=C/(B*E)
      • s=log2(S)
      • b=log2(B)
      • t=m-(s+b)

本周代码托管

感悟与思考

  • 这周有很多概念要去理解与记忆,熟能生巧,多进行练习慢慢就能比之前理解得更深刻。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 000/1000 2/9 30/90
第五周 100/1200 1/10 30/120
第六周 000/1200 1/11 30/150
第七周 100/1300 1/12 30/170
原文地址:https://www.cnblogs.com/20145330swx/p/6013638.html