2017-06-05 38 views
1

這是一個關於記憶的組織問題,我不得不非常難以理解,MIPS N路相連的高速緩存

假設我們有N路組相聯緩存,容量4096字節。設置的地址字段大小爲7位,標記字段爲21位。如果我們假設 高速緩存與32位處理器一起使用,那麼塊大小是多少(在 字節中),高速緩存包含多少個有效位,以及高速緩存的相關性是多少?

回答

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這給你的byte_offsettag_bitsset_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 
1

所以,我們對處理器和緩存的以下信息 -

緩存大小= 4096乙

地址位= 32

指數位= 7個

標記位= 21

從上述信息可以快速計算偏移量字段所需的位數 -

偏移位=地址位 - 標籤位 - 索引位

偏移位= 32 - 21 - 7 = 4

偏移位= 4

使用偏移位,你可以找到塊大小,2 **偏移比特

塊大小= 16個字節

接下來的事情是緩存 的關聯性,我們知道,該索引位= 7。 這意味着我們有128塊。每個塊的寬度爲16個字節。

因此,方式在高速緩存中的數目將是 -

方式總數=緩存大小/(塊數*塊大小)

方式總數= 2 因此,相關性爲2

關於有效位的數量。每個塊都需要一個有效位。因此有效位的數目將是 -

有效位= 128 * 2

有效位= 256