(57)【要約】【課題】周辺構成要素相互接続装置データをキャッシュするシステムを提供すること。【解決手段】周辺構成要素相互接続装置をプローブすることに応答して、周辺構成要素相互接続装置データが発見される。発見された周辺構成要素相互接続装置データがキャッシュされ、次いで、周辺構成要素相互接続装置が実行することが可能となるように構成される。【選択図】図１
2007287156.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムにおいて、周辺構成要素相互接続装置データをキャッシュするための、コンピュータで実装される方法であって、
周辺構成要素相互接続装置をプローブすることに応答して、周辺構成要素相互接続装置データを発見するステップと、
前記周辺構成要素相互接続装置データをキャッシュして、キャッシュ周辺構成要素相互接続装置データを形成するステップと、
前記周辺構成要素相互接続装置が実行することが可能となるように、前記キャッシュ周辺構成要素相互接続装置データを構成するステップと
を含む方法。
【請求項２】
前記周辺構成要素相互接続装置データが、前記周辺構成要素相互接続装置に結合された周辺構成要素相互接続拡張メモリ内に常駐する請求項１に記載のコンピュータで実装される方法。
【請求項３】
前記周辺構成要素相互接続装置データがアダプタ・マイクロコードである請求項１に記載のコンピュータで実装される方法。
【請求項４】
前記周辺構成要素相互接続装置拡張メモリが、同一のタイプである複数の周辺構成要素相互接続装置のうちの１つに結合される請求項２に記載のコンピュータで実装される方法。
【請求項５】
前記アダプタ・マイクロコードが基本入出力システム・メモリ内にキャッシュされる請求項３に記載のコンピュータで実装される方法。
【請求項６】
前記キャッシュ・アダプタ・マイクロコードが使用され、周辺構成要素相互接続拡張メモリに結合されていない同じタイプの前記複数の周辺構成要素相互接続装置が実行することが可能となる請求項５に記載のコンピュータで実装される方法。
【請求項７】
前記周辺構成要素相互接続拡張メモリが、拡張読取り専用メモリまたはフラッシュ・メモリのうちの少なくとも１つである請求項２に記載のコンピュータで実装される方法。
【請求項８】
前記キャッシュ・アダプタ・マイクロコードが１つまたは複数の異なるアダプタ・マイクロコードを含む請求項５に記載のコンピュータで実装される方法。
【請求項９】
前記１つまたは複数の異なるアダプタ・マイクロコードが使用され、合致する周辺構成要素相互接続装置が実行することが可能となる請求項８に記載のコンピュータで実装される方法。
【請求項１０】
周辺構成要素相互接続装置データをキャッシュするデータ処理システムであって、
バス・システムと、
前記バス・システムに接続される記憶装置であって、１組の命令を含む記憶装置と、
前記バス・システムに接続された処理装置であって、周辺構成要素相互接続装置をプローブすることに応答して、前記１組の命令を実行して、周辺構成要素相互接続装置データを発見し、前記周辺構成要素相互接続装置データをキャッシュして、キャッシュ周辺構成要素相互接続装置データを形成し、前記周辺構成要素相互接続装置が実行することが可能となるように、前記キャッシュ周辺構成要素相互接続装置データを構成する処理装置と
を備えるデータ処理システム。
【請求項１１】
前記周辺構成要素相互接続装置データが、前記周辺構成要素相互接続装置に結合された周辺構成要素相互接続拡張メモリ内に常駐する請求項１０に記載のデータ処理システム。
【請求項１２】
前記周辺構成要素相互接続装置拡張メモリが、同一のタイプである複数の周辺構成要素相互接続装置のうちの１つに結合される請求項１１に記載のデータ処理システム。
【請求項１３】
前記周辺構成要素相互接続拡張メモリが、拡張読取り専用メモリまたはフラッシュ・メモリのうちの少なくとも１つである請求項１１に記載のデータ処理システム。
【請求項１４】
周辺構成要素相互接続装置データをキャッシュするコンピュータ・プログラム製品であって、
コンピュータ使用可能プログラム・コードがその中に実施されたコンピュータ使用可能媒体であって、
周辺構成要素相互接続装置をプローブすることに応答して、周辺構成要素相互接続装置データを発見するように構成されたコンピュータ使用可能プログラム・コードと、
前記周辺構成要素相互接続装置データをキャッシュして、キャッシュ周辺構成要素相互接続装置データを形成するように構成されたコンピュータ使用可能プログラム・コードと
を含むコンピュータ使用可能媒体と、
前記周辺構成要素相互接続装置が実行することが可能となるように、前記キャッシュ周辺構成要素相互接続装置データを構成するように構成されたコンピュータ使用可能プログラム・コードと
を含むコンピュータ・プログラム。
【請求項１５】
前記周辺構成要素相互接続装置データが、前記周辺構成要素相互接続装置に結合された周辺構成要素相互接続拡張メモリ内に常駐する請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
前記周辺構成要素相互接続装置データがアダプタ・マイクロコードである請求項１４に記載のコンピュータ・プログラム。
【請求項１７】
前記アダプタ・マイクロコードが基本入出力システム・メモリ内にキャッシュされる請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記キャッシュ・アダプタ・マイクロコードが使用され、周辺構成要素相互接続拡張メモリに結合されていない同じタイプの前記複数の周辺構成要素相互接続装置が実行することが可能となる請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記キャッシュ・アダプタ・マイクロコードが１つまたは複数の異なるアダプタ・マイクロコードを含む請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記１つまたは複数の異なるアダプタ・マイクロコードが使用され、合致する周辺構成要素相互接続装置が実行することが可能となる請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に改良型のデータ処理システムに関する。より詳細には、本発明は、基本入出力システム・メモリ内に周辺構成要素相互接続（peripheral component interconnect）装置拡張読取り専用メモリ・データをキャッシュするための、コンピュータで実装される方法、機器、およびコンピュータ使用可能プログラム・コードを対象とする。
【背景技術】
【０００２】
コンピュータ・システムは一般に、限定はしないが、マイクロプロセッサなどの１つまたは複数の中央演算処理装置と、ランダム・アクセス・メモリ（ＲＡＭ）装置などの、システム・メモリを構成する１つまたは複数のメモリ装置とを含むハードウェア資源を含む。オペレーティング・システムは、マイクロプロセッサおよびシステム・メモリを含むコンピュータ・システムのハードウェアおよびソフトウェア資源を管理するソフトウェアを提供する。オペレーティング・システムは一般に、ユーザが資源にアクセスし、制御することができるようにユーザ・インターフェースを提供する。
【０００３】
コンピュータが最初に電源オンされたとき、システムＲＡＭは空である。コンピュータ・システムの資源の使用が容易となるようにコンピュータ・システムを構成するために、オペレーティング・システムがシステムＲＡＭにロードされる。オペレーティング・システムを立ち上げるプロセスは、一般に「システム・ブート」と呼ばれる。ブート・プロセスが完了し、オペレーティング・システムをシステムＲＡＭにロードした後、ハードウェア資源とソフトウェア資源を共に制御および管理するようにオペレーティング・システムを実装することができる。しかし、システム・ブートの前には、オペレーティング・システムがシステムＲＡＭにロードされていないので、コマンドを実行するようにシステムＲＡＭを実装することができない。オペレーティング・システムをロードするブート命令を提供するために、一般に基本入出力システム（ＢＩＯＳ）が使用される。ＢＩＯＳは、電源オンまたはリセット操作に続いてコンピュータ・システムを初期化するファームウェア常駐プログラムである。コンピュータ・システムの様々な構成要素が１つずつ初期化され、その後オペレーティング・システムがブートする。ＢＩＯＳは、コンピュータ・システム内の読取り専用メモリ（ＲＯＭ）チップやフラッシュ・メモリ・チップなどのファームウェア装置上に格納される。
【０００４】
各コンピュータ・システムは様々なハードウェア構成要素を含むことができるので、ＢＩＯＳソフトウェアは、電源オン自己診断テスト（ＰＯＳＴ）を実施して、コンピュータ・システム上の様々なハードウェア構成要素の機能をテストするようにも構成される。ＰＯＳＴとは一般に、ＲＡＭ、ディスク・ドライブなどの周辺装置、およびその他の任意のハードウェア構成要素が適切に動作しているかどうかを判定するためにＢＩＯＳソフトウェアで実行される診断テスト・シーケンスを指す。さらに、いくつかの周辺構成要素相互接続(PCI)装置を、ＰＣＩプラグイン拡張スロットを介してコンピュータ・システムに結合することができる。
【０００５】
例えば拡張ＲＯＭ、ネットワーク装置、ビデオおよびオーディオ・チップなどのこうしたＰＣＩ装置を、ＰＣＩプラグイン拡張スロットを介してコンピュータ・システムに結合するように構成されたＰＣＩ拡張プラグイン・カード上に含めることができる。ＰＣＩプラグイン拡張カード上の各ＰＣＩ装置は、関連する拡張ＲＯＭを有し、拡張ＲＯＭは、ＰＣＩ装置がコンピュータ・システム内で機能することを可能にするマイクロコードを含む。システム・ブート時に、システムＢＩＯＳは、コンピュータ・システムに結合することのできる任意のＰＣＩプラグイン拡張カードを含む現資源に従って、コンピュータ・システムを構成する。したがって、システムＢＩＯＳはまた、各ＰＣＩ装置についてのプラグイン拡張カード上の拡張ＲＯＭ内に常駐する追加のマイクロコードの活動化も容易にする。
【０００６】
理解できることであるが、ＰＣＩスロットを介してコンピュータ・システムに結合されるＰＣＩ装置が多くなるほど、コンピュータ・システムのブートにかかる時間が長くなることがある。したがって、複数のＰＣＩ装置を含むそのようなコンピュータ・システムのブートには数分かかることがある。ある応用例では、このタイミングの欠点が不都合となることがある。さらに、ＰＣＩプラグイン・カード上のＰＣＩ装置ごとに拡張ＲＯＭを含めることにより、製造コストが増加し、ＰＣＩプラグイン・カード上のスペースが狭くなる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、ＢＩＯＳメモリ内にＰＣＩ装置拡張ＲＯＭマイクロコードをキャッシュするための改良型の方法、機器、およびコンピュータ使用可能プログラム・コードを有することは有意義である。
【課題を解決するための手段】
【０００８】
本発明は、周辺構成要素相互接続装置データをキャッシュするための、コンピュータで実装される方法、機器、およびコンピュータ使用可能プログラム・コードを提供する。周辺構成要素相互接続装置をプローブすることに応答して、周辺構成要素相互接続装置データが発見される。発見された周辺構成要素相互接続装置データがキャッシュされる。次いで、周辺構成要素相互接続装置が実行することが可能となるように、キャッシュされた周辺構成要素相互接続装置データが構成される。
【０００９】
本発明の特徴と考えられる新規な特徴が添付の特許請求の範囲に記載される。しかし、本発明自体、ならびに本発明の好ましい使用の形態、別の目的、利点は、以下の例示的実施形態の詳細な説明を添付の図面と共に参照することで最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１０】
ここで特に図１を参照すると、本発明の諸態様を実装することができるデータ処理システムの絵画表現が示されている。システム・ユニット１０２と、ビデオ・ディスプレイ端末１０４と、キーボード１０６と、フロッピィ・ドライブおよびその他のタイプの永続的かつ取外し可能な記憶媒体を含むことのできる記憶装置１０８と、マウス１１０とを含むコンピュータ１００が示されている。例えばジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロフォンなどの追加の入力装置をパーソナル・コンピュータ１００に含めることができる。コンピュータ１００は、ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレイションの製品であるIBM(R) eServer(TM)コンピュータまたはIntelliStation(R)コンピュータなどの任意の適切なコンピュータでよい。図示する表現はコンピュータを示しているが、ネットワーク・コンピュータなどの他のタイプのデータ処理システムで本発明の他の実施形態を実装することができる。好ましくは、コンピュータ１００は、コンピュータ１００内で動作するコンピュータ可読媒体内に常駐するシステム・ソフトウェアによって実装することのできるグラフィカル・ユーザ・インターフェース（ＧＵＩ）も含む。
【００１１】
次に図２を参照すると、本発明の諸態様を実装することのできるデータ処理システムのブロック図が示されている。データ処理システム２００は、本発明のプロセスを実装するコードまたは命令を配置することのできる図１のコンピュータ１００などのコンピュータの一例である。図示する実施例では、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＭＣＨ）２０２ならびにサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）２０４を含むハブ・アーキテクチャを使用する。プロセッサ２０６、メイン・メモリ２０８、およびグラフィックス・プロセッサ２１０が、ノース・ブリッジおよびメモリ・コントローラ・ハブ２０２に接続される。グラフィックス・プロセッサ２１０は、例えばaccelerated graphics port (AGP)を介してＭＣＨに接続することができる。
【００１２】
図示する実施例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２がサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合され、オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読取り専用メモリ（ＲＯＭ）２２４、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよびその他の通信ポート２３２、ならびにＰＣＩ／ＰＣＩｅ装置２３４が、バス２３８を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合され、ハード・ディスク・ドライブ（ＨＤＤ）２２６およびＣＤ−ＲＯＭドライブ２３０が、バス２４０を介してサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合される。ＰＣＩ／ＰＣＩｅ装置は、例えばイーサネット（登録商標）・アダプタ、アドイン・カード、およびノートブック・コンピュータ用ＰＣカードを含むことができる。ＰＣＩはカード・バス・コントローラを使用し、ＰＣＩｅはカード・バス・コントローラを使用しない。ＲＯＭ２２４は、例えばフラッシュ・バイナリ入出力システム（ＢＩＯＳ）でよい。ハード・ディスク・ドライブ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えばintegrated drive electronics (IDE)またはserial advanced technologyattachment (SATA)インターフェースを使用することができる。スーパーＩ／Ｏ（ＳＩＯ）装置２３６をサウス・ブリッジおよびＩ／Ｏコントローラ・ハブ２０４に結合することができる。
【００１３】
オペレーティング・システムがプロセッサ２０６上で動作し、図２のデータ処理システム２００内の様々な構成要素の制御を調整および実現する。オペレーティング・システムは、Microsoft(R) Windows(登録商標) XP（MicrosoftおよびWindows（登録商標）は、MicrosoftCorporationの米国、その他の国、あるいはその両方における商標）などの市販のオペレーティング・システムでよい。Ｊａｖａ（登録商標）プログラミング・システムなどのオブジェクト指向プログラミング・システムがオペレーティング・システムと共に動作することができ、データ処理システム２００上で実行中のＪａｖａ（登録商標）プログラムまたはアプリケーションからオペレーティング・システムへの呼出しを実現する（Ｊａｖａ（登録商標）およびすべてのＪａｖａ（登録商標）ベースの商標は、SunMicrosystems, Inc.の米国、その他の国、あるいはその両方における商標）。
【００１４】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに対する命令が、ハード・ディスク・ドライブ２２６などの記憶装置上に配置され、それをメイン・メモリ２０８にロードしてプロセッサ２０６で実行することができる。本発明のプロセスは、コンピュータで実施される命令を使用してプロセッサ２０６で実施することができ、コンピュータで実施される命令は、例えば、メイン・メモリ２０８、読取り専用メモリ２２４などのメモリ、または１つまたは複数の周辺装置内に配置することができる。
【００１５】
図１〜２のハードウェアは、実装に応じて変更され得る。図１〜２に示すハードウェアに加えて、またはその代わりに、フラッシュ・メモリ、等価な不揮発性メモリ、光ディスク・ドライブなどの他の内部ハードウェアまたは周辺装置を使用することができる。さらに、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用することができる。
【００１６】
ある例示的実施例では、データ処理システム２００は、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納する不揮発性メモリを提供するフラッシュ・メモリと共に一般に構成される携帯情報端末（ＰＤＡ）でよい。バス・システムは、システム・バス、Ｉ／Ｏバス、ＰＣＩバスなどの１つまたは複数のバスから構成することができる。もちろん、バス・システムは、ファブリックまたはアーキテクチャに取り付けられた相異なる構成要素または装置間のデータ転送を実現する任意のタイプの通信ファブリックまたはアーキテクチャを使用して実装することができる。通信ユニットは、モデムやネットワーク・アダプタなどの、データを送信および受信するのに使用される１つまたは複数の装置を含むことができる。メモリは、例えば、メイン・メモリ２０８、またはノース・ブリッジおよびメモリ・コントローラ・ハブ２０２にあるようなキャッシュでよい。処理装置は、１つまたは複数のプロセッサまたはＣＰＵを含むことができる。図１〜２に図示する実施例および上述の実施例は、アーキテクチャ上の制限を示唆するものではない。例えば、データ処理システム２００は、ＰＤＡの形態を取ることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、電話装置でもよい。
【００１７】
本発明の諸態様は、ソース・コードをコンパイルする、コンピュータで実装される方法、機器、およびコンピュータ使用可能プログラム・コードを提供する。本発明の方法は、図１に示すデータ処理システム１００や図２に示すデータ処理システム２００などのデータ処理システムで実施することができる。
【００１８】
本発明の諸態様は、ＰＣＩ装置拡張ＲＯＭまたはフラッシュ・メモリ・データをキャッシュする、コンピュータで実装される方法、機器、およびコンピュータ使用可能プログラム・コードを提供する。ＰＣＩ装置拡張ＲＯＭまたはフラッシュ・メモリ・データは、ＰＣＩ装置アダプタ・マイクロコードである。アダプタ・マイクロコードは、合致するＰＣＩ装置が実行するのを可能にするのに使用される。システムＢＩＯＳは、ＰＣＩプラグイン・カード上の各ＰＣＩ装置をプローブし、拡張ＲＯＭまたはフラッシュ・メモリがＰＣＩ装置のうちの少なくとも１つに結合されているかどうかを発見する。アダプタ・マイクロコードを含むＰＣＩ装置拡張ＲＯＭまたはフラッシュ・メモリの存在を発見した後、システムＢＩＯＳは、発見したアダプタ・マイクロコードのコピーをＢＩＯＳメモリにキャッシュする。システムＢＩＯＳは、キャッシュしたアダプタ・マイクロコードのコピーを構成し、合致するＰＣＩ装置が実行するのを可能にする。合致するＰＣＩ装置は、それに結合された拡張ＲＯＭまたはフラッシュ・メモリを有することがあり、または有さないことがある。
【００１９】
本発明の諸態様を使用して、コンピュータ・ハードウェア設計者は、含まれる拡張ＲＯＭまたはフラッシュ・メモリが少ないＰＣＩプラグイン・カードを設計することができる。ＰＣＩプラグイン・カード上の使用する拡張ＲＯＭまたはフラッシュ・メモリを少なくすることにより、ＰＣＩプラグイン・カード当たりの部品コストが削減され、各ＰＣＩプラグイン・カード上のより広いスペースが他のＰＣＩ装置のために使用可能となる。加えて、本発明の諸態様を使用することによりコンピュータ・システム・ブート時間を短縮することができる。システムＢＩＯＳは、必要なアダプタ・マイクロコードを求めて、数が増加した拡張ＲＯＭまたはフラッシュ・メモリをプローブする必要がないからである。その代わりに、本発明の諸態様は、アクセスが容易となるように、アダプタ・マイクロコードのコピーをＢＩＯＳメモリにキャッシュする。さらに、本発明の諸態様は、アダプタ・マイクロコードを含む、結合された拡張ＲＯＭまたはフラッシュ・メモリを、最初にプローブされたＰＣＩ装置上に配置し、コンピュータ・システム・ブート速度を最適化する。
【００２０】
次に図３を参照すると、本発明の一実施形態による、複数の周辺構成要素相互接続装置と、その複数の周辺構成要素相互接続装置用のアダプタ・マイクロコードを含む１つの拡張読取り専用メモリ・チップとを有する周辺構成要素相互接続プラグイン・カードを含むデータ処理システムのブロック図が示されている。データ処理システム３００は、例えば図２のデータ処理システム２００でよい。データ処理システム３００は、例えばＢＩＯＳ３０２、ＰＣＩスロット３０６、およびＰＣＩプラグイン・カード３０８を含むことができる。
【００２１】
ＢＩＯＳ３０２は、例えば図２のＲＯＭ２２４でよい。ＢＩＯＳ３０２は、データ処理システム３００用の不可欠なブート・ルーチンを含むメモリ３０４を含む。ＢＩＯＳ３０２はまた、オペレーティング・システムとＰＣＩ装置などのハードウェアとの間のインターフェースも提供する。
【００２２】
ＰＣＩプラグイン・カード３０８がＰＣＩスロット３０６に差し込まれて、ＰＣＩプラグイン・カード３０８がデータ処理システム３００に結合され、ＢＩＯＳ３０２がＰＣＩカード３０８と通信することが可能となる。ＢＩＯＳ３０２は、データ処理システム３００のブート・プロセス中にＰＣＩプラグイン・カード３０８をプローブし、ＰＣＩ装置、拡張ＲＯＭ、フラッシュ・メモリなどのすべてのＰＣＩチップセットを発見する。
【００２３】
ＰＣＩプラグイン・カード３０８は、例えば、ＰＣＩブリッジ３１０と、図２のＰＣＩ／ＰＣＩｅ装置２３４などのＰＣＩ装置３１２、３１４、３１６、および３１８とを含むことができる。ＰＣＩブリッジ３１０は、ＰＣＩ装置３１２、３１４、３１６、および３１８をＰＣＩスロット３０６に結合し、ＰＣＩスロット３０６はＢＩＯＳ３０２に結合される。ＰＣＩプラグイン・カード３０８はＰＣＩ装置３１２、３１４、３１６、３１８などの４つのＰＣＩ装置を示すが、本発明の実施形態はそのように制限されないことに留意されたい。ＰＣＩプラグイン・カード３０８は、本発明の実施形態のプロセスによる必要に応じて、より多数または少数のＰＣＩ装置を含むことができる。さらに、この例示的実施例では、ＰＣＩ装置３１２、３１４、３１６、および３１８は同じタイプのＰＣＩ装置であることに留意されたい。例えば、ＰＣＩ装置３１２、３１４、３１６、および３１８は、データ処理システム３００にネットワーク通信機能を提供するためのＰＣＩイーサネット（登録商標）・チップセットでよい。しかし、本発明の実施形態は、ＰＣＩプラグイン・カード３０８上で１つのタイプのＰＣＩ装置のみを使用することに限定されない。本発明の実施形態は、ＰＣＩプラグイン・カード３０８上で複数の異なるタイプのＰＣＩ装置を使用することができる。
【００２４】
ＰＣＩプラグイン・カード３０８はまた、アダプタ・マイクロコード３２２を含む拡張ＲＯＭ３２０も含むことができる。本発明の実施形態は拡張ＲＯＭの使用に制限されないことに留意されたい。本発明の実施形態は、例えばフラッシュ・メモリなどの他の形態の拡張メモリを使用することができる。
【００２５】
さらに、この特定の例示的実施例では、ＰＣＩプラグイン・カード３０８は、ＰＣＩ装置３１２、３１４、３１６、および３１８に対して拡張ＲＯＭを１つだけ含むことに留意されたい。本発明の実施形態で必要なのは、同一の各ＰＣＩ装置に対して拡張ＲＯＭ３２０などの１つの拡張ＲＯＭだけである。本発明の実施形態は、拡張ＲＯＭを有さないＰＣＩ装置３１４、３１６、および３１８用のＢＩＯＳメモリ３０４にアダプタ・マイクロコード３２２のコピーをキャッシュするからである。アダプタ・マイクロコード３２２のキャッシュ・コピーが使用され、ＰＣＩ装置３１４、３１６、および３１８が実行することが可能となる。
【００２６】
さらに、ＰＣＩプラグイン・カード３０８上のＰＣＩ装置３１２などの第１ＰＣＩ装置に拡張ＲＯＭ３２０を結合することにより、ブート時間が短縮される。ＢＩＯＳ３０２は、ＰＣＩ装置３１２、３１４、３１６、および３１８を使用可能にするためにアダプタ・マイクロコード３２２のプローブを続行することが不要であるからである。しかし、本発明の実施形態は、拡張ＲＯＭ３２０を第１ＰＣＩ装置に結合することに限定されない。拡張ＲＯＭ３２０を、ＰＣＩ装置３１４、３１６、または３１８などのＰＣＩプラグイン・カード３０８上の任意のＰＣＩ装置に結合することができる。
【００２７】
さらに、本発明の実施形態は、ＰＣＩプラグイン・カード３０８上のただ１つの拡張ＲＯＭに制限されない。本発明の実施形態は、ＰＣＩプラグイン・カード３０８上の複数の拡張ＲＯＭを使用することができる。さらに、複数の拡張ＲＯＭは異なるタイプでよい。例えば、複数の拡張ＲＯＭチップは、ＰＣＩプラグイン・カード３０８上の複数の異なるタイプのＰＣＩ装置のそれぞれについてのアダプタ・マイクロコードを含むことができる。しかし、本発明の実施形態は、データ処理システム３００内の異なるＰＣＩ装置の各組についてただ１つの拡張ＲＯＭを使用することができる。
【００２８】
さらに、ＰＣＩ装置３１２は、読取り専用メモリ・ベース・アドレス・レジスタ（ＲＯＭ−ＢＡＲ）３２４を含むことができる。ＰＣＩ装置３１２は、ＲＯＭ−ＢＡＲ３２４を使用して、拡張ＲＯＭがＰＣＩ装置３１２に結合されているかどうかを示す。ＢＩＯＳ３０２は、ＲＯＭ−ＢＡＲ３２４をプローブし、ＰＣＩ装置３１２に結合された拡張ＲＯＭの存在または欠如を発見する。この特定の例示的実施例では、ＲＯＭ−ＢＡＲ３２４は、拡張ＲＯＭ３２０がＰＣＩ装置３１２に結合されていることを示す。
【００２９】
さらに、ＰＣＩ装置３１２はまた、config-space識別レジスタ３２６も含むことができる。具体的には、config-space識別レジスタ３２６は、ＰＣＩ装置３１２がどのタイプの装置であるかを識別する。ＢＩＯＳ３０２は、config-space識別レジスタ３２６をプローブして、ＰＣＩ装置３１２とアダプタ・マイクロコード３２２との間の合致が生じるかどうかを判定する。ＰＣＩ装置３１２とアダプタ・マイクロコード３２２との間の合致が見つかった場合、ＢＩＯＳ３０２は、ＰＣＩ装置３１２の実行が可能となるようにアダプタ・マイクロコード３２２を構成する。
【００３０】
次いで、ＢＩＯＳ３０２は、ＰＣＩ装置３１４、３１６、および３１８のＲＯＭ−ＢＡＲをプローブし、拡張ＲＯＭの存在または欠如を発見する。この特定の例示的実施例では、ＰＣＩ装置３１４、３１６、および３１８のＲＯＭ−ＢＡＲは、拡張ＲＯＭの欠如を示す。ＰＣＩ装置３１４、３１６、および３１８が拡張ＲＯＭに結合されていないことを判定した後、ＢＩＯＳ３０２は、ＰＣＩ装置３１４、３１６、および３１８のconfig-space識別レジスタを、メモリ３０４内のキャッシュ・アダプタ・マイクロコード３２８のヘッダと比較する。ＰＣＩ装置３１４、３１６、または３１８、あるいはそれらの組合せのconfig-space識別レジスタのいずれかと、キャッシュ・アダプタ・マイクロコード３２８のヘッダとの間に合致が見つかった場合、ＢＩＯＳ３０２は、合致するＰＣＩ装置が使用可能となるようにキャッシュ・アダプタ・マイクロコード３２８を構成する。
【００３１】
ＰＣＩプラグイン・カード３０８上のすべてのチップセットをプローブし、他のすべての不可欠なブート手続きを実施した後に続いて、ＢＩＯＳ３０２は、図２のメイン・メモリ２０８などのＲＡＭにオペレーティング・システム３３０をロードする。最終的に、ＢＩＯＳ３０２は、データ処理システム３００の制御をオペレーティング・システム３３０に渡す。
【００３２】
次に図４を参照すると、本発明の一実施形態による、基本入出力システム・メモリに周辺構成要素相互接続装置拡張読取り専用メモリ・アダプタ・マイクロコードをキャッシュする例示的プロセスを示す流れ図が示されている。図４に示されるプロセスは、例えば図３のデータ処理システム３００内のＢＩＯＳ３０２などのデータ処理システムＢＩＯＳとして実装される。
【００３３】
プロセスは、データ処理システムをブートまたはリブートするための信号をＢＩＯＳが受け取るときに始まる（ステップ４０２）。ステップ４０２でデータ処理システムをブートまたはリブートする信号を受け取った後、ＢＩＯＳは、図３のＰＣＩスロット３０６などのＰＣＩスロット下をプローブし、図３のＰＣＩ装置３１２などのＰＣＩ装置を発見する（ステップ４０４）。ステップ４０４でＰＣＩ装置を発見すると、ＢＩＯＳは、図３のＲＯＭ−ＢＡＲ３２４などのＰＣＩ装置ＲＯＭ−ＢＡＲをプローブし、図３の拡張ＲＯＭ３２０などの拡張ＲＯＭがＰＣＩ装置に結合されているかどうかを発見する（ステップ４０６）。拡張ＲＯＭは、図３のアダプタ・マイクロコード３２２などのＰＣＩ装置用のアダプタ・マイクロコードを含む。
【００３４】
次いで、ＢＩＯＳは、ＰＣＩ装置に合致するアダプタ・マイクロコードが見つかったかどうかに関して判定を行う（ステップ４０８）。ＢＩＯＳは、突き合わせのために、見つかったアダプタ・マイクロコード・ヘッダを、図３のconfig-space識別レジスタ３２６などのＰＣＩ装置config-space識別レジスタと比較する。ＢＩＯＳがＰＣＩ装置に合致するアダプタ・マイクロコードを見つけた場合（ステップ４０８のｙｅｓ出力）、ＢＩＯＳは、アダプタ・マイクロコードを読み出し、図３のＢＩＯＳメモリ３０４などのＢＩＯＳメモリに、見つかったアダプタ・マイクロコードのコピーをキャッシュすることにより、図３のキャッシュ・アダプタ・マイクロコード３２８などのキャッシュ・マイクロコードの集まりを更新する（ステップ４１０）。
【００３５】
見つかったアダプタ・マイクロコードのコピーをステップ４１０でキャッシュすることに続いて、ＢＩＯＳは、ＰＣＩ装置を実行させるために、キャッシュしたマイクロコードのコピーを使用してＰＣＩ装置アダプタを構成する（ステップ４１２）。ステップ４１２でＰＣＩ装置アダプタを確認した後、ＢＩＯＳは、図３のＰＣＩプラグイン・カード３０８などのＰＣＩプラグイン・カード上の別のＰＣＩ装置をプローブする必要があるかどうかに関して判定を行う（ステップ４１４）。別のＰＣＩ装置をプローブする必要がある場合（ステップ４１４のｙｅｓ出力）、プロセスはステップ４０６に戻り、ＢＩＯＳは、次のＰＣＩ装置ＲＯＭ−ＢＡＲをプローブして、ＰＣＩ装置アダプタ・マイクロコードが存在するかどうかを発見する。別のＰＣＩ装置をプローブする必要がない場合（ステップ４１４のｎｏ出力）、ＢＩＯＳはシステム・ブート手続きに戻り（ステップ４１６）、その後プロセスは終了する。
【００３６】
次にステップ４０８に戻ると、ＢＩＯＳがＰＣＩ装置に合致するアダプタ・マイクロコードを見つけなかった場合（ステップ４０８のｎｏ出力）、ＢＩＯＳは、ＢＩＯＳメモリ内のキャッシュ・マイクロコードの集まりの中に互換アダプタ・マイクロコードが存在するかどうかに関して判定を行う（ステップ４１８）。互換キャッシュ・マイクロコードがＢＩＯＳメモリ内に存在する場合、プロセスはステップ４１２に戻り、ＢＩＯＳは、キャッシュ・マイクロコードを使用して、ＰＣＩ装置アダプタを構成する。互換キャッシュ・マイクロコードがＢＩＯＳメモリ内に存在しない場合、プロセスはステップ４１４に戻り、ＢＩＯＳは、別のＰＣＩ装置をプローブする必要があるかどうかに関して判定を行う。
【００３７】
次に図５および６を参照すると、本発明の一実施形態による、周辺構成要素相互接続装置拡張読取り専用メモリ・アダプタ・マイクロコードを基本入出力システムにキャッシュする例示的ソース・コードが示されている。図３のアダプタ・マイクロコード３２２などのＰＣＩ装置拡張ＲＯＭアダプタ・マイクロコードをキャッシュするソース・コードは、図３のＢＩＯＳ３０２などのＢＩＯＳ内に常駐する。ソース・コード５００は、ＢＩＯＳ内にＰＣＩ装置拡張ＲＯＭをキャッシュするために本発明の実施形態で使用することのできるＢＩＯＳソース・コードの一例として提示したに過ぎない。しかし、本発明の実施形態は、ソース・コード５００の使用に制限されない。本発明の実施形態は、ＢＩＯＳ内にＰＣＩ装置拡張ＲＯＭをキャッシュすることのできるどんなＢＩＯＳソース・コードも使用することができる。
【００３８】
したがって、本発明の実施形態は、システムＢＩＯＳ内にＰＣＩ装置拡張ＲＯＭデータをキャッシュするための、コンピュータで実装される方法、機器、およびコンピュータ使用可能プログラム・コードを提供する。本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素をどちらも含む実施形態の形を取ることができる。好ましい実施形態では、本発明はソフトウェアで実装され、ソフトウェアは、限定はしないがファームウェア、常駐ソフトウェア、マイクロコードなどを含む。
【００３９】
さらに、本発明は、コンピュータまたは任意の命令実行システムで使用され、またはそれと共に使用される、プログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形を取ることができる。この説明では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、機器、または装置で使用され、またはそれと共に使用されるプログラムを収容、格納、通信、伝播、または移送することのできる任意の有形機器でよい。
【００４０】
媒体は、電子的、磁気的、光学的、電磁的、赤外線媒体、または半導体システム（機器またはデバイス）、あるいは伝播媒体でよい。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、剛性磁気ディスク、および光ディスクが含まれる。光ディスクの現在の例には、コンパクト・ディスク−読取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読取り／書込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００４１】
プログラム・コードを格納または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを介してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、バルク・ストレージと、実行中にコードをバルク・ストレージから取り出さなければならない回数を削減するための、少なくとも一部のプログラム・コードの一時的記憶を実現するキャッシュ・メモリとを含むことができる。
【００４２】
入出力装置またはＩ／Ｏ装置（限定はしないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）を、直接的に、または介在Ｉ／Ｏコントローラを介してシステムに結合することができる。
【００４３】
ネットワーク・アダプタをシステムに結合することもでき、介在プライベートネットワークまたは公衆ネットワークを介してデータ処理システムを他のデータ処理システムあるいはリモート・プリンタまたは記憶装置に結合することが可能となる。モデム、ケーブル・モデム、およびイーサネット（登録商標）・カードは、現在入手可能なタイプのネットワーク・アダプタのほんの数例である。
【００４４】
例示および説明のために本発明の説明を提示したが、本発明の説明は、網羅的なものではなく、開示の形態に本発明を限定するものでもない。多数の修正形態および変形形態が当業者には明らかとなるであろう。本発明の原理、実際的適用例を最も良く説明するために、かつ企図される特定の用途に適する様々な修正を伴う様々な実施形態に関して本発明を当業者が理解できるように、実施形態を選び、説明した。
【図面の簡単な説明】
【００４５】
【図１】本発明の諸態様を実装することができるデータ処理システムの絵画表現である。
【図２】本発明の諸態様を実装することのできるデータ処理システムのブロック図である。
【図３】本発明の一実施形態による、複数の周辺構成要素相互接続装置を、その複数の周辺構成要素相互接続装置用のアダプタ・マイクロコードを含む１つの拡張読取り専用メモリ・チップと共に有する周辺構成要素相互接続プラグイン・カードを含むデータ処理システムのブロック図である。
【図４】本発明の一実施形態による、基本入出力システム・メモリに周辺構成要素相互接続装置拡張読取り専用メモリ・アダプタ・マイクロコードをキャッシュする例示的プロセスを示す流れ図である。
【図５】本発明の一実施形態による、周辺構成要素相互接続装置拡張読取り専用メモリ・アダプタ・マイクロコードを基本入出力システムにキャッシュする例示的マイクロコードである。
【図６】本発明の一実施形態による、周辺構成要素相互接続装置拡張読取り専用メモリ・アダプタ・マイクロコードを基本入出力システムにキャッシュする例示的マイクロコードである。
【符号の説明】
【００４６】
１００  コンピュータ
１０２  システム・ユニット
１０４  ビデオ・ディスプレイ端末
１０６  キーボード
１０８  記憶装置
１１０  マウス
２００  データ処理システム
２０２  ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＭＣＨ）
２０４  サウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＩＣＨ）
２０６  プロセッサ
２０８  メイン・メモリ
２１０  グラフィックス・プロセッサ
２１２  ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ
２１６  オーディオ・アダプタ
２２０  キーボードおよびマウス・アダプタ
２２２  モデム
２２４  読取り専用メモリ（ＲＯＭ）
２２６  ハード・ディスク・ドライブ（ＨＤＤ）
２３０  ＣＤ−ＲＯＭドライブ
２３２  ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよびその他の通信ポート
２３４  ＰＣＩ／ＰＣＩｅ装置
２３６  スーパーＩ／Ｏ（ＳＩＯ）装置
２３８  バス
２４０  バス
３００  データ処理システム
３０２  ＢＩＯＳ
３０４  メモリ
３０６  ＰＣＩスロット
３０８  ＰＣＩプラグイン・カード
３１０  ＰＣＩブリッジ
３１２  ＰＣＩ装置
３１４  ＰＣＩ装置
３１６  ＰＣＩ装置
３１８  ＰＣＩ装置
３２０  拡張ＲＯＭ
３２２  アダプタ・マイクロコード
３２４  読取り専用メモリ・ベース・アドレス・レジスタ（ＲＯＭ−ＢＡＲ）
３２６  config-space識別レジスタ
３２８  キャッシュ・アダプタ・マイクロコード
３３０  オペレーティング・システム
【図１】
2007287156.tif 000003
【図２】
2007287156.tif 000004
【図３】
2007287156.tif 000005
【図４】
2007287156.tif 000006
【図５】
2007287156.tif 000007
【図６】
2007287156.tif 000008