端到端的地址翻译
高速缓存参数
基本参数
参数 描述
S=2s 组数
E 每个组的行数
B=2b 块大小(字节)
m=log2(M) (主存)物理地址位数
衍生出来的量
参数 描述
M=2m 内存地址的最大数量
s=log2(S) 组索引的位数
b=log2(B) 块偏移位数量
t=m-(s+b) 标记位数量
C=B*E*S 不包括像有效位和标记位这样开销的高速缓存大小(字节)

地址翻译符号
基本参数
符号 描述
N=2n 虚拟地址空间中的地址数量
M=2m 物理地址空间中的地址数量
P=2p 页的大小(字节)
虚拟地址(VA)的 组成部分
符号 描述
VPO 虚拟页面偏移量(字节)
VPN 虚拟页号
TLBI TLB索引
YLBT TLB标记
物理地址(PA)的组成部分
符号 描述
PPO 物理页面偏移量(字节)
PPN 物理页号
CO 缓冲块内的字节偏移量
CI 高速缓存索引
CT 高速缓存标记
对于端到端的地址翻译,我们假设:
内存是按字节寻址的
内存访问是针对1字节的字的(不是4字节的字) 偏移后读一个字节
虚拟地址是14位长的(n=14)
物理地址是12位长的(m=12)
页面大小是64字节(p=64) 页的位数是6(26=64)即VPO=PPO=6
TLB是四路组相联的,总共有16个条目。块表有四组(索引位为2),每组四个共有16个条目。
L1 d-cache是物理寻址,直接映射的,行大小为4字节,而总共有16个组。高速缓存每组只有一行,行大小为4字节,故每组4字节,(22=4,故偏移量为2位)一共16组(索引位为4)。
块表:

页表:

高速缓存:

下图展示了虚拟地址和物理地址的格式:


给出虚拟地址:0x03d7,填下表:
A.虚拟地址格式
|------------------>TLBT<-------------------||-->TLBI<--|
13 12 11 10 9 8 7 6 5 4 3 2 1 0

|---------------------------->VPN<--------------------------||------------------>VPO<------------------|
B.地址翻译

C.物理地址格式
|------------------->CT<---------------------||------------->CI<-----------||--->CO<----|
11 10 9 8 7 6 5 4 3 2 1 0

|------------------>PPN<-------------------||------------------->ppo<--------------------|
D.物理内存引用


浙公网安备 33010602011771号