缓存寻址:索引长度,块偏移,字节偏移和标记?

Kat*_*aty 7 memory mips cpu-cache

假设我知道以下值:

W = Word length (= 32 bits)
S = Cache size in words
B = Block size in words
M = Main memory size in words
Run Code Online (Sandbox Code Playgroud)

如何计算需要多少位:

- Index
- Block offset
- Byte offset
- Tag
Run Code Online (Sandbox Code Playgroud)

a)在完全关联缓存中的直接映射缓存b)?

Cap*_*orn 16

地址可以分为以下几部分:

[ tag | index | block or line offset | byte offset ]
Run Code Online (Sandbox Code Playgroud)

字节偏移位数

0表示字可寻址存储器,log 2(每字字节数)表示字节可寻址存储器

块或行偏移位数

log 2(每行字数)

索引位数

log 2(CS),其中CS是缓存集的数量.

  • 对于完全关联,CS为1.由于log 2(1)为0,因此没有索引位.
  • 对于直接映射,CS等于CL,即高速缓存行的数量,因此索引位的数量是log 2(CS)=== log 2(CL).
  • 对于n路关联CS = CL÷n:log 2(CL÷n)索引位.

您可以通过将高速缓存大小除以块大小= S/B来计算已获得的高速缓存行数(假设它们都不包括标记和有效位的大小).

标记位数

地址长度减去用于偏移量和索引的位数.可以使用主存储器的大小来计算地址的长度,例如,如果它是字节可寻址存储器,则需要寻址任何字节.

资料来源:http://babbage.cs.qc.edu/courses/cs343/cache_parameters.xhtml