(57)【特許請求の範囲】
【請求項１】
記憶媒体の交換が可能な外部記憶装置と、
前記記憶媒体が交換されたことを検出する媒体交換検出手段と、
前記外部記憶装置から読出されたデータを格納するキャッシュメモリと、
前記キャッシュメモリに格納されているデータについてのキャッシュ情報を記憶するキャッシュ管理テーブルと、
キャッシュ機能の有効／無効を示すフラグを格納するフラグ位置をそれぞれの外部記憶装置に対応して備えるキャッシュ許可テーブルと、
前記検出手段によって外部記憶装置の記憶媒体が交換されたことが検出されたとき、記憶媒体が交換された外部記憶装置に対応する前記キャッシュ許可テーブルのフラグ位置にキャッシュ機能を停止する無効フラグをセットする手段と、
外部記憶装置へのアクセス命令が到来したときには前記キャッシュ許可テーブルを参照して無効フラグがセットされている外部記憶装置についてのキャッシュ機能を停止させる手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記キャッシュメモリが格納するデータがデータブロックであって、前記キャッシュメモリに格納されているデータブロックの数を記録するブロック数領域を、それぞれの外部記憶装置に対応して備えるブロック数テーブルと、
格納されたデータによってキャッシュメモリが満抔になったときに先に格納されたデータから逐次追出し処理を行ってキャッシュメモリに新しいデータブロックを格納し得るようにするための追出し処理手段と、
外部記憶装置から読出されたデータブロックがキャッシュメモリに格納されたときに当該外部記憶装置に対応するブロック数領域に“１”を加算する手段と、
キャッシュメモリに格納されていたデータブロックが前記追出し処理手段により追出されたときに当該追出されたデータブロックが読出された外部記憶装置に対応するブロック数領域から“１”を減算する手段と、
前記ブロック数領域のデータブロックの数が“０”のときには、当該ブロック数領域に対応する外部記憶装置についてのキャッシュ許可テーブルの無効フラグをリセットしてキャッシュ機能の停止を解除する手段と
を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
記憶媒体が交換可能であり、前記記憶媒体が交換されたことが媒体交換検出手段により検出される外部記憶装置から読出されたデータを格納するキャッシュメモリを制御するための、キャッシュ制御装置において、
前記外部記憶装置から読出されたデータを格納するキャッシュメモリと、
前記キャッシュメモリに格納されているデータについてのキャッシュ情報を記憶するキャッシュ管理テーブルと、
キャッシュ機能の有効／無効を示すフラグを格納するフラグ位置をそれぞれの外部記憶装置に対応して備えるキャッシュ許可テーブルと、
前記検出手段によって外部記憶装置の記憶媒体が交換されたことが検出されたとき、記憶媒体が交換された外部記憶装置に対応する前記キャッシュ許可テーブルのフラグ位置にキャッシュ機能を停止する無効フラグをセットする手段と、
外部記憶装置へのアクセス命令が到来したときには前記キャッシュ許可テーブルを参照して無効フラグがセットされている外部記憶装置についてのキャッシュ機能を停止させる手段と
を有することを特徴とするキャッシュ制御装置。
【請求項４】
前記キャッシュメモリが格納するデータがデータブロックであって、前記キャッシュメモリに格納されているデータブロックの数を記録するブロック数領域を、それぞれの外部記憶装置に対応して備えるブロック数テーブルと、
格納されたデータによってキャッシュメモリが満抔になったときに先に格納されたデータから逐次追出し処理を行ってキャッシュメモリに新しいデータブロックを格納し得るようにするための追出し処理手段と、
外部記憶装置から読出されたデータブロックがキャッシュメモリに格納されたときに当該外部記憶装置に対応するブロック数領域に“１”を加算する手段と、
キャッシュメモリに格納されていたデータブロックが前記追出し処理手段により追出されたときに当該追出されたデータブロックが読出された外部記憶装置に対応するブロック数領域から“１”を減算する手段と、
前記ブロック数領域のデータブロックの数が“０”のときには、当該ブロック数領域に対応する外部記憶装置についてのキャッシュ許可テーブルの無効フラグをリセットしてキャッシュ機能の停止を解除する手段と
を有することを特徴とする請求項３記載のキャッシュ制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
記憶媒体の交換を可能にした磁気ディスク装置，光磁気ディスク装置あるいはフロッピイディスク装置などの外部記憶装置についてキャッシュを行う情報処理装置、及び、記憶媒体が交換可能であり、前記記憶媒体が交換されたことが記憶交換検出手段により検出される外部記憶装置から読出されたデータを格納するキャッシュメモリを制御するための、キャッシュ制御装置に関する。
【０００２】
【従来の技術】
図７（ａ）  は従来の外部記憶装置に対するキャッシュの原理を説明するためのブロック図であって、ホスト１は、ＣＰＵ２，主メモリ３，キャッシュメモリ４，キャッシュ制御装置５およびキャッシュ管理テーブル６を備えている。
【０００３】
同図（ｂ）  はキャッシュ管理テーブル６の内容の例を概念的に示したものであって、このキャッシュ管理テーブル６には、キャッシュメモリ４に格納されているデータブロックの外部記憶装置における格納位置、すなわち、当該外部記憶装置に割当てられている装置番号、当該外部記憶装置におけるシリンダ番号，ヘッド番号およびセクタ番号とからなる論理アドレスとによって示される格納位置と、これに対応してこのデータブロックが格納されているキャッシュメモリ４の領域番号が格納されている。
【０００４】
ＣＰＵ２が外部記憶装置９に格納されているデータやプログラムなど（以下単に、データ、という）を読出す命令をキャッシュ制御装置５に送出したとき、このキャッシュ制御装置５は、読出すべきデータを格納している外部記憶装置の例えばシリンダ番号，セクタ番号，ヘッド番号などの論理アドレスに基づいてキャッシュ管理テーブル６を参照し、ＣＰＵ２から要求されたデータを含むデータブロックがキャッシュメモリ４に格納されているか否かを検索する。
【０００５】
この検索の結果、所要のデータがキャッシュメモリ４に格納されていることが識別されれば（ヒットすれば）、キャッシュ制御装置５はこのデータをキャッシュメモリ４のキャッシュ管理テーブル６から読出された論理アドレスによって読出してＣＰＵ２に返送するので、外部記憶装置の読取ヘッドのポジショニングや回転待ちなどによる読出しの遅れを生じることなく、短い時間でＣＰＵ２に外部記憶装置９に格納しているデータが供給されるので、全体としての処理時間が著しく短縮される。
【０００６】
もし、キャッシュ制御装置５による上記キャッシュ管理テーブル６の検索の結果、所要のデータを含むデータブロックがキャッシュメモリに格納されていない（ミスヒット）場合には、外部記憶装置９からこの所要のデータを含むデータブロックを読出してＣＰＵ２に供給することになる。
【０００７】
なお、このときキャッシュメモリ４にもこの読出したデータを格納し、これに伴ってキャッシュ管理テーブル６には、図７(b) に示したように、このデータブロックを読出した外部記憶装置の上記したような論理アドレスをこのデータブロックを格納したキャッシュメモリの領域番号に対応させて登録し、次回の読出し要求に際してキャッシュ機能を利用し得るようにすることができる。
【０００８】
このとき、キャッシュメモリに外部記憶装置から読出されたデータを格納できるだけの空いている記憶領域がない場合には、キャッシュメモリ中に最初に書込まれたキャッシュブロックのデータについて追出し処理を実行して新たなデータブロックを書込むスペースを設け、このスペースに新しく読出されたキャッシュすべきデータブロックを書込むようにする。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記のような従来のキャッシュを行う情報処理装置においては、外部記憶装置の装置番号とこの外部記憶装置の記憶媒体上の論理アドレスとをキャッシュメモリに格納されているデータブロックを指定する情報として用いているため、これら外部記憶装置の記憶媒体が交換された場合には、交換後の記憶媒体についての読出命令によってキャッシュ管理テーブルの検索を行った結果がヒットしたとしても、その論理アドレスによって得られたキャッシュメモリの領域番号に相当するメモリ領域に格納されているデータは交換前の記憶媒体から読出されたデータであるために、上記交換後の記憶媒体に対する読出命令によって指示されたデータとは異なるデータがＣＰＵに転送されることになる。
【００１０】
本発明は、記憶媒体が交換された場合にも上記のような誤ったキャッシュデータがＣＰＵに転送されることがないようにするとともに、キャッシュメモリに格納されているデータブロック、および、キャッシュ管理テーブルの内容が交換後の記憶媒体についてのものに自動的に逐次更新されるようにした情報処理装置及びキャッシュ制御装置を得ることを目的とする。
【００１１】
【課題を解決するための手段】
記憶媒体の交換が可能な外部記憶装置と、前記記憶媒体が交換されたことを検出する媒体交換検出手段と、前記外部記憶装置から読出されたデータを格納するキャッシュメモリと、前記キャッシュメモリに格納されているデータについてのキャッシュ情報を記憶するキャッシュ管理テーブルと、キャッシュ機能の有効／無効を示すフラグを格納するフラグ位置をそれぞれの外部記憶装置に対応して備えるキャッシュ許可テーブルと、前記検出手段によって外部記憶装置の記憶媒体が交換されたことが検出されたとき、記憶媒体が交換された外部記憶装置に対応する前記キャッシュ許可テーブルのフラグ位置にキャッシュ機能を停止する無効フラグをセットする手段と、外部記憶装置へのアクセス命令が到来したときには前記キャッシュ許可テーブルを参照して無効フラグがセットされている外部記憶装置についてのキャッシュ機能を停止させる手段とを有する。
前記キャッシュメモリが格納するデータがデータブロックであって、前記キャッシュメモリに格納されているデータブロックの数を記録するブロック数領域を、それぞれの外部記憶装置に対応して備えるブロック数テーブルと、格納されたデータによってキャッシュメモリが満抔になったときに先に格納されたデータから逐次追出し処理を行ってキャッシュメモリに新しいデータブロックを格納し得るようにするための追出し処理手段と、外部記憶装置から読出されたデータブロックがキャッシュメモリに格納されたときに当該外部記憶装置に対応するブロック数領域に“１”を加算する手段と、キャッシュメモリに格納されていたデータブロックが前記追出し処理手段により追出されたときに当該追出されたデータブロックが読出された外部記憶装置に対応するブロック数領域から“１”を減算する手段と、前記ブロック数領域のデータブロックの数が“０”のときには、当該ブロック数領域に対応する外部記憶装置についてのキャッシュ許可テーブルの無効フラグをリセットしてキャッシュ機能の停止を解除する手段とを有する。
【００１３】
また、記憶媒体が交換可能であり、前記記憶媒体が交換されたことが媒体交換検出手段により検出される外部記憶装置から読出されたデータを格納するキャッシュメモリを制御するための、キャッシュ制御装置において、前記外部記憶装置から読出されたデータを格納するキャッシュメモリと、前記キャッシュメモリに格納されているデータについてのキャッシュ情報を記憶するキャッシュ管理テーブルと、キャッシュ機能の有効／無効を示すフラグを格納するフラグ位置をそれぞれの外部記憶装置に対応して備えるキャッシュ許可テーブルと、前記検出手段によって外部記憶装置の記憶媒体が交換されたことが検出されたとき、記憶媒体が交換された外部記憶装置に対応する前記キャッシュ許可テーブルのフラグ位置にキャッシュ機能を停止する無効フラグをセットする手段と、外部記憶装置へのアクセス命令が到来したときには前記キャッシュ許可テーブルを参照して無効フラグがセットされている外部記憶装置についてのキャッシュ機能を停止させる手段とを有する。
前記キャッシュメモリが格納するデータがデータブロックであって、前記キャッシュメモリに格納されているデータブロックの数を記録するブロック数領域を、それぞれの外部記憶装置に対応して備えるブロック数テーブルと、格納されたデータによってキャッシュメモリが満抔になったときに先に格納されたデータから逐次追出し処理を行ってキャッシュメモリに新しいデータブロックを格納し得るようにするための追出し処理手段と、外部記憶装置から読出されたデータブロックがキャッシュメモリに格納されたときに当該外部記憶装置に対応するブロック数領域に“１”を加算する手段と、キャッシュメモリに格納されていたデータブロックが前記追出し処理手段により追出されたときに当該追出されたデータブロックが読出された外部記憶装置に対応するブロック数領域から“１”を減算する手段と、前記ブロック数領域のデータブロックの数が“０”のときには、当該ブロック数領域に対応する外部記憶装置についてのキャッシュ許可テーブルの無効フラグをリセットしてキャッシュ機能の停止を解除する手段とを有する。
【００１６】
【作用】
本発明の作用を図１の本発明の原理を示したブロック図を引用しながら説明するが、そのホスト１の構成は、図５に示した従来例の構成にキャッシュ許可テーブル７およびブロック数テーブル８が追加されたものであり、その他の構成要素には図５と同一の符号を付して説明を省略する。
【００１７】
なお、キャッシュ管理テーブル６の記憶内容は必ずしも上記従来例と同一ではなく、また、キャッシュ許可テーブル７およびブロック数テーブル８の記憶内容も請求項記載の各発明に応じて相違している。
【００１８】
また、本発明においては、記憶媒体が交換されたことをホストで検出することが必要であるが、この記憶媒体が交換されたことを検出する方法としては公知の方法を適宜適用することができる。
【００１９】
その一つの例としては、記憶媒体の交換のために少なくとも一時的に外部記憶装置の電源が遮断されることから、ホスト側からのポーリングによって外部記憶装置の電源がオフになるのを常時監視しておき、この外部記憶装置の電源オフによって記憶媒体の交換を検出することができる。
【００２０】
さらに別の記憶媒体交換検出方法としては、外部記憶装置自体に記憶媒体の装着の有無の変化などに基づいて記憶媒体の交換を検出する手段を設けておき、記憶媒体の交換が検出されたときにホストに割込みをかけて通知したり、または、記憶媒体交換後の最初のホストからのアクセスの際にホストに通知するなどの方法をとることができる。
【００２１】
しかしながら、図１の原理図では、上記した記憶媒体の交換をホスト側で検出する場合を含めて、その検出方法とは無関係に、記憶媒体交換情報が外部記憶装置９１，・・・９ｍからホストに伝送されるものとして示してある。
【００２２】
請求項１に記載した発明は、外部記憶装置９２  の記憶媒体がＤ１  からＤ２に交換されたことをこの外部記憶装置９２  からの記憶媒体交換情報によってキャッシュ制御装置５が検出すると、当該外部記憶装置９２  の記憶媒体Ｄ１  からキャッシュメモリ４に格納されていたデータブロックについてキャッシュ管理テーブル６に記憶されているキャッシュ情報を使用するのを禁止することによってキャッシュ機能を停止させ、上記のような誤りを生じないようにしたものである。
【００２３】
そこで、請求項１の発明では、キャッシュメモリ４に格納されている各データブロックに対応したキャッシュ管理テーブル６のキャッシュ情報にそれぞれ対応して無効フラグを設定し得るようにし、記憶媒体が交換された外部記憶装置９２  からの記憶媒体交換情報が検出されたときにはこの無効フラグをセットするように構成する。
【００２４】
そして、ＣＰＵ２から外部記憶装置９１，９２，・・・９ｍに対するアクセス命令が発行されたときには、キャッシュ制御装置５はこのキャッシュ管理テーブル６の無効フラグを参照し、アクセスすべき外部記憶装置に対応して無効フラグがセットされていればキャッシュ機能を使用しないようにした。
【００２５】
また、請求項１または３の発明では、キャッシュ管理テーブル６に加えて、それぞれの外部記憶装置９1,９2,・・・９ｍに対応したフラグ位置を有するキャッシュ許可テーブル７を設け、記憶媒体Ｄ1 がＤ2 に交換された外部記憶装置９2 に対応するフラグ位置に無効フラグをセットし、ＣＰＵ２から外部記憶装置９1,９2,・・・９ｍに対するアクセス命令が発行されたときには、キャッシュ制御装置５はこのキャッシュ許可テーブル７を参照し、アクセスすべき外部記憶装置に対応して無効フラグがセットされていればキャッシュ機能を使用しないようにした。
【００２６】
ところで、慣用されているように、キャッシュメモリ４が満抔になったときに最も長い期間アクセスされていないデータを追出す追出し処理機能をキャッシュ制御装置などに付与してある場合には、交換前の記憶媒体Ｄ１  からキャッシュメモリ４に格納されているデータは他の外部記憶装置９１，・・・９ｍからの新しいデータが格納されることによってやがて追出されてしまう。
【００２７】
このように、交換前の記憶媒体Ｄ１  からキャッシュメモリ４に格納されていたデータブロックが無くなると、新しい記憶媒体Ｄ２  に対してキャッシュ機能を回復させても、この新しい記憶媒体Ｄ２  が格納しているデータブロックとキャッシュメモリ４に格納されているデータブロックの不一致は生じなくなる。
【００２８】
そこで、本発明の請求項２または４に記載した発明では、外部記憶装置からキャッシュメモリ４にデータブロックを格納したときにはこの外部記憶装置に対応する記憶領域に記憶されている数値に“１”を加算し、また、外部記憶装置からキャッシュメモリ４に格納されていたデータブロックが追出し処理によってこのキャッシュメモリ４から追出されたときにはこの外部記憶装置に対応する記憶領域に記憶されている数値から“１”を減算することによって、キャッシュメモリ４に格納されているデータブロックの数を外部記憶装置９1,９2,・・・９ｍごとに逐次記憶するブロック数テーブル８を設ける。
【００２９】
このようにすれば、ある外部記憶装置９ａに対応してこのブロック数テーブル８に格納されているブロック数が“０”になっているときにはこの外部記憶装置９ａからキャッシュメモリ４に格納されているデータブロックが無いので、この外部記憶装置９ａが記憶媒体が交換されてキャッシュ機能が停止されている外部記憶装置９２  であったとしても上記したようにキャッシュ機能を回復させても差し支えないことになるので、本発明においては、先にこの外部記憶装置９２  について無効フラグがセットされていたとしても、この無効フラグをリセットしてキャッシュ機能を有効にするようにした。
【００３５】
【実施例】
第１実施例の回路的構成は図１のブロック図と同一であり、この実施例の動作を示した図２，図３のフローチャート、および、この実施例における上記テーブル６，７，８の記憶内容を示す図４の概念図を引用しながら説明する。
【００３６】
なお、以下の説明では、外部記憶装置９１  および９ｍの記憶媒体Ｄは交換されておらず、外部記憶装置９２  の記憶媒体がＤ１  からＤ２  に交換されているものとする。
【００３７】
図２はこの実施例において、ＣＰＵ２から読出命令が到来したときのキャッシュ制御装置５の処理を示すフローチャートであって、ステップ［１１］でキャッシュ許可テーブル７（図４（ｂ）  参照）  の上記命令で指示された外部記憶装置に対応するフラグを参照して、この外部記憶装置に対するキャッシュ機能が許可されているか否かを判断する。
【００３８】
キャッシュ機能が停止されていれば、ステップ［２１］で指定された外部記憶装置から要求されたデータを読出してステップ［２２］で主メモリ３にこのデータを転送して処理を終了するが、ステップ［１１］でキャッシュ機能が許可されていると判断するとステップ［１２］に移って、キャッシュ管理テーブル６（図４（ａ）  参照。なお、図示の便宜上、シリンダ番号，ヘッド番号およびセクタ番号をそれぞれＣ，Ｈ，Ｓとして示した。）に要求されたデータが格納されている（ヒット）か否か（ミスヒット）を判断する。
【００３９】
ヒットしていれば、ステップ［１３］において記憶媒体Ｄが交換されているか否かを検出するが、この検出方法としては、外部記憶装置９にセンスコマンドを送出してこの外部記憶装置９２  からの記憶媒体交換情報を得るようにしたり、記憶媒体の交換時に当該外部記憶装置９２  からキャッシュ制御装置５に記憶媒体交換情報を送出してこのキャッシュ制御装置５で外部記憶装置９２  の記憶媒体が交換されたことを記憶しておくようにしてもよい。なお、外部記憶装置９が記憶媒体の交換を検出する方法としては、例えばその外部記憶装置で記憶媒体を交換する際の電源のオンオフによることができる。
【００４０】
このステップ［１３］において記憶媒体が交換されていないと判断されると、ステップ［２３］においてキャッシュメモリ４から要求されているデータを読出し、前記テップ［２２］で主メモリ３に転送して処理を終了する。
【００４１】
ステップ［１２］で要求されたデータがキャッシュメモリ４に格納されておらずにミスヒットすると、ステップ［１８］で外部記憶装置９から要求されたデータを読出してステップ［１９］で主メモリ３に転送し、次のステップ［２０］で上記ステップ［１３］におけると同様な方法で記憶媒体Ｄの交換を検出する。
【００４２】
このステップ［２０］で記憶媒体が交換されていないことが識別されると、キャッシュメモリ４  への書込処理を行うためにステップ［５０］に移る。なお、この書込処理については後に説明する。また、以上に述べた処理は、外部記憶装置での記憶媒体の交換を行わない従来技術における処理と記憶媒体の交換の判断を行う点を除けばほぼ同様である。
【００４３】
しかしながら、ステップ［２０］で記憶媒体が交換されたと判断されたときは、ステップ［１６］に移ってブロック数テーブル８（図４（ｃ）  参照）を参照し、記憶媒体が交換された外部記憶装置９２  からキャッシュメモリ４に格納されているデータブロックの有無を格納されているデータブロックの数によって識別する。
【００４４】
もしこの外部記憶装置９２  から読出されたデータがキャッシュメモリ４に格納されていれば、交換前の記憶媒体Ｄ１  と交換後の記憶媒体Ｄ２  とからキャッシュされているデータが混在するのを避けるためにステップ［１７］でキャッシュ機能を停止させる。
【００４５】
ところで、キャッシュ機能が許可されていて、しかもキャッシュ管理テーブル６の検索の結果がヒットしている状態で、ステップ［１３］で記憶媒体が交換されたことが検出された場合には、ステップ［１４］でこの記憶媒体が交換された外部記憶装置９  ２  から要求されているデータを読出してステップ［１５］で主メモリ３に転送する。
【００４６】
そして、前述したステップ［１６］でブロック数テーブル８を参照して、もしこの外部記憶装置９２  から読出されたデータがキャッシュメモリ４に格納されていればステップ［１７］でキャッシュ機能を停止させ、また外部記憶装置９２  から読出されたデータがキャッシュメモリ４に格納されていなければ前述したステップ［５０］に移ってステップ［５１］ないしステップ［６３］によるキャッシュメモリ４への書込処理を行う。
【００４７】
キャッシュメモリ４に空きがある場合のこの書込処理は、先にステップ［１４］あるいは［１８］で外部記憶装置から読出されていたデータをステップ［５１］でキャッシュメモリ４に格納し、ステップ［５２］でブロック数テーブル８のこのデータを格納していた外部記憶装置に対応するブロック数に“１”を加算してこの外部記憶装置からキャッシュメモリ４に格納されているデータブロックの数を更新し、次のステップ［５３］でキャッシュ管理テーブル６を新たに格納されたデータブロックに関連するキャッシュ情報を更新する。
【００４８】
しかしながら、キャッシュメモリに空きがない場合には、先ずステップ［６０］でキャッシュメモリ４  に格納されているデータブロックの中で最も長い期間アクセスされていないデータブロックを消去あるいは上書きし得るように設定し、次のステップ［６１］でブロック数テーブル８のステップ［６０］の追出処理によって追出されたデータブロックを格納していた外部記憶装置、例えば９１  のデータブロック数から“１”を減算してこの追出処理後にこの外部記憶装置９１  からキャッシュメモリ４に格納されているデータブロックの数と一致させる。
【００４９】
この減算の結果、ブロック数テーブルのこの外部記憶装置９１  に対応するデータブロックの数が“０”になったことがステップ［６２］で検出された場合にはこの外部記憶装置９１  からキャッシュメモリ４に格納されているデータが存在しないことになる。
【００５０】
このような状態であれば、もしこの外部記憶装置９１  の記憶媒体が交換されたときに直ちにキャッシュ機能を有効にしても支障がないので、ステップ［６３］でキャッシュ許可テーブル７のこの外部記憶装置９１  に対応する無効フラグがもともとセットされていなければそのまま、もし無効フラグがセットされていた場合でもこの無効フラグをリセットしてこの外部記憶装置９１  についてのキャッシュ機能を回復させる。
【００５１】
しかしながら、ステップ［６２］でブロック数テーブル８の外部記憶装置９  １  についてのブロック数が“１”以上の場合にはこの外部記憶装置９１  からキャッシュメモリ４に格納されているデータが存在するので、もしこの外部記憶装置９１  の記憶媒体が交換されたときに、交換前の記憶媒体からキャッシュされていたデータを主メモリ３に転送してしまうことが起こるので、もし無効フラグがセットされていた場合にはキャッシュ機能が停止された状態を維持させる。
【００５２】
なお、これらのステップ［６１］ないしステップ［６３］は、この読出命令によって指示されている外部記憶装置についての処理である場合もあるが、この読出命令の対象となっている外部記憶装置とは無関係に追出されるデータブロックを格納していた外部記憶装置が処理対象となることから、このフローチャートでは点線を枠としたステップで示した。
【００５３】
図３は、この実施例においてＣＰＵ２から書込命令が到来したときの処理を示すフローチャートであって、この書込命令が到来するとステップ［３０］で主メモリ３  から転送されたデータを指示された外部記憶装置に書込む。
【００５４】
そして、ステップ［３１］でこの外部記憶装置に対するキャッシュ機能が許可されているか否かを判断し、キャッシュ機能が停止されていればそのまま終了するが、キャッシュ機能が許可されていればステップ［３２］に移って、読出命令のステップ［１３］について説明したと同様な方法で、この外部記憶装置の記憶媒体が交換されているか否かを検出する。
【００５５】
記憶媒体が交換されていなければ、キャッシュ管理テーブル６を参照して書込みを指示されたデータがヒットしているか否かを判断し、ヒットしていればステップ［４２］で以前に格納されていたデータを更新するが、ミスヒットの場合には新たにこのデータを書込むためにステップ［５０］に移る。
【００５６】
このステップ［３２］で記憶媒体が交換されたと判断したときには、ブロック数テーブル８を参照してこの外部記憶装置からキャッシュメモリ４に格納されているブロックの数を読出し、ブロック数が“０”であればこのデータを書込むためにステップ［５０］に移るが、“０”でなければステップ［３４］でこの外部記憶装置についてのキャッシュ機能を停止させて、交換前の記憶媒体からのデータと交換後の記憶媒体からのデータとがキャッシュメモリ上に混在して誤動作するのを防止する。
【００５７】
このステップ［５０］以降のキャッシュメモリ４への書込処理およびこれに伴う各テーブル６，７，８の更新処理は、図３のステップ［５０］以降について説明した処理と同一であるから、説明を省略する。
【００５８】
以上に説明した第１実施例においては、キャッシュ管理テーブルの構成を変更することなく、キャッシュ許可テーブルおよびブロック数テーブルを追加するだけで記憶媒体の交換によるキャッシュ機能の誤動作を防止しながら、この記憶媒体が交換された外部記憶装置についてのキャッシュ機能の自動的な回復を図ることができる。
【００５９】
また、この実施例からブロック数テーブル８を除くとともに、図２に示した読出時のフローチャートにおけるステップ［16］および図３に示した書込時のフローチャートにおけるステップ［33］におけるブロック数の判断を省いてこれらのステップ［16］，［33］からステップ［17］，［34］に移行するようにすれば、記憶媒体が交換された外部記憶装置については常にキャッシュ機能を停止させて、記憶媒体の交換によるキャッシュ機能の誤動作を防止することができる。
【００６０】
さらに、図５(a) に示したように、キャッシュ管理テーブル６における各キャッシュ情報ごとに無効フラグを格納する記憶位置を設けておき、キャッシュ許可の判断およびキャッシュ機能の停止あるいは許可の状態を識別・設定するときにこのキャッシュ管理テーブルの無効フラグをこの実施例のキャッシュ許可テーブルの無効フラグに代えて用いることによって、記憶媒体が交換された外部記憶装置については常にキャッシュ機能を停止させる発明として構成することができる。なお、この場合には、キャッシュ管理テーブルを検索して無効フラグを識別・設定することが必要になる。
【００６１】
そして、さらに図５(b) に示したキャッシュ許可テーブル７を用いて、上記実施例のように、当該外部記憶装置からキャッシュメモリに格納されていたデータが無いことを条件にキャッシュ管理テーブル６にセットされている無効フラグをリセットして、この外部記憶装置に対するキャッシュ機能を回復することができることは、前記の第１実施例と同様である。
【００６２】
しかしながら、上記した第１実施例においては、外部記憶装置９２  から取り出された交換前の記憶媒体Ｄ２１からキャッシュされていたデータがキャッシュメモリ４から無くなるまでこの外部記憶装置９２  についてのキャッシュ機能を有効にすることができず、したがってこの外部記憶装置９２  についてのキャッシュ機能が有効になるまでの期間においてはＣＰＵ２が要求したデータを得るまでの時間がかかるので、処理時間が長くなるという問題がある。
【００６３】
この第２実施例は、記憶媒体が交換された外部記憶装置９２  に対しても記憶媒体の交換直後からキャッシュ機能を有効にし得るように改良した方式を提供するもので、図６（ａ）  に示したように、キャッシュ管理テーブル６には外部記憶装置番号に加えてサブ番号を記憶する領域を設け、外部記憶装置９２  の記憶媒体が交換されるごとにキャッシュ制御装置５が当該外部記憶装置のサブ番号を順次変更して、装置番号とサブ番号との組を例えば９２  −ａ，９２  −ｂ，９２  −ｃ，──のように逐次変更し、この装置番号とサブ番号との組を前記した従来例あるいは第１実施例における装置番号と同等なものとして処理を行うようにする。
【００６４】
図６（ａ）  のキャッシュ管理テーブルの例では、その２行目のキャッシュ情報は記憶媒体の交換後にキャッシュしたデータについてのキャッシュ情報であってそのサブ番号はｂであり、また、同３行目のキャッシュ情報は記憶媒体の交換前にキャッシュしたデータについてのキャッシュ情報であり、したがってそのサブ番号はａになっている。
【００６５】
このようにすれば、記憶媒体の交換前の外部記憶装置と交換後の外部記憶装置とは、装置番号とサブ番号の組が互いに相違しているから見掛上互いに別個の外部記憶装置として扱われることになり、したがって、記憶媒体の交換後直ちにキャッシュ機能を有効にしても誤動作を生じることはない。
【００６６】
しかしながら、この場合には、記憶媒体が交換されるごとに新しいサブ番号を使用しなければならず、したがってこのサブ番号として常に新しい番号を用いるとすると、予想される最大の記憶媒体交換回数に相当する数だけサブ番号を用意しなければならないので、このサブ番号の桁数が大きくなるなど資源を無駄にすることになる。
【００６７】
そこで、図６（ｂ）  に示したように、この装置番号とサブ番号の組に対してそれぞれキャッシュメモリ４に格納されているデータブロックの数を記憶するブロック数記憶領域を有するブロック数テーブル８を設け、このブロック数記憶領域には、第１実施例のブロック数テーブルについて説明したと同様に、外部記憶装置からキャッシュメモリ４にデータブロックを格納したときにそのときの装置番号とサブ番号の組に対応する記憶領域に“１”を加算し、また、キャッシュメモリ４に格納されていたデータブロックが追い出し処理によってこのキャッシュメモリ４から追い出されたときに対応する外部記憶装置とサブ番号の組に対応する記憶領域から“１”を減算するようにする。
【００６８】
そして、記憶されているデータブロックの数が“０”になっている装置番号とサブ番号の組、すなわち、キャッシュメモリ４に格納されているデータブロックがない装置番号とサブ番号の組を記憶媒体が交換された後の新しい装置番号とサブ番号の組として使用すれば、用意すべきサブ番号の数、したがって、このブロック数テーブル自体の記憶領域の数も極めて少なくすることができる。
【００６９】
また、図６（ｃ）  に示したように、各外部記憶装置に対応してそれぞれ複数の記憶領域ａ，ｂ，ｃ──を有するキャッシュ許可テーブル７を設け、この装置番号とサブ番号の組ごとにキャッシュ機能の有効／無効を示すフラグをセットするようにすれば、図６（ａ）  のキャッシュ管理テーブルに代えて無効フラグ記憶領域を有しない図４（ａ）  あるいは従来例と同様なキャッシュ管理テーブルを用いて上記同様の処理を行うことができる。
【００７０】
このようにすれば、第１実施例で説明したように、記憶媒体が交換されたときに、キャッシュ管理テーブルのキャッシュ情報について記憶媒体が交換された外部記憶装置とサブ番号の組を検索し、この組についてのキャッシュ情報に無効フラグをセットする必要がないので、処理が簡単になるという効果が得られる。
【００７１】
【発明の効果】
本発明によれば、外部記憶装置の記憶媒体を交換したときにも、交換前の記憶媒体からキャッシュメモリに格納されていたデータと交換後の記憶媒体からキャッシュメモリに格納されたデータとが混在することによる誤動作を防止することができ、また、この記憶媒体の交換後直ちにこの外部記憶装置についてキャッシュ動作をさせることができるという格別の効果が得られる。
【図面の簡単な説明】
【図１】本発明の原理図である。
【図２】本発明の第１実施例における読出命令に対する動作例を示すフローチャートである。
【図３】本発明の第１実施例における書込命令に対する動作例を示すフローチャートである。
【図４】本発明の第１実施例における各種テーブルの概念図である。
【図５】第１実施例の変形例における各種テーブルの概念図である。
【図６】本発明の第２実施例における各種テーブルの概念図である。
【図７】従来例を説明するための図である。
【符号の説明】
１  ホスト
２  ＣＰＵ
３  主メモリ
４  キャッシュメモリ
５  キャッシュ制御装置
６  キャッシュ管理テーブル
７  キャッシュ許可テーブル
８  ブロック数テーブル
９１，９２，・・・９ｍ  外部記憶装置
Ｄ  記憶媒体
【図１】
0003600257.tif 000002
【図２】
0003600257.tif 000003
【図３】
0003600257.tif 000004
【図４】
0003600257.tif 000005
【図５】
0003600257.tif 000006
【図６】
0003600257.tif 000007
【図７】
0003600257.tif 000008