JP2000200221A - キャッシュメモリ装置及びその制御方法 - Google Patents

キャッシュメモリ装置及びその制御方法

Info

Publication number
JP2000200221A
JP2000200221A JP11285512A JP28551299A JP2000200221A JP 2000200221 A JP2000200221 A JP 2000200221A JP 11285512 A JP11285512 A JP 11285512A JP 28551299 A JP28551299 A JP 28551299A JP 2000200221 A JP2000200221 A JP 2000200221A
Authority
JP
Japan
Prior art keywords
way
freeze
information
lru
cache 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
JP11285512A
Other languages
English (en)
Inventor
Yasuhiko Saito
靖彦 斎藤
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP11285512A priority Critical patent/JP2000200221A/ja
Priority to EP99121146A priority patent/EP0997821A1/en
Priority to CN99122311A priority patent/CN1255675A/zh
Publication of JP2000200221A publication Critical patent/JP2000200221A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

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)【要約】 【課題】 簡素な回路構成を備えながらも、キャッシュ
メモリのスループットを低下させることなく2以上のウ
エイを対象に円滑なフリーズ処理が実行でき、ニーズに
対応したキャッシュメモリ機能が実現できるキャッシュ
メモリ装置及びその制御方法を提供する。 【解決手段】 LRUデコード方式を採用し、Nを2以
上の整数としたNウエイ・セット・アソシアティブ方式
のキャッシュメモリ装置11は、キャッシュメモリの各
ウエイのアクセス履歴情報を記憶するLRUメモリ部3
5と、各ウエイのフリーズ情報を記憶するフリーズメモ
リ部36と、記憶されたアクセス履歴情報を修正するこ
となく該アクセス履歴情報とフリーズ情報とに基づい
て、特定のウエイをフリーズするためのリプレース信号
を生成するリプレース判定部37とを備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
装置及びその制御方法に関し、特に、フリーズ機能を改
善したキャッシュメモリ装置及びその制御方法に関す
る。
【0002】
【従来の技術】コンピュータシステムの分野における大
容量の主記憶装置は、その動作速度がマイクロプロセッ
サの動作速度に比して遅い。このため、最近のマイクロ
プロセッサでは、例えばSRAM(Static Random Acce
ss Memory)等から成る小容量で高速なキャッシュメモ
リをマイクロプロセッサの内部、もしくはその近傍に配
置し、データの一部をキャッシュメモリに記憶すること
によって、マイクロプロセッサの速度を低下させること
なく作動させている。
【0003】上記コンピュータシステムでは、中央処理
装置からキャッシュメモリへのリードアクセス又はライ
トアクセスがミスヒットした場合に、主記憶装置から新
たに読み出したデータの一部が、エントリ(登録項目)
としてキャッシュメモリの空きブロックに格納される。
このとき、空きブロックが存在しない場合には、複数の
ブロックのいずれか1つを選択し、選択されたブロック
に格納されているエントリを主記憶装置に戻してブロッ
ク内を空き状態にし、この空きブロックに新たに読み出
したデータを格納するエントリ置換処理が必要になる。
【0004】上記エントリ置換処理では、最も以前に参
照したデータを格納しているブロックを選択する手法、
即ち、LRU(Least Recently Used)デコード方式が
一般的に採用されている。このLRUデコード方式によ
ってキャッシュメモリの使用効率が向上し、その結果、
マイクロプロセッサの実行速度が向上する。
【0005】しかし、マイクロプロセッサが処理するプ
ログラムの中には、アクセス頻度は少ないものの、ひと
たび起動された場合には高速に処理しなければならない
ような特殊な処理も存在する。例えば、自動車の制御用
にマイクロプロセッサを使用し、表示パネルの制御やブ
レーキの制御を行う場合を考える。
【0006】表示パネルの制御は、運転中であれば速度
や走行距離などの状況が時々刻々と変化するので、絶え
ず所定のプログラムが実行される。これに対して、急ブ
レーキをかけたときにタイヤがロックされないように制
御するプログラムは、それほど頻繁に処理されることは
ない。従来のキャッシュメモリを使用した場合、表示用
プログラムはキャッシュメモリに取り込まれるが、ブレ
ーキ制御用プログラムは取り込まれている確率が低くな
る。このため、急ブレーキをかけても、ブレーキ制御用
プログラムの実行開始までに時間がかかることが予想さ
れる。
【0007】一方、走行距離を表示するプログラムは、
実行に多少時間がかかっても問題とならないにも拘わら
ず、キャッシュメモリを占有することになり、キャッシ
ュメモリの利用効率を悪くし、或いは、プログラム全体
の処理速度を低下させるという問題を引き起こす。
【0008】上記問題を解決するため、キャッシュメモ
リにフリーズ機能やパージ機能を設けることが知られて
いる。フリーズ機能は、アクセス頻度は少ないものの、
ひとたび起動された場合には高速に処理しなければなら
ないようなプログラムを予めキャッシュメモリ内にコピ
ーしておき、その領域を書き換え禁止にしておく機能で
ある。この機能を有することで、コンピュータシステム
は、必要なときに所定のプログラムをキャッシュメモリ
から読み出して実行することができ、これにより実行時
間が短縮する。
【0009】逆に、パージ機能は、アクセス頻度は多い
が、実行速度がそれほど要求されないようなプログラム
をキャッシュメモリ内に保存しておくことなく、その領
域を解放する機能である。この機能を有することで、キ
ャッシュメモリに余裕ができ、優先度の高い他のプログ
ラムやデータをキャッシュメモリに取り込むことがで
き、これにより、キャッシュメモリの利用効率が向上
し、総合的な実行時間が短縮する。
【0010】従来のセット・アソシアティブ・キャッシ
ュで、1ウエイのみのフリーズを可能にした半導体記憶
装置が、特開平6−110787号公報に記載されてい
る。図13は、この公報に対応する半導体記憶装置のフ
リーズ制御部分の構成を示すブロック図である。
【0011】図13に示すように、フリーズ制御部分
は、タグメモリ51、データメモリ52、パージ・フリ
ーズレジスタ43、LRUパージ・フリーズ制御部4
2、LRUメモリ優先順位情報更新制御部44、LRU
メモリ40、アドレスコンパレータ57、制御部58、
及びセレクタ59を備えている。
【0012】タグメモリ51は、ウエイ51A〜51D
を有し、キャッシュデータのキャッシュメモリにおける
記憶アドレスをそのデータとして記憶するもので、本来
のタグデータの他にバリッドビットが追加されている。
データメモリ52は、ウエイ52A〜52Dを有し、キ
ャッシュデータを記憶するものであり、高速アクセスが
可能なSRAM等の半導体メモリで構成されている。
【0013】パージ・フリーズレジスタ43は、CPU
の指示に従って、データメモリ52に記憶されたデータ
を無効化(パージ)するか書換え禁止(フリーズ)にす
るかを設定するとともに、CPUが指定する優先順位を
設定する。LRUパージ・フリーズ制御部42は、パー
ジ・フリーズレジスタ43に設定されたデータを用い
て、LRUアルゴリズムに基づきタグメモリ51のバリ
ッドビットの書換えを行なう。
【0014】LRUメモリ優先順位情報更新制御部44
は、LRUパージ・フリーズ制御部42の制御により、
LRUメモリ40に記憶された優先順位情報の書換えを
行なう。LRUメモリ40は、優先順位情報を記憶す
る。アドレスコンパレータ57は、CPUやDMAコン
トローラから与えられるアドレスと、このアドレスに従
ってタグメモリ51から読み出されたアドレスデータと
を比較し、キャッシュヒットか否かを判定する。
【0015】制御回路58は、アドレスコンパレータ5
7の比較結果、LRUメモリ40から出力された優先順
位情報、及び、外部からのタイミング制御用のリードイ
ネーブル信号等に応答して、キャッシュメモリ52やセ
レクタ59の入出力を制御する。セレクタ59は、外部
からのデータをキャッシュメモリ52のどのウエイに入
力するか、又はどのウエイのデータを出力するかを切り
換える。
【0016】次に、上記公報に記載の半導体記憶装置の
動作について説明する。CPU、DMAコントローラ等
によりアドレスが外部から与えられると、このアドレス
は、タグメモリ51に与えられ、ここでデータメモリ5
2のアドレスに変換されるとともに、アドレスコンパレ
ータ57に入力される。
【0017】また、各データの優先順位情報は、LRU
メモリ40に記憶される。アドレスコンパレータ57
は、外部から入力されたアドレスとタグメモリ51のア
ドレスとを比較し、CPUのリード動作においてキャッ
シュヒットかミスヒットかを判定する。キャッシュヒッ
トであれば、データメモリ52のデータを外部のCPU
に出力し、ミスヒットであれば、主記憶装置(図示せ
ず)の記憶内容をデータメモリ52に読み込む。
【0018】また、CPUからのパージ・フリーズ命令
及びCPUの命令に応じて指定する優先順位は、パージ
・フリーズレジスタ43に書き込まれる。LRUパージ
・フリーズ制御部42は、優先順位の情報に従って、L
RUメモリ優先順位情報更新制御部44を制御すること
により、LRUメモリ40内の優先順位情報を操作し、
最適なパージ・フリーズ状態を自動的に設定する。パー
ジ処理の場合、LRUパージ・フリーズ制御部42は、
タグメモリ51内にあるバリッドビットを同時に操作
し、タグアドレスに対応するデータを無効にする。
【0019】図14は、LRUパージ・フリーズ制御部
42のフリーズ処理を示す流れ図である。まず、フリー
ズの対象となる優先順位をパージ・フリーズレジスタ4
3から読み出す(ステップS1)。次に、図示しないL
RUメモリの全エントリから順に優先順位情報を読み出
し(ステップS2)、該当する優先順位のウエイが必ず
他のウエイよりも高い優先順位となるように設定する
(ステップS3、S4)。
【0020】ただし、その際、優先順位が高くなるよう
に毎回設定するのではなく、優先順位情報を読み出すと
きにのみ疑似的に優先順位が高いかのようにみせる処理
を施す。例えば、ウエイAにフリーズしておきたいデー
タがあるとき、ウエイDがヒットしたとしてもウエイA
の優先順位を疑似的に高めておくことにより、ウエイA
のデータにプロテクトをかけることができる。これは、
使用しないデータは優先順位が自動的に下がるというハ
ードウエア上の制約があるからである。
【0021】一方、LRUパージ・フリーズ制御部42
のパージ処理では、まず、パージの対象となる優先順位
をパージ・フリーズレジスタ43から読み出す。次に、
LRUメモリの全エントリから優先順位情報を順に読み
出し、該当する優先順位のウエイが最下位の優先順位と
なるように優先順位情報を操作し更新する。更に、タグ
メモリ51内にあるバリッドビット(有効ビット)をイ
ンバリッドにし、該当するデータを無効にする。
【0022】以上のような記憶制御手順を実行すること
により、図15における斜線を付した部分、即ち、この
例では、ウエイ52A、52B、52Cのうちの優先順
位3に該当するエントリ52Bb、52Bc、52C
a、…のみをパージ/フリーズすることができ、上述し
た頻繁に参照されるデータ群のようなデータのみをパー
ジ/フリーズすることが可能となる。図15は、従来の
各記憶データの優先順位を考慮したパージ/フリーズ制
御の概要を示す図である。
【0023】このように、上記公報に記載の半導体記憶
装置では、LRU制御によってフリーズ命令を考慮して
おり、パージ/フリーズ命令と指定する優先順位とがパ
ージ・フリーズレジスタ43に書き込まれると、LRU
パージ/フリーズ制御部42が、LRUメモリ優先順位
情報の更新制御部44を制御することによって、LRU
メモリ40内の優先順位情報を操作し、所定のパージ/
フリーズ状態を設定する。
【0024】
【発明が解決しようとする課題】上記従来の半導体記憶
装置では、優先順位情報を読み出すときにのみ所定の処
理を施せばよいものの、その都度に、LRUメモリ40
内の全エントリに対して優先順位を書き換える処理を行
わなければならない。また、CPUがキャッシュメモリ
の所定のアドレスをアクセスしてミスヒットした場合、
キャッシュメモリは、LRUメモリ40を参照して、最
も古くアクセスされたウエイを選択し、この選択したウ
エイのデータメモリ52に新しいデータを書き込むとと
もに、LRUメモリ40の記憶内容を書き換える。
【0025】図15に示すように、LRUメモリ40
は、エントリ40a、40b、40c・・・を有してい
る。また、データメモリ52のウエイ52Aはエントリ
52Aa〜52Ac、ウエイ52Bはエントリ52Ba
〜52Bc、ウエイ52Cはエントリ52Ca〜52C
cを夫々有している。例えば、エントリ40bのウエイ
B(WAY−B)をフリーズして、LRUメモリ40を
C>A>Bとなるように書き換えたとする。この場合、
Cが最も最近にアクセスされたものであり、Bが最も古
くアクセスされたことを示す。この後に、ミスヒットが
生じた場合、WAY−Bに新しいデータが書き込まれる
ことになり、優先度の高いWAY−Cが書き換えられる
ことはない。このとき、WAY−Bが直近にアクセスさ
れたことになるので、キャッシュメモリはLRUメモリ
40を書き換えて、B>C>Aとする。
【0026】このように、上述のフリーズ処理を行って
いても、ミスヒットするたびにLRUメモリ40の内容
が書き換えられるので、ミスヒットのたびにフリーズ処
理を実行しなければ、ウエイ数に相当する回数のミスヒ
ットの発生により、フリーズ処理したはずの記憶内容が
消えることになる。逆に、ミスヒットするたびにフリー
ズ処理を実行することにすると、エントリ数に相当する
回数のフリーズ処理を実行しなければならないので、キ
ャッシュメモリに余分な負荷がかかり、キャッシュメモ
リのスループットが低下するという問題を引き起こす。
【0027】上記問題を回避するため、前述の公報に記
載の半導体記憶装置では、LRUメモリ40に記憶する
ウエイのアクセス履歴の数を(総ウエイ数−1)に制限
している。例えば4ウエイのときには、3ウエイ分だけ
のアクセス履歴を記憶するように構成されている。この
ため、アクセス履歴が最も古くなっても、3番目より古
くなることはないので、フリーズ処理したウエイが他の
データで置き換えられることはない。しかし、これは、
ミスヒットした場合、残りの1ウエイのみを使って書き
換えることを意味しており、複数のウエイを設けた本来
の価値が発揮できない。
【0028】例えば、図15では、WAY−A〜WAY
−Cまでのアクセス履歴をLRUメモリ40に記憶し、
残りのWAY−Dのアクセス履歴については何ら考慮し
ないようになっている。従って、WAY−A〜WAY−
Cのいずれかのウエイがヒットした場合には、アクセス
履歴を書き換えるが、WAY−Dがヒットした場合の処
理については何ら考慮されていない。仮に、WAY−A
〜WAY−Dのいずれにもヒットしなかった(ミスヒッ
トした)場合、上記従来の半導体記憶装置では、上述の
理由により、WAY−A〜WAY−Cを書き換えること
ができないので、WAY−Dに新しいデータを取り込む
と推察される。言い換えれば、4ウエイのキャッシュメ
モリでありながら、1ウエイのキャッシュメモリとして
のみ機能することになる。これは、データのヒット確率
を低下させるとともに、CPUからみたデータのスルー
プットを著しく低下させることになる。
【0029】更に、複数ウエイのうち1ウエイのみのフ
リーズ処理にしか対応できないので、複数ウエイにまた
がるような中規模のプログラムをキャッシュメモリに取
り込みたい場合、中規模のプログラム複数の一部分のみ
フリーズ処理することになる。このため、残りのプログ
ラム部分は、必要なときに再度取り込まなければなら
ず、十分なフリーズ機能を果たせない。
【0030】本発明は、上記に鑑み、簡素な回路構成を
備えながらも、キャッシュメモリのスループットを低下
させることなく2以上のウエイを対象に円滑なフリーズ
処理が実行でき、ニーズに対応したキャッシュメモリ機
能が実現できるキャッシュメモリ装置及びその制御方法
を提供することを目的とする。
【0031】本発明は更に、上記目的を達成した上で、
複数のウエイを対象としたフリーズ処理を可能とし、比
較的規模が大きいデータでも格納が可能となるキャッシ
ュメモリ装置を提供することを目的とする。
【0032】
【課題を解決するための手段】上記目的を達成するため
に、本発明のキャッシュメモリ装置は、LRUデコード
方式を採用し、Nを2以上の整数としたNウエイ・セッ
ト・アソシアティブ方式のキャッシュメモリ装置におい
て、キャッシュメモリの各ウエイのアクセス履歴情報を
記憶するLRUメモリと、各ウエイのフリーズ情報を記
憶するフリーズメモリと、記憶されたアクセス履歴情報
を修正することなく該アクセス履歴情報と前記フリーズ
情報とに基づいて、特定のウエイをフリーズするための
リプレース信号を生成するリプレース判定手段とを備え
ることを特徴とする。
【0033】本発明のキャッシュメモリ装置では、アク
セス履歴情報の書込み後にLRUメモリから読み出した
アクセス履歴情報とフリーズメモリから読み出したフリ
ーズ情報とに基づいてリプレース信号を生成する。この
ため、従来の半導体記憶装置の場合のようにアクセス履
歴情報(ライトデータ)の書換えの度にパージ・フリー
ズレジスタを参照してヒット情報を加味しつつ行うよう
な処理が不要となり、複数種類のフリーズ情報を適宜選
択することで、複数ウエイに対応するリプレース信号が
容易に生成できる。これにより、キャッシュメモリのス
ループットを低下させず2以上のウエイを対象とした円
滑なフリーズ処理が可能になり、ニーズに応じたキャッ
シュメモリ機能を簡素な回路構成で得ることが可能とな
る。また、LRUの元データを破棄することがないの
で、フリーズ状態を解除したとき、それまでのアクセス
履歴に基づいた通常のLRU方式に直ちに復帰できる。
【0034】ここで、前記リプレース判定手段が、前記
フリーズ情報と前記アクセス履歴情報とを取り込んで中
間情報を生成するフリーズ制御回路と、前記フリーズ制
御回路からの前記中間情報に対応して前記リプレース信
号を生成するLRUデコード回路とを備えることが好ま
しい。この場合、リプレース判定手段を簡素な回路構成
で実現することができる。
【0035】また、前記フリーズ情報としてN−1ウエ
イに対応する記憶容量を備えることが好ましい。この場
合、Nウエイの内の1ウエイのみをリプレース対象とし
て残し、他のウエイを全てフリーズ対象とすることがで
きるので、従来に比して書換え回数が大幅に減少する。
例えば、1つのサブルーチンを1ウエイ相当のメモリに
格納しようとしてもデータ量が多くて格納できないよう
な場合でも、N−1のウエイの活用が実現することによ
り、複数のウエイを対象としたフリーズ処理が可能とな
り、比較的規模が大きいデータでも格納することが可能
となる。
【0036】更に好ましくは、前記リプレース信号が、
各ウエイに夫々対応して出力されるビット値から成る。
この場合、LRUデコード回路を簡素な回路構成から得
ることができる。
【0037】本発明のキャッシュメモリ装置の制御方法
は、LRUデコード方式を採用し、Nを2以上の整数と
したNウエイ・セット・アソシアティブ方式のキャッシ
ュメモリ装置を制御する制御方法において、キャッシュ
メモリの各ウエイのアクセス履歴情報を記憶し、キャッ
シュメモリの各ウエイのフリーズ情報を記憶し、記憶さ
れた前記アクセス履歴情報を修正することなく該アクセ
ス履歴情報と前記フリーズ情報とに基づいてリプレース
対象のウエイを算出することを特徴とする。
【0038】本発明のキャッシュメモリ装置の制御方法
では、アクセス履歴情報の書込み後に読み出したアクセ
ス履歴情報とフリーズ情報とに基づいてリプレース対象
のウエイを算出するので、複数種類のフリーズ情報を適
宜選択することで、複数ウエイに対応するリプレース信
号を容易に生成することができ、ニーズに応じたキャッ
シュメモリ機能が実現できる。また、LRUの元データ
を破棄することがないので、フリーズ状態を解除したと
き、それまでのアクセス履歴に基づいた通常のLRU方
式に直ちに復帰できる。
【0039】ここで、本発明では、前記アクセス履歴情
報と前記フリーズ情報とに基づいてリプレース対象のウ
エイを算出する際に、前記フリーズ情報に対応して前記
アクセス履歴情報を中間情報に変換した後にリプレース
対象のウエイを算出することが好ましい。この場合、既
に設計済みのキャッシュメモリ装置の資産を継承しなが
ら、簡単な論理回路を付加するだけで、フリーズ機能付
きのキャッシュメモリ装置を実現できる。また、LRU
の元データを破棄することがないので、フリーズ状態を
解除したとき、それまでのアクセス履歴に基づいた通常
のLRU方式に即座に復帰できる。
【0040】更に好ましくは、前記アクセス履歴情報と
前記フリーズ情報とに基づいてリプレース対象のウエイ
を算出する際に、Nウエイのアクセス順序を最近アクセ
スされたウエイから順に並べたとき、フリーズ対象のウ
エイが1乃至N−1のいずれかのアクセス順序になるよ
うな中間情報を生成した後にリプレース対象のウエイを
算出する。この場合、LRUの機能を損なうことなく、
リプレース対象のウエイを算出することができる。
【0041】具体的には、ウエイAに対するウエイBの
アクセス順序を表すアクセス履歴情報をW[A,B]と
し、ウエイA及びウエイBのフリーズ情報を夫々FRZ
[A]及びFRZ[B]とするとき、前記中間情報とし
てのM[A,B]への変換が、 M[A,B]= W[A,B]+FRZ[A] (但し、0≦A
<B=(N-1)) M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] (但し、0≦A<B<(N-1)であり、!FRZ[]はFRZ[]
の反転値を示す)に基づいて行われる。この場合、簡単
な論理で、フリーズ対象のウエイがリプレース対象のウ
エイにならないように変換処理することができるので、
小規模な論理回路を追加するだけでフリーズ機能付きの
キャッシュメモリ装置が実現できる。
【0042】具体的には、リプレース対象のウエイをX
とするとき、該ウエイXの算出は、次式
【数2】 に基づいて行われる。この場合、上記中間情報を生成す
ることにより、従来のリプレース対象ウエイの算出回路
をそのまま利用することも可能となる。
【0043】
【発明の実施の形態】図面を参照して本発明を更に詳細
に説明する。図1は、本発明の一実施形態例におけるコ
ンピュータシステムの構成を示すブロック図である。
【0044】本実施形態例におけるコンピュータシステ
ムは、CPU10と、コピーバック方式を採用したキャ
ッシュメモリ装置11と、バスコントロールユニット
(以下、BCUと呼ぶ)12と、主記憶装置14と、シ
ステムバス13とから概略構成されている。ここでは、
LRUアルゴリズムに基づく4ウエイ・セット・アソシ
アティブ方式のキャッシュメモリ装置11を例に説明す
るが、本発明は4ウエイに限定されるものではない。
【0045】CPU10は、コンピュータシステムの各
部を制御してデータ処理を行うと共に、キャッシュメモ
リ装置11に対し、所定のアドレス信号ADを供給し
て、所望の命令やデータ等(以下、記憶データと呼ぶ)
の授受を行う。
【0046】キャッシュメモリ装置11は、要求された
アドレス信号ADに対応する記憶データDTM[]が自
己装置内に存在するとき(以下、ヒットと呼ぶ)、CP
U10に対して記憶データDTを供給する。
【0047】一方、要求されたアドレス信号ADに対応
する記憶データDTM[]が自己装置内に存在しないと
き(以下、ミスヒットと呼ぶ)、キャッシュメモリ装置
11は、当該記憶データDTM[]を主記憶装置14か
ら取得するために、BCU12に対しアドレス信号BA
Dを送ってメモリリードサイクルの発行を要求する。こ
こで、各信号名の後の[]内にはウエイの番号が入る
が、その記載を省略している。
【0048】BCU12は、システムバス13を介して
アドレス信号BADを主記憶装置14に送り、主記憶装
置14から記憶データBDTを取得する。その後、BC
U12は、キャッシュメモリ装置11に記憶データBD
Tを供給し、キャッシュメモリ装置11は、記憶データ
BDTを、所定の場所に記憶するとともにCPU10に
対して供給する。同時に、キャッシュメモリ装置11
は、読み込んだ記憶データBDTを自装置内に記憶す
る。このとき、自装置内に書き込む領域が空いていない
ときには、前回のアクセス履歴が最も古いウエイの記憶
データを主記憶装置14に書き戻し(コピーバック)し
てから、新たに読み出した記憶データBDTで書き換え
る。
【0049】このようにして、CPU10は、所望のア
ドレスの記憶データをキャッシュメモリ装置11との間
で授受することができる。
【0050】図1に示すように、キャッシュメモリ装置
11は、タグメモリ部31、比較部32、データメモリ
部33、セレクタ部34、LRU部35、フリーズメモ
リ部36、リプレース判定回路37、及びコントローラ
38から概略構成されている。
【0051】本実施形態例では、主記憶装置14の記憶
容量を1MB(Bはバイトを意味する)であるとし、デ
ータメモリ部33の記憶容量を1kBであるとする。デ
ータメモリ部33は4個のウエイから成り、各ウエイは
夫々64個のエントリに分割され、各エントリは4B
(32ビット)の記憶データDTM[]を記憶してい
る。1ウエイの記憶容量は256B(=64×4)であ
り、4ウエイでは1kBとなる。そして、主記憶装置1
4もこのようなデータメモリ部33の構成に対応して、
256B毎の4096(1MB/256B)個のブロッ
クに分割されている。
【0052】各記憶データDTM[]をアクセスするた
めにCPU10から供給されるアドレス信号ADのビッ
ト長は20ビットであり、下位2ビット{1:0}は、
4バイトのデータのうち1バイトを選択するためのバイ
トアドレスである。また、アドレス信号ADの中位6ビ
ット{7:2}は、64個のエントリのいずれか1つを
選択するためのインデックスアドレスIADであり、上
位12ビット{19:8}は、主記憶装置14の409
6個あるブロックのいずれか1つを選択するためのタグ
アドレスTADである。
【0053】タグメモリ部31は、各ウエイの各エント
リに対応するタグアドレスTADと、主記憶装置14と
データメモリ部33との記憶内容が一致しているか否か
を示すダーティビットDRTとを記憶している。タグメ
モリ部31は、コントローラ38が供給するアドレス信
号ADTの中位6ビットのインデックスアドレスIAD
Tに基づいてタグメモリをアクセスし、そこに記憶され
ているタグアドレスTADを比較部32に出力する。ミ
スヒットして新たな記憶データDTM[]がデータメモ
リ部33に取り込まれたときには、タグメモリ部31
は、新しいタグアドレスTADを所定のウエイと所定の
エントリに対応した位置に記憶する。
【0054】また、データメモリ部33の記憶内容を更
新する前に、コントローラ38はタグメモリ部31から
ダーティビットDRTO[]を読み取り、DRTO[]
が“1”であれば、キャッシュメモリ内部のデータを追
い出し、データメモリ部33の記憶データDTM[]を
主記憶装置14にコピーバックする。ダーティビットD
RTO[]が“0”であれば、コントローラ38は新た
な記憶データDTM[]でデータメモリ部33を上書き
する。
【0055】比較部32はウエイ数分の比較回路を有す
る。各比較回路は、コントローラ38から出力されるア
ドレス信号ADTの上位12ビットのタグアドレスTA
Dと、タグメモリ部31から出力されるタグアドレスT
AM[]とを比較して、一致した場合にはヒット信号
(HIT)として“1”を出力し、不一致の場合にはミ
スヒット信号として“0”を出力する。ここで、各ウエ
イ0〜3に対応したヒット信号を夫々HIT[0]〜H
IT[3]とする。
【0056】データメモリ部33は、64エントリ×4
ウエイ分の記憶データDTM[]を有しており、インデ
ックスアドレスIADDが入力されると、そのアドレス
に対応した4ウエイ分の記憶データDTM[]を出力又
は入力する。
【0057】セレクタ部34は、ヒット信号HIT[]
に対応した選択信号DSL[]により、データメモリ部
33から読み出された記憶データDTM[]のうちでヒ
ットしたウエイの記憶データDTM[]を選択し、DT
D[]としてコントローラ38に出力し、或いは、リプ
レース信号OUT[]に対応した選択信号DSL[]に
より、コントローラ38から供給される記憶データDT
D[]を置き換えるウエイを選択してデータメモリ部3
3に出力する。
【0058】LRUメモリ部35は、データメモリ部3
3内の各ウエイにアクセスした順序である履歴情報を各
エントリ毎に記憶しており、コントローラ38から供給
されるインデックスアドレスIADLが入力されると、
そのアドレスに対応した6ビットの履歴情報W[]を出
力する。キャッシュにヒットした場合、比較部32から
ヒット信号HIT[]が出力されるたびに、コントロー
ラ38からヒット信号HIT[]に対応した新規アクセ
スウエイ信号NAW[]がLRUメモリ部35に供給さ
れる。これに基づいてLRUメモリ部35は、新たな履
歴情報としてLRUメモリ内の記憶内容を更新する。こ
のときは、NAW[n]=HIT[n](n=0〜3)
である。
【0059】一方、ミスヒットしたとき、LRUメモリ
部35は、リプレース信号OUT[]に対応した新規ア
クセスウエイ信号NAW[]がコントローラ38から供
給される。これに基づいてLRUメモリ部35は、LR
UメモリからインデックスアドレスIADTに対応する
履歴情報を読み出し、最も過去にアクセスされたウエイ
の情報DSL[]をセレクタ部34に出力し、そのウエ
イのデータメモリ部33に新たな記憶データDTM[]
を書き込む。このときは、NAW[n]=OUT[n]
(n=0〜3)である。
【0060】フリーズメモリ部36は、各エントリ毎に
該当ウエイのフリーズの有無を記憶しており、コントロ
ーラ38から供給されるインデックスアドレスIADL
が入力されると、そのアドレスに対応した3ビットのフ
リーズ情報FRZ[]を出力する。また、フリーズメモ
リ部36は、コントローラ38からフリーズ書込データ
(FRZライトデータ)FW[]とフリーズ書込許可信
号(FRZライトイネーブル信号)FE[]とが入力さ
れると、インデックスアドレスIADLに対応した位置
にフリーズ情報FRZ[]を書き込む。3ビットのFR
Z[]は、4つのウエイのうち任意の3ウエイに対応さ
せることができる。以下の説明では、ウエイ0〜2をフ
リーズ可能なウエイとして、これらのフリーズ情報をF
RZ[0]〜FRZ[2]に夫々対応させている。
【0061】リプレース判定部37は、LRUメモリ部
35から出力される履歴情報W[]と、フリーズメモリ
部36から出力されるフリーズ情報FRZ[]とに基づ
いて、どのウエイを新たな情報で置き換えるかを表すリ
プレース信号OUT[]を出力する。リプレース信号O
UT[]は、各ウエイ0〜3に対応してOUT[0]〜
OUT[3]がある。
【0062】次に、キャッシュメモリ装置11の全体的
な動作を図1を参照して説明する。
【0063】[キャッシュ・ヒット動作]CPU10か
ら供給されたアドレス信号ADは、一旦、コントローラ
38に保持される。アドレス信号ADのうち中位6ビッ
トのインデックスアドレスIADD及びIADTが夫
々、データメモリ部33及びタグメモリ部31に供給さ
れる。この場合、インデックスアドレスIADDとIA
DTとは同一の値である。このインデックスアドレスI
ADTに対応するタグメモリ部31の内容が各ウエイ0
〜3から読み出され、比較部32内の4つの比較回路に
夫々入力される。これと同時に、インデックスアドレス
IADDに対応する4ウエイ分の記憶データDTM[]
がセレクタ部34に読み出される。
【0064】一方、コントローラ38から出力されたア
ドレス信号ADTのうち、タグアドレスTADは、比較
部32のもう一方の入力端子に入力され、タグメモリ3
1から読み出されたタグアドレスTAM[]と比較され
る。比較部32は、4ウエイのうちいずれか1つのウエ
イが一致したことを示す信号HIT[]=“1”を出力
する。その他のウエイに対応するヒット信号HIT[]
は“0”(ミスヒット)となる。
【0065】コントローラ38は、上記HIT[]に基
づいて選択信号DSL[]と新規アクセスウエイ信号N
AW[]とを生成し、選択信号DSL[]をセレクタ部
34に、新規アクセスウエイ信号NAW[]をLRUメ
モリ部35に夫々供給する。セレクタ部34は、選択信
号DSL[]に対応するウエイの記憶データDTM[]
を選択し、CPU10に対して出力する。
【0066】その後、LRUメモリ部35は、ヒット信
号HIT[]に対応する新規アクセスウエイ信号NAW
[]に基づいて、ヒットしたウエイのアクセスが最近さ
れたかのように履歴情報を書き換える。このとき、NA
W[]=HIT[]である。
【0067】[キャッシュ・ミスヒット動作]次に、ミ
スヒットした場合の動作を説明する。比較処理まではヒ
ット時と同じである。
【0068】比較部32が、4ウエイのうちいずれのウ
エイも一致しなかったことを示す信号HIT[0]〜H
IT[3]=“0”を出力すると、コントローラ38は
保持していたアドレス信号BADをBCU12に送り、
BCU12はそのアドレスBADに対応する記憶データ
BDTを主記憶装置14から読み出す。
【0069】コントローラ38は、記憶データBDTの
読出しと同時に、アドレス信号BADに対応したインデ
ックスアドレスIADLをLRUメモリ部35とフリー
ズメモリ部36とに出力する。これに応答して、LRU
メモリ部35が履歴情報W[]を、フリーズメモリ部3
6がフリーズ情報FRZ[]をリプレース判定部37に
夫々出力する。リプレース判定部37は、履歴情報
W[]とフリーズ情報FRZ[]とに基づいてリプレー
ス信号OUT[]を算出し、コントローラ38に出力す
る。これにより、コントローラ38は、リプレース信号
OUT[]に対応した選択信号DSL[]をセレクタ部
34に供給する。
【0070】BCU12を介して読み出された記憶デー
タBDTは、コントローラ38に入力され、CPU10
に対して出力される。また、コントローラ38は、アド
レス信号BADに対応するインデックスアドレスIAD
Dをデータメモリ部33に供給するとともに、記憶デー
タBDTをDTDとしてセレクタ部34に供給する。こ
のとき、コントローラ38は、タグメモリ部31に含ま
れるダーティビット情報DRTO[]を確認し、データ
メモリ部33の記憶内容が主記憶装置14の記憶内容と
異なるときには、データメモリ部33の記憶内容を主記
憶装置14に書き戻す。その後、セレクタ部34が、デ
ータメモリ部33内の選択信号DSL[]で指定された
ウエイに記憶データDTM[](=DTD)を出力す
る。データメモリ部33は、インデックスアドレスIA
DDで指定された位置に記憶データDTM[]を記憶す
る。
【0071】次いで、コントローラ38は、書き換えた
ウエイの情報である新規アクセスウエイ信号NAW[]
をLRUメモリ部35に出力する。LRUメモリ部35
は、NAW[]に基づいて、書き換えたウエイのアクセ
スが最近されたかのように履歴情報を書き換える。ここ
では、NAW[n]=OUT[n](n=0〜3)であ
る。
【0072】以上は、キャッシュメモリ装置11から記
憶データを読み出す場合を説明したが、書き込む場合
も、ほぼ同様に行われる。
【0073】次に、LRUメモリ部35の基礎技術につ
いて詳細に説明する。まず、LRUメモリが記憶してい
る履歴情報について説明する。図2は、Nウエイ分のア
クセス履歴を示す模式図であり、(a)はN=2の場
合、(b)はN=3の場合、(c)はN=4の場合、
(d)はN=5の場合を夫々示す。各図において、矢印
の基点側に位置するウエイが矢印の終端側に位置するウ
エイよりも最近にアクセスされたとき、LRUメモリに
“0”を記憶し、アクセスの順序関係が逆の場合には
“1”を記憶する。
【0074】図2(a)における2ウエイでは、LRU
メモリは、1ビットの履歴情報×エントリ数のメモリで
構成される。例えば、履歴情報W[0,1]に“0”が記憶
されているとき、LRUメモリ部35は、ウエイ1がウ
エイ0よりも最新アクセスされたと判定し、逆に、履歴
情報W[0,1]に“1”が記憶されているとき、ウエイ0
がウエイ1よりも最新アクセスされたと判定する。
【0075】また、履歴情報W[0,1]に“0”が記憶さ
れているときに、ウエイ0がヒットすると、履歴情報W
[0,1]は“1”に書き換えられ、ウエイ1がヒットす
ると、履歴情報W[0,1]は“0”のままである。逆に、
履歴情報W[0,1]に“1”が記憶されているときに、ウ
エイ1がヒットすると、履歴情報W[0,1]は“0”に書
き換えられ、ウエイ0がヒットすると、履歴情報W[0,
1]は“1”のままである。
【0076】図2(b)における3ウエイでは、LRU
メモリは、3ビットの履歴情報W[0,1]、W[0,2]、W
[1,2]を記憶している。例えば、各ウエイが「2←1
←0」の順にアクセスされたとき、LRUメモリは、履
歴情報(W[0,1]、W[0,2]、W[1,2])として、
(0,0,0)を記憶している。即ち、ウエイ0よりも
ウエイ1の方が最近アクセスされているのでW[0,1]は
“0”であり、ウエイ0よりもウエイ2の方が最近アク
セスされているのでW[0,2]は“0”であり、ウエイ1
よりもウエイ2の方が最近アクセスされているのでW
[1,2]は“0”である。
【0077】この状態でウエイ1がヒットすると、アク
セス履歴は「1←2←0」となり、履歴情報(W[0,
1]、W[0,2]、W[1,2])は、(0,0,1)に書き
換えられる。即ち、ウエイ2よりウエイ1の方が最近ア
クセスされたことになるのでW[1,2]は“1”になる。
なお、3ウエイのLRUメモリの容量は、3ビットの履
歴情報×エントリ数である。
【0078】図2(c)における4ウエイ・セットアソ
シエイティブ・キャッシュのLRU方式では、LRUメ
モリ部35内のLRUメモリは、図3に示すように、6
ビットの履歴情報W[0,1]、W[0,2]、W[0,3]、W
[1,2]、W[1,3]、W[2,3]でアクセス履歴を記憶し
ている。図3は、4ウエイの全てのアクセス順序と履歴
情報の関係を、ヒットしたウエイを基準に示す履歴情報
図である。
【0079】例えば、各ウエイが「2←1←3←0」の
順にアクセスされたとき、LRUメモリは、履歴情報
(W[0,1]、W[0,2]、W[0,3]、W[1,2]、W[1,
3]、W[2,3])として、(0,0,0,0,1,1)
を記憶している。この状態でウエイ1がヒットすると、
アクセス履歴は「1←2←3←0」となり、履歴情報
(W[0,1]、W[0,2]、W[0,3]、W[1,2]、W[1,
3]、W[2,3])は、(0,0,0,1,1,1)に書
き換えられる。なお、4ウエイのLRUメモリの容量
は、6ビットの履歴情報×エントリ数である。図2
(d)における5ウエイも、同様にして10ビットの履
歴情報で記憶している。
【0080】図2(a)〜(d)の各場合において履歴情
報として夫々必要なビット数は、ウエイ数をNとしたと
き、次式
【数3】 で表され、N=2のときに1ビットとなり、N=3のと
きに1+2=3ビットとなり、N=4のときに1+2+
3=6ビットとなり、N=5のときに1+2+3+4=
10ビットとなる。
【0081】図5は、図1に示したタグメモリ部31と
比較部32との詳細な構成を示すブロック図である。タ
グメモリ部31は、TAGアドレスデコーダ61、TA
G書込み制御回路62、及び、4ウエイ分のタグメモリ
31a〜31dで構成され、比較部32は、4つの比較
回路32a〜32dで構成される。
【0082】タグメモリ31a〜31dは、各ウエイの
各エントリに対応するタグアドレスTADと、主記憶装
置14とデータメモリ部33との記憶内容が一致してい
るか否かを示すダーティビットDRTとを記憶してい
る。タグメモリ31a〜31dは、ウエイ数×エントリ
数×(アドレス線数+1ビット)分の記憶容量を有し、
本実施形態例では、4ウエイ×64エントリ×(14ビ
ット+1ビット)=3840ビットの記憶容量のSRA
M(Static Random Access Memory)で構成される。
【0083】TAGアドレスデコーダ61は、コントロ
ーラ38(図1)から供給されるアドレス信号ADTの
中位6ビットであるインデックスアドレスIADTが入
力され、これをデコードしてタグメモリ31a〜31d
のワード線(エントリに相当)の1つを活性化する。タ
グメモリ31a〜31dは、選択されたエントリのTA
G情報TAM[0]〜TAM[3]を比較部32に出力
するとともに、ダーティビットDRTO[]をコントロ
ーラ38に出力する。
【0084】TAG書込制御回路62は、コントローラ
38からインデックスアドレスIADT、選択信号DS
L[]、及び、ダーティビット書込み情報DRTI[]
が入力される。ミスヒットしたときに、TAG書込み制
御回路62は、選択信号DSL[]で指定されるウエイ
のインデックスアドレスIADTで指定されるエントリ
に、新たなタグアドレスTADを書き込むとともに、ダ
ーティビットDRTに“0”を書き込む。ヒットしたと
きには、TAG書込み制御回路62は、タグアドレスT
ADはもとのままで、ダーティビットDRTに“1”を
書き込む。
【0085】タグメモリ31a〜31dは、コントロー
ラ38(図1)が供給するアドレス信号ADTの中位6
ビットのインデックスアドレスIADTで指定されるタ
グアドレスTAM[0]〜TAM[3]を比較回路32
a〜32dに夫々出力し、TAG書込み制御回路62か
ら供給されるタグアドレスTADを記憶する。同様に、
ダーティビットDRTを読み書きする。読み出されたダ
ーティビットDRTは、ダーティビット読出情報DRT
O[]として上記のようにコントローラ38に出力され
る。
【0086】コントローラ38は、読み出したダーティ
ビット読出情報DRTO[]を確認し、DRTO[]が
“1”であれば、データメモリ部33の内容を更新する
前に、データメモリ部33(図1)の記憶データDTDを
主記憶装置14にコピーバックする。DRTO[]が
“0”であれば、コントローラ38は新たな記憶データ
DTDでデータメモリ部33を上書きする。コントロー
ラ38は更に、上記機能に加え、CPU10が出力する
アドレス信号ADTを保持して、アドレスデータの上位
ビットであるタグアドレスTADと、中位ビットである
インデックスアドレスIADと、下位ビットであるバイ
トアドレス(ワードアドレス)とを出力する。
【0087】図6は、図1に示したデータメモリ部33
の詳細な構成を示すブロック図である。データメモリ部
33は、DM(データメモリ)アドレスデコーダ64と、
4ウエイ分のデータメモリ33a〜33dとで構成さ
れ、タグメモリ31に記憶されたタグアドレスTAD
と、インデックスアドレスIADに対応する主記憶装置
14の記憶データDTとを記憶している。
【0088】データメモリ33a〜33dは、タグメモ
リ31a〜31dに記憶されたタグアドレスTADとイ
ンデックスアドレスIADDとで指定される主記憶装置
14の記憶データDTDを記憶している。このインデッ
クスアドレスIADDは、前述のインデックスアドレス
IADLと、アクセスのタイミングの点で異なる。デー
タメモリ33a〜33dは、ウエイ数×エントリ数×バ
イト数分の記憶容量を有し、本実施形態例では、4ウエ
イ×64エントリ×4バイト≒1kBの記憶容量のSR
AMで構成される。
【0089】DMアドレスデコーダ64は、コントロー
ラ38から供給されるアドレス信号の中位6ビットであ
るインデックスアドレスIADDが入力され、これをデ
コードしてデータメモリ33a〜33dのワード線(エ
ントリに相当)の1つを活性化する。データメモリ33
a〜33dは選択されたエントリの記憶データDTM
[0]〜DTM[3]をセレクタ部34に出力する。
【0090】セレクタ部34は、インデックスアドレス
で指定される位置のデータメモリ部33から読み出した
4ウエイ分の記憶データDTM[]のうち、比較回路3
2a〜32dで一致が検出されたウエイに対応する記憶
データDTM[]を1つ選択し、記憶データDTDとし
てコントローラ38に出力する。ミスヒットしてデータ
メモリ部33の内容を新しい記憶データに書き換えると
きも、同様に書き込み位置を選択して、主記憶装置14
から読み出した記憶データDTDを書き込む。
【0091】つまり、セレクタ部34は、データメモリ
33a〜33dから記憶データDTM[0]〜DTM
[3]が入力され、コントローラ38から選択信号DS
L[]が入力された際にヒットすると、選択信号DSL
[]で指定されるウエイの記憶データDTDを1つ選択
してコントローラ38に出力する。ミスヒットしたとき
には、セレクタ部34は、主記憶装置14から読み込ん
だ記憶データBDTを、選択信号DSL[]で指定され
るウエイのインデックスアドレスIADDで指定される
エントリに、新たな記憶データDTM[]として書き込
む。
【0092】コントローラ38はセレクタ65を内蔵し
ている。セレクタ65は、ヒット信号HIT[]又はリ
プレース信号OUT[]のいずれか一方を選択し、選択
信号DSL[]としてセレクタ部34に出力する。ヒッ
トしたときは、DSL[n]=HIT[n](n=0〜
3)であり、ミスヒットしたときは、DSL[n]=O
UT[n](n=0〜3)である。
【0093】図7は、図1に示したLRUメモリ部35
の詳細なブロック図である。LRUメモリ部35は、L
RUメモリ15、LRU書込データ生成回路16、LR
Uアドレスデコーダ66、及びLRU書込み制御回路6
7で構成されている。
【0094】LRUメモリ15は、各エントリ毎に、キ
ャッシュメモリの各ウエイのアクセスした順序を6ビッ
トの履歴情報W[]で記憶している。各ウエイのアクセ
ス順序と履歴情報W[]との関係は、図3及び図4に示
す通りである。図4は、図3のアクセス履歴の表示順を
並べ換えて、最も過去にアクセスされたウエイがまとま
るようにしたものである。
【0095】図7に示すように、LRUメモリ15は、
エントリ数×履歴情報数分の記憶容量を有しており、本
実施形態例では、64エントリ数×6ビット=384ビ
ットの記憶容量のSRAMで構成される。
【0096】LRUアドレスデコーダ66は、コントロ
ーラ38から供給されるアドレス信号の中位6ビットで
あるインデックスアドレスIADLが入力され、これを
デコードしてLRUメモリ15のワード線(エントリに
相当)の1つを活性化する。LRUメモリ15は、選択
されたエントリの履歴情報W[0,1]〜W[2,3]
をリプレース判定部37に出力する。
【0097】コントローラ38内のセレクタ68は、ヒ
ット信号HIT[]又はリプレース信号OUT[]のい
ずれか一方を選択し、新規アクセスウエイ情報NA
W[]としてLRU書込データ生成回路16に出力す
る。ヒットしたときは、NAW[n]=HIT[n]
(n=0〜3)であり、ミスヒットしたときは、NAW
[n]=OUT[n](n=0〜3)である。
【0098】LRU書込みデータ生成回路16は、新規
アクセスウエイ情報NAW[]に基づいて、LRUメモ
リ15の内容を更新するために、6ビットのLRUライ
トデータLW[]と、LRUライトイネーブル信号LE
[]とを生成し、LRU書込み制御回路67に出力し
て、LRUメモリ15への書込みを制御する。
【0099】いま、LRUメモリ15に対するLRUラ
イトイネーブル信号をLE[A,B]と表記し、LRU
ライトデータをLW[A,B]と表記することにする。
ウエイL(Lは0≦L≦3の整数)がヒットした場合、
LRUライトデータは、LW[A,L]=0、LW
[L,B]=1(但しA<L<B)として定義し、この
ときLRUライトイネーブル信号を、LE[A,L]=
LE[L,B]=1として定義する。LE[A,B]及
びLW[A,B]におけるA,Bは夫々にウエイを示し
ている。
【0100】LRUデコード論理では、「任意の2つの
ウエイA,Bのうち、どちらが最後に使用されたか」を
全ウエイの組み合わせに対応して保持させる必要があ
る。一般に、Nウエイの場合には、N(N-1)/2ビットの
情報で全ウエイのアクセス順を表現できることが知られ
ている。このアクセス順は、LRUメモリ部35内のL
RUメモリ15に記憶されており、アクセス順を表す6
ビットの履歴情報W[0,1]〜W[2,3]として保持されて
いる。
【0101】この履歴情報W[]は、キャッシュメモリ
がアクセスされる毎に更新され、常に最新の履歴情報に
書き換えられる。キャッシュにヒットしたときには、履
歴情報は、ヒットしたウエイが一番最近にアクセスされ
た状態となるように書き換えられ、ミスヒットしたとき
には、新しいデータに置き換えられたウエイが一番最近
にアクセスされた状態となるように書き換えられる。但
し、最近ヒットしたデータに再ヒットしたときには書き
換えなくても良い。
【0102】履歴情報を書き換えるとき、ヒット又は置
き換えられたウエイの情報がLRU書込みデータ生成回
路16に入力されると、LRU書込みデータ生成回路1
6は、表1に示すように、ヒットしたウエイに対応する
LRUライトデータLW[A,B]を生成し、LRU書
込み制御回路67を介してLRUメモリ15に出力す
る。
【0103】
【表1】
【0104】LRU書込み制御回路16は、6ビットの
LRUライトデータLW[A,B]をすべて書き込むわ
けではなく、所定の3ビットを書き換えるようにしてい
る。表2に示すLRUライトイネーブル信号LE[A,
B]によって、どのビットを書き換えるかを指定する。
なお、LE[A,B]に対応するビット値の“0”は書
込みをマスクすることを意味し、“1”は書込みを実行
することを意味する。つまり、LRU書込み制御回路1
6は、LRUライトイネーブル信号LE[A,B]が
“1”であるLRUライトデータLW[A,B]をLR
Uメモリ15に書き込む。
【0105】
【表2】
【0106】このように、ウエイLがヒットし又は書き
換えられると、LRU書込みデータ生成回路16は、表
1と表2とに従ってLW[A,B]とLE[A,B]と
を生成し、LRU書込み制御回路67は、LE[A,
B]が“1”となっている位置に対応するLRUメモリ
15の履歴情報W[A,B]のビット位置に、LW
[A,B]のビット値を書き込む。
【0107】例えば、ウエイ1がヒットした場合には、
LRUライトイネーブル信号LE[0,1]、LE[1,2]、LE
[1,3]が“1”であるので、LRU書込み制御回路6
7は履歴情報W[0,1]、W[1,2]、W[1,3]にLRUラ
イトデータ(LW[0,1]、LW[1,2]、LW[1,3])とし
て(0,1,1)を書き込む。この結果、図3の破線で
囲んだ領域に示すように、ウエイ1がヒットする前の状
態がどのような履歴であっても、履歴情報W[0,1]、W
[0,2]、W[0,3]、W[1,2]、W[1,3]、W[2,3]
は、(0,d,d,1,1,d)となる。ここで、dは
“don't care”を意味し、更新する前のビット値が保持
される。
【0108】図8は、図1に示したフリーズメモリ部3
6の詳細なブロック図を示す。フリーズメモリ部36
は、フリーズメモリ20と、FRZアドレスデコーダ6
9と、FRZ書込み制御回路70とで構成される。
【0109】フリーズメモリ20は、各エントリ毎に書
き換え禁止にするウエイの情報を3ビットのフリーズ情
報FRZ[]で記憶している。ウエイ0〜2のフリーズ
情報は夫々FRZ[0]〜FRZ[2]に対応してい
る。フリーズ情報FRZ[n]が“1”であるとき、そ
のウエイnは書き換えが禁止されていることを意味し、
“0”であるとき、そのウエイnは新規の記憶データで
書き換えが可能であることを意味する。
【0110】フリーズメモリ20は、(ウエイ数−1)
×エントリ数分の記憶容量を有し、本実施形態例では、
3ウエイ×64エントリ=192ビットの記憶容量のS
RAM(Static Random Access Memory)で構成され
る。この記憶容量は、フリーズする領域に応じて適宜変
更しても良い。例えば、4ウエイともフリーズするとき
には4×64ビットが必要であるし、また、1×64ビ
ットでも良い。
【0111】FRZアドレスデコーダ69は、コントロ
ーラ38から供給されるアドレス信号の中位6ビットで
あるインデックスアドレスIADLが入力され、これを
デコードしてフリーズメモリ20のワード線(エントリ
に相当)の1つを活性化する。フリーズメモリ20は、
選択されたエントリのフリーズ情報FRZ[0]〜FR
Z[2]をリプレース判定部37に出力する。なお、F
RZアドレスデコーダ69は、LRUアドレスデコーダ
66と共用してもよく、或いは、LRUメモリ15とF
RZメモリ20とを共通のワード線で接続したSRAM
で構成してもよい。
【0112】FRZ書込み制御回路70は、コントロー
ラ38から供給されるFRZライトデータFW[]とF
RZライトイネーブル信号FE[]とに基づいて、フリ
ーズメモリ20内のインデックスアドレスIADLで指
定される位置にフリーズ情報を書き込む。
【0113】いま、フリーズメモリ20に対するFRZ
ライトイネーブル信号をFE[A]と表記し、FRZラ
イトデータをFW[A]と表記することにする。ウエイ
K(Kは0≦K≦2の整数)をフリーズする場合、コン
トローラ38(図1)は、FRZライトデータFW
[K]=1とし、FRZライトイネーブル信号をFE
[K]=1、FE[A]=0(但し、A≠K)としてF
RZ書込み制御回路70に出力する。FE[A]及びF
W[A]におけるAはウエイを示している。
【0114】逆に、ウエイK(Kは0≦K≦2の整数)
のフリーズを解除する場合、コントローラ38は、FR
ZライトデータFW[K]=0、FRZライトイネーブ
ル信号FE[K]=1をFRZ書込み制御回路70に出
力し、フリーズメモリ20に書き込む。
【0115】図9は、フリーズ情報をフリーズメモリ2
0に書き込む手順を示す流れ図である。同図に示す手順
は、プログラム起動時に、主記憶装置14の所定の領域
に記憶された記憶データを、フリーズI/O命令によっ
てキャッシュメモリ装置11の所定のウエイにコピーし
てフリーズする方法である。
【0116】また、図10は、主記憶装置14のアドレ
ス空間の配置例を示す図である。アドレスADR0〜
(ADR4−1)はプログラム領域、ADR4以上はデ
ータ領域とする。プログラム領域中のアドレスADR1
とアドレスADR2〜(ADR3−1)の領域に、フリ
ーズしたいプログラムが記述されているとする。
【0117】データ領域中のアドレスADR5〜(AD
R6−1)の領域は、ウエイ0にフリーズしたいプログ
ラムを転送するため、予め一時的にコピーしておくため
の作業領域である。同様に、アドレスADR6〜(AD
R7−1)、ADR7〜(ADR8−1)領域は夫々、
ウエイ1及びウエイ2用のデータ転送作業領域である。
【0118】次に、図1、及び図8〜図10を参照し
て、フリーズメモリ20へのフリーズ情報の書込み手順
を説明する。ここでは、アドレスADR2〜(ADR3
−1)に存在するフリーズ対象プログラムをウエイ1に
転送する場合を例に挙げて説明する。
【0119】先ず、ステップS11で、アドレスADR
2〜(ADR3−1)に存在するフリーズ対象プログラ
ムを、ウエイ1用データ転送作業領域ADR6〜(AD
R7−1)にブロック・コピーする。これは、予め組み
込まれた標準のフリーズI/O命令によって、キャッシ
ュメモリ装置11の所定のウエイにコピーするためであ
る。
【0120】ステップS12で、CPU10は、フリー
ズI/O命令を実行し、フリーズ対象プログラムの開始
/終了アドレスADR2/(ADR3−1)、コピー先
のウエイ“1”をコントローラ38に設定する。ここ
で、CPU10は、データ転送作業領域ADR6〜(A
DR7−1)のアドレス情報をコントローラ38に別途
供給してもよく、或いは、ウエイと1対1に対応してい
てウエイの情報“1”に基づいて生成できれば改めて設
定しなくてもよい。
【0121】ステップS13で、コントローラ38は、
BCU12にアドレスBADを出力し、フリーズ対象の
記憶データBDTを主記憶装置14から読み込む。読出
しアドレスBADはアドレスADR6から(ADR7−
1)まで変化する。
【0122】ステップS14で、コントローラ38は、
データメモリ部33にステップS13の読出しアドレス
BADに対応するインデックスアドレスIADDを出力
し、セレクタ部34に記憶データBDTと選択信号DS
L[1]=1とを出力することで、データメモリ部33
のウエイ1に記憶データBDTを記憶する。
【0123】ステップS15で、コントローラ38は、
LRUメモリ部35とフリーズメモリ部36とに、前記
読出しアドレスBADに対応するインデックスアドレス
IADLを出力し、LRUメモリ部35に新規アクセス
ウエイ情報NAW[1]=1を出力する。コントローラ
38は更に、フリーズメモリ部36にFRZライトデー
タFW[1]=1、FRZライトイネーブル信号FE
[1]=1を出力することで、フリーズメモリ20のア
ドレスIADLにFRZ[1]=1を書き込み、ウエイ
1の該当アドレスをフリーズ状態に設定する。
【0124】ステップS16で、コントローラ38は、
アドレスADRをインクリメントする。ステップS17
で、コントローラ38は、アドレスADRが転送終了ア
ドレスADR7未満であるかを判断し、ADR7未満で
あればステップS13〜S16を繰り返し、ADR7以
上であればフリーズ転送処理を終了する。
【0125】図11は、フリーズ情報をフリーズメモリ
20に書き込むための更に別の手順を示す流れ図であ
る。同図に示す手順は、プログラム実行中に、主記憶装
置14の所定の領域に記憶された記憶データをフリーズ
設定命令によってキャッシュメモリ装置11の所定のウ
エイにコピーしてフリーズする方法である。
【0126】次に、図1、図8、図10及び図11を参
照して、フリーズメモリ20へのフリーズ情報の書込み
手順を説明する。ここでは、図10のアドレスADR1
に存在するフリーズ対象プログラムをウエイ2に取り込
み、フリーズ設定命令によってフリーズする例を説明す
る。
【0127】先ず、ステップS21において、CPU1
0(図1)は、主記憶装置14の所定のアドレスADR
1に存在するプログラムを1行読み込む命令(以下、ロ
ード命令とも呼ぶ)と、アドレスADR1とをコントロ
ーラ38に渡す。
【0128】ステップS22では、コントローラ38
が、アドレスADR5に対応するインデックスアドレス
IADTをタグメモリ部31に出力するとともに、タグ
アドレスTADを比較部32に出力する。
【0129】ステップS23において、コントローラ3
8は、比較部32がヒット信号HIT[]=1(ヒッ
ト)を出力すればステップS35の処理に進み、HIT
[]=0(ミスヒット)であればステップS24の処理
に進む。
【0130】ステップS24では、コントローラ38
が、BCU12にBAD=ADR1を出力し、フリーズ
対象記憶データBDTを主記憶装置14から読み込む。
【0131】ステップS25では、コントローラ38
が、アドレスADR1に対応するインデックスアドレス
IADLをフリーズメモリ部36に出力し、フリーズ情
報FRZ[0]〜FRZ[2]を取得する。
【0132】ステップS26では、コントローラ38
が、フリーズ可能か否かを判断する。フリーズ情報FR
Z[0]〜FRZ[2]のいずれか1つが“0”であれ
ば、フリーズ可能であるとしてステップS27に進む。
フリーズ情報FRZ[0]〜FRZ[2]が全て“1”
であれば、フリーズ不可能として処理を終了する。
【0133】ステップS27では、コントローラ38
が、アドレスADR1に対応するインデックスアドレス
IADLをLRUメモリ部35に出力し、リプレース信
号OUT[0]〜OUT[3]を取得する。
【0134】ステップS28では、コントローラ38
が、OUT[0]〜OUT[2]のいずれかが“1”で
あればステップS30に進み、OUT[3]が“1”で
あればステップS29に進む。
【0135】ステップS29では、コントローラ38
が、FRZ[2]→FRZ[1]→FRZ[0]の順に
フリーズ情報を検証し、FRZ[F]が“0”でフリー
ズ対象となっていないウエイを探す。最初に検出したウ
エイ“F”をリプレース対象と決定し、ステップS31
に進む。
【0136】ステップS30では、“1”となったOU
T[F]に対応するウエイ“F”をリプレース対象と決
定し、ステップS31に進む。
【0137】ステップS31では、コントローラ38
が、アドレスADR1に対応するインデックスアドレス
IADTをタグメモリ部31に出力し、ダーティビット
読出情報DRT0[F]を取得する。
【0138】ステップS32では、コントローラ38
が、ダーティビット読出情報DRT0[F]が“1”か
否かを判断し、“1”であればステップS33に進み、
“0”であればステップS34に進む。
【0139】ステップS33では、コントローラ38
が、アドレスADR1に対応するインデックスアドレス
IADDをデータメモリ部33に出力し、リプレース対
象のウエイの記憶データDTM[F]を取得し、BCU
12に出力するとともに、アドレスADR1に対応する
インデックスアドレスIADTをタグメモリ部33に出
力する。コントローラ38は更に、リプレース対象のウ
エイのタグアドレスTAM[]を取得し、アドレス信号
BADをBCU12に出力し、データメモリ部33の内
容を主記憶装置14にコピーバックする。その後、タグ
メモリ部31内の対応するダーティビットを“0”に書
き換える。
【0140】ステップS34では、コントローラ38
が、ステップS24で読出したフリーズ対象記憶データ
BDTをリプレース対象のウエイFのデータメモリ部3
3に書き込む。
【0141】ステップS35では、CPU10がフリー
ズ設定命令を実行することにより、コントローラ38
が、LRUメモリ部35とフリーズメモリ部36とにア
ドレスADR1に対応するインデックスアドレスIAD
Lを出力し、LRUメモリ部35に新規アクセスウエイ
情報NAW[F]=1を出力する。コントローラ38は
更に、フリーズメモリ部36にFRZライトデータFW
[F]=1、FRZライトイネーブル信号FE[F]=
1を出力することで、フリーズメモリ20のアドレスI
ADLにFRZ[F]=1を書き込み、ウエイFの該当
アドレスをフリーズ状態に設定する。
【0142】フリーズ情報をフリーズメモリ20に書き
込む手順としては、図9に示す手順以外にプリセット方
式とオンデマンド方式などがある。プリセット方式は、
高速実行したい特定のプログラムや高速参照した特定の
数値データを、プログラムを起動する段階や特定のプロ
グラムを実行する直前に予めキャッシュメモリ装置11
に取り込み、フリーズしておく方式である。具体的に
は、CPUが主記憶領域の所定のアドレスから記憶デー
タを読み出し、I/O命令で、キャッシュメモリ装置1
1のデータメモリと、タグメモリと、フリーズメモリと
に夫々直接書き込むことにより行われる。
【0143】オンデマンド方式は、高速実行したい特定
のプログラムや高速参照した特定の数値データをキャッ
シュメモリ装置11に取り込み、プログラム実行中にこ
れをフリーズし、或いは、フリーズ解除する方式であ
る。具体的には、CPUが通常のロード命令により所定
のアドレスをアクセスすることで、主記憶領域の所定の
アドレスから記憶データが読み出され、キャッシュメモ
リ装置11にキャッシュされると共に、CPUに渡され
る。CPUは、上記記憶データがキャッシュされたウエ
イ情報をキャッシュメモリ装置11から読み出し、この
キャッシュされたデータのエントリアドレスと、ウエイ
に対応するフリーズメモリのビットとに、フリーズ状態
又はフリーズ解除状態のデータを書き込む。
【0144】図12は、図1に示したリプレース判定部
37の詳細なブロック図である。リプレース判定部37
は、フリーズ制御回路21と、LRUデコード回路22
とで構成される。リプレース判定部37のフリーズ制御
回路21及びLRUデコード回路22は夫々論理回路で
構成される。なお、フリーズ制御回路21及びLRUデ
コード回路22を夫々、ソフトウエアのプログラムで実
施できるように構成しても良い。この場合、オリジナル
のアクセス履歴は、例えばLRUメモリ部35に格納さ
れ、中間情報の生成のために用いられる。
【0145】フリーズ制御回路21は、LRUメモリ部
35から6ビットの履歴情報W[0,1]〜W[2,
3]と、3ビットのフリーズ情報FRZ[0]〜FRZ
[2]とが入力され、6ビットの中間情報M[0,1]
〜M[2,3]を出力する。
【0146】LRUデコード回路22は、6ビットの中
間情報M[0,1]〜M[2,3]に基づいてリプレー
ス信号OUT[0]〜OUT[3]を出力する。
【0147】ここで、リプレース判定部37の動作の概
要を説明する。まず、フリーズ情報FRZ[0]〜FR
Z[2]が全て“0”で、フリーズ処理を行わない場合
のリプレース判定部37の処理について説明する。この
とき、M[A,B]=W[A,B]であるので、以下の
説明ではW[A,B]を使って説明する。
【0148】LRUデコード回路22は、LRUメモリ
部35(図7)から読み出された、履歴情報W[0,1]〜
W[2,3]の全6ビットに基づいて、最も過去に使われた
ウエイを検出し、ウエイ0〜3に夫々対応するリプレー
ス信号OUT[0]〜OUT[3]を出力する。リプレー
ス信号OUT[0]〜OUT[3]の値のうちいずれか
1つのみが“1”となり、他の値は“0”となる。ビッ
ト値が“1”のウェイがリプレース対象となる。
【0149】図4に示したアクセス履歴表から判るよう
に、ウエイ0が最も過去にアクセスされていた場合(最
上段のグループを参照)には、履歴情報W[0,1]、W
[0,2]、W[0,3]が共に“0”である。ウエイ1が最
も過去にアクセスされていた場合(2段目のグループを
参照)には、履歴情報W[0,1]が“1”で、W[1,2]及
びW[1,3]が“0”である。また、ウエイ2が最も過去
にアクセスされていた場合(3段目のグループを参照)
には、履歴情報W[0,2]及びW[1,2]が“1”で、W
[2,3]が“0”である。ウエイ3が最も過去にアクセ
スされていた場合(最下段のグループを参照)には、履
歴情報W[0,3]及びW[1,3]、W[2,3]が共に“1”で
ある。
【0150】上記関係を式で表現すると次のようにな
る。即ち、ウエイDに対応する出力値OUT[D](0
≦D≦3を満たす整数)は、次の各論理式(1)〜(4)によ
って定まる。 OUT[0]=(!W[0,1])×(!W[0,2])×(!W[0,3]) ……(1) OUT[1]=( W[0,1])×(!W[1,2])×(!W[1,3]) ……(2) OUT[2]=( W[0,2])×( W[1,2])×(!W[2,3]) ……(3) OUT[3]=( W[0,3])×( W[1,3])×( W[2,3]) ……(4)
【0151】本明細書において、例えば「!W」は
「W」の反転値(NOT論理)を示す。つまり、先頭部
分に「!」を付した数又は符号の値は「!」を付さない
対応する数又は符号の反転値を示す。
【0152】例えば、図3に示すように、アクセス履歴
が「0←1←2←3」であるとき(同図「ウエイ0ヒッ
ト」内の最上段)、ウエイ2がヒットすると、アクセス
履歴は「2←0←1←3」になり(同図「ウエイ2ヒッ
ト」内の最上段)、履歴情報(W[0,1]、W[0,2]、
W[0,3]、W[1,2]、W[1,3]、W[2,3])は、
(1,0,1,0,1,1)となる。この値を上記(1)
〜(4)に代入すると、リプレース信号OUT[0]〜O
UT[3]は、 OUT[0] = !1×!0×!1 = 0、 OUT[1] = 1×!0×!1 = 0、 OUT[2] = 0× 0×!1 = 0、 OUT[3] = 1× 1× 1 = 1 となり、最も過去にアクセスされたウエイ3がリプレー
スされることになる。
【0153】次に、図12を参照して、中間情報につい
て詳細に説明する。例えば、N=4の場合に、フリーズ
制御前のウエイA及びウエイB間における参照の前後関
係を示す“0”又は“1”の中間情報をM[A,B]と
表記し、ウエイC(0≦C≦N−2の整数)のフリーズ
情報(“0”又は“1”)をFRZ[C]と表記し、ウ
エイD(0≦D≦Nの整数)に対する出力値であるリプ
レース信号をOUT[D]と表記する。
【0154】ここでは、フリーズメモリ20(図8)
は、Nー1ウエイ、つまり3ウエイ分のフリーズ情報F
RZ[0]、FRZ[1]及びFRZ[2]のみを有す
る。これにより、例えば4ウエイの場合に、全てのウエ
イをフリーズするとキャッシュメモリ装置が機能できな
くなるような不都合を防止している。即ち、全ウエイを
フリーズすると、以降のリプレース処理が不可能になる
ので、少なくとも1つのウエイはリプレース可能にして
おく必要がある。従って、後述の場合分けが必要にな
る。
【0155】LRUメモリ15(図5)に格納された各
履歴情報W[A,B]は、任意に指定された2ウエイ
A、Bのどちらが最近アクセスされたかという内容を保
持している。履歴情報W[A,B]が“0”の場合、ウ
エイAがウエイBより前にアクセスされたことを表し、
“1”の場合、ウエイAがウエイBより後にアクセスさ
れたことを表す。
【0156】フリーズメモリ20に格納された各FRZ
[C]のビット値であるフリーズ情報は、“1”のとき
「該当するウエイCをフリーズする」ことを示し、
“0”のときには「該当するウエイCをフリーズしな
い」ことを示す。
【0157】各履歴情報W[A,B]に対応するビット
値“0”、“1”に対し、フリーズメモリ20(図8)
からのフリーズ情報FRZ[C]に従ってフリーズ制御
回路21(図12)がフリーズ制御した結果である中間
情報をM[A,B]と表記する。フリーズ制御回路21
は、記憶された履歴情報W[A,B]を修正することな
く、該履歴情報W[A,B]とフリーズ情報FRZ
[C]とに基づいて演算を行い、フリーズ指定されたウ
エイCがリプレース対象にならないように、履歴情報W
[A,B]を中間情報M[A,B]に変換する。
【0158】ここで、中間情報M[A,B]を正論理で
表すと、 M[A,B]=W[A,B]+FRZ[A] (但し、0≦A<B=(N-1))…(5) M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] (但し、0≦A<B<(N-1))…(6) となり、上記(5)、(6)式によって一意にフリーズ論理を
決定することができる。これにより、ウエイ数が4以上
に増加した場合でも対処することができる。上記(5)、
(6)式にN=4の場合の具体値を夫々代入すると、 M[0,1]=(W[0,1]+FRZ[0])×(!FRZ[1]) (B≠3) M[0,2]=(W[0,2]+FRZ[0])×(!FRZ[2]) (B≠3) M[0,3]=(W[0,3]+FRZ[0]) (B=3) M[1,2]=(W[1,2]+FRZ[1])×(!FRZ[2]) (B≠3) M[1,3]=(W[1,3]+FRZ[1]) (B=3) M[2,3]=(W[2,3]+FRZ[2]) (B=3) となる。
【0159】LRUデコード回路22(図12)は、フ
リーズ制御回路21からの各中間情報に基づいて、OU
T[0]〜OUT[3]に夫々対応する“0”、“1”
をリプレース信号として出力する。リプレース信号とし
て“0”が出力された場合には「該当するウエイをリプ
レース対象とせずにフリーズする」ことを意味し、
“1”が出力された場合には「該当するウエイをリプレ
ース対象としフリーズしない」ことを意味する。
【0160】各ウエイDにおけるOUT[D]に夫々対
応して出力されるリプレース信号OUT[0]〜OUT
[3]は、次の各論理式(7)〜(10)によって決定され
る。 OUT[0]=!M[0,1]×!M[0,2]×!M[0,3] ……(7) OUT[1]= M[0,1]×!M[1,2]×!M[1,3] ……(8) OUT[2]= M[0,2]× M[1,2]×!M[2,3] ……(9) OUT[3]= M[0,3]× M[1,3]× M[2,3] ……(10)
【0161】ここで、所望のウエイをフリーズする際の
具体例を説明する。例えば、アクセス履歴が「3←1←
2←0」であるとき(図3の「ウエイ3ヒット」の上か
ら4段目)、ミスヒットが生じてキャッシュメモリが新
たな記憶データで書き換えられる場合を考える。フリー
ズ情報がないと、前述のように、最も過去にアクセスさ
れたウエイ0が新しい記憶データで書き換えられる。
【0162】いま、ウエイ0がフリーズ設定されている
とする。このとき、フリーズメモリ20は、フリーズ制
御回路21にフリーズ情報FRZ[0]=1、FRZ[1]=
0、FRZ[2]=0を送信する。また、履歴情報(W[0,
1]、W[0,2]、W[0,3]、W[1,2]、W[1,3]、
W[2,3])は、図3に示すように、(0,0,0,
1,0,0)となっている。これら具体値を夫々、ウエ
イBによって、つまりBが(N-1)であるか否かによって
上記(5)、(6)式の対応する方に代入すると、 M[0,1]=(W[0,1]+1)×!0=1×1=1 M[0,2]=(W[0,2]+1)×!0=1×1=1 M[0,3]=(W[0,3]+1) =1 M[1,2]=(W[1,2]+0)×!0=1×1=1 M[1,3]=(W[1,3]+0) =0 M[2,3]=(W[2,3]+0) =0 となる。これは、図3に示すように、アクセス履歴が
「0←3←1←2」(ウエイ0ヒット」の上から5段
目)に相当する。つまり、LRUメモリ15にはウエイ
0が最も過去にアクセスされたことになっているが、中
間情報M[A,B]では、ウエイ0が最も最近アクセス
されたかのように変換される。
【0163】LRUデコード回路22は、上記結果に基
づき、上記式(7)〜(10)を用いてリプレース信号OUT
[0]〜OUT[3]を算出し、以下のように出力する。 OUT[0]=!M[0,1]×!M[0,2]×!M[0,3]=0 OUT[1]= M[0,1]×!M[1,2]×!M[1,3]=0 OUT[2]= M[0,2]× M[1,2]×!M[2,3]=1 OUT[3]= M[0,3]× M[1,3]× M[2,3]=0 これらのリプレース信号の出力により、ウエイ0の次に
古くアクセスされたウエイ2がリプレースされるので、
フリーズされているウエイ0が書き換えられることはな
い。
【0164】次いで、所望のウエイをフリーズする際の
別の具体例を説明する。例えば、アクセス履歴が「3←
1←2←0」であるとき(図3の「ウエイ3ヒット」の
上から4段目)、ミスヒットが生じてキャッシュメモリ
が新たな記憶データで書き換えられる場合を考える。フ
リーズ情報がないと、前述したように、最も過去にアク
セスされたウエイ0が新しい記憶データで書き換えられ
ることになる。
【0165】いま、ウエイ0及びウエイ1がフリーズ設
定されているとする。このとき、フリーズメモリ20
は、フリーズ制御回路21にフリーズ情報FRZ[0]=
1、FRZ[1]=1、FRZ[2]=0を送信する。また、履
歴情報(W[0,1]、W[0,2]、W[0,3]、W[1,
2]、W[1,3]、W[2,3])は、図3に示すように、
(0,0,0,1,0,0)である。これら具体値を、
上記(5)、(6)式の対応する方に代入すると、 M[0,1]=(W[0,1]+1)×!1=1×0=0 M[0,2]=(W[0,2]+1)×!0=1×1=1 M[0,3]=(W[0,3]+1) =1 M[1,2]=(W[1,2]+1)×!0=1×1=1 M[1,3]=(W[1,3]+1) =1 M[2,3]=(W[2,3]+0) =0 となる。
【0166】上記履歴情報(0,1,1,1,1,0)
は、図3に示すように、アクセス履歴が「1←0←3←
2」に相当する。つまり、LRUメモリ15には「3←
1←2←0」の順にアクセスされたことになっている
が、中間情報M[A,B]では、ウエイ1とウエイ0と
が最近アクセスされたかのように変換されることにな
る。
【0167】LRUデコード回路22は、上記結果に基
づき、上記式(7)〜(10)を用いてリプレース信号OUT
[0]〜OUT[3]を算出し、以下のように出力する。 OUT[0]=!M[0,1]×!M[0,2]×!M[0,3]=0 OUT[1]= M[0,1]×!M[1,2]×!M[1,3]=0 OUT[2]= M[0,2]× M[1,2]×!M[2,3]=1 OUT[3]= M[0,3]× M[1,3]× M[2,3]=0 これらにより、実際にはウエイ0の次にアクセス履歴が
古いウエイ2がリプレースされることになるので、フリ
ーズされているウエイ0とウエイ1が書き換えられるこ
とはない。
【0168】以上、本実施形態例では、4ウエイの場合
を中心に説明したが、Nが2以上の整数であるNウエイ
・セット・アソシアティブ・キャッシュの場合には次の
ようになる。つまり、OUT[X]の一般式は、X=0
の場合、
【数4】 0<X<Nー1の場合、
【数5】 X=Nー1の場合、
【数6】 となる。ここで、記号Πは、関数F(X)に対して以下
のように定義される。
【数7】
【0169】式(11)〜(13)を具体的に記述すると次のよ
うになる。 OUT[0]=!M[0,1]×!M[0,2]×……×!M[0,N-1] OUT[1]= M[0,1]×!M[1,2]×……×!M[1,N-1] OUT[2]= M[0,2]× M[1,2]×……×!M[0,N-1] ・ ・ OUT[N-1]=M[0,N-1]×M[1,N-1]×……×M[N-2,N
-1]
【0170】以上の演算を行うことで、いずれか1つの
リプレース信号OUT[R]が“1”となり、そのウエ
イRがリプレース対象のウエイと判定されることにな
る。
【0171】なお、本実施形態例では、正論理を用いて
説明したが、これに限らず負論理を用いることもでき
る。また、記憶された情報に基づいてLRU自身がLR
U情報を得られれば良いので、アクセスした情報を必ず
しもLRU方式で記憶しなくても良い。
【0172】以上のように、本実施形態例では、LRU
メモリ15における格納状態を表す方法として、任意に
指定した2つのウエイ間の情報のみを保持する方式を利
用し、この方式にフリーズ論理を組み合わせた。従っ
て、極めて小規模な回路構成の追加でフリーズ論理を実
現することができる。
【0173】本実施形態例では、ユーザがフリーズアド
レス出力回路19に対して設定を行うことにより所望の
ウエイをフリーズできるので、例えば、利用頻度は少な
いが、高速に処理しなければならないプログラムやデー
タをフリーズした状態で実行又は演算を行うことができ
る。このため、重要な処理プログラムの実行速度が低下
することがない。
【0174】また、従来は1ウエイのみをフリーズ対象
としていたが、本実施形態例では、Nウエイのうちの1
ウエイのみをリプレース対象として残しておくことによ
り、他のウエイを全てフリーズ対象とすることもでき
る。これにより、比較的サイズの大きいプログラムをフ
リーズすることが可能になり、従来に比してミスヒット
の確率が低減する。その場合、キャッシュの書き換え回
数が大幅に減少する。
【0175】本実施形態例では、LRUメモリ33a〜
33dには常に最新のアクセス履歴情報が保持されてお
り、データメモリ部33のリプレースが必要になったと
きには、フリーズ情報とアクセス履歴情報とに基づいて
リプレース信号を演算によって求め、フリーズ対象を除
いたウエイで、一番過去にアクセスがあったウエイをリ
プレース対象のウエイとして出力する構成とした。この
ため、本願方式によれば、フリーズ機能を有しながら
も、LRU方式の有効性を損なうことなくキャッシュメ
モリ装置を実現することができる。
【0176】また、フリーズメモリ20は、フリーズ情
報を1エントリに(N−1)ビットで記憶しており、必
要なメモリ量が少ないので、フリーズメモリ20をRA
Mではなくレジスタから構成することも可能になる。フ
リーズメモリ20のメモリ容量は、4ウエイの場合に3
ビット×エントリ数であるので、例えば、1ウエイに6
4個のエントリが存在する際には、192ビットのメモ
リ量があれば足りる。このため、フリーズを実行するた
めのロジックが極めて小規模で足りるので、必要な回路
構成を簡素化することができる。また、従来例のよう
に、フリーズ情報に基づいてLRUメモリを書き換える
ことがないので、従来の書換えに要していた時間がなく
なり、キャッシュメモリ装置の負荷が軽減されるととも
に、キャッシュメモリ装置の応答時間が短縮できる。
【0177】本実施形態例では、フリーズ機能を使わな
い場合には、フリーズメモリ20の記憶内容を全て
“0”にするだけで、従来と同じキャッシュメモリ装置
11として機能させることができる。また、フリーズ動
作を終了したときには、それまでのアクセス履歴がフリ
ーズ情報で書き換えられることなくLRUメモリ部35
に記憶されているので、LRU方式の機能を損なうこと
がない。このため、ミスヒットが生じた場合、最も過去
にアクセスされたウエイがリプレース対象になり、キャ
ッシュメモリのヒット確率が低減することがない。
【0178】本実施形態例におけるキャッシュメモリ装
置11では、上記効果に加えて次のような効果をも奏す
る。例えば、1つのサブルーチンを1ウエイ相当のメモ
リに格納しようとしても、データ量が多くて格納できな
い場合がある。この場合、従来例では、1ウエイのみを
活用する構成であるため、ウエイを2つ跨ってデータ格
納することはできなかった。しかし、本実施形態例で
は、N−1の複数ウエイを活用することができるので、
比較的規模の大きいデータでも容易に格納することがで
きる。
【0179】以上、本発明をその好適な実施形態例に基
づいて説明したが、本発明のキャッシュメモリ装置及び
その制御方法は、上記実施形態例の構成にのみ限定され
るものではなく、上記実施形態例の構成から種々の修正
及び変更を施したキャッシュメモリ装置及びその制御方
法も、本発明の範囲に含まれる。
【0180】
【発明の効果】以上説明したように、本発明のキャッシ
ュメモリ装置及びその制御方法によると、簡素な回路構
成を備えながらも、キャッシュメモリのスループットを
低下させることなく2以上のウエイを対象に円滑なフリ
ーズ処理が実行でき、ニーズに対応したキャッシュメモ
リ機能を実現することができる。マイクロコンピュータ
の用途は拡大しており、低価格化が要求されている。し
かし、用途毎にマイクロコンピュータを開発していたの
では、低価格化は実現できない。本願発明のように、フ
リーズ機能付きのキャッシュメモリ装置を採用すること
で、同一構成のマイクロコンピュータで色々な用途に対
応することが可能になる。例えば、フリーズ機能なしの
キャッシュメモリ装置、フリーズ機能付きのキャッシュ
メモリ装置、或いは、キャッシュメモリ装置の一部を高
速読出し専用メモリ(ROM)または高速RAMとして
利用したマイクロコンピュータ・システムなどに対応す
ることができる。従って、顧客の多様な要求に対して、
ハードウエアを設計変更することなく、ソフトの変更だ
けで応じることが可能になり、短期間で低価格のマイク
ロコンピュータを顧客に提供することが可能になる。
【0181】また、フリーズ情報に対応してアクセス履
歴情報を中間情報に変換した後にリプレース対象のウエ
イを算出することにより、既に設計済みのキャッシュメ
モリ装置の資産を継承しつつ、簡単な論理回路を付加す
るだけで、フリーズ機能付きのキャッシュメモリ装置が
実現できる。この場合、LRUの元データを破棄するこ
とがないので、フリーズ状態を解除したとき、それまで
のアクセス履歴に基づいた通常のLRU方式に即座に復
帰できる。
【0182】更に、Nウエイのアクセス順序を最近アク
セスされたウエイから順に並べたとき、フリーズ対象の
ウエイが1乃至N−1のいずれかのアクセス順序になる
ような中間情報を生成してからリプレース対象のウエイ
を算出すると、LRUの機能を損なうことなくリプレー
ス対象のウエイ算出することができる。
【0183】また、中間情報としてのM[A,B]への
変換を、 M[A,B]= W[A,B]+FRZ[A] M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] に基づいて行うことにより、簡単な論理で、フリーズ対
象のウエイがリプレース対象のウエイにならないように
変換処理することができる。これにより、小規模な論理
回路を追加するだけでフリーズ機能付きのキャッシュメ
モリ装置を実現することができる。
【0184】更に、リプレース対象のウエイXの算出
を、次式
【数8】 に基づいて行うことにより、中間情報を生成することに
よって、従来のリプレース対象ウエイの算出回路をその
まま利用することが可能になる。
【図面の簡単な説明】
【図1】本発明に係るキャッシュメモリ装置を備えたコ
ンピュータシステムの一実施形態例を示すブロック図で
ある。
【図2】Nウエイ分のアクセス履歴を示す模式図であ
り、(a)はN=2の場合、(b)はN=3の場合、
(c)はN=4の場合、(d)はN=5の場合を夫々示
す。
【図3】4ウエイの全てのアクセス順序と履歴情報との
関係を、ヒットしたウエイを基準に示した履歴情報図で
ある。
【図4】4ウエイの全てのアクセス順序と履歴情報との
関係を、最も古くにアクセスされたウエイを基準に示し
た履歴情報図である。
【図5】本実施形態例におけるタグメモリ部及びその周
辺の構成を示すブロック図である。
【図6】本実施形態例におけるデータメモリ部及びその
周辺の構成を示すブロック図である。
【図7】本実施形態例におけるLRUメモリ部及びその
周辺の構成を示すブロック図である。
【図8】本実施形態例におけるフリーズメモリ部及びそ
の周辺の構成を示すブロック図である。
【図9】本実施形態例におけるフリーズI/O命令によ
るフリーズ設定手順を示す流れ図である。
【図10】本実施形態例におけるフリーズ設定手順を説
明するための主記憶装置のアドレス配置例を示す図であ
る。
【図11】本実施形態例におけるフリーズ設定命令によ
るフリーズ設定手順を示す流れ図である。
【図12】本実施形態例におけるリプレース判定部及び
その周辺の構成を示すブロック図である。
【図13】従来の半導体記憶装置に対応するキャッシュ
メモリ装置の構成を示すブロック図である。
【図14】従来のLRUパージ/フリーズ制御部のフリ
ーズ処理を示す流れ図である。
【図15】従来の各記憶データの優先順位を考慮したパ
ージ/フリーズ制御の概要を示す図である。
【符号の説明】
10:CPU 11:キャッシュメモリ装置 12:バスコントロールユニット(BCU) 13:システムバス 14:主記憶装置 15:LRUメモリ 16:LRU書込みデータ生成回路 19:フリーズアドレス出力回路 20:フリーズメモリ 21:フリーズ制御回路 22:LRUデコード回路 31:タグメモリ部 31a〜31d:タグメモリ 32:比較部 32a〜32d:比較回路 33:データメモリ部 33a〜33d:データメモリ 34:セレクタ 35:LRUメモリ部 36:フリーズメモリ部 37:リプレース判定部 61:TAGアドレスデコーダ 62:TAG書込み制御回路 64:DMアドレスデコーダ 65、68:セレクタ 66:LRUアドレスデコーダ 67:LRU書込み制御回路 69:FRZアドレスデコーダ 70:FRZ書込み制御回路

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 LRUデコード方式を採用し、Nを2以
    上の整数としたNウエイ・セット・アソシアティブ方式
    のキャッシュメモリ装置において、 キャッシュメモリの各ウエイのアクセス履歴情報を記憶
    するLRUメモリと、 各ウエイのフリーズ情報を記憶するフリーズメモリと、 記憶されたアクセス履歴情報を修正することなく該アク
    セス履歴情報と前記フリーズ情報とに基づいて、特定の
    ウエイをフリーズするためのリプレース信号を生成する
    リプレース判定手段とを備えることを特徴とするキャッ
    シュメモリ装置。
  2. 【請求項2】 前記リプレース判定手段が、前記フリー
    ズ情報と前記アクセス履歴情報とを取り込んで中間情報
    を生成するフリーズ制御回路と、 前記フリーズ制御回路からの前記中間情報に対応して前
    記リプレース信号を生成するLRUデコード回路とを備
    えることを特徴とする請求項1に記載のキャッシュメモ
    リ装置。
  3. 【請求項3】 前記フリーズ情報としてN−1ウエイに
    対応する記憶容量を備えることを特徴とする請求項1又
    は2に記載のキャッシュメモリ装置。
  4. 【請求項4】 前記リプレース信号が、各ウエイに夫々
    対応して出力されるビット値から成ることを特徴とする
    請求項1乃至3の内の何れか1項に記載のキャッシュメ
    モリ装置。
  5. 【請求項5】 LRUデコード方式を採用し、Nを2以
    上の整数としたNウエイ・セット・アソシアティブ方式
    のキャッシュメモリ装置を制御する制御方法において、 キャッシュメモリの各ウエイのアクセス履歴情報を記憶
    し、 キャッシュメモリの各ウエイのフリーズ情報を記憶し、 記憶された前記アクセス履歴情報を修正することなく該
    アクセス履歴情報と前記フリーズ情報とに基づいてリプ
    レース対象のウエイを算出することを特徴とするキャッ
    シュメモリ装置の制御方法。
  6. 【請求項6】 前記アクセス履歴情報と前記フリーズ情
    報とに基づいてリプレース対象のウエイを算出する際
    に、前記フリーズ情報に対応して前記アクセス履歴情報
    を中間情報に変換した後にリプレース対象のウエイを算
    出することを特徴とする請求項5に記載のキャッシュメ
    モリ装置の制御方法。
  7. 【請求項7】 前記アクセス履歴情報と前記フリーズ情
    報とに基づいてリプレース対象のウエイを算出する際
    に、Nウエイのアクセス順序を最近アクセスされたウエ
    イから順に並べたとき、フリーズ対象のウエイが1乃至
    N−1のいずれかのアクセス順序になるような中間情報
    を生成した後にリプレース対象のウエイを算出すること
    を特徴とする請求項5に記載のキャッシュメモリ装置の
    制御方法。
  8. 【請求項8】 ウエイAに対するウエイBのアクセス順
    序を表すアクセス履歴情報をW[A,B]とし、ウエイ
    A及びウエイBのフリーズ情報を夫々FRZ[A]及び
    FRZ[B]とするとき、前記中間情報としてのM
    [A,B]への変換が、 M[A,B]= W[A,B]+FRZ[A] (但し、0≦A
    <B=(N-1)) M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] (但し、0≦A<B<(N-1)であり、!FRZ[]はFRZ[]
    の反転値を示す)に基づいて行われることを特徴とする
    請求項6又は7に記載のキャッシュメモリ装置の制御方
    法。
  9. 【請求項9】 リプレース対象のウエイをXとすると
    き、該ウエイXの算出は、次式 【数1】 に基づいて行われることを特徴とする請求項5乃至8の
    内の何れか1項に記載のキャッシュメモリ装置の制御方
    法。
JP11285512A 1998-10-30 1999-10-06 キャッシュメモリ装置及びその制御方法 Pending JP2000200221A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP11285512A JP2000200221A (ja) 1998-10-30 1999-10-06 キャッシュメモリ装置及びその制御方法
EP99121146A EP0997821A1 (en) 1998-10-30 1999-10-22 Cache memory having a freeze function
CN99122311A CN1255675A (zh) 1998-10-30 1999-10-29 具有冻结功能的高速缓存器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-311044 1998-10-30
JP31104498 1998-10-30
JP11285512A JP2000200221A (ja) 1998-10-30 1999-10-06 キャッシュメモリ装置及びその制御方法

Publications (1)

Publication Number Publication Date
JP2000200221A true JP2000200221A (ja) 2000-07-18

Family

ID=26555922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11285512A Pending JP2000200221A (ja) 1998-10-30 1999-10-06 キャッシュメモリ装置及びその制御方法

Country Status (3)

Country Link
EP (1) EP0997821A1 (ja)
JP (1) JP2000200221A (ja)
CN (1) CN1255675A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454575B2 (en) 2003-12-22 2008-11-18 Matsushita Electric Industrial Co., Ltd. Cache memory and its controlling method

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6748492B1 (en) 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US7266587B2 (en) 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7103748B2 (en) * 2002-12-12 2006-09-05 International Business Machines Corporation Memory management for real-time applications
CN1322430C (zh) * 2003-11-24 2007-06-20 佛山市顺德区顺达电脑厂有限公司 高速缓存代换方法
KR20070005729A (ko) * 2004-04-27 2007-01-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 전력 소모를 줄이기 위해 캐시 관리 정책을 이용하는디스크 드라이브를 구비한 장치
US7321954B2 (en) * 2004-08-11 2008-01-22 International Business Machines Corporation Method for software controllable dynamically lockable cache line replacement system
CN101151599B (zh) * 2005-03-31 2011-08-03 株式会社半导体能源研究所 算术处理装置和使用算术处理装置的电子设备
WO2013098919A1 (ja) * 2011-12-26 2013-07-04 ルネサスエレクトロニクス株式会社 データ処理装置
CN102916776B (zh) * 2012-10-15 2015-09-09 青岛海信宽带多媒体技术有限公司 光模块参数传输方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4361878A (en) * 1980-10-27 1982-11-30 Control Data Corporation Degradable LRU circuit
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
JPH0667980A (ja) * 1992-05-12 1994-03-11 Unisys Corp 4ブロックキャッシュメモリへのアクセスを最適化するためのキャッシュ論理システムおよびメインフレームコンピュータの高速キャッシュメモリへのアクセス時のダブルミスを防ぐ方法
US5584014A (en) * 1994-12-20 1996-12-10 Sun Microsystems, Inc. Apparatus and method to preserve data in a set associative memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454575B2 (en) 2003-12-22 2008-11-18 Matsushita Electric Industrial Co., Ltd. Cache memory and its controlling method

Also Published As

Publication number Publication date
CN1255675A (zh) 2000-06-07
EP0997821A1 (en) 2000-05-03

Similar Documents

Publication Publication Date Title
JP4098347B2 (ja) キャッシュメモリおよびその制御方法
JP3880581B2 (ja) キャッシュのロックを使用するストリーミング・データ
US5974508A (en) Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
JP3370683B2 (ja) キャッシュシステム
US20110167224A1 (en) Cache memory, memory system, data copying method, and data rewriting method
US6976126B2 (en) Accessing data values in a cache
US7676632B2 (en) Partial cache way locking
JPH10232839A (ja) キャッシュシステムおよびキャッシュメモリの作動方法
JP2000200221A (ja) キャッシュメモリ装置及びその制御方法
US6438655B1 (en) Method and memory cache for cache locking on bank-by-bank basis
US7493448B2 (en) Prevention of conflicting cache hits without an attendant increase in hardware
JPH06282488A (ja) キャッシュ記憶装置
US20020161976A1 (en) Data processor
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
JP2000285023A (ja) ファイル制御装置
JPH11288386A (ja) コンピュータシステム
JP2001056783A (ja) プログラム単位メモリ属性管理方式
JP2009271606A (ja) 情報処理装置およびコンパイル方法
US8108611B2 (en) Cache memory system
US20110179227A1 (en) Cache memory and method for cache entry replacement based on modified access order
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
JP4765249B2 (ja) 情報処理装置およびキャッシュメモリ制御方法
JP2006185284A (ja) データ処理装置
JP2002024088A (ja) データ処理装置
JPH10133948A (ja) キャッシュメモリ装置