【发布时间】:2017-12-10 21:11:59
【问题描述】:
据我所知,关于虚拟索引的虚拟标记缓存,这里我们有一个虚拟地址,分为页码和页偏移量。我们使用这个页码来获取缓存块。如果缓存未命中,我们使用 TLB 进行地址转换并从主存中获取适当的缓存块。 我的疑问是这里的“索引”一词是什么意思?是缓存线的寻址方式吗?虚拟标记是什么意思?
谢谢。
【问题讨论】:
标签: cpu-architecture memorycache virtual-address-space
据我所知,关于虚拟索引的虚拟标记缓存,这里我们有一个虚拟地址,分为页码和页偏移量。我们使用这个页码来获取缓存块。如果缓存未命中,我们使用 TLB 进行地址转换并从主存中获取适当的缓存块。 我的疑问是这里的“索引”一词是什么意思?是缓存线的寻址方式吗?虚拟标记是什么意思?
谢谢。
【问题讨论】:
标签: cpu-architecture memorycache virtual-address-space
在 VIVT 缓存中,虚拟地址用于标签比较和索引。一般来说,CPU缓存有一个索引和一个标签,它们是内存地址的两部分。地址的索引部分用于索引缓存中的条目。标签用于检查我们正在寻找的条目是否与正在缓存的条目相同。索引和标记可以使用物理地址或虚拟地址或两者的组合来完成。 VIPT - 虚拟索引物理标记
为了回答您的问题,索引意味着获取由索引位表示的缓存条目。 虚拟标记的意思是,用于比较的标记位来自虚拟地址。
【讨论】:
这里的索引是指缓存中每个条目的索引。例如,最受欢迎的选择是虚拟索引和物理标记。给定一个虚拟地址,我们在 TLB 和缓存中并行查找。如果缓存是虚拟索引的,虚拟地址可以用来快速定位缓存中的条目。在每个条目中,都有索引、标签和数据。通过对比tag和物理地址,我们可以看看这是否是我们需要的入口。
这样做的好处是我们可以并行访问TLB和缓存。
Computer Architecture, A Quantitative Approach 建议进一步了解。
希望这对阅读此问题的人有所帮助。
【讨论】: