我目前正在做一些关于操作系统的项目,我知道如何在单级分页中找到 EAT
EAT = (MAT+TLB-AT)*a+(2*MAT+TLB-AT)*(1-a)
在哪里
MAT is memory access time,
TLB-AT is TLB hit time
a is hit ratio
我试图EAT
在两个级别上找出,如果 TLB 未命中或四次,它会访问内存 3 次。
我目前正在做一些关于操作系统的项目,我知道如何在单级分页中找到 EAT
EAT = (MAT+TLB-AT)*a+(2*MAT+TLB-AT)*(1-a)
在哪里
MAT is memory access time,
TLB-AT is TLB hit time
a is hit ratio
我试图EAT
在两个级别上找出,如果 TLB 未命中或四次,它会访问内存 3 次。
当 TLB 命中时 ==> 我们需要 {TLB 访问时间 + 内存中实际页面的访问时间}
当 TLB 未命中时 ==> 我们需要{TLB 访问时间 + 内存页表条目的访问时间 + 内存实际页的访问时间}
对于 1 级分页==> 从内存中访问页表条目的时间
对于 2 级分页==> 2 * 从内存中访问页表条目的时间
. .
对于 n 级分页==> n * 从内存中访问页表条目的时间
所以广义公式可以是:
EMAT= p * (TLB-访问时间 + 内存访问时间) + (1-p) *[TLB-访问时间 +((n+1) *内存访问时间)]
这里,p=命中率。
EAT = (%hit)(TLBAT + MAT) + (1-%hit)(TLBAT + (n+1)(MAT))
由于我们必须两次进入内存进行单级分页,所以当我们将另一个页面添加到混合中时,它只会向进程添加一个更多的内存读取。