JPH04215151A - キャッシュ制御方式 - Google Patents
キャッシュ制御方式Info
- Publication number
- JPH04215151A JPH04215151A JP2401771A JP40177190A JPH04215151A JP H04215151 A JPH04215151 A JP H04215151A JP 2401771 A JP2401771 A JP 2401771A JP 40177190 A JP40177190 A JP 40177190A JP H04215151 A JPH04215151 A JP H04215151A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- level
- eviction
- block
- main memory
- 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
- 238000000034 method Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 abstract description 2
- 238000010926 purge Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 2
- 101100327917 Caenorhabditis elegans chup-1 gene Proteins 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明はキャッシュ制御方式に関
する。
する。
【0002】
【従来の技術】従来、キャッシュ制御方式における追い
出し制御では、最も過去に参照されたブロックを最も優
先して追い出すLRU(Least Recentl
y Used)方式か、最も過去に入れ替えたブロッ
クを最も優先して追い出すFIFO(Fast−In
First−Out)方式か、追い出すブロックをラ
ンダムに選択するランダム方式か、上記方式の組み合わ
せ方式をとっていた。
出し制御では、最も過去に参照されたブロックを最も優
先して追い出すLRU(Least Recentl
y Used)方式か、最も過去に入れ替えたブロッ
クを最も優先して追い出すFIFO(Fast−In
First−Out)方式か、追い出すブロックをラ
ンダムに選択するランダム方式か、上記方式の組み合わ
せ方式をとっていた。
【0003】
【発明が解決しようとする課題】上述した従来の追い出
し制御では、アクセスされた順番か、入れ替えの順番に
より、追い出しの優先度を決定しているため、個々のプ
ログラムの特性を反映できず効率的なキャッシュの制御
ができず、ヒット率を低下させるという欠点がある。
し制御では、アクセスされた順番か、入れ替えの順番に
より、追い出しの優先度を決定しているため、個々のプ
ログラムの特性を反映できず効率的なキャッシュの制御
ができず、ヒット率を低下させるという欠点がある。
【0004】本発明の目的は、プログラムの特性に合っ
た効率的な追い出しができ、キャッシュ有効に使用でき
、ヒット率の向上が得られるキャッシュ制御方式を提供
することにある。
た効率的な追い出しができ、キャッシュ有効に使用でき
、ヒット率の向上が得られるキャッシュ制御方式を提供
することにある。
【0005】
【課題を解決するための手段】本発明のキャッシュ制御
方式は、キャッシュのディレクトリ構成がアソシアティ
ブ方式をとるキャッシュシステムにおいて、プログラム
処理の特性に応じて、前記キャッシュの内容を更新する
時の追い出し優先のレベルを設け、各処理に入る時、該
処理の追い出しレベルを追い出しレベル保持部へ書き込
み、前記キャッシュの対象である主記憶をアクセスした
時に、アクセスした主記憶のコピーをキャッシュブロッ
クに格納すると同時に、この追い出しレベルも一緒に記
憶し、前記キャッシュの内容を更新する際に、前記追い
出しレベルをチェックし追い出しレベルの一番高いブロ
ックから先に追い出す構成であり、又、本発明のキャッ
シュ制御方式はキャッシュのディレクトリ構成がアソシ
アティブ方式をとるキャッシュシステムにおいて、主記
憶のアドレス空間を、前記キャッシュの内容を更新する
時の追い出し優先レベルに応じた複数の空間に分割し、
前記キャッシュの対象である主記憶をアクセスした時に
、アドレスに応じた追い出しレベルを前記キャッシュに
与え、アクセスした主記憶のコピーをキャッシュブロッ
クに格納すると同時に追い出しレベルも一緒に記憶し、
前記キャッシュの内容を更新する際に、前記追い出しレ
ベルをチェックし追い出しレベルの一番高いブロックか
ら先に追い出す構成としてもよい。
方式は、キャッシュのディレクトリ構成がアソシアティ
ブ方式をとるキャッシュシステムにおいて、プログラム
処理の特性に応じて、前記キャッシュの内容を更新する
時の追い出し優先のレベルを設け、各処理に入る時、該
処理の追い出しレベルを追い出しレベル保持部へ書き込
み、前記キャッシュの対象である主記憶をアクセスした
時に、アクセスした主記憶のコピーをキャッシュブロッ
クに格納すると同時に、この追い出しレベルも一緒に記
憶し、前記キャッシュの内容を更新する際に、前記追い
出しレベルをチェックし追い出しレベルの一番高いブロ
ックから先に追い出す構成であり、又、本発明のキャッ
シュ制御方式はキャッシュのディレクトリ構成がアソシ
アティブ方式をとるキャッシュシステムにおいて、主記
憶のアドレス空間を、前記キャッシュの内容を更新する
時の追い出し優先レベルに応じた複数の空間に分割し、
前記キャッシュの対象である主記憶をアクセスした時に
、アドレスに応じた追い出しレベルを前記キャッシュに
与え、アクセスした主記憶のコピーをキャッシュブロッ
クに格納すると同時に追い出しレベルも一緒に記憶し、
前記キャッシュの内容を更新する際に、前記追い出しレ
ベルをチェックし追い出しレベルの一番高いブロックか
ら先に追い出す構成としてもよい。
【0006】
【実施例】次に、本発明について図面を参照して説明す
る。図1は本発明の第1の実施例を示すブロック図であ
り、未発明の第1の実施例によるキャッシュ制御方式は
、CPU1と、CPU1にデータバス,アドレスバスで
接続されたキャッシュメモリ4と、システムバスを介し
キャッシュメモリ4と接続された主記憶2と、追い出し
制御を行う追い出し制御部7を有しキャッシュメモリ4
を制御するキャッシュコントローラ3と、プログラムの
特性に応じた優先を示す追い出しレベルを保持する追い
出しレベル保持部8とを備える。なお、追い出しレベル
保持部8は、CPU1又はキャッシュコントローラ3の
いずれに設けてもよい。
る。図1は本発明の第1の実施例を示すブロック図であ
り、未発明の第1の実施例によるキャッシュ制御方式は
、CPU1と、CPU1にデータバス,アドレスバスで
接続されたキャッシュメモリ4と、システムバスを介し
キャッシュメモリ4と接続された主記憶2と、追い出し
制御を行う追い出し制御部7を有しキャッシュメモリ4
を制御するキャッシュコントローラ3と、プログラムの
特性に応じた優先を示す追い出しレベルを保持する追い
出しレベル保持部8とを備える。なお、追い出しレベル
保持部8は、CPU1又はキャッシュコントローラ3の
いずれに設けてもよい。
【0007】以下に、動作を説明する。CUP1は、主
記憶2にアクセスする時に、アドレスとデータを出す。 キャッシュコントローラ3は、アクセスアドレスを取込
みキャッシュコントローラ3内のアドレスタグ部5と比
較し、キャッシュ内にそのブロックがある場合(ヒット
時)は、リード/ライト信号9をリードにし、キャッシ
ュメモリ4からデータを読み出す。ヒットしない場合は
、システムバスを通して主記憶2からデータを読み出し
、リード/ライト信号9をライトにし、キャッシュメモ
リ4へ格納すると同時にCPU1へデータを送り、キャ
ッシュコントローラ3内のバリッドビット6を有効にす
る。プログラムが処理の特性(再利用率など)を考慮し
て追い出しレベルを変更したい時に、追い出しレベル保
持部8に、追い出しレベルを設定する。キャッシュコン
トローラ3は、キャッシュメモリ4へ主記憶2の内容を
コピーする時に、レベル保持部8からのレベルを、追い
出し制御部7に、ブロック対応に記憶する。
記憶2にアクセスする時に、アドレスとデータを出す。 キャッシュコントローラ3は、アクセスアドレスを取込
みキャッシュコントローラ3内のアドレスタグ部5と比
較し、キャッシュ内にそのブロックがある場合(ヒット
時)は、リード/ライト信号9をリードにし、キャッシ
ュメモリ4からデータを読み出す。ヒットしない場合は
、システムバスを通して主記憶2からデータを読み出し
、リード/ライト信号9をライトにし、キャッシュメモ
リ4へ格納すると同時にCPU1へデータを送り、キャ
ッシュコントローラ3内のバリッドビット6を有効にす
る。プログラムが処理の特性(再利用率など)を考慮し
て追い出しレベルを変更したい時に、追い出しレベル保
持部8に、追い出しレベルを設定する。キャッシュコン
トローラ3は、キャッシュメモリ4へ主記憶2の内容を
コピーする時に、レベル保持部8からのレベルを、追い
出し制御部7に、ブロック対応に記憶する。
【0008】次に、キャッシュの内容を更新する場合、
追い出し制御部7は、記憶してある追い出しレベルを比
較し、レベルの高いブロックを追い出し、空いたブロッ
クへ更新データを入れる。この時、レベル保持部8のレ
ベルは、追い出し優先レベルが低くなるように制御して
も良い。同じレベルの追い出しブロックが複数存在する
場合は、そのレベル内で、LRU方式などをとることと
する。
追い出し制御部7は、記憶してある追い出しレベルを比
較し、レベルの高いブロックを追い出し、空いたブロッ
クへ更新データを入れる。この時、レベル保持部8のレ
ベルは、追い出し優先レベルが低くなるように制御して
も良い。同じレベルの追い出しブロックが複数存在する
場合は、そのレベル内で、LRU方式などをとることと
する。
【0009】図2は本発明の第1の実施例におけるプロ
グラムと追い出しレベル例を示す図である。例えば、良
く使用され再利用の可能性が高いスケジューラは、スケ
ジューラに入る時に、追い出しレベル保持部8へ追い出
しレベル「1」を設定する。次に、例えば、アプリケー
ション(a)が実行される時は、追い出しレベル「2」
を追い出しレベル保持部8へ設定する。追い出しレベル
保持部8で保持されものは、主記憶2へのアクセスが起
り、キャッシュブロックへ格納時に、ブロック対応に記
憶される。
グラムと追い出しレベル例を示す図である。例えば、良
く使用され再利用の可能性が高いスケジューラは、スケ
ジューラに入る時に、追い出しレベル保持部8へ追い出
しレベル「1」を設定する。次に、例えば、アプリケー
ション(a)が実行される時は、追い出しレベル「2」
を追い出しレベル保持部8へ設定する。追い出しレベル
保持部8で保持されものは、主記憶2へのアクセスが起
り、キャッシュブロックへ格納時に、ブロック対応に記
憶される。
【0010】図3は本発明の第2の実施例を示すブロッ
ク図であり、本発明の第2の実施例によるキャッシュ制
御方式は、CPU1と、CPU1にデータバス,アドレ
スバスで接続されたキャッシュメモリ4と、システムバ
スを介しキャッシュメモリ4と接続された主記憶2と、
追い出し制御を行う追い出し制御部7を有しキャッシュ
メモリ4を制御するキャッシュコントローラ3と、主記
憶2のアドレス空間に応じた追い出しレベルを発生する
追い出しレベル発生部10とを備える。なお、追い出し
レベル発生部10は、CPU1又はキャッシュコントロ
ーラのいずれに設けてもよい。
ク図であり、本発明の第2の実施例によるキャッシュ制
御方式は、CPU1と、CPU1にデータバス,アドレ
スバスで接続されたキャッシュメモリ4と、システムバ
スを介しキャッシュメモリ4と接続された主記憶2と、
追い出し制御を行う追い出し制御部7を有しキャッシュ
メモリ4を制御するキャッシュコントローラ3と、主記
憶2のアドレス空間に応じた追い出しレベルを発生する
追い出しレベル発生部10とを備える。なお、追い出し
レベル発生部10は、CPU1又はキャッシュコントロ
ーラのいずれに設けてもよい。
【0011】以下に、動作を説明する。CPU1は主記
憶2にアクセスする時に、アドレスとデータを出す。キ
ャッシュコントローラ3は、アクセスアドレスを取込み
、キャッシュコントローラ3内のアドレスタグ部5と比
較し、キャッシュ内にそのブロックがある場合(ヒット
時)は、リード/ライト信号9をリードにし、キャッシ
ュメモリ4からデータを読み出す。ヒットしない場合は
、システムバスを通して主記憶2からデータを読み出し
、リード/ライト信号9をライトにし、キャッシュメモ
リ4へ格納すると同時にCPU1へデータを送り、キャ
ッシュコントローラ3内のバリッドビット6を有効にす
る。キャッシュメモリ4へ格納する場合、アクセスアド
レスから追い出しレベル発生部8により、アドレス空間
に応じて割り付けられた追い出しレベルをキャッシュコ
ントローラ3へ渡す。キャッシュコントローラ3では、
この追い出しレベルをブロック対応に追い出し制御部7
に記憶する。
憶2にアクセスする時に、アドレスとデータを出す。キ
ャッシュコントローラ3は、アクセスアドレスを取込み
、キャッシュコントローラ3内のアドレスタグ部5と比
較し、キャッシュ内にそのブロックがある場合(ヒット
時)は、リード/ライト信号9をリードにし、キャッシ
ュメモリ4からデータを読み出す。ヒットしない場合は
、システムバスを通して主記憶2からデータを読み出し
、リード/ライト信号9をライトにし、キャッシュメモ
リ4へ格納すると同時にCPU1へデータを送り、キャ
ッシュコントローラ3内のバリッドビット6を有効にす
る。キャッシュメモリ4へ格納する場合、アクセスアド
レスから追い出しレベル発生部8により、アドレス空間
に応じて割り付けられた追い出しレベルをキャッシュコ
ントローラ3へ渡す。キャッシュコントローラ3では、
この追い出しレベルをブロック対応に追い出し制御部7
に記憶する。
【0012】次に、キャッシュの内容を更新する場合、
追い出し制御部7は、記憶してある追い出しレベルを比
較し、レベルの高いブロックを追い出し、空いたブロッ
クへ更新データを入れる。この時、アクセス中のレベル
は、追い出し優先レベルが低くなるように制御しても良
い。同じレベルの追い出しブロックが複数存在する場合
は、そのレベル内で、LRU方式などをとることとする
。
追い出し制御部7は、記憶してある追い出しレベルを比
較し、レベルの高いブロックを追い出し、空いたブロッ
クへ更新データを入れる。この時、アクセス中のレベル
は、追い出し優先レベルが低くなるように制御しても良
い。同じレベルの追い出しブロックが複数存在する場合
は、そのレベル内で、LRU方式などをとることとする
。
【0013】図2は本発明の第2の実施例におけるアド
レス空間に対応した追い出しレベルとプログラム配置例
を示す図である。例えば、良く使用され、再使用の可能
性が高いスケジューラは、アドレス空間d≦スケジュー
ラ<eの間に置かれ、追い出しレベルの低い「1」が割
りふられ、次に使用率の高いアプリケーションがアドレ
スc≦アプリケーション<dのアドレス空間に置かれ、
追い出しレベルの低い「2」が割りふられる。又、良く
使用される関数も、アドレス空間a≦関数<bに置かれ
、追い出しレベルの低い「2」が割りふられている。 又、利用率の低いデータは、アドレス空間g≦データ<
hの間に置かれ、追い出しレベルの高い「15」が割り
ふられている。アドレス空間と追い出しレベルとの対応
方法は一例であり、レベルとプログラムの配置方法も一
例である。
レス空間に対応した追い出しレベルとプログラム配置例
を示す図である。例えば、良く使用され、再使用の可能
性が高いスケジューラは、アドレス空間d≦スケジュー
ラ<eの間に置かれ、追い出しレベルの低い「1」が割
りふられ、次に使用率の高いアプリケーションがアドレ
スc≦アプリケーション<dのアドレス空間に置かれ、
追い出しレベルの低い「2」が割りふられる。又、良く
使用される関数も、アドレス空間a≦関数<bに置かれ
、追い出しレベルの低い「2」が割りふられている。 又、利用率の低いデータは、アドレス空間g≦データ<
hの間に置かれ、追い出しレベルの高い「15」が割り
ふられている。アドレス空間と追い出しレベルとの対応
方法は一例であり、レベルとプログラムの配置方法も一
例である。
【0014】
【発明の効果】以上説明したように本発明は、プログラ
ム処理に入る時にこのプログラム処理の追い出しレベル
を追い出しレベル保持部へ書き込み、ブロック対応にこ
の追い出しレベル保持部からのレベルを記憶し、キャッ
シュの内容を更新する時に記憶した追い出しレベルを比
較し、追い出しレベルの高いものから追い出すことによ
り、又は、主記憶のアドレス空間を、キュッシュの内容
を更新する時の追い出し優先レベルに応じた複数の空間
に分割し、プログラムを、その特性を考慮してアドレス
空間に配置し、キャッシュ対象の主記憶をアクセスした
時に、この追い出しレベルをキャッシュに与えこれを記
憶し、キャッシュのブロック更新の際に、記憶している
追い出しレベルの高いブロックを優先して追い出すこと
により、プログラムの特性にあった効率的な追い出しが
でき、キャッシュを有効に使用でき、ヒット率を上げる
効果がある。
ム処理に入る時にこのプログラム処理の追い出しレベル
を追い出しレベル保持部へ書き込み、ブロック対応にこ
の追い出しレベル保持部からのレベルを記憶し、キャッ
シュの内容を更新する時に記憶した追い出しレベルを比
較し、追い出しレベルの高いものから追い出すことによ
り、又は、主記憶のアドレス空間を、キュッシュの内容
を更新する時の追い出し優先レベルに応じた複数の空間
に分割し、プログラムを、その特性を考慮してアドレス
空間に配置し、キャッシュ対象の主記憶をアクセスした
時に、この追い出しレベルをキャッシュに与えこれを記
憶し、キャッシュのブロック更新の際に、記憶している
追い出しレベルの高いブロックを優先して追い出すこと
により、プログラムの特性にあった効率的な追い出しが
でき、キャッシュを有効に使用でき、ヒット率を上げる
効果がある。
【図1】本発明の第1の実施例を示すブロック図である
。
。
【図2】本発明の第1の実施例におけるプログラムと追
い出しレベル例を示す図である。
い出しレベル例を示す図である。
【図3】本発明の第2の実施例を示すブロックである。
【図4】本発明の第2の実施例におけるアドレス空間に
対応した追い出しレベルとプログラム配置例を示す図で
ある。
対応した追い出しレベルとプログラム配置例を示す図で
ある。
1 CPU
2 主記憶
3 キャッシュコントローラ
4 キャッシュメモリ
5 アドレスタグ部
6 バリッドビット
7 追い出し制御部
8 追い出しレベル保持部
9 リード/ライト信号
10 追い出しレベル発生部
Claims (2)
- 【請求項1】 キャッシュのディレクトリ構成がアソ
シアティブ方式をとるキャッシュシステムにおいて、プ
ログラム処理の特性に応じて、前記キャッシュの内容を
更新する時の追い出し優先のレベルを設け、各処理に入
る時、該処理の追い出しレベルを追い出しレベル保持部
へ書き込み、前記キャッシュの対象である主記憶をアク
セスした時に、アクセスした主記憶のコピーをキャッシ
ュブロックに格納すると同時に、この追い出しレベルも
一緒に記憶し、前記キャッシュの内容を更新する際に、
前記追い出しレベルをチェックし追い出しレベルの一番
高いブロックから先に追い出すことを特徴とするキャッ
シュ制御方式。 - 【請求項2】 キャッシュのディレクトリ構成がアソ
シアティブ方式をとるキャッシュシステムにおいて、主
記憶のアドレス空間を、前記キャッシュの内容を更新す
る時の追い出し優先レベルに応じた複数の空間に分割し
、前記キャッシュの対象である主記憶をアクセスした時
に、アドレスに応じた追い出しレベルを前記キャッシュ
に与え、アクセスした主記憶のコピーをキャッシュブロ
ックに格納すると同時に追い出しレベルも一緒に記憶し
、前記キャッシュの内容を更新する際に、前記追い出し
レベルをチェックし追い出しレベルの一番高いブロック
から先に追い出すことを特徴とするキャッシュ制御方式
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2401771A JPH04215151A (ja) | 1990-12-13 | 1990-12-13 | キャッシュ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2401771A JPH04215151A (ja) | 1990-12-13 | 1990-12-13 | キャッシュ制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04215151A true JPH04215151A (ja) | 1992-08-05 |
Family
ID=18511601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2401771A Pending JPH04215151A (ja) | 1990-12-13 | 1990-12-13 | キャッシュ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04215151A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002510085A (ja) * | 1998-03-31 | 2002-04-02 | インテル・コーポレーション | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 |
JP2010123130A (ja) * | 2008-11-21 | 2010-06-03 | Nvidia Corp | 複数クラスデータキャッシュポリシー |
-
1990
- 1990-12-13 JP JP2401771A patent/JPH04215151A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002510085A (ja) * | 1998-03-31 | 2002-04-02 | インテル・コーポレーション | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 |
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 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5689679A (en) | Memory system and method for selective multi-level caching using a cache level code | |
US6460114B1 (en) | Storing a flushed cache line in a memory buffer of a controller | |
US5630097A (en) | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses | |
US6446188B1 (en) | Caching dynamically allocated objects | |
US5717893A (en) | Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions | |
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US5537573A (en) | Cache system and method for prefetching of data | |
US7284096B2 (en) | Systems and methods for data caching | |
US7577793B2 (en) | Patrol snooping for higher level cache eviction candidate identification | |
US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
US7020748B2 (en) | Cache replacement policy to mitigate pollution in multicore processors | |
US20080215816A1 (en) | Apparatus and method for filtering unused sub-blocks in cache memories | |
WO2010004497A1 (en) | Cache management systems and methods | |
JPH04205041A (ja) | マルチプロセッサシステム | |
US7171666B2 (en) | Processor module for a multiprocessor system and task allocation method thereof | |
US6715040B2 (en) | Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit | |
US6324632B1 (en) | Processing a data stream | |
JPH04215151A (ja) | キャッシュ制御方式 | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
JP2002041358A (ja) | プロセッサシステム | |
JPH03232034A (ja) | キャッシュ制御装置 | |
JPH0784886A (ja) | キャッシュメモリ制御方法およびキャッシュメモリ制御装置 | |
JPH04288647A (ja) | キャッシュメモリにおける置き換え制御装置 | |
JPH0612331A (ja) | キャッシュメモリ制御装置 | |
JPH01251252A (ja) | キャッシュメモリ |