专利名称:使用虚拟化信息加速存储器操作的制作方法
使用虚拟化信息加速存储器操作
背景技术:
计算系统之内的存储器的分级组织通过利用芯片上高速缓存存储器以旁路高延迟芯片外系统存储器存取来提高存储器操作的性能。高速缓存一致性协议保证了保持给定系统的存储器的分级组织之内的数据的完整性。通过高速缓存一致性考虑来影响存储器操作的性能。
发明内容
根据本发明的一个或多个实施例的一个方面,一种使用虚拟化信息加速存储器操作的方法包括执行计算系统的硬件资源上的超控制器(hypervisor)。在所述超控制器的控制下产生多个域。每个域被分配存储器资源,存储器资源包括由该域排外地可存取的 的可存取的存储器空间。每个域被分配一个或多个处理器资源。所述超控制器识别包括每个域的可存取的存储器空间的边界的域布局信息。所述超控制器向每个处理器资源提供域布局信息。每个处理器资源被配置为根据所述域布局信息基于每个域实现限制的一致性协议。当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议相对于所述域旁路下游高速缓存。根据本发明的一个或多个实施例的一个方面,一种系统包括处理器、系统存储器、网络设备、输入设备和输出设备。所述处理器执行使用虚拟化信息加速存储器操作的指令,所述虚拟化信息包括执行计算系统的硬件资源上的超控制器。在所述超控制器的控制下产生多个域。每个域被分配存储器资源,存储器资源包括由该域排外地可存取的的可存取的存储器空间。每个域被分配一个或多个处理器资源。所述超控制器识别包括每个域的可存取的存储器空间的边界的域布局信息。所述超控制器向每个处理器资源提供域布局信息。每个处理器资源被配置为根据所述域布局信息基于每个域实现限制的一致性协议。当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议相对于所述域旁路下游高速缓存。本发明的其它方面通过以下说明书和附加的权利要求书将是清楚的。
图I示出了根据本发明的一个或多个实施例的计算系统。图2示出了根据本发明的一个或多个实施例的计算系统的印刷电路板。图3示出了根据本发明的一个或多个实施例的计算系统的处理器。图4示出了根据本发明的一个或多个实施例的超控制器结构。图5示出了根据本发明的一个或多个实施例的使用虚拟化信息加速存储器操作的方法。
具体实施例方式现在参考附图详细描述本发明的详细的实施例。各个图中的类似的元件由类似的参考数字表示以便于一致。此外,在下面的具体实施方式
中,阐述许多的细节以便提供对本发明的更彻底的理解。在其它情况下,没有详细描述公知的特征以避免不必要地模糊本发明的具体实施方式
。图I示出了根据本发明的一个或多个实施例的计算系统。计算系统100包括输入设备110、输出设备120和机械机壳130。机械机壳130包括一个或多个印刷电路板(“PCB”)、网络设备和存储设备(未示出)。在本发明的一个或多个实施例中,计算系统100是服务器、工作站、桌上型计算机或便携式计算机。本领域普通技术人员将认识到计算系统可以是任何基于处理器的计算设备。图2示出了根据本发明的一个或多个实施例的计算系统的印刷电路板。PCB 200包括一个或多个处理器210、系统存储器220和网络设备230。在本发明的一个或多个实施例中,网络设备230支持以太网标准。本领域普通技术人员将认识到,一个或多个处理器210、系统存储器220和网络设备230可以被布置在一个或多个PCB 200的任何组合上作为计算系统100的一部分。
图3示出了根据本发明的一个或多个实施例的计算系统的处理器。每个处理器210包括布置在基板320上的一个或多个管芯310。每个管芯310包括一个或多个处理核330。每个处理核330包括一个或多个芯片上高速缓存作为计算系统100之内的存储器的分级组织的一部分。芯片上高速缓存可以存储指令、数据或指令和数据的组合。本领域普通技术人员将认识到,芯片上高速缓存的使用可以加速存储器操作。由单个处理核构成的处理器210被称为单核处理器。单核处理器包括专用一级高速缓存(“Ll$”)和专用二级高速缓存(“L2$”)。在这种情况下,Ll$和L2$是专用的,因为它们用于单核处理器的排外的使用。高速缓存按照与核的接近次序被命名。在这种情况下,最接近于核的高速缓存被指定为Ll$。如果计算系统100包括共享系统存储器220的多个单核处理器,则附加的硬件可以被实现在计算系统100之内以保证每个单核处理器的高速缓存和系统存储器220的一致性。此附加的硬件可以包括由所述多个单核处理器共享的共享一致性集线器或目录。对于多个单核处理器的一个单核处理器,除了它自己的专用Ll$和专用L2$以外的所有高速缓存被认为是下游高速缓存。由多个处理核构成的处理器被称为多核处理器。在多核处理器中,每个核包括专用Ll$、专用L2$和由包括多核处理器的所有处理核共享的三级高速缓存(“L3$”)。在这种情况下,L3$被认为是共享的,因为它被包括多核处理器的所有核共享。如果计算系统100包括共享系统存储器220的多个多核处理器,则附加的硬件可以被实现在计算系统100之内以保证每个处理器的高速缓存和系统存储器220的一致性。此附加的硬件可以包括由所述多个多核处理器共享的共享一致性集线器或目录。对于多核处理器的核,除了它自己的专用Ll$和专用L2$的所有高速缓存被认为是下游高速缓存。本领域普通技术人员将认识至IJ,虽然多核处理器的高速缓存配置可以变化,但是下游高速缓存是任何共享高速缓存或另一个核或处理器的专用高速缓存。全系统高速缓存一致性协议保持计算系统之内的所有高速缓存和共享存储器资源之间的一致性。仅仅为了示例,在示范性高速缓存一致性协议中,每个高速缓存线的状态被指定为修改、拥有、独占、共享或无效。被指定为修改的高速缓存线指示高速缓存线保持数据的正确的版本,存储在系统存储器中的数据是旧的,以及没有其它的核/处理器保持副本。修改的高速缓存线有时被称为脏的,指示包含已被从存储在系统存储器中的数据修改的数据。被指定为拥有的高速缓存线指示高速缓存线保持数据的正确的版本,存储在系统存储器中的数据可以是旧的,以及如果其它核/处理器的高速缓存线被指定为共享,则其它核/处理器可以保持数据的副本。但是,仅仅一个核/处理器可以保持被指定为拥有的高速缓存线中的数据。被指定为独占的高速缓存线指示高速缓存线保持数据的正确的版本,存储在系统存储器中的数据是数据的正确的版本,以及没有其它的核/处理器保持数据的副本。独占的高速缓存线有时被称为干净的,指示高速缓存线包含匹配存储在系统存储器中的数据的数据。被指定为共享的高速缓存线指示高速缓存线保持数据的正确的版本,当没有其它核/处理器保持拥有的状态中的数据时存储在系统存储器中的数据是正确的版本,以及如果其它核/处理器的高速缓存线被指定为共享,则其它核/处理器可以保持数据的副本。指定为无效的高速缓存线指示存储在高速缓存线中的数据不是数据的有效的和正确的版本。虚拟化技术在计算系统之内产生一个或多个专用执行环境。虚拟化可以被实现为操作系统(“OS”)虚拟化或虚拟机虚拟化。在OS虚拟化中,OS在OS的单个实例之内产生多个专用执行环境。每个专用执行环境由所述OS控制并且独立于硬件层。在虚拟机虚拟化 中,虚拟机监控器或超控制器运行一个或多个虚拟机,也称为域,每个域可以同时在单个计算系统上运行不同的OS。图4示出了根据本发明的一个或多个实施例的超控制器结构。计算系统100包括硬件资源410、超控制器420、控制域430和一个或多个来宾域440。硬件资源410包括一个或多个处理器210、系统存储器220和输入/输出资源(“10”)110和120。超控制器420是直接运行在硬件资源410上的软件层。在本发明的一个或多个实施例中,控制域430运行OS的全实例,并且每个来宾域440运行可以不同于运行在控制域430或其它来宾域440上的OS的OS的全实例。超控制器420分割、共享、管理、和监视硬件资源410并且充当硬件资源410和域之间的接口。因而,超控制器420执行提供虚拟化的平台,即虚拟化的平台的基础方面,所需的低级别操作。控制域430执行所有其它任务。例如,控制域430确定产生哪些来宾域440、每个来宾域440可以存取哪些资源、以及多少存储器分配给每个来宾域440。超控制器420包括将域调度到处理器上的调度器。包括控制域430的每个域包括它拥有并且不与其他域共享的虚拟处理器的集合。每个虚拟处理器可以被调度到运行的、被阻止的或可运行的核或处理器上。当控制域430被引导时,超控制器420保持少量存储器并且将其余的存储器分配给控制域430。当控制域430产生来宾域440时,它指示超控制器420从控制域430获得存储器并且将存储器再分配给来宾域440。在本发明的一个或多个实施例中,超控制器结构可以被实现为半虚拟化的(paravirtualized)环境或完全虚拟化的环境。在半虚拟化的环境中,OS的每个实例知道虚拟化层并且OS与超控制器420密切地工作以实现改善的性能。在完全虚拟化的环境中,OS的每个实例不知道它正在运行在虚拟化的环境中。虽然本发明在示范性完全虚拟化的环境中描述,但是本领域普通技术人员将认识到,限制的一致性优化可以被实现在根据本发明的半虚拟化的环境中。尽管存在计算系统之内的存储器的分级组织的益处,但是高速缓存一致性考虑可能负面地影响存储器操作的性能。在包括多个处理器的计算系统中,当存在高速缓存未命中或高速缓存线从共享状态升级到拥有状态时,必须确定系统中的任何其它处理器是否拥有所述线或者具有专用高速缓存之内的线的副本。虽然传统技术公开了用于实现此确定的各种技术,但是这些技术在向系统中的其它处理器或可以自身需要附加的询问的一些芯片外一致性集线器或目录广播询问必需的循环时间方面的成本是高的。因而,多处理器系统的存储器操作的延迟可以从在单处理器系统上看到的显著地增大,特别是随着处理器的数目增大。类似地,延迟问题存在于多核处理器实施方式中。再次,请求不得不被传递到具有对各个芯片上高速缓存的状态的全局可见性的某个单元,以便保证所需的数据不存在于另一个核的专用高速缓存中。随着核计数增大,此要求是繁重的并且往往会限制可行的高速缓存拓扑。在本发明的一个或多个实施例中,限制的一致性优化方法使用虚拟化信息加速存储器操作。在本发明的一个或多个实施例中,处理器210和/或系统100被完全虚拟化成许多独立的域一个控制域430和一个或多个来宾域440。这些域在超控制器420的控制 之下。每个域可以运行独立的OS和一个或多个独立的应用。由每个域存取的存储器实质上与由处理器或系统中的其他域寻址的存储器完全分开。因而,超控制器420绝对确定地知道在系统之内必须实施一致性的边界。例如,如果域O运行在处理器O上并且域I运行在处理器I上,则当域O执行存储器操作时,处理器O不可能具有落入域I的地址空间之内的任何线的副本。结果,当处理器O执行没命中处理器芯片上高速缓存的存储器操作或需要线被升级时,不需要检查处理器I是否具有所述线。结果,线可以被立即升级到拥有状态,或者数据可以直接被从系统存储器取出,而不等待远程确认。因而,在许多实例中,甚至在大的多处理器系统上的存储器延迟可以被减小到单处理器系统上观察到的存储器延迟。为了实现此方法,超控制器420必须为每个处理器210提供域布局信息。此域布局信息包括每一个域的可存取的存储器空间的边界。在没有提供此信息的情况下,每个处理器210将回到传统的全系统高速缓存一致性操作模式。当产生每个域时,超控制器420将向硬件资源410提供关于每个域的布局的信息,以使得硬件资源410可以开始视情况加速存储器操作。硬件支持是灵活的并且可以支持包括跨越单个硬件线程、单核、多核和可能多处理器的域的各种配置。硬件资源410进行限制的一致性优化所需的信息可以根据准确的域位置和实现的高速缓存拓扑被保持在存储器分级体系的不同级别处。结果,实现者想要加速的特定域配置将指示哪些高速缓存级别和存储器控制单元需要被增强以提供此支持。如果域由单个硬件线程构成,则核自身可以将来自于硬件线程的所有存储器请求标记为能够受益于限制的一致性优化的操作。因为请求通过存储器分级体系传播,所以操作能够被相应地加速。例如,对于命中芯片上高速缓存的存储器,线能够立即被升级到修改状态,而不需要在芯片外传播信息。对于芯片外请求,线能够被直接从局部存储器获得,而不需要通知或检查系统中的任何其它处理器或芯片外目录。在本发明的一个或多个实施例中,此机制被实现在具有每核超优先的(hyperprivileged)寄存器的硬件中,其中每个位指示核中的对应硬件线程是否被配置为单线程域。对于每一个存储器请求,则核的负载存储单元能够利用来自于超优先的寄存器的合适的位标记请求以向下游高速缓存通知请求是否来源于单线程域并且是否能够被加速。如果域由单核构成,则核的最近的专用高速缓存能够标记请求以向下游高速缓存通知请求来自于单个核域并且能够被加速。在本发明的一个或多个实施例中,这可以通过提供一种机制,例如特殊的存储器来实现,经由该机制,虚拟机监控器能够设置高速缓存中的超优先的寄存器以指示它的核正在作为单核域操作。如果域跨越相同的处理器上的多个核,则处理分配给域的所有核的最接近的共享高速缓存可以标记请求以向下游高速缓存通知该请求来自于可以被加速的域。在这种情况下,每个高速缓存体可以被增强以支持超优先的寄存器,其中每个位指示来自于对应核的请求是否应当利用限制的一致性优化被处理。如果根据特定系统设计,域跨越多个处理器,则可以增强一致性集线器以限制一致性操作在系统中传播的程度。虚拟机监控器按与高速缓存配置类似的方式配置一致性集线器。 应当注意,某些域配置可以比其它的域配置运行得更差。例如,如果域仅仅使用给定的核上可用的硬件线程的一小部分,则可以优选地使得剩余的线程不使用,以使得核可以被配置为单个域。图5示出了根据本发明的一个或多个实施例的使用虚拟化信息加速存储器操作的方法。在步骤S510中,执行计算系统的硬件资源上的超控制器。在步骤S515中,在所述超控制器的控制下产生多个域。在本发明的一个或多个实施例中,超控制器产生控制域。控制域结合超控制器产生一个或多个来宾域。超控制器充当硬件资源和域之间的接口。在步骤S520中,为每个域分配存储器资源,存储器资源包括由该域排外地可存取的可存取的存储器空间。在本发明的一个或多个实施例中,超控制器保持少量存储器用于它的使用并且将其余存储器分配给控制域。当控制域产生来宾域时,控制域指示超控制器从控制域获得存储器并且将它再分配给来宾域。分配给每个域的存储器用于该域的排外的使用。在步骤S525中,每个域被分配一个或多个处理器资源。在本发明的一个或多个实施例中,每个处理器资源可以是硬件资源,即单核处理器、多核处理器的核或多核处理器,或者每个处理器资源可以是由硬件处理器资源的任何组合构成的虚拟化的处理器资源。在步骤S530中,超控制器识别包括每个域的可存取的存储器空间的边界的域布局信息。因而,超控制器绝对确定地知道在系统之内必须实施一致性的边界。在步骤S535中,超控制器向每个处理器资源提供域布局信息。在步骤S540中,超控制器配置每个处理器资源以根据所述域布局信息基于每个域实现限制的一致性协议。在本发明的一个或多个实施例中,超控制器通过超优先的寄存器配置每个处理器资源。每个处理器资源的配置将如上所述根据给定域的处理器资源是否由单个硬件线程、单个核、相同的处理器上的多个核或多个处理器构成来变化。在步骤S545中,当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议相对于所述域旁路下游高速缓存。作为另一种方式,计算系统将默认实现全系统高速缓存一致性协议。在可能时,超控制器将配置每个处理器资源以根据所述域布局信息基于每个域实现限制的一致性协议。对于给定域,当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议将旁路与下游高速缓存的所有交互。因而,不需要询问下游高速缓存,并且高速缓存线状态可以在不关心下游高速缓存的情况下改变。虽然域可以长时间存在,但是它们不是永久的。域可以被添加、移除、缩放或移动。当发生这样的事件时,如果硬件正在利用基于域布局的限制的一致性优化,则虚拟机监控器将需要向硬件通知关于该变化。此外,如果例如域从核O移动到核1,则可能的是,与核O相关联的高速缓存可以潜在地包含与该域有关的数据。结果,与核O相关联的高速缓存必须在对于核I重建限制的一致性优化之前被冲刷。虽然冲刷的高速缓存可以具有对性能的有害影响,但是不频繁移动域。虽然为简单起见,先前的示例已经假定不存在域之间的通信,但是这样的通信可以发生。这样的通信由虚拟机监控器沉重地管制,并且遵循建立的协议。在某些情况下,此通信包括将来自于一个域的地址空间的数据简单地复制到另一个域中。在其它情况下,虚拟机监控器可以建立可以由两个或更多个域存取的共享地址空间。在这些情况下,存在用于实现限制的一致性优化的几个选择。
在第一选择中,限制的一致性优化包含的各种高速缓存被配置为支持地址范围过滤,以使得硬件被配置为强迫某些地址范围服从全一致性,而大多数存取仍然能够受益于限制的一致性优化。虚拟机监控器将在共享的页被进行之前为硬件资源提供合适的地址过滤范围。此方法的耐久性由硬件支持以有效所需的同时的地址范围的数目决定。在第二选择中,域布局信息可以被更新以将通信的域看作必须保持线程间一致性的单个域。例如,考虑存在核O上的域O和核I上的域I的情况。最初,当请求参与限制的一致性优化时,每个核的专用高速缓存将负责标记请求。当域开始通信时,专用高速缓存不再能执行此标记功能。在该点,共享高速缓存将标记请求。作为请求,当虚拟机监控器最初配置域间通信信道时,虚拟机监控器必须更新域位置信息以保证在两个通信域之间保持一致性,但是仍然不需要包含系统的不必要的其余部分。在第三选择中,最简单的解决方案是禁止限制的一致性优化用于通信的域。一旦不再需要域之间的通信,就可以使能限制的一致性优化。 本发明的一个或多个实施例的优点可以包括以下中的一个或多个。在本发明的一个或多个实施例中,使用虚拟化信息加速存储器操作。在本发明的一个或多个实施例中,限制的一致性优化使用虚拟化信息来将多处理器系统上的延迟减小到单处理器系统的延迟。在本发明的一个或多个实施例中,限制的一致性优化使用虚拟化信息来修改传统的全系统高速缓存一致性协议,以在给定域的域布局信息排除下游高速缓存中的高速缓存命中的可能性时,旁路下游高速缓存。在本发明的一个或多个实施例中,限制的一致性优化可以根据域布局和高速缓存拓扑,被实现在存储器分级体系的不同的级别。虽然已经参考有限数目的实施例描述了本发明,但是已经受益于此公开的本领域技术人员将理解,可以设计不脱离这里公开的本发明的范围的其它实施例。因此,本发明的范围应当仅仅由所附的权利要求书限定。
权利要求
1.一种使用虚拟化信息加速存储器操作的方法,包括执行计算系统的硬件资源上的超控制器;在该超控制器的控制下产生多个域;向每个域分配存储器资源,所述存储器资源包括由该域排外地可存取的可存取的存储器空间;向每个域分配一个或多个处理器资源;识别包括每个域的可存取的存储器空间的边界的域布局信息;向每个处理器资源提供所述域布局信息;以及配置每个处理器资源以根据所述域布局信息基于每个域实现限制的一致性协议,其中当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议相对于所述域旁路下游高速缓存。
2.如权利要求I所述的方法,其中所述多个域由控制域和一个或多个来宾域构成。
3.如权利要求I所述的方法,其中所述限制的一致性协议使用虚拟化信息来限制传统的全系统高速缓存一致性协议。
4.如权利要求I所述的方法,其中每个处理器资源在所述域布局信息不存在或恶化的情况下回到全系统高速缓存一致性协议。
5.如权利要求I所述的方法,其中所述存储器资源是虚拟化的。
6.如权利要求I所述的方法,其中所述处理器资源是虚拟化的。
7.如权利要求I所述的方法,其中所述域是完全虚拟化的。
8.如权利要求I所述的方法,其中所述域是半虚拟化的。
9.一种系统,包括处理器;系统存储器;网络设备;输入设备;和输出设备,其中所述处理器执行使用虚拟化信息加速存储器操作的指令,包括执行计算系统的硬件资源上的超控制器;在该超控制器的控制下产生多个域;向每个域分配存储器资源,所述存储器资源包括由该域排外地可存取的可存取的存储器空间;向每个域分配一个或多个处理器资源;识别包括每个域的可存取的存储器空间的边界的域布局信息;向每个处理器资源提供所述域布局信息;配置每个处理器资源以根据所述域布局信息基于每个域实现限制的一致性协议;其中当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议相对于所述域旁路下游高速缓存。
10.如权利要求9所述的系统,其中所述多个域由控制域和一个或多个来宾域构成。
11.如权利要求9所述的系统,其中所述限制的一致性协议使用虚拟化信息来限制传统的全系统高速缓存一致性协议。
12.如权利要求9所述的系统,其中每个处理器资源在所述域布局信息不存在或恶化的情况下回到全系统高速缓存一致性协议。
13.如权利要求9所述的系统,其中所述存储器资源是虚拟化的。
14.如权利要求9所述的系统,其中所述处理器资源是虚拟化的。
15.如权利要求9所述的系统,其中所述域是完全虚拟化的。
16.如权利要求9所述的系统,其中所述域是半虚拟化的。
全文摘要
一种使用虚拟化信息加速存储器操作的方法包括执行计算系统的硬件资源上的超控制器。在所述超控制器的控制下产生多个域。为每个域分配存储器资源,存储器资源包括由该域排外地可存取的的可存取的存储器空间。每个域被分配一个或多个处理器资源。所述超控制器识别包括每个域的可存取的存储器空间的边界的域布局信息。所述超控制器向每个处理器资源提供域布局信息。每个处理器资源被配置为根据所述域布局信息基于每个域实现限制的一致性协议。当高速缓存线落入该域的可存取的存储器空间之内时,所述限制的一致性协议相对于所述域旁路下游高速缓存。
文档编号G06F9/44GK102934096SQ201180014409
公开日2013年2月13日 申请日期2011年3月14日 优先权日2010年3月18日
发明者L·斯普拉克林 申请人:甲骨文国际公司