向DRAM发出读取请求时,为什么要读取标签和数据,而不是只读取数据?

When making read request to DRAM, why we need to read tag and data, not data only?

我正在阅读 David Patterson 和 John Hennessy 的计算机体系结构书籍。在chapter2中提到,如果我们将标签存储在DRAM中,我们可能需要在两个周期内分别发出两次读取标签和数据的请求。我的问题是为什么我们需要请求标签?标签不就是地址的高位吗?

哇 - 很久很久以前我在研究生院读过 Patterson 和 Hennessy ;) 感谢你的回忆之旅 ;)

这是正在发生的事情:

https://www.webopedia.com/TERM/T/tag_RAM.html

The area in an L2 cache that identifies which data from main memory is currently stored in each cache line. The actual data is stored in a different part of the cache, called the data store. The values stored in the tag RAM determine whether a cache lookup results in a hit or a miss.

换句话说,在两个不同的"places"(缓存行和数据存储)中有两个不同的"things"(标签和数据)。如果是 "hit",你只需要查找一次(到缓存行)。

那么为什么要 "tag" 呢?因为内存的不同区域可能映射到一个块中,所以使用标签来区分它们。