JPH10320285A - キャッシュメモリ及び情報処理システム - Google Patents

キャッシュメモリ及び情報処理システム

Info

Publication number
JPH10320285A
JPH10320285A JP9129835A JP12983597A JPH10320285A JP H10320285 A JPH10320285 A JP H10320285A JP 9129835 A JP9129835 A JP 9129835A JP 12983597 A JP12983597 A JP 12983597A JP H10320285 A JPH10320285 A JP H10320285A
Authority
JP
Japan
Prior art keywords
cache
data
prefetch
lock flag
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
JP9129835A
Other languages
English (en)
Inventor
Masaji Sasahara
正司 笹原
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9129835A priority Critical patent/JPH10320285A/ja
Publication of JPH10320285A publication Critical patent/JPH10320285A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 この発明は、プリフェッチデータのロック/
ロック解除を最適に行い、プリフェッチの発行タイミン
グの自由度を高め、かつ容量の有効利用とプリフェッチ
データの保護を両立することを課題とする。 【解決手段】 この発明は、プリフェッチデータを格納
する際に対応するエントリのロックフラグを立ててプリ
フェッチデータをロックし、ロックされたプリフェッチ
データが読み出される際にロックフラグを下ろしてロッ
クを解除するように構成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリフェッチされ
た記憶内容を最適にロック及びロック解除するキャッシ
ュメモリ及びこのキャッシュメモリを備えた情報処理シ
ステムに関する。
【0002】
【従来の技術】従来のキャッシュメモリ及びその制御機
構は、例えば図6(a)又は同図(b)に示すような構
成で実装される。
【0003】図6において、キャッシュメモリ102
は、主記憶装置103の内容のうち、情報処理装置10
1が読み出した(実装の形態によっては書き込みを行な
った場合を含む)部分の内容を記憶し、再度その内容が
情報処理装置101によって利用される際に、主記憶装
置103に代わって該当する内容を情報処理装置101
に伝達するものである。キャッシュメモリ102に使用
される記憶装置は、主記憶装置103に使用される記憶
装置に比べて小容量であるが高速であるため、キャッシ
ュメモリ102が主記憶装置103に代わって情報処理
装置101に記憶内容を伝達する場合はより高速に内容
を転送できる。このため、キャッシュメモリ102は情
報処理装置101の処理能力の向上のために広く用いら
れている。
【0004】このようなキャッシュメモリを備えたシス
テムにおいて、主記憶参照の際に、該当する内容がキャ
ッシュメモリ102内に記憶されていない場合は、情報
処理装置101は主記憶装置103から内容を参照しな
ければならない。従って、キャッシュメモリ102の動
作開始直後はキャッシュメモリ102の内容が空である
ため、ほぼすべての主記憶参照がキャッシュミスとなっ
てしまう。また、主記憶の参照によって、キャッシュメ
モリ102内に主記憶の内容が格納された場合でも、そ
れがキャッシュのリフィル動作による追い出しによっ
て、キャッシュメモリ102から追い出されてしまうこ
とも多い。このため、主記憶装置103の内容を頻繁に
かつ広範囲に参照する場合ではキャッシュのリプレース
が頻発するため、主記憶参照の内キャッシュメモリ10
2から内容を参照できる回数の割合が減少し、キャッシ
ュ機構による効果が小さくなる。特に、マイクロプロセ
ッサに実装されるキャッシュメモリにおいては、近年の
RISCプロセッサが高速なため主記憶の内容参照の頻
度も高く、さらに処理すべきデータも膨大になる傾向に
あるため、システムの性能低下を引き起こすことにな
る。
【0005】このような不具合を改善する手法として
は、以下に示すものがある。
【0006】1.キャッシュメモリの内容の内、頻繁に
利用するものをキャッシュ内に固定してしまい、キャッ
シュのヒット率を改善する(以下、キャッシュのロック
と呼ぶ)方法。
【0007】2.実際に情報処理装置が主記憶装置の特
定部分の内容を参照する前に、予めプリフェッチを発行
し、主記憶の内容をキャッシュメモリに取り込ませる
(以下、プリフェッチと呼ぶ)方法。
【0008】特に、プリフェッチは図7に示すように、
処理jで利用するデータを予めキャッシュに例えば処理
iの実行前において取得することで、主記憶アクセスの
時間を省くことができ、かつ上述したキャッシュ動作開
始直後のキャッシュミスも低減でき、有用である。
【0009】しかし、いずれの手法においても多くの不
具合を含んでいる。
【0010】キャッシュメモリの制御装置は、キャッシ
ュメモリ内の記憶内容に対してロックを行なうべきか否
かを判別する術がないので、キャッシュメモリのロック
を行なうか否かを情報処理装置が動的に判断することは
困難であり、情報処理装置もしくは情報処理装置が実行
するプログラムによって、明示的にかつ静的にキャッシ
ュ制御装置に指示されなくてはならない。これはロック
の解除についても同様である。
【0011】また、キャッシュのロックを行なった場合
は、ロックされたエントリの増加にしたがって、主記憶
装置の他の部分の内容を記憶するために利用できるキャ
ッシュメモリの容量は減少する。このため、長時間キャ
ッシュのロックを行なったり、無造作にキャッシュのロ
ックを行なってしまうと、逆にキャッシュメモリの性能
が低下してしまう。さらに、ロック/ロック解除を静的
に指示し、かつこれが先に述べた無造作なロックのため
に性能低下を引き起こしてしまわないか否かを判断する
ことは、キャッシュの動作を完全に把握しなければ困難
であり、現実的でない。これらのことから、キャッシュ
メモリにおいてロック機能を有効かつ有用に機能させる
ことは困難であった。
【0012】一方、プリフェッチも実装が大変容易であ
り、高い効率が得られるため注目されている。プリフェ
ッチでは、プリフェッチの実行によって主記憶装置の参
照が行なわれてキャッシュメモリに格納される。従っ
て、図8に示すように、プリフェッチの発行が遅れてプ
リフェッチアクセスが終了する前に情報処理装置がその
データを参照してしまう場合には、プリフェッチをしな
い場合と比べて読み出しまでの待ち時間は短縮される
が、プリフェッチ先のデータを使用する処理が実際に実
行されるまでにウェイトが入り効果が半減してしまう。
これを回避するためには、プリフェッチは実際に情報処
理装置が主記憶の内容を参照するのに十分先だって実行
されなくてはならない。
【0013】しかし、プリフェッチの発行があまりに早
いと、図9に示すように、プリフェッチ先のデータを使
用に先だって取得することには成功しているが、プリフ
ェッチ後から実際のデータが使用されるまでの間に、キ
ャッシュの置き換えによってプリフェッチを行ったはず
の主記憶装置の内容がキャッシュメモリから消失しまう
ことがあり、プリフェッチの効果がなくなる場合があ
る。このことは、特に前述したマイクロプロセッサのよ
うに、情報処理装置が高速で大量のデータを処理する場
合に顕著に発生する。このように、プリフェッチはプリ
フェッチの発行タイミングが早過ぎる場合も遅すぎる場
合にも有効には機能しないことになる。
【0014】このように、キャッシュメモリにおいてロ
ック機能やプリフェッチを有効に利用することは大変困
難であった。
【0015】
【発明が解決しようとする課題】以上説明したように、
従来のキャッシュメモリのロック機構にあっては、キャ
ッシュメモリの限られた容量を有効に活用し、かつ必要
なデータを確実に保持できるように、ロックを行うべき
か否かロックを解除すべきか否かを最適に制御すること
は極めて困難であった。このため、キャッシュメモリの
性能の低下を招いていた。
【0016】一方、プリフェッチの発行タイミングは、
早過ぎる場合も遅過ぎる場合もプリフェッチを有効に活
用することができず、発行タイミングの自由度が低くな
っていた。
【0017】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、プリフェッチ
データのロック/ロック解除を最適に行い、プリフェッ
チの発行タイミングの自由度を高め、かつ容量の有効利
用とプリフェッチデータの保護を両立できるキャッシメ
モリ及び情報処理システムを提供することにある。
【0018】
【課題を解決するための手段】上記目的を達成するため
に、請求項1記載の発明は、全てのエントリ又は一部の
エントリに対応して設けられ、リプレースを行う場合
に、対応するエントリをリプレースの対象とするか否か
を示すロックフラグと、データのプリフェッチが行われ
た時は、プリフェッチデータが格納されたエントリに対
応した前記ロックフラグを立ててリプレースの対象から
外し、プリフェッチを除くキャッシュアクセスが行われ
てヒットした時には、ヒットしたデータが格納されたエ
ントリに対応した前記ロックフラグを参照し、該ロック
フラグが立っている場合には該ロックフラグを下ろして
対応するエントリをリプレースの対象とし、リプレース
が行われる時は対応するエントリの前記ロックフラグを
参照し、ロックフラグが立っている場合には対応するエ
ントリをリプレースの対象から外し書き込みを行わない
ように制御するキャッシュ制御回路を有することを特徴
とする。
【0019】請求項2記載の発明は、請求項1記載のキ
ャッシュメモリにおいて、n(n≧2)ウェイを有し、
最近アクセスされたか否かを示すLRU値に基づいて最
近アクセスされていないウェイをリプレースの対象とし
てリプレースの対象ウェイを決定するLRU(least Rec
ently Used) アルゴリズムを採用したnウェイセットア
ソシアティブのキャッシュメモリであって、前記ロック
フラグがm(n>m≧1)ウェイのエントリに対応して
設けられ、前記キャッシュ制御回路は前記LRU値に基
づいてリプレースするウェイを決定し、前記ロックフラ
グを受けて、ロックフラグが立っている場合は該ロック
フラグに対応するエントリがリプレースの対象から外れ
るように前記LRU値を制御して前記キャッシュ制御回
路に出力するLRU回路を備えたことを特徴とする。
【0020】請求項3記載の発明は、前記請求項1又は
2記載のキャッシュメモリと、予めデータをプリフェッ
チするプリフェッチ命令を実行して前記キャッシュメモ
リをアクセスした際に、前記キャッシュメモリにアクセ
スされたデータがプリフッチデータであることを前記キ
ャッシュメモリに通知するマイクロプロセッサを有する
ことを特徴とする。
【0021】
【発明の実施の形態】以下、図面を用いてこの発明の実
施形態を説明する。
【0022】図1は請求項1又は3記載の発明の一実施
形態に係るキャッシュメモリ及び情報処理システムの構
成を示す図である。
【0023】図1に示すキャッシュメモリ及び情報処理
システムの構成作用を説明する前に、この発明のキャッ
シュメモリは、従来のキャッシュ機構に以下の機構を加
えることによって実現される。まず、プリフェッチによ
ってキャッシュ内に格納されたデータが、データを実際
に使用される前に追い出されてプリフェッチの効果がな
くなることを防止するために、キャッシュエントリのロ
ックを行なうか行なわないかを記憶すめるためのロック
フラグを用意し、キャッシュのエントリをロック(リプ
レースを禁止)できるようにする。また、従来のキャッ
シュ制御回路に、情報処理装置からの主記憶参照がプリ
フェッチによるアクセスであることを検出した場合に、
該当エントリのロックフラグに書き込みを行なってフラ
グを立てる動作を行い、またロックフラグが立っている
エントリに対しプリフェッチではないアクセスが行なわ
れた際には、ロックフラグを下ろす動作を行うキャッシ
ュ制御回路を付加する。さらに、キャッシュ制御回路
に、キャッシュリプレースの際にロックフラグを調べて
フラグが立っていたらキャッシュしない、もしくは他に
キャッシュできる場所があればそこにキャッシュすると
いう変更を加える。ロックフラグに要するメモリおよび
制御回路の付加、変更はキャッシュ機構のハードウェア
量から考えると大変小さいため、通常のキャッシュに対
してわずかなコストの増加で性能が改善される。
【0024】次に、キャッシュメモリの作用を説明す
る。
【0025】通常は、情報処理装置からの信号や要求番
地などのデコード結果によって、現在のアクセスかプリ
フェッチであるかを判断し、通常アクセスでキャッシュ
がヒットした場合は、キャッシュメモリから情報処理装
置にデータが送られる。この時にロックフラグが立って
いる場合にはロックフラグは下ろされる。一方、キャッ
シュがミスした場合には、キャッシュ機構が情報処理装
置に代行してメモリアクセスを行ないデータを受けとり
情報処理装置に渡す。この時に、この内容はキャッシュ
メモリに格納され、タグ、アクティブフラグが設定さ
れ、キャッシュに登録される。ただし、この時にはロッ
クフラグは下ろされる。
【0026】次に、プリフェッチの場合に、プリフェッ
チデータがすでにキャッシュさている場合は、単にロッ
クフラグがセットされる。一方、キャッシュされていな
い場合には、キャッシュ機構が情報処理装置に代行して
メモリアクセスを行い、データを受けとりキャッシュメ
モリに格納する。また、タグ、アクセスフラグが設定さ
れてキャッシュに登録され、ロックフラグが立てられ
る。
【0027】また、キャッシュメモリに新しくデータを
格納する際に、格納すべきキャッシュのエントリが既に
使われている場合は、従来では単にその内容を破棄(メ
モリの内容とキャッシュの内容が異なっている可能性の
あるシステムでは、これを調査し、必要によってはキャ
ッシュの内容を主記憶に格納した後破棄)するが、本発
明では、ロックフラグの状態に応じて以下に示すように
作用する。
【0028】ロックフラグが立っていない場合は、従来
のキャッシュシステムと同様に、格納先のエントリ(複
数ある時にはそのうちの一つ)を追い出して現在行なっ
ているアクセスをキャッシュする。ロックフラグが立っ
ている場合には、そのエントリは固定されているので追
い出しの対象としない。したがって、ロックされていな
い他のエントリのデータを追い出してキャッシュする。
しかし、キャッシュできるエントリが他に存在しない場
合は、現在行なっているアクセスはキャッシュしない。
【0029】以上のように作用することにより、図9に
示すように、プリフェッチの発行が早過ぎた場合でも、
図2に示すように、処理Xによってプリフェッチ先のリ
プレースが生じた場合であっても、実際にはロックフラ
グによってプリフェッチ先のデータは保護されるため、
処理jではキャッシュミスを起こさない。従って、主記
憶装置の内容を利用するためにプリフェッチを十分に先
だって行なっても、プリフェッチデータのキャッシュリ
プレースが起きず、従来のようなプリフェッチのタイミ
ングの制約を緩和できる。しかも、本機構はキャッシュ
ラインのロック機構を持つが、プリフェッチデータが使
用されると直ちにロックが解除されるため、ロックされ
た状態のキャッシュメモリの不用意な増加によってキャ
ッシュメモリが不足することが防止できるだけでなく、
明示的にロック解除を行なう必要もないため、従来のキ
ャッシュのロック機構が内在する不具合がほとんど解決
される。
【0030】図1に戻って、この発明の一実施形態であ
るマイクロプロセッサのダイレクトマップドキャッシュ
に適用した場合を説明する。なお、この実施形態の主記
憶装置はメインメモリに相当し、ここではメインメモリ
を単にメモリ装置と呼ぶことにする。
【0031】図1において、この一実施形態の情報処理
システムは、大きく分けてキャッシュメモリ部と、キャ
ッシュメモリ部にアクセスするマイクロプロセッサ1
と、マイクロプロセッサ1の主記憶となるメモリ装置2
を備えている。キャッシュメモリ部は、タグアドレスを
格納するタグメモリ3と、タグアドレスに対応してデー
タを格納するデータメモリ4と、データの有効/無効を
示すアクティブフラグを格納するアクティブフラグメモ
リ5と、全てのエントリ又は一部のエントリに対応して
設けられ、リプレースを行う場合に対応するエントリを
リプレースの対象とするか否かを示すロックフラグを格
納するロックフラグメモリ6と、ヒット/ミスを判断す
る比較器7及びアンドゲート8と、アドレスバス9の内
容を記憶し、1回のキャッシュのリフィル動作が複数回
のメモリ装置2に対する参照を行う場合はこれに対して
適切なアドレスを生成するアドレス生成カウンタ10
と、データのプリフェッチが行われた時はプリフェッチ
データが格納されたエントリに対応したロックフラグを
立ててリプレースの対象から外し、プリフェッチを除く
キャッシュアクセスが行われてヒットした時にはヒット
したデータが格納されたエントリに対応したロックフラ
グを参照し、ロックフラグが立っている場合にはロック
フラグを下ろして対応するエントリをリプレースの対象
とし、リプレースが行われる時は対応するエントリのロ
ックフラグを参照し、ロックフラグが立っている場合に
は対応するエントリをリプレースの対象から外し書き込
みを行わないように制御し、キャッシュメモリ部の全体
の動作を制御するキャッシュ制御装置11と、キャッシ
ュ制御装置11の制御の下にデータメモリ4とメモリ装
置2間のデータをバッファする双方向バッファ12を備
えて構成される。マイクロプロセッサ1とキャッシュメ
モリ部のデータメモリ4間のデータ転送は、キャッシュ
制御装置11によって制御されるデータバス双方向バッ
ファ13が挿入されたデータバス14を介して行われ
る。
【0032】マイクロプロセッサ1はプリフェッチ命令
を実装しており、プリフェッチ命令を実行した結果とし
て発生するメモリ参照については、マイクロプロセッサ
1のPREFETCH端子から先読み要求信号でキャッ
シュ制御装置11に伝えられるものとする。プリフェッ
チ命令、通常のロード命令ともにキャッシュミスの場合
はキャッシュメモリの参照を行なうが、プリフェッチは
先読み要求信号を真にしてアクセスが開始され、ロード
命令はこれを偽にしてアクセスが開始されるという違い
の他、通常のロード命令ではプロセッサ1は必要なデー
タがメモリから取得できるまで待たなくてはならない
が、プリフェッチはメモリの参照を指示するだけで、プ
ロセッサ1はメモリ参照の終了を待たないという差異が
ある。
【0033】マイクロプロセッサ1は、転送開始信号に
よってメモリに対するアクセスを開始すると、まずキャ
ッシュ制御装置11がこれを検出する。一方この時、プ
ロセッサ1のアドレスバス9からは既にアドレス情報が
出力されており、アドレスのうちタグに相当するタグア
ドレスが与えられるロックフラグメモリ6,アクティブ
フラグメモリ5,タグメモリ3,データメモリ4が、ア
ドレス確定と同時に該当するエントリのアクセスが開始
される。それぞれのメモリの出力のうち、タグメモリ3
からの出力とアドレスバス9のエントリアドレスが比較
器7に入力され、さらにこの出力とアクティブフラグメ
モリ5からの出力の論理積がアンドゲート8でとられ
る。アンドゲート8の出力のキャッシュヒット信号は、
有効なキャッシュが存在してかつタグが一致したか否か
を示しているので、ヒット信号が真であればキャッシュ
はヒットしたことになり、ヒット信号が偽であればキャ
ッシュはミスしたことになる。
【0034】さらに、キャッシュ制御装置11はカウン
トアップ信号とロード信号からなるカウンタ制御信号を
ロード機能が付加されたアドレス生成カウンタ10に与
えるものであり、キャッシュ制御装置11がメモリアク
セス開始を検出すると、カウンタ制御信号のロード信号
にパルスが送られ、アドレス生成カウンタ10はアドレ
スバス9の内容を記憶する。
【0035】以上によって、キャッシュがヒットしたか
ミスしたかが判定される。判定後、キャッシュがミスし
た場合は、アドレス生成カウンタ10の内容とカウンタ
制御信号のカウントアップ信号とメモリ装置2に対する
制御信号となるメモリ転送開始信号及びメモリ転送アク
ノリッジ信号を用いてメモリ装置2がアクセスされ、双
方向バッファ12,13がキャッシュ制御装置11によ
り制御されて、キャッシュリフィルが行われる。一方、
ヒットした場合には、同様にしてキャッシュメモリから
プロセッサ1のデータバス14への転送が行なわれる。
【0036】キャッシュ制御回路11は、図3の状態遷
移図に示すように動作する。基本的には、従来のキャッ
シュシステムとほぼ同様であるが、新たに3つの状態が
追加される。
【0037】図3において、まず、キャッシュ制御装置
11は転送開始信号が転送開始(ハイレベル)になった
ことを検出すると、キャッシュに対する操作を開始する
(Hit Check、C1)。そして、キャッシュヒ
ット信号がハイレベルである場合は、キャッシュはヒッ
トしたことになり、この場合はロックフラグ制御信号の
書き込み信号にパルスを与え、ロックフラグメモリ6の
データ線に先読み要求信号を与える。これによって、先
読み要求信号がプリフェッチを示すハイレベルである場
合は、ロックフラグにハイレベルが書き込まれてそのエ
ントリはロックされ、先読み要求信号がロウレベルであ
る場合には、ロックフラグにロウレベルが書き込まれて
ロックされず、このアクセスがプリフェッチデータへの
アクセスであればロックは解除される(Lock fl
ag write,C2)。この後、キャッシュは従来
と同様のハードウェアを使用してプロセッサ1に対して
データを送る(Data Transfer From
Cache、C3)。
【0038】また、キャッシュヒット信号がロウレベル
である場合は、キャッシュはミスしたことになる。この
場合は、ロックフラグ制御信号の読み出し信号にパルス
を与えてロックフラグメモリ6からロックフラグを読み
出し(Lock Check、C4)、ロックフラグが
ハイレベルである場合、すなわちロックされている場合
は、ダイレクトマッピング法ではそれを他のエントリに
置くことはできないので、メモリ装置2の読み出し及び
プロセッサ1への転送は行なうが、キャッシュメモリに
対して書き込みは行なわない。すなわち、キャッシュ禁
止領域へのアクセスの際と同様に動作する(Data
Fetch、C5)。
【0039】一方、ロックフラグがロウレベルである場
合、すなわちロックされていない場合には、先のヒット
の場合と同様に、ロックフラグ制御信号の書き込み信号
にパルスを与え、ロックフラグメモリ6のデータ線に先
読み要求信号を与える。先読み要求信号がプリフェッチ
である場合は、ロックフラグにハイレベルが書き込まれ
てそのエントリはロックされ、先読み要求信号がロウレ
ベルである場合はロックされさない(Lock fla
g write、C6)。この後、キャッシュは従来と
同様にキャッシュのリフィルが行われる(Csche
Refill、C7)。
【0040】なお、双方向バッファ12,13、ならび
にメモリ転送開始信号,メモリ転送アクノリッジ信号、
アクティブ・タグ・データメモリ制御信号の制御等、従
来のキャッシュメモリと全く同様の制御を行なう信号に
ついては説明を省略する。また、この実施形態では、説
明の便宜上、マイクロプロセッサ1、キャッシュメモリ
部、メモリ装置2をそれぞれ別々に示したが、これらの
うちの全て、もしくは一部を一つのLSIにした場合も
同様に実施できるものである。
【0041】次に、上記の構成において、例えば以下に
示すようなプログラムを実行した場合のプリフェッチの
作用効果を、図4を参照して説明する。
【0042】ここで、プリフェッチ命令はPF(アドレ
ス)とし、ロード命令はLD(レジスタ),(アドレ
ス)と表記するものとする。
【0043】 LD r3, 0x40100000 ・・・・・・ ・・・・・・ PF 0x4000000 (命令i) ・・・・・・ ・・・・・・ LD r5, 0x40110000(命令x) ADD r5・・・・ ・・・・・・ ・・・・・・ LD 00x40000000 (命令j) ・・・・・・ ・・・・・・
【0044】ただし、上記プログラムにおいて、命令
i,j,xにおいてアクセスするメモリの内容は、いず
れも同一のキャッシュエントリに格納されているものと
する。この場合は、もしプリフェッチ命令を発行しなけ
れば、図4に示す従来例のように、命令iにおいて0x
4000000番地に対してプリフェッチを行ない、キ
ャッシュ内に0x400000000番地の内容が格納
されても、命令xによる0x40110000番地の参
照により、キャッシュは0x40110000番地の内
容に書き換えられてしまい、0x40000000番地
を参照する時にはキャッシュミスが生じることになる。
【0045】しかし、この実施形態にあっては、図4の
本発明による改良に示すように、命令xが0x4001
0000番地を参照しても、プリフェッチによって0x
40000000番地が格納されたキャッシュエントリ
はロックされており、このため0x40110000番
地の内容はキャッシュミスされない。従って、後続の命
令が0x400000000番地を参照しても、キャッ
シュミスが発生することはない。
【0046】このように、上記実施形態にあっては、予
め必要であることが予見されるデータに対するプリフェ
ッチの制約をプリフェッチの機能を損なうことなく緩和
することができ、キャッシュのヒット率を向上させ、情
報処理装置の性能改善を図ることができる。また、キャ
ッシュメモリのロック機構を応用することにより、プリ
フェッチデータをキャッシュから追い出されないよう保
護し、更に保護の解除をプリフェッチデータが使用され
た後直ちに行なわせることにより、ロックを適切に解除
することが可能となり、不必要にロックされたエントリ
がなくなりキャッシュメモリの利用効率の低下を防止す
ることができる。
【0047】図5は請求項2記載の発明の一実施形態に
係るキャッシュメモリの要部構成を示す図である。
【0048】図5に示すこの実施形態の特徴とするとこ
ろは、例えば2ウェイセットアソシアティブのキャッシ
ュメモリの一方のウェイに前述した実施形態で説明した
ロックフラグを設け、このロックフラグによりリプレー
スの対象ウェイを決定するLRU(Least Recently Use
d) アルゴリズムのLRUビットを制御するようにした
ことにあり、他は図1に示す実施形態と同様であり、図
1に示す情報処理システムを構築する。
【0049】前述した実施形態では、あるアクセスのキ
ャッシュへの格納先が既にロックされている場合には、
そのアクセスはキャッシュされないため十分な効果が得
られないことか考えられる。そこで、この実施形態は、
本発明をnウェイセットアソシアティブキャッシュに対
して部分的に実施し、n(n≧2)個のウェイのうち、
m(n>m≧1)個に対して前述のロック機構を実装す
る。この場合に、(n−m)個のウェイに対してはロッ
クは行なわれないため、あるエントリにm個のロックが
存在する場合でも、残りの(n−m)個のウェイにキャ
ッシュすることができるため、前述した実施形態よりも
高い性能が得られる。
【0050】図5において、この実施形態のキャッシュ
メモリは、ロックフラグフラグが“0”、すなわちロッ
クされていない場合はLRUレジスタ20のLRUカウ
ンタ21に記憶されたLRUビットの値がアンドゲート
22を介してキャッシュ制御装置に出力され、ロックさ
れて“1”の場合には強制的にLRUビットが“0”、
すなわちロックが実装されていない方のウェイが最近使
われていないように見せるように構成される。なお、こ
のエントリが参照されるとロックが解除されて古いLR
Uビットの値が出力されてしまうが、この時LRUカウ
ンタ21はこの参照によつて最近使われたエントリとし
て正しく書き換えられるため、正しく動作することにな
る。
【0051】この実施形態にあっては、前述した実施形
態で挙げたようなプログラムを実行した場合に、ロック
機能のついたウェイは図4に示すように動作する。すな
わち、前述した実施形態での動作と全く同一である。し
かし、前述した実施形態では、命令xによって命令iが
プリフェッチした0x40000000番地の内容は失
われず、後続のキャッシュミスは防止できるが、命令x
が参照した0x40110000番地の内容はキャッシ
ュされない。しかし、この実施形態では、命令xが参照
した内容はロック機能を持たない方のウェイに確実にキ
ャッシュされるため、前述した実施形態以上の性能改善
が見込まれる。
【0052】
【発明の効果】以上説明したように、この発明によれ
ば、プリフェッチデータを格納する際に対応するエント
リのロックフラグを立ててプリフェッチデータをロック
し、ロックされたプリフェッチデータが読み出される際
にロックフラグを下ろしてロックを解除するようにした
ので、プリフェッチデータの消失を招くことなくプリフ
ェッチのアクセスタイミングの自由度を高め、かつ複雑
な制御を必要とすることなくロック解除が適切に行われ
てキャッシュ容量を有効に利用することができる。
【図面の簡単な説明】
【図1】請求項1又は3記載の発明の一実施形態に係る
キャッシュメモリ及び情報処理システムの構成を示す図
である。
【図2】ロックフラグを用いたプリフェッチアクセスの
処理の流れを示す図である。
【図3】図1に示すキャッシュ制御装置の状態遷移を示
す図である。
【図4】図1に示す実施形態と従来とのプリフェッチア
クセスの処理の流れを示す図である。
【図5】請求項2記載の発明の一実施形態に係るキャッ
シュメモリの構成を示す図である。
【図6】キャッシュメモリの接続形態を示す図である。
【図7】従来のプリフェッチアクセスの処理の流れを示
す図である。
【図8】プリフェッチの発行が遅い場合のプリフェッチ
アクセスの処理の流れを示す図である。
【図9】プリフェッチの発行が早い場合のプリフェッチ
アクセスの処理の流れを示す図である。
【符号の説明】
1 マイクロプロセッサ 2 メモリ装置 3 タグメモリ 4 データメモリ 5 アクティブフラグメモリ 6 ロックフラグメモリ 7 比較器 8,22 アンドゲート 9 アドレスバス 10 アドレス生成カウンタ 11 キャッシュ制御装置 12 双方向バッファ 13 データバス双方向バッファ 14 データバス 20 LRUレジスタ 21 LRUカウンタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 全てのエントリ又は一部のエントリに対
    応して設けられ、リプレースを行う場合に、対応するエ
    ントリをリプレースの対象とするか否かを示すロックフ
    ラグと、 データのプリフェッチが行われた時は、プリフェッチデ
    ータが格納されたエントリに対応した前記ロックフラグ
    を立ててリプレースの対象から外し、プリフェッチを除
    くキャッシュアクセスが行われてヒットした時には、ヒ
    ットしたデータが格納されたエントリに対応した前記ロ
    ックフラグを参照し、該ロックフラグが立っている場合
    には該ロックフラグを下ろして対応するエントリをリプ
    レースの対象とし、リプレースが行われる時は対応する
    エントリの前記ロックフラグを参照し、ロックフラグが
    立っている場合には対応するエントリをリプレースの対
    象から外し書き込みを行わないように制御するキャッシ
    ュ制御回路を有することを特徴とするキャッシュメモ
    リ。
  2. 【請求項2】 n(n≧2)ウェイを有し、最近アクセ
    スされたか否かを示すLRU値に基づいて最近アクセス
    されていないウェイをリプレースの対象としてリプレー
    スの対象ウェイを決定するLRU(least Recently Use
    d) アルゴリズムを採用したnウェイセットアソシアテ
    ィブのキャッシュメモリであって、 前記ロックフラグがm(n>m≧1)ウェイのエントリ
    に対応して設けられ、 前記キャッシュ制御回路は前記LRU値に基づいてリプ
    レースするウェイを決定し、 前記ロックフラグを受けて、ロックフラグが立っている
    場合は該ロックフラグに対応するエントリがリプレース
    の対象から外れるように前記LRU値を制御して前記キ
    ャッシュ制御回路に出力するLRU回路を備えたことを
    特徴とする請求項1記載のキャッシュメモリ。
  3. 【請求項3】 前記請求項1又は2記載のキャッシュメ
    モリと、 予めデータをプリフェッチするプリフェッチ命令を実行
    して前記キャッシュメモリをアクセスした際に、前記キ
    ャッシュメモリにアクセスされたデータがプリフッチデ
    ータであることを前記キャッシュメモリに通知するマイ
    クロプロセッサを有することを特徴とする情報処理シス
    テム。
JP9129835A 1997-05-20 1997-05-20 キャッシュメモリ及び情報処理システム Pending JPH10320285A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9129835A JPH10320285A (ja) 1997-05-20 1997-05-20 キャッシュメモリ及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9129835A JPH10320285A (ja) 1997-05-20 1997-05-20 キャッシュメモリ及び情報処理システム

Publications (1)

Publication Number Publication Date
JPH10320285A true JPH10320285A (ja) 1998-12-04

Family

ID=15019416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9129835A Pending JPH10320285A (ja) 1997-05-20 1997-05-20 キャッシュメモリ及び情報処理システム

Country Status (1)

Country Link
JP (1) JPH10320285A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689776B2 (en) 2005-06-06 2010-03-30 Kabushiki Kaisha Toshiba Method and system for efficient cache locking mechanism
US8671246B2 (en) 2007-01-30 2014-03-11 Fujitsu Limited Information processing system and information processing method
US9235523B2 (en) 2012-12-10 2016-01-12 Canon Kabushiki Kaisha Data processing apparatus and control method thereof
US9361235B2 (en) 2013-12-19 2016-06-07 Canon Kabushiki Kaisha Information processing apparatus, method of controlling the same and computer-readable storage medium
JP2016139239A (ja) * 2015-01-27 2016-08-04 Necエンジニアリング株式会社 キャッシュメモリ制御装置および制御方法
JP2018519614A (ja) * 2015-05-13 2018-07-19 アプライド・マイクロ・サーキット・コーポレーション 追い出しを促すための先読みタグ
KR20190093144A (ko) * 2018-01-31 2019-08-08 울산과학기술원 락-프리 읽기를 제공하는 장치 및 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689776B2 (en) 2005-06-06 2010-03-30 Kabushiki Kaisha Toshiba Method and system for efficient cache locking mechanism
US8671246B2 (en) 2007-01-30 2014-03-11 Fujitsu Limited Information processing system and information processing method
US9235523B2 (en) 2012-12-10 2016-01-12 Canon Kabushiki Kaisha Data processing apparatus and control method thereof
US9361235B2 (en) 2013-12-19 2016-06-07 Canon Kabushiki Kaisha Information processing apparatus, method of controlling the same and computer-readable storage medium
JP2016139239A (ja) * 2015-01-27 2016-08-04 Necエンジニアリング株式会社 キャッシュメモリ制御装置および制御方法
JP2018519614A (ja) * 2015-05-13 2018-07-19 アプライド・マイクロ・サーキット・コーポレーション 追い出しを促すための先読みタグ
US10613984B2 (en) 2015-05-13 2020-04-07 Ampere Computing Llc Prefetch tag for eviction promotion
KR20190093144A (ko) * 2018-01-31 2019-08-08 울산과학기술원 락-프리 읽기를 제공하는 장치 및 방법

Similar Documents

Publication Publication Date Title
US5664147A (en) System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
KR100885277B1 (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
US5778422A (en) Data processing system memory controller that selectively caches data associated with write requests
KR100262906B1 (ko) 데이터 선인출 방법 및 시스템
US7237068B2 (en) Computer system employing bundled prefetching and null-data packet transmission
CN1240000C (zh) 用于改进超高速缓存性能的输入/输出页面删除确定
KR100240912B1 (ko) 데이터 프리페치 장치 및 시스템, 캐시 라인 프리페치 방법
US6499085B2 (en) Method and system for servicing cache line in response to partial cache line request
TW508575B (en) CLFLUSH micro-architectural implementation method and system
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US7895399B2 (en) Computer system and control method for controlling processor execution of a prefetech command
US20020042863A1 (en) Storing a flushed cache line in a memory buffer of a controller
US20060179174A1 (en) Method and system for preventing cache lines from being flushed until data stored therein is used
US20100064107A1 (en) Microprocessor cache line evict array
US6345320B1 (en) DMA address buffer and cache-memory control system
US7165146B2 (en) Multiprocessing computer system employing capacity prefetching
JPH09160827A (ja) コールド・キャッシュ命令のプリフェッチ
US20050204088A1 (en) Data acquisition methods
US5717894A (en) Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
US6976130B2 (en) Cache controller unit architecture and applied method
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JP3219196B2 (ja) キャッシュデータアクセス方法及び装置
US7600079B2 (en) Performing a memory write of a data unit without changing ownership of the data unit
GB2401227A (en) Cache line flush instruction and method