CN105706068A - 路由存储器流量和i/o流量的存储器网络 - Google Patents
路由存储器流量和i/o流量的存储器网络 Download PDFInfo
- Publication number
- CN105706068A CN105706068A CN201380076249.4A CN201380076249A CN105706068A CN 105706068 A CN105706068 A CN 105706068A CN 201380076249 A CN201380076249 A CN 201380076249A CN 105706068 A CN105706068 A CN 105706068A
- Authority
- CN
- China
- Prior art keywords
- memory
- node
- storage network
- memory node
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- 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
- 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/1048—Scalability
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
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
相关申请的交叉引用
本申请涉及Li等的标题为“MemoryNetwork”的专利申请(代理人案号83210525)和Li等的标题为“MemoryNodeErrorCorrection”的专利申请(代理人案号83210563),两者与本申请同时提交,并转让给本申请相同的受让人。
背景技术
计算机网络及系统对于现代商务已成为必不可少的工具。目前,跨网络存储和访问关于几乎每个可想象主题的太字节的信息。某些应用,例如电信网络应用、移动广告、社交媒体应用等,要求其数据的短响应时间。结果,为了提供期望的较快响应时间,正在采用新的基于存储器的程序实现方式,例如存储器内数据库。为了减少响应时间,这些存储密集型程序主要依赖大量用于存储太字节数据的直接可寻址物理存储器(例如,随机存取存储器)而不是传统的硬盘驱动。
附图说明
参考以下各图所示的示例,在随后的描述中详细描述实施例。
图1示出了一种存储器网络。
图2示出了图1所示的存储器网络,示出了具有连接到存储器节点的存储器控制器的处理器。
图3示出了存储器节点的框图。
图4示出了堆叠的存储器节点。
图5示出了具有多个堆叠的存储器的存储器节点。
图6示出了用于高速缓存一致性的消息交换。
图7示出了一种方法的流程图。
具体实施方式
出于简化及说明目的,主要通过参考实施例的示例来描述其原理。在以下的描述中,为了提供对实施例的全面理解,阐述了许多具体细节。清楚地,可以在不限于所有具体细节的情况下实践这些实施例。而且,可以以各种组合一起使用这些实施例。
根据示例,存储器网络包括可以经由例如高速点对点链路的高速互连连接的存储器节点。连接到存储器网络的处理器可以将存储器网络用作主存储器。例如,用于处理器的主存储器控制器可以在存储器网络中执行存储器访问操作,以从存储用于处理器的数据的存储器节点读和写数据。
而且,每个存储器节点可以是包括协存储器控制器和存储数据的存储器的存储器子系统。存储器节点还可以包括将数据或存储器访问命令路由到目的地的路由逻辑,所述目的地可以是存储器网络中的另一存储器节点。因此,存储器网络能够充当可缩放的高性能存储器池和用于支持存储器网络内存储器节点之间和处理器与存储器节点之间的数据传输的网络二者。
另外,存储器网络提供了能够用作用于存储器系统和系统交换结构二者的同一物理基础设施的统一存储器系统。包括存储器网络中的节点和链路的物理基础设施同时支持存储器流量和包括输入/输出(I/O)流量的其他类型流量二者。例如,存储器网络能够充当可缩放的高性能存储器池和用于支持经由存储器网络在处理器之间和经由存储器网络在处理器与I/O系统之间的数据传输的基底二者。
存储器网络支持存储器流量,例如存储器访问命令和用于高速缓存一致性或非一致性协议的消息。存储器流量可以在计算节点(例如,处理器)之间和在计算节点与存储器节点之间。存储器网络还支持计算节点和外围设备之间的I/O流量。I/O流量可以包括例如处理器、网络接口控制器(NIC)、存储设备和桥接网络的桥接设备之间的网络及存储流量。因为存储器网络能够支持存储器流量和I/O流量二者,所以可以消除专用的I/O信道,且处理器可以将处理器插座中的同一组物理引脚用于存储器流量和I/O流量二者。这允许信道和引脚少得多的更密集且高度集成的系统。
另外,存储器网络促进存储器容量缩放性。为了缩放存储器网络,额外的存储器节点可以添加到存储器网络,并例如经由点对点链路连接到现有的存储器节点。存储器网络,鉴于其可缩放性,能够支持大容量且高带宽的大数据应用,例如存储器内数据库。
图1示出了存储器网络100。存储器网络100包括节点,节点可以包括存储器节点130和非存储器节点。非存储器节点可以包括计算节点10和I/O节点。I/O节点可以是将计算节点10和/或存储器节点130连接到外围设备或另一网络的节点。例如,I/O节点可以包括NIC20、I/O控制器30、存储器节点桥40、存储控制器50和/或其他类型的节点。
计算节点10可以包括执行计算的电路,例如处理器或多核处理器,其可以提供在例如中央处理单元(CPU)插座的芯片中。计算节点的其他示例是图形处理单元(GPU)、现场可编程门阵列(FPGA)等。
关于I/O节点,存储控制器50可以将计算节点10连接到存储设备,例如硬盘或其他存储设备。I/O控制器30可以管理例如处理器的计算节点10与其他组件之间的数据通信。存储器节点桥40可以将存储器网络100连接到可能具有相同或异质基础设施的另一存储器网络。例如,存储器节点桥40是与外部存储器网络通信的边缘设备。存储器节点桥40可以为目的地网络格式化消息(如果其使用不同的消息格式的话),并连接到不同的物理介质,例如从铜连接到光纤(如果外部存储器网络使用不同介质的话)。NIC20将计算节点10连接到外部网络,例如局域网或广域网,以发送或接收网络流量。
存储器节点130可以包括动态随机存取存储器(DRAM)、忆阻器、闪速存储器、非易失性存储器或其他类型的存储器。存储器网络100包括使存储器网络100内的节点互相连接的链路60。链路60可以是关于图2描述的点对点链路。存储器节点130可以作为用于计算节点10的共享存储器操作,并且存储器节点130针对计算节点10执行存储器访问命令。共享存储器可以是用于所有计算节点10的全局共享存储器,或可以是下面进一步详细描述的分区的共享存储器。
在一个示例中,形成用于存储器网络100的系统交换结构的存储器节点130和链路60是存储器网络100的核心构建块,并且包括处理器的非存储器节点是外围设备。计算节点10可以利用存储器节点130作为用于其存储器系统的主存储器。可以通过非存储器节点发出的命令在存储器节点处的适当位置操纵数据,以最小化数据流量。而且,I/O操作可以作为存储队列操作执行,并且可以将网络地址翻译为存储器地址以发送数据到存储器网络100内的目的地。例如,取代从处理器发送数据到NIC的是,处理器将指向存储器节点内存储的数据的指针发送到网络消息中的NIC,且NIC使用该指针从存储器节点取得数据。包括存储器网络100中的节点和链路60的物理基础设施支持存储器流量和I/O流量。
图1示出存储器网络100的抽象视图。存储器网络100可以采用不同的拓扑,并可以如下面进一步详细描述的是分层级的。
图2示出了存储器网络100的示例,包括作为计算节点的处理器110a-b和分别用于处理器110a-b的主存储器控制器111a-b。存储器网络100包括用于图1所示链路60的点对点链路101。点对点链路是链接两个电路的电线或其他连接介质。在一个示例中,点对点链路仅连接两个电路,其不同于共享总线或连接多于两个电路或设备的纵横交换机。处理器和主存储器控制器,例如110a和111a或110b和111b,可以提供在同一芯片上,或可以提供在分离的芯片上。而且,存储器网络100中可以使用多于或少于图1所示的处理器、主存储器控制器和存储器节点。而且,可以使用存储器的处理器110a-b以外的任意电路112可以连接到存储器网络100。处理器110a-b中的每一个运行可以执行页面管理机制并执行其他功能的操作环境(例如,OS、管理程序、机器监控器等)。
存储器节点130还可以经由作为节点间的点对点链路的点对点链路131连接在一起。每个存储器节点能够作为存储器访问的目的地操作(如果要访问的数据存储于该存储器节点的话),且每个存储器节点能够作为将存储器访问命令转发给其适当的目的存储器节点的路由器操作(如果要访问的数据处于不同的存储器节点的话)。例如,主存储器控制器111a-b能够发送存储器访问命令(例如读、写、复制等)给存储器节点130,以针对处理器110a-b执行存储器访问。接收命令的每个存储器节点可以执行命令(如果它为目的地的话),或将命令路由至其目的存储器节点,如下面进一步描述的。存储器网络100通过点对点链路131、并通过按需添加存储器节点的能力提供存储器可缩放性,这满足大数据工作负载的存储器容量需求。放大存储器网络100中的存储器容量像级联额外的存储器节点一样容易。此外,因为存储器网络100中的存储器容量扩展是通过存储器信道(例如点对点链路131)而不是专用的I/O信道,所以需要对硬件和操作系统最小的修改。
图3示出了存储器节点200的框图,其可以表示图1所示的存储器节点130中的任一个。存储器节点200包括控制逻辑210和存储器215。存储器215可以是动态随机存取存储器(DRAM)或是易失性或非易失性的任意类型半导体存储器。控制逻辑210可以包括存储器控制器逻辑211和路由逻辑212。存储器控制器逻辑211也称作协存储器控制器或同地协作存储器控制器。控制逻辑210可以包括能够执行存储介质上存储的机器可读指令的硬件。存储器控制器逻辑211和路由逻辑212可以由两个分离的硬件电路或同一电路实现。存储器控制器逻辑211执行包括存储器访问操作的针对存储器215的存储器控制器的操作。路由逻辑212接收存储器访问命令,确定其是否为目的地,且如果其是目的地,则发送存储器访问命令给存储器控制器逻辑211用于执行。如果存储器节点不是目的地,则路由逻辑212发送存储器访问命令给存储器网络中朝向目的地的下一跳。各种路由协议可以用于路由。
在一个示例中,存储器节点200可以是多维堆叠的存储器,例如2.5D或3D或任意维数。存储器节点可以包括封装在单个组件内的多个存储器芯片,例如堆叠的存储器或另一形式的组合封装(co-packaged)的存储器。图4示出了可以用作存储器节点的3D堆叠的动态随机存取存储器(DRAM)的示例。例如,3D堆叠的DRAM300可以包括具有基础逻辑层302的多层密集存储器管芯301。3D堆叠的DRAM300可以包括用于从存储器管芯301中的DRAM传送数据给基础逻辑层302的硅穿孔(TSV)通道。基础逻辑层302包括图1所示的控制逻辑210。在另一示例中,存储器节点200可以包括多个存储器堆叠,并且每个存储器堆叠经由节点内链路连接。例如,图5示出了可以用作存储器网络100中的存储器节点的多堆叠存储器节点400的框图。在此示例中,存储器节点400包括存储器堆叠401-404,但存储器节点可以具有少于4个或多于4个的存储器堆叠。至少一个堆叠具有协存储器控制器。例如,堆叠401包括例如图4所示的基础逻辑层。基础逻辑层可以包括控制逻辑210,控制逻辑210包括图3的存储器控制器逻辑211和路由逻辑212。其他堆叠可以或可以不包括控制逻辑。例如,堆叠404为没有控制逻辑的朴素DRAM堆叠,并且堆叠403具有控制逻辑。堆叠401-404经由节点内链路405连接。
存储器网络100可以包括在存储器子系统的层级内。例如,层级的上级包括用于处理器110a-b的存储器子系统,其可以包括主存储器控制器111a-b和作为用于主存储器控制器111a-b的存储器操作的存储器节点130。层级的下级包括每个存储器节点中的存储器子系统。图3-5示出了用于存储器节点的存储器子系统的示例。
解耦的存储器接口用于存储器子系统的层级。例如,解耦的存储器接口意味着没有单个中央存储器控制器用于所有存储器子系统。替代的是,存储器控制器是分布式的,例如用于处理器110a-b的主存储器控制器111a-b和用于每个存储器节点的存储器控制器逻辑211。而且,存储器网络100中的存储器访问请求是异步且非确定性的,因为例如由于存储器网络中存储器访问请求的路由,不能预先确定接收针对存储器访问请求的响应的时间。这不同于常规的存储器系统,其中控制器典型地预期在一定数量的周期内的对存储器访问命令的响应。
在层级存储器子系统所采用的解耦的存储器接口设计中,处理器的主存储器控制器和存储器节点的协存储器控制器将抽象协议用于通信。例如,处理器侧的主存储器控制器(例如,图2中示出的主存储器控制器111a或111b)负责从处理器发送高级存储器访问命令(例如读、写和块复制)至存储器网络100,在那里其被路由至目的存储器节点。
可以在层级中的多种配置中提供存储器网络100。例如,存储器网络100可以提供作为小规模存储器网络,其连接到同一计算机刀片服务器上的处理器,和/或可以提供在具有通过背板链路连接的计算及存储器刀片的外壳内,和/或可以提供在与经由NIC连接到存储器网络100的高级网络和/或远程服务器外壳连接的远程混合或纯存储器外壳内。所有级处的存储器网络的拓扑可以相同或不同,例如网格、环状、树状等。图2中示出的存储器网络100是2D网格拓扑的示例。
在存储器网络100中,例如如图1和2所示的,计算节点10能够置于多个位置,例如和存储器节点一起共同位于同一刀片中;驻留于同一外壳中但在不同的刀片上(例如,分离为计算刀片和存储器刀片);以及分布在不同的外壳内。对于所有不同的计算节点放置选择,存储器网络100内部的物理信道(例如图1中示出的链路60)将存储器网络100内的节点相互连接。而且,对于所有不同的计算节点放置,存储器网络100可以充当用于计算节点10的共享存储器。
共享的存储器网络100能够用于有效实现包括共享且一致性存储器、共享非一致性存储器和分布式非共享存储器的不同存储器模型。
存储器网络100可以是共享且一致性存储器多处理器系统,例如充当具有用于处理器110a-b的高速缓存一致性协议的共享存储器的存储器网络100。对于具有私有高速缓存的每个处理器,可能有数据块的许多拷贝,例如存储器节点中的一个拷贝以及高速缓存中的一个或多个拷贝。当一个拷贝改变时,其他拷贝也必须改变。
用于共享存储器的高速缓存一致性协议可以由存储器网络100实现。对于高速缓存一致性协议,处理器可以运行同一OS或管理程序,并将存储器网络100视为单个共享的存储器空间,其中通过硬件支持的高速缓存一致性机制来确保一致性。
高速缓存一致性协议可以是基于监听或基于目录的一致性协议。对于基于监听的一致性协议,存储器网络100能够用于在处理器之间广播一致性消息。因为基于监听的一致性的有限可缩放性,通常在大规模共享存储器系统中使用基于目录的一致性。
对于基于目录的一致性,存储器节点130可以包括例如由图3所示的存储器控制器逻辑211实现的目录控制器。目录控制器存储维持高速缓存之间一致性的高速缓存一致性目录。目录可以包括用于存储器网络中每个数据块(例如,高速缓存行)的条目,用于指示每个数据块的数据块状态和(多个)所有者/(多个)共享者。目录可以通过地址交织跨存储器节点130分布。包括其目录控制器及目录的存储器节点也称作某个地址范围的归属节点。在一个示例中,存储器网络100表示用于连接到存储器网络100的处理器的共享全局地址空间,并且条目包括全局地址及地址的共享者。对于每个地址可能有一个或多个共享者。共享者可以包括将数据块存储在其私有高速缓存中的任意处理器。用于地址的条目可以包括指示共享者的比特矢量。条目还可以指示存储器节点中存储的数据块是脏还是干净。处理器在将数据块从存储器节点加载到其高速缓存之前检查目录。当条目改变时,目录用该条目或更新其他高速缓存或使其他高速缓存无效。如果目录存储在DRAM存储器节点中,则其可以存储在DRAM中。然而,目录可以存储在快速目录高速缓存内以改进性能。
基于目录的高速缓存一致性可以使用反转的目录来最小化存储器节点130中存储的目录信息量。例如,目录可以在被缓存的地址中仅存储用于数据块的信息,而不是用于所有存储器地址的信息。这可以减少开销并改进可缩放性。
图6描述了存储器网络100中针对基于目录的高速缓存一致性协议交换的消息及数据。在图6所示的示例中,示出了来自图2的存储器节点130和处理器110a及110b。处理器110a及110b分别具有本地高速缓存510a和510b。处理器110a及110b可以是在芯片多处理器(CMP)内。每个处理器为存储器节点中存储的高速缓存块的潜在共享者。
在处理器处的末级高速缓存上的未命中能够为数据块触发对共享存储器网络100的请求。例如,高速缓存510b中的高速缓存未命中触发处理器110b通过其主存储器控制器111b发送请求给存储数据块的存储器节点(即,归属节点),该存储器节点在此示例中为存储器节点130a。图5中,请求的发送示出为步骤1,“请求存储器A”。为了标识发送请求的存储器节点,主存储器控制器111b可以确定数据的全局地址来标识归属存储器节点以发送请求,该归属存储器节点在此示例中为存储器节点130a。处理器110a生成具有读请求的分组以发送给存储器节点130a。分组可以包括处理器110a的源地址和目的地地址以及分组是用于读操作的指示。分组可以包括要读的数据的全局地址。主存储器控制器111b发送该分组给存储器节点130a。分组通过处理器110b和存储器节点130a之间路径中的中间存储器节点路由至存储器节点130a。
存储器节点130a的协存储器控制器检索目录信息。如果请求的数据块在存储器节点130中是最新的,则存储器节点130a的协存储器控制器发送数据块给请求者,该请求者为处理器110b。这在图5中示出为步骤2,“数据”从存储器节点130a发送至处理器110b。数据可以在分组内,并在存储器网络100中路由至处理器110b。归属存储器节点还更新目录信息以添加进行请求的处理器为共享者(如果读)或所有者(如果写)。
如果存储器节点130a中请求的数据块不是最新的并为例如处理器110a的另一处理器所有,则存储器节点130a的协存储器控制器向拥有该数据块的处理器110b发起一致性流量。这示出为步骤3,“FWD”。一致性流量包括经由存储器网络100从存储器节点130a路由至处理器110a的消息。该消息可以提供在分组中,并可以标识被请求的数据。接着,从所有者的高速缓存510a检索被请求的数据块,并且被请求的数据块经由存储器网络100路由至请求者处理器110b。处理器110a然后可以将数据块从其高速缓存510a写至存储器节点130a,并且根据一致性写改变目录中的条目以指示存储器节点130a中存储的数据块是干净的。
如图6所示,存储器网络100通过同一网络路由包括一致性流量的存储器流量。而且,存储器事务及其相关联的一致性事务能够组合为一个事务。例如,在存储器网络100中,末级高速缓存上的未命中能够发起存储器加载以及目录查询的事务。存储器节点的协存储器控制器首先检查目录,并接着可以确定在哪里和如何将数据返回给请求者,如图6所示。而且,如果存储器访问和单个事务或分组中的不相关的一致性消息是用于同一目的存储器节点并且该存储器访问与该不相关的一致性消息的组合不导致冲突,则该存储器访问可以与该不相关的一致性消息组合。
分离的协议级虚拟信道可以用于避免事务协议中的死锁。在协议级虚拟信道内部,多个虚拟信道可以用于避免网络硬件内的死锁,并改进网络性能。信道仲裁期间,存储器网络100能够使高速缓存一致性流量优先于其他存储器流量,因为一致性流量对系统性能可能具有更高影响。
提出的存储器网络100还能够支持非一致性系统,包括共享的非一致性存储器系统和非共享的存储器系统。在此范例下,存储器网络100支持GAS(全局地址空间,共享但不一致)和/或消息传递(分离的地址空间,显式的通信信道)。因为存储器网络100使用用于存储器间节点通信的高速链路,且不同域的存储器物理且直接地通过扩展的存储器信道连接,所以这些通信能够进行得比通过当今常规系统中的I/O路径快得多。对于GAS编程模型,处理器是非高速缓存一致性的,但具有到同一存储器网络的直接连接。因此,处理器能够利用RDMA(远程直接数据存储器访问)型访问直接访问远程存储器,并可以由单向(放/取)通信执行。在存储器网络100上直接支持RDMA通信,而无需分离的存储器信道(其在常规存储器系统中是被要求的)。这些基元是用于GAS的存储器网络100中存储器流量的示例。而且,在共享但非一致性模式(例如,GAS)中,远程处理器可以在允许另一处理器访问共享存储器以取得最新数据之前,对存储器执行高速缓存冲洗。
消息传递是非一致性协议存储器系统的另一示例。它也是非共享存储器系统,其中每个处理器有其自己的私有存储器地址空间,并且存储器空间之间无直接通信。消息传递一般用在具有用于执行并行应用的分离存储器的分布式机器上。对于消息传递,每个执行进程通过在网络上发送和接收I/O消息,与其他进程通信并共享其数据。在存储器网络100中,对于基于消息传递的通信基元(例如发送和接收),通过引用(例如通过指向共享存储器中的地址的指针),可以简单地传送分配给消息的数据块。例如,当消息发送方完成存储器内数据块中消息的构造(写)并确保所有缓冲(在软件或硬件高速缓存中)已经交付给存储器网络100中的存储器时,它可以简单地放弃数据块的写所有权,并将块句柄(例如,其指针)传递给接收方。消息的接收方能够解释该句柄,并在获得块的所有权后,接收方能够或基于指针通过存储器网络100取得数据,或简单地在适当位置使用它。当需要实际数据拷贝(例如,在写时复制的场景中)时,存储器节点能够执行从一个存储器节点至另一个的直接数据传送。
还能分层级地应用非一致性模式和一致性模式,其中多个一致性域共存于存储器网络100中。域内通信通过一致性共享存储器进行,而域间通信能够通过消息传递或共享但非一致性协议及编程模型(例如分区的全局地址空间(PGAS))进行。
存储器网络100的物理基础设施(包括图1中示出的节点和链路60)提供了统一的存储器系统和系统交换结构,其能用作用于存储器系统和系统交换结构二者的物理基础设施。物理基础设施支持存储器流量和包括I/O流量的其他类型流量。存储器流量可以包括从图1中示出的计算节点10发送到存储器节点130的存储器访问命令(例如读、写、块复制等),以及对存储器访问命令的响应。存储器流量还可以包括用于高速缓存一致性协议的消息,以及用于非一致性存储器共享的辅助控制消息,例如强制的高速缓存行冲洗命令。I/O流量可以包括计算节点10与例如图1中示出的NIC20、I/O控制器30、存储器节点桥40和/或其他类型节点的I/O节点之间的流量。流量可以在分组中经由存储器网络100发送。在传统的计算系统中,存储器流量和I/O流量通过不同的路径路由。例如,当处理器需要发送网络消息给另一处理器时,它首先准备数据存储器,将该网络消息组装成网络分组,然后调用在I/O信道(例如,PCIe)处附着的NIC。将数据存储在NIC能够访问其的地方,并且然后I/O路径处的NIC发出该数据分组给另一处理器。
在存储器网络100中,可以使用作为目的地地址的存储器地址,将I/O(例如,网络)流量作为分组在存储器网络100中发送。存储器地址可以是用于非分区的共享存储器空间的全局地址或分区地址空间的存储器地址。存储器节点130可以例如使用指示针对具有特定目的地的分组的下一跳的路由表,在存储器网络100中朝向分组的目的地路由分组。例如,如果存储器网络100中的存储器地址用作目的地地址,则路由表可以包含目的地存储器地址/下一跳关联,因此路由逻辑能够将分组朝向它们的目的地路由。当传送网络消息时,存储器网络100可以简单地传送存储器块的句柄(例如,指向块的指针)。如果不支持直接高速缓存访问,则在远程节点能够得到数据之前,存储器块必须被冲洗到存储器,否则的话,远程接收方能够直接从发送方的高速缓存得到数据以改进性能。远程接收方(处理器或其他I/O设备)能够基于句柄通过存储器网络100取得数据,或简单地在适当位置使用它。在此情况下,将网络流量转换为远程存储器流量,同时维持传统的软件接口(例如,以太网库)。NIC将存储器网络100中的所有存储器节点130视为用于其分组的潜在虚拟队列。通过将虚拟队列中的存储器块的指针发送至NIC,能够进行外发分组。接着,NIC能够使用指针取得数据,并外发发送。能够以相似方式处理进入的分组,其中NIC能够在存储器空间中分配虚拟队列,存储进入的分组,并发送指针给存储器网络内部的指定处理器。此外,能够使节点知晓存储器交换结构拓扑,以便根据特定的应用使用模型优化数据放置。例如,I/O控制器可以将I/O流量的头部与数据内容分离,以便将头部和/或数据有效载荷最接近将最终处理该数据的多个计算节点之一放置。I/O节点还可以为I/O处理的不同部分选择不同类型的存储器语义。通知存在要进行或完成的I/O工作的命令头部可以放置于存储器的高速缓存一致性区域中,以支持一个队列上的读取器和写入器的多个实例,同时数据有效载荷可以放置于非一致性存储器区域内以避免高速缓存一致性开销。
图7示出了例如由图1-6中示出的存储器节点130之一执行的方法700。在701,存储器将数据块存储在其存储器中。数据块可以是针对指派给由存储器节点130对于计算节点10实现的共享存储器中的存储器节点的地址。在702,存储器节点在存储器网络100中路由存储器流量。在703,存储器节点在存储器网络100中将其他流量朝向其目的地路由。除了基本的存储器流量(例如,读、写),其他流量可以包括计算节点和连接到存储器网络100的外围设备之间的一致性流量和I/O流量。
虽然已经参考示例描述了实施例,但可以对所描述的实施例做各种修改,而不背离请求保护的特征的范围。
Claims (15)
1.一种存储器网络,包括:
存储器节点,用于为计算节点提供共享存储器并针对所述计算节点执行存储器访问命令;以及
链路,连接所述存储器节点并连接所述存储器节点与所述计算节点,
其中,包括所述存储器访问命令的存储器流量是经由所述存储器网络中的所述链路在所述计算节点和所述存储器节点之间可路由的,并且输入/输出(I/O)流量是经由所述存储器网络中的所述链路在所述计算节点和外围设备之间可路由的。
2.权利要求1所述的存储器网络,其中所述计算节点将数据在本地存储器中进行缓存,并要将所缓存的数据存储在所述存储器节点中,并且所述存储器流量包括所述计算节点之间或所述计算节点与所述存储节点之间的消息,以实现高速缓存一致性协议或非一致性协议。
3.权利要求2所述的存储器网络,其中所述高速缓存一致性协议包括基于监听或基于目录的高速缓存一致性协议,且对于所述基于目录的高速缓存一致性协议,所述存储器节点包括维持目录以指示所述计算节点之间的高速缓存一致性的目录控制器。
4.权利要求2所述的存储器网络,其中所述非一致性协议包括所述存储器网络中的全局地址空间协议。
5.权利要求2所述的存储器网络,其中所述非一致性协议包括所述存储器网络中的消息传递协议。
6.权利要求1所述的存储器网络,其中所述I/O流量包括在所述计算节点与所述外围设备之间的网络消息或其他I/O消息。
7.权利要求1所述的存储器网络,其中所述外围设备包括以下至少之一:网络接口控制器、I/O控制器、存储控制器和桥接存储器网络的桥接设备。
8.权利要求1所述的存储器网络,其中所述存储器流量和所述I/O流量包括由所述存储器节点朝向最终目的地路由的分组。
9.权利要求8所述的存储器网络,其中所述存储器流量或所述I/O流量包括包含指向存储器节点中数据块的指针的消息,所述消息的接收方使用所述指针从所述存储器节点取得所述数据块。
10.权利要求1所述的存储器网络,其中将存储器访问与其相关联的一致性事务组合为用于所述存储器网络实现的高速缓存一致性协议的一个事务。
11.一种在包括存储器节点和计算节点的存储器网络中的存储器节点,其中所述存储器节点针对所述计算节点执行存储器访问命令,所述存储器节点包括:
存储器,用于存储在所述计算节点中缓存的数据块;以及
控制逻辑,用于在所述存储器网络中路由所述存储器访问命令,并执行目的地为所述存储器节点的存储器访问命令,并用于在所述存储器网络中将其他流量朝向其目的地路由,其中所述其他流量包括在所述计算节点和连接到所述存储器网络的外围设备之间的输入/输出(I/O)流量。
12.权利要求11所述的存储器节点,其中所述外围设备包括以下至少之一:网络接口控制器、I/O控制器、存储控制器和桥接存储器网络的桥接设备。
13.权利要求11所述的存储器节点,其中所述存储器流量包括高速缓存一致性协议,所述高速缓存一致性协议包括基于监听和基于目录的高速缓存一致性协议的至少之一。
14.权利要求11所述的存储器节点,其中所述存储器网络包括共享非一致性存储器系统或非共享存储器系统。
15.一种由包括存储器和控制逻辑的存储器节点执行的方法,其中所述存储器节点在包括存储器节点和计算节点的存储器网络中,且其中所述存储器节点作为用于所述计算节点的存储器操作,所述方法包括:
将用于所述计算节点的数据块存储在所述存储器内;
针对一致性存储器系统、非一致性共享存储器系统和非共享存储器系统中的至少一个,在所述存储器网络中路由包括存储器访问命令和控制消息的存储器流量,以及
在所述存储器网络中路由其他流量,其中所述其他流量包括在所述计算节点与连接到所述存储器网络的外围设备之间的输入/输出(I/O)流量。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/038935 WO2014178854A1 (en) | 2013-04-30 | 2013-04-30 | Memory network to route memory traffic and i/o traffic |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105706068A true CN105706068A (zh) | 2016-06-22 |
CN105706068B CN105706068B (zh) | 2019-08-23 |
Family
ID=51843824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380076249.4A Active CN105706068B (zh) | 2013-04-30 | 2013-04-30 | 路由存储器流量和i/o流量的存储器网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9952975B2 (zh) |
EP (1) | EP2992436A4 (zh) |
CN (1) | CN105706068B (zh) |
WO (1) | WO2014178854A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580240A (zh) * | 2019-09-10 | 2019-12-17 | 北京海益同展信息科技有限公司 | 用于电子设备的外围设备管理方法、装置、电子设备和介质 |
CN110908929A (zh) * | 2018-09-18 | 2020-03-24 | 辉达公司 | 用于高带宽缩放的一致数据高速缓存 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106415522B (zh) | 2014-05-08 | 2020-07-21 | 美光科技公司 | 存储器内轻量一致性 |
CN106462501B (zh) * | 2014-05-08 | 2019-07-09 | 美光科技公司 | 基于混合存储器立方体系统互连目录的高速缓冲存储器一致性方法 |
AU2014203218B2 (en) * | 2014-06-13 | 2016-08-25 | Canon Kabushiki Kaisha | Memory configuration for inter-processor communication in an MPSoC |
US9977750B2 (en) * | 2014-12-12 | 2018-05-22 | Nxp Usa, Inc. | Coherent memory interleaving with uniform latency |
US9645760B2 (en) * | 2015-01-29 | 2017-05-09 | Kabushiki Kaisha Toshiba | Storage system and control method thereof |
US9940287B2 (en) * | 2015-03-27 | 2018-04-10 | Intel Corporation | Pooled memory address translation |
US9424192B1 (en) | 2015-04-02 | 2016-08-23 | International Business Machines Corporation | Private memory table for reduced memory coherence traffic |
WO2016173611A1 (en) * | 2015-04-27 | 2016-11-03 | Hewlett-Packard Development Company, L P | Memory systems |
US9842050B2 (en) * | 2015-04-30 | 2017-12-12 | International Business Machines Corporation | Add-on memory coherence directory |
KR102338266B1 (ko) * | 2015-09-15 | 2021-12-16 | 에스케이하이닉스 주식회사 | 메모리 네트워크 및 이를 포함하는 시스템 |
CN107533437A (zh) * | 2015-09-24 | 2018-01-02 | 慧与发展有限责任合伙企业 | 弹性存储器结构 |
CN107534621B (zh) * | 2015-09-24 | 2021-06-29 | 慧与发展有限责任合伙企业 | 存储器系统、存储器组件设备、路由方法及可读存储介质 |
US11126564B2 (en) * | 2016-01-12 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Partially coherent memory transfer |
CN110710139A (zh) | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 具有光置换器的无阻塞全网状数据中心网络 |
CN110731070A (zh) | 2017-03-29 | 2020-01-24 | 芬基波尔有限责任公司 | 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络 |
CN110710172A (zh) | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络 |
US10565112B2 (en) * | 2017-04-10 | 2020-02-18 | Fungible, Inc. | Relay consistent memory management in a multiple processor system |
US10325341B2 (en) * | 2017-04-21 | 2019-06-18 | Intel Corporation | Handling pipeline submissions across many compute units |
US11687460B2 (en) * | 2017-04-26 | 2023-06-27 | Advanced Micro Devices, Inc. | Network cache injection for coherent GPUs |
US20180329855A1 (en) * | 2017-05-12 | 2018-11-15 | Intel Corporation | Alternate protocol negotiation in a high performance interconnect |
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 |
CN117348976A (zh) | 2017-07-10 | 2024-01-05 | 微软技术许可有限责任公司 | 用于流处理的数据处理单元 |
US10904367B2 (en) | 2017-09-29 | 2021-01-26 | Fungible, Inc. | Network access node virtual fabrics configured dynamically over an underlay network |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
US10841245B2 (en) | 2017-11-21 | 2020-11-17 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
US10540288B2 (en) | 2018-02-02 | 2020-01-21 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
US11625393B2 (en) | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
US12086446B2 (en) | 2019-10-21 | 2024-09-10 | Intel Corporation | Memory and storage pool interfaces |
US11750699B2 (en) * | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US11836133B2 (en) * | 2021-07-19 | 2023-12-05 | Samsung Electronics Co., Ltd. | In-memory database (IMDB) acceleration through near data processing |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675316B1 (en) * | 2000-07-12 | 2004-01-06 | International Business Machines Corporation | Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
CN102326159A (zh) * | 2009-02-19 | 2012-01-18 | 美光科技公司 | 存储器网络方法、设备及系统 |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
US20120137119A1 (en) * | 2010-10-15 | 2012-05-31 | Doerr Michael B | Disabling Communication in a Multiprocessor System |
CN102634407A (zh) * | 2012-04-09 | 2012-08-15 | 天津泰伦特化学有限公司 | 一种新型全合成水溶性镁合金切削液及其制备方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049851A (en) * | 1994-02-14 | 2000-04-11 | Hewlett-Packard Company | Method and apparatus for checking cache coherency in a computer architecture |
US6078337A (en) * | 1994-09-12 | 2000-06-20 | Canon Kabushiki Kaisha | Maintaining consistency of cache memory data by arbitrating use of a connection route by plural nodes |
US5940870A (en) * | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
US6360303B1 (en) | 1997-09-30 | 2002-03-19 | Compaq Computer Corporation | Partitioning memory shared by multiple processors of a distributed processing system |
US6457021B1 (en) * | 1998-08-18 | 2002-09-24 | Microsoft Corporation | In-memory database system |
US6631401B1 (en) * | 1998-12-21 | 2003-10-07 | Advanced Micro Devices, Inc. | Flexible probe/probe response routing for maintaining coherency |
JP3481485B2 (ja) * | 1999-01-28 | 2003-12-22 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム |
JP2001167077A (ja) * | 1999-12-09 | 2001-06-22 | Nec Kofu Ltd | ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体 |
US6836815B1 (en) | 2001-07-11 | 2004-12-28 | Pasternak Solutions Llc | Layered crossbar for interconnection of multiple processors and shared memories |
US7525904B1 (en) * | 2002-06-20 | 2009-04-28 | Cisco Technology, Inc. | Redundant packet routing and switching device and method |
US7617329B2 (en) * | 2002-12-30 | 2009-11-10 | Intel Corporation | Programmable protocol to support coherent and non-coherent transactions in a multinode system |
US20060047849A1 (en) * | 2004-06-30 | 2006-03-02 | Mukherjee Shubhendu S | Apparatus and method for packet coalescing within interconnection network routers |
US7788310B2 (en) | 2004-07-08 | 2010-08-31 | International Business Machines Corporation | Multi-dimensional transform for distributed memory network |
US7734741B2 (en) * | 2004-12-13 | 2010-06-08 | Intel Corporation | Method, system, and apparatus for dynamic reconfiguration of resources |
US9185160B2 (en) * | 2007-02-12 | 2015-11-10 | Oracle America, Inc. | Resource reservation protocol over unreliable packet transport |
US7941613B2 (en) * | 2007-05-31 | 2011-05-10 | Broadcom Corporation | Shared memory architecture |
US20090019258A1 (en) | 2007-07-09 | 2009-01-15 | Shi Justin Y | Fault tolerant self-optimizing multi-processor system and method thereof |
US8438578B2 (en) * | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
US8352488B2 (en) | 2009-06-02 | 2013-01-08 | Saffron Technology, Inc. | Methods, systems and computer program products for providing a distributed associative memory base |
US9264341B2 (en) * | 2009-07-24 | 2016-02-16 | Broadcom Corporation | Method and system for dynamic routing and/or switching in a network |
JP5256173B2 (ja) * | 2009-11-18 | 2013-08-07 | 株式会社日立製作所 | データベース管理方法、データベース管理システム及びデータベース管理プログラム |
US20110289485A1 (en) * | 2010-05-21 | 2011-11-24 | International Business Machines Corporation | Software Trace Collection and Analysis Utilizing Direct Interthread Communication On A Network On Chip |
WO2012058295A1 (en) * | 2010-10-26 | 2012-05-03 | Tsu-Chang Lee | Apparatus for network based modular electronic systems |
JP2012247901A (ja) * | 2011-05-26 | 2012-12-13 | Hitachi Ltd | データベースの管理方法、データベースの管理装置及びプログラム |
WO2013085501A1 (en) * | 2011-12-07 | 2013-06-13 | Intel Corporation | Multiple transaction data flow control unit for high-speed interconnect |
US8959290B2 (en) * | 2012-02-21 | 2015-02-17 | Lsi Corporation | Methods and apparatus for reusing snoop responses and data phase results in a cache controller |
CN105103121B (zh) * | 2013-03-28 | 2018-10-26 | 慧与发展有限责任合伙企业 | 刀片系统以及刀片系统的分区执行方法 |
US10474380B2 (en) * | 2013-04-01 | 2019-11-12 | Hewlett Packard Enterprise Development Lp | External memory controller |
WO2014178856A1 (en) | 2013-04-30 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Memory network |
EP2992435B1 (en) | 2013-04-30 | 2020-12-30 | Hewlett-Packard Enterprise Development LP | Memory node error correction |
-
2013
- 2013-04-30 CN CN201380076249.4A patent/CN105706068B/zh active Active
- 2013-04-30 WO PCT/US2013/038935 patent/WO2014178854A1/en active Application Filing
- 2013-04-30 EP EP13883783.6A patent/EP2992436A4/en not_active Ceased
- 2013-04-30 US US14/785,145 patent/US9952975B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675316B1 (en) * | 2000-07-12 | 2004-01-06 | International Business Machines Corporation | Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
CN102326159A (zh) * | 2009-02-19 | 2012-01-18 | 美光科技公司 | 存储器网络方法、设备及系统 |
US20120137119A1 (en) * | 2010-10-15 | 2012-05-31 | Doerr Michael B | Disabling Communication in a Multiprocessor System |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN102634407A (zh) * | 2012-04-09 | 2012-08-15 | 天津泰伦特化学有限公司 | 一种新型全合成水溶性镁合金切削液及其制备方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908929A (zh) * | 2018-09-18 | 2020-03-24 | 辉达公司 | 用于高带宽缩放的一致数据高速缓存 |
CN110580240A (zh) * | 2019-09-10 | 2019-12-17 | 北京海益同展信息科技有限公司 | 用于电子设备的外围设备管理方法、装置、电子设备和介质 |
US11841807B2 (en) | 2019-09-10 | 2023-12-12 | Jingdong Technology Information Technology Co., LTD | Method, apparatus for managing peripheral device for electronic device, electronic device and medium |
Also Published As
Publication number | Publication date |
---|---|
US9952975B2 (en) | 2018-04-24 |
WO2014178854A1 (en) | 2014-11-06 |
CN105706068B (zh) | 2019-08-23 |
EP2992436A4 (en) | 2018-04-04 |
US20160092362A1 (en) | 2016-03-31 |
EP2992436A1 (en) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105706068A (zh) | 路由存储器流量和i/o流量的存储器网络 | |
US11908546B2 (en) | In-memory lightweight memory coherence protocol | |
JP2021190123A (ja) | キャッシュコヒーレントインターコネクトを使用するシステム及び方法 | |
US7941613B2 (en) | Shared memory architecture | |
CN109196829B (zh) | 远程存储器操作 | |
CN106462524B (zh) | 使用混合存储器立方体链路的互连系统及方法 | |
JP2020021495A (ja) | ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法 | |
TWI519958B (zh) | 用於多節點系統中的記憶體分配的方法和裝置 | |
US8169850B2 (en) | Forming multiprocessor systems using dual processors | |
TWI547870B (zh) | 用於在多節點環境中對i/o 存取排序的方法和系統 | |
CN102209104A (zh) | 减小通信协议中的分组大小 | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
US12056528B2 (en) | System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources | |
US8930640B2 (en) | Multiprocessor computer system with reduced directory requirement | |
US20220137864A1 (en) | Memory expander, host device using memory expander, and operation method of sever system including memory expander | |
CN117827706A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
CN103124962B (zh) | 优化环协议和技术 | |
TW201447602A (zh) | 外部記憶體控制器 | |
US8051246B1 (en) | Method and apparatus for utilizing a semiconductor memory of a node as a disk cache | |
US20230195662A1 (en) | Coherent block read fulfillment | |
EP4453706A1 (en) | Coherent block read fulfillment | |
CN117667379A (zh) | 计算机系统、内存扩展设备及用于计算机系统的方法 | |
CN116795742A (zh) | 存储设备、信息存储方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170123 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, L.P. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |