JP2012074036A - ライトバック順序付けによるコヒーレンス制御 - Google Patents

ライトバック順序付けによるコヒーレンス制御 Download PDF

Info

Publication number
JP2012074036A
JP2012074036A JP2011210532A JP2011210532A JP2012074036A JP 2012074036 A JP2012074036 A JP 2012074036A JP 2011210532 A JP2011210532 A JP 2011210532A JP 2011210532 A JP2011210532 A JP 2011210532A JP 2012074036 A JP2012074036 A JP 2012074036A
Authority
JP
Japan
Prior art keywords
transaction
write
request
initiator
cache
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.)
Granted
Application number
JP2011210532A
Other languages
English (en)
Other versions
JP5815349B2 (ja
Inventor
William Laycock Christopher
クリソファー・ウィリアム・レイコック
Antony John Harris
アントニー・ジョン・ハリス
Bruce James Matthewson
ブルース・ジェイムス・マシューソン
David Birus Stuart
スチュアート・デイヴィッド・ビルス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2012074036A publication Critical patent/JP2012074036A/ja
Application granted granted Critical
Publication of JP5815349B2 publication Critical patent/JP5815349B2/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
    • 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/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

【課題】順序が狂って生じるライトバックに対処するための相互接続回路を提供する。
【解決手段】相互接続回路50は、トランザクション要求を受信するための、複数の入力ポート40,42と、トランザクション要求を出力するための、出力ポート48と、複数の入力と少なくとも1つの出力との間でトランザクション要求を伝送するための、複数の経路と、データ処理装置5によって処理されるデータ項目のコヒーレンスを維持するために、同一データ記憶位置へのトランザクション要求のうちの少なくともいくつかが、相互接続回路50を通過する順序を維持するための、コヒーレンス制御回路55と、を備え、相互接続回路50は、コヒーレンス制御回路55を経由するトランザクション要求とは無関係に、ライトバックトランザクション要求が進行するように、コヒーレンス制御回路55でライトバックトランザクション要求を制御しないように構成される。
【選択図】図1

Description

本発明は、データ処理の分野に関し、より具体的には、相互接続を介して、データを記憶するための少なくとも1つのメモリに接続される複数のマスターで構成されるシステムにおいて、データのコヒーレンスを維持することに関し、該システムは、マスターのうちの1つ以上、および場合によっては相互接続において、データのサブセットのコピーのためのローカルストレージを有する。
複数のイニシエータデバイスまたはマスターが相互接続回路を介してメモリに接続され、かつ相互接続および/またはイニシエータデバイスにおいて、データのサブセットのために、ローカルデータストレージが提供されるシステムと関連する、コヒーレンスの問題が存在する。
これらの問題に対処するために、コヒーレント相互接続を通過するトランザクション要求の順序を維持するために、かつデータ項目が要求される場合、項目の現在のバージョンが戻されることを確実にするために、それらの中にコヒーレンス制御回路を有する、コヒーレント相互接続が考案されてきた。コヒーレンス制御回路は、キャッシュ等のローカルストアの状態およびそこに記憶される値をクエリし、かつ要求されたデータ項目の最新のバージョンが戻されることを確実にする、スヌープトランザクション(スヌープ要求、スヌープ応答、および任意選択でスヌープデータから形成される)を生成することによって作動する。ローカルストアの中のコピーが新しい値で上書きされる時、このローカルコピーは、スヌープが実行される時に、これがそのデータ項目の最新のバージョンであることが明らかとなるように、ダーティとマークされる。後のある時点で、システムがこの新しい値をメモリに書き込みするためにライトバックを実行するとすぐ、ローカルコピーがもはやダーティとマークされず、メモリも最新のバージョンを保持する。
本技術は、典型的に複雑なモデム回路に実行されるトランザクションと関連する可変遅延の結果として、発行されるスヌープ要求および他のトランザクションが、それらが発行されたものとは異なる順序で完了する場合があることを認識する。
本技術はまた、同一アドレスへのライトバックが、それらが発行された順序で完了することが重要であることを認識する。そうではない場合、前のライトバックは、後のライトバックを上書きし、データ項目の古い値がメモリに記憶される。これは、ライトバックが保留中であるアドレスにアクセスするスヌープ要求への任意の応答をストールさせ、かつこの要求が後に再送信されることを要求することによって対処されてきた。これが行われた場合、このアドレスへの任意の他のトランザクションは、完了することができず、したがって、ライトバックが正確な順序で生じることを保証することができる。この技術の不利点としては、別の要求が完了するために、ストールされたスヌープが完了することが要求される場合に、デッドロック状態が生じる可能性、ならびにスヌープ要求の再送信と関連する電力消費および待ち時間の増加が挙げられる。
本発明の実施形態は、過度に電力消費を増加させるか、または性能を低下させることなく、順序が狂って生じるライトバックと関連する問題に対処しようと努める。
第1の態様から見ると、本発明は、データ処理装置のための相互接続回路を提供し、前記相互接続回路は、複数のイニシエータデバイスおよび少なくとも1つの受信側デバイスを相互接続させるためのルートを提供するように構成され、前記少なくとも1つの受信側デバイスのうちの少なくとも1つは、前記処理装置によって処理される少なくとも1つのデータ項目を記憶するための、少なくとも1つのメモリを備え、前記複数のイニシエータデバイスのうちの少なくとも1つは、前記少なくとも1つのメモリに記憶される前記データ項目のサブセットのローカルコピーを記憶するための、キャッシュを備え、前記相互接続回路は、前記複数のイニシエータデバイスからのトランザクション要求を受信するための、複数の入力ポートと、前記少なくとも1つの受信側デバイスにトランザクション要求を出力するための、少なくとも1つの出力ポートと、前記複数の入力と前記少なくとも1つの出力との間で前記トランザクション要求を伝送するための、複数の経路と、前記データ処理装置によって処理されるデータ項目のコヒーレンスを維持するために、同一データ記憶位置への前記トランザクション要求のうちの少なくともいくつかが前記相互接続回路を通過する順序を維持するための、コヒーレンス制御回路とを備え、前記相互接続回路は、前記コヒーレンス制御回路を経由するトランザクション要求とは無関係に、前記ライトバックトランザクション要求が進行するように、前記コヒーレンス制御回路で前記ライトバックトランザクション要求を制御しないように構成され、前記ライトバックトランザクション要求は、前記キャッシュを備える前記少なくとも1つのイニシエータデバイスから受信される、ライトトランザクション要求であり、前記少なくとも1つのメモリを、前記データ項目のうちの1つのローカルに記憶された更新値で更新するためのものである。
本発明は、同一データ項目の複数のコピーを有するシステムにおいて、より古いバージョンがより新しいバージョンを上書きすることによって、このデータ項目が破損する可能性が存在することを認識する。この点において、システムは、データ項目の最新のバージョンがそのようなものとしてマークされ、それがローカルに記憶される場合、ある特定の点で、データ項目のこの新しいバージョンがメモリに書き込みされ、メモリが更新されたバージョンを有するように、ライトバック設備が提供されるように設定される。メモリおよびローカルストアは異なるバージョンを有するが、誤ったバージョンが使用されないように、ローカルストアの中のバージョンが最新のバージョンであるとマークされることが重要である。
メモリへのこの値のライトバックは、即時トランザクションではなく、いくらか時間をかけることができる。これ自体が、例えば、別のイニシエータデバイスが同一アドレスに読み出し固有を実行する時、イニシエータデバイスがその値の更新されたバージョンをメモリにライトバックする過程にある場合、問題を引き起す可能性がある。読み出し固有は、読み出しを行うデバイスがそのデータの唯一のローカルコピーを有することを要求する。したがって、読み出し固有の結果として、クエリまたはスヌープが、ローカルストレージを有する任意の他のマスターに送信され、それらが該データのコピーを有するか確認し、そうである場合、コピーを戻し(それが、読み出し固有によって読み出されるコピーよりも最新のコピーである場合)、ラインを無効にする。読み出し固有を実行するマスターが、次いでデータを修正する場合、データは、その修正された形態でメモリにライトバックされる必要がある。このライトバックがすぐに実行される場合、それが、前のライトバックが完了する前にメモリに到達する危険性がある。これが生じた場合、現在では古いこの前の更新値は、後のライトバックが完了した後にメモリにライトバックされる可能性があり、新しい最新の値を上書きし、記憶されたデータ項目の破損を引き起こす。本発明は、コヒーレンス制御とは無関係に、ライトバックが進行するように、それらを配列することによってこの問題に対処し、このようにして、ライトバックは、コヒーレンス回路がそれらの前で別の方法により順序付けされる場合がある、他の動作によって中断されない。したがって、クエリ要求のストール等の動作を、これらの動作が、結果として、システムを、完了することができない何かを待つことによって永遠にストールする危険性を伴わず、安全に実行することができる。
さらに、コヒーレンス制御回路によって制御されないライトバック経路を提供することによって、これらの経路における遅延は、低減され、ライトバックは、必ず完了し、したがって、ライトバックが別のライトバックに追い越される可能性は、低減される。
コヒーレンス制御回路は、システム内のコヒーレンスを維持するために、ライトバック以外のいくつかのトランザクション要求を制御するために使用される。それは、読み出しのいくつかまたは全部を制御するために使用することができる。概して、コヒーレンス問題を引き起こす場合がある読み出しの全部は、コヒーレンス制御回路によって制御され、したがって、キャッシュされていない、または共有可能ではないデータの読み出しは、コヒーレンス制御を必要としないが、全ての他の読み出しは、コヒーレンス制御を有するべきである。
いくつかの実施形態では、読み出しトランザクションの全部は、コヒーレンス制御回路によって制御され、他の実施形態では、書き込みトランザクションのうちの少なくともいくつかが制御されるが、ライトバックトランザクション要求は、決して制御されない。いくつかの実施形態では、制御されない書き込みは、キャッシュされず、かつ共有可能ではない、データ項目へのライトバックおよび書き込みである。
いくつかの実施形態では、前記トランザクション要求は、キャッシュ維持要求をさらに含み、前記キャッシュ維持要求は、前記コヒーレンス制御回路を通して伝送される。
読み出しおよび書き込みトランザクションに加えて、相互接続を通して伝送される、キャッシュ維持要求が存在する場合がある。これらの要求は、異なるキャッシュに記憶されるデータのコヒーレンスを維持するのに役立ち、コヒーレンス制御回路によって制御される必要がある。これらのキャッシュ維持要求は、キャッシュに発行される時に、相互接続に全部のダーティデータを戻し、記憶位置を無効に更新する、クリーン固有というものを含む。相互接続は、メモリの更新に関与する。
相互接続は、読み出し専用の経路および書き込み専用の経路を有してもよい。この場合、これらは、相互接続を通して独立して伝送することができ、これは、ライトバックがいかなる読み出しからの干渉もなく移動することを可能にする。
いくつかの実施形態では、前記のキャッシュ維持要求は、前記の読み出し経路に沿って伝送される。
キャッシュ維持要求は、利用可能な経路のいずれかに沿って伝送されてもよいが、いくつかの実施形態では、それらは、読み出し経路に沿って伝送される。読み出し経路は、キャッシュコヒーレンス制御回路を通過し、したがって、キャッシュ維持動作は、それらがこれらの経路をたどる場合、この回路によって制御することができる。これは、これらの要求がコヒーレンスに影響を与え、相互接続によって制御されなければならないため、有利である。
いくつかの実施形態では、前記コヒーレンス制御回路を通過する前記書き込みおよび読み出し経路は、シリアライゼーションの少なくとも1つの点のうちの1つを通過する。
コヒーレンス制御回路は、トランザクションがコヒーレンスを維持するために実行されるタイミングおよび順序を制御する。この回路に入るトランザクション要求は、シリアライゼーションの1点を通過してもよく、したがって、この点においてそれらより先のいかなるトランザクションも、これらのトランザクション要求が実行される時に影響を与える。シリアライゼーションのその点の後にトランザクションを再び順序付けるいくつかの手段が存在する可能性があるが、それらは、シリアライゼーションの1点を通過する本質的な性質によって、それらより先のトランザクション要求によってある程度遅延させられる。
いくつかの実施形態では、前記コヒーレンス制御回路は、前記の複数のイニシエータデバイスのうちのいずれか1つのキャッシュ内のローカルに記憶されたデータと、前記複数のイニシエータデバイスのうちの別のデバイスから受信されるトランザクション要求との間のコヒーレンス不一致を回避するための、クエリトランザクションを生成することによって、前記データ処理装置によって処理されるデータ項目のコヒーレンスを維持するように構成される。
コヒーレンス制御回路は、ローカルストアがトランザクション要求によって要求されるデータ項目のローカルコピーを記憶しているか確認するために、それらをクエリするクエリトランザクションを生成してもよい。
いくつかの実施形態では、前記入力ポートのうちの少なくとも1つは、前記少なくとも1つのポートに接続される前記イニシエータによって処理されるデータ項目のローカルコピーを記憶するために、それと関連するデータストアを備え、前記データ項目の前記ローカルコピーのコヒーレンスは、前記コヒーレンス制御回路によって制御される。
データ項目のローカルコピーを記憶するために、それと関連するデータストアを備えるポートを有することは、有利である可能性がある。例えば、それら自身のローカルデータストアを有しないレガシー構成要素が相互接続に接続される場合、それらが使用することができる相互接続上にローカルデータストアを提供することによって、それらが他のデバイスと互換性がある方法で機能することを可能にする場合がある。さらに、デバイスがキャッシュを有する場合、相互接続上へのデータストアの提供によって、データ項目が、キャッシュ内にラインを割り当てることなく、そのデバイスに書き込まれることを可能にする。しかしながら、イニシエータデバイスからのこのデータストアへの書き込みは、ポートを通過し、したがって、ライトバック等のイニシエータデバイスによって発行される他の書き込みを遅延させることに留意されたい。したがって、システムがかかる相互接続を使用している場合、イニシエータデバイスは、それによって発行される任意の書き込みがこのデータストアにおいて保留中である間、そのライトバック機能を制限する必要がある場合がある。
このローカルデータストアへの書き込み時、書き込み固有が使用されることに留意されたい。これらは、任意の他のデータストアにそのデータ項目の古いコピーが存在しないように、書き込まれているデータ項目のローカルコピーが1つだけ存在することを要求する書き込みである。したがって、書き込み固有に応答して、クエリ要求が他のローカルストアに送信され、このデータ項目の任意のコピーが無効にされることを確実にする。データ項目の最新の値がローカルに記憶される場合、この値は、無効にされる前に戻される。各ポートは、それ自体のデータストアを有してもよいが、単一のデータストアが複数のポート間で共有されてもよく、保留中の書き込み固有を記憶するために、各ポートがこのデータストアを使用することができることに留意されたい。これは、明らかにエリア上の利点を有するが、性能上の影響を与えるかもしれない。
このデータストアは、多数の形態を取つことができるが、いくつかの実施形態では、単一ラインキャッシュ等の小規模キャッシュを備える。
いくつかの実施形態では、前記入力ポートのうちの少なくとも1つは、受信されたトランザクション要求を保持するための手段を備え、前記少なくとも1つの入力ポートは、前記記憶されたトランザクション要求に関連する少なくとも1つのクエリを、前記他のイニシエータデバイスのうちの少なくとも1つに伝送し、かつ応答の受信に応答して、前記応答を前記保持されたトランザクション要求と関連付け、それらをさらに伝送するように構成される。
いくつかの実施形態では、処理されるデータ項目を記憶するためのデータストアを有するよりもむしろ、システムは単純に、クエリが送信される間、保留中のトランザクション要求を保持してもよい。次いで、クエリおよびトランザクション要求の結果は、さらに送信することができる。これは、データがローカルに記憶される必要がないことを意味し、これは、ゲート数を減少させるが、しかしながら、待ち時間を増加させる場合がある。
いくつかの実施形態では、前記少なくとも1つの受信側デバイスは、書き込みおよび読み出しトランザクション要求の両方を受信し、かつメモリコントローラによって決定される順序で、前記読み出しおよび書き込みトランザクション要求を処理するように構成され、前記コヒーレンス制御回路は、前記コヒーレンス制御回路が前記読み出しトランザクション要求の完了を保証することができるまで、読み出しトランザクション要求をさらに伝送しないように構成される。
いくつかの受信側デバイスは、1種類のトランザクションが他の種類を中断させる場合がある、独立して読み出しおよび書き込みを処理しない場合がある。この結果として、相互接続が送信中である読み出しを許容しない場合、バックプレッシャがメモリコントローラから及ぼされる可能性があり、受信側デバイスがもはや書き込みに応答できなくなる可能性がある。この場合、メモリデバイスに送信されたライトバックが読み出しによって中断されるかもしれない危険性がある。別のトランザクションを実行する前に、ライトバックが完了していることを確実にしたい場合、ライトバックが他のトランザクションによって中断されないことが重要である。したがって、本発明の実施形態では、コヒーレンス制御回路は、完了していることを保証することができるまで、読み出しトランザクション要求をさらに伝送しないように構成される。したがって、読み出しの完了に影響を有するかもしれない未処理のトランザクション要求が存在する場合、それは、さらに伝送されず、したがって、それは、完了に進むことが既知である場合を除き、ライトバック要求より先に受信側デバイスに存在することができない。
いくつかの実施形態では、前記コヒーレンス制御回路は、書き込み固有トランザクションの受信に応答して、記憶位置に書き込みし、前記記憶位置に記憶されるデータ項目のローカルコピーを記憶する場合がある前記イニシエータデバイスのうちの少なくとも1つに、少なくとも1つのクエリを発行し、かつ前記少なくとも1つのクエリへの応答から前記データが前記書き込みトランザクションによって取り出されることが明らかである時のみ、前記書き込みトランザクションをさらに伝送するように構成される。
ライトバックは、読み出しおよび書き込みの両方の後で、受信側デバイスにおいて中断される場合があるため、システムが、他の動作を実行する前にライトバックが完了するのを待っており、それにもかかわらず他の動作の非実行が、ライトバックが完了するのを妨げている状況が生じないように、両方が、受信側デバイスに発行される前に、完了することが可能であることが既知であることが重要である。
本発明の第2の態様は、前記メモリに記憶される前記データ項目のうちの少なくとも1つのローカルコピーを記憶するための、キャッシュであって、前記少なくとも1つのイニシエータがライトバック動作を実行し、前記更新されたデータ項目が前記メモリに書き込まれるまで、前記少なくとも1つのイニシエータが、更新される前記ローカルに記憶されたデータ項目に応答して、前記ローカルに記憶されたデータ項目をダーティとマークすることによって、前記ローカルに記憶された少なくとも1つのデータ項目のコヒーレンスを維持するように構成される、キャッシュと、少なくとも1つの受信側デバイスにトランザクション要求を伝送し、かつデータおよび前記キャッシュをクエリするクエリ要求を受信するための、少なくとも1つのポートとを備える、イニシエータデバイスを提供し、前記イニシエータデバイスは、前記記憶位置へのライトバックトランザクションが保留中である場合、前記キャッシュ内の記憶位置の状態をクエリする要求の受信への応答を発行しないように、かつ前記保留中のライトバックトランザクションが完了した時に前記応答を発行するように構成され、前記ライトバックトランザクション要求は、前記メモリが前記データ項目の現在値を記憶するように、それ自体が更新された前記キャッシュに記憶されるデータ項目の値で、前記メモリを更新するように、前記イニシエータデバイスによって発行される要求である。
前に述べたように、メモリへのライトバックは、そのデータの後のバージョンの別のライトバックがメモリに到達する前に完了することが重要である。これに対処する一方法は、ライトバックが現在実行されているデータ項目の記憶位置への任意のクエリトランザクションをストールすることであってもよい。これが行われた場合、この記憶位置への任意の他のトランザクションは、完了することができず、したがって、ライトバックが正確な順序で生じることを確実にすることができる。これの1つの考えられる不利点は、それ自体が保留中であり、ライトバックが完了するまでストールしているイニシエータからの結果を待っている、トランザクション要求によって中断されているため、ライトバック自体が完了していない場合かもしれない。しかしながら、相互接続が、ライトバックが完了しなければならないように設計されている場合、その位置へのライトバックが保留中である間、いかなるクエリにも応答しないイニシエータデバイスの能力の提供によって、効果的な電力効率およびライトバックのコヒーレンスを確実にする速い方法を提供する。これに対処する以前の方法は、今は応答することができないこと、およびこの要求が後で再送信されるべきであることを伝えることによって、クエリまたはスヌープ要求に応答することであったことに留意されたい。この不利点は、それを後で送信するために必要とされる電力、およびそれを後で送信することと関連するタイミングの検討である。
いくつかの実施形態では、前記イニシエータデバイスは、書き込み固有トランザクションを発行するように構成され、書き込み固有トランザクションは、記憶位置への書き込みトランザクションであり、書き込み固有トランザクションは、前記記憶位置に記憶されるデータ項目の任意のローカルコピーが無効にされることを確実にし、前記イニシエータは、書き込み固有トランザクションが保留中である間、ライトバックトランザクションを発行しないように構成される。
書き込み固有トランザクションは、それらがデータ項目の唯一のローカルコピーに書き込みしていることを要求し、したがって、クエリ要求は、データの任意の他のローカルコピーが取り出され、適切な場合無効とマークされるか、または単に無効とマークされることを確実にするために、書き込み固有トランザクションに応答して送信される。そのクエリからの応答を待ってストールされる、イニシエータデバイスのポートから発行される、書き込み固有トランザクションは、その後のライトバック要求をストールすることができる。したがって、ライトバック要求がクエリに応答してストールされるいかなる可能性も回避するために、イニシエータデバイスは、保留中の書き込み固有要求が存在する場合、ライトバック要求を開始しないように構成することができる。ライトバック要求は、別のイニシエータがそのデータ項目のコピーを必要としている場合、必ずもう一方のローカルデータストアにクエリし、いかなる場合でもそれを発見するように、任意の特定の時間に発行される必要はない。
いくつかの実施形態では、前記イニシエータデバイスは、キャッシュを備え、書き込み固有トランザクションを発行するように構成され、書き込み固有トランザクションは、データ項目の唯一のローカルコピーを記憶し、前記イニシエータは、ダーティである前記キャッシュにおける前記ラインのいずれかに応答して、前記書き込み固有トランザクションを発行しないように構成される、前記位置への書き込みトランザクションである。
場合によっては、キャッシュは、クエリ要求がダーティとマークされる記憶位置をクエリする場合、キャッシュが、クエリに応答してデータ値を戻すよりもむしろ、その値をメモリに書き込みするように設計されてもよい。これは、そのデータ項目を必要とするデバイスが、次いで、それをメモリから取り出すことができることを確実にする。ダーティデータがクエリを発行するデバイスに送信される実装よりも、この実装は遅いが、1つのキャッシュから別のキャッシュにデータを伝送するために必要とするデータ経路は、より少ない。この実装において、イニシエータデバイスは、ダーティである任意のキャッシュラインが存在する、書き込み固有トランザクションを発行してはならない。これは、ダーティラインへのアクセスが、この実装に対するライトバックをトリガーし、ライトバックトランザクションが、書き込み固有が保留中である間は許可されないためであるが、この場合、ライトバックトランザクションが必要とされ、遅延することはできず、したがって、書き込み固有は、この場合に許可されるべきではない。
本発明の第3の態様は、複数のトランザクション要求を発行するように構成される、複数のイニシエータと、前記複数のトランザクション要求を受信するように構成される、少なくとも1つの受信側であって、前記少なくとも1つの受信側のうちの少なくとも1つは、前記データ処理装置によって処理されるデータ項目を記憶するための、メモリを備える、少なくとも1つの受信側と、本発明の第2の態様に従ったイニシエータを備える、前記複数のイニシエータのうちの少なくとも1つと、本発明の第1の態様に従った相互接続回路とを備える、データ処理装置を提供する。
ライトバックが完了することが保証されるシステムの提供によって、ライトバックが保留中である記憶位置への任意のクエリが、ライトバックが完了するまで遅延させられることを可能にし、ライトバックが誤った順序で完了するいかなる可能性も回避する。これは、クエリ要求をストールする能力を有するイニシエータデバイスが、相互接続に接続されることを可能にする。
いくつかの実施形態では、相互接続回路が、書き込み固有が相互接続に書き込みするイニシエータデバイスによって実行されることを可能にする、ローカルデータストアを有する場合、イニシエータを使用することが有利である場合があり、それは、書き込み固有が保留中である場合に、ライトバックが生じることを許可しないか、または設計が、ライトバックがクエリ要求によってトリガーされるようなものである場合、キャッシュにおいてダーティラインが存在する場合、書き込み固有が生じることを許可しない。
いくつかの実施形態では、イニシエータの全てがキャッシュを有してもよいが、他の実施形態では、少なくともいくつかは、キャッシュを有しない場合があることに留意されたい。
本発明の第4の態様は、ライトバック要求を、キャッシュを備えるイニシエータから相互接続を介してメモリに発行するステップであって、前記ライトバックトランザクション要求は、前記キャッシュ上でローカルに記憶されるデータ項目の更新値で、前記メモリを更新するための、書き込みトランザクション要求である、メモリに発行するステップと、前記保留中のライトバックトランザクションが完了するまで、前記クエリ要求に応答せず、前記ライトバックトランザクションが保留中である前記キャッシュの中の記憶位置の状態をクエリする、前記イニシエータにおける要求の受信に応答して、コヒーレンス制御回路を経由するトランザクション要求とは無関係に、前記ライトバック要求が前記相互接続を通過することを可能にするステップとを含む、コヒーレンスを維持する方法を提供する。
本発明の上記および他の特徴および利点は、添付の図面に関連して読まれるものである、例示的な実施形態の以下の詳細な説明から明らかとなるであろう。
本発明の一実施形態に従った、データ処理装置を概略的に示す図である。 コヒーレンス制御回路を有する、相互接続回路を概略的に示す図である。 2つのマスターに接続された、相互接続回路を概略的に示す図である。 キャッシュを有する、マスターを概略的に示す図である。 図4のキャッシュとは異なって構成されるキャッシュを有する、マスターを概略的に示す図である。 本発明の一実施形態に従った、ライトバック要求の順序付けが維持されることを確実にする方法のステップを示す、フロー図である。 本発明の一実施形態に従った、イニシエータデバイス内で実行される方法のステップを示す、フロー図である。
図1は、本発明の一実施形態に従った、データ処理装置5を示す。データ処理装置5は、2つのイニシエータデバイス10および15、相互接続50、ならびにメモリ30を備える。イニシエータデバイス10は、データのローカルコピーを記憶するためのキャッシュ12を有し、入力ポート40を介して相互接続50と通信する。入力ポート40は、イニシエータデバイス10からのトランザクション要求およびデータを受信し、これらを相互接続に伝送し、入力ポート40はまた、相互接続50からのクエリまたはスヌープ要求を受信し、これらをイニシエータデバイス10に伝送する。イニシエータデバイス15は、入力ポート42を介して相互接続50と通信し、このポートを通して相互接続50にトランザクション要求を伝送する。相互接続50は、受信されるトランザクション要求の順序付けを維持し、データ項目のコヒーレンスが維持されることを確実にするように動作を実行する、コヒーレンス制御回路55を備える。
イニシエータは、入力ポートを介して相互接続にトランザクション要求を伝送するデバイスであることに留意されたい。イニシエータは、入力ポートを介して相互接続から、クエリまたはスヌープ要求の形態で要求を受信してもよい。受信側は、要求を受信するメモリ等のデバイスである。
このシステムにおけるキャッシュは、ライトバックキャッシュ、すなわち、書き込みに応答して、ラインをキャッシュにフェッチさせ、ローカルに修正させ、メモリに記憶されるデータ項目のバージョンよりも最近のデータ項目のバージョンがキャッシュに記憶されることを示すダーティに、状態を更新させる、ライトバックキャッシュである。後で、メモリにこの値を書き込みするために、ライトバックが実行されるとすぐ、状態はクリーンに更新される(それがメモリにおける値と同一の値を保持することを意味する)。クリーンであるキャッシュエントリは、メモリの更新に関与しないため、安全かつ静かに無効状態に移行することができる。ダーティであるキャッシュエントリは、無効へ移行することができず、最初に、そのデータをメモリにライトバックする必要があり、これが完了した時、状態は、クリーンに移行することができ、次いで、任意選択で無効に移行することができる。あるいは、スヌープが同一キャッシュエントリに受信され、メモリの更新への関与がスヌープ応答によって相互接続に通されるとすぐに、キャッシュエントリの状態は、無効に移行することができる。
この実施形態では、イニシエータの全部が、読み出し固有として読み出しを発行し、それは、そのデータ項目のローカルコピーの1つのみが記憶されることを意味する。したがって、読み出し固有に応答して、データ項目の最新のバージョンがフェッチされ、全ての他のローカルバージョンは、無効とマークされる。データ値が別のキャッシュから読み出しされる場合、キャッシュにおけるそのエントリのダーティ/クリーン状態は、データとともに移動する。
イニシエータが、別のイニシエータが読み出し固有を実行するのとほぼ同時に、ライトバックを実行する場合、読み出し固有に関する潜在的な問題が生じる可能性がある。これは、コヒーレント相互接続が最初に処理するのはどちらかであるかという競争をもたらす場合がある。ライトバックが提供されるキャッシュによって、読み出し固有スヌープが確認される前に、ライトバックが発行される場合、データは、ライトバックがメモリにヒットする前に、読み出し固有によって取り出すことができる可能性がある。これは、次いで、データ読み出しが修正される可能性があり、そのイニシエータが、それ自体のライトバックを実行する可能性があり、最初のイニシエータからのライトバックと競争する可能性があるため、潜在的に悪い状況である。この後者が最初に完了した場合、最初に発行されたライトバックは、古い値を有するメモリ内のデータを破損する。
この潜在的な問題は、図1のデバイスによって対処される。
図1のデータ処理装置において、イニシエータデバイス15からの読み出し固有トランザクション要求に応答して、コヒーレンス制御回路55は、ポート40を介してイニシエータデバイス10に、スヌープ信号の形態でクエリ要求を送信する。この実施形態では、ポート40は、単一ポートとして示されるが、当業者は、これらの信号を受信するための複数のポートが存在してもよいことを理解するであろうことに留意されたい。例えば、イニシエータ10からの読み出しおよび書き込みチャネルを受信するための1つのポート、およびスヌープチャネルを取り扱うための別個のポートである。このクエリは、キャッシュ12のステータスをクエリし、読み出しの対象であるデータ項目がそこに記憶されているか判定する。記憶されている場合、データを取り出し、ラインが現在のライトバックの対象である場合を除き、位置を無効とマークし、その場合、スヌープ応答は、そのライトバックが完了するまでストールされる。データが読み出される場合、このデータは、キャッシュ17に戻され、次いで、キャッシュ17は、キャッシュ12における記憶位置がダーティとマークされている場合、ダーティとマークされる。後のある時点で、メモリ30がデータ項目の最新の値を保持するように、キャッシュ17に記憶される任意のダーティ値は、メモリ30に書き込みされる必要がある場合がある。したがって、ある時点で、イニシエータデバイス15は、ライトバックトランザクション要求を発行し、これは、コヒーレンス制御回路55ではなく、メモリ30に直接送られる。これは、出力ポート48への相互接続を通過し、その進行がコヒーレンス制御回路55からのいかなるコヒーレンス制御動作によっても妨げられないことを確実にするために行われる。これは、ライトバックが保留中である時に、クエリまたはスヌープ要求がイニシエータデバイスのうちの1つにおいて受信される場合、それが、ライトバックが完了するまで安全にストールすることができるように行われる。これは、ライトバックが完了すると確信している場合のみ可能である。スヌープまたはクエリ要求がこの方法でストールされることを可能にすることは、例えば、キャッシュがその項目に対してライトバックを実行していた間、キャッシュからデータを読み出し、次いで、それ自体が、メモリへのそのデータ項目のライトバックを実行するための読み出し固有において生じる場合がある問題が、回避されることを意味する。
コヒーレンス制御回路にライトバックを伝送しないことに加えて、ライトバックが完了することが保証されることを確信するために、相互接続が従うさらなるルールが存在する。
メモリ30を見ると、メモリコントローラ33の内側のこのメモリに進む、別々の読み出しおよび書き込み経路が存在するが、それらは、結合して単一経路を形成してもよいことがわかる。
したがって、書き込みおよび読み出しは、メモリによって定義される順序で実行され、相互が完了するのを待つ必要がある。したがって、コヒーレンス制御回路55は、読み出しトランザクションが必ず完了することを知っている場合のみ、メモリ30に読み出しトランザクションを発行するように構成される。同様に、それは、書き込みトランザクションが完了することが確実にすることができる場合のみ、書き込みトランザクションを発行する。これは、ライトバックトランザクションが、それが完了することができる前に何かを待っている別のトランザクションの後で、永久に中断されないことを確実にする。
図2は、本発明の第2の実施形態に従った相互接続150を示す。この実施形態では、イニシエータデバイスへの接続のために、入力ポート140、142、および144が存在する。入力ポート140に接続されるイニシエータデバイスは、キャッシュを有さず、したがって、このポートへのスヌープラインは存在しない。また、受信側デバイスまたはメモリへの出力ポート148も存在する。
この相互接続において、相互接続自体内に何らかのローカルストレージが存在する。ローカルストレージ157は、この実施形態において、単一ラインストアを備え、イニシエータデバイス140および142がそれら自体のキャッシュにおいてラインを配置することなく、書き込みを実行することを可能にする。いくつかの実施形態では、各イニシエータデバイスに対して別個のローカルストレージが提供される場合があるが、この実施形態のような他の実施形態では、共有ローカルストレージが存在する場合があり、一方で、さらに他の実施形態では、ローカルストレージが提供されないことに留意されたい。
相互接続上のローカルストレージはまた、それら自体のキャッシュを有しないイニシエータデバイスとともに使用され得る。
入力ポート140および142で受信される書き込みトランザクションは、単一ラインストア157に書き込んでもよく、スヌープ要求を生成するコヒーレンス制御回路155を通過してもよい。入力ポート140および142でイニシエータデバイスから受信されるライトバックトランザクションは、迂回させられ、コヒーレンス制御回路155を介しては送信されず、メモリに接続される出力148に直接送信される。コヒーレンス制御回路155は、それが受信する読み出しおよび書き込みトランザクションに応答して、コヒーレンス動作を実行する。したがって、単一ラインストア157に送信される書き込みトランザクションに応答して、コヒーレンス制御回路155は、書き込まれたデータ項目が、スヌープ動作を実行することによって任意のローカルストレージに存在しているかを判定し、存在している場合、記憶位置を無効とマークする。
図3は、図2の相互接続の代替の実施形態を示す。この実施形態では、相互接続250は、単一ラインストア157ではなく、制御論理257を有する。イニシエータデバイス210からの書き込みトランザクションの受信に応答したこの制御論理は、レディ信号が送信されるまで、イニシエータデバイスが書き込みトランザクションをそのピン上で保持するように、レディ信号をイニシエータデバイス210にすぐには送り返さない。したがって、この書き込みトランザクションは、入力ポート240を介して継続的に出力され、必要とされる任意のスヌープ動作は、制御回路257によって実行することができ、結果が得られた時、この結果および書き込みトランザクションを、さらに送信することができる。この時点で、制御回路257は、レディ信号をイニシエータデバイス210に送信し、イニシエータデバイス210に、さらに進み、次のトランザクションを出力するように伝える。これは、相互接続上の記憶空間を節約するが、待ち時間に関する影響を与える。この実施形態においてもまた、ライトバックがコヒーレンス制御とは無関係に生じることを可能にするために、相互接続内に別々のライトバックチャネルが存在する。書き込みトランザクションは、複数のデータビートとして送信されてもよく、したがって、アドレスは、アドレス書き込みチャネル上にあり、レディ信号が受信される時、後続のデータビートが送信されることに留意されたい。
本発明の実施形態で使用されるキャッシュは、異なる種類のキャッシュ、例えば、MEIまたはMOESIのいずれかであってもよい。MEIキャッシュは、修正(固有ダーティ)、排他(固有クリーン)、および無効状態のみをサポートするキャッシュである(図5を参照されたい)。一方で、MOESIキャッシュは、所有(共有ダーティ)および共有(共有クリーン)状態もサポートする。
図4は、MOESIキャッシュ13を有するマスターまたはイニシエータデバイス10を示す、一実施形態を示す。このキャッシュ13は、多数のデータ項目を記憶し、記憶された項目が有効、ダーティ、または共有であるかどうかを示すインジケータがそれぞれと関連付けられる。キャッシュ13はまた、キャッシュで受信される書き込みトランザクション、読み出しトランザクション、およびスヌープトランザクションを制御するための、制御回路14を有する。
有効インジケータがキャッシュ内のデータが有効であることを示す一方で、無効インジケータは、それが使用されるべきではないことを示す。ダーティインジケータは、これがデータの更新されたバージョンであり、メモリにおけるデータよりも最近のバージョンであり、かつこのキャッシュがデータをメモリにライトバックすることに関与することを示す。共有インジケータは、それがデータの固有コピーであるかどうか、または別の場所に別のローカルコピーが存在するかどうかを示す。
制御回路14は、受信されるトランザクションを制御するように構成され、より具体的には、特定の記憶位置へのスヌープトランザクションの受信に応答して、それは、その記憶位置に対して保留中のライトバックが存在するかどうかを判定する(概して、同一の記憶位置は、同一のアドレスを有するものであり、したがって、特定のアドレスに記憶されるデータ項目の複数のコピーが保持される、同一の記憶位置の複数のアドレスが存在してもよく、恐らくキャッシュに記憶されるローカルコピーもあれば、メモリで保持されるコピーもある。ライトバックは、メモリに向かって必ずライトバックし、それは、メモリ自体に対してでもよいし、またはコヒーレント相互接続のダウンストリームである、キャッシュに対してでもよい)。保留中のライトバックが存在する場合、制御回路14は、スヌープをストールし、ライトバックが完了するまで、それが進行することを許可しない。このようにして、ライトバックが保留中であるアドレスへの任意の後のトランザクションが進行しないため、順序が狂って生じるライトバックによって起こる場合があるコヒーレンスの問題は、回避される。いったんライトバックが完了すると、スヌープは進行することができる。
制御回路14はまた、書き込み固有トランザクションが保留中であるイニシエータデバイス10によって、ライトバックが発行されることを回避するように機能する。これは、書き込み固有によって生成される場合があるスヌープ要求およびキャッシュ維持動作が存在するため、書き込み固有トランザクションがライトバックと干渉し、それが完了することを妨げる可能性があるためである。
ライトバックはメモリを最新に保つが、メモリが最新ではない場合、任意の他の書き込みまたは読み出しトランザクションが、最新の値を保持するキャッシュをスヌープし、ダーティフラグからそれが最新の値であることを判定するため、ライトバックが概してある特定の時点で実行される必要はないことに留意されたい。この時点で、それは、トランザクション要求に応答して、最新のデータを伝送し、場合によっては、ラインを無効とマークする。他の場合において、スヌープは、ラインが無効にされることを必要としない場合があり、その場合、それは、データを転送し、ラインを共有状態に保持する。したがって、ライトバックは、概して、便利である時に実行することができ、書き込み固有が保留中である間、ライトバックが発行されることを許可しないことが、容認できる。
図5は、キャッシュ413および制御回路414を有するイニシエータデバイス400を備える、代替の実施形態を示す。このデバイスにおいて別個のスヌープデータチャネルは存在しないが、スヌープアドレスおよび応答チャネルが存在する。さらに、この実施形態では、図示されないが、このイニシエータから別のイニシエータにデータを伝送するためのチャネルは、存在せず、したがって、スヌープ信号に応答して、スヌープされるあらゆるダーティ項目は、この項目の最新の値がスヌープを生成したトランザクションによってメモリから取り出すことができるように、メモリに書き込まれなければならない。これは、この実施形態において、ダーティ項目へのスヌープがライトバックを生成し、その結果として、書き込み固有が、ストールされたスヌープの後で、キューから抜け出せなくなる可能性があるため、キャッシュにおいてダーティ項目が存在している間、書き込み固有が発行することができないことを意味する。
いくつかの実施形態では、ライトバックがある特定の点に到達したことを示す信号が受信された時に、ライトバックが完了したと見なされ、その点は、全部のライトバックがこの点を通過して移動する点であり、この点を越えて順序付けを維持するための回路が存在することに留意されたい。
図6は、本発明の一実施形態に従った方法を示す。この実施形態では、ライトバック要求は、イニシエータから相互接続に発行される。相互接続は、ライトバック要求が、いかなるコヒーレンス制御とも無関係に相互接続を通過することを可能にする。イニシエータデバイスは、ライトバック要求が発行された記憶位置をクエリする要求を受信する。イニシエータデバイスは、ライトバック要求が完了したかを判定する。完了していない場合、それは、クエリ要求をストールする。それが完了している場合は、別のライトバックがこの時点で発行されていないという条件で、クエリ要求に応答する。ライトバックが発行された場合、これは図示されないが、ライトバックは、クエリ要求が応答される前に、進行することが許可される。このようにして、順序が狂って生じるライトバックによるコヒーレンス問題は、起きない。
データ処理システム全体ではなく、イニシエータ内で生じる方法のステップを図7に示す。最初に、イニシエータは、ライトバック要求を発行し、次いで、ライトバック要求が発行された記憶位置をクエリする要求を受信する。次いで、ライトバック要求が完了しているかを判定する。完了していない場合、クエリ要求をストールし、ライトバックが完了していると判定した時は、クエリ要求に応答する。
本発明の例示的な実施形態が、添付の図面を参照して本明細書に詳細に記載されてきたが、本発明がそれらの明確な実施形態に限定されず、添付の特許請求の範囲によって定義されるように、本発明の範囲および精神から逸脱することなく、当業者によって種々の変更および修正をそこにもたらすことができることが理解される。
5 データ処理装置
10,15 イニシエータデバイス
12,17 キャッシュ
30 メモリ
33 メモリコントローラ
40,42 入力ポート
48 出力ポート
50 相互接続
55 コヒーレンス制御回路

Claims (21)

  1. データ処理装置のための相互接続回路であって、前記相互接続回路は、複数のイニシエータデバイスおよび少なくとも1つの受信側デバイスを相互接続するためのルートを提供するように構成され、前記少なくとも1つの受信側デバイスのうちの少なくとも1つは、前記処理装置によって処理される少なくとも1つのデータ項目を記憶するための、少なくとも1つのメモリを備え、前記複数のイニシエータデバイスのうちの少なくとも1つは、前記少なくとも1つのメモリに記憶される前記データ項目のサブセットのローカルコピーを記憶するための、キャッシュを備え、前記相互接続回路は、
    前記複数のイニシエータデバイスからのトランザクション要求を受信するための、複数の入力ポートと、
    前記少なくとも1つの受信側デバイスに、トランザクション要求を出力するための、少なくとも1つの出力ポートと、
    前記複数の入力と前記少なくとも1つの出力との間で前記トランザクション要求を伝送するための、複数の経路と、
    前記データ処理装置によって処理されるデータ項目のコヒーレンスを維持するために、同一データ記憶位置への前記トランザクション要求のうちの少なくともいくつかが、前記相互接続回路を通過する順序を維持するための、コヒーレンス制御回路と、
    を備え、
    前記相互接続回路は、前記コヒーレンス制御回路を経由するトランザクション要求とは無関係に、前記ライトバックトランザクション要求が進行するように、前記コヒーレンス制御回路でライトバックトランザクション要求を制御しないように構成され、
    前記ライトバックトランザクション要求は、前記キャッシュを備える前記少なくとも1つのイニシエータデバイスから受信される、書き込みトランザクション要求であり、前記少なくとも1つのメモリを、前記データ項目のうちの1つのローカルに記憶された更新値で更新するためのものである、
    相互接続回路。
  2. 前記トランザクション要求は、読み出しトランザクション要求および書き込みトランザクション要求を含み、前記読み出しトランザクション要求のうちの少なくともいくつかは、前記コヒーレンス制御回路によって制御される、請求項1に記載の相互接続回路。
  3. 前記読み出しトランザクション要求のうちの全部が、前記コヒーレンス制御回路によって制御される、請求項2に記載の相互接続回路。
  4. 前記書き込みトランザクション要求であるが、前記ライトバックトランザクション要求ではないもののうちの少なくともいくつかが、前記コヒーレンス制御回路によって制御される、請求項2に記載の相互接続回路。
  5. 前記トランザクション要求は、キャッシュ維持要求をさらに備え、前記キャッシュ維持要求は、前記コヒーレンス制御回路を通して伝送される、請求項2に記載の相互接続回路。
  6. 前記複数の経路は、読み出しトランザクション要求を伝送するための、読み出し経路と、書き込みトランザクション要求を伝送するための、書き込み経路とを備える、請求項1に記載の相互接続回路。
  7. 前記トランザクション要求は、キャッシュ維持要求をさらに備え、前記キャッシュ維持要求は、前記コヒーレンス制御回路を通して伝送され、前記キャッシュ維持要求は、前記読み出し経路に沿って伝送される、請求項6に記載の相互接続回路。
  8. 前記コヒーレンス制御回路を通過する前記書き込みおよび読み出し経路は、シリアライゼーションの少なくとも1つの点のうちの1つを通過する、請求項1に記載の相互接続回路。
  9. 前記コヒーレンス制御回路は、前記複数のイニシエータデバイスのうちのいずれか1つのキャッシュ内のローカルに記憶されたデータと、前記複数のイニシエータデバイスのうちの別の1つから受信されるトランザクション要求との間のいかなるコヒーレンス不一致も回避するための、クエリトランザクションを生成することによって、前記データ処理装置によって処理されるデータ項目のコヒーレンスを維持するように構成される、請求項1に記載の相互接続回路。
  10. 前記入力ポートのうちの少なくとも1つは、前記少なくとも1つの入力ポートに接続される前記イニシエータによって処理されるデータ項目のローカルコピーを記憶するために、それと関連するデータストアを備え、前記データ項目の前記ローカルコピーのコヒーレンスは、前記コヒーレンス制御回路によって制御される、請求項1に記載の相互接続回路。
  11. 前記データストアは、小規模キャッシュを備える、請求項10に記載の相互接続回路。
  12. 前記入力ポートのうちの少なくとも1つは、受信されたトランザクション要求を保持するための手段を備え、前記少なくとも1つの入力ポートは、前記保持されたトランザクション要求に関連する少なくとも1つのクエリを、前記他のイニシエータデバイスのうちの少なくとも1つに伝送し、かつ応答の受信に応答して、前記応答を前記保持されたトランザクション要求と関連付け、それらをさらに伝送するように構成される、請求項1に記載の相互接続回路。
  13. 前記少なくとも1つの受信側デバイスは、書き込みおよび読み出しトランザクション要求の両方を受信し、かつメモリコントローラによって決定される順序で、前記読み出しおよび書き込みトランザクション要求を処理するように構成され、前記コヒーレンス制御回路は、前記コヒーレンス制御回路が前記読み出しトランザクション要求の完了を保証することができるまで、読み出しトランザクション要求をさらに伝送しないように構成される、請求項1に記載の相互接続回路。
  14. 前記コヒーレンス制御回路は、記憶位置に記憶されるデータ項目のローカルコピーを記憶する場合がある前記イニシエータのうちの少なくとも1つに、少なくとも1つのクエリを発行する前に、前記記憶位置に書き込み固有トランザクションを伝送しないように、かつ前記少なくとも1つのクエリへの応答から、前記データが前記書き込み固有トランザクションによって読み出されることが明らかである時のみ、前記書き込み固有トランザクションをさらに伝送するように構成され、書き込み固有トランザクションは、前記記憶位置に記憶されるデータ項目のあらゆるローカルコピーが無効にされることを確実にする、記憶位置に対する書き込みトランザクションである、請求項1に記載の相互接続回路。
  15. 前記メモリに記憶される前記データ項目のうちの少なくとも1つのローカルコピーを記憶するための、キャッシュであって、前記少なくとも1つのイニシエータがライトバック動作を実行し、前記更新されたデータ項目を前記メモリに書き込むまで、前記少なくとも1つのイニシエータは、更新される前記ローカルに記憶されたデータ項目に応答して、前記ローカルに記憶されたデータ項目をダーティとマークすることによって、前記ローカルに記憶された少なくとも1つのデータ項目のコヒーレンスを維持するように構成される、キャッシュと、
    少なくとも1つの受信側デバイスにトランザクション要求を伝送するための、かつデータおよび前記キャッシュをクエリするクエリ要求を受信するための、少なくとも1つのポートと、
    を備える、イニシエータデバイスであって、
    前記イニシエータデバイスは、前記記憶位置へのライトバックトランザクションが保留中である場合、前記キャッシュ内の記憶位置の状態をクエリする要求の受信への応答を発行しないように、かつ前記保留中のライトバックトランザクションが完了した時に前記応答を発行するように構成され、前記ライトバックトランザクション要求は、前記メモリが前記データ項目の現在値を記憶するように、それ自体が更新された前記キャッシュに記憶されるデータ項目の値で、前記メモリを更新するように、前記イニシエータデバイスによって発行される要求である、
    イニシエータデバイス。
  16. 前記イニシエータデバイスは、書き込み固有トランザクションを発行するように構成され、書き込み固有トランザクションは、記憶位置への書き込みトランザクションであり、前記書き込み固有トランザクションは、前記記憶位置に記憶されるデータ項目のいかなるローカルコピーも無効にされることを確実にし、前記イニシエータは、書き込み固有トランザクションが保留中である間、ライトバックトランザクションを発行しないように構成される、請求項15に記載のイニシエータデバイス。
  17. 前記イニシエータデバイスは、キャッシュを備え、書き込み固有トランザクションを発行するように構成され、書き込み固有トランザクションは、位置がデータ項目の唯一のローカルコピーを記憶する前記位置への書き込みトランザクションであり、前記イニシエータは、ダーティである前記キャッシュの中の前記ラインのうちのいずれかに応答して、前記書き込み固有トランザクションを発行しないように構成される、請求項15に記載のイニシエータデバイス。
  18. 複数のトランザクション要求を発行するように構成される、複数のイニシエータと、
    前記複数のトランザクション要求を受信するように構成される、少なくとも1つの受信側であって、前記少なくとも1つの受信側のうちの少なくとも1つは、前記データ処理装置によって処理されるデータ項目を記憶するための、メモリを備える、少なくとも1つの受信側と、
    請求項15に記載のイニシエータを備える、前記複数のイニシエータのうちの少なくとも1つと、
    請求項1に記載の相互接続回路と、
    を備える、データ処理装置。
  19. 前記相互接続回路は、前記入力ポートのうちの少なくとも1つが、前記少なくとも1つの入力ポートに接続される前記イニシエータによって処理されるデータ項目のローカルコピーを記憶するために、それと関連するデータストアを備える、相互接続回路であり、前記データ項目の前記ローカルコピーのコヒーレンスは、前記コヒーレンス制御回路によって制御され、前記少なくとも1つのポートに接続される前記イニシエータは、書き込み固有トランザクションを発行するように構成されるイニシエータデバイスに従って、前記イニシエータデバイスを備え、書き込み固有トランザクションは、記憶位置への書き込みトランザクションであり、前記書き込み固有トランザクションは、前記記憶位置に記憶されるデータ項目のあらゆるローカルコピーが無効にされることを確実にし、前記イニシエータは、書き込み固有トランザクションが保留中である間、ライトバックトランザクションを発行しないように構成される、請求項18に記載のデータ処理装置。
  20. 前記イニシエータのうちの少なくとも1つは、キャッシュを備えない、請求項18に記載のデータ処理装置。
  21. コヒーレンスを維持する方法であって、
    ライトバック要求を、キャッシュを備えるイニシエータから相互接続を介してメモリに発行するステップであって、前記ライトバックトランザクション要求は、前記キャッシュ上でローカルに記憶されるデータ項目の更新値で、前記メモリを更新するための、書き込みトランザクション要求である、メモリに発行するステップと、
    前記保留中のライトバックトランザクションが完了するまで、前記クエリ要求に応答せず、前記ライトバックトランザクションが保留中である前記キャッシュの中の記憶位置の状態をクエリする、前記イニシエータにおける要求の受信に応答して、コヒーレンス制御回路を経由するトランザクション要求とは無関係に、前記ライトバック要求が前記相互接続を通過することを可能にするステップと、
    を含む、方法。
JP2011210532A 2010-09-28 2011-09-27 ライトバック順序付けによるコヒーレンス制御 Active JP5815349B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1016326.9A GB2484088B (en) 2010-09-28 2010-09-28 Coherency control with writeback ordering
GB1016326.9 2010-09-28

Publications (2)

Publication Number Publication Date
JP2012074036A true JP2012074036A (ja) 2012-04-12
JP5815349B2 JP5815349B2 (ja) 2015-11-17

Family

ID=43128111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011210532A Active JP5815349B2 (ja) 2010-09-28 2011-09-27 ライトバック順序付けによるコヒーレンス制御

Country Status (4)

Country Link
US (1) US8589631B2 (ja)
JP (1) JP5815349B2 (ja)
CN (1) CN102541465B (ja)
GB (1) GB2484088B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018109965A (ja) * 2016-12-20 2018-07-12 エイアールエム リミテッド データ処理
JP2019533855A (ja) * 2016-09-19 2019-11-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated ハイブリッド入力/出力コヒーレント書込み
JP2021522610A (ja) * 2018-05-03 2021-08-30 アーム・リミテッド データ処理ネットワーク内の転送プロトコル

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015424B2 (en) * 2012-08-15 2015-04-21 Arm Limited Write transaction management within a memory interconnect
GB2529148B (en) 2014-08-04 2020-05-27 Advanced Risc Mach Ltd Write operations to non-volatile memory
CN105183791A (zh) * 2015-08-21 2015-12-23 中国人民解放军装备学院 一种基于事务的数据整合方法
US11221767B2 (en) * 2017-10-16 2022-01-11 Vmware, Inc. Cache line persistence indicator for non-volatile memory using coherence states
US10621103B2 (en) 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
GB2569304B (en) * 2017-12-12 2020-05-13 Advanced Risc Mach Ltd Regulation for atomic data access requests
GR20180100189A (el) 2018-05-03 2020-01-22 Arm Limited Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming
GB2578600B (en) * 2018-10-31 2021-10-13 Advanced Risc Mach Ltd Memory transaction request management
US11556478B2 (en) * 2020-10-30 2023-01-17 Hewlett Packard Enterprise Development Lp Dirty cache line write-back tracking

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101943A (ja) * 1995-03-31 1997-04-15 Sun Microsyst Inc パケット交換型キャッシュコヒーレントマルチプロセッサシステム
JPH10105464A (ja) * 1996-04-08 1998-04-24 Sun Microsyst Inc マルチプロセッサ内の多数のキャッシュ用のキャッシュ・コヒーレンシ方式
JPH10161930A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JPH10222423A (ja) * 1997-02-07 1998-08-21 Nec Corp キャッシュメモリ制御方式
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP2006323432A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd 主記憶共有型マルチプロセッサシステムの高性能化技術
JP2007199999A (ja) * 2006-01-26 2007-08-09 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
WO2009122694A1 (ja) * 2008-03-31 2009-10-08 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US7353341B2 (en) * 2004-06-03 2008-04-01 International Business Machines Corporation System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
GB0625330D0 (en) * 2006-12-20 2007-01-24 Ibm System,method and computer program product for managing data using a write-back cache unit
US7769957B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Preventing writeback race in multiple core processors
US20080320233A1 (en) * 2007-06-22 2008-12-25 Mips Technologies Inc. Reduced Handling of Writeback Data
US20100241812A1 (en) * 2007-10-18 2010-09-23 Nxp B.V. Data processing system with a plurality of processors, cache circuits and a shared memory
JP4474570B2 (ja) * 2008-01-28 2010-06-09 エヌイーシーコンピュータテクノ株式会社 キャッシュコヒーレンシ制御方法
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US8996812B2 (en) * 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US8756377B2 (en) * 2010-02-02 2014-06-17 Arm Limited Area and power efficient data coherency maintenance

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101943A (ja) * 1995-03-31 1997-04-15 Sun Microsyst Inc パケット交換型キャッシュコヒーレントマルチプロセッサシステム
JPH10105464A (ja) * 1996-04-08 1998-04-24 Sun Microsyst Inc マルチプロセッサ内の多数のキャッシュ用のキャッシュ・コヒーレンシ方式
JPH10161930A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JPH10222423A (ja) * 1997-02-07 1998-08-21 Nec Corp キャッシュメモリ制御方式
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
JP2006323432A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd 主記憶共有型マルチプロセッサシステムの高性能化技術
JP2007199999A (ja) * 2006-01-26 2007-08-09 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
WO2009122694A1 (ja) * 2008-03-31 2009-10-08 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019533855A (ja) * 2016-09-19 2019-11-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated ハイブリッド入力/出力コヒーレント書込み
JP2018109965A (ja) * 2016-12-20 2018-07-12 エイアールエム リミテッド データ処理
US11314675B2 (en) 2016-12-20 2022-04-26 Arm Limited Interface circuitry for exchanging information with master, home, and slave nodes using different data transfer protocols
JP7153441B2 (ja) 2016-12-20 2022-10-14 アーム・リミテッド データ処理
JP2021522610A (ja) * 2018-05-03 2021-08-30 アーム・リミテッド データ処理ネットワーク内の転送プロトコル
JP7284191B2 (ja) 2018-05-03 2023-05-30 アーム・リミテッド データ処理ネットワーク内の転送プロトコル

Also Published As

Publication number Publication date
GB2484088A (en) 2012-04-04
CN102541465A (zh) 2012-07-04
US20120079211A1 (en) 2012-03-29
US8589631B2 (en) 2013-11-19
CN102541465B (zh) 2016-02-03
JP5815349B2 (ja) 2015-11-17
GB2484088B (en) 2019-08-07
GB201016326D0 (en) 2010-11-10

Similar Documents

Publication Publication Date Title
JP5815349B2 (ja) ライトバック順序付けによるコヒーレンス制御
US7529866B2 (en) Retry mechanism in cache coherent communication among agents
JP4572169B2 (ja) マルチプロセッサシステム及びその動作方法
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US7284097B2 (en) Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes
US8347040B2 (en) Latency reduction for cache coherent bus-based cache
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
US11687457B2 (en) Hardware coherence for memory controller
US7210006B2 (en) Computer system supporting read-to-write-back transactions for I/O devices
US7757027B2 (en) Control of master/slave communication within an integrated circuit
US20070073979A1 (en) Snoop processing for multi-processor computing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150729

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150924

R150 Certificate of patent or registration of utility model

Ref document number: 5815349

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