(57)【特許請求の範囲】
【請求項１】
複数の単位記憶部からなる第１の記憶装置と、第２の記憶装置とを制御するメモリ制御装置であって、
サスペンド時には変更状態にある前記単位記憶部内のデータを前記第２の記憶装置に格納し、変更状態にある前記単位記憶部内の前記データのチェックコードを生成し、前記単位記憶部内の前記データの有効または無効を示す有効状態情報を無効を示すように設定し、
前記第１の記憶装置へのアクセスを検出した場合に、前記有効状態情報が無効を示すように設定されている前記単位記憶部内の前記データの前記チェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置に格納した前記単位記憶部内の前記データを読み出して前記単位記憶部に書き込み、前記有効状態情報が有効を示すように設定する手段
を有するメモリ制御装置。
【請求項２】
前記手段は、サスペンド時には変更状態にない前記単位記憶部内の前記データを前記第２の記憶装置には格納しない
請求項１記載のメモリ制御装置。
【請求項３】
ページ単位の前記単位記憶部で構成されるメモリである前記第１の記憶装置と、
補助記憶手段である前記第２の記憶装置と、
を制御する請求項１または２記載のメモリ制御装置。
【請求項４】
前記ページを単位として前記第１の記憶装置を管理する前記メモリ制御装置であって、
前記ページのデータの有効状態情報を保持する有効状態情報保持手段と、
前記ページのデータに対する前記チェックコードを保持するチェックコード保持手段と、
前記第１の記憶装置へのアクセスを検出した場合に、該当する前記ページの前記有効状態情報を参照し、前記有効状態情報が無効を示すように設定されている場合に、当該ページの前記チェックコードを生成し、当該チェックコードと前記チェックコード保持手段に格納されている前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置から当該ページに対応する前記データを読み出して当該ページに書き込み、前記有効状態情報を有効を示すように設定する有効状態情報制御手段と、
を有する請求項３記載のメモリ制御装置。
【請求項５】
前記ページのデータの変更状態情報を保持する変更状態情報保持手段と、
ライト指示により前記ページのデータが変更された場合に、該当するページの前記変更状態情報を変更有に設定する変更状態情報設定手段と、
サスペンド処理指示を検出した場合に、前記変更状態情報を参照して変更有の場合に、当該ページの前記データを前記第2の記憶装置に書き込み、当該ページの前記データのチェックコードを生成して前記チェックコード保持手段に書き込むサスペンド処理手段と、
を更に有する請求項４記載のメモリ制御装置。
【請求項６】
仮想メモリ制御のためのアドレス変換手段を有し、
前記アドレス変換手段が、前記第１の記憶装置へのアクセスを検出し、これを前記有効状態情報設定手段に通知する手段と、前記変更状態情報設定手段と、
を有する請求項４または５記載のメモリ制御装置。
【請求項７】
ページイン処理指示を検出した場合に、前記チェックコードを生成し、前記有効状態情報が有効を示すように設定する手段を有する請求項６記載のメモリ制御装置。
【請求項８】
レジューム対象のプロセスの識別子を保持するレジューム対象プロセス保持手段と、
前記ページが割り当てられた前記プロセスの前記識別子を保持するプロセス識別子保持手段と、
前記サスペンド処理指示を検出した場合に、前記レジューム対象プロセス保持手段を参照して、当該ページが前記レジューム対象の前記プロセスに割り当てられているか否かを判断し、当該ページが前記レジューム対象の前記プロセスに割り当てられている場合に、当該ページの前記データを前記第２の記憶装置に書き込む手段と、を有する請求項３乃至７のいずれかに記載のメモリ制御装置。
【請求項９】
請求項１乃至８のいずれかに記載の前記メモリ制御装置と、  前記第１の記憶装置と、
前記第２の記憶装置と、
前記メモリ制御装置を介して前記第１の記憶装置をアクセスするプロセッサと、
前記第１の記憶装置の電源をバックアップするバッテリと、
を有するシステム。
【請求項１０】
レジューム処理時に、前記メモリ制御装置が正常であることを検出した場合はサスペンド前の動作を再開し、前記メモリ制御装置が正常でないことを検出した場合は前記メモリ制御装置及び前記第１の記憶装置の初期化処理を実行する手段を
更に有する請求項９記載のシステム。
【請求項１１】
複数の単位記憶部からなる第１の記憶装置と、第２の記憶装置とを制御するプログラムであって、
サスペンド時には変更状態にある前記単位記憶部内のデータを前記第２の記憶装置に格納し、変更状態にある前記単位記憶部内の前記データのチェックコードを生成し、前記単位記憶部内の前記データの有効または無効を示す有効状態情報を無効を示すように設定し、
前記第１の記憶装置へのアクセスを検出した場合に、前記有効状態情報が無効を示すように設定されている前記単位記憶部内の前記データの前記チェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置に格納した前記単位記憶部内の前記データを読み出して前記単位記憶部に書き込み、前記有効状態情報が有効を示すように設定する処理をコンピュータに実行させるプログラム。
【請求項１２】
ページ単位の前記単位記憶部で構成されるメモリである前記第１の記憶装置と、
補助記憶手段である前記第２の記憶装置と、
を制御する請求項１１記載のプログラム。
【請求項１３】
前記ページを単位として前記第１の記憶装置を管理する前記プログラムであって、
前記ページの前記データの有効状態情報を保持する有効状態情報保持部と、
前記ページの前記データに対する前記チェックコードを保持するチェックコード保持部と、をワークエリアとして使用し、
前記第１の記憶装置へのアクセスを検出した場合に、前記ページの前記有効状態情報を参照し、前記有効状態情報が無効を示すように設定されている場合に、当該ページの前記チェックコードを生成し、当該チェックコードと前記チェックコード保持部に格納されている前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置から当該ページに対応する前記データを読み出して当該ページに書き込み、前記有効状態情報を有効を示すように設定する処理、
をコンピュータに実行させる請求項１２記載のプログラム。
【請求項１４】
前記ページのデータの変更状態情報を保持する変更状態情報保持部を
更にワークエリアとして使用し、
ライト指示により前記ページのデータが変更された場合に、該当するページの前記変更状態情報を変更有に設定する処理と、
サスペンド処理指示を検出した場合に、前記変更状態情報を参照して変更有の場合に、当該ページの前記データを前記第２の記憶装置に書き込み、当該ページの前記データのチェックコードを生成して前記チェックコード保持手段に書き込むサスペンド処理と、
を更にコンピュータに実行させる請求項１３記載のプログラム。
【請求項１５】
前記サスペンド処理指示を検出した場合に、前記各ページが割り当てられた前記プロセスがあらかじめ定められた前記レジューム対象の前記プロセスである場合に、当該ページの前記データを前記第２の記憶装置に書き込む処理
をコンピュータに実行させる請求項１２乃至１４のいずれかに記載のプログラム。
【請求項１６】
コンピュータが、複数の単位記憶部からなる第１の記憶装置と、第２の記憶装置とを制御する方法であって、
サスペンド時には変更状態にある前記単位記憶部内のデータを前記第２の記憶装置に格納し、変更状態にある前記単位記憶部内の前記データのチェックコードを生成し、前記単位記憶部内の前記データの有効または無効を示す有効状態情報を無効を示すように設定し、
前記第１の記憶装置へのアクセスを検出した場合に、前記有効状態情報が無効を示すように設定されている前記単位記憶部内の前記データの前記チェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置に格納した前記単位記憶部内の前記データを読み出して前記単位記憶部に書き込み、前記有効状態情報が有効を示すように設定する方法。
【請求項１７】
サスペンド時には変更状態にない前記単位記憶部内の前記データを前記第２の記憶装置に格納しない
請求項１６記載の方法。
【請求項１８】
ページ単位の前記単位記憶部で構成されるメモリである前記第１の記憶装置と、
補助記憶手段である前記第２の記憶装置を制御する請求項１７記載の方法。
【請求項１９】
コンピュータが前記ページを単位として前記第１の記憶装置を管理する方法であって、
前記第１の記憶装置へのアクセスを検出した場合に、前記ページの前記有効状態情報が無効を示すように設定されているならば、当該ページの前記データのチェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとが一致しなかった場合に、前記第２の記憶装置から当該ページに対応する前記データを読み出して当該ページに書き込み、前記有効状態情報を有効を示すように設定する
請求項１８記載の方法。
【請求項２０】
コンピュータが、ライト指示により前記ページのデータが変更された場合に、該当するページの前記変更状態情報を変更有に設定し、
サスペンド処理指示を検出した場合に、前記変更状態情報が変更有ならば、当該ページの前記データを前記第２の記憶装置に書き込み、当該ページの前記データのチェックコードを生成する
請求項１９記載の方法。
【請求項２１】
前記サスペンド処理指示を検出した場合に、前記各ページが割り当てられた前記プロセスがあらかじめ定められた前記レジューム対象の前記プロセスである場合に、当該ページの前記データを前記第２の記憶装置に書き込む請求項１８乃至２０のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ制御装置、システム、プログラム、および、方法に関し、特に、レジューム機能を有するメモリ制御装置、システム、プログラム、および、方法に関する。
【背景技術】
【０００２】
電源投入時に電源断直前の状態復帰を図るレジューム機能を有したコンピュータにおいて、電源断（サスペンド）中のメモリへの電源供給が不安定な場合、電源投入（レジューム）時にメモリ内容が変化していることがあるという問題があった。
【０００３】
この問題に対して、関連する技術として、電源投入（レジューム）時にメモリ内容の変化をチェックして、誤動作を防止する手段を提供しているものがある（例えば、特許文献１）。
【０００４】
同じくこの問題に対して、関連する他の技術として、電源断（サスペンド）時にメモリに格納されている情報を補助記憶手段に保存し、電源投入（レジューム）時に復元対象の情報をメモリに転送するものがある（例えば、特許文献２）。また、類似の関連する他の技術として、メモリに格納されている情報のうち、空き領域および廃棄可能領域を除いて補助記憶手段に保存するものがある（例えば、特許文献３）。
【０００５】
他の、関連する技術として、システム起動時に、メモリ回路のチェックをページ単位で実行するものがある（例えば、特許文献４）。
【０００６】
【特許文献１】特開平０５−０８８７９５号公報
【特許文献２】特開平１０−２８９１６７号公報
【特許文献３】特開平１０−３３３９９７号公報
【特許文献４】特開２０００−２９３３９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術は、メモリ内容のチェックを全体に対して一度に行うので、レジューム動作に時間がかかるという問題があった。
【０００８】
また、特許文献２の技術は、大量の情報を補助記憶手段に格納し、また、補助記憶手段から復元するので、サスペンド動作、レジューム動作ともに時間がかかるという問題があった。特許文献３の技術では、特許文献２に比べて若干改良されているものの、サスペンド動作、レジューム動作ともに時間がかかるという問題が十分に解決されてはいなかった。
【０００９】
本発明の目的は、上述した課題を解決するメモリ制御装置、システム、プログラム、および、方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のメモリ制御装置は、複数の単位記憶部からなる第１の記憶装置と、第２の記憶装置とを制御するメモリ制御装置であって、サスペンド時には変更状態にある前記単位記憶部内の前記データを前記第２の記憶装置に格納し、変更状態にある前記単位記憶部内の前記データのチェックコードを生成し、前記第１の記憶装置へのアクセスを検出した場合に、有効状態にない前記単位記憶部内の前記データの前記チェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置に格納した前記単位記憶部内の前記データを読み出して前記単位記憶部に書き込む手段を有する。
【００１１】
本発明のプログラムは、複数の単位記憶部からなる第１の記憶装置と、第２の記憶装置とを制御するプログラムであって、サスペンド時には変更状態にある前記単位記憶部内の前記データを前記第２の記憶装置に格納し、変更状態にある前記単位記憶部内の前記データのチェックコードを生成し、前記第１の記憶装置へのアクセスを検出した場合に、有効状態にない前記単位記憶部内の前記データの前記チェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置に格納した前記単位記憶部内の前記データを読み出して前記単位記憶部に書き込む処理をコンピュータに実行させる。
【００１２】
本発明の方法は、コンピュータが、複数の単位記憶部からなる第１の記憶装置と、第２の記憶装置とを制御する方法であって、サスペンド時には変更状態にある前記単位記憶部内の前記データを前記第２の記憶装置に格納し、変更状態にある前記単位記憶部内の前記データのチェックコードを生成し、前記第１の記憶装置へのアクセスを検出した場合に、有効状態にない前記単位記憶部内の前記データの前記チェックコードを生成し、当該チェックコードと前記サスペンド時に生成した前記チェックコードとを比較し、一致しなかった場合に、前記第２の記憶装置に格納した前記単位記憶部内の前記データを読み出して前記単位記憶部に書き込む。
【発明の効果】
【００１３】
本発明によれば、サスペンド動作、および、レジューム動作の高速化が可能になる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
なお、サスペンドとは、コンピュータ等の情報処理装置の使用を中断する際に、情報処理装置内の直前の作業の状態を保存して電源を切断する動作を示す。こうして電源を切られた情報処理装置の状態は、サスペンド状態と呼ばれる。また、レジュームとは、サスペンド状態の情報処理装置が電源を投入された場合に、電源を切断する直前の状態から作業を再開する動作を示す。そして、本実施の形態では、本発明によるメモリについてのサスペンド／レジュームを実現する構成と動作について説明している。
【００１６】
なお、以下の実施の形態で記載する各手段は、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
【００１７】
また、各手段の物理的な構成は、以下の実施の形態の記載に限定されることは無く、独立して存在しても良いし、組み合わされて存在しても良いし、または、分離して構成されても良い。
【００１８】
また、各動作は、以下の実施の形態の記載に限定されることは無く、本発明を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更して良い。
【００１９】
図１を参照すると、本発明の第１の実施の形態の一例は、複数の単位記憶部３０１（たとえば、ページ、セグメント）からなる第１の記憶装置３００（たとえば、メモリ、ハードディスク）と、第２の記憶装置５００（たとえば、メモリ、ハードディスク）と、メモリ制御装置６００とを含む。
メモリ制御装置６００は、サスペンド時には、変更状態にない単位記憶部３０１内のデータを第２の記憶装置５００に格納しない。メモリ制御装置６００は、サスペンド時には、変更状態にある前記単位記憶部３０１内のデータを第２の記憶装置５００に格納する。メモリ制御装置６００は、サスペンド時には、変更状態にある単位記憶部３０１内のデータに対応するチェックコードを生成する。尚、メモリ制御装置６００は、サスペンド時には、変更状態にない単位記憶部３０１内のデータを第２の記憶装置５００に格納する、という構成も可能である。
【００２０】
メモリ制御装置６００は、第１の記憶装置３００へのライト指示またはリード指示（ライト指示またはリード指示は、アクセスの一例である。）があった場合は、これを検出する。そして、メモリ制御装置６００は、ライト指示またはリード指示された単位記憶部３０１が有効状態にない場合は、この単位記憶部３０１内のデータに対応するチェックコードを生成する。そして、メモリ制御装置６００は、この生成した有効状態にない単位記憶部３０１内のデータに対応するチェックコードと、サスペンド時に生成した変更状態にある単位記憶部３０１内のデータに対応するチェックコードとを比較する。そして、メモリ制御装置６００は、これらのチェックコードが一致しなかった場合に、第２の記憶装置５００に格納された、ライト指示またはリード指示された単位記憶部３０１に対応するデータを読み出す。そして、メモリ制御装置６００は、単位記憶部３０１に読み出したデータを書き込む。
【００２１】
本発明の第一の実施の形態の別の例を用いてさらに詳細に説明する。
【００２２】
図２を参照すると、本発明の第１の実施の形態の他の一例は、プロセッサ１と、メモリ３と、バッテリ４と、補助記憶手段５と、メモリ制御装置６とで構成されている。メモリ３は、第１の記憶装置３００の一例である。補助記憶手段５は、第２の記憶装置５００の一例である。  プロセッサ１は、メモリ制御装置６経由でメモリ３をアクセスする。
【００２３】
バッテリ４は、メモリ３の電源をバックアップする。
【００２４】
補助記憶手段５は、メモリ３のデータを格納する。
メモリ制御装置６は、変更状態情報保持手段６１と、チェックコード保持手段６２と、有効状態情報保持手段６３と、変更状態情報設定手段６４と、サスペンド処理手段６５と、有効状態情報制御手段６６とから構成されている。
【００２５】
メモリ制御装置６は、メモリ３をあらかじめ定められたサイズのページ単位に分割して制御する。図３は、メモリ３のページ３１（以後、単にページ３１と記述する。）の概念を示す図である。ページ３１は、単位記憶部３０１の一例である。メモリ制御装置６は、ページ３１ごとに、変更状態情報６１１と、チェックコード６２１と、有効状態情報６３１を制御する。
【００２６】
図４に変更状態情報保持手段６１と、チェックコード保持手段６２と、有効状態情報保持手段６３の構造の例を示す。図４の例では、変更状態情報保持手段６１と、チェックコード保持手段６２と、有効状態情報保持手段６３とは、１つの表形式で実現されている。
【００２７】
変更状態情報保持手段６１は、ページ３１ごとの変更状態情報６１１を保持する。本実施の形態においては、例として、変更状態情報６１１は、『１』で変更有りを示し、『０』で変更なしを示すこととする。メモリ制御装置６の初期化処理後における変更状態情報６１１の初期値は、例えば『０』が設定されている。
【００２８】
チェックコード保持手段６２は、ページ３１ごとのチェックコード６２１を保持する。本実施の形態においては、例として、チェックコード６２１は、３２ビットのチェックサムコードであるとする。なお、図４のチェックコード６２１は、３２ビットの２進数を１６進数で表現している。
【００２９】
なお、チェックコード６２１はチェックサムコードに限らず、巡回冗長検査符号値や、ハッシュ値を用いてもよい。また、チェックコード６２１は、誤り訂正が可能な冗長度を持つものであっても良い。
【００３０】
有効状態情報保持手段６３は、ページ３１ごとの有効状態情報６３１を保持する。本実施の形態においては、例として、有効状態情報６３１は、『１』で有効を示し、『０』で無効を示すこととする。メモリ制御装置６の初期化処理後における有効状態情報６３１の初期値は、例えば『１』が設定されている。
【００３１】
変更状態情報設定手段６４は、メモリ制御装置６がプロセッサ１からメモリ３へのライト指示を検出した場合に、該当するページ３１の変更状態情報６１１を変更有『１』に設定する。
【００３２】
サスペンド処理手段６５は、メモリ制御装置６がプロセッサ１からのサスペンド処理指示を検出した場合に、各ページ３１の変更状態情報６１１を参照して、変更有『１』のページ３１のデータを補助記憶手段５に書き込む。そして、サスペンド処理手段６５は、そのページ３１のデータのチェックコード６２１を生成する。次に、サスペンド処理手段６５は、生成したチェックコード６２１をチェックコード保持手段６２に書き込む。そして、サスペンド処理手段６５は、すべてのページ３１の有効状態情報６３１を無効に設定する。
【００３３】
有効状態情報制御手段６６は、メモリ制御装置６がプロセッサ１からメモリ３へのライト指示またはリード指示を検出した場合に、有効状態情報保持手段６３を参照して、該当するページ３１の有効状態情報６３１をチェックする。そして、有効状態情報制御手段６６は、有効状態情報６３１が無効『０』の場合に、該当するページ３１のデータのチェックコード６２１を生成する。そして、有効状態情報制御手段６６は、生成したチェックコード６２１とチェックコード保持手段６２に格納されている該当するページ３１のチェックコード６２１とを比較する。そして、有効状態情報制御手段６６は、これらのチェックコード６２１が一致しなかった場合に、補助記憶手段５から該当するページ３１に対応するデータを読み出す。そして、有効状態情報制御手段６６は、読み出したデータを該当するページ３１に書き込む。そして、有効状態情報制御手段６６は、該当するページ３１の有効状態情報６３１を有効『１』に設定する。また、有効状態情報制御手段６６は、これらのチェックコード６２１が一致した場合には、補助記憶手段５からの該当するページ３１の復旧処理を行うことなく、該当するページ３１の有効状態情報６３１を有効『１』に設定する。
【００３４】
次に、本発明の実施の形態の動作について図面を参照して説明する。
【００３５】
図５は、メモリ制御装置６のサスペンド処理手段６５の動作である。
【００３６】
メモリ制御装置６は、プロセッサ１からのサスペンド処理指示を検出する（ステップＳ８００）。
【００３７】
サスペンド処理手段６５は、すべてのページ３１に対して、ステップＳ８０２〜Ｓ８０６を行う（ステップＳ８０１）。
【００３８】
まず、サスペンド処理手段６５は、変更状態情報６１１をチェックする（ステップＳ８０２）。
【００３９】
変更状態情報６１１が『０』（ステップＳ８０２でＮＯの場合）であれば、サスペンド処理手段６５は、有効状態情報６３１を『０』にして（ステップＳ８０６）、次のページ３１の処理へ進む。
【００４０】
変更状態情報６１１が『１』（ステップＳ８０２でＹＥＳの場合）であれば、サスペンド処理手段６５は、該当するページ３１のデータを補助記憶手段５へ書き込む（ステップＳ８０３）。そして、サスペンド処理手段６５は、該当するページ３１のデータについてチェックコードを計算する。そして、サスペンド処理手段６５は、その計算したチェックコードをチェックコード６２１としてチェックコード保持手段６２に書き込む（ステップＳ８０４）。次に、サスペンド処理手段６５は、変更状態情報６１１を『０』にする（ステップＳ８０５）。次に、サスペンド処理手段６５は、有効状態情報６３１を『０』にして（ステップＳ８０６）、次のページ３１の処理へ進む。
【００４１】
すべてのページ３１について以上の処理が終了した時、すべてのページ３１のデータと、補助記憶手段５に記憶された各ページ３１に対応するデータとの整合が取れた状態になる。つまり、すべてのページ３１の変更状態情報６１１が『０』の状態である。
【００４２】
本処理後、一般的には、プロセッサ１は、図示しないサスペンド処理プログラムに基づいて、本発明の第一の実施の形態の構成全体をハードウェア的にサスペンド状態にするために、電源系サスペンド処理へ進む。しかし、これ以後の処理は、本発明と直接的な技術的関係を有しないため、説明を省略する。
【００４３】
図６はレジューム時の動作を示している。
【００４４】
図示しない手段により、電源が投入され、レジューム処理が開始される（ステップＳ８１０）。
【００４５】
プロセッサ１は、レジューム処理手段１１により、メモリ制御装置６の正常性チェックを行う（ステップＳ８１１）。そして、レジューム処理手段１１は、メモリ制御装置６に問題がなければ（ステップＳ８１２のＹＥＳの場合）、レジュームすなわち、サスペンド前の動作の再開へ進む。
【００４６】
そして、レジューム処理手段１１は、メモリ制御装置６に問題があれば（ステップＳ８１２のＮＯの場合）、レジュームはあきらめて、図示しない初期化ブート処理へ制御を渡す。
【００４７】
図７は、メモリ制御装置６がプロセッサ１からメモリ３へのライト指示またはリード指示を検出した場合の変更状態情報設定手段６４と有効状態情報制御手段６６の動作である。
【００４８】
メモリ制御装置６がプロセッサ１からメモリ３へのライト指示またはリード指示を検出する（ステップＳ８２０）。
【００４９】
まず、有効状態情報制御手段６６は、ライト指示またはリード指示されたページ３１の有効状態情報６３１を調べる（ステップＳ８２１）。そして、有効状態情報制御手段６６は、有効状態情報６３１が『１』ならば（ステップＳ８２１のＹＥＳの場合）、ステップＳ８２６へ進む。また、有効状態情報制御手段６６は、有効状態情報６３１が『０』ならば（ステップＳ８２１のＮＯの場合）、ステップＳ８２２へ進む。
【００５０】
そして、有効状態情報制御手段６６は、該当するページ３１のデータについてチェックコードを計算する（ステップＳ８２２）。
【００５１】
次に、有効状態情報制御手段６６は、その生成したチェックコードが、チェックコード保持手段６２に記憶されているチェックコード６２１と一致するかどうかを調べる（ステップＳ８２３）。これらのチェックコードが一致したことは、該当するページ３１のデータが変化してないのでそのまま使用して良いことを示している。また、これらのチェックコードが一致しなかったことは、該当するページ３１のデータが変化しているのでそのまま使用してはならないことを示している。そして、これらのチェックコードが一致した場合（Ｓ８２３でＹＥＳの場合）、有効状態情報制御手段６６は、ステップＳ８２５へ進む。また、これらのチェックコードが一致しなかった場合（Ｓ８２３でＮＯの場合）、有効状態情報制御手段６６は、ステップＳ８２４へ進む。
【００５２】
そして、有効状態情報制御手段６６は、補助記憶手段５から該当するページ３１に対応するデータを読み出す。そして、有効状態情報制御手段６６は、読み出したデータを該当するページ３１に書き込む。
【００５３】
そして、有効状態情報制御手段６６は、該当するページ３１の有効状態情報６３１を『１』にする（ステップＳ８２５）。
【００５４】
次に、変更状態情報設定手段６４は、プロセッサ１からの指示が、ライト指示か否かをチェックする（ステップＳ８２６）。そして、変更状態情報設定手段６４は、プロセッサ１からの指示がライト指示ならば（ステップＳ８２６でＹＥＳの場合）、ステップＳ８２７へ進む。また、変更状態情報設定手段６４は、プロセッサ１からの指示がライト指示でなければ（ステップＳ８２６でＮＯの場合）、指示されたリード処理へ進む。
【００５５】
そして、変更状態情報設定手段６４は、該当するページ３１の変更状態情報６１１を『１』にして（ステップＳ８２７）、指示されたライト処理へ進む。
【００５６】
なお、チェックコード６２１として誤り検出訂正を用いることにより、ステップＳ８２３でＮＯの場合に、該当するページ３１のデータの誤り訂正を実行し、訂正しきれない場合にステップＳ８２４に進むようにしても良い。
【００５７】
本発明の第１の実施の形態のメモリ制御装置によれば、サスペンド時は、ページ単位で、変更状態情報に基づいて補助記憶手段への書き込みを行うようにした。そして、ライト時またはリード時に、ページ単位で、有効状態情報とチェックコードに基づいてデータの有効性をチェックするようにした。このように構成することで、サスペンド処理、および、レジューム処理の高速化が可能になるという効果を有している。
【００５８】
さらに、本発明の第１の実施の形態のメモリ制御装置によれば、補助記憶手段から各ページに対応するデータを読み込むようにした。このように構成することで、あるページのデータが変化していた場合、あるいは、チェックコードが一致しなかった場合に、該当するページのデータを復旧することで、レジューム動作を行える、すなわち、初期化ブートを不要とする効果を有している。
【００５９】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００６０】
図８を参照すると、本発明の第２の実施の形態は、プロセッサ１と、メモリ３と、バッテリ４と、補助記憶手段５と、メモリ制御装置８とで構成されている。メモリ制御装置８は、アドレス変換手段２と、メモリ管理手段７とで構成されている。
【００６１】
図９は、メモリ３の実ページ３３（以後、単に実ページ３３と記述する。）の概念を示す図である。実ページ３３は、物理的／電気的な面で、第１の実施の形態のページ３１と同等のものである。図１０は、補助記憶手段５に格納された仮想メモリ５０の仮想ページ５３（以後、単に仮想ページ５３と記述する。）の概念を示す図である。仮想ページ５３は、プロセッサ１から見た論理的な面で、第１の実施の形態のページ３１と同等のものである。
【００６２】
アドレス変換手段２とメモリ管理手段７は、連携して、仮想メモリを実現するメモリ制御装置８を構成している。
【００６３】
アドレス変換手段２は、後述するアドレス変換表７１を参照し、仮想アドレス（仮想ページ番号７１０）から実アドレス（実ページ番号７２０）への変換を行う。
【００６４】
メモリ管理手段７は、後述するアドレス変換表７１を参照し、メモリ３の容量以上の仮想メモリを実現する。具体的には、メモリ管理手段７は、メモリ３の空きが少なくなると、当面不要な仮想ページ５３に割り当てられた実ページ３３のデータを補助記憶手段５に書き込んで空き実ページ３３を作る。また、メモリ管理手段７は、動作に必要になった仮想ページ５３に対応するデータを補助記憶手段５から読み出してメモリ３に再配置する。
【００６５】
アドレス変換表と、アドレス変換手段を使用した仮想メモリに関する技術は、当業者にとって周知技術であるため、本明細書では詳細な説明を省略する。なお、上記の技術は、例えば、野口健一郎著「ＩＴ  Ｔｅｘｔ  オペレーティングシステム」第１０章（発行所：オーム社、ＩＳＢＮ４−２７４−１３２５０−１、平成１４年９月５日発行）に記載されているので参照することができる。
【００６６】
アドレス変換手段２は、プロセッサ１からメモリ３へのライト指示またはリード指示を検出した場合に、後述するアドレス変換表７１を参照し、仮想アドレス（仮想ページ番号７１０）と実アドレス（実ページ番号７２０）の変換を行う。アドレス変換手段２は、当該仮想アドレスにメモリ３が割り当て済みで無い場合、すなわち、当該仮想ページ番号７１０に対応する実ページ番号７２０がアドレス変換表７１に登録されていない場合（例えば、実ページ番号７２０の部分が『００』になっている場合に登録されていないと判定する。）は、アドレス変換に失敗し、アドレス変換例外を発生する。アドレス変換手段２は、プロセッサ１からメモリ３へのライト指示またはリード指示を検出した場合に、後述するアドレス変換表７１を参照して、該当する仮想ページ５３の有効ビット７１１をチェックする。そして、アドレス変換手段２は、有効ビット７１１が無効『０』の場合はアドレス変換例外を発生する。アドレス変換例外が発生した場合は、制御は、アドレス変換手段２からメモリ管理手段７へ渡る。
【００６７】
アドレス変換手段２は、プロセッサ１からメモリ３へのライト指示を検出した場合に、変更ビット７１２を『１』にする。
【００６８】
メモリ管理手段７は、アドレス変換表７１と、チェックサムデータ表７２と、サスペンド処理手段７５と、チェックサム確認手段７６と、ページイン処理手段７７と、ページアウト処理手段７８とを備える。
【００６９】
図１１はアドレス変換表７１の構造を示している。アドレス変換表７１は、有効状態情報保持手段として仮想ページ５３ごとに有効ビット７１１を有している。アドレス変換表７１は、変更状態情報保持手段として仮想ページ５３ごとに変更ビット７１２を有している。アドレス変換表７１は、プロセッサ１がアクセスするアドレス（仮想ページ番号７１０）が、メモリ３のどこに対応するのか（実ページ番号７２０）を示す。有効ビット７１１は、対応する仮想ページ５３が、実ページ３３を割り当てられて有効な状態にあるか否かを示す。有効ビット７１１が『１』の場合は有効、『０』の場合は無効を示す。変更ビット７１２は、対応する仮想ページ５３が割り当てられた実ページ３３のデータに変更があったかどうかを示す。変更ビット７１２が『１』の場合は変更有り、『０』の場合は変更なしを示す。
【００７０】
図１２はチェックサムデータ表７２の構造を示している。チェックサムデータ表７２は、チェックコードとして、各実ページ３３のデータに対応するチェックサム７２２の値と、そのチェックサム７２２によって対応する実ページ３３のデータがチェック済みかどうかを示すチェックビット７２１から構成されている。チェックサム７２２のチェックが済んでいなければチェックビット７２１は『０』、チェック済みであれば『１』である。
【００７１】
メモリ管理手段７は、プロセッサ１からのサスペンド処理指示を検出した場合に、サスペンド処理手段７５によりサスペンド処理を実行する。サスペンド処理手段７５は、各仮想ページ５３の変更ビット７１２を参照して、変更有『１』の仮想ページ５３に割り当てられた実ページ３３のデータを補助記憶手段５に書き込む。そして、サスペンド処理手段７５は、その実ページ３３のデータのチェックサム７２２を計算する。次に、サスペンド処理手段７５は、計算したチェックサム７２２をチェックサムデータ表７２に書き込む。そして、サスペンド処理手段７５は、すべての仮想ページ５３の有効ビット７１１を無効『０』に設定する。
【００７２】
メモリ管理手段７は、アドレス変換例外が発生すると、アドレス変換例外処理を実行する。
【００７３】
メモリ管理手段７は、アドレス変換例外の発生原因が、有効ビット７１１が無効『０』であることによる場合は、チェックサム確認手段７６により以下の処理を行う。チェックサム確認手段７６は、該当する実ページ３３のデータのチェックサム７２２を計算する。そして、チェックサム確認手段７６は、計算したチェックサム７２２とチェックサムデータ表７２に格納されている該当する実ページ３３のチェックサム７２２とを比較する。そして、チェックサム確認手段７６は、これらのチェックサム７２２が一致しなかった場合に、補助記憶手段５から該当する仮想ページ５３に対応するデータを読み出す。そして、チェックサム確認手段７６は、読み出したデータを該当する実ページ３３に書き込む。そして、チェックサム確認手段７６は、該当する実ページ３３のチェックビット７２１を『１』に設定する。
【００７４】
そして、メモリ管理手段７は該当する仮想ページ５３の有効ビット７１１を有効『１』に設定する。
【００７５】
メモリ管理手段７は、アドレス変換例外の発生原因がアクセス対象の仮想ページ番号７１０に対応する実ページ番号７２０がアドレス変換表７１に登録されていないことによる場合は、メモリ割り当て処理（図示せず）を実行する。メモリ割り当て処理において、すでに補助記憶手段５にデータが格納されている仮想ページ５３の場合は、メモリ管理手段７は、ページイン処理手段７７によりページイン処理を行う。
【００７６】
メモリ管理手段７は、メモリ３の空きが少なくなったことを検出した場合は、ページアウト処理手段７８によりページアウト処理を実行する。なお、メモリ３の空きが少なくなったことを検出するタイミングは、例えば、ページイン処理を実行した直後である。
【００７７】
次に、本発明の第２の実施の形態の動作について図面を参照して説明する。
【００７８】
図１３はサスペンド時のメモリ管理手段７の動作である。
【００７９】
メモリ管理手段７は、サスペンド処理指示を検出する（ステップＳ８３０）。
【００８０】
メモリ管理手段７は、アドレス変換表７１のすべての仮想ページ番号７１０について、ステップＳ８３２〜ステップＳ８３６を行う（ステップＳ８３１）。
【００８１】
メモリ管理手段７において、サスペンド処理手段７５は、変更ビット７１２をチェックする（ステップＳ８３２）。
【００８２】
変更ビット７１２が『１』の場合（ステップＳ８３２でＹＥＳの場合）、サスペンド処理手段７５は、該当する実ページ３３のデータを補助記憶手段５へ書き込む（ステップＳ８３３）。
【００８３】
さらに、サスペンド処理手段７５は、該当する実ページ３３のデータについてチェックサムを計算し、その計算したチェックサムをチェックコード７２２としてチェックサムデータ表７２に書き込む（ステップＳ８３４）。そして、サスペンド処理手段７５は、変更ビット７１２を『０』にする（ステップＳ８３５）。そして、サスペンド処理手段７５は、有効ビット７１１を『０』にする。そして、サスペンド処理手段７５は、アドレス変換表７１に設定されている実ページ番号７２０に対応するチェックサムデータ表７２の実ページ番号７２０のチェックビット７２１を『０』にする（ステップＳ８３６）。そして、メモリ管理手段７は、次の仮想ページ５３の処理へ進む。
【００８４】
変更ビット７１２が『０』の場合（ステップＳ８３２でＮＯの場合）、サスペンド処理手段７５は、有効ビット７１１を『０』にする。そして、サスペンド処理手段７５は、アドレス変換表７１に設定されている実ページ番号７２０に対応するチェックサムデータ表７２の実ページ番号７２０のチェックビット７２１を『０』にする（ステップＳ８３６）。そして、メモリ管理手段７は、次の仮想ページ５３の処理へ進む。
【００８５】
図１３に示す動作が終了した時、すべての仮想ページ５３の変更ビット７１２が『０』となり、メモリ３に格納されているデータは、補助記憶手段５に格納されているデータと整合が取れた状態になる。
【００８６】
また、すべての仮想ページ５３の有効ビット７１１が『０』、チェックビット７２１が『０』の状態になる。従って、レジューム後のアクセスにおいて、アドレス変換例外が発生する。
【００８７】
図１４はレジューム時の動作を示している。
【００８８】
図示しない手段により、電源が投入され、レジューム処理が開始される（ステップＳ８４０）。
【００８９】
プロセッサ１は、メモリ管理手段７のチェックを行う（ステップＳ８４１）。チェックの結果が問題なしならば（ステップＳ８４２でＹＥＳの場合）、サスペンドの直前の動作を再開する。
【００９０】
チェックの結果が問題有りならば（ステップＳ８４２でＮＯの場合）、レジュームはあきらめて、初期化ブート処理（図示しない）へ制御を渡す。
【００９１】
図１５は、リード指示、または、ライト指示を検出した場合のアドレス変換手段２の動作を示すフローチャートである。
【００９２】
アドレス変換手段２がプロセッサ１からメモリ３へのライト指示またはリード指示を検出する（ステップＳ８６０）。
【００９３】
アドレス変換手段２は、有効ビット７１１をチェックする（ステップＳ８６１）。有効ビット７１１が『０』の場合（ステップＳ８６１でＮＯの場合）、アドレス変換手段２は、アドレス変換例外を発生する。また、有効ビット７１１が『１』の場合（ステップＳ８６１でＹＥＳの場合）、アドレス変換手段２は、Ｓ８６２へ進む。
【００９４】
次に、アドレス変換手段２は、実ページ番号７２０がアドレス変換表７１に登録されているか否かをチェックする（ステップＳ８６２）。実ページ番号７２０が登録されていない場合（ステップＳ８６２でＮＯの場合）、アドレス変換手段２は、アドレス変換例外を発生する。また、実ページ番号７２０がアドレス変換表７１に登録されている場合（ステップＳ８６２でＹＥＳの場合）、アドレス変換手段２は、Ｓ８６３へ進む。
【００９５】
次にアドレス変換手段２は、ライト指示か否かを確認する（ステップＳ８６３）。ライト指示で無かった場合（ステップＳ８６３でＮＯの場合）、アドレス変換手段２は、アドレス変換処理へ進む。ライト指示であった場合（ステップＳ８６３でＹＥＳの場合）、アドレス変換手段２は、ステップＳ８６４へ進む。
【００９６】
そして、アドレス変換手段２は、対応する仮想ページ５３の変更ビット７１２を『１』にする（ステップＳ８６４）。そしてアドレス変換手段２は、アドレス変換処理へ進む。
【００９７】
図１６は、アドレス変換手段２がアドレス変換例外を発生した場合の、メモリ管理手段７のアドレス変換例外動作のフローチャートである。
【００９８】
メモリ管理手段７は、アドレス変換表７１に実ページ番号７２０が登録されているかどうかを確認する（ステップＳ８５１）。
【００９９】
実ページ番号７２０が登録されていない場合（ステップＳ８５１でＮＯの場合）、メモリ管理手段７は、メモリ割り当て処理へ進む。実ページ番号７２０が登録されている場合（ステップＳ８５１でＹＥＳの場合）、メモリ管理手段７は、ステップ８５２へ進む。
【０１００】
次に、メモリ管理手段７は、変更ビット７１２を確認する（ステップＳ８５２）。変更ビット７１２が『１』の場合（ステップＳ８５２でＹＥＳの場合）、ステップＳ８５８へ進む。変更ビット７１２が『０』の場合（ステップＳ８５２でＮＯの場合）、ステップＳ８５３へ進む。
【０１０１】
次に、メモリ管理手段７は、チェックビット７２１を確認する（ステップＳ８５３）。チェックビット７２１が『１』の場合（ステップＳ８５３でＹＥＳの場合）、ステップＳ８５８へ進む。チェックビット７２１が『０』の場合（ステップＳ８５３でＮＯの場合）、ステップＳ８５４へ進む。
【０１０２】
次に、チェックサム確認手段７６は、対象の実ページ３３のデータについてチェックサムを計算する（ステップＳ８５４）。そして、その計算したチェックサムが、対象の実ページ番号７２０に対応するチェックサムデータ表７２に記憶されているチェックサム７２２と一致するか否かを確認する（ステップＳ８５５）。２つのチェックサムが一致した場合（ステップＳ８５５でＹＥＳの場合）、ステップＳ８５７へ進む。なお、２つのチェックサムが一致したことは、該当する実ページ３３のデータは変化してないので、そのまま使用して良いことを示している。２つのチェックサムが一致しなかった場合（ステップＳ８５５でＮＯの場合）、ステップＳ８５６へ進む。なお、２つのチェックサムが一致しなかったことは、該当する実ページ３３のデータが変化しているので、そのまま使用できないことを示している。
【０１０３】
そして、チェックサム確認手段７６は、補助記憶手段５から対象の仮想ページ５３に対応するデータを読み込む。そして、チェックサム確認手段７６は、読み込んだ仮想ページ５３に対応するデータを対象の実ページ３３に書き込む（ステップＳ８５６）。これで、実ページ３３のデータは変化前の状態に復旧する。
【０１０４】
そして、チェックサム確認手段７６は、チェックビット７２１を『１』にする（ステップＳ８５７）。
【０１０５】
そして、メモリ管理手段７は、有効ビット７１１を『１』にする（ステップＳ８５８）。なお、この後、元の処理に復帰すると、今度は有効ビット７１１が『１』なので、アドレス変換手段２によるアドレス変換が成功する。
【０１０６】
図１７は、必要になった仮想ページ５３に対応するデータを、補助記憶手段５から読み込み、メモリ３に配置してアクセスできるようにするページイン処理の動作のフローチャートである。
【０１０７】
ページイン処理手段７７は、仮想ページ５３を配置するメモリ３内の実ページ３３の位置を決めて、これに対応する実ページ番号７２０をアドレス変換表７１に登録する（ステップＳ８７１）。
【０１０８】
次に、ページイン処理手段７７は、補助記憶手段５から対象の仮想ページ５３に対応するデータを読み出し、割り当てた実ページ３３に書き込む（ステップＳ８７２）。
【０１０９】
さらに、ページイン処理手段７７は、この実ページ３３のデータについてチェックサム７２２を計算し、チェックサムデータ表７２に書き込む（ステップＳ８７３）。
【０１１０】
そして、ページイン処理手段７７は、チェックビット７２１を『１』に、変更ビット７１２を『０』に初期化し、有効ビット７１１を『１』にする（ステップＳ８７４）。
【０１１１】
図１８は、メモリ３の空きが少なくなった時に、当面不要な仮想ページ５３に割り当てられた実ページ３３のデータを補助記憶手段５に書き出して、未使用実ページ３３を作るページアウト処理の動作のフローチャートである。
【０１１２】
ページアウト処理手段７８は、該当する仮想ページ５３に対応するアドレス変換表７１の有効ビット７１１を『０』にする（ステップＳ８７５）。
【０１１３】
次に、ページアウト処理手段７８は、該当する仮想ページ５３に対応する変更ビット７１２を確認する（ステップＳ８７６）。変更ビット７１２が『０』の場合（ステップＳ８７６でＮＯ場合）、ページアウト処理手段７８は、ステップＳ８７８へ進む。変更ビット７１２が『１』の場合（ステップＳ８７６でＹＥＳ場合）、ページアウト処理手段７８は、ステップＳ８７７へ進む。
【０１１４】
そして、ページアウト処理手段７８は、該当する実ページ３３のデータを補助記憶手段５に書き込む（ステップＳ８７７）。
【０１１５】
そして、ページアウト処理手段７８は、アドレス変換表７１の、該当する仮想ページ５３に対応する実ページ番号７２０クリアし、メモリ３の対応する実ページ３３を開放する（ステップＳ８７８）。
【０１１６】
本発明の第２の実施の形態によれば、仮想メモリを制御する構成において、サスペンド時は、実ページ単位で、変更状態情報に基づいて補助記憶への書き込みを行うようにした。そして、仮想メモリを制御する構成において、レジューム時は、メモリ制御装置部分のチェックだけでサスペンド前の動作を再開するようにした。そして、仮想メモリを制御する構成において、ライト時またはリード時に、実ページ単位で、有効状態情報とチェックサムに基づいてデータの有効性をチェックするようにした。
【０１１７】
こうして、仮想メモリを制御する構成において、第一の実施の形態と同様の効果を得ることができる。
【０１１８】
また、本発明の第２の実施の形態によれば、ページインの際にチェックサムを計算している。こうして、それ以降にその実ページのデータの書き換えがなければ、サスペンド時にチェックサム計算処理を行う必要がなく、サスペンド処理の高速化が可能になるという効果を有している。
【０１１９】
次に、本発明の第３の実施の形態について図面を参照して説明する。なお、本発明の第３の実施の形態については、本発明の第２の実施の形態と異なる部分について説明する。
【０１２０】
図１９を参照すると、本発明の第３の実施の形態は、メモリ管理手段７が、第２の実施の形態の構成を示す図８のメモリ管理手段７に加えて、レジューム対象プロセス表７９を有する点で第２の実施の形態と異なる。また、図２１に示すアドレス変換表７１が、図１１に示す第２の実施の形態のアドレス変換表７１に比べて、プロセス識別子保持手段として、仮想ページ５３ごとにプロセスＩＤ７３１を追加されている点で第２の実施の形態と異なる。
【０１２１】
レジューム対象プロセス表７９は、レジュームの対象とするプロセスを設定する表である。図２０にレジューム対象プロセス表７９の構造を示す。本発明の第３の実施の形態のメモリ管理手段７は、レジューム対象プロセス表７９に設定されたプロセスＩＤ７３１のプロセスについてレジュームを保障する。
【０１２２】
次に本発明の第３の実施の形態の動作について説明する。本発明の第３の実施の形態のサスペンド処理手段７５によるサスペンド処理の動作は、図１３のステップＳ８３３の部分を図２２に置き換えたものである。本発明の第３の実施の形態のメモリ管理手段７によるアドレス変換例外処理の動作は、図１６のステップＳ８５６の部分を図２３に置き換えたものである。
【０１２３】
サスペンド処理手段７５は、変更ビット７１２が『１』であっても、無条件で補助記憶手段５にデータを書き込まない。サスペンド処理手段７５は、アドレス変換表７１から、対象の仮想ページ５３のプロセスＩＤ７３１を取得する。  そして、サスペンド処理手段７５は、レジューム対象プロセス表７９を参照して、取得したプロセスＩＤ７３１がレジューム対象プロセス表７９に設定されているか否かを確認する。そして、サスペンド処理手段７５は、プロセスＩＤ７３１がレジューム対象プロセス表７９に設定されている場合（ステップＳ８８１のＹＥＳの場合）は、レジューム対象プロセスの仮想ページ５３であると判断してステップＳ８８２へ進む。また、サスペンド処理手段７５は、プロセスＩＤ７３１がレジューム対象プロセス表７９に設定されていない場合（ステップＳ８８１のＮＯの場合）は、レジューム対象プロセスの仮想ページ５３ではないと判断してステップＳ８８３へ進む。
【０１２４】
そして、サスペンド処理手段７５は、補助記憶手段５に該当する仮想ページ５３に割り当てられた実ページ３３のデータを書き込む（ステップＳ８８２）。
【０１２５】
そして、サスペンド処理手段７５は、補助記憶手段５の該当部分を無効化する（ステップＳ８８３）。なお、無効化の処理方法としては、例えば、該当する仮想ページ５３に割り当てられた実ページ３３のデータが、補助記憶装置５のどこに記憶されているかの情報（図示しない）をクリアし、補助記憶装置５の該当領域を解放する方法がある。
【０１２６】
本発明の第３の実施の形態のアドレス変換例外処理におけるチェックサム確認手段７６による処理は、第２の実施の形態の図１６のステップＳ８５６の動作を、図２３の動作に置き換えた構成となる。本発明の第３の実施の形態では、図１６のステップＳ８５６で補助記憶手段５の該当する仮想ページ５３の部分が無効化された部分である場合は、その仮想ページ５３を使用しているプロセスを強制終了させる処理（図示しない。）へ制御を渡す。このため、レジューム対象プロセス表７９に設定されていないプロセスの仮想ページ５３に対応するデータがサスペンド状態の間に変化した場合は、そのプロセスはレジューム後に強制終了となる。
【０１２７】
本発明の第３の実施の形態によれば、レジューム対象プロセス表に設定されたプロセスのみのレジュームを保証するように構成して、補助記憶手段５へ書き込む量が減少させたため、サスペンド処理がより高速になるという効果を有する。
【０１２８】
なお、以上説明した実施の形態は一例であるため、例えば、チェックコードを保持する場所は、メモリでも、補助記憶手段でも良い。また、例えば、補助記憶手段は、ディスクその他の不揮発性メモリでも良いし、ネットワーク経由で接続された記憶処断を持つ装置であっても良い。
【産業上の利用可能性】
【０１２９】
本発明は、レジューム機能を有するコンピュータ等に利用できる。本発明は、例えば、サスペンド状態時のメモリへの電源供給が不安定な状況下においても、高速でかつ信頼性の高いレジューム動作を要求されるコンピュータ等に利用できる。
【図面の簡単な説明】
【０１３０】
【図１】本発明の第１実施の形態の構成の一例を示すブロック図である。
【図２】本発明の第１実施の形態の構成の一例を示すブロック図である。
【図３】本発明の第１の実施の形態におけるメモリのページの概念を示す図である。
【図４】本発明の第１の実施の形態における変更状態情報保持手段とチェックコード保持手段と有効状態情報保持手段の構造を示す図である。
【図５】本発明の第１の実施の形態におけるサスペンド処理の動作を示すフローチャートである。
【図６】本発明の第１の実施の形態におけるレジューム処理の動作を示すフローチャートである。
【図７】本発明の第１の実施の形態におけるライト指示またはリード指示を検出した場合の動作を示すフローチャートである。
【図８】本発明の第２実施の形態の構成を示すブロック図である。
【図９】本発明の第２の実施の形態におけるメモリの実ページの概念を示す図である。
【図１０】本発明の第２の実施の形態における補助記憶手段に格納された仮想ページの概念を示す図である。
【図１１】本発明の第２の実施の形態におけるアドレス変換表の構造を示す図である。
【図１２】本発明の第２の実施の形態におけるチェックサムデータ表の構造を示す図である。
【図１３】本発明の第２の実施の形態におけるサスペンド処理の動作を示すフローチャートである。
【図１４】本発明の第２の実施の形態におけるレジューム処理の動作を示すフローチャートである。
【図１５】本発明の第２の実施の形態におけるライト指示またはリード指示を検出した場合の動作を示すフローチャートである。
【図１６】本発明の第２の実施の形態におけるアドレス変換例外処理の動作を示すフローチャートである。
【図１７】本発明の第２の実施の形態におけるページイン処理の動作を示すフローチャートである。
【図１８】本発明の第２の実施の形態におけるページアウト処理の動作を示すフローチャートである。
【図１９】本発明の第３実施の形態の構成を示すブロック図である。
【図２０】本発明の第３の実施の形態におけるレジューム対象プロセス表の構造を示す図である。
【図２１】本発明の第３の実施の形態におけるアドレス変換表の構造を示す図である。
【図２２】本発明の第３の実施の形態におけるサスペンド処理の動作の一部を示すフローチャートである。
【図２３】本発明の第３の実施の形態におけるアドレス変換例外処理の動作の一部を示すフローチャートである。
【符号の説明】
【０１３１】
１    プロセッサ
２    アドレス変換手段
３    メモリ
４    バッテリ
５    補助記憶手段
６    メモリ制御装置
７    メモリ管理手段
８    メモリ制御装置
１１    レジューム処理手段
３１    ページ
３３    実ページ
５０    仮想メモリ
５３    仮想ページ
６１    変更状態情報保持手段
６２    チェックコード保持手段
６３    有効状態情報保持手段
６４    変更状態情報設定手段
６５    サスペンド処理手段
６６    有効状態情報制御手段
７１    アドレス変換表
７２    チェックサムデータ表
７５    サスペンド処理手段
７６    チェックサム確認手段
７７    ページイン処理手段
７８    ページアウト処理手段
７９    レジューム対象プロセス表
３００    第１の記憶装置
３０１    単位記憶部
５００    第２の記憶装置
６００    メモリ制御装置
６１１    変更状態情報
６２１    チェックコード
６３１    有効状態情報
７１０    仮想ページ番号
７１１    有効ビット
７１２    変更ビット
７２０    実ページ番号
７２１    チェックビット
７２２    チェックサム
７３１    プロセスＩＤ
【図１】
0004867892.tif 000002
【図２】
0004867892.tif 000003
【図３】
0004867892.tif 000004
【図４】
0004867892.tif 000005
【図５】
0004867892.tif 000006
【図６】
0004867892.tif 000007
【図７】
0004867892.tif 000008
【図８】
0004867892.tif 000009
【図９】
0004867892.tif 000010
【図１０】
0004867892.tif 000011
【図１１】
0004867892.tif 000012
【図１２】
0004867892.tif 000013
【図１３】
0004867892.tif 000014
【図１４】
0004867892.tif 000015
【図１５】
0004867892.tif 000016
【図１６】
0004867892.tif 000017
【図１７】
0004867892.tif 000018
【図１８】
0004867892.tif 000019
【図１９】
0004867892.tif 000020
【図２０】
0004867892.tif 000021
【図２１】
0004867892.tif 000022
【図２２】
0004867892.tif 000023
【図２３】
0004867892.tif 000024