1.用虚拟地址查快表:
if(命中),直接得到页框号;
else,查慢表,获得页框号。
页框号+页内偏移=物理地址。
2.用物理地址访问Cache
if(命中),直接得到数据
else,从主存中得到数据。
疑问:一个物理地址为什么在主存和Cache里可以指向同一份数据。
解答:问题的重点不是一个物理地址在主存和Cache里可以指向同一份数据。而是,该物理地址本身就是主存的地址,而我们只是通过不同的映射方式,将它"放"到Cache里罢了
当我们说一个物理地址在主存和Cache里可以指向同一份数据时,我们实际上是在描述Cache命中时的情况。在Cache命中时,CPU通过映射关系在Cache中找到了与主存地址相对应的数据,这时我们可以说该物理地址在主存和Cache里指向了同一份数据。但这只是结果,而不是问题的重点。