JP7140768B2 - コヒーレント相互接続システムにおける読み取りトランザクショントラッカーのライフタイム - Google Patents

コヒーレント相互接続システムにおける読み取りトランザクショントラッカーのライフタイム Download PDF

Info

Publication number
JP7140768B2
JP7140768B2 JP2019541407A JP2019541407A JP7140768B2 JP 7140768 B2 JP7140768 B2 JP 7140768B2 JP 2019541407 A JP2019541407 A JP 2019541407A JP 2019541407 A JP2019541407 A JP 2019541407A JP 7140768 B2 JP7140768 B2 JP 7140768B2
Authority
JP
Japan
Prior art keywords
transaction
read
direct memory
memory transfer
transfer request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019541407A
Other languages
English (en)
Other versions
JP2020506482A (ja
Inventor
クマール マンナバ、ファニンドラ
ジェイムズ マシューソン、ブルース
ジャラル、ジャムシェッド
ピー. リンゲ、トゥーシャー
Original Assignee
アーム・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2020506482A publication Critical patent/JP2020506482A/ja
Application granted granted Critical
Publication of JP7140768B2 publication Critical patent/JP7140768B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1492Generic software techniques for error detection or fault masking by run-time replication performed by the application software
    • G06F11/1494N-modular type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Description

本開示は、データ処理システムに関する。より詳細には、コヒーレンシ・プロトコル・トランザクションが交換されるコヒーレント相互接続システムに関する。
システムの構成要素がコヒーレンシ・プロトコル・トランザクションを交換するコヒーレント相互接続を含むデータ処理システムでは、システム内で望ましいコヒーレンシを維持するために、それらのトランザクションとそれらが引き起こすデータ処理操作を慎重に管理する必要がある。この管理の一部として、システム内の装置は特定のトランザクションの記録を保持することができ、対応する記録はトランザクションが保留状態にある間維持され、トランザクションが完了すると削除される。
本明細書で説明する少なくとも1つの例は、コヒーレント相互接続システムのための装置を提供し、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信し、さらにコヒーレンシ・プロトコル・トランザクションをデータ保存スレーブデバイスと交換するインターフェース回路と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するトランザクション追跡(tracking)回路と、データ保存スレーブデバイスに保存されたデータ項目に対する要求元マスターデバイスからのコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションのインターフェース回路での受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するトランザクション制御回路であって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、トランザクション制御回路と、を含み、トランザクション追跡回路は、データ保存スレーブデバイスからの読み取り確認応答信号のインターフェース回路での受信に応答して、直接メモリ転送要求の完了を示すために、読み取りトランザクションの受信によって作成されたトランザクション追跡回路内の記録を更新する。
本明細書で説明する少なくとも1つの例は、コヒーレント相互接続システムにおける装置を動作させる方法を提供し、本方法は、データ保存スレーブデバイスに保存されたデータ項目について、要求元マスターデバイスから一組のコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションを受信するステップと、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するステップと、読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するステップであって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、ステップと、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了を示す読み取りトランザクションの受信によって作成された記録を更新するステップと、を含む。
本明細書で説明される少なくとも1つの例は、要求元マスターデバイスおよびデータ保存スレーブデバイスを含むコヒーレント相互接続システムのための装置を提供し、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信するための手段と、さらにデータ保存スレーブデバイスとコヒーレンシ・プロトコル・トランザクションを交換するための手段と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するための手段と、データ保存デバイスに保存されたデータ項目に対する要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するための手段であって、直接メモリ転送要求は、読み取り確認応答トリガを含む、手段と、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了に対応する読み取りトランザクションの受信によって作成された記録を維持するための手段における記録を更新するための手段と、を含む。
本明細書で説明する少なくとも1つの例は、コヒーレント相互接続システムのためのデータ保存スレーブデバイスを提供し、データ保存スレーブデバイスは、コヒーレンシ・プロトコル・トランザクションをハブデバイスと交換し、さらにコヒーレンシ・プロトコル・トランザクションをマスターデバイスと交換するインターフェース回路と、ハブデバイスに読み取り確認応答信号を送信するための読み取り確認応答トリガを含む、ハブデバイスからの直接メモリ転送要求の受信に応答して、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するトランザクション制御回路と、を含む。
本明細書で説明する少なくとも1つの例は、コヒーレント相互接続システムにおけるデータ保存スレーブデバイスを動作させる方法を提供し、本方法は、ハブデバイスからの直接メモリ転送要求を受信するステップと、直接メモリ転送要求が読み取り確認応答トリガを含む場合に、読み取り確認応答信号をハブデバイスに送信するステップと、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するステップと、を含む。
単なる例として、添付の図面に示す本技術の実施形態を参照して本技術をさらに説明する。
一実施形態におけるコヒーレント相互接続を含むデータ処理システムを概略的に示す図である。 一実施形態における図1に示すようなコヒーレント相互接続システムにおいてハブまたはホームデバイスとして機能することができる装置のいくつかの構成要素を概略的に示す図である。 一実施形態における、要求元マスターデバイス、ホームノードデバイス、およびデータ保存スレーブデバイス間で交換される一組の例示的なメッセージを示す図である。 一実施形態の方法に従って行われる一組のステップを示す図である。 一実施形態の方法に従って行われる一組のステップを示す図である。 一実施形態における、完全な確認応答に応答してカウンタをデクリメントするために行われる一組のステップを示す図である。 一実施形態における、ホームノードデバイスが静止状態に入るべきである場合に行われる一組のステップを示す図である。
いくつかの例示的な実施形態では、コヒーレント相互接続システムのための装置があり、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信し、さらにコヒーレンシ・プロトコル・トランザクションをデータ保存スレーブデバイスと交換するインターフェース回路と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するトランザクション追跡回路と、データ保存スレーブデバイスに保存されたデータ項目に対する要求元マスターデバイスからのコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションのインターフェース回路での受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するトランザクション制御回路であって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、トランザクション制御回路と、を含み、トランザクション追跡回路は、データ保存スレーブデバイスからの読み取り確認応答信号のインターフェース回路での受信に応答して、直接メモリ転送要求の完了を示すために、読み取りトランザクションの受信によって作成されたトランザクション追跡回路内の記録を更新する。
本装置は、要求元マスターデバイスから読み取りトランザクションを受信し、データ保存スレーブデバイスに保存されている要求されたデータを検索して要求元マスターデバイスに戻すので、システム内で「ホームノード」または「ハブデバイス」の役割を果たす。装置内のトランザクション追跡回路(ここでは単に「トラッカー」とも呼ばれる)により、システム内で交換されるコヒーレンシ・プロトコル・トランザクションを管理および監視し、特に各トランザクションが正しく完了するように監視されることが保証されることが可能になる。しかし、この「ホーム」デバイスの役割を果たすと、現在保留中のすべてのトランザクションのエントリを保持するためにトラッカーで維持する必要があるストレージに関して、また、読み取り要求に応答してデータ保存スレーブデバイスから検索されたデータを装置が仲介する必要があるという点で、装置に一定の負担がかかる。したがって、可能な場合、装置は、データ保存スレーブデバイスに対して、要求元マスターにデータを直接転送するように指示することが好ましい(すなわち、装置が、要求元のマスターデバイスをターゲットとして指定して、「直接メモリ転送要求」をデータ保存スレーブデバイスに発行する)。しかし、この手法では、ホームノードがトラッカーのエントリをいつ完了としてマークするか(ここでは、トラッカーでの要求の割り当て解除とも呼ばれる)分からないという難点があるが、それは、スレーブデータ保存デバイス(スレーブノード)または要求元マスターデバイス(要求元ノード)で処理されている要求のホームノードによって受信される表示がないためである。要求元マスターデバイスが発行した読み取り要求には、要求元マスター(ノード)が要求されたデータを受信すると、ホームノードが最終的に「完全な確認応答」を期待できる、すなわち、要求元ノードがそのような確認応答をホームノードに送信する、という指示を含めることができるが、この方式により、ホームノードのトラッカーのこのトランザクションに対応するエントリのライフタイムが、スレーブノードから要求元ノードへのデータの完全なラウンドトリップレイテンシと、要求ノードからホームノードへの完全な確認応答レイテンシによって与えられる。
これに関連して、本技術は、装置からデータ保存スレーブデバイスに送信される直接メモリ転送要求が、(要求が受け入れられ、再試行メッセージを送信しないことを保証できる場合に)それに応答してデータ保存スレーブデバイスが読み取り確認応答信号を送信できる読み取り確認応答トリガを含むことを提供する。装置のトランザクション追跡回路は、この読み取り確認応答信号に応答して、トラッカーの要求の割り当てを解除する。すなわち、要求元マスターデバイスからの読み取り要求の受信に応じて作成したエントリを完了としてマークするか、エントリを削除する。この場合、トラッカー内のこのエントリのライフタイムは、上記のシナリオよりも著しく短くなり、さらに、データ保存スレーブデバイスから要求元マスターデバイスへの要求されたデータの転送を直接メモリ転送により実行することができるが、それは、装置(ハブ)がさらに関与する必要がないからである。したがって、読み取りデータのレイテンシも改善される。また、要求元マスターデバイスが、要求されたデータの受信時に完全な確認応答を発行する必要はなく(そうしないと、このような直接メモリ転送の場合になる)、これにより相互接続のトラフィックが減少する。
定義された一組のセットコヒーレンシ・プロトコル・トランザクション内では、これらのトランザクションを交換するデバイス間で追加情報を交換する機会が制限される場合があることが認識されているが、しかし、現在の技術は、このようなコヒーレンシ・プロトコル・トランザクションには、順序付け制約の仕様(または逆に順序付けの自由)がラベル付けされる場合があることを特定しており、このような順序指定は、システム内のデバイスの特定のペア間で行われるトランザクションに対してのみ定義された意味を持つことができる。例えば、コヒーレント相互接続システムのハブデバイスに読み取りトランザクションを発行する要求元マスターデバイスは、要求が他のトランザクションに対して自由に順序付けられることを指定したり、逆に順序付けが制限されていることを指定したりする。順序付けられたトランザクションを受信すると、ホームノードは、スレーブノードデバイスに新しいトランザクションを発行する前に、以前の古いトランザクションの完了を確認することにより、この定義された順序付けを強制する。しかし、ホームノードによって順序付けが実行される場合、本技術では、この順序付けを指定するために使用されるトランザクションの一部が、要求元ノードとホームノード間のトランザクションにとっては意味を持ち得るが、ホームノードとスレーブノード間のトランザクションにとっては意味がないことを認識している。したがって、本技術は、トランザクションのこの部分を追加使用することで状況を利用し、ホームノードからスレーブノードに送信されたトランザクションがこの部分を再利用することで読み取り確認応答トリガを含むと解釈できるようにすることを提案する。したがって、いくつかの実施形態では、読み取りトランザクションは、読み取りトランザクションの所定の部分における他のトランザクションに関する順序の自由度の指定を含み、読み取り確認応答トリガは、直接メモリ転送要求の同じ所定の部分内に含まれる。
順序の自由が指定される読み取りトランザクションの所定の部分は様々に構成できるが、いくつかの実施形態では、読み取り確認応答トリガは、直接メモリ転送要求の所定の部分のサブ部分に示され、読み取りトランザクションの所定の部分のサブ部分は、読み取りトランザクションに関して装置にとってセマンティックな意味を有さない。
いくつかの実施形態では、所定の部分は、トランザクション順序付け仕様として解釈されるコヒーレンシ・プロトコル・トランザクションのビットフィールドである。コヒーレンシ・プロトコル・トランザクションのこの定義されたビットフィールドは様々に定義できるが、いくつかの実施形態では、ビットフィールドはトランザクション順序付け仕様として解釈される2ビットフィールドであり、2ビットフィールドの所定のビットの組み合わせは、読み取りトランザクションに関して装置にとってセマンティックな意味を有さず、2ビットフィールドの所定のビットの組み合わせは、直接メモリ転送要求内の読み取り確認応答トリガである。したがって、所定のビットの組み合わせは、読み取りトランザクションに関して装置にとってセマンティックな意味を持たない2ビットのフィールドで表すことができる4つの可能性の特定の順列であると理解される。すなわち、例えば、コヒーレンシ・プロトコル・トランザクションのこの仕様で「予約済み」として定義することができる。2ビットフィールドの内容の他の順列は、例えば、「順序付けなし」、「要求の順序付け」、および「エンドポイントの順序付け」などの読み取りトランザクションの順序付けに関して、装置に対して明確に定義された意味を持つことができる。
上述のように、本技術によって採用される手法の特徴は、(要求元マスターデバイスからの読み取りトランザクションの受信に応答してそのエントリが作成された場合に)要求元マスターデバイスからのデータ転送の完了の確認を待つ必要がなく、装置がそのトラッカーのエントリを完了としてマークすることができることである。しかし、これは、要求元マスターデバイスが、そのような完了確認応答が後で発行されるというインジケータを読み取りトランザクションに含めることを禁止されていることを意味するものではなく、いくつかの実施形態では、読み取りトランザクションは、読み取りトランザクションが完了したときに、要求元マスターデバイスによってトランザクション完了信号が引き続いて発行されることを示すインジケータを含む。
装置は、トランザクションがシステムで正しく完了したことのさらなるレベルの検証として、そのような完了確認応答信号を実際に使用することができ、この目的のために、いくつかの実施形態では、トランザクション追跡回路は、カウンタ値を維持するカウンタ回路をさらに含み、カウンタ回路は、トランザクション完了信号が引き続いて発行されるというインジケータに応答して、カウンタ値をインクリメントし、カウンタ回路は、トランザクション完了信号に応答してカウンタ値をデクリメントする。これにより、装置がそのようなトランザクションの完了を監視し、そのような確認応答が予想されると示されたときにカウンタをインクリメントし、確認応答が受信されたときにカウンタをデクリメントする機構を提供する。
次いで、このカウンタ値は、いくつかの方法で利用することができ、例えば、いくつかの実施形態では、装置は、装置が静止状態に入る準備をしている場合に、トランザクション完了信号が依然として予想されることを示すカウンタ値に応答して、エラー信号を生成する。したがって、装置がこの静止状態に入る準備をしており、したがって保留中のすべてのトランザクションを完了する必要があるときは、カウンタ値が未処理の、明らかに不完全なトランザクションを示す場合にはエラー信号が生成され得る。例えば、特定のカウンタ値の意味は様々に定義できるが、一例では、カウンタ値はゼロから始まり、トランザクション完了信号が引き続き発行されることを示すトランザクションの受信時にその値より上にインクリメントされ、したがって、カウンタのゼロ以外の値はエラー信号をトリガする可能性がある。
逆に、これは、例えば、カウンタ値が既にゼロになっているときにトランザクション完了信号が受信された場合(カウンタの上記の構成例で)、受信されたトランザクション完了信号がスプリアスであると装置が判断できる機構も提供する。したがって、いくつかの実施形態では、カウンタ値が、トランザクション完了信号がまだ予想されないことを示した場合に、トランザクション完了信号の受信に応答して装置はエラー信号を生成する。
トランザクション追跡回路は、システム内のすべての要求元マスターデバイスに使用される単一のカウンタを維持することができるが、いくつかの実施形態では、トランザクション追跡回路は、2つ以上の要求元マスターデバイスのカウンタ値を維持するために、カウンタ回路の複数のインスタンスを個別に含む。これにより、トランザクションの完了とエラーの生成の監視をマスターデバイスに固有のものにすることができる。
要求元マスターデバイスから装置が受信した読み取りトランザクションは、(要求元マスターデバイスが受信し、そのキャッシュに保存されると)データ項目の特定のコヒーレンシ状態を指定することができる。読み取りトランザクションは、データ項目が共有不可能な状態でキャッシュされることを示すことができる。言い換えれば、読み取りトランザクションは「スヌープ読み取りなし(ReadNoSnoop)」トランザクションとして説明できる。読み取りトランザクションは、データ項目が共有可能であり、要求元マスターデバイスがコピーを保持しないことを示すことができる。言い換えれば、読み取りトランザクションは「1回読み取り(ReadOnce)」トランザクションとして説明できる。読み取りトランザクションは、データ項目の他のすべてのコピーが、他のマスターのキャッシュから消去および無効化されることを示すことができる。言い換えれば、読み取りトランザクションは、「消去無効化1回読み取り(ReadOnceCleanInvalidate)」トランザクションとして説明できる。読み取りトランザクションは、データ項目の他のすべてのコピーが他のマスターのキャッシュで無効化されることを示すことができる。言い換えれば、読み取りトランザクションは「無効化1回読み取り(ReadOnceMakelnvalid)」トランザクションとして説明できる。当業者であれば、上記で使用されている用語(すなわち、「スヌープ読み取りなし(ReadNoSnoop)」、「1回読み取り(ReadOnce)」、「消去無効化1回読み取り(ReadOnceCleanInvalidate)」、および「無効化1回読み取り(ReadOnceMakelnvalid)」)は、英国ケンブリッジのARM(登録商標)Limitedが提供するAMBA(登録商標)仕様に由来するものとして認識するであろう。したがって、この開示は単に既知の用語を使用して、現在開示されている技術の恩恵を受ける可能性のある読み取りトランザクションの明確な例を示しているが、これらの技術は他のシステムおよび相互接続仕様にも同様に適用できることに留意することが重要である。
いくつかの例示的な実施形態では、コヒーレント相互接続システムにおける装置を動作させる方法があり、本方法は、データ保存スレーブデバイスに保存されたデータ項目について、要求元マスターデバイスから一組のコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションを受信するステップと、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するステップと、読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するステップであって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、ステップと、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了を示す読み取りトランザクションの受信によって作成された記録を更新するステップと、を含む。
いくつかの例示的な実施形態では、要求元マスターデバイスおよびデータ保存スレーブデバイスを含むコヒーレント相互接続システムのための装置があり、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信するための手段と、さらにデータ保存スレーブデバイスとコヒーレンシ・プロトコル・トランザクションを交換するための手段と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するための手段と、データ保存デバイスに保存されたデータ項目に対する要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するための手段であって、直接メモリ転送要求は、読み取り確認応答トリガを含む、手段と、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了に対応する読み取りトランザクションの受信によって作成された記録を維持するための手段における記録を更新するための手段と、を含む。
いくつかの例示的な実施形態では、コヒーレント相互接続システムのためのデータ保存スレーブデバイスがあり、データ保存スレーブデバイスは、コヒーレンシ・プロトコル・トランザクションをハブデバイスと交換し、さらにコヒーレンシ・プロトコル・トランザクションをマスターデバイスと交換するインターフェース回路と、ハブデバイスに読み取り確認応答信号を送信するための読み取り確認応答トリガを含む、ハブデバイスからの直接メモリ転送要求の受信に応答して、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するトランザクション制御回路と、を含む。
読み取り確認応答トリガを含む直接メモリ転送要求の受信に応答したトランザクション制御回路による読み取り確認応答信号のトリガは、様々な方法で起こり得る。例えば、いくつかの実施形態では、トランザクション制御回路は、再試行が必要でない場合に、直接メモリ転送要求の受け入れに応答して、ハブデバイスに読み取り確認応答信号を送信するように構成することができる。言い換えると、スレーブデバイスは、直接メモリ転送要求を受け入れた直後に読み取り確認応答信号を送信し、それが拒否されない(すなわち、「再試行」を発行する)ことを保証することができる。これにより、ハブデバイスは、直接メモリ転送要求の受け入れの非常に迅速な指示を受信でき、トランザクション追跡回路の記録の更新がそれに応じて迅速に行われるため、トラッカー内のその記録のライフタイムが短くなる。他の実施形態では、トリガはそれほど迅速ではなく、スレーブデバイスは、直接メモリ転送要求の処理を完了するまで応答を遅延させることができ、したがって、直接メモリ転送データの応答を要求元マスターデバイスに送信し、読み取り確認応答信号をハブ(ホーム)デバイスに送信することで、ハードウェアロジックを簡素化することができる。
いくつかの例示的な実施形態では、コヒーレント相互接続システムにおけるデータ保存スレーブデバイスを動作させる方法があり、本方法は、ハブデバイスからの直接メモリ転送要求を受信するステップと、直接メモリ転送要求が読み取り確認応答トリガを含む場合に、読み取り確認応答信号をハブデバイスに送信するステップと、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するステップと、を含む。
次に、特定の実施形態について図面を参照しながら説明する。
図1は、一実施形態において本技術が実施されるデータ処理システム10を概略的に示す。図から分かるように、これは、いくつかの異なるマスターデバイスといくつかの異なるスレーブデバイスを含む比較的異種のシステムであるが、他の実施形態も同様にはるかに均質である可能性がある。図1に示すマスターデバイスは、中央処理デバイス14、グラフィックス処理デバイス16、直接メモリアクセスデバイス(DMA)18、およびI/Oコヒーレントマスター20を含む。このI/Oコヒーレントマスター20は、さらなるネットワーク(図示せず)と通信するためのネットワークインターフェースカード(NIC)40へのブリッジを提供する。図1の例に示すスレーブデバイスは、メモリ22、24、周辺機器26、およびシステムキャッシュ28を含む。これらすべてのデバイス間の通信およびデータ転送は、コヒーレント相互接続12によって媒介され、これは本明細書ではホームノードまたはハブデバイスとも呼ばれる。図からも分かるように、CPUデバイス14は特定のCPUブロック30および関連するローカル(すなわちLI)キャッシュ34を含むように示され、グラフィックス処理デバイス16は特定のGPUブロック32およびローカル(LI)キャッシュ36を含むように示され、およびI/Oコヒーレントマスター20には、それ自体のローカル(LI)キャッシュ38も提供される。図1に示されているデバイス間の通信は、示されたシステムの周囲の複数の場所に格納されているデータ項目の複数のコピーの一貫性を維持できる一組のコヒーレンシ・プロトコル・トランザクションから定義されたフォーマットメッセージの形式をとる。この一組のコヒーレンシ・プロトコル・トランザクションは、検討中のシステムに応じて様々に定義できるが、そのような適切な例の1つは、英国ケンブリッジのARM(登録商標)Limitedが提供するAMBA(登録商標)5 CHI(コヒーレントハブインターフェース)仕様である。本明細書で開示する技術は、ホームノードが要求元マスターデバイスから受信した特定の読み取りトランザクションを処理する方法に関するものであり、これらのトランザクションは、ホームノードに増加する追跡負荷を課すことなく、直接メモリ転送によって実現できるようにする。
図2は、一実施形態における装置50を概略的に示しており、これは、例えば、図1に示したシステムにおいてコヒーレント相互接続の役割を果たすことができる。本明細書では「ホームノード」または「ハブ」とも呼ばれる装置50は、システム内のマスターデバイスとトランザクションを交換するマスターインターフェース52と、スレーブデバイスとトランザクションを交換するスレーブインターフェース54と、を含む。本開示に関連する特定のトランザクションは、システム内の要求元マスターデバイスから受信した読み取りトランザクション、およびシステム内のデータ保存スレーブデバイスに発行された直接メモリ転送要求である。装置50は、装置によるトランザクションの受信、処理、および発行の全体的な制御を管理するトランザクション制御回路56を含む。この構成要素は、トランザクション追跡回路58も参照し、トランザクション追跡回路58は、保留トランザクション回路60とカウンタ62を含むように図に示されている。装置50は、システムキャッシュ64(例えば、図1のシステムキャッシュ28であってもよい)と通信するものとして示されている。装置50が要求元マスターデバイスからマスターインターフェース52を介して受信する読み取りトランザクションは、読み取りトランザクションの順序付け要求に関して2ビットコンテンツが以下の意味を持つように定義された2ビット順序フィールドを含む。
2’b00:順序付けなし
2’b01:予約済み
2’blO:要求の順序付け
2’bll:エンドポイントの順序付け
本技術は、ビットの組み合わせ2’b01が「予約済み」として定義される、すなわちそれを受信する装置(装置50を含む)にとってセマンティックな意味を持たないという事実を利用する。直接メモリ転送要求として実施するのに適した、要求元マスターデバイスからの順不同の読み取り要求、すなわち、この例では、英国ケンブリッジのARM(登録商標)Limitedが提供するAMBA(登録商標)仕様に基づくシステムとして、「スヌープ読み取りなし(ReadNoSnoop)」、「1回読み取り(ReadOnce)」、「消去無効化1回読み取り(ReadOnceCleanInvalidate)」、「無効化1回読み取り(ReadOnceMakelnvalid)」などの非割り当て読み取りトランザクションを受信すると、トランザクション制御56は、トランザクショントラッカー58内の保留トランザクションストレージ60にエントリを作成させる。したがって、本開示は、当業者の理解を容易にするために既知の用語を使用していることに留意することが重要であるが、本開示は、本明細書で初めて提示される技術に従ってそのような読み取りトランザクションの処理を増強するものである(すなわち、直接メモリ転送要求の転送先であるスレーブデバイスから読み取り確認応答信号をトリガする)。したがって、トランザクション制御56は、次に、トランザクションの順序フィールド(直接メモリ転送要求)もマークし、その後に、読み取り確認応答が必要であることを示すために必要なデータを格納するスレーブデバイスに発行する。これは、順序フィールドの上記の指定された「予約済み」ビットの組み合わせを、読み取り確認応答が必要であることを示すために、装置50(ホームノード)とデータ保存スレーブ(スレーブノード)との間のトランザクションの特注の意味でオーバーロードすることによって行われる。この例では、ホームノードとスレーブノード間のトランザクションの2ビット順序フィールドの可能なビットの組み合わせの順列は次のとおりである。
2’b00:順序付けなし/読み取り確認応答が不要として扱われる
2’b01:読み取り確認応答が必要である
2’blO:予約済み
2’bll:予約済み
直接メモリ転送要求を受信するスレーブデバイスは、要求が受け入れられ、再試行を送信しないことを保証すると、順序フィールドの2’b01ビットの組み合わせに対するこの「新しい」意味を認識し、読み取り受信(読み取り確認応答)を送信する。実際、この例のスレーブデバイスは、直接メモリ転送要求を受け入れるとすぐに読み取り確認応答信号(読み取り受信)を送信する(そして、再試行を発行しないことを保証できる)。したがって、ホームノードは、トラッカー内のエントリの割り当てを解除できるように、直接メモリ転送要求の受け入れを示す非常に迅速な指示を受信する。この実施形態の変形例では、スレーブデバイスは、直接メモリ転送要求の処理が完了するまで読み取り受信(読み取り確認応答信号)を送信しないように構成できるため、要求元マスターデバイスに直接メモリ転送データ応答を送信し、読み取り確認応答信号をハブ(ホーム)デバイスに送信することで、スレーブハードウェアロジックが簡素化される。トランザクショントラッカー58内のカウンタ62の使用は、以下の図を参照して以下により詳細に説明される。
図3は、一実施形態において、要求元マスター、ホームノード、およびデータ保存スレーブ間で交換される一組の例示的なメッセージを示す。最初に、要求元マスターは、必要な1つまたは複数のデータ項目を指定して、読み取り要求をホームノードに送信する。これを受信すると、ホームノードはトランザクショントラッカーにエントリを作成し、データ項目が保存されているデータ保存スレーブに直接メモリ転送(読み取り要求)を発行する。この要求は、その順序フィールドに上記の特定のビットの組み合わせ(2’b01)でマークされ、読み取り確認応答が必要であることを示す。したがって、この要求の受信に応じて、データ保存スレーブは、ホームノードに読み取り受信を発行する。(上記のように)データ保存スレーブは、(直接メモリ転送要求を受け入れ、再試行が発生しないことが分かっている場合に)この読み取り受信を本質的に即座に発行するように調整することができ、あるいは直接メモリ転送が処理された後にのみ読み取り受信を送信するように設定することができることに留意されたい。受け取り確認を受信すると、ホームノードは、(完全なトランザクションが完了したかのように)トラッカーで作成したエントリを完了としてマークする。データ保存スレーブは、ストレージから必要なデータを取得し、ホームノードを経由せずに要求元マスターに直接送信する。この図は、このデータの送信が複数の送信(複数のパケットなど)を介して行われる可能性があることを示している。最後に、図3の破線の通信線は、要求されたデータが完全に受信されたときに、要求元マスターがホームノードにトランザクション完了確認応答を追加で発行できることを示している。要求元マスターがそのような完了確認応答が期待できることを最初の読み取り要求で示した場合(ExpCompAck=1)、ホームノードは対応するカウンタ(図2に示すカウンタ62の1つなど)をインクリメントし、トランザクション完了確認応答はこのカウンタをデクリメントする。これについては、以下で詳しく説明する。
図4は、一実施形態において動作中のホームノードによって実行される一連のステップを示す。フローは、順序付けされていない、スヌープ読み取りなし(ReadNoSnoop)、1回読み取り(ReadOnce)、消去無効化1回読み取り(ReadOnceCleanInvalidate)、または無効化1回読み取り(ReadOnceMakelnvalid)トランザクションが受信されたかどうかが判断されるステップ100で開始すると見なすことができる。この段階ではフローは待機していない。これらのタイプのトランザクションの1つを受信すると、フローはステップ102に進み、ホームノードがこのトランザクションのトラッカーにエントリを割り当てる。次に、ステップ104で、ホームノードはシステム内のスレーブノードに直接メモリ転送要求を発行し、そこで要求されたデータ項目が2b’01に設定された順序フィールドのビットと共に保存され、このビットの組み合わせは、順序制約の仕様に関して意味を持たないが、受信者のスレーブノードは、読み取り受信を生成する必要があることを理解する。次に、フローは、対応する読み取り受信がスレーブノードから受信されるまでステップ106で待機し、最終的にステップ108でこのトランザクションのトラッカーにエントリが割り当て解除される(すなわち、完了としてマークされる)。その後、フローはステップ100に戻る。
図5は、一実施形態におけるホームノードの動作において行われる一連のステップを示す。フローはステップ200で開始すると見なすことができ、フローは、順序付けられていない、スヌープ読み取りなし(ReadNoSnoop)、1回読み取り(ReadOnce)、消去無効化1回読み取り(ReadOnceCleanInvalidate)、または無効化1回読み取り(ReadOnceMakelnvalid)トランザクションが受信されるまで待機する。次に、フローはステップ202に進み、受信した読み取りトランザクションが、要求元マスターデバイスによってトランザクション完了確認応答が後に発行されることを示すかどうかが判定される。これが当てはまる場合(すなわち、読み取りトランザクションでExpCompAck=1の場合)、フローはステップ204を介して進み、ホームノードが要求元マスターデバイスのカウンタをインクリメントする。それ以外の場合(すなわち、読み取りトランザクションでExpCompAck=0の場合)、フローは直接ステップ206に進む。このステップでは、このトランザクションのトラッカーにエントリが割り当てられ、次にステップ208で、ホームノードがスレーブノードに直接メモリ転送(読み取り)要求を発行し、要求されたデータ項目が 2b’01に設定された順序フィールドのビットと共に格納される。次いで、フローは、ステップ210で、対応する読み取り受信がスレーブノードから受信されるまで待機し、その後に、ステップ212で、このトランザクションのトラッカー内のエントリが割り当て解除される。次に、ステップ214で、ホームノードが要求元マスターデバイスからトランザクション完了信号を受信したかどうかが判断され、そうなるまでフローはそれ自体でループし、次にステップ216で要求元マスターデバイスのカウンタがデクリメントされ、フローはステップ200に戻る。
図5は、要求元マスターに対応するカウンタが正常に動作している場合のみ、カウンタのインクリメントおよびデクリメントを示し、(単にその図の説明を明確にするために)受信信号に応じてカウンタ値が更新される可能性がシステムのエラーの可能性を示す場合にホームノードがどのように応答するかを示していない。この2つの例を図6Aおよび図6Bに示す。図6Aは、ホームノードによってエラー信号が生成される1つの方法を示している。フローは、ステップ220で開始すると見なすことができ、そこでは、ExpCompAck=1の順序付けられていない読み取りトランザクションが受信されたかどうかが判定される。もしそうであれば、フローはステップ222を介して進み、要求元マスターのカウンタがインクリメントされる。次に、ステップ224で、Comp_Ack信号(すなわち、トランザクション完了確認応答)が受信されたかどうかが判定される。そうでない場合には、フローはステップ220に戻る。しかしながら、Comp_Ack信号が受信される場合には、フローはステップ226に進み、関連するマスターのカウンタが既に所定の最小値(例えばゼロ)にあるかどうかが判定される。そうであって、したがってこのカウンタのさらなるデクリメントが可能でない場合には、スプリアスのComp_Ack信号が受信され、エラーにフラグを立てることができるため、フローはステップ228に進む。別の言い方をすれば、フロー図のこのポイントに到達する際に、ホームノードは、そのようなトランザクション完了確認応答が予想されるという指示よりも多くのトランザクション完了確認応答を観察した。そうでない場合、ステップ230で、このマスターのカウンタがデクリメントされ、フローはステップ220に戻る。
図6Bは、ホームノードが静止状態への移行を試みることができる方法の例を示している。フローは、ステップ250で始まると考えることができ、そこでホームノードが静止状態に入ろうとするべきであることが決定されるまでフローが待機する。次に、ステップ252で、ホームノードがシステム内のマスターのために維持するカウンタがその所定の最小値にないか、すなわち、少なくとも1つのトランザクション完了確認応答がまだ期待されることを示すかどうかが判定される。最小ではないカウンタがない場合には、フローはステップ254に進み、ホームノードは静止状態を継続することができる。しかし、少なくとも1つのカウンタが最小値でない場合には、フローはステップ256に進み、そこで、保留中のトランザクションの完了を許可するために、ホームノードが適切な期間(特定のシステムに従って)一時停止し、ステップ258で、いずれかのカウンタがその所定の最小値にないかどうかが再び判定される。すべてのカウンタが最小値に達した場合には、フローはステップ254に進み、システムは静止状態に入ることができるが、そうでなければ、トランザクション完了確認応答が未解決であり、このエラーのフラグを立てることができるため、フローはステップ260に進む。
要約すると、要求元マスターデバイスとデータ保存スレーブデバイスを含むコヒーレント相互接続システムにおいて、装置とその装置を動作させる対応する方法が提供されている。装置は、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持し、コヒーレンシ・プロトコル・トランザクションの完了は保留中であり、データ保存スレーブデバイスに保存されたデータ項目の要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行する。読み取り確認応答トリガが直接メモリ転送要求に追加され、データ保存スレーブデバイスからの読み取り確認応答信号の受信に応答して、読み取りトランザクションの受信によって作成された記録が、直接メモリ転送要求の完了に対応して更新される。したがって、直接メモリ転送によって読み取りトランザクションが満たされるにもかかわらず、装置が記録を維持するのに必要なライフタイムは短くなる。対応するデータ保存スレーブデバイスと、データ保存スレーブデバイスを動作させる方法も提供される。
本出願では、「~するように構成される」または「~するように配置される」という単語は、装置の要素が定義された動作を実行することができる構成を有することを意味するために使用される。これに関連して、「構成」は、ハードウェアまたはソフトウェアの相互接続の配置または方法を意味する。例えば、装置は、定義された動作を提供する専用のハードウェアを有してもよく、あるいはプロセッサまたは他の処理装置が機能を実行するようにプログラムされてもよい。「~するように構成される」または「~するように配置される」は、定義された動作を提供するために装置要素が何らかの方法で変更される必要があることを意味しない。
本発明の例示的な実施形態を添付の図面を参照しながら本明細書で詳細に説明したが、本発明はそれらの正確な実施形態に限定されず、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、当業者によって様々な変更、追加、および修正がその中で達成することができることを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項の特徴の様々な組み合わせを独立請求項の特徴と共に行うことができる。

Claims (18)

  1. コヒーレント相互接続システムのための装置であって、
    要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信し、さらにコヒーレンシ・プロトコル・トランザクションをデータ保存スレーブデバイスと交換するインターフェース回路と、
    前記コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、前記要求元マスターデバイスから受信した前記コヒーレンシ・プロトコル・トランザクションの記録を維持するトランザクション追跡回路と、
    前記データ保存スレーブデバイスに保存されたデータ項目に対する前記要求元マスターデバイスからの前記コヒーレンシ・プロトコル・トランザクションの読み取りトランザクションの前記インターフェース回路での受信に応答して、前記データ保存スレーブデバイスに直接メモリ転送要求を発行するトランザクション制御回路であって、前記直接メモリ転送要求は、前記データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、トランザクション制御回路と、を含み、
    前記トランザクション追跡回路は、前記データ保存スレーブデバイスからの前記読み取り確認応答信号の前記インターフェース回路での受信に応答して、前記直接メモリ転送要求の完了を示すために、前記読み取りトランザクションの受信によって作成された前記トランザクション追跡回路内の記録を更新する、装置。
  2. 前記読み取りトランザクションは、前記読み取りトランザクションの所定の部分における他のトランザクションに関する順序の自由度の指定を含み、前記読み取り確認応答トリガは、前記直接メモリ転送要求の同じ所定の部分内に含まれる、請求項1に記載の装置。
  3. 前記読み取り確認応答トリガは、前記直接メモリ転送要求の前記所定の部分のサブ部分に示され、前記読み取りトランザクションの前記所定の部分の前記サブ部分は、前記読み取りトランザクションに関して前記装置にとってセマンティックな意味を有さない、請求項2に記載の装置。
  4. 前記所定の部分は、トランザクション順序付け仕様として解釈される前記コヒーレンシ・プロトコル・トランザクションのビットフィールドである、請求項2または3に記載の装置。
  5. 前記ビットフィールドは、前記トランザクション順序付け仕様として解釈される2ビットフィールドであり、前記2ビットフィールドの所定のビットの組み合わせは、前記読み取りトランザクションに関して前記装置にとってセマンティックな意味を有さず、前記2ビットフィールドの前記所定のビットの組み合わせは、前記直接メモリ転送要求内の前記読み取り確認応答トリガである、請求項4に記載の装置。
  6. 前記読み取りトランザクションは、前記読み取りトランザクションが完了したときに、前記要求元マスターデバイスによってトランザクション完了信号が引き続いて発行されることを示すインジケータを含む、請求項1から5のいずれか一項に記載の装置。
  7. 前記トランザクション追跡回路は、カウンタ値を維持するカウンタ回路をさらに含み、前記カウンタ回路は、前記トランザクション完了信号が引き続いて発行されるという前記インジケータに応答して、前記カウンタ値をインクリメントし、前記カウンタ回路は、前記トランザクション完了信号に応答して前記カウンタ値をデクリメントする、請求項6に記載の装置。
  8. 前記装置は、前記装置が静止状態に入る準備をしている場合に、前記トランザクション完了信号が依然として予想されることを示す前記カウンタ値に応答して、エラー信号を生成する、請求項7に記載の装置。
  9. 前記カウンタ値が、前記トランザクション完了信号がまだ予想されないことを示した場合に、前記トランザクション完了信号の受信に応答して前記装置がエラー信号を生成する、請求項7または8に記載の装置。
  10. 前記トランザクション追跡回路は、2つ以上の要求元マスターデバイスのカウンタ値を維持するために、前記カウンタ回路の複数のインスタンスを個別に含む、請求項7から9のいずれか一項に記載の装置。
  11. 前記読み取りトランザクションは、前記データ項目が共有不可能な状態でキャッシュされることを示す、請求項1から10のいずれか一項に記載の装置。
  12. 前記読み取りトランザクションは、前記データ項目が共有可能であり、前記要求元マスターデバイスがコピーを保持しないことを示す、請求項1から10のいずれか一項に記載の装置。
  13. 前記読み取りトランザクションは、前記データ項目の他のすべてのコピーが他のマスターのキャッシュから消去され無効化されることを示す、請求項12に記載の装置。
  14. 前記読み取りトランザクションは、前記データ項目の他のすべてのコピーが他のマスターのキャッシュで無効化されることを示す、請求項12に記載の装置。
  15. コヒーレント相互接続システムにおける装置を動作させる方法であって、
    データ保存スレーブデバイスに保存されたデータ項目について、要求元マスターデバイスから一組のコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションを受信するステップと、
    前記コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、前記要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するステップと、
    前記読み取りトランザクションの受信に応答して、前記データ保存スレーブデバイスに直接メモリ転送要求を発行するステップであって、前記直接メモリ転送要求は、前記データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、ステップと、
    前記データ保存スレーブデバイスからの前記読み取り確認応答信号の受信に応答して、前記直接メモリ転送要求の完了を示す前記読み取りトランザクションの受信によって作成された記録を更新するステップと、
    を含む方法。
  16. コヒーレンシ・プロトコル・トランザクションをハブデバイスと交換し、さらにコヒーレンシ・プロトコル・トランザクションをマスターデバイスと交換するインターフェース回路と、
    前記ハブデバイスに読み取り確認応答信号を送信し、他方、前記マスターデバイスに直接メモリ転送要求で指定されたデータを直接送信するために、前記ハブデバイスからの読み取り確認応答トリガを含む直接メモリ転送要求の受信に応答するトランザクション制御回路と、
    を含むコヒーレント相互接続システムのためのデータ保存スレーブデバイス。
  17. 前記トランザクション制御回路は、再試行が必要でない場合に、前記直接メモリ転送要求の受け入れに応答して、前記ハブデバイスに前記読み取り確認応答信号を送信するように構成される、請求項16に記載のデータ保存スレーブデバイス。
  18. コヒーレント相互接続システムにおけるデータ保存スレーブデバイスの動作方法であって、
    ハブデバイスからの直接メモリ転送要求を受信するステップと、
    前記直接メモリ転送要求が読み取り確認応答トリガを含む場合に、読み取り確認応答信号を前記ハブデバイスに送信するステップと、
    前記直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するステップと、
    を含むデータ保存スレーブデバイスの動作方法。
JP2019541407A 2017-02-08 2018-01-26 コヒーレント相互接続システムにおける読み取りトランザクショントラッカーのライフタイム Active JP7140768B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/427,435 2017-02-08
US15/427,435 US10795820B2 (en) 2017-02-08 2017-02-08 Read transaction tracker lifetimes in a coherent interconnect system
PCT/GB2018/050226 WO2018146451A1 (en) 2017-02-08 2018-01-26 Read transaction tracker lifetimes in a coherent interconnect system

Publications (2)

Publication Number Publication Date
JP2020506482A JP2020506482A (ja) 2020-02-27
JP7140768B2 true JP7140768B2 (ja) 2022-09-21

Family

ID=61132824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019541407A Active JP7140768B2 (ja) 2017-02-08 2018-01-26 コヒーレント相互接続システムにおける読み取りトランザクショントラッカーのライフタイム

Country Status (8)

Country Link
US (1) US10795820B2 (ja)
EP (1) EP3580662B1 (ja)
JP (1) JP7140768B2 (ja)
KR (1) KR102526436B1 (ja)
CN (1) CN110268390B (ja)
IL (1) IL268322B (ja)
TW (1) TWI770107B (ja)
WO (1) WO2018146451A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795820B2 (en) * 2017-02-08 2020-10-06 Arm Limited Read transaction tracker lifetimes in a coherent interconnect system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118906A (ja) 2010-12-03 2012-06-21 Sony Corp 相互接続装置、および、その制御方法
US20160055085A1 (en) 2014-08-25 2016-02-25 Arm Limited Enforcing ordering of snoop transactions in an interconnect for an integrated circuit
WO2016139446A1 (en) 2015-03-04 2016-09-09 Arm Limited An apparatus and method to generate trace data in response to transactional execution
JP2017503245A (ja) 2014-01-16 2017-01-26 インテル・コーポレーション 高速構成機構のための装置、方法、およびシステム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5664149A (en) * 1992-11-13 1997-09-02 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache using an export/invalidate protocol
US5504874A (en) * 1993-09-29 1996-04-02 Silicon Graphics, Inc. System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions
US5696910A (en) * 1995-09-26 1997-12-09 Intel Corporation Method and apparatus for tracking transactions in a pipelined bus
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6014690A (en) * 1997-10-24 2000-01-11 Digital Equipment Corporation Employing multiple channels for deadlock avoidance in a cache coherency protocol
US7124252B1 (en) * 2000-08-21 2006-10-17 Intel Corporation Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
US6681293B1 (en) * 2000-08-25 2004-01-20 Silicon Graphics, Inc. Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
US6622216B1 (en) * 2001-05-10 2003-09-16 Lsi Logic Corporation Bus snooping for cache coherency for a bus without built-in bus snooping capabilities
US6862646B2 (en) * 2001-12-28 2005-03-01 Thomas J. Bonola Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
US8185602B2 (en) * 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US20070233932A1 (en) * 2005-09-30 2007-10-04 Collier Josh D Dynamic presence vector scaling in a coherency directory
US20070143550A1 (en) * 2005-12-19 2007-06-21 Intel Corporation Per-set relaxation of cache inclusion
US7734857B2 (en) * 2007-07-31 2010-06-08 Intel Corporation Cache coherent switch device
US7925840B2 (en) * 2008-09-05 2011-04-12 Arm Limited Data processing apparatus and method for managing snoop operations
US8375170B2 (en) * 2010-02-12 2013-02-12 Arm Limited Apparatus and method for handling data in a cache
US9304924B2 (en) * 2012-08-17 2016-04-05 Futurewei Technologies, Inc. Cache coherent handshake protocol for in-order and out-of-order networks
GB2522057B (en) * 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
GB2525577A (en) * 2014-01-31 2015-11-04 Ibm Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system
GB2533972B (en) * 2015-01-12 2021-08-18 Advanced Risc Mach Ltd An interconnect and method of operation of an interconnect
GB2538764B (en) * 2015-05-28 2018-02-14 Advanced Risc Mach Ltd Register renaming
US10235297B2 (en) * 2015-11-04 2019-03-19 International Business Machines Corporation Mechanism for creating friendly transactions with credentials
US9916247B2 (en) * 2016-02-04 2018-03-13 International Business Machines Corporation Cache management directory where hardware manages cache write requests and software manages cache read requests
GB2557254B (en) * 2016-12-02 2020-02-12 Advanced Risc Mach Ltd Filtering coherency protocol transactions
US10489323B2 (en) * 2016-12-20 2019-11-26 Arm Limited Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave
US11256623B2 (en) * 2017-02-08 2022-02-22 Arm Limited Cache content management
US10795820B2 (en) * 2017-02-08 2020-10-06 Arm Limited Read transaction tracker lifetimes in a coherent interconnect system
US10649684B2 (en) * 2017-03-16 2020-05-12 Arm Limited Memory access monitoring
US10761987B2 (en) * 2018-11-28 2020-09-01 Arm Limited Apparatus and method for processing an ownership upgrade request for cached data that is issued in relation to a conditional store operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118906A (ja) 2010-12-03 2012-06-21 Sony Corp 相互接続装置、および、その制御方法
JP2017503245A (ja) 2014-01-16 2017-01-26 インテル・コーポレーション 高速構成機構のための装置、方法、およびシステム
US20160055085A1 (en) 2014-08-25 2016-02-25 Arm Limited Enforcing ordering of snoop transactions in an interconnect for an integrated circuit
WO2016139446A1 (en) 2015-03-04 2016-09-09 Arm Limited An apparatus and method to generate trace data in response to transactional execution

Also Published As

Publication number Publication date
KR20190116326A (ko) 2019-10-14
US20180225206A1 (en) 2018-08-09
EP3580662B1 (en) 2021-04-21
IL268322A (en) 2019-09-26
EP3580662A1 (en) 2019-12-18
CN110268390A (zh) 2019-09-20
IL268322B (en) 2021-12-01
KR102526436B1 (ko) 2023-04-27
CN110268390B (zh) 2023-09-01
US10795820B2 (en) 2020-10-06
WO2018146451A1 (en) 2018-08-16
TWI770107B (zh) 2022-07-11
JP2020506482A (ja) 2020-02-27
TW201830238A (zh) 2018-08-16

Similar Documents

Publication Publication Date Title
US6948035B2 (en) Data pend mechanism
JP3189727B2 (ja) コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
US11403247B2 (en) Methods and apparatus for network interface fabric send/receive operations
JP4660064B2 (ja) 分散処理システムにおけるロックの実行
JP2002351817A (ja) メモリにアクセスする方法及び装置
WO2015134100A1 (en) Method and apparatus for memory allocation in a multi-node system
US10079916B2 (en) Register files for I/O packet compression
JP2018109965A (ja) データ処理
CN110032335B (zh) 原子数据访问请求的调节
CN112955876B (zh) 用于在数据处理网络中传输数据的方法和装置
CN112106032A (zh) I/o主设备和cpu之间优化数据共享的有序写存储的高性能流
EP3788492B1 (en) Separating completion and data responses for higher read throughput and lower link utilization in a data processing network
JP7140768B2 (ja) コヒーレント相互接続システムにおける読み取りトランザクショントラッカーのライフタイム
CN111104060A (zh) 数据处理系统中的缓存维护操作
CN108415873B (zh) 转发对监听请求的响应
EP4022445B1 (en) An apparatus and method for handling ordered transactions
US11188377B2 (en) Writing zero data
JP7363344B2 (ja) メモリ制御装置、および制御方法
EP1363188B1 (en) Load-linked/store conditional mechanism in a cc-numa (cache-coherent nonuniform memory access) system
JP6620647B2 (ja) 情報処理システム、送信装置および情報処理システムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220816

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220908

R150 Certificate of patent or registration of utility model

Ref document number: 7140768

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150