CN114064552B - 节点控制器、多处理器系统和用于维持缓存一致性的方法 - Google Patents
节点控制器、多处理器系统和用于维持缓存一致性的方法 Download PDFInfo
- Publication number
- CN114064552B CN114064552B CN202110437955.3A CN202110437955A CN114064552B CN 114064552 B CN114064552 B CN 114064552B CN 202110437955 A CN202110437955 A CN 202110437955A CN 114064552 B CN114064552 B CN 114064552B
- Authority
- CN
- China
- Prior art keywords
- node controller
- memory
- interface
- processor
- logic module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000015654 memory Effects 0.000 claims abstract description 381
- 230000004044 response Effects 0.000 claims description 45
- 239000000835 fiber Substances 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 102100035964 Gastrokine-2 Human genes 0.000 claims 2
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 claims 2
- 230000001427 coherent effect Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及一种用于可扩展的硬件一致存储器节点的系统和方法。实施例可以提供一种多处理器系统中的节点控制器。节点控制器可以包括:处理器接口,该处理器接口用于与处理器对接;存储器接口,该存储器接口用于与网络化存储器对接;节点控制器接口,该节点控制器接口用于与远程节点控制器对接;以及缓存一致性逻辑,该缓存一致性逻辑用于在第一模式或第二模式下操作。缓存一致性逻辑在第一模式下操作时管理耦接到处理器接口的处理器的本地存储器的缓存一致性,并且缓存一致性逻辑在第二模式下操作时管理耦接到存储器接口的网络化存储器的缓存一致性。
Description
技术领域
本公开总体上涉及多处理器系统中的可扩展的存储器节点。更具体地,本公开涉及一种实施双模式节点控制器以促进包括不同类型的存储器的混合存储器系统的系统和方法。
背景技术
在多处理器系统中,期望能够以硬件缓存一致的方式对存储器进行扩展。硬件管理的缓存一致性方案优于需要大量软件应用程序修改的软件管理的缓存一致性方案。以硬件一致的方式对存储器进行扩展使得未经修改的软件能够无缝地利用附加存储器。然而,当前的以处理器-存储器为中心的计算架构要求在扩展存储器时同时对处理器进行扩展。在只需要附加存储器的情况下,不得不添加处理器可能会导致不期望的成本增加。
发明内容
根据本公开的一方面,提供了一种节点控制器,所述节点控制器在多处理器系统中,包括:处理器接口,所述处理器接口用于与处理器对接;存储器接口,所述存储器接口用于与网络化存储器对接;节点控制器接口,所述节点控制器接口用于与远程节点控制器对接;以及缓存一致性逻辑,所述缓存一致性逻辑包括用于管理本地存储器访问请求的本地存储器控制逻辑和用于管理远程存储器访问请求的远程存储器控制逻辑;其中,所述缓存一致性逻辑用于维持耦接到所述处理器接口的处理器的本地存储器的缓存一致性或者耦接到所述存储器接口的网络化存储器的缓存一致性;其中,当所述缓存一致性逻辑正在维持所述本地存储器的缓存一致性时,所述本地存储器控制逻辑用于经由所述处理器接口将从所述远程节点控制器接收到的存储器访问请求转发到所述处理器,以促进所述处理器访问所述本地存储器;并且其中,当所述缓存一致性逻辑正在维持所述网络化存储器的缓存一致性时,所述本地存储器控制逻辑用于经由所述本地存储器控制逻辑与所述远程存储器控制逻辑之间的特殊信号路径将从所述远程节点控制器接收到的存储器访问请求转发到所述远程存储器控制逻辑,以促进所述远程存储器控制逻辑经由所述存储器接口访问所述网络化存储器。
根据本公开的另一方面,提供了一种多处理器系统,包括:第一节点控制器,所述第一节点控制器直接耦接到处理器;以及相同的第二节点控制器,所述第二节点控制器未直接耦接到任何处理器并且耦接到网络化存储器;其中,所述第一节点控制器和所述第二节点控制器中的每一个节点控制器包括缓存一致性逻辑,所述缓存一致性逻辑包括用于管理本地存储器访问请求的本地存储器控制逻辑和用于管理远程存储器访问请求的远程存储器控制逻辑;其中,所述第一节点控制器用于维持所述处理器的本地存储器的缓存一致性,其中所述第一节点控制器的缓存一致性逻辑的本地存储器控制逻辑经由所述处理器接口将从远程节点控制器接收到的存储器访问请求转发到所述处理器,以促进所述处理器访问其本地存储器;并且其中,所述第二节点控制器用于维持所述网络化存储器的缓存一致性,其中所述第二节点控制器的缓存一致性逻辑的本地存储器控制逻辑经由所述本地存储器控制逻辑与所述远程存储器控制逻辑之间的特殊信号路径将从所述远程节点控制器接收到的存储器访问请求转发到所述远程存储器控制逻辑,以促进所述远程存储器控制逻辑访问所述网络化存储器。
根据本公开的又一方面,提供了一种用于维持多处理器系统中缓存一致性的方法,所述方法包括:由节点控制器从所述多处理器系统中的远程节点控制器接收存储器访问请求;响应于所述节点控制器确定处理器直接耦接到所述节点控制器,将所述节点控制器的缓存一致性逻辑配置为维持所述处理器的本地存储器的缓存一致性;以及响应于所述节点控制器确定所述节点控制器未直接耦接到任何处理器并且耦接到网络化存储器,将所述节点控制器的缓存一致性逻辑配置为维持所述网络化存储器的缓存一致性,其中,所述缓存一致性逻辑包括用于管理本地存储器访问请求的本地存储器控制逻辑和用于管理远程存储器访问请求的远程存储器控制逻辑;其中,当所述缓存一致性逻辑维持所述本地存储器的缓存一致性时,所述本地存储器控制逻辑用于经由所述处理器接口将从远程节点控制器接收到的存储器访问请求转发到所述处理器,以促进所述处理器访问其本地存储器;并且其中,当所述缓存一致性逻辑维持所述网络化存储器的缓存一致性时,所述本地存储器控制逻辑用于经由所述本地存储器控制逻辑与所述远程存储器控制逻辑之间的特殊信号路径将从所述远程节点控制器接收到的存储器访问请求转发到所述远程存储器控制逻辑,以促进所述远程存储器控制逻辑访问所述网络化存储器。
附图说明
图1图示了根据一个实施例的示例性混合非均匀存储器访问(NUMA)系统。
图2图示了根据一个实施例的缓存一致的NUMA(ccNUMA)系统的局部视图。
图3图示了根据一个实施例的节点控制器的示例性框图。
图4图示了根据一个实施例的在远程存储器访问操作期间本地节点控制器与远程节点控制器之间的示例性交互。
图5呈现了示出根据一个实施例的节点控制器响应于远程存储器访问的示例性过程的流程图。
在这些附图中,相同的附图标记指代相同的附图元件。
具体实施方式
以下描述被呈现以使得本领域的任何技术人员能够制造和使用实施例,并且在特定应用及其要求的上下文中被提供。对所公开实施例的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文定义的一般原理可以应用于其他实施例和应用。因此,本公开的范围不限于所示实施例,而旨在符合与本文公开的原理和特征一致的最大范围。
本文所描述的实施例促进了混合存储器系统(例如,缓存一致的非均匀存储器访问(ccNUMA)系统)的实施。混合存储器系统可以在相同的硬件控制的缓存一致性域内包括附接处理器的存储器和网络化存储器两者。包括网络化存储器允许对处理器和存储器进行独立扩展。混合系统还可以包括能够控制这两种类型的存储器的缓存一致性的统一节点控制器。更具体地,节点控制器可以在两种模式下操作。当节点控制器具有直接附接的处理器插槽时,节点控制器在第一模式下操作并且管理附接处理器的存储器的硬件一致性。当不存在附接到节点控制器的处理器时,节点控制器在第二模式下操作并且管理网络化存储器的硬件一致性。节点控制器可以包括用于与处理器连接的处理器接口和用于与网络化存储器(例如,Gen-Z存储器模块)对接的存储器接口。节点控制器还可以包括实施硬件控制的缓存一致性的多个逻辑块,该多个逻辑块包括控制本地存储器访问的本地归属(LH)逻辑块和控制远程存储器访问的远程归属(RH)逻辑块。当在第一模式下操作时,LH逻辑块可以将接收到的存储器访问请求转发到处理器,然后处理器可以促进存储器访问并将存储器访问响应发送回所述LH逻辑块。另一方面,当在第二模式下操作时,不存在附接到节点控制器的处理器,因此LH逻辑块可以经由特殊路径(例如,捷径或回送路径)将存储器访问请求转发到RH逻辑块。RH逻辑块不需要区分其是从处理器还是从回送路径接收存储器访问请求,并且可以基于存储器地址来处理存储器访问请求。
近年来,以存储器为中心的计算技术正逐步取代传统的以处理器为中心的计算技术,以满足对计算速度和存储容量不断增长的需求。而且,网络化存储器(即,可通过交换网络访问的存储器)的实施使得可以在无需添加处理器的情况下在缓存一致性系统中扩展存储器。在一些实施例中,ccNUMA系统可以包括混合存储器,其中,一些存储器是附接处理器的存储器,而一些存储器是网络化存储器。
图1图示了根据一个实施例的示例性混合非均匀存储器访问(NUMA)系统。在图1中,NUMA系统100可以包括多个节点(或集线器),如节点102和104。每一节点可以包括一个或多个节点控制器,该一个或多个节点控制器被配置为促进各节点之间的通信并管理缓存一致性。在图1所示的示例中,一些节点控制器具有附接到它们的处理器,并且被配置为管理附接处理器的存储器的缓存一致性。其他节点控制器不具有直接附接到它们的处理器,并且可以被配置为管理跨交换网络的网络化存储器的缓存一致性。例如,节点102可以包括一对节点控制器,并具有附接到各个节点控制器的处理器和附接到各个处理器的存储器模块(例如,双数据速率(DDR)存储器模块)。附接处理器的存储器可以指特定处理器本地的存储器模块,并且对存储器的访问通过该处理器进行。另一方面,节点104仅包括一对节点控制器,并具有(例如,经由Gen-Z网络)耦接到各个节点控制器的网络化存储器模块。注意,为了简化说明,图1中的每个节点控制器被示出为耦接到单个CPU或存储器模块。实际上,节点控制器可以耦接到多个处理器和/或多个存储器模块。例如,节点控制器102可以耦接到一组处理器,其中,每个处理器与一个或多个存储器模块相关联。类似地,节点控制器104可以经由交换网络耦接到多个存储器模块。
图1还展示了所有节点控制器都互连在一起,以允许对物理上分开的存储器进行逻辑共享,而不管存储器是附接到处理器还是交换网络。换句话说,可以将存储器访问请求从一个节点控制器发送到另一个节点控制器,以访问附接到不同节点控制器的存储器。例如,节点102内的节点控制器可以向节点104内的节点控制器发送可以源自节点102内的处理器的存储器请求,以便访问节点104内的网络化存储器。NUMA系统100的缓存一致性可以由每个节点控制器内的硬件来管理。上层软件不需要管理NUMA系统100内的分布式存储器模块之间的缓存一致性。
图2图示了根据一个实施例的ccNUMA系统的局部视图。更具体地,图2示出了分别类似于图1所示的节点102和104的一对节点(即,节点210和节点220)的放大视图。在多处理器系统中,节点包括驻留在紧密物理邻近处(例如,在计算机机箱内)的各种资源(例如,处理器、存储器、控制器等)。节点控制器(也可以被称为集线器)可以是控制节点内以及不同节点之间的通信和消息传送的电子设备,如集成电路。另外,节点控制器可以包括实施缓存一致性协议(例如,基于目录的缓存一致性协议)以确保ccNUMA系统200内的缓存一致性的逻辑。在图2所示的示例中,节点210可以包括节点控制器212和214,并且节点220可以包括节点控制器222和224。所有节点控制器经由节点控制器接口彼此互连,以允许从一个节点控制器到任何其他节点控制器的存储器访问。
节点210还可以包括多个互连的处理器插槽(例如,插槽202至208),从而形成插槽组。处理器插槽可以包括一个或多个处理器,并且每个处理器可以具有至少一个本地存储器。在本公开中,术语“处理器插槽”和“插槽”可以是可互换的。节点内的插槽(例如,插槽202至208)可以被认为对彼此而言是本地的。节点控制器可以(例如,经由一个或多个处理器接口)直接耦接到一个或多个处理器插槽。在图2所示的示例中,每个节点控制器可以直接耦接到两个处理器插槽。例如,节点控制器(NC)212直接耦接到插槽202和204,并且节点控制器214直接耦接到插槽206和208。在一个实施例中,处理器接口可以包括超路径互连(UltraPath Interconnect)(UPI)。
另一方面,节点220不包括任何处理器插槽(意味着不存在直接附接到其节点控制器的处理器或插槽)。替代地,每个节点控制器可以耦接到一个或多个网络化存储器。例如,节点控制器222耦接到存储器232和234,并且节点控制器224耦接到存储器236和238。在一些实施例中,节点控制器可以包括存储器接口,该存储器接口促进节点控制器与网络化存储器之间的耦接。可以使用各种类型的存储器接口,包括但不限于:DDR接口、图形DDR(GDDR)接口、高带宽存储器(HBM)接口、外围部件互连快速(Peripheral ComponentInterconnect Express)(PCIe)接口、计算快速链路(CXL)接口、Gen-Z接口、接口、以太网接口、光纤通道接口等。
如从图1和图2可以看出,混合NUMA系统可以包括不同类型的节点,其中,一些节点包括插槽,并且一些节点不包括插槽。为了降低成本,期望使用模块化方法。更具体地,每个节点内的控制器可以是标准部件,而不管它们所在的节点类型如何。换句话说,如果将同一节点控制器部署在包括插槽的节点中,则它应该能够管理附接处理器的存储器的缓存一致性,并且如果将同一节点控制器部署在不包括插槽的节点中,则它应该能够管理网络化存储器的缓存一致性。在一些实施例中,节点控制器可以包括处理器接口和存储器接口两者。处理器接口允许节点控制器与处理器和附接处理器的存储器耦接,并且存储器接口允许节点控制器与网络化存储器耦接。根据需要管理的存储器类型,节点控制器可以被配置为在两个不同的节点中操作。更具体地,当耦接到处理器时,节点控制器可以将远程存储器访问请求转发到该处理器,以促进该处理器执行对应的存储器访问操作。另一方面,当耦接到网络化存储器时,节点控制器可以在管理缓存一致性的各硬件逻辑块之间循环存储器访问请求,从而允许硬件逻辑块执行对应的存储器访问操作。
图3图示了根据一个实施例的节点控制器的示例性框图。节点控制器300可以包括多个接口模块,该多个接口模块促进节点控制器300与节点控制器300外部的其他模块(如处理器、存储器、节点控制器等)之间的通信。更具体地,节点控制器300可以包括处理器接口模块302,该处理器接口模块促进节点控制器300与多个处理器和附接到这些处理器的存储器之间的通信。节点控制器300还可以包括存储器接口模块304,该存储器接口模块促进节点控制器300与网络化存储器之间的通信。存储器接口模块304可以包括各种类型的存储器接口,如DDR接口、GDDR接口、HBM接口、PCIe接口、CXL接口、Gen-Z接口、接口、以太网接口、光纤通道接口等。
在某些场景中,根据节点控制器300的部署,存储器接口模块304可以保留不使用,并且节点控制器300可以被配置为管理经由处理器接口模块302附接处理器的存储器。在不同的部署场景中,处理器接口模块302可以保留不使用,这意味着节点控制器300不具有直接附接的处理器。然后,节点控制器300可以被配置为管理经由存储器接口模块304耦接到节点控制器300的存储器。
节点控制器300还可以包括节点控制器接口模块306,该节点控制器接口模块促进节点控制器300与其他远程节点控制器之间的通信。各节点控制器之间的通信链路可以实施各种类型的通信协议,包括以太网、无限带宽、光纤通道等。在一个实施例中,节点控制器接口模块306可以包括定制设计的通信接口。为了促进NUMA系统内的所有节点控制器之间的交叉连接,节点控制器接口模块306可以耦接到交换机构,例如交叉开关。
节点控制器300还可以包括缓存一致性逻辑块310,该缓存一致性逻辑块被配置为管理耦接到节点控制器300的存储器的缓存一致性。更具体地,缓存一致性逻辑块310可以实施缓存一致性协议(例如,基于目录的缓存一致性协议)。缓存一致性协议可以包括一组程序或规则(其可以被实施为状态机或微控制器),其根据由存储器访问请求指定的特定存储器块的当前一致性状态来指示节点控制器300如何与相关联的处理器插槽或存储器进行交互。一致性协议还可以指示如何跟踪缓存行的所有权。
在一些实施例中,缓存一致性逻辑块310可以包括本地归属(LH)逻辑块312和远程归属(RH)逻辑块314。LH逻辑块312和RH逻辑块314两者都可以在各种类型的硬件模块(包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)或其他可编程逻辑设备)中实施。
LH块312可以被配置为处理本地存储器访问请求。如果处理器附接到节点控制器300,则典型的本地存储器访问请求可以由LH逻辑块312转发到处理器,并且处理器可以执行对应的存储器访问请求。另一方面,RH块314可以被配置为处理远程存储器访问请求。更具体地,从节点控制器300的角度来看,RH块314可以作为远程存储器位置的代理。对远程存储器位置的存储器访问请求将(通常从处理器)被发送到RH块314。
在仅管理附接处理器的存储器的缓存一致性的传统节点控制器中,LH块和RH块分开处理本地存储器访问请求和远程存储器访问请求,并且彼此不对接。更具体地,来自本地处理器的存储器请求可以被发送到RH块,而来自远程节点控制器的存储器请求可以被发送到LH块。LH块可以被配置为向处理器发送本地请求,以促进处理器直接访问其本地存储器。LH块被配置为确定本地存储器的所有权并维持本地存储器的缓存一致性。对于远程请求,RH块可以用作远程存储器的代理。更具体地,RH块可以从处理器接收远程存储器访问请求(如由虚线箭头所指示的),并且进而将存储器访问请求转发到对应的远程节点控制器、更具体地是转发到远程节点控制器的LH块。
如果远程节点控制器具有附接的处理器和处理器本地的存储器,则远程节点控制器的LH块可以经由处理器访问存储器。然而,如果远程节点控制器不具有直接附接的处理器并且正在管理网络化存储器,则对存储器的访问将不再由处理器来促进。在这种场景中,需要对节点控制器的配置和操作进行修改。更具体地,可以在同一节点控制器上的LH块与RH块之间建立特殊路径。这样的特殊路径可以是LH块与RH块之间的直接路径,或者是通过耦接到LH块和RH块的处理器接口的回送路径(即,信号被路由到处理器接口,并且然后直接回送)。这样,当远程节点控制器的LH块接收到存储器访问请求时,其可以将该请求转发到RH块,而不是将其发送到附接的处理器。RH块接收存储器访问请求的方式与其从本地处理器接收请求的方式相同,即使不存在附接到节点控制器的处理器也是如此。基于地址范围,RH块可以将存储器访问请求转发到存储器接口,以便访问耦接到同一节点控制器的网络化存储器。
通过允许同一节点控制器在两种不同的模式下操作,所公开的实施例允许对两种不同类型的存储器进行基于硬件的一致性跟踪。换句话说,现在可以使用被设计用于跟踪附接处理器的存储器的缓存一致性的同一一致性引擎来跟踪网络化存储器的缓存一致性。不需要具有用于网络化存储器的专用一致性引擎。注意,当节点控制器不具有直接附接的处理器时,操作系统可以由具有直接附接的处理器的不同节点控制器运行。
除了图3所示的模块之外,节点控制器300可以包括附加模块(包括硬件模块和软件模块),其可以辅助各种前述操作以及其他尚未提及的操作。而且,节点控制器300可以包括重复的模块(例如,重复的接口和重复的逻辑块),以允许节点控制器300与多个相同类型的模块进行交互。例如,多个UPI接口可以允许节点控制器300与多个处理器对接。类似地,多个存储器接口可以允许节点控制器300与多个网络化存储器模块对接。而且,多个LH和RH逻辑块可以促进对多个存储器访问请求的并行处理和转发。
图4图示了根据一个实施例的在远程存储器访问操作期间本地节点控制器与远程节点控制器之间的示例性交互。在操作期间,附接到本地节点控制器402的插槽经由节点控制器404的处理器接口发送用于访问由远程节点控制器404控制的网络化存储器的请求,如由箭头406所指示的。该远程存储器访问请求(例如,读取请求、写入请求、所有权读取请求等)到达本地节点控制器402的RH块,如由箭头408所指示的。远程存储器访问请求可以采用处理器互连格式,如UPI格式。
本地节点控制器402的RH块执行各种操作,包括维持缓存一致性所需的操作。这些操作包括:分配跟踪资源;解码包括在请求中的全局地址;以及将请求消息从处理器互连格式重新格式化为节点控制器互连格式,这可以根据本地节点控制器402与远程节点控制器404之间的通信链路类型来确定。
然后,本地节点控制器402的RH块可以经由每个节点控制器上的控制器接口将存储器访问请求转发到远程节点控制器404,如由箭头410和412所指示的。在接收到请求后,远程节点控制器404的控制器接口将该请求发送到其自身的LH块,如由箭头414所指示的。远程节点控制器404的LH块可以执行多个操作,包括确保缓存一致性所需的操作。各种操作可以包括分配跟踪资源、将消息的格式从节点控制器互连格式转换回处理器互连格式、检查对应的存储器块的目录状态以便确定所有权等。
注意,如果远程节点控制器404具有附接的处理器,则LH块将会将接收到的存储器访问请求转发到处理器,然后处理器可以直接访问其本地存储器。然而,在图4所示的示例中,远程节点控制器404不具有直接附接的处理器或插槽。替代地,远程节点控制器404耦接到一个或多个网络化存储器模块。在这种场景中,远程节点控制器404的LH块可以被配置为将存储器访问请求发送到共同驻留在远程存储器控制器404上的RH块,如由箭头416所指示的。换句话说,网络化存储器被视为远程存储器,并且对这样的存储器的访问由RH块来处理。特殊路径可以是LH块与RH块之间的直接信号路径(例如,集成电路内的一个或多个信号连接)。替代性地,特殊路径可以是通过节点控制器404上的处理器接口的回送路径(例如,UPI回送路径)。
从远程节点控制器404上的RH块的角度来看,经由特殊路径从LH块接收到的存储器访问请求与从本地附接的处理器接收到的存储器访问请求之间没有区别。在图4所示的示例中,远程节点控制器404上的RH块可以如同从处理器接收到存储器访问请求一样处理这样的请求并且执行与由本地节点控制器402上的RH块执行的那些操作类似的各种操作,包括分配跟踪资源、解码包括在请求中的全局地址、以及将请求消息从处理器互连格式重新格式化为节点控制器互连格式。
远程节点控制器404的RH块可以基于存储器访问请求的地址范围来确定要访问的存储器块是否驻留在经由远程节点控制器404的存储器接口耦接到该远程节点控制器的网络化存储器上。然后,RH块可以将存储器访问请求转发到存储器接口,如由箭头418所指示的。存储器接口可以包括控制逻辑,该控制逻辑可以处理跨交换网络(例如,Gen-Z网络)的存储器访问请求,如由双箭头420所指示的。如果存储器访问请求是读取请求,则将从网络化存储器返回数据。如果其是写入请求,则将向网络化存储器发送要写入的数据。然后,存储器接口可以对响应消息进行汇编(assemble),并将该响应消息发送回远程节点控制器404的RH块,如由箭头422所指示的。对于读取请求,响应消息可以包括所请求的数据;并且对于写入请求,响应消息可以包括写入确认消息。响应消息可以采用节点控制器互连格式。
在接收到响应消息后,远程节点控制器404的RH块可以执行多个操作,包括确认响应的正确性、以及将响应从节点控制器互连格式重新格式化为处理器互连格式。然后,RH块可以经由相同的特殊路径将响应返回到同一节点控制器上的LH块,如由箭头424所指示的。如前所讨论的,特殊路径可以是直接路径或通过处理器接口的回送路径。注意,从LH块的角度来看,在从本地附接的处理器接收响应消息与经由特殊路径从RH块接收响应消息之间没有区别。在发送响应之后,RH块可以释放跟踪资源。
在经由特殊路径接收到响应消息后,远程节点控制器404的LH块确认响应的正确性,并更新存储器块的目录状态以跟踪新的所有者。该操作对于确保缓存一致性可能是至关重要的。远程节点控制器404的LH块可以进一步将响应消息从处理器互连格式重新格式化为节点控制器互连格式,并经由控制器接口将响应消息发送回发起请求的本地节点控制器402,如由箭头426和428所指示的。远程节点控制器404的LH块随后释放其跟踪资源。
本地节点控制器402的控制器接口将响应消息发送到其RH块,如由箭头430所指示的。该RH块确认响应的正确性,并将响应从节点控制器互连格式重新格式化为处理器互连格式。本地节点控制器402的RH块可以将响应发送回处理器(如箭头432所指示的),并且随后释放其跟踪资源。
根据上述讨论,存储器访问请求和响应消息可能以以下两种不同的格式从一个硬件模块传播到下一个硬件模块:处理器互连格式和节点控制器互连格式。这是因为不同的模块是使用不同类型的通信链路来连接的。在图4中,这两种类型的链路使用不同宽度的箭头来表示。粗线箭头表示节点控制器互连链路,而细线箭头表示处理器互连链路。从图4中可以看到,LH块与RH块之间的链路以及RH块与处理器接口之间的链路是处理器互连链路,而所有其他链路是节点控制器互连链路。处理器互连链路可以是UPI链路。节点控制器互连链路可以是以下各项之一:定制设计的链路、以太网链路、无限带宽链路、CXL链路、Gen-Z链路、光纤通道链路等。
图5呈现了展示根据一个实施例的节点控制器对远程存储器访问进行响应的示例性过程的流程图。在操作期间,节点控制器从远程节点控制器接收存储器访问请求(操作502)。存储器访问请求可以是读取请求、写入请求、所有权读取请求等。节点控制器可以具有与图3和图4所示的节点控制器相似的结构。如图4所示,节点控制器的LH逻辑块被配置为从节点控制器接口接收远程存储器访问请求。LH逻辑块可以执行一致性跟踪所需的各种操作,包括分配跟踪资源以及确定与请求相关联的存储器块的所有权。在一些实施例中,使用基于目录的缓存一致性协议,并且LH逻辑块可以检查与请求相关联的存储器块的目录状态。LH逻辑块可以进一步将接收到的请求从节点控制器互连格式转化成处理器互连格式。
节点控制器确定其是否具有直接附接的处理器(操作504)。如果是,则节点控制器的LH逻辑块将存储器访问请求转发到处理器(操作506)。处理器访问其本地存储器以生成响应,并将响应发送回LH逻辑块(操作508)。然后,节点控制器的LH逻辑块可以将响应返回到发出请求的节点控制器(操作510)。
另一方面,如果节点控制器不具有直接附接的处理器,则节点控制器的LH逻辑块经由特殊路径将现在采用处理器互连格式的存储器访问请求转发到同一节点控制器上的RH逻辑块(操作512)。特殊路径的形式可以是LH逻辑块与RH逻辑块之间的直接路径,或者是通过处理器接口的回送路径。在仅需要管理附接处理器的存储器的缓存一致性的传统节点控制器上不存在这样的特殊路径,因为LH逻辑和RH逻辑在传统情况下不需要通信(因为它们分开管理本地存储器访问请求和远程存储器访问请求)。
节点控制器的RH块可以处理请求,并且经由存储器接口将该请求发送到网络化存储器(操作514)。由RH逻辑块执行的操作可以包括分配跟踪资源、解码地址、以及重新格式化请求消息。现在,该请求采用节点控制器互连格式。节点控制器的RH块随后基于从网络化存储器返回的数据生成响应(例如,读取数据确认或写入确认),并将所述响应发送到LH块(操作516)。LH块将响应返回到发出请求的节点控制器(操作510)。
总体上,所公开的实施例提供了一种统一节点控制器,该统一节点控制器促进在包括附接处理器的存储器和网络化存储器两者的混合系统中硬件管理的缓存一致性。更具体地,节点控制器可以包括用于与网络化存储器模块进行通信的存储器接口,并且节点控制器内的硬件模块(例如,ASIC)可以被配置为根据节点控制器是否具有直接附接的处理器而以两种不同的模式进行操作。如果具有附接到节点控制器的处理器,则节点控制器管理处理器本地的存储器的缓存一致性。如果网络控制器不具有直接附接的处理器,则节点控制器通过将网络化存储器模块视为远程存储器并使用其用于管理访问的远程存储器控制块(例如,RH逻辑块)来管理网络化存储器的缓存一致性。更具体地,可以经由直接路径或回送路径将远程存储器访问请求从本地存储器控制块(例如,LH逻辑块)传递到远程存储器控制块。远程存储器控制块以相同的方式对待来自处理器的请求和来自本地存储器控制块的请求。类似地,在从网络化存储器获得响应之后,远程存储器控制块经由相同的特殊路径将该响应返回到本地存储器控制块。本地存储器控制块以相同的方式对待来自处理器的响应和来自本地存储器控制块的响应。这种方法允许同一缓存一致性引擎管理两种类型的存储器的缓存一致性,从而促进对实施基于硬件的缓存一致性引擎的多处理器系统中的处理器和存储器进行独立扩展。
一个实施例可以提供一种多处理器系统中的节点控制器。节点控制器可以包括:处理器接口,处理器接口用于与处理器对接;存储器接口,存储器接口用于与网络化存储器对接;节点控制器接口,节点控制器接口用于与远程节点控制器对接;以及缓存一致性逻辑,缓存一致性逻辑用于在第一模式或第二模式下操作。缓存一致性逻辑在第一模式下操作时管理耦接到处理器接口的处理器的本地存储器的缓存一致性,并且缓存一致性逻辑在第二模式下操作时管理耦接到存储器接口的网络化存储器的缓存一致性。
在该实施例的变体中,缓存一致性逻辑响应于确定处理器经由处理器接口直接耦接到节点控制器而将在第一模式下操作,并且缓存一致性逻辑响应于确定节点控制器未直接耦接到任何处理器而将在第二模式下操作。
在该实施例的变体中,缓存一致性逻辑可以包括用于管理本地存储器访问请求的本地存储器控制逻辑和用于管理远程存储器访问请求的远程存储器控制逻辑。当缓存一致性逻辑在第一模式下操作时,本地存储器控制逻辑用于经由处理器接口将从远程节点控制器接收到的存储器访问请求转发到处理器,以促进处理器访问其本地存储器。当缓存一致性逻辑在第二模式下操作时,本地存储器控制逻辑将经由本地存储器控制逻辑与远程存储器控制逻辑之间的特殊信号路径将从远程节点控制器接收到的存储器访问请求转发到远程存储器控制逻辑。
在进一步变体中,所述特殊信号路径可以包括以下各项之一:本地存储器控制逻辑与远程存储器控制逻辑之间的直接路径;以及通过处理器接口的回送路径。
在进一步变体中,当缓存一致性逻辑在第二模式下操作时,远程存储器控制逻辑用于:经由存储器接口来访问网络化存储器;生成存储器访问响应;以及经由特殊信号路径将存储器访问响应发送到本地存储器控制逻辑。
在该实施例的变体中,处理器接口可以包括超路径互连(UPI),并且存储器接口可以包括以下各项之一:双数据速率(DDR)接口、图形DDR(GDDR)接口、高带宽存储器(HBM)接口、外围部件互连快速(PCIe)接口、计算快速链路(CXL)接口、Gen-Z接口、无限带宽接口、以太网接口和光纤通道接口。
在该实施例的变体中,缓存一致性逻辑可以实施基于目录的缓存一致性协议。
在该实施例的变体中,缓存一致性逻辑可以包括用于促进基于硬件的一致性跟踪的一个或多个硬件模块。
一个实施例可以提供一种多处理器系统。多处理器系统可以包括:第一节点控制器,该第一节点控制器直接耦接到处理器;以及相同的第二节点控制器,该第二节点控制器未直接耦接到任何处理器并且耦接到网络化存储器。第一节点控制器用于在第一模式下操作以管理处理器的本地存储器的缓存一致性;并且第二节点控制器用于在第二模式下操作以管理网络化存储器的缓存一致性。
一个实施例可以提供一种用于管理多处理器系统中缓存一致性的系统和方法。在操作期间,节点控制器可以从多处理器系统中的远程节点控制器接收存储器访问请求。响应于确定处理器直接耦接到节点控制器,系统可以将节点控制器配置为在第一模式下操作,使得节点控制器管理处理器的本地存储器的缓存一致性。响应于确定节点控制器未直接耦接到任何处理器并且耦接到网络化存储器,系统可以将节点控制器配置为在第二模式下操作,使得节点控制器管理网络化存储器的缓存一致性。
在具体实施方式部分中描述的方法和过程可以被体现为代码和/或数据,代码和/或数据可以被存储在如上的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行被体现为数据结构和代码并被存储在计算机可读存储介质内的方法和过程。
此外,上述方法和过程可以被包括在硬件模块或装置中。硬件模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定的软件模块或一段代码的专用或共享处理器、以及现在已知或以后开发的其他可编程逻辑设备。在硬件模块或装置被激活时,这些硬件模块或装置执行其中所包括的方法和过程。
已经仅出于说明和描述的目的呈现了实施例的前述描述。该描述并非旨在是穷举的或将本公开的范围限制为所公开的形式。相应地,对于本领域普通技术人员而言,许多的修改和变化将是显而易见的。
Claims (15)
1.一种节点控制器,所述节点控制器在多处理器系统中,包括:
处理器接口,所述处理器接口用于与处理器对接;
存储器接口,所述存储器接口用于与网络化存储器对接;
节点控制器接口,所述节点控制器接口用于与远程节点控制器对接;以及
缓存一致性逻辑模块,所述缓存一致性逻辑模块包括用于管理本地存储器访问请求的本地存储器控制逻辑模块和用于管理远程存储器访问请求的远程存储器控制逻辑模块;
其中,所述缓存一致性逻辑模块用于维持耦接到所述处理器接口的处理器的本地存储器的缓存一致性或者耦接到所述存储器接口的网络化存储器的缓存一致性;
其中,当所述缓存一致性逻辑模块正在维持所述本地存储器的缓存一致性时,所述本地存储器控制逻辑模块用于经由所述处理器接口将从所述远程节点控制器接收到的存储器访问请求转发到所述处理器,以促进所述处理器访问所述本地存储器;并且
其中,当所述缓存一致性逻辑模块正在维持所述网络化存储器的缓存一致性时,所述本地存储器控制逻辑模块用于经由所述本地存储器控制逻辑模块与所述远程存储器控制逻辑模块之间的特殊信号路径将从所述远程节点控制器接收到的存储器访问请求转发到所述远程存储器控制逻辑模块,以促进所述远程存储器控制逻辑模块经由所述存储器接口访问所述网络化存储器。
2.如权利要求1所述的节点控制器,其中,所述缓存一致性逻辑模块响应于确定所述处理器经由所述处理器接口直接耦接到所述节点控制器而用于维持所述本地存储器的缓存一致性,并且其中,所述缓存一致性逻辑模块响应于确定所述节点控制器未直接耦接到任何处理器而用于维持所述网络化存储器的缓存一致性。
3.如权利要求2所述的节点控制器,其中,所述特殊信号路径包括以下各项之一:
所述本地存储器控制逻辑模块与所述远程存储器控制逻辑模块之间的直接路径;以及
通过所述处理器接口的回送路径。
4.如权利要求2所述的节点控制器,其中,当所述缓存一致性逻辑模块维持所述网络化存储器的缓存一致性时,所述远程存储器控制逻辑模块用于:
生成存储器访问响应;以及
经由所述特殊信号路径将所述存储器访问响应发送到所述本地存储器控制逻辑模块。
5.如权利要求1所述的节点控制器,其中,所述处理器接口包括超路径互连UPI,并且其中,所述存储器接口包括以下各项之一:双数据速率DDR接口、图形DDR GDDR接口、高带宽存储器HBM接口、外围部件互连快速PCIe接口、计算快速链路CXL接口、Gen-Z接口、无限带宽接口、以太网接口和光纤通道接口。
6.如权利要求1所述的节点控制器,其中,所述缓存一致性逻辑模块实施基于目录的缓存一致性协议。
7.如权利要求1所述的节点控制器,其中,所述缓存一致性逻辑模块包括用于促进基于硬件的一致性跟踪的一个或多个硬件模块。
8.一种多处理器系统,包括:
第一节点控制器,所述第一节点控制器直接耦接到处理器;以及
相同的第二节点控制器,所述第二节点控制器未直接耦接到任何处理器并且耦接到网络化存储器;
其中,所述第一节点控制器和所述第二节点控制器中的每一个节点控制器包括:
处理器接口,所述处理器接口用于与处理器对接;
存储器接口,所述存储器接口用于与网络化存储器对接;以及
节点控制器接口,所述节点控制器接口用于与远程节点控制器对接;以及
缓存一致性逻辑模块,所述缓存一致性逻辑模块包括用于管理本地存储器访问请求的本地存储器控制逻辑模块和用于管理远程存储器访问请求的远程存储器控制逻辑模块;
其中,所述第一节点控制器用于维持所述处理器的本地存储器的缓存一致性,其中所述第一节点控制器的缓存一致性逻辑模块的本地存储器控制逻辑模块经由所述处理器接口将从所述远程节点控制器接收到的存储器访问请求转发到所述处理器,以促进所述处理器访问其本地存储器;并且
其中,所述第二节点控制器用于维持所述网络化存储器的缓存一致性,其中所述第二节点控制器的缓存一致性逻辑模块的本地存储器控制逻辑模块经由所述本地存储器控制逻辑模块与所述远程存储器控制逻辑模块之间的特殊信号路径将从所述远程节点控制器接收到的存储器访问请求转发到所述远程存储器控制逻辑模块,以促进所述远程存储器控制逻辑模块访问所述网络化存储器。
9.如权利要求8所述的多处理器系统,其中,所述特殊信号路径包括以下各项之一:
所述本地存储器控制逻辑模块与所述远程存储器控制逻辑模块之间的直接路径;以及
通过所述处理器接口的回送路径。
10.如权利要求8所述的多处理器系统,其中,所述第二节点控制器的缓存控制逻辑模块的远程存储器控制逻辑模块用于:
经由所述存储器接口访问所述网络化存储器;
生成存储器访问响应;以及
经由所述特殊信号路径将所述存储器访问响应发送到所述本地存储器控制逻辑模块。
11.如权利要求8所述的多处理器系统,其中,所述处理器接口包括超路径互连UPI,并且其中,所述存储器接口包括以下各项之一:双数据速率DDR接口、图形DDR GDDR接口、高带宽存储器HBM接口、外围部件互连快速PCIe接口、计算快速链路CXL接口、Gen-Z接口、无限带宽接口、以太网接口和光纤通道接口。
12.如权利要求8所述的多处理器系统,其中,所述第一节点控制器和所述第二节点控制器实施基于目录的缓存一致性协议。
13.如权利要求8所述的多处理器系统,其中,所述第一节点控制器和所述第二节点控制器中的每一个节点控制器包括用于促进基于硬件的一致性跟踪的一个或多个硬件模块。
14.一种用于维持多处理器系统中缓存一致性的方法,所述方法包括:
由节点控制器从所述多处理器系统中的远程节点控制器接收存储器访问请求;
响应于所述节点控制器确定处理器直接耦接到所述节点控制器,将所述节点控制器的缓存一致性逻辑模块配置为维持所述处理器的本地存储器的缓存一致性;以及
响应于所述节点控制器确定所述节点控制器未直接耦接到任何处理器并且耦接到网络化存储器,将所述节点控制器的缓存一致性逻辑模块配置为维持所述网络化存储器的缓存一致性,
其中,所述节点控制器包括:
处理器接口,所述处理器接口用于与处理器对接;
存储器接口,所述存储器接口用于与网络化存储器对接;
节点控制器接口,所述节点控制器接口用于与远程节点控制器对接;
其中,所述缓存一致性逻辑模块包括用于管理本地存储器访问请求的本地存储器控制逻辑模块和用于管理远程存储器访问请求的远程存储器控制逻辑模块;
其中,当所述缓存一致性逻辑模块维持所述本地存储器的缓存一致性时,所述本地存储器控制逻辑模块用于经由所述处理器接口将从远程节点控制器接收到的存储器访问请求转发到所述处理器,以促进所述处理器访问其本地存储器;并且
其中,当所述缓存一致性逻辑模块维持所述网络化存储器的缓存一致性时,所述本地存储器控制逻辑模块用于经由所述本地存储器控制逻辑模块与所述远程存储器控制逻辑模块之间的特殊信号路径将从所述远程节点控制器接收到的存储器访问请求转发到所述远程存储器控制逻辑模块,以促进所述远程存储器控制逻辑模块访问所述网络化存储器。
15.如权利要求14所述的方法,其中,所述特殊信号路径包括以下各项之一:
所述本地存储器控制逻辑模块与所述远程存储器控制逻辑模块之间的直接路径;以及
通过所述处理器接口的回送路径。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/944,905 | 2020-07-31 | ||
US16/944,905 US11714755B2 (en) | 2020-07-31 | 2020-07-31 | System and method for scalable hardware-coherent memory nodes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064552A CN114064552A (zh) | 2022-02-18 |
CN114064552B true CN114064552B (zh) | 2024-03-26 |
Family
ID=79300563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110437955.3A Active CN114064552B (zh) | 2020-07-31 | 2021-04-22 | 节点控制器、多处理器系统和用于维持缓存一致性的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11714755B2 (zh) |
CN (1) | CN114064552B (zh) |
DE (1) | DE102021108294B4 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11714755B2 (en) | 2020-07-31 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
US11573898B2 (en) | 2020-08-17 | 2023-02-07 | Hewlett Packard Enterprise Development Lp | System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603355A (zh) * | 2015-10-15 | 2017-04-26 | 华为技术有限公司 | 一种计算装置、节点设备和服务器 |
WO2018203754A1 (en) * | 2017-05-02 | 2018-11-08 | Numascale As | Cache coherent node controller for scale-up shared memory systems |
US10268630B1 (en) * | 2017-10-24 | 2019-04-23 | Hewlett Packard Enterprise Development Lp | Noncoherent interprocessor communication remapping node controller |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710907A (en) | 1995-12-22 | 1998-01-20 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5860146A (en) | 1996-06-25 | 1999-01-12 | Sun Microsystems, Inc. | Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces |
US6631448B2 (en) | 1998-03-12 | 2003-10-07 | Fujitsu Limited | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol |
US20020002659A1 (en) | 1998-05-29 | 2002-01-03 | Maged Milad Michael | System and method for improving directory lookup speed |
US6275900B1 (en) | 1999-01-27 | 2001-08-14 | International Business Machines Company | Hybrid NUMA/S-COMA system and method |
US6944719B2 (en) | 2002-05-15 | 2005-09-13 | Broadcom Corp. | Scalable cache coherent distributed shared memory processing system |
US6898687B2 (en) | 2002-12-13 | 2005-05-24 | Sun Microsystems, Inc. | System and method for synchronizing access to shared resources |
US7774551B2 (en) | 2006-10-06 | 2010-08-10 | Hewlett-Packard Development Company, L.P. | Hierarchical cache coherence directory structure |
US20110004732A1 (en) | 2007-06-06 | 2011-01-06 | 3Leaf Networks, Inc. | DMA in Distributed Shared Memory System |
US7895400B2 (en) | 2007-09-28 | 2011-02-22 | Oracle America, Inc. | Hybrid cache coherence using fine-grained hardware message passing |
US8719547B2 (en) | 2009-09-18 | 2014-05-06 | Intel Corporation | Providing hardware support for shared virtual memory between local and remote physical memory |
US8799588B2 (en) | 2012-02-08 | 2014-08-05 | International Business Machines Corporation | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration |
US8793442B2 (en) * | 2012-02-08 | 2014-07-29 | International Business Machines Corporation | Forward progress mechanism for stores in the presence of load contention in a system favoring loads |
US9383932B2 (en) * | 2013-12-27 | 2016-07-05 | Intel Corporation | Data coherency model and protocol at cluster level |
US9684597B1 (en) * | 2014-08-07 | 2017-06-20 | Chelsio Communications, Inc. | Distributed cache coherent shared memory controller integrated with a protocol offload network interface card |
US10417128B2 (en) | 2015-05-06 | 2019-09-17 | Oracle International Corporation | Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches |
CN105718242B (zh) | 2016-01-15 | 2018-08-17 | 中国人民解放军国防科学技术大学 | 多核dsp中支持软硬件数据一致性的处理方法及系统 |
US9916247B2 (en) | 2016-02-04 | 2018-03-13 | International Business Machines Corporation | Cache management directory where hardware manages cache write requests and software manages cache read requests |
US10404800B2 (en) * | 2016-07-15 | 2019-09-03 | Hewlett Packard Enterprise Development Lp | Caching network fabric for high performance computing |
NO342930B1 (en) * | 2016-10-18 | 2018-09-03 | Numascale As | Cache Coherent node controller |
US10929174B2 (en) * | 2016-12-15 | 2021-02-23 | Ecole Polytechnique Federale De Lausanne (Epfl) | Atomic object reads for in-memory rack-scale computing |
US10423530B2 (en) | 2017-05-08 | 2019-09-24 | Hewlett Packard Enterprise Development Lp | Partial cache coherence |
US10489310B2 (en) * | 2017-10-20 | 2019-11-26 | Hewlett Packard Enterprise Development Lp | Determining cache value currency using persistent markers |
US10592465B2 (en) * | 2017-10-26 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Node controller direct socket group memory access |
US10725927B2 (en) | 2017-12-04 | 2020-07-28 | Beijing Panyi Technology Co., Ltd. | Method and apparatus for co-managed cache system |
US10402330B2 (en) * | 2018-04-03 | 2019-09-03 | Intel Corporation | Adaptive coherence for latency-bandwidth tradeoffs in emerging memory technologies |
US20200034146A1 (en) * | 2018-07-30 | 2020-01-30 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11586369B2 (en) | 2019-05-29 | 2023-02-21 | Xilinx, Inc. | Hybrid hardware-software coherent framework |
US11379236B2 (en) | 2019-12-27 | 2022-07-05 | Intel Corporation | Coherency tracking apparatus and method for an attached coprocessor or accelerator |
US11755501B2 (en) * | 2020-03-27 | 2023-09-12 | Intel Corporation | Efficient data sharing for graphics data processing operations |
US11714755B2 (en) | 2020-07-31 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
US20210092069A1 (en) * | 2020-12-10 | 2021-03-25 | Intel Corporation | Accelerating multi-node performance of machine learning workloads |
-
2020
- 2020-07-31 US US16/944,905 patent/US11714755B2/en active Active
-
2021
- 2021-03-31 DE DE102021108294.3A patent/DE102021108294B4/de active Active
- 2021-04-22 CN CN202110437955.3A patent/CN114064552B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603355A (zh) * | 2015-10-15 | 2017-04-26 | 华为技术有限公司 | 一种计算装置、节点设备和服务器 |
WO2018203754A1 (en) * | 2017-05-02 | 2018-11-08 | Numascale As | Cache coherent node controller for scale-up shared memory systems |
US10268630B1 (en) * | 2017-10-24 | 2019-04-23 | Hewlett Packard Enterprise Development Lp | Noncoherent interprocessor communication remapping node controller |
Also Published As
Publication number | Publication date |
---|---|
DE102021108294A1 (de) | 2022-02-03 |
CN114064552A (zh) | 2022-02-18 |
DE102021108294B4 (de) | 2023-09-07 |
US11714755B2 (en) | 2023-08-01 |
US20220035742A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100465583B1 (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
CN114064552B (zh) | 节点控制器、多处理器系统和用于维持缓存一致性的方法 | |
US8862801B2 (en) | Handling atomic operations for a non-coherent device | |
US6654858B1 (en) | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol | |
JP2002304328A (ja) | マルチプロセッサシステム用コヒーレンスコントローラ、およびそのようなコントローラを内蔵するモジュールおよびマルチモジュールアーキテクチャマルチプロセッサシステム | |
US20030212741A1 (en) | Methods and apparatus for responding to a request cluster | |
JPH11134312A (ja) | 分散共有メモリ多重プロセッサシステム | |
US6269428B1 (en) | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system | |
US20200226081A1 (en) | Light-weight memory expansion in a coherent memory system | |
EP1701267B1 (en) | Address snoop method and multi-processor system | |
US20180004451A1 (en) | Data Reading Method, Device and System | |
US7685373B2 (en) | Selective snooping by snoop masters to locate updated data | |
US7752397B2 (en) | Repeated conflict acknowledgements in a cache coherency protocol | |
CN112540941A (zh) | 一种数据转发芯片及服务器 | |
US7107409B2 (en) | Methods and apparatus for speculative probing at a request cluster | |
KR20190112626A (ko) | 어레이 내에서 솔리드 스테이트 드라이브들을 자율적으로 관리하는 메커니즘 | |
US20220050780A1 (en) | System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing | |
NO343359B1 (en) | Interconnect switch in multiprocessor systems | |
Sharma et al. | An introduction to the compute express link (cxl) interconnect | |
US7653790B2 (en) | Methods and apparatus for responding to a request cluster | |
JP4112050B2 (ja) | コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム | |
US7337279B2 (en) | Methods and apparatus for sending targeted probes | |
US20040133744A1 (en) | System and method for avoiding deadlock | |
CN108415873B (zh) | 转发对监听请求的响应 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |