查找最小页面大小以允许TLB访问与标记提取重叠

时间:2018-05-02 01:55:15

标签: cpu-architecture virtual-memory cpu-cache

家庭作业问题,所以请在正确的方向上推动我。

  

考虑具有物理寻址缓存的系统,并假设使用40位虚拟地址和32位物理地址,并且内存是字节可寻址的。进一步假设高速缓存是4路组关联,高速缓存行大小为64字节,高速缓存的总大小为64 KB。

     

此系统中的最小页面大小应该是什么,以允许TLB访问和缓存访问的重叠?

我一直坚持这个问题而且根本不知道如何开始。有人能给我一个寻找解决方案的暗示吗?

1 个答案:

答案 0 :(得分:1)

我认为问题中最重要的信息是

  

TLB访问和缓存访问的重叠

这意味着,我们在访问TLB的同时访问Cache。在实践中,我们真正做的是,我们使用来自虚拟地址的索引位索引缓存,并且当我们在缓存中找到条目时,我们将获得来自TLB的数据(物理地址)。然后我们可以用物理地址进行标记比较。换句话说,缓存充当虚拟索引的物理标记(VIPT)缓存。

即使该方案听起来很有效,但要注意的是,用于索引缓存的位数不能高于表示页面大小所需的位数。简单地说,页面大小可以对缓存条目的数量设置上限。

现在回到你的问题,

它是一个带有4路set assoc的64KB缓存。和高速缓存行64Bytes。

Number of cachelines = (64KBytes/4)/64Bytes = 2^8 cachelines

这意味着如果页面是256Bytes或更大,我们可以使用此机制。如果页面小于256字节,那么我们不能假设虚拟地址和物理地址的索引位将是相同的。

  

此系统中允许的最小页面大小应该是多少   TLB访问和缓存访问的重叠?

256Bytes