刷新CPU缓存时缓存步幅的角色



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

  1. 什么时候CPU缓存的步长值大于缓存行大小?

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

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

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

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

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

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

最新更新