這是一個關於記憶的組織問題,我不得不非常難以理解,MIPS N路相連的高速緩存
假設我們有N路組相聯緩存,容量4096
字節。設置的地址字段大小爲7位,標記字段爲21位。如果我們假設 高速緩存與32位處理器一起使用,那麼塊大小是多少(在 字節中),高速緩存包含多少個有效位,以及高速緩存的相關性是多少?
這是一個關於記憶的組織問題,我不得不非常難以理解,MIPS N路相連的高速緩存
假設我們有N路組相聯緩存,容量4096
字節。設置的地址字段大小爲7位,標記字段爲21位。如果我們假設 高速緩存與32位處理器一起使用,那麼塊大小是多少(在 字節中),高速緩存包含多少個有效位,以及高速緩存的相關性是多少?
這裏有一些方程是很好的瞭解,爲了解決這些類型的問題。
參數知道
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
這給你的byte_offset
的tag_bits
和set_bits
。
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
所以,我們對處理器和緩存的以下信息 -
緩存大小= 4096乙
地址位= 32
指數位= 7個
標記位= 21
從上述信息可以快速計算偏移量字段所需的位數 -
偏移位=地址位 - 標籤位 - 索引位
偏移位= 32 - 21 - 7 = 4
偏移位= 4
使用偏移位,你可以找到塊大小,2 **偏移比特
塊大小= 16個字節
接下來的事情是緩存 的關聯性,我們知道,該索引位= 7。 這意味着我們有128塊。每個塊的寬度爲16個字節。
因此,方式在高速緩存中的數目將是 -
方式總數=緩存大小/(塊數*塊大小)
方式總數= 2 因此,相關性爲2
關於有效位的數量。每個塊都需要一個有效位。因此有效位的數目將是 -
有效位= 128 * 2
有效位= 256