JPH0869417A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH0869417A
JPH0869417A JP6203253A JP20325394A JPH0869417A JP H0869417 A JPH0869417 A JP H0869417A JP 6203253 A JP6203253 A JP 6203253A JP 20325394 A JP20325394 A JP 20325394A JP H0869417 A JPH0869417 A JP H0869417A
Authority
JP
Japan
Prior art keywords
cache
tag
mask
block
index
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
JP6203253A
Other languages
English (en)
Inventor
Yasuto Komura
康人 甲村
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP6203253A priority Critical patent/JPH0869417A/ja
Publication of JPH0869417A publication Critical patent/JPH0869417A/ja
Pending legal-status Critical Current

Links

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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【構成】 プロセサ12の要求に従い指定されたアドレ
ス範囲に対応するキャッシュブロックが、キャッシュデ
ィレクトリ20からのディレクトリタグとプロセサ12
からのタグとを比較器26で比較することによって検出
する。このとき、ディレクトリタグをタグマスク22に
よってマスクすることによって効率的にキャッシュブロ
ックを検出できる。また、プロセサ12から出力された
インデックスの値をインデックスカウンタ16によって
インクリメントし、インデックスマスク34によってア
ドレス範囲に応じてインデックスカウンタ16の上限を
検出する。インデックスカウンタ16の上限が検出され
るまでの間、プロセサ12によって指定されたアドレス
範囲に対応するキャッシュブロックのダーティビットを
クリアする。 【効果】 下位レベルのメモリブロックに対する不要の
書き出しを防ぐことができ、計算機システムの性能が向
上する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は計算機システムに関
し、特にたとえばキャッシュメモリの管理方式にライト
バック方式を採用する、計算機システムに関する。
【0002】
【従来の技術】近年の高性能の計算機システムには、キ
ャッシュと呼ばれる上位レベルの高速メモリに下位レベ
ルのメモリの内容の一部をコピーしてもつことによって
システムの性能を向上させる機構が、広く用いられてい
る。キャッシュの管理方式の1つは、プロセサからメモ
リシステムへの書き込みをキャッシュおよび下位メモリ
の両方に対して行い、キャッシュの内容を常に下位レベ
ルのメモリの内容と一貫させておくライトスルー方式で
あり、別の1つは、プロセサからメモリシステムへの書
き込みをキャッシュに対してのみ行い、データが変更さ
れたキャッシュの内容はリプレースの対象になった時点
で下位レベルのメモリに書き出されるライトバック方式
である。
【0003】ライトバック方式では、キャッシュブロッ
クの内容がプロセサによって変更されたため下位レベル
のメモリの内容との一貫性を失っている状態をダーティ
であるといい、キャッシュブロックのそれぞれについ
て、ダーティか否かを示すためのダーティビットと呼ば
れる状態ビットが設けられている。たとえば、従来のラ
イトバック方式かつセットアソシアティブキャッシュ方
式の計算機システム1は図5のように構成される。
【0004】図5を参照して、従来の計算機システム1
において、プロセサ2から階層メモリに対するリードア
クセス要求が出されたとする。プロセサ2から出力され
たアドレスはブロック内オフセット,インデックスおよ
びタグに分割して保持され、インデックスで示されるキ
ャッシュディレクトリ3のエントリがキャッシュ4の連
想度の数だけ並列にアクセスされ、キャッシュディレク
トリ3からディレクトリタグ,有効ビットおよびダーテ
ィビットが出力される。ディレクトリタグとアドレスの
タグとは比較器5によって比較され、これらが一致し、
かつ有効ビットが真であるディレクトリエントリが存在
すれば、リードアクセスはキャッシュ4にヒットしたこ
とになり、キャッシュ4がインデックスおよびプロセサ
内オフセットによってアクセスされ、データがプロセサ
2に返される。
【0005】もし、インデックスで示されるセット内の
全てのエントリについて、有効ビットが偽であるかまた
はディレクトリタグがアドレスのタグと一致しないので
あれば、キャッシュミスが発生したことになる。この場
合、キャッシュ制御部6はキャッシュ4中のどのキャッ
シュブロックを今回アクセスのあったメモリブロックの
内容でリプレースするかを選択する必要がある。
【0006】リプレースの対象となったキャッシュブロ
ックの有効ビットが偽であるか、ダーティビットが偽で
あるなら、そのキャッシュブロックの内容は不要あるい
は下位レベルのメモリ中に同じ内容のものが存在するか
ら、捨ててしまってかまわない。このときは、下位レベ
ルメモリアクセス制御部7は、プロセサ2からのアクセ
ス要求のあったアドレスを含むメモリブロックのリード
要求(下位レベルメモリ制御信号)を下位レベルのメモ
リに対して発生する。そして、キャッシュ4のいずれか
のセットが選択され、そのインデックスによって示され
るエントリにこのメモリブロックの内容が転送される。
また、そのメモリブロックのうちプロセサ2から要求の
あったデータワードがプロセサ2にも返される。さら
に、選択されたエントリのタグ部には今回アクセスされ
たアドレスのタグ部が設定され、有効ビットは真に、ダ
ーティビットは偽に設定される。
【0007】一方、リプレースの対象となったキャッシ
ュブロックの有効ビットが真であり、ダーティビットが
真であるなら、キャッシュ制御部6はこのキャッシュブ
ロックの内容をまず下位レベルのメモリに書き出して、
その後にキャッシュブロックに新たな内容を読み込み上
述の操作を行う必要がある。ところで、現在の典型的な
プログラム、特に大規模な処理を行うプログラムにおい
ては、必要になった時点で生成されて不要になれば消去
されるような動的な変数が多用される。このような動的
変数の生成から消去までの期間を変数の生存期間と呼
ぶ。動的変数のために用いられるメモリ領域は、その動
的変数が最初に必要とされる時点でメモリの未使用領域
から割り当てられ、その動的変数が不要になった時点で
割り当てられていたメモリ領域は未使用領域に返却され
る。
【0008】動的変数の種類の1つは、プログラムの変
数コール/リターンに伴って生成/消去されるものであ
り、関数の局所変数と呼ばれる。この種の動的変数はス
タック領域と呼ばれるメモリ領域に割り当てられる。現
在の多くのプロセサにおいては、スタック領域を管理す
ためのハードウェア機構を備えている。また、個々の関
数呼び出しに対応して確保されるスタック領域をスタッ
クフレームと呼ぶ。スタックフレームは、関数の局所変
数,関数にわたされる引数に関する情報,および関数か
らのリターンアドレスなどを含む。
【0009】動的変数の別の種類は、その生存期間がプ
ログラムの関数呼び出しと関連づけることができないも
のである。このような動的変数はヒープ領域と呼ばれる
メモリ領域に割り当てられる。通常、この種の動的変数
に対するメモリ領域の割り当ての管理は、ソフトウェア
によって行われる。
【0010】
【発明が解決しようとする課題】ここで、図5に示すラ
イトバック方式のキャッシュ4をもつ既存の計算機シス
テム1について考える。キャッシュ4上に動的変数に対
応するキャッシュブロックが存在し、なおかつこの動的
変数の生存期間が終了した時点で、そのキャッシュブロ
ックがダーティである場合を考える。この時点で、この
キャッシュブロックが対応する下位レベルのメモリ領域
は、ヒープ領域あるいはスタック領域であり、いずれの
動的変数も割り当てられていない状態である。さらに処
理が進み、このキャッシュブロックに対応するメモリ領
域に新たな動的変数が割り当てられるより以前に、この
キャッシュブロックがリプレースの対象になったとす
る。このキャッシュブロックはダーティであるため、下
位レベルのメモリに内容の書き出しが行われる。
【0011】しかし、このキャッシュブロックの内容
は、生存期間が終了した動的変数の内容であり、もはや
プログラムによって必要とされない。すなわち、これま
での計算機システムは、生存期間の終了した動的変数が
キャッシュブロック上にダーティブロックとして存在し
かつそのキャッシュブロックがリプレースの対象となっ
たときに、下位レベルのメモリにキャッシュブロックの
内容を書き出すという不要な操作を行っていた。
【0012】それゆえに、この発明の主たる目的は、不
要な操作を防ぎ性能を向上することができる、計算機シ
ステムを提供することである。
【0013】
【課題を解決するための手段】この発明は、下位メモリ
と下位メモリの内容のコピーをブロック単位でもつキャ
ッシュとを含み、キャッシュはプロセサからのライトア
クセス要求に対してはライトバック方式によってこれを
処理する計算機システムにおいて、プロセサからの要求
に応じて、指定されたメモリ領域に対応するキャッシュ
ブロックのダーティビットを強制的にクリアするクリア
手段を備えることを特徴とする、計算機システムであ
る。
【0014】
【作用】プロセサからの要求に従い、指定されたアドレ
ス範囲に対応するキャッシュブロックをブロック検出手
段でタグマスクを用いて効率よく検出する。また、イン
デックスカウンタによって、プロセサから出力されたイ
ンデックスの値をインクリメントし、インデックス検出
手段で、指定されたアドレス範囲に応じてインデックス
カウンタの上限を検出する。そして、インデックスカウ
ンタの上限が検出されるまでの間、プロセサによって指
定されたアドレス範囲に対応するキャッシュブロックの
ダーティビットを、キャッシュ制御手段によって強制的
にクリアする。
【0015】ここで、強制的なダーティビットのクリア
は、キャッシュブロックの内容が下位レベルのメモリブ
ロックとの同一性を失っているにも拘わらず、その情報
が計算機システムから失われてしまう、すなわち、計算
機システムが一貫性を失ってしまうことを意味する。こ
のことが正しいプログラムの実行に影響を与えないこと
を以下に示す。
【0016】ここでは、動的変数の生存期間が終了した
場合を例に説明する。一般に、動的変数が割り当てられ
ているメモリ領域は、プログラム実行時に決定され、ど
のメモリ領域が割り当てられているか、さらに、割り当
てられた領域に偶然格納されている値がどのようなもの
があるか、プログラマーが事前に知ることはできない。
すなわち、動的変数の初期値はプログラマーにとっては
非決定的であると考えられている。したがって、正しい
プログラムは動的変数の初期値に依存しないようにコー
ティングされている。
【0017】ここで、アドレスaに割り当てられた動的
変数の生存期間が終了し、アドレスaに対応するキャッ
シュブロックcのダーティビットが強制的にクリアされ
たとする。この時点以降、キャッシュブロックcに対す
る最初の操作は、読み出し、書き込み、リプレースのい
ずれかである。キャッシュブロックcに対して読み出し
が実行される場合は、アドレスaに新たな動的変数が割
り当てられ、それが参照される場合のみである。しか
し、上述のように動的変数の初期値に依存するプログラ
ムは正しいプログラムとはいえないため、この場合を考
慮する必要はない。
【0018】キャッシュブロックcに対して書き込みが
実行される場合は、アドレスaに新たな動的変数が割り
当てられ、それに対する代入が行われた場合である。こ
のとき、キャッシュブロックcのダーティビットは真と
なる。これにより、計算機システムの一貫性は回復さ
れ、先に実行されたダーティビットのクリア操作が、こ
れ以降の実行に影響を及ぼすことはない。
【0019】キャッシュブロックcに対してリプレース
が実行された場合、プログラムから見たアドレスaの内
容は、下位レベルのメモリブロックの内容となる。これ
はプロセサが最後(リプレース直前)にアドレスaに対
して書き込んだ内容、すなわちキャッシュブロックcの
内容とは異なる。しかし、アドレスaは動的変数のため
の領域すなわちスタック領域あるいはヒープ領域であ
り、アドレスaには動的変数が割り当てられていない状
態である。将来、プロセサがアドレスaのメモリ領域を
利用する場合は、新たな動的変数がアドレスaに割り当
てられることを意味するが、上述のように正しいプログ
ラムは動的変数の初期値に依存しないように設計されて
いるため、アドレスaのメモリブロックに格納されてい
る値はどのような値でもプログラムの実行に影響を及ぼ
すことはない。したがって、先に実行されたダーティビ
ットクリア操作が、これ以降の実行に影響を及ぼすこと
はない。
【0020】
【発明の効果】この発明によれば、ダーティなキャッシ
ュブロックがリプレースの対象となった場合に、キャッ
シュブロックのダーティビットを強制的にクリアするこ
とによって、正しいプログラムの実行に影響を与えるこ
となく下位レベルのメモリブロックに対する不要な書き
出しを防ぐことができ、ひいては計算機システムの性能
を向上させることができる。
【0021】この発明の上述の目的,その他の目的,特
徴および利点は、図面を参照して行う以下の実施例の詳
細な説明から一層明らかとなろう。
【0022】
【実施例】図1を参照して、この実施例の計算機システ
ム10は、たとえば、ライトバック方式でありかつセッ
トアソシアティブキャッシュ方式に構成されたものであ
る。計算機システム10は、プロセサ12を含む。プロ
セサ12から階層メモリシステムに対するアクセス要求
のあったアドレスは、ブロック内オフセット,インデッ
クスおよびタグに分割され、それぞれブロック内オフセ
ット用レジスタ14,インデックスカウンタ16および
タグ用のレジスタ18に保持される。そして、インデッ
クスで示されるキャッシュディレクトリ20のエントリ
がキャッシュ22の連想度の数だけ並列にアクセスさ
れ、キャッシュディレクトリ20からディレクトリタ
グ,有効ビットおよびダーティビットが出力される。デ
ィレクトリタグはタグマスク24によってマスクされた
後、レジスタ18からのアドレスのタグと比較器26に
よって比較され、これらが一致し、かつ有効ビットが真
であるディレクトリエントリすなわちキャッシュブロッ
クが存在すれば、リードアクセスはキャッシュ22にヒ
ットしたことになり、ANDゲート28を介してその旨
の信号がキャッシュ制御部30に与えられる。すると、
キャッシュ制御部30によって、キャッシュ22がイン
デックスおよびプロセサ内オフセットに基づいてアクセ
スされ、データがプロセサ12に返される。
【0023】もし、インデックスで示されるセット内の
全てのエントリについて、有効ビットが偽であるかまた
はディレクトリタグがアドレスのタグと一致しないので
あれば、キャッシュミスが発生したことになる。この場
合、図5に示す従来技術と同様、キャッシュ制御部30
は、キャッシュ22中のどのキャッシュブロックを今回
アクセスのあったメモリブロックの内容でリプレースす
るかを選択する必要がある。
【0024】すなわち、リプレースの対象となったキャ
ッシュブロックの有効ビットが偽であるか、ダーティビ
ットが偽であるなら、そのキャッシュブロックの内容は
不要あるいは下位レベルのメモリ中に同じ内容のものが
存在するから、捨ててしまってかまわない。このとき
は、下位レベルメモリアクセス制御部32は、プロセサ
12からのアクセス要求のあったアドレスを含むメモリ
ブロックのリード要求(下位レベルメモリ制御信号)を
下位レベルのメモリ(図示せず)に対して発生する。そ
して、キャッシュ22のいずれかのセットが選択され
て、そのインデックスによって示されるエントリにこの
メモリブロックの内容が転送される。また、そのメモリ
ブロックのうちプロセサ12から要求のあったデータワ
ードがプロセサ12にも返される。さらに、選択された
エントリのタグ部には今回アクセスされたアドレスのタ
グ部が設定され、有効ビットは真に、ダーティビットは
偽に設定される。
【0025】また、リプレースの対象となったキャッシ
ュブロックの有効ビットが真であり、ダーティビットが
真であるなら、キャッシュ制御部30はこのキャッシュ
ブロックの内容をまず下位レベルのメモリに書き出し
て、その後にキャッシュブロックに新たな内容を読み込
み上述の操作を行う。このように、計算機システム10
は、図5に示す従来の計算機システム1の有する機能を
備えているが、計算機システム10ではさらに以下の点
に注目すべきである。
【0026】すなわち、計算機システム10では、プロ
セサ12からの要求に従い、指定されたアドレス範囲に
対応するキャッシュブロックのダーティビットをクリア
する機能をもつように改良されたキャッシュ制御部3
0,指定されたアドレス範囲に対応するキャッシュブロ
ックを効率よく見出すために、ディレクトリタグをマス
クするタグマスク24,インデックスの値をインクリメ
ントするインデックスカウンタ16,およびインデック
スカウンタ16の上限を与えるインデックスマスク34
を備えることである。
【0027】タグマスク24は、たとえば図2に示すよ
うに構成される。図2に示すタグマスク24は、ビット
毎のNOT回路24aを含み、データバスに現れるmask
-tagをNOT回路24aによってビット毎に否定演算
し、得られた〜mask-tagをタグマスクレジスタ24bに
与え、後述する図4のアルゴリズムの実行中に〜mask-t
agはタグマスクレジスタ22bで保持される。また、キ
ャッシュディレクトリ20によって生成されるディレク
トリタグの値とタグマスクレジスタ24bの内容とのビ
ット毎の論理積がAND回路24cによって生成され、
得られた結果が比較器26へ転送される。このようなタ
グマスク24を用いかつ後述の制約条件を満たすことに
よって、検査すべきキャッシュブロックの数を最小限に
でき、その結果、キャッシュブロックの検出を効率的に
行える。
【0028】また、インデックスマスク34は、たとえ
ば図3に示すように構成される。図3に示すインデック
スマスク34は、インデックスマスクレジスタ34aを
含む。インデックスマスクレジスタ34aは、図4に示
すアルゴリズムを実行する間、mask-idxを保持してお
く。インデックスマスクレジスタ34aからの値とイン
デックスカウンタ16によって生成されるインデックス
値とのビット毎の論理積がAND回路34bによって生
成される。さらに、AND回路34bによって生成され
る値とインデックスマスクレジスタ34aに保持される
値が比較器34cによって比較され、それらの値が等し
いときには、比較器34cからキャッシュ制御部30に
図4に示すアルゴリズムの終了が通知される。すなわ
ち、インデックスマスク34によって、プロセサ12か
ら指示されたアドレス範囲に対応してインデックスカウ
ンタ16の上限を検出している。
【0029】図1に戻って、さらに、プロセサ12は、
ユーザプログラムにて実行可能な、特定のアドレス範囲
に対応するキャッシュブロックのダーティビットをクリ
アするための命令 clean-cache addr mask をもつ。この命令は、たとえば、動的変数の生存期間が
終了した時点でプロセサ12から出力され、キャッシュ
制御部30に入力される。またこの命令は、2のべき乗
の値をとるアドレスaddrと2のべき乗−1の値をとるma
skとをオペランドとし、addrからaddr+maskまでのアド
レスに対応するキャッシュブロックを全て見出し、その
キャッシュブロックのダーティビットをクリアする操作
をキャッシュ制御部30に指示する。ただし、mask+1
はキャッシュ22のブロックサイズ以上でなければなら
ず、addrとmaskとのビット毎の論理積をとったものは0
に等しいという制約条件を満たすものとする。
【0030】キャッシュ制御部30は、上述のプロセサ
12からの命令の要求に応じて、図4に示す手順に従っ
てキャッシュブロックのサーチおよびダーティビットク
リアの操作を行う。ここで、clean-cache 命令のオペラ
ンドであるaddrはアドレスバスに、maskはデータバスに
それぞれプロセサ12から出力されるものとする。図4
に示す動作において、まず、clean-cache 命令に与えら
れたaddrおよびmaskのそれぞれのタグ部をaddr-tagおよ
びmask-tagとし、addrおよびmaskのそれぞれのインデッ
クス部をaddr-idxおよびmask-idxとする。
【0031】そして、ステップS1において、addr-tag
をタグ用のレジスタ18に、〜mask-tagをタグマスクレ
ジスタ24bに、addr-idxをインデックスカウンタ16
に、mask-idxをインデックスマスク34に、それぞれ保
持する。その後、キャッシュ22の各セットについて並
列にステップS3およびS5をそれぞれ実行する。ステ
ップS3において、ディレクトリタグ&タグマスクレジ
スタ24bの出力(〜mask-tag)=タグ用のレジスタ1
8の出力(addr-tag)であるか否かが判断される。これ
は、タグマスク24および比較器26で行われる。これ
によって、キャッシュ22内の或るキャッシュブロック
がプロセサ12から要求されているアドレス範囲のキャ
ッシュブロックに相当するか否かが判断される。ステッ
プS3が“YES”であれば、ステップS5に進む。な
お、このとき、有効ビットは真であることを要する。ス
テップS5において、インデックスカウンタ16で示さ
れるディレクトリエントリすなわちキャッシュブロック
のダーティビットがクリアされ、ステップS7に進む。
ステップS3が“NO”のときは直接ステップS7に進
む。ステップS7において、インデックスカウンタ16
がインクリメントされ、ステップS9に進む。ステップ
S9では、インデックスカウンタ16の出力(addr-id
x)&インデックスマスクレジスタ34aの出力(mask-
idx)=インデックスマスクレジスタ34aの出力(mas
k-idx)であるか否かが判断される。これによってイン
デックスカウンタ16の上限を判断することができる。
ステップS9が“NO”であればインデックスカウンタ
16の出力はまだインデックスカウンタ16の上限では
ないと判断され、上述の処理が繰り返される。ステップ
S9が“YES”であれば、インデックスカウンタ16
の出力がインデックスカウンタ16の上限になったと判
断され、終了する。
【0032】さらに具体的に説明する。ここで、キャッ
シュ22のブロックサイズをblocksize とし、キャッシ
ュ22のセット数をsetnumとする。また、addr,mask+
1,blocksize ,setnumは、それぞれ2のべき乗の値で
あり、定義より数1が成立する。
【0033】
【数1】addr-tag=addr/setnum/blocksize addr-idx= (addr/blocksize) % setnum mask-tag=mask/setnum/blocksize mask-idx= (mask/blocksize) % setnum 数1において、% はモジュロ演算を表している。ここ
で、キャッシュ22中に、block-tag なるタグを用いか
つblock-idx なるインデックスに対応するダーティなキ
ャッシュブロックが存在したとする。このキャッシュブ
ロックが対応付けられているメモリ領域〔block-min …
block-max〕は、数2によって表される。
【0034】
【数2】block-min =(block-tag *setnum+block-id
x )* blocksize block-max =(block-tag *setnum+block-idx +1)
*blocksize −1 ここで、図4に示すアルゴリズムによって、〔block-mi
n … block-max〕が〔addr…addr+mask〕に含まれると
き、また、そのときに限りこのキャッシュブロックのダ
ーティビットがクリアされることを示す。
【0035】図4のアルゴリズムにおいて、ステップS
3を実行するときのインデックスカウンタ16の値idx
は、〔addr-idx…addr-idx+mask-idx〕の全ての値をと
る。なぜなら、ステップS1によってidx の初期値はad
dr-idxであり、制約条件よりaddr-idx&mask-idx=0で
あるから、ステップS7にてインクリメントされた値id
x において、ステップS9でidx &mask-idx=mask-idx
が最初に成立するのはidx =addr-idx+mask-idxの場合
となるためである。
【0036】すなわち、ステップS9が“YES”にな
り終了するのは、idx =addr-idx+mask-idxの場合だか
らである。以下、mask+1とsetnum*blocksize の大小
関係によって、mask+1<setnum*blocksize の場合
と、mask+1≧setnum*blocksize の場合の2通りに場
合分けして考える。
【0037】(1) mask+1<setnum*blocksize の場合 mask+1<setnum*blocksize であるから、mask-tag=
0が成立する。したがって、〔block-min … block-ma
x〕が〔addr…addr+mask〕に含まれるということはblo
ck-idx が〔addr-idx…addr-idx+mask-idx〕に含ま
れ、かつblock-tag=addr-tagであるということに他な
らない。したがって、図4に示すアルゴリズムにおい
て、ステップS3で検査されるキャッシュブロックは、
そのblock-idxが〔addr-idx…addr-idx+mask-idx〕に
含まれるもの全てであり、それ以外にない。また、mask
-tag=0であるから、ステップS3の検査はblock-tag
=addr-tagであるかどうかの検査と等価である。
【0038】(2) mask+1≧setnum*blocksize の場合 この場合、addr-idx=0かつmask-idx=setnum−1が成
立する。すなわち、図4のアルゴリズムにおいて、ステ
ップS3で検査されるキャッシュブロックはキャッシュ
22中の全てのキャッシュブロックとなる。ここで、
〔block-min … block-max〕が〔addr…addr+mask〕に
含まれるということはblock-tag が〔addr-tag…addr-t
ag+mask-tag〕に含まれるということに他ならない。な
ぜなら、block-idx は必ず〔addr-idx…addr-idx+mask
-idx〕すなわち〔0…setnum−1〕に含まれるためであ
る。
【0039】ここで制約条件より、addr-tag&mask-tag
=0であるから、ステップS3で検査されるblock-tag
&〜mask-tag=addr-tagであるかどうかは、block-tag
が〔addr-tag…addr-tag+mask-tag〕に含まれるかどう
かということと等価である。以上のように、図4に示す
アルゴリズムでは、〔block-min … block-max〕が〔ad
dr…addr+mask〕に含まれるキャッシュブロックについ
ては必ずステップS5が実行され、それ以外のキャッシ
ュブロックについてはステップS5は実行されないこと
がわかる。
【0040】この実施例によれば、たとえば、生存期間
が終了した動的変数が置かれたダーティなキャッシュブ
ロックがリプレースの対象となった場合に、そのキャッ
シュブロックのダーティビットをクリアすることによっ
て不要な操作を防ぎ、計算機システム10の性能を向上
させることができる。なお、上述の実施例では、clean-
cache 命令に与えることのできるアドレス範囲に制限を
設けていた。しかし、別の構成例として、より多くのハ
ードウェア量を必要とするが、それぞれアドレス範囲の
上限および下限と比較するための2個の大小比較器をタ
グ部の比較に用いることによって、任意のアドレス範囲
をclean-cache 命令に与えることができる計算機システ
ムを構成することもできる。
【0041】また、上述の実施例では、セットアソシア
ティブ方式のキャッシュをとりあげて説明したが、ダイ
レクトマップ方式あるいはフルアソシアティブ方式はセ
ットアソシアティブ方式の極端な場合であると捉えるこ
とができるため、ダイレクトマップ方式あるいはフルア
ソシアティブ方式にこの発明を適用することもできる。
【0042】なお、clean-cache 命令は、上述のように
たとえば、ヒープ領域およびスタック領域に割り当てら
れた動的変数のメモリ割り当てを解放するときに、その
メモリ領域に対して用いる。特に、スタック領域に関し
ては、関数のリターン時に解放されるスタックフレーム
領域全体に対するclean-cache を実行することができ
る。しかしながら、この発明は、プログラムによって利
用される動的変数の生存期間が終了した場合、すなわち
動的変数のメモリ割り当てを解放する場合以外でも用い
られることはいうまでもない。
【図面の簡単な説明】
【図1】この発明の一実施例を示すブロック図である。
【図2】この実施例のタグマスクの構成の一例を示す図
解図である。
【図3】この実施例のインデックスマスクの構成の一例
を示す図解図である。
【図4】この実施例のキャッシュ制御部がclean-cache
命令を実行する場合のアルゴリズムを示すフロー図であ
る。
【図5】従来技術を示すブロック図である。
【符号の説明】
10 …計算機システム 12 …プロセサ 16 …インデックスカウンタ 20 …キャッシュディレクトリ 22 …キャッシュ 24 …タグマスク 26 …比較器 30 …キャッシュ制御部 34 …インデックスマスク

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】下位メモリと前記下位メモリの内容のコピ
    ーをブロック単位でもつキャッシュとを含み、前記キャ
    ッシュはプロセサからのライトアクセス要求に対しては
    ライトバック方式によってこれを処理する計算機システ
    ムにおいて、 前記プロセサからの要求に応じて、指定されたメモリ領
    域に対応するキャッシュブロックのダーティビットを強
    制的にクリアするクリア手段を備えることを特徴とす
    る、計算機システム。
  2. 【請求項2】前記クリア手段は、前記プロセサによって
    指定されたアドレス範囲に対応するキャッシュブロック
    のダーティビットをクリアするキャッシュ制御手段、前
    記アドレス範囲に対応する前記キャッシュブロックをタ
    グマスクを用いて検出するブロック検出手段、前記プロ
    セサから出力されるインデックスの値をインクリメント
    するインデックスカウンタ、および前記アドレス範囲に
    応じて前記インデックスカウンタの上限を検出するイン
    デックス検出手段を備え、 前記インデックス検出手段で前記インデックスカウンタ
    の上限が検出されるまでの間前記アドレス範囲に対応す
    る前記キャッシュブロックのダーティビットを前記キャ
    ッシュ制御手段によってクリアする、請求項1記載の計
    算機システム。
JP6203253A 1994-08-29 1994-08-29 計算機システム Pending JPH0869417A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6203253A JPH0869417A (ja) 1994-08-29 1994-08-29 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6203253A JPH0869417A (ja) 1994-08-29 1994-08-29 計算機システム

Publications (1)

Publication Number Publication Date
JPH0869417A true JPH0869417A (ja) 1996-03-12

Family

ID=16470971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6203253A Pending JPH0869417A (ja) 1994-08-29 1994-08-29 計算機システム

Country Status (1)

Country Link
JP (1) JPH0869417A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1698978A1 (en) * 2003-12-22 2006-09-06 Matsushita Electric Industries Co., Ltd. Cache memory and its controlling method
US7555610B2 (en) 2003-11-18 2009-06-30 Panasonic Corporation Cache memory and control method thereof
US7984243B2 (en) 2003-11-18 2011-07-19 Panasonic Corporation Cache memory and method for cache entry replacement based on modified access order

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555610B2 (en) 2003-11-18 2009-06-30 Panasonic Corporation Cache memory and control method thereof
US7984243B2 (en) 2003-11-18 2011-07-19 Panasonic Corporation Cache memory and method for cache entry replacement based on modified access order
EP1698978A1 (en) * 2003-12-22 2006-09-06 Matsushita Electric Industries Co., Ltd. Cache memory and its controlling method
EP1698978A4 (en) * 2003-12-22 2008-11-05 Matsushita Electric Ind Co Ltd CACHE MEMORY AND CONTROL PROCEDURE THEREFOR
US7454575B2 (en) 2003-12-22 2008-11-18 Matsushita Electric Industrial Co., Ltd. Cache memory and its controlling method

Similar Documents

Publication Publication Date Title
CN1877547B (zh) 提供扩展的存储器保护
US5706464A (en) Method and system for achieving atomic memory references in a multilevel cache data processing system
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
US6678795B1 (en) Method and apparatus for memory prefetching based on intra-page usage history
US6430670B1 (en) Apparatus and method for a virtual hashed page table
JP4128642B2 (ja) キャッシュ・メモリの制御方法及びキャッシュ・コントローラ
JP3944504B2 (ja) 変換索引バッファのレイジー・フラッシング
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
KR100933820B1 (ko) 메모리 속성들을 사용하기 위한 기술
KR101038963B1 (ko) 캐쉬 할당을 위한 장치, 시스템, 방법 및 기계 액세스가능 매체
US7472253B1 (en) System and method for managing table lookaside buffer performance
US5390310A (en) Memory management unit having cross-domain control
US20070130237A1 (en) Transient cache storage
EP0780770A1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
TWI417723B (zh) 用於快取線替換之方法
US20180300258A1 (en) Access rank aware cache replacement policy
CN101446923A (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
GB2468007A (en) Data processing apparatus and method dependent on streaming preload instruction.
JP2018538610A (ja) 有界ポインタの使用を制御する装置及び方法
US7549035B1 (en) System and method for reference and modification tracking
US5471602A (en) System and method of scoreboarding individual cache line segments
JP3438650B2 (ja) キャッシュメモリ
US5895489A (en) Memory management system including an inclusion bit for maintaining cache coherency
US6832295B1 (en) Methods and systems for extending an application's address space
US5999721A (en) Method and system for the determination of performance characteristics of a cache design by simulating cache operations utilizing a cache output trace

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041102