主存由2的n次方个可编址的字组成,每个字有唯一的n位地址
初学习Cache工作原理,对这句话不理解,就导致Cache-主存存储空间的基本结构也不明白,一个简单例子希望能让新手解惑。
回想MAR和MDR,我们知道如果有n条地址线,就会有2的n方个存储单元,例如4条MAR,则有0~15总共16个存储单元,并且地址是从0000~1111,同样可以用在主存这里,那么“主存由2的n次方个可编址的字组成,每个字有唯一的n位地址”这句话就不难理解。但m+b=n这块是经常容易忽视和对新手不友好的,题主就因此在Cache的地址映射摸索了许久(雾)
我们还是以4个字,可编址0~15总计16个字为例,如果我们将16个字分成了2块(上图中的M块),那么一块内就有8个字(B),则2块是由1位表示(m),8个字是由3位表示(b),这样n=m+b也就很清楚啦~