一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于转换基于虚拟存储器的系统中的虚拟地址的方法和系统与流程

2022-07-14 04:39:10 来源:中国专利 TAG:

用于转换基于虚拟存储器的系统中的虚拟地址的方法和系统


背景技术:

1.本公开总体上涉及数据处理,并且更具体地涉及用于优化计算机系统中的地址转换的方法、装置和系统。
2.除了其它任务之外,存储器管理管理存储在计算机中的数据,包括监督从计算机中的存储器取回和存储数据。存储器管理通常是计算机的整体系统性能中的关键因素。计算机系统通常包括用于存储应用和数据的物理存储器。现代计算机通常依赖于被称为虚拟存储器管理的存储器管理技术来提高性能并在计算机和它们以其为前提的底层架构设计中提供更大的灵活性。
3.利用虚拟存储器系统,实现计算机的存储器系统的底层硬件有效地从计算机的软件中隐藏。相对大的虚拟存储器空间通常用于这样的计算机,其中在计算机上执行的计算机程序使用指向虚拟存储器空间中的位置的地址来访问存储器系统。然而,计算机中的物理存储器设备是经由直接映射到物理存储器设备中的特定存储器位置的“真实”地址来访问的。提供计算机中的硬件和/或软件以执行“地址转换”以将虚拟化地址空间的虚拟存储器地址映射到物理存储器空间中的真实地址。这样,每当计算机上的计算机程序试图使用虚拟地址访问存储器时,计算机将虚拟地址转换成对应的真实地址,使得可以对映射到虚拟地址的适当物理设备中的适当位置进行访问。


技术实现要素:

4.给出本公开的发明内容以帮助理解计算机系统、计算机架构、处理器、存储器系统和转换计算机系统中的虚拟地址的方法,而不是为了限制本公开或本发明。本公开针对本领域的普通技术人员。应当理解,本公开的各个方面和特征在某些情况下可以有利地被单独使用,或者在其他情况下与本公开的其他方面和特征组合使用。因此,可以对计算机系统、架构、处理器及其操作方法进行变化和修改以实现不同的效果。
5.在一个或多个实施例中,公开了一种信息处理系统。实施例中的信息系统包括处理器,用于处理数据;一个或多个存储器设备,具有用于存储数据的多个位置,每个位置具有物理地址;以及存储器控制器,优选地在存储器设备本地,被配置为控制对存储器设备的读取和写入访问。在一方面,响应于将第一虚拟地址转换成第二地址(优选地为物理地址)的请求,处理器被配置为从处理器向存储器控制器发送页目录基址和多个存储器偏移,其中多个存储器偏移至少包括第一级存储器偏移和第二级存储器偏移。一个或多个方面中的存储器控制器被配置为:从处理器接收页目录基址和多个存储器偏移;使用页目录基址和第一级存储器偏移从一个或多个存储器设备读取第一级页目录表;将第一级页目录表与第二级存储器偏移组合;以及使用第一级页目录表和第二级存储器偏移从一个或多个存储器设备读取第二级页目录表。
6.存储器控制器在一个或多个实施例中被配置为向处理器发送页表条目(pte),其中pte包含第一虚拟地址到第二地址的转换。实施例中的系统还被配置为将包含页表条目(pte)的地址的存储器行从存储器控制器发送到处理器,并且其中该处理器还被配置为从
包含页表条目(pte)的地址的存储器行提取页表条目(pte)。在一方面,响应于确定所有多个存储器偏移都已经与多个页目录表组合,存储器控制器被配置为向处理器发送页表条目(pte)。实施例中的处理器被配置为组合页目录基址和第一级偏移,并且将多个存储器偏移与组合的页目录基址和第一级存储器偏移一起发送到存储器控制器。
7.存储器控制器在一方面还被配置为从一个或多个存储器设备获取包含第一级页目录表的地址的存储器行。存储器控制器还被配置为在一个或多个实施例中从包含第一级页目录表的地址的存储器行提取第一级页目录表的地址。实施例中的系统还被配置为将包含第一级页目录表的地址的存储器行从存储器控制器发送到处理器,并且处理器还被配置为从包含第一级页目录表的地址的存储器行提取第一级页目录表的地址。在一个或多个实施例中,存储器控制器还被配置为从一个或多个存储器设备获取包含第二级页目录表的地址的存储器行。实施例中的存储器控制器被配置为从包含第二级页目录表的地址的存储器行提取第二级页目录表的地址。一个或多个方面中的系统被配置为将包含第二级页目录表的地址的存储器行从存储器控制器发送到处理器,并且处理器被配置为从包含第二级页目录表的地址的存储器行提取第二级页目录表的地址。一个或多个实施例中的存储器控制器还被配置为将第三级存储器偏移与第二级页目录表组合,并且使用第三级存储器偏移和第二级页目录表从存储器读取第三级页目录表。
8.在一个或多个实施例中,响应于存储器控制器接收到页目录基址和存储器偏移,存储器控制器被配置为控制对存储在存储器中的多个页目录表的所有存储器读取操作,并且系统被配置为使得对存储在存储器中的多个页目录表的所有存储器读取操作都在存储器控制器中发起。系统可选地被配置为使得所有存储器偏移一起被从处理器发送到存储器控制器。并且在一方面,存储器控制器被配置为组合页目录基址和第一级存储器偏移。在实施例中,系统被配置为响应于转换的请求,仅将包含pte的地址的存储器行发送到处理器,并且没有页目录表从存储器控制器发送到处理器。一个或多个实施例中的转换的请求包括具有客户虚拟地址和主机虚拟地址的嵌套转换。
9.还公开了一个或多个实施例中的计算系统。在一个或多个方面,计算系统包括处理器;一个或多个存储器设备,其具有用于存储所述数据的多个位置,每个位置具有物理地址;在所述一个或多个存储器设备本地的存储器控制器,所述存储器控制器控制对所述一个或多个存储器设备的读和写访问;以及包括程序指令的计算机可读存储介质,所述程序指令在由处理器执行时,响应于将第一虚拟地址转换为第二地址的请求,使得处理器从处理器向存储器控制器发送页目录基址和多个存储器偏移,其中,所述多个存储器偏移至少包括第一级存储器偏移和第二级存储器偏移。在实施例中,计算机系统还包括计算机可读存储介质,其包括程序指令,当由存储器控制器执行时,响应于将第一虚拟地址转换为第二地址的请求,所述程序指令使得存储器控制器:从处理器接收页目录基础和多个存储器偏移量;使用所述页目录基址和所述第一级存储器偏移从所述存储器设备读取第一级页目录表;将所述第一级页目录表与所述第二级存储器偏移组合;使用所述第一级页目录表和所述第二级存储器偏移从存储器读取第二级页目录表;以及向所述处理器发送页表项(pte)。
10.在一方面,计算系统中的程序指令在由存储器控制器执行时使存储器控制器响应于确定所有多个存储器偏移已与多个页目录表组合而向处理器发送页表项(pte)。在一个实施例中,计算系统的程序指令在由处理器执行时使处理器组合页目录基本偏移量和第一
级存储器偏移量,并将多个存储器偏移量连同组合的页目录基本偏移量和第一级存储器偏移量一起发送到存储器控制器。在一个或一个以上方面中,所述程序指令在由所述处理器执行时响应于将所述第一虚拟地址转换为所述第二地址的所述请求而致使所述处理器将所有所述多个存储器偏移一起从所述处理器发射到所述存储器控制器。在一个或多个实施例中,计算系统还包括编程指令,当响应于将第一虚拟地址转换为第二地址的请求而执行所述编程指令时,使得存储器控制器仅向处理器发送包含pte的地址的存储器行,并且没有页目录表从存储器控制器发送到处理器。
11.还公开了一种由具有存储在存储器中的多个页目录表的系统转换地址的方法。响应于将第一地址转换成第二地址的请求,从处理器向存储器控制器发送页目录基址和多个存储器偏移,其中所述多个存储器偏移至少包括第一级存储器偏移和第二级存储器偏移;由所述存储器控制器使用所述页目录基址和所述第一级存储器偏移从存储器读取第一级页目录表;通过所述存储器控制器并且在所述存储器控制器中组合所述第二级存储器偏移和所述第一级页目录表;由所述存储器控制器使用所述第一级页目录表和所述第二级存储器偏移从存储器读取第二级页目录表;以及将页表项(pte)从所述存储器控制器发送到所述处理器。一方面,该方法还包括将所有多个存储器偏移量一起从处理器发送到存储器控制器,并且仅将包含pte的地址的存储器行从存储器控制器发送到处理器,而不发送页目录表。在一个实施例中,该方法涉及基页转换,并且在一个方面,转换请求涉及基页转换,其中页目录表形成基树的一部分。
12.通过以下对如附图中所示的本发明的示例性实施例的更具体的描述,本发明的前述和其它目的、特征和优点将是显而易见的,其中,相同的附图标记通常表示本发明的示例性实施例的相同部分。
附图说明
13.当结合所提供的附图阅读时,将更好地理解计算机系统、计算机架构、处理器、存储器系统以及它们的操作方法的各个方面、特征和实施例。出于说明计算机系统、计算机架构、处理器以及它们的操作方法的方面、特征和/或各种实施例的目的,在附图中提供了实施例,但是权利要求不应限于所示的精确布置、结构、特征、方面、组件、系统、电路、实施例或设备,并且所示的布置、结构、子组件、特征、方面、方法、过程、电路、实施例和设备可单独使用或与其它布置、结构、组件、子组件、系统、特征、方面、电路、实施例、方法和设备组合使用。
14.图1是示出根据本公开的实施例的计算机系统的功能框图。
15.图2a描绘了计算环境的一个示例。
16.图2b描绘了计算环境的另一示例。
17.图3a描绘了分层转换机制的一个示例。
18.图3b描绘了高级转换表的索引的一个示例。
19.图4描绘了根据本公开的实施例的分层转换机制的另一示例。
20.图5示出了经历转换虚拟地址的实施例的处理器和存储器控制器的框图。
21.图6示出了经历转换虚拟地址的另一实施例的处理器和存储器控制器的框图。
22.图7示出了将虚拟地址转换为物理地址的方法的实施例的流程图。
具体实施方式
23.以下描述是为了说明本发明的一般原理而作出的,并且不意味着限制本文要求保护的本发明构思。在以下具体实施方式中,阐述了许多细节以便提供对包括计算机系统、计算机架构、处理器、存储器系统的信息处理系统以及它们的操作方法的理解,该操作方法包括执行地址转换的方法,然而,本领域技术人员将理解,可以在没有那些具体细节的情况下实践包括计算机系统、计算机架构、处理器、存储器系统的信息处理系统以及它们的操作方法的不同和许多实施例,该操作方法包括用于执行地址转换的方法和结构,并且权利要求和公开不应限于本文具体描述和示出的实施例、子组件、特征、过程、方法、方面、特征或细节。此外,本文所述的特定特征可与其它所述特征以各种可能的组合和排列中的每一个组合使用。
24.除非本文另有明确定义,否则所有术语将被给予其最宽泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。还必须注意,如在说明书和所附权利要求中所使用的,除非另有说明,单数形式“一”、“一个”和“该”包括复数指代物,并且当在本说明书中使用时,术语“包括”和/或“包含”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
25.以下讨论省略或仅简要描述包括处理器、微处理器系统、存储器系统的信息处理系统以及它们的架构的常规特征,这些特征对本领域技术人员来说是显而易见的。假设本领域技术人员熟悉处理器和存储器系统和/或设备的一般架构以及它们的操作。可以注意到,编号的元件根据引入该元件的附图进行编号,并且可以在后续附图中用该编号来引用。
26.在数据和信息处理系统中,存在对存储在包括主存储器的各种存储器系统中的数据的大量访问。对虚拟化存储器系统中的存储器的访问通常需要从虚拟地址(va)到真实地址(ra)的地址转换。由于计算机中存储器访问请求的频率,地址转换可以对整体系统性能具有显著影响。因此,希望最小化提供地址转换的时间量。本公开通过减少提供地址转换的时间量的系统和技术来解决这个问题。在一个或多个实施例中,公开了一种用于加速基页转换(rpt)的系统和过程,并且具体地,通过在表遍历转换过程期间减少处理器(cpu)和包括存储器控制器(mc)的存储器之间的数据交换来加速rpt表遍历。
27.虚拟寻址的一个特征是,计算机不必在计算机的主存储器中的物理存储器设备中包括用于整个虚拟存储器空间的存储。而是,诸如磁盘驱动器和其它大容量存储设备的较低级存储可以用作补充存储,其中存储器地址被分组成“页”,这些页根据需要在主存储器和补充存储之间交换(“分页”)。当处理系统使用分页时,虚拟地址的低阶位被保留并直接用作实际物理地址的低阶位,而高阶位可以被视为对应于或映射到物理地址的一个或多个地址转换表的关键字或索引。由这样的范围引用的存储器可以被称为页。页大小可以在例如从4千字节到16千兆字节的大小范围内。
28.虚拟存储器系统中的地址转换通常并入有访问各种地址转换数据结构。一种这样的结构,称为页表,包括以逐页的方式将虚拟地址映射到真实地址的多个条目,并且包括一个或多个页表条目(pte)。使用虚拟寻址,处理器可以使用从将虚拟地址(va)转换为物理或真实地址(ra)而产生的物理地址来访问存储器。
29.映射计算机所使用的所有存储器地址空间所需的页表中的条目的数量可以很大,
并且需要将条目存储在千兆/兆兆字节规模的主存储器(随机存取存储器)中,而不是与处理器相关联的专用存储器中,这使得对驻留在主存储中的这些条目的访问变慢。为了加速地址转换,并减少获得地址转换的时延,与处理器相关联的高速存储器(称为转换后备缓冲器(tlb))通常用于高速缓存最近使用的条目,以便由计算机快速访问。tlb是用于高速缓存将虚拟地址(va)映射到物理地址或真实地址(ra)的页表条目的数据结构。对于每一存储器访问,va被呈现给tlb,并且如果tlb命中,即,存储器访问的va与tlb中的条目匹配,那么tlb将真实地址(ra)提供给处理器。在给定tlb中找到映射或匹配提供虚拟地址与物理地址之间的快速转换。
30.在给定tlb中未找到虚拟地址的映射或匹配指示应检查页表,并且在一个或多个实施例中,将需要执行表遍历多个表和级以便将虚拟地址转换成物理存储器中的真实地址。如果地址在tlb中未命中,在一个或多个实施例中,涉及成本更高的硬件处理器或软件处理器的转换过程被调用以处理该转换,并且将页表条目加载并插入到tlb中,使得地址将在tlb中命中且存储器访问可以继续进行。tlb通常与处理器(cpu)相关联并且可以在处理器(cpu)本地。
31.存在若干常规方法来将虚拟地址转换成物理存储器中的真实地址。基页转换(rpt)是基于基树的方法,用于在基于虚拟存储器的系统中将虚拟地址(va)转换为真实地址(ra)。树结构页表(例如,基地址转换)方法使用存储器中的树结构。树的根由存储器中的物理地址标识,并且来自虚拟地址的位被用作树的每一级处的索引,直到找到页表条目。虽然在树结构中找到的最终页表条目(pte)被高速缓存在tlb中,但是每一级处的中间件通常被高速缓存在页遍历高速缓存(pwc)中。在典型的rpt转换中,有必要“遍历”基树的多个级,以便得到转换后的物理或真实地址(ra)。在典型的配置中,这种遍历过程完全由处理器(cpu)管理,并且由于处理器(cpu)和存储器控制器(mc)之间的大量交换而可能花费很长时间。
32.地址转换通常发生在数据或信息处理环境中,并且更具体地说,通常发生在基于处理器的系统和/或计算机化的环境中。图1是示出可以在其中实践本公开的实施例的计算机系统150的功能框图。系统150包括以计算机152的形式的自动计算机器的示例。
33.计算机152可以包括至少一个处理器156或中央处理单元(“cpu”)以及随机存取存储器168(“ram”),其经由高速存储器总线166和总线适配器158连接到处理器156和计算机152的其他组件。
34.尽管处理器156被示为通过前端总线162、总线适配器158和高速存储器总线166耦合到ram 168,但是本领域普通技术人员将认识到,这样的配置仅仅是示例性实现方式,并且可以利用将处理器156耦合到系统150的其他组件的其他配置。在一些实施例中,处理器156可支持直接外围连接,诸如快速外围组件互连(“pcie”)连接等。
35.操作系统154可以存储在计算机152的ram 168中。在被配置用于处理器的操作的计算机中有用的操作系统可以包括unixtm、linuxtm、microsoft windowstm、aixtm、ibm的z/ostm以及本领域普通技术人员已知的其它操作系统。除了操作系统154位于ram 168中之外,诸如数据处理应用的其它组件可以存储在ram 168中。此外,软件和其它组件可以存储在非易失性存储器中,诸如存储在磁盘驱动器170上。
36.计算机152可以包括通过扩展总线160和总线适配器158耦合到处理器156和计算
机152的其它组件的磁盘驱动适配器172。磁盘驱动适配器172可以以磁盘驱动器170的形式将非易失性数据存储连接到计算机152。磁盘驱动器适配器可以包括集成驱动电子(“ide”)适配器、小型计算机系统接口(“scsi”)适配器以及本领域普通技术人员已知的其它适配器。非易失性计算机存储器也可以被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“eeprom”或“闪速”存储器)、ram驱动器、以及本领域普通技术人员已知的其它存储器。
37.计算机152可以包括一个或多个输入/输出(“i/o”)适配器178。i/o适配器178可以通过例如软件驱动程序和计算机硬件来实现面向用户的输入/输出,以控制到诸如计算机显示屏的显示设备的输出,以及来自诸如键盘和鼠标的用户输入设备181的用户输入。计算机152可以包括视频适配器209,其是专门设计用于到诸如显示屏或计算机监视器的显示设备180的图形输出的i/o适配器的示例。视频适配器209通过高速视频总线164、总线适配器158和前端总线162(其也可以是高速总线)连接到处理器156。i/o适配器178还可以包括comm和驱动器适配器。i/o适配器178还可以是pci express,其中所有i/o都被连接。
38.计算机152可以包括用于与其它计算机182进行数据通信以及用于与数据通信网络100进行数据通信的通信适配器167。这种数据通信可以通过rs-232连接、通过诸如通用串行总线(“usb”)的外部总线、通过诸如ip数据通信网络的数据通信网络、以及以本领域普通技术人员已知的其它方式串行地执行。通信适配器167可以实现数据通信的硬件级,通过该硬件级,一个计算机直接或通过数据通信网络174向另一计算机发送数据通信。通信适配器167的示例可以包括用于有线拨号通信的调制解调器、用于有线数据通信的以太网(ieee 802.3)适配器、以及用于无线数据通信的802.11适配器。
39.图1中所示的计算机和其它设备的布置是为了解释而非限制。根据本公开的各种实施例有用的数据处理系统可以包括附加的服务器、路由器、其他设备和对等架构。这种数据处理系统中的网络可以支持许多数据通信协议,包括例如tcp(传输控制协议)、ip(因特网协议)、http(超文本传输协议)、wap(无线接入协议)、hdtp(手持设备传输协议)以及本领域普通技术人员已知的其它协议。除了图1中所示的那些之外,本公开的各种实施例可以在各种硬件平台上实现。
40.参考图2a描述了用于并入和使用转换能力的一个或多个方面的计算环境的一个示例。在一个示例中,计算环境100包括处理器(中央处理单元-cpu)102,其包括至少一个存储器管理单元(mmu)/转换后备缓冲器(tlb)部分104和高速缓存106。处理器102通信地耦合到具有高速缓存110的存储器部分108,并且耦合到输入/输出(i/o)部分112。i/o部分112通信地耦合到外部i/o设备114,其可以包括例如数据输入设备、传感器和/或输出设备,诸如显示器。
41.存储器管理单元104用于管理存储器部分108,包括促进对存储器的访问。为了改进地址转换,一实施例中的存储器管理单元利用转换后备缓冲器(tlb)。tlb是先前转换过的地址的高速缓存。因此,当接收到包括要转换的地址的存储器访问的请求时,首先检查tlb。如果地址及其转换在tlb中,则不需要转换。否则,转换所接收的虚拟地址。
42.图2b中描绘了用于并入和使用本发明的一个或多个方面的计算环境的另一实施例。在该示例中,计算环境150包括服务器152,该服务器包括例如一个或多个虚拟机154、一个或多个中央处理器(例如,中央处理单元)156、至少一个管理程序158和输入/输出子系统160。虚拟机和管理程序包括在存储器162中。
43.在该实施例中,每个虚拟机能够托管客户操作系统168并且可以执行一个或多个应用170。在虚拟机中运行的操作系统或应用看起来具有对整个完整系统的访问,但实际上,仅其一部分可用。
44.中央处理器156(例如,中央处理单元)是可分配给虚拟机的物理处理器资源。例如,虚拟机154包括一个或多个逻辑处理器,每个逻辑处理器表示可以动态分配给虚拟机的物理处理器156的全部或一份。与cpu 102类似,中央处理器156包括至少一个mmu/tlb部分和至少一个高速缓存。虚拟机154由管理程序158管理,例如,诸如由国际商业机器公司提供的powervm。
45.输入/输出子系统160引导设备和存储器(本文中也称为主存储器或主存储)之间的信息流。它耦合到服务器,因为它可以是服务器的一部分或与其分离。i/o子系统减轻了中央处理器与耦合到服务器的i/o设备直接通信的任务,并且允许数据处理与i/o处理同时进行。
46.虚拟存储器系统中的地址转换通常并入有访问各种地址数据结构。一种这样的结构,称为页表,包括以逐页的方式将虚拟地址映射到真实地址的多个条目。页表条目中所包括的格式和信息取决于系统配置的架构和/或转换的具体类型。通过遍历分层页表定位的页表条目通常包括各种信息,包括用于访问物理存储器的真实地址的至少一部分。
47.所接收的用于转换的地址可以包括虚拟地址位以及一个或多个偏移,包括页偏移。虚拟地址位被发送到tlb,tlb尝试将虚拟地址位与存储在tlb中的真实页号匹配。如果tlb找到包含与虚拟地址位匹配的真实页号的条目,则它提供物理地址。物理地址用于寻址物理存储器中的页。页位或页偏移用于访问相对于页的开始的地址。
48.在一个实施例中,如果未发现匹配(tlb未命中),则地址转换系统通过在tlb未命中之后执行页遍历来从页表中获取物理地址。虚拟地址解析系统还可以将所获取的物理地址加载到tlb的阵列中的一个或多个中。此外,在一个或多个实施例中,页遍历的一个或多个步骤也被安装在页遍历高速缓存(pwc)的阵列中。即,当执行页遍历时,页遍历的各种中间条目可以被保存为pwc中的页目录条目。高速缓存在pwc阵列中的页遍历步骤允许处理系统更快地执行后续页遍历,因为它不必执行高速缓存的页遍历步骤,和/或页遍历不需要从头开始。
49.基页转换(rpt)是存储器虚拟化的常见和流行的方法,其中使用基树将有效/虚拟地址空间转换为真实/物理地址。rpt是分层转换表机制的示例。表的层次被称为动态地址转换(dat)表,并且对于rpt,这些表被称为基表。对于rpt过程,基树(即,基表)存储在物理地址空间(例如,主存储器)中,并且树的根(也被称为页目录基址)存储在处理器(cpu)中的寄存器中。基页表在一实施例中是例如分层的数据结构,其指定虚拟页号和真实页号、虚拟页号和虚拟化真实页号、或虚拟化真实页号和真实页号之间的映射。
50.为了执行基页表遍历(rpt)以将虚拟地址转换成物理存储器中的真实地址,处理器在基树的根或基址处开始,并使用来自虚拟地址的位的集合作为到页目录条目或表中的偏移。在指定偏移处的页目录条目指向下一级页目录条目或表。来自虚拟地址的位的另一集合用于索引到此条目/表中,并挑选将被使用的下一页目录条目/表。该过程继续,直到最后的位的集合用于发现页表中的页表条目(pte)。在当前系统中,这种通过表的遍历过程完全由处理器cpu管理,并且部分地由于cpu和存储器控制器(mc)之间的大量交换而可能花费
很长时间。
51.公开了用于通过增加由存储器控制器在表遍历过程期间执行的责任和操作来加速rpt表遍历的一个或多个实施例。在一个或多个实施例中,存储器控制器(mc)执行整个表遍历,减少cpu与存储器/存储器控制器(mc)之间的交换的数量。在一实施例中,存储器控制器执行整个表遍历,并且将最终页表条目(pte)以及基树转换中的所有中间地址从存储器控制器发送或发送回处理器(cpu)。这种方法减少了时延,并且允许例如在页遍历高速缓存(pwc)中、在处理器(cpu)中高速缓存基树。在另一实施例中,存储器控制器(mc)执行整个表遍历,并且仅有最终页表条目(pte)被从存储器控制器发送回处理器(cpu)。该方法减少了时延并消除了页遍历高速缓存(pwc),并且在一方面中消除了用于主机转换的页遍历高速缓存(pwc)。在一个或多个实施例中,包含期望转换的最终pte条目在处理器(cpu)处比现有方法允许的更快地可用。
52.参考图3a描述了基页转换的一个示例。在该示例中,提供转换表404以用于将虚拟存储器402的地址转换为真实地址。分层转换表404的最高阶转换表的起源例如由控制寄存器(cr3)406提供。有效或虚拟地址408用于索引到分层转换表404的每个表中,以确定下一个表的源地址,直到例如定位到具有物理存储器410的页地址409的页表条目(pte)。在转换机制利用dat表的一个示例中,有效地址是具有用于索引到转换表中的多个索引或偏移的虚拟地址。
53.图3b示出了rpt的另一示例,例如,通过基表的表遍历过程,其中,通过有效或虚拟地址408的高部分408a“索引”分层结构的最高级转换表,以定位用于定位下一转换表(表2)的表1条目412a。也就是说,表1中的条目412a包括表2的源地址。类似地,有效或虚拟地址408的下一部分408b用于索引到表2中以发现具有表3的源地址的表2条目412b。有效或虚拟地址408的下一部分408c用于索引到表3中,以发现具有页表414a的源地址的表3条目412c。有效或虚拟地址408的下一部分408d用于索引到页表414a中以定位具有物理存储器页416的地址的页表条目412d。在一个实施例中,转换表分层结构的起源可以包括表选择器字段,用于确定哪个转换表的分层结构来启动转换。因此,转换可能仅需要分层的子集(其中有效地址被限制为包括具有零值的预定数目的最高有效位)。使用较少的表的转换将比使用较多的表的转换快。
54.图4示出了rpt过程的另一示例的框图,其中,使用基树将虚拟地址空间转换为物理地址,例如,通过基树的多个级执行表遍历。处理器(cpu)156远离存储器162。图5和图6示出了处理器(cpu)156和存储器162以及处理器156和存储器控制器161之间的数据交换的框图,其中存储器控制器161与存储器162相关联并且在其本地。在一个或多个实施例中,存储器162包含一个或多个存储器卡(未示出),其中每个存储器卡具有存储器控制器161和一个或多个dram(未示出)以存储数据。在图4、5和6的示例中,48位寻址被用作用于描述的目的的示例,而不是作为对说明性实施例的限制。可以以本文中描述的方式利用任何大小(位宽)的寻址系统来实践转换过程,并且在示例性实施例的范围内可以设想该转换过程。
55.在图4、5和6的示例中,48位虚拟地址的最低16位408e是页偏移(假设64kb页),并且提供地址以在存储器中的页上定位期望的转换后的真实地址。接下来的8位408d是到页表中的偏移,而接下来的三个8位的集合408c、408b和408a是到不同页目录级的偏移。为了执行表遍历,虚拟地址408的部分与页目录基址420(其也被称为页目录根420)一起由处理
器(cpu)156发送到存储器控制器(mc)161。具体地,通常,虚拟地址408的所有上部,除了页偏移位(例如,页位408e),都由处理器(cpu)156发送到存储器控制器161。在图4、5和6的示例中,页目录1-偏移408a、页目录2-偏移408b、页目录3-偏移408c和页表偏移408d,以及页目录根或基址420,分别如图5和图6中的570和670所示被发送到存储器控制器161。也就是说,在一个或多个实施例中,在转换开始时,页目录条目1(pde1)由cpu156发送到存储器控制器161,该页目录条目1指页目录基址420加上页目录1-偏移408a,偏移例如为408b、408c和408d,如570和670所示。换句话说,在一实施例中,所有偏移(408a、408b、408c和408d)一起发送,并且在一方面,与页目录基址420一起发送,或者与页目录基址420一起顺序地发送,通过处理器(cpu)156和存储器162之间的总线从处理器156发送到存储器控制器161。使用新指令来发送页目录2-偏移408b、页目录3-偏移位408c和页表偏移408d,以及页目录1-偏移408a和页目录基址420,如同在先前的转换方法中一样,在发送其它偏移408b、408c或408d之前以及没有发送其它偏移408b、408c或408d的情况下,页目录1-偏移408a和页目录根或基址420由处理器156最初发送到存储器控制器161。
56.页目录根或基址420由操作系统提供,并且在一方面,页目录基址420基于正在被转换的虚拟地址的线程。根据实施例,为了执行表遍历,由存储器控制器161将页目录1-偏移408a添加到存储器控制器161中的页目录基址420,并且如图4中的425处所示执行存储器访问以读取此存储器位置。在一方面,存储器获取425利用存储器控制器161从位于存储器卡上的dram获得信息和数据。页目录基址420用于标识表或目录的地址,并且页目录1-偏移408a用作到由页目录基址420标识的表中的索引。表中的该条目,例如由表中该条目处的地址所标识的存储器位置,包含用于转换的第2级页目录条目的基址,例如页目录表2地址430。一个或多个实施例中的存储器获取425从存储器获得多于转换表的索引条目,并且在一方面获得将存储在与处理器相关联的一个或多个高速缓存(例如l2/l3高速缓存)中的信息。根据一实施例,其中转换中介存储在处理器156中的,并且在一方面存储在处理器156中的页遍历高速缓存(pwc)中,图5中的pde1响应572从存储器控制器161发送到处理器(cpu)156。一方面中的pde1响应572包含在425处从存储器获取的信息,并且在另一方面包括页目录表2地址。在一个或多个实施例中,页目录表2地址存储在pwc中,并且在一方面,页目录表2地址由处理器156存储在pwc中。
57.继续该转换,在存储器控制器161中并由其将页目录2-偏移408b添加到目录基址(页目录表2地址)430,并且如图4中435处所示执行存储器访问以读取该存储器位置。在一方面,存储器获取435利用存储器控制器161从位于存储器卡上的dram获得信息和数据。页目录表2地址430用于标识表或目录的地址,并且页目录2-偏移408b用作到由页目录基址430标识的表中的索引。该存储器位置包含用于转换的第3级页目录条目的基址,例如页目录表3的地址440。一个或多个实施例中的存储器获取435从存储器获得多于转换表的索引条目,并且在一方面获得将存储在与处理器相关联的一个或多个高速缓存(例如l2/l3高速缓存)中的信息。根据一实施例,其中转换中介存储在处理器中,并且在一方面存储在页遍历高速缓存(pwc)中,图5中的pde2响应574从存储器控制器161发送到处理器(cpu)156。一方面中的pde2响应574包含在435处从存储器获取的信息,并且在另一方面包括页目录表3地址。在一个或多个实施例中,页目录表3地址存储在pwc中,并且在一方面由处理器156存储在pwc中。
58.进一步继续该转换,如果被转换的虚拟地址408具有被发送到存储器控制器161的附加偏移位,则由存储器控制器161将页目录3-偏移408c添加到存储器控制器161中的目录基址(页目录表3地址)440,并且如图4中445处所示执行存储器访问以读取该存储器位置。在一方面,存储器获取445利用存储器控制器161从位于存储器卡上的dram获得信息和数据。页表3地址440用于标识表或目录的地址,并且页目录3-偏移408c用作到由页目录基址440标识的表中的索引。该存储器位置包含用于转换的页表偏移条目的基址,例如页表地址450。一个或多个实施例中的存储器获取445从存储器获得多于转换表的索引条目,并且在一方面获得将存储在与处理器相关联的一个或多个高速缓存(例如l2/l3高速缓存)中的信息。根据一实施例,其中转换中介存储在处理器中,并且在一方面存储在页遍历高速缓存(pwc)中,图5中的pde3响应576从存储器控制器161发送到处理器(cpu)156。一方面中的pde3响应576包含在445处从存储器获取的信息,并且在另一方面包括页表地址。在一个或多个实施例中,页表地址存储在pwc中,并且在一方面由处理器156存储在pwc中。
59.进一步继续沿着页表遍历以获得地址转换,由存储器控制器161将页表偏移408d添加到存储器控制器161中的目录基址(页表地址)450,并且如图4中455处所示执行存储器访问以获得页表条目(pte)460。在一方面,存储器获取455利用存储器控制器161从位于存储器卡上的dram获得信息和数据。页表地址450用于标识表或目录的地址,页表偏移408d用作到由页表地址450标识的表中的索引。该存储器位置包含用于转换的页表条目460。图5中的pte响应578从存储器控制器161发送到处理器(cpu)156。类似地,在图6的转换过程中,pte响应678从存储器控制器161发送到处理器(cpu)156。pte响应578和678在一方面包含在455处从存储器获取的信息,并且在另一方面包括页表条目(pte)460。在一个或多个实施例中,页表条目(pte)460存储在tlb中,并且在一方面由处理器156存储在tlb中。
60.在一个或多个实施例中,如图5和图6所示,到目录表中的所有偏移与页基址根目录一起被从处理器发送到存储器控制器,优选地在表遍历过程的起始时,并且优选地一起发送。存储器控制器而不是处理器在一个或多个实施例中执行表遍历,例如,存储器控制器将偏移添加到基表/目录,并且存储器访问从存储器控制器发出。即,存储器控制器将读取存储器,例如dram,并将偏移相加。在图5和图6的两种方法中,存储器控制器而不是处理器(cpu)在转换期间执行指针追踪过程。
61.在图6的实施例中,仅最后的存储器行访问(例如,包含页表条目(pte)460的存储器行访问)被发送回处理器,并且优选地被存储在处理器中的tlb中。在图6的实施例中,中间存储器访问(例如,包含中间目录430、440和450的中间存储器访问)不被发送回处理器,并且中间目录不被存储在任何页遍历高速缓存(pwc)中。在图5的实施例中,一个或多个中间存储器访问(例如,包含页目录表2条目/地址430、页目录表3条目/地址440和页目录表条目/地址450的一个或多个中间存储器访问)并且优选地除了图4中的页表条目460之外所有的中间存储器访问被从存储器控制器161发送到处理器156。被发送回处理器的中间存储器访问中包含的中间目录条目430、440和450可以被存储在一个或多个页遍历高速缓存(pwc)中,而页表条目(pte)可以被存储在tlb中。例如,图3b中所示的转换或表遍历的中间条目(412a、412b和412c)被发送回处理器,并且优选地被存储在pwc中,而来自图3b中所示的转换或表遍历的页表条目412d被发送回处理器并且被存储在tlb中。虽然图5的实施例示出了所有中间转换(例如,基表或目录)被发送回处理器,但是可以理解,少于所有中间存储器访
问以及中间存储器访问的任何组合(例如,中间目录条目)可以被发送回处理器,并且在一方面可以被存储在一个或多个页遍历高速缓存(pwc)中。
62.在图6实施例中,在存储器控制器被请求饱和的情况下,处理转换的时延可以相比图5实施例减少,因为仅pte响应678被发送回处理器。虽然图6实施例应当更快地完成转换(表遍历),但是处理器不具有存储在页遍历高速缓存(pwc)中的中间页表目录的益处。因此,中间转换是否被保存在pwc中是设计选择的问题,包括是否包括高速缓存或者高速缓存是否足够大以存储中间目录转换,以期减少将来的表遍历时延。
63.在典型的现代微处理器中,处理器将偏移添加到处理器中的基址目录,处理器将基址和偏移(例如,基址420 偏移408a,或基址430 偏移408b)发送到存储器以获取下一基址,并且响应(例如,存储器访问结果)被发送回处理器。这样的存储器访问交换是300个周期的量级,因此,为了遍历具有这样的系统配置的图4的表遍历将花费1200个周期的量级。在如图2b所示的虚拟化环境中,其中客户操作系统在管理程序的基页表的顶部实现基页转换树,单个客户转换可能需要处理器和存储器之间的多次存储器交换,例如总共7200个周期的24次存储器交换。在其中在存储器控制器中执行转换的实施例中,消除了处理器和存储器之间的那些存储器访问交换,减少了表遍历过程中涉及的时延。仍然存在存储器访问以获得驻留在存储器中的信息,但是那些存储器访问由本地的存储器控制器控制,并且通常与存储器设备(例如dram)在同一卡上。换句话说,存储器获取请求不从处理器发出,并且不必穿过处理器和存储器之间的总线。
64.这两种方法的益处在于减少了处理器和存储器/存储器控制器之间来回交换的次数。根据这些实施例的系统和转换过程不会引起处理器和存储器/存储器控制器之间的多次往返交换,并且因此不会引起与为了这些存储器访问而穿过处理器156和存储器162之间的总线相关联的时延。例如,在图6的实施例中,优选地存在由处理器156发送到存储器控制器161的一个存储器访问请求670,以及从存储器控制器161发送回处理器156的一个响应678,例如包含页表条目的存储器访问行。可以预期,根据典型技术,由存储器控制器返回给处理器的单个响应将比多个存储器访问中的一个花费更长的时间,例如500个周期,因为当存储器控制器遍历各个表/目录的转换时,将存在对存储器的多个访问。然而,处理器和存储器控制器之间的单个交换将减少遍历基树例如以获得转换(pte 460)的总延时。
65.图5中所示的转换过程在一个或多个实施例中可以消耗与现有表遍历过程相同的带宽,并且比图6的转换过程花费更长的时间,但是仍然比现有技术减少了时延,同时具有存储在处理器中的页遍历高速缓存中的中间地址(中间表/目录)的益处。将中间表和目录的中间地址从存储器控制器发送回处理器下与图6相比可以减慢图5的转换过程,但是可能不明显。在一实施例中考虑发送中间响应中的每一个(例如pde响应572、pde2响应574和pde3响应576)将花费大约60-70个周期,但是将少于执行处理器和存储器之间每个往返交换的300个周期。在一个或多个实施例中,存储器控制器可以知道cpu高速缓存中(例如,页遍历表(pwc)中)中间地址的存在或不存在,并且在一个或多个方面,存储器控制器可以仅发送所需的存储器行。以这种方式,保留了在页遍历高速缓存(pwc)中高速缓存(例如,中间表/目录的)中间地址的益处,但是将改善在最后一级页遍历高速缓存(图4中的页面目录表3地址440)中未命中的任何表遍历的时延。
66.尽管图5和图6中的地址转换过程的实施例示出了单级转换,例如虚拟地址到真实
地址的单级转换,但是图5和图6的地址转换过程及其组合也可以用于嵌套转换。在嵌套转换中,例如在如图2b所示的虚拟机托管客户的情况下,在客户过程使用在运行基转换的主机上运行的基转换的情况下,将存在多个rpt级。客户转换将具有中间转换,例如,pde2、pde3和pte地址,并且pde2、pde3和pte地址与客户的每一存储器访问相关联(主机级的pde2、pde3和pte)。通过对各种客户和主机级转换利用图5和图6的转换过程,可以实现转换中延时的进一步减少。嵌套转换还可以使用图5和图6的过程的组合。例如,用于主机转换的中间信息(例如页遍历高速缓存和/或tlb中的条目)将不被存储为如图6的过程部分所示,而中间信息(例如页遍历高速缓存中的条目)将被存储用于客户,如图5的过程所示。也就是说,中间物不是为主机转换存储器访问而存储的,中间物是为客户转换存储器访问而存储的。通过利用这种用于嵌套地址转换的混合方法,通过不存储主机转换的任何中间信息(例如,没有中间目录地址)而存储客户转换的中间信息来创建仅一级转换的外观,将减少占用空间。占用空间的减少可以弥补由于因为面积减少、功率减少和对于继续被高速缓存的客户转换的tlb的更好利用而不存储主机的中间地址而造成的任何损失。例如,在客户运行在主机上的虚拟化系统中,在现有过程下可能需要存储18个pwc条目和6个tlb条目用于一个嵌套转换,而利用混合(组合)方法,仅3个pwc条目和六个tlb将被存储,从而节省处理器面积减少和功率减少。
67.图7是根据一个实施例的示例性流程图,其示出并描述了处理数据的一种或多种方法,在一实施例中包括根据本公开的一个或多个实施例的处理地址转换,例如,基页转换(rpt)。更具体地说,所公开的方法在一方面针对优选地以存储器控制器执行表遍历来执行表遍历以获得地址转换。虽然为了方便起见并且不是为了将本公开限制为包括一系列和/或多个步骤而描述方法700,但是应当理解,该过程不需要作为一系列步骤来执行,和/或这些步骤不需要以关于图7所示和所述的顺序来执行,而是该过程可以被集成和/或一个或多个步骤可以一起、同时执行,或者这些步骤可以以所公开的顺序或以替代顺序来执行。
68.图7中的方法700涉及在信息处理系统中处理数据,并且更具体地涉及处理地址转换,例如在虚拟化存储器系统中将虚拟地址转换为真实地址,在实施例中包括处理嵌套地址转换。在信息处理系统中,处理器处理包括从存储器加载数据的请求的指令。通常,从存储器加载数据的请求或指令包括到所需数据所位于的存储器中的位置的虚拟地址,并且那些虚拟地址需要被转换成物理存储器设备中的真实地址。在705处,进行地址转换的请求。地址转换的请求可以来自被解码并被发给处理器的指令。在710处,处理器将基址目录和虚拟地址偏移发送到存储器控制器。在一个或多个实施例中,在710处,处理器将所有虚拟存储器偏移一起发送到存储器控制器,优选地与基址目录一起。在一实施例中,在710处,处理器将第一级虚拟地址添加到基址目录,并将组合的基址目录和第一级偏移与剩余的虚拟存储器偏移发送到存储器控制器。可以理解,除了页位之外的所有虚拟存储器偏移,例如,除了指定存储器页上的位置的地址位之外的所有虚拟地址位,可以从处理器发送到存储器控制器。
69.在715处,在一个实施例中,存储器控制器将处理器发送的偏移添加到基址目录。在地址转换的第一实例中,在715处,第一级偏移被添加到基址目录。在处理器将第一级偏移添加到基址目录的实例中,存储器控制器不执行该组合。在720处,存储器控制器为由基址和偏移指示的存储器行访问存储器。在一个或多个实施例中,存储器控制器将偏移组合
或添加到目录表,例如,使用偏移和当前目录表或基址来查找和获取下一目录表。如果这是第一级存储器转换,则存储器控制器为由基址和第一级偏移指示的存储器行访问存储器。如上所述,偏移位在一方面表示到目录表中的索引,并且在720处存储器控制器为与目录表中的条目相对应的存储器行访问存储器。在一实施例中,由存储器控制器读取的存储器行包含下一目录表的地址。在一个或多个实施例中,当从存储器读取的存储器行可能包含包括不止目录表地址的数据块时,存储器控制器提取下一目录表的地址。
70.在730处,确定转换过程是否保存中间基址目录地址。如果系统正在保存中间目录表地址(730:是),则在735处,在720处由存储器控制器访问的存储器行被发送回处理器。在一方面,在735处,整个存储器行被发送回处理器,或者在一个或多个实施例中,中间目录表地址被发送回处理器。在740处,中间目录表地址被保存在处理器中的页遍历高速缓存中。在一方面,当发送回处理器的存储器行具有比仅仅目录表地址更多的数据时,处理器提取中间目录表地址的地址并将其保存在页遍历高速缓存中。740之后的过程继续到750。
71.在730处,如果确定中间目录表没有被保存(730:否),则该过程继续到750,其中确定在由存储器控制器接收的虚拟地址中是否存在任何附加偏移。因此,如果转换过程根据图6的实施例操作,则过程将从730前进到750,跳过步骤735和740。如果在750处确定存在到虚拟地址的附加偏移(750:是),则过程返回到步骤715,其中存储器控制器将偏移添加到目录表。在过程返回到过程步骤715的实例中,添加(索引到)下一级偏移的目录表是在720处从存储器访问返回的地址处的目录表,并且在一方面,是由先前目录表中标识的条目指定的地址处的目录表。存储器控制器此后进行到720,其中存储器控制器再次访问(读取)存储器,这次为包含下一目录表的存储器行。所述过程继续进行步骤715、720、730、735及740,直到在750处不再存在虚拟地址偏移为止(750:否)。换句话说,过程700继续,直到在750处完成表遍历。
72.如果在750处不存在更多虚拟地址偏移(750:否),则表遍历完成,并且在755处,来自在720处的存储器访问的存储器行被发送到处理器。在一实施例中,可以从在720处读取的存储器行提取页表条目(pte),并且pte可以被发送到处理器。在760处,pte被保存在处理器中的tlb中。在755处发送回处理器的存储器行不仅包含pte的情况下,在760处,处理器提取pte并将其存储在tlb中。对该地址转换的将来请求应命中tlb。
73.虽然优选地以硬件(诸如以处理器的单元和电路)实现上述说明性实施例,但是也可以以软件实现说明性实施例的各个方面。例如,将理解,图7中的流程图图示的每个框以及流程图图示中的框的组合可以由计算机程序指令实现。这些计算机程序指令可以被提供给处理器或其他可编程数据处理装置以产生机器,使得在处理器或其他可编程数据处理装置上执行的指令创建用于实现流程图的一个或多个框中指定的功能的部件。这些计算机程序指令还可以存储在计算机可读存储器或存储介质中,其可以引导处理器或其他可编程数据处理装置以特定方式工作,使得存储在计算机可读存储器或存储介质中的指令产生包括实现流程图的一个或多个框中指定的功能的指令部件的制品。
74.因此,流程图图示的框支持用于执行指定功能的部件的组合、用于执行指定功能的步骤的组合、以及用于执行指定功能的程序指令部件。还将理解,流程图图示的每个框以及流程图图示中的框的组合可以由执行指定功能或步骤的基于专用硬件的计算机系统或者由专用硬件和计算机指令的组合来实现。
75.本公开的一个或多个实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本公开的各方面。
76.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
77.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
78.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的编程语言(诸如smalltalk、c 等)以及常规的过程式编程语言(诸如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以便执行本公开的各方面。
79.本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令来实现。
80.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的部件。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的
各方面的指令。
81.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其他可编程装置或其他设备上被执行,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
82.附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不按图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
83.此外,根据各种实施例的系统可以包括处理器和与处理器集成和/或可由处理器执行的逻辑,该逻辑被配置为执行本文所述的过程步骤中的一个或多个。通过集成,是指处理器具有作为硬件逻辑嵌入其中的逻辑,诸如专用集成电路(asic)、现场可编程门阵列(fpga)等。通过可由处理器执行,是指逻辑是硬件逻辑;软件逻辑,诸如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置成使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如asic、fpga、中央处理单元(cpu)、集成电路(ic)、图形处理单元(gpu)等。
84.以下权利要求中的所有部件或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了本公开的实施例的描述,但是其并非旨在是穷举的或者限于以所公开的形式的实施例。在不背离本公开的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择和描述实施例和示例是为了最好地解释本公开的原理和实际应用,并且使本领域其他普通技术人员能够理解本公开的具有各种修改的各种实施例,这些修改适合于所设想的特定用途。
85.本文描述的程序是基于在本公开的特定实施例中实现它们的应用来标识的。然而,应当了解,本文中的任何特定程序命名仅出于方便的目的而使用,并且因此本发明不应限于仅在由这样的命名所标识和/或暗示的任何特定应用中使用。
86.很清楚,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。
87.还将理解,可以以代表客户部署的服务的形式提供本公开的实施例,以按需提供服务。
88.已经出于说明的目的呈现了本公开的各种实施例的描述,但是其并非旨在是穷举的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域其他普通技术人员能够理解
本文所公开的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献