Caching TLB指数的具体用途是什么?

Caching TLB指数的具体用途是什么?,caching,virtual-memory,tlb,Caching,Virtual Memory,Tlb,所以我不知道TLB指数到底是关于什么的。假设我们有这个TLB: 对于虚拟地址0x021a,我们将得到: VPN:0x8 TLB索引:0x0 TLB标签:0x2 这会导致失误。我不明白。标记0x2没有命中吗?导致PPN为0x20?我也不知道指数在哪里起作用。我想这可能会给我们带来一组障碍,但显然,这不是真的 那么,为什么这是一个失误,索引在这里究竟会做什么呢 标记0x2没有命中吗 否。TLB中带有标记02的两个条目用于完全不同的虚拟页码(VPN)。即使它们共享相同的标签,它们也不适用于VPN 8

所以我不知道TLB指数到底是关于什么的。假设我们有这个TLB:

对于虚拟地址0x021a,我们将得到:

VPN:0x8 TLB索引:0x0 TLB标签:0x2

这会导致失误。我不明白。标记0x2没有命中吗?导致PPN为0x20?我也不知道指数在哪里起作用。我想这可能会给我们带来一组障碍,但显然,这不是真的

那么,为什么这是一个失误,索引在这里究竟会做什么呢

标记0x2没有命中吗

否。TLB中带有标记02的两个条目用于完全不同的虚拟页码(VPN)。即使它们共享相同的标签,它们也不适用于VPN 8。集合1中的一个用于VPN 9,集合3中的一个用于VPN 0b(这恰好是无效的)。查找VPN 8时,将只搜索集合0,因为已知VPN 8只能位于集合0中

仅仅因为TLB条目共享相同的标签并不意味着它们用于相同的VPN。由于TLB不是,单个TLB条目不必包含整个VPN,因为存储条目的集合暗示了VPN的一部分。只有使用完全关联的TLB,才有必要将整个VPN存储到每个TLB条目中

因此,VPN被分为TLB标签和TLB索引。在您的练习中,TLB索引由两个VPN组成,TLB标记由剩余的位组成。每个TLB条目中只存储TLB标记,而不存储TLB索引,因为TLB条目所在的集合暗示了这一点