(57)【要約】【課題】効率的なキャッシュ管理を実現する。【解決手段】コヒーレント相互接続システムにおいて、ハブ装置を操作する装置と対応する方法、及び、ターゲット装置が提示されている。このシステムにおける一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を、少なくとも一つのデータ項目を特定する要求マスター装置から受信し、ハブ装置は、その少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガをターゲット装置に送信することにより応答する。このトリガによって、ターゲット装置は、特定された少なくとも一つのデータ項目がキャッシュに読み出され送られることを要求することができる。【選択図】図４
2018129042.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのデータ項目を特定する要求マスター装置から、一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を受信するインタフェース回路と、
前記キャッシュ事前入力要求の受信に応答して、前記少なくとも一つのデータ項目を特定する前記一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガをターゲット装置に送信するトランザクション制御回路と
を具備する、コヒーレント相互接続システムのハブ装置。
【請求項２】
前記ターゲット装置は、キャッシュを含むターゲットマスター装置であり、前記キャッシュ事前入力トリガは、前記ターゲットマスター装置が、前記少なくとも一つのデータ項目のコピーをそのキャッシュに取り込むかどうかの判断を行うべきであることを示す、請求項１に記載のハブ装置。
【請求項３】
前記キャッシュ事前入力要求は、前記要求マスター装置が、利用可能な前記少なくとも一つのデータ項目のキャッシュされたコピーを保持していることを特定する、請求項１に記載のハブ装置。
【請求項４】
前記キャッシュ事前入力要求は、前記少なくとも一つのデータ項目が格納された追加スレーブ装置から前記少なくとも一つのデータ項目が読み出されることを特定する、請求項１に記載のハブ装置。
【請求項５】
前記ターゲット装置は、前記追加スレーブ装置であり、前記キャッシュ事前入力トリガは、前記追加スレーブ装置が前記少なくとも一つのデータ項目のコピーを前記ハブ装置へ返送するべきであることを示す、請求項４に記載のハブ装置。
【請求項６】
前記キャッシュ事前入力要求が前記ターゲット装置を特定する、請求項１に記載のハブ装置。
【請求項７】
前記前記キャッシュ事前入力要求が前記ターゲット装置を特定しない、請求項１に記載のハブ装置。
【請求項８】
前記キャッシュ事前入力要求に設けられた、前記ターゲット装置を特定するフィールドに、無効なターゲット装置識別子が示される、請求項７に記載のハブ装置。
【請求項９】
前記トランザクション制御回路は、前記キャッシュ事前入力要求の受信に応答して、前記少なくとも一つのデータ項目が格納された追加スレーブ装置に前記キャッシュ事前入力トリガを送信させ、それによって、前記ハブ装置に関連付けられたキャッシュにおいて前記少なくとも一つのデータ項目がキャッシュされるようにする、請求項７に記載のハブ装置。
【請求項１０】
前記ハブ装置に関連付けられた前記キャッシュは、システムキャッシュである、請求項９に記載のハブ装置。
【請求項１１】
前記トランザクション制御回路は、前記キャッシュ事前入力要求の受信に応答して、前記少なくとも一つのデータ項目が格納された追加スレーブ装置に前記キャッシュ事前入力トリガを送信させ、それによって、前記追加スレーブ装置と前記ハブ装置との間に位置する一時記憶装置に前記少なくとも一つのデータ項目を格納する、請求項７に記載のハブ装置。
【請求項１２】
前記トランザクション制御回路は、前記ターゲット装置を特定しない前記キャッシュ事前入力要求の受信に応答して、前記キャッシュ事前入力トリガが送信された前記ターゲット装置を選択する、請求項７に記載のハブ装置。
【請求項１３】
前記ハブ装置は、接続されたマスター装置のデータアクセスパターンを記憶するデータアクセスパターン回路をさらに具備し、前記トランザクション制御回路は、前記データアクセスパターンに応じて前記ターゲット装置を選択するよう構成されている、請求項１２に記載のハブ装置。
【請求項１４】
前記データアクセスパターンには、前記接続されたマスター装置が前記データアクセスパターンに示されるデータにいつアクセスしたかを示す指標が含まれる、請求項１３に記載のハブ装置。
【請求項１５】
前記ハブ装置は、接続されたマスター装置のキャッシュデータの指標を記憶するスヌープフィルタ回路をさらに具備し、前記トランザクション制御回路は、前記キャッシュしたデータの指標に応じて前記ターゲット装置を選択するよう構成されている、請求項１３に記載のハブ装置。
【請求項１６】
前記ハブ装置は、接続されたマスター装置のキャッシュデータの指標を記憶するスヌープフィルタ回路をさらに具備し、前記トランザクション制御回路は、前記ターゲット装置が前記少なくとも一つのデータ項目の有効なキャッシュしたコピーを現在有していることを示す指標に応答して、前記ターゲット装置への前記キャッシュ事前入力トリガの送信を抑制する、請求項６に記載のハブ装置。
【請求項１７】
前記キャッシュ事前入力要求は、前記少なくとも一つのデータ項目のキャッシュ時にそれにラベル付けされるコヒーレンシ状態を特定する、請求項１に記載のハブ装置。
【請求項１８】
前記コヒーレンシ状態は、前記少なくとも一つのデータ項目が、そのキャッシュ時に、前記コヒーレント相互接続システムとのコヒーレンシ・プロトコル・トランザクションのさらなる交換を行わずに更新可能であることを示す変更可能な状態である、請求項１７に記載のハブ装置。
【請求項１９】
前記コヒーレンシ状態は、前記少なくとも一つのデータ項目がキャッシュされる場合、前記少なくとも一つのデータ項目の更新が行われる前に、前記コヒーレント相互接続システムとのコヒーレンシ・プロトコル・トランザクションのさらなる交換が必要であることを示す変更不可能な状態である、請求項１７に記載のハブ装置。
【請求項２０】
少なくとも一つのデータ項目を特定する要求マスター装置から、一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を受信することと、
前記少なくとも一つのデータ項目を特定する前記一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガをターゲット装置に送信することにより、前記キャッシュ事前入力要求の受信に応答することと
を具備する、コヒーレント相互接続システムにおけるハブ装置の操作方法。
【請求項２１】
キャッシュと、
少なくとも一つのデータ項目を特定するハブ装置から一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガを受信するインタフェース回路と、
前記キャッシュ事前入力トリガの受信に応答して、
少なくとも一つの追加条件に基づいて、前記キャッシュ事前入力トリガに対してアクションを行うかどうかの判断を行い、
前記キャッシュ事前入力トリガに対してアクションを行うと判断した場合、前記少なくとも一つのデータ項目を特定する前記一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ入力トランザクションを前記インタフェース回路から送信して、前記キャッシュにおいて前記少なくとも一つのデータ項目がキャッシュされるようにするキャッシュ制御回路と
を具備する、コヒーレント相互接続システムのマスター装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理システムに関し、特に、データ処理システムのキャッシュコンテンツの管理に関するものである。
【背景技術】
【０００２】
データ処理システムにおいて、データ項目のコピーのキャッシングを、それらがデータ処理作業に必要となるポイントのより近くで（例えば、ＣＰＵの近くで）行うことにより、メモリからのデータ項目の読み出しに関連するレイテンシを大幅に削減することができる。しかしながら、データキャッシュは、必然的に、通常は、対応するメモリ装置よりもはるかに小さくないといけないので、キャッシュ装置に保持されたデータ項目のサブセットを任意の時点でそのメモリから選択するには、キャッシングを効果的に行うためにも慎重な管理が必要である。データ項目をキャッシュに入力するメカニズムの一つとして、データ処理要素（例えば、ＣＰＵ）によるデータアクセスによって、データ項目をメモリから読み出し、一旦メモリから読み出されると近い将来再びアクセスされる可能性が高いものと想定して、そのデータ項目をローカルキャッシュに保存する方法がある。また、特に、複数のデータ処理要素とマルチキャッシュから構成されるシステムでは、ターゲットキャッシュに関連する処理要素がデータ項目を要求する前であっても、そのターゲットデータキャッシュにデータ項目を積極的に押し込んでもよい。しかしながら、このように送り付けられてくるデータを収容するのに利用可能な領域がキャッシュに存在しなければならず、このようなシステムを管理することは、キャッシュの管理をさらに複雑にする。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書に記載の少なくとも一例によれば、少なくとも一つのデータ項目を特定する要求マスター装置から、一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を受信するインタフェース回路と、キャッシュ事前入力要求の受信に応答して、少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガをターゲット装置に送信するトランザクション制御回路とを備えた、コヒーレント相互接続システムのハブ装置が提供される。
【０００４】
本明細書に記載の少なくとも一例によれば、少なくとも一つのデータ項目を特定する要求マスター装置から、一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を受信することと、少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガをターゲット装置に送信することにより、キャッシュ事前入力要求の受信に応答することとを備えた、コヒーレント相互接続システムにおけるハブ装置の操作方法が提供される。
【０００５】
本明細書に記載の少なくとも一例によれば、キャッシュと、少なくとも一つのデータ項目を特定するハブ装置から一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガを受信するインタフェース回路と、このキャッシュ事前入力トリガの受信に応答して、少なくとも一つの追加条件に基づいて、そのキャッシュ事前入力トリガに対してアクションを行うかどうかの判断を行い、キャッシュ事前入力トリガに対してアクションを行うと判断した場合、少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ入力トランザクションを上記インタフェース回路から送信して、キャッシュにて少なくとも一つのデータ項目のキャッシュを行うキャッシュ制御回路とを備えた、コヒーレント相互接続システムのマスター装置が提供される。
【０００６】
本技術について、添付の図面に示すその実施例を参照しながら、ほんの一例としてさらに説明する。
【図面の簡単な説明】
【０００７】
【図１】複数のマスター装置と複数のスレーブ装置を備えた一実施例のコヒーレント相互接続システムを概略的に示す図である。
【図２】一実施例におけるコヒーレント相互接続システムのハブ装置のいくつかの構成要素を概略的に示す図である。
【図３】一実施例におけるマスター装置のいくつかの構成要素を概略的に示す図である。
【図４】一実施例におけるハブ装置と要求マスター、ターゲットマスター、スレーブ装置、他のマスターとの相互作用を概略的に示す図である。
【図５】一実施例において、要求マスター、ターゲットマスター、他のマスター、ホームノード（ハブ装置）間で交換される一連の通信メッセージの例を示す図である。
【図６】一実施例において、要求マスター、ターゲットマスター、ホームノード（ハブ装置）、スレーブデータ記憶装置間で交換される一連の通信メッセージの例を示す図である。
【図７】一実施例において、要求マスター、ホームノード（ハブ装置）、スレーブデータ記憶装置間で交換される一連の通信メッセージの例を示す図である。
【図８】一実施例の方法で行われる一連の工程を示す図である。
【発明を実施するための形態】
【０００８】
いくつかの実施例において、少なくとも一つのデータ項目を特定する要求マスター装置から、一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を受信するインタフェース回路と、そのキャッシュ事前入力要求の受信に応答して、ターゲット装置に送信すべき上記少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガを行うトランザクション制御回路とを備えた、コヒーレント相互接続システムのハブ装置がある。
【０００９】
このように、コヒーレント相互接続システムの残りの部分を構成する多数の異なる装置間の接続を行うコヒーレント相互接続部となり得る、このシステムのハブ装置は、システムの特定のマスター装置から受信し得る新しいタイプの要求に応答するよう構成され、コヒーレント相互接続システムの装置が互いに交換し合うよう構成されている一連のコヒーレンシ・プロトコル・トランザクションの一部を形成する。要求マスター装置から受信するこのキャッシュ事前入力要求は、少なくとも一つのデータ項目を示し、それに応じて、ハブ装置のトランザクション制御回路は、上記少なくとも一つのデータ項目を特定するこのシステム内のターゲット装置に送信すべき（同様に上記システムの装置が互いに交換し合うよう構成されている一連のコヒーレンシ・プロトコル・トランザクションの一部を形成する）キャッシュ事前入力(pre-population)トリガを行う。従って、少なくとも一つ目の例で、トランザクション制御回路がターゲット装置に送信させるものは、キャッシュ事前入力トリガであって、少なくとも一つのデータ項目自体ではないということに留意すべきである。とは言っても、この少なくとも一つのデータ項目は、キャッシュ事前入力トリガによって特定されるので、それに応じて、ターゲット装置は、少なくとも一つのデータ項目をそのキャッシュに持ってこさせるために、そのキャッシュ事前入力トリガに応答したいかどうかの自己評価を行うことができる。これにより、この少なくとも一つのデータ項目が必要となる前に、そのキャッシュにこの少なくとも一つのデータ項目を事前入力することになる。上記例は、ターゲット装置がマスター装置であるということを前提としているが、ほかの例では、特定の、すなわち、他の場所でキャッシュされる一つ又は複数のデータ項目を提供することによって、キャッシュ事前入力トリガに応答し得るメモリなどのスレーブ装置であってもよい。
【００１０】
ターゲット装置は、キャッシュ事前入力トリガに対してどう反応するかの判断を実際に行う場合、基準の範囲に従ってこれを行うべきかどうかを判定してもよい。このような基準としては、例えば、その時点でキャッシュがどれくらいビジーであるかや、その要求が処理できるタイプのものであるかどうかといったものであってもよく、これまでにアクセスしたデータアドレスや、それらのアドレスへのアクセスがいつ行われたかを示す保存データ、過去のトリガへの応答がどのくらいの頻度でキャッシュに格納されている有用なデータをもたらしたかについてのヒューリスティックなどの各種データを利用してもよい。よって、全体的に見て、少なくとも一つのデータ項目をターゲットキャッシュに事前入力するためのメカニズムは、データを一方的にターゲットキャッシュに押し付けるのではなく、むしろ、特定された少なくとも一つのデータ項目を事前入力することを選択できるということをキャッシュに「提案(suggest)」するということに特に留意されたい。これによって、他のシステム要素からの一方的なデータの押し付けや、そのような余計なデータ項目の受信処理のサポートに必要な関連管理メカニズムを見越して、キャッシュに利用可能な記憶領域を確保しておく必要がなくなる。そうは言うものの、一つのシステム要素（要求マスター装置）が、そのシステム全体内で行われるデータ処理に関する知識を利用して、他のシステム要素（ターゲット装置）に対して上記のような事前入力の「提案」を行うことができるようにし、その結果、システム全体で行われるデータ処理の効率を向上させるメカニズムが提供される。
【００１１】
ハブ装置から送信されたキャッシュ事前入力トリガの受信者であるターゲット装置は、システム内でさまざまな形態を取ることができ、多くの異なるタイプの装置をそのキャッシュ事前入力トリガに応答するよう構成することができるものとする。しかしながら、このターゲット装置は、いくつかの実施例では、キャッシュを含むターゲットマスター装置であり、キャッシュ事前入力トリガは、このターゲットマスター装置が、少なくとも一つのデータ項目のコピーをそのキャッシュに取り込むかどうかの判断を行うべきであることを示す。さらに、この少なくとも一つのデータ項目のコピーをそのキャッシュに取り込むかどうかの判断は、厳密に言えば、ターゲットマスター装置自身によって、キャッシュ自身（又は少なくともそれに直接関連する制御回路）によって、又は、その２つの組み合わせによってなど、そのキャッシュを含むターゲットマスター装置においてさまざまな方法で行われてもよい。いずれにしろ、上記説明から、少なくとも一つのデータ項目のコピーを取り込むべきかどうかの判断を行うターゲットマスター装置におけるローカルな判断であることが理解されよう。よって、さらに、ターゲット装置は、例えば、その時点でビジー過ぎたり、一杯でこの少なくとも一つのデータ項目を収容できなかったりする場合、単にキャッシュ事前入力トリガを無視することを選択してもよいことも理解すべきである。
【００１２】
このキャッシュ事前入力要求を発行する要求マスター装置は、上記少なくとも一つのデータ項目のキャッシュされたコピーを自身のキャッシュ内に保持している場合に、そのような処理を行えばよい。例えば、キャッシュ事前入力要求は、要求マスター装置が、その少なくとも一つのデータ項目のキャッシュされたコピーに対して行う自身のローカル処理に従って発行する書き込み要求の形を取ってもよい。従って、上記実施例で、ターゲット装置が、少なくとも一つのデータ項目のコピーを要求することによりキャッシュ事前入力トリガに応答することを選択した場合、その要求マスター装置が保持するキャッシュされたコピーは、そのコピーを提供して、メモリからの読み出しのレイテンシを回避してもよい。その結果、いくつかの実施例では、要求マスター装置が、利用可能な少なくとも一つのデータ項目のキャッシュされたコピーを保持していることがキャッシュ事前入力要求によって特定される。
【００１３】
また、いくつかの実施例では、その少なくとも一つのデータ項目が格納された追加スレーブ装置からその少なくとも一つのデータ項目が読み出されることがキャッシュ事前入力要求によって特定される。このように、上記実施例では、要求マスター装置は、利用可能な少なくとも一つのデータ項目のキャッシュされたコピーを保持していない（もしくは、少なくともそのコピーをターゲット装置に提供することが不適切である）ことを示すことができ、そのデータ項目が読み出される場所（上記追加スレーブ装置）を特定することを選択することができる。
【００１４】
このようなデータ項目が読み出される追加スレーブ装置を特定するキャッシュ事前入力要求は、この少なくとも一つのデータ項目がその追加スレーブ装置から読み出されることを要求することを自身で選択できる他のマスター装置など、さまざまな受信者に送信してもよい。また、他の実施例では、このキャッシュ事前入力要求を、上記追加スレーブ装置自体に送信してもよい。よって、上記いくつかの実施例では、ターゲット装置は、上記追加スレーブ装置であり、キャッシュ事前入力トリガは、その追加スレーブ装置が少なくとも一つのデータ項目のコピーをハブ装置へ返送するべきであることを示す。すなわち、上記実施例では、（データ処理のための）少なくとも一つのデータ項目の最終目的地が要求マスター装置によって特定されず、このメカニズムによって、少なくとも一つのデータ項目がハブ装置に読み出され、差し当たりそれ以上はないことが理解されよう。それにもかかわらず、メモリのレイテンシは、一つ又は複数のデータ項目が、後にそれ又はそれらが必要となる場所の近くでキャッシュされるようにすることによって低減される。ハブ装置は、システム内の他の装置にそのうち提供することができるそのデータ項目のコピーを保持するために、バッファやキャッシュなど、それ自身のローカルストレージを備えていてもよい。
【００１５】
このように、キャッシュ事前入力要求は、ターゲット装置の特定を含んでいてもいなくてもよいものとする。このキャッシュ事前入力要求は、いくつかの実施例ではターゲット装置を特定するが、他の実施例では、ターゲット装置を特定しない。ターゲット装置を特定しないことは、規定の一連のコヒーレンシ・プロトコル・トランザクションにふさわしいさまざまな方法で実施してもよいが、いくつかの実施例では、キャッシュ事前入力要求に設けられた、ターゲット装置を特定するフィールドに、無効なターゲット装置識別子が示される。
【００１６】
ターゲット装置を特定しない（又は無効なターゲット装置識別子が示された）キャッシュ事前入力要求に対して、ハブ装置はさまざまな方法で応答してもよいが、いくつかの実施例では、トランザクション制御回路がそのキャッシュ事前入力要求の受信に応答して、少なくとも一つのデータ項目が格納された追加スレーブ装置にキャッシュ事前入力トリガを送信させ、それによって、ハブ装置に関連付けられたキャッシュにおいてその少なくとも一つのデータ項目がキャッシュされるようにする。これにより、ハブ装置は、受信したキャッシュ事前入力要求にターゲット装置が特定されていない場合、例えば、その少なくとも一つのデータ項目が格納され、上述したように、単にその少なくとも一つのデータ項目を提供することでトリガに応答することができるスレーブ装置であり得るターゲットを自身で追加する機能を有することができる。また、これにより、ハブ装置に関連付けられたキャッシュにおいて、その少なくとも一つのデータ項目がキャッシュされるようにすることができる。このキャッシュは、さまざまな形態を取ることができるが、例えば、ハブ装置に接続されたシステムキャッシュであってもよい。
【００１７】
一方、ハブ装置に又はその近くに少なくとも一つのデータ項目を格納するのに、追加スレーブ装置からその少なくとも一つのデータ項目を読み出す必要はなく、いくつかの実施例では、トランザクション制御回路がキャッシュ事前入力要求の受信に応答して、少なくとも一つのデータ項目が格納された追加スレーブ装置にキャッシュ事前入力トリガを送信させ、それによって、この追加スレーブ装置とハブ装置の間に位置する一時記憶装置に上記少なくとも一つのデータ項目を格納するものとする。この一時記憶装置は、例えば、追加スレーブ装置（例えば、メモリ）とハブ装置との間に位置するレベル３（Ｌ３）キャッシュなどの他のキャッシュであってもよく、この目的のために備えられたさまざまなバッファや、追加スレーブ装置よりもハブの近くで（すなわち、ハブ装置に対する読み出しレイテンシを短縮して）少なくとも一つのデータ項目を保持するための他の任意の一時記憶装置であってもよい。
【００１８】
他の実施例では、トランザクション制御回路は、ターゲット装置を特定しないキャッシュ事前入力要求の受信に応答して、キャッシュ事前入力トリガが送信されたターゲット装置を選択する。これにより、ハブ装置は、例えば、システム内に専用キャッシュを有するマスター装置など、事前入力トリガが送信されたターゲット装置を特定することができる。
【００１９】
ハブ装置は、数多くのさまざまな基準に従ってターゲット装置の選択を行なってもよいが、いくつかの実施例では、接続されたマスター装置のデータアクセスパターンを記憶するデータアクセスパターン回路をさらに備えている。そして、トランザクション制御回路は、このデータアクセスパターンに基づいてターゲット装置を選択するよう構成されている。これにより、ハブ装置は、それらのデータアクセスパターンに基づき、少なくとも一つのデータ項目が間もなく有用となることが予想されるターゲット装置を判定することができる。このデータアクセスパターン自体は、さまざまな形態を取ってもよいが、例えば、スレッド表、アドレスの範囲などとして提供されてもよい。
【００２０】
上記いくつかの実施例では、データアクセスパターンには、上記接続されたマスター装置がそのデータアクセスパターンに示されるデータにいつアクセスしたかを示すものが含まれる。すなわち、上記実施例におけるデータアクセスパターンには、ハブ装置が、例えば、この少なくとも一つのデータ項目に一番最近アクセスしたことに基づき、この少なくとも一つのデータ項目をそのキャッシュに事前入力することから恩恵を受ける可能性が最も高いのは上記接続されたマスター装置のうちのどれかをよりよく判断することを可能にする時間的要素がさらに含まれる。
【００２１】
コヒーレント相互接続システムのハブ装置は、必要なコヒーレンシを維持するためにシステム内で実行しなければならないスヌープ（snoop）処理における役割を果たすことを可能にするスヌープフィルタ回路を備えていてもよく、いくつかの実施例では、ハブ装置は、このスヌープフィルタ回路と、キャッシュ事前入力トリガが送信されるターゲットデータ装置を選択する際に記憶するキャッシュデータの指標をさらに利用することができる。例えば、スヌープフィルタ回路に記憶したキャッシュデータの指標が、少なくとも一つのデータ項目の有効な最新のコピーをターゲット装置がすでに保持していることを示すものである場合、ハブ装置は、このターゲット装置に対して、キャッシュ事前入力要求を不必要に送信しない。さらに、スヌープフィルタ回路に記憶したキャッシュデータの指標は、接続されたマスター装置が保持するキャッシュしたデータ項目のコヒーレンシ状態を示すものであってもよく、少なくとも一つのデータ項目のキャッシュコピーのコヒーレンシ状態は、ターゲット装置がデータの「唯一の（unique）」コピーを保持するが、少なくとも一つのデータ項目の「共有(shared)」コピーがその対象であることをそのキャッシュ事前入力要求が示している場合などに、ターゲット装置へのキャッシュ事前入力トリガの送信を抑制するのに用いられてもよい。
【００２２】
このように、いくつかの実施例では、少なくとも一つのデータ項目のキャッシュ時にそれにラベル付けされるコヒーレンシ状態が、キャッシュ事前入力要求によって特定される。一般的に、要求マスター装置は、例えば、データは読み取るだけの可能性が高い、又は、変更されるかどうかの知識に基づき、コヒーレンシ状態を特定することによってシステム効率を向上させることが可能であってもよい。
【００２３】
従って、上記いくつかの実施例では、コヒーレンシ状態は、少なくとも一つのデータ項目が、そのキャッシュ時に、コヒーレント相互接続システムとのコヒーレンシ・プロトコル・トランザクションのさらなる交換を行わずに更新可能であることを示す変更可能な状態である。これは、例えば、「唯一」コヒーレンシ状態としてラベル付けされてもよく、関連する処理装置が、対応するキャッシュライン（すなわち、キャッシュされた少なくとも一つのデータ項目）のコンテンツの変更を求めることが予想される場合に有益となることがある。
【００２４】
上記のような他の実施例では、コヒーレンシ状態は、少なくとも一つのデータ項目がキャッシュされる場合、その少なくとも一つのデータ項目の更新が行われる前に、コヒーレント相互接続システムとのコヒーレンシ・プロトコル・トランザクションのさらなる交換が必要であることを示す変更不可能な状態である。これは、例えば、「共有」コヒーレンシ状態としてラベル付けされてもよく、関連する処理装置が、読み出しのためにしかキャッシュライン（すなわち、キャッシュされた少なくとも一つのデータ項目）を必要としないことが予想される場合に用いられてもよく、このキャッシュライン（すなわち、少なくとも一つのデータ項目）に対して、他の装置におけるラインの他のコピーを無効にしなくてもよいように、上記の方法でラベル付けされた状態でキャッシュされることが有益となり得る。
【００２５】
いくつかの実施例では、コヒーレント相互接続システムにおけるハブ装置の操作方法がある。この方法は、少なくとも一つのデータ項目を特定する要求マスター装置から、一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を受信することと、ターゲット装置に送信すべき上記少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガを行うことにより、上記キャッシュ事前入力要求の受信に応答することとを備えている。
【００２６】
いくつかの実施例では、キャッシュと、少なくとも一つのデータ項目を特定するハブ装置から一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガを受信するインタフェース回路と、このキャッシュ事前入力トリガの受信に応答して、少なくとも一つの追加条件に基づいて、上記キャッシュ事前入力トリガに対してアクションを行うかどうかの判断を行い、そのキャッシュ事前入力トリガに対してアクションを行うと判断した場合、少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ入力トランザクションを上記インタフェース回路から送信して、キャッシュにおいて少なくとも一つのデータ項目がキャッシュされるようにするキャッシュ制御回路と、を備えた、コヒーレント相互接続システムのマスター装置がある。
【００２７】
次に、いくつかの具体的な実施例について、図面を参照しながら説明する。
【００２８】
図１は、一実施例における、本技術を実装したデータ処理システム１０を概略的に示す。この図からも分かるように、このシステムは、複数の異なるマスター装置と、複数の異なるスレーブ装置を備えた比較的異質なシステムであるが、他の実施例では、同様にはるかに同質なシステムであってもよい。図１に示すマスター装置は、中央処理装置１４、図形処理装置１６、直接メモリアクセス装置（ＤＭＡ）１８、Ｉ／Ｏコヒーレントマスター２０を備えている。このＩ／Ｏコヒーレントマスター２０は、さらなるネットワーク（図示せず）と通信を行うために、ネットワークインタフェースカード（ＮＩＣ）４０への橋渡しの役割を果たす。図１の例に示すスレーブ装置には、メモリ２２、２４、周辺機器２６、システムキャッシュ２８が含まれる。これらすべての装置間の通信及びデータ転送は、本明細書では、ホームノードやハブ装置ともさまざまに称されるコヒーレント相互接続装置１２を介して行われる。また、同図に示すように、ＣＰＵ装置１４は、特定のＣＰＵブロック３０と関連するローカル（すなわち、Ｌ１）キャッシュ３４を備え、図形処理装置１６は、特定のＧＰＵブロック３２とローカル（Ｌ１）キャッシュ３６を備え、そしてＩ／Ｏコヒーレントマスター２０もそれ自身のローカル（Ｌ１）キャッシュ３８を備えている。図１に示す装置間の通信は、図示のシステムの周りの複数の場所に保存されたデータ項目の複数のコピーのコヒーレンシを維持することを可能にする一連のコヒーレンシ・プロトコル・トランザクションからの規定フォーマットを有するメッセージの形態を取る。この一連のコヒーレンシ・プロトコル・トランザクションは、対象システムに適したものとしてさまざまに定義されてもよいが、そのように適した例の一つとして、英国、ケンブリッジにあるＡＲＭ（登録商標）社が提供するＡＭＢＡ（登録商標）５ＣＨＩ（コヒーレントハブインタフェース）仕様がある。本明細書に開示する技術は、以下に図面を参照してさらに詳しく説明するように、そのような仕様を可能にするように一連のコヒーレンシ・プロトコル・トランザクションを定義し、その仕様を実施するシステムにおいてキャッシュの事前入力をさらに可能にする方法に関するものである。
【００２９】
図２は、図１にコヒーレント相互接続装置１２として示すようなコヒーレント相互接続装置（すなわち、ホームノード又はハブ装置）のいくつかの構成要素を概略的に示す。このハブ装置は、図２では、インタフェース回路１４を備えて示されている。このインタフェース回路１４は、視覚的に理解しやすいように３つの別々の要素として図示されているが、インタフェースを設ける必要がある特定の装置によっては、いくつかの実施例において、これらのインタフェース回路の部分は実際には物理的に互いに分離していなくてもよい。このインタフェース回路１４は、システムにおいてマスター装置からキャッシュ事前入力要求を受信するよう構成され、この受信した要求はトランザクション制御回路１６へ送られる。このキャッシュ事前入力要求の受信に応答して、トランザクション制御回路は、インタフェース回路１４を介して、キャッシュ事前入力トリガをターゲット装置へと発行する。このターゲット装置は、（本実施例においては）原則として、図１の相互接続装置１２に接続された装置のいずれかとすることができる。以下にさらに詳しく説明するように、ターゲット装置（例えば、マスター装置及び／又はそのキャッシュ）は、上記キャッシュ事前入力トリガの受信に応じて、そのキャッシュ事前入力トリガに特定された少なくとも一つのデータ項目を読み出して、そのキャッシュに一時的に記憶することを要求することを選択してもよい。他の例では、ターゲット装置は、図１に示すようなメモリ２２、２４などのスレーブ装置である。そのため、キャッシュ事前入力トリガによって、これらのスレーブ装置のいずれか一つに、キャッシュ事前入力要求に特定された少なくとも一つのデータ項目がシステム内の任意の場所、例えば、メモリとコヒーレント相互接続装置との間の経路、コヒーレント相互接続装置、そのコヒーレント相互接続装置に対応する記憶装置に保存されるように、もしくは、コヒーレント相互接続装置１２によって、キャッシュを構成するマスター装置のいずれかに転送されるように、その少なくとも一つのデータ項目のコピーを返送させることができる。
【００３０】
従って、図２に示すように、ハブ装置は、そのインタフェース回路１４を介して、システムキャッシュ２８とスレーブ記憶装置４０（つまり、図１に示すメモリ２２又は２４のいずれかであればよい）の両方に接続されている。ハブ装置１２には、例えば、要求マスター装置から受信したキャッシュ事前入力要求によってターゲット装置が特定されない場合に、トランザクション制御回路１６が参照可能なデータアクセスパターンストレージ４２がさらに備えられている。トランザクション制御回路は、このデータアクセスパターンストレージ４２に記憶されたデータアクセスパターンに基づいて、キャッシュ事前入力トリガを送信すべき適切なターゲット装置を決定できるようにすればよい。データアクセスパターンストレージ４２は、さまざまな種類のデータを記憶するようにしてもよいが、本実施例では、アドレスの範囲と、それらのアドレスへのアクセスがいつ行われたかをそのアクセスを行ったマスター装置と共に示すものが含まれるものとする。よって、トランザクション制御回路は、所定のデータ項目を（そのメモリアドレスによって）特定するキャッシュ事前入力要求を受信すると、データアクセスパターンストレージ４２に記憶されたアドレスの範囲を参照して、そのデータ項目に最近アクセスしたマスター装置を示すものが記憶されているかどうか、ひいては、キャッシュ事前入力トリガが送信されるターゲット装置となるのにふさわしい候補を示すものであるかどうかの判定を行うことができる。
【００３１】
一方、図２に示すトランザクション制御回路１６は、スヌープフィルタ回路４４へも参照を行い、そこに記憶された情報を、そもそもターゲット装置へのキャッシュ事前入力トリガの転送を行うかどうか、及び／又は、（受信した要求に特定されていない場合）どのターゲット装置がそのキャッシュ事前入力トリガを受信すべきかの判定に利用することができる。コヒーレント相互接続装置内にスヌープフィルタを設けることは、当業者に知られているので、ここでは、単に簡略化のため、その詳細な説明を省略する。しかしながら、システム内のさまざま場所にキャッシュされたデータ項目を示す記憶された指標やそれらの項目のコヒーレンシ状態がスヌープフィルタ回路に含まれる場合、この情報は、例えば、受信したキャッシュ事前入力要求がターゲット装置を特定し、この特定されたターゲット装置が少なくとも一つのデータ項目の有効なコピーをすでに保持していることが、スヌープフィルタ回路にある情報によって示される本技術においては、トランザクション制御回路によって利用される。そして、そのターゲット装置には、キャッシュ事前入力トリガを送る必要がないものと考えられる。他の例では、キャッシュ事前入力要求内のデータ項目の特定のコヒーレンシ状態が、システム内の別のキャッシュに格納され、スヌープフィルタ回路４４に記録されたデータ項目のキャッシュコヒーレンシ状態と適合しない場合、ターゲット装置にはキャッシュ事前入力トリガが送られないようにしてもよい。例えば、キャッシュ事前入力トリガが（アクションが行われた場合に）少なくとも一つのデータ項目に「唯一の」状態を持たせるべきであることがキャッシュ事前入力要求によって特定されるが、そのデータ項目が別の場所で“唯一”のものとしてすでに記憶されていることがスヌープフィルタのコンテンツによって示される場合、特定のターゲット装置によるデータ項目の唯一のコピーに対する要求にはその時点では応えられないので、そのターゲット装置へのキャッシュ事前入力トリガの送信は行われない。最後に、トランザクション制御回路１６は、ハブ装置１２が、システム内の他の装置間の移行部にあるデータ項目のコピーを一時的に保持できるようにするバッファ１６をさらに備えて示されている。
【００３２】
図３は、上記ターゲット装置、すなわち、キャッシュ事前入力トリガの受信者の例であるマスター装置５０を概略的に示す。このマスター装置５０は、インタフェース回路５２を備え、それを介して、コヒーレント相互接続装置を通じて、システムの他の構成要素とコヒーレンシ・プロトコル・トランザクションの交換を行う。マスター装置５０内には、一般的には、キャッシュストレージ５４とその関連するキャッシュコントローラ５６を備えて図示されているキャッシュが示されている。しかしながら、図３に示すように、要素５６は、実際には、インタフェースコントローラとして備えられてもよく、インタフェース回路５２を介して受信したキャッシュ事前入力トリガの処理は、キャッシュコントローラ又はインタフェースコントローラによって行われてもよい。いずれにしろ、図示の実施例では、このコントローラは、アクセスパターンストレージ５８とヒューリスティックストレージ６０とを備えている。基本的に、キャッシュに関連する制御部は、キャッシュ事前入力トリガを受信すると、そのトリガに対してアクションを行い、特定の一つ又は複数のデータ項目をシステムの他の場所から読み出して、キャッシュストレージ５４に記憶する要求を発行するかどうかを決定する。この意思決定処理は、階層的に実施可能であり、その第１決定レベルでは、コントローラは、受信した（コヒーレンシ・プロトコル・トランザクションとしての）特定のキャッシュ事前入力トリガに対してキャッシュが応答可能であるかどうかを判断する。そうでない場合、この処理は単にその時点で終了する。意思決定の次のレベルでは、コントローラは、提案された一つ又は複数のデータ項目を収容するために、キャッシュがその時点でビジー過ぎる又は空き領域（もしくは、少なくとも退去させる意思があるキャッシュビクティム）を有していないかどうかを判断することができる。そして、最後に、コントローラは、そのアクセスパターンストレージ５８及び／又はヒューリスティックストレージ６０を参照して、キャッシュ事前入力トリガに応答するかどうかを判断することができる。アクセスパターンストレージ５８には、現在このマスター装置で行われている処理に基づき、現在の又は次のスレッドによって近い将来アクセスされることが予想されるアドレスの範囲に、特定された一つ又は複数のデータ項目が含まれるかどうかをコントローラが判断できるよう、例えば、スレッドやそれらのスレッドがアクセスするアドレスの表を含むことができる。その代わり又はそれに加えて、アクセスパターンストレージには、アドレスの範囲と、特定のメモリアドレス又はメモリアドレスの範囲が最近いつアクセスされたかを示す関連する時間的指標の範囲を記憶してもよい。そして、コントローラは、それに基づき、少なくとも一つのデータ項目を積極的にキャッシュに取り込むことが価値があると見なされるかどうかを判断することができる。一方、ヒューリスティックスストレージ６０は、統計に基づき、（一般的な又は特定のアドレスやアドレス範囲に対する）トリガ要求への肯定応答によって、どのくらいの頻度でマスター装置に有用なキャッシュしたデータ項目が得られたか（すなわち、そのデータ項目がマスター装置によって要求される少し前にキャッシュに記憶されたこと）を示すよう構成することができる。これらの指標は、所定の受信したキャッシュ事前入力トリガに応答するか否かについての判断を行うために、コントローラ内で規定された閾値に対するガイドとなることができる。
【００３３】
図４は、本技術に係るデータ処理システムのいくつかの構成要素と、それらの相互関係を示し、それらのいくつかのシステムの構成要素が互いにどのように作用し合うかの全体的な原理を示す。このシステムにおいて、要求マスター７０は、ハブ装置（相互接続装置）７２に送信されるキャッシュ事前入力要求を発行する。この例におけるキャッシュ事前入力要求は、ターゲットマスターを特定する。ハブ装置７２は、キャッシュ事前入力要求を受信すると、特定されたターゲットを確認し、キャッシュ事前入力トリガをそのターゲットに送信する。図４に示す例では、ターゲットマスター７４がそれ自身のＬ１キャッシュ７６を備えている。それに応じて、（図３で説明した上記例に関して）ターゲットマスターは、そのキャッシュ事前入力トリガに対して応答するか否かを判断する。応答する場合、対応するデータ要求をハブ装置７２に返送する。このデータ要求に応えて、ハブ装置７２は、そのローカルにアクセス可能なシステムキャッシュ７８から、もしくは、データ要求をスレーブ記憶装置８０に送信し、そこから特定のデータをハブ装置に送り返すことにより、そのデータを取り込むことができる。また、ハブ装置７２は、要求されたデータ項目のコヒーレンシ状態によっては、同様にそれ自身のローカルキャッシュ８４を備えた、システム内の（少なくとも一つの）他のマスター装置８２にスヌープ要求を送信してもよい。それに応じて、この他のマスター装置は、ハブ装置７２がターゲットマスター７４から受信したデータ要求にどのように応答するかについて判断する際に考慮に入れることができるスヌープ応答を提供する。このようにして、最終的に、スレーブ装置からのデータの読み出しと上記他のマスターからのスヌープ応答が許容された場合、ハブ装置７２からターゲットマスター７４のキャッシュ７６へとデータ転送が行われる。
【００３４】
図５は、一例におけるコヒーレント相互接続システムの装置間で行われる一連の通信（コヒーレンシ・プロトコル・トランザクション）の例を示す。この具体例では、要求マスターが、「ＷｒｉｔｅＵｎｉｑｕｅ」として分類され、ターゲットマスター装置を特定するキャッシュ事前入力要求であるトランザクションをホームノード（ハブ装置）に送信する場合を示す。英国、ケンブリッジにあるＡＲＭ（登録商標）社が提供するＡＭＢＡ（登録商標）仕様のこの用語は、当業者であれば認識するであろう。従って、本開示では、このトランザクションを説明する基準として既知の用語を利用して当業者による理解を容易にしているが、本開示では、本明細書で初めて提示される技術によって（すなわち、キャッシュ事前入力要求を実現するために）そのようなトランザクションの拡張を行っていることに留意することが重要である。それに応じて、ホームノードは、現時点で（この書き込み要求で要求マスターによって特定された）データを受信する空き領域がない場合を除き、処理継続の肯定応答を要求マスターに送信する。また、ホームノードは、そのキャッシュ事前入力要求に特定された一つ又は複数のデータ項目を特定するキャッシュ事前入力トリガをターゲットマスターに送信し、システム内の（少なくとも一つの）他のマスターに「ＳｎｏｏｐＵｎｉｑｕｅ」を発行する。それに対し、この他のマスターは、対応するスヌープ応答で対応する。そして、ターゲットマスターは、このキャッシュ事前入力トリガに応えて、（そのトリガメッセージを正常に受信したことを示す）トリガ肯定応答を発行し、図５の例では、そのトリガに対してアクションを行うことを決めて、ホームノードに「ＲｅａｄＵｎｉｑｕｅ」データ要求をさらに発行する。要求マスターは、この処理継続の肯定応答をホームノードから受信すると、ホームノードへの特定された一つ又は複数のデータ項目のデータ転送を開始する。ホームノードは、すべてのスヌープ応答の受信が完了すると、キャッシュ事前入力要求に関するアクションが完了したことを示す完了応答を要求マスターに発行する。さらに、ホームノードは、要求マスターからのデータを受信すると、ターゲットマスターへのデータ転送を開始し、ターゲットマスターは、それに対して転送肯定応答で応える。このように、要求マスターによってそのＷｒｉｔｅＵｎｉｑｕｅで特定された一つ又は複数のデータ項目は、ホームノードに転送され（必要に応じてそこからメモリに書き出されてもよい）、さらにこのデータもターゲットマスターがそのキャッシュの事前入力を行うために提供される。
【００３５】
図６は、要求マスターが、ターゲットマスターを特定するが、データは提供しない「ＲｅａｄＯｎｃｅＳｈａｒｅ」トランザクションとして分類される読み出しトランザクションのプロトコルに基づき、キャッシュ事前入力要求を発行する場合の例におけるシステムの構成要素間の通信例を示す。上述したように、この場合もやはり、このトランザクションを説明する基準として既知の用語を利用することは、単に当業者による技術の理解を容易にするためであるが、本開示では、本明細書で初めて提示される技術によって（すなわち、キャッシュ事前入力要求を実現するために）そのようなトランザクションの拡張を行っていることに留意することが重要である。ホームノードは、このタイプのキャッシュ事前入力要求を受信すると、特定されたターゲットマスターに送信するキャッシュ事前入力トリガを生成し、図示の例では、特定のデータが記憶されるスレーブ装置に対して「ＲｅａｄＮｏＳｎｏｏｐ」トランザクションをすでに推測により発行している。なお、この読み出しは、ターゲットマスターが実際にトリガに対する応答やデータ要求を行うかどうかはまだ分からないので、推測による読み出しではあるが、そのような推測による読み出しによってレイテンシを削減することができる。そして、ターゲットマスターは、キャッシュ事前入力トリガの受信に応じて、トリガ肯定応答をホームノードに発行し、そのトリガに対するアクションを行うことを選択した場合、「ＲｅａｄＳｈａｒｅｄ」トランザクションをホームノードに発行する。これとほぼ同時に、ホームノードは、ターゲットマスターへのキャッシュ事前入力トリガの発行が完了すると、完了信号によって、要求マスターへのキャッシュ事前入力要求トランザクションに対する肯定応答も行う。スレーブ装置は、ＲｅａｄＮｏＳｎｏｏｐに応じて、要求されたデータをホームノードに転送し、ホームノードは、そのデータを受信すると、ターゲットマスターへと転送する。最終的に、ターゲットマスターは、そのデータの受信（及びそのキャッシュへのデータの入力）が完了すると、転送完了肯定応答をホームノードに発行する。
【００３６】
図７は、要求マスターが、ターゲット装置を特定せず、特定の一つ又は複数のデータ項目も提供しないキャッシュ事前入力要求を発行する例を示す。ホームノードは、そのようなキャッシュ事前入力要求に応じて、特定の一つ又は複数のデータ項目の場所を特定し、「ＲｅａｄＮｏＳｎｏｏｐ」を対応するスレーブ装置（データストレージ）に発行する。次に、ホームノードは、そのキャッシュ事前入力要求に対するアクションが行われたことを示す完了肯定応答を要求マスターに発行する。そして、このスレーブデータ記憶装置から返送されたデータを、システム構成やその現時点での要件に応じて、システム内のさまざまなストレージ構成要素に入力してもよい。一般的に、かつ、図７に示すように、スレーブ装置は、ＲｅａｄＮｏＳｎｏｏｐ要求に応じて、要求されたデータをホームノードに変装する。しかしながら、図７に示すように、システムには、スレーブ装置とホームノードの間に介在するさまざまな中間ストレージ（キャッシュやバッファ）が含まれることもあり、返送されるデータはそのような中間ストレージに入力されてもよい。この中間ストレージは、その後、ホームノードに転送の完了を伝える（そして、データはそれ以上送信されない）。しかしながら、ホームノードがデータ転送のターゲットである場合、ホームノードは、データをローカルに、例えば、関連するシステムキャッシュに保存することを選択してもよい。特定のシステム構成によっては、ホームノードは、その代わりに又はそれに加えて、この処理全体の完了を伝えてもよい。データが中間記憶装置に保存されても、ホームノードに関連する記憶装置に保存されても、トランザクションが完了すると、これを示す信号が要求マスターに返送されてもよい。
【００３７】
図８は、一実施例の方法において、コヒーレント相互接続システムのホームノードで行われる一連の工程を示す。このフローは、ステップ１００で、キャッシュ事前入力要求の形態を取るコヒーレンシ・プロトコル・トランザクションをホーム（ハブ）ノードが受信することで開始する。次に、フローはステップ１０２へと進み、この要求が書き込みトランザクションの形態であるか否かの判定をハブが行う。もしそうであれば、フローはステップ１０４へと進み、その要求にターゲット装置が特定されているかどうかを判断する。その場合、フローはステップ１０６へ進み、ハブがその特定されたターゲット装置にキャッシュ事前入力トリガを送信し、それに続くステップ１０８で、スヌープ要求をシステムのその他のキャッシュに送信する。これらの他のキャッシュは、スヌープ応答を提供し、フローは、任意の部分的なキャッシュラインをマージして、ハブ内で一時的にバッファリングされた完全なキャッシュラインを形成することを含め、そのスヌープ応答が全て受信されるまでステップ１１０でループする。それが完了すると、フローはステップ１１２へ進み、ターゲットが、キャッシュ事前入力トリガの受信に応じて、特定のデータを要求したかどうかを判定する。そうでない場合、フローはそのままステップ１１４で終了する。一方、そうである場合は、フローはステップ１１６へと進み、ハブがその特定のデータを特定のターゲットに転送し、ステップ１１８でフローが終了する。
【００３８】
ステップ１０４の考察に戻り、書き込みトランザクションが、キャッシュ事前入力要求のターゲットを特定しない場合、ハブは、ステップ１２０で、適切なターゲットを特定できるかどうかを判定する。これは、上記データアクセスパターンストレージ及び／又はスヌープフィルタを参照することにより行われてもよい。特定しないことを選択した（又は特定できない）場合、フローはステップ１２２へと進み、ハブは、（上記図７で説明したような）中間記憶装置や、システムキャッシュなどのハブのローカルストレージにデータが保存されたスレーブ記憶装置からデータを読み出し、ステップ１２４でフローが終了する。
【００３９】
ステップ１２０の考察に戻り、ハブがターゲットの特定を行う場合、フローはステップ１２６へ進んで、ハブがキャッシュ事前入力トリガをそのターゲットに送信し、その後（上記のように）ステップ１１２へと進む。
【００４０】
次に、ステップ１０２の考察に戻り、キャッシュ事前入力要求が書き込みトランザクションではないと判断した場合、フローはステップ１２８へ進んで、その要求にターゲットが特定されているかどうかを判断する。そうでないと判断された場合、フローはステップ１３０へ進んで、（上記のように）ハブがターゲットの特定を行ってもよい。ハブは、ターゲットの特定を行わない場合、データが記憶されたスレーブ記憶装置から中間記憶装置又はシステムキャッシュへと（ステップ１２２で説明したのと同じ方法で）単にデータの読み出しを行う（ステップ１３２）。そして、フローはステップ１３４で終了する。一方、ステップ１３０でハブがターゲットの特定を行える又は選択した場合、フローはステップ１３６へ進んで、ハブは特定のデータが記憶されたスレーブ記憶装置からそのデータの読み出しを開始する。そして、フローは（上記のように）ステップ１２６へと進む。
【００４１】
次に、ターゲットが特定された場合のステップ１２８の考察に戻り、フローはステップ１３８へ進み、ハブ装置は、そのスヌープフィルタが、データの有効なコピーが現時点で特定のターゲットに保持されていないことを示しているかどうかを判定する。もしそうである場合、（上記のように）フローはステップ１３６へと進む。一方、スヌープフィルタが、特定の一つ又は複数のデータ項目のコピーが特定のターゲットに保持されていることを示している場合、ステップ１４０で、キャッシュ事前入力要求が「唯一」タイプのものであるか、「共有」タイプのものであるかを判定する。要求が「共有」タイプのものである場合、フローはステップ１４２で終了する。一方、要求が「唯一」タイプのものである場合、ステップ１４４で、そのターゲットにデータが「共有」コヒーレンシ状態で保存されているかどうかを判定し、そうである場合、（上記のように）フローはステップ１３６に進む。これにより、ターゲットは、コピーを「共有」状態で有しているにもかかわらず、対応するキャッシュライン（すなわち、特定の一つ又は複数のデータ項目）を「唯一」状態で得ることができる。一方、ステップ１４４でターゲットがデータを「唯一」状態で保持していると判断した場合、フローはステップ１４６で終了する。
【００４２】
全体を簡潔にまとめると、コヒーレント相互接続システムにおいて、ハブ装置を操作する装置と対応する方法、及び、ターゲット装置が提示されている。このシステムにおける一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力要求を、少なくとも一つのデータ項目を特定する要求マスター装置から受信し、ハブは、その少なくとも一つのデータ項目を特定する一連のコヒーレンシ・プロトコル・トランザクションのキャッシュ事前入力トリガをターゲット装置に送信することにより応答する。このトリガによって、ターゲット装置は、特定された少なくとも一つのデータ項目がキャッシュに読み出され送られることを要求することができる。ターゲット装置は、そのトリガに応答するか否かを判断することができるので、一方的に送りつけられるキャッシュしたデータを受信することがなく、一部のデータの事前キャッシュを可能にしつつも、その構成の簡略化が図られる。
【００４３】
本出願において、「するよう構成された」又は「するよう配置された」という表現は、装置の要素が規定の動作を実行可能な構成を有することを意味するのに用いられる。これに関連して、「構成」とは、ハードウェアやソフトウェアを相互に接続する配置や方法を指す。例えば、装置は、規定の動作を行うための専用のハードウェアを有していてもよいし、プロセッサや他の処理装置は、その機能を実行するようプログラムされていてもよい。「するよう構成された」又は「するよう配置された」は、規定の動作を行うために、装置の要素に対して何らかの変更を加える必要があることを意味するものではない。
【００４４】
以上、本発明の例示的な実施例について、添付の図面を参照しながら詳細に説明したが、本発明はこれらの具体的な実施例に限定されるものではなく、当業者なら、添付の特許請求の範囲に記載の本発明の範囲から逸脱することなく、さまざまな変更、追加、修正を加えることができることを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項の特徴と独立請求項の特徴とをさまざまに組み合わせることができる。
【図１】
2018129042.tif 000003
【図２】
2018129042.tif 000004
【図３】
2018129042.tif 000005
【図４】
2018129042.tif 000006
【図５】
2018129042.tif 000007
【図６】
2018129042.tif 000008
【図７】
2018129042.tif 000009
【図８】
2018129042.tif 000010
【外国語明細書】
2018129042000001.pdf