(57)【要約】  要求元マスターデバイスとデータ保存スレーブデバイスを含むコヒーレント相互接続システムにおいて、装置とその装置を動作させる対応する方法が提供される。装置は、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持し、コヒーレンシ・プロトコル・トランザクションの完了は保留中であり、データ保存スレーブデバイスに保存されたデータ項目の要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行する。読み取り確認応答トリガが直接メモリ転送要求に追加され、データ保存スレーブデバイスからの読み取り確認応答信号の受信に応答して、読み取りトランザクションの受信によって作成された記録が、直接メモリ転送要求の完了に対応して更新される。したがって、直接メモリ転送によって読み取りトランザクションが満たされるにもかかわらず、装置が記録を維持するのに必要なライフタイムは短くなる。対応するデータ保存スレーブデバイスと、データ保存スレーブデバイスを動作させる方法も提供される。
2020506482.tif 000002
【特許請求の範囲】
【請求項１】
コヒーレント相互接続システムのための装置であって、
要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信し、さらにコヒーレンシ・プロトコル・トランザクションをデータ保存スレーブデバイスと交換するインターフェース回路と、
前記コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、前記要求元マスターデバイスから受信した前記コヒーレンシ・プロトコル・トランザクションの記録を維持するトランザクション追跡回路と、
前記データ保存スレーブデバイスに保存されたデータ項目に対する前記要求元マスターデバイスからの前記コヒーレンシ・プロトコル・トランザクションの読み取りトランザクションの前記インターフェース回路での受信に応答して、前記データ保存スレーブデバイスに直接メモリ転送要求を発行するトランザクション制御回路であって、前記直接メモリ転送要求は、前記データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、トランザクション制御回路と、を含み、
前記トランザクション追跡回路は、前記データ保存スレーブデバイスからの前記読み取り確認応答信号の前記インターフェース回路での受信に応答して、前記直接メモリ転送要求の完了を示すために、前記読み取りトランザクションの受信によって作成された前記トランザクション追跡回路内の記録を更新する、装置。
【請求項２】
前記読み取りトランザクションは、前記読み取りトランザクションの所定の部分における他のトランザクションに関する順序の自由度の指定を含み、前記読み取り確認応答トリガは、前記直接メモリ転送要求の同じ所定の部分内に含まれる、請求項１に記載の装置。
【請求項３】
前記読み取り確認応答トリガは、前記直接メモリ転送要求の前記所定の部分のサブ部分に示され、前記読み取りトランザクションの前記所定の部分の前記サブ部分は、前記読み取りトランザクションに関して前記装置にとってセマンティックな意味を有さない、請求項２に記載の装置。
【請求項４】
前記所定の部分は、トランザクション順序付け仕様として解釈される前記コヒーレンシ・プロトコル・トランザクションのビットフィールドである、請求項２または３に記載の装置。
【請求項５】
前記ビットフィールドは、前記トランザクション順序付け仕様として解釈される２ビットフィールドであり、前記２ビットフィールドの所定のビットの組み合わせは、前記読み取りトランザクションに関して前記装置にとってセマンティックな意味を有さず、前記２ビットフィールドの前記所定のビットの組み合わせは、前記直接メモリ転送要求内の前記読み取り確認応答トリガである、請求項４に記載の装置。
【請求項６】
前記読み取りトランザクションは、前記読み取りトランザクションが完了したときに、前記要求元マスターデバイスによってトランザクション完了信号が引き続いて発行されることを示すインジケータを含む、請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記トランザクション追跡回路は、カウンタ値を維持するカウンタ回路をさらに含み、前記カウンタ回路は、前記トランザクション完了信号が引き続いて発行されるという前記インジケータに応答して、前記カウンタ値をインクリメントし、前記カウンタ回路は、前記トランザクション完了信号に応答して前記カウンタ値をデクリメントする、請求項６に記載の装置。
【請求項８】
前記装置は、前記装置が静止状態に入る準備をしている場合に、前記トランザクション完了信号が依然として予想されることを示す前記カウンタ値に応答して、エラー信号を生成する、請求項７に記載の装置。
【請求項９】
前記カウンタ値が、前記トランザクション完了信号がまだ予想されないことを示した場合に、前記トランザクション完了信号の受信に応答して前記装置がエラー信号を生成する、請求項７または８に記載の装置。
【請求項１０】
前記トランザクション追跡回路は、２つ以上の要求元マスターデバイスのカウンタ値を維持するために、前記カウンタ回路の複数のインスタンスを個別に含む、請求項７から９のいずれか一項に記載の装置。
【請求項１１】
前記読み取りトランザクションは、前記データ項目が共有不可能な状態でキャッシュされることを示す、請求項１から１０のいずれか一項に記載の装置。
【請求項１２】
前記読み取りトランザクションは、前記データ項目が共有可能であり、前記要求元マスターデバイスがコピーを保持しないことを示す、請求項１から１０のいずれか一項に記載の装置。
【請求項１３】
前記読み取りトランザクションは、前記データ項目の他のすべてのコピーが他のマスターのキャッシュから消去され無効化されることを示す、請求項１２に記載の装置。
【請求項１４】
前記読み取りトランザクションは、前記データ項目の他のすべてのコピーが他のマスターのキャッシュで無効化されることを示す、請求項１２に記載の装置。
【請求項１５】
コヒーレント相互接続システムにおける装置を動作させる方法であって、
データ保存スレーブデバイスに保存されたデータ項目について、要求元マスターデバイスから一組のコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションを受信するステップと、
前記コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、前記要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するステップと、
前記読み取りトランザクションの受信に応答して、前記データ保存スレーブデバイスに直接メモリ転送要求を発行するステップであって、前記直接メモリ転送要求は、前記データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、ステップと、
前記データ保存デバイスからの前記読み取り確認応答信号の受信に応答して、前記直接メモリ転送要求の完了を示す前記読み取りトランザクションの受信によって作成された記録を更新するステップと、
を含む方法。
【請求項１６】
コヒーレント相互接続システムのためのデータ保存スレーブデバイスであって、
コヒーレンシ・プロトコル・トランザクションをハブデバイスと交換し、さらにコヒーレンシ・プロトコル・トランザクションをマスターデバイスと交換するインターフェース回路と、
前記ハブデバイスに読み取り確認応答信号を送信するための読み取り確認応答トリガを含む、前記ハブデバイスからの直接メモリ転送要求の受信に応答して、直接メモリ転送要求で指定されたデータを前記マスターデバイスに直接送信するトランザクション制御回路と、
を含むデータ保存スレーブデバイス。
【請求項１７】
前記トランザクション制御回路は、再試行が必要でない場合に、前記直接メモリ転送要求の受け入れに応答して、前記ハブデバイスに前記読み取り確認応答信号を送信するように構成される、請求項１６に記載のデータ保存スレーブデバイス。
【請求項１８】
コヒーレント相互接続システムにおけるデータ保存スレーブデバイスを動作させる方法であって、
ハブデバイスからの直接メモリ転送要求を受信するステップと、
前記直接メモリ転送要求が読み取り確認応答トリガを含む場合に、読み取り確認応答信号を前記ハブデバイスに送信するステップと、
前記直接メモリ転送要求で指定されたデータを前記マスターデバイスに直接送信するステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理システムに関する。より詳細には、コヒーレンシ・プロトコル・トランザクションが交換されるコヒーレント相互接続システムに関する。
【背景技術】
【０００２】
システムの構成要素がコヒーレンシ・プロトコル・トランザクションを交換するコヒーレント相互接続を含むデータ処理システムでは、システム内で望ましいコヒーレンシを維持するために、それらのトランザクションとそれらが引き起こすデータ処理操作を慎重に管理する必要がある。この管理の一部として、システム内の装置は特定のトランザクションの記録を保持することができ、対応する記録はトランザクションが保留状態にある間維持され、トランザクションが完了すると削除される。
【発明の概要】
【０００３】
本明細書で説明する少なくとも１つの例は、コヒーレント相互接続システムのための装置を提供し、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信し、さらにコヒーレンシ・プロトコル・トランザクションをデータ保存スレーブデバイスと交換するインターフェース回路と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するトランザクション追跡（tracking)回路と、データ保存スレーブデバイスに保存されたデータ項目に対する要求元マスターデバイスからのコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションのインターフェース回路での受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するトランザクション制御回路であって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、トランザクション制御回路と、を含み、トランザクション追跡回路は、データ保存スレーブデバイスからの読み取り確認応答信号のインターフェース回路での受信に応答して、直接メモリ転送要求の完了を示すために、読み取りトランザクションの受信によって作成されたトランザクション追跡回路内の記録を更新する。
【０００４】
本明細書で説明する少なくとも１つの例は、コヒーレント相互接続システムにおける装置を動作させる方法を提供し、本方法は、データ保存スレーブデバイスに保存されたデータ項目について、要求元マスターデバイスから一組のコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションを受信するステップと、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するステップと、読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するステップであって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、ステップと、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了を示す読み取りトランザクションの受信によって作成された記録を更新するステップと、を含む。
【０００５】
本明細書で説明される少なくとも１つの例は、要求元マスターデバイスおよびデータ保存スレーブデバイスを含むコヒーレント相互接続システムのための装置を提供し、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信するための手段と、さらにデータ保存スレーブデバイスとコヒーレンシ・プロトコル・トランザクションを交換するための手段と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するための手段と、データ保存デバイスに保存されたデータ項目に対する要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するための手段であって、直接メモリ転送要求は、読み取り確認応答トリガを含む、手段と、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了に対応する読み取りトランザクションの受信によって作成された記録を維持するための手段における記録を更新するための手段と、を含む。
【０００６】
本明細書で説明する少なくとも１つの例は、コヒーレント相互接続システムのためのデータ保存スレーブデバイスを提供し、データ保存スレーブデバイスは、コヒーレンシ・プロトコル・トランザクションをハブデバイスと交換し、さらにコヒーレンシ・プロトコル・トランザクションをマスターデバイスと交換するインターフェース回路と、ハブデバイスに読み取り確認応答信号を送信するための読み取り確認応答トリガを含む、ハブデバイスからの直接メモリ転送要求の受信に応答して、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するトランザクション制御回路と、を含む。
【０００７】
本明細書で説明する少なくとも１つの例は、コヒーレント相互接続システムにおけるデータ保存スレーブデバイスを動作させる方法を提供し、本方法は、ハブデバイスからの直接メモリ転送要求を受信するステップと、直接メモリ転送要求が読み取り確認応答トリガを含む場合に、読み取り確認応答信号をハブデバイスに送信するステップと、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するステップと、を含む。
【０００８】
単なる例として、添付の図面に示す本技術の実施形態を参照して本技術をさらに説明する。
【図面の簡単な説明】
【０００９】
【図１】一実施形態におけるコヒーレント相互接続を含むデータ処理システムを概略的に示す図である。
【図２】一実施形態における図１に示すようなコヒーレント相互接続システムにおいてハブまたはホームデバイスとして機能することができる装置のいくつかの構成要素を概略的に示す図である。
【図３】一実施形態における、要求元マスターデバイス、ホームノードデバイス、およびデータ保存スレーブデバイス間で交換される一組の例示的なメッセージを示す図である。
【図４】一実施形態の方法に従って行われる一組のステップを示す図である。
【図５】一実施形態の方法に従って行われる一組のステップを示す図である。
【図６Ａ】一実施形態における、完全な確認応答に応答してカウンタをデクリメントするために行われる一組のステップを示す図である。
【図６Ｂ】一実施形態における、ホームノードデバイスが静止状態に入るべきである場合に行われる一組のステップを示す図である。
【発明を実施するための形態】
【００１０】
いくつかの例示的な実施形態では、コヒーレント相互接続システムのための装置があり、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信し、さらにコヒーレンシ・プロトコル・トランザクションをデータ保存スレーブデバイスと交換するインターフェース回路と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するトランザクション追跡回路と、データ保存スレーブデバイスに保存されたデータ項目に対する要求元マスターデバイスからのコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションのインターフェース回路での受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するトランザクション制御回路であって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、トランザクション制御回路と、を含み、トランザクション追跡回路は、データ保存スレーブデバイスからの読み取り確認応答信号のインターフェース回路での受信に応答して、直接メモリ転送要求の完了を示すために、読み取りトランザクションの受信によって作成されたトランザクション追跡回路内の記録を更新する。
【００１１】
本装置は、要求元マスターデバイスから読み取りトランザクションを受信し、データ保存スレーブデバイスに保存されている要求されたデータを検索して要求元マスターデバイスに戻すので、システム内で「ホームノード」または「ハブデバイス」の役割を果たす。装置内のトランザクション追跡回路（ここでは単に「トラッカー」とも呼ばれる）により、システム内で交換されるコヒーレンシ・プロトコル・トランザクションを管理および監視し、特に各トランザクションが正しく完了するように監視されることが保証されることが可能になる。しかし、この「ホーム」デバイスの役割を果たすと、現在保留中のすべてのトランザクションのエントリを保持するためにトラッカーで維持する必要があるストレージに関して、また、読み取り要求に応答してデータ保存スレーブデバイスから検索されたデータを装置が仲介する必要があるという点で、装置に一定の負担がかかる。したがって、可能な場合、装置は、データ保存スレーブデバイスに対して、要求元マスターにデータを直接転送するように指示することが好ましい（すなわち、装置が、要求元のマスターデバイスをターゲットとして指定して、「直接メモリ転送要求」をデータ保存スレーブデバイスに発行する）。しかし、この手法では、ホームノードがトラッカーのエントリをいつ完了としてマークするか（ここでは、トラッカーでの要求の割り当て解除とも呼ばれる）分からないという難点があるが、それは、スレーブデータ保存デバイス（スレーブノード）または要求元マスターデバイス（要求元ノード）で処理されている要求のホームノードによって受信される表示がないためである。要求元マスターデバイスが発行した読み取り要求には、要求元マスター（ノード）が要求されたデータを受信すると、ホームノードが最終的に「完全な確認応答」を期待できる、すなわち、要求元ノードがそのような確認応答をホームノードに送信する、という指示を含めることができるが、この方式により、ホームノードのトラッカーのこのトランザクションに対応するエントリのライフタイムが、スレーブノードから要求元ノードへのデータの完全なラウンドトリップレイテンシと、要求ノードからホームノードへの完全な確認応答レイテンシによって与えられる。
【００１２】
これに関連して、本技術は、装置からデータ保存スレーブデバイスに送信される直接メモリ転送要求が、（要求が受け入れられ、再試行メッセージを送信しないことを保証できる場合に）それに応答してデータ保存スレーブデバイスが読み取り確認応答信号を送信できる読み取り確認応答トリガを含むことを提供する。装置のトランザクション追跡回路は、この読み取り確認応答信号に応答して、トラッカーの要求の割り当てを解除する。すなわち、要求元マスターデバイスからの読み取り要求の受信に応じて作成したエントリを完了としてマークするか、エントリを削除する。この場合、トラッカー内のこのエントリのライフタイムは、上記のシナリオよりも著しく短くなり、さらに、データ保存スレーブデバイスから要求元マスターデバイスへの要求されたデータの転送を直接メモリ転送により実行することができるが、それは、装置（ハブ）がさらに関与する必要がないからである。したがって、読み取りデータのレイテンシも改善される。また、要求元マスターデバイスが、要求されたデータの受信時に完全な確認応答を発行する必要はなく（そうしないと、このような直接メモリ転送の場合になる）、これにより相互接続のトラフィックが減少する。
【００１３】
定義された一組のセットコヒーレンシ・プロトコル・トランザクション内では、これらのトランザクションを交換するデバイス間で追加情報を交換する機会が制限される場合があることが認識されているが、しかし、現在の技術は、このようなコヒーレンシ・プロトコル・トランザクションには、順序付け制約の仕様（または逆に順序付けの自由）がラベル付けされる場合があることを特定しており、このような順序指定は、システム内のデバイスの特定のペア間で行われるトランザクションに対してのみ定義された意味を持つことができる。例えば、コヒーレント相互接続システムのハブデバイスに読み取りトランザクションを発行する要求元マスターデバイスは、要求が他のトランザクションに対して自由に順序付けられることを指定したり、逆に順序付けが制限されていることを指定したりする。順序付けられたトランザクションを受信すると、ホームノードは、スレーブノードデバイスに新しいトランザクションを発行する前に、以前の古いトランザクションの完了を確認することにより、この定義された順序付けを強制する。しかし、ホームノードによって順序付けが実行される場合、本技術では、この順序付けを指定するために使用されるトランザクションの一部が、要求元ノードとホームノード間のトランザクションにとっては意味を持ち得るが、ホームノードとスレーブノード間のトランザクションにとっては意味がないことを認識している。したがって、本技術は、トランザクションのこの部分を追加使用することで状況を利用し、ホームノードからスレーブノードに送信されたトランザクションがこの部分を再利用することで読み取り確認応答トリガを含むと解釈できるようにすることを提案する。したがって、いくつかの実施形態では、読み取りトランザクションは、読み取りトランザクションの所定の部分における他のトランザクションに関する順序の自由度の指定を含み、読み取り確認応答トリガは、直接メモリ転送要求の同じ所定の部分内に含まれる。
【００１４】
順序の自由が指定される読み取りトランザクションの所定の部分は様々に構成できるが、いくつかの実施形態では、読み取り確認応答トリガは、直接メモリ転送要求の所定の部分のサブ部分に示され、読み取りトランザクションの所定の部分のサブ部分は、読み取りトランザクションに関して装置にとってセマンティックな意味を有さない。
【００１５】
いくつかの実施形態では、所定の部分は、トランザクション順序付け仕様として解釈されるコヒーレンシ・プロトコル・トランザクションのビットフィールドである。コヒーレンシ・プロトコル・トランザクションのこの定義されたビットフィールドは様々に定義できるが、いくつかの実施形態では、ビットフィールドはトランザクション順序付け仕様として解釈される２ビットフィールドであり、２ビットフィールドの所定のビットの組み合わせは、読み取りトランザクションに関して装置にとってセマンティックな意味を有さず、２ビットフィールドの所定のビットの組み合わせは、直接メモリ転送要求内の読み取り確認応答トリガである。したがって、所定のビットの組み合わせは、読み取りトランザクションに関して装置にとってセマンティックな意味を持たない２ビットのフィールドで表すことができる４つの可能性の特定の順列であると理解される。すなわち、例えば、コヒーレンシ・プロトコル・トランザクションのこの仕様で「予約済み」として定義することができる。２ビットフィールドの内容の他の順列は、例えば、「順序付けなし」、「要求の順序付け」、および「エンドポイントの順序付け」などの読み取りトランザクションの順序付けに関して、装置に対して明確に定義された意味を持つことができる。
【００１６】
上述のように、本技術によって採用される手法の特徴は、（要求元マスターデバイスからの読み取りトランザクションの受信に応答してそのエントリが作成された場合に）要求元マスターデバイスからのデータ転送の完了の確認を待つ必要がなく、装置がそのトラッカーのエントリを完了としてマークすることができることである。しかし、これは、要求元マスターデバイスが、そのような完了確認応答が後で発行されるというインジケータを読み取りトランザクションに含めることを禁止されていることを意味するものではなく、いくつかの実施形態では、読み取りトランザクションは、読み取りトランザクションが完了したときに、要求元マスターデバイスによってトランザクション完了信号が引き続いて発行されることを示すインジケータを含む。
【００１７】
装置は、トランザクションがシステムで正しく完了したことのさらなるレベルの検証として、そのような完了確認応答信号を実際に使用することができ、この目的のために、いくつかの実施形態では、トランザクション追跡回路は、カウンタ値を維持するカウンタ回路をさらに含み、カウンタ回路は、トランザクション完了信号が引き続いて発行されるというインジケータに応答して、カウンタ値をインクリメントし、カウンタ回路は、トランザクション完了信号に応答してカウンタ値をデクリメントする。これにより、装置がそのようなトランザクションの完了を監視し、そのような確認応答が予想されると示されたときにカウンタをインクリメントし、確認応答が受信されたときにカウンタをデクリメントする機構を提供する。
【００１８】
次いで、このカウンタ値は、いくつかの方法で利用することができ、例えば、いくつかの実施形態では、装置は、装置が静止状態に入る準備をしている場合に、トランザクション完了信号が依然として予想されることを示すカウンタ値に応答して、エラー信号を生成する。したがって、装置がこの静止状態に入る準備をしており、したがって保留中のすべてのトランザクションを完了する必要があるときは、カウンタ値が未処理の、明らかに不完全なトランザクションを示す場合にはエラー信号が生成され得る。例えば、特定のカウンタ値の意味は様々に定義できるが、一例では、カウンタ値はゼロから始まり、トランザクション完了信号が引き続き発行されることを示すトランザクションの受信時にその値より上にインクリメントされ、したがって、カウンタのゼロ以外の値はエラー信号をトリガする可能性がある。
【００１９】
逆に、これは、例えば、カウンタ値が既にゼロになっているときにトランザクション完了信号が受信された場合（カウンタの上記の構成例で）、受信されたトランザクション完了信号がスプリアスであると装置が判断できる機構も提供する。したがって、いくつかの実施形態では、カウンタ値が、トランザクション完了信号がまだ予想されないことを示した場合に、トランザクション完了信号の受信に応答して装置はエラー信号を生成する。
【００２０】
トランザクション追跡回路は、システム内のすべての要求元マスターデバイスに使用される単一のカウンタを維持することができるが、いくつかの実施形態では、トランザクション追跡回路は、２つ以上の要求元マスターデバイスのカウンタ値を維持するために、カウンタ回路の複数のインスタンスを個別に含む。これにより、トランザクションの完了とエラーの生成の監視をマスターデバイスに固有のものにすることができる。
【００２１】
要求元マスターデバイスから装置が受信した読み取りトランザクションは、（要求元マスターデバイスが受信し、そのキャッシュに保存されると）データ項目の特定のコヒーレンシ状態を指定することができる。読み取りトランザクションは、データ項目が共有不可能な状態でキャッシュされることを示すことができる。言い換えれば、読み取りトランザクションは「スヌープ読み取りなし（ＲｅａｄＮｏＳｎｏｏｐ）」トランザクションとして説明できる。読み取りトランザクションは、データ項目が共有可能であり、要求元マスターデバイスがコピーを保持しないことを示すことができる。言い換えれば、読み取りトランザクションは「１回読み取り（ＲｅａｄＯｎｃｅ）」トランザクションとして説明できる。読み取りトランザクションは、データ項目の他のすべてのコピーが、他のマスターのキャッシュから消去および無効化されることを示すことができる。言い換えれば、読み取りトランザクションは、「消去無効化１回読み取り（ＲｅａｄＯｎｃｅＣｌｅａｎＩｎｖａｌｉｄａｔｅ）」トランザクションとして説明できる。読み取りトランザクションは、データ項目の他のすべてのコピーが他のマスターのキャッシュで無効化されることを示すことができる。言い換えれば、読み取りトランザクションは「無効化１回読み取り（ＲｅａｄＯｎｃｅＭａｋｅｌｎｖａｌｉｄ）」トランザクションとして説明できる。当業者であれば、上記で使用されている用語（すなわち、「スヌープ読み取りなし（ＲｅａｄＮｏＳｎｏｏｐ）」、「１回読み取り（ＲｅａｄＯｎｃｅ）」、「消去無効化１回読み取り（ＲｅａｄＯｎｃｅＣｌｅａｎＩｎｖａｌｉｄａｔｅ）」、および「無効化１回読み取り（ＲｅａｄＯｎｃｅＭａｋｅｌｎｖａｌｉｄ）」）は、英国ケンブリッジのＡＲＭ（登録商標）Ｌｉｍｉｔｅｄが提供するＡＭＢＡ（登録商標）仕様に由来するものとして認識するであろう。したがって、この開示は単に既知の用語を使用して、現在開示されている技術の恩恵を受ける可能性のある読み取りトランザクションの明確な例を示しているが、これらの技術は他のシステムおよび相互接続仕様にも同様に適用できることに留意することが重要である。
【００２２】
いくつかの例示的な実施形態では、コヒーレント相互接続システムにおける装置を動作させる方法があり、本方法は、データ保存スレーブデバイスに保存されたデータ項目について、要求元マスターデバイスから一組のコヒーレンシ・プロトコル・トランザクションの読み取りトランザクションを受信するステップと、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するステップと、読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するステップであって、直接メモリ転送要求は、データ保存スレーブデバイスからの読み取り確認応答信号を要請する読み取り確認応答トリガを含む、ステップと、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了を示す読み取りトランザクションの受信によって作成された記録を更新するステップと、を含む。
【００２３】
いくつかの例示的な実施形態では、要求元マスターデバイスおよびデータ保存スレーブデバイスを含むコヒーレント相互接続システムのための装置があり、本装置は、要求元マスターデバイスからコヒーレンシ・プロトコル・トランザクションを受信するための手段と、さらにデータ保存スレーブデバイスとコヒーレンシ・プロトコル・トランザクションを交換するための手段と、コヒーレンシ・プロトコル・トランザクションの完了が保留状態である間に、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持するための手段と、データ保存デバイスに保存されたデータ項目に対する要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行するための手段であって、直接メモリ転送要求は、読み取り確認応答トリガを含む、手段と、データ保存デバイスからの読み取り確認応答信号の受信に応答して、直接メモリ転送要求の完了に対応する読み取りトランザクションの受信によって作成された記録を維持するための手段における記録を更新するための手段と、を含む。
【００２４】
いくつかの例示的な実施形態では、コヒーレント相互接続システムのためのデータ保存スレーブデバイスがあり、データ保存スレーブデバイスは、コヒーレンシ・プロトコル・トランザクションをハブデバイスと交換し、さらにコヒーレンシ・プロトコル・トランザクションをマスターデバイスと交換するインターフェース回路と、ハブデバイスに読み取り確認応答信号を送信するための読み取り確認応答トリガを含む、ハブデバイスからの直接メモリ転送要求の受信に応答して、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するトランザクション制御回路と、を含む。
【００２５】
読み取り確認応答トリガを含む直接メモリ転送要求の受信に応答したトランザクション制御回路による読み取り確認応答信号のトリガは、様々な方法で起こり得る。例えば、いくつかの実施形態では、トランザクション制御回路は、再試行が必要でない場合に、直接メモリ転送要求の受け入れに応答して、ハブデバイスに読み取り確認応答信号を送信するように構成することができる。言い換えると、スレーブデバイスは、直接メモリ転送要求を受け入れた直後に読み取り確認応答信号を送信し、それが拒否されない（すなわち、「再試行」を発行する）ことを保証することができる。これにより、ハブデバイスは、直接メモリ転送要求の受け入れの非常に迅速な指示を受信でき、トランザクション追跡回路の記録の更新がそれに応じて迅速に行われるため、トラッカー内のその記録のライフタイムが短くなる。他の実施形態では、トリガはそれほど迅速ではなく、スレーブデバイスは、直接メモリ転送要求の処理を完了するまで応答を遅延させることができ、したがって、直接メモリ転送データの応答を要求元マスターデバイスに送信し、読み取り確認応答信号をハブ（ホーム）デバイスに送信することで、ハードウェアロジックを簡素化することができる。
【００２６】
いくつかの例示的な実施形態では、コヒーレント相互接続システムにおけるデータ保存スレーブデバイスを動作させる方法があり、本方法は、ハブデバイスからの直接メモリ転送要求を受信するステップと、直接メモリ転送要求が読み取り確認応答トリガを含む場合に、読み取り確認応答信号をハブデバイスに送信するステップと、直接メモリ転送要求で指定されたデータをマスターデバイスに直接送信するステップと、を含む。
【００２７】
次に、特定の実施形態について図面を参照しながら説明する。
【００２８】
図１は、一実施形態において本技術が実施されるデータ処理システム１０を概略的に示す。図から分かるように、これは、いくつかの異なるマスターデバイスといくつかの異なるスレーブデバイスを含む比較的異種のシステムであるが、他の実施形態も同様にはるかに均質である可能性がある。図１に示すマスターデバイスは、中央処理デバイス１４、グラフィックス処理デバイス１６、直接メモリアクセスデバイス（ＤＭＡ）１８、およびＩ／Ｏコヒーレントマスター２０を含む。このＩ／Ｏコヒーレントマスター２０は、さらなるネットワーク（図示せず）と通信するためのネットワークインターフェースカード（ＮＩＣ）４０へのブリッジを提供する。図１の例に示すスレーブデバイスは、メモリ２２、２４、周辺機器２６、およびシステムキャッシュ２８を含む。これらすべてのデバイス間の通信およびデータ転送は、コヒーレント相互接続１２によって媒介され、これは本明細書ではホームノードまたはハブデバイスとも呼ばれる。図からも分かるように、ＣＰＵデバイス１４は特定のＣＰＵブロック３０および関連するローカル（すなわちＬＩ）キャッシュ３４を含むように示され、グラフィックス処理デバイス１６は特定のＧＰＵブロック３２およびローカル（ＬＩ）キャッシュ３６を含むように示され、およびＩ／Ｏコヒーレントマスター２０には、それ自体のローカル（ＬＩ）キャッシュ３８も提供される。図１に示されているデバイス間の通信は、示されたシステムの周囲の複数の場所に格納されているデータ項目の複数のコピーの一貫性を維持できる一組のコヒーレンシ・プロトコル・トランザクションから定義されたフォーマットメッセージの形式をとる。この一組のコヒーレンシ・プロトコル・トランザクションは、検討中のシステムに応じて様々に定義できるが、そのような適切な例の１つは、英国ケンブリッジのＡＲＭ（登録商標）Ｌｉｍｉｔｅｄが提供するＡＭＢＡ（登録商標）５  ＣＨＩ（コヒーレントハブインターフェース）仕様である。本明細書で開示する技術は、ホームノードが要求元マスターデバイスから受信した特定の読み取りトランザクションを処理する方法に関するものであり、これらのトランザクションは、ホームノードに増加する追跡負荷を課すことなく、直接メモリ転送によって実現できるようにする。
【００２９】
図２は、一実施形態における装置５０を概略的に示しており、これは、例えば、図１に示したシステムにおいてコヒーレント相互接続の役割を果たすことができる。本明細書では「ホームノード」または「ハブ」とも呼ばれる装置５０は、システム内のマスターデバイスとトランザクションを交換するマスターインターフェース５２と、スレーブデバイスとトランザクションを交換するスレーブインターフェース５４と、を含む。本開示に関連する特定のトランザクションは、システム内の要求元マスターデバイスから受信した読み取りトランザクション、およびシステム内のデータ保存スレーブデバイスに発行された直接メモリ転送要求である。装置５０は、装置によるトランザクションの受信、処理、および発行の全体的な制御を管理するトランザクション制御回路５６を含む。この構成要素は、トランザクション追跡回路５８も参照し、トランザクション追跡回路５８は、保留トランザクション回路６０とカウンタ６２を含むように図に示されている。装置５０は、システムキャッシュ６４（例えば、図１のシステムキャッシュ２８であってもよい）と通信するものとして示されている。装置５０が要求元マスターデバイスからマスターインターフェース５２を介して受信する読み取りトランザクションは、読み取りトランザクションの順序付け要求に関して２ビットコンテンツが以下の意味を持つように定義された２ビット順序フィールドを含む。
２’ｂ００：順序付けなし
２’ｂ０１：予約済み
２’ｂｌＯ：要求の順序付け
２’ｂｌｌ：エンドポイントの順序付け
【００３０】
本技術は、ビットの組み合わせ２’ｂ０１が「予約済み」として定義される、すなわちそれを受信する装置（装置５０を含む）にとってセマンティックな意味を持たないという事実を利用する。直接メモリ転送要求として実施するのに適した、要求元マスターデバイスからの順不同の読み取り要求、すなわち、この例では、英国ケンブリッジのＡＲＭ（登録商標）Ｌｉｍｉｔｅｄが提供するＡＭＢＡ（登録商標）仕様に基づくシステムとして、「スヌープ読み取りなし（ＲｅａｄＮｏＳｎｏｏｐ）」、「１回読み取り（ＲｅａｄＯｎｃｅ）」、「消去無効化１回読み取り（ＲｅａｄＯｎｃｅＣｌｅａｎＩｎｖａｌｉｄａｔｅ）」、「無効化１回読み取り（ＲｅａｄＯｎｃｅＭａｋｅｌｎｖａｌｉｄ）」などの非割り当て読み取りトランザクションを受信すると、トランザクション制御５６は、トランザクショントラッカー５８内の保留トランザクションストレージ６０にエントリを作成させる。したがって、本開示は、当業者の理解を容易にするために既知の用語を使用していることに留意することが重要であるが、本開示は、本明細書で初めて提示される技術に従ってそのような読み取りトランザクションの処理を増強するものである（すなわち、直接メモリ転送要求の転送先であるスレーブデバイスから読み取り確認応答信号をトリガする）。したがって、トランザクション制御５６は、次に、トランザクションの順序フィールド（直接メモリ転送要求）もマークし、その後に、読み取り確認応答が必要であることを示すために必要なデータを格納するスレーブデバイスに発行する。これは、順序フィールドの上記の指定された「予約済み」ビットの組み合わせを、読み取り確認応答が必要であることを示すために、装置５０（ホームノード）とデータ保存スレーブ（スレーブノード）との間のトランザクションの特注の意味でオーバーロードすることによって行われる。この例では、ホームノードとスレーブノード間のトランザクションの２ビット順序フィールドの可能なビットの組み合わせの順列は次のとおりである。
２’ｂ００：順序付けなし／読み取り確認応答が不要として扱われる
２’ｂ０１：読み取り確認応答が必要である
２’ｂｌＯ：予約済み
２’ｂｌｌ：予約済み
【００３１】
直接メモリ転送要求を受信するスレーブデバイスは、要求が受け入れられ、再試行を送信しないことを保証すると、順序フィールドの２’ｂ０１ビットの組み合わせに対するこの「新しい」意味を認識し、読み取り受信（読み取り確認応答）を送信する。実際、この例のスレーブデバイスは、直接メモリ転送要求を受け入れるとすぐに読み取り確認応答信号（読み取り受信）を送信する（そして、再試行を発行しないことを保証できる）。したがって、ホームノードは、トラッカー内のエントリの割り当てを解除できるように、直接メモリ転送要求の受け入れを示す非常に迅速な指示を受信する。この実施形態の変形例では、スレーブデバイスは、直接メモリ転送要求の処理が完了するまで読み取り受信（読み取り確認応答信号）を送信しないように構成できるため、要求元マスターデバイスに直接メモリ転送データ応答を送信し、読み取り確認応答信号をハブ（ホーム）デバイスに送信することで、スレーブハードウェアロジックが簡素化される。トランザクショントラッカー５８内のカウンタ６２の使用は、以下の図を参照して以下により詳細に説明される。
【００３２】
図３は、一実施形態において、要求元マスター、ホームノード、およびデータ保存スレーブ間で交換される一組の例示的なメッセージを示す。最初に、要求元マスターは、必要な１つまたは複数のデータ項目を指定して、読み取り要求をホームノードに送信する。これを受信すると、ホームノードはトランザクショントラッカーにエントリを作成し、データ項目が保存されているデータ保存スレーブに直接メモリ転送（読み取り要求）を発行する。この要求は、その順序フィールドに上記の特定のビットの組み合わせ（２’ｂ０１）でマークされ、読み取り確認応答が必要であることを示す。したがって、この要求の受信に応じて、データ保存スレーブは、ホームノードに読み取り受信を発行する。（上記のように）データ保存スレーブは、（直接メモリ転送要求を受け入れ、再試行が発生しないことが分かっている場合に）この読み取り受信を本質的に即座に発行するように調整することができ、あるいは直接メモリ転送が処理された後にのみ読み取り受信を送信するように設定することができることに留意されたい。受け取り確認を受信すると、ホームノードは、（完全なトランザクションが完了したかのように）トラッカーで作成したエントリを完了としてマークする。データ保存スレーブは、ストレージから必要なデータを取得し、ホームノードを経由せずに要求元マスターに直接送信する。この図は、このデータの送信が複数の送信（複数のパケットなど）を介して行われる可能性があることを示している。最後に、図３の破線の通信線は、要求されたデータが完全に受信されたときに、要求元マスターがホームノードにトランザクション完了確認応答を追加で発行できることを示している。要求元マスターがそのような完了確認応答が期待できることを最初の読み取り要求で示した場合（ＥｘｐＣｏｍｐＡｃｋ＝１）、ホームノードは対応するカウンタ（図２に示すカウンタ６２の１つなど）をインクリメントし、トランザクション完了確認応答はこのカウンタをデクリメントする。これについては、以下で詳しく説明する。
【００３３】
図４は、一実施形態において動作中のホームノードによって実行される一連のステップを示す。フローは、順序付けされていない、スヌープ読み取りなし（ＲｅａｄＮｏＳｎｏｏｐ）、１回読み取り（ＲｅａｄＯｎｃｅ）、消去無効化１回読み取り（ＲｅａｄＯｎｃｅＣｌｅａｎＩｎｖａｌｉｄａｔｅ）、または無効化１回読み取り（ＲｅａｄＯｎｃｅＭａｋｅｌｎｖａｌｉｄ）トランザクションが受信されたかどうかが判断されるステップ１００で開始すると見なすことができる。この段階ではフローは待機していない。これらのタイプのトランザクションの１つを受信すると、フローはステップ１０２に進み、ホームノードがこのトランザクションのトラッカーにエントリを割り当てる。次に、ステップ１０４で、ホームノードはシステム内のスレーブノードに直接メモリ転送要求を発行し、そこで要求されたデータ項目が２ｂ’０１に設定された順序フィールドのビットと共に保存され、このビットの組み合わせは、順序制約の仕様に関して意味を持たないが、受信者のスレーブノードは、読み取り受信を生成する必要があることを理解する。次に、フローは、対応する読み取り受信がスレーブノードから受信されるまでステップ１０６で待機し、最終的にステップ１０８でこのトランザクションのトラッカーにエントリが割り当て解除される（すなわち、完了としてマークされる）。その後、フローはステップ１００に戻る。
【００３４】
図５は、一実施形態におけるホームノードの動作において行われる一連のステップを示す。フローはステップ２００で開始すると見なすことができ、フローは、順序付けられていない、スヌープ読み取りなし（ＲｅａｄＮｏＳｎｏｏｐ）、１回読み取り（ＲｅａｄＯｎｃｅ）、消去無効化１回読み取り（ＲｅａｄＯｎｃｅＣｌｅａｎＩｎｖａｌｉｄａｔｅ）、または無効化１回読み取り（ＲｅａｄＯｎｃｅＭａｋｅｌｎｖａｌｉｄ）トランザクションが受信されるまで待機する。次に、フローはステップ２０２に進み、受信した読み取りトランザクションが、要求元マスターデバイスによってトランザクション完了確認応答が後に発行されることを示すかどうかが判定される。これが当てはまる場合（すなわち、読み取りトランザクションでＥｘｐＣｏｍｐＡｃｋ＝１の場合）、フローはステップ２０４を介して進み、ホームノードが要求元マスターデバイスのカウンタをインクリメントする。それ以外の場合（すなわち、読み取りトランザクションでＥｘｐＣｏｍｐＡｃｋ＝０の場合）、フローは直接ステップ２０６に進む。このステップでは、このトランザクションのトラッカーにエントリが割り当てられ、次にステップ２０８で、ホームノードがスレーブノードに直接メモリ転送（読み取り）要求を発行し、要求されたデータ項目が  ２ｂ’０１に設定された順序フィールドのビットと共に格納される。次いで、フローは、ステップ２１０で、対応する読み取り受信がスレーブノードから受信されるまで待機し、その後に、ステップ２１２で、このトランザクションのトラッカー内のエントリが割り当て解除される。次に、ステップ２１４で、ホームノードが要求元マスターデバイスからトランザクション完了信号を受信したかどうかが判断され、そうなるまでフローはそれ自体でループし、次にステップ２１６で要求元マスターデバイスのカウンタがデクリメントされ、フローはステップ２００に戻る。
【００３５】
図５は、要求元マスターに対応するカウンタが正常に動作している場合のみ、カウンタのインクリメントおよびデクリメントを示し、（単にその図の説明を明確にするために）受信信号に応じてカウンタ値が更新される可能性がシステムのエラーの可能性を示す場合にホームノードがどのように応答するかを示していない。この２つの例を図６Ａおよび図６Ｂに示す。図６Ａは、ホームノードによってエラー信号が生成される１つの方法を示している。フローは、ステップ２２０で開始すると見なすことができ、そこでは、ＥｘｐＣｏｍｐＡｃｋ＝１の順序付けられていない読み取りトランザクションが受信されたかどうかが判定される。もしそうであれば、フローはステップ２２２を介して進み、要求元マスターのカウンタがインクリメントされる。次に、ステップ２２４で、Ｃｏｍｐ＿Ａｃｋ信号（すなわち、トランザクション完了確認応答）が受信されたかどうかが判定される。そうでない場合には、フローはステップ２２０に戻る。しかしながら、Ｃｏｍｐ＿Ａｃｋ信号が受信される場合には、フローはステップ２２６に進み、関連するマスターのカウンタが既に所定の最小値（例えばゼロ）にあるかどうかが判定される。そうであって、したがってこのカウンタのさらなるデクリメントが可能でない場合には、スプリアスのＣｏｍｐ＿Ａｃｋ信号が受信され、エラーにフラグを立てることができるため、フローはステップ２２８に進む。別の言い方をすれば、フロー図のこのポイントに到達する際に、ホームノードは、そのようなトランザクション完了確認応答が予想されるという指示よりも多くのトランザクション完了確認応答を観察した。そうでない場合、ステップ２３０で、このマスターのカウンタがデクリメントされ、フローはステップ２２０に戻る。
【００３６】
図６Ｂは、ホームノードが静止状態への移行を試みることができる方法の例を示している。フローは、ステップ２５０で始まると考えることができ、そこでホームノードが静止状態に入ろうとするべきであることが決定されるまでフローが待機する。次に、ステップ２５２で、ホームノードがシステム内のマスターのために維持するカウンタがその所定の最小値にないか、すなわち、少なくとも１つのトランザクション完了確認応答がまだ期待されることを示すかどうかが判定される。最小ではないカウンタがない場合には、フローはステップ２５４に進み、ホームノードは静止状態を継続することができる。しかし、少なくとも１つのカウンタが最小値でない場合には、フローはステップ２５６に進み、そこで、保留中のトランザクションの完了を許可するために、ホームノードが適切な期間（特定のシステムに従って）一時停止し、ステップ２５８で、いずれかのカウンタがその所定の最小値にないかどうかが再び判定される。すべてのカウンタが最小値に達した場合には、フローはステップ２５４に進み、システムは静止状態に入ることができるが、そうでなければ、トランザクション完了確認応答が未解決であり、このエラーのフラグを立てることができるため、フローはステップ２６０に進む。
【００３７】
要約すると、要求元マスターデバイスとデータ保存スレーブデバイスを含むコヒーレント相互接続システムにおいて、装置とその装置を動作させる対応する方法が提供されている。装置は、要求元マスターデバイスから受信したコヒーレンシ・プロトコル・トランザクションの記録を維持し、コヒーレンシ・プロトコル・トランザクションの完了は保留中であり、データ保存スレーブデバイスに保存されたデータ項目の要求元マスターデバイスからの読み取りトランザクションの受信に応答して、データ保存スレーブデバイスに直接メモリ転送要求を発行する。読み取り確認応答トリガが直接メモリ転送要求に追加され、データ保存スレーブデバイスからの読み取り確認応答信号の受信に応答して、読み取りトランザクションの受信によって作成された記録が、直接メモリ転送要求の完了に対応して更新される。したがって、直接メモリ転送によって読み取りトランザクションが満たされるにもかかわらず、装置が記録を維持するのに必要なライフタイムは短くなる。対応するデータ保存スレーブデバイスと、データ保存スレーブデバイスを動作させる方法も提供される。
【００３８】
本出願では、「〜するように構成される」または「〜するように配置される」という単語は、装置の要素が定義された動作を実行することができる構成を有することを意味するために使用される。これに関連して、「構成」は、ハードウェアまたはソフトウェアの相互接続の配置または方法を意味する。例えば、装置は、定義された動作を提供する専用のハードウェアを有してもよく、あるいはプロセッサまたは他の処理装置が機能を実行するようにプログラムされてもよい。「〜するように構成される」または「〜するように配置される」は、定義された動作を提供するために装置要素が何らかの方法で変更される必要があることを意味しない。
【００３９】
本発明の例示的な実施形態を添付の図面を参照しながら本明細書で詳細に説明したが、本発明はそれらの正確な実施形態に限定されず、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、当業者によって様々な変更、追加、および修正がその中で達成することができることを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項の特徴の様々な組み合わせを独立請求項の特徴と共に行うことができる。
【図１】
2020506482.tif 000003
【図２】
2020506482.tif 000004
【図３】
2020506482.tif 000005
【図４】
2020506482.tif 000006
【図５】
2020506482.tif 000007
【図６Ａ】
2020506482.tif 000008
【図６Ｂ】
2020506482.tif 000009
【国際調査報告】
2020506482.tif 000010
2020506482.tif 000011