(57)【特許請求の範囲】
【請求項１】
システムであって、
プロセッサ手段と、
前記プロセッサ手段に結合された少なくとも１つのユーザ入力ハードウェア手段と、
前記プロセッサ手段の初期化を実行し、前記システムの構成に基づいて前記少なくとも１つのユーザ入力ハードウェア手段用のインターフェースを公表するが、前記少なくとも１つのユーザ入力ハードウェア手段を初期化はせず、ＯＳを起動するべく前記少なくとも１つのユーザ入力ハードウェア手段を初期化することなくオペレーティングシステム（ＯＳ）のブートストラップコードを起動し、第１のルーチンを含むプレブートコードを格納するための不揮発性ストレージ手段と
を備えるシステム。
【請求項２】
インジケータを格納するための第２のストレージ手段を更に備え、前記システムの次のブートがユーザ入力によってインタラプトされることを示す、請求項１に記載のシステム。
【請求項３】
前記プロセッサ手段は、前記第２のストレージ手段内に格納された前記インジケータにアクセスし、前記インジケータが前記システムの前記次のブートがインタラプトされることを示す場合、前記少なくとも１つのユーザ入力ハードウェア手段を初期化する、請求項２に記載のシステム。
【請求項４】
前記プロセッサ手段は、前記少なくとも１つのユーザ入力ハードウェア手段を介してユーザ入力を受信することなく、前記初期化および予め定められた時間の後に前記ＯＳのブートストラップコードを起動する、請求項３に記載のシステム。
【請求項５】
前記プレブートコードは、前記少なくとも１つのユーザ入力ハードウェア手段を介して構成更新を受信し、ストレージ手段内に前記構成更新を格納した後、前記システムを再起動させる第２のルーチンを含む、請求項３または４に記載のシステム。
【請求項６】
前記プロセッサ手段は、前記インジケータが前記システムの前記次のブートがインタラプトされないことを示す場合、前記少なくとも１つのユーザ入力手段を初期化することなく前記ＯＳのブートストラップコードを直ちに起動する、請求項２に記載のシステム。
【請求項７】
コンピュータシステムの初期化を実行し、前記コンピュータシステムのプロセッサを初期化する段階と、
プレブートコードの構成に基づいて前記コンピュータシステムのユーザ入力ハードウェアデバイス用のインターフェースを公表するが、前記ユーザ入力ハードウェアデバイスを初期化はしないことを含む、前記プロセッサの前記プレブートコードを実行する段階と、
前記ユーザ入力ハードウェアデバイスを初期化することなく、オペレーティングシステム（ＯＳ）のブートストラップコードを起動し、ＯＳを起動する段階と
を備える方法。
【請求項８】
前記ＯＳのブートストラップコードを起動する前にユーザからの入力が要求されているかどうかを判断し、そうである場合に前記ユーザ入力ハードウェアデバイス用の前記インターフェースを呼び出す段階を更に備える、請求項７に記載の方法。
【請求項９】
前記インターフェースを呼び出すことに応答して前記ユーザ入力ハードウェアデバイスを初期化する段階を更に備える、請求項８に記載の方法。
【請求項１０】
前記ユーザ入力ハードウェアデバイスを初期化した後、ユーザインターフェースハンドラを介して前記ユーザ入力ハードウェアデバイスからデータを得る段階を更に備える、請求項９に記載の方法。
【請求項１１】
前記データを前記プレブートコードに提供する段階を更に備える、請求項１０に記載の方法。
【請求項１２】
前記ユーザからの入力が要求されているかどうかを判断する段階は、前記プレブートコードの実行中にユーザのインタラプトが予期されるかどうかを示すスタティック変数にアクセスする段階を備える、請求項８に記載の方法。
【請求項１３】
前記プレブートコードの前記構成はユーザによって制御される、請求項７に記載の方法。
【請求項１４】
前記ユーザが、前記コンピュータシステムの先の動力サイクル中に前記プレブートコード中の設定を更新し、前記コンピュータシステムの次の動力サイクルにおいて前記ＯＳのブートストラップコードを起動する前に、前記ユーザ入力ハードウェアデバイスを初期化させることを可能にする段階を更に備える、請求項１３に記載の方法。
【請求項１５】
前記コンピュータシステム内にインジケータを格納し、前記コンピュータシステムの次のブートがユーザ入力によってインタラプトされることを示す段階と、前記次のブート中に前記インジケータにアクセスする段階と、前記インジケータが前記コンピュータシステムの前記次のブートがインタラプトされることを示す場合、前記次のブート中に前記ユーザ入力ハードウェアデバイスを初期化する段階とを更に備える、請求項７に記載の方法。
【請求項１６】
コンピュータシステムであって、
前記コンピュータシステムの構成に基づいてプレブート環境中で前記コンピュータシステムのユーザ入力ハードウェアデバイス用のインターフェースを公表するが、前記ユーザ入力ハードウェアデバイスの初期化はしない手段と、
前記ユーザ入力ハードウェアデバイスを初期化する前に、オペレーティングシステム（ＯＳ）のブートストラップコードを起動し、前記コンピュータシステムのブート環境内でＯＳを起動するための手段と
を備えるコンピュータシステム。
【請求項１７】
前記コンピュータシステムのストレージ内に格納されたインジケータが前記コンピュータシステムの次のブートがインタラプトされないことを示す場合、前記ユーザ入力ハードウェアデバイスを初期化する前に前記ＯＳのブートストラップコードを直ちに起動するための手段を更に備える、請求項１６に記載のシステム。
【請求項１８】
前記ストレージに格納された前記インジケータにアクセスし、前記インジケータが前記システムの前記次のブートがインタラプトされることを示す場合、前記ユーザ入力ハードウェアデバイスを初期化し、前記ユーザ入力ハードウェアデバイスを介してユーザ入力を受信することなく、初期化後、および予め定められた時間後に前記ＯＳのブートストラップコードを起動するための手段を更に備える、請求項１７に記載のシステム。
【請求項１９】
前記ユーザ入力ハードウェアデバイスを介して構成更新を受信し、ストレージ内に前記構成更新を格納し、その後、前記コンピュータシステムを再起動させるための手段を更に備える、請求項１６に記載のシステム。
【請求項２０】
前記インターフェースを呼び出して、前記ユーザ入力ハードウェアデバイスを初期化し、前記ユーザ入力ハードウェアデバイスを初期化した後、ユーザインターフェースハンドラを介して前記ユーザ入力ハードウェアデバイスから前記構成更新に対応するデータを得るための手段を更に備える、請求項１９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
従来、多くのコンピューティングシステムは、システムクロックの設定、メモリセットアップの管理、新しいハードドライブの構成、ブートの順番の変更、パスワードのリセット等、様々な設定機能を実行するべく、ユーザがブート処理をインタラプトすることを可能にしてきた。インタラプトは、基本入力／出力システム（ＢＩＯＳ）ブート処理中に、ｄｅｌｅｔｅ、Ｆ１、Ｆ２、Ｆ１０、またはｃｔｒｌ‐ａｌｔ‐ｄｅｌｅｔｅ等、ユーザが特定のキーボードボタンをアクティブ化することにより開始することができる。そのようなシステムのために、ブート時間は、ユニバーサルシリアルバス（ＵＳＢ）キーボード等の入力／出力（Ｉ／Ｏ）デバイスを列挙およびポーリングし、ユーザがそのようなインタラプトを確かに開始したかどうかを判断するときに、著しく長くなることがある。
【図面の簡単な説明】
【０００２】
【図１】オペレーティングシステムの起動前に行う操作の例示である。
【０００３】
【図２】本発明の一実施形態によるオペレーティングシステムを起動する前に行う操作の例示である。
【０００４】
【図３】本発明の一実施形態による、向上したブートを行うための方法の流れ図である。
【０００５】
【図４】本発明の実施形態による、ファームウェアおよび向上したブートのインタラプト制御を可能にすることに関連して行う操作の流れ図である。
【０００６】
【図５】本発明の少なくとも一実施形態による、第１および第２のシステムを例示するブロック図である。
【０００７】
【図６】本発明の他の少なくとも一実施形態による、システムのブロック図である。
【０００８】
【図７】本発明の他の少なくとも一実施形態による、システムのブロック図である。
【発明を実施するための形態】
【０００９】
実施形態は、特定の入力／出力（Ｉ／Ｏ）デバイス（例えばユニバーサルシリアルバス（ＵＳＢ）キーボード、０．５〜１．５秒程度掛かり得る）をポーリングする負担に必ずしも直面することなく、プラットフォームのインタラプト可能性の制御を可能にするように用いることができる。モバイルデバイス、例えばスマートフォン、タブレットコンピュータ、ウルトラブック（登録商標）、電子リーダ等のコンピューティングシステムはより普及して、インスタントオンまたはニアインスタントオンの動作に対するユーザの希望が存在するため、ブート速度が更に問題となる。それにも拘わらず、ブート処理をインタラプトし、セットアップまたは診断等の一定のプレブートモードに入る能力を提供する等、矛盾する要求が存在するが、これは、ユーザがある種のホットキーを選択することによってトリガすることができる。このような操作を含めるには、インタラプトを承諾するキーボードが連結される、バスを列挙するだけで０．５秒掛かることがある。更に、ある量の待ち時間をユーザに提供してキーを処理するが、これにより、プラットフォームがブート処理を著しく遅延させることを絶えず行うシナリオを導入し、ブート時間を更に悪化させるため、まだほとんど使用されていない。
【００１０】
実施形態はユーザ入力が提供されない多くのブートで、この状況を制御可能に回避することができ、従って大部分のシステムブートのニアインスタントオンのブートを可能にする。様々な実施形態によれば、プラットフォームＢＩＯＳ等のプレブートコードは、Ｉ／Ｏデバイス等の１つまたは複数のハードウェアデバイスの初期化の遅延（換言すれば、オンデマンドの初期化）をサポートすることができる。
【００１１】
実施形態は、ハードウェアが実際に初期化されると、通常表示される標準的インターフェースを表示するが、初期化処理は回避される。消費者がインターフェースを呼び出す場合には、ハードウェアに触れるのみであり、（その場合のみ）ハードウェアを初期化することに関連する時間に実際に直面する
【００１２】
ここで図１を参照して、ユーザ入力のためにポーリングするハードウェアを初期化するオーバヘッドを負担するオペレーティングシステムを起動する前に行われる、従来の操作の例示を示す。図１に見るように、オペレーティングシステム（ＯＳ）を起動する段階は、ＢＩＯＳ初期化から開始し、これにより、中央処理装置（ＣＰＵ）／チップセットが初期化される。次に、Ｉ／Ｏバス等のバスを列挙してデバイスを探す。このバス上に、例えばキーボード等のユーザ入力ハードウェアデバイスなどのデバイスに同様にインターフェース接続するＵＳＢコントローラ等、１つまたは複数ハードウェア要素が存在することがある。そのようなユーザ入力デバイス、より一般的にはＩ／Ｏデバイスの例としては、キーボード、マウス、テンキーパッド、タッチスクリーン、ディスプレイスクリーン上に表示された仮想キーボード等が挙げられ得る。
【００１３】
見る通り、プローブ操作は、ハードウェア要素とデバイスとの間で行われ、デバイスの存在をプローブする。次に、レガシーＵＳＢをエミュレートするべく、周期的なシステム管理インタラプト（ＳＭＩ）を周期的なインタラプトにプログラミングする。見る通り、インタラプトはＣＰＵ／チップセット内で生成され得る。従って、ポーリング操作が行われ、これによってＣＰＵは、ハンドラがデバイス、例えばキーボードの存在のポーリング、ユーザ入力のポーリングをこうして実行することができるシステム管理モード（ＳＭＭ）に入る。例えば、Ｉ／Ｏデバイスに、ユーザが入力を提供し、ブート処理がインタラプトされるかどうかを示すようにインタロゲーションしてもよい。従って、ユーザが開始した入力についてデバイスは監視される。一例として、このインタロゲーションは、デバイスとハンドシェイクする段階と、デバイスをポーリングする段階とを伴う。ハンドシェイクを確立する段階は、例えば、特定の形式のデータを特定のポートに送信することを伴う。
【００１４】
なおも図１を参照すると、次に、存在する場合、システムの不揮発性ストレージ、例えばフラッシュメモリ等の目標媒体、またはハードドライブ等の大容量ストレージデバイスからＯＳローダを読み取る。次いで、ＢＩＯＳはＯＳを起動させる。ＯＳの起動後、ネイティブＯＳドライバを起動する。デバイスをプローブし、操作をポーリングすることに関連する時間の遅延のため、このブート処理は、所望よりも長い時間が掛かる可能性があることに留意されたい。
【００１５】
代わって、ある実施形態によれば、様々なオーバヘッドは、ＯＳの起動前にブート処理から取り除くことができる。ここで図２を参照して、本発明の一実施形態による、オペレーティングシステムの起動前に行われる操作の例示を示す。図２に見るように、オーバヘッドを取り除くと、ＯＳの初期化と起動との間の時間は遥かに短くなる可能性がある。見る通り、ＣＰＵ／チップセットの初期化後、ＯＳローダを直ちに読み取り、その結果、ＯＳを直ちに起動し、上記のオーバヘッドを取り除くことができる。
【００１６】
このように、たとえ電源をオフにしたプラットフォームからブートするときでも、「インスタントオン」またはほぼ「インスタントオン」の知覚される操作が行われる。このような知覚されるインスタントオンの操作を実現するべく、デバイスをプローブし、ユーザ入力をポーリングするこれらのオーバヘッド（通常、これは生じることはない）を回避することができる。それにも拘わらず、ブート処理に時折割り込んで、例えば診断モードに入り、またはユーザ入力がＢＩＯＳセットアップルーチンに入ることを可能にする、妥当な製品要求が存在する。
【００１７】
ここで図３を参照して、本発明の一実施形態により向上したブートを行うための方法の流れ図を示す。図３に示すように、方法１００は、ＢＩＯＳの論理等のファームウェアに実装するとしてもよい。見る通り、方法１００は、システムの電源をオンにすることから開始する（ブロック１０５）。システムのこの電源オンに応答して、初期化を行うことができる（ブロック１１０）。この初期化により、ＣＰＵ／チップセットの初期化、メモリの検出、１つまたは複数のバスおよび、おそらくは他の一定の低レベルのハードウェアの初期化がトリガされ得る。更に、プレブート環境、例えばユニファイド・エクステンシブル・ファームウェアインタフェース（ＵＥＦＩ）のプレブート環境の実行を行うことができる。このプレブート環境の一部として、ダイアモンド１１５でシステムがインターフェースの遅延初期化を可能にすることができるかどうかを判断することができる。本発明の範囲はこの点に限定されないが、一実施形態において、この判断は、向上したブートを可能にし、または無効にするかどうかを指示するＢＩＯＳ設定に基づくことができる。この構成設定はユーザ、ＯＳ、または他のエンティティによって制御することができることに留意されたい。システムがそのようなインターフェースの遅延初期化用に構成されていない場合、制御はブロック１２０に進み、通常の広範な初期化が継続し得る。図１に関して上述したように、この初期化は、Ｉ／Ｏバスの列挙および初期化、ハードウェアの初期化、ポーリング等に関する動作を含むとしてもよい。
【００１８】
図３のダイアモンド１１５をなおも参照すると、向上したブートを行うべきであると判断した場合、制御はブロック１２５に進み、入力ハードウェア用のインターフェース（例えばキーボードまたは他のデバイス）を表示することができる。この操作はメモリのみの操作であり、従って、デバイスの実際の初期化が回避され、インターフェースの公表のみが行われると、ゼロタイムが生じることに留意されたい。一実施形態において、このインターフェースの公表は、ＵＥＦＩシンプルテキスト入力プロトコルに従うことができる。次に、ブロック１２５およびダイアモンド１１５から、制御はダイアモンド１３０に進み、ユーザから入力が要求されるかどうかを判断することができる。この判断は、ブートに割り込むべきかどうかを示すＢＩＯＳ設定に基づくことができる。一実施形態において、この設定はプラットフォームの先の動力サイクル中にユーザによって選択し、ユーザがシステムの次のブートをインタラプトすることを試みているかどうかを示す。そのような入力の要求がなされない場合、制御はブロック１４０に直接進み、ＯＳのブートストラップコードを起動することができ、これは、一実施形態においてブートマネージャを介して実装することができる。従って、制御はブロック１５０に進み、ＯＳブートを完了することができる。
【００１９】
なおも図３を参照すると、ユーザからの入力がむしろ要求される場合、制御はブロック１６０に進み、入力デバイスのインターフェースを呼び出すことができる。一実施形態において、このインターフェースは、ＵＥＦＩシンプルテキスト入力プロトコルに従うことができる。先に表示されたインターフェースの呼び出しのために、制御はブロック１６５に進み、入力ハードウェアは例えば、ＰＳ／２、ＵＳＢ、または他のプロトコルに従って初期化することができる。この初期化は、ハードウェアが以前に初期化されなかった（例えば、従来の完全なブート処理がむしろ選択されるブロック１２０で行うように）状況で行われ得ることに留意されたい。
【００２０】
なおも図３を参照すると、次に、制御はブロック１７０に進み、要求をサービス提供し、データを返すことができる。例えば、ユーザのキーボード入力の文脈において、キーボードハンドラを呼び出し、次のキーストロークをキーボードバッファから得て、データを、入力としてこのデータを用いるＢＩＯＳルーチン等の示された位置に返すことができる。次に、制御は、上述のＯＳのブートストラップコードを起動するべく、ブロック１５０に進む。図３の実施形態では高レベルで示してあるが、本発明の範囲はこの点で限定されないことを理解されたい。
【００２１】
ここで図４を参照して、本発明の実施形態により、ファームウェアのインタラプト制御および向上したブートを可能にすることに関して行われる操作の流れ図を示す。図４に示すように、操作は、ＯＳの現在の論理およびＢＩＯＳ論理により部分的に行うことができる。通常、ＯＳ論理はユーザがプラットフォームを構成することを可能にし、次のブートアップをインタラプトし、例えば診断モード、ＢＩＯＳ設定のユーザ更新を可能にするように用いることができる。同様に、ＢＩＯＳ論理は、設定に応じて、向上したブート（高性能のブートモードとも呼ばれる）またはユーザインタラプトブートモードを行うように用いることができる。
【００２２】
図４に見る通り、方法３００は、ユーザがＢＩＯＳセットアップ制御パネルアプレットを選択するかどうかを（ダイアモンド３０５で）決定することにより開始することができ、一実施形態のＢＩＯＳセットアップ制御パネルアプレットは、ＯＳの制御パネルユーザインタフェース中に存在することがある。その場合、制御はブロック３１０に進み、特定のアプリケーションプログラミングインタフェース（ＡＰＩ）、例えばセットファームウェア環境変数（Ｓｅｔ  Ｆｉｒｍｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ  Ｖａｒｉａｂｌｅ）ＡＰＩを呼び出して次のブートに割り込むべきかどうかを示すことができる。この設定情報は、ＯＳおよびＢＩＯＳの双方にアクセス可能な共通のレポジトリである共有されるスタティック変数の位置に格納することができ、これは一実施形態で、メールボックスインタフェースとして動作することができ、従ってＯＳを用いて選択した設定は後でＢＩＯＳによりアクセスすることができる。次いで、制御はダイアモンド３１５に進み、アプレットポリシーが再起動することを指示するかどうかを決定することができる。その場合、通常のシステム操作はブロック３２０で継続してもよい。そうでなければ、プラットフォームの再起動をブロック３３０で行ってもよい。図４の実施形態は、ユーザが１つまたは複数のファームウェア環境変数（例えばＵＥＦＩ変数等）を設定することが可能にする、制御パネルプログラムのアプレットの使用を実演するが、他の実施形態において、ユーザ入力はドライバ、アプレット、またはオペレーティングシステムとは別個の他のソフトウェアプログラムを介して入力するとしてもよいことに留意されたい。
【００２３】
図４をなおも参照すると、そのようなＯＳにより提供される設定に基づくブート中のＢＩＯＳ操作は、このプラットフォームの再起動に応答して、またはシステムの次のブートアップのときに行うことができる。いずれの場合でも、制御はブロック３４０に進み、システムに電源供給することができる。次いで、制御はブロック３４５に進み、プラットフォームは、例えば上述のように初期化することができる。その後、ダイアモンド３５０で、プラットフォームを有効にして条件付きの高性能ブートをサポートするかどうかを判断することができる。上記のように、この条件付きの高性能ブートは、ユーザインタフェースのハードウェア等、一定のハードウェアを初期化するオーバヘッドを回避することができる。
【００２４】
なおも図４を参照すると、プラットフォームをそのように有効にする場合、制御はブロック３６０に進み、スタティック変数ストレージからアクセスされ得るポリシー変数は、読み取られて、高性能のブートモードを選択するかどうかを決定することができる。換言すれば、ユーザのインタラプトが行われない（またはおそらくは行われない）場合、本発明の実施形態による向上したブートを行うことができる。このポリシー変数は一実施形態において、インジケータ（フラグ等）であり、ユーザのインタラプトが予期され、またはあり得るかどうかを示すことができるが、これはユーザがいくつかの理由により次のブートに割り込むことを計画していることを意味する。この変数は、ＯＳの現在の環境において共通にアクセス可能な格納位置に格納することができる。一実施形態において、この格納位置は、フラッシュＮＶＭによってバックアップされるＵＥＦＩ変数等、揮発性メモリまたは不揮発性メモリ（ＮＶＭ）のいずれかのそのような任意の共有メモリ位置であってもよい。
【００２５】
ブートが、ユーザにより開始したブートインタラプト（ダイアモンド３６５で決定された）がない高性能モードにある場合、制御はブロック３９０に直ちに進み、ＯＳを起動することができる。そうでなければ、制御はブロック３７０に進む（高性能ブートまたは向上したブートに対してプラットフォームが有効になっていない場合に、制御は更に進む）。ブロック３７０で、初期化は継続し、様々なＩ／Ｏバスを列挙して、入力デバイスをプローブする（従って初期化する）段階を含むとしてもよい。次に、ダイアモンド３７５で、任意のブートインタラプトを受信したかどうかを判断することができる。その場合、所与のＢＩＯＳルーチン、例えばＢＩＯＳメニューの表示を有効にする表示ルーチン等の適切な操作を実行することができる（ブロック３８０）。一実施形態において、この表示は診断スクリーン、ＢＩＯＳセットアップユーザインタフェースメニュー、または他の表示であってもよい。ＢＩＯＳメニューは、例えば、ハードウェアの構成、システムクロックの設定、および／またはＢＩＯＳユーザインタフェース機能自体へのアクセスを保護し、悪意のユーザが許可されていない周辺機器からシステムをブートすることを阻止するためのパスワード等、様々なパスワードプロンプトの設定の選択肢のうち１つまたは複数を含むとしてもよい。勿論、このメニューに応答して、ユーザは構成更新、クロック更新等、一定の情報を提供することができる。
【００２６】
その後、ＢＩＯＳは、この情報を用いて構成の格納および更新を行ってもよい。この操作は例えばＢＩＯＳセットアップメニューに対する更新による端末状態であるので、マシンの再起動が生じ、従って制御はブロック３４０に戻ってもよい（例示を容易にするために図４に図示せず）。
【００２７】
なおも図４を参照すると、ダイアモンド３７５でブートインタラプトを受信しない場合、制御はダイアモンド３８５に進み、ＯＳが起動する前にプラットフォームに固有の量の時間が経過したかどうかを判断することができる。この所定の量の時間は、プラットフォームによって変化することがあり、ＯＳを起動する前にブート処理のために経過することを許されたプラットフォームに固有の最大量の時間に少なくとも部分的に基づいてもよい。そうでない場合、制御はブロック３７０に進む。時間の量が経過した場合、制御はブロック３９０に進み、ＯＳを起動することができる。
【００２８】
上述の図は、既定の操作が向上し、ユーザが向上した処理をオーバーライドし、代わりにブートをインタラプト可能にすることを選択しない限り、Ｉ／Ｏデバイスにインタロゲーションしない、より速いブート処理である実施形態を例示する。しかし、当業者は既定の処理がポリシーの問題であって、容易に逆の実装をすることができることを理解するであろう。従って、Ｉ／Ｏデバイスのポーリングが既定のブート処理の一部であるべきかどうかの選択はプラットフォームポリシーの問題であり、種々の実施形態で変化することがある。代替の実施形態については、既定のブート操作は、Ｉ／Ｏデバイスのインタロゲーションはブート処理のインタラプトを提供するべく常に行われるが、ユーザは、代わりにユーザのオーバーライド処理により、より速い、向上したブート処理（例えば、Ｉ／Ｏデバイスのポーリングもインタロゲーションもせずに）を行うことを選択することができるというものである。
【００２９】
従って、実施形態はＢＩＯＳ内でのブート時間を、２５％を超えて低減し、「インスタントオン」およびブートのインタラプト可能性という衝突する要求に対応するために使用することができる。通常のブート動作としてのブート性能に対するそのような増加は、ミッションクリティカルな環境に入り、５桁の９（９９．９９９％の動作可能時間）を満たす要求を負うことを意図する更に大きなプラットフォームに役立つ。ブート速度は、９９．９９９％の動作可能時間の要求のために、プラットフォームが１年におよそ５．５分間だけ「ダウン」することができる係数である。プラットフォームがリブートする必要がある場合、そのリブートが速ければ速いほど良い。
【００３０】
ここで図５を参照して、第１のシステム５００ａおよび第２のシステム５００ｂのブロック図を示し、それらのぞれぞれは上記の向上したブート処理の実施形態を実行することができる。図５に示すように、第１のシステム５００ａは１つまたは複数処理要素５１０、５１５を含むとしてもよく、これらはグラフィックスメモリコントローラハブ（ＧＭＣＨ）５２０に連結される。追加の処理要素５１５の任意選択の性質は、図５に破線で示す。
【００３１】
各処理要素５１０、５１５は単一のコアであってもよく、あるいはマルチコアを含んでもよい。処理要素５１０、５１５は、一体化メモリコントローラおよび／または一体化Ｉ／Ｏ制御論理等の処理コア以外に、任意選択により他のオンダイ要素を含むとしてもよい。また、第１のシステム５００ａの少なくとも一実施形態では、処理要素５１０、５１５のコアは、１つのコアにつき２つ以上のハードウェアスレッドコンテキストを含み得るようにマルチスレッドになってもよい。
【００３２】
図５は、ＧＭＣＨ５２０が例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり得るメモリ５３０に結合されてもよいことを例示する。少なくとも一実施形態では、メモリ５３０は、オペレーティングシステムを含むコードまたは命令を含むとしてもよい。
【００３３】
ＧＭＣＨ５２０は、チップセットまたはチップセットの一部分であってもよい。ＧＭＣＨ５２０は、プロセッサ５１０、５１５と通信し、プロセッサ５１０、５１５、およびメモリ５３０の間で制御対話してもよい。また、ＧＭＣＨ５２０は、プロセッサ５１０、５１５およびシステム５００ａの他の要素の間で加速バスインタフェースとして動作してもよい。少なくとも一実施形態では、ＧＭＣＨ５２０は、フロントサイドバス（ＦＳＢ）５９５等のマルチドロップバスを介してプロセッサ５１０、５１５と通信してもよい。他の実施形態（例えば図６および７を参照されたい）では、ＧＭＣＨ５２０は、ポイントツーポイント相互接続を介してプロセッサ５１０、５１５と通信する。
【００３４】
更に、ＧＭＣＨ５２０はディスプレイ５４０（例えば、フラットパネルディスプレイまたは接触感知式ディスプレイデバイス等）に結合される。ＧＭＣＨ５２０は、一体化されたグラフィックスアクセラレータを含むとしてもよい。更に、ＧＭＣＨ５２０は入力／出力（Ｉ／Ｏ）コントローラハブ（ＩＣＨ）５５０に結合され、入力／出力コントローラハブ５５０は、様々な周辺機器をシステム５００ａに結合するために用いることができる。例えば、図５の実施形態において、外部グラフィックスデバイス５６０が示され、これはディスクリートのグラフィックスデバイスであり、１つまたは複数のキーボード、マウス、またはテンキーパッド等、他の周辺機器５７０と共にＩＣＨ５５０に結合されてもよい。
【００３５】
あるいは、追加または異なる処理要素が第１のシステム５００ａ内にも存在してもよい。例えば、第２のシステムの実施形態５００ｂに関して程なく以下で論じる特徴のいずれかを第１のシステム５００ａに含むとしてもよい。また、追加の処理要素５１５は、プロセッサ５１０と同一の追加のプロセッサ、プロセッサ５１０と異種であり、またはこれと対称的な追加のプロセッサ、アクセラレータ（例えばグラフィックスアクセラレータまたはデジタル信号処理（ＤＳＰ）装置）、フィールドプログラマブルゲートアレイ、またはその他の処理要素を含むとしてもよい。アーキテクチャ、マイクロアーキテクチャ、熱、および電力消費の特性等を含む性能メトリックの範囲の観点から物理的リソース５１０、５１５の間に様々な差が存在する可能性がある。これらの差は、処理要素５１０、５１５中で非対称および異種として効果的に現れ得る。少なくとも一実施形態において、様々な処理要素５１０、５１５は同一のダイパッケージ内に存在し得る。
【００３６】
また、図５は、第２のシステム５００ｂが１つまたは複数の処理要素５１１を含み得ることを例示する。図５に例示する第１のシステム５００ａと同様に、システム５００ｂは所望の電子デバイス５００ｂを構成するべく、任意の好適なハードウェアおよび／またはソフトウェアを用いて実装し得る電子デバイスである。一実施形態について、図５は例えば、システム５００ｂが接触感知式ディスプレイデバイス５０２、１つまたは複数のプロセッサ５１１、少なくとも１つのプロセッサ５１１に結合されたシステム制御論理５０４、システム制御論理５０４に結合されたシステムメモリ５３０、システム制御論理５０４に結合された非揮発性メモリおよび／もしくはストレージデバイス５３５、およびシステム制御論理５０４に結合された１つまたは複数の通信用インターフェース５０６を含むことを例示する。
【００３７】
接触感知式ディスプレイデバイス５０２（本明細書において「タッチスクリーン」とも呼ばれる）は、限定されないが、例えば容量性、抵抗性、弾性表面波（ＳＡＷ）、赤外線、および光学的な画像処理等、任意の好適なタッチ感知技術を用いて実装することができる。一実施形態において、接触感知式ディスプレイデバイス５０２に用いるタッチ感知技術は、表面に実際に接触することを必要としないことがあるが、それでも表面付近の対象物の存在を感知はすることができる。それにも拘わらず、そのような技術がディスプレイデバイス５０２の表面に実際に接触する対象物を同様に感知し、そのような表面が電子デバイス５００ｂを用いるときに実際に接触されやすいので、そのような技術は接触感知式とみなされ得る。一実施形態の接触感知式ディスプレイデバイス５０２は任意の好適なマルチタッチの技術を用いて実装してもよい。接触感知式ディスプレイデバイス５０２は、例えば液晶ディスプレイ（ＬＣＤ）の技術等、任意の好適なディスプレイ技術を用いて実装し得るディスプレイを含む。少なくとも一実施形態のシステム制御論理４３０は１つまたは複数のグラフィックスコントローラを含み、１つまたは複数のディスプレイインタフェースを接触感知式ディスプレイデバイス５０２に提供することができる。
【００３８】
少なくとも一実施形態のシステム制御論理５０４は任意の好適なインタフェースコントローラを含み、システム制御論理５０４を用いて通信する少なくとも１つのプロセッサ５１１および／または任意の好適なデバイスもしくはコンポーネントに任意の好適なインターフェースを提供することができる。
【００３９】
少なくとも一実施形態のシステム制御論理５０４は１つまたは複数のメモリコントローラを含み、インターフェースをシステムメモリ５３０に提供する。システムメモリ５３０は、例えばシステム５００ｂのためのデータおよび／または命令を読み込み、格納するべく用いてもよい。少なくとも一実施形態において、システムメモリ５３０は任意の好適なドライバソフトウェア、アプリケーションソフトウェア、および／またはオペレーティングシステムソフトウェア等、任意の好適なソフトウェア５３２を格納するべく用いてもよい。一実施形態のシステムメモリ５３０は、例えば任意のダイナミックランダムアクセスメモリ（ＤＲＡＭ）等、任意の好適な揮発性メモリを含むとしてもよい。
【００４０】
少なくとも一実施形態のシステム制御論理５０４は、１つまたは複数の入力／出力（Ｉ／Ｏ）コントローラを含み、接触感知式ディスプレイデバイス５０２、非揮発性メモリ、および／またはストレージデバイス５３５へのインターフェース、ならびに通信用インターフェース５０６を提供することができる。
【００４１】
非揮発性メモリおよび／またはストレージデバイス５３５は、例えばデータおよび／または命令を格納するべく用いてもよい。非揮発性メモリおよび／またはストレージデバイス５３５は、例えばフラッシュメモリ等の任意の好適な非揮発性メモリを含むとしてもよく、および／または、例えば１つまたは複数のハードディスクドライブ（ＨＤＤ）、１つまたは複数のコンパクトディスク（ＣＤ）ドライブ、および／または１つまたは複数のデジタル多用途ディスク（ＤＶＤ）ドライブ等、任意の好適な非揮発性ストレージデバイスを含むとしてもよい。非揮発性メモリおよび／またはストレージデバイス５３５は、少なくとも一実施形態においては、ＢＩＯＳ処理のための命令５３７を格納する揮発性読み取り専用メモリ（ＲＯＭ）を含むとしてもよい。
【００４２】
通信用インターフェース５０６は、システム５００ｂのためのインターフェースを提供し、１つまたは複数のネットワークを介して、および／または他の任意の好適なデバイスを用いて通信することができる。通信用インターフェース５０６は任意の好適なハードウェアおよび／またはファームウェアを含むとしてもよい。一実施形態の通信用インターフェース５０６は、例えばネットワークアダプタ、無線ネットワークアダプタ、電話モデム、および／または無線モデムを含むとしてもよい。無線通信については、一実施形態の通信用インターフェース５０６は１つまたは複数のアンテナ５０８を用いてもよい。
【００４３】
少なくとも一実施形態のシステム制御論理５０４は１つまたは複数の入力／出力（Ｉ／Ｏ）コントローラを含み、例えば音声を対応するデジタル信号に変換し、および／またはデジタル信号を対応する音声に変換するのを支援するオーディオデバイス、カメラ、カムコーダ、プリンタ、および／またはスキャナ等、任意の好適な入力／出力デバイスにインターフェースを提供することができる。
【００４４】
少なくとも一実施形態において、少なくとも１つのプロセッサ５１１は、システム制御論理５０４の１つまたは複数のコントローラ用の論理と共にパッケージ化してもよい。一実施形態において、少なくとも１つのプロセッサ５１１はシステム制御論理５０４の１つまたは複数のコントローラ用の論理と共にパッケージ化し、システムインパッケージ（ＳｉＰ）を形成してもよい。一実施形態において、少なくとも１つのプロセッサ５１１は、システム制御論理５０４の１つまたは複数のコントローラ用の論理を用いて同一のダイ上に一体化してもよい。一実施形態において、少なくとも１つのプロセッサ５１１は、システム制御論理５０４の１つまたは複数のコントローラ用の論理を用いて同一のダイ上に一体化し、システムオンチップ（ＳｏＣ）を形成してもよい。
【００４５】
一実施形態ではシステム５００ｂ内で用いるものとして記載されるが、他の実施形態の接触感知式ディスプレイデバイス５０２は他のシステム構成で用いてもよい。
【００４６】
ここで図６を参照して、本発明の実施形態による第３のシステム実施形態６００のブロック図を示す。図６に示すように、マルチプロセッサシステム６００はポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続６５０を介して結合された第１の処理要素６７０および第２の処理要素６８０を含む。図６に示すように、処理要素６７０および６８０のそれぞれは、第１および第２のプロセッサコア（すなわちプロセッサコア６７４ａおよび６７４ｂと、プロセッサコア６８４ａおよび６８４ｂ）とを含むマルチコアプロセッサであってもよい。
【００４７】
あるいは、処理要素６７０、６８０のうち１つまたは複数は、アクセラレータまたはフィールドプログラマブルゲートアレイ等、プロセッサ以外の要素であってもよい。
【００４８】
２つの処理要素６７０、６８０のみで示してあるが、添付の特許請求の範囲はそのようには限定されないことを理解されたい。他の実施形態において、１つまたは複数の追加の処理要素が所与のプロセッサ内に存在する場合がある。
【００４９】
第１の処理要素６７０は、メモリコントローラハブ（ＭＣＨ）６７２と、ポイントツーポイント（Ｐ‐Ｐ）インターフェース６７６および６７８とを更に含むとしてもよい。同様に、第２の処理要素６８０はＭＣＨ６８２と、Ｐ−Ｐインターフェース６８６および６８８とを含むとしてもよい。図６に示すように、ＭＣＨ６７２および６８２はプロセッサを各々のメモリ、すなわちメモリ６３２およびメモリ６３４に結合し、これらは各々のプロセッサに局部的に取り付けられたメインメモリの一部となることがある。
【００５０】
第１の処理要素６７０および第２の処理要素６８０はＰ‐Ｐ相互接続６５２および６５４を介してそれぞれチップセット６９０に結合することができる。図６に示すように、チップセット６９０はＰ−Ｐインターフェース６９４および６９８を含む。更に、チップセット６９０はインターフェース６９２を含み、チップセット６９０を高性能のグラフィックスエンジン６３８と結合する。一実施形態において、バス６３９は、グラフィックスエンジン６３８をチップセット６９０に結合するために用いてもよい。あるいは、ポイントツーポイント相互接続６３９はこれらのコンポーネントを結合してもよい。
【００５１】
同様に、チップセット６９０をインターフェース６９６を介して第１のバス６１６に結合してもよい。一実施形態において、第１のバス６１６は周辺構成要素相互接続（ＰＣＩ）のバス、またはＰＣＩエクスプレスバスまたは別の第三世代Ｉ／Ｏ相互接続バス等のバスであってもよいが、添付の特許請求の範囲はそのようには限定されない。
【００５２】
図６に示すように、様々なＩ／Ｏデバイス６１４を第１のバス６１６をバスブリッジ６１８と共に結合してもよく、バスブリッジ６１８は第１のバス６１６を第２のバス６２０に結合する。一実施形態において、第２のバス６２０はローピンカウント（ＬＰＣ）バスであってもよい。様々なデバイスを、例えばキーボードおよび／もしくはマウス６２２、一実施形態のコード６３０を含み得るディスクドライブもしくは他の大容量ストレージデバイス等の通信デバイス６２６およびデータストレージユニット６２８を含む第２のバス６２０に結合してもよい。コード６３０は、１つまたは複数の上記方法の実施形態を実行するための命令を含むとしてもよい。更に、オーディオＩ／Ｏ６２４を第２のバス６２０に結合してもよい。他のアーキテクチャが可能であることに留意されたい。例えば、図６のポイントツーポイントのアーキテクチャの代わりに、システムはマルチドロップバスまたは別のそのようなアーキテクチャを実装してもよい。
【００５３】
ここで図７を参照して、本発明の実施形態による第４のシステム実施形態７００のブロック図を示す。図６および７の同一の要素は同一の符号を有し、図６の一定の態様は図７の他の態様を不明瞭にすることを避けるため、図７から省かれている。
【００５４】
図７は、処理要素６７０、６８０が一体化メモリと、Ｉ／Ｏ制御論理（「ＣＬ」）６７２および６８２とをそれぞれ含み得ることを例示する。少なくとも一実施形態において、ＣＬ６７２、６８２は、図５および６に関して上述したもの等のメモリコントローラハブ（ＭＣＨ）論理を含んでもよい。更に、ＣＬ６７２、６８２はＩ／Ｏ制御論理も含むとしてもよい。図７は、メモリ６３２、６３４がＣＬ６７２、６８２に結合されるのみならず、Ｉ／Ｏデバイス７１４も制御論理６７２、６８２に結合され得ることも例示する。レガシーＩ／Ｏデバイス７１５をチップセット６９０に結合してもよい。
【００５５】
本明細書に開示されるメカニズムの実施形態はハードウェア、ソフトウェア、ファームウェア、またはそのような実装アプローチの組み合わせで実装することができる。実施形態は、少なくとも１つのプロセッサと、データストレージシステム（揮発性メモリおよび／もしくは不揮発性メモリ、ならびに／またはストレージ要素を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを有するプログラマブルシステム上で実行するコンピュータプログラムとして実装することができる。
【００５６】
図６に例示するコード６３０等のプログラムコードは、入力データに適用し、本明細書に説明する機能を実行し、出力情報を生成することができる。例えば、プログラムコード６３０は、図３および４において例示する実施形態を実行するべく符号化されるオペレーティングシステムおよび／またはＢＩＯＳを含むとしてもよい。従って、本発明の実施形態は本発明の操作を実行するための命令、またはＨＤＬ等の設計データを含むマシンアクセス可能な媒体も含み、これは本明細書に説明する構造、回路、装置、プロセッサおよび／またはシステムの特徴を定義する。そのような実施形態はプログラム製品とも呼ばれることがある。
【００５７】
そのようなマシンアクセス可能なストレージ媒体としては、ハードディスク、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク読み取り専用メモリ（ＣＤ‐ＲＯＭ）、書き換え可能型コンパクトディスク（ＣＤ‐ＲＷ）、および光磁気ディスクを含むその他のタイプのディスク等の非一時的ストレージ媒体、読み取り専用メモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ、（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）等の半導体デバイス、磁気または光学カード、または電子命令を格納するのに好適なその他のタイプの媒体等のマシンまたはデバイスにより製造または形成される有形配列の物品が挙げられ得るが、これらに限定されない。
【００５８】
以下の例は更なる実施形態に関する。一実施形態において、システムはプロセッサと、プロセッサに結合された少なくとも１つのユーザ入力ハードウェアデバイスと、プロセッサの初期化を実行する第１のルーチンを含むプレブートコードを格納する不揮発性ストレージとを含み、システムの構成に基づいて少なくとも１つのユーザ入力ハードウェアデバイス用のインターフェースを表示するがこれを初期化せず、ＯＳブートストラップコードを起動して、少なくとも１つのユーザ入力ハードウェアデバイスを初期化せずにＯＳを起動する。
【００５９】
実施形態において、システムはインジケータを格納する第２のストレージを更に含み、システムの次のブートがユーザ入力によりインタラプトされることを示す。インジケータがシステムの次のブートがインタラプトされることを示す場合、プロセッサは第２のストレージに格納されたインジケータにアクセスし、少なくとも１つのユーザ入力ハードウェアデバイスを初期化することができる。更に、プロセッサは少なくとも１つのユーザ入力ハードウェアデバイスを介してユーザ入力を受信することなく、初期化した後、および所定の時間後にＯＳのブートストラップコードを起動することができる。プレブートコードは少なくとも１つのユーザ入力ハードウェアデバイスを介して構成更新を受信する第２のルーチンを含み、ストレージ内に構成更新を格納することにより、その後システムを再起動させることができる。インジケータがシステムの次のブートがインタラプトされないことを示す場合、プロセッサは少なくとも１つのユーザ入力デバイスを初期化せずにＯＳブートストラップコードを直ちに起動することができる。
【００６０】
別の実施形態において、方法はコンピュータシステムの初期化を実行し、コンピュータシステムのプロセッサを初期化する段階と、プレブートコードの構成に基づいてコンピュータシステムのユーザ入力ハードウェアデバイス用のインターフェースを表示するが、ユーザ入力ハードウェアデバイスを初期化はしないことを含む、プロセッサのプレブートコードを実行する段階と、ＯＳブートストラップコードを起動して、ユーザ入力ハードウェアデバイスを初期化することなくＯＳを起動する段階とを含む。
【００６１】
方法はユーザからの入力がＯＳのブートストラップコードを起動する前に要求されているかどうかを判断し、そうである場合にユーザ入力ハードウェアデバイス用のインターフェースを呼び出す段階を更に含むことができる。ユーザ入力ハードウェアデバイスは、インターフェースを呼び出すことに応答して初期化することができる。ユーザ入力ハードウェアデバイスを初期化した後、ユーザインターフェースハンドラを介してユーザ入力ハードウェアデバイスからデータを得てもよく、データはプレブートコードに提供され得る。ユーザからの入力が要求されているかどうかを判断する段階は、プレブートコードの実行中にユーザのインタラプトが予期されるかどうかを示すスタティック変数にアクセスする段階を含むことができる。実施形態において、プレブートコードの構成はユーザによって制御される。ユーザはコンピュータシステムの先の動力サイクル中にプレブートコード中の設定を更新することにより、コンピュータシステムの次の動力サイクルにおいてＯＳブートストラップコードを起動する前にユーザ入力ハードウェアデバイスを初期化させることができる本方法が次のブート中にインジケータにアクセスする段階と、インジケータがコンピュータシステムの次のブートがインタラプトされることを示す場合、次のブート中にユーザ入力ハードウェアデバイスを初期化する段階とを含むように、インジケータはコンピュータシステム内に格納され、コンピュータシステムの次のブートがユーザ入力によってインタラプトされることを表示することができる。
【００６２】
別の実施形態において、少なくとも１つのコンピュータ可読媒体は実行されると、コンピュータシステムの構成に基づいて、コンピュータシステムがプレブート環境内にコンピュータシステムのユーザ入力ハードウェアデバイス用のインターフェースを表示することを可能にするが、ユーザ入力ハードウェアデバイスを初期化しない命令を含み、ＯＳブートストラップコードを起動し、ユーザ入力ハードウェアデバイスを初期化する前にコンピュータシステムのブート環境内でＯＳを起動する。
【００６３】
媒体は、コンピュータシステムのストレージ内に格納されたインジケータがコンピュータシステムの次のブートがインタラプトされないことを示す場合、ユーザ入力デバイスを初期化する前にＯＳブートストラップコードを直ちに起動することを可能にする命令を更に含むとしてもよい。また、命令はコンピュータシステムがストレージに格納されたインジケータにアクセスすることを可能にし、インジケータがシステムの次のブートがインタラプトされることを示す場合、ユーザ入力ハードウェアデバイスを初期化し、ユーザ入力ハードウェアデバイスを介してユーザ入力を受信することなく初期化した後、および所定の時間後にＯＳのブートストラップコードを起動する。命令はコンピュータシステムが、ユーザ入力ハードウェアデバイスを介して構成更新を受信し、ストレージ内に構成更新を格納し、その後コンピュータシステムを再起動させることも可能にする。そして、命令はコンピュータシステムが、インターフェースを呼び出し、ユーザ入力ハードウェアデバイスを初期化し、ユーザ入力ハードウェアデバイスを初期化した後、ユーザインターフェースハンドラを介してユーザ入力ハードウェアデバイスから構成更新に対応するデータを得ることも可能にする。
【００６４】
出力情報は既知の方法で１つまたは複数の出力デバイスに適用することができる。この適用のために、処理システムは例えば、デジタル信号プロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、またはマイクロプロセッサ等のプロセッサを有する任意のシステムを含む。
【００６５】
プログラムは処理システムと通信するべく、高水準手続型プログラミング言語またはオブジェクト指向プログラミング言語で実装されてもよい。また、プログラムは、所望の場合、アセンブリまたはマシン言語で実装されてもよい。実際には、本明細書に説明するメカニズムは範囲において、いずれの特定のプログラミング言語にも限定されない。いずれの場合にも、言語はコンパイル言語または解釈言語であってもよい。
【００６６】
本発明は限定された数の実施形態に関して説明されているが、当業者は実施形態からの多くの変更形態および改変形態を理解するであろう。添付の特許請求の範囲は本発明の趣旨および範囲に含まれるそのような変更形態および改変形態を全て包含することを意図する。
本実施形態の例を下記の各項目として示す。
［項目１］
システムであって、
プロセッサ手段と、
前記プロセッサ手段に結合された少なくとも１つのユーザ入力ハードウェア手段と、
前記プロセッサ手段の初期化を実行し、前記システムの構成に基づいて前記少なくとも１つのユーザ入力ハードウェア手段用のインターフェースを表示するが、前記少なくとも１つのユーザ入力ハードウェア手段を初期化はせず、ＯＳを起動するべく前記少なくとも１つのユーザ入力ハードウェア手段を初期化することなくオペレーティングシステム（ＯＳ）のブートストラップコードを起動し、第１のルーチンを含むプレブートコードを格納するための不揮発性ストレージ手段と
を備えるシステム。
［項目２］
インジケータを格納するための第２のストレージ手段を更に備え、前記システムの次のブートがユーザ入力によってインタラプトされることを示す、項目１に記載のシステム。
［項目３］
前記プロセッサ手段は、前記第２のストレージ手段内に格納された前記インジケータにアクセスし、前記インジケータが前記システムの前記次のブートがインタラプトされることを示す場合、前記少なくとも１つのユーザ入力ハードウェア手段を初期化する、項目２に記載のシステム。
［項目４］
前記プロセッサ手段は、前記少なくとも１つのユーザ入力ハードウェア手段を介してユーザ入力を受信することなく、前記初期化および予め定められた時間の後に前記ＯＳのブートストラップコードを起動する、項目３に記載のシステム。
［項目５］
前記プレブートコードは、前記少なくとも１つのユーザ入力ハードウェア手段を介して構成更新を受信し、ストレージ手段内に前記構成更新を格納した後、前記システムを再起動させる第２のルーチンを含む、項目３または４に記載のシステム。
［項目６］
前記プロセッサ手段は、前記インジケータが前記システムの前記次のブートがインタラプトされないことを示す場合、前記少なくとも１つのユーザ入力手段を初期化することなく前記ＯＳのブートストラップコードを直ちに起動する、項目２に記載のシステム。
［項目７］
コンピュータシステムの初期化を実行し、前記コンピュータシステムのプロセッサを初期化する段階と、
プレブートコードの構成に基づいて前記コンピュータシステムのユーザ入力ハードウェアデバイス用のインターフェースを表示するが、前記ユーザ入力ハードウェアデバイスを初期化はしないことを含む、前記プロセッサの前記プレブートコードを実行する段階と、
前記ユーザ入力ハードウェアデバイスを初期化することなく、オペレーティングシステム（ＯＳ）のブートストラップコードを起動し、ＯＳを起動する段階と
を備える方法。
［項目８］
前記ＯＳのブートストラップコードを起動する前にユーザからの入力が要求されているかどうかを判断し、そうである場合に前記ユーザ入力ハードウェアデバイス用の前記インターフェースを呼び出す段階を更に備える、項目７に記載の方法。
［項目９］
前記インターフェースを呼び出すことに応答して前記ユーザ入力ハードウェアデバイスを初期化する段階を更に備える、項目８に記載の方法。
［項目１０］
前記ユーザ入力ハードウェアデバイスを初期化した後、ユーザインターフェースハンドラを介して前記ユーザ入力ハードウェアデバイスからデータを得る段階を更に備える、項目９に記載の方法。
［項目１１］
前記データを前記プレブートコードに提供する段階を更に備える、項目１０に記載の方法。
［項目１２］
前記ユーザからの入力が要求されているかどうかを判断する段階は、前記プレブートコードの実行中にユーザのインタラプトが予期されるかどうかを示すスタティック変数にアクセスする段階を備える、項目８に記載の方法。
［項目１３］
前記プレブートコードの前記構成はユーザによって制御される、項目７に記載の方法。
［項目１４］
前記ユーザが、前記コンピュータシステムの先の動力サイクル中に前記プレブートコード中の設定を更新し、前記コンピュータシステムの次の動力サイクルにおいて前記ＯＳのブートストラップコードを起動する前に、前記ユーザ入力ハードウェアデバイスを初期化させることを可能にする段階を更に備える、項目１３に記載の方法。
［項目１５］
前記コンピュータシステム内にインジケータを格納し、前記コンピュータシステムの次のブートがユーザ入力によってインタラプトされることを示す段階と、前記次のブート中に前記インジケータにアクセスする段階と、前記インジケータが前記コンピュータシステムの前記次のブートがインタラプトされることを示す場合、前記次のブート中に前記ユーザ入力ハードウェアデバイスを初期化する段階とを更に備える、項目７に記載の方法。
［項目１６］
コンピュータシステムであって、
前記コンピュータシステムの構成に基づいてプレブート環境中で前記コンピュータシステムのユーザ入力ハードウェアデバイス用のインターフェースを表示するが、前記ユーザ入力ハードウェアデバイスの初期化はしない手段と、
前記ユーザ入力ハードウェアデバイスを初期化する前に、オペレーティングシステム（ＯＳ）のブートストラップコードを起動し、前記コンピュータシステムのブート環境内でＯＳを起動するための手段と
を備えるコンピュータシステム。
［項目１７］
前記コンピュータシステムのストレージ内に格納されたインジケータが前記コンピュータシステムの次のブートがインタラプトされないことを示す場合、前記ユーザ入力ハードウェアデバイスを初期化する前に前記ＯＳのブートストラップコードを直ちに起動するための手段を更に備える、項目１６に記載のシステム。
［項目１８］
前記ストレージに格納された前記インジケータにアクセスし、前記インジケータが前記システムの前記次のブートがインタラプトされることを示す場合、前記ユーザ入力ハードウェアデバイスを初期化し、前記ユーザ入力ハードウェアデバイスを介してユーザ入力を受信することなく、初期化後、および予め定められた時間後に前記ＯＳのブートストラップコードを起動するための手段を更に備える、項目１７に記載のシステム。
［項目１９］
前記ユーザ入力ハードウェアデバイスを介して構成更新を受信し、ストレージ内に前記構成更新を格納し、その後、前記コンピュータシステムを再起動させるための手段を更に備える、項目１６に記載のシステム。
［項目２０］
前記インターフェースを呼び出して、前記ユーザ入力ハードウェアデバイスを初期化し、前記ユーザ入力ハードウェアデバイスを初期化した後、ユーザインターフェースハンドラを介して前記ユーザ入力ハードウェアデバイスから前記構成更新に対応するデータを得るための手段を更に備える、項目１９に記載のシステム。
【図１】
0005893173.tif 000002
【図２】
0005893173.tif 000003
【図３】
0005893173.tif 000004
【図４】
0005893173.tif 000005
【図５】
0005893173.tif 000006
【図６】
0005893173.tif 000007
【図７】
0005893173.tif 000008