存在两种方法,一种是可以采用数学公式转换,另外一种就是用表格存储交换后的虚拟地址(MVA)对应的物理地址(PA),即页表,页表有一个个条目组成,每个条目存储了一段MVA对应的PA及其访问权限,或者下一级页表的地址。
采用页表转换过程大致如下:
1)根据给定的MVA找到一级页表的条目;
2)如果此条目是段描述符,则返回物理地址,转换结束;
3)如果此条目是二级页表描述否,继续利用MVA在此二级页表中找到下一个条目;
4)如果这第二个条目是页描述符,返回物理地址,转换结果;
5)其他情况出错;
注:
1)不同的进程对应的VA可能是相同的,它们可以根据其进程ID映射到不同的MVA上,这样在进程切换时,就不需要进行重建页表等高代价操作了;
2)在映射到物理地址过程中,需要用到页表基址寄存器,在段(1M)地址、大页(64K)地址、小页地址(4K)以及极小页(1K)地址转换到PA时都是必须用到的。
段地址转换过程如下:
1)页表基址寄存器[31:14]和MVA[31:20]组成一个低两位为0的32位地址,MMU利用这个地址找到段描述符;
2)取出段描述符的为[31:20],即段基址,它和MVA[19:0]组成了32位的物理地址,也就是MVA对应的PA。
阅读(958) | 评论(0) | 转发(0) |