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

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

教材学习内容总结

  • 简单模型中,存储器是一个线性的字节数组。真实模型中,是一个具有不同容量,成本,访问时间的存储层次结构(存储器山)

  • 程序的局部性很重要,对程序性能有很重要的影响。

  • 计算机系统一个基本而持久的思想,如果你理解了系统是如何将数据在存储器层级结构中上下移动,你就可以编写程序,让数据存储在层次结构中较高的地方,从而CPU可以更快的访问到他们。

  • 编写程序实现功能是最简单的,如何让编写的程序拥有最高的性能,例如利用程序的局部性原理,才是更重要的

  • 程序的局部性分为时间局部性和空间局部性。
    时间局部性:程序更多的引用最近访问过的数据项集合。
    空间局部性:程序更多的引用邻近的数据项集合。

  • 原则有三:重复引用同一个变量;步长尽可能小;循环体越小,迭代次数越多。

  • 能量墙:增加CPU的时钟频率,芯片的功耗太大,于是转向多核。

  • 现代计算机系统的各个层次,从硬件到操作系统,再到应用程序,他们的设计都利用了局部性:缓存

  • 存储器层次结构:中心思想:对于每个K,位于K层的更小更快的存储设备作为K+1层设备的缓存。

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

问题1:存储技术分为哪几种

1.随机访问存储器(RAM, Random-Access Memory)

  1. SRAM,静态,双稳态
  2. DRAM,动态,敏感,存储器系统需要周期性地读写刷新存储器的每一位。(RAM, Random-Access Memory)

2.DRAM阵列

  1. DRAM组成二维阵列而不是一维线性数组的一个原因是降低芯片上地址引脚的数量。例如,16个超单元组成的阵列,二维和一维分别需要2个和4个地址引脚。二维组织的缺点是,地址必须分两步发送,增加了访问时间。(一个行地址,一个列地址)。
  2. 再加一个存储控制器和缓存行,收到行地址,读取整行放入缓存行,之后收到列地址,返回某一个超单元的数据。

3.访问主存

系统总线是一组并行的导线,能携带地址、数据和控制信号。但是不同总线不能直接互通,这就用到了I/O桥。

问题2:对扇区的访问时间分为哪几部分,

  1. 寻道时间:将磁头定位到目标扇区所在的磁道。这个时间依赖于磁头之前的位置和传动臂在盘面上移动的速度。通常3~9ms。

  2. 旋转时间:找到目标所在的第一个扇区。性能依赖于当前到达的磁道上相对目标扇区的位置和磁盘的旋转速度。
    传送时间:读写扇区内容的时间。依赖于旋转速度和当前磁道的扇区数目。

问题三:高速缓存器有什么作用

1.基本构造
(S, E, B, m),m是地址w的位长度。

  • S,S=2^s个组。
  • E,每组E个高速缓存行。
  • B,每个缓存行作为一个数据块,有B=2^b个字节。地址w的最后b位是块偏移。设计得真是巧啊,配合组号,正好可以把一段连续内存地存放在连续的缓存块里。
  • 1位有效位,指明该行是否有效。
  • t位标记位,t=m-b-s。唯一标识一个缓存行(数据块)

容量计算:

高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:1)组选择,2)行匹配,3)字抽取。当且仅当设置了有效位,而且标记位与w地址中的标记位相匹配时才算命中。

2.分类

  • 直接映射高速缓存,每个组只有一行。
  • 组相联高速缓存,每个组不止一行。
  • 全相联高速缓存,只有一个组,所有的缓存行都在一个组里。

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

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX
  • ...

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

  • 错题1及原因,理解情况
  • 错题2及原因,理解情况
  • ...

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
    - XXXX
    - XXXX
    - ...

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

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

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

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

posted @ 2017-11-18 23:09  besti5332  阅读(198)  评论(0编辑  收藏  举报