(57)【特許請求の範囲】
【請求項１】
古いマザーボードを新しいマザーボードに交換したコンピュータ・システムがアプリケーション・ソフトウェアを実行することを可能にするマザーボードの製造番号を前記新しいマザーボードのメモリに書き込む装置であって、
（ａ）製造番号の書き換えを許容し、かつ初期化されてない所定の製造番号が書き込まれたヘッダを含む前記メモリを有するマザーボードと、前記コンピュータ・システムの電源投入時または一旦リブートされた後に前記ヘッダの存在を判断させるコントローラとを備え、
前記コントローラは、
（ｂ）前記ヘッダが認識された場合には製造番号を書き換えるための手段を起動し、入力された前記古いマザーボードの製造番号により前記所定の製造番号を書き換え、前記コンピュータ・システムのリブートまで前記入力された製造番号が正しいか否かを確認させることにより前記初期化されてない製造番号を初期化させ、
（ｃ）前記ヘッダが認識されない場合には前記製造番号を書き換えるための手段を起動させず、初期化された製造番号の書き換えを禁止する、装置。
【請求項２】
前記初期化されてない製造番号を書き換える前記マザーボードの製造番号が、前記コンピュータ・システムがリブートされない限り複数回変更可能である、請求項１に記載の装置。
【請求項３】
前記コンピュータ・システムが、前記初期化されてない製造番号が初期化された後、自身がリブートされた場合に動作可能になる、請求項２に記載の装置。
【請求項４】
前記メモリがＥＥＰＲＯＭである請求項１に記載の装置。
【請求項５】
装置に対して、古いマザーボードを新しいマザーボードに交換したコンピュータ・システムがアプリケーション・ソフトウェアを実行することを可能にするために、マザーボードの製造番号を前記新しいマザーボードのメモリに書き込ませる方法であって、
前記マザーボードは、製造番号の書き換えを許容し、かつ初期化されてない所定の製造番号が書き込まれたヘッダを含む前記メモリを有し、前記装置は、前記マザーボードに対して前記製造番号の書き込みを制御するコントローラを備え、前記方法は、前記装置に対し、
（ａ）前記コントローラをして前記コンピュータ・システムの電源投入時または一旦リブートされた後に前記ヘッダの存在を判断させるステップと、
（ｂ）前記コントローラによる判断に応答して、前記コントローラをして、前記ヘッダが認識された場合には製造番号を書き換えるための手段を起動し、入力された前記古いマザーボードの製造番号により前記所定の製造番号を書き換え、前記コンピュータ・システムのリブートまで前記入力された製造番号が正しいか否かを確認させることにより前記初期化されてない製造番号を初期化させるステップと、
（ｃ）前記ヘッダが認識されない場合には、前記コントローラが製造番号を書き換えるための手段を起動させずに、初期化された製造番号の書き換えを禁止させるステップと、
を実行させる方法。
【請求項６】
前記初期化されてない製造番号を書き換える前記マザーボードの製造番号が、前記コンピュータ・システムがリブートされない限り複数回変更可能である、請求項５に記載の方法。
【請求項７】
前記コンピュータ・システムが、前記初期化されてない製造番号が初期化された後、自身がリブートされた場合に動作可能になる、請求項６に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は概してコンピュータ・システムに関し、更に詳細には、ライセンスされたソフトウェアの実行を可能にする製造番号を備えたマザーボードをもつ、コンピュータ・システムに関する。
【０００２】
【従来の技術】
システム内の各ワークステーションは、自体を他のワークステーションから識別するための独自の製造番号をもつ。この製造番号は、通常ワークステーションのマザーボード上に電子的に保管される。この番号は、多くの場合オペレーティング・システム（ＯＳ）が独自の名前（即ちＵＮＡＭＥ）を作成するために用いられ、この名前は、ＵＮＡＭＥ呼び出しを行うアプリケーション・ソフトウェアに渡される。アプリケーション・ソフトウェアはＵＮＡＭＥを使用して、ワークステーション上でこのアプリケーション・ソフトウェアの実行を許諾するソフトウェア・ライセンスが与えられていることを確認する。
【０００３】
製造番号は、今までは２つの方法を使ってワークステーションのマザーボード上に保管されていた。第１の方法は、マザーボード上に配置された電子的に消去可能なプログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）のような安全な素子に、製造時に製造番号を保管するものであった。この製造番号は、ＥＥＰＲＯＭから読み出しできるだけなので、変更は不可能であった。したがってこの方法は、適切な許諾をもつワークステーションのみが、このアプリケーション・ソフトウェアを実行できることが周知となり、ソフトウェア・ベンダに一定レベルの保護手段が提供された。
【０００４】
一般にワークステーションのマザーボードが誤動作をしたときは、このマザーボードは、元々異なる製造番号をもつ新しいマザーボードと変換された。この際ＯＳは新しい製造番号を用いてＵＮＡＭＥを作成し、このＵＮＡＭＥは、アプリケーション・ソフトウェアが予期しているＵＮＡＭＥとは異なる。したがって、ワークステーションがこのアプリケーション・ソフトウェアを実行するためには、新しいライセンスを取得する必要があった。その結果ソフトウェア・ベンダに連絡し、新しいライセンスを要求することになった。この作業は通常一定時間、多くの場合かなり長い時間のこのソフトウェアの使用停止を意味し、生産性の低下をもたらした。
【０００５】
第２の方法は、マザーボード上の不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、または同様技術の素子中のロック可能な領域に製造番号を保管することであった。システムのファームウェアが、ＯＳに制御を渡す前にこの領域をロックして、読み出し専用領域にする。この方法は、ＯＳに制御を渡す前にユーティリティー・ソフトウェアを実行することにより、交換した新しいマザーボードの製造番号を元々のマザーボードの製造番号に変換することを可能にした。これによりマザーボードの交換後、ＯＳは引き続き適切なＵＮＡＭＥを作成し、ワークステーション上で中断することなくアプリケーション・ソフトウェアを実行できるようになった。しかし、製造番号がユーザの思いのままに変更できることになり、ワークステーション上で実行されているソフトウェアに対する適切なライセンスが常に存在しているか否かは、ソフトウェア・ベンダにとって確かなものでなくなった。
【０００６】
【発明が解決しようとする課題】
したがってマザーボードを変更した場合には、製造番号の変更を可能にして、ワークステーション上で中断することなくアプリケーション・ソフトウェアの実行が続けられ、一方でワークステーション上でのアプリケーション・ソフトウェアの実行を許諾するライセンスが存在することを、ソフトウェア・ベンダに保証する方法が、当分野で必要とされている。
【０００７】
【課題を解決するための手段】
本発明は、当分野のこの必要性に対処するものである。本発明は、新しく交換したマザーボードの製造番号を、誤動作したマザーボードの製造番号に変換する方法および装置を提供し、これにより、ワークステーション上で中断することなくアプリケーション・ソフトウェアが確実に実行できるようにし、一方でワークステーションには、このアプリケーション・ソフトウェアを実行するための許諾が与えられていることを、ソフトウェア・ベンダに保証する。本発明の１実施例では、交換用のマザーボードのメモリには、初期化されてない製造番号が製造時に保管される。誤動作をするマザーボードを交換するために交換用ボードが使われるときに、初期化されてない製造番号が、誤動作をするマザーボードの製造番号で置き換えられることによって、初期化される。初期化の後は、変更は許されない。
【０００８】
本発明のもう１つの実施例では、ワークステーションは、初期化の後に強制的にリブート（ｒｅｂｏｏｔ）される。しかしこの場合には初期化された製造番号の変更は、ワークステーションがリブートされない限り許される。
【０００９】
【発明の実施の形態】
図１は、本発明の好ましい実施例で採用されたコンピュータ・システムのマザーボード１００のブロック図である。このようなコンピュータは、ＩＢＭ社が市販しているＲＳ／６０００システムのようなワークステーションであってもよいが、本発明をこのシステムに限定する意図はなく、実質的にはいかなるコンピュータ・システムにも同じように適用可能である。
【００１０】
更に図１を参照すると、マザーボード１００は、システム・バス１５０上のホスト・ブリッジ１３０を介してシステム・メモリ１４０に接続される複数の中央演算処理装置（ＣＰＣ）１１０、および１２０を含む。ホスト・ブリッジは、周辺装置相互接続（ＰＣＩ）バス１６０に接続され、このバスには、ＰＣＩ装置１６２〜１６８が接続されている。更にＰＣＩバス１６０には、業界標準アーキテクチャ（ＩＳＡ）ブリッジ１７０も接続され、このブリッジは、ＩＳＡバス１７８に接続されている。ＩＳＡバス１７８には、直列ＥＥＰＲＯＭコントローラ１８０、およびＩＳＡ装置１７２〜１７６が接続されている。直列ＥＥＰＲＯＭコントローラ１８０には、直列ＥＥＰＲＯＭ１８２が接続されている。直列ＥＥＰＲＯＭコントローラ１８０は、直列ＥＥＰＲＯＭ１８２との通信を監視する。ＰＣＩ装置およびＩＳＡ装置は、グラフィックス・アダプタ、モデム、キーボード、コンパクト・ディスク（ＣＤ）、フロッピー・ディスク、ハード・ディスク装置などのいずれかである。当分野で周知のように、ローカル・バス１５０、ＰＣＩバス１６０、およびＩＳＡバス１７８は、それぞれ異なるプロトコルを使用する。特定のバスに接続される装置は、適切なブリッジを使用して他のバス上の装置と通信でき、このブリッジは、変換装置として機能する。例えばローカル・バス１５０に接続されるＣＰＵ１１０は、ホスト・ブリッジ１３０、およびＩＳＡブリッジ１７０を通じて直列ＥＥＰＲＯＭ中のデータにアクセスできる。
【００１１】
本発明は、直列ＥＥＰＲＯＭコントローラ１８０中で実現されている。ここで直列ＥＥＰＲＯＭに使われる「直列（ｓｅｒｉａｌ）」の語は、ＥＥＰＲＯＭの内容が直列に（即ち一時に１ビットずつ）アクセスされることを示し、製造番号（ｓｅｒｉａｌ  ｎｕｍｂｅｒ）とは関係ない。前述のように過去においては、マザーボードの製造番号は、製造時に直列ＥＥＰＲＯＭ１８２の製造番号フィールド１８４に書き込まれた。これによって各マザーボードには、それ独自の製造番号が与えられた。したがってＯＳが交換用マザーボードの製造番号を使用すると、ＯＳは、アプリケーション・ソフトウェアが予期するものとは異なるＵＮＡＭＥを作成する。この場合は、ワークステーション上でアプリケーション・ソフトウェアの実行が妨げられる。
【００１２】
本発明の実施例においては、初期化されてない製造番号を表示するヘッダをもつ番号が、製造時に直列ＥＥＰＲＯＭ１８２の製造番号フィールド１８４に書き込まれる。このヘッダは、１６バイトの製造番号の先頭２バイト中で「Ａ５５Ａ」の文字列で表示できる。ワークステーションの組み立て時に、直列ＥＥＰＲＯＭ１８２の製造番号フィールドにソフトウェアでワークステーションの製造番号が書き込まれ、これによって製造番号が初期化される。製造番号が初期化された後は、ＥＥＰＲＯＭコントローラ１８０は製造番号の変更を許さない。マザーボードが誤動作をする場合は、初期化されてない製造番号をもつマザーボードによって誤動作するマザーボードを交換できる。ＥＥＰＲＯＭコントローラ１８０が初期化されてない製造番号を読み出したときは、コントローラは、製造番号フィールド１８４中の番号の変更を許す。この場合には初期化されてない製造番号は、以前のマザーボードの製造番号に変更でき、ＯＳが引き続き適切なＵＮＡＭＥを作成できるようにする。これにより、ワークステーション上でのアプリケーション・ソフトウェアの実行は、中断なく進む。更に一度初期化された後は、ＥＥＰＲＯＭコントローラは製造番号の変更を許さないので、ワークステーション上で実行される各アプリケーション・ソフトウェアに適切なライセンスが存在することが、ソフトウェア・ベンダに保証される。
【００１３】
初期化されてない番号は、不注意で間違った製造番号に初期化されることもある。そこでワークステーションが、電源が切られて再度投入されるかまたはリブートされるまでは、ＥＥＰＲＯＭコントローラが製造番号の無限数の変更を許す手順を設けることができる。これはユーザ、この場合は作業者に入力された製造番号が正しいか否かを確認させる指示メッセージを出す、サービス・ユーティリティ・ソフトウェアを用いて実現できる。この番号が正しくない場合、作業者は番号を再入力できる。各入力の後でサービス・ユーティリティは、作業者に対して入力した番号をチェックすることを求める。サービス・ユーティリティ・ソフトウェアは、ワークステーションが電源が切られるかリブートされるまで、作業者がこの番号をチェックすることを要求し続ける。ワークステーションが、電源が再び投入されるかまたはリブートされた後は、サービス・ユーティリティ・ソフトウェアを使用した製造番号の変更は、許されない。しかし製造番号は、工場書き込みの製造番号を当初に設定したときと同じ機器を使用する、サービス用修理設備を用いて変更できる。
【００１４】
図２は、マザーボードに電源が投入される度に、直列ＥＥＰＲＯＭコントローラによって実行されるアルゴリズムを示す流れ図である。ステップ２００において、直列ＥＥＰＲＯＭの製造番号フィールド中の製造番号が、直列ＥＥＰＲＯＭコントローラ１８０によって読み出される。ステップ２１０において、読み出された製造番号が、文字列「Ａ５５Ａ」で始まるか否かが判定される。製造番号が文字列「Ａ５５Ａ」で始まってないときは、この製造番号は既に初期化されており、したがって製造番号の変更は許されない（ステップ２２０）。製造番号が文字列「Ａ５５Ａ」で始まるときは、この製造番号は初期化されておらず、変更が許される（ステップ２３０）。このプロセスはステップ２４０で完了する。文字列「Ａ５５Ａ」で始まる製造番号は、いかなるワークステーション、またはシステムにも割り当てられないことに留意されたい。
【００１５】
図３は、直列ＥＥＰＲＯＭコントローラが実行するアルゴリズムと、間違った製造番号が入力された場合に対応するソフトウェア・ユーティリティとの組み合わせを示す流れ図である。ステップ３００において、直列ＥＥＰＲＯＭの製造番号フィールド中の製造番号が、直列ＥＥＰＲＯＭコントローラ１８０によって読み出される。ステップ３１０において、読み出された製造番号が、文字列「Ａ５５Ａ」で始まるか否かが判定される。製造番号が文字列「Ａ５５Ａ」で始まってないときは、この製造番号は既に初期化されており、したがって製造番号の変更は許されない（ステップ３２０）。製造番号が文字列「Ａ５５Ａ」で始まるときは、この製造番号は初期化されておらず、変更が許される（ステップ３３０）。製造番号の入力後、ステップ３４０でこの入力された製造番号が正しいか否か判定される。正しくない場合は、ステップ３３０に戻ってこの製造番号を変更することが許される。この変更が正しい場合は、システムをリブートする必要がある（ステップ３５０）。プロセスは、リブートされた後はステップ３００に戻り、直列ＥＥＰＲＯＭコントローラは再び製造番号を読み出す。今度は、製造番号は文字列「Ａ５５Ａ」で始まらず、変更は許されない。
【００１６】
本発明を特定の実施例を参照して前記で詳しく説明したが、当分野に通常の知識をもつ当業者には、他の代替実施例があることは明白であろう。例えば製造番号は、いかなるＮＶＲＡＭにも保管でき、ＮＶＲＡＭは、内容を保持するために電源を必要としない。更に直列ＥＥＰＲＯＭは、本明細書の記述から逸脱することなく、本システムのいずれのバスにも接続できる。したがって前述の説明は、文頭の特許請求の範囲で定義した本発明の範囲の限定されたものを説明するものとして、理解されたい。
【００１７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００１８】
（１）
マザーボードを有するワークステーションがアプリケーション・ソフトウェアを実行することを可能にする製造番号を前記マザーボードのメモリに保管する装置であって、
（ａ）前記メモリに初期化されてない製造番号を保管する手段と、
（ｂ）前記初期化されてない製造番号を前記製造番号によって置き換えることにより前記初期化されてない製造番号を初期化し、それにより前記ワークステーションが前記アプリケーション・ソフトウェアを実行できるようにする手段と、
（ｃ）前記手段により初期化された製造番号の置き換えを禁止する手段と、
を含む装置。
（２）
前記初期化されてない製造番号がヘッダを用いて表示される、（１）に記載の装置。
（３）
前記ヘッダを有する製造番号のみを置き換えることが許される、（２）に記載の装置。
（４）
前記初期化されてない製造番号を置き換える前記製造番号が、前記ワークステーションがリブートされない限り複数回変更可能である、（２）に記載の装置。
（５）
前記ワークステーションが、前記初期化されてない製造番号が初期化された後、自身がリブートされた場合に動作可能になる、（４）に記載の装置。
（６）
前記メモリがＥＥＰＲＯＭであり、前記製造番号の置き換えを禁止する手段がＥＥＰＲＯＭコントローラである、（４）に記載の装置。
（７）
マザーボードを有するワークステーションがアプリケーション・ソフトウェアを実行することを可能にする製造番号を前記マザーボードのメモリに保管する方法であって、
（ａ）前記メモリに初期化されてない製造番号を保管するステップと、
（ｂ）前記初期化されてない製造番号を前記製造番号によって置き換えることにより前記初期化されてない製造番号を初期化し、それにより前記ワークステーションが前記アプリケーション・ソフトウェアを実行できるようにするステップと、
（ｃ）前記ステップにより初期化された製造番号の置き換えを禁止するステップと、
を含む方法。
（８）
前記初期化されてない製造番号がヘッダを用いて表示される、（７）に記載の方法。
（９）
前記ヘッダを有する製造番号のみを置き換えることが許される、（８）に記載の方法。
（１０）
前記初期化されてない製造番号を置き換える前記製造番号が、前記ワークステーションがリブートされない限り複数回変更可能である、（８）に記載の方法。
（１１）
前記ワークステーションが、前記初期化されてない製造番号が初期化された後、自身がリブートされた場合に動作可能になる、（１０）に記載の方法。
（１２）
前記メモリがＥＥＰＲＯＭであり、前記製造番号の置き換えを禁止するステップがＥＥＰＲＯＭコントローラの使用を含む、（１１）に記載の方法。
（１３）
マザーボードを有するワークステーションがアプリケーション・ソフトウェアを実行することを可能にする製造番号を前記マザーボードのメモリに保管するための、プロセッサが実行でき、メモリに保管されるコンピュータ・プログラムであって、
（ａ）前記マザーボードの前記メモリに初期化されてない製造番号を保管するための、コンピュータが読み出し可能なプログラム・コード手段と、
（ｂ）前記初期化されてない製造番号を前記製造番号によって置き換えることにより前記初期化されてない製造番号を初期化し、それにより前記ワークステーションが前記アプリケーション・ソフトウェアを実行できるようにするコンピュータが読み出し可能なプログラム・コード手段と、
（ｃ）前記手段により初期化された製造番号の置き換えを禁止するコンピュータが読み出し可能なプログラム・コード手段と、
を含むコンピュータ・プログラム。
（１４）
前記初期化されてない製造番号がヘッダを用いて表示される、（１３）に記載のコンピュータ・プログラム。
（１５）
前記ヘッダを有する製造番号のみを置き換えることが許される、（１４）に記載のコンピュータ・プログラム。
（１６）
前記初期化されてない製造番号を置き換える前記製造番号が、前記ワークステーションがリブートされない限り複数回変更可能である、（１４）に記載のコンピュータ・プログラム。
（１７）
前記ワークステーションが、前記初期化されてない製造番号が初期化された後、自身がリブートされた場合に動作可能になる、（１６）に記載のコンピュータ・プログラム。
（１８）
前記マザーボードの前記メモリがＥＥＰＲＯＭであり、前記製造番号の置き換えを禁止する手段がＥＥＰＲＯＭコントローラである、（１７）に記載のコンピュータ・プログラム。
【図面の簡単な説明】
【図１】本発明の好ましい実施例において採用されたコンピュータ・システムのマザーボードを示すブロック図である。
【図２】マザーボードに電源が投入される度に、直列ＥＥＰＲＯＭコントローラが実行するアルゴリズムを示す流れ図である。
【図３】直列ＥＥＰＲＯＭコントローラが実行するアルゴリズムと、正しい製造番号が入力されたか否かを確認するソフトウェア・ユーティリティとの組み合わせを示す流れ図である。
【図１】
0003607049.tif 000002
【図２】
0003607049.tif 000003
【図３】
0003607049.tif 000004