JP2000148590A - キャッシュロック装置及びキャッシュロック方法 - Google Patents

キャッシュロック装置及びキャッシュロック方法

Info

Publication number
JP2000148590A
JP2000148590A JP10323656A JP32365698A JP2000148590A JP 2000148590 A JP2000148590 A JP 2000148590A JP 10323656 A JP10323656 A JP 10323656A JP 32365698 A JP32365698 A JP 32365698A JP 2000148590 A JP2000148590 A JP 2000148590A
Authority
JP
Japan
Prior art keywords
data
entry
value
cache
bit
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.)
Granted
Application number
JP10323656A
Other languages
English (en)
Other versions
JP3495266B2 (ja
Inventor
Shinsuke Ono
慎介 大野
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 JP32365698A priority Critical patent/JP3495266B2/ja
Priority to US09/440,143 priority patent/US6643737B1/en
Publication of JP2000148590A publication Critical patent/JP2000148590A/ja
Application granted granted Critical
Publication of JP3495266B2 publication Critical patent/JP3495266B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

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)【要約】 (修正有) 【課題】 無効なデータがロックされないようにして、
ロック命令実行時にデータをキャッシュに転送する必要
をなくすキャッシュロック装置を提供する。 【解決手段】 ロックビットが存在し、かつその値が1
であるエントリに於いて、バリッドビットがインアクテ
イブである場合には、このエントリが書き換えの対象と
なるようにLRU出力の値を変更するLRU出力変更回
路と記前LRU出力変更回路によって決定された書き換
え対象のエントリに対して書き込みを実行させるLRU
制御回路とを備えたキャッシュロック装置。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュ装置及
びその制御方法に関し、特にキャッシュロック装置を含
むキャッシュ装置及びその制御方法に関するものであ
る。
【0002】
【従来の技術】近年、キャッシュの利用効率、特にヒッ
ト率を向上させる為に、特定のデータを保持したウェイ
のデータ書換えを禁止制御するキャッシュロック装置が
注目されてきている。ここで、簡単にキャッシュについ
て説明すると、図17に示す様に、一般に大容量だがデ
ータの出し入れが低速な外部メモリ1と、データを処理
する演算器部であるCPU2との間に介在する小容量・
高速メモリ3を指す。
【0003】一般に、大容量のメインメモリ1はCPU
からアドレスが出力されて必要なデータをCPU2に送
り出す、所謂アクセススピードが低速であるため、頻繁
にアクセスするデータは、最初のアクセスの時点でメモ
リ1からアクセススピードが高速なキャッシュ3へコピ
ーすることにより、以降のアクセスでのレスポンスタイ
ムを短縮するのが目的である。
【0004】以下、まず従来のキャッシュメモリの構成
について述べる。図5(A)に一般的なキャッシュ3の
構成を示す。当該キャッシュ3は、入力されるデータの
インデックス部のアドレスに基づいてエントリを選択す
るセレクタ501と、複数のエントリによって構成され
たメモリアレイ505とによって構成されている。メモ
リアレイ505は、タグメモリアレイTagAと、デー
タメモリアレイDatA、バリッドビットアレイVB
A、LRUビットアレイLRUBA及びロックビットア
レイLBAによって構成されている。
【0005】係るキャッシュ3に於いて、各アレイがま
とまり、ウェイWと呼ばれる単位を構成する(図5
(A)の点線で囲まれた範囲の構成を示す)。ただし、
本例ではロックビットアレイLBA を持つのはウェイW0
とウェイW1のみである。キャッシュ3は、ウェイ0
(W0)〜ウェイ3(W3)の4つのウェイWから構成
され、一般に4ウェイキャッシュと呼ばれる。
【0006】係るキャッシュ装置3に於いて使用される
データ4の構成の例を図5(B)に示すが、例えば、当
該データ4は、アドレス部5とデータ部6とから構成さ
れており、当該アドレス部5は更にタグ部7、インデッ
クス部8、オフセット部9とで構成されている。又、各
部分のデータの大きさは、例えば、当該タグ部7は20
ビット、当該インデックス部8は6ビット、当該オフセ
ット部9は5ビットでそれぞれ構成されているものであ
り、又当該データ部6は、例えば64バイト、256ビ
ットで構成されているものである。
【0007】各アレイ中で同一のインデックス番号を有
する行を纏めてエントリーと称し1エントリ10はタグ
部Tag 、データ部Dat 、バリッドビットVB、LRUビッ
トLRUB、ロックビットLB(但しロックビットLBを有する
のは、ウェイW0,W1内のエントリのみ)から構成さ
れる。詳しくは後述するが、タグ部Tag には、格納しよ
うとするデータのタグ部7に格納されているタグTAG と
呼ばれるアドレスの上位ビットである、タグデータTAG
を格納し、データ部Dat には格納しようとするデータの
データ部6に格納されているデータDA0 が格納される。
【0008】バリッドビットVBは格納されたデータの有
効/無効を表し、LRUビットLRUBはメモリ1から読み
込んだデータを上書きしてもよいエントリ10を表す。
当該ロックビットLBは、上書きされたくないエントリ1
0を指定するのに用いる。任意のメモリアドレスに対し
て、そのアドレスのデータを格納するエントリを、当該
キャッシュ装置3に格納しようとするデータのインデッ
クス部8に格納されているインデックス値と一致する行
番号を有するエントリー10を選定する。
【0009】つまり、キャッシュ装置3に於いては、同
一のインデックス値を有するエントリ10は各ウェイ;
W0〜W3に一つずつ存在するので、4ウェイの場合に
は4エントリ10−0、10−1、10−2、10−
3、が存在する。これにより、任意のアドレスのデータ
をキャッシュへ格納、あるいはキャッシュ内から検索す
る際には、この4エントリ10−0、10−1、10−
2、10−3のみをアクセスすれば十分となる。
【0010】一方、あるメモリアドレスのデータをアク
セスする際には、まずキャッシュ3にそのアドレスのデ
ータが存在するかどうかをチェックするために、上記の
4エントリ10−0、10−1、10−2、10−3が
検索される。当該データが存在する場合には、そのデー
タを格納するエントリ10−nにアクセスし、当該デー
タが存在しない場合にはメモリ1からデータを読み込
み、上記4エントリ10−0、10−1、10−2、1
0−3のうちの適当なエントリ10−nへデータを格納
した後に、そのエントリ10−nにアクセスすることに
なる。
【0011】所定のエントリ10−nへデータを格納す
る際には、格納すべきデータに於けるインデックス部8
のインデックス値を抽出し、当該インデックス値と同一
の行番号をもつエントリ10−nを選択し、そのエント
リ10−nのタグ部Tag に、当該格納すべきデータに於
けるアドレス部5の上位ビットであるタグ部5のタグデ
ータTAG を格納すると共に、当該格納すべきデータのデ
ータ部6に於けるデータDAを当該エントリ10−nのデ
ータ部Dat に格納し、バリッドビットVBを1にする。
【0012】ここで、バリッドビットVBはそのエントリ
10−nのデータ部Dat のデータDAの有効/無効を示す
ビットである。一方、指定したメモリアドレスのデータ
をキャッシュ内から検索する際には、まず図5(A)に
示すように、各ウェイW0〜W3のそれぞれから、上記
4エントリ10−0、10−1、10−2、10−3の
タグ部(Tag0〜Tag3)、データ部(Dat0〜Dat3)、バリ
ッドビットVB(VB0 〜VB3 )、LRUビットLRUB(LRUB
0 〜LRUB3 )、ロックビットLB(LB0 〜LB3 )の各デー
タをそれぞれ読み出す。
【0013】次に図6に示すように、これらの値と、格
納すべきデータに於ける、指定したメモリアドレスのタ
グデータTAG とを比較し、キャッシュヒット信号W0hit
〜W3hit 、およびキャッシュミス信号W0miss〜W3missを
生成する。このヒット・ミス判定回路は、20ビットの
TAG と20ビットのTagn(n=0〜3)とをそれぞれ比較する
4つの比較回路601〜604と、この比較回路の出力
を一端に設け、他端に対応するバリッドビットVBn
(n=0〜3)を受ける4つのANDゲート605〜6
08と、ANDゲートの出力を受ける4つのインバータ
609〜612とから構成されている。
【0014】キャッシュヒット信号 Wnhit(n=0,1,
2,3)は、TAG=Tagnかつ VBn=1の時に1となる信号
であり、この信号が1となるウェイのエントリが、指定
したメモリアドレスのデータを格納していることにな
る。キャッシュミス信号Wnmiss(n=0,1,2,3)は、TAG
≠ Tagn の時に1となる信号である。
【0015】上記より、図7(A)に示す様に、キャッ
シュヒット時にはW0hit 〜W3hit のいずれかが1とな
り、これらはCPU側のデータバスと、各ウェイのデー
タバス(data0〜data3)との接続のコントロールに用
いられる。また、図7(B)に示す様に、キャッシュミ
ス時にはW0miss〜W3missが全て1となり、これらは後述
するセレクト信号W0sel〜W3selと組み合わせて、メモリ
側のデータバスとdata0〜data3との接続のコントロール
に用いられる。
【0016】このバス選択回路は、キャッシュミス信号
Wnmiss(n=0〜3)を受けるANDゲート701とAN
Dゲートの出力が一端に共通に接続され、他端にウェイ
選択信Wnsel (n=0〜3)が入力された4 つのAND
ゲート702〜705によって構成されている。検索し
た4エントリ10−0、10−1、10−2、10−3
中に指定したメモリアドレスのデータが存在しなかった
場合には、この4エントリ中から1エントリを選択し
て、メモリからそのデータを読み込み、選択したエント
リに格納、すなわち、現在格納しているデータに上書き
する。
【0017】このエントリの選択のために、LRUを用
いる。LRUは、Least Recently Used の略であり、一
番古くアクセスされたエントリを書換えの対象とする為
に各ウェイで同一の行番号を持つエントリ間で、アクセ
スを受けた順序を保持するロックビットLRUビットに
よって表現される。当該LRUビットLRUBの最小値は0
であり、これらのエントリ間でもっとも最近にアクセス
を受けたエントリであることを示す。
【0018】又、当該LRUビットLRUBの最大値は3で
あり、これらのエントリ間でもっともアクセスされた時
期が古いエントリであることを示す。つまり、各エント
リのLRUビットLRUBは、各エントリにアクセスした
際、アクセス時期を保存するため0〜3の何れかの値を
示すように随時更新される。従って、あるメモリアドレ
スのデータをアクセスした時、そのデータがキャッシュ
内に存在しなかった場合には、そのデータはメモリから
読み込まれ、アクセスを受けた時期が一番古いエント
リ、すなわちLRUのビットLRUB値が最大値、本例では
3となっているエントリに上書きされる。
【0019】このようにして書き換えられるべきエント
リを有するウェイを決定する為に、図8に示されるウェ
イ選択回路801は、LRUBn(n=0〜3)を入力
し、これらのうち最大の値に対応するウェイ選択信号W
nsel(n=0〜3)を1にする。当該データ上書き
のエントリ選択にLRUビットアレイが用いられるの
は、一旦アクセスを受けなくなりはじめたデータは、再
びアクセスを受ける可能性が低いことが経験的に知られ
ているからである。
【0020】以上が、一般的なLRUを用いたキャッシ
ュの動作である。ただしロックビットを持つキャッシュ
構成の場合、W0sel 〜W3sel の生成論理が少し変わる。
つまり図12に示す様に、ロックビットLBが1のエント
リ10は、データの上書きが禁止されていることを示し
ているため、LBn (n=0,1)が1の時には、Wnsel
(n=1,2)は1となってはならない。
【0021】このために、LRUビットのビット値をロ
ックビットの反転論理でマスクし、その最大値から、W0
sel 〜W3sel を生成するようにする。これにより、LB0
が1の場合はLRUB0 とのマスク結果は0となり、最大値
とはなり得ないため、W0selが1となることはなくウェ
イ0は選択されない。同様に、LB1 が1の場合はW1sel
が1とならず、ウェイ1は選択されない。
【0022】更に、図7(B)に示す様に、W0miss〜W3
missと、W0sel 〜W3sel とから、メモリ1のデータバス
と各ウェイ10のデータバスdata0 〜data3 との接続の
コントロール信号線が生成される。このコントロール信
号に基づいて、W0sel 〜W3sel により指定されたウェイ
のデータバスとメモリ側のデータバスとが接続され、メ
モリから読み出されたデータが指定されたウェイの選択
されたエントリに書き込まれる。
【0023】此処で、従来に於けるキャッシュ装置3を
使用してキャッシュロックを実行する場合の例を簡単な
具体例を参照しながら説明する。先ず図9を参照しなが
ら、メモリ1内の各データがキャッシュ3のどこに格納
されるか説明する。例として、メモリ1内のアドレス0x
dffcaabb番地に格納されているデータが 0x88 であると
する。これ以降、混同を防ぐため、16進数の値には、
0xを数字の先頭に付記する。
【0024】此処で、当該アドレスは16進数表記であ
り、これを2進数で表すと、以下の通りである。 係るアドレスのうち、前記した様に、上位数ビットの2
0ビット(例えば第31ビット〜第12ビット)はタグ
TAG、中位数ビットの6ビット(例えば第11ビット
〜第6ビット)はインデックス(Index)、残りの下位ビ
ットの5ビット(第5ビット〜第0ビット)はオフセッ
ト(Offset)である。
【0025】従って、上記アドレスの場合、タグ、イン
デックス、オフセットはそれぞれ、 タグ: 1101 1111 1111 1100 1010 ( = 0xdffca) インデックス: 1010 10 ( = 10 1010 = 0x2a) オフセット: 11 1011 ( = 0x3b) である。
【0026】各データのキャッシュ内での格納場所は、
キャッシュ3のLRUビット(LRUB) の値、およびアド
レスのインデックスとオフセットの値から決まる。上記
例の場合、インデックスは0x2a(10進数だと40)な
ので、図9に示す様に、キャッシュ3のウェイW0 〜W
3 の40番地に格納される。図9に示すように、各ウェ
イW0 〜W3 のエントリは、20ビットのタグ部Ta
g、256ビット(=64バイト)のデータ部Dat、1
ビットのバリッドビットVB、および1ビットのモディ
ファイビットMoから構成されている。オフセットの値
から、64バイトのデータ部(Dat)のどこにデータを格
納するかが決まる。
【0027】上記例では、図9に示す様に、オフセット
は0x3b(10進数で59)なので、結局0xfffcaabb番地
8ビットのデータ(0x88)は、データ部の59バイト目に
格納される。この時、特定のアドレスにアクセスが有っ
た場合、その後に近辺のアドレスがアクセスされる頻度
が高い事が経験的にわかっているので、メモリ1からデ
ータをキャッシュ3に格納する際には、データはキャッ
シュ3の1エントリ10のデータ部(Dat)のサイズ
(図9では64バイト)単位で格納される。
【0028】従って、上記例では、0xdffcaabbのデータ
をキャッシュに格納する際には、0xdffcaabbと同一タ
グ、同一インデックスとなるアドレスのデータ、すなわ
ち0xdffcaa80(オフセットが0x00)〜0xdffcaabf(オフ
セットが0x3f)のアドレスのデータが、まとめてキャッ
シュ3の40番地に格納され、アドレスのタグTAG(上
記例では0xdffca )が、図9に示す様に、データを格納
するエントリのタグ部(Tag)に書き込まれると共に、デ
ータを格納するエントリ10のバリッドビットVBに1が
書き込まれる。これは、キャッシュ1の各エントリ10
が有効なデータを格納していることを示すためである。
【0029】又、ロード・ストア命令の対象となるアド
レスのデータがキャッシュ内に格納されているかどうか
を判断するには、インデックス及びタグデータを使用す
る事になる。例えば、0xdffcaabb番地のデータがキャッ
シュに格納されているかどうかを判断するには、0xdffc
aabbのインデックスは0x2a(10進数では40)なの
で、キャッシュ3に格納されているとしたら、キャッシ
ュ3の40番地のエントリに格納されているはずであ
る。したがって、図10に示す様に、キャッシュ3のエ
ントリ40番地のデータ部(Dat)の値を読み出し、20
ビットの比較器1101によって0xdffcaと等しいかど
うかを確かめると共に、データが有効かどうかをたしか
めるために、比較器1101の出力をANDゲート11
02を使ってバリッドビットでマスクする必要がある。
【0030】バリッドビットは、例えばリセット時に、
偶然キャッシュの40番地のタグフィールドが0xdffca と
なっている場合、0xdffcaa80〜0xdffcaabf番地への最初
のロード・ストア命令時の格納チェックに対しても、デ
ータがキャッシュ内に存在すると判断されてしまうこと
を防止する為のものである。これは、キャッシュ内部の
ビットをすべて初期化する為の回路が大きいことや、初
期化してもその初期化の値と同じアドレスが入力される
と誤判断されることから、初期化を行っていない事に起
因し、このような誤判断を避けるのがバリッドビットの
役割である。電源投入時に全てのバリッドビットを0に
クリアし、メモリからデータ部へデータが転送されたエ
ントリのバリッドビットを1にする。
【0031】これにより、バリッドビットが1のエント
リのタグ、データは有効な(初期状態のままではない)
値であることを保証することができる。上記した構成を
有するキャッシュロック装置に於て、上記のLRUビッ
トに基づいたエントリのデータの入れ替え方法は、でき
るだけ頻繁にアクセスを受けるデータをキャッシュ内に
とどめようとする方法であるが、OS(オペレーティン
グシステム)命令が用いるデータ等のように、頻繁には
アクセスを受けないが、いったんアクセスを受けた場合
にはできるだけ高速にデータのやり取りを行いたい場合
が存在する。
【0032】このような場合に対処するためには、ユー
ザーが指定した特定アドレスのデータを格納するエント
リを、データ入れ替えの対象から除外するような機構が
必要であり、これがキャッシュロック機構である。図1
1及び図12に従来のキャッシュロック機構を備えたキ
ャッシュの構成を示す。前記した様に、キャッシュ装置
に於けるウェイW0とウェイW1の各エントリにロック
ビットLBが設けられている。このロックビットLBは、ロ
ック命令にウェイとキャッシュの番地を与えることによ
り書き込みができる。したがって、データをキャッシュ
内に常駐させたい場合には、そのデータが格納されてい
るエントリのロックビットにロック命令を使って1を書
き込めばよい。
【0033】ロックビットが1となっているエントリ
は、新しいデータの上書き対象から除外される。図11
は、0xdffcaa80番地から0xdffcaabf番地のデータをキャ
ッシュに格納する場合を示している。インデックスは0x
2a(10進数で40)なので、ウェイW0〜ウェイW3
の40番地のいずれかに格納される。本例では、ウェイ
W0の40番地のLRUビット値が最大なので、キャッ
シュロック機構のない場合ならばメモリからのデータは
ウェイW0の40番地に格納されるが、ウェイW0の4
0番地のロックビットが1となっているので、ウェイW
0の40番地は新しいデータとの入れ替え対象から除外
され、次にLRUビット値LRUBが大きいウェイW3の4
0番地が格納先として選択されている。これを実現する
には、図12に示す様に、各ウェイからのLRU出力値
LRUBをロックビットLBの出力値の反転でマスクしたもの
の最大値を選択すればよい。
【0034】
【発明が解決すべき課題】然しながら、従来のキャッシ
ュロック機構では、ロックビットに1を書き込んだエン
トリのデータは、バリッドビットの値によらずメモリか
らのデータ入れ替えの対象から除外されてしまう。すな
わち、バリッドビットが0である(無効なデータを格納
している)エントリのロックビットを1にすると、その
エントリはメモリからの新しいデータを格納することが
できず、無効なデータを格納し続けることになり、キャ
ッシュの実効容量が低下することになる。
【0035】これを避けるには、図13に示す様に、ロ
ックビットを1にセットする時点で、常駐させたいデー
タをメモリから転送してロックするエントリに格納する
必要がある。即ち、キャッシュ内にロックしたいデータ
に対してアクセスする命令を行った後、そのデータがキ
ャッシュ内に留まっている間にロックを発行する必要が
ある。従って、ロックを発行するタイミングが難しい。
【0036】このことから、データをロックする場合、
プログラム中で実際にそのデータがアクセスされるか否
かにかかわらず、ロックしたいデータをメモリからキャ
ッシュへ転送する必要が生じ、本来不必要となり得る転
送をも行わねばならないという欠点があった。更には、
プログラム中で実際にアクセスを受けるデータを事前に
特定することは困難であるため、このような状況は頻繁
に生じ、またメモリからキャッシュへのデータ転送は低
速なため、不必要であるはずの転送を行わねばならない
ことによる性能の低下は大きい。
【0037】係る問題を解決する為に、例えば特開平4
−324547号公報には、無効データをバスの空きサ
イクルに有効手段で更新することによりキャッシュのヒ
ット率を向上させる方法が開示されているが、係る公知
例では、キャッシュ装置に常駐させたいデータがキャッ
シュ装置上で安易に上書きされない様に構成されたキャ
ッシュロック装置に関しては、何等の開示も示唆も見ら
れないのであり、又特開平6−243045号公報に
は、タグメモリの容量と面積を削減して、初期状態に於
けるヒット率の高いキャッシュメモリを得る技術に関し
て開示されてはいるが、キャッシュ装置に常駐させたい
データがキャッシュ装置上で安易に上書きされない様に
構成されたキャッシュロック装置に関しては、何等の開
示も示唆も見られない。
【0038】更には、特開平8−339331号公報に
は、タグレジスタの内容とアクセスアドレスのブロック
番号とが一致するかどうかを判定するアドレス比較手段
を設けた記憶装置に関して記載されているが、上記した
様なキャッシュ装置に常駐させたいデータがキャッシュ
装置上で安易に上書きされない様に構成されたキャッシ
ュロック装置に関しては、何等の開示も示唆も見られな
い。
【0039】従って、本発明の目的は、無効なデータが
ロックされて無効なデータがキャッシュ内に留まらない
ようにする事によって、即ち、キャッシュの効率を向上
させた、ユーザの希望するデータに対するアクセススピ
ードを向上させるキャッシュロック装置を含むキャッシ
ュ装置及びその制御方法を提供するものである。
【0040】
【課題を解決するための手段】本発明は上記した目的を
達成する為、以下に示す様な基本的な技術構成を採用す
るものである。即ち、本発明に係る第1の態様として
は、メインメモリと、キャッシュメモリと、キャッシュ
ロック命令に応答して前記メインメモリ上の対応するデ
ータの第1のアドレスをバスに出力し、アクセス命令に
応答して前記メインメモリ上の対応する第2のアドレス
を前記バスに出力するCPUと、前記第1のアドレスを
受けてキャッシュメモリ上の第1のエントリを選択する
第1のエントリ選択回路と、前記第1のエントリのタグ
部に前記第1のアドレスのタグデータを書き込む書き込
み回路と、前記第1のエントリのロックビットをアクテ
ィブにセットするロックビット変更回路と、前記第2の
アドレスに応答して前記キャッシュメモリ上の対応する
第2のエントリを選択する第2のエントリ選択回路と、
前記第2のアドレスのタグ部の値TAGと前記第2のエ
ントリのタグ部の値tagとを比較するタグ比較回路
と、前記第2のエントリのロックビットの状態を検出す
るロックビット検出回路と、前記第2のエントリのロッ
クビットがアクティブであり、前記タグ値の比較結果が
一致し、かつバリッドビッドがインアクティブである場
合には、このエントリが書換えの対象となるようにLR
U出力の値を変更するLRU出力変更回路と、前記LR
U出力変更回路によって決定された書換え対象のエント
リに対して書き込みを実行させるLRU制御回路とを備
えたキャッシュロック装置である。
【0041】係る構成を採用する事によって、無効なデ
ータがロックされて無効なデータがキャッシュ内に留ま
らないように出来るのでキャッシュの効率を向上させ
た、ユーザの希望するデータに対するアクセススピード
を向上させたキャッシュロック装置を含むキャッシュ装
置が得られるのである。又、本発明に係る第2の態様と
しては、メインメモリと、少なくとも、タグメモリアレ
イ、データメモリアレイ、バリッドビットアレイ、及び
LRUビットアレイからなるエントリが複数個集合され
て構成されたウェイを複数個配列せしめて形成されたキ
ャッシュメモリであって、且つ少なくとも一部の当該ウ
ェイを構成する各エントリにロックビットアレイが設け
られているキャッシュメモリと、キャッシュロック命
令、或いはロード・ストア命令等に応答して前記メイン
メモリ上の対応する当該キャッシュメモリに転送すべき
データのアドレスをバスに出力するCPUとから構成さ
れたキャッシュロック装置に於いて、キャッシュロック
命令に応答して、前記アドレスを受けて、当該データの
インデックス部に含まれるインデックス値と同一のエン
トリ番号を有するキャッシュメモリ上のエントリでかつ
ロックビットを有するウェイを選択するウェイ選択回路
と、前記アドレスを受けて、当該選択されたウェイに於
ける当該データのインデックス部に含まれるインデック
ス値と同一のエントリ番号を有するキャッシュメモリ上
のエントリを選択するエントリ選択回路と、当該選択さ
れたエントリに常駐すべきデータのアドレスに含まれる
タグ部のタグデータを格納する書き込み回路と当該タグ
データの格納に応答して、当該ロックビットの値を第2
の値にするロックビット変更回路とを有しているキャッ
シュロック装置である。
【0042】係る構成によるキャッシュロック装置に於
いては、キャッシュメモリ上に常駐させたいデータの常
駐場所を容易に且つ迅速に決定する事が可能となる。更
に、本発明に係る第3の態様としては、メインメモリ
と、少なくとも、タグメモリアレイ、データメモリアレ
イ、バリッドビットアレイ、及びLRUビットアレイか
らなるエントリが複数個集合されて構成されたウェイを
複数個配列せしめて形成されたキャッシュメモリであっ
て、且つ少なくとも一部の当該ウェイを構成する各エン
トリにロックビットアレイが設けられているキャッシュ
メモリと、キャッシュロック命令、或いはロード・スト
ア命令等に応答して前記メインメモリ上の対応する当該
キャッシュメモリに転送すべきデータのアドレスをバス
に出力するCPUとから構成されたキャッシュロック装
置に於いて、当該メモリ手段から当該キャッシュメモリ
に対して転送したいデータを転送するに際して、当該キ
ャッシュロック装置は、ロード命令或いはストア命令に
応答して、メモリ手段内に存在する、当該転送したいデ
ータを構成するインデックス部のインデックス値と同一
のエントリー番号を有するエントリーを当該複数のウェ
イのそれぞれから選択するエントリ選択回路、当該選択
された当該複数のエントリーのそれぞれに於いて、当該
ロックビットアレイが設けられているかを検出し判別信
号を出力するロックビット検出回路、所定のエントリに
於ける当該ロックビット検出回路からの判別信号がロッ
クビット有りでかつその値が第2の値である場合に、当
該エントリに於けるバリッドビットが第2の値であるか
否かを判断するバリッドビット判定回路、当該バリッド
ビット判定回路の判定信号が、当該エントリに於けるバ
リッドビットが第2の値である場合に当該エントリの当
該データ部に当該転送したいデータを構成するデータ部
のデータの上書きする事を禁止するデータ上書き禁止手
段、所定のエントリに於ける当該ロックビットの値が第
2の値である場合で、当該選択されているエントリーの
タグ部の値が当該転送したいデータを構成するタグ部の
タグ値と一致し、かつ当該バリッドビットアレイに於け
るバリッドビット値が第1の値である場合には、当該エ
ントリーの当該データ部に当該転送したいデータを構成
するデータ部のデータを上書きする事を許可すると同時
に当該エントリーのバリッドビットアレイに於ける当該
バリッドビットのビット値を第2の値に書き換えるバリ
ッドビット書換え回路、及びLRU値を第1の値に変更
するLRU出力変更回路とから構成されているキャッシ
ュロック装置である。
【0043】係る構成を採用する事によって、既にキャ
ッシュメモリ内に格納されている複数個のデータに対し
て、新たにキャッシュメモリ内に常駐させたいデータが
発生した場合に於て、キャッシュメモリ内に格納されて
いる複数のデータのうちどのデータを新たな常駐させた
いデータと置換すればよいかの判断を正確、容易かつ迅
速に行う事が可能となる。
【0044】一方、本発明に於ける第4の態様として
は、メインメモリと、少なくとも、タグメモリアレイ、
データメモリアレイ、バリッドビットアレイ、及びLR
Uビットアレイからなるエントリが複数個集合されて構
成されたウェイを複数個配列せしめて形成されたキャッ
シュメモリであって、且つ少なくとも一部の当該ウェイ
を構成する各エントリにロックビットアレイが設けられ
ているキャッシュメモリと、キャッシュロック命令、或
いはロード・ストア命令等に応答して前記メインメモリ
上の対応する当該キャッシュメモリに転送すべきデータ
のアドレスをバスに出力するCPUとから構成されたキ
ャッシュロック装置に於いて、当該キャッシュ装置は、
キャッシュロック命令に応答して、当該キャッシュメモ
リに常駐させたいデータのアドレスに於けるタグ部のデ
ータとインデックス部のインデックスとを抽出する手
段、当該複数のウェイから当該ロックビットアレイを有
するウェイを選択する手段、当該選択された当該ウェイ
中から、キャッシュ装置に常駐させたいデータのアドレ
ス部に於ける当該インデックス部のインデックスの値と
同一のエントリー番号を有するエントリーを選択する手
段、当該選択されたエントリーの当該タグ部に、当該常
駐させたいデータに於けるタグ部のデータを格納する手
段、当該常駐させたいデータのタグ部データを格納した
当該エントリーに於ける当該ロックビットの値を第2の
値に設定する手段、とから構成されている制御手段を含
んでいるキャッシュロック装置である。
【0045】係る構成を採用することによって、リセッ
ト後の初期の段階に於てキャッシュメモリに常駐させる
必要のあるデータが発生した場合、当該データのロック
操作を容易然も迅速に実行する事が可能となる。更に、
本発明に係る第5の態様としては、メインメモリと、少
なくともタグメモリアレイ、データメモリアレイ、バリ
ッドビットアレイ、及びLRUビットアレイからなるエ
ントリが複数個集合されて構成されたウェイを複数個配
列せしめて形成されたしたキャッシュメモリと、キャッ
シュロック命令、ロード命令或いはストア命令等に応答
して前記メインメモリ上の対応するデータのアドレスを
バスに出力するCPUとから構成されたキャッシュロッ
ク装置に於て、当該キャッシュメモリに常駐させるべき
データを当該キャッシュメモリに転送するに際し、当該
キャッシュメモリに転送すべきデータを選定し、指定さ
れたアドレスのインデックス値を抽出する第1の工程、
キャッシュメモリに転送すべきデータのインデックス値
と同じ値のエントリ番号を持つエントリをそれぞれのウ
ェイから選択する第2の工程、当該選択された各エント
リのそれぞれに対してロックビットLBを有するか否か
を判別する第3の工程、第3の工程において、当該選択
された各エントリのうち、ロックビットLBを持つエン
トリが存在している場合に、当該ロックビットLBが第
2の値で有るか第1の値であるかを判断する第4の工
程、第4の工程に於て、当該選択されたエントリのロッ
クビットLBが第2の値であった場合に、エントリのタ
グ部の値と、指定されたアドレスのタグ値とを比較する
第5の工程、第5の工程に於て、エントリのロックビッ
トLBが第2の値で当該タグの比較結果が一致した場合
に、当該エントリのバリッドビットの値が第2の値であ
るか第1の値であるかを判断する第6の工程、第6の工
程に於て、ロックビットの値が第2の値であるが、タグ
の比較結果が一致しないか、バリッドビットの値が第2
の値であった場合に、当該エントリのLRU出力を第1
の値にマスクし、当該エントリへの上書きを禁止する第
7の工程、第6の工程に於て、ロックビットの値が第2
の値、タグの比較結果が一致、バリッドビットの値が第
1の値であった場合に、当該エントリのLRU出力を第
2の値にセットし、他の選択されたエントリのLRU出
力を第1の値にマスクすることにより、当該エントリを
上書き対象とする第8の工程、当該選択された各エント
リのうち、LRU出力が最大であるエントリを選択する
第9の工程、第9の工程に於て選択されたエントリに対
して、データの上書きを行い、バリッドビットに第2の
値を書き込む第10の工程、とから構成されているキャ
ッシュロック方法である。
【0046】係る方法を採用する事によって、既にキャ
ッシュメモリ内に格納されている複数個のデータに対し
て、新たにキャッシュメモリ内に常駐させたいデータが
発生した場合に於て、キャッシュメモリ内に格納されて
いる複数のデータのうちどのデータを新たな常駐させた
いデータと置換すればよいかの判断を正確、容易かつ迅
速に行う事が可能となる。
【0047】又、本発明に係る第6の態様としては、メ
インメモリと、少なくともタグメモリアレイ、データメ
モリアレイ、バリッドビットアレイ、及びLRUビット
アレイからなるエントリが複数個集合されて構成された
ウェイを複数個配列せしめて形成されたしたキャッシュ
メモリと、キャッシュロック命令、ロード命令或いはス
トア命令等に応答して前記メインメモリ上の対応するデ
ータのアドレスをバスに出力するCPUとから構成され
たキャッシュロック装置に於て、当該キャッシュロック
装置が初期化された後に、最初に当該キャッシュメモリ
に常駐させるべきデータを当該キャッシュメモリに転送
するに際し、キャッシュロック命令が実行され、当該キ
ャッシュメモリに転送すべきデータを選定し、指定され
たアドレスのインデックス値を抽出する第1の工程、ウ
ェイの中からロックビットLBを有するウェイを選択す
る第2の工程、キャッシュメモリに転送すべきデータの
インデックス値と同じ値のエントリ番号を持つエントリ
をそれぞれのウェイから選択する第3の工程、第2の工
程でロックビットLBを有するエントリが存在している
場合に、何れかの当該エントリの一つを選択する第4の
工程、当該選択されたエントリのタグ部に、当該キャッ
シュメモリに常駐させるべきデータのタグデータを格納
し、ロックビットLBの値を第2の値に設定する第5の
工程、とから構成されているキャッシュロック方法であ
る。
【0048】係る方法を採用することによって、リセッ
ト後の初期の段階に於てキャッシュメモリに常駐させる
必要のあるデータが発生した場合、当該データのロック
操作を容易然も迅速に実行する事が可能となる。
【0049】
【発明の実施の形態】本発明に係るキャッシュロック装
置及びキャッシュロック方法は、上記した技術構成を採
用することにより、キャッシュに格納されているデータ
をロック(別のデータと入れ替えない)する機構を改良
した。即ち、従来の手法では、無効なデータをロックし
てしまう可能性があったが、本発明では、無効なデータ
をロックしようとした場合、ロックしようとしたエント
リ(データが格納される場所)に有効なデータを格納し
てからロックするようにして、無効なデータがキャッシ
ュ内に留まらないようにしたものである。
【0050】つまり、本発明に係る当該キャッシュロッ
ク装置及びキャッシュロック方法に於いては、ユーザー
が、キャッシュ装置に常駐させたい所定のデータをロッ
クしたい場合に、特にロックをかけるタイミングを意識
することなく、自動的に当該データのロックを実行出来
る事になる。
【0051】
【実施例】以下に、本発明の一実施例を図面を参照しな
がら詳細に説明する。図1及び図2は、本発明に係る当
該キャッシュロック装置の一具体例の構成の概要を示す
ブロックダイアグラムであって、図中、メインメモリ2
201と、キャッシュメモリ2207と、キャッシュロ
ック命令に応答して、ロックビットを持ち、データを常
駐させたいウェイの番号および、前記メインメモリ22
01上の対応するデータの第1のアドレスをバス220
2に出力し、或いはアクセス命令に応答して前記メイン
メモリ2201上の対応する第2のアドレスを前記バス
に出力するCPU2200と、前記データを常駐させた
いウェイの番号を受けてキャッシュメモリ2207上の
ウェイW0〜W3を選択するウェイ選択回路2101
と、前記第1のアドレスを受けてキャッシュメモリ22
07上のエントリ10−0〜10−3を選択するエント
リ選択回路2105と、前記ウェイ選択回路2101の
出力とエントリ選択回路2105の出力より、10−0
〜10−3のうちから一つに決まる第1のエントリのタ
グ部に前記第1のアドレスのタグデータを書き込む書き
込み回路2103と、前記第1のエントリのロックビッ
トをアクティブにセットするロックビット変更回路21
04と、前記第2のアドレスに応答して前記キャッシュ
メモリ2207上の対応する第2のエントリ10−0〜
10−3を選択する第2のエントリ選択回路2105
と、前記第2のエントリ10−0〜10−3のタグ部の
値のそれぞれを、前記第2のアドレスのタグ値と比較す
る回路2106と、前記第2のエントリのロックビット
の状態を検出するロックビット検出回路2204と、前
記第2のエントリのバリッドビットを読み出すバリッド
ビット検出回路15と、前記第2のエントリのLRUビ
ットを読み出すLRUビット検出回路2110と、前記
第2のエントリ10−0〜10−3のロックビット、タ
グ比較結果、バリッドビットの値に応じて、読み出した
LRU値の変換を行うLRU出力変更回路2205と、
前記LRU出力変更回路2205の出力を受けて、メモ
リから読み出した前記第2のアドレスのデータを格納す
るウェイを決定するウェイ選択回路2109と、ウェイ
選択回路2109の出力とエントリ選択回路2105の
出力とから、第2のエントリのうちで一つに決まる第3
のエントリに対してメモリから読み出したデータを格納
し、第3のエントリのバリッドビットを1にセットし、
LRUビットに1をセットするデータ転送制御回路21
08と、LRU出力回路2205の出力を受けて、ロー
ド命令時にはCPUにデータを渡すべき、或いはストア
命令時にはCPUからのデータを格納すべきウェイを選
択するウェイ選択回路2101と、ウェイ選択回路21
01の出力とエントリ選択回路2105の出力から一意
に決まる第4のエントリに対して、CPUとキャッシュ
間でのデータ転送の制御を行うデータ転送制御回路21
07を備えるたキャッシュロック装置100が示されて
いる。
【0052】即ち、図1と図2は、略共通の回路手段で
構成されているが、図1は、主に当該キャッシュロック
装置100をキャッシュロック命令によって、当該キャ
ッシュメモリ2207のロック操作が実行される場合に
使用される回路構成を示すものであり、又図2は、ロー
ド命令或いはストア命令に従って、メインメモリ220
1に格納されているデータを、当該キャッシュメモリ2
207に転送する場合に使用される回路構成を示すもの
である。
【0053】従って、操作手順の相違によって、使用さ
れる回路は、同じものが使用される場合もあり、又異な
った回路が使用される場合もある。例えば、図2に示さ
れる当該第1のエントリ選択回路2105と第2のエン
トリ選択回路2213は、同一の回路が使用されるもの
であっても良い。同様に、当該メインメモリから読み出
されるデータのアドレスは、キャッシュロック命令に応
答して読み出されるデータのアドレスとロード命令或い
はストア命令に応答して読み出されるデータのアドレス
は、互いに同一のものである場合もあり、又互いに異な
る場合もある。
【0054】本発明に使用される、当該キャッシュメモ
リ2207は、少なくとも、タグメモリアレイTag
A、データメモリアレイDatA、バリッドビットアレ
イVBA、LRUビットアレイLRUBA及びロックビ
ットアレイLBAからなるエントリ10−0〜10−3
が複数個集合されて構成されたウェイW0〜W3を複数
個配列せしめて形成されたものである。
【0055】本発明に係る当該キャッシュロック装置に
於いては、少なくとも一部の当該ウェイW0〜W3を構
成する各エントリ10−0〜10−3にロックビットア
レイLBAが設けられている事が必要である。本発明に
於ける当該キャッシュロック装置100は、更に当該複
数のウェイ群W0〜W3の中から、一つのウェイを選択
する第1のウェイ選択回路2101、或いは第2のウェ
イ選択回路2109を含んでいる事が必要である。
【0056】本発明に於て使用される当該エントリ選択
回路2105は、当該メモリ2201内に存在するデー
タのアドレス部に含まれるインデックス部のインデック
ス値と同一のエントリ番号を有するエントリ10−0〜
10−3を選択する手段である。又本発明に於て使用さ
れる当該ロックビット変更回路2104は、当該選択さ
れたエントリーのタグメモリアレイ505を構成するタ
グ部Tagに、当該キャッシュ装置に常駐させたいデー
タを構成するタグ部のタグデータTAGを格納した後、
当該エントリーに於けるロックビットアレイを構成する
ロックビットの値を1に設定する手段である。
【0057】又、本発明に於ける当該ロックビット検出
回路2204は、当該選択された当該複数のエントリー
のそれぞれに於いて、当該ロックビットアレイが設けら
れているかを判断する機能、或いは当該ロックビットア
レイが設けられている場合に、当該ロックビットの値が
1か0かを判断する手段である。更に、図2に示す本発
明に係る当該キャッシュロック装置100において使用
される当該LRU出力変更回路2205は、当該各ウェ
イで同一のインデックス番号を持つエントリ間で、アク
セスを受けた順序を保持するために各エントリに割当ら
れているLRUビット値を、所定のエントリにアクセス
する毎に、その順序を当該エントリ間で変更するか、所
定の条件下において、LRUビット値を変更しないか、
又は所望の値に設定する手段である。
【0058】又、本発明に於て使用される当該ウェイ選
択回路2109は、各エントリのLRUB値が最大のエ
ントリを選択する手段である。以下に図1及び図2に示
される本発明に係るキャッシュロック装置100を使用
したキャッシュロック方法の一具体例の構成を図3およ
び図4を参照しながら詳細に説明する。
【0059】即ち、図1は、CPUが、キャッシュロッ
ク命令を実行した際に動作するブロックを示す。つま
り、キャッシュロック命令を実行する際には、ユーザが
指定したロックしたいデータのアドレスと、そのデータ
を格納するウェイ(ロックビットを持つウェイ)がCP
U2200から出力され、ロックしたいデータのアドレ
スのタグ部はCPU−キャッシュ接続バス2202へ、
インデックス部はインデックス選択回路であるエントリ
選択回路2105へ、ロックしたいデータを格納するウ
ェイの指定は、ウェイ選択回路2101へ転送される。
【0060】当該ウェイ選択回路2101の出力と、イ
ンデックス選択回路であるエントリ選択回路2105の
出力により、ロックしたいデータを格納するエントリが
決定される。CPU−キャッシュ間データ転送制御回路
2107により、CPU−キャッシュ接続バス2202
上のロックしたいデータのタグ部の値が、上記で決定あ
れたエントリのタグ部に書き込まれ、同時にエントリの
ロックビットが1にセットされる。
【0061】この時、指定されたエントリのバリッドビ
ットの状態とは無関係にエントリのロックは行われる。
この動作の流れを、図4に示すフローチャートによって
説明する。即ち、スタート後、ステップS11で、当該
キャッシュロック装置100をリセットした後、ステッ
プS12に於て、キャッシュロック命令が実行され、当
該キャッシュメモリに転送すべきデータを選定し、指定
されたアドレスのインデックス値を抽出する。
【0062】次いで、ステップS13に於て、ウェイの
中からロックビットLBを有するウェイを選択し、ステ
ップS14に進んで、当該キャッシュメモリに転送すべ
きデータのインデックス値と同じ値のエントリ番号を持
つエントリをそれぞれのウェイから選択する。その後、
ステップS15に於て、上記ステップS13でロックビ
ットLBを有するエントリが存在している場合に、何れ
かの当該エントリの一つを選択した後に、当該選択され
たエントリのタグ部に、当該キャッシュメモリに常駐さ
せるべきデータのタグデータを格納し、ロックビットL
Bの値を1に設定する。
【0063】次いで、ステップS16に於いて、さらに
当該キャッシュメモリに常駐させたいデータが有るか否
かを判断し、YESであればステップS12に戻り、上
記の工程が繰り返され、NOであれば、エンドとなる。
続いて、図2に、本発明に係るキャッシュロック装置1
00に於ける、CPU2200がロード・ストア命令を
実行した際に動作するブロックを示す。
【0064】即ち、ロード・ストア命令を実行する場合
には、先ずロード・ストア命令のアクセス対象となるア
ドレスがCPU2200から出力される。当該アドレス
のインデックス選択回路であるエントリ選択回路210
5に転送され、当該インデックス部の値と同一の番地の
エントリに格納されているタグTag、バリッドビット
VB、LRUビットLRUBの値が、各ウェイから読み
だされる。
【0065】又、ロックビットLBを持つエントリにつ
いては、その値も読み出される。このうち、各ウェイの
エントリから読み出されたタグTagの値のそれぞれ
は、タグ比較回路2106においてアクセス対象のアド
レスのタグTAGと比較される。この比較結果が一致し
たエントリで、かつ当該エントリのバリッドビットが1
であった場合、アクセスしたデータはキャッシュ内に格
納されていることになるので、そのエントリからデータ
を読み出し、CPU−キャッシュ間データ転送制御回路
2107、及びCPU−キャッシュ間接続バス2202
を通してCPU2200に転送される。
【0066】それ以外の場合には、アクセスしたデータ
は、キャッシュ内に格納されていないことになるので、
メインメモリ2201にアクセスしたデータのアドレス
を渡してデータをメモリ−キャッシュ間接続バス220
2に読み出す。又、LRU出力変換回路2205によ
り、メインメモリ2201から読み出したデータを上書
きするエントリのウェイを決定する。
【0067】そして、ロックビットを有し、かつその値
が1であるエントリのうちで、当該タグ比較回路210
6のタグの比較結果が一致しないか、あるいはバリッド
ビット値が1のエントリに対しては、当該エントリのL
RUビット値を0でマスクして出力する。他のエントリ
のLRUビット値はそのまま出力する。またロックビッ
トを有し、かつその値が1であるエントリのうちで、当
該タグ比較回路2106のタグの比較結果が一致し、さ
らにバリッドビット値が0のエントリに対しては、この
エントリのLRUビット値を1にセットして出力し、更
に他のエントリのLRUビット値を0でマスクして出力
する。
【0068】第2のウェイ選択回路2(2109)はL
RU出力変換回路2205の出力を受けて、その出力値
が最大値となるウェイを選択し、メモリ−キャッシュ間
接続バス2203へ転送される。これによって、選択さ
れたウェイに対応するバスに、メインメモリ2201か
ら読み出されたデータが出力されることになる。
【0069】メモリ−キャッシュ間データ転送制御回路
2107或いは2108は、選択されたウェイのインデ
ックス選択回路であるエントリ選択回路2105で示さ
れたエントリに対してデータを書き込み、そのエントリ
のバリッドビットを1にすると共にLRUビット値を0
にセットする。この動作の流れを、図3に示すフローチ
ャートによって説明する。
【0070】まず最初に、スタート後、ステップS1に
於て、リセット操作を行った後、ステップS2に於て、
ロード命令或いはストア命令が実行され、当該キャッシ
ュメモリに転送したいデータが抽出される。その後ステ
ップS3に進んで、キャッシュメモリに転送すべきデー
タのインデックス値と同じエントリ番号を有するエント
リを各ウェイから選択し、ステップS4に於て、当該エ
ントリにロックビットが有るか否かが判断される。
【0071】ステップS4に於て、NOである場合に
は、LRU出力値は変更せず、後述のステップS10に
進み、ステップS4に於てYESである場合には、ステ
ップS5に進み、当該ロックビットLBの値が1である
か否がが判断される。当該ステップS5に於て、NOで
ある場合には、LRU出力値は変更せず、後述のステッ
プS10に進み、ステップS5に於てYESである場合
には、ステップS6に進み、当該選択されたエントリの
各々に対して、当該転送すべきデータのアドレスに於け
るタグ部の値TAGと当該エントリのタグ部の値tag
とをタグ比較回路に於て比較する。
【0072】当該ステップS6に於て、NOである場
合、つまり所定のエントリのうちでロックビットがアク
ティブであるエントリに於て、前記タグの比較結果が一
致しない場合には、ステップS8に進み前記タグ値の比
較結果が一致しなかったエントリのLRU出力を0でマ
スクし、当該エントリに対するデータの上書きが禁止さ
れる。
【0073】又当該ステップS6に於てYESである場
合には、ステップS7に進み、当該バリッドビットVB
の値が1であるか否がが判断される。当該ステップS7
に於て、YESである場合、つまり所定のエントリのう
ちでロックビットがアクティブであるエントリに於て、
前記タグ値の比較結果が一致しかつバリッドビットがア
クティブである場合、ステップS8に進み前記タグ値の
比較結果が一致したエントリのLRU出力を0でマスク
し、当該エントリに対するデータの上書きを禁止する操
作が実行される。
【0074】又当該ステップS7に於て、NOである場
合には、つまり当該ロックビットがアクティブであるエ
ントリに於て、前記タグ値の比較結果は一致するがバリ
ッドビットがインアクティブである場合には、ステップ
S9に進み、前記タグ値の比較結果が一致したエントリ
のLRU出力を1にセットし、その他のエントリのLR
U出力を0にマスクする事によって、当該エントリに対
するデータの上書きを許可する操作が実行される。
【0075】その後、ステップS10に進み、各選択さ
れたエントリのうち、変更処理後のLRU出力値が最大
となるエントリをデータ書き込み(上書き)を実行させ
るエントリとして選択し、ステップS11に進み、当該
上書き対象として選択されたエントリのタグ部及びデー
タ部に所定のデータを格納し、バリッドビットを1にセ
ットしてエンドとなる。
【0076】本発明に於いては、当該キャッシュ装置に
常駐させたいデータを所定のエントリーに格納するに際
し、当該キャッシュロック装置は、当該常駐させたいデ
ータに於けるタグ部に格納されているタグデータのみ
を、当該常駐させたいデータに於けるインデックス部に
格納されているインデックスデータと同一の値のエント
リー番号を持ったエントリーのタグ部に格納した後、当
該常駐させたいデータに対するアクセス命令に対応する
ロード或いはストア命令に応答して、当該所定のエント
リー部に於けるデータ部に当該常駐させたいデータのデ
ータ部に格納されているデータを優先的に格納する様に
構成されている事が特徴である。
【0077】つまり、本発明は、従来のキャッシュロッ
ク方法に対してキャッシュミス時のキャッシュミス判定
回路を変更したものである。即ち、本実施例では、図6
に示す様な、従来のヒット・ミス回路160を、図14
に示す様な構成に変更したものであり、20ビットのT
AGと20ビットのTagn(n=0〜3)とをそれぞ
れ比較する4つの比較回路1601〜1604と、この
比較回路1601〜1604の出力を一端に受け、他端
に対応するバリッドビットVBn(n=0〜3)を受け
る4つのANDゲート1605〜1608と、比較回路
1601〜1602の出力、バリッドビットVB0及び
VB1の反転信号、及びロックビットLBO及びLB1
をそれぞれ受ける3入力の2つのANDゲート1609
及び1610と、ANDゲート1605及び1606の
反転出力を一端に受け他端にANDゲート1609及び
1610の反転出力をそれぞれ受けるORゲート161
1及び1612と、ANDゲート1607及び1608
の出力を受けるインバータ1613及び1614とを備
えて構成している。
【0078】すなわち、従来のWnmiss(n=0、1)か
ら、TAG = Tagnかつ VBn =0かつ LBn =1(n=0、
1)の場合を分離し、tagnlock(n=0、1)を生成す
る。tagnlock(n=0、1)が1の時は、指定したメモ
リアドレスに対応したエントリが、無効なデータを格納
したままキャッシュ内でロックされている状況を表して
いる。従って、メモリから読み込んだデータを、ロック
されたエントリに格納させるようにすることにより、キ
ャッシュ内に無効なデータを保持したままロックされ続
けるエントリの存在を防ぐことが可能となる。
【0079】すなわち、キャッシュロック命令によって
指定されたメモリアドレスのタグデータTAG、インデ
ックスをIndex[addr] とすると、ロック命令によって常
駐させたいキャッシュのウェイ(本実施例では0か1)
を決め、そのウェイの、Index[addr] をインデックスと
するエントリのタグ部Tagに対してTag[addr] を、ロ
ックビットに1を書き込めばよい。
【0080】この後、このメモリアドレスのデータにア
クセスする場合を考える。今、常駐させたいデータをロ
ックするエントリをウェイW0内にセットしたとする。
最初のアクセス時には、ウェイW0からは、上記エント
リのタグ、データ、バリッドビット、ロックビット、L
RUビットが読み出される(このメモリアドレスのイン
デックスがこのエントリのオフセットであるため)。
【0081】キャッシュヒットの場合には、従来と同じ
動作となるので説明を省略する。以下、キャッシュミス
の場合について説明する。本発明では、ヒット・ミス回
路160によってタグデータTAGとTag0とが同一
で、ロックビットLB0が1でかつバリッドビットVB
Oが0であるときにTag0lockが1となる。
【0082】したがって、例えば、図7(B)のバス選
択回路170と図16に示す様なヒットミス検出回路1
60とを組み合わせて使用した回路より、メモリから読
み込まれたデータはウェイ0のデータバスdata0へ流さ
れ、このエントリのデータ部へセットされる。同時にこ
のエントリのバリッドビットも1にセットされる(VB0
= 1 )。
【0083】この後、このメモリアドレスへのアクセス
は、キャッシュヒット(W0hit=1, W0miss=0 )となり、
キャッシュ−CPU間でのみデータがやり取りされ、メ
モリからデータは読み込まれない。また、このエントリ
と同一エントリ番号の、W1〜W3内のエントリにも全
てデータが格納された後に、さらにこのエントリ番号の
エントリに格納されるべき、他のメモリアドレスへのア
クセスが生じた場合を考える。
【0084】この場合、W0〜W3のこのエントリ番号
のエントリのいずれかが選ばれ、新たなタグ、データが
上書きされることになる。しかし、ヒット・ミス検出回
路160に於てTAG =Tag0, VB0 =1, LB0 =1より、
W0hit =1, W0miss =0,tag0lock =0となるた
め、バス選択回路170で data0−Memoryのパスが選択
されることは、LRUビットの値に係わらず、あり得な
い。
【0085】したがって、ウェイW0のこのエントリは
ロックされていることになる。本具体例では、図15に
示す様に、ロックビットを1にセットする際に、常駐さ
せたいデータのアドレスのタグデータTAGのみをセッ
トする。例えば、0xdffcaa80〜0xdffcaabfのデータをキ
ャッシュに常駐させたい場合、ロック命令に応答して、
ロックビットを持つウェイ0かウェイ1の40番地のタ
グに0xdffca を書き込み、ロックビットを1にセットす
る。
【0086】この構成では、ロックビットを1にセット
する時点で、そのエントリが有効なデータを格納してい
る必要はない。プログラムが実際に常駐させたいデータ
にアクセスを行った時点で、そのデータがメモリからロ
ックビットを1にセットしたエントリへ転送され、その
エントリはそれ以降、新しいデータの上書き対象から除
外される。
【0087】例として、0xdffcaa80〜0xdffcaabfのデー
タを常駐させるために、図15に示す様に、ウェイW0
の40番地のタグに0xdffcaを、ロックビットに1を書
き込んだ場合について説明する。この時点でウェイ0の
40番地には、0xdffcaa80〜0xdffcaabfのデータはまだ
メモリから転送されていない。したがってウェイ0の4
0番地のバリッドビットは0のままである。
【0088】この後、プログラム中で0xdffcaa80番地〜
0xdffcaabf番地内への(最初の)アクセスが生じたとす
る。このとき、ウェイW0のタグ出力TagOut0 は0xdffc
a で、アクセスを行っているアドレスのタグデータ(TA
G) も0xdffca のため、ウェイW0の比較器の出力は
1、また、ウェイW0のロックビットの出力(LB0) も
1、ウェイW0のバリッドビットVBの出力(VBout0)は
0であるので、ヒット・ミス回路160のTag0lo
ckは1となり、バス選択回路170によってウェイW
0のバスにデータが読み出される。
【0089】したがって、0xdffcaa80番地〜0xdffcaabf
番地のデータはウェイW0の40番地に格納され、ウェ
イW0の40番地のバリッドビットVBは1にセットさ
れる。これ以降、ウェイW0の40番地のバリッドビッ
トVBは1、ロックビットLBも1であるので、図16
のヒット・ミス検出回路160のウェイW0の入力は0
となり、W0sel が1となることはない。すなわち、ウェ
イW0の40番地はデータ入れ替えの対象から除外さ
れ、0xdffcaa80番地〜0xdffcaabf番地のデータが常駐す
ることになる。
【0090】
【発明の効果】本発明に於ける効果は、指定したメモリ
アドレスのデータがキャッシュに格納されるのに先行し
て、キャッシュロック命令を発行できる点にある。即
ち、本発明に於いては、無効なデータを格納するエント
リをロックする時に、そのロックが有効となる(そのエ
ントリがロックされる)のは、そのエントリに対応する
有効なデータを格納した後であり、即ち、当該エントリ
に対するアクセスが発生した時である。
【0091】従って、ユーザは、メモリ上のロックした
いデータのアドレスをキャッシュロック命令によって指
定するだけで、当該アドレスのデータをキャッシュメモ
リ内に常駐させることができる。そのため、ユーザー
が、キャッシュ装置に常駐させたい所定のデータをロッ
クしたい場合に、特にロックをかけるタイミングを意識
することなく、自動的に当該データのロックを実行出来
る事になる。
【図面の簡単な説明】
【図1】図1は、本発明に係るキャッシュロック装置の
一具体例の構成を示すブロックダイアグラムである。
【図2】図2は、本発明に係るキャッシュロック装置の
他の具体例の構成を示すブロックダイアグラムである。
【図3】図3は、本発明に係るキャッシュロック方法の
一具体例における操作手順を説明するフローチャートで
ある。
【図4】図4は、本発明に係るキャッシュロック方法の
他の具体例に於ける操作手順を説明するフローチャート
である。
【図5】図5は、本発明に使用されるキャッシュ装置の
一具体例の構成を示すブロックダイアグラムである。
【図6】図6は、従来のキャッシュ装置に於けるヒット
ミスロック信号の生成論理を示すブロックダイアグラム
である。
【図7】図7(A)は、従来のキャッシュ装置に於ける
ヒット信号によるCPUキャッシュ装置間の接続関係を
説明する図であり、図7(B)は、従来のキャッシュ装
置に於けるキャッシュミス時のメモリ−キャッシュ間の
接続関係を説明する図である。
【図8】図8は、従来のキャッシュ装置に於けるロック
ビットがない場合のセレクト論理の生成を説明するブロ
ックダイアグラムである。
【図9】図9は、従来に於けるキャッシュロック装置に
使用されるキャッシュ装置の構成の一具体例を示すブロ
ックダイアグラムである。
【図10】図10は、従来のキャッシュ装置に於ける格
納データの判別方法の一例を説明する図である。
【図11】図11は、従来に於けるキャッシュロック装
置に於て、ロックビットを使用したデータの入替え方法
の一例を説明する図である。
【図12】図12は、従来のキャッシュ装置に於けるウ
ェイの選択方法の一例を説明する図である。
【図13】図13は、従来に於けるキャッシュロック装
置に於ける、キャッシュロック命令実行時の動作を説明
するブロックダイアグラムである。
【図14】図14は、本発明に係るキャッシュロック装
置に於て、ヒットミスロック信号の生成論理を示すブロ
ックダイアグラムである。
【図15】図15は、本発明に係る当該キャッシュロッ
ク装置に於けるセレクト論理の生成に関する他の具体例
を説明するブロックダイアグラムである。
【図16】図16は、本発明に係るキャッシュ装置に於
けるウェイの選択方法の一例を説明する図である。
【図17】図17は、メモリ、キャッシュ装置及びCP
U間のデータの転送を説明する図である。
【符号の説明】
1…メモリ 2…CPU 3…キャッシュ装置 4…転送されるデータ 5…アドレス部 6…データ部 7…タグ部 8…インデックス部 9…オフセット部 10…エントリー 11…インデックス抽出手段 12…エントリ選択手段 13…ロックビット検出手段 14…ロックビット値判断手段 15…バリッドビット判定手段 16…上書き禁止手段 17…上書き許可及びバリッドビット変更手段 18…LRUの最大値選択手段 19…上書き許可及びバリッドビット変更手段 20…データ 50…最大値検出回路 100…キャッシュロック装置 160…ヒット・ミス検出回路 170…バス選択回路 501〜504…セレクタ 505…メモリアレイ 601〜604、1601〜1604…比較回路 605〜608、1605〜1608…ANDゲート 609〜612、613〜614…インバータ 1611、1612…ORゲート 1701〜1705…ANDゲート 1706、1707…ORゲート 2101…ウェイ選択手段 2103…書き込み手段 2104…ロックビット変更回路 2105…エントリー選択手段 2200…CPU 2201…メインメモリ 2202、2203…バス 2204…ロックビット検出手段 2205…LRU出力変更回路 2206…LRU制御回路 2207…キャッシュメモリ 2110…バリッドビット変更手段

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 メインメモリと、 キャッシュメモリと、 キャッシュロック命令に応答して前記メインメモリ上の
    対応するデータの第1のアドレスをバスに出力し、アク
    セス命令に応答して前記メインメモリ上の対応する第2
    のアドレスを前記バスに出力するCPUと、 前記第1のアドレスを受けてキャッシュメモリ上の第1
    のエントリを選択する第1のエントリ選択回路と、 前記第1のエントリのタグ部に前記第1のアドレスのタ
    グデータを書き込む書き込み回路と、 前記第1のエントリのロックビットをアクティブにセッ
    トするロックビット変更回路と、 前記第2のアドレスに応答して前記キャッシュメモリ上
    の対応する第2のエントリを選択する第2のエントリ選
    択回路と、 前記第2のアドレスのタグ部の値TAGと前記第2のエ
    ントリのタグ部の値tagとを比較するタグ比較回路
    と、 前記第2のエントリのロックビットの状態を検出するロ
    ックビット検出回路と、 前記第2のエントリのロックビットがアクティブであ
    り、前記タグ値の比較結果が一致し、かつバリッドビッ
    ドがインアクティブである場合には、このエントリが書
    換えの対象となるようにLRU出力の値を変更するLR
    U出力変更回路と、 前記LRU出力変更回路によって決定された書換え対象
    のエントリに対して書き込みを実行させるLRU制御回
    路と、を備えたキャッシュロック装置。
  2. 【請求項2】 前記第2のアドレスに対応する複数の第
    2のエントリを有し、前記LRU出力変更回路は、複数
    の前記第2のエントリのうち、ロックビットがアクティ
    ブであり、前記タグ値の比較結果が一致し、かつバリッ
    ドビッドがインアクティブであるエントリのLRU出力
    を値を第1の値にセットし、その他のエントリのLRU
    出力を前記値を第1の値とは異なる第2の値にセットす
    ることによって前記値を第1の値がセットされたエント
    リが書換えの対象となるようにLRU出力の値を変更す
    ることを特徴とする請求項1記載のキャッシュロック装
    置。
  3. 【請求項3】 当該第1と第2のエントリ選択回路は、
    同一の回路が使用されるものである事を特徴とする請求
    項1又は2記載のキャッシュロック装置。
  4. 【請求項4】 当該キャッシュメモリは、少なくとも、
    タグメモリアレイ、データメモリアレイ、バリッドビッ
    トアレイ、及びLRUビットアレイからなるエントリが
    複数個集合されて構成されたウェイを複数個配列せしめ
    て形成されたものである事を特徴とする請求項1乃至3
    の何れかに記載のキャッシュロック装置。
  5. 【請求項5】 少なくとも一部の当該ウェイを構成する
    各エントリにロックビットアレイが設けられている事を
    特徴とする請求項4記載のキャッシュロック装置。
  6. 【請求項6】 当該キャッシュロック装置は、更に当該
    複数のウェイ群の中から、一つのウェイを選択するウェ
    イ選択手段を含んでいる事を特徴とする請求項5記載の
    キャッシュロック装置。
  7. 【請求項7】 当該ウェイ選択手段は、当該複数のウェ
    イ群の中から、当該ロックビットアレイを有する一つの
    ウェイを選択する手段を含んでいる事を特徴とする請求
    項6記載のキャッシュロック装置。
  8. 【請求項8】 当該エントリ選択回路は、当該メモリ内
    に存在するデータのアドレス部に含まれるインデックス
    部のインデックス値と同一のエントリ番号を有するエン
    トリを選択する手段である事を特徴とする請求項1乃至
    7の何れかに記載のキャッシュロック装置。
  9. 【請求項9】 当該ロックビット変更回路は、当該選択
    されたエントリーのタグメモリアレイを構成するタグ部
    に、当該キャッシュ装置に常駐させたいデータを構成す
    るタグ部のタグデータを格納した後、当該エントリーに
    於けるロックビットアレイを構成するロックビットの値
    を第2の値に設定する手段である事を特徴とする請求項
    1乃至8の何れかに記載のキャッシュロック装置。
  10. 【請求項10】 当該キャッシュロック装置は、更に、
    当該所定のエントリーに於ける当該ロックビット値が第
    2の値に設定された後、当該常駐すべきデータのデータ
    部に於けるデータを、当該エントリーのデータメモリア
    レイを構成するデータ部に格納した後、当該エントリー
    のバリッドビットアレイを構成するバリッドビットの値
    を第2の値に設定するバリッドビット設定手段を含んで
    いる事を特徴とする請求項1乃至9の何れかに記載のキ
    ャッシュロック装置。
  11. 【請求項11】 当該ロックビット検出回路は、当該選
    択された当該複数のエントリーのそれぞれに於いて、当
    該ロックビットアレイが設けられているかを判断する
    か、或いは当該ロックビットアレイが設けられている場
    合に、当該ロックビットの値が第2の値か第1の値かを
    判断する手段である事を特徴とする請求項1乃至10の
    何れかに記載のキャッシュロック装置。
  12. 【請求項12】 当該LRU出力変更回路は、当該各ウ
    ェイで同一のインデックス番号を持つエントリ間で、ア
    クセスを受けた順序を保持するために各エントリに割当
    られているLRUビット値を、所定のエントリにアクセ
    スする毎に、その順序を当該エントリ間で変更するか、
    所定の条件下において、LRUビット値を変更しない
    か、又は所望の値に設定する手段を含んでいる事を特徴
    とする請求項1乃至11の何れかに記載のキャッシュロ
    ック装置。
  13. 【請求項13】 当該LRU制御回路は、各エントリの
    LRUB値に基づいてLRUを行い、一番古くアクセス
    されたエントリ、即ち、LRUB値が最大のエントリに
    対して上書きの許可信号を出力し、この時のバス上のデ
    ータを対応するエントリのデータ部に書込み、当該エン
    トリのバリッドビットを第2の値とする操作を実行する
    手段を含んでいる事を特徴とする請求項1乃至12の何
    れかに記載のキャッシュロック装置。
  14. 【請求項14】 メインメモリと、少なくとも、タグメ
    モリアレイ、データメモリアレイ、バリッドビットアレ
    イ、及びLRUビットアレイからなるエントリが複数個
    集合されて構成されたウェイを複数個配列せしめて形成
    されたキャッシュメモリであって、且つ少なくとも一部
    の当該ウェイを構成する各エントリにロックビットアレ
    イが設けられているキャッシュメモリと、キャッシュロ
    ック命令、或いはロード・ストア命令等に応答して前記
    メインメモリ上の対応する当該キャッシュメモリに転送
    すべきデータのアドレスをバスに出力するCPUとから
    構成されたキャッシュロック装置に於いて、キャッシュ
    ロック命令に応答して、前記アドレスを受けて、当該デ
    ータのインデックス部に含まれるインデックス値と同一
    のエントリ番号を有するキャッシュメモリ上のエントリ
    でかつロックビットを有するウェイを選択するウェイ選
    択回路と、前記アドレスを受けて、当該選択されたウェ
    イに於ける当該データのインデックス部に含まれるイン
    デックス値と同一のエントリ番号を有するキャッシュメ
    モリ上のエントリを選択するエントリ選択回路と、当該
    選択されたエントリに常駐すべきデータのアドレスに含
    まれるタグ部のタグデータを格納する書き込み回路と当
    該タグデータの格納に応答して、当該ロックビットの値
    を第2の値にするロックビット変更回路とを有している
    事を特徴とするキャッシュロック装置。
  15. 【請求項15】 メインメモリと、少なくとも、タグメ
    モリアレイ、データメモリアレイ、バリッドビットアレ
    イ、及びLRUビットアレイからなるエントリが複数個
    集合されて構成されたウェイを複数個配列せしめて形成
    されたキャッシュメモリであって、且つ少なくとも一部
    の当該ウェイを構成する各エントリにロックビットアレ
    イが設けられているキャッシュメモリと、キャッシュロ
    ック命令、或いはロード・ストア命令等に応答して前記
    メインメモリ上の対応する当該キャッシュメモリに転送
    すべきデータのアドレスをバスに出力するCPUとから
    構成されたキャッシュロック装置に於いて、当該メモリ
    手段から当該キャッシュメモリに対して転送したいデー
    タを転送するに際して、当該キャッシュロック装置は、
    ロード命令或いはストア命令に応答して、メモリ手段内
    に存在する、当該転送したいデータを構成するインデッ
    クス部のインデックス値と同一のエントリー番号を有す
    るエントリーを当該複数のウェイのそれぞれから選択す
    るエントリ選択回路、当該選択された当該複数のエント
    リーのそれぞれに於いて、当該ロックビットアレイが設
    けられているかを検出し判別信号を出力するロックビッ
    ト検出回路、所定のエントリに於ける当該ロックビット
    検出回路からの判別信号がロックビット有りでかつその
    値が第2の値である場合に、当該エントリに於けるバリ
    ッドビットが第2の値であるか否かを判断するバリッド
    ビット判定回路、当該バリッドビット判定回路の判定信
    号が、当該エントリに於けるバリッドビットが第2の値
    である場合に当該エントリの当該データ部に当該転送し
    たいデータを構成するデータ部のデータの上書きする事
    を禁止するデータ上書き禁止手段、所定のエントリに於
    ける当該ロックビットの値が第2の値である場合で、当
    該選択されているエントリーのタグ部の値が当該転送し
    たいデータを構成するタグ部のタグ値と一致し、かつ当
    該バリッドビットアレイに於けるバリッドビット値が第
    1の値である場合には、当該エントリーの当該データ部
    に当該転送したいデータを構成するデータ部のデータを
    上書きする事を許可すると同時に当該エントリーのバリ
    ッドビットアレイに於ける当該バリッドビットのビット
    値を第2の値に書き換えるバリッドビット書換え回路、
    及びLRU値を第1の値に変更するLRU出力変更回路
    とから構成されている事を特徴とするキャッシュロック
    装置。
  16. 【請求項16】 当該キャッシュロック装置に於いて、
    当該ロックビットアレイが設けられていないか、或いは
    当該ロックビットアレイが設けられている場合で、当該
    ロックビットの値が第1の値である場合に、当該選択さ
    れている複数のエントリーのそれぞれに於ける当該LR
    Uビットアレイを相互に比較して、当該LRUビット値
    が最も大きい当該エントリーを選択して、当該エントリ
    ーの当該データ部に当該転送したいデータを構成するデ
    ータ部のデータを上書きすると同時に当該エントリーの
    バリッドビットアレイに於ける当該バリッドビットのビ
    ット値を第2の値に書き換えるLRU制御回路が更に設
    けられている事を特徴とする請求項15記載のキャッシ
    ュロック装置。
  17. 【請求項17】 当該キャッシュ装置にデータを常駐さ
    せるに際し、当該キャッシュロック装置は、キャッシュ
    ロック命令実行時点では所定のエントリに対して当該常
    駐させたいデータのタグ部のみを格納してロックビット
    をセットすればよく、当該常駐したいデータのデータ部
    は、当該常駐させたいデータに対するアクセス命令が実
    行された時点で、キャッシュロック命令を実行した所定
    のエントリに自動で格納されるように構成されている事
    を特徴とする請求項1乃至16の何れかに記載のキャッ
    シュロック装置。
  18. 【請求項18】 メインメモリと、少なくとも、タグメ
    モリアレイ、データメモリアレイ、バリッドビットアレ
    イ、及びLRUビットアレイからなるエントリが複数個
    集合されて構成されたウェイを複数個配列せしめて形成
    されたキャッシュメモリであって、且つ少なくとも一部
    の当該ウェイを構成する各エントリにロックビットアレ
    イが設けられているキャッシュメモリと、キャッシュロ
    ック命令、或いはロード・ストア命令等に応答して前記
    メインメモリ上の対応する当該キャッシュメモリに転送
    すべきデータのアドレスをバスに出力するCPUとから
    構成されたキャッシュロック装置に於いて、当該キャッ
    シュ装置は、キャッシュロック命令に応答して、当該キ
    ャッシュメモリに常駐させたいデータのアドレスに於け
    るタグ部のデータとインデックス部のインデックスとを
    抽出する手段、当該複数のウェイから当該ロックビット
    アレイを有するウェイを選択する手段、当該選択された
    当該ウェイ中から、キャッシュ装置に常駐させたいデー
    タのアドレス部に於ける当該インデックス部のインデッ
    クスの値と同一のエントリー番号を有するエントリーを
    選択する手段、当該選択されたエントリーの当該タグ部
    に、当該常駐させたいデータに於けるタグ部のデータを
    格納する手段、当該常駐させたいデータのタグ部データ
    を格納した当該エントリーに於ける当該ロックビットの
    値を第2の値に設定する手段、とから構成されている制
    御手段を含んでいる事を特徴とするキャッシュロック装
    置。
  19. 【請求項19】 メインメモリと、少なくともタグメモ
    リアレイ、データメモリアレイ、バリッドビットアレ
    イ、及びLRUビットアレイからなるエントリが複数個
    集合されて構成されたウェイを複数個配列せしめて形成
    されたキャッシュメモリと、キャッシュロック命令、ロ
    ード命令或いはストア命令等に応答して前記メインメモ
    リ上の対応するデータのアドレスをバスに出力するCP
    Uとから構成されたキャッシュロック装置に於て、当該
    キャッシュメモリに常駐させるべきデータを当該キャッ
    シュメモリに転送するに際し、 当該キャッシュメモリに転送すべきデータを選定し、指
    定されたアドレスのインデックス値を抽出する第1の工
    程、 キャッシュメモリに転送すべきデータのインデックス値
    と同じ値のエントリ番号を持つエントリをそれぞれのウ
    ェイから選択する第2の工程、 当該選択された各エントリのそれぞれに対してロックビ
    ットLBを有するか否かを判別する第3の工程、 第3の工程において、当該選択された各エントリのう
    ち、ロックビットLBを持つエントリが存在している場
    合に、当該ロックビットLBが第2の値であるか第1の
    値であるかを判断する第4の工程、 第4の工程に於て、当該選択されたエントリのロックビ
    ットLBが第2の値であった場合に、 エントリのタグ部の値と、指定されたアドレスのタグ値
    とを比較する第5の工程、 第5の工程に於て、エントリのロックビットLBが第2
    の値で当該タグの比較結果が一致した場合に、当該エン
    トリのバリッドビットの値が第2の値であるか第1の値
    であるかを判断する第6の工程、 第6の工程に於て、ロックビットの値が第2の値である
    が、タグの比較結果が一致しないか、バリッドビットの
    値が第2の値であった場合に、当該エントリのLRU出
    力を第1の値にマスクし、当該エントリへの上書きを禁
    止する第7の工程、 第6の工程に於て、ロックビットの値が第2の値、タグ
    の比較結果が一致、バリッドビットの値が第1の値であ
    った場合に、当該エントリのLRU出力を第2の値にセ
    ットし、他の選択されたエントリのLRU出力を第1の
    値にマスクすることにより、当該エントリを上書き対象
    とする第8の工程、 当該選択された各エントリのうち、LRU出力が最大で
    あるエントリを選択する第9の工程、 第9の工程に於て選択されたエントリに対して、データ
    の上書きを行い、バリッドビットに第2の値を書き込む
    第10の工程、とから構成されている事を特徴とするキ
    ャッシュロック方法。
  20. 【請求項20】 メインメモリと、少なくともタグメモ
    リアレイ、データメモリアレイ、バリッドビットアレ
    イ、及びLRUビットアレイからなるエントリが複数個
    集合されて構成されたウェイを複数個配列せしめて形成
    されたキャッシュメモリと、キャッシュロック命令、ロ
    ード命令或いはストア命令等に応答して前記メインメモ
    リ上の対応するデータのアドレスをバスに出力するCP
    Uとから構成されたキャッシュロック装置に於て、当該
    キャッシュロック装置が初期化された後に、最初に当該
    キャッシュメモリに常駐させるべきデータを当該キャッ
    シュメモリに転送するに際し、 キャッシュロック命令が実行され、当該キャッシュメモ
    リに転送すべきデータを選定し、指定されたアドレスの
    インデックス値を抽出する第1の工程、 ウェイの中からロックビットLBを有するウェイを選択
    する第2の工程、 キャッシュメモリに転送すべきデータのインデックス値
    と同じ値のエントリ番号を持つエントリをそれぞれのウ
    ェイから選択する第3の工程、 第2の工程でロックビットLBを有するエントリが存在
    している場合に、何れかの当該エントリの一つを選択す
    る第4の工程、 当該選択されたエントリのタグ部に、当該キャッシュメ
    モリに常駐させるべきデータのタグデータを格納し、ロ
    ックビットLBの値を第2の値に設定する第5の工程、
    とから構成されている事を特徴とするキャッシュロック
    方法。
JP32365698A 1998-11-13 1998-11-13 キャッシュロック装置及びキャッシュロック方法 Expired - Fee Related JP3495266B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32365698A JP3495266B2 (ja) 1998-11-13 1998-11-13 キャッシュロック装置及びキャッシュロック方法
US09/440,143 US6643737B1 (en) 1998-11-13 1999-11-15 Cache lock device and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32365698A JP3495266B2 (ja) 1998-11-13 1998-11-13 キャッシュロック装置及びキャッシュロック方法

Publications (2)

Publication Number Publication Date
JP2000148590A true JP2000148590A (ja) 2000-05-30
JP3495266B2 JP3495266B2 (ja) 2004-02-09

Family

ID=18157151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32365698A Expired - Fee Related JP3495266B2 (ja) 1998-11-13 1998-11-13 キャッシュロック装置及びキャッシュロック方法

Country Status (2)

Country Link
US (1) US6643737B1 (ja)
JP (1) JP3495266B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552311B2 (en) 2003-04-14 2009-06-23 Renesas Technology Corp. Memory device with preread data management
JP2010535387A (ja) * 2007-08-02 2010-11-18 フリースケール セミコンダクター インコーポレイテッド キャッシュロック装置及びその方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6848025B2 (en) * 2001-10-26 2005-01-25 Elan Research, Inc. Method and system for programmable replacement mechanism for caching devices
JP2003271455A (ja) * 2002-03-19 2003-09-26 Fujitsu Ltd キャッシュメモリ制御装置およびキャッシュメモリシステム
US6904501B1 (en) * 2002-06-17 2005-06-07 Silicon Graphics, Inc. Cache memory for identifying locked and least recently used storage locations
US7290093B2 (en) * 2003-01-07 2007-10-30 Intel Corporation Cache memory to support a processor's power mode of operation
FR2856814B1 (fr) * 2003-06-25 2005-09-30 St Microelectronics Sa Procede de controle d'une memoire cache, et dispositif de memoire cache correspondant
US20050125615A1 (en) * 2003-12-04 2005-06-09 International Business Machines Corporation Methods and apparatus for writing an LRU bit
US7281083B2 (en) * 2004-06-30 2007-10-09 Intel Corporation Network processor with content addressable memory (CAM) mask
US7290107B2 (en) * 2004-10-28 2007-10-30 International Business Machines Corporation Direct deposit using locking cache
US7290106B2 (en) * 2004-10-28 2007-10-30 International Business Machines Corporation Method for processor to use locking cache as part of system memory
US9009410B2 (en) * 2011-08-23 2015-04-14 Ceva D.S.P. Ltd. System and method for locking data in a cache memory
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9558121B2 (en) * 2012-12-28 2017-01-31 Intel Corporation Two-level cache locking mechanism
US9158702B2 (en) 2012-12-28 2015-10-13 Intel Corporation Apparatus and method for implementing a scratchpad memory using priority hint
KR101820223B1 (ko) * 2014-12-14 2018-01-18 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 모드에 따라 선택적으로 하나 또는 복수의 셋트를 선택하도록 동적으로 구성가능한 멀티 모드 셋트 연관 캐시 메모리
JP6209689B2 (ja) 2014-12-14 2017-10-04 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
US10698827B2 (en) 2014-12-14 2020-06-30 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US11151037B2 (en) * 2018-04-12 2021-10-19 International Business Machines Corporation Using track locks and stride group locks to manage cache operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS522342A (en) 1975-06-24 1977-01-10 Nec Corp Buffer memory controlling system
JPS63127349A (ja) 1986-11-18 1988-05-31 Nec Corp マイクロプロセサ処理装置
JPH0821001B2 (ja) 1988-02-12 1996-03-04 富士通株式会社 キャッシュメモリの制御方法
JPH04324547A (ja) 1991-04-25 1992-11-13 Matsushita Electric Ind Co Ltd キャッシュ装置
US5974508A (en) * 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
EP0612013A1 (en) * 1993-01-21 1994-08-24 Advanced Micro Devices, Inc. Combination prefetch buffer and instruction cache cross references to related applications
JPH06243045A (ja) 1993-02-12 1994-09-02 Matsushita Electric Ind Co Ltd キャッシュメモリ
JP3205171B2 (ja) 1994-04-18 2001-09-04 株式会社日立製作所 データ送信処理プログラム実行方法
JPH08339331A (ja) 1995-06-12 1996-12-24 Alps Lsi Technol Kk キャッシュメモリー
US5822764A (en) * 1996-03-04 1998-10-13 Motorola, Inc. Method and circuit for efficiently replacing invalid locked portions of a cache with valid data
US6073224A (en) * 1996-07-01 2000-06-06 Sun Microsystems, Inc. Network interface circuit with replacement circuitry and method for segregating memory in an address translation unit with locked and unlocked regions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552311B2 (en) 2003-04-14 2009-06-23 Renesas Technology Corp. Memory device with preread data management
JP2010535387A (ja) * 2007-08-02 2010-11-18 フリースケール セミコンダクター インコーポレイテッド キャッシュロック装置及びその方法

Also Published As

Publication number Publication date
JP3495266B2 (ja) 2004-02-09
US6643737B1 (en) 2003-11-04

Similar Documents

Publication Publication Date Title
JP3495266B2 (ja) キャッシュロック装置及びキャッシュロック方法
JP4112603B2 (ja) 階層型キャッシュメモリを制御するための方法ならびに装置
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US7805574B2 (en) Method and cache system with soft I-MRU member protection scheme during make MRU allocation
JP5030796B2 (ja) データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法
CN100573477C (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
EP0377970B1 (en) I/O caching
US8499123B1 (en) Multi-stage pipeline for cache access
JP5536655B2 (ja) キャッシュメモリ、メモリシステム及びデータコピー方法
JPH08235072A (ja) セットアソシアティブ方式メモリの動的分画化方法及び装置
US8112589B2 (en) System for caching data from a main memory with a plurality of cache states
JP3900025B2 (ja) 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
US7454575B2 (en) Cache memory and its controlling method
US20020161976A1 (en) Data processor
JP4009304B2 (ja) キャッシュメモリおよびキャッシュメモリ制御方法
US7007135B2 (en) Multi-level cache system with simplified miss/replacement control
JP3954992B2 (ja) メモリインタフェース回路
AU604101B2 (en) High availability cache organization
EP0825538A1 (en) Cache memory system
EP0377971B1 (en) I/O bus caching
JPH06161900A (ja) キャッシュメモリ装置
CN102023930B (zh) 用于非易失性存储器存储系统的双范围目录
JPH11338772A (ja) キャッシュメモリ
US8214593B2 (en) Serial interface cache controller including comparison control unit and finite state machine, control method and micro-controller system using the same
JP2001043132A (ja) キャッシュメモリの制御方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees