11

由于处理器内部的缓存提高了指令执行速度。我想知道如果我们将缓存的大小增加到许多 MB,例如 1 GB,会怎样。可能吗?如果是这样,增加缓存大小总是会提高性能吗?

4

3 回答 3

6

一方面在缓存大小和命中率之间进行权衡,另一方面在读取延迟和功耗之间进行权衡。所以你的第一个问题的答案是:技术上(可能)可能,但不太可能有意义,因为现代 CPU 中只有几 MB 大小的 L3 缓存具有大约几十个周期的读取延迟。

性能更多地取决于内存访问模式而不是缓存大小。更准确地说,如果程序主要是顺序的,缓存大小不是什么大问题。如果有很多随机访问(例如,当积极使用关联容器时),缓存大小真的很重要。

以上对于单个计算任务是正确的。在具有多个活动进程的多进程环境中,更大的缓存大小总是更好,因为减少了进程间争用。

于 2013-02-20T14:57:48.330 回答
5

这是一种简化,但是,高速缓存提高“速度”的主要原因之一是它提供了一个非常靠近处理器的快速内存——这比主内存的访问速度要快得多。所以,理论上,增加缓存的大小应该可以让更多的信息存储在这个“快速”的内存中,从而提高性能。在现实世界中,事情显然比这复杂得多,当然会有增加了与如此大的缓存相关的复杂性和成本,以及处理缓存一致性、缓存算法等问题。

于 2013-02-19T13:22:45.980 回答
-1

由于缓存临时存储数据。缓存用于轻松定位经常使用的文件。因此,如果缓存的大小增加到 1gb 或更多,它将不再作为缓存,而是变为 RAM。数据临时存储在 ram 中。因此,如果不使用缓存,当处理器调用数据时,ram 将需要时间来获取数据以提供给处理器,因为它的大小为 4gb 或更大。所以我们使用缓存作为我们最近或经常使用的东西的临时内存。这样,ram ram 不需要查找和获取数据给处理器,因为处理器直接从缓存中访问数据,由于缓存的体积小,查找数据不需要时间,并且处理器不需要调用ram 来获取数据,所有这些都可以在没有 ram 的情况下快速完成。举个例子,我们有一个宽敞的教室(RAM),我们的校长(处理器)出于某些目的调用班级 CR(数据),然后他们会去教室,在 1000 名学生的班级中找到 CR 并将他带到校长那里。这需要时间。当我们在类中为CR指定一个空间(缓存)时,由于principal大多调用类的CR,所以CR很容易找到,因为大部分时间CR是由Principal调用的。

于 2018-04-08T12:08:38.010 回答