JP5877872B2 - メモリーネットワークシステムおよび方法 - Google Patents

メモリーネットワークシステムおよび方法 Download PDF

Info

Publication number
JP5877872B2
JP5877872B2 JP2014105756A JP2014105756A JP5877872B2 JP 5877872 B2 JP5877872 B2 JP 5877872B2 JP 2014105756 A JP2014105756 A JP 2014105756A JP 2014105756 A JP2014105756 A JP 2014105756A JP 5877872 B2 JP5877872 B2 JP 5877872B2
Authority
JP
Japan
Prior art keywords
port
path
network node
network
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014105756A
Other languages
English (en)
Other versions
JP2014157628A (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 JP2014157628A publication Critical patent/JP2014157628A/ja
Application granted granted Critical
Publication of JP5877872B2 publication Critical patent/JP5877872B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

(関連出願)
本出願は、2009年2月19日に出願された米国出願番号第12/389,200号から優先権の利益を得るもので、それは参照により本明細書に組み込まれる。
パーソナルコンピュータ、ワークステーション、コンピュータサーバー、メインフレーム、およびプリンタ、スキャナ、ハードディスクドライブ等のコンピュータ関連機器など、多くの電子デバイスは、消費電力を抑えようとする一方で、大容量のデータ記憶機能を備えたメモリーを使用している。上記の各デバイスでの使用に適したタイプのメモリーの1つは、ダイナミックランダムアクセスメモリー(DRAM)である。
チップサイズの制限が与える影響により、大規模なマルチプロセッサシステムにおける大容量メモリーデバイスに対する要求は増加を続けている。各メモリーセルのコンポーネントが占有する表面積は着実に減少を続けているため、半導体基板上のメモリーセルの記録密度は、減少を続けるゲート遅延に伴って増加させることができる。ただし、デバイスの表面積を減少させた場合、製造歩留まりが低下する可能性があり、メモリーデバイスの多数のバンクをプロセッサなどの他のデバイスに接続するために用いられる相互接続の複雑さが増大する可能性がある。さらに、小型化を行っても、相互接続遅延はゲート遅延ほどには減少しないという問題もある。
さまざまな実施形態を、以下の図面を参照することによって以下に詳述する。
さまざまな実施形態による、メモリーシステム用のブリッジアーキテクチャの概略的なブロック図である。 さまざまな実施形態による、メモリーシステム用の共有バスアーキテクチャの概略的なブロック図である。 さまざまな実施形態による、メモリーシステム用のネットワークアーキテクチャの概略的なブロック図であり、専用プロセッサを持ち、相互に接続されたネットワークノードを示している。 さまざまな実施形態による、メモリーシステム用のネットワークアーキテクチャの概略的なブロック図であり、プロセッサを共有し、相互に接続されたネットワークノードを示している。 さまざまな実施形態による、メモリーシステム用のネットワークアーキテクチャの概略的なブロック図であり、プロセッサを共有し、さまざまな幾何学的平面に配置されたネットワークノードを示している。 さまざまな実施形態による、メモリーシステム用のネットワークアーキテクチャの概略的なブロック図であり、プロセッサを共有し、相互に接続された、さまざまな空間的平面に配置されたネットワークノードを示している。 さまざまな実施形態による、3次元のメモリーシステムの概略的なブロック図であり、プロセッサを共有し、相互に接続されたネットワークノードを示している。 さまざまな実施形態による、メモリーシステム用の概略的なブロック図であり、このメモリーシステムは、多次元メモリーネットワーク内のメモリーからデータを復元して、ネットワーク障害の復旧を可能にする。 さまざまな実施形態による、多次元メモリーシステム内のデータのルーティング方法を記述したフローチャートである。
さまざまな実施形態には、処理システム、半導体モジュール、メモリーシステム、および方法が含まれる。一部の実施形態に関する具体的な詳細については、以下に示す記述と図1から図9とを使用して、これらの実施形態の概念を説明する。ただし、当業者は、追加の実施形態も可能であること、および、これ以降で説明するいくつかの詳細がなくとも、多くの実施形態が実施可能であることを理解するであろう。また、さまざまな実施形態が、物理的なコンポーネント(「ハードウェア」など)を含む物理的な回路内に実装可能であること、または、機械が解読可能な指示(「ソフトウェア」など)を使用して実装可能であること、または、物理的なコンポーネントと機械が解読可能な指示との特定の組み合わせ(「ファームウェア」など)で実装可能であることも理解するであろう。
表面積の減少と、それに伴うメモリーの記録密度の増加は、メモリーアレイおよびメモリーデバイスの水平形状のサイズを小さくすることによって実現できる。これは、さまざまな実施形態において、高度に3次元化されたメモリーシステムを形成することによって可能になる。このメモリーシステムでは、メモリーデバイスが基板の垂直方向に拡張され、さらに基板の表面全体にわたって拡張される。
ここで説明するメモリーデバイスの例は、2007年8月29日に「MEMORY DEVICE INTERFACE METHODS,APPARATUS, AND SYSTEMS」という名称で出願され、MICRONTECHNOLOGY, INC.社に譲渡された、米国特許出願第11/847,113号に記述されている。
ここで説明するネットワークノード(ルーター)の例は、2008年2月19日に「METHODDEVICE WITH NETWORKON CHIP METHODS, APPARATUS, AND SYSTEMS」という名称で出願され、MICRONTECHNOLOGY, INC.社に譲渡された、米国特許出願第12/033,684号に記述されている。
図1は、さまざまな実施形態による、メモリーシステム100用のブリッジアーキテクチャの概略的なブロック図である。実施形態の1つの例では、メモリーシステム100には、プロセッサ(104、114)、メモリー(MEM)(110、120)、ブリッジ(102、112)、およびネットワークノード101が含まれる。一部の実施形態では、プロセッサ104は、専用メモリー110およびブリッジ102に連結される。アーキテクチャ100には、専用メモリー120およびブリッジ112に連結されたプロセッサ114も含まれる。ネットワークノード101を使用して、ブリッジ102とブリッジ112とを連結することができる。図1に示すアーキテクチャは、さまざまな実施形態において、本明細書で開示する他のメモリーシステムおよびアーキテクチャとともに使用することができる。
図2は、さまざまな実施形態による、メモリーシステム200用の共有バスアーキテクチャの概略的なブロック図である。共有バスアーキテクチャ200には、プロセッサ210、212、214、および216と、メモリー206と、ブリッジ204とに連結された共有バス208が含まれる。一部の実施形態では、ネットワークノード202はブリッジ204に連結され、これによってメモリーシステム200が他の類似のメモリーシステムに接続される。図2に示すアーキテクチャは、さまざまな実施形態において、本明細書で開示する他のメモリーシステムおよびアーキテクチャとともに使用することができる。
図1に示すブリッジアーキテクチャ、または図2に示す共有バスアーキテクチャのいずれかを使用することにより、大規模なマルチプロセッサシステムを構築することができる。いずれのアーキテクチャにおいても、ネットワーク構造および相互接続ハードウェアを使用して、ネットワーク化された高性能なシステムを実現することができる。一部の実施形態では、さまざまな標準入出力(IO)チャネル(Infiniband(商標)通信リンクの一部として提供されているチャネルなど)とその他のメカニズムを使用することにより、特定のマザーボードまたは類似したパッケージングの配置で収容できる計算用リソースだけでなく、追加の計算用リソースを連結することができる。
図1に示すブリッジアーキテクチャでは、各プロセッサ(104、114)には独自のメモリー(110、120)が搭載されており、独自のIO機能を搭載することもできる。これは、各プロセッサがこれらのリソースを共有した場合、ソフトウェアおよびパフォーマンスに関する問題が発生する可能性があることを意味する。特定のプロセッサ(例えばプロセッサ104)が、別のプロセッサのメモリー(例えばメモリー120)のデータを必要とする場合、第1のプロセッサ(104)は、自分が必要とするデータを要求する要求メッセージを生成して第2のプロセッサ(114)に送信し、第2のプロセッサ(114)が現在の処理を停止してこの要求を処理し、第1のプロセッサ(104)に応答するまで待機しなければならない。この場合、大幅にパフォーマンスが低下する可能性がある。これは、必要なデータが戻されるのを待機する時間的なロスの結果として、計算オーバーヘッドに直接影響するソフトウェアオーバーヘッドが発生するためである。
図2に示す共有バスアーキテクチャでは、グループの一部を適切に形成できるプロセッサの数は制限されている。これは、バスを構成するための電力の問題も関係しているが、さらに大きな要因として、接続されているプロセッサに対して適切なサービスを提供するための要件の一部であるメモリーサイズと帯域幅とに制限が存在するためである。多くの場合、共有バスシステムは自己制御的であるため、より大規模なシステムに対応する場合に、ネットワークまたはIOチャネルの相互接続の使用頻度が高くなることが多い。この場合、ブリッジアーキテクチャについて前述したものと同じロスおよび問題が再び発生することになる。
一部の実施形態では、分散システムを構成するマルチプロセッサのサポートに使用されるネットワーク構造とメモリーとを組み合わせることにより、システム構成の新しい方法を想定することができる。これが実現できれば、システムのパフォーマンスを改善し、データ共有をより簡単かつ迅速に実行できるようになる。要求されたデータがネットワーク内のどこに存在するかに関わらず、ネットワーク要求を使用してデータにアクセスできる。一部の実施形態では、図3に示すものと類似した相互接続を使用するメモリーシステムを構築することができる。
図3は、さまざまな実施形態による、メモリーシステム300用のネットワークアーキテクチャの概略的なブロック図であり、専用プロセッサ(322、324、326、328)に連結され、相互に接続されたネットワークノード(302、304、306、308)を示している。この図では2次元のメッシュネットワークを示しているが、この概念は3次元以上の多次元(ハイパーキューブなど)、トーラス構造などにも容易に拡張することができる。システム要件と、ネットワークノードロジックでサポート可能な複雑さのレベルとによっては、その他の種類のネットワークアーキテクチャ(Closネットワークの変形など)も使用することができる。
一部の実施形態において、図3に示す各プロセッサは、単一のパッケージまたはダイの内部に複数のプロセッサ(マルチコアプロセッサまたは多コアプロセッサ)を含めることも、単一のネットワークノード(302、304、306、および308など)に接続する複数の独立したプロセッサを含めることもできる。一部の実施形態において、各プロセッサ(323、325、327、および329)にはメモリー(312、314、316、および318)が付属する。この配置により、特定のプロセッサによって実行された計算の中間値のローカルストレージが提供される。これらの中間値は、メモリーシステム300の他の部分に位置するプロセッサでは使用できない。ただし、これらのプロセッサの一部が、さまざまなメモリー(312、314、316、および318)間に分散されたデータへのアクセスを要求した場合、メモリー参照スキームを使用した結果として、データ管理に関するさまざまな問題が発生する可能性がある。図3に示すアーキテクチャは、さまざまな実施形態において、本明細書で開示する他のメモリーシステムおよびアーキテクチャとともに使用することができる。
本明細書で説明する分散型メモリーネットワークを使用する多くの潜在的な利点の1つは、すべてのメモリーを、ネットワーク内の単一のアドレスセットとして認識できるということである。これにより、データにアクセスする場合に、あるプロセッサから別のプロセッサに対して要求メッセージを作成する必要がなくなる。このメモリー構造では、メモリー待ち時間(アクセス時間)が不均一になるため、ジョブおよびデータ管理ソフトウェアにより、データを使用するプロセッサの近くに対象のデータを保持するというパフォーマンス上の利点が発生する可能性がある。また、データをプロセッサの近くに保持しないことによる影響は、図1に示すネットワークメモリー構造の場合よりも小さい。これは、データを送受信するためのメッセージの受け渡しが必要ないためである。
マルチコアプロセッサの集積回路(IC)を使用した場合、パフォーマンス上の問題が発生する場合がある。1つのIC内のコアの数が増加するにつれて、実際の配置も図2に示すバスアーキテクチャにますます類似したものになる。この場合、帯域幅が共有され、かつ、コアおよびスレッドの数が増加するにつれて、1つのコアまたはスレッドあたりの使用可能な帯域幅の割合が減少する可能性がある。
図4は、さまざまな実施形態による、メモリーシステム400用のネットワークアーキテクチャの概略的なブロック図であり、プロセッサを共有し、相互に接続されたネットワークノードを示している。メモリーシステム400には、ネットワークノード(412、414、416、418、422、424、426、428、432、434、436、438、442、444、446、448)、メモリー(413、415、417、419、423、425、427、429、433、435、437、439、443、445、447、449)、およびプロセッサ(410、420、430、440)が含まれる。
図4に示すように、メモリー413はネットワークノード412に連結され、メモリー415はネットワークノード414に連結され、かつ、メモリー417はネットワークノード416に連結され、メモリー419はネットワークノード418に連結される。プロセッサ410はネットワークノード412、414、416、および418に連結される。
メモリー423はネットワークノード422に連結され、メモリー425はネットワークノード424に連結され、メモリー427はネットワークノード426に連結され、かつ、メモリー429はネットワークノード428に連結される。プロセッサ420はネットワークノード422、424、426、および428に連結される。
メモリー433はネットワークノード432に連結され、メモリー435はネットワークノード434に連結され、メモリー437はネットワークノード436に連結され、かつ、メモリー439はネットワークノード438に連結される。プロセッサ430はネットワークノード432、434、436、および438に連結される。
メモリー443はネットワークノード442に連結され、メモリー445はネットワークノード444に連結され、メモリー447はネットワークノード446に連結され、かつ、メモリー449はネットワークノード448に連結される。プロセッサ440はネットワークノード442、444、446、および448に連結される。
一部の実施形態では、複数のパスを持つプロセッサのネットワーク相互接続に対して高速のシリアルインターフェースが提供され、各インターフェースは、すべてを並列的に実行できる大量の帯域幅を持つ。これは、各プロセッサパッケージを複数のネットワークノードに接続できることを意味する。これにより、メモリーの並列アクセスが可能になり、現在使用可能な多くの他の構成に対する利点を増大させるメモリー/ネットワーク構造が可能になる。
一部の実施形態では、図4に示すメモリーネットワークは、トーラス構造などを持つ多次元のネットワークにすることができる。各プロセッサ(410、420、430、および440)は、図3に示すメモリーおよびネットワークノードの帯域幅の倍数分の帯域幅を持つことができる。一部の実施形態では、3次元(3D)のネットワーク相互接続が使用可能な場合、図4に示すように各プロセッサをネットワークノードに接続したままにしたり(結果として、さまざまな空間的平面または次元を接続用に使用できる)、2つ以上の空間的平面または次元において1つ以上のプロセッサをネットワークノードに接続することができる。多次元を有するネットワーク構造(Closネットワークのように、複数の送信元と受信先が存在する場合など)を開発する場合の懸念の1つは、開発されたネットワークロジックが非常に複雑なものになり、場合によっては、各ネットワークノードを経由するパスの数の二乗に比例して増加する可能性があるということである。
この設計を簡素化するための方法の1つは、各プロセッサ(410、420、430、および440)を発信元とすることができる複数のパスを利用し、さまざまな物理的次元(X,Y,Z次元など)に沿って各パスを個別のメモリーネットワークに向かわせる方法である。一部の実施形態では、各プロセッサ(410、420、430、および440)が3つのネットワークメモリーのパスを持っている場合、3つの異なる2次元(2D)メッシュネットワークが存在することができ、1つの3Dネットワークではなく、それぞれの次元についてネットワークが1つずつ存在することになる。この配置によって、より小規模な2Dネットワークを実現することができる。このネットワークでは、サイズが大幅に減少し、各ネットワークノード内のロジックを介して、より少数のパスが使用されることになる。
図5は、さまざまな実施形態による、メモリーシステム500用のネットワークアーキテクチャの概略的なブロック図であり、プロセッサを共有し、さまざまな幾何学的平面に配置されたネットワークノードを示している。図5は、プロセッサ(510、512、514、および516)を経由して相互接続され、2Dネットワークを形成する一連の1次元ネットワークを示している。図5に示す各ネットワークノードは、ネットワーク用に最大2つの接続を持ち、それぞれのネットワークノードは、メモリーおよびプロセッサと共に各ネットワーク次元について2つの接続を処理するのではなく、1つの次元と、ローカルメモリーおよびプロセッサの接続だけを処理する。1つの実施形態では、メモリーシステム500には統合パッケージ501が含まれ、このパッケージにはネットワークノード502およびメモリー503が含まれる。
図5に示すメモリーネットワークは、図3および図4に示すネットワークと同程度の規模になり、任意の指定されたネットワークサイズに合わせて構築することができる。一部の実施形態では、多数の次元を持つメモリーネットワークは、それぞれの追加の次元用のパスを各プロセッサから追加することにより、適切に構成することができる。この実装については、これ以降で詳しく説明する。
一部の実施形態では、複雑なネットワーク構造を構築して、ネットワーク内の異なるポイントに接続するマルチプロセッサチップを使用することができる。たとえば、プロセッサ510をネットワークノード502(X11)とネットワークノード518(Y11)とに接続し、プロセッサ512をネットワークノード504(X12)とネットワークノード520(Y21)とに接続する場合が考えられる。一部の実施形態では、このようなネットワークの特性の1つは、ネットワーク通信およびデータがプロセッサ(510、512、514、および516)を経由してデータを取得する可能性があるということである。取得されたデータは、メモリーネットワーク上に分散することができる。
たとえば、メモリー503およびメモリー519(それぞれ、ネットワークノード502(X11)518(Y11)とに連結)のメモリーデータに直接アクセスするプロセッサA(510)がメモリー505(ネットワークノード504(X12)に連結)のデータを必要とする場合、要求シグナルがX11からX12を経由して転送され、この要求シグナルが対象のデータにアクセスした後、要求パスを反転することによって対象データを返す。ただし、ネットワークノード524(Y22)からのデータが必要な場合は、
プロセッサA(510)→X11→X12→プロセッサB(512)→Y21→Y22というパスを経由して要求が送信される可能性がある。
一部の実施形態では、必要なデータが要求元プロセッサと同じXパスまたはYパス上に存在しない場合、別のプロセッサを経由して要求(および応答)を送信することができる。単純に要求および応答を渡すように設計されたプロセッサが存在するこの配置は、通常、プロセッサのパフォーマンスを向上させたり、システムの所要電力を減少させたり、パッケージングを簡素化したりするための効率的な手段ではない。
一部の実施形態では、アーキテクチャを変更して、同じプロセッサ(同じプロセッサコアなど)に接続されたネットワークノードのペアに、これらのペア間のネットワークリンクを含めることもできる。これにより、「ホップ」パスが提供される。その結果は、図6と類似したものになる。
図6は、さまざまな実施形態による、メモリーシステム600用のネットワークアーキテクチャの概略的なブロック図であり、プロセッサを共有し、相互に接続された、異なる幾何学的平面に配置されたネットワークノードを示している。図6には、各ネットワークノードに接続されたメモリーは示していないが、これらのメモリーは存在することが理解される必要がある。同様に、図6に示す配置は、考えられる多くの配置の一例にすぎない。
一部の実施形態では、メモリーシステム600には統合パッケージ609が含まれ、このパッケージにはネットワークノード622およびプロセッサ602が含まれる。実施形態の1つの例では、ネットワークノード622には左ポート601、右ポート603、およびホップポート605が含まれる。図6に示す構成では、ネットワークノード(622、624、632、634、642、644、652、654、662、664、672、および674)に特別なリンクが追加されているため、プロセッサ602から612までのルーティングネットワークトラフィックが回避される。図6の各ネットワークノード(ネットワークノード622など)には3つのポート(左ポート601、右ポート603、ホップポート605など)があり、これらのポートを使用して他のネットワークノードおよびポート(607など)に連結し、さらにはプロセッサ(プロセッサA(602)など)に連結する。左ポート、右ポートという用語は、ノード上の任意の特定の物理的な場所を指すものではなく、単にデバイス上の2つのポートのいずれかを示すための用語である。こうしたネットワークを使用する場合、任意のプロセッサ(602、604、606、608、610、および612)からの要求は、そのプロセッサに接続されている、対応するいずれかのネットワークノードによって受信することができる。最小限の長さのパスであっても、最後のルーティング次元が、ネットワークノードの配置に対応する次元内に存在しなければならないという追加のルールを使用することにより、マンハッタンルーティングスキームに従うことができる。たとえば、プロセッサA(602)がネットワークノード654(Y32)からデータを取得する必要がある場合、要求のパスは
X11→X12→X13→Y31→Y32
などのようになる。
一部の実施形態では、代わりにネットワークノード652(X23)からのデータが必要な場合、パスは
Y11→Y12→X21→X22→X23
などのようになる。
一部の実施形態では、プロセッサによって要求がネットワークに挿入された場合、別の次元に対応する正しいアドレスに要求が到達するまで、挿入された次元内のノードをメッセージが横断する。一部の実施形態では、データがノード内に存在しない場合、要求が正しいノードに到達するまで、ノードペア内の他のノードに対する「ホップ」パスに要求が自動的に送信され、さらに別の次元内のネットワークパスに送信される。たとえば、ネットワークノードX23に接続されたメモリーのデータがネットワークノードX11で要求された場合、ホップポート605が使用される。
図6に示す構成には、ノードグループ692に連結されたノードグループ690が含まれる。一部の例では、ノードグループ690には、ネットワークノード642、ネットワークノード644、およびプロセッサ606が含まれる。一部の例では、ノードグループ692には、ネットワークノード652、ネットワークノード654、およびプロセッサ608が含まれる。一部の実施形態では、ネットワークノード642は第1のメモリー(図6には示されていない)に連結され、ネットワークノード652は第2のメモリー(図6には示されていない)に連結される。ネットワークノード642および652のそれぞれには、プロセッサ606および608への連結に使用されるプロセッサポートのほかに、左ポート、右ポート、およびホップポートが含まれる。
一部の実施形態では、メモリーシステム600には、xパス内に配置されるネットワークノード622が含まれ、このネットワークノード622には、第1のxパスのポート(601)、第2のxパスのポート(603)、ホップパスのポート(605)、およびプロセッサ602に連結するプロセッサポートが含まれる。一部の実施形態では、メモリーシステム600には、yパス内に配置されるネットワークノード(624)が含まれ、このネットワークノード624には、第1のyパスのポート、第2のyパスのポート、プロセッサポート、およびホップパスのポートが含まれる。一部の実施形態では、メモリーシステム600には、zパス内に配置される第3のネットワークノードが含まれ、この第3のネットワークノードには、第1のzパスのポート、第2のzパスのポート、プロセッサポート、および2つのホップパスのポートが含まれる。
図7は、さまざまな実施形態による、3次元のメモリーシステムの概略的なブロック図であり、相互に接続され、かつ、プロセッサ702に連結されたネットワークノード(704、706、および708)を持つノードグループ700を示している。プロセッサ702は、プロセッサリンク705を使用するパスに沿って、ネットワークノード704(Xパス内に配置)に連結される。プロセッサ702は、プロセッサリンク703を使用するパスに沿って、ネットワークノード708(Yパス内に配置)に連結される。プロセッサ702は、プロセッサリンク707を使用するパスに沿って、ネットワークノード706(Zパス内に配置)に連結される。
したがって、図6に示すアーキテクチャを3次元に拡張した場合、その結果は、単一のネットワークグループを示す図7に類似したものになる。同様に、追加された各ネットワーク次元に対して追加のプロセッサパスを使用することにより、この概念をさらに拡張して、たとえば4次元のネットワークを構成することもできる。この方法により、N次元のネットワークを構成することができる。
大部分の多次元ネットワークにおいて、ホップパスを取得してネットワークの次元を変更する場合、ノードグループ内の次のノードコンポーネントに対する1つのホップのみ取得することができる。このアクティビティによって要求が分散され、パスの競合およびネットワーク上の負荷が最小化される。Xパス内のノードからYパス内のノードに要求が送信され、最終的な目的ノードがY次元内に存在しない場合、この要求は次の次元であるZ次元に転送することができる。
図8は、さまざまな実施形態による、メモリーシステム800の概略的なブロック図である。このメモリーシステムは、多次元メモリーネットワーク内のメモリーからデータを復元して、ネットワーク障害の復旧を可能にする。メモリーシステム800には、プロセッサ802、ネットワークノード(804、806、808、および810)、およびホップパス812が含まれる。プロセッサ802は、ネットワークノード804、806、808、および810に連結される。ネットワークノード804、806、808、および810は、パス815、817、819、および821に接続される。これらのパスは、他のネットワークノードに接続することもできる。ネットワークノード804はWパス(814、815)内に配置され、ネットワークノード806はXパス(816、817)内に配置され、ネットワークノード808はYパス(818、819)内に配置され、ネットワークノード810はZパス(820、821)内に配置される。一部の実施形態では、プロセッサ802には、2つ以上の組み込みプロセッサを持つ基板が含まれる。
図8に示すネットワーク構造の場合、多次元ネットワーク内の各ノードは、1つのネットワーク次元だけを処理するように設計されたコンポーネントを持つことができるため、結果として構築されるネットワーク構造は高い回復力を持つことになる。図6に戻り、ネットワークノード644(Y31)に接続されたメモリーのデータをプロセッサDで取得する必要がある場合、通常は、プロセッサD→X21→X22→X23→Y32→Y31というパスを経由して要求が渡される。ただし、X22とX23との間のパスが停止している場合(X23全体で障害が発生している場合など)、目的のパスを取得できないノード(X22など)に要求が到達すると、ローカルのロジックは、優先次元(X次元)を次のネットワークホップでは使用すべきではないことを通知する情報が含まれたフラグと共に、この要求を単純にホップパス(812など)に送信する。一部の実施形態では、このフラグは、これ以降の要求で使用する新しい最短のパスを決定するための情報を、プロセッサ802に提供する。その結果、X22はY22に要求を送信できるようになる。リルーティングされてY22に到達した要求は、次にY21に送信される。その後、この要求はY21→X12→X13→Y31というパスで渡される。
別の例では、X22とX23との間のパスではなく、X23とY32との間のホップパスで障害が発生したものと仮定する。この場合、X23に到達した要求は、次のホップでは優先次元を使用すべきではないことを示すフラグと共に、X24(図示していない)に送信される。次に、この要求はY次元内に送信され、さらにいくつかのホップの後でY31に到達する。
最後のネットワーク次元に沿って、ネットワーク内でリンクの切断が発生する場合もある。たとえば、プロセッサDがX23からのデータを必要とし、X21からX22へのリンクが停止している場合を考えてみる。ノードX21は、非優先次元内のルーティングを最初に指定するフラグを生成すると共に、目的のパスが停止している場合はホップパスを取得するという直前のルールを使用して、要求をY12に送信する。Y12は、Yネットワークへの距離がゼロであることを認識する。その結果、Y12は要求をY11またはY13(図示していない)に送信することができる。Y11が送信先として選択されたと仮定した場合、要求はY11に送信され、Y11はこの要求をY11→X11→X12→Y21→Y22→X22→X23というパスに沿って送信する。ネットワークノードX22が停止している場合、このパスはY22からX22へのリンクにおいて切断される。この場合、要求はY23(図示していない)に送信され、いくつかのホップの後でX23に到達する。この動作が発生するのは、X23に近いノードまたはX23で、X次元に戻るための別のルートをこの要求が見つける必要があるためである。
図9は、さまざまな実施形態による、多次元メモリーシステム内のデータのルーティング方法900を記述したフローチャートである。以下に示すように、さまざまなネットワークルーティングルールに従って、本明細書で説明する多次元メモリーネットワーク内のメモリーにアクセスすることができる。本明細書で説明する実施形態において「インデックス」は、特定の次元(X、Y、またはZ次元など)内のノードの場所を表す。ノードの特定に使用されるインデックスの数には、以下のものがある。
ブロック902では、方法900には、目的のネットワークノードに連結された第1のメモリーにアクセスするための要求の生成が含まれる。
ブロック904では、方法900には、発信元ネットワークノードへの要求の送信が含まれる。この要求には、次元の数に対応するインデックスの数が含まれる。
ブロック906では、方法900には、第1の次元に関連する第1のインデックスが要求に含まれているかどうかについての、発信元ネットワークノードでの判断が含まれる。
ブロック908では、方法900には、第1のインデックスが要求に含まれている場合に、第1の次元に沿って第1のネットワークノードに要求を送信する処理が含まれる。
ブロック910では、方法900には、第2の次元に関連する第2のインデックスが要求に含まれている場合に、ホップパスに要求を転送する処理が含まれる。
一部の実施形態では、障害が発生しているネットワークコンポーネントおよびパスを回避して自動的に要求をルーティングすることにより、単純なルールでネットワークの回復力を実現することができる。こうしたルールを使用して、各ネットワークノード内でネットワークデータフローを管理することができる。一部の実施形態では、以下に示す1つ以上のルールをルーティングルールに含めることができる。
ルール1:要求をネットワークの特定の次元(Xパス、Yパス、Zパス、またはWパス経由など)で渡す必要があることが要求内で指定されている場合、その次元内の次のノードに要求を送信する。
ルール2:ネットワーク次元の正しいノード位置に要求が存在するが(要求がX次元に沿って渡され、かつ、目的のノードに対応するYインデックスに到達した場合など)、目的の場所にはまだ到達していない場合、ローカルのホップパスに要求を送信する。
ルール3:現在のネットワークパスの次元内で処理を進めることが望ましいが、この次元内で要求を処理できない場合は(パスでエラーや障害が発生した場合など)、要求をホップパスに送信し、非優先ディメンション内の送信元ノード/ルートへの戻りを禁止するフラグを設定する。
ルール4:要求でホップパスが使用されているが、目的の次元内に存在するノードに進むことができないことが検出された場合、単純に要求を次のノードに送信し、非優先の次元を使用している送信元ノード/ルートへの任意の戻りを禁止するフラグを設定する。
ルール5:メモリー要求を作成する場合、指定された順序において最後の次元となる、目的ノードのアドレスの次元を使用して、特定の次元順にネットワーク内を横断する。したがって、たとえばY21に連結されているメモリーにアクセスする場合、X→Y→Zの順に次元が選択される3Dネットワークでは、要求元プロセッサに対するローカルのZノードに送信された要求は、Z→X→Yの順に送信される。この場合、ネットワークコンポーネントにわたって要求が分散され、要求内のパスホップの数が最小限になる可能性がある。
ルール6:要求に対する応答は、要求と同じ戻りパスだけには限定されず、逆の順序で応答を返すこともできる。これは、ネットワーク内に応答を分散する場合に役立つ。
一部の実施形態では、ネットワークノードはこれらのネットワークの分散エンティティになるため、ノードコンポーネントの損失が発生しても、障害が発生したノードにわたってすべての通信が停止することはなく、障害が発生したコンポーネントのネットワーク次元に対応するパスに沿って停止するだけである。以下に記述するように、こうした障害の回避は管理することができる。
一部の実施形態では、1種類のネットワークノードを使用して、ほとんどの次元および規模のネットワークを構築することができる。ネットワークの次元が高くなるほど、ネットワーク待ち時間が短くなり、かつ、低い次元のネットワークと比較して、双方向帯域幅が高くなる可能性がある。いずれの場合も、1種類のネットワークメモリーコンポーネントをビルディングブロックとすることができる。
一部の実施形態では、5個以下の双方向ポートだけを含み、そのうちの1つはプロセッサポート専用になるように、各ネットワークノードコンポーネントを簡素化することができる。一部の実施形態では、システムメモリーを各ネットワークコンポーネント内に含めることができる。これにより、ネットワークプロセッサの数とプロセッサの能力とに関わらず、ネットワークがどのように構築および構成されているかに従って、システムメモリーの規模がネットワークに対応したものになる。ネットワークエラーからの復旧も、簡素化および自動化することができる。
高次元ネットワーク用に各プロセッサICに接続された複数のネットワーク/メモリーノードを使用すると、より高いローカルメモリー帯域幅およびメモリーの平均待ち時間の減少を実現するための、メモリーおよびネットワークアクセスのより高レベルの並行性をプロセッサに提供することができる。計画されたネットワークで必要な次元の数よりも多い使用可能なパスがプロセッサに存在する場合、これらのプロセッサは、同じ次元を通過するパスを2つ以上持つことができる。
一部の実施形態では、ノードグループに任意のプロセッサが含まれていない場合、メモリーサイズおよび実装密度を増やす方法の1つとして、システム全体のメモリーを増やすためのネットワークノードを追加する方法がある。これらの追加されたノードにより、不要な処理機能を除外することができる。たとえば、異なる種類のIO機能をサポートするためのネットワークグループを提供することができる。ネットワークノードは、計算用ではなく、IO機能用に最適化または指定することができる。
一部の実施形態では、IOプロセッサまたはその他の種類の特別なプロセッサがいずれかのネットワーク次元を使用する形態で、ネットワークを形成することができる。たとえば、3Dネットワークにおいて、プロセッサの1つのプレーンは、IOとシグナルプロセッサとの組み合わせを含むことができる。この方法により、計算ノード間のデータトラフィックに干渉することなく、データをIOシグナルプレーン内に移動することができる。
一部の実施形態では、本明細書で説明するプロセッサは、1つ以上の処理ユニット(コアなど)を持つ単一の集積回路を含むことができる。複数のプロセッサは各ネットワークノードに接続でき、各ネットワークノードは、メモリーとプロセッサとの間でデータをルーティングする集積回路を含むことができる。プロセッサ、ネットワークノード、およびメモリーは、同じ集積回路パッケージ上に配置することができる。一部の実施形態では、こうしたプロセッサは、シングルコアプロセッサおよびマルチコアプロセッサを含むことができ、またはシングルコアプロセッサおよびマルチコアプロセッサの組み合わせを含むこともできる。一部の実施形態では、特定のノードグループのプロセッサには、マルチコアプロセッサの1つ以上のコアが含まれる。一部の実施形態では、プロセッサには、特定用途向け集積回路(ApplicationSpecific Integrated Circuit:ASIC)が含まれる。
一部の実施形態では、本明細書で説明するネットワークノードにはIOドライバ回路が含まれる。一部の実施形態では、ネットワークノードおよびメモリーは、単一のパッケージ内に配置される。一部の実施形態では、ネットワークノード、メモリー、およびプロセッサは、単一のパッケージ内に配置される。一部の実施形態では、ネットワークノードは、メモリーとプロセッサとの間のデータ通信中にエラー検出訂正(ErrorCheck and Correction:ECC)機能を実行するように構成される。ネットワークノードは、メモリーとプロセッサとの間のデータをメモリーネットワークにわたってルーティングするためのルーターを含むことができる。一部の実施形態では、ネットワークノードには、ルーティング要素の数を保持するインターフェースデバイスが含まれる。
一部の実施形態では、本明細書で説明するメモリーには、ダイナミックランダムアクセスメモリー(DynamicRandom Access Memory:DRAM)アレイが含まれる。一部の実施形態では、本明細書で説明するメモリーには、NANDフラッシュメモリーアレイが含まれる。一部の実施形態では、本明細書で説明するメモリーには、NORフラッシュメモリーアレイが含まれる。一部の実施形態では、ネットワークの次元に比例してメモリーサイズを設定することができる。ローカルメモリーの帯域幅についても、ネットワークの次元に比例して設定することができる。
ここまで、さまざまな実施形態を例示して説明してきたが、すでに述べているように、本開示から逸脱することなく変更を行うことができる。本明細書の一部を構成する添付図面は、開示対象を実施し得るさまざまな実施形態を、限定目的ではなく説明目的として示すものである。例示された実施形態は、本明細書で開示された教示を当業者が実施可能な程度に詳細に記述されている。他の実施形態についても、これらの実施形態から使用および取得することができる。したがって、本明細書の「発明を実施するための形態」は、限定的な意味で解釈されるべきではない。
本明細書では具体的な実施形態を例示して説明してきたが、同じ目的を達成するために計算された配置は、本明細書で示したさまざまな実施形態の代替となり得ることが理解されよう。さらに、さまざまな実施形態で冗長シグナル転送システムを説明したが、これらのさまざまな実施形態は、変更を行うことなく、さまざまな既知の電子システムおよび電子デバイスに導入できることも理解されたい。本開示は、さまざまな実施形態のすべての適応または変形を対象としている。本明細書で説明している実施形態と、本明細書で具体的には説明していないその他の実施形態の組み合わせについても、当業者にとっては、本明細書の説明を読むことにより明らかとなるであろう。
本明細書の「要約書」は、技術的開示の特質を読者が迅速に確認するための要約を義務付ける、米国特許法施行規則「37C.F.R. 1.72(b)」に準拠して記述されている。この要約書は、請求項の意味を解釈または制限するために使用されるものではないという理解のもとに提出される。また、前述の「発明を実施するための形態」では、本開示を簡素化する目的で、さまざまな特徴を単一の実施形態にまとめている場合もある。この開示方法は、請求対象の実施形態は各請求項で明示的に列挙されるよりも多くの特徴を必要とする意図を反映すると解釈されるものではない。むしろ、添付の請求項で示すように、本発明の主題は、開示された単一の実施形態のすべての特徴よりも少ない特徴を備える。したがって、添付の請求項は、本明細書の「発明を実施するための形態」に組み込まれ、各請求項は個別の好ましい実施形態として有効である。

Claims (22)

  1. 複数のネットワークノードグループを備える分散型メモリーネットワークを含むシステムであって、
    それぞれの前記ネットワークノードグループは、
    第1のxパスのポート、第2のxパスのポート、第1のプロセッサポート、第1のホップパスのポート、および第2のホップパスのポートが含まれる、xパス内に配置された第1のネットワークノードと、
    第1のyパスのポート、第2のyパスのポート、第2のプロセッサポート、および第3のホップパスのポートおよび第4のホップパスのポートを含む、yパス内に配置された第2のネットワークノードと、
    第1のzパスのポート、第2のzパスのポート、第3のプロセッサポート、ならびに第5のホップパスのポートおよび第6のホップパスのポートを含む、zパス内に配置された第3のネットワークノードと、
    前記第1のプロセッサポートを使用して前記第1のネットワークノードに連結され、前記第2のプロセッサポートを使用して前記第2のネットワークノードに連結され、前記第3のプロセッサポートを使用して前記第3のネットワークノードに連結されたプロセッサと、を備え、
    前記第1のネットワークノードが第1のメモリーに連結され、前記第2のネットワークノードが第2のメモリーに連結され、前記第3のネットワークノードが第3のメモリーに連結され、前記第1のホップパスのポートおよび前記第2のホップパスのポートの少なくとも1つが、前記3番目、4番目、5番目、および第6のホップパスのポートの少なくとも1つに連結され、
    前記xパス、前記yパス、および前記zパスがそれぞれ異なる次元に存在
    前記第1のネットワークノード、前記第2のネットワークノード、前記第3のネットワークノード、および前記プロセッサが、Closネットワークの一部として配置される、システム。
  2. 複数のネットワークノードグループを備える分散型メモリーネットワークを含むシステムであって、
    それぞれの前記ネットワークノードグループは、
    第1のxパスのポート、第2のxパスのポート、第1のプロセッサポート、第1のホップパスのポート、および第2のホップパスのポートが含まれる、xパス内に配置された第1のネットワークノードと、
    第1のyパスのポート、第2のyパスのポート、第2のプロセッサポート、および第3のホップパスのポートおよび第4のホップパスのポートを含む、yパス内に配置された第2のネットワークノードと、
    第1のzパスのポート、第2のzパスのポート、第3のプロセッサポート、ならびに第5のホップパスのポートおよび第6のホップパスのポートを含む、zパス内に配置された第3のネットワークノードと、
    前記第1のプロセッサポートを使用して前記第1のネットワークノードに連結され、前記第2のプロセッサポートを使用して前記第2のネットワークノードに連結され、前記第3のプロセッサポートを使用して前記第3のネットワークノードに連結されたプロセッサと、を備え、
    前記第1のネットワークノードが第1のメモリーに連結され、前記第2のネットワークノードが第2のメモリーに連結され、前記第3のネットワークノードが第3のメモリーに連結され、
    前記第1のホップパスのポートと前記第6のホップパスのポートが双方向通信可能な第1のホップパスによって直接に連結され、
    前記第2のホップパスのポートと、前記第3のホップパスのポートが双方向通信可能な第2のホップパスによって直接に連結され、
    前記xパス、前記yパス、および前記zパスがそれぞれ異なる次元に存在し、
    前記複数のネットワークノードグループのそれぞれが、前記分散型メモリーネットワーク内の場所を表す固有のインデックスを有し、
    前記第1、第2、第3のメモリー内のアドレスは、前記インデックスの情報と、前記第1、第2、第3のメモリーがそれぞれ接続されたネットワークノードが配置されたパスの次元の情報を含んで表され、前記分散型メモリーネットワークの単一のアドレスセットの一部として認識され、他のネットワークノードグループの他のネットワークノードや他のネットワークノードに接続された他のプロセッサから任意にアクセス可能に構成された、システム。
  3. 前記第1の、前記第2の、および前記第3のネットワークノードの少なくとも1つがルーターを含む、請求項1または2に記載のシステム。
  4. 前記xパス、前記yパス、および前記zパスに対応する少なくとも1つの前記ネットワーク次元が、少なくとも1つの入出力プロセッサで使用される、請求項1または2に記載のシステム。
  5. 前記プロセッサが1つ以上のリンクを使用して、前記第1のネットワークノードに連結される、請求項1または2に記載のシステム。
  6. 前記第1のネットワークノードおよび前記プロセッサが単一のパッケージ内に配置される、請求項1または2に記載のシステム。
  7. 前記第1のネットワークノード、前記第2のネットワークノード、前記第3のネットワークノード、および前記プロセッサが複数の2次元のメッシュネットワークの一部として配置される、請求項1または2に記載のシステム。
  8. 前記第1のネットワークノード、前記第2のネットワークノード、前記第3のネットワークノード、および前記プロセッサがハイパーキューブネットワークの一部として配置される、請求項に記載のシステム。
  9. 前記第1のネットワークノード、前記第2のネットワークノード、前記第3のネットワークノード、および前記プロセッサがトーラス構造のネットワークの一部として配置される、請求項1または2に記載のシステム。
  10. 前記第1のネットワークノード、前記第2のネットワークノード、前記第3のネットワークノード、および前記プロセッサがClosネットワークの一部として配置される、請求項に記載のシステム。
  11. 複数のネットワークノードを含む多次元のネットワークにおける要求のルーティングの方法であって、
    前記要求は、目的のネットワークノードの場所を表す、各次元に対応するインデックスと前記目的のネットワークノードが配置された次元の情報を備え、
    第1の次元に存在する第1のネットワークノードは、前記第1の次元に沿って双方向通信を可能とする第1のポート及び第2のポート、他の次元との双方向の通信を可能とする第1のホップポートを含むポート群を備え、
    前記第1のネットワークノードは、前記ポート群のうちの一つのポートから前記要求を受信し、
    前記目的のネットワークノードの前記第1の次元のインデックスと、前記第1のネットワークノードの前記第1の次元のインデックスの距離がゼロであって、かつ前記第1のネットワークノードが前記目的のネットワークノードではない場合、
    前記ポート群のうち、前記第1のホップポートを最高優先とし、前記要求を受信したポートを最低優先とし、使用すべきでないポートを通知する情報を加味して前記ポート群のうちから一つのポートを選択し、前記選択したポートから前記要求を送信し、
    前記目的のネットワークノードの前記第1の次元のインデックスと前記第1のネットワークノードの前記第1の次元のインデックスの距離がゼロではない場合、
    前記ポート群のうち、前記第1のポート及び前記第2のポートのうち、前記目的のネットワークノードの前記第1の次元のインデックスと、前記第1のネットワークノードに前記第1の次元に沿って隣接する次のネットワークノードの前記第1の次元のインデックスとの距離が最も小さくなるポートを最高優先とし、前記要求を受信したポートを最低優先とし、使用すべきでないポートを通知する情報を加味して前記ポート群のうちから一つのポートを選択し、前記選択したポートから前記要求を送信する、
    ことを含む、方法。
  12. 前記第1のネットワークノードが前記第1のホップポートから前記要求の送信を試み、かつ、他の次元へ前記要求を送信することができない場合に、前記要求を前記第1の次元に沿って送信する、請求項11に記載の方法。
  13. 前記第1のネットワークノードに戻るべきではないことを示す第1のフラグを前記要求に設定することをさらに備える、請求項12に記載の方法。
  14. 以前に使用したルートに戻るべきではないことを示す第2のフラグを前記要求に設定することをさらに備える、請求項12に記載の方法。
  15. 前記要求が前記ネットワークの前記第1の次元内を移動する必要があることが前記要求内で指定されている場合、前記前記第1の次元に沿って前記要求を送信する、請求項12に記載の方法。
  16. 前記第1のネットワークノードが前記第1の次元に沿って前記要求の送信を試み、かつ、前記第1の次元に沿って前記要求を送信することができない場合に、前記要求を前記第1のホップポートから送信する請求項11に記載の方法。
  17. 前記第1のネットワークノードに戻るべきではないことを示す第1のフラグを前記要求に設定することをさらに備える、請求項16に記載の方法。
  18. 以前に使用したルートに戻るべきではないことを示す第2のフラグを前記要求に設定することをさらに備える、請求項16に記載の方法。
  19. 前記複数のネットワークノードグループのそれぞれが、前記分散型メモリーネットワーク内の場所を表す固有のインデックスを有し、
    前記第1、第2、第3のメモリー内のアドレスは、前記インデックスの情報と、前記第1、第2、第3のメモリーがそれぞれ接続されたネットワークノードが配置されたパスの次元の情報を含んで表され、前記分散型メモリーネットワークの単一のアドレスセットの一部として認識され、他のネットワークノードグループの他のネットワークノードや他のネットワークノードに接続された他のプロセッサから任意にアクセス可能に構成された、請求項1に記載のシステム。
  20. プロセッサ独自のメモリーが前記プロセッサに連結されている、請求項1または2記載のシステム。
  21. 前記第5のホップパスのポートと前記第4のホップパスのポートが双方向通信可能な第3のホップパスによって直接に連結される、請求項2記載のシステム。
  22. 第1のwパスのポート、第2のwパスのポート、第4のプロセッサポート、ならびに第7のホップパスのポートおよび第8のホップパスのポートを含む、wパス内に配置された第4のネットワークノードをさらに備え、
    前記第4のプロセッサポートを使用して前記プロセッサに連結され、
    前記第4のホップパスのポートと前記第7のホップパスのポートが双方向通信可能な第3のホップパスによって直接に連結され、前記第5のホップパスのポートと前記第8のホップパスのポートが双方向通信可能な第4のホップパスによって直接に連結される、請求項2記載のシステム。
JP2014105756A 2009-02-19 2014-05-22 メモリーネットワークシステムおよび方法 Active JP5877872B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/389,200 US8549092B2 (en) 2009-02-19 2009-02-19 Memory network methods, apparatus, and systems
US12/389,200 2009-02-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011551219A Division JP5630664B2 (ja) 2009-02-19 2010-02-18 メモリーネットワークの方法、装置、およびシステム

Publications (2)

Publication Number Publication Date
JP2014157628A JP2014157628A (ja) 2014-08-28
JP5877872B2 true JP5877872B2 (ja) 2016-03-08

Family

ID=42560865

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011551219A Expired - Fee Related JP5630664B2 (ja) 2009-02-19 2010-02-18 メモリーネットワークの方法、装置、およびシステム
JP2014105756A Active JP5877872B2 (ja) 2009-02-19 2014-05-22 メモリーネットワークシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011551219A Expired - Fee Related JP5630664B2 (ja) 2009-02-19 2010-02-18 メモリーネットワークの方法、装置、およびシステム

Country Status (7)

Country Link
US (3) US8549092B2 (ja)
EP (1) EP2399201B1 (ja)
JP (2) JP5630664B2 (ja)
KR (1) KR101549287B1 (ja)
CN (1) CN102326159B (ja)
TW (1) TWI482454B (ja)
WO (1) WO2010096569A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549092B2 (en) 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
EP2738948A1 (en) * 2012-11-28 2014-06-04 Sercel Method for setting frequency channels in a multi-hop wireless mesh network.
US9258191B2 (en) 2012-12-13 2016-02-09 Microsoft Technology Licensing, Llc Direct network having plural distributed connections to each resource
JP5985403B2 (ja) 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
JP6005533B2 (ja) 2013-01-17 2016-10-12 株式会社東芝 記憶装置および記憶方法
US10089043B2 (en) 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
EP2992436A4 (en) * 2013-04-30 2018-04-04 Hewlett-Packard Enterprise Development LP Memory network to route memory traffic and i/o traffic
US9779138B2 (en) 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
JP5931816B2 (ja) 2013-08-22 2016-06-08 株式会社東芝 ストレージ装置
JP5902137B2 (ja) 2013-09-24 2016-04-13 株式会社東芝 ストレージシステム
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
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US9645760B2 (en) 2015-01-29 2017-05-09 Kabushiki Kaisha Toshiba Storage system and control method thereof
JP6313237B2 (ja) * 2015-02-04 2018-04-18 東芝メモリ株式会社 ストレージシステム
WO2016173611A1 (en) * 2015-04-27 2016-11-03 Hewlett-Packard Development Company, L P Memory systems
KR101797929B1 (ko) 2015-08-26 2017-11-15 서경대학교 산학협력단 매니코어 플랫폼에서 코어에 프로세스를 할당하는 방법 및 코어 프로세스간 통신 방법
KR102665997B1 (ko) 2016-12-20 2024-05-13 에스케이하이닉스 주식회사 패킷을 부호화하는 장치 및 이를 포함하는 메모리 네트워크에서의 라우팅 방법

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3072646B2 (ja) * 1989-03-20 2000-07-31 富士通株式会社 並列計算機間通信制御方式
JPH05181816A (ja) * 1992-01-07 1993-07-23 Hitachi Ltd 並列データ処理装置及びマイクロプロセッサ
JPH0675930A (ja) * 1992-08-27 1994-03-18 Toshiba Corp 並列プロセッサシステム
JP3224963B2 (ja) 1994-08-31 2001-11-05 株式会社東芝 ネットワーク接続装置及びパケット転送方法
JPH09190418A (ja) * 1996-01-12 1997-07-22 Hitachi Ltd ネットワーク制御方法
JP3860257B2 (ja) * 1996-06-28 2006-12-20 富士通株式会社 チャネルの決定方法
US6289021B1 (en) 1997-01-24 2001-09-11 Interactic Holdings, Llc Scaleable low-latency switch for usage in an interconnect structure
US6424659B2 (en) * 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
US7538694B2 (en) * 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
US7104804B2 (en) * 2000-07-03 2006-09-12 Advanced Interconnect Solutions Method and apparatus for memory module circuit interconnection
JP4290320B2 (ja) * 2000-09-28 2009-07-01 富士通株式会社 ルーチング装置
US7299266B2 (en) 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US7788310B2 (en) 2004-07-08 2010-08-31 International Business Machines Corporation Multi-dimensional transform for distributed memory network
US8117288B2 (en) * 2004-10-12 2012-02-14 International Business Machines Corporation Optimizing layout of an application on a massively parallel supercomputer
US7603137B1 (en) * 2005-01-27 2009-10-13 Verizon Corporate Services Group Inc. & BBN Technologies Corp. Hybrid communications link
WO2007050895A2 (en) * 2005-10-27 2007-05-03 Qualcomm Incorporated A method and apparatus for r-ackch subcarrier allocation in a wireless communcation systems
US7725573B2 (en) * 2005-11-29 2010-05-25 Intel Corporation Methods and apparatus for supporting agile run-time network systems via identification and execution of most efficient application code in view of changing network traffic conditions
US8150946B2 (en) * 2006-04-21 2012-04-03 Oracle America, Inc. Proximity-based memory allocation in a distributed memory system
US7836220B2 (en) 2006-08-17 2010-11-16 Apple Inc. Network direct memory access
US8160056B2 (en) * 2006-09-08 2012-04-17 At&T Intellectual Property Ii, Lp Systems, devices, and methods for network routing
KR100801710B1 (ko) * 2006-09-29 2008-02-11 삼성전자주식회사 비휘발성 메모리 장치 및 이 장치를 구비하는 메모리시스템.
JP5078347B2 (ja) * 2006-12-28 2012-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のノードを有するコンピュータ・システムの故障ノードをフェイルオーバー(修復)する方法
US7864792B2 (en) * 2007-04-20 2011-01-04 Cray, Inc. Load balancing for communications within a multiprocessor computer system
US20090019258A1 (en) 2007-07-09 2009-01-15 Shi Justin Y Fault tolerant self-optimizing multi-processor system and method thereof
US7623365B2 (en) 2007-08-29 2009-11-24 Micron Technology, Inc. Memory device interface methods, apparatus, and systems
US8285789B2 (en) * 2007-10-05 2012-10-09 Intel Corporation Flattened butterfly processor interconnect network
US7603428B2 (en) * 2008-02-05 2009-10-13 Raptor Networks Technology, Inc. Software application striping
CN101222346B (zh) * 2008-01-22 2013-04-17 张建中 一种可进行单源组播交互和多源组播交互的方法和装置以及系统
US9229887B2 (en) 2008-02-19 2016-01-05 Micron Technology, Inc. Memory device with network on chip methods, apparatus, and systems
US8019966B2 (en) * 2008-06-09 2011-09-13 International Business Machines Corporation Data sharing utilizing virtual memory having a shared paging space
US8656082B2 (en) * 2008-08-05 2014-02-18 Micron Technology, Inc. Flexible and expandable memory architectures
US20100049942A1 (en) * 2008-08-20 2010-02-25 John Kim Dragonfly processor interconnect network
US20100162265A1 (en) * 2008-12-23 2010-06-24 Marco Heddes System-On-A-Chip Employing A Network Of Nodes That Utilize Logical Channels And Logical Mux Channels For Communicating Messages Therebetween
US8549092B2 (en) 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems

Also Published As

Publication number Publication date
CN102326159A (zh) 2012-01-18
EP2399201A2 (en) 2011-12-28
CN102326159B (zh) 2015-01-21
EP2399201B1 (en) 2014-09-03
JP2012518843A (ja) 2012-08-16
WO2010096569A2 (en) 2010-08-26
EP2399201A4 (en) 2013-07-17
US20180159933A1 (en) 2018-06-07
US20140032701A1 (en) 2014-01-30
WO2010096569A3 (en) 2010-12-16
KR20110123774A (ko) 2011-11-15
US20100211721A1 (en) 2010-08-19
TW201036366A (en) 2010-10-01
JP2014157628A (ja) 2014-08-28
US10681136B2 (en) 2020-06-09
TWI482454B (zh) 2015-04-21
JP5630664B2 (ja) 2014-11-26
KR101549287B1 (ko) 2015-09-01
US8549092B2 (en) 2013-10-01

Similar Documents

Publication Publication Date Title
JP5877872B2 (ja) メモリーネットワークシステムおよび方法
US8819611B2 (en) Asymmetric mesh NoC topologies
US9769077B2 (en) QoS in a system with end-to-end flow control and QoS aware buffer allocation
US10409766B2 (en) Computer subsystem and computer system with composite nodes in an interconnection structure
EP3140748B1 (en) Interconnect systems and methods using hybrid memory cube links
US10554496B2 (en) Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
JP2015535630A (ja) 多層相互接続による分散型プロセッサを有する処理システム
US20140301241A1 (en) Multiple heterogeneous noc layers
US20200192842A1 (en) Memory request chaining on bus
US9594651B2 (en) Parallel computer system and control method for parallel computer system
US20160205042A1 (en) Method and system for transceiving data over on-chip network
US11899583B2 (en) Multi-dimensional cache architecture
US9678905B2 (en) Bus controller, bus control system and network interface
CN117319324A (zh) 计算系统及通信方法
US20130232319A1 (en) Information processing system, routing method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150508

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: 20160105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160126

R150 Certificate of patent or registration of utility model

Ref document number: 5877872

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250