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

虚拟设备便携性的制作方法

2022-07-20 01:17:46 来源:中国专利 TAG:

虚拟设备便携性
1.相关申请
2.本技术要求于2021年1月15日提交的美国临时专利申请序号 63/138,305的优先权日的权益,其全部公开内容通过引用并入本文。


背景技术:

3.诸如smartnic之类的网络接口设备可以提供由云管理系统(cms)动 态创建和删除的虚拟化的、硬件独立的设备接口。这些设备可以是已部分出 租(例如,细分)或作为裸机完全出租给云终端客户或租户的不受信任的计 算环境中的硬件隔离接口(hardware isolated interface)。为了平衡平台工作 负载,可能会发生虚拟机从源平台到另一个平台的迁移。然而,迁移的虚拟 机的仿真设备接口(emulated device interface)可能无法在目标平台中操作, 这会导致对虚拟机可以迁移到的目标平台的限制。
附图说明
4.图1是用于利用解聚的资源执行工作负载的数据中心的至少一个示例 的简化图。
5.图2是可以被包括在数据中心中的系统的至少一个示例的简化图。
6.图3是节点的顶侧的至少一个示例的简化框图。
7.图4是节点的底侧的至少一个示例的简化框图。
8.图5是计算节点的至少一个示例的简化框图。
9.图6是可用于数据中心中的加速器节点的至少一个示例的简化框图。
10.图7是可用于数据中心中的存储节点的至少一个示例的简化框图。
11.图8是可用于数据中心的存储器节点的至少一个示例的简化框图。
12.图9描绘了用于执行一个或多个工作负载的系统。
13.图10描绘了示例系统。
14.图11示出了示例系统。
15.图12描绘了示例系统。
16.图13描绘了示例系统,其中,计算复合体可以与一个或多个仿真设备 通信。
17.图14a描绘了分组传输的示例。
18.图14b描绘了示例分组传输流。
19.图15a描绘了分组接收的示例。
20.图15b描绘了示例分组接收流。
21.图16描绘了示例过程。
22.图17描绘了示例计算系统。
具体实施方式
23.一些示例包括具有计算平台和基于硬件的分组处理器的网络接口设备。 主机系统可以执行虚拟环境(例如,虚拟机或容器)或提供裸机环境。主机 系统(例如,服务器)可
以向网络接口设备上的计算平台的至少一个处理器 提供指令以执行分组处理。主机系统可以利用处理器执行的仿真软件设备 来提供网络接口设备和虚拟或裸机环境之间的通信。代替或附加于由虚拟 环境的驱动程序在主机系统的处理器上执行工作,此类工作可由网络接口 设备上的计算平台的至少一个处理器执行。可以释放主机系统的处理器来 执行描述符转换以外的其他工作。
24.在一些示例中,对于传输操作,网络接口设备的计算平台可以执行处理 器执行的指令,以将描述符从仿真软件设备所提供的格式转换为网络接口 设备的分组处理器所接受和正确解释的描述符格式。在一些示例中,对于接 收操作,网络接口设备的计算平台可以执行处理器执行的指令,以将描述符 从网络接口设备的分组处理器所使用的格式转换为仿真软件设备所接受并 正确解释的描述符格式。基于硬件的分组处理器可以基于转换后的描述符 来访问来自主机存储器的数据或将数据写入主机存储器。一些示例为将数 据复制到网络接口设备的计算平台或从网络接口设备的计算平台读取数据 提供了硬件隔离路径。
25.一些示例为在具有不同被接受的设备描述符格式和用于利用云模型管 理计算资源的后端恢复功能的平台之间实时迁移、启动或重新启动虚拟环 境提供了灵活性。尽管虚拟环境迁移到的平台处的设备支持与仿真软件设 备的描述符格式不同的描述符格式,但迁移后的虚拟环境可以继续使用仿 真软件设备而无需修改。请注意,对虚拟化环境、微服务或无服务器应用的 引用可以可互换使用,使得对虚拟化环境的引用可以指代微服务和/或无服 务器应用,对微服务的引用可以指代虚拟化环境和/或无服务器应用,等等。
26.各种示例可以应用于无服务器应用或功能(例如,功能即服务(faas)), 无服务器应用或功能可以由以下各项执行或利用以下各项:这里描述的可 用资源,以及在数据中心、边缘计算设备或雾网络设备处或解聚的 (disaggregated)计算和存储器资源中的计算资源。例如,对于无服务器应 用,云服务提供商动态管理服务器的分配和供应,并且无服务器应用在无状 态计算容器中运行,这些容器由事件触发并且可能持续一次调用。无服务器 应用可以是事件驱动的、基于云的应用,其中,应用开发依赖于第三方服务、 客户端逻辑和云托管的远程过程调用的组合。无服务器应用可以是按使用 付费计算或裸代码,其中,基于被分配来运行无服务器应用的时间和计算资 源(例如,cpu、网络或存储器)对用户收费,而没有针对计算资源的空闲 时间的相关联的费用。在一些示例中,附加于或替代使用服务器或通用计算 平台,无服务器应用或功能可以由网络基础设施设备(例如,转发元件、路 由器、交换机、网络接口控制器)或加速器执行。
27.这里描述的各种示例可以执行由微服务组成的应用,其中,微服务在其 自己的进程中运行并使用协议(例如,应用程序接口(api)、超文本传输协 议(http)资源api、消息服务、远程过程调用(rpc)或谷歌rpc(grpc)) 进行通信。可以使用对这些服务的集中管理来独立部署微服务。管理系统可 以用不同的编程语言编写并使用不同的数据存储技术。微服务可以通过以 下一项或多项来表征:使用细粒度接口(用于可独立部署的服务)、多语言 编程(例如,用多种语言编写代码以获取单一语言无法提供的附加功能和效 率)或轻量级容器或虚拟机部署,以及分散的持续微服务交付。一个或多个 微服务可以在这里描述的任何资源上执行或使用这里描述的任何资源,例 如至少图3-11的资源。
28.这里描述的关于利用进程执行的仿真软件设备对虚拟化环境或裸机场 景中的环
境的执行的示例可以在关于本文图3-11描述的解聚的资源上执行 或利用所述解聚的资源。例如,可以启动、重新启动或迁移一个或多个虚拟 化环境以执行或使用不同的硬件资源。
29.图1描绘了一个数据中心,其中,解聚的资源可以协同执行一个或多 个工作负载(例如,代表客户的应用),工作负载包括多个系统110、120、 130、140,一个系统是或包括一行或多行机架或托盘(tray)。当然,尽管数 据中心100被示为具有多个系统,但是在一些示例中,数据中心100可以 被体现为单个系统。如本文更详细描述的,机架容纳多个节点,其中,一些 节点可以配备有一种或多种类型的资源(例如,存储器设备、数据存储设备、 加速器设备、通用处理器、gpu、xpu、cpu、现场可编程门阵列(fpga) 或专用集成电路(asic))。资源可以在逻辑上耦合或聚合以形成组合节点, 该节点可以充当例如用于执行作业、工作负载或微服务的服务器。
30.在说明性示例中,系统110、120、130、140中的节点连接到多个系统 交换机(例如,向和从系统内的节点路由数据通信的交换机)。交换机可以 位于机架顶部(tor)、行尾(eor)、机架中部(mor)或其他位置处。系 统交换机转而与在数据中心100中的系统(例如,系统110、120、130、140) 之间交换通信的主干交换机150连接。在一些示例中,节点可以使用本文 描述的标准或专有标准与结构连接。在其他示例中,节点可以与其他结构连 接,例如infiniband或以太网或光学结构。如这里更详细地描述的,数据中 心100中的节点内的资源可以被分配给包含来自一个或多个节点的资源的 组(这里称为“受管节点”)以在工作负载的执行时被共同利用。工作负载 可以像属于受管节点的资源位于同一节点上一样执行。受管节点中的资源 可能属于归属不同机架(并且甚至归属不同的系统110、120、130、140) 的节点。因此,单个节点的一些资源可以被分配给一个受管节点,而同一节 点的其他资源被分配给不同的受管节点(例如,一个处理器被指派给一个受 管节点,而同一节点的另一个处理器被指派给不同的受管节点)。
31.将资源解聚到主要由单一类型的资源组成的节点(例如,主要包括计算 资源的计算节点,主要包含存储器资源的存储器节点),以及解聚资源的选 择性分配和解除分配以形成被指派以执行工作负载的受管节点,相对于由 包含计算、存储器、存储和可能地附加资源的超融合服务器(hyperconvergedserver)组成的典型数据中心,改进了数据中心100的操作和资源使用。例 如,因为节点主要包含特定类型的资源,所以可以独立于其他资源升级给定 类型的资源。此外,由于不同的资源类型(处理器、存储器、存储、加速器 等)通常具有不同的刷新率,因此可以实现更高的资源利用率和更低的拥有 总成本。例如,数据中心运营商可以仅通过换出计算节点来升级贯穿其设施 中的处理器。在这种情况下,加速器和存储资源可以不同时升级,而是可以 被允许继续操作,直到这些资源被调度用于它们自己的刷新。资源利用率也 可以增加。例如,如果受管节点是基于将在其上运行的工作负载的要求来组 成的,则节点内的资源更有可能得到充分利用。这种利用可以允许更多受管 节点在具有给定资源集的数据中心中运行,或者允许使用更少资源构建被 预期运行给定工作负载集的数据中心。
32.图2描绘了一个系统。系统可以包括机架240的一组行200、210、220、 230。机架240可以容纳多个节点(例如,16个节点)并且向所容纳的节点 提供电力和数据连接,如在此更详细描述的。在说明性示例中,行200、210、 220、230中的机架连接到多个系统交换机250、
260。系统交换机250包括: 一组端口252,系统110的机架的节点连接到这些端口252;以及另一组端 口254,其将系统110连接到主干交换机150以提供到数据中心100中的其 他系统的连接性。类似地,系统交换机260包括:一组端口262,系统110 的机架的节点连接到这些端口262;以及一组端口264,其将系统110连接 到主干交换机150。如此,该对交换机250、260的使用向系统110提供了 一定量的冗余。例如,如果交换机250、260中的任一个发生故障,则系统 110中的节点仍可以保持通过另一个交换机250、260与数据中心100的其 余部分(例如,其他系统的节点)的数据通信。此外,在说明性示例中,交 换机150、250、260可以体现为双模光学交换机,能够路由承载互联网协议 (ip)分组的以太网协议通信和根据第二、高性能链路层协议(例如,pciexpress或compute express link)经由光学结构的光学信令介质进行的通 信二者。
33.应当意识到,其他系统120、130、140(以及数据中心100的附加系统) 都可以与在图2中示出以及关于图2描述的系统110类似地构造,并且具 有与所述系统110类似的组件(例如,系统可以具有容纳多个节点的机架 行,如上所述)。此外,虽然示出了两个系统交换机250、260,但是应当理 解,在其他示例中,系统110、120、130、140可以连接到不同数量的系统 交换机,从而提供更多的故障转移能力。当然,在其他示例中,系统的布置 方式可以不同于图1-2中所示的机架行配置(rows-of-racks configuration)。 例如,一个系统可以体现为多组机架,其中,一组机架径向布置,例如,机 架与中心交换机等距。
34.现在参考图3,在说明性示例中,节点400被配置为安装在数据中心 100的对应机架240中,如上所述。在一些示例中,节点400可以被优化或 以其他方式配置用于执行特定任务,例如计算任务、加速任务、数据存储任 务等。例如,节点400可以被体现为如下面关于图5讨论的计算节点500, 如下面关于图6所讨论的加速器节点600,如下面关于图7所讨论的存储节 点700,或作为被优化或以其他方式配置为执行其他专门任务的节点,例如 以下关于图8讨论的存储器节点800。例如,一个或多个微服务可以在节点 400、节点500、加速器节点600、存储节点700和/或存储器节点800上执 行或使用这些节点执行。
35.尽管图3中示出了两个物理资源320,但应当意识到,在其他示例中, 节点400可以包括一个、两个或更多个物理资源320。物理资源320可以体 现为任何类型的处理器、控制器或其他计算电路,其能够执行各种任务(例 如,计算功能)和/或控制节点400的功能,例如取决于节点400的类型或 预期功能。例如,如下文更详细地讨论的,物理资源320可以在节点400被 体现为计算节点的示例中被体现为高性能处理器,在节点400被体现为加 速器节点的示例中被体现为加速器协处理器或电路,在节点400被体现为 存储节点的示例中被体现为存储控制器,或在节点400被体现为存储器节 点的示例中被体现为一组存储器设备。
36.节点400还包括安装到电路板基板302的一个或多个附加物理资源330。 在说明性示例中,附加物理资源包括如下面更详细地讨论的网络接口控制 器(nic)。当然,取决于节点400的类型和功能,在其他示例中,物理资 源330可以包括附加或其他电气组件、电路和/或设备。
37.物理资源320可以经由输入/输出(i/o)子系统322通信地耦合到物理 资源330。i/o子系统322可以体现为用于促进与物理资源320、物理资源 330和/或节点400的其他组件的输入/输出操作的电路和/或组件。例如,i/o 子系统322可以体现为或以其他方式包括存
储器控制器集线器、输入/输出 控制集线器、集成传感器集线器、固件设备、通信链路(例如,点对点链路、 总线链路、电线、电缆、波导、光导、印刷电路板迹线等)和/或用于促进 输入/输出操作对其他组件和子系统。在用于存储器系统的说明性示例中, i/o子系统322体现为或以其他方式包括双倍数据速率4(ddr4)数据总 线或ddr5数据总线。
38.在一些示例中,节点400还可以包括资源到资源互连324。资源到资源 互连324可以体现为能够促进资源到资源通信的任何类型的通信互连。在 说明性示例中,资源到资源互连324体现为高速点对点互连(例如,比i/o 子系统322快)。例如,资源到资源互连324可以体现为quickpath互连 (qpi)、ultrapath互连(upi)、pci express(pcie)、compute express link (cxl)或其他用于资源到资源通信的高速点对点互连。
39.节点400还包括电源连接器340,该电源连接器340被配置为:当节点 400安装在对应的机架240中时,与机架240的对应电源连接器配合。节点 400从机架240的供电装置经由电源连接器340接收电力以为节点400的 各种电气组件供电。在一些示例中,节点400包括本地供电装置(例如,板 载供电装置)以向节点400的电气组件提供电力。在一些示例中,节点400 不包括用于向节点400的电气组件提供电力的任何本地供电装置(例如, 板载供电装置)。排除本地或板载供电装置有助于降低电路板基板302的整 体占用面积,这可以增加安装在电路板基板302上的各种电子组件的热冷 却特性,如上所述。在一些示例中,电压调节器被放置在与处理器520(见 图5)正对的电路板基板302上,并且电力通过延伸穿过电路板基板302的 过孔(via)从电压调节器路由到处理器520。
40.现在参考图4,附加于安装在电路板基板302上的物理资源330,节点 400还包括一个或多个存储器设备420。物理资源320可以经由i/o子系统 322通信地耦合到存储器设备420。例如,物理资源320和存储器设备420 可以通过延伸穿过电路板基板302的一个或多个过孔通信地耦合。在一些 示例中,物理资源320可以通信地耦合到不同的一组一个或多个存储器设 备420。可替代地,在其他示例中,物理资源320可以通信地耦合到存储器 设备420。
41.存储器设备420可以体现为能够在节点400的操作期间为物理资源320 存储数据的任何类型的存储器设备,例如任何类型的易失性(例如,动态随 机存取存储器(dram)等)或非易失性存储器。
42.在一个示例中,存储器设备是块可寻址存储器设备,例如基于nand 或nor技术的那些,例如,多阈值级nand闪存和nor闪存。块可以是 任何大小,例如但不限于2kb、4kb、5kb等。存储器设备还可以包括下 一代非易失性设备,例如:英特尔存储器或其他字节可寻址就地写 入非易失性存储器设备(例如,使用硫属化物玻璃的存储器设备),多阈值 级nand闪存,nor闪存,单级或多级相变存储器(pcm),电阻式存储 器,纳米线存储器,铁电晶体管随机存取存储器(fetram),反铁电存储 器,包含忆阻器技术的磁阻式随机存取存储器(mram)存储器,包括金属 氧化物基极、氧空位基极和导电桥随机存取存储器(cb-ram)的电阻式存 储器,或自旋转移矩(stt)-mram,基于自旋电子磁结存储器的器件, 基于磁隧道结(mtj)的器件,基于dw(域壁)和sot(自旋轨道转移) 的器件,基于晶闸管的存储器设备,或上述一项或多项的组合,或其他存储 器。存储器设备可以指管芯本身和/或封装的存储器产品。在一些示例中, 存储器设备可以包括无晶体管的可堆叠交叉点架构,其中,存储器单元位于 字线和位线的交叉点处并且可单独寻址,并且其中,位存储基于体电阻的变 化。
43.现在参考图5,在一些示例中,节点400可以被体现为计算节点500。 计算节点500可以被配置为执行计算任务。当然,如上所述,计算节点500 可以依赖于其他节点(例如,加速节点和/或存储节点)来执行计算任务。 在说明性计算节点500中,物理资源320体现为处理器520。虽然图5中仅 示出了两个处理器520,但应当意识到,在其他示例中,计算节点500可以 包括附加处理器520。说明性地,处理器520被体现为高性能处理器520并 且可以被配置为在相对高的额定功率下操作。
44.在一些示例中,计算节点500还可以包括处理器到处理器互连542。处 理器到处理器互连542可以体现为能够促进处理器到处理器互连542通信 的任何类型的通信互连。在说明性示例中,处理器到处理器互连542体现 为高速点对点互连(例如,比i/o子系统322快)。例如,处理器到处理器 互连542可以体现为quickpath互连(qpi)、ultrapath互连(upi)或其他 用于处理器到处理器通信的高速点对点互连(例如,pcie或cxl)。
45.计算节点500还包括通信电路530。说明性通信电路530包括网络接口 控制器(nic)532,其也可以被称为主机结构接口(hfi)。nic 532可以体 现为或以其他方式包括任何类型的集成电路、分立电路、控制器芯片、芯片 组、插件板、子卡、网络接口卡或可以由计算节点500用于与另一个计算设 备(例如,与其他节点400)连接的其他设备。在一些示例中,nic 532可 以体现为包括一个或多个处理器的片上系统(soc)的一部分,或者被包括 在还包含一个或多个处理器的多芯片封装上。在一些示例中,nic 532可以 包括本地处理器(未示出)和/或本地存储器(未示出),它们二者都是nic532本地的。在这样的示例中,nic 532的本地处理器可以能够执行处理器 520的一项或多项功能。附加或可替代地,在此类实施例中,nic 532的本 地存储器可以在板级、插口级、芯片级、和/或其他级别上集成到计算节点 的一个或多个组件中。在一些示例中,网络接口包括网络接口控制器或网络 接口卡。在一些示例中,网络接口可以包括网络接口控制器(nic)532、主 机结构接口(hfi)、主机总线适配器(hba)、连接到总线或连接(例如, pcie、cxl、ddr等)的网络接口中的一个或多个。在一些示例中,网络 接口可以是交换机或片上系统(soc)的一部分。
46.nic 532的一些示例是基础设施处理单元(ipu)或数据处理单元(dpu) 的一部分或由ipu或dpu使用。ipu或dpu可包括网络接口、存储器设 备和一个或多个可编程或固定功能处理器(例如,cpu或xpu),以执行对 于本可由主机cpu或xpu或远程cpu或xpu执行的操作的卸载。在一 些示例中,ipu或dpu可以执行虚拟交换机操作,管理存储事务(例如, 压缩、密码、虚拟化),并管理在其他ipu、dpu、服务器或设备上执行的 操作。
47.通信电路530通信地耦合到光学数据连接器534。当计算节点500安装 在机架中时,光学数据连接器534被配置为与机架的对应光学数据连接器 配合。说明性地,光学数据连接器534包括从光学数据连接器534的配合 表面通向光学收发器536的多根光纤。光学收发器536被配置为将来自机 架侧光学数据连接器的传入光信号转换为电信号并将电信号转换为去往机 架侧光学数据连接器的传出光信号。尽管在说明性示例中被示为形成光学 数据连接器534的一部分,但是在其他示例中光学收发器536可以形成通 信电路530的一部分。
48.在一些示例中,计算节点500还可以包括扩展连接器540。在这样的示 例中,扩展连接器540被配置为与扩展电路板基板的对应连接器配合以向 计算节点500提供附加的物理资源。例如,在计算节点500的操作期间, 处理器520可以使用附加的物理资源。扩展电路
板基板可以实质上类似于 上面所讨论的电路板基板302并且可以包括安装在其上的各种电气组件。 安装于扩展电路板基板上的特定电气组件可以取决于扩展电路板基板的预 期功能。例如,扩展电路板基板可以提供附加的计算资源、存储器资源和/ 或存储资源。因此,扩展电路板基板的附加物理资源可以包括但不限于处理 器、存储器设备、存储设备和/或加速器电路,包括例如现场可编程门阵列 (fpga)、专用集成电路(asic)、安全协处理器、图形处理单元(gpu)、 机器学习电路或其他专用处理器、控制器、设备和/或电路。请注意,本文 中对gpu或cpu的引用可以附加或可替代地指代xpu或xpu。xpu可以 包括以下一项或多项:gpu、asic、fpga或加速器设备。
49.现在参考图6,在一些示例中,节点400可以体现为加速器节点600。 加速器节点600被配置为执行专门的计算任务,例如机器学习、加密、哈希 或其他计算密集型任务。在一些示例中,例如,计算节点500可以在操作期 间将任务卸载到加速器节点600。加速器节点600包括与节点400和/或计 算节点500的组件类似的各种组件,这些组件已在图6中使用相同的附图 标记进行了标识。
50.在说明性的加速器节点600中,物理资源320被体现为加速器电路620。 尽管图6中仅示出了两个加速器电路620,但应当意识到,在其他示例中, 加速器节点600可以包括附加的加速器电路620。加速器电路620可以体现 为任何类型的处理器、协处理器、计算电路或其他能够执行计算或处理操作 的设备。例如,加速器电路620可以体现为例如中央处理单元、核、现场可 编程门阵列(fpga)、专用集成电路(asic)、可编程控制逻辑(pcl)、安 全协处理器、图形处理单元(gpu)、神经形态处理器单元、量子计算机、 机器学习电路、可编程处理流水线(例如,可通过p4、c、python、broadcom 网络编程语言(npl)或x86兼容的可执行二进制文件或其他可执行二进制 文件进行编程)。处理器、fpga、其他专用处理器、控制器、设备和/或电 路可以用于分组处理或分组修改。三元内容可寻址存储器(ternary content
‑ꢀ
addressable memory,tcam)可以用于对分组报头内容进行并行匹配动作 或查找操作。
51.在一些示例中,加速器节点600还可以包括加速器到加速器互连642。 类似于上面讨论的节点400的资源到资源互连324,加速器到加速器互连 642可以是体现为能够促进加速器到加速器通信的任何类型的通信互连。在 说明性示例中,加速器到加速器互连642体现为高速点对点互连(例如,比 i/o子系统322快)。例如,加速器到加速器互连642可以体现为quickpath 互连(qpi)、ultrapath互连(upi)或用于加速器到加速器通信的其他高速 点对点互连。在一些示例中,加速器电路620可以与通过i/o子系统322连 接到nic 532和存储器420的主加速器电路620和通过主加速器电路620 连接到nic 532和存储器420的辅助加速器电路620菊链式连接。
52.现在参考图7,在一些示例中,节点400可以体现为存储节点700。在 一些示例中,存储节点700被配置为将数据存储在存储节点700本地的数 据存储装置750中。例如,在操作期间,计算节点500或加速器节点600可 以从存储节点700的数据存储装置750存储和取回数据。存储节点700包 括与节点400和/或计算节点500的组件类似的各种组件,在图7中已使用 相同的附图标记对这些组件进行了标识。
53.在说明性的存储节点700中,物理资源320被体现为存储控制器720。 虽然图7中仅示出了两个存储控制器720,但是应当意识到,在其他示例 中,存储节点700可以包括附加
的存储控制器720。存储控制器720可以体 现为任何类型的处理器、控制器或控制电路,其能够基于经由通信电路530 或其他组件接收到的请求来控制将数据存储到数据存储装置750中以及从 数据存储装置750中取回数据。在说明性示例中,存储控制器720被体现 为相对低功率的处理器或控制器。
54.在一些示例中,存储节点700还可以包括控制器到控制器互连742。类 似于上面讨论的节点400的资源到资源互连324,控制器到控制器互连742 可以是体现为能够促进控制器到控制器通信的任何类型的通信互连。在说 明性示例中,控制器到控制器互连742体现为高速点对点互连(例如,比 i/o子系统322快)。例如,控制器到控制器互连742可以体现为quickpath 互连(qpi)、ultrapath互连(upi)或用于控制器到控制器通信的其他高速 点对点互连。
55.现在参考图8,在一些示例中,节点400可以体现为存储器节点800。 存储器节点800被配置为向其他节点400(例如,计算节点500、加速器节 点600等)提供对在存储节点700本地的存储器池(例如,在存储器设备 420的两组或更多组830、832中)的访问。此外,可以使用通信电路530 和位于其他物理节点(未显示)中的存储器节点上的存储器组来促进附加的 外部存储器组。例如,在操作期间,计算节点500或加速器节点600可以 使用映射到存储器组830、832中的物理地址的逻辑地址空间远程写入和/或 读取存储器节点800的一个或多个存储器组830、832。
56.在说明性的存储器节点800中,物理资源320被体现为存储器控制器 820。尽管图8中仅示出了两个存储器控制器820,但应当意识到,在其他 示例中,存储器节点800可以包括附加的存储器控制器820。存储器控制器 820可以体现为任何类型的处理器、控制器或控制电路,其能够基于经由通 信电路530接收到的请求来控制数据到存储器组830、832的写入和读取。 在说明性示例中,存储器控制器820连接到对应的存储器组830、832以向 对应存储器组830、832内的存储器设备420写入和从其读取,并且实施与 已向存储器节点800发送请求以执行存储器访问操作(例如,读取或写入) 的节点400相关联的权限(例如,读取、写入等)。
57.在一些示例中,存储器节点800还可以包括控制器到控制器互连842。 类似于上面讨论的节点400的资源到资源互连324,控制器到控制器互连 842可以是体现为能够促进控制器到控制器通信的任何类型的通信互连。在 说明性示例中,控制器到控制器互连842体现为高速点对点互连(例如,比 i/o子系统322快)。例如,控制器到控制器互连842可以体现为quickpath 互连(qpi)、ultrapath互连(upi)或用于控制器到控制器通信的其他高速 点对点互连。因此,在一些示例中,存储器控制器820可以通过控制器到控 制器互连842访问与另一个存储器控制器820相关联的存储器组832内的 存储器。在一些示例中,可缩放存储器控制器由存储器节点(例如,存储器 节点800)上的多个较小的存储器控制器(在此称为“小芯片(chiplet)”) 形成。小芯片可以互连(例如,使用emib(嵌入式多管芯互连桥))。组合 的小芯片存储控制器可以缩放到相对大量的存储器控制器和i/o端口(例 如,多达16个存储器通道)。在一些示例中,存储器控制器820可以实现 存储器交织(interleave)(例如,一个存储器地址被映射到存储器组830, 下一存储器地址被映射到存储器组832,并且第三地址被映射到存储器组 830,等等)。交织可以在存储器控制器820内管理,或从cpu插口(例如, 计算节点500的)跨网络链路到存储器组830、832,并且与从同一存储器 设备访问连续
存储器地址相比可以改善与执行存储器访问操作相关联的延 时和带宽。
58.此外,在一些示例中,存储器节点800可以使用波导连接器880通过 波导连接到一个或多个其他节点400(例如,在同一机架240或相邻机架 240中)。使用波导可以向另一个节点(例如,与存储器节点800相同的机 架240中的节点400或与存储器节点800相邻的机架240中的节点400)提 供对存储器池(例如,存储器组830、832)的高吞吐量访问,而不增加光 学数据连接器534上的负载。
59.现在参考图9,可以实现用于执行一个或多个工作负载(例如,应用或 微服务)的系统。在说明性示例中,系统910包括协调器服务器(orchestratorserver)920,其可以体现为包括计算设备(例如,计算节点500上的处理器 520)的受管节点,该计算设备执行管理软件(例如,云操作环境,例如 openstack),管理软件通信地耦合到多个节点400,包括大量计算节点930 (例如,类似于计算节点500)、存储器节点940(例如,类似于存储器节点 800)、加速器节点950(例如,类似于加速器节点600)和存储节点960(例 如,类似于存储节点700)。节点930、940、950、960中的一个或多个可以 例如由协调器服务器920分组到受管节点970中,以共同执行工作负载(例 如,在虚拟机或容器中执行的应用932)。虽然协调器节点920被示为单个 实体,但可替代地或附加地,其功能可以跨多个实例和物理位置分布。
60.受管节点970可以体现为来自相同或不同节点400的物理资源320的 集合(assembly),例如处理器520、存储器资源420、加速器电路620或数 据存储装置750。此外,在将工作负载指派给受管节点时,可以由协调器服 务器920建立、定义或“启动(spin up)”受管节点,并且无论当前是否有 工作负载被指派给受管节点,该受管节点都可以存在。在说明性示例中,协 调器服务器920可以根据与工作负载(例如,应用932)的服务水平协议相 或服务类别(cos或clos)相关联的服务质量(qos)目标(例如,目标 吞吐量、目标延时、每秒目标数或指令等)选择性地从节点400解除分配和 /或分配物理资源320和/或从受管节点970移除或添加一个或多个节点400。 为此,协调器服务器920可以接收指示受管节点970的节点400中的性能 条件(例如,吞吐量、延时、每秒指令等)的遥测数据并将遥测数据与服务 质量目标进行比较以确定是否满足服务质量目标。协调器服务器920可以 另外确定是否一个或多个物理资源可以从受管节点970解除分配同时仍然 满足qos目标,从而释放那些物理资源以供在另一受管节点中使用(例如, 以执行不同的工作负载)。可替代地,如果当前不满足qos目标,则协调器 服务器920可以确定在工作负载正在执行的同时动态分配附加的物理资源 以协助工作负载(例如,应用932)的执行。类似地,如果协调器服务器920 确定解除分配物理资源将导致仍然满足qos目标,则协调器服务器920可 以确定从受管节点动态地解除分配物理资源。
61.另外,在一些示例中,协调器服务器920可以识别工作负载(例如,应 用932)的资源利用率的趋势,例如通过识别工作负载(例如,应用932) 的执行阶段(例如,执行具有不同资源利用率特性的不同操作的时间段), 并预先识别数据中心中的可用资源并将它们分配给受管节点970(例如,在 相关联的阶段开始的预定义时间段内)。在一些示例中,协调器服务器920 可以基于各种延时和分布方案对性能进行建模,以在数据中心中的计算节 点和其他资源(例如,加速器节点、存储器节点、存储节点)之间放置工作 负载。例如,协调器服务器920可以利用考虑到以下各项的模型:包括可选 地先前收集的历史性能的节点400上的资源的性能,例如,fpga性能、存 储器访问延时等),以及通过网络到资源(例如,fpga)
的路径的性能(例 如,拥塞、延时、带宽)。如此,协调器服务器920可以基于与数据中心100 中可用的潜在资源相关联的总延时(例如,与资源本身的性能相关联的延时, 附加于与通过网络在执行工作负载的计算节点和资源所位于的节点400之 间的路径相关联的延时),来确定哪个(些)资源应该与哪些工作负载一起 使用。
62.在一些示例中,协调器服务器920可以使用从节点400报告的遥测数 据(例如,温度、风扇速度等)来生成数据中心100中的热生成图,并且根 据热生成图以及与不同工作负载相关联的预测热生成来将资源分配给受管 节点,以维持数据中心100中的目标温度和热分布。附加或可替代地,在一 些示例中,协调器服务器920可以将接收到的遥测数据组织到指示受管节 点之间关系的层次模型(hierarchical model)中(例如,空间关系,例如数 据中心100内受管节点的资源的物理位置、和/或功能关系,例如按照受管 节点向其提供服务的客户、按照通常由受管节点执行的功能类型、按照通常 与其他节点共享或交换工作负载的受管节点等等,来对受管节点的分组)。 基于受管节点中物理位置和资源的差异,给定的工作负载可能跨不同受管 节点的资源表现出不同的资源利用率(例如,导致不同的内部温度、使用处 理器或存储器容量的不同百分比)。协调器服务器920可以基于存储在层次 模型中的遥测数据来确定差异,并且将该差异作为对工作负载的未来资源 利用率的预测的因素(如果工作负载从一个受管节点重新指派给另一个受 管节点),以准确地平衡资源数据中心100中的利用率。在一些示例中,协 调器服务器920可以识别工作负载的资源利用阶段中的模式并且使用这些 模式来预测工作负载的未来资源利用率。
63.为了减少协调器服务器920上的计算负载和网络上的数据传输负载, 在一些示例中,协调器服务器920可以向节点400发送自检信息以使得节 点400能够本地(例如,在节点400上)确定由节点400生成的遥测数据 是否满足一个或多个条件(例如,满足预定义阈值的可用容量、满足预定义 阈值的温度等)。节点400然后可以向协调器服务器920报告简化的结果 (例如,是或否),协调器服务器920可以利用该结果来确定向受管节点的 资源分配。
64.本文描述的示例可以选择存储节点700或存储器节点800来存储数据 以供节点400、节点500或加速器节点600访问以减少数据的传输时间以满 足适用的服务水平协议(sla)参数。节点400到800可以用于数据中心或 解聚的复合节点中。这里描述的技术可以应用于解聚的和传统的服务器架 构二者。传统服务器可以包括cpu、xpu、一个或多个存储器设备、通信 地耦合到服务器内的一个或多个电路板的网络。
65.边缘网络
66.在一般级别上,边缘计算是指在更接近网络的“边缘”或“边缘”的集 合的位置处的计算和资源的实现、协调和使用。这种安排的目的是提高拥有 总成本,减少应用和网络延迟,减少网络回程流量和相关联的能源消耗,提 高服务能力,并提高对安全或数据隐私要求的合规性(尤其是与传统云计算 相比)。可以执行边缘计算操作的组件(“边缘节点”)可以驻留在系统架构 或临时服务(ad hoc service)所需的任何位置(例如,高性能计算数据中心 或云安装(cloud installation);指定的边缘节点服务器、企业服务器、路边 服务器、电信中心办公室;或被服务的消费边缘服务的本地或对等边缘处设 备(at-the-edge device))中。
67.通过下面描述的说明性边缘网络系统,计算资源和存储资源被移动地 更靠近网
络的边缘(例如,更靠近客户端、端点设备或“事物”)。通过将计 算资源和存储资源移动地更靠近产生或使用数据的设备,相对于标准联网 (例如,云计算)系统,各种延时、合规性和/或货币或资源成本约束可以 是可实现的。为此,在一些示例中,计算、存储器和/或存储资源的池可以 位于本地服务器、路由器和/或其他网络设备中或以其他方式配备有本地服 务器、路由器和/或其他网络设备。这种本地资源有助于满足对系统施加的 约束。例如,本地计算和存储资源允许边缘系统实时或接近实时地执行计算, 这可能是低延迟用户案例(例如,自动驾驶、视频监控和移动媒体消费)中 的一个考虑因素。此外,这些资源将受益于边缘系统中的服务管理,该边缘 系统提供缩放和实现本地服务级别协议(sla)或服务级别目标(slo)、 管理分层服务需求以及在临时或永久基础上启用本地特征和功能的能力。
68.池可以包括同一机箱上的设备或不同机箱或不同机架上的不同的物理 上分散的设备。资源池可以包括同构处理器、异构处理器和/或存储器池。 异构资源的池化可以使用多个同构资源池来实现。
69.说明性边缘计算系统可以支持各种服务和/或向端点设备(例如,客户 端用户设备(ue))提供各种服务,其中的一些可以具有不同的要求或约束。 例如,一些服务可能具有优先级或服务质量(qos)约束(例如,自主车辆 的交通数据可以具有比温度传感器数据更高的优先级)、可靠性和弹性(例 如,交通数据可以需要关键任务可靠性(mission-critical reliability),而温度 数据可以被允许有一些误差变化),以及功率、冷却和外形规格(form-factor) 约束。当在多利益相关者(multi-stakeholder)环境中应用时,这些和其他技 术约束可能会带来显著的复杂性和技术挑战。
70.图10概括地描绘了用于向多利益相关者实体提供边缘服务和应用的边 缘计算系统1000,其分布在分布于一个或多个客户端计算节点1002、一个 或多个边缘网关节点1012、一个或多个边缘聚合节点1022、一个或多个核 心数据中心1032和全球网络云1042之中,如跨网络的层分布的。一个或 多个微服务可以在一个或多个节点和/或数据中心上执行。可以在以下各项 处或代表以下各项提供边缘计算系统1000的实现:电信服务提供商(“telco
”ꢀ
或“tsp”)、物联网服务提供商、云服务提供商(csp)、企业实体或任何其 他数量的实体。可以动态地提供系统1000的各种实现和配置,例如在被协 调以满足服务目标时。
71.例如,客户端计算节点1002位于端点层处,而边缘网关节点1012位 于边缘计算系统1000的边缘设备层(本地层)处。此外,边缘聚合节点1022 (和/或雾设备1024(如果与雾联网配置1026一起布置或操作,或在雾联 网配置1026之中被布置或操作))位于网络接入层(中间级别)处。雾计算 (或“雾化(fogging)”)通常是指:将云计算扩展到企业网络的边缘;或者 通常是在协调的分布式或多节点网络中跨云/边缘环境管理事务的能力。一 些形式的雾计算代表云计算位置在终端设备和云计算数据中心之间提供计 算、存储和网络服务的部署。就整体事务而言,通过基于满足整体服务级别 协议的能力将某些工作负载推送到边缘或云,一些形式的雾计算还提供了 管理工作负载/工作流级别服务的能力。许多场景中的雾计算提供了一种去 中心化的架构,并通过与一个或多个边缘节点设备协作,来充当云计算的扩 展,从而为终端设备提供后续的一定量的本地化控制、配置和管理等等。因 此,一些形式的雾计算提供与这里讨论的边缘计算一致的操作;这里讨论的 边缘计算方面也适用于雾网络、雾化和雾配置。此外,本文讨论的边缘计算 系统的方面可以被配置为雾,或者雾的方面可以被集成到边缘计算架构中。
72.核心数据中心1032位于核心网络层(区域或地理中心级别)处,而全 球网络云1042位于云数据中心层(国家或全球层)处。“核心”的使用是作 为集中网络位置的术语提供的,在网络中更深处,其可由多个边缘节点或组 件访问;然而,“核心”不一定指定网络的“中心”或最深的位置。因此, 核心数据中心1032可以位于边缘云1000内、边缘云1000处或边缘云1000 附近。尽管客户端计算节点1002、边缘网关节点1012、边缘聚合节点1022、 边缘核心数据中心1032、全球网络云1042的说明性数量如图10所示,但 应当意识到,边缘计算系统1000可以包括一层或多层处的附加设备或系统。 一层处的设备可以被配置为另一层的对等节点,并且因此,以协作方式行动 以满足服务目标。
73.与在此提供的示例一致,客户端计算节点1002可以体现为任何类型的 端点组件、设备、器具或能够作为数据的生产者或消费者进行通信的其他事 物。此外,边缘计算系统1000中使用的标签“节点”或“设备”并不一定 意味着这样的节点或设备以客户端或代理/从属/跟随者角色操作;相反,边 缘计算系统1000中的一个或多个节点或设备是指包括分立或连接的硬件或 软件配置以促进或使用边缘云1000的各个实体、节点或子系统。
74.因此,边缘云1000由边缘网关节点1012和边缘聚合节点1022操作的 并且在边缘网关节点1012和边缘聚合节点1022内的网络组件和功能特征 形成。边缘云1000可以体现为任何类型的部署,所述部署提供边缘计算和 /或存储资源,所述边缘计算和/或存储资源位于靠近具有无线电接入网络 (ran)能力的端点设备(例如,移动计算设备、iot设备、智能设备等) 处,如图10示出为客户端计算节点1002。换言之,边缘云1000可以被设 想为连接端点设备和传统网络接入点的“边缘”,所述“边缘”充当进入服 务提供商核心网络的入口点,包括移动运营商网络(例如,全球移动通信系 统(gsm)网络、长期演进(lte)网络、5g/6g网络等),同时还提供存 储和/或计算能力。其他类型和形式的网络接入(例如,wi-fi、远程无线、 包括光学网络的有线网络)也可以代替这样的3gpp运营商网络被使用或与 这样的3gpp运营商网络结合使用。
75.在一些示例中,边缘云1000可以形成雾联网配置1026(例如,雾设备 网络1024,未详细示出)的一部分或以其他方式提供进入雾联网配置1026 或跨雾联网配置1026的入口点,其可以体现为作为系统级水平分布式架构, 所述架构分配资源和服务以执行特定功能。例如,雾设备1024的协调且分 布式的网络可以在iot系统布置的上下文中执行计算、存储、控制或联网方 面。在核心数据中心1032和客户端端点(例如,客户端计算节点1002)之 间的边缘云1000中可以存在其他联网的、聚合的和分布式的功能。其中的 一些将在以下部分中在网络功能或服务虚拟化的上下文中被讨论,包括为 多个利益相关方协调的虚拟边缘和虚拟服务的使用。
76.如以下更详细地讨论的,边缘网关节点1012和边缘聚合节点1022协 作以向客户端计算节点1002提供各种边缘服务和安全性。此外,因为客户 端计算节点1002可以是固定的或移动的,相应的边缘网关节点1012可以 与其他边缘网关设备协作,以在对应的客户端计算节点1002在区域内移动 时传播当前提供的边缘服务、相关服务数据和安全性。为此,边缘网关节点 1012和/或边缘聚合节点1022可以支持多租户和多利益相关者配置,其中, 可以跨单个或多个计算设备支持和协调来自多个服务提供商、所有者和多 个消费者的服务(或针对多个服务提供商、所有者和多个消费者被托管的服 务)。
77.可以在边缘云1000的架构内利用各种安全方法。在多利益相关者环境 中,可以有
多个可加载安全模块(lsm)用于提供实施利益相关者利益的策 略。实施点环境可以支持多个lsm,这些lsm应用加载的lsm策略的组 合(例如,其中应用最受约束的有效策略,例如,其中如果a、b或c利益 相关者中的一个或多个限制访问,则访问受到限制)。在边缘云1000内,边 缘实体可以提供实施边缘实体利益的lsm。云实体可以提供实施云实体利 益的lsm。同样,各种雾和iot网络实体可以提供实施雾实体的利益的lsm。
78.图11示出了一个示例,其中,各种客户端端点1110(以移动设备、计 算机、自主车辆、商业计算设备、工业处理设备的形式)提供对服务或数据 交易的请求1120,并接收对服务或数据事务的响应1130,往返于边缘云1100 (例如,经由无线或有线网络1140)。一个或多个微服务可以在一个或多个 节点和/或数据中心上执行。在边缘云1100内,csp可以部署各种计算和存 储资源,例如边缘内容节点1150,以提供来自分布式内容交付网络的缓存 内容。边缘内容节点1150上可用的其他可用计算和存储资源可以用于执行 其他服务并完成其他工作负载。边缘云1100的边缘内容节点1150和其他 系统连接到云或数据中心1170,其使用回程网络1160来满足来自云/数据 中心的针对网站、应用、数据库服务器等的较高延时请求。
79.设备中的描述符格式转换
80.图12描绘了示例系统。在一些示例中,一个或多个主机服务器或计算 平台(主机1200)可以通信地耦合到诸如网络接口设备1250之类的设备。 虽然关于网络接口设备描述了示例,但可以使用另一设备代替它,例如非易 失性存储器快速(nmve)一致存储设备、加速器、图形处理单元(gpu) 或其他设备。此处描述的示例也适用于将整个服务器租给租户(裸机使用) 的情况。
81.主机1200可以包括硬件资源,包括一个或多个处理器、一个或多个存 储器设备、互连电路和设备接口(均未示出,但此处描述了它们的示例)。 主机1200可以使用硬件资源来执行基于软件的实体1202和仿真设备接口 1204。数据1210可以被实体1202写入或准备好并且可以包括任何类型的 数据,包括文件、对象、视频、音频、压缩数据、数据库等等。
82.在一些示例中,实体1202可以包括虚拟化执行环境(虚拟环境)、无服 务器应用或在共享硬件资源的使用的访客环境中执行的微服务。在一些示 例中,实体1202可以在裸机环境中执行,由此实体1202和仿真设备接口 1204可以利用硬件资源。虚拟化执行环境可以至少包括虚拟机或容器。虚 拟机(vm)可以是运行操作系统和一个或多个应用的软件。vm可以由规 范、配置文件、虚拟磁盘文件、非易失性随机存取存储器(nvram)设置 文件和日志文件定义,并由主机计算平台的物理资源支持。vm可以是安装 在软件上的操作系统(os)或应用环境,它模仿专用硬件。最终用户在虚 拟机上的体验与在专用硬件上的体验相同。管理程序可以完全仿真客户端 或服务器的cpu、存储器、硬盘、网络和其他硬件资源,使虚拟机能够共 享这些资源。管理程序可以仿真多个相互隔离的虚拟硬件平台,允许虚拟机 在同一底层物理主机上运行server、vmware esxi和 其他操作系统。
83.容器可以是应用、配置和依赖项的软件包,因此应用在一个计算环境到 另一个计算环境上可靠地运行。容器可以共享安装在服务器平台上的操作 系统,并作为隔离的进程运行。容器可以是一个软件包,其包含软件运行所 需的一切,例如系统工具、库和设置。容器不像传统软件程序那样被安装, 这允许它们与其他软件和操作系统本身隔离。容器的隔离性质提供了几个 好处。首先,容器中的软件在不同的环境中将一样地运行。例如,包含
php 和mysql的容器可以在计算机和机器二者上以相同的 方式运行。其次,容器提供了额外的安全性,因为软件将不会影响主机操作 系统。已安装的应用可能会更改系统设置并修改资源,例如windows注册 表,而容器只能修改容器内的设置。
84.在一些示例中,代表实体1202,仿真设备1204可以访问存储器区域, 就好像该存储器区域是设备一样。仿真设备1204的示例可以包括vmware 环境vmxnet3、非易失性存储器快速(nvme))、使用virtio设备的linux 环境(例如,virtio-net、virtio-blk、virtio-scsi)、netvsc、谷歌虚拟 nic(gvnic)、弹性网络适配器(elastic network adapter)或其他。 nvme至少在nvm express
tm
基本规范修订版1.3c(2018)及其之前版本、 之后版本和专有变体中有所描述。
85.仿真设备1204可以允许实体1202访问和利用网络接口设备1250。在 一些示例中,实体1202可以在主机1200的存储器中的描述符队列中发布 工作描述符。计算复合体1270可以执行指令,所述指令将描述符转换为与 主机接口1260、端点1262、分组处理流水线1264和/或媒体访问控制(mac) /物理层接口(phy)1266所使用的描述符格式兼容的格式。由计算复合体 1270的处理器1272执行的描述符转换1274可以被配置和调整以提供由以 下一项或多项访问的描述符之间的兼容性:仿真设备1204和主机接口1260、 端点1262、分组处理流水线1264和/或mac/phy 1266。转换后的描述符 可以存储在存储器1280中,在存储器1280中的描述符环1282中。存储器 1280可以被实现为易失性存储器、非易失性存储器和/或高速缓存。
86.例如,对于实体1202的引导(boot)、重新引导或从另一主机到主机 1200迁移,处理器1272可以被配置为执行描述符转换以提供仿真设备1204 与以下一项或多项访问的描述符之间的兼容性:仿真设备1204和主机接口 1260、端点1262、分组处理流水线1264和/或mac/phy 1266。例如,实 体1202或仿真设备1204的修改不需要发生,并且通过允许网络接口设备 的计算复合体执行描述符转换,实体1202和仿真设备1204的相同版本(包 括自定义软件定义接口)可以在具有不同网络接口设备的不同平台上被执 行。
87.在一些场景中,主机系统不受信任或与其他租户共享,并且计算复合体 1270可以执行与诸如gpu和fpga之类的加速器的联网、存储和连接。各 种示例可以用于桥接不同类型的设备,例如使用vee和裸机主机中的现有 驱动程序运行耦合到网络接口设备的加速器设备。
88.在一些示例中,仿真设备1204可以使用诸如单根i/o虚拟化(sr-iov)、 多根iov(mr-iov)或scalable i/o virtualization(siov)之类的 虚拟化接口与网络接口设备1250接合。pci-sig单根io虚拟化和共享规范 v1.1以及之前和之后的版本描述了在单个根端口下使用单个pcie物理设 备,以对于管理程序或访客操作系统而言作为多个独立物理设备出现。sr
‑ꢀ
iov使用物理功能(pf)和虚拟功能(vf)来管理sr-iov设备的全局功 能。pf可以是pcie功能,其可以配置和管理sr-iov功能性。例如,pf可 以配置或控制pcie设备,并且pf具有将数据移入和移出pcie设备的能 力。
89.mr-iov至少在来自pci特别兴趣组(sig)的2008年5月12日的多 根i/o虚拟化和共享规范修订版1.0以及之前和之后的版本中被描述。siov 的技术规范是2018年6月的scalable i/o virtualization技术规范修 订版1.0以及之前和之后的版本。
的存储器1320的消息队列1340中。描述符可以指向计算复合体中的数据 位置(例如,存储器1320)和/或主机存储器。在处理器1330上执行的格式 转换软件1332可以获取描述符并转换描述符格式并将转换后的描述符存储 到硬件设备的存储器(例如,网络接口设备存储器)中。在处理器1330上 执行的软件可以使硬件设备获取转换后的描述符。主机接口1300可以使用 一个或多个tlp将转换后的描述符从消息队列1340传送到硬件设备或主 机。
95.在一些示例中,vmxnet3接口定义在设备和驱动器(driver)之间共 享的数据区域。
[0096][0097][0098]
管理程序可以向虚拟执行环境或微服务提供设备pcie组合。管理程序 可以组成vmxnet3 pci-e配置空间,其具有由主机加速vf提供的直通数 据队列和用于边带配置的仿真存储器映射输入输出(mmio)空间。管理程 序可以从vmxnet3驱动器接收边带配置信息,例如队列上下文(例如, 基地址、长度等)。管理程序可以将此信息传递给主机加速pf。管理程序还 可以将对配置的运行时更改传递给主机加速pf驱动器。
[0099]
图14a描绘了分组传输操作的示例。在此示例中,仿真设备是 vmxnet3驱动器,但也可以使用其他仿真设备。在(1)处,实体1202使 用仿真设备1204(例如,vmxnet3驱动器)将描述符环1212上的新分组 发送描述符通知计算复合体1270。在(2)处,计算复合体1270可以使用 dma电路从描述符环1212读取新的分组发送描述符以及有效载荷。在(2) 处,处理器1272可以执行描述符转换1274以执行发送描述符的转换以被 端点1262正确解释。在(3)处,端点1262可以利用dma电路来基于转 换后的描述符将有效载荷数据1210复制到网
络接口设备1250的存储器(未 示出)。
[0100]
图14b描绘了示例分组传输流。在此示例中,仿真设备是vmxnet3 驱动器,但也可以使用其他仿真设备。在(1)处,网络接口设备中的加速 复合体(例如,计算复合体)的处理器可以执行软件(vmxnet3后端),该 软件使用至少一个tlp队列事务从vmxnet3描述符环接收门铃。在(2) 处,vmxnet3后端使用dma电路读出vmxnet3描述符(以及可选地, 相关联的有效载荷报头)。在(3)处,vmxnet3后端执行描述符转换并使用 转换后的描述符填充队列(例如,pf队列)。在(4)处,vmxnet3后端将 转换后的描述符通知硬件,该转换后的描述符直接标识有效载荷的存储器 地址或通过指向有效载荷的存储器地址的指针间接标识有效载荷的存储器 地址。在(5)处,在完成分组处理和分组传输后,网络接口设备(硬件(hw)) 向vmxnet3后端指示传输完成。在(6)处,vmxnet3后端将分组传输完成 通知vmxnet3驱动器。
[0101]
图15a描绘了分组接收的示例。在此示例中,仿真设备是vmxnet3 驱动器,但也可以使用其他仿真设备。在该示例中,利用vm存储器空间 中的描述符和缓冲器,设置用于仿真设备1204(例如,vmxnet3)的队列。 响应于分组的接收,分组有效载荷在(1)处被发布到vm缓冲器(例如, 数据1210)并且其报头被提供给vm缓冲器或计算复合体1270以进行处 理。在(2)处,来自端点1262的描述符由描述符转换1274转换成仿真设 备1204的格式(例如,vmxnet3)。在(3)处,转换后的接收描述符被 复制到描述符环1212。
[0102]
图15b描绘了示例分组接收流。在此示例中,仿真设备是vmxnet3 驱动器,但也可以使用其他仿真设备。在(1)处,vmxnet3 rx队列利用 在vm存储器空间中的描述符和缓冲器来设置。在(2)处,在加速复合体 (例如,计算复合体)处理器上执行的vmxnet3后端通过tlp队列从 vmxnet3驱动器接收rx侧门铃。在(3)处,vmxnet3后端使用dma 引擎从vm读取vmxnet3 rx缓冲器描述符。在(4)处,vmxnet3后 端将rx描述符转换为将解释描述符并使用网络接口设备兼容描述符将接 收缓冲器发布到硬件设备端点的网络接口设备(hw)中的电路的格式。在 (5)处,接收门铃被提供给网络接口设备以指示转换后的描述符的可用性。 在(6)处,网络接口设备向加速复合体指示分组接收。在(7)处,接收到 的分组的rx完成描述符被发布到vmxnet3后端,并且vmxnet3后端 将rx完成描述符转换为vmxnet3接收(rx)完成描述符格式,并在(8) 处提供转换后的描述符。分组有效载荷被复制到转换后的rx完成描述符中 标识的vm缓冲器。在(9)处,vmxnet3后端指示分组到达vmxnet3 设备驱动器。
[0103]
图16描绘了示例过程。该过程可以由网络接口设备或其他具有可编程 处理器的设备来执行。在1602处,可编程处理器可以被配置为在不同格式 之间执行描述符或其他工作请求的转换。例如,在发送描述符或数据写入描 述符的情况下,可编程处理器可以被配置为将描述符从仿真设备格式转换 为硬件设备所接受和正确解释的格式。例如,在接收描述符或数据读取描述 符的情况下,可编程处理器可以被配置为将描述符从硬件设备所接受和正 确解释的格式转换为仿真设备所接受和正确解释的格式。例如,可以使用查 找表来转换描述符字段,以将描述符的字段中的值转换为转换后的描述符 中的相同或不同值。查找表可以用于指示将哪些字段从描述符复制或转换 到转换后的描述符的特定字段中。在一些示例中,匹配动作单元可以用于执 行描述符转换。正确解释的描述符可以是具有被配置为由描述符的接收器 解释的字段位置、字段大小和值之中的字段位置、字段大小和值的描述符。 换言之,描述符的接收器可以读取正确边界处的字段值,并被配置为基于字 段中的特定值来执行动作。
[0104]
在1604处,可以从源访问描述符。例如,在发送描述符或数据写入描 述符的情况下,源可以是与仿真设备相关联的描述符环。例如,在接收描述 符或数据读取描述符的情况下,源可以是计算复合体的描述符环。仿真设备 的示例包括vmxnet3、非易失性存储器快速(nvme)、使用virtio设备的 linux环境(例如,virtio-net、virtio-blk、virtio-scsi)、netvsc、谷歌 虚拟nic(gvnic)、弹性网络适配器或其他。硬件设备的示例包 括网络接口设备、存储控制器、加速器、gpu等。
[0105]
在1606处,描述符格式可以被转换为目标的第二格式。例如,在发送 描述符或数据写入描述符的情况下,目标可以是硬件设备的分组处理流水 线或dma电路。例如,在接收描述符或数据读取描述符的情况下,目标可 以是仿真设备。
[0106]
在1608处,可以将转换后的描述符提供给目标。目标可以访问来自转 换后描述符所引用的存储或存储器地址的数据,并执行与转换后描述符相 关联的操作。例如,对于分组发送描述符,网络接口设备可以发送与转换后 的描述符相关联的分组有效载荷。例如,对于分组接收描述符,仿真设备可 以执行与转换后的描述符相关联的分组的协议处理。对于数据写入描述符, 存储控制器可以将数据写入存储介质。对于数据读取描述符,存储控制器可 以从存储介质中读取数据。
[0107]
图17描绘了示例计算系统。各种示例可以使用系统1700的组件(例 如,处理器1710、网络接口1750等)来执行仿真设备,并执行描述符从仿 真设备到硬件设备的描述符转换或从硬件设备到仿真设备的描述符转换, 如本文所述。
[0108]
系统1700包括处理器1710,其为系统1700提供处理、操作管理和指 令的执行。处理器1710可以包括任何类型的微处理器、中央处理单元(cpu)、 图形处理单元(gpu)、处理核心或用于为系统1700提供处理的其他处理 硬件或处理器的组合。处理器1710控制系统1700的整体操作,并且可以 是或可以包括一个或多个可编程通用或专用微处理器、数字信号处理器 (dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑器件(pld) 等,或这些设备的组合。
[0109]
在一个示例中,系统1700包括耦合到处理器1710的接口1712,其可 以代表用于需要更高带宽连接的系统组件的更高速度接口或高吞吐量接口, 这些系统组件例如存储器子系统1720或图形接口组件1740或加速器1742。 接口1712代表接口电路,其可以是独立组件或集成到处理器管芯上。在存 在的情况下,图形接口1740与图形组件接合以向系统1700的用户提供视 觉显示。在一个示例中,图形接口1740可以驱动向用户提供输出的高清晰 度(hd)显示器。高清晰度可以指具有大约100ppi(每英寸像素)或更高 像素密度的显示器,并且可以包括诸如全hd(例如,1080p)、视网膜显示 器、4k(超高清或uhd)或其他格式之类的格式。在一个示例中,显示器 可以包括触摸屏显示器。在一个示例中,图形接口1740基于存储在存储器 1730中的数据或基于由处理器1710执行的操作或两者来生成显示。在一个 示例中,图形接口1740基于存储在存储器1730中的数据或基于由处理器 1710执行的操作或两者来生成显示。
[0110]
加速器1742可以是可以由处理器1710访问或使用的固定功能或可编 程卸载引擎。例如,加速器1742之中的加速器可以提供压缩(dc)能力、 诸如公钥加密(pke)、密码、哈希/认证功能、解密之类的密码学服务或其 他功能或服务。在一些情况下,加速器1742可以集成到cpu插口中(例 如,连接到包括cpu并提供与cpu的电接口的主板或电路板的连接
器)。 例如,加速器1742可以包括单核或多核处理器、图形处理单元、逻辑执行 单元、单级或多级高速缓存、可用于独立执行程序或线程的功能单元、专用 集成电路(asic)、神经网络处理器(nnp)、可编程控制逻辑和可编程处 理元件,例如现场可编程门阵列(fpga)或可编程逻辑器件(pld)。加速 器1742可以提供多个神经网络、cpu、处理器核心、通用图形处理单元或 者图形处理单元可以可供人工智能(ai)或机器学习(ml)模型使用。例 如,ai模型可以使用或包括以下一项或多项:强化学习方案、q-learning方 案、deep-q学习或异步优势actor-critic(a3c)、组合神经网络、循环组合 神经网络、或其他ai或ml模型。多个神经网络、处理器核心或图形处理 单元可以可供ai或ml模型使用。
[0111]
存储器子系统1720代表系统1700的主存储器并且为要由处理器1710 执行的代码或要在执行例程时使用的数据值提供存储。存储器子系统1720 可以包括一个或多个存储器设备1730,例如只读存储器(rom)、闪存、一 种或多种随机存取存储器(ram)(例如,dram),或其他存储器设备, 或这些设备的组合。存储器1730存储和托管操作系统(os)1732等以提 供用于在系统1700中执行指令的软件平台。另外,应用1734可以在来自 存储器1730的os 1732的软件平台上执行。应用1734代表有自己的操作 逻辑来进行一项或多项功能的执行的程序。进程1736代表向os 1732或一 个或多个应用1734或组合提供辅助功能的代理或例程。os 1732、应用1734 和进程1736提供软件逻辑来为系统1700提供功能。在一个示例中,存储 器子系统1720包括存储器控制器1722,其是用于生成命令并向存储器1730 发出命令的存储器控制器。可以理解的是,存储器控制器1722可以是处理 器1710的物理部分或接口1712的物理部分。例如,存储器控制器1722可 以是集成存储器控制器,集成到具有处理器1710的电路上。
[0112]
在一些示例中,os 1732可以是server或个人计算机、vmware vsphere、 opensuse、rhel、centos、debian、ubuntu或任何其他操作系统。os和 驱动程序可以在由驱动程序可以在由等销售或设计的cpu上执行。os 1732可以是虚拟化执行环境的一部分 并且与仿真设备交互以将工作负载或描述符传送到另一设备(例如,图形 1740、加速器1742、存储器子系统1720或控制器1782)。
[0113]
虽然没有具体示出,但是可以理解,系统1700可以在设备之间包括一 个或多个总线或总线系统,例如存储器总线、图形总线、接口总线或其它总 线。总线或其他信号线可以将组件通信或电气地耦合在一起,或通信且电气 地耦合组件。总线可以包括物理通信线路、点对点连接、桥、适配器、控制 器或其他电路或组合。总线可以包括例如系统总线、外围组件互连(pci) 总线、超传输或行业标准架构(isa)总线、小型计算机系统接口(scsi) 总线、通用串行总线(usb)或电气和电子工程师协会(ieee)标准1394 总线(firewire)中的一个或多个。
[0114]
在一个示例中,系统1700包括接口1714,其可以耦合到接口1712。 在一个示例中,接口1714表示接口电路,其可以包括独立组件和集成电路。 在一个示例中,多个用户接口组件或外围组件或两者耦合到接口1714。网 络接口1750为系统1700提供用于通过一个或多个网络与远程设备(例如, 服务器或其他计算设备)通信的能力。网络接口1750可以包括以太网适配 器、无线互连组件、蜂窝网络互连组件、usb(通用串行总线)或其他有线 或无线的基于标准的或专有的接口。网络接口1750可以将数据传输到位于 同一数据中心或机
架中的设备或远程设备,这可以包括发送存储在存储器 中的数据。网络接口1750可以从远程设备接收数据,这可以包括将接收到 的数据存储到存储器中。网络接口1750的各种示例可以包括处理器,所述 处理器用于执行描述符从仿真设备到硬件设备的描述符转换或从硬件设备 到仿真设备的描述符转换,如本文所述。
[0115]
在一个示例中,系统1700包括一个或多个输入/输出(i/o)接口1760。 i/o接口1760可以包括一个或多个接口组件,用户通过这些接口组件与系 统1700进行交互(例如,音频、字母数字、触觉/触摸或其他接合)。外围 接口1770可以包括上面没有具体提到的任何硬件接口。外围设备通常是指 从属地连接到系统1700的设备。从属连接是其中系统1700提供软件平台 或硬件平台或两者(在其上操作执行并且用户与之交互)的连接。
[0116]
在一个示例中,系统1700包括用于以非易失性方式存储数据的存储子 系统1780。在一个示例中,在某些系统实施方式中,存储装置1780的至少 某些组件可以与存储器子系统1720的组件重叠。存储子系统1780包括存 储设备1784,其可以是或可以包括用于以非易失性方式存储大量数据的任 何常规介质,例如一个或多个磁性、固态或基于光学的盘,或它们的组合。 存储装置1784将代码或指令和数据1786以持久状态保存(例如,尽管系 统1700的电源中断,但仍保留值)。存储装置1784一般可以被认为是“存 储器”,但存储器1730通常是用于向处理器1710提供指令的执行或操作存 储器。存储装置1784是非易失性的,而存储器1730可以包括易失性存储 器(例如,如果系统1700的电源中断,则数据的值或状态是不确定的)。在 一个示例中,存储子系统1780包括用于与存储装置1784接合的控制器1782。 在一个示例中,控制器1782是接口1714或处理器1710的物理部分或者可 以包括处理器1710和接口1714两者中的电路或逻辑。
[0117]
易失性存储器是在设备的电源中断时其状态(以及因此存储在其中的 数据)不确定的存储器。动态易失性存储器使用刷新存储在设备中的数据以 维持状态。动态易失性存储器的一个示例包括dram(动态随机存取存储 器),或某个变体,例如同步dram(sdram)。易失性存储器的一个示例 包括高速缓存。本文描述的存储器子系统可以与多种存储器技术兼容,例如 ddr3(双数据速率版本3,jedec(联合电子设备工程委员会)于2007年 6月16日最初发布)。ddr4(ddr版本4,jedec于2012年9月发布的 初始规范)、ddr4e(ddr版本4)、lpddr3(低功耗ddr版本3,jesd209
‑ꢀ
3b,jedec于2013年8月发布)、lpddr4(lpddr版本4,jesd209-4, 最初由jedec于2014年8月发布)、wio2(wide input/output版本2, jesd229-2最初由jedec于2014年8月发布、hbm(high bandwidthmemory,jesd325,最初由jedec于2013年10月发布)、lpddr5(目前 jedec正在讨论中)、hbm2(hbm版本2)、jedec目前正在讨论中,或 其他存储器技术或存储器技术的组合,以及基于此类规范的衍生或扩展的 技术。jedec标准可从www.jedec.org获得。
[0118]
非易失性存储器(nvm)设备是即使该设备的电源被中断其状态也是 确定的存储器。在一个示例中,nvm设备可以包括块可寻址存储器设备, 例如nand技术,或更具体地,多阈值级nand闪存(例如,单级单元 (“slc”)、多级单元(“mlc”)、四级单元(“qlc”)、三级单元(“tlc”) 或某个其他nand)。nvm设备还可以包括字节可寻址就地写入三维交叉 点存储器设备,或其他字节可寻址就地写入nvm设备(也称为持久性存储 器),例如单级或多级相变存储器(pcm)或带开关的相变存储器(pcms)、 optane
tm
存储器、使用硫属化物相变材料(例如,硫属化物玻璃) 的nvm设备、包括金属氧化物基、氧空位基和导电桥随机存取
机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、 软件模块、例程、子例程、函数、方法、流程、软件接口、api、指令集、 计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其组合。 确定是否使用硬件元件和/或软件元素来实现示例可以根据任何数量的因素 而变化,例如期望的计算速率、功率电平、耐热性、处理周期预算、输入数 据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束, 如给定实施方式所期望的。处理器可以是硬件状态机、数字控制逻辑、中央 处理单元或任何硬件、固件和/或软件元素中的一个或多个组合。
[0124]
一些示例可以使用制品或至少一种计算机可读介质来实现或实现为制 品或至少一种计算机可读介质。计算机可读介质可以包括用于存储逻辑的 非暂时性存储介质。在一些示例中,非暂时性存储介质可以包括一种或多种 类型的能够存储电子数据的计算机可读存储介质,包括易失性存储器或非 易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写 或可重写存储器,等等。在一些示例中,逻辑可以包括各种软件元素,例如 软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操 作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、流程、 软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、 字、值、符号或其组合。
[0125]
根据一些示例,计算机可读介质可以包括非暂时性存储介质以存储或 维护指令,所述指令当由机器、计算设备或系统执行时,使机器、计算设备 或系统根据所描述的示例执行方法和/或操作。指令可以包括任何合适类型 的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态 代码等。指令可以根据预定义的计算机语言、方式或句法来实现,以用于指 示机器、计算设备或系统执行特定功能。指令可以使用任何合适的高级、低 级、面向对象、可视、编译和/或解释的编程语言来实现。
[0126]
至少一个示例的一个或多个方面可以通过存储在至少一种机器可读介 质上的代表性指令来实现,该机器可读介质表示处理器内的各种逻辑,当其 由机器、计算设备或系统读取时,使机器、计算设备或系统制造逻辑以执行 本文描述的技术。这种被称为“ip核”的表示可以存储在有形的机器可读 介质上,并提供给各种客户或制造设施,以加载到实际制造逻辑或处理器的 制造机器中。
[0127]
短语“一个示例”或“示例”的出现不一定都是指相同的示例。本文描 述的任何方面都可以与本文描述的任何其他方面或类似方面组合,而不管 这些方面是否是关于相同的图或元素描述的。附图中描述的块功能的划分、 省略或包含并不意味着用于实现这些功能的硬件组件、电路、软件和/或元 素必然被划分、省略或包含在示例中。
[0128]
一些示例可以使用表述“耦合”和“连接”连同它们的派生词来描述。 这些术语不一定是彼此的同义词。例如,使用术语“连接”和/或“耦合
”ꢀ
的描述可以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦 合”也可能意味着两个或更多个元素彼此不直接接触,但仍然相互合作或相 互作用。
[0129]
术语“第一”、“第二”等在本文中不表示任何顺序、数量或重要性,而 是用于将一个元素与另一个元素区分开来。本文中的术语“一”和“一个
”ꢀ
不表示数量的限制,而是表示存在至少一个所引用的项目。此处使用的关于 信号的术语“断言(asserted)”表示信号的状态,其中,信号是活动的,并 且可以通过将逻辑0或逻辑1的任何逻辑电平应用到信号来实现状态。术 语“跟随”或“之后”可以指紧跟在某个或某些其他事件之后或在某个或某 些
其他事件之后。也可以根据替代示例执行其他操作序列。此外,可以根据 特定应用添加或删除附加操作。可以使用变化的任何组合并且受益于本公 开的本领域普通技术人员将理解其许多变化、修改和替代示例。
[0130]
除非另外具体说明,否则诸如短语“x、y或z中的至少一个”之类的 析取语言在上下文中被理解为通常用于表示项目、术语等,可以是x、y或 z、或其组合(例如,x、y和/或z)。因此,这样的析取语言通常不打算也 不应该暗示某些示例需要x中的至少一个、y中的至少一个或z中的至少 一个均存在。此外,诸如短语“x、y和z中的至少一个”之类的合取语言, 除非另有具体说明,也应理解为表示x、y、z或其组合,包括“x、y和/ 或z”。
[0131]
下面提供了本文公开的设备、系统和方法的说明性示例。设备、系统和 方法的示例可以包括以下描述的示例的一个或多个及其组合。
[0132]
示例1包括一个或多个示例并且包括一种装置,该装置包括:网络接 口设备,其包括:设备接口;至少一个处理器;直接存储器访问(dma) 设备;以及分组处理电路,其中:所述至少一个处理器在操作时被配置为: 结合第一操作:执行第一描述符从与仿真设备相关联的第一格式到与所述 分组处理电路相关联的第二格式的格式转换,并且将转换后的第一描述符 提供给所述分组处理电路。
[0133]
示例2包括一个或多个示例,其中,所述仿真设备包括与虚拟化执行 环境相关联的软件,所述软件作为硬件设备被呈现给所述虚拟化执行环境。
[0134]
示例3包括一个或多个示例,其中,所述仿真设备与从第一计算平台 迁移到第二平台的虚拟化执行环境相关联,并且其中,所述第二平台使用所 述设备接口通信地耦合到所述网络接口设备。
[0135]
示例4包括一个或多个示例,其中,所述仿真设备包括以下中的一项 或多项:vmware vmxnet、linux virtio、非易失性存储器快速(nvme)、 netvsc、谷歌虚拟nic(gvnic)或弹性网络适配器。
[0136]
示例5包括一个或多个示例,其中,所述dma设备用于:基于由所述 转换后的第一描述符引用的存储器地址,将数据从主机存储器复制到所述 网络接口设备。
[0137]
示例6包括一个或多个示例,其中,所述分组处理电路包括以下中的 一项或多项:分组处理流水线,其包括至少一个可配置的匹配动作单元 (mau);或存储控制器。
[0138]
示例7包括一个或多个示例,其中,所述至少一个处理器在操作时被 配置为:结合第二操作:执行第二描述符从与所述分组处理电路相关联的所 述第二格式到与所述仿真设备相关联的所述第一格式的格式转换,并且将 转换后的第二描述符提供给所述仿真设备。
[0139]
示例8包括一个或多个示例,其中,所述第一操作包括分组发送操作 或数据写入操作,并且所述第二操作包括分组接收操作或数据读取操作。
[0140]
示例9包括一个或多个示例,包括用于执行与所述仿真设备相关联的 虚拟化执行环境的主机服务器,并且所述主机服务器使用所述设备接口通 信地耦合到所述网络接口设备。
[0141]
示例10包括一个或多个示例,包括数据中心,其中,所述数据中心包 括源服务器和所述主机服务器,并且其中,所述仿真设备与从所述源服务器 迁移到所述主机服务器的虚拟化执行环境相关联。
[0142]
示例11包括一个或多个示例,并且包括一种非暂时性计算机可读介质, 包括存储在其上的指令,所述指令如果由网络接口设备的一个或多个处理 器执行,则使所述网络接口设备的所述一个或多个处理器:结合第一操作: 执行第一描述符从与仿真设备相关联的第一格式到与分组处理电路相关联 的第二格式的格式转换,并且将转换后的第一描述符提供给所述分组处理 电路。
[0143]
示例12包括一个或多个示例,其中,所述仿真设备包括与虚拟化执行 环境相关联的软件,所述软件作为硬件设备被呈现给所述虚拟化执行环境。
[0144]
示例13包括一个或多个示例,其中,所述仿真设备与从第一计算平台 迁移到第二平台的虚拟化执行环境相关联,并且其中,所述第二平台使用设 备接口通信地耦合到所述网络接口设备。
[0145]
示例14包括一个或多个示例,其中,所述分组处理电路包括以下中的 一项或多项:分组处理流水线,其包括至少一个可配置的匹配动作单元(mau);或存储控制器。
[0146]
示例15包括一个或多个示例,包括存储在其上的指令,所述指令如果 由所述网络接口设备的一个或多个处理器执行,则使所述网络接口设备的 所述一个或多个处理器:结合第二操作:执行第二描述符从与所述分组处理 电路相关联的所述第二格式到与所述仿真设备相关联的所述第一格式的格 式转换,并且将转换后的第二描述符提供给所述仿真设备。
[0147]
示例16包括一个或多个示例,其中,所述第一操作包括分组发送操作 或数据写入操作,并且所述第二操作包括分组接收操作或数据读取操作。
[0148]
示例17包括一个或多个示例,并且包括方法,该方法包括:在网络接 口设备处:结合第一操作:执行第一描述符从与仿真软件设备相关联的第一 格式到与所述网络接口设备的分组处理电路相关联的第二格式的转换,并 且将转换后的第一描述符提供给所述分组处理电路。
[0149]
示例18包括一个或多个示例,其中,所述仿真软件设备包括与虚拟化 执行环境相关联的软件,所述软件作为硬件设备被呈现给所述虚拟化执行 环境。
[0150]
示例19包括一个或多个示例,包括:在所述网络接口设备处:结合第 二操作:执行第二描述符从与所述分组处理电路相关联的所述第二格式到 与所述仿真软件设备相关联的所述第一格式的描述符格式转换,并且将转 换后的第二描述符提供给所述仿真设备。
[0151]
示例20包括一个或多个示例,其中,所述第一操作包括分组发送操作 或数据写入操作,并且所述第二操作包括分组接收操作或数据读取操作。
再多了解一些

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

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

相关文献