家庭作业问题,所以请在正确的方向上推动我。
考虑具有物理寻址缓存的系统,并假设使用40位虚拟地址和32位物理地址,并且内存是字节可寻址的。进一步假设高速缓存是4路组关联,高速缓存行大小为64字节,高速缓存的总大小为64 KB。
此系统中的最小页面大小应该是什么,以允许TLB访问和缓存访问的重叠?
我一直坚持这个问题而且根本不知道如何开始。有人能给我一个寻找解决方案的暗示吗?
答案 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