首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

用于持久性远程直接存储器存取的系统与方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:英特尔公司

摘要:在示例中,公开了计算装置,其包括:主机结构接口HFI,其用于通信地耦合到结构的结构控制器;异步数据刷新ADR,其具有辅助电源以及ADR缓冲器;以及存储器控制器,其包括以下逻辑:经由结构直接对远程计算设备的持久性快速存储器进行存取;检测主电源故障事件;以及将数据从ADR缓冲器清除出至结构控制器。

主权项:1.一种计算装置,其包括:主机结构接口HFI,其用于通信地耦合至交换结构的结构控制器,其中,所述交换结构用于将所述计算装置耦合到远程计算设备;异步数据刷新ADR模块,其包括辅助电源和ADR缓冲器;以及存储器控制器,其包括逻辑,所述逻辑用于:经由所述交换结构直接对所述远程计算设备的持久性快速存储器进行存取;检测主电源故障事件;借助于所述辅助电源,将数据从所述ADR缓冲器清除出至所述交换结构的结构控制器;以及从所述结构控制器接收确认ACK,其中,所述ACK表示所述数据已被存储在所述交换结构的非易失性存储器中。

全文数据:持续性远程直接存储器存取发明内容[0001]本公开总体上涉及云计算的领域,并且较特别地,虽然不是仅涉及,但是涉及一种用于持久性远程直接存储器存取的系统与方法。背景技术[0002]当代的计算实践已离开硬件特定的计算并且移向“网络即为设备”。当代的网络可以包括数据中心,该数据中心托管大量的通用硬件服务器设备,该硬件服务器设备例如包含在服务器机架中并且由虚拟机监控程序控制。每个硬件设备可以运行虚拟设备例如,工作负载服务器或者虚拟桌面型设备的一个或多个实例。[0003]在一些情况中,虚拟化网络还可以包括网络功能虚拟化NFV,该网络功能虚拟化提供某些网络功能作为虚拟装置。这些功能可以被称为虚拟网络功能VNF。在过去,由这些VNF提供的功能可以由定做的硬件服务装置提供。[0004]因此,在当代“云”架构中,网络端点和网络基础结构两者可以至少部分地提供在虚拟化层中。附图说明[0005]当与附图一起阅读时,本公开是根据以下具体实施方式最佳理解的。要强调的是,根据工业中的标准实践,各种特征不必按比例绘制,并且仅用于示出目的。在示出比例尺的情况下,该比例尺仅明确或暗示地示出,其仅提供了一个示出的示例。在其它实施例中,为了讨论的清晰,可以任意增加或减少各种特征的维度。[0006]图Ia是根据本说明书的一个或多个示例的网络的框图。[0007]图Ib是根据本说明书的一个或多个示例的网络中的数据中心的选择的组件的框图。[0008]图2是根据本说明书的一个或多个示例的终端用户计算设备的选择的组件的框图。[0009]图3是根据本说明书的一个或多个示例的服务器的高级框图。[0010]图4a是根据本说明书的一个或多个示例的软件定义的网络SDN的框图。[0011]图4b是根据本说明书的一个或多个示例的网络功能虚拟化NFV的框图。[0012]图5是根据本说明书的一个或多个示例的平台架构的框图。[0013]图6是根据本说明书的一个或多个示例的处理器的框图。[0014]图7是根据本说明书的一个或多个示例的数据中心的框图。[0015]图8是根据本说明书的一个或多个示例的远程持久性写入的信号流图。[0016]图9是由根据本说明书的一个或多个示例的第一计算系统执行的方法的流图。[0017]图10是由根据本说明书的一个或多个示例的交换结构执行的方法的流图。[0018]图11是由根据本说明书的一个或多个示例的第二计算系统执行的方法的流图。具体实施方式[0019]以下公开提供了许多不同的实施例或示例以用于实现本公开的不同特征。对组件和布置的具体示例在以下进行描述以简化本公开。当然,这些仅为示例,并非旨在是限制性的。另外,本公开可以在各种示例中重复附图标记。该重复是出于简单和清楚的目的,并且本身不指示所讨论的各种实施例和或配置之间的关系。不同的实施例可以具有不同的优点,并且没有特定优点是任何实施例必需的。[0020]云计算和虚拟化导致其中“计算机”难以被认作单独实体的情景。在经典架构中,所谓的“冯诺依曼”机器具有处理器、存储器、输入输出(IO设施、以及在随后的使用中)非易失性存储装置。虽然这些必要的元件仍存在,但是在当代实践中,在许多情况中“数据中心是计算机”。例如,处理器事实上可以是保证在某个最小时间从资源池对一个或多个核进行访问的服务等级协议SLA。存储装置可以是具有正常大小的、可以弹性地被调整大小的虚拟磁盘VD,并且可以包括针对某个存储带宽和容量的SLA。对于虚拟桌面型设备,IO可以由运行远程终端上的虚拟化桌面应用的web浏览器例如,基本的“Chromebook”)处理。并且甚至存储器不再需要在处理器的本地。当数据中心结构演进并且变得较快时,具有专用的“存储器服务器”变得可行,该存储器服务器具有可以分配至某些处理器的、非常快且强大的存储器的池。[0021]最近,英特尔®公司和其它公司已引入进一步推动计算的界限的革命性存储器技术。例如,英特尔⑧的“3D交叉点”(3DXP提供这样的存储器:如传统动态随机存取存储器DRAM—样快速与传统DRAM相似并且可位寻址,但是也如非易失性存储技术例如,硬盘驱动或固态存储器一样持久。换言之,3DXP为“持久性快速存储器”,或者换句话说,是快于传统非易失性存储装置的、持久的而不应用电源的存储器。[0022]这是从依赖具有快速存储器以及慢速持久性存储器的两层存储器方案的数十年软件的向前飞跃。但是依赖持久性快速存储器以用于存储还引入了一些新难题。例如,系统不能仅等待“向存储器存储”(STO指令完成,并且假设现在数据是持久的。然而,存储可能临时处于易失性高速缓存与存储器控制器缓冲器之间的某处,而还未达到持久性。因为该情况对于发出STO指令的应用不可见,所以在主电源在数据达到持久性之前丢失的情况中,结果可能是不一致的存储器状态。[0023]为了解决该问题,可以向系统提供次要或辅助的电源设施例如,具有充足能量用于完成存储操作的电池或电容器)以及异步数据刷新ADR缓冲器。在主电源丢失的事件中,辅助电源用于将数据从高速缓存清除出(flushout至ADR缓冲器,因此完成持久性存储。[0024]然而,在有高速结构的情况下,甚至存储器可以不在处理器的本地。而远程直接存储器存取RDM可以用于对第二机器上的存储器进行存取,该第二机器可以具有较快或较有能力的存储器,例如,持久性快速存储器。在RDMA的情况中,托管在第二设备上的数据被映射,好像数据为本地存储器一样,并且可以被如此寻址和使用。现在,在主电源丢失的情况中,若干片段开始起作用。高速缓存的存储操作必须从本地高速缓存去向提供结构的交换机,并且然后从交换机去向提供存储器的第二设备。该存储未成功完成直至数据已被写入第二设备上的持久性存储器。[0025]为此,可以在设备一、交换机和设备二中的每个上提供ADR缓冲器。现在,在主电源丢失的情况中,可以出现事件的以下顺序:[0026]a.设备一具有高速缓存中的数据,该数据将持久性快速存储器作为目标。使用设备的辅助电源,设备一将数据从高速缓存清除出至设备一的本地ADR缓冲器。[0027]b.使用辅助电源,设备一经由主机结构接口(HFI将数据从ADR缓冲器发送至交换机。交换机利用确认ACK进行响应,表示从设备一的角度写入已被成功。[0028]c.在交换机上,使用辅助电源,数据被接收到ADR缓冲器中。ADR缓冲器本身可以是非易失性的(例如,双列直插式存储器模块DMM或者非易失性存储器NVMDMM。因此,如果在事务完成之前辅助电源出现故障,则数据不会丢失。[0029]d.—旦交换机已将数据接收到其ADR缓冲器中,则交换机将ACK发送至设备一。[0030]e.交换机现在将数据清除出至设备二,设备二具有目标持久性快速存储器。在将数据发送至设备二之后,交换机从设备二接收ACK,并且从交换机的角度,存储已完成。[0031]f.如果交换机从设备二接收ACK失败(例如,在事务完成之前,辅助电源出现故障),则交换机可以保持存储器并且一旦电源恢复则再次尝试写出,或者可以采取一些其它行动,例如,通知系统管理员。[0032]g.在设备二上,数据被接收到ADR缓冲器中。然后将数据清除出至持久性快速存储器,并且设备二将ACK发送至交换机。现在,数据被持久性存储,并且当主电源恢复时可以被复原。[0033]在描述本架构中,定义的以下非穷尽性和非限制性列表可以是有益的。[0034]高速缓存代理CA是节点内的一致性代理,该一致性代理在相同节点内处理来自核的存储器请求。在当前架构中,核使用超级队列(SQ构造来存储发送至CA的管芯上的互连请求例如,核发送至CA的所有不同的负载)。[0035]归属代理HA是负责处理来自高速缓存代理的存储器请求的节点集群,并且用作针对存储器地址空间的部分的“归属”(一个管芯可以具有多个归属,该归属具有分布式地址空间映射)。取决于请求作为目标的地址空间,请求可以去向相同节点的本地存储器,请求可以走超路径互连UPI代理之前被称为QPI或KTI以将请求路由至相同的一致域内的其它处理器,或者请求可以穿过HFI至一致域以外的结构。通过UPI连接的所有处理器属于相同的一致域。一个系统可以包括一个或多个一致域,而所有一致域通过结构互连来连接。例如,高性能计算HPC或数据中心包括使用结构与彼此通信的N个集群或服务器。使用结构例如,STL,每个一致域可以向其它一致域显露一些地址区域。HFI可以提供对传统节点架构的访问并且可以提供对诸如集中的资源和加速器之类的较新类型的资源的访问。[0036]现在较特定地参照附图来描述用于持久性远程直接存储器存取的系统和方法。应该注意的是,贯穿附图,可以重复某些附图标记来指示特定的设备或框在附图之间完全或大体上一致。然而,这并非旨在暗示在公开的各种实施例之间有任意特定的关系。在某些示例中,元件的种类可以由特定的附图标记(“小组件10”)引用,而种类的单独的样品或示例可以由连字号连接的标记(“第一特定的小组件10-Γ和“第二特定的小组件10-2”)引用。[0037]图Ia是根据说明书的一个或多个示例的云服务提供商CSP102的网络100的网络等级的示图。在图Ia的示例中,网络100可以被配置为使得一个或多个企业客户端130向一个或多个终端用户120提供服务或数据,该终端用户可以操作用户设备110来经由外部网络172访问信息或服务。该示例考虑了其中云服务提供商102本身为向企业客户端130提供第三方“网络即服务”(NaaS的企业的实施例。然而,该示例是非限制性的。在适当的实施例中,企业客户端130和CSP102还可以是相同或相关的实体。[0038]企业网络170可以是在一个或多个适合的网络协议上运行的任意适合的网络或一个或多个网络的组合,该网络通过非限制性的示例包括,例如,结构、局域网、内联网、虚拟网、广域网、无线网、蜂窝网或互联网(可选择经由代理、虚拟机、或其它相似的安全机制进行访问)。企业网络170还可以包括一个或多个服务器、防火墙、路由器、交换机、安全装置、防病毒服务器、或者其它有用的网络设备,其在示例中可以在数据中心142内被虚拟化。在该示出中,为了简便,将企业网络170示出为单个网络,但是在一些实施例中,企业网络170可以包括大量的网络,例如,连接至互联网的一个或多个企业内联网,并且可以包括处于多个地理位置的数据中心。企业网络170还可以经由外部网络172提供对诸如互联网之类的外部网络的访问。外部网络172可以相似地为任意适合类型的网络。[0039]数据中心142可以被提供为例如在多个机架装配的刀片式服务器上的虚拟机监控程序中运行的虚拟集群、或者物理服务器的集群。数据中心142可以向一个或多个虚拟机监控程序中的一个或多个租户提供一个或多个服务器功能、一个或多个VNF、或者一个或多个“微型云”。例如,诸如vCenter之类的虚拟化环境可以提供用于定义多个“租户”的能力,每个租户在功能上与每个其他租户分离,并且每个租户作为单一目的的微型云来运行。每个微型云可以服务不同的功能,并且可以包括许多不同类型的多个虚拟机VM。在一些实施例中,数据中心142还可以提供多租户,在多租户中可以将功能的单个实例提供给多个租户,每个租户的数据与每个其他租户的数据相隔离。[0040]还应该注意的是,还可以经由数据中心142提供用户设备110的一些功能性。例如,一个微型云可以提供诸如Citrix工作空间之类的远程桌面虚拟机监控程序,该远程桌面虚拟机监控程序允许终端用户120远程登录至远程企业桌面型设备并且访问企业应用、工作空间和数据。在该情况中,UE110可以为诸如谷歌Chromebook之类的仅运行只保留最基本的操作系统的“瘦客户端”,并且仍向用户120提供对企业资源的有用访问。[0041]被配置为管理控制台140的一个或多个计算设备还可以在企业网络170上运行。管理控制台140可以是用户设备的特别情况,并且可以提供用于安全管理员150的用户接口来定义企业安全和网络政策:管理控制台140可以在企业网络170上以及跨客户端设备110和数据中心142强制执行。在示例中,管理控制台140可以运行服务器类操作系统,例如,Linux、Unix、或者WindowsServer。在另一情况中,可以提供管理控制台140作为桌面类机器上的web接口或者可以经由数据中心142内供应的VM提供管理控制台140。[0042]网络100可以跨企业界限104与外部网络172进行通信。企业界限104可以表示物理、逻辑或其它界限。外部网络172可以包括,例如,网站、服务器、网络协议、以及其它基于网络的服务。CSP102还可以与诸如McAfee®或另一安全服务企业之类的第三方安全服务提供商190订约,以向网络100提供安全服务。[0043]企业客户端的目标可以是经由由CSP102托管的数据中心142向终端用户120安全地提供网络服务。为此,CSP102可以提供某些按合同规定的服务质量QoS保证和或服务等级协议SLAWoS可以是对资源性能的测量,并且可以包括诸如可用性、抖动、比特率、吞吐量、错误率、以及延迟之类的因素,仅举几例。SLA可以是按合同规定的协议,该协议可以包括QoS因素,以及诸如“平均恢复时间”(MTTR和平均故障间隔时间MTBF之类的因素。一般而言,SLA可以是与总体体验较相关的较高等级的协议,而QoS可以用于测量单独组件的性能。然而,这不应该被理解为暗示QoS度量与SLA度量之间的严格划分。[0044]转向图lb,为了达到按合同规定的QoS和SLA要求,CSP102可以供应某数量的工作负载集群118。在该示例中,示出了两个工作负载集群118-1和118-2,每个在机箱148中提供高达16个机架式服务器146。这些服务器机架可以排列在单个数据中心中,或者可以位于不同地理的数据中心。取决于按合同规定的协议,一些服务器146可以特别专用于某些企业客户端或租户,而其它可以共享。[0045]选择许多服务器以用于数据中心中的供应对于CSP102并非容易的任务。CSP102可以期望确保存在足够的服务器来处理网络容量,并且提供随着时间的预期的设备故障。然而,供应过多的服务器146在硬件成本方面与功耗方面都会是昂贵的。因此,理想地,CSP102供应足够的服务器146来服务所有其企业客户端130并且满足按合同规定的QoS和SLA基准,但是不使容量浪费。[0046]数据中心142中的各种设备可以经由交换结构174彼此连接,该交换结构可以包括一个或多个高速路由和或交换设备。在一些情况中,交换结构714可以是有层次的,例如,具有处理工作负载集群118-1的交换结构174-1、处理工作负载集群118-2的交换结构174-2、以及交换结构174-3。将该简单的层次结构示出以用于示出有层次的交换结构的原理,但是应该注意的是,这与真实的部署相比可以是显著被简化的。在许多情况中,交换结构714的层次结构可以是多方面的,并且涉及地远远更多。常见的网络架构包括轴辐式架构和叶脊架构。[0047]结构本身可以由任意适合的互连来提供,该互连例如为英特尔®OmniPath™、TrueScale™、超路径互连UPI之前被称为QPI或KTI、STL、以太网、PCI、或PCIe,仅举几例。这些中的一些与其它相比,较适合某些类型的部署,并且针对即时应用选择适当的结构是本领域技术人员的任务。[0048]图2是根据本说明书的一个或多个示例的客户端设备200的框图。客户端设备200可以是任意适合的计算设备。在各种实施例中,“计算设备”通过非限制性示例可以是或者包括计算机、工作站、服务器、大型机、虚拟机无论是仿真的还是在“裸金属”的虚拟机监控程序上的)、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助理、膝上型计算机、蜂窝电话、IP电话、智能电话、平板计算机、可转换的平板计算机、计算装置、网络装置、接收机、可穿戴计算机、手持计算器、或者用于处理和传递数据的任意其它电子、微电子、或微电机设备。任意计算设备可以被指定为网络上的主机。每个计算设备本身可以被称为“本地主机”,而其外部的任意计算设备可以被指定为“远程主机”。特别地,用户设备110可以是客户端设备200,并且在一个特定的示例中,客户端设备200是被配置用于RDMA的虚拟机,如本文中描述的。[0049]客户端设备200包括连接至存储器220的处理器210,该存储器具有存储其中的可执行指令,该指令用于提供操作系统222以及远程直接存储器存取RDM引擎224的至少软件部分。客户端设备200的其它组件包括存储装置250、网络接口260、以及外围接口240。该架构仅通过示例提供,并且旨在为非排他且非限制性的。此外,公开的各种部分被认为仅是逻辑划分,并且不需要必然表示在物理上分离的硬件和或软件组件。某些计算设备例如在单个物理存储器设备中提供主存储器220以及存储装置250,并且在其它情况中,例如,在数据中心存储池或存储器服务器的情况中,存储器220和或存储装置250在功能上跨许多物理设备而分布。在虚拟机或虚拟机监控程序的情况中,可以以在虚拟化层之上运行的软件或固件的形式来提供功能的所有或部分,以用于提供公开的逻辑功能。在其它示例中,诸如网络接口260之类的设备可以仅提供对于执行其逻辑操作所必需的最少硬件接口,并且可以依赖软件驱动器来提供额外的必需逻辑。因此,本文中公开的每个逻辑块广泛地旨在包括一个或多个逻辑元件,该逻辑元件被配置并且可操作用于提供公开的该块的逻辑操作。[0050]如贯穿本说明书使用的,“逻辑元件”可以包括硬件包括,例如,可编程软件、专用集成电路ASIC、或者现场可编程门阵列FPGA、外部硬件数字、模拟、或混合信号)、软件、往复式软件、服务、驱动程序、接口、组件、模块、算法、传感器、组件、固件、微代码、可编程逻辑、或可协调来实现逻辑操作的对象。此外,一些逻辑元件由有形、非暂时性计算机可读介质提供,该计算机可读介质具有存储其上的可执行指令,该指令用于指示处理器执行某个任务。这样的非暂时性介质可以通过非限制性的示例包括,例如,硬盘、固态存储器或磁盘、只读存储器ROM、持久性快速存储器PFM例如,英特#®3D交叉点)、外部存储装置、独立磁盘冗余阵列RAID、独立节点冗余阵列RAIN、网络附接的存储装置NAS、光存储装置、磁带驱动、备份系统、云存储装置、或者前述的任意组合。这样的介质还可以包括被编程到FPGA中的、或者被编码在ASIC上的硬件中或处理器中的指令。[0051]在示例中,处理器210经由存储器总线270-3,通信地耦合至存储器220,该存储器总线通过示例,例如,可以为直接存储器存取DMA总线。然而,其它存储器架构是可能的,该存储器架构包括其中存储器220与处理器210经由系统总线270-1或一些其它总线进行通信的存储器架构。在数据中心环境中,存储器总线270-3可以是或者可以包括结构。[0052]处理器210可以经由系统总线270-1通信地耦合至其它设备。如贯穿本说明书使用的,“总线”包括任意有线或无线的互连线路、网络、连接、结构、束、单个总线、多个总线、纵横式网络、单阶段网络、多阶段网络、或者可操作用于携带计算设备的部分之间的、或计算设备之间的数据、信号或功率的其它传导介质。应该注意的是,这些使用仅通过非限制性示例公开,并且一些实施例可以省略前述总线中的一个或多个,而其它实施例可以采用额外或不同的总线。[0053]在各种示例中,“处理器”可以包括可操作用于执行指令的逻辑元件的任意组合,无论该指令是从存储器加载的,还是直接在硬件中实现的,通过非限制性示例包括微处理器、数字信号处理器DSP、现场可编程门阵列FPGA、图形处理单元GPU、可编程逻辑阵列PLA、专用集成电路ASIC、或者虚拟机处理器。在某些架构中,可以在以下情况中提供多核处理器:处理器210可以仅被当作多核处理器的一个核,或者可以被当作整个多核处理器,如适当的话。在一些实施例中,还可以提供一个或多个协处理器以用于特别的或支持功能。[0054]处理器210在DMA配置中可以经由总线270-3连接至存储器220。为了简化本公开,存储器220作为单个逻辑块被公开,但是在物理实施例中,可以包括任意适合的易失性或非易失性存储器技术的一个或多个块,该易失性或非易失性存储器技术包括,例如,双倍数据速率随机存取存储器(DDRRAM、静态随机存取存储器(SRAM、动态随机存取存储器DRAM、持久性快速存储器PFM例如,英特尔®3D交叉点(3DXP、高速缓存、Ll或L2存储器、片上存储器、寄存器、闪存、ROM、光介质、虚拟存储器区域、磁性或磁带存储器等。存储器220可以在本地被提供,或者可以在其它地方被提供,例如,在具有3DXP存储器服务器的数据中心的情况中。在某些实施例中,存储器220可以包括相对低延迟的易失性主存储器,而存储装置250可以包括相对较高延迟的非易失性存储器。然而,存储器220和存储装置250不必是物理上分离的设备,并且在一些示例中,可以仅表示功能的逻辑分离。这些线可以在其中仅长期存储器为电池后备的RAM的情况中、或者在其中主存储器被提供作为PFM的情况中特别模糊。还应该注意的是,虽然DM通过非限制性示例公开,但是DMA不是与本说明书一致的仅有的协议,并且有其它存储器架构可用。[0055]可以提供操作系统222,但是该操作系统不是在所有实施例中是必需的。例如,出于速度、效率、和资源保留的目的,一些嵌入式系统在“裸金属”上运行。然而,在当代系统中,通常即使极简的嵌入式系统也包括某种操作系统。在提供操作系统的情况下,操作系统222可以包括任意适当的操作系统,例如,MicrosoftWindows、Linux、Android、Mac0SX、AppleiOS、Unix等。前述的一些可能相比于其它,较经常地在一种类型的设备上使用。例如,桌面计算机或工程工作站可以较可能地使用MicrosoftWindows、Linux、UniX或MacOSX中的一个。通常作为具有较少定制选项的便携式现用设备的膝上型计算机可以较可能地运行MicrosoftWindows或Mac0SX。移动设备可以较可能地运行Andriod或iOS。嵌入式设备经常使用嵌入式Linux或者诸如VxWorks之类的专用的嵌入式0S。然而,这些示例并非旨在是限制性的。[0056]存储装置250可以是任意种类的存储器220,或者可以是分离的非易失性存储器设备。存储器装置250可以包括一个或多个非暂时性计算机可读介质,该计算机可读介质通过非限制性示例包括硬盘驱动、固态驱动、外部存储装置、独立磁盘冗余阵列(RAID、独立节点冗余阵列RAIN、网络附接存储装置、光存储装置、磁带驱动、备份系统、云存储装置、或者前述的任意组合。存储装置250可以是或者可以在其中包括,数据库或者存储在其它配置中的数据,并且可以包括操作软件的存储的副本,该操作软件例如为操作系统222以及RDM引擎224的软件部分。在一些示例中,存储装置250可以是非暂时性计算机可读存储介质,该计算机可读存储介质包括被编码成处理器指令或者在ASIC上的硬件指令或者逻辑。许多其它配置也是可能的,并且旨在被涵盖在本说明的广阔范围内。[0057]网络接口260可以被提供以用于通信地将客户端设备200耦合至有线或无线网络。如贯穿本说明书使用的,“网络”可以包括可操作用于交换计算设备内或计算设备之间的数据或信息的任意通信平台或介质,该通信平台或介质通过非限制性示例包括,以太网;WiFi;结构;点对点式本地网络;向计算设备提供电子交互能力的互联网架构;普通老式电话系统POTS,计算设备可以使用该普通老式电话系统来执行事务,其中计算设备可以由人类操作者帮助、或者其中计算设备可以手动将数据键入电话或其它适合的电子设备;在系统中的任意两个节点之间提供通信接口或交换的任意分组数据网络PDN;或者任意局域网(LAN、城域网MAN、广域网WAN、无线局域网WLAN、虚拟专用网VPN、内联网、或者促进网络或电话环境中的通信的任意其它适当的架构或系统。要注意的是,在某些环境中,网络接口260可以是或者可以包括主机结构接口(HFI。[0058]在一个示例中,RDMA引擎224可操作用于执行本说明书中描述的计算机实现的方法。RDM引擎224可以包括一个或多个有形非暂时性计算机可读介质,该计算机可读介质具有存储其上的可执行指令,该指令可操作用于指示处理器提供RDMA引擎22LRDMA引擎224还可以包括处理器,该处理器具有相对应的存储器指令,所述存储器指令指示处理器执行期望的方法。如贯穿本说明书使用的,“引擎”包括一个或多个相似或不相似种类的逻辑元件的任意组合,该逻辑元件可操作用于并且被配置为执行引擎的一个或多个方法或功能。在一些情况中,RDMA引擎224可以包括特别的集成电路,该集成电路被设计用于执行方法或者其部分,并且还可以包括软件指令,该软件指令可操作用于指示处理器执行方法。在一些情况中,RDMA引擎224可以作为“守护程序”过程来运行。“守护程序”可以包括任意程序或者可执行指令的序列,无论该程序或指令是实现在作为以下来运行的硬件、软件、固件或其任意组合中:后台过程、终止并驻留程序、服务、系统扩展、控制面板、引导过程、BIOS子例程、或者在没有直接用户交互的情况下运行的任意相似程序。在某些实施例中,守护程序过程可以利用与保护环架构中的环〇、1或2相关联的“驱动器空间”中的提升的权限来运行。应该注意的是,RDM引擎224还可以包括其它硬件和软件,该硬件和软件通过非限制性示例包括配置文件、注册表项、以及交互的或者用户模式软件。[0059]在一个示例中,RDMA引擎224包括存储在非暂时性介质上的可执行指令,所述可执行指令可操作用于执行根据本说明书的方法。在适当的时候,例如,在启动客户端设备200时或者在来自操作系统222或用户120的命令时,处理器210可以从存储装置250取回指令的副本并且将该副本加载到存储器220中。处理器210然后可以迭代地执行RDMA引擎224的指令以提供期望的方法。[0060]外围接口240可以被配置为与任意辅助设备进行接合,该辅助设备连接至客户端设备200但是不必是客户端设备200的核心架构的部分。外围设备可操作用于向客户端设备200提供扩展的功能性,并且可以或者可以不全部取决于客户端设备200。在一些情况中,夕卜围设备本身可以是计算设备。外围设备可以通过非限制性示例包括输入和输出设备,例如,显示器、终端设备、打印机、键盘、鼠标、调制解调器、数据端口(例如,串行、并行、USB、火线等)、网络控制器、光介质、外部存储装置、传感器、变换器、激励器、控制器、数据采集总线、摄像头、微电话、扬声器、或者外部存储装置。[0061]在一个示例中,外围设备包括显示适配器242、音频驱动器244、以及输入输出IO驱动器246。显示适配器242可以被配置为提供人类可读的可视输出,例如,命令行接口CLI或者图形桌面,该图形桌面例如为MicrosoftWindows、AppleOSX桌面、或基于UnixLinuxXWindow系统的桌面。显示适配器242可以提供以任意适合格式的输出,该输出通过非限制性示例例如为同轴输出、复合视频、分量视频、VGA或者诸如DVI或HDMI之类的数字输出。在一些示例中,显示适配器242可以包括硬件图形卡,该硬件图形卡可以具有其自己的存储器以及其自己的图形处理单元GPU。音频驱动器244可以提供针对可听见的声音的接口,并且在一些示例中可以包括硬件声卡。声音输出可以通过非限制性示例,以模拟例如,3.5mm立体声插座)、分量(“RCA”)立体声被提供,或者以诸如SPDIF、AES3、AES47、HDMI、USB、蓝牙或者Wi-Fi音频之类的数字音频格式被提供。要注意的是,在其中客户端设备200是虚拟机的实施例中,外围设备可以远程地由用于访问虚拟机的设备来提供。[0062]图3是根据本说明书的一个或多个示例的服务器类别的设备300的框图。服务器300可以是结合图2描述的任意适合的计算设备。一般而言,图2的定义和示例可以被认为同样适用于图3,除非另外特别声明。在本文中分离地对服务器300进行描述以示出在某些实施例中,逻辑操作可以沿客户端-服务器模型划分,其中,客户端设备200提供某些本地化的任务,而服务器300提供某些其它集中的任务。[0063]要注意的是,图3的服务器300特别地示出了关注功能块的服务器300的经典的“冯诺依曼架构”方面。本文中的其它示图(例如,以下的图4a、图4b和图5可以示出客户端或服务器设备的其它方面,更关注虚拟化方面。这些示出的实施例并非旨在相互排斥或者暗示必须不同。而各种视图和示图旨在示出这些设备的不同角度和方面。[0064]在特定的示例中,服务器设备300可以是本文中示出的存储器服务器。[0065]服务器300包括处理器310,该处理器连接至具有存储其中的可执行指令的存储器320,该指令用于提供操作系统322以及存储器服务器引擎324的至少软件部分。服务器300的其它组件包括存储装置350以及主机结构接口360。如图2中描述的,每个逻辑块可以由一个或多个相似或不相似的逻辑元件来提供。[0066]在示例中,处理器310经由存储器总线370-3通信地耦合至存储器320,该存储器总线例如可以为直接存储器存取DMA总线。处理器310可以经由系统总线370-1通信地耦合至其它设备。[0067]处理器310可以在DMA配置中经由DMA总线370-3或者经由任意其它适合的存储器配置连接至存储器320。如图2中讨论的,存储器320可以包括任意适合类型的一个或多个逻辑元件。存储器320可以包括持久性快速存储器,例如,3DXP等。[0068]存储装置350可以是任意种类的存储器320,或者可以是如结合图2的存储装置250描述的分离的设备。存储装置350可以是或者可以在其中包括数据库或者存储在其它配置中的数据,并且可以包括诸如操作系统322以及存储器服务器引擎324的软件部分之类的操作软件的存储的副本。[0069]主机结构接口360可以被提供以用于通信地将服务器300耦合至包括主机结构的有线或无线网络。主机结构可以包括转换接口,该转换接口用于通信地耦合云或类云环境中的节点。此处,HFI360通过示例而被使用,但是可以使用任意其它适合的网络接口(如结合网络接口260所讨论的)。[0070]存储器服务器引擎324是图2中描述的引擎,并且在一个示例中,包括一个或多个逻辑元件,该逻辑元件可操作用于执行本说明书中描述的计算机实现的方法。存储器服务器引擎324的软件部分可以作为守护程序过程运行。[0071]存储器服务器引擎324可以包括一个或多个非暂时性计算机可读介质,该计算机可读介质具有存储其上的可执行指令,该指令可操作用于指示处理器提供存储器服务器引擎324。在适当的时间,例如,在启动服务器300或者在来自操作系统322或用户120或者安全管理员150的命令时,处理器310可以从存储装置350取回存储器服务器引擎324或者其软件部分)的副本,并且将副本加载到存储器320中。处理器310然后可以迭代地执行存储器服务器引擎324的指令以提供期望的方法。[0072]图4a是软件定义的网络400的框图。在软件定义的网络(SDN中,数据平面与控制平面分离以实现某些优点。SDN仅为一个类型的虚拟化,在此处示出以表示针对网络设置的一个选项。[0073]图4b中示出的网络功能虚拟化是第二非限制性类型的网络虚拟化,经常被当作对SND的附加或者改进,但是有时被当作分离的实体。NFV原始地被当成用于针对电信服务提供减少的资本开支Capex以及操作费用Opex的方法,该方法严重依赖快速、单目标的服务装置。NFV的一个重要特征是将专有、专用的硬件装置替换为在虚拟化环境内的商业现有COTS硬件上运行的虚拟装置。除Capex与Opex节省之外,NFV提供了较敏捷和较可适应的网络。当网络负载改变时,可以供应(“起转”)或移除(“停转”)虚拟网络功能VNF来满足网络需求。例如,在高负载的时候,可以起转较多的负载平衡器VNF以向较多的工作负载服务器该服务器自己可以是虚拟机分发业务。在其中经历较多可疑业务的时候,可能需要额外的防火墙或深度包检测DPI装置。[0074]因为NFV开始是作为电信特征,所以许多NFV示例集中于电信。然而,NFV不限于电信服务。从广义上讲,NFV包括在网络功能虚拟化基本结构NFVI内运行的一个或多个VNF。经常,VNF是与工作负载服务器或其它节点分离的直接插入的服务功能在许多情况中,工作负载类型的功能早已被虚拟化)。可以将这些VNF—起栓连到服务链中,该服务链可以由虚拟子网络定义并且可以包括网络服务的串联串,该网络服务提供幕后工作,例如,安全、记录、记账等。在一个示例中,传入的分组通过服务链中的一连串服务来传递,服务中的一个或多个由VNF提供,而过去那些功能中的每个可以由物理服务装置中的定做的硬件来提供。因为可以起转和停转NFV来满足需求,所以可以较有效地做出对硬件和其它资源的分配。可以分配处理资源以满足最大需求,而利用物理服务装置,仅浪费装置上的任意未使用的容量,并且增加容量来满足插入物理(昂贵的定做服务装置要求的需求。[0075]图4a和图4b中对此的示出可以被认为较功能性的,而相比之下,图1的示出可以较多为网络的高级逻辑布局。然而,应该理解的是,SDN400图4a、NFVI404图4b以及企业网络100可以是相同的网络,或者可以是分离的网络。[0076]在图4a中,SDN400可以包括SDN控制器410、多个网络设备430以及多个主机设备440ADN控制器410、网络设备430以及主机设备440中的一些或全部可以在图1的工作负载集群142内体现,或者可以另外形成企业网络170的部分。[0077]SDN由SDN控制器410控制。SDN控制器410通信地耦合至多个网络设备430。特别地,NDl430-1、ND2430-2以及ND5430-5直接通信地耦合至SDN控制器410。网络设备以及ND3430-3和ND4430-4不是直接耦合至SDN控制器410而是经由诸如ND2430-2和ND5430-5之类的中间设备来耦合至SDN控制器410。[0078]一些网络设备430还通信地直接耦合至主机设备440。特别地,网络设备NDl直接耦合至主机A440-1,该主机具有IP地址10.0.0.10以及MAC地址FA:16:3:01:61:8。网络设备ND2430-2直接耦合至主机B440-2,该主机具有IP地址10.0.0.20以及MAC地址FA:16:3:01:63:B3。网络设备ND5430-5直接耦合至主机D440-3,该主机具有IP地址10.0.0.30以及MAC地址FA:16:3:01:54:83。[0079]网络设备430可以被配置为执行各种网络功能,通过非限制性示例,该网络功能例如为负载平衡、防火墙、深度包检测DPI、DNS、防病毒、或者任意其它适合的网络功能。在网络设备430之间以及从网络设备430至主机设备440之间的特定的互连布置可以由特定的网络配置和需要确定。因此,图4a的具体配置应该被理解为仅为示出的示例。[0080]每个网络设备430可以具有多个入口接口或出口接口,例如,物理以太网或结构端口。在示例中,每个接口可以具有标签或新的名称,例如,PI、P2、P3、P4、P5等。因此,网络布局的某些方面可以通过检测哪个设备连接在哪个接口上来确定。例如,网络设备NDl430-1具有用于接收指令并且与SDN控制器410进行通信的入口接口。NDl430-1还具有通信地耦合至主机A440-1的接口PUND1430-1具有通信地耦合至ND2430-2的接口P2。在ND2430-2的情况中,ND2430-2还在其自己的接口P2上耦合至NDl430-1,并且经由接口Pl耦合至主机B440-2。冊2430-2分别经由接口P3和P4通信地耦合至中间设备ND3430-3以及ND4430-4。额外的接口定义遍及示图可见。[0081]当业务从一个接口流向另一接口时,可以针对业务来定义流表。使用该流表使得诸如ND2430-2之类的网络设备可以确定在接收到分组之后,下一步将分组发送至何处。[0082]例如,以下流表可以针对NDl430-1-ND4430-4而被定义。[0083][0084]表I.NDl流规则[0085][0086]表2.ND2流规则[0087][0088]表3.ND3流规则「00891[0090]表4.ND4流规则[0091]图4b是根据本说明书的一个或多个示例的网络功能虚拟化NFV架构的框图。如SDN,NFV是网络虚拟化的子集。因此,可以定义图4b中示出的网络而不是图4a的网络,或者可以定义除图4a的网络之外的图4b中示出的网络。换言之,网络的某些部分可以依赖SDN,而其它部分或者相同部分可以依赖NFV。[0092]在图4b的示例中,NFV编排器402管理在NFVI404上运行的许多VNFJFV要求并非容易的资源管理,例如,在每个VNF的适当数量的实例之中分配非常大的计算资源的池、管理VNF之间的连接、确定用于分配的每个VNF的实例的数量、以及管理存储器、存储装置和网络连接。这可能要求复杂的软件管理,因此需要NFV编排器402。[0093]要注意的是,NFV编排器402本身通常是虚拟化的(而非专用硬件装置)。可以将NFV编排器402集成在现有的SDN系统内,其中,操作支持系统OSS管理SDN。该NFV编排器可以与云资源管理系统例如,OpenStack进行交互来提供NFV编排器。存在针对NFV编排器和管理有时被称为NFVΜΑΝ0的许多商业可用的、现有的、专有的以及开放源代码解决方案。除NFV编排器402之外,NFVMANO还可以包括诸如虚拟化基础结构管理V頂以及VNF管理员之类的功能。[0094]NFVI404可以包括用于使VNF能够运行的硬件、软件以及其它基础结构。这可以包括,例如,刀片式或槽服务器包括,例如,处理器、存储器和存储装置)的机架或若干机架、一个或多个数据中心、跨一个或多个地理位置分布的其它硬件资源、硬件开关、网络接口。NFVI404还可以包括软件架构,该软件架构使虚拟机监控程序能够运行并且由NFV编排器402管理。NFVI402可以包括NFVI入网点NFVI-PoPs,在该NFVI入网点中VNF由操作者来部署。[0095]在NFVI404上运行的是许多虚拟机,在该示例中,该虚拟机中的每个是提供虚拟服务装置的VNF。作为非限制和示出的示例,这些包括VNF1410,其为防火墙;VNF2412,其为入侵检测系统;VNF3414,其为负载平衡器;VNF4416,其为路由器;VNF5418,其为会话边界控制器;VNF6420,其为深度包检测(DPI服务;VNF7422,其为网络地址翻译NAT模块;VNF8424,其提供呼叫安全关联;以及VNF9426,其为起转以满足增加的需求的第二负载平衡器。[0096]防火墙410是基于将业务与“防火墙规则”的列表进行匹配来监测和控制(传入和传出两者业务的安全装置。防火墙410可以是相对受信任的(例如,内部)网络与相对不受信任的网络(例如,互联网)之间的屏障。一旦业务通过由防火墙410进行的检测,则业务可以被转发至网络的其它部分。[0097]入侵检测412针对恶意活动或政策违反而监测网络。发生的事件可以被报告至安全管理员150,或者由安全信息和事件管理SIEM系统来收集和分析。在一些情况中,入侵检测412还可以包括防病毒或防恶意软件扫描仪。[0098]负载平衡器414和426可以将业务外包给一组大体上相同的工作负载服务器以用于以公平的方式分发工作。在一个示例中,负载平衡器供应许多业务“桶”,并且将每个桶指派给工作负载服务器。基于诸如源IP地址的散列之类的因数,将传入的业务分配给桶。因为假设散列为公平、均匀分布的,所以每个工作负载服务器接收到合理的业务量。[0099]路由器416在网络或子网络之间转发分组。例如,路由器416可以包括一个或多个入口接口以及多个出口接口,每个出口接口与资源、子网络、虚拟专用网络或者其它划分相关联。当业务在入口接口上进入时,路由器416确定业务应该去向何目的地,并且将分组路由至适当的的出口接口。[0100]会话边界控制器418控制IP语音VoIP信令以及要建立的媒体流、进行和终止呼叫。在该上下文中,“会话”指的是通信事件例如,“呼叫。“边界”指的是网络的两个不同部分之间的区分与防火墙相似)。[0101]DPI装置420提供深度包检测,该深度包检测不仅包括检查信头,还包括检查分组的内容以用于搜索可能不需要的内容PUC,例如,协议不服从、恶意软件、病毒、垃圾邮件或入侵。[0102]NAT模块422提供网络地址翻译服务以用于将一个IP地址空间重新映射到另一IP地址空间中(例如,将专用子网络内的地址映射到较大的互联网上)。[0103]呼叫安全关联424创建针对呼叫或其它会话的安全关联见以上会话边界控制器418。维持该安全关联可以是关键的,这是因为如果安全关联被破坏,则呼叫可能丢失。[0104]图4的示出表示在NFVI404内供应并且存在许多VNF。该示图不必示出VNF与较大网络之间的任意关系。[0105]图5示出了根据本说明书的一个或多个示例的计算平台500的组件的框图。在描述的实施例中,计算机平台500包括通过网络508耦合在一起的多个平台502和系统管理平台506。在其它实施例中,计算机系统可以包括任意适合数量的(S卩,一个或多个平台。在一些实施例中(例如,当计算机系统仅包括单个平台时),可以将系统管理平台506中的所有或部分包括在平台502上。平台502可以包括平台逻辑510,该平台逻辑具有一个或多个中央处理单元CPU512、存储器514其可以包括任意数量的不同模块)、芯片组516、通信接口518、以及用于执行虚拟机监控程序520的任意其它适合的硬件和或软件、或者能够执行与在平台502上运行的应用相关联的工作负载的其它操作系统。在一些实施例中,平台502可以用作针对调用这些应用的一个或多个客户系统522的主机平台。平台500可以表示任意适合的计算环境,例如,高性能计算环境、数据中心、通信服务提供商基础结构例如,演进分组核心的一个或多个部分)、存储器计算环境、交通工具例如,汽车或飞机的计算系统、物联网环境、工业控制系统、其它计算环境、或者其组合。[0106]在本公开的各种实施例中,监测累积的应力和或应力累积到多个硬件资源(例如,核和非核)的速率,并且计算机平台500的实体例如,系统管理平台506、虚拟机监控程序520、或者其它操作系统可以根据应力信息指派平台逻辑510的硬件资源执行工作负载。例如,系统管理平台506、虚拟机监控程序520或其它操作系统、或者CPU512可以基于应力信息来确定用于将工作负载调度到其上的一个或多个核。在一些实施例中,可以将自我诊断能力与应力监测组合在一起来较准确地确定硬件资源的健康。这样的实施例可以允许部署中的优化,该部署包括网络功能虚拟化NFV、软件定义的网络(SDN、或者任务关键应用。例如,在初始放置虚拟网络功能VNF期间、或者针对从一个平台向另一平台的迀移以便提高可靠性和能力,可以查询应力信息。[0107]每个平台502可以包括平台逻辑510。在其它逻辑之中,平台逻辑510包括使能平台502、一个或多个CPU512、存储器514、一个或多个芯片组516以及通信接口518的功能性。虽然示出了三个平台,但是计算机平台500可以包括任意适合数量的平台。在各种实施例中,平台502可以驻留在安装在机箱、机架、或者其它适合的结构中的电路板上,该机箱、机架、或者其它适合的结构包括通过网络508其可以包括例如机架或背板交换耦合在一起的多个平台。[0108]CPU512中的每个可以包括任意适合数量的处理器核以及支持逻辑例如,非核)。核可以通过驻留在CPU612和或芯片组516上的一个或多个控制器彼此耦合、耦合至存储器514、至少一个芯片组516和或通信接口518。在特定的实施例中,CPU612体现在持久地或可移除地耦合至平台502的插槽内。以下结合图2进一步具体描述了CPU612。虽然示出了四个CPU,但是平台502可以包括任意适合数量的CPU。[0109]存储器514可以包括任意形式的易失性或非易失性存储器,包括但不限于磁性介质(例如,一个或多个磁带驱动)、光介质、随机存取存储器RAM、只读存储器⑽M、闪存、可移除介质、或者任意其它适合的本地或远程存储器组件。存储器514可以通过平台502用于短期、中期和或长期存储。存储器514可以存储由平台逻辑510利用的任意适合的数据或信息,该数据或信息包括嵌入在计算机可读介质中的软件、和或并入硬件的编码的逻辑或者另外存储的编码的逻辑例如,固件)。存储器514可以存储由CPU512的核使用的数据。在一些实施例中,存储器514还可以包括对以下指令的存储:可以由CPU512的核或者其它处理元件例如,驻留在芯片组516上的逻辑执行以提供与可管理引擎526或者平台逻辑510的其它组件相关联的功能性。额外地或替代地,芯片组516可以每个包括存储器,该存储器可以具有本文中关于存储器514描述的特性中的任意一个。存储器514还可以存储由CPU512或芯片组516上的处理元件执行的各种计算和确定的结果和或中间结果。在各种实施例中,存储器514可以包括通过存储器控制器其可以在CPU512的外部或者与CPU512集成在一起耦合至CHJ的系统存储器的一个或多个模块。在各种实施例中,存储器514的一个或多个特定模块可以专用于特定的CPU612或其它处理设备,或者可以跨多个CPU512或其它处理设备共享。[0110]在各种实施例中,存储器514可以存储应力信息(例如,与非易失性存储器中的平台逻辑510的硬件资源相关联的累积的应力值,使得当失去电源时,累积的应力值被维持)。在特定的实施例中,硬件资源可以包括用于存储硬件资源的累积的应力值的(例如,在与特定硬件资源相同的管芯上的非易失性存储器。[0111]平台502还可以包括一个或多个芯片组516,该芯片组包括用于支持对CPU512的操作的任意适合的逻辑。在各种实施例中,芯片组516可以驻留在与CPU612相同的管芯或封装上或者驻留在一个或多个不同管芯或封装上。每个芯片组可以支持任意适合数量的CPU512。芯片组516还可以包括一个或多个控制器,该控制器用于将平台逻辑510的其它组件例如,通信接口518或者存储器514耦合至一个或多个CPU。额外地或替代地,CPU512可以包括集成的控制器。例如,通信接口518可以经由驻留在每个CPU上的集成的IO控制器,直接耦合至CPU512。[0112]在描述的实施例中,每个芯片组516还包括可管理引擎526。可管理引擎526可以包括用于支持芯片组516的操作的任意适合的逻辑。在特定的实施例中,可管理引擎526其还可以被称为创新引擎能够从芯片组516、由芯片组516管理的CPU512和或存储器514、平台逻辑510的其它组件、和或平台逻辑510的组件之间的各种连接中收集实时遥测数据。在各种实施例中,收集的遥测数据包括本文中描述的应力信息。[0113]在各种示例中,可管理引擎526作为带外异步计算代理来运行,该带外异步计算代理能够与平台逻辑510的各种元件进行接合来收集对运行在CPU512上的过程没有中断或具有最小中断的遥测数据。例如,可管理引擎526可以包括在芯片组516上的提供可管理引擎526例如,通过执行软件指令)的专用的处理元件例如,处理器、控制器、或其它逻辑),因此保护CPU512的处理周期以用于与由平台逻辑510执行的工作负载相关联的操作。此夕卜,用于可管理引擎526的专用的逻辑可以关于CPU512异步地操作,并且可以聚集遥测数据中的至少一些而不增加CPU上的负载。[0114]可管理引擎526可以处理其收集的遥测数据本文中提供对应力信息处理的具体示例)。在各种实施例中,可管理引擎526向计算机系统中的其它元件报告其收集的数据和或其处理的结果,所述其它元件例如为一个或多个虚拟机监控程序520或者其它操作系统和或可以在诸如系统管理平台506之类的任意适合的逻辑上运行的)系统管理软件。在一些实施例中,向这些实体中的一个或多个定期更新并且报告遥测数据。在特定实施例中,诸如累积过多量的应力的核之类的关键事件可以在报告遥测数据的正常间隔之前报告(例如,在检测时可以立即发送通知)。[0115]在各种实施例中,可管理引擎526可以包括可编程代码,该代码可被配置为设置特定的芯片组516管理哪个CPU512和或哪些遥测数据会被收集。[0116]芯片组516中的每个还包括通信接口528。通信接口528可以用于在芯片组516与一个或多个IO设备、一个或多个网络508、和或耦合至网络508的一个或多个设备例如,系统管理平台506之间的信令和或数据的通信。例如,通信接口528可以用于发送和接收诸如数据分组之类的网络业务。在特定的实施例中,通信接口528包括一个或多个物理网络接口控制器NIC,也被称为网络接口卡或网络适配器。NIC可以包括电子电路系统,该电子电路系统用于使用诸如以太网(例如,由IEEE802.3标准定义的)、光纤通道、InfiniBand、Wi-Fi、或其它适合的标准之类的任意适合的物理层和数据链路层标准来通信。NIC可以包括可耦合至电缆例如,以太网电缆)的一个或多个物理端口。NIC可以使能芯片组516的任意适合的元件例如,可管理引擎526或者交换机530与耦合至网络508的另一设备之间的通信。在一些实施例中,网络508可以包括具有桥接和或路由功能的交换机,该交换机在平台502的外部并且可操作用于将遍及计算机平台500分布例如,在不同的平台上)的各种NIC彼此耦合。在各种实施例中,NIC可以与芯片组集成在一起S卩,可以在与芯片组逻辑的剩余部分相同的集成电路或电路板上),或者可以集成在机电式耦合至芯片组的不同的集成电路或电路板上。[0117]在特定的实施例中,通信接口528可以允许与由可管理引擎526执行的管理和监测功能相关联的数据的通信例如,在可管理引擎526与系统管理平台506之间)。在各种实施例中,可管理引擎526可以利用通信接口528的元件例如,一个或多个NIC来报告遥测数据例如,向系统管理平台506以便保留通信接口518的NIC的使用以用于与由平台逻辑510执行的工作负载相关联的操作。在一些实施例中,通信接口528还可以允许与平台集成在一起或在平台外部的IO设备例如,磁盘驱动、其它NIC等)以与CPU核进行通信。[0118]交换机530可以耦合至通信接口528的(例如,由NIC提供的)各种端口,并且可以在这些端口与芯片组516的各种组件例如,耦合至CPU512的一个或多个快速外围组件互连PCIe通道之间交换数据。交换机530可以是物理或虚拟例如,软件交换机。[0119]平台逻辑510可以包括额外的通信接口518。与通信接口528相似,通信接口518可以用于平台逻辑510与一个或多个网络508以及耦合至网络508的一个或多个设备之间的信令和或数据的通信。例如,通信接口518可以用于发送和接收诸如数据分组之类的网络业务。在特定的实施例中,通信接口518包括一个或多个物理NIC。这些NIC可以使能平台逻辑510的任意适合的元件例如,CPU512或存储器514与耦合至网络508的另一设备例如,通过一个或多个网络耦合至网络508的其它平台的元件或者远程计算设备之间的通信。在特定实施例中,通信接口518可以允许在平台外部的设备例如,磁盘驱动、其它NIC等)与CPU核进行通信。在各种实施例中,通信接口518的NIC可以通过IO控制器可以在CPU512的外部或者与CPU512集成在一起耦合至CPU。[0120]平台逻辑510可以接收并且执行任意适合类型的工作负载。工作负载可以包括用于利用平台逻辑510的一个或多个资源的任意请求,该资源例如为一个或多个核或者相关联的逻辑。例如,工作负载可以包括用于对诸如IO设备驱动程序524或客户系统522之类的软件组件进行实例化的请求;用于处理从虚拟机532或者平台502外部的设备例如,耦合至网络508的网络节点)接收到的网络分组的请求;用于执行与客户系统522、平台502上运行的应用、虚拟机监控程序520或者平台502上运行的其它操作系统相关联的进程或线程的请求;或者其它适合的处理请求。[0121]在各种实施例中,平台502可以执行任意数量的客户系统522。客户系统可以包括单个虚拟机例如,虚拟机532a或532b或者一起操作的多个虚拟机例如,虚拟网络功能VNF534或者服务功能链(SFC536。如描述的,各种实施例可以包括呈现在相同的平台502上的各种类型的客户系统522。[0122]虚拟机532可以利用其自己专用的硬件来仿真计算机系统。虚拟机532可以在虚拟机监控程序520之上运行客户操作系统。可以将平台逻辑510的组件例如,CPU512、存储器514、芯片组516和通信接口518虚拟化,使得对客户操作系统而言看似是虚拟机532具有其自己专用的组件。[0123]虚拟机532可以包括虚拟化的NICvNIC,该虚拟化的NIC由虚拟机使用作为其网络接口。vNIC可以被指派介质访问控制MAC地址或其它标识符,因此允许多个虚拟机532在网络中可单独寻址。[0124]在一些实施例中,虚拟机532b可以是半虚拟化的。例如,虚拟机532b可以包括增强的驱动器例如,提供较高性能、或者具有用于底层资源的较高带宽接口、或者由虚拟机监控程序520提供的较高容量)。例如,增强的驱动器与默认的驱动器相比,可以具有用于底层虚拟交换机的较快接口以用于较高的网络性能。[0125]VNF534可以包括具有在虚拟化基础结构中可以部署的限定的接口以及行为的功能构建块的软件实现。在特定的实施例中,VNF534可以包括一个或多个虚拟机532,该虚拟机共同提供特定的功能例如,广域网WAN优化、虚拟专用网VPN终止、防火墙操作、负载平衡操作、安全功能等)。在平台逻辑510上运行的VNF534可以提供与通过专用硬件实现的传统网络组件相同的功能性。例如,VNF534可以包括用于执行任意适合的NFV工作负载的组件,例如,虚拟化的演进分组核心(vEPC组件、移动管理实体、第三代合作伙伴计划3GGP控制以及数据平面组件等。[0126]SFC536是一组VNF534,该组VNF534被组织为链以用于执行诸如网络分组处理操作之类的一系列操作。服务功能链可以提供用于定义网络服务例如,防火墙、负载平衡器的有序列表的能力,在网络中将该网络服务拼结在一起以创建服务链。[0127]虚拟机监控程序520也被称为虚拟机监视器可以包括用于创建和运行客户系统522的逻辑。虚拟机监控程序520可以将由虚拟机运行的客户操作系统与虚拟操作平台一起呈现即,当实际上是将虚拟机合并到单个硬件平台上时,对虚拟机而言看似是虚拟机正在分离的物理节点上运行并且管理由平台逻辑510对客户操作系统的执行。虚拟机监控程序520的服务可以通过在软件中虚拟化、或者通过要求最小软件干预的硬件辅助资源进行虚拟化、或者两者来提供。各种客户操作系统的多个实例可以由虚拟机监控程序520管理。每个平台502可以具有虚拟机监控程序520的分离的实例化。[0128]虚拟机监控程序520可以是本机或裸金属虚拟机监控程序,该虚拟机监控程序在平台逻辑510上直接运行用于控制平台逻辑并且管理客户操作系统。替代地,虚拟机监控程序520可以是托管的虚拟机监控程序,该虚拟机监控程序在主机操作系统上运行并且从主机操作系统抽象出客户操作系统。各种实施例可以包括一个或多个非虚拟化的平台502,在该情况中,本文中描述的虚拟机监控程序520的任意适合的特性或功能可以应用于非虚拟化平台的操作系统。[0129]虚拟机监控程序520可以包括虚拟交换机538,该虚拟交换机可以向客户系统522的虚拟机提供虚拟交换和或路由功能。虚拟交换机538可以包括逻辑交换结构,该逻辑交换结构将虚拟机532的vNIC彼此耦合,因此创建通过其虚拟机可以彼此进行通信的虚拟网络。虚拟交换机538还可以经由通信接口518的物理NIC耦合至一个或多个网络例如,网络508使得允许虚拟机532与平台502外部的一个或多个网络节点(例如,在不同平台502上运行的虚拟机、或者通过互联网或其它网络耦合至平台502的节点)之间的通信。虚拟交换机538可以包括使用平台逻辑510的组件执行的软件元素。在各种实施例中,虚拟机监控程序520可以与任意适合的实体例如,SDN控制器进行通信,所述实体可以响应于平台502中的条件改变例如,虚拟机532的添加或删除、或者对可做出以加强平台性能的优化的识别),使虚拟机监控程序520重新配置虚拟交换机538的参数。[0130]虚拟机监控程序520还可以包括资源分配逻辑544,该资源分配逻辑可以包括用于基于遥测数据其可以包括应力信息来确定对平台资源的分配的逻辑。资源分配逻辑544还可以包括用于与平台502的平台逻辑510实体的各种组件(例如,平台逻辑502的组件进行通信以实现这样的优化的逻辑。例如,资源分配逻辑544可以基于应力信息来指导平台逻辑510的哪个硬件资源用于执行工作负载。[0131]任意适合的逻辑可以做出这些优化决定中的一个或多个。例如,系统管理平台506、虚拟机监控程序520或者其它操作系统的资源分配逻辑544、或者平台502或计算机平台500的其它逻辑能够单独地或者结合平台502的其它元件做出这样的决定。在特定的实施例中,系统管理平台506可以与虚拟机监控程序520进行通信使用带内或带外通信来指定应该使用的优化以便满足存储在系统管理平台的政策。[0132]在各种实施例中,系统管理平台506可以从多个平台502接收遥测数据并且跨多个平台502管理工作负载放置。系统管理平台506可以与虚拟机监控程序520例如,以带外的方式或者各种平台502的其它操作系统进行通信以实现由系统管理平台指导的工作负载放置。[0133]平台逻辑510的这些元件可以以任意适合的方式耦合在一起。例如,总线可以将组件中的任意一个耦合在一起。总线可以包括任意已知的互连,例如,多点分支总线、网格互连、环互连、点对点互连、串行互连、并行总线、一致性例如,高速缓存一致性总线、分层协议架构、差分总线、或者射电收发机逻辑GTL总线。[0134]计算机平台500的元件可以以任意适合的方式親合在一起,该方式例如为通过一个或多个网络508。网络508可以为使用一个或多个适合的网络协议运行的任意适合的网络或者一个或多个网络的组合。网络可以表示用于接收和发送通过通信系统传播的信息的分组的一系列节点、点和互连通信路径。例如,网络可以包括一个或多个防火墙、路由器、交换机、安全装置、防病毒服务器、或者其它有用的网络设备。网络提供源和或主机之间的通信接口,并且可以包括任意局域网(LAN、无线局域网WLAN、城域网(MAN、内联网、外联网、互联网、广域网WAN、虚拟私有网(VPN、蜂窝网、或者促进网络环境中的通信的任意其它适当的架构或系统。网络可以包括通过通信介质彼此耦合并且进行通信)的任意数量的硬件或软件元件。在各种实施例中,客户系统522可以通过网络508与计算机平台500外部的节点进行通信。[0135]图6示出了根据某些实施例的中央处理单元CPU612的框图。虽然CPU612描述了特定的配置,但是CPU612的核和其它组件可以以任意适合的方式来布置。CPU612可以包括任意处理器或处理设备,例如,微处理器、嵌入式处理器、数字信号处理器DSP、网络处理器、应用处理器、协处理器、片上系统(SOC、或者用于执行代码的其它设备。在描述的实施例中,CPU612包括四个处理元件(描述的实施例中的核630,该处理元件可以包括非对称的处理元件或者对称的处理元件。然而,CPU612可以包括任意数量的处理元件,该处理元件可以是对称的或非对称的。[0136]在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、过程单元、上下文、上下文单元、逻辑处理器、硬件线程、核、和或能够保持诸如执行状态或架构状态之类的处理器的状态的任意其它元件。换言之,在一个实施例中,处理元件指的是能够独立地与代码相关联的任意硬件,该代码例如为软件线程、操作系统、应用或其它代码。物理处理器或处理器插槽典型地指的是集成电路,该集成电路可能包括任意数量的其它处理元件,例如,核或者硬件线程。[0137]核可以指的是位于集成电路上的能够维持独立架构状态的逻辑,其中,每个独立维持的架构状态与至少一些专用执行资源相关联。硬件线程可以指的是位于集成电路上的能够维持独立架构状态的任意逻辑,其中,独立维持的架构状态共享对执行资源的访问。如可以看到的,当某些资源被共享并且其它专用于架构状态时,硬件线程与核的命名之间的线重叠。而经常,操作系统将核和硬件线程视为单独的逻辑处理器,在该逻辑处理器中,操作系统能够单独地调度每个逻辑处理器上的操作。[0138]物理CPU612可以包括任意适合数量的核。在各种实施例中,核可以包括一个或多个乱序处理器核或者一个或多个有序处理器核。然而,可以从诸如如下之类的任意类型的核中单独选择核:本机核、软件管理的核、适用于执行本机指令集架构(ISA的核、适用于执行翻译的ISA的核、协同设计的核、或者其它已知的核。在异构核环境(S卩,非对称核)中,可以利用诸如二进制翻译之类的一些形式的翻译来调度或执行一个或两个核上的代码。[0139]在描述的实施例中,核630A包括具有前端单元670的乱序处理器,该前端单元用于提取传入指令、执行各种处理例如,高速缓存、解码、分支预测等)以及将指令操作传递至乱序〇〇〇引擎680。000引擎680执行对解码的指令的进一步处理。[0140]前端670可以包括耦合至取指逻辑的用于对提取的元素进行解码的解码模块。在一个实施例中,取指逻辑包括与核630的线程槽相关联的单独的定序器。通常,核630与第一ISA相关联,该第一ISA定义指定在核630上可执行的指令。作为第一ISA的部分的机器代码指令经常包括指令的部分被称为操作码),该部分引用指定将要执行的指令或操作。解码模块可以包括根据指令的操作码识别这些指令并且在管线中传递解码的指令以用于如由第一ISA定义的处理的电路系统。例如,在一个实施例中,解码器可以包括被设计用于或者适用于识别诸如事务指令之类的特定指令的逻辑。作为由解码器进行识别的结果,核630的架构采取特定的、预先定义的行动来执行与适当指令相关联的任务。重要的是注意,本文中描述的任务、块、操作以及方法中的任意一个可以响应于单个或多个指令而被执行;该指令中的一些可以是新指令或旧指令。在一个实施例中,核630的解码器识别相同的ISA或者其子集)。替代地,在异构核环境中,一个或多个核例如,核630B的解码器可以识别第二ISA第一ISA的子集或者不同的ISA。[0141]在描述的实施例中,乱序引擎680包括分配单元682,该分配单元用于从前端单元670接收以一个或多个微指令或内部指令的形式的解码指令,并且将该解码指令分配至诸如寄存器等的适当的资源。下一步,向保留站684提供指令,该保留站保留资源并且对资源进行调度以用于在多个执行单元686A-686N中的一个执行单元上执行。可以呈现各种类型的执行单元,包括,例如,算术逻辑单元ALU、加载和存储单元、向量处理单元VPU、浮点数执行单元等。向重排序缓冲器ROB688提供来自这些不同执行单元的结果,该重排序缓冲器取得未排序的结果并且将该结果返回为正确的程序顺序。[0142]在描述的实施例中,前端单元670和乱序引擎680两者耦合至存储器层次结构的不同等级。特别示出的是指令级高速缓存672,该指令级高速缓存继而耦合至中级高速缓存676,该中级高速缓存继而耦合至最后一级高速缓存695。在一个实施例中,最后一级高速缓存695在片上有时被称为非核)单元690中实现。非核690可以与系统存储器699进行通信,该系统存储器在示出的实施例中经由嵌入式动态随机存取存储器eDRAM来实现。乱序引擎680内的各种执行单元686与第一级高速缓存674进行通信,该第一级高速缓存674还与中级高速缓存676进行通信。额外的核630B-630D也可以耦合至最后一级高速缓存695。[0143]在各种实施例中,非核690有时被称为系统代理可以包括不是核630的部分的任意适合的逻辑。例如,非核690可以包括最后一级高速缓存、高速缓存控制器、耦合至系统存储器的管芯上存储器控制器、处理器互连控制器例如,超路径互连或相似的控制器)、管芯上IO控制器、或者其它适合的管芯上逻辑中的一个或多个。[0144]在特定的实施例中,非核690可以在与核的电压域和或频域分离的电压域和或频域中。即,非核690可以由与用于对核供电的电源电压不同的电源电压供电,和或可以以与核的操作频率不同的频率操作。[0145]CPU612还可以包括功率控制单元PCU640。在各种实施例中,P⑶640可以控制应用于核中的每个基于每核)以及非核的电源电压和操作频率。PCU640还可以指示核或非核在不执行工作负载时进入空闲状态其中,不供应电压和时钟)。[0146]在各种实施例中,PCU640可以检测诸如核与非核之类的硬件资源的一个或多个应力特性。应力特性可以包括对放置在硬件资源上的应力的量的指示。作为示例,应力特性可以是应用于硬件资源的电压或频率;在硬件资源处感测到的功率电平、电流电平、或者电压电平;在硬件资源处感测到的温度;或者其它适合的测量。在各种实施例中,当感测特定的时刻处的应力特性时,可以执行对特定应力特性的(例如,在不同位置处的)多个测量。在各种实施例中,PCU640可以以任意适合的间隔检测应力特性。[0147]在各种实施例中,P⑶640可以包括微控制器,该微控制器执行嵌入式固件以用于执行与本文中描述的应力监测相关联的各种操作。在一个实施例中,PCU640使用硬件来执行本文中描述的PCU功能中的一些或所有而不执行软件指令。例如,PCU640可以包括固定和或可编程逻辑来执行PCU的功能。[0148]在各种实施例中,P⑶640是与核630分立的组件。在特定的实施例中,P⑶640以不同于由核630使用的时钟频率的时钟频率来运行。在其中PCU为微控制器的一些实施例中,PCU640根据与由核630使用的ISA不同的ISA来执行指令。[0149]在各种实施例中,CPU612还可以包括非易失性存储器650,该存储器用于存储与核630或非核690相关联的应力信息例如,应力特性、增加的应力值、累积的应力值、应力累积速率、或者其它应力信息),使得当失去电源时,应力信息被维持。[0150]图7是根据本说明书的一个或多个示例的被配置用于远程直接存储器存取RDMA和异步数据刷新ADR的数据中心的框图。[0151]在该示例中,系统1710-1在RDM配置中经由交换机774连接至系统2710-2。两个系统可以是数据中心中的对等系统,或者系统2可以是,例如,如以上描述的提供对诸如3DXP之类的存储器进行远程存取的存储器服务器。在该示例中,系统1710-1对系统2710-2上的远程存储器进行存取,但是系统可以一样容易地反过来工作。在该特定的示例中,系统2提供本地存储器722-2,该存储器可以是持久性快速存储器。系统1还可以具有本地存储器722-1,该存储器可以是易失性存储器或者可以是持久性存储器。[0152]在RDMA操作的过程中,系统1710-1向其自己的本地持久性存储器722-1发出存储命令。在到达存储器之前存储被置于其中的两个不同的易失性区域是高速缓存层次结构示出为高速缓存706-1以及存储器控制器720-1的内部缓冲器。出于本说明书的目的,高速缓存706-1和存储器控制器720-1的内部缓冲器两者可以被认为是“易失性高速缓存”,这表示它们是其中可以临时存储数据的区域,并且当移除电源时,存储在其中的数据会丢失。[0153]在正常操作中,如果存储位于高速缓存706中,则可以通过诸如CLFLUSH0PT之类的指令以及诸如Si^ENCE之类的存储器提取指令的使用,将存储清除出去。因此,发出这两个指令可以保证存储不再处于高速缓存706中。[0154]但是在将存储从高速缓存706中清除出去之后,存储仍然可以置于也是易失性的存储器控制器缓冲器中。因此,在电源丢失的事件中,必要的是使用ADR722来确保数据被存储至持久性快速存储器。如在ADR722的具体视图中示出的,将辅助电源780例如,电容器或者小型电池与ADR缓冲器782—起提供。选择辅助电源780以具有充足的存储的能量,使得在主电源故障或移除(例如,灾难性的电源丢失,或者用户启动或安排的关机、暂停或重启)的情况中,存在充足的电源来将易失性高速缓存中的数据清除为持久性。在有该特征的情况下,应用软件可以自由假设所有存储一旦被执行则是持久性的。[0155]但是在RDM的情况中,问题较为复杂。对于本地设备,具有必需的电源不足以管理其自己的存储。可能需要一连串受电设备来确保数据远程地达到持久性。在示出的RDMA路径利用虚线示出)中,系统1710-1上的应用可以向系统2710-2发出“放”或“存储”。当系统1710-1上的应用向系统2710-2发出持久性存储时,应用可以发出CLFLUSH0PT和Si^ENCE来确保存储不再处于系统1710-1的CPU高速缓存中。相似地,系统2上的ADR770-2可以处理驻留在系统2710-2的易失性高速缓存中的存储。但是当移除电源时,存储仍可以置于系统1710-1的HFI770-1中、结构本身例如,交换机774上)内,或者系统2710-2的HFI770-2内。[0156]为了确保持久性,当向远程节点上的持久性存储器写入时,机制提供对保持数据的软件控制和可视性。这可以被认为是“通过RDM的ADR”。该机制包括对电容电源的添加以用于覆盖HFI其可以与处理器一起集成在一些当代系统中)、将持久性缓冲器添加在交换机中、以及对新的数据流的添加。[0157]在一个示例中,可以在结构内存在专用的ADR通道。这些专用的通道可以是专用的软件通道或端口,或者这些专用的通道可以是专用的硬布线的通道。这些通道可以特别专用于利于保证的带宽来传送远程存储器存储。[0158]每个HFI770包括ADR772,该ADR包括根据专用ADR通道的带宽来确定大小的ADR缓冲器782,使得在电源故障的情况中,保证从节点1710-1向交换机774的远程持久性存储器请求到达交换机ADR772-3。一旦存储请求到达交换机774,则该请求首先被存储在ADR772-3中,并且然后可以被移动至诸如NVMDHM748之类的中间非易失性位置。从该点,可以使用常规通道和现有的流包括节点2中的ADR772-2来将数据发送至节点2710-2。[0159]在某些实施例中,HA可以用于检测目标为持久性快速存储器的远程存储器请求。一旦将远程持久性写入保存至ADR772,则可以将确认ACK发送回至核与应用。[0160]进一步在某些实施例中,系统710交换机774针对远程写入可以具有一个或多个专用的结构通道、或者固定的保证的带宽。可以调整ADR772的大小以确保在电源故障的情况中,将ADR缓冲器782清除出至交换机774。[0161]要注意的是,虽然ADR772确保可以在本地电源故障的情况中将RDMA请求清除出去,但是数据中心范围的电源故障可能引起“飞行中的”(例如,仍驻留在交换机上的)数据的丢失。因此,提供对NVMDMM748以及ADR772-3的使用来减轻这样的丢失。在一个示例中,当诸如生成器或者不间断电源UPC之类的较大的辅助电源接管时,数据被存储在NVMDMM748中几秒钟。一旦操作电源恢复,则然后可以以无缝的方式将数据从NVMDMM748发送至系统2710-2。[0162]一旦将数据递送至系统2710-2,则即使在电源失去的情况中,ADR77202也可以帮助确保数据持久地被存储在那里。[0163]图8是根据本说明书的一个或多个示例的RDMA持久性存储操作的信号流图。该流在正常操作和在电源失去的情况中都可以是有用的。在该示例中,系统1710-1的核702-1执行程序并且使用RDMA来对系统2710-2的远程持久性快速存储器进行存取。交换机774提供两个系统之间的结构。[0164]在操作1处,核702-1发出指向高速缓存706-1的远程持久性存储指令。高速缓存706-1可以是易失性高速缓存,并且因此进一步地可能需要在达到持久性之前传播数据。因此,在操作2处,高速缓存706-1将数据写出至系统1710-1的ADR772-1。[0165]一旦将数据写入ADR772-1,则在操作3处,ADR772-1向交换机774发出远程持久性存储指令。在操作4处,交换机774将数据存储在NVMDIMM748中。现在,从系统1710-1的角度,远程持久性存储已被成功。换言之,已将数据传递至交换机774,并且在交换机774内已达到持久性,使得ADR772-1已完成其目的。[0166]当交换机774已将数据存储在NVMDI匪748中时,交换机可以向ADR772-1发出ACK操作5,该ACK指示数据已达到持久性。ADR772-1然后可以将ACK传播至高速缓存706-1操作6,并且最终至核702-1操作7。因此,从系统1710-1的角度,远程持久性存储已被成功。[0167]在一些实施例中,如果核702-1不能接收到适当的ACK,则可以抛出异常或者采取一些其它补救行动。[0168]返回至交换机774,交换机774必须在其自己的非易失性存储器中保持数据,或者将数据传播出至系统2710-2并且确信系统710-2已被成功存储数据。因此,在操作8处,交换机774将远程持久性存储传播出至系统2710-2。[0169]系统2710-2将远程持久性存储接收到ADR772-2中。在操作9处,ADR772-2向存储器控制器720-2发出存储器写入。一旦ADR772发出存储器写入,则存储器控制器720-2将数据存储在持久性快速存储器722-2中。[0170]在操作10处,存储器控制器720-2将ACK发送至ADR772-2。现在,ADR772-2确信已将数据成功写入远程持久性存储器,并且在操作11处,ADR772-2向交换机774发出ACK。[0171]一旦交换机774已从ADR772-2接收到ACK,则交换机774确信已将数据持久地写入并且正常操作可以重新开始。[0172]但是如果,例如,ADR772-2的电源在持久性写入完成之前出现故障,则ADR772-2不能将ACK发送至交换机774。如果交换机774未接收到ACK,则交换机774在诸如NVMDIMM748之类的交换机自己的持久性存储器中维持数据。当电源恢复时,则交换机774可以采取补救行动。例如,交换机可以再次尝试将数据写出至系统2710-2,或者在一些情况中,可以向系统管理员提供通知来向管理员报警有失败的系统写入。系统管理员然后可以采取额外的行动。[0173]图9是由系统1710-1执行的方法900的流图,该系统根据本说明书的一个或多个示例通过RDMA来执行ADR。[0174]在框902中,主电源904出现故障或者被移除,例如,重启事件、暂停、断电、或者由于灾难性电源故障,系统1710-1检测到主电源故障。[0175]在框906中,系统1710-1将其易失性高速缓存清除出至ADR772-1,该ADR包括ADR缓冲器782和辅助电源780。[0176]在框908中,ADR772-1经由HFI770-1将ADR缓冲器清除出至结构774。然后系统1710-1等待来自结构774的ACK。[0177]在判定框912中,系统710-1确定其是否已从结构774接收到适当的ACK910。如果未接收到ACK,则在框999中,远程持久性存储器写入失败,并且异常被提出或者可以采取一些补救行动。[0178]另一方面,如果接受到ACK,则在框998中,从系统1710-1的角度,远程持久性存储器写入成功。[0179]图10是根据本说明书的一个或多个示例的由交换机774执行的方法1000的流图。[0180]在框1002中,如以上描述的主电源1004故障,并且交换机774检测到电源故障,这指示需要保护持久性数据。[0181]在框1006中,交换机774从系统1710-1接收到RDMA数据。这些数据初始地被接收到交换机774的ADR772-3中。[0182]在框1008中,交换机774将RDMA数据写入NVMDHM748。这确保即使辅助电源在远程持久性写入完成之前出现故障,NVMDIMM748中的数据也不丢失。[0183]在框1010中,交换机774向系统1710-1发送ACK,该ACK向系统1710-1指示写入成功从系统1710-1的角度)。[0184]在框1012中,交换机774将RDMA数据清除出至节点2710-2。然后,交换机774等到来自系统710-2的ACK。[0185]在判定框1016中,如果未接受到ACK1014,则在框1099中,向系统2710-2的远程持久性存储失败,并且可以如以上描述的采取一些补救行动。[0186]另一方面,如果接收到ACK1014,则在框1098中,向系统2710-2的存储成功。[0187]图11是根据本说明书的一个或多个示例的由系统2710-2执行的方法1100的流图。[0188]在框1102中,系统2710-2检测到主电源1104的电源故障。[0189]在框1104中,使用ADR772-2内的辅助电源,系统2710-2从结构774接收到RDMA数据。[0190]在1106中,系统2710-2将数据写入其持久性快速存储器722-2。[0191]在框1108中,一旦已将数据成功写入持久性快速存储器,则系统2710-2将ACK发送至交换机774。[0192]在框1199中,方法结束。[0193]前面概述了若干实施例的特征,使得本领域技术人员可以较好地理解本公开的各种方面。本领域技术人员应该认识到,他们可以容易地使用本公开作为用于设计或修改用于执行与本文中引入的实施例的相同的目的和或达到相同的优点的其它过程和结构的基础。本领域技术人员还应该意识到,这样的等效构造不偏离本公开的精神和范围,并且他们可以在本文中做出各种改变、替换和更改而不偏离本公开的精神和范围。[0194]本文中公开的任意硬件元件的所有或部分可以容易地在包括中央处理单元CPU封装的片上系统SoC中被提供。SoC表示将计算机或其它电子系统的元件集成到单个芯片中的集成电路1C。因此,例如,可以在SoC中全部或部分地提供客户端设备或服务器设备。SoC可以包含数字、模拟、混合信号、以及无线频率功能,所有这些可以在单个芯片衬底上被提供。其它实施例可以包括多芯片模块MCM,该多芯片模块具有位于单个电子封装内并且被配置为通过电子封装与彼此紧密地交互的多个芯片。在各种其它实施例中,本文中公开的计算功能性可以在专用集成电路ASIC、现场可编程门阵列FPGA、以及其它半导体芯片中的一个或多个娃芯中实现。[0195]还要注意的是,在某些实施例中,组件中的一些可以被省略或合并。一般意义而言,示图中描述的布置在其表示中会较有逻辑,而物理架构可以包括这些元件的各种排列、组合、和或混合。急需注意的是,无数可能的设计配置可以用于达到本文中概述的操作目的。因此,相关联的基础结构具有大量替代布置、设计选择、设备可能性、硬件配置、软件实施方式、以及设备选项。[0196]—般意义而言,任意适当配置的处理器可以执行与数据相关联的任意类型的指令来达到本文中描述的操作。本文中公开的任意处理器可以将元件或物件例如,数据从一个状态或物体转换为另一状态或物体。在另一示例中,本文中概述的一些活动可以利用固定逻辑或可编程的逻辑例如,由处理器执行的软件和或计算机指令来实现,并且本文中标识的元件可以是一些类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列FPGA、可擦除可编程只读存储器EPROM、电可擦除可编程只读存储器EEPROM、包括数字逻辑、软件、代码、电子指令、闪存、光磁盘、CD-ROM、DVDR0M、磁卡或光卡的ASIC、适于存储电子指令的其它类型的机器可读介质、或者其任意适合的组合。[0197]在操作中,存储装置可以将信息存储在任意适合类型的有形、非暂时性存储介质例如,随机存取存储器RAM、只读存储器ROM、现场可编程门阵列FPGA、可擦除可编程只读存储器EPROM、电可擦除可编程只读存储器EEPROM等)、软件、硬件例如,处理器指令或微代码)中、或者在适当的情况下并且基于特定需要,存储在任意其它适合的组件、设备、元件、或对象中。此外,在处理器中追踪、发送、接收、或存储的信息可以基于特定的需要和实施方式,在任何数据库、寄存器、表、高速缓存、队列、控制列表、或者存储结构中提供,所有这些可以以任意适合的时间框架被引用。本文中公开的存储器或存储元件中的任意一个应该被解释为涵盖在广泛术语“存储器”和“存储装置”内,如适当的话。本文中非暂时性存储介质明确地旨在包括被配置为提供公开的操作的、或者使处理器执行公开的操作的任意非暂时性专用或可编程硬件。[0198]实现本文中描述的功能性的所有或部分的计算机程序逻辑以各种形式被体现,包括但是完全不限于,源代码形式、计算机可执行形式、机器指令或微代码、可编程硬件、以及各种中间形式例如,由汇编器、编译器、链接器或定位器生成的形式)。在示例中,源代码包括一系列计算机程序指令,所述计算机程序指令以各种编程语言(例如,对象代码、汇编语言)或者高级语言诸如^611^01^1^1:、0++、弘¥4、或!^1^中实现以用于与各种操作系统或操作环境一起使用,或者以硬件描述语言(例如,SpiceJerilog、以及VHDL来实现。源代码可以定义并且使用各种数据结构和通信消息。源代码可以是以计算机可执行形式的例如,经由解释器),或者源代码可以被转成例如,经由翻译器、汇编器、或编译器计算机可执行形式,或者被转为诸如字节代码之类的中间形式。在适当的情况下,前述的任意一项可以用于建立或描述适当的离散或集成电路,无论是顺序的、组合的、状态机器的还是其它的。[0199]在一个示例中,任意数量的示图的电路可以在相关联的电子设备的板上实现。板可以是一般的电路板,该电路板可以保持电子设备的内部电子系统的各种组件,并且进一步提供针对其它外围设备的连接器。较具体地,板可以提供电连接,通过该电连接,系统的其它组件可以进行电通信。任意适合的处理器和存储器可以基于特定的配置需要、处理需求、和计算设计来适当地耦合至板。诸如外部存储装置、额外的传感器、用于音频视频显示的控制器、以及外围设备之类的其它组件可以经由电缆附接至诸如插卡之类的板、或者被集成到板本身中。在另一示例中,可以将示图的电路作为独立模块例如,具有被配置为执行特定应用或功能的相关联的组件和电路系统的设备实现到电子设备的专用硬件中、或者作为插入模块实现到电子设备的专用硬件中。[0200]要注意的是,利用本文中提供的许多示例,可以关于两个、三个、四个或更多电子组件地描述交互。然而,这仅出于清晰和示例的目的来完成。应该认识到的是,系统可以以任意适合的方式来合并或重新配置。依照相似的设计替代例,示出的附图的组件、模块和元件中的任意一个可以以各种可能的配置组合,所有这些都在本说明书的广泛的范围内。在某些情况中,可能通过仅引用有限数量的电气元件,较容易描述流的给定集合的功能性的一个或多个。应该认识到的是,示图及其教导的电路是容易可扩展的,并且可以容纳大量的组件,以及较复杂精密的布置和配置。因此,所提供的示例不应该限制范围或者阻碍电路的广泛教导,这是因为该电路可能应用于大量其它架构。[0201]许多其它改变、替换、变型、更改和修改对于本领域技术人员是可以查明的,并且设想的是本公开涵盖落入所附权利要求的范围内的所有这样的改变、替换、变型、更改和修改。为了帮助美国专利商标局USPTO,以及另外根据本申请发出的任意专利的任意读者解释所附的权利要求书,发明人期望指出,发明人:(a并非想要所附权利要求中的任一项调用35U.S.C章节112前AIA的段落六6或者相同章节后AIA的段落f,如其自申请日所存在的,除非在特定的权利要求中特别使用词“用于如下的单元”或者“用于如下的步骤”;并且⑹不想要通过本说明书中的任意声明来以所附权利要求中未另外明确反映的任意方式限制本公开。[0202]示例实施方式[0203]在一个示例中公开了一种计算装置,其包括:主机结构接口(HFI,其用于通信地耦合至结构的结构控制器;异步数据刷新ADR,其包括辅助电源和ADR缓冲器;以及存储器控制器,其包括逻辑,该逻辑用于:经由结构直接对远程计算设备的持久性快速存储器进行存取;检测主电源故障事件;并且将数据从ADR缓冲器清除出至结构控制器。[0204]还公开了示例,进一步包括高速缓存,并且其中,存储器控制器进一步用于将数据从高速缓存清除出至ADR缓冲器。[0205]还公开了示例,其中,存储器控制器逻辑进一步用于从结构控制器接收确认ACK〇[0206]还公开了示例,其中,存储器控制器逻辑进一步用于将数据指定为已被成功写入。[0207]还公开了示例,进一步包括本地持久性快速存储器。[0208]还公开了示例,其中,存储器控制器逻辑进一步用于:在检测到主电源故障事件之后,将数据从结构控制器接收到ADR缓冲器中;并且将ADR缓冲器清除出至持久性快速存储器。[0209]还公开了示例,其中,存储器控制器逻辑进一步用于将确认发送至结构控制器。[0210]还公开了示例,进一步包括HFI上的专用ADR通道。[0211]还公开了示例,其中,专用ADR通道是硬件通道。[0212]还公开了示例,其中,专用ADR通道是软件通道。[0213]还公开了示例,一种持久性快速存储器服务器,其包括:主机结构接口(HFI,其用于通信地耦合至结构的结构控制器;持久性快速存储器;异步数据刷新ADR,其包括辅助电源和ADR缓冲器;以及存储器控制器,其包括逻辑,该逻辑用于:经由结构向远程主机提供远程直接存储器存取RDMA;检测主电源故障事件;将数据从结构控制器接收到ADR缓冲器中;以及将ADR缓冲器清除出至持久性快速存储器。[0214]还公开了示例,其中,存储器控制器逻辑进一步用于将确认发送至结构控制器。[0215]还公开了示例,进一步包括HFI上的专用ADR通道。[0216]还公开了示例,其中,专用ADR通道是硬件通道。[0217]还公开了示例,其中,专用ADR通道是软件通道。[0218]还公开了示例,其中,存储器控制器逻辑进一步用于:经由结构直接对远程计算设备的持久性快速存储器进行存取;并且在检测到远程电源故障事件之后,将数据从ADR缓冲器清除出至结构控制器。[0219]还公开了示例,进一步包括高速缓存,并且其中,存储器控制器进一步用于将数据从高速缓存清除出至ADR缓冲器。[0220]还公开了示例,其中,存储器控制器逻辑进一步用于从结构控制器接收确认ACK〇[0221]还公开了示例,其中,存储器控制器逻辑进一步用于将数据指定为已被成功写入。[0222]还公开了一种向远程持久性快速存储器提供存储的方法的示例,该方法包括:通信地耦合至结构的结构控制器;经由结构直接对远程计算设备的持久性快速存储器进行存取,这包括将数据写入本地异步数据刷新ADR缓冲器;检测主电源故障事件;访问辅助电源;以及将数据从ADR缓冲器清除出至结构控制器。[0223]还公开了示例,进一步包括将数据从高速缓存清除出至ADR缓冲器。[0224]还公开了示例,进一步包括从结构控制器接收确认ACK。[0225]还公开了示例,进一步包括将数据指定为已被成功写入。[0226]还公开了示例,进一步包括对本地持久性快速存储器进行存取。[0227]还公开了示例,进一步包括:在检测到主电源故障事件之后,将数据从结构控制器接收到ADR缓冲器中;以及将ADR缓冲器清除出至持久性快速存储器。[0228]还公开了示例,进一步包括将确认发送至结构控制器。[0229]还公开了示例,进一步包括访问结构上的专用ADR通道。[0230]还公开了示例,其中,专用ADR通道是硬件通道。[0231]还公开了示例,其中,专用ADR通道是软件通道。[0232]还公开了网络交换机的示例,该网络交换机包括:交换结构,其用于从第一系统向第二系统提供远程直接存储器存取RDM,其中,第二系统包括持久性快速存储器;异步数据刷新ADR,其包括ADR缓冲器和辅助电源;以及逻辑,该逻辑用于检测主电源故障;从第一系统接收RDMA数据;并且将RDMA数据清除出至第二系统。[0233]还公开了示例,进一步包括本地持久性存储器,其中,从第一系统接收RDMA数据包括将RDM数据接收到本地持久性存储器中。[0234]还公开了示例,其中,逻辑进一步用于将确认发送至第一系统。[0235]还公开了示例,其中,逻辑进一步用于从第二系统接收确认。[0236]还公开了示例,其中,逻辑进一步用于将RDM数据指定为已被成功写入。[0237]还公开了示例,其中,逻辑进一步用于确定未从第二系统接收到确认,并且采取补救行动。

权利要求:1.一种计算装置,其包括:主机结构接口(HFI,其用于通信地耦合至结构的结构控制器;异步数据刷新ADR,其包括辅助电源和ADR缓冲器;以及存储器控制器,其包括逻辑,所述逻辑用于:经由所述结构直接对远程计算设备的持久性快速存储器进行存取;检测主电源故障事件;并且将数据从所述ADR缓冲器清除出至所述结构控制器。2.根据权利要求1所述的计算装置,进一步包括高速缓存,并且其中,所述存储器控制器进一步用于将数据从所述高速缓存清除出至所述ADR缓冲器。3.根据权利要求1所述的计算装置,其中,所述存储器控制器逻辑进一步用于从所述结构控制器接收确认ACK。4.根据权利要求3所述的计算装置,其中,所述存储器控制器逻辑进一步用于将所述数据指定为已被成功写入。5.根据权利要求1所述的计算装置,进一步包括本地持久性快速存储器。6.根据权利要求5所述的计算装置,其中,所述存储器控制器逻辑进一步用于:在检测到主电源故障事件之后,将数据从所述结构控制器接收到所述ADR缓冲器;并且将所述ADR缓冲器清除出至所述持久性快速存储器。7.根据权利要求6所述的计算装置,其中,所述存储器控制器逻辑进一步用于将确认发送至所述结构控制器。8.根据权利要求1-7中的任意一项所述的计算装置,进一步包括所述HFI上的专用ADR通道。9.根据权利要求8所述的计算装置,其中,所述专用ADR通道是硬件通道。10.根据权利要求8所述的计算装置,其中,所述专用ADR通道是软件通道。11.一种持久性快速存储器服务器,其包括:主机结构接口(HFI,其用于通信地耦合至结构的结构控制器;持久性快速存储器;异步数据刷新ADR,其包括辅助电源和ADR缓冲器;以及存储器控制器,其包括逻辑,所述逻辑用于:经由所述结构向远程主机提供远程直接存储器存取RDM;检测主电源故障事件;将数据从所述结构控制器接收到所述ADR缓冲器;并且将所述ADR缓冲器清除出至所述持久性快速存储器。12.根据权利要求11所述的计算装置,其中,所述存储器控制器逻辑进一步用于将确认发送至所述结构控制器。13.根据权利要求11所述的计算装置,进一步包括所述HFI上的专用ADR通道。14.根据权利要求13所述的计算装置,其中,所述专用ADR通道是硬件通道。15.根据权利要求13所述的计算装置,其中,所述专用ADR通道是软件通道。16.根据权利要求11-15中的任意一项所述的计算装置,其中,所述存储器控制器逻辑进一步用于:经由所述结构直接对远程计算设备的持久性快速存储器进行存取;并且在检测到远程电源故障事件之后,将数据从所述ADR缓冲器清除出至所述结构控制器。17.根据权利要求16所述的计算装置,进一步包括高速缓存,并且其中,所述存储器控制器进一步用于将数据从所述高速缓存清除出至所述ADR缓冲器。18.根据权利要求16所述的计算装置,其中,所述存储器控制器逻辑进一步用于从所述结构控制器接收确认ACK。19.根据权利要求18所述的计算装置,其中,所述存储器控制器逻辑进一步用于将所述数据指定为已被成功写入。20.—种向远程持久性快速存储器提供存储的方法,所述方法包括:通信地耦合至结构的结构控制器;经由所述结构直接对远程计算设备的持久性快速存储器进行存取,包括将数据写入本地异步数据刷新ADR缓冲器;检测主电源故障事件;访问辅助电源;以及将数据从所述ADR缓冲器清除出至所述结构控制器。21.根据权利要求20所述的方法,进一步包括将数据从高速缓存清除出至所述ADR缓冲器。22.根据权利要求20所述的方法,进一步包括从所述结构控制器接收确认ACK。23.根据权利要求22所述的方法,进一步包括将所述数据指定为已被成功写入。24.根据权利要求20-23中的任意一项所述的方法,进一步包括对本地持久性快速存储器进行存取。25.根据权利要求24所述的方法,进一步包括:在检测到主电源故障事件之后,将数据从所述结构控制器接收到所述ADR缓冲器;以及将所述ADR缓冲器清除出至所述持久性快速存储器。

百度查询: 英特尔公司 用于持久性远程直接存储器存取的系统与方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术