(57)【要約】【課題】周辺機器の初期化方法及びそれを用いる電子機器を提供する。【解決手段】電子機器は、ハイバネーション型またはウェークアップ型ブーティング機能を有しており、レジスタを有する一つまたは複数の周辺機器と、データ記憶モジュールを有するメモリと、コマンド抽出モジュールとを含む。電子機器が非ハイバネーション回復または非ウェークアップコールドブーティングを行って一つまたは複数の周辺機器の初期化プロセスを実行する場合に、コマンド抽出モジュールは、一つまたは複数の周辺機器の駆動プログラム実行プロセスから、複数のハードウェアのレジスタ設定を抽出してデータ記憶モジュールに記憶するとともに、複数のハードウェアのレジスタ設定をソーティングまたはタンデム接続することでハードウェアのレジスタ設定のシリーズを形成する。【選択図】図３
2017111788.tif 000002
【特許請求の範囲】
【請求項１】
電子機器であって、
一つまたは複数のレジスタをそれぞれ有する一つまたは複数の周辺機器と、
データ記憶モジュールを有するメモリと、
前記電子機器が非ハイバネーション回復または非ウェークアップコールドブーティングを行って前記一つまたは複数の周辺機器の初期化プロセスを実行する場合に、前記一つまたは複数の周辺機器の駆動プログラム実行プロセスから複数のハードウェアのレジスタ設定を抽出して前記データ記憶モジュールに記憶し、前記データ記憶モジュールに記憶された前記複数のハードウェアのレジスタ設定をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定のシリーズを形成するように設置されたコマンド抽出モジュールと、を備え、
前記一つまたは複数の周辺機器は、前記電子機器がハイバネーション回復またはウェークアップによって再度コールドブーティングを行って前記一つまたは複数の周辺機器の初期化プロセスを実行する場合に、該ハードウェアのレジスタ設定のシリーズをもって前記一つまたは複数の周辺機器を初期化するように設置されることを特徴とする電子機器。
【請求項２】
前記データ記憶モジュールはデータ構造またはアレイであることを特徴とする請求項１に記載の電子機器。
【請求項３】
前記複数のハードウェアのレジスタ設定は複数のハードウェアコマンドであることを特徴とする請求項１に記載の電子機器。
【請求項４】
前記ハードウェアのレジスタ設定のシリーズはハードウェアコマンドのシリーズあることを特徴とする請求項１に記載の電子機器。
【請求項５】
前記データ記憶モジュールは、前記一つまたは複数の周辺機器のそれぞれを表す一つまたは複数のノードを有し、
前記ノードは、関連性によって前記周辺機器の依存性を示すことを特徴とする請求項１に記載の電子機器。
【請求項６】
前記一つまたは複数のノードは前記複数のハードウェアのレジスタ設定および前記複数のハードウェアのレジスタ設定を実行する時間を記憶する一つまたは複数のバッファーを有することを特徴とする請求項５に記載の電子機器。
【請求項７】
前記コマンド抽出モジュールは、ソフトウェアのモニタプログラムコードであり、ページフォールト処理により前記一つまたは複数のレジスタをモニタすることで前記複数のハードウェアのレジスタ設定を抽出するように設置されることを特徴とする請求項１に記載の電子機器。
【請求項８】
サブバスをさらに備え、
前記コマンド抽出モジュールは、ソフトウェアのモニタプログラムコードであり、前記サブバスのデータ伝送インタフェースを介して前記一つまたは複数のレジスタをモニタすることで前記複数のハードウェアのレジスタ設定を抽出するように設置されることを特徴とする請求項１に記載の電子機器。
【請求項９】
システムバスをさらに備え、
前記コマンド抽出モジュールは、ハードウェアのバスモニターであり、前記システムバスを介して前記一つまたは複数のレジスタのアクセス動作をモニタすることで前記複数のハードウェアのレジスタ設定を抽出するように設置されることを特徴とする請求項１に記載の電子機器。
【請求項１０】
最適化演算法に基づいて前記ハードウェアのレジスタ設定のシリーズのアクセス順を最適化させることで、最適化されたハードウェアのレジスタ設定のシリーズを形成するシリーズ最適化モジュールをさらに備えることを特徴とする請求項１に記載の電子機器。
【請求項１１】
前記電子機器が前記ハイバネーション回復またはウェークアップによって再度コールドブーティングを行って前記一つまたは複数の周辺機器の初期化プロセスを実行する場合に、前記一つまたは複数の周辺機器は前記最適化されたハードウェアのレジスタ設定のシリーズをもって初期化されるように設置されることを特徴とする請求項１０に記載の電子機器。
【請求項１２】
周辺機器の初期化方法であって、
ハイバネーション型またはウェークアップ型ブーティング機能を有し、一つまたは複数のレジスタを有する一つまたは複数の周辺機器と、データ記憶モジュールを有するメモリと、を有する電子機器を提供するステップと、
前記電子機器が非ハイバネーション回復または非ウェークアップコールドブーティングを行って前記一つまたは複数の周辺機器の初期化プロセスを実行する場合に、前記一つまたは複数の周辺機器の駆動プログラム実行プロセスから複数のハードウェアのレジスタ設定を抽出して、前記複数のハードウェアのレジスタ設定を前記データ記憶モジュールに記憶し、前記データ記憶モジュールに記憶された前記複数のハードウェアのレジスタ設定をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定のシリーズを形成するステップと、
前記電子機器がハイバネーション回復またはウェークアップによって再度コールドブーティングを行って前記一つまたは複数の周辺機器の初期化プロセスを実行する場合に、該ハードウェアのレジスタ設定のシリーズをもって前記一つまたは複数の周辺機器を初期化するステップと、を有することを特徴とする周辺機器の初期化方法。
【請求項１３】
前記データ記憶モジュールはデータ構造またはアレイであり、
前記複数のハードウェアのレジスタ設定は複数のハードウェアコマンドであり、
前記ハードウェアのレジスタ設定のシリーズはハードウェアコマンドのシリーズであることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記データ記憶モジュールは、前記一つまたは複数の周辺機器のそれぞれを表す一つまたは複数のノードを有し、
前記ノードは、関連性によって前記周辺機器の依存性を示すことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記一つまたは複数のノードは前記複数のハードウェアのレジスタ設定および前記複数のハードウェアのレジスタ設定を実行する時間を記憶する一つまたは複数のバッファーを有することを特徴とする請求項１４に記載の方法。
【請求項１６】
ソフトウェアのモニタプログラムコードに、ページフォールト処理により前記一つまたは複数のレジスタをモニタすることで前記複数のハードウェアのレジスタ設定を抽出させるステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１７】
ソフトウェアのモニタプログラムコードに、前記電子機器のサブバスのデータ伝送インタフェースを介して前記一つまたは複数のレジスタをモニタすることで前記複数のハードウェアのレジスタ設定を抽出させるステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１８】
ハードウェアのバスモニターに、前記電子機器のシステムバスを介して前記一つまたは複数のレジスタをモニタすることで前記複数のハードウェアのレジスタ設定を抽出させるステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１９】
最適化演算法に基づいて前記ハードウェアのレジスタ設定のシリーズのアクセス順を最適化させることで、最適化されたハードウェアのレジスタ設定のシリーズを形成するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項２０】
前記電子機器が前記ハイバネーション回復またはウェークアップによって再度コールドブーティングを行って前記一つまたは複数の周辺機器の初期化プロセスを実行する場合に、前記最適化されたハードウェアのレジスタ設定のシリーズをもって前記一つまたは複数の周辺機器を初期化することを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２０１５年１２月１４日付け台湾知的財産局に出願した出願番号第１０４１４１９０２号の優先権を主張し、それの内容を参照することにより全てを本願に含むものとする。
【０００２】
本発明は、クイックブーティング（Ｑｕｉｃｋ  Ｂｏｏｔｉｎｇ）技術に関し、特に周辺機器の初期化方法及びそれを用いる電子機器に関するものである。
【背景技術】
【０００３】
スマートフォンや、スマート家電、装着型デバイス、インターネット機器等のような電子機器は、クイックブーティング機能によって、「瞬時起動瞬時利用」機能が可能となっており、デジタル情報をより取得しやすくなっている。しかしながら、多くの電子機器は、電源がオフとされても、本当のシャットダウンモードに入らずにスタンバイ（ｓｔａｎｄｂｙ）モードに入る。スタンバイモードは電子機器のブーティング時間を効果的に短縮することができるが、電子機器全体は依然として電力を持続的に消費し、やや高電力消費状態にあるため、大気中への二酸化炭素の排出量が増加する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、ハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器の電力消費を低減するためには、図１、２に示すように、ハイバネーション状態において、電子機器をシャットダウンして本当のシャットダウンモードまたはハイバネーションモードの低消費電力状態を維持させ、ブーティングの場合にはハイバネーションブーティング機能によりコールドブーティングさせたほうが好適である。
【０００５】
図１に、従来のハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器をシャットダウンするフローチャートを示す。図１に示すように、ステップＳ０１において、電子機器のハイバネーションの準備、即ちフリーズ（Ｆｒｅｅｚｅ）プロセスが実行される。ステップＳ０２において、電子機器におけるアプリケーションプログラムに関する第１のスナップショットイメージ（ｓｎａｐｓｈｏｔ  ｉｍａｇｅ）が確立される。ステップＳ０３において、電子機器の一つまたは複数の周辺機器が停止（ｓｕｓｐｅｎｄ）される。
【０００６】
また、ステップＳ０４において、電子機器におけるオペレーティングシステムのカーネル（ｋｅｒｎｅｌ）に関する第２のスナップショットイメージが確立される。ステップＳ０５において、電子機器の永続性記憶装置に第１のスナップショットイメージと第２のスナップショットイメージとが書き込まれる。ステップＳ０６において、電子機器の電源がシャットダウン（ｐｏｗｅｒ  ｏｆｆ）される。
【０００７】
図２に、従来のハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器をコールドブーティングするフローチャートを示す。図２に示すように、ステップＳ１１において、電子機器がコールドブーティングされる。ステップＳ１２において、電子機器のブートローダー（ｂｏｏｔ−ｌｏａｄｅｒ）プログラムが実行される（約１秒）。ステップＳ１３において、カーネル及び周辺機器が初期化される（約２．８秒）。ステップＳ１３には、一つまたは複数の周辺機器の複数のソフトウェア設定（メモリ内）を実行するステップＳ１３１と、複数のハードウェアのレジスタ設定（周辺機器内）を実行するステップＳ１３２とが含まれる。
【０００８】
そして、ステップＳ１４において、永続性記憶装置から第２のスナップショットイメージがロードされる（約０．８秒）。ステップＳ１４には、一つまたは複数の周辺機器のハイバネーション前のソフトウェア設定を回復（ｒｅｓｕｍｅ）するステップＳ１４１が含まれる。ステップＳ１５において、一つまたは複数の周辺機器が回復される（約２．４秒）。ステップＳ１５には、複数のハードウェアのハイバネーション前のレジスタ設定を回復するステップＳ１５１が含まれる。ステップＳ１６において、永続性記憶装置から第１のスナップショットイメージがロードされる（約３．０秒）。ステップＳ１７において、電子機器のウェークアッププロセス（ｔｈａｗ  ｐｒｏｃｅｓｓ）が実行される。
【０００９】
上記のように、図２に示す電子機器の約１０秒間のコールドブーティングプロセスでは、ステップＳ１３におけるカーネル及び周辺機器の初期化に要する２．８秒に、ステップＳ１５における一つまたは複数の周辺機器の回復に要する２．４秒を加算すると、合計５．２秒になる。これは、ステップＳ１３における一つまたは複数の周辺機器の初期化のときに、「複数のソフトウェアを設定するステップＳ１３１」と「複数のハードウェアのレジスタを設定するステップＳ１３２」を実行する必要があるので、一つまたは複数の周辺機器の初期化時間及び回復時間が長くなり、電子機器のブーティング時間が遅くなるためである。
【００１０】
従って、上記従来技術の問題を克服する技術が求められている。
【課題を解決するための手段】
【００１１】
そこで、本発明は、周辺機器の初期化プロセスを簡略化させ、電子機器のブーティング時間を短縮する周辺機器の初期化方法およびそれを用いる電子機器を提供することを課題とする。
【００１２】
本発明に係る実施例は、ハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器であって、
一つまたは複数のレジスタを有する一つまたは複数の周辺機器と、
データ記憶モジュールを有するメモリと、
電子機器が非ハイバネーション回復または非ウェークアップコールドブーティングを行って一つまたは複数の周辺機器の初期化プロセスを実行する場合に、一つまたは複数の周辺機器の駆動プログラム実行プロセスから複数のハードウェアのレジスタ設定及びそれに関連する情報を抽出してデータ記憶モジュールに記憶し、データ記憶モジュールに記憶された複数のハードウェアのレジスタ設定をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定のシリーズを形成するコマンド抽出モジュールと、を備え、
電子機器がハイバネーション回復またはウェークアップによって再度コールドブーティングを行って一つまたは複数の周辺機器の初期化プロセスを実行する場合に、該ハードウェアのレジスタ設定のシリーズをもって一つまたは複数の周辺機器を初期化することを特徴とする電子機器を提供する。
【００１３】
本発明に係る周辺機器の初期化方法の実施例は、ハイバネーション型またはウェークアップ型ブーティング機能を有し、
一つまたは複数のレジスタを有する一つまたは複数の周辺機器と、
データ記憶モジュールを有するメモリと、を有する電子機器を提供するステップと、
電子機器が非ハイバネーション回復または非ウェークアップコールドブーティングを行って一つまたは複数の周辺機器の初期化プロセスを実行する場合に、一つまたは複数の周辺機器の駆動プログラム実行プロセスから複数のハードウェアのレジスタ設定及びそれに関連する情報を抽出して、複数のハードウェアのレジスタ設定及びそれに関連する情報をデータ記憶モジュールに記憶し、データ記憶モジュールに記憶された複数のハードウェアのレジスタ設定をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定のシリーズを形成するステップと、
電子機器がハイバネーション回復またはウェークアップによって再度コールドブーティングを行って一つまたは複数の周辺機器の初期化プロセスを実行する場合に、該ハードウェアのレジスタ設定のシリーズをもって一つまたは複数の周辺機器を初期化することを特徴とする周辺機器の初期化方法を提供する。
【００１４】
下記本発明の好ましい実施例と対照の図面を参酌すれば、本発明を容易に理解できるようになる。
【図面の簡単な説明】
【００１５】
【図１】従来のハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器をシャットダウンするフローチャートを示す図である。
【図２】従来のハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器をコールドブーティングするフローチャートを示す図である。
【図３】本発明の実施例に係るハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器を示すブロック図である。
【図４】本発明の実施例に係るハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器をコールドブーティングするフローチャートを示す図である。
【図５】一つまたは複数の周辺機器の初期化プロセスの実施例を示す模式図である。
【図６】本発明に係る一つまたは複数の周辺機器の駆動プログラムをハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）として形成する実施例を示す模式図である。
【図７】本発明に係る一つまたは複数の周辺機器の駆動プログラムをハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）として形成する他の実施例を示す模式図である。
【図８】本発明に係る最適化演算法によりハードウェアコマンドのシリーズ（ハードウェアのレジスタ設定のシリーズ）を最適化して、最適化されたハードウェアコマンドのシリーズ（最適化されたハードウェアのレジスタ設定のシリーズ）を形成する実施例を示す模式図である。
【図９Ａ】本発明に係る一つまたは複数の周辺機器のそれぞれを表す一つまたは複数のノードからなるデータ構造（例えば、ツリー状構造）を示す模式図である。
【図９Ｂ】図９Ａに示す複数の周辺機器の実行プロセスの実施例を示す模式図である。
【図１０】本発明に係るデータ構造のプログラムコードの実施例を示す模式図である。
【図１１】本発明に係るページフォールト処理により周辺機器のレジスタをモニタしてハードウェアのレジスタ設定（ハードウェアコマンド）を抽出する実施例を示す模式図である。
【図１２Ａ】本発明に係るハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器が非ハイバネーション回復または非ウェークアップコールドブーティングを行うフローチャートを示す図である。
【図１２Ｂ】本発明に係る周辺機器の初期化方法の実施例を示すフローチャートである。
【図１３】本発明に係るハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器がハイバネーション回復またはウェークアップによって再度コールドブーティングする場合の実施例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、具体的に実施例を用いて本発明の実施形態を説明する。この技術分野における通常の知識を有する者であれば、本明細書の記載内容によって本発明の利点や効果を容易に理解でき、本発明の異なる具体的な実施形態を実行したり応用したりすることができる。明細書に記載の「一つまたは複数」は、「少なくとも１つ」と読み替えてもよい。
【００１７】
図３に、本発明の実施例に係るハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器１のブロック図を示す。図３に示すように、電子機器１は、ハイバネーション型またはウェークアップ型ブーティング機能を有しており、レジスタ２１を有する一つまたは複数の周辺機器２と、データ記憶モジュール４１を有するメモリ３と、カーネル４０を有するオペレーティングシステム４と、コマンド抽出モジュール４２（またはコマンド抽出モジュール４２’）と、シリーズ最適化モジュール４３と、ハードウェアコマンド４４１及びソフトウェアコマンド４４２を有する一つまたは複数の駆動プログラム４４と、マッピングテーブル４５１及びページフォールト（ｐａｇｅ  ｆａｕｌｔ）処理ユニット４５２を有するメモリ管理モジュール４５と、バス５とを含む。
【００１８】
電子機器１が非ハイバネーション回復または非ウェークアップコールドブーティング（例えば１回目のコールドブーティング）を行って一つまたは複数の周辺機器２の初期化プロセスを実行する場合、コマンド抽出モジュール４２は、一つまたは複数の周辺機器２の駆動プログラム４４の実行プロセスから、複数のソフトウェア設定（ソフトウェアコマンド４４２）ではなく、複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）及びそれに関連する情報（例えばハードウェアコマンドを実行する時間またはコマンド間隔）を抽出する。それと同時に、コマンド抽出モジュール４２は、複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）及びそれに関連する情報をデータ記憶モジュール４１に記憶して、データ記憶モジュール４１に記憶された複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）を形成する。
【００１９】
シリーズ最適化モジュール４３は最適化された複数のハードウェアのレジスタ設定のシリーズによる最適化演算法により、複数のハードウェアのレジスタ設定のシリーズを最適化する。
【００２０】
そして、電子機器１がハイバネーション回復またはウェークアップによって再度コールドブーティング（例えば二回目のコールドブーティング等）を行って、一つまたは複数の周辺機器２の初期化プロセスを実行する場合に、該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）をもって一つまたは複数の周辺機器２を初期化する。
【００２１】
電子機器１はスマートフォンや、スマート家電、装着型デバイス、インターネット機器等であってもよく、メモリ３は揮発性メモリや、非揮発性メモリ等であってもよく、データ記憶モジュール４１はデータ構造や、アレイ等であってもよく、データ構造はツリー状構造や、リスト（ＬＩＳＴ）構造等であってもよく、アレイはコマンドアレイ等であってもよく、バス５はシステムバスや、サブバス等であってもよいが、それらに限定されるものではない。
【００２２】
オペレーティングシステム４及びそのカーネル４０はメモリ３に含まれてもよく、データ記憶モジュール４１、コマンド抽出モジュール４２、シリーズ最適化モジュール４３及びメモリ管理モジュール４５はカーネル４０に含まれてもよい。データ記憶モジュール４１、コマンド抽出モジュール４２及びシリーズ最適化モジュール４３の３つのプログラムコードは、オペレーティングシステム４において、単一のコンポーネントに集約されるプログラムコードの組み合わせであってもよく、複数のコンポーネントに分散されるプログラムコードの組み合わせであってもよい。
【００２３】
図４に、本発明の実施例に係るハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器１をコールドブーティングするフローチャートを示す。図４及び図３に示すように、ステップＳ２１において、電子機器１のコールドブーティングが行われる。ステップＳ２２において、電子機器１のブートローダープログラムが実行される。ステップＳ２３において、該ハードウェアのレジスタ設定（ハードウェアコマンド４４１）のシリーズを実行するステップＳ２３１が実行され、カーネル４０及び一つまたは複数の周辺機器２が初期化される。
【００２４】
そして、ステップＳ２４において、一つまたは複数の周辺機器２のハイバネーション前のソフトウェア設定（ソフトウェアコマンド４４２）を回復するステップＳ２４１が実行され、電子機器の永続性記憶装置（図示せず）から第２のスナップショットイメージがロードされる。ステップＳ２５において、複数のハードウェアのハイバネーション前のレジスタ設定（ハードウェアコマンド４４１）を回復するステップＳ２５１が実行され、一つまたは複数の周辺機器２が回復される。ステップＳ２６において、永続性記憶装置から第１のスナップショットイメージがロードされる。ステップＳ２７において、電子機器１のウェークアッププロセスが実行される。
【００２５】
上記のように、従来技術を示す図２の「一つまたは複数の周辺機器が初期化される」ステップＳ１３では、「複数のソフトウェア設定」及び「複数のハードウェアのレジスタ設定」をそれぞれ実行するステップＳ１３１及びステップＳ１３２が必要であるため、一つまたは複数の周辺機器の初期化時間及び電子機器のブーティング時間が長くなる。これに対して、本発明の図４の「一つまたは複数の周辺機器２が初期化される」ステップＳ２３では、ステップＳ２３１の「ハードウェアのレジスタ設定（シリーズ化ハードウェアコマンド）のシリーズ」のみを実行すれば、一つまたは複数の周辺機器２の初期化プロセスを簡略化することができ、一つまたは複数の周辺機器２の初期化時間及び電子機器１のブーティング時間を短縮することができる。
【００２６】
ここで注意すべき点は、本発明に係る電子機器１は、シャットダウンフローチャートの実施例が図１に示す従来のシャットダウンフローチャートと同様または類似であるため、詳しい説明は省略する。
【００２７】
図５に、一つまたは複数の周辺機器２の初期化プロセスの実施例の模式図を示す。図５及び図３に示すように、電子機器１が非ハイバネーション回復または非ウェークアップのような１回目のコールドブーティング、及びその後のハイバネーション回復またはウェークアップコールドブーティングが行われる度に、一つまたは複数の周辺機器２の初期化プロセスが同じ（一定）である場合には、初期化プロセスが、駆動プログラム４４の複数のハードウェア設定Ｈ１〜Ｈ４（ハードウェアコマンド４４１）と複数のソフトウェア設定Ｓ１〜Ｓ３（ソフトウェアコマンド４４２）とを交替に実行する場合、その後のハイバネーションから回復される度の状態またはウェークアップされて初期化される度の状態は、一つまたは複数の周辺機器２の一回目の初期化後状態と同様になる。これは、同一の初期化状態を有する一つまたは複数の周辺機器２が同一の初期化プロセスを行うと、同一の初期化された状態になることを意味する。
【００２８】
図６に、本発明に係る一つまたは複数の周辺機器２の駆動プログラム４４をハードウェアのレジスタ設定（シリーズ化ハードウェアコマンド）のシリーズとして形成する実施例の模式図を示す。図６及び図３に示すように、一つまたは複数の周辺機器２の駆動プログラムが一定の場合、同一の初期状態を有する一つまたは複数の周辺機器２は、複数のハードウェアのレジスタ設定Ｈ（例えばＨ１〜Ｈ４）またはハードウェアコマンド４４１を行うと、同一の状態になる。言い換えれば、複数のハードウェアのレジスタ設定Ｈ（例えばＨ１〜Ｈ４）またはハードウェアコマンド４４１だけは、一つまたは複数の周辺機器２の状態に影響を及ぼすが、複数のソフトウェア設定Ｓ（例えばＳ１〜Ｓ３）またはソフトウェアコマンド４４２は、一つまたは複数の周辺機器２の状態に影響を及ぼさない。
【００２９】
従って、上記により、本発明は、一つまたは複数の周辺機器２の駆動プログラム４４の実行プロセスから、複数のハードウェアのレジスタ設定Ｈ（例えばＨ１〜Ｈ４）またはハードウェアコマンド４４１を抽出するとともに、複数のハードウェアのレジスタ設定Ｈ（例えばＨ１〜Ｈ４）またはハードウェアコマンド４４１をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定のシリーズまたはハードウェアコマンドのシリーズを形成することができる。
【００３０】
図７に、本発明に係る一つまたは複数の周辺機器２の駆動プログラム４４をハードウェアのレジスタ設定（シリーズ化ハードウェアコマンド）のシリーズとして形成する他の実施例の模式図を示す。図７及び図３に示すように、一つまたは複数の周辺機器２の本来の初期化プロセスを、一つまたは複数の駆動プログラム４４の複数のソフトウェア設定Ｓ１〜Ｓ７（ソフトウェアコマンド４４２）と複数のハードウェアのレジスタ設定Ｈ１〜Ｈ７（ハードウェアコマンド４４１）とを交互に実行するように設定すると、本来の駆動プログラム４４が実行される時間はＴａとなる。
【００３１】
一方、本発明では、一つまたは複数の駆動プログラム４４の実行プロセスから複数のハードウェアのレジスタ設定Ｈ１〜Ｈ７（ハードウェアコマンド４４１）を抽出するとともに複数のハードウェアのレジスタ設定Ｈ１〜Ｈ７（ハードウェアコマンド４４１）をソーティングまたはタンデム接続することで、ハードウェアのレジスタ設定（シリーズ化ハードウェアコマンド）のシリーズを形成するため、一つまたは複数の駆動プログラム４４のシリーズが実行される時間はＴｂとなる。従って、本発明では、一つまたは複数の駆動プログラム４４の複数のソフトウェア設定Ｓ１〜Ｓ７の実行時間が不要となり、一つまたは複数の駆動プログラム４４の実行時間はＴｃ（即ちＴａ−Ｔｂ）分が短縮される。
【００３２】
図８に、本発明に係る最適化演算法によりハードウェアコマンドのシリーズ（Ｔｍ１を参照）またはハードウェアのレジスタ設定のシリーズを最適化して、最適化されたハードウェアコマンドのシリーズ（Ｔｍ３を参照）または最適化されたハードウェアのレジスタ設定のシリーズを形成する実施例の模式図を示す。
【００３３】
図８及び図３に示すように、３つの周辺機器２Ａ〜２Ｃのハードウェアコマンドのシリーズ（Ｔｍ１を参照）は複数のハードウェアコマンド４４１（例えばハードウェアコマンドＡ１〜Ａ６、Ｂ１〜Ｂ５、Ｃ１〜Ｃ６）がソーティングまたはタンデム接続してなる場合、シークエンスＴｍ１は、ハードウェアコマンドのシリーズの複数のハードウェアコマンド４４１（例えばＡ１〜Ａ６、Ｂ１〜Ｂ５、Ｃ１〜Ｃ６）を実行する時間Ｔ１〜Ｔｎからなる。一方、シークエンスＴｍ２（Ｔｍ２を参照）は、バス５においてハードウェアコマンドのシリーズの複数のハードウェアコマンド４４１の伝送にかかる時間Ｔ１’〜Ｔｎ’を含み、シークエンスＴｍ２において、複数のハードウェアコマンド４４１（例えばＡ３、Ａ５、Ｂ３、Ｂ４、Ｂ５）の間には一つまたは複数のアイドリング時間ｉｄｌｅ（Ｔｍ２を参照）ができてしまう。アイドリング時間ｉｄｌｅは、バス５においてハードウェアコマンド４４１（例えばＡ３、Ａ５、Ｂ３、Ｂ４、Ｂ５）が実行完了を待つ待機時間であってもよく、一つまたは複数のハードウェアコマンド４４１が伝送される時間の超過部分であってもよい。
【００３４】
従って、本発明では、シリーズ最適化モジュール４３の最適化演算法により該ハードウェアコマンドのシリーズ（Ｔｍ１を参照）またはハードウェアのレジスタ設定のシリーズのアクセス順を最適化することで、最適化されたハードウェアコマンドのシリーズ（Ｔｍ３を参照）または最適化されたハードウェアのレジスタ設定のシリーズを形成することができる。例えば、シリーズ最適化モジュール４３の最適化演算法によって、複数のハードウェアコマンド４４１（例えばＢ１〜Ｂ４、Ｃ１〜Ｃ６）を一つまたは複数のアイドリング時間ｉｄｌｅ（Ｔｍ２を参照）に次々に挿入することができる。これにより、最適化されたハードウェアコマンドのシリーズ（Ｔｍ３を参照）または最適化されたハードウェアのレジスタ設定のシリーズを形成することができる。そして、電子機器１が再度コールドブーティング（例えば二回目のコールドブーティング等）を行って一つまたは複数の周辺機器２の初期化プロセスを実行する場合に、該最適化されたハードウェアコマンドのシリーズ（Ｔｍ３を参照）または最適化されたハードウェアのレジスタ設定のシリーズをもって一つまたは複数の周辺機器２を初期化することができる。
【００３５】
この実施例において、最適化演算法は、バス５を介してハードウェアコマンドのシリーズ（例えばシークエンスＴｍ１におけるＡ１〜Ａ６、Ｂ１〜Ｂ５、Ｃ１〜Ｃ６）を該最適化されたハードウェアコマンドのシリーズ（例えばシークエンスＴｍ３におけるＡ１、Ａ２、Ａ３、Ｂ１、・・・、Ｃ６）となるようにソーティングまたはタンデム接続することができる。該最適化されたハードウェアコマンドのシリーズのシークエンスＴｍ３は、複数の指令時間Ｔ１’、Ｔ２’、Ｔ３’、Ｔ７‘、・・・、Ｔｎ’）からなり、複数の指令時間Ｔ１’〜Ｔｎ’は、同一でも同一でなくてもよい。このように、本発明において、バス５によって実行時間はＴｄ分が短縮される。
【００３６】
図９Ａに、本発明に係る一つまたは複数の周辺機器２（例えばＬ１１〜Ｌ１３、Ｌ２１〜Ｌ２３、Ｌ３１）を表す一つまたは複数のノードＮ（例えばＮ２〜Ｎ８）からなるデータ構造３１（例えば、ツリー状構造）の実施例の模式図を示す。図９Ｂに、図９Ａに示す一つまたは複数の周辺機器２（例えばＬ１１〜Ｌ１３、Ｌ２１〜Ｌ２３、Ｌ３１）の実行プロセスの実施例の模式図を示す。このデータ構造３１は、ツリー状構造を例として説明するが、この構造に限定されるものではない。
【００３７】
図９Ａ及び図３に示すように、データ記憶モジュール４１は、一つまたは複数のノードＮ（例えばＮ１〜Ｎ８）を有するツリー状構造のようなデータ構造３１であり、また、一つまたは複数のノードＮ（例えばＮ２〜Ｎ８）は、複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）及びそれを実行する時間が記憶される一つまたは複数のバッファー（図示せず）を有する。
【００３８】
一つまたは複数のノードＮ（例えばＮ２〜Ｎ８）は、一つまたは複数の周辺機器２（例えばＬ１１〜Ｌ１３、Ｌ２１〜Ｌ２３、Ｌ３１）のそれぞれを示し、複数のノードＮ（例えばＮ２〜Ｎ８）は、関連性によって複数の周辺機器２（例えばＬ１１〜Ｌ１３、Ｌ２１〜Ｌ２３、Ｌ３１）の依存性を示す。例えば、ノードＮ２〜Ｎ４が同一層（例えば兄弟関係）に位置することは、周辺機器Ｌ１１〜Ｌ１３が互いに独立しており、依存性を有しないことを示す。一方、ノードＮ２及びＮ５が上下層（例えば親子関係）に位置することは、周辺機器Ｌ１１及びＬ２１が互いに独立しておらず、類似性を有することを示す。
【００３９】
図９Ｂ及び図３に示すように、本発明は、図９Ａにおける複数のノードＮ（例えばＮ２〜Ｎ８）の関係、即ち複数の周辺機器２（例えばＬ１１〜Ｌ１３、Ｌ２１〜Ｌ２３、Ｌ３１）が互いに独立する（依存性を有せず）または互いに独立しない（依存性を有する）関係に基づいて、さらに複数の周辺機器２（例えばＬ１１〜Ｌ１３、Ｌ２１〜Ｌ２３、Ｌ３１）の実行プロセスＤＰを確立することができる。
【００４０】
例えば、複数の周辺機器２の実行プロセスＤＰは、以下の順序で実行する。（１）ノードＮ（ルートノート）、（２）ノードＮ２（サブノード）の周辺機器Ｌ１１、（３）ノードＮ３の周辺機器Ｌ１２、（４）ノードＮ４の周辺機器Ｌ１３、（５）ノードＮ３の周辺機器Ｌ１２、（６）ノードＮ５の周辺機器Ｌ２１、（７）ノードＮ６の周辺機器Ｌ２２、（８）ノードＮ５の周辺機器Ｌ２１、（９）ノードＮ７の周辺機器Ｌ２３、（１０）ノードＮ６の周辺機器Ｌ２２、（１１）ノードＮ８の周辺機器Ｌ３１。
【００４１】
図１０に、本発明に係るデータ構造のプログラムコードの実施例の模式図を示す。図１０に示すように、データ構造のプログラムコードは、Ｌｉｎｕｘにおけるｄｅｖｉｃｅのデータ構造のプログラムコードである。本発明は、ｄｅｖｉｃｅのデータ構造のプログラムコード３２において、「該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）を記憶するためのデータ構造のプログラムコード３３」を構築することができる。これにより、ｄｅｖｉｃｅのデータ構造において、「該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）を記憶するためのデータ構造」が増加される。
【００４２】
図１１には、本発明に係るページフォールト（ｐａｇｅ  ｆａｕｌｔ）処理により周辺機器２のレジスタ２１をモニタしてハードウェアのレジスタ設定（ハードウェアコマンド）を抽出する実施例の模式図を示す。図１１及び図３に示すように、コマンド抽出モジュール４２は、ソフトウェアのモニタプログラムコードであり、ページフォールト処理により一つまたは複数のレジスタ２１をモニタして複数のハードウェアのレジスタ設定（ハードウェア設定）を抽出することができる。
【００４３】
より詳しく説明すると、図１１及び図３に示すように、一つまたは複数のレジスタ２１に対してメモリ３の第１セクタマッピング及び第２セクタマッピングを行うように一つまたは複数の駆動プログラム４４が一つまたは複数の周辺機器２を初期化する場合、メモリ３から読み書き可能な仮想アドレス（第１のページ４６）と、読み書き不可能な仮想アドレス（第２のページ４７）と、第１のページ４６と第２のページ４７とを有するマッピングテーブル４５１とが提供される。
【００４４】
同時に、一つまたは複数の駆動プログラム４４が第２のページ４７の仮想アドレスをもって一つまたは複数のレジスタ２１に対して読み書きした場合（ステップＳ３１）は、第２のページ４７の仮想アドレスに読み書きが不可能であるため、ページフォールが発生して、ページフォールト処理ユニット４５２が作動される（ステップＳ３２）。ページフォールト処理ユニット４５２は、一つまたは複数のレジスタ２１が読み書きした物理アドレス及びデータ内容をデータ記憶モジュール４１に記憶する（ステップＳ３３）とともに、駆動プログラム４４を第１のページ４６の仮想アドレスにより一つまたは複数のレジスタ２１に実際に読み書きさせる（ステップＳ３４）。コマンド抽出モジュール４２は、一つまたは複数の駆動プログラム４４、メモリ３、レジスタ２１、ページフォールト処理ユニット４５２の間の読み書き動作をモニタして複数のハードウェアのレジスタ設定（ハードウェアコマンド）を抽出することができる。上記読み書き動作は、設定行為や、入出力（Ｉ／Ｏ）動作、アクセス動作等であってもよい。
【００４５】
また、図３に示すように、電子機器１は、システムバス（バス５）を含む。コマンド抽出モジュール４２’は、ハードウェアのバスモニタ（ｂｕｓ  ｍｏｎｉｔｏｒ）であり、システムバスを介して一つまたは複数のレジスタ２１のアクセス動作をモニタして複数のハードウェアのレジスタ設定（ハードウェアコマンド）を抽出することができる。本発明において、バス５は、システムバスであってもよく、サブバスであってもよい。
【００４６】
また、図３に示すように、電子機器１は、サブバス（バス５）を含むこともできる。コマンド抽出モジュール４２は、ソフトウェアのモニタプログラムコードであり、サブバスのデータ伝送インタフェースを介して一つまたは複数のレジスタ２１をモニタして複数のハードウェアのレジスタ設定（ハードウェア設定）を抽出することができる。上記データ伝送インタフェースは、ＰＣＩインタフェースや、ＵＳＢインタフェース、その他のインタフェース等であってもよい。
【００４７】
図１２Ａに、本発明に係るハイバネーション機能またはウェークアップブーティング機能を有する電子機器１が非ハイバネーション回復または非ウェークアップコールドブーティングを行う場合の実施例のフローチャートを示す。図１２Ｂに、本発明の図１２ＡのステップＳ４４における周辺機器２の初期化方法の実施例のフローチャートを示す。
【００４８】
図１２Ａ及び図３に示すように、ステップＳ４１において、電子機器１の１回目のコールドブーティングが行われる。ステップＳ４２において、電子機器１のブートローダープログラムが実行される。ステップＳ４３において、オペレーティングシステム４のカーネル４０が初期化される。ステップＳ４４において、電子機器１の一つまたは複数の周辺機器２が初期化される。図１２Ｂ及び図３に示すように、ステップＳ４４１〜ステップＳ４４４において、本発明に係る一つまたは複数の周辺機器２の初期化方法が実施される。
【００４９】
例えば、ステップＳ４４１において、電子機器１３のメモリ３に、データ構造（ツリー状構造、タンデム接続構造）やアレイ（コマンドアレイ）等のデータ記憶モジュール４１を提供または確立させる。ステップＳ４４２において、一つまたは複数の周辺機器２の駆動プログラム４４の実行プロセスから、複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）及びそれに関連する情報（例えばハードウェアコマンドを実行する時間または指令の間隔）を抽出して、複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）及びそれに関連する情報をデータ記憶モジュール４１に記憶させる。ステップＳ４４３において、データ記憶モジュール４１に記憶された複数のハードウェアのレジスタ設定（ハードウェアコマンド４４１）をソーティングまたはタンデム接続して、ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）を形成する。
【００５０】
次に、ステップＳ４４４は実行しても実行しなくてもよく、そして、ステップＳ４４４において、該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）のアクセス順を最適化することで、最適化されたハードウェアのレジスタ設定のシリーズ（最適化されたハードウェアコマンドのシリーズ）を形成する。
【００５１】
また、本発明に係る一つまたは複数の周辺機器２の初期化方法については、図３〜図１１をもって説明したので、詳しい説明は省略する。
【００５２】
そして、図１２Ａ及び図３に示すように、ステップＳ４５において、アプリケーションプログラムが初期化される。ステップＳ４６において、初期化を終了する。
【００５３】
図１３に、本発明におけるハイバネーション型またはウェークアップ型ブーティング機能を有する電子機器１がハイバネーション回復またはウェークアップによって再度コールドブーティングする場合の実施例のフローチャートを示す。図１３及び図３に示すように、ステップＳ５１において、ハイバネーション回復またはウェークアップによって電子機器１は再度コールドブーティングされる。ステップＳ５２において、ブートローダープログラムが実行される。ステップＳ５３において、オペレーティングシステム４のカーネル４０が初期化される。
【００５４】
次に、ステップＳ５４において、該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）、または最適化されたハードウェアのレジスタ設定のシリーズ（最適化されたハードウェアコマンドのシリーズ）をもって一つまたは複数の周辺機器２が初期化される。ステップＳ５５において、ハイバネーションファイル（ｈｉｂｅｒｎａｔｅ  ｆｉｌｅ）がロードされる。ステップＳ５６において、一つまたは複数の周辺機器２が回復される。ステップＳ５７において、電子機器１のウェークアッププロセスが実行される。
【００５５】
上述のように、本発明に係る周辺機器の初期化方法及びそれを用いる電子機器においては、電子機器が非ハイバネーション回復または非ウェークアップである１回目のコールドブーティングを行って一つまたは複数の周辺機器を初期化する場合に、一つまたは複数の周辺機器の駆動プログラム実行プロセスから複数のハードウェアのレジスタ設定（ハードウェア設定）を抽出してデータ記憶モジュール（例えばツリー状構造）に記憶するとともに、複数のハードウェアのレジスタ設定をソーティングまたはタンデム接続することでハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）を形成してもよいし、該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）をさらに最適化することで最適化されたハードウェアコマンドのシリーズ（最適化されたハードウェアコマンドのシリーズ）を形成してもよい。
【００５６】
本発明は、一つまたは複数の周辺機器の初期化プロセスを簡略化することができ、電子機器がハイバネーション回復またはウェークアップして再度コールドブーティングを行って一つまたは複数の周辺機器を初期化する場合に、該ハードウェアのレジスタ設定のシリーズ（ハードウェアコマンドのシリーズ）、または該最適化されたハードウェアのレジスタ設定のシリーズ（最適化されたハードウェアコマンドのシリーズ）を実行するだけで済むため、一つまたは複数の周辺機器の初期化時間及び電子機器のブーティング時間を短縮することができる。
【００５７】
上記実施形態は、本発明の原理、効果、および機能を例示するものに過ぎず、本発明を限定するものではない。本発明の実質的な技術内容は、特許請求の範囲に定義される。この技術分野の当業者であれば、本発明の主旨を逸脱しない範囲で種々の修正や変更を施すことが可能であり、こうした修正や変更も、本発明の技術的範囲に含まれる。
【符号の説明】
【００５８】
１  電子機器
２  周辺機器
２１  レジスタ
３  メモリ
３１  データ構造
３２、３３  データ構造のプログラムコード
４  オペレーティングシステム
４０  カーネル
４１  データ記憶モジュール
４２、４２’  コマンド抽出モジュール
４３  シリーズ最適化モジュール
４４  駆動プログラム
４４１  ハードウェアコマンド
４４２  ソフトウェアコマンド
４５  メモリ管理モジュール
４５１  マッピングテーブル
４５２  ページフォールト処理ユニット
４６  第１のページ
４７  第２のページ
５  バス
Ａ１〜Ａ６、Ｂ１〜Ｂ５、Ｃ１〜Ｃ６  ハードウェアコマンド
ＤＰ  周辺機器の実行プロセス
Ｈ１〜Ｈ７  ハードウェア設定（ハードウェアのレジスタ設定）
ｉｄｌｅ  アイドリング時間
Ｌ１１、Ｌ１２、Ｌ１３、Ｌ２１、Ｌ２２、Ｌ２３、Ｌ３１  周辺装置
Ｎ１〜Ｎ８  ノード
Ｓ１〜Ｓ７  ソフトウェア設定
Ｓ０１〜Ｓ０６  ステップ
Ｓ１１〜Ｓ１７、Ｓ１３１、Ｓ１３２、Ｓ１４１、Ｓ１５  ステップ
Ｓ２１〜Ｓ２７、Ｓ２３１、Ｓ２４１、Ｓ２５１  ステップ
Ｓ３１〜Ｓ３４  ステップ
Ｓ４１〜Ｓ４６、Ｓ４４１〜Ｓ４４４  ステップ
Ｓ５１〜Ｓ５７  ステップ
Ｔ１〜Ｔｎ  ハードウェアコマンドが実行される時間
Ｔ１’〜Ｔｎ’  ハードウェアコマンドが伝送される時間
Ｔａ  本来の駆動プログラムが実行される時間
Ｔｂ  シリーズ化された駆動プログラムが実行される時間
Ｔｃ  短縮された時間分
Ｔｄ  短縮された時間分
Ｔｍ１  ハードウェアコマンドのシリーズのシークエンス
Ｔｍ２  ハードウェアコマンドのシリーズのバスにおけるシークエンス
Ｔｍ３  最適化されたハードウェアコマンドのシリーズのシークエンス
【図１】
2017111788.tif 000003
【図２】
2017111788.tif 000004
【図３】
2017111788.tif 000005
【図４】
2017111788.tif 000006
【図５】
2017111788.tif 000007
【図６】
2017111788.tif 000008
【図７】
2017111788.tif 000009
【図８】
2017111788.tif 000010
【図９Ａ】
2017111788.tif 000011
【図９Ｂ】
2017111788.tif 000012
【図１０】
2017111788.tif 000013
【図１１】
2017111788.tif 000014
【図１２Ａ】
2017111788.tif 000015
【図１２Ｂ】
2017111788.tif 000016
【図１３】
2017111788.tif 000017