查找时,快表和慢表也可以同步进行
在一个具有Cache和TLB的虚拟存储系统中,CPU一次访存操作可能涉及5个地方的访问
根据乘法原理(方幂模型),理论上组合情况有 2 3 = 8 种 2^3=8种 23=8种
情况 | TLB | Page | Cache | perf | 访存次数 | 访问外存次数 |
---|---|---|---|---|---|---|
1 | 命中 | 命中 | 命中 | best | 0 | |
2 | 命中 | 命中 | 缺失 | common | 1 | |
3 | 缺失 | 命中 | 命中 | common | 1 | |
4 | 缺失 | 命中 | 缺失 | bad | 2 | |
5 | 缺失 | 缺失 | 缺失 | worest | 2 | 1 |
情况 | 发生可能性说明 | 访存原因 |
---|---|---|
1 | TLB命中则Page一定命中,信息在主存,就可能在 Cache 中 | |
2 | TLB命中则 Page右定命中,信息在主存,也可能不在Cache中 | cache缺失,需要访问内存,并且维护cache(可靠性和性能) |
3 | TLB缺失但Page可能命中,信息在主存,就可能在Cache 中 | 快表TLB缺失,需要访问内存中的慢表查到目标(页面)物理地址,维护快表 |
4 | TLB缺失但Page可能命中,信息在主存,也可能不在 Cache中 | 有两个原因,分别是情况2,3的原因,同时维护TLB和cache |
5 | TLB缺失则 Page也可能缺失,信息不在主存,也一定不在 Cache | 由于内存发生缺页,需要进行1次硬盘IO;同时需要执行情况4需要做的工作 |
访问过程
为了便于描述,🎈
P0:VA → b \to{b} →b
P1: b → P A b\to{PA} b→PA
P2: P A → ( P A ) PA\to{(PA)} PA→(PA)
上述两个过程的执行速度会有各种情况
亡羊补牢
的操作是有效的低6位为页内地址
高14-6=8位是虚拟页号
慢表的结构和快表有所不同
则有Q= C v R v = 16 / 4 = 4 \frac{C_v}{R_v}=16/4=4 RvCv=16/4=4个组
综上,虚拟地址结构:
慢表的结构和快表有所不同