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

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

第六章教材学习内容总结

6.1 节

了解三种常见存储技术:RAM/ROM/磁盘;

RAM有SRAM和DRAM,特点和应用;

ROM有PROM,EPROM,E2PROM,FLASH;

磁盘是重点,涉及到后面的i/o和文件系统,做好相关练习

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

磁盘容量

访问时间:寻道、旋转、传送

逻辑磁盘块:这个很重要,内存可以看成字节数组、磁盘可以看成块数组

总线

数据总线、控制总线、地址总线

系统总线、存储总线、I/O总线:p395图要理解

读写事务:P389图要能理解

6.2 局部性

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

分类:时间局部性&&空间局部性

应用:

1.硬件层:通过引入高速缓存存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度。

2.操作系统级:系统使用主存作为虚拟地址空间最近被引用块的高速缓存,用主存来缓存磁盘文件系统中最近被使用的磁盘块

3.应用程序中:Web浏览器将最近被引用的文档放在本地磁盘上。

一、对程序数据引用的局部性

1.步长为k的引用模式

定义:一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式。

步长为1的引用模式:就是顺序访问一个向量的每个元素,有时也被称为顺序引用模式,它是程序中 空间局部性常见和重要的来源。

一般来说,随着步长增加,空间局部性下降。

二、取指令的局部性

程序指令是存放在存储器中的,CPU必须取出(读出)这些指令。

但是代码区别于程序数据的一个重要属性是:在运行时它是不能被修改的。

三、局部性小结

量化评价一个程序中局部性的简单原则:

重复引用同一个变量的程序有良好的时间局部性

对于具有步长为k的引用模式的程序,步长越小,空间局部性越好

对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。

6.3 存储器层次结构

存储层次结构:系统观(1+1>2)

中心思想:每层存储设备都是下一层的“缓存”

对照p408的表理解

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

缓存不命中:k层中没有缓存数据对象d

缓存不命中的种类:如果第k层的缓存是空的,那么对任何数据对象的访问都会不命中。一个空的缓存有时称为冷缓存,此类不命中称为强制性不命中或冷不命中

### 6.4 高速缓存存储器
 早期的计算机存储器曾次结构只有三层:CPU寄存器 DRAM主存储器和磁盘存储

通用的高速缓存存储器结构

直接映射高速缓存 :每个组只有一行的高速缓存

                   直接映射高速缓存中的组选择
                   直接映射高速缓存中的行匹配
                   直接映射高速缓存中的字选择
                   直接映射高速缓存中不命中时的行替换
                   运行中的直接映射高速缓存
                                           读地址0的字
                                           读地址1的字
                                           读地址13的字
                                           读地址8的字

直接映射高速缓存中的冲突不命中

6.4.3 组相联高速缓存

组组联高速缓存中的组选择

组组联高速缓存中的行匹配和字选择

组组联高速缓存中不命中的行替换

6.4.4 全相联高速缓存

全相联高速缓存的组选择

全相联高速缓存中的航匹配和字选择

6.4.7 高速缓存性能的参数影响

                           高速缓存大小的影响
                           块大小的影响
                           相联度的影响
                           写策略的影响  

6.5编写高速缓存友好的代码

1.基本方法

让最常见的情况运行的快

在每个循环内部缓存不命中数量最小

2.重要问题

对局部变量的反复引用是好的(时间局部性)

步长为1的引用模式是好的(空间局部性)

6.6存储器山

这是一个重要的理解概念。帮助我们理解计算机系统底层存储的结构。

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

Q:一个块可以被放置到cache的什么地方?

A:直接映射:(块地址)MOD(cache中的块数),每个块只能出现在唯一位置上
全相连映射:一个块可以放置在cache中的任意位置上
组相连:(块地址)MOD(cache的组数), 一个块首先被映射到一个组中,然后它可以被放置在组中的任何一个块中

直接映射,全相连与组相连的关系:
直接映射是一个简单的1路组相联
一个有m块的全相联cache可以称为m路组相联

大多数处理器的cache采用直接映射,2路组相联或是4路组相联。

代码托管

https://gitee.com/bestiisjava2017/yxc20155302/tree/master/src/信息安全系统设计基础20155302

posted @ 2017-11-18 16:14  乐舞歌不是可爱送  阅读(217)  评论(0编辑  收藏  举报
Live2D