Skip to content

408

计算机组成原理

CO-03-12 TLB(快表)与地址转换过程


一、定位信息

项目内容
所属圈层核心层
前置知识回顾需了解页式虚拟存储器的地址转换过程(CO-03-11),了解Cache的基本原理(CO-03-08),了解页表存储在主存中、每次地址转换都需要查页表的性能问题
知识网络定位本单元是虚拟存储器(CO-03-11)的加速机制——TLB将最近使用的页表项缓存在快速硬件中,避免每次地址转换都访问主存中的页表。TLB + Cache + 虚拟存储器构成了完整的多级存储-地址转换体系
考点热度等级H级 — TLB与地址转换的综合计算是高频大题,近5年出现≥4次,分值5–10分,是408计算机组成原理部分的压轴题型之一

二、知识点讲解

2.1 为什么需要TLB

页式虚拟存储器中,每次访存都需要先查页表(存储在主存中)得到物理地址,再用物理地址访问主存中的数据。这意味着一次数据访问需要两次访存(一次查页表,一次取数据),速度大幅降低。

TLB(Translation Lookaside Buffer,地址转换后备缓冲器/快表) 是一个高速缓存,存储最近使用的页表项。它的作用类似于Cache对主存的作用——用少量快速硬件避免频繁访问慢速的页表。

2.2 TLB的基本结构

TLB是一个全相联或组相联的高速存储器,每个TLB项包含:

  • 虚拟页号(Tag部分):用于匹配
  • 物理页框号:地址转换的结果
  • 有效位:该TLB项是否有效
  • 其他标志位:访问权限、脏位等

TLB的容量很小(通常16~512个项),但速度极快(1个时钟周期内完成查找)。

2.3 使用TLB的地址转换过程

当CPU发出虚拟地址时:

  1. 查TLB:用虚拟页号在TLB中查找
  2. TLB命中
    • 直接从TLB中取出物理页框号
    • 拼接页内偏移得到物理地址
    • 用物理地址查Cache(或直接访问主存)
    • 总访存次数:0次额外访存(TLB在CPU内部,不占访存周期)
  3. TLB未命中
    • 查主存中的页表
    • 如果页在主存中(有效位=1):取出物理页框号,将该页表项写入TLB,后续访问可命中TLB
    • 如果页不在主存中(缺页):处理缺页中断
    • 总访存次数:1次查页表 + 1次访问数据 = 2次访存

2.4 TLB + Cache + 页式虚拟存储器的完整地址转换

这是考研中最重要的综合题型。完整的地址转换过程:

步骤1:查TLB

  • 用虚拟页号查TLB
  • TLB命中 → 得到物理页框号 → 跳到步骤3
  • TLB未命中 → 继续步骤2

步骤2:查页表(TLB未命中时)

  • 用虚拟页号查主存中的页表
  • 页在主存(有效位=1)→ 得到物理页框号,更新TLB → 继续步骤3
  • 页不在主存(缺页)→ 缺页中断处理

步骤3:构造物理地址

  • 物理地址 = 物理页框号 + 页内偏移

步骤4:查Cache

  • 用物理地址查Cache
  • Cache命中 → 数据送CPU
  • Cache未命中 → 访问主存获取数据,更新Cache

2.5 各种命中/未命中的组合情况

TLB页表Cache处理过程访存次数
命中命中TLB直接给出物理地址,Cache命中0
命中未中TLB给出物理地址,Cache未中,访问主存1
未中命中命中查页表得到物理地址,Cache命中1
未中命中未中查页表得到物理地址,访问主存2
未中未中缺页中断,从磁盘调入2+磁盘访问

2.6 TLB与Cache的对比

对比项TLBCache
缓存内容页表项(地址映射)数据/指令
输入虚拟页号物理地址
输出物理页框号数据内容
作用加速地址转换加速数据访问
位置MMU内部CPU与主存之间
容量小(16~512项)较大(KB~MB级)
映射方式全相联/组相联直接/组相联

2.7 有效访存时间的计算

设TLB命中率为 hTLBh_{TLB},TLB访问时间为 tTLBt_{TLB},主存访问时间为 tmt_m,Cache命中率为 hCh_C,Cache访问时间为 tCt_C

简化模型(只考虑TLB和主存,不含Cache):

teff=hTLBtm+(1hTLB)2tm=tm+(1hTLB)tmt_{eff} = h_{TLB} \cdot t_m + (1-h_{TLB}) \cdot 2t_m = t_m + (1-h_{TLB}) \cdot t_m

(TLB命中时只需1次访存取数据;TLB未命中时需1次查页表+1次取数据=2次访存)

完整模型(TLB + Cache + 主存):

需要综合考虑各种命中/未命中组合,根据题目给定的条件计算。


三、记忆与理解辅助

3.1 口诀记忆

口诀:"TLB快页表,命中一次到,未中查主存,缺页盘上找"

口诀:"先查TLB快不快,不快查表在不在,不在缺页盘上来"

3.2 地址转换流程口诀

"虚拟地址分两段,页号查TLB,偏移往右搬;TLB没有查页表,页表没有找磁盘;物理地址拼出来,Cache里找数据快"

3.3 对比表:各级查找的目的

查找层次输入输出目的
TLB虚拟页号物理页框号加速地址转换
页表虚拟页号物理页框号地址转换(TLB的后备)
Cache物理地址(Tag+Index)数据内容加速数据访问
主存物理地址数据内容数据存储(Cache的后备)

3.4 访存次数速查

场景访存次数
TLB命中 + Cache命中0次额外访存
TLB命中 + Cache未中1次(访问主存取数据)
TLB未中 + 页表命中 + Cache命中1次(查页表,但Cache有数据)
TLB未中 + 页表命中 + Cache未中2次(查页表+取数据)
缺页2次+磁盘I/O

四、例题与精解

例题1(基础)

题目:某计算机采用页式虚拟存储器,页大小4KB,TLB采用全相联映射,共16项。主存访问时间为100ns,TLB访问时间为10ns,TLB命中率为98%。 (1)TLB命中时的有效访存时间是多少? (2)TLB未命中时的有效访存时间是多少? (3)平均有效访存时间是多少?

命题意图:考查TLB对访存时间的影响。

审题分析tTLB=10nst_{TLB}=10\text{ns}tm=100nst_m=100\text{ns}hTLB=0.98h_{TLB}=0.98

解题思路:TLB命中时只需1次访存(取数据),TLB未命中时需2次访存(查页表+取数据)。

完整步骤

(1)TLB命中时:

thit=tTLB+tm=10+100=110nst_{hit} = t_{TLB} + t_m = 10 + 100 = 110\text{ns}

注:TLB访问10ns(在CPU内部,不计入访存),然后访问主存取数据100ns。有些题目将TLB访问时间忽略(因为它和访存并行),此时 thit=tm=100nst_{hit} = t_m = 100\text{ns}。具体以题目说明为准。

如果按简化模型(TLB访问时间和访存时间重叠):

thit=tm=100nst_{hit} = t_m = 100\text{ns}

(2)TLB未命中时:

需要先查页表(1次访存),再取数据(1次访存)。

tmiss=tm+tm=200nst_{miss} = t_m + t_m = 200\text{ns}

(加上TLB查找的开销:tmiss=tTLB+2tm=210nst_{miss} = t_{TLB} + 2t_m = 210\text{ns}

(3)平均有效访存时间:

按简化模型:

teff=hTLBtm+(1hTLB)2tmt_{eff} = h_{TLB} \cdot t_m + (1-h_{TLB}) \cdot 2t_mteff=0.98×100+0.02×200=98+4=102nst_{eff} = 0.98 \times 100 + 0.02 \times 200 = 98 + 4 = 102\text{ns}

方法反思:TLB的命中率通常很高(>95%),所以即使TLB未命中时需要2次访存,平均访存时间也接近1次访存。这就是TLB的价值。


例题2(中等)

题目:某系统参数如下:

  • 虚拟地址32位,物理地址30位,页大小4KB
  • TLB:全相联,64项,命中率96%,访问时间5ns
  • Cache:8路组相联,64KB,块大小64B,命中率95%,访问时间10ns
  • 主存访问时间:200ns

假设TLB和Cache的查找可以部分重叠(TLB查完后才能用物理地址查Cache),求: (1)TLB命中+Cache命中时的访存时间; (2)TLB命中+Cache未命中时的访存时间; (3)TLB未命中+页表命中+Cache命中时的访存时间; (4)假设所有页都在主存中(无缺页),且在TLB命中的条件下Cache命中率为95%,在TLB未命中的条件下Cache命中率也为95%。求平均有效访存时间。

命题意图:考查TLB + Cache + 主存三级存储系统的综合访存时间计算。

审题分析:三级存储系统,需要考虑各种命中/未命中组合。

解题思路:逐情况分析访存时间,再用概率加权求平均。

完整步骤

(1)TLB命中 + Cache命中:

t1=tTLB+tC=5+10=15nst_1 = t_{TLB} + t_C = 5 + 10 = 15\text{ns}

(TLB查5ns → 得到物理地址 → Cache查10ns → 命中,不需要访问主存)

(2)TLB命中 + Cache未中:

t2=tTLB+tC+tm=5+10+200=215nst_2 = t_{TLB} + t_C + t_m = 5 + 10 + 200 = 215\text{ns}

(TLB查5ns → Cache查10ns未中 → 访问主存200ns)

(3)TLB未中 + 页表命中 + Cache命中:

t3=tTLB+tm+tC=5+200+10=215nst_3 = t_{TLB} + t_m + t_C = 5 + 200 + 10 = 215\text{ns}

(TLB查5ns未中 → 查页表200ns → 得到物理地址 → Cache查10ns命中)

(4)平均有效访存时间:

四种情况的概率和时间:

情况概率访存时间
TLB命中 + Cache命中0.96×0.95=0.9120.96 \times 0.95 = 0.91215ns
TLB命中 + Cache未中0.96×0.05=0.0480.96 \times 0.05 = 0.048215ns
TLB未中 + 页表命中 + Cache命中0.04×0.95=0.0380.04 \times 0.95 = 0.038215ns
TLB未中 + 页表命中 + Cache未中0.04×0.05=0.0020.04 \times 0.05 = 0.002415ns

注:TLB未中 + Cache未中 = 5+200+10+200=415ns5 + 200 + 10 + 200 = 415\text{ns}(查TLB → 查页表 → 查Cache未中 → 访问主存)

teff=0.912×15+0.048×215+0.038×215+0.002×415t_{eff} = 0.912 \times 15 + 0.048 \times 215 + 0.038 \times 215 + 0.002 \times 415teff=13.68+10.32+8.17+0.83=33nst_{eff} = 13.68 + 10.32 + 8.17 + 0.83 = 33\text{ns}

方法反思

  1. 完整的三级存储系统计算需要考虑所有组合情况。
  2. TLB命中率和Cache命中率通常独立(TLB缓存页表项,Cache缓存数据)。
  3. 实际系统中,TLB + Cache的多级加速效果非常显著——从200ns的主存访问时间降到平均33ns。

五、考情分析

项目内容
近5年考查频次≥4次
常见题型综合计算题(TLB+页表+Cache完整地址转换)、选择题(TLB基本概念)
分值占比综合题5–10分,选择题2分
命题趋势TLB + Cache + 虚拟存储器的综合地址转换是408计算机组成原理部分的压轴题型。近年趋势是增加复杂度——要求考生画出完整的地址转换流程图,并计算各种情况下的访存时间

六、易错点提醒

易错点1

  • 错误表现:TLB命中时仍然去查页表
  • 错误原因:没有理解TLB就是页表的缓存,命中意味着已经得到了物理页框号
  • 正确做法:TLB命中 = 页表项已在TLB中,不需要再查主存中的页表。直接用TLB中的物理页框号拼接偏移得到物理地址

易错点2

  • 错误表现:计算访存次数时,将TLB的访问时间算作一次"访存"
  • 错误原因:TLB在CPU内部(或MMU内部),不是独立的访存操作
  • 正确做法:TLB的访问时间通常与访存时间重叠或非常短,不算作独立的访存周期。"访存次数"指的是访问主存的次数

易错点3

  • 错误表现:用虚拟地址查Cache
  • 错误原因:混淆了虚拟地址和物理地址的作用
  • 正确做法:Cache通常用物理地址查(物理索引物理标签,PIPT)。需要先通过TLB/页表将虚拟地址转为物理地址,再用物理地址查Cache。少数系统使用虚拟索引(VIPT),但考研中通常按PIPT处理

易错点4

  • 错误表现:计算平均访存时间时,漏掉了某些命中/未命中组合
  • 错误原因:没有系统地列出所有可能的组合
  • 正确做法:TLB有2种状态(命中/未中),页表有2种状态(在主存/缺页),Cache有2种状态(命中/未中)。组合后共有 2×2×2=82 \times 2 \times 2 = 8 种情况,但实际中有些组合概率为0或题目忽略,需要根据题意分析

易错点5

  • 错误表现:TLB未命中时,认为必须访问2次主存(查页表+取数据)
  • 错误原因:忽略了Cache可能命中的情况
  • 正确做法:TLB未命中后查页表得到物理地址,此时如果Cache命中,只需要1次访存(查页表那次)。只有Cache也未命中才需要2次访存

七、来源标注

  • 依据2026考研统考大纲(408-计算机组成原理-第三章"存储器层次结构")
  • 依据大学本科经典教材共识:唐朔飞《计算机组成原理》、白中英《计算机组成原理》、Patterson & Hennessy《计算机组成与设计》

考研全科复习资料 - 基于2026考研统考大纲