假设我知道以下数值:
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)在完全关联缓存中?
答案 0 :(得分:14)
地址可分为以下部分:
[ tag | index | block or line offset | byte offset ]
0,对于字节可寻址存储器,log 2 (每字字节数)
log 2 (每行字数)
log 2 (CS),其中CS是缓存集的数量。
通过将缓存大小除以块大小= S / B(假设它们都不包括标记和有效位的大小),可以计算出已经有多少缓存行。
地址长度减去用于偏移量和索引的位数。可以使用主存储器的大小来计算地址的长度,例如,如果是字节可寻址存储器,则需要寻址任何字节。
来源:http://babbage.cs.qc.edu/courses/cs343/cache_parameters.xhtml