假设我知道以下值:
W = Word length (= 32 bits)
S = Cache size in words
B = Block size in words
M = Main memory size in words
如何计算需要多少位:
- Index
- Block offset
- Byte offset
- Tag
a) 在直接映射缓存中 b) 在全关联缓存中?
地址可以分为以下几部分:
[ tag | index | block or line offset | byte offset ]
0 用于字可寻址存储器,log 2(每字字节数)用于字节可寻址存储器
日志2(每行字数)
log 2 (CS),其中 CS 是缓存集的数量。
可以通过将缓存大小除以块大小 = S/B 来计算您拥有多少缓存行(假设它们都不包括标记和有效位的大小)。
地址长度减去用于偏移量和索引的位数。地址的长度可以使用主存储器的大小来计算,例如,如果它是字节可寻址存储器,则需要寻址任何字节。
来源:http ://babbage.cs.qc.edu/courses/cs343/cache_parameters.xhtml