JP4090497B2 - キャッシュメモリシステム及びその制御方法 - Google Patents
キャッシュメモリシステム及びその制御方法 Download PDFInfo
- Publication number
- JP4090497B2 JP4090497B2 JP2007521091A JP2007521091A JP4090497B2 JP 4090497 B2 JP4090497 B2 JP 4090497B2 JP 2007521091 A JP2007521091 A JP 2007521091A JP 2007521091 A JP2007521091 A JP 2007521091A JP 4090497 B2 JP4090497 B2 JP 4090497B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- address
- cache
- cache memory
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
この構成によれば、バストランザクションの平準化(時間的分散)に効果があることは明らかである。
この構成によれば、各操作の実行モードに応じた好適な順序で操作を要求することができる。
図1は、本発明の実施の形態におけるプロセッサ1、メモリ2、キャッシュメモリ3、及びTAC(Transfer and Attribute Controller)4を含むコンピュータシステムの全体構成を示すブロック図である。この実施の形態におけるキャッシュメモリ3及びTAC4が本発明のキャッシュメモリシステムに相当する。
以下、キャッシュメモリ3の具体例として、4ウェイ・セット・アソシエイティブ方式のキャッシュメモリに本発明を適用した場合の構成について説明する。
図3は、制御部38による使用フラグの更新例を示す。同図の上段、中断、下段は、ウェイ0〜3に跨るセットNを構成する4つのキャッシュエントリを示している。4つのキャッシュエントリ右端の1又は0は、それぞれ使用フラグの値である。この4つの使用フラグUをU0〜U3と記す。
図4(a)ウィークフラグが存在しないと仮定した場合の比較例であり、キャッシュエントリがリプレースされる様子を示す図である。同図においても、図3と同様にウェイ0〜3に跨るセットNを構成する4つのキャッシュエントリを示している。4つのキャッシュエントリ右端の1又は0は、それぞれ使用フラグの値である。また、データEのみアクセス頻度の低いデータを、データA、B、C、Dはアクセス頻度の高いデータとする。
次に、キャッシュメモリ3が実行する6種類の動作プリミティブについて説明する。動作プリミティブは、TAC4から指定される単一のアドレスに対する次のような操作である。
(1)フィル操作:前記アドレスにヒットするキャッシュエントリがない場合に、リプレース対象となるキャッシュエントリを選択し、メモリから前記選択されたキャッシュエントリへ前記指定されたアドレスに対応するデータをロードし、タグを設定してバリッドフラグVをセットする。この操作は、キャッシュのヒット率の向上に役立つ。
(2)タッチ操作:前記アドレスにヒットするキャッシュエントリがない場合に、リプレース対象となるキャッシュエントリを選択し、メモリから前記選択されたキャッシュエントリへデータをロードすることなくタグを設定してバリッドフラグVをセットする。この操作は、キャッシュのヒット率の向上と、不必要なバストランザクションの削減に役立つ。
(3)ライトバック操作:前記アドレスにヒットするキャッシュエントリがありかつダーティフラグDがセットされている場合に、そのキャッシュエントリのデータをメモリへセーブしてダーティフラグDをリセットする。この操作は、バストランザクションの平準化(時間的分散)に役立つ。
(4)無効化操作:前記アドレスにヒットするキャッシュエントリがある場合に、そのキャッシュエントリのデータをダーティフラグに応じてメモリへセーブすることなくバリッドフラグVをリセットする。この操作は、不必要なバストランザクションの削減に役立つ。
(5)ライトバック兼無効化操作:前記アドレスにヒットするキャッシュエントリがある場合に、ダーティフラグDがセットされていればそのキャッシュエントリのデータをメモリへセーブしてダーティフラグD及びバリッドフラグVをリセットし、ダーティフラグDがリセットされていればそのキャッシュエントリのバリッドフラグVのリセットのみを行う。この操作は、バストランザクションの平準化(時間的分散)に役立つ。
(6)最古化操作:前記アドレスにヒットするキャッシュエントリがある場合に、そのキャッシュエントリのウィークフラグWをセットする。この操作は、キャッシュのヒット率の向上に役立つ。
図5は、キャッシュメモリ3における動作プリミティブ処理の一例を示すフローチャートである。この動作プリミティブ処理は、TAC4から動作プリミティブの指定Iと、操作対象を指定するアドレスAとを与えられると起動され、指定された動作プリミティブを実行する。
次に、キャッシュメモリ3が実行するオートクリーナについて説明する。オートクリーナは、TAC4から指定される単一のアドレスに対する次のような操作である。
図6は、キャッシュメモリ3におけるオートクリーナ処理の一例を示すフローチャートである。このオートクリーナ処理は、TAC4からオートクリーナの指定Iと、操作対象を指定するアドレスAとを与えられると起動される。
なお、本発明のキャッシュメモリは、上記の実施の形態の構成に限るものではなく、種々の変形が可能である。以下、変形例のいくつかについて説明する。
(1)上記実施の形態では、4ウェイ・セット・アソシエイティブのキャッシュメモリを例に説明したが、ウェイ数は、いくつでもよい。また、上記実施の形態では、セット数が16である例を説明したが、セット数はいくつでもよい。
(2)上記実施の形態では、セット・アソシエイティブのキャッシュメモリを例に説明したが、フル・アソシエイティブ方式やダイレクトマップ方式のキャッシュメモリであってもよい。
(3)上記実施の形態では、ラインをキャッシュデータのリプレース単位であるとして説明したが、ラインを4つに分割した各部分であるサブラインをリプレース単位としてもよい。その場合、各キャッシュエントリは、4つのバリッドフラグおよび4つのダーティフラグをそれぞれ保持する。
(4)キャッシュメモリとしてのいくつかの機能(例えばリプレース機能)が制限されるウェイ(インアクティブウェイ)を設けてもよい。各ウェイをそのようなインアクティブウェイとするか、全ての機能が利用可能なアクティブウェイとするかを、TAC4からの指示に応じて切り替えてもよい。
図8は、キャッシュメモリ3とTAC4との間のインタフェース(送受信される信号)の一例を示す図である。この例には、上記の変形例が考慮されている。
次に、TACの構成について説明する。
単独コマンドは、動作プリミティブレジスタ401に書き込まれ、保持される。
領域コマンド制御部41において、アドレス調整部411は、コマンドエントリ部40から領域コマンドに関するアドレス範囲を取得し、その両端をそれぞれキャッシュエントリの先頭データを指すように調整し、コマンド保持部412は、アドレス範囲を調整された後の領域コマンドを最大4つまで保持し、コマンド選択部413は、保持されている領域コマンドの一つ(例えば、最も古くから保持されている一つ)を選択して、選択された領域コマンドに応じた要求を生成し、操作要求部44へ出力する。
ここで、アドレス調整部411のアドレス調整機能の内容を詳しく説明する。
コマンド保持部412は、アドレス調整部411からアラインスタートアドレスとアラインエンドアドレスとを取得するとともに、コマンドレジスタ404から動作プリミティブとインクリメント値とを取得して保持する。
コマンド選択部413は、コマンド保持部412に保持されているコマンドの一つ(例えば最も古い一つ、つまりFIFOキューの先頭)を選択し、そのカレントアドレスと動作プリミティブとを示す一つの要求を生成し、操作要求部44へ出力する。
図15は、領域コマンド制御部41における領域コマンド制御処理の一例を示すフローチャートである。
命令連動コマンド制御部42において、アドレス調整部421は、コマンドエントリ部40から命令連動コマンドに関するアドレス範囲を取得し、その両端をそれぞれキャッシュエントリの先頭データを指すように調整し、コマンド保持部422は、アドレス範囲を調整された後の命令連動コマンドを最大4つまで保持する。実行判断部423は、保持されている各コマンドについて定められる予測アドレスに対して、前記プロセッサによって特定の命令が実行されたか否かを判断し、コマンド選択部424は、肯定判断されたコマンドの一つ(例えば、最も古くから保持されている一つ)を選択し、実効アドレス生成部425によって生成される実効アドレスに対する要求を操作要求部44へ出力する。
実行判断部423は、コマンド保持部422に保持されている各コマンドのカレントアドレスを予測アドレスとして用いて、プロセッサ1によってその予測アドレスをオペランドとする特定命令(具体的には、ポストインクリメント付きロード命令、及びポストインクリメント付きストア命令)が実行されたか否かを判断する。このような判断を行うために、例えば、プロセッサ1は、ポストインクリメント付きロード命令、及びポストインクリメント付きストア命令を実行中であることを示す信号Cを実行判断部423に供給し、実行判断部423は、信号Cが供給されている期間に、アドレスバスに現れるアドレスをコマンド保持部422に保持されている各カレントアドレスと比較してもよい。
コマンド選択部424は、実行判断部423によって肯定判断されたコマンドの一つ(例えば最も古い一つ)を選択する。実効アドレス生成部425は、選択されたコマンドがフィル又はタッチを示す場合、そのコマンドのカレントアドレス(前述した予測アドレス)に、1ライン分のオフセット値を加算することによって、コマンドの操作対象となる実効アドレスを生成する。また、選択されたコマンドがライトバック、無効化、ライトバック兼無効化、又は最古化を示す場合、そのコマンドのカレントアドレスから、1ライン分のオフセット値を減算することによって、コマンドの操作対象となる実効アドレスを生成する。そして、コマンド選択部424は、その実効アドレスと動作プリミティブの指定とを示す一つの要求を生成し、操作要求部44へ出力すると共に、選択されたコマンドに対応するカレントアドレスを、インクリメント値分増加させることによって更新する。
図16は、命令連動コマンド制御部42における命令連動コマンド制御処理の一例を示すフローチャートである。
オートクリーナ制御部43において、クリーニングアドレス出力部431は、キャッシュメモリ3における各キャッシュエントリを指定するアドレスを逐次出力する。クリーニングアドレス出力部431は、アドレスを保持して出力する単なるレジスタであってもよい。
図17は、オートクリーナ制御部43におけるオートクリーナ制御処理の一例を示すフローチャートである。
ここまでの説明から、操作要求部44には、単独コマンドに応じた要求、命令連動コマンドに応じた要求、領域コマンドに応じた要求、及びオートクリーナ操作の要求の最大4つの要求が与えられる可能性がある。操作要求部44は、これらの要求が同時に与えられた場合、予め設定された優先順位に基づいて一つの要求を選択し、選択した要求をキャッシュメモリ3へ転送する。この予め設定された優先順位は、前述したコマンドの順序としてもよい。
以上説明したように、TAC4は、プロセッサ1が予め定められた命令を実行することによってキャッシュデータの転送及び属性操作に関するコマンドを与えられ、そのコマンドに応じて6種類の動作プリミティブ及びオートクリーナ操作をキャッシュメモリ3に要求し、キャッシュメモリ3は、プロセッサ1からのメモリアクセスに応じて従来の一般的なキャッシングを行う合間に、TAC4からの要求に応じた操作を実行する。
2 メモリ
3 キャッシュメモリ
4 TAC
20 アドレスレジスタ
21 メモリI/F
22 デマルチプレクサ
30 デコーダ
31a〜31d ウェイ
32a〜32d 比較器
33a〜33d アンド回路
34 オア回路
35 セレクタ
36 セレクタ
37 デマルチプレクサ
38 制御部
40 コマンドエントリ部
41 領域コマンド制御部
42 命令連動コマンド制御部
43 オートクリーナ制御部
44 操作要求部
401 動作プリミティブレジスタ
402 スタートアドレスレジスタ
403 サイズレジスタ
404 コマンドレジスタ
405 TACコントロールレジスタ
411 アドレス調整部
412 コマンド保持部
413 コマンド選択部
421 アドレス調整部
422 コマンド保持部
423 実行判断部
424 コマンド選択部
425 実効アドレス生成部
431 クリーニングアドレス出力部
Claims (17)
- プロセッサとメモリとの間に設けられるキャッシュメモリと、
前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とを備え、
前記キャッシュメモリは、
前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御部を備え、
前記転送及び属性制御手段は、
前記プロセッサが予め定められた命令を実行することによって、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを与えられるコマンドエントリ部と、
前記アドレスに対する前記コマンドによって示される操作を前記キャッシュメモリに要求する操作要求部と
を備え、
前記コマンドエントリ部は、操作の対象となるアドレスの指定方法と操作のタイミングのうち少なくとも一方が異なる複数の種類のコマンドを前記プロセッサから与えられ、
前記操作要求部は、各コマンドに応じた操作要求を、コマンドの種類によって予め設定された優先順位に基づいて選択し、前記キャッシュメモリに要求する
ことを特徴とするキャッシュメモリシステム。 - 前記キャッシュメモリは、キャッシュデータの管理単位であるキャッシュエントリに対応付けて、
そのキャッシュエントリに保持されるキャッシュデータに対応するメモリアドレスの上位部を示すタグを保持するタグ保持部と、
そのキャッシュエントリが有効か否かを示すバリッドフラグと、そのキャッシュエントリに書き込み操作があったか否かを示すダーティフラグと、そのキャッシュエントリのアクセス順序を強制的に最古とすることを示すウィークフラグとを保持するフラグ保持部と
を有し、
前記転送及び属性制御手段からの要求に応じて、
指定されるアドレスにヒットするキャッシュエントリがない場合に、リプレース対象となるキャッシュエントリを選択し、メモリから前記選択されたキャッシュエントリへ前記指定されたアドレスに対応するデータをロードし、タグを設定してバリッドフラグをセットするフィル操作、
指定されるアドレスにヒットするキャッシュエントリがない場合に、リプレース対象となるキャッシュエントリを選択し、メモリから前記選択されたキャッシュエントリへデータをロードすることなくタグを設定してバリッドフラグをセットするタッチ操作、
指定されるアドレスにヒットするキャッシュエントリがありかつダーティフラグがセットされている場合に、そのキャッシュエントリのデータをメモリへセーブしてダーティフラグをリセットするライトバック操作、
指定されるアドレスにヒットするキャッシュエントリがある場合に、そのキャッシュエントリのデータをダーティフラグの状態に応じてメモリへセーブすることなくバリッドフラグをリセットする無効化操作、
指定されるアドレスにヒットするキャッシュエントリがある場合に、ダーティフラグがセットされていればそのキャッシュエントリのデータをメモリへセーブしてダーティフラグ及びバリッドフラグをリセットし、ダーティフラグがリセットされていればそのキャッシュエントリのバリッドフラグのリセットのみを行うライトバック兼無効化操作、及び
指定されるアドレスにヒットするキャッシュエントリがある場合に、そのキャッシュエントリのウィークフラグをセットする最古化操作
の中の一つを実行する
ことを特徴とする請求項1に記載のキャッシュメモリシステム。 - 前記コマンドエントリ部は、さらに、前記プロセッサから前記コマンドに対応してアドレス範囲を与えられ、
前記操作要求部は、前記アドレス範囲に属する複数のアドレスに対する前記操作を、前記キャッシュメモリに逐次要求する
ことを特徴とする請求項1または2に記載のキャッシュメモリシステム。 - 前記転送及び属性制御手段は、さらに、
前記アドレス範囲の先頭及び末尾を、前記キャッシュメモリにおけるキャッシュデータの管理単位であるキャッシュエントリの先頭データを示すように調整するアドレス調整部を有し、
前記操作要求部は、前記調整後のアドレス範囲に含まれる複数のアドレスに対する前記操作を、前記キャッシュメモリに逐次要求する
ことを特徴とする請求項3に記載のキャッシュメモリシステム。 - 前記転送及び属性制御手段は、さらに、
複数のコマンドとそれぞれのコマンドに対応するアドレス範囲とを保持するコマンド保持部と、
前記保持された複数のコマンドの中から一つを選択するコマンド選択部と
を有し、
前記操作要求部は、前記選択されたコマンドに対応するアドレス範囲に属する複数のアドレスに対する、そのコマンドによって示される操作を逐次要求する
ことを特徴とする請求項3または4に記載のキャッシュメモリシステム。 - プロセッサとメモリとの間に設けられるキャッシュメモリと、
前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とを備え、
前記キャッシュメモリは、
前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御部を備え、
前記転送及び属性制御手段は、
前記プロセッサが予め定められた命令を実行することによって、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを与えられるコマンドエントリ部と、
前記アドレスに対する前記コマンドによって示される操作を前記キャッシュメモリに要求する操作要求部と
を備え、
前記コマンドエントリ部は、さらに、前記プロセッサから前記コマンドに対応してアドレス範囲を与えられ、
前記操作要求部は、前記アドレス範囲に属する複数のアドレスに対する前記操作を、前記キャッシュメモリに逐次要求し、
前記転送及び属性制御手段は、さらに、
複数のコマンドとそれぞれのコマンドに対応するアドレス範囲とを保持するコマンド保持部と、
前記保持された複数のコマンドの中から一つを選択するコマンド選択部と
を有し、
前記操作要求部は、前記選択されたコマンドに対応するアドレス範囲に属する複数のアドレスに対する、そのコマンドによって示される操作を逐次要求し、
前記コマンド選択部は、前記選択されたコマンドについて全ての要求がなされる前に、他のコマンドを選択し、
前記操作要求部は、元のコマンドが再び選択された場合にそのコマンドについてまだ要求していないアドレスに対する操作を逐次要求する
ことを特徴とするキャッシュメモリシステム。 - プロセッサとメモリとの間に設けられるキャッシュメモリと、
前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及 び属性制御手段とを備え、
前記キャッシュメモリは、
前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御部を備え、
前記転送及び属性制御手段は、
前記プロセッサが予め定められた命令を実行することによって、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを与えられるコマンドエントリ部と、
前記アドレスに対する前記コマンドによって示される操作を前記キャッシュメモリに要求する操作要求部と
を備え、
前記コマンドエントリ部は、さらに、前記プロセッサから前記コマンドに対応してアドレス範囲を与えられ、
前記操作要求部は、前記アドレス範囲に属する複数のアドレスに対する前記操作を、前記キャッシュメモリに逐次要求し、
前記転送及び属性制御手段は、さらに、
次に予定される要求に関して定められる予測アドレスに対して、前記プロセッサによって特定の命令が実行されたか否かを判断する実行判断部と、
肯定判断がなされると、前記予測アドレスに所定のオフセット値を加算又は減算することによって実効アドレスを生成する実効アドレス生成部と
を有し、
前記操作要求部は、前記生成された実効アドレスに対する前記操作を要求する
ことを特徴とするキャッシュメモリシステム。 - 前記転送及び属性制御手段は、さらに、
複数のコマンドとそれぞれのコマンドに対応するアドレス範囲とを保持するコマンド保持部を有し、
前記実行判断部は、前記保持された各コマンドについて、そのコマンドに対応する予測アドレスに対して、前記プロセッサによって特定の命令が実行されたか否かを判断し、
前記転送及び属性制御手段は、さらに、
肯定判断がなされたコマンドの中から一つを選択するコマンド選択部を有し、
前記実効アドレス生成部は、前記選択されたコマンドに対応する予測アドレスに所定値を加算又は減算することによって実効アドレスを生成し、
前記操作要求部は、前記生成された実効アドレスに対する前記選択されたコマンドによって示される操作を要求する
ことを特徴とする請求項7に記載のキャッシュメモリシステム。 - 前記転送及び属性制御手段は、さらに、
前記キャッシュメモリにおけるキャッシュデータの管理単位である各キャッシュエントリを指定するアドレスを逐次出力するアドレス出力部を有し、
前記操作要求部は、前記出力されたアドレスによって指定されるキャッシュエントリを含む一つ以上のキャッシュエントリに対する何れかの操作要求を保持する要求保持手段を備え、操作要求を保持している間は自発的に操作要求をし続ける
ことを特徴とする請求項1に記載のキャッシュメモリシステム。 - 前記操作要求部は、前記キャッシュメモリに要求する操作がライトバック操作であり、
前記キャッシュメモリは、前記要求に応じてライトバック操作を実行する
ことを特徴とする請求項1または9に記載のキャッシュメモリシステム。 - プロセッサとメモリとの間に設けられるキャッシュメモリと、
前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とを備え、
前記キャッシュメモリは、
前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御部を備え、
前記転送及び属性制御手段は、
前記プロセッサが予め定められた命令を実行することによって、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを与えられるコマンドエントリ部と、
前記アドレスに対する前記コマンドによって示される操作を前記キャッシュメモリに要求する操作要求部と
を備え、
前記コマンドエントリ部は、単一のアドレスに対する操作を示す単独コマンドと、アドレス範囲に含まれる複数のアドレスに対する操作を前記プロセッサが実行する特定の命令と同期して行うことを示す命令連動コマンドと、アドレス範囲に含まれる複数のアドレスに対する操作を前記プロセッサが実行する特定の命令とは非同期に行うことを示す領域コマンドと、キャッシュデータを逐次操作することを示す逐次操作コマンドのうちの少なくとも一つを前記プロセッサから与えられ、
前記操作要求部は、各コマンドに応じた操作要求を予め設定された優先順位に基づいて選択を行い、前記キャッシュメモリに要求する
ことを特徴とするキャッシュメモリシステム。 - 前記操作要求部は、各コマンドに応じた操作を、前記コマンドの順に優先して、前記キャッシュメモリに要求する
ことを特徴とする請求項11に記載のキャッシュメモリシステム。 - プロセッサとメモリとの間に設けられるキャッシュメモリと前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とからなるキャッシュメモリシステムを制御する制御方法であって、
前記キャッシュメモリで、前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御ステップと、
前記転送及び属性制御手段で、前記プロセッサから、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを取得する取得ステップと、
前記アドレスに対する前記コマンドによって示される操作を、前記転送及び属性制御手段から前記キャッシュメモリに要求する操作要求ステップと
を含み、
前記取得ステップでは、前記プロセッサから、操作の対象となるアドレスの指定方法と操作のタイミングのうち少なくとも一方が異なる複数の種類のコマンドを取得し、
前記操作要求ステップでは、各コマンドに応じた操作要求を、コマンドの種類によって予め設定された優先順位に基づいて選択し、前記キャッシュメモリに要求する
ことを特徴とする制御方法。 - 前記コマンドエントリ部は、
予め定められたメモリアドレスに割り当てられ、前記プロセッサが前記命令を実行することによって、前記コマンドを表すデータを設定されるレジスタを備え、
前記操作要求部は、前記レジスタに設定されたコマンドによって示される操作を前記キャッシュメモリの制御部に要求する
ことを特徴とする請求項1に記載のキャッシュメモリシステム。 - プロセッサとメモリとの間に設けられるキャッシュメモリと前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とからなるキャッシュメモリシステムを制御する制御方法であって、
前記キャッシュメモリで、前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御ステップと、
前記転送及び属性制御手段で、前記プロセッサから、キャッシュデータの転送及び属性 操作とその操作の対象を指定するアドレスとを示すコマンドを取得する取得ステップと、
前記アドレスに対する前記コマンドによって示される操作を、前記転送及び属性制御手段から前記キャッシュメモリに要求する操作要求ステップと
を含み、
前記取得ステップでは、さらに、前記プロセッサから前記コマンドに対応してアドレス範囲を取得し、
前記操作要求ステップでは、前記アドレス範囲に属する複数のアドレスに対する前記操作を、前記キャッシュメモリに逐次要求し、
前記制御方法は、さらに、
複数のコマンドとそれぞれのコマンドに対応するアドレス範囲とを、前記転送及び属性制御手段にて保持するコマンド保持ステップと、
前記保持された複数のコマンドの中から一つを選択するコマンド選択ステップと
を含み、
前記操作要求ステップでは、前記選択されたコマンドに対応するアドレス範囲に属する複数のアドレスに対する、そのコマンドによって示される操作を、前記転送及び属性制御手段から前記キャッシュメモリに逐次要求し、
前記コマンド選択ステップでは、前記選択されたコマンドについて全ての要求がなされる前に、他のコマンドを選択し、
前記操作要求ステップでは、元のコマンドが再び選択された場合にそのコマンドについてまだ要求していないアドレスに対する操作を逐次要求する
ことを特徴とする制御方法。 - プロセッサとメモリとの間に設けられるキャッシュメモリと前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とからなるキャッシュメモリシステムを制御する制御方法であって、
前記キャッシュメモリで、前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制御ステップと、
前記転送及び属性制御手段で、前記プロセッサから、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを取得する取得ステップと、
前記アドレスに対する前記コマンドによって示される操作を、前記転送及び属性制御手段から前記キャッシュメモリに要求する操作要求ステップと
を含み、
前記取得ステップでは、さらに、前記プロセッサから前記コマンドに対応してアドレス範囲を取得し、
前記操作要求ステップでは、前記アドレス範囲に属する複数のアドレスに対する前記操作を、前記キャッシュメモリに逐次要求し、
前記制御方法は、さらに、
次に予定される要求に関して定められる予測アドレスに対して、前記プロセッサによって特定の命令が実行されたか否かを、前記転送及び属性制御手段にて判断する実行判断ステップと、
肯定判断がなされると、前記予測アドレスに所定のオフセット値を加算又は減算することによって実効アドレスを生成する実効アドレス生成ステップと
を含み、
前記操作要求ステップでは、前記生成された実効アドレスに対する前記操作を要求する
ことを特徴とする制御方法。 - プロセッサとメモリとの間に設けられるキャッシュメモリと前記キャッシュメモリに対してキャッシュデータの転送と属性操作とを要求する転送及び属性制御手段とからなるキャッシュメモリシステムを制御する制御方法であって、
前記キャッシュメモリで、前記プロセッサからのメモリアクセス及び前記転送及び属性制御手段からの要求に応じて、キャッシュデータの転送と属性操作との実行を制御する制 御ステップと、
前記転送及び属性制御手段で、前記プロセッサから、キャッシュデータの転送及び属性操作とその操作の対象を指定するアドレスとを示すコマンドを取得する取得ステップと、
前記アドレスに対する前記コマンドによって示される操作を、前記転送及び属性制御手段から前記キャッシュメモリに要求する操作要求ステップと
を含み、
前記取得ステップでは、単一のアドレスに対する操作を示す単独コマンドと、アドレス範囲に含まれる複数のアドレスに対する操作を前記プロセッサが実行する特定の命令と同期して行うことを示す命令連動コマンドと、アドレス範囲に含まれる複数のアドレスに対する操作を前記プロセッサが実行する特定の命令とは非同期に行うことを示す領域コマンドと、キャッシュデータを逐次操作することを示す逐次操作コマンドのうちの少なくとも一つを前記プロセッサから取得し、
前記操作要求ステップでは、各コマンドに応じた操作要求を予め設定された優先順位に基づいて選択を行い、前記キャッシュメモリに要求する
ことを特徴とする制御方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005112839 | 2005-04-08 | ||
| JP2005112839 | 2005-04-08 | ||
| PCT/JP2006/302141 WO2006112111A1 (ja) | 2005-04-08 | 2006-02-08 | キャッシュメモリシステム及びその制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP4090497B2 true JP4090497B2 (ja) | 2008-05-28 |
| JPWO2006112111A1 JPWO2006112111A1 (ja) | 2008-11-27 |
Family
ID=37114853
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007521091A Expired - Lifetime JP4090497B2 (ja) | 2005-04-08 | 2006-02-08 | キャッシュメモリシステム及びその制御方法 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7953935B2 (ja) |
| EP (1) | EP1868101B1 (ja) |
| JP (1) | JP4090497B2 (ja) |
| KR (1) | KR20070093452A (ja) |
| CN (1) | CN101151600B (ja) |
| DE (1) | DE602006011292D1 (ja) |
| TW (1) | TW200702993A (ja) |
| WO (1) | WO2006112111A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010032435A1 (ja) * | 2008-09-17 | 2010-03-25 | パナソニック株式会社 | キャッシュメモリ、メモリシステム、データコピー方法及びデータ書き換え方法 |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100818920B1 (ko) * | 2006-02-10 | 2008-04-04 | 삼성전자주식회사 | 그래픽 객체의 처리 시 발생된 키 이벤트를 제어하는 장치및 그 방법 |
| EP2511833B1 (en) * | 2006-02-17 | 2020-02-05 | Google LLC | Encoding and adaptive, scalable accessing of distributed translation models |
| KR100985517B1 (ko) * | 2008-12-04 | 2010-10-05 | 주식회사 에이디칩스 | 캐시메모리 제어방법 |
| JP4768054B2 (ja) | 2009-06-23 | 2011-09-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュ制御方法 |
| US8214598B2 (en) * | 2009-12-22 | 2012-07-03 | Intel Corporation | System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries |
| KR101502827B1 (ko) * | 2014-03-20 | 2015-03-17 | 주식회사 에이디칩스 | 컴퓨터 시스템에서의 캐시 무효화 방법 |
| KR102128475B1 (ko) * | 2014-03-27 | 2020-07-01 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 |
| US9779025B2 (en) | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
| CN105243685B (zh) * | 2015-11-17 | 2018-01-02 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
| CN105427368B (zh) * | 2015-11-17 | 2018-03-20 | 上海兆芯集成电路有限公司 | 数据单元的关联性检查方法以及使用该方法的装置 |
| US10101925B2 (en) * | 2015-12-23 | 2018-10-16 | Toshiba Memory Corporation | Data invalidation acceleration through approximation of valid data counts |
| KR102649657B1 (ko) * | 2018-07-17 | 2024-03-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
| US11281585B2 (en) | 2018-08-30 | 2022-03-22 | Micron Technology, Inc. | Forward caching memory systems and methods |
| CN112840327B (zh) * | 2019-02-21 | 2024-09-24 | 华为技术有限公司 | 一种片上系统、访问命令的路由方法及终端 |
| US11086791B2 (en) * | 2019-08-29 | 2021-08-10 | Micron Technology, Inc. | Methods for supporting mismatched transaction granularities |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5119453A (en) | 1974-08-08 | 1976-02-16 | Fujitsu Ltd | Patsufua memoriseigyohoshiki |
| JPS6045855A (ja) | 1983-08-22 | 1985-03-12 | Fujitsu Ltd | 磁気ディスク装置の順次アクセス検出方法 |
| US5375216A (en) * | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
| US5524225A (en) | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
| JPH0784879A (ja) | 1993-09-09 | 1995-03-31 | Toshiba Corp | キャッシュメモリ装置 |
| JPH07295882A (ja) | 1994-04-22 | 1995-11-10 | Hitachi Ltd | 情報処理装置、及び、情報処理システム |
| US5860110A (en) * | 1995-08-22 | 1999-01-12 | Canon Kabushiki Kaisha | Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition |
| JP3175675B2 (ja) * | 1997-12-04 | 2001-06-11 | 日本電気株式会社 | プリフェッチ制御装置 |
| JPH11272551A (ja) | 1998-03-19 | 1999-10-08 | Hitachi Ltd | キャッシュメモリのフラッシュ制御方式およびキャッシュメモリ |
| EP1182566B1 (en) | 2000-08-21 | 2013-05-15 | Texas Instruments France | Cache operation based on range of addresses |
| JP2003223360A (ja) | 2002-01-29 | 2003-08-08 | Hitachi Ltd | キャッシュメモリシステムおよびマイクロプロセッサ |
| JP4067887B2 (ja) | 2002-06-28 | 2008-03-26 | 富士通株式会社 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
| JP2004118305A (ja) | 2002-09-24 | 2004-04-15 | Sharp Corp | キャッシュメモリ制御装置 |
| US7194587B2 (en) | 2003-04-24 | 2007-03-20 | International Business Machines Corp. | Localized cache block flush instruction |
| JP4009304B2 (ja) | 2003-09-19 | 2007-11-14 | 松下電器産業株式会社 | キャッシュメモリおよびキャッシュメモリ制御方法 |
| EP1684180A4 (en) | 2003-11-12 | 2008-10-29 | Matsushita Electric Industrial Co Ltd | CACHE MEMORY AND CONTROL PROCEDURE THEREFOR |
| KR100826757B1 (ko) | 2003-11-18 | 2008-04-30 | 마쯔시다덴기산교 가부시키가이샤 | 캐시 메모리 및 그 제어 방법 |
| WO2005050455A1 (ja) | 2003-11-18 | 2005-06-02 | Matsushita Electric Industrial Co., Ltd. | キャッシュメモリ及びその制御方法 |
| WO2005066796A1 (ja) | 2003-12-22 | 2005-07-21 | Matsushita Electric Industrial Co., Ltd. | キャッシュメモリ及びその制御方法 |
| JP4521206B2 (ja) * | 2004-03-01 | 2010-08-11 | 株式会社日立製作所 | ネットワークストレージシステム、コマンドコントローラ、及びネットワークストレージシステムにおけるコマンド制御方法 |
| US20070186048A1 (en) | 2004-03-24 | 2007-08-09 | Matsushita Electric Industrial Co., Ltd. | Cache memory and control method thereof |
-
2006
- 2006-02-08 JP JP2007521091A patent/JP4090497B2/ja not_active Expired - Lifetime
- 2006-02-08 EP EP06713284A patent/EP1868101B1/en not_active Expired - Fee Related
- 2006-02-08 CN CN2006800105539A patent/CN101151600B/zh not_active Expired - Fee Related
- 2006-02-08 DE DE602006011292T patent/DE602006011292D1/de not_active Expired - Lifetime
- 2006-02-08 WO PCT/JP2006/302141 patent/WO2006112111A1/ja not_active Ceased
- 2006-02-08 US US11/816,858 patent/US7953935B2/en not_active Expired - Fee Related
- 2006-02-08 KR KR1020077018401A patent/KR20070093452A/ko not_active Ceased
- 2006-02-15 TW TW095105065A patent/TW200702993A/zh unknown
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2010032435A1 (ja) * | 2008-09-17 | 2010-03-25 | パナソニック株式会社 | キャッシュメモリ、メモリシステム、データコピー方法及びデータ書き換え方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE602006011292D1 (de) | 2010-02-04 |
| US20090100231A1 (en) | 2009-04-16 |
| WO2006112111A1 (ja) | 2006-10-26 |
| US7953935B2 (en) | 2011-05-31 |
| EP1868101A1 (en) | 2007-12-19 |
| CN101151600A (zh) | 2008-03-26 |
| TW200702993A (en) | 2007-01-16 |
| EP1868101B1 (en) | 2009-12-23 |
| CN101151600B (zh) | 2012-02-22 |
| KR20070093452A (ko) | 2007-09-18 |
| EP1868101A4 (en) | 2009-01-21 |
| JPWO2006112111A1 (ja) | 2008-11-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4090497B2 (ja) | キャッシュメモリシステム及びその制御方法 | |
| US6202129B1 (en) | Shared cache structure for temporal and non-temporal information using indicative bits | |
| US6105111A (en) | Method and apparatus for providing a cache management technique | |
| JP4045296B2 (ja) | キャッシュメモリ及びその制御方法 | |
| JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
| US7415575B1 (en) | Shared cache with client-specific replacement policy | |
| US7895399B2 (en) | Computer system and control method for controlling processor execution of a prefetech command | |
| US20040049641A1 (en) | System and method for controlling prefetching | |
| US20050086435A1 (en) | Cache memory controlling apparatus, information processing apparatus and method for control of cache memory | |
| JP5536655B2 (ja) | キャッシュメモリ、メモリシステム及びデータコピー方法 | |
| US20100217937A1 (en) | Data processing apparatus and method | |
| EP2405361A1 (en) | Computer system, control method, recording medium and control program | |
| US11036639B2 (en) | Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays | |
| JP4008947B2 (ja) | キャッシュメモリ及びその制御方法 | |
| GB2538055A (en) | Data processing apparatus having a cache | |
| US7555610B2 (en) | Cache memory and control method thereof | |
| US6446168B1 (en) | Method and apparatus for dynamically switching a cache between direct-mapped and 4-way set associativity | |
| KR20050007907A (ko) | 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법 | |
| US20060288170A1 (en) | Caching data | |
| JP5012016B2 (ja) | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 | |
| KR100851298B1 (ko) | 캐시 메모리 컨트롤러 및 이를 이용한 캐시 메모리 관리방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20080129 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080226 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120307 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |