信息安全系统设计基础第六周学习总结
第六章 存储器层次结构
第一节 存储技术
一、随机访问存储器(RAM)
RAM分类:
- 静态的SRAM-更快,更贵,作为高速缓存存储器,CPU片上或片下
- 动态的DARM-作为主存以及图形系统的帧缓冲区
1.传统的DRAM
(1)超单元
- 芯片中的单元位被分为d个超单元,每个超单元有w个DRAM单元组成,一个dxw的DRAM总共存储了dw位信息。
- 超单元被组织成一个r行c列的长方形,即rc=d。
- 每个超单元有形如(i, j)的地址,i表示行,j表示列。
(2)信息的流入流出
信息通过引脚流入流出芯片,每个引脚携带一个1位的信号。
(3)存储控制器
这个电路可以一次传入或传出w位。
- RAS-行访问选通脉冲-行地址i
- CAS-列访问选通脉冲-列地址j
3.增强的DRAM
- 快页模式-FPM DRAM:允许对同一行连续的访问可以直接从行缓冲区得到服务。(原本的DRAM对同一行的四条指令时,每条指令取完后都会丢弃,然后重新读取。)
- 扩展数据输出-EDO DRAM:允许单独的CAS信号在时间上靠的更紧密一点。
- 同步-SDRAM:用与驱动存储控制器相同的外部时钟信号的上升沿来代替许多这样的控制信号-比异步的更快。
- 双倍数据速率同步-DDR SDRAM:通过使用两个时钟沿作为控制信号,从而使DRAM的速度翻倍。分类:DDR(2位),DDR2(4位),DDR3(8位)
- RDRAM
-
视频-VRAM:用在图形系统的帧缓存区中,思想类似FPM DRAM,区别:
1.VRAM的输出是通过依次对内部缓冲区的整个内容进行移位得到的 2.VRAM允许对存储器并行的读和写。
4.非易失性存储器——ROM
(1)分类
- PROM-可编程ROM,只能被编程一次
- EPROM-可擦写可编程ROM,能够被擦除和编写的次数的数量级大概为1000次
-
EEPROM,电子可擦除PROM,能够被编程的次数的数量级在10的五次方。
(2)闪存FLASH
-
基于EEPROM,为大量的电子设备提供快速而持久的非易失性存储。
存在于:数码相机、手机、音乐播放器、PDA、笔记本、台式机、服务器计算机系统
(3)固件
存储在ROM设备中的程序通常被称为固件,当一个计算机系统通电以后,他会运行存储在ROM中的固件。
5.访问主存
(1)总线
总线分类:
a.系统总线——连接CPU和I/O桥
b.存储器总线——连接I/O桥和主存
c.I/O总线(具体见6.1.2.4)
二、磁盘存储
1.磁盘构造
- 盘片
- 表面:每个盘片有两个表面
- 主轴:盘片中央,可旋转
- 旋转速率:通常5400~15000/min
- 磁道:同心圆们
- 扇区:每个磁道被划分为一组扇区
- 数据位:每个扇区包含相等数量的~,通常为512字节
- 间隙:存储用来标识扇区的格式化位
- 磁盘驱动器-磁盘-旋转磁盘
- 柱面:所有盘片表面上到主轴中心的距离相等的磁道的集合。
2.磁盘容量——一个磁盘上可以记录的最大位数
(1)影响因素:
- 记录密度-位/英寸
- 磁道密度-道/英寸
- 面密度-位/平方英寸
(2)计算公式:
3.磁盘操作
磁盘以扇区大小的块来读写数据。
访问时间的分类:
(1)寻道时间
移动传动臂所用的时间,依赖于读/写头以前的位置和传动臂在盘面上移动的速度。
(2)旋转时间
驱动器等待目标扇区的第一个位旋转到读/写头下,依赖于盘面位置和旋转速度。
最大旋转延迟=1/RPM X 60secs/1min (s)
平均旋转时间是最大值的一半。
(3)传送时间
访问一个磁盘扇区内容的平均时间为平均寻道时间,平均旋转延迟和平均传送时间之和。
主要时间是寻道时间和旋转延迟。
三、固体磁盘
固态硬盘是一种基于闪存的存储技术【区别于旋转磁盘:固态磁盘没有移动的部分。
1.组成
一个SSD包由一个或多个闪存芯片和闪存翻译层组成:
闪存芯片——对应旋转磁盘中机械驱动器
闪存翻译层(硬件/固件设备)——对应磁盘控制器
2.读/写
(1)顺序读写
速度相当,顺序读比顺序写稍微快一点
(2)随机读写
写比读慢一个数量级
原因:底层闪存基本属性决定。
一个闪存由B个块的序列组成,每个块由P页组成。通常页的大小是512~4kb,块是由32~128页组成的,块的大小为16kb~512kb。
数据是以页为单位读写的。
3.优点
- 由半导体构成,没有移动的零件——
- 随机访问时间比旋转磁盘要快
- 能耗更低
- 更结实
4.缺点
- 更容易磨损
- 更贵
四、存储技术优势
- 不同的存储技术有不同的价格和性能折中
- 不同存储技术的价格和性能属性以截然不同的速率变化着
- 增加密度从而降低成本比降低访问时间更容易
- DRAM和磁盘的性能滞后于cpu的性能
第二节 局部性
局部性原理:
一个编写良好的计算机程序,常常倾向于引用临近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
分类:
- 时间局部性
- 空间局部性
量化评价一个程序中局部性的简单原则:
- 重复引用同一个变量的程序有良好的时间局部性
- 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好
- 对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
第三节 存储器层次结构
每层存储设备都是下一层的“缓存”
缓存
高速缓存:是一个小而快速的存储设备,它作为存储在更大、更慢的设备中的数据对象的缓冲区域。
缓存:使用高速缓存的过程称为缓存。。
1.缓存命中
当程序需要第k+1层的某个数据对象d时,首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,就称为缓存命中。
该程序直接从第k层读取d,比从第k+1层中读取d更快。
2.缓存不命中
即第k层中没有缓存数据对象d。
这时第k层缓存会从第k+1层缓存中取出包含d的那个块。如果第k层缓存已满,就可能会覆盖现存的一个块
覆盖——替换/驱逐
替换策略:
- 随机替换策略-随机牺牲一个块
- 最近最少被使用替换策略LRU-牺牲最后被访问的时间距离现在最远的块。
3.缓存不命中的种类
(1)强制性不命中/冷不命中
(2)冲突不命中
(3)容量不命中
第四节 高速缓存存储器
一、通用的高速缓存存储器结构
高速缓存是一个高速缓存组的数组,它的结构可以用元组(S,E,B,m)来描述:
S:这个数组中有S=2^s个高速缓存组
E:每个组包含E个高速缓存行
B:每个行是由一个B=2^b字节的数据块组成的
m:每个存储器地址有m位,形成M=2^m个不同的地址
除此之外还有标记位和有效位:
有效位:每个行有一个有效位,指明这个行是否包含有意义的信息
标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块
组索引位:s
块偏移位:b
高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。
高速缓存的大小/容量C
指所有块的大小的和,不包括标记位和有效位,所以:
C=S*E*B
二、直接映射高速缓存
高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:
1.组选择
2.行匹配
3.字抽取
1.组选择
高速缓存从w的地址中间抽取出s个组索引位
2.行匹配
判断缓存命中有两个充分必要条件:
- 该行设置了有效位
- 高速缓存行中的标记和w的地址中的标记相匹配
3.字选择
同样的一个类比:块-关于字节的数组,字节偏移是到这个数组的一个索引。
4.后运行中的直接映射高速缓存
- 标记位和索引位连起来唯一的标识了存储器中的每个块
- 映射到同一个高速缓存组的块由标记位唯一地标识
三、组相联高速缓存
E路组相联高速缓存:1<E<C/B
1.组选择
2.行匹配和字选择
形式是(key, value),用key作为标记和有效位去匹配,匹配上了之后返回value。
重要思想:组中的任意一行都可以包含任何映射到这个组的存储器块,所以告诉缓存必须搜索组中的每一行。
判断匹配的标准依旧是两个充分必要条件:
1.有效
2.标记匹配
3.行替换
有空行替换空行,没有空行,应用替换策略:
- 随机替换
- 最不常使用策略LFU:替换在过去某个时间窗口内引用次数最少的那一行。
- 最近最少使用策略LRU:替换最后一次访问时间最久远的那一行。
四、全相联高速缓存(E=C/B)
1.组选择
只有一个组,默认组0,没有索引位,地址只被划分成了一个标记和一个块偏移。
2.行匹配和字选择
同组相联。
只适合做小的高速缓存。
五、写
1.写命中时,更新低一层中的拷贝的方法:
(1)直写,立即将w的高速缓存块协会到紧接着的低一层中
缺点:每次写都会引起总线流量。
(2)写回,只有当替换算法要驱逐更新过的块时,才写到紧接着的低一层中
- 优点:符合局部性原理,显著的减少总线流量
- 缺点:增加了复杂性,必须为每个高速缓存行维护一个额外的修改位
2.写不命中的处理方法
(1)写分配---通常写回对应
加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。
(2)非写分配---通常直写对应
避开高速缓存,直接把这个字写在低一层中。
六、真实的高速缓存层次结构:
高速缓存既保存数据,也保存指令。
- 只保存指令的:i-cache
- 只保存程序数据的:d-cache
- 既保存指令又保存数据的:统一的高速缓存
七、高速缓存参数的性能影响
1.性能:
- 不命中率 = 不命中数量/引用数量
- 命中率 = 1 - 不命中率
- 命中时间
- 不命中处罚:因为不命中所需要的额外的时间
2.具体影响:
- 高速缓存大小:命中率+,命中时间+
- 块大小:空间局部性+,命中率+,高速缓存行数-,时间局部性-,不命中处罚+
- 相联度:E值大,抖动-,价格+,命中时间+,不命中处罚+,控制逻辑+【折中为不命中处罚低的,相联度低,不命中处罚高的,使用高相联度】
- 写策略:越往下,越可能用写回而不是直写
参考资料:
1.《深入理解计算机系统》