在分段操作系统中提供用于页面转换的预转换段的设备和方法技术方案

技术编号:2860545 阅读:437 留言:0更新日期:2012-04-11 18:40
本申请涉及在分段操作系统中提供用于页面转换的预转换段的设备和方法。具体地,提供了一种产生用在虚拟到真实地址转换中的预转换段的机制,其中,被确定为满足一个密度阈值的段被提升到预转换的段的类别。与这些段相关联的页面被移动到存储器的一个连续部分,并更新对应于所述段的段表条目,以将该段指示为预转换段,并包括存储器的所述连续部分的真实基地址。在一个实施例中,当移动每一个页面时,更新其页表条目以指向该页的新位置,使得在将所述段提升为预转换段的期间该页仍能被访问。这样,可以通过将所述真实段基地址、页标识符以及页面中的字节偏移连接起来进行虚拟到真实地址的转换。

【技术实现步骤摘要】

本专利技术总体上涉及用于访问计算机存储器的部分的地址转换。具体地,本专利技术涉及通过提供用于页面转换的预转换段绕过已知的地址转换系统的转换后备缓冲区(TLB)分级结构的机制。
技术介绍
随着现代计算设备中更快的处理器和大量的存储器的出现,应用程序开始使用更大的工作集合,也就是,更大量的数据和指令需要被装入系统存储器。更快的处理器能够支持更高级的多路编程,这接下来又导致累积工作集合大小的增加。无论现代计算设备中的物理存储器有什么巨大的增长,存储器地址映射机制的大小,例如转换后备缓冲器(TLB)的大小,都没有多大增加,这是由于硬件成本和其它的约束。转换后备缓冲器(TLB)是处理器中的一个表,其包含存储器的最近被访问的页面的虚拟地址和真实地址之间的交叉引用(相互对照)。TLB的功能就象主存储器中最近被访问的页的一个“热表”或者说快速查找索引。当出现高速缓存遗漏(差错)时,数据必须从虚拟存储器中的地址被取出。该虚拟存储器地址必须被转换为真实存储器地址,或者说物理地址。如果所需页面的真实存储器地址不在TLB中,则当用其它手段确定真实地址时导致进一步的延迟。因为TLB的大小没有随着物理存储器的大小的增加而增加,现代计算设备中的TLB的范围不足以支持大的工作集合。结果,随着工作集合的变大,TLB遗漏率上升。另外,大的工作集合还导致大的页面表占用区域(footprint)。这使得要满足TLB遗漏所需的页面表条目越来越没有可能在最靠近处理器的高速缓存级别中找到。从而,满足TLB遗漏所花的时间量也增加。对于大存储器的机器来说,TLB遗漏已经成为关键的性能瓶颈。对TLB等待时间问题提出的解决方案包括增加存储器的页面的大小,例如超页面(superpage),并提供对多页面大小的支持。超页面是被设计为减少转换后备缓冲区(TLB)的数量和映射存储器所需的页面表条目的机制。超页面是用来增加由每一个页面表条目映射的存储器的大的虚拟页面。超页面增加TLB相对覆盖范围,减少TLB遗漏的数量,需要昂贵的(缓慢)的地址转换。当需要映射大的对象时,超页面是有用的,但是不适用于所有应用。如果应用不要求映射大的对象,则超页面的使用会导致可观的内部碎片化,而不会显著减少转换条目的数量。对多页面大小(包括超页面)提供额外的支持要求对操作系统进行大量的修改,这会对转换机制引入额外的开销。因此,最好有一种改进的机制来执行虚拟地址到真实地址的转换,减少大存储器系统的页面表所需的大小,同时使执行这样的转换的开销最小化。
技术实现思路
本专利技术提供了一种产生用在虚拟到真实地址转换中的预转换段的机制。使用这种机制,被确定为满足一个密度阈值的段被提升到预转换的段的类别。与这些段相关联的页面被移动到存储器的物理上连续的部分,并更新对应于所述段的段表条目,以将该段指示为预转换段,并包括存储器的所述连续部分的真实基地址。这样,为了执行虚拟到真实地址的转换,所要做的只是将所述真实段基地址、页标识符以及页面中的字节偏移连接起来。当解析该地址时,页标识符提供到存储器的连续部分的偏移,从而标识页面的基本地址,页面中的字节偏移提供了页面中从页面的基本地址的偏移。结果,可以仅根据真实段基地址、页标识符和页面中的字节偏移来标识存储器位置,没有必要使用转换后备缓冲区和页面表分级结构来解决虚拟到真实地址的转换。除了上述之外,本专利技术另外的方面提供一种用于预转换段的“懒惰”提升机制。也就是,对于被示为提升到预转换段的标准的段,这样进行提升,使得段内的页面在提升阶段是可访问的。使用本专利技术,当一个段满足提升标准时,将一个提升请求置于专用内核进程的队列中。当队列中有一个请求时所述专用内核进程被唤醒,并按如下方式处理所述请求。首先,所述内核进程判断是否存在大小足以存储所述段的存储器的连续部分。如果没有,则延迟该请求的处理,直到存在足够大小的连续存储器部分可用。如果存在大小足以存储所述段的存储器的连续部分,则将所述段的页面一次一个地拷贝到该存储器的连续部分。当拷贝每一个页面时,其对应的页面表条目被更新到该页的新存储器位置的点。这样,在提升阶段使得页面可访问。当所有页面都被拷贝到存储器的连续部分时,该段的段表条目被更新为包括所述存储器连续部分的真实基地址,并设置预转换段标记字段。之后,可以使用所述段表条目解决对所述段中的页面的访问,而不用必须在页面表或者转换后备缓冲器中进行查找。阅读下面对优选实施例的详细说明后,本领域的普通技术人员会明了本专利技术的上述以及其它特征和优点。附图说明在所附的权利要求中说明了据认为是本专利技术的特征的新颖特征。但是,本专利技术本身以及其优选的使用方式,以及其目的和优点,可以结合下面对说明性实施例的详细说明以及附图得到最好的理解。附图中图1是可以实现本专利技术的计算设备的举例的框图;图2是一个示意图,用于说明一种现有技术的方法,用于将虚拟地址转换为用于访问物理存储器中的指令/数据的物理地址;图3图解了对可变大小数据块的分段虚拟地址映射的传统形式;图4图示了本专利技术的用于预转换段的虚拟到真实地址转换机制的举例的概要图;图5图示了根据本专利技术的一个实施例,用于将一个段提升为预转换段的处理的一个例子;图6的流程图概要图示了根据本专利技术的一个实施例,用于将一个段提升为预转换段的举例的操作;图7的流程图概要图示了当进行虚拟到真实地址转换时,本专利技术的举例的操作;图8示意示了根据本专利技术的一个实施例,用于预转换段的“懒惰”段提升机制的一个例子;图9的流程图概要图示了当对预转换段进行“懒惰”段提升时,本专利技术的举例的操作。具体实施例方式本专利技术提供了用于产生预转换段,以绕过用于页表转换的转换后备缓冲器分级结构的设备和方法。因而,本专利技术在计算设备,比如独立的计算设备、客户计算设备、服务器计算设备等中实现。图1是可以实现本专利技术的计算设备的一个例子。当然,对图1的举例的计算设备所示的结构可以进行许多修改而不脱离本专利技术的实质范围,图1不是要对可以实现本专利技术的计算设备的类型进行任何限制。见图1,根据本专利技术的一个实施例,图示了可以实现本专利技术的数据处理系统的框图。数据处理系统100可以是包括连接到系统总线106的多个处理器102和104的对称多处理器(SMP)系统。或者,也可以使用单处理器系统。连接到系统总线106的还有存储器控制器/高速缓存108,以提供到本地存储器109的接口。I/O总线桥110连接到系统总线206,提供到I/O总线112的接口。存储器控制器/高速缓存108和I/O总线桥110也可以如图所示集成在一起。存储器控制器/高速缓存108最好包括虚拟到真实地址转换模块150,其目的是将一个或者多个处理器102、104提供的虚拟地址转换为用于访问本地存储器109中的存储器位置的真实地址,或者说物理地址。虚拟到真实地址转换模块150可以利用本地存储器109中的段表160和页表170进行该虚拟到真实地址转换,如后所述。连接到I/O总线112的外设部件互连(PCI)总线桥114提供到PCI本地总线116的接口。可以向PCI本地总线116连接许多调制解调器。典型的PCI总线应用支持四个PCI扩展槽或者内装连接器。可以通过经由内装连接器连接到PCI本地总线116的调制解调器118和网络适配器120提供到其它计算设备的通信链接。另本文档来自技高网
...

【技术保护点】
在数据处理设备中进行虚拟到真实地址转换的方法,包括:接收用于访问存储器的一个位置的虚拟地址,其中该虚拟地址包括一个段标识符;根据该段标识符进行段表查找,找出一个段表条目;根据所述段表条目判断该段是否是一个预转换段;   如果所述段是一个预转换段,则根据在所述段表条目中所标识的真实段基地址产生用于访问对应于所述虚拟地址的存储器位置的真实地址。

【技术特征摘要】
US 2004-2-19 10/782,6761.在数据处理设备中进行虚拟到真实地址转换的方法,包括接收用于访问存储器的一个位置的虚拟地址,其中该虚拟地址包括一个段标识符;根据该段标识符进行段表查找,找出一个段表条目;根据所述段表条目判断该段是否是一个预转换段;如果所述段是一个预转换段,则根据在所述段表条目中所标识的真实段基地址产生用于访问对应于所述虚拟地址的存储器位置的真实地址。2.如权利要求1所述的方法,其中,如果所述段不是一个预转换段,则该方法还包括在转换后备缓冲器和页表中的至少一个中查找所述虚拟地址,从而产生一个用于访问对应于所述虚拟地址的存储器位置的真实地址。3.如权利要求1所述的方法,其中,根据所述段表条目判断所述段是否是预转换段的步骤包括判断所述段表条目中的一个预转换段标记字段是否具有表示所述段为预转换段的特定值。4.如权利要求1所述的方法,其中,根据所述段表条目判断所述段是否是预转换段的步骤包括判断真实段基地址字段中是否存储有一个真实基地址。5.如权利要求1所述的方法,其中,根据所述真实段基地址产生用于访问对应于所述虚拟地址的存储器位置的真实地址的步骤包括将所述段的段表条目中标识的真实段基地址、所述段内的一个页面的页标识符以及所述页面中的字节偏移拼接起来。6.如权利要求5所述的方法,其中,所述真实段基地址和所述页标识符的拼接由转换硬件中的第一加法器完成,其中,所述真实段基地址和所述页标识符的拼接结果与所述页面中的字节偏移的拼接由转换硬件中的第二加法器完成。7.如权利要求1所述的方法,其中,如果所述段可以被整体访问,则所述段为预转换段。8.如权利要求1所述的方法,其中,如果所述段的密度大于一个可调的阈值密度,则该段是预转换段。9.在数据处理设备中进行虚拟到真实地址转换的计算机可读介质中的计算机程序产品,包括第一指令,用于接收用于访问存储器的一个位置的虚拟地址,其中该虚拟地址包括一个段标识符;第二指令,用于根据该段标识符进行段表查找,找出一个段表条目;第三指令,用于根据所述段表条目判断该段是否是一个预转换段;第四指令,用于如果所述段是一个预转换段,则根据在所述段表条目中所标识的真实段基地址产生用于访问对应于所述虚拟地址的存储器位置的真实地址。10.如权利要求9所述的计算机程序产品,其中,根据所...

【专利技术属性】
技术研发人员:江绵宙苏加查卡什亚普
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1