(57)【特許請求の範囲】
【請求項１】
プロセッサに接続され、通信リンクを介しデバイスと接続される少なくとも１つの機能ユニットを有するシステム論理装置であって、
前記機能ユニットは、
前記デバイスの改訂識別値を格納する改訂識別レジスタと、
当該改訂識別変更レジスタの内容が、当該システム論理装置は更新されたがオペレーティングシステムのデバイスドライバの更新は必要としないことを示すとき、前記改訂識別レジスタの内容の変更を許可するための改訂識別変更レジスタと、
を有し、
当該装置はさらに、前記改訂識別レジスタの現在の内容が、重要な機能変更が行われた最後のデバイスステッピングを示しているか判断し、前記現在の内容が前記最後のデバイスステッピングを示していない場合、前記改訂識別レジスタの現在の内容を前記最後のデバイスステッピングを示す内容に置換する手段を有するシステム論理装置。
【請求項２】
前記改訂識別変更レジスタは１ビットを有し、
該ビットの状態が、前記改訂識別レジスタの内容が現在変更可能であるかを示す、請求項１記載のシステム論理装置。
【請求項３】
前記改訂識別変更レジスタの値が「１」であるということは、前記改訂識別レジスタが該改訂識別レジスタへの任意の値の書き込みを認容することを示す、請求項２記載のシステム論理装置。
【請求項４】
前記改訂識別変更レジスタの値が「０」であるということは、前記改訂識別レジスタが該改訂識別レジスタへの書き込みを無視することを示す、請求項３記載のシステム論理装置。
【請求項５】
プロセッサを有する改訂識別システムであって、
前記プロセッサに接続され、デバイスと通信リンクを介し接続される少なくとも１つの機能ユニットを有するシステムロジック装置と、
プレオペレーティングシステムソフトウェアエージェントを格納する不揮発性メモリと、
を有し、
前記機能ユニットは、前記デバイスの改訂識別値を格納する改訂識別レジスタと、当該改訂識別変更レジスタの内容が、ハードウェアは更新されたがオペレーティングシステムのデバイスドライバの更新は必要としないことを示すとき、前記改訂識別レジスタの内容の変更を許可するための改訂識別変更レジスタとを有し、
前記プレオペレーティングソフトウェアエージェントは、前記プロセッサに前記改訂識別レジスタに格納されている現在の改訂識別値が重要な機能変更が行われた最後のデバイスステッピングを示しているか判断させ、前記現在の改訂識別値が前記最後のデバイスステッピングを示していない場合、前記改訂識別レジスタの現在の内容を前記最後のデバイスステッピングを示す内容に置換させる改訂識別システム。
【請求項６】
前記改訂識別変更レジスタは１ビットを有し、
該ビットの状態が、前記改訂識別レジスタの内容が現在変更可能であるか示す、請求項５記載の改訂識別システム。
【請求項７】
前記改訂識別変更レジスタの値が「１」であるということは、前記改訂識別レジスタが該改訂識別レジスタへの任意の値の書き込みを認容することを示す、請求項６記載の改訂識別システム。
【請求項８】
前記改訂識別変更レジスタの値が「０」であるということは、前記改訂識別レジスタが該改訂識別レジスタへの書き込みを無視することを示す、請求項７記載の改訂識別システム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の技術分野］
本発明は、コンピュータシステム分野に関する。より詳細には、本発明は、改訂識別レジスタの分野に関する。
［発明の背景］
典型的なコンピュータシステムでは、コンピュータシステム装置の多くに関連するハードウェアの現在の改訂を示す値を有する改訂識別レジスタが含まれている。典型的には、装置が改訂（しばしば、「ステッピング（ｓｔｅｐｐｉｎｇ）」と呼ばれる）されるときはいつでも、改訂識別レジスタに格納されている値が新しいステッピングを反映するよう変更される。従来のコンピュータシステムは、改訂識別レジスタを読み出し専用レジスタとして実現していた。言い換えると、この改訂識別レジスタの内容は変更不可であった。
【０００２】
コンピュータシステムのブートプロセス中にオペレーティングシステムがロードされるとき、当該オペレーティングシステムは典型的には、様々なデバイスの現在のステッピングを決定するため様々な改訂識別レジスタをチェックする。オペレーティングシステムは、改訂識別情報を利用して、どのデバイスドライバをロードしたらよいか判断する。オペレーティングシステムが新しいデバイスのステッピングを認識すると、このデバイスの更新されたデバイスドライバをロードする。
【０００３】
コンピュータシステムは典型的に、しばしば「チップセット（ｃｈｉｐｓｅｔ）」と呼ばれる高度統合システム論理デバイスを含んでいる。これらシステム論理デバイスは多くの機能ユニットを含んでいてもよく、これら機能ユニットの多くは改訂識別レジスタを含んでいるかもしれない。典型的には、高度統合システム論理デバイスに新しいステッピングが行われると、大部分の機能ユニットはデバイスドライバの変更を保証する機能について変更されない。しかしながら、新しい各ステップに対して、統合された機能ユニットに関する各改訂識別レジスタは、この新しいステッピングを反映する値を含む。ブートプロセス中、オペレーティングシステムが新しいデバイスのステッピングを検出すると、オペレーティングシステムは以前のステッピングから現在のステッピングに機能に関する変更がなかったとしても、様々な機能ユニットの更新されたデバイスドライバをロードする。
【０００４】
新たなステッピングが検出されると、必要かどうかに関わらず、更新されたドライバのロード処理はコンピュータシステムメーカーにとって厄介である。コンピュータシステムメーカーはしばしば、オペレーティングシステムを１つのシステムの予めロードしていて、その後でそれを異なるシリコンステッピングのシステム論理デバイスを有する同一のシステムに移す。パワーアップすると、オペレーティングシステムは不要なときでさえ新しいデバイスドライバをロードすることになり、これにより製造時間が増大することになる。
【０００５】
上記改訂識別レジスタはしばしば、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス規格（１９９８年１２月１８日にリリースされたＰＣＩローカルバス仕様、改訂２．２）に従って実現される。
【０００６】
本発明は、本発明の実施例の以下に与えられた詳細な説明と添付された図面からより十分な理解が得られるであろう。しかしながら、これは本発明を説明される特定の実施例に限定するものではなく、単なる説明及び理解のためのものである。
［詳細な説明］
改訂識別レジスタの内容を変更する一実施例は、読み出し可能かつ書き込み可能な改訂識別レジスタを含む（改訂識別レジスタの内容が変更可能である）。改訂識別変更ビットがまた含まれる。改訂識別レジスタへの書き込みが許可されていると示すように改訂識別変更ビットが設定されているときのみ、改訂識別レジスタの内容は変更可能である。本実施例は、ハードウェアが更新されるが、オペレーティングシステムデバイスドライバは高度統合システム論理デバイス内の１以上の機能ユニットに対して更新の必要がないようなシナリオにおいて有益である。そのような場合、特定のコンピュータシステムコンフィギュレーションに対して具体的に開発されたプレオペレーティングシステムブートソフトウェア（オペレーティングシステムのロード前に実行されるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍのような）が、オペレーティングシステムのロード前に古い改訂識別値を改訂識別レジスタに配置することを決定することができる。オペレーティングシステムは、ハードウェアが変更されていないと仮定している。これにより、デバイスドライバの不要なエニミュレーション（ｅｎｕｍｅｒａｔｉｏｎ）、サーチ及びリロードが回避され、製造時間の節約につながる。
【０００７】
図１は、変更可能な改訂識別レジスタを有するコンピュータシステムの一実施例のブロック図である。図１のコンピュータシステムはプロセッサ１１０を有する。プロセッサ１１０はシステム論理デバイス１２０に接続されている。システム論理デバイス１２０は、システムメモリ１３０と通信するためのメモリコントローラを含んでいてもよい。システム論理デバイス１２０はまた、グラフィックスコントローラを含む他の機能ユニットを有するかもしれない。
【０００８】
システム論理デバイス１２０はまた入出力ハブ１４０に接続されている。入出力ハブ１４０は、以下に限定するものではないが、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）１６５、ＰＣＩバス１５５及びディスクドライブインタフェース１７５との通信を提供する機能ユニットを含む様々な機能ユニットを含んでもよい。ディスクドライブインタフェース１７５は、オペレーティングシステムを格納した記憶装置（図示せず）と通信してもよい。オペレーティングシステムのすべてまたは一部が、コンピュータシステムブートプロセス中システムメモリ１３０にロードされてもよい。
【０００９】
入出力ハブ１４０はまた不揮発性メモリ１８０に接続される。不揮発性メモリ１８０はＢＩＯＳまたは他のプレオペレーティングシステムソフトウェアを格納してもよい。ここで使われる「プレオペレーティングシステムソフトウェア」という用語は、システムブートプロセス中オペレーティングシステムのロード前に実行される任意のソフトウェアエージェントを含むものとする。
【００１０】
図１のコンピュータシステムは多数の改訂識別レジスタを有する。システム論理デバイス１２０は、改訂識別レジスタ１２２と改訂識別変更ビット１２４を有する。改訂識別変更ビット１２４が「１」に設定されているとき、改訂識別レジスタ１２２は書き込みを許可する。改訂変更ビット１２４が「０」を反映しているとき、改訂識別レジスタ１２２は読み出し専用である（書き込みは許可されていない）。
【００１１】
入出力ハブ１４０は改訂識別レジスタ１４１、１４３及び１４５を有する。入出力ハブ１４０はまた改訂識別変更ビット１４２、１４４及び１４６を含んでいる。改訂識別レジスタ１４３と改訂識別変更ビット１４４は、ＰＣＩバス１５５との通信を提供する機能ユニットと関連付けされている。改訂識別レジスタ１４５と改訂識別変更ビット１４６は、ディスクドライブインタフェース１７５との通信を提供する機能ユニットと関連付けされている。改訂識別レジスタと改訂識別変更ビットが様々な機能ユニットまたはデバイスの何れかと関連付けされている他の多くの可能な実施例が存在する。
【００１２】
改訂識別レジスタ１２２と改訂識別変更ビット１２４と同様に、改訂識別変更ビット１４２、１４４及び１４６は、それらに関連付けされた改訂識別変更ビット１４２、１４４及び１４６が「０」を有するとき、変更不可である。改訂識別変更ビット１４２、１４４及び１４６は、それらに関連付けされた改訂識別変更ビット１４２、１４４及び１４６が「１」を有するとき、変更可能である。すなわち、改訂識別レジスタ１４１、１４３及び１４５は書き込みを許可する。
【００１３】
不揮発性メモリ１８０に格納されるプレオペレーティングシステムソフトウェアは、様々な改訂識別レジスタに格納されている現在値をチェックするコードを有するかもしれない。このコードにより、現在の改訂識別レジスタ値を以前のデバイスステッピングを反映する値に換えるべきか判断することができる。
【００１４】
本実施例では、改訂識別レジスタ１２２、１４１、１４３及び１４５と、改訂識別変更ビット１２４、１４２、１４４及び１４６は、様々な関連付けされたデバイスまたは機能ユニットに関連付けされたＰＣＩコンフィギュレーションスペースの一部として含まれてもよい。
【００１５】
ここで説明された実施例は関連付けされた改訂識別レジスタが変更可能であるか決定する改訂識別変更ビットを説明してきたが、他の実施例では１より大きなビットを利用することが可能である。
【００１６】
さらに、ここで説明された実施例は、関連する改訂識別レジスタが変更可能であるであることを示す「１」と、改訂識別レジスタが読み出し専用状態であることを示す「０」を有する改訂識別変更ビットを含むが、他の実施例では、「０」により関連する改訂識別レジスタが変更可能であるであることを示され、「１」により改訂識別レジスタが読み出し専用状態であることが示されるようにしてもよい。
【００１７】
図２は、改訂識別レジスタに格納される値を変更する方法の一実施例のフロー図である。ブロック２１０において、現在の改訂識別レジスタ値が改訂識別レジスタから読み出される。ブロック２２０において、現在改訂識別値が第１デバイスステッピングを示しているかチェックされる。この第１デバイスステッピングは重要な機能変更が行われた最後のステッピングであるかもしれない。「第１デバイスステッピング」という用語は、必ずしももともとのデバイスまたは機能ユニットを意味するものではない。
【００１８】
現在改訂識別値が第１デバイスステッピングを示す場合、さらなるアクションはなされない。しかしながら、現在改訂識別値が第１デバイスステッピングを示さない場合、ブロック２３０において、現在改訂識別値は第１デバイスステッピングを示す値と取り替えられる。
【００１９】
図３は、改訂識別レジスタに格納される値を変更する方法のさらなる実施例のフロー図である。ブロック３１０において、プレオペレーティングシステムソフトウェアエージェントが実行される。ブロック３２０において、改訂識別レジスタに格納されている値が読み出される。ブロック３３０において、改訂識別レジスタに格納されている値を変更すべきか判断される。改訂識別レジスタに格納されている値を変更すべきでないと判断されれば、ブロック３５０において、オペレーティングシステムがロードされる。改訂識別レジスタに格納されている値を変更すべきであると判断されれば、ブロック３５０におけるオペレーティングシステムのロード前に、ブロック３４０においてこの値が変更される。ブロック３２０、３３０及び３４０において示される処理はプレオペレーティングシステムソフトウェアエージェントの制御のもと実行される。
【００２０】
上記明細書において、特定の実施例を参照することにより本発明が説明された。しかしながら、添付されたクレームに与えられるような本発明のより広範な趣旨及び範囲から逸脱することなく様々な変更及び修正が可能であるということは明らかであろう。従って、明細書及び図面は限定的なものというよりも例示的なものとみなされるべきである。
【００２１】
明細書における「ある実施例」、「一実施例」、「いくつかの実施例」あるいは「他の実施例」という表現は、実施例に関して説明された特定の特徴、構成または特性が本発明の必ずしもすべての実施例でなく、少なくともいくつかの実施例に含まれるということを意味するものである。「ある実施例」、「一実施例」あるいは「いくつかの実施例」の様々な様相は、必ずしも同一の実施例を言及しているものではない。
【図面の簡単な説明】
【００２２】
【図１】図１は、変更可能な改訂識別レジスタを有するコンピュータシステムの一実施例のブロック図である。
【図２】図２は、改訂識別レジスタに格納されている値を変更する方法の一実施例のフロー図である。
【図３】図３は、改訂識別レジスタに格納されている値を変更する方法のさらなる実施例のフロー図である。
【図１】
0004199121.tif 000002
【図２】
0004199121.tif 000003
【図３】
0004199121.tif 000004