刷新CPU缓存时缓存步幅的作用

时间:2013-04-09 15:34:19

标签: cpu-cache

据我所知,CPU缓存的步幅值可能等于或大于缓存行大小,但我不明白为什么需要一个步幅值?

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

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

  3. 我已经搜索了很多有关CPU缓存跨度的信息,但找不到太多信息。

1 个答案:

答案 0 :(得分:3)

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

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

缓存的总内存容量被划分为相同大小的行。缓存行大小是缓存中单行的大小(以字节为单位)。此缓存硬件的参数。

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