20155218 《信息安全系统设计基础》第十三周学习总结
详细总结本章要点:
1. 存储器系统是一个层级结构(具备不一样容量,成本和访问时间的存储设备)。
2. 随机访问存储器(RAM):
- 静态RAM:
SRAM将每一个位存储在一个双稳态(因为此特性,SRAM只要有电,就会永远保持它的值)的存储器单元里。
- 动态RAM:DRAM将每一个位存储为对一个电容的充电
- 总结:只要有电,SRAM就会保持不变且不须要刷新。SRAM的存取比DRAM快,对光和电噪声的干扰不敏感,但价格高,功耗大。
- 传统的DRAM:DRAM芯片中的单元被分为d个超单元,咩歌超单元都由w个DRAM单元组成。一个d*w的DRAM总共存储了dw位信息;DRAM组成二维列阵而不是线性数组的一个缘由是下降芯片上地址引脚的数量;DRAM芯片封装在内存模块中。
加强的DRAM:快页模式、拓展数据输出、同步DRAM、双倍数据速率同步DRAM、视频RAM。算法
3. 非易失性存储器:DRAM 、SRAM会由于断电丢失它们的信息。ROM(虽然ROM中有的类型就能够读也能够写,但总体上都被称为只读存储器),并以它们可以从新编程(写)的次数和对它们从新编程所用的机制来区分;
4. ROM分类:
- PROM:只能被编写一次;
- EPROM可以被擦除和从新编写的次数的数量级能够达到1000次;
闪存;编程
5. 访问主存:数据流经过总线的共享电子电路在处理器和DRAM主存之间传输;
- 读事务:主存----->CPU
写事务:CPU------>主存数组
6. 磁盘存储:
- 磁盘由盘片构成(一个或多个叠放在一块儿的盘片组成),每一个盘片有两面或者称为表面,表面覆盖着磁性材料。每一个表面是由一组称为磁道的同心圆组成。

- 磁盘容量
- 磁盘操做:磁盘用读/写头来读写存储在磁性表面的位,在任什么时候刻,全部的读/写头都位于同一个柱面。
- 磁盘以扇区大小的块来读写数据。对扇区的访问时间主要分为:寻道时间、旋转时间、传送时间。
- 逻辑磁盘块
- 连接I/O设备
访问磁盘:CPU使用一种称为内存映射I/O的技术来向I/O设备发送命令。缓存
7. 固态硬盘:SSD是一种基于闪存的存储技术,由一个或多个闪存芯片和闪存翻译层组成。读SSD比写要快,随机读和写的性能差异由底层闪存基本属性决定的。
随机写很慢的缘由:1.擦除块须要相对较长的时间。2.若是写操做试图修改一个包含已经有数据的的页p,那么这个块中全部带有用数据的页都必须被复制到一个新(擦除过的)块,而后才能进行对页p的写。安全
8. 局部性
- 局部性原理:良好的程序倾向于引用临近于其余最近引用过的数据项的数据项,或者最近引用过的数据项自己。
- 局部性分为时间局部性和空间局部性;
- 对程序数据引用的局部性
- 取指令的局部性
评价局部性的原则:1.重复引用相同变量的程序具备良好的时间局部性;2.对于具备步长为k的引用模式的程序,步长越小,空间局部性越好。具备步长为1的引用模式的程序有很好的空间局部性。在内存中以大步长跳来跳去的程序空间局部性会不好。3.对于取指令来讲,循环有好的时间和控件局部性。循环体越小,循环迭代次数越多,局部性越好。函数
9. 存储器层次结构

10. 存储器层次结构中的缓存
- 存储器层次结构的中心思想是,层次结构中的每一层都缓存来自较低一层的数据对象,依次类推,直到最小的缓存---CPU寄存器组。
- 数据以块大小为传送单位在第k层和k+1层之间来回传递。
- 缓存命中:当程序所须要第k+1层的某个数据对象d时,它首先在当前存储的第k层的一个块中查找d,若是恰好d缓存在第k层,则缓存命中。这样就会比直接从k+1层读取速度更快,体现了局部性的优势;
- 缓存不命中 :与缓存命中相反,所以就存在一个替换的过程,决定替换哪一个块是由替换策略来决定的,在操做系统的课上,老师讲过LRU,FIFO等;
缓存不命中的种类:1.一个空的缓存被称为冷缓存,此类命中称为强制不命中或冷不命中;2.限制性的防治策略会引发一种不命中,称为冲突不命中;性能
11. 高速缓存存储器
高速缓存存储器组织结构:通常而言,能够用元组(S,E,B,m)来描述。高速缓存的大小(容量)C指的是全部块的大小的和。C=SxExB;
学习
12. 直接映射高速缓存
高速缓存肯定一个请求是否命中,而后抽取出被请求的字的过程:(1)组选择(2)行匹配(3)字抽取优化
13. 运行中的直接映射高速缓存
- 标记位和索引位连起来惟一地标识了内存中的每一个块;
- 映射到同一个高速缓存组的块由标志位惟一地标识;
抖动:高速缓存反复地加载和驱逐相同的高速缓存块的组;操作系统
14. 组相关高速缓存
:每一个组都保存有多于一个的高速缓存行。一个1<E<C/B的高速缓存一般称为E路组相联高速缓存
相联高速缓存中行比配的一个重要思想就是组中的任何一行均可以包含任何映射到这个组的内存块,因此高速缓存必须搜索组中的一个行,寻找一个有效的行,其标记与地址中的标记相匹配;
15. 全相联高速缓存:是由一个包含全部高速缓存行的组(即E=C/B)组成的。
16. 有关写的问题:
- 直写:方法简单,可是会引发总线流量;
- 写回:尽量的推迟更新,只有当替换算法要驱逐这个更新过的块时,才把它写到接近着的第一层中。能显著的减小总线流量,但缺点是增长了复杂性
如何处理写不命中:写分配/非写分配
17. 衡量高速缓存性能的指标:
- 不命中率:不命中数/引用数量
- 命中率:1-不命中率
- 命中时间:从高速缓存传送一个字到CPU所需的时间,
不命中处罚
18. 优化高速缓存的定性折中考虑:
- 高速缓存大小的影响;
- 块大小的影响;
- 相联度的影响;
写策略的影响;
19. 高速缓存行、组和块有什么区别:
- 块是一个固定大小的信息包,在高速缓存和下一层高速缓存之间来回传递;
- 行是高速缓存中的一个容器,存储快以及其余信息。
组是一个或多个行的集合。直接映射高速缓存中的组只由一行组成。组相联和全相联高速缓存中的组是由多个行组成。
20. 编写高速缓存友好的代码:
- 对局部变量的反复引用是好的,由于编译器可以将它们缓存在寄存器文件(时间局部性)。
步长为1的引用模式是好的,由于存储器层次结构中全部层次上的缓存都是将数据存储为连续的块(空间局部性)。
21. 高速缓存对程序性能的影响
存储器山:读带宽(一个程序从存储系统中读数据的速率)的时间和空间局部性的二维函数。
完成这一章全部习题
6.1:
- 6.2:8.192G
- 6.3:10.008ms
- 6.4:在最好的状况下,只须要找到第一个扇区而后旋转两圈,time=seek+avg +max=20ms;
在最坏的状况下,time=2000*(seek+avg)=16s;
- 6.7:这个题目很简单,只须要将数组a中元素按循环的层次来就行了即a[i][j][k];
- 6.8:1>2>3,原理与6.7相似;
- 6.9:

- 6.10:消除了冲突不命中,命中率为四分之三;
- 6.18:512个读,256个不命中;不命中率为50%;
- 6.23:当x=0.5时,磁盘的容量最大;
- 6.24:T=5.51;
- 6.25:最好的状况是都在同一个磁盘上且相连,T=35.5ms;最坏状况是275.5s
- 6.26:
- 6.27:与6.25类似;





同伴反馈
- 同伴(20155218)给个人反馈:
知识点罗列的很详细,习题学习也很深刻,看起来是下了功夫的。给你提意见小建议:基础知识的学习能够分层次来介绍,这样博客看起来会更加美观大方;其次是习题的学习能够把本身的疑惑和感想写一下,加深理解。
- 我给同伴的反馈:
个人同伴郝博雅同窗在这篇博客里,带着问题从新学习了第七章,坚持问题导向,学习到了新的知识点,解决的本身的疑惑。在第七章的学习中,共分为了三个问题,每一个问题的解答都是很详细的,既有基础知识,也有直截了当的图片和代码。在小内容的学习中,也是不断地经过提出问题来引导下一步的学习,让我很是直接深入的认识到同伴为何学习是为了哪方面的知识,须要哪方面的知识。解答过程当中,步骤也是很详细,每一步都有操做的方法和结果截图,让我也能够按照步骤本身操做实现。在看同伴的博客时,发现她的博客形式很是的简洁明了,相比之下,自愧不如。