CN110244909A - 用于包含存储器节点的分布式存储器系统的设备及方法 - Google Patents
用于包含存储器节点的分布式存储器系统的设备及方法 Download PDFInfo
- Publication number
- CN110244909A CN110244909A CN201910352632.7A CN201910352632A CN110244909A CN 110244909 A CN110244909 A CN 110244909A CN 201910352632 A CN201910352632 A CN 201910352632A CN 110244909 A CN110244909 A CN 110244909A
- Authority
- CN
- China
- Prior art keywords
- memory node
- memory
- node
- information
- instruction
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
Abstract
本发明揭示用于包含存储器节点的分布式存储器系统的设备及方法。实例设备包含处理器及耦合到所述处理器的存储器系统。所述存储器系统经配置以从所述处理器接收指令以存取由所述存储器系统存储的信息。所述存储器系统包含多个存储器节点,其中所述多个存储器节点中的每一存储器节点耦合到所述多个存储器节点中的至少一个其它存储器节点,且所述多个存储器节点中的每一存储器节点经配置以产生包含用于操作的指令的内部消息,所述内部消息将被提供到所述多个存储器节点中的另一存储器节点以执行所述操作。
Description
分案申请的相关信息
本案是分案申请。该分案的母案是申请日为2014年02月14日、申请号为201480015701.0、发明名称为“用于包含存储器节点的分布式存储器系统的设备及方法”的发明专利申请案。
交叉参考
本申请案主张2013年3月15日申请的第13/842,984号美国非临时申请案的优先权,所述申请案以全文引用的方式并入本文中以用于任何目的。
背景技术
计算平台的处理能力随着计算平台上的核心的数目及线程的数目的增加而增加。处理能力的此增加引起对系统存储器的需求的对应增加。举例来说,对系统存储器的读及写操作随着核心及线程数的增加而增加。存在存储器存取将形成计算平台的实质性能瓶颈的风险。举例来说,在传统的计算机架构中,CPU到存储器接口可对于(例如)大量存储器操作造成显著瓶颈。即,由于CPU控制到存储器系统、来自存储器系统及存储器系统内的每一事务以用于对由存储器系统存储的信息执行操作,所以会产生瓶颈。
发明内容
在本发明的实施例中,设备包含处理器及耦合到所述处理器的存储器系统。所述存储器系统经配置以从所述处理器接收指令以存取由所述存储器系统存储的信息。所述存储器系统包含多个存储器节点,其中所述多个存储器节点中的每一存储器节点耦合到所述多个存储器节点中的至少一个其它存储器节点,且所述多个存储器节点中的每一存储器节点经配置以产生包含用于操作的指令的内部消息。所述内部消息将被提供到所述多个存储器节点中的另一存储器节点以执行所述操作。
在本发明的另一实施例中,设备包含经配置以将信息存储于本地存储器中的第一存储器节点且进一步包含耦合到所述第一存储器节点且经配置以接收包含第一指令的第一消息的第二存储器节点。所述第二存储器节点进一步经配置以产生包含未包含于所述第一消息中的第二指令的第二消息且将所述第二消息提供到所述第一存储器节点。所述第一存储器节点进一步经配置以根据所述第二指令执行存储器操作。
在本发明的另一实施例中,设备包含通信地耦合在一起的多个存储器节点,其中所述多个存储器节点中的每一存储器节点包含总线、耦合到所述总线且经配置以存储信息的本地存储器、计算逻辑、通信接口及节点控制器。所述计算逻辑耦合到所述总线且经配置以对由所述本地存储器存储的信息执行计算操作。所述通信接口耦合到所述总线且经配置以提供与所述存储器节点的通信。所述节点控制器耦合到所述总线,且经配置以提供指令以控制所述本地存储器以执行存储器操作,且经配置以提供指令以控制所述计算逻辑以执行所述计算操作。所述节点控制器进一步经配置以产生包含指令的消息,所述消息被提供到所述通信接口以从所述存储器节点向外提供。
在本发明的另一实施例中,方法包含在存储器系统的第一存储器节点处接收外部消息,所述外部消息包含用以执行第一存储器操作的第一指令。响应于所述第一指令,在所述第一存储器节点处产生包含用于第二存储器操作的第二指令的内部消息。所述第二指令并不包含于所述外部消息中。将所述第二消息提供到所述存储器系统的第二存储器节点,且响应于所述第二消息在所述第二存储器节点处执行所述第二存储器操作。
在本发明的另一实施例中,方法包含在存储器系统的第一存储器节点处接收第一外部消息。所述第一外部消息包含用以搜索与搜索关键字相关的信息的第一指令。存取所述第一存储器节点的本地存储器以搜索与所述搜索关键字相关的信息。在包含第二指令的所述第一存储器节点处产生第一内部消息以搜索与搜索关键字相关的信息。将所述第一内部消息提供到所述存储器系统的第二存储器节点。响应于所述第一内部消息,存取所述第二存储器节点的本地存储器以搜索与所述搜索关键字相关的信息。在所述第一存储器节点处产生包含来自所述第一存储器节点的所述本地存储器的与所述搜索关键字相关的信息的第二内部消息,且将所述第二内部消息提供到所述存储器系统的第三存储器节点。在所述第二存储器节点处产生包含来自所述第二存储器节点的所述本地存储器的与所述搜索关键字相关的信息的第三内部消息,且将所述第三内部消息提供到所述存储器系统的所述第三存储器节点。
附图说明
图1为根据本发明的实施例的包含存储器系统的设备的框图。
图2为根据本发明的实施例的存储器系统的框图。
图3为根据本发明的实施例的存储器节点的框图。
图4为根据本发明的实施例的存储器系统的实例操作的框图。
图5为链接数据结构的图。
图6为根据本发明的实施例的存储器系统的实例操作的流程图。
具体实施方式
下文陈述特定细节以提供本发明的实施例的充分理解。然而,所属领域的技术人员将清楚,可无需这些特定细节而实践本发明的实施例。此外,通过实例方式来提供本文中描述的本发明的特定实施例且使用本发明的特定实施例不应将本发明的范围限制于这些特定实施例。在其它情况中,未详细展示众所周知的电路、控制信号、时序协议及软件操作以便避免不必要地模糊本发明。
图1说明根据本发明的实施例的包含处理系统100的设备。处理系统100包含通过本地存储器总线130耦合到存储器120的处理器110。如本文中使用,“处理器”可指代中央处理单元CPU、图形处理单元GPU、系统控制器、存储器控制器等等。处理器110可表示一或多个处理器。处理器110可使用存储器120以用于存储信息(举例来说,希望可由处理器110迅速存取的程序、指令及/或数据)。处理系统100进一步包含与处理器110通过存储器总线150通信的存储器系统140。可使用存储器系统140存储相对较大的信息量,举例来说,大量程序、指令及/或其它信息。
可由处理器110存取由存储器系统140存储的信息,处理器110提供由存储器系统140接收的消息。所述消息可包含信息(举例来说,用于存储器系统140的指令及/或数据)。所述消息可另外或替代地包含与所述源存储器节点、目的存储器以及待执行的操作相关的信息。存储器系统140可根据包含于由处理器110提供的所述消息中的所述指令实施操作。存储器系统140可响应于从处理器110接收到的消息将消息提供到处理器110。举例来说,存储器系统140可从处理器110接收包含用以从存储器系统140读取信息的指令的消息。响应于来自处理器110的消息,存储器系统140可执行读操作且将包含已读取到的信息的消息提供到处理器110。在另一实例中,存储器系统140可从处理器110接收包含用于将信息写入存储器系统140的指令且进一步包含待写入的信息的消息。响应于来自处理器110的消息,存储器系统140可执行写操作以将所述信息写到存储器。存储器系统140可将包含写指令的完成的应答的消息提供到处理器110。还可由存储器系统140以及处理器110接收及提供包含各种其它类型指令、数据及/或其它信息的消息。
在一些实施例中,存储器系统140可为(或包含)包含多个存储器节点的存储器系统。所述存储器节点可经配置以响应于从处理器110接收到消息而在所述存储器节点之间提供信息(举例来说,指令、数据等等)(举例来说)以实施操作。存储器系统140可表示具有通过通信网络通信地耦合在一起的多个存储器节点的分布式存储器系统。就此类存储器系统来说,用于更高级的存储器操作的指令可为可用的。可在极少涉及乃至不涉及处理器110的情况下管理存储器系统140的节点之间的此类操作。如描述的存储器系统140的好处可为减少存储器系统140与处理器110之间的通过存储器总线150的事务,所述事务可被视为处理系统100的可操作性的“瓶颈”。减少存储器系统140与处理器100之间的事务可导致处理系统100的改进性能,此是因为处理器100可投入更少时间管理存储器操作且处理器100会浪费更少时间来对由存储器系统140提供的信息执行计算操作。
图2说明根据本发明的实施例的存储器系统200。存储器系统200可包含于图1的处理系统100的存储器系统140中。存储器系统200包含多个存储器节点210(1)到210(N)。可将存储器节点210(1)到210(N)通信地耦合在一起使得存储器节点可与存储器系统200的至少一个其它存储器节点通信。举例来说,通信网络220可用于将存储器节点210(1)到210(N)通信地耦合在一起。在一些实施例中,存储器节点210(1)到210(N)可经配置以通过经由通信网络220与另一存储器节点210(1)到210(N)交换消息(举例来说包)而通信。可使用各种已知或后期开发的消息传送技术来实施在存储器节点210(1)到210(N)之间的消息交换。举例来说,存储器节点210(1)能够将包提供到存储器系统200的其它存储器节点210(2)到210(N)中的一者、数个者或任何者。以此方式,可在存储器系统200的存储器节点210之间有效地提供及接收包。尽管参考包进行本文中描述的节点之间的通信,但应了解,可在不背离本发明的范围的情况下使用其它形式的消息。
可通过有线及/或无线通信媒体通信地耦合存储器节点210。存储器节点210之间的通信可利用已知通信协议,举例来说,传输控制协议/互联网协议(TCP/IP)。当利用无线通信时,存储器节点210包含适合于存储器节点210之间的通信的无线通信电路。同样地,当利用有线通信时,存储器节点210包含适合于存储器节点210之间的通信的有线通信电路。
可从存储器系统200的外部(举例来说,从处理器110)接收包含指令及/或数据的包,如参考图1所描述。将所述包提供到基于指令及/或数据而执行操作的存储器节点210(1)到210(N)中的一或多者。举例来说,操作可包含读操作、写操作、关键字搜索、增加及/或删除数据结构的信息,更新数据结构中的字段等等。
如下文将更详细描述,存储器节点210可包含用于存储信息(举例来说,数据、指令等等)的本地存储器,且可包含经配置以响应于其接收的包而执行计算操作的逻辑及/或处理能力。计算操作的实例可包含布林(Boolean)逻辑运算、算术运算、比较运算及其它计算操作。存储器节点210可进一步包含经配置以控制本地存储器的操作且还产生可提供到其它存储器节点210或从存储器系统200向外提供到(举例来说)处理器110的包的逻辑及/或存储器控制能力。由存储器节点210产生的所述包可包含指令及/或数据,其可引起接收存储器节点210基于所述指令及/或数据而执行操作。所述包可进一步包含用于存储器节点的源信息及目的信息。
如下文将更详细描述,当存储器节点接收包时,所述存储器节点可对由所述存储器节点的本地存储器存储的信息执行本地操作(举例来说,存储器操作、计算操作等等)。基于本地操作的结果,操作可被完成,或在一些情况中未完成。当操作需要所述存储器节点外的额外信息及/或处理时,所述存储器节点可依赖存储器系统的另一存储器节点以获得额外信息及/或处理。举例来说,所述存储器节点可确定下一操作或后续若干操作的目的存储器节点,确定下一操作或后续若干操作的源,且产生可包含各种信息(例如,与源存储器节点、目的存储器、操作及/或数据相关的信息)的一或多个包。将所述包从所述存储器节点提供到另一存储器节点或其它若干存储器节点。
通过在存储器节点之间交换包来进行通信,因为可基于包含于由存储器系统200内的存储器节点产生的包中的指令及/或数据而执行存储器节点210(1)到210(N)的操作(如上文讨论),所以可减少存储器系统200与处理器110之间的事务。如本文中描述,可由存储器系统接收或由存储器系统提供“外部”包(其为“外部”消息的实例),且可在存储器节点之间提供“内部”包(其为“内部消息”的实例)。内部包可与外部包相同或类似。举例来说,内部包及外部包的格式可为类似的。在一些实施例中,内部包可不同于外部包,举例来说,内部包可包含在存储器节点之间通信的额外信息,具有不同于外部包的格式等等。
图3说明根据本发明的实施例的存储器节点300。存储器节点300包含耦合到总线320的本地存储器310。总线320经配置以提供包含于存储器节点300中的块之间的通信。本地存储器310可包含不同类型的存储器,举例来说,本地存储器310可包含易失性存储器310(1)及非易失性存储器310(2)。本地存储器310可经配置以存储及提供与存储器节点300相关联的信息。
耦合到总线320的节点控制器330可经配置以控制存储器节点300的操作。举例来说,节点控制器330可通过总线320提供指令以控制本地存储器310执行各种存储器操作,例如从存储器读取信息或将信息存储于存储器中。节点控制器330可控制可经配置以对信息(例如存储于本地存储器310中及/或提供到存储器节点300的信息)执行计算的计算逻辑。节点控制器330可控制可经配置以提供与存储器节点300的通信(例如与另一存储器节点及/或处理器(举例来说处理器110)的通信)的通信接口340。通信接口340进一步耦合到总线320,其还允许与本地存储器310的通信。存储器节点300可经配置以通过包含用于此类通信的电路的有线及/或无线媒体而通信。举例来说,通信接口340可包含经配置以与其它存储器节点有线通信的电路,且通信接口可替代地或另外包含经配置以与其它存储器节点无线通信的电路。
如先前所论述,提供到存储器节点的包可包含例如指令及数据的信息。响应于接收包,节点控制器330可控制本地存储器310及/或计算逻辑350以执行存储器操作及计算操作。举例来说,由存储器节点300接收的包可包含用以执行写操作的指令,且进一步包含根据所述写操作而存储于本地存储器310中的信息。节点控制器330可产生控制信号以使本地存储器310存储包含于所述包的所述信息。在其它实例中,由存储器节点300接收到的包可包含用以对由本地存储器310存储的信息执行计算操作的指令。节点控制器330可产生控制信号以使本地存储器310及计算逻辑350存取存储于本地存储器310中的信息且执行计算操作。计算操作的实例可包含布林逻辑运算、算术运算、比较运算以及其它计算操作。
如下文将进一步描述,节点控制器330可进一步经配置以产生可被提供到其它存储器节点的包以及可提供到包含存储器节点300的存储器系统外部的包。节点控制器330可确定所述包的目的端(举例来说,一或多个接收存储器节点)。可基于(举例来说)信息、存储器操作或两者的组合而确定所述目的端。由节点控制器330产生的包可包含用于使其它存储器节点执行操作的指令。所述包可替代地或另外包含用于其它存储器节点的信息。因此,存储器节点可本地地确定在所述存储器系统内部产生的包的目的节点,且所产生的包可基于存储器节点处的本地处理的结果。
在存储器系统(例如,存储器系统200)中包含存储器节点300可减小与存储器系统的存储器事务的数目。由处理器发出的指令实际上去往信息(存储于存储器系统中),而不是使信息到处理器,其会将显著的操作负担强加到处理器同时使存储器系统带宽无法利用。由于具有可经配置以控制存储器节点间的内部操作的存储器系统且处理器介入较少,可改进处理系统的操作效率。
图4说明根据本发明的实施例的存储器系统的实例操作的图。图4的实例与根据本发明的实施例的存储器系统(举例来说,图2的存储器系统200)对包含存储器请求的包的接收有关。可从(例如)处理器(举例来说,图1的处理器110)接收所述包,且所述包将被称为“外部”包。在图4的实例中,所述存储器请求用于使接收存储器系统找到及提供与所述外部包中所识别的“关键字”相关的信息。
由存储器节点210(1)接收外部包以请求与关键字相关的信息,如由图4中的箭头402说明。存储器节点210(1)的节点控制器可响应于外部包而执行操作,举例来说,用以存取存储于本地存储器中的信息且确定与关键字相关的信息是否存在于存储器节点210(1)的本地存储器内的操作。举例来说,存储器节点210(1)的节点控制器可将存储器命令提供到存储器节点210(1)的本地存储器以从本地存储器提供所存储的信息以由计算逻辑比较而确定满足请求的任何信息是否存储于存储器节点210(1)的本地存储器中,即,任何所存储的信息是否匹配关键字。
除由存储器节点210(1)的节点控制器及计算逻辑执行的操作之外,存储器节点210(1)(举例来说,“发送”存储器节点)也确定包(举例来说,“内部”包)应被提供到存储器系统200的其它存储器节点(举例来说,“接收”存储器节点)。存储器节点210(1)的节点控制器确定内部包的接收节点,且如图4中展示,存储器节点210(1)将内部包提供到存储器节点210(3)、210(5)及210(10)(如由图4中的箭头410、412及414说明)以继续对信息的请求。
由存储器节点210(1)提供的内部包可包含用于请求信息的指令以(举例来说)继续搜索可由其它存储器节点的本地存储器存储的匹配关键字的信息。内部包可替代地或另外包含信息,举例来说在由发送存储器节点执行的操作期间被识别为匹配关键字的信息。由存储器节点210(1)提供的内部包可包含来自存储器节点210(1)接收的外部包(举例来说,由箭头402表示)的一些或全部信息(举例来说,指令、数据等等)。由存储器节点210(1)提供的内部包可包含未包含于存储器节点210(1)接收的外部包中的信息。举例来说,内部包可包含未包含于外部包中的由存储器节点210(1)的节点控制器及计算逻辑产生的信息。所述信息可辅助接收存储器节点执行操作以(举例来说)满足对与外部包相关联的信息的请求。
从发送存储器节点接收内部包、响应于所述内部包而执行操作、及/或由接收存储器节点将内部包提供到另一存储器节点(举例来说,“接收”存储器节点变为新“发送”存储器节点)可在整个存储器系统200中继续。举例来说,响应于存储器节点210(1)将内部包提供到存储器节点210(3)(举例来说,箭头410),存储器节点210(3)的节点控制器及计算逻辑可执行例如搜索存储器节点210(3)的本地存储器以获得满足对存储器系统200的初始请求的信息的操作。存储器节点210(3)的节点控制器可另外产生可包含信息(举例来说,与存储器系统200的初始请求相关的指令及/或满足初始请求的存储器节点210(3)的本地存储器中所识别的信息)的额外内部包。由存储器节点210(3)将内部包提供到存储器节点210(4)及210(6)(举例来说,分别由箭头416及418表示)。
如图4中进一步说明,从存储器节点210(3)到存储器节点210(4)的内部包导致由存储器节点210(4)产生提供到存储器节点210(7)(如由箭头424表示)的另一内部包,且作为响应,存储器节点210(7)产生内部包且将所述内部包提供到存储器节点210(6)(如由箭头426表示)。同样地,从存储器节点210(1)接收内部包(如由箭头414表示)的存储器节点210(10)产生及提供提供到存储器节点210(6)(如由箭头422表示)的内部包。从存储器节点210(1)接收内部包(如由箭头412表示)的存储器节点210(5)产生及提供提供到存储器节点210(6)(如由箭头420表示)的内部包。
如先前所论述,从发送存储器节点接收内部包可引起接收存储器节点执行与包含于所接收的所述内部包中的指令及/或数据相关的操作,举例来说,搜索所述接收存储器节点的本地存储器中的信息。另外,所述接收存储器节点可产生待提供到另一存储器节点的包含指令及/或数据的内部包。由所述接收存储器节点(其接着变为发送存储器节点)产生的所述内部包可包含用于新接收存储器节点的指令及/或数据。
存储器节点210(6)从存储器节点210(3)、210(5)、210(7)及210(10)接收内部包,如由图4中的箭头418、420、426及422分别说明。来自所述存储器节点的所述内部包可包含由所述相应存储器节点的节点控制器及计算逻辑识别的信息(其满足包含于存储器节点从发送存储器节点接收的相应内部包中的存储器请求)。举例来说,来自所述存储器节点(举例来说,210(3)、210(5)、210(7)及210(10))的所述内部包可包含用于使存储器节点执行(举例来说)与对信息的初始请求相关的操作的指令,所述信息与由存储器系统200(举例来说,在图4中由箭头402表示)接收的外部包相关联。在图4的实例中,存储器节点210(6)可从其它存储器节点(举例来说,发送存储器节点)聚集由相应存储器节点识别为满足对信息的初始请求的信息,例如由存储器节点识别为匹配关键字的数据。
在图4的实例中,基于从发送存储器节点接收的内部包,存储器节点210(6)的节点控制器产生包含从其它存储器节点提供到其的信息的内部包。将所述内部包提供到存储器系统200外部(如由箭头428表示),举例来说提供到处理器,存储器系统200从所述处理器接收外部包(由箭头402)表示。由存储器节点210(6)提供的所述内部包可包含共同满足对信息的请求的来自存储器系统200的信息,即,与由210(1)最初接收的外部包的关键字相关的信息。
如由图4的实例说明,存储器系统200可响应于由存储器系统200接收的外部包而内部地管理操作。举例来说,存储器系统200的存储器节点210(1)到210(N)可将由发送存储器节点的节点控制器产生的内部包提供到存储器系统200的其它存储器节点。所述内部包可包含用于使接收存储器节点执行操作以满足与由存储器系统200接收的外部包相关联的操作的信息(例如指令及/或资料)。在由存储器系统200完成与所述外部包相关联的操作时,可由存储器系统200提供外部包。
图5说明根据本发明的实施例的可被搜索的链接列表数据集的数据结构500。数据结构500表示链接在一起以形成包含与关键字“A”、“B”、“C”、“D”、“E”、“F”及“G”相关联的信息的更大数据集。特定来说,数据结构500包含由指针链接在一起以形成更大数据集的数据子集510到570。数据子集510到570中的每一者包含与相应关键字相关联的信息。数据结构500的“头部”与数据子集510相关联,数据子集510定位于地址0x1000处且包含与关键字“A”相关联的信息。数据子集510中的指针512指向数据子集520(其定位于地址0x1080处且包含与关键字“B”相关联的信息),借此使数据子集510及520链接。同样地,由指针522将定位于地址0x2000处且包含与关键字“C”相关联的信息的子集530链接到数据子集520。分别由从一个数据子集指向另一数据子集的指针532、542、552及562将位于地址0x0800、0x3000、0x4080及0x1100且包含与关键字“D”、“E”、“F”及“G”相关联的数据子集540、550、560及570全部类似地链接到数据子集530及彼此。
在常规系统中,为搜索数据结构500以找到匹配搜索关键字“E”的信息,CPU(举例来说)将当前搜索指针设定到与地址0x1000处的数据子集510相关联的数据结构500的头部。所述CPU发出存储器读指令以从由所述指针识别的当前位置读取信息,且将从当前位置读取的信息与搜索关键字E作比较。如果从当前位置读取的信息匹配搜索关键字“E”,则完成及终止搜索。然而,如果从当前位置读取的信息不匹配搜索关键字“E”,那么所述CPU使搜索指针前进到下一位置,所述下一位置接着变为当前位置。
如上文,CPU发出存储器读指令以从由指针识别的(新)当前位置读取信息,且将从当前位置读取的信息作比较。重复指向新当前位置、从所述当前位置读取信息及将所述信息与搜索关键字“E”作比较的步骤直到找到所述信息,或已搜索整个数据结构500但未找到信息,此时终止搜索。在图5的实例数据结构500中,数据子集550包含匹配搜索关键字“E”的信息。因此,CPU将读取由指针512、522及532链接在一起的数据子集510、520、530及540处的信息直到从数据子集550(其由指针542链接)读取信息且确定信息匹配搜索关键字“E”,此时CPU终止搜索。
在常规系统的实例中,CPU担负发出存储器读指令、将从当前位置读取的信息与搜索关键字作比较及在完成之后终止搜索的重担。
图6说明根据本发明的实施例的用于搜索存储器系统的数据结构500的流程图。可基于CPU将单一指令发出到存储器系统而搜索数据结构500中的信息。在所述存储器系统(特定来说,由所述存储器系统的存储器节点)内部地管理从当前位置读取信息及比较所述信息与搜索关键字。为了本实例的目的,由根据本发明的实施例的包含多个存储器节点的存储器系统的相应存储器节点(举例来说,存储器节点210(图2)及/或存储器节点300(图3))存储数据结构500的数据子集中的每一者。
在步骤610处,存储器系统从CPU接收用于搜索数据结构500的指令以找到匹配搜索关键字(举例来说,搜索关键字“E”)的信息,所述搜索开始于数据结构500的头部,特定来说,地址0x1000处的数据子集510。在步骤614处,存储器节点(例如包含数据子集510的存储器节点)执行由指针识别的当前位置的读操作。在步骤620处,存储器节点将从所述当前位置读取的信息与搜索关键字作比较。在步骤624处,如果来自所述当前位置的信息匹配搜索关键字,那么在步骤630处存储器节点产生包含匹配搜索关键字的信息且进一步包含指示信息已找到的信息的外部包。在步骤634处,由存储器节点将所述外部包提供到CPU。
在步骤624处,如果来自当前位置的信息不匹配搜索关键字(举例来说,搜索关键字“E”),那么在步骤640处确定当前位置是否为被搜索的数据结构的终点(举例来说,最后位置)。如果当前位置为最后位置,那么在步骤644处存储器节点产生包含指示未找到匹配搜索关键字的信息的信息的外部包。在步骤634处,由存储器节点将外部包提供到CPU。如果当前位置并非最后位置,那么在步骤650处存储器节点使搜索指针前进到下一位置以将所述下一位置变为当前位置。在步骤654处,由存储器节点确定当前位置是否处于相同存储器节点中。如果当前位置处于相同存储器节点中,那么存储器节点开始以下过程:从当前位置读取信息(步骤614);将所述信息与搜索关键字作比较(步骤620);以及确定所述信息是否匹配搜索关键字(步骤624)。
如果在步骤654处由存储器节点确定当前位置不处于相同存储器节点中,那么在步骤660处存储器节点产生包含用以搜索匹配搜索关键字(举例来说,搜索关键字“E”)的信息的指令的内部包。在步骤664处,将所述内部包提供到包含当前位置的存储器节点。包含当前位置的存储器节点接收所述内部包且开始以下过程:从当前位置读信息(步骤614);将所述信息与搜索关键字作比较(步骤620);以及确定所述信息是否匹配搜索关键字(步骤624)。
与使用常规系统(其中,所述CPU负担发出所有存储器读指令、将来自当前位置的信息与搜索关键字作比较及在完成之后终止搜索的重担)搜索数据结构500相比,由存储器系统内的存储器节点执行存储器读操作及比较。在从CPU发出初始搜索指令的时间到由存储器系统将外部包提供到CPU的时间内,CPU可自由执行其它操作。
存储器系统可包含多个存储器节点,其中所述存储器节点包含用于存储信息的本地存储器。所述存储器节点可进一步包含经配置以对信息执行操作的计算逻辑,还包含经配置以控制存储器节点内的操作且产生可被提供到其它存储器节点的内部包的节点控制器。所述内部包可包含用于接收存储器节点的信息,举例来说用于由接收存储器节点执行的操作的指令及/或用于所述接收存储器节点的数据。可利用本发明的实施例以减少CPU与存储器系统(举例来说,图1的处理器110与存储器系统140)之间的存储器事务的数目且另外减少所述CPU对由所述存储器系统存储的信息的管理操作的负担。
应从前述内容了解,尽管为了描述目的已在本文中描述本发明的特定实施例,但可在不背离本发明的精神及范围的情况下做出各种修改。因此,本发明除受限于所附权利要求书之外不受其它限制。
Claims (20)
1.一种方法,其包括:
在存储器系统的第一存储器节点处接收外部消息,所述外部消息包含用以执行第一存储器操作的第一指令;
响应于所述第一指令,在所述第一存储器节点处产生包含用于第二存储器操作的第二指令的第一内部消息,所述第二指令并不包含于所述外部消息中;
将所述第二指令提供到所述存储器系统的第二存储器节点;以及
响应于所述第二消息在所述第二存储器节点处执行所述第二存储器操作。
2.根据权利要求1所述的方法,其进一步包括在所述第一存储器节点处执行所述第一存储器操作。
3.根据权利要求2所述的方法,其中所述第一存储器节点处的所述第一存储器操作包括读操作。
4.根据权利要求1所述的方法,其中执行所述第二存储器操作包括存取所述第二存储器节点的本地存储器。
5.根据权利要求4所述的方法,其进一步包括响应于所述第二指令在所述第二存储器节点处对从所述第二存储器节点的所述本地存储器读取的信息执行计算操作。
6.根据权利要求1所述的方法,其中所述第一消息及所述第二消息的格式不同于所述外部消息的格式。
7.根据权利要求1所述的方法,其进一步包括:
在所述第二存储器节点处产生包含与所述第二存储器操作相关的信息的所述第一内部消息。
8.根据权利要求1所述的方法,其中执行所述第二存储器操作包括执行读操作、写操作、关键字搜索、数据结构信息的添加及删除、更新数据结构中的字段或其组合。
9.根据权利要求1所述的方法,其中所述第一存储器操作包括搜索与搜索关键字相关的信息。
10.根据权利要求9所述的方法,其进一步包括存取所述第一存储器节点的本地存储器以搜索与所述搜索关键字相关的信息。
11.根据权利要求10所述的方法,其中在所述第一存储器节点处产生包含用以搜索与所述搜索关键字相关的信息的所述第二指令的所述第一内部消息。
12.根据权利要求11所述的方法,其进一步包括响应于所述第一内部消息,存取所述第二存储器节点的本地存储器以搜索与所述搜索关键字相关的信息;
在所述第一存储器节点处产生包含来自所述第一存储器节点的所述本地存储器的与所述搜索关键字相关的信息的第二内部消息;
将所述第二内部消息提供到所述存储器系统的第三存储器节点;
在所述第二存储器节点处产生包含来自所述第二存储器节点的所述本地存储器的与所述搜索关键字相关的信息的第三内部消息;以及
将所述第三内部消息提供到所述存储器系统的所述第三存储器节点。
13.根据权利要求12所述的方法,其进一步包括在所述第三存储器节点处产生包含来自所述第一存储器节点及第二存储器节点的所述信息的第二外部消息;以及
将所述第二外部消息提供到所述存储器系统外部。
14.根据权利要求12所述的方法,其中存储于所述第一存储器节点的所述本地存储器中的信息及存储于所述第二存储器节点的所述本地存储器中的信息为链接列表数据集的相应数据子集。
15.根据权利要求14所述的方法,其中在所述第一存储器节点处产生所述第一内部消息是响应于完成对所述第一存储器节点的所述本地存储器中的所述数据子集进行的对于与所述搜索关键字相关的信息的搜索。
16.根据权利要求12所述的方法,其进一步包括在所述第一存储器节点处将从所述第一存储器节点的所述本地存储器读取的信息与所述搜索关键字作比较。
17.根据权利要求12所述的方法,其中存取所述第一存储器节点的所述本地存储器包括读取由所述第一存储器节点的所述本地存储器存储的信息。
18.一种设备,其包括:
处理器;
存储器系统,其经配置以从所述处理器接收指令以存取由所述存储器系统存储的信息,所述存储器系统包含多个存储器节点,其中所述多个存储器节点中的每一存储器节点通过通信网络耦合到所述多个存储器节点中的至少一个其它存储器节点且所述多个存储器节点中的每一存储器节点经配置以产生包含用于操作的指令的内部消息,所述用于操作的指令不同于从所述处理器接收的所述指令,所述内部消息将随后被提供到所述多个存储器节点中的另一存储器节点以执行所述操作,其中所述其它存储器节点随后产生另一内部消息以转发到所述多个存储器节点中的后续一个。
19.根据权利要求18所述的设备,其中响应于所接收的指令所述多个存储器节点中的每一存储器节点经配置以聚集来自所述多个存储器节点中的其它存储器节点的所述信息以提供给所述处理器。
20.根据权利要求18所述的设备,其中所述存储器系统包括:
所述多个存储器节点中的第一存储器节点,其经配置以将信息存储于本地存储器中;以及
所述多个存储器节点中的第二存储器节点,其耦合到所述多个存储器节点中的所述第一存储器节点且经配置以接收包含第一指令的第一消息,所述多个存储器节点中的所述第二存储器节点进一步经配置以产生包含并不包含于所述第一消息中的第二指令的第二消息且将所述第二消息提供给所述多个存储器节点中的所述第一存储器节点,所述多个存储器节点中的所述第一存储器节点进一步经配置以根据所述第二指令执行存储器操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/842,984 | 2013-03-15 | ||
US13/842,984 US10089043B2 (en) | 2013-03-15 | 2013-03-15 | Apparatus and methods for a distributed memory system including memory nodes |
CN201480015701.0A CN105051708B (zh) | 2013-03-15 | 2014-02-14 | 用于包含存储器节点的分布式存储器系统的设备及方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480015701.0A Division CN105051708B (zh) | 2013-03-15 | 2014-02-14 | 用于包含存储器节点的分布式存储器系统的设备及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110244909A true CN110244909A (zh) | 2019-09-17 |
Family
ID=51533914
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910352632.7A Pending CN110244909A (zh) | 2013-03-15 | 2014-02-14 | 用于包含存储器节点的分布式存储器系统的设备及方法 |
CN201480015701.0A Active CN105051708B (zh) | 2013-03-15 | 2014-02-14 | 用于包含存储器节点的分布式存储器系统的设备及方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480015701.0A Active CN105051708B (zh) | 2013-03-15 | 2014-02-14 | 用于包含存储器节点的分布式存储器系统的设备及方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10089043B2 (zh) |
EP (1) | EP2972911B1 (zh) |
JP (1) | JP6333353B2 (zh) |
KR (1) | KR20150129808A (zh) |
CN (2) | CN110244909A (zh) |
TW (1) | TWI624787B (zh) |
WO (1) | WO2014149278A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US10089043B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
CN104765587B (zh) * | 2014-01-08 | 2018-12-14 | 雅特生嵌入式计算有限公司 | 用于使处理器同步到相同的计算点的系统和方法 |
CN114625084B (zh) * | 2022-03-02 | 2024-01-19 | 杭州康吉森自动化科技有限公司 | 基于控制系统的节点信息的获取方法及装置 |
CN114647380B (zh) * | 2022-03-23 | 2023-11-07 | 苏州科美信息技术有限公司 | 一种数据存算一体固态硬盘模组及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108203A1 (en) * | 2003-11-13 | 2005-05-19 | Chunqiang Tang | Sample-directed searching in a peer-to-peer system |
US20110067039A1 (en) * | 2009-09-11 | 2011-03-17 | Sean Eilert | Autonomous memory architecture |
US20120117354A1 (en) * | 2010-11-10 | 2012-05-10 | Kabushiki Kaisha Toshiba | Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5134711A (en) | 1988-05-13 | 1992-07-28 | At&T Bell Laboratories | Computer with intelligent memory system |
CA2145106C (en) | 1994-04-22 | 1999-08-24 | Abhaya Asthana | Intelligent memory-based input/output system |
US6799217B2 (en) | 2001-06-04 | 2004-09-28 | Fujitsu Limited | Shared memory multiprocessor expansion port for multi-node systems |
US7581080B2 (en) | 2003-04-23 | 2009-08-25 | Micron Technology, Inc. | Method for manipulating data in a group of processing elements according to locally maintained counts |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
DE102006009027A1 (de) | 2006-02-27 | 2007-08-30 | Infineon Technologies Ag | Speicheranordnung |
US7987205B1 (en) | 2006-11-27 | 2011-07-26 | Netlogic Microsystems, Inc. | Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations |
US7623365B2 (en) | 2007-08-29 | 2009-11-24 | Micron Technology, Inc. | Memory device interface methods, apparatus, and systems |
US7913033B2 (en) | 2007-10-09 | 2011-03-22 | Micron Technology, Inc. | Non-volatile memory device having assignable network identification |
US20100161914A1 (en) | 2008-12-23 | 2010-06-24 | Eilert Sean S | Autonomous memory subsystems in computing platforms |
US8549092B2 (en) | 2009-02-19 | 2013-10-01 | Micron Technology, Inc. | Memory network methods, apparatus, and systems |
US20100241783A1 (en) | 2009-03-23 | 2010-09-23 | Honeywell International Inc. | Memory node for use within a data storage system having a plurality of interconnected memory nodes |
FR2948206B1 (fr) | 2009-07-15 | 2011-08-05 | Commissariat Energie Atomique | Dispositif et procede pour l'execution distribuee de traitements de donnees numeriques |
US9015440B2 (en) | 2009-09-11 | 2015-04-21 | Micron Technology, Inc. | Autonomous memory subsystem architecture |
US8407516B2 (en) | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8930618B2 (en) | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
JP2013045378A (ja) * | 2011-08-26 | 2013-03-04 | Fujitsu Ltd | ストレージ制御方法、情報処理装置およびプログラム |
US10089043B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
-
2013
- 2013-03-15 US US13/842,984 patent/US10089043B2/en active Active
-
2014
- 2014-02-14 WO PCT/US2014/016585 patent/WO2014149278A1/en active Application Filing
- 2014-02-14 KR KR1020157028640A patent/KR20150129808A/ko active Search and Examination
- 2014-02-14 JP JP2016500270A patent/JP6333353B2/ja active Active
- 2014-02-14 EP EP14767990.6A patent/EP2972911B1/en active Active
- 2014-02-14 CN CN201910352632.7A patent/CN110244909A/zh active Pending
- 2014-02-14 CN CN201480015701.0A patent/CN105051708B/zh active Active
- 2014-02-26 TW TW103106541A patent/TWI624787B/zh active
-
2018
- 2018-09-14 US US16/132,099 patent/US10761781B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108203A1 (en) * | 2003-11-13 | 2005-05-19 | Chunqiang Tang | Sample-directed searching in a peer-to-peer system |
US20110067039A1 (en) * | 2009-09-11 | 2011-03-17 | Sean Eilert | Autonomous memory architecture |
US20120117354A1 (en) * | 2010-11-10 | 2012-05-10 | Kabushiki Kaisha Toshiba | Storage device in which forwarding-function-equipped memory nodes are mutually connected and data processing method |
Also Published As
Publication number | Publication date |
---|---|
CN105051708B (zh) | 2019-05-28 |
US10089043B2 (en) | 2018-10-02 |
CN105051708A (zh) | 2015-11-11 |
TWI624787B (zh) | 2018-05-21 |
US20140281278A1 (en) | 2014-09-18 |
EP2972911B1 (en) | 2020-12-23 |
JP2016515256A (ja) | 2016-05-26 |
EP2972911A1 (en) | 2016-01-20 |
JP6333353B2 (ja) | 2018-05-30 |
US20190042100A1 (en) | 2019-02-07 |
KR20150129808A (ko) | 2015-11-20 |
TW201447744A (zh) | 2014-12-16 |
US10761781B2 (en) | 2020-09-01 |
WO2014149278A1 (en) | 2014-09-25 |
EP2972911A4 (en) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105051708B (zh) | 用于包含存储器节点的分布式存储器系统的设备及方法 | |
CN109085997A (zh) | 用于非易失性存储器的存储器高效持续键值储存 | |
CN111400307B (zh) | 支持远程并发访问的持久哈希表访问系统 | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
CN104991868B (zh) | 一种多核处理器系统和缓存一致性处理方法 | |
CN104461716B (zh) | 一种多核异构系统的访问方法及多核异构系统 | |
CN102195874A (zh) | 数据分组的预提取 | |
CN105874758B (zh) | 内存访问方法、交换机及多处理器系统 | |
CN102821138A (zh) | 一种适用于云存储系统的元数据分布式存储方法 | |
JP2007073052A (ja) | 集積回路から外部メモリへのアクセス | |
CN108829613A (zh) | 数据存储方法及存储设备 | |
EP3995961B1 (en) | Storage system and operating method thereof | |
WO2015176664A1 (zh) | 一种数据操作的方法、设备和系统 | |
WO2018032510A1 (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
WO2023179433A1 (zh) | 流表存储及报文转发方法、装置、计算设备及介质 | |
WO2011103828A2 (zh) | 系统缓存中数据替换方法及多核通信处理器 | |
WO2014029084A1 (zh) | 数据存储方法、查找方法及装置 | |
CN107368435A (zh) | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 | |
US20160034191A1 (en) | Grid oriented distributed parallel computing platform | |
CN106250322B (zh) | 一种写数据的方法和装置 | |
CN105068760B (zh) | 数据存储方法、数据存储装置和存储设备 | |
CN108664211A (zh) | 一种实现数据读写的方法及装置 | |
CN107038021B (zh) | 用于访问随机存取存储器ram的方法、装置和系统 | |
CN107579916A (zh) | 转发表项访问方法及装置 | |
CN106776369A (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 |