CN110915173A - 用于计算节点和存储节点的数据处理单元 - Google Patents
用于计算节点和存储节点的数据处理单元 Download PDFInfo
- Publication number
- CN110915173A CN110915173A CN201880046048.2A CN201880046048A CN110915173A CN 110915173 A CN110915173 A CN 110915173A CN 201880046048 A CN201880046048 A CN 201880046048A CN 110915173 A CN110915173 A CN 110915173A
- Authority
- CN
- China
- Prior art keywords
- data
- network
- processing
- processing unit
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5619—Network Node Interface, e.g. tandem connections, transit switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
描述了一种新的处理架构,其中在计算设备内利用数据处理单元(DPU)。与围绕中央处理单元(CPU)为中心的常规计算模型不同,本文描述的示例实现利用DPU,该DPU被专门设计和优化用于以数据为中心的计算模型,在该计算模型中,围绕数据处理任务为中心,并且数据处理任务是DPU的主要责任。例如,诸如联网、安全性和存储以及相关的工作加速、分布和调度之类的各种数据处理任务以及其他这样的任务是DPU的领域。DPU可以被视为高度可编程的高性能输入/输出(I/O)和数据处理集线器,其被设计为对来自和去往多个其他组件和/或设备的网络和存储I/O进行聚合和处理。这释放了CPU(如果有的话)的资源以进行计算密集的任务。
Description
本申请要求2017年7月10日提交的美国临时申请号62/530,691和2017年9月15日提交的美国临时申请号62/559,021的权益,其全部内容通过引用并入本文。
技术领域
本公开涉及例如在联网和存储领域中用于处理信息的分组的设备。
背景技术
常规计算设备通常包括诸如中央处理单元(CPU)、图形处理单元(GPU)、随机存取存储器、存储装置以及诸如以太网接口之类将计算设备连接到网络的网络接口卡(NIC)之类的组件。典型的计算设备以处理器为中心,使得整体计算责任和控制与CPU集中在一起。这样,CPU执行处理任务;存储器管理任务,诸如在CPU内的本地高速缓存、随机存取存储器和存储装置之间转移数据;以及联网任务,诸如构建和维护联网堆栈以及从外部设备或网络发送和接收数据。此外,CPU的任务还有处置例如来自用户接口设备的中断。被放置在CPU上的需求随着时间的推移持续增加,但是新CPU开发中的性能改进随着时间的推移而降低。
通用CPU一般不被设计用于通常被分组化的高容量网络和存储工作负载。通常,CPU在执行分组流处理方面相对较差,因为这样的业务在时间上被分片并且不能很好地进行高速缓存。但是,服务器设备通常使用CPU来处理分组流。
作为一个示例,以x86架构为模型的CPU在各个领域都遇到了效率低下的问题,包括与硬件的接口(例如,中断、完成、门铃和其他PCI-e通信开销)、软件分层(例如,内核到用户切换成本)、锁定和同步(例如,在各个处理步骤处的状态保护和访问序列化的开销)、缓冲器管理(例如,分配和释放存储器和元数据的CPU和存储器上的负载,以及管理和处理缓冲器列表)、分组处理(例如,中断、线程调度,管理硬件队列和维护链接列表的成本)、协议处理(例如,访问控制列表(ACL)、流查找、报头解析、状态检查、以及对于传输协议的操纵)、存储器系统(例如,数据副本、存储器和CPU带宽消耗)和高速缓存效果(例如,由于不可高速缓存的数据量导致的高速缓存污染)。
发明内容
总体上,本公开描述了一种利用数据处理单元(DPU)的新处理架构。与围绕中央处理单元(CPU)为中心的常规计算模型不同,本文描述的示例实现利用DPU,该DPU被专门设计和优化用于以数据为中心的计算模型,在该计算模型中,围绕数据处理任务为中心,并且数据处理任务是DPU的主要责任。DPU可以被视为高度可编程的高性能输入/输出(I/O)和数据处理集线器,其被设计为对来自和去往多个其他组件和/或设备的网络和存储装置(例如,固态驱动(SSD))I/O进行聚合和处理。这释放了CPU(如果有的话)的资源以进行计算密集的任务。
例如,各种数据处理任务,诸如联网、安全性和存储、以及相关的工作加速、分布和调度以及其他这样的任务,都是DPU的领域。在一些情况下,应用处理器(例如,托管DPU的计算节点的分离的处理设备、服务器、存储设备或甚至是本地CPU和/或本地图形处理单元(GPU))可以与DPU进行编程性地接口,以根据需要来配置DPU并且卸载任何数据处理密集的任务。以这种方式,应用处理器可以减少其处理负载,使得应用处理器可以执行应用处理器非常适合的那些计算任务,并且将应用处理器可能不太适合的专注于数据的任务(诸如联网、存储等)卸载到DPU。
如本文所述,DPU可以被优化为执行输入和输出(I/O)任务,诸如去往和来自存储设备(诸如固态驱动)的数据的存储和取回、联网等。例如,DPU可以被配置为执行相对于被处理的指令数目的、大数目的数据I/O处理任务。作为各种示例,DPU可以被提供为安装在计算节点(例如,计算设备或计算器件)的母板上或存储节点上的集成电路,该存储节点诸如经由高速外围组件互连(PCI-e)总线等而安装在连接到母板的卡上。另外,存储设备(诸如SSD)可以经由例如PCI-e总线(例如,在单独的卡上)耦合到DPU并由DPU管理。DPU可以支持诸如以太网端口之类的一个或多个高速网络接口,而无需单独的网络接口卡(NIC),并且可以包括专用于网络业务的可编程硬件。
DPU可以是高度可编程的,使得DPU可以暴露用于选择和可编程地配置数据处理操作的硬件原语,从而允许CPU将各种数据处理任务卸载到DPU。DPU也可以针对这些处理任务而被优化。例如,DPU可以包括高性能数据处理任务的硬件实现,诸如密码术、压缩(包括解压缩)、正则表达式处理、查找引擎等。
在一些情况下,数据处理单元可以包括以电路装置实现的相干高速缓存存储器,以电路装置实现的非相干缓冲存储器以及以电路装置实现的多个处理核,每个处理核都连接到相干高速缓存存储器和非相干性缓冲存储器。在其他情况下,数据处理单元可以包括两个或更多个处理集群,每个处理集群包括以电路装置实现的相干高速缓存存储器,以电路装置实现的非相干缓冲存储器以及以电路装置实现的多个处理核,每个处理核都连接到相干高速缓存存储器和非相干缓冲存储器。在任一情况下,每个处理核都可以是使用高级别编程语言(例如,C、C++等)而可编程的。
在一个示例中,本公开涉及一种设备,该设备包括一个或多个存储设备以及通信地耦合到该存储设备的数据处理单元。数据处理单元包括:联网单元,被配置为控制在数据处理单元和网络之间的数据的输入和输出;多个可编程处理核,被配置为对数据执行处理任务;以及一个或多个主机单元,被配置为以下中的至少一项:控制在数据处理单元和一个或多个应用处理器之间的数据的输入和输出、或控制与存储设备的数据的存储。
在另一示例中,本公开涉及一种系统,该系统包括容纳多个设备的机架,多个设备各自包括:一个或多个存储设备以及通信地耦合到该存储设备的至少一个数据处理单元。数据处理单元包括:联网单元,被配置为控制在数据处理单元和网络之间的数据的输入和输出;多个可编程处理核,被配置为对数据执行处理任务;以及一个或多个主机单元,被配置为以下中的至少一项:控制在数据处理单元和一个或多个应用处理器之间的数据的输入和输出、或控制与存储设备的数据的存储。
一个或多个示例的细节在附图和以下描述中被阐述。根据说明书和附图以及根据权利要求书,其他特征、目的和优点将显而易见。
附图说明
图1A-图1D是图示包括根据本公开的技术被配置的数据处理单元的节点的各种示例实现的框图。
图2是图示根据本公开的技术的示例数据处理单元的框图。
图3是图示根据本公开的技术的包括两个或更多个处理集群的另一示例数据处理单元的框图。
图4是图示包括多个可编程处理核的示例处理集群的框图。
图5是图示示例可编程处理核的框图。
具体实施方式
图1A-图1D是图示包括根据本公开的技术来配置的数据处理单元的节点的示例实现的框图。特别地,图1A是图示具有数据中心10的示例系统8的框图,数据中心10包括各种节点的机架,诸如计算节点(例如,计算设备或计算器件)和存储节点,其中一个或多个节点包括根据本公开的技术来配置的数据处理单元。通常,数据中心10为通过网络7和网关设备16耦合到数据中心10的客户11提供用于应用和服务的操作环境。在一些示例中,网络7可以是内容/服务提供方网络。在其他示例中,网络7可以是数据中心广域网(DC WAN)、专用网络或其他类型的网络。数据中心10可以例如是主机基础设施装备,诸如计算节点、联网和存储系统、冗余电源和环境控制。网络7可以耦合到由其他提供方管理的一个或多个网络,并且因此可以形成例如互联网的大规模公共网络基础设施的一部分。
在一些示例中,数据中心10可以表示许多地理上分布的网络数据中心之一。在图1A的示例中,数据中心10是为客户11提供信息服务的设施。客户11可以是诸如企业和政府之类的集体实体或个体。例如,网络数据中心可以为若干企业和最终用户托管web服务。其他示例性服务可以包括数据存储、虚拟专用网、文件存储服务、数据挖掘服务、科学或超级计算服务等等。
本公开描述了一种新的处理架构,其中在一个或多个节点内利用数据处理单元(DPU)。与围绕中央处理单元(CPU)为中心的常规计算模型不同,本文描述的示例实现利用DPU,DPU被专门设计和优化用于以数据为中心的计算模型,在该计算模型中,围绕数据处理任务为中心,并且数据处理任务是DPU的主要责任。DPU可以被视为高度可编程的高性能输入/输出(I/O)和数据处理集线器,其被设计为聚合和处理来自和去往多个其他组件和/或设备的网络和存储装置(例如固态驱动(SSD))I/O。
在图1A的图示示例中,数据中心10包括托管各种类型的设备的多个机架,其提供用于托管云服务的操作环境。在该示例中,数据中心10包括中央处理单元(CPU)机架20、图形处理单元(GPU)机架22、数据处理单元(DPU)机架24和固态驱动(SSD)存储设备机架26。尽管在图1中仅图示了每种类型的一个机架,但是应该理解,在其他示例中,数据中心10可以包括每种类型的机架集合,例如两个或更多个每种类型的机架。
根据本公开中描述的技术,CPU机架20、GPU机架22和/或DPU机架24中容纳的设备中的一个或多个可以包括DPU。例如,这些DPU可以负责各种数据处理任务,诸如联网、安全性和存储、以及相关的工作加速、分布和调度以及其他这样的任务。在一些情况下,DPU可以与应用处理器结合使用,以卸载任何数据处理密集的任务,并且释放应用处理器以用于计算密集的任务。在其他情况下,在控制平面任务与数据处理密集的任务相比相对较小的情况下,DPU可以代替应用处理器。
例如,如下面进一步解释的,CPU机架20托管多个CPU刀片21或其他计算节点,其被设计用于提供高速执行环境。也就是说,每个CPU刀片可以包含为提供高性能应用执行而专门定制的多个多核处理器。类似地,GPU机架22可以托管多个GPU刀片23或其他计算节点,其被设计为在CPU或DPU的引导下操作,以用于执行更适合于GPU的复杂数学和图形操作。SSD机架26可以托管多个SSD刀片27或其他存储节点,其包含被设计用于数据的存储和取回的永久性存储设备。
通常,根据本文所描述的技术,数据中心10内的各种计算节点,诸如CPU刀片21、GPU刀片23和DPU刀片25中的任何一个,可以包括DPU以在数据中心10内执行以数据为中心的任务。另外,数据中心10内的各种存储节点,诸如SSD刀片27中的任何一个,可以与CPU刀片21、GPU刀片23或DPU刀片25内的DPU进行交互,以存储由DPU执行的以数据为中心的任务的数据。如本文所述,DPU被优化为执行输入和输出(I/O)任务,诸如将数据存储到存储设备(诸如SSD)和将数据从存储设备(诸如SSD)取回以及联网等等。例如,DPU可以被配置为执行相对于被处理的指令的数目的、大数目的数据I/O处理任务。DPU可以支持诸如以太网端口之类的一个或多个高速网络接口,而无需单独的网络接口卡(NIC),并且可以包括专用于网络业务的可编程硬件。DPU可以是高度可编程的,使得DPU可以暴露用于对数据处理操作进行选择和编程地配置的硬件原语。DPU也可以被优化用于这些处理任务。例如,DPU可以包括高性能数据处理任务的硬件实现,诸如密码术、压缩(和解压缩)、正则表达式处理、查找引擎等。
在图1A中所示的示例中,机架20、22、24和26的集合经由以太网链路连接到高速交换构造14。每个机架容纳多个设备,多个设备可以经由高速外围组件互连(PCI-e)链路和/或以太网链路在它们各自的机架内互连。另外,不同机架20、22、24和26中包括的设备可以经由PCI-e链路和/或以太网链路互连。在一些示例中,机架20、22、24和26中的每个可以是物理装备机架,该物理装备机架具有在其中容纳设备的四十个机架单元(例如,槽)。在其他示例中,机架20、22、24和26中的每个可以是逻辑机架或具有二十个机架单元的半物理机架。每个设备可以被实现为单机架或多机架单元(RU)设备。
不同机架20、22、24或26中的设备中的一个或多个可以被配置为作为数据中心10的存储系统和应用服务器来操作。例如,CPU机架20容纳多个CPU刀片(“CPU A-N”)21,其每个都包括至少一个CPU。CPU刀片21中的一个或多个可以包括CPU、DPU以及经由PCI-e链路或总线通信地耦合的一个或多个存储设备,例如SSD。在该实现中,DPU被配置为代表CPU从存储设备取回数据,代表CPU将数据存储到存储设备,以及代表CPU从网络7取回数据。CPU刀片21中的一个或多个还可以包括通信地耦合到至少该DPU的GPU。在这种情况下,DPU还被配置为将卸载的处理任务(例如,图形密集的处理任务或可能受益于图形处理单元的高度并行处理性质的其他任务)发送给GPU。下面关于图1B的计算节点100A更详细地描述CPU刀片21之一的示例实现。
在一些示例中,CPU刀片21中的至少一些可以不包括其自己的DPU,而是通信地耦合到CPU刀片21中的另一个上的DPU。换言之,一个DPU可以被配置为控制在不同的CPU刀片21上的两个或更多CPU的I/O和其他数据处理任务。在其他示例中,CPU刀片21中的至少一些可以不包括其自己的DPU,而是通信地耦合到容纳在DPU机架24中的DPU刀片25之一上的DPU。以这种方式,DPU可以被视为用于构建和扩展诸如数据中心10之类的数据中心的构建块。
作为另一示例,GPU机架22容纳多个GPU刀片(“GPU A-M”)23,每个GPU刀片包括至少一个GPU。GPU刀片23中的一个或多个可以包括GPU、DPU和经由PCI-e链路或总线通信地耦合的一个或多个存储设备,例如SSD。在该实现中,DPU被配置为控制与网络7的数据的输入和输出,将数据从网络7或存储设备中的至少一个馈送至GPU以进行处理,以及控制与存储设备的数据的存储。以下关于图1C的计算节点100B更详细地描述GPU刀片23之一的示例实现。
在一些示例中,GPU刀片23中的至少一些可以不包括它们自己的DPU,而是通信地耦合到GPU刀片23中的另一GPU刀片上的DPU。换言之,一个DPU可以被配置为控制用以将数据馈送到GPU刀片23中的不同的一个GPU刀片上的两个或更多个GPU的I/O任务。在其他示例中,GPU刀片23中的至少一些可以不包括它们自己的DPU,而是通信地耦合到容纳在DPU机架24中的DPU刀片25之一上的DPU。
作为又一示例,DPU机架24容纳多个DPU刀片(“DPU A-X”)25,每个DPU刀片包括至少一个DPU。DPU刀片25中的一个或多个可以包括DPU和经由PCI-e链接或总线通信地耦合的一个或多个存储设备,例如SSD,使得DPU刀片25可以备选地被称为“存储刀片”。在该实现中,DPU被配置为控制与网络7的数据的输入和输出,对数据执行可编程处理任务,以及控制与存储设备的数据的存储。下面关于图1D的计算节点101更详细地描述DPU刀片25之一的示例实现。
如图1A中所图示,数据中心10还可以包括至少一个分离的独立的SSD机架26,该SSD机架26容纳多个SSD刀片(“SSD A-Z”)27,每个SSD刀片包括至少一个SSD设备。SSD刀片27中的大多数不包括它们自己的处理器,例如,在SSD刀片27中的大多数上不包括CPU或DPU。相反,在一个示例中,SSD刀片27之一可以包括通信地耦合到多个其他SSD刀片27中的每个的一个或多个DPU。在其他示例中,SSD机架26可以包括DPU刀片,该DPU刀片包括通信地耦合到多个SSD刀片27中的每个的一个或多个DPU,或者容纳在DPU机架24中的DPU刀片25上的一个或多个DPU可以通信地耦合到容纳在SSD机架26中的多个SSD刀片27。在任何实现中,DPU被配置为控制与网络7的数据的输入和输出,对数据执行可编程处理任务,并控制与SSD刀片27上的SSD的数据的存储。以这种方式,存储装置的可缩放性不与数据中心10中的处理的可缩放性绑在一起。尽管在图1A中被图示为仅包括SSD作为用于数据中心10的存储设备,但是在其他示例中,数据中心10可以包括一个或多个机架,其容纳硬盘驱动(HD)存储设备或SSD和HD存储设备的组合。
通常,DPU可以被包括在CPU刀片21、GPU刀片23、DPU刀片25和/或SSD刀片27中的任何一个上或与之通信地耦合,以针对与客户11相关联的应用和数据提供计算服务和存储设施。以这种方式,DPU可以被视为用于构建和扩展诸如数据中心10之类的数据中心的构建块。
在图1A的图示示例中,机架20、22、24和26中的每个都可以包括机架顶(TOR)设备,通过该TOR设备,容纳在物理机架中的每个刀片可以经由以太网链路连接到交换构造14。在其他示例中,一个或多个物理机架可以不包括TOR设备,而是可以直接连接到交换构造14或经由本身未被容纳在物理机架中的另一设备而连接到交换构造14。例如,DPU机架24可以不包括所图示的TOR设备,而是DPU刀片25中的每个DPU都可以支持网络接口,通过该网络接口,经由以太网链路直接连接到交换构造14。
机架20、22、24和26内的DPU或包含至少一个DPU的任何设备也可以被称为接入节点。换言之,术语DPU在本文中可以与术语接入节点互换使用。作为接入节点,DPU可以利用交换构造14来提供完全网状(任何到任何)互连性,使得机架20、22、24、26中的任何设备都可以使用数据中心10内的多个并行数据路径中的任何一个来将针对给定分组流的分组数据传送到任何其他设备。例如,DPU可以被配置为:针对跨数据中心交换构造14中的多个并行数据路径中的一些或所有以及DPU之间的分组流来喷射个体分组,以及对分组进行重新排序以递送到目的地,以提供完全网状连接性。
虽然在图1中关于数据中心10的交换构造14描述了机架20、22、24和26,但是在其他示例中,机架20、22、24、26内的设备的DPU可以提供在任何分组交换网络上的完全网状互连性。例如,分组交换网络可以包括局域网(LAN)、广域网(WAN)或一个或多个网络集。分组交换网络可以具有任何拓扑,例如平坦的或多层级的,只要DPU之间存在完全的连接性。分组交换网络可以使用任何技术,包括以太网上的IP以及其他技术。不管分组交换网络的类型如何,DPU都可以针对跨分组交换网络中的多个并行数据路径以及DPU之间的分组流喷射个体分组,以及对分组进行重新排序以递送到目的地,以提供完全网状连接性。
各种示例接入节点的附加示例细节在2017年9月15日提交的名称为“Access Nodefor Data Centers”的美国临时专利申请号62/559,021(律师案卷号1242-005USP1)中被描述,其全部内容通过引用并入本文。关于数据中心网络架构和互连的接入节点的更多细节在2018年3月28日提交的名称为“Non-Blocking Any-to-Any Data Center Network withPacket Spraying Over Multiple Alternate Data Paths”的美国专利申请号15/939,227(律师案卷号1242-002US01)中可获得,其全部内容通过引用并入本文。
被称为构造控制协议(FCP)的新数据传输协议可以由机架20、22、24、26内的设备的任何DPU的不同操作联网组件所使用,以有助于跨交换构造14的数据的通信。FCP是一种端到端许可控制协议,其中,在一个示例中,发送方有意地向接收方显式地请求传递一定数目字节的有效负载数据。作为响应,接收器基于其缓冲器资源、QoS和/或构造拥塞的度量来发出授权。通常,FCP支持将流的分组喷射到源节点和目的地节点之间的所有路径,并且可以提供针对以下的弹性:请求/授权分组丢失、自适应和低延时构造实现、故障恢复、减少的或最小的协议开销成本、对未经请求的分组传递的支持、对具有/不具有FCP功能的节点共存的支持、流感知的公平带宽分布,通过自适应请求窗口缩放来传送缓冲器管理,接收基于缓冲器占用的授权管理、改进的端到端QoS、通过加密和端到端身份验证的安全性和/或改进的ECN标记支持。有关FCP的更多细节在2017年9月29日提交的名称为“Fabric ControlProtocol for Data Center Networks with Packet Spraying Over MultipleAlternate Data Paths”的美国临时专利申请号62/566,060(律师案卷号1242-003USP1)中可获得,其全部内容通过引用并入本文。
在图1A的示例中,软件定义的联网(SDN)控制器18提供用于配置和管理数据中心10的路由和交换基础设施的高级别控制器。SDN控制器18提供逻辑上且在一些情况下物理上集中的控制器,以有助于根据本公开的一个或多个实施例的数据中心10内的一个或多个虚拟网络的操作。在一些示例中,SDN控制器18可以响应于从网络管理员接收的配置输入而操作。
在一些示例中,SDN控制器18操作以配置机架20、22、24、26内的设备的DPU,以在逻辑上建立一个或多个虚拟构造,作为在由交换构造14提供的物理底层网络之上被动态配置的覆盖网络。例如,SDN控制器18可以学习和维护DPU的知识,并且建立与每个DPU的通信控制信道。SDN控制器18使用其对DPU的知识来定义两个或更多个DPU的多个集合(组),以在交换构造14上建立不同的虚拟构造。更具体地,SDN控制器18可以使用通信控制信道来通知针对给定集合的每个DPU:哪些其他DPU被包括在相同集合中。作为响应,DPU与包括在相同集合中的其他DPU动态地建立FCP隧道,作为交换构造14上的虚拟构造。以这种方式,SDN控制器18针对每个虚拟构造定义DPU的集合,并且DPU负责建立虚拟构造。这样,交换构造14的底层组件可以不知晓虚拟构造。在这些示例中,DPU与交换构造14交互并利用交换构造14,以在任何给定虚拟构造的DPU之间提供完全网状(任何到任何)互连性。以这种方式,连接到形成虚拟构造中的给定的一个虚拟构造的任何DPU的、机架20、22、24、26内的设备可以将针对给定分组流的分组数据传送给使用交换构造14内的多个并行数据路径中的任一个而耦合到该虚拟构造的DPU的、机架20、22、24、26内的任何其他设备,多个并行数据路径互连该虚拟构造的DPU。操作以在虚拟覆盖网络内和跨虚拟覆盖网络来喷射分组的DPU或接入节点的更多细节在2018年3月5日提交的名称为“Network Access Node Virtual FabricsConfigured Dynamically over an Underlay Network”的美国临时专利申请号62/638,788(律师案卷号1242-036USP1)中可获得,其全部内容通过引用并入本文。
尽管未示出,但是数据中心10还可以包括例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙、入侵检测和/或入侵防御设备之类的安全设备、服务器、计算机终端、笔记本电脑、打印机、数据库、诸如蜂窝电话或个人数字助理之类的无线移动设备、无线接入点、桥接器、电缆调制解调器、应用加速器或其他网络设备。
图1B是图示示例计算节点100A(例如,计算设备或计算器件)的框图,该示例计算节点100A包括根据本公开的技术被配置的并且通信地耦合到中央处理单元104的数据处理单元102A。如图1B中所图示,计算节点100A体现为新的以数据为中心的处理架构,其中,数据处理任务和资源以数据处理单元(DPU)102A为中心并且由其负责,而不是像常规架构一样以中央处理单元为中心并且由其负责。计算节点100A可以表示工作站计算机、服务器设备等。计算节点100A可以表示形成数据中心的多个服务器设备中的服务器设备。例如,计算节点100A可以包括至少一个CPU、至少一个DPU、至少一个GPU和至少一个存储设备,例如SSD。作为另一示例,关于图1A,计算节点100A可以表示图1A的CPU刀片21中的至少一个、或者通信地耦合在一起的CPU刀片21中的至少一个、GPU刀片23中的至少一个以及DPU刀片25中的至少一个的组合。
在图1B的示例中,计算节点100A包括数据处理单元(DPU)102A、中央处理单元(CPU)104、图形处理单元(GPU)106、动态随机存取存储器(DRAM)108、110、112和存储设备114,诸如SSD、闪存驱动、磁盘驱动等。在该示例中,DPU 102A经由高速外围组件互连(PCI-e)总线118耦合到CPU 104、GPU 106、DRAM 108和存储设备114。DPU 102A还充当用于计算节点100A到可以表示互联网的网络120A的网络接口。网络120A可以基本上类似于来自图1A的网络7。在该示例中,DPU 102A耦合到设备(例如,网络120A的提供方边缘路由器,未示出)以经由以太网链路116来访问网络120A。以这种方式,DPU 102A被定位在CPU 104、存储设备114和GPU 106之间并且通信地耦合到CPU 104、存储设备114和GPU 106。尽管仅示出了一个存储设备114,但是应当理解,多个这样的存储设备可以被包括在计算节点100A内或耦合到计算节点100A(并且DPU 102A可以例如经由PCI-e总线耦合到每个存储设备)。
可以根据本公开的各种技术来配置DPU 102A。通常,DPU 102A是高性能输入/输出(I/O)集线器,其被设计为聚合和处理去往和来自多个其他组件和/或设备的网络和存储装置(例如,SSD)I/O。例如,DPU 102A可以被配置为执行相对于被处理的指令的数目的、大数目的数据I/O处理任务。换言之,由DPU 102A处理的I/O任务与由DPU 102A执行的指令数目的比率很高,使得DPU 102A包括非常I/O密集的处理器。
在图1B的示例中,DPU 102A提供网络120A、存储设备114、GPU 106和CPU 104之间的访问。在其他示例中,诸如在下面更详细讨论的图2和图3中,诸如DPU 102A的DPU可以对去往多个服务器设备的网络和SSD I/O进行聚合和处理。以这种方式,DPU 102A被配置为代表CPU 104从存储设备114取回数据,代表CPU 104将数据存储到存储设备114,并且代表CPU104从网络120A取回数据。此外,DPU 102A还被配置为将卸载的处理任务(例如,图形密集的处理任务或可能受益于图形处理单元的高度并行处理性质的其他任务)发送给GPU 106,以从GPU 106接收针对卸载的处理任务的输出,以及以将针对卸载的处理任务的输出提供给CPU 104。
如本文中进一步描述的,在各种示例中,DPU 102A是具有多个处理核的高度可编程的I/O处理器(如下面例如关于图2所讨论的)。在一些示例中,DPU 102A的多个处理核可以被布置在多个处理集群内(如下文例如关于图3所讨论的),每个处理集群配备有允许CPU104卸载各种进程的硬件引擎,诸如密码函数、压缩和正则表达式(RegEx)处理。这允许DPU 102A完全处理网络和存储堆栈,并且充当安全性网关,从而释放CPU 104来处理应用工作负载。
作为网络接口子系统,DPU 102A可以针对计算节点100A实现具有最小/零复制和存储加速的完全卸载。因此,DPU 102A可以在各种组件和设备(例如,CPU 104、存储设备114、GPU 106和网络120A的网络设备)之间形成连结。例如,DPU 102A可以支持网络接口经由以太网链路116直接连接到网络120A,而无需如常规架构中的CPU和网络之间所需要的单独网络接口卡(NIC)。
通常,在CPU 104上可执行的软件程序可以执行指令以将与该软件程序相关联的一些或所有数据密集的处理任务卸载到DPU 102A。如上文所指出的,DPU 102A包括可以被编程(即,可以执行软件代码)的处理核,以及被专门配置为实现各种数据密集的操作的特定硬件单元,诸如对数据集合的压缩、密码函数、正则表达式处理和应用。
DPU 102A的每个处理核可以是使用高级别编程语言(例如C、C++等)而可编程的。通常,由DPU 102A提供的过程的各种硬件实现可以与高级别编程语言中的软件库相关联,高级别编程语言可以被利用来构建由CPU 104执行的软件应用,该软件应用通过接口来引发和利用DPU 102A的功能性。因此,程序员可以用编程语言来编写软件程序,并且使用与DPU 102A的各种过程的硬件实现相关联的功能或过程调用来执行这些功能,并且当CPU104执行软件程序时,CPU 104将这些功能/过程的执行卸载到DPU 102A。
附加地或备选地,CPU 104可以将其他软件过程或功能卸载到DPU 102A,以由DPU102A的处理核来执行。此外,CPU 104可以经由DPU 102A将软件过程或功能卸载到GPU 106(例如,计算机图形处理)。以这种方式,DPU 102A表示动态可编程的处理单元,其可以执行软件指令,并且提供用于数据处理任务的各种过程或功能的硬件实现,这可以改善这些过程或功能的执行。
图1C是图示示例计算节点100B(例如,计算设备或计算器件)的框图,该示例计算节点100B包括根据本公开的技术被配置的并且通信地耦合到图形处理单元106的数据处理单元102B。计算节点100B体现为新的以数据为中心的处理架构,其中DPU 102B而不是中央处理单元负责控制任务和I/O处理任务,以有助于由GPU 106进行的数据处理。计算节点100B可以表示工作站计算机、服务器设备等。计算节点100B可以表示形成数据中心的多个服务器设备中的服务器设备。例如,计算节点100B可以包括至少一个DPU、至少一个GPU和至少一个存储设备,例如SSD。作为另一示例,关于图1A,计算节点100B可以表示GPU刀片23中的至少一个、或通信地耦合在一起的GPU刀片23中的至少一个以及DPU刀片25中的至少一个的组合。
在图1C的示例中,计算节点100B包括DPU 102B、GPU 106、DRAM 108、112和存储设备114,诸如SSD、闪存驱动、磁盘驱动等。在该示例中,DPU 102B经由PCI-e总线118耦合到GPU 106、DRAM 108和存储设备114。DPU 102B还充当用于计算节点100B到可以表示互联网的网络120B的网络接口。网络120B可以基本上类似于来自图1A的网络7。在该示例中,DPU102B耦合到设备(例如,网络120B的提供方边缘路由器,未示出)以经由以太网链路116访问网络120B。以这种方式,DPU 102B被定位在存储设备114和GPU 106之间并且通信地耦合到存储设备114和GPU 106。尽管仅示出了一个存储设备114,但是应当理解,多个这样的存储设备可以被包括在计算节点100B内或耦合到计算节点100B(并且DPU 102B可以例如经由PCI-e总线耦合到每个存储设备)。
可以根据本公开的各种技术来配置DPU 102B。DPU 102B可以基本上类似于以上关于图1B描述的DPU 102A来操作。通常,DPU 102B是高性能I/O集线器,其被设计为对去往和来自多个其他组件和/或设备的网络和存储装置(例如,SSD)I/O进行聚合和处理。DPU 102B是具有多个处理核和特定硬件单元的高度可编程I/O处理器,其可以被布置在多个处理集群内(如下文例如关于图2和图3所讨论的),该特定硬件单元被专门配置为实现各种数据密集的操作。DPU 102B还是网络接口子系统,其可以在各种组件和例如存储设备114、GPU 106和网络120B的网络设备的设备之间形成连结。
在图1C的示例中,DPU 102B提供网络120B、存储设备114和GPU 106之间的访问。在其他示例中,诸如在下面更详细讨论的图2和图3中,诸如DPU 102B的DPU可以对去往多个服务器设备的网络和SSD I/O进行聚合并处理。DPU 102B可以作为计算节点100B的控制平面(例如,本质上是中央处理单元)来操作,以有助于由GPU 106进行的数据处理。以这种方式,DPU 102B被配置为控制与网络120B的数据的输入和输出。此外,DPU 102B还被配置为:将数据从网络120B或存储设备114中的至少一个馈送到GPU 106以进行处理(例如,图形密集的处理或可能受益于图形处理单元的高度并行处理性质的其他处理任务),以及从GPU 106接收处理的输出。DPU 102B还被配置为控制与存储设备114的、从网络120B接收和/或由DPU120B或GPU 106处理的数据的存储。
作为示例,在人工智能(AI)处理的情况下,控制平面功能包括执行控制任务以指令GPU执行某些类型的计算密集的处理,以及执行I/O任务以将大量数据馈送给GPU以进行处理。通常,对于有助于AI处理,控制GPU和存储设备之间的数据移动的I/O处理任务比相对较小的控制任务更重要。因此,在AI处理的示例中,使用DPU 102B代替CPU是有意义的。在图1C的示例中,DPU 102B指令GPU 106对来自网络120B或存储设备114的数据执行矩阵/线性代数,并且向GPU 106和从GPU 106馈送数据。
图1D是图示包括数据处理单元102C的示例存储节点101的框图,该数据处理单元102C根据本公开的技术被配置并且通信地耦合到一个或多个存储设备115,诸如SSD、闪存驱动、磁盘驱动等。在该示例中,存储节点101可以表示存储器件、存储服务器或存储器控制器,并且可以耦合到存储设备115的集合、机架或集群,该存储设备115可以在存储节点101的内部或外部、或其组合。在该应用中,DPU 102C提供对从存储设备115读取和写入存储设备115的分组流的高性能处理,并且为那些分组流提供到网络120C的直接网络接口。这样,DPU 102C可以被视为网络可访问存储设备115的专用前端,其为从存储设备115读取和写入存储设备115的数据的流处理提供增强的执行环境,存储设备115来自计算节点、其他存储节点或耦合到网络120C的其他设备。
如所示,在该示例中,存储节点101可以包括至少一个DPU和至少一个存储设备,例如SSD。作为另一示例,关于图1A,存储节点101可以表示DPU刀片25中的至少一个,或者通信地耦合在一起的DPU刀片25中的至少一个与一个或多个SSD刀片27或其他存储设备的组合。
在图1D的示例中,存储节点101包括DPU 102C、DRAM 108和多个存储设备115。在该示例中,DPU 102C经由PCI-e总线118A、118B耦合到DRAM 108和存储设备115。在一些示例中,PCI-e接口118B可以由一个或多个中间组件处理以将PCI-e接口转换成其他存储协议,作为示例,诸如SAS或SATA(串行AT附接)。DPU 102C还充当用于存储节点101到可以表示互联网的网络120C的网络接口。网络120C可以基本上类似于来自图1A的网络7。在该示例中,DPU 102C可以耦合到设备(例如,网络120C的提供方边缘路由器,未示出)以经由以太网链路116访问网络120C。
可以根据本公开的各种技术来配置DPU 102C。DPU 102C可以基本上类似于图1B的DPU 102A或图1C的DPU 102B来操作。通常,DPU 102C是高性能I/O集线器,其被设计为对去往和来自多个其他组件和/或设备的网络和存储装置(例如,SSD)I/O进行聚合和处理。DPU102C是具有多个处理核和特定硬件单元的高度可编程I/O处理器,多个处理核可以被布置在多个处理集群内(如下面例如关于图2和图3所讨论的),该特定硬件单元被专为配置为实现各种数据密集的操作。DPU 102C还是网络接口子系统,其可以在各种组件和设备(例如,存储设备115和网络120C的网络设备)之间形成连结。
在图1D的示例中,DPU 102C提供网络120C和存储设备115之间的访问。在其他示例中,诸如在下面更详细地讨论的图2和图3中,诸如DPU 102C的DPU可以对去往多个服务器设备的网络和SSD I/O进行聚合和处理。DPU 102C可以作为存储节点101的控制平面(例如,本质上是中央处理单元)来操作,以有助于从存储设备115的数据存储和取回。以这种方式,DPU 102C被配置为控制与网络120C的数据的输入和输出。此外,DPU 102C还被配置为对从网络120C接收或从存储设备115取回的数据执行可编程处理任务。DPU 102C进一步被配置为控制与存储设备115的、从网络120C接收和/或由DPU 120C处理的数据的存储。在一个示例中,存储设备115可以包括整个机架的SSD刀片,每个SSD刀片包括至少一个SSD设备,例如图1A的SSD机架26。在该示例中,用以控制网络和SSD之间的数据移动的I/O处理任务比与数据存储相关联的相对较小的控制任务更重要。因此,在存储管理的示例中,使用DPU 102C代替CPU是有意义的。
图2是图示根据本公开技术的示例数据处理单元130的框图。DPU 130通常表示以数字逻辑电路装置实现的硬件芯片。DPU 130可以与图1A的机架20、22、24或26内的设备的任何DPU、图1B的DPU 102A、图1C的DPU 102B、或图1D的DPU 102C基本类似地操作。因此,DPU130可以例如经由PCI-e、以太网(有线或无线)或其他此类通信介质而通信地耦合到CPU、GPU、一个或多个网络设备、服务器设备、随机存取存储器、存储介质(例如固态驱动(SSD))、数据中心构造等。
在图2的图示示例中,DPU 130包括多个可编程处理核140A-140N(“核140”)和存储器单元134。存储器单元134可以包括两种类型的存储器或存储器设备,即相干高速缓存存储器136和非相干缓冲存储器138。在一些示例中,多个核140可以包括至少两个处理核。在一个特定示例中,多个核140可以包括六个处理核。DPU130还包括联网单元142、一个或多个主机单元146、存储器控制器144和一个或多个加速器148。如图2中所图示的,核140、联网单元142、存储器控制器144、主机单元146、加速器148和包括相干高速缓存存储器136和非相干缓冲存储器138的存储单元134中的每个彼此通信地耦合。
在该示例中,DPU 130表示高性能、超融合的网络、存储装置以及数据处理器和输入/输出集线器。核140可以包括以下中的一个或多个:MIPS(无互锁流水线级的微处理器)核、ARM(高级RISC(精简指令集计算)机器)核、PowerPC(具有增强的RISC的性能优化——性能计算)核、RISC-V(RISC五)核、或CISC(复杂指令集计算或x86)核。核140中的每个可以被编程为处理与给定数据分组有关的一个或多个事件或活动,给定数据分组诸如例如联网分组或存储分组。核140中的每个可以是使用高级别编程语言(例如C、C++等)而可编程的。
如本文所述,利用数据处理单元(DPU)的新处理架构对于流处理应用和环境可能特别有效。例如,流处理是一种非常适合于高性能和高效率处理的数据处理架构。流被定义为计算对象的有序单向序列,其可以是无界的或不确定的长度。在简单的实施例中,流起源于生产方并终止于消费方,并且按顺序被操作。在一些实施例中,流可以被定义为流片段的序列;每个流片段包括在物理地址空间中连续可寻址的存储器块、该块的偏移量和有效长度。流可以是离散的,诸如从网络接收到的分组序列;或者是连续的,诸如从存储设备读取的字节流。作为处理的结果,一种类型的流可以被变换成另一种类型的流。例如,TCP接收(Rx)处理消耗分段(片段)以产生有序的字节流。在发射(Tx)方向上执行反向处理。与流类型无关,流操纵要求高效的片段操纵,其中片段如上被定义。
在一些示例中,多个核140可以能够处理与一个或多个数据分组中的每个数据分组有关的多个事件,一个或多个数据分组由联网单元142和/或主机单元146以顺序的方式使用一个或多个“工作单元”来接收。通常,工作单元是在核140与联网单元142和/或主机单元146之间交换的数据集合,其中每个工作单元可以表示与流中的给定数据分组有关的一个或多个事件。例如,工作单元(WU)是与流状态相关联的容器,并且被用来描述(即指向)(所存储的)流内的数据。例如,工作单元可以与一个或多个数据流相关联地、动态地起源于与多处理器系统耦合的外围单元内(例如,由联网单元、主机单元或固态驱动接口注入)或者起源于处理器自身内,并且终止于系统的另一外围单元或另一处理器。工作单元与工作量相关联,工作量与执行该工作单元以处理流中的相应部分的实体有关。在一些示例中,DPU的一个或多个处理核可以被配置为使用工作单元(WU)堆栈来执行程序指令。
在一些示例中,在处理与每个数据分组有关的多个事件中,多个核140中的第一核,例如核140A,可以处理多个事件中的第一事件。此外,第一核140A可以向多个核140中的第二核,例如核140B,提供一个或多个工作单元中的第一工作单元。此外,第二核140B可以响应于从第一核140B接收到第一工作单元来处理多个事件中的第二事件。下面关于图3更详细地描述工作单元,包括它们的结构和功能性。
DPU 130可以充当交换机/路由器和多个网络接口卡的组合。例如,联网单元142可以被配置为从例如网络设备的一个或多个外部设备接收一个或多个分组以及将一个或多个分组传送到一个或多个外部设备。联网单元142可以执行网络接口卡功能性、分组交换等,并且可以使用大的转发表并提供可编程性。联网单元142可以暴露以太网端口以用于到网络的连接性,网络诸如图1A的网络7。以这种方式,DPU 130支持一个或多个高速网络接口,例如以太网端口,而无需单独的网络接口卡(NIC)。主机单元146中的每个可以支持一个或多个主机接口,例如PCI-e端口,以用于到应用处理器(例如,服务器设备的x86处理器或托管DPU 130的设备的本地CPU或GPU)或存储设备(例如,SSD)的连接性。DPU 130还可以包括一个或多个高带宽接口,以用于到片外外部存储器(图2中未图示)的连接性。加速器148中的每个可以被配置为对各种数据处理功能执行加速,诸如查找、矩阵乘法、密码术、压缩、正则表达式等。例如,加速器148可以包括查找引擎、矩阵乘法器、密码引擎、压缩引擎、正则表达式解译器等的硬件实现。下面关于图4更详细地描述不同硬件加速器的功能性。
存储器控制器144可以控制核140、联网单元142和任何数目的外部设备(例如,网络设备、服务器、外部存储设备等)对存储器单元134的访问。存储器控制器144可以被配置为执行多个操作以执行根据本公开的存储器管理。例如,存储器控制器144可以能够将访问从核140之一映射到相干高速缓存存储器136或非相干缓冲存储器138中的任一个。在一些示例中,存储器控制器144可以基于以下中的一个或多个来映射访问:地址范围、指令或指令内的操作代码、特殊访问或其组合。
在一些示例中,存储器控制器144可以能够通过执行多个操作来将虚拟地址映射到用于非相干缓冲存储器138的物理地址。例如,对于数据分组的离散流,存储器控制器144可以使用转换后备缓冲器(TLB)条目来映射到非相干缓冲存储器138。此外,对于数据分组的连续流,存储器控制器144可以使用TLB条目来映射到流处置。在其他示例中,在被核140中的第一核(例如核140A)使用之后,存储器控制器144可以能够刷新与非相干缓冲存储器138相关联的修改后的高速缓存行。此外,在刷新之后,存储器控制器144可以能够将非相干缓冲存储器138的所有权转移到核140的第二核,例如核140B。
在一些示例中,存储器控制器144可以能够通过执行多个操作来将多个分段中的高速缓存分段的所有权从第一核140A转移到第二核140B。例如,存储器控制器144可以保持到由第一核140A生成的消息上。另外,存储器控制器144可以在第一核140A使用该分段完成事件后刷新该分段。此外,存储器控制器144可以响应于以下两者而将消息提供给第二核140B:(1)对于该分段没有未完成的写入操作,以及(2)该分段当前未被刷新。
有关DPU中包括的分叉存储器系统的更多细节在2018年4月10日提交的名称为“Relay Consistent Memory Management in a Multiple Processor System”的美国专利申请号15/949,892(律师案卷号1242-008US01)中可获得,其全部内容通过引用并入本文。下面关于图3描述有关DPU的操作和优点的附加细节。
图3是图示根据本公开技术的包括两个或更多个处理集群的另一示例数据处理单元150的框图。DPU 150通常表示以数字逻辑电路装置实现的硬件芯片。DPU 150可以与图1A的机架20、22、24或26内的设备的任何DPU、图1B的DPU 102A、图1C的DPU 102B、或图1D的DPU102C基本类似地操作。因此,DPU 150可以例如经由PCI-e、以太网(有线或无线)或其他此类通信介质而通信地耦合到CPU、GPU、一个或多个网络设备、服务器设备、随机存取存储器、存储介质(例如,固态驱动(SSD))、数据中心构造等。在该示例中,DPU 150包括联网单元152、处理集群156A-1至156N-M(处理集群156)、主机单元154A-1至154B-M(主机单元154)和中央集群158,并且耦合至外部存储器170。
通常,DPU 150表示高性能、超融合的网络、存储装置以及数据处理器和输入/输出集线器。如图3中所图示的,DPU 150包括:每个都具有PCI-e接口166的主机单元154,具有以太网接口164的联网单元152,和处理集群156A-M至156N-M以及每个都具有到片外外部存储器170的接口的主机单元154A-M至154N-M。DPU 150可以包括多通道的PCI-e生成3/4 166,其被组织为组(例如x2,x4,x8或x16组),其中每个主机单元154提供一组PCI-e通道166。另外,DPU 150可以包括多个HSS以太网通道164,其可以各自为25G并且可配置为25G、50G或40/100G端口。DPU 150还可以充当到多个PCI-e根复合体的PCI-e端点,例如,多套接件服务器或多服务器机箱中的不同套接件。在这样的示例中,每个服务器可以具有两个x86处理器套接件,每个使用专用PCI-e端口而连接到DPU 150。
在该示例中,DPU 150表示高性能的可编程多处理器架构,其可以提供对现有处理器(例如,x86架构处理器)的各种问题的解决方案。如图3中所示,DPU 150包括用于处理器间通信的专用片上网络(NoC)构造。DPU 150还提供用于流处理(分组/协议处理)的优化。工作队列直接附接到DPU 150的组件内的处理核。DPU 150还提供了从运行到完成的处理,其可以消除中断、线程调度、高速缓存颠簸和相关联的成本。DPU 150在将缓冲器与指令流相关联的工作单元上操作,以消除检查开销并允许通过引用进行处理以将数据移动和复制最小化。DPU 150还根据流模型进行操作,该流模型提供具有自然同步的流线型缓冲处置,减少竞争并消除锁定。DPU 150包括非相干缓冲存储器,该非相干缓冲存储器与相干高速缓存存储器层次结构分离,并且消除高速缓存维护开销和代价,同时具有改善的存储器访问。DPU 150提供可以改善进程间和核间通信的高性能低延时的消息传递基础设施。DPU 150的专用直接存储器访问(DMA)引擎在出口点处置批量数据移动和有效负载操纵。DPU 150的硬件卸载模块减少每个分组所需的工作,实现ACL以及流查找。DPU 150的硬件分配器可以处置存储器分配和释放。
通常,工作单元是在处理集群156、联网单元152、主机单元154、中央集群158和外部存储器170之间交换的数据集合。每个工作单元可以表示固定长度(例如,32字节)数据结构,其包括动作值和一个或多个参量。在一个示例中,32字节工作单元包括四个六十四(64)位字,第一个字具有表示动作值的值,并且另外三个字各自表示一个参量。动作值可以包括:工作单元处置器标识符,其充当到工作单元功能表中的索引以分发工作单元;源标识符,其表示针对工作单元的源虚拟处理器或其他单元(例如,主机单元154、联网单元152、外部存储器170等等之一);目的地标识符,其表示要接收该工作单元的虚拟处理器或其他单元;操作码,其表示作为针对要被访问的数据的指针的字段;以及信令网络路由信息。
工作单元的参量可以是类型化的或未类型化的,并且在一些示例中,类型化的参量之一充当在各种工作单元处置器中使用的指针。类型化的参量可以包括例如帧(具有充当指向工作单元堆栈帧的指针的值)、流(具有充当指向与工作单元处置器功能相关的状态的指针的值)和分组(具有充当指向用于分组和/或块处理处置器的分组的指针的值)。
流参量可以被用作针对特定于工作单元处置器的数据的预获取位置。工作单元堆栈是一种数据结构,以帮助管理由数据处理单元150执行的操作系统的事件驱动的、运行到完成编程模型。事件驱动的模型通常意味着:原本可能被存储为函数本地变量的状态必须被存储为编程语言堆栈外部的状态。运行到完成还意味着可以分解函数以插入屈服点(yield point)。工作单元堆栈可以向DPU 150的执行模型提供熟悉的编程构建(调用/返回、调用/继续、长久的基于堆栈的变量)的便利性。
工作单元的帧指针可以具有引用连续工作单元以引发后续的工作单元处置器的值。帧指针可以简化高级别语义的实现,诸如流水线和调用/返回构建。有关数据处理单元进行的工作单元、工作单元堆栈和流处理的更多细节在2017年11月21日提交的名称为“Work Unit Stack Data Structures in Multiple Core Processor System”的美国临时专利申请号62/589,427(律师案卷号1242-009USP1)号和2018年4月10日提交的名称为“Efficient Work Unit Processing in a Multicore System”的美国专利申请号15/949,692(律师案卷号1242-014US01)中可获得,它们各自的全部内容通过引用并入本文。
针对诸如存储和联网输入/输出、安全性和网络功能虚拟化(NFV)、加速协议之类的目标用例以及作为用于某些应用(诸如存储、安全性和数据提取)的软件平台,DPU 150可以提供比x86处理器显著提高的效率。DPU 150可以提供存储聚合(例如,提供对诸如SSD之类的闪存的直接网络访问)和协议加速。DPU 150提供用于存储虚拟化和抽象的可编程平台。DPU 150还可以执行防火墙和地址转换(NAT)处理、有状态的深度分组检查、以及密码术。加速的协议可以包括TCP、UDP、TLS、IPSec(例如,加速AES变体、SHA和PKC)、RDMA和iSCSI。DPU 150还可以为数据提供服务质量(QoS)和隔离容器,并且提供LLVM二进制。
DPU 150可以支持软件,包括网络协议卸载(TCP/IP加速、RDMA和RPC);启动器和目标侧存储(块协议和文件协议);高级别(流)应用API(计算、网络和存储(区域));精细负载平衡、业务管理和QoS;网络虚拟化和网络功能虚拟化(NFV);以及防火墙、安全性、深度分组检查(DPI)和加密(IPsec、SSL/TLS)。
在一个特定示例中,DPU 150可以暴露100Gbps的以太网端口,其中的一个子集可以被用于本地消耗(终端),并且其余的可以经由以太网接口164而被切换回网络构造。对于每个主机单元154,DPU 150可以暴露x16 PCI-e接口166。DPU 150还可以向绕过本地主机处理器和总线的闪存(例如,SSD)提供低的网络延时。
在图3的示例中,处理集群156和中央集群158被布置在网格中。例如,DPU 150可以包括“M”行“N”个处理集群。在一些示例中,DPU 150可以包括2行2个处理集群,共4个处理集群156。在其他示例中,DPU 150可以包括3行3个处理集群,其包括一个中央集群158,共8个处理集群156与中央集群158被布置在3x3网格中。在其他示例中,DPU 150可以包括围绕中央集群158布置的更多处理集群。尽管在图3中被标识为不同于处理集群156,但是应当理解,中央集群158是处理集群156之一,并且在一些示例中,中央集群158可以以与处理集群156中的任何一个相同或相似的方式进行操作。
在一些示例中,中央集群158可以包括三个概念处理单元(图3中未示出):中央分发单元,其被配置为执行流控制,选择处理集群156之一以执行工作单元,以及将工作单元分发到所选择的一个处理集群156;相干性目录单元,其被配置为确定DPU 150的相干高速缓存存储器内的数据的位置;和中央同步单元,其被配置为维护DPU 150内的操作的正确定序和排序。备选地,在其他示例中,处理集群156中的任何一个都可以包括这些概念处理单元。
中央集群158也可以包括多个处理核,例如MIPS(无互锁流水线级的微处理器)核、ARM(高级RISC(精简指令集计算)机器)核、PowerPC(具有增强的RISC的性能优化——性能计算)核、RISC-V(RISC五)核或CISC(复杂指令集计算或x86)核。中央集群158可以被配置有两个或更多个处理核,每个处理核包括至少一个虚拟处理器。在一个特定示例中,中央集群158被配置有四个处理核,每个处理核包括两个虚拟处理器,并且执行控制操作系统(例如Linux核)。在这些处理器是单个核的执行的独立线程的意义上,这些虚拟处理器被称为“虚拟处理器”。但是,应该理解,虚拟处理器是以数字逻辑电路装置来实现的,即以必需的硬件处理电路装置来实现的。
可以根据使用最节能的方式来传送数据、管理元数据和执行计算的架构原理来配置DPU 150。DPU 150可以充当输入/输出(I/O)集线器,其被优化用于高效地执行短指令运行(例如,100至400个指令运行)或微任务。
DPU 150可以使用其组件通过工作管理来提供高性能微任务并行性。例如,DPU150可以在每个处理集群156处将低延时分发网络与工作队列接口耦合,以减少从工作分发到处理集群156开始执行工作的延迟。DPU 150的组件还可以根据运行到完成的工作流程进行操作,这可以消除软件中断和上下文切换。硬件原语可以进一步加速工作单元生成和递送。DPU 150还可以提供低同步,因为其组件可以根据流处理模型来操作,该流处理模型支持以低同步和处理器间通信进行直通操作。流处理模型可以进一步构造多个处理器(例如,处理集群156的处理核)对相同数据和资源的访问,避免同时共享,从而减少竞争。当工作单元被传递给线中的下一处理核时,处理器可以放弃对工作单元所引用的数据的控制。此外,DPU 150可以提供专用信令/分发网络以及高容量数据网络,并且实现紧凑工作单元表示,这可以减少通信成本和开销。
DPU 150还可以在常规架构上提供与存储器相关的增强。例如,DPU 150可以支持一种使数据移动最小化的处理模型,其尽可能地依赖于通过引用传递工作。DPU 150还可以提供用于分配和释放缓冲存储器以及用于使存储器空间虚拟化的硬件原语,从而提供基于硬件的存储器管理。通过提供用于流数据的非相干存储器系统,DPU 150可以消除否则将导致存储器的秘密刷新或无效的、相干性的不利影响,或者人为的通信和开销。DPU 150还提供高带宽数据网络,其允许不受限制地访问存储器和外围设备,使得可以通过主存储器来完成任何流数据更新,并且不需要流高速缓存到流高速缓存的传送。DPU 150可以通过高带宽接口连接到外部存储器170。
DPU 150还可以提供减少处理无效性和成本的特征。例如,DPU 150可以提供流处理库(即,对程序员可用的、与DPU 150进行接口的函数库),以在实现要由DPU 150执行的软件时被使用。即,流处理库可以提供一个或多个应用编程接口(API),以用于将处理任务引导到DPU 150。以这种方式,程序员可以编写访问DPU 150的基于硬件的处理单元的软件,使得CPU可以将某些处理任务卸载到DPU 150的基于硬件的处理单元。流处理库可以代表程序来处置消息传递,使得元数据和状态被推送到与发生处理的核相关联的高速缓存和流存储器。以这种方式,DPU 150可以减少高速缓存未命中,即,由于存储器访问而引起的停顿。DPU150还可以提供无锁操作。也就是说,可以根据消息传递模型来实现DPU 150,该消息传递模型使得状态更新能够发生而无需锁定,或者不需要通过相干性机制来维护流高速缓存。DPU150还可以根据流操作模型来实现,其支持数据单元驱动的工作分区并且提供用于确定和利用并行性的直观框架。DPU 150还包括处理诸如循环冗余校验(CRC)、密码术、压缩等密集操作的定义明确的硬件模型。
通常,DPU 150可以满足使芯片内的数据复制和数据移动最小化的目标,其中大部分工作是通过引用完成的(即,在处理器之间,例如在处理集群156之内或之间的处理核之间传递指向数据的指针)。DPU 150可以支持两个不同的存储器系统:具有两级别高速缓存层次结构的传统相干存储器系统,以及针对流处理优化的非相干缓冲存储器系统。可以在L1级别处共享和高速缓存缓冲存储器,但是相干性不由DPU 150的硬件维护。相反,可以通过与流处理模型相关联的机制,尤其是存储器更新的同步与存储器所有权转移,来实现相干性。DPU 150使用非相干存储器来存储在相干存储器系统内不能很好地被高速缓存的分组和其他数据。
在图3的示例中,DPU 150包括至少四个处理集群156,但是在其他示例中,可以使用其他数目的处理集群156。每个处理集群156可以包括两个或更多个通用处理核(例如,MIPS核、ARM核、PowerPC核、RISC-V核、或CISC或x86核)和一个或多个加速器。在一个特定示例中,DPU 150包括四个处理集群156,每个处理集群包括两个处理核,共八个核,并且每个处理集群一个加速器。在另一示例中,DPU 150包括八个处理集群156,每个处理集群包括六个处理核,共四十八个核,并且每个处理集群两个加速器。在又一示例中,DPU 150包括十五个处理集群156,每个集群包括四个处理核,共六十个核,并且每个处理集群两个加速器。
通用操作系统,诸如Linux或Unix,可以在一个或多个处理集群156上运行。在一些示例中,中央集群158的配置可以与处理集群156(其可以被称为流处理集群)不同。例如,中央集群158可以执行操作系统核(例如,Linux核)作为控制平面。处理集群156可以在运行到完成线程模式下起作用。也就是说,处理集群156可以以协作多任务的方式、在由与每个虚拟处理器相关联的工作队列馈送的紧密循环中操作。处理集群156还可以包括一个或多个硬件加速器单元,以加速联网、矩阵乘法、密码术、压缩、正则表达式解释、定时器管理、直接存储器访问(DMA)和复制等任务。
联网单元152包括使用灵活引擎(例如,解析器引擎、查找引擎和重写引擎)实现的转发流水线,并且支持IP转接交换的特征。联网单元152还可以使用处理核(例如,MIPS核、ARM核、PowerPC核、RISC-V核、或CISC或x86核)来支持控制分组和低带宽特征,诸如分组多播(例如,用于OSI层2和层3)。DPU 150可以充当交换机/路由器和多个网络接口卡的组合。联网单元152(和/或处理集群156)的处理核可以执行网络接口卡功能性、分组交换等,并且可以使用大型转发表并提供可编程性。
主机单元154、处理集群156、中央集群158、联网单元152和外部存储器170可以经由三种类型的链路通信地互连。直接链路162(在图3中用虚线表示)将中央集群158直接连接到DPU 150的每个其他组件,即主机单元154、处理集群156、联网单元152和外部存储器170,以形成与非相干存储器系统相关联的信令网络。直接链路163(在图3中用点划线表示)将中央集群158直接连接到每个处理集群156和外部存储器170,以形成与相干存储器系统相关联的相干性网络。另外,网格链路160(在图3中以实线表示)以二维网格将相邻组件(包括主机单元154、处理集群156、联网单元152和外部存储器170)彼此连接以形成数据网络。例如,主机单元154A-1经由网格链路160直接耦合到处理集群156A-1和主机单元154A-M。
以这种方式,处理集群156、主机单元154、中央集群158、联网单元152和外部存储器170使用两个或三个主要片上网络(NoC)构造互连。这些内部构造可以包括由网格链路160形成的数据网络构造,以及一个或多个控制网络构造,其包括由辐射型链路162形成的信令网络、由辐射型链路163形成的相干性网络和由辐射型链路165形成的广播网络中的一个或多个。信令网络、相干性网络和广播网络由类似地布置在星形网络拓扑中的直接链路来形成。备选地,在其他示例中,可以仅包括信令网络或相干性网络之一以及数据网络。数据网络是二维网状拓扑,其为相干存储器和缓冲存储器系统携载数据。在一个示例中,每个网格链路160在每个方向上提供512b宽的数据路径。在一个示例中,每个直接链路162和每个直接链路163提供128b宽的双向数据路径。相干性网络是一个逻辑辐射型结构,其携载高速缓存相干性事务(不包括数据)。信令网络是逻辑辐射型结构,其携载缓冲存储器请求和答复(不包括数据)、同步和其他命令、以及工作单元和通知。
DPU 150包括各种资源,即,在各种功能的执行期间消耗的有限数量的元素。示例资源包括工作单元队列大小、虚拟处理器循环、加速器循环、外部接口(例如主机单元154和联网单元152)的带宽、存储器(包括缓冲存储器、高速缓存存储器和外部存储器),瞬态缓冲器和时间。通常,每个资源都可以被转换为时间或空间(例如存储器)。此外,尽管某些资源(诸如存储器)可以被回收,但是其他资源(诸如处理循环和带宽)不能被回收。
在一些示例中,广播网络由直接链路162(或将中央集群158直接连接到其他组件(例如处理集群156、主机单元154、联网单元152和外部存储器170)的其他单独链路)形成。DPU 150内的各个组件(诸如处理集群156、主机单元154、联网单元152和外部存储器170)可以使用广播网络向中央集群158广播其对应资源的利用状态。中央集群158可以包括事件队列管理器(EQM)单元,其存储这些利用状态的副本,以在将各种工作单元指派给这些元素时使用。备选地,在其他示例中,任何处理集群156都可以包括EQM单元。
利用状态可以被表示为归一化颜色值(NCV)。虚拟处理器可以检查所需资源的NCV,以确定虚拟处理器是否可以接受工作单元。如果NCV高于用于初始工作单元的可允许阈值,则每个虚拟处理器将对应的流置于挂起状态,并且向EQM发送入队(NQ)事件。流是属于单个排序类的计算序列。每个流可以与唯一流标识符(ID)相关联,该唯一流标识符可以被用来在全局流表(GFT)中查找针对该流的条目。流条目可以链接到由该流所消耗的所有可重用资源,使得可以在需要时找到并恢复这些资源。
作为响应,EQM将事件入队到指定的事件队列中,并监测对应资源的NCV。如果NCV低于所需的出队(DQ)阈值,则EQM使来自事件队列的头部的、所计算的数目的事件出队。然后,EQM将这些出队事件转换为高优先级工作单元消息,并将这些工作单元消息发送到其指定的虚拟处理器目的地。虚拟处理器使用这些出队事件来确定流是否可以从挂起状态转换为活动状态。对于激活的流(即,被置于活动状态的那些流),虚拟处理器可以将工作单元发送到所需资源。如果NCV低于高于上面讨论的被用来做出事件NQ判定的原始阈值的阈值,则允许传送来自重新激活的工作单元。
DPU 150(更具体地,联网单元152、主机单元154、处理集群156和中央集群158)使用由直接链路162形成的信令网络来传送非相干缓冲存储器请求和答复,以及用于处理器间和接口单元通信(例如,中央集群158与联网单元152的处理器之间或处理集群156的处理器之间的通信)的工作请求和通知。DPU 150(更具体地,处理集群156和中央集群158)还使用由直接链路163形成的相干性网络来传送高速缓存相干性请求和响应。中央集群158和处理集群156的核可以在优先事项上对多个工作队列进行操作。例如,每个核可以包括一个或多个虚拟处理器,例如一到四个虚拟处理器,并且每个虚拟处理器可以在一到四个工作队列上操作。
由直接链路162形成的信令网络是非阻塞的、交换的、低延时构造,其允许DPU 150减少事件到达(例如,分组在耦合到以太网通道164的联网单元152的网络接口上的到达,工作请求在主机单元154之一处的PCI-e通道166之一上的到达,或处理集群156和/或中央集群158的处理核之间的远程过程调用(RPC)到达)与核之一的执行开始之间的延迟。“同步”是指DPU 150内的操作的适当定序和正确排序。
由直接链路162形成的相干性网络提供包括集群间高速缓存相干性的服务(例如,用于请求和/或答复业务以用于写入更新、读取未命中和刷新操作)。
中央集群158是由直接链路162形成的信令网络和由直接链路163形成的相干性网络两者上的逻辑中央反射点,其分别为在信令网络和相干性网络内发送的数据提供排序。中央集群158通常执行以下任务,诸如处置全局高速缓存目录以及处理同步和相干性事务、确保同步操作的原子性、以及(例如,使用精确时间协议(PTP),IEEE 1588)维护与外部源同步的挂钟时间(WCT)。中央集群158被配置为每秒处理数十亿个同步/相干性消息。中央集群158在需要处置聚合业务的能力时可以被细分为子单元。备选地,在其他示例中,任何处理集群156都可以执行本文所述的由中央集群158执行的任务。
如图3中所示,数据网络由网格链路160形成,并且连接处理集群156、主机单元154、中央集群158、联网单元152和外部存储器170。特别地,主机单元154A-M、处理集群156A-M、处理集群156N-M、和主机单元154B-M中的每个经由各自的网格链路160连接到外部存储器170。虽然在图3中未被示出,但是数据网络路由器被提供在数据网络构造的列和行的交叉处(例如,在主机单元154、处理集群156和中央集群158之内或与之耦合)。这些路由器可以经由512b双向数据网络链路耦合到相应的主机单元154、处理集群156和中央集群158。在图3的示例中,处理集群156A-1和156N-1被示为通信地耦合到联网单元152,但是应当理解,用于处理集群156A-1和156N-1的路由器实际上可以经由网格链路160通信地耦合到联网单元152。
DPU 150(更具体地,联网单元152、主机单元154、处理集群156和中央集群158)使用由网格链路160形成的数据网络,来将缓冲存储器块传送去往/来自处理集群156和中央集群158内的核的L1缓冲高速缓存。DPU 150还使用数据网络来传送集群级别缓冲存储器数据、片外DRAM存储器数据以及用于外部接口(例如,由主机单元154和联网单元152提供的接口)的数据。DPU 150还使用数据网络来将相干存储器线传送去往和来自接口DMA引擎、片外DRAM存储器和处理集群156的L2高速缓存。
“消息传递”可以指代用于接口单元和处理器间通信(例如,在处理集群156、中央集群158、主机单元154和联网单元152的处理核和/或处理器之间)的工作单元和通知。中央集群158可以包括中央分发单元(CDU)(未示出),其负责工作单元(WU)定序和流控制、工作单元和完成通知分发、以及负载平衡和处理器选择(例如,在处理集群156和/或中央集群158的处理核之中选择执行工作单元的处理器)。CDU可以允许关于中央集群158的其他消息对工作单元进行排序。
中央集群158的CDU还可以执行基于信用的流控制,以管理工作单元的递送。如目的地虚拟处理器允许的,CDU可以维护由CDU调度的工作单元的每个虚拟处理器输出队列加上每个外围单元队列,作为流控制方案并提供死锁避免。CDU可以为处理集群156的核的每个虚拟处理器分配固定量的存储信用,在使空间可用时返回该固定量的存储信用。工作队列可能相对较浅。CDU可以包括管理工作生产以匹配消耗率的工作调度系统(这不适用于联网单元152,并且可以经由对存储的调度请求而被执行)。处理集群156交换目的地为虚拟处理器的工作单元,虚拟处理器在本地地位于处理集群的工作单元队列系统内的处理集群156中的一个公共的处理集群内。
通常,中央集群158确保在朝向集群或外围设备的输出上看到的相同类型的消息(例如,相干性、同步或工作单元)的排序与在中央集群158的每个输入处看到的消息的排序相同。在由中央集群158从不同输入接收的多个消息之间未指定排序。备选地,在其他示例中,任何处理集群156可以包括CDU并执行本文描述的由中央集群158执行的任务。
联网单元152可以暴露以太网通道164以用于到网络的连接性,诸如图1A的网络7。在一个特定示例中,联网单元152可以暴露二十四个高速对称(HSS)以太网通道(例如,用于25Gbps)。每个主机单元154可以暴露PCI-e通道166,以用于到主机设备(例如服务器)和例如固态驱动(SSD)的数据存储设备的连接性。在一个特定示例中,每个主机单元152可以暴露多个PCI-e通道166,其可以分叉为多个独立端口。在该示例中,DPU 150可以经由每个服务器的两个处理器套接件、使用到每个套接件的至少一个PCI-e通道而连接到四个服务器,并且使用到每个SSD的至少一个PCI-e通道而连接到八个SSD。
联网单元152经由以太网通道164连接到以太网,并且接口至由网格链路160形成的数据网络和由直接链路162形成的信令网络,即数据和信令内部构造。联网单元152提供层3(即,OSI联网模型层3)交换机转发路径,以及网络接口卡(NIC)辅助。
作为NIC辅助,联网单元152可以执行各种无状态辅助过程,诸如用于互联网协议(IP)(诸如IPv4或IPv6)、传输控制协议(TCP)和/或统一数据报协议(UDP)的校验和卸载。联网单元152还可以执行用于接收侧缩放(RSS)、大型发送卸载(LSO)、大型接收卸载(LRO)、虚拟局域网(VLAN)操纵等等之类的辅助过程。在以太网介质访问控制(MAC)侧上,在一个示例中,联网单元152可以使用多个组合单元,每个组合单元具有四个25Gb HSS通道,其可以被配置为1x40/100G、2x50G或4x25/10/1G。联网单元152还可以利用多个安全性关联(SA)来支持互联网协议安全性(IPsec)。联网单元152可以包括用于根据需要对分组进行加密和解密的密码单元,以支持IPsec有效载荷的处理。
联网单元152还可以包括灵活网络分组解析单元。分组解析单元可以根据用于通用格式的专用高性能实现来配置,包括网络隧道(例如,虚拟可扩展局域网(VXLAN)、使用通用路由封装的网络虚拟化(NVGRE)、通用网络虚拟化封装(GENEVE)、多协议标签交换(MPLS)等)。联网单元152还可以包括OSI层3(L3)交换机,其允许使用联网单元152的本地存储器(未示出)进行直通以太网到以太网的交换,以及主机到主机的交换。
一个或多个硬件直接存储器访问(DMA)引擎实例(未示出)可以被附接到联网单元152的三个数据网络端口,该三个数据网络端口耦合到相应的网格链路160。联网单元152的DMA引擎被配置为获取分组数据以进行传输。分组数据可以在片上或片外缓冲存储器中(例如,在处理集群156之一的缓冲存储器内或外部存储器170内),或者在主机存储器中。
主机单元154提供到相应PCI-e总线通道166的接口。这允许DPU 150作为端点或作为根(在双模式下)来操作。例如,DPU 150可以作为端点设备而连接到主机系统(例如,x86服务器),并且DPU 150可以作为根而连接到诸如SSD盘的端点设备,如图1和图2中所示。
在图3的示例中,DPU 150包括2列“M”个主机单元154。在一些示例中,DPU 150可以包括2列2个,共四个主机单元154。在其他示例中,DPU 150可以包括2列3个,共六个主机单元。在其他示例中,DPU 150可以仅包括一个主机单元。尽管在图3中以具有处理集群156的网格图案示出,但是在其他示例中,DPU 150可以包括不必绑定到处理集群的行的任何数目的主机单元。在一个特定示例中,每个主机单元154暴露16个PCI-e通道166,其可划分为x4个单元(例如,对于SSD)或x8个单元的粒度以用于系统连接性。主机单元154可以包括作为单独实体的各个分叉控制器(未示出)。每个主机单元154可以包括一个或多个控制器,例如,每组x4 PCI-e通道集合一个控制器。通常,每个主机单元154包括未在其他主机单元154之间被共享的相应虚拟化资源。
每个主机单元154还可以包括相应的硬件DMA引擎(未示出)。每个DMA引擎被配置为从主机存储器中获取数据和缓冲器描述符,并将数据和完成递送给主机存储器。每个DMA引擎还将消息发送到PCI控制器以触发中断生成。可以由执行软件的主机单元154的核处理单元提供附加功能性,该核处理单元消耗缓冲器描述符的流,诸如生成用于有效载荷放置的DMA地址和/或生成完成地址。
处理集群156和中央集群158可以执行数据保护机制,以保护存储在片内或片外存储器中(诸如存储在缓冲器或外部存储器170中)的数据。这样的数据保护机制可以减少或消除具有单比特软错误(这样的错误可能是由于辐射、宇宙射线、内部生成的alpha粒子、噪声等导致的)和逃脱的多比特错误的静默数据损坏(SDC)概率。
DPU 150可以执行各种类型的应用。下面根据三个轴对这样的应用的示例进行分类:分层、消耗模型和流多路复用。在DPU 150的上下文中的软件/应用的三个示例层包括访问软件、内部软件和应用。访问软件表示系统软件,诸如驱动器和协议堆栈。这样的访问软件通常是内核的一部分,并以根/特权模式运行,但是在一些情况下,协议堆栈可以在用户空间中被执行。内部软件包括其他系统软件和库,诸如在访问软件之上执行的存储启动器/目标软件。传统上,内部软件在内核空间中被执行。应用表示在用户空间中执行的用户应用。消耗模型可以在频谱上被大致分类,一端是协议处理模型(报头消耗),另一端是字节处理模型(数据消耗)。通常,系统软件在协议处理模型端附近,并且用户应用倾向于在字节处理模型端处形成大多数应用。
下面的表1根据上面讨论的各个层和消耗模型对示例软件/应用进行了分类:
表1-应用分类
以这种方式,DPU 150可以在工作管理、存储器管理和/或处理器执行方面提供优于常规处理系统的改进。
图4是图示包括多个可编程处理核182A-182N的示例处理集群180的框图。图3的DPU 150的处理集群156中的每个都可以以与图4中所示的方式基本相似的方式来配置。在该示例中,处理集群180包括核182A-182N(“核182”)、相干高速缓存存储器184、非相干缓冲存储器186以及加速器188A-188X(“加速器188”)。在一个示例中,处理集群180可以包括两个处理核182和至少一个加速器188。在另一示例中,处理集群180可以包括六个处理核182和两个加速器188。如上文所指出的,DPU(诸如图3的DPU 150)可以支持两个不同的存储器系统:相干存储器系统和非相干缓冲存储器系统。在图4的示例中,相干高速缓存存储器184表示相干存储器系统的一部分(例如,相干高速缓存存储器184可以包括二级(L2)相干高速缓存存储器,其中核182还可以包括一个或多个一级(L1)数据高速缓存,例如如下面关于图5所讨论的),而非相干缓冲存储器186表示非相干缓冲存储器系统的一部分。核182可以表示关于图3的DPU 150讨论的处理核。核182可以共享非相关缓冲存储器186,其在一个示例中可以是2MB缓冲存储器。作为一个示例,核182可以使用非相干缓冲存储器186来共享诸如网络分组之类的流数据。
通常,加速器188执行对于各种数据处理功能的加速,诸如查找、矩阵乘法、密码术、压缩、正则表达式等。也就是说,加速器188可以包括查找引擎、矩阵乘法器、密码引擎、压缩引擎、正则表达式解译器等的硬件实现。例如,加速器188可以包括在硬件中执行哈希表查找以提供高查找率的查找引擎。查找引擎可以通过来自核182的外部接口和虚拟处理器的工作单元而被引发,并通过工作单元生成查找通知。加速器188还可以包括一个或多个密码单元,以支持各种密码处理,诸如以下中的任何或全部:高级加密标准(AES)128、AES256、伽罗瓦/计数器模式(GCM)、块密码模式(BCM)、安全哈希算法(SHA)128、SHA 256、SHA512、公共密钥密码术、椭圆曲线密码术、RSA等。在一些示例中,一个或多个这样的密码单元可以与联网单元152(图3)集成,以执行互联网协议安全(IPsec)密码术和/或安全套接字层(SSL)密码术。加速器188还可以包括一个或多个压缩单元,以例如根据ZIP、PKZIP、GZIP、Lempel-Ziv、诸如Snappy的公共格式压缩等来执行压缩和/或解压缩。压缩单元可以被配置为执行基于收集列表的数据消耗和/或基于分散列表的数据递送。压缩单元可以接收工作请求并提供工作通知。压缩单元可以访问处置例如在外部存储器170(图3)内的存储器分配和释放的DPU 150的硬件分配器,因为用于解压缩的输出缓冲器的大小可能不是先验的。
图5是图示示例可编程处理核190的组件的框图。图2的核140中的每个和图4的核182中的每个都可以包括与图5的核190的那些基本类似的组件。在该示例中,核190可以是具有双整数单元的双发布,并且被配置有被称为虚拟处理器(VP)192A-192M(“VP 192”)的一个或多个硬件线程。核190还包括一级(L1)指令高速缓存194和L1数据高速缓存196,其中的每个可以是64KB。当图3的核140中的每个包括与L1数据高速缓存196类似的L1数据高速缓存时,核140的L1数据高速缓存可以共享图3的相干高速缓存存储器136。类似地,当图4的核182中的每个包括与L1数据高速缓存196类似的L1数据高速缓存时,核182的L1数据高速缓存可以共享图4的L2相干高速缓存存储器184,这可以得到2MB的用于处理集群180(图4)的总高速缓存大小。
核190还包括L1缓冲高速缓存198,其可以是16KB。核190可以将L1缓冲高速缓存198用于非相干数据,诸如用于通过流处理模式管理的软件的分组或其他数据。L1缓冲高速缓存198可以存储用于短期高速缓存的数据,使得该数据可用于快速访问。
当诸如虚拟处理器192A之类的虚拟处理器192之一访问存储器时,虚拟处理器192A基于由存储器管理单元(未示出)发布的物理存储器地址来使用L1数据高速缓存196或L1缓冲高速缓存198。DPU150(图3)及其组件,诸如处理集群156及其核(诸如图4的核182),可以被配置为例如通过使用高阶地址位来将存储器空间划分为用于缓冲存储器和相干存储器的分离的范围,这允许范围被映射到缓冲存储器或相干存储器。
各种示例已被描述。这些和其他示例在所附权利要求的范围内。
Claims (30)
1.一种设备,包括:
一个或多个存储设备;以及
数据处理单元,所述数据处理单元通信地耦合到所述存储设备,所述数据处理单元包括:
联网单元,所述联网单元被配置为控制在所述数据处理单元和网络之间的数据的输入和输出,
多个可编程处理核,所述多个可编程处理核被配置为对所述数据执行处理任务,以及
一个或多个主机单元,所述一个或多个主机单元被配置为以下中的至少一项:控制在所述数据处理单元和一个或多个应用处理器之间的所述数据的输入和输出、或控制与所述存储设备的所述数据的存储。
2.根据权利要求1所述的设备,其中所述应用处理器中的至少一个应用处理器包括中央处理单元(CPU),并且其中所述数据处理单元被定位在所述CPU和所述存储设备之间、并且通信地耦合到所述CPU和所述存储设备,其中所述数据处理单元被配置为:代表所述CPU从所述存储设备取回所述数据,代表所述CPU将所述数据存储到所述存储设备,以及代表所述CPU从所述网络取回所述数据。
3.根据权利要求1所述的设备,其中所述应用处理器中的至少一个应用处理器包括图形处理单元(GPU),并且其中所述数据处理单元被定位在所述GPU和所述存储设备之间、并且通信地耦合到所述GPU和所述存储设备,其中所述数据处理单元被配置为将所述数据从所述网络或所述存储设备中的至少一个馈送给所述GPU以进行处理。
4.根据权利要求1所述的设备,其中所述联网单元被配置为支持以太网接口来直接连接到所述网络,而无需单独的网络接口卡(NIC)。
5.根据权利要求1所述的设备,其中所述主机单元中的每个主机单元被配置为支持PCI-e(高速外围组件互连)接口,以直接连接到所述应用处理器和所述存储设备。
6.根据权利要求1所述的设备,其中所述数据处理单元被配置为执行相对于被处理的指令的数目的、大数目的数据输入和输出(IO)处理任务。
7.根据权利要求1所述的设备,其中所述数据处理单元还包括以电路装置实现的一个或多个加速器单元,并且其中所述一个或多个加速器单元包括以下中的一个或多个的硬件实现:查找引擎、矩阵乘法器、密码引擎、压缩引擎或正则表达式解译器。
8.根据权利要求7所述的设备,其中所述数据处理单元被配置为:
经由应用编程接口(API)来接收指令,以将从所述应用处理器中的一个应用处理器卸载的至少一个处理任务发送给所述数据处理单元的所述加速器单元中的至少一个加速器单元;
将所述至少一个处理任务发送给所述加速器单元中的所述至少一个加速器单元;以及
响应于完成所述至少一个处理任务的执行,将来自所述加速器单元中的所述至少一个加速器单元的输出发送给所述应用处理器中的所述一个应用处理器。
9.根据权利要求1所述的设备,其中所述数据处理单元包括:
以电路装置实现的相干高速缓存存储器;以及
以电路装置实现的非相干缓冲存储器,并且
其中所述可编程处理核中的每个可编程处理核被连接到所述相干高速缓存存储器和所述非相干缓冲存储器。
10.根据权利要求9所述的设备,其中所述可编程处理核中的每个可编程处理核被配置为:将流数据存储在所述非相干缓冲存储器中,并且将其他数据存储在所述相干高速缓存存储器中,其中所述流数据包括网络传输数据的分组。
11.根据权利要求9所述的设备,其中所述可编程处理核中的每个可编程处理核包括:
多个虚拟处理器;
一级(L1)数据高速缓存存储器,以用于对相干数据进行高速缓存;以及
L1缓冲高速缓存存储器,以用于对非相干数据进行高速缓存。
12.根据权利要求11所述的设备,其中所述可编程处理核中的每个可编程处理核被配置为将所述流数据高速缓存在所述L1缓冲高速缓存存储器中,并且将所述其他数据高速缓存在所述L1数据高速缓存存储器中,其中所述流数据包括网络传输数据的分组。
13.根据权利要求9所述的设备,其中所述数据处理单元包括以电路装置实现的两个或更多个处理集群,并且其中所述处理集群中的每个处理集群包括所述相干高速缓存存储器、所述非相干缓冲存储器以及所述多个可编程处理核。
14.根据权利要求13所述的设备,其中所述数据处理单元的所述两个或更多个处理集群包括以电路装置实现的中央集群。
15.根据权利要求14所述的设备,其中所述中央集群包括:
中央分发单元,所述中央分发单元被配置为:执行流控制,选择所述处理集群中的一个处理集群来执行工作单元,以及将工作单元分发给所述处理集群中的所选择的所述一个处理集群;
相干性目录单元,所述相干性目录单元被配置为确定数据在所述数据处理单元的所述相干高速缓存存储器内的位置;以及
中央同步单元,所述中央同步单元被配置为维护所述数据处理单元内的操作的正确定序和排序。
16.根据权利要求14所述的设备,其中所述数据处理单元包括信令网络和数据网络,所述信令网络由将所述处理集群中的所述中央集群连接到所述其他处理集群的每个其他处理集群的直接链路集合来形成,所述数据网络由连接相邻处理集群的网格链路集合来形成。
17.根据权利要求16所述的设备,其中所述信令网络由第一直接链路集合形成,并且其中所述数据处理单元还包括相干性网络,所述相干性网络由将所述处理集群中的所述中央集群连接到所述其他处理集群中的每个其他处理集群的、不同的第二直接链路集合来形成,其中所述数据处理单元经由所述信令网络来传送与非相干流数据相关的信令信息,并且其中所述数据处理单元经由所述相干性网络来传送与相干数据相关的信令信息。
18.根据权利要求16所述的设备,其中所述信令网络包括非阻塞的、交换的、低延时构造,并且其中所述信令网络被配置为将流控制消息、资源状态消息、工作单元递送消息和工作调度消息携载给所述处理集群。
19.根据权利要求16所述的设备,其中所述数据网络包括二维网状拓扑,并且其中所述数据网络被配置为携载相干存储器数据和非相干存储器数据。
20.根据权利要求14所述的设备,其中所述数据处理单元包括广播网络,所述广播网络由将所述处理集群中的所述中央集群连接到所述其他处理集群中的每个其他处理集群的直接链路集合来形成,并且其中所述数据处理单元经由所述广播网络传送针对所述数据处理单元的组件的资源的利用状态。
21.根据权利要求20所述的设备,其中所述处理集群中的至少一个处理集群包括事件队列管理器(EQM)单元,所述事件队列管理器单元被配置为:存储针对由所述处理集群中的每个处理集群所使用的资源的利用状态的副本,以及经由所述广播网络从所述其他处理集群接收利用状态值。
22.根据权利要求1所述的设备,其中所述可编程处理核中的每个可编程处理核包括以下中的一个:MIPS(无互锁流水线级的微处理器)核、ARM(高级RISC(精简指令集计算)机器)核、PowerPC(具有增强的RISC的性能优化——性能计算)核、RISC-V(RISC五)核或CISC(复杂指令集计算或x86)核。
23.根据权利要求1所述的设备,其中所述可编程处理核中的每个可编程处理核是使用高级别编程语言而可编程的。
24.一种系统,包括容纳多个设备的机架,所述多个设备各自包括:
一个或多个存储设备;以及
至少一个数据处理单元,所述至少一个数据处理单元被通信地耦合到所述存储设备,所述数据处理单元包括:
联网单元,所述联网单元被配置为控制在所述数据处理单元和网络之间的数据的输入和输出,
多个可编程处理核,所述多个可编程处理核被配置为对所述数据执行处理任务,以及
一个或多个主机单元,所述一个或多个主机单元被配置为以下中的至少一项:控制在所述数据处理单元和一个或多个应用处理器之间的所述数据的输入和输出、或控制与所述存储设备的所述数据的存储。
25.根据权利要求24所述的系统,其中所述应用处理器中的至少一个应用处理器包括中央处理单元(CPU),并且其中所述数据处理单元被定位在所述CPU和所述存储设备之间、并且通信地耦合到所述CPU和所述存储设备,其中所述数据处理单元被配置为:代表所述CPU从所述存储设备取回所述数据,代表所述CPU将所述数据存储到所述存储设备,以及代表所述CPU从所述网络取回所述数据。
26.根据权利要求24所述的系统,其中所述应用处理器中的至少一个应用处理器包括图形处理单元(GPU),并且其中所述数据处理单元被定位在所述GPU和所述存储设备之间、并且通信地耦合到所述GPU和所述存储设备,其中所述数据处理单元被配置为将所述数据从所述网络或所述存储设备中的至少一个馈送给所述GPU以进行处理。
27.根据权利要求24所述的系统,其中所述联网单元被配置为支持以太网接口来直接连接到所述网络,而无需单独的网络接口卡(NIC)。
28.根据权利要求24所述的系统,其中所述主机单元中的每个主机单元被配置为支持PCI-e(高速外围组件互连)接口,以直接连接到所述应用处理器和所述存储设备。
29.根据权利要求24所述的系统,其中所述数据处理单元被配置为执行相对于被处理的指令的数目的、大数目的数据输入和输出(I/O)处理任务。
30.根据权利要求24所述的系统,其中所述数据处理单元包括:
以电路装置实现的相干高速缓存存储器;以及
以电路装置实现的非相干缓冲存储器,并且
其中所述可编程处理核中的每个可编程处理核被连接到所述相干高速缓存存储器和所述非相干缓冲存储器,并且其中所述可编程处理核中的每个可编程处理核被配置为:将流数据存储在所述非相干缓冲存储器中,并且将其他数据存储在所述相干高速缓存存储器中,其中所述流数据包括网络传输数据的分组。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762530691P | 2017-07-10 | 2017-07-10 | |
US62/530,691 | 2017-07-10 | ||
US201762559021P | 2017-09-15 | 2017-09-15 | |
US62/559,021 | 2017-09-15 | ||
PCT/US2018/041506 WO2019014265A1 (en) | 2017-07-10 | 2018-07-10 | DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110915173A true CN110915173A (zh) | 2020-03-24 |
CN110915173B CN110915173B (zh) | 2022-04-29 |
Family
ID=63036465
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046048.2A Active CN110915173B (zh) | 2017-07-10 | 2018-07-10 | 用于计算节点和存储节点的数据处理单元 |
CN201880046043.XA Pending CN110915172A (zh) | 2017-07-10 | 2018-07-10 | 针对数据中心的接入节点 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046043.XA Pending CN110915172A (zh) | 2017-07-10 | 2018-07-10 | 针对数据中心的接入节点 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10659254B2 (zh) |
EP (2) | EP3625940A1 (zh) |
CN (2) | CN110915173B (zh) |
WO (2) | WO2019014237A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984679A (zh) * | 2020-07-02 | 2020-11-24 | 中科驭数(北京)科技有限公司 | 硬件加速数据库的访问方法、装置、主机、系统及介质 |
CN113392608A (zh) * | 2021-06-25 | 2021-09-14 | 成都海光集成电路设计有限公司 | 电路生成方法、装置、电子设备及存储介质 |
WO2022000347A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳市大疆创新科技有限公司 | 图像处理方法、显示处理装置和计算机可读存储介质 |
CN115662518A (zh) * | 2022-12-27 | 2023-01-31 | 四川大学华西医院 | 一种基因测序存算协作系统、方法和计算机可读存储介质 |
WO2023060891A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 数据处理方法、装置、系统、设备、存储介质及程序产品 |
WO2023093091A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 数据存储系统、智能网卡及计算节点 |
CN117376061A (zh) * | 2023-10-31 | 2024-01-09 | 中科驭数(北京)科技有限公司 | 服务访问方法、装置、电子设备及存储介质 |
CN117573218A (zh) * | 2023-10-24 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 一种基于数据处理单元的应用识别硬件卸载方法及装置 |
WO2024093958A1 (zh) * | 2022-11-01 | 2024-05-10 | 华为云计算技术有限公司 | 一种存储池的访问方法以及装置 |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110731070A (zh) | 2017-03-29 | 2020-01-24 | 芬基波尔有限责任公司 | 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络 |
WO2018183553A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups |
US10425707B2 (en) | 2017-03-29 | 2019-09-24 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
US10565112B2 (en) | 2017-04-10 | 2020-02-18 | Fungible, Inc. | Relay consistent memory management in a multiple processor system |
CN110915173B (zh) | 2017-07-10 | 2022-04-29 | 芬基波尔有限责任公司 | 用于计算节点和存储节点的数据处理单元 |
CN117348976A (zh) | 2017-07-10 | 2024-01-05 | 微软技术许可有限责任公司 | 用于流处理的数据处理单元 |
CN111149329A (zh) | 2017-09-29 | 2020-05-12 | 芬基波尔有限责任公司 | 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议 |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
WO2019104090A1 (en) | 2017-11-21 | 2019-05-31 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
US10949303B2 (en) | 2017-12-11 | 2021-03-16 | Fungible, Inc. | Durable block storage in data center access nodes with inline erasure coding |
US11297563B2 (en) * | 2017-12-18 | 2022-04-05 | Nec Corporation | Communication apparatus, communication system, communication control method, and program |
CN110034993B (zh) * | 2018-01-11 | 2020-12-25 | 华为技术有限公司 | 传输数据的方法、设备和网络系统 |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US11068281B2 (en) | 2018-03-02 | 2021-07-20 | Fastly, Inc. | Isolating applications at the edge |
WO2019173618A1 (en) | 2018-03-08 | 2019-09-12 | Fungible, Inc. | Reliable communications using a point to point protocol |
US11038993B2 (en) | 2018-03-14 | 2021-06-15 | Fungible, Inc. | Flexible processing of network packets |
WO2019200568A1 (zh) * | 2018-04-18 | 2019-10-24 | 华为技术有限公司 | 一种数据通信方法及装置 |
WO2019237029A1 (en) | 2018-06-08 | 2019-12-12 | Fungible, Inc. | Directed graph traversal using content-addressable memory |
WO2019237010A1 (en) | 2018-06-08 | 2019-12-12 | Fungible, Inc. | Early acknowledgment for write operations |
US11138132B2 (en) * | 2018-06-20 | 2021-10-05 | Intel Corporation | Technologies for secure I/O with accelerator devices |
WO2020010325A1 (en) | 2018-07-05 | 2020-01-09 | Fungible, Inc. | Data processing unit with key value store |
US10983721B2 (en) | 2018-07-13 | 2021-04-20 | Fungible, Inc. | Deterministic finite automata node construction and memory mapping for regular expression accelerator |
US10656949B2 (en) | 2018-07-13 | 2020-05-19 | Fungible, Inc. | Instruction-based non-deterministic finite state automata accelerator |
US10635419B2 (en) | 2018-07-13 | 2020-04-28 | Fungible, Inc. | Incremental compilation of finite automata for a regular expression accelerator |
US10645187B2 (en) | 2018-07-13 | 2020-05-05 | Fungible, Inc. | ARC caching for determininstic finite automata of regular expression accelerator |
WO2020047351A1 (en) | 2018-08-31 | 2020-03-05 | Fungible, Inc. | Rapidly establishing a chain of trust in a computing system |
US11256644B2 (en) | 2018-09-05 | 2022-02-22 | Fungible, Inc. | Dynamically changing configuration of data processing unit when connected to storage device or computing device |
US11030102B2 (en) * | 2018-09-07 | 2021-06-08 | Apple Inc. | Reducing memory cache control command hops on a fabric |
WO2020056166A1 (en) | 2018-09-14 | 2020-03-19 | Fungible, Inc. | Timer management for network devices |
US11444886B1 (en) * | 2018-09-21 | 2022-09-13 | Marvell Asia Pte Ltd | Out of order packet buffer selection |
US20210092103A1 (en) * | 2018-10-02 | 2021-03-25 | Arista Networks, Inc. | In-line encryption of network data |
US10958770B2 (en) | 2018-10-15 | 2021-03-23 | Fungible, Inc. | Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit |
CN109547531B (zh) | 2018-10-19 | 2021-04-09 | 华为技术有限公司 | 数据处理的方法、装置和计算设备 |
US10990478B2 (en) | 2019-02-01 | 2021-04-27 | Fungible, Inc. | Flexible reliability coding for storage on a network |
US10761931B2 (en) | 2018-10-24 | 2020-09-01 | Fungible, Inc. | Inline reliability coding for storage on a network |
US10922026B2 (en) | 2018-11-01 | 2021-02-16 | Fungible, Inc. | Data processing unit having hardware-based range encoding and decoding |
US10511324B1 (en) | 2018-11-01 | 2019-12-17 | Fungible, Inc. | Data processing unit having hardware-based range encoding and decoding |
US10827192B2 (en) | 2018-11-02 | 2020-11-03 | Fungible, Inc. | Work allocation for JPEG accelerator |
US10827191B2 (en) | 2018-11-02 | 2020-11-03 | Fungible, Inc. | Parallel coding of syntax elements for JPEG accelerator |
US10848775B2 (en) | 2018-11-02 | 2020-11-24 | Fungible, Inc. | Memory layout for JPEG accelerator |
US10931958B2 (en) | 2018-11-02 | 2021-02-23 | Fungible, Inc. | JPEG accelerator using last-non-zero (LNZ) syntax element |
US11327808B2 (en) * | 2018-11-13 | 2022-05-10 | Western Digital Technologies, Inc. | Decentralized data processing architecture |
US10727865B2 (en) | 2018-11-19 | 2020-07-28 | Fungible, Inc. | Data striping for matching techniques in data compression accelerator of a data processing unit |
US10812630B2 (en) | 2018-11-19 | 2020-10-20 | Fungible, Inc. | Merging techniques in data compression accelerator of a data processing unit |
US10997123B2 (en) | 2018-11-19 | 2021-05-04 | Fungible, Inc. | Matching techniques in data compression accelerator of a data processing unit |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
US11309908B2 (en) | 2018-11-26 | 2022-04-19 | Fungible, Inc. | Static dictionary-based compression hardware pipeline for data compression accelerator of a data processing unit |
US10700964B1 (en) * | 2019-01-04 | 2020-06-30 | Dropbox, Inc. | Centralized application-layer routing at the edge of an online application service provider network |
US10862513B2 (en) | 2019-01-16 | 2020-12-08 | Fungible, Inc. | Data processing unit having hardware-based parallel variable-length codeword decoding |
US10725946B1 (en) | 2019-02-08 | 2020-07-28 | Dell Products L.P. | System and method of rerouting an inter-processor communication link based on a link utilization value |
US11431829B2 (en) | 2019-03-06 | 2022-08-30 | Parsons Corporation | Multi-tiered packet processing |
WO2020190558A1 (en) | 2019-03-15 | 2020-09-24 | Fungible, Inc. | Providing scalable and concurrent file systems |
WO2020197720A1 (en) | 2019-03-27 | 2020-10-01 | Fungible, Inc. | Low latency packet switch architecture |
WO2020219472A1 (en) * | 2019-04-23 | 2020-10-29 | InCountry, Inc. | Localized data storage and processing |
US11240143B2 (en) | 2019-05-02 | 2022-02-01 | Fungible, Inc. | Embedded network packet data for use of alternative paths within a group of network devices |
US11656992B2 (en) | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
US11188338B2 (en) | 2019-06-13 | 2021-11-30 | Fungible, Inc. | Context value retrieval prior to or parallel with expansion of previous symbol for context-decoding in range decoder |
EP3987404A4 (en) * | 2019-06-21 | 2023-01-18 | INTEL Corporation | ADAPTIVE PIPELINE SELECTION TO SPEED UP MEMORY COPY OPERATIONS |
US11552907B2 (en) | 2019-08-16 | 2023-01-10 | Fungible, Inc. | Efficient packet queueing for computer networks |
US11636115B2 (en) | 2019-09-26 | 2023-04-25 | Fungible, Inc. | Query processing using data processing units having DFA/NFA hardware accelerators |
US11636154B2 (en) | 2019-09-26 | 2023-04-25 | Fungible, Inc. | Data flow graph-driven analytics platform using data processing units having hardware accelerators |
US11263190B2 (en) | 2019-09-26 | 2022-03-01 | Fungible, Inc. | Data ingestion and storage by data processing unit having stream-processing hardware accelerators |
US11579802B2 (en) | 2019-10-04 | 2023-02-14 | Fungible, Inc. | Pipeline using match-action blocks |
US11677666B2 (en) * | 2019-10-11 | 2023-06-13 | Nokia Solutions And Networks Oy | Application-based queue management |
CN110928651B (zh) * | 2019-10-12 | 2022-03-01 | 杭州电子科技大学 | 一种移动边缘环境下的服务工作流容错调度方法 |
CN111078712B (zh) * | 2019-10-15 | 2022-08-26 | 平安科技(深圳)有限公司 | 大数据集群的更新方法、装置、计算机设备和存储介质 |
US11507522B2 (en) * | 2019-12-06 | 2022-11-22 | Advanced Micro Devices, Inc. | Memory request priority assignment techniques for parallel processors |
US11637773B2 (en) | 2020-02-11 | 2023-04-25 | Fungible, Inc. | Scaled-out transport as connection proxy for device-to-device communications |
US11184245B2 (en) | 2020-03-06 | 2021-11-23 | International Business Machines Corporation | Configuring computing nodes in a three-dimensional mesh topology |
US11934964B2 (en) | 2020-03-20 | 2024-03-19 | Microsoft Technology Licensing, Llc | Finite automata global counter in a data flow graph-driven analytics platform having analytics hardware accelerators |
US11296987B2 (en) * | 2020-04-20 | 2022-04-05 | Hewlett Packard Enterprise Development Lp | Congestion management mechanism |
US11630729B2 (en) | 2020-04-27 | 2023-04-18 | Fungible, Inc. | Reliability coding with reduced network traffic |
US11765250B2 (en) | 2020-06-26 | 2023-09-19 | Western Digital Technologies, Inc. | Devices and methods for managing network traffic for a distributed cache |
CN111737185A (zh) * | 2020-06-30 | 2020-10-02 | 飞诺门阵(北京)科技有限公司 | 一种网络设备 |
US11675706B2 (en) | 2020-06-30 | 2023-06-13 | Western Digital Technologies, Inc. | Devices and methods for failure detection and recovery for a distributed cache |
CN114095550A (zh) * | 2020-08-10 | 2022-02-25 | 北京瀚海云星科技有限公司 | 一种服务端直接读取引用参数的远程过程调用方法 |
US11736417B2 (en) | 2020-08-17 | 2023-08-22 | Western Digital Technologies, Inc. | Devices and methods for network message sequencing |
US12088470B2 (en) | 2020-12-18 | 2024-09-10 | Western Digital Technologies, Inc. | Management of non-volatile memory express nodes |
CN112968978B (zh) * | 2021-05-19 | 2021-12-21 | 南京烽火星空通信发展有限公司 | 一种基于sdn技术的互联网流量分流方法 |
US12020066B2 (en) * | 2021-06-11 | 2024-06-25 | International Busin ess Machines Corporation | Asynchronous completion notification in a multi-core data processing system |
CN113641614A (zh) * | 2021-07-07 | 2021-11-12 | 北京智芯微电子科技有限公司 | 基于spi的单通道多业务并行处理方法及芯片 |
US12033085B2 (en) * | 2021-12-01 | 2024-07-09 | Capital One Services, Llc | Replica reliability |
US12063163B2 (en) * | 2021-12-16 | 2024-08-13 | Microsoft Technology Licensing, Llc | Sending and receiving messages including training data using a multi-path packet spraying protocol |
US20230325220A1 (en) * | 2022-04-07 | 2023-10-12 | Vmware, Inc. | Hosting dpu management operating system using dpu software stack |
WO2023244948A1 (en) | 2022-06-14 | 2023-12-21 | Microsoft Technology Licensing, Llc | Graph-based storage management |
CN115098303A (zh) * | 2022-06-14 | 2022-09-23 | 马上消费金融股份有限公司 | 节点调度方法、装置、电子设备及存储介质 |
CN115103011B (zh) * | 2022-06-24 | 2024-02-09 | 北京奥星贝斯科技有限公司 | 一种跨数据中心的业务处理方法、装置以及设备 |
US20240320072A1 (en) * | 2023-03-20 | 2024-09-26 | Google Llc | Selective re-execution of instruction streams for reliability |
CN118279125B (zh) * | 2024-06-04 | 2024-08-06 | 山东浪潮科学研究院有限公司 | 一种轻量化通用图形处理器的实现方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020015387A1 (en) * | 2000-08-02 | 2002-02-07 | Henry Houh | Voice traffic packet capture and analysis tool for a data network |
US20040210320A1 (en) * | 2002-06-11 | 2004-10-21 | Pandya Ashish A. | Runtime adaptable protocol processor |
US20070073966A1 (en) * | 2005-09-23 | 2007-03-29 | Corbin John R | Network processor-based storage controller, compute element and method of using same |
CN101447986A (zh) * | 2007-11-27 | 2009-06-03 | 国际商业机器公司 | 具有分区的片上网络及其处理方法 |
WO2009114554A2 (en) * | 2008-03-12 | 2009-09-17 | Mips Technologies, Inc. | Efficient, scalable and high performance mechanism for handling io requests |
US20120076153A1 (en) * | 2009-04-27 | 2012-03-29 | Lsi Corporation | Statistics module for network processors in virtual local area networks |
CN103004158A (zh) * | 2011-01-06 | 2013-03-27 | 马维尔以色列(M.I.S.L)有限公司 | 具有可编程内核的网络设备 |
US20150186313A1 (en) * | 2013-12-27 | 2015-07-02 | Inder M. Sodhi | Managing Shared Resources Between Multiple Processing Devices |
US20150254182A1 (en) * | 2014-03-07 | 2015-09-10 | Cavium, Inc. | Multi-core network processor interconnect with multi-node connection |
US20150355946A1 (en) * | 2014-06-10 | 2015-12-10 | Dan-Chyi Kang | “Systems of System” and method for Virtualization and Cloud Computing System |
US20160188344A1 (en) * | 2014-12-26 | 2016-06-30 | Intel Corporation | Techniques for cooperative execution between asymmetric processor cores |
US20170061566A1 (en) * | 2015-08-26 | 2017-03-02 | Intel Corporation | Technologies for offloading network packet processing to a gpu |
US20170083257A1 (en) * | 2015-09-23 | 2017-03-23 | Oracle International Corporation | On-chip Atomic Transaction Engine |
Family Cites Families (236)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4872157A (en) | 1988-03-31 | 1989-10-03 | American Telephone And Telegraph Company, At&T Bell Laboratories | Architecture and organization of a high performance metropolitan area telecommunications packet network |
US4872159A (en) | 1988-03-31 | 1989-10-03 | American Telephone And Telegraph Company At&T Bell Laboratories | Packet network architecture for providing rapid response time |
JPH06222990A (ja) | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
US5301324A (en) | 1992-11-19 | 1994-04-05 | International Business Machines Corp. | Method and apparatus for dynamic work reassignment among asymmetric, coupled processors |
US7035914B1 (en) | 1996-01-26 | 2006-04-25 | Simpleair Holdings, Inc. | System and method for transmission of data |
US5812549A (en) | 1996-06-25 | 1998-09-22 | International Business Machines Corporation | Route restrictions for deadlock free routing with increased bandwidth in a multi-stage cross point packet switch |
US6021473A (en) | 1996-08-27 | 2000-02-01 | Vlsi Technology, Inc. | Method and apparatus for maintaining coherency for data transaction of CPU and bus device utilizing selective flushing mechanism |
US6055579A (en) | 1997-11-17 | 2000-04-25 | Silicon Graphics, Inc. | Distributed control and synchronization of multiple data processors using flexible command queues |
US6314491B1 (en) | 1999-03-01 | 2001-11-06 | International Business Machines Corporation | Peer-to-peer cache moves in a multiprocessor data processing system |
US20090219879A1 (en) | 1999-05-21 | 2009-09-03 | Wi-Lan, Inc. | Method and apparatus for bandwidth request/grant protocols in a wireless communication system |
US6782210B1 (en) | 1999-08-25 | 2004-08-24 | Nippon Telegraph And Telephone Corporation | Optical packet routing network system based on optical label switching technique |
US7289964B1 (en) | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
US6842906B1 (en) | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US7102999B1 (en) | 1999-11-24 | 2006-09-05 | Juniper Networks, Inc. | Switching device |
US6591285B1 (en) | 2000-06-16 | 2003-07-08 | Shuo-Yen Robert Li | Running-sum adder networks determined by recursive construction of multi-stage networks |
US6901500B1 (en) | 2000-07-28 | 2005-05-31 | Silicon Graphics, Inc. | Method and apparatus for prefetching information and storing the information in a stream buffer |
US20030091271A1 (en) | 2000-07-31 | 2003-05-15 | Dragone Corrado P | Non-blocking switching arrangements with minimum number of 2x2 elements |
US20020049859A1 (en) * | 2000-08-25 | 2002-04-25 | William Bruckert | Clustered computer system and a method of forming and controlling the clustered computer system |
US6647453B1 (en) * | 2000-08-31 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system |
US6901451B1 (en) | 2000-10-31 | 2005-05-31 | Fujitsu Limited | PCI bridge over network |
US20020075862A1 (en) | 2000-12-20 | 2002-06-20 | Mayes Mark G. | Recursion based switch fabric for aggregate tipor |
US6999682B2 (en) | 2000-12-29 | 2006-02-14 | Nortel Networks Limited | Technique for optically converting wavelengths in a multi-wavelength system |
US7042883B2 (en) | 2001-01-03 | 2006-05-09 | Juniper Networks, Inc. | Pipeline scheduler with fairness and minimum bandwidth guarantee |
US6831891B2 (en) | 2001-03-06 | 2004-12-14 | Pluris, Inc. | System for fabric packet control |
US8429296B2 (en) * | 2001-03-06 | 2013-04-23 | Pluris, Inc. | Method and apparatus for distributing routing instructions over multiple interfaces of a data router |
US7215679B2 (en) | 2001-08-30 | 2007-05-08 | Thomson Licensing | Method, apparatus and data structure enabling multiple channel data stream transmission |
US7050663B2 (en) | 2001-10-17 | 2006-05-23 | Intel Corporation | Integrated optical circuit having an integrated arrayed waveguide grating (AWG) and optical amplifier(s) |
US7352694B1 (en) | 2001-12-14 | 2008-04-01 | Applied Micro Circuits Corporation | System and method for tolerating data link faults in a packet communications switch fabric |
US7082477B1 (en) * | 2002-04-30 | 2006-07-25 | Cisco Technology, Inc. | Virtual application of features to electronic messages |
US7039851B2 (en) | 2002-06-08 | 2006-05-02 | Axiowave Networks, Inc. | Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption |
US7944920B2 (en) | 2002-06-11 | 2011-05-17 | Pandya Ashish A | Data processing system using internet protocols and RDMA |
US7486678B1 (en) | 2002-07-03 | 2009-02-03 | Greenfield Networks | Multi-slice network processor |
GB0221464D0 (en) | 2002-09-16 | 2002-10-23 | Cambridge Internetworking Ltd | Network interface and protocol |
US20050166086A1 (en) | 2002-09-20 | 2005-07-28 | Fujitsu Limited | Storage control apparatus, storage control method, and computer product |
US6993630B1 (en) | 2002-09-26 | 2006-01-31 | Unisys Corporation | Data pre-fetch system and method for a cache memory |
US7275103B1 (en) | 2002-12-18 | 2007-09-25 | Veritas Operating Corporation | Storage path optimization for SANs |
GB0304807D0 (en) | 2003-03-03 | 2003-04-09 | Cambridge Internetworking Ltd | Data protocol |
US7660239B2 (en) | 2003-04-25 | 2010-02-09 | Alcatel-Lucent Usa Inc. | Network data re-routing |
US7633861B2 (en) | 2003-04-25 | 2009-12-15 | Alcatel-Lucent Usa Inc. | Fabric access integrated circuit configured to bound cell reorder depth |
US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
US7664110B1 (en) * | 2004-02-07 | 2010-02-16 | Habanero Holdings, Inc. | Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers |
US7843907B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway target for fabric-backplane enterprise servers |
US7760626B2 (en) | 2004-03-31 | 2010-07-20 | Intel Corporation | Load balancing and failover |
US7895431B2 (en) | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
US7743376B2 (en) * | 2004-09-13 | 2010-06-22 | Broadcom Corporation | Method and apparatus for managing tasks in a multiprocessor system |
US9014181B2 (en) * | 2004-11-01 | 2015-04-21 | Alcatel Lucent | Softrouter separate control network |
US20060112226A1 (en) | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
US7480304B2 (en) | 2004-12-29 | 2009-01-20 | Alcatel Lucent | Predictive congestion management in a data communications switch using traffic and system statistics |
US7477641B2 (en) * | 2004-12-30 | 2009-01-13 | Intel Corporation | Providing access to data shared by packet processing threads |
US7320078B2 (en) | 2005-06-03 | 2008-01-15 | Cisco Technology, Inc. | Controlling delivery of power and network communications to a set of devices |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US7720377B2 (en) | 2006-01-23 | 2010-05-18 | Hewlett-Packard Development Company, L.P. | Compute clusters employing photonic interconnections for transmitting optical signals between compute cluster nodes |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7404041B2 (en) * | 2006-02-10 | 2008-07-22 | International Business Machines Corporation | Low complexity speculative multithreading system based on unmodified microprocessor core |
US7733781B2 (en) | 2006-04-24 | 2010-06-08 | Broadcom Corporation | Distributed congestion avoidance in a network switching system |
US7941610B2 (en) | 2006-04-27 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Coherency directory updating in a multiprocessor computing system |
US20080002702A1 (en) | 2006-06-30 | 2008-01-03 | Symbol Technologies, Inc. | Systems and methods for processing data packets using a multi-core abstraction layer (MCAL) |
US8050257B2 (en) | 2006-12-12 | 2011-11-01 | Maged E Beshai | Network with a fast-switching optical core |
US7937532B2 (en) | 2007-03-30 | 2011-05-03 | Intel Corporation | Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine |
US7979588B1 (en) * | 2007-06-28 | 2011-07-12 | Emc Corporation | Data storage system having acceleration path for congested packet switching network |
CN101689158B (zh) * | 2007-07-09 | 2012-06-06 | 惠普发展公司,有限责任合伙企业 | 用于多核处理器的数据分组处理方法 |
US7743232B2 (en) | 2007-07-18 | 2010-06-22 | Advanced Micro Devices, Inc. | Multiple-core processor with hierarchical microcode store |
US8200992B2 (en) | 2007-09-24 | 2012-06-12 | Cognitive Electronics, Inc. | Parallel processing computer systems with reduced power consumption and methods for providing the same |
FI20085217A0 (fi) | 2008-03-07 | 2008-03-07 | Nokia Corp | Tietojenkäsittelyjärjestely |
US7822731B1 (en) | 2008-03-28 | 2010-10-26 | Emc Corporation | Techniques for management of information regarding a sequential stream |
US8386540B1 (en) | 2008-03-31 | 2013-02-26 | Amazon Technologies, Inc. | Scalable relational database service |
GB2459838B (en) | 2008-05-01 | 2010-10-06 | Gnodal Ltd | An ethernet bridge and a method of data delivery across a network |
US8094560B2 (en) * | 2008-05-19 | 2012-01-10 | Cisco Technology, Inc. | Multi-stage multi-core processing of network packets |
US8160063B2 (en) | 2008-06-09 | 2012-04-17 | Microsoft Corporation | Data center interconnect and traffic engineering |
US8340088B2 (en) | 2008-09-11 | 2012-12-25 | Juniper Networks, Inc. | Methods and apparatus related to a low cost data center architecture |
US8265071B2 (en) | 2008-09-11 | 2012-09-11 | Juniper Networks, Inc. | Methods and apparatus related to a flexible data center security architecture |
US8010085B2 (en) | 2008-11-19 | 2011-08-30 | Zscaler, Inc. | Traffic redirection in cloud based security services |
US8918631B1 (en) | 2009-03-31 | 2014-12-23 | Juniper Networks, Inc. | Methods and apparatus for dynamic automated configuration within a control plane of a switch fabric |
US9218290B2 (en) | 2009-04-27 | 2015-12-22 | Intel Corporation | Data caching in a network communications processor architecture |
US8943507B2 (en) * | 2009-04-27 | 2015-01-27 | Deepak Mital | Packet assembly module for multi-core, multi-thread network processors |
US9081742B2 (en) * | 2009-04-27 | 2015-07-14 | Intel Corporation | Network communications processor architecture |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
US9183145B2 (en) * | 2009-04-27 | 2015-11-10 | Intel Corporation | Data caching in a network communications processor architecture |
KR20100133649A (ko) | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 링크 아키텍쳐에서 파워 오프 시 데이터 로스를 방지하는 기능을 갖는 멀티 프로세서 시스템 |
US8018961B2 (en) | 2009-06-22 | 2011-09-13 | Citrix Systems, Inc. | Systems and methods for receive and transmission queue processing in a multi-core architecture |
US9742862B2 (en) | 2009-07-14 | 2017-08-22 | Saguna Networks Ltd. | Methods circuits devices systems and associated machine executable code for efficient delivery of multi-unicast communication traffic |
US8745618B2 (en) | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
US8625427B1 (en) | 2009-09-03 | 2014-01-07 | Brocade Communications Systems, Inc. | Multi-path switching with edge-to-edge flow control |
US9639479B2 (en) | 2009-09-23 | 2017-05-02 | Nvidia Corporation | Instructions for managing a parallel cache hierarchy |
US8599863B2 (en) * | 2009-10-30 | 2013-12-03 | Calxeda, Inc. | System and method for using a multi-protocol fabric module across a distributed server interconnect fabric |
US20110103391A1 (en) | 2009-10-30 | 2011-05-05 | Smooth-Stone, Inc. C/O Barry Evans | System and method for high-performance, low-power data center interconnect fabric |
US9876735B2 (en) | 2009-10-30 | 2018-01-23 | Iii Holdings 2, Llc | Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect |
US9800495B2 (en) | 2009-09-30 | 2017-10-24 | Infinera Corporation | Fast protection path activation using control plane messages |
TWI385523B (zh) | 2009-11-06 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的資料備份方法及其控制器與儲存系統 |
US8832415B2 (en) | 2010-01-08 | 2014-09-09 | International Business Machines Corporation | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests |
CN102763393B (zh) | 2009-12-23 | 2016-07-13 | 思杰系统有限公司 | 用于在多核系统中管理跨越核的rtsp的端口的系统和方法 |
US8582440B2 (en) | 2010-02-05 | 2013-11-12 | Juniper Networks, Inc. | Oversubscribed packet stream-based interconnect protocol |
EP2536074A4 (en) | 2010-02-12 | 2014-01-08 | Hitachi Ltd | INFORMATION PROCESSING DEVICE AND METHOD FOR PROCESSING INFORMATION ON THE INFORMATION PROCESSING DEVICE |
JP5506444B2 (ja) * | 2010-02-18 | 2014-05-28 | 株式会社日立製作所 | 情報システム、装置および方法 |
US8863144B2 (en) | 2010-03-15 | 2014-10-14 | International Business Machines Corporation | Method and apparatus for determining resources consumed by tasks |
US8358658B2 (en) | 2010-03-19 | 2013-01-22 | International Business Machines Corporation | Implementing ordered and reliable transfer of packets while spraying packets over multiple links |
US8645631B2 (en) | 2010-03-29 | 2014-02-04 | Via Technologies, Inc. | Combined L2 cache and L1D cache prefetcher |
US8848728B1 (en) | 2010-04-08 | 2014-09-30 | Marvell Israel (M.I.S.L) Ltd. | Dynamic load balancing switch architecture |
TWI480738B (zh) | 2010-07-01 | 2015-04-11 | Neodana Inc | 藉由最佳化叢集特定組態之使用的處理種類來分割叢集間之處理 |
US8473689B2 (en) | 2010-07-27 | 2013-06-25 | Texas Instruments Incorporated | Predictive sequential prefetching for data caching |
US8484287B2 (en) | 2010-08-05 | 2013-07-09 | Citrix Systems, Inc. | Systems and methods for cookie proxy jar management across cores in a multi-core system |
WO2012052773A1 (en) | 2010-10-21 | 2012-04-26 | Bluwireless Technology Limited | Data processing systems |
US8798077B2 (en) | 2010-12-29 | 2014-08-05 | Juniper Networks, Inc. | Methods and apparatus for standard protocol validation mechanisms deployed over a switch fabric system |
US8681605B2 (en) | 2011-01-10 | 2014-03-25 | Alcatel Lucent | Method and apparatus for using G.8031 extensions to enable coexistence of G.8031-based protection and LAG-like loadsharing for ethernet paths |
WO2012120769A1 (ja) | 2011-03-09 | 2012-09-13 | パナソニック株式会社 | 中継装置、中継装置の制御方法、およびプログラム |
EP2501119B1 (en) | 2011-03-15 | 2013-08-07 | Alcatel Lucent | A gateway for the survivability of an enterprise network using sip |
US9405550B2 (en) | 2011-03-31 | 2016-08-02 | International Business Machines Corporation | Methods for the transmission of accelerator commands and corresponding command structure to remote hardware accelerator engines over an interconnect link |
US9225628B2 (en) | 2011-05-24 | 2015-12-29 | Mellanox Technologies Ltd. | Topology-based consolidation of link state information |
US9244798B1 (en) * | 2011-06-20 | 2016-01-26 | Broadcom Corporation | Programmable micro-core processors for packet parsing with packet ordering |
US9042383B2 (en) | 2011-06-30 | 2015-05-26 | Broadcom Corporation | Universal network interface controller |
US20130024875A1 (en) | 2011-07-22 | 2013-01-24 | Yilin Wang | Event System And Methods For Using Same |
WO2013020002A1 (en) | 2011-08-02 | 2013-02-07 | Cavium, Inc. | Incremental update of rules for packet classification |
CN103748841B (zh) | 2011-08-18 | 2017-03-15 | 瑞典爱立信有限公司 | 用于控制数据包流的数据面流的方法和中央控制实体 |
US9042229B2 (en) | 2011-10-06 | 2015-05-26 | International Business Machines Corporation | Partitioning a network switch into multiple switching domains |
US8850125B2 (en) | 2011-10-25 | 2014-09-30 | Cavium, Inc. | System and method to provide non-coherent access to a coherent memory system |
US8560757B2 (en) | 2011-10-25 | 2013-10-15 | Cavium, Inc. | System and method to reduce memory access latencies using selective replication across multiple memory ports |
US9448940B2 (en) | 2011-10-28 | 2016-09-20 | The Regents Of The University Of California | Multiple core computer processor with globally-accessible local memories |
WO2013063486A1 (en) | 2011-10-28 | 2013-05-02 | The Regents Of The University Of California | Multiple-core computer processor for reverse time migration |
CN102447712B (zh) | 2012-01-20 | 2015-07-08 | 华为技术有限公司 | 内容分发网络中节点互联的方法、系统及节点 |
US9430391B2 (en) | 2012-03-29 | 2016-08-30 | Advanced Micro Devices, Inc. | Managing coherent memory between an accelerated processing device and a central processing unit |
WO2013164044A1 (de) | 2012-05-04 | 2013-11-07 | Deutsche Telekom Ag | VERFAHREN UND VORRICHTUNG FÜR DEN AUFBAU UND BETRIEB EINES MODULAREN, HOCH SKALIERBAREN, SEHR EINFACHEN, KOSTENEFFIZIENTEN UND NACHHALTIGEN TRANSPARENTEN OPTISCH GEROUTETEN NETZES FÜR NETZKAPAZITÄTEN GRÖßER ALS 1 PETABIT/S |
US9118573B2 (en) | 2012-05-31 | 2015-08-25 | International Business Machines Corporation | Multipath effectuation within singly contiguous network fabric via switching device routing logic programming |
US9710762B2 (en) | 2012-06-06 | 2017-07-18 | Juniper Networks, Inc. | Dynamic logging |
US9898317B2 (en) | 2012-06-06 | 2018-02-20 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US9485048B2 (en) | 2012-06-08 | 2016-11-01 | The Royal Institution For The Advancement Of Learning/Mcgill University | Methods and devices for space-time multi-plane optical networks |
US9100216B2 (en) * | 2012-07-23 | 2015-08-04 | Cisco Technology, Inc. | System and method for scaling IPv6 on a three-tier network architecture at a large data center |
US8982884B2 (en) | 2012-08-07 | 2015-03-17 | Broadcom Corporation | Serial replication of multicast packets |
US8978031B2 (en) * | 2012-08-21 | 2015-03-10 | International Business Machines Corporation | Processing of overlay networks using an accelerated network interface card |
US9304961B2 (en) | 2012-09-10 | 2016-04-05 | Marvell World Trade Ltd. | Method and apparatus for transferring packets between interface control modules of line cards |
US8971321B2 (en) | 2012-12-11 | 2015-03-03 | Futurewei Technologies, Inc. | System and method for accelerating and decelerating packets |
US10057387B2 (en) | 2012-12-26 | 2018-08-21 | Realtek Singapore Pte Ltd | Communication traffic processing architectures and methods |
US9654406B2 (en) | 2012-12-26 | 2017-05-16 | Realtek Singapore Pte Ltd | Communication traffic processing architectures and methods |
US10137376B2 (en) | 2012-12-31 | 2018-11-27 | Activision Publishing, Inc. | System and method for creating and streaming augmented game sessions |
KR20160037827A (ko) * | 2013-01-17 | 2016-04-06 | 엑소케츠 인코포레이티드 | 시스템 메모리로의 연결을 위한 오프로드 프로세서 모듈들 |
US9154376B2 (en) | 2013-01-23 | 2015-10-06 | Cisco Technology, Inc. | Multi-node virtual switching system |
US9755900B2 (en) | 2013-03-11 | 2017-09-05 | Amazon Technologies, Inc. | Managing configuration updates |
US9118984B2 (en) | 2013-03-15 | 2015-08-25 | International Business Machines Corporation | Control plane for integrated switch wavelength division multiplexing |
US10015111B2 (en) | 2013-03-15 | 2018-07-03 | Huawei Technologies Co., Ltd. | System and method for steering packet streams |
CN105706068B (zh) | 2013-04-30 | 2019-08-23 | 慧与发展有限责任合伙企业 | 路由存储器流量和i/o流量的存储器网络 |
US20150019702A1 (en) * | 2013-07-10 | 2015-01-15 | Brocade Communications Systems, Inc. | Flexible flow offload |
US20160164625A1 (en) | 2013-07-16 | 2016-06-09 | Commscope Technologies Llc | Distributed wave division multiplexing systems |
US9124959B2 (en) | 2013-08-05 | 2015-09-01 | Telefonaktiebolaget L M Ericsson (Publ) | High connectivity multiple dimension optical network in glass |
US9369409B2 (en) | 2013-08-12 | 2016-06-14 | Nec Corporation | End-to-end hitless protection in packet switched networks |
US20150143073A1 (en) | 2013-10-23 | 2015-05-21 | Bluwireless Technology Limited | Data processing systems |
KR20150057798A (ko) | 2013-11-20 | 2015-05-28 | 한국전자통신연구원 | 캐시 제어 장치 및 방법 |
US9225458B2 (en) | 2013-12-20 | 2015-12-29 | Alcatel Lucent | Wavelength-selective cross-connect device having a variable number of common ports |
CN105900406B (zh) | 2013-12-23 | 2019-07-09 | 瑞典爱立信有限公司 | 针对网络服务可用性的技术 |
US9584397B2 (en) | 2013-12-27 | 2017-02-28 | Dell Products L.P. | Routing in spine-leaf networking systems |
US9369408B1 (en) | 2014-01-31 | 2016-06-14 | Google Inc. | High performance and resilience in wide area networking |
US9628382B2 (en) | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
US20150244804A1 (en) | 2014-02-21 | 2015-08-27 | Coho Data, Inc. | Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities |
US9734063B2 (en) * | 2014-02-27 | 2017-08-15 | École Polytechnique Fédérale De Lausanne (Epfl) | Scale-out non-uniform memory access |
US9565114B1 (en) | 2014-03-08 | 2017-02-07 | Google Inc. | Weighted load balancing using scaled parallel hashing |
US9436972B2 (en) | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
US9479457B2 (en) | 2014-03-31 | 2016-10-25 | Juniper Networks, Inc. | High-performance, scalable and drop-free data center switch fabric |
US9294304B2 (en) | 2014-03-31 | 2016-03-22 | Juniper Networks, Inc. | Host network accelerator for data center overlay network |
US9437299B2 (en) * | 2014-03-31 | 2016-09-06 | Freescale Semiconductor, Inc. | Systems and methods for order scope transitions using cam |
US9703743B2 (en) | 2014-03-31 | 2017-07-11 | Juniper Networks, Inc. | PCIe-based host network accelerators (HNAS) for data center overlay network |
CN105024844B (zh) | 2014-04-30 | 2019-01-01 | 中国电信股份有限公司 | 一种计算跨域路由的方法、服务器以及系统 |
WO2015171905A1 (en) | 2014-05-08 | 2015-11-12 | Micron Technology, Inc. | In-memory lightweight coherency |
US9672043B2 (en) | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
WO2015179433A2 (en) * | 2014-05-19 | 2015-11-26 | Bay Microsystems, Inc. | Methods and systems for accessing remote digital data over a wide area network (wan) |
CN104244118B (zh) | 2014-08-20 | 2018-05-08 | 上海交通大学 | 基于阵列波导光栅的模块化互连网络的构建方法 |
US9760406B2 (en) | 2014-09-02 | 2017-09-12 | Ab Initio Technology Llc | Controlling data processing tasks |
WO2016037262A1 (en) | 2014-09-09 | 2016-03-17 | Viscore Technologies Inc. | Low latency optically distributed dynamic optical interconnection networks |
GB2549442A (en) * | 2014-09-24 | 2017-10-25 | Ibm | Data packet processing |
US9282384B1 (en) | 2014-10-07 | 2016-03-08 | Huawei Technologies Co., Ltd. | System and method for commutation in photonic switching |
US9690705B1 (en) | 2014-12-09 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for processing data sets according to an instructed order |
US10387179B1 (en) | 2014-12-16 | 2019-08-20 | Amazon Technologies, Inc. | Environment aware scheduling |
US10003552B2 (en) | 2015-01-05 | 2018-06-19 | Brocade Communications Systems, Llc. | Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches |
US9787594B2 (en) | 2015-01-08 | 2017-10-10 | Coriant Operations, Inc. | Procedures, apparatuses, systems, and computer program products for adaptive tunnel bandwidth by using software defined networking |
US20160210159A1 (en) | 2015-01-19 | 2016-07-21 | Microsoft Microsoft Technology Licensing, LLC | User Mode Driver Extension and Preprocessing |
WO2016123042A1 (en) | 2015-01-26 | 2016-08-04 | Dragonfly Data Factory Llc | Data factory platform and operating system |
US9866427B2 (en) | 2015-02-16 | 2018-01-09 | Juniper Networks, Inc. | Multi-stage switch fabric fault detection and handling |
US9860614B2 (en) | 2015-05-13 | 2018-01-02 | Huawei Technologies Co., Ltd. | System and method for hybrid photonic electronic switching |
GB2539641B (en) | 2015-06-11 | 2019-04-03 | Advanced Risc Mach Ltd | Coherency between a data processing device and interconnect |
US9847936B2 (en) | 2015-06-25 | 2017-12-19 | Intel Corporation | Apparatus and method for hardware-accelerated packet processing |
US10505849B1 (en) | 2015-07-02 | 2019-12-10 | Cisco Technology, Inc. | Network traffic load balancing |
US10572509B2 (en) | 2015-07-27 | 2020-02-25 | Cisco Technology, Inc. | Scalable spine nodes with partial replication of routing information in a network environment |
US10223162B2 (en) | 2015-07-27 | 2019-03-05 | Advanced Micro Devices, Inc. | Mechanism for resource utilization metering in a computer system |
US10198281B2 (en) | 2015-08-28 | 2019-02-05 | Vmware, Inc. | Hybrid infrastructure provisioning framework tethering remote datacenters |
US10104171B1 (en) * | 2015-11-25 | 2018-10-16 | EMC IP Holding Company LLC | Server architecture having dedicated compute resources for processing infrastructure-related workloads |
US9946671B1 (en) | 2015-12-15 | 2018-04-17 | Cavium, Inc. | Methods and systems for processing read and write requests |
US10498654B2 (en) | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
US9906460B2 (en) | 2015-12-31 | 2018-02-27 | Alcatel-Lucent Usa Inc. | Data plane for processing function scalability |
US10445271B2 (en) | 2016-01-04 | 2019-10-15 | Intel Corporation | Multi-core communication acceleration using hardware queue device |
WO2017119098A1 (ja) | 2016-01-07 | 2017-07-13 | 株式会社日立製作所 | 計算機システム及び計算機の制御方法 |
US10492104B2 (en) | 2016-03-10 | 2019-11-26 | Cable Television Laboratories, Inc. | Latency reduction in wireless service |
CN105847148B (zh) | 2016-03-18 | 2019-07-16 | 上海斐讯数据通信技术有限公司 | 一种数据帧转发控制方法及系统 |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10552205B2 (en) | 2016-04-02 | 2020-02-04 | Intel Corporation | Work conserving, load balancing, and scheduling |
US10305821B2 (en) | 2016-05-24 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | Facilitating hot-swappable switch fabric cards |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
US10169238B2 (en) * | 2016-09-30 | 2019-01-01 | International Business Machines Corporation | Memory access for exactly-once messaging |
US10880001B2 (en) | 2016-10-07 | 2020-12-29 | Cox Communications, Inc. | System, methods, and devices for distributed physical layer networks |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US11119923B2 (en) * | 2017-02-23 | 2021-09-14 | Advanced Micro Devices, Inc. | Locality-aware and sharing-aware cache coherence for collections of processors |
US10425707B2 (en) | 2017-03-29 | 2019-09-24 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
CN110731070A (zh) | 2017-03-29 | 2020-01-24 | 芬基波尔有限责任公司 | 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络 |
WO2018183553A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups |
US10565112B2 (en) | 2017-04-10 | 2020-02-18 | Fungible, Inc. | Relay consistent memory management in a multiple processor system |
US10303594B2 (en) * | 2017-04-17 | 2019-05-28 | Intel Corporation | Guaranteed forward progress mechanism |
US10304154B2 (en) | 2017-04-24 | 2019-05-28 | Intel Corporation | Coordination and increased utilization of graphics processors during inference |
US10409614B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
US20180322386A1 (en) | 2017-05-05 | 2018-11-08 | Intel Corporation | Fine-grain compute communication execution for deep learning frameworks |
US20180341494A1 (en) | 2017-05-26 | 2018-11-29 | Intel Corporation | Accelerating network security monitoring |
US10303603B2 (en) | 2017-06-13 | 2019-05-28 | Microsoft Technology Licensing, Llc | Low power multi-core coherency |
US10282298B2 (en) * | 2017-06-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Store buffer supporting direct stores to a coherence point |
US11238203B2 (en) * | 2017-06-30 | 2022-02-01 | Intel Corporation | Systems and methods for accessing storage-as-memory |
CN117348976A (zh) | 2017-07-10 | 2024-01-05 | 微软技术许可有限责任公司 | 用于流处理的数据处理单元 |
CN110915173B (zh) | 2017-07-10 | 2022-04-29 | 芬基波尔有限责任公司 | 用于计算节点和存储节点的数据处理单元 |
US11030126B2 (en) | 2017-07-14 | 2021-06-08 | Intel Corporation | Techniques for managing access to hardware accelerator memory |
US11194753B2 (en) * | 2017-09-01 | 2021-12-07 | Intel Corporation | Platform interface layer and protocol for accelerators |
US11249779B2 (en) | 2017-09-01 | 2022-02-15 | Intel Corporation | Accelerator interconnect assignments for virtual environments |
US10303609B2 (en) | 2017-09-28 | 2019-05-28 | Intel Corporation | Independent tuning of multiple hardware prefetchers |
US11263143B2 (en) * | 2017-09-29 | 2022-03-01 | Intel Corporation | Coherent accelerator fabric controller |
CN111149329A (zh) | 2017-09-29 | 2020-05-12 | 芬基波尔有限责任公司 | 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议 |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
US20200169513A1 (en) | 2017-09-29 | 2020-05-28 | Fungible, Inc. | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths |
WO2019104090A1 (en) | 2017-11-21 | 2019-05-31 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
US10949303B2 (en) | 2017-12-11 | 2021-03-16 | Fungible, Inc. | Durable block storage in data center access nodes with inline erasure coding |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US11706099B2 (en) | 2018-06-29 | 2023-07-18 | Juniper Networks, Inc. | Monitoring and policy control of distributed data and control planes for virtual nodes |
US10645187B2 (en) | 2018-07-13 | 2020-05-05 | Fungible, Inc. | ARC caching for determininstic finite automata of regular expression accelerator |
US20200028776A1 (en) | 2018-07-20 | 2020-01-23 | Netsia, Inc. | SYSTEM AND METHOD FOR A TRANSLATOR SUPPORTING MULTIPLE SOFTWARE DEFINED NETWORK (SDN) APPLICATION PROGRAMMING INTERFACES (APIs) |
US10951393B2 (en) | 2018-10-11 | 2021-03-16 | Fungible, Inc. | Multimode cryptographic processor |
US10761931B2 (en) | 2018-10-24 | 2020-09-01 | Fungible, Inc. | Inline reliability coding for storage on a network |
US10827191B2 (en) | 2018-11-02 | 2020-11-03 | Fungible, Inc. | Parallel coding of syntax elements for JPEG accelerator |
US20200159859A1 (en) | 2018-11-19 | 2020-05-21 | Fungible, Inc. | History-based compression pipeline for data compression accelerator of a data processing unit |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
US11210126B2 (en) | 2019-02-15 | 2021-12-28 | Cisco Technology, Inc. | Virtual infrastructure manager enhancements for remote edge cloud deployments |
WO2021050951A1 (en) | 2019-09-11 | 2021-03-18 | Intel Corporation | Hardware queue scheduling for multi-core computing environments |
US20210117249A1 (en) | 2020-10-03 | 2021-04-22 | Intel Corporation | Infrastructure processing unit |
US11812362B2 (en) | 2021-03-01 | 2023-11-07 | Juniper Networks, Inc. | Containerized router with a disjoint data plane |
US20220116487A1 (en) | 2021-12-20 | 2022-04-14 | Intel Corporation | Method and apparatus to perform operations on multiple segments of a data packet in a network interface controller |
-
2018
- 2018-07-10 CN CN201880046048.2A patent/CN110915173B/zh active Active
- 2018-07-10 WO PCT/US2018/041464 patent/WO2019014237A1/en active Search and Examination
- 2018-07-10 WO PCT/US2018/041506 patent/WO2019014265A1/en active Search and Examination
- 2018-07-10 EP EP18753483.9A patent/EP3625940A1/en not_active Withdrawn
- 2018-07-10 US US16/031,676 patent/US10659254B2/en active Active
- 2018-07-10 EP EP18746491.2A patent/EP3625939A1/en not_active Withdrawn
- 2018-07-10 US US16/031,921 patent/US11303472B2/en active Active
- 2018-07-10 CN CN201880046043.XA patent/CN110915172A/zh active Pending
-
2020
- 2020-05-18 US US16/877,050 patent/US11546189B2/en active Active
-
2022
- 2022-03-29 US US17/657,081 patent/US11824683B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020015387A1 (en) * | 2000-08-02 | 2002-02-07 | Henry Houh | Voice traffic packet capture and analysis tool for a data network |
US20040210320A1 (en) * | 2002-06-11 | 2004-10-21 | Pandya Ashish A. | Runtime adaptable protocol processor |
US20070073966A1 (en) * | 2005-09-23 | 2007-03-29 | Corbin John R | Network processor-based storage controller, compute element and method of using same |
CN101447986A (zh) * | 2007-11-27 | 2009-06-03 | 国际商业机器公司 | 具有分区的片上网络及其处理方法 |
WO2009114554A2 (en) * | 2008-03-12 | 2009-09-17 | Mips Technologies, Inc. | Efficient, scalable and high performance mechanism for handling io requests |
US20120076153A1 (en) * | 2009-04-27 | 2012-03-29 | Lsi Corporation | Statistics module for network processors in virtual local area networks |
CN103004158A (zh) * | 2011-01-06 | 2013-03-27 | 马维尔以色列(M.I.S.L)有限公司 | 具有可编程内核的网络设备 |
US20150186313A1 (en) * | 2013-12-27 | 2015-07-02 | Inder M. Sodhi | Managing Shared Resources Between Multiple Processing Devices |
US20150254182A1 (en) * | 2014-03-07 | 2015-09-10 | Cavium, Inc. | Multi-core network processor interconnect with multi-node connection |
US20150355946A1 (en) * | 2014-06-10 | 2015-12-10 | Dan-Chyi Kang | “Systems of System” and method for Virtualization and Cloud Computing System |
US20160188344A1 (en) * | 2014-12-26 | 2016-06-30 | Intel Corporation | Techniques for cooperative execution between asymmetric processor cores |
US20170061566A1 (en) * | 2015-08-26 | 2017-03-02 | Intel Corporation | Technologies for offloading network packet processing to a gpu |
US20170083257A1 (en) * | 2015-09-23 | 2017-03-23 | Oracle International Corporation | On-chip Atomic Transaction Engine |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022000347A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳市大疆创新科技有限公司 | 图像处理方法、显示处理装置和计算机可读存储介质 |
CN111984679A (zh) * | 2020-07-02 | 2020-11-24 | 中科驭数(北京)科技有限公司 | 硬件加速数据库的访问方法、装置、主机、系统及介质 |
CN113392608A (zh) * | 2021-06-25 | 2021-09-14 | 成都海光集成电路设计有限公司 | 电路生成方法、装置、电子设备及存储介质 |
CN113392608B (zh) * | 2021-06-25 | 2023-08-29 | 成都海光集成电路设计有限公司 | 电路生成方法、装置、电子设备及存储介质 |
WO2023060891A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 数据处理方法、装置、系统、设备、存储介质及程序产品 |
WO2023093091A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 数据存储系统、智能网卡及计算节点 |
WO2024093958A1 (zh) * | 2022-11-01 | 2024-05-10 | 华为云计算技术有限公司 | 一种存储池的访问方法以及装置 |
CN115662518A (zh) * | 2022-12-27 | 2023-01-31 | 四川大学华西医院 | 一种基因测序存算协作系统、方法和计算机可读存储介质 |
CN117573218A (zh) * | 2023-10-24 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 一种基于数据处理单元的应用识别硬件卸载方法及装置 |
CN117573218B (zh) * | 2023-10-24 | 2024-09-27 | 中科驭数(北京)科技有限公司 | 一种基于数据处理单元的应用识别硬件卸载方法及装置 |
CN117376061A (zh) * | 2023-10-31 | 2024-01-09 | 中科驭数(北京)科技有限公司 | 服务访问方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190013965A1 (en) | 2019-01-10 |
US10659254B2 (en) | 2020-05-19 |
EP3625940A1 (en) | 2020-03-25 |
CN110915172A (zh) | 2020-03-24 |
US11824683B2 (en) | 2023-11-21 |
US20220224564A1 (en) | 2022-07-14 |
US11303472B2 (en) | 2022-04-12 |
EP3625939A1 (en) | 2020-03-25 |
US11546189B2 (en) | 2023-01-03 |
US20190012278A1 (en) | 2019-01-10 |
WO2019014265A1 (en) | 2019-01-17 |
CN110915173B (zh) | 2022-04-29 |
WO2019014237A1 (en) | 2019-01-17 |
US20200280462A1 (en) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110915173B (zh) | 用于计算节点和存储节点的数据处理单元 | |
US11842216B2 (en) | Data processing unit for stream processing | |
EP4447421A2 (en) | Switch-managed resource allocation and software execution | |
US20210243247A1 (en) | Service mesh offload to network devices | |
US10841245B2 (en) | Work unit stack data structures in multiple core processor system for stream data processing | |
US20220103530A1 (en) | Transport and cryptography offload to a network interface device | |
WO2022169519A1 (en) | Transport and crysptography offload to a network interface device | |
US20240259322A1 (en) | Systems, devices and methods with offload processing devices | |
Rizzo | Revisiting Network I/O APIs: The netmap Framework: It is possible to achieve huge performance improvements in the way packet processing is done on modern operating systems. | |
Arslan et al. | Nanotransport: A low-latency, programmable transport layer for nics | |
CN115917473A (zh) | 用分布式lpm实现的高度可扩展算法构建数据结构的系统 | |
CN117529904A (zh) | 分组格式调整技术 | |
US11552907B2 (en) | Efficient packet queueing for computer networks | |
Lant et al. | Enabling shared memory communication in networks of MPSoCs | |
US20220060418A1 (en) | Network interface device-based computations | |
Liu | Building Distributed Systems Using Programmable Networks | |
US20230393814A1 (en) | In-network compute operations | |
US20230379309A1 (en) | In-network compute operations utilizing encrypted communications | |
US20230379154A1 (en) | In-network compute operations utilizing encrypted communications | |
US20230388281A1 (en) | In-network compute operations utilizing encrypted communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230906 Address after: Washington State Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: California, USA Patentee before: FUNGIBLE Inc. |
|
TR01 | Transfer of patent right |