JPH0855061A - キャッシュメモリ制御装置 - Google Patents

キャッシュメモリ制御装置

Info

Publication number
JPH0855061A
JPH0855061A JP6192490A JP19249094A JPH0855061A JP H0855061 A JPH0855061 A JP H0855061A JP 6192490 A JP6192490 A JP 6192490A JP 19249094 A JP19249094 A JP 19249094A JP H0855061 A JPH0855061 A JP H0855061A
Authority
JP
Japan
Prior art keywords
data
cache memory
storage device
main storage
transfer
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
JP6192490A
Other languages
English (en)
Inventor
Tomoo Kokubo
朝生 小久保
Isao Uchiumi
功朗 内海
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP6192490A priority Critical patent/JPH0855061A/ja
Publication of JPH0855061A publication Critical patent/JPH0855061A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 システム全体のスループットを向上させるこ
とができるキャッシュメモリ制御装置を提供する。 【構成】 レジスタ33に転送開始指示データ1がセッ
トされると、ディテクタ36によって、処理装置が主記
憶装置等をアクセスしているか否かが判定される。アク
セしていなければ、マルチプレクサ34によって生成さ
れた読出しアドレスが主記憶装置に供給される。これに
より、主記憶装置から凍結ブロック(データアレイ21
のグループG1)に自動的にデータが転送される。これ
に対し、レジスタ33に転送開始指示データ0がセット
されると、ディテクタ36によって、処理装置が主記憶
装置等をアクセスしているか否かが判定される。アクセ
していなければ、マルチプレクサ34によって生成され
た書込みアドレスが主記憶装置に供給される。これによ
り、凍結ブロックから主記憶装置に自動的にデータが転
送される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、主記憶装置と処理装
置との間に設けられ、両者の動作速度の差を調整するキ
ャッシュメモリを制御するキャッシュメモリ制御装置に
関する。
【0002】
【従来の技術】一般に、マイクロプロセッサにおいて
は、レジスタのアクセス速度に比べ、主記憶装置のアク
セス速度の方が遅い。したがって、システム全体の処理
速度を高めるためには、主記憶装置のアクセス速度を高
める必要がある。
【0003】主記憶装置のアクセス速度を高めるために
は、この主記憶装置をスタティック形RAM等の高速メ
モリで構成すればよい。しかし、高速メモリは高価であ
るため、大容量の主記憶装置を高速メモリで構成する
と、システム全体の製造経費が高くなってしまう。そこ
で、従来より、例えば、下記の文献に記載されるよう
に、小容量ではあるが高速のバッファメモリを使って、
主記憶装置の見かけ上のアクセス速度を高めることが行
われている。
【0004】 文献:計算システム入門 著者:所 真理雄 出版社:岩波書店 発行日:1988年 10月 6日 このバッファメモリは、通常、キャッシュメモリと呼ば
れ、広く、コンピュータシステム上で使用されている。
【0005】ここで、図2を参照しながら、キャッシュ
メモリの制御を説明する。なお、この図2は、キャッシ
ュメモリの動作原理を概念的に示すものである。
【0006】図示の如く、キャッシュメモリ11は、処
理装置12と主記憶装置13の間に設けられ、処理装置
12により参照された主記憶装置13のアドレスに格納
されているデータ(命令を含む)のコピーを一時的に保
持するようになっている。このキャッシュメモリは一種
の連想メモリであり、主記憶装置13のアドレスとその
内容が格納されるようになっている。
【0007】このような構成によれば、処理装置12の
参照アドレスがキャッシュメモリ11に存在する限り、
処理装置12は、アクセス速度の早いキャッシュメモリ
11をアクセスすることにより、希望するデータを得る
ことができるので、システム全体の処理速度を高めるこ
とができる。
【0008】一般に、処理装置12の参照アドレスがキ
ャッシュメモリ11に存在する場合をヒットといい、存
在しない場合をミスヒットという。
【0009】処理装置12が主記憶装置13からデータ
を読み出す読出しモードにおいては、ヒットの場合、デ
ータは、キャッシュメモリ11から読み出される。これ
に対し、ミスヒットの場合は、主記憶装置13から読み
出される。また、この場合は、キャッシュメモリ11の
ある領域からデータを追い出し、ここに、主記憶装置1
3から読み出されたデータを新たに格納するリプレース
という操作が行われる。このリプレースにより、その
後、同じアドレスをアクセスする場合、ヒットとなるの
で、アクセス速度を高めることができる。
【0010】処理装置12が主記憶装置13にデータを
書き込む書込みモードにおいては、アクセス方式とし
て、ライトスルー方式とライトイン方式がある。
【0011】ライトスルー方式においては、ヒットの場
合、データは、キャッシュメモリ11と主記憶装置13
に書き込まれる。これにより、キャッシュメモリ11と
主記憶装置12の間のデータの整合性が保たれる。これ
に対し、ミスヒットの場合は、データは、主記憶装置1
3に対してのみ書き込まれる。
【0012】ライトイン方式においては、ヒットの場
合、データは、キャッシュメモリ11にのみ書き込まれ
る。これに対し、ミスヒットの場合は、まず、リプレー
スを行って、参照アドレスおよびその内容をキャッシュ
メモリ11に格納してから、このメモリ11に対して、
データの書込みが行われる。
【0013】以上が、キャッシュメモリ11の制御方法
である。ところで、キャッシュメモリ11の制御におい
ては、キャッシュメモリ11の記憶内容の一部または全
部のリプレースを禁止する場合がある。これは、読出し
モード時のスループットを向上させるためである。
【0014】すなわち、リプレースを実行すると、それ
まで、キャッシュメモリ11に存在していたデータの一
部または全部がキャッシュメモリ11から追い出され
る。これにより、オペレーティングシステムの命令コー
ド等のように、頻繁にアクセスされるデータまでも追い
出されてしまうことがある。
【0015】しかし、このようなデータが追い出されて
しまうと、その後、リプレースが頻繁に生じ、読出しモ
ード時のスループットが低下してしまう。そこで、この
ようなデータに関しては、リプレースを禁止してキャッ
シュメモリ11に常駐させることにより、リプレースの
回数が減らして、読出しモード時のスループットを向上
させることができる。
【0016】なお、リプレースが禁止された状態は凍結
と呼ばれる。凍結の単位は、ウェイ単位、ブロック単位
等様々ある。以下、キャッシュメモリ11において、リ
プレースが禁止された領域を凍結ブロックという。
【0017】上述した書込みモードにおいて、このよう
な凍結ブロックにデータを書き込むためのアクセス方式
としては、非凍結ブロックのアクセス方式と同様、キャ
ッシュメモリ11と主記憶装置13の両方に書き込む方
式(以下、「書込み方式1」という。)と、キャッシュ
メモリ11にのみ書き込む方式(以下、「書込み方式
2」という。)がある。
【0018】書込み方式1の場合、データをキャッシュ
メモリ11だけでなく、主記憶装置にも書き込まなけれ
ばならないため、書込みに関しては、アクセス速度を高
めることができない。これに対し、書込み方式2の場合
は、データをキャッシュメモリ11にだけ、書き込めば
よいので、アクセス速度を高めることができる。
【0019】
【発明が解決しようとする課題】しかしながら、リプレ
ース禁止機能を有する従来のキャッシュメモリ制御装置
には、次のような2つの問題があった。
【0020】(1) まず、凍結ブロックにデータを書
き込むためのアクセス方式として、書込み方式2を採用
した場合、書込みモードにおけるアクセス速度を高める
ことができる反面、凍結ブロックに格納されているデー
タと主記憶装置13に格納されているデータの整合をと
ることができない。
【0021】従来のキャッシュメモリ制御装置におい
て、この整合をとるためには、整合をとりたいデータの
書込み要求が発生するたびに、まず、凍結ブロックの凍
結を解除し、次に、上述したライトスルー方式により、
キャッシュメモリ11と主記憶装置13に、データを書
き込むようにしなければならない。
【0022】しかしながら、このような構成では、整合
をとりたいデータの書込み要求が多くなると、書込み方
式1と同様に、アクセス速度が低下し、システム全体の
スループットが低下してしまうという問題があった。
【0023】(2) また、凍結ブロックに意図するデ
ータを常駐させるためには、まず、処理装置12からの
読込み要求によって、主記憶装置13からキャッシュメ
モリ11の非凍結ブロックにデータを転送し、次に、こ
の転送領域を凍結する必要がある。
【0024】このように、キャッシュメモリ11の凍結
ブロックにデータを常駐させるためには、前処理とし
て、処理装置12を介して、主記憶装置13からキャッ
シュメモリ11を転送しなければならない。
【0025】しかしながら、このような構成では、常駐
させるデータが多くなると、前処理に要する時間が長く
なり、システム全体のスループットが低下するという問
題があった。
【0026】
【課題を解決するための手段】上記課題(1)を解決す
るために、請求項1に係る発明は、リプレース禁止機能
と、書込み方式1によるデータ書込み機能を有するキャ
ッシュメモリ制御装置において、リプレース禁止領域か
ら主記憶装置にデータを転送するための転送要求が発生
すると、処理装置がキャッシュメモリや主記憶装置をア
クセスしているか否かを判定する手段と、この手段によ
り、アクセスしていないと判定された場合のみ、データ
を転送する手段とを設けるようにしたものである。
【0027】また、上記課題(2)を解決するために、
請求項3に係る発明は、リプレース禁止機能を有するキ
ャッシュメモリ制御装置において、主記憶装置からリプ
レース禁止領域にデータを転送するための転送要求が発
生すると、処理装置がキャッシュメモリや主記憶装置を
アクセスしているか否かを判定する手段と、この手段に
より、アクセスしていないと判定された場合のみ、デー
タを転送する手段とを設けるようにしたものである。
【0028】
【作用】請求項1に係る発明によれば、リプレース禁止
領域から主記憶装置へのデータ転送要求が発生すると、
処理装置がキャッシュメモリや主記憶装置をアクセスし
ているか否かが判定される。そして、この判定により、
アクセスしていないと判定された場合のみ、リプレース
禁止領域から主記憶装置にデータが転送される。
【0029】これにより、リプレース禁止領域に格納さ
れているデータと主記憶装置に格納されているデータの
整合をとることができるとともに、処理装置をデータの
整合をとるためのデータ転送から解放することができる
ので、システム全体のスループットを向上させることが
できる。
【0030】請求項3に係る発明によれば、主記憶装置
からリプレース禁止領域へのデータ転送要求が発生する
と、処理装置がキャッシュメモリや主記憶装置をアクセ
スしているか否かが判定される。そして、この判定によ
り、アクセスしていないと判定された場合のみ、主記憶
装置からリプレース禁止領域にデータが転送される。こ
れにより、処理装置をデータを常駐させるためのデータ
転送から解放することができるので、システム全体のス
ループットを向上させることができる。
【0031】
【実施例】以下、図面を参照しながら、この発明の実施
例を詳細に説明する。なお、以下の説明では、この発明
をセットアソシアティブ方式のキャッシュメモリの制御
装置に適用した場合を代表として説明する。
【0032】セットアソシアティブ方式のキャッシュメ
モリの構成は、ウェイ数とセット数という2個のパラメ
ータにより表現される。ここで、ウェイ数とは、検索の
際に、アドレスのタグの比較に用いられるタグ比較器の
数をいい、セット数とは、アドレスデコーダ1個当たり
のブロック数をいう。ブロックとは、主記憶装置13
(図2参照)からキャッシュメモリ11(図2参照)に
データを転送する際の転送単位をいい、例えば、16〜
64バイト分のデータからなる。
【0033】セットアソシアティブ方式のキャッシュメ
モリは、ウェイ数が2である場合、2ウェイセットアソ
シアティブ方式のキャッシュメモリと呼ばれる。以下、
セットアソシアティブのキャッシュメモリとして、この
2ウェイセットアソシアティブ方式のキャッシュメモリ
を使って、この発明の一実施例を詳細に説明する。
【0034】図1は、この発明の一実施例の構成を示す
ブロック図である。図において、21は、処理装置12
(図2参照)により参照された主記憶装置13のアドレ
スに格納されているデータのコピーを保持するデータア
レイである。このデータアレイ21は、それぞれ複数の
セットS1…SN(Nは2以上の正の整数)からなる2
つのグループG1,G2に分けられている。
【0035】22は、処理装置12により参照された主
記憶装置13のアドレスのタグTを格納するタグアレイ
である。このタグアレイ22も、それぞれ複数のセット
S1,S2,…からなる2つのグループG1,G2に分
けられている。なお、このタグアレイ22とデータアレ
イにより、連想メモリ形式のキャッシュメモリ11が構
成される。
【0036】タグアレイ22に格納されている複数のタ
グTはそれぞれVビットとDビットという2つのフラグ
を有する。ここで、Vビットは、データアレイ21に格
納されているデータが有効か否かを表すフラグである。
このVビットが1の場合は、データが有効であることを
表し、0の場合は、無効であることを表す。したがっ
て、Vビットが0の場合は、タグの値にかかわらず、ミ
スヒットになる。
【0037】Dビットは、データアレイ21に格納され
ているデータと主記憶装置13に格納されているデータ
との整合がとれているか否かを表すフラグである。この
Dビットが1の場合は、整合がとれていないことを表
し、0の場合は、整合がとれていることを表す。
【0038】23は、主記憶装置13のアドレス等をラ
ッチするラッチ回路である。このアドレスは、セットイ
ンデックスSとタグTとからなる。
【0039】24は、ラッチ回路23にラッチされたア
ドレスのセットインデックスSをデコードして、データ
アレイ21のセットアドレスを求めるアドレスデコーダ
である。25は、ラッチ回路23にラッチされたアドレ
スのセットインデックスSをデコードして、データアレ
イ22のセットアドレスを求めるアドレスデコータであ
る。
【0040】26は、タグアレイ22のグループG1か
ら読み出されたタグTとラッチ回路23にラッチされて
いるアドレスのタグTとを比較し、両者が一致するか否
かを判定するタグ比較器である。27は、タグアレイ2
2のグループG2から読み出されたタグTとラッチ回路
23にラッチされているタグTとを比較し、両者が一致
するか否かを判定するタグ比較器である。
【0041】28は、データアレイ21のグループG1
と後述するデータバス42との接続および切断に使用さ
れるゲート回路である。29は、データアレイ21のグ
ループG2とデータバス42との接続および切断に使用
されるゲート回路である。
【0042】31は、主記憶装置13からデータアレイ
21の凍結ブロックに、処理装置12を介さずに、デー
タを自動的に転送する際の転送開始アドレスを保持する
転送開始アドレス格納レジスタである。この転送開始ア
ドレスは、処理装置12によりセットされる。
【0043】32は、転送語数を示すデータを保持する
転送語数格納レジスタである。この転送語数を示すデー
タも、処理装置12によりセットされる。
【0044】33は、データ転送の開始を指示するため
のデータを保持する転送開始指示レジスタである。この
転送開始指示データは、処理装置12によりセットされ
る。例えば、この転送開始指示データが1である場合、
主記憶装置12からデータアレイ21の凍結ブロック
に、データを自動的に転送するためのデータ転送が開始
される。これに対し、0である場合、凍結ブロックから
主記憶装置12に、自動的にデータを転送するためのデ
ータ転送が開始される。
【0045】以下、主記憶装置12からデータアレイ2
1の凍結ブロックに、自動的にデータを転送するための
動作モードを自動読出しモードといい、データアレイ2
1の凍結ブロックから主記憶装置12にデータを自動的
に転送する動作モードを自動蓄積モードという。
【0046】34は、自動読出しモードにおける主記憶
装置12のアドレス、自動蓄積モードにおける主記憶装
置12のアドレスを生成するマルチプレクサである。こ
のマルチプレクサ34は、自動読出しモードにおいて
は、転送開始アドレス格納レジスタ31の内容と後述す
るカウンタ37のカウント値とに基づいて、転送元アド
レスを生成し、自動蓄積モードにおいては、後述するラ
ッチ回路51の内容とカウンタ37のカウント値とから
転送先アドレスを生成する。
【0047】35は、転送語数格納レジスタ32の内容
と後述するカウンタ37のカウント値とを比較し、両者
が一致すると、後述するゲート回路52のゲートを閉じ
る比較器である。
【0048】36は、アドレスバス41の状態を監視す
ることにより、自動読出しモード時や自動蓄積モード時
に、処理装置12が主記憶装置13やキャッシュメモリ
11(データアレイ21やタグアレイ22)をアクセス
しているか否かを判定するディテクタである。
【0049】37は、自動読出しモード時や自動蓄積モ
ード時に、アドレスの更新に使用されるカウンタであ
る。このカウンタ37は、転送開始指示レジスタ33に
転送開始指示データがセットされると、0にクリアされ
る。
【0050】38は、凍結ブロックを示す凍結ブロック
指定データを保持する凍結制御レジスタである。この凍
結ブロック指示データは、処理装置12によりセットさ
れる。この実施例では、凍結ブロックは、ウェイ単位で
指定される。したがって、凍結制御レジスタ38には、
凍結したいウェイを示すデータが保持される。
【0051】なお、2つのウェイはそれぞれグループG
1,G2に対応する。したがって、凍結制御レジスタ3
8には、グループG1,G2を示すデータが保持され
る。この実施例では、グループG1,G2のいずれか一
方のみを凍結ブロックとして指定可能となっている。
【0052】39は、凍結制御レジスタ31の保持デー
タにより指定される凍結ブロックのリプレースを禁止す
るリプレース禁止回路である。このリプレース禁止回路
39は、凍結制御レジスタ38が、例えば、グループG
1を示すデータを保持している場合は、このグループG
1のリプレースを禁止する。
【0053】41は、処理装置12と、キャッシュメモ
リ11と、主記憶装置13とを接続するアドレスバスで
ある。42は、同じく、データバスである。
【0054】51は、グループG1のタグアレイ22に
格納されているタグTのうち、アドレスデコーダ24で
選択されたセットアドレスSn(n=1,2,…,N)
に格納されているタグTをラッチするラッチ回路であ
る。52は、グループG1のタグアレイ22とラッチ回
路51との接続および切断に使用されるゲート回路であ
る。
【0055】53は、グループG1のタグアレイ22に
格納されているVビットとDビットのうち、アドレスデ
コーダ24で選択されたセットアドレスSnに格納され
ているVビットとDビットに基づいて、ゲート回路2
8,52の開閉を制御する比較器である。
【0056】54は、マルチプレクサ34とアドレスバ
ス41との接続および切断と、マルチプレクサ34とラ
ッチ回路23との接続および切断に使用されるゲート回
路である。55は、アドレスバス41とラッチ回路23
との接続および切断に使用されるゲート回路である。5
6は、各種制御を行う制御回路である。
【0057】上記構成において、動作を説明する。ま
ず、この発明の特徴とする自動読出しモードや自動蓄積
モードにおける動作を説明する前に、参考までに、通常
の読出しモードや書込みモードにおける動作を簡単に説
明する。
【0058】まず、通常の読出しモードにおける動作を
説明する。すなわち、処理装置12が主記憶装置13か
らデータを読み出すモードにおける動作を説明する。
【0059】この読出しモードにおいては、処理装置1
2から主記憶装置13上の読出し位置を示すアドレスが
アドレスバス41に出力される。このアドレスは、ゲー
ト回路55を介して、ラッチ回路23にラッチされる。
ラッチ回路23にラッチされたアドレスのうち、セット
インデックスSはアドレスデコーダ24,25に提供さ
れ、タグTは、タグ比較器26,27に供給される。
【0060】アドレスデコーダ25に供給されたセット
インデックスSは、データアレイ21のセットアドレス
にデコードされる。これにより、データアレイ21のい
ずれか1つのセットSnが選択される。その結果、この
セットSnに格納されているグループG1のデータとグ
ループG2のデータが読み出される。グループG1から
読み出されたデータは、ゲート回路28に供給され、グ
ループG2から読み出されたデータは、ゲート回路29
に供給される。
【0061】一方、アドレスデコーダ24に供給された
セットインデックスSは、タグアレイ22のセットアド
レスにデコードされる。これにより、タグアレイ21の
いずれか1つのセットSnが選択される。その結果、こ
のセットに格納されているグループG1のタグTとグル
ープG2のタグTが読み出される。グループG1から読
み出されたタグTは、タグ比較器26に供給され、グル
ープG2から読み出されたタグ部Tは、タグ比較器27
に供給される。
【0062】タグ比較器26に供給されたグループG1
のタグTは、ラッチ回路23から供給されるタグTと比
較される。また、制御回路56に、グループG1のセッ
トSnに対応するVビットが供給される。上記比較の結
果、両者が一致し、かつ、制御回路56に供給されたV
ビットが1の場合は、ヒットとなり、ゲート回路28の
ゲートが開かれる。これにより、データアレイ21のグ
ループG1のセットSnから読み出されたデータは、ゲ
ート回路28を介してデータバス42に出力され、処理
装置12に読み込まれる。
【0063】同様に、タグ比較器27に供給されたグル
ープG2のタグTは、ラッチ回路23から供給されるタ
グTと比較される。また、制御回路56に、グループG
2のセットSnに対応するVビットが供給される。上記
比較の結果、両者が一致し、かつ、制御回路56に供給
されたVビットが1の場合は、今度は、データアレイ2
1のグループG2のセットSnから読み出されたデータ
が、処理装置12に読み込まれる。
【0064】これに対し、グループG1,G2から読み
出されたタグTと、ラッチ回路23にラッチされている
タグTとが一致しなかった場合は、図示しないリプレー
ス回路によってリプレースが実行されるとともに、この
リプレースによって主記憶装置13から読み出されたデ
ータが処理装置12に供給される。
【0065】なお、この場合、リプレースは、凍結ブロ
ック以外の領域で実行される。例えば、いま、グループ
G1が凍結ブロックとして選択されている場合は、非凍
結ブロックであるグループG2でリプレースが実行され
る。
【0066】以上が、通常の読出しモードにおける動作
である。次に、通常の書込みモードにおける動作を説明
する。すなわち、処理装置12が主記憶装置13にデー
タを書き込む動作を説明する。
【0067】この動作は、非凍結ブロックに対してデー
タを書き込む場合と、凍結ブロックに対して、データを
書き込む場合に分けられる。前者の場合は、上述したラ
イトスルー方式に基づいて、書込みがなされる。これに
対し、後者の場合は、上述した書込み方式2に基づい
て、書込みが実行される。
【0068】以下、これを説明する。なお、以下の説明
では、グループG1が凍結ブロックとして指定されてい
る場合を代表として説明する。
【0069】この場合、処理装置12からアドレスバス
41上に、主記憶装置13上の書込み位置を示すアドレ
スが出力される。また、データバス42上には、処理装
置12から、主記憶装置13に書き込むべきデータが出
力される。
【0070】アドレスバス41上に出力されたアドレス
は、ゲート回路55を介してラッチ回路23にラッチさ
れる。ラッチ回路23にラッチされたアドレスのうち、
セットインデックスSは、読出しモード時と同様に、ア
ドレスデコーダ24,25によりデコードされる。これ
により、データアレイ21およびタグアレイ22上のい
ずれか1つのセットSnが選択される。
【0071】また、タグTも、読出しモード時と同様
に、比較器26,27により、タグアレイ22から読み
出されたタグTと比較される。この比較の結果、非凍結
ブロックであるグループG1でヒットが発生すると、ゲ
ート回路29のゲートが開かれる。これにより、データ
バス42上のデータが、デコーダ25により選択された
グループG2のセットSnに書き込まれる。これととも
に、この場合は、データバス42上のデータが、図示し
ない回路により、主記憶装置13にも書き込まれる。
【0072】これに対し、凍結ブロックであるグループ
G1でヒットが発生すると、ゲート回路28のゲートが
開かれる。これにより、この場合は、データバス42上
のデータが、デコーダ25により選択されたグループG
1のセットSnに書き込まれる。
【0073】但し、この場合は、主記憶装置13に対す
る書込みはなされない。したがって、この場合は、グル
ープG1と主記憶装置13との間で、データとの整合が
とれないことになる。しかし、これは、後述する自動蓄
積モードによる動作により解消される。
【0074】なお、グループG1,G2のいずれでもヒ
ットが生じなかった場合は、図示しない回路によって、
主記憶装置13にのみデータが書き込まれる。
【0075】以上が、通常の書込みモードにおける動作
である。次に、この発明の特徴とする自動読出しモード
における動作(請求項3に係る発明の動作)と、自動蓄
積モード(請求項1に係る発明の動作)における動作を
説明する。なお、以下の説明では、簡単のために、グル
ープG1が凍結ブロックとして指定された場合のみ、こ
れらのモードにおける動作を実行可能なものとする。
【0076】まず、自動読出しモードにおける動作を説
明する。すなわち、主記憶装置13からグループG1
(凍結ブロック)に、自動的にデータを転送するモード
における動作を説明する。このモードにおけるデータ転
送は、次の3つの条件が成立した場合に実行される。
【0077】 主記憶装置13からデータ転送要求が
発生したこと 処理装置12が主記憶装置13やキャッシュメモリ
11をアクセスしていないこと キャッシュメモリ11内のデータが無効であること ここで、条件は、転送開始指示レジスタ33に、転送
開始指示データがセットされるたか否かによって判定さ
れる。条件は、ディテクタ36によって、アドレスバ
ス41の状態を監視することにより判定される。条件
は、制御回路56によって、Vビットの値を判定するこ
とにより判定される。
【0078】また、このモードにおいて、主記憶装置1
3からデータを読み出すための読出しアドレス(転送元
アドレス)は、マルチプレクサ34によって、転送開始
アドレス格納レジスタ31に格納されている転送開始ア
ドレスとカウンタ37のカウント値とを結合することに
より生成される。
【0079】以下、この自動読出しモードにおける動作
を詳細に説明する。自動読出しモードの開始に当たって
は、まず、処理装置12によって、次の3つの初期設定
がなされる。
【0080】1つ目は、主記憶装置13上の転送ブロッ
クの先頭アドレスを、転送開始アドレス格納レジスタ3
1にセットすること そして、自動読出しモードにおける動作は、上述した3
つの初期設定のうち、3つ目の初期設定が終了した時点
で、開始される。したがって、上述した3つの初期設定
のうち、この3つ目の初期設定が一番最後に行われる。
【0081】この3つ目の初期設定が行われると、ディ
テクタ36によって、処理装置12がキャッシュメモリ
11や主記憶装置13をアクセス中か否かが判定され
る。この判定は、アドレスバス41上にアドレスが出力
されているか否かを判定することによりなされる。
【0082】処理装置12がキャッシュメモリ11や主
記憶装置13をアクセスしている場合、ディテクタ36
によって、ゲート回路54のゲートが閉じられる。これ
により、この場合は、マルチプレクサ34で生成された
アドレスがラッチ回路23やゲート回路55に供給され
ない。
【0083】これに対し、処理装置12がキャッシュメ
モリ11や主記憶装置13をアクセスしていない場合
は、ディテクタ36によって、ゲート回路54のゲート
が開かれる。これにより、この場合は、マルチプレクサ
34によって生成されたアドレスがゲート回路54を介
してラッチ回路23に供給される。
【0084】ラッチ回路23に供給されたアドレスは、
このラッチ回路23にラッチされる。ラッチ回路23に
ラッチされたアドレスのうち、セットインデックスS
は、アドレスデコーダ24,25に供給されによりデコ
ードされる。これにより、タグアレイ22あるいはデー
タアレイ21のN個のセットS1〜SNのうち、いずれ
か1つのセットSn(n=1,2,…,N)が選択され
る。
【0085】タグアレイ22のセットSnが選択される
と、このタグアレイ22のグループG1のセットSnに
格納されているVビットが制御回路56に供給される。
制御回路56は、このVビットを受けとると、このVビ
ットの値に応じた制御を行う。
【0086】すなわち、Vビットが0の場合は、主記憶
装置13からデータを読み出して、データアレイ21に
書き込むための制御を行う。これは、Vビットが0の場
合は、対応するデータが無効であるため、これを新しい
データで置き換えても問題がないからである。
【0087】これに対し、Vビットが1の場合は、処理
装置12に、次のブロックの転送を要求する制御を行
う。これは、Vビットが1の場合は、対応するデータが
有効であるため、新しいデータで書き換えることができ
ないからである。
【0088】なお、この自動読出しモードを実行する場
合は、通常は、実行に先立って、データアレイ21のグ
ループG1のセットSnに格納されているデータ、すな
わち、転送先のデータは、予め、無効とされる。この無
効とする構成については、この発明の趣旨とは関係ない
ので、ここでは、説明を省略する。
【0089】Vビットが0である場合に、主記憶装置1
3からデータアレイ21のグループG1のセットSnに
データを転送する動作は、次のようにして行われる。こ
の場合、まず、制御回路56によって、ラッチ回路23
にラッチされているタグがタグアレイ22のグループG
1のセットSnに書き込まれる。
【0090】次に、制御回路56によって、ゲート回路
55の2つのゲートうち、ラッチ回路23からアドレス
バス41に向うゲートが開かれる。これにより、ラッチ
回路23にラッチされているアドレスがアドレスバス4
1に出力される。その結果、主記憶装置13からデータ
バス42上に、このアドレスに格納されているデータが
読み出される。
【0091】次に、制御回路56によって、ゲート回路
28の2つのゲートのうち、データバス42からデータ
アレイ21に向かうゲートが開かれる。これにより、デ
ータバス42上に出力されたデータがデータアレイ21
のグループG1のセットSnに書き込まれる。
【0092】このあと、制御回路56により、カウンタ
37のカウント値がインクリメントされる。これによ
り、主記憶装置13の読出しアドレスもインクリメント
される。その結果、次のアドレスに格納されているデー
タが、主記憶装置13からデータアレイ21のグループ
G1のセットSnに転送される。
【0093】以下、同様に、データが1つ転送されるた
びに、カウンタ37のカウント値がインクリメントされ
る。その結果、転送ブロック内のデータが順次1つづつ
主記憶装置13からデータアレイ21のグループG1の
セットSnに転送される。
【0094】これと並行して、カウンタ37のカウント
値は、比較器35に供給され、転送語数格納レジスタ3
2に格納されている転送語数と比較される。比較器35
は、カウンタ37のカウント値が転送語数より小さい場
合は、ゲート回路54のゲートを開き、一致すると、こ
のゲートを閉じる。これにより、1ブロック分のデータ
の転送が終了すると、ゲート回路54のゲートが閉じら
れる。その結果、アドレスバス41に対するアドレスの
出力が停止され、データ転送が終了する。
【0095】なお、このデータ転送は、上記の如く、処
理装置12が主記憶装置13やキャッシュメモリ11を
アクセスしていない場合だけ実行される。したがって、
データ転送の途中で、このアクセスが発生した場合は、
これが終了するまで、データ転送は一時中断させられ
る。これは、ディテクタ36によって、ゲート回路5
4,55のゲートを閉じるとともに、制御回路56によ
って所定の中断処理を実行することによりなされる。
【0096】以上が自動読出しモードにおける動作であ
る。次に、自動蓄積モードにおける動作を説明する。す
なわち、グループG1(凍結ブロック)から主記憶装置
13に、自動的にデータを転送するモードにおける動作
を説明する。このモードにおけるデータ転送は、次の4
つの条件が成立したい場合に実行される。
【0097】 主記憶装置13からデータ転送要求が
発生したこと 処理装置12が主記憶装置13やキャッシュメモリ
11をアクセスしていないこと キャッシュメモリ11内のデータが有効であること キャッシュメモリ11内のデータと主記憶装置13
内のデータの整合がとれていないこと ここで、条件は、転送開始指示レジスタ33に、転送
開始指示データ0がセットされるたか否かによって判定
される。条件は、ディテクタ36によって、アドレス
バス41の状態を監視することにより判定される。
【0098】条件,は、VビットとDビットの値を
判定することにより判定される。この場合、図3に示す
ように、自動蓄積モードにおけるデータ転送は、Vビッ
トが1(条件)で、かつ、Dビットが1(条件)の
場合だけ実行され(○)、そのほかの場合は、実行され
ない(×)。
【0099】また、この自動蓄積モードにおいて、主記
憶装置13にデータを書き込むための書込みアドレス
(転送先アドレス)は、マルチプレクサ34によって、
ラッチ回路51の内容とカウンタ37のカウント値とを
結合することにより生成される。
【0100】以下、この自動読出しモードにおける動作
を詳細に説明する。この自動読出しモードの開始に当た
っては、処理装置12により、次の2つの初期設定がな
される。
【0101】1つ目は、転送語数を示すデータを転送語
数格納レジスタ32にセットすること 2つ目は、自動蓄積モードの開始を指示するためのデー
タ0を転送開始指示レジスタ33にセットすること そして、このモードにおける動作は、転送開始指示デー
タ0がレジスタ33にセットされることにより開始され
る。
【0102】レジスタ33に転送開始指示データ0がセ
ットされると、ディテクタ36によって、処理装置12
がキャッシュメモリ11や主記憶装置13をアクセス中
か否かが判定される。処理装置12がキャッシュメモリ
11や主記憶装置13をアクセスしている場合、ディテ
クタ36によって、ゲート回路54のゲートが閉じられ
る。
【0103】これに対し、処理装置12がキャッシュメ
モリ11や主記憶装置13をアクセスしていない場合、
ディテクタ36によって、ゲート回路54のゲートが開
かれる。これにより、この場合は、0に初期化されたカ
ウンタ37のカウント値がマルチプレクサ34とゲート
回路54を介してラッチ回路23にラッチされる。
【0104】ラッチ回路23にラッチされたアドレスの
うち、セットインデックスSは、デコーダ24,25で
デコードされる。この場合、カウンタ37が初期化され
ているため、セットインデックスSは0となっている。
これにより、この場合は、データアレイ21およびタグ
アレイ22の最初のセットS1が選択される。
【0105】タグアレイ22のセットS1が選択される
と、このタグアレイ22のグループG1のセットS1に
格納されているVビットとDビットが比較器53と制御
回路回56に供給される。
【0106】比較器53は、このVビットとDビットを
受けとると、それらの値を判定し、それらがともに1の
場合は、ゲート回路52のゲートを開き、そのほかの場
合は、このゲートを閉じる。また、この比較器53は、
VビットとDビットがともに1の場合は、ゲート回路2
8の2つのゲートのうち、データバスからデータアレイ
21に向かうゲートを開き、それ以外の場合は、このゲ
ートを閉じる。
【0107】ゲート回路52のゲートが開かれると、タ
グアレイ22のグループG1のセットS1に格納されて
いるタグTが、ゲート回路52を介してラッチ回路51
に供給される。また、ゲート回路28のゲートが開かれ
ると、データアレイ21のグループG1のセットS1に
格納されているデータブロックの最初のデータが、ゲー
ト回路28を介して、データバス42上に出力される。
【0108】ラッチ回路51に供給されたタグTは、こ
のラッチ回路51にラッチされた後、マルチプレクサ3
4に供給される。マルチプレクサ34に供給されたタグ
Tは、カウンタ37のカウント値と結合される。これに
より、主記憶装置13の書込みアドレス(転送先アドレ
ス)が生成される。この書込みアドレスは、ゲート回路
55に供給される。
【0109】制御回路56は、VビットとDビットを受
けとると、それらの値を判定し、それらがともに1の場
合は、ゲート回路55の2つのゲートのうち、ラッチ回
路23からアドレスバス41に向かうゲートを開き、そ
のほかの場合は、このゲートを閉じる。
【0110】これにより、VビットとDビットがともに
1の場合は、マルチプレクサ34により生成された書込
みアドレスが、ゲート回路55を介してアドレスバス4
1に出力される。その結果、データバス42に出力され
たデータが、上記書込みアドレスによって指定される主
記憶装置13の書込み位置に書き込まれる。
【0111】この書込みが終了すると、制御回路56に
より、カウンタ37のカウント値がインクリメントされ
る。これにより、主記憶装置13の書込みアドレスもイ
ンクリメントされる。その結果、タグアレイ21のグル
ープG1のセットS1から読み出された2番目のデータ
がインクリメントされたアドレスに書き込まれる。
【0112】以下、同様に、1つのデータの書込みが終
了するたびに、書込みアドレスが1ずつ更新され、この
更新されたアドレスに次のデータが書き込まれる。
【0113】これと並行して、カウンタ37のカウント
値は、比較器35で、転送語数格納レジスタ32に格納
されている転送語数と比較される。比較器35は、カウ
ンタ37のカウント値が転送語数より小さい場合は、ゲ
ート回路54のゲートを開き、一致すると、このゲート
を閉じる。これにより、1ブロック分のデータの転送が
終了すると、ゲート回路54のゲートが閉じられる。
【0114】このあと、ラッチ回路23にラッチされて
いるセットインデックスSは、制御回路56によりイン
クリメントされる。これにより、今度は、セットS2に
対して、上述したような処理が実行される。
【0115】なお、セットS1のVビットとDビットの
少なくともいずれか一方が0の場合は、制御回路56に
よって、セットインデックスSをインクリメントする処
理だけが行われる。
【0116】以下、同様に、すべてのセットS1〜SN
について、上述したような処理が実行される。これによ
り、データアレイ21のグループG1に格納されている
データが主記憶装置13に転送されることになる。
【0117】なお、この場合も、データ転送の途中で、
処理装置12によるアクセスが発生した場合は、これが
終了するまで、データ転送が一時中断させられる。
【0118】以上詳述したこの実施例によれば、次のよ
うな効果が得られる。 (1) まず、この実施例によれば、主記憶装置13か
ら凍結ブロックにデータを転送するための要求が発生す
ると、処理装置12が主記憶装置13やキャッシュメモ
リ11をアクセスしているか否か判定し、アクセスして
いない場合のみ、自動的にデータ転送を実行するように
したので、このデータ転送から処理装置12を解放する
ことができる。これにより、システム全体のスループッ
トを向上させることができる。
【0119】(2) また、この実施例によれば、主記
憶装置13から凍結ブロックにデータを転送する場合、
凍結ブロックのデータが有効か否かを判定し、無効な場
合だけ、転送するようにしたので、凍結ブロックに格納
されている有効なデータが破壊されてしまうことを防止
することができる。
【0120】(3) また、この実施例によれば、凍結
ブロックから主記憶装置13へデータを転送するための
要求が発生すると、処理装置12が主記憶装置13やキ
ャッシュメモリ11をアクセスしているか否か判定し、
アクセスしていない場合のみ、自動的にデータ転送を実
行するようにしたので、このデータ転送から処理装置1
2を解放することができる。これにより、システム全体
のスループットを向上させることができる。
【0121】(4) また、この実施例によれば、凍結
ブロックから主記憶装置13へデータを転送する場合、
凍結ブロックと主記憶装置13とでデータの整合がとれ
ているか否かを判定し、整合がとれていないの場合だけ
転送するようにしたので、データを効率的に転送するこ
とができる。
【0122】(5) また、この実施例によれば、凍結
ブロックから主記憶装置13へデータを転送する場合、
転送データが有効か否かを判定し、有効な場合だけ転送
するようにしたので、データを効率的に転送することが
できる。
【0123】以上、この発明の一実施例を詳細に説明し
たが、この発明は、上述したような実施例に限定される
ものではない。
【0124】(1) 例えば、先の実施例では、主記憶
装置13から凍結ブロックに自動的にデータを転送する
場合、凍結ブロック内のデータが有効か否かを判定し、
無効な場合だけ転送する場合を説明した。しかし、この
転送に先立って、凍結ブロック内のデータをすべて無効
とするような構成の場合は、上記判定を行わないように
してもよい。
【0125】(2) また、先の実施例では、凍結ブロ
ックから主記憶装置13にデータを転送する場合、凍結
ブロック内のデータが有効か否かを判定し、有効な場合
だけ転送する場合を説明した。しかし、この発明は、デ
ータ転送時間が問題とならないような場合は、上記のよ
うな判定を行わないで、すべてのデータを転送するよう
にしてもよい。
【0126】(3) また、先の実施例では、凍結ブロ
ックから主記憶装置13にデータを転送する場合、デー
タの整合がとれているか否かを判定し、とれていない場
合だけ転送する場合を説明した。しかし、この発明は、
データ転送時間が問題とならないような場合は、上記の
ような判定を行わないで、すべてのデータを転送するよ
うにしてもよい。
【0127】(4) また、先の実施例では、グループ
G1が凍結ブロックとして選択された場合のみ、自動転
送を行う場合を説明した。しかし、この発明では、例え
ば、自動転送を行うウェイを格納する制御レジスタを設
けることにより、転送対象を選択することができるよう
にしてもよい。
【0128】(5) また、先の実施例では、この発明
を、セットアソシアティブ方式のキャッシュメモリの制
御装置に適用する場合を説明した。しかし、この発明
は、これ以外の方式のキャッシュメモリの制御装置にも
適用することができる。
【0129】(6) このほかにも、この発明は、その
要旨を逸脱しない範囲で種々様々変形実施可能なことは
勿論である。
【0130】
【発明の効果】
(1) 以上詳述したように請求項1に係る発明によれ
ば、主記憶装置から凍結ブロックにデータを転送するた
めの要求に基づいて、処理装置が主記憶装置やキャッシ
ュメモリをアクセスしているか否か判定し、アクセスし
ていないと、自動的にデータ転送を実行するようにした
ので、このデータ転送から処理装置12を解放すること
ができる。これにより、システム全体のスループットを
向上させることができる。
【0131】(2)また、請求項3に係る発明によれ
ば、凍結ブロックから主記憶装置にデータを転送するた
めの要求に基づいて、処理装置が主記憶装置やキャッシ
ュメモリ11をアクセスしているか否か判定し、アクセ
スしていないと、自動的にデータ転送を実行するように
したので、このデータ転送から処理装置12を解放する
ことができる。これにより、システム全体のスループッ
トを向上させることができる。
【図面の簡単な説明】
【図1】この発明の一実施例の構成を示すブロック図で
ある。
【図2】キャッシュメモリの動作原理を説明するための
図である。
【図3】一実施例の自動蓄積モードにおける動作を説明
するための図である。
【符号の説明】
11…キャッシュメモリ 12…処理装置 21…データアレイ 22…タグアレイ 23,51…ラッチ回路 24,25…デコーダ 26,27…比較器 28,29,52,54,55…ゲート回路 31…転送開始アドレス格納レジスタ 32…転送語数格納レジスタ 33…転送開始指示レジスタ 34…マルチプレクサ 35,53…比較器 36…ディテクタ 37…カウンタ 41…アドレスバス 42…データバス 56…制御回路

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置と処理装置との間に設けら
    れ、両者の動作速度の差を調整するキャッシュメモリを
    制御するキャッシュメモリ制御装置において、 前記キャッシュメモリの一部または全部のリプレースを
    禁止するリプレース禁止手段と、 このリプレース禁止手段によってリプレースが禁止され
    た領域に対して、前記処理装置からデータの書込み要求
    があると、このデータを前記リプレース禁止領域にのみ
    書き込むデータ書込み手段と、 前記リプレース禁止領域から前記主記憶装置にデータを
    転送するための転送要求が発生すると、前記処理装置が
    前記キャッシュメモリや前記主記憶装置をアクセスして
    いるか否かを判定するアクセス判定手段と、 このアクセス判定手段により、アクセスしていないと判
    定された場合のみ、前記リプレース禁止領域から前記主
    記憶装置にデータを転送するデータ転送手段とを具備し
    たキャッシュメモリ制御装置。
  2. 【請求項2】 前記データ転送手段は、 前記リプレース禁止領域に格納されているデータが有効
    か否かを判定する有効性判定手段と、 前記リプレース禁止領域に格納されているデータと前記
    主記憶装置に格納されているデータとの間に、整合がと
    れているか否かを判定する整合性判定手段と、 前記有効性判定手段により、有効であると判定され、前
    記整合性判定手段により、整合がとれていないと判定さ
    れた場合のみ、データ転送を実行するデータ転送実行手
    段とを具備したことを特徴とする請求項1記載のキャッ
    シュメモリ制御装置。
  3. 【請求項3】 主記憶装置と処理装置との間に設けら
    れ、両者の動作速度の差を調整するキャッシュメモリを
    制御するキャッシュメモリ制御装置において、 前記キャッシュメモリの一部または全部のリプレースを
    禁止するリプレース禁止手段と、 前記主記憶装置から前記リプレース禁止手段によってリ
    プレースが禁止された領域にデータを転送するための転
    送要求が発生すると、前記処理装置が前記キャッシュメ
    モリや前記主記憶装置をアクセスしているか否かを判定
    するアクセス判定手段と、 このアクセス判定手段により、アクセスしていないと判
    定された場合のみ、前記主記憶装置から前記リプレース
    禁止領域にデータを転送するデータ転送手段とを具備し
    たキャッシュメモリ制御装置。
  4. 【請求項4】 前記データ転送手段は、 前記リプレース禁止領域に格納されているデータが有効
    か否かを判定する有効性判定手段と、 この有効性判定手段により無効と判定された場合のみ、
    データ転送を実行するデータ転送実行手段とを具備した
    ことを特徴とする請求項3記載のキャッシュメモリ制御
    装置。
JP6192490A 1994-08-16 1994-08-16 キャッシュメモリ制御装置 Pending JPH0855061A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6192490A JPH0855061A (ja) 1994-08-16 1994-08-16 キャッシュメモリ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6192490A JPH0855061A (ja) 1994-08-16 1994-08-16 キャッシュメモリ制御装置

Publications (1)

Publication Number Publication Date
JPH0855061A true JPH0855061A (ja) 1996-02-27

Family

ID=16292177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6192490A Pending JPH0855061A (ja) 1994-08-16 1994-08-16 キャッシュメモリ制御装置

Country Status (1)

Country Link
JP (1) JPH0855061A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647463B2 (en) 2000-09-08 2003-11-11 Nec Corporation Cache update method and cache update control system employing non-blocking type cache

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647463B2 (en) 2000-09-08 2003-11-11 Nec Corporation Cache update method and cache update control system employing non-blocking type cache

Similar Documents

Publication Publication Date Title
US5095424A (en) Computer system architecture implementing split instruction and operand cache line-pair-state management
CA1223973A (en) Memory access method and apparatus in multiple processor systems
US5706466A (en) Von Neumann system with harvard processor and instruction buffer
JP2906315B2 (ja) キャッシュメモリ中でインストラクションを保管する方法及び回路
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
US7287125B2 (en) Disk array device, method for controlling the disk array device and storage system
EP0533427B1 (en) Computer memory control system
EP0835490B1 (en) Write cache for write performance improvement
JPWO2005066796A1 (ja) キャッシュメモリ及びその制御方法
GB2271653A (en) Multi-level cache system
JPH0855061A (ja) キャッシュメモリ制御装置
US6934810B1 (en) Delayed leaky write system and method for a cache memory
US6751707B2 (en) Methods and apparatus for controlling a cache memory
CN115686349A (zh) 维持数据一致性的存储系统及其操作方法
EP0271187A2 (en) Split instruction and operand cache management
JPH08328959A (ja) ディスクキャッシュ制御装置
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH0689228A (ja) キャッシュメモリ制御装置
JPH06282487A (ja) キャッシュ装置
JPH08137753A (ja) ディスクキャッシュ装置
JP3190661B2 (ja) 情報処理システム
JPH03113655A (ja) キャッシュメモリとプロセッサエレメント
JPH07219838A (ja) データ先読み制御装置
JPS60183652A (ja) キヤツシユメモリ制御方法
EP0400851A2 (en) Efficient cache utilizing a store buffer