高速缓存,它如何影响 CPU 和 GPU 性能?

缓存内存,它如何影响 CPU 和 GPU 性能

迄今为止,没有任何架构 中央处理器 or GPU 没有集成缓存。 由于它对性能至关重要,因为如果没有缓存,那么任何 CPU 或 GPU 的性能都会直线下降。 但是缓存在多大程度上影响 CPU 或 GPU 的性能? 我们为您详细解释。

第一个拥有缓存的 PC CPU 是 英特尔 80486,从那时起我们已经看到了所有处理器如何在多层层次结构中合并高速缓存,不仅在 CPU 的情况下,而且在 GPU 的情况下也是如此。

主要的公用事业是众所周知的。 首先,减少处理器和 内存,其次是每个不同指令的功耗,其次是减少访问内存的争用,这会导致更高的延迟,尤其是当我们谈论多个内核访问相同的内存地址时。

但是,有一种方法可以衡量缓存性能,在设计新处理器时会考虑到这一点。 继续阅读以了解缓存如何影响 CPU 和 GPU 的性能。

缓存摘要

快取底漆Nivel Spllit

首先我们必须记住,缓存不是 CPU 或 GPU 可寻址的空间,当我们谈论可寻址空间时,我们的意思是 CPU 或 GPU 可以指向特定的内存地址,其中下一个数据或指令处理。 所以缓存不能被CPU指向,因此不能被它管理。

可以说缓存机制是自动工作的,当 CPU 内核执行搜索时,它所做的就是通过不同的缓存来查找特定的数据。 当内核进行更改时,其余缓存中该数据的所有副本也会自动更新。 同样,缓存机制本身决定将 RAM 内容的哪些副本保存在缓存中,哪些不保存。

缓存的作用是存储最接近在那个精确时刻正在执行的代码行的内存副本。 这是因为代码大多是顺序的,所以大多数情况下,要处理的程序的下一行将是紧随其后的那一行。

如何衡量缓存性能?

当 CPU 或 GPU 需要访问内存中的数据时,他们做的第一件事就是访问先前缓存的不同级别。 所以首先它会搜索一级缓存,如果它没有找到数据,那么它会向下一级缓存,依此类推,直到找到正在搜索的数据。

当数据不在缓存级别时,就会发生我们所说的“缓存未命中”,因此有必要向下到层次结构的下一个级别。 这导致在要添加的延迟方面增加了时间。 另一方面,如果我们有

为了理解它,假设我们有一个具有 3 个缓存级别的 CPU 或 GPU,并且我们已经在第三个级别找到了数据。 所以这种情况下的搜索时间可以总结如下:

缓存数据查找 时间=一级缓存寻道时间+二级缓存跳转时间+二级缓存寻道时间+缓存跳转时间延迟三级+三级缓存查找时间

必须考虑到,如果缓存搜索时间超过在 RAM 中的直接搜索时间,那么该处理器的缓存设计将无法实现,因为在逻辑意义上,在缓存中搜索数据需要更长的时间是没有道理的比记忆中。 这就是为什么我们通常不会看到额外的缓存级别,因为每个级别添加的不同延迟时间会为访问时间增加更多的额外延迟。

测量 AMAT

快取

AMAT 代表平均内存访问时间,或平均内存访问时间。 这是一个平均值,因为并非 CPU 或 GPU 上的所有指令都具有相同的延迟并以相同的方式依赖于内存。 但同时它有助于我们衡量 CPU 或 GPU 缓存的性能。

要计算任何 CPU 或 GPU 的 AMAT,使用以下公式:

AMAT = 命中时间 + 未命中率 * 未命中率

我们感兴趣的是 AMAT 很低,因为它测量 CPU 对数据的访问时间,从而测量查找数据时的延迟。 至于衡量缓存性能的AMAT公式的不同值,有以下这些:

  • 第一个值是 Hit Time,即 CPU 或 GPU 在缓存中查找数据所需的时间 . 在这种情况下,重要的是缓存很小,以便可以更快地执行它的旅程。 由于缓存越大,旅行所需的时间就越长。 这就是为什么最接近内核的缓存级别的大小非常小。
  • 第二个值是 Miss Rate,即数据不在缓存中的次数百分比 . 这与命中率相矛盾,因为找到缓存数据的最佳方法是增加其存储容量。 缓存还必须有机制来知道它必须保存哪些数据,以便为 CPU 或 GPU 在短期内具有更多访问权限的其他人提供空间。
  • 第三个值是 Miss Penalty,这是访问数据在 RAM 内存中而不是在缓存中所需的延迟时间。 就时钟周期而言,这是一个巨大的时间。 很明显,如果数据在 RAM 中而不在高速缓存中,则必须添加在 RAM 之前的高速缓存层次结构中提供的搜索时间。

因此,缓存的性能将取决于命中时间或未命中率的优化方式,因为优化一个部分意味着破坏另一部分,架构师必须决定在设计新部分时更重视哪个值。 CPU 或新的 GPU。