JP2023507330A - 電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用 - Google Patents

電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用 Download PDF

Info

Publication number
JP2023507330A
JP2023507330A JP2022536764A JP2022536764A JP2023507330A JP 2023507330 A JP2023507330 A JP 2023507330A JP 2022536764 A JP2022536764 A JP 2022536764A JP 2022536764 A JP2022536764 A JP 2022536764A JP 2023507330 A JP2023507330 A JP 2023507330A
Authority
JP
Japan
Prior art keywords
packet
enable signal
partition
given partition
destination
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
JP2022536764A
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.)
Advanced Micro Devices Inc
Original Assignee
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2023507330A publication Critical patent/JP2023507330A/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/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • 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/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3072Packet splitting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • H04Q3/68Grouping or interlacing selector groups or stages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

コンピューティングシステムにおける効率的なデータ伝送のためのシステム、装置及び方法を開示する。ソースは、通信ファブリック(又はファブリック)を経て宛先に送信するパケットを生成する。ソースは、ペイロードデータのパーティションのパーティションイネーブル信号を生成する。特定のパーティションがパケット内に関連するアサートされたイネーブル信号を有するべきであることをパケットのタイプが示すとソースが判定した場合、ソースは特定のパーティションのイネーブル信号を否定するが、ソースは、特定のパーティションが特定のデータパターンを含むことを判定する。ファブリックのルーティングコンポーネントは、特定のパーティションを格納するために割り当てられたストレージ要素へのクロック信号を無効にする。宛先は、ペイロードデータの特定のパーティションに特定のデータパターンを挿入する。【選択図】図2

Description

(関連技術の説明)
様々なコンピューティングデバイスが、システムの機能を提供するために複数のタイプの処理装置を統合する異種統合(heterogeneous integration)を利用している。複数の機能には、オーディオ/ビデオ(A/V)データ処理、医療分野及び商業分野のための他の高データ並列アプリケーション、汎用命令セットアーキテクチャ(ISA)の処理命令、並びに、デジタル、アナログ、混合信号及び無線周波数(RF)機能等が含まれる。複数の種類の処理装置を統合するために、システムパッケージングにとって様々な選択肢が存在する。あるコンピューティングデバイスでは、システムオンチップ(SoC)が使用されるのに対し、他のコンピューティングデバイスでは、より小さく且つより高い歩留まりのチップが、マルチチップモジュール(MCM)内の大型チップとしてパッケージングされる。一部のコンピューティングデバイスは、システムインパッケージ(SiP)内の2つ以上のダイを垂直にスタックし、電気的に接続するためにダイ・スタッキング技術、並びに、シリコンインターポーザ、スルーシリコンビア(TSV)及び他のメカニズムを利用した3次元集積回路(3D IC)を含む。
入出力デバイスに加えて、これらの処理装置のそれぞれは、データの読み取り要求及び書き込み要求を生成することができるコンピューティングシステムのソースである。システムメモリに加えて、各ソースは、要求のターゲット宛先になることができる。選択したシステムパッケージに関係なく、データアクセス要求と対応するデータ、コヒーレンシプローブ、割り込み及びターゲットの宛先のソースによって生成される他の通信メッセージは、通常、通信ファブリック(又はファブリック)を介して転送される。ファブリックは、ソースと宛先との間でパケットを転送するために比較的多数の物理ワイヤを使用できるようにすることで、遅れを低減する。ファブリックのワイヤを介したパケットのデータ転送、及び、ファブリック内のストレージ要素、キュー、制御ロジック等の内部のノードの切り替えにより、コンピューティングシステムの消費電力が増加する。
今日の集積回路の電力消費により、半導体チップの各世代で設計上の問題がいっそう大きくなってきた。電力消費が増加するにつれて、より大きいファンやヒートシンク等のより高いコストの冷却システムを利用して、余分な熱を排除し、回路の故障を防ぐようにしなければならない。しかし、冷却システムがシステムのコストを増加させている。回路の電力損失制約は、携帯用コンピュータ及び移動通信デバイスにとって問題であるだけでなく、高性能マイクロプロセッサを利用したデスクトップコンピュータ及びサーバにとっても問題である。
上記に鑑みて、コンピューティングシステムにおける効率的なデータ伝送のための方法が望まれている。
本明細書で説明する方法及びメカニズムの利点は、添付の図面と併せて以下の説明を参照しすることによって良好に理解することができる。
コンピューティングシステムの一実施形態のブロック図である。 コンピューティングシステムの一実施形態のブロック図である。 ルーティングコンポーネントによるコンピューティングシステムにおける効率的なデータ転送のための方法の一実施形態のフロー図である。 ソースによるコンピューティングシステムにおける効率的なデータ転送のための方法の一実施形態のフロー図である。 コンピューティングシステムにおける効率的なデータ転送のためのパケットタイプを識別するための方法の一実施形態のフロー図である。 宛先によるコンピューティングシステムにおける効率的なデータ転送のための方法の一実施形態のフロー図である。 コンピューティングシステムの一実施形態のブロック図である。
本発明は、様々な修正及び代替形態を受け入れるが、特定の実施形態を図面の例によって示し、本明細書で詳細に説明する。しかしながら、図面及びそれに対する詳細な説明は、本発明を、開示された特定の形態に限定することを意図するのではなく、反対に、本発明は、添付の特許請求の範囲によって定義される本発明の範囲内に収まる全ての変更、均等物及び代替物を包含することを理解すべきである。
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解をもたらすために、多数の特定の詳細が示されている。しかしながら、当業者は、その特定の詳細を用いずに、様々な実施形態を実施することができることを認識するはずである。いくつかの例では、本明細書で説明する手法を不明瞭にすることを回避するために、周知の構造、構成要素、信号、コンピュータプログラム命令、及び、技術が詳細に示されていない。説明を簡単且つ明確にするために、図面に示す要素は必ずしも縮尺通りに描かれていないことを理解されたい。例えば、いくつかの要素の寸法は、他の要素に対して誇張される場合がある。
コンピューティングシステムにおいてスレッドを調停する様々なシステム、装置、方法及びコンピュータ可読媒体が開示される。多様な実施形態では、コンピューティングシステムは、アプリケーションを処理するための1つ以上のクライアントを含む。クライアントの例は、汎用中央演算処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、アクセラレーテッドプロセッシングユニット(APU)、入出力デバイス(I/O)デバイス等である。各クライアントは、データアクセス要求を生成できる。クライアントは、データアクセス要求、ペイロードデータ、プローブ要求、コヒーレンシコマンド、又は、ターゲットの宛先に送信する他の通信を含むパケットを生成及び送信する場合に、「ソース」と呼ばれる。クライアント及びシステムメモリが、ソースによって生成されたパケットのターゲットである場合に、クライアント及びシステムメモリは「宛先」と呼ばれる。
ソースは、通信ファブリック(又はファブリック)を介して宛先にパケットを送信する。ファブリック内の相互接続の例としては、バスアーキテクチャ、クロスバーベースのアーキテクチャ、ネットワークオンチップ(NoC)通信サブシステム、ダイ間の通信チャネル、アービトレーションロジックを備えたルータースイッチ、リピータ、チップを並べてスタックするために使用されるシリコンインターポーザ、プロセッサダイの上部に特殊用途のダイを垂直に積み重ねるために使用されるスルーシリコンビア(TSV)等がある。
いくつかの実施形態では、ソースは、ペイロードデータをバイト、ワード、ダブルワード等のパーティションに分割する。さらに、様々な実施形態において、ペイロードデータのパーティションのためのパーティションイネーブル信号が生成される。例えば、フィールド156のパーティションイネーブル信号は、バイトイネーブル信号である。いくつかの実施形態では、ソースは、何れのパーティションがペイロードデータの有効なデータを含むかを示すために、パーティションイネーブル信号(又はイネーブル信号)を生成する。例えば、各パーティションには、読み取り応答パケットの有効なデータが含まれている。したがって、ソースは、ペイロードデータの複数のパーティションに対応するイネーブル信号の各々をアサートする。同様に、各パーティションには、フルライトデータパケットの有効なデータと、以前にキャッシュされたデータをシステムメモリに送信するために使用されるキャッシュビクティムパケットが含まれる。他の実施形態では、ソースは、1つ以上のイネーブル信号を否定して、何れのパーティションがペイロードデータの無効なデータを含むかを示す。例えば、1つ以上のパーティションに、部分書き込みデータパケットの無効なデータが含まれている。
他の実施形態では、特定のパーティションがパケット内に関連するアサートされたイネーブル信号を有することをパケットのタイプが示しているとソースが判定した場合に、特定のパーティションのイネーブル信号をソースは否定するが、ソースは、特定のパーティションが特定のデータパターンを含むことを判定する。例えば、読み取り応答ペイロードデータの特定のパーティションには、特定のパターンが含まれる。読み取り応答データパケットには、通常、複数のイネーブル信号の各々がアサートされているが、ソースは、特定のパーティションのイネーブル信号を無効にする。特定のデータパターンをファブリック全体に転送するよりもむしろ、特定のパターンが実際にファブリックを介して転送されることなく特定のパーティションが特定のパターンを格納すべきであるということを、否定されたイネーブル信号が示す。
宛先は、読み取り応答データパケットを受信し、宛先は、パケットのタイプ及び特定のパーティションの両方が、関連する否定された(ネゲートされた)イネーブル信号をパケット内に有すると判定する。この例では、読み取り応答データパケットのタイプは、特定のパーティションが、関連するアサートされたイネーブル信号をパケットに含む必要があることを示している。したがって、宛先は、否定されたイネーブル信号を、特定のパーティションが特定のデータパターンを含むべきであることを示すものとして解釈する。したがって、宛先は、読み取り応答ペイロードデータを格納する場合に、特定のパーティションに特定のデータパターンを挿入する。
ソースと宛先との間でパケットを転送している間、1つ以上のルーティングコンポーネントは、ファブリック内でパケットを送受信する。ルーティングコンポーネントの例としては、ルータースイッチ、リピータブロック等がある。様々な実施形態では、ルーティングコンポーネントがパケットを受信し、ペイロードデータの1つ以上のパーティションが、関連付けられた否定されたイネーブル信号を有すると判定する。したがって、ルーティングコンポーネントは、否定されたイネーブル信号に関連付けられたペイロードデータのパーティションのデータを格納するために割り当てられたルーティングコンポーネントのストレージ要素を無効にする。後に、ルーティングコンポーネントがパケットを次のルーティングコンポーネント又は宛先に送信すると、ルーティングコンポーネントは、否定されたイネーブル信号と、否定されたイネーブル信号に関連付けられたペイロードデータのパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値を送信する。クロック信号が無効になっているため、これらのストレージ要素は新しい値をロードしなかった。以前の値は、これらのストレージ要素に引き続き格納される。さらに、これらのストレージ要素は新しい値のロードに関連する電力を消費せず、条件付きクロック信号はトグルしない。いくつかの実施形態では、ルーティングコンポーネントのクロックゲーティングロジックは、パーティションイネーブル信号を条件付きクロックゲーティング制御信号として直接使用する。
図1を参照すると、コンピューティングシステム100の一実施形態の一般的なブロック図が示されている。図示するように、ソース110は、ルーティングコンポーネント120を介してパケット150を宛先140に送信する。ソース110は、汎用中央処理装置(CPU)、グラフィックス処理装置(GPU)、高速処理ユニット(APU)、マルチメディアエンジン、入出力(I/O)デバイス等のコンピューティングシステム100内のクライアントである。宛先140は、システムメモリ、又は、コンピューティングシステム100内の例示的なクライアントである。ルーティングコンポーネント120の例は、リピータブロック、ネットワークスイッチ、又は、通信ファブリックの他のコンポーネントである。単一のソース110、単一のルーティングコンポーネント120、及び、単一の宛先140が示されているが、コンピューティングシステム100は、他の実装において、任意の数のこれらのブロックを含む。いくつかの実施形態では、コンピューティングシステム100のブロック110~140は、システムオンチップ(SOC)等の集積回路(IC)上の個々のダイである。他の実施形態では、ブロック110~140は、システムインパッケージ(SiP)又はマルチチップモジュール(MCM)内の個々のダイである。電力コントローラ又は電力管理ユニット、クロック生成ソース、任意の他の処理ノードと通信するためのリンクインターフェイス、及び、システムメモリとインターフェイスするためのメモリコントローラ等の他のブロックは、説明を簡単にするために示されていない。
ソース110は、パケットを生成及び送信する。ソース110及び宛先140は、データアクセス要求、ペイロードデータ、プローブ要求、コヒーレンシコマンド等を通信するためにパケットを使用する。パケット生成ロジック112(又はロジック112)は、パケット150を生成する。パケット150は、複数のフィールド152~158を含む。フィールド152~158が特定の連続した順序で示されているが、他の実施形態では、パケット150は別の記憶装置を使用している。他の実施形態では、パケット150は、図示されていない1つ以上の他のフィールドを含む。
ヘッダ152は、1つ以上のコマンド、ソース及び宛先識別子、プロセス及びスレッド識別子、タイムスタンプ、パリティ及びチェックサム及び他のデータ完全性情報、優先度レベル及び/又はサービスの品質のパラメータ等を格納する。他の実施形態では、これらのフィールドの1つ以上は、ヘッダ152から分離され、パケット150内の他の場所に配置される。パケット150に示されていない他のフィールドの例は、仮想チャネル識別子、応答パケットの応答タイプ、多大な読み取り要求の読み取り応答が複数のデータパケットに分割される場合に使用されるトランザクションオフセットの指標、応答パケットに単一の応答が含まれるか複数の応答が含まれるかを表す応答パケットの指標、及び、データパケットの複数のクレジット、要求パケット、応答パケットの指標である。パケット150に格納されたフィールドの他の例が可能であり、他の実施形態で企図されている。
アドレス154は、コマンドに関連付けられたターゲットアドレスの指標をヘッダ152に格納する。フィールド156は、フィールド158に格納されたペイロードデータのパーティションに関連付けられたイネーブル信号を格納する。データパケットの場合、ソース110は、ペイロードデータをパーティションに分割する。パーティションのサイズの例には、バイト、ワード(4バイト)、デュアルワード(8バイト)等がある。パーティションイネーブルロジック114(又はロジック114)は、フィールド156に格納されたパーティションイネーブル信号を生成する。パーティションのサイズがバイトである場合、フィールド156のパーティションイネーブル信号は、バイトのイネーブル信号である。いくつかの実施形態では、ロジック114は、パーティションイネーブル信号(又はイネーブル信号)を生成して、何れのパーティションが、フィールド158に格納されたペイロードデータの有効なデータを含むかを示す。例えば、各パーティションには、読み取り応答パケットの有効なデータが含まれている。コマンド及び/又はパケットタイプは、ヘッダ152に格納される。したがって、ロジック114は、フィールド158のペイロードデータの複数のパーティションに対応するフィールド156のイネーブル信号の各々をアサートする。同様に、各パーティションには、フルライトデータパケットと、以前にキャッシュされたデータをシステムメモリに送信するために使用されるキャッシュビクティムパケットとの有効なデータが含まれる。
他の実施形態では、ロジック114は、フィールド156の1つ以上のイネーブル信号を否定して、何れのパーティションがフィールド158のペイロードデータの無効なデータを含むかを示す。例えば、1つ以上のパーティションには、部分書き込みデータパケットの無効なデータが含まれている。本明細書で使用される場合、信号が、ロジックを有効にし、トランジスタをオンにしてトランジスタに電流を流すために使用される値を有する場合、信号が「アサートされた」と見なされる。一部のロジックでは、アサートされた値はブールロジックの高値又はブールの高レベルのロジックである。例えば、n型金属酸化膜半導体(NMOS)トランジスタがゲート端子でブールの高いレベルのロジックを受信すると、NMOSトランジスタが有効になるか又はオンになる。したがって、NMOSトランジスタは電流を流すことができる。他のロジックの場合、アサートされた値はブールロジックの低レベルである。p型MOS(PMOS)トランジスタがゲート端子でブールロジックローレベルを受信すると、PMOSトランジスタが有効になるか又はオンになり、PMOSトランジスタは電流を流すことができる。対照的に、信号がロジックを無効にし、トランジスタをオフにするために使用される値を有する場合、信号は「否定された(ネゲートされた)」と見なされる。
いくつかの実施形態では、ロジック114は、特定のパーティションがパケット内に関連するアサートされたイネーブル信号を有することをパケットのタイプが示していることをロジック114が判定した場合に、フィールド158内の特定のパーティションのフィールド156内のイネーブル信号を否定するが、ロジック114は、特定のパーティションが特定のデータパターンを含むことを判定する。例えば、読み取り応答ペイロードデータの特定のパーティションには、特定のパターンが含まれる。特定のパターンの一例は、特定のパーティションにおいて全てがゼロであることである。パーティションのサイズが1バイトの場合、特定のパーティションには8つのゼロが含まれる。他のデータパターンも可能であり、企図されている。読み取り応答データパケットは、通常、複数のイネーブル信号の各々がアサートされるが、ロジック114は、フィールド158の特定のパーティションのフィールド156のイネーブル信号を否定する。ルーティングコンポーネント120を介して特定のデータパターンを転送するよりもむしろ、ルーティングコンポーネント120が特定のパーティションの実際の値なしにパケット150を転送するべきであることを、否定されたイネーブル信号が示す。
様々な実施形態では、ルーティングコンポーネント120のインターフェイス122は、パケット150を受信する。いくつかの実施形態では、インターフェイス122は、パケット150を受信及び格納するためのストレージ要素134を含む。他の実施形態では、インターフェイス122は、ソース110からの距離が明白である場合、インピーダンス整合の回路を含む。さらに他の実施形態では、インターフェイス122は、受信したパケットをストレージ要素134に転送するためのワイヤを含む。パケット124は、一般に、パケット150等のルーティングコンポーネント120によって受信されたパケットを表す。したがって、パケット124は、パケット150について上述したのと同じフィールドを含む。ルーティングコンポーネント120は、1つ以上のストレージ要素134へのクロック信号130を有効及び無効にするためのクロックゲーティングロジック132(又はロジック132)を含む。ストレージ要素134は、1つ以上のレジスタ、フリップフロップ、回路、コンテンツアドレス可能メモリ(CAM)、ランダムアクセスメモリ(RAM)等を含む。ロジック132は、パケット124からのパーティションイネーブル信号126を使用して、1つ以上のストレージ要素134へのクロック信号130を条件付きで有効及び無効にする。例えば、ロジック132は、パーティションイネーブル信号126の否定されたイネーブル信号に関連するペイロードデータのパーティションのデータを格納するために割り当てられ、ストレージ要素134の各々について、クロック信号130を無効にする。したがって、ロジック132は、パーティションイネーブル信号126をクロックイネーブル信号として使用する。パーティションのサイズがバイトの場合、ロジック132は、バイトイネーブル信号126をクロックイネーブル信号として使用する。
後に、ルーティングコンポーネント120がパケット124を次のルーティングコンポーネント(図示省略)又は宛先140に送信する場合、インターフェイス136は、ストレージ要素134に格納されたパケット情報を送信する。インターフェイス136は、単純には、ワイヤ、1つ以上のロジックゲートバッファ、又は、データを送信するための他の回路を含む。インターフェイス136は、パーティションイネーブル信号126の否定されたイネーブル信号と、否定されたイネーブル信号に関連付けられたペイロードデータのパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値と、を送信する。ロジック132は、ストレージ要素134の特定の1つのクロック信号130を無効にしたので、これらの特定のストレージ要素は、新しい値をロードしなかった。先ほどのクロックサイクルからの以前の値は、これらの特定のストレージ要素に依然として格納されており、インターフェイス136は、これらの以前の値を宛先140に送信する。否定されたパーティションに関連付けられたペイロードデータの特定のパーティションのソース110によって送信された元の値は、信号126の信号を有効にし、ルーティングコンポーネント120によって記憶又は輸送されない。さらに、これらのストレージ要素は、新しい値のロードに関連する電力を消費せず、条件付きクロック信号はトグルしない。対照的に、ストレージ要素134の他のものは、ヘッダ152、アドレス154、及び、パケット124のパーティションイネーブル信号156を記憶する。これらのストレージ要素は、パーティションイネーブル信号126によって適格とされないバージョンのクロック信号130を受信する。
宛先140は、パケット情報を受信し、宛先140は、パケットのタイプと、ペイロードデータの特定のパーティションが、パケット内に関連する否定されたイネーブル信号を有するかどうかと、の両方を判定する。パケットタイプが、ペイロードデータの各パーティションがパケット内に関連するアサートされたイネーブル信号を有するべきであることを示しているが、1つ以上のパーティションイネーブル信号が否定されている場合、宛先140は、1つ以上のパーティションに特定のデータパターンの挿入が必要であると判定する。上述したように、パケットタイプがフルサイズ書き込みパケット、読み取り応答パケット、又は、キャッシュビクティムパケットの場合、通常、各パーティションイネーブル信号がアサートされる。したがって、宛先140は、否定されたイネーブル信号を、特定のパーティションに特定のデータパターンを含めるべきであることを示すものとして解釈する。したがって、ペーロードデータアセンブラ142(又はアセンブラ142)は、読み取り応答ペイロードデータを格納する場合に、特定のパーティションに特定のデータパターンを挿入する。
ソース110、宛先140、ルーティングコンポーネント120、ロジック112,114,132及びアセンブラ142の各々は、ハードウェア回路、ソフトウェア、又は、ハードウェアとソフトウェアの組み合わせのうち何れかで実装されることに留意されたい。図示されていないが、他の実施形態では、ルーティングコンポーネントは、パケットタイプに基づいてパケットを格納するための複数のタイプのキューに加えて、ストレージ要素の複数のステージを含む。例えば、ルーティングコンポーネント120は、読み取り応答データ、書き込みデータ、読み取りアクセス要求、書き込みアクセス要求、プローブ要求等を格納するために複数のキューを使用する。さらに、いくつかの実施形態では、ルーティングコンポーネント120は、インターフェイス136を介して宛先140にパケットを送信するための順序を判定するために調停ロジックを使用する。
図2に移ると、コンピューティングシステム200の一実施形態の一般化されたブロック図が示されている。上述した回路とロジックには同じ符号が付けられている。ルーティングコンポーネント120のストレージ要素234は、フリップフロップ回路として示されているが、他のストレージ要素が可能であり、企図されている。パケット224は、一般に、パケット150等のルーティングコンポーネント120によって受信されたパケットを表す。したがって、パケット224は、パケット150に対して上述したのと同じフィールドを含む。クロックゲーティングロジック232(又はロジック232)は、パケット224からのパーティションイネーブル信号を使用して、1つ以上のストレージ要素234へのクロック信号130を条件付きで有効及び無効にする。例えば、ロジック232は、パーティションイネーブル信号の否定されたイネーブル信号と関連付けられたペイロードデータのパーティションのデータを格納するために割り当てられたストレージ要素234の各々のクロック信号130を無効にする。パーティションのサイズがバイトの場合、ロジック232は、バイトイネーブル信号をクロックイネーブル信号として使用する。
図示するように、パケット224は、Nがゼロ以外の正の整数であるN個のパーティションを含む。各パーティションはMビットを含み、Mはゼロ以外の正の整数である。上述したように、パーティションのサイズの例としては、バイト、ワード、デュアルワード等がある。パーティションNのMビットの各々について、ロジック232は、パーティションNを有効化する信号を使用して、ストレージ要素234の関連するもののクロック信号130を条件付きで有効化する。パーティションのサイズがバイトである場合、パーティションNの有効化は、パーティションNのMビットのバイトイネーブル信号である。ロジック232は、パーティションNのビット0からパーティションNのビットMまでのペイロードデータのクロックイネーブル信号として、パーティションNのイネーブル信号を使用する。
図3を参照すると、ルーティングコンポーネントによるコンピューティングシステムにおける効率的なデータ転送のための方法300の一実施形態が示されている。説明のために、この実施形態におけるステップ(及び図4~図6におけるステップ)は、順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素のうち1つ以上は、同時に実行されてもよいし、図示した順序とは異なる順序で実行されてもよいし、全体的に省略されてもよいことに留意されたい。他の追加の要素も必要に応じて実行される。本明細書に記載されている様々なシステム又は装置の何れも、方法300及び400~600を実施するように構成されている。
ソースは、パケットを生成し、コンピューティングシステムの通信ファブリックを介してパケットを宛先に送信する。通信ファブリックには、1つ以上のルーティングコンポーネントが含まれる。特定のルーティングコンポーネントのインターフェイスは、パケットを受信する(ブロック302)。ルーティングコンポーネントの制御ロジックは、ハードウェア回路、ソフトウェア、又は、ハードウェアとソフトウェアの組み合わせによって実装される。制御ロジックは、受信したパケットを分析する。例えば、制御ロジックは、ヘッダ内のコマンドをデコードする。パケットがペイロードデータを格納するデータパケットである場合、制御ロジックは、ペイロードデータのパーティションに対応するパーティションイネーブル信号を詳しく調べる。
イネーブル信号を否定したパーティションがない場合(条件付きブロック304:「いいえ」)、制御ロジックは、パーティションのデータを格納するために割り当てられたストレージ要素のクロック信号を維持する(ブロック306)。しかしながら、パーティションの何れかが、否定されたイネーブル信号を有する場合(条件付きブロック304:「はい」)、制御ロジックは、これらのパーティションのデータを格納するために割り当てられたストレージ要素のクロック信号を無効にする(ブロック308)。したがって、制御ロジックは、パーティションイネーブル信号をクロックイネーブル信号として使用する。その後、制御ロジックは、通信ファブリック等の相互接続を介してパケットを宛先に伝達する(ブロック310)。
図4を参照すると、ソースによるコンピューティングシステムにおける効率的なデータ転送のための方法400の一実施形態が示されている。コンピューティングシステムにおける1つ以上のソースのうち何れかのソースは、コンピューティングシステム内でパケットを生成する(ブロック402)。ソースの例としては、汎用中央処理装置(CPU)、グラフィックス処理装置(GPU)、高速処理装置(APU)、マルチメディアエンジン、入出力(I/O)デバイス等がある。
ソースは、パケットのタイプを判定する(ブロック404)。パケットタイプの例としては、読み取り要求パケット、読み取り応答パケット、フルサイズ書き込み要求パケット、部分サイズ書き込み要求パケット、書き込みデータパケット、キャッシュビクティムパケット、プローブ要求パケット、コヒーレンシコマンドパケット等がある。いくつかの実施形態では、ソースは、書き込み要求を書き込み制御パケットと書き込みデータパケットとに分割する。ソースは、書き込みコマンドを書き込み制御パケットに挿入し、書き込みデータを、書き込みコマンドに対応する別の書き込みデータパケットに挿入する。実施形態では、ソースは、読み取り要求コマンドを読み取り制御パケットに挿入する。その後、宛先は、読み取り制御パケットを受信し、読み取り応答コマンドを読み取り制御パケットに挿入する。宛先は、別の読み取りデータパケットに応答データも挿入する。
部分サイズ書き込み要求パケットは、ペイロードデータのパーティションのためのスパースにアサートされたイネーブル信号を有するパケットタイプの一例である。例えば、ソースが64バイトのキャッシュラインの2ワード(8バイト)を更新することが所望されている場合、部分サイズ書き込み要求パケットには、更新する8バイトの8つのアサートされたパーティションイネーブル信号が含まれる。他の56のパーティションイネーブル信号が否定される。別の例では、ソースは、全ての64バイトのキャッシュラインを、最後のワード(4バイト)を除いて更新することを望んでいる。したがって、部分サイズ書き込み要求パケットには、更新される60バイトの60個のアサートされたパーティションイネーブル信号が含まれる。残りの4つのパーティションイネーブル信号が否定される。読み取り応答パケット、キャッシュビクティムパケット、フルサイズ書き込みパケット等の他のパケットタイプの場合、各パーティションイネーブル信号がアサートされる。これらのパケットタイプには、否定されたパーティションイネーブル信号がない。
パケットタイプがペイロードデータのパーティションに対してスパースにアサートされたイネーブル信号を示している場合(条件付きブロック406:「はい」)、ソースは、パーティションイネーブル信号の値を維持している(ブロック408)。ただし、パケットタイプがペイロードデータのパーティションのスパースにアサートされたイネーブル信号を示さない場合(条件付きブロック406:「いいえ」)、ソースは、何れかのパーティションに特定のデータのパターンが含まれているかどうかを判定する。特定のデータのパターンの一例は、パーティション内が全てゼロであることである。特定のデータパターンの他の例が可能であり、企図されている。
ソースが、特定のデータパターンを含むパーティションがないと判定した場合(条件付きブロック410:「いいえ」)、方法400の制御フローはブロック408に移動し、ソースはパーティションイネーブル信号の値を維持する。ソースが、何れかのパーティションに特定のデータパターンが含まれていると判定した場合(条件付きブロック410:「はい」)、ソースは、特定のデータのパターンを含むパーティションのイネーブル信号を否定する(ブロック412)。いくつかの実施形態では、ソースは、パケットが、ペイロードデータのパーティションのためのスパースにアサートされたイネーブル信号に関連付けられていないパケットタイプを有することを明示するパケットヘッダ内の指標をアサートする。後に、宛先は、ヘッダのパケットのコマンドをデコードするのではなく、指標を使用して、パケットタイプがペイロードデータのパーティションのスパースにアサートされたイネーブル信号に関連付けられていないかどうかを判定する。ソースは、通信ファブリック等の相互接続を介して、パケットを宛先に送信する(ブロック414)。
図5に移ると、コンピューティングシステムにおける効率的なデータ転送のためのパケットタイプを識別するための方法500の一実施形態が示されている。制御ロジックは、パケットを受信する。制御ロジックは、コンピューティングシステムのソース又は宛先の内部にある。制御ロジックは、ハードウェア回路、ソフトウェア、又は、ハードウェアとソフトウェアの組み合わせによって実装される。制御ロジックは、パケットを詳しく調べる(ブロック502)。制御ロジックは、パケットのヘッダを分析して、パケットタイプを判定する。制御ロジックが、パケットタイプが読み取り応答タイプと判定した場合(条件付きブロック504:「はい」)、フルサイズ書き込み要求タイプと判定した場合(条件付きブロック506:「はい」)、又は、キャッシュビクティムタイプと判定した場合(条件付きブロック508:「はい」)、次に、制御ロジックは、パケットがパケットのパーティションのためのスパースイネーブル信号を含まないと判定する(ブロック510)。それ以外の場合、制御ロジックは、パケットにパケットのパーティションのスパースイネーブル信号が含まれていると判定する(ブロック512)。これらの結果は、方法400において上述したように、パーティションイネーブル信号を更新するかどうかを判定するための制御ロジックによって後に使用される。
図6に移ると、宛先によるコンピューティングシステムにおける効率的なデータ転送のためのパケットタイプを識別するための方法600の一実施形態が示されている。コンピューティングシステム内の1つ以上の宛先のうち何れかの宛先は、コンピューティングシステム内のパケットを受信する(ブロック602)。宛先の例としては、システムメモリ、汎用中央処理装置(CPU)、グラフィックス処理装置(GPU)、高速処理装置(APU)、マルチメディアエンジン、入出力(I/O)デバイス等がある。宛先は、パケットのタイプを判定する(ブロック604)。上述したように、パケットタイプの例としては、読み取り要求パケット、読み取り応答パケット、フルサイズ書き込み要求パケット、部分サイズ書き込み要求パケット、書き込みデータパケット、キャッシュビクティムパケット、プローブ要求パケット、コヒーレンシコマンドパケット等がある。
パケットタイプがペイロードデータのパーティションに対してスパースにアサートされたイネーブル信号を示す場合(条件付きブロック606:「はい」)、宛先は、パケットのパーティションのための受信されたデータを維持する(ブロック608)。しかしながら、パケットタイプがペイロードデータのパーティションに対するスパースにアサートされたイネーブル信号を示さない場合(条件付きブロック606:「いいえ」)、宛先は、何れかのパーティションが、否定された関連するイネーブル信号を有するかどうかを判定する。ペイロードデータの否定されたパーティションイネーブル信号がない場合(条件付きブロック610:「いいえ」)、方法600の制御フローは、宛先がパケットのパーティションの受信データを維持するブロック608に移動する。
宛先が、ペイロードデータに対して何れかの否定されたパーティションイネーブル信号があると判定した場合(条件付きブロック610:「はい」)、宛先は、これらのパーティションを特定のデータパターンで置き換え、対応するイネーブル信号をアサートする(ブロック612)。特定のデータのパターンの一例は、パーティション内が全てゼロであることである。特定のデータパターンの他の例が可能であり、企図されている。宛先は、有効なパーティション内のデータを使用してパケットを処理する(ブロック614)。例えば、宛先は、アサートされたパーティションイネーブル信号を使用してパーティションの書き込み操作を実行する。これらのパーティションのデータは、パケットに格納されているアドレスが指す宛先のメモリ位置に格納されているデータを更新する。いくつかの実施形態では、特定のデータパターンが使用されるが、この特定のデータパターンは、ソースと宛先との間の通信ファブリックによって転送されなかった。
図7に移ると、コンピューティングシステム700の一実施形態の一般化されたブロック図が示されている。コンピューティングシステム700は、メモリコントローラ770とクライアント790との間の通信ファブリック710を含む。メモリコントローラ770は、メモリ780とのインターフェイスに使用される。3つのクライアント792~796がクライアント790に示されているが、コンピューティングシステム700は、任意の数のクライアントを含む。通信ファブリック710(又はファブリック710)は、ルーティング制御及びデータパケットのための複数のタイプのブロックを含む。例えば、ファブリック710は、ルーティングコンポーネント750及びルーティングネットワーク760に加えて、複数のルーティングコンポーネント720,762,764,766を含む。コンピューティングシステム700のソース及び宛先並びにファブリック710の各々は、特定の相互接続プロトコルをサポートする。ファブリック710で運ばれるパケットは、(図1の)パケット150について上述したのと同じフィールドを含む。ファブリック710内の1つ以上のブロックは、ペイロードデータのパーティションを格納するために使用されるストレージ要素を無効にするためのクロックイネーブル信号としてパーティションイネーブル信号を使用するクロックゲーティングロジックを含む。例えば、ルーティングコンポーネント720は、パーティションイネーブル信号744を受信するクロックゲーティングロジック742を含むように示されている。パーティションのサイズがバイトである場合、パーティションイネーブル信号744は、バイトイネーブル信号である。クロックゲーティングロジック742は、クロック信号を無効にすることによって、コンピューティングシステム700の電力消費を低減する。様々な実施形態において、クロックゲーティングロジック742は、(図1の)クロックゲーティングロジック132及び(図2の)クロックゲーティングロジック232と同等の機能を有する。
いくつかの実施形態では、クライアント790は、システムオンチップ(SOC)等の集積回路(IC)上の個々のダイである。他の実施形態では、クライアント790は、システムインパッケージ(SiP)又はマルチチップモジュール(MCM)内の個々のダイである。さらに他の実施形態では、クライアント790は、プリント回路基板上の個々のダイ又はチップである。様々な実施形態では、クライアント790は、スマートフォン、タブレットコンピュータ、ゲーム機、スマートウォッチ、デスクトップコンピュータ等で使用される。クライアント792,794,796の各々は、機能ブロック若しくはユニット、プロセッサコア、又は、プロセッサである。例えば、実施形態では、コンピューティングシステム700は、汎用中央処理装置(CPU)792、グラフィックス処理装置(GPU)794等の高度に並列なデータアーキテクチャプロセッサ、及び、マルチメディアエンジン796を含む。上述したように、ディスプレイユニット、1つ以上の入出力(I/O)周辺機器、マルチメディアプレーヤー、ディスプレイユニット等とのインターフェイスに使用される1つ以上のハブ等のように、クライアントの他の例が可能である。そのような場合、ハブは、コンピューティングシステム700におけるクライアントである。
メモリコントローラ770は、要求及び応答を格納するためのキューを含む。さらに、メモリコントローラ770は、メモリ780に送信される要求をグループ化し、メモリ780のタイミング仕様に基づいて要求を送信し、任意のバーストモードをサポートするための制御ロジックを含む。また、メモリコントローラ770は、制御パラメータを格納するためのステータス及び制御レジスタを含む。様々な実施形態では、ルーティングコンポーネント720及びメモリコントローラ770の各々は、効率的なアウトオブオーダサービスのために、受信したメモリアクセス要求を並べ替える。並べ替えは、優先度レベル、サービスの品質(QoS)のパラメータ、メモリアクセス要求のパケットの経過時間等の1つ以上に基づいている。単一のメモリコントローラ770が示されているが、他の実施形態では、コンピューティングシステム700は、それぞれ1つ以上のメモリチャネルをサポートする複数のメモリコントローラを含む。
様々な実施形態では、メモリ780は、アクセスされているダイナミックランダムアクセスメモリ(DRAM)の行(row)の内容を格納するための行(ロウ)バッファを含む。実施形態では、メモリ780のアクセスは、第1のアクティブ化又はオープニングステージを含み、行全体の内容を、対応する行バッファにコピーするステージが続く。その後、関連するステータス情報の更新に加えて、読み取り又は書き込み列へのアクセスがある。いくつかの実施形態では、メモリ780は、複数のバンクを含む。各バンクには、それぞれの行バッファが含まれている。アクセスされた行は、1つのクライアント790から受信されたメモリアクセス要求において、DRAMページアドレス等のアドレスによって識別される。様々な実施形態では、行バッファは、データのページを格納する。いくつかの実施形態では、ページは、データの4キロバイト(KB)の連続したストレージである。ただし、他のページのサイズも可能であり、企図されている。
一実施形態では、メモリ780は、互いに積み重ねられた複数の3次元(3D)メモリダイを含む。ダイ・スタッキング技術は、高帯域幅で低遅延の相互接続の同じパッケージ内で、複数の別々のシリコンの小片(統合チップ)を物理的に積み重ねることを可能にする製造プロセスである。いくつかの実施形態では、ダイは、シリコンインターポーザに並べて、又は、互いの上に垂直に直接積み重ねられる。SiPの1つの構成は、1つ以上のメモリチップをプロセッシングユニットの隣及び/又は上に積み重ねることである。
様々な実施形態では、更新した(最新の)データのコピーが、メモリ780から、クライアント790のうち1つのキャッシュメモリサブシステムの1つ以上のレベルに供給される。クライアントによって処理されている命令に基づいて、クライアントは、データのコピーを更新し、今や更新した(最新の)データのコピーが含まれる。あるいは、クライアントは、メモリ780から検索されたデータを変更せず、それを使用して、1つ以上のアプリケーションの命令を処理し、他のデータを更新する。後に、クライアントは他のアプリケーションの命令を処理し、指定されたメモリアドレスに格納されている特定のデータを削除する場合に、キャッシュメモリサブシステムを他のデータで充填する。データのコピーは、メモリ780に格納されたコピーを更新するための書き込みアクセス要求によって、クライアント790の対応する1つからメモリ780に返される。
様々な実施形態において、ファブリック710は、クライアント790間、及び、メモリ780とクライアント790との間でデータを互いに転送する。ルーティングコンポーネント762,764,766の各々は、クライアント792,794,796との通信プロトコルをサポートする。いくつかの実施形態では、ルーティングコンポーネント720,750,762,764,766の各々は、図示するように単一のクライアントと通信する。他の実施形態では、ルーティングコンポーネント720,750,762,764,766のうち1つ以上は、複数のクライアントと通信し、クライアント識別子によりパケットを追跡する。いくつかの実施形態では、ルーティングコンポーネント720,750,762,764,766は、少なくとも、要求パケット及び応答パケットを格納するためのキュー、パケットをネットワーク760に送信する前に受信パケット間で調停するための選択ロジック、及び、パケットを構築し、パケットを復号し、ルーティングネットワーク760との通信プロトコルをサポートするためのロジックを含む。実施形態では、ルーティングコンポーネント720,750,762,764,766は、アドレス空間とメモリチャネルとの間の更新したマッピングを有する。様々な実施形態では、ルーティングコンポーネント720,750,762,764,766及びメモリコントローラ770は、その所望の機能を提供するためのアルゴリズムを実装するためのハードウェア回路及び/又はソフトウェアを含む。
様々な実施形態では、ファブリック710は、要求及び応答をキューに入れ、制御パラメータを格納し、1つ以上の通信及びネットワークプロトコルに従い、1つ以上のバスのソースと宛先との間でトラフィックを効率的にルーティングするための制御ロジック、ステータス及び制御レジスタ、他のストレージ要素を含む。実施形態では、ルーティングネットワーク760は、ポイントツーポイント(P2P)リングトポロジーにおいて複数のスイッチを利用する。他の実施形態では、ルーティングネットワーク760は、クラスタトポロジーにおいてプログラム可能なルーティングテーブルを伴うネットワークスイッチを利用する。さらに他の実施形態では、ルーティングネットワーク760は、トポロジーの組み合わせを利用する。
図示するように、調停ユニット730は、読み取りキュー732と、書き込みキュー736と、選択ロジック740と、を含む。2つのキューが示されているが、様々な実施形態において、調停ユニット730は、メモリアクセス応答を格納するための任意の数のキューを含む。選択ロジック740は、選択された読み取り応答734と選択された書き込み応答738との間で選択して、選択された応答742として、ファブリック710を介してクライアント790の各々に送信する。一実施形態では、調停ユニット730は、インターフェイス722を介してメモリコントローラ770からメモリアクセス応答を受信する。いくつかの実施形態では、調停ユニット730は、受信した読み取り応答を読み取りキュー732に格納し、受信した書き込み応答を書き込みキュー736に格納する。他の実施形態では、受信した読み取り応答及び受信した書き込み応答は、同じキューに格納される。いくつかの実施形態では、調停ユニット730は、効率的なアウトオブオーダサービスのために、受信されたメモリアクセス応答を並べ替える。並べ替えは、優先度レベル、サービスの品質(QoS)のパラメータ、メモリアクセス要求のパケットの経過時間、又は、他の考慮事項のうち1つ以上に基づいている。並べ替えアルゴリズムは、選択ロジック740と同様に、読み取りキュー732及び書き込みキュー736内の又はその隣に配置されたロジック(図示省略)によって使用される。
様々な実施形態では、調停ユニット730は、ファブリック710の特性に基づいて応答の選択及び並べ替えに使用されるアルゴリズムを適合させるためのプログラム可能な制御レジスタ及び/又は制御ロジックを含む。いくつかの実施形態では、インターフェイス722,724の各々は、受信したパケットを格納するためのストレージ要素を含む。クロックゲーティングロジック742は、パーティションに分割されたペイロードデータを格納するデータパケットのパーティションイネーブル信号744を受信する。クロックゲーティングロジック742は、少なくともインターフェイス722,724のストレージ要素へのクロック信号を無効にすることによって、コンピューティングシステム700の電力消費を低減する。ルーティングネットワーク760内の複数のコンポーネント及びルーティングコンポーネント720,750,762,764,766が、ペイロードデータのパーティションに関連付けられたパーティションイネーブル信号に依拠するクロックゲーティングロジックを使用している場合、コンピューティングシステム700は、消費電力を削減してアプリケーションを処理する。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令は、本明細書で説明する方法及び/又はメカニズムを実施するために使用される。プログラム命令は、C言語等の高水準プログラミング言語でハードウェアの挙動を記述している。或いは、Verilog等のハードウェア設計言語(HDL)が使用される。プログラム命令は、非一時的なコンピュータ可読記憶媒体に記憶される。多くのタイプの記憶媒体が利用可能である。記憶媒体は、使用中にコンピューティングシステムによってアクセス可能であり、プログラム命令及び付随するデータを、プログラム実行のためにコンピューティングシステムに提供する。コンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行する1つ以上のプロセッサと、を含む。
上述した実施形態が、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に理解されれば、多くの変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含するように解釈されることが意図される。

Claims (20)

  1. コンピューティングシステムであって、
    データペイロードの複数のパーティションと、それぞれ前記複数のパーティションに関連付けられている複数のイネーブル信号と、を含むパケットを生成するように構成された回路を含むソースと、
    宛先と、
    前記ソース及び前記宛先の各々に結合されたルーティングコンポーネントと、を備え、
    前記ルーティングコンポーネントは、
    前記ソースから前記パケットを受信することと、
    所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有すると判定したことに応じて、前記複数のパーティションのうち前記所定のパーティションのデータを格納するように構成された前記ルーティングコンポーネントの各ストレージ要素のクロック信号を無効にすることと、
    を行うように構成された回路を含む、
    コンピューティングシステム。
  2. 前記ルーティングコンポーネントは、
    前記否定されたイネーブル信号と、
    前記所定のパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値と、
    を前記宛先に伝送するようにさらに構成されている、
    請求項1のコンピューティングシステム。
  3. 前記ルーティングコンポーネントは、
    前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことに応じて、前記所定のパーティションのデータを格納するように割り当てられた前記ルーティングコンポーネントの各ストレージ要素のクロック信号を有効にするようにさらに構成されている、
    請求項1のコンピューティングシステム。
  4. 前記ソースは、
    前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、
    前記所定のパーティションが所定のデータパターンを含むと判定したことと、
    に応じて、前記所定のパーティションのイネーブル信号を否定するようにさらに構成されている、
    請求項1のコンピューティングシステム。
  5. 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを示す前記パケットのタイプは、前記パケットの応答タイプを含む、
    請求項4のコンピューティングシステム。
  6. 前記宛先は、
    前記ルーティングコンポーネントから前記パケットを受信することと、
    前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことと、に応じて、所定のデータパターンを前記パケットの前記所定のパーティションに挿入することと、
    を行うようにさらに構成されている、
    請求項1のコンピューティングシステム。
  7. 前記ルーティングコンポーネントは、前記ソースと前記宛先との間の通信ファブリックのスイッチ及びリピータのうち何れかをさらに備える、
    請求項1のコンピューティングシステム。
  8. 前記ソースは、中央処理装置、グラフィックス処理装置、及び、マルチメディアエンジンのうち1つ以上を備える、
    請求項1のコンピューティングシステム。
  9. 方法であって、
    ソースが、データペイロードの複数のパーティションと、それぞれ前記複数のパーティションに関連付けられている複数のイネーブル信号と、を含むパケットを生成することと、
    宛先が、前記パケットを処理することと、
    ルーティングコンポーネントが、前記ソースから前記パケットを受信することと、
    前記ルーティングコンポーネントが、所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有することを判定したことに応じて、前記複数のパーティションのうち前記所定のパーティションのデータを格納するように割り当てられた前記ルーティングコンポーネントの各ストレージ要素のクロック信号を無効にすることと、を含む、
    方法。
  10. 前記否定されたイネーブル信号と、
    前記所定のパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値と、
    を前記宛先に伝送することをさらに含む、
    請求項9の方法。
  11. 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことに応じて、前記所定のパーティションのデータを格納するように割り当てられた前記ルーティングコンポーネントの各ストレージ要素のクロック信号を有効にすることをさらに含む、
    請求項9の方法。
  12. 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、
    前記所定のパーティションが所定のデータパターンを含むと判定したことと、
    に応じて、前記所定のパーティションのイネーブル信号を否定することをさらに含む、
    請求項9の方法。
  13. 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを示す前記パケットのタイプは、前記パケットのキャッシュビクティムタイプを含む、
    請求項12の方法。
  14. 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを示す前記パケットのタイプは、前記パケットのフルサイズ書き込みタイプを含む、
    請求項12の方法。
  15. 前記宛先が、前記ルーティングコンポーネントから前記パケットを受信することと、
    前記宛先が、前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、前記所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有すると判定したことと、に応じて、所定のデータパターンを前記パケットの前記所定のパーティションに挿入することと、をさらに含む、
    請求項9の方法。
  16. 前記ルーティングコンポーネントは、前記ソースと前記宛先との間の通信ファブリックのスイッチ及びリピータのうち何れかを備える、
    請求項9の方法。
  17. 装置であって、
    データペイロードの複数のパーティションと、それぞれ前記複数のパーティションに関連付けられている複数のイネーブル信号と、を含むパケットをソースから受信するように構成された第1のインターフェイスと、
    前記パケットを宛先に伝送するように構成された第2のインターフェイスと、
    複数のストレージ要素と、
    回路と、を備え、
    前記回路は、
    所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有することを判定したことに応じて、前記複数のパーティションのうち前記所定のパーティションのデータを格納するために割り当てられた前記複数のストレージ要素の各ストレージ要素のクロック信号を無効にするように構成されている、
    装置。
  18. 前記回路は、
    前記否定されたイネーブル信号と、
    前記所定のパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値と、
    を、前記第2のインターフェイスを介して前記宛先に伝送するようにさらに構成されている、
    請求項17の装置。
  19. 前記回路は、
    前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことに応じて、前記所定のパーティションのデータを格納するように割り当てられた複数のストレージ要素の各ストレージ要素のクロック信号を有効化するようにさらに構成されている、
    請求項17の装置。
  20. 前記装置は、前記ソースと前記宛先との間の通信ファブリックのスイッチを備える、
    請求項17の装置。
JP2022536764A 2019-12-23 2020-12-17 電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用 Pending JP2023507330A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/725,901 2019-12-23
US16/725,901 US11223575B2 (en) 2019-12-23 2019-12-23 Re-purposing byte enables as clock enables for power savings
PCT/US2020/065567 WO2021133629A1 (en) 2019-12-23 2020-12-17 Re-purposing byte enables as clock enables for power savings

Publications (1)

Publication Number Publication Date
JP2023507330A true JP2023507330A (ja) 2023-02-22

Family

ID=74191841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022536764A Pending JP2023507330A (ja) 2019-12-23 2020-12-17 電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用

Country Status (6)

Country Link
US (2) US11223575B2 (ja)
EP (1) EP4081908A1 (ja)
JP (1) JP2023507330A (ja)
KR (1) KR20220113515A (ja)
CN (1) CN114830102A (ja)
WO (1) WO2021133629A1 (ja)

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4760515A (en) 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
US5553223A (en) 1990-04-03 1996-09-03 U S West Advanced Technologies, Inc. Method and system of selectively transmitting display formats and data between a host computer and an intelligent terminal
JP2571655B2 (ja) * 1991-11-27 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロトコル変換機構、交換ネットワーク及びコンピュータ・システム
US5903324A (en) * 1994-06-30 1999-05-11 Thomson Multimedia S.A. Transport processor interface for a digital television system
JPH08147241A (ja) * 1994-11-22 1996-06-07 Seiko Epson Corp 情報処理装置およびその構成方法
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US6023561A (en) 1995-06-01 2000-02-08 Advanced Micro Devices, Inc. System for processing traceable cache trace information
US6138140A (en) 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US5815653A (en) 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US6058393A (en) 1996-02-23 2000-05-02 International Business Machines Corporation Dynamic connection to a remote tool in a distributed processing system environment used for debugging
US5706502A (en) 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US5761513A (en) 1996-07-01 1998-06-02 Sun Microsystems, Inc. System and method for exception handling in dynamically linked programs
US5923885A (en) 1996-10-31 1999-07-13 Sun Microsystems, Inc. Acquisition and operation of remotely loaded software using applet modification of browser software
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US6618854B1 (en) 1997-02-18 2003-09-09 Advanced Micro Devices, Inc. Remotely accessible integrated debug environment
US5926838A (en) * 1997-03-19 1999-07-20 Micron Electronics Interface for high speed memory
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6119247A (en) 1998-06-22 2000-09-12 International Business Machines Corporation Remote debugging of internet applications
SE514430C2 (sv) 1998-11-24 2001-02-26 Net Insight Ab Förfarande och system för bestämning av nättopologi
US6163263A (en) * 1999-02-02 2000-12-19 Pittway Corporation Circuitry for electrical device in multi-device communications system
US6667960B1 (en) 2000-04-29 2003-12-23 Hewlett-Packard Development Company, L.P. Protocol for identifying components in a point-to-point computer system
US6694392B1 (en) * 2000-06-30 2004-02-17 Intel Corporation Transaction partitioning
JP4782937B2 (ja) 2001-03-27 2011-09-28 株式会社東芝 半導体記憶装置
US7027400B2 (en) 2001-06-26 2006-04-11 Flarion Technologies, Inc. Messages and control methods for controlling resource allocation and flow admission control in a mobile communications system
US20030035371A1 (en) 2001-07-31 2003-02-20 Coke Reed Means and apparatus for a scaleable congestion free switching system with intelligent control
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7184916B2 (en) * 2003-05-20 2007-02-27 Cray Inc. Apparatus and method for testing memory cards
US20050198459A1 (en) 2004-03-04 2005-09-08 General Electric Company Apparatus and method for open loop buffer allocation
US20050228531A1 (en) 2004-03-31 2005-10-13 Genovker Victoria V Advanced switching fabric discovery protocol
US7542473B2 (en) 2004-12-02 2009-06-02 Nortel Networks Limited High-speed scheduling apparatus for a switching node
US7644255B2 (en) 2005-01-13 2010-01-05 Sony Computer Entertainment Inc. Method and apparatus for enable/disable control of SIMD processor slices
US7813360B2 (en) 2005-01-26 2010-10-12 Emulex Design & Manufacturing Corporation Controlling device access fairness in switched fibre channel fabric loop attachment systems
US7724778B2 (en) 2005-01-28 2010-05-25 I/O Controls Corporation Control network with data and power distribution
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
KR100685300B1 (ko) * 2005-11-02 2007-02-22 엠텍비젼 주식회사 인코딩된 데이터 전달 방법 및 그 방법을 수행하는 촬상장치
KR100735756B1 (ko) 2006-01-02 2007-07-06 삼성전자주식회사 반도체 집적 회로
US7603503B1 (en) 2006-09-18 2009-10-13 Nvidia Corporation Efficiency based arbiter
US7657710B2 (en) 2006-11-17 2010-02-02 Sun Microsystems, Inc. Cache coherence protocol with write-only permission
US8028131B2 (en) 2006-11-29 2011-09-27 Intel Corporation System and method for aggregating core-cache clusters in order to produce multi-core processors
US8095816B1 (en) 2007-04-05 2012-01-10 Marvell International Ltd. Processor management using a buffer
US20090016355A1 (en) 2007-07-13 2009-01-15 Moyes William A Communication network initialization using graph isomorphism
US8549207B2 (en) 2009-02-13 2013-10-01 The Regents Of The University Of Michigan Crossbar circuitry for applying an adaptive priority scheme and method of operation of such crossbar circuitry
US8230152B2 (en) 2009-02-13 2012-07-24 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
US8448001B1 (en) 2009-03-02 2013-05-21 Marvell International Ltd. System having a first device and second device in which the main power management module is configured to selectively supply a power and clock signal to change the power state of each device independently of the other device
JP5424726B2 (ja) * 2009-06-05 2014-02-26 オリンパス株式会社 撮像装置
US8359421B2 (en) 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system
US8549249B1 (en) 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8364844B2 (en) 2009-11-13 2013-01-29 International Business Machines Corporation Deadlock-free class routes for collective communications embedded in a multi-dimensional torus network
WO2011065354A1 (ja) * 2009-11-26 2011-06-03 日本電気株式会社 バスモニタ回路及びバスモニタ方法
US9081501B2 (en) 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
JP5482466B2 (ja) * 2010-06-03 2014-05-07 富士通株式会社 データ転送装置及びデータ転送装置の動作周波数制御方法
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
EP2617159B1 (en) 2010-09-17 2018-04-04 Oracle International Corporation System and method for facilitating protection against run-away subnet manager instances in a middleware machine environment
US8612821B2 (en) * 2010-10-06 2013-12-17 Cleversafe, Inc. Data transmission utilizing route selection and dispersed storage error encoding
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
KR101842245B1 (ko) 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
WO2013077845A1 (en) 2011-11-21 2013-05-30 Intel Corporation Reducing power consumption in a fused multiply-add (fma) unit of a processor
WO2013148872A1 (en) * 2012-03-28 2013-10-03 Huawei Technologies Co., Ltd. Concurrently accessed set associative overflow cache
US9170971B2 (en) 2012-12-26 2015-10-27 Iii Holdings 2, Llc Fabric discovery for a cluster of nodes
US9535860B2 (en) 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric
US9436634B2 (en) 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
JP6185291B2 (ja) * 2013-06-03 2017-08-23 ローム株式会社 ワイヤレス送電装置、その制御回路および制御方法
EP3060992B1 (en) 2013-10-27 2019-11-27 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
US10169256B2 (en) 2014-01-31 2019-01-01 Silicon Laboratories Inc. Arbitrating direct memory access channel requests
US9268970B2 (en) 2014-03-20 2016-02-23 Analog Devices, Inc. System and method for security-aware master
US9529400B1 (en) 2014-10-29 2016-12-27 Netspeed Systems Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US9774503B2 (en) 2014-11-03 2017-09-26 Intel Corporation Method, apparatus and system for automatically discovering nodes and resources in a multi-node system
CN107005483B (zh) 2014-12-27 2021-01-26 英特尔公司 用于高性能网络结构安全的技术
US20160191420A1 (en) 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
US9652391B2 (en) 2014-12-30 2017-05-16 Arteris, Inc. Compression of hardware cache coherent addresses
US9594621B1 (en) 2014-12-30 2017-03-14 Juniper Networks, Inc. Online network device diagnostic monitoring and fault recovery system
GB2546603B (en) 2015-01-16 2019-05-08 Imagination Tech Ltd Arbiter verification
JP6883377B2 (ja) * 2015-03-31 2021-06-09 シナプティクス・ジャパン合同会社 表示ドライバ、表示装置及び表示ドライバの動作方法
US10200261B2 (en) 2015-04-30 2019-02-05 Microsoft Technology Licensing, Llc Multiple-computing-node system job node selection
US20160378168A1 (en) 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Dynamic power management optimization
US9971700B2 (en) 2015-11-06 2018-05-15 Advanced Micro Devices, Inc. Cache with address space mapping to slice subsets
US9983652B2 (en) 2015-12-04 2018-05-29 Advanced Micro Devices, Inc. Balancing computation and communication power in power constrained clusters
US9918146B2 (en) 2016-02-08 2018-03-13 Intel Corporation Computing infrastructure optimizations based on tension levels between computing infrastructure nodes
US20170300427A1 (en) * 2016-04-18 2017-10-19 Mediatek Inc. Multi-processor system with cache sharing and associated cache sharing method
US20180048562A1 (en) 2016-08-09 2018-02-15 Knuedge Incorporated Network Processor Inter-Device Packet Source ID Tagging for Domain Security
US10298511B2 (en) 2016-08-24 2019-05-21 Apple Inc. Communication queue management system
US9946646B2 (en) * 2016-09-06 2018-04-17 Advanced Micro Devices, Inc. Systems and method for delayed cache utilization
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US10282296B2 (en) * 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
US10248574B2 (en) * 2017-05-30 2019-04-02 Intel Corporation Input/output translation lookaside buffer prefetching
US10861504B2 (en) 2017-10-05 2020-12-08 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
US11196657B2 (en) 2017-12-21 2021-12-07 Advanced Micro Devices, Inc. Self identifying interconnect topology
KR101936951B1 (ko) * 2018-04-11 2019-01-11 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
CN109032980B (zh) * 2018-06-30 2023-12-26 唯捷创芯(天津)电子技术股份有限公司 串行通信装置及串行通信方法
US10558602B1 (en) * 2018-09-13 2020-02-11 Intel Corporation Transmit byte enable information over a data bus
US11360905B2 (en) * 2019-05-24 2022-06-14 Texas Instmments Incorporated Write merging on stores with different privilege levels
US11169585B2 (en) * 2019-08-16 2021-11-09 Apple Inc. Dashboard with push model for receiving sensor data

Also Published As

Publication number Publication date
US11223575B2 (en) 2022-01-11
US20210194827A1 (en) 2021-06-24
KR20220113515A (ko) 2022-08-12
EP4081908A1 (en) 2022-11-02
CN114830102A (zh) 2022-07-29
US20220103489A1 (en) 2022-03-31
WO2021133629A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
KR101925266B1 (ko) 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들
US10496561B2 (en) Resilient vertical stacked chip network for routing memory requests to a plurality of memory dies
US10725957B1 (en) Uniform memory access architecture
JP7108135B2 (ja) 並び替えの間のキャッシュ一貫性を維持する方法
US20230342307A1 (en) Transmission of address translation type packets
KR20210088683A (ko) 데이터 영역 저장을 위한 캐시
JP7264901B2 (ja) システム全体の低電力管理
US10540304B2 (en) Power-oriented bus encoding for data transmission
US10684965B2 (en) Method to reduce write responses to improve bandwidth and efficiency
US20230195368A1 (en) Write Request Buffer
US11223575B2 (en) Re-purposing byte enables as clock enables for power savings
WO2020122988A1 (en) Memory request chaining on bus
US20240211023A1 (en) Buffer display data in a chiplet architecture
KR102584507B1 (ko) 링크 계층 데이터 패킹 및 패킷 흐름 제어 기법
US11874783B2 (en) Coherent block read fulfillment
US20240079036A1 (en) Standalone Mode
US20240071464A1 (en) Dynamic Address Scramble
US20240202144A1 (en) Coherent block read fulfillment
US11928039B1 (en) Data-transfer test mode
US20240211414A1 (en) Multichannel memory arbitration and interleaving scheme
CN117708003A (zh) 一种基于芯粒的互联系统及数据访问方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231110