JP2022510803A - バス上のメモリ要求チェーン - Google Patents

バス上のメモリ要求チェーン Download PDF

Info

Publication number
JP2022510803A
JP2022510803A JP2021527087A JP2021527087A JP2022510803A JP 2022510803 A JP2022510803 A JP 2022510803A JP 2021527087 A JP2021527087 A JP 2021527087A JP 2021527087 A JP2021527087 A JP 2021527087A JP 2022510803 A JP2022510803 A JP 2022510803A
Authority
JP
Japan
Prior art keywords
request message
address
memory
request
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021527087A
Other languages
English (en)
Inventor
ン フィリップ
カリヤナスンダラム ヴィドヒャナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Advanced Micro Devices Inc
Original Assignee
ATI Technologies ULC
Advanced Micro Devices Inc
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 ATI Technologies ULC, Advanced Micro Devices Inc filed Critical ATI Technologies ULC
Publication of JP2022510803A publication Critical patent/JP2022510803A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/1689Synchronisation and timing concerns
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • 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/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

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)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

バスプロトコル機能は、高速相互接続バス上でメモリアクセス要求をチェーンするために提供され、シグナリングのオーバーヘッドの低減を可能にする。バスを介して複数のメモリ要求メッセージが受信される。第1のメッセージは、ソース識別子、ターゲット識別子、第1のアドレス、及び、第1のペイロードデータを有する。第1のペイロードデータは、メモリ内の第1のアドレスによって示される位置に記憶される。要求メッセージのうち選択された第2の要求メッセージにおいて、第1の要求メッセージに関連するチェーンインジケータと、第2のペイロードデータとが受信される。第2の要求メッセージはアドレスを含まない。チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスが、第1のアドレスに基づいて計算される。第2のペイロードデータは、メモリ内の第2のアドレスによって示される位置に記憶される。【選択図】図6

Description

システム相互接続バス規格は、回路基板、マルチチップモジュール、サーバノード、場合によってはサーバラック全体又はネットワークシステム上の様々な要素間の通信を提供する。例えば、よく知られているPCIeまたはPCIエキスプレス(Peripheral Component Interconnect Express)コンピュータ拡張バスは、マザーボード上の要素間の相互接続と、拡張カードへの接続と、を提供する高速シリアル拡張バスである。マルチプロセッサシステム、特に異なるチップ上の複数のプロセッサが相互接続してメモリを共有するシステムには、改良されたシステム相互接続規格が必要である。
多くのシステム相互接続バスで使用されるシリアル通信レーンは、専用メモリバスが提供するようなアドレス情報用の個別のパスを提供しない。従って、このようなバスを介してメモリアクセス要求を送信するには、要求に関連付けられたアドレスとデータの両方をシリアル形式で送信する必要がある。この方法でアドレス情報を送信すると、シリアル通信リンクにかなりのオーバーヘッドが追加される。
CCIXアプリケーションのための例示的なトポロジで接続されたデータ処理プラットフォームを示すブロック図である。 CCIXアプリケーションのための別の例示的なトポロジで接続されたデータ処理プラットフォームを示すブロック図である。 CCIXアプリケーションのためのより複雑な例示的なトポロジで接続されたデータ処理プラットフォームを示すブロック図である。 CCIXアプリケーションのための別の例示的なトポロジによるデータ処理プラットフォームを示すブロック図である。 いくつかの実施形態による、図2のトポロジに従って構成された例示的なデータ処理プラットフォームの設計を示すブロック図である。 いくつかの実施形態による、チェーンメモリ要求メッセージのためのパケット構造を示すブロック図である。 いくつかの実施形態による、チェーンメモリ書き込み要求を満たすプロセスを示すフロー図である。 いくつかの実施形態による、チェーンメモリ読み出し要求を満たすプロセスを示すフロー図である。
以下の説明において、異なる図面において同じ符号を使用した場合、類似又は同一の要素を示す。特に明記しない限り、「結合される」という用語及びそれに関連する動詞の形態は、当該技術分野において周知の手段による直接接続及び間接電気接続の両方を含み、特に明記しない限り、直接接続の如何なる説明も、間接電気接続の適切な形態を用いる代替の実施形態と同様に示唆する。
装置は、少なくとも1つのメモリチップを備えたメモリと、メモリに接続されたメモリコントローラと、データバス上でデータを送受信するメモリコントローラに接続されたバスインタフェース回路と、を含む。メモリコントローラ及びバスインタフェース回路は、データバスを介して複数の要求メッセージを受信することを含むプロセスを実行するように共に動作する。要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、メモリアクセスが要求される第1のアドレス、及び、第1のペイロードデータが受信される。プロセスは、第1のペイロードデータを、メモリ内の第1のアドレスによって示される位置に記憶することを含む。要求メッセージのうち選択された第2の要求メッセージにおいて、プロセスは、第1の要求メッセージに関連するチェーンインジケータ(chaining indicator)と、第2のペイロードデータと、を受信し、第2の要求メッセージは、メモリアクセスが要求されるアドレスを含まない。チェーンインジケータに基づいて、プロセスは、メモリアクセスが要求される第2のアドレスを、第1のアドレスに基づいて計算する。次に、プロセスは、第2のペイロードデータを、メモリ内の第2のアドレスによって示される位置に記憶する。
方法は、データバスを介して複数の要求メッセージを受信することを含む。バスインタフェース回路の制御の下で、方法は、要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、メモリアクセスが要求される第1のアドレス、及び、第1のペイロードデータを受信することを含む。第1のペイロードデータは、メモリ内の第1のアドレスによって示される位置に記憶される。要求メッセージのうち選択された第2の要求メッセージにおいて、第1の要求メッセージに関連するチェーンインジケータと、第2のペイロードデータと、が受信され、第2の要求メッセージは、メモリアクセスが要求されるアドレスを含まない。チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスが、第1のアドレスに基づいて計算される。方法は、第2のペイロードデータを、メモリ内の第2のアドレスによって示される位置に記憶する。
方法は、データバスを介して複数の要求メッセージを受信することと、バスインタフェース回路の制御の下で、要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、及び、メモリアクセスが要求される第1のアドレスを受信することと、を含む。バスインタフェース回路の制御の下、メモリ内の第1のアドレスによって示される位置から第1のペイロードデータを含む応答メッセージが送信される。要求メッセージのうち選択された第2の要求メッセージにおいて、第1の要求メッセージに関連するチェーンインジケータが受信され、第2の要求メッセージは、メモリアクセスが要求されるアドレスを含まない。チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスが、第1のアドレスに基づいて計算される。方法は、メモリ内の第2のアドレスによって示される位置から第2のペイロードデータを含む第2の応答メッセージを送信する。
システムは、少なくとも1つのメモリチップを有するメモリと、メモリに接続されたメモリコントローラと、メモリコントローラに接続され、バス上でデータを送受信するように構成されたバスインタフェース回路と、を含むメモリモジュールを備える。メモリコントローラ及びバスインタフェース回路は、データバスを介して複数の要求メッセージを受信することを含むプロセスを実行するように共に動作する。要求メッセージのうち選択された第1の要求メッセージにおいて、プロセスは、ソース識別子、ターゲット識別子、メモリアクセスが要求される第1のアドレス、及び、第1のペイロードデータを受信する。プロセスは、第1のペイロードデータを、メモリ内の第1のアドレスによって示される位置に記憶することを含む。要求メッセージのうち選択された第2の要求メッセージにおいて、第1の要求メッセージに関連するチェーンインジケータと、第2のペイロードデータとが受信され、第2の要求メッセージは、メモリアクセスが要求されるアドレスを含まない。チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスが、第1のアドレスに基づいて計算される。次に、プロセスは、第2のペイロードデータを、メモリ内の第2のアドレスによって示される位置に記憶する。また、システムは、バスに接続された第2のバスインタフェース回路を有するプロセッサを備え、プロセッサは、データバスを介して要求メッセージを送信し、応答を受信する。
図1は、アクセラレータ向けキャッシュコヒーレントインターコネクト(CCIX:Cache Coherent Interconnect for Accelerators)アプリケーションのための例示的なトポロジで接続されたデータ処理プラットフォーム100を示すブロック図である。ホストプロセッサ110(「ホストプロセッサ」、「ホスト」)は、CCIXプロトコルを使用してアクセラレータモジュール120に接続されており、アクセラレータモジュール120は、同じデバイス上にCCIXアクセラレータと、付随するメモリと、を含む。CCIXプロトコルは、CCIX Consortium社によって発行されたCCIX Base Specification1.0、及びそれ以降のバージョンの規格に含まれる。この規格では、ハードウェアベースのキャッシュコヒーレンスを可能にするCCIXリンクが提供されており、これは、アクセラレータやストレージアダプタにまで拡張される。CCIXでは、キャッシュメモリに加えて、システムメモリを拡張して、CCIXデバイス拡張メモリを含めることができる。CCIXアーキテクチャでは、複数のプロセッサが単一のプールとしてシステムメモリにアクセスすることができる。このようなプールは、処理能力が増えると非常に大きくなる場合があり、相互接続された多くのプロセッサ上でスレッドを処理するためのアプリケーションデータをメモリプールに保持する必要がある。同じ理由で、ストレージメモリも大きくなる可能性がある。
データ処理プラットフォーム100は、通常、統合メモリコントローラを介してホストプロセッサ110に接続されたホストランダムアクセスメモリ(RAM)105を備える。アクセラレータモジュール120のメモリを、ランダムアクセスメモリ(RAM)105に加えてシステムメモリの一部としてホストマッピングすることができ、又は、個別の共有メモリプールとして存在することができる。CCIXプロトコルは、データ処理プラットフォーム100と共に使用されて、CCIXの加速及びキャッシュコヒーレンシ機能に加えて、本明細書で提供される機能を含む拡張メモリ機能を提供する。
図2は、CCIXアプリケーションのための別の単純なトポロジを有するデータ処理プラットフォーム200を示すブロック図である。データ処理プラットフォーム200は、ホストRAM105に接続されたホストプロセッサ210を備える。ホストプロセッサ210は、CCIXインタフェース及びバスを介して、メモリを備えるCCIX対応拡張モジュール230と通信する。図1の実施形態と同様に、拡張モジュール230のメモリを、システムメモリの一部としてホストマッピングすることができる。拡張メモリ機能は、メモリ技術及びメモリサイズの両方に関して、拡張されたメモリ容量を提供するか、ホストプロセッサ210が直接アクセスすることができるメモリ技術を超える新たなメモリ技術の統合を可能にする。
図3は、CCIXアプリケーションのための切り替えトポロジを有するデータ処理プラットフォーム300を示すブロック図である。ホストプロセッサ310は、CCIX対応スイッチ350に接続されており、スイッチ350は、アクセラレータモジュール320及びCCIX対応メモリ拡張モジュール330にも接続する。スイッチ350を介して、拡張されたメモリを接続することによって、以前の直接接続されたトポロジの拡張されたメモリ機能及び容量が、データ処理プラットフォーム300に提供される。
図4は、CCIXアプリケーションのための別の例示的なトポロジによるデータ処理プラットフォーム400を示すブロック図である。ホストプロセッサ410は、CCIXアクセラレータ420のグループにリンクされており、CCIXアクセラレータ420のグループは、隣接するノード420のペア間のCCIXリンクによって示されるように、CCIXメッシュトポロジのノードである。このトポロジは、複数のアクセラレータ420及びプロセッサ間での計算データの共有を可能にする。さらに、プラットフォーム400は、アクセラレータ付きメモリ(accelerator-attached memory)を含むように拡張されてもよく、共有データをホストRAM105又はアクセラレータ付きメモリの何れかに常駐させることができる。
データ処理プラットフォームについて幾つかの例示的なトポロジが示されているが、本明細書の技術は、メッシュトポロジを含む他の適切なトポロジと共に使用されてもよい。
図5は、図2のトポロジに従って構成された例示的なデータ処理プラットフォーム500の設計を示すブロック図である。一般に、ホストプロセッサ510は、CCIXインタフェースを介して拡張モジュール530に接続する。この例では、直接のポイントツーポイント接続が示されているが、この例は限定的なものではなく、本明細書の技術は、スイッチ接続等のCCIXデータ処理プラットフォームを使用する他のトポロジやパケットベースの通信リンクを使用する他のデータ処理プロトコルで採用されてもよい。ホストプロセッサ510は、オンチップ相互接続ネットワーク504によって接続された4つのプロセッサコア502を含む。オンチップ相互接続は、各プロセッサをI/Oポート509にリンクし、この実施形態では、I/Oポート509は、CCIXトランザクション層510及びPCIeトランザクション層512を含むように拡張されたPCIeポートである。I/Oポート509は、PCIeバス520上のPCIeトランスポート上にオーバーレイされる拡張モジュール530へのCCIXプロトコル相互接続を提供する。PCIeバス520は、1つ、4つ、8つ、又は、16のレーン等の複数のレーンを備えてもよく、各レーンは、2つの単方向シリアルリンクを有し、1つのリンクは送信専用であり、1つのリンクは受信専用である。或いは、同様のバストラフィックが、PCIe以外のトランスポートを介して伝送されてもよい。
PCIeトランスポートを介してCCIXを使用するこの例では、PCIeトランザクション層によって発生するレイテンシを低減しながら、PCIeポートが拡張されて、シリアルのパケットベースのCCIXコヒーレンシトラフィックを伝送する。CCIX通信のこのようなレイテンシを低減するために、CCIXは、標準のPCIeトランザクション層512と共に、PCIeデータリンク層514に独立してリンクする軽量のトランザクション層510を提供する。さらに、CCIXリンク層508は、PCIeのような物理トランスポート上にオーバーレイされ、CCIXプロトコルメッセージのデッドロックのない通信に必要な十分な仮想トランザクションチャネルを提供する。CCIXプロトコル層コントローラ506は、リンク層508をオンチップ相互接続に接続し、両方向のトラフィックを管理する。CCIXプロトコル層コントローラ506は、ホストプロセッサ510上で実行される幾つかの定義されたCCIXエージェント505の何れかによって操作される。CCIX要求を送受信するCCIXプロトコルコンポーネントは、CCIXエージェントと呼ばれる。エージェントは、要求エージェント、ホームエージェント、又は、スレーブエージェントであってもよい。要求エージェントは、読み出し及び書き込みトランザクションのソースであるCCIXエージェントである。ホームエージェントは、所定のアドレス範囲のコヒーレンシ及びメモリへのアクセスを管理するCCIXエージェントである。CCIXプロトコルで定義されているように、ホームエージェントは、キャッシュラインにキャッシュ状態の変更が必要な場合に、必要な要求エージェントにスヌープトランザクションを送信することによってコヒーレンシを管理する。各CCIXホームエージェントは、所定のアドレス範囲のコヒーレンシポイント(PoC:Point of Coherency)及びシリアル化ポイント(PoS:Point of Serialization)として機能する。CCIXにより、システムメモリを拡張して、外部CCIXデバイスに接続されたメモリを含めることができる。関連するホームエージェントが1つのチップ上にあり、ホームエージェントに関連する物理メモリの一部又は全てが別のチップ(通常、何らかのタイプの拡張メモリモジュール)にある場合、拡張メモリのコントローラは、スレーブエージェントと呼ばれる。CCIXプロトコルは、エラーエージェントも定義し、エラーエージェントは、通常、エラーを処理するための別のエージェントを有するプロセッサで実行される。
拡張モジュール530は、一般に、メモリ532と、メモリコントローラ534と、バスインタフェース回路536と、を備え、バスインタフェース回路536は、PCIeバス520に接続された、ホストプロセッサ510のものと同様のI/Oポート509を備える。複数のチャネル又は各方向の単一チャネルが、必要な帯域幅に応じた接続で使用されてもよい。CCIXリンク層を有するCCIXポート508は、I/Oポート509のCCIXトランザクション層からCCIXメッセージを受信する。CCIXスレーブエージェント507は、CCIXプロトコル層506を含み、CCIXエージェント505からのメモリ要求を実行する。メモリコントローラ534は、スレーブエージェント507の制御下で読み出し及び書き込みを管理するためにメモリ532に接続されている。メモリコントローラ534は、I/Oポート509のポート回路、又は、これに関連するCCIXプロトコル論理層コントローラ506若しくはCCIXリンク層508の一部又は全てを有するチップに統合されてもよいし、別のチップにあってもよい。拡張モジュール530は、少なくとも1つのメモリチップを含むメモリ532を備える。この例では、メモリは、ストレージクラスメモリ(SCM)又は不揮発性メモリ(NVM)である。しかしながら、これらの代替形態は限定的ではなく、多くのタイプのメモリ拡張モジュールが、本明細書に記載された技術を採用してもよい。例えば、大容量フラッシュストレージや、RAMバッファを有する3Dクロスポイントメモリ等のように、NVMとRAMが混在するメモリを使用してよい。
図6は、いくつかの実施形態による、チェーンメモリ要求メッセージのためのパケット構造を示すブロック図である。図示されたフォーマットは、本明細書の例示的な実施形態によるメモリ拡張モジュール130,230,330,430,530との通信に使用される。パケット600は、ペイロード608と、CCIX/PCIe等の相互接続リンクプロトコルの幾つかのプロトコル層で提供される制御情報と、を含む。物理層は、開始及び終了区切り文字(delimiters)を含むフレーミング情報602を各パケットに追加する。データリンク層は、パケットをシーケンス番号604の順に配置する。トランザクション層は、パケットタイプ、リクエスタ(requestor)、アドレス、サイズ、及び、トランザクション層プロトコルに固有の他の情報を識別する様々なヘッダ情報を含むパケットヘッダ606を追加する。ペイロード608は、CCIXプロトコル層によってフォーマットされた幾つかのメッセージ610,612を含む。メッセージ610,612は、CCIXプロトコル層によって、宛先デバイスのターゲット受信者CCIXエージェントで抽出され、処理される。
メッセージ610は、フルサイズのメッセージヘッダを有するCCIXプロトコルメッセージである。メッセージ612は、メッセージ610よりも少ないメッセージフィールドを有するチェーンメッセージである。チェーンメッセージは、要求メッセージ612が前の要求メッセージ610の後続のアドレスに向けられていることを示す、要求メッセージ612に関して最適化されたメッセージが送信されることを可能にする。メッセージ610は、メッセージペイロードデータと、アドレスと、いくつかのメッセージフィールド(ソースID、ターゲットID、メッセージタイプ、サービス品質(QoS)優先度、要求属性(Req Attr)、要求オペコード(ReqOp)、非セキュア領域(NonSec)ビット及びアドレス(Addr)を含む、CCIX規格バージョン1.0でさらに規定されている)と、を含む。他の幾つかのフィールドが、メッセージ610,612のCCIXメッセージヘッダに含まれてもよいが、メッセージチェーン機能に関係しないので、図示されていない。
「ReqChain」の要求タイプを示す要求オペコードの指定された値は、チェーン要求612を示すために使用される。チェーン要求612は、要求属性、アドレス、非セキュア領域又はサービス品質優先度フィールドを含まず、これらのフィールドを含む4B整列バイトは、チェーン要求メッセージには存在しない。アドレスを除くこれらのフィールドは、元の要求610と全て同一であることが示されている。チェーン要求のターゲットIDフィールド及びソースIDフィールドは、元の要求と同じである。タグと呼ばれる送信ID(TxnID)フィールドは、他のチェーン要求612に対する、特定のチェーン要求612の番号付けされた順序を提供する。チェーン要求612の実際の要求オペコードは、要求オペコード値がチェーン要求612を示すので、受信エージェントによって元の要求610と同一であると解釈される。各チェーンメッセージ612のアドレス値は、64Bキャッシュラインの場合には64を、128Bキャッシュラインの場合には128を、チェーン内の前の要求のアドレスに追加することによって、取得される。或いは、チェーンメッセージ612は、オプションとして、図において点線のボックスで示されているように、オフセットフィールドを含んでもよい。オフセットフィールドに記憶されたオフセットは、デフォルトのキャッシュラインサイズによって提供される64B又は128Bとは異なるオフセット値を提供してもよく、チェーン要求でデータ構造の特定の部分を変更することを可能にする。オフセット値は、負の場合もある。
チェーン要求間で、スヌープや応答メッセージ等の非要求メッセージをインターリーブすることが許可されている。任意の要求のアドレスフィールドが、前の要求にチェーンされ得る後の要求によって要求されてもよい。いくつかの実施形態では、要求チェーンは、キャッシュラインサイズのアクセスであって、キャッシュラインサイズに合わせたアクセスを有する全ての要求に対してのみサポートされる。いくつかの実施形態では、チェーン要求は、同じパケット内でのみ発生することができる。他の実施形態では、チェーン要求は、送信IDフィールドを介して達成される順序付けによって、複数のパケットに亘ることが可能である。
図7は、いくつかの実施形態による、チェーンメモリ書き込み要求を満たすためのプロセス700を示すフロー図である。チェーンメモリ書き込みプロセス700は、ブロック701において、図5のエージェント507等のCCIXスレーブエージェントを含むメモリ拡張モジュールによって開始される。この例では、メモリ拡張モジュールがチェーンメモリ書き込みを実行するが、上記の例のようなホストプロセッサ又はアクセラレータモジュールも、書き込みチェーンメモリ要求及び読み出しチェーンメモリ要求を満たしてもよい。チェーン要求は、通常、CCIXマスタエージェント又はホームエージェントによって準備され、送信される。これらのエージェントは、ホストプロセッサ又はアクセラレータプロセッサ上のファームウェアで実行されてもよい。
プロセス700は、概して、例えば、メモリコントローラ534と協働してバスインタフェース回路536上で実行されるCCIXプロトコル層506(図5)等のCCIXプロトコル層によって実行される。特定の順序が示されているが、この順序は限定的ではなく、多くのチェーンメッセージに対して多くのステップを並行して実行してもよい。ブロック702において、プロセス700は、複数の要求メッセージを有するパケット608(図6)を受信する。ブロック704において、スレーブエージェント507のターゲットIDを有するメッセージが、処理を開始する。第1のメッセージは、要求610等のフルメモリ書き込み要求であり、ブロック706において最初に処理され、後のチェーンメッセージ612を解釈するための基礎となるメッセージフィールドデータ及びアドレス情報を提供する。第1の書き込みメッセージは、メッセージフィールドを抽出し、解釈することによって処理される。ブロック708において、第1のメッセージに応じて、ペイロードデータが、メッセージで指定されたアドレスによって示される位置で、メモリ532等のメモリに書き込まれる。
第1のチェーン要求メッセージ612は、ブロック710で処理される。チェーンインジケータは、CCIXプロトコル層によって認識され、CCIXプロトコル層は、チェーン要求に存在しないメッセージフィールド(要求属性、非セキュア領域、アドレス、及び、サービス品質の優先度のフィールド)の値を提供することによって応答する。これらの値は、アドレス値を除いて、ブロック706において処理された第1のメッセージ610から提供される。ブロック712において、チェーンメッセージ612の各々について、第1のメッセージ610からのアドレス、又は、送信IDフィールドによって提供されるメッセージ順序によって示される以前のチェーンメッセージからのアドレスに対してオフセット値を適用することによって、アドレス値が提供される。次に、プロセス700は、ブロック714において、現在のメッセージのペイロードデータを、メモリ内の計算されたアドレスによって示される位置に記憶する。
プロセス700は、ブロック716に示すように、チェーンメッセージが受信パケットに存在する限り、チェーンメッセージを処理し続ける。チェーンメッセージが存在しない場合、チェーンメモリ書き込みのプロセスは、ブロック718で終了する。チェーンメッセージが複数のパケットに亘って存在する実施形態では、フラグ又は送信IDフィールドの特定の値等の他のインジケータを使用して、チェーン内の最終メッセージを識別してよい。肯定応答メッセージ(positive acknowledgement messages)が、実行された各メッセージに応じて送信されてもよい。メッセージ処理はパイプライン化されているため、応答は、必ずしもチェーン要求の順序で提供されるとは限らない。
図8は、いくつかの実施形態による、チェーンメモリ読み出し要求を満たすプロセス800を示すフロー図である。チェーンメモリ読み出しプロセス800は、ブロック801で開始され、書き込みプロセスに関して上述したように、メモリ拡張モジュール、ホストプロセッサ又はアクセラレータモジュールによって実行されてもよい。チェーン読み出し要求は、通常、ホストプロセッサ又はアクセラレータプロセッサ上で実行されるCCIXマスタエージェント又はホームエージェントによって準備され、送信されてもよい。
プロセス800は、プロセス700と同様に、概して、メモリコントローラと協働してCCIXプロトコル層によって実行される。ブロック802において、プロセス800は、複数の要求メッセージを有するパケット608(図6)を受信する。ブロック804において、スレーブエージェント507のターゲットIDを有するメッセージが、処理を開始する。ブロック806において、第1の読み出し要求メッセージは、メッセージフィールド及びアドレスを抽出及び解釈することによって処理され、後のチェーンメッセージ612を解釈するための基礎を提供する。ブロック808において、第1のメッセージが、指定されたアドレスの読み出し要求として解釈されることに応じて、アドレスによって示されるメモリ内の位置が読み出され、読み出しデータで準備された応答メッセージが生成される。プロセスステップが特定の順序で示されているが、実際の読み出し要求は、全て、応答を返すことと無関係にパイプライン化されてもよく、その結果、メモリコントローラが、任意の特定のプロセスブロックを順不同で実行してよいことに留意されたい。従って、応答は、必ずしも要求順に返信されるとは限らない。
次に、第1のメッセージにチェーンされた後続のチェーンメッセージは、ブロック810から開始して処理され、実行される。ブロック812において、後続の各チェーンメッセージについて、第1のメッセージからのアドレス、又は、送信IDフィールドによって提供されるメッセージ順序によって示される以前の連鎖メッセージからのアドレスに対してオフセット値を適用することによって、アドレス値が提供される。次に、プロセス800は、ブロック814において、計算されたアドレスによって示される位置でメモリ532を読み出し、読み出しデータをペイロードデータとして含む、読み出し要求メッセージに対する応答メッセージを準備する。プロセス800は、ブロック816に示すように、チェーンメッセージが受信パケットに存在する限り、チェーンメッセージを処理し続ける。これ以上チェーンメッセージが存在しない場合、チェーンメモリ読み出しのプロセスはブロック818で終了し、応答メッセージが送信される。応答メッセージも同様にチェーンされて、両方向においてより効率的な通信オーバーヘッドを提供してもよい。
拡張PCIeポート609、CCIXエージェント505,507及びバスインタフェース回路536、又はこれらの任意の部分は、データベース又は他のデータ構造の形態のコンピュータアクセス可能データ構造によって記述又は表現されてもよく、コンピュータアクセス可能データ構造は、プログラムによって読み出すことができ、直接又は間接的に使用されて、集積回路を製造することができる。例えば、このデータ構造は、Verilog又はVHDL等のハイレベル設計言語(HDL)にけるハードウェア機能の動作レベル記述又はレジスタ転送レベル(RTL)記述であってよい。記述は、記述を合成して、合成ライブラリからのゲートのリストを含むネットリストを生成する合成ツールによって読み出されてもよい。ネットリストは、集積回路を含むハードウェアの機能も表すゲートのセットを含む。次に、ネットリストを配置及びルーティングして、マスクに適用される幾何学的形状を記述するデータセットを生成することができる。次いで、マスクを様々な半導体製造工程において使用して、集積回路を製造することができる。或いは、コンピュータアクセス可能記憶媒体上のデータベースは、必要に応じて、ネットリスト(合成ライブラリ有り又は無し)若しくはデータセット、又は、グラフィックデータシステム(GDS)IIデータであってもよい。
本明細書の技術は、様々な実施形態において、典型的なRAMメモリインタフェースではなく、パケット化された通信リンクを介してメモリにアクセスすることをプロセッサに要求する任意の適切な製品(例えば)と共に使用されてよい。さらに、この技術は、GPU及びCPUアーキテクチャ又はASICアーキテクチャ、並びに、プログラマブル論理アーキテクチャで実装されたデータ処理プラットフォームを使用するために広く適用可能である。
特定の実施形態を説明してきたが、これらの実施形態に対する様々な変更が当業者には明らかであろう。例えば、フロントエンドコントローラ及びメモリチャネルコントローラは、マルチチップモジュール又は垂直に構成された半導体回路の様々な形態のメモリスタックと統合されてもよい。異なるタイプのエラー検出及びエラー訂正符号化を使用することができる。
従って、添付の特許請求の範囲は、開示された実施形態の範囲内に含まれる、開示された実施形態の全ての変更を包含することを意図している。

Claims (36)

  1. 少なくとも1つのメモリチップを有するメモリと、
    前記メモリに結合されたメモリコントローラと、
    前記メモリコントローラに結合され、データバスでデータ送受信するように構成されたバスインタフェース回路と、
    を備える、装置であって、
    前記メモリコントローラ及び前記バスインタフェース回路は、共に、
    前記データバスを介して複数の要求メッセージを受信することと、
    前記要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、メモリアクセスが要求される第1のアドレス、及び、第1のペイロードデータを受信することと、
    前記第1のペイロードデータを、メモリ内の前記第1のアドレスによって示される位置記憶することと、
    前記要求メッセージのうち選択された第2の要求メッセージであって、メモリアクセスが要求されるアドレスを含まない第2の要求メッセージにおいて、前記第1の要求メッセージに関連するチェーンインジケータと、第2のペイロードデータと、を受信することと、
    前記チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスを前記第1のアドレスに基づいて計算することと、
    前記第2のペイロードデータを、前記メモリ内の前記第2のアドレスによって示される位置に記憶することと、
    を行うように構成されている、
    装置。
  2. 前記バスインタフェース回路は、前記データバスを介して受信されたパケット内の前記複数の要求メッセージを受信するように構成されている、
    請求項1の装置。
  3. 前記メモリコントローラ及び前記バスインタフェース回路は、共に、前記第2の要求メッセージの後続の複数の要求メッセージを受信することと、前記後続の複数のメッセージの各々について、各々のチェーンインジケータを識別することと、メモリアクセスが要求される後続のアドレスを前記第1のアドレスに基づいて計算することと、を行うように構成されている、
    請求項2の装置。
  4. 前記第2の要求メッセージ及び前記後続の複数の要求メッセージは、前記第2のアドレス及び前記後続のアドレスを計算する順序を示すトランザクション識別子を含む、
    請求項3の装置。
  5. 前記メモリコントローラは、前記第1の要求メッセージ及び前記第2の要求メッセージを選択的に処理するように構成されており、
    前記第1の要求メッセージ及び前記第2の要求メッセージは、前記パケット内で隣接していない、
    請求項2の装置。
  6. 前記データバスは、前記アクセラレータ向けキャッシュコヒーレントインターコネクト(CCIX)規格に準拠している、
    請求項2の装置。
  7. 前記メモリコントローラは、前記第1の要求メッセージ及び前記第2の要求メッセージにチェーンされた後続の要求メッセージを選択的に処理するように構成されており、
    前記後続の要求メッセージは、前記第1の要求メッセージ及び前記第2の要求メッセージとは別のパケットで受信される、
    請求項1の装置。
  8. 前記第2のアドレスは、キャッシュラインサイズの所定のオフセットサイズに基づいて計算される、
    請求項1の装置。
  9. 前記第2のアドレスは、前記第2の要求メッセージに含まれるオフセットサイズに基づいて計算される、
    請求項1の装置。
  10. データバスを介して複数の要求メッセージを受信することと、
    バスインタフェース回路の制御の下で、前記要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、メモリアクセスが要求される第1のアドレス、及び、第1のペイロードデータを受信することと、
    メモリコントローラの制御の下で、前記第1のペイロードデータを、メモリ内の前記第1のアドレスによって示される位置に記憶することと、
    前記バスインタフェース回路の制御の下で、前記要求メッセージのうち選択された第2の要求メッセージであって、メモリアクセスが要求されるアドレスを含まない第2の要求メッセージにおいて、前記第1の要求メッセージに関連するチェーンインジケータと、第2のペイロードデータと、を受信することと、
    前記チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスを前記第1のアドレスに基づいて計算することと、
    前記バスインタフェース回路の制御の下で、前記第2のペイロードデータを、前記メモリ内の前記第2のアドレスによって示される位置に記憶することと、を含む、
    方法。
  11. 前記複数の要求メッセージは、前記データバスを介して受信されたパケットに含まれている、
    請求項10の方法。
  12. 前記第2の要求メッセージの後続の複数の要求メッセージを受信することと、前記後続の複数のメッセージの各々について、各々のチェーンインジケータを識別することと、メモリアクセスが要求される後続のアドレスを前記第1のアドレスに基づいて計算することと、をさらに含む、
    請求項11の方法。
  13. 前記第2の要求メッセージ及び前記後続の複数の要求メッセージは、前記第2の要求メッセージアドレス及び後続の要求メッセージアドレスを計算する順序を示すトランザクション識別子を含む、
    請求項12の方法。
  14. 前記第1の要求メッセージ及び前記第2の要求メッセージを選択的に処理することをさらに含み、
    前記第1の要求メッセージ及び前記第2の要求メッセージは、前記パケット内で隣接していない、
    請求項11の方法。
  15. 前記データバスは、前記アクセラレータ向けキャッシュコヒーレントインターコネクト(CCIX)規格に準拠している、
    請求項11の装置。
  16. 前記第1の要求メッセージ及び前記第2の要求メッセージにチェーンされた後続の要求メッセージを選択的に処理することをさらに含み、
    前記後続の要求メッセージは、前記第1の要求メッセージ及び前記第2の要求メッセージとは別のパケットで受信される、
    請求項10の方法。
  17. 前記第2のアドレスは、キャッシュラインサイズの所定のオフセットサイズに基づいて計算される、
    請求項10の方法。
  18. 前記第2のアドレスは、前記第2の要求メッセージに含まれるオフセットサイズに基づいて計算される、
    請求項10の方法。
  19. データバスを介して複数の要求メッセージを受信することと、
    バスインタフェース回路の制御の下で、前記要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、及び、メモリアクセスが要求される第1のアドレスを受信することと、
    前記バスインタフェース回路の制御の下で、前記メモリ内の前記第1のアドレスによって示される位置から第1のペイロードデータを含む応答メッセージを送信することと、
    前記バスインタフェース回路の制御の下で、前記要求メッセージのうち選択された第2の要求メッセージであって、メモリアクセスが要求されるアドレスを含まない第2の要求メッセージにおいて、前記第1の要求メッセージに関連するチェーンインジケータを受信することと、
    前記チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスを前記第1のアドレスに基づいて計算することと、
    前記バスインタフェース回路の制御の下で、メモリ内の前記第2のアドレスによって示される位置から第2のペイロードデータを含む第2の応答メッセージを送信することと、を含む、
    方法。
  20. 前記複数の要求メッセージは、前記データバスを介して受信されるパケットに含まれている、
    請求項19の方法。
  21. 前記第2の要求メッセージの後続の複数の要求メッセージを受信することと、前記後続の複数のメッセージの各々について、各々のチェーンインジケータを識別することと、メモリアクセスが要求される後続のアドレスを前記第1のアドレスに基づいて計算することとをさらに含む、
    請求項20の方法。
  22. 前記第2の要求メッセージ及び前記後続の複数の要求メッセージは、前記第2の要求メッセージアドレス及び後続の要求メッセージアドレスを計算する順序を示すトランザクション識別子を含む、
    請求項21の方法。
  23. 前記第1の要求メッセージ及び前記第2の要求メッセージを選択的に処理することをさらに含み、前記第1の要求メッセージ及び前記第2の要求メッセージは、前記パケット内で隣り合っていない、請求項21に記載の方法。
  24. 前記データバスは、前記アクセラレータ向けキャッシュコヒーレントインターコネクト(CCIX)規格に準拠している、
    請求項20の方法。
  25. 前記第1の要求メッセージ及び前記第2の要求メッセージにチェーンされた後続の要求メッセージを選択的に処理することをさらに含み、
    前記後続の要求メッセージは、前記第1の要求メッセージ及び前記第2の要求メッセージとは別のパケットで受信される、
    請求項19の方法。
  26. 前記第2のアドレスは、キャッシュラインサイズの所定のオフセットサイズに基づいて計算される、
    請求項19の方法。
  27. 前記第2のアドレスは、前記第2の要求メッセージに含まれるオフセットサイズに基づいて計算される、
    請求項19の方法。
  28. 少なくとも1つのメモリチップを有するメモリと、前記メモリに結合されたメモリコントローラと、前記メモリコントローラに接続され、バス上でデータを送受信するように構成された第1のバスインタフェース回路と、を含むメモリモジュールと、
    プロセッサと、
    を備えるシステムであって、
    前記メモリコントローラ及び前記第1のバスインタフェース回路は、共に、
    前記データバスを介して複数の要求メッセージを受信することと、
    前記要求メッセージのうち選択された第1の要求メッセージにおいて、ソース識別子、ターゲット識別子、メモリアクセスが要求される第1のアドレス、及び、第1のペイロードデータを受信することと、
    前記第1のペイロードデータを、メモリ内の前記第1のアドレスによって示される位置に記憶することと、
    前記要求メッセージのうち選択された第2の要求メッセージであって、メモリアクセスが要求されるアドレスを含まない第2の要求メッセージにおいて、前記第1の要求メッセージに関連するチェーンインジケータと、第2のペイロードデータと、を受信することと、
    前記チェーンインジケータに基づいて、メモリアクセスが要求される第2のアドレスを前記第1のアドレスに基づいて計算することと、
    前記第2のペイロードデータを、前記メモリ内の前記第2のアドレスによって示される位置に記憶することと、
    を行うように構成されており、
    前記プロセッサは、
    前記バスに結合された第2のバスインタフェース回路を備え、前記データバスを介して前記要求メッセージを送信し、応答を受信するように構成されている、
    システム。
  29. 前記第1のバスインタフェース回路は、前記データバスを介して受信されたパケット内の前記複数の要求メッセージを受信するように構成されている、
    請求項28のシステム。
  30. 前記メモリコントローラ及び前記第1のバスインタフェース回路は、共に、前記第2の要求メッセージの後続の複数の要求メッセージを受信することと、前記後続の複数のメッセージの各々について、各々のチェーンインジケータを識別することと、メモリアクセスが要求される後続のアドレスを前記第1のアドレスに基づいて計算することと、を行うように構成されている、
    請求項29のシステム。
  31. 前記第2の要求メッセージ及び前記後続の複数の要求メッセージは、前記第2のアドレス及び前記後続のアドレスを計算する順序を示すトランザクション識別子を含む、
    請求項30のシステム。
  32. 前記メモリコントローラは、前記第1の要求メッセージ及び前記第2の要求メッセージを選択的に処理するように構成されており、
    前記第1の要求メッセージ及び前記第2の要求メッセージは、前記パケット内で隣接していない、
    請求項31のシステム。
  33. 前記データバスは、前記アクセラレータ向けキャッシュコヒーレントインターコネクト(CCIX)規格に準拠している、
    請求項28のシステム。
  34. 前記メモリコントローラは、前記第1の要求メッセージ及び前記第2の要求メッセージにチェーンされた後続の要求メッセージを選択的に処理するように構成されており、
    前記後続の要求メッセージは、前記第1の要求メッセージ及び前記第2の要求メッセージとは別のパケットで受信される、
    請求項28のシステム。
  35. 前記第2のアドレスは、キャッシュラインサイズの所定のオフセットサイズに基づいて計算される、
    請求項28のシステム。
  36. 前記第2のアドレスは、前記第2の要求メッセージに含まれるオフセットサイズに基づいて計算される、
    請求項28のシステム。
JP2021527087A 2018-12-14 2019-06-27 バス上のメモリ要求チェーン Pending JP2022510803A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/221,163 2018-12-14
US16/221,163 US20200192842A1 (en) 2018-12-14 2018-12-14 Memory request chaining on bus
PCT/US2019/039433 WO2020122988A1 (en) 2018-12-14 2019-06-27 Memory request chaining on bus

Publications (1)

Publication Number Publication Date
JP2022510803A true JP2022510803A (ja) 2022-01-28

Family

ID=71072144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021527087A Pending JP2022510803A (ja) 2018-12-14 2019-06-27 バス上のメモリ要求チェーン

Country Status (6)

Country Link
US (1) US20200192842A1 (ja)
EP (1) EP3895027A4 (ja)
JP (1) JP2022510803A (ja)
KR (1) KR20210092222A (ja)
CN (1) CN113168388A (ja)
WO (1) WO2020122988A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12014052B2 (en) 2021-03-22 2024-06-18 Google Llc Cooperative storage architecture
WO2023173276A1 (en) * 2022-03-15 2023-09-21 Intel Corporation Universal core to accelerator communication architecture
WO2023225792A1 (en) * 2022-05-23 2023-11-30 Intel Corporation Techniques to multiply memory access bandwidth using a plurality of links

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779145B1 (en) * 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6718405B2 (en) * 2001-09-20 2004-04-06 Lsi Logic Corporation Hardware chain pull
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7543096B2 (en) * 2005-01-20 2009-06-02 Dot Hill Systems Corporation Safe message transfers on PCI-Express link from RAID controller to receiver-programmable window of partner RAID controller CPU memory
EP1750202A1 (en) * 2005-07-11 2007-02-07 Nvidia Corporation Combining packets for a packetized bus
US7627711B2 (en) * 2006-07-26 2009-12-01 International Business Machines Corporation Memory controller for daisy chained memory chips
US8099766B1 (en) * 2007-03-26 2012-01-17 Netapp, Inc. Credential caching for clustered storage systems
US20130073815A1 (en) * 2011-09-19 2013-03-21 Ronald R. Shea Flexible command packet-header for fragmenting data storage across multiple memory devices and locations
WO2018107331A1 (zh) * 2016-12-12 2018-06-21 华为技术有限公司 计算机系统及内存访问技术
US11461527B2 (en) * 2018-02-02 2022-10-04 Micron Technology, Inc. Interface for data communication between chiplets or other integrated circuits on an interposer
US10409743B1 (en) * 2018-06-29 2019-09-10 Xilinx, Inc. Transparent port aggregation in multi-chip transport protocols

Also Published As

Publication number Publication date
EP3895027A4 (en) 2022-09-07
KR20210092222A (ko) 2021-07-23
WO2020122988A1 (en) 2020-06-18
CN113168388A (zh) 2021-07-23
EP3895027A1 (en) 2021-10-20
US20200192842A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
EP3140748B1 (en) Interconnect systems and methods using hybrid memory cube links
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
JP4542845B2 (ja) システム・オン・チップ設計のための構成要素としての自己完結型プロセッサ・サブシステムおよびネットワーク・プロセッサ
TWI473012B (zh) 具分散內嵌式交換之多處理運算技術
US7155525B2 (en) Transaction management in systems having multiple multi-processor clusters
US9146890B1 (en) Method and apparatus for mapped I/O routing in an interconnect switch
US9223579B2 (en) Handling atomic operations for a non-coherent device
CN1608255B (zh) 使用包括扩展类型/扩展长度字段的分组头部的计算机系统中的代理之间的通信事务类型
US20130252543A1 (en) Low-latency interface-based networking
US11036658B2 (en) Light-weight memory expansion in a coherent memory system
JP2022510803A (ja) バス上のメモリ要求チェーン
EP3885918B1 (en) System, apparatus and method for performing a remote atomic operation via an interface
KR20140084155A (ko) 네트워크 프로세서에서의 멀티-코어 상호접속
JP2011503731A (ja) リンクに基づくシステムにおけるシステムルーティング情報の変更
CN116483259A (zh) 一种数据处理方法以及相关装置
EP4022445B1 (en) An apparatus and method for handling ordered transactions
US11874783B2 (en) Coherent block read fulfillment
CN115633098B (zh) 众核系统的存储管理方法、装置和集成电路
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210720