Cache之直接映射
@(组成原理)
直接映射的再次理解:
首先,理清楚这种映射下的主存物理地址位数的分配。
核心目的:加快主存和CPU之间的交换,目的在快。区别于虚拟地址的目的是扩大容量以及逻辑上容易编写程序等。
主存地址分为两个大的部分:高m位和低b位。
高m位又分为最高的t位,称之为主存字块标记,和次低c位,称之为Cache字块地址。
对应的Cache的地址结构是:高t位和低b位。
有一个问题,Cache字块地址它自己是不管的对吗?主存知道但是Cache自己是不知道的。
从二者的最低位都是b位,我们知道,因为字块的大小一样,因此位数也是一样的。
主存地址中,可以根据中间的c位计算出共计有2^c块Cache块,当然也可以根据Cache的总容量与字块的大小自行计算。
情景:
因此,现在给你一个主存块,根据它的地址结构,让你帮它找一个可用的Cache块。
脑海中要有一个印象,Cache块是比较宝贵的。主存块能以进入到Cacahe块为荣。主存块数远远大于Cache块数的。
毕竟,物以稀为贵。
直接映射中,一个主存块只能对应到一个Cache块。
根据主存的地址,当前块映射到的Cache块,和2^c块之后的主存块映射的是同一个Cache块。
这里我们来推导一下Cache块号的计算方式:
设i是Cache块号,j是主存块号。i的范围当然就是 [0,