Skip to content

第6章 存储系统设计(Cache 与虚存)- 专项练习

老师在录音里明确提到:第六章(存储系统设计)不布置大作业,但考试一定会考计算,且考点全在 PPT 的例题里!

他特别强调:程序访问的局部性原理、Cache 命中率 (H)、平均访问时间 (Ta)、访问效率 (e) 的计算,以及三种地址映像方式(直接、全相联、组相联)的地址字段划分。


一、填空题(每空 1 分)

1.
存储体系结构中,引入 Cache 的理论依据是程序访问的 _________ 原理,它包括 _________ 局部性和 _________ 局部性。
2.
Cache 的命中率 H 等于访问 Cache 的次数除以 _________
3.
若 Cache 命中率为 H,Cache 存取周期为 Tc,主存存取周期为 Tm,则平均访问时间 $T_a = $ _________________
4.
Cache 与主存之间的地址映像方式中,_________ 映射的块冲突概率最低,空间利用率最高。
5.
在组相联映射中,若 Cache 共有 16 块,采用 2 路组相联,则共分为 _________ 组。
6.
为了解决 Cache 与主存内容的一致性,_________ 法要求在写 Cache 的同时写主存。
7.
在写回法(Write Back)中,Cache 的每一行需要增加一个 _________ 位,用来标识该块是否被修改过。
8.
虚拟存储器中,_________(快表)用来存放页表中最活跃的少数副本,其存储介质通常是 _________
9.
虚存地址转换时,若在 _________ 中未发现对应的页表项,则会产生缺页异常。
10.
Cache 存储系统对 _________ 程序员和 _________ 程序员都是透明的。

二、单项选择题(每题 2 分)

1.
(核心计算:命中率)老师 PPT 原题:某程序执行过程中访存 1000 次,其中访问 Cache 缺失 50 次,则 Cache 命中率是( )。
A.
5%
B.
9.5%
C.
95%
D.
50%
2.
(重点:局部性判断)指令流水线中,循环语句主要体现了程序访问的( )。
A.
空间局部性
B.
时间局部性
C.
逻辑局部性
D.
随机局部性
3.
(地址划分计算)主存容量 1MB,Cache 容量 16KB,块大小为 512B。采用直接映射,则主存地址中的块内地址为( )位。
A.
9
B.
10
C.
14
D.
20
4.
(替换算法辨析)能够正确反映程序局部性,且命中率最高(排除理想算法外)的常用替换算法是( )。
A.
FIFO(先进先出)
B.
RAND(随机)
C.
LRU(近期最久未使用)
D.
以上都不是
5.
(组合考点:命中逻辑)老师强调不可能发生的情况。下列命中组合中,绝对不可能出现的是( )。
A.
TLB 缺失,页表命中,Cache 命中
B.
TLB 命中,页表命中,Cache 缺失
C.
TLB 缺失,页表缺失,Cache 命中
D.
TLB 命中,页表命中,Cache 命中
6.
(性能指标:效率)若 Tc=50ns,Tm=200ns,H=0.95,则 Cache-主存系统的效率 e 约为( )。
A.
25%
B.
86.2%
C.
75.3%
D.
95%
7.
(虚存概念)引入虚拟存储器的主要目的是解决( )。
A.
主存速度不足
B.
主存容量不足
C.
缓存命中率低
D.
外部设备连接繁琐
8.
(组相联映射陷阱)老师强调组间直接,组内全相联。一个 4 路组相联映射的 Cache,主存第 13 块应映像到 Cache 的第( )组。
A.
1
B.
3
C.
13
D.
无法确定,取决于 Cache 总组数
9.
(更新策略)在写操作时,只写入 Cache 而不立即写入主存,直到该块被替换时才写回的方法是( )。
A.
写直达法
B.
写回法
C.
按写分配法
D.
不按写分配法
10.
(页表存储)虚拟存储管理中,页表(慢表)存放在( )中。
A.
CPU 寄存器
B.
Cache
C.
主存
D.
硬盘

参考答案与解析

一、填空题

  1. 局部性、时间、空间
  2. 总访存次数
  3. HTc+(1H)Tm(录音强调:这是平均访问时间的通用公式)
  4. 全相联(最自由,冲突最少)
  5. 8(组数 = 总块数 / 路数 = 16 / 2)
  6. 写直达(或写透)
  7. 脏(或修改、Dirty)
  8. TLB、SRAM(快表比慢表快得多)
  9. 页表(或内页表)
  10. 应用程序、系统(Cache 由硬件自动调度,完全透明)

二、选择题

  1. C - (100050)/1000=0.95
  2. B - 重复执行同一段代码
  3. A - 块大小 512B=29,所以块内地址 9 位
  4. C - LRU 是现实中最接近理想 OPT 效果的算法
  5. C - 录音原话:缺页意味着信息不在主存,Cache 里绝不可能有副本
  6. B - Ta=0.95×50+0.05×200=57.5e=50/57.586.9%
  7. B - Cache 解决速度,虚存解决容量
  8. B - 假设 Cache 共 4 组,则 13(mod4)=1。注:此题考查映射公式 =(mod)
  9. B - 写回法只在替换时写回
  10. C - 页表通常很大,只能放在主存里

重点提示

  1. 命中率计算

    • H=访=访访
  2. 平均访问时间

    • Ta=HTc+(1H)Tm
    • 这是考试必考公式
  3. 访问效率

    • e=TcTa=TcHTc+(1H)Tm
  4. 地址映像方式

    • 直接映射:组间直接,组内直接(1路组相联)
    • 全相联映射:任意块映射到任意位置
    • 组相联映射:组间直接,组内全相联
  5. 地址字段划分

    • 直接映射:标记位 + Cache块号 + 块内地址
    • 全相联映射:标记位 + 块内地址
    • 组相联映射:标记位 + 组号 + 块内地址
  6. 命中逻辑

    • 缺页意味着数据不在主存,Cache 中不可能有副本
    • TLB 缺失可以查页表,页表缺失才会缺页
  7. 替换算法

    • LRU(近期最久未使用)最接近理想效果
    • FIFO 不考虑局部性
    • RAND 随机替换