页面寄存器能装下页表这么大的对象吗?

cysccnu 2013-11-17 01:34:48
《现代操作系统》上说“进程在切换时必须把新进程的页表装入页面寄存器中,页面越小意味着装入页面寄存器的时间就会越长”。从这段话看不是把页表的首地址装入页面寄存器,而是把整个页表装入一个专用的寄存器。我的问题是有那么大的寄存器用来装入一个进程的页表吗?因为32位机器的寄存器的大小是32位的,即使把寄存器都用上也不够,怎么可能用来装入一个有可能达到几兆大小的进程页表呢?谢过先。。。
...全文
803 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YTerrenceLau 2014-02-12
  • 打赏
  • 举报
回复
严格来说,我说的也不完全正确,根本原因是现代处理器的各个体系结构之间差别太大。 我说的有条件的成立是,在x86处理器和arm处理器中,这两个体系结构MMU的TLB是硬件自动填充, 进程切换可以直接将页目录的指针load到特定的一个页面管理寄存器中,x86上是CR3,arm上是TTBR。 而对于MIPS和PPC来说,是软件维护TLB,根本不存在所谓的页面寄存器。 我们现在反观楼主的帖子,毫无疑问,书上说的“新进程的页表装入页面寄存器中”,这本身就很难理解, 也有可能是翻译的问题,页面寄存器到底指页目录指针寄存器还是TLB?如果单纯从这句话中理解,仅仅是个寄存器。 但联系后面一句,有可能是TLB,但显然将TLB称之为寄存器并不恰当。
inurlcn 2014-02-12
  • 打赏
  • 举报
回复
楼上是真的吗?
YTerrenceLau 2013-11-18
  • 打赏
  • 举报
回复
"页表的首地址装入页面寄存器",其余的都是不确切的。

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧