假定主存地址位数为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,写操作时采用回写 (Write Back) 方式,则能存放4K字数据的Cache的总容量的位数至少是( )。
A. 146K
B. 147K
C. 148K
D. 158K
直接映射的地址结构为:按字节编址,块大小为4×32bit=16B=2^4B,则“字块内地址”占4位;
“能存放4K字数据的Cache”即Cache的存储容量为4K字(注意单位),则Cache共有1K=2^10个Cache行,则Cache字块标记占10位;
则主存字块标记占32-10-4=18位。
Cache的总容量包括:存储容量和标记阵列容量(有效位、标记位、一致性维护位和替换算法控制位)。标记阵列中的有效位和标记位是一定有的,而一致性维护位(脏位)和替换算法控制位的取舍标准是看题眼,题目中,明确说明了采用写回法,则一定包含一致性维护位,而关于替换算法的词眼题目中未提及,所以不予考虑。从而每个Cache行标记项包含18+1+1=20位,
则标记阵列容量为:2^10*20位=20K位,
存储容量为:4K*32位=128K位,
则总容量为:128K+20K=148K位。
Cache 共有 4K 字 / 4 字 = 1K 行,故行号占 10 位;
每个主存块为 4 字 = 4 × 32 / 8 B = 16B(即2^4),故块内地址占4位;
因此,标志占 32 - 10 - 4 = 18 位。
直接映射方式无需考虑替换算法,故没有替换信息;
回写方式需 1 位修改位(dirty bit)。
因而 Cache 总容量为 1K × (1 + 1 + 18 + 4 × 32) = 148K 位。
直接映射方式的格式为 &...
用户登录可进行刷题及查看答案
直接映射方式的格式为 。
因为主存块大小为4个字,每字32位,所以块大小为4×32bit=16B= B。计算机字节编址,所以块内地址占4位。
因为Cache能存放4K字数据,块大小为4个字,所以Cache行数为4K/4=1K= ,行号占10位。
因为主存地址位数为32位,块内地址占4位,行号占10位,所以主存字块标记占32-4-10=18位。
写操作时采用回写 (Write Back) 方式,标记位包含1位脏位,还有18位主存字块标记位和1位有效位。每行标记占18+1+1=20位,每行数据占4个字,每字32位,即4×32=128位。
Cache的总容量=(每行标记位数+每行数据位数)×行数=(20+128)×1K=148K。
本题选C。
登录后提交答案