JP5941168B2 - 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法 - Google Patents

第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法 Download PDF

Info

Publication number
JP5941168B2
JP5941168B2 JP2014559873A JP2014559873A JP5941168B2 JP 5941168 B2 JP5941168 B2 JP 5941168B2 JP 2014559873 A JP2014559873 A JP 2014559873A JP 2014559873 A JP2014559873 A JP 2014559873A JP 5941168 B2 JP5941168 B2 JP 5941168B2
Authority
JP
Japan
Prior art keywords
request
write
snoop
protocol domain
protocol
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
JP2014559873A
Other languages
English (en)
Other versions
JP2015512102A (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 JP2015512102A publication Critical patent/JP2015512102A/ja
Application granted granted Critical
Publication of JP5941168B2 publication Critical patent/JP5941168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

本発明はデータ処理の分野に関する。具体的には、本発明は書き込み要求およびスヌープ(snoop)要求を取り扱うための異なるプロトコルを有する、第1および第2のプロトコルドメインを備えるデータ処理装置に関する。
データ処理装置は、多数の場所において、同一データの異なるバージョンを記憶し得る。例えば、2つのデバイスはそれぞれがローカルキャッシュを有し得、そして各キャッシュはメモリ内の同一アドレスに関連付けられたデータの各バージョンを同時に保持し得る。一貫性プロトコル(例えば、MESIプロトコル)は、同一データの多数のバージョンの一貫性(consistency)を確保するために使用され得る。一貫性プロトコルは、一貫性を維持するために書き込み要求およびスヌープ要求を使用し得る。例えば、データ値のローカルバージョンを記憶するデバイスは、ローカルバージョンがメモリ等の別の場所に書き込まれることを要求するために、書き込み要求を発行し得る。他のデバイスは、次に、他の場所から更新されたローカルバージョンにアクセス可能である。代替的に、デバイスが特定データ値に対するアクセスを必要とする場合には、デバイスがデータのローカルバージョンを記憶しているかどうかをチェックするために、他のデバイスに対してスヌープ要求を発行し得、そしてもしそうであれば、ローカルバージョンへのアクセスを要求する。この故に、書き込み要求およびスヌープ要求を使用して、データの一貫性を維持することが可能である。
1つの態様から見ると、本発明はデータ処理装置を提供し、本データ処理装置は、
第1のプロトコルドメインおよび第2のプロトコルドメインであって、書き込み対象アドレスと関連付けられたデータのローカルバージョンが別の場所に書き込まれることを要求するための書き込み要求を発行し、そしてスヌープ対象アドレスと関連付けられたデータのローカルバージョンへのアクセスを要求するためのスヌープ要求を受け取るように構成された少なくとも1つのデバイスをそれぞれが備える、第1のプロトコルドメインおよび第2のプロトコルドメインと、
前記第1のプロトコルドメインと前記第2のプロトコルドメインとの間で前記書き込み要求および前記スヌープ要求を転送するように構成されたブリッジと、を備え、
前記第1のプロトコルドメインが書き込み進行プロトコルの下で動作するように構成され、書き込み進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求のための前記スヌープ対象アドレスと同一である場合には、前記未解決スヌープ要求は、前記未解決書き込み要求がサービスされるまで阻止(block)され、
前記第2のプロトコルドメインがスヌープ進行プロトコルの下で動作するように構成され、スヌープ進行プロトコルの下で、未解決(pending)書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決書き込み要求は、前記未解決スヌープ要求が(service)されるまで阻止され、
前記ブリッジは、前記第1のプロトコルドメインから前記第2のプロトコルドメインへ発行された未解決書き込み要求に関する前記書き込み対象アドレスは、前記第2のプロトコルドメインから前記第1のプロトコルドメインへと発行された未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である、デッドロック条件を検出するように構成され、
前記ブリッジは、選択された要求がサービスされるのを待つことなく、前記選択された要求に対して、前記デッドロック条件の検出時に、早期応答を発行するように構成され、前記選択された要求は前記未解決書き込み要求または前記未解決スヌープ要求を含み、前記早期書き込み応答は、前記選択された要求がサービスされたことを、前記選択された要求を発行した前記発行プロトコルドメインに対して示す。
スヌープ要求および書き込み要求が同一対象アドレスに対して未解決の場合には、スヌープ要求によってアクセスされるデータの状態は、スヌープ要求をサービスする時点で書き込み要求がすでにサービスされていたかどうかに依存して、異なることがあり得る。それ故、書き込み要求およびスヌープ要求のどちらが最初にサービスされるかを判定するために、異なるプロトコルは異なる規則を規定し得る。スヌープ進行プロトコルにおいて、未解決書き込み要求は未解決スヌープ要求がサービスされるまでは足止め(stall)させられ、一方、書き込み進行プロトコルにおいては、未解決スヌープ要求は書き込み要求がサービスされるまで足止めさせられる。
本技法は、書き込み進行プロトコルを使用する第1のプロトコルドメインおよびスヌープ進行プロトコルを使用する第2のプロトコルドメインを有する装置において、デッドロック条件が発生する可能性のあることを認識する。第1のプロトコルドメインから第2のプロトコルドメインに発行された未解決書き込み要求の書き込み対象アドレスが、第1のプロトコルドメインへ第2の処理によって発行された未解決スヌープ要求のスヌープ対象アドレスと同一である場合には、デッドロック条件が発生する。この状態においては、第1のプロトコルドメインは、書き込み進行プロトコルに従い、未解決書き込み要求がサービスされるまでは未解決スヌープ要求を足止めさせる。しかしながら、スヌープ進行プロトコルに従い、未解決スヌープ要求がサービスされるまで第2のプロトコルドメインは未解決書き込み要求を足止めするため、未解決書き込み要求はサービスされることができない。この故に、各プロトコルドメインは他のプロトコルドメインを待ち、未解決書き込み要求および未解決スヌープ要求の両方がサービスされるのを妨げる。
この問題に取り組むため、第1および第2のプロトコルドメインを接続するブリッジは、デッドロック条件が生じたかどうかを検出し得る。デッドロック条件が検出された場合は、ブリッジは、要求がサービスされるのを待たずに、未解決書き込み要求または未解決スヌープ要求に対する早期応答を発行し得る(早期応答が発行された要求は「選択された要求」として参照される)。早期書き込み応答は、選択された要求を発行した発行プロトコルドメインに対し、たとえ選択された要求が実際にはサービスされていなくても、選択された要求がサービスされたことを示す。選択された要求は発行プロトコルドメインからみるとサービスされたように見えるため、未解決書き込み要求および未解決スヌープ要求の他方はもはや阻止されず、従って、発行プロトコルドメインは現在は他の要求にサービスすることが可能である。この故に、デッドロックは解決されることが可能である。
書き込み要求は、書き戻し要求または書き込みクリーン要求を含み得る。書き戻し要求を発行するデバイスは、別の場所に書き戻されているデータのローカルバージョンを無効化する。故に、デバイスはデータに対する排他的アクセスをもはや有せず、他のデバイスがデバイスのチェックなしでデータに今やアクセスし得る。
他方、書き込みクリーン要求を発行するデバイスは、他の場所に書き戻されているデータに対する排他的アクセスを保有し得る。データのローカルバージョンは、書き込みクリーン要求を発行したデバイスによってしばしば保有され得る。しかしながら、いくつかの機会においては、デバイスはキャッシュ内のデータを無効化し、別のデバイスがデータの対応するバージョンを記憶しているかどうかをチェックするためにスヌープ要求を発行する必要なく、データがキャッシュに再び取り込まれる(re-fetched)のを許可する排他的アクセスを保有しても良い。デバイスが排他的アクセスを保有する一方、別のデバイスがデータのローカルバージョンを記憶することを希望する場合には、他のデバイスはデータへのアクセスを要求するために、そのデバイスに対してスヌープ要求を発行するであろう。
ブリッジがデッドロックの阻止解除を行うために早期応答を発行した後、発行プロトコルドメインは、そのために早期応答が発行された選択された要求と同一の対象アドレスを対象とする別の選択された要求を発行することが可能である。例えば、選択された要求が未解決書き込み要求である場合には、第1のプロトコルドメインは同一の対象アドレスに関する別の書き込み要求を発行可能であり、そして選択された要求が未解決スヌープ要求である場合には、第2のプロトコルドメインが同一の対象アドレスに関する別のスヌープ要求を発行できる。別の選択された要求を発行された場合には、新しく選択された要求は、デッドロック条件の再発生の原因となるもう一度の他の要求の処理を阻止する。これは書き込みクリーン要求およびスヌープ要求については特に問題である。何故ならば書き込みクリーン要求またはスヌープ要求を発行するデバイスは、書き戻し要求を発行するデバイスよりも、同じ対象アドレスに対してさらなる書き込み要求を発行する可能性が高いからである。
この問題を解決するために、ブリッジは、選択された要求に対する早期応答を発行した後、別の選択された要求が発行プロトコルドメインによって発行されたかどうかを検出し、そしてもしそうであれば、発行プロトコルドメインに対して別の早期応答を発行し得る。ブリッジは、発行プロトコルドメインが同一対象アドレスに関する別の選択された要求を発行するごとに、早期応答を発行し続けることができ、他の要求が他のプロトコルドメインによってサービスされうることを保証する。
発行プロトコルドメインは、同一アドレスを標的とする最大M個(Mは整数)の連続した選択された要求を発行するように構成され得る。それ故、結局は、発行プロトコルドメインは同一対象アドレスを対象とする別の選択された要求の発行を停止し、他の要求が他のプロトコルドメインによってサービスされるのを許可する。
選択された要求が未解決書き込み要求の場合には、検出されているデッドロックに対する応答として、ブリッジは第1のプロトコルドメインに早期書き込み応答を発行し、書き込み要求が第2のプロトコルドメインにおいてサービスされたことを示し、スヌープ要求が第1のプロトコルドメインにおいてサービスされることを許可する。一旦スヌープ要求がサービスされると、第2のプロトコルドメインはスヌープデータを含むスヌープ応答を発行し得る。スヌープ応答を受け取ると、ブリッジはスヌープ応答と関連付けられたスヌープデータと未解決書き込み要求と関連付けられた書き込みデータを合併し、そして合併されたデータを第2のプロトコルドメインへ送信し得る。書き込みデータをスヌープデータと合併することにより、スヌープ応答を使用して書き込み要求に応答して書き込まれたであろうデータを取得可能であり、したがって、第2のプロトコルドメインが、デッドロック条件の原因となる未解決書き込み要求を別々に処理する必要はない。これは、デッドロックの解決に続き、第2のプロトコルドメインにおいて他の要求の取り扱いをスピードアップさせる。
選択された要求は、デッドロックが検出された未解決書き込み要求または未解決スヌープ要求のいずれかであり得る。いくつかの実施形態では、ブリッジは、デッドロック条件が検出されるごとに、選択された要求の新しい選択を行い得る。
例えば、ブリッジは、ブリッジによって選択された要求として最も後で検出された未解決書き込み要求および未解決スヌープ要求の1つを選択し得る。この手法は、後の要求の発行はより早期の要求の取り扱われ方に影響することができないことを意味する。何故ならばより後の要求に対する早期応答は、より後の要求に対してより早い要求のために道を譲るように強いるからであり、より早い要求が正常に処理されることを許可する。
他の実施形態では、選択された要求は、デッドロックが検出された未解決スヌープ要求および未解決書き込み要求の事前決定された1つであり得る。例えば、ブリッジは、デッドロックを解決して未解決スヌープ要求が第1のプロトコルドメインによってサービスされることを許可するために、第1のプロトコルドメインに対する早期書き込み応答を常に発行し、または、未解決書き込み要求が第2のプロトコルドメインによってサービスされることを許可するために、第2のプロトコルドメインに対して早期スヌープ応答を常に発行しても良い。
デッドロック条件の検出は、多数のやり方で達成し得る。例えば、ブリッジそれ自身は、第2のプロトコルドメインから発行されたスヌープ要求および第1のプロトコルドメインから発行された書き込み要求の対象アドレスを監視し、そしてアドレス一致が発見されたときはデッドロック条件をトリガー(trigger)することによってデッドロックを検出し得る。
代わりに、第1および第2のプロトコルドメインのうちの1つはデッドロック条件を検出し、そして、デッドロック条件が検出された場合には、信号をブリッジに対して発行してもよい。信号に応答して、ブリッジはデッドロック条件を検出し、そして選択された要求に対して早期応答を発行する。この故に、ブリッジ自体がスヌープ要求のアドレスと書き込み要求のアドレスとの間の衝突を実際に同定することは必須ではない。用語「検出する」は、ブリッジが別のデバイスからデッドロックが生じたことを示す信号を受け取ることを包含し得る。
ブリッジは、第2のプロトコルドメインから第1のプロトコルドメインに対して発行された未解決スヌープ要求を待ち行列に入れるためのスヌープ待ち行列を維持し得る。いくつかのシステムでは、第1および第2のプロトコルドメインの少なくとも1つは発行された順番で未解決スヌープ要求にサービスする。そのようなシステムでは、スヌープ待ち行列内の最も古い未処理スヌープ要求が阻止された場合には、他のスヌープ要求は、それより後のスヌープ要求に関連付けられた対象アドレスがたとえ未解決書き込み要求によってデッドロックとならない場合であってもサービスされえない。この故に、ブリッジはスヌープ待ち行列内の最も古い未処理スヌープ要求に関連付けられたデッドロック条件の解決を優先させ得る。例えば、スヌープ待ち行列が複数の未解決スヌープ要求を含む場合には、ブリッジはまだスヌープ応答を受け取っていないスヌープ待ち行列内の最も古いスヌープ要求に関するデッドロック条件の検出のみに対する早期応答を発行する(早期応答は、どの要求が選択された要求であるかに基づき、最も古いスヌープ要求に応答して、あるいは最も古いスヌープ要求と衝突する書き込み要求に応答して発行されるであろう)。
ブリッジは、第1のプロトコルドメインから第2のプロトコルドメインへ発行された未解決書き込み要求をバッファリングするための書き込みバッファを有し得る(いくつかの実施形態では、バッファは反対方向に移動している書き込み要求もバッファリングし得る)。いくつかの例では、バッファは実際に未解決書き込み要求を記憶し、一方他の例では、バッファは、実際に要求を記憶することなく、未解決書き込み要求を追跡するためのデータを記憶しても良い。
未解決書き込み要求に対して早期応答を発行した後、同一書き込み対象アドレスに関するさらなる書き込み要求が第1のプロトコルドメインによって発行され、そして書き込みバッファは新規書き込み要求をバッファリングするための十分なスペースを有しない場合には、問題が発生する可能性がある。例えば、早期書き込み応答をトリガーした未解決書き込み要求は、バッファ内の最後の入手可能スペースを使用した可能性がある。この事例では、バッファスペースの不足は、さらなる書き込み要求が第1のプロトコルドメインから受付けられることを妨げる可能性があり、したがって、第1のプロトコルドメインの書き込み進行プロトコルは、さらなる書き込み要求が書き込みバッファに受付けられるまで、第1のプロトコルドメインが未解決スヌープ要求の阻止を継続するようにする。
この問題に取り組むために、ブリッジはさらなる書き込み要求を同一の対象アドレスに関して未解決書き込み要求と合併させ、両方の書き込み要求がバッファリングされることを許可し得る。合併された書き込み要求は、合併された要求と関連付けられたデータがもともとの未解決書き込み要求とさらなる書き込み要求とを順番に実行することによるデータと同一となり得る。同一アドレスを対象とする書き込み要求を合併することにより、さらなる書き込み要求はブリッジによって受付けられることが可能性であり、したがって、さらなる書き込み要求に関する早期書き込み応答を受け取った第1のプロトコルドメインは、未解決スヌープ要求をサービスすることが可能であり、デッドロックを解決する。
書き込みバッファは、衝突(conflicting)未解決スヌープ要求に対するスヌープ応答が第1のプロトコルドメインから受け取られるまで、デッドロック条件が検出された未解決書き込み要求を保有するように準備され得る。このようにして、デッドロックを生じさせた未解決書き込み要求は、スヌープ要求がサービスされるまで、第1のプロトコルドメインによって発行された後の書き込み要求との合併のために有用であり続ける。
書き込み要求の合併は、デッドロック条件が対象アドレスに関して同定されたかどうかにかかわらず、同一対象書き込みアドレスに関する反復書き込み要求を取り扱うように、書き込みバッファによっても使用され得る。第1のプロトコルドメインが同一書き込み対象アドレスに関して2つの連続する書き込み要求を発行する場合は、それらはバッファ内のスペースを節約するために合併されることが可能である。
第1のプロトコルドメインは第2のプロトコルドメインに対して発行された最大N個の整数の未解決書き込み要求を取り扱うように構成され得、書き込みバッファは第1のプロトコルドメインから第2のプロトコルドメインへ発行された少なくともN個の未解決書き込み要求をバッファリングするための容量を有しても良く、Nは整数である。少なくとも第1のプロトコルドメインによって一度に取り扱われることが可能な数の書き込み要求に関するバッファ容量を提供することにより、バッファはブリッジが入来(incoming)スヌープ要求のスヌープ対象アドレスを、デッドロック条件を検出するために、第1のプロトコルドメインから発行された各未解決書き込み要求の書き込み対象アドレスと比較できるようにする。
いくつかの例では、装置はブリッジと第1のプロトコルドメインとの間に連結された書き込みステージングバッファを備え得る。書き込みステージングバッファは、第1のプロトコルドメインによって発行された書き込み要求を受け取り得、そして書き込み要求を、書き込みバッファ内に書き込み要求をバッファリングするためのスペースが存在する場合には、ブリッジに渡す。これは、メッセージがブリッジにおいて受け取られることが可能であるがどうかを判定するために、ブリッジと第1のプロトコルドメインとの間で必要とされるハンドシェイク信号伝達の量を削減可能である。
デッドロック条件が検出され、早期書き込み応答が発行されると(すなわち、選択された要求が未解決書き込み要求)、ブリッジは、デッドロックをトリガーさせた未解決書き込み要求を取り消し得る。第2のプロトコルドメインは、書き込み要求を取り扱うために処理資源(例えばバッファエントリ)を予約したかもしれず、したがって、書き込み要求の取り消しはそれらの資源が別の要求に対して再配分されることを可能とし、一方デッドロックは未解決のまま残る。取り消された書き込み要求は、書き込みデータを前述のようにスヌープ応答と合併することによって依然として効果的にサービスされることが可能である。
取り消された書き込み要求は、未解決スヌープ要求に対するスヌープ応答が第1のプロトコルドメインから受け取られるまで、書き込みバッファ内に保持され得、前述のように後の書き込み要求との合併を許可する。
いくつかの実施形態では、ブリッジは第1および第2のプロトコルドメインに対して別の実体であるが、他の実施形態では、ブリッジは、第1または第2のプロトコルドメイン内において、デバイスの一部として実装され得ることが認識されるであろう。
別の態様から見た場合、本発明はデータ処理装置を提供し、本データ処理装置は、
データ処理を実施するための第1のプロトコルドメイン手段および第2のプロトコルドメイン手段であって、それぞれが、書き込み対象アドレスと関連付けられたデータのローカルバージョンが別の場所に書き込まれることを要求するための書き込み要求を発行するための、そしてスヌープ対象アドレスと関連付けられたデータのローカルバージョンへのアクセスを要求するためのスヌープ要求を受け取るための、少なくとも1つのデバイス手段を備える、第1のプロトコルドメイン手段および第2のプロトコルドメイン手段と、
前記書き込み要求および前記スヌープ要求を、前記第1のプロトコルドメイン手段と前記第2のプロトコルドメイン手段との間で転送するためのブリッジ手段と、を備え、
前記第1のプロトコルドメイン手段は書き込み進行プロトコルの下で動作するように構成され、書き込み進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決スヌープ要求は、前記未解決書き込み要求がサービスされるまで阻止され、
前記第2のプロトコルドメイン手段は、スヌープ進行プロトコルの下で動作するように構成され、スヌープ進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決書き込み要求は前記未解決スヌープ要求がサービスされるまで阻止され、
前記ブリッジ手段は、前記第1のプロトコルドメイン手段から前記第2のプロトコルドメイン手段へ発行された未解決書き込み要求に関する前記書き込み対象アドレスが、前記第2のプロトコルドメイン手段から前記第1のプロトコルドメイン手段へ発行された未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である、デッドロック条件を検出するように構成され、
前記ブリッジ手段は、前記デッドロック条件の検出時、前記選択された要求がサービスされるのを待つことなく、選択された要求に対する早期応答を発行するように構成され、前記選択された要求は前記未解決書き込み要求または前記未解決スヌープ要求を含み、前記早期応答は、前記選択された要求を発行した発行プロトコルドメイン手段に対し、前記選択された要求がサービスされたことを示す。
さらなる態様から見た場合、本発明は、第1のプロトコルドメインおよび第2のプロトコルドメインを備え、それぞれが、書き込み対象アドレスと関連付けられたデータのローカルバージョンが別の場所に書き込まれることを要求するための書き込み要求を発行し、そしてスヌープ対象アドレスに関連付けられたデータのローカルバージョンへのアクセスを要求するためのスヌープ要求を受け取るように構成された少なくとも1つのデバイスを備える装置のための方法を提供し、前記第1のプロトコルドメインは書き込み進行プロトコルの下で動作し、書き込み進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決スヌープ要求は、前記未解決書き込み要求がサービスされるまで阻止され、前記第2のプロトコルドメインはスヌープ進行プロトコルの下で動作し、スヌープ進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決書き込み要求は前記未解決スヌープ要求がサービスされるまで阻止され、
前記方法は、
前記第1のプロトコルドメインから前記第2のプロトコルドメインへ発行された未解決書き込み要求に関する前記書き込み対象アドレスが、前記第2のプロトコルドメインから前記第1のプロトコルドメインへ発行された未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である、デッドロック条件を検出するステップと、
前記デッドロック条件の検出時に、前記選択された要求がサービスされるのを待つことなく、選択された要求に対する早期応答を発行するステップであって、前記選択された要求は前記未解決書き込み要求または前記未解決スヌープ要求を含み、前記早期応答は、前記選択された要求を発行した前記発行プロトコルドメインに対し、前記選択された要求がサービスされたことを示す、ステップと、を含む。
本発明のさらなる特定のおよび好ましい態様は、付属独立項および従属項に提示される。従属項の特徴は適する場合には独立項の特徴と組み合され得、特許請求の範囲に明示的に提示されたもの以外の組み合わせもある。
第1および第2のプロトコルドメインを有するデータ処理装置を模式的に図解する。 第1および第2のプロトコルドメインの書き込み進行プロトコルの例を図解する。 第2のプロトコルドメインのスヌープ進行プロトコルの例を図解する。 デッドロック条件の例を図解する。 デッドロック条件を解決するための技法の例を図解する。 検出されるのが最後となる未解決書き込み要求および未解決スヌープ要求の1つに対する早期応答を発行することによってデッドロック条件が解決される例を図解する。 検出されるのが最後となる未解決書き込み要求および未解決スヌープ要求の1つに対する早期応答を発行することによってデッドロック条件が解決される例を図解する。 デッドロック条件を解決する方法を図解する。 書き込みバッファがすでに一杯のときに、デッドロック条件が検出された未解決書き込み要求と同じ対象アドレスに関し、第1のプロトコルドメインが別の書き込み要求を発行した場合に発生し得る問題を図解する。 同じ対象アドレスに関して、他の書き込み要求を未解決要求と合併することにより、図8に示される問題を解決するための技法例を図解する。 図9の例に従って、デッドロック条件を解決する方法を図解する。
図1は、第1のプロトコルドメインA、第2のプロトコルドメインB、および2つのドメインをリンクするブリッジ4を備えるデータ処理装置2を図解する。各プロトコルドメインA、Bは、バス8を介して互いに通信し合ういくつかのデバイス6を備える。デバイス6は、任意の種類の処理デバイスまたは記憶デバイスを備え得、そして主デバイスおよび従属デバイスを含み得る。各ドメインA、Bは、データ値のローカルバージョンを書くための書き込み要求を別の場所に発行し、データのローカルバージョンに対するアクセスを要求するためのスヌープ要求を受け取ることができる、少なくとも1つのデバイスを含み得る。書き込み要求およびスヌープ要求は、同一プロトコルドメインA、B内または異なるプロトコルドメイン内のデバイス間で交換され得る。
ブリッジ4は、1つのドメイン内のデバイスから他のドメイン内のデバイスへ発行されたスヌープ要求を待ち行列に入れるためのスヌープ待ち行列10、1つのドメイン内のデバイスから他のドメイン内のデバイスへ発行される書き込み要求をバッファリングするための書き込み要求バッファ12、そして書き込み要求バッファ12内にバッファリングされる書き込み要求と関連付けられたデータを記憶するための書き込みデータバッファ14を含む。書き込みステージングバッファ16もドメインA、Bの少なくとも1つとブリッジ4との間に、書き込み要求バッファ12によって受付けられることが可能となる前に書き込み要求をステージング(staging)するために提供される。
ブリッジ4は図1において処理ドメインAおよび処理ドメインBから離れているものとして図解されるが、いくつかの実施形態では、ブリッジ4の機能はドメインA、Bの内の1つの中のデバイス6を使用して実装され得ることが認識されるであろう。
第1のプロトコルドメインAは、書き込み進行プロトコルの下で動作する。書き込み進行プロトコルにおいて、書き込み要求が書き込み対象アドレスに関して未解決であり、またスヌープ要求も同一の対象アドレスに関して未解決である場合には、未解決スヌープ要求は、書き込み要求がサービスされるまで阻止される。図2は、書き込み進行プロトコルの下で動作しているドメインAのデバイスの例を示す。デバイスは2つの主デバイス(例えば、プロセッサ)、ならびに従属(slave)デバイスであり得る(例えば、メモリ)一貫性ポイント(POC:point of coherency)、要求が従属デバイスに対して経路決めされるところの相互接続またはバスを含む(いくつかのシステムでは、相互接続またはバスはデータの一貫性管理に関して責任があり−この事例では、相互接続/バスは主デバイスにとっては従属デバイスと見え得る)。
図2において、主デバイス0は、一貫性ポイントに対し、対象アドレスAに関連付けられたローカルデータ値を、一貫性ポイントを介してアクセス可能な対象場所へ書き込むための、書き戻し(WB:Write Back)または書き込みクリーン(WC: Write Clean)要求を発行する。一方、別の主デバイス1からの読み取り要求に応答して、一貫性ポイントは、主デバイス0に対し、同一対象アドレスAに関連付けられたスヌープ要求を発行する。書き込み要求は対象アドレスAに関してすでに応答待ちであるため、スヌープ要求は、書き込みが処理されたことを示す書き込み応答信号が一貫性ポイントから受け取られるまで、主デバイス0によって阻止される。書き込みが処理された後、スヌープ要求は阻止解除され、スヌープ応答が一貫性ポイントに発行され、これは次にスヌープされたデータを主1に送る。
対照的に、第2のプロトコルドメインBはスヌープ進行プロトコルの下で動作し、この場合、スヌープ要求が未解決のときは、スヌープ要求と同じ対象アドレスを対象とする書き込み要求は、スヌープ要求がサービスされるまで停止される。図3は、スヌープ進行プロトコルの下で動作しているドメインB内のデバイスの例を示す。スヌープ要求は、対象アドレスBと関連付けられたデータのローカルバージョンへのアクセスを要求するために、主デバイス0へ発行される。また、主デバイス0は、同一対象アドレスBに関連付けられたデータの点で、一貫性ポイントへ書き込み要求を発行する。スヌープ進行プロトコルに従い、書き込み要求は、アドレスBに関するスヌープ要求が未解決であるため、サービスされることができない。それ故、一貫性ポイントは、スヌープ応答が、主デバイス0によって主デバイス1に対して発行されるまで、書き込みデータに関する要求を延期し得る。主デバイス0は、データ要求が一貫性ポイントから受け取られるまで、書き込みデータを発行することができない。この故に、書き込み要求は、スヌープ要求がサービスされるまで、サービスされることができない。
異なるプロトコルが書き込み要求およびスヌープ要求への異なる対処方法を規定することが認識されるであろう。例えば、書き込み応答、書き込み準備完了、およびスヌープ応答の信号の使用は、異なるプロトコルにおいて異なり得る。本発明の目的に関しては、1つのドメインが書き込み進行プロトコルで動作し、他のドメインがスヌープ進行プロトコルで動作する場合においては、各プロトコルが書き込み要求およびスヌープ要求を取り扱うやり方の正確な詳細は重要ではない。
また、常に書き込み進行プロトコルまたはスヌープ進行プロトコルとして働くプロトコルがいくつかあるが、他のプロトコルは常にこのようには働かず、また例えば、一定の状態の下では書き込み進行プロトコルまたはスヌープ進行プロトコルとしてのみ動作し得る。その様なプロトコルにおいては、本技法は、1つのプロトコルが書き込み進行プロトコルとして働き、他のプロトコルがスヌープ進行プロトコルとして働いているときは、時々適用されることが可能であり、他のときには適用されないかもしれない。それ故、用語「スヌープ/書き込み進行プロトコルの下で動作するように構成される」は、プロトコルドメインは、スヌープ/書き込み進行プロトコルの下で常に動作しなければならないことをほのめかすものではない。
図4は、書き込み進行プロトコルの下で動作している第1のプロトコルドメインA内のデバイスとスヌープ進行プロトコルの下で動作している第2のプロトコルドメインB内のデバイスとの間の通信中に発生する可能性のあるデッドロック条件の例を示す。図4に示されるように、第1のプロトコルドメインAが第2のプロトコルドメインBに対して書き込み要求を発行し、第2のプロトコルドメインBが第1のプロトコルドメインAに対しスヌープ要求を発行する場合は、各ドメインは受け取られた要求を阻止する。ドメインA内のデバイスは、同一対象アドレスXに関する発行された書き込み要求がサービスされていないので、書き込み進行プロトコルに従って対象アドレスXに関する受け取られたスヌープ要求を阻止する。ドメインB内のデバイスは、同一対象アドレスXに関する発行されたスヌープ要求がサービスされていないので、スヌープ進行プロトコルに従って、対象アドレスXに関する受け取られた書き込み要求を阻止する。この故に、ドメインAおよびBの両方はそれ自身の処理を実施する前に先へ進むのを互いに待ち、デッドロックを生じる。
図5は、デッドロックがどのようにして解決可能であるかの例を示す。ブリッジ4は、スヌープ要求のアドレスおよび書き込み要求それ自身を調べることによって、あるいはデッドロック条件が存在することを示す、プロトコルドメインA、Bの1つからの信号を受け取ることによって、デッドロック条件の存在を検出することができる。デッドロックを検出すると、ブリッジ4は未解決書き込みおよびスヌープ要求の1つに対する早期応答を発行し、対応する要求がサービスされたことを示す。図5の例では、早期書き込み応答が第1のプロトコルドメインAに送られ、書き込み要求が第2のプロトコルドメインBによって実際にはサービスされていないが、対象アドレスXに関する未解決書き込み要求がサービスされたことを示す。第1のプロトコルドメインAの観点からは、書き込みはもはやサービスされ、したがって、これはスヌープ要求を阻止解除する。スヌープ要求はもはや第1のプロトコルドメインAによってサービスされることが可能である。スヌープ応答が生成され、そしてブリッジ4を介して第2のプロトコルドメインBへ送られる。スヌープ応答は対象アドレスXに対応する最新データを典型的に含むので(これはデッドロックを生じさせた未解決書き込み要求に応答して書き戻されたであろう)、この書き込み要求を実行することはもはや必要ない。未解決書き込み要求の書き込みデータがスヌープ応答に含まれないデータを含む場合には、ブリッジは、応答を第2のプロトコルドメインBに送る前に、書き込みデータをスヌープ応答のスヌープデータと合併させることが可能である。
この故に、早期応答を書き込み要求に対して発行することはデッドロックが解決されることを可能とし、衝突している一貫性プロトコルの下で動作するドメイン間の互換性通信を可能とする。
同様に、デッドロックは、早期スヌープ応答を第2のプロトコルドメインBに発行することによっても、スヌープ要求が第1のプロトコルドメインA内でサービスされたことを示し、解決され得、未解決書き込み要求が第2のプロトコルドメインB内で処理されることを可能とする。
デッドロック条件を阻止解除し、他の要求が継続することを可能とするために、ブリッジ4は、いくつかの実施形態では、常に早期書き込み応答を書き込み要求に対して送り、または常に早期スヌープ応答をスヌープ要求に対して送り得る。そのような実施形態では、どの要求が早期応答を受け取るかは事前決定され、ブリッジによってどの要求が最初に受け取られるかは問題にはならない。
しかしながら、図6Aおよび6Bに示されるように、他の実施形態においては、ブリッジ4はブリッジ4によって最後に検出される未解決スヌープ要求および未解決書き込み要求の1つに対して早期応答を発行し得る。デッドロックが検出された最新の要求に対して早期応答を送ることにより、より早期の要求が阻止解除され、正常な方法で処理され得る。この手法はより後の要求は、より早い要求がサービスされる方法に影響をおよぼすことができないことを意味する。
図6Aに示されるように、第1のプロトコルドメインAからの未解決書き込み要求WBが、第2のプロトコルドメインBからのスヌープ要求Snpと衝突する前に、ブリッジ4に遭遇した場合には、早期スヌープ応答が第2のプロトコルドメインBに対して発行され、スヌープ要求が第1のプロトコルドメインA内でサービスされたことを示す。これは書き込み要求を阻止解除し、書き込み要求が第2のプロトコルドメインBによって取り扱われることを可能にする。
しかしながら、図6Aに示されるように、第2のプロトコルドメインBは同一アドレスを対象とする別のスヌープ要求Snpを発行することは可能であり、これはもう一度未解決書き込み要求WBを阻止する。この問題を解決するために、ブリッジ4は、第2のプロトコルドメインが同一アドレスを対象とする別のスヌープ要求を発行する度に、別の早期スヌープ応答を発行することができる。結果的に、第2のプロトコルドメインBは同一アドレスを対象とするスヌープ要求の発行を停止し、したがって、もはや未解決書き込み要求を取り扱う準備ができる。第2のプロトコルドメインBは、ブリッジ4に対して書き込み応答を発行し、書き込み要求に関連付けられた書き込みデータを受け取る準備ができたことを示す。ブリッジ4は、次に、書き込み応答Bを第1のプロトコルドメインに送り、それに応答して、第1のプロトコルドメインAは書き込み認識信号WACKをブリッジ4に送る。書き込み認識信号WACKに応答して、ブリッジ4は書き込みデータを第2のプロトコルドメインBに転送する。
他方、図6Bは第2のプロトコルドメインBからのスヌープ要求Snpが、第1のプロトコルドメインAからの書き込み要求WBの前に、ブリッジ4によって検出される例を示す。書き込み要求WBが最後に検出されたものであったので、ブリッジ4は早期書き込み応答Bを第1のプロトコルドメインAに対して発行し、書き込み要求WBが第2のプロトコルドメインB内でサービスされたことを示す(例え書き込み要求WBがサービスされていなくても)。これはスヌープ要求Snpを阻止解除し、したがって、第1のプロトコルドメインAは次にスヌープ応答Rspをブリッジに送る。また、早期書き込み応答Bに応答して、第1のプロトコルドメインAは書き込み認識信号WACKをブリッジ4に対して発行する。ブリッジが、早期書き込み応答Bが発行された書き込み要求に関する書き込み認識信号WACKを受け取ったとき、ブリッジ4は書き込みデータバッファ14内の対応する書き込みデータを、スヌープ応答Rspに関連付けられたスヌープデータと合併し、第2のプロトコルドメインBへ送信される合併された書き込み/スヌープデータを生成する。合併されたデータは、書き込みデータおよびスヌープデータが対象場所へ首尾よく書き込まれた場合に発生するデータである。データをこのようにして合併することにより、書き込み要求およびスヌープ要求の両方は、別の要求を発行する必要なく、サービスされることが可能である。
図7は、図6Aおよび6Bの実施形態に従い、デッドロック条件を解決する方法を図解する。ステップ20において、デッドロック条件は、第1のプロトコルドメインAから第2のプロトコルドメインBへ発行された書き込み要求、および第2のプロトコルドメインBから第1のプロトコルドメインAに発行されたスヌープ要求、両方の要求とも同一アドレスを対象としている、について検出される。ステップ22において、ブリッジ4は、スヌープ要求および書き込み要求のどちらが最初に検出されたかを判定する。2番目に検出された要求が、早期応答が発行された選択された要求である。
書き込み要求が最初に検出された場合(図6Aに示される事例)、ステップ24において、早期スヌープ応答が、第2のプロトコルドメインBに対して発行される。ステップ26において、ブリッジ4は、早期応答が発行されたスヌープ要求と同じ対象アドレスに関して、第2のプロトコルドメインBによって別のスヌープ要求が発行されたかどうかを検出する。そうである場合には、方法はステップ24に戻り、別の早期スヌープ応答が第2のプロトコルドメインBに対して発行される。
第2のプロトコルドメインBが同一対象アドレスに関して別のスヌープを発行するごとに、第2のプロトコルドメインBが同一アドレスに関して別のスヌープ要求を結果的に発行しなくなるまで、別の早期スヌープ応答が発行される。この時点において、未解決書き込み要求はもはや阻止されず、したがって、第2のプロトコルドメインBは準備完了信号をブリッジ4に発行し、第2のプロトコルドメインBが書き込みデータを受け取る準備ができていることを示す。準備完了信号に応答して、ステップ28においては、ブリッジ4は書き込み応答を第1のプロトコルドメインAに対して発行する。書き込み認識信号WACKが第1のプロトコルドメインAから受け取られると、ステップ30において、ブリッジ4は、第2のプロトコルドメインBに対し、未解決書き込み要求と関連付けられた書き込みデータバッファ14からの書き込みデータData_Iを送信する。対象アドレスと関連付けられたデータがもはや第2のプロトコルドメインBに対して提供されたので、早期応答が発行されたスヌープ要求に対してサービスする必要はもはやない。
他方、ステップ22において、書き込み要求の前にスヌープ要求が検出されたと判定された場合(図6Bに示される事例)、書き込み要求は選択された要求であり、そしてステップ32において、ブリッジ4は早期書き込み応答を第1のプロトコルドメインAに対して発行し、書き込み要求が第2のプロトコルドメインBにおいてサービスされたことを示す(たとえ書き込み要求が実際にサービスされない場合であっても)。ステップ34において、ブリッジ4は同一アドレスに対する別の書き込みが受け取られたかどうかを判定する。もしそうであれば、ステップ36において、新しい書き込み要求が書き込み要求バッファ12内で古い書き込み要求と合併され、そして任意の関連書き込みデータも書き込みデータバッファ14内で合併され、その後ステップ32において、別の早期書き込み応答が第1のプロトコルドメインAに対して発行され、未解決スヌープ要求がもう一度阻止解除されることを許可する。
結果的に、第1のプロトコルドメインAは同一アドレスを対象とするさらなる書き込み要求を発行せず、スヌープ応答を未解決スヌープ要求に対して発行する。第1のプロトコルドメインAも、早期書き込み応答に応答して書き込み認識信号WACK(write acknowledge signal)を発行し、書き込み要求と関連付けられた書き込みデータバッファ14内のデータがもはや第2のプロトコルドメインBへ送信可能であることを示す。スヌープ応答および書き込み認識信号が受け取られると、ステップ38において、ブリッジ4はスヌープ応答データとデッドロックを生じさせた未解決書き込み要求に関する書き込みデータを合併させる。ステップ40において、合併されたデータを含むスヌープ応答は、第2のプロトコルドメインBに送られる。データをこのようにして合併することにより、スヌープ要求が必要とされたデータを第2のプロトコルドメインBに運搬したため、早期応答が発行された書き込み要求に対してサービスする必要はない。
この故に、デッドロックが検出されたスヌープおよび書き込み要求の1つに対して早期応答を発行することにより、デッドロックは解決されることが可能であり、処理の継続を許可する。
図8は、ブリッジ4の書き込み要求バッファ12および書き込みデータバッファ14が一杯になったときに発生し得る問題の例を図解する。バッファ12、14は有限数の書き込み要求のための容量を有する(図8はバッファが4つの要求を収容可能である例を示すが、実際に書き込みバッファ12、14はより大きくあり得ることが認識されるであろう)。図8に示されるように、第1のプロトコルドメインAが4つの対象アドレスA、B、C、Dに関して4つの書き込み要求WriteClean−A〜WriteClean−Dを発行した後、バッファは一杯となり、そしてさらなる書き込み要求は受付不可能である。アドレスA、B、CおよびDは同一アドレスあるいは異なるアドレスであり得る。
図8に示されるように、ドメインBは次に、スヌープ対象アドレスAに関し、スヌープ要求Snp−Aを発行し得る。アドレスAを対象とする未解決書き込み要求WriteClean−Aが存在するため、デッドロック条件は検出され、そしてブリッジ4は早期書き込み応答B−Aを第1のプロトコルドメインAに対して発行し得、デッドロック条件の解決を試みる(この例では、書き込み要求は選択された要求である)。
しかしながら、書き込み要求WriteClean−Aがサービスされたことを示す早期書き込み応答B−Aを受け取ると、第1のプロトコルドメインAは同一アドレスAに関し、別の書き込み要求WriteClean−Aを発行し得ることは可能である。この事例では、スヌープ要求Snp−Aは、ドメインAの書き込み進行プロトコルに従って、新しい書き込み要求によって阻止されるため、依然として処理されることは不可能である。さらに、ブリッジ4内の書き込みバッファ12はすでに一杯であるので、番号5で表示される新規書き込み要求は書き込みステージングバッファ16を超えて渡らない。それ故、プロトコルドメインAはこの要求がサービスされていないと判定し、従って、同一対象アドレスを対象とするスヌープ要求Snp−Aの阻止を続ける。
この問題は、ブリッジ4が新規書き込み要求を同一アドレスに関して旧書き込み要求と合併することを許可することにより、解決されることが可能である。合併された書き込みは、より古い書き込み要求とより新しい書き込み要求とが順に実施された場合に、対象場所に帰結するデータと同等の書き込みデータにより生成されることが可能である。要求を合併することにより、より後の書き込み要求はバッファ内に受付けられることが可能である。ブリッジ4は、次に、別の早期書き込み応答を第1のプロトコルドメインAに対して発行し、より後の書き込み要求がサービスされたことを示す(ここでも、第2のプロトコルドメインBが実際上この書き込み応答をサービスしていない場合であっても)。第1のプロトコルドメインAのデバイスは、同一書き込み対象アドレスを対象アドレスとする限定数のみの連続書き込み要求を発行し得る。それ故、同一対象アドレスに関する別の書き込み要求が発行される毎に、第1のプロトコルドメインAに対して早期応答メッセージを継続して発行することにより、そして各書き込み要求をバッファ内の同一アドレスに関する早期要求と合併することにより、結果的に、第1のプロトコルドメインAは、異なる対象アドレスに関する新規書き込み要求を発行し、このようにして、デッドロックが検出されたスヌープ要求を阻止解除する。スヌープ要求は次にサービスされることが可能である。
図9は、図8に示される問題が解決されることが可能なやり方の例を示す。図9は、丸で囲まれた文字に関して以下に表示され、記述された多くの動作を示す。図9において動作が記述され、図解される順番は、必ずしも動作が実際に実行される時間的順序ではなく、一部の動作は平行して、または異なる順番で実施され得ることが認識されるであろう。
H:第2のプロトコルドメインB内のデバイスは、それぞれ対象アドレスAおよびEを指定する2つの読み取り動作Rd−A、Rd−Eを発行する。アドレスAおよびEと関連付けられたデータのバージョンはデバイスによって第1のプロトコルドメイン内に記憶され得るため、読み取り動作Rd−A、Rd−Eはスヌープ要求Snp−A、Snp−Eが第2のドメインBから第1のドメインAへ発行されるようにトリガーする。
I:第1のプロトコルドメインAは、4つの書き込み要求WriteClean−A〜WriteClean−Dを発行し、それぞれ対象アドレスA、B、C、Dを指定する。ここでも、アドレスA、B、C、Dは、同一アドレスまたは異なるアドレスであり得る。アドレスB、C、DがアドレスAとは異なる場合、書き込み要求WriteClean−B〜WriteClean−Dは、デッドロックがこれらの要求に関して検出されないため、第2のドメインBによってサービスされることが可能である。アドレスB、C、DのいずれかがアドレスAと同一である場合は、アドレスAに関する未解決スヌープ要求が存在するため、対応する書き込み要求はサービスされることができない。
J:第2のプロトコルドメインBは、デッドロック条件は、同一対象アドレスAを指定する書き込み要求WriteClean−Aとスヌープ要求Snp−Aとの間で発生することを検出し、そして信号Cancel−Aをブリッジ4に発行する。
K:信号Cancel−Aを第2のプロトコルドメインBから受け取ると、ブリッジ4はデッドロック条件を検出し、書き込み要求WriteClean−Aを取り消し、したがって、もはやサービスされることはない(必須ではないが、書き込み要求の取り消しは、他の要求をサービスするために、第2のプロトコルドメインB内の資源を解放することができる)。しかしながら、取り消された書き込み要求WriteClean−Aはバッファ内に保有され、必要に応じてその後の要求との合併を許可する。
L:デッドロック条件の検出をすると、ブリッジ4は早期書き込み応答B−Aを書き込み要求WriteClean−Aに対して発行する。早期書き込み応答B−Aを受け取ると、第1のドメインAは書き込みが第2のドメインBにおいてサービスされたと判定する。
早期書き込み応答B−Aを受け取ると、第1のプロトコルドメインAは、デッドロックを生じさせた書き込み要求と同一の対象アドレスAを指定する別の書き込み要求を発行(図9における事例M)、異なる対象アドレスを指定する別の書き込み要求を発行(図9における事例P)、または未解決スヌープ要求をサービスし得る(図9における事例Q)。
M:早期書き込み応答B−Aに応答して、第1のプロトコルドメインAが、デッドロックが検出されたアドレスと同一の対象アドレスAを対象とする別の書き込み要求を発行する場合は、
N:ブリッジ4は、新規書き込み要求を同一対象アドレスAに関する直前書き込み要求と合併する。書き込みデータバッファ14内の合併されたデータは、元の書き込み要求とその後の書き込み要求が順番に実施された場合に帰結するであろうデータに対応する。
O:ブリッジ4は、別の早期書き込み応答B−Aを第1のプロトコルドメインAに送る。この故に、第1のプロトコルドメインAは書き込みがサービスされたと判定し、そして再び、同一対象アドレスに関する別の書き込み要求を発行(図9における事例M)、異なる対象アドレスに関する書き込み要求を発行(事例P)、またはスヌープ要求の取り扱い(事例Q)、を選択し得る。
P:ドメインAが、デッドロック条件を生じさせた未解決書き込み要求WriteClean−Aの対象アドレスとは異なる対象アドレスを指定する書き込み要求WriteClean−Eを発行する場合は、対象アドレスAに関するデッドロックは、もはやそのアドレスAを対象とする未解決書き込み要求が存在しないために解決される。この故に、第1のプロトコルドメインAは、もはやスヌープ応答に対してサービスすることは自由である(図9において示される文字Q)。
Q:プロトコルドメインAは、結果的に、スヌープ要求Snp−Aに応答してスヌープ応答CRDATA−Aを発行する。スヌープ応答は、第1のプロトコルドメインA内に維持されるアドレスAと関連付けられたデータのローカルバージョンの値、ならびにローカルバージョンの一貫性状態に関する情報を含む。
R:ブリッジ4はスヌープ応答を受け取り、スヌープ応答に関連付けられたスヌープデータを対象アドレスAに関する合併された書き込み要求に関連付けられたデータと合併する。
S:ブリッジ4は、合併された応答データ(スヌープされたデータ−A)を第2のプロトコルドメインBに送る。
T:第2のプロトコルドメインBは、受け取ったスヌープデータを使用して読み取り要求Rd−Aをサービスする。元のデッドロックを生じさせた書き込み要求WriteClean−A、または同一対象アドレスを指定する任意の介入書き込み要求WriteClean−Aをもはや実行する必要はない。何故ならば、これらの要求に関連付けられた書き込みデータはスヌープデータと合併されたからである。
図9はデッドロックが解決される前に2つの早期書き込み応答B−Aのみが必要とされる例を示すが、他の機会においては、第1のプロトコルドメインAは、デッドロックを生じさせた書き込み要求と同一の対象アドレスを対象とするさらなる書き込み要求を繰り返し発行し得る(すなわち、図9の事例Mは数回連続して生じる)ことが認識されるであろう。この事例では、ブリッジ4は同一アドレス(文字N)に関して各新規書き込み要求を直前書き込み要求と合併することを継続し、結果的に第1のプロトコルドメインAが異なるアドレス(事例P)を対象とする書き込み要求を発行するか、スヌープ要求(事例Q)を処理するまで、早期書き込み応答(文字O)を発行するであろう。
また、図9の例においては、文字Pにおける対象アドレスEに関する書き込み要求WriteClean−Eの発行は、文字Hにおける対象アドレスEに関して発行されたスヌープ要求Snp−Eをサービスすることを阻止する。この故に、別のデッドロック条件がアドレスEに関して検出され、従って、アドレスAに関する、図9 に示されると同一の動作もアドレスEに関して使用されるであろう。デッドロック条件が2つ以上のアドレスに関して検出された場合、ブリッジ4は一度に1つデッドロックを解決し得るが、スヌープ待ち行列10の先頭にあるスヌープ要求と関連付けられたデッドロックから開始する。これは、いくつかのプロトコルにおいては、スヌープ待ち行列10における最も古い選択の阻止は、その後のスヌープ要求も阻止されることを生じ得るからである。そのように状況では、ブリッジ4はスヌープ待ち行列の先頭におけるスヌープについて同定されたデッドロック条件の解決に焦点を合わせ得る。この故に、後のスヌープの状態およびそれらの後のスヌープに関してデッドロックがあるかどうかに関わらず、ブリッジ4はスヌープ待ち行列10の先頭におけるスヌープに関するデッドロックを検出可能であり、デッドロックが最も古いスヌープ要求に関して検出された場合にのみ早期書き込み応答を発行する。
図6Aおよび6Bに示される例とは異なり、図9は選択された要求が未解決書き込み要求であるように事前決定される例を示し、したがって、早期応答が、未解決書き込み要求および未解決スヌープ要求のどちらが最初にブリッジ4に到着するかに関わらず、未解決書き込み要求に応答して第1のプロトコルドメインに対して発行される。
図9は、デッドロック条件は第2のプロトコルドメインBによって同定され、ブリッジ4はブリッジ4によって発行される取り消し信号Cancel−Aに応答してデッドロック条件を検出する例を示す。しかしながら別の実施形態では、ブリッジ4はデッドロック条件それ自体を検出し、第2のプロトコルドメインBからの信号を受け取らずに、デッドロック条件の検出時に書き込み要求WriteClean−Aを取り消す。ブリッジ4は、次に信号を第2のプロトコルドメインBに対して発行し得、書き込みが取り消されることを示す。
図10は、図9の例に従う、デッドロック条件の検出および解決方法を示す。ステップ50において、デッドロック条件が対象アドレスXを対象とする書き込み要求および同一対象アドレスXを対象とするスヌープ要求に関してデッドロック条件が検出されるが、書き込みは第1のプロトコルドメインAから第2のプロトコルドメインBに対して発行され、スヌープは第2のプロトコルドメインBから第1のプロトコルドメインAに対して発行される。デッドロック条件は、プロトコルドメインA、Bのいずれかからの信号に応答して、ブリッジ4によって直接またはブリッジ4によって間接的に検出され得る。
デッドロック条件が検出された場合、ステップ60において、対象アドレスXに関する書き込みはブリッジ4によって取り消される。また、ステップ70において、対象アドレスXに関する書き込み要求に対する早期書き込み応答がプロトコルドメインAに対して発行される。
ステップ80において、ブリッジ4は対象アドレスXに関するスヌープ応答が受け取られたかどうかを判定する。受け取られなかった場合には、ステップ90において、ブリッジは別の書き込み要求が第1のプロトコルドメインAから受け取られたかどうかを判定する。別の書き込み要求が受け取られた場合には、ステップ100において、ブリッジ4は他の書き込み要求に関する対象アドレスが、デッドロックが検出された対象アドレスXと同一であるかどうかを判定する。対象アドレスがアドレスXと同一でない場合、あるいは、ステップ90において書き込みが受け取られていなかった場合は、ブリッジ4はステップ80においてスヌープ応答の待ちを続ける。
しかしながら、ステップ100において、他の書き込み要求に関する対象アドレスが、デッドロックが検出された対象アドレスXと同一であると判定された場合には、ステップ110において、ブリッジ4は他の書き込み要求を対象アドレスXに関する未解決書き込み要求と合併し、バッファがすでに一杯であっても、新規書き込みはバッファ内に受入れられる。ステップ120において、ブリッジ4は別の早期書き込み応答を対象アドレスXに関する新規書き込み要求に対して発行し、書き込み要求がサービスされたことを第1のプロトコルドメインAに示す(たとえそれが第2のプロトコルドメインBにおいて実際にはサービスされなかった場合でも)。方法は今やステップ80に戻り、ブリッジは再び第1のプロトコルドメインAからのスヌープ応答を待つ。同一対象アドレスXに関する新規要求が受け取られる毎に(ステップ90および100)、新規要求は、同一アドレスを対象とするより早い書き込み要求と合併され、そして早期書き込み応答が再び送られる(ステップ110 および120)。
ステップ100において、他の書き込み要求が未解決書き込み要求と同一の対象アドレスXを指定しないことが発見された場合には、未解決スヌープ要求と同一アドレスを対象とする未解決書き込み要求がもはや存在しないので、デッドロックは破られる。それ故、第1のプロトコルドメインAは今やスヌープ要求を処理し得る。
スヌープ応答がステップ80において受け取られると、ステップ130において、ブリッジ4はスヌープ応答で受け取られたスヌープデータを、対象アドレスXに関する未解決書き込み要求に関するバッファリングされた書き込みデータと合併する。ステップ140において、合併されたデータは第2のプロトコルドメインBに送られる。ステップ150において、未解決書き込み要求に関するバッファ配分が他の要求による使用のために解放される。
特定の実施形態が本明細書中で記述されてきたが、本発明はそれに限定されず、またそれに対する多くの修正および追加が本発明の範囲内においてなされ得ることが認識されるであろう。例えば、本発明の範囲から逸脱することなく、以下の従属請求項の特徴と独立請求項の特徴との様々な組み合わせがなされることが可能である。

Claims (20)

  1. データ処理装置であって、
    第1のプロトコルドメインおよび第2のプロトコルドメインであって、書き込み対象アドレスと関連付けられたデータのローカルバージョンが別の場所に書き込まれることを要求するための書き込み要求を発行し、そしてスヌープ対象アドレスと関連付けられたデータのローカルバージョンへのアクセスを要求するためのスヌープ要求を受け取るように構成された少なくとも1つのデバイスをそれぞれが備える、第1のプロトコルドメインおよび第2のプロトコルドメインと、
    前記第1のプロトコルドメインと前記第2のプロトコルドメインとの間で前記書き込み要求および前記スヌープ要求を転送するように構成されたブリッジと、を備え、
    前記第1のプロトコルドメインが書き込み進行プロトコルの下で動作するように構成され、前記書き込み進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決スヌープ要求は、前記未解決書き込み要求がサービスされるまで阻止され、
    前記第2のプロトコルドメインがスヌープ進行プロトコルの下で動作するように構成され、前記スヌープ進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決書き込み要求は、前記未解決スヌープ要求がサービスされるまで阻止され、
    前記ブリッジは、前記第1のプロトコルドメインから前記第2のプロトコルドメインへ発行された未解決書き込み要求に関する前記書き込み対象アドレスが、前記第2のプロトコルドメインから前記第1のプロトコルドメインへと発行された未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である、デッドロック条件を検出するように構成され、
    前記ブリッジは、前記デッドロック条件の検出時に、選択された要求がサービスされるのを待つことなく、前記選択された要求に対して早期応答を発行するように構成され、前記選択された要求は前記未解決書き込み要求または前記未解決スヌープ要求を含み、前記早期応答は、前記選択された要求がサービスされたことを、前記選択された要求を発行した発行プロトコルドメインに対して示す、データ処理装置。
  2. 前記書き込み要求は書き戻し要求を含み、書き戻し要求を発行する前記デバイスは、前記ローカルバージョンを前記の場所に書き込んだ後に、前記書き込み対象アドレスと関連付けられた前記データの前記ローカルバージョンを無効化するように構成される、請求項1に記載のデータ処理装置。
  3. 前記書き込み要求は書き込みクリーン要求を含み、書き込みクリーン要求を発行する前記デバイスは、前記データの前記ローカルバージョンを前記の場所に書き込んだ後、前記書き込み対象アドレスに関連付けられた前記データへの排他的アクセスを維持することを許可される、請求項1および2のいずれかに記載のデータ処理装置。
  4. 前記ブリッジは、前記選択された要求に対して前記早期応答を発行した後、前記発行プロトコルドメインが、前記早期応答が発行された前記選択された要求と同一の対象アドレスに関する別の選択された要求を発行したかどうかを検出し、そうであれば、前記発行プロトコルドメインに対し、前記の選択された要求に対する早期応答を発行するように構成される、請求項1〜3のいずれかに記載のデータ処理装置。
  5. 前記発行プロトコルドメインは、前記同一対象アドレスを対象とする最大M個の連続した選択された要求を発行するように構成され、Mが整数である、請求項4に記載のデータ処理装置。
  6. 前記選択された要求が前記第1のプロトコルドメインによって発行された前記未解決書き込み要求である場合には、前記未解決書き込み要求に対する前記早期応答を発行した後、前記第1のプロトコルドメインから前記未解決スヌープ要求に対するスヌープ応答を受け取ると、前記ブリッジは、前記スヌープ応答に関連付けられたスヌープデータを前記未解決書き込み要求に関連付けられた書き込みデータと合併し、前記合併データを前記第2のプロトコルドメインに送信するように構成される、請求項1〜5のいずれかに記載のデータ処理装置。
  7. 前記選択された要求は、前記ブリッジによって最後に検出された前記未解決書き込み要求および前記未解決スヌープ要求のうちの1つを含む、請求項1〜6のいずれかに記載のデータ処理装置
  8. 前記選択された要求は、前記未解決書き込み要求および前記未解決スヌープ要求のうちの事前決定された1つを含む、請求項1〜6のいずれかに記載のデータ処理装置。
  9. 前記第1および第2のプロトコルドメインのうちの1つは、前記デッドロック条件を検出し、前記デッドロック条件が検出された場合には、前記ブリッジに対して信号を発行するように構成され、前記ブリッジは前記信号の受け取りに応答して前記デッドロック条件を検出するように構成される、請求項1〜8のいずれかに記載のデータ処理装置。
  10. 前記ブリッジは、前記第2のプロトコルドメインから前記第1のプロトコルドメインへ発行された未解決スヌープ要求を待ち行列に入れるためのスヌープ待ち行列を維持するように構成される、請求項1〜の9いずれかに記載のデータ処理装置。
  11. 前記スヌープ待ち行列が複数の未解決スヌープ要求を含む場合には、前記ブリッジは、デッドロック条件が前記スヌープ待ち行列内の最も古い未処理スヌープ要求に関して検出されたときにのみ、前記選択された要求に対する前記早期応答を発行するように構成される、請求項10に記載のデータ処理装置。
  12. 前記ブリッジは、前記第1のプロトコルドメインから前記第2のプロトコルドメインへ発行された未解決書き込み要求をバッファリングするように構成された書き込みバッファを備える、請求項1〜11のいずれかに記載のデータ処理装置。
  13. 前記書き込みバッファ内でバッファリングされる未解決書き込み要求と同一の対象書き込みアドレスを有する前記第1のプロトコルドメインからさらなる書き込み要求を受け取ると、前記ブリッジは前記さらなる書き込み要求を前記未解決書き込み要求と合併するように構成される、請求項12に記載のデータ処理装置。
  14. 前記書き込みバッファは、前記未解決スヌープ要求に対するスヌープ応答が前記第1のプロトコルドメインから受け取られるまで、前記デッドロック条件が検出された前記未解決書き込み要求を保有するように構成される、請求項12および13のいずれかに記載のデータ処理装置。
  15. 前記第1のプロトコルドメインは、最大N個の整数の未解決書き込み要求を取り扱うように構成され、前記書き込みバッファは前記第1のプロトコルドメインから発行された少なくともN個の未解決書き込み要求をバッファリングするための容量を有し、Nが整数である、請求項12〜14のいずれかに記載のデータ処理装置。
  16. 前記ブリッジと前記第1のプロトコルドメインとの間に連結される書き込みステージングバッファを備え、前記書き込みステージングバッファは前記第1のプロトコルドメインによって発行された書き込み要求を受け取り、前記書き込みバッファ内に前記書き込み要求をバッファリングするためのスペースがある場合には、前記書き込み要求を前記ブリッジに渡すように構成される、請求項12〜15のいずれかに記載のデータ処理装置。
  17. 前記選択された要求が、前記デッドロック条件が検出された前記未解決書き込み要求であり、そして前記ブリッジが、前記未解決書き込み要求に対する前記早期応答の発行時に前記未解決書き込み要求を取り消すように構成される、請求項1〜16のいずれかに記載のデータ処理装置。
  18. 前記第1のプロトコルドメインから前記第2のプロトコルドメインへ発行された未解決書き込み要求をバッファリングするように構成された書き込みバッファを備え、前記書き込みバッファは、前記未解決スヌープ要求に対するスヌープ応答が前記第1のプロトコルドメインから受け取られるまで、前記取り消された未解決書き込み要求を保有するように構成される、請求項17に記載のデータ処理装置。
  19. データ処理装置であって、
    データ処理を実施するための第1のプロトコルドメイン手段および第2のプロトコルドメイン手段であって、それぞれが、書き込み対象アドレスと関連付けられたデータのローカルバージョンが別の場所に書き込まれることを要求するための書き込み要求を発行するための、そしてスヌープ対象アドレスと関連付けられたデータのローカルバージョンへのアクセスを要求するためのスヌープ要求を受け取るための、少なくとも1つのデバイス手段を備える、第1のプロトコルドメイン手段および第2のプロトコルドメイン手段と、
    前記書き込み要求および前記スヌープ要求を、前記第1のプロトコルドメイン手段と前記第2のプロトコルドメイン手段との間で転送するためのブリッジ手段と、を備え、
    前記第1のプロトコルドメイン手段は書き込み進行プロトコルの下で動作するように構成され、前記書き込み進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決スヌープ要求は、前記未解決書き込み要求がサービスされるまで阻止され、
    前記第2のプロトコルドメイン手段は、スヌープ進行プロトコルの下で動作するように構成され、前記スヌープ進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決書き込み要求は前記未解決スヌープ要求がサービスされるまで阻止され、
    前記ブリッジ手段は、前記第1のプロトコルドメイン手段から前記第2のプロトコルドメイン手段へ発行された未解決書き込み要求に関する前記書き込み対象アドレスが、前記第2のプロトコルドメイン手段から前記第1のプロトコルドメイン手段へ発行された未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である、デッドロック条件を検出するように構成され、
    前記ブリッジ手段は、前記デッドロック条件の検出時、選択された要求が処理されるのを待つことなく、前記選択された要求に対する早期応答を発行するように構成され、前記選択された要求は前記未解決書き込み要求または前記未解決スヌープ要求を含み、前記早期応答は、前記選択された要求を発行した発行プロトコルドメインに対し、前記選択された要求がサービスされたことを示す、データ処理装置。
  20. 第1のプロトコルドメインおよび第2のプロトコルドメインを備え、それぞれが、書き込み対象アドレスと関連付けられたデータのローカルバージョンが別の場所に書き込まれることを要求するための書き込み要求を発行し、そしてスヌープ対象アドレスに関連付けられたデータのローカルバージョンへのアクセスを要求するためのスヌープ要求を受け取るように構成された少なくとも1つのデバイスを備える装置のための方法であって、前記第1のプロトコルドメインは書き込み進行プロトコルの下で動作し、前記書き込み進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決スヌープ要求は、前記未解決書き込み要求がサービスされるまで阻止され、前記第2のプロトコルドメインはスヌープ進行プロトコルの下で動作し、前記スヌープ進行プロトコルの下で、未解決書き込み要求に関する前記書き込み対象アドレスが未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である場合には、前記未解決書き込み要求は前記未解決スヌープ要求がサービスされるまで阻止され、
    前記方法は、
    前記第1のプロトコルドメインから前記第2のプロトコルドメインへ発行された未解決書き込み要求に関する前記書き込み対象アドレスが、前記第2のプロトコルドメインから前記第1のプロトコルドメインへ発行された未解決スヌープ要求に関する前記スヌープ対象アドレスと同一である、デッドロック条件を検出するステップと、
    前記デッドロック条件の検出時に、選択された要求が処理されるのを待つことなく、前記選択された要求に対する早期応答を発行するステップであって、前記選択された要求は前記未解決書き込み要求または前記未解決スヌープ要求を含み、前記早期応答は、前記選択された要求を発行した発行プロトコルドメインに対し、前記選択された要求がサービスされたことを示す、ステップと、
    を含む、方法。
JP2014559873A 2012-03-02 2012-03-02 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法 Active JP5941168B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/027359 WO2013130090A1 (en) 2012-03-02 2012-03-02 Data processing apparatus having first and second protocol domains, and method for the data processing apparatus

Publications (2)

Publication Number Publication Date
JP2015512102A JP2015512102A (ja) 2015-04-23
JP5941168B2 true JP5941168B2 (ja) 2016-06-29

Family

ID=45814696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014559873A Active JP5941168B2 (ja) 2012-03-02 2012-03-02 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法

Country Status (6)

Country Link
US (1) US9372798B2 (ja)
JP (1) JP5941168B2 (ja)
KR (1) KR101928770B1 (ja)
CN (1) CN104145251B (ja)
GB (1) GB2514024B (ja)
WO (1) WO2013130090A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2539641B (en) * 2015-06-11 2019-04-03 Advanced Risc Mach Ltd Coherency between a data processing device and interconnect
US9990291B2 (en) * 2015-09-24 2018-06-05 Qualcomm Incorporated Avoiding deadlocks in processor-based systems employing retry and in-order-response non-retry bus coherency protocols
GR1008894B (el) * 2015-12-15 2016-11-14 Arm Limited Βελτιστοποιημενη συνεχης ροη σε μια μη διατεταγμενη διασυνδεση
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
US11159636B2 (en) * 2017-02-08 2021-10-26 Arm Limited Forwarding responses to snoop requests
US10394653B1 (en) * 2017-05-02 2019-08-27 Mellanox Technologies, Ltd. Computing in parallel processing environments
US11449489B2 (en) * 2017-11-09 2022-09-20 International Business Machines Corporation Split transaction coherency protocol in a data processing system
US11321354B2 (en) * 2019-10-01 2022-05-03 Huawei Technologies Co., Ltd. System, computing node and method for processing write requests
US11513962B2 (en) * 2020-10-13 2022-11-29 Arm Limited Draining operation to cause store data to be written to persistent memory
US20240119000A1 (en) * 2022-10-10 2024-04-11 International Business Machines Corporation Input/output (i/o) store protocol for pipelining coherent operations

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426765A (en) * 1991-08-30 1995-06-20 Compaq Computer Corporation Multiprocessor cache abitration
CA2109043A1 (en) * 1993-01-29 1994-07-30 Charles R. Moore System and method for transferring data between multiple buses
JPH0816475A (ja) 1994-06-30 1996-01-19 Toshiba Corp マルチプロセッサシステム
US5961623A (en) * 1996-08-29 1999-10-05 Apple Computer, Inc. Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system
US6038651A (en) 1998-03-23 2000-03-14 International Business Machines Corporation SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum
US6487621B1 (en) * 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US7769959B2 (en) * 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration

Also Published As

Publication number Publication date
US9372798B2 (en) 2016-06-21
GB2514024B (en) 2020-04-08
KR101928770B1 (ko) 2018-12-13
GB2514024A (en) 2014-11-12
CN104145251A (zh) 2014-11-12
JP2015512102A (ja) 2015-04-23
GB201411661D0 (en) 2014-08-13
KR20140131965A (ko) 2014-11-14
CN104145251B (zh) 2017-06-09
US20150012713A1 (en) 2015-01-08
WO2013130090A1 (en) 2013-09-06

Similar Documents

Publication Publication Date Title
JP5941168B2 (ja) 第1および第2のプロトコルドメインを有するデータ処理装置およびデータ処理装置に関する方法
US7305523B2 (en) Cache memory direct intervention
US8756377B2 (en) Area and power efficient data coherency maintenance
US7827354B2 (en) Victim cache using direct intervention
US6801986B2 (en) Livelock prevention by delaying surrender of ownership upon intervening ownership request during load locked / store conditional atomic memory operation
US5881303A (en) Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode
US20100250802A1 (en) Data processing apparatus and method for performing hazard detection
US6279085B1 (en) Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
NO312610B1 (no) Datamaskin-system
US20060184804A1 (en) Data processing apparatus security
JPH10289155A (ja) Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
EP3800555B1 (en) An apparatus and method for handling cache maintenance operations
US20040111576A1 (en) High speed memory cloning facility via a source/destination switching mechanism
US7797495B1 (en) Distributed directory cache
EP1942416B1 (en) Central processing unit, information processor and central processing method
US20040111584A1 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
US20080301376A1 (en) Method, Apparatus, and System Supporting Improved DMA Writes
US20030126341A1 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
US10775870B2 (en) System and method for maintaining cache coherency
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
JP2006301825A (ja) アドレス競合時のスタベーション防止方法およびチップセットおよびマルチプロセッサシステム
US6986013B2 (en) Imprecise cache line protection mechanism during a memory clone operation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160406

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: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160519

R150 Certificate of patent or registration of utility model

Ref document number: 5941168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250