説明

コンソールなしでブートする方法

【課題】 コンピュータシステムにおいて、たとえばUARTが機能していないためにコンソールが故障しことにより、システムがシャットダウンしたときに、正常にリブートまたは初期化できるようにする。
【解決手段】 本発明にかかる少なくとも1つのコンソール(105)を含むコンピューティングデバイス(100)のためのシステムは、前記コンソール(105)との通信が機能しているか否かを検出し、前記コンピューティングデバイス(100)が機能してないコンソールでのブートを可能にするように構成されるブートロジック(110)を具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンソールなしでブートする方法に関する。
【背景技術】
【0002】
コンピュータシステムには、情報を表示することができるとともにキーボードまたは他の入力デバイスを用いる情報の入力を可能にする場合もある、コンソールを有するものがある。
コンソールを、たとえば汎用非同期送受信装置(UART)を有する通信ポートを介してコンピュータシステムに接続することができる。
UARTは、シリアルポートを管理することができ、接続されたシリアルデバイスへの非同期シリアル通信を処理することができる、コンピュータコンポーネントである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
多くのコンピュータシステムでは、たとえばUARTが機能していないためにコンソールが故障した場合、システムはシャットダウンし、リブートしようと試みる。
しかしながら、リブートプロセス中、システムは、機能しているコンソールがないために、うまくリブートまたは初期化しない場合がある。
したがって、オペレーティングシステムをロードすることができず、コンピュータシステムは動作可能にならない。
【課題を解決するための手段】
【0004】
上記目的を達成するために、本発明にかかる少なくとも1つのコンソール(105)を含むコンピューティングデバイス(100)のためのシステムは、前記コンソール(105)との通信が機能しているか否かを検出し、前記コンピューティングデバイス(100)が機能してないコンソールでのブートを可能にするように構成されるブートロジック(110)を具備する。
【0005】
明細書に組み込まれかつ明細書の一部を構成する添付図面は、本発明のさまざまな態様のさまざまな例としてのシステム、方法および他の例としての実施形態を示す。
図において示される要素の境界(たとえば、ボックス、ボックス群、または他の形状)は境界の一例を表す、ということが理解されよう。
当業者は、1つの要素を複数の要素として設計してもよく、または複数の要素を1つの要素として設計してもよい、ということを理解するであろう。
別の要素の内部構成要素として示す要素を、外部構成要素として実施してもよく、その逆も可能である。さらに、要素は、一定比例尺になっていない場合がある。
【発明を実施するための最良の形態】
【0006】
本明細書では、コンピューティングシステムのシステムブートに関連付けることができる、例としてのシステム、方法、媒体および他の実施形態について説明する。
少なくとも1つのコンソールを含むコンピューティングデバイスのためのシステムの一例では、そのシステム例は、コンソールとの通信が機能しているか機能していないかを検出するように構成されたブートロジックを含み、かつ、コンピューティングシステムが機能していないコンソールでブートすることができるようにする。
【0007】
上記システム例は、機能しているコンソールなしにその負荷を十分に実行することができるコンピューティングシステムに対し有用であり得る。
たとえば、コンソールが故障し、または汎用非同期送受信装置(UART)が故障することによる等、コンソールとコンピューティングシステムとの間の通信が喪失する場合、コンピューティングデバイスは動作を停止しリブートを試みる場合がある。
システム例は、機能しているUARTがない場合、したがって機能しているコンソールがない場合に、リブートを失敗させるのではなく、コンピューティングシステムがうまくリブートするのを助けることができる。
したがって、コンピューティングデバイスの全可用性を向上させることができる。
【0008】
以下は、本明細書で採用する選択された用語の定義を含む。
それら定義には、1つの用語の範囲内に含まれるとともに実施のために使用してもよい構成要素のさまざまな例および/または形態が含まれる。
それら例は、限定するようには意図されていない。
用語の単数形および複数形はともに、それら定義内にあり得る。
【0009】
本明細書で使用する「コンピュータコンポーネント」という用語は、ハードウェア、ファームウェア、ソフトウェア、それらの組合せまたは実行中のソフトウェアのいずれかである、コンピュータ関連エンティティを言う。
たとえば、コンピュータコンポーネントは、限定されないが、プロセッサで実行しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラムおよびコンピュータであってもよい。
例として、サーバで実行しているアプリケーションとサーバとはともに、コンピュータコンポーネントであり得る。
1つまたは複数のコンピュータコンポーネントが、プロセスおよび/または実行のスレッド内に存在してもよく、コンピュータコンポーネントを1つのコンピュータに局所化してもよく、かつ/または2つ以上のコンピュータ間に分散させてもよい。
【0010】
本明細書で使用する「コンピュータ読取可能媒体」とは、信号、命令および/またはデータを直接または間接的に提供することに関与する媒体を言う。
コンピュータ読取可能媒体は、限定されないが不揮発性媒体、揮発性媒体および伝送媒体を含む形態をとってもよい。
不揮発性媒体には、限定されないが、光ディスクまたは磁気ディスク、ファームウェア等が含まれてもよい。
揮発性媒体には、たとえば、半導体メモリ、ダイナミックメモリ等が含まれてもよい。
伝送媒体には、同軸ケーブル、銅線、光ファイバケーブル等が含まれてもよい。
伝送媒体は、電波データ通信および赤外線データ通信中に生成されるもののような電磁放射の形態をとることも可能であり、もしくは1つまたは複数の信号群の形態をとることも可能である。
コンピュータ読取可能媒体の一般的な形態には、限定されないが、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD−ROM、他の光媒体、パンチカード、紙カード、穴のパターンを有する他の物理媒体、RAM、ROM、EPROM、フラッシュEPROM、または他のメモリチップまたはカード、メモリスティック、搬送波/パルス、およびコンピュータ、プロセッサまたは他の電子デバイスが読出しをすることができる他の媒体が含まれる。
インターネットのようなネットワークにより命令または他のソフトウェアを伝播するために使用される信号も、「コンピュータ読取可能媒体」とみなすことができる。
【0011】
本明細書で使用する「ロジック」には、限定されないが、機能(複数可)または動作(複数可)を実行し、かつ/もしくは別のロジック、方法および/またはシステムから機能または動作をもたらす、ハードウェア、ファームウェア、ソフトウェアおよび/または各々の組合せが含まれる。
たとえば、所望のアプリケーションまたはニーズに基づき、ロジックには、ソフトウェア制御マイクロプロセッサ、特定用途向け集積回路(ASIC)のようなディスクリートロジック、アナログ回路、デジタル回路、プログラムされたロジックデバイス、命令を含むメモリデバイス等が含まれてもよい。
ロジックには、1つまたは複数のゲート、ゲートの組合せまたは他の回路コンポーネントが含まれてもよい。
また、ロジックをソフトウェアとして完全に具現化してもよい。
複数の論理ロジックについて述べる場合に、複数の論理ロジックを1つの物理ロジックに組み込むことも可能であり得る。
同様に、単一の論理ロジックについて述べる場合に、その単一の論理ロジックを複数の物理ロジック間で分散させることも可能であり得る。
【0012】
「動作可能接続」、またはエンティティが「動作可能に接続される」ようにする接続は、信号、物理的通信および/または論理的通信を送信および/または受信してもよい接続である。
通常、動作可能接続には、物理インタフェース、電気インタフェースおよび/またはデータインタフェースが含まれるが、動作可能接続には、動作可能制御を可能にするために十分な、これらまたは他のタイプの接続の異なる組合せが含まれてもよい、ということに留意しなければならない。
たとえば、2つのエンティティを、直接、もしくはプロセッサ、オペレーティングシステム、ロジック、ソフトウェアまたは他のエンティティのような1つまたは複数の中間エンティティを介して、互いに信号を通信することができるようにすることにより、動作可能に接続することができる。
論理および/または物理通信チャネルを使用して動作可能接続を生成してもよい。
【0013】
本明細書で使用する「信号」には、限定されないが、1つまたは複数の電気または光信号、アナログまたはデジタル信号、データ、1つまたは複数のコンピュータまたはプロセッサ命令、メッセージ、ビットまたはビットストリーム、フラグ、パラメータ、もしくは受信、送信および/または検出することができる他の手段が含まれる。
【0014】
本明細書で使用する「ソフトウェア」には、限定されないが、読み出し、解釈し、コンパイルし、かつ/または実行することができるとともに、コンピュータ、プロセッサまたは他の電子デバイスに対し機能、動作を実行させかつ/または所望の方法で振る舞わせる、1つまたは複数のコンピュータまたはプロセッサ命令が含まれる。
命令を、ルーチン、アルゴリズム、モジュール、メソッド、スレッド、および/または動的にリンクされたライブラリからの個別のアプリケーションまたはコードを含むプログラムのようなさまざまな形式で具現化してもよい。
また、ソフトウェアを、限定されないがスタンドアロンプログラム、ファンクションコール(ローカルおよび/またはリモート)、サーブレット、アプレット、メモリに格納された命令、オペレーティングシステムの一部または他のタイプの実行可能命令を含む種々の実行可能かつ/またはロード可能な形式で実施してもよい。
当業者には、ソフトウェアの形式が、たとえば所望のアプリケーションの要件、それが実行する環境、および/またはデザイナ/プログラマ等の要求によって決まってもよい、ということが理解されよう。
また、コンピュータ読取可能かつ/または実行可能命令を、1つのロジックに配置してもよく、かつ/または2つ以上の通信、協働および/または並列処理するロジック間に分散させてもよく、そのため直列、並列、超並列および他の方法でロードおよび/または実行することができる、ということも理解されよう。
【0015】
本明細書で説明するシステムおよび方法例のさまざまなコンポーネントを実施する適当なソフトウェアには、Java(登録商標)、Pascal、C#、C++、C、CGI、Perl、SQL、API、SDK、アセンブリ、ファームウェア、マイクロコードならびに/または他の言語およびツールのような、プログラミング言語およびツールが含まれる。
システム全体であるかシステムのコンポーネントであるかに関わらず、ソフトウェアを、製品の一部として具現化し、かつ、先に定義したようなコンピュータ読取可能媒体の一部として維持または提供してもよい。
ソフトウェアの別の形態には、ソフトウェアのプログラムコードを、ネットワークまたは他の通信媒体により受信側に送信する信号が含まれてもよい。
したがって、一例では、コンピュータ読取可能媒体は、ウェブサーバからユーザにダウンロードされるソフトウェア/ファームウェアを表す信号の形態を有する。
別の例では、コンピュータ読取可能媒体は、ウェブサーバに維持されるソフトウェア/ファームウェアの形態を有する。
他の形式を使用してもよい。
【0016】
本明細書で使用する「ユーザ」には、限定されないが、1人または複数の人、1つまたは複数のソフトウェア、コンピュータまたは他のデバイス、もしくはこれらの組合せが含まれる。
【0017】
以下の詳細な説明のいくつかの部分を、メモリ内のデータビットに対する動作のアルゴリズムおよび記号表現に関して示す。
これらのアルゴリズム的説明および表現は、当業者が自身の作業の内容を他人に伝達するために使用する手段である。
アルゴリズムは、ここでは、かつ一般に、結果をもたらす一続きの動作であると考えられる。
これら動作には、物理量の物理的操作が含まれてもよい。
通常、必ずしもではないが、物理量は、格納され、転送され、結合され、比較され、かつロジック等において他の方法で操作されることが可能な電気信号または磁気信号の形態をとる。
【0018】
時に、主に一般的に使用されているという理由で、これらの信号をビット、値、要素、シンボル、キャラクタ、項、数等と呼ぶことが都合がよいことが分かっている。
しかしながら、これらおよび同様の用語は、適当な物理量に関連付けられるべきであり、かつ、これらの量に適用される単に都合のよいラベルである、ということを留意しなければならない。
特に他に指定のない限り、説明を通して、処理する、検出する、継続する、確定する、識別する、マップする等のような用語は、物理(電子)量として表されるデータを操作および変換するコンピュータシステム、ロジック、プロセッサまたは同様の電子デバイスの動作およびプロセスを指す、ということが理解される。
【0019】
図1に、表示端末等である少なくとも1つのコンソール105を有するコンピューティングデバイス100のためのシステムの一例を示す。
コンソール105をコンピューティングデバイス100に、通信ポートおよびそれらの間の通信を提供するように構成される送受信機を通して、動作可能に接続することができる。
送受信機は、たとえば、汎用非同期送受信装置(以下、UART)、仮想UART、またはコンピューティングデバイス100とコンソール105との間の通信を処理することができる他の通信ロジックであってもよい。
本明細書における例では、「UART」という用語を、「送受信機」という用語と同じ意味で使用し、UARTという用語は一般に送受信機を指すということが意図されている。
UARTはまた、USART(汎用同期非同期送受信装置(Universal Synchronous-Asynchronous Receiver/Tranmitter))を含んでもよい。
他のタイプの入出力コントローラおよびロジックも、これら例の範囲内にある。
【0020】
一例としてのUARTは、コンソール105のような取り付けられたシリアルデバイスへのコンピュータのインタフェースを制御するようにプログラムされたマイクロチップを有することができる。
UARTは、コンピューティングデバイス100にRS−232Cデータ端末機器(DTE)インタフェースを提供することができ、それによって、コンピューティングデバイス100が、シリアルデバイスに「トーク」するとともにシリアルデバイスとデータを交換することができるようにする。
仮想UARTの一例は、通信データのログを記録し、データを物理ポートに転送し、データをミラーリングし、データをネットワーク接続によって送信し、またはこれらのタスクの任意の組合せを行うようにプログラムされたマイクロプロセッサを有することができる。
【0021】
システムは、コンソール105との通信が機能しているか機能していないかを検出し、かつ、コンピューティングデバイス100が機能していないコンソール105でブートすることを可能にするように構成することができる、ブートロジック110を有する。
一例では、ブートロジック110を、コンピュータコンポーネントとして、ソフトウェアとして等、コンピューティングデバイス100内のシステムファームウェアとして具現化することができる。
一シナリオ例で、コンソール105との通信がUARTの故障により喪失したと想定する。
コンピューティングデバイス100は、機能を停止する(たとえばクラッシュする)可能性があり、また、ブートプロセスを開始することによってリブートしようと試みる可能性がある。
ブートロジック110は、ブートプロセス中に、UARTが機能しているのでエラーなしにうまく初期化され得ると、ブートプロセスに対して信じさせるように動作することができる。
ほかにエラーが発生していないと仮定すると、ブートは、UARTが機能していなくてもうまく完了することができる。
そして、オペレーティングシステムをうまくロードすることができるので、機能しているコンソール105なしでもコンピューティングデバイス100が動作することができるようにすることができる。
【0022】
図2に、コンピューティングシステム200のブートプロセスを制御するように構成された別の例のブートロジック205を有する別の例のコンピューティングシステム200を示す。
ブートロジック205は、たとえば、システムファームウェアであってもよい。
以下の例では、コンピューティングシステム200を、複数のハードウェアデバイス1、2等と、コンソール215との通信を提供するように構成されたUART210と、を有するものとして説明する。
コンピューティングシステム200はまた、1つまたは複数のドライバ220を有してもよく、ドライバは、ハードウェアデバイスを制御するとともにハードウェアデバイスとハードウェアデバイスを使用するプログラムとの間の変換機構として作用するソフトウェアである。
ドライバ220のうちの1つまたは複数を、コンピューティングシステム200内のさまざまな位置に保持してもよく、かつ/または、リモートデバイスに保持してもよい。
【0023】
コンピューティングシステム200のシステムブート中、他にも機能があるが、特に、コンピューティングシステム200に対していずれのハードウェアデバイスが利用可能であるかを判断するシステム初期化を実行してもよい。
システムブートを、たとえばコンピューティングシステム200の電源をオンにすること、システムエラー(たとえば、UARTまたは他のデバイスの故障)による自動リブート、手動リブート等によってトリガしてもよい。
ブートプロセス中、ブートロジック205は、UART210が機能しているか機能していないかを検出するように構成される。
UART210が機能していない場合、ブートロジック205は、UART210が機能しているかのようにブートプロセスが継続するのを可能にするように動作可能なUARTドライバをロードするように構成される。
【0024】
ブートロジック205は、UART210が機能しているか否かを検出するように構成される検出ロジック225を有することができる。
これを、たとえば、その存在を検知するとともにUART210を初期化しようと試みることによって実行してもよい。
UART210が応答しない場合、それは機能していないと確定され、それによりコンソール215は機能しなくなる。
マップロジック230を、検出されたハードウェアデバイスに関連するドライバ220から対応するドライバをマップしまたは他の方法でロードするように構成することができる。
たとえば、UART210が機能している場合、UART210に対応するUARTドライバ235をロードすることができる。
機能していないUART210が検出されると、それに応じて、コンピューティングシステム200がコンソール215と通信せずにブートすることができるようにするダミーUARTドライバ240をマップすることができる。
別の例では、UARTドライバ235およびダミーUARTドライバ240を、機能しているUARTとも機能していないUARTとも動作するロジックを含む単一ドライバとして構成することができる。
このように、故障したUART210が検出された場合であってもブートプロセスを継続することができ、それにより初期化を完了することができるとともにオペレーティングシステムをロードすることができる。
【0025】
別の例では、ブートロジック205は、故障したUART210が存在することを示すUART故障信号245等のフラグを設定することができる。
そして、オペレーティングシステムが、その初期化中に故障信号245にアクセスすることができる。
UART故障信号245を、オペレーティングシステムに対しコンソール/UARTドライバをロードさせるように構成することができ、このコンソール/UARTドライバは、オペレーティングシステムが、コンソール215にデータを送信することなくコンソール215に向けられた通信要求を処理することを可能にするように構成される。
一例では、オペレーティングシステムを、UART故障信号245を読み出すように、また機能しているUARTが使用可能でないことを認識するようにプログラム的に変更することができる。
一般に、UART故障信号245は、オペレーティングシステムがアクセス可能な場所に配置される信号である。
一例では、PA−RISCシステムにおいて、故障信号245を、ページ0にヌルパスを配置することにより実施することができる。
オペレーティングシステムは、ページ0に書かれた上記パスを読み出し、かつ使用可能なUARTがないと判断することができる。
そして、オペレーティングシステムは、それに応じて、故障したUART210との通信を処理するように構成されるコンソールドライバをロードすることによって応答することができる。
使用してもよいコンソールドライバの一例について、図3を参照して説明する。
【0026】
図3に、故障したUART、またはその他の故障したコンソールを有することに応じてオペレーティングシステムが使用することができるコンソールドライバ300の一例を示す。
コンソールドライバ300は、機能しているUARTの状況と機能していないUARTの状況とをともに処理するように構成される。
たとえば、機能ロジック305を、プログラム310から受け取られる場合があるとともにコンソールに向けられる通常の通信要求を処理するように構成することができる。
そして、適当なコマンドを、それら要求に対応するUARTに送信(たとえば、UARTへのデータ出力)することができる。
【0027】
しかしながら、機能していないUARTの場合、コンソールドライバ300に対し、故障したUARTとの通信を処理することができる非機能ロジック315を実行させることができる。
たとえば、コンソールに書き込まれるように(プログラム310から)要求されるデータを、非機能ロジック315によって受け取り、そのデータをUARTに送信せずに破棄することができる。
要求側プログラム310は、データが破棄されたこと、または任意のタイプのエラーが発生したことを気付かずにいることができる。
さらに、この状況ではUARTが動作可能でないため、コンソールからいかなるデータも受け取られず、したがって、コンソールドライバ300によりUARTからいかなるデータも受け取られない(たとえば、「UARTからのデータ入力」なし)。
したがって、非機能ロジック315からプログラム310にいかなるデータも戻されない。
データを破棄することには、たとえば、メモリまたはファイルにデータを書き込むこと、データのログを記録すること、データを削除すること等が含まれてもよい。
プログラム310がデータをコンソールに書き込む命令を提供したにも関わらず、プログラム310からのデータはコンソールに送信されない。
【0028】
非機能ロジック315を、コンピューティングシステムの他のコンポーネントには機能しているコンソールとして見えるという目的を果たす、ダミーUARTドライバまたはダミーコンソールドライバとみなすことができる。
また、2つの別々のコンソールドライバを使用することができ、その場合、一方は機能ロジック305に対応する機能しているコンソールを処理し、他方は非機能ロジック315に対応するダミードライバである、ということも理解されよう。
オペレーティングシステムを、UARTの機能性に基づいて適当なドライバをロードするように構成することができる。
【0029】
先の例では2つの異なるダミードライバについて述べ、一方のドライバはオペレーティングシステムがロードされる前にロードされ、他方のドライバはオペレーティングシステムによってロードされると述べたが、他の構成を使用することも可能である。
たとえば、2つのドライバは、2つの異なる時にロードされる同じドライバであってもよい。
別の例では、コンピューティングシステムを、1つのハードウェアデバイスに対し1つのドライバを使用するように構成してもよく、その場合ドライバは、ブート中または初期化プロセス中にロードされる。
そのため、1つのドライバのみが使用される。
したがって、本明細書で説明するシステムおよび方法例を、異なるタイプのシステムに対して変更しかつ適応させることができる。
【0030】
方法例について、フローチャートを参照してより良く理解することができる。
説明を簡単にするために、図示する方法を一連のブロックとして示し説明するが、ブロックによっては、示し説明するものとは異なる順序で、かつ/または他のブロックと同時に発生することができるため、これら方法はブロックの順序によって限定されない、ということを理解すべきである。
さらに、方法例を実施するために図示するブロックのすべてが必要でない場合もある。
ブロックを結合してもよく、または分割して複数のコンポーネントにしてもよい。
さらに、追加のかつ/または代替的な方法は、追加の図示しないブロックを採用してもよい。
図は、連続的に発生するさまざまな動作を示すが、さまざまな動作は、同時に、実質的に並行して、かつ/または実質的に異なる時点で発生してもよい、ということを理解すべきである。
【0031】
図4に、故障した送受信機(たとえば、UART)を有するシステムをブートすることに関連してもよい一例としての方法400を示す。
図示する要素は、ロジックで実施してもよい「処理ブロック」を示す。
一例では、処理ブロックは、コンピュータ、プロセッサおよび/またはロジックデバイスに対し、応答させ、動作(複数可)を実行させ、状態を変更させ、かつ/または判断を行わせる等の実行可能命令を表してもよい。
このため、説明する方法を、コンピュータ読取可能媒体によって提供されるプロセッサ実行可能命令および/または動作として実施することができる。
別の例では、処理ブロックは、アナログ回路、デジタル信号プロセッサ回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、または他のロジックデバイス等の機能的に等価な回路によって実行される機能および/または動作を表してもよい。
図4の図は、他の図示する図と同様に、説明する例の実施の態様を限定するようには意図されていない。
むしろ、図は、当業者が回路を設計/製作し、ソフトウェアを生成し、または図示する処理を実行するためにハードウェアおよびソフトウェアの組合せを使用するために使用することができる機能情報を示す。
上述したことは、本明細書で説明するすべての方法および例に適用される。
【0032】
図4を参照すると、例としての方法400は、システムブートプロセスの一部として説明されている。
システムブートを、たとえばコンピューティングシステムの電源をオンにすること、システムエラーに起因する自動リブート、手動リブート等によってトリガしてもよい。
この例では、コンソールとの通信を制御する送受信機が故障したと仮定する。
送受信機はUARTであってもよい。
【0033】
システムブートが開始された後、ある時点で、送受信機が機能しているか否かが判断され、プロセスは故障した送受信機を検出することができる(ブロック405)。
送受信機が故障した場合、システムブートが継続するのを可能にする送受信機ドライバをロードする(ブロック410)。
送受信機ドライバは、機能している送受信機が存在しているかのように見えるようにするダミードライバであってもよい。
そして、システムブートは、送受信機、したがってコンソールが動作可能であるかのように継続することができる(ブロック415)。
このように、コンソールなしのブートを達成することができる。
そして、ブートプロセスは、オペレーティングシステムのロードを開始することができ、それによりコンピューティングシステムは動作可能となり得る。
【0034】
方法400の別の例では、ブロック405において故障した送受信機が検出されると、送受信機が故障したことを示す故障送受信機信号を設定することができる。
そして、その故障送受信機信号をオペレーティングシステムが読み出すことにより、故障した送受信機の存在を確定することができる。
一例では、送受信機がUARTであり、かつ、オペレーティングシステムが、初期化中に設定することができるUARTパスを読み出すことによりUARTを識別するものとする。
UARTパスを、オペレーティングシステムが認識するヌルまたは別の値が故障したUARTを識別するようにパスを設定することによる等、故障送受信機信号として使用することができる。
オペレーティングシステムは、故障送受信機信号を読み出すことに応じて、コンソールに向けられる故障した送受信機との通信を処理するように構成されるダミー送受信機ドライバをロードすることができる。
上述したことの方法例について、図5を参照して説明する。
【0035】
図5に、オペレーティングシステムに関連してもよい一例としての方法500を示す。
オペレーティングシステムを、初期化段階等の間に方法500を実行するように構成することができる。
方法500は、故障したコンソールを検出することを含むことができる(ブロック505)。
これを、システムブート中に予め設定された故障信号を読み出すことにより実行してもよい。
そして、故障したコンソールに対する通信要求を処理するように構成されるコンソールドライバをロードすることができる(ブロック510)。
これには、上述したようなダミーコンソールドライバをロードすること、または図3に示すコンソールドライバ300等、機能しているコンソールおよび機能していないコンソールに適応することができるコンソールドライバをロードすることが含まれてもよい。
このように、コンピューティングシステムを、機能していないコンソールでも動作可能にすることができる。
【0036】
図6は、本明細書で説明するシステムおよび方法例ならびに等価物が動作することができるコンピューティングデバイスの一例を示す。
このコンピューティングデバイス例は、バス608に動作可能に接続されたプロセッサ602、メモリ604および入出力ポート610を含むコンピュータ600であってもよい。
一例では、コンピュータ600は、故障した送受信機(たとえば、UART635)が存在する場合であってもシステムブートの成功を容易にするように構成されたブートロジック630を有してもよい。
UART635は、コンソール640に対する通信を制御する。
それぞれ図1および図2において説明したブートロジック110、205、および/または、本明細書で説明する他のシステムおよび方法ならびにそれらの等価物に類似するブートロジック630を実施することができる。
【0037】
たとえば、ブートロジック630を、UART635が機能しているかのようにシステムブートがUART635をうまく初期化することができるようにするダミーUARTドライバ645をロードするように構成することができる。
ダミードライバ645とUART635との間の破線は、仮想動作可能通信リンクを表す。
先の例で説明したように、その後、オペレーティングシステム650をロードすることができる。
コンソール640が(UART635が故障したため)機能していないと判断されると、コンソール640に対する通信要求を処理するダミーコンソールドライバ655をロードすることができる。
ダミーコンソールドライバ655を、本明細書で説明した先のドライバ例と同様に構成することができる。
【0038】
コンピュータ600の構成例をより一般的に説明すると、プロセッサ602を、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む種々のさまざまなプロセッサとすることができる。
メモリ604は、揮発性メモリおよび/または不揮発性メモリを含んでもよい。
不揮発性メモリには、限定されないが、ROM、PROM、EPROM、EEPROM等が含まれてもよい。
揮発性メモリには、たとえば、RAM、シンクロナスRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)およびダイレクトRAMバスRAM(DRRAM)が含まれてもよい。
【0039】
ディスク606を、たとえば入出力インタフェース(たとえば、カード、デバイス)618および入出力ポート610を介してコンピュータ600に動作可能に接続してもよい。
UART635を、I/Oポートに接続されたI/Oインタフェースとみなすことができるということが理解されよう。
ディスク606には、限定されないが、磁気ディスクドライブ、半導体ディスクドライブ、フロッピーディスクドライブ、テープドライブ、Zipドライブ、フラッシュメモリカードおよび/またはメモリスティックのようなデバイスが含まれてもよい。
さらに、ディスク606には、CD−ROM、追記型CDドライブ(CD−Rドライブ)、書換可能CDドライブ(CD−RWドライブ)および/またはデジタルビデオROMドライブ(DVD ROM)のような光ドライブが含まれてもよい。
メモリ604は、たとえばプロセス614および/またはデータ616を格納することができる。
ディスク606および/またはメモリ604は、コンピュータ600の資源を制御しかつ割り付けるオペレーティングシステムを格納することができる。
【0040】
バス608は、単一の内部バス相互接続アーキテクチャおよび/もしくは他のバスまたはメッシュアーキテクチャであってもよい。
単一バスを示すが、コンピュータ600は、図示しない他のバス(たとえば、PCIE、SATA、インフィニバンド、1394、USB、イーサネット(登録商標))を使用してさまざまなデバイス、ロジックおよび周辺機器と通信してもよい、ということを理解しなければならない。
バス608は、限定されないがメモリバスまたはメモリコントローラ、周辺バスまたは外部バス、クロスバスイッチおよび/もしくはローカルバスを含む種々のタイプのものであってもよい。
ローカルバスは、限定されないが業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MSA)バス、拡張ISA(EISA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、ユニバーサルシリアル(USB)バスおよび小型コンピュータシステムインタフェース(SCSI)バスを含む種類のものであってもよい。
【0041】
コンピュータ600は、I/Oインタフェース618および入出力ポート610を介して入出力デバイスと対話してもよい。
入出力デバイスには、限定されないが、キーボード、マイクロフォン、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク606、ネットワークデバイス620等が含まれてもよい。
入出力ポート610には、限定されないがシリアルポート、パラレルポートおよびUSBポートが含まれてもよい。
【0042】
コンピュータ600は、ネットワーク環境で動作することができ、したがってコンピュータ600を、I/Oデバイス618および/またはI/Oポート610を介してネットワークデバイス620に接続されてもよい。
ネットワークデバイス620を通して、コンピュータ600は、ネットワークと対話してもよい。
ネットワークを通して、コンピュータ600をリモートコンピュータに論理的に接続してもよい。
コンピュータ600が対話してもよいネットワークには、限定されないが、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)および他のネットワークが含まれる。
ネットワークデバイス620は、限定されないが光ファイバ分散データインタフェース(FDDI)、より対線FDDI(CDDI)、イーサネット(IEEE802.3)、トークンリング(IEEE802.5)、無線コンピュータ通信(IEEE802.11)、Bluetooth(IEEE802.15.1)等を含むLAN技術に接続することができる。
同様に、ネットワークデバイス620は、限定されないがポイント・ツー・ポイントリンク、サービス統合デジタル網(ISDN)のような回線交換網、パケット交換網およびデジタル加入者線(DSL)を含むWAN技術に接続することができる。
【0043】
システム例、方法例等を、例を説明することによって示したが、またそれら例を非常に詳細に説明したが、添付の特許請求の範囲をかかる詳細に制限すること、または何らかの形で限定することは本出願人の意図ではない。
当然ながら、本明細書で説明したシステム、方法等を説明する目的で、すべての考えうる構成要素または方法の組合せを説明することは不可能である。
当業者には、さらなる利点および変更が容易に明らかとなろう。
したがって、本発明は、特定の詳細、代表的な装置および示し説明した例示的な例に限定されない。
このため、本出願は、添付の特許請求の範囲に含まれる改変、変更および変形を包含するように意図されている。
さらに、上述した説明は、本発明の範囲を限定するようには意図されていない。
むしろ、本発明の範囲は、添付の特許請求の範囲およびそれらの等価物によって確定されるべきである。
【0044】
用語「含む(include、including)」という用語は、詳細な説明または特許請求の範囲において採用される限りにおいて、特許請求の範囲において移行語として採用される場合に解釈される「具備する、備える、含む(comprising)」と同様に包括的であるように意図される。
さらに、用語「または(もしくは)」は、詳細な説明または特許請求の範囲において採用される(たとえば、AまたはB)限りにおいて、「AまたはBもしくは両方」を意味することが意図されている。
出願人が「AまたはBのみであり両方ではない」を示すよう意図する場合、「AまたはBのみであり両方ではない」という用語を採用する。
このため、本明細書における「または」という用語の使用は、包括的であり排他的な使用ではない。
Bryan A. Garner著、「A Dictionay of Modern Legal Usage 624」(2d. Ed. 1995)」を参照されたい。
【図面の簡単な説明】
【0045】
【図1】機能するコンソールなしにコンピューティングデバイスをブートするシステム例を示す図である。
【図2】機能する送受信機/コンソールなしにコンピューティングシステムをブートする別のシステム例を示す図である。
【図3】機能しないコンソールを処理するコンソールドライバの一例を示す図である。
【図4】システムブートプロセスに関連してもよい方法例を示す図である。
【図5】ブートプロセス中にオペレーティングシステムに関連してもよい方法例を示す図である。
【図6】本明細書で示すシステム例および方法例が動作することができるコンピューティング環境の一例を示す図である。
【符号の説明】
【0046】
100・・・コンピューティングデバイス,
105・・・コンソール,
110・・・ブートロジック,
200・・・コンピューティングシステム,
205・・・ブートロジック,
215・・・コンソール,
225・・・検出ロジック,
230・・・マップロジック,
235・・・UARTドライバ,
240・・・UARTダミードライバ,
245・・・UART故障信号,
300・・・コンソールドライバ,
305・・・機能ロジック,
310・・・プログラム,
315・・・非機能ロジック,
600・・・コンピュータ,
602・・・プロセッサ,
604・・・メモリ,
606・・・ディスク,
608・・・バス,
610・・・I/Oポート,
614・・・プロセス,
616・・・データ,
618・・・I/Oインタフェース,
620・・・ネットワークデバイス,
630・・・ブートロジック,
645・・・ダミーUARTドライバ,
650・・・オペレーティングシステム,
655・・・ダミーコンソールドライバ,

【特許請求の範囲】
【請求項1】
少なくとも1つのコンソール(105)を含むコンピューティングデバイス(100)のためのシステムであって、
前記コンソール(105)との通信が機能しているか否かを検出し、前記コンピューティングデバイス(100)が機能してないコンソールでのブートを可能にするように構成されるブートロジック(110)
を具備するシステム。
【請求項2】
前記コンピューティングデバイス(100)と、前記コンソール(105)との間の通信を提供するように送受信機(210)が構成され、
前記ブートロジック(110)は、
機能しない送受信機を検出するように構成される検出ロジック(225)であって、前記機能しない送受信機は、前記コンソール(105)を機能しないようにする、
前記機能しない送受信機の検出に応じて、前記コンピューティングデバイス(100)が、前記コンソール(105)と通信することなくブートできるようにするダミー送受信機ドライバ(240)をマップするように構成されるマップロジック(230)と
を含む
請求項1に記載のシステム。
【請求項3】
前記送受信機(210)は、汎用非同期送受信装置(UART; universal asynchronous receiver/transmitter)および仮想UARTのいずれかである
請求項2に記載のシステム。
【請求項4】
前記ブートロジック(110)は、前記ダミー送受信機ドライバ(240)および機能送受信機ドライバ(235)を含む複数のドライバ(220)にアクセスするように構成され、
前記ブートロジック(110)は、前記送受信機(210)が機能しているとして検出されることに応じて、前記機能送受信機ドライバ(235)をマップするように構成される
請求項2に記載のシステム。
【請求項5】
前記ブートロジック(110)は、前記機能していない送受信機が検出されることに応じて、前記コンピューティングデバイス(100)のオペレーティングシステムがアクセス可能な故障信号(245)を設定するように構成され、
前記故障信号(245)は、前記オペレーティングシステムに対し、前記オペレーティングシステムが前記コンソール(105)にデータを送信することなく前記コンソール(105)に向けられた通信要求を処理するのを可能にするように構成される送受信機ドライバをロードさせるように構成される
請求項2に記載のシステム。
【請求項6】
コンピューティングデバイスのシステムブート中の方法であって、
故障した送受信機を検出すること(405)であって、前記送受信機は、前記コンピューティングデバイスとコンソールとの間の通信を提供するように構成されること(405)と、
前記故障した送受信機が検出された場合の前記システムブートの継続を可能にする送受信機ドライバをロードすること(410)と、
前記送受信機が機能しているかのように前記システムブートを継続すること(415)と
を含む方法。
【請求項7】
前記送受信機が故障したことを示す故障送受信機信号を設定することと、
オペレーティングシステムにより前記故障送受信機信号を読み出すことと、
前記故障送受信機信号を読み出すことに応じて、前記オペレーティングシステムにより、前記コンソールに向けられる前記故障した送受信機との通信を処理するように構成されるダミー送受信機ドライバをロードすることと
をさらに含む請求項6に記載の方法。
【請求項8】
前記ロードすることは、
前記送受信機ドライバとして作用するダミー送受信機ドライバをロードすること
を含む
請求項6に記載の方法。
【請求項9】
前記故障した送受信機に応じて、前記コンソールに向けられるデータを破棄すること
をさらに含む請求項6に記載の方法。
【請求項10】
コンピューティングシステム(600)であって、
前記コンピューティングシステム(600)に動作可能に接続され、少なくとも情報を表示するように構成されるコンソール(640)と、
前記コンピューティングシステム(600)に動作可能に接続され、前記コンピューティングシステム(600)と、前記コンソール(640)との間の通信を提供するように構成される送受信機(635)と、
前記コンピューティングシステム(600)のブートプロセスを制御するように構成され、前記送受信機(635)が機能しているか否かを検出するように構成されるシステムファームウェア(630)と
を具備し、
前記ブートプロセス中に前記送受信機(635)が機能していないと検出されることに応じて、前記システムファームウェア(630)は、前記送受信機(635)が機能しているかのように前記ブートプロセスが継続できるように動作可能な送受信機ドライバ(645)をロードするように構成される
コンピューティングシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−85702(P2006−85702A)
【公開日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願番号】特願2005−263481(P2005−263481)
【出願日】平成17年9月12日(2005.9.12)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】