页面错误解决方案制造技术

技术编号:19878279 阅读:26 留言:0更新日期:2018-12-22 17:56
页面大小提示可以编码到有效或虚拟地址中的未使用和保留字段中,以便在处理与有效或虚拟地址相关联的页面错误时使软件页面错误处理程序使用,以使应用程序能够与操作系统或其他基于软件的翻译功能页面大小首选项通信,用于分配内存页面和/或加速搜索硬件页面表中的页表条目。

【技术实现步骤摘要】
【国外来华专利技术】页面错误解决方案
技术介绍
本专利技术一般涉及计算机和计算机软件,尤其涉及存储器地址转换。存储器管理,即管理存储在计算机中的数据中发生的操作,通常是计算机整体系统性能的关键因素。除其他任务外,内存管理还监视计算机上数据的检索和存储,并通过对允许用户和计算机程序访问的内容施加限制来管理计算机的某些安全任务。现代计算机通常依赖于称为虚拟内存管理的内存管理技术来提高性能,并在计算机及其所基于的底层架构设计中提供更大的灵活性。利用虚拟存储器系统,实现计算机的存储器系统的底层硬件有效地隐藏在计算机的软件之外。为这样的计算机定义相对大的虚拟存储器空间,例如宽度为64位或更多,其中计算机程序在计算机上执行,使用指向虚拟存储器空间中的位置的虚拟地址访问存储器系统。然而,计算机中的物理存储器设备通过“真实”地址访问,该地址直接映射到物理存储器设备中的特定存储器位置。提供计算机中的硬件和/或软件以执行“地址转换”以将物理存储器的实际存储器地址映射到虚拟存储器空间中的虚拟地址。因此,每当计算机上的计算机程序试图使用虚拟地址访问存储器时,计算机就会自动将虚拟地址转换为相应的实际地址,以便可以访问映射到虚拟地址的适当物理设备中的适当位置。虚拟寻址的一个特征是计算机不必包括用于计算机主存储器中的物理存储器设备中的整个虚拟存储器空间的存储。相反,较低级别的存储(例如磁盘驱动器和其他大容量存储设备)可以用作补充存储,其中存储器地址被分组为“页面”,根据需要在主存储器和补充存储器之间交换。另外,一些计算机设计还包括分段的概念,其将虚拟存储器划分成不同的段(每个段映射到页面块)以便于存储器保护,简化大型和不断增长的数据结构的处理,以及当在任何给定时间能够在计算机中处理多个进程时,为执行内存管理提供更大的灵活性。当使用分段时,使用附加的间接层,需要执行额外的转换。通常,在包含分段和寻呼的系统中,计算机程序使用映射到虚拟地址的“有效”地址来访问存储器系统,因此需要首先从有效地址转换到虚拟地址,然后从虚拟地址转换到真实地址。由于计算机中访问请求的频率,地址转换可能对整体系统性能具有显着影响。因此,期望最小化与执行地址转换的关键定时路径相关联的处理开销。虚拟存储器系统中的地址转换通常包含访问各种地址转换数据结构。一种这样的结构,称为页表,包括多个条目,这些条目在逐页的基础上将虚拟地址映射到实际地址。同样,为了处理分段,通常提供分段表,包括在逐个分段的基础上将有效地址映射到虚拟地址的条目。通常,由于计算机中不断发生的大量存储器访问,映射计算机使用的所有存储器地址空间所需的条目数量可能很大,并且需要将条目存储在主存储器,而不是专用存储器中,这使得访问这些条目的速度非常慢。为了利用这种方案加速地址转换,称为转换后备缓冲器(TLB)和段后备缓冲器(SLB)的高速存储器通常用于缓存最近使用的条目以便计算机快速访问。如果所需的条目未存储在TLB或SLB中,则从主存储器加载条目会产生性能损失;然而,通常TLB和SLB的命中率非常高,并且当从TLB和SLB立即访问条目时,与从主存储加载条目相关的惩罚大大抵消了性能增益。在其他设计中,通过提供有效到实际地址转换(ERAT)表,可以使用附加级别的高速缓存来进一步加速性能,该表包括提供有效地址和实际地址之间的直接映射的条目。因此,ERAT表有效地包括来自SLB和TLB的信息,以消除执行两级翻译的需要。在一些设计中,分别在处理器中的指令和数据处理逻辑附近提供单独的数据和指令ERAT表,以最小化地址转换对处理器中的关键性能路径的影响。最初,寻呼基于固定页面大小,例如每页4K或4096个可寻址位置。然而,通过使用分段,可以在不同的段中支持不同的页面大小。较小的页面大小通常对于有效使用存储器系统是最佳的,特别是当许多进程在计算机中同时运行时。然而,随着计算机和在其上运行的程序的存储器要求不断增加,任何给定过程或程序所需的存储器页数继续增加,因此,对于许多情况,较大的页面大小可能更有效。在许多设计中,必须在引导时分配大页面,即大于4K页面的页面。为了避免这种预分配的需要,一些操作系统实现了“透明”的大页面,这些页面试图收集顺序页面并将其翻译成大页面。但是,通常,操作系统不知道分配大页面的可能性,并且默认为进行4K页面分配。
技术实现思路
根据本专利技术的实施例,可以通过以下方式在支持多个存储器页面大小的类型的数据处理系统中处理页面错误:检测由处理器的硬件转换逻辑生成并与由所述处理器执行的程序代码请求的虚拟地址相关联的页面错误,从所述虚拟地址确定编码到所述虚拟地址的未使用和保留的字段的页面大小提示,并使用所确定的页面大小提示对所述虚拟地址执行软件地址转换操作。根据本专利技术的另一个实施例,可以通过以下方式来构建程序:将页面大小提示编码到由存储器访问指令引用的虚拟地址的未使用和保留的字段中,并且利用存储器访问指令来构建程序,使得当检测到由程序执行的数据处理系统的硬件转换逻辑的存储器访问指令引起的页面错误时,在执行软件地址转换操作时使用页面大小提示。表征本专利技术的这些和其他优点和特征在所附权利要求中阐述并形成本专利技术的另一部分。然而,为了更好地理解本专利技术以及通过其使用获得的优点和目的,应参考附图和所附描述性内容,其中描述了本专利技术的示例性实施例。附图说明现在将参考附图仅通过示例的方式描述本专利技术的实施例,附图中:图1A和1B是根据本文描述的各种技术的示例硬件(图1A)和软件(图1B)环境的框图。图2是说明可用于在图1A-1B的环境中执行地址转换的示例硬件和软件实体的框图。图3是可用于图1A-1B的环境中的示例有效地址格式的框图。图4是说明用于处理图1A-1B的环境中的页面错误的示例操作序列的流程图。图5是示出用于实现图4中引用的PTE块的搜索的示例操作序列的流程图。图6是说明用于在图1A-1B的环境中构建程序的示例操作序列的流程图。具体实施方式现在参考附图,其中在几个视图中相同的数字表示相同的部分。图1A-1B示出了与本专利技术一致的数据处理环境或装置100中的主要硬件和软件组件,并且适合于在各种云和/或非云计算环境中实现存储器地址转换。如图1A所示,装置100可以包括多节点数据处理系统102,其中物理硬件分布在设置在多个主机或计算机系统106中的多个物理处理器节点104中,其中主机106设置在一个或多个池108上。每个处理器节点104包括一个或多个处理器110,一个或多个存储器设备112,并且在一些实施例中,包括附加硬件,例如输入/输出(I/O)硬件114(例如,一个或多个输入/输出(I/O)适配器)和/或网络硬件116。适当的网络功能(未示出)也可用于提供各种处理器节点104和主机106以及其他外部系统之间的数据通信。装置100可以使用适合于实现虚拟化环境的多种不同架构中的任何一种来实现,以及适用于非虚拟化环境的各种架构,包括多用户和单用户环境,以及嵌入式环境。因此,装置100还可以代表各种台式计算机,超级计算机,服务器,膝上型计算机,平板电脑,移动设备和其他可编程电子设备等。每个处理器110可以实现为单线程或多线程处理器和/或单核或多核处理器,而每个存储器112可以被认为包括一个或多个级别的存储器设备,例如基于DRAM的主存储器,以及一个或多个级本文档来自技高网
...

【技术保护点】
1.一种在支持多个存储页面大小的类型的数据处理系统中处理页面错误的方法,该方法包括:检测由处理器的硬件转换逻辑产生的页面错误,该页面错误与由处理器执行的程序代码请求的虚拟地址相关联;从所述虚拟地址确定编码到所述虚拟地址的未使用和保留的字段的页面大小提示;和使用所确定的页面大小提示对所述虚拟地址执行软件地址转换操作。

【技术特征摘要】
【国外来华专利技术】2016.05.24 US 15/163,3721.一种在支持多个存储页面大小的类型的数据处理系统中处理页面错误的方法,该方法包括:检测由处理器的硬件转换逻辑产生的页面错误,该页面错误与由处理器执行的程序代码请求的虚拟地址相关联;从所述虚拟地址确定编码到所述虚拟地址的未使用和保留的字段的页面大小提示;和使用所确定的页面大小提示对所述虚拟地址执行软件地址转换操作。2.如权利要求1所述的方法,其中在执行所述程序代码之前将所述页面大小提示编码到所述未使用和保留的字段中。3.如权利要求2所述的方法,其中,在编译、链接、部署或安装所述程序代码期间,将页面大小提示编码到所述未使用和保留的字段中。4.根据权利要求1所述的方法,其中所述硬件转换逻辑可配置为以第一和第二模式操作,其中在所述第一模式中,响应于所述虚拟地址的所述未使用和保留的字段中的一个或多个值,所述硬件转换逻辑生成非法地址通知,其中在第二模式中,响应于所述虚拟地址的所述未使用和保留的字段中的一个或多个值被禁用,所述硬件转换逻辑生成非法地址通知,并且其中该方法还包括配置第二种模式下的所述硬件转换逻辑。5.如权利要求4所述的方法,其中,所述硬件转换逻辑被配置为,在第一模式中,响应于所述虚拟地址的未使用和保留的字段中的非零值,生成非法地址通知。6.如权利要求1所述的方法,还包括:基于可用存储器,选择性地分配与所确定的页面大小提示相对应的页面大小。7.如权利要求1所述的方法,其中在搜索硬件页表的一个或多个数据结构之前执行确定所述页面大小提示,并且其中使用所确定的页面大小提示对所述虚拟地址执行所述软件地址转换操作包括使用所确定的页面大小提示访问所述一个或多个数据结构。8.如权利要求7所述的方法,其中,所述一个或多个数据结构包括至少被配置为为特定页面大小的页面存储地址转换信息的至少一个页面大小特定的数据结构,并且其中使用所确定的页面大小提示为所述虚拟地址执行软件地址转换操作包括,使用所确定的页面大小提示来访问被配置为为与所述页面大小提示相关联的所述页面大小存储地址转换信息的页面大小特定的数据结构。9.根据权利要求8所述的方法,其中,使用所确定的页面大小提示为所述虚拟地址执行所述软件地址转换操作包括,绕过对硬件页表遍历时会访问的至少一个其他数据结构的访问以获取缺少编码页大小提示的内存访问指令。10.如权利要求9所述的方法,还包括:响应于与由处理器执行的程序代码所请求的第二虚拟地址相关联的第二页错误并且缺少编码的页面大小提示,遍历所述硬件页面表的多个数据结构以识别与所述第二虚拟地址对应的页表条目。11.根据权利要求1所述的方法,其中在为所述虚拟地址分配存储器页面之前...

【专利技术属性】
技术研发人员:S·卡普尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

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

1