(57)【要約】改訂ＩＤレジスタを介しプロセッサにより可読とされる実際のステッピング改訂ＩＤ値または互換性改訂ＩＤ値を選択するアプローチ。
2005531085.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより可読な改訂ＩＤレジスタと、
第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を維持するステッピング改訂ＩＤレジスタと、
前記第１ハードウェアコンポーネントと同一のソフトウェアにより利用可能な第２ハードウェアコンポーネントのステッピング改訂レベルを示す値を維持する少なくとも１つの互換性改訂ＩＤレジスタと、
前記ステッピング改訂ＩＤレジスタまたは前記少なくとも１つの互換性改訂ＩＤレジスタの１つから、前記プロセッサにより可読な値の選択を可能にする選択論理と、
から構成されることを特徴とする装置。
【請求項２】
請求項１記載の装置であって、さらに、
初期化ソフトウェアを構成する命令を格納する記憶装置を備え、
前記選択論理は、前記プロセッサによる前記命令の実行に応答する、
ことを特徴とする装置。
【請求項３】
請求項１記載の装置であって、
前記選択論理は、集積回路内のマルチプレクサから構成され、
前記ステッピング改訂ＩＤレジスタは、前記マルチプレクサの少なくとも１つの入力を、前記第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を提供する少なくとも１つの電圧レベルと結び付ける前記集積回路内の少なくとも１つの配線接続から構成される、
ことを特徴とする装置。
【請求項４】
請求項３記載の装置であって、
前記少なくとも１つの互換性改訂ＩＤレジスタの１つは、前記第２ハードウェアコンポーネントのステッピング改訂レベルを提供する少なくとも１つの電圧レベルに結び付けられた前記集積回路を包囲するパッケージの少なくとも１つのピンを有することを特徴とする装置。
【請求項５】
請求項１記載の装置であって、
前記改訂ＩＤレジスタが前記プロセッサにより可読なアドレスは、ＰＣＩバスによる利用のため指定された改訂ＩＤレジスタのアドレス位置に従うことを特徴とする装置。
【請求項６】
請求項１記載の装置であって、
前記ステッピング改訂ＩＤレジスタに維持される実際のステッピング改訂レベルは、前記第１ハードウェアコンポーネントが前記第２ハードウェアコンポーネントにより与えられる機能を超える少なくとも１つの追加的機能を提供することを示し、
前記少なくとも１つの追加的機能は、前記第２ハードウェアコンポーネントにより利用されるソフトウェアが前記第１ハードウェアコンポーネントによる利用に必要とされない、ことを特徴とする装置。
【請求項７】
請求項１記載の装置であって、
前記選択論理は、安全鍵値を維持する安全鍵値レジスタと、前記プロセッサによる前記選択論理の制御を可能にするため、初期化ソフトウェアにより前記安全鍵値に一致する値を前記プロセッサに書き込ませるライトワンスレジスタとを有することを特徴とする装置。
【請求項８】
プロセッサと、
前記プロセッサに接続されるメモリと、
前記プロセッサに接続されるグラフィックコントローラと、
初期化ソフトウェアを構成する命令を格納する記憶装置と、
前記プロセッサにより可読な改訂ＩＤレジスタと、
第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を維持するステッピング改訂ＩＤレジスタと、
前記第１ハードウェアコンポーネントと同一のソフトウェアにより利用可能な第２ハードウェアコンポーネントのステッピング改訂レベルを示す値を維持する少なくとも１つの互換性改訂ＩＤレジスタと、
前記ステッピング改訂ＩＤレジスタまたは前記少なくとも１つの互換性改訂ＩＤレジスタの１つから、前記プロセッサにより可読な値の選択を可能にする選択論理と、
から構成されることを特徴とするコンピュータシステム。
【請求項９】
請求項８記載のコンピュータシステムであって、
前記選択論理は、前記プロセッサによる前記初期化ソフトウェアの命令の実行に応答することを特徴とするシステム。
【請求項１０】
請求項８記載のコンピュータシステムであって、
前記選択論理は、集積回路内のマルチプレクサから構成され、
前記ステッピング改訂ＩＤレジスタは、前記マルチプレクサの少なくとも１つの入力を、前記第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を提供する少なくとも１つの電圧レベルと結び付ける前記集積回路内の少なくとも１つの配線接続から構成される、
ことを特徴とするシステム。
【請求項１１】
請求項１０記載のコンピュータシステムであって、
前記少なくとも１つの互換性改訂ＩＤレジスタの１つは、前記第２ハードウェアコンポーネントのステッピング改訂レベルを提供する少なくとも１つの電圧レベルに結び付けられた前記集積回路を包囲するパッケージの少なくとも１つのピンを有することを特徴とするシステム。
【請求項１２】
請求項８記載のコンピュータシステムであって、
前記改訂ＩＤレジスタが前記プロセッサにより可読なアドレスは、ＰＣＩバスによる利用のため指定された改訂ＩＤレジスタのアドレス位置に従うことを特徴とするシステム。
【請求項１３】
請求項８記載のコンピュータシステムであって、
前記ステッピング改訂ＩＤレジスタに維持される実際のステッピング改訂レベルは、前記第１ハードウェアコンポーネントが前記第２ハードウェアコンポーネントにより与えられる機能を超える少なくとも１つの追加的機能を提供することを示し、
前記少なくとも１つの追加的機能は、前記第２ハードウェアコンポーネントにより利用されるソフトウェアが前記第１ハードウェアコンポーネントによる利用に必要とされない、ことを特徴とするシステム。
【請求項１４】
請求項８記載のコンピュータシステムであって、
前記選択論理は、安全鍵値を維持する安全鍵値レジスタと、前記プロセッサによる前記選択論理の制御を可能にするため、前記初期化ソフトウェアにより前記安全鍵値に一致する値を前記プロセッサに書き込ませるライトワンスレジスタとを有することを特徴とするシステム。
【請求項１５】
請求項８記載のコンピュータシステムであって、
前記第１ハードウェアコンポーネントは、前記プロセッサ内に搭載されることを特徴とするシステム。
【請求項１６】
第１プロセッサと、
第２プロセッサと、
前記第１及び第２プロセッサに接続されるグラフィックコントローラと、
初期化ソフトウェアを構成する命令を格納する記憶装置と、
前記第１プロセッサにより可読な改訂ＩＤレジスタと、
第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を維持するステッピング改訂ＩＤレジスタと、
前記第１ハードウェアコンポーネントと同一のソフトウェアにより利用可能な第２ハードウェアコンポーネントのステッピング改訂レベルを示す値を維持する少なくとも１つの互換性改訂ＩＤレジスタと、
前記ステッピング改訂ＩＤレジスタまたは前記少なくとも１つの互換性改訂ＩＤレジスタの１つから値の選択を可能にし、前記第１プロセッサにより前記値を前記改訂ＩＤレジスタから可読にするため、前記第２プロセッサによりアクセス可能な選択論理と、
から構成されることを特徴とするコンピュータシステム。
【請求項１７】
請求項１６記載のコンピュータシステムであって、
前記選択論理は、前記初期化ソフトウェアの命令を実行する前記第２プロセッサにより制御されることを特徴とするシステム。
【請求項１８】
請求項１６記載のコンピュータシステムであって、
前記改訂ＩＤレジスタが前記プロセッサにより可読なアドレスは、ＰＣＩバスによる利用のため指定された改訂ＩＤレジスタのアドレス位置に従うことを特徴とするシステム。
【請求項１９】
請求項１６記載のコンピュータシステムであって、
前記第１ハードウェアコンポーネントは、前記第１プロセッサ内に搭載されることを特徴とするシステム。
【請求項２０】
選択論理へのアクセスを取得するため安全鍵を利用するステップと、
第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を維持するステッピング改訂ＩＤレジスタ、あるいは第１ハードウェアコンポーネントと同一のソフトウェアにより利用可能な第２ハードウェアコンポーネントのステッピング改訂レベルを示す値を維持する少なくとも１つの互換性改訂ＩＤレジスタから値を選択するため、前記選択論理を利用するステップと、
プロセッサが改訂ＩＤレジスタを介し前記選択された値を読み出すとき、前記選択された値を前記プロセッサにより可読にするステップと、
から構成される方法。
【請求項２１】
請求項２０記載の方法であって、
前記安全鍵を利用するステップと前記選択論理を利用するステップは、マシーンアクセス可能な媒体上に格納される初期化ソフトウェアの命令を実行する前記プロセッサにより実行させることを特徴とする方法。
【請求項２２】
請求項２０記載の方法であって、さらに、
前記選択論理が値を選択するのに利用したソフトウェアの命令を実行する前記プロセッサにより前記選択論理へのアクセスを拒絶するステップを有することを特徴とする方法。
【請求項２３】
マシーンプロセッサにより実行されるとき、前記マシーンに、
選択論理へのアクセスを取得するため安全鍵を利用するステップと、
第１ハードウェアコンポーネントの実際のステッピング改訂レベルを示す値を維持するステッピング改訂ＩＤレジスタ、あるいは第１ハードウェアコンポーネントと同一のソフトウェアにより利用可能な第２ハードウェアコンポーネントのステッピング改訂レベルを示す値を維持する少なくとも１つの互換性改訂ＩＤレジスタから値を選択するため、前記選択論理を利用するステップと、
プロセッサが改訂ＩＤレジスタを介し前記選択された値を読み出すとき、前記選択された値を前記プロセッサにより可読にするステップと、
を実行させる命令から構成されるマシーンアクセス可能な媒体。
【請求項２４】
請求項２３記載のマシーンアクセス可能な媒体であって、
前記プロセッサは、前記選択論理が値の選択に利用された後、前記選択論理へのさらなるアクセスを拒絶されることを特徴とする媒体。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の技術分野］
ハードウェア及びソフトウェアの改訂間の互換性を特定し、ハードウェア及びソフトウェアの異なる改訂（ｒｅｖｉｓｉｏｎ）の組み合わせの利用を簡素化する方法及び装置が開示される。
［技術背景］
コンピュータを含む複合的な電子装置の利用をより容易にするため、近年、特定のハードウェアコンポーネントを特定する情報を供給するソフトウェアによる読み出しが可能なレジスタの利用が増大している。このような特定するための情報には、製造改訂や設計レベルなどの、識別コードとして用いられる番号を含む、ある形式での２進数により通常特定されるハードウェア改訂情報が含まれる傾向がある。
【０００２】
また、このような複合的な電子装置の動作を制御するオペレーティングシステムや他のソフトウェアの利用をより容易にするため、近年、与えられたハードウェアの改訂版をサポートするのに必要とされるソフトウェアの改訂版がすでにインストールされていることを保証するため、このようなハードウェア改訂情報（例えば、２進数による値など）を提供する読み出しレジスタの利用が増大している。しばしばこれは、特定のハードウェア装置と通信し、その特徴を適切に利用するためのオペレーティングシステムにより必要とされるデバイスドライバの必要な改訂が与えられているかチェックすることにより行われる。このようなオペレーティングシステムは、デバイスドライバなどのソフトウェアの改訂が必要であるにもかかわらず利用可能なように与えられていないとわかると、必要なソフトウェアを要求するメッセージをユーザに示すよう設計されていることが多い。
【０００３】
このような利用性を改善するための手段は、有益な効果を持っていた。このような手段がない場合、任意の与えられた電子装置の特定のハードウェアコンポーネントをサポートするのに必要とされるソフトウェアが与えられているということを保証するよう手配する必要があった。これにはしばしば、ユーザまたは技術者がハードウェアコンポーネントや付随するソフトウェアに関してかなりのレベルの詳細な知識を備えることが要求される。しかしながら、このような利用性を改善する手段により、多くのユーザはこのようなレベルまでの詳細な知識を要求されることから解放され、多くの場合、大多数のユーザは第三者によるサポートに大きく依存する必要がなくなった。
【０００４】
しかしながら、このような利用性を改善する手段はまた、以前にはなかったハードウェアコンポーネント及びソフトウェアの利用性に関する新たな複雑さを加えるようになった。時間の経過と共に、ハードウェアが経年あるいは利用されるに従い、各種ハードウェアコンポーネントは磨耗し、交換が要する傾向がある。古いハードウェアコンポーネントと新しいハードウェアコンポーネントとの交換において、予め与えられていないソフトウェアをユーザまたは技術者が与える必要をなくすように、古いハードウェアコンポーネントは設計及び機能性に関する多くの点において実質的に類似した新しいハードウェアコンポーネントと交換されることが可能である。しかしながら通常、メーカーは、経時的に修正を行うことなく全く同一のハードウェアコンポーネントの製造を継続することはない。ハードウェアメーカーは、そのような変更が単なる製造コストの低減、消費電力の低減、物理的サイズの減少、あるいは新たなハードウェアを利用するのに新たなソフトウェアのインストールを必要としない他の可能な変更の何れかであったとしても、経時的にハードウェアの設計の改善及び変更を行う傾向がある。残念なことに、メーカーがこのような改善を行うに従い、ハードウェアが新たなハードウェアの改訂版を表している事実を反映させるため、ソフトウェアにより読み出し可能なレジスタに含まれる１以上の値を変更することにより、このような改善は行われたという事実を反映させることがしばしば望ましい。
【０００５】
特定のハードウェアコンポーネントが交換対象のハードウェアコンポーネントより新しいハードウェアの改訂版を表しているという事実を、ソフトウェア読み出し可能レジスタが反映していることが望ましいが、これによりしばしば、新しいハードウェアコンポーネントが正常に動作するため、新しいソフトウェアが実際に必要であるか否かに関係なく、ソフトウェアは、このようなレジスタを読み出し、改訂変更の表示に直面し、及びハードウェアの新たな改訂をサポートするソフトウェアの新たな改訂版をインストールするようユーザまたは技術者に要求する。言い換えると、不良と検出された古いハードウェアコンポーネントを取り替えるため、新しいハードウェアコンポーネントがユーザによりインストールされた後、この新しいハードウェアコンポーネントが取り替えられるハードウェアコンポーネントと機能に関して同じであるとしても、オペレーティングシステムにより与えられる新しいソフトウェアのインストールの必要性を示すメッセージがユーザに提示される。
【０００６】
これはユーザにとって不便であり、企業や他の大組織が当該組織内の多くのユーザをサポートするスタッフを有する場合、このことは、不要なソフトウェアの準備のための要求に対処するユーザニーズを満足させるために費やされる時間及び/または他のリソースに関してコストがかかると認識されている。
【０００７】
以降において主張される本発明の課題、特徴及び効果は、以下の詳細な説明により当業者に明らかとなるであろう。
［詳細な説明］
説明のため、そして以下の説明の完全なる理解を与えるため、多くの詳細が与えられるが、これらの具体的詳細は、以降に主張される本発明を実現するのに必要とされないということは、当業者には明らかであろう。
【０００８】
ハードウェアとソフトウェアの改訂間の互換性を特定し、ハードウェアとソフトウェアの異なる改訂版の組み合わせの利用を簡単化するための方法及び装置が開示される。具体的には、実施例は、ハードウェアコンポーネントの利用をさらに容易にするため、ハードウェアコンポーネントの改訂を特定のソフトウェア部分により特定するのに利用される値を複数のレジスタから選択することに関するものである。しかしながら、レジスタに保持され、そこから読み出される値を参照して実施例は説明されるが、以降で主張される本発明はまた、ハードウェアコンポーネントの改訂を特定するのに利用される値または他の形式の識別情報の格納及び読み出しに関する他のアプローチをも含むものである。
【０００９】
図１ａ及び１ｂはそれぞれ、ハードウェア改訂情報を提供する一実施例によるレジスタのアドレスマップ及び概略を示す。アドレスマップ１００ａは、論理１００ｂを構成要素として有するハードウェアコンポーネントを特定するために、ソフトウェアにより利用される少数のレジスタのアドレス位置を示す。具体的には、当業者に認識されるように、アドレスマップ１００ａは、周知の広く利用されているＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスの仕様に準拠したハードウェアコンポーネントのアドレス位置の構成を示す。アドレス「００ｈ」のベンダーＩＤレジスタ１３０は、ハードウェアコンポーネントのメーカーを特定する１６ビットの２進数を与えるソフトウェアにより読み出しが行われるためのものである。アドレス「０２ｈ」におけるデバイスＩＤレジスタ１３２は、ハードウェアコンポーネントを特定する１６ビットの２進数を提供するためのものである。改訂ＩＤレジスタ１２６は、ハードウェアコンポーネントの改訂レベルを特定する８ビットの２進数を与える。もちろん、これら特定のビットサイズは、説明を容易にするための例として単に与えられたものであり、限定的なものではない。
【００１０】
論理１００ｂは、構成要素として論理１００ｂを有するハードウェアコンポーネントの改訂レベルを特定する改訂ＩＤレジスタ１２６からソフトウェアにより読み出される改訂ＩＤの値を選ぶのに利用される。構成要素として論理１００ｂを有するハードウェアコンポーネントの実際の改訂レベルを特定する値は、ステッピング（ｓｔｅｐｐｉｎｇ）改訂ＩＤレジスタ１２２により維持される。ハードウェアコンポーネントが同様のソフトウェアを実行させるのに十分な互換性を有するハードウェアの改訂レベルを特定する値が、互換性改訂ＩＤレジスタ１２４により維持される。ステッピング改訂ＩＤレジスタ１２２と互換性改訂ＩＤレジスタ１２４は共にマルチプレクサ１２０の入力に接続され、マルチプレクサ１２０の出力は改訂ＩＤレジスタ１２６に接続される。ライトワンス（ｗｒｉｔｅ−ｏｎｃｅ）レジスタ１１０と安全鍵値レジスタ１１２は共に比較器１１４の入力に接続され、比較器１１４の出力はマルチプレクサ１２０の選択入力に接続される。
【００１１】
本実施例では、いくつかの可能な方法の何れかにより値はライトワンスレジスタ１１０に書き込まれ、その後この値は、比較器１１４により安全鍵値レジスタ１１２により維持される安全鍵値と比較される。これら２つの値が一致すると、ステッピング改訂ＩＤレジスタにより維持される値を、ソフトウェアが改訂ＩＤレジスタ１２６から以降において読み出し可能な値として提供することから（本実施例ではデフォルトである）、互換性改訂ＩＤレジスタにより維持される値を提供することに変更するようマルチプレクサ１２０に通知するため、比較器１１４の出力が変更される。ライトワンスレジスタ１１０の名称が示すように、ライトワンスレジスタ１１０は、構成要素として論理１００ｂを有するハードウェアコンポーネントの通常動作中において、１度しか書き込みが行われないよう設計されている。この制限は、ソフトウェアにより改訂ＩＤレジスタ１２６から以降において読み出し可能な値を変更する機会を１度しか与えないというセキュリティの一形態である。ライトワンスレジスタ１１０に書き込まれた値が安全鍵値レジスタ１１２により維持される値と一致しない場合、ソフトウェアにより改訂ＩＤレジスタ１２６から以降において読み出し可能な値を変更する機会は失われる。
【００１２】
構成要素として論理１１０ｂを有するハードウェアコンポーネントの設計に依存して、マルチプレクサ１２０は、当該ハードウェアコンポーネントが通常の利用のための初期化のためリセットされるときはいつでも、ステッピング改訂ＩＤレジスタ１２２に維持される値を改訂ＩＤレジスタ１２６を読み出すソフトウェアに提供するようリセットされてもよい。また、通常の利用のためのハードウェアコンポーネントのリセットは、ソフトウェアによる改訂ＩＤレジスタ１２６から読み出し可能な値を変更するライトワンスレジスタ１１０により与えられる１度の機会を更新するものであってもよい。さらに、ライトワンスレジスタ１１０への値の書き込みはいくつかのアプローチが可能であるが、本実施例の一変形では、ソフトウェアが値を改訂ＩＤレジスタ１２６に実際に書き込むときには、この値はライトワンスレジスタ１２６に書き込まれる。
【００１３】
当業者には容易に理解されるように、安全鍵値レジスタ１１２、ステッピング改訂ＩＤレジスタ１２２及び互換性改訂ＩＤレジスタ１２４を実現し、各レジスタが保持する値をこれらのレジスタに提供するのに利用されるアプローチには様々なものがあるかもしれない。このようなアプローチには、以下に限定するものではないが、配線、読み出し専用記憶装置の利用、構成要素として論理１００ｂを有するハードウェアコンポーネントの通常の利用の前における他のソフトウェアによるプログラミング、あるいは回路基板に搭載されたレジスタを介した高/低電圧への集積回路の選択的結線ピンなどが含まれる。具体的には、互換性改訂ＩＤレジスタ１２４は、ソフトウェアにより書き込み可能なレジスタ、あるいはソフトウェアユーティリティを介しユーザ（または技術者）により再プログラミングされる不揮発性再プログラム可能な記憶装置として実現されてもよい。
【００１４】
さらに、当業者には理解されるように、安全鍵値とそれに伴う安全鍵値レジスタ１１２を利用することは、改訂ＩＤレジスタ１２６を読み出すソフトウェアに供給される値を選択するのに必要とされるアクセスを制限するのに利用可能な多くの可能なアプローチの１つにすぎない。具体的には、選択を行い、上記処理の実行が許可されるソフトウェアの一部が存在する一方、他のソフトウェア部分は選択を読み出すことのみ可能とするようにしてもよい。このように、一部のソフトウェアが選択に必要なアクセスを許可される一方、他方のソフトウェア部分には許可しないという方法は、他方のソフトウェア部分がアクセスしたり、ＯＳにより割り当てられた許可を有しないようにするハードウェア設計であってもよく、これにより、ソフトウェアの一部は他方より優先度の高いレベルで、あるいは他の方法により実行することができる。また、ソフトウェアの一部は他方のソフトウェア部分とは別のプロセッサ上で実行するようにしてもよい。具体的には、ソフトウェアの一部は、他のソフトウェアによる通常の利用のため、ハードウェアコンポーネントを準備する一部としてのコンピュータシステムのハードウェアコンポーネントを構成するのに利用される独立したマイクロコントローラ上で実行するようにしてもよい。
【００１５】
また、当業者には理解されるように、改訂ＩＤ１２６からプロセッサにより読み出し可能な値の選択のラッチ処理は、いくつかの方法で実行されてもよい。具体的には、上記説明は、安全鍵値レジスタ１１２により維持される安全鍵との比較のため、値をラッチ及び提供するライトワンスレジスタの利用に焦点が当てられる。ライトワンスレジスタ１１０に書き込まれる値のラッチ処理は、ライトワンスレジスタ１１０により比較器１１４に供給される値が、ラッチされた後に一定に保たれ、これにより、比較器１１４のマルチプレクサ１２０の出力が一定に維持され、改訂ＩＤレジスタ１２６から読み出し可能な値の選択を効果的にラッチ処理することができる。しかしながら、比較器１１４の出力は、それ自体がラッチ処理されるように、マルチプレクサ１２０への到達前にラッチ（図示せず）を通過するようにしてもよい。これは、全体的な回路の複雑さを低減するため、書き込まれる複数ビットの値をラッチ処理するライトワンスレジスタ１１０の代替として、望ましいものと考えられるかもしれない。
【００１６】
図１ａ及び１ｂに示される実施例はＰＣＩバスの要件に具体的に準拠しているが、以降において主張される本発明はそれに限定されるものでなく、他のバス規格あるいは全く異なるハードウェア形式との利用のための実施例も可能であるということは、当業者には容易に明らかとなるであろう。
【００１７】
図２は、コンピュータシステムとそれのハードウェアコンポーネントの１つの間のやりとりを示す実施例のブロック図を示す。ハードウェアコンポーネント２００は、コンピュータシステム２５０の一コンポーネントであり、おそらくコンピュータシステム２５０のユーザあるいはユーザをサポートする技術者により、バスコネクタ２８８の１つを介しコンピュータシステム２５０の残りに接続されてもよい。ハードウェアコンポーネント２００には、ステッピング改訂ＩＤレジスタ２２２または互換性改訂ＩＤレジスタ２２４の何れかにより与えられる値をとりうる改訂ＩＤレジスタ２２６が含まれる。ハードウェアコンポーネント２００はまた、初期化ソフトウェア２２８を格納するソリッドステート（ｓｏｌｉｄ  ｓｔａｔｅ）デバイスを有するようにしてもよい。
【００１８】
コンピュータシステム２５０は、ハードウェアコンポーネントの他に、コンピュータシステム２５０の設計または用途に応じて、メモリコントローラ２６０、Ｉ/Ｏコントローラ２７０、バスコントローラ２８０及びグラフィックコントローラ２９０の１以上と接続されるプロセッサ２５９を有する。メモリコントローラ２６０はさらにメモリ２６８に接続され、Ｉ/Ｏコントローラ２７０はさらに、キーボード２７８及び/またはマウス２７９を含みうる１以上のＩ/Ｏ装置に接続され、バスコントローラ２８０はさらにバスコネクタ２８８に接続され、グラフィックコントローラ２９０はさらにディスプレイ２９８に接続される。さらに、コンピュータシステム２５０はまた、初期化ソフトウェア２５８を有するようにしてもよい。
【００１９】
初期化ソフトウェア２２８及び/または２５８は、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）などのソリッドステート装置、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）装置、フラッシュメモリ装置などの他の書き換え可能な記憶装置、あるいは電池によるバックアップを備えたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置などの不揮発性記憶装置の形態により保持されてもよい。あるいは、初期化ソフトウェア２２８及び/または２５８は、様々な利用可能なディスク、テープあるいはマシーンによるアクセスが可能な他の形態の何れかに保持されてもよい。
【００２０】
コンピュータシステム２５０の電源入力時、コンピュータシステム２５０のリセット時、及び/またはコンピュータシステム２５０のハードウェアコンポーネントの構成の変更時（おそらく、ハードウェアコンポーネント２００などのハードウェアコンポーネントの追加または削除による）などの与えられた時点において、コンピュータシステム２５０が通常の利用に対し準備ができているかチェックするため、及び/または通常の利用に対しコンピュータシステム２５０を提供するために、初期化ソフトウェア２５８が実行される。初期化ソフトウェア２５８は、プロセッサ２５９に１以上のハードウェアコンポーネントの存在または状態の問い合わせを行わせ、及び/またはプロセッサ２５９に１以上のテストを実行させるかもしれない。
【００２１】
本実施例の一変形では、ソフトウェア２５８は、プロセッサ２５９（または、おそらくコンピュータシステム２５０内の他のプロセッサ）にハードウェアコンポーネント２００の存在を検出させ、ハードウェアコンポーネント２００とやりとりを行うよう書き込みがなされていてもよい。具体的にハードウェアコンポーネント２００とやりとりするため、初期化ソフトウェアが書き込まれている場合、以降において改訂ＩＤレジスタ２２６から読み出し可能な値を供給するため、ステッピング改訂ＩＤレジスタ２２２または互換性改訂ＩＤレジスタ２２４との間の選択を行うよう初期化ソフトウェア２５８が書き込まれてもよい。そのとき、初期化ソフトウェア２５８は、図１ｂの論理１００ｂに対して記述されているものと同様のアプローチを利用して、あるいは他の可能なアプローチの何れかを利用して、プロセッサ２５９（または他のプロセッサ）にハードウェアコンポーネント２００の中の当該値の選択を制御する論理にアクセスさせる。
【００２２】
本実施例の一変形では、ハードウェアコンポーネント２００に含まれる初期化ソフトウェア２２８は、ハードウェアコンポーネント２００とやりとりするよう書き込まれており、以降において改訂ＩＤレジスタ２２６から読み出し可能な値を与えるため、ステッピング改訂ＩＤレジスタ２２２と互換性改訂ＩＤレジスタ２２４との間の選択を行うよう書き込みがなされてもよい。そうである場合、初期化ソフトウェア２２８は、図１ｂの論理１００ｂに対して記述されているものと同様のアプローチを利用して、あるいは他の可能なアプローチの何れかを利用して、プロセッサ２５９（または他のプロセッサ）にハードウェアコンポーネント２００の中の当該値の選択を制御する論理にアクセスさせる。
【００２３】
初期化ソフトウェア２２８または２５８の何れが改訂ＩＤレジスタ２２６から以降において読み出される値の選択を行わせたとしても、値の実際の選択は様々な可能な要因の何れかに依存するかもしれない。一実施例では、ステッピング改訂ＩＤレジスタ２２２または互換性改訂ＩＤレジスタ２２４からの値の何れかが選択されるとき、特定のオペレーティングシステムまたは他のソフトウェアに関する問題が非常に頻繁に生じるということが、初期化ソフトウェア２２８または２５８を作成する人々にとって既知であるかもしれない。この結果、初期化ソフトウェア２２８または２５８を作成する人々は、初期化ソフトウェア２２８または２５８が何らかの方法により値の選択を制限するか、あるいはこのような問題を引き起こすと知られている値の選択を完全に回避させるよう調整するようにしてもよい。これは、選好された選択を初期化ソフトウェア２２８または２５８に「ハードコーディング（ｈａｒｄ  ｃｏｄｉｎｇ）」することにより、または少なくとも選好された選択をデフォルトとすることにより、実行されてもよい。
【００２４】
他の実施例では、コンピュータシステム２５０のユーザ（またはユーザをサポートする技術者）には、初期化ソフトウェア２２８または２５８の制作者により、コンピュータシステム２５０により通常利用されるオペレーティングシステムまたは他のソフトウェアに応じた値を選択する方法が与えられる。このような実施例では、初期化ソフトウェア２２８または２５８は、プロセッサ２５９（または他のプロセッサ）にユーザまたは技術者が選択を行うグラフィックコントローラ２９０及びディスプレイ２９８を介し閲覧可能なある形態の画面上のメニューを提供させるようにしてもよい。これは、ユーザまたは技術者がコンピュータ２５０上にインストールするのに選択するいくつかの可能なオペレーティングシステムまたは他のソフトウェア部分が存在する場合に望ましいかもしれない。いくつかのオペレーティングシステム及び他のソフトウェア部分は、不安定または機能不全になるかもしれないし、あるいは利用可能な値の１つが選ばれる場合、ドライバソフトウェアのより新しいバージョンに対する所望でないリクエストがなされるかもしれない。このような問題は他の値を選択することにより回避することができる。ユーザまたは技術者が古いハードウェアコンポーネントを当該コンポーネントと同様に利用することができ、ハードウェアコンポーネント２００に古いハードウェアコンポーネントにより与えられたものと同じ値をソフトウェアに与える値が選ばれる限り、あるいは異なるソフトウェアの改訂版に対するリクエストや他の望ましくない結果をユーザまたは技術者に与えることを回避する効果を有する値が少なくとも選ばれる限り、使用されているソフトウェアを古いハードウェアコンポーネントと取り替えることなく利用可能となるよう設計されたハードウェアコンポーネント２００と交換するかもしれない。
【００２５】
さらなる他の実施例では、ユーザや技術者による選択が許される場合、ユーザまたは技術者は古いハードウェアコンポーネントをハードウェアコンポーネント２００と取り替えるようにしてもよく、ハードウェアコンポーネント２００は取り替えられた古いハードウェアコンポーネントとは異なる多くの拡張的機能を提供する。しかしながら、ユーザや技術者は、これらの拡張的機能を利用することを所望しないかもしれず、古いハードウェアコンポーネントと同様の利用方法によりハードウェアコンポーネント２００を利用することを所望するかもしれない。従って、ハードウェアコンポーネント２００に古いハードウェアコンポーネントにより与えられていたものと同じ値をソフトウェアに与えさせる値、あるいは少なくともユーザや技術者に異なるソフトウェアの改訂版のリクエストや他の望ましくない結果を与えることを回避する値を選ぶことが望ましいかもしれない。
【００２６】
例えば、ハードウェアコンポーネント２００が古い１００メガビット/秒のネットワークカードの代わりにインストールされている１ギガビット/秒のネットワークカードである場合、あるいはハードウェアコンポーネント２００が古いステレオのみのオーディオカードの代わりにインストールされているサラウンド音声機能を有するオーディオカードである場合、オペレーティングシステムや他のソフトウェアによりクエリされるとき、改訂ＩＤレジスタ２２６により与えられる値の選択をユーザまたは技術者に与えることが望ましいかもしれない。交換された古いネットワークまたはオーディオカードのメーカーは単に当該タイプの古いカードの製造をもはや行っておらず、このようなカードの新しい変形のみが利用可能であり、コンピュータシステム２５０のユーザ（または当該ユーザの技術者）は古いものの代わりにより新しいハードウェアコンポーネント２００を単にインストールすることを所望し、以前と全く同様にコンピュータを操作したいかもしれない。従って、古いハードウェアコンポーネントにより与えられる値と同一または等価な改訂ＩＤレジスタ２２６に対する値を選択することにより、おそらくより新しい機能を備えたより新しいハードウェアが与えられているということをオペレーティングシステムや他のソフトウェアに示すことを回避させるであろう。
【００２７】
ユーザや技術者に値の選択を提供することが望ましい他の具体的状況は、ハードウェアコンポーネント２００のメーカーが複数の場所で同じタイプのハードウェアを実際に製作するが、異なる場所での製造工程の相違や機能性とは関係のない他の比較的些細な詳細のため、ステッピング改訂ＩＤレジスタ２２２により与えられる値が異なっているときであるかもしれない。ハードウェアコンポーネント２００のすべての変種は、それらがどこで製造されたかに関係なく、同じ値を提供されることができるように、値の選択を有することが望ましいかもしれない。
【００２８】
さらに、これらの実施例の何れにおいても、あるいはさらなる他の実施例においても、選択対象の値は２以上存在するかもしれない。具体的には、複数の互換性改訂ＩＤレジスタ２２４が存在し、そのそれぞれが様々なオペレーティングシステムやソフトウェアの利用に対し望まれる異なる値を提供する。
【００２９】
図３ａは、一実施例によるコンピュータシステムのブロック図である。図２のコンピュータシステム２５０に一般的に対応する方法により、コンピュータシステム３５０は、コンピュータシステム３５０の設計または用途に応じて、メモリコントローラ３６０、Ｉ/Ｏコントローラ３７０、バスコントローラ３８０及びグラフィックコントローラ３９０の１以上に接続されるかもしれないプロセッサ３５９を有する。メモリコントローラ３６０はさらにメモリ３６８に接続され、Ｉ/Ｏコントローラ３７０はさらにキーボード及び/またはマウス３７９を含みうる１以上のＩ/Ｏ装置に接続され、バスコントローラ３８０はさらにバスコネクタ３８８に接続され、グラフィックコントローラ３９０はさらにディスプレイ３９８に接続される。しかしながら、コンピュータシステム２５０と異なり、コンピュータシステム３５０のプロセッサ３５９及びメモリコントローラの一方または両方が選択可能な値を備えた改訂ＩＤレジスタを有するようにしてもよい。具体的には図３に示されるように、プロセッサ３５９は、ステッピング改訂ＩＤレジスタ３５２と互換性ＩＤレジスタ３５４と共に改訂ＩＤレジスタ３５６を有することが可能であり、同様に、メモリコントローラ３６０はステッピング改訂ＩＤレジスタ３６２と互換性ＩＤレジスタ３６４と共に改訂ＩＤレジスタ３６６を有することが可能である。コンピュータシステム３５０はまた、初期化ソフトウェア３５８を有するようにしてもよい。
【００３０】
図２のコンピュータシステム２５０の場合と同様に、コンピュータシステム３５０では、初期化ソフトウェア３５８は、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）装置などのソリッドステートデバイス、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）装置、フラッシュメモリ装置などの他の書き換え可能な記憶装置、あるいは電池バックアップを備えたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置などの不揮発性記憶装置に格納されてもよい。あるいは、初期化ソフトウェア３５８は、各種利用可能なディスク、テープあるいは他の記憶媒体ベース装置の何れかに格納されてもよい。
【００３１】
コンピュータシステム３５０の電源投入時、コンピュータシステム３５０のリセット時、及び/またはコンピュータシステム３５０のハードウェアコンポーネントの設定変更時（おそらくハードウェアコンポーネントの追加または削除による）などの所与の時点において、コンピュータシステム３５０が通常の使用に対して準備ができているかチェックし、及び/または通常の使用に対してコンピュータシステム３５０を提供するよう初期化ソフトウェア３５８が実行される。初期化ソフトウェア３５８は、プロセッサ３５９に１以上のハードウェアコンポーネントの存在または状態を探索させ、及び/またはプロセッサ３５９に１以上のテストを実行させるようにしてもよい。
【００３２】
初期化ソフトウェア３５８は、プロセッサ３５９（またはおそらくコンピュータシステム３５０内の他のプロセッサ）にプロセッサ３５９及び/またはメモリコントローラ３６０の特定の改訂版の存在を検出させてもよい。初期化ソフトウェア３５８は、改訂ＩＤレジスタ３５６から以降において読み出し可能な値を供給するため、プロセッサ３５９のステッピング改訂ＩＤレジスタ３５２または互換性改訂ＩＤレジスタ３５４との間の選択を行うため、あるいは改訂ＩＤレジスタ３６６からの以降の読み出しが可能な値を供給するため、メモリコントローラ３６０のステッピング改訂ＩＤレジスタ３６２または互換性改訂ＩＤレジスタ３６２との間の選択を行うため、初期化ソフトウェア３５８が書き込みされていてもよい。その後、初期化ソフトウェア３５８は、プロセッサ３５９（または他のプロセッサ）にこれらの値の選択を制御する論理にアクセスさせ、必要に応じて選択させるようにする。
【００３３】
図２のコンピュータシステム２５０の場合と同様に、改訂ＩＤレジスタ３５６及び/または３６６の何れかから以降において読み出し可能な値の実際の選択は、様々な可能な要因の何れかに依存するものとしてもよい。これらの要因は、特定の値が選択される場合、または選択されない場合、潜在的問題または故障を有する初期化ソフトウェア３５８の制作者の側で把握しているか、あるいはユーザまたは当該ユーザをサポートする技術者が行うべき選択とされる。図２の初期化ソフトウェア２２８及び２５８に関して上述されたように、初期化ソフトウェア３５８は、ユーザまたは技術者に値の選択を与えるようにしてもよく、この値の選択は、グラフィックコントローラ３９０及び/またはディスプレイ３９８を介し表示されるメニューにより、あるいは他の可能な方法の何れかにより与えられてもよい。
【００３４】
コンポーネントの故障、あるいは以前にインストールされたプロセッサより高速なプロセッサ３５９によるコンピュータシステム３５０のアップグレードの要求が、交換対象の古いハードウェアコンポーネントとは異なる値を有するステッピング改訂ＩＤレジスタを有する新しいハードウェアコンポーネントが導入されるにもかかわらず、オペレーティングシステムや他のソフトウェアがハードウェアコンポーネントの変更を認識しないことを所望する状況を与えるかもしれない。如何なる理由に対しても、ユーザや技術者が利用を所望しない命令セットや他の機能を追加するより高速なプロセッサ３５９がインストールされてもよく、これにより、ユーザや技術者は古いプロセッサにより与えられた値を模倣した改訂ＩＤレジスタ３５６から以降において読み出し可能な値を選択するかもしれない。コンポーネントの故障により、古いメモリコントローラの代わりに新しいメモリコントローラ３６０がインストールされる必要が生ずる。しかし、メモリコントローラ３６０のメーカーはダイサイズを縮小したか、あるいは交換対象のものと比較して、メモリコントローラ３６０の機能に影響を及ぼす他の変更を行っている可能性があるため、メモリコントローラ３６０は、オペレーティングシステムや他のソフトウェアを不安定または動作不能にしたり、あるいは異なる値が選択されない場合、ソフトウェアアップグレードや他のソフトウェアの改訂版を要求させる改訂ＩＤレジスタ３６６の改訂ＩＤ値をオペレーティングシステムや他のソフトウェアに提供するようにしてもよい。
【００３５】
改訂ＩＤ３５６または３６６の何れかまたは両方から以降において読み出し可能とされる値の選択が提供される具体的状況は、コンピュータシステム３５０が企業設定と同様のものにおいて利用される多数のコンピュータの１つである場合であるかもしれない。コンピュータシステム３５０を含むこのような場所で利用されるコンピュータのすべては、同一のソースから購入したすべての同一の設定となるようにされたかもしれないが、経時的にこれらのコンピュータにおいて使用されるコンポーネントの１以上のメーカーにより行われた小規模な改良により、少なくともステッピング改訂ＩＤレジスタにより与えられる値がすべての場合において使用される場合、これらコンピュータのコンポーネントの１以上の改訂ＩＤ値はすべてが同一でないかもしれない。これは、そのような場所を通じて各ソフトウェアの特定の改訂版から構成されるソフトウェアの共通セットを利用することを所望するのに困難を引き起こすかもしれない。このようなコンピュータの少なくとも一部の１以上のコンポーネントの互換性改訂ＩＤレジスタからの値の選択が可能であることが、このようなソフトウェアの共通セットの利用を可能とするのに必要とされるかもしれない。
【００３６】
図３ｂは、コンピュータシステムの形式による他の実施例を示すブロック図である。具体的には、図３ｂのコンピュータシステム３５０は、第２のプロセッサ、すなわち、プロセッサ３５７が追加されていることを除いて、図３ａのコンピュータシステム３５０に実質的に同一である。プロセッサ３５７は、コンピュータシステム３５０の機能の設定及び/または監視を支援するのに利用される。プロセッサ３５７は、単一の集積回路内に自身の初期化コードを含むあるサイズのメモリを有するマイクロコントローラとして実現されてもよい。プロセッサ３５７は、おそらく集中監視コンピュータシステムを含むコンピュータシステム３５０の外部の他の装置にコンピュータシステム３５０の動作状態を中継するのに利用される１以上の通信ポートを有するかもしれない。
【００３７】
本実施例では、プロセッサ３５７は、自らの初期化コードにより、プロセッサ３５９及び/またはメモリコントローラ３６０の特定の改訂版の存在を検出させられる。その後、プロセッサ３５７は、改訂ＩＤレジスタ３５６から以降において読み出し可能な値を与えるため、プロセッサ３５９のステッピング改訂ＩＤレジスタ３５２または互換性改訂ＩＤレジスタ３５４との間の選択を行ってもよいし、及び/または改訂ＩＤレジスタ３６６から以降において読み出し可能な値を与えるため、メモリコントローラ３６０のステッピング改訂ＩＤレジスタ３６２または互換性改訂ＩＤレジスタ３６４との間の選択を行うようにしてもよい。その後、プロセッサ３５７は、選択された値を改訂ＩＤレジスタ３５６及び/または３６６を介しプロセッサ３５９により以降において実行されるソフトウェアにより読み出し可能にする。
【００３８】
プロセッサ３５７などの他のプロセッサが改訂ＩＤレジスタ３５６及び/または３６６に対する値を選ぶのに必要とされる論理にアクセスする実施例では、プロセッサ３５９によりアクセス可能とならないように、当該論理の設計または設定が行われるかもしれない。さらに、プロセッサ３５７は、コンピュータシステム３５０のユーザあるいはユーザをサポートする技術者が画面上のメニューや他のアプローチにより改訂ＩＤレジスタ３５６及び/または３６６を介し読み出し可能とされる値を選択する機会を与えるため、プロセッサ３５９により利用される論理を介し直接的または間接的にグラフィックコントローラ３９０にアクセスしてもよい。
【００３９】
プロセッサ３５９とメモリコントローラ３６０は、改訂ＩＤレジスタ、ステッピング改訂ＩＤレジスタ及び互換性改訂ＩＤレジスタを有するものとして示されているが、これらが説明のための例として与えられているということは当業者には容易に理解されるであろう。具体的には、コンピュータシステムの他のコンポーネントに、プロセッサ３５９及び/またはメモリコントローラ３６０内に存在する構成に加え、またはそれに代わってそのような追加的な構成が与えられてもよいということは当業者には容易に理解されるであろう。
【００４０】
図４は、初期化ソフトウェアにより行われる初期化へのアプローチの一実施例のフローチャートを示す。ステップ４１０において、コンピュータシステムの電源が投入されるか、あるいはリセットされる。ステップ４１２において、初期化ソフトウェアの一部がプロセッサにより実行開始される。ステップ４２０において、初期化ソフトウェアは、プロセッサに改訂ＩＤレジスタに配置させ、ステップ４２２において、ステッピング改訂ＩＤレジスタに保持されている値が利用されるべきかについてなされた選択の表示（初期化ソフトウェア内、それ自体または他のソースからハードコーディングされる）をロードさせる。ステップ４３０においてステッピング改訂ＩＤレジスタの値が利用される場合、そしてステップ４４０においてステッピング改訂ＩＤレジスタの値を利用されるのに必要とされるアクションがない場合、初期化ソフトウェアはプロセッサに改訂ＩＤに対する値に関してさらなるアクションを実行させない。しかしながら、ステップ４４０において、ステッピング改訂ＩＤレジスタの値を利用させるのに必要なアクションが必要な場合、ステップ４２２において初期化ソフトウェアはこの追加的なアクションを実行する。ステップ４３０において、ステッピング改訂ＩＤレジスタに保持されている値が利用されるべきでない場合、互換性改訂ＩＤレジスタからの値が利用され、ステップ４５０において当該互換性改訂ＩＤレジスタの値を利用させるためのアクションが実行される。
【００４１】
一実施例では、ステップ４４２または４５０において、おそらく図１に関して説明されたものと同様にして、所望の値が選ばれるのを可能にするため、安全鍵値はレジスタに書き込まれる必要がある。あるいは、セキュリティに対する他のアプローチは、初期化ソフトウェアのみが、改訂ＩＤレジスタから読み出し可能な値の選択を実現可能にすることを保証するのに利用されてもよい。
【００４２】
本発明が好適な実施例に関して説明された。上記説明に基づき、様々な代替、修正、変形及び利用が当業者に明らかであることは明白であろう。以降において主張される本発明は、コンピュータシステムに限定されるものではないが、それを含む様々なデジタル電子システムのコンポーネントの改訂版の特定をサポートするのに実現されてもよいということは当業者には理解されるであろう。レジスタの利用及びデフォルトとして使用されるステッピング改訂ＩＤ値に関する実施例が示されたが、他の形態のハードウェアが値や他の形式の改訂レベルの識別の保持、格納及び/または提供を行うのに利用可能であり、改訂ＩＤ値の他の変形が、ユーザ、ユーザをサポートする技術者及び/または他の形態のソフトウェアにより逆のアクションが実行されない場合に利用されるデフォルトとされてもよいということは、当業者には理解されるであろう。また、ハードウェアコンポーネントの改訂レベルを説明するため、値の選択に関する実施例が示されたが、当該実施例に関して説明されるアプローチはまた、デバイスＩＤ値及び/またはデバイスＩＤレジスタに限定されるものではないが、それらを含むハードウェアコンポーネントの特定の他の点に対して適用されてもよい。
【図面の簡単な説明】
【００４３】
【図１】図１ａ及び１ｂは、ハードウェア改訂情報を与える一実施例によるレジスタのアドレスマップ及び概略を示す。
【図２】図２は、コンピュータシステムとやりとりするハードウェアコンポーネントの一実施例のブロック図である。
【図３ａ】図３ａは、コンピュータシステムの実施例のブロック図である。
【図３ｂ】図３ｂは、コンピュータシステムの実施例のブロック図である。
【図４】図４は、ハードウェア改訂を特定する値を選ぶアプローチの一実施例のフローチャートである。
【図１】
2005531085.tif 000003
【図２】
2005531085.tif 000004
【図３ａ】
2005531085.tif 000005
【図３ｂ】
2005531085.tif 000006
【図４】
2005531085.tif 000007
【国際調査報告】
2005531085.tif 000008
2005531085.tif 000009