Computer science 关于时间局部性和空间局部性的几个问题

Computer science 关于时间局部性和空间局部性的几个问题,computer-science,spatial,computer-architecture,temporal,Computer Science,Spatial,Computer Architecture,Temporal,我在期末考试中遇到了两个案例。 第一种情况的内存从以下位置获取信息:0x101,0x102,0x101,0x102,0x101,0x102,0x101,0x102,0x101,0x102 第二种情况是从位置获取信息,如: 0x101,0x101,0x101,0x101,0x111,0x109,0x102,0x100 问题是在哪种情况下它使用时间局部性 我的观点是:在第一种情况下。我认为在现实中,当我们访问0x101时,内存也会将0x102访问到缓存中。然后在接下来的六场比赛中,将不会有任何处罚。

我在期末考试中遇到了两个案例。 第一种情况的内存从以下位置获取信息:0x101,0x102,0x101,0x102,0x101,0x102,0x101,0x102,0x101,0x102

第二种情况是从位置获取信息,如: 0x101,0x101,0x101,0x101,0x111,0x109,0x102,0x100

问题是在哪种情况下它使用时间局部性

我的观点是:在第一种情况下。我认为在现实中,当我们访问0x101时,内存也会将0x102访问到缓存中。然后在接下来的六场比赛中,将不会有任何处罚。这意味着在这种情况下,我们只有一个缓存未命中。在这里,我认为我们同时受益于时间局部性和空间局部性。 而在第二种情况下,在前四个步骤中,我们受益于时间局部性,但在接下来的步骤中,我们没有时间局部性。实际上,这会导致比第一选择更多的缓存未命中。
我认为两者都是对的,但我们只能有一个答案,所以我感到困惑。

我会投第二个。正如您所说,在前4个步骤中,它有一个明确的时间局部性

从来没有说过缓存有空间容纳内存中的多个项目。它可能是一个只有一个寄存器的CPU或其他什么。因此,第一个病例可能不表现出任何地方性


这个问题是否提供了系统架构的更多细节?

这肯定是第二个选择。问题很清楚:在第二种情况下,您显式地使用了时间局部性,因为您在一行中多次访问0x101

见这个问题:

时间局部性意味着您将访问相同的地址 多次,在时间上相对紧密

你说得对,第一种情况也使用了时间局部性,但我要说它转向了空间局部性,因为你在两个相邻位置之间交替,因此,缓存未命中被最小化是因为空间局部性,而不是因为时间局部性


在第二种情况下,由于时间局部性,缓存未命中被最小化。记住,时间位置表示,如果您现在访问位置X,您很可能很快就会再次访问。这是第二个案例中探讨的属性。

此问题未提供更多详细信息。我想知道我在这次考试中选错了答案,真遗憾……但很快的结果是什么呢。我怀疑在两个或三个系统中,时钟也被称为很快。@user3180776 2或3个系统时钟算不了什么。100个系统时钟仍然很快。这取决于上下文,但请记住CPU周期非常快。考虑到您问题中的选项,我选择2,因为时间局部性在那里非常明显。@user3180776,soon是一个主观定义-如果您访问同一行,而它仍然驻留在缓存中,那么应该很快考虑它。实际距离将根据缓存大小/关联性、访问模式等而有所不同。。