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

    2017-2018-20155336 《信息安全系统设计基础》第九周学习总结

    学习目标

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

    教材学习内容总结

    • 这周学习第六章

    第一节

    • 静态RAM(SRAM):

      • SRAM比DRAM更快,但也贵得多
      • SRAM将每个位存储在一个双稳态的存储器单元里,可无限期保持在两个不同的电压配置或状态之一
      • 只要有供电,SRAM就会保持不变
      • SRAM对于诸如光和电噪声这样的干扰不敏感
    • 动态RAM(DRAM):

      • DRAM将每个位存储为对一个电容的充电
      • DRAM存储器单元对干扰非常敏感
      • DRAM芯片中的单元被分成了D个超单元,每个超单元都由W个DRAM单元组成,一个d*w的DRAM总共才能除了DW位信息
    • RAS和CAS请求共享相同的DRAM地址引脚

    • DRAM芯片包装在存储器模块中,常见的包装包括:

      • 双列直插存储器模块:168引脚
      • 单列直插存储器模块:72引脚
    • 虽然ROM中有的类型既可以读也可以写,但是他们整体上都称为只读存储器

    • PROM只能被编程一次

    • 磁盘结构:盘片、磁道、扇区、间隙、柱面;磁盘驱动器

    • 读事务:从主存传送数据到CPU

    • 写事务:从CPU传送数据到主存

    • 总线包括:地址总线、数据总线、控制总线、系统总线、存储总线、IO总线

    第二节

    • 局部性原理:时间局部性、空间局部性;
    • 局部性两种不同的形式:时间局部性、空间局部性
    • 有良好局部性的程序比局部性差的程序运行的更快
    • 随着步长的增加,空间局部性下降
    • 代码区别于程序数据的一个重要属性是在运行时他是不能被修改的
    • 重复引用同一个变量的程序有良好的时间局部性
    • 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好
    • 对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好

    存储器层次结构

    • 存储器层次结构的中心思想是:对于每个k,位于k层的更快更小的存储设备作为位于(k+1)层的更大更慢的存储设备的缓存。数据总是以块大小作为传送单元在第k层和k+1层之间来回拷贝的。第(k+1)层的存储器被划分成连续的数据对象片,称为块;数据总是以块大小为传送单元在相邻两层之间来回拷贝的;在任何时刻,第k层的缓存包括第(k+1)层块的一个子集的拷贝。

    高速缓存存储器

    • 高速缓存是一个有S个高速缓存组的数组,每个数组包含E个高速缓存行,每个行包含一个有效位,一些标记位t,一个数据块B。

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

    • 高速缓存的结构将m个地址划分成了t个标记位、s个组索引位和b个块偏移位

    • 高速缓存的大小C = S * E * B

    • 高速缓存确定一个请求是否命中,然后抽取出被请求的字的过程,分为三步

      • 组选择
      • 行匹配
      • 字抽取
    • 直接映射高速缓存中不命中时,每个组只包含有一行,替换策略是:用心取出的行替换当前的行。

    • 一个1 < E < C/B的告诉缓存通常称为E路组相联高速缓存

    • 一个全相联高速缓存是由一个包含所有高速缓存行的组(E = C/B)组成的

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

    问题

    • 教材学习中遇到的问题是关于书p396关于访问磁盘的图示,在c图中为什么第三步是从磁盘发出的信号?而且发出的信号为什么没有通过系统总线?

    解决

    • 后来通过继续看书上对其解释得到了答案。首先从磁盘发出的信号是一个中断信号来通知cpu,而且这个信号是发送到cpu芯片的一个外部引脚上。

    习题6.2

    • 计算这样一个磁盘的容量。它有2个盘片,10 000个柱面,每条磁道平均有400个扇区,每个扇区平均有512个字节

    • 磁盘容量 = (512/400)*400*10000*2*2= 8 192 000 000 字节 = 8.192GB

    习题6.3

    • 估计访问下面的一个磁盘上的一个扇区需要的时间(以ms为单位)。

        旋转速率:15000RPM;Taveseek = 8ms;每条磁道的平均扇区数:500
        访问时间 = Taveseek+Taverotation+Tavetransfer = 8ms+0.51/15000RPM60secs.min1000ms/s+1/15000RPM1/50060secs/	
        min1000ms/s=8ms+2ms+0.008ms=10.008ms=
      

    习题6.4

    • 假设1MB的文件由512字节的逻辑块组成,存储在有如下特性的磁盘驱动器上(旋转速率:10 000RPM,Taveseek=5ms,平均扇区/磁道 = 1000)。

      (1)最好的情况:给定逻辑块到磁盘扇区的最好的可能的映射(即,顺序的),估计读这个文件需要的最优时间

      (2)随机的情况:如果块是随机地映射到磁盘扇区的,估计读这个文件需要的时间

      (1)T=Taveseek+Taverotation+2Tmaxrotation=5ms+3ms+26ms=20ms

      (2)在这种情况下,块被随机的映射到扇区上,读2000块的每一块都需要`Taveseek+Tavgrotation=8ms`。所以读这个文件的总时间为`T = 8ms*2000=16000ms=16s`
      

    习题6.11

    • 在前面dotprod的例子中,在我们对数组x做了填充之后,所有对x和y的引用的命中率是多少?

        在填充了之后,对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中。因而命中率为75%
      

    代码托管

    其他(感悟、思考等,可选)

    • 对计算机的存储有更深入的了解。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第四周 600/1300 4/9 30/90
    第五周 650/1300 5/9 40/90
    第六周 700/1300 6/9 50/90
    第七周 800/1300 7/9 60/90
    第八周 1200/1700 8/10 80/110
    第九周 1800/2000 9/11 100/120

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:10小时

    • 实际学习时间:10小时

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    关于开发BugRaid的想法(2)
    杭州.net俱乐部第一次见面会情况
    关于Bug管理的过程
    关于开发BugRaid的想法(1)
    变态的VS2005 SP1
    vs2003 sp1 download url
    proxy software
    敏捷开发
    Enterprise Library文档
    ETL
  • 原文地址:https://www.cnblogs.com/hxl681207/p/7988809.html
Copyright © 2011-2022 走看看