序言:
存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。
CPU寄存器、高速缓存存储器、主存储器、磁盘。
DRAM芯片包装在存储器模块中,是插在主板的扩展槽上的。
ROM是非易失的,统称为只读存储器
基于EEPROM,为大量的电子设备提供快速而持久的非易失性存储。
(3)固件
存储在ROM设备中的程序通常被称为固件,当一个计算机系统通电以后,他会运行存储在ROM中的固件。
总线分类:
提高面密度即可提高容量。
一个区中的每个柱面的每条磁道都有相同数量的扇区,这个扇区的数量由该区中最里面的磁道所能包含的扇区数确定
访问时间的分类:
(2)旋转时间——驱动器等待目标扇区的第一个位旋转到读/写头下
平均旋转时间是最大值的一半。
结论:
1.主要时间是寻道时间和旋转延迟。
2.将寻道时间x2是估计磁盘访问时间的简单而合理的方法。
盘面,磁道,扇区,这个三元组唯一的标识了对应的物理扇区。
5.访问磁盘
DMA:直接存储器访问
——设备可以自己执行读或者写总线事务,而不需要CPU干涉
固态硬盘是一种基于闪存的存储技术【区别于旋转磁盘:固态磁盘没有移动的部分。
一个SSD包由一个或多个闪存芯片和闪存翻译层组成
2.读/写
局部性原理:一个编写良好的计算机程序,常常倾向于引用临近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
分类:时间局部性&&空间局部性
应用:
1.硬件层:通过引入高速缓存存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度。
2.操作系统级:系统使用主存作为虚拟地址空间最近被引用块的高速缓存,用主存来缓存磁盘文件系统中最近被使用的磁盘块
3.应用程序中:Web浏览器将最近被引用的文档放在本地磁盘上。
定义:一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式。
步长为1的引用模式:就是顺序访问一个向量的每个元素,有时也被称为顺序引用模式,它是程序中 空间局部性常见和重要的来源。
一般来说,随着步长增加,空间局部性下降。
程序指令是存放在存储器中的,CPU必须取出(读出)这些指令。
但是代码区别于程序数据的一个重要属性是:在运行时它是不能被修改的。
量化评价一个程序中局部性的简单原则:
每层存储设备都是下一层的“缓存”
高速缓存:是一个小而快速的存储设备,它作为存储在更大、更慢的设备中的数据对象的缓冲区域。
缓存:使用高速缓存的过程称为缓存。
数据总是以块大小为传送单元在第k层与第k+1层之间来回拷贝。任一对相邻的层次之间块大小是固定的,但是其他的层次对之间可以有不同的块大小。
当程序需要第k+1层的某个数据对象d时,首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,就称为缓存命中。
该程序直接从第k层读取d,比从第k+1层中读取d更快。
即第k层中没有缓存数据对象d。
这时第k层缓存会从第k+1层缓存中取出包含d的那个块。如果第k层缓存已满,就可能会覆盖现存的一个块
覆盖——替换/驱逐
替换策略:
即第k层的缓存是空的(称为冷缓存),对任何数据对象的访问都不会命中。
由于一个放置策略:将第k+1层的某个块限制放置在第k层块的一个小的子集中,这就会导致缓存没有满,但是那个对应的块满了,就会不命中。
当工作集的大小超过缓存的大小时,缓存会经历容量不命中,就是说缓存太小了,不能处理这个工作集。
某种形式的逻辑必须管理缓存,而管理缓存的逻辑可以是硬件、软件,或者两者的集合。
高速缓存是一个高速缓存组的数组,它的结构可以用元组(S,E,B,m)来描述
高速缓存的结构将m个地址划分成了t个标记位,s个组索引位和b个块偏移位。
指所有块的大小的和,不包括标记位和有效位,所以:
C=S
*E
*B
根据E(每个组的高速缓存行数)划分高速缓存为不同的类,E=1的称为直接映射高速缓存,以此为例:
高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:组选择
行匹配
字抽取
——高速缓存反复的加载和驱逐相同的高速缓存块的组
这些块被映射到了同一个高速缓存组。
在每个数组的结尾放B字节的填充(B字节是一个块的长度,一行是一个块,相当于分开了行)从而使得他们映射到不同的组。
组相联高速缓存
E路组相联高速缓存:1<E<C/B
形式是(key, value),用key作为标记和有效位去匹配,匹配上了之后返回value。
重要思想:组中的任意一行都可以包含任何映射到这个组的存储器块,所以告诉缓存必须搜索组中的每一行。
判断匹配的标准依旧是两个充分必要条件:1.
有效
2.
标记匹配
只有一个组,默认组0,没有索引位,地址只被划分成了一个标记和一个块偏移。
加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。
避开高速缓存,直接把这个字写在低一层中。
高速缓存既保存数据,也保存指令。
把存储器系统的性能用关于时间和空间局部性的山表示。
本章学习的内容较少,有更多的内容可以看细,但是在看细的过程中,对有些具体内容就并不是理解透彻了,前几章的学习渐渐发现了一些问题,就是有的知识点没有学仔细,考试的时候考到了,却不懂,问同学的时候自己也是听得似懂非懂的。在做家庭作业的时候,越发觉得要把之前的知识点更要仔细看一下,有的知识点,常用的觉得可以适当背一下的。