【问题标题】:MIPS N-way associative cacheMIPS N 路关联缓存
【发布时间】:2017-06-05 09:56:09
【问题描述】:

这是一个我一直很难理解的关于记忆组织的问题,

假设我们有一个容量为4096bytes 的 N 路组关联缓存。这 地址的设置字段大小为 7 位,标签字段大小为 21 位。如果我们假设 缓存与 32 位处理器一起使用,那么块大小是多少(在 字节),缓存包含多少有效位,以及什么是关联性 缓存?

【问题讨论】:

    标签: caching memory mips memory-mapping


    【解决方案1】:

    为了解决这类问题,需要了解一些方程式。

    要知道的参数

    C = cache capacity
    b = block size
    B = number of blocks
    N = degree of associativity
    S = number of set
    tag_bits
    set_bits (also called index)
    byte_offset
    v = valid bits
    

    要知道的方程式

    B = C/b
    S = B/N
    b = 2^(byte_offset)
    S = 2^(set_bits)
    

    内存地址

    |___tag________|____set___|___byte offset_|
    

    现在回答问题

    已知

    C = 4096 bytes
    set_bits = 7
    tag_bits = 21
    32 bits address field
    

    问:

    b?
    N?
    v?
    

    只需从32 bit field 中减去tag_bitsset_bits,即可得到byte_offset

    byte_offset = 32-21-7 = 4 bits
    
    b = 2^4 = 16 bytes
    S = 2^7 = 128 set
    B = C/b = 4096/16 = 256
    N = B/S = 256/128 = 2
    v = B = 256 valid bits
    

    【讨论】:

      【解决方案2】:

      所以,我们有以下关于处理器和缓存的信息 -

      缓存大小 = 4096 B

      地址位 = 32

      索引位 = 7

      标记位 = 21

      从以上信息可以快速计算出偏移字段所需的位数——

      偏移位 = 地址位 - 标记位 - 索引位

      偏移位 = 32 - 21 - 7 = 4

      偏移位 = 4

      使用偏移位,可以求出块大小,2**偏移位

      块大小 = 16 字节

      接下来是缓存的关联性 我们知道索引位 = 7。 这意味着我们有 128 个区块。每个块为 16 字节宽。

      因此,缓存中的路数将是 -

      方式数=缓存大小/(块数*块大小)

      路数 = 2 因此关联性为 2。

      关于有效位数。每个块都需要一个有效位。因此有效位数将是 -

      有效位数 = 128*2

      有效位 = 256

      【讨论】:

        猜你喜欢
        • 2018-06-13
        • 1970-01-01
        • 2017-02-13
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        • 2016-03-22
        • 2015-01-10
        • 2012-02-25
        相关资源
        最近更新 更多