支持页属性的虚拟地址至物理地址的转换的制作方法

文档序号:6370308阅读:160来源:国知局

专利名称::支持页属性的虚拟地址至物理地址的转换的制作方法
技术领域
:本发明的实施例一般涉及计算系统领域,尤其涉及用于支持页属性的虚拟地址至物理地址转换的系统、方法和装置。
背景技术
:虚拟存储器允许程序员使用比处理器可用的实际物理存储器所提供的范围更大的存储器用于程序和数据。此外,虚拟存储器允许程序相互平行地加载,并具有与其它程序的存在及其加载的位置无关的存储器映射。计算系统利用地址转换硬件将程序的虚拟地址(在IA32体系结构中也称为线性地址——在本说明书中“线性地址”或LA与“虚拟地址”在使用时意思相同)映射到真实的硬件存储器地址(例如,物理存储器地址)。该硬件使·用存储器中的表树作为地址转换的输入数据。该树的根由保持页表树中第一表的物理地址的寄存器所指向。这ー寄存器的例子是IA32体系结构中的CR3。页表项(PTE)利用基址和索引来寻址。基址是从寄存器或先前的表存储器指针中取出的。索引利用线性地址的ー部分。PTE或者包括页——如果存储器中不存在其余的子树,或者包括以下讨论的存储器指针和其它信息。存储器指针针对存储器中可以包括数据(属于应用程序或操作系统)或另ー级页表的页。如果是后一种情况,则线性地址的另一部分用于索引至类似于所述内容的方案中的表。如果地址针对应用程序页,则物理地址通过将剩余的地址位(没有用于索弓I)添加至从页表项检索的页基地址来构造。同样,某些实施例可例示出如寄存器中所述的几种转换方案(例如,不同的表树索引结构),为了简化本说明书,我们将考虑这些CR3寄存器中的信息部分,即使它可以保持在一个或多个其它寄存器中。除地址转换信息外,这些表包括诸如访问权读取、写入或执行、存储器中数据的存在、高速缓存策略指示、页修改状态等信息。在某些情形中,页表可包括不同大小的页,其中较大的页指向页表树的较低级(而不是指向另一指针页)。将所指向的页大小在页表树中存储为属性(一般在指向数据页的级中)。为了检索物理地址,以从根(IA32中的CR3)开始的递归方式读取页表项,并检索和合并页性质。IA32程序员參考手册(例如,卷3A)提供了一个检索物理地址的常规方法的例子。该进程需要若干存储器访问操作,并由页-表处理硬件或UCode(I^g)序列来实现。有时,需要软件来检索物理存储器地址。在这种情形中,使用仿真全表遍历(emulatedfulltablewalk)或者基于操作系统施加的表设置限度的经缩短启发法。转换后备缓冲器(TLB)是保持先前转换结果的高速缓存,使得对ー个地址(或地址范围)的连续访问可避免遍历数据结构,并可使用先前转换的結果。在很多情形中,地址转换还检查操作,以满足为存储器位置所设置的条件。常规的地址转换指令一般被提供作为操作数以返回针对线性地址的物理存储器地址,而无需提供任何附加信息。附图简述本发明的实施例在附图的各图中作为例子而不是限制示出,附图中相同的附图标记指示相似的元件。图I是示出根据本发明的ー个实施例实现的计算系统的所选方面的高级框图。图2是根据本发明的一个实施例示出地址转换硬件的所选方面的框图。图3是根据本发明的一个实施例示出具有扩展页表的页树的所选方面的框图。图4是根据本发明的一个实施例示出页表项的所选方面的框图。图5是根据本发明的一个实施例示出支持页属性的线性至物理地址转换的方法的所选方面的流程图。详细描述本发明的实施例一般涉及支持页属性的虚拟(将被称为线性)至物理地址转换的系统、方法和装置。在某些实施例中,系统接收一指令,以将线性存储器指针转换成存储器位置的物理存储器地址。系统可返回物理存储器地址和ー个或多个页属性。图I是示出根据本发明的ー个实施例实现的计算系统的所选方面的高级框图。系统100包括应用程序102、内核104和硬件106。内核104管理硬件106并在应用程序102和硬件106之间提供通信。为了提供故障容错和安全性,内核104可以在高于应用程序102的特权级(例如,环0)操作。在某些实施例中,内核104包括LOADPHYSICALADDRESS(カロ载物理地址)指令(LAP)108。LPA108的输入參数几乎可以包括指向存储器的任何指针。LPA108的输出參数包括与上述指针和ー个或多个页属性对应的物理存储器地址(PA)。如以下參考图2-5进ー步描述的,LPA108可支持touch(创建)操作和/或虚拟化技术。表I示出根据本发明的某些实施例的LPAxx指令的所选方面。在某些实施例中,LPAxx指令取出线性地址(例如,m8)作为输入,并输出该存储器位置的物理地址以及ー个或多个页属性。在32位模式中且在物理地址可能大于寄存器的情况下,指令可具有2个寄存器用于地址输出(以支持大于32位的物理地址空间)。在64位模式中,单个输出寄存器就足够了。在某些实施例中,指令的基本结构支持读语义。可支持写语义以直接检查页是否是写使能的(例如,參见以下的设计方案(trap)讨论)。表I权利要求1.一种机器实现方法,包括接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址;基于页表信息将所述虚拟存储器指针转换成所述物理存储器地址,包括读取转换备用缓冲器(TLB)项以获取所述物理存储器地址和一个或多个页属性;以及返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据。2.如权利要求I所述的方法,其特征在于,所述基于页表信息将所述虚拟存储器指针转换成所述物理存储器地址包括不基于页表信息,确定与所述虚拟存储器指针相对应的页是否在存储器中。3.如权利要求I或2所述的方法,其特征在于,所述接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址包括从虚拟机管理器接收所述指令;以及其中所述返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据包括返回主机物理存储器地址。4.如权利要求I或2所述的方法,其特征在于,所述接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址包括从虚拟机管理器接收所述指令;以及其中所述返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据包括返回客机物理存储器地址。5.如权利要求1-4中任一项所述的方法,其特征在于,所述基于页表信息将所述虚拟存储器指针转换成所述物理存储器地址包括如果TLB不包括所述物理存储器地址,读取至少一个页表项以获取所述物理存储器地址和所述一个或多个页属性。6.如权利要求1-5中任一项所述的方法,其特征在于,所述一个或多个属性包括以下至少一个存在位,读/写位,用户/管理员位,访问位,脏位,全局标志,执行禁用位,页大小指示符,以及转换表错误。7.如权利要求1-6中任一项所述的方法,其特征在于,所述返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据包括在专用寄存器中存储所述物理存储器地址和所述一个或多个页属性;以及至少部分地利用微代码访问所述专用寄存器。8.如权利要求1-6中任一项所述的方法,其特征在于,所述返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据包括经由读取返回总线返回所述物理存储器地址和所述一个或多个页属性。9.如权利要求1-8中任一项所述的方法,其特征在于,所述接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址包括接收异步指令以将所述虚拟存储器指针转换成物理存储器地址,所述异步指令包括用于定义所述异步指令的上下文的操作数。10.一种虚拟地址至物理地址转换的设备,包括用于接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址的装置;用于基于页表信息将所述虚拟存储器指针转换成所述物理存储器地址的装置,包括用于读取转换备用缓冲器(TLB)项以获取所述物理存储器地址和一个或多个页属性的装置;以及用于返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据的装置。11.如权利要求10所述的设备,其特征在于,所述用于基于页表信息将所述虚拟存储器指针转换成所述物理存储器地址的装置包括用于不基于页表信息,确定与所述虚拟存储器指针相对应的页是否在存储器中的装置。12.如权利要求10或11所述的设备,其特征在于,所述用于接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址的装置包括用于从虚拟机管理器接收所述指令的装置;以及其中所述用于返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据的装置包括用于返回主机物理存储器地址的装置。13.如权利要求10或11所述的设备,其特征在于,所述用于接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址的装置包括用于从虚拟机管理器接收所述指令的装置;以及其中所述用于返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据的装置包括用于返回客机物理存储器地址的装置。14.如权利要求10-13中任一项所述的设备,其特征在于,所述用于基于页表信息将所述虚拟存储器指针转换成所述物理存储器地址的装置包括用于如果TLB不包括所述物理存储器地址,读取页表项以获取所述物理存储器地址和所述一个或多个页属性的装置。15.如权利要求10-14中任一项所述的设备,其特征在于,所述一个或多个属性包括以下至少一个存在位,读/写位,用户/管理员位,访问位,脏位,全局标志,执行禁用位,页大小指示符,以及转换表错误。16.如权利要求10-15中任一项所述的设备,其特征在于,所述用于接收指令以将虚拟存储器指针转换成存储器位置的物理存储器地址的装置包括用于接收异步指令以将所述虚拟存储器指针转换成物理存储器地址的装置,所述异步指令包括用于定义所述异步指令的上下文的操作数。17.如权利要求10-15中任一项所述的设备,其特征在于,所述用于返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据的装置包括用于在专用寄存器中存储所述物理存储器地址和所述一个或多个页属性的装置;以及用于至少部分地利用微代码访问所述专用寄存器的装置。18.如权利要求10-15中任一项所述的设备,其特征在于,所述用于返回所述物理存储器地址和所述一个或多个页属性而无需访问存储在所述物理存储器地址的数据的装置包括用于经由读取返回总线返回所述物理存储器地址和所述一个或多个页属性的装置。全文摘要一种支持页属性的虚拟地址至物理地址的转换。本发明的实施例一般涉及用于支持页属性的线性至物理地址转换的系统、方法和装置。在某些实施例中,系统接收一指令以将存储器指针转换成存储器位置的物理存储器地址。该系统可返回物理存储器地址和一个或多个页属性。描述并要求保护包括其它实施例。文档编号G06F12/10GK102789429SQ20121016765公开日2012年11月21日申请日期2008年5月30日优先权日2007年6月1日发明者B-Z·弗莱德曼,E·维斯曼,J·B·克罗斯兰德,J·D·多维科,O·法里克申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1