关于本节计算问题的详解: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都算出来了,剩下的就直接写