20145238 《信息安全系统设计基础》第7周学习总结
教材学习内容总结
存储器系统
: 存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。
1、RAM随机访问存储器
-
分类:SRAM(静态)、DRAM(动态)
-
特点:存储单元的内容可按需随意取出或存入,这种存储器在断电时将丢失其存储内容,即掉电失忆(常说的电脑内存就是RAM的)。
-(1)SRAM
特点:1.不需要刷新电路即能保存它内部存储的数据。2.集成度较低,需要很大的体积。3.存取快。4.抗干扰。
应用:一般用来作为计算机中的高速缓冲存储器
优点:速度快,不必配合内存刷新电路,可提高整体的工作效率。
缺点:集成度低,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率
-(2)DRAM
特点:每个位存储为对电容的充电;周期性的用读出然后写回的方式刷新存储器每个位。
应用:一般用来作为计算机中的高速缓冲存储器
2、ROM只读存储器
-
分类:PROM、EPROM、E2PROM、FLASH
-
特点:一次写入,反复读取,即非易失性。
-(1)PROM(可编程只读存储器)
只能被编程一次。每个存储器单元有一种熔丝,只能用高电流熔断一次。
-(2)EPROM(可擦写可编程只读存储器)
可重复擦除和编程次数达到1000次。
- -(3)EEPROM(E2PROM电子可擦除可编程只读存储器)
- 不需要独立编程设备,可直接在印制电路卡上进行。
- 编程次数可达100000次。
- -(4)FLASH(闪存)
- 非易失性的内存,基于EEPROM。
3、磁盘
(1)结构、容量
由一些盘片构成,盘片的正反面都能存储数据,每个盘片分成许多的磁道,每个磁道分成一些扇区。(通常一个扇区为512B。)
表面:每个盘片有两个表面
- 主轴:盘片中央,可旋转
- 旋转速率:通常5400~15000/min
- 磁道:同心圆们
- 扇区:每个磁道被划分为一组扇区
- 数据位:每个扇区包含相等数量的~,通常为512字节
- 间隙:存储用来标识扇区的格式化位
- 磁盘驱动器-磁盘-旋转磁盘
- 柱面:所有盘片表面上到主轴中心的距离相等的磁道的集合。
磁盘的容量 = 每扇区大小每磁道扇区数磁道数 *2 * 盘片数量
(2)磁盘操作
磁盘以扇区大小的块来读写数据。对扇区的访问时间有三个主要部分:寻道时间、旋转时间、传送时间
- 寻道时间:为了读取某个目标扇区的内容,传动臂首先将读写头定位到包含目标扇区的磁道上。移动传动臂所需的时间称为寻道时间。
- 旋转时间:最大旋转延迟Tmax rotation=1/RPM * 60secs/1min。平均旋转时间Tavg rotation的一半。
- 传送时间:Tavg transfer=1/RPM * 1/(平均扇区数/磁道) * 60secs/1min
- 估计总访问时间=Tavg seek+Tavg rotation+Tavg transfer。因为寻道时间和旋转延迟大致相等,所以将寻道时间乘以2可简单估计磁盘访问时间。
(3)逻辑磁盘块
- 目的是为了向操作系统隐蔽磁盘的结构复杂性。磁盘将其呈现为一个有B个扇区的逻辑块的序列;磁盘中有一个固件设备——磁盘控制器,维护者逻辑酷爱号和实际磁盘扇区之间的映射关系。操作系统是以逻辑块号为单位进行寻址操作的。
(4)总线
- (I/O)设备是通过I/O总线(例如intel的PCI)连接到CPU和主存的。虽然它比系统总线和存储器总线要慢,但是可以容纳种类众多的第三方I/O设备。比如:通用串行总线;图形卡;主机总线适配器。
(5)I/O端口
- CPU使用一种称为存储器映射I/O的技术来向I/O设备发出命令的。在使用其的系统中,地址空间中,有一块地址是为与I/O设备通信保留的;叫做I/O端口。
4、存储技术趋势
1.不同的存储技术有不同的价格和性能折中。
2.不同存储技术的价格和性能属性以截然不同的速率变化着。
3.DRAM和磁盘的性能滞后于CPU的性能。
局部性:
- 计算机程序倾向于引用邻近于其他最近引用过的数据项的数据或其本身;这种倾向性,被称为局部性原理。包括:时间局部性,空间局部性。有良好局部性的程序比局部性差的程序运行的更快。
- 体现:在硬件层,局部性原理允许计算机设计者通过引入称为高速缓存器的小而快的存储器来保存最近被引用的指令和数据项;在操作系统级,局部性原理允许系统使用主存作为虚拟地址空间最近被使用的磁盘块。
- 重复引用一个变量的程序具有良好的时间局部性;对于取指令来说,循环具有良好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
5、存储层次结构
1.中心思想:每层存储设备都是下一层的“缓存”。
2.任何时刻,第k层的缓存包含第k+1层块的一个子集的拷贝。
结构
- 高速缓存是一个小而快速的存储设备,它作为存储在更大也更慢的设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存。
- 存储器层次结构的中心思想:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。
- 第k+1层的存储器被划分成连续的数据对象片,称为块。数据总是以块大小为传送单元,在第k层和第k+1层之间来回拷贝。虽然在层次结构中任何一对相邻的层次之间块的大小是固定的,但是其他层次对之间可以有不同的块大小。
1. 缓存命中
:当程序需要第k+1层的某个数据对象d时,首先在当前存储于第k层的一个块中查找d,且d刚好缓存在第k层。
2. 缓存不命中
:当程序需要第k+1层的某个数据对象d时,首先在当前存储于第k层的一个块中查找d,且第k层没有缓存数据对象d。
覆盖一个现存的块的过程称为替换或驱逐这个块,被驱逐的这个块也称为牺牲块。决定该替换哪个块由缓存的替换策略控制。
3. 缓存不命中的种类
:如果第k层的缓存为空,则对任何数据对象的访问都会不命中。
- 冷缓存:空的缓存,此类不命中称为强制性不命中(冷不命中)。通常是短暂的事件,不会在反复访问存储器使得缓存暖身之后的稳定状态出现。
- 只要发生了不命中,第k层的缓存就必须执行某个放置策略,确定把它从第k+1层中取出的块放在哪里。
- 当工作集的大小超过缓存的大小时,缓存会经历容量不命中。
4.缓存管理
:存储器层次结构的本质是每一层存储设备都是较低一层的缓存,在每一层上,某种形式的逻辑必须管理缓存。即某个东西要将缓存划分成块,在不同的层之间传送块,判断是命中还是不命中,并处理它们。
6、高速缓存存储器
- 作用:连接CPU和主存
- 每个存储器地址有m位,形成M=2^m个不同地址。这m位被划分成t个标记位、s个组索引位和b个块偏移位。
- 这样一个机器的高速缓存被组织成S=2s个高速缓存组的数组;每个数组包含E个高速缓存行;每行由一个B=2b字节的数据块、一个有效位(指明这个行是否包含有效信息)、t=m-(b+s)个标记位(唯一标识存储在这个高速缓存行中的块)组成
直接映射高速缓存:
- 高速缓存确定一个请求是否命中,然后抽搐被请求字的过程,分为:组选择,行匹配,字抽取
- 组选择:从w的地址中抽取组索引;这些位被解释成对应于一个组号的无符号整数
- 行匹配:对于直接映射高速缓存,行匹配是容易而且快的;因为每个组只有一行
- 字匹配:块偏移提供的是这个字的第一个字节是从哪个位置开始的
教材学习中的问题和解决过程
课本习题
6.2
磁盘容量 = 512字节/扇区400扇区/磁道10 000磁道/表面2表面/盘片2盘片/磁盘 = 8 192 000 000 字节 = 8.192G
6.3
访问时间 = Taveseek+Taverotation+Tavetransfer = 8ms+0.51/15000RPM60secs.min1000ms/s+1/15000RPM1/50060secs/min1000ms/s=8ms+2ms+0.008ms=10.008ms
6.4
(1)最好的情况即顺序映射:T=Taveseek+Taverotation+2Tmaxrotation=5ms+3ms+26ms=20ms (2)非顺序映射,读每一块都需要Taveseek+Tavgrotation=8ms。所以读2000块总时间为T = 8ms*2000=16000ms=16s
6.11
在填充了之后,对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中。因而命中率为75%
代码调试中的问题和解决过程
本周主要学习存储技术及其原理,对于高速缓存的一步一步的过程理解的还是有点不够深入,还需要自己多动手一步一步模拟cpu执行读取时发生了什么。
本周代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 | |
第五周 | 500/1000 | 3/12 | 22/120 | |
第六周 | 100/1300 | 2/15 | 30/150 | |
第七周 | 500/1000 | 3/18 | 22/180 |
参考资料
- 《深入理解计算机系统V2》学习指导
- ...