文章目录
-
-
- 1、物理寻址
- 2、虚拟寻址
- 参考
-
1、物理寻址
-
物理地址
主存是一个有M个连续的字节大小的单位组成的数组。每个字节都有自己对应的一个地址,就是物理地址。物理地址大小就是实际的主存的大小。比如,通常说的4G内存,就是指内存大小就是4GB,其物理地址是32位。
-
物理寻址
就是CPU使用物理地址直接到主存中找对应的数据。(如下图)
2、虚拟寻址
-
虚拟地址
虚拟内存是一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。每个字节都有一个唯一的地址,就是虚拟地址。通常,虚拟地址由页号和偏移量组成,页号就是抽象的虚拟页的编号,偏移量用于计算实际的物理地址。
-
虚拟地址和物理地址的关系
进程虽然使用虚拟地址,但是用数据时还是要到实际的物理地址去取数据。这就存在一个虚拟地址到物理地址的转化运算,这是由CPU芯片上一个叫做内存管理单元(MMU)的专用硬件来实现的。
通常,物理地址=页号*页大小+页内偏移量。
-
虚拟寻址
CPU通过虚拟地址来访问主存,访问内存使用的物理地址,MMU通过将虚拟地址进行翻译,转化为物理地址,然后再用这个物理地址去访问内存数据。(如下图)
参考
《深入理解计算机系统》第9章.虚拟内存