JPH0728706A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JPH0728706A JPH0728706A JP5174461A JP17446193A JPH0728706A JP H0728706 A JPH0728706 A JP H0728706A JP 5174461 A JP5174461 A JP 5174461A JP 17446193 A JP17446193 A JP 17446193A JP H0728706 A JPH0728706 A JP H0728706A
- Authority
- JP
- Japan
- Prior art keywords
- line
- stored
- replacement
- cache
- address
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】キャッシュメモリ1が参照された時にミスヒッ
トした場合には主記憶装置10が参照され、かつ、その
主記憶装置10のデータをライン単位でキャッシュライ
ンと置換することにより次回の参照に備えるようにした
装置において、従来キャッシュラインに関して優先レベ
ルを与えることがなかった。したがって、優先度の低い
ラインであっても、ひとたびそのラインに切り替えられ
ると、優先度の高いラインが廃棄されてしまい、また読
み出さなければならなかった。 【構成】キャッシュライン書込み時に、タグ3の所定ビ
ットに当該ラインの優先レベル情報を格納しておき、置
換前に、タグ3からキャッシュラインの優先レベル情報
を読み出し、優先度の高いラインが優先度の低いライン
で置換されることを禁止する。
トした場合には主記憶装置10が参照され、かつ、その
主記憶装置10のデータをライン単位でキャッシュライ
ンと置換することにより次回の参照に備えるようにした
装置において、従来キャッシュラインに関して優先レベ
ルを与えることがなかった。したがって、優先度の低い
ラインであっても、ひとたびそのラインに切り替えられ
ると、優先度の高いラインが廃棄されてしまい、また読
み出さなければならなかった。 【構成】キャッシュライン書込み時に、タグ3の所定ビ
ットに当該ラインの優先レベル情報を格納しておき、置
換前に、タグ3からキャッシュラインの優先レベル情報
を読み出し、優先度の高いラインが優先度の低いライン
で置換されることを禁止する。
Description
【0001】
【産業上の利用分野】本発明は、主記憶装置と、主記憶
装置よりも高速小容量のキャッシュメモリとを備えたキ
ャッシュメモリ装置に関するものである。
装置よりも高速小容量のキャッシュメモリとを備えたキ
ャッシュメモリ装置に関するものである。
【0002】
【従来の技術】一般にコンピュータの演算制御装置(C
PU)は、プログラムの実行に際し命令の読み出しやラ
インの読み書きのためにメモリへの参照を数多く行う。
このメモリ参照の高速化を経済的に実現するために、主
記憶装置を中速大容量かつ低価格なメモリで構成し、主
記憶装置に比べ高速小容量かつ高価格のメモリで構成さ
れたキャッシュメモリを用意し、主記憶装置の内容の一
部をキャッシュメモリにコピーし記憶しておく方式が広
く採用されている。
PU)は、プログラムの実行に際し命令の読み出しやラ
インの読み書きのためにメモリへの参照を数多く行う。
このメモリ参照の高速化を経済的に実現するために、主
記憶装置を中速大容量かつ低価格なメモリで構成し、主
記憶装置に比べ高速小容量かつ高価格のメモリで構成さ
れたキャッシュメモリを用意し、主記憶装置の内容の一
部をキャッシュメモリにコピーし記憶しておく方式が広
く採用されている。
【0003】CPUは、メモリアクセスをする場合、ま
ずキャッシュメモリに必要とする命令ないしデータが記
憶されているかどうか検索し、記憶されている場合(ヒ
ットという)はキャッシュメモリから読み出し、キャッ
シュメモリに記憶されていない場合(ミスヒットとい
う)のみ主記憶装置から読み出す。キャッシュメモリの
検索時間とアクセス時間との和は主記憶装置のアクセス
時間と比べ1/10ほどなので、これによりプログラム
の高速処理が可能となる。
ずキャッシュメモリに必要とする命令ないしデータが記
憶されているかどうか検索し、記憶されている場合(ヒ
ットという)はキャッシュメモリから読み出し、キャッ
シュメモリに記憶されていない場合(ミスヒットとい
う)のみ主記憶装置から読み出す。キャッシュメモリの
検索時間とアクセス時間との和は主記憶装置のアクセス
時間と比べ1/10ほどなので、これによりプログラム
の高速処理が可能となる。
【0004】なお、メモリ参照はある時点の前後に限っ
ていえば、主記憶装置の限られた領域に集中することが
多いという「メモリ参照の局在性」に基づき、ミスヒッ
トした場合は、主記憶装置にアクセスした命令ないしデ
ータを含むラインのコピーをキャッシュメモリに、前の
ラインと置き換えることにより格納して、再度のアクセ
スに備えるようにしている。
ていえば、主記憶装置の限られた領域に集中することが
多いという「メモリ参照の局在性」に基づき、ミスヒッ
トした場合は、主記憶装置にアクセスした命令ないしデ
ータを含むラインのコピーをキャッシュメモリに、前の
ラインと置き換えることにより格納して、再度のアクセ
スに備えるようにしている。
【0005】しかし、キャッシュラインを置き換えた
後、次のアクセスがヒットするかしないかは確率的にい
えるだけで、絶対ヒットするという保証はできない。こ
の理由は、プログラムの実行に連れて他のラインに置き
換えられてしまうからである。したがって一般のシステ
ム設計では、ヒット率を考慮したうえで、妥当な処理時
間を割り出す必要がある。
後、次のアクセスがヒットするかしないかは確率的にい
えるだけで、絶対ヒットするという保証はできない。こ
の理由は、プログラムの実行に連れて他のラインに置き
換えられてしまうからである。したがって一般のシステ
ム設計では、ヒット率を考慮したうえで、妥当な処理時
間を割り出す必要がある。
【0006】例えば、ヒット率が90%であり、ミスヒ
ット率が10%であるとし、ミスヒット時のアクセス待
ち時間がヒット時のアクセス待ち時間の10倍であると
想定すると、平均処理時間は、ヒット時の処理時間を1
とすると、 1×90%+10×10%=1.9 となり、ワーストケースを想定すると10/1.9≒5
倍以上の余裕を見込んでシステム設計をしなければなら
なかった。
ット率が10%であるとし、ミスヒット時のアクセス待
ち時間がヒット時のアクセス待ち時間の10倍であると
想定すると、平均処理時間は、ヒット時の処理時間を1
とすると、 1×90%+10×10%=1.9 となり、ワーストケースを想定すると10/1.9≒5
倍以上の余裕を見込んでシステム設計をしなければなら
なかった。
【0007】このことから、ミスヒット率を下げるよう
な、いいかえればキャッシュラインの不要な置き換えを
しなくて済むキャッシュシステムを実現することが重要
であることが分かる。上のようなキャッシュシステムを
実現するため、ミスヒットが判定されたとき以前のアク
セス条件をタグに記憶しておき、ある条件のときのみキ
ャッシュラインの入替えをする提案が成されている(特
開平1−191959号公報参照)。この提案によれ
ば、ミスヒット時、無条件にキャッシュラインの入替え
をするのではなく、同じエリア(ライン)でリード動作
が2回続いたときのみ入替えをする。
な、いいかえればキャッシュラインの不要な置き換えを
しなくて済むキャッシュシステムを実現することが重要
であることが分かる。上のようなキャッシュシステムを
実現するため、ミスヒットが判定されたとき以前のアク
セス条件をタグに記憶しておき、ある条件のときのみキ
ャッシュラインの入替えをする提案が成されている(特
開平1−191959号公報参照)。この提案によれ
ば、ミスヒット時、無条件にキャッシュラインの入替え
をするのではなく、同じエリア(ライン)でリード動作
が2回続いたときのみ入替えをする。
【0008】
【発明が解決しようとする課題】しかし、この先行技術
は、キャッシュラインの優先度についてまで考慮するも
のではない。詳説すると、1つのコンピュータシステム
上で多数のプログラムを時分割実行するマルチプロセス
環境下において、プロセスによって要求される実行速度
(優先度という)が異なるのが実情である。例えばプロ
グラムのコンパイルはできるだけ高速で実行されるのが
好ましいが、時刻や日付の表示はあまり高速で実行する
必要はない。
は、キャッシュラインの優先度についてまで考慮するも
のではない。詳説すると、1つのコンピュータシステム
上で多数のプログラムを時分割実行するマルチプロセス
環境下において、プロセスによって要求される実行速度
(優先度という)が異なるのが実情である。例えばプロ
グラムのコンパイルはできるだけ高速で実行されるのが
好ましいが、時刻や日付の表示はあまり高速で実行する
必要はない。
【0009】ところが、従来のコンピュータシステムで
は、オペレーティングシステムの機能として、優先度に
基づくプロセスの切替えはできるが、キャッシュメモリ
に関して優先度を与えることがなかった。したがって、
優先度の低いプロセスであっても、ひとたびそのプロセ
スに切り替えられると、優先度の高いプロセスの命令や
ラインを廃棄してしまう。
は、オペレーティングシステムの機能として、優先度に
基づくプロセスの切替えはできるが、キャッシュメモリ
に関して優先度を与えることがなかった。したがって、
優先度の低いプロセスであっても、ひとたびそのプロセ
スに切り替えられると、優先度の高いプロセスの命令や
ラインを廃棄してしまう。
【0010】したがって、これによりプロセス全体の実
行速度が低下してしまうという問題があった。さらに、
絶対的な優先度を持つラインを設定する場合もあり、こ
の場合、ラインの入替えを無条件に禁止することができ
れば望ましい。本発明の目的は、上述の技術的課題を解
決し、プロセスの実行速度の低下を防ぐことができるキ
ャッシュメモリ装置の構造を提供することである。
行速度が低下してしまうという問題があった。さらに、
絶対的な優先度を持つラインを設定する場合もあり、こ
の場合、ラインの入替えを無条件に禁止することができ
れば望ましい。本発明の目的は、上述の技術的課題を解
決し、プロセスの実行速度の低下を防ぐことができるキ
ャッシュメモリ装置の構造を提供することである。
【0011】
【課題を解決するための手段】以下、課題を解決するた
めの手段を説明する。図1は請求項2記載の発明の構成
を示すブロック図であり、図2は請求項3記載の発明の
構成を示すブロック図であるが、いずれも請求項1記載
の発明の共通の構成が図示されているので、請求項1記
載の発明の説明時にも、図1又は図2を引用することと
する。
めの手段を説明する。図1は請求項2記載の発明の構成
を示すブロック図であり、図2は請求項3記載の発明の
構成を示すブロック図であるが、いずれも請求項1記載
の発明の共通の構成が図示されているので、請求項1記
載の発明の説明時にも、図1又は図2を引用することと
する。
【0012】前記の問題を解決するための請求項1記載
のキャッシュメモリ装置は、図1又は図2に示すよう
に、タグ3の置換禁止ビットに、各ラインのアドレスに
対応させて、当該ラインの置換の優先度を示す優先レベ
ル情報を格納しておき、ミスヒット時にキャッシュメモ
リ1に記憶されているいずれかのラインを主記憶装置1
0に記憶されたラインと置換する際に、キャッシュメモ
リ1に記憶されている置換候補キャッシュラインのアド
レスと、メモリアクセスされたラインのアドレスに基づ
いて前記タグ3に格納されている優先レベル情報5a,
5bをそれぞれ参照し、参照された優先レベル情報5
a,5bの優先度を比較する優先レベル判定回路7と、
優先レベル判定回路7により比較された結果に応じて、
優先度の高いラインを優先度の低いラインで置換するこ
とを禁止する置換禁止回路9とを設けたものである。
のキャッシュメモリ装置は、図1又は図2に示すよう
に、タグ3の置換禁止ビットに、各ラインのアドレスに
対応させて、当該ラインの置換の優先度を示す優先レベ
ル情報を格納しておき、ミスヒット時にキャッシュメモ
リ1に記憶されているいずれかのラインを主記憶装置1
0に記憶されたラインと置換する際に、キャッシュメモ
リ1に記憶されている置換候補キャッシュラインのアド
レスと、メモリアクセスされたラインのアドレスに基づ
いて前記タグ3に格納されている優先レベル情報5a,
5bをそれぞれ参照し、参照された優先レベル情報5
a,5bの優先度を比較する優先レベル判定回路7と、
優先レベル判定回路7により比較された結果に応じて、
優先度の高いラインを優先度の低いラインで置換するこ
とを禁止する置換禁止回路9とを設けたものである。
【0013】請求項2記載のキャッシュメモリ装置によ
れば、前記メモリアクセスされたラインの優先レベル情
報の参照は、CPUのステータスレジスタ4(図1参
照)に対して行われるものであり、タグ3の置換禁止ビ
ットには、キャッシュライン書込み時に、CPUのステ
ータスレジスタ4に設けられた当該ラインの優先レベル
情報が格納される。
れば、前記メモリアクセスされたラインの優先レベル情
報の参照は、CPUのステータスレジスタ4(図1参
照)に対して行われるものであり、タグ3の置換禁止ビ
ットには、キャッシュライン書込み時に、CPUのステ
ータスレジスタ4に設けられた当該ラインの優先レベル
情報が格納される。
【0014】請求項3記載のキャッシュメモリ装置によ
れば、前記メモリアクセスされたラインの優先レベル情
報の参照は、アドレス変換バッファTLB6(図2参
照)に対して行われるものであり、前記タグ3の置換禁
止ビットには、キャッシュライン書込み時に、TLB6
に設けられた当該ラインの優先レベル情報が格納され
る。
れば、前記メモリアクセスされたラインの優先レベル情
報の参照は、アドレス変換バッファTLB6(図2参
照)に対して行われるものであり、前記タグ3の置換禁
止ビットには、キャッシュライン書込み時に、TLB6
に設けられた当該ラインの優先レベル情報が格納され
る。
【0015】請求項4記載のキャッシュメモリ装置は、
タグに、各ラインのアドレスに対応させて、当該ライン
の置換を禁止するかどうかを示す置換禁止情報を格納し
ておき、ミスヒット時にキャッシュメモリに記憶されて
いるいずれかのラインを主記憶装置に記憶されたライン
と置換する際に、置換候補キャッシュラインのアドレス
に基づいて前記タグに格納されている置換禁止情報を参
照し、参照された置換禁止情報が置換禁止を示すもので
あれば、当該ラインの置換を禁止する置換禁止回路を設
けたものである。
タグに、各ラインのアドレスに対応させて、当該ライン
の置換を禁止するかどうかを示す置換禁止情報を格納し
ておき、ミスヒット時にキャッシュメモリに記憶されて
いるいずれかのラインを主記憶装置に記憶されたライン
と置換する際に、置換候補キャッシュラインのアドレス
に基づいて前記タグに格納されている置換禁止情報を参
照し、参照された置換禁止情報が置換禁止を示すもので
あれば、当該ラインの置換を禁止する置換禁止回路を設
けたものである。
【0016】
【作用】前記の請求項1記載の構成によれば、ミスヒッ
ト時にCPUはキャッシュメモリ1に記憶されている適
当なラインを選択し、メモリアクセスされたラインと置
換しようとする。このとき、優先レベル判定回路7は、
前記タグ3の置換禁止ビットを参照して置換候補キャッ
シュラインのアドレスと、アクセスされたラインのアド
レスとに対応する優先レベル情報をそれぞれ読み出す。
読み出された優先レベル情報は、優先度が比較され、置
換禁止回路9は、優先度の高いラインを優先度の低いラ
インで置換することを禁止する。
ト時にCPUはキャッシュメモリ1に記憶されている適
当なラインを選択し、メモリアクセスされたラインと置
換しようとする。このとき、優先レベル判定回路7は、
前記タグ3の置換禁止ビットを参照して置換候補キャッ
シュラインのアドレスと、アクセスされたラインのアド
レスとに対応する優先レベル情報をそれぞれ読み出す。
読み出された優先レベル情報は、優先度が比較され、置
換禁止回路9は、優先度の高いラインを優先度の低いラ
インで置換することを禁止する。
【0017】請求項4記載の構成によれば、置換禁止回
路は読み出された情報が置換禁止を示すものであれば、
主記憶装置からキャッシュメモリへライン転送されると
き、当該ラインのキャッシュメモリへの書込みを無条件
に禁止するものであり、請求項1の発明で、優先レベル
を2つ(すべてに優先するレベルと、そうでないレベ
ル)設けた場合に相当する。
路は読み出された情報が置換禁止を示すものであれば、
主記憶装置からキャッシュメモリへライン転送されると
き、当該ラインのキャッシュメモリへの書込みを無条件
に禁止するものであり、請求項1の発明で、優先レベル
を2つ(すべてに優先するレベルと、そうでないレベ
ル)設けた場合に相当する。
【0018】
【実施例】以下実施例を示す添付図面によって詳細に説
明する。 −第1の実施例− 図3は、演算制御装置CPU21、主記憶装置22、キ
ャッシュメモリ20、優先レベル判定回路25、WE(W
rite Enable)ゲート26等を備えたキャッシュメモリ装
置のブロック図である。
明する。 −第1の実施例− 図3は、演算制御装置CPU21、主記憶装置22、キ
ャッシュメモリ20、優先レベル判定回路25、WE(W
rite Enable)ゲート26等を備えたキャッシュメモリ装
置のブロック図である。
【0019】この装置において、CPU21は、メモリ
アクセスをする場合、まずキャッシュメモリ20に必要
とするラインが記憶されているかどうか検索し、ヒット
した場合はキャッシュメモリ20からラインを読み出
し、ミスヒットの場合は主記憶装置22からラインを読
み出す。そして、ミスヒットした場合は、メモリアクセ
スされたラインを前のラインと置換することによりキャ
ッシュメモリ20に格納して、再度のアクセスに備える
ようにしている。
アクセスをする場合、まずキャッシュメモリ20に必要
とするラインが記憶されているかどうか検索し、ヒット
した場合はキャッシュメモリ20からラインを読み出
し、ミスヒットの場合は主記憶装置22からラインを読
み出す。そして、ミスヒットした場合は、メモリアクセ
スされたラインを前のラインと置換することによりキャ
ッシュメモリ20に格納して、再度のアクセスに備える
ようにしている。
【0020】以下、実施例の説明を続けるに当たって、
周知であるが実施例や発明の理解に必要な諸概念をまと
めて解説することにする。キャッシュ−主記憶間のライ
ン転送時のメモリマッピング方式として、次の方式があ
る。 (1) ダイレクトマップ方式;キャッシュ上でのラインの
格納アドレスが主記憶のラインの格納アドレスに対して
一意に決められる方式である。キャッシュ上のアドレス
は例えば、主記憶アドレスのキャッシュ容量による剰余
に対応して決められる。 (2) セットアソシアティブ方式;キャッシュを、それぞ
れ複数個のラインを格納できるようなセットに分割し、
主記憶のラインがいずれのセットに格納されるかは一意
的に決められるが、セット内のどこに格納されるかは一
定の約束による方式である。 (3) フルアソシアティブ方式;主記憶のラインをキャッ
シュの任意の位置に格納できる方式。キャッシュのいず
れの位置に格納するかは一定の約束による。
周知であるが実施例や発明の理解に必要な諸概念をまと
めて解説することにする。キャッシュ−主記憶間のライ
ン転送時のメモリマッピング方式として、次の方式があ
る。 (1) ダイレクトマップ方式;キャッシュ上でのラインの
格納アドレスが主記憶のラインの格納アドレスに対して
一意に決められる方式である。キャッシュ上のアドレス
は例えば、主記憶アドレスのキャッシュ容量による剰余
に対応して決められる。 (2) セットアソシアティブ方式;キャッシュを、それぞ
れ複数個のラインを格納できるようなセットに分割し、
主記憶のラインがいずれのセットに格納されるかは一意
的に決められるが、セット内のどこに格納されるかは一
定の約束による方式である。 (3) フルアソシアティブ方式;主記憶のラインをキャッ
シュの任意の位置に格納できる方式。キャッシュのいず
れの位置に格納するかは一定の約束による。
【0021】前記(2),(3) の場合の「一定の約束」と
は、ライン単位で情報をキャッシュに格納する場合、そ
れまでキャッシュに格納されていたラインとの置換をす
る場合のアルゴリズムのことである。この置換のアルゴ
リズムとして、次のようなものがある。 (a) ランダム方式;疑似乱数の発生などによりランダム
に置換する方式である。 (b) LRU方式(Last Recently Used);アクセスされた
履歴を記憶しておき、最も長い時間アクセスされていな
いものと置換する方式である。
は、ライン単位で情報をキャッシュに格納する場合、そ
れまでキャッシュに格納されていたラインとの置換をす
る場合のアルゴリズムのことである。この置換のアルゴ
リズムとして、次のようなものがある。 (a) ランダム方式;疑似乱数の発生などによりランダム
に置換する方式である。 (b) LRU方式(Last Recently Used);アクセスされた
履歴を記憶しておき、最も長い時間アクセスされていな
いものと置換する方式である。
【0022】なお、(1) 〜(3) の方式とも、キャッシュ
上にある情報が主記憶のどの位置(アドレス)にある情
報のコピーであるかを示す情報が必要で、これを保持す
るのがタグである。CPUはアクセスの際、メモリアド
レスと前記タグのアドレス情報とを比較することによ
り、ヒット、ミスヒットの判定を行う。タグに保持され
るメモリアドレスは、物理アドレスの場合と仮想アドレ
スの場合とがある。物理アドレスは主記憶のアドレスそ
のものである。仮想アドレスはプログラムで使用するア
ドレスであり、物理アドレスに変換されてから主記憶等
のアクセスが行われる。主記憶のアドレスとの対応付け
を行うために使用されるのがアドレス変換バッファTL
B(Translation Lookaside Buffer)であり、TLBに
は、仮想ページ番号とそのエントリが有効であることを
示す制御情報、及び対応づけられた物理ページ番号等が
登録されている。TLBは、通常ハードウェア上の制限
により主記憶全領域をカバーするだけのエントリ数がな
い。そこで、完全なアドレス変換テーブルを主記憶上に
置き、TLBには必要な部分をコピーする方式が一般に
とられている。TLBに登録されている仮想アドレスが
発生すればTLBを検索すればよいが、TLBに登録さ
れていない仮想アドレスが発生すると、TLBを検索で
きない。これをページフォルトといい、割り込みにより
主記憶間のアドレス変換テーブルを転送してTLBの書
換えをする必要が生じる。この書換えの際のマッピング
方式は、通常セットアソシアティブ方式又はフルアソシ
アティブ方式が採用される。
上にある情報が主記憶のどの位置(アドレス)にある情
報のコピーであるかを示す情報が必要で、これを保持す
るのがタグである。CPUはアクセスの際、メモリアド
レスと前記タグのアドレス情報とを比較することによ
り、ヒット、ミスヒットの判定を行う。タグに保持され
るメモリアドレスは、物理アドレスの場合と仮想アドレ
スの場合とがある。物理アドレスは主記憶のアドレスそ
のものである。仮想アドレスはプログラムで使用するア
ドレスであり、物理アドレスに変換されてから主記憶等
のアクセスが行われる。主記憶のアドレスとの対応付け
を行うために使用されるのがアドレス変換バッファTL
B(Translation Lookaside Buffer)であり、TLBに
は、仮想ページ番号とそのエントリが有効であることを
示す制御情報、及び対応づけられた物理ページ番号等が
登録されている。TLBは、通常ハードウェア上の制限
により主記憶全領域をカバーするだけのエントリ数がな
い。そこで、完全なアドレス変換テーブルを主記憶上に
置き、TLBには必要な部分をコピーする方式が一般に
とられている。TLBに登録されている仮想アドレスが
発生すればTLBを検索すればよいが、TLBに登録さ
れていない仮想アドレスが発生すると、TLBを検索で
きない。これをページフォルトといい、割り込みにより
主記憶間のアドレス変換テーブルを転送してTLBの書
換えをする必要が生じる。この書換えの際のマッピング
方式は、通常セットアソシアティブ方式又はフルアソシ
アティブ方式が採用される。
【0023】本実施例では、キャッシュ方式はダイレク
トマップ方式をとり、タグに保持されるメモリアドレス
は物理アドレスであるとする。さて、説明の本筋にもど
り、CPU21は、メモリアクセスをする場合、内蔵の
ステータスレジスタ211を検索してそれぞれのエント
リにセットされたページ番号との一致を調べ一致したエ
ントリの優先レベル情報SBを読み出す。
トマップ方式をとり、タグに保持されるメモリアドレス
は物理アドレスであるとする。さて、説明の本筋にもど
り、CPU21は、メモリアクセスをする場合、内蔵の
ステータスレジスタ211を検索してそれぞれのエント
リにセットされたページ番号との一致を調べ一致したエ
ントリの優先レベル情報SBを読み出す。
【0024】優先レベル情報は、例えば0又は1からな
る2ビットの情報00,01,10,11であって、0
0→01→10→11という順で優先度が上がっていく
ものとする。このようにして読み出された優先レベル情
報SBは、優先レベル判定回路25に送られ、レジスタ
251に保持される。
る2ビットの情報00,01,10,11であって、0
0→01→10→11という順で優先度が上がっていく
ものとする。このようにして読み出された優先レベル情
報SBは、優先レベル判定回路25に送られ、レジスタ
251に保持される。
【0025】一方、CPU21はタグのアドレス部のア
ドレスをアクセスされたアドレスと比較し、ヒット・ミ
スヒットの判定を行う。同時にタグからページ番号(キ
ャッシュ方式がダイレクトマップ方式であるから、メモ
リアクセスされたラインがそのまま置換候補となる)に
対応して記憶されている優先レベル情報SAを取り出
し、優先レベル判定回路25に送る。この優先レベル情
報は、前にキャッシュラインを置換する際に、レジスタ
251を経てタグ内の置換禁止ビットにセットされたも
のである。もし、キャッシュがヒットしたならばこれ以
後の動作は打ち切られる。
ドレスをアクセスされたアドレスと比較し、ヒット・ミ
スヒットの判定を行う。同時にタグからページ番号(キ
ャッシュ方式がダイレクトマップ方式であるから、メモ
リアクセスされたラインがそのまま置換候補となる)に
対応して記憶されている優先レベル情報SAを取り出
し、優先レベル判定回路25に送る。この優先レベル情
報は、前にキャッシュラインを置換する際に、レジスタ
251を経てタグ内の置換禁止ビットにセットされたも
のである。もし、キャッシュがヒットしたならばこれ以
後の動作は打ち切られる。
【0026】ミスヒットした場合、CPU21が主記憶
装置22のアクセスを開始するのと同時に、優先レベル
判定回路25は、前記優先レベル情報SAとレジスタ2
51に保持された優先レベル情報SBとを比較し、その
結果に基づいて必要ならば置換禁止信号IHを生成す
る。
装置22のアクセスを開始するのと同時に、優先レベル
判定回路25は、前記優先レベル情報SAとレジスタ2
51に保持された優先レベル情報SBとを比較し、その
結果に基づいて必要ならば置換禁止信号IHを生成す
る。
【0027】
【表1】
【0028】表1は、2つの優先レベル情報SA,SB
の組み合わせに対する置換禁止信号IHの関係を掲げた
優先レベル判定の真理値表である。キャッシュの優先レ
ベル情報SAが、アクセスしようとするメモリの優先レ
ベル情報SBよりも高い場合、優先レベル判定回路25
は置換禁止と判定し、置換禁止信号IHを1として出力
する。
の組み合わせに対する置換禁止信号IHの関係を掲げた
優先レベル判定の真理値表である。キャッシュの優先レ
ベル情報SAが、アクセスしようとするメモリの優先レ
ベル情報SBよりも高い場合、優先レベル判定回路25
は置換禁止と判定し、置換禁止信号IHを1として出力
する。
【0029】前述の表1の判定を実現するための優先レ
ベル判定回路25は、図4のように構成できる。この図
でSA〔1〕は優先レベル情報の1桁目、SA〔2〕は
優先レベル情報の2桁目、SB
ベル判定回路25は、図4のように構成できる。この図
でSA〔1〕は優先レベル情報の1桁目、SA〔2〕は
優先レベル情報の2桁目、SB
〔0〕は他の優先レベル
情報の1桁目、SB〔2〕は他の優先レベル情報の2桁
目、IHは置換禁止信号を表わす。CPU21は、主記
憶装置22にアクセスする際、主記憶装置22に存在す
る新ラインにより置換候補ラインを置き換えようとす
る。しかし、WEゲート26により、CPU21が出力
するライトイネーブル(負論理)と前記置換禁止信号と
の論理積がとられ、これによりキャッシュメモリ20が
アサートされなくなるので、キャッシュメモリ20への
書込みが禁止される。
情報の1桁目、SB〔2〕は他の優先レベル情報の2桁
目、IHは置換禁止信号を表わす。CPU21は、主記
憶装置22にアクセスする際、主記憶装置22に存在す
る新ラインにより置換候補ラインを置き換えようとす
る。しかし、WEゲート26により、CPU21が出力
するライトイネーブル(負論理)と前記置換禁止信号と
の論理積がとられ、これによりキャッシュメモリ20が
アサートされなくなるので、キャッシュメモリ20への
書込みが禁止される。
【0030】置換禁止信号IHが生成されない場合は、
CPU21は、主記憶装置22に存在する新ラインによ
り置換候補ラインを置き換える。これと同時に、レジス
タ251の優先レベル情報がタグの置換禁止ビットにセ
ットされる。 −第2の実施例− 本実施例では、キャッシュ方式はダイレクトマップ方式
をとり、タグに保持されるメモリアドレスは仮想アドレ
スであるとする。また、TLBはフルアソシアティブ方
式をとるものとする。
CPU21は、主記憶装置22に存在する新ラインによ
り置換候補ラインを置き換える。これと同時に、レジス
タ251の優先レベル情報がタグの置換禁止ビットにセ
ットされる。 −第2の実施例− 本実施例では、キャッシュ方式はダイレクトマップ方式
をとり、タグに保持されるメモリアドレスは仮想アドレ
スであるとする。また、TLBはフルアソシアティブ方
式をとるものとする。
【0031】図5は、演算制御装置CPU21、主記憶
装置22、キャッシュメモリ20、仮想アドレスと物理
アドレスとを結び付けるアドレス変換バッファTLB2
3、情報アクセス回路24、優先レベル判定回路25、
WE(Write Enable)ゲート26等を備えたキャッシュメ
モリ装置のブロック図である。前記キャッシュメモリ装
置において、TLB23には、それぞれのエントリにセ
ットされた仮想ページ番号に対して、優先レベル情報が
記憶されているものとする。
装置22、キャッシュメモリ20、仮想アドレスと物理
アドレスとを結び付けるアドレス変換バッファTLB2
3、情報アクセス回路24、優先レベル判定回路25、
WE(Write Enable)ゲート26等を備えたキャッシュメ
モリ装置のブロック図である。前記キャッシュメモリ装
置において、TLB23には、それぞれのエントリにセ
ットされた仮想ページ番号に対して、優先レベル情報が
記憶されているものとする。
【0032】CPU21は、メモリアクセスをする場
合、情報アクセス回路24にメモリの仮想ページ番号を
渡す。情報アクセス回路24はTLB23の全エントリ
に対してそれぞれのエントリにセットされた仮想ページ
番号と前記メモリアクセスした仮想ページ番号との一致
を調べ、一致したエントリの優先レベル情報SBを読み
出す。
合、情報アクセス回路24にメモリの仮想ページ番号を
渡す。情報アクセス回路24はTLB23の全エントリ
に対してそれぞれのエントリにセットされた仮想ページ
番号と前記メモリアクセスした仮想ページ番号との一致
を調べ、一致したエントリの優先レベル情報SBを読み
出す。
【0033】ここで、情報アクセス回路24の具体例を
あげる。図6に示すように、アクセスしようとするメモ
リの仮想ページ番号と、TLB23の各エントリにそれ
ぞれ保持されている仮想ページ番号とはコンパレータC
1,…,CNにより比較され、一致すると、ANDゲー
トから該当エントリの優先レベル情報が出力される。前
述したように仮想アドレスと物理アドレスの対応はただ
1通りであるので、ページの一致はTLB23のただ1
つのエントリで起こる。それゆえ、論理和ゲートORで
各出力の論理和をとれば、仮想ページの優先レベル情報
を取り出すことができる。
あげる。図6に示すように、アクセスしようとするメモ
リの仮想ページ番号と、TLB23の各エントリにそれ
ぞれ保持されている仮想ページ番号とはコンパレータC
1,…,CNにより比較され、一致すると、ANDゲー
トから該当エントリの優先レベル情報が出力される。前
述したように仮想アドレスと物理アドレスの対応はただ
1通りであるので、ページの一致はTLB23のただ1
つのエントリで起こる。それゆえ、論理和ゲートORで
各出力の論理和をとれば、仮想ページの優先レベル情報
を取り出すことができる。
【0034】以上のようにして読み出された優先レベル
情報SBは、第1の実施例と同様、優先レベル判定回路
25に送られ、レジスタ251に保持される。一方、C
PU21はタグのアドレス部を検索してヒット・ミスヒ
ットの判定を行う。同時にタグから優先レベル情報SA
を取り出し、優先レベル判定回路25に送る。もしキャ
ッシュがヒットしたならばこれ以後の動作は打ち切られ
る。
情報SBは、第1の実施例と同様、優先レベル判定回路
25に送られ、レジスタ251に保持される。一方、C
PU21はタグのアドレス部を検索してヒット・ミスヒ
ットの判定を行う。同時にタグから優先レベル情報SA
を取り出し、優先レベル判定回路25に送る。もしキャ
ッシュがヒットしたならばこれ以後の動作は打ち切られ
る。
【0035】ミスヒットした場合、CPU21が主記憶
装置22のアクセスを開始するのと同時に、優先レベル
判定回路25は、前記優先レベル情報SAとレジスタ2
51に保持された優先レベル情報SBとを比較し、その
結果に基づいて表1(前掲)に従って置換禁止信号IH
を生成する。置換禁止信号IHが生成された場合は、W
Eゲート26により、キャッシュメモリ20への書込み
が禁止されるのは第1の実施例と同様である。
装置22のアクセスを開始するのと同時に、優先レベル
判定回路25は、前記優先レベル情報SAとレジスタ2
51に保持された優先レベル情報SBとを比較し、その
結果に基づいて表1(前掲)に従って置換禁止信号IH
を生成する。置換禁止信号IHが生成された場合は、W
Eゲート26により、キャッシュメモリ20への書込み
が禁止されるのは第1の実施例と同様である。
【0036】置換禁止信号IHが生成されない場合は、
CPU21は、置換候補ラインの置換を行い、これと同
時に、タグの置換禁止ビットにレジスタ251の優先レ
ベル情報がセットされる。なお本発明は前記実施例に限
定されるものではない。例えば実施例の表1では、2つ
の優先レベル情報SA,SBはそれぞれ2桁のビットで
表されていたので優先レベルの数は22 =4であった
が、優先レベルをもっときめ細かく設定してもよいし、
優先レベルをもっと粗く、すなわち21 =2に設定して
もよい。この場合、キャッシュメモリ20に記憶されて
いる置換候補ラインの優先レベルが優先レベル1であれ
ば無条件に置換禁止信号を出せばよいので、優先レベル
判定回路25はレジスタ251の内容を参照する必要は
なくなる。その他本発明の要旨を変更しない範囲で種々
の変更を施すことが可能である。
CPU21は、置換候補ラインの置換を行い、これと同
時に、タグの置換禁止ビットにレジスタ251の優先レ
ベル情報がセットされる。なお本発明は前記実施例に限
定されるものではない。例えば実施例の表1では、2つ
の優先レベル情報SA,SBはそれぞれ2桁のビットで
表されていたので優先レベルの数は22 =4であった
が、優先レベルをもっときめ細かく設定してもよいし、
優先レベルをもっと粗く、すなわち21 =2に設定して
もよい。この場合、キャッシュメモリ20に記憶されて
いる置換候補ラインの優先レベルが優先レベル1であれ
ば無条件に置換禁止信号を出せばよいので、優先レベル
判定回路25はレジスタ251の内容を参照する必要は
なくなる。その他本発明の要旨を変更しない範囲で種々
の変更を施すことが可能である。
【0037】
【発明の効果】以上のように、本発明によれば、キャッ
シュメモリに記憶されているラインの利用度が高いとき
は、当該ラインの置換は禁止されるので、従来のような
画一的な置換がされることはなくなる。したがって、プ
ロセスの実行速度の低下を防ぐことができるので、コン
ピュータのキャッシュメモリ装置として利用すると有効
である。
シュメモリに記憶されているラインの利用度が高いとき
は、当該ラインの置換は禁止されるので、従来のような
画一的な置換がされることはなくなる。したがって、プ
ロセスの実行速度の低下を防ぐことができるので、コン
ピュータのキャッシュメモリ装置として利用すると有効
である。
【0038】特に、請求項4記載の発明によれば、絶対
的なヒットを保障することができるようになる。
的なヒットを保障することができるようになる。
【図1】請求項2記載の発明の構成を示すブロック図で
ある。
ある。
【図2】請求項3記載の発明の構成を示すブロック図で
ある。
ある。
【図3】演算制御装置、主記憶装置、キャッシュメモ
リ、アドレス変換バッファTLB等を備えたキャッシュ
メモリ装置のブロック図である。
リ、アドレス変換バッファTLB等を備えたキャッシュ
メモリ装置のブロック図である。
【図4】優先レベル判定回路を例示した図である。
【図5】第2の実施例に係るキャッシュメモリ装置のブ
ロック図である。
ロック図である。
【図6】情報アクセス回路を例示した図である。
1 キャッシュメモリ 3 タグ 5a,5b 優先レベル情報 6 TLB 7 優先レベル判定回路 9 置換禁止回路 10 主記憶装置
Claims (4)
- 【請求項1】主記憶装置と、主記憶装置よりも高速小容
量のキャッシュメモリとを備え、キャッシュメモリが参
照された時にミスヒットした場合には、主記憶装置が参
照され、かつ、その主記憶装置のデータをライン単位で
キャッシュメモリに記憶されたいずれかのラインと置換
することにより次回の参照に備えるようにしたキャッシ
ュメモリ装置において、 キャッシュ上にあるラインが主記憶装置のどのアドレス
のラインの写しであるかを示す情報を記憶しているタグ
の所定ビットに、各ラインのアドレスに対応させて、当
該ラインの置換の優先度を示す優先レベル情報を格納
し、 ミスヒット時にキャッシュメモリに記憶されているいず
れかのラインを主記憶装置に記憶されたラインと置換す
る際に、キャッシュメモリに記憶されている置換候補ラ
インと、メモリアクセスされたラインとの両アドレスに
基づいて前記タグに格納されている優先レベル情報をそ
れぞれ参照し、参照された優先レベル情報の優先度を比
較する優先レベル判定回路と、 優先レベル判定回路により比較された結果に応じて、優
先度の高いラインを優先度の低いラインで置換すること
を禁止する置換禁止回路とを設けたことを特徴とするキ
ャッシュメモリ装置。 - 【請求項2】前記メモリアクセスされたラインの優先レ
ベル情報の参照は、CPUのステータスレジスタに対し
て行われるものであり、タグの所定のビットには、キャ
ッシュライン書込み時に、CPUのステータスレジスタ
に設けられた当該ラインの優先レベル情報が格納される
ことを特徴とする請求項1記載のキャッシュメモリ装
置。 - 【請求項3】前記メモリアクセスされたラインの優先レ
ベル情報の参照は、論理キャッシュ上にあるラインの仮
想アドレスと主記憶装置の物理アドレスとの対応付けを
行うために使用されるアドレス変換バッファTLBに対
して行われるものであり、前記タグの所定のビットに
は、キャッシュライン書込み時に、アドレス変換バッフ
ァTLBに設けられた当該ラインの優先レベル情報が格
納されることを特徴とする請求項1記載のキャッシュメ
モリ装置。 - 【請求項4】主記憶装置と、主記憶装置よりも高速小容
量のキャッシュメモリとを備え、キャッシュメモリが参
照された時にミスヒットした場合には、主記憶装置が参
照され、かつ、その主記憶装置のデータをライン単位で
キャッシュメモリに記憶されたいずれかのラインと置換
することにより次回の参照に備えるようにしたキャッシ
ュメモリ装置において、 キャッシュ上にあるラインが主記憶装置のどのアドレス
のラインの写しであるかを示す情報を記憶しているタグ
の所定ビットに、各ラインのアドレスに対応させて、当
該ラインの置換を禁止するかどうかを示す置換禁止情報
を格納し、 ミスヒット時にキャッシュメモリに記憶されているいず
れかのラインを主記憶装置に記憶されたラインと置換す
る際に、キャッシュメモリに記憶されている置換候補ラ
インのアドレスに基づいて前記タグに格納されている置
換禁止情報を参照し、参照された置換禁止情報が置換禁
止を示すものであれば、当該ラインの置換を禁止する置
換禁止回路を設けたことを特徴とするキャッシュメモリ
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5174461A JPH0728706A (ja) | 1993-07-14 | 1993-07-14 | キャッシュメモリ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5174461A JPH0728706A (ja) | 1993-07-14 | 1993-07-14 | キャッシュメモリ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0728706A true JPH0728706A (ja) | 1995-01-31 |
Family
ID=15978897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5174461A Pending JPH0728706A (ja) | 1993-07-14 | 1993-07-14 | キャッシュメモリ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0728706A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640286B2 (en) | 2000-11-02 | 2003-10-28 | Hitachi, Ltd. | Cache control system |
GB2445965A (en) * | 2007-01-26 | 2008-07-30 | Advanced Risc Mach Ltd | Entry replacement within a data store |
JP2010123130A (ja) * | 2008-11-21 | 2010-06-03 | Nvidia Corp | 複数クラスデータキャッシュポリシー |
CN114035980A (zh) * | 2021-11-08 | 2022-02-11 | 海飞科(南京)信息技术有限公司 | 基于便笺存储器来共享数据的方法和电子装置 |
-
1993
- 1993-07-14 JP JP5174461A patent/JPH0728706A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640286B2 (en) | 2000-11-02 | 2003-10-28 | Hitachi, Ltd. | Cache control system |
GB2445965A (en) * | 2007-01-26 | 2008-07-30 | Advanced Risc Mach Ltd | Entry replacement within a data store |
GB2445965B (en) * | 2007-01-26 | 2011-05-04 | Advanced Risc Mach Ltd | Entry replacement within a data store |
US8271750B2 (en) | 2007-01-26 | 2012-09-18 | Arm Limited | Entry replacement within a data store using entry profile data and runtime performance gain data |
JP2010123130A (ja) * | 2008-11-21 | 2010-06-03 | Nvidia Corp | 複数クラスデータキャッシュポリシー |
US8868838B1 (en) | 2008-11-21 | 2014-10-21 | Nvidia Corporation | Multi-class data cache policies |
CN114035980A (zh) * | 2021-11-08 | 2022-02-11 | 海飞科(南京)信息技术有限公司 | 基于便笺存储器来共享数据的方法和电子装置 |
CN114035980B (zh) * | 2021-11-08 | 2023-11-14 | 海飞科(南京)信息技术有限公司 | 基于便笺存储器来共享数据的方法和电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3259969B2 (ja) | キャッシュメモリ制御装置 | |
JP3859757B2 (ja) | 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置 | |
US5257361A (en) | Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation | |
US7844778B2 (en) | Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements | |
US6675282B2 (en) | System and method for employing a global bit for page sharing in a linear-addressed cache | |
EP0911737A1 (en) | Cache memory with reduced access time | |
US20040117592A1 (en) | Memory management for real-time applications | |
US6643733B2 (en) | Prioritized content addressable memory | |
US6418521B1 (en) | Hierarchical fully-associative-translation lookaside buffer structure | |
US20020095552A1 (en) | Highly efficient design of storage array for use in caches and memory subsystems | |
US8549227B2 (en) | Multiprocessor system and operating method of multiprocessor system | |
US6240489B1 (en) | Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system | |
US7461212B2 (en) | Non-inclusive cache system with simple control operation | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
US5913222A (en) | Color correction method in a virtually addressed and physically indexed cache memory in the event of no cache hit | |
KR100395768B1 (ko) | 멀티 레벨 캐쉬 시스템 | |
EP0425771A2 (en) | An efficient mechanism for providing fine grain storage protection intervals | |
JPH0728706A (ja) | キャッシュメモリ装置 | |
JP2005512192A (ja) | キャッシュメモリをメインメモリに同期させる方法 | |
JP3974131B2 (ja) | キャッシュメモリを制御するための方法と装置 | |
EP0170525A2 (en) | Cache hierarchy design for use in a memory management unit | |
JPH0728705A (ja) | キャッシュメモリ装置 | |
US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
JPH0659977A (ja) | 明示的なライン置換え操作が可能なキャッシュメモリとその制御方法 |