cache容量结构
cache容量结构=目录表+数据块
目录表=有效位+标记tag+一致性维护位(脏位)+替换算法控制位
标记位tag | cache行号 | 块内偏移 |
至于cache容量里为什么不包含cache行号,这个可以和内存地址类比理解:
假如内存容量64KB,内存地址16位,可表示0~65535的地址,也就是65536个数据单元(8bit);
cache行大小为64B,块数为8,则块内地址占6位,用3位来表示000~111的cache行,这里3位行号和内存中的16位地址一样,存在于其他硬件中,而不在cache的容量中计算。
一般目录表比较小,故而只计算cache中数据块的大小,即64B×8;
实际容量为 8×(64B+有效位+7(tag)+一致性维护位(脏位)+替换算法控制位)