2017-06-05 35 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