JP4050226B2 - マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 - Google Patents
マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 Download PDFInfo
- Publication number
- JP4050226B2 JP4050226B2 JP2003507705A JP2003507705A JP4050226B2 JP 4050226 B2 JP4050226 B2 JP 4050226B2 JP 2003507705 A JP2003507705 A JP 2003507705A JP 2003507705 A JP2003507705 A JP 2003507705A JP 4050226 B2 JP4050226 B2 JP 4050226B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- load
- speculative
- record
- load operation
- 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.)
- Expired - Lifetime
Links
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 28
- 230000007246 mechanism Effects 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims 3
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 239000000872 buffer Substances 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 239000012536 storage buffer Substances 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
本発明は、マルチプロセッサの設計に関する。より詳細には、本発明は、マルチプロセッサシステムにおける推測的なロード動作および/または推測的な格納動作を容易にする方法および装置に関する。
高速のコンピュータ性能を実現するために、コンピュータシステム設計者は、シングル計算タスクを実行するために並列に動作する多重プロセッサシステムを利用し始めた。1つの通常のマルチプロセッサ設計は、単一のレベル2(L2)キャッシュ180およびメモリ183を共用するレベル1(L1)キャッシュ161〜164に接続される複数のプロセッサ151〜154を含む(図1を参照されたい)。動作中、プロセッサ151がローカルL1キャッシュ161に存在しないデータアイテムにアクセスすると、システムは、L2キャッシュ180からのデータアイテムの取り出しを試みる。データアイテムがL2キャッシュ180に存在しない場合は、システムは、まず、メモリ183からL2キャッシュ180へ、続いて、L2キャッシュ180からL1キャッシュ161へデータアイテムを取り出す。
マルチプロセッサシステムが性能において増大し続けるにつれて、ロードおよび格納動作の順序を著しく制限するメモリモデルをサポートすることは、ますます困難になっている。1つの通常用いられるメモリモデルは、「トータルストアオーダ」(TSO)メモリモデルである。TSOメモリモデルの下では、所与のプロセッサからのロードおよび格納は、通常、ロードが前の格納を追い越し得ることを除いて、プログラム順序で実行する。より詳細には、TSOメモリモデルの下では、ロードは前のロードを追い越し得ない。格納は、前の格納を追い越し得ない。および、格納は前のロードを追い越し得ない。これにより、システムが次のロードを実行する間に、前の格納が遅い態様で発生する。
本発明の一実施形態は、マルチプロセッサシステムにおける推測的ロード動作を容易にするシステムを提供する。システムは、マルチプロセッサシステムにおいて、プロセッサにおいて完了した推測的ロード動作のレコードを維持することによって、動作する。ここで、推測的ロード動作とは、前のロード動作が完了する前に推測的に開始するロード動作である。次に、システムは、プロセッサに接続されるL1キャッシュにおいて無効化信号を受信する。ここで、無効化信号は、L1キャッシュの特定のラインが無効化されるべきことを示す。この無効化信号に応答して、システムは、完了し、かつ、無効化信号が関するのと同一のL1キャッシュの位置に関する整合する推測的ロード動作が存在するかを判定するために、推測的ロード動作のレコードを検査する。もし整合する推測的ロード動作が存在する場合は、システムは、整合する推測的ロード動作を再生することにより、無効化信号を発生させたイベントが完了した後に整合する推測的ロード動作が発生する。
以下の説明は、任意の当業者が本発明を実施および利用できるように示されており、特定の用途および要件の意味で提供される。開示される実施形態に対する様々な改変は、当業者には容易に理解し得、本明細書中で定義される一般原理は、本発明の意図および範囲を逸脱することなく他の実施形態および用途に適用し得る。従って、本発明は、示される実施形態に制限されることが意図されるのではなく、本明細書中に開示される原理および特徴と一貫する最大範囲に一致するべきである。
(マルチプロセッサシステム)
図1Bは、本発明の実施形態に従った、リバースディレクトリを有するマルチプロセッサシステム100を示す。尚、マルチプロセッサシステム100のほとんどは、単一の半導体チップ101内に配置される。より詳細には、半導体チップ101は、複数のプロセッサ110、120、130および140を含み、複数のプロセッサ110、120、130および140は、それぞれレベル1(L1)キャッシュ112、122、132および142を含む。尚、L1キャッシュ112、122、132および142は、別個の命令およびデータキャッシュであってもよく、もしくは、一体化された命令/データキャッシュであってもよい。L1キャッシュ112、122、132および142は、レベル2(L2)キャッシュ106に接続され、L2キャッシュ106は、以下の図3〜6を参照してより詳細に記載される、リバースディレクトリ302を含む。L2キャッシュ106は、メモリコントローラ104によってオフチップメモリ102に接続される。
図2は、本発明の実施形態に従った、多重バンクを有するL2キャッシュ106を示す。この実施形態では、L2キャッシュ106は、4つのバンク202〜205によって実装される。4つのバンク202〜205は、スイッチ220を介してプロセッサ110、120、130および140に並列にアクセスされ得る。尚、アドレスの2ビットのみが、4つのバンク202〜205のどれがメモリリクエストに関するかを判定するために必要とされる。さらにスイッチ220は、I/Oデバイスと通信するI/Oポート150を含む。尚、これらのバンク202〜205の各々は、リバースディレクトリを含む。さらに、バンク202〜205の各々は、専用のメモリコントローラ212〜215を含み、専用のメモリコントローラ212〜215は、オフチップメモリ232〜235の関連するバンクに接続される。
図3は、本発明の実施形態に従った、関連するリバースディレクトリ302に沿ったL2バンク202を示す。L2バンク202は、命令およびデータを格納する8ウェイセットアソシアティブキャッシュ304を含む。アドレスの一部分が、キャッシュ304内の1つのセットを判定するために利用される。キャッシュ304は、キャッシュ304の行で表現される。所与のセット内で、8つの異なるエントリが、8つの異なる「ウェイ位置」の各々に格納され得、8つの異なる「ウェイ位置」の各々は、キャッシュ304の8つの列で表現される。
図4は、本発明の実施形態に沿ってリバースディレクトリエントリ430がどのように生成されるかを示す。
図5は、本発明の実施形態に従った、リバースディレクトリエントリを生成または更新するプロセスを示すフローチャートである。このプロセスは、ラインを取り出すリクエストが、L1キャッシュ112からL2キャッシュ106で受信される(ステップ502)際に、開始する。このリクエストは、アドレス400、L1キャッシュ112を識別するL1キャッシュナンバー、ラインが取り出された後に格納されるL1キャッシュ112のウェイ位置を含む。
図6は、本発明の実施形態に従った、無効化を実行するためのリバースディレクトリエントリを用いるプロセスを示すフローチャートである。システムは、L2キャッシュ106を更新させるリクエストを受信することによって開始する。このリクエストは、別のプロセッサによるターゲットエントリ上の格納ヒット、ロードミス、または、格納ミスを含み得る。
図7は、本発明の実施形態に従った、無効化信号に応答する推測的ロード動作の再生を示す。図7は、左から右へ進行するタイムラインを含む。命令の発行は、タイムラインの上に示す矢印により表わされ、対応する命令の完了は、タイムラインの下に示す矢印により表わされる。
care値は、L2セットナンバー818およびL2ウェイナンバー820が、どのビット位置が変化したかを判定するために、既存のビットと新しいビットとを排他的ORをとることによって、徐々に計算され得る。また、尚、少なくとも1つのビットは、L2セットナンバー818およびL2ウェイナンバー820の各ビットに対して、3つの可能な値(0,1,X)を表わすことが要求される。
図9Bは、本発明の実施形態に従った、明示的な再生コマンドに応答する推測的ロード動作の再生を示すフローチャートである。L1キャッシュ161において再生オンリー信号826を受信する(ステップ910)と、システムは、同一のL1キャッシュエントリに対して、完了した整合する推測的ロード動作が存在するかどうかを判定するために、レコードを検査する(ステップ911)。もし存在すれば、システムは、整合する推測的ロード動作を再生する(ステップ912)。
図10Aは、本発明の実施形態に従った、L2バンク202における推測的ロードディレクトリの動作を示すフローチャートである。システムは、L2バンク202に、特定のL2キャッシュラインと関連する完了した推測的ロード動作のレコードを、維持することによって動作する(ステップ1002)。図8に示される本発明の実施形態では、レコードは、推測的ロードディレクトリ812の形式である。
図11は、本発明による完了した推測的格納動作によって発生する推測的ロード動作の再生を示す。図11は、左から右に進むタイムラインを示す。命令の発行は、タイムラインの上に示す矢印により表わされ、対応する命令の完了は、タイムラインの下に示す矢印により表わされる。
of order)完了は明白ではない。
図12は、本発明の実施形態に従った、推測的格納動作に関連する様々な構造を示す。図12に示されるように、プロセッサ151は、L1キャッシュ161を含み、格納バッファ1202に関連する。
図14は、本発明の実施形態に従った再生動作により発生する潜在的なデッドロック条件を示す。図14は、左から右へ進むタイムラインを示す。命令の発行は、タイムラインの上に示す矢印により表わされ、対応する命令の完了は、タイムラインの下に示す矢印により表わされる。
推測的格納動作が、別のプロセッサの保留中の格納動作と同一のアドレスに関する場合に、別の問題となる条件が生じる。図17Aを参照すると、アドレスAおよびアドレスBが、L2キャッシュ106の異なるバンクに位置づけられることを前提とする。また、プロセッサP1上で実行するプログラムが、格納A動作および格納B動作を特定することを前提とする。同様に、プロセッサP2上で実行するプログラムは、格納B動作および格納A動作を特定することを前提とする。
Claims (25)
- マルチプロセッサシステムにおいて推測的ロード動作を容易にする方法であって、
関連するL1キャッシュにL2キャッシュを介してデータ値をリターンさせて完了した推測的ロード動作のレコードを該L2キャッシュに維持することであって、
推測的ロード動作は、前のロード動作が完了する前に推測的に開始したロード動作であり、
各完了した推測的ロード動作に対して、該レコードは、該推測的ロード動作に関連するL1キャッシュを識別する情報を含む、ことと、
無効化イベントに応答して、
該L2キャッシュにおけるターゲットラインを無効化することと、
該レコードへの検索を実行することにより、該L2キャッシュにおけるターゲットラインの該無効化により影響を受け得る推測的ロード動作と関連する、影響を受けたL1キャッシュを識別することと、
該影響を受けた推測的ロード動作を再生するために該影響を受けたL1キャッシュに再生コマンドを送信することにより、該影響を受けた推測的ロード動作が、該L2キャッシュにおける該ターゲットラインの無効化の後に起こることと
を包含する、方法。 - 前記レコードをL2キャッシュに維持することは、
前記L2キャッシュにおいてL1キャッシュからロードミス動作を受信することであって、該ロードミス動作は、該ロードミス動作と関連するL1キャッシュ位置に対して完了した推測的ロード動作が存在するかどうかを特定する情報を含む、ことと、
そのような推測的ロード動作が存在する場合、該L1キャッシュが該推測的ロード動作と関連することを示すように該レコードを更新することと
を包含する、請求項1に記載の方法。 - 前記ロードミス動作は、該ロードミス動作と関連する前記L1キャッシュ位置を識別し、
前記レコードを更新することは、該レコードにおいて該L1キャッシュ位置を記録し、それにより、後の再生コマンドが該L1キャッシュ位置を含むことができることを包含する、請求項2に記載の方法。 - ロードミス動作が推測的でない場合、前記L1キャッシュにおける関連するエントリが、完了した推測的ロード動作と関連しないことを示すように前記レコードを更新することをさらに包含する、請求項3に記載の方法。
- 再生コマンドがL2キャッシュラインに対する1つ以上のL1キャッシュに送信される場合、該L2キャッシュラインが完了した推測的ロード動作ともはや関連しないことを示すように前記レコードを更新することをさらに包含する、請求項1に記載の方法。
- 前記L2キャッシュは、L1キャッシュにおけるラインに対するエントリを含むリバースディレクトリを含み、各エントリは、該L2キャッシュにおいて関連するエントリを識別する、請求項1に記載の方法。
- 前記リバースディレクトリは、前記L1キャッシュの各々において各エントリと対応する固定エントリを含む、請求項6に記載の方法。
- 前記リバースディレクトリにおける各エントリは、前記L2キャッシュにおける対応するエントリの位置を特定する情報を含む、請求項7に記載の方法。
- 前記無効化イベントは、キャッシュコヒーレンシプロトコル動作を含む、請求項1に記載の方法。
- 前記無効化イベントは、前記L2キャッシュにおける前記ターゲットラインと関連する格納動作を含む、請求項1に記載の方法。
- 前記マルチプロセッサシステムは、ロードは前の格納を追い越すことができ、ロードは前のロードを追い越すことができず、格納は前のロードを追い越すことができず、かつ、格納は前の格納を追い越すことができない、トータルストアオーダリングメモリモデルを実装する、請求項1に記載の方法。
- マルチプロセッサシステムにおいて推測的ロード動作を容易にする装置であって、
L2キャッシュと、
該L2キャッシュを介して、関連するL1キャッシュにデータ値をリターンさせて完了した推測的ロード動作を識別する情報を含む該L2キャッシュにおけるレコードであって、
推測的ロード動作は、前のロード動作が完了する前に推測的に開始したロード動作であり、
各完了した推測的ロード動作に対して、該レコードは、該推測的ロード動作と関連するL1キャッシュを識別する情報を含む、レコードと、
無効化イベントに応答して、該L2キャッシュにおいてターゲットラインを無効化するように構成される無効化メカニズムと、
再生メカニズムであって、該無効化イベントに応答して、
該レコードへの検索を実行することにより、該L2キャッシュにおける該ターゲットラインの該無効化により影響を受け得る推測的ロード動作と関連する、影響を受けたL1キャッシュを識別し、
該影響を受けた推測的ロード動作を再生するために該影響を受けたL1キャッシュに再生コマンドを送信することにより、該影響を受けた推測的ロード動作が、該L2キャッシュにおける該ターゲットラインの無効化の後に起こる
ように構成される、再生メカニズムと
を備える、装置。 - L1キャッシュからロードミス動作を受信するように構成される前記レコードと関連する更新メカニズムであって、該ロードミス動作は、該ロードミス動作と関連するL1キャッシュ位置に対して完了した推測的ロード動作が存在するかどうかを特定する情報を含む、更新メカニズムをさらに備え、
そのような推測的ロード動作が存在する場合、該更新メカニズムは、該L1キャッシュが該推測的ロード動作と関連することを示すように該レコードを更新するように構成される、請求項12に記載の装置。 - 前記ロードミス動作は、前記ロードミス動作と関連する前記L1キャッシュ位置を識別し、
前記更新メカニズムは、前記レコードにおいて該L1キャッシュ位置を記録するように構成され、それにより、後の再生コマンドが該L1キャッシュ位置を含むことができる、請求項13に記載の装置。 - ロードミス動作が推測的でない場合、前記更新メカニズムは、前記L1キャッシュにおける関連するエントリが、完了した推測的ロード動作と関連しないことを示すように前記レコードを更新するように構成される、請求項14に記載の装置。
- 再生コマンドがL2キャッシュラインに対する1つ以上のL1キャッシュに送信される場合、前記更新メカニズムは、該L2キャッシュラインが完了した推測的ロード動作ともはや関連しないことを示すように前記レコードを更新するように構成される、請求項13に記載の装置。
- 前記L2キャッシュに接続されるリバースディレクトリをさらに含み、該リバースディレクトリは、L1キャッシュにおけるラインに対するエントリを含み、各エントリは、該L2キャッシュにおける関連するエントリを識別する、請求項12に記載の装置。
- 前記リバースディレクトリは、前記L1キャッシュの各々における各エントリに対応する固定エントリを含む、請求項17に記載の装置。
- 前記リバースディレクトリにおける各エントリは、前記L2キャッシュにおける対応するエントリの位置を特定する情報を含む、請求項18に記載の装置。
- 前記無効化イベントは、キャッシュコヒーレンシプロトコル動作を含む、請求項12に記載の装置。
- 前記無効化イベントは、前記L2キャッシュにおける前記ターゲットラインと関連する格納動作を含む、請求項12に記載の装置。
- 前記マルチプロセッサシステムは、ロードは前の格納を追い越すことができ、ロードは前のロードを追い越すことができず、格納は前のロードを追い越すことができず、格納が前の格納を追い越すことができない、トータルストアオーダリングメモリモデルを実装する、請求項12に記載の装置。
- 推測的ロード動作を容易にするマルチプロセッサシステムであって、
複数のプロセッサと、
該複数のプロセッサと接続される複数のL1キャッシュと、
該複数のL1キャッシュと接続される1つのL2キャッシュと、
該L2キャッシュを介して関連するL1キャッシュにデータ値をリターンさせて完了した推測的ロード動作を識別する情報を含む該L2キャッシュにおけるレコードであって、
ここで、推測的ロード動作は、ロード動作が完了する前に推測的に開始したロード動作であり、
各完了した推測的ロード動作に対して、該レコードは、該推測的ロード動作と関連するL1キャッシュを識別する情報を含む、レコードと、
無効化イベントに応答して、該L2キャッシュにおけるターゲットラインを無効化するように構成される無効化メカニズムと、
再生メカニズムであって、該無効化イベントに応答して、
該レコードへの検索を実行することにより、該L2キャッシュにおける該ターゲットラインの該無効化によって影響を受け得る推測的ロード動作と関連する、影響を受けたL1キャッシュを識別し、
該影響を受けた推測的ロード動作を再生するために該影響を受けたL1キャッシュに再生コマンドを送信することにより、該影響を受けた推測的ロード動作が、該L2キャッシュにおける該ターゲットラインの無効化の後に起こる
ように構成される、再生メカニズムと
を備える、マルチプロセッサシステム。 - L1キャッシュからロードミス動作を受信するように構成される前記レコードと関連する更新メカニズムであって、該ロードミス動作は、該ロードミス動作と関連するL1キャッシュ位置に対して完了した推測的ロード動作が存在するかどうかを特定する情報を含む、更新メカニズムをさらに備え、
そのような推測的ロード動作が存在する場合、該更新メカニズムは、該L1キャッシュが該推測的ロード動作と関連することを示すように該レコードを更新するように構成される、請求項23に記載のマルチプロセッサシステム。 - 前記L2キャッシュと接続されるリバースディレクトリをさらに含み、該リバースディレクトリは、L1キャッシュにおけるラインに対するエントリを含み、各エントリは、該L2キャッシュにおける関連するエントリを識別する、請求項23に記載のマルチプロセッサシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30119701P | 2001-06-26 | 2001-06-26 | |
PCT/US2002/022159 WO2003001383A2 (en) | 2001-06-26 | 2002-06-26 | Using an l2 directory to facilitate speculative loads in a multiprocessor system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005520222A JP2005520222A (ja) | 2005-07-07 |
JP4050226B2 true JP4050226B2 (ja) | 2008-02-20 |
Family
ID=23162362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003507705A Expired - Lifetime JP4050226B2 (ja) | 2001-06-26 | 2002-06-26 | マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6721855B2 (ja) |
EP (1) | EP1399823B1 (ja) |
JP (1) | JP4050226B2 (ja) |
KR (1) | KR100704089B1 (ja) |
AT (1) | ATE498866T1 (ja) |
AU (1) | AU2002349805A1 (ja) |
DE (1) | DE60239201D1 (ja) |
WO (1) | WO2003001383A2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
US6990559B2 (en) * | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in a computer system |
JP3988144B2 (ja) | 2004-02-23 | 2007-10-10 | 日本電気株式会社 | ベクトル処理装置、及び、追い越し制御回路 |
US7769950B2 (en) * | 2004-03-24 | 2010-08-03 | Qualcomm Incorporated | Cached memory system and cache controller for embedded digital signal processor |
US7484045B2 (en) | 2004-03-30 | 2009-01-27 | Intel Corporation | Store performance in strongly-ordered microprocessor architecture |
US7277989B2 (en) | 2004-06-22 | 2007-10-02 | Sun Microsystems, Inc. | Selectively performing fetches for store operations during speculative execution |
US7543132B1 (en) | 2004-06-30 | 2009-06-02 | Sun Microsystems, Inc. | Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes |
US7571284B1 (en) * | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US7519796B1 (en) | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Efficient utilization of a store buffer using counters |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7290116B1 (en) | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US9727468B2 (en) * | 2004-09-09 | 2017-08-08 | Intel Corporation | Resolving multi-core shared cache access conflicts |
US7984248B2 (en) | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
US7523266B2 (en) * | 2006-02-06 | 2009-04-21 | Sun Microsystems, Inc. | Method and apparatus for enforcing memory reference ordering requirements at the L1 cache level |
US20070186056A1 (en) * | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
US8838906B2 (en) * | 2010-01-08 | 2014-09-16 | International Business Machines Corporation | Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution |
JP5471428B2 (ja) * | 2009-12-25 | 2014-04-16 | 富士通株式会社 | 情報処理装置およびキャッシュメモリ制御装置 |
US8868837B2 (en) * | 2010-01-15 | 2014-10-21 | International Business Machines Corporation | Cache directory lookup reader set encoding for partial cache line speculation support |
US8825944B2 (en) | 2011-05-23 | 2014-09-02 | International Business Machines Corporation | Populating strides of tracks to demote from a first cache to a second cache |
US8825953B2 (en) | 2012-01-17 | 2014-09-02 | International Business Machines Corporation | Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache |
US8825957B2 (en) | 2012-01-17 | 2014-09-02 | International Business Machines Corporation | Demoting tracks from a first cache to a second cache by using an occupancy of valid tracks in strides in the second cache to consolidate strides in the second cache |
US9021201B2 (en) | 2012-01-17 | 2015-04-28 | International Business Machines Corporation | Demoting partial tracks from a first cache to a second cache |
US8966178B2 (en) * | 2012-01-17 | 2015-02-24 | International Business Machines Corporation | Populating a first stride of tracks from a first cache to write to a second stride in a second cache |
JP5949330B2 (ja) * | 2012-08-29 | 2016-07-06 | 株式会社リコー | 情報処理装置、情報処理方法 |
US9405690B2 (en) * | 2013-08-07 | 2016-08-02 | Oracle International Corporation | Method for storing modified instruction data in a shared cache |
CN103744800B (zh) * | 2013-12-30 | 2016-09-14 | 龙芯中科技术有限公司 | 面向重放机制的缓存操作方法及装置 |
US10423418B2 (en) | 2015-11-30 | 2019-09-24 | International Business Machines Corporation | Method for maintaining a branch prediction history table |
US10489296B2 (en) | 2016-09-22 | 2019-11-26 | International Business Machines Corporation | Quality of cache management in a computer |
US10620961B2 (en) * | 2018-03-30 | 2020-04-14 | Intel Corporation | Apparatus and method for speculative conditional move operation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5611063A (en) * | 1996-02-06 | 1997-03-11 | International Business Machines Corporation | Method for executing speculative load instructions in high-performance processors |
US6473833B1 (en) * | 1999-07-30 | 2002-10-29 | International Business Machines Corporation | Integrated cache and directory structure for multi-level caches |
US6418516B1 (en) * | 1999-07-30 | 2002-07-09 | International Business Machines Corporation | Method and system for managing speculative requests in a multi-level memory hierarchy |
US6609192B1 (en) * | 2000-06-06 | 2003-08-19 | International Business Machines Corporation | System and method for asynchronously overlapping storage barrier operations with old and new storage operations |
US6606702B1 (en) * | 2000-06-06 | 2003-08-12 | International Business Machines Corporation | Multiprocessor speculation mechanism with imprecise recycling of storage operations |
-
2002
- 2002-06-26 JP JP2003507705A patent/JP4050226B2/ja not_active Expired - Lifetime
- 2002-06-26 WO PCT/US2002/022159 patent/WO2003001383A2/en active Application Filing
- 2002-06-26 US US10/184,214 patent/US6721855B2/en not_active Expired - Lifetime
- 2002-06-26 EP EP02752292A patent/EP1399823B1/en not_active Expired - Lifetime
- 2002-06-26 KR KR1020037014575A patent/KR100704089B1/ko active IP Right Grant
- 2002-06-26 DE DE60239201T patent/DE60239201D1/de not_active Expired - Lifetime
- 2002-06-26 AT AT02752292T patent/ATE498866T1/de not_active IP Right Cessation
- 2002-06-26 AU AU2002349805A patent/AU2002349805A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20020199070A1 (en) | 2002-12-26 |
AU2002349805A1 (en) | 2003-01-08 |
ATE498866T1 (de) | 2011-03-15 |
KR20040007546A (ko) | 2004-01-24 |
DE60239201D1 (de) | 2011-03-31 |
EP1399823B1 (en) | 2011-02-16 |
EP1399823A2 (en) | 2004-03-24 |
KR100704089B1 (ko) | 2007-04-05 |
WO2003001383A2 (en) | 2003-01-03 |
WO2003001383A3 (en) | 2003-08-14 |
JP2005520222A (ja) | 2005-07-07 |
US6721855B2 (en) | 2004-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4050225B2 (ja) | マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置 | |
JP4050226B2 (ja) | マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 | |
US11803486B2 (en) | Write merging on stores with different privilege levels | |
US6718839B2 (en) | Method and apparatus for facilitating speculative loads in a multiprocessor system | |
JP2566701B2 (ja) | 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置 | |
US6587931B1 (en) | Directory-based cache coherency system supporting multiple instruction processor and input/output caches | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
JP4417715B2 (ja) | キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置 | |
JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
US6374332B1 (en) | Cache control system for performing multiple outstanding ownership requests | |
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
JPH0743670B2 (ja) | ストアスルーキャッシュ管理システム | |
JP2005533295A5 (ja) | ||
US20110314228A1 (en) | Maintaining Cache Coherence In A Multi-Node, Symmetric Multiprocessing Computer | |
JPH0567976B2 (ja) | ||
JP2023527735A (ja) | コア間キャッシュスタッシング及びターゲット発見 | |
US6934810B1 (en) | Delayed leaky write system and method for a cache memory | |
JP2007533014A (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
CN115098409A (zh) | 进行阶层式高速缓存系统回存且无效的处理器以及方法 | |
JP3260566B2 (ja) | 情報処理システムにおける記憶制御方法および記憶制御装置 | |
JPH07101412B2 (ja) | データ事前取出し方法およびマルチプロセッサ・システム | |
JPH02236749A (ja) | キャッシュ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070808 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20071106 |
|
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: 20071120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4050226 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101207 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111207 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121207 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121207 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131207 Year of fee payment: 6 |
|
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 |
|
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 |
|
EXPY | Cancellation because of completion of term |