(57)【要約】【課題】コンピュータシステムによってアクセス可能なローカルリポジトリ及びリモートリポジトリ上の可能なＲＯＭコードの中から適切なＲＯＭコードを選択するシステム及び方法を提供する。【解決手段】コンピュータシステム内の読み出し専用メモリ（ＲＯＭ）コードを更新するためのコンピュータ実行方法は、複数のリポジトリのうち少なくとも１つのリポジトリにあるＲＯＭコードの１つ以上のコピーにアクセスするステップであって、ＲＯＭコードは、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、選択基準に基づいてＲＯＭコードの１つ以上のコピーのうち１つのコピーを選択し、選択されたＲＯＭコードを取得するステップと、選択されたＲＯＭコードをコンピュータシステムのシステムメモリにコピーするステップと、システムメモリ内の選択されたＲＯＭコードを実行して、特定のデバイスを初期化するステップと、を含む。【選択図】図２
2020030812.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム内の読み出し専用メモリ（ＲＯＭ）コードを更新するためのコンピュータ実行方法であって、
複数のリポジトリのうち少なくとも１つのリポジトリにあるＲＯＭコードの１つ以上のコピーにアクセスするステップであって、前記ＲＯＭコードは、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、
選択基準に基づいて前記ＲＯＭコードの１つ以上のコピーのうち１つのコピーを選択し、選択されたＲＯＭコードを取得するステップと、
前記選択されたＲＯＭコードを前記コンピュータシステムのシステムメモリにコピーするステップと、
前記システムメモリ内の前記選択されたＲＯＭコードを実行して、前記特定のデバイスを初期化するステップと、を含む、コンピュータ実行方法。
【請求項２】
前記選択基準は、
前記ＲＯＭコードの最新のコピーを前記ＲＯＭコードの１つ以上のコピーから識別することができるかどうかを判別するステップと、
前記ＲＯＭコードの最新のコピーを識別することができると判別したことに応じて、前記最新のコピーを前記選択されたＲＯＭコードとして選択するステップと、  前記ＲＯＭコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有する前記ＲＯＭコードのコピーを前記選択されたＲＯＭコードとして選択するステップと、をさらに含み、
前記複数のリポジトリは、前記コンピュータシステム内の複数のローカルリポジトリと、前記コンピュータシステム外の複数のリモートリポジトリと、を含み、前記ＲＯＭコードのコピーの優先度は、前記ＲＯＭコードのコピーの場所によって決定され、前記ローカルリポジトリは、前記リモートリポジトリよりも高い優先度を有し、前記コンピュータシステムのコンピュータバスカードは、前記コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有する、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記選択されたＲＯＭコードをコピーするステップは、
前記選択されたＲＯＭコードがリモートレポジトリにあるかどうかを判別するステップと、
前記選択されたＲＯＭコードがリモートレポジトリにあると判別したことに応じて、前記選択されたＲＯＭコードを前記リモートレポジトリからダウンロードして、ダウンロードされた、選択されたＲＯＭコードを取得するステップと、をさらに含む、請求項１に記載のコンピュータ実行方法。
【請求項４】
前記アクセスするステップの前に、前記コンピュータシステム内のコンピュータバスカード内の既存のＲＯＭコードが存在しないか有効でないと判別するステップと、
前記コンピュータシステム内のコンピュータバスカード内の既存のＲＯＭコードが存在しないか無効であると判別したことに応じて、前記アクセスするステップ及び前記選択するステップを実行するステップと、をさらに含む、請求項１に記載のコンピュータ実行方法。
【請求項５】
読み出し専用メモリ（ＲＯＭ）コードを更新するように構成されたコンピュータシステムであって、
複数のリポジトリと、
システムメモリと、
特定のデバイスと、
プロセッサと、
前記プロセッサによって実行されると、前記コンピュータシステムに動作を実行させる命令を記憶するコンピュータ可読記憶媒体と、を備え、
前記動作は、
前記複数のリポジトリのうち少なくとも１つのリポジトリにあるＲＯＭコードの１つ以上のコピーにアクセスするステップであって、前記ＲＯＭコードは、前記特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、
選択基準に基づいて前記ＲＯＭコードの１つ以上のコピーのうち１つのコピーを選択し、選択されたＲＯＭコードを取得するステップと、
前記選択されたＲＯＭコードを前記コンピュータシステムの前記システムメモリにコピーするステップと、
前記システムメモリ内の前記選択されたＲＯＭコードを実行して、前記特定のデバイスを初期化するステップと、を含む、コンピュータシステム。
【請求項６】
前記選択基準は、
前記ＲＯＭコードの最新のコピーを前記ＲＯＭコードの１つ以上のコピーから識別することができるかどうかを判別するステップと、
前記ＲＯＭコードの最新のコピーを識別することができると判別したことに応じて、前記最新のコピーを前記選択されたＲＯＭコードとして選択するステップと、
前記ＲＯＭコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有する前記ＲＯＭコードのコピーを前記選択されたＲＯＭコードとして選択するステップと、をさらに含み、
前記複数のリポジトリは、前記コンピュータシステム内の複数のローカルリポジトリと、前記コンピュータシステム外の複数のリモートリポジトリと、を含み、前記ＲＯＭコードのコピーの優先度は、前記ＲＯＭコードのコピーの場所によって決定され、前記ローカルリポジトリは、前記リモートリポジトリよりも高い優先度を有し、前記コンピュータシステムのコンピュータバスカードは、前記コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有する、請求項５に記載のコンピュータシステム。
【請求項７】
前記選択されたＲＯＭコードをコピーするステップは、
前記選択されたＲＯＭコードがリモートレポジトリにあるかどうかを判別するステップと、
前記選択されたＲＯＭコードがリモートレポジトリにあると判別したことに応じて、前記選択されたＲＯＭコードを前記リモートレポジトリからダウンロードして、ダウンロードされた、選択されたＲＯＭコードを取得するステップと、をさらに含む、請求項５に記載のコンピュータシステム。
【請求項８】
サーバシステムの少なくとも１つのプロセッサによって実行されると、前記サーバシステムに動作を実行させる命令を含むコンピュータ可読記憶媒体であって、
前記動作は、
前記複数のリポジトリのうち少なくとも１つのリポジトリにあるＲＯＭコードの１つ以上のコピーにアクセスするステップであって、前記ＲＯＭコードは、特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、
選択基準に基づいて前記ＲＯＭコードの１つ以上のコピーのうち１つのコピーを選択し、選択されたＲＯＭコードを取得するステップと、
前記選択されたＲＯＭコードを前記コンピュータシステムのシステムメモリにコピーするステップと、
前記システムメモリ内の前記選択されたＲＯＭコードを実行して、前記特定のデバイスを初期化するステップと、を含む、コンピュータ可読記憶媒体。
【請求項９】
前記選択基準は、
前記ＲＯＭコードの最新のコピーを前記ＲＯＭコードの１つ以上のコピーから識別することができるかどうかを判別するステップと、
前記ＲＯＭコードの最新のコピーを識別することができると判別したことに応じて、前記最新のコピーを前記選択されたＲＯＭコードとして選択するステップと、
前記ＲＯＭコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有する前記ＲＯＭコードのコピーを前記選択されたＲＯＭコードとして選択するステップと、をさらに含み、
前記ＲＯＭコードのコピーの優先度は、前記ＲＯＭコードのコピーの場所によって決定され、前記複数のリポジトリは、前記コンピュータシステム内の複数のローカルリポジトリと、前記コンピュータシステム外の複数のリモートリポジトリと、を含み、前記ローカルリポジトリは、前記リモートリポジトリよりも高い優先度を有し、前記コンピュータシステムのコンピュータバスカードは、前記コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有する、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記選択されたＲＯＭコードをコピーするステップは、
前記選択されたＲＯＭコードがリモートレポジトリにあるかどうかを判別するステップと、
前記選択されたＲＯＭコードがリモートレポジトリにあると判別したことに応じて、前記選択されたＲＯＭコードを前記リモートレポジトリからダウンロードして、ダウンロードされた、選択されたＲＯＭコードを取得するステップと、をさらに含む、請求項８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読み出し専用メモリ（ＲＯＭ）コードの検索に関し、特に、コンピュータシステムによってアクセス可能なローカルリポジトリ及びリモートリポジトリ上の可能なＲＯＭコードの中から適切なＲＯＭコードを選択するシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータシステムは、拡張読み出し専用メモリ（ＲＯＭ）コードを用いて、コンピュータシステム内の特定のデバイスを初期化する。多くの場合、拡張ＲＯＭコードは、コンピュータシステムの起動中に用いられる。例えば、ビデオグラフィックアレイ（ＶＧＡ）デバイスの拡張ＲＯＭコードは、コンピュータシステムのビデオ出力機能を可能にする。別の例では、記憶デバイスの拡張ＲＯＭコードは、コンピュータシステムの起動中にハードドライブディスクを初期化し、それをＢＩＯＳにさらす（expose）ことができる。
【０００３】
拡張ＲＯＭコードを実行すると、グラフィックカードやハードディスクドライブ等のコンピュータシステム内の重要なファームウェアデバイスを初期化することができる。これらのファームウェアデバイスは、システムの起動中に拡張ＲＯＭコードが適切に実行されていないと、簡単に初期化されない。したがって、特定のデバイスを初期化するための拡張ＲＯＭコードが存在しない場合、コンピュータシステムの機能が低下する虞がある。拡張ＲＯＭコードが無効であるか最新でない場合、コンピュータシステムは、特定のデバイスを適切に初期化することができない虞がある。
【０００４】
拡張ＲＯＭコードは、多くの場合、コンピュータバスカードに記憶される。コンピュータバスカードは、拡張カード又はアダプタカードとも呼ばれ、このカードを初期化するための主な電源投入命令をコンピュータシステムに提供する。拡張ＲＯＭコードがコンピュータバスカードに記憶されている場合、コンピュータシステムは、そのコードに容易にアクセスして、電源投入中にそのコードを実行することができる。しかしながら、このアプローチには、いくつかの問題がある。特に、ユーザが何らかの理由でコンピュータバスカードを交換する必要がある場合、新たなコンピュータバスカードが交換用カードに適切な拡張ＲＯＭコードを有しているかどうかを判別するのは容易ではない。カードに適切な拡張ＲＯＭコードがないと、通常、ユーザが特定のデバイスを初期化するのは面倒なプロセスである。ユーザは、適切な拡張ＲＯＭコードを検索し、それをコンピュータバスカードに手動で入れることによって、手動初期化プロセスを完了する必要がある。
【０００５】
いくつかの実施形態では、拡張ＲＯＭコードは、コンピュータシステムによってアクセス可能な場所に記憶されるが、コンピュータバスカード上には記憶されない。しかしながら、多くの従来のコンピュータシステムは、他の場所に記憶されている拡張ＲＯＭコードへのアクセスをサポートしていない。また、このようなコンピュータシステムは、拡張ＲＯＭコードの複数のコピーがコンピュータシステム内に存在する状況では、何れの拡張ＲＯＭコードが実行に適切なコードであるかを判別することができない。
【０００６】
また、拡張ＲＯＭコードが古い場合、ユーザがそれを更新することは困難である。例えば、ユーザは、通常、拡張ＲＯＭコードを手動で更新するか、コンピュータバスカード自体を、更新された拡張ＲＯＭコードを有するバスカードと交換する必要がある。拡張ＲＯＭコードを手動で更新するには、ユーザは、コンピュータのバスカードのベンダのフィールドアプリケーションエンジニア（Field Application Engineer：ＦＡＥ）からＲＯＭイメージを取得するか、ベンダのＷｅｂサイトからそれをダウンロードする必要がある。次に、ユーザは、ＲＯＭイメージを記憶デバイス（例えば、ＵＳＢフラッシュキー）にコピーする必要がある。次に、ユーザは、元のコンピュータバスカードを用いてシステムの電源を入れ、オペレーティングシステムを起動する必要がある。次いで、ユーザは、ベンダ固有のユーティリティを用いて、拡張カードのＲＯＭイメージをフラッシュ又は更新する必要がある。
【０００７】
したがって、コンピュータバスカードから拡張ＲＯＭコードが欠落しているか、拡張ＲＯＭコードが古くなっている場合に、コンピュータシステムによってアクセス可能な複数のリポジトリのうち何れかのリポジトリ内の拡張ＲＯＭコードにアクセスすることができるシステム又は方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、コンピュータシステムによってアクセス可能なローカルリポジトリ及びリモートリポジトリ上の可能なＲＯＭコードの中から適切なＲＯＭコードを選択するシステム及び方法を提供する。
【課題を解決するための手段】
【０００９】
本開示の様々な例は、コンピュータシステムによってアクセス可能なローカル及びリモートリポジトリ上の可能なＲＯＭコードの中から適切なＲＯＭコードを選択することを目的としている。本開示の実施形態による例示的な方法は、可能なＲＯＭコードをチェックし、選択されたＲＯＭコードを実行するための一連のステップを実行する。本開示による一実施形態は、コンピュータシステム内の読み出し専用メモリコードを更新するためのコンピュータ実行方法を含むことができる。この方法は、複数のリポジトリのうち少なくとも１つのリポジトリにあるＲＯＭコードの１つ以上のコピーにアクセスすることができる。ＲＯＭコードは、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成することができる。方法は、ＲＯＭコードの１つ以上のコピーにアクセスした後に、選択基準に基づいてＲＯＭコードの１つ以上のコピーのうち１つのコピーを選択することができる。これにより、選択されたＲＯＭコードを取得することができる。次に、方法は、選択されたＲＯＭコードをコンピュータシステムのシステムメモリにコピーして、特定のデバイスを初期化することができる。
【００１０】
いくつかの例では、複数のリポジトリは、コンピュータシステム内のローカルリポジトリと、コンピュータシステム外のリモートリポジトリと、を含むことができる。
【００１１】
いくつかの例では、選択基準は、ＲＯＭコードの最新のコピーを、ＲＯＭコードの１つ以上のコピーから識別することができるかどうかを判別することを含むことができる。方法は、ＲＯＭコードの最新のコピーを識別することができると判別したことに応じて、最新のコピーを、選択されたＲＯＭコードとして選択することができる。方法は、ＲＯＭコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有するＲＯＭコードのコピーを、選択されたＲＯＭコードとして選択することができる。
【００１２】
いくつかの例では、ＲＯＭコードのコピーの優先度は、ＲＯＭコードのコピーの場所によって決定される。ローカルリポジトリは、リモートリポジトリよりも高い優先度を有することができる。コンピュータシステムのコンピュータバスカードは、コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有することができる。
【００１３】
いくつかの例では、選択されたＲＯＭコードをコピーすることは、選択されたＲＯＭコードがリモートレポジトリにあるかどうかを判別することをさらに含むことができる。方法は、選択されたＲＯＭコードがリモートレポジトリにあると判別したことに応じて、選択されたＲＯＭコードをリモートレポジトリからダウンロードして、ダウンロードされた、選択されたＲＯＭコードを取得することができる。次に、方法は、ユーザからの入力を受信して、ダウンロードされた、選択されたＲＯＭコードをコンピュータシステムのローカルレポジトリに記憶することができる。
【００１４】
他の例では、方法は、先ず、コンピュータシステム内のコンピュータバスカード内の既存のＲＯＭコードが存在しない及び／又は無効であると判別することを含むことができる。
【００１５】
他の例では、方法は、先ず、コンピュータシステム内のコンピュータバスカード内の既存のＲＯＭコードが存在しており、有効であると判別することを含むことができる。また、方法は、既存のＲＯＭコードを自動的に用いるのではなく、コンピュータシステムが選択基準に基づいてＲＯＭコードを選択する傾向があると判別することができる。
【００１６】
「コンピュータシステム」、「コンピューティングシステム」及び「サーバシステム」という用語は、本開示において全て同じ意味で用いられており、コンピュータプログラミングを介して一連の算術演算又は論理演算を実行する電子コンピューティングシステムを識別するために使用することができる。このような電子コンピューティングシステムは、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、及び、商業用又は個人向けサーバシステムを含むことができるが、これらに限定されない。
【００１７】
本開示並びにその利点及び図面は、添付の図面を参照しながら以下の例示的な実施形態の説明からより良く理解されるであろう。これらの図面は例示的な実施形態のみを描いており、したがって、様々な実施形態又は特許請求の範囲に対する限定とみなされるべきではない。
【図面の簡単な説明】
【００１８】
【図１】従来技術による、拡張ＲＯＭコードを実行する方法のフローチャートである。
【図２】本開示の一実施形態による、コンピュータシステム内の読み出し専用メモリコードを更新する例示的な方法のフローチャートである。
【図３】本開示の一実施形態による、例示的な選択基準を示す図である。
【図４】本開示の一実施形態による、選択された拡張ＲＯＭコードをリモートリポジトリからローカルリポジトリに保存する例示的な方法を示す図である。
【図５】本開示の一実施形態による、拡張ＲＯＭコードの構造の例示的なメモリマップを示す図である。
【図６】本開示の一実施形態による、例示的なシステムを示す概略ブロック図である。
【発明を実施するための形態】
【００１９】
本発明は、添付の図面を参照して説明され、図面全体を通して、類似又は同じ要素を示すために類似の符号が使用される。図面は、本発明を説明するためのものであり、縮尺通りに描かれているとは限らない。本発明のいくつかの態様は、説明のために、例示的な用途を参照して以下に説明される。本発明の十分な理解を提供するために、多数の具体的な詳細、関係及び方法が説明されていることを理解されたい。しかしながら、当業者であれば、これらの特定の詳細なしに、又は、他の方法を用いて本発明を実施し得ることを容易に理解するであろう。その他の実施形態において、本発明を曖昧にすることを避けるために、周知の構造又は動作を詳細に示していない。いくつかの動作は、異なる順序及び／又は他の動作若しくはイベントと同時に起こり得るので、本発明は、例示された動作又はイベントの順序によって限定されない。また、本発明による方法を実施するために、例示された全ての動作又はイベントが必要とされているわけではい。
【００２０】
本開示は、更新された拡張ＲＯＭコードを検索し、そのコードを実行して特定のデバイスを初期化する方法に関する。本方法の例示的な実施形態では、コンピュータシステムは、先ず、複数のリポジトリ内の拡張ＲＯＭコードの１つ以上のコピーにアクセスすることができる。次に、コンピュータシステムは、選択基準に基づいてコードの１つのコピーを選択することができる。最後に、コンピュータシステムは、選択されたＲＯＭコードをコンピュータシステムのシステムメモリにコピーし、システムメモリ内の選択されたＲＯＭコードを実行することができる。
【００２１】
本明細書に開示される方法では、選択基準は、先ず、最新バージョンの拡張ＲＯＭコードを選択することを提供することができる。最新のバージョンがない場合、選択基準は、何れのコードのコピーが最も高い優先度を有するかに従って拡張ＲＯＭコードを選択することを提供することができる。例えば、高い優先度がローカルリポジトリからの拡張ＲＯＭコードに割り当てられてもよく、低い優先度がリモートリポジトリからの拡張ＲＯＭコードに割り当てられてもよい。
【００２２】
この方法は、最初のコンピュータバスカードの拡張ＲＯＭコードに常に頼るのではなく、拡張ＲＯＭコードの更新を可能にする。この方法では、コンピュータシステムは、特定のデバイスを初期化するために、ローカルリポジトリ及びリモートリポジトリを調べて、拡張ＲＯＭコードの他のコピーを見つけることができる。
【００２３】
この方法は、利用可能な拡張ＲＯＭコードを評価して適切なＲＯＭコードを選択するのを可能にする等、従来のプロセスよりも優れた利点を有する。例えば、最新のコードは、通常、最新の更新を有しているので、最近のコードを適切な選択とすることができる。したがって、この方法は、適切なＲＯＭコードを選択して使用するために、最新の拡張ＲＯＭコードを選択することを提供することができる。別の例では、ローカルに記憶されたＲＯＭコードは、通常、初期化されたデバイスに対して最適に構成されているので、この方法は、リモートリポジトリ上の拡張ＲＯＭコードのコピーよりもローカルリポジトリ上の拡張ＲＯＭコードのコピーを優先することを提供することができる。
【００２４】
図１は、従来技術による、コンピュータシステムにおいて拡張ＲＯＭコードを実行する方法１００のフローチャートである。この方法１００では、第１ステップ（ステップ１０２）は、システムが周辺機器相互接続（peripheral component interconnect：ＰＣＩ）デバイス上で拡張ＲＯＭコードを見つけることができるかどうかを調べる。例えば、ＰＣＩデバイスは、コンピュータバスカードとすることができる。ＲＯＭコードが存在し且つ有効であると判明した場合（ステップ１０４）、コンピュータシステムは、拡張ＲＯＭコードをＰＣＩデバイスからシステムメモリにコピーするように進むことができる（ステップ１０６）。次に、方法１００は、システムメモリ内の拡張ＲＯＭコードを実行し、ＰＣＩデバイスを初期化することができる（ステップ１０８）。しかしながら、システムがＰＣＩデバイス上で拡張ＲＯＭコードを見つけることができなかった場合（ステップ１０４）、方法１００は終了する（ステップ１１０）。
【００２５】
図１から分かるように、拡張ＲＯＭコードがＰＣＩ装置上で見つからない場合、従来の方法では、通常、ＰＣＩデバイスを初期化する如何なる手段も提供しない。結果として、方法１００は、方法１００の要件が満たされていない場合にはバックアップできないという限られた状況を有する。
【００２６】
図２は、本開示の一実施形態による、コンピュータシステム内の読み出し専用メモリコードを更新する例示的な方法２００のフローチャートである。方法２００は、ユーザがコンピュータシステムと対話する前にプロセスが完了するように、コンピュータシステムの起動段階中に実行することができる。方法２００は、コンピュータシステムのＢＩＯＳソフトウェアに統合することができ、起動プロセス中に実行することができる。
【００２７】
コンピュータシステムの起動プロセス中であるが方法２００の開始前に、コンピュータシステムは、先ず、コンピュータシステム内のコンピュータバスカード内の既存のＲＯＭコードが存在し且つ有効であるかどうかをチェックすることができる。既存のＲＯＭコードが存在しない及び／又は有効でないことが判明した場合、コンピュータシステムは、図２の方法２００を初期化することができる。既存のＲＯＭコードが存在し且つ有効であるかどうかをまずチェックすることは、コンピュータシステムを可能な限り効率的に実行するのを可能にする。例えば、既存のＲＯＭコードが既に存在し且つ有効であれば、更新されたＲＯＭコードを求めてコンピュータシステムを検索する必要がない。更新されたＲＯＭコードを検索すると、余分な時間がかかる可能性がある。
【００２８】
また、コンピュータシステムは、コンピュータシステム内のコンピュータバスカード内の既存のＲＯＭコードが存在し且つ有効であると判別することができる。次に、コンピュータシステムは、システムプリファレンス（system preference）をチェックし、コンピュータシステムが、既存のＲＯＭコードを自動的に使用するのではなく、方法２００による選択基準に基づいて依然としてＲＯＭコードを選択する傾向があることを識別することができる。これにより、ユーザは、システムプリファレンスを設定し、最新のＲＯＭコードを得るためにコンピュータシステムが効率を犠牲にすべきかどうかを個別に決定することができる。
【００２９】
コンピュータシステムが既存のＲＯＭコードに対して初期チェックを実行するかどうかにかかわらず、方法２００は、ステップ２１０で、複数のリポジトリのうち少なくとも１つのリポジトリにあるＲＯＭコードの１つ以上のコピーにアクセスすることによって開始する。ＲＯＭコードは、拡張ＲＯＭコード、オプションＲＯＭコード、又は、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成された任意の他のコードとすることができる。例えば、ＲＯＭコードは、ＶＧＡカード、ハードドライブディスク、又は、独立した初期化コードを用いることができるコンピュータシステム内の任意の他のデバイスのための初期化プロセスを実行するように構成することができる。ステップ２１０は、複数のリポジトリのうち任意のリポジトリ内のＲＯＭコードのコピーにアクセスすることができる。
【００３０】
リポジトリは、コンピュータシステムのローカルなリポジトリと、コンピュータシステムに対してリモートなリポジトリと、を含むことができる。ローカルリポジトリの例は、コンピュータシステム内の任意のリポジトリ（例えば、コンピュータバスカード、周辺機器相互接続（ＰＣＩ）カード上の電気的消去可能プログラマブル読み出し専用メモリ（electrically erasable programmable read-only memory：ＥＥＰＲＯＭ）、コンピュータシステムのマザーボードユニット上のＥＥＰＲＯＭ、及び／又は、基本入出力システム（ＢＩＯＳ）の予約空間等）を含むことができる。ローカルリポジトリは、ＢＩＯＳがインターネット接続又は３パリティコンポーネント（3-parity component）を介してメモリにアクセスする必要がないように、ＢＩＯＳによって直接アクセス可能な任意のメモリを含む。ハードドライブ又はＵＳＢドライブは、コンピュータシステムのマザーボードユニットに直接接続されている場合に、ローカルリポジトリとなり得る。
【００３１】
リモートリポジトリの例は、システムのマザーボードユニットに直接接続されていないが、Ｗｉ−Ｆｉ（登録商標）やイーサネット（登録商標）等のリンク接続（linked connection）、又は、データを取り出すのに必要な量の待ち時間を要する他の接続を介してアクセス可能な任意のリポジトリを含むことができる。リモートリポジトリは、３パリティ接続を介してアクセスすることもできる。したがって、リモートリポジトリは、コンピュータシステム内のコンピュータコンポーネントを含むこともできるが、ＢＩＯＳから直接アクセスすることができない。リモートリポジトリのいくつかの例は、ハードドライブディスク、ユニバーサルシリアルバス（ＵＳＢ）ドライブ、及び／又は、リモートファームウェア制御サーバを含むことができる。
【００３２】
ステップ２１０を完了した後、方法２００は、選択基準に基づいてＲＯＭコードの１つのコピーを選択することによってステップ２２０に進む。例示的な選択基準は、図３にさらに説明される。図２に示すように、ステップ２２０の選択基準は、ステップ２１０がＲＯＭコードの複数のコピーにアクセスした場合に、ＲＯＭコードの単一のコピーを選択するのに用いられる。さらに、選択基準は、最も信頼性が高く、最新且つ容易にアクセス可能なＲＯＭコードのコピーが確実に選択されるように用いられる。
【００３３】
方法２００は、次いで、ステップ２３０において、選択されたコピーがリモートリポジトリ内にあるかどうかをチェックすることができる。選択されたコピーがリモートリポジトリにある場合、方法はステップ２６０に進み、リモート選択プロセスを完了する。例示的なリモート選択プロセスは、図４に関して以下により詳細に説明される。図２に示すように、方法は、ステップ２６０のリモート選択プロセスが完了した後に、ステップ２４０に進む。
【００３４】
ステップ２３０では、コンピュータシステムが、選択されたコピーがリモートリポジトリにないと判別した場合に、方法２００はステップ２４０に進むことができる。ステップ２４０では、方法２００は、選択されたＲＯＭコードをコンピュータシステム内のシステムメモリにコピーする。システムメモリは、コンピュータシステムの起動プロセス中に実行するためのコンピュータ命令を保持するコンピュータコンポーネントとすることができる。例えば、システムメモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）とすることができる。
【００３５】
次に、方法２００は、ステップ２５０において、選択されたＲＯＭコードを実行することによって完了し、コンピュータシステム内の特定のデバイスのための初期化プロセスを実行する。
【００３６】
したがって、例示的な方法２００は、従来のプロセスよりも優れたいくつかの利点を有する。方法２００は、コンピュータシステムに対してローカル及びリモートの様々なリポジトリ内のＲＯＭコードにアクセスするので、コンピュータシステムは、従来のシステムよりも広範囲の状況で特定のデバイスを初期化することができる。従来のシステムは、コンピュータバスカード内のＲＯＭコードを検索するだけであり、ＲＯＭコードがコンピュータバスカード内で見つからなかった場合には、デバイスを初期化することができない。また、例示的な方法２００は、ステップ２２０において、選択基準によって最も更新され、容易にアクセス可能で、信頼性のあるコードが確実に選択されるようにする。このステップにより、利用可能な最善のＲＯＭコードが常にデバイスの初期化に用いられるようになる。
【００３７】
したがって、図２の方法は、初期化プロセスに用いられる更新コードをダウンロードし、識別し、選択するためにユーザの関与を必要とする従来のプロセスよりも優れた利点を示している。また、従来のプロセスは、通常、コンピュータの電源がオンでユーザがアクセスできる間に、特定のデバイスに対して更新手順を行う必要がある。次に、ユーザは、実行されたコードを実行する前に、コンピュータシステムを再起動する必要がある。対照的に、方法２００は、コンピュータシステムの起動プロセス中に更新手順を実行することができる。
【００３８】
上述したように、図２のステップ２２０は、選択基準に基づいてアクセスされたＲＯＭコードの１つのコピーを選択することを含む。図３は、本開示の一実施形態による、例示的な選択基準を実施する方法３００を示している。ステップ３１０では、方法３００は、先ず、アクセスされたＲＯＭコード（例えば、図２のステップ２１０でアクセスされたＲＯＭコード）を評価し、ＲＯＭコードの何れのコピーが最新のものであるかを判別する。最新のコピーは、最も最近書き込みされた又は公開された、すなわち最新の日付を有するＲＯＭコードとすることができる。日付は、コード上のタグによって識別されてもよいし、コードコピーの最新性を識別する他のメカニズムによって識別されてもよい。例えば、図５は、本開示の一実施形態による、ＲＯＭコードの例示的な構造を説明している。図３に示すように、最新のコピーを識別することは、特定のデバイスを初期化するのに用いられるコードが最新のコードになることを保証する。
【００３９】
いくつかの実施例では、方法３００は、ステップ３１０で、ＲＯＭコードの単一の最新のコピーを識別することができる。例えば、サマリテーブルを生成して、拡張ＲＯＭコードとそのリビジョンデータ（revision data）をリストすることができる。このようなサマリテーブルは、拡張ＲＯＭコードのベンダ識別、何れのコンピュータデバイスが拡張ＲＯＭコードを使用するのかに関する対応するデバイス識別（ＩＤ）、拡張ＲＯＭコードの任意のリビジョンデータ、拡張ＲＯＭコードのリビジョン履歴、及び、リビジョンされた拡張ＲＯＭコードの各コピーの場所等のデータを含むことができる。したがって、ＢＩＯＳは、サマリテーブルを検索して、何れのリポジトリにＲＯＭコードの最新のコピーがあるかを判別することができる。
【００４０】
最新のコピーを識別することができる場合（ステップ３１５）、方法３００は、ステップ３２０に進むことができる。ステップ３２０では、方法３００は、ＲＯＭコードの最新のコピーを選択されたコードとして用いて、図２のステップ２３０に戻る。
【００４１】
対照的に、最新のコピーを識別することができない場合（ステップ３１５）、方法３００は、さらなる処理のために代わりにステップ３３０に進むことができる。つまり、いくつかのケースにおいて、最新の日付を有するＲＯＭコードのコピーが複数ある場合がある。方法３００は、最新の日付を有するＲＯＭコードの全てのコピーを識別する追加の処理のために、ステップ３３０に進むことができる。したがって、より新しい日付を有するＲＯＭコードのいくつかのコピーと、あまり新しくない日付を有する他のコピーとがある場合、方法３００は、より新しい日付を有するＲＯＭコードのコピーのみを進めることができる。
【００４２】
ステップ３３０で最新の日付を有するＲＯＭコードが識別されると、方法３００は、ステップ３４０に進むことができる。ステップ３４０では、最高の優先度を有するＲＯＭコードのコピーを選択することができる。さらに、ステップ３２０では、最高の優先度を有するＲＯＭコードを選択されたコードとして用いて、図２のステップ２３０に戻る。
【００４３】
ＲＯＭコードの優先度は、様々な方法で指定することができる。しかしながら、例示的な構成では、方法３００は、以下のように優先度を決定することができる。先ず、ＲＯＭコードの各コピーの位置を識別することができる。例えば、上述したように、ＲＯＭコードの各コピーは、ローカルレポジトリ又はリモートレポジトリ内で見つけることができ、対応するレポジトリに注目することができる。その後、位置優先度を用いることができる。例えば、ローカルリポジトリは、リモートリポジトリよりも高い優先度を有することができる。このような構成では、方法３００は、リモートレポジトリからのコピーよりも、ローカルレポジトリからのＲＯＭコードのコピーを優先することになる。さらに、同様のタイプのリポジトリ（ローカル又はリモート）においても、優先度を指定することができる。例えば、コンピュータバスカード内のＲＯＭコードのコピーは、他のコンピュータシステムのローカルリポジトリのＲＯＭコードのコピーよりも高い最高の優先度を有することができる。
【００４４】
本開示の他の例示的な実施形態では、選択基準は、ＲＯＭコードのリビジョン生成者に基づいてＲＯＭコードを優先することができる。例えば、ファームウェアの生成者と同じリビジョン生成者を優先することができる。本開示の別の例示的な実施形態では、リアルタイムでユーザにインタフェースを提供することができ、ユーザは、何れのＲＯＭコードが適切であるかを選択することができる。
【００４５】
方法３００は、従来の方法よりも優れた多くの利点を提供する。例えば、従来のプロセスは、通常、コンピュータバスカード内で見つかったＲＯＭコードを評価するだけであり、コードの最新性を評価する方法を有していない。対照的に、方法３００は、最新の日付を有するＲＯＭコードのコピーを選択することに基づいて、適切なＲＯＭコードをもたらすことができる。
【００４６】
また、方法３００は、コードの場所に基づいて、何れＲＯＭコードのコピーを実行するかを決定することができる。これにより、より効率的な起動プロセスとすることができる。例えば、コンピュータバスカードからコードを選択することは、コンピュータシステムがリモートレポジトリからコードをダウンロードし、それを新たな場所に保存し、そのコードを実行することを必要としない。したがって、コンピュータバスカード内のＲＯＭコードが最新のものである場合、本開示の方法は、不要なプロセスの必要性を回避する。
【００４７】
いくつかの構成では、ＲＯＭコードが最終的にリモートリポジトリから得られる場合、そのＲＯＭコードを将来の使用のためにローカルレポジトリに記憶することが有利になり得る。これは、図４に示されている。図４は、本開示の一実施形態による、選択された拡張ＲＯＭコードをリモートリポジトリからローカルリポジトリに保存する例示的なリモート選択プロセス４００を示している。リモート選択プロセス４００は、方法２００の選択されたＲＯＭコードがリモートリポジトリにある場合に開始することができるオプションのプロセスである。
【００４８】
リモート選択プロセス４００は、選択されたＲＯＭコードからのリビジョンデータをリモートリポジトリから受信するステップ４１０で開始する。例えば、選択された拡張ＲＯＭコード全体をリモートリポジトリからダウンロードすることができる。別の実施形態では、選択された拡張ＲＯＭコードからのリビジョンデータのみをリモートリポジトリから受信することができる。リビジョンデータは、取得してローカルドライブ、マザーボードのＥＥＰＲＯＭ、ＢＩＯＳフラッシュＲＯＭの予約領域、又は、ローカルリポジトリの任意の場所に配置することができる。いくつかの実施例では、場所は、ユーザによって選択されてもよい。
【００４９】
次に、リモート選択プロセス４００は、ステップ４２０に進み、リモート選択プロセス４００がＲＯＭコードをローカルレポジトリに保存すべきかどうかに関する指示をユーザから受信することができる。ＲＯＭコードをローカルレポジトリに保存することは、ＲＯＭコードが将来の試みにおいてより効率的にアクセスされ、より効率的に実行されるのを可能にする。ローカルリポジトリにＲＯＭコードを保存する命令を受けた後、リモート選択プロセス４００は、ステップ４３０に進み、ＲＯＭコードがローカルリポジトリにコピーされる。
【００５０】
リモート選択プロセス４００は、（１）コードをローカルリポジトリに保存する命令を受信しない（ステップ４２０）、又は、（２）コードをローカルリポジトリにコピーするプロセスを完了する（ステップ４３０）ステップの何れかの後に、ステップ４４０で完了する。
【００５１】
リモート選択プロセス４００は、リモート選択プロセスが、更新されたＲＯＭコードをローカルレポジトリにコピーし、コンピュータシステムの将来の全ての起動プロセスで繰り返し使用するのを可能にするので、従来のプロセスよりも優れた利点を示している。これは、起動プロセスを続行する前にシステムがリモートリポジトリからコードをダウンロードする必要がないので、将来の全ての起動プロセスの効率を向上させる。
【００５２】
図５は、本開示の一実施形態による、拡張ＲＯＭコードの例示的な構造を示す図である。例えば、例示的な構造は、ＲＯＭヘッダ５０１と、ＰＣＩデータ構造５０２と、イメージ５０３と、を含むことができる。ＲＯＭヘッダ５０１は、拡張ＲＯＭコードのヘッダフィールド５０４と、拡張ＲＯＭコードの署名５０５と、ＰＣＩデータ構造へのポインタ５０６と、任意の他の追加ヘッダデータ５０７と、を含むことができる。この情報は、拡張ＲＯＭコードを評価するときに、ＢＩＯＳによって記憶、分析及び呼び出す（recall）ことができる。
【００５３】
ＰＣＩデータ構造５０２は、ＰＣＩデータ構造へのポインタ５０８と、ベンダ識別（ＩＤ）５０９と、デバイス識別（ＩＤ）５１０と、デバイスリストポインタ５１１と、ＲＯＭコード構造長５１２と、ＲＯＭコードリビジョン履歴５１３と、ＲＯＭコードのリビジョンデータ５１４と、任意の追加データ構造情報５１５と、等の情報を含むことができる。デバイス識別（ＩＤ）５１０は、特定のＲＯＭコードを保持する特定のデバイスを識別することができる。デバイスリストポインタ５１１は、特定のＲＯＭコードによってサポートされ得る他の全てのデバイスを含むデバイスリストを指すことができる。ベンダ識別（ＩＤ）５０９、デバイス識別（ＩＤ）５１０、デバイスリストポインタ５１１及びＲＯＭコードリビジョン履歴５１３は、図３に関して説明したように使用することができる。ＲＯＭコードのリビジョンデータは、本開示の方法の何れかを実行するときにＢＩＯＳによってアクセス可能である。
【００５４】
図６は、本開示の一実施形態による、例示的なサーバシステム６００のブロック図である。この例では、サーバシステム６００は、少なくとも１つのマイクロプロセッサ又はプロセッサ６０４と、ＢＭＣ６０３と、１つ以上の冷却モジュール６６０と、メインメモリ（ＭＥＭ）６１１と、ＡＣ電源からＡＣ電力を受け取り、電力を様々なコンポーネント（例えば、プロセッサ６０４、ノースブリッジ（ＮＢ）ロジック６０６、ＰＣＩｅスロット６７０、サウスブリッジ（ＳＢ）ロジック６０８、ストレージデバイス６０９、ＩＳＡスロット６５０、ＰＣＩスロット６７０及びＢＭＣ６０３等）に供給する少なくとも１つの電源ユニット（ＰＳＵ）６０２と、を含む。
【００５５】
電源がオンにされた後、サーバシステム６００は、メモリ、コンピュータストレージデバイス又は外部のストレージデバイスからソフトウェアアプリケーションをロードして、様々な動作を行うように構成されている。ストレージデバイス６０９は、オペレーティングシステム及びサーバシステム６００のアプリケーションに利用可能な論理ブロックに構造化されている。ストレージデバイス６０９は、サーバシステム６００の電源がオフになってもサーバデータを保持するように構成されている。
【００５６】
図６において、メインメモリ６１１は、プロセッサ６０４に直接接続されている。メインメモリ６１１は、ＤＲＡＭ、ダブルデータレートＤＲＡＭ（ＤＤＲ  ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）又は他のタイプの適切なメモリを含むことができるが、これらに限定されない。メインメモリ６１１は、サーバシステム６００のファームウェアデータを記憶するように構成することができる。いくつかの構成では、ファームウェアデータは、ストレージデバイス６０９に記憶することができる。
【００５７】
いくつかの実装形態では、サーバシステム６００は、フラッシュストレージデバイスをさらに備えることができる。フラッシュストレージデバイスは、フラッシュドライブ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、又は、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）とすることができる。フラッシュストレージデバイスは、例えばファームウェアデータ等のシステム構成を記憶するように構成することができる。
【００５８】
プロセッサ６０４は、特定の機能のプログラム命令を実行するように構成された中央処理装置（ＣＰＵ）とすることができる。例えば、プロセッサ６０４は、起動プロセス中に、ＢＭＣ６０３又はフラッシュストレージデバイスに記憶されたファームウェアデータにアクセスし、ＢＩＯＳ６０５を実行してサーバシステム６００を初期化することができる。プロセッサ６０４は、起動プロセスの後に、オペレーティングシステムを実行して、サーバシステム６００の特定のタスクを実行及び管理する。別の実施形態では、ＢＩＯＳ６０５は、プロセッサ６０４の代わりにＰＣＨに接続する。
【００５９】
いくつかの構成では、プロセッサ６０４は、マルチコアプロセッサとすることができ、マルチコアプロセッサの各プロセッサは、ＮＢロジック６０６に接続されたＣＰＵバスを介して互いに結合される。いくつかの構成では、ＮＢロジック６０６をプロセッサ６０４に統合することができる。また、ＮＢロジック６０６は、複数の周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ）スロット６７０及びＳＢロジック６０８（オプション）に接続することができる。複数のＰＣＩｅスロット６７０は、例えば、ＰＣＩエクスプレス  ｘ１、ＵＳＢ２．０、ＳＭＢｕｓ、ＳＩＭカード、他のＰＣＩｅレーンの将来の拡張（extension）、１．５Ｖ及び３．３Ｖの電源、並びに、サーバシステム６００のシャーシ上の診断ＬＥＤへの配線等の接続及びバスに使用することができる。
【００６０】
サーバシステム６００では、ＮＢロジック６０６及びＳＢロジック６０８は、ＰＣＩ（Peripheral Component Interconnect）バス６０７で接続されている。ＰＣＩバス６０７は、プロセッサ６０４の複数の機能をサポートすることができるが、プロセッサ６０４の何れかのネイティブバスから独立した標準フォーマットを用いている。さらに、ＰＣＩバス６０７は、複数のＰＣＩスロット６７０（例えば、ＰＣＩスロット６７１）に接続され得る。ＰＣＩバス６０７に接続されたデバイスは、ＣＰＵバスに直接接続され、プロセッサ６０４のアドレス空間内のアドレスが割り当てられ、単一のバスクロックと同期されるように、バスコントローラ（図示省略）に現れてもよい。複数のＰＣＩスロット６７０で使用可能なＰＣＩカードは、ネットワークインタフェースカード（ＮＩＣ）、サウンドカード、モデム、ＴＶチューナーカード、ディスクコントローラ、ビデオカード、スカジー（ＳＣＳＩ）アダプタ、及び、ＰＣＭＣＩＡ（Personal Computer Memory Card International Association）カードを含むが、これらに限定されない。
【００６１】
ＳＢロジック６０８は、拡張バスを介して、ＰＣＩバス６０７を、複数の拡張カード又はＩＳＡスロット６５０（例えば、ＩＳＡスロット６５１）に接続することができる。拡張バスは、ＳＢロジック６０８と周辺機器との間の通信に用いられるバスであってもよく、業界標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、ＰＣ／６０４バス、ローピンカウント（low pin count：ＬＰＣ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＤＥ（integrated drive electronics）バス、又は、周辺機器のデータ通信に使用可能な他の適切なバスを含んでもよいが、これらに限定されない。
【００６２】
この実施例では、ＢＩＯＳ６０５は、サーバシステム６００の様々なコンポーネントを起動し識別するように構成された任意のプログラム命令又はファームウェアとすることができる。ＢＩＯＳは、対応するサーバシステムのハードウェアコンポーネントの初期及びテストを担当する重要なシステムコンポーネントである。ＢＩＯＳは、ハードウェアコンポーネントに抽象化レイヤを提供することができるので、アプリケーション及びオペレーティングシステムは、キーボード、ディスプレイ及び他の入出力デバイス等の周辺機器と相互作用する一貫した方法を提供することができる。
【００６３】
サーバシステム６００では、ＳＢロジック６０８は、ＰＳＵ６０２に接続されたＢＭＣ６０３に接続されている。いくつかの実装形態では、ＢＭＣ６０３は、ラック管理コントローラ（ＲＭＣ）であってもよい。ＢＭＣ６０３は、サーバシステム６００のコンポーネントの動作状態を監視し、そのコンポーネントの動作状態に基づいてサーバシステム６００を制御するように構成されている。
【００６４】
図６の例示的なサーバシステム６００には特定のコンポーネントのみが示されているが、データを処理又は記憶することができ、又は、信号を送受信することができる様々なタイプの電子又はコンピューティングコンポーネントも例示的なサーバシステム６００に含むことができる。さらに、例示的なサーバシステム６００内の電子又はコンピューティングコンポーネントは、様々なタイプのアプリケーションを実行し、及び／又は、様々なタイプのオペレーティングシステムを用いるように構成することができる。これらのオペレーティングシステムには、Ａｎｄｒｏｉｄ（登録商標）、ＢＳＤ（Berkeley Software Distribution）、ｉＰｈｏｎｅ（登録商標）  ＯＳ（ｉＯＳ）、Ｌｉｎｕｘ（登録商標）、ＯＳ  Ｘ、Ｕｎｉｘ系リアルタイムオペレーティングシステム（例えば、ＱＮＸ等）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗ  Ｐｈｏｎｅ、及び、ＩＢＭ  ｚ／ＯＳ（登録商標）等が含まれるが、これらに限定されない。
【００６５】
例示的なサーバシステム６００の所望の実装形態に応じて、様々なネットワークプロトコル及びメッセージングプロトコル（例えば、ＴＣＰ／ＩＰ、オープンシステム間相互接続（ＯＳＩ）、ファイル転送プロトコル（ＦＴＰ）、ユニバーサルプラグアンドプレイ（ＵｐｎＰ）、ネットワークファイルシステム（ＮＦＳ）、コモンインターネットファイルシステム（common internet file system：ＣＩＦＳ）、ＡｐｐｌｅＴａｌｋ（登録商標）等が含まれるが、これらに限定されない）が用いられる。当業者であれば理解できるように、図６は説明の目的で用いられている。したがって、ネットワークシステムは、必要に応じて、多くのバリエーションで実装することができ、本発明の様々な実施形態によるネットワークプラットフォームの構成を提供する。
【００６６】
図６の例示的な構成では、例示的なサーバシステム６００は、特定の無線チャネルの計算範囲内で１つ以上の電子デバイスと通信可能な１つ以上の無線コンポーネントを含むことができる。デバイスが無線で通信するために使用される任意の適切なチャネル（例えば、ブルートゥース（登録商標）、セルラー（cellular）、ＮＦＣ又はＷｉ‐Ｆｉ（登録商標）チャネル等）であってもよい。このデバイスは、従来技術で知られているように、１つ以上の従来の有線通信接続を有することができることを理解されたい。様々な実施形態の範囲内で、様々な他のコンポーネント及び／又はその組み合わせが可能である。
【００６７】
本発明の様々な実施形態を上述したが、これらは例としてのみ示されており、これらに限定されないことを理解されたい。本発明の趣旨又は範囲から逸脱することなく、開示された実施形態に対して多数の変更を加えることができる。よって、本発明の広さや範囲は、上述した実施形態によって限定されるべきではない。むしろ、本発明の範囲は、添付の特許請求の範囲及びその均等物に従って定義されるべきである。
【００６８】
本発明を１つ以上の実施形態に関して例示及び説明してきたが、本明細書及び添付の図面を読んで理解すると、当業者は、同等の変更及び修正に想到するであろう。また、本発明の特定の特徴は、複数の実施けいたいのうち１つのみに関連して述べられているが、このような特徴は、所定の又は特定の用途に必要で有利な１つ以上の他の実施形態の他の特徴と組み合わせることができる。
【００６９】
本明細書で使用する用語は、特定の実施形態のみを説明するものであって、本発明を限定することを意図するものではない。本明細書で使用される単数形（例えば、「１つの」、「その」等）は、文脈が明らかにそうでないことを示さない限り、複数形も含むことを意図している。さらに、「含む」、「有する」等の用語又はこれらの変形は、詳細な説明及び／又は特許請求の範囲で使用される限りにおいて、「備える」という用語と同様の意味で包括的であることを意図している。
【００７０】
特に定義されない限り、本明細書で使用される全ての用語（技術用語及び科学用語を含む）は、当業者によって通常理解されるのと同じ意味を有する。さらに、一般的に使用される辞書で定義されているような用語は、関連する技術の文脈における意味と一致する意味を有すると解釈されるべきであり、本明細書で明示的に定義されていない限り、理想的又は過度に形式的な意味で解釈されるべきではない。
【符号の説明】
【００７１】
１００…方法
１０２〜１１０…ステップ
２００…方法
２１０〜２６０…ステップ
３００…方法
３１０〜３４０…ステップ
４００…リモート選択プロセス
４１０〜４４０…ステップ
５０１…ＲＯＭヘッダ
５０２…ＰＣＩデータ構造
５０３…画像
５０４…ヘッダフィールド
５０５…拡張ＲＯＭコードの署名
５０６…ＰＣＩデータ構造へのポインタ
５０７…追加ヘッダデータ
５０８…ＰＣＩデータ構造へのポインタ
５０９…ベンダ識別
５１０…デバイス識別
５１１…デバイスリストポインタ
５１２…ＲＯＭコード構造長
５１３…ＲＯＭコードリビジョン履歴
５１４…ＲＯＭコードのリビジョンデータ
５１５…追加データ構造情報
６００…サーバシステム
６０２…電源ユニット（ＰＳＵ）
６０３…ＢＭＣ
６０４…プロセッサ
６０５…ＢＩＯＳ
６０６…ノースブリッジ（ＮＢ）ロジック
６０７…ＰＣＩバス
６０８…サウスブリッジ（ＳＢ）ロジック
６０９…ストレージデバイス
６１１…メインメモリ（ＭＥＭ）
６５０…ＩＳＡスロット
６５１…ＩＳＡスロット
６７０…ＰＣＩｅスロット
６７１…ＰＣＩスロット
【図１】
2020030812.tif 000003
【図２】
2020030812.tif 000004
【図３】
2020030812.tif 000005
【図４】
2020030812.tif 000006
【図５】
2020030812.tif 000007
【図６】
2020030812.tif 000008