JP2016515256A - メモリノードを含む分散型メモリシステム用装置および方法 - Google Patents

メモリノードを含む分散型メモリシステム用装置および方法 Download PDF

Info

Publication number
JP2016515256A
JP2016515256A JP2016500270A JP2016500270A JP2016515256A JP 2016515256 A JP2016515256 A JP 2016515256A JP 2016500270 A JP2016500270 A JP 2016500270A JP 2016500270 A JP2016500270 A JP 2016500270A JP 2016515256 A JP2016515256 A JP 2016515256A
Authority
JP
Japan
Prior art keywords
memory
node
memory node
message
information
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
Application number
JP2016500270A
Other languages
English (en)
Other versions
JP6333353B2 (ja
Inventor
エム. クレウィッツ,ケネス
エム. クレウィッツ,ケネス
エス. エイラート,ショーン
エス. エイラート,ショーン
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2016515256A publication Critical patent/JP2016515256A/ja
Application granted granted Critical
Publication of JP6333353B2 publication Critical patent/JP6333353B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration 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

メモリノードを含む分散型メモリシステム用の装置および方法が開示される。例示的な装置は、プロセッサと、プロセッサに結合されたメモリシステムとを含む。メモリシステムは、メモリシステムによって格納された情報にアクセスするための命令をプロセッサから受信するように構成される。メモリシステムは、複数のメモリノードを含み、複数のメモリノードのうちの各メモリノードは、複数のメモリノードのうちの少なくとも一つの他のメモリノードに結合され、複数のメモリノードのうちの各メモリノードは、動作に対する命令を含む内部メッセージを作成するように構成され、内部メッセージは、動作を実施するために、複数のメモリノードのうちの別のメモリノードに提供される。【選択図】図2

Description

[相互参照]
本出願は、2013年3月15日に出願された米国非仮特許出願整理番号13/842,984に対する優先権を享受する権利を主張し、米国非仮特許出願整理番号13/842,984は、参照によって、その全体において、あらゆる目的で本明細書に組み入れられる。
コンピューティングプラットフォームのコア数およびスレッド数が増加するにつれて、コンピューティングプラットフォームの処理能力は向上している。この処理能力の向上は、システムメモリにおいて対応する需要の増大をもたらす。例えば、コアおよびスレッドの数が増加するにつれて、システムメモリに対する読み出しおよび書き込み動作が増加する。メモリアクセスがコンピューティングプラットフォームに対する実質的な性能ボトルネックとなるリスクが存在する。例えば、従来のコンピュータアーキテクチャにおいては、CPU−メモリインターフェイスは、バルクメモリ動作などに対する顕著なボトルネックを引き起こすことがある。即ち、メモリシステムによって格納される情報に対する動作を実施するためのメモリシステムに対する、メモリシステムからの、およびメモリシステム内の全てのトランザクションをCPUが制御する結果としてボトルネックが生じる可能性がある。
本発明の一実施形態において、装置は、プロセッサと、プロセッサに結合されたメモリシステムとを含む。メモリシステムは、メモリシステムによって格納される情報にアクセスするために、プロセッサからの命令を受信するように構成される。メモリシステムは、複数のメモリノードを含み、複数のメモリノードのうちの各メモリノードは、複数のメモリノードのうちの少なくとも一つの他のメモリノードに結合され、複数のメモリノードのうちの各メモリノードは、動作のための命令を含む内部メッセージを作成するように構成される。内部メッセージは、動作を実施するために、複数のメモリノードのうちの別のメモリノードに提供される。
本発明の別の実施形態において、装置は、ローカルメモリに情報を格納するように構成された第一のメモリノードを含み、第一のメモリノードに結合され、第一の命令を含む第一のメッセージを受信するように構成された第二のメモリノードをさらに含む。第二のメモリノードは、第一のメッセージに含まれない第二の命令を含む第二のメッセージを作成し、第一のメモリノードに第二のメッセージを提供するようにさらに構成される。第一のメモリノードは、第二の命令に従ってメモリ動作を実施するようにさらに構成される。
本発明の別の実施形態において、装置は、通信するように結合された複数のメモリノードを含み、複数のメモリノードのうちの各メモリノードは、バスと、バスに結合され、情報を格納するように構成されたローカルメモリと、計算論理と、通信インターフェイスと、ノードコントローラとを含む。計算論理は、バスに結合され、ローカルメモリによって格納された情報に対する計算動作を実施するように構成される。通信インターフェイスは、バスに結合され、メモリノードとの通信を提供するように構成される。ノードコントローラは、バスに結合され、メモリ動作を実施するためにローカルメモリを制御するための命令を提供し、計算動作を実施するために計算論理を制御するための命令を提供するように構成される。ノードコントローラは、メモリノードから外部に提供される通信インターフェイスに提供される命令を含むメッセージを作成するようにさらに構成される。
本発明の別の実施形態において、方法は、メモリシステムの第一のメモリノードで外部メッセージを受信することを含み、外部メッセージは、第一のメモリ動作を実施するための第一の命令を含む。第一の命令に応じて、第二のメモリ動作に対する第二の命令を含む内部メッセージが第一のメモリノードで作成される。第二の命令は、外部メッセージに含まれない。第二のメッセージはメモリシステムの第二のメモリノードに提供され、第二のメモリ動作は、第二のメッセージに応じて第二のメモリノードで実施される。
本発明の別の実施形態において、方法は、メモリシステムの第一のメモリノードで、第一の外部メッセージを受信することを含む。第一の外部メッセージは、検索キーに関連する情報を検索するための第一の命令を含む。第一のメモリノードのローカルメモリは、検索キーに関連する情報を検索するためにアクセスされる。検索キーに関連する情報を検索するための第二の命令を含む第一の内部メッセージは、第一のメモリノードで作成される。第一の内部メッセージは、メモリシステムの第二のメモリノードに提供される。第一の内部メッセージに応じて、第二のメモリノードのローカルメモリは、検索キーに関連する情報を検索するためにアクセスされる。検索キーに関連する第一のメモリノードのローカルメモリからの情報を含む第二の内部メッセージは、第一のメモリノードで作成され、第二の内部メッセージは、メモリシステムの第三のメモリノードに提供される。検索キーに関連する第二のメモリノードのローカルメモリからの情報を含む第三の内部メッセージは、第二のメモリノードで作成され、第三の内部メッセージは、メモリシステムの第三のメモリノードに提供される。
本発明の一実施形態による、メモリシステムを含む装置のブロック図である。 本発明の一実施形態による、メモリシステムのブロック図である。 本発明の一実施形態による、メモリノードのブロック図である。 本発明の一実施形態による、メモリシステムの例示的動作のブロック図である。 リンクされたデータ構造の図である。 本発明の一実施形態による、メモリシステムの例示的動作のフロー図である。
本発明の実施形態の十分な理解を提供するために、或る詳細事項が以下に説明される。しかしながら、本発明の実施形態は、これらの特定の詳細事項なしに実現されてもよいことは当業者には明らかであろう。さらに、本明細書に記述された本発明の特定の実施形態は、例示として提供されるものであって、本発明の範囲をこれらの特定の実施形態に限定するために用いられるべきではない。他の例においては、既知の回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、本発明を不必要に不明瞭にすることを防ぐために、詳細には示されていない。
図1は、本発明の一実施形態による処理システム100を含む装置を示す。処理システム100は、ローカルメモリバス130を介してメモリ120に結合されたプロセッサ110を含む。本明細書で使用されるように、“プロセッサ”とは、中央処理装置CPU、グラフィクス処理ユニットGPU、システムコントローラ、メモリコントローラなどを指してもよい。プロセッサ110は、一つ以上のプロセッサを表してもよい。プロセッサ110は、例えば、プロセッサ110によって素早くアクセスされることが望まれ得るプログラム、命令、および/またはデータなどの情報を格納するためにメモリ120を利用してもよい。処理システム100は、メモリバス150を介してプロセッサ110が通信するメモリシステム140をさらに含む。メモリシステム140は、比較的大量の情報、例えば、大量のプログラム、命令、および/またはその他の情報を格納するために利用されてもよい。
メモリシステム140によって格納される情報は、メモリシステム140によって受信されるメッセージを提供するプロセッサ110によってアクセスされてもよい。メッセージは、例えば、メモリシステム140に対する命令および/またはデータなどの情報を含んでもよい。メッセージは、実施される動作だけでなく、ソースメモリノード、宛先メモリに関連する情報も、追加的に、または代替的に含んでもよい。メモリシステム140は、プロセッサ110によって提供されるメッセージに含まれる命令に従って動作を実行してもよい。メモリシステム140は、プロセッサ110から受信されるメッセージに応じて、プロセッサ110にメッセージを提供してもよい。例えば、メモリシステム140は、メモリシステム140から情報を読み出すための命令を含むメッセージをプロセッサ110から受信してもよい。プロセッサ110からのメッセージに応じて、メモリシステム140は、読み出し動作を実施して、読み出された情報を含むメッセージをプロセッサ110に提供してもよい。別の実施例においては、メモリシステム140は、メモリシステム140に情報を書き込むための命令を含み、書き込まれる情報をさらに含むメッセージをプロセッサ110から受信してもよい。プロセッサ110からのメッセージに応じて、メモリシステム140は、メモリに情報を書き込むための書き込み動作を実施してもよい。メモリシステム140は、書き込み命令の完了の確認応答を含むメッセージをプロセッサ110に提供してもよい。種々のその他のタイプの命令、データ、および/またはその他の情報を含むメッセージも同様に、メモリシステム140およびプロセッサ110によって受信および提供されてもよい。
幾つかの実施形態においては、メモリシステム140は、複数のメモリノードを含むメモリシステムであってもよいし、または、複数のメモリノードを含むメモリシステムを含んでもよい。メモリノードは、例えば、プロセッサ110からのメッセージの受信に応じて動作を実行するために、メモリノード間で情報(例えば、命令、データなど)を提供するように構成されてもよい。メモリシステム140は、通信ネットワークを介して通信可能なように結合された複数のメモリノードを有する分散型メモリシステムを表してもよい。このようなメモリシステムでは、より高いレベルのメモリ動作のための命令を使用することができる可能性がある。このような動作は、プロセッサ110の関与がほとんど或いは全くなくメモリシステム140のノード間で管理されてもよい。記述されたようなメモリシステム140の利点は、処理システム100の操作性に対する“ボトルネック”と考えられ得る、メモリバス150を介したメモリシステム140とプロセッサ110との間のトランザクションを減少させ得る。メモリシステム140とプロセッサ110との間のトランザクションを減少させることによって、処理システム100の性能を改善することができる。なぜなら、メモリ動作をプロセッサ110が管理することに充てられる時間が短縮され得、メモリシステム140によって提供される情報に対する計算動作をプロセッサ110が実施することによって浪費される時間が短縮され得るからである。
図2は、本発明の一実施形態によるメモリシステム200を示す。メモリシステム200は、図1の処理システム100のメモリシステム140に含まれてもよい。メモリシステム200は、複数のメモリノード210(1)−(N)を含む。メモリノード210(1)−(N)は、メモリノードがメモリシステム200の他の少なくとも一つのメモリノードと通信できるように、通信可能なように結合されてもよい。例えば、通信ネットワーク220は、メモリノード210(1)−(N)を通信可能なように結合するために使用されてもよい。幾つかの実施形態においては、メモリノード210(1)−(N)は、通信ネットワーク220を介して別のメモリノード210(1)−(N)とメッセージ(例えば、パケット)を交換することによって通信するように構成されてもよい。メモリノード210(1)−(N)間で交換されるメッセージは、種々の既知のまたは最近開発されたメッセージング技術を利用して実現されてもよい。例えば、メモリノード210(1)は、メモリシステム200の他のメモリノード210(2)−(N)のうちの一つ、またはそのうちのいくつか、またはそのうちのいずれかに、パケットを提供することができる。このように、パケットは、メモリシステム200のメモリノード210間で効率的に提供され、受信されてもよい。本明細書で記述されたようなノード間の通信は、パケットを参照して行われるが、本発明の範囲を逸脱することなく他の形式のメッセージが利用されてもよいことを理解されたい。
メモリノード210は、有線および/または無線通信媒体を介して通信可能なように結合されてもよい。メモリノード210間の通信は、例えば、伝送制御プロトコル/インターネットプロトコル(Transmission Control Protocol/Internet Protocol:TCP/IP)などの既知の通信プロトコルを利用してもよい。無線通信が利用される場合、メモリノード210は、メモリノード210間での通信に好適な無線通信回路を含む。同様に、有線通信が利用される場合、メモリノード210は、メモリノード210間での通信に好適な有線通信回路を含む。
命令および/またはデータを含むパケットは、図1を参照して上述されたように、メモリシステム200の外部から、例えば、プロセッサ110から受信されてもよい。パケットは、命令および/またはデータに基づいて動作を実施するメモリノード210(1)−(N)のうちの一つ以上に提供される。例えば、動作は、読み出し動作、書き込み動作、キー検索、データ構造の情報の追加および/または削除、データ構造内のフィールドの更新などを含んでもよい。
以下により詳細に記述されるように、メモリノード210は、情報(例えば、データ、命令など)を格納するためのローカルメモリを含んでもよく、メモリノードが受信するパケットに応じて計算動作を実施するように構成された論理および/または処理性能を含んでもよい。計算動作の例は、ブール論理演算、算術演算、比較演算、およびその他の計算動作を含んでもよい。メモリノード210は、他のメモリノード210に提供され得るか、またはメモリシステム200から外部に、例えば、プロセッサ110に提供され得るパケットを作成するだけでなく、ローカルメモリの動作を制御するように構成される論理および/またはメモリ制御性能をさらに含んでもよい。メモリノード210によって作成されるパケットは、命令および/またはデータを含んでもよく、命令および/またはデータに基づく動作を、受信メモリノード210に実施させることができる。パケットは、メモリノードに対するソースおよび宛先情報をさらに含んでもよい。
以下により詳細に記述されるように、メモリノードがパケットを受信すると、メモリノードは、メモリノードのローカルメモリによって格納される情報に対するローカル動作(例えば、メモリ動作、計算動作など)を実施してもよい。ローカル動作の結果に基づいて、動作は完了してもよいし、或る場合には、完了しなくてもよい。動作が、メモリノード外の追加情報および/または処理を必要とする場合、メモリノードは、追加情報および/または処理のためにメモリシステムの別のメモリノードに依存してもよい。例えば、メモリノードは、次の一つ以上の動作のために宛先メモリノードを決定し、次の一つ以上の動作のためにソースを決定し、ソースメモリノード、宛先メモリ、動作、および/またはデータに関連する情報などの種々の情報を含み得る一つ以上のパケットを作成してもよい。パケットは、メモリノードから別の一つ以上のメモリノードに提供される。
通信するためにメモリノード間でパケットを交換することによって、前述したように、メモリシステム200内のメモリノードによって作成されたパケットに含まれる命令および/またはデータに基づいて、メモリノード210(1)−(N)による動作が実施されつつ、メモリシステム200とプロセッサ110との間のトランザクションは減少する。本明細書で記述されるように、“外部”パケット(“外部”メッセージの例である)は、メモリシステムによって受信されてもよいし、またはメモリシステムによって提供されてもよく、(“内部”メッセージの例である)“内部”パケットは、メモリノード間で提供されてもよい。内部パケットは、外部パケットと同一もしくは類似するものであってもよい。例えば、内部パケットおよび外部パケットのフォーマットは類似してもよい。幾つかの実施形態においては、内部パケットは、外部パケットとは異なってもよく、例えば、内部パケットは、メモリノード間で通信するための追加情報を含んでもよいし、外部パケットとは異なるフォーマットを有してもよい。
図3は、本発明の一実施形態によるメモリノード300を示す。メモリノード300は、バス320に結合されたローカルメモリ310を含む。バス320は、メモリノード300に含まれるブロック間の通信を提供するように構成される。ローカルメモリ310は、異なるタイプのメモリを含んでもよく、例えば、ローカルメモリ310は、揮発性メモリ310(1)および不揮発性メモリ310(2)を含んでもよい。ローカルメモリ310は、メモリノード300に関連する情報を格納して提供するように構成されてもよい。
バス320に結合されたノードコントローラ330は、メモリノード300の動作を制御するように構成されてもよい。ノードコントローラ330は、例えば、メモリから情報を読み出すため、またはメモリ内に情報を格納するためなど、種々のメモリ動作を実施するためにローカルメモリ310を制御するため、バス320を介して命令を提供してもよい。ノードコントローラ330は、ローカルメモリ310に格納された情報および/またはメモリノード300に提供される情報などの情報に対する計算を実施するように構成され得る計算論理を制御してもよい。ノードコントローラ330は、別のメモリノードおよび/またはプロセッサ(例えば、プロセッサ110)と通信するなどの、メモリノード300との通信を提供するように構成され得る通信インターフェイス340を制御してもよい。通信インターフェイス340は、バス320にさらに結合され、ローカルメモリ310との通信をも可能にする。メモリノード300は、有線および/または無線通信用回路を含み、有線および/または無線媒体を介して通信するように構成されてもよい。例えば、通信インターフェイス340は、他のメモリノードとの有線通信用に構成され得る回路を含んでもよく、通信インターフェイスは、他のメモリノードとの無線通信用に構成される回路を代替的、または追加的に含んでもよい。
前述されたように、メモリノードに提供されるパケットは、命令およびデータなどの情報を含んでもよい。パケットの受信に応じて、ノードコントローラ330は、メモリ動作および計算動作を実施するために、ローカルメモリ310および/または計算論理350を制御してもよい。例えば、メモリノード300によって受信されるパケットは、書き込み動作を実施するための命令を含んでもよく、書き込み動作に従ってローカルメモリ310に格納される情報をさらに含んでもよい。ノードコントローラ330は、パケットに含まれる情報を格納するために、ローカルメモリ310に対する制御信号を作成してもよい。他の実施例においては、メモリノード300によって受信されるパケットは、ローカルメモリ310によって格納される情報に対する計算動作を実施するための命令を含んでもよい。ノードコントローラ330は、ローカルメモリ310に格納される情報にアクセスし、計算動作を実施するために、ローカルメモリ310および計算論理350に対する制御信号を作成してもよい。計算動作の例は、ブール論理演算、算術演算、比較演算、およびその他の計算演算を含んでもよい。
以下により詳細に記述されるように、ノードコントローラ330は、メモリノード300を含むメモリシステムの外部に提供され得るパケットだけでなく、他のメモリノードに提供され得るパケットも作成するようにさらに構成されてもよい。ノードコントローラ330は、パケットの宛先(例えば、一つ以上の受信メモリノード)を決定してもよい。宛先は、例えば、情報、メモリ動作、またはその両方の組み合わせに基づいて決定されてもよい。ノードコントローラ330によって作成されるパケットは、動作を実施するために、他のメモリノードに対する命令を含んでもよい。パケットは、他のメモリノードに対する情報を、代替的または追加的に含んでもよい。したがって、メモリノードは、メモリシステムの内部で作成されるパケットに対する宛先ノードをローカルに決定してもよく、作成されるパケットは、メモリノードでのローカルな処理結果に基づいたものであってもよい。
メモリシステム200などのメモリシステム内にメモリノード300を含むことによって、メモリシステムとのメモリトランザクション回数を減少させることができる。プロセッサによって発行される命令は、情報をプロセッサに来させるのではなく、(メモリシステム内に格納された)情報に実質的に移動する。情報をプロセッサに来させることは、利用されないメモリシステム帯域幅を残す一方で、プロセッサに対して顕著な動作負荷をかける。プロセッサによる介在がほとんどなく、メモリノード間で内部的に動作を制御するように構成され得るメモリシステムを有する結果として、処理システムの動作効率が改善される可能性がある。
図4は、本発明の一実施形態によるメモリシステムの例示的動作の図を示す。図4の例は、本発明の一実施形態によるメモリシステム(例えば、図2のメモリシステム200)による、メモリ要求を含むパケットの受信に関連する。パケットは、例えば、図1のプロセッサ110などのプロセッサから受信されてもよく、“外部”パケットと称される。図4の例においては、メモリ要求は、外部パケット内で識別される“キー”に関連する情報を見つけて提供するための受信メモリシステムに対するものである。
外部パケットは、矢印402によって図4に示されるように、キーに関連する情報を要求するために、メモリノード210(1)によって受信される。メモリノード210(1)のノードコントローラは、外部パケットに応じた動作、例えば、ローカルメモリに格納された情報にアクセスして、メモリノード210(1)のローカルメモリ内にキーに関連する情報が存在するか否かを判定するための動作を実施してもよい。例えば、メモリノード210(1)のノードコントローラは、メモリノード210(1)のローカルメモリ内に要求を満足する何らかの情報が格納されているか否か、即ち、格納された何らかの情報がキーに一致するか否かを判定するための計算論理による比較のためにローカルメモリから格納された情報を提供するため、メモリノード210(1)のローカルメモリにメモリコマンドを提供してもよい。
メモリノード210(1)のノードコントローラおよび計算論理によって実施される動作に加えて、メモリノード210(1)(例えば、“送信”メモリノード)は、メモリシステム200の他のメモリノード(例えば、“受信”メモリノード)にパケット(例えば、“内部”パケット)が提供されるべきと決定する。メモリノード210(1)のノードコントローラは、図4に示されるように、内部パケットに対する受信ノードを決定し、メモリノード210(1)は、図4に矢印410、412および414によって示されるように、メモリノード210(3)、210(5)および210(10)に内部パケットを提供して、情報に対する要求を継続する。
メモリノード210(1)によって提供される内部パケットは、例えば、他のメモリノードのローカルメモリによって格納され得るキーに一致する情報を検索し続けるために、情報を要求するための命令を含んでもよい。内部パケットは、例えば、キーに一致する際に送信メモリノードによって実施される動作中に識別される情報などの情報を代替的に、または追加的に含んでもよい。メモリノード210(1)によって提供される内部パケットは、それが受信した外部パケット(例えば、矢印402によって表される)からの情報(例えば、命令、データなど)のうちの幾つかもしくはそのすべてを含んでもよい。メモリノード210(1)によって提供される内部パケットは、メモリノード210(1)が受信した外部パケットに含まれない情報を含んでもよい。例えば、内部パケットは、外部パケットに含まれなかった、メモリノード210(1)のノードコントローラおよび計算論理によって作成された情報を含んでもよい。情報は、例えば、外部パケットに関連する情報要求を満足するために、受信メモリノードが動作を実施するのを支援してもよい。
送信メモリノードからの内部パケットの受信、内部パケットに応じた動作の実施、および/または受信メモリノードによる別のメモリノードに対する内部パケットの提供(例えば、“受信”メモリノードは、新たな“送信”メモリノードとなる)は、メモリシステム200中で継続してもよい。例えば、メモリノード210(1)によりメモリノード210(3)に対して提供される内部パケットに応じて(例えば、矢印410)、メモリノード210(3)のノードコントローラおよび計算論理は、メモリ200に対する最初の要求を満足する情報をそのローカルメモリで検索することなどの動作を実施してもよい。メモリノード210(3)のノードコントローラは、例えば、メモリ200に対する最初の要求に関連する命令、および/または最初の要求を満足するメモリノード210(3)のローカルメモリ内で識別されたデータなどの情報を含み得る追加の内部パケットをさらに作成してもよい。内部パケットは、メモリノード210(4)および210(6)に対して(例えば、其々矢印416および418によって表されるように)、メモリノード210(3)によって提供される。
図4にさらに示されるように、メモリノード210(3)からメモリノード210(4)に対する内部パケットは、(矢印424によって表されるように)メモリノード210(7)に提供されるメモリノード210(4)による別の内部パケットの作成を引き起こし、それに応じて、メモリノード210(7)は、内部パケットを作成し、メモリノード210(6)に(矢印426によって表されるように)提供する。同様に、(矢印414によって表されるように)メモリノード210(1)から内部パケットを受信したメモリノード210(10)は、メモリノード210(6)に(矢印422によって表されるように)提供される内部パケットを作成して提供する。(矢印412によって表されるように)メモリノード210(1)から内部パケットを受信したメモリノード210(5)は、メモリノード210(6)に提供される内部パケットを作成して(矢印420によって表されるように)提供する。
前述されたように、送信メモリノードからの内部パケットの受信によって、受信された内部パケットに含まれる命令および/またはデータに関連する動作、例えば、受信メモリノードのローカルメモリでの情報検索を受信メモリノードに実施させる。さらに、受信メモリノードは、別のメモリノードに提供される命令および/またはデータを含む内部パケットを作成してもよい。受信メモリノード(その後送信メモリノードとなる)によって作成される内部パケットは、新たな受信メモリノードに対する命令および/またはデータを含んでもよい。
メモリノード210(6)は、図4の矢印418、420、426、および422によって示されるように、メモリノード210(3)、210(5)、210(7)、および210(10)から内部パケットを其々受信する。メモリノードからの内部パケットは、メモリノードが送信メモリノードから受信した其々の内部パケットに含まれるメモリ要求を満足する其々のメモリノードのノードコントローラおよび計算論理によって識別される情報を含んでもよい。例えば、メモリノード(例えば、210(3)、210(5)、210(7)、および210(10))からの内部パケットは、例えば、(例えば、図4に矢印402によって表されるような)メモリシステム200によって受信された外部パケットに関連する情報に対する最初の要求に関連する動作を実施するための、メモリノードに対する命令を含んでもよい。図4の例においては、メモリノード210(6)は、キーに一致するメモリノードによって識別されるデータなどの情報に対する最初の要求を満足すると、其々のメモリノードによって識別された他のメモリノード(例えば、送信メモリノード)からの情報を集約してもよい。
図4の例においては、送信メモリノードから受信された内部パケットに基づいて、メモリノード210(6)のノードコントローラは、他のメモリノードからそれに提供された情報を含む内部パケットを作成する。内部パケットは、(矢印428によって表されるように)メモリシステム200の外部に、例えば、矢印402によって表される外部パケットをメモリシステム200が受信したプロセッサに提供される。メモリノード216(6)によって提供される内部パケットは、情報の要求を全体として満足するメモリシステム200からの情報、即ち、210(1)によって最初に受信された外部パケットのキーに関連する情報を含んでもよい。
図4の例に示されるように、メモリシステム200は、メモリシステム200によって受信される外部パケットに応じて内部で動作を管理してもよい。例えば、メモリシステム200のメモリノード210(1)−(N)は、メモリシステム200の他のメモリノードに、送信メモリノードのノードコントローラによって作成された内部パケットを提供してもよい。内部パケットは、メモリシステム200によって受信された外部パケットに関連する動作を満足するための動作を実施するために、受信メモリノードに対する情報(例えば、命令および/またはデータ)を含んでもよい。外部パケットに関連する動作がメモリシステム200により完了された時に、外部パケットはメモリシステム200によって提供されてもよい。
図5は、本発明の一実施形態により、検索され得るリンクされるリストデータセットに対するデータ構造500を示す。データ構造500は、キー“A”、“B”、“C”、“D”、“E”、“F”、および“G”に関連する情報を含むより大きなデータセットを形成するために互いにリンクされる情報を表す。より詳細には、データ構造500は、より大きなデータセットを形成するために、ポインタによって互いにリンクされるデータサブセット510−570を含む。データサブセット510−570の各々は、其々のキーに関連する情報を含む。データ構造500の“ヘッド”は、アドレス0×1000に配置されキー“A”に関連する情報を含むデータサブセット510に関連づけられる。データサブセット510内のポインタ512は、アドレス0×1080に配置されキー“B”に関連する情報を含むデータサブセット520を指し示し、それによって、データサブセット510および520をリンクする。同様に、アドレス0×2000に配置され、キー“C”に関連する情報を含むサブセット530は、ポインタ522によってデータサブセット520にリンクされる。アドレス0×0800、0×3000、0×4080、および01100に配置され、キー“D”、“E”、“F”、および“G”に関連する情報を含むデータサブセット540、550、560、および570は全て、其々、あるデータサブセットから別のデータサブセットを指し示すポインタ532、542、552、および562によって、データサブセット530に同様にリンクされ、互いにリンクされる。
従来のシステムにおいては、検索キー“E”に一致する情報をデータ構造500で検索するために、CPUは、例えば、アドレス0×1000におけるデータサブセット510に関連するデータ構造500のヘッドに現在の検索ポインタを設定する。CPUは、ポインタによって識別される現在位置から情報を読み出すためにメモリ読み出し命令を発行し、現在位置から読み出された情報を検索キー“E”と比較する。現在位置から読み出された情報が検索キー“E”に一致する場合、検索は完了して終了する。しかしながら、現在位置からの情報が検索キー“E”に一致しない場合、CPUは、次の位置へ検索ポインタを進め、その位置がその後現在位置になる。
前述したように、CPUは、ポインタによって識別された(新たな)現在位置から情報を読み出すためのメモリ読み出し命令を発行し、現在位置から読み出された情報を比較する。新たな現在位置を指し示すステップ、現在位置から情報を読み出すステップ、検索キー“E”と情報を比較するステップは、情報が見つかるまで繰り返され、あるいはデータ構造500全体が検索されても情報が見つからなかった場合、その時点で検索は終了する。図5の例示的データ構造500においては、データサブセット550は、検索キー“E”に一致する情報を含む。結果として、データサブセット550(ポインタ542によってリンクされる)から情報を読み出し、その情報が検索キー“E”に一致すると判定し、CPUが検索を終了する時点まで、CPUは、ポインタ512、522、および532によって互いにリンクされたデータサブセット510、520、530、および540における情報を読み出す。
従来のシステムに対する例においては、CPUは、メモリ読み出し命令を発行し、現在位置から読み出された情報を検索キーと比較し、完了によって検索を終了することの負荷が課される。
図6は、本発明の一実施形態によるメモリシステムに対してデータ構造500を検索するためのフロー図を示す。データ構造500は、CPUがメモリシステムに一つの命令を発行するのに基づいて、情報を検索されてもよい。現在位置からの情報の読み出しと、その情報と検索キーとの比較は、メモリシステムの内部で管理され、より詳細には、メモリシステムのメモリノードによって管理される。本実施例の目的として、データ構造500の各データサブセットは、本発明の一実施形態による複数のメモリノードを含むメモリシステムの其々のメモリノード、例えば、メモリノード210(図2)および/またはメモリノード300(図3)によって格納される。
ステップ610において、メモリシステムは、検索キー(例えば、検索キー“E”)に一致する情報を見つけるためにデータ構造500を検索し、データ構造500のヘッド、より詳細には、アドレス0×1000におけるデータサブセット510で開始するための命令をCPUから受信する。ステップ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に対する負荷を低減させるために使用されてもよい。
本明細書には本発明の特定の実施形態が例示として記述されてきたが、本発明の趣旨および範囲を逸脱することなく種々の改変が行われてもよいことを前述から理解されたい。したがって、本発明は、添付の請求項以外によって限定されることはない。
図4の例においては、送信メモリノードから受信された内部パケットに基づいて、メモリノード210(6)のノードコントローラは、他のメモリノードからそれに提供された情報を含む内部パケットを作成する。内部パケットは、(矢印428によって表されるように)メモリシステム200の外部に、例えば、矢印402によって表される外部パケットをメモリシステム200が受信したプロセッサに提供される。メモリノード210(6)によって提供される内部パケットは、情報の要求を全体として満足するメモリシステム200からの情報、即ち、210(1)によって最初に受信された外部パケットのキーに関連する情報を含んでもよい。

Claims (34)

  1. プロセッサと、
    前記プロセッサに結合され、メモリシステムによって格納された情報にアクセスするための前記プロセッサからの複数の命令を受信するように構成される前記メモリシステムであって、前記メモリシステムは複数のメモリノードを含み、前記複数のメモリノードのうちの各メモリノードは、前記複数のメモリノードのうちの少なくとも一つの他のメモリノードに結合され、前記複数のメモリノードのうちの各メモリノードは、動作に対する複数の命令を含む内部メッセージを作成するように構成され、前記内部メッセージは、前記動作を実施するために、前記複数のメモリノードのうちの別のメモリノードに提供される、前記メモリシステムと
    を含む、装置。
  2. 前記複数のメモリノードのうちのメモリノードは、
    情報を格納するように構成されたローカルメモリと、
    複数の計算動作を実施するように構成された計算論理と、
    複数のメモリ動作を実施するために前記ローカルメモリを制御するように構成され、複数の計算動作を実施するために前記計算論理を制御するように構成されたノードコントローラであって、前記メモリノードから外部に提供される命令を含むメッセージを作成するようにさらに構成された前記ノードコントローラと
    を含む、ことを特徴とする請求項1に記載の装置。
  3. 前記ノードコントローラは、前記メモリノード内で実施される複数のローカル動作の結果に基づいて、メッセージに対する宛先メモリノードを決定するように構成される、
    ことを特徴とする請求項2に記載の装置。
  4. 前記ノードコントローラは、前記複数のメモリノードのうちの別のメモリノードに提供される内部メッセージを作成するように構成され、前記プロセッサに提供される外部メッセージを作成するようにさらに構成される、
    ことを特徴とする請求項2に記載の装置。
  5. 前記複数のメモリノードのうちのメモリノードは、送信元メモリノード、宛先メモリノード、動作、データ、またはそれらの組み合わせに関連する情報を含む内部メッセージを作成するように構成される、
    ことを特徴とする請求項1に記載の装置。
  6. 前記プロセッサに結合されたローカルメモリバスと、
    前記ローカルメモリバスに結合され、情報を格納するように構成されたメモリと
    をさらに含む、
    ことを特徴とする請求項1に記載の装置。
  7. ローカルメモリに情報を格納するように構成された第一のメモリノードと、
    前記第一のメモリノードに結合され、第一の命令を含む第一のメッセージを受信するように構成された第二のメモリノードであって、前記第二のメモリノードは、前記第一のメッセージに含まれない第二の命令を含む第二のメッセージを作成し、前記第一のメモリノードに前記第二のメッセージを提供するようにさらに構成され、前記第一のメモリノードは、前記第二の命令に従ってメモリ動作を実施するようにさらに構成される、前記第二のメモリノードと、
    を含む、
    ことを特徴とする装置。
  8. 前記第二のメモリノードは、前記第一のメモリノードから要求された追加情報、処理、またはそれらの組み合わせに応じて、前記第二のメッセージを作成するように構成される、
    ことを特徴とする請求項7に記載の装置。
  9. 前記第一のメッセージは第一のパケットを含み、前記第二のメッセージは第二のパケットを含む、
    ことを特徴とする請求項7に記載の装置。
  10. 前記第一のメッセージは内部パケットを含み、前記第二のメッセージは内部パケットまたは外部パケットのいずれかを含む、
    ことを特徴とする請求項7に記載の装置。
  11. 第三のメモリノードをさらに含み、前記第二のメモリノードは、前記第三のメモリノードに前記第二のメッセージを提供するようにさらに構成され、前記第三のメモリノードは、前記第二の命令に従って前記メモリ動作を実施するように構成される、
    ことを特徴とする請求項7に記載の装置。
  12. 前記第二のメモリノードは、前記第一のメッセージに応じて前記第二のメッセージを作成するように構成されたノードコントローラを含む、
    ことを特徴とする請求項11に記載の装置。
  13. 前記第二の命令に従う前記メモリ動作は、ローカルメモリに格納された情報に対する検索動作を含み、前記第一のメモリノードは、前記検索動作によって識別された情報を含む第三のメッセージを作成するようにさらに構成される、
    ことを特徴とする請求項7に記載の装置。
  14. 前記第一のメモリノードは、前記第一の命令とは異なる第三の命令を含む第三のメッセージを作成するようにさらに構成される、
    ことを特徴とする請求項7に記載の装置。
  15. 通信可能なように互いに結合された複数のメモリノードであって、前記複数のメモリノードのうちの各メモリノードは、
    バスと、
    前記バスに結合され、情報を格納するように構成されたローカルメモリと、
    前記バスに結合され、前記ローカルメモリによって格納された情報に対する複数の計算動作を実施するように構成された計算論理と、
    前記バスに結合され、前記メモリノードとの通信を提供するように構成された通信インターフェイスと、
    前記バスに結合され、複数のメモリ動作を実施するために前記ローカルメモリを制御するための複数の命令を提供するように構成され、前記複数の計算動作を実施するために前記計算論理を制御するための複数の命令を提供するように構成され、前記メモリノードから外部に提供される前記通信インターフェイスに提供される命令を含むメッセージを作成するようにさらに構成されたノードコントローラと
    を含む、
    ことを特徴とする装置。
  16. 前記通信インターフェイスは、前記複数のメモリノードのうちの他の複数のノードと無線通信するように構成される、
    ことを特徴とする請求項15に記載の装置。
  17. 前記通信インターフェイスは、有線媒体で、前記複数のメモリノードのうちの他の複数のノードと通信するように構成される、
    ことを特徴とする請求項15に記載の装置。
  18. 前記複数のメモリノードのうちの各メモリノードと通信可能なように結合するように構成された通信ネットワークをさらに含む、
    ことを特徴とする請求項15に記載の装置。
  19. 前記計算論理は、ブール論理演算、算術演算、比較演算、またはそれらの組み合わせを含む複数の計算動作を実施するように構成される、
    ことを特徴とする請求項15に記載の装置。
  20. 前記ローカルメモリは、揮発性メモリ、不揮発性メモリ、またはそれらの組み合わせを含む、
    ことを特徴とする請求項15に記載の装置。
  21. メモリシステムの第一のメモリノードで外部メッセージを受信することであって、前記外部メッセージは、第一のメモリ動作を実施するための第一の命令を含む、ことと、
    前記第一の命令に応じて、第二のメモリ動作に対する第二の命令を含む内部メッセージを前記第一のメモリノードで作成することであって、前記第二の命令は、前記外部メッセージには含まれない、ことと、
    前記メモリシステムの第二のメモリノードに前記第二のメッセージを提供することと、
    前記第二のメッセージに応じて、前記第二のメモリノードで前記第二のメモリ動作を実施することと、
    を含む、
    ことを特徴とする方法。
  22. 前記第一のメモリノードで前記第一のメモリ動作を実施することをさらに含む、
    ことを特徴とする請求項21に記載の方法。
  23. 前記第一のメモリノードでの前記第一のメモリ動作は、読み出し動作を含む、
    ことを特徴とする請求項22に記載の方法。
  24. 前記第二のメモリ動作を実施することは、前記第二のメモリノードのローカルメモリにアクセスすることを含む、
    ことを特徴とする請求項21に記載の方法。
  25. 前記第二の命令に応じて、前記第二のメモリノードの前記ローカルメモリから読み出された情報に対する計算動作を、前記第二のメモリノードで実施することをさらに含む、
    ことを特徴とする請求項24に記載の方法。
  26. 前記第一および第二のメッセージのフォーマットは、前記外部メッセージのフォーマットとは異なる、
    ことを特徴とする請求項21に記載の方法。
  27. 前記第二のメモリ動作に関連する情報を含む内部メッセージを前記第二のメモリノードで作成することをさらに含む、
    ことを特徴とする請求項21に記載の方法。
  28. 前記第二のメモリ動作を実施することは、読み出し動作、書き込み動作、キー検索、データ構造の情報の追加および削除、データ構造内のフィールドの更新、またはそれらの組み合わせを実施することを含む、
    ことを特徴とする請求項21に記載の方法。
  29. 第一の外部メッセージをメモリシステムの第一のメモリノードで受信することであって、前記第一の外部メッセージは、検索キーに関連する情報を検索するための第一の命令を含む、ことと、
    前記検索キーに関連する情報を検索するために、前記第一のメモリノードのローカルメモリにアクセスすることと、
    検索キーに関連する情報を検索するための第二の命令を含む第一の内部メッセージを前記第一のメモリノードで作成することと、
    前記メモリシステムの第二のメモリノードに前記第一の内部メッセージを提供することと、
    前記第一の内部メッセージに応じて、前記検索キーに関連する情報を検索するために、前記第二のメモリノードのローカルメモリにアクセスすることと、
    前記第一のメモリノードの前記ローカルメモリからの前記検索キーに関連する情報を含む第二の内部メッセージを、前記第一のメモリノードで作成することと、
    前記メモリシステムの第三のメモリノードに前記第二の内部メッセージを提供することと、
    前記第二のメモリノードの前記ローカルメモリからの前記検索キーに関連する情報を含む第三の内部メッセージを前記第二のメモリノードで作成することと、
    前記メモリシステムの前記第三のメモリノードに前記第三の内部メッセージを提供することと、
    を含む、
    ことを特徴とする方法。
  30. 前記第一および第二のメモリノードからの前記情報を含む第二の外部メッセージを前記第三のメモリノードで作成することをさらに含む、
    ことを特徴とする請求項29に記載の方法。
  31. 前記第一のメモリノードの前記ローカルメモリに格納された情報および前記第二のメモリノードの前記ローカルメモリに格納された情報は、リンクされたリストデータセットの其々のデータサブセットである、
    ことを特徴とする請求項29に記載の方法。
  32. 前記第一の内部メッセージを前記第一のメモリノードで作成することは、前記第一のメモリノードの前記ローカルメモリにおける前記データサブセットでの、前記検索キーに関連する情報の検索を完了することに応じたものである、
    ことを特徴とする請求項31に記載の方法。
  33. 前記第一のメモリノードで、前記第一のメモリノードの前記ローカルメモリから読み出された、前記検索キーに関連する情報を前記検索キーと比較することをさらに含む、
    ことを特徴とする請求項29に記載の方法。
  34. 前記第一のメモリノードの前記ローカルメモリにアクセスすることは、前記第一のメモリノードの前記ローカルメモリによって格納された情報を読み出すことを含む、
    ことを特徴とする請求項29に記載の方法。
JP2016500270A 2013-03-15 2014-02-14 メモリノードを含む分散型メモリシステム用装置および方法 Active JP6333353B2 (ja)

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
PCT/US2014/016585 WO2014149278A1 (en) 2013-03-15 2014-02-14 Apparatus and methods for a distributed memory system including memory nodes

Publications (2)

Publication Number Publication Date
JP2016515256A true JP2016515256A (ja) 2016-05-26
JP6333353B2 JP6333353B2 (ja) 2018-05-30

Family

ID=51533914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016500270A Active JP6333353B2 (ja) 2013-03-15 2014-02-14 メモリノードを含む分散型メモリシステム用装置および方法

Country Status (7)

Country Link
US (2) US10089043B2 (ja)
EP (1) EP2972911B1 (ja)
JP (1) JP6333353B2 (ja)
KR (1) KR20150129808A (ja)
CN (2) CN105051708B (ja)
TW (1) TWI624787B (ja)
WO (1) WO2014149278A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066796A1 (en) * 2009-09-11 2011-03-17 Sean Eilert Autonomous subsystem architecture
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)

* Cited by examiner, † Cited by third party
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
US20050108203A1 (en) 2003-11-13 2005-05-19 Chunqiang Tang Sample-directed searching in a peer-to-peer system
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
US8407516B2 (en) * 2009-12-23 2013-03-26 Intel Corporation Controlling memory redundancy in a system
US8766666B2 (en) 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066796A1 (en) * 2009-09-11 2011-03-17 Sean Eilert Autonomous subsystem architecture
US20110067039A1 (en) * 2009-09-11 2011-03-17 Sean Eilert Autonomous memory architecture
JP2011060279A (ja) * 2009-09-11 2011-03-24 Sean Eilert 自律的メモリアーキテクチャー
JP2011060278A (ja) * 2009-09-11 2011-03-24 Sean Eilert 自律的サブシステムアーキテクチャー
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
JP2012103926A (ja) * 2010-11-10 2012-05-31 Toshiba Corp 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法

Also Published As

Publication number Publication date
KR20150129808A (ko) 2015-11-20
EP2972911A1 (en) 2016-01-20
US10761781B2 (en) 2020-09-01
CN105051708A (zh) 2015-11-11
CN105051708B (zh) 2019-05-28
US20140281278A1 (en) 2014-09-18
CN110244909A (zh) 2019-09-17
TWI624787B (zh) 2018-05-21
US10089043B2 (en) 2018-10-02
EP2972911A4 (en) 2016-10-26
JP6333353B2 (ja) 2018-05-30
EP2972911B1 (en) 2020-12-23
US20190042100A1 (en) 2019-02-07
TW201447744A (zh) 2014-12-16
WO2014149278A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
JP6333353B2 (ja) メモリノードを含む分散型メモリシステム用装置および方法
US7502826B2 (en) Atomic operations
US20150032938A1 (en) System and method for performing efficient processing of data stored in a storage node
US10042576B2 (en) Method and apparatus for compressing addresses
US20150032937A1 (en) System and method for performing efficient searches and queries in a storage node
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
US9946660B2 (en) Memory space management
US20150113210A1 (en) Data storage flash memory management method and program
WO2013075306A1 (zh) 数据访问方法和装置
CN110427386A (zh) 数据处理方法、装置及计算机存储介质
US11258887B2 (en) Payload cache
US9836491B1 (en) Method and apparatus for hardware-implemented AVL tree updates
CN106557277B (zh) 磁盘阵列的读方法及装置
WO2021082877A1 (zh) 访问固态硬盘的方法及装置
TWI755168B (zh) 用來產生基於主機的快取資訊或基於快閃記憶體的快取資訊以建立及最佳化二元樹的快閃記憶體控制器、方法及記憶裝置
JP4979206B2 (ja) 情報処理方法および情報処理装置
WO2019201091A1 (zh) 一种数据处理方法、设备和计算机可读存储介质
US6847990B2 (en) Data transfer unit with support for multiple coherency granules
CN117312201B (zh) 一种数据传输方法、装置及加速器设备、主机和存储介质
JP2014235531A (ja) データ転送装置、データ転送システム、およびプログラム
CN116680206B (zh) 内存扩展方法、装置、系统、电子设备及可读存储介质
CN108762666B (zh) 一种存储系统的访问方法、系统、介质及设备
JP2009088622A (ja) バッファメモリを有するパケット転送装置および方法
JP2006099650A (ja) ネットワークシステム、そのノード

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6333353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250