关于本节计算问题的详解:Cache主存地址映射(计算题)

 

 

 

《计算机组成原理》(第二版)唐朔飞编著   

课后题 4.8

设主存容量为256K字,Cache容量为2K字,块长为4。

  • (1)设计Cache地址格式,Cache中可装入多少块数据?
  • (2)在直接映射方式下,设计主存地址格式。
  • (3)在四路组相联映射方式下,设计主存地址格式。
  • (4)在全相联映射方式下,设计主存地址格式。
  • (5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。

解:

(1)根据题意,我们可以知道是按字编址,cache容量2K字,块长为4,故cache可以被分为2K/4块=2^9块

cache地址格式就是c和b

(2)求t、c、b

首先cache容量2K字,故cache地址长度为11位,又因为cache可以被分为2^9块,c=9

 主存容量256K字,故主存地址长度为18位(2^18),则总长18位。18 -11 = 7,故 t =7

又因为主存可以被分为256K/4=2^16块,故m=16。 (也可以直接用 m = t + c 得出m的值)

再用总长18 - m = b,可得b=2。地址格式如下:

(3)四路组相联  故r=2

s = t + r = 9          q = c - r = 7

(4)全相联映射

m和b都知道了,直接写

(5)存储字长为32位,存储器按字节寻址

那么主存地址容量为256K*32位,按字节寻址 ,故主存地址长度为20((256K*32)/8=2^20)

同理,cache容量为2K*32位,故cache地址长度为13((2K*32)/8=2^13)

20 - 13 = 7  故 t = 7

块长之前是4个字,也就是4*32位=128=16个字节  也就是块长为16,故b=4(16=2^4)

cache可以被分为(2^13/16=2^9)块,故 c = 9 

然后m=16(可以用 t + c 得到,也可以用 主存地址长度 - b 得到)

t、c、b、m都算出来了,剩下的就直接写

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐