某分页系统先查TLB再访问主存,TLB查找时间为10ns,主存访问时间为100ns,TLB命中率为90%。TLB未命中时需再访问一次主存读取页表,然后访问目标数据。忽略缺页和Cache,平均有效访问时间为()。
命中耗时10+100=110ns;未命中耗时10+100+100=210ns。加权平均为0.9×110+0.1×210=99+21=120ns。
选项分析
错误。忽略了TLB查找时间和未命中开销。
错误。只计算了命中路径,没有把10%的未命中纳入平均。
正确。0.9×110+0.1×210=120ns。
错误。210ns只是未命中单次耗时,不是平均时间。
本题为什么容易错
常见错误是直接写命中率×内存时间,漏掉每次都发生的TLB查找,或者把未命中时的页表访问和数据访问只算一次。
简短答案
TLB查找10ns、内存100ns、命中率90%,有效访问时间是多少,正确答案是 C(120ns)。命中耗时10+100=110ns;未命中耗时10+100+100=210ns。加权平均为0.9×110+0.1×210=99+21=120ns。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 100ns | 本题干扰项 | 错误。忽略了TLB查找时间和未命中开销。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 110ns | 本题干扰项 | 错误。只计算了命中路径,没有把10%的未命中纳入平均。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 120ns | 本题正确答案 | 正确。0.9×110+0.1×210=120ns。 | 看到题干核心场景时优先联想到它 |
| 210ns | 本题干扰项 | 错误。210ns只是未命中单次耗时,不是平均时间。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 100ns:错误。忽略了TLB查找时间和未命中开销。
- 110ns:错误。只计算了命中路径,没有把10%的未命中纳入平均。
- 210ns:错误。210ns只是未命中单次耗时,不是平均时间。
知识点详解
TLB缓存近期页表项。命中后可直接得到物理页框号,再访问目标数据;未命中则需查询页表并把结果写入TLB,然后访问数据。有效访问时间是不同路径耗时按发生概率的期望值。
备考速记
先算命中一条路、未命中另一条路,最后再让命中率当权重。
TLB 在分页存储场景中的作用
若命中率提高到99%,同一条件下平均时间变为0.99×110+0.01×210=111ns,说明较高命中率能显著压低页表访问成本。
同类题怎么考
- 根据TLB命中率计算有效访问时间。
- 判断多级页表对TLB未命中代价的影响。
TLB 在软件设计师软考中的考法
选项中出现110、120、210通常分别对应命中、加权平均和未命中路径,按概率期望即可区分。
解题思路
这题最稳的做法是先不碰命中率。命中路径走TLB和一次内存,共110;未命中多走一次页表内存,共210。最后才按九成和一成加权,得到120,选C。
考点定位
先分别画命中和未命中路径,再按概率加权。是否并行查TLB与Cache、是否计页表多级访问必须按题干设定。
易错提醒
- 把90%写成90参与乘法。
- 命中和未命中路径没有分别列清。
- 自行假设TLB与主存并行,改变题目明确的串行条件。
备考提示
- 固定三步:列路径、算单次、概率加权。
- 题干若给多级页表,未命中路径还要按访问层数调整。
你可能还想了解
- TLB命中为什么还要访问一次内存?
- TLB未命中要访问几次主存?
- 有效访问时间为什么要概率加权?
本文小结
命中路径110ns、未命中路径210ns,按90%命中率加权后平均有效访问时间为120ns。