gpt4 book ai didi

caching - 直接映射缓存

转载 作者:行者123 更新时间:2023-12-02 07:13:15 26 4
gpt4 key购买 nike

直接映射缓存由 16 个 block 组成。主存储器包含 16K 个 block ,每个 block 8 个字节。主内存地址格式是什么(意思是每个字段的大小)。

我知道字段是 Tag|Block|Offset 。我只是不知道如何获得每个的大小。

最佳答案

这是作业吗?

为了解决这个问题,您需要知道相关架构的地址大小。通用解决方案:

令 C 为以位为单位的缓存大小。
令 A 为地址的位大小。
令 B 为高速缓存 block 的大小(以位为单位)。
令 S 为缓存的关联性(在某些方面,直接映射为 S=1,完全关联为 S=C/B)

L,缓存中的行数,等于C/B。这是缓存位数除以每行位数。Q,缓存中集合的数量,等于L/S。这是行数除以关联性。这条线和上面的原因应该很明显;如果不是,请在阅读以下内容之前再次点击教科书。

现在,让我们算出三件事:位移位、 block 位和标记位。

位移位用于在缓存行中查找特定项目。假设字节可寻址存储器 D,即位移位数,是 ceil(log2(ceil(B/8)))。这是缓存行中字节数的两个基数,在每个步骤中四舍五入。如果内存是双字节可寻址的,则内部部分将是 B/16 等。

block 位是为了在缓存中找到我们想要的缓存集。因此, block 位的数量O是ceil(log2(Q))。这是缓存中集合数量的对数基数 2。

标签位是剩下的任何东西。因此,标记位的数量 T 是 A-D-O。在英语中,地址中的位数减去用于其他两个部分的位数。我们不必在这里考虑结合性,因为我们已经在上面使用 Q 而不是 L 来处理它。

总结:

  • 位移位与您在一行中指定特定字节所需的一样多
  • block 位与您在缓存中指定特定集合所需的一样多
  • 标记位是剩余的任何位

最后计算标签长度。这绝对更容易。

附言- 请注意,实际上,缓存还会在每一行中存储一个脏位和一些其他元数据。然而,这些问题通常会忽略诸如此类的事情,所以我也这样做了。

关于caching - 直接映射缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3604962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com