20145331 《信息安全系统设计基础》第7周学习总结
6.1
SRAM:
1、特点:SRAM两个稳态,其他状态不稳定;只要有电,它就会永远地保持它的值,抗干扰;花费高。
2、应用:做高速缓存存储器。
DRAM:
1、特点:不抗干扰,不持续;单元被分成n个超单元,每个超单元x个位;分两步发地址(行、列),所以速度慢;花费高。
2、应用:做主存、帧缓冲区。
ROM:
1、断电依然保存信息。
2、PROM,EPROM,E2PROM,FLASH。
3、基于闪存的磁盘驱动器-固态硬盘。
磁盘:
1、磁盘结构:盘片、磁道、扇区、间隙、柱面;前面几个概念看图就懂,柱面是所有盘片上到主轴距离相等的磁道的集合,概念很形象,想着一个圆柱体就懂了。
2、磁盘容量:
一个磁盘上可以记录的最大位数称为它的最大容量。
记录密度:磁道一英寸的段可以放入的位数。
磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数。
面密度:上面两个量的乘积。
3、磁盘操作:
任何时候读写头在同一个柱面上。
找扇区第一个字节要用很长时间,剩余的字节访问时间很短,因为读写头的速度很快。
平均旋转时间 = (1/2) * 最大旋转时间。
4、逻辑磁盘块:
a)所有扇区编成逻辑块序列,用一个叫磁盘控制器的硬件,维护着逻辑块号和实际(物理)扇区之间的映射关系。
b)逻辑块号会被翻译成一个三元组:盘面、磁道、扇区。
访存、访问磁盘:
1、首先有几个概念:
1、总线:一组并行的导线,能携带地址、数据的控制信号;系统总线、存储器总线信号类型不一样,要靠IO桥翻译。
2、CPU使用一种存储器映射I/O技术来向I/O设备发出命令。
2、访存:
a)读:cpu把地址传给主存,主存对应的值给cou,cpu再copy给寄存器。
b)写:cpu把要写的地址给主存,再把寄存器的值copy到系统总线传给主存,主存把值存到写的地址上。
3、访问磁盘:cpu发起3个命令给磁盘控制器(磁盘读+参数、逻辑块号、主存地址),读扇区把内容传给主存,传完之后磁盘控制器发个中断信号给cpu。
6.2局部性
1、两种不同形式:空间局部性(附近的地址)、时间局部性(多次使用)
2、步长为k的引用模式 :一个连续变量中,每隔k个元素进行访问。
3、局部性好代码运行当然速度快。
4、对于具有步长为k的引用模式的程序,步长越小,空间局部性越好;对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
6.3
这一节部分内容我记得前面说过了,那个结构的核心中心思想还是:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。
1、存储器分块,数据以块的形式在相邻层传。
2、命中、不命中:看你要找的块在不在高速缓存里。
3、不命中种类:
强制性不命中/冷不命中:空的缓存。
冲突不命中:放置策略引起,缓存够大。
容量不命中:缓存不够大。
4、缓存管理:上面说的所有功能用缓存管理来实现。(可以是硬件、软件,或者两者的集合)。
6.4
1、这一整节内容其实是围绕着地址展开的,你先得明白一个地址包含着标记、组索引和块偏移;接着要搞清楚它们其实都对应P409的模型中的变量(高速缓存结构(S,E,B,m))。
2、6.4.1通用结构顾名思义就是上述所有的量都有。
2、6.4.2直接映射高速缓存,每组只有一行,弊端是有很大概率造成冲突不命中。
3、为了解决冲突不命中,每组不能只有一行,所以引出6.4.3组相关联高速缓存,即每组多于一个缓存行。
4、6.4.4全相关联高速缓存,一个组包含所有缓存行,只有一个组,所以地址可以没有组索引。
课后作业
1.P391 6.2
计算这样一个磁盘的容量。它有2个盘片,10000个柱面,每条磁道平均有400个扇区,每个扇区平均有512个字节
磁盘容量 = 512字节/扇区400扇区/磁道10 000磁道/表面2表面/盘片2盘片/磁盘 = 8 192 000 000 字节 = 8.192GB
2.P393 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
3.P394 6.4
假设1MB的文件由512字节的逻辑块组成,存储在有如下特性的磁盘驱动器上(旋转速率:10000RPM
,Taveseek=5ms
,平均扇区/磁道 = 1000)。
(1)最好的情况:给定逻辑块到磁盘扇区的最好的可能的映射(即,顺序的),估计读这个文件需要的最优时间
(2)随机的情况:如果块是随机地映射到磁盘扇区的,估计读这个文件需要的时间
首先明确:1MB=2^20字节,即数据存储在2000个逻辑块中;对于磁盘,Taverotation=0.51/10000RPM60secs/1min1000ms/s=3ms
则:
(1)T=Taveseek+Taverotation+2Tmaxrotation=5ms+3ms+26ms=20ms
(2)在这种情况下,块被随机的映射到扇区上,读2000块的每一块都需要Taveseek+Tavgrotation=8ms
。所以读这个文件的总时间为T = 8ms2000=16000ms=16s
代码托管
https://git.oschina.net/20145331/wsc20145331_linux.git
其他(感悟、思考等,可选)
本周的内容,通过结合书上的图示和文字来理解,其实整体感觉不难,每一节的内容逻辑相关性都很强,6.4节刚开始看觉得很难不过越往后看就越觉得其实大同小异,找到每种类型高速缓存的区别,从这些区别入手去理解就简单的多了,高速缓存的那几个参数刚开始觉得很多看不太明白,从后面找了一道例题对应着看就看得舒服多了,这也就是以习题作为驱动的学习方式吧;不过那个存储器山真心看不太懂,仍在反复看中。
学习进度条
习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第7周 | 23/405 | 1/8 | 11/131 | 了解了各类存储技术的原理,对高速缓存理解更加深入 |