问答题 设有一个直接映像方式的Cache,其容量为8KB,每块内有16B,主存的容量是512KB,求:
问答题 主存有多少个块?有多少个区?
【正确答案】
【答案解析】根据图1和图2和已知条件:
主存有512K÷16=512×1024÷16=32768(个块),有512K÷8K=64(个区)。
问答题 该Cache可容纳多少个块?Cache字地址有多少位?块号和块内地址各多少位?
【正确答案】
【答案解析】Cache中有8192÷16=512(块),8192=2 13 ,Cache的字地址为13位,512=2 9 ,16=2 4 ,即块号和块内地址分别为9位和4位。
问答题 主存的字地址有多少位?区号、区内块号和块内地址各多少位?
【正确答案】
【答案解析】主存有32768块×16字/块=2 19 个字,即字地址为19位。主存储器的字地址分成三段:区号、区内块号、块内字地址。区号的长度为19-13=6(位),块号为9位,块内字地址为4位。如图1所示。

图1

19位字地址:40111H=000 0100 0000 0001 0001B
问答题 主存中的第i块映射到Cache的哪一块中?
【正确答案】
【答案解析】主存中的第i块映像到Cache中第i mod 2 9 个块中。
问答题 将主存的第513块调入Cache,则Cache的块号为多少?它的区号标志为多少?
【正确答案】
【答案解析】如图2所示,根据j=i mod 2 9 ,Cache块号=513 mod 2 9 =1,即第1号块。
根据k=[i/29],区号=[513/29]=1,所以为第1区,即区号标志为000001 B。
问答题 在上一步的基础上,送出的主存的字地址为04011H时是否命中?
【正确答案】
【答案解析】19位主存字地址为04011H=000 0100 0000 0001 0001 B,按此主存的块号为地址读出的主存区号标志000001≠000010(当前主存区号),故不命中(分析可知,主存块地址为0401H=1025D,区号=1025/512=2,即第2区的第1块,而上一步存入Cache的为第1区第1块,自然就不会命中)。