【问题标题】:Cache size and set associative mapping缓存大小和设置关联映射
【发布时间】:2015-03-09 15:16:31
【问题描述】:

考虑一台具有 256 KB 字节可寻址主内存和 8 字节块大小的机器。具有由 32 行组成的集合关联映射缓存,分为 2 行集合。

  1. 缓存中将存储多少字节?
  2. 主存地址有多少位?
  3. 如何划分主内存地址以提供映射到 缓存?
  4. 具有以下地址的字节将存储到哪个集合中 - 110101010101011010?

解释为什么会非常有帮助,因为我正在尝试了解如何解决这些问题以进一步理解。

【问题讨论】:

    标签: caching byte system memory-address


    【解决方案1】:

    在你回答之前,让我们看一些计算(见 log as log to base 2):

    i) 组数 = 32/2 =16。因此指向地址集所需的位数= log 16=4

    ii) 在一行内作为偏移量留出的位数= log 8 =3。 8 是这里的块或行大小。

    iii) RAM 中的块数 = 256KB /8 = 2^15

    1. 缓存最多可容纳 32 X 8 = 256 字节。(这与所使用的映射技术无关)
    2. 主内存地址必须是18位。(因为RAM的大小是256 X 8 = 2^18和log(2^18)= 18。
    3. 主内存实际上并没有被划分,尽管您可以将其视为逻辑上划分为 16(集数)由 2^11 行组成的不同区域每个,这样该区域中的每条线都将仅映射到特定集合中。 由于有 2^15 个块,将 2^15 除以 16 得到数字 2^11。
    4. 110101010101011010:在这个地址中先留出最后 3 位作为偏移量,接下来的 4 位是 1011,相当于十进制的 11。因此这将属于第 11 组

    【讨论】:

    • 标签、集合和单词格式是什么? @vivek
    • Tag-Set-Word 格式为 15-4-3。对于单词,3 非常简单,因为行大小是 8,我们需要 3 位来指定行内的单词。同样,集合的数量是 16,所以我们需要 4 位来指定集合。其余位构成标签。
    猜你喜欢
    • 2023-03-25
    • 2014-08-01
    • 2015-07-17
    • 2015-08-31
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多