【发布时间】:2019-07-25 09:47:06
【问题描述】:
在谈到虚拟缓存时,同义词是指一个虚拟地址对应多个物理地址。
处理虚拟缓存中的同音异义问题的一种已知解决方案是使用物理标签进行缓存;即:用部分虚拟地址索引缓存,但将标记部分作为物理地址。我不明白这是怎么回事。
据我了解,处理器正在向缓存发送一个虚拟地址。如果处理器没有向缓存发送任何物理标签,它如何知道要检查哪个物理标签?例如,对于普通的物理缓存,如果您要查看缓存中是否存在 00001111,其中 0000 是标记位,1111 是索引位,您将按 1111 索引缓存,如果您得到命中,查看索引 1111 的标签是否为 0000。
但是,如果您的虚拟地址是 00001111,它对应于物理地址,例如 10101010,则处理器会将 00001111 发送到虚拟缓存。如果处理器发送的虚拟地址中不存在这些标签,缓存如何知道要检查哪些物理标签位(1010)?物理地址来自哪里?
简单来说,假设 VA 1 映射到 3 个物理地址:2、3 和 4。如果我的处理器使用虚拟地址 1 查询缓存,缓存如何知道它是否应该查找 2, 3和4?我要查找的物理地址不是很模糊吗?
【问题讨论】:
-
您将不得不更详细地解释。您正在使用教科书作者放入书中的学术胡言乱语来迷惑学生。另外,目前尚不清楚这是一个编程问题而不是硬件设计问题。
标签: caching virtual-memory page-tables