CN117971715A - 多处理器系统中的中继一致存储器管理 - Google Patents
多处理器系统中的中继一致存储器管理 Download PDFInfo
- 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
Links
- 230000001427 coherent effect Effects 0.000 title abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 202
- 238000000034 method Methods 0.000 claims description 33
- 238000007726 management method Methods 0.000 claims description 20
- 238000011010 flushing procedure Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 238000010977 unit operation Methods 0.000 claims 35
- 230000003111 delayed effect Effects 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 230000006855 networking Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000012634 fragment Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000001404 mediated effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000005507 spraying Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/0804—Addressing 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- 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
-
- 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/1032—Reliability 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所述的计算系统,其中所述存储器管理系统还被配置为刷新所述高速缓存以将所述更新的数据存储在所述共享存储器中。
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)
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)
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 |
-
2018
- 2018-04-10 CN CN201880038296.2A patent/CN110741356B/zh active Active
- 2018-04-10 CN CN202410223367.3A patent/CN117971715A/zh active Pending
- 2018-04-10 WO PCT/US2018/026873 patent/WO2018191257A1/en active Application Filing
- 2018-04-10 US US15/949,892 patent/US10565112B2/en active Active
-
2020
- 2020-02-14 US US16/791,957 patent/US11360895B2/en active Active
-
2022
- 2022-06-10 US US17/806,419 patent/US11809321B2/en active Active
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 |