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
Application number
JP2401771A
Other languages
English (en)
Inventor
Noriyuki Tachibana
橘 則行
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.)
NEC Communication Systems Ltd
Original Assignee
NEC Communication Systems 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 NEC Communication Systems Ltd filed Critical NEC Communication Systems Ltd
Priority to JP2401771A priority Critical patent/JPH04215151A/ja
Publication of JPH04215151A publication Critical patent/JPH04215151A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はキャッシュ制御方式に関
する。
【0002】
【従来の技術】従来、キャッシュ制御方式における追い
出し制御では、最も過去に参照されたブロックを最も優
先して追い出す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の
いずれに設けてもよい。
【0007】以下に、動作を説明する。CUP1は、主
記憶2にアクセスする時に、アドレスとデータを出す。 キャッシュコントローラ3は、アクセスアドレスを取込
みキャッシュコントローラ3内のアドレスタグ部5と比
較し、キャッシュ内にそのブロックがある場合(ヒット
時)は、リード/ライト信号9をリードにし、キャッシ
ュメモリ4からデータを読み出す。ヒットしない場合は
、システムバスを通して主記憶2からデータを読み出し
、リード/ライト信号9をライトにし、キャッシュメモ
リ4へ格納すると同時にCPU1へデータを送り、キャ
ッシュコントローラ3内のバリッドビット6を有効にす
る。プログラムが処理の特性(再利用率など)を考慮し
て追い出しレベルを変更したい時に、追い出しレベル保
持部8に、追い出しレベルを設定する。キャッシュコン
トローラ3は、キャッシュメモリ4へ主記憶2の内容を
コピーする時に、レベル保持部8からのレベルを、追い
出し制御部7に、ブロック対応に記憶する。
【0008】次に、キャッシュの内容を更新する場合、
追い出し制御部7は、記憶してある追い出しレベルを比
較し、レベルの高いブロックを追い出し、空いたブロッ
クへ更新データを入れる。この時、レベル保持部8のレ
ベルは、追い出し優先レベルが低くなるように制御して
も良い。同じレベルの追い出しブロックが複数存在する
場合は、そのレベル内で、LRU方式などをとることと
する。
【0009】図2は本発明の第1の実施例におけるプロ
グラムと追い出しレベル例を示す図である。例えば、良
く使用され再利用の可能性が高いスケジューラは、スケ
ジューラに入る時に、追い出しレベル保持部8へ追い出
しレベル「1」を設定する。次に、例えば、アプリケー
ション(a)が実行される時は、追い出しレベル「2」
を追い出しレベル保持部8へ設定する。追い出しレベル
保持部8で保持されものは、主記憶2へのアクセスが起
り、キャッシュブロックへ格納時に、ブロック対応に記
憶される。
【0010】図3は本発明の第2の実施例を示すブロッ
ク図であり、本発明の第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
に記憶する。
【0012】次に、キャッシュの内容を更新する場合、
追い出し制御部7は、記憶してある追い出しレベルを比
較し、レベルの高いブロックを追い出し、空いたブロッ
クへ更新データを入れる。この時、アクセス中のレベル
は、追い出し優先レベルが低くなるように制御しても良
い。同じレベルの追い出しブロックが複数存在する場合
は、そのレベル内で、LRU方式などをとることとする
【0013】図2は本発明の第2の実施例におけるアド
レス空間に対応した追い出しレベルとプログラム配置例
を示す図である。例えば、良く使用され、再使用の可能
性が高いスケジューラは、アドレス空間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. 【請求項1】  キャッシュのディレクトリ構成がアソ
    シアティブ方式をとるキャッシュシステムにおいて、プ
    ログラム処理の特性に応じて、前記キャッシュの内容を
    更新する時の追い出し優先のレベルを設け、各処理に入
    る時、該処理の追い出しレベルを追い出しレベル保持部
    へ書き込み、前記キャッシュの対象である主記憶をアク
    セスした時に、アクセスした主記憶のコピーをキャッシ
    ュブロックに格納すると同時に、この追い出しレベルも
    一緒に記憶し、前記キャッシュの内容を更新する際に、
    前記追い出しレベルをチェックし追い出しレベルの一番
    高いブロックから先に追い出すことを特徴とするキャッ
    シュ制御方式。
  2. 【請求項2】  キャッシュのディレクトリ構成がアソ
    シアティブ方式をとるキャッシュシステムにおいて、主
    記憶のアドレス空間を、前記キャッシュの内容を更新す
    る時の追い出し優先レベルに応じた複数の空間に分割し
    、前記キャッシュの対象である主記憶をアクセスした時
    に、アドレスに応じた追い出しレベルを前記キャッシュ
    に与え、アクセスした主記憶のコピーをキャッシュブロ
    ックに格納すると同時に追い出しレベルも一緒に記憶し
    、前記キャッシュの内容を更新する際に、前記追い出し
    レベルをチェックし追い出しレベルの一番高いブロック
    から先に追い出すことを特徴とするキャッシュ制御方式
JP2401771A 1990-12-13 1990-12-13 キャッシュ制御方式 Pending JPH04215151A (ja)

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)

* Cited by examiner, † Cited by third party
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 複数クラスデータキャッシュポリシー

Cited By (3)

* Cited by examiner, † Cited by third party
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
US5802572A (en) Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
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
US8176255B2 (en) Allocating space in dedicated cache ways
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
US20020042863A1 (en) Storing a flushed cache line in a memory buffer of a controller
US7380047B2 (en) Apparatus and method for filtering unused sub-blocks in cache memories
US20040143708A1 (en) Cache replacement policy to mitigate pollution in multicore processors
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
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
JPH03232034A (ja) キャッシュ制御装置
JPH04288647A (ja) キャッシュメモリにおける置き換え制御装置
JPH01251252A (ja) キャッシュメモリ