蓝盟IT小贴士,来喽!
从图中可以看出,CPU、MMU、DDR这三个部分是如何分布在硬件上的。 首先,CPU访问存储器时,需要通过MMU将虚拟地址转换为物理地址,通过总线访问存储器。 在MMU导通后CPU看到的地址全部是虚拟地址,在CPU将该虚拟地址发送到MMU后,MMU通过页面表检测与该虚拟地址对应的物理地址是什么,访问外部的DDR (内存条)。
通过理解MMU将虚拟地址转换为物理地址的方法,能够理解CPU经由MMU访问存储器的方法。
MMU通过页表将虚拟地址变换为物理地址,页表是特殊的数据结构,将逻辑页与物理页帧的对应关系存储在系统空间的页表区域中,按照每个过程具有独自的页表。
CPU访问的虚拟地址分为用作页表索引的p (页码) d (页偏移),该页内的地址偏移。 其中,如果各页的大小为4KB,页表只有1段,则页表如下生长(页表的各行为32比特,前20比特为页编号p,下一个12比特为页偏移d )。
页表包括对每个页存在的物理存储器的基地址,这些基地址和页偏移的组合形成物理地址,能够被发送到物理单元。