(57)【要約】      （修正有）【課題】ブート・パフォーマンスを向上させることが可能なシステム、方法、コンピュータが実行可能なプログラムを提供する。【解決手段】コンピュータシステムのユーザＯＳのブーティング処理を開始する工程と、ユーザＯＳに応じて、スタートアップするために重要でないハードウェアデバイスを特定する工程と、重要でないハードウェアデバイスを排斥する工程と、排斥した重要でないハードウェアデバイスを起動させずに、ブーティング処理を完了してユーザＯＳを提供する工程と、を含む。【選択図】図１
2014197407.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのユーザＯＳのブーティング処理を開始する工程と、
前記ユーザＯＳに応じてスタートアップするために重要でないハードウェアデバイスを特定する工程と、
前記重要でないハードウェアデバイスに関して、非遅延要素を特定する工程と、
前記非遅延要素は、ブート時間の非遅延要素及びユーザアカウントに関連する非遅延要素の少なくとも一方であり、
前記重要でないハードウェアデバイスのうち、前記非遅延要素を有さない重要でないハードウェアデバイスを排斥する工程と、
前記排斥した重要でないハードウェアデバイスを起動させずに、前記ブーティング処理を完了して前記ユーザＯＳを提供する工程と、
を含むことを特徴とする方法。
【請求項２】
さらに、
前記ユーザＯＳに応じてスタートアップするために重要でないソフトウェア要素を特定する工程と、
前記ユーザＯＳに応じて前記スタートアップするために重要でないソフトウェア要素を排斥する工程と、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
さらに、
前記ブーティング処理の完了に応答して、前記ユーザＯＳに応じてスタートアップするために重要でない、ハードウェアデバイス及びソフトウェア要素の１つ以上を起動する工程を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記排斥する工程は、前記排斥されたハードウェアデバイスに関連する１つ以上のソフトウェア要素をロードしないことを含むことを特徴とする請求項２又は請求項３に記載の方法。
【請求項５】
前記重要でないソフトウェア要素は、前記重要でないハードウェアデバイスに直接又は間接に関連するものであることを特徴とする請求項２〜請求項４のいずれか１つに記載の方法。
【請求項６】
前記特定する工程は、さらに、重要でないハードウェアデバイス及び重要でないソフトウェア要素の少なくとも一方を動的に特定することを含むことを特徴とする請求項２〜請求項５のいずれか１つに記載の方法、
【請求項７】
前記動的な特定は、さらに、前記コンピュータシステムのユーザアカウントに関連づけられたセキュリティトークンをチェックすることを含むことを特徴とする請求項６に記載の方法。
【請求項８】
さらに、前記コンピュータシステムのユーザアカウントに関連づけられたセキュリティトークンの特定に応答して、前記セキュリティトークンに関連づけられたハードウェアデバイスを起動する工程を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記排斥する工程は、前記重要でないハードウェアデバイスをディスエーブル状態に設定することを含むことを特徴とする請求項１〜請求項８のいずれか１つに記載の方法。
【請求項１０】
前記重要でないハードウェアは、バイオメトリックデバイス、オーディオデバイス、コンピュータシステムのＵＳＢに接続されたデバイス、及びネットワーク接続デバイスの少なくとも１つであることを特徴とする請求項９に記載の方法。
【請求項１１】
前記排斥する工程は、前記ユーザＯＳのシャットダウンの近くで実行されることを特徴とする請求項１〜請求項１０のいずれか１つに記載の方法。  
【請求項１２】
１つ以上のプロセッサと、
前記１つ以上のプロセッサに接続されたメモリと、を備え、
前記１つ以上のプロセッサは、
ユーザＯＳのブーティング処理を開始する工程と、
前記ユーザＯＳに応じてスタートアップするために重要でないハードウェアデバイスを特定する工程と、
前記重要でないハードウェアデバイスに関して、非遅延要素を特定する工程と、
前記非遅延要素は、ブート時間の非遅延要素及びユーザアカウントに関連する非遅延要素の少なくとも一方であり、
前記重要でないハードウェアデバイスのうち、前記非遅延要素を有さない重要でないハードウェアデバイスを排斥する工程と、
前記排斥された重要でないハードウェアデバイスを起動させないで、前記ブーティング処理を完了して前記ユーザＯＳを提供する工程と、
を実行することを特徴とするシステム。
【請求項１３】
前記１つ以上のプロセッサは、さらに、
前記ユーザＯＳに応じてスタートアップするために重要でないソフトウェア要素を特定する工程と、
前記ユーザＯＳに応じてスタートアップするために重要でないソフトウェア要素を排斥する工程と、
を実行することを特徴とする請求項１２に記載のシステム
【請求項１４】
前記１つ以上のプロセッサは、前記ブーティング処理の完了に応答して、前記ユーザＯＳに応じてスタートアップするために重要でない、ハードウェアデバイス及びソフトウェア要素の少なくとも１つを起動する工程を実行することを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記重要でないソフトウェア要素は、前記重要でないハードウェアデバイスと直接的又は間接的に関連するものであることを特徴とする請求項１３又は請求項１４に記載のシステム。
【請求項１６】
前記特定する工程は、前記重要でないハードウェアデバイス及びソフトウェア要素の少なくとも一方を動的に特定することを特徴とする請求項１３〜請求項１５のいずれか１つに記載のシステム。
【請求項１７】
前記動的な特定は、さらに前記コンピュータシステムのユーザアカウントに関連するセキュリティトークンをチェックすることを含むことを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記１つ以上のプロセッサは、前記コンピュータシステムのユーザアカウントに関連するセキュリティトークンの特定に応答して、前記セキュリティトークンに関連づけられたハードウェアデバイスを起動することを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記排斥する工程は、前記排斥された重要でないハードウェアデバイスに関連する１つ以上のソフトウェア要素をロードしないことを含むことを特徴とする請求項１２〜請求項１８のいずれか１つに記載のシステム。
【請求項２０】
前記排斥する工程は、前記重要でないハードウェアデバイスをディスエーブル状態に設定することを含むことを特徴とする請求項１２〜請求項１９のいずれか１つに記載のシステム。
【請求項２１】
前記重要でないハードウェアは、バイオメトリックデバイス、オーディオデバイス、コンピュータシステムのＵＳＢに接続されたデバイス、及びネットワーク接続デバイスの少なくとも１つであることを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記排斥する工程は、前記ユーザＯＳのシャットダウンの近くで実行されることを特徴とする請求項１２〜請求項２１のいずれか１つに記載のシステム。
【請求項２３】
コンピュータシステムに搭載されるプログラムであって、
ユーザＯＳのブーティング処理を開始する工程と、
前記ユーザＯＳに応じてスタートアップするために重要でないハードウェアデバイスを特定する工程と、
前記重要でないハードウェアデバイスに関して、非遅延要素を特定する工程と、
前記非遅延要素は、ブート時間の非遅延要素及びユーザアカウントに関連する非遅延要素の少なくとも一方であり、
前記重要でないハードウェアデバイスのうち、前記非遅延要素を有さない重要でないハードウェアデバイスを排斥する工程と、
前記除外された重要でないハードウェアデバイスを起動しないで、前記ブーティング処理を完了して前記ユーザＯＳを提供する工程と、
をコンピュータに実行させるコンピュータが実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブート・パフォーマンスを向上させたシステム及び方法に関する。
【背景技術】
【０００２】
ブーティング（Booting）は、ユーザがコンピュータシステムの電源を投入した場合に、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）ＯＳバージョンのようなユーザＯＳ（user  operating  system）をロードして提供する処理である。ブートシーケンスは、ユーザがユーザＯＳを準備するための電源ＯＮに応答して実行される、固定記憶装置（persistent  storage）からのユーザＯＳのローディングを含むオペレーションの初期設定（initial  set）である。このブーティング処理では、ブートプログラムが実行されると、ユーザＯＳ及び関連するデータがロードされるメモリ装置にアクセスされる。ブーティング処理には、コンピュータシステムのどのハードウェアデバイスが利用するかを判定するチェックが含まれる。
【０００３】
このブーティング処理が複雑だと、ユーザがユーザＯＳを操作できるようになるまでのブートアップの時間が長くなってしまう。長時間のブーティング処理は望ましいものではない。ブート時間が短いコンピュータシステムもあるが、これらは通常、インターネット・アクセスを提供するような簡単なタスクを実行可能な限られたＯＳを開始する場合にだけ適するものである。例えば、あるファイルのプリフェチング（pre-fetching）やキャッシング（caching）を含むフル・ユーザＯＳ（full  user  OS）のためにブーティング処理を短縮する各種アプローチが行われてきた。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ブート・パフォーマンスを向上させることが可能なシステム及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
要約すると、第１の態様では、コンピュータシステムのユーザＯＳのブーティング処理を開始する工程と、前記ユーザＯＳに応じてスタートアップのために重要でない（non-critical）ハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを排斥する工程と、前記排斥された重要でないハードウェアデバイスを開始しないで、前記ブーティング処理を完了して前記ユーザＯＳを提供する工程と、を含む方法を提供する。
【０００６】
別の態様では、１つ以上のプロセッサと、前記１つ以上のプロセッサと、前記１つ以上のプロセッサと動作可能に接続されたメモリと、前記１つ以上のプロセッサは、ユーザＯＳのブーティング処理を開始する工程と、前記ユーザＯＳに応じてスタートアップのために重要でないハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを排斥する工程と、前記ブーティング処理を完了して、排斥された前記重要でないハードウェアデバイスを起動させないで前記ユーザＯＳを提供する工程と、を実行するシステムを提供する。
【０００７】
さらに別の態様では、コンピュータシステムのユーザＯＳのブーティング処理を開始する工程と、前記ユーザＯＳに応じてスタートアップにとって重要でないハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを除外する工程と、前記ブーティング処理を完了して、除外された前記重要でないハードウェアデバイスを開始しないで前記ユーザＯＳを提供する工程と、をコンピュータに実行させるコンピュータが実行可能なプログラムを提供する。
【０００８】
上述した内容は要約であり、簡素化、一般化、詳細の省略をしてもよい。当業者は、この要約は単に説明であって決して制限を意図するものではないことを理解すべきである。
【０００９】
実施の形態をより理解するために、他のさらなる特徴及び利点を、以下の記述で図面を参照して説明する。発明の範囲は、添付した特許請求の範囲によって示される。
【図面の簡単な説明】
【００１０】
【図１】図１は、コンピュータシステムの回路例を示す図である。
【図２】図２は、ブーティング処理からディスエーブル／排斥（disablement/exclusion）する要素を選択する例を説明するための図である。
【図３】図３は簡素化したブーティング処理の例を示す図である。
【図４】図４はブーティング処理からディスエーブル／排斥する要素を動的に決定する例を説明するための図である。
【図５】図５はブーティング処理からディスエーブル／排斥する要素を動的に決定する例を説明するための図である。
【発明を実施するための形態】
【００１１】
ここで一般的に記述され図面で説明するような実施の形態の構成要素は、記載されている例に加えて各種の異なる構成に変形及び設計可能であることは容易に理解できる。従って、図面で示されるような以下のより詳細な実施の形態の記述は、特許請求の範囲を限定するものではなく、単なる実施例を示すものである。本明細書全体において使用されている「一実施の形態」、「実施の形態」あるいは類似の表現は、実施の形態に関連して説明されている特定の特徴、構成、または特性が、本発明の少なくとも１つの実施の形態に含まれていることを意味する。そのため、本明細書中に「一実施の形態」、「実施の形態」および類似の表現が出てきた場合、これらは全て同一の実施の形態を参照していてよいが、しかしこれに限定はされない。
【００１２】
さらに、上記した特徴、構成、特性は１つ以上の実施の形態において、好適な態様で組み合わせることが可能である。以下の記載において、様々な具体的な記述が実施の形態をよく理解するために提供される。関連分野の当業者は具体的な記載の１又は複数がなくても、或いは他の方法、部品、材料を用いて、様々な形態で実施できることを理解することができる。他の例では、発明の態様を曖昧にするのを避けるために、公知の構成、材料、又はオペレーションについては詳細には表現又は記述していない。
【００１３】
非制限的な例としてコンピュータシステムにインストールされた単一のＷＩＮＤＯＷＳ（登録商標）ＯＳを用いて、ユーザがログオン・ダイアログボックスでログオンする時に、コンピュータシステムのパワーオンを開始し、そして終了する典型的なブーティング処理には以下のことが含まれている。コンピュータシステムがターンオン（パワーオン）されると、ＢＩＯＳはコンピュータシステムを制御して、最初に様々なブーティング・オペレーションを実行する。これらのブーティング・オペレーションには、コンピュータシステム上で利用可能なメモリ容量の判定や利用可能なハードウェアデバイス（例えば、キーボード）をチェックするパワーオンセルフテスト（ＰＯＳＴ）が含まれている。
【００１４】
従来のＢＩＯＳ／ＭＢＲ(master  boot  record)コンフィグレーション（例えば、Unified  Extensible  Firmware  Interface(UEFI)／GUID  Partition  Table(GPT)  configuration等の他のコンフィグレーションを使用してもよい）においては、ＢＩＯＳがそれのチェックを終了すると、ＭＢＲプログラムをメモリにロードする。ＭＢＲが一旦ロードされると、ＭＢＲはブーティング処理を制御する。ＭＢＲはディスク（ＭＢＲ）の最初のセクタのコードを実行し、アクティブパーティションを見つけ、このアクティブパーティションのブートレコード（ＰＢＲ）へ制御を渡す。ＰＢＲコードは、ユーザＯＳによって定義される方法でユーザＯＳを起動して（initiate）、ユーザＯＳの残りを実行及びイニシャライズするために特定のブートファイルの場所を探す。
【００１５】
ブートローダープログラムは、コンポーネント（例えば、コンピュータＩＤ、ビデオ、キーボード、通信ポート、パラレルポート、マウス／ポインティングデバイス等）を検出して、ローレベル・デバイスドライバ（例えば、ハードディスクドライバ等）をメモリにロードする。他のデバイスドライバはその後ロードされ、既にロードされているローレベル・デバイスドライバによるカーネル・イニシャライゼーションの間にイニシャライズされ、その後、セッションマネージャーは、ユーザＯＳ用のハイオーダーサブシステム（higher−order  subsystems）とサービスを開始する。ＷＩＮＤＯＷＳ（登録商標）  ＯＳの場合は、ブーティング処理が終了した後、サブシステムが起動して、ログオン・ダイアログボックスを提示（brings  up）する。  
【００１６】
従って、ブーティング処理の間に、使用のためにユーザＯＳを準備するため、多くのオペレーションが通常行われる。このため、システムリソース（プロセッサ、メモリ、及び／又はＩ／Ｏ）は、ブーティング処理が完了するまでオペレーションを待たなければならないという障害となる。より速いブーティングのため、ソフトウェア要素へのより速いアクセスを提供するために、ソフトウェア要素がキャッシュにプリフェチされてもよい。キャッシュへのプリフェチは、ソフトウェア要素が必要となる場合に、より速く利用できるようにソフトウェア要素をプリフェチすることによりソフトウェア要素をリトライブするために必要な時間を低減するような、幾つかの改善を提供する。しかしながら、この技術は、重要なものだけが処理され、ブート時間を拡張する根本原因である大量のコンポーネントによって、システムリソースは通常、ブートの間、オーバーロードであるという事実に対処していないので、限られた効果しかない。これは多少ブート時間を短縮する傾向にあるが、通常、大量のプロセスがシステムリソースの占有を継続するため、障害の問題に十分には対処できない。このアプローチは、また、高いＩ／Ｏコストのコンポーネントを検討する場合に限られる。それ故、さらなるブート時間の短縮が望まれる。
【００１７】
本実施の形態では、ブーティングの間に処理する必要のない重要でないハードウェアデバイスやソフトウェア要素を積極的にディスエーブルすることによって、ブーティングをより速く（ブーティング時間を短縮）している。それ故、ディスエーブルされるハードウェアデバイス及び／又はソフトウェア要素は、ブート時にシステムリソースの障害の原因とならない。また、本実施の形態では、重要でないハードウェアデバイス及び／又はソフトウェア要素（重要でないハードウェアに関連するソフトウェア要素は、例えば、デバイスドライバのような直接的に関連するソフトウェア要素や、ネットワークデバイスのローディングに間接的に関連するファイアーオールのようなセキュリティサービスとしてもよく、また、例えば、ＯＳコンポーネント及び／又はキーボードノイズ抑制、ボリューム／ブライトネス用のオンスクリーン・グラフィックマネージメント・ソフトウェア等のＯＳコンポーネント及び／又は専用のソフトウェアのような、重要でないハードウェアデバイスに関連しない他のソフトウェア要素を含むことにしてもよい。）をブーティングが完了した後にイネーブルとして利用可能とする。加えて、リソースはより利用可能であるので、遅延したアイテムは、（ブーティング完了後）より速く起動させることにしてもよい。
【００１８】
従って、本実施の形態では、ブーティング処理において処理されるハードウェアデバイス及び／又はソフトウェア要素の数を減らして全体のブート時間を低減することが可能となる。これにより、リソースが負荷ではないとき、コンピュータシステムがシステムのコンポーネントのローディングとイニシャライゼーションの負荷をもっと遅い時間にシフトさせることが可能となる。この結果、従来よりも速いブートシステムをユーザに提供することになり、一方、通常のユーザが期待しているようなフル・ユーザＯＳの実績がユーザに提供され、実質的にユーザＯＳの性質に影響を与えない。
【００１９】
以下に説明する実施例は図面を参照することによってよく理解できる。以下の記載は単なる例であることを意図しており、実施例を簡単に説明する。
【００２０】
他の様々な回路（circuits／circuitry）又はコンポーネントを使用できるが、図１はコンピュータシステムの回路又はコンポーネントの一例を示すブロック図である。図１に示す例は、Ｌｅｎｏｖｏ（ＵＳ）Ｉｎｃ．ｏｆ  Ｍｏｒｒｉｓｖｉｌｌｅ、ＮＣで販売されているパーソナルコンピュータのＴＨＩＮＫＰＡＤシリーズのようなコンピューティングシステムとしてもよい。但し、ここでの記載から明らかなように、他の特徴や図１に示される特徴の一部だけを有することにしてもよい。
【００２１】
図１の例では、製造業者（例えば、ＩＮＴＥＬ、ＡＭＤ、ＡＲＭ等）に応じて変更できるアーキテクチャを有するいわゆるチップセット（chipset）１１０（集積回路、チップ、又はチップセットのグループ等）を備えている。チップセット１１０のアーキテクチャは、ＤＭＩ（direct  management  interface）１４２又はリンクコントローラ（link  controller）１４４を介して情報（例えば、データ、信号、及びコマンド等）を交換するコア・メモリコントロールグループ（core  and  memory  control  group）１２０及びＩ／Ｏコントローラハブ（I/O  controller  hub）１５０を備えている。図１において、ＤＭＩ１４２は、chip-to-chipインターフェイスである（ノースブリッジ（north-bridge）とサウスブリッジ（south-bridge）間のリンクとして参照する場合がある）。コア・メモリコントロールグループ１２０は、ＦＳＢ（front  side  bus）１２４を介して情報を交換する１つ以上のプロセッサ（processors）１２２（例えば、シングル又はマルチコア）及びメモリコントローラハブ（memory  controller  hub）１２６を備えている。コア・メモリコントロールグループ１２０は、従来のノースブリッジ（north-bridge）式のアーキテクチャに取って代わるチップがインテグレィトされてもよい。
【００２２】
図１において、メモリコントローラハブ１２６は、メモリ（memory）１４０とのインターフェイスを行う（例えば、システムメモリまたはメモリとして参照できるＲＡＭ形式としてサポートを提供する）。メモリコントローラハブ１２６は、さらに、ディスプレイデバイス（例えば、ＣＲＴ、フラットパネル、プロジェクタ等）１９２用のＬＶＤＳインターフェイス（LVDS  interface）１３２を備えている。ブロック（block）１３８はＬＶＤＳインターフェイス１３２を介してサポートされるテクノロジー（例えば、ＳＤＶＯ(serial  digital  video)、  ＨＤＭＩ／ＤＶＩ、  ディスプレイポート（display  port)）を備えている。メモリコントローラハブ１２６は、また、ディスクリートグラフィックス（discrete  graphics）１３６をサポートするＰＣＩ−Ｅ（PCI-express  interface）１３４を備えている。
【００２３】
図１において、Ｉ／Ｏコントローラハブ１５０は、ＳＡＴＡインターフェイス１５１（例えば、ＨＤＤ／ＳＤＤ１８０用等）、ＰＣＩ−Ｅインターフェイス１５２（例えば、無線接続  １８２用等）、ＵＳＢインターフェイス１５３（例えば、デジタイザ、キーボード、マウス、カメラ、電話、ストレージ、他の接続デバイス等の入力デバイス（input  devices）１８４用）、ネットワークインターフェイス１５４  (例えば、ＬＡＮ）、ＧＰＩＯインターフェイス１５５、ＬＰＣインターフェイス１７０（ＡＳＩＣｓ１７１、ＴＰＭ１７２、ｓｕｐｅｒＩ／Ｏ１７３、ファームウェアハブ１７４、ＢＩＯＳサポート１７５、ＲＯＭ１７７、Ｆｌａｓｈ１７８、及びＮＶＲＡＭ１７９のような各種タイプのメモリ１７６用)、パワーマネージメントインターフェイス（power  management  interface）１６１、クロックジェネレータインターフェイス（clock  generator  interface）１６２、オーディオインターフェイス（audio  interface）１６３(例えば、スピーカ１９４用)、ＴＣＯインターフェイス（TCO  interface）１６４、システムマネージメントバスインターフェイス（system  management  bus  interface）165、  ＢＩＯＳ１６５及びブートコード１９０を含むことができるＳＰＩ  Ｆｌａｓｈ１６６等を備えている。Ｉ／Ｏコントローラハブ１５０は、ギガビット・イーサネット（登録商標）サポートを含んでいてもよい。
【００２４】
コンピュータシステムは、パワーオン後にＳＰＩ  Ｆｌａｓｈ１６６に格納されているＢＩＯＳ１６８がブートコード１９０を実行し、その後、１つ以上のユーザＯＳ及びアプリケーションソフトウェア（例えば、メモリ１４０に格納されている）のコントロール化でデータを処理するように構成してもよい。ユーザＯＳは、各種の記憶場所に格納でき、例えば、ＢＩＯＳ１６８の指令に応じてアクセスされるようにしてもよい。ここで記載したように、デバイスは図１のコンピュータシステムに示されるよりも少なくまたは多くの特徴を含んでいてもよい。
【００２５】
図２を参照して、ブーティングの観点から重要でないハードウェアデバイス及び／又はソフトウェア要素を選択的にディスエーブルにする実施例を説明する。ここでは従来の実装と比べてブート時間を短縮してより短い時間でブートされるユーザＯＳを提供する。例えば、コンピュータシステムのパワーオンに応答して、コンピュータシステムはユーザＯＳのブートを開始する（Ｓ２１０）。実施例では、より速いブーティングを提供するために、ブーティングのために重要でないハードウェアデバイス及び／又はソフトウェア要素を選択してディスエーブルとするサービスを備えている（Ｓ２２０）。このサービスは、コンピュータシステムのシャットダウン／パワーオフ等の直前までのコンピュータシステムが稼働している間（ユーザＯＳの制御下で）、例えば、ブーティング処理自体の間、バックグラウンドサービスとして様々な時に稼働することができる。サービスは、重要でないハードウェアデバイス及び／又はソフトウェア要素を選択すると、それらがブーティング処理から排斥されるように、コンピュータシステムのシャットダウン前（Ｓ２４０）に、選択したハードウェアデバイス及び／又はソフトウェア要素をディスエーブルに設定する（Ｓ２３０）。
【００２６】
図３を参照して、ブーティング処理から排斥されるハードウェアデバイス及び／又はソフトウェ選択して  ディスエーブルに設定するサービスを備え、ブート時間を低減する実施例を説明する。例えば、コンピュータシステムのパワーオンに応答して、コンピュータシステムは通常のようにブーティング処理を開始する（Ｓ３１０）。ブーティングの間、コンピュータシステムは利用可能なハードウェアデバイス及びロードしてイニシャライズする関連するソフトウェア要素（例えば、デバイスドライバ）を検出／エニューメレイト（enumerate）する（Ｓ３２０）。但し、ＯＳによって自動でロードされてスタートするようにプリセットされたハードウェアデバイス及び／又はソフトウェア要素の全てを単純にロードしてイニシャライズする代わりに、ブーティング処理から排斥されるハードウェアデバイス及び／又はソフトウェア要素をディスエーブルに設定する（Ｓ３３０）。ディスエーブルされたハードウェア及び／又はソフトウェア要素を処理しないで、ブーティング処理を継続する（Ｓ３４０）。ブーティング処理が完了後（Ｓ３５０）、処理されなかったハードウェアデバイス及び／又はソフトウェア要素をイネーブルとして処理する（Ｓ３６０）。例えば、オーディオはシステムをブートするのに必要ない。従って、オーディオデバイスを関連するユーザＯＳのソフトウェアコンポーネントと共にディスエーブルに設定してもよい。コンピュータシステムがブートされたとき、上述の影響のあるオーディオコンポーネント（オーディオデバイス及び関連するユーザＯＳのソフトウェアコンポーネント）は起動されず、これによりブートが完了するためのタスクの量を低減する。これらは、コンピュータシステムがユーザＯＳをブートした後、起動されることにしてもよい。従って、ブーティング処理は、リソース使用の観点から簡素化される。すなわち、これらのハードウェアデバイス及び／又はソフトウェア要素はユーザＯＳのブートアップの間、起動から排斥されるので、ロード及びイニシャライズ等が不要となり、より重要なブートコンポーネントに集中するためにシステムリソースが解放される。このため、ブーティング処理は、少ないコンポーネントを処理しながら継続し、より速くブーティング処理が完了する。
【００２７】
ハードウェアデバイス及び／又はソフトウェア要素の排斥を実行する場合に、ハードウェアデバイス及び／又はソフトウェア要素間の従属性を特定することは有用である。また、排斥が実行されないコンピュータシステム（ストックユーザＯＳを有するシステム）と同一又は類似するポスト・ブーティング機能を保証しながら、ロード時間を最適化するような方法でディスエーブルオペレーション及び／又はイネーブルオペレーションのシーケンスを考慮することも有用である。従って、ブーティング処理からディスエーブル／排斥されるハードウェアデバイス及び／又はソフトウェア要素の選択は、各種の要因に基づいて変更してもよい。
【００２８】
一例では、ディエーブル／排斥する重要でないブーティングコンポーネントを自動的に選択するサービスを備えることにしてもよい。重要でないコンポーネントは、フル・ユーザＯＳ（full  user  OS  experience）のブーティング処理の完了の成功のために必要でないコンポーネントとして定義される。一方、重要なコンポーネントは、フル・ユーザＯＳのブーティング処理の成功のために必要なものである。
【００２９】
重要なコンポーネントは、例として、例えばハードディスクやそれに関連するドライバのような、ユーザＯＳのブーティングのために必要なハードウェアデバイス及び／又はソフトウェア要素を含むことにしてもよい。重要なコンポーネントは、さらに、ユーザＯＳのローディングに必ずしも不可欠ではないが、例えば、ブーティング処理の間に、可視的な表示を可能とするためのビデオのイネーブリング及び／又はバイオメトリック入力／ログインのためのバイオメトリックデバイスのイネーブリングのような、コンピュータシステムの好適な使用のために要求される特徴を含むものとリファインしてもよい。従って、重要なコンポーネントは、ユーザの視点からフル・ユーザＯＳを提供するために必要なものである。
【００３０】
重要でないコンポーネントは、コンピュータの重要でない構成がブート完了でイネーブルしてもよいようなコンポーネントを含む。非制限的な例として、重要でないコンポーネントは、オーディオデバイスとこれに関連するドライバ、外部デバイス（インテグラル・カメラのようなＵＳＢに接続されるデバイス）とこれに関連するドライバ、ネットワークデバイス（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）／ＷｉＦｉのコンポーネント）とこれに関連するドライバ、バイオメトリックデバイスとこれに関連するドライバ、ファイアーウォール、他のセキュリティソフトウェア、専用のソフトウェア等を含む。ここで使用されるコンテキストにおいて、重要である又は重要でないハードウェアデバイス及び／又はソフトウェア要素の分類は、予め定義してもよく、また、変更してもよく、さらに、動的に（dynamically）決定してもよい。
【００３１】
図４を参照して、ハードウェアデバイス及び／又はソフトウェア要素が重要であるか又は重要でないかを動的に決定する実施例について説明する。コンピュータシステムがブーティング処理を開始すると（Ｓ４１０）、サービスコントロールマネージャー又はユーザＯＳのコンポーネントは、通常どおりユーザＯＳによる自動スタートのために設定されたハードウェアデバイス及び／又はソフトウェア要素を検出し（Ｓ４２０）、非遅延要素をチェックする（Ｓ４３０）。一例では、このハードウェアデバイス／ソフトウェア要素のエニューメレーション（enumeration）に応答して、非遅延要素（non-delay  factor）、例えば、コンピュータシステムのユーザアカウントに関連づけられたセキュリティトークン（例えば、パスワードやバイオメトリックデバイス・プロテクション）を、チェックしてもよい。非遅延要素は、例えば、ブーティング処理において（処理する）特定のハードウェアデバイス及び／又はソフトウェア要素の導入がブート時間を遅延させない（すなわち、ブートの間にハードウェア及び／又はソフトウェア要素を処理するために利用できる十分なリソースがある）とすることができる。非遅延要素と特定されると（Ｓ４４０の「Ｙｅｓ」）、非遅延要素のハードウェアデバイス及び／又はソフトウェア要素を重要なものとして処理（イネーブルとして処理）する（Ｓ４５０）。例えば、セキュリティトークンに関連するデバイスは、たとえ一般的に重要でないとしても、この場合、重要と考えて動作させてもよい。
【００３２】
例えば、ユーザが、指紋リーダーを介してバイオメトリック入力が要求されるコンピュータシステム用のセキュリティトークンを確立すると、たとえサービスが通常、重要でないと分類するとしても、指紋リーダーとこれに関連するソフトウェア要素がブーティング処理の間にロードされてイニシャライズできるように、これらを検出してイネーブルとしてもよい。
【００３３】
このようなチェックに応答して（ステップＳ４３０、Ｓ４４０）、ここで説明したように、重要でない（ディスエーブルされた）ハードウェアデバイス及び／又はソフトウェア要素を処理しないでブーティング処理を継続する（ステップＳ４６０）。ブーティング処理が完了後（Ｓ４７０）、処理されなかったハードウェアデバイス及び／又はソフトウェア要素をイネーブルとして処理する（Ｓ４８０）。従って、動的に特定される重要なハードウェアデバイス／ソフトウェア・デバイス（指紋リーダー、ブーティングを遅延させないソフトウェア要素／ハードウェアデバイス等）は、たとえサービスが一般的に（デフォルトで）重要でないとしてこれらのハードウェアデバイス／ソフトウェア・デバイスをディスエーブルに設定していたとしても、ブーティング処理の完了によって利用可能となる。
【００３４】
図５を参照して、重要でない／重要であるとしてリストを作成するためのハードウェアデバイス及び／又はソフトウェア要素の判別を、収集情報（intelligence）を用いて又はユーザの選択によって決定する実施例を説明する。例えば、コンピュータシステムがブートされて稼働している間（ステップＳ５１０）、サービスは、ユーザによって全く使用されない又は頻繁に使用されないハードウェアデバイス及び／又はソフトウェア要素を検出できるように、ユーザによって全く使用されない又は頻繁に使用されないハードウェアデバイス及び／又はソフトウェア要素に関する情報を収集してもよい（ステップＳ５２０）。これらが検出されると、サービスは、これらが重要でないとして選択し、コンピュータシステムをリブートするときに、スタート、ロード、及びイニシャライズされないように、ブーティング処理からこれらをディスエーブル／排斥するように、シャットダウン時に設定してもよい（Ｓ５３０、５４０）。これにより、ブーティング処理の間に、頻繁に／全く使用されないコンポーネントの不要な処理を省くことによってブート時間が低減される。
【００３５】
ここで説明したような実施例の機能と一致するプログラム指令を実行するように構成された１つ以上のコンピューティングデバイスを実装してもよいことは容易に理解できる。この点に関し、図１はコンピューティングデバイスの非制限的な例を示している。実施例では、デスクトップ、ワークステーション、サーバー、タブレット等のような各種コンピューティングシステムを用いて実装することにしてもよい。
【００３６】
当業者が理解するように、各種態様は、システム、方法、コンピュータプログラム（プロダクト）として実装してもよい。従って、ここでは全てを一般的に「回路」、「モジュール」、「システム」として説明したように、ある局面では、全体としてハードウェアの形態、ソフトウェア及び／又はハードウェアを含む形態を取ることができる。さらに、ある局面では、ここで具体化されたコンピュータ読み取り可能なプログラムコードを格納した１つ以上のコンピュータ読み取り可能な記録媒体を実装したコンピュータプログラムプロダクトの形態を取ることができる。
【００３７】
１つ以上の非信号コンピュータ読み取り可能な記録媒体（non-signal  computer  readable  medium(s)）の組み合わせを利用してもよい。非信号コンピュータ読み取り可能な記録媒体は、例えば、電気・磁気・光学・電磁気・赤外線・半導体のシステム、装置、デバイス、又はこれらの好適な組み合わせとしてもよい。コンピュータ読み取り可能な記録媒体の特定の例としては、ポータブルコンピューターディスケット（portable  computer  diskette）、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、Ｆｌａｓｈメモリ、光ファイバー、磁気ストレージデバイス、又はこれらの好適な組み合わせである。
【００３８】
コンピュータ読み取り可能な媒体に具現化されるプログラムコードは、これらには限定されないが、無線、有線、光ファイバーケーブル、ＲＦ、又はこれらの好適な組み合わせを含む好適な媒体を用いて転送することができる。
【００３９】
オペレーションを実行するためのコンピュータプログラムコードは、１つ以上のプログラミング言語の組み合わせで記述してもよい。コンピュータプログラムコードは、スタンドアロンソフトウェアパッケージとして単一のデバイスで全体又は一部を、単一のデバイスで一部を及び他のデバイスで一部を、又は、他のデバイスで全体を実行することにしてもよい。ある場合は、デバイスは、ＬＡＮやＷＡＮを含む各種ネットワークを介して接続されてもよく、この接続は他のデバイスを介して（例えば、インターネットサービスプロバイダを用いたインターネットを介して）、又は、ＵＳＢ接続のようなハードワイヤー接続を介してなされてもよい。
【００４０】
コンピュータプログラム指令は、汎用目的のコンピュータ、特定目的のコンピュータ、又は他のプログラマブルデータ処理装置に、コンピュータのプロセッサやプログラマブル処理装置が特定の機能や作用を実行するマシンを生成するように提供されてもよい。
【００４１】
コンピュータプログラム指令は、また、特定の機能や作用を実現する指令を含む製造物（article  of  manufacture）を生成するように、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置に特定の方法で機能を指示できるコンピュータ読み取り可能な媒体に格納されてもよい。
【００４２】
コンピュータプログラム指令は、コンピュータ、他のプログラマブル処理装置、又は他の装置上で実行され、特定の機能や作用を実現する方法を提供するように、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置にロードされて、一連の動作ステップが実行されてコンピュータ実施方法を提供することにしてもよい。
【００４３】
この開示は、説明や記述を目的として提供されており、消尽や制限を意図していない。多くの変更や変形が可能であることは当業者にとって明らかである。ここでの実施例は原理や実用的な用途を説明するために選択して記述したものであって、さまざまな実施のため、考えられる特定の使用に適するようにこの開示に各種の変更を加えることが可能であることを当業者は理解できる。
【００４４】
従って、本実施の形態を、図面を参照して説明してきたが、ここでの記載は制限的なものではなく、この開示の範囲及び精神を逸脱することなく、当業者によって各種の変形や変更が可能であることが理解されるべきである。
【符号の説明】
【００４５】
１１０  チップセット
１２０  コア・メモリコントロールグループ
１２２  プロセッサ
１２４  ＦＳＢ
１２６  メモリコントローラハブ
１４２  ＤＭＩ
１４４  リンクコントローラ
１５０  Ｉ／Ｏコントローラハブ
１６６  ＳＰＩ  Ｆｌａｓｈ
１６８  ＢＩＯＳ
１９０  ブートコード
【図１】
2014197407.tif 000003
【図２】
2014197407.tif 000004
【図３】
2014197407.tif 000005
【図４】
2014197407.tif 000006
【図５】
2014197407.tif 000007