JP2022549095A - キャッシュ禁止書き込みオペレーション - Google Patents

キャッシュ禁止書き込みオペレーション Download PDF

Info

Publication number
JP2022549095A
JP2022549095A JP2022516628A JP2022516628A JP2022549095A JP 2022549095 A JP2022549095 A JP 2022549095A JP 2022516628 A JP2022516628 A JP 2022516628A JP 2022516628 A JP2022516628 A JP 2022516628A JP 2022549095 A JP2022549095 A JP 2022549095A
Authority
JP
Japan
Prior art keywords
data
request
interconnect
cache
processing unit
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.)
Pending
Application number
JP2022516628A
Other languages
English (en)
Inventor
ウィリアムズ、デレク
ガスリー、ギー
シェン、ヒュー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022549095A publication Critical patent/JP2022549095A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • 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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

データ処理システムが、ブロードキャスト・アドレス・インターコネクト及びデータ・インターコネクトを含むシステム・インターコネクトに結合された複数の処理ユニットを含む。処理ユニットは、メモリ・アクセス命令を実行するプロセッサ・コアと、プロセッサ・コアに結合され、プロセッサ・コアによるアクセスのためにデータを格納するように構成されたキャッシュ・メモリとを含む。処理ユニットは、アドレス・インターコネクト上で、システム・インターコネクトに結合された宛先デバイスに対するキャッシュ禁止書き込み要求及び書き込みデータをブロードキャストするように構成される。種々の実施形態において、最初のキャッシュ禁止要求及び書き込みデータは、アドレス・インターコネクト上の同じ又は異なる要求において通信することができる。

Description

本発明は、一般に、データ処理システムに関し、具体的には、データ処理システムにおける書き込みオペレーションに関する。さらにより具体的には、本発明は、データ処理システムにおけるキャッシュ禁止(cache-inhibited)書き込みオペレーションに関する。
共有メモリ・マルチプロセッサ(MP)データ処理システムにおいて、システム内の複数のプロセッサの各々は、一般に、共有メモリに格納されたデータにアクセスし、変更することができる。共有メモリに格納されたデータへのアクセス待ち時間を低減するために、プロセッサは、典型的には、プロセッサによりアクセスされる可能性の高い、共有メモリから取得したデータをバッファする高速のローカル・キャッシュを備える。プロセッサの様々なローカル・キャッシュに保持されるデータの一貫したビューは、一貫性プロトコルの実装によって維持される。
このような共有メモリMPシステムでは、例えば、共有メモリ内のページ・テーブルの適切な設定により、アドレス空間における特定のアドレスをキャッシュ禁止(キャッシュ不可能(non-cacheable))と指定することは一般的である。これらのキャッシュ禁止アドレスと関連付けられたデータは、プロセッサのローカル・キャッシュにキャッシュされることはない。キャッシュ禁止アドレスに対するデータのキャッシュを制限することによって、キャッシュ禁止アドレスと関連付けられたデータを変更しても、プロセッサのローカル・キャッシュに常駐するデータのあらゆる古いコピー又は複数のコピーの無効化を必要としないという点で、対応するメモリ位置のコンテンツの単一の一貫したビューの維持管理が、大幅に簡素化される。
1つ又は複数の実施形態において、データ処理システムのアドレス・インターコネクト上で、書き込みデータをブロードキャストすることにより、キャッシュ禁止アドレスへの書き込みが促進される。
例えば、少なくとも一実施形態において、データ処理システムは、ブロードキャスト・アドレス・インターコネクト及びデータ・インターコネクトを含むシステム・インターコネクトに結合された複数の処理ユニットを含む。処理ユニットは、メモリ・アクセス命令を実行するプロセッサ・コアと、プロセッサ・コアに結合され、プロセッサ・コアによるアクセスのためにデータを格納するように構成された、キャッシュ・メモリとを含む。処理ユニットは、アドレス・インターコネクト上で、システム・インターコネクトに結合された宛先デバイスに対するキャッシュ禁止書き込み要求及び書き込みデータをブロードキャストするように構成される。種々の実施形態において、最初のキャッシュ禁止要求及び書き込みデータは、アドレス・インターコネクト上の同じ又は異なる要求において通信することができる。
一実施形態による、例示的なデータ処理システムの高レベル・ブロック図である。 一実施形態による、図1のデータ処理システム内の宛先デバイスのより詳細な図である。 一実施形態による、データ処理システムのシステム・インターコネクト上の例示的なオペレーションの時間空間図である。 データ処理システムのシステム・インターコネクト上で、キャッシュ不可能ユニット(NCU)がキャッシュ禁止(CI)書き込み要求を発行する従来技術の方法の高レベル論理フローチャートである。 宛先デバイスがCI書き込み要求にサービスする従来技術の方法の高レベル論理フローチャートである。 従来技術による、CI書き込み要求、コヒーレンス応答メッセージ、及びデータ・パケットを示す。 従来技術による、CI書き込み要求、コヒーレンス応答メッセージ、及びデータ・パケットを示す。 従来技術による、CI書き込み要求、コヒーレンス応答メッセージ、及びデータ・パケットを示す。 一実施形態による、データ処理システムのシステム・インターコネクト上で、NCUがCI書き込み要求を発行する、例示的な方法の高レベル論理フローチャートである。 一実施形態による、宛先デバイスがCI書き込み要求にサービスする、例示的な方法の高レベル論理フローチャートである。 一実施形態による、CI書き込み要求及びコヒーレンス応答メッセージを示す。 一実施形態による、CI書き込み要求及びコヒーレンス応答メッセージを示す。 別の実施形態による、データ処理システムのシステム・インターコネクト上で、NCUがCI書き込み要求を発行する、例示的な方法の高レベル論理フローチャートである。 別の実施形態による、宛先デバイスがCI書き込み要求にサービスする、例示的な方法の高レベル論理フローチャートである。 別の実施形態による、CI書き込みオペレーションのための、第1の要求、第1のコヒーレンス応答メッセージ、第2の要求、及び第2のコヒーレンス応答メッセージを示す。 別の実施形態による、CI書き込みオペレーションのための第1の要求、第1のコヒーレンス応答メッセージ、第2の要求、及び第2のコヒーレンス応答メッセージを示す。 別の実施形態による、CI書き込みオペレーションのための第1の要求、第1のコヒーレンス応答メッセージ、第2の要求、及び第2のコヒーレンス応答メッセージを示す。 別の実施形態による、CI書き込みオペレーションのための第1の要求、第1のコヒーレンス応答メッセージ、第2の要求、及び第2のコヒーレンス応答メッセージを示す。 例示的な設計フローのブロック図である。
ここで図、特に図1を参照すると、一実施形態によるデータ処理システム100の高レベル・ブロック図が示される。図示のように、データ処理システム100は、データ及び命令を処理するための(少なくとも処理ユニット102a~102bを含む)複数の処理ユニット102を含む。処理ユニット102は、取り付けられたデバイス間でアドレス、データ及び制御情報を伝達するために、システム・インターコネクト(相互接続)104に通信するように結合される。好ましい実施形態では、システム・インターコネクト104は、分岐したアドレス・インターコネクト及びデータ・インターコネクトを含む。図3を参照して以下でさらに説明するように、要求及びコヒーレンス応答を伝達する、アドレス・インターコネクトは、全ての要求及びコヒーレンス応答を、全ての取り付けられたデバイスに伝達する、アドレス・バスなどのブロードキャスト・インターコネクトである場合にさらに好ましい。それとは対照的に、データ・インターコネクトが、データのソースから宛先への直接通信をサポートする、スイッチなどのポイント・ツー・ポイント・インターコネクトである場合は好ましい。
示される実施形態では、システム・インターコネクト104に結合されたデバイスは、処理ユニット102だけでなく、共有システム・メモリ108へのインターフェースを提供するメモリ・コントローラ106、及び各々がそれぞれのメザニン(Mezzanine)バス112へのインターフェースを提供する1つ又は複数のホスト・ブリッジ110も含む。メザニン・バス112はまた、ネットワーク・インターフェース・カード、I/Oアダプタ、不揮発性メモリ、不揮発性ストレージ・デバイス・アダプタ、付加的なバス・ブリッジなどを含むことができる、図示されていない付加的なデバイスを取り付けるためのスロットも提供する。
さらに図1に示すように、単一の集積回路として実現することができる各処理ユニット102は、命令及びデータを処理するための1つ又は複数のプロセッサ・コア120を含む(その1つのみが明示的に示される)。各プロセッサ・コア120は、実行のために命令をフェッチして指示する命令シーケンシング・ユニット(ISU)122と、ISU122からディスパッチされた命令を実行するための1つ又は複数の実行ユニット124と、データ及び制御情報を一時的にバッファするためのレジスタ123のセットとを含む。実行ユニット124により実行される命令は、キャッシュ可能なアドレス及びキャッシュ不可能なアドレスと関連付けられたデータを読み書きするロード及びストア命令などのメモリ・アクセス命令を含む。
各プロセッサ・コア120は、実行されたストア及びロード命令にそれぞれ対応するストア及びロード要求の完了を管理するための、L1ストア・キュー(STQ)127及びロード・ユニット128をさらに含む。一実施形態では、L1 STQ127は、複数のキュー・エントリを含む先入れ先出し(FIFO)キューとして実装することができる。従って、ストア要求は、ターゲット・アドレスを決定するために、対応するストア命令の実行時にL1 STQ127の「上部」エントリにロードされ、ストア要求がL1 STQ127の「底部」又は「コミット」エントリに到達したときに開始される。
本出願は、ロード及びストア命令などの「命令」と、「要求」とを区別することに留意することが重要である。ロード及びストア「命令」は、本明細書では、命令のタイプを識別する要求コード(オペコード)と、アクセスされるデータもしくはそのアドレス又はその両方を指定する1つ又は複数のオペランドとを含む実行ユニットへの入力として定義される。ロード及びストア「要求」は、本明細書では、アクセスされる少なくともデータのターゲット・アドレスを指定する、命令実行に続いて生成されるデータもしくは信号又はその両方として定義される。従って、ロード及びストア要求は、データ・アクセスを開始するために、プロセッサ・コア120からメモリ・システムに伝送することができるが、ロード及びストア命令は伝送することができない。
プロセッサ・コア120のオペレーションは、共有システム・メモリ108をその最下位に有し、かつ、示される実施形態においてはL1キャッシュ126及びL2キャッシュ130を含むキャッシュ・メモリの2つ又はそれより多いレベルをその上位に有する、マルチ・レベル揮発性メモリ階層によってサポートされる。他の共有メモリ・マルチプロセッサ・データ処理システムにおけるように、メモリ階層のキャッシュ可能なコンテンツは、一般に、データ処理システム100の任意の処理ユニット102における任意のプロセッサ・コア120で実行される実行スレッドによりアクセスし変更することができる。
一実施形態によれば、L1キャッシュ126はストア・スルー・キャッシュとして実装され、このことは、他のプロセッサ・コア120に対するキャッシュ・ヒーレンシのポイントがL1キャッシュ126の下に配置され、示される実施形態においては、ストア・インL2キャッシュ130に配置されることを意味する。従って、L1キャッシュ126は、そのキャッシュ・ラインについての真のキャッシュ・コヒーレンシ状態(例えば、変更済み(Modified)、排他的(Exclusive)、共有(Shared)、無効(Invalid)など)を維持せずに、有効/無効ビットを維持するのみである。L1キャッシュ126はストア・スルー・キャッシュとして実装されるので、ストア要求は、最初に、L1キャッシュ126内の関連付けられたプロセッサ・コア120に対して完了し、次いで、示される実施形態ではL2キャッシュ130である、システム全体のコヒーレンシのポイントで、他の処理ユニット102に対して完了する。
さらに図1に示すように、L2キャッシュ130は、命令及びデータのキャッシュ・ラインを、それぞれのメモリ・アドレス及びコヒーレンス状態と関連付けて格納するストレージ・アレイ及びディレクトリ140を含む。またL2キャッシュ130は、関連付けられたプロセッサ・コア120から受け取ったキャッシュ可能なメモリ・アクセス要求に独立して同時にサービスする、多数の読み出しクレーム(RC)状態機械142a~142nも含む。RC機械142は、ロード・バス160、イン・オーダL2ロード・キュー(LDQ)161、及びコマンド・バス162を介して、プロセッサ・コア120内のLDユニット128からコア・ロード要求を受け取る。同様に、RC機械142は、ストア・バス164、イン・オーダL2ストア・キュー(STQ)166、及びコマンド・バス162を介して、プロセッサ・コア120内のL1 STQ127からコア・ストア要求を受け取る。
L2キャッシュ130はさらに、システム・インターコネクト104及びスヌープ・バス170を介して他の処理ユニット102から受け取ったキャッシュ可能なメモリ・アクセス及び他の要求にサービスするために、幾つかのスヌープ(SN)状態機械144a~144nを含む。SN機械144及びRC機械142はそれぞれ、バック無効化(back-invalidation)バス172に接続され、それにより、いずれのSN機械144又はRC機械142も、キャッシュ・ラインの無効化をプロセッサ・コア120に信号で送ることができる。
少なくとも1つの実施形態において、L2キャッシュ130は、RC機械142及びSN機械144のうち、最大でも1つが、任意の時間に所与のターゲット・キャッシュ・ライン・アドレスをターゲットとする要求にアクティブにサービスできるように構築される。その結果、同じキャッシュ・ラインをターゲットとする第1の要求が、アクティブなRC機械142又はSN機械144によって既にサービスされている間に、第2の要求を受け取った場合、第1の要求のサービスが完了し、アクティブな状態機械がアイドル状態に戻るまで、後の第2の要求をキューに入れるか又は拒否する必要がある。
L2キャッシュ130はさらに、プロセッサ・コア120から受け取ったキャッシュ禁止(CI)メモリ・アクセス要求にサービスするためのキャッシュ不可能ユニット(NCU)146を含む。NCU146は、キャッシュ不可能なアドレスをターゲットとする、関連付けられたプロセッサ・コア120から受け取ったメモリ・アクセス要求に独立して同時にサービスするための多数のNCUストア(NST)状態機械150a~150nを含む。NST機械150は、ストア・バス164及びイン・オーダNCUストア・キュー(NSQ)148を介して、プロセッサ・コア120内のL1 STQ127からコアCI書き込み要求を受け取る。さらに、NCU146は、ロード・バス160を介して、プロセッサ・コア120内のLDユニット128からコアCIの読み出し要求を受け取る、多数のNCUロード(NLD)状態機械152a~152nを含む。
当業者であれば、図1のデータ処理システム100は、インターコネクト・ブリッジ、不揮発性ストレージ、ネットワークもしくは取り付けられたデバイスに接続するためのポート等のような図示されていない多くの付加的なコンポーネントを含むことができることもさらに理解するであろう。このような付加的なコンポーネントは、説明される実施形態の理解には必要ないため、図1には示されておらず、本明細書でさらに論じられてもいない。しかしながら、本明細書で説明される拡張機能は、多様なアーキテクチャのデータ処理システムに適用可能であり、図1に示される一般化されたデータ処理システムのアーキテクチャに決して限定されないことも理解されたい。例えば、図1は、キャッシュ禁止要求にサービスするための別個のNCUを含む実施形態を示すが、他のアーキテクチャは、L2キャッシュ130内のキャッシュ論理などの他の論理を使用して、CI書き込みなどのキャッシュ禁止要求にサービスすることができる。
ここで図2を参照すると、一実施形態による宛先デバイス200のより詳細な図が示される。宛先デバイス200は、CI書き込み要求の宛先(ターゲット)として機能することができるシステム・インターコネクト104に結合された任意のデバイスとすることができる。例えば、図1の実施形態では、宛先デバイス200は、ホスト・ブリッジ110又はメモリ・コントローラ106とすることができる。
示される実施形態では、宛先デバイス200は、システム・インターコネクト104を形成するアドレス・インターコネクト202及びデータ・インターコネクト204の両方に結合される。前述のように、アドレス・インターコネクト202は、取り付けられたデバイスの各々が、アドレス・インターコネクト202上で伝送される全ての要求及びコヒーレンスメッセージに対する可視性をもつことを意味する、バスなどのブロードキャスト・インターコネクトであることが好ましい。一方、データ・インターコネクト204は、データ・パケットが経路指定される間、データ・パケットは、複数の(一般的には全てではない)スヌーパを送ることができるが、オペレーションの宛先だけが、データ・インターコネクト204上で伝送されるデータ・パケットを受け取り、処理することを意味する、ポイント・ツー・ポイント・インターコネクトとして実装されることが好ましい。示される実施形態では、宛先デバイス200は、他のコンポーネントの中で、アドレス・インターコネクト202上で受け取った要求をバッファするための複数のキュー・エントリ212a~212nを有する要求キュー210を含む。各キュー・エントリ212は、少なくとも、要求の宛先(ターゲット)アドレスをバッファするためのアドレス・フィールド214と、要求タイプ(例えば、読み出し、書き込みなど)の表示をバッファするための要求フィールド216と、要求と関連付けられたデータをバッファするためのデータ・フィールド218とを含む。さらに図2に示すように、宛先デバイス200はまた、アドレス・インターコネクト202及びデータ・インターコネクト204の両方からデータ・フィールド218内に入れられた情報を選択することができる選択論理220(マルチプレクサとして表される)を含む。
ここで図3を参照すると、一実施形態による、データ処理システム100のシステム・インターコネクト104上の例示的なオペレーションの時間空間図が示される。オペレーションは、RC機械142又はNST機械150などのマスタ300が、データ処理システム100のアドレス・インターコネクト202上で要求302を発行するときに開始する。要求302は、所望のアクセスのタイプを示すトランザクション・タイプと、要求によってアクセスされるリソースを示すリソース識別子(例えば、ターゲット実アドレス)とを含むことが好ましい。一般的なタイプの要求としては、以下の表Iに示すものを含むことが好ましい。
Figure 2022549095000002
要求302は、宛先デバイス200(例えば、ホスト・ブリッジ110及びメモリ・コントローラ106)及びL2キャッシュ130のSN機械144などのスヌーパ304によって受け取られる。一般に、要求302は、処理ユニット102によって要求302に内部でサービスできない場合にのみ、アドレス・インターコネクト202上で伝送されるため、若干の例外はあるものの、要求302を開始するマスタと同じL2キャッシュ130内のSN機械144は、その要求302をスヌープしない(すなわち、一般に、自己スヌープはない)。
要求302を受け取ることに応答して、スヌーパ304は、アドレス・インターコネクト202上で、それぞれの部分応答(Presp)306を提供することができ、各Presp306は、要求302に対する少なくともそのスヌーパ304のコヒーレンス応答を表す。宛先デバイス200は、例えば、宛先デバイス200が要求アドレスをもたらすかどうか、及び宛先デバイス200が要求にサービスするために使用可能なリソースを有するかどうかに基づいて、(存在する場合には)その部分応答を決定する。L2キャッシュ130は、例えば、L2ストレージ・アレイ及びディレクトリ140の可用性、要求を処理するためのリソースの可用性(利用可能なSN機械144を含む)、L2ストレージ・アレイ及びディレクトリ140内の要求アドレスと関連付けられたキャッシュ状態に基づいて、部分応答306を決定することができる。
様々なスヌーパ304の部分応答は、応答論理308の1つ又は複数のインスタンスによって、段階的に又は一度に論理的に組み合わされ、要求302に対するシステム全体の組み合わせ応答(combined response)(Cresp)310が決定される。応答論理308は、要求302に対するシステム全体の応答(成功(Success)、再試行(Retry)など)を示すために、アドレス・インターコネクト202を介してマスタ300及びスヌーパ304に組み合わせ応答310を提供する。組み合わせ応答310が要求302の成功を示す場合、組み合わせ応答310は、例えば、書き込みデータについての宛先(該当する場合)、要求されたメモリ・ブロックがマスタ300によってキャッシュされたキャッシュ状態(該当する場合)、もしくは1つ又は複数のキャッシュ126、130内の要求されたメモリ・ブロックを無効にする「クリーンアップ(cleanup)」オペレーションが必要130とされるかどうか(該当する場合)又はそれらの組み合わせを示すことができる。
組み合わせ応答310を受け取ることに応答して、マスタ300及びスヌーパ304の1つ又は複数は、一般的には、要求302にサービスするために1つ又は複数のオペレーションを実行する。これらのオペレーションは、データをマスタ300へ供給すること、1つ又は複数のキャッシュ126、130にキャッシュされたデータを無効化する又は別の方法で更新すること、キャストアウト・オペレーションを実行すること、データをシステム・メモリ108又はI/Oデバイスへ書き込むことなどを含むことができる。さらに後述するように、応答論理210による組み合わせ応答310の生成前又は生成後に、データをマスタ300との間で伝送することができる。一般に、殆どのオペレーションでは、システム・インターコネクト104上のオペレーションと関連付けられたデータは、データ・インターコネクト204を介して伝送される。しかしながら、本明細書でさらに説明するように、少なくとも幾つかの実施形態においては、幾つかのオペレーションにおいて、データは、アドレス・インターコネクト202を介して伝送される。
要求に応答してスヌーパ304により提供される部分応答、及び要求に応答してスヌーパを実行したオペレーション、もしくはその組み合わせ応答又はそれらの組み合わせは、要求により指定されたターゲット・アドレスに関して、スヌーパがコヒーレンシの最高点(Highest Point of Coherency、HPC)であるか、コヒーレンシの最低点(Lowest Point of Coherency、LPC)であるか、又はそのどちらでもないかによって決まり得る。LPCは、本明細書では、メモリ・ブロックのためのリポジトリとして機能するメモリ・デバイス又はI/Oデバイスとして定義される。メモリ・ブロックのHPCが存在しない場合、LPCはメモリ・ブロックの真のイメージを保持し、メモリ・ブロックの付加的なキャッシュされたコピーを生成する要求を許可する又は拒否する権限を有する。図1及び図2のデータ処理システムにおける典型的な要求においては、LPCは、参照されるメモリ・ブロックのためのリポジトリとして機能するシステム・メモリ108のメモリ・コントローラ106、又はメモリ・マップトI/Oアドレスをもたらすホスト・ブリッジ110となる。HPCは、本明細書では、メモリ・ブロックの真のイメージをキャッシュし(LPCにおける対応するメモリ・ブロックと一致する場合又は一致しない場合もある)、メモリ・ブロックを変更する要求を許可する又は拒否する権限を有する、一意に識別されるデバイスとして定義される。記述的に、HPCは、メモリ・ブロックを変更しないオペレーションに応答して、メモリ・ブロックの共有コピーを要求側に提供することもできる。このように、図1及び図2のデータ処理システムの実施形態における典型的な要求において、HPCは、存在する場合には、L2キャッシュ230となる。他の指標を使用してメモリ・ブロックのHPCを指定することもできるが、本発明の好ましい実施形態は、L2キャッシュ130のディレクトリ内の選択されたキャッシュ状態を用いて、メモリ・ブロックのHPC(存在する場合)を指定する。
さらに図3を参照すると、存在する場合には要求302内で参照したメモリ・ブロックに対するHPCは、又はHPCが存在しない場合にはメモリ・ブロックのLPCは、保護ウィンドウ312aの間、要求402に応答してメモリ・ブロックのコヒーレンス所有権の移転を防止する責任を有することが好ましい。図3に示す例示的なシナリオにおいては、要求302の要求アドレスが指定するメモリ・ブロックに対するHPCであるスヌーパ304は、少なくとも、スヌーパ304がその部分応答306を決定した時点からスヌーパ304が組み合わせ応答310を受け取るまで継続する保護ウィンドウ312aの間(及び場合によってはその後)、マスタ300への要求されたメモリ・ブロックの所有権の移転を必要に応じて防止する。保護ウィンドウ312aの間、スヌーパ304は、同じ要求アドレスを指定している他の要求に部分応答306(例えば、再試行Presp)を提供することによって所有権の移転を防止し、この部分応答306は、そうした所有権がマスタ300へ成功裡に移転されるまで、他のマスタがコヒーレンス所有権を取得することを防止する。マスタ300は同様に、組み合わせ応答310を受け取った後に要求302内で要求されたメモリ・ブロックの所有権を保護するために、保護ウィンドウ312bを開始する。
スヌーパ304は全て、上述のCPU及びI/Oの要求を処理するためのリソースが限られているので、幾つかの異なるレベルの部分応答及び対応する組み合わせ応答が可能である。例えば、要求されたメモリ・ブロックを担当するメモリ・コントローラ106が、要求を処理するために使用可能なキュー・エントリを有する場合には、メモリ・コントローラ106は、要求に対してLPCとして働くことができることを示す部分応答で応答することができる。一方、メモリ・コントローラ106が、要求を処理するために使用可能なキュー・エントリをもたない場合には、メモリ・コントローラ106は、メモリ・ブロックに対するLPCであることを示す部分応答で応答することができるが、現時点で要求にサービスすることはできない。同様に、L2キャッシュ130は、スヌープされた要求302を処理するために、使用可能なSN機械144を要求し、L2ストレージ・アレイ及びディレクトリ140へのアクセスすることがある。これらのリソースのいずれか(又は両方)にアクセスできない場合には、必要なリソースがないために要求にサービスできないこと(例えば、再試行)を知らせる部分応答(及び対応するCR)をもたらす。
ここで図4を参照すると、データ処理システムのシステム・インターコネクト上で、キャッシュ不可能ユニット(NCU)がキャッシュ禁止(CI)書き込み要求を発行する従来技術の方法の高レベル論理フローチャートが示される。理解を促進するために、図4の従来技術の方法は、図1の例示的なデータ処理システム100及び図3に示される例示的なオペレーションを参照して説明する。
図4のプロセスは、ブロック400で開始し、次いで、NCU146のNST機械150が、ストア・バス164及びNSQ148を介して関連付けられたプロセッサ・コア120からCI書き込み要求を受け取ることを示す、ブロック402に進む。CI書き込み要求は、例えば、キャッシュ禁止メモリの領域をターゲットとするプロセッサ・コア120による対応するストア命令の実行によって生成され、少なくともターゲット・アドレス及び書き込みデータを含む。
CI書き込み要求を受け取ることに応答して、NST機械150は、アドレス・インターコネクト202上でCI書き込み要求を発行する(ブロック404)。図6Aに示すように、CI書き込み要求600は、少なくとも、要求をCI書き込み要求として識別する要求タイプ・フィールド602と、CI書き込み要求を発行する、処理ユニット102、NCU146、及びNST機械150を識別するマスタ・タグ・フィールド604と、関連付けられたプロセッサ・コア120によって提供されるターゲット・アドレスを指定するアドレス・フィールド606とを含む。
図3を参照して上述したように、CI書き込み要求に応答して、データ処理システム100内のスヌーパ304は、それぞれの部分応答(Presp)306を提供する。これらの部分応答306は論理的に組み合わされ、応答論理308のインスタンス(例えば、発行処理ユニット102内に常駐する)は、部分応答306に基づいて、CI書き込み要求に対する組み合わせ応答(Cresp)310を形成する。キャッシュ・スヌーパは、典型的には、キャッシュ禁止要求に対するヌル部分応答を生成し、キャッシュ禁止要求に対する付加的な処理を行わない。
図6Bは、Presp306及びCresp310の両方に用いることができるコヒーレンス応答610の形式の一例を示す。コヒーレンス応答610は、処理ユニット102、NCU146、及びCI書き込み要求を発行するNST機械150を識別するマスタ・タグ・フィールド612を含む。さらに、コヒーレンス応答610は、CI書き込み要求のPresp306及びCresp310において、CI書き込みデータの宛先(例えば、メモリ・コントローラ106又はホスト・ブリッジ110)であるスヌーパ304(より正確には、宛先デバイス200及びキュー・エントリ212)を示す、宛先タグ・フィールド614を含む。Presp306において、宛先タグ・フィールド614は、CI書き込みデータの最終的な宛先ではないスヌーパ304によって変更されない。コヒーレンス応答610はまた、Presp306においてはスヌーパ304の蓄積されたコヒーレンス応答を示し(すなわち、要求に対するスヌーパ304の部分応答は、応答フィールド616内で互いに論理和演算することができ)、かつ、Cresp310においては、部分応答306に基づいて、CI書き込み要求に対するシステム全体のコヒーレンス応答を示す、応答フィールド616も含む。CI書き込み要求のCresp310に対する、応答フィールド616内に示される可能なコヒーレンス応答は、例えば、成功又は再試行を含む。
図4に戻ると、ブロック406において、CI書き込み要求を発行したNST機械150は、関連付けられたCresp310(コヒーレンス応答610のマスタ・タグ・フィールド612で識別される)を監視し、Cresp310の応答フィールド616がCI書き込み要求の成功を示すかどうかを判断する。示していない場合(例えば、Cresp310が応答フィールド616で再試行を示す)、プロセスは、NST機械150がアドレス・インターコネクト202上でCI書き込み要求を再発行する、ブロック404に戻る。ブロック406において、代わりにNST機械150が、Cresp310はCI書き込み要求の成功を示すと判断したことに応答して、NST機械150は、Cresp310の宛先タグ・フィールド614から、関連する宛先デバイス200及びキュー・エントリ212を識別する宛先タグを抽出する(ブロック408)。NST機械150は最初に、CI書き込み用のデータ・パケットを形成する(ブロック410)。図6Cに示すように、データ・パケット620は、Cresp310の宛先タグ・フィールド614から抽出された宛先タグ情報を含む宛先タグ・フィールド622、並びにプロセッサ・コア120から受け取った書き込みデータを含むデータ・フィールド624を含む。さらにブロック410に示すように、次いで、NST機械150は、ポイント・ツー・ポイントのデータ・インターコネクト204を介して、データ・パケットを関連する宛先デバイス200に伝送する。その後、図4のプロセスはブロック412で終了する。
ここで図5を参照すると、宛先デバイス200(例えば、メモリ・コントローラ106又はホスト・ブリッジ110など)がCI書き込み要求にサービスする従来技術の方法の高レベル論理フローチャートが示される。図5のプロセスは、ブロック500で開始し、次いで、宛先デバイス200が、アドレス・フィールド606内で宛先デバイス200が担当するターゲット・アドレスを指定するCI書き込み要求600を受け取ることを示す、ブロック502に進む。CI書き込み要求600を受け取ることに応答して、宛先デバイス200は、要求キュー210におけるキュー・エントリ212が、CI書き込み要求への割り当てのために利用可能かどうか判断する(ブロック504)。利用可能でない場合、宛先デバイス200は、応答フィールド616において再試行を示すPresp306を提供する(ブロック506)。このPresp306は、応答論理308の関連するインスタンスに、同じく応答フィールド616における再試行を示すCresp310を生成させる。ブロック506に続いて、図5のプロセスは、ブロック520で終了する。
ブロック504に戻り、要求キュー210においてエントリ212がCI書き込み要求のために利用可能であるとの判断に応答して、宛先デバイス200は応答フィールド616における成功を示すPresp306を提供し、CI書き込み要求600のアドレス・フィールド606において指定されたアドレスをアドレス・フィールド214にロードし、要求タイプ・フィールド602のコンテンツの表示を要求フィールド216にロードすることによって、CI書き込み要求を要求キュー210の利用可能なエントリ212にエンキューする(ブロック510)。ブロック512に示すように、次に、宛先デバイス200は、データ・インターコネクト204を介して、CI書き込み要求のデータ・パケット620の受け取りを監視する。CI書き込み要求のデータ・パケット620を受け取ることに応答して、宛先タグ・フィールド622により識別された宛先デバイス200は、データ・フィールド624からデータを抽出し、データをデータ・フィールド218にロードする(ブロック514)。次いで、宛先デバイス200は、例えば、データをシステム・メモリ108に格納すること又はデータを取り付けられたI/Oデバイスに書き込むことによって、CI書き込み要求を処理する(ブロック516)。その後、宛先デバイス200は、キュー・エントリ212を解放し(ブロック518)、図5のプロセスはブロック520で終了する。
本開示では、図4~図5に表されるようなCI書き込みオペレーションを実行する従来技術のプロセスは、CI書き込みオペレーションに割り当てられたキュー・エントリ212が占有されたままであるが、割り当てからその後のデータ・パケット620の受け取りまでの間に有用な作業を行わないという点で非効率であることが認識される。本開示では、キュー・エントリ212のようなシステム・リソースは必然的に限られているため、非生産的な待機によりそうしたリソースが消費される時間を削減することによって、CI書き込みオペレーションにおいて、これらの限られたリソースがより効率的に使用される場合は好ましいことが認識される。また、本開示では、キャッシュ禁止書き込みオペレーションに対するデータ配信の待ち時間が、多くの場合、例えばCI書き込みオペレーションを通じて、I/Oデバイスによる処理を開始することができるプログラムのクリティカル性能パスを決定し得ることも理解される。従って、本出願は、ブロードキャスト・アドレス・インターコネクト202を使用して、CI書き込みオペレーションを加速して、CI書き込みオペレーションの書き込みデータを通信するための複数の技術を開示する。マルチ・ビートのCI書き込み要求を用いて、アドレス・インターコネクト202を介して書き込みデータを通信する第1の実施形態が、図7、図8、及び図9A~図9Bを参照して開示される。アドレス・インターコネクト202上の別個の要求を用いて書き込みデータを通信する第2の実施形態が、図10、図11、及び図12A~図12Dを参照して開示される。
ここで図7を参照すると、第1の実施形態による、NCUが、データ処理システムのシステム・インターコネクト上で、CI書き込み要求を発行する例示的な方法の高レベル論理フローチャートが示される。理解を促進するために、図7の方法は、図1の例示的なデータ処理システム100及び図3に示される例示的なオペレーションを参照して説明される。
図7のプロセスは、ブロック700で開始し、次いで、NCU146のNST機械150が、ストア・バス164及びNSQ148を介して、関連付けられたプロセッサ・コア120からCI書き込み要求を受け取ることを示す、ブロック702に進む。CI書き込み要求は、例えば、キャッシュ禁止メモリの領域をターゲットとするプロセッサ・コア120による対応するストア命令の実行によって生成され、少なくともターゲット・アドレス及び書き込みデータを含む。
CI書き込み要求を受け取ることに応答して、NST機械150は、アドレス・インターコネクト202を介して、CI書き込み要求を、システム・インターコネクト104に結合された全てのスヌーパ304にブロードキャストする(ブロック704)。図9Aに示すように、CI書き込み要求900は、少なくとも、要求をCI書き込み要求として識別する要求タイプ・フィールド902と、処理ユニット102、NCU146、及びCI書き込み要求を発行するNST機械150を識別するマスタ・タグ・フィールド904と、関連付けられたプロセッサ・コア120から受け取ったターゲット・アドレスを指定するアドレス・フィールド906とを含む。図6Aの先行技術のCI書き込み要求600とは異なり、図9AのCI書き込み要求900は、データ・フィールド910内にCI書き込みオペレーションのための書き込みデータをさらに含み、幾つかの実施形態では、それをブロードキャスト・アドレス・インターコネクト202上の付加的なビートで通信することができる。
前述のように、CI書き込み要求に応答して、データ処理システム100内のスヌーパ304は、図3を参照して上述したように、それぞれの部分応答(Presp)306を提供する。次に、これらの部分応答306は、応答論理308のインスタンス(例えば、発行処理ユニット102内に常駐する)によって論理的に組み合わされ、CI書き込み要求に対する組み合わせ応答(Cresp)310を形成する。キャッシュ・スヌーパは、典型的には、キャッシュ禁止要求に対するヌル部分応答を生成し、付加的な処理は行わない。
図9Bは、一実施形態による、CI書き込みオペレーションのPresp306及びCresp310の両方に用いることができるコヒーレンス応答920の形式の一例を示す。コヒーレンス応答920は、処理ユニット102、NCU146、及びCI書き込み要求を発行するNST機械150を識別するマスタ・タグ・フィールド922を含む。さらに、コヒーレンス応答920は、CI書き込み要求のPresp306及びCresp310において、CI書き込みデータの宛先(例えば、メモリ・コントローラ106又はホスト・ブリッジ110)であるスヌーパ304(より正確には、宛先デバイス200及びキュー・エントリ212)を示す宛先タグ・フィールド924を含む。Presp306において、宛先タグ・フィールド924は、CI書き込みデータの最終的な宛先ではないスヌーパ304によって変えられることはない。図7~図8では、この宛先タグ・フィールド924は、CI書き込みオペレーションの書き込みデータの配信を指示するために使用されていないことがわかる。コヒーレンス応答920はまた、Presp306において、スヌーパ304の蓄積されたコヒーレンス応答を示し(すなわち、要求に対するスヌーパ304の部分応答は応答フィールド926内で互いに論理和演算することができ)、かつ、Cresp310においては、CI書き込み要求に対するシステム全体のコヒーレンス応答を示す、応答フィールド926も含む。従来技術と同様に、CI書き込み要求のCresp310に対する応答フィールド926内に示される可能なコヒーレンス応答は、例えば、成功又は再試行を含む。
図7に戻ると、ブロック706において、CI書き込み要求を発行したNST機械150は、関連付けられたCresp310(コヒーレンス応答920のマスタ・タグ・フィールド922によって識別される)を監視し、Cresp310の応答フィールド926がCI書き込み要求の成功を示すかどうかを判断する。示していない場合(例えば、Cresp310が応答フィールド926で再試行を示す)、プロセスは、NST機械150がアドレス・インターコネクト202上でCI書き込み要求を再発行することを示すブロック704に戻る。ブロック706において、代わりにNST機械150が、Cresp310はCI書き込み要求の成功を示すと判断したことに応答して、NST機械150は、割り当て解除され、図7のプロセスはブロック708で終了する。従って、本実施形態においては、NST機械150は、図4において与えられた従来技術の方法のブロック408~410に対応するいずれのステップも実行しない。
ここで図8を参照すると、第1の実施形態による、宛先デバイス200(例えば、メモリ・コントローラ106又はホスト・ブリッジ110)がCI書き込み要求にサービスする例示的なの方法の高レベル論理フローチャートが示される。図8のプロセスは、ブロック800で開始し、次いで、宛先デバイス200が、アドレス・フィールド906内で宛先デバイス200が担当するターゲット・アドレスを指定するCI書き込み要求900を受け取ることを示す、ブロック802に進む。CI書き込み要求900を受け取ることに応答して、宛先デバイス200は、要求キュー210におけるキュー・エントリ212が、CI書き込み要求900への割り当てのために利用可能かどうか判断する(ブロック804)。利用可能でない場合、宛先デバイス200は、応答フィールド926において再試行を示すPresp306を提供する(ブロック806)。このPresp306は、応答論理308に、同じく応答フィールド926における再試行を示すCresp310を生成させる。ブロック806に続いて、図8のプロセスは、ブロック820で終了する。
ブロック804に戻り、要求キュー210においてエントリ212がCI書き込み要求への割り当てに利用可能であるとの判断に応答して、宛先デバイス200は、応答フィールド926における成功を示すPresp306を提供し、CI書き込み要求900のアドレス・フィールド906で指定されたアドレスをアドレス・フィールド214にロードし、要求タイプ・フィールド902のコンテンツを要求フィールド216にロードし、選択論理220を介して、データ・フィールド910のコンテンツの表示をデータ・フィールド218にロードすることによって、CI書き込み要求を利用可能なエントリ212にエンキューする(ブロック810)。宛先デバイス200が別個のデータ・パケット620の受け取りを待つ必要がある図5のプロセスとは対照的に、図8のプロセスでは、宛先デバイス200は、例えば、データ・フィールド218からのデータをシステム・メモリ108に格納すること、又はデータ・フィールド218からのデータを取り付けられたI/Oデバイスに書き込むことによって、CI書き込み要求を直ちに処理することができる(ブロック812)。その後、宛先デバイス200は、CI書き込み要求に割り当てられたキュー・エントリ212を解放し(ブロック814)、図8のプロセスは、ブロック820で終了する。
ここで図10を参照すると、第2の実施形態による、データ処理システムのシステム・インターコネクト上で、NCUがCI書き込み要求を発行する例示的な方法の高レベル論理フローチャートが示される。理解を促進するために、図10の方法は、図1の例示的なデータ処理システム100を参照して説明される。
図10のプロセスは、ブロック1000で開始し、次いで、NCU146のNST機械150が、ストア・バス164及びNSQ148を介して、関連付けられたプロセッサ・コア120からCI書き込み要求を受け取ることを示す、ブロック1002に進む。CI書き込み要求は、例えば、キャッシュ禁止メモリの領域をターゲットとするプロセッサ・コア120による対応するストア命令の実行によって生成され、少なくともターゲット・アドレス及び書き込みデータを含む。
CI書き込み要求を受け取ることに応答して、NST機械150は、アドレス・インターコネクト202上で第1の要求をブロードキャストする(ブロック1004)。図12Aに示すように、例示的な実施形態において、第1の要求1200は、少なくとも、要求をCI書き込み要求として識別する要求タイプ・フィールド1202と、処理ユニット102、NCU146及びCI書き込み要求を発行するNST機械150を識別するマスタ・タグ・フィールド1204と、関連付けられたプロセッサ・コア120から受け取ったターゲット・アドレスを指定するアドレス・フィールド1206とを含む。このように、本実施形態では、第1の要求1200は、図6Aの従来技術のCI書き込み要求600と同じ又は類似したものとすることができる。
前述のように、第1の要求1200に応答して、データ処理システム100内のスヌーパ304は、図3を参照して上述したように、部分応答(Presp)306(ヌル応答の場合もある)を提供する。次いで、これらの部分応答306は、論理的に組み合わされ、応答論理308のインスタンス(例えば、発行処理ユニット102内に常駐する)は、Presp306に基づいて、CI書き込み要求に対する組み合わせ応答(Cresp)310を形成する。
図12Bは、第1の要求1200に対して生成されたPresp306及びCresp310の両方に用いることができる第1のコヒーレンス応答1210の例示的な形式を示す。コヒーレンス応答1210は、第1の要求1200のマスタ・タグAフィールド1204のコンテンツを指定するマスタ・タグAフィールド1212を含む。さらに、第1のコヒーレンス応答1210は、第1の要求1200のPresp306及びCresp310について、CI書き込みデータの宛先(例えば、メモリ・コントローラ106又はホスト・ブリッジ110)であるスヌーパ304(より正確には、宛先デバイス200及びキュー・エントリ212)を示す、宛先タグ・フィールド1214を含む。Presp306においては、宛先タグ・フィールド1214は、CI書き込みデータの最終的な宛先ではないスヌーパ304によって変更されない。図10~図11では、この宛先タグ・フィールド1214が、CI書き込みオペレーションのためのデータ配信を指示するために使用されていないことが観察される。コヒーレンス応答1210はまた、Presp306において、スヌーパ304の蓄積されたコヒーレンス応答を示し(すなわち、要求に対するスヌーパ304の部分応答は応答フィールド1216内で互いに論理和演算することができ)、Cresp310においては、第1の要求1200に対するシステム全体のコヒーレンス応答を示す。従来技術と同様に、第1の要求1200のCresp310に対する応答フィールド1216内に示される可能なコヒーレンス応答は、例えば、成功又は再試行を含む。
図10に戻ると、ブロック1006において、NST機械150は、第1の要求1200のCresp310の、NST機械150による受け取りと同期せずに、アドレス・インターコネクト202上で第2の要求をブロードキャストする。図12Cに示すように、例示的な実施形態では、第2の要求1220は、少なくとも、要求をCI書き込み要求として識別する要求タイプ・フィールド1222と、マスタ・タグA’フィールド1224と、CI書き込み要求の書き込みデータを指定するデータ・フィールド1226とを含む。好ましい実施形態では、マスタ・タグA’フィールド1224は、処理ユニット102、NCU146、及び第2の要求1220を発行するNST機械150を識別する一方で、マスタ・タグAフィールド1204のコンテンツとは異なることが好ましく、従って、関連する宛先デバイス200が、CI書き込み要求のターゲット・アドレスを提供する第1の要求1200と、CI書き込み要求の書き込みデータを提供する第2の要求1220とを区別することを可能にする。アドレス・インターコネクト202は、好ましくは、第1の要求1200と第2の要求1220が順序付けられたままにし、宛先デバイス200が、第2の要求1220の前に第1の要求1200を受け取ることを保証する。
図10のブロック1008は、NST機械150が、第1の要求1200のCresp310(コヒーレンス応答1210のマスタ・タグAフィールド1212で識別される)を監視し、Cresp310の応答フィールド1216が第1の要求1200の成功を示すどうか判断することを示す。示していない場合(例えば、Cresp310が応答フィールド1216で再試行を示す)、プロセスは、NST機械150がブロック1004において第1の要求1200を再発行する前に、第2の要求1220のCresp310を受け取るのを待つことを示す、ブロック1010に進む。しかしながら、NST機械150が、ブロック1008において、第1の要求1200のCresp310が成功を示すと判断した場合には、NST機械150は、図12Dのコヒーレンス応答1230の形をとることができる、第2の要求1220のCresp310を受け取るのを待つ(ブロック1012)。この例では、コヒーレンス応答1230は、マスタ・タグA’フィールド1232、宛先タグイールド1234、及び応答フィールド1236を含み、これらはそれぞれ上述のフィールド1212、1214及び1216に対応する。第2の要求1220のCrespを受け取ること応答して、NST機械150は割り当て解除され、図10のプロセスはブロック1020で終了する。
ここで図11を参照すると、第2の実施形態による、宛先デバイス200(例えば、メモリ・コントローラ106又はホスト・ブリッジ110)がCI書き込み要求にサービスする例示的な方法の高レベル論理フローチャートが示される。図11のプロセスは、ブロック1100で開始し、次いで、宛先デバイス200が、アドレス・フィールド1206内で宛先デバイス200が担当するターゲット・アドレスを指定する第1の要求1200を受け取ることを示す、ブロック1102に進む。第1の要求1200を受け取ることに応答して、宛先デバイス200は、キュー・エントリ212が、CI書き込み要求への割り当てのために利用可能かどうかを判断する(ブロック1104)。利用可能でない場合、宛先デバイス200は、応答フィールド1216における再試行を示すPresp306を提供する(ブロック1106)。このPresp306は、応答論理308に、同じく応答フィールド1216における再試行を示すCresp310を生成させる。ブロック1106に続いて、図11のプロセスは、ブロック1120で終了する。
ブロック1104に戻ると、エントリ212がCI書き込み要求のために利用可能であるとの判断に応答して、宛先デバイス200は、応答フィールド1216における成功を示すPresp306を提供し、第1の要求1200のアドレス・フィールド1206で指定されたアドレスをアドレス・フィールド214にロードし、要求タイプ・フィールド1202のコンテンツの表示を要求フィールド216にロードすることによって、CI書き込み要求を利用可能なエントリ212にエンキューする(ブロック1110)。
ブロック1112に示すように、次いで、宛先デバイス200は、アドレス・インターコネクト202上で、第2の要求1220におけるCI書き込み要求の書き込みデータの受け取りを監視する。第2の要求1220を受け取ることに応答して、宛先デバイス200は、ヌルPresp306を提供し、データ・フィールド1226からデータを抽出し、選択論理220を介して、データを関連するキュー・エントリ212のデータ・フィールド218にロードする(ブロック1114)。次いで、宛先デバイス200は、例えば、データ・フィールド218からのデータをシステム・メモリ108に格納すること又はデータ・フィールド218からのデータを取り付けられたI/Oデバイスへ書き込むことによって、CI書き込み要求を処理する(ブロック1116)。その後、宛先デバイス200は、キュー・エントリ212を解放し(ブロック1118)、図11のプロセスはブロック1120で終了する。
ここで図13を参照すると、例えば、半導体IC論理の設計、シミュレーション、試験、レイアウト及び製造に用いられる例示的な設計フロー1300のブロック図が示される。設計フロー1300は、上述され、本明細書に示される設計構造体(design structure)又はデバイスを処理して、上述の及び本明細書に示される設計構造もしくはデバイス又はその両方の論理的に又は別の方法で機能的に等価な表現を生成するように設計構造体又はデバイスを処理するためのプロセス、機械もしくは機構又はそれらの組み合わせを含む。設計フロー1300によって処理もしくは生成又はその両方が行われる設計構造体は、データ処理システム上で実行又は他の方法で処理されたときに、ハードウェア・コンポーネント、回路、デバイス、又はシステムの論理的、構造的、機械的、又は他の方法で機能的に等価な表現を生成するデータもしくは命令又はその両方を含むように、機械可読伝送又はストレージ媒体上でコード化することができる。機械は、これらに限定されるものではないが、回路、コンポーネント、デバイス、又はシステムを設計、製造、又はシミュレートするといった、IC設計プロセスに用いられるあらゆる機械を含む。例えば、機械は、リソグラフィ機械、マスクを生成するための機械もしくは機器又はその両方(例えば、eビーム・ライタ)、設計構造体をシミュレートするためのコンピュータ又は機器、製造プロセス又は試験プロセスに用いられるいずれかの装置、又は設計構造体の機能的に等価な表現をいずれかの媒体にプログラミングするためのあらゆる機械(例えば、プログラマブル・ゲート・アレイをプログラミングするための機械)を含むことができる。
設計フロー1300は、設計される表現のタイプに応じて異なり得る。例えば、特定用途向けIC(ASIC)を構築するための設計フロー1300は、標準的なコンポーネントを設計するための設計フロー1300、又はプログラマブル・ゲート・アレイ(PGA)、例えば、Altera(登録商標)Inc.又はXilinx(登録商標)Inc.から提供されているプログラマブル・ゲート・アレイ(PGA)又はフィールド・プログラマブル・ゲート・アレイ(FPGA)に設計をインスタンス化するための設計フロー1300とは異なることがある。
図13は、好ましくは設計プロセス1310によって処理される入力設計構造体1020を含む、複数のそのような設計構造体を示す。設計構造体1320は、設計プロセス1310によって生成及び処理され、ハードウェア・デバイスの論理的に等価な機能的表現を生じる、論理的シミュレーション設計構造体とすることができる。設計構造体1320はさらに、又は代替的に、設計プロセス1310によって処理されたときに、ハードウェア・デバイスの物理的構造の機能的表現を生成するデータもしくはプログラム命令又はその両方を含むこともできる。機能的もしくは構造的又はその両方の設計特徴のどちらを表すのであれ、設計構造体1320は、コア開発者/設計者によって実施されるような、電子コンピュータ支援設計(ECAD)を使用して生成することができる。機械可読データ伝送、ゲートアレイ、又はストレージ媒体上でコード化された場合、設計構造体1320を設計プロセス1310内の1つ又は複数のハードウェア・モジュールもしくはソフトウェア・モジュール又はその両方によってアクセス及び処理して、本明細書で示されるもののような電子コンポーネント、回路、電子もしくは論理モジュール、装置、デバイス、又はシステムをシミュレートするか、又は他の方法で機能的に表現することができる。そのため、設計構造体1320は、設計又はシミュレーション・データ処理システムによって処理されたときに回路又は他のレベルのハードウェア論理設計を機能的にシミュレートするか、又は他の方法で表現する、人間及び/又は機械可読ソース・コード、コンパイルされた構造体、及びコンピュータ実行可能コード構造体を含む、ファイル又は他のデータ構造体を含むことができる。このようなデータ構造体は、ハードウェア記述言語(HDL)設計エンティティ、又は、Verilog及びVHDLのような低レベルHDL設計言語及び/又はCもしくはC++のような高レベル設計言語に適合する及び/又はそれと互換性のある他のデータ構造体を含むことができる。
設計プロセス1310は、設計構造体1320のような設計構造体を含むことができるネットリスト1380を生成するために、本明細書に示されるコンポーネント、回路、デバイス、又は論理構造の設計/シミュレーションの機能的等価物を合成、変換、又はその他の方法で処理するためのハードウェア・モジュールもしくはソフトウェア・モジュール又はその両方を使用し、組み込むことが好ましい。ネットリスト1380は、例えば、集積回路設計内の他の素子及び回路への接続を記述する配線、個別部品、論理ゲート、制御回路、I/Oデバイス、モデル等のリストを表す、コンパイルされた又は他の方法で処理されたデータ構造体を含むことができる。ネットリスト1380は繰り返しプロセスを用いて合成することができ、このプロセスにおいて、ネットリスト1380は、デバイスの設計仕様及びパラメータに応じて1回又は複数回再合成される。本明細書で説明される他の設計構造体のタイプと同様に、ネットリスト1380を機械可読ストレージ媒体上に記録し、又はプログラマブル・ゲート・アレイにプログラムすることができる。媒体は、磁気又は光ディスク・ドライブのような不揮発性ストレージ媒体、プログラマブル・ゲート・アレイ、コンパクト・フラッシュ、又は他のフラッシュ・メモリとすることができる。それに加えて、又は代替的に、媒体は、システム又はキャッシュ・メモリ、又はバッファ領域とすることができる。
設計プロセス1310は、ネットリスト1380を含む様々な入力データ構造体のタイプを処理するためのハードウェア及びソフトウェア・モジュールを含むことができる。このようなデータ構造体のタイプは、例えば、ライブラリ要素1330内に常駐し、所与の製造技術(例えば、異なる技術ノード32nm、45nm、90nm等)についての、モデル、レイアウト及び記号表示を含む、一般的に用いられる要素、回路及びデバイスのセットを含むことができる。データ構造体のタイプは、設計仕様1340と、特性データ1350と、検証データ1360と、設計規則1390と、入力試験パターン、出力試験結果及び他の試験情報を含むことができる試験データ・ファイル1385とをさらに含むことができる。設計プロセス1310は、例えば、応力分析、熱分析、機械イベント・シミュレーション、鋳造、成形、ダイ・プレス形成等のような動作のためのプロセス・シミュレーションのような標準的な機械設計プロセスをさらに含むことができる。機械設計の当業者であれば、本発明の範囲から逸脱することなく、設計プロセス1310に用いられる可能な機械設計ツール及びアプリケーションの範囲を認識することができる。設計プロセス1310はまた、タイミング分析、検証、設計規則照合、場所及びルート動作等のような標準的な回路設計プロセスを実行するためのモジュールを含むこともできる。
設計プロセス1310は、第2の設計構造体1390を作成するために、HDLコンパイラ及びシミュレーション・モデル構築ツールのような論理的及び物理的設計ツールを使用し、組み込んで、設計構造体1320を、図示された支持データ構造体のうちの幾つか又は全てと共に、いずれかの付加的な機械設計又はデータ(該当する場合)と併せて処理する。設計構造体1390は、機械的なデバイス及び構造体のデータの交換に用いられるデータ形式(例えば、IGES、DXF、Parasolid XT、JT、DRG、又はこのような機械的設計構造体を格納又はレンダリングするのに適した他のいずれかの形式で格納される情報)でストレージ媒体又はプログラマブル・ゲート・アレイ上に存在する。設計構造体1320と同様に、設計構造体1390は、好ましくは、1つ又は複数のファイル、データ構造体、又は他のコンピュータ・コード化データ又は命令を含み、これは、伝送又はデータ・ストレージ媒体上に存在し、かつ、ECADシステムによって処理されると本明細書に示される本発明の実施形態の1つ又は複数の論理的又は他の方式で機能的に等価な形態を生成する。1つの実施形態において、設計構造体1390は、例えば、本明細書に示されるデバイスを機能的にシミュレートする、コンパイルされた実行可能なHDLシミュレーション・モデルを含むことができる。
設計構造体1390はまた、集積回路のレイアウト・データの交換に用いられるデータ形式もしくは記号データ形式(例えば、GDSII(GDS2)、GL1、OASIS、マップファイル、又はこのような設計データ構造体を格納するためのいずれかの他の適切な形式で格納される情報)又はその両方を使用することもできる。設計構造体1390は、例えば、記号データ、マップファイル、試験データ・ファイル、設計コンテンツ・ファイル、製造データ、レイアウト・パラメータ、配線、金属のレベル、ビア、形状、製造ラインを通じた経路指定のためのデータ、並びに、上記に説明され、本明細書に示されるようなデバイス又は構造体を製造するために製造業者又は他の設計者/開発者により要求される他のいずれかのデータといった情報を含むことができる。次に、設計構造体1390はステージ1395に進むことができ、そこで、例えば、設計構造体1390は、テープに読み出されたり、製造のためにリリースされたり、マスク会社にリリースされたり、別の設計会社に送られたり、顧客に返送されたりする。
既述のように、少なくとも1つの実施形態において、データ処理システムは、ブロードキャスト・アドレス・インターコネクト及びデータ・インターコネクトを含むシステム・インターコネクトに結合された複数の処理ユニットを含む。処理ユニットは、メモリ・アクセス命令を実行するプロセッサ・コアと、プロセッサ・コアに結合され、プロセッサ・コアによるアクセスのためにデータを格納するように構成されたキャッシュ・メモリとを含む。処理ユニットは、アドレス・インターコネクト上で、システム・インターコネクトに結合された宛先デバイスに対するキャッシュ禁止書き込み要求及び書き込みデータをブロードキャストするように構成される。様々な実施形態において、最初のキャッシュ禁止要求及び書き込みデータは、アドレス・インターコネクト上の同じ又は異なる要求で通信することができる。
種々の実施形態が具体的に示され、説明されたが、当業者であれば、添付の特許請求の範囲から逸脱することなく、形態及び細部における種々の変更を成し得ること、及びこれらの代替的な実施は全て、添付の特許請求の範囲内に入ることを理解するであろう。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で行われることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には、実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実施できることにも留意されたい。
さらに、コンピュータ・システムに関して態様が説明されたが、本発明は、データ処理システムによって処理することができるプログラム・コードを格納するコンピュータ可読ストレージ・デバイスを含むプログラム製品として代替的に実装できることを理解されたい。コンピュータ可読ストレージ・デバイスは、揮発性もしくは不揮発性メモリ、光ディスクもしくは磁気ディスク等を含むことができる。しかしながら、本明細書で用いられる場合、「ストレージ・デバイス」は、法定製造物品のみを含み、かつ、信号媒体自体、一時的伝搬信号自体及びエネルギー自体を除外するように具体的に定められる。
プログラム製品は、データ処理システム上で実行される又は他の方法で処理されるとき、本明細書で開示されるハードウェア・コンポーネント、回路、デバイス、又はシステムの論理的、構造的、又は他の方法で機能的に等価な表現(シミュレーション・モデルを含む)を生成する、データもしくは命令又はその両方を含むことができる。このようなデータもしくは命令又はその両方は、ハードウェア記述言語(HDL)設計エンティティ、又はVerilog及びVHDLなどの低レベルHDL設計言語、及び/又はCもしくはC++などの高レベル設計言語に適合する及び/又はそれと互換性のある他のデータ構造体を含むことができる。さらに、データもしくは命令又はその両方は、集積回路のレイアウト・データの交換に用いられるデータ形式、もしくは記号データ形式(例えば、GDSII(GDS2)、GL1、OASIS、マップファイル、又はこのような設計データ構造体を格納するための他のいずれかの適切な形式で格納される情報)又はその両方を使用することもできる。

Claims (16)

  1. ブロードキャスト・アドレス・インターコネクト及びデータ・インターコネクトを有するシステム・インターコネクトを含むデータ処理システムのための処理ユニットであって、
    メモリ・アクセス命令を実行するプロセッサ・コアと、
    前記プロセッサ・コアに結合され、前記プロセッサ・コアによるアクセスのために、データを格納するように構成された、キャッシュ・メモリと、
    を含み、
    前記処理ユニットは、前記アドレス・インターコネクト上で、前記システム・インターコネクトに結合された宛先デバイスに対するキャッシュ禁止書き込み要求及び書き込みデータをブロードキャストするように構成される、
    処理ユニット。
  2. 前記処理ユニットは、前記アドレス・インターコネクト上の第1のビートで前記キャッシュ禁止書き込み要求をブロードキャストし、前記アドレス・インターコネクト上の第2のビートで前記書き込みデータをブロードキャストする、請求項1に記載の処理ユニット。
  3. 前記処理ユニットは、前記書き込みデータを、前記キャッシュ禁止書き込み要求に含めてブロードキャストするように構成される、請求項1に記載の処理ユニット。
  4. 前記処理ユニットは、前記キャッシュ禁止書き込み要求内で、前記宛先デバイスを識別する宛先タグを指定することなく、前記キャッシュ禁止書き込み要求をブロードキャストするように構成される、請求項3に記載の処理ユニット。
  5. 前記キャッシュ禁止書き込み要求は第1の要求であり、
    前記処理ユニットは、前記アドレス・インターコネクト上で、前記書き込みデータを、異なる第2の要求に含めてブロードキャストするように構成される、請求項1に記載の処理ユニット。
  6. 請求項1に記載の前記処理ユニットを含む前記複数の処理ユニットと、
    前記宛先デバイスと、
    前記宛先デバイス及び前記複数の処理ユニットを通信可能に結合する前記システム・インターコネクトと
    を含む、データ処理システム。
  7. 前記宛先デバイスは、前記データ処理システムのシステム・メモリのメモリ・コントローラを含む、請求項6に記載のデータ処理システム。
  8. 前記宛先デバイスは、インターコネクト・ブリッジを含む、請求項6に記載のデータ処理システム。
  9. 前記データ・インターコネクトは、ポイント・ツー・ポイント・インターコネクトである、請求項6に記載のデータ処理システム。
  10. ブロードキャスト・アドレス・インターコネクト及びデータ・インターコネクトを有するシステム・インターコネクトに結合された複数の処理ユニットを含むデータ処理システムの処理ユニットにおけるデータ処理方法であって、
    前記処理ユニットが、前記処理ユニットのプロセッサ・コアから、キャッシュ禁止書き込み要求及び書き込みデータを受け取ることと、
    前記キャッシュ禁止書き込み要求を受け取ることに応答して、前記処理ユニットは、前記データ処理システムの前記アドレス・インターコネクト上で、前記キャッシュ禁止書き込み要求及び前記書き込みデータをブロードキャストすることと
    を含む、方法。
  11. 前記ブロードキャストすることは、前記アドレス・インターコネクト上の第1のビートで前記キャッシュ禁止書き込み要求をブロードキャストすることと、前記アドレス・インターコネクト上の第2のビートで前記書き込みデータをブロードキャストすることとを含む、請求項10に記載の方法。
  12. 前記ブロードキャストすることは、前記処理ユニットが、前記書き込みデータを、前記キャッシュ禁止書き込み要求に含めてブロードキャストすることを含む、請求項10に記載の方法。
  13. 前記ブロードキャストすることは、前記処理ユニットが、前記キャッシュ禁止書き込み要求内で、前記宛先デバイスを識別する宛先タグを指定することなく、前記キャッシュ禁止書き込み要求をブロードキャストすることを含む、請求項12に記載の方法。
  14. 前記キャッシュ禁止書き込み要求は第1の要求であり、
    前記ブロードキャストすることは、前記処理ユニットが、前記アドレス・インターコネクト上で、前記書き込みデータを、異なる第2の要求に含めてブロードキャストすることを含む、請求項10に記載の方法。
  15. 前記宛先デバイスは、前記データ処理システムのシステム・メモリのメモリ・コントローラ及びインターコネクト・ブリッジを含むセットのうちの1つである、請求項10に記載の方法。
  16. 集積回路を設計、製造又は試験するための、機械可読ストレージ・デバイス内に有形に具体化された設計構造体であって、前記設計構造体は、請求項1から請求項5までのいずれかに記載の前記処理ユニットを含む、設計構造体。
JP2022516628A 2019-09-30 2020-08-20 キャッシュ禁止書き込みオペレーション Pending JP2022549095A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/588,241 US11176038B2 (en) 2019-09-30 2019-09-30 Cache-inhibited write operations
US16/588,241 2019-09-30
PCT/IB2020/057835 WO2021064484A1 (en) 2019-09-30 2020-08-20 Cache-inhibited write operations

Publications (1)

Publication Number Publication Date
JP2022549095A true JP2022549095A (ja) 2022-11-24

Family

ID=75163444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022516628A Pending JP2022549095A (ja) 2019-09-30 2020-08-20 キャッシュ禁止書き込みオペレーション

Country Status (6)

Country Link
US (1) US11176038B2 (ja)
JP (1) JP2022549095A (ja)
CN (1) CN114430819B (ja)
DE (1) DE112020004672T5 (ja)
GB (1) GB2603693B (ja)
WO (1) WO2021064484A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379236B2 (en) * 2019-12-27 2022-07-05 Intel Corporation Coherency tracking apparatus and method for an attached coprocessor or accelerator

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306298A (en) 1979-10-09 1981-12-15 Texas Instruments Incorporated Memory system for microprocessor with multiplexed address/data bus
US4443864A (en) 1979-10-09 1984-04-17 Texas Instruments Incorporated Memory system for microprocessor with multiplexed address/data bus
DE69128107T2 (de) 1990-05-25 1998-02-26 At & T Corp Busanordnung für Speicherzugriff
US5191656A (en) 1991-08-29 1993-03-02 Digital Equipment Corporation Method and apparatus for shared use of a multiplexed address/data signal bus by multiple bus masters
US5978874A (en) 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
US6209053B1 (en) 1998-08-28 2001-03-27 Intel Corporation Method and apparatus for operating an adaptive multiplexed address and data bus within a computer system
US6393500B1 (en) 1999-08-12 2002-05-21 Mips Technologies, Inc. Burst-configurable data bus
US6834296B2 (en) * 2002-03-01 2004-12-21 International Business Machines Corporation Apparatus and method of multicasting or broadcasting data from one partition of a partitioned computer system to a plurality of other partitions
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8131951B2 (en) 2008-05-30 2012-03-06 Freescale Semiconductor, Inc. Utilization of a store buffer for error recovery on a store allocation cache miss
US8131935B2 (en) 2009-04-07 2012-03-06 International Business Machines Corporation Virtual barrier synchronization cache
US8095733B2 (en) 2009-04-07 2012-01-10 International Business Machines Corporation Virtual barrier synchronization cache castout election
CN105183662B (zh) 2015-07-30 2017-12-29 复旦大学 一种无cache一致性协议的分布式共享片上存储架构
US10126952B2 (en) * 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device
US10157134B2 (en) * 2016-04-11 2018-12-18 International Business Machines Corporation Decreasing the data handoff interval for a reserved cache line based on an early indication of a systemwide coherence response
US10579527B2 (en) * 2018-01-17 2020-03-03 International Business Machines Corporation Remote node broadcast of requests in a multinode data processing system
CN109947363B (zh) 2018-12-11 2022-10-14 深圳供电局有限公司 一种分布式存储系统的数据缓存方法

Also Published As

Publication number Publication date
GB2603693A (en) 2022-08-10
DE112020004672T5 (de) 2022-07-14
GB2603693B (en) 2023-02-08
WO2021064484A1 (en) 2021-04-08
US20210096990A1 (en) 2021-04-01
CN114430819A (zh) 2022-05-03
CN114430819B (zh) 2023-04-07
US11176038B2 (en) 2021-11-16
GB202205124D0 (en) 2022-05-25

Similar Documents

Publication Publication Date Title
CN108885583B (zh) 高速缓存存储器访问
US10824567B2 (en) Selectively preventing pre-coherence point reads in a cache hierarchy to reduce barrier overhead
JP6933896B2 (ja) 複数のプロセッサ・コアを含むマルチスレッド・データ処理システムにおいて変換エントリを無効化する方法、処理ユニット、データ処理システム、設計構造体
US20030126365A1 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US10152417B2 (en) Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation
US10216519B2 (en) Multicopy atomic store operation in a data processing system
US10102130B2 (en) Decreasing the data handoff interval in a multiprocessor data processing system based on an early indication of a systemwide coherence response
US10705957B1 (en) Selectively updating a coherence state in response to a storage update
EP4066119B1 (en) Cache snooping mode extending coherence protection for certain requests
JP2023504622A (ja) ある要求に対してコヒーレンス保護を拡張するキャッシュ・スヌーピング・モード
US10956070B2 (en) Zeroing a memory block without processor caching
US10733102B2 (en) Selectively updating a coherence state in response to a storage update
CN114430819B (zh) 数据处理系统及其处理单元和处理方法
US11157408B2 (en) Cache snooping mode extending coherence protection for certain requests
US10949346B2 (en) Data flush of a persistent memory cache or buffer
US20200201764A1 (en) Selectively updating a coherence state in response to a storage update
US9665297B1 (en) Injection of at least a partial cache line in a private multilevel cache hierarchy
US11556472B1 (en) Data processing system having masters that adapt to agents with differing retry behaviors

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220414

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220401

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240123

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240423