假定某计算机主存地址空间大小为1GB,按字节编址,cache的数据区(即不包括标记、有效位等)有64KB,块大小为128字节,采用直接映射和直写(writethrough)方式。请问:(1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。(2)cache的总容量为多少位?
假定某计算机主存地址空间大小为1GB,按字节编址,cache的数据区(即不包括标记、有效位等)有64KB,块大小为128字节,采用直接映射和直写(writethrough)方式。请问:(1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。(2)cache的总容量为多少位?
【正确答案】:
(1)主存空间大小为1GB,按字节编址,说明主存地址为30位。 cache共有64KB/128B=512ZIKAo行,因此,行索引(行号)为9位;块大小128字节,说明块内地址为7位。因此,30位主存地址中,高14位为标志(Tag);中间9位为行索引;低7位为块内地址。
(2)因为采用直接映射,所以cache中无需替换控制位,直写方式下也无需修改( dirty)位,而标志位和有效位总是必须有的,所以, cache总容量为512×(1288+14+1)=519.5K位。
Top