用于流处理的数据处理单元制造技术

技术编号:23516192 阅读:26 留言:0更新日期:2020-03-18 02:16
描述了一种利用数据处理单元(DPU)的新处理体系结构。与以中央处理单元(CPU)为中心的传统计算模型不同,DPU被设计用于以数据为中心的计算模型,在该以数据为中心的计算模型中,数据处理任务以DPU为中心。DPU可以看作是高度可编程的高性能I/O和数据处理集线器,其被设计为聚合和处理去往和来自其他设备的网络和存储I/O。DPU包括用于直接连接到网络的网络接口、用于直接连接到一个或多个应用处理器(例如CPU)或存储设备的一个或多个应用处理器接口,以及多核处理器,其中每个处理核执行运行至完成数据平面操作系统。数据平面操作系统被配置为支持控制平面软件堆栈和用于执行数据处理任务的软件功能的库。

Data processing unit for stream processing

【技术实现步骤摘要】
【国外来华专利技术】用于流处理的数据处理单元本申请要求2017年7月10日提交的美国临时申请第62/530,691号、2017年9月15日提交的美国专利申请第62/559,021号和2017年11月21日提交的美国临时申请第62/589,427号的利益,其全部内容通过引用并入本文。
本公开涉及例如在联网和存储领域中用于处理流数据的设备。
技术介绍
常规计算设备通常包括诸如中央处理单元(CPU)、图形处理单元(GPU)、随机存取存储器、存储装置以及诸如以太网接口的用于将计算设备连接到网络的网络接口卡(NIC)的组件。典型的计算设备以处理器为中心,使得总体计算职责和控制与CPU集中在一起。这样,CPU执行:处理任务;存储器管理任务,诸如在CPU内的本地缓存,随机存取存储器和存储装置之间转移数据;以及联网任务,诸如构造和维护联网堆栈以及从外部设备或网络发送和接收数据。此外,CPU还负责处理例如来自用户界面设备的中断。尽管随着时间新CPU开发中的性能改进有所下降,但对CPU的需求随着时间连续增加。通用CPU通常不被设计用于通常打包的大容量网络和存储工作负载。通常,CPU在执行流数据处理方面相对较差,因为此类业务会在时间上分散并且不能很好地缓存。但是,服务器设备通常使用CPU处理流数据。
技术实现思路
通常,本公开描述了一种利用数据处理单元(DPU)的新处理架构。与以中央处理单元(CPU)为中心的传统计算模型不同,本文描述的示例实现利用了DPU,该DPU是为以数据为中心的计算模型而专门设计和优化的,在该以数据为中心的计算模型中,数据处理任务以DPU为中心,并且承担DPU的主要责任。例如诸如联网、安全性、存储和分析的各种数据处理任务以及相关的工作加速、分配和调度以及其他此类任务是DPU的领域。DPU可以看作是高度可编程的高性能输入/输出(I/O)和数据处理集线器,其旨在聚合和处理去往和来自多个其他组件和/或设备的网络和存储I/O。这样可以释放CPU的资源(如果有的话)来执行计算密集型任务。高度可编程的DPU包括:网络接口,用于连接到网络以发送和接收流数据单元(例如数据分组);一个或多个主机接口或存储设备,用于连接到一个或多个应用处理器(例如CPU)或存储设备,以发送和接收流数据单元;以及多核处理器,其中所述处理核中的两个或多个处理核核执行运行至完成的数据平面操作系统,在该操作系统上调用软件功能来处理一个或多个流数据单元,以及其中所述处理核中的一个或多个处理核执行多任务控制平面操作系统。数据平面操作系统包括在DPU的裸机上运行的低级别、运行至完成的操作系统,其被配置为支持用于执行数据处理任务的软件功能。在一些示例中,数据平面操作系统还被配置为支持包括多任务控制平面操作系统的控制平面软件堆栈。DPU利用在每个处理核的数据平面操作系统上执行的细粒度工作单元、工作单元队列和队列管理器来序列化分组处理,使得相同分组流中的数据分组由相同处理核处理。这样,DPU能够以处理核之间的精细粒度和低处理开销来处理任意类型的分组流。在一个示例中,本公开针对一种DPU集成电路,该DPU集成电路包括:网络接口,被配置为发送和接收与网络的流数据单元;主机接口,被配置为发送和接收与应用处理器或存储设备的流数据单元;多个可编程处理核;运行至完成数据平面操作系统,在多个可编程处理核中的两个或多个上执行;运行至完成软件功能,在多个可编程处理核之一上的数据平面操作系统上被调用以处理工作单元,其中工作单元与流数据单元中的一个或多个流数据单元相关联,并且其中工作单元指定软件功能用于处理流数据单元中的一个或多个流数据单元,并且还指定多个可编程处理核之一用于执行软件功能;以及在所述多个可编程处理核中的一个或多个上执行的多任务控制平面操作系统。在另一示例中,本公开针对一种系统,该系统包括:网络;应用处理器或存储设备中的至少一个;以及DPU集成电路。DPU集成电路包括:网络接口,被配置为发送和接收与网络的流数据单元;以及主机接口,被配置为发送和接收与应用处理器或存储设备中的至少一个的流数据单元;多个可编程处理核;运行至完成数据平面操作系统,在多个可编程处理核中的两个或多个上执行;运行至完成软件功能,在多个可编程处理核之一上的数据平面操作系统上被调用以处理工作单元,其中工作单元与流数据单元中的一个或多个相关联,并且其中工作单元指定软件功能以用于处理流数据单元中的一个或多个,并且还指定多个可编程处理核之一以用于执行软件功能;以及在所述多个可编程处理核中的一个或多个上执行的多任务控制平面操作系统。一个或多个示例的细节在附图和以下描述中阐述。根据说明书和附图以及根据权利要求书,其他特征、目的和优点将是显而易见的。附图说明图1A-1D是示出了包括根据本公开的技术配置的数据处理单元的节点的各种示例实现的框图。图2是示出了根据本公开的技术的、具有示例数据处理单元的系统的框图,该示例数据处理单元包括被配置为处理工作单元的运行至完成数据平面操作系统。图3是示出了根据本专利技术的技术的实例数据处理单元的硬件组件的框图。图4是示出了根据本公开的技术的、用于使用数据处理单元中的工作单元来处理流数据的示例流水线处理流程的流程图。具体实施方式图1A-1D是示出了包括根据本公开的技术配置的数据处理单元的节点的示例实现的框图。特别地,图1A是示出具有数据中心10的示例系统8的框图,该数据中心10包括各种节点的机架,诸如计算节点和存储节点,其中节点中的一个或多个包括根据本公开的技术配置的数据处理理单元。通常,数据中心10为通过网络7和网关设备16耦合到数据中心10的客户11提供用于应用和服务的操作环境。在一些示例中,网络7可以是内容/服务提供商网络。在其他示例中,网络7可以是数据中心广域网(DCWAN)、专用网络或其他类型的网络。数据中心10可以例如托管基础设施设备,诸如计算节点、联网和存储系统、冗余电源和环境控制。网络7可以耦合到由其他提供商管理的一个或多个网络,并且因此可以形成例如因特网的大规模公共网络基础设施的一部分。在一些示例中,数据中心10可以表示许多地理上分布的网络数据中心之一。在图1A的示例中,数据中心10是为客户11提供信息服务的设施。客户11可以是诸如企业和政府的集体实体或个人。例如网络数据中心可以为若干企业和最终用户托管Web服务。其他示例性服务可以包括数据存储、虚拟专用网、文件存储服务、数据挖掘服务、科学或超级计算服务等等。本公开描述了一种新的处理架构,在其中在一个或多个节点内利用数据处理单元(DPU)。与以中央处理单元(CPU)为中心的传统计算模型不同,本文描述的示例实现利用了DPU以及DPU的主要责任,该DPU是为以数据为中心的计算模型而专门设计和优化的,在该模型中,数据处理任务以其为中心。DPU可以被视为是高度可编程的高性能输入/输出(I/O)和数据处理集线器,被设计为聚合和处理去往和来自多个其他组件和/或设备之间的网络和存储I/O。根据本公开的技术,高度可编程的DPU包括网络接口(例如本文档来自技高网...

【技术保护点】
1.一种数据处理单元(DPU)集成电路,包括:/n网络接口,被配置为发送和接收与网络的流数据单元;/n主机接口,被配置为发送和接收与应用处理器或者存储设备的流数据单元;/n多个可编程处理核;/n运行至完成数据平面操作系统,在所述多个可编程处理核中的两个或者更多个可编程处理核上执行;/n运行至完成软件功能,在所述多个可编程处理核中的一个可编程处理核上的所述数据平面操作系统上被调用,以处理工作单元,其中所述工作单元与所述流数据单元中的一个或者多个流数据单元相关联,并且其中所述工作单元指定所述软件功能用于处理所述流数据单元中的所述一个或者多个流数据单元,并且还指定所述多个可编程处理核中的所述一个可编程处理核用于执行所述软件功能;以及/n多任务控制平面操作系统,在所述多个可编程处理核中的一个或者多个可编程处理核上执行。/n

【技术特征摘要】
【国外来华专利技术】20170710 US 62/530,691;20170915 US 62/559,021;20171.一种数据处理单元(DPU)集成电路,包括:
网络接口,被配置为发送和接收与网络的流数据单元;
主机接口,被配置为发送和接收与应用处理器或者存储设备的流数据单元;
多个可编程处理核;
运行至完成数据平面操作系统,在所述多个可编程处理核中的两个或者更多个可编程处理核上执行;
运行至完成软件功能,在所述多个可编程处理核中的一个可编程处理核上的所述数据平面操作系统上被调用,以处理工作单元,其中所述工作单元与所述流数据单元中的一个或者多个流数据单元相关联,并且其中所述工作单元指定所述软件功能用于处理所述流数据单元中的所述一个或者多个流数据单元,并且还指定所述多个可编程处理核中的所述一个可编程处理核用于执行所述软件功能;以及
多任务控制平面操作系统,在所述多个可编程处理核中的一个或者多个可编程处理核上执行。


2.根据权利要求1所述的DPU集成电路,还包括:控制平面软件堆栈,在所述可编程处理核中的至少一个可编程处理核上的所述数据平面操作系统上执行,其中所述控制平面软件堆栈包括管理程序和在所述管理程序上执行的所述多任务控制平面操作系统。


3.根据权利要求1所述的DPU集成电路,其中执行所述控制平面操作系统的所述可编程处理核中的至少一个可编程处理核包括专用于所述控制平面操作系统的独立处理核。


4.根据权利要求1所述的DPU集成电路,还包括:一个或者多个控制平面服务代理,在所述控制平面操作系统上执行,所述控制平面服务代理被配置为执行软件结构的建立和拆除以支持由在所述数据平面操作系统上执行的所述软件功能执行的工作单元处理。


5.根据权利要求1所述的DPU集成电路,其中所述流数据单元包括数据分组,还包括在所述控制平面操作系统上执行的一个或者多个控制平面服务代理,所述控制平面服务代理被配置为确定所述数据分组的分组流是合理的,并且向在所述可编程处理核中的所述一个可编程处理核上执行的所述数据平面操作系统发送指令,以在流表中建立所述分组流。


6.根据权利要求1所述的DPU集成电路,其中被调用以处理所述工作单元的所述软件功能包括被包括在由所述数据平面操作系统提供的功能库中的多个软件功能中的一个软件功能,并且其中被包括在所述功能库中的所述多个软件功能包括:一个或者多个网络功能、一个或者多个存储功能、一个或者多个安全功能、以及一个或者多个分析功能。


7.根据权利要求1所述的DPU集成电路,其中所述流数据单元包括数据分组,并且其中在所述可编程处理核中的所述一个可编程处理核上执行的所述数据平面操作系统被配置为:
接收所述数据分组的分组流;
在流表中执行查找以确定所述分组流是合理的;以及
将所述分组流映射到所述可编程处理核中的所述一个可编程处理核,以用于对所述分组流的所述数据分组的序列化处理。


8.根据权利要求7所述的DPU集成电路,其中所述分组流包括以下各项中的一个:联网分组流、存储分组流、安全分组流、和分析分组流。


9.根据权利要求1所述的DPU集成电路,还包括:在电路装置中实现的多个工作单元队列,其中所述工作单元队列中的至少一个工作单元队列与所述可编程处理核中的所述一个可编程处理核相关联并且被配置为存储多个工作单元,所述多个工作单元被排队以用于在所述可编程处理核中的所述一个可编程处理核上处理。


10.根据权利要求9所述的DPU集成电路,还包括:在电路装置中被实现的队列管理器,所述队列管理器被配置为:
接收所述工作单元,所述工作单元指定所述软件功能和用于执行所述软件功能的所述可编程处理核中的所述一个可编程处理核;
将所述工作单元排队到与所述可编程处理核中的所述一个可编程处理核相关联的所述工作单元队列中的所述一个工作单元队列;
将所述工作单元从所述工作单元队列中的所述一个工作单元队列出队列到所述可编程处理核中的所述一个可编程处理核;以及
在所述可编程处理核中的所述一个可编程处理核上调用由所述工作单元指定的所述软件功能,以用于处理所述工作单元。


11.根据权利要求10所述的DPU集成电路,其中为了处理所述工作单元,所述可编程处理核中的所述一个可编程处理核被配置为:
从所述工作单元队列中的所述一个工作单元队列接收所述工作单元;
从所述可编程处理核中的所述一个可编程处理核的高速缓存存储器中取得与所述工作单元相关联的所述流数据单元;
执行由所述工作单元指定的所述软件功能,以处理所述流数据单元;以及
将处理所述工作单元的结果输出到所述工作单元队列,其中所述结果包括一个或者多个新的工作单...

【专利技术属性】
技术研发人员:P·辛德胡JM·弗雷隆W·诺雷丁F·A·马蒂D·戈埃尔R·戈亚尔B·塞莱特
申请(专利权)人:芬基波尔有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1