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

时间:2018-12-31 21:02:28

标签: memory cpu-architecture cpu-cache micro-architecture

我正在阅读David Patterson和John Hennessy的计算机体系结构书。在第二章中,它提到如果将标签存储在DRAM中,可能需要发出两个单独的请求以两个周期读取标签和数据。我的问题是为什么我们根本需要索取标签?标签不是只是地址的高位吗?

1 个答案:

答案 0 :(得分:3)

哇-很久很久以前,我读研究生时就读过帕特森和轩尼诗;)谢谢您在记忆里(Memory Lane)的旅行;)

这是怎么回事:

  

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

     

L2高速缓存中的区域,用于标识主内存中的哪些数据是   当前存储在每个高速缓存行中。实际数据存储在   缓存的不同部分,称为数据存储。存储的值   在标签RAM中确定高速缓存查找是导致命中还是结果   小姐。

换句话说,在两个不同的“位置”(缓存行和数据存储区)中有两个不同的“事物”(标记和数据)。如果是“命中”,则只需进行一次查找(对高速缓存行)。

那么,为什么要有一个“标签”呢?由于可能将不同的内存区域映射到一个块中,因此该标签用于区分它们。