(57)【要約】【課題】遅延分散処理を用いてコンピユータの起動時にその不要なメモリコピーを廃し、高速なシステム起動を実現すること。【解決手段】リジューム処理におけるＲＡＭ６への書き戻し作業を一括で行うのではなく、仮想記憶機構を用い必要な箇所から転送し、他の部分を遅延して行うことによって迅速なシステム起動を行う。また、サスペンド／リジューム時のメモリイメージ保存場所をＣＰＵ１から読み出しアクセス及び実行可能なＲＯＭ５とし、リジューム時には仮想記憶空間上に書き込み不可属性にマップする。こうしてＣＰＵ１によるＲＡＭ６への転送処理を必要最小限に留め、リジュームに要する時間を短縮する。また、予めリジュームＲＯＭイメージをＲＯＭ５上に提供することにより、リジュームを初回起動にも適用可能とし、再起動のみに制限せず起動処理を高速化する。【選択図】図１
2005157748.tif 000002
【特許請求の範囲】
【請求項１】
電源遮断要求があったときに、そのときの処理状態を保持するためのサスペンド処理を行い、電源が再投入されたときに、前記電源遮断要求があったときの処理状態に復元させるためのリジューム処理を行うサスペンド／リジューム処理機能を有するコンピュータシステムにおいて、
サスペンド時のデータ保存場所を、ＣＰＵから読み出し及び実行可能なシステムメモリ上の不揮発メモリとし、リジューム時に前記不揮発メモリのデータ配置を仮想記憶空間上で書込み不可メモリにマップし参照することを特徴とするコンピュータシステムの起動方法。
【請求項２】
電源遮断要求があったときに、そのときの処理状態を保持するためのサスペンド処理を行い、電源が再投入されたときに、前記電源遮断要求があったときの処理状態に復元させるためのリジューム処理を行うサスペンド／リジューム処理機能を有するコンピュータシステムにおいて、
サスペンド時に使用していたメモリ領域をリジューム時に仮想記憶空間上でマップし、リジューム処理のシステムメモリへの書き戻し処理を、アクセス要求のある箇所から優先し、他の部分を遅延して行うことを特徴とするコンピュータシステムの起動方法。
【請求項３】
コンピュータシステムのリセット信号の入力時、システムメモリのデータ書き換え時においても、前記リジューム処理を行うことを特徴とする請求項１又は２記載のコンピュータシステムの起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想記憶、物理又は論理アドレス変換、メモリ保護が実現可能なコンピュータシステムにおいて、特に起動処理の高速化を図るコンピュータシステムの起動方法に関するものである。
【背景技術】
【０００２】
近年、コンピュータシステムは、半導体技術の進歩により大容量のメモリを搭載し、大規模なＯＳ、システムソフトウェア、アプリケーションを高速なＣＰＵで実行するようになっている。このようなコンピュータシステムにおいては、電源投入からの起動処理は、大量のメモリの初期化やシステムのロードなど、非常に処理負荷の高いものとなっている。またソフトウェアの大規模化に伴い、起動処理の長時間化は避けられない問題となってきている。しかしながら、実用的な範囲での利用のためには、起動時間の短縮は必須である。このような問題への対策の一つとして、サスペンド／リジューム機能が用いられている。
【０００３】
しかし、従来のサスペンド／リジュームでは、サスペンド時にすべての内部記憶メモリ（以下、システムメモリという）のデータを外部記憶メモリ（２次記憶メモリともいう）に書き出し、同様にリジューム時には外部記憶メモリからデータをシステムメモリに書き戻さなければならなかった。これはシステムメモリであるＲＯＭやＲＡＭの大容量化によって、復帰時に書き戻さなければならないデータ量が増加することを意味している。即ち、リジュームによる起動時間短縮の効果が、ＣＰＵとメモリバスの帯域幅、システムメモリの容量によって決まるリジュームのための書き戻し時間で相殺されることになる。ＣＰＵの性能を向上させたり、メモリバスの帯域を広げることは、即コンピュータシステムの消費電力の増加につながり、特に携帯機器のように電力消費上の制約が厳しい場合は、リジュームによる起動時間の短縮効果が殆ど得られない場合がある。
【０００４】
この改善策として、スワップを併用し、リジューム時のデータ転送量を削減し、起動時間を短縮する方法がある(特許文献１参照)。仮想記憶で用いられるスワップやページファイルは、サスペンド／リジュームとは目的が異なる。技術的にも仮想記憶では主にハードウェアによるアドレス変換機構と、数ｋＢ程度のページ単位でのメモリの管理を組み合わせて実現されるのに対して、サスペンドではアドレス変換やメモリの分割などがあまり用いられない。このような点で仮想記憶とサスペンドとは異なっているが、外部記憶メモリにメモリイメージを保存するという点では仮想記憶とサスペンドとは似ている。リジュームに関しては、ページ単位でのメモリの管理、アドレス変換、メモリの分割などを組み合わせて利用することで、リジュームのための時間を効率的に削減することが可能と思われる。
【０００５】
しかし、今日ではＯＳそのものが無視できないほど大容量なメモリ領域を必要とすることに加え、近代的なＯＳの仮想記憶機構、（例えば、一般的なUnix（登録商標）におけるメモリ配置に関しては、非特許文献1を参照）では、コピーオンライト機能が実装されている。メモリ上の配置と、動作状態にあるアプリケーションとの対応関係は1対1ではないため、特許文献１におけるスワップ可能か否かの判定が複雑な処理を必要とし、効率的な実現が難しいか、或いは効果が得られない可能性がある。
【特許文献１】特開平6-314134号公報（サスペンド/リジューム機能を有するコンピュータ）
【非特許文献１】Marshall Kirk McKusickほか著「４．４ＢＳＤの設計と実装」アスキー出版  １９９６年
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする問題点は、ＯＳなどソフトウェアを含むコンピュータシステムの大規模化に伴い、コンピュータシステムの起動処理が長時間化する点である。コンピュータシステムが比較的高速なリジューム処理で起動する場合であっても、システムメモリの大容量化に伴い、起動処理のリジュームに要する時間が長時間化しており、特に頻繁に起動と停止を繰り返す携帯機器においては、より顕著なものとなっている。
【０００７】
また、サスペンド時には、直前の動作状態におけるシステムメモリの複写（コピー）を取り、再起動時にそのメモリイメージを参照して起動するため、再起動時以外ではレジュームすべきデータが存在しえず、再起動時以外の所謂通常起動の場合は、高速起動が不可能になることがある。
【課題を解決するための手段】
【０００８】
本願の請求項１の発明は、電源遮断要求があったときに、そのときの処理状態を保持するためのサスペンド処理を行い、電源が再投入されたときに、前記電源遮断要求があったときの処理状態に復元させるためのリジューム処理を行うサスペンド／リジューム処理機能を有するコンピュータシステムにおいて、サスペンド時のデータ保存場所を、ＣＰＵから読み出し及び実行可能なシステムメモリ上の不揮発メモリとし、リジューム時に前記不揮発メモリのデータ配置を仮想記憶空間上で書込み不可メモリにマップし参照することを特徴とする。
【０００９】
本願の請求項２の発明は、電源遮断要求があったときに、そのときの処理状態を保持するためのサスペンド処理を行い、電源が再投入されたときに、前記電源遮断要求があったときの処理状態に復元させるためのリジューム処理を行うサスペンド／リジューム処理機能を有するコンピュータシステムにおいて、サスペンド時に使用していたメモリ領域をリジューム時に仮想記憶空間上でマップし、リジューム処理のシステムメモリへの書き戻し処理を、アクセス要求のある箇所から優先し、他の部分を遅延して行うことを特徴とする。
【００１０】
本願の請求項３の発明は、請求項１又は２のコンピュータシステムの起動方法において、コンピュータシステムのリセット信号の入力時、システムメモリのデータ書き換え時においても、前記リジューム処理を行うことを特徴とする。
【００１１】
上記のような方法においては、サスペンド／リジューム時のメモリイメージの保存場所をディスクなどの外部デバイス上ではなく、ＣＰＵから直接読み出しアクセス及び実行可能なシステムメモリ上の不揮発メモリとする。そして、このメモリイメージを仮想記憶空間上に書き込み不可でマップしておき、書き込みが発生した瞬間をメモリ保護機構を用いて検出する。そして、書き込みが必要な時点で対象のページのみを書き込み可能なシステムメモリにコピーし、仮想記憶空間上に再配置して使用する。こうして、コピー作業を必要な場所から優先して行い、かつ転送処理を必要最小限に留め、リジューム起動に要する時間を短縮する。
【００１２】
また、予めリジューム用のＲＯＭイメージを提供することにより、リジュームを再起動処理のみに制限せず、エンドユーザにおける初回の起動にも適用可能とし、すべての起動処理を本来のリジュームと同様に処理して高速化する。
【発明の効果】
【００１３】
本発明の起動方法によれば、内部記憶メモリ（システムメモリ）へのＣＰＵによる転送処理量を削減することが可能となる。これによりコンピュータシステムの起動時間が短縮され、電源投入時の応答性及び操作性の向上したコンピュータシステムが得られる。
【発明を実施するための最良の形態】
【００１４】
本発明におけるコンピュータシステムの高速起動方法について説明する。図１は本実施の形態におけるコンピュータシステムの概略構成図である。このコンピュータシステムは、中央処理装置（以下、ＣＰＵという）１、デバッグインターフェイス（デバッグＩ／Ｆ）２、メモリ管理装置（以下、ＭＭＵという）３、ＢＵＳ４、ＲＯＭ５、ＲＡＭ６、周辺装置（以下、ＤＥＶＩＣＥという）７を含んで構成される。
【００１５】
ＣＰＵ１は、種々の演算とデータ処理を行う中央処理装置である。デバッグＩ／Ｆ２は、図示しない外部デバッグ手段との通信を行うデバッグインターフェイスである。ＭＭＵ３は、仮想記憶で必要なメモリアドレス変換と読み書きアクセスの保護機能を提供するメモリ管理装置である。ＲＯＭ５は、主にＣＰＵ１で実行するプログラムとデータを記憶する書き込み不可の不揮発性メモリである。ＲＡＭ６は、主にＣＰＵ１で処理するデータを記憶する読み書き可能な揮発性メモリである。ＤＥＶＩＣＥ７は主にＩ／Ｏ機能を提供する周辺装置である。ＭＭＵ３、ＲＯＭ５、ＲＡＭ６、ＤＥＶＩＣＥ７のデータ及びコマンドはＢＵＳ４を介してやり取りされる。
【００１６】
ＣＰＵ１とデバッグＩ／Ｆ２、ＭＭＵ３は１チップに集積されていることが多く、まとめてＣＰＵと呼ぶことがあるが、ここではそれらを分離している。また、一般にＲＯＭ５とＲＡＭ６を合わせて内部メモリ、主記憶メモリ、メインメモリ、又はシステムメモリ等と呼ぶ。本実施の形態ではＲＯＭ５及びＲＡＭ６をシステムメモリと呼ぶ。
【００１７】
図２はシステム起動後のシステムメモリ上のデータ配置を模式的に示すメモリマップである。図３はコンピュータシステムの初回起動からサスペンド移行までの処理を示すフローチャートである。図４は図３におけるシステム起動(ステップＳ１３)での処理の詳細を示すフローチャートである。図５は２回目以降におけるコンピュータシステムの起動時の処理を示すフローチャートである。図６は２回目以降の起動後に発生するコピーオンライト処理を示すフローチャートである。以下、図１、２を参照し、図３、４、５、６の動作フローに従って説明する。
【００１８】
通常、電源投入あるいはリセット信号の入力を受けると、ＣＰＵ１はＲＯＭ５上の先頭より命令語を読み出し、実行を開始する。ここで、初回起動時にはＲＯＭ５を単なる書き換え不可能なＲＯＭではなく、ＳＲＡＭやＲＯＭエミュレータ等の書き換え可能なメモリに置き換えることにより、全てのシステムメモリを書き換え可能としておく。そして、デバッグＩ／Ｆ２を介し外部のデバッグ手段によってＣＰＵ１の命令実行を停止する（図４のステップＳ８）。そして起動に必要なプログラムを、ＲＯＭ５と置き換えられている書き換え可能メモリに転送する（ステップＳ９、Ｓ１０）。
【００１９】
然る後、外部デバッグ手段によって、ＣＰＵ１のプログラムカウンタを、書き込んだプログラムの実行開始アドレスに再設定(ステップＳ１１)する。そしてＣＰＵ１の命令実行を再び動作させると、通常の起動手順と同じく命令が実行される(ステップＳ１２)。この際、実行するシステムはUnix（登録商標）等の仮想記憶或いはメモリ管理機構を備えているものとする。
【００２０】
システムが正常に起動し動作している状態で、外部よりサスペンドへの移行を促す信号が入力されたとする。システムが起動し（ステップＳ１３）、サスペンドのための処理（ステップＳ１４）に入った時点で、外部デバッグ手段によってＣＰＵ１を停止(ステップＳ１５)する。このとき、メモリ状態を読み出して保存する(ステップＳ１６)。
【００２１】
次に保存したメモリ状態を外部デバッグ手段において解析し、停止前のコンピュータシステムにおけるメモリ管理機構上のメモリ管理テーブル、及びメモリ管理テーブル上で書き込み可能でありかつ実行不可でかつページアウト不可になっているメモリを抽出する。この際の抽出及び書き戻し時の利便性を考慮して、予めこれらのメモリを他のメモリとは別個の領域に確保された形式に構成することが望ましい。この形式を図２に示す。メモリ管理機構は初回起動時とそれ以外の場合（例えば、コンピュータシステムのリセット信号の入力時、システムメモリのデータ書き換え時）は、２種類のメモリ配置アルゴリズムを有するものとする。初回起動時はメモリ管理テーブルと書き込み可能かつページアウト不可かつ実行不能のページについてはＲＡＭ６に確保する。それ以外についはＲＯＭ５に確保し、初回起動時以外については常にＲＡＭ６に確保する。
【００２２】
次に、読み出したメモリ状態を基にＲＯＭイメージを構築する（ステップＳ１７）。まず、初回起動ではないことを示すフラグを更新する。またメモリ管理テーブル等の抽出したメモリ以外の領域はそのままＲＯＭイメージに含め、メモリ上の位置も原状（通常はＲＯＭ５の領域に配置されている）と同じとする。抽出したメモリの内のメモリ管理テーブルについて、抽出したメモリ以外の使用済み領域の全てを、書き込み禁止状態に変更する。また、変更したメモリ管理テーブルを含むよう抽出したメモリは、起動処理での書き戻しを行うために、ＲＯＭ５の未使用領域等を利用し、起動処理から参照可能な状態でＲＯＭイメージに含める。最後に、次回以降に行う起動処理、即ち抽出したメモリ領域のＲＡＭ６への書き戻しを行うプログラムを、ＲＯＭイメージに含める。以降はこのＲＯＭイメージを書き込んだ不揮発メモリをＲＯＭ５とし、このＲＯＭから起動する。
【００２３】
２回目以降の起動は、このＲＯＭ５の起動処理の先頭から行われる。その際、外部デバッグ手段やＲＯＭ５の書き換え可能メモリへの置き換えは必要としない。起動処理は、初めに初回起動時と同様にＲＡＭ６やＤＥＶＩＣＥ７、ＭＭＵ３の初期化を行う（図５のステップＳ１８）。次にページアウト不可で書き込み可能なメモリエリアをＲＡＭ６へ書き戻す(ステップＳ１９)。その後、初回起動時の最後に処理していた処理から擬似的に復帰する（ステップＳ２０）。最後にデバイスドライバの再初期化を促すため、サスペンドからの復帰イベントを発行する(ステップＳ２１)。
【００２４】
初回起動時に書き込み可能であったＲＯＭ５にプログラムが書き込みを行おうとした場合は、書き込み不可メモリであるため書き込みが行えない。仮想記憶機構をもつシステムの場合、メモリ管理テーブルで書き込み不可に変更されているエリアに、書き込みを行おうとすると(ステップＳ２２)、ＭＭＵ３のメモリ保護機能によるＭＭＵ例外が発生し(ステップＳ２３)、仮想記憶管理機構に処理が移る。仮想記憶管理機構は新たに書き込み可能なメモリを確保し(ステップＳ２４)、当該領域を含むページをコピー(ステップＳ２５)した後、アドレス変換機構で見かけ上同一の位置に再配置する(ステップＳ２６)ことが可能である。これを一般にコピーオンライトと呼び、書き込みが起きるまでコピーを行わない機構である。
【００２５】
これにより以降の処理は例外復帰となり(ステップＳ２７)、初回起動時と同様に動作し、且つ起動時のメモリ管理テーブルと、一部のページ等、少量のメモリ以外は起動時にコピーする必要がなくなる。それ以外の領域については必要時にのみ部分的なコピーを行うことが可能となる。このため、電源投入からコンピュータシステムの起動完了までの時間が大幅に短縮できる。
【００２６】
また、ＲＯＭイメージはシステムを構成する部品が同一であれば共用可能であり、いずれか１台で１回のみＲＯＭイメージを作成すれば、他のすべての個体では２回目以降の起動とみなすことができる。このため、不揮発メモリに同一のＲＯＭイメージを書き込んだＲＯＭ５を持つシステムによれば、常に高速な起動が可能となる。
【００２７】
以上のように既存システムの起動を高速化するという目的を、内部の大幅な再設計をすることなく実現することができた。
【産業上の利用可能性】
【００２８】
本発明の起動方法は、仮想記憶、物理又は論理アドレス変換、メモリ保護を行うことによりコンピュータシステムの起動処理の高速化を図ることができる。このためハードディスク、光ディスクなど、不揮発性の外部記憶メモリを持たないシステムに対して好適に利用できる。このようなシステムの概念に入る機器として携帯端末機器（ＰＳＡ）や携帯電話がある。また電源投入から制御機能が即時に開始されなければならない分野である家電用機器にも適用できる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態におけるコンピュータシステムの構成図である。
【図２】本発明のコンピュータシステムにおけるメモリ配置図である。
【図３】本発明のコンピュータシステムにおけるＲＯＭイメージ作成のフローチャートである。
【図４】本発明のコンピュータシステムにおける初回起動時における起動処理のフローチャートである。
【図５】本実施の形態のＲＯＭイメージに含まれる起動処理のフローチャートである。
【図６】本発明のコンピュータシステムにおけるコピーオンライト処理のフローチャートである。
【符号の説明】
【００３０】
１  中央演算処理装置（ＣＰＵ）
２  デバッグインターフェイス（DebugＩ／Ｆ）
３  メモリ管理装置（ＭＭＵ）
４  システムバス（ＢＵＳ）
５  不揮発メモリ（ＲＯＭ）
６  揮発メモリ（ＲＡＭ）
７  周辺装置（ＤＥＶＩＣＥ）
【図１】
2005157748.tif 000003
【図２】
2005157748.tif 000004
【図３】
2005157748.tif 000005
【図４】
2005157748.tif 000006
【図５】
2005157748.tif 000007
【図６】
2005157748.tif 000008