对数据重新排序以用于并行处理的制作方法

文档序号:17321040发布日期:2019-04-05 21:32阅读:175来源:国知局
对数据重新排序以用于并行处理的制作方法

本公开总体上涉及通信领域,并且更具体地但非排他地,涉及用于对数据重新排序以用于并行处理的系统和方法。



背景技术:

在一些现代数据中心中,设备或装置的功能可能不依赖于特定的固定硬件配置。相反,处理、存储器、存储装置和加速器功能在一些情况下可以从不同位置聚合以形成虚拟“复合节点”。现代网络可以包括数据中心,数据中心托管包含在例如服务器机架中并且由管理程序控制的大量通用硬件服务器设备。每个硬件设备可以运行虚拟设备的一个或多个实例,例如工作负载服务器或虚拟台式机。

附图说明

当与附图一起阅读时,从以下详细描述中可以最好地理解本公开。需要强调的是,根据工业中的标准实践,各种特征不一定按比例绘制,并且仅用于说明目的。在明确地或隐含地示出比例的情况下,该比例仅提供一个说明性示例。在其他实施例中,为了讨论的清楚,可以任意增加或减少各种特征的尺寸。

图1是根据本说明书的一个或多个示例的云服务提供商的数据中心的网络级的图。

图2是根据本说明书的一个或多个示例的移动网络的框图。

图3是示出根据本说明书的一个或多个示例的示例网络的框图。

图4是根据本说明书的一个或多个示例的网络接口卡(nic)472的框图。

图5是示出根据本说明书的一个或多个示例的要用于向量或单指令多数据(simd)处理的分组的框图。

图6是根据本说明书的一个或多个示例的在nic内在板上提供特定功能的实施例的框图。

图7示出了根据本说明书的一个或多个示例的如何可以将分组与多个其他分组一起组合成单个群组。

图8是示出根据本说明书的一个或多个示例的其中对四个分组进行加密和调换的示例的框图。

图9是根据本说明书的一个或多个示例的用于实现分组预处理的架构的图示。

图10是根据本说明书的一个或多个示例的执行分组预处理的方法的框图。

具体实施方式

以下公开内容提供了用于实现本公开的不同特征的许多不同实施例或示例。以下描述了组件和布置的具体示例以简化本公开。当然,这些仅仅是示例,而不旨在是限制性的。此外,本公开可以在各种示例中重复附图标记和/或字母。这种重复是为了简单和清楚的目的,并且其本身并不指示所讨论的各种实施例和/或配置之间的关系。不同的实施例可以具有不同的优点,并且没有任何特定的优点是任何实施例一定要求的。

在现代数据中心中,不同的虚拟化网络功能(vnf)应用可以以许多不同方式来处理分组数据。应用对分组进行处理的方式可能与分组在网络上到达的方式不一致。因此,可能需要将数据格式化或转换为对应用友好的格式,以供软件对其进行操作。

向量或单指令多数据(simd)应用可能要求将分组重新排序为向量或simd友好的格式,以允许应用利用simd指令,例如,在处理器中找到的simd指令。

在simd操作中,将单个指令发送到数字信号处理器的多个处理元件,其中每个处理元件可以对不同的数据执行相同的操作。为了实现高数据吞吐量,具有simd架构的数字信号处理器(dsp)(或支持并行处理的其他处理器)的存储器组织支持多个同步的数据存取。在示例中,处理器架构可以包括通过存储器互连网络架构互连到处理元件的多存储体式存储器,使得在给定周期期间可以针对处理元件加载(由处理元件访问)多于一个数据操作数。

存储器互连网络架构典型地包括用于每个相应的并行数据传送的互连网络。例如,如果需要从存储器到处理元件的两个并行数据传送来执行操作,则存储器互连网络架构实现用于将第一数据集从存储器传送到处理元件的互连网络和用于将第二数据集从存储器传送到处理元件的另一互连网络。

simd在诸如神经网络、图像处理、使用多缓冲器或simd指令的加密互联网协议安全性(ipsec)和压缩之类的上下文中非常有用。因此,针对这些重要类型的工作负载优化simd类型的指令是有利的。

本说明书的实施例提供了分组预处理器,该分组预处理器包括例如在网络接口卡(nic)内的协处理器,其可以识别旨在用于向量处理或simd处理的分组,并且将这些分组重新排序为应用友好的格式。这将准备分组以供后续在simd操作、多指令多数据(mimd)操作或向量操作中使用。特别地,分组预处理器对分组重新排序以用于并行处理。如在整个说明书中所使用的,通过非限制性示例的方式,并行处理操作可以包括simd处理、mimd处理以及向量处理。分组预处理器可以被配置为(经由用于主机平台的核心的配置接口)识别特定帧、帧的组或分组,其在本文中广义地称为“数据序列”。数据序列可以包括多个离散数据单元,例如,分组、字节、数据字或其他单元。通常,离散数据单元可以是从数据序列中可划分的,并且在simd应用中,每个并行计算路径可以从数据序列接收单个离散数据单元。

分组预处理器可以在应用接收数据序列之前转换和/或调换数据序列内的离散数据单元,因此有助于优化应用性能。

出于本说明书的目的,还可以通过非限制性示例的方式经由以太网、wifi、调制解调器、硬件计算机端口、网络接口设备、网络套接字或协议端口接口来提供网络接口。

在特定现有系统中,在存储器中的单独的缓冲器中接收输入/输出(io)分组,并且然后应用可能需要加载、移位、移动和执行异或(xor)操作以将数据转换为使得其可以在向量或simd类型的操作中高效使用的格式。这可以以软件完成,因此增加通过系统的延迟并且降低吞吐量。

称为“帧”(一种数据序列)的数字数据传输单元可以用于向接收器指示有效载荷数据的开始和结束。数据可以由序列构成,该序列包括要经由入口接口接收的多个离散数据单元。数据帧可以包含将数据帧识别为准备好由并行处理操作消耗的元数据。可以利用虚拟队列将多个经重新排序的数据帧排队到主机平台的目标核心。另外,向量交换机可以用于将经重新排序的数据帧交换到主机平台上的目标核心。

本说明书的实施例提供内联或数据内路径,将单个数据分组或经分段的和经重新排序的数据帧分割到多个缓冲器中,并且将数据调换成适合于simd处理或向量处理的格式。调换包括在缓冲器内和缓冲器之间对数据进行转换,例如,比特混洗、比特位置重新排序、比特反转、比特混洗和其他比特操作和组合。因此,当基于simd或向量的软件包接收到分组时,数据已经处于进行适当处理的状态。分组预处理器可以提供调换的数据、具有原始数据的调换的数据或者作为组合,针对分组属性(例如,通过非限制性示例的方式,虚拟局域网(vlan)、互联网协议(ip)元组或协议类型)的任何组合可选。

在前述示例中,调换还可以包括在缓冲器内和缓冲器之间对数据进行转换,例如,比特混洗、比特位置重新排序、比特反转、比特混洗和其他比特操作和组合。例如,可以以网络次序从网络接收数据(例如,数据字可以是大端格式),而处理器通常以小端比特次序操作。因此,分组预处理器可以支持对作为组合或多次转换传递的缓冲器进行的操作。例如,可以将分组字节次序从网络次序(大端)改变为处理器次序(小端),然后进行数据转换以适应如上面描述的simd/向量指令。因此,可以支持对比特、字节和字操作的多次传递(组合)。

另外,本说明书的实施例支持针对向量处理的单个分组数据传输以及单个分组数据转换然后分段到多个缓冲器中。实施例还支持进行多个分组联合、转换和作为单个缓冲器递送。实施例可以支持将分段分发到不同的核心,其中这些分段可以在单独的线程中在单独的核心上处理。

本说明书的一些实施例可以包括公共联网工作流,其中分组的序列进入服务提供商数据中心内的边缘路由器,并且边缘路由器对该分组执行一些分组处理管线。考虑网络服务提供商的示例。电缆数据服务接口规范(docsis)调制解调器可以位于小型数据中心的边缘,该小型数据中心为最终用户或客户端提供互联网接入。当分组进入时,docsis调制解调器将诸如过滤、分类、执行查找、启动安全序列或其他功能之类的分组处理管线应用于分组。

现在将更具体地参考所附的附图来描述用于对数据重新排序以用于并行处理的系统和方法。应当注意,在整个附图中,可以重复特定附图标记以指示特定设备或块在附图中完全或基本一致。然而,这并不旨在暗示所公开的各种实施例之间的任何特定关系。在特定示例中,一类元素可以通过特定的附图标记(“部件10”)来引用,而该类的个体种类或示例可以通过带连字符的数字(“第一特定部件10-1”和“第二特定部件10-2”)来引用。

图1是根据本说明书的一个或多个示例的云服务提供商(csp)102的数据中心100的网络级的图。通过非限制性示例的方式,csp102可以是传统的企业数据中心、企业“私有云”或“公共云”,其提供诸如基础设施即服务(iaas)、平台即服务(paas)或软件即服务(saas)之类的服务。

csp102可以提供某种数量的工作负载群组118,工作负载群组118可以是个体服务器、刀片式服务器、机架安装式服务器或任何其他合适的服务器拓扑的群组。在该说明性示例中,示出了两个工作负载群组118-1和118-2,每个工作负载群组提供机箱148中的机架安装式服务器146。

每个服务器146可以托管独立操作系统并提供服务器功能,或者服务器可以是虚拟化的,在这种情况下,服务器可以受虚拟机管理器(vmm)、管理程序和/或编排器控制,并且可以托管一个或多个虚拟机、虚拟服务器或虚拟装置。这些服务器机架可以共同处于单个数据中心中,或者可以位于不同地理位置的数据中心中。根据合同协议,一些服务器146可以专门用于特定企业客户或租户,而其他服务器可以是共享的。

数据中心中的各种设备可以经由交换结构170彼此连接,交换结构170可以包括一个或多个高速路由和/或交换设备。交换结构170可以提供“南-北”业务(例如,去往和来自诸如互联网之类的广域网(wan)的业务)和“东-西”业务(例如,跨数据中心的业务)两者。从历史上看,南-北业务占网络业务的大部分,但是随着web服务变得越来越复杂和分布,东-西业务的量也在增加。在许多数据中心中,东-西业务现在占业务的大多数。

此外,随着每个服务器146的能力增加,业务量可能进一步增加。例如,每个服务器146可以提供多个处理器槽,每个槽容纳具有四到八个核心的处理器,以及用于核心的足够存储器。因此,每个服务器可以托管多个vm,每个vm生成其自己的业务。

为了容纳数据中心中的大量业务,可以提供高能力的交换结构170。在该示例中,交换结构170被示为“扁平”网络,其中每个服务器146可以具有到机架顶式(tor)交换机120的直接连接(例如,“星形”配置),并且每个tor交换机120可以耦合到核心交换机130。这种双层扁平网络架构仅作为说明性示例示出。在其他示例中,可以使用其他架构,例如通过非限制性示例的方式,基于“clos”架构的三层星形或叶-脊(也称为“胖树”拓扑)、中心和轮辐式拓扑、网格拓扑、环形拓扑或3d网格拓扑。

结构本身可以由任何合适的互连提供。例如,每个服务器146可以包括网络接口卡(nic)、主机结构接口(hfi)或其他主机接口。主机接口本身可以经由互连或总线(例如pci、pcie或类似物)耦合到一个或多个处理器,并且在一些情况下,该互连总线可以被认为是结构170的一部分。

互连技术可以由单个互连或混合互连提供,例如,pcie提供片上通信,1gb或10gb铜以太网提供到tor交换机120的相对短的连接,并且光布线提供到核心交换机130的相对较长的连接。通过非限制性示例的方式,互连技术包括omni-pathtm、truescaletm、超级路径互连(upi)(以前称为qpi或kti)、光纤通道、以太网、通过以太网的光纤通道(fcoe)、infiniband、pci、pcie或光纤等,仅列出一些。这些互连技术中的一些互连技术比其他互连技术更适合于特定部署或功能,并且针对即时应用选择适当的结构是普通技能的练习。

然而应注意,虽然本文通过说明的方式提供了诸如omni-pathtm之类的高端结构,但是更一般地,结构170可以是用于特定应用的任何合适的互连或总线。在一些情况下,这可能包括传统互连,如局域网(lan)、令牌环网络、同步光网(sonet)、异步传送模式(atm)网络、诸如wifi和蓝牙之类的无线网络、“普通老式电话系统”(pots)互连等。还明确地预期,将来将出现新的网络技术以补充或替换这里列出的网络技术中的一些,并且任何这样的未来网络拓扑和技术可以是或形成结构170的一部分。

在特定实施例中,结构170可以在各种“层”(如osi七层网络模型中最初概述的)上提供通信服务。在现代实践中,并不严格遵循osi模型。一般而言,层1和层2经常称为“以太网”层(但是在大型数据中心中,以太网经常被更新的技术取代)。层3和4经常称为传输控制协议/互联网协议(tcp/ip)层(其可以进一步细分为tcp层和ip层)。层5-7可以称为“应用层”。这些层定义作为有用的框架公开,但是旨在是非限制性的。

图2是根据本说明书的一个或多个示例的移动网络200的框图。在该特定示例中,通过非限制性示例的方式,公开了第四代长期演进(4glte,或简称lte)网络。在特定实施例中,lte主要用于数据传送,使得除了本文示出的元件之外,移动网络200还可以提供用于处理语音通信的结构,该结构可以通信地耦合到公共交换电话网络(pstn)。在一些情况下,还可以提供通过lte的语音(volte)。还应该注意,lte仅作为本说明书的教导的一个可能的实施例公开,并且该教导可以与现在存在或以后开发的其他电信结构相关,并且本说明书的范围旨在在适用时包含这样的结构。

在该示例中,移动网络200包括用户设备(ue)210,其例如经由无线天线216通信地耦合到演进型umts无线电接入网络(e-utran)204。ue210可以发起与e-utran204-1的数据事务或会话,在本文中称为“数据呼叫”。e-utran204例如经由有线连接通信地耦合到演进型分组核心(epc)202。通过非限制性示例的方式,e-utran204可以包括用作无线基站的演进型nodeb(enb)220,以及分布式自组织网络(dson)控制器224。

在各种实施例中,这些功能可以由专用服务器或装置提供。在其他实施例中,可以在虚拟环境中提供选择功能,例如,在管理程序中提供各种功能的机架安装式服务器。在一般意义上,各种ue级设备、服务器级设备、网络功能通常可以被分类为“计算设备”。如在整个说明书中所使用的,计算设备包括基于冯·诺依曼架构的任何电气或电子设备,包括具有控制单元和逻辑单元的处理器以及存储器。在该上下文中,应该理解,冯·诺依曼架构可以设置为物理设备,或者设置为在来自物理硬件的抽象的一个或多个层处运行的虚拟机或管理程序。

在该示例中,公开了两个e-utrans204-1和204-2以说明网络的移动性质。例如,随着携带ue210的用户移动,ue210可以移动。随着ue210远离e-utran204-1移动,其到e-utran204的信号将衰减。如果ue210同时更靠近e-utran204-2移动,则其与e-utran204-2的信号将变得更强。当ue210移动使得其获得到e-utran204-2的信号比到e-utran204-1的信号强时,e-utran204-1可以将数据呼叫切换到e-utran204-2,使得e-utran204-2无缝地继续处理数据呼叫。

可以通过x2接口处理切换。在该示例中,在移动网络200内传递两类信号:语音、数据和呼叫信号(本文中称为“用户平面”信号)和控制信号(本文中称为“控制平面”信号)。x2提供控制平面接口和用户平面接口两者,并且在实施例中是在两个e-utran204之间的有线连接。s1控制平面的协议结构基于流控制传输协议/互联网协议(sctp/ip)。用户平面提供基于通用分组无线电服务(gprs)隧道化协议/用户数据报协议/ip(gtp/udp5/ip)的协议结构。在用户平面上,可以通过ip地址和一个或多个gtp隧道化端点id(teid)来识别传输承载。x2作为网格状接口操作,意味着多个enb220可以全部链接在一起。当恰当地配置时,x2有助于在ue210从一个e-utran204切换到另一个e-utran204时最小化分组丢失。具体地,当切换数据呼叫时,可以经由x2接口将存储在旧的enb220的队列中的未发送或未确认的分组转发或隧道化传送到新的enb220。

e-utran204经由s1接口通信地耦合到epc202。与x2接口一样,s1提供控制平面和用户平面两者,其类似于相应的x2控制平面和用户平面进行配置。在实施例中,s1应用协议(s1-ap)直接映射在sctp之上。

在该示例中,epc202包括服务网关(sgw)250、移动性管理实体(mme)240、归属订户服务器(hss)244、分组数据网络(pdn)网关260、演进型分组数据网关(epdg)280以及策略和计费规则功能(pcrf)290。epc202本身可以经由适当的接口通信地耦合到诸如互联网270之类的公共网络或者运营商ip服务292。

当ue210正在执行诸如web应用、网络冲浪、电子邮件或其他网络操作之类的数据操作时,ue220经由移动网络200连接到互联网270。在一个示例场景中,用户平面信号源自ue,并且传递到e-utran204。在e-utran204内,enb220(或其他类似基站)首先接收到用户平面信号,该enb220与epc202接合以处理数据呼叫。

作为无线局域网(wlan)接入点(wap),enb220支持e-utran正交频分复用(ofdm)物理接口的层1和层2。有利地,enb220可以直接连接到网络路由器,从而简化网络架构。enb220可以支持与用于发送和接收的物理层过程有关的特定传统特征,包括调制和解调以及信道编码和解码。enb220还可以提供无线电资源控制和无线电移动性管理以用于处理移交。

epc202提供若干功能块以提供各种支持功能。这些仅通过非限制性实例的方式在本文中描述。

mme240向epc202提供控制功能。mme240提供空闲模式ue寻呼和标记过程,包括重传。mme240还提供承载激活和去激活支持,并且当ue210最初经由e-utran204附接到epc202时,可以为ue210选择适当的sgw250。在附接之后,mme240经由hss244认证ue210。

非接入层(nas)信令在mme240处终止,并且mme240还负责为ue210生成并分配临时身份。然后,mme240验证ue210的对服务提供商的公共陆地移动网络(plmn)上的资源的授权,并且对ue210实施漫游限制。mme240还是用于针对nas信令进行加密/完整性保护的终端端点,并且处理安全密钥管理。mme240还支持合法的信号拦截。mme240还针对lte网络与2g/3g网络之间的移动性提供控制平面功能,其中s3接口在mme240处从例如3g服务gprs支持节点(sgsn)终止。最后,mme240终止hss244的用于漫游ue的s6a接口。

在实施例中,hss244是用于提供归属位置寄存器(hlr)和认证中心(auc)服务的数据库服务器。通过非限制性示例的方式,hss的功能包括呼叫和会话建立支持、用户认证和接入授权。

在实施例中,hlr存储并更新用户订阅信息数据库。通过非限制性示例的方式,这可以包括以下:

a.用户识别和寻址,包括国际移动订户身份(imsi)、移动订户isdn

号(msisdn)和/或移动电话号。

b.用户简档信息,包括订阅和服务质量(qos)数据。

auc根据用户身份密钥生成安全数据,并且将该数据提供给至少hlr,并且根据需要提供给其他功能块。

sgw250转发用户数据分组,同时还在enodeb间移交期间充当用户平面的移动性锚点,并且充当用于lte与其他3gpp技术之间的移动性的锚点(终止s4接口并且在2g/3g系统与pdn网关250之间中继业务)。当ue210空闲时,sgw250终止下行链路数据路径,并且在下行链路数据到达ue210时触发寻呼。sgw250还可以存储ue上下文,该ue上下文包括ip承载服务的参数和网络内部路由信息。sgw250还在合法拦截的情况下执行用户业务的复制。

pdn网关260提供从ue210到外部分组数据网络(pdn)的连接,并且为ue业务提供入口点和出口点。ue210可以同时连接到多于一个pdn网关250,并且因此可以接入多个pdn。在示例中,通过非限制性示例的方式,pdn网关250提供策略实施、在每个用户基础上的分组过滤、计费支持、合法拦截以及分组筛选。

接入网络发现和选择功能(andsf)262帮助ue210发现非3gpp接入网络,例如,wi-fi或wimax,其除了lte网络外可以用于数据通信。andsf260可以向ue210提供监管到这些网络的连接的规则。通过非限制性示例的方式,andsf260可以向ue提供以下:

a.系统间移动性策略(ismp)——用于当ue210具有不多于一个活动的接入网络连接(例如,lte或wi-fi)时的网络选择规则。

b.系统间路由策略(isrp)——用于当ue210潜在地具有多于一个活动的接入网络连接(例如,lte和wi-fi两者)时的网络选择规则。在这种情况下,ue210可以根据策略和用户偏好采用ip流移动性、多址pdn连接(mapcon)或非无缝wi-fi卸载。

c.发现信息——可以在ue210附近可用的网络列表,以及帮助ue210连接到这些网络的信息。

andsf262可以通过s14参考点与ue210通信,在一些实施例中,s14参考点特定于andsf。

在实施例中,pcrf290提供策略决策功能(pdf)和计费规则功能(crf)两者。

pdf做出政策决策。具体地,当建立ip多媒体子系统(ims)时,会话发起协议(sip)数据包括终端和代理呼叫会话控制功能(p-cscf)可以在它们之间交换的媒体要求。在会话建立过程期间,pdf还可以从p-cscf接收这些要求,并且基于网络运营商规则做出决策。通过非限制性示例的方式,这些可以包括:

a.允许或拒绝媒体请求。

b.将新的或现有的pdp上下文用于传入的媒体请求。

c.针对授权资源使用来检查对资源的分配。

crf提供适用于每个服务数据流的运营商定义的计费规则。crf基于由p-cscf提供的信息来选择相关的计费规则,通过非限制性示例的方式,例如,应用标识符、流的类型(音频、视频等)或应用数据速率。

epdg280通过不可信的非3gpp接入来保护与连接到epc202的ue210的数据传输。针对该目的,epdg充当与ue210建立的ipsec隧道的终止节点。

网络270可以是关于一个或多个合适的联网协议操作的任何合适的网络或一个或多个网络的组合,通过非限制性示例的方式,包括例如局域网、内联网、虚拟网络、广域网、无线网络、蜂窝网络或互联网(可选地经由代理、虚拟机或其他类似的安全机制接入)。网络270还可以包括一个或多个服务器、防火墙、路由器、交换机、安全装置、防病毒服务器或其他有用的网络设备。在该图示中,为简单起见,网络270被示为单个网络,但是在一些实施例中,网络270可以包括大量网络,例如,连接到互联网的一个或多个企业内联网。

运营商ip服务292包括由epc202的运营商提供的服务。运营商ip服务292可以包括或可以通信地耦合到运营支持系统(oss)234。oss234提供用于监测、控制、分析以及管理epc202的硬件和软件。

有利地,lte提供自组织网络(son)(有时也称为自优化网络,其可互换地使用)。son提供自动化方法以便于规划、配置、管理、优化和恢复诸如epc202和e-utran204之类的网络。

可以以不同的风格提供son,包括例如集中式son(c-son)230、分布式son(dson)224,以及在一些情况下混合son(hson)。

c-son230提供集中式的、较高级别网络控制,增加针对诸如跨广泛地理区域的负载平衡之类的功能的节点之间的协调。相反,dson224提供分布式的、对等控制功能,其中每个e-utran网络无线地从其他e-utran接收报告的参数,并且基于这些报告做出自主决策。hson(此图示中未示出)提供了混合解决方案,其中一些功能是集中的,而其他功能是分布式的。

有利地,son提供有用的功能,例如:

a.自配置。在自配置网络中,新的基站被自动配置并集成到网络中,并且基站上的新特征也被无缝地集成。当新的基站被引入网络并通电时,该新的基站立即被网络识别并注册。然后,相邻基站自动调整以提供所要求的覆盖和容量,以及避免干扰。

b.自优化。诸如enb220之类的基站可以提供旨在控制和/或优化其行为的配置参数。基于对enb220本身以及在ue210或别处的测量两者的观测,son可以自动重新配置这些参数以增强网络效率。在另一实施例中,son提供自动邻居关系(anr),并且优化随机接入参数或移动性鲁棒性。在又一实施例中,son在夜间关闭一些基站以节省功率。可以选择这些基站以确保仍然在覆盖区域中提供完全覆盖。相邻基站可以重新配置适当的参数以确保完全覆盖并且适应改变的网络拓扑。如果发生需要突然峰值,则一个或多个睡眠基站可以几乎即时地唤醒。这可以在不牺牲网络的情况下实现显著的功率节省。

自恢复。如果网络节点(例如,enb220)发生故障,则自恢复有助于减轻故障对整个网络的影响。例如,son可以调整相邻enb220中的参数和算法,使得其可以继续向故障的enb220提供服务。这与传统网络形成对比,在传统网络中,当基站故障时可能需要投入大量时间和资源来进行修复。利用自恢复网络,网络可以在很少或没有服务中断的情况下自动且接近即时地自调整。

图3是示出根据本说明书的一个或多个示例的示例网络的框图。

分组流320可以包括要由simd处理或向量处理进行处理的数据。simd处理或向量处理可以经由外部网络308提供并且然后路由到ue310。

simd处理或向量处理可以包括具有公共属性的流,并且因此能够进行分批处理。旨在用于个体终端用户的分组可能不会连续到达边缘路由器304。相反,这些分组可以散布有用于其他用户的分组。然而,边缘路由器304基于公共属性将分组的序列聚合成流或批是有利的。这允许在边缘路由器304内进行流线化处理,以及在工作负载服务器312上进行流线化处理,工作负载服务器312可以执行附加的工作,例如,ip安全性、加密或解密、防病毒检查、负载平衡或其他有用的功能。因此,边缘路由器304可以受益于具有如本说明书中所示的分组预处理器。

图4是根据本说明书的一个或多个示例的网络接口卡(nic)472的框图。

该nic472仅通过非限制性示例的方式提供。应特别注意,nic472可以是单独的可插拔卡(例如,pcie卡),或者其可以与其主机核心紧密集成并且在芯片上。此外,虽然本文中公开nic472作为用于托管远程硬件加速功能的介质,但是这些功能也可以仅托管在机器的另一部分中。例如,可以提供专用的rha芯片,其本身可以非常像硬件加速器。可以在集成到核心中的硬件块上执行功能,或者可以在核心上以软件执行这些功能。因此,该图中的nic472上的远程硬件加速功能的公开应被理解为仅是非限制性和说明性示例,并且本公开应该被理解为包含用于实现远程硬件加速的任何合适的硬件或软件配置。

在该示例中,nic472包括两个物理接口,即主机平台接口420和外部网络接口402。

主机平台接口420可以提供到主机上的本地总线(例如,pcie接口或其他本地互连)的物理接口。主机平台接口420作为非限制性示例提供,并且应当理解,其他互连方法也是可能的。例如,在nic472与其伴随的核心紧密耦合的情况下,主机平台接口420可以是集成电路板上的直接的管芯上迹线或直接铜连接。在其他示例中,可以使用除pcie之外的总线接口。

外部网络接口402向结构(例如,图1的结构170或本文公开的结构中的任何结构)提供物理互连。外部网络接口402可以被配置为将nic472连接到任何合适的结构。

在一个特定示例中,可以使用omni-pathtm结构。omni-pathtm结构是有利的,因为其允许在不同的相干域之间映射地址和存储器范围。系统可以包括一个或多个相干域,其中所有相干域经由结构彼此连接。缓存代理是节点内的相干性代理,其处理来自相同节点内的核心的存储器请求,从而提供域的相干性。归属代理是节点群组,其负责处理来自缓存代理的存储器请求,并且充当存储器地址空间的一部分的归属。单个管芯可以具有多个归属,该多个归属具有分布式地址空间映射。取决于请求针对的地址空间,请求可以到达相同节点的本地存储器,或者请求可以到达upi代理,例如,将请求路由到相同相干域内的其他处理器。可替代地,请求可以通过nic472到达相干域之外的处理器。经由upi连接的所有处理器属于相同的相干域。因此,在一个实施例中,nic472可以经由upi隧道化与omni-pathtm结构进行通信。

可以经由外部网络逻辑404来促进该通信,外部网络逻辑404提供在相干域内提供通信并且跨结构与不同相干域进行通信所必需的逻辑元件和指令。外部网络逻辑404还可以包括用于将本地请求变换为远程结构请求的逻辑。

在另一方面,主机平台接口逻辑416可以提供用于与本地总线(例如,pcie总线或专用铜连接)接合的逻辑。可替代地,通过nic472的业务可以遵循通过主机平台接口420、主机平台接口逻辑416、外部网络逻辑404以及外部网络接口402向外到达结构的路径。

分组预处理器406可以被配置为提供根据本说明书的教导的分组预处理。在各种示例中,可以对旨在用于simd处理或向量处理的分组流进行识别和重新排序,使得其准备好进行向量处理或simd处理。可以在流中的第一分组中插入适当的提示,以告知下游应用其可以如何处置分组的序列。这些提示可能包括分组的性质、流标识符和公共属性的值,使得下游应用知道如何应用simd处理或向量处理。注意,在一些示例中,分组流可能无序地到达外部网络接口402,并且因此分组预处理器406除了识别分组流之外,还可以对分组流重新排序,使得分组流准备好进行simd处理或向量处理。通过允许将simd处理或向量处理应用于更大数量的流,这增加了应用本说明书的教导的益处。

在各种实施例中,分组预处理器406可以包括在nic472上,作为在本地处理器上运行的软件块、硬ip块或软ip块、专用集成电路(asic)、可选地具有适当的存储器缓冲器或支持电路、现场可编程门阵列或一些其他硬件或软件解决方案。此外,虽然在该示例中将分组预处理器406示为nic472的内联特征,但情况不一定如此。在一些示例中,分组预处理器406可以设置为从nic472在板外的协处理器,或者甚至可以设置于在将分组提供给软件分组处理管线之前对分组执行预处理的、在主机平台上(例如,在cpu上)运行的软件中。

图5是示出根据本说明书的一个或多个示例的要用于向量处理或simd处理的分组的框图。

在该示例中,分组0504包括多个字节。这些字节被标记为a0、b0至h0以及a1至h1。可以包括附加数据段。这些分组由nic572接收,并转发到软件510。

当软件510接收到分组504时,软件510可以对分组504内的数据块重新排序以准备分组用于simd处理。例如,软件510可以从多个序列中提取所有“a”段并发送所有“a”段以在第一核心或线程上进行处理,并且可以收集所有“b”段并转发所有“b”段以在simd处理引擎512内在第二simd线程中进行处理。

虽然这实现了simd处理或向量处理的优点,但其要求软件510执行重新排序。

图6是代替地在nic672内在板上提供这些功能中的特定功能的实施例的框图。有利地,因为这些功能可以以asic、现场可编程门阵列(fpga)、协处理器或者其他非常快的架构提供,所以在一些实施例中可以更快地执行处理。在该示例中,将分组0604提供给nic672。nic672执行对分组604的内部调换,将a、b、c等分组在一起,将其准备用于simd处理或向量处理。一旦已经恰当地形成了所有数据分组,则将修改后的分组608提供给软件610,其中修改后的分组608现在可以由simd处理引擎512本地处理,而无需任何附加的重新排序。

注意,这与内联加密或头部拆分不同。头部拆分不一定转换有效载荷数据本身,而是将单个分组分成多个片段,或复制分组和描述符。本说明书中描述的内联操作包括将数据传送到向量、mimd或simd友好的格式,以便由simd处理引擎612立即处理。还可以对数据分段以适合向量指令。

注意,因为simd指令、mimd指令和向量指令可能要求不同的格式(例如,数据宽度),所以分组预处理器可以被配置为格式化数据以匹配目标架构能力。

转到图6,注意,一些应用要求将分组数据分组到单个缓冲器中,以允许在并行地处理多个分组时高效使用simd指令。例如,snow3g无线密码可能要求这样进行分组。

图7示出了如何可以将分组0704和分组1708与多个其他分组一起组合成单个群组。在群组中,来自所有各种分组的所有a0被分组,来自所有各种分组的所有b0被分组等等。

图8是示出另一示例的框图,其中四个分组利用一个缓冲器和多个缓冲器通道被加密和调换并且然后准备用于传输。

在该示例中,提供分组0、1、2和3,其中每个分组包括缓冲器通道0到3。因此,p0b0表示“分组0缓冲器通道0”,依此类推至p2b3表示分组2缓冲器通道3。这些可以进行转换,使得新的分组0包括分组0缓冲器通道0、分组1缓冲器通道0、分组2缓冲器通道0等等。新的分组1包括分组0缓冲器通道1、分组1缓冲器通道1、分组2缓冲器通道1等等。新的分组2包括分组0缓冲器通道2、分组1缓冲器通道2、分组2缓冲器通道2等等。新的分组3包括分组0缓冲器通道3、分组1缓冲器通道3、分组2缓冲器通道3等等。因此,每个输出分组包括来自输入分组的相同缓冲器通道中的每个。一旦分组被适当地格式化,则可以将分组发送到适当的应用。

图9是用于实现本说明书的分组预处理的架构的图示。分组预处理器识别帧并修改传入和传出的已识别数据帧。分组预处理器可以放置在nic中,或者可以与nic分离,例如,在预处理器中或在单独的软件进程中。例如,nic可以检测作为该处理的候选的分组,并且预处理器可以执行实际的预处理,或者预处理器可以被配置为执行两者。

在该示例中,多个入口缓冲器或帧可以设置有单个出口缓冲器或帧。当nic或分组预处理器取决于所应用的规则而识别帧时,其可以基于预先定义的模式将多个帧组合到单个存储器位置中。这允许应用为特定流指定将以合适的格式联合并存储在存储器中的分组。在另一方面,在另一场景中,在发送时simd应用可以向分组预处理器提供单个帧或缓冲器,并且分组预处理器可以使用预先定义的模式形成多个输出缓冲器或帧以对数据进行格式化。在不要求联合的其他使用情况下,分组预处理器可以识别单个帧,并且基于预先定义的模式在存储数据或将数据提供给存储器的dma引擎之前修改数据。

在该示例中,nic包括入口端口904。分组接收器908从入口端口904接收分组。

过滤器动作表912识别需要接收向量或simd格式化的分组。如果分组不要求任何特殊格式化,则可以将分组直接转发到出口端口,以便由应用处理。

对于那些要求特殊格式化的输入分组,提供了simd/向量格式化器916。simd或向量格式化器916可以执行单个分组数据转换以用于向量处理。simd或向量格式化器916还可以执行单个分组数据转换然后分段到多个缓冲器中,并且另外可以执行多个分组联合、转换和作为单个缓冲器递送。

在一些实施例中,向量格式化器916可以具有其自己的内部管线,并且可以执行多个操作。例如,第一操作可以包括将数据从网络分组格式(例如,大端)转变为处理器格式(例如,小端)。这之后可以进行数据转换以适应simd/向量指令。在一些实施例中,可以将一个或多个提示或标签作为元数据预加到分组,指示已经执行了预处理。这确保处理器不“撤销”预处理(例如,通过转变回大端格式)。这可以由指示作为整体进行预处理的单个标志或信号来处理,或者可以针对每个预处理操作具有个体标志或信号。

向量格式化器916的输出缓冲器被提供给向量交换机920,向量交换机920使用向量索引提供对虚拟功能的交换。因此,可以将向量提供给多个虚拟功能队列924。然后可以将虚拟功能队列924提供给向量处理器928,虚拟功能队列924可以包括诸如元数据、原始分组和simd预处理分组数据之类的信息。

一旦向量处理器928处理该函数,则可以再次将输出提供给过滤器动作表912,并且可以确定在跨网络将输出发送回去之前是否还应该对输出进行重新排序。在这种情况下,如果要求向量格式化,则向量格式化器916可以对分组进行重新布置,使得分组适合于传输回网络。

图10是根据本说明书的一个或多个示例的执行分组预处理的方法1000的框图。

在框1004中,nic如上面描述地接收传入分组。

在框1008中,诸如图9的过滤器动作表912之类的功能块可以识别作为simd处理或向量处理的候选的帧或缓冲器。

在框1012中,向量或simd格式化器可以重新格式化分组,如结合图9所描述的,例如,转换单个分组以用于向量处理,转换单个分组然后分段到多个缓冲器中,或者利用转换和作为单个缓冲器递送来执行多个分组联合。

在框1016中,将经重新排序的分组转发到在适当的处理器上操作的向量或simd处理引擎。

在框1098中,该方法结束。

前述内容概述了本文公开的主题的一个或多个实施例的特征。提供这些实施例以使得本领域普通技术人员(phosita)能够更好地理解本公开的各种方面。可以参考特定的易于理解的术语以及基础技术和/或标准而不进行详细描述。预计phosita将拥有或获得足以实践本说明书的教导的那些技术和标准中的背景知识或信息。

phosita将理解,他们可以容易地使用本公开作为设计或修改其他过程、结构或变型的基础,以实现相同的目的和/或实现本文介绍的实施例的相同优点。phosita还将认识到,这样的等同构造不脱离本公开的精神和范围,并且在不脱离本公开的精神和范围的情况下,可以在本文中进行各种改变、替换和更改。

在前面的描述中,一些或所有实施例的特定方面比实践所附权利要求严格必需的更详细地进行描述。仅通过非限制性示例的方式提供这些细节,用于提供所公开的实施例的上下文和图示的目的。这些细节不应该理解为是要求的,并且不应该将权利要求“曲解”为作为限制。短语可以指“实施例”或“多个实施例”。这些短语和对实施例的任何其他引用应该被广义地理解为指代一个或多个实施例的任何组合。此外,在特定“实施例”中公开的若干特征也可以跨多个实施例中散布。例如,如果在“实施例”中公开了特征1和2,则实施例a可以具有特征1但缺少特征2,而实施例b可以具有特征2但缺少特征1。

本说明书可以以框图格式提供说明,其中特定特征在单独的框中公开。这些应该被广义地理解为公开各种特征如何互操作,但并不旨在暗示这些特征必须体现在单独的硬件或软件中。此外,在单个框公开同一框中的多于一个特征的情况下,这些特征不一定必须体现在相同的硬件和/或软件中。例如,计算机“存储器”在一些情形下可以在多级高速缓存或本地存储器、主存储器、支持电池的易失性存储器和各种形式的持久存储器(例如,硬盘、存储服务器、光盘、磁带驱动器或类似物)之间分布或映射。在特定实施例中,可以省略或合并组件中的一些组件。在一般意义上,图中描绘的布置在其表示中可以更逻辑化,而物理架构可以包括这些元件的各种置换、组合和/或混合。可以使用数不清的可能设计配置来实现本文概述的操作目标。因此,相关联的基础设施具有无数的替代布置、设计选择、设备可能性、硬件配置、软件实现方式和设备选项。

本文可以参考计算机可读介质,其可以是有形的和非暂时性的计算机可读介质。如在本说明书和整个权利要求书中所使用的,“计算机可读介质”应该被理解为包括相同或不同类型的一种或多种计算机可读介质。通过非限制性示例的方式,计算机可读介质可以包括光驱动器(例如,cd/dvd/蓝光)、硬盘驱动器、固态驱动器、闪速存储器或其他非易失性介质。计算机可读介质还可以包括诸如只读存储器(rom)、fpga或asic之类的介质,其被配置为执行:期望指令,所存储的用于将fpga或asic编程为执行期望指令的指令,可以以硬件集成到其他电路中的知识产权(ip)块,或者直接编码到硬件中的指令,或在处理器(例如,微处理器、数字信号处理器(dsp)、微控制器)上或在任何其他合适的组件、设备、元件中的微代码,或在适当的情况下并且基于特定需求的对象。本文中的非暂时性存储介质明确地旨在包括被配置为提供所公开的操作或使处理器执行所公开的操作的任何非暂时性专用或可编程硬件。

在整个说明书和权利要求书中,各种元件可以“通信地”、“电地”、“机械地”或以其他方式彼此“耦合”。这种耦合可以是直接的点对点耦合,或者可以包括中间设备。例如,两个设备可以经由促进通信的控制器通信地彼此耦合。设备可以经由诸如信号增强器、分压器或缓冲器之类的中间设备彼此电耦合。机械耦合的设备可以间接地机械耦合。

本文公开的任何“模块”或“引擎”可以指代或包括软件,软件栈,硬件、固件和/或软件的组合,被配置为执行引擎或模块的功能的电路,或者如上面公开的任何计算机可读介质。在适当的情形下,这些模块或引擎可以设置在硬件平台上或与硬件平台结合,该硬件平台可以包括硬件计算资源,例如,处理器、存储器、存储装置、互连、网络和网络接口、加速器或其他合适的硬件。这样的硬件平台可以设置为单个单片设备(例如,在pc形状因子中),或者功能中的一些或部分功能被分布(例如,高端数据中心中的“复合节点”,其中计算、存储器、存储装置和其他资源可以是动态分配的,并且不需要在彼此本地)。

本文可以公开流程图、信号流程图或示出以特定次序执行的操作的其他图示。除非另外明确指出,或者除非在特定上下文中要求,否则该次序应被理解为仅是非限制性示例。此外,在示出一个操作跟随另一操作的情况下,也可能发生其他介入操作,这些操作可能是相关的或不相关的。一些操作还可以同时或并行执行。在操作被称为“基于”或“根据”另一项或操作的情况下,这应该被理解为暗示该操作至少部分地基于或至少部分地根据另一项或操作。这不应被解释为暗示操作仅基于或排他性地基于,或仅根据或排他性地根据项或操作。

本文公开的任何硬件元件的全部或部分可以容易地设置在片上系统(soc)中,soc包括中央处理单元(cpu)封装。soc表示将计算机或其他电子系统的组件集成到单个芯片中的集成电路(ic)。因此,例如,客户端设备或服务器设备可以整体地或部分地设置在soc中。soc可以包含数字、模拟、混合信号和射频功能,所有这些功能都可以设置在单个芯片衬底上。其他实施例可以包括多芯片模块(mcm),其中多个芯片位于单个电子封装内并且被配置为通过电子封装彼此紧密地交互。

在一般意义上,任何适当配置的电路或处理器可以执行与数据相关联的任何类型的指令,以实现本文详述的操作。本文公开的任何处理器可以将元素或物品(例如,数据)从一个状态或事物转换为另一状态或事物。此外,基于特定需求和实现方式,可以在任何数据库、寄存器、表、高速缓存、队列、控制列表或存储结构中提供在处理器中被跟踪、发送、接收或存储的信息,所有这些可以在任何合适的时间范围内引用。在适当时,本文公开的存储器或存储元件中的任一个应被解释为包含在广义术语“存储器”和“存储装置”内。

实现本文描述的功能的全部或部分的计算机程序逻辑以各种形式体现,包括但不限于源代码形式、计算机可执行形式、机器指令或微代码、可编程硬件和各种中间形式(例如,由汇编器、编译器、链接器或定位器生成的形式)。在示例中,源代码包括一系列计算机程序指令,其以各种编程语言实现(例如,目标代码、汇编语言或诸如opencl、fortran、c、c++、java或html之类的高级语言,用于与各种操作系统或操作环境一起使用),或者以诸如spice、verilog和vhdl之类的硬件描述语言实现。源代码可以定义和使用各种数据结构和通信消息。源代码可以以计算机可执行形式(例如,经由解译器),或者源代码可以被转变(例如,经由变换器、汇编器或编译器)成计算机可执行形式,或者转变成中间形式(例如,字节代码)。在适当的情况下,任何前述内容可以用于构建或描述适当的分立或集成电路,无论是顺序的、组合的状态机还是其他。

在一个示例实施例中,附图中的任何数量的电路可以在相关联的电子设备的板上实现。该板可以是通用电路板,其可以保持电子设备的内部电子系统的各种组件,并且还提供用于其他外围设备的连接器。基于特定配置需求、处理需求和计算设计,任何合适的处理器和存储器可以合适地耦合到板上。注意,利用本文提供的众多示例,可以关于两个、三个、四个或更多个电子组件来描述交互。然而,这仅出于清楚和示例的目的。应当理解,可以以任何合适的方式合并或重新配置系统。沿着类似的设计替代方案,附图中的所示组件、模块和元件中的任一个可以以各种可能的配置组合,所有这些都在本说明书的宽泛范围内。

本领域技术人员可以确定许多其他改变、替换、变型、更改和修改,并且本公开旨在涵盖落入所附权利要求的范围内的所有这样的改变、替换、变型、更改和修改。为了协助美国专利商标局(uspto)以及另外本申请中公布的任何专利的任何读者解释所附权利要求,申请人希望注意到,申请人:(a)不旨在使所附权利要求中的任一项援引35u.s.c章节112的第六(6)段(pre-aia)或同一章节的段落(f)(post-aia),因为其存在于提交日之前,除非在特定权利要求中特别使用词语“用于……的单元”或“用于……的步骤”;并且(b)不旨在通过说明书中的任何陈述以任何未在所附权利要求中以其他方式明确反映的方式来限制本公开。

示例实现方式

通过说明的方式提供以下实施例。

示例1包括一种网络接口设备,其包括:入口接口;主机平台接口,其通信地耦合到主机平台;以及分组预处理器,其包括逻辑,该逻辑用于:经由入口接口接收包括多个离散数据单元的数据序列;将数据序列识别为用于并行处理操作的数据;将离散数据单元重新排序为经重新排序的数据帧,经重新排序的数据帧被配置为对离散数据单元进行排序以用于由并行处理操作进行消耗;以及经由主机平台接口将经重新排序的数据帧发送到主机平台。

示例2包括示例1的网络接口,其中,数据序列是单个数据分组。

示例3包括示例2的网络接口,其中,对离散数据单元进行重新排序包括将经重新排序的数据帧分段到多个缓冲器中。

示例4包括示例1的网络接口,其中,数据序列包括多个分组,并且其中,重新排序包括联合多个分组,并且经重新排序的数据帧包括单个缓冲器。

示例5包括示例1的网络接口,其中,分组预处理器还用于将数据序列发送到主机平台。

示例6包括示例1的网络接口,其中,分组预处理器用于向经重新排序的数据帧提供元数据,元数据将数据帧识别为准备好由并行处理操作进行消耗。

示例7包括示例1的网络接口,还包括向量交换机,以将经重新排序的数据帧交换到主机平台上的目标核心。

示例8包括示例1的网络接口,还包括虚拟队列,以将多个经重新排序的数据帧排队到主机平台的目标核心。

示例9包括示例1的网络接口,其中,主机平台接口包括用于主机平台的核心的配置接口,以对分组预处理器进行配置。

示例10包括示例1的网络接口,其中,并行处理操作是从由单指令多数据(simd)处理、多指令多数据(mimd)处理以及向量处理组成的组中选择的。

示例11包括示例1-10中任一项的网络接口,其中,分组预处理器包括协处理器。

示例12包括一种调制解调器,其包括示例1-10中任一项的网络接口。

示例13包括示例11的调制解调器,其中,调制解调器是docsis调制解调器。

示例14包括一种服务提供商数据中心,其包括边缘路由器,其中,边缘路由器是示例11的docsis调制解调器。

示例15包括一种或多种有形的非暂时性计算机可读存储介质,其上存储有用于提供分组预处理器的可执行指令,该指令用于:提供入口接口;提供主机平台接口;经由入口接口接收包括多个离散数据单元的数据序列;将数据序列识别为用于并行处理操作的数据;将离散数据单元重新排序为经重新排序的数据帧,经重新排序的数据帧被配置为对离散数据单元进行排序以用于由并行处理操作进行消耗;以及经由主机平台接口将经重新排序的数据帧发送到主机平台。

示例16包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,数据序列是单个数据分组。

示例17包括示例16的一种或多种有形的非暂时性计算机可读存储介质,其中,对离散数据单元进行重新排序包括将经重新排序的数据帧分段到多个缓冲器中。

示例18包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,数据序列包括多个分组,并且其中,重新排序包括联合多个分组,并且经重新排序的数据帧包括单个缓冲器。

示例19包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令还用于将数据序列发送到主机平台。

示例20包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令还用于向经重新排序的数据帧提供元数据,元数据将数据帧识别为准备好由并行处理操作进行消耗。

示例21包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令还用于提供向量交换机,以将经重新排序的数据帧交换到主机平台上的目标核心。

示例22包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令还用于提供虚拟队列,以将多个经重新排序的数据帧排队到主机平台的目标核心。

示例23包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,主机平台接口包括用于主机平台的核心的配置接口,以对分组预处理器进行配置。

示例24包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,并行处理操作是从由单指令多数据(simd)处理、多指令多数据(mimd)处理以及向量处理组成的组中选择的。

示例25包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令被编码在asic中。

示例26包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令被编码在fpga中。

示例27包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令被编码在软ip块中。

示例28包括示例15的一种或多种有形的非暂时性计算机可读存储介质,其中,指令被编码在硬ip块中。

示例29包括一种提供分组预处理的计算机实现的方法,包括:提供入口接口;提供主机平台接口;经由入口接口接收包括多个离散数据单元的数据序列;将数据序列识别为用于并行处理操作的数据;将离散数据单元重新排序为经重新排序的数据帧,经重新排序的数据帧被配置为对离散数据单元进行排序以用于由并行处理操作进行消耗;以及经由主机平台接口将经重新排序的数据帧发送到主机平台。

示例30包括示例29的方法,其中,数据序列是单个数据分组。

示例31包括示例30的方法,其中,对离散数据单元进行重新排序包括将经重新排序的数据帧分段到多个缓冲器中。

示例32包括示例29的方法,其中,数据序列包括多个分组,并且其中,重新排序包括联合多个分组,并且经重新排序的数据帧包括单个缓冲器。

示例33包括示例29的方法,还包括将数据序列发送到主机平台。

示例34包括示例29的方法,还包括向经重新排序的数据帧提供元数据,元数据将数据帧识别为准备好由并行处理操作进行消耗。

示例35包括示例29的方法,还包括提供向量交换机,以将经重新排序的数据帧交换到主机平台上的目标核心。

示例36包括示例29的方法,还包括提供虚拟队列,以将多个经重新排序的数据帧排队到主机平台的目标核心。

示例37包括示例29的方法,其中,主机平台接口包括用于主机平台的核心的配置接口,以对分组预处理器进行配置。

示例38包括示例29-37中任一项的方法,其中,并行处理操作是从由单指令多数据(simd)处理、多指令多数据(mimd)处理以及向量处理组成的组中选择的。

示例39包括一种装置,其包括用于执行示例29-38中任一项的方法的单元。

示例40包括示例39的装置,其中,该单元包括网络接口。

示例41包括一种调制解调器,其包括示例40的网络接口。

示例42包括示例41的调制解调器,其中,调制解调器是docsis调制解调器。

示例43包括一种服务提供商数据中心,其包括边缘路由器,其中,边缘路由器是示例41的docsis调制解调器。

示例44包括示例39的装置,其中,该单元包括协处理器。

示例45包括示例39的装置,其中,该单元包括asic。

示例46包括示例39的装置,其中,该单元包括fpga。

示例47包括示例39的装置,其中,该单元包括软ip块。

示例48包括示例39的装置,其中,该单元包括硬ip块。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1