设有一个直接映像方式的Cache,其容量为8KB,每块的大小为16B,主存的容量为512KB,试回答以下问题:
问答题
主存有多少个块?分为多少个区?
【正确答案】正确答案:主存块大小与Cache中块大小相同,所以主存中的块个数=512KB/16B=215块,由于Cache的大小为8KB,所以主存分区个数=5 12KB/8KB=64个区。 提示:其实这里的区号就类似于教材中的tag —样。
【答案解析】
问答题
该Cache可容纳多少个块?Cache字地址有多少位?块号和块内地址各多少位?
【正确答案】正确答案:Cache中的块个数=8KB/16B=2
9
=512块。Cache大小为8KB=2
13
B,所以Cache地址为13位。由于块大小为16B,所以块内地址占4位,自然块号就占9位。
【答案解析】
问答题
主存字地址有多少位?区号、区内块号和块内地址各多少位?
【正确答案】正确答案:主存中有2
15
个块,所以块号为15位,而块内地址占4位,所以主存地址为15+4—19位,区内块号占9位。由于主存有64个区,所以需要6位来标记区号,如图6—11所示。

【答案解析】
问答题
主存中的第j块映像到Cache中哪一个块?
【正确答案】正确答案:由于每个区有512块,所以主存中第j块映射到Cache中的第jmod512块中。
【答案解析】
问答题
将主存中的第513块调入Cache,则Cache的块号为多少?它的区号为多少?
【正确答案】正确答案:i=jmod2
9
,j=513时,i=513mod2
9
=1,即第1号块。其区号=[513/2
9
]=1,即区号为1,如图6—11所示。
【答案解析】
问答题
在上一步的基础上,假设送出的主存地址为04011H,是否命中?
【正确答案】正确答案:主存地址为04011H=000 0100 0000 0001 000IB.按主存地址划分,其区号=000010B=2,而上一步从主存中读出的数据块在1号区,所以不命中。
【答案解析】