我知道(对于英特尔)虚拟地址转换过程是:
1.传入的虚拟地址分为页表号、页码和偏移量。
2. CPU中的进程解写基寄存器(PDBR)指示目录从何处开始。
3.页面表号乘以4作为偏移量进入目录,并查找目录条目。
4.目录条目包含页表的地址、有效性和保护信息。如果这些信息显示页面表不在内存中,或者保护不正常,则转换停止并引发异常。
5.页号乘以4作为页面表中的偏移量,并查找页面表条目。
6.页表条目包含页的地址、有效性和保护信息。如果这些信息显示页面不在内存中,或者保护不正常,则转换停止并引发异常。
7.偏移量用作页面的索引。
8.数据在最终到达的地址。
对于步骤6来说,这一切都是有意义的,因为表条目格式只为物理页帧地址指定了20位,这意味着它只能访问1MB的,还是移动了12位(乘以4096:页面大小)才能访问4千兆字节。
发布于 2012-04-06 04:41:40
这是32位的翻译过程.每个页面表条目为32位,但低12位用于标记。上面的20位是页面地址。
https://stackoverflow.com/questions/10039040
复制相似问题