2014-01-17 59 views
1

我们目前正在研究1级缓存未命中,根据我们在PAPI的帮助下收集的结果,我开始认为我们可能做错了什么。L1数据缓存配置

我目前正在笔记本电脑上运行英特尔(R)Core(TM)i3-2370M CPU @ 2.40GHz的测试。 根据规格,L1数据缓存具有32 KB的大小和8路组相关性,一行有64个字节。因此我们得出结论,它有64组,每组有8行。

给定一个32位的内存地址,我们认为它具有L1高速缓存布局结构如下:

TAG | line id | set id | line offset 
    ---------- ------------ ------------- 
     3 bits  6 bits  6 bits 

是这个假设是真的吗?

回答

1

不完全。什么“8路”意味着一个特定的存储器行可能位于8个不同的缓存行中的任何一行。所以你的缓存本质上包含8组不同的64行,但你的标签(假设这里是一个64位系统)实际上是52位(理论上,假设所有的64位都被实现了,这是不一致的), 6位来标识行ID,然后是6位的偏移量。缓存电路将在所有8个不同的集合中查找该52位标签(通常是并行的,或尽可能靠近它)。没有从地址分配的位来指定“方式”的性质...