(57)【要約】【課題】コンピュータシステムにおけるプロセッサの変更を、容易かつ効率的及び／または安全に実施する手段を提供する。【解決手段】プロセッサタイプを決定するシステム(100)及び方法(400)である。プロセッサからのリセットベクトルが識別される。リセットベクトルの特徴に応答して、プロセッサのプロセッサタイプが決定される。【選択図】図４
2004326773.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサタイプの決定方法であって、
プロセッサからのリセットベクトルを識別するステップ（４１０）と、
前記リセットベクトルの特徴に応じて、前記プロセッサのプロセッサタイプを決定するステップ（４２０）
とを含む、方法。
【請求項２】
前記リセットベクトルの前記特徴の１つは、アドレスである、請求項１に記載の方法。
【請求項３】
前記識別するステップは、リセット信号（２３０）がディアサートされた後に、前記プロセッサからの最初のデータアクセスのアドレスを取り込むステップを含む、請求項１に記載の方法。
【請求項４】
前記決定するステップは、テーブルデータ構造におけるプロセッサタイプを参照するステップを含む、請求項１に記載の方法。
【請求項５】
前記参照するステップは、前記テーブルデータ構造へのインデックスとして前記リセットベクトルを利用するステップを含む、請求項４に記載の方法。
【請求項６】
複数のファームウェアの組から、前記プロセッサタイプに対応する１組のファームウェアを選択するステップ（４３０）をさらに含む、請求項１に記載の方法。
【請求項７】
前記選択するステップ（４３０）は、前記１組のファームウェアを含むメモリデバイスにチップ選択信号をアサートするステップを含む、請求項６に記載の方法。
【請求項８】
プロセッサからのリセットベクトルを検出する状態マシン（２１０）と、
前記リセットベクトルを複数のプロセッサタイプに関係づける情報を含むプロセッサタイプ識別手段（１４０）
を備える、システム。
【請求項９】
前記情報は、テーブルデータ構造からなる、請求項８に記載のシステム。
【請求項１０】
プロセッサタイプを識別するための複数のハードウェア識別信号（２６０）をさらに備える、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、コンピュータシステムの設計、製造、およびオペレーションに関する。
【背景技術】
【０００２】
コンピュータ業界は、高速化、機能追加、およびそれ以外の改良についてのコンピュータユーザの間での要求を満たすように、新しいタイプのプロセッサおよびプロセッサファミリ内の新しい世代を絶え間なく作成し続けている。コンピュータシステムの製造者達は、このような新しいプロセッサを十分に活用する新しいコンピュータシステムを提供するように挑戦し続けている。
【０００３】
あいにく、プロセッサアーキテクチャはプロセッサごとに異なるので、通常、異なるタイプのプロセッサごとに、それに対応して異なるタイプのソフトウェアが必要となる。例えば、第１のタイプのプロセッサは、通常、第２のタイプのプロセッサ向けに設計されたソフトウェアで動作することもできないし、当該ソフトウェアを実行することもできない。ほとんどのコンピュータシステムに共通の１つの特定のタイプのソフトウェアは、ファームウェア、すなわち初期化ソフトウェアである。プロセッサが「起動」した時点、または、実行を開始した時点から、例えばオペレーティングシステムといったより高レベルのソフトウェアがロードされて、制御を引き受けるまで、通常、ファームウェアが、プロセッサ、および、多くの場合、他の周辺装置を制御する。また、ファームウェアは、オペレーティングシステムが利用するある一定の基本機能または「システムコール」も提供し、それによって、オペレーティングシステムが特定のシステムハードウェアの特徴に依存することを最小にすることができる。ファームウェアは、通常、読み出し専用メモリ、例えば読み出し専用メモリ（ＲＯＭ）デバイスまたは電気的消去可能プログラマブルメモリデバイスに記憶される。時に、ファームウェアの最初の部分だけがこのようなデバイスに記憶され、それ以降の部分は、例えば磁気媒体といった他の記憶デバイスからランダムアクセスメモリ（ＲＡＭ）に読み込まれる。
【０００４】
システムを正常に初期化するために、ファームウェアは、例えばシステムのメモリマップといったシステムのコンフィギュレーションのある一定の側面を認識すべきである。このため、システム製造者は、通常、システム内にファームウェアを設ける。従来から、システム製造者は、システムの組み立て中に、プロセッサまたはプロセッサタイプと、対応するファームウェアとを整合させている。設計効率および生産効率の理由から、コンピュータシステムの製造者は、通常、設計プロセスおよび生産プロセスをできるだけ共通にして、さまざまなタイプのプロセッサをサポートするようにこのようなシステムを設計することになる。
【０００５】
製造後に、コンピュータシステムのプロセッサタイプを変更することが望ましい場合がある。例えば、製造者は、第１のタイプのプロセッサを有するシステムの需要を予想せず、その代わり、第２のタイプのプロセッサを有するシステムを生産してしまうかもしれない。このような場合、既存のシステムの在庫品を、第２のタイプのプロセッサを有するシステムから第１のタイプのプロセッサを有するシステムに変換することが望ましい場合がある。さらに、顧客がプロセッサまたはプロセッサタイプを変更することが望ましい場合がある。
【０００６】
あいにく、プロセッサおよび／またはプロセッサタイプを変更すると、通常、その新しいプロセッサに対応するために、ファームウェアも変更する必要がある。ファームウェアは、通常、プロセッサとは別になっており、例えば、ＲＯＭチップに存在するので、システムのファームウェアを変更するには、システムのプロセッサを取り替えることに加えて、さらに別の労力が必要となる。例えば、場合によっては、ＲＯＭチップを取り替える場合がある。あるいは、ファームウェアを収容したシステムボード全体を取り替える場合がある。このような取り替えは、特に複数のコンピュータをアップグレードする場合に、困難であり、時間を要し、費用がかかり、かつ、エラーを起こしやすくなる可能性があることが理解される。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記の問題に対処しつつプロセッサの変更を容易にする方法および／またはシステムを提供する。
【課題を解決するための手段】
【０００８】
プロセッサタイプ決定システムおよびプロセッサタイプ決定方法が開示される。プロセッサからのリセットベクトルが識別される。このリセットベクトルの特徴に対応して、プロセッサのプロセッサタイプが決定される。
【実施例】
【０００９】
ChhedaおよびChokseyが２００２年６月１３日に出願した同時係属中の米国特許出願第１０／１７１，８７３号「Automatic Selection of Firmware for a Computer that Allows a Plurality of Processor Types」 は、本出願の出願人により所有されるものであり、参照によりその内容全体を本明細書に組み込むものとする。
【００１０】
図１は、コンピュータシステム１００のブロック図を示している。このコンピュータシステム１００は、本発明の一実施形態によると、ファームウェアの取り替えも再プログラミングも行うことなく、プロセッサの変更を可能とする。具体的には、ファームウェアの取り替えも再プログラミングも行うことなく、第１のファームウェアに対応する第１のプロセッサを、第１のファームウェアとは異なる第２のファームウェアに対応する第２のプロセッサと取り替えることができる。
【００１１】
コンピュータシステム１００の代表的な実施形態には、例えば、サーバ、汎用パーソナルコンピュータ（ＰＣ）、ハンドヘルドコンピュータまたはラップトップコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル民生電子機器、ネットワークコンピュータ、移動電話機または「携帯」電話機、パーソナル通信システム（ＰＣＳ）、電子ゲームシステム、個人情報端末（ＰＤＡ）、ミニコンピュータ、メインフレームコンピュータ、および上記計算システムまたはデバイスのいずれか１つまたは２つ以上のものを備える分散コンピューティング環境が含まれるが、これらに限定されるものではない。コンピュータシステム１００は、通常、少なくとも１つのプロセッサ１０２およびシステムメモリ１０４を含む。プロセッサ１０２は、この業界で入手可能な多くの市販のプロセッサのいずれかであってもよい。
【００１２】
コンピュータシステム１００は、さらに追加の特徴および機能を備えることができる。例えば、コンピュータシステム１００は、取り外し可能な記憶装置１０８および取り外し不能な記憶装置１１０も備えることができる。コンピュータ記憶媒体には、情報を記憶するための任意の方法または技術で実施された揮発性の取り外し可能媒体、揮発性の取り外し不能媒体、不揮発性の取り外し可能媒体、および不揮発性の取り外し不能媒体が含まれる。記憶される情報としては、例えば、コンピュータ可読命令、データ構造、プログラムモジュール、またはそれ以外のデータがある。コンピュータ記憶媒体には、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくそれ以外のメモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくはそれ以外の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはそれ以外の磁気記憶デバイス、または、所望の情報を記憶するのに使用でき、かつ、コンピュータシステム１００がアクセスできる他の任意の媒体が含まれるが、これらに限定されるものではない。いずれのかかるコンピュータ記憶媒体もコンピュータシステム１００の一部となり得る。
【００１３】
また、コンピュータ１００は、当該コンピュータが他のコンピュータ／デバイスと通信することを可能にする通信デバイス（１つまたは複数）１１６も含むことができる。コンピュータシステム１００は、入力デバイス（１つまたは複数）１１４を有することもできる。この入力デバイス１１４としては、例えば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどがある。出力デバイス（１つまたは複数）１１２も含めることができる。この出力デバイス１１２としては、例えば、ディスプレイ、スピーカ、プリンタなどがある。
【００１４】
プロセッサ１０２は、バス１５０を介してシステムメモリに機能的に接続され、バス１６０を介して周辺デバイス１０８〜１１６に機能的に接続される。本発明の実施形態は、バス１５０と１６０が同じバス構造である構成だけでなく、バス１５０と１６０が同じでない構成にも好適である。バス１５０、１６０は、通常、アドレス線、データ線、ならびに、例えば「書き込み」または「読み出し」といったデータオペレーションの指示及びデータおよびアドレス信号の正当性を示すさまざまな制御信号、リセット信号を含むそれ以外の制御信号を含む。アドレス線は、例えば６４本であり、データ線は、例えば１６本または３２本である。
【００１５】
システムメモリ１０４は、ファームウェア１  １２０〜ファームウェアＮ  １３０を含む複数のコンピュータ可読媒体を備える。多くのコンピュータシステムでは、例えばＲＯＭ、ＥＥＰＲＯＭ、またはフラッシュメモリチップといった集積回路メモリデバイスに、ファームウェアが記憶される。ファームウェア１  １２０〜ファームウェアＮ  １３０は、対応する固有のファームウェアを利用する、システム１００によりサポートされる複数のプロセッサまたはプロセッサタイプに対応する。例えば、システム１００は、固有のファームウェアを必要とするＮタイプのプロセッサをサポートするように設計される。互換性のある命令セットを実行するプロセッサであっても、プロセッサ間の相違により、固有のファームウェアが必要となり得ることが理解されよう。例えば、互換性のある命令セットを実行する２つのプロセッサが、適切なオペレーションを行うためには、異なる初期値および／または異なるシーケンスの起動命令が必要となることがある。本発明の実施形態は、このような異なるプロセッサに好適である。
【００１６】
ファームウェア１  １２０〜ファームウェアＮ  １３０は、例えばマスクＲＯＭ、ＥＰＲＯＭ、フラッシュＥＥＰＲＯＭなどの既知のタイプの不揮発性メモリデバイスに収容することができる。ファームウェア１  １２０〜ファームウェアＮ  １３０は、１つのメモリデバイスに存在してもよいし、複数のメモリデバイスに存在してもよいことが理解されよう。
【００１７】
以下にさらに詳細に説明するように、プロセッサタイプ識別部１４０が、システム１００に実装されるプロセッサのタイプを識別する。プロセッサタイプ識別部１４０および／またはそれ以外のシステム論理回路は、プロセッサタイプの情報を用いて、プロセッサ１０２が実行するのに適したファームウェア、例えばファームウェア１  １２０またはファームウェアＮ  １３０を決定することができる。
【００１８】
図２は、本発明の一実施形態によるプロセッサタイプ識別部１４０を示している。プロセッサタイプ識別部１４０は、入力として、リセット信号２３０、読み出し／書き込み制御信号２５０、およびアドレスバス２４０を受け取る。通常、これらの信号は、図１のバス１５０の一部である。リセット信号２３０は、既知のいずれのリセット信号のタイプであってもよく、システムパワーオンリセットや、ソフトウェア制御されたリセット信号などが含まれる。このソフトウェア制御されたリセット信号としては、例えばプロセッサ１０２の出力がある。読み出し／書き込み制御信号２５０は、メモリアクセスが読み出しオペレーションであるのか、書き込みオペレーションであるのかを決定するための既知のいずれのタイプの制御信号であってもよい。本発明の実施形態は、「Intel」スタイルのメモリ制御信号および「Motorola」スタイルのメモリ制御信号の双方に好適である。さらに、本発明の実施の形態は、プロセッサ１０２がハーバードタイプアーキテクチャ（Harvard type architecture）の場合にも好適である。この場合、読み出し／書き込み制御信号２５０は、命令空間とデータ空間とを区別する信号をさらに含むことができる。
【００１９】
プロセッサ１０２（図１）がリセットされると、プロセッサは、一連のイベントを開始する。リセット後にプロセッサ１０２が実行する最初の外部に見えるイベントの１つは、「リセットベクトル」を出力することである。リセットベクトルは、通常、特定の第１のメモリアドレスへのフェッチリクエストまたはデータリクエストである。通例、その第１のアドレスのメモリの内容は、第２のメモリアドレスを含む。第２のメモリアドレスのメモリは、リセット後にプロセッサが実行するファームウェアの最初の（外部）命令を収容する。その第１のアドレスのメモリの内容が、リセット後にプロセッサが実行するファームウェアの最初の外部命令を含む場合がある。
【００２０】
再度、図２を参照して、状態マシン２１０が、リセット信号２３０および読み出し／書き込み制御信号２５０を検査することにより、プロセッサ１０２からのリセットベクトルを検出する。例えば、リセット信号２３０のディアサート（非アサート）に続く最初の読み出し信号によって、リセットベクトルを識別することができる。本発明の実施形態によれば、状態マシン２１０は、さまざまなタイプのプロセッサ１０２に対応する信号と他のシステムの実施上の細部との多種多様な組み合わせによってリセットベクトルを検出できることが理解される。
【００２１】
通常、異なるプロセッサおよび異なるプロセッサタイプは、対応する固有のリセットベクトルを出力する。例えば、第１のプロセッサは、「００００００００」のリセットベクトルを出力することができる一方、第２のプロセッサは、「００００１１１１」のリセットベクトルを出力することができる。現代の典型的なプロセッサは、リセットベクトルとして、例えば６４ビットといったより大きなアドレスを出力する。本発明の実施形態は、種々のアドレス幅に好適である。
【００２２】
リセット識別部２２０は、複数のプロセッサ間のリセットベクトルの相違の知識を使用して、プロセッサ識別（ＩＤ）信号２６０を生成する。プロセッサ識別信号２６０は、例えば、サポートするプロセッサタイプごとに専用の信号線を備えることができる。したがって、プロセッサタイプに対応する各信号線をチップ選択信号として使用して、ファームウェア１  １２０〜ファームウェアＮ  １３０の中からファームウェアを選択することができる。プロセッサ識別信号（１つまたは複数）２６０によるプロセッサタイプの他のコード化も、本発明の実施の形態によく適していることが理解される。例えば、２つの信号線を使用して、最大４つのプロセッサタイプを表すことができる。あるいは、プロセッサ識別信号線（１つまたは複数）２６０がシリアル通信を実施すると、限られた数の信号線で多数のプロセッサタイプを伝えることができる。
【００２３】
複数のプロセッサ間のこのようなリセットベクトルの相違を表す代表的な方法を以下の表１に示す。表１は、本発明の一実施形態による代表的なリセットベクトル識別テーブルを示している。
【００２４】
【表１】
2004326773.tif 000003
【００２５】
本発明の一実施の形態によると、プロセッサ１０２から出力されたリセットベクトルの識別情報に応じて、状態マシン２１０は、リセットベクトル値によりインデックスされる表１を参照し、対応するプロセッサ識別値を決定する。例えば、プロセッサ１０２から出力されたリセットベクトルが「００００１１１１」である場合、プロセッサタイプ識別部１４０から出力された値は「Ｎ」となる。
【００２６】
表２は、本発明の別の実施形態による代表的なリセットベクトル識別テーブルを示している。
【００２７】
【表２】
2004326773.tif 000004
【００２８】
本発明の一実施形態によると、プロセッサ１０２から出力されたリセットベクトルの識別情報に応じて、状態マシン２１０は、リセットベクトル値によりインデックスされるた表２を参照し、対応するファームウェアインデックスを決定する。例えば、プロセッサ１０２から出力されたリセットベクトルが「００００１１１１」である場合、ファームウェアインデックスは「Ｎ」となる。ファームウェアインデックス値を使用することにより、プロセッサ１０２（図１）に対応する適切なファームウェアの組（ファームウェアセット）を識別することができる。
【００２９】
代替的には、本発明の一実施形態によると、例えば、以下の表３のように、ファームウェアインデックス値を表内へのインデックスとして使用することにより、例えば開始アドレスといった、メモリ内のファームウェアのロケーション（位置）を参照することができる。表３は、代表的なファームウェアロケーションルックアップテーブルである。
【００３０】
【表３】
2004326773.tif 000005
【００３１】
プロセッサ１０２から出力されたリセットベクトルの識別情報に応じて、状態マシン２１０は、ファームウェアインデックス（リセットベクトル値から決定することができる）によりインデックスされる表３を参照して、対応するファームウェア開始アドレスを決定する。例えば、ファームウェアインデックスが１である場合、対応するファームウェア開始アドレスは「０００１ＦＦ００ｈ」となる。記号「ｈ」は、その数字が１６進数、すなわち１６進数法で表されていることを示す。
【００３２】
以下の表４は、本発明の別の実施形態による代表的なリセットベクトル識別テーブルを示している。
【００３３】
【表４】
2004326773.tif 000006
【００３４】
本発明の一実施形態によると、プロセッサ１０２から出力されたリセットベクトルの識別情報に応じて、状態マシン２１０は、リセットベクトル値によりインデックスされる表４を参照し、対応するファームウェア開始アドレスを決定する。例えば、プロセッサ１０２から出力されたリセットベクトルが「００００１１１１」である場合、プロセッサタイプ識別部１４０から出力された値は「Ｎ番目の」アドレスとなる。
【００３５】
本発明の実施形態は、リセット識別ブロック２２０の他の実施態様にもよく適していることが分かる。例えば、組み合わせ論理回路が、リセットベクトルをプロセッサ識別コードまたはファームウェア開始アドレスに変換してもよい。
【００３６】
リセットベクトル識別テーブルは、通常、不揮発性メモリに記憶される。しかしながら、リセットベクトル識別テーブルは、さまざまな媒体に記憶することができる。例えば、リセットベクトル識別テーブルは、システムチップセットの一部であってもよい。あるいは、リセットベクトル識別テーブルを、ファームウェア１  １２０〜ファームウェアＮ  １３０と同様に、システムメモリ１０４（図１）の既知のアドレスに記憶することもできる。例えば、プロセッサ１０２から出力されたリセットベクトルの識別情報に応じて、状態マシン２１０は、システムメモリに記憶されたリセットベクトル識別テーブルへのメモリアクセスを実行する。次に、プロセッサタイプコードが使用されて、プロセッサ１０２による使用に適したファームウェアが選択される。
【００３７】
有利なことに、リセットベクトル識別テーブル（または前述した他のタイプのテーブル）を、新たなプロセッサタイプおよび／または新たなファームウェアセットを含めるために更新できる。この更新は、リセットベクトル情報とファームウェアセットとの間の対応関係を提供するテーブルに情報を直接追加することにより行うことができ、例えば、表１の行を直接追加することにより行うことができる。
【００３８】
例えばプロセッサ識別信号２６０の出力といったプロセッサタイプの表示を、ファームウェアの選択に加えて、他の目的に使用することができる。例えば、さまざまなプロセッサタイプは、異なる電圧レベルを利用することが最適な場合がある。プロセッサタイプの表示を、特定のプロセッサタイプに対応する電圧レベルの選択に使用することができる。あるいは、さまざまなプロセッサタイプは、異なるバスタイミングを利用することが最適な場合がある。プロセッサタイプの表示を、特定のプロセッサタイプに対応する最適なバスタイミングの選択に使用することができる。さらに、複数のコンピュータシステムを備えるコンピューティング環境の中でプロセッサタイプを自動的に決定して報告することが望ましい場合がある。本発明の実施の形態は、プロセッサタイプ識別情報のこれらの使用およびそれ以外の使用にも好適である。
【００３９】
図３は、本発明の一実施形態による状態マシン２１０によって実施される状態図３００を示している。
【００４０】
状態Ｓ０  ３１０は、状態マシン２１０のリセット状態である。この状態は、状態マシン２１０の起動時に入る状態である。さらに、この状態は、状態マシンが未定義の状態に誤って入った場合に入る状態である。状態遷移３１２が示すように、例えば、図２のリセット信号２３０がアクティブになった時のように、システムがリセットされた時も、状態マシンは、この状態に再度入る。プロセッサ識別信号（１つまたは複数）２６０は、状態３１０では変化すべきではない。例えば、プロセッサ識別信号は、前の値を維持するか、場合によっては、初期値を維持する。
【００４１】
再度、図３を参照して、状態Ｓ１  ３２０は、例えばシステム１００（図１）といったシステムがリセットから抜け出した時に状態遷移３１５によって入る状態である。例えば、システムは、通常、前のアクティブなリセット信号、例えばリセット信号２３０が、アクティブでなくなった時に「リセットから抜け出す」ことになる。状態マシンは、状態Ｓ１  ３２０にいる間、例えばプロセッサ１０２（図１）といったプロセッサからの最初のデータアクセスを待つ。さまざまなプロセッサが、さまざまな方法でリセットベクトルおよびメモリアクセスを実施することが分かる。例えば、いくつかのタイプのプロセッサの場合、リセットベクトルのアクセスは、データアクセスとして取り扱われることができる。他のタイプのプロセッサの場合、リセットベクトルのアクセスは、命令フェッチとして取り扱われることができる。このような相違により、リセットベクトルのさまざまな表示、例えば読み出し／書き込み制御信号２５０（図２）の組み合わせを生じることができる。本発明の実施形態は、このようにリセットベクトルのさまざまな表示にもよく適している。プロセッサ識別信号（１つまたは複数）２６０（図２）は、状態３２０では変化すべきではない。例えば、プロセッサ識別信号は、状態Ｓ０  ３１０からの前の値を維持する。
【００４２】
再度、図３を参照して、状態Ｓ１  ３２０からの２つの出口が存在する。システムリセットに応答して、状態遷移３２５により、状態Ｓ０  ３１０に戻る。リセットベクトルが、状態Ｓ１  ３２０によって認識されると、状態遷移３２６により、状態Ｓ２  ３３０に移る。
【００４３】
状態Ｓ２  ３３０は、システム実行状態である。例えばコンピュータシステム１００（図１）といったシステムが動作している時間の大部分の間、状態マシン３００は、状態Ｓ２  ３３０に存在する。状態Ｓ２  ３３０は、リセットベクトルを認識すると、状態Ｓ１  ３２０から入る状態である。状態Ｓ２  ３３０は、例えばプロセッサが出力したアドレスといったリセットベクトルを利用して、複数のプロセッサタイプの中からそのプロセッサタイプを決定する。例えば、状態Ｓ２  ３３０は、例えば表１といったリセットベクトル識別テーブルテーブル表参照を行い、その特定のリセットベクトルのプロセッサタイプの特徴を識別する。本発明の実施形態によると、状態Ｓ２  ３３０は、他の方法を利用して、複数のプロセッサタイプの中からリセットベクトルに対応するプロセッサタイプを決定できることがわかる。例えば、状態Ｓ２  ３３０は、組み合わせ論理回路を利用して、リセットベクトルをプロセッサ識別コードに変換してもよい。
【００４４】
図３の状態Ｓ２  ３３０は、識別したプロセッサタイプに対応するプロセッサ識別信号（１つまたは複数）２６０（図２）を出力する。状態Ｓ２  ３３０は、プロセッサ識別信号（１つまたは複数）２６０の値を変更する唯一の状態であるべきである。状態遷移３３５は、状態Ｓ２  ３３０からの唯一の出口である。状態遷移３３５は、例えばリセット信号２３０のアクティブなレベルといった、システムリセットに応答して、状態Ｓ２  ３１０へ状態を変化させる。
【００４５】
図３の状態マシン３００は、状態マシンのさまざまな既知の実施によく適している。例えば、状態マシン３００を、例えば集積回路の論理ゲートおよびラッチといった順序論理回路で実施することができる。本発明の実施形態によると、状態マシン３００を、プロセッサのソフトウェア命令を介して実施することもできる。
【００４６】
図４は、本発明の一実施形態によるプロセッサタイプを決定する方法４００を示すフローチャートである。
【００４７】
ブロック４１０では、プロセッサからのリセットベクトルが識別される。リセットベクトルは、通常、プロセッサがあらゆる内部リセット動作を完了した直後にプロセッサによって実行される外部メモリアクセスである。「リセットベクトル」という用語は、時に、プロセッサがあらゆる内部リセット動作を完了した直後に出力されるアドレスを指すのに使用される。リセットベクトルが示すアドレスにおけるメモリ内容は、命令であってもよいし、命令のアドレスであってもよい。一般に、リセット信号がディアサートされた後の最初のメモリアクセスとして、リセットベクトルを識別することができる。メモリアクセスは、通常、メモリ制御信号の特定の組み合わせによって示される。例えば、メモリアクセスを示すのに、読み出し信号をアクティブにすることができる。あるコンピュータシステムでは、読み出し信号を、読み出しオペレーション（読み出し動作）がデータアクセスであるのか、プログラムアクセスであるのかを示す信号と共に利用することができる。本発明の実施形態は、さまざまなリセットベクトルならびにリセットベクトルを識別するさまざまな方法に好適である。
【００４８】
ブロック４２０では、リセットベクトルの特徴が使用されて、リセットベクトルを生成したプロセッサのプロセッサタイプが決定される。そのような特徴の１つは、リセットベクトルの一部としてプロセッサが出力したアドレスである。例えば、異なるタイプのプロセッサは、そのリセットベクトルの一部として異なるアドレスを出力する。例えば、第１のタイプのプロセッサは、そのリセットベクトルの一部として第１のアドレスを出力する一方、第２のタイプのプロセッサは、そのリセットベクトルの一部として第２のアドレスを出力する。第１のアドレスおよび第２のアドレスは異なる。
【００４９】
リセットベクトルを生成したプロセッサのプロセッサタイプを決定するのに使用される１つの代表的な方法が、リセットベクトル識別テーブルである。例えば上記の表１といったリセットベクトル識別テーブルには、リセットベクトルアドレスとプロセッサタイプとの対応関係を列挙することができる。例えば、リセットベクトルは、プロセッサタイプを特定するインデックス、または、その特徴的なリセットベクトルを有するプロセッサタイプに対応したファームウェア開始アドレスを特定するインデックスとして使用することができる。本発明の実施形態は、リセットベクトルを生成したプロセッサのプロセッサタイプを決定する他の方法にもよく適している。例えば、組み合わせ論理回路が、リセットベクトルアドレスに応じたプロセッサタイプを生成してもよい。
【００５０】
オプションとしてのブロック４３０では、複数のファームウェアセットから１セットのファームウェアが選択される。この選択されたファームウェアセットが、プロセッサタイプに対応するものである。この新規な態様では、そのプロセッサ上での実行に適切なファームウェアが選択される。
【００５１】
本発明の実施形態により、製造者は、従来技術のもとで適用可能な方法よりもより簡単な方法で、コンピュータシステムのプロセッサタイプを変更することが可能になる。特定のシステムにどのタイプのプロセッサを実装するかについての決定は、そのプロセッサを実際に実装するまで延期することが有利な場合がある。本発明を利用することにより、製造者達は、プロセッサタイプが変更されるシステムに共通の検査手順を利用することもできる。
【００５２】
また、顧客も、本発明の実施形態から利益を受けることができる。顧客は、改良されたプロセッサアーキテクチャまたは所望の新しい特徴を利用するために、ファームウェアを変更する必要なく、システムのプロセッサを変更することができる。他の状況において、製造者が、特定のプロセッサのサポートを中止した場合に、顧客は、プロセッサを変更することが有益であると考えることがある。あるいは、顧客は、ローエンドのプロセッサを有するコンピュータシステムを購入することがある。顧客の計算ニーズが大きくなるにつれて、顧客は、プロセッサをアップグレードすることによってシステムの能力を向上させることができる。
【００５３】
本発明の実施形態のさらなる利点は、システム管理の領域で見出される。例えば、さまざまな情報技術システムにおいて、システム管理者は、計算資源を決定するために、さまざまなシステムに搭載されたプロセッサのタイプを自動的に監視することができる。
【００５４】
従来技術の下では、プロセッサの識別には、通常、プロセッサの専用ピンおよび／もしくはプロセッササポートチップセットの専用ピン、または、物理的なスイッチ（例えば、デュアルインラインピンスイッチ、すなわちＤＩＰスイッチ）を利用していた。このようなスイッチは、通常、ユーザおよび／または組み立て工が、システムに実装されたプロセッサのタイプを示すために設定していた。このような外部的なコンフィギュレーションは、本発明の実施の形態よりも柔軟性が低く、エラーを起こしやすい。
【００５５】
本発明の実施形態は、プロセッサタイプの決定方法および決定システムを提供する。別の実施形態は、従来のコンピュータシステムの設計技法を補完し、かつ、当該設計技法と互換性があるようにして、上述の必要性を満たす。さらに別の実施形態は、プロセッサタイプの決定に応じて、プロセッサに対応するファームウェアを選択することができる。
【００５６】
以下に、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
１．プロセッサタイプの決定方法であって、
プロセッサからのリセットベクトルを識別するステップと（４１０）、
前記リセットベクトルの特徴に応じて、前記プロセッサのプロセッサタイプを決定するステップ（４２０）、
とを含む、プロセッサタイプの決定方法。
２．前記リセットベクトルの前記特徴の１つは、アドレスである、上項１に記載の方法。
３．前記識別するステップは、リセット信号（２３０）がディアサートされた後に、前記プロセッサからの最初のデータアクセスのアドレスを取り込むステップを含む、上項１に記載の方法。
４．前記決定するステップは、テーブルデータ構造（または表データ構造。以下同じ）のプロセッサタイプを参照するステップを含む、上項１に記載の方法。
５．前記参照するステップは、前記テーブルデータ構造へのインデックスとして前記リセットベクトルを利用するステップを含む、上項４に記載の方法。
６．複数のファームウェアの組から、前記プロセッサタイプに対応する１組のファームウェアを選択するステップ（４３０）をさらに含む、上項１に記載の方法。
７．前記選択するステップ（４３０）は、前記１組のファームウェアを含むメモリデバイスにチップ選択信号をアサートするステップを含む、上項６に記載の方法。
８．プロセッサからのリセットベクトルを検出する状態マシン（２１０）と、
前記リセットベクトルを複数のプロセッサタイプに関係づける情報を含むプロセッサタイプ識別手段（１４０）
を備える、システム。
９．前記情報は、テーブルデータ構造を含む、上項８に記載のシステム。
１０．プロセッサタイプを識別するための複数のハードウェア識別信号（２６０）をさらに備える、上項８に記載のシステム。
【００５７】
以上、本発明の実施形態であるプロセッサタイプの決定について説明した。本発明を特定の実施形態について説明したが、本発明は、そのような実施形態によって限定されるものとして解釈されるべきではなく、特許請求の範囲に従って解釈されるべきである。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施形態によるコンピュータシステムのブロック図である。
【図２】本発明の一実施形態によるプロセッサタイプ識別部を示す。
【図３】本発明の一実施形態による状態マシンによって実施される状態図である。
【図４】本発明の一実施形態によるプロセッサタイプを決定する方法を示すフローチャートである。
【符号の説明】
【００５９】
１０２  プロセッサ
１０４  システムメモリ
１２０  ファームウエア１
１３０  ファームウエアＮ
１４０  プロセッサタイプ識別手段
２１０  状態マシン
【図１】
2004326773.tif 000007
【図２】
2004326773.tif 000008
【図３】
2004326773.tif 000009
【図４】
2004326773.tif 000010