假定主存地址为32 位,按字节编址,主存和 Cache 之间采用直接映射方式,主存块大小为 4 个字,每字 32 位,采用回写(Write Back)方式,则能存放 4K 字数据的 Cache 的总容量的位数至少 是()。
直接映射的地址结构为:
主存字块标记 | Cache 字块标记 | 字块内地址 |
按字节编址,块大小为 4 × 32bit=16B=24B ,则“字块内地址”占 4 位;“能存放 4K 字数据的Cache ”即 Cache 的存储容量为 4K 字(注意单位),则 Cache 共有 1K=210 个 Cache 行,则Cache 字块标记占 10 位;则主存字块标记占 32 - 10 - 4=18 位。
Cache 的总容量包括:存储容量和标记阵列容量(有效位、标记位、一致性维护位和替换算法控制位)。标记阵列中的有效位和标记位是一定有的,而一致性维护位(脏位)和替换算法控制位的取舍标准是看题眼,题目中,明确说明了采用写回法,则一定包含一致性维护位,而关于替换算法的词眼题目中未提及,所以不予考虑。
从而每个 Cache 行标记项包含 18+1+1=20 位,则标记阵列容量为: 210*20 位 =20K 位,存储容量为: 4K*32 位 =128K 位,则总容量为: 128K+20K=148K 位。
直接映射的地址结构为:
主存字块标记
Cache 字块标记
字块内地址
按字节编址,块大小为 4 × 32bit=16B=24B ,则“字块内地址”占 4 位;“能存放 4K 字数据的 Cache ”即 Cache 的存储容量为 4K 字(注意单位),则 Cache 共有 1K=210 个 Cache 行,则 Cache 字块标记占 10 位;则主存字块标记占 32 - 10 - 4=18 位。
Cache 的总容量包括:存储容量和标记阵列容量(有效位、标记位、一致性维护位和替换算法控制位)。标记阵列中的有效位和标记位是一定有的,而一致性维护位(脏位)和替换算法控制位的取舍标准是看题眼,题目中,明确说明了采用写回法,则一定包含一致性维护位,而关于替换算法的词眼题目中未提及,所以不予考虑。
从而每个 Cache 行标记项包含 18+1+1=20 位,则标记阵列容量为: 210*20 位 =20K 位,存储容量为: 4K*32 位 =128K 位,则总容量为: 128K+20K=148K 位。(来自王道论坛)