(57)【要約】【課題】レジューム処理に要する時間を短縮する情報処理装置の制御方法を提供する。【解決手段】ハイバネーション機能を有し、デバイス及びCPU系列非依存部分と、CPU系列依存部分とで構成されたOSで制御される情報処理装置におけるハイバネーション制御方法であって、デバイス及びCPU系列非依存のOSにおける処理が、サブシステムの初期化後に、OSが直接に電源管理するデバイスドライバ及びサスペンドイメージを格納する記憶装置のデバイスドライバの初期化を実行し、サスペンドイメージの復元を実行し、設定を必要とするデバイスについてレジューム処理を実行する。【選択図】図６
2010157017.tif 000002
【特許請求の範囲】
【請求項１】
ハイバネーション機能を有し、デバイス及びCPU系列非依存部分と、CPU系列依存部分とで構成されたOS（オペレーティング・システム）で制御される情報処理装置における制御方法であって、
デバイス及びCPU系列非依存の前記OSにおける処理が、サブシステムの初期化後に、
前記OSが直接に電源管理するデバイスドライバ及びサスペンドイメージを格納する記憶装置のデバイスドライバの初期化を実行し、
前記サスペンドイメージの復元を実行し、
設定を必要とするデバイスについてレジューム処理を実行することを特徴とする情報処理装置の制御方法。
【請求項２】
前記サスペンドイメージの復元の実行を、ミドルウェアレイヤより上位のレイヤに位置するデバイスやクラスドライバの初期化よりも早いタイミングで行うことを特徴とする請求項１記載の情報処理装置の制御方法。
【請求項３】
前記サブシステムは、バスであることを特徴とする請求項１または請求項２記載の情報処理装置の制御方法。
【請求項４】
ハードウェアの設定を必要としないデバイス、ファイルシステム、ルートファイルシステムは初期化処理を行わず、前記サスペンドイメージから復元したデータを適用することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置の制御方法。
【請求項５】
前記OSが直接に電源管理するデバイスは、オンボードデバイスまたはバスであることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置の制御方法。
【請求項６】
前記OSがI/Oスケジュール機能を有する場合には、
前記サスペンドイメージの復元を実行する前に、前記I/Oスケジューラの初期化を実行することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置の制御方法。
【請求項７】
前記OSは、Linux（登録商標）であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハイバネーション機能を有する情報処理装置の制御方法に関する。
【背景技術】
【０００２】
情報処理装置などを始め、消費電力を抑えるためにレジューム機能を搭載する機器が増えている。中でもハイバネーションは不揮発記憶領域にサスペンドイメージを保存するために待機電流を必要としないので、省電力性能はもっとも優れている。しかしながら、その復帰には、情報処理装置に搭載されているデバイスの初期化、メモリの復元が必要になり、通常状態への復帰に時間がかかるという問題点があった。
【０００３】
近年、機器の複雑化により多彩なデバイスが搭載されるようになった。このためハイバネーションからの復帰の中でも、特にデバイスの初期化に必要となる時間が増える傾向にある。
【０００４】
ハイバネーションの復帰におけるデバイスの初期化時間の短縮を図るものが提案されている（例えば、特許文献１参照。）。これは、サスペンドが指示された時、アプリケーションを再起動し、ハードウェアの初期化以外の初期化を実行した後にサスペンドイメージを保存することにより、ハードウェアの初期化の重複を避けレジュームの復帰の時間を短縮するものである。
【特許文献１】特開2008-152708号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年、CPU（Central Processing Unit）系列や、デバイスが異なる多種多様な装置に、複雑な制御を組込む傾向にある。これらに柔軟に対応するために、CPU系列や、デバイスの依存部分、非依存部分を明確に分けたOS（オペレーティング・システム）を組込みに適用する事例が増えている。
【０００６】
しかしながら、上記した特許文献１記載の技術では、サスペンド時に処理を必要とし、サスペンド時間が長くかかるという問題点があった。また、CPU系列や、デバイスの依存部分、非依存部分を明確に分けたOSには、十分対応出来ていなかった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたもので、CPU系列やデバイス非依存のＯＳ処理部で処理することができ、レジューム処理に要する時間を短縮する情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、ハイバネーション機能を有し、デバイス及びCPU系列非依存部分と、CPU系列依存部分とで構成されたOS（オペレーティング・システム）で制御される情報処理装置の制御方法であって、デバイス及びCPU系列非依存の前記OSにおける処理が、サブシステムの初期化後に、前記OSが直接に電源管理するデバイスドライバ及びサスペンドイメージを格納する記憶装置のデバイスドライバの初期化を実行し、前記サスペンドイメージの復元を実行し、設定を必要とするデバイスについてレジューム処理を実行することを特徴とする情報処理装置の制御方法が提供される。
【発明の効果】
【０００９】
本発明によれば、サスペンド前のカーネルの起動時の初期化データを利用するので、レジューム処理に要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を参照しながら説明する。各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１１】
図１は、本発明の実施形態に係る情報処理装置の概略構成を示すブロック図である。図1に示すように、情報処理装置は、PC１００、CPU１０１、メモリ１０２、入力装置１０３、表示装置１０４、記憶装置１０５、内部バス１０６および電源部１０７を備えている。
【００１２】
PC１００は、例えば、ハイバネーション機能を有したPCである。すなわち、PCの電源を切る直前の状態を保存し、次に電源を入れたときに電源を切る前の状態から作業を再開することができる。
【００１３】
CPU１０１は、PC１００が内蔵するCPUであり、PC１００の全体の制御も司る。
【００１４】
メモリ１０２は、揮発性半導体メモリから構成されるメモリ装置である。メモリ１０２には、CPU１０１が処理するプログラムや一時データが格納される。
【００１５】
入力装置１０３は、例えばキーボードやマウス、タッチパッドである。PC１００に備えられており、コマンド等ユーザの指示を入力するのに利用される。
【００１６】
表示装置１０４は、例えばPC１００が内蔵するLCDディスプレイである。
【００１７】
記憶装置１０５は、PC１００が内蔵するHDD装置あるいはSSD装置である。CPU１０１が処理するプログラムはあらかじめ記憶装置１０５に格納される。また、ハイバネーションする場合、記憶装置１０５にメモリ等のデータを保存する場所としても使用される。
【００１８】
内部バス１０６は、PC１００内の各構成ユニットを接続し、データの交換を行うためのバスである。各構成ユニットは内部バス１０６を介してデータの授受を実現する。
【００１９】
電源部１０７は、PC１００に内蔵する各構成部分に電力を供給する。また、必要に応じて構成部分毎に電力を供給したり遮断したりすることができる。たとえば、サスペンドに移行した時にはメモリ１０２に電力を供給したままにするが、他の構成部分の電力は遮断する場合が考えられる。
【００２０】
本実施形態では、CPU系列の依存性のなく、かつ、各種デバイスに柔軟に対応可能なOSであるLinux（登録商標）を例にとって、ハイバネーション制御を適用するものである。一般に、OSは、少なくとも、（1）周辺機器を管理するデバイスドライバ、（2）メモリの管理、（3）ファイルシステムの管理の機能を備える。係るOSの中核となる基本的な機能を担う部分がOSのカーネル（Kernel）であり、コンピュータのどの部分にでもアクセスできるカーネル・モード（Kernel Mode）で動作する。
【００２１】
コンピュータで稼働しているソフトウェアの機能は、レイヤ（層）構成で見ることができる。図２は、本実施形態に係るハイバネーション制御が実装される情報処理装置のレイヤ構成を示す図である。図２に示すように、このレイヤ構成は、アプリケーションレイヤと、OSレイヤと、デバイスドライバレイヤと、ハードウェアレイヤとから成っている。
【００２２】
アプリケーションレイヤは、最上位のレイヤであって、OSの上位レイヤのソフトウェア群である。
【００２３】
OSレイヤは、アプリケーションレイヤの下位に位置するレイヤであって、ハードウェアの制御をはじめ、タスク（仕事）やファイルシステムの管理、ネットワークへの接続など、システムの基幹的な機能を担う。OSカーネルが稼働している下位レイヤはカーネル空間やカーネル・モードと呼ばれるものである。係るOSカーネルとしては、例えば、Linux（登録商標）カーネルが相当する。このLinux（登録商標）カーネルに代表されるOSは、各種CPU系列、デバイスに柔軟に対応できるようになっている。すなわち、デバイスおよびCPU系列非依存部とCPU系列依存部とに実装が分かれている。本実施形態に係るハイバネーション制御は、デバイス、CPU系列非依存部に実装される。
【００２４】
デバイスドライバレイヤは、OSのCPU系列依存部、ハードウェア制御のためのデバイスドライバと、ハードウェアの無いクラスドライバやミドルウェアドライバとに大別される。
【００２５】
ハードウェアレイヤは、CPUのレジスタやメモリ管理部、レジュームに必要なハードウェア、その他ハードウェアと成っている。レジュームに必要なハードウェアには、例えば、サスペンドイメージが格納される不揮発記憶装置が該当する。ここで、サスペンドイメージとは、サスペンドの際に、待避するデータの全体を指す。その他ハードウェアは、例えば、USBメモリ、マウス、キーボード等が該当し、OSが直接に電源の管理を行っていないハードウェアである。
【００２６】
従来は、レジューム後、制御可能になるように、それぞれ初期化されていた。本実施形態に係るレジューム処理について分かり易くするため、ここで、従来のレジューム処理の流れを図３により、簡単に説明する。
【００２７】
図３に示すように、まず、Boot Loaderの処理、カーネルメモリ展開、カーネル起動を実行する（ステップS301）。次いでページテーブル、マシン依存部、タイマ、スケジューラ、割込みテーブルの初期化を実行する（ステップS302）。次いで、プロセス生成のためのCPU設定を実行する（ステップS303）。その後、サブシステム（バス等）の初期化を実行する（ステップS304）。続いて、ファイルシステムのマウントを実行（ステップS305）し、ルートファイルシステムを初期化し（ステップS306）、デバイスドライバを初期化し（ステップS307）、I/Oスケジューラを初期化する（ステップS308）。その後、レジューム処理を実行する（ステップS309）。
【００２８】
ここでの、レジューム処理としては、プロセススケジューリングの停止、デバイスの休止、サスペンドイメージをメモリに展開、CPUの各レジスタをサスペンド前の状態に復元、デバイスの各レジスタをサスペンド前の状態に復元、サスペンドイメージをメモリに展開、プロセススケジューリングの再開が順次実行される。レジューム処理実行後、サスペンド前のプロセスの再開（ステップS310）を行っている。
【００２９】
これに対して、以下に本実施形態におけるレジューム処理の流れを図４にしたがって説明する。図４に示すように、まず、Boot Loaderの処理、カーネルメモリ展開、カーネル起動を実行する（ステップS401）。次いでページテーブル、マシン依存部、タイマ、スケジューラ、割込みテーブルの初期化を実行する（ステップS402）。次いで、プロセス生成のためのCPU設定を実行する（ステップS403）。その後、サブシステム（バス等）の初期化を実行する（ステップS404）。
【００３０】
基本的には、ここまでの流れは従前と同じである。その後、カーネルが直接電源管理するデバイスドライバ及びサスペンドイメージ読込みに必要なデバイスドライバの初期化を実行（ステップS405）し、I/Oスケジューラを初期化する（ステップS406）。その後、レジューム処理を実行する（ステップS407）。
【００３１】
ここでの、レジューム処理としては、プロセススケジューリングの停止、デバイスの休止、サスペンドイメージをメモリに展開、CPUの各レジスタをサスペンド前の状態に復元、デバイスの各レジスタをサスペンド前の状態に復元、サスペンドイメージをメモリに展開、プロセススケジューリングの再開が順次実行される。レジューム処理実行後、サスペンド前のプロセスの再開（ステップS408）を行う。
【００３２】
デバイスドライバレイヤが管理するハードウェアのうち、レジュームに必要なハードウェア、すなわちOSの起動に必要なものあるいはサスペンドイメージを保存する不揮発記憶装置等のデバイスは、レジューム時においても初期化が必要である。
【００３３】
一方、その他のハードウェアも初期化が必要であるが、レジューム時にすぐに初期化が必要ではない。
【００３４】
そこで、サスペンド前の処理の再開後に並行して初期化されるように実装される。そして、特段、管理するハードウェアを持たないデバイスドライバは、サスペンドイメージに保存されたメモリの情報を、レジューム後にそのまま使うことにより、初期化の必要がないように実装される。
【００３５】
本実施形態では、ファイルシステムマウント、ルートファイルシステム初期化、及び上記以外のデバイスドライバの初期化は、復元されたサスペンドイメージの中の、サスペンド前のカーネルの起動時の初期化データを使用するので実行しないのである。
【００３６】
図５は、Linux（登録商標）カーネルにおける初期化処理の手順において、レジューム処理開始のタイミングを説明する図である。Linux（登録商標）カーネルにおける初期化処理は、Linux INIT_CALLルーチンで実行される。また、図６はinitcallの種類と、優先度を表わすレベル、処理内容をそれぞれ表にしたものである。
【００３７】
図６に示すように、pure_initcallは、初期化処理の先頭のセクションで実行するもので、レベル０である。core_initcallコンソールやカーネルなどの初期化セクションで実行するもので、レベル１である。postcore_initcallは、ハードウェアやPM等固有の初期化セクションで実行するもので、レベル２である。arch_initcallは、ハードウェアやPM等の固有の初期化セクションで実行するもので、レベル３である。subsys_initcallは、バス等のサブシステムの初期化セクションで実行するもので、レベル４である。fs_initcallは、ファイルシステムの初期化セクションで実行するもので、レベル５である。rootfs_initcallは、ルートファイルシステムの初期化セクションで実行するもので、レベルRootfsである。device_initcallは、デバイスドライバの初期化セクションで実行するもので、レベル６である。late_initcallは、初期化処理の最後のセクションで実行するもので、レベル７である。尚、レベル1S、レベル2S、レベル3S、レベル4S、レベル5S、レベル6S、レベル7Sは、各レベルの終了を同期として実行するものである。  図５に示すように、実行の優先度の最も高いレベル０から、レベル3Sまで順次実行する。続いて、レベル4において、I/Oスケジューラや一部デバイスの初期化を実行する。すなわち、これらの初期化処理の優先度をあげている。続いて、レベル4Sのサブシステム（例えば、バス等）の初期化(subsys_initcall_sync）の直後において、サスペンドイメージを復元する。このレベル（優先度）での復元の結果、各デバイスを初期化したときのサスペンドイメージは、既に保持していることになる。そのため、本実施形態のカーネルの初期化処理では、レベル5乃至レベル7までの手順は、実行しないのである。すなわち、サスペンドイメージの復元後は、装置のメモリにのみデータが存在するデバイスを管理するミドルウェアドライバやクラスドライバ及びファイルシステムなどの初期化は実行しない。一方、レジューム処理に直接必要としないデバイスの初期化は、レジューム完了後に実行する。
【００３８】
本実施形態によれば、レジューム処理に必要な最小限度のハードウェア、例えば、カーネルが直接電源管理するデバイス、サスペンドイメージを記憶するデバイス、I/Oスケジューラなどの初期化のみをレジューム処理の前に実行するので、レジューム処理に要する時間を短縮することができる。
【００３９】
なお、本発明は上記の実施形態のそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図２】ハイバネーション制御が実装される情報処理装置のレイヤ構成を示す図である。
【図３】従来のレジューム処理の流れを示すフローチャートである。
【図４】本実施形態におけるレジューム処理の流れを示すフローチャートである。
【図５】Linux（登録商標）カーネルにおける初期化処理の手順において、レジューム処理開始のタイミングを説明する図である。
【図６】initcallの種類と、優先度を表わすレベル、処理内容を示す表である。
【符号の説明】
【００４１】
１０１・・・ＣＰＵ、１０２・・・メモリ、１０３・・・入力装置、１０４・・・表示装置、１０５・・・記憶装置、１０６・・・内部バス、１０７・・・電源部、１００・・・ＰＣ。
【図１】
2010157017.tif 000003
【図２】
2010157017.tif 000004
【図３】
2010157017.tif 000005
【図４】
2010157017.tif 000006
【図５】
2010157017.tif 000007
【図６】
2010157017.tif 000008