408答疑
文章目录
一、存储器概述
- 文章链接 : 点击跳转
二、主存储器
- 文章链接 : 点击跳转
三、主存储器与 CPU 的连接
- 文章链接 : 点击跳转
四、外部存储器
- 文章链接 : 点击跳转
五、高速缓冲存储器
- 文章链接 : 点击跳转
六、虚拟存储器
- 文章链接 : 点击跳转
七、参考资料
鲍鱼科技课件
b站免费王道课后题讲解:
网课全程班:
26王道考研书
八、总结
复习提示
本章是历年命题重点,特别是有关 Cache 和虚拟存储器的考点容易出综合题。此外,存储器的特点、存储器的扩展(芯片选择、连接方式、地址范围等)、交叉存储器、Cache 的相关计算与替换算法、虚拟存储器与 TLB 也容易出选择题。读者应在掌握基本原理的基础上,多结合习题进行反复训练,以加深巩固。另外,读者需掌握存在 Cache 和 TLB 的计算机中的地址翻译与 Cache 映射问题,也建议结合 OS 复习。
思考题
- 存储器系统为何要分这些层次?计算机如何管理这些层次?
- Cache-主存层在存储系统中主要对 CPU 访存起加速作用,即从整体运行的效果看,CPU 访存速度加快,接近于 Cache 的速度,而寻址空间和位价却接近于主存。
- 主存-辅存层在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器的容量和位价接近于辅存,而速度接近于主存。因此从整个存储系统来看,就达到了速度快、容量大、位价低的效果。
- 主存与 Cache 之间的信息调度全部由硬件自动完成。
- 而主存与辅存的信息调度则采用虚拟存储技术实现,即将主存与辅存的一部分通过软/硬结合的技术组成虚拟存储器,程序员可用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软/硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。
- 影响 Cache 性能的因素有哪些?
- 决定 Cache 系统访存效率重要因素是命中率,它与很多因素有关:
- 命中率与映射方式有关,全相联映射方式的命中率最高,直接映射方式的命中率最低。
- 命中率与 Cache 容量有关,显然 Cache 容量越大,命中率就越高。
- 命中率还与主存块(或 Cache 行)的大小有关,主存块的大小要适中。
- 除上述因素外,系统是采用单级还是采用多级 Cache、数据 Cache 和指令 Cache 是分离还是合在一起、主存-总线-Cache-CPU 之间采用什么架构等,都会影响 Cache 的总体性能。
- 决定 Cache 系统访存效率重要因素是命中率,它与很多因素有关:
- 虚拟存储系统的页面是设置得大一些好还是设置得小一些好?
- 页面大小要适中。
- 页面大小时,平均页内剩余空间较小,可节省存储空间,但会使得页表增大,页面大小时也不能充分利用空间局部性来提高命中率;
- 页面太大时,可减少页表空间,但平均页内剩余空间较大,会浪费较多存储空间,页面太大还会使页面调入/调出的时间较长。
常见问题和易混淆知识点
-
Cache 行的大小和命中率之间有什么关系?
-
Cache 行的长度较大时,能充分利用程序访问的空间局部性,使一个较大的局部空间被一起调到 Cache 中,因此可以增加命中机会。但是,行长也不能太大,主要原因有两个:
- 行长大使失效损失变大。也就是说,若未命中,则需花更多时间从主存读块。
- 行长太大,Cache 项数变少,因此命中的可能性变小。
-
Cache 行的长度较小时,命中率会很低,但好处是存取块的代价较小。
-
-
发生取指令 Cache 缺失的处理过程是什么?
- 程序计数器恢复当前指令的值。
- 对主存进行读的操作。
- 将读入的指令写入 Cache 中,更改有效位和标记位。
- 重新执行当前指令。
-
Cache 总容量与映射方式有何种关系?
-
C a c h e 总容量 = [ 每个 C a c h e 行标记项的容量(有效位、脏位、 L R U 替换位、标记位) + C a c h e 行长 ] × C a c h e 总行数 Cache 总容量 = [每个 Cache 行标记项的容量(有效位、脏位、LRU 替换位、标记位)+ Cache 行长] × Cache 总行数 Cache总容量=[每个Cache行标记项的容量(有效位、脏位、LRU替换位、标记位)+Cache行长]×Cache总行数
-
其中,有效位和标记位是所有 Cache 所必需的;脏位只在 Cache 采用回写法时才需要设置;LRU 替换位只在 Cache 采用 LRU 替换算法时才需要设置。
-
有效位:占1位,用于说明 Cache 行中的数据是否有效。
-
脏位(修改位):占 1 位,回写法才需要设置,用以说明 Cache 行中的数据是否被修改过。
-
LRU 替换位:位数为 log 2 \log_2 log2(组内块数),用于 LRU 替换算法中的访问计数。
-
标记位 Tag:主存地址结构中的标记字段,其位数取决于所用的映射方式,用于匹配 Cache 行对应主存中的哪个块。
-
Cache 容量与映射方式的具体关系如下图所示。
-
