首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对页表中有效/无效位的硬件支持

对页表中有效/无效位的硬件支持
EN

Stack Overflow用户
提问于 2021-10-16 21:12:22
回答 1查看 160关注 0票数 0

在阅读有关需求分页的文章时,我可以在几个源(例如http://www.expertsmind.com/questions/name-the-hardware-to-support-demand-paging-30176232.aspx)中看到,我们需要硬件支持页面表中每个条目的有效/无效位。然而,我无法理解硬件支持会是什么样子。根据我的理解,

  1. 页面表本身是一种基于软件的构造,即它有4字节/8字节(取决于寻址方案/体系结构等)条目存在于内存中。
  2. 有效/无效位与页表每个条目所使用的4字节/8字节是分开的,因此它不像一个页表条目的4字节之外,我们使用31位存储帧号,使用1位存储有效/无效位。

总之,我的问题是-对有效/无效位的硬件支持是什么样子的?如果它可以在不同的实现/体系结构中有所不同,您能分享任何特定实现的细节吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-17 03:24:42

  1. 页面表本身是一个基于软件的构造,即它有4字节/8字节(取决于寻址方案/体系结构等)项,这些条目存在于RAM.

中。

这是可能的,对于一些罕见的CPU来说也是如此(当它们得到“TLB/TransformingLovel-居边缓冲区缺失”时,只会要求操作系统进行翻译)。

但是,对于大多数CPU来说,页面表是CPU本身直接使用的数据结构,而软件(内核)必须以CPU理解的格式提供数据。在这些情况下,CPU所需的页表输入格式通常具有用于各种用途的多个位,包括“有效/无效”(和“访问/未访问”,以及读/写/可执行权限,以及用户/主管权限,和.)。

  1. 有效/无效位与页表每个条目使用的4字节/8字节是分开的,因此它不像一个页表条目的4字节之外,我们使用31位存储帧号,使用1位存储有效/无效位。

页表条目(当有效时)不需要存储整个物理地址,因为页面的地址必须与页的开始对齐(因此最低位可以假定为零而不是存储)。例如,如果页面是4 KiB ( 12位用于“页面偏移”),物理地址是32位;那么页面表条目中的物理地址只需要20位(物理地址的最低12位可以“假定为零”),对于32位页表条目,这12位可以用于其他事情(“有效/无效”,.)。

也有一些“不那么常规”的格式,其中一些最高位被重新定位为其他事情。例如,您可能有64位的页表条目,其中最高的4位用于其他事物,而中间的48位用于物理地址(没有“假定的零”低位),然后最低的12位用于其他事情。

总之,我的问题是:对有效/无效位的硬件支持是什么样子的?

因为对于不同类型的CPU,它是不同的;查找页表条目格式/s的最佳位置是CPU制造商的手册。您可以在图中找到一个常见的示例(32位80x86):https://wiki.osdev.org/Paging#Page_Table

注意,Intel称它为“存在/不存在”标志(标签为P),它是页面表条目中的最低位。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69599586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档