JP6522663B2 - ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法 - Google Patents

ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法 Download PDF

Info

Publication number
JP6522663B2
JP6522663B2 JP2016566810A JP2016566810A JP6522663B2 JP 6522663 B2 JP6522663 B2 JP 6522663B2 JP 2016566810 A JP2016566810 A JP 2016566810A JP 2016566810 A JP2016566810 A JP 2016566810A JP 6522663 B2 JP6522663 B2 JP 6522663B2
Authority
JP
Japan
Prior art keywords
data
data handling
memory
endpoint
link
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
JP2016566810A
Other languages
English (en)
Other versions
JP2017517807A (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 JP2017517807A publication Critical patent/JP2017517807A/ja
Application granted granted Critical
Publication of JP6522663B2 publication Critical patent/JP6522663B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C21/00Digital stores in which the information circulates continuously
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

[優先権主張]
本出願は、2014年5月9日に出願された米国特許出願整理番号14/273,867の“INTERCONNECT SYSTEMS AND METHODS USING HYBRID MEMORY CUBE LINKS”の出願日の利益を享受する権利を主張する。
本開示は、概して、半導体メモリデバイス、処理デバイス、メモリシステムおよび処理システムなどのデバイスの相互接続および関連する方法に関する。より詳細には、本開示は、ハイブリッドメモリキューブリンクを用いるこのようなデバイスおよびシステムの相互接続に関する。
メモリデバイスは、典型的には、コンピュータまたは他の電子デバイスにおける半導体集積回路および/または外部リムーバブルデバイスとして、多くのデータ処理システム内で提供される。とりわけ、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、同期式DRAM(SDRAM)、フラッシュメモリおよび抵抗可変メモリを含む多くの様々な種類のメモリが存在する。
従来のメモリシステムは、デュアル・インライン・メモリモジュール(DIMM)と呼ばれる、プリント回路基板(PCB)上にマウントされたDRAMなどの一つ以上のメモリデバイスで典型的に構成される。メモリシステムは、メモリ制御サブシステムまたは中央処理装置(CPU)またはマイクロプロセッサと通信する。幾つかの構成においては、メモリコントローラは、プロセッサと同一の物理チップに物理的に組み込まれる。他の構成においては、メモリコントローラは、メモリコントローラハブを含む多くの論理コンポーネントのうちの唯一つにすぎないことがある。メモリコントローラハブは、しばしば様々な種類の半導体メモリを用いて、または様々な目的で、完全に分離された、個別のメモリアドレススペースを典型的にサポートする。例えば、メモリコントローラは、グラフィックアプリケーション用のビデオDRAM、ディスクドライブ加速用のフラッシュメモリ、プロセッサのメイン外部メモリとしてのDRAM製品の利用をサポートすることが出来る。
メモリプロトコル、従来のメモリサブシステムアーキテクチャ、スタンダード、プロセッサ特有メモリアクセスモデル、エンドユーザの設定可能性要件、電力制約またはそれらの制限の組み合わせに課される制限は、性能を低下させるように相互作用する傾向があり、その結果、最適ではないメモリサブシステムを生じる。最近、プロセッサとメモリサブシステムとの間のメモリ性能を向上させるために、メモリ制御ハブ(MCH)が提案されている。しかしながら、MCHは、単一のプロセッサに対するメモリサブシステムとして主に規定される。多くの汎用システムアーキテクチャは、複数のプロセッサを含み、各々は、おそらくは、それ自体のメモリドメインを有する。しばしば、これらの複数のプロセッサは、それら自体の間で通信する必要がある。その結果、システム相互接続を向上させるために、プライベートなプロセッサ通信バスが提案されている。
しかしながら、現世代の汎用システム相互接続の仕様は、そのメインメモリが、HMCの仕様で提案されるような高帯域幅デバイスに基づくシステムにおいて、適切なバランスを維持するのに十分な機能性、柔軟性および性能を提供しない。数百ギガバイト/秒のローカルメモリ帯域幅に対するアクセスを維持するシステムアーキテクチャを見つける場合がしばしばあるが、システム相互接続に対して、この帯域幅のうちのほんの一部(1/10のオーダ)しか提供しない。その結果、非常にアンバランスなシステムを生じる。
この現象は、複数の処理ソケット/デバイスの中で分散された実行の複数のスレッド(例えば、タスク)を有するアプリケーションで特に明らかである。コアプロセッサが機能的データキャッシングをサポートする場合、プロセッサソケットの間に存在しなければならないキャッシュコヒーレンシー機構は、システム相互接続における帯域幅よりも大きいオーダの大きさであり得るローカルメモリ帯域幅をサポートしなければならない。その結果、非常にアンバランスなシステムを生じる。
よりバランスのとれたシステム帯域幅を提供し、このような相互接続システムを設計するために必要とされる複雑性を減少もできるような、相互接続システムおよび方法に対するニーズが存在する。
抽象化メモリプロトコルを用いて、メモリバス上で動作するためのデバイスの一例として、ハイブリッドメモリキューブを含むデータ処理システムの図である。 ハイブリッドメモリキューブ内のDRAMの可能な分画を図示する。 ハイブリッドメモリキューブ内のDRAMの論理分画を図示する。 リンクインターフェイスおよびハイブリッドメモリキューブ内のDRAMの制御用の論理ベースを図示する。 本開示の幾つかの実施形態によるデータ取扱デバイス内に存在し得る幾つかの素子を図示する。 様々なデータ取扱デバイスとメモリデバイスとの間のin−situルーティングを用いるシステムの図を図示し、メモリデバイス間のスパースルーティングを示す。 様々なデータ取扱デバイスとメモリデバイスとの間のin−situルーティングを用いるシステムの図を図示し、メモリデバイス間のデンスルーティングを示す。 様々なデータ取扱デバイスとメモリデバイスとの間の専用ルーティングを用いるシステムの図を図示する。 図8の専用ルーティングで、システム内で用いられ得る様々な例示的なトポロジーを図示する。
以下の詳細な説明において、本明細書の一部を形成する添付の図面が参照され、図面内では、例示として、本開示が実施され得る特定の例示的実施形態が示される。これらの実施形態は、本開示を当業者が実施することが可能なほど十分詳細に記述される。しかしながら、他の実施形態も使用することが出来、構造、材料およびプロセスの変更は、本開示の範囲から逸脱することなく行われることが出来る。本明細書に提示された図示は、任意の特定の方法、システム、デバイスまたは構造の実際の外観を意味するものではなく、本開示の実施形態を記述するために使用される単なる理想化された表現に過ぎない。本明細書に提示された図面は、必ずしも同一の縮尺で描かれるとは限らない。様々な図面における類似の構造またはコンポーネントは、読者の簡便のために、同一または類似の番号を維持することがある。しかしながら、番号の類似性は、構造またはコンポーネントが、サイズ、組成、構成または任意の他の特性において必ずしも同一であることを意味するものではない。
素子、回路、モジュールおよび機能は、不必要に詳細にして、本開示を不明瞭にしないように、ブロック図の形式で図示されることがある。さらに、図示され、記述される特定の実装は、単に例示的なものにすぎず、本明細書でそうではないと特定されない限りは、本開示を実現するための唯一の方法として解釈されるべきではない。さらに、様々なブロック間の論理のブロック画定および分画は、特定の実装の例示に過ぎない。本開示は、多くの他の分画方法によって実現できることを当業者は容易に理解するだろう。このような詳細が本開示の完全な理解を得るために必要ではなく、業界における当業者の能力の範囲内である場合に、大部分において、タイミングの考察などに関する詳細などは、省略されることがある。
本明細書で開示された実施形態に関連して記述される様々な例示的論理ブロック、モジュール、回路およびアルゴリズムアクトが、電子ハードウェア、コンピュータソフトウェア、または双方の組み合わせとして実装されてもよいことを当業者は理解するだろう。このハードウェアとソフトウェアとの互換性を明瞭に図示するために、様々な例示的コンポーネント、ブロック、モジュール、回路およびアクトは、これらの機能性の観点から一般的に記述される。このような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、システム全体に課された特定のアプリケーションおよび設計の制約に依存する。当業者は、特定の各アプリケーションのための様々な方法で、記述された機能を実装することが出来るが、このような実装の決定は、本明細書に記述された実施形態の範囲からの逸脱を引き起こすと解釈されるべきではない。
ハードウェアで実装されるとき、本明細書に開示された実施形態は、汎用プロセッサ、専用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理素子、ディスクリートハードウェアコンポーネント、または本明細書に記述された機能を実施するように設計されたその任意の組み合わせで、実装または実施されてもよい。汎用プロセッサは、マイクロプロセッサであってもよいが、代替的には、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。本明細書に記述された実施形態のためにプロセスを実行するためのソフトウェアを実行するとき、汎用プロセッサは、このようなプロセスを実行するために構成された専用プロセッサと考えられるべきである。プロセッサは、また、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと組み合わせられた一つ以上のマイクロプロセッサ、または任意の他のこのような構成として実装されてもよい。
さらに、実施形態は、フローチャート、フロー図、構造図またはブロック図として図示されたプロセスに関して記述されることがあることに留意されたい。フローチャートは、順次的なプロセスとして動作挙動を記述することがあるが、これらの挙動のうちの多くは、別のシーケンスで、パラレルに、または実質的に同時に実施することが出来る。さらに、挙動の順序は再配列されてもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応してもよい。さらに、本明細書に開示された方法は、ハードウェア、ソフトウェア、またはその双方で実装されてもよい。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の一つ以上の命令またはコードとして格納され、または伝送されることが出来る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含むコンピュータ記憶媒体と通信媒体との双方を含む。
情報および信号は、様々な異なる技術および技法のうちの任意のものを用いて表されてもよいことを当業者は理解するだろう。例えば、本記述を通じて参照されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光学場もしくは光子、またはその任意の組み合わせによって表されてもよい。幾つかの図面は、提示と記述を明瞭にするために、単一の信号として複数の信号を図示することがある。信号は、信号を伝送するためのバスを表すことがあり、バスは、様々なビット幅を有することが出来ることを当業者は理解するだろう。
“第一(first)”“第二(second)”などの指定を用いる本明細書の要素に対するあらゆる参照は、その限定が明示的にされていない限りは、これらの要素の量または順序を限定するわけではないことを理解するべきである。むしろ、これらの指定は、二つ以上の要素または要素の例の間で区別する簡便な方法として、本明細書で用いられることがある。したがって、第一および第二の要素に対する参照は、そこで二つの要素だけが使用され得ることや、第一の要素が何らかの形で第二の要素に対して先行しなければならないことを意味するものではない。さらに、そうでないと言及されない限りは、要素の組は、一つ以上の要素を含んでもよい。
本明細書に記述される要素は、同一要素の複数の例を含んでもよい。これらの要素は、数字表示(例えば、110)によって包括的に示されてもよいし、アルファベット表示が後に続く数字表示(例えば、110A)、または、“ダッシュ”によって先行される数字表示(例えば、110−1)によって具体的に示されてもよい。以下の記述を容易にするために、大部分で、要素の番号表示は、その要素が紹介されるか、ほぼ全て議論される図面の番号で開始する。したがって、例えば、図1における要素の表示は、ほぼ、数字のフォーマット1XXであるだろうし、図4における要素は、ほぼ、数字のフォーマット4XXであるだろう。
本明細書で用いられるように、所定のパラメータ、特性または条件に対する“実質的に(substantially)”という語は、許容可能な製造公差内など、小程度の相違で所定のパラメータ、特性または条件が満たされることを当業者が理解するだろう程度を、意味し、含む。例示として、実質的に満たされる特定のパラメータ、特性または条件によって、そのパラメータ、特性または条件は、少なくとも90%満たされるか、少なくとも95%満たされるか、または少なくとも99%も満たされることもある。
本明細書で用いられるように、“の上(over)”“の下(under)”“の上(on)”“の下(underlying)”“より上(upper)”“より下(lower)”等の任意の関係性的な語は、本開示と添付の図面を理解するうえでの明瞭性および簡便性のために用いられるものであり、文脈がそうでないと明確に示さない限りは、任意の特定の優先度、方向もしくは順序を含意し、または依存するものではない。
ある要素が、他の要素“の上(on)”“に接続される(connected to)”“に結合される(coupled to)”“と結合される(coupled with)”と言及されるときには、その要素は、他の要素の直接上にあるか、接続されるか、もしくは結合されることが出来、または、中間要素が存在してもよいことが理解されるだろう。対照的に、ある要素が、他の要素“の直接上(directly on)”“に直接接続される(directly connected to)”“に直接結合される(directly coupled to)”と言及されるときには、中間要素または中間層は存在しない。本明細書で用いられるように、“および/または(and/or)”という語は、関連付けられて記載された多数の項目のあらゆる組み合わせと全ての組み合わせを含む。
本開示は、よりバランスのとれたシステム帯域幅を提供し、このような相互接続システムの設計および使用の複雑性を減少することを可能とすることによって、メモリサブシステムを改良するための方法および装置を記述する。
図1は、データ取扱デバイス500と通信するための抽象化メモリプロトコル130を用いるメモリバス上で動作するためのデバイスの一例として、ハイブリッドメモリキューブデバイス200を含むデータ処理システム100の図である。記述を容易にするために、この開示は、HMCプロトコルバスに焦点をあてる。しかしながら、本開示の利益を有する当業者が理解するように、本開示の実施形態は、データを保持するデバイスと、データバス上のプロトコルとの間の抽象化を含む他の高速データバスで実施することが出来る。
“データ取扱デバイス”500という語は、DRAMメモリなどのデータを格納するためのデバイスではなく、主にデータのコンシューマおよびジェネレータとして構成されるメモリバス上のデバイスを区別するために本明細書で用いられる。限定しない例として、データ取扱デバイス500は、例えば、汎用プロセッサ、専用プロセッサ、グラフィックプロセッサおよびデジタル信号プロセッサなどのプロセッサ(本明細書では処理デバイスとも呼ばれる)と考えることが出来る。別の限定しない例として、データ取扱デバイス500は、通信デバイスと考えることが出来る。例えば、通信型データ取扱デバイス500は、メモリバスと、例えば、入力/出力(I/O)バスまたはネットワークバスなどの幾つかの他の種類の通信バスとの間でデータを伝送するように構成されてもよい。無論、データ取扱デバイス500は、また、プロセッサ素子と通信素子との双方を含んでもよい。このように、本明細書の記述は、また、データ取扱デバイス500をシステムオンチップ(SoC)500と記述してもよい。そうでないと具体的に言及されない限りは、本明細書で呼ばれるSoC500は、データ取扱デバイス500と等価であると考えられるべきである。最後に、データ取扱デバイス500は、データを処理および移動することに焦点をあてられていると考えられてもよいが、レジスタ、バッファ、キャッシュ、およびSoC500の他の種類のローカルメモリの形態で、相当量のメモリを含むこともできる。SoC500のさらなる詳細は、図5に関連して以下に議論される。
ハイブリッドメモリキューブデバイス200(HMC200)は、論理ベース400を含み、論理ベース400は、SoC500とHMC200との間のメモリリンク120を作成するために、抽象化メモリプロトコル130を定義する。パラレルバス410の集合は、論理ベース400とHMC200上のDRAM250のグループとの間をインターフェイスで接続する。HMC200のさらなる詳細は、図2から図4に関連して以下に議論される。
メモリリンク120は、SoC500に向かうアップストリームリンクと、SoC500から離れるダウンストリームリンクとに区分化される。抽象化メモリプロトコル130の一部として、メモリリンク120は、以下に完全に説明されるようにパケット化される。結果として、メモリリンク120は、本明細書で、パケット化メモリリンク120とも、ハイブリッドメモリキューブリンク120ともよばれる。さらに、メモリリンク120上で伝送されるパケットは、パケット要求およびパケット化要求と呼ばれることがある。
図2は、HMC200内のDRAM250の可能な分画を図示する。HMC200は、論理ベース400に結合されたDRAMダイ250の3次元積層と考えることが出来る。論理ベース400は、個別のダイとして構成されてもよく、DRAMダイ250とインターフェイス接続するように構成されてもよい。積層されると、様々なダイの間の相互接続は、シリコンビアを通じて達成されてもよい。これらのデバイスは3次元積層として物理的に構成されてもよいが、そのように構成される必要はなく、相互接続の観点から依然3次元と考えることもできる。
図3は、HMC200内のDRAM250の論理分画を図示する。図2および図3を参照すると、複数のダイ層の相互接続は、メモリストレージ層と一つ以上の論理層との組み合わせをメモリデバイスが有することを可能とする。この方法では、デバイスは、HMC200として構成された単一のダイパッケージ内の、物理メモリストレージと論理メモリトランザクションを提供する。最終結果は、デバイス毎に320GB/秒の使用可能な帯域幅容量を有する、非常に小型で、電力効率の良いパッケージである。
HMC200は、設計に対する階層的でパラレルなアプローチを介して、このような帯域幅を可能とする。例えば、デバイスの階層は、論理層に対して垂直方向に生じることが出来、ハードウェアの平行度は、所定のダイ層にわたって生じることがある。論理ベース400は、内部ルーティングおよびトランザクション論理とともに、HMC200に対する外部リンクアクセスの双方を提供する複数のコンポーネントを含む。
HMC200は、“ボールト(vault)220”としばしば呼ばれる垂直方向のスライス220に断片化することが出来る。各ボールト220は、そのボールト220と関連するDRAM250の断片を制御するために、論理ベース400に組み込まれたボールト論理450を含んでもよい。ボールト論理450は、そのボールト220内のメモリ区分に対する、メモリ参照動作を管理する。各ボールトコントローラ450は、それ自体のタイミング要求とリフレッシュ動作を決定することが出来、それによって、各ボールト220に対して異なるタイミングを可能とし、また、ホストメモリコントローラ内のこれらの機能に対するニーズを排除する。さらに、そのボールトのメモリに対する参照をバッファするために、各ボールトコントローラ450には待ち行列(キュー)が含まれてもよい。ボールトコントローラ450は、到着順序ではなく、ニーズに基づいて、この待ち行列内の参照を実行することが出来る。したがって、外部メモリリンク120(図1)に対するボールト動作からの応答は、幾つかの場合には、順序が違うことがある。
メモリリンク120は、4つまたは8つの論理リンクを提供するように構成されてもよい。各リンクは、16または8つのシリアルおよび双方向I/Oリンクのグループとして構成されてもよい。4つのリンクを有するように構成されたデバイスは、10、12.5および15Gbpsで動作する性能を有する。8つのリンクを有するように構成されたデバイスは、10Gbpsで動作する性能を有する。
物理メモリストレージの階層的特性を考えると、HMCの仕様は、従来のバンクDRAMデバイスとは異なる物理アドレシングとインターリーブモデルを定義する。HMCデバイス200に対する物理アドレスは、ボールト、バンクおよびアドレスビットを含む34ビットのフィールドにエンコードされる。単一のアドレシング構造に依存するのではなく、仕様は、対象のメモリアクセス特性に対して最適化されたアドレスマッピングスキームを開発者およびユーザが規定することを可能にする。それは、また、所望の最大ブロック要求サイズに物理的ボールトおよびバンク構造を合わせる、一連のデフォルトアドレスマップモードを提供する。デフォルトのマップスキームは、ボールトアドレスに下位のアドレスビットをマッピングし、その直後に、バンクアドレスビットをマッピングすることによって、低いインターリーブモデルを実装する。この方法は、バンクコンフリクトを回避するために、一連のアドレスを、ボールトにわたってまずインターリーブさせ、その後、ボールト内のバンクにわたってインターリーブさせる。
ホストデバイス(例えば、SoC500)とHMCデバイス200との間の全ての帯域内通信は、パケット化フォーマットを介して実施される。このフォーマットは、3つの主要なパケット分類である、要求パケット、応答パケットおよびフロー制御パケットを含む。パケットは、単一の16バイトのフローユニット(FLITとも呼ばれる)の倍数として構成されてもよい。パケットサイズは、9FLIT(即ち、144バイト)と同じ大きさであってもよい。最小のパケットは、パケットヘッダおよびパケットテイルを含む、ただ一つの16バイトのFLITを含んでもよい。
すべてのメモリペイロードサイズに対するメモリ読み出し要求パケットは、パケットヘッダ、パケットテイルおよび其々の物理メモリアドレスを要求するだけである。このように、読み出し要求は、単一のFLITを用いて構成されてもよい。メモリ読み出し要求は、対応するメモリ読み出しパケット内で要求されたアドレスからのデータを含む個別のパケットである。しかしながら、書き込み要求およびアトミック要求パケットは、其々、書き込みおよび読み出し/修正/書き込み動作のために、関連する入力データを含まなければならない。このように、これらの要求の種類は、2−9FLITのパケット幅を有することがある。HMCの仕様は、パケット間の弱い順序付けのモデルを規定する。このように、対象実装内に存在する複数のパケット再順序付け点が存在してもよい。補助デバイスが宛先の到着パケットは、ローカルボールトアクセス用に待機するパケットを追い越すことが出来る。ローカルボールトは、また、其々のボールトバンクとやり取りする帯域幅を最も効率的に利用するために、待ち行列型パケットを再順序付けすることが出来る。しかしながら、所定のHMC実装内に存在する再順序付け点は、特定のリンクからボールト内の特定のバンクに、パケットのストリームの順序を維持するように規定されてもよい。この順序付けは、メモリ読み出し要求がその後に続くメモリ書き込み要求が、正確かつ決定的な挙動を果たすことを保証する。
HMC200内のリンク構造は、複数のHMC200の連鎖(chaining:チェイニング)を可能とし、リンク構造およびパケット化トランザクションプロトコルを維持しながら、単一のHMC200デバイスよりも大きい容量を必要とするメモリサブシステムの構造を可能とする。連鎖に関するさらなる詳細は、図6−図9を参照して以下に議論される。
図4は、論理ベース400を図示し、論理ベース400は、リンクインターフェイス120を作成して、HMC200内のDRAM250(図1から図3)を制御するために使用され得る。アップストリームリンクとダウンストリームリンクとを含むメモリリンク120は、各メモリリンク120に対するリンクインターフェイスコントローラ420によって制御されてもよい。リンクインターフェイスコントローラ420を通過するパケットは、クロスバースイッチ430を通過してもよい。パケットの宛先がHMC200におけるボールトである場合、クロスバースイッチ430は、メモリ制御論理440にパケットを渡すことが出来る。パケットの宛先が別のHMC200である場合、クロスバースイッチ430は、適切なHMC200に送信されるように、適切なリンクインターフェイスコントローラ420にパケットを渡すことが出来る。様々なボールトに対するメモリ制御論理440およびボールト論理450は、適切なボールトおよび選択されたボールトに対する適切なタイミングを選択するために組み合わせられてもよい。
図5は、本開示の幾つかの実施形態によるデータ取扱デバイス500に存在し得る幾つかの素子を図示する。本開示の実施形態により、システムおよび方法は、HMC200デバイスと、複数のSoC500間のよりグローバルなシステム相互接続のための基礎として、HMC200に対して規定されたメモリ相互接続プロトコルとを使用することが出来る。したがって、HMC200デバイスおよびリンクの仕様を用いる基本的なシステム相互接続性能は、その数、密度およびホストシステム(例えば、SoC500)から出ていくリンクの不均質性を統合する。
本開示を用いて構成されるデバイスおよびシステムは、従来のマルチプロセッサシステムアーキテクチャに対する改良であるシステム特性を規定することが出来る。これらの特性のうちのいくつかは、高い帯域幅のメモリおよびシステム相互接続リンク、ローカルに接続されたメモリと他のシステムレベルのメモリとの間のバランスのとれた帯域幅およびレイテンシー特性、ローカルメモリ要求とシステムレベルの要求との間のプロトコル変換を減少させるおよび/または排除することによるレイテンシーの最小化、ローカルメモリ要求とシステムレベルの要求との双方のための効率的なHMC200パケットプロトコルを用いることによるレイテンシーの最小化を含む。特性は、また、同一のプロトコルを用いてHMC200システム相互接続にわたるローカルメモリとシステムレベルのメモリとの間のアトミシティを維持することと、システムレベルのメモリモデル(例えば、弱い順序対強い順序)の広いスペクトルのためのサポート、キャッシュコヒーレンシーのためのサポートをも含むことが出来る。
システム構成は、図6および図7で図示されたようなin−situルーティングおよび図8および図9で図示されるような専用ルーティングを含むと一般的に考えられてもよい。二つの可能な実装は、二つの異なるスケーラビリティモデルを表す。in situルーティングモデルは、マルチソケットワークステーション、データセンターサーバおよび他の基本的なインフラストラクチャデバイスのための効率的なシステムレベルのスケーラビリティを提供する。専用ルーティングモデルは、少数のソケットを超える効率的なスケーラビリティを提供する。このスケーラビリティは、大規模エンタープライズサーバまたはメインフレームプラットフォームを構築するのに類似する。双方の方法は、SoC中心のシステムアーキテクチャを構築し、本質的に不均一メモリアクセス(NUMA)であるアーキテクチャをサポートする能力を提供する。
双方のモデルにおいて、SoC500は、HMCインフラストラクチャに対するHMC“ソース”リンクを提示する。ソースリンクは、また、本明細書で第二のパケット化メモリリンクとも呼ばれることがある。この第二のリンクによって、SoC500は、システムリンクトラフィックを送受信する能力を継承する。この追加リンクによって、SoCからSoCへのダイレクトメッセージの送受信をサポートすることが可能になる。このような機能の一例は、キャッシュコヒーレンシートラフィックである。例えば、システム供給者は、HMCアトミック要求パケットにキャッシュコヒーレンシー要求(例えば、コヒーレンシールックアップまたは無効化)をエンコードすることが出来る。システム供給者は、また、読み出し、書き込み、ポステッド読み出しおよびポステッド書き込み要求のために、HMCベースの仕様内のSoC500からSoC500へのメッセージングパケットをエンコードすることが出来る。HMCパケットの仕様にプロトコルをエンコードするための、システム供給者の能力によって、其々の知的特性を保持し、高い帯域幅、低いレイテンシーのシステム相互接続サポートを提供することを可能とする。
図5に戻ると、HMCインターフェイス用に構成された従来のSoC500は、一つ以上のプロセッサ54、および、第一のハイブリッドメモリキューブインターフェイス122を通じてパケット化メモリリンク120(例えば、HMCリンク120)に結合されたデータリクエスタエンドポイント510と同様に単純にすることが出来る。データリクエスタエンドポイント510は、また、本明細書でホストリクエスタエンドポイント510とも呼ばれることがある。従来、ホストは、例えば、メモリ読み出し、メモリ書き込みおよび構成定義パケットなどの機能を実施するためのHMC200インターフェイス上にパケット要求を行う必要があるだけである。
しかしながら、本開示の実施形態は、第二のハイブリッドメモリキューブインターフェイス622を通じて、第二のパケット化メモリリンク620に結合されたデータ取扱エンドポイント520を含む。物理的、および論理的に、第二のパケット化メモリリンク620は、HMC200デバイス上のメモリリンクに類似している。換言すると、データ取扱エンドポイント520は、メモリエンドポイントのようにふるまう。したがって、データ取扱エンドポイント520は、メモリ読み出し、メモリ書き込みまたは他の構成型パケットのように見えるパケット要求を解釈し、メモリ書き込みにおいてデータを消費し、メモリ読み出し用のデータの応答パケットを作成する。データ取扱エンドポイント520によって、システムを作成することが出来、第二のパケット化メモリリンク620は、他のSoC500に対するシステム相互接続および他のSoC500と関連するメモリドメインとして用いることが出来る。したがって、第二のパケット化メモリリンク620はハイブリッドメモリキューブリンク120と、物理的および論理的に同一であるが、アーキテクチャの観点から、それは、柔軟性があり、かつ効率的なシステム相互接続を作成するパケット化システム要求を伝送するためのリンクとして扱うことが出来る。
さらに、データリクエスタエンドポイント510およびデータ取扱エンドポイント520は類似しているので、二つのエンドポイントのための論理設計の多くは、従来のマルチプロセッサシステムにおけるような個別のプロトコルを有する二つの個別のバスを作成するのではなく、再利用することが出来る。
前述されたように、SoC500は、処理デバイスと考えることが出来、プロセッサ540は、汎用プロセッサ、DSP、専用プロセッサ、グラフィックプロセッサまたはその組み合わせとして実装することが出来る。しかしながら、SoC500は、また、通信デバイスとして主に実装することもできる。このような実装においては、一つ以上の通信素子550は、データ取扱エンドポイント520から別のバス560にパケットを伝送するために含まれてもよい。この他のバス560は、例えば、I/Oハブ、別の通信デバイス、記憶デバイス、ネットワークまたはその組み合わせに対するバスとすることが出来る。無論、SoC500は、プロセッサ540と通信素子550との双方を含むことが出来る。したがって、プロセッサ540および通信素子550は、データ取扱素子(540、550)と一般的に呼ばれることがある。
データ取扱エンドポイント520は、メモリエンドポイントと同様に振舞い、データ取扱エンドポイント520によって扱われるパケットは、それに関連するアドレスを有し、データは、大きなバーストで伝送されてもよい。幾つかの実施形態においては、データは、データ取扱エンドポイント520と適切なデータ取扱素子(540、550)との間で直接伝送することが出来るように、プロセッサ540および/または通信素子550は、それ自体のアドレスを有する、それに関連するメモリを有することが出来る。
他の実施形態は、データ取扱デバイス500にリンクを要求するためのアドレススペースを規定するためのデータバッファ530を含むことが出来る。データバッファ530によって、個別の専用アドレススペースを規定することが出来、データバッファ530は、適切なデータ取扱素子(540、550)上にそれを渡す前にデータを収集することが出来る。データバッファ530は、互いに非同期式にトラフィックをSoC500が送信することを可能とするダイレクトメモリアクセス(DMA)バッファ、または(ファストインファストアウト)FIFOバッファとして構成されてもよい。データバッファ530の其々のサイズは、関連するHMCリンク620の数および周波数によって決定されてもよい。
さらに、データリクエスタエンドポイント510がデータ取扱エンドポイント520に類似の方法で、そのエンドポイントに対する要求を取り扱うことが出来るように、SoC500を構成することが出来る。同様に、データ取扱エンドポイント520は、データリクエスタエンドポイント510に類似の方法で、データ取扱素子(540、550)からの要求を発生させるように構成することが出来る。
したがって、データ取扱デバイスにおいては、データリクエスタエンドポイントは、第一のパケット化メモリリンクにおいて第一のパケット要求を発生させるために構成される。データ取扱エンドポイントは、第二のパケット化メモリリンクにおける、データ取扱エンドポイントに対する第二のパケット要求を解釈し、第二のパケット要求に応じて、第二のパケット化メモリリンクにわたって双方向にデータを伝送するために構成される。さらに、第一のパケット化メモリリンクおよび第二のパケット化メモリリンクは、分離されるが、同一種のリンクプロトコルおよび同一種の物理インターフェイスを含む。
データ取扱デバイスの他の実施形態においては、第一のハイブリッドメモリキューブリンクは、データ取扱デバイスのホストリクエスタエンドポイントに動作可能なように結合され、ホストリクエスタエンドポイントは、一つ以上のハイブリッドメモリキューブデバイスを含むローカルメモリドメインに、パケット化メモリ要求を発生させるためのものである。第二のハイブリッドメモリキューブリンクは、データ取扱デバイスにおけるデータ取扱エンドポイントに動作可能なように結合され、データ取扱エンドポイントは、一つ以上のハイブリッドメモリキューブデバイスのうちの少なくとも一つに動作可能なように結合された、さらなるデータ取扱デバイスからのパケット化システム要求を解釈するためのものである。
別の実施形態においては、データ取扱デバイスでデータを伝送する方法は、データ取扱デバイスに関連する第一のメモリドメイン内のハイブリッドメモリキューブデバイスに、第一のハイブリッドメモリキューブリンクにおけるパケット化メモリ要求を発生させるために、データ取扱デバイスを使用することを含む。この方法は、また、第二のハイブリッドメモリキューブリンクにおけるパケット化システム要求を受信するために、データ取扱デバイスを使用することを含み、パケット化システム要求は、第二のデータ取扱デバイス(図5には図示せず)から発生させる。この方法は、また、パケット化システム要求に応じることも含む。
図6は、様々なデータ取扱デバイス500とメモリデバイス200との間でin−situルーティングを使用するシステム600の図を図示し、メモリデバイス130間のスパースルーティングを示す。前述されたように、複数のHMCデバイス200は、SoC500に対して使用可能なメモリの総容量を増加させるために、ともに連鎖されてもよい。従来の単一のプロセッサ/HMCシステムにおいては、各HMC200は、要求パケットヘッダ内の3ビットチップIDフィールド内の値を通じて同定される。3ビットチップIDフィールドは、また、CUBフィールドまたはデバイスIDとも呼ばれることがある。したがって、プロセッサに対して、8つまでのHMCデバイス200のネットワークをサポートすることが出来る。
HMC200の相互接続用の様々なトポロジーがサポートされ、異なるHMC200に対するルーティングは、複雑と成り得、複数の経路を含み得る。したがって、HMC200のためではないパケットは、如何にして、HMC200における他のリンクにルーティングされるべきかを決定するために、ホストプロセッサは、ルーティングトポロジーを通常制御し、各HMC200にルーティング構成情報をロードする。このルーティング情報は、適切な宛先に、要求パケットをルーティングするために、CUBフィールドを各HMC200が使用することを可能とする。その結果、HMC200が自体を宛先とされていないパケットを処理するとき、HMC200は、連鎖し、別のHMC200に送信されるべきHMC20における別のリンクへと、パケットを通過させる。
in situルーティング構成は、少数のシステムデバイスのためのシステム相互接続ルーティング性能を提供する。より詳細には、システムデバイスの総数は、システムアーキテクチャ内に存在するHMCデバイス200の総数によってゲートにより制御される。この制限は、全部で8つのHMCエンドポイントをマッピングする、3ビットのアドレスフィールドスペースにCUBフィールドが限定される、基本的なHMCの仕様の概念に従う。in situルーティングの場合、CUBフィールドは、一つ以上のSoCエンドポイントを示すために用いられる。したがって、各SoC500および全てのHMCデバイス200は、SoC500とHMC200との間、HMC200とHMC200との間またはSoC500とSoC500との間の要求トラフィックをルーティングする目的のために、一意的なCUB識別子を受信する。
図6においては、HMCデバイス(200−0から200−5)の各々は、対応するデバイスID0−5で規定される。さらに、ソケット0内の第一のSoC500−0は、デバイスID6で規定され、ソケット1内の第二のSoC500−1は、デバイスID7で規定される。
in−situルーティング構成は、3つの異なる種類のリンクを有すると考えることが出来る。第一のリンクの種類は、SoCソースリンク620−0および620−1として同定されてもよい。これらのSoCソースリンク(620−0、620−1)は、また、図5を参照して上述されたように、第二のパケット化メモリリンク620および第二のハイブリッドメモリキューブリンク620と呼ばれることもある。
これらのSoCソースリンク(620−0、620−1)は、SoC(500−0、500−1)におけるそのデータ取扱エンドポイント520要求トラフィック受信するように作用する。SoCソースリンク(620−0、620−1)は、メインメモリスペース内で中間ダブルバッファリングすることなく、SoC(500−0、500−1)が直接通信することを可能とする。この方法では、SoC(500−0、500−1)は、データ取扱エンドポイント520を通じたHMCソースと、データリクエスタエンドポイント510を介したHMCリクエスタとの双方と見えるだろう。
第二および第三のリンクの種類は、従来のHMC構成にマッピングする。第二のリンクの種類(即ち、ドメイン間メモリリンク650−0)は、第一のメモリドメイン630および第二のメモリドメイン640などの隣接するメモリドメインに対するHMCリンクにわたるトラフィックをルーティングする性能を提供する。換言すると、ドメイン間メモリリンク650−0は、メモリドメイン間のブリッジとして役立つ。対象システムコストモデルによっては、システム設計者は、これらのシステムリンクを用いて、其々のNUMAドメイン間の間隙をブリッジするリンクの数を選択することが出来る。図6は、唯一つのドメイン間メモリリンク650−0が存在するため、スパースルーティングを図示している。
図7は、様々なデータ取扱デバイス500とメモリデバイス200との間のin−situルーティングを使用するシステム700の図を図示し、メモリデバイス間のデンスルーティングを示す。図7においては、3つのシステムがデンスルーティングされる。なぜなら、3つのドメイン間メモリリンク650−0、650−1、650−2が存在するからである。デンス接続されたシステムアーキテクチャは、リンクホットスポットを減少させるために、複数のルーティング経路を作成するために、メモリドメイントポロジーに対してメモリを構成する能力を提供する。ドメイン間メモリリンク650−0、650−1および650−2以外は、図7は図6に類似し、その要素は、再度記述される必要がない。
第三のリンクの種類は、其々ローカルメモリドメインの各々に対するメモリトラフィックをルーティングするローカル要求リンク120である。これらのリンクは、120−0から120−5として示される。これらのリンクは、メモリドメイン内の従来のHMC200メモリトラフィックを提供する。
図6および図7は、其々完全に実装(ポピュレート)されたシステム600、700を図示する。換言すると、現在のバージョンのHMCの仕様のための各デバイスIDが用いられる。デバイスID拡張する他のシステムが、使用されてもよい。例えば、デバイスIDに対する単一ビットの追加は、デバイスの数を8から16に拡張することが出来、SoC500とHMC200とのあらゆる組み合わせを含むことが出来る。
さらに、システムは、スパースに実装されると規定されてもよい。例えば、図示されないが、システムは、ソケット0のSoC500−0、ソケット1のSoC500−1、単一のHMC200(例えば、HMC200−0)を含むことが出来る。このようなシステムにおいては、SoC500−1上のSoCソースリンク620−1は、HMC200−0におけるリンクに直接接続されてもよく、SoC500−1におけるローカルメモリリンク120−1は、HMC200−0における別のリンクに直接接続されてもよい。その結果、パケットは、SoC500−0とSoC500−1との間で依然渡されることが出来、二つのSoC500−0および500−1は、HMC200−0内のメモリに対するアクセスを共有することが出来る。
したがって、データ処理システムは、二つ以上のデータ取扱デバイスとハイブリッドメモリキューブデバイスとを含む。各データ取扱デバイスは、第一のパケット化メモリリンクにおける第一のパケット要求を発生させるために構成されたホストリクエスタエンドポイントを含む。各データ取扱デバイスは、また、第二のパケット化メモリリンクにおけるデータ取扱エンドポイントに、第二のパケット要求を受信して応じるために構成されたデータ取扱エンドポイントを含む。ハイブリッドメモリキューブデバイスは、二つ以上のデータ取扱デバイスのうちの一つに対応する第一のメモリドメインに関連する。ハイブリッドメモリキューブデバイスは、二つ以上のデータ取扱デバイスのうちの二つの間の第二のパケット要求を連鎖して渡すように構成される。
別の実施形態においては、システム内でデータを伝送する方法は、第一のデータ取扱デバイスにおけるホストリクエスタエンドポイントからのメモリ要求を発生させることを含む。方法は、また、第一のデータ取扱デバイスに関連する第一のメモリドメイン内の第一のハイブリッドメモリキューブに、第一のデータ取扱デバイスに結合された第一のパケット化メモリリンクにおけるメモリ要求を送信することを含む。この方法は、また、第一のハイブリッドメモリキューブにおけるシステム要求を受信することを含み、そのシステム要求は、第二のデータ取扱デバイスからのものである。方法は、また、第一のデータ取扱デバイスに結合された第二のパケット化メモリリンクを介して、第一のデータ取扱デバイスにおけるデータ取扱エンドポイントに、第一のハイブリッドメモリキューブからのシステム要求を渡すことを含む。第二のハイブリッドメモリキューブを有する幾つかの実施形態においては、方法は、第一のハイブリッドメモリキューブにおけるシステム要求を受信し、第二のハイブリッドメモリキューブにおけるシステム要求を受信し、第二のハイブリッドメモリキューブから第一のハイブリッドメモリキューブにシステム要求を渡す前に、第二のデータ取扱デバイスにおけるホストリクエスタエンドポイントからのシステム要求を発生させることをさらに含む。
図8は、様々なデータ取扱デバイス500とメモリデバイス200との間の専用ルーティングを用いるシステム800の図を図示する。専用ルーティング構成は、より大きく、よりスケーラブルなシステムアーキテクチャを構築することを可能とする。in situルーティング構成と同様、専用ルーティングは、データリクエスタエンドポイント510を通じてHMCリクエスタとして双方役立つことが出来、データ取扱エンドポイント520を通じた対象エンドポイントとして見ることが出来るSoC500を含む。しかしながら、専用ルーティング構成においては、HMC要求トラフィックは、任意の所定のSoC500の観点から、二つのドメインに分割される。各SoC500は、ローカルドメインとシステムドメインの双方を含む。各ドメインは、(前述のCUBフィールド制限に基づいて)8つまでのエンドポイントをサポートする性能を有する。この方法では、各SoC500は、そのローカルドメイン内でローカルに接続された8つまでのHMCデバイスをサポートする性能を有する。ローカルドメイン内のエンドポイントは、一般的にHMCメモリデバイス200である。図8は、120−0から120−3のようなローカルドメインリンクを図示する。したがって、図8においては、各SoC(500−0から500−3)に関連する唯一つのHMC(200−0から200−3)が存在する。しかしながら、専用ルーティングシステムは、各SoC(500−0から500−3)のローカルドメイン内の8つまでのHMCデバイス200で構成することが出来る。
システムドメインは、システムレベルのトラフィックルーティング用の機能を提供する。各SoC(500−0から500−3)は、システムドメインにわたるシステム要求トラフィックをルーティングするための性能を提供する。システムドメイン内のエンドポイントは、SoC500、ハブとして用いられるHMCデバイス200、メモリストレージとして用いられるHMCデバイス200とすることが出来る。システムのスケーラビリティは、SoCエンドポイントに対するHMCルータデバイスの比率によって決定される。
一例として、図8は、二つのHMCハブ(810−0および810−1)を有する専用ルーティングシステムを図示する。HMCハブ(810−0および810−1)は、各SoC(500−0から500−3)の第二のパケット化メモリリンク(620−0から620−3)に結合されたリンクを含む。さらに、図8は、ともに、かつ隣接するハブデバイスに対して、HMCハブ(810−0および810−1)を結合するためのハブ間リンク(820−0から820−2)を図示する。
図8は、システムドメイン内に完全に実装(ポピュレート)されていないシステムを図示する。HMCハブ(810−0および810−1)は、其々デバイスID0およびID1を利用し、SoC(500−0から500−3)は、其々デバイスID2−ID5を使用する。したがって、一例として、別のSoC500は、ハブ間リンク820−0に結合されてデバイスID6を与えられてもよく、別のSoC500は、ハブ間リンク820−1に結合され、デバイスID7を与えられてもよい。別の例として、別のHMCハブ810は、ハブ間リンク820−1に結合され、デバイスID6を与えられてもよく、また別のSoC500が、他のHMCハブ810に結合され、デバイスID7を与えられてもよい。
専用ルーティングアーキテクチャ内のシステム相互接続は、他の方法で拡張されてもよい。例えば、in−situルーティングと同様、さらなるビットをデバイスIDフィールドに追加することが出来る。例えば、デバイスIDに単一のビットを追加することは、8から16にデバイス数を拡張することが出来、SoC500とHMCハブ810との任意の組み合わせを含むことが出来る。別の例として、別の完全に新規のドメインを開くために第一のパケット化リンク120および第二のパケット化リンク620に類似のさらなるパケット化リンクバスを、追加することが出来る。
また、各SoC500のためのローカルメモリドメインは、HMC200メモリデバイスを含むだけよりもより複雑に成り得る。ローカルドメインは、図5−図7を参照して上述されたように、in situルーティングで構成されることが出来る。
したがって、専用ルーティング構成においては、データ処理システムは、二つ以上のデータ取扱デバイスを含む。各データ取扱デバイスは、第一のパケット化メモリリンクにおけるローカルメモリパケット要求を発生させるように構成されたホストリクエスタエンドポイントと、第二のパケット化メモリリンクにおけるデータ取扱エンドポイントで第二のパケット要求を受信して応じるように構成されたデータ取扱エンドポイントと、を含む。データ処理システムは、また、一つ以上のハイブリッドメモリキューブハブを含む。ハイブリッドメモリキューブハブのうちの各々は、二つ以上のデータ取扱デバイスのうちの一つのデータ取扱エンドポイントに動作可能なように結合された第一のパケット化メモリリンクと、二つ以上のデータ取扱デバイスのうちの他方のデータ取扱エンドポイントに動作可能なように結合された第二のパケット化メモリリンクとを含む。
専用ルーティング構成の別の実施形態においては、システム内でデータを伝送する方法は、第一のデータ取扱デバイスにおけるホストリクエスタエンドポイントからメモリ要求を発生させることと、第一のデータ取扱デバイスに関連する第一のメモリドメイン内の第一のハイブリッドメモリキューブに、第一のデータ取扱デバイスに結合された第一のパケット化メモリリンクにおけるメモリ要求を送信することと、を含む。方法は、また、第一のデータ取扱デバイスにおけるデータ取扱エンドポイントからシステム要求を発生させることと、ハイブリッドメモリキューブハブに対して、第一のデータ取扱デバイスに結合された第二のパケット化メモリリンクにおけるシステム要求を送信することと、を含む。方法は、また、第二のデータ取扱デバイスに、ハイブリッドメモリキューブハブ810−0からのシステム要求のうちの幾つかを渡すことを含む。
図9は、図8の専用ルーティングで、システム内で使用され得る様々な例示的トポロジーを図示する。専用ルーティング方法は、また、異なるトポロジーの利点を有する、非常に複雑なシステムアーキテクチャを構築する性能を提供することもできる。限定しない例として、システムドメインのトポロジーは、リング910、修正リング920、メッシュ930およびクロスバー(図示せず)を用いて構築することが出来る。最終的なトポロジーの決定は、対象のシステムコストに対して重みづけされた、必要とされる帯域幅とレイテンシー特性とに基づいて行うことが出来る。
本開示の実施形態は、限定することなく以下に説明されるように、更に特徴づけることが出来る。
実施形態1。データ取扱デバイスであって、
第一のパケット化メモリリンクにおける第一のパケット要求を発生させるために構成されたデータリクエスタエンドポイントと、
第二のパケット化メモリリンクにおけるデータ取扱エンドポイントに対する第二のパケット要求を解釈することと、
第二のパケット要求に応じて、第二のパケット化メモリリンクにわたって双方向にデータを伝送することと、
のために構成されたデータ取扱エンドポイントと、
を含み、
第一のパケット化メモリリンクおよび第二のパケット化メモリリンクは分離されるが、同一種類のリンクプロトコルおよび同一種類の物理インターフェイスを含む、データ取扱デバイス。
実施形態2。データリクエスタエンドポイントおよびデータ取扱エンドポイントのうちの一つ以上に動作可能なように結合された一つ以上のデータ取扱素子をさらに含み、一つ以上のデータ取扱素子のうちの各々は、一つ以上のプロセッサと一つ以上の通信素子とを含む、実施形態1のデータ取扱デバイス。
実施形態3。データリクエスタエンドポイントと一つ以上のデータ取扱素子との間に動作可能なように結合されたデータバッファをさらに含み、データバッファは、データ取扱エンドポイントのためのアドレススペースを規定するためのものである、実施形態2のデータ取扱デバイス。
実施形態4。第一のパケット化メモリリンクおよび第二のパケット化メモリリンクは、双方ハイブリッドメモリキューブリンクである、実施形態1から実施形態3のうちのいずれかによるデータ取扱デバイス。
実施形態5。データ取扱エンドポイントは、第二のパケット化メモリリンクにおける第三のパケット要求を発生させるためにさらに構成される、実施形態1から実施形態3のうちのいずれかによるデータ取扱デバイス。
実施形態6。データリクエスタエンドポイントは、
第一のパケット化メモリリンクにおけるデータリクエスタエンドポイントに対する、第三のパケット要求を解釈することと、
第三のパケット要求に応じて、第一のパケット化メモリリンクにわたって双方向にデータを伝送することと、
のためにさらに構成される、実施形態1から実施形態3のうちのいずれかによるデータ取扱デバイス。
実施形態7。
データ取扱デバイスにおけるホストリクエスタエンドポイントに動作可能なように結合された第一のハイブリッドメモリキューブインターフェイスであって、ホストリクエスタエンドポイントは、一つ以上のハイブリッドメモリキューブデバイスを含むローカルメモリドメインに対するパケット化メモリ要求を発生させるためのものである、第一のハイブリッドメモリキューブインターフェイスと、
データ取扱デバイスにおけるデータ取扱エンドポイントに動作可能なように結合された第二のハイブリッドメモリキューブインターフェイスであって、データ取扱エンドポイントは、一つ以上のハイブリッドメモリキューブデバイスのうちの少なくとも一つに動作可能なように結合されたさらなるデータ取扱デバイスからのパケット化システム要求を解釈するためのものである、第二のハイブリッドメモリキューブインターフェイスと、
を含むデータ取扱デバイス。
実施形態8。データ取扱エンドポイントは、さらに、さらなるデータ取扱デバイスからのパケット化システム要求に応じて、データを伝送するためのものである、実施形態7のデータ取扱デバイス。
実施形態9。ホストリクエスタエンドポイントおよびデータ取扱エンドポイントのうちの少なくとも一つは、さらなるデータ取扱デバイスに対するさらなるパケット化システム要求を発生させるためのものである、実施形態7のデータ取扱デバイス。
実施形態10。ホストリクエスタエンドポイントとデータ取扱エンドポイントのうちの少なくとも一つは、さらなるデータ取扱デバイスと関連付けられたリモートメモリドメイン内の一つ以上のさらなるハイブリッドメモリキューブデバイスに対して、さらなるパケット化メモリ要求をさらに発生させるためのものである、実施形態7のデータ取扱デバイス。
実施形態11。ホストリクエスタは、
第一のハイブリッドメモリキューブインターフェイスにおけるホストリクエスタエンドポイントに対する第三のパケット要求を解釈することと、
第三のパケット要求に応じて、第一のハイブリッドメモリキューブインターフェイスにわたって双方向にデータを伝送することと、
のためにさらに構成される、
実施形態7のデータ取扱デバイス。
実施形態12。ホストリクエスタエンドポイントおよびデータ取扱エンドポイントのうちの一つ以上に動作可能なように結合されたデータバッファをさらに含み、データバッファは、データ取扱デバイスに対するリンク要求のためのアドレススペースを規定するためのものである、実施形態7のデータ取扱デバイス。
実施形態13。
二つ以上のデータ取扱デバイスを含み、各データ取扱デバイスは、
第一のパケット化メモリリンクにおける第一のパケット要求を発生させるために構成されたホストリクエスタエンドポイントと、
第二のパケット化メモリリンクにおけるデータ取扱エンドポイントに対する第二のパケット要求を受信して応じるために構成されたデータ取扱エンドポイントと、
を含む、データ取扱デバイスと、
二つ以上のデータ取扱デバイスのうちの一つに対応する第一のメモリドメインに関連する第一のハイブリッドメモリキューブデバイスであって、ハイブリッドメモリキューブデバイスは、二つ以上のデータ取扱デバイスのうちの二つの間で、第二のパケット要求を連鎖して渡すように構成される、第一のハイブリッドメモリキューブデバイスと、
を含む、データ処理システム。
実施形態14。二つ以上のデータ取扱デバイスの内の一つに対応する第二のメモリドメインに関連する第二のハイブリッドメモリキューブデバイスをさらに含み、第二のハイブリッドメモリキューブデバイスは、第二のメモリドメインに関連するデータ取扱デバイスと第一のハイブリッドメモリキューブデバイスとの間で、第二のパケット要求を連鎖し、渡すように構成される、請求項13のデータ処理システム。
実施形態15。二つ以上のデータ取扱デバイスのうちの一つのホストリクエスタエンドポイントから発生した第一のパケット要求は連鎖され、二つ以上のデータ取扱デバイスのうちの他方のデータ取扱エンドポイントに渡される、実施形態14のデータ処理システム。
実施形態16。第一のメモリドメインおよび第二のメモリドメインのうちの各々は、少なくとも一つのさらなるハイブリッドメモリキューブデバイスを含む、実施形態14および実施形態15のうちのいずれかによるデータ処理システム。
実施形態17。第一のメモリドメイン内のさらなるハイブリッドメモリキューブと、第二のメモリドメイン内のさらなるハイブリッドメモリキューブとの間に、少なくとも一つのドメイン間リンクをさらに含む、実施形態16のデータ処理システム。
実施形態18。二つ以上のデータ取扱デバイスのうちの各々は、ホストリクエスタエンドポイントおよびデータ取扱エンドポイントのうちの一つ以上に動作可能なように結合されたデータバッファをさらに含み、データバッファは、データ取扱デバイスに対するリンク要求のためのアドレススペースを規定するためのものである、実施形態14から実施形態17のうちのいずれかによるデータ処理システム。
実施形態19。
二つ以上のデータ取扱デバイスであって、各データ取扱デバイスは、
第一のパケット化メモリリンクにおけるローカルメモリパケット要求を発生させるために構成されたホストリクエスタエンドポイントと、
第二のパケット化メモリリンクにおけるデータ取扱エンドポイントに対する第二のパケット要求を受信し、応じるために構成されたデータ取扱エンドポイントと、を含む、
データ取扱デバイスと、
二つ以上のデータ取扱デバイスのうちの一つのデータ取扱エンドポイントに動作可能なように結合された第一のパケット化メモリリンクと、
二つ以上のデータ取扱デバイスのうちの他方のデータ取扱エンドポイントに動作可能なように結合された第二のパケット化メモリリンクと、
を含む一つ以上のハイブリッドメモリキューブハブと、
を含む、データ処理システム。
実施形態20。二つ以上のデータ取扱デバイスのうちの各々のためのデータ取扱エンドポイントは、二つ以上のデータ取扱デバイスのうちの他方に対する第二のパケット化メモリリンクにおける第二のパケット要求を発生させるためにさらに構成される、請求項19のデータ処理システム。
実施形態21。二つ以上のハイブリッドメモリキューブデバイスをさらに含み、各ハイブリッドメモリキューブデバイスは、二つ以上のデータ取扱デバイスのうちの対応する一つのホストリクエスタエンドポイントに動作可能なように結合される、実施形態19のデータ処理システム。
実施形態22。一つ以上のハイブリッドメモリキューブハブのうちの少なくとも一つは、一つ以上のハイブリッドメモリキューブハブの他方に動作可能なように結合された少なくとも一つのさらなるパケット化メモリリンクを含む、実施形態19のデータ処理システム。
実施形態23。二つ以上のデータ取扱デバイスの各々は、ホストリクエスタエンドポイントとデータ取扱エンドポイントのうちの一つ以上に動作可能なように結合されたデータバッファをさらに含み、データバッファは、データ取扱デバイスに対するリンク要求のためのアドレススペースを規定するためのものである、実施形態19のデータ処理システム。
実施形態24。一つ以上のハイブリッドメモリキューブハブは、リングトポロジーで配置された少なくとも二つのハイブリッドメモリキューブハブを含む、実施形態19のデータ処理システム。
実施形態25。一つ以上のハイブリッドメモリキューブハブは、ハイブリッドリングトポロジーで配置された少なくとも二つのハイブリッドメモリキューブハブを含む、実施形態19のデータ処理システム。
実施形態26。一つ以上のハイブリッドメモリキューブハブは、メッシュトポロジーで配置された少なくとも二つのハイブリッドメモリキューブハブを含む、実施形態19から実施形態25のうちのいずれかによるデータ処理システム。
実施形態27。データ取扱デバイスでデータを伝送する方法であって、
第一のデータ取扱デバイス上で、
第一のデータ取扱デバイスに関連する第一のメモリドメイン内のハイブリッドメモリキューブデバイスに対して、第一のハイブリッドメモリキューブリンクにおけるパケット化メモリ要求を発生させることと、
第二のハイブリッドメモリキューブリンクにおけるパケット化システム要求を受信することであって、パケット化システム要求は、第二のデータ取扱デバイスから発生させる、ことと、
パケット化システム要求に応じることと、
を含む、方法。
実施形態28。第一のデータ取扱デバイスに対するパケット化システム要求のためのアドレススペースを規定するために、第一のデータ取扱デバイスにおけるパケット化システム要求で受信されたデータをバッファすることをさらに含む、実施形態27の方法。
実施形態29。第一のデータ取扱デバイスにおけるアドレススペースを規定するために、パケット化システム要求に応じるとき、送信されるべき読み出しデータをバッファすることをさらに含む、実施形態27および実施形態28のうちのいずれかによる方法。
実施形態30。第二のデータ取扱デバイスに対して、第一のデータ取扱デバイスの第一のハイブリッドメモリキューブリンクにおけるパケット化システム要求を発生させることをさらに含む、実施形態27から実施形態29のうちのいずれかによる方法。
実施形態31。第二のデータ取扱デバイスに対して、第一のデータ取扱デバイスの第二のハイブリッドメモリキューブリンクにおけるパケット化システム要求を発生させることをさらに含む、実施形態27から実施形態29のうちのいずれかによる方法。
実施形態32。第二のデータ取扱デバイスに関連する第二のメモリドメイン内のハイブリッドメモリキューブデバイスに対して、第一のデータ取扱デバイスの第一のハイブリッドメモリキューブリンクにおけるパケット化メモリ要求を発生させることをさらに含む、実施形態27から実施形態29のうちのいずれかによる方法。
実施形態33。第二のデータ取扱デバイスに関連する第二のメモリドメイン内のハイブリッドメモリキューブデバイスに対して、第一のデータ取扱デバイスの第一のハイブリッドメモリキューブリンクにおけるパケット化メモリ要求を発生させることをさらに含む、実施形態27から実施形態29のうちのいずれかによる方法。
実施形態34。システム内でデータを伝送する方法であって、
第一のデータ取扱デバイスにおけるホストリクエスタエンドポイントからメモリ要求を発生させることと、
第一のデータ取扱デバイスに関連する第一のメモリドメイン内の第一のハイブリッドメモリキューブに対して、第一のデータ取扱デバイスに結合された第一のパケット化メモリリンクにおけるメモリ要求を送信することと、
第一のハイブリッドメモリキューブでシステム要求を受信することであって、システム要求は、第二のデータ取扱デバイス由来である、ことと、
第一のデータ取扱デバイスに結合された第二のパケット化メモリリンクを介して、第一のデータ取扱デバイスにおけるデータ取扱エンドポイントに、第一のハイブリッドメモリキューブからのシステム要求を渡すことと、
を含む、方法。
実施形態35。
第二のデータ取扱デバイスにおけるホストリクエスタエンドポイントからシステム要求を発生させることと、
第一のハイブリッドメモリキューブでシステム要求を受信する前に、
第二のハイブリッドメモリキューブでシステム要求を受信することと、
第二のハイブリッドメモリキューブから第一のハイブリッドメモリキューブに、システム要求を渡すことと、
をさらに含む、実施形態34の方法。
実施形態36。第二のデータ取扱デバイスに、第一のメモリドメイン内の第一のハイブリッドメモリキューブからのメモリ要求のうちのいくつかを渡すことをさらに含む、実施形態34および実施形態35のうちのいずれかによる方法。
実施形態37。第一のメモリドメイン内の第一のハイブリッドメモリキューブから、第一のメモリドメイン内の別のハイブリッドメモリキューブに、メモリ要求のうちのいくつかを渡すことをさらに含む、実施形態34から実施形態36のうちのいずれかによる方法。
実施形態38。第一のメモリドメイン内の第一のハイブリッドメモリキューブから、第二のデータ取扱デバイスに関連する第二のメモリドメイン内の第二のハイブリッドメモリキューブへ、メモリ要求のうちの幾つかを渡すことをさらに含む、実施形態34から実施形態37のうちのいずれかによる方法。
実施形態39。第二のハイブリッドメモリキューブから第二のデータ取扱デバイスにメモリ要求のうちのいくつかを渡すことをさらに含む、実施形態38の方法。
実施形態40。第二のハイブリッドメモリキューブから、第二のメモリドメイン内の第三のハイブリッドメモリキューブにメモリ要求のうちの幾つかを渡すことをさらに含む、実施形態38の方法。
実施形態41。システム内でデータを伝送する方法であって、
第一のデータ取扱デバイスにおけるホストリクエスタエンドポイントからメモリ要求を発生させることと、
第一のデータ取扱デバイスに関連する第一のメモリドメイン内の第一のハイブリッドメモリキューブに対して、第一のデータ取扱デバイスに結合された第一のパケット化メモリリンクにおけるメモリ要求を送信することと、
第一のデータ取扱デバイスにおけるデータ取扱エンドポイントからシステム要求を発生させることと、
第一のデータ取扱デバイスに結合された第二のパケット化メモリリンクにおけるシステム要求を、ハイブリッドメモリキューブハブに送信することと、
ハイブリッドメモリキューブハブから第二のデータ取扱デバイスにシステム要求のうちの幾つかを渡すことと、
を含む、方法。
実施形態42。
第二のデータ取扱デバイスからハイブリッドメモリキューブハブに第二のシステム要求を渡すことと、
第一のデータ取扱デバイスにおけるデータ取扱エンドポイントで、第二のシステム要求を受信することと、
をさらに含む、実施形態41の方法。
実施形態43。ハイブリッドメモリキューブハブから、一つ以上のさらなるメモリキューブハブに、システム要求のうちの幾つかを渡すことをさらに含む、実施形態41および実施形態42のうちのいずれかによる方法。
実施形態44。一つ以上のさらなるメモリキューブハブから、一つ以上のさらなるデータ取扱デバイスにシステム要求のうちの幾つかを渡すことをさらに含む、実施形態43の方法。
実施形態45。ハイブリッドメモリキューブハブと、一つ以上のさらなるメモリキューブハブとの間でシステム要求のうちの幾つかを渡すことは、リングトポロジー、修正リングトポロジーおよびメッシュトポロジーで構成される群から選択される相互接続トポロジー内でシステム要求を渡すことを含む、実施形態43の方法。
実施形態46。第一のメモリドメイン内の第一のハイブリッドメモリキューブから、第一のメモリドメイン内の別のハイブリッドメモリキューブへメモリ要求のうちの幾つかを渡すことをさらに含む、実施形態43の方法。
上述され、添付の図面に図示された本開示の実施形態は、本発明の範囲を限定するものではない。なぜなら、これらの実施形態は本開示の実施形態の単なる例に過ぎないからである。本発明は、添付の請求項とその法的均等物によって定義される。あらゆる均等な実施形態は、本開示の範囲内にある。実際に、本明細書に図示され記述された実施形態に加えて、記述された要素の代替的な有用な組み合わせなどの本開示の様々な改変は、この記述から当業者に明らかとなるだろう。このような改変および実施形態は、また、添付の請求項とその法的均等物の範囲内にある。

Claims (11)

  1. データ取扱デバイスを含むデータ処理システムであって、
    前記データ取扱デバイスは、
    第一のパケット化メモリリンクにおける第一のメモリデバイスに対する伝送用の第一のパケットを発生させるように構成されるデータリクエスタエンドポイントと、
    データ取扱エンドポイントと、
    を含み、
    前記データ取扱エンドポイントは、
    少なくとも一つのさらなるデータ取扱デバイスからの、第二のパケット化メモリリンクにおける前記データ取扱エンドポイントによって受信された第二のパケットを解釈し、かつ
    前記第二のパケットに応じて、前記第二のパケット化メモリリンクを介し、前記少なくとも一つのさらなるデータ取扱デバイスとの間で双方向にデータを伝送する、
    ように構成され、
    前記第一のパケット化メモリリンクおよび前記第二のパケット化メモリリンクは、互いに分離されているが、同一の種類のリンクプロトコルと、同一の種類の物理インターフェイスとを含み、
    前記データ取扱デバイスは、前記データリクエスタエンドポイント及び前記データ取扱エンドポイントのうちの一つ以上に動作可能なように結合された一つ以上のプロセッサを更に含む、データ処理システム。
  2. 前記データ取扱デバイスは、前記データリクエスタエンドポイント及び前記データ取扱エンドポイントのうちの一つ以上に動作可能なように結合された一つ以上のデータ取扱素子をさらに含み、前記一つ以上のデータ取扱素子の各々は、前記一つ以上のプロセッサと、一つ以上の通信素子とを含む、請求項1のデータ処理システム。
  3. 前記データ取扱デバイスは、前記データ取扱エンドポイントと前記一つ以上のデータ取扱素子との間に動作可能なように結合されたデータバッファをさらに含み、前記データバッファは、前記データ取扱エンドポイントのためのアドレススペースを規定するように構成される、請求項2のデータ処理システム。
  4. 一つ以上のハイブリッドメモリキューブデバイスを更に含み、
    前記第一のパケット化メモリリンクおよび前記第二のパケット化メモリリンクは、双方とも、前記一つ以上のハイブリッドメモリキューブデバイスのうちの少なくとも一つに接続されたハイブリッドメモリキューブリンクである、請求項1のデータ処理システム。
  5. 前記データ取扱エンドポイントは、第三のパケットを発生させるようにさらに構成される、請求項1のデータ処理システム。
  6. 前記データリクエスタエンドポイントは、
    前記第一のパケット化メモリリンクにおける前記データリクエスタエンドポイントによって受信された第三のパケットを解釈し、かつ
    前記第三のパケットに応じて、前記第一のパケット化メモリリンクを介して双方向にデータを伝送する、
    ようにさらに構成される、請求項1のデータ処理システム。
  7. 前記データ取扱デバイスおよび前記少なくとも一つのさらなるデータ取扱デバイスのうちの対応する一つの第一のメモリドメインと関連する第一のハイブリッドメモリキューブデバイスを更に含み、前記データ取扱デバイスと前記少なくとも一つのさらなるデータ取扱デバイスとは前記第一のハイブリッドメモリキューブデバイスを介して接続され、前記第一のハイブリッドメモリキューブデバイスは、前記データ取扱デバイスと、前記少なくとも一つのさらなるデータ取扱デバイスとの間で前記第二のパケットを連鎖し、渡すように構成される、請求項1から請求項3のうちのいずれかによるデータ処理システム。
  8. 同一の種類のリンクプロトコルと同一の種類の物理インターフェイスを有し、互いに分離されて設けられた第一及び第二のパケット化メモリリンクに其々対応して設けられたデータリクエスタエンドポイント及びデータ取扱エンドポイントを備えるデータ取扱デバイスにおけるデータ伝送方法であって、前記データ取扱デバイスは、前記データリクエスタエンドポイント及び前記データ取扱エンドポイントのうちの一つ以上に動作可能なように結合された一つ以上のプロセッサを更に含み、前記データ伝送方法は、
    前記第一のパケット化メモリリンクと接続する第一のハイブリッドメモリキューブデバイスへの第一のパケットを前記データリクエスタエンドポイントにおいて発生及び送信することと
    前記第二のパケット化メモリリンクと接続する第二のハイブリッドメモリキューブデバイスを介して他のデータ取扱デバイスからの第二のパケットを受信し、前記データ取扱エンドポイントにおいて解釈することと
    を含むデータ伝送方法。
  9. 前記データ取扱デバイス内において前記第二のパケットで受信されたデータをバッファすることをさらに含む、請求項8のデータ伝送方法。
  10. 前記第二のパケットに対応する要求に応じるときに、送信される読み出しデータをバッファすることをさらに含む、請求項8のデータ伝送方法。
  11. 前記データ取扱デバイスが前記データ取扱エンドポイントにおいて第三のパケットを発生し、且つ前記第二のハイブリッドメモリキューブデバイスを介して前記他のデータ取扱デバイスに送信することをさらに含む、請求項8のデータ伝送方法。
JP2016566810A 2014-05-09 2015-05-01 ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法 Active JP6522663B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/273,867 US9558143B2 (en) 2014-05-09 2014-05-09 Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US14/273,867 2014-05-09
PCT/US2015/028873 WO2015171461A1 (en) 2014-05-09 2015-05-01 Interconnect systems and methods using hybrid memory cube links

Publications (2)

Publication Number Publication Date
JP2017517807A JP2017517807A (ja) 2017-06-29
JP6522663B2 true JP6522663B2 (ja) 2019-05-29

Family

ID=54367966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016566810A Active JP6522663B2 (ja) 2014-05-09 2015-05-01 ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法

Country Status (7)

Country Link
US (4) US9558143B2 (ja)
EP (2) EP4016317A1 (ja)
JP (1) JP6522663B2 (ja)
KR (2) KR101925266B1 (ja)
CN (2) CN111190553B (ja)
TW (1) TWI584116B (ja)
WO (1) WO2015171461A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768689B2 (en) * 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
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
KR102338266B1 (ko) * 2015-09-15 2021-12-16 에스케이하이닉스 주식회사 메모리 네트워크 및 이를 포함하는 시스템
US10528421B2 (en) * 2015-12-29 2020-01-07 Arteris, Inc. Protection scheme conversion
US10866854B2 (en) 2015-12-29 2020-12-15 Arteris, Inc. System and method for reducing ECC overhead and memory access bandwidth
CN106445849B (zh) * 2016-10-21 2019-05-28 郑州云海信息技术有限公司 一种多控制器中处理有序命令的方法
US11397687B2 (en) 2017-01-25 2022-07-26 Samsung Electronics Co., Ltd. Flash-integrated high bandwidth memory appliance
WO2019009585A1 (ko) * 2017-07-03 2019-01-10 한양대학교 산학협력단 저전력 모드를 위한 cpu측과 hmc측의 hmc 컨트롤 장치 및 방법과 hmc 컨트롤 장치의 전력 관리 방법
US10877839B2 (en) 2017-09-22 2020-12-29 Arteris, Inc. Recovery of a coherent system in the presence of an uncorrectable error
JP6991446B2 (ja) * 2018-05-18 2022-01-12 日本電信電話株式会社 パケット処理装置及びそのメモリアクセス制御方法
US20190042511A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Non volatile memory module for rack implementations
US10846250B2 (en) * 2018-11-12 2020-11-24 Arm Limited Apparatus and method for handling address decoding in a system-on-chip
US11030144B2 (en) * 2018-12-14 2021-06-08 Texas Instruments Incorporated Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
KR20210063496A (ko) 2019-11-22 2021-06-02 삼성전자주식회사 프로세싱 회로를 포함하는 메모리 장치, 그리고 시스템 온 칩과 메모리 장치를 포함하는 전자 장치
US11184245B2 (en) 2020-03-06 2021-11-23 International Business Machines Corporation Configuring computing nodes in a three-dimensional mesh topology
TWI802275B (zh) * 2022-02-16 2023-05-11 昱文 李 晶片系統架構
TWI817834B (zh) * 2022-11-18 2023-10-01 鯨鏈科技股份有限公司 記憶體架構及其資料處理方法

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226125A (en) * 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
JP2931490B2 (ja) * 1992-12-18 1999-08-09 富士通株式会社 並列処理方式
JPH06314264A (ja) * 1993-05-06 1994-11-08 Nec Corp セルフ・ルーティング・クロスバー・スイッチ
US5561622A (en) 1993-09-13 1996-10-01 International Business Machines Corporation Integrated memory cube structure
US5541914A (en) 1994-01-19 1996-07-30 Krishnamoorthy; Ashok V. Packet-switched self-routing multistage interconnection network having contention-free fanout, low-loss routing, and fanin buffering to efficiently realize arbitrarily low packet loss
JP2790034B2 (ja) * 1994-03-28 1998-08-27 日本電気株式会社 非運用系メモリ更新方式
US5448511A (en) 1994-06-01 1995-09-05 Storage Technology Corporation Memory stack with an integrated interconnect and mounting structure
US5692155A (en) * 1995-04-19 1997-11-25 International Business Machines Corporation Method and apparatus for suspending multiple duplex pairs during back up processing to insure storage devices remain synchronized in a sequence consistent order
US6970968B1 (en) 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US7012895B1 (en) * 2000-11-17 2006-03-14 University Of Kentucky Research Foundation Packet-switching network with symmetrical topology and method of routing packets
US6947981B2 (en) * 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
JP2003076670A (ja) * 2002-05-27 2003-03-14 Mitsumasa Koyanagi ネットワーク装置およびプロセッシングシステム
US6807600B2 (en) * 2002-07-24 2004-10-19 Intel Corporation Method, system, and program for memory based data transfer
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
US7471623B2 (en) * 2004-11-23 2008-12-30 Hewlett-Packard Development Company, L.P. Systems and methods for a unified computer system fabric
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US7584335B2 (en) 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
US8924680B2 (en) 2007-04-12 2014-12-30 Rambus Inc. Memory controllers, systems, and methods supporting multiple request modes
US7936772B2 (en) * 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
US8787060B2 (en) 2010-11-03 2014-07-22 Netlist, Inc. Method and apparatus for optimizing driver load in a memory package
US8656082B2 (en) * 2008-08-05 2014-02-18 Micron Technology, Inc. Flexible and expandable memory architectures
US8051467B2 (en) * 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
US7929368B2 (en) * 2008-12-30 2011-04-19 Micron Technology, Inc. Variable memory refresh devices and methods
US8549092B2 (en) 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems
US8018752B2 (en) 2009-03-23 2011-09-13 Micron Technology, Inc. Configurable bandwidth memory devices and methods
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
EP2482194B1 (en) * 2009-09-25 2013-12-25 Fujitsu Limited Memory system and memory system control method
US20140013129A1 (en) 2012-07-09 2014-01-09 L. Pierre de Rochemont Hybrid computing module
US9055076B1 (en) * 2011-06-23 2015-06-09 Amazon Technologies, Inc. System and method for distributed load balancing with load balancer clients for hosts
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US9092305B1 (en) * 2012-04-16 2015-07-28 Xilinx, Inc. Memory interface circuit
KR20150024350A (ko) * 2012-05-29 2015-03-06 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 링 토폴로지 스테이터스 인디케이션
US20140015679A1 (en) 2012-07-15 2014-01-16 Green Badge LLC Specialty Plant Moisture Sensing
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US8885510B2 (en) * 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US9047417B2 (en) * 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
US9065722B2 (en) * 2012-12-23 2015-06-23 Advanced Micro Devices, Inc. Die-stacked device with partitioned multi-hop network
US9331958B2 (en) * 2012-12-31 2016-05-03 Advanced Micro Devices, Inc. Distributed packet switching in a source routed cluster server
US9405688B2 (en) * 2013-03-05 2016-08-02 Intel Corporation Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture
US11074169B2 (en) * 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
EP3028163A4 (en) * 2013-07-31 2017-07-12 Intel Corporation A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device
US9501222B2 (en) * 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction
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

Also Published As

Publication number Publication date
US10126947B2 (en) 2018-11-13
CN106462524B (zh) 2020-02-07
EP4016317A1 (en) 2022-06-22
EP3140748B1 (en) 2022-03-16
TWI584116B (zh) 2017-05-21
EP3140748A4 (en) 2018-01-03
US20220011940A1 (en) 2022-01-13
KR101925266B1 (ko) 2018-12-04
US20150324319A1 (en) 2015-11-12
JP2017517807A (ja) 2017-06-29
WO2015171461A1 (en) 2015-11-12
CN111190553A (zh) 2020-05-22
KR101885452B1 (ko) 2018-08-03
TW201606502A (zh) 2016-02-16
KR20170002604A (ko) 2017-01-06
EP3140748A1 (en) 2017-03-15
US11132127B2 (en) 2021-09-28
US20190012089A1 (en) 2019-01-10
CN111190553B (zh) 2023-05-30
US11947798B2 (en) 2024-04-02
KR20180088526A (ko) 2018-08-03
US20170131915A1 (en) 2017-05-11
CN106462524A (zh) 2017-02-22
US9558143B2 (en) 2017-01-31

Similar Documents

Publication Publication Date Title
JP6522663B2 (ja) ハイブリッドメモリキューブリンクを用いる相互接続システムおよび方法
US11677662B2 (en) FPGA-efficient directional two-dimensional router
JP6201065B2 (ja) 再構成可能なメモリシステムのための仮想化された物理アドレス
Jun et al. Scalable multi-access flash store for big data analytics
JP2017515239A (ja) ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
US10922258B2 (en) Centralized-distributed mixed organization of shared memory for neural network processing
KR20200139812A (ko) 네트워크 스위치에서의 큐
Lant et al. Enabling shared memory communication in networks of MPSoCs
US20140086247A1 (en) Network on a chip socket protocol
JP6144348B2 (ja) チップソケットプロトコル上のネットワーク
US11526460B1 (en) Multi-chip processing system and method for adding routing path information into headers of packets
Theodoropoulos et al. REMAP: Remote mEmory manager for disaggregated platforms
Engelhardt et al. Towards flexible automatic generation of graph processing gateware
Lant Enabling Independent Communication for FPGAs in High Performance Computing
Nicopoulos et al. Digest of Additional NoC MACRO-Architectural Research

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190424

R150 Certificate of patent or registration of utility model

Ref document number: 6522663

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