王道p137 12题
首先我们需要知道直接映射法如何划分地址位数的。
直接映射法将总地址位数分为三部分 1.标记 2.行号 3.块内地址。
这道题该怎么做呢?我们首先可以得到的就是块内地址的位数:
我们先求出一行(块)的大小:4*32/8 其中4是代表4个字,32是一个字的长度。除8是因为要后面按字节编址此处好看。即16B,16B因为按字节编址所以需要用 log2(16)的位数来表示快内的偏移量。即我们要用四位来表示 块内偏移 。
第二步:我们要求出行号可以易得:能存放4k字数据的cache应当有 4k字/4字 个块。即1k块,即10位数据。即最后32-10-4+1(有效位)+1(脏位)= 20位,20*1k(此处为块数)=20k即为数据的控制cache长度,再加上4*32*1k的数据cache即为总的cache数!