CN117971715A - 多处理器系统中的中继一致存储器管理 - Google Patents

多处理器系统中的中继一致存储器管理 Download PDF

Info

Publication number
CN117971715A
CN117971715A CN202410223367.3A CN202410223367A CN117971715A CN 117971715 A CN117971715 A CN 117971715A CN 202410223367 A CN202410223367 A CN 202410223367A CN 117971715 A CN117971715 A CN 117971715A
Authority
CN
China
Prior art keywords
processing unit
unit
shared memory
work
message
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.)
Pending
Application number
CN202410223367.3A
Other languages
English (en)
Inventor
W·诺雷丁
J-M·弗雷郎
P·辛德胡
B·塞莱特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN117971715A publication Critical patent/CN117971715A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开的实施例涉及多处理器系统中的中继一致存储器管理。在所公开的实施例中,一种系统具有第一处理器和第二处理器,其中每个处理器能够访问存储器系统。第一工作单元被接收以用于由第一处理器执行,其中存储器系统被访问。在第一工作单元的执行时,第二工作单元被生成以用于由第二处理器执行。仅在存储器系统被更新之后,由第二处理器对第二工作单元的处理才发生。这种基于工作单元消息的排序为多个处理器的存储器操作提供了中继一致性。

Description

多处理器系统中的中继一致存储器管理
本申请是国际申请号为PCT/US2018/026873、国际申请日为2018年04月10日、于2019年12月09日进入中国国家阶段、中国国家申请号为201880038296.2、发明名称为“多处理器系统中的中继一致存储器管理”的中国发明专利申请的分案申请。
交叉引用
本申请要求于2017年4月10日提交的美国临时专利申请第62/483,844号和于2018年2月2日提交的美国临时专利申请第62/625,518号的权益,每个申请的全部内容通过引用整体并入本文。
技术领域
本公开涉及例如在联网和存储领域中用于处理信息的分组的多处理器系统。
背景技术
网络设备(例如,防火墙、交换机、路由器、存储装置/计算服务器或其他网络连接设备)通常利用多核处理器系统或多处理单元系统来实现提高的性能。然而,利用具有多个处理单元的系统来处理诸如网络分组数据的流可能带来很多编程挑战。例如,通常难以将一个分组或一组分组的处理从一个处理单元移动到另一处理单元,诸如为了跨处理单元的负载平衡。将程序执行从一个处理单元转换到另一处理单元可能很困难,并且通常需要蛮力移动或状态的映射、高速缓存的数据以及与程序执行相关联的其他存储器块。在实现高吞吐量和利用率的同时保持跨处理单元的高速缓存的数据和其他存储器的一致性通常在技术上极具挑战。例如,当使用相干存储器时,由存储器相干协议执行的操作可能导致显著的处理开销和延迟。当使用非相干存储器时,相干协议的开销被避免,但是某些处理单元可能无法访问由另一处理单元高速缓存的数据。
例如,存储器可以在具有两个或更多个同时运行的处理器的多处理器或多核系统中被共享,每个处理器具有一个或多个本地存储器高速缓存。然而,如果一个处理器或核改变特定存储器位置处的数据,则通常存在用以将改变通知给所有处理器或核以使相应的本地存储器高速缓存无效或利用已更新信息刷新高速缓存的过程。这种过程通常被称为存储器相干协议,并且根据该协议操作的存储器被称为相干存储器。通常,支持相干存储器需要跟踪高速缓存行状态并且处理针对被高速缓存在处理器或处理核以及系统的其他元件内的所有存储器块的相关联的事务。
相反,非相干存储器不提供跟踪和更新数据以保持高速缓存相干性。在没有与传统相干存储器系统相关联的处理开销和延迟的情况下,存储器访问和利用可以非常快速和高效。存在大量的应用不能从相干存储器系统受益,特别是那些线性地处理数据的应用(例如,处理一次,因此访问的时间局部性很差)。这些“流”应用(诸如联网和存储基础结构工作负载)在大型数据中心中变得越来越重要。对于这样的应用,使用相干存储器系统往往会导致大量开销,而回报却很少。
发明内容
描述了这样的技术,其中具有多个处理单元的系统在处理流水线中处理一系列工作单元,其中一些或所有工作单元访问或操纵被存储在非相干存储器中的数据。在一些示例中,处理单元可以是处理核,并且在其他示例中,处理单元可以是虚拟处理器、硬件线程、硬件块或其他子处理核单元。如本文所述,处理单元可以对由工作单元指定的数据执行操作。在处理工作单元时,处理单元可以将来自非相干存储器的数据高速缓存到与处理单元相关联的高速缓存的段中,并且使用该高速缓存的数据执行由工作单元指定的操作。一旦工作单元已经完成了处理,处理单元就可以针对该段(或该段的一部分)发起高速缓存刷新以将脏高速缓存数据写回到非相干存储器。非相干存储器或非相干存储器的一部分的所有权的转移可以通过工作单元消息向另一处理单元的递送而被居间(mediate)。工作单元消息的递送可以与相关高速缓存段中的数据的刷新互锁(由其门控)。
在一个示例中,本公开描述了一种中继一致存储器管理方法,该方法包括:接收第一工作单元以用于由多处理器系统的第一处理器执行,该多处理器系统具有被耦合到存储器系统的第一处理器和第二处理器;执行第一工作单元,其中存储器系统被访问;在第一工作单元的执行时,生成第二工作单元以用于由第二处理器执行;更新存储器系统;以及通过延迟由第二处理器对第二工作单元的处理直到存储器系统被更新来提供中继一致性。
在另一示例中,本公开描述了一种数据处理系统,包括:存储器系统;第一处理器,其能够访问存储器系统,接收第一工作单元以用于执行,以及在第一工作单元的执行时生成第二工作单元以用于由第二处理器执行;存储管理系统,其被连接到第一处理器并且能够更新存储器系统,其中由第二处理器对第二工作单元的执行在存储器系统更新之后发生以提供中继一致性。
在另一示例中,本公开描述了一种流处理系统,包括:被配置为接受并且流传输信息的多个处理器,多个处理器包括第一处理器,第一处理器能够访问存储器系统,接收第一工作单元以用于执行,以及在第一工作单元的执行时生成第二工作单元以用于由第二处理器执行;被连接到第一处理器并且能够更新存储器系统的存储管理系统,其中由第二处理器对第二工作单元的执行在存储器系统更新之后发生以提供中继一致性。
在另一示例中,本公开描述了一种系统,包括:具有第一处理单元和第二处理单元的多处理器系统;以及具有由第一处理单元和第二处理单元二者可访问的相干存储器和非相干存储器的存储器系统,其中存储器系统被配置为保持第一处理单元和第二处理单元针对相干存储器的高速缓存相干性,而不保持第一处理单元和第二处理单元关于非相干存储器的高速缓存相干性;其中第一处理单元被配置为:执行第一工作单元,其中执行第一工作单元包括访问被存储在存储器系统的非相干存储器中的数据,生成第二工作单元以用于由第二处理单元执行,更新存储器系统的非相干存储器的一部分,以及在更新完成时,向第二处理单元转移存储器系统的非相干存储器的该一部分的所有权;并且其中第二处理单元被配置为:在第一处理单元转移存储器系统的非相干存储器的该一部分的所有权之前,延迟第二工作单元的执行,并且在第一处理单元转移存储器系统的非相干存储器的该一部分的所有权之后,执行第二工作单元,其中执行第二工作单元包括访问被存储在存储器系统的非相干存储器的该一部分中的数据。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书和附图以及根据权利要求书,本公开的其他特征、目的和优点将很清楚。
附图说明
参考以下附图描述了本公开的非限制性和非穷举性的实施例,其中除非另外指明,否则贯穿各个附图,相同的附图标记表示相同的部分。
图1A是示出流处理的一个方面的框图;
图1B是示出与工作单元处理兼容的处理和存储器系统的框图;
图1C是示出由多个核进行的高速缓冲存储器访问的框图;
图1D是示出工作单元处理的图。
图2是示出用于处理工作单元的方法的流程图。
图3是根据本公开的实施例的示例装置的框图;以及
图4是示出实施例的示例功能块的图。
具体实施方式
在以下描述中,参考附图,附图形成以下描述的一部分,并且在附图中,通过图示示出了其中可以实践本公开的具体的示例性实施例。足够详细地描述了这些实施例,以使得本领域技术人员能够实践本文中公开的概念,并且应当理解,在不脱离本公开的范围的情况下,可以对各种公开的实施例进行修改,并且可以利用其他实施例。因此,以下详细描述不应当被视为限制性的。
本公开描述了一种支持存储器模型的系统,该存储器模型关于多个处理器在多个存储器地址位置处提供存储器操作的一致顺序。由于与一致的存储器操作相关的信息在处理器之间被中继,因此这一存储器模型和存储器管理系统在本文中称为“中继一致”,并且非常适合于使用一系列处理器处理数据的“流”应用。在一个实施例中,一种系统具有第一处理器和第二处理器,其中每个处理器能够访问存储器系统。第一工作单元被接收以用于由第一处理器执行,其中存储器系统被访问。在第一工作单元的执行时,第二工作单元被生成以用于由第二处理器执行。仅在存储器系统被更新之后,由第二处理器对第二工作单元的处理才发生。这种基于工作单元消息的排序为多个处理器的存储器操作提供了中继一致性。如本公开中讨论的,处理器可以包括但不限于通用处理器、多核处理器、单个核、协处理器、诸如加密或图形处理器等专用计算硬件、虚拟处理器、进程线程、和/或能够执行计算任务的任何其他合适的逻辑组件或进程。
如本文所述,流信息的处理可以与“工作单元”相关联。作为一个示例,工作单元(WU)是一种容器,其与流状态相关联并且被用于描述(即,指向)流(被存储在存储器中)内的数据以及任何相关联的元数据和要对该数据执行的操作。例如,工作单元可以动态地起源于被耦合到多处理器系统的外围单元内(例如,由联网单元、主机单元或固态驱动接口注入),或者与数据的一个或多个流相关联地起源于处理器自身内,并且终止于系统中的一个系统的另一外围单元或另一处理器处。工作单元与和执行工作单元以用于处理流的相应部分的实体相关的工作量相关联。
所描述的系统还可以支持用于某些操作的相干存储器高速缓存。通常,需要相干存储器的数据通常是处理器生成的“流数据”。流数据结构得益于相干存储器,主要是因为,多个处理器或核需要访问和修改流数据。例如,由流携带的信息可以包括用于状态协议的状态、用以对检查的分组的数目计数的计数器、用于错误处理协议的状态以及其他在计算上有用的数据。
流处理是一种非常适合于高性能和高效率处理的数据处理架构的类型。流被定义为计算对象的有序单向序列,其长度可以无限制或不确定。在一个简单的实施例中,流起源于生产者并且终止于消费者,并且按顺序被操作。在一些实施例中,流可以被定义为流片段的序列;每个流片段包括在物理地址空间中连续可寻址的存储块、到该块中的偏移和有效长度。
流可以是离散的,诸如从网络接收的分组序列,也可以是连续的,诸如从存储设备读取的字节流。作为处理的结果,一种类型的流可以被转换成另一种类型。例如,TCP接收(Rx)处理消耗段(片段)以产生有序字节流。反向处理在传输(Tx)方向中被执行。独立于流类型,流操纵需要有效的片段操纵,其中片段被定义如上。
应用可以按照三种方式对流进行操作:第一种是协议处理,其包括对流内的控制信息或报头进行操作;第二种是有效载荷处理,其涉及对流内的数据的大量访问;并且第三种是控制和数据访问二者的结合。协议处理的一个特别重要的情况是网络分组处理,它必须具有很高的性能才能以线速(line rate)来吸收传入业务。传统的主机端数据递送也可以被映射到流模型。例如,向主机存储器中的网络接口卡(NIC)缓冲器的递送涉及:消耗分组缓冲器(片段)的流,以及生成消耗通知缓冲器的流的完成的流。类似地,向应用缓冲器(例如,SCSI缓冲器)的递送涉及消耗分散描述符(片段)的流以放置所接收的有效载荷的流。
如关于图1A的系统10可见,流处理是一种特殊类型的传统的通用处理,其支持关于访问和方向性二者的特殊限制。处理通常在任何时间仅访问流的有限部分,其被称为“窗口”,处理可以访问该有限部分内的随机地址。相反,通用处理将整个存储器视为随时随机可访问。窗口外部的对象无法通过流接口可访问。流处理通常沿一个方向(被称为正向方向)或者在图1A中从左向右进行。窗口的向后移动是可能的,但通常不常见。
在关于图1B的系统20而被示出的公开的实施例中,流信息的处理可以与“工作单元”相关联。如上所述,工作单元可以是一种容器,其与流状态关联并且被用于描述(即,指向)流(被存储在存储器中)内的数据、相关联的元数据和要对该数据执行的操作。工作单元起源于外围单元内(例如,由网络单元、主机单元或固态驱动接口注入)或处理器内,并且终止于外围单元或处理器处。工作单元与和执行工作单元的实体相关的工作量相关联。在系统内,工作单元可以由处理器核、硬件模块、I/O接口或其他计算处理单元执行。例如,处理器核通过访问存储器并且执行计算来执行工作单元。系统的组件可以接收、执行或生成工作单元。
流处理可以被分为在源与目的地之间的多个中间处理器(或没有)处被执行的工作单元。根据在每个阶段要被执行的工作量,所涉及的中间处理器的数目和类型可以有所不同。例如,处理加密流可以涉及加密处理器,而加密处理器在处理明文流中不是必需的。
存储器缓冲器的所有权的转移可以由工作单元消息来居间,在一些实施例中,工作单元消息可以是小消息,该小消息使用片上结构作为低等待时间通知被递送到处理核。指向缓冲器的指针可以被包括以用于处理。例如,工作单元消息可以是4单词消息。第一单词可以是报头,包含针对消息递送所必需的信息以及被用于工作单元执行的信息,诸如指向用于由处理器核执行的函数的指针。其他单词可以包含要被传递给函数调用的参数,诸如指向存储器中数据的指针、参数值,或者包含在执行工作单元时被使用的其他信息。工作单元消息报头可以指定处理与分组相对应的工作单元的核。工作单元消息可以包含作为存储有分组的存储器的地址的参数。另一参数可以包含接口块与分组相关联的信息。在一个实施例中,通过在工作单元接收队列中接收消息来发信号通知接收工作单元的。工作单元队列与诸如核等处理元件相关联,并且在工作单元消息的报头中可寻址。核可以通过执行到被映射到工作单元传输队列的地址的存储指令来生成工作单元消息。存储指令将消息的内容写入队列。工作单元消息的释放可以被与核的脏高速缓存数据的刷新互锁(由其门控)。
每个工作单元消息可以被传递(包括信令,例如快速中断),使得在接收到工作单元消息之后,处理器的处理可以非常迅速地开始。当执行控制从执行一个工作单元消息传递到执行另一工作单元消息时,自动完成了将工作单元消息用作确保非相干存储器系统同步的消息传递方式。下面提供使用工作单元消息用于联网单元中的平滑操作流的示例。
在一个示例中,多核处理器的联网单元可以在第一时间接收网络分组。联网单元可以在缓冲存储器中分配空间,并且可以通过对缓冲存储器执行写入操作来用来自网络分组的位填充所分配的缓冲存储器空间。缓冲存储器可以在第二时间向联网单元发送确认。然后,联网单元可以向第一处理器核发送第一工作单元消息,以开始网络分组的处理。第一核可以确定该特定分组的操作流程可以是什么,并且可以进行该操作流程。在该时间段内,可以涉及一些读取和/或写入操作。然后,第一核可以向第二核发送第二工作单元消息,第二核可以是负责处理该流的分组的核。然后可以进行第二核的处理。接下来,可以进行更高级别的处理(例如,深度分组检查),并且可以从第二核向第三核发送第三工作单元消息。第三核的处理可以完成,随后,第三核可以向主机单元发送第四工作单元消息。还可以有很多事务可以释放所分配的缓冲存储器。当执行控制从由一个核执行一个消息传递到由另一核执行另一消息时,可以利用经由工作单元消息进行的通信来确保非相干存储器系统的同步自动完成。
有利地,使用工作单元在流、流水线处理器或其他可同步计算单元上进行操作可以达到多个目的。通过尽可能多地交换和操作指针,可以最大程度地减少数据移动。由于传输了有用的元数据(诸如处理结果和控制状态),因此提高了处理效率。通过将流细分为在每个步骤中关于下游阶段的计算消耗率进行移动的独立的工作元素,可以对分组和相关数据进行原子和一致的处理,从而实现自然的流水线和流量控制。
图1C示出了具有在时间t1、t2、t3、t4等上操作以从存储器系统进行读取和写入的多个处理器X和Y的数据处理系统100A的操作。处理器可以包括连接的独立处理器、在单个管芯上的每个处理器、在单个管芯上的多个处理器核、或者一个或多个独立处理器和处理器核的连接布置。可以在虚拟流水线中在核之间传递或中继任务的执行,在该图中由在时间t2在核X与核Y之间延伸的箭头表示。可以通过在处理器X和Y之间中继消息来部分保持关于存储器系统中的多个存储器高速缓存的数据一致性,其中所选择的地址处的数据以适用的间隔更新。在该实施例中,处理器核X可以在时间间隔t1期间将数据写入高速缓冲存储器中的地址a1。在时间间隔t2,可以完成与保存在地址a1处的数据相关的任务的执行,并且将传递给核Y的消息指示地址a1处的数据的有效性(如箭头101所示)。在时间间隔t3,核Y能够处理数据,并且能够依靠保存在地址a1处的数据的有效性,而无需更新高速缓存和刷新高速缓存行,因为消息101较早传输。在时间间隔t4,核X可以在新地址a2处放置数据,并且核Y可以将数据和消息中继到另一处理器(未显示)。诸如图1C所示的系统中的高速缓冲存储器更新的定时可以用于提高数据处理操作的整体速度。
图1D示出了操作(如线102所示)以从存储器系统读取和写入(线14)的数据处理系统100B的操作。在某些实施例中,如箭头106所示,数百个处理器和/或处理器核可以访问(例如,读取或写入)存储器。处理器的操作被划分为离散工作单元,在此称为第一工作单元、第二工作单元和无限地扩展到第N工作单元。每个工作单元通常构成数百个操作。在工作单元之间管理处理器对存储器的访问(由弯曲的箭头18指示),以允许高速缓存刷新互锁、高速缓存行刷新、以及针对需要系统范围的一致性的数据的更新。
图2示出了用于处理存储器访问的方法200的一个实施例。在步骤202中,第一核接收第一工作单元。在步骤204中,第一核执行第一工作单元,第一工作单元通常需要多次读取和写入存储器(步骤206)。在步骤208中,与第一核相关联的本地高速缓存对数据进行高速缓存。当第一工作单元正在执行时,该高速缓存不被操作以保持与系统中其他高速缓存的一致性。当第一工作单元执行完成时(步骤210),准备第二工作单元,并且将其与指示所选择的地址处的数据所有权的消息一起传递到第二处理器核上。第一核请求高速缓存刷新所有脏线(步骤212)并且接收新工作单元(步骤202)以继续数据处理操作。该高速缓存刷新互锁系统有效地提供了工作单元消息传递以通过高速缓存刷新来门控
图3示出了根据本公开的实施例的示例装置300。在一些实施例中,装置300可以是电子装置或其组件,并且电子装置可以是例如但不限于智能电话、智能可穿戴设备、移动或其他便携式设备、成像装置、或计算装置,诸如平板计算机、膝上型计算机、笔记本计算机、台式计算机或服务器。在一些实施例中,装置300可以以一个或多个IC芯片的形式实现,例如但不限于一个或多个多核中央处理单元(CPU)或多核处理器。
装置300可以包括图3所示的组件中的一些或全部。例如,装置300可以包括多核处理器310(在下文中可互换地称为“处理器310”)和存储器设备320。存储器设备320可以包括两种类型的存储器或存储器设备,即:非相干(缓冲)存储器设备322和相干存储器设备324。处理器310可以包括多个核350(1)-350(N),其中N是大于1的正整数。处理器310还可以包括存储器控制器330和联网单元370。处理器310还可以包括随机存取存储器(RAM)340和高速缓存360。装置300的每个组件可以部分地或完全地以硬件形式实现。例如,装置300的每个组件可以包括由一个或多个晶体管、一个或多个二极管、一个或多个电阻器、一个或多个电容器、一个或多个电感器、一个或多个变容二极管和/或一个或多个忆阻器形成的电子电路。
核350(1)-350(N)中的每个可以被配置、适配、设计或以其他方式布置为处理与给定数据分组(例如,网络分组或存储分组)相关的一个或多个事件或活动。联网单元370可以被配置、适配、设计或以其他方式布置为从一个或多个外部设备接收一个或多个数据分组以及向一个或多个外部设备传输一个或多个数据分组。RAM 340可以用作消息传递接口,并且可以包括出口工作单元(WU)队列345。
存储器控制器330可以被通信地耦合到存储器设备320(包括非相干存储器设备322和相干存储器设备324)、核350(1)-350(N)、联网单元370、RAM 340和高速缓存360。存储器控制器330可以控制核350(1)-350(N)和任何数目的外部客户端对存储器设备320的访问。存储器控制器330可以被配置、适配、设计或以其他方式布置为执行很多操作以根据本公开来进行存储器管理。因此,参考图3,存储器控制器330被示出为包括转换后备缓冲器(TLB)332、存储器管理单元(334)、门336、刷新有限状态机(FSM)335、加载/存储单元(LSU)338和映射表337的功能块。
在一些实施例中,存储器控制器330可以能够将来自核350(1)-350(N)之一的访问映射到非相干存储器设备322和相干存储器设备324中的任何一个。在一些实施例中,在映射访问时,存储器控制器330可以基于一个或多个标准来映射访问。例如,标准可以包括地址范围、指令或该指令内的操作代码、特殊访问或其组合。
在一些实施例中,存储器控制器330可以能够通过执行多个操作将虚拟地址映射到非相干存储器设备322的物理地址。例如,存储器控制器330可以使用用于数据分组的离散流的TLB条目来映射到非相干存储器设备322的缓冲存储器。此外,存储器控制器330可以使用用于数据分组的连续流的TLB条目来映射到流句柄。
在一些实施例中,在被多个核350(1)-350(N)中的第一核使用之后,存储器控制器330可以能够刷新与非相干存储器设备322的缓冲存储器相关联的已修改高速缓存线。此外,在刷新之后,存储器控制器330可以能够将缓冲存储器的所有权转移到多个核350(1)-350(N)中的第二核。
在一些实施例中,存储器控制器330可以能够通过执行多个操作将多个分段中的一个分段的所有权从多个核350(1)-350(N)中的第一核转移到多个核350(1)-350(N)中的第二核。例如,存储器控制器330可以保持由第一核生成的消息。另外,存储器控制器330可以在第一核使用该段完成事件时刷新该段。此外,存储器控制器330可以响应于以下二者而将消息提供给第二核:(1)对于该段不存在未完成的写入操作,以及(2)该段当前未被刷新。
在一些实施例中,多个核350(1)-350(N)可以能够使用一个或多个工作单元消息以顺序方式处理与由联网单元370接收的一个或多个数据分组中的每个数据分组相关的多个事件。在一些实施例中,在处理与每个数据分组相关的多个事件时,多个核350(1)-350(N)中的第一核可以处理多个事件中的第一事件。此外,第一核可以向多个核350(1)-350(N)中的第二核提供一个或多个工作单元消息中的第一工作单元消息。此外,第二核可以响应于从第一核接收到第一工作单元消息而处理多个事件中的第二事件。
图4示出了具有工作单元消息传递支持的用于高速缓存刷新互锁的多处理器系统400的一部分的相关功能块。在该示例中,处理器402可以通过负载存储单元(LD/ST 403和405)访问L1高速缓存406或工作单元(WU)队列408。工作单元队列与门410互锁,门410阻止消息和数据传递到结构416,除非刷新有限状态机(FSM)412已经响应于对MEM 418的较早回写414而接收到写入完成指示420。应当理解,由于刷新和消息去往不同的接口,因此在设置“刷新正在进行”指示的刷新请求与出现在等待站处的消息之间需要适当的互锁。
与本公开的各方面相关的更多信息可以在以下各项中获取:于2017年6月2日提交的题为“Non-Blocking Any-to-Any Data Center Network with Packet Spraying OverMultiple Alternate Data Paths”的美国临时专利申请No.62/514,583(代理人案卷号1242-002USP1)、于2017年7月10日提交的题为“Data Processing Unit for ComputingDevices”的美国临时专利申请No.62/530,591(代理人案卷号1242-004USP1)、于2017年9月15日提交的题为“Access Node for Data Centers”的美国临时专利申请No.62/559,021(代理人案卷号1242-005USP1)、于2017年11月21日提交的美国专利申请No.62/589,427(代理人案卷号1242-009USP1)、和于2018年2月2日提交的题为“Efficient Work UnitProcessing in a Multicore System”的美国临时专利申请No.62/625,518(代理人案卷号1242-014USP1),它们各自的内容通过引用并入本文。
冠词“一个(a)”和“一个(an)”在本文中用来指代该冠词的语法对象中的一个或多个(即,至少一个)。举例来说,“一个用户”是指一个用户或一个以上用户。在整个说明书中,对“一个实施例(one embodiment)”、“一个实施例(an embodiment)”、“一个示例(oneexample)”或“一个示例(an example)”的引用表示结合该实施例或示例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,在整个说明书中各处的短语“在一个实施例中(in one embodiment)”、“在一个实施例中(in an embodiment)”、“一个示例(one example)”或“一个示例(an example)”的出现不一定指的是同一实施例或示例。此外,在一个或多个实施例或示例中,可以以任何合适的组合和/或子组合来组合特定特征、结构、数据库或特性。另外,应当理解,随此提供的附图是出于对本领域普通技术人员的解释目的,并且附图不一定按比例绘制。
根据本公开的实施例可以实现为装置、方法或计算机程序产品。因此,本公开可以采取以下形式:完全包括硬件的实施例、完全包括软件的实施例(包括固件、常驻软件、微代码等)、或者组合软件和硬件方面的实施例。此外,本公开的实施例可以采取在任何有形表达介质中实现的计算机程序产品的形式,该介质中包含有计算机可用程序代码。
附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就这一点而言,流程图或框图中的每个框可以代表代码的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。还应当注意,框图和/或流程图的每个框、以及框图和/或流程图中的框的组合可以由执行指定功能或动作的基于专用硬件的系统来实现,或者由专用硬件和计算机指令的组合来实现。这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机或其他可编程数据处理设备以特定方式运行,从而使得存储在计算机可读介质中的指令产生包括指令装置的制品,该指令装置实现流程图和/或框图的框中指定的功能/动作。
尽管根据某些实施例描述了本公开,但是鉴于本公开的益处,其他实施例对于本领域技术人员将是很清楚的,包括未提供本文中阐述的所有益处和特征的实施例,这些也在本公开的范围内。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例。

Claims (40)

1.一种方法,包括:
由计算系统中的第一处理单元执行由第一工作单元消息指定的第一工作单元操作,其中执行所述第一工作单元操作包括访问来自所述计算系统内包括的共享存储器的数据,以及将所述数据存储在与所述第一处理单元相关联的第一高速缓存中,其中所述共享存储器由所述计算系统中的所述第一处理单元和第二处理单元共享;
由所述计算系统标识指定第二工作单元操作的第二工作单元消息,其中所述第二工作单元操作访问所述共享存储器;
由所述计算系统通过将来自所述第一高速缓存的所述数据的至少一些数据写入所述共享存储器来更新所述共享存储器;
由所述计算系统接收更新所述共享存储器被完成的指示;以及
由所述计算系统并且通过所述第二工作单元消息向所述第二处理单元的递送,使得所述第二处理单元能够执行所述第二工作单元操作。
2.根据权利要求1所述的方法,其中所述共享存储器由所述第一处理单元、所述第二处理单元和第三处理单元共享,所述方法还包括:由所述第二处理单元执行所述第二工作单元操作,其中所述第二工作单元操作的执行包括访问来自所述共享存储器的所述数据,以及将所述数据存储在与所述第二处理单元相关联的第二高速缓存中,
由所述计算系统标识指定第三工作单元操作的第三工作单元消息,其中所述第三工作单元操作访问所述共享存储器;
由所述计算系统通过将来自所述第二高速缓存的所述数据的至少一些数据写入所述共享存储器来更新所述共享存储器;
由所述计算系统接收指示,所述指示有关于通过将来自所述第二高速缓存的所述数据的至少一些数据写入所述共享存储器来更新所述共享存储器被完成;以及
由所述计算系统并且通过所述第三工作单元消息向所述第三处理单元的递送,使得所述第三处理单元能够执行所述第三工作单元操作。
3.根据权利要求2所述的方法,
其中所述第二工作单元消息指明所述第二处理单元来执行所述第二工作单元操作;以及
其中所述第三工作单元消息指明所述第三处理单元来执行所述第三工作单元操作。
4.根据权利要求1所述的方法,其中使得所述第二处理单元能够执行所述第二工作单元操作包括:
通过所述第二工作单元消息向所述第二处理单元的递送,将所述共享存储器的至少一部分的所有权转移到所述第二处理单元。
5.根据权利要求1所述的方法,其中使得所述第二处理单元能够执行所述第二工作单元操作包括:
延迟所述第二工作单元消息向所述第二处理单元的递送,直到接收到更新所述共享存储器被完成的指示。
6.根据权利要求1所述的方法,其中使得所述第二处理单元能够执行所述第二工作单元操作包括:
释放所述第二工作单元消息到所述第二处理单元以用于由所述第二处理单元执行。
7.根据权利要求1所述的方法,其中使得所述第二处理单元能够执行所述第二工作单元操作包括:
通过刷新所述第一高速缓存来门控所述第二工作单元消息的所述递送。
8.根据权利要求1所述的方法,其中更新所述共享存储器包括:使用高速缓存互锁系统刷新所述第一高速缓存。
9.根据权利要求1所述的方法,
其中所述第一工作单元操作包括处理网络分组内包括的数据;以及
其中所述第二工作单元操作包括处理所述网络分组内包括的所述数据。
10.根据权利要求1所述的方法,
其中所述第一工作单元操作由所述第一工作单元消息通过指针指定所述第一工作单元消息内包括的第一功能,并且
其中所述第二工作单元操作由所述第二工作单元消息通过指针指定所述第二工作单元消息内包括的第二功能。
11.一种系统,包括:
第一处理单元;
第二处理单元;
共享存储器,由所述第一处理单元和所述第二处理单元二者共享;以及
存储器管理系统被配置为:
使得所述第一处理单元能够执行由第一工作单元消息指定的第一工作单元操作,其中执行所述第一工作单元操作包括访问来自所述共享存储器的数据,处理所述数据来生成经修改的数据,并且将所述经修改的数据存储在与所述第一处理单元相关联的第一高速缓存中,
标识指定第二工作单元操作的第二工作单元消息,其中所述第二工作单元操作访问所述共享存储器,
通过将所述经修改的数据写入所述共享存储器来更新所述共享存储器,
接收更新所述共享存储器被完成的指示,以及
在接收到所述指示后并且通过所述第二工作单元消息向所述第二处理单元的递送,使得所述第二处理单元能够执行所述第二工作单元操作。
12.根据权利要求11所述的系统,其中所述系统还包括第三处理单元,其中所述共享存储器由所述第一处理单元、所述第二处理单元和所述第三处理单元共享,并且其中所述存储器管理系统还被配置为:
使得所述第二处理单元能够执行所述第二工作单元操作,其中执行所述第二工作单元操作包括访问来自所述共享存储器的所述经修改的数据,进一步修改所述经修改的数据来生成进一步修改的数据,并且将所述进一步修改的数据存储在与所述第二处理单元相关联的第二高速缓存中,
标识指定第三工作单元操作的第三工作单元消息,其中所述第三工作单元操作访问所述共享存储器,
通过将所述进一步修改的数据写入所述共享存储器来更新所述共享存储器,
接收通过将所述进一步修改的数据写入所述共享存储器来更新所述共享存储器被完成的指示,以及
通过所述第三工作单元消息向所述第三处理单元的递送,使得所述第三处理单元能够执行所述第三工作单元操作。
13.根据权利要求12所述的系统,
其中所述第二工作单元消息指明所述第二处理单元来执行所述第二工作单元操作,以及
其中所述第三工作单元消息指明所述第三处理单元来执行所述第三工作单元操作。
14.根据权利要求11所述的系统,其中用以使得所述第二处理单元能够执行所述第二工作单元操作,所述存储器管理系统还被配置为:
通过所述第二工作单元消息对所述第二处理单元的递送,将所述共享存储器的至少一部分的所有权转移到所述第二处理单元。
15.根据权利要求11所述的系统,其中用以使得所述第二处理单元能够执行所述第二工作单元操作,所述存储器管理系统还被配置为:
延迟所述第二工作单元消息向所述第二处理单元的递送,直到接收到更新所述共享存储器被完成的指示。
16.根据权利要求11所述的系统,其中用以使得所述第二处理单元能够执行所述第二工作单元操作,所述存储器管理系统还被配置为:
释放所述第二工作单元消息到所述第二处理单元来用于由所述第二处理单元执行。
17.根据权利要求11所述的系统,其中用以使得所述第二处理单元能够执行所述第二工作单元操作,所述存储器管理系统还被配置为:
通过刷新所述第一高速缓存来门控所述第二工作单元消息的所述递送。
18.根据权利要求11所述的系统,其中用以更新所述共享存储器,所述存储器管理系统还被配置为:
使用高速缓存互锁系统刷新所述第一高速缓存。
19.根据权利要求11所述的系统,
其中所述第一工作单元操作包括处理网络分组内包括的数据;以及
其中所述第二工作单元操作包括处理所述网络分组内包括的所述数据。
20.一种非暂时性计算机可读存储介质,包括指令,所述指令当被执行时配置计算系统的处理电路以执行操作,所述操作包括:
由所述计算系统中的第一处理单元,执行由第一工作单元消息指定的第一工作单元操作,其中执行所述第一工作单元操作包括访问来自所述计算系统内包括的共享存储器的数据,以及将所述数据存储在与所述第一处理单元相关联的第一高速缓存中,其中所述共享存储器由所述计算系统中的所述第一处理单元和第二处理单元共享;
标识指定第二工作单元操作的第二工作单元消息,其中所述第二工作单元操作访问所述共享存储器;
通过将来自所述第一高速缓存的所述数据的至少一些数据写入所述共享存储器来更新所述共享存储器;
接收更新所述共享存储器被完成的指示;以及
通过所述第二工作单元消息向所述第二处理单元的递送,使得所述第二处理单元能够执行所述第二工作单元操作。
21.一种计算系统,所述计算系统包括第一处理单元、第二处理单元和共享存储器,并且其中所述计算系统被配置为:
使得所述第一处理单元能够修改所述共享存储器中的数据,包括:访问所述共享存储器中的所述数据,将所述数据存储在与所述第一处理单元相关联的高速缓存中,修改所述高速缓存中的所述数据来放弃更新的数据,并且刷新所述高速缓存以将所述更新的数据存储在所述共享存储器中;
接收修改所述共享存储器中的数据被完成的指示;
在接收到修改所述共享存储器被完成的所述指示后,向所述第二处理单元递送消息,其中所述消息指定访问所述共享存储器的操作;以及
在递送所述消息后,使得所述第二处理单元能够执行访问所述共享存储器的所述操作。
22.根据权利要求21所述的计算系统,其中用以使得所述第二处理单元能够执行所述操作,所述计算系统被配置为:
通过所述第一处理单元刷新所述高速缓存来门控所述消息的所述递送。
23.根据权利要求21所述的计算系统,其中用以执行访问所述共享存储器的所述操作,所述第二处理单元被配置为:
访问来自所述共享存储器的所述更新的数据;
将所述更新的数据存储在与所述第二处理单元相关联的高速缓存中;
修改所述高速缓存中的所述更新的数据;以及
刷新所述高速缓存以将进一步更新的数据存储在所述共享存储器中。
24.根据权利要求21所述的计算系统,其中所述计算系统还被配置为:
通过所述消息向所述第二处理单元的递送,将所述共享存储器的至少一部分的所有权转移到所述第二处理单元。
25.根据权利要求21所述的计算系统,其中用以向所述第二处理单元递送消息,所述计算系统还被配置为:
延迟所述消息向所述第二处理单元的递送,直到所述第一处理单元刷新与所述第一处理单元相关联的所述高速缓存。
26.根据权利要求21所述的计算系统,其中所述消息是工作单元消息,并且其中所述计算系统还被配置为:
标识所述工作单元消息;以及
确定所述工作单元消息指明所述第二处理单元来执行访问所述共享存储器的所述操作。
27.根据权利要求21所述的计算系统,其中用以使得所述第二处理单元能够执行所述操作,所述计算系统被配置为:
释放所述消息到所述第二处理单元。
28.根据权利要求21所述的计算系统,其中用以修改所述共享存储器中的所述数据,所述第一处理单元被配置为:
处理网络分组内包括的数据。
29.一种存储设备,用于存储计算机可读指令,所述指令当被执行时配置计算系统的处理电路以:
使得所述计算系统内包括的第一处理单元能够修改所述计算系统内包括的共享存储器中的数据,包括:
访问来自所述共享存储器的所述数据,
将所述数据存储在与所述第一处理单元相关联的高速缓存中,
修改所述高速缓存中的所述数据,以及
刷新所述高速缓存以将更新的数据存储在所述共享存储器中;
接收修改所述共享存储器中的数据被完成的指示;
在接收到修改所述共享存储器被完成的所述指示后,向所述计算系统内包括的第二处理单元递送消息,其中所述消息指定访问所述共享存储器的操作;以及
在递送所述消息后,使得所述第二处理单元能够执行访问所述共享存储器的所述操作。
30.根据权利要求29所述的存储设备,其中使得所述第二处理单元能够执行所述操作的所述指令还包括如下指令,所述指令配置所述处理电路以:
通过刷新所述高速缓存来门控所述消息的所述递送。
31.根据权利要求29所述的存储设备,其中使得所述第二处理单元能够执行所述操作访问所述共享存储器的所述指令包括如下指令,所述指令配置所述第二处理单元以:
访问来自所述共享存储器的所述更新的数据;
将所述更新的数据存储在与所述第二处理单元相关联的高速缓存中;
修改所述高速缓存中的所述更新的数据,以及
刷新所述高速缓存以将进一步更新的数据存储所述共享存储器中。
32.根据权利要求29所述的存储设备,还包括如下指令,所述配置所述处理电路以:通过所述消息向所述第二处理单元的递送,将所述共享存储器的至少一部分的所有权转移到所述第二处理单元。
33.根据权利要求29所述的存储设备,其中向所述第二处理单元递送消息的所述指令还包括如下指令,所述指令配置所述处理电路以:
延迟所述消息向所述第二处理单元的递送,直到所述第一处理单元刷新与所述第一处理单元相关联的所述高速缓存。
34.根据权利要求29所述的存储设备,其中所述消息是工作单元消息,并且其中所述计算机可读存储介质还包括如下指令,所述指令配置所述处理电路以:
标识所述工作单元消息,以及
确定所述工作单元消息指明所述第二处理单元来执行访问所述共享存储器的所述操作。
35.根据权利要求29所述的存储设备,其中使得所述第二处理单元能够执行所述操作的所述指令还包括如下指令,所述指令配置所述处理电路以:
释放所述消息到所述第二处理单元。
36.根据权利要求29所述的存储设备,其中修改所述共享存储器中的所述数据的所述指令还包括如下指令,所述指令配置所述第一处理单元以:
处理网络分组内包括的数据。
37.一种计算系统,包括共享存储器和存储器管理系统,其中所述存储器管理系统被配置为:
使得第一处理单元能够修改所述共享存储器中的数据;
接收修改所述共享存储器中的数据被完成的指示;
在接收到修改所述共享存储器被完成的所述指示后,向第二处理单元递送消息,其中所述消息指定访问所述共享存储器的操作;
通过所述消息向所述第二处理单元的递送,将所述共享存储器的至少一部分的所有权转移到所述第二处理单元;以及
在递送所述消息后,使得所述第二处理单元能够执行访问所述共享存储器的所述操作。
38.根据权利要求37所述的计算系统,其中所述存储器管理系统还被配置为将所述数据存储在与所述第一处理单元相关联的高速缓存中。
39.根据权利要求38所述的计算系统,其中所述存储器管理系统还被配置为修改所述高速缓存中的数据以放弃更新的数据。
40.根据权利要求39所述的计算系统,其中所述存储器管理系统还被配置为刷新所述高速缓存以将所述更新的数据存储在所述共享存储器中。
CN202410223367.3A 2017-04-10 2018-04-10 多处理器系统中的中继一致存储器管理 Pending CN117971715A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762483844P 2017-04-10 2017-04-10
US62/483,844 2017-04-10
US201862625518P 2018-02-02 2018-02-02
US62/625,518 2018-02-02
PCT/US2018/026873 WO2018191257A1 (en) 2017-04-10 2018-04-10 Relay consistent memory management in a multiple processor system
CN201880038296.2A CN110741356B (zh) 2017-04-10 2018-04-10 多处理器系统中的中继一致存储器管理

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880038296.2A Division CN110741356B (zh) 2017-04-10 2018-04-10 多处理器系统中的中继一致存储器管理

Publications (1)

Publication Number Publication Date
CN117971715A true CN117971715A (zh) 2024-05-03

Family

ID=62067883

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880038296.2A Active CN110741356B (zh) 2017-04-10 2018-04-10 多处理器系统中的中继一致存储器管理
CN202410223367.3A Pending CN117971715A (zh) 2017-04-10 2018-04-10 多处理器系统中的中继一致存储器管理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201880038296.2A Active CN110741356B (zh) 2017-04-10 2018-04-10 多处理器系统中的中继一致存储器管理

Country Status (3)

Country Link
US (3) US10565112B2 (zh)
CN (2) CN110741356B (zh)
WO (1) WO2018191257A1 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10686729B2 (en) 2017-03-29 2020-06-16 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
CN110710139A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 具有光置换器的无阻塞全网状数据中心网络
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
CN110741356B (zh) 2017-04-10 2024-03-15 微软技术许可有限责任公司 多处理器系统中的中继一致存储器管理
EP3625679A1 (en) 2017-07-10 2020-03-25 Fungible, Inc. Data processing unit for stream processing
US10659254B2 (en) 2017-07-10 2020-05-19 Fungible, Inc. Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric
CN111149329A (zh) 2017-09-29 2020-05-12 芬基波尔有限责任公司 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议
US10965586B2 (en) 2017-09-29 2021-03-30 Fungible, Inc. Resilient network communication using selective multipath packet flow spraying
WO2019104090A1 (en) 2017-11-21 2019-05-31 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
WO2019118356A1 (en) 2017-12-11 2019-06-20 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
US10798223B2 (en) 2018-03-08 2020-10-06 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
WO2019237010A1 (en) 2018-06-08 2019-12-12 Fungible, Inc. Early acknowledgment for write operations
WO2019237029A1 (en) 2018-06-08 2019-12-12 Fungible, Inc. Directed graph traversal using content-addressable memory
US10645187B2 (en) 2018-07-13 2020-05-05 Fungible, Inc. ARC caching for determininstic finite automata of regular expression accelerator
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
WO2020056166A1 (en) 2018-09-14 2020-03-19 Fungible, Inc. Timer management for network devices
US10951393B2 (en) 2018-10-11 2021-03-16 Fungible, Inc. Multimode cryptographic processor
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
US20190253357A1 (en) * 2018-10-15 2019-08-15 Intel Corporation Load balancing based on packet processing loads
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
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
US10827192B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Work allocation for JPEG accelerator
US10931958B2 (en) 2018-11-02 2021-02-23 Fungible, Inc. JPEG accelerator using last-non-zero (LNZ) syntax element
US10997123B2 (en) 2018-11-19 2021-05-04 Fungible, Inc. 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
US10727865B2 (en) 2018-11-19 2020-07-28 Fungible, Inc. Data striping for 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
US10862513B2 (en) 2019-01-16 2020-12-08 Fungible, Inc. Data processing unit having hardware-based parallel variable-length codeword decoding
WO2020197720A1 (en) 2019-03-27 2020-10-01 Fungible, Inc. Low latency packet switch architecture
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
CN114303138A (zh) 2019-09-11 2022-04-08 英特尔公司 用于多核计算环境的硬件队列调度
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
US11636115B2 (en) 2019-09-26 2023-04-25 Fungible, Inc. Query processing using data processing units having DFA/NFA hardware accelerators
US11579802B2 (en) 2019-10-04 2023-02-14 Fungible, Inc. Pipeline using match-action blocks
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
US11630729B2 (en) 2020-04-27 2023-04-18 Fungible, Inc. Reliability coding with reduced network traffic
US11144978B1 (en) * 2021-02-25 2021-10-12 Mythical, Inc. Systems and methods to support custom bundling of virtual items within an online game
WO2023244948A1 (en) 2022-06-14 2023-12-21 Microsoft Technology Licensing, Llc Graph-based storage management

Family Cites Families (235)

* Cited by examiner, † Cited by third party
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
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US7289964B1 (en) 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US7102999B1 (en) 1999-11-24 2006-09-05 Juniper Networks, Inc. Switching device
US6990063B1 (en) 2000-03-07 2006-01-24 Cisco Technology, Inc. Distributing fault indications and maintaining and using a data structure indicating faults to route traffic in a packet switching system
US6591285B1 (en) 2000-06-16 2003-07-08 Shuo-Yen Robert Li Running-sum adder networks determined by recursive construction of multi-stage networks
US7113996B2 (en) * 2000-07-21 2006-09-26 Sandy Craig Kronenberg Method and system for secured transport and storage of data on a network
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
US20020015387A1 (en) 2000-08-02 2002-02-07 Henry Houh Voice traffic packet capture and analysis tool for a data network
US20020049859A1 (en) 2000-08-25 2002-04-25 William Bruckert Clustered computer system and a method of forming and controlling the clustered computer system
US7058009B1 (en) 2000-09-15 2006-06-06 Pluris, Inc. Router-level automatic protection switching
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
US6553030B2 (en) 2000-12-28 2003-04-22 Maple Optical Systems Inc. Technique for forwarding multi-cast data packets
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
US7289513B1 (en) 2001-06-15 2007-10-30 Cisco Technology, Inc. Switching fabric port mapping in large scale redundant switches
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
CA2369201A1 (en) 2002-01-24 2003-07-24 Alcatel Canada Inc. System and method for providing maintenance of fabric links for a network element
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
US7631107B2 (en) 2002-06-11 2009-12-08 Pandya Ashish A Runtime adaptable protocol processor
US7486678B1 (en) 2002-07-03 2009-02-03 Greenfield Networks Multi-slice network processor
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
US7633861B2 (en) 2003-04-25 2009-12-15 Alcatel-Lucent Usa Inc. Fabric access integrated circuit configured to bound cell reorder depth
US7660239B2 (en) 2003-04-25 2010-02-09 Alcatel-Lucent Usa Inc. Network data re-routing
US7334089B2 (en) 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
GB2406742B (en) 2003-10-03 2006-03-22 3Com Corp Switching fabrics and control protocols for them
US7623524B2 (en) 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US7406565B2 (en) * 2004-01-13 2008-07-29 Hewlett-Packard Development Company, L.P. Multi-processor systems and methods for backup for non-coherent speculative fills
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
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
US7320078B2 (en) 2005-06-03 2008-01-15 Cisco Technology, Inc. Controlling delivery of power and network communications to a set of devices
US7738452B1 (en) 2005-06-22 2010-06-15 Cisco Technology, Inc. Techniques for load balancing subscriber-aware application proxies
US20070073966A1 (en) 2005-09-23 2007-03-29 Corbin John R Network processor-based storage controller, compute element and method of using same
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
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
US8526422B2 (en) 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
FI20085217A0 (fi) 2008-03-07 2008-03-07 Nokia Corp Tietojenkäsittelyjärjestely
US8001283B2 (en) 2008-03-12 2011-08-16 Mips Technologies, Inc. Efficient, scalable and high performance mechanism for handling IO requests
US7822731B1 (en) 2008-03-28 2010-10-26 Emc Corporation Techniques for management of information regarding a sequential stream
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
US8619769B2 (en) 2008-06-12 2013-12-31 Mark Henrik Sandstrom Packet-layer transparent packet-switching network
US8265071B2 (en) 2008-09-11 2012-09-11 Juniper Networks, Inc. Methods and apparatus related to a flexible data center security architecture
US8340088B2 (en) 2008-09-11 2012-12-25 Juniper Networks, Inc. Methods and apparatus related to a low cost data center 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
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
US9300597B2 (en) 2009-04-27 2016-03-29 Intel Corporation Statistics module for network processors in virtual local area networks
KR20100133649A (ko) 2009-06-12 2010-12-22 삼성전자주식회사 메모리 링크 아키텍쳐에서 파워 오프 시 데이터 로스를 방지하는 기능을 갖는 멀티 프로세서 시스템
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
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
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
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
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
US8582440B2 (en) 2010-02-05 2013-11-12 Juniper Networks, Inc. Oversubscribed packet stream-based interconnect protocol
JPWO2011099320A1 (ja) 2010-02-12 2013-06-13 株式会社日立製作所 情報処理装置、情報処理システム、及び情報処理方法
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
CN107608755A (zh) 2010-07-01 2018-01-19 纽戴纳公司 为了优化群集特定配置的使用而按进程类型在群集之间分割进程
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
US20140040909A1 (en) 2010-10-21 2014-02-06 Paul Winser 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
CN103004158B (zh) 2011-01-06 2016-12-28 马维尔以色列(M.I.S.L)有限公司 具有可编程内核的网络设备
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 パナソニック株式会社 中継装置、中継装置の制御方法、およびプログラム
EP2501120B1 (en) 2011-03-15 2013-08-07 Alcatel Lucent A backup SIP server 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
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
US9596222B2 (en) 2011-08-02 2017-03-14 Cavium, Inc. Method and apparatus encoding a rule for a lookup request in a processor
WO2013023704A1 (en) 2011-08-18 2013-02-21 Telefonaktiebolaget L M Ericsson (Publ) Centralized control of data plane applications
US9042229B2 (en) 2011-10-06 2015-05-26 International Business Machines Corporation Partitioning a network switch into multiple switching domains
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
US8850125B2 (en) 2011-10-25 2014-09-30 Cavium, Inc. System and method to provide non-coherent access to a coherent memory system
WO2013063486A1 (en) 2011-10-28 2013-05-02 The Regents Of The University Of California Multiple-core computer processor for reverse time migration
US8689049B2 (en) 2011-11-03 2014-04-01 Hewlett-Packard Development Company, L.P. Corrective actions based on probabilities
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
EP2859676B1 (de) 2012-05-04 2024-01-31 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
CN104641609B (zh) 2012-09-10 2018-03-09 马维尔国际贸易有限公司 用于在线路卡的接口控制模块之间传送分组的方法和装置
US8971321B2 (en) 2012-12-11 2015-03-03 Futurewei Technologies, Inc. System and method for accelerating and decelerating packets
US10137376B2 (en) 2012-12-31 2018-11-27 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
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
US9952975B2 (en) * 2013-04-30 2018-04-24 Hewlett Packard Enterprise Development Lp Memory network to route memory traffic and I/O traffic
US20150019702A1 (en) 2013-07-10 2015-01-15 Brocade Communications Systems, Inc. Flexible flow offload
WO2015009825A1 (en) 2013-07-16 2015-01-22 Adc Telecommunications, Inc. 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 한국전자통신연구원 캐시 제어 장치 및 방법
US9251111B2 (en) * 2013-12-20 2016-02-02 International Business Machines Corporation Command rate configuration in data processing system
US9225458B2 (en) 2013-12-20 2015-12-29 Alcatel Lucent Wavelength-selective cross-connect device having a variable number of common ports
WO2015095996A1 (en) 2013-12-23 2015-07-02 Telefonaktiebolaget L M Ericsson(Publ) Technique for network service availability
US9626316B2 (en) 2013-12-27 2017-04-18 Intel Corporation Managing shared resources between multiple processing devices
US9264347B2 (en) 2013-12-27 2016-02-16 Dell Products L.P. N-node virtual link trunking (VLT) systems control plane
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
US9734063B2 (en) 2014-02-27 2017-08-15 École Polytechnique Fédérale De Lausanne (Epfl) Scale-out non-uniform memory access
US20150254182A1 (en) 2014-03-07 2015-09-10 Cavium, Inc. Multi-core network processor interconnect with multi-node connection
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
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 中国电信股份有限公司 一种计算跨域路由的方法、服务器以及系统
US10225195B2 (en) 2014-05-07 2019-03-05 Adtran, Inc. Telecommunication systems and methods using dynamic shaping for allocating network bandwidth
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)
US20150355946A1 (en) 2014-06-10 2015-12-10 Dan-Chyi Kang “Systems of System” and method for Virtualization and Cloud Computing System
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
US9282384B1 (en) 2014-10-07 2016-03-08 Huawei Technologies Co., Ltd. System and method for commutation in photonic switching
US9632936B1 (en) 2014-12-09 2017-04-25 Parallel Machines Ltd. Two-tier distributed memory
US10387179B1 (en) 2014-12-16 2019-08-20 Amazon Technologies, Inc. Environment aware scheduling
US9563431B2 (en) 2014-12-26 2017-02-07 Intel Corporation Techniques for cooperative execution between asymmetric processor cores
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
US20180011739A1 (en) 2015-01-26 2018-01-11 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
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
US10445850B2 (en) 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
US10198281B2 (en) 2015-08-28 2019-02-05 Vmware, Inc. Hybrid infrastructure provisioning framework tethering remote datacenters
US10732865B2 (en) 2015-09-23 2020-08-04 Oracle International Corporation Distributed shared memory using interconnected atomic transaction engines at respective memory interfaces
US10002076B2 (en) * 2015-09-29 2018-06-19 Nxp Usa, Inc. Shared cache protocol for parallel search and replacement
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
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
JP6588106B2 (ja) 2016-01-07 2019-10-09 株式会社日立製作所 計算機システム及び計算機の制御方法
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
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
JP2018156428A (ja) * 2017-03-17 2018-10-04 富士ゼロックス株式会社 転送制御装置、処理システム及び処理装置
US10686729B2 (en) 2017-03-29 2020-06-16 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
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
CN110710139A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 具有光置换器的无阻塞全网状数据中心网络
CN110741356B (zh) * 2017-04-10 2024-03-15 微软技术许可有限责任公司 多处理器系统中的中继一致存储器管理
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
JP2018195183A (ja) * 2017-05-19 2018-12-06 富士通株式会社 演算処理装置および演算処理装置の制御方法
US10303603B2 (en) 2017-06-13 2019-05-28 Microsoft Technology Licensing, Llc Low power multi-core coherency
US11238203B2 (en) 2017-06-30 2022-02-01 Intel Corporation Systems and methods for accessing storage-as-memory
US10659254B2 (en) 2017-07-10 2020-05-19 Fungible, Inc. Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric
EP3625679A1 (en) 2017-07-10 2020-03-25 Fungible, Inc. Data processing unit for stream processing
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
CN111149329A (zh) 2017-09-29 2020-05-12 芬基波尔有限责任公司 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议
US10965586B2 (en) 2017-09-29 2021-03-30 Fungible, Inc. Resilient network communication using selective multipath packet flow spraying
US11263143B2 (en) 2017-09-29 2022-03-01 Intel Corporation Coherent accelerator fabric controller
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
WO2019118356A1 (en) 2017-12-11 2019-06-20 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
US10645187B2 (en) 2018-07-13 2020-05-05 Fungible, Inc. ARC caching for determininstic finite automata of regular expression accelerator
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
US11636154B2 (en) 2019-09-26 2023-04-25 Fungible, Inc. Data flow graph-driven analytics platform using data processing units having hardware accelerators
US11281582B2 (en) * 2020-01-14 2022-03-22 International Business Machines Corporation Completion logic performing early commitment of a store-conditional access based on a flag

Also Published As

Publication number Publication date
US20200183841A1 (en) 2020-06-11
WO2018191257A1 (en) 2018-10-18
CN110741356A (zh) 2020-01-31
CN110741356B (zh) 2024-03-15
US20220300423A1 (en) 2022-09-22
US20180293168A1 (en) 2018-10-11
US11360895B2 (en) 2022-06-14
US11809321B2 (en) 2023-11-07
US10565112B2 (en) 2020-02-18

Similar Documents

Publication Publication Date Title
CN110741356B (zh) 多处理器系统中的中继一致存储器管理
US11734179B2 (en) Efficient work unit processing in a multicore system
US11822786B2 (en) Delayed snoop for improved multi-process false sharing parallel thread performance
US10169080B2 (en) Method for work scheduling in a multi-chip system
US9529532B2 (en) Method and apparatus for memory allocation in a multi-node system
US9075764B2 (en) Multiprocessor system-on-a-chip for machine vision algorithms
JP2021529488A (ja) ゲートウェイ上のホストプロキシ
US10210117B2 (en) Computing architecture with peripherals
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US20150254182A1 (en) Multi-core network processor interconnect with multi-node connection
US10592459B2 (en) Method and system for ordering I/O access in a multi-node environment
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
US10095548B2 (en) Mechanism for waking common resource requests within a resource management subsystem
JP2018045700A (ja) ネットワークプロセッサにおけるマルチコア相互接続
US8086766B2 (en) Support for non-locking parallel reception of packets belonging to a single memory reception FIFO
JP2021528929A (ja) データ通過ゲートウェイ
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
JP2021528789A (ja) ストリーミングエンジン

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