JPH04340145A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JPH04340145A JPH04340145A JP3112035A JP11203591A JPH04340145A JP H04340145 A JPH04340145 A JP H04340145A JP 3112035 A JP3112035 A JP 3112035A JP 11203591 A JP11203591 A JP 11203591A JP H04340145 A JPH04340145 A JP H04340145A
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- instruction
- contents
- memory
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 143
- 238000010926 purge Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、演算処理装置における
キャッシュメモリ装置に関する。
キャッシュメモリ装置に関する。
【0002】
【従来の技術】プロセッサのメモリアクセス速度の要求
は、高速化の一途をたどり、大規模な主記憶装置では、
高速なメモリを実装することが現実的ではない場合に、
キャッシュメモリは特別の機構によって少容量の高速な
メモリで疑似的な大容量の高速なメモリのアクセスを得
る機構として用いられている。そのためキャッシュメモ
リは最新の計算機には必須の装置である。
は、高速化の一途をたどり、大規模な主記憶装置では、
高速なメモリを実装することが現実的ではない場合に、
キャッシュメモリは特別の機構によって少容量の高速な
メモリで疑似的な大容量の高速なメモリのアクセスを得
る機構として用いられている。そのためキャッシュメモ
リは最新の計算機には必須の装置である。
【0003】キャッシュメモリは、主記憶装置と演算処
理装置の間に存在し、演算処理装置が主記憶装置をアク
セスした場合に、そのアドレスとデータをキャッシュメ
モリの中に一時蓄え、次に同じ主記憶装置の番地のアク
セスを演算処理装置が発生した場合に、実際には主記憶
装置のアクセスをせずに、キャッシュメモリに蓄えてあ
ったデータを演算処理装置に戻すことで、演算処理装置
のメモリアクセス時間を高速に見せる装置である。
理装置の間に存在し、演算処理装置が主記憶装置をアク
セスした場合に、そのアドレスとデータをキャッシュメ
モリの中に一時蓄え、次に同じ主記憶装置の番地のアク
セスを演算処理装置が発生した場合に、実際には主記憶
装置のアクセスをせずに、キャッシュメモリに蓄えてあ
ったデータを演算処理装置に戻すことで、演算処理装置
のメモリアクセス時間を高速に見せる装置である。
【0004】キャッシュメモリ装置はそのメモリブロッ
クの構成によって、ダイレクトマッピング方式、セット
アソシアティブ方式、フルアソシアティブ方式等に分け
られるが、よく用いられるのはセットアソシアティブ方
式である。
クの構成によって、ダイレクトマッピング方式、セット
アソシアティブ方式、フルアソシアティブ方式等に分け
られるが、よく用いられるのはセットアソシアティブ方
式である。
【0005】図2は従来のキャッシュメモリ装置の一例
のブロック図、図3は図2の動作を説明するフロー図で
ある。図2においては、実効アドレス入力部10,キャ
ッシュメモリ17a,比較装置43,キャッシュメモリ
・シーケンサ26a,主記憶部45,が示されている。
のブロック図、図3は図2の動作を説明するフロー図で
ある。図2においては、実効アドレス入力部10,キャ
ッシュメモリ17a,比較装置43,キャッシュメモリ
・シーケンサ26a,主記憶部45,が示されている。
【0006】演算装置の発生する実効アドレス(10)
は、キャッシュメモリ17aのブロック内アドレスのブ
ロッス内変移41,ブロックの選択に用いられるインデ
ックス42,タグデータ23bから構成され、タグデー
タ23bは、キャッシュメモリ中のタグデータ23aと
比較することにより、当該ブロックのデータが実効アド
レス10と等しい主記憶部45のデータか否かを調べる
。
は、キャッシュメモリ17aのブロック内アドレスのブ
ロッス内変移41,ブロックの選択に用いられるインデ
ックス42,タグデータ23bから構成され、タグデー
タ23bは、キャッシュメモリ中のタグデータ23aと
比較することにより、当該ブロックのデータが実効アド
レス10と等しい主記憶部45のデータか否かを調べる
。
【0007】また、ダーティフラグ24aは演算処理装
置によってキャッシュメモリ17aに書込みが発生した
場合にセットされ、キャッシュメモリ17aの内容と主
記憶部45の内容が異なっている場合に1となる。バリ
ッドフラグ24bは当該するキャッシュメモリ17aの
内容が正当なものであることを示す。比較回路43は、
キャッシュメモリ17a中にあるデータのアドレスを示
すタグ23bと実効アドレス10の一部分のタグ23a
とを比較し、キャッシュメモリ17aの当該ブロックが
実効アドレスのデータであるかどうかをチェックする。 キャッシュメモリシーケンサ26aはライトバック方式
のキャッシュメモリをコントロールする。信号47はキ
ャッシュメモリ17aが外れた場合に主記憶部45との
データ入替えを制御する。
置によってキャッシュメモリ17aに書込みが発生した
場合にセットされ、キャッシュメモリ17aの内容と主
記憶部45の内容が異なっている場合に1となる。バリ
ッドフラグ24bは当該するキャッシュメモリ17aの
内容が正当なものであることを示す。比較回路43は、
キャッシュメモリ17a中にあるデータのアドレスを示
すタグ23bと実効アドレス10の一部分のタグ23a
とを比較し、キャッシュメモリ17aの当該ブロックが
実効アドレスのデータであるかどうかをチェックする。 キャッシュメモリシーケンサ26aはライトバック方式
のキャッシュメモリをコントロールする。信号47はキ
ャッシュメモリ17aが外れた場合に主記憶部45との
データ入替えを制御する。
【0008】次に、回路の動作を説明する。このメモリ
アクセス(S1)において、まずステップS2でインデ
ックス42の部分をアドレスとして、キャッシュメモリ
17aのブロックを選択する。2ウェイセット・アソシ
アティブ方式のキャッシュメモリ装置ならば、2つに分
割されたメモリを同じインデックスで同時にアクセスす
る。ここでは、ダイレクトマッピング方式のキャッシュ
メモリ装置を示す。
アクセス(S1)において、まずステップS2でインデ
ックス42の部分をアドレスとして、キャッシュメモリ
17aのブロックを選択する。2ウェイセット・アソシ
アティブ方式のキャッシュメモリ装置ならば、2つに分
割されたメモリを同じインデックスで同時にアクセスす
る。ここでは、ダイレクトマッピング方式のキャッシュ
メモリ装置を示す。
【0009】メモリ17aの中には、それぞれ、タグ2
3bと幾つかのフラグ24が入っており、インデックス
42によって指定されたブロックに入っているタグ23
bと、実効アドレス10のタグ23a部分が一致してお
り、更にそのエントリのデータが有効であることを示す
フラグ24をチェックすることで、そのエントリに入っ
ているデータの正当性をチェックする(ステップ3)。
3bと幾つかのフラグ24が入っており、インデックス
42によって指定されたブロックに入っているタグ23
bと、実効アドレス10のタグ23a部分が一致してお
り、更にそのエントリのデータが有効であることを示す
フラグ24をチェックすることで、そのエントリに入っ
ているデータの正当性をチェックする(ステップ3)。
【0010】当該ブロックのバリッドフラグ24aが真
か偽かを調べ、バリッドフラグが偽でインバリッドの場
合、選択されたブロックが無効であり、ステップS7へ
進む。また、バリッドフラグが真でバリッドの場合、選
択されたブロックが有効なデータを保持してステップS
4へ進む。もし、現在の実効アドレスのデータがキャッ
シュメモリ上に存在するならば、主記憶部45は、アク
セスせずにデータを得ることができる。キャッシュに存
在するデータが正当でないかまたは、違うタグを持った
データがあった場合は、主記憶部45をアクセスする事
でデータを得る。この場合はメモリアクセス時間は遅い
主記憶部45をアクセスする時間が必要で、キャッシュ
の効果は無い。しかし、プログラムのメモリアクセスは
局所性があるので、キャッシュメモリ17aは演算処理
装置を高速に動作させるのに非常に役立つ。
か偽かを調べ、バリッドフラグが偽でインバリッドの場
合、選択されたブロックが無効であり、ステップS7へ
進む。また、バリッドフラグが真でバリッドの場合、選
択されたブロックが有効なデータを保持してステップS
4へ進む。もし、現在の実効アドレスのデータがキャッ
シュメモリ上に存在するならば、主記憶部45は、アク
セスせずにデータを得ることができる。キャッシュに存
在するデータが正当でないかまたは、違うタグを持った
データがあった場合は、主記憶部45をアクセスする事
でデータを得る。この場合はメモリアクセス時間は遅い
主記憶部45をアクセスする時間が必要で、キャッシュ
の効果は無い。しかし、プログラムのメモリアクセスは
局所性があるので、キャッシュメモリ17aは演算処理
装置を高速に動作させるのに非常に役立つ。
【0011】演算処理装置のアクセスがキャッシュ上で
解決できた場合をキャッシュにヒットしたと呼び、解決
できなかった場合をミスヒットであると呼ぶ。全体のメ
モリアクセスに対応するキャッシュメモリのミスヒット
を起こす確率をミスヒット率と呼ぶ。
解決できた場合をキャッシュにヒットしたと呼び、解決
できなかった場合をミスヒットであると呼ぶ。全体のメ
モリアクセスに対応するキャッシュメモリのミスヒット
を起こす確率をミスヒット率と呼ぶ。
【0012】ステップS4ではキャッシュメモリ17a
中のタグ23とアドレスの部分を比較器43で比較した
結果により条件判定を行なう。キャッシュメモリ17a
が異ったタグ23bをもっているとき、ステップS5に
進み、キャッシュメモリ17a中のダーティフラグ24
bの判定を行う。このフラグ24bは、主記憶部45の
内容とキャッシュメモリの保持する内容が、異なってい
る場合に真であり、ステップS6に進み、キャッシュエ
ントリに入っているデータを主記憶部45にセーブする
。ステップS5で内容が一致している場合にはステップ
S7に進む。ステップS7では演算処理装置の必要とす
るブロックのデータをキャッシュメモリに読み出し、キ
ャッシュメモリの内容が更新されたので、演算処理装置
に対しての処理を行なう。
中のタグ23とアドレスの部分を比較器43で比較した
結果により条件判定を行なう。キャッシュメモリ17a
が異ったタグ23bをもっているとき、ステップS5に
進み、キャッシュメモリ17a中のダーティフラグ24
bの判定を行う。このフラグ24bは、主記憶部45の
内容とキャッシュメモリの保持する内容が、異なってい
る場合に真であり、ステップS6に進み、キャッシュエ
ントリに入っているデータを主記憶部45にセーブする
。ステップS5で内容が一致している場合にはステップ
S7に進む。ステップS7では演算処理装置の必要とす
るブロックのデータをキャッシュメモリに読み出し、キ
ャッシュメモリの内容が更新されたので、演算処理装置
に対しての処理を行なう。
【0013】次のステップS8では、演算処理値装置の
アクセスがリード/ライトのいずれであるかの判定する
。このアクセスが、リードの場合は、ステップS9でキ
ャッシュメモリ17aのデータを演算処理装置に対して
読み出し、またアクセスがライトの場合は、ステップS
10でキャッシュメモリ17aへの演算処理装置が発生
するデータを書込み、ステップS11でこの書込みを行
なった場合にダーティフラグを立てる。
アクセスがリード/ライトのいずれであるかの判定する
。このアクセスが、リードの場合は、ステップS9でキ
ャッシュメモリ17aのデータを演算処理装置に対して
読み出し、またアクセスがライトの場合は、ステップS
10でキャッシュメモリ17aへの演算処理装置が発生
するデータを書込み、ステップS11でこの書込みを行
なった場合にダーティフラグを立てる。
【0014】また、キャッシュメモリ装置はその動作の
アルゴリズムによって幾つかの種類に分けられる。演算
処理装置の書込みアクセスに対する、キャッシュメモリ
の動作の違いでライトスルー及びライトバックがある。
アルゴリズムによって幾つかの種類に分けられる。演算
処理装置の書込みアクセスに対する、キャッシュメモリ
の動作の違いでライトスルー及びライトバックがある。
【0015】演算処理装置が主記憶部45にデータの書
込みをした場合、そのデータをそのまま主記憶部45に
も書込む場合をライトスルーと呼び、逆にそのデータを
キャッシュメモリ装置17aの中に書込み、主記憶部4
5には書き戻さない場合をライトバックと呼ぶ。ライト
バック方式のキャッシュメモリ装置はライトスルー方式
のキャッシュメモリ方式に比べキャッシュメモリ装置の
ヒット率も上昇する。
込みをした場合、そのデータをそのまま主記憶部45に
も書込む場合をライトスルーと呼び、逆にそのデータを
キャッシュメモリ装置17aの中に書込み、主記憶部4
5には書き戻さない場合をライトバックと呼ぶ。ライト
バック方式のキャッシュメモリ装置はライトスルー方式
のキャッシュメモリ方式に比べキャッシュメモリ装置の
ヒット率も上昇する。
【0016】
【発明が解決しようとする課題】上述したライトバック
方式のキャッシュメモリシステムは、メモリアクセスが
発生した時に、選択されたブロックが前に演算処理装置
によって変更され、主記憶部45と異なった内容を保持
している場合はより多くのバスアクセスが集中して発生
してしまう。つまり、現在キャッシュメモリに存在して
いる内容をメモリに書き戻す必要がある。この場合に、
演算処理装置内の他の部分が外部バスを使用中であった
場合は、この主記憶部への書き戻しが遅れる事になり、
システム全体を遅らせてしまう事になる。
方式のキャッシュメモリシステムは、メモリアクセスが
発生した時に、選択されたブロックが前に演算処理装置
によって変更され、主記憶部45と異なった内容を保持
している場合はより多くのバスアクセスが集中して発生
してしまう。つまり、現在キャッシュメモリに存在して
いる内容をメモリに書き戻す必要がある。この場合に、
演算処理装置内の他の部分が外部バスを使用中であった
場合は、この主記憶部への書き戻しが遅れる事になり、
システム全体を遅らせてしまう事になる。
【0017】本発明の目的は、このような問題を解決し
、主記憶部への書戻しの遅れをなくしたキャッシュメモ
リ装置を提供することにある。
、主記憶部への書戻しの遅れをなくしたキャッシュメモ
リ装置を提供することにある。
【0018】
【課題を解決するための手段】本発明の構成は、演算処
理装置に内蔵されたコピーバック方式のキャッシュメモ
リを含むキャッシュメモリ装置において、前記演算処理
装置が次に実行する命令を予め取込むプリフェッチキュ
ー部と、このプリフェッチ・キュー部からのプリフェッ
チ・キューをデコードしこのプリフェッチ・キューの内
容である命令が、分岐命令、外部バスアクセス命令を含
まない条件を判定するデコーダと、このデコーダが現在
実行中の命令及び次に実行する事が予測される命令では
外部バスをアクセスする可能性がないと判断できる場合
に、前記キャッシュメモリのブロック番号を順次指し示
すカウンタと、このカウンタのアドレスに従って読出さ
れた前記キャッシュメモリのブロックの内容を調べこの
ブロックの内容が前記演算処理装置によって書込まれ、
キャッシュメモリのデータが現在の値であり、このデー
タが主記憶部の保持する値と異なっている場合に外部バ
スサイクルを起動し、該当するキャッシュメモリの内容
を前記主記憶部に書き戻すバス制御部とを備え、外部イ
ンターフェースが待ち状態にある間、記憶内容を前記主
記憶部の内容と等しくなるようにすることを特徴とする
。
理装置に内蔵されたコピーバック方式のキャッシュメモ
リを含むキャッシュメモリ装置において、前記演算処理
装置が次に実行する命令を予め取込むプリフェッチキュ
ー部と、このプリフェッチ・キュー部からのプリフェッ
チ・キューをデコードしこのプリフェッチ・キューの内
容である命令が、分岐命令、外部バスアクセス命令を含
まない条件を判定するデコーダと、このデコーダが現在
実行中の命令及び次に実行する事が予測される命令では
外部バスをアクセスする可能性がないと判断できる場合
に、前記キャッシュメモリのブロック番号を順次指し示
すカウンタと、このカウンタのアドレスに従って読出さ
れた前記キャッシュメモリのブロックの内容を調べこの
ブロックの内容が前記演算処理装置によって書込まれ、
キャッシュメモリのデータが現在の値であり、このデー
タが主記憶部の保持する値と異なっている場合に外部バ
スサイクルを起動し、該当するキャッシュメモリの内容
を前記主記憶部に書き戻すバス制御部とを備え、外部イ
ンターフェースが待ち状態にある間、記憶内容を前記主
記憶部の内容と等しくなるようにすることを特徴とする
。
【0019】
【実施例】図1は本発明の一実施例のブロック図であり
、メモリブロックがダイレクトマッピング型の場合の構
成例を示す。この装置は、4個の命令プリフェッチ・キ
ュー・バッファ14とライトバック方式のキャッシュメ
モリ17及び、外部バス制御ユニット19,カウンタ1
6,デコーダ13等で構成される。
、メモリブロックがダイレクトマッピング型の場合の構
成例を示す。この装置は、4個の命令プリフェッチ・キ
ュー・バッファ14とライトバック方式のキャッシュメ
モリ17及び、外部バス制御ユニット19,カウンタ1
6,デコーダ13等で構成される。
【0020】実効アドレス10は演算処理装置が主記憶
部(45)をアクセスする時に発生するアドレスで、演
算処理装置からキャッシュメモリ17に入力される。命
令解析ユニット11は演算装置の一部分であり、入力さ
れた命令を順次解析し、実効ユニットに引渡す。このキ
ャッシュメモリから演算処理装置に引渡される。オペラ
ンドデータ12は演算に必要な演算数をメモリから演算
処理装置に、又はその反対にやり取りをする。デコーダ
13は演算処理装置が外部バス、キャッシュメモリを使
用しない時間の予測に使用され、演算処理装置が外部バ
スを使用しない事が確実な場合に、キャッシュメモリ1
7のパージを許可する信号を発生し、キャッシュメモリ
を使用しない場合は、キャッシュメモリを調査するシー
ケンスを起動する。
部(45)をアクセスする時に発生するアドレスで、演
算処理装置からキャッシュメモリ17に入力される。命
令解析ユニット11は演算装置の一部分であり、入力さ
れた命令を順次解析し、実効ユニットに引渡す。このキ
ャッシュメモリから演算処理装置に引渡される。オペラ
ンドデータ12は演算に必要な演算数をメモリから演算
処理装置に、又はその反対にやり取りをする。デコーダ
13は演算処理装置が外部バス、キャッシュメモリを使
用しない時間の予測に使用され、演算処理装置が外部バ
スを使用しない事が確実な場合に、キャッシュメモリ1
7のパージを許可する信号を発生し、キャッシュメモリ
を使用しない場合は、キャッシュメモリを調査するシー
ケンスを起動する。
【0021】プリフェッチ・キュー14には次に実行さ
れる予定の数命令を予め読み込んでおき、データレジス
タ15はオペランドとして演算処理装置に与えられるデ
ータを一時保存しておく。カウンタ16はキャッシュメ
モリ17のブロックを順次指し示していく。
れる予定の数命令を予め読み込んでおき、データレジス
タ15はオペランドとして演算処理装置に与えられるデ
ータを一時保存しておく。カウンタ16はキャッシュメ
モリ17のブロックを順次指し示していく。
【0022】キャッシュメモリ制御回路18はライトバ
ックのアルゴリズムをトレースするシーケンサであり、
バスコントローラ19は、外部バスとキャッシュメモリ
、及び演算処理装置の間のインターフェースとなる。 マルチプレクサ20は通常実行アドレスの一部分(イン
デックス)をキャッシュメモリ17に与え、このキャッ
シュメモリ17の調査及びパージ操作の間は、カウンタ
16の内容をキャッシュメモリに与える。
ックのアルゴリズムをトレースするシーケンサであり、
バスコントローラ19は、外部バスとキャッシュメモリ
、及び演算処理装置の間のインターフェースとなる。 マルチプレクサ20は通常実行アドレスの一部分(イン
デックス)をキャッシュメモリ17に与え、このキャッ
シュメモリ17の調査及びパージ操作の間は、カウンタ
16の内容をキャッシュメモリに与える。
【0023】タグ23はキャッシュメモリ17の1ブロ
ックに1個ずつ付いており、アドレスの一部分が入って
いる。演算処理装置の発生するアドレスと、このタグの
アドレスが一致したら、キャッシュメモリ17は演算処
理装置のアドレスのデータを保持している。フラグ24
はバリッドとダーティ等を示すフラグで構成され、バリ
ッドフラグ24bは、当該ブロックに正当なデータが存
在しているかどうかを示し、ダーティフラグ24aの当
該ブロックのデータがキャッシュメモリ17上でのみ更
新されており、このブロックのキャッシュメモリを違う
アドレスを持つブロックに変更する前に、主記憶部45
上に書き戻す必要がある事を示す。
ックに1個ずつ付いており、アドレスの一部分が入って
いる。演算処理装置の発生するアドレスと、このタグの
アドレスが一致したら、キャッシュメモリ17は演算処
理装置のアドレスのデータを保持している。フラグ24
はバリッドとダーティ等を示すフラグで構成され、バリ
ッドフラグ24bは、当該ブロックに正当なデータが存
在しているかどうかを示し、ダーティフラグ24aの当
該ブロックのデータがキャッシュメモリ17上でのみ更
新されており、このブロックのキャッシュメモリを違う
アドレスを持つブロックに変更する前に、主記憶部45
上に書き戻す必要がある事を示す。
【0024】キャッシュメモリ17のデータブロック2
5はここで、主記憶部45の内容を別に保持し、キャッ
シュメモリ制御回路26は、ライトバック方式のキャッ
シュメモリを制御するシーケンサである。データバス2
7はキャッシュメモリ17の内容を、主記憶部45に書
き戻す時、主記憶部17からキャッシュメモリ17に値
を書込む時、キャッシュメモリ17から演算処理装置に
データを引渡す時に使用される。
5はここで、主記憶部45の内容を別に保持し、キャッ
シュメモリ制御回路26は、ライトバック方式のキャッ
シュメモリを制御するシーケンサである。データバス2
7はキャッシュメモリ17の内容を、主記憶部45に書
き戻す時、主記憶部17からキャッシュメモリ17に値
を書込む時、キャッシュメモリ17から演算処理装置に
データを引渡す時に使用される。
【0025】プリフェッチキュー14に命令を入れるバ
ス29は、分岐命令実行後そのキュー14の内容を全て
クリアする必要がある為、4段分の全てに接続されてい
る。バス30はキャッシュパージアドレスバス,キャッ
シュメモリのバージを行なう場合に、このブロックに入
っているデータのアドレスを出力する。またバス31は
実行アドレスをキャッシュメモリ及び主記憶部に伝える
バスである。
ス29は、分岐命令実行後そのキュー14の内容を全て
クリアする必要がある為、4段分の全てに接続されてい
る。バス30はキャッシュパージアドレスバス,キャッ
シュメモリのバージを行なう場合に、このブロックに入
っているデータのアドレスを出力する。またバス31は
実行アドレスをキャッシュメモリ及び主記憶部に伝える
バスである。
【0026】ライトバック方式のキャッシュメモリ17
は、各ブロックにタグ23bとしてアドレスの一部、キ
ャッシュの内容が有効である事を示すフラグ(バリッド
フラグ)24a、キャッシュの内容が主記憶部45の内
容と異なっており、キャッシュの内容が正しい内容であ
る事を示すフラグ(ダーティフラグ)24bを持ってい
る。ダーティフラグ24bは、あるキャッシュのブロッ
クに演算処理装置による書込みが行なわれた場合に、キ
ャッシュメモリ17の内容が主記憶部(45)の内容と
異なってしまった場合に立てるフラグで、このフラグ2
4が立っている場合は、キャッシュメモリの当該ブロッ
クを新たに別のアドレスについて使用する場合に主記憶
部45に書き戻す必要がある。
は、各ブロックにタグ23bとしてアドレスの一部、キ
ャッシュの内容が有効である事を示すフラグ(バリッド
フラグ)24a、キャッシュの内容が主記憶部45の内
容と異なっており、キャッシュの内容が正しい内容であ
る事を示すフラグ(ダーティフラグ)24bを持ってい
る。ダーティフラグ24bは、あるキャッシュのブロッ
クに演算処理装置による書込みが行なわれた場合に、キ
ャッシュメモリ17の内容が主記憶部(45)の内容と
異なってしまった場合に立てるフラグで、このフラグ2
4が立っている場合は、キャッシュメモリの当該ブロッ
クを新たに別のアドレスについて使用する場合に主記憶
部45に書き戻す必要がある。
【0027】全ての命令が1クロックで実行する事ので
きる演算処理装置の場合は、プリフェッチキュー14の
各段に入っている命令を以下の命令に注目してデコーダ
13でデコードするだけでよい。まず、分岐命令で、プ
ログラムの流れが変る可能性があるので、次に実行する
命令を予測する事が困難であり、外部バスアクセスが予
測できない。この理由で、プリフェッチキュー14の各
段に、分岐命令を含む命令が存在しない事を確かめる。 更に、外部バスをアクセスする命令(メモリの特定番地
を参照する命令等)がプリフェッチ・キュー14に入っ
ていない場合は、バスコントローラ19に対して外部バ
スが空いている事を示す信号を発生する。
きる演算処理装置の場合は、プリフェッチキュー14の
各段に入っている命令を以下の命令に注目してデコーダ
13でデコードするだけでよい。まず、分岐命令で、プ
ログラムの流れが変る可能性があるので、次に実行する
命令を予測する事が困難であり、外部バスアクセスが予
測できない。この理由で、プリフェッチキュー14の各
段に、分岐命令を含む命令が存在しない事を確かめる。 更に、外部バスをアクセスする命令(メモリの特定番地
を参照する命令等)がプリフェッチ・キュー14に入っ
ていない場合は、バスコントローラ19に対して外部バ
スが空いている事を示す信号を発生する。
【0028】また、同様に、プリフェッチ・キュー14
に分岐命令がなく、キャッシュデータをアクセスする命
令も入っていない場合は、現在のカウンタ16によって
指し示されているキャッシュメモリ17の内容をチェッ
クし、この内容がダーティすなわちキャッシュメモリ内
容と主記憶部45の内容が異なっているかどうかをフラ
グの状態で調べダーティフラグが、真であれば、カウン
タ16はこの時の内容を保持し続ける。そして、バスコ
ントローラ19に、現在のカウンタ16に指し示されて
いるキャッシュメモリ17のブロックのパージ(キャッ
シュメモリの内容を主記憶に書き戻すこと)を要求する
信号を発生する。反対にダーティでなければ、カウンタ
16を次の値に更新し、キャッシュメモリ17の次のブ
ロックをチェックする為の準備をする。
に分岐命令がなく、キャッシュデータをアクセスする命
令も入っていない場合は、現在のカウンタ16によって
指し示されているキャッシュメモリ17の内容をチェッ
クし、この内容がダーティすなわちキャッシュメモリ内
容と主記憶部45の内容が異なっているかどうかをフラ
グの状態で調べダーティフラグが、真であれば、カウン
タ16はこの時の内容を保持し続ける。そして、バスコ
ントローラ19に、現在のカウンタ16に指し示されて
いるキャッシュメモリ17のブロックのパージ(キャッ
シュメモリの内容を主記憶に書き戻すこと)を要求する
信号を発生する。反対にダーティでなければ、カウンタ
16を次の値に更新し、キャッシュメモリ17の次のブ
ロックをチェックする為の準備をする。
【0029】最後に、キャッシュメモリ17の内容をパ
ージする信号が発生しており、プリフェッチキュー14
の内容が、外部バスを使用しても良い事を示す信号を発
生している場合は、バスコントローラ19はキャッシュ
メモリ17の内容を出力させ、キャッシュメモリ17の
アドレスの主記憶部45aに対応する書込みサイクルを
発生させる。主記憶部45に対応する書込みを実行した
後、ダーティフラグ24bをクリアする。
ージする信号が発生しており、プリフェッチキュー14
の内容が、外部バスを使用しても良い事を示す信号を発
生している場合は、バスコントローラ19はキャッシュ
メモリ17の内容を出力させ、キャッシュメモリ17の
アドレスの主記憶部45aに対応する書込みサイクルを
発生させる。主記憶部45に対応する書込みを実行した
後、ダーティフラグ24bをクリアする。
【0030】以上の一連の動作によって、キャッシュメ
モリ17を空いたバスサイクルを用いる事で、外部バス
使用効率を上げ、キャッシュメモリ17をできるだけダ
ーティでない状態に保って置く事ができるようになる。
モリ17を空いたバスサイクルを用いる事で、外部バス
使用効率を上げ、キャッシュメモリ17をできるだけダ
ーティでない状態に保って置く事ができるようになる。
【0031】また、第2の実施例として、第1の実施例
と同様な構成の場合で、命令が多数のクロックにまたが
って実行される場合、1命令だけで次の数サイクルはバ
スアクセスが行なわれない命令をデコードする事により
、キャッシュメモリ17のパージサイクルを実行する。 この場合はキューの1段目だけをデコードする事で実現
する事ができる。
と同様な構成の場合で、命令が多数のクロックにまたが
って実行される場合、1命令だけで次の数サイクルはバ
スアクセスが行なわれない命令をデコードする事により
、キャッシュメモリ17のパージサイクルを実行する。 この場合はキューの1段目だけをデコードする事で実現
する事ができる。
【0032】次に、キャッシュメモリ17の具体例とし
て、ダイレクトマップ型で、16Kバイトの大きさで、
16バイトのブロックサイズを持っている場合を説明す
る。このタイプのキャッシュメモリがミスヒットを起こ
す確率は、15%ほどである。この内、演算処理装置に
よって書込みが行なわれたブロックは全体の50%であ
る事が予測される。つまり、キャッシュミスヒットが発
生して、かつ主記憶部45へ値を戻さなければならない
組合せは、全体の8%程となる。この8%の部分が、メ
モリサイクルを通常のミスヒットが発生した場合の2倍
の時間を必要とする。しかし、この装置によって、従来
キャッシュミスヒット時に行なわれていたパージ動作は
ほとんど行なわれなくなり、通常のバスアクセスサイク
ルの間に隠れて実行される。
て、ダイレクトマップ型で、16Kバイトの大きさで、
16バイトのブロックサイズを持っている場合を説明す
る。このタイプのキャッシュメモリがミスヒットを起こ
す確率は、15%ほどである。この内、演算処理装置に
よって書込みが行なわれたブロックは全体の50%であ
る事が予測される。つまり、キャッシュミスヒットが発
生して、かつ主記憶部45へ値を戻さなければならない
組合せは、全体の8%程となる。この8%の部分が、メ
モリサイクルを通常のミスヒットが発生した場合の2倍
の時間を必要とする。しかし、この装置によって、従来
キャッシュミスヒット時に行なわれていたパージ動作は
ほとんど行なわれなくなり、通常のバスアクセスサイク
ルの間に隠れて実行される。
【0033】メモリアクセス命令が全体の30%程の割
合で存在しているプログラムを動作させた場合の速度を
比較する。通常の演算命令実行に1クロック、メモリア
クセスはキャッシュヒット時は、1クロック、ミスヒッ
トでパージが必要でない場合は8クロック。パージが必
要である場合は、16クロックが必要である場合(32
ビットのメモリアクセス命令が1回で2クロックが必要
であると仮定する)には、演算処理装置の平均命令実行
時間の見積りは、次の表1で表され、本実施例は、従来
例に対し、(1.547/1.355=)1.142、
すなわち14.2%の速度向上される。
合で存在しているプログラムを動作させた場合の速度を
比較する。通常の演算命令実行に1クロック、メモリア
クセスはキャッシュヒット時は、1クロック、ミスヒッ
トでパージが必要でない場合は8クロック。パージが必
要である場合は、16クロックが必要である場合(32
ビットのメモリアクセス命令が1回で2クロックが必要
であると仮定する)には、演算処理装置の平均命令実行
時間の見積りは、次の表1で表され、本実施例は、従来
例に対し、(1.547/1.355=)1.142、
すなわち14.2%の速度向上される。
【0034】
【表1】
【0035】
【発明の効果】以上説明したように本発明によれば、外
部バス資源が働いていない時間でキャッシュメモリをチ
ェックし、主記憶部を最新の状態に保って置く事ができ
るので、ライトバック方式のキャッシュメモリのパージ
サイクルの回数を減らす事ができ、演算処理装置の速度
を上げられるという効果がある。
部バス資源が働いていない時間でキャッシュメモリをチ
ェックし、主記憶部を最新の状態に保って置く事ができ
るので、ライトバック方式のキャッシュメモリのパージ
サイクルの回数を減らす事ができ、演算処理装置の速度
を上げられるという効果がある。
【図1】本発明の一実施例のブロック図
【図2】従来例
のキャッシュメモリ装置のブロック図
のキャッシュメモリ装置のブロック図
【図3】図2のフ
ロー図
ロー図
10,10a 実効アドレス
11 命令解析ユニット
12 オペランド
13 デコーダ
14 プリフェッチ・キュー
15 データレジスタ
16 カウンタ
17,17a キャッシュメモリ18 A
ND回路 19 バスコントローラ 20 マルチプレクサ 22 外部バスインタフェース 23,23a タグ 24,24a,24b フラグ 25 データ 26,26a キャッシュメモリ制御回路27
データバス 29〜31 バス 41 ブロック内変移 42 インデックス 43 比較回路 45 主記憶部 46 出力ポート
ND回路 19 バスコントローラ 20 マルチプレクサ 22 外部バスインタフェース 23,23a タグ 24,24a,24b フラグ 25 データ 26,26a キャッシュメモリ制御回路27
データバス 29〜31 バス 41 ブロック内変移 42 インデックス 43 比較回路 45 主記憶部 46 出力ポート
Claims (1)
- 【請求項1】 演算処理装置に内蔵されたコピーバッ
ク方式のキャッシュメモリを含むキャッシュメモリ装置
において、前記演算処理装置が次に実行する命令を予め
取込むプリフェッチキュー部と、このプリフェッチ・キ
ュー部からのプリフェッチ・キューをデコードしこのプ
リフェッチ・キューの内容である命令が、分岐命令、外
部バスアクセス命令を含まない条件を判定するデコーダ
と、このデコーダが現在実行中の命令及び次に実行する
事が予測される命令では外部バスをアクセスする可能性
がないと判断できる場合に、前記キャッシュメモリのブ
ロック番号を順次指し示すカウンタと、このカウンタの
アドレスに従って読出された前記キャッシュメモリのブ
ロックの内容を調べこのブロックの内容が前記演算処理
装置によって書込まれ、キャッシュメモリのデータが現
在の値であり、このデータが主記憶部の保持する値と異
なっている場合に外部バスサイクルを起動し、該当する
キャッシュメモリの内容を前記主記憶部に書き戻すバス
制御部とを備え、外部インターフェースが待ち状態にあ
る間、記憶内容を前記主記憶部の内容と等しくなるよう
にすることを特徴とするキャッシュメモリ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3112035A JPH04340145A (ja) | 1991-05-17 | 1991-05-17 | キャッシュメモリ装置 |
US07/879,314 US5412790A (en) | 1991-05-17 | 1992-05-07 | High-throughput data processing system equipped with cache memory system for achieving high hit ratio |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3112035A JPH04340145A (ja) | 1991-05-17 | 1991-05-17 | キャッシュメモリ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04340145A true JPH04340145A (ja) | 1992-11-26 |
Family
ID=14576379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3112035A Pending JPH04340145A (ja) | 1991-05-17 | 1991-05-17 | キャッシュメモリ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5412790A (ja) |
JP (1) | JPH04340145A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594732B1 (en) | 1998-12-22 | 2003-07-15 | Nec Electronics Corporation | Computer system with memory system in which cache memory is kept clean |
JP2009169767A (ja) * | 2008-01-17 | 2009-07-30 | Toshiba Corp | パイプライン型プロセッサ |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2762424B1 (fr) * | 1997-04-17 | 2003-01-10 | Gemplus Card Int | Carte a puce avec compteur, notamment compteur d'unite ou de gratifications, et procede de mise en oeuvre |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6028015B2 (ja) * | 1980-08-28 | 1985-07-02 | 日本電気株式会社 | 情報処理装置 |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
JP2695157B2 (ja) * | 1986-12-29 | 1997-12-24 | 松下電器産業株式会社 | 可変パイプラインプロセッサ |
JP2722523B2 (ja) * | 1988-09-21 | 1998-03-04 | 日本電気株式会社 | 命令先取り装置 |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
US5265213A (en) * | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
-
1991
- 1991-05-17 JP JP3112035A patent/JPH04340145A/ja active Pending
-
1992
- 1992-05-07 US US07/879,314 patent/US5412790A/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594732B1 (en) | 1998-12-22 | 2003-07-15 | Nec Electronics Corporation | Computer system with memory system in which cache memory is kept clean |
JP2009169767A (ja) * | 2008-01-17 | 2009-07-30 | Toshiba Corp | パイプライン型プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US5412790A (en) | 1995-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5809530A (en) | Method and apparatus for processing multiple cache misses using reload folding and store merging | |
US5420991A (en) | Apparatus and method for maintaining processing consistency in a computer system having multiple processors | |
US4701844A (en) | Dual cache for independent prefetch and execution units | |
US5511175A (en) | Method an apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
US6226713B1 (en) | Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem | |
US5664148A (en) | Cache arrangement including coalescing buffer queue for non-cacheable data | |
US7228389B2 (en) | System and method for maintaining cache coherency in a shared memory system | |
US5349651A (en) | System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
US5751995A (en) | Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively | |
JP4162825B2 (ja) | マイクロプロセッサ | |
JPH02190930A (ja) | ソフトウエア命令実行装置 | |
JPH02208728A (ja) | 仮想命令キャッシュ再補充アルゴリズム | |
JPH06222990A (ja) | データ処理装置 | |
JP2000242558A (ja) | キャッシュシステム及びその操作方法 | |
JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
US5263153A (en) | Monitoring control flow in a microprocessor | |
KR100335744B1 (ko) | 로드/로드 검출 및 재정렬 방법 | |
US6408363B1 (en) | Speculative pre-flush of data in an out-of-order execution processor system | |
US5649137A (en) | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency | |
EP0525666B1 (en) | Information processing apparatus incorporating branch target instruction buffer | |
JP2575219B2 (ja) | データ処理システム及びその命令実行を促進する方法 | |
US6643766B1 (en) | Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor | |
CN113849222A (zh) | 流水线化乱序页未命中处理程序 | |
US5687350A (en) | Protocol and system for performing line-fill address during copy-back operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020226 |