説明

ブート・パフォーマンスを向上させたシステム及び方法

【課題】従来の実装と比べてブート時間を短縮してより短い時間でブートされるユーザOSを提供する。
【解決手段】コンピュータシステムのユーザOSのブーティング処理を開始する工程(S310)と、前記ユーザOSに応じて、スタートアップするために重要でないハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを排斥する工程(S330)と、前記排斥した重要でないハードウェアデバイスを起動させずに、前記ブーティング処理を完了(S350)して前記ユーザOSを提供する工程と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブート・パフォーマンスを向上させたシステム及び方法に関する。
【背景技術】
【0002】
ブーティング(Booting)は、ユーザがコンピュータシステムの電源を投入した場合に、MICROSOFT WINDOWS(登録商標)OSバージョンのようなユーザOS(user operating system)をロードして提供する処理である。ブートシーケンスは、ユーザがユーザOSを準備するための電源ONに応答して実行される、固定記憶装置(persistent storage)からのユーザOSのローディングを含むオペレーションの初期設定(initial set)である。このブーティング処理では、ブートプログラムが実行されると、ユーザOS及び関連するデータがロードされるメモリ装置にアクセスされる。ブーティング処理には、コンピュータシステムのどのハードウェアデバイスが利用するかを判定するチェックが含まれる。
【0003】
このブーティング処理が複雑だと、ユーザがユーザOSを操作できるようになるまでのブートアップの時間が長くなってしまう。長時間のブーティング処理は望ましいものではない。ブート時間が短いコンピュータシステムもあるが、これらは通常、インターネット・アクセスを提供するような簡単なタスクを実行可能な限られたOSを開始する場合にだけ適するものである。例えば、あるファイルのプリフェチング(pre-fetching)やキャッシング(caching)を含むフル・ユーザOS(full user OS)のためにブーティング処理を短縮する各種アプローチが行われてきた。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、ブート・パフォーマンスを向上させることが可能なシステム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
要約すると、第1の態様では、コンピュータシステムのユーザOSのブーティング処理を開始する工程と、前記ユーザOSに応じてスタートアップのために重要でない(non-critical)ハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを排斥する工程と、前記排斥された重要でないハードウェアデバイスを開始しないで、前記ブーティング処理を完了して前記ユーザOSを提供する工程と、を含む方法を提供する。
【0006】
別の態様では、1つ以上のプロセッサと、前記1つ以上のプロセッサと、前記1つ以上のプロセッサと動作可能に接続されたメモリと、前記1つ以上のプロセッサは、ユーザOSのブーティング処理を開始する工程と、前記ユーザOSに応じてスタートアップのために重要でないハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを排斥する工程と、前記ブーティング処理を完了して、排斥された前記重要でないハードウェアデバイスを起動させないで前記ユーザOSを提供する工程と、を実行するシステムを提供する。
【0007】
さらに別の態様では、コンピュータシステムのユーザOSのブーティング処理を開始する工程と、前記ユーザOSに応じてスタートアップにとって重要でないハードウェアデバイスを特定する工程と、前記重要でないハードウェアデバイスを除外する工程と、前記ブーティング処理を完了して、除外された前記重要でないハードウェアデバイスを開始しないで前記ユーザOSを提供する工程と、をコンピュータに実行させるコンピュータが実行可能なプログラムを提供する。
【0008】
上述した内容は要約であり、簡素化、一般化、詳細の省略をしてもよい。当業者は、この要約は単に説明であって決して制限を意図するものではないことを理解すべきである。
【0009】
実施の形態をより理解するために、他のさらなる特徴及び利点を、以下の記述で図面を参照して説明する。発明の範囲は、添付した特許請求の範囲によって示される。
【図面の簡単な説明】
【0010】
【図1】図1は、コンピュータシステムの回路例を示す図である。
【図2】図2は、ブーティング処理からディスエーブル/排斥(disablement/exclusion)する要素を選択する例を説明するための図である。
【図3】図3は簡素化したブーティング処理の例を示す図である。
【図4】図4はブーティング処理からディスエーブル/排斥する要素を動的に決定する例を説明するための図である。
【図5】図5はブーティング処理からディスエーブル/排斥する要素を動的に決定する例を説明するための図である。
【発明を実施するための形態】
【0011】
ここで一般的に記述され図面で説明するような実施の形態の構成要素は、記載されている例に加えて各種の異なる構成に変形及び設計可能であることは容易に理解できる。従って、図面で示されるような以下のより詳細な実施の形態の記述は、特許請求の範囲を限定するものではなく、単なる実施例を示すものである。本明細書全体において使用されている「一実施の形態」、「実施の形態」あるいは類似の表現は、実施の形態に関連して説明されている特定の特徴、構成、または特性が、本発明の少なくとも1つの実施の形態に含まれていることを意味する。そのため、本明細書中に「一実施の形態」、「実施の形態」および類似の表現が出てきた場合、これらは全て同一の実施の形態を参照していてよいが、しかしこれに限定はされない。
【0012】
さらに、上記した特徴、構成、特性は1つ以上の実施の形態において、好適な態様で組み合わせることが可能である。以下の記載において、様々な具体的な記述が実施の形態をよく理解するために提供される。関連分野の当業者は具体的な記載の1又は複数がなくても、或いは他の方法、部品、材料を用いて、様々な形態で実施できることを理解することができる。他の例では、発明の態様を曖昧にするのを避けるために、公知の構成、材料、又はオペレーションについては詳細には表現又は記述していない。
【0013】
非制限的な例としてコンピュータシステムにインストールされた単一のWINDOWS(登録商標)OSを用いて、ユーザがログオン・ダイアログボックスでログオンする時に、コンピュータシステムのパワーオンを開始し、そして終了する典型的なブーティング処理には以下のことが含まれている。コンピュータシステムがターンオン(パワーオン)されると、BIOSはコンピュータシステムを制御して、最初に様々なブーティング・オペレーションを実行する。これらのブーティング・オペレーションには、コンピュータシステム上で利用可能なメモリ容量の判定や利用可能なハードウェアデバイス(例えば、キーボード)をチェックするパワーオンセルフテスト(POST)が含まれている。
【0014】
従来のBIOS/MBR(master boot record)コンフィグレーション(例えば、Unified Extensible Firmware Interface(UEFI)/GUID Partition Table(GPT) configuration等の他のコンフィグレーションを使用してもよい)においては、BIOSがそれのチェックを終了すると、MBRプログラムをメモリにロードする。MBRが一旦ロードされると、MBRはブーティング処理を制御する。MBRはディスク(MBR)の最初のセクタのコードを実行し、アクティブパーティションを見つけ、このアクティブパーティションのブートレコード(PBR)へ制御を渡す。PBRコードは、ユーザOSによって定義される方法でユーザOSを起動して(initiate)、ユーザOSの残りを実行及びイニシャライズするために特定のブートファイルの場所を探す。
【0015】
ブートローダープログラムは、コンポーネント(例えば、コンピュータID、ビデオ、キーボード、通信ポート、パラレルポート、マウス/ポインティングデバイス等)を検出して、ローレベル・デバイスドライバ(例えば、ハードディスクドライバ等)をメモリにロードする。他のデバイスドライバはその後ロードされ、既にロードされているローレベル・デバイスドライバによるカーネル・イニシャライゼーションの間にイニシャライズされ、その後、セッションマネージャーは、ユーザOS用のハイオーダーサブシステム(higher−order subsystems)とサービスを開始する。WINDOWS(登録商標) OSの場合は、ブーティング処理が終了した後、サブシステムが起動して、ログオン・ダイアログボックスを提示(brings up)する。
【0016】
従って、ブーティング処理の間に、使用のためにユーザOSを準備するため、多くのオペレーションが通常行われる。このため、システムリソース(プロセッサ、メモリ、及び/又はI/O)は、ブーティング処理が完了するまでオペレーションを待たなければならないという障害となる。より速いブーティングのため、ソフトウェア要素へのより速いアクセスを提供するために、ソフトウェア要素がキャッシュにプリフェチされてもよい。キャッシュへのプリフェチは、ソフトウェア要素が必要となる場合に、より速く利用できるようにソフトウェア要素をプリフェチすることによりソフトウェア要素をリトライブするために必要な時間を低減するような、幾つかの改善を提供する。しかしながら、この技術は、重要なものだけが処理され、ブート時間を拡張する根本原因である大量のコンポーネントによって、システムリソースは通常、ブートの間、オーバーロードであるという事実に対処していないので、限られた効果しかない。これは多少ブート時間を短縮する傾向にあるが、通常、大量のプロセスがシステムリソースの占有を継続するため、障害の問題に十分には対処できない。このアプローチは、また、高いI/Oコストのコンポーネントを検討する場合に限られる。それ故、さらなるブート時間の短縮が望まれる。
【0017】
本実施の形態では、ブーティングの間に処理する必要のない重要でないハードウェアデバイスやソフトウェア要素を積極的にディスエーブルすることによって、ブーティングをより速く(ブーティング時間を短縮)している。それ故、ディスエーブルされるハードウェアデバイス及び/又はソフトウェア要素は、ブート時にシステムリソースの障害の原因とならない。また、本実施の形態では、重要でないハードウェアデバイス及び/又はソフトウェア要素(重要でないハードウェアに関連するソフトウェア要素は、例えば、デバイスドライバのような直接的に関連するソフトウェア要素や、ネットワークデバイスのローディングに間接的に関連するファイアーオールのようなセキュリティサービスとしてもよく、また、例えば、OSコンポーネント及び/又はキーボードノイズ抑制、ボリューム/ブライトネス用のオンスクリーン・グラフィックマネージメント・ソフトウェア等のOSコンポーネント及び/又は専用のソフトウェアのような、重要でないハードウェアデバイスに関連しない他のソフトウェア要素を含むことにしてもよい。)をブーティングが完了した後にイネーブルとして利用可能とする。加えて、リソースはより利用可能であるので、遅延したアイテムは、(ブーティング完了後)より速く起動させることにしてもよい。
【0018】
従って、本実施の形態では、ブーティング処理において処理されるハードウェアデバイス及び/又はソフトウェア要素の数を減らして全体のブート時間を低減することが可能となる。これにより、リソースが負荷ではないとき、コンピュータシステムがシステムのコンポーネントのローディングとイニシャライゼーションの負荷をもっと遅い時間にシフトさせることが可能となる。この結果、従来よりも速いブートシステムをユーザに提供することになり、一方、通常のユーザが期待しているようなフル・ユーザOSの実績がユーザに提供され、実質的にユーザOSの性質に影響を与えない。
【0019】
以下に説明する実施例は図面を参照することによってよく理解できる。以下の記載は単なる例であることを意図しており、実施例を簡単に説明する。
【0020】
他の様々な回路(circuits/circuitry)又はコンポーネントを使用できるが、図1はコンピュータシステムの回路又はコンポーネントの一例を示すブロック図である。図1に示す例は、Lenovo(US)Inc.of Morrisville、NCで販売されているパーソナルコンピュータのTHINKPADシリーズのようなコンピューティングシステムとしてもよい。但し、ここでの記載から明らかなように、他の特徴や図1に示される特徴の一部だけを有することにしてもよい。
【0021】
図1の例では、製造業者(例えば、INTEL、AMD、ARM等)に応じて変更できるアーキテクチャを有するいわゆるチップセット(chipset)110(集積回路、チップ、又はチップセットのグループ等)を備えている。チップセット110のアーキテクチャは、DMI(direct management interface)142又はリンクコントローラ(link controller)144を介して情報(例えば、データ、信号、及びコマンド等)を交換するコア・メモリコントロールグループ(core and memory control group)120及びI/Oコントローラハブ(I/O controller hub)150を備えている。図1において、DMI142は、chip-to-chipインターフェイスである(ノースブリッジ(north-bridge)とサウスブリッジ(south-bridge)間のリンクとして参照する場合がある)。コア・メモリコントロールグループ120は、FSB(front side bus)124を介して情報を交換する1つ以上のプロセッサ(processors)122(例えば、シングル又はマルチコア)及びメモリコントローラハブ(memory controller hub)126を備えている。コア・メモリコントロールグループ120は、従来のノースブリッジ(north-bridge)式のアーキテクチャに取って代わるチップがインテグレィトされてもよい。
【0022】
図1において、メモリコントローラハブ126は、メモリ(memory)140とのインターフェイスを行う(例えば、システムメモリまたはメモリとして参照できるRAM形式としてサポートを提供する)。メモリコントローラハブ126は、さらに、ディスプレイデバイス(例えば、CRT、フラットパネル、プロジェクタ等)192用のLVDSインターフェイス(LVDS interface)132を備えている。ブロック(block)138はLVDSインターフェイス132を介してサポートされるテクノロジー(例えば、SDVO(serial digital video)、 HDMI/DVI、 ディスプレイポート(display port))を備えている。メモリコントローラハブ126は、また、ディスクリートグラフィックス(discrete graphics)136をサポートするPCI−E(PCI-express interface)134を備えている。
【0023】
図1において、I/Oコントローラハブ150は、SATAインターフェイス151(例えば、HDD/SDD180用等)、PCI−Eインターフェイス152(例えば、無線接続 182用等)、USBインターフェイス153(例えば、デジタイザ、キーボード、マウス、カメラ、電話、ストレージ、他の接続デバイス等の入力デバイス(input devices)184用)、ネットワークインターフェイス154 (例えば、LAN)、GPIOインターフェイス155、LPCインターフェイス170(ASICs171、TPM172、superI/O173、ファームウェアハブ174、BIOSサポート175、ROM177、Flash178、及びNVRAM179のような各種タイプのメモリ176用)、パワーマネージメントインターフェイス(power management interface)161、クロックジェネレータインターフェイス(clock generator interface)162、オーディオインターフェイス(audio interface)163(例えば、スピーカ194用)、TCOインターフェイス(TCO interface)164、システムマネージメントバスインターフェイス(system management bus interface)165、 BIOS165及びブートコード190を含むことができるSPI Flash166等を備えている。I/Oコントローラハブ150は、ギガビット・イーサネット(登録商標)サポートを含んでいてもよい。
【0024】
コンピュータシステムは、パワーオン後にSPI Flash166に格納されているBIOS168がブートコード190を実行し、その後、1つ以上のユーザOS及びアプリケーションソフトウェア(例えば、メモリ140に格納されている)のコントロール化でデータを処理するように構成してもよい。ユーザOSは、各種の記憶場所に格納でき、例えば、BIOS168の指令に応じてアクセスされるようにしてもよい。ここで記載したように、デバイスは図1のコンピュータシステムに示されるよりも少なくまたは多くの特徴を含んでいてもよい。
【0025】
図2を参照して、ブーティングの観点から重要でないハードウェアデバイス及び/又はソフトウェア要素を選択的にディスエーブルにする実施例を説明する。ここでは従来の実装と比べてブート時間を短縮してより短い時間でブートされるユーザOSを提供する。例えば、コンピュータシステムのパワーオンに応答して、コンピュータシステムはユーザOSのブートを開始する(S210)。実施例では、より速いブーティングを提供するために、ブーティングのために重要でないハードウェアデバイス及び/又はソフトウェア要素を選択してディスエーブルとするサービスを備えている(S220)。このサービスは、コンピュータシステムのシャットダウン/パワーオフ等の直前までのコンピュータシステムが稼働している間(ユーザOSの制御下で)、例えば、ブーティング処理自体の間、バックグラウンドサービスとして様々な時に稼働することができる。サービスは、重要でないハードウェアデバイス及び/又はソフトウェア要素を選択すると、それらがブーティング処理から排斥されるように、コンピュータシステムのシャットダウン前(S240)に、選択したハードウェアデバイス及び/又はソフトウェア要素をディスエーブルに設定する(S230)。
【0026】
図3を参照して、ブーティング処理から排斥されるハードウェアデバイス及び/又はソフトウェ選択して ディスエーブルに設定するサービスを備え、ブート時間を低減する実施例を説明する。例えば、コンピュータシステムのパワーオンに応答して、コンピュータシステムは通常のようにブーティング処理を開始する(S310)。ブーティングの間、コンピュータシステムは利用可能なハードウェアデバイス及びロードしてイニシャライズする関連するソフトウェア要素(例えば、デバイスドライバ)を検出/エニューメレイト(enumerate)する(S320)。但し、OSによって自動でロードされてスタートするようにプリセットされたハードウェアデバイス及び/又はソフトウェア要素の全てを単純にロードしてイニシャライズする代わりに、ブーティング処理から排斥されるハードウェアデバイス及び/又はソフトウェア要素をディスエーブルに設定する(S330)。ディスエーブルされたハードウェア及び/又はソフトウェア要素を処理しないで、ブーティング処理を継続する(S340)。ブーティング処理が完了後(S350)、処理されなかったハードウェアデバイス及び/又はソフトウェア要素をイネーブルとして処理する(S360)。例えば、オーディオはシステムをブートするのに必要ない。従って、オーディオデバイスを関連するユーザOSのソフトウェアコンポーネントと共にディスエーブルに設定してもよい。コンピュータシステムがブートされたとき、上述の影響のあるオーディオコンポーネント(オーディオデバイス及び関連するユーザOSのソフトウェアコンポーネント)は起動されず、これによりブートが完了するためのタスクの量を低減する。これらは、コンピュータシステムがユーザOSをブートした後、起動されることにしてもよい。従って、ブーティング処理は、リソース使用の観点から簡素化される。すなわち、これらのハードウェアデバイス及び/又はソフトウェア要素はユーザOSのブートアップの間、起動から排斥されるので、ロード及びイニシャライズ等が不要となり、より重要なブートコンポーネントに集中するためにシステムリソースが解放される。このため、ブーティング処理は、少ないコンポーネントを処理しながら継続し、より速くブーティング処理が完了する。
【0027】
ハードウェアデバイス及び/又はソフトウェア要素の排斥を実行する場合に、ハードウェアデバイス及び/又はソフトウェア要素間の従属性を特定することは有用である。また、排斥が実行されないコンピュータシステム(ストックユーザOSを有するシステム)と同一又は類似するポスト・ブーティング機能を保証しながら、ロード時間を最適化するような方法でディスエーブルオペレーション及び/又はイネーブルオペレーションのシーケンスを考慮することも有用である。従って、ブーティング処理からディスエーブル/排斥されるハードウェアデバイス及び/又はソフトウェア要素の選択は、各種の要因に基づいて変更してもよい。
【0028】
一例では、ディエーブル/排斥する重要でないブーティングコンポーネントを自動的に選択するサービスを備えることにしてもよい。重要でないコンポーネントは、フル・ユーザOS(full user OS experience)のブーティング処理の完了の成功のために必要でないコンポーネントとして定義される。一方、重要なコンポーネントは、フル・ユーザOSのブーティング処理の成功のために必要なものである。
【0029】
重要なコンポーネントは、例として、例えばハードディスクやそれに関連するドライバのような、ユーザOSのブーティングのために必要なハードウェアデバイス及び/又はソフトウェア要素を含むことにしてもよい。重要なコンポーネントは、さらに、ユーザOSのローディングに必ずしも不可欠ではないが、例えば、ブーティング処理の間に、可視的な表示を可能とするためのビデオのイネーブリング及び/又はバイオメトリック入力/ログインのためのバイオメトリックデバイスのイネーブリングのような、コンピュータシステムの好適な使用のために要求される特徴を含むものとリファインしてもよい。従って、重要なコンポーネントは、ユーザの視点からフル・ユーザOSを提供するために必要なものである。
【0030】
重要でないコンポーネントは、コンピュータの重要でない構成がブート完了でイネーブルしてもよいようなコンポーネントを含む。非制限的な例として、重要でないコンポーネントは、オーディオデバイスとこれに関連するドライバ、外部デバイス(インテグラル・カメラのようなUSBに接続されるデバイス)とこれに関連するドライバ、ネットワークデバイス(例えば、Ethernet(登録商標)/WiFiのコンポーネント)とこれに関連するドライバ、バイオメトリックデバイスとこれに関連するドライバ、ファイアーウォール、他のセキュリティソフトウェア、専用のソフトウェア等を含む。ここで使用されるコンテキストにおいて、重要である又は重要でないハードウェアデバイス及び/又はソフトウェア要素の分類は、予め定義してもよく、また、変更してもよく、さらに、動的に(dynamically)決定してもよい。
【0031】
図4を参照して、ハードウェアデバイス及び/又はソフトウェア要素が重要であるか又は重要でないかを動的に決定する実施例について説明する。コンピュータシステムがブーティング処理を開始すると(S410)、サービスコントロールマネージャー又はユーザOSのコンポーネントは、通常どおりユーザOSによる自動スタートのために設定されたハードウェアデバイス及び/又はソフトウェア要素を検出し(S420)、非遅延要素をチェックする(S430)。一例では、このハードウェアデバイス/ソフトウェア要素のエニューメレーション(enumeration)に応答して、非遅延要素(non-delay factor)、例えば、コンピュータシステムのユーザアカウントに関連づけられたセキュリティトークン(例えば、パスワードやバイオメトリックデバイス・プロテクション)を、チェックしてもよい。非遅延要素は、例えば、ブーティング処理において(処理する)特定のハードウェアデバイス及び/又はソフトウェア要素の導入がブート時間を遅延させない(すなわち、ブートの間にハードウェア及び/又はソフトウェア要素を処理するために利用できる十分なリソースがある)とすることができる。非遅延要素と特定されると(S440の「Yes」)、非遅延要素のハードウェアデバイス及び/又はソフトウェア要素を重要なものとして処理(イネーブルとして処理)する(S450)。例えば、セキュリティトークンに関連するデバイスは、たとえ一般的に重要でないとしても、この場合、重要と考えて動作させてもよい。
【0032】
例えば、ユーザが、指紋リーダーを介してバイオメトリック入力が要求されるコンピュータシステム用のセキュリティトークンを確立すると、たとえサービスが通常、重要でないと分類するとしても、指紋リーダーとこれに関連するソフトウェア要素がブーティング処理の間にロードされてイニシャライズできるように、これらを検出してイネーブルとしてもよい。
【0033】
このようなチェックに応答して(ステップS430、S440)、ここで説明したように、重要でない(ディスエーブルされた)ハードウェアデバイス及び/又はソフトウェア要素を処理しないでブーティング処理を継続する(ステップS460)。ブーティング処理が完了後(S470)、処理されなかったハードウェアデバイス及び/又はソフトウェア要素をイネーブルとして処理する(S480)。従って、動的に特定される重要なハードウェアデバイス/ソフトウェア・デバイス(指紋リーダー、ブーティングを遅延させないソフトウェア要素/ハードウェアデバイス等)は、たとえサービスが一般的に(デフォルトで)重要でないとしてこれらのハードウェアデバイス/ソフトウェア・デバイスをディスエーブルに設定していたとしても、ブーティング処理の完了によって利用可能となる。
【0034】
図5を参照して、重要でない/重要であるとしてリストを作成するためのハードウェアデバイス及び/又はソフトウェア要素の判別を、収集情報(intelligence)を用いて又はユーザの選択によって決定する実施例を説明する。例えば、コンピュータシステムがブートされて稼働している間(ステップS510)、サービスは、ユーザによって全く使用されない又は頻繁に使用されないハードウェアデバイス及び/又はソフトウェア要素を検出できるように、ユーザによって全く使用されない又は頻繁に使用されないハードウェアデバイス及び/又はソフトウェア要素に関する情報を収集してもよい(ステップS520)。これらが検出されると、サービスは、これらが重要でないとして選択し、コンピュータシステムをリブートするときに、スタート、ロード、及びイニシャライズされないように、ブーティング処理からこれらをディスエーブル/排斥するように、シャットダウン時に設定してもよい(S530、540)。これにより、ブーティング処理の間に、頻繁に/全く使用されないコンポーネントの不要な処理を省くことによってブート時間が低減される。
【0035】
ここで説明したような実施例の機能と一致するプログラム指令を実行するように構成された1つ以上のコンピューティングデバイスを実装してもよいことは容易に理解できる。この点に関し、図1はコンピューティングデバイスの非制限的な例を示している。実施例では、デスクトップ、ワークステーション、サーバー、タブレット等のような各種コンピューティングシステムを用いて実装することにしてもよい。
【0036】
当業者が理解するように、各種態様は、システム、方法、コンピュータプログラム(プロダクト)として実装してもよい。従って、ここでは全てを一般的に「回路」、「モジュール」、「システム」として説明したように、ある局面では、全体としてハードウェアの形態、ソフトウェア及び/又はハードウェアを含む形態を取ることができる。さらに、ある局面では、ここで具体化されたコンピュータ読み取り可能なプログラムコードを格納した1つ以上のコンピュータ読み取り可能な記録媒体を実装したコンピュータプログラムプロダクトの形態を取ることができる。
【0037】
1つ以上の非信号コンピュータ読み取り可能な記録媒体(non-signal computer readable medium(s))の組み合わせを利用してもよい。非信号コンピュータ読み取り可能な記録媒体は、例えば、電気・磁気・光学・電磁気・赤外線・半導体のシステム、装置、デバイス、又はこれらの好適な組み合わせとしてもよい。コンピュータ読み取り可能な記録媒体の特定の例としては、ポータブルコンピューターディスケット(portable computer diskette)、RAM、ROM、EPROM、Flashメモリ、光ファイバー、磁気ストレージデバイス、又はこれらの好適な組み合わせである。
【0038】
コンピュータ読み取り可能な媒体に具現化されるプログラムコードは、これらには限定されないが、無線、有線、光ファイバーケーブル、RF、又はこれらの好適な組み合わせを含む好適な媒体を用いて転送することができる。
【0039】
オペレーションを実行するためのコンピュータプログラムコードは、1つ以上のプログラミング言語の組み合わせで記述してもよい。コンピュータプログラムコードは、スタンドアロンソフトウェアパッケージとして単一のデバイスで全体又は一部を、単一のデバイスで一部を及び他のデバイスで一部を、又は、他のデバイスで全体を実行することにしてもよい。ある場合は、デバイスは、LANやWANを含む各種ネットワークを介して接続されてもよく、この接続は他のデバイスを介して(例えば、インターネットサービスプロバイダを用いたインターネットを介して)、又は、USB接続のようなハードワイヤー接続を介してなされてもよい。
【0040】
コンピュータプログラム指令は、汎用目的のコンピュータ、特定目的のコンピュータ、又は他のプログラマブルデータ処理装置に、コンピュータのプロセッサやプログラマブル処理装置が特定の機能や作用を実行するマシンを生成するように提供されてもよい。
【0041】
コンピュータプログラム指令は、また、特定の機能や作用を実現する指令を含む製造物(article of manufacture)を生成するように、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置に特定の方法で機能を指示できるコンピュータ読み取り可能な媒体に格納されてもよい。
【0042】
コンピュータプログラム指令は、コンピュータ、他のプログラマブル処理装置、又は他の装置上で実行され、特定の機能や作用を実現する方法を提供するように、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置にロードされて、一連の動作ステップが実行されてコンピュータ実施方法を提供することにしてもよい。
【0043】
この開示は、説明や記述を目的として提供されており、消尽や制限を意図していない。多くの変更や変形が可能であることは当業者にとって明らかである。ここでの実施例は原理や実用的な用途を説明するために選択して記述したものであって、さまざまな実施のため、考えられる特定の使用に適するようにこの開示に各種の変更を加えることが可能であることを当業者は理解できる。
【0044】
従って、本実施の形態を、図面を参照して説明してきたが、ここでの記載は制限的なものではなく、この開示の範囲及び精神を逸脱することなく、当業者によって各種の変形や変更が可能であることが理解されるべきである。
【符号の説明】
【0045】
110 チップセット
120 コア・メモリコントロールグループ
122 プロセッサ
124 FSB
126 メモリコントローラハブ
142 DMI
144 リンクコントローラ
150 I/Oコントローラハブ
166 SPI Flash
168 BIOS
190 ブートコード

【特許請求の範囲】
【請求項1】
コンピュータシステムのユーザOSのブーティング処理を開始する工程と、
前記ユーザOSに応じてスタートアップするために重要でないハードウェアデバイスを特定する工程と、
前記重要でないハードウェアデバイスを排斥する工程と、
前記排斥した重要でないハードウェアデバイスを起動させずに、前記ブーティング処理を完了して前記ユーザOSを提供する工程と、
を含むことを特徴とする方法。
【請求項2】
さらに、
前記ユーザOSに応じてスタートアップするために重要でないソフトウェア要素を特定する工程と、
前記ユーザOSに応じて前記スタートアップするために重要でないソフトウェア要素を排斥する工程と、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
さらに、
前記ブーティング処理の完了に応答して、前記ユーザOSに応じてスタートアップするために重要でない、ハードウェアデバイス及びソフトウェア要素の1つ以上を起動する工程を含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記排斥する工程は、前記排斥されたハードウェアデバイスに関連する1つ以上のソフトウェア要素をロードしないことを含むことを特徴とする請求項2又は請求項3に記載の方法。
【請求項5】
前記重要でないソフトウェア要素は、前記重要でないハードウェアデバイスに直接又は間接に関連するものであることを特徴とする請求項2〜請求項4のいずれか1つに記載の方法。
【請求項6】
前記特定する工程は、さらに、重要でないハードウェアデバイス及び重要でないソフトウェア要素の少なくとも一方を動的に特定することを含むことを特徴とする請求項2〜請求項5のいずれか1つに記載の方法、
【請求項7】
前記動的な特定は、さらに、前記コンピュータシステムのユーザアカウントに関連づけられたセキュリティトークンをチェックすることを含むことを特徴とする請求項6に記載の方法。
【請求項8】
さらに、前記コンピュータシステムのユーザアカウントに関連づけられたセキュリティトークンの特定に応答して、前記セキュリティトークンに関連づけられたハードウェアデバイスを起動する工程を含むことを特徴とする請求項7に記載の方法。
【請求項9】
前記排斥する工程は、前記重要でないハードウェアデバイスをディスエーブル状態に設定することを含むことを特徴とする請求項1〜請求項8のいずれか1つに記載の方法。
【請求項10】
前記重要でないハードウェアは、バイオメトリックデバイス、オーディオデバイス、コンピュータシステムのUSBに接続されたデバイス、及びネットワーク接続デバイスの少なくとも1つであることを特徴とする請求項9に記載の方法。
【請求項11】
前記排斥する工程は、前記ユーザOSのシャットダウンの近くで実行されることを特徴とする請求項1〜請求項10のいずれか1つに記載の方法。
【請求項12】
1つ以上のプロセッサと、
前記1つ以上のプロセッサに接続されたメモリと、を備え、
前記1つ以上のプロセッサは、
ユーザOSのブーティング処理を開始する工程と、
前記ユーザOSに応じてスタートアップするために重要でないハードウェアデバイスを特定する工程と、
前記重要でないハードウェアデバイスを排斥する工程と、
排斥された前記重要でないハードウェアデバイスを起動させないで、前記ブーティング処理を完了して前記ユーザOSを提供する工程と、
を実行することを特徴とするシステム。
【請求項13】
前記1つ以上のプロセッサは、さらに、
前記ユーザOSに応じてスタートアップするために重要でないソフトウェア要素を特定する工程と、
前記ユーザOSに応じてスタートアップするために重要でないソフトウェア要素を排斥する工程と、
を実行することを特徴とする請求項12に記載のシステム
【請求項14】
前記1つ以上のプロセッサは、前記ブーティング処理の完了に応答して、前記ユーザOSに応じてスタートアップするために重要でない、ハードウェアデバイス及びソフトウェア要素の少なくとも1つを起動する工程を実行することを特徴とする請求項13に記載のシステム。
【請求項15】
前記重要でないソフトウェア要素は、前記重要でないハードウェアデバイスと直接的又は間接的に関連するものであることを特徴とする請求項13又は請求項14に記載のシステム。
【請求項16】
前記特定する工程は、前記重要でないハードウェアデバイス及びソフトウェア要素の少なくとも一方を動的に特定することを特徴とする請求項13〜請求項15のいずれか1つに記載のシステム。
【請求項17】
前記動的な特定は、さらに前記コンピュータシステムのユーザアカウントに関連するセキュリティトークンをチェックすることを含むことを特徴とする請求項16に記載のシステム。
【請求項18】
前記1つ以上のプロセッサは、前記コンピュータシステムのユーザアカウントに関連するセキュリティトークンの特定に応答して、前記セキュリティトークンに関連づけられたハードウェアデバイスを起動することを特徴とする請求項17に記載のシステム。
【請求項19】
前記排斥する工程は、前記排斥されたハードウェアデバイスに関連する1つ以上のソフトウェア要素をロードしないことを含むことを特徴とする請求項12〜請求項18のいずれか1つに記載のシステム。
【請求項20】
前記排斥する工程は、前記重要でないハードウェアデバイスをディスエーブル状態に設定することを含むことを特徴とする請求項12〜請求項19のいずれか1つに記載のシステム。
【請求項21】
前記重要でないハードウェアは、バイオメトリックデバイス、オーディオデバイス、コンピュータシステムのUSBに接続されたデバイス、及びネットワーク接続デバイスの少なくとも1つであることを特徴とする請求項20に記載のシステム。
【請求項22】
前記排斥する工程は、前記ユーザOSのシャットダウンの近くで実行されることを特徴とする請求項12〜請求項21のいずれか1つに記載のシステム。
【請求項23】
コンピュータシステムに搭載されるプログラムであって、
ユーザOSのブーティング処理を開始する工程と、
前記ユーザOSに応じてスタートアップするために重要でないハードウェアデバイスを特定する工程と、
前記重要でないハードウェアデバイスを排斥する工程と、
前記除外された前記重要でないハードウェアデバイスを起動しないで、前記ブーティング処理を完了して前記ユーザOSを提供する工程と、
をコンピュータに実行させるコンピュータが実行可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−234539(P2012−234539A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2012−100252(P2012−100252)
【出願日】平成24年4月25日(2012.4.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.HDMI
【出願人】(505205731)レノボ・シンガポール・プライベート・リミテッド (292)
【復代理人】
【識別番号】100089118
【弁理士】
【氏名又は名称】酒井 宏明
【Fターム(参考)】