(57)【要約】【課題】故障発生に伴う再起動後に、通常の運転状態を回復するまでの時間を短縮することができる計算機システムを得る。【解決手段】書き込み単位であるブロック３に分けられたキャッシュメモリ２の各ブロック３に、書き込みが行われたときの書き込み要求番号を保持する書き込み要求番号領域３０１を設け、プログラム１による書き込み時、書き込み要求番号を書き込み要求番号領域３０１に書き込み、各ブロック３の書き込み要求番号領域３０１に保持された書き込み要求番号の内最新の書き込み要求番号を書き込み済み番号保持手段８で保持し、故障時に故障時書き込み手段６により、書き込み要求番号領域３０１に保持された書き込み要求番号が、書き込み済み番号保持手段８に保持された書き込み要求番号より大きくないブロック３を外部記憶装置４に書き込むようにした。【選択図】        図１
2004220383.tif 000002
【特許請求の範囲】
【請求項１】
低速の外部記憶装置と高速のキャッシュメモリを有し、書き込み手段による書き込みを行う場合に、まず上記キャッシュメモリに書き込み、上記キャッシュメモリのデータを上記外部記憶装置に反映させるように上記キャッシュメモリのデータを随時上記外部記憶装置に書き込む計算機システムにおいて、上記キャッシュメモリは、書き込み単位であるブロックに分けられ、上記ブロックは、書き込み処理毎にカウントアップされ上記ブロックに書き込みが行われたときの書き込み要求番号を保持する書き込み要求番号保持領域を有し、上記書き込み手段は、上記書き込み要求番号により上記キャッシュメモリのブロックに書き込み処理を行うと共に上記書き込み要求番号を上記ブロックの書き込み要求番号保持領域に書き込み、上記各ブロックの書き込み要求番号保持領域に保持された書き込み要求番号の内最新の書き込み要求番号を保持する書き込み済み番号保持手段、上記キャッシュメモリのブロックのデータを随時に上記外部記憶装置に書き込み、上記ブロックの書き込み要求番号保持領域の書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きいときは上記書き込み要求番号保持領域の書き込み要求番号を、上記書き込み済み番号保持手段に書き込むと共に、上記外部記憶装置への書き込みが行われたブロックを空きブロックとする随時書き込み手段、及び故障時に上記キャッシュメモリの上記外部記憶装置への未反映のブロックを上記外部記憶装置に書き込む故障時書き込み手段を備え、上記故障時書き込み手段は、上記書き込み要求番号保持領域に保持された書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きくないブロックを上記外部記憶装置に書き込むことを特徴とする計算機システム。
【請求項２】
上記書き込み手段は、上記ブロックへの書き込み時に、上記ブロックの書き込み要求番号保持領域の更新前の書き込み要求番号が、書き込み済み番号保持手段に保持された書き込み要求番号より大きくない場合には、今回の書き込み処理に用いられた書き込み要求番号によって上記書き込み済み番号保持手段を更新することを特徴とする請求項１記載の計算機システム。
【請求項３】
低速の外部記憶装置と高速のキャッシュメモリを有し、書き込み手段により書き込みを行う場合に、まず上記キャッシュメモリに書き込み、上記キャッシュメモリのデータを上記外部記憶装置に反映させるように上記キャッシュメモリのデータを随時上記外部記憶装置に書き込む計算機システムにおいて、上記キャッシュメモリは、書き込み単位であるブロックに分けられ、上記ブロックは、書き込み処理毎にカウントアップされ上記ブロックに書き込みが行われたときの書き込み要求番号を保持する書き込み要求番号保持領域と最古の書き込み要求番号が保持される最古書き込み要求番号領域とを有し、上記書き込み手段は、上記書き込み要求番号により上記キャッシュメモリのブロックに書き込み処理を行い、上記書き込み要求番号を上記ブロックの書き込み要求番号保持領域に書き込むと共に、新規にブロックを確保した場合には上記最古書き込み要求番号領域に上記書き込み要求番号を書き込み、上記各ブロックの書き込み要求番号保持領域に保持された書き込み要求番号の内最新の書き込み要求番号を保持する書き込み済み番号保持手段、上記キャッシュメモリのブロックのデータを随時に上記外部記憶装置に書き込み、上記ブロックの書き込み要求番号保持領域の書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きいときは上記書き込み要求番号保持領域の書き込み要求番号を、上記書き込み済み番号保持手段に書き込むと共に、上記外部記憶装置への書き込みが行われたブロックを空きブロックとする随時書き込み手段、及び故障時に上記キャッシュメモリの上記外部記憶装置への未反映のブロックを上記外部記憶装置に書き込む故障時書き込み手段を備え、上記故障時書き込み手段は、上記最古書き込み要求番号領域に保持された書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きくないブロックを上記外部記憶装置に書き込み、上記書き込みが行われたブロックの書き込み要求番号保持領域の書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きい場合には、上記書き込みが行われたブロックの書き込み要求番号保持領域の書き込み要求番号により上記書き込み済み番号保持手段を更新することを特徴とする計算機システム。
【請求項４】
上記故障時書き込み手段は、上記書き込み済み番号保持手段を更新したときは、上記最古書き込み要求番号領域に保持された書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きくないブロックを上記外部記憶装置に書き込み、上記書き込みが行われたブロックの書き込み要求番号保持領域の書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きい場合には、上記書き込みが行われたブロックの書き込み要求番号保持領域の書き込み要求番号により上記書き込み済み番号保持手段を更新する処理を繰返すことを特徴とする請求項３記載の計算機システム。
【請求項５】
上記書き込み済み番号保持手段を更新する随時番号更新手段を備え、上記随時番号更新手段は、ブロックの最古書き込み要求番号領域に保持された書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きくなく、かつ、上記ブロックの書き込み要求番号保持領域の書き込み要求番号が、上記書き込み済み番号保持手段に保持された書き込み要求番号より大きい場合には、上記ブロックの書き込み要求番号保持領域の書き込み要求番号により上記書き込み済み番号保持手段を更新することを特徴とする請求項３または請求項４記載の計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、磁気ディスク装置や光ディスク装置等、主記憶装置に比べ低速な不揮発性外部記憶装置へのデータ書き込み、読み込み時にディスクキャッシュ処理を行うと共に、重故障時の処理にも対処した計算機システムに関するものである。
【０００２】
【従来の技術】
例えば特許文献１のように、従来のディスクキャッシュ処理を行う計算機システムでは、磁気ディスク装置や光ディスク装置等の低速な不揮発性外部記憶装置から読み込みを行う場合、半導体記憶装置のように高速な主記憶装置に確保されたキャッシュメモリ上に読み込んだデータをコピーし、再度、同一データを読み込む場合、外部記憶装置から読み込まず、キャッシュメモリから読み込み、また、書き込み時にも、キャッシュメモリ上に書き込みを行った段階で、次の演算に移ることにより、見かけ上の書き込み性能を高速化している。なお、キャッシュメモリ上に記憶された書き込みデータは、キャッシュメモリが満杯になる前に、中央処理装置からの命令の空き時間を利用して、随時、外部記憶装置に実際に書き込む必要がある。
【０００３】
このようなディスクキャッシュ処理を行う計算機システムでは、プログラムが書き込みを行う場合、１回の書き込み要求に対し、外部記憶装置の複数の個所が変更され、随時的な外部記憶装置への書き込みにおいて、１回の書き込み要求により変更されたキャッシュメモリのうちの一部分のみが、実際の外部記憶装置に反映された状態になり得る。
このとき、停電等、運転を継続できない故障（重故障）が発生した場合、単純に計算機システムを停止し、再度起動した場合、１回の書き込み要求に対し、外部記憶装置には部分的にしか書き込みが完了しておらず、外部記憶装置上のファイルシステムにおいて、論理的な矛盾が発生する場合があった。
【０００４】
そのため、例えば、特許文献１のように、無停電電源装置を用い、計算機システムの停止以前に、キャッシュメモリ上の未反映の書き込みデータを、外部記憶装置に反映するか、または、再起動時外部記憶装置を検査し、矛盾を解消するファイル修復処理を行っていた。
【０００５】
【特許文献１】
特開平４−１５６６１１号公報（第１〜２頁、従来の技術）
【０００６】
【発明が解決しようとする課題】
従来のディスクキャッシュ処理を行う計算機システムでは、無停電電源装置を利用し、重故障時の計算機システムの停止以前に、キャッシュメモリ上の未反映の書き込みデータを外部記憶装置に反映することにより、次回起動時のファイルシステム上の矛盾を回避しているため、この未反映の書き込みデータの外部記憶装置への反映に時間がかかり、再起動から、通常の運転状態を回復するまでに時間がかかるという問題があった。
また、再起動時に外部記憶装置を検査し、ファイル修復処理を行い、矛盾を解消する計算機システムの場合、矛盾を確認するため、ファイルシステム上の各ファイルまたは各ファイルを格納するディレクトリ等の論理構造毎の状態に関し、網羅的な検査を行い、修復を実行する必要があるため、通常の運転状態を回復するまでに時間がかかった。
【０００７】
この発明は、上記のような問題点を解決するためになされたもので、故障発生に伴う再起動後に、通常の運転状態を回復するまでの時間を短縮することができる計算機システムを得ることを目的にしている。
【０００８】
【課題を解決するための手段】
この発明に係わる計算機システムにおいては、低速の外部記憶装置と高速のキャッシュメモリを有し、書き込み手段による書き込みを行う場合に、まずキャッシュメモリに書き込み、キャッシュメモリのデータを外部記憶装置に反映させるようにキャッシュメモリのデータを随時外部記憶装置に書き込む計算機システムにおいて、キャッシュメモリは、書き込み単位であるブロックに分けられ、ブロックは、書き込み処理毎にカウントアップされブロックに書き込みが行われたときの書き込み要求番号を保持する書き込み要求番号保持領域を有し、書き込み手段は、書き込み要求番号によりキャッシュメモリのブロックに書き込み処理を行うと共に、書き込み要求番号をブロックの書き込み要求番号保持領域に書き込み、各ブロックの書き込み要求番号保持領域に保持された書き込み要求番号の内最新の書き込み要求番号を保持する書き込み済み番号保持手段、キャッシュメモリのブロックのデータを随時に外部記憶装置に書き込み、ブロックの書き込み要求番号保持領域の書き込み要求番号が、書き込み済み番号保持手段に保持された書き込み要求番号より大きいときは書き込み要求番号保持領域の書き込み要求番号を、書き込み済み番号保持手段に書き込むと共に、外部記憶装置への書き込みが行われたブロックを空きブロックとする随時書き込み手段、及び故障時にキャッシュメモリの外部記憶装置への未反映のブロックを外部記憶装置に書き込む故障時書き込み手段を備え、故障時書き込み手段は、書き込み要求番号保持領域に保持された書き込み要求番号が、書き込み済み番号保持手段に保持された書き込み要求番号より大きくないブロックを外部記憶装置に書き込むものである。
【０００９】
【発明の実施の形態】
実施の形態１．
図１は、この発明の実施の形態１による計算機システムを示す概念図である。図１において、プログラム１は、計算機システム上で動作する書き込み手段である。キャッシュメモリ２は、プログラム１の書き込みを一時的に蓄積する。ブロック３は、キャッシュメモリ２上の書き込み単位を示している。外部記憶装置４は、プログラム１が最終的に書き込みを行いたい記憶装置であり、随時書き込み手段５は、キャッシュメモリ２の内容を外部記憶装置４に随時書き込む。故障時書き込み手段６は、故障時にキャッシュメモリ２のうち外部記憶装置４に未反映なブロック３を、外部記憶装置４に書き込む。書き込み要求番号保持手段７は、プログラム１からの一回の無矛盾な書き込み毎の番号を保持する手段である。書き込み済み番号保持手段８は、随時書き込み手段４が既に書き込みを行ったブロック３に付けられた書き込み要求番号のうち最新の値を保持する。
【００１０】
図２は、図１におけるブロック３の詳細図である。
図２において、書き込み要求番号領域３０１は、ブロック３に書き込みを行ったときの書き込み要求番号を保持する。データ領域３０２は、実際に外部記憶装置４に対し、書き込みを行うべきデータが格納された領域である。
図３は、図１におけるプログラム１の処理を示すフローチャートである。
図４は、図１における随時書き込み手段５の処理を示すフローチャートである。
図５は、図１における故障時書き込み手段６の処理を示すフローチャートである。
【００１１】
次に、動作について説明する。
まず、プログラム１の動作を図３を用いて説明する。図３は、プログラム１が、書き込み要求を行う場合の処理を示している。
ここで、書き込み要求保持手段７及び書き込み済み番号保持手段８の初期値は０とする。書き込み要求を行うプログラム１は（ステップＳＴ１００１）、書き込み要求番号保持手段７より、現在の書き込み要求番号を取得する（ステップＳＴ１００２）。次に、書き込み要求番号保持手段７に保持された書き込み要求番号を１つ加算する（ステップＳＴ１００３）。次に、この書き込み要求を実施するために必要な複数箇所への個別の書き込みに対し、ステップＳＴ１００４からステップＳＴ１０１１までの処理を繰り返す。
個別の書き込み処理では、外部記憶装置４において、書き込み処理を行う先の内容を保持したブロックが、キャッシュメモリ２上に存在するかどうかを確認する（ＳＴ１００５）。存在しない場合は、空きブロックを１つ確保し（ステップＳＴ１００６）、書き込み処理を行う先の内容を、外部記憶装置４よりそのブロックのデータ領域３０２に読み込み、書き込むべきデータをそのブロックのデータ領域３０２に上書きし（ステップＳＴ１００７）、ステップＳＴ１００２で取得した書き込み要求番号を当該ブロックの書き込み要求番号領域３０１に書き込む（ステップＳＴ１００８）。
【００１２】
一方、ステップＳＴ１００５にて、対象ブロックが存在する場合は、書き込むべきデータを当該ブロックのデータ領域３０２に上書きし（ステップＳＴ１００９）、ステップＳＴ１００２で取得した書き込み要求番号を当該ブロックの書き込み要求番号領域３０１に書き込む（ステップＳＴ１０１０）。
個別の書き込み処理（ステップ１００４からステップ１０１１）が終了すると、プログラム１の書き込み要求が、終了する（ステップ１０１２）。
【００１３】
次に、随時書き込み手段５の動作を図４を用いて説明する。
随時書き込み手段５は、中央処理装置からの命令の空き時間に随時起動され、処理を開始する（ステップＳＴ５００１）。開始された随時書き込み手段５は、キャッシュメモリ２より、未反映の書き込みデータを含むブロック３を任意に取得する（ＳＴ５００２）。次に、取得したブロック３のデータ領域３０２に書き込まれたデータを外部記憶装置４に出力し、内容を反映させる（ステップＳＴ５００３）。
【００１４】
次に、取得したブロック３の書き込み要求番号３０１に記録された書き込み要求番号が、書き込み済み番号保持手段８に記録される番号より大きいか否かを確認する（ステップＳＴ５００４）。ここで、書き込み要求番号３０１に記録された書き込み要求番号が、書き込み済み番号保持手段８に記録される番号より大きい場合、当該ブロックの書き込みは、今まで外部記憶装置４に行った何れの書き込みより新しいことを意味する。その場合、書き込み要求番号３０１に記録された書き込み要求番号を、書き込み済み番号保持手段８に記録する（ステップＳＴ５００５）。またステップＳＴ５００４にて、書き込み要求番号３０１に記録された書き込み要求番号が、書き込み済み番号保持手段８に記録される番号より大きくない場合は、ステップＳＴ５００５は実行しない。その後、当該ブロックを解放し、空きブロックとし（ステップＳＴ５００６）、随時書き込み手段５の処理が終了する（ステップＳＴ５００７）。
【００１５】
次に、故障時書き込み手段６の動作を図５を用いて説明する。
故障時書き込み手段６は、計算機システムにて通常の運転を継続できないような重度の故障が発生した場合に開始される（ステップＳＴ６００１）。開始された故障時書き込み手段６は、キャッシュメモリ２に含まれる全ての未反映ブロックに対し、ステップＳＴ６００２からステップＳＴ６００３までの処理を繰り返す。
【００１６】
各ブロックに対する繰り返しにおいて、個々のブロックに対し、当該ブロックの書き込み要求番号領域３０１に記録された書き込み要求番号が、書き込み済み番号保持手段８に記録された番号より大きくない値か、否かを確認する（ステップＳＴ６００３）。書き込み要求番号が、書き込み済み番号保持手段８に記録された番号と等しいか、より小さい値の場合は、当該ブロックの書き込みが書き込み済み番号保持手段８の番号と同時か、より古いことを意味し、これは、当該ブロックと同一の書き込み要求において、書き込まれた、他のデータが既に外部記憶装置４に反映済みであることを意味する。そのため、当該ブロックも書き込まなければ、矛盾が発生するため、当該ブロックも書き込む（ステップＳＴ６００４）。
各ブロックに対する処理（ステップＳＴ６００２からステップＳＴ６００５）が終了すると、故障時書き込み処理が終了する（ステップＳＴ６００７）。その後計算機システムは、停止または、再起動処理を行う。
【００１７】
このように、実施の形態１に示す計算機システムでは、ディスクキャッシュ処理において、キャッシュメモリ上の個々のブロックのブロック毎に書き込み要求番号を示す番号を格納する領域を持ち、計算機システム上で動作するプログラムからの書き込み要求番号毎に一意な番号を与え、その一回の書き込み要求で書き込みが行われる複数のブロックにデータを書き込むと同時に、当該ブロックに書き込み要求番号を記録する。
また、プログラムと非同期に行われる実際の外部記憶装置への随時の書き込み処理において、実際に書き込みが行われたブロックのうち、書き込み要求番号が最後の番号を書き込み済み番号として記憶する。
また、運転を継続できない重度の故障が発生した場合に、未反映のブロックのうち、外部記憶装置への書き込み処理で記憶された書き込み済み番号か、または、それよりも前の書き込み要求番号を持つブロックのみを実際に外部記憶装置に書き込む処理を行ってから停止、または再起動を行う。
【００１８】
実施の形態１によれば、これにより、一回の書き込み要求で行われる複数のブロックに対する書き込みにおいて、随時の書き込み処理により、その一部が既に外部記憶装置に書き込まれてしまった場合は、故障時の書き込み処理で残りも外部記憶装置に書き込まれ、一方、全く外部記憶装置に書き込まれていない書き込み要求は、書き込みが行われず、外部記憶装置に論理的な矛盾が発生しない最低限のデータの書き込みのみを行ってから、計算機の停止または、再起動処理を行う。そのため、停止までの稼動時間が短縮され、また、再起動時ファイル修復が不要なため、故障発生に伴う再起動後に通常の運転状態を回復するまでの時間が短縮できる効果がある。
【００１９】
実施の形態２．
図６は、この発明の実施の形態２による計算機システムを示す概念図である。
図６において、プログラム１１は、実施の形態１のプログラム１に、書き込み処理時に書き込み済み番号保持手段８を検査し、必要に応じて書き込み済み番号保持手段８を更新する処理を追加したものである。他の構成は、実施の形態１と同一である。
図７は、図６におけるプログラム１１の処理を示すフローチャートである。
【００２０】
次に、プログラム１１の動作を図７を用いて説明する。図７は、プログラム１１が、書き込み要求を行った場合の処理を示している。
ここで、ステップＳＴ１００１からステップＳＴ１００５まで、及びステップＳＴ１００６からステップＳＴ１００８まで、及びステップＳＴ１０１１からステップＳＴ１０１２までは、実施の形態１と同一であるので、その説明を省略する。
プログラム１１では、個別の書き込みを行う処理（ステップＳＴ１００４からステップＳＴ１０１１）において、対象ブロックが存在した場合（ステップＳＴ１００５）、まず、実施の形態１と同様にデータを上書きし（ステップＳＴ１００９）、番号の書き込み（ステップＳＴ１０１０）を行う。このとき、ステップＳＴ１０１０にて番号の書き込みを行う以前に、当該ブロックの書き込み要求番号領域３０１に記録されていた書き込み要求番号と、書き込み済み番号保持手段８に記録された番号を比較する（ステップＳＴ１１０１）。
【００２１】
ここで、ステップＳＴ１０１０にて番号の書き込みを行う以前に、当該ブロックの書き込み要求番号領域３０１に記録されていた書き込み要求番号が、書き込み済み番号保持手段８に記録された番号と等しいか、より小さい値の場合、当該ブロックと同じ書き込み要求にて書き込まれたデータが、既に外部記憶装置４に反映されていることを意味する。そのため、このブロックは、故障時に外部記憶装置４に反映する必要があり、一方、その場合は、この書き込み要求にて上書きしたデータも、同時に外部記憶装置に反映されてしまうため、今回の書き込み要求にて同時に書き込まれる全てのブロックもまた、故障時に外部記憶装置４に反映する必要がある。そのため、この場合、ステップＳＴ１１０２を実行し、ステップＳＴ１００２で取得した今回の書き込み要求番号を書き込み済み番号保持手段８に書き込み、値を更新する。
【００２２】
このように、実施の形態２に示す計算機システムでは、実施の形態１の処理に加え、プログラムがキャッシュメモリ上の未反映のデータを保持するブロックに上書きを行う場合、上書き前のブロックの書き込み要求番号が、記憶されている書き込み済み番号より前の番号であり、また、上書き後の書き込み要求番号が、記憶されている書き込み済み番号より後の番号の場合、上書き後の書き込み要求番号を、新たな書き込み済み番号としている。
【００２３】
実施の形態２によれば、これにより、未反映のブロックに対し、データを上書きするようなディスクキャッシュ処理を行う計算機システムにおいても、外部記憶装置に論理的な矛盾が発生しない最低限のデータの書き込みのみを行ってから、計算機の停止または、再起動処理を行うため、停止までの稼動時間が短縮され、また、再起動時にファイル修復が不要なため、故障発生に伴う再起動後に通常の運転状態を回復するまでの時間が短縮できる効果がある。
【００２４】
実施の形態３．
図８は、この発明の実施の形態３による計算機システムを示す概念図である。
図８において、プログラム１２は、実施の形態２のプログラム１１に、新規ブロックを確保した場合に、書き込み要求番号と共に最古の書き込み要求番号を記録する処理を追加したものである。故障時書き込み手段６２は、実施の形態２の故障時書き込み手段６に対し、未反映ブロックを外部記憶装置に反映する段階で、当該ブロックの最古の書き込み要求番号が書き込み済み番号保持手段８に記録する番号より大きくない場合、当該ブロックの反映を行い、このとき当該ブロックの最も新しい書き込み要求番号が、書き込み済み番号保持手段８に記録する番号より大きい場合、当該ブロックの最も新しい書き込み要求番号を新たな書き込み済み番号とし、書き込み要求番号より以前の書き込み番号を持つブロックが無くなるまで、未反映ブロックの反映を繰り返す処理に変更したものである。ブロック３２は、図９に示すように、実施の形態２のブロック３に、最古書き込み要求番号３２１を追加したものである。他の構成は、実施の形態２と同一である。
【００２５】
図９は、図８におけるブロック３２の詳細図である。
図１０は、図８におけるプログラム１２の処理を示すフローチャートである。
図１１は、図８における故障時書き込み手段６２の処理を示すフローチャートである。
【００２６】
次に、プログラム１２の動作を図１０を用いて説明する。
図１０は、プログラム１２において、書き込み要求を行った場合に行う処理を示している。ここでは、プログラム１１の処理に加え、ブロックの書き込みにおいて、対象ブロックが、キャッシュメモリ上に存在しない場合（ステップＳＴ１００６以降の処理）に、当該ブロックの書き込み要求番号領域３０１に書き込み要求番号を書き込んだ（ステップＳＴ１００８）後に、同じ書き込み要求番号を当該ブロックの最古書き込み要求番号領域３２１にも書き込む処理（ステップＳＴ１２０１）を行う。
【００２７】
次に、故障時書き込み処理６２の動作について図１１を用いて説明する。
故障時書き込み手段６２は、計算機システムにて通常の運転を継続できないような重度の故障が発生した場合に開始される（ステップＳＴ６００１）。開始された故障時書き込み手段６２は、キャッシュメモリ２に含まれる全ての未反映ブロックに対し、ステップＳＴ６００２からステップＳＴ６００５までの処理を繰り返す。
各ブロックに対する繰り返しにおいて、個々のブロックに対し、当該ブロックの最古書き込み要求番号領域３２１に記録された書き込み要求番号が、書き込み済み番号保持手段８に記録された番号より大きくない値か、否かを確認する（ステップＳＴ６２０１）。最古書き込み要求番号が、書き込み済み番号保持手段８に記録された番号と等しいか、より小さい値の場合は、当該ブロックを外部記憶装置４に書き込む（ステップＳＴ６２０２）、書き込みの終わったブロックは、空きブロックとして解放する（ＳＴ６２０３）。ここで直前に書き込んだブロックの書き込み要求番号領域３０１に記録された書き込み要求番号が、書き込み済み番号保持手段８に記録された番号より後の番号であった場合（ステップＳＴ６２０４）、書き込み要求番号領域３０１に記録された書き込み要求番号で、書き込み済み番号保持手段８を更新する（ステップＳＴ６２０５）。
【００２８】
このように、ステップＳＴ６００２からステップＳＴ６００５までの処理を行い、その間、書き込み済み番号保持手段８の更新が行われた場合（ステップＳＴ６２０６）は、再度ステップＳＴ６００２から実行をやり直す。
【００２９】
このような処理により、例えば、プログラム１２Ａと、プログラム１２Ｂが同時に書き込み要求を行うとして、プログラム１２Ａの書き込み要求番号が４で、書き込み対象のブロック３２Ａの最古書き込み要求番号が１、プログラム１２Ｂの書き込み要求番号が５で、書き込み対象ブロック３２Ｂの最古書き込み要求番号が３、書き込み済み番号保持手段８に記録された番号が２の場合、仮にプログラム１２Ｂの処理が先に終わり、次にプログラム１２Ａの処理が終わるとすると、プログラム１２Ｂの処理では、書き込み済み番号保持手段８の内容は更新されない。
【００３０】
ここで、仮に実施の形態２であれば、各ブロックは、書き込み要求番号のみしか保持していないため、上記例のプログラム１２Ｂにより書き込まれたブロックは、故障時の書き込み対象から漏れてしまう。しかしながら、実施の形態３では、故障時書き込み処理において、書き込み済み番号保持手段８に保持された値より以前の最古書き込み要求番号を持つブロックに対して書き込みを行うことにより、プログラム１２Ｂが書き込んだブロック３２Ｂについて外部記憶装置への書き込みが行われ、このとき、ブロック３２Ｂの書き込み要求番号に従い、書き込み済み番号保持手段に記録される値が更新されるため、ブロック３２Ｂと同時に書き込まれたブロックに関しても故障時書き込み処理による外部記憶装置への反映が行われる。
【００３１】
このように、実施の形態３に示す計算機システムでは、実施の形態２の処理に加え、キャッシュメモリ上の個々のブロック毎に最古の書き込み要求番号を示す番号を格納する領域を持ち、個々のブロックの最も古い書き込み要求番号と、最も新しい書き込み要求番号を保持し、故障時の書き込み処理において、未反映ブロックを外部記憶装置に反映する段階で、当該ブロックの最古の書き込み要求番号が書き込み済み番号より大きくない場合、当該ブロックの反映を行い、このとき当該ブロックの最も新しい書き込み要求番号が、書き込み済み番号より大きい場合、当該ブロックの最も新しい書き込み要求番号を新たな書き込み済み要求番号とし、書き込み要求番号より以前の書き込み要求番号を持つブロックが無くなるまで、未反映ブロックの反映を繰り返すようにしている。
【００３２】
実施の形態３によれば、これにより、未反映のブロックに対し、データを上書きするようなディスクキャッシュ処理を行い、また、プログラムが並列に書き込み要求を行う計算機システムにおいても、外部記憶装置に論理的な矛盾が発生しない最低限のデータの書き込みのみを行ってから、計算機の停止または、再起動処理を行うため、停止までの稼動時間が短縮され、また、再起動時にファイル修復が不要なため、故障発生に伴う再起動後に通常の運転状態を回復するまでの時間が短縮できる効果がある。
【００３３】
実施の形態４．
図１２は、この発明の実施の形態４による計算機システムを示す概念図である。
図１２においては、図８の構成に、随時番号更新手段９を追加している。随時番号更新手段９は、随時動作し、キャッシュメモリ２上の未反映のブロックに対し、当該ブロックの最古書き込み要求番号領域３２１に保持される値が書き込み済み番号保持手段８に記録される値より以前の値であり、かつ、当該ブロックの書き込み要求番号領域３０１に保持される値が、書き込み済み番号保持手段８に記録される値より後の値である場合、書き込み要求番号領域３０１に保持される値で、書き込み済み番号保持手段８の値を更新する処理を行う。
図１３は、図１２における随時番号更新手段９の処理を示すフローチャートである。
【００３４】
次に、随時番号更新手段９の動作を図１３を用いて説明する。
随時番号更新手段９は、中央処理装置からの命令の空き時間に随時起動され、処理を開始する（ステップＳＴ９００１）。処理を開始された随時番号更新手段９は、キャッシュメモリ２上の全ての未反映ブロックに対し、ステップＳＴ９００２からステップＳＴ９００６までの処理を繰り返す。
個々のブロックに対する処理では、当該ブロックの最古書き込み要求番号領域３２１に保持された値が、書き込み済み番号保持手段８に記録された値より以前の値であり（ステップＳＴ９００３）、かつ、当該ブロックの書き込み要求番号領域３０１に保持された値が、書き込み済み番号保持手段８に記録された値より後の値であった場合（ステップＳＴ９００４）、書き込み要求番号領域３０１に保持された値で、書き込み済み番号保持手段８の値を更新する。
【００３５】
このように、実施の形態４に示す計算機システムでは、実施の形態３の処理に加え、プログラムの書き込み要求や、実際の外部記憶装置への随時の書き込み処理とは非同期に、キャッシュメモリ上の各バッファを検査し、当該ブロックの最古の書き込み要求番号と、最も新しい書き込み要求番号との間に書き込み済み要求番号がある場合、当該ブロックの最も新しい書き込み要求番号を新たな書き込み済み番号としている。
【００３６】
実施の形態４によれば、これにより、実際に故障書き込み手段が実行される場合に、書き込み済み番号保持手段に記録される値の更新を行う回数が減るため、全体の処理回数が減り、実施の形態３と同様の機能を提供し、かつ、故障発生に伴う再起動後に通常の運転状態を回復するまでの時間をより短縮できる効果がある。
【００３７】
【発明の効果】
この発明は、以上説明したように、低速の外部記憶装置と高速のキャッシュメモリを有し、書き込み手段による書き込みを行う場合に、まずキャッシュメモリに書き込み、キャッシュメモリのデータを外部記憶装置に反映させるようにキャッシュメモリのデータを随時外部記憶装置に書き込む計算機システムにおいて、キャッシュメモリは、書き込み単位であるブロックに分けられ、ブロックは、書き込み処理毎にカウントアップされブロックに書き込みが行われたときの書き込み要求番号を保持する書き込み要求番号保持領域を有し、書き込み手段は、書き込み要求番号によりキャッシュメモリのブロックに書き込み処理を行うと共に書き込み要求番号をブロックの書き込み要求番号保持領域に書き込み、各ブロックの書き込み要求番号保持領域に保持された書き込み要求番号の内最新の書き込み要求番号を保持する書き込み済み番号保持手段、キャッシュメモリのブロックのデータを随時に外部記憶装置に書き込み、ブロックの書き込み要求番号保持領域の書き込み要求番号が、書き込み済み番号保持手段に保持された書き込み要求番号より大きいときは書き込み要求番号保持領域の書き込み要求番号を、書き込み済み番号保持手段に書き込むと共に、外部記憶装置への書き込みが行われたブロックを空きブロックとする随時書き込み手段、及び故障時にキャッシュメモリの外部記憶装置への未反映のブロックを外部記憶装置に書き込む故障時書き込み手段を備え、故障時書き込み手段は、書き込み要求番号保持領域に保持された書き込み要求番号が、書き込み済み番号保持手段に保持された書き込み要求番号より大きくないブロックを外部記憶装置に書き込むので、外部記憶装置に論理的な矛盾が発生しない最低限のデータの書き込みのみを行ってから、計算機の停止または、再起動処理を行うため、停止までの稼動時間が短縮され、また、再起動時にファイル修復が不要なため、故障発生に伴う再起動後に通常の運転状態を回復するまでの時間が短縮できる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１による計算機システムを示す概念図である。
【図２】図１におけるブロック３の詳細図である。
【図３】図１におけるプログラム１の処理を示すフローチャートである。
【図４】図１における随時書き込み手段５の処理を示すフローチャートである。
【図５】図１における故障時書き込み手段６の処理を示すフローチャートである。
【図６】この発明の実施の形態２による計算機システムを示す概念図である。
【図７】図６におけるプログラム１１の処理を示すフローチャートである。
【図８】この発明の実施の形態３による計算機システムを示す概念図である。
【図９】図８におけるブロック３２の詳細図である。
【図１０】図８におけるプログラム１２の処理を示すフローチャートである。
【図１１】図８における故障時書き込み手段６２の処理を示すフローチャートである。
【図１２】この発明の実施の形態４による計算機システムを示す概念図である。
【図１３】図１２における随時番号更新手段９の処理を示すフローチャートである。
【符号の説明】
１，１１，１２  プログラム、２  キャッシュメモリ、３，３２  ブロック、４  外部記憶装置、５  随時書き込み手段、６，６２  故障時書き込み手段、
７  書き込み要求番号保持手段、８  書き込み済み番号保持手段、
９  随時番号更新手段、３０１  書き込み要求番号領域、３０２  データ領域、３２１  最古書き込み要求番号領域。
【図１】
2004220383.tif 000003
【図２】
2004220383.tif 000004
【図３】
2004220383.tif 000005
【図４】
2004220383.tif 000006
【図５】
2004220383.tif 000007
【図６】
2004220383.tif 000008
【図７】
2004220383.tif 000009
【図８】
2004220383.tif 000010
【図９】
2004220383.tif 000011
【図１０】
2004220383.tif 000012
【図１１】
2004220383.tif 000013
【図１２】
2004220383.tif 000014
【図１３】
2004220383.tif 000015