【问题标题】:Virtually indexed virtually tagged cache虚拟索引虚拟标记缓存
【发布时间】:2017-12-10 21:11:59
【问题描述】:

据我所知,关于虚拟索引的虚拟标记缓存,这里我们有一个虚拟地址,分为页码和页偏移量。我们使用这个页码来获取缓存块。如果缓存未命中,我们使用 TLB 进行地址转换并从主存中获取适当的缓存块。 我的疑问是这里的“索引”一词是什么意思?是缓存线的寻址方式吗?虚拟标记是什么意思?

谢谢。

【问题讨论】:

    标签: cpu-architecture memorycache virtual-address-space


    【解决方案1】:

    在 VIVT 缓存中,虚拟地址用于标签比较和索引。一般来说,CPU缓存有一个索引和一个标签,它们是内存地址的两部分。地址的索引部分用于索引缓存中的条目。标签用于检查我们正在寻找的条目是否与正在缓存的条目相同。索引和标记可以使用物理地址或虚拟地址或两者的组合来完成。 VIPT - 虚拟索引物理标记

    为了回答您的问题,索引意味着获取由索引位表示的缓存条目。 虚拟标记的意思是,用于比较的标记位来自虚拟地址。

    【讨论】:

    • 感谢您的回复。你能告诉我虚拟地址的哪一部分包含标签吗?是页码还是页偏移量?
    • 这些是不同的东西。页号和页偏移量是访问页表和物理地址信息。标签位由索引位的大小决定,而索引位的大小又由缓存的大小决定。
    【解决方案2】:

    这里的索引是指缓存中每个条目的索引。例如,最受欢迎的选择是虚拟索引和物理标记。给定一个虚拟地址,我们在 TLB 和缓存中并行查找。如果缓存是虚拟索引的,虚拟地址可以用来快速定位缓存中的条目。在每个条目中,都有索引、标签和数据。通过对比tag和物理地址,我们可以看看这是否是我们需要的入口。

    这样做的好处是我们可以并行访问TLB和缓存。

    Computer Architecture, A Quantitative Approach 建议进一步了解。

    希望这对阅读此问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-03-17
      • 2013-11-09
      • 2019-07-25
      • 2018-07-09
      • 2013-01-24
      • 1970-01-01
      • 2011-03-08
      • 2016-03-24
      • 1970-01-01
      相关资源
      最近更新 更多