📜  高速缓存设计

📅  最后修改于: 2021-09-28 09:25:11             🧑  作者: Mango

先决条件 – 缓存内存
本文详细讨论了缓存样式。此处简要概括了关键要素。我们将看到类似的样式问题应该在解决存储和缓存样式时自行解决。它们代表了后续的类别:缓存大小、块大小、映射函数、替换算法和写入策略。这些解释如下。

  1. 缓存大小:
    看起来适度小的缓存会对性能产生很大的影响。
  2. 块大小:
    块大小是高速缓存和主内存之间变化的信息单位。

    由于块大小将从非常小的增加到更大的大小,因此局部性原则的结果是命中量级关系最初会增加。 记录单词平方度量的树林中的知识可能被记录的可能性很高在不久的将来。随着块大小的增加,很多有用的知识平方措施被带入缓存中。

    然而,命中量级关系会开始减少,因为块变得更大,而且新获取的知识成为受害者的机会也变成了重用应该从缓存中抽象出来的信息以形成新块区域的机会.

  3. 映射函数:
    当替换数据块被扫描到缓存中时,映射执行确定该块将占用的缓存位置。两个约束对映射执行的规划有影响。首先,一旦一个块被扫描进来,另一个可以被替换。

    我们希望以最简单的方式做到这一点,以尽量减少我们将在不久的将来需要更换块的机会。映射执行的多种用途,我们必须设计替换算法规则的样式以最大化命中幅度关系。其次,映射执行的多才多艺,很多先进的是电子设备需要查看缓存以查看给定块是否在缓存内。

  4. 替换算法:
    替换算法规则每隔一段时间选择映射执行的约束,一旦替换块被加载到缓存中并且缓存已经具有充满替代块的所有插槽,则要交换哪个块。我们希望在不久的将来再次替换最不可能需要的块。虽然不可能发现这样的块,但一个相当有效的策略是交换在缓存中最长的没有相关性的块。

    由于最近最少使用 (LRU) 算法规则,因此使用此策略。发现最近最少使用的块所需的硬件机制平方

  5. 写策略:
    如果缓存平方度量内的块的内容发生更改,则必须在交换之前将其写回主内存。一旦发生内存写入操作,写入策略就会规定。在一种极端情况下,每当块更新时就会发生写入。

    在相反的极端情况下,只有在替换块时才会写入。后一种策略最大限度地减少了内存写入操作,但会使主内存处于相关的过时状态。这会干扰多处理器操作和 I/O 硬件模块的直接操作。