JP2023507330A - 電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用 - Google Patents
電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用 Download PDFInfo
- 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
Links
- 238000005192 partition Methods 0.000 claims abstract description 172
- 238000000034 method Methods 0.000 claims abstract description 36
- 239000004744 fabric Substances 0.000 claims abstract description 34
- 238000004891 communication Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 25
- 238000010586 diagram Methods 0.000 abstract description 11
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 47
- 238000012546 transfer Methods 0.000 description 11
- 239000000523 sample Substances 0.000 description 7
- 239000000872 buffer Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000001816 cooling Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/64—Distributing or queueing
- H04Q3/68—Grouping or interlacing selector groups or stages
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)を含む。
様々なコンピューティングデバイスが、システムの機能を提供するために複数のタイプの処理装置を統合する異種統合(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のコンピューティングシステム。 - 前記ルーティングコンポーネントは、
前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことに応じて、前記所定のパーティションのデータを格納するように割り当てられた前記ルーティングコンポーネントの各ストレージ要素のクロック信号を有効にするようにさらに構成されている、
請求項1のコンピューティングシステム。 - 前記ソースは、
前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、
前記所定のパーティションが所定のデータパターンを含むと判定したことと、
に応じて、前記所定のパーティションのイネーブル信号を否定するようにさらに構成されている、
請求項1のコンピューティングシステム。 - 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを示す前記パケットのタイプは、前記パケットの応答タイプを含む、
請求項4のコンピューティングシステム。 - 前記宛先は、
前記ルーティングコンポーネントから前記パケットを受信することと、
前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことと、に応じて、所定のデータパターンを前記パケットの前記所定のパーティションに挿入することと、
を行うようにさらに構成されている、
請求項1のコンピューティングシステム。 - 前記ルーティングコンポーネントは、前記ソースと前記宛先との間の通信ファブリックのスイッチ及びリピータのうち何れかをさらに備える、
請求項1のコンピューティングシステム。 - 前記ソースは、中央処理装置、グラフィックス処理装置、及び、マルチメディアエンジンのうち1つ以上を備える、
請求項1のコンピューティングシステム。 - 方法であって、
ソースが、データペイロードの複数のパーティションと、それぞれ前記複数のパーティションに関連付けられている複数のイネーブル信号と、を含むパケットを生成することと、
宛先が、前記パケットを処理することと、
ルーティングコンポーネントが、前記ソースから前記パケットを受信することと、
前記ルーティングコンポーネントが、所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有することを判定したことに応じて、前記複数のパーティションのうち前記所定のパーティションのデータを格納するように割り当てられた前記ルーティングコンポーネントの各ストレージ要素のクロック信号を無効にすることと、を含む、
方法。 - 前記否定されたイネーブル信号と、
前記所定のパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値と、
を前記宛先に伝送することをさらに含む、
請求項9の方法。 - 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことに応じて、前記所定のパーティションのデータを格納するように割り当てられた前記ルーティングコンポーネントの各ストレージ要素のクロック信号を有効にすることをさらに含む、
請求項9の方法。 - 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、
前記所定のパーティションが所定のデータパターンを含むと判定したことと、
に応じて、前記所定のパーティションのイネーブル信号を否定することをさらに含む、
請求項9の方法。 - 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを示す前記パケットのタイプは、前記パケットのキャッシュビクティムタイプを含む、
請求項12の方法。 - 前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを示す前記パケットのタイプは、前記パケットのフルサイズ書き込みタイプを含む、
請求項12の方法。 - 前記宛先が、前記ルーティングコンポーネントから前記パケットを受信することと、
前記宛先が、前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有することを、前記パケットのタイプが示すと判定したことと、前記所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有すると判定したことと、に応じて、所定のデータパターンを前記パケットの前記所定のパーティションに挿入することと、をさらに含む、
請求項9の方法。 - 前記ルーティングコンポーネントは、前記ソースと前記宛先との間の通信ファブリックのスイッチ及びリピータのうち何れかを備える、
請求項9の方法。 - 装置であって、
データペイロードの複数のパーティションと、それぞれ前記複数のパーティションに関連付けられている複数のイネーブル信号と、を含むパケットをソースから受信するように構成された第1のインターフェイスと、
前記パケットを宛先に伝送するように構成された第2のインターフェイスと、
複数のストレージ要素と、
回路と、を備え、
前記回路は、
所定のパーティションが、前記パケット内の関連する否定されたイネーブル信号を有することを判定したことに応じて、前記複数のパーティションのうち前記所定のパーティションのデータを格納するために割り当てられた前記複数のストレージ要素の各ストレージ要素のクロック信号を無効にするように構成されている、
装置。 - 前記回路は、
前記否定されたイネーブル信号と、
前記所定のパーティションのデータを格納するために割り当てられた各ストレージ要素に格納された以前の値と、
を、前記第2のインターフェイスを介して前記宛先に伝送するようにさらに構成されている、
請求項17の装置。 - 前記回路は、
前記所定のパーティションが、前記パケット内の関連するアサートされたイネーブル信号を有すると判定したことに応じて、前記所定のパーティションのデータを格納するように割り当てられた複数のストレージ要素の各ストレージ要素のクロック信号を有効化するようにさらに構成されている、
請求項17の装置。 - 前記装置は、前記ソースと前記宛先との間の通信ファブリックのスイッチを備える、
請求項17の装置。
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)
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 |
-
2019
- 2019-12-23 US US16/725,901 patent/US11223575B2/en active Active
-
2020
- 2020-12-17 WO PCT/US2020/065567 patent/WO2021133629A1/en unknown
- 2020-12-17 CN CN202080086926.0A patent/CN114830102A/zh active Pending
- 2020-12-17 EP EP20842753.4A patent/EP4081908A1/en active Pending
- 2020-12-17 KR KR1020227024396A patent/KR20220113515A/ko unknown
- 2020-12-17 JP JP2022536764A patent/JP2023507330A/ja active Pending
-
2021
- 2021-12-10 US US17/548,398 patent/US20220103489A1/en active Pending
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 |