Skip to content

2020年 408 计算机组成原理 第 15 题

计算机组成原理2020年选择题2分

题目

下列关于 TLB 和 Cache 的叙述中,错误的是( )。

错因

A

误以为 TLB 和局部性无关——以为局部性只针对数据/指令访问,TLB 是地址翻译。但TLB 缓存的是页表项——程序如果在小范围内连续访问(即数据有空间/时间局部性),就主要落在少数页里,对应的页表项也只有少数几个,TLB 命中率高。所以 TLB 命中率也与局部性有关。A 是对的叙述。

B

误以为 TLB 缺失访问 Cache。但 TLB 缺失意味着对应页表项不在 TLB 中 → 必须查完整页表——而页表在主存里。所以 TLB miss 后访问的是主存(页表所在位置),不是 Cache。B 是对的叙述(Cache miss 当然也要访问主存)。

C

误以为 TLB 缺失必须由软件处理。早期 RISC 是软件处理,但现代 x86 / ARM 的 TLB 缺失由硬件 page table walker 自动处理——硬件按页表项格式遍历多级页表,更新 TLB。所以"缺失处理可由硬件实现"是对的叙述(字明示"能力上")。

总解析

TLB 和 Cache 对比

维度TLB(Translation Lookaside Buffer)Cache
缓存内容页表项(虚→物地址映射)主存数据 / 指令
实现介质SRAM(全相联或多路组相联)SRAM
缺失后访问页表(在主存)主存
缺失处理者硬件 / 软件均可硬件
命中率与局部性程序的页面局部性数据/指令的时空局部性

逐项判断

选项叙述判断理由
A命中率都与局部性有关✓ 对TLB 受页面局部性影响;Cache 受时空局部性影响
B缺失后都需访问主存✓ 对TLB miss 查页表(主存);Cache miss 直接读主存
C缺失处理都可由硬件实现✓ 对现代 x86/ARM TLB miss 由硬件 page walker 处理
D都由 DRAM 组成✗ 错两者都由 SRAM 实现

D 为什么错——TLB 和 Cache 都用 SRAM

介质速度集成度用在哪
SRAM极快(CPU 周期级)低(每位 6 个晶体管)Cache、TLB、CPU 内部寄存器
DRAM慢(几十到几百纳秒)高(每位 1 晶体管 + 1 电容)主存

TLB 和 Cache 必须能在 1 个 CPU 周期内响应(否则 CPU 流水线会阻塞),DRAM 几十纳秒的延迟显然不够——只能用 SRAM。DRAM 因为容量大、便宜,作为主存使用。

最终答案是 D(错误的叙述)。

SRAM vs DRAM 速记

维度SRAMDRAM
单元结构6 个晶体管的触发器1 晶体管 + 1 电容
速度几纳秒几十纳秒
集成度
是否需要刷新不需要需要(电容漏电)
单位价格便宜
典型用途Cache、TLB、寄存器主存

易错点速查

  1. TLB 和 Cache 都是 CPU 内/旁的高速缓存,两者都用 SRAM
  2. 现代硬件 TLB miss 处理已是标配(page table walker),早期 RISC 才走软件路径
  3. TLB 与"页面局部性"挂钩;Cache 与"时空局部性"挂钩——都依赖局部性

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数