4

我知道 CPU 缓存的步幅值可以等于或大于缓存行大小,但我不明白为什么需要步幅值?

  1. CPU 缓存何时会具有大于缓存行大小的步幅值?

  2. 什么时候实际使用步幅值?是在冲水的时候吗?

我已经搜索了很多关于 CPU 缓存步幅的更多信息,但找不到太多信息。

4

1 回答 1

5

跨度是内存访问模式的属性,与缓存硬件无关。

例如,内存访问模式R(0), R(2), R(4),..有 stride 2,其中R表示read,括号中的数字是内存中字节的地址。一个模式R(0), R(15), R(30)... 的步幅为 15。

高速缓存的总内存容量被分成大小相等的行。高速缓存行大小是高速缓存中单个行的大小(以字节为单位)。这缓存硬件的参数。

现在,相对于高速缓存行大小的步长长度会影响高速缓存的性能。如果步幅远小于行大小,则许多连续访问将转到高速缓存中的同一行。如果步幅大于缓存行大小,则连续访问将转到不同的缓存行。如果访问总数是固定的,则前一种情况通常比后一种情况快得多。要了解原因,请尝试搜索 cpu 缓存的组织方式。

于 2013-04-13T06:40:50.280 回答