这是一个关于记忆的组织问题,我不得不非常难以理解,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