JP2021519456A - キャッシュ・メモリ動作の調整 - Google Patents
キャッシュ・メモリ動作の調整 Download PDFInfo
- Publication number
- JP2021519456A JP2021519456A JP2020551810A JP2020551810A JP2021519456A JP 2021519456 A JP2021519456 A JP 2021519456A JP 2020551810 A JP2020551810 A JP 2020551810A JP 2020551810 A JP2020551810 A JP 2020551810A JP 2021519456 A JP2021519456 A JP 2021519456A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- processor
- line
- coherence
- copy
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache 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)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
Description
1.コヒーレント共有メモリ・システムのプロセッサ・デバイスによる複数の命令を含む命令シーケンスの実行を調整するための方法であって、プロセッサ・デバイスが、プロセッサ・キャッシュ・メモリに動作可能なように接続され、方法が、
・ プロセッサ・デバイスによって命令シーケンスの命令を実行することであって、命令の実行が、共有メモリ・システムのメイン・メモリのメモリ・ラインのコピーをプロセッサ・キャッシュ・メモリに充填することをプロセッサ・デバイスに行わせる、実行すること、
・ メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示す第1のフラグ情報を検知すると、プロセッサ・デバイスによって、個々のメモリ・ラインにフラグを付けること、
・ メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたことを示す第2のフラグ情報を検知すると、プロセッサ・デバイスによって、個々のメモリ・ラインのフラグを外すこと、
・ 命令シーケンスのメモリ・バリア命令を実行すると、メモリ・ラインがフラグを付けられている間、プロセッサ・デバイスによって、メモリ・バリア命令の実行の完了を妨げること
を含む、方法。
2.メモリ・バリア命令の実行の完了が、プロセッサ・デバイスによって以前にフラグを付けられた全てのメモリ・ラインがフラグを外されるまで妨げられる、項目1に記載の方法。
3.メモリ・ラインのフラグ付けが、メモリ・ラインの識別子をプロセッサ・デバイスのバッファに追加することを含み、フラグ付きメモリ・ラインのフラグ外しが、プロセッサのバッファからメモリ・ラインの識別子を削除することを含む、項目1または2のいずれかに記載の方法。
4.バッファに記憶されたフラグ付きメモリ・ラインの識別子が、メイン・メモリ内の個々のメモリ・ラインのメモリ・アドレスを含む、項目3に記載の方法。
5.メモリ・バリア命令の実行の完了が、プロセッサ・デバイスのバッファが空になるまで妨げられる、項目3または4のいずれかに記載の方法。
6.共有メモリ・システムのメモリ一貫性が、コヒーレンス・ディレクトリを使用して実現される、項目1ないし5のいずれかに記載の方法。
7.第1および第2のフラグ情報のうちの少なくとも1つが、コヒーレンス・ディレクトリからプロセッサ・デバイスによって受け取られたメッセージによって提供される、項目6に記載の方法。
8.第1および第2のフラグ情報のうちの少なくとも1つが、コヒーレンス・ディレクトリにプロセッサ・デバイスによって送られたメッセージによって提供される、項目6または7のいずれかに記載の方法。
9.共有メモリ・システムのメモリ一貫性が、ブロードキャスティングを使用して実現される、項目1ないし5のいずれかに記載の方法。
10.メモリ・ラインのコピーをプロセッサ・キャッシュ・メモリに充填することをプロセッサ・デバイスに行わせる命令が、個々のメモリ・ラインへのライト・アクセスを指定する命令である、項目1ないし9のいずれかに記載の方法。
11.共有メモリ・システム全体のメモリ一貫性の伝搬が、共有メモリ・システムのさらなるプロセッサ・デバイスのリモート・プロセッサ・キャッシュ・メモリによって使用されるメモリ・ラインのさらなるコピーを無効化することを含む、項目1ないし10のいずれかに記載の方法。
12.プロセッサ・キャッシュ・メモリの内容の修正に関するものであり、プロセッサ・デバイスによって処理されたメッセージが、一貫性伝搬フィールドを含み、一貫性伝搬フィールドが、修正についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報、修正についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたことを示すフラグ情報、または、フラグを付けるアクションも、フラグを外すアクションも要求されていないことを示すフラグ情報のうちの1つを含む、項目1ないし11のいずれかに記載の方法。
13.コヒーレント共有メモリ・システムのプロセッサ・デバイスであって、プロセッサ・キャッシュ・メモリに動作可能なように接続され、複数の命令を含む命令シーケンスの実行を調整するように構成され、調整することが、
・ 命令シーケンスの命令を実行することであって、命令の実行が、共有メモリ・システムのメイン・メモリのメモリ・ラインのコピーをプロセッサ・キャッシュ・メモリに充填することをプロセッサ・デバイスに行わせる、実行すること、
・ メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報を検知すると、プロセッサ・デバイスによって、個々のメモリ・ラインにフラグを付けること、
・ メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたことを示すフラグ情報を検知すると、プロセッサ・デバイスによって、個々のメモリ・ラインのフラグを外すこと、
・ 命令シーケンスのメモリ・バリア命令を実行すると、メモリ・ラインがフラグを付けられている間、メモリ・バリア命令の実行の完了を妨げること
を含む、プロセッサ・デバイス。
14.メモリ・バリア命令の実行の完了が、プロセッサ・デバイスによって以前にフラグを付けられた全てのメモリ・ラインがフラグを外されるまで妨げられる、項目13に記載のプロセッサ・デバイス。
15.プロセッサ・デバイスが、コピーがプロセッサ・キャッシュ・メモリに充填されたが、個々のコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないメモリ・ラインを登録するためのバッファを備え、メモリ・ラインのフラグ付けが、メモリ・ラインの識別子をプロセッサ・デバイスのバッファに追加することを含み、フラグ付きメモリ・ラインのフラグ外しが、プロセッサのバッファからメモリ・ラインの識別子を削除することを含む、項目13または14のいずれかに記載のプロセッサ・デバイス。
16.バッファに記憶されたフラグ付きメモリ・ラインの識別子が、メイン・メモリ内の個々のメモリ・ラインのメモリ・アドレスを含む、項目15に記載のプロセッサ・デバイス。
17.メモリ・バリア命令の実行の完了が、プロセッサ・デバイスのバッファが空になるまで妨げられる、項目15または16のいずれかに記載のプロセッサ・デバイス。
18.共有メモリ・システムのメモリ一貫性を実現するコヒーレンス・ディレクトリを管理するための方法であって、
・ コヒーレンス・ディレクトリによって、共有メモリ・システムのメイン・メモリのメモリ・ラインに割り当てられたフラグ情報を維持することであって、共有メモリ・システムのプロセッサ・デバイスが、プロセッサ・デバイスに動作可能なように接続されたプロセッサ・キャッシュ・メモリへのメモリ・ラインのコピーの充填を開始し、フラグ情報が、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたかどうかを示す、維持すること、
・ プロセッサ・デバイスにコヒーレンス・ディレクトリによって送られることになるメッセージにフラグ情報を含めること、
・ コヒーレンス・ディレクトリによってメッセージをプロセッサ・デバイスに送ること
を含む、方法。
19.コヒーレンス・ディレクトリが、メモリ・ラインのコピーの充填についてのメモリ一貫性を共有メモリ・システムのさらなるプロセッサ・デバイスのリモート・プロセッサ・キャッシュ・メモリに伝搬させるために、リモート・プロセッサ・キャッシュ・メモリの内容の修正が必要であると判定すると、メモリ・ラインに割り当てられたフラグ情報の維持を開始する、項目18に記載の方法。
20.コヒーレンス・ディレクトリが、メモリ・ラインのコピーの充填についてのメモリ一貫性をリモート・プロセッサ・キャッシュ・メモリに伝搬させるために、リモート・プロセッサ・キャッシュ・メモリの内容の修正をリクエストするリクエストをリモート・プロセッサ・キャッシュ・メモリに送る、項目19に記載の方法。
21.コヒーレンス・ディレクトリによってリクエストされた修正が、リモート・プロセッサ・キャッシュ・メモリに含まれるメモリ・ラインのさらなるコピーの無効化を含む、項目20に記載の方法。
22.コヒーレンス・ディレクトリが、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬による、共有メモリ・システムのさらなるプロセッサ・デバイスのプロセッサ・キャッシュ・メモリの内容の修正を追跡するためのレジスタを備える、項目19に記載の方法。
23.レジスタが、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたとき、コヒーレンス・ディレクトリによって通知されることになる共有メモリ・システムのプロセッサ・デバイスのプロセッサ・キャッシュ・メモリを識別する一貫性伝搬通知指標を含む、項目22に記載の方法。
24.共有メモリ・システムのメモリ一貫性を実現するコヒーレンス・ディレクトリであって、
・ 共有メモリ・システムのメイン・メモリのメモリ・ラインに割り当てられたフラグ情報を維持することであって、共有メモリ・システムのプロセッサ・デバイスが、プロセッサ・デバイスに動作可能なように接続されたプロセッサ・キャッシュ・メモリへのメモリ・ラインのコピーの充填を開始し、フラグ情報が、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたかどうかを示す、維持すること、
・ メッセージにフラグ情報を含めること、
・ メッセージをプロセッサ・デバイスに送ること
を行うように構成された、コヒーレンス・ディレクトリ。
25.共有メモリ・システムのメモリ一貫性を実現するコヒーレンス・ディレクトリ、メイン・メモリ、および、プロセッサ・キャッシュ・メモリに動作可能なように接続されたプロセッサ・デバイスを備えるコヒーレント共有メモリ・システムであって、
プロセッサ・デバイスが、複数の命令を含む命令シーケンスの実行を調整するように構成され、調整することが、
・ 命令シーケンスの命令を実行することであって、命令の実行が、メイン・メモリのメモリ・ラインのコピーをプロセッサ・キャッシュ・メモリに充填することをプロセッサ・デバイスに行わせる、実行すること、
・ メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報を検知すると、プロセッサ・デバイスによって、個々のメモリ・ラインにフラグを付けること、
・ メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたことを示すフラグ情報を検知すると、プロセッサ・デバイスによって、個々のメモリ・ラインのフラグを外すこと、
・ 命令シーケンスのメモリ・バリア命令を実行すると、メモリ・ラインがフラグを付けられている間、メモリ・バリア命令の実行の完了を妨げること
を含み、
コヒーレンス・ディレクトリが、メモリ・ラインのコピーの充填の開始を判定すると、メイン・メモリのメモリ・ラインに割り当てられたフラグ情報を維持するように構成され、フラグ情報が、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたかどうかを示し、維持することが、
・ 最初に、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報を第1のメッセージに含めること、
・ 第1のメッセージをプロセッサ・デバイスに送ること、
・ 伝搬の確認を得ると、フラグ情報を更新し、メモリ・ラインのコピーの充填についての共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたことを示す更新したフラグ情報を第2のメッセージに含めること、
・ 第2のメッセージをプロセッサ・デバイスに送ること
を含む、
コヒーレント共有メモリ・システム。
Claims (25)
- コヒーレント共有メモリ・システムのプロセッサ・デバイスによる複数の命令を含む命令シーケンスの実行を調整するための方法であって、前記プロセッサ・デバイスが、プロセッサ・キャッシュ・メモリに動作可能なように接続され、前記方法が、
前記プロセッサ・デバイスによって前記命令シーケンスの命令を実行することであって、前記命令の前記実行が、前記共有メモリ・システムのメイン・メモリのメモリ・ラインのコピーを前記プロセッサ・キャッシュ・メモリに充填することを前記プロセッサ・デバイスに行わせる、前記実行すること、
前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示す第1のフラグ情報を検知すると、前記プロセッサ・デバイスによって、前記個々のメモリ・ラインにフラグを付けること、
前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されたことを示す第2のフラグ情報を検知すると、前記プロセッサ・デバイスによって、前記個々のメモリ・ラインのフラグを外すこと、
前記命令シーケンスのメモリ・バリア命令を実行すると、前記メモリ・ラインがフラグを付けられている間、前記プロセッサ・デバイスによって、前記メモリ・バリア命令の実行の完了を妨げること
を含む、方法。 - 前記メモリ・バリア命令の実行の前記完了が、前記プロセッサ・デバイスによって以前にフラグを付けられた全てのメモリ・ラインがフラグを外されるまで妨げられる、請求項1に記載の方法。
- 前記メモリ・ラインの前記フラグ付けが、前記メモリ・ラインの識別子を前記プロセッサ・デバイスのバッファに追加することを含み、前記フラグ付きメモリ・ラインの前記フラグ外しが、前記プロセッサの前記バッファから前記メモリ・ラインの前記識別子を削除することを含む、請求項1に記載の方法。
- 前記バッファに記憶された前記フラグ付きメモリ・ラインの前記識別子が、前記メイン・メモリ内の前記個々のメモリ・ラインのメモリ・アドレスを含む、請求項3に記載の方法。
- 前記メモリ・バリア命令の実行の前記完了が、前記プロセッサ・デバイスの前記バッファが空になるまで妨げられる、請求項3に記載の方法。
- 前記共有メモリ・システムの前記メモリ一貫性が、コヒーレンス・ディレクトリを使用して実現される、請求項1に記載の方法。
- 前記第1および前記第2のフラグ情報のうちの少なくとも1つが、前記コヒーレンス・ディレクトリから前記プロセッサ・デバイスによって受け取られたメッセージによって提供される、請求項6に記載の方法。
- 前記第1および前記第2のフラグ情報のうちの少なくとも1つが、前記コヒーレンス・ディレクトリに前記プロセッサ・デバイスによって送られたメッセージによって提供される、請求項6に記載の方法。
- 前記共有メモリ・システムの前記メモリ一貫性が、ブロードキャスティングを使用して実現される、請求項1に記載の方法。
- 前記メモリ・ラインの前記コピーを前記プロセッサ・キャッシュ・メモリに充填することを前記プロセッサ・デバイスに行わせる前記命令が、前記個々のメモリ・ラインへのライト・アクセスを指定する命令である、請求項1に記載の方法。
- 前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が、前記共有メモリ・システムのさらなるプロセッサ・デバイスのリモート・プロセッサ・キャッシュ・メモリによって使用される前記メモリ・ラインのさらなるコピーを無効化することを含む、請求項1に記載の方法。
- 前記プロセッサ・キャッシュ・メモリの内容の修正に関するものであり、前記プロセッサ・デバイスによって処理されたメッセージが、一貫性伝搬フィールドを含み、前記一貫性伝搬フィールドが、前記修正についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報、前記修正についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたことを示すフラグ情報、または、フラグを付けるアクションも、フラグを外すアクションも要求されていないことを示すフラグ情報のうちの1つを含む、請求項1に記載の方法。
- コヒーレント共有メモリ・システムのプロセッサ・デバイスであって、プロセッサ・キャッシュ・メモリに動作可能なように接続され、複数の命令を含む命令シーケンスの実行を調整するように構成され、前記調整することが、
前記命令シーケンスの命令を実行することであって、前記命令の前記実行が、前記共有メモリ・システムのメイン・メモリのメモリ・ラインのコピーを前記プロセッサ・キャッシュ・メモリに充填することを前記プロセッサ・デバイスに行わせる、前記実行すること、
前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報を検知すると、前記プロセッサ・デバイスによって、前記個々のメモリ・ラインにフラグを付けること、
前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されたことを示すフラグ情報を検知すると、前記プロセッサ・デバイスによって、前記個々のメモリ・ラインのフラグを外すこと、
前記命令シーケンスのメモリ・バリア命令を実行すると、前記メモリ・ラインがフラグを付けられている間、前記メモリ・バリア命令の実行の完了を妨げること
を含む、プロセッサ・デバイス。 - 前記メモリ・バリア命令の実行の前記完了が、前記プロセッサ・デバイスによって以前にフラグを付けられた全てのメモリ・ラインがフラグを外されるまで妨げられる、請求項13に記載のプロセッサ・デバイス。
- 前記プロセッサ・デバイスが、コピーが前記プロセッサ・キャッシュ・メモリに充填されたが、前記個々のコピーの前記充填についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないメモリ・ラインを登録するためのバッファを備え、前記メモリ・ラインの前記フラグ付けが、前記メモリ・ラインの識別子を前記プロセッサ・デバイスの前記バッファに追加することを含み、前記フラグ付きメモリ・ラインの前記フラグ外しが、前記プロセッサの前記バッファから前記メモリ・ラインの前記識別子を削除することを含む、請求項13に記載のプロセッサ・デバイス。
- 前記バッファに記憶された前記フラグ付きメモリ・ラインの前記識別子が、前記メイン・メモリ内の前記個々のメモリ・ラインのメモリ・アドレスを含む、請求項15に記載のプロセッサ・デバイス。
- 前記メモリ・バリア命令の実行の前記完了が、前記プロセッサ・デバイスの前記バッファが空になるまで妨げられる、請求項15に記載のプロセッサ・デバイス。
- 共有メモリ・システムのメモリ一貫性を実現するコヒーレンス・ディレクトリを管理するための方法であって、
前記コヒーレンス・ディレクトリによって、前記共有メモリ・システムのメイン・メモリのメモリ・ラインに割り当てられたフラグ情報を維持することであって、前記共有メモリ・システムのプロセッサ・デバイスが、前記プロセッサ・デバイスに動作可能なように接続されたプロセッサ・キャッシュ・メモリへの前記メモリ・ラインのコピーの充填を開始し、前記フラグ情報が、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたかどうかを示す、前記維持すること、
前記プロセッサ・デバイスに前記コヒーレンス・ディレクトリによって送られることになるメッセージに前記フラグ情報を含めること、
前記コヒーレンス・ディレクトリによって前記メッセージを前記プロセッサ・デバイスに送ること
を含む、方法。 - 前記コヒーレンス・ディレクトリが、前記メモリ・ラインの前記コピーの前記充填についてのメモリ一貫性を前記共有メモリ・システムのさらなるプロセッサ・デバイスのリモート・プロセッサ・キャッシュ・メモリに伝搬させるために、前記リモート・プロセッサ・キャッシュ・メモリの内容の修正が必要であると判定すると、前記メモリ・ラインに割り当てられた前記フラグ情報の前記維持を開始する、請求項18に記載の方法。
- 前記コヒーレンス・ディレクトリが、前記メモリ・ラインの前記コピーの前記充填についての前記メモリ一貫性を前記リモート・プロセッサ・キャッシュ・メモリに伝搬させるために、前記リモート・プロセッサ・キャッシュ・メモリの前記内容の修正をリクエストするリクエストを前記リモート・プロセッサ・キャッシュ・メモリに送る、請求項19に記載の方法。
- 前記コヒーレンス・ディレクトリによってリクエストされた前記修正が、前記リモート・プロセッサ・キャッシュ・メモリに含まれる前記メモリ・ラインのさらなるコピーの無効化を含む、請求項20に記載の方法。
- 前記コヒーレンス・ディレクトリが、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬による、前記共有メモリ・システムの前記さらなるプロセッサ・デバイスの前記プロセッサ・キャッシュ・メモリの内容の前記修正を追跡するためのレジスタを備える、請求項19に記載の方法。
- 前記レジスタが、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されたとき、前記コヒーレンス・ディレクトリによって通知されることになる前記共有メモリ・システムのプロセッサ・デバイスのプロセッサ・キャッシュ・メモリを識別する一貫性伝搬通知指標を含む、請求項22に記載の方法。
- 共有メモリ・システムのメモリ一貫性を実現するコヒーレンス・ディレクトリであって、
前記共有メモリ・システムのメイン・メモリのメモリ・ラインに割り当てられたフラグ情報を維持することであって、前記共有メモリ・システムのプロセッサ・デバイスが、前記プロセッサ・デバイスに動作可能なように接続されたプロセッサ・キャッシュ・メモリへの前記メモリ・ラインのコピーの充填を開始し、前記フラグ情報が、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されたかどうかを示す、前記維持すること、
メッセージに前記フラグ情報を含めること、
前記メッセージを前記プロセッサ・デバイスに送ること
を行うように構成された、コヒーレンス・ディレクトリ。 - 共有メモリ・システムのメモリ一貫性を実現するコヒーレンス・ディレクトリ、メイン・メモリ、および、プロセッサ・キャッシュ・メモリに動作可能なように接続されたプロセッサ・デバイスを備えるコヒーレント共有メモリ・システムであって、
前記プロセッサ・デバイスが、複数の命令を含む命令シーケンスの実行を調整するように構成され、前記調整することが、
前記命令シーケンスの命令を実行することであって、前記命令の前記実行が、前記メイン・メモリのメモリ・ラインのコピーを前記プロセッサ・キャッシュ・メモリに充填することを前記プロセッサ・デバイスに行わせる、前記実行すること、
前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体のメモリ一貫性の伝搬が確認されていないことを示すフラグ情報を検知すると、前記プロセッサ・デバイスによって、前記個々のメモリ・ラインにフラグを付けること、
前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されたことを示すフラグ情報を検知すると、前記プロセッサ・デバイスによって、前記個々のメモリ・ラインのフラグを外すこと、
前記命令シーケンスのメモリ・バリア命令を実行すると、前記メモリ・ラインがフラグを付けられている間、前記メモリ・バリア命令の実行の完了を妨げること
を含み、
前記コヒーレンス・ディレクトリが、前記メモリ・ラインの前記コピーの前記充填の開始を判定すると、前記メイン・メモリの前記メモリ・ラインに割り当てられた前記フラグ情報を維持するように構成され、前記フラグ情報が、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されたかどうかを示し、前記維持することが、
最初に、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されていないことを示すフラグ情報を第1のメッセージに含めること、
前記第1のメッセージを前記プロセッサ・デバイスに送ること、
前記伝搬の確認を得ると、前記フラグ情報を更新し、前記メモリ・ラインの前記コピーの前記充填についての前記共有メモリ・システム全体の前記メモリ一貫性の前記伝搬が確認されたことを示す前記更新したフラグ情報を第2のメッセージに含めること、
前記第2のメッセージを前記プロセッサ・デバイスに送ること
を含む、
コヒーレント共有メモリ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/944,047 | 2018-04-03 | ||
US15/944,047 US11119927B2 (en) | 2018-04-03 | 2018-04-03 | Coordination of cache memory operations |
PCT/IB2019/052482 WO2019193455A1 (en) | 2018-04-03 | 2019-03-27 | Coordination of cache memory operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021519456A true JP2021519456A (ja) | 2021-08-10 |
JP7193547B2 JP7193547B2 (ja) | 2022-12-20 |
Family
ID=66397336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020551810A Active JP7193547B2 (ja) | 2018-04-03 | 2019-03-27 | キャッシュ・メモリ動作の調整 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11119927B2 (ja) |
JP (1) | JP7193547B2 (ja) |
CN (1) | CN111868699A (ja) |
DE (1) | DE112019000629B4 (ja) |
GB (1) | GB2587512B (ja) |
WO (1) | WO2019193455A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11119927B2 (en) | 2018-04-03 | 2021-09-14 | International Business Machines Corporation | Coordination of cache memory operations |
US11579921B2 (en) * | 2018-08-29 | 2023-02-14 | Alibaba Group Holding Limited | Method and system for performing parallel computations to generate multiple output feature maps |
US10884720B2 (en) * | 2018-10-04 | 2021-01-05 | Microsoft Technology Licensing, Llc | Memory ordering annotations for binary emulation |
US11099991B2 (en) * | 2019-01-24 | 2021-08-24 | Vmware, Inc. | Programming interfaces for accurate dirty data tracking |
US10754782B1 (en) * | 2019-03-30 | 2020-08-25 | Intel Corporation | Apparatuses, methods, and systems to accelerate store processing |
US11316947B2 (en) | 2020-03-30 | 2022-04-26 | International Business Machines Corporation | Multi-level cache-mesh-system for multi-tenant serverless environments |
US11720360B2 (en) | 2020-09-11 | 2023-08-08 | Apple Inc. | DSB operation with excluded region |
CN112764785B (zh) * | 2020-12-24 | 2021-10-29 | 江苏云涌电子科技股份有限公司 | 一种自动升级多级控制器的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06243108A (ja) * | 1993-01-29 | 1994-09-02 | Internatl Business Mach Corp <Ibm> | データ・コヒーレンシを維持する方法及びシステム |
US20050154863A1 (en) * | 2004-01-13 | 2005-07-14 | Steely Simon C.Jr. | Multi-processor system utilizing speculative source requests |
JP2005234854A (ja) * | 2004-02-19 | 2005-09-02 | Hitachi Ltd | マルチプロセッサシステム |
US20140040551A1 (en) * | 2012-08-02 | 2014-02-06 | International Business Machines Corporation | Rewind only transactions in a data processing system supporting transactional storage accesses |
JP2016024762A (ja) * | 2014-07-24 | 2016-02-08 | 日本電気株式会社 | 情報処理装置、メモリ順序保障方法、及び、プログラム |
US20160179674A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Hardware apparatuses and methods to control cache line coherence |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088769A (en) * | 1996-10-01 | 2000-07-11 | International Business Machines Corporation | Multiprocessor cache coherence directed by combined local and global tables |
US6070231A (en) * | 1997-12-02 | 2000-05-30 | Intel Corporation | Method and apparatus for processing memory requests that require coherency transactions |
US6963967B1 (en) | 2000-06-06 | 2005-11-08 | International Business Machines Corporation | System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture |
US6356983B1 (en) * | 2000-07-25 | 2002-03-12 | Src Computers, Inc. | System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture |
US8281079B2 (en) * | 2004-01-13 | 2012-10-02 | Hewlett-Packard Development Company, L.P. | Multi-processor system receiving input from a pre-fetch buffer |
US7962696B2 (en) | 2004-01-15 | 2011-06-14 | Hewlett-Packard Development Company, L.P. | System and method for updating owner predictors |
US20090248988A1 (en) * | 2008-03-28 | 2009-10-01 | Mips Technologies, Inc. | Mechanism for maintaining consistency of data written by io devices |
US8095739B2 (en) | 2009-04-13 | 2012-01-10 | International Business Machines Corporation | Barriers processing in a multiprocessor system having a weakly ordered storage architecture without broadcast of a synchronizing operation |
US20100318741A1 (en) | 2009-06-12 | 2010-12-16 | Cray Inc. | Multiprocessor computer cache coherence protocol |
US8656115B2 (en) * | 2010-08-20 | 2014-02-18 | Intel Corporation | Extending a cache coherency snoop broadcast protocol with directory information |
US8935513B2 (en) | 2012-02-08 | 2015-01-13 | International Business Machines Corporation | Processor performance improvement for instruction sequences that include barrier instructions |
US20130227221A1 (en) | 2012-02-29 | 2013-08-29 | Advanced Micro Devices, Inc. | Cache access analyzer |
WO2015163895A1 (en) | 2014-04-24 | 2015-10-29 | Empire Technology Development Llc | Directory coherence for multicore processors |
US9727466B2 (en) * | 2014-08-26 | 2017-08-08 | Arm Limited | Interconnect and method of managing a snoop filter for an interconnect |
EP3230874B1 (en) | 2014-12-14 | 2021-04-28 | VIA Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
US9483409B2 (en) | 2015-02-05 | 2016-11-01 | International Business Machines Corporation | Store forwarding cache |
GB2539383B (en) | 2015-06-01 | 2017-08-16 | Advanced Risc Mach Ltd | Cache coherency |
US9916247B2 (en) * | 2016-02-04 | 2018-03-13 | International Business Machines Corporation | Cache management directory where hardware manages cache write requests and software manages cache read requests |
US11119927B2 (en) | 2018-04-03 | 2021-09-14 | International Business Machines Corporation | Coordination of cache memory operations |
-
2018
- 2018-04-03 US US15/944,047 patent/US11119927B2/en active Active
-
2019
- 2019-03-27 GB GB2016744.1A patent/GB2587512B/en active Active
- 2019-03-27 CN CN201980020429.8A patent/CN111868699A/zh active Pending
- 2019-03-27 DE DE112019000629.0T patent/DE112019000629B4/de active Active
- 2019-03-27 WO PCT/IB2019/052482 patent/WO2019193455A1/en active Application Filing
- 2019-03-27 JP JP2020551810A patent/JP7193547B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06243108A (ja) * | 1993-01-29 | 1994-09-02 | Internatl Business Mach Corp <Ibm> | データ・コヒーレンシを維持する方法及びシステム |
US20050154863A1 (en) * | 2004-01-13 | 2005-07-14 | Steely Simon C.Jr. | Multi-processor system utilizing speculative source requests |
JP2005234854A (ja) * | 2004-02-19 | 2005-09-02 | Hitachi Ltd | マルチプロセッサシステム |
US20140040551A1 (en) * | 2012-08-02 | 2014-02-06 | International Business Machines Corporation | Rewind only transactions in a data processing system supporting transactional storage accesses |
JP2016024762A (ja) * | 2014-07-24 | 2016-02-08 | 日本電気株式会社 | 情報処理装置、メモリ順序保障方法、及び、プログラム |
US20160179674A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Hardware apparatuses and methods to control cache line coherence |
Also Published As
Publication number | Publication date |
---|---|
GB2587512B (en) | 2022-07-13 |
GB202016744D0 (en) | 2020-12-09 |
JP7193547B2 (ja) | 2022-12-20 |
WO2019193455A1 (en) | 2019-10-10 |
CN111868699A (zh) | 2020-10-30 |
DE112019000629T5 (de) | 2020-10-29 |
US20190303295A1 (en) | 2019-10-03 |
GB2587512A (en) | 2021-03-31 |
DE112019000629B4 (de) | 2023-04-27 |
US11119927B2 (en) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891228B2 (en) | Cache line states identifying memory cache | |
JP7193547B2 (ja) | キャッシュ・メモリ動作の調整 | |
TWI391821B (zh) | 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法 | |
US7702743B1 (en) | Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes | |
US9323673B2 (en) | Hierarchical cache structure and handling thereof | |
CN108153683B (zh) | 用于在存储器中的地址范围之间传输数据的装置和方法 | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US20140181394A1 (en) | Directory cache supporting non-atomic input/output operations | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US8364904B2 (en) | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer | |
TWI386810B (zh) | 多處理器系統以目錄為主之資料傳輸協定 | |
US10635587B2 (en) | Memory controller, information processing apparatus, and processor | |
US9632934B2 (en) | Maintaining coherence when removing nodes from a directory-based shared memory system | |
KR101858597B1 (ko) | 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템 | |
US9760490B2 (en) | Private memory table for reduced memory coherence traffic | |
CN115203071A (zh) | 默认共享状态缓存一致性协议的应用 | |
JP2020003959A (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
CN113792006B (zh) | 具有高速缓存一致性的设备间处理系统 | |
EP3343380A1 (en) | Data read method and apparatus | |
US9842050B2 (en) | Add-on memory coherence directory | |
US10489292B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
TWI758317B (zh) | 用於提供資料存取行為原子集的裝置及方法 | |
JP2016015135A (ja) | キャッシュメモリ管理ディレクトリにおけるエビクションの低減 | |
JP2005352711A (ja) | キャッシュ制御方法およびデータ処理システム並びにその処理プログラム | |
JP5986307B2 (ja) | 部分的に順序付けされたネットワーク上におけるブロードキャストキャッシュコヒーレンス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210816 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220502 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221024 |
|
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: 20221129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7193547 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |