(57)【要約】【課題】ファームウェア・メモリや回路基板を交換することなくプロセッサを変更することができるようにすること。【解決手段】プロセッサを含むコンピュータのファームウェア・セレクタが提供される。セレクタは、プロセッサの識別情報を受け取り、その識別に応じて、プロセッサに、プロセッサに対応するファームウェアにアクセスさせる。このセレクタは、コンピュータが複数のファームウェアを記憶しているときに、プロセッサを適切なファームウェアに導くことができるので、このセレクタにより、顧客は、ファームウェア・メモリや回路基板を交換することなくプロセッサを変更することができる。【選択図】図３
2004021990.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを含むコンピュータのファームウェア・セレクタであって、
前記プロセッサの識別情報を受け取り、
前記識別情報に応じて、前記プロセッサによって実行されるファームウェアを選択するように動作するファームウェア・セレクタ。
【請求項２】
前記コンピュータの起動中に前記プロセッサがアドレス指定する記憶場所に、前記ファームウェアをマップするように動作する請求項１に記載のファームウェア・セレクタ。
【請求項３】
プロセッサを含むコンピュータのファームウェア・セレクタであって、
前記プロセッサの識別情報を受け取り、
前記識別情報に応じて、前記コンピュータの起動中に、前記プロセッサに、対応するファームウェアにアクセスさせるように動作するファームウェア・セレクタ。
【請求項４】
前記セレクタは、前記コンピュータ装置の起動中に前記プロセッサがアクセスする記憶場所に、前記ファームウェアをマップするように動作する請求項３に記載のファームウェア・セレクタ。
【請求項５】
対応しないファームウェアを、前記プロセッサがアクセスすることができる他の記憶場所にマップするように動作する請求項４に記載のファームウェア・セレクタ。
【請求項６】
前記ファームウェアが、前記コンピュータの不揮発性メモリに記憶された請求項３に記載のファームウェア・セレクタ。
【請求項７】
選択ファームウェア・アドレス空間と、
識別情報を提供するように動作するプロセッサと、
それぞれのファームウェアを記憶するように動作する複数のファームウェア・メモリと、
前記プロセッサと前記ファームウェア・メモリに結合され、前記プロセッサの識別情報に応じて前記ファームウェアのうちの１つを選択し、前記選択したファームウェアを記憶するファームウェア・メモリを、前記選択ファームウェア・アドレス空間にマップするように動作するファームウェア・セレクタとを含むコンピュータ。
【請求項８】
前記ファームウェア・メモリがそれぞれ、不揮発性メモリを含む請求項７に記載の計算処理装置。
【請求項９】
プロセッサの識別情報を受け取るステップと、
前記識別情報に応じて、前記プロセッサを含むコンピュータの起動中に前記プロセッサが実行するファームウェアを選択するステップとを含む方法。
【請求項１０】
前記ファームウェアを選択するステップが、複数のファームウェアから前記ファームウェアを選択するステップを含む請求項９に記載の方法。
【請求項１１】
プロセッサの識別情報を受け取るステップと、
前記識別情報に応じて、前記プロセッサに、前記プロセッサを含むコンピュータ（２００）用の対応するファームウェアを実行させるステップとを含む方法。
【請求項１２】
選択されたファームウェア・アドレス空間と、
それぞれのファームウェアを記憶するように動作する複数のファームウェア・メモリと、
前記プロセッサと前記ファームウェア・メモリに結合され、前記プロセッサ識別情報に応じて前記ファームウェアのうちの１つを選択し、前記選択したファームウェアを記憶する前記ファームウェア・メモリを、前記選択ファームウェア・アドレス空間にマップするように動作するファームウェア・セレクタとを含むコンピュータを提供するステップと、
前記コンピュータに、識別情報を提供するように動作するプロセッサを組み込むステップと、
前記ファームウェア・セレクタによってプロセッサの識別情報を受け取るステップとを含み、
前記識別情報に応じて、前記プロセッサ識別に対応する前記ファームウェアのうちの１つを選択し、前記選択したファームウェアを記憶する前記ファームウェア・メモリを、前記選択ファームウェア・アドレス空間にマップするファームウェア・セレクタを含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
コンピュータ産業は、前の世代のプロセッサよりも優れた高い速度、追加機能およびその他の改良を提供する新しい世代のプロセッサを作り出し続けている。
【０００２】
【従来の技術】
新しいプロセッサが利用可能になったときに顧客にコンピュータの交換を要求するのではなく、いくつかの異なるプロセッサをもつコンピュータがつくられている。その結果、顧客は、既存のプロセッサを新しいプロセッサと交換するだけで、コンピュータを他のプロセッサに変更することができる。プロセッサの変更は、様々な理由が動機となる。例えば、インテル社によるＩＴＡＮＩＵＭプロセッサ・ファミリやヒューレットパッカード社によるＰＡＲＩＳＣプロセッサ・ファミリなどの２つのプロセッサ・ファミリのどちらからのプロセッサも受け入れることができるサーバ（一種のコンピュータ）がつくられている。改良されたプロセッサ・アーキテクチャを利用するために、顧客がサーバ内のプロセッサを変更することが望ましいことがある。その他、顧客は、メーカーが特定のプロセッサのサポートを中止したときにプロセッサの変更しなければならないことがある。あるいは、メーカーは、最初に、顧客に下位のプロセッサを備えたサーバを販売することがある。顧客は、顧客の計算処理の需要が高まったとき、サーバのプロセッサをアップグレードすることによってサーバの性能を高めたいことがある。
【０００３】
一般にプロセッサごとにプロセッサ・アーキテクチャが異なるので、各プロセッサは、プロセッサ自身のファームウェアを必要とする。「ファームウェア」という用語は、本明細書、特許請求の範囲および図面の全体を通じて、電源が投入（以降、「起動」）されたときから主オペレーティング・システムがコンピュータを管理するまでコンピュータを制御するコードおよびデータ構造を含むソフトウェアを意味する。ファームウェアの役割は、ハードウェア構成を決定すること、ハードウェアを検査し初期設定すること、オペレーティング・システムをロードすること、ハードウェアまたはソフトウェアに障害が起きた場合に対話式デバッグ機能を提供すること、ならびにオペレーティング・システムの実行時サービスを含む。ＩＥＥＥ規格１２７５−１９９４、ＳＴＡＮＤＡＲＤ　ｆｏｒ　Ｂｏｏｔ　Ｆｉｒｍｗａｒｅ　（Ｉｎｉｔｉａｌｉｚａｔｉｏｎ　Ｃｏｎｆｉｇｕｒａｔｉｏｎ）（ｒｅｖ．２．１）「ＩＥＥＥ　Ｓｔａｎｄａｒｄ　Ｄｉｃｔｉｏｎａｒｙ　ｏｆ　Ｅｌｅｃｔｒｉｃａｌ　ａｎｄ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｔｅｒｍｓ　４１１　」（１９９６年第６版）を参照されたい。ファームウェアは、プラットフォームに固有のソフトウェア、コードおよびデータ構造を含むことがある。
【０００４】
ファームウェアの実行中にプロセッサが実行するタスクの１つは、そのプロセッサ自体および／またはディスク・ドライブやその他のバス・インタフェースなどのハードウェア周辺装置を構成することである。プロセッサはタイプによって異なるアーキテクチャを有し、したがって異なる構成要件を有するので、一般に、プロセッサのタイプごとに異なるファームウェアを必要とする。その結果、プロセッサをアップグレードすることに関する問題は、一般にファームウェアも変更しなければならないことである。ファームウェアは、一般に、プロセッサとは別のメモリ・チップ上に常駐しているので、ユーザは、このチップを交換するか、チップがある基板を交換することによって、ファームウェアを変更することが多い。そのような交換は、特に複数のコンピュータをアップグレードするときには、顧客にとって難しくて、時間がかかり、かつ／または高価なことがある。
【０００５】
図１は、従来のコンピュータ１００の概略ブロック図である。コンピュータ１００の例には、サーバ、汎用パーソナル・コンピュータ（ＰＣ）、ハンドヘルドまたはラップトップ・コンピュータ、マルチプロセッサ・システム、マイクロプロセッサ・システム、プログラム可能な家庭用電化製品、ネットワーク・コンピュータ、パーソナル通信システム（ＰＣＳ）、携帯情報端末（ＰＤＡ）、ミニコンピュータ、メインフレーム・コンピュータ、ならびに以上の計算処理システムまたは装置のうちの１つまたは複数を含む分散計算処理環境があるが、これらに限定されない。基本構成（点線１０６で表した）において、コンピュータ１００は、一般に、少なくとも１つのプロセッサ１０２とシステム・メモリ１０４を含む。プロセッサ１０２は、コンピュータ１００の主な処理機能と制御機能であり、当業界で入手可能な多くの市販プロセッサのどれでもよい。システム・メモリ１０４は、コンピュータ１００の構成により、揮発性メモリ１２０（ＲＡＭなど）、不揮発性メモリ１２２（ＲＯＭ、フラッシュ・メモリなど）、またはこの２つのメモリ・タイプの組み合せを含むことができる。
【０００６】
コンピュータ１００は、また、追加の特徴および機能を有する高度な構成を有することができる。例えば、コンピュータ１００は、磁気または光学ディスクまたはテープを含むがこれらに限定されない追加記憶機構（取外し式および／または非取外し式）を含む。そのような追加記憶機構は、図１に、取外し式記憶機構１０８と非取外し式記憶機構１１０によって示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、その他のデータのような情報を記憶するために任意の方法または技術で実現される揮発性と不揮発性の取外し式と非取外し式の媒体を含む。システム・メモリ１０４、取外し式記憶機構１０８、および非取外し式記憶機構１１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）またはその他の光学記憶機構、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいは所望の情報を記憶するために利用できかつコンピュータ１００がアクセスすることができる他の媒体を含むがこれらに限定されない。そのようなコンピュータ記憶媒体は、コンピュータ１００の一部でもよい。
【０００７】
コンピュータ１００は、また、コンピュータが他のコンピュータ／装置と通信できるようにする通信接続１１２を含むことができる。コンピュータ１００は、また、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置１１４を備えることがある。表示装置、スピーカ、プリンタなどの出力装置１１６が含まれることがある。これらの装置はすべて、当該技術分野において周知であり、考察しない。前述のように、システム・メモリ１０４は、一般に、不揮発性フラッシュ・メモリ１２２などの、プロセッサ１０２用のファームウェア１２４を記憶する不揮発性メモリを含む。フラッシュ・メモリ１２２は、電子的に消去し再プログラムすることができ、したがってアップグレードに都合のよいＥＥＰＲＯＭなどの任意のタイプの不揮発性読み出し／書き込みメモリでよい。
【０００８】
コンピュータ１００の起動中に、プロセッサ１０２は、フラッシュ・メモリ１２４に記憶されたファームウェアを実行する。ファームウェア１２４の実行中に、プロセッサ１０２は、プロセッサ・ユニット１０２、チップセット、メモリなどのコンピュータ１００の構成要素を初期設定し検査する。
【０００９】
【発明が解決しようとする課題】
残念ながら、顧客がプロセッサ１０２を他のアーキテクチャに変更するとき、一般に、顧客は、ファームウェア１２４を含む不揮発性メモリ１２２、あるいは不揮発性メモリ１２２を搭載した回路基板（図示せず）を交換しなければならない。
【００１０】
【課題を解決するための手段】
本発明の１つの実施形態において、プロセッサを含むコンピュータのファームウェア・セレクタが提供される。セレクタは、プロセッサの識別情報を受け取り、その識別に応じて、プロセッサに、プロセッサに対応するファームウェアにアクセスさせる。
【００１１】
このセレクタは、コンピュータが複数のファームウェアを記憶しているときに、プロセッサを適切なファームウェアに導くことができるので、このセレクタにより、顧客は、ファームウェア・メモリや回路基板を交換することなくプロセッサを変更することができる。
【００１２】
本発明の以上その他の様々な他の特徴および利点は、以下の詳細な説明と関連した図面を検討することにより明らかになるであろう。
【００１３】
新規であると考えられる本発明の構成は、併記の特許請求の範囲と関連して詳細に説明する。本発明は、さらに他の目的および利点と共に、添付図面と関連して行われる以下の詳細を参照することによって最もよく理解することができ、そのいくつかの図面において、類似の参照番号は類似の要素を示す。
【００１４】
【発明の実施の形態】
本発明の例示的な実施形態の以下の詳細な説明において、本発明の一部分を構成する添付図面を参照する。詳細な説明と図面は、本発明を実施することができる特定の例示的な実施形態を示す。これらの実施形態は、当業者が本発明を実施することができるように十分に詳細に示される。本発明の趣旨および範囲から逸脱することなく、他の実施形態を利用することができ、他の変更を行うことができることを理解されたい。したがって、以下の詳細な説明は、限定の意味に取られるべきでなく、本発明の範囲は、併記の特許請求の範囲によってのみ定義される。
【００１５】
明細書と特許請求の範囲の全体にわたって、以下の用語は、文脈において特に指定されない限り、本明細書において明示的に対応付けられた意味をとる。「接続された」という用語は、中間装置を何もなしに接続された物の間の直接的な電気接続を意味する。「結合された」という用語は、接続されている物の間の直接的な電気接続と、１つまたは複数の受動的または能動的な中間装置を介した間接的な接続のいずれかを意味する。「回路」という用語は、所望の機能を実現するために互いに協力するように構成された１つまたは複数の受動的および／または能動的な構成要素を意味する。「信号」という用語は、少なくとも１つの電流信号、電圧信号、またはデータ信号を意味する。図面の参照において、すべての図面に渡って同じ番号は同じ部分を指す。さらに、単数の内容は、特に断りのない限りまた本明細書の開示と矛盾しない限り複数の内容を含む。
【００１６】
図２は、本発明の実施形態によりファームウェア・メモリを交換したり再プログラムしたりすることなくプロセッサを変更できるようにするコンピュータ２００の概略ブロック図である。図１のコンピュータ１００とコンピュータ２００の共通部分は、同じ番号で示されている。コンピュータ２００は、ファームウェア・セレクタ２０２と、不揮発性メモリ１２２の一部分を構成する複数のファームウェア・メモリ１（１３２）〜Ｎ（１３８）とを含む。各ファームウェアは、特定のタイプのプロセッサ１０２に適しておりかつ対応する。代替として、１つの不揮発性メモリ装置に複数のファームウェアを記憶することができる。ファームウェア・セレクタ２０２の構造は、図３と関連して後でさらに詳しく説明する。
【００１７】
プロセッサ１０２は、セレクタ２０２に識別情報を提供し、その識別によって、プロセッサは、不揮発性メモリ１〜Ｎ（１３２〜１３８）のうちの１つに記憶された適切でかつ対応するファームウェアを実行する。識別情報は、プロセッサのアーキテクチャ、メーカー、系列などの特性を識別する１ビットまたは複数ビットの値である。コンピュータ２００の起動時に、プロセッサ１０２は、その識別情報をファームウェア・セレクタ２０２に提供する。ファームウェア・セレクタ２０２は、その識別情報に応じて、プロセッサ１０２のために、プロセッサに適切でかつ対応するファームウェアを記憶するメモリ１〜Ｎを選択する。プロセッサ１０２が変更された場合、ファームウェア・セレクタ２０２は、コンピュータの再起動時に、新しいプロセッサに適切でかつ対応するファームウェアを記憶する対応するメモリ１〜Ｎ（１３２〜１３８）を自動的に選択する。
【００１８】
図３は、プロセッサ１０２、ファームウェア・セレクタ２０２、ならびに２つのファームウェア・メモリ１および２を含む、図２のコンピュータ２００の一部分の概略ブロック図である。ファームウェア・セレクタ２０２は、ファームウェア・メモリ１および２へのアクセスを可能するイネーブル・ロジック２１０と、コンピュータ２００の適切なアドレス空間にファームウェア・メモリをマップするための第１および第２のアドレス・デコーダ２３２および２３４とを含む。具体的には、コンピュータ２００は、コンピュータを起動するときにプロセッサ１０２が所定のアドレス空間（選択されたファームウェア・アドレス）からの命令を実行するように設計されている。したがって、より詳細に後で検討するように、デコーダ２３２および２３４は、プロセッサ１０２に適切でかつ対応するファームウェアを記憶するファームウェア・メモリをこのアドレス空間にマップし、他のファームウェア・メモリを他のアドレス空間にマップする。
【００１９】
さらに図３を参照して、ファームウェア・セレクタ２０２の動作を考察する。コンピュータ２００が起動シーケンスを開始するとき、プロセッサ１０２が、セレクタ２０２に識別情報を提供する。セレクタ２０２は、この識別情報に基づいて、プロセッサ１０２が実行すべきファームウェアを決定し選択する。例示のため、プロセッサ１０２が、ファームウェア・メモリ１に記憶されたファームウェアを実行すべきであると仮定する。
【００２０】
次に、アドレス・デコーダ２３２は、ファームウェア・メモリ１を、選択ファームウェア・アドレス空間にマップし、デコーダ２３４は、ファームウェア・メモリ２を、非選択ファームウェア用の別の非選択ファームウェア・アドレス空間にマップする。
【００２１】
次に、プロセッサ１０２は、ファームウェア・メモリ１に記憶されたファームウェアをロードし実行し始める。具体的には、プロセッサ１０２は、選択ファームウェア・アドレス空間の最初のデータ・フェッチであるリセット・アドレスをメモリ・アドレス２４０上に書き込む。イネーブル・ロジック２１０とデコーダ２３２は、このアドレスを認識し、ファームウェア・メモリ１をイネーブルし、それにより、ファームウェアの最初の命令がデータ・バス（図示せず）に入れられる。さらに、ロジック２１０とデコーダ２３４が、ファームウェア・メモリ２をディスエーブルする。プロセッサ１０２は、データバスから命令をロードし、その命令を実行する。プロセッサ１０２、イネーブル・ロジック２１０、ならびにデコーダ２３２および２３４は、プロセッサがファームウェア・メモリ１に記憶されたファームウェアを実行し終わるまで、このシーケンスを繰り返す。
【００２２】
コンピュータ２００が、起動シーケンスを終了し、オペレーティング・システムが制御権を得た後、コンピュータ２００は、それぞれのアドレス空間にアクセスすることによって、ファームウェア・メモリ１および２に記憶されたファームウェアを変更することができる。例えば、メモリ１内のファームウェアを変更するとき、コンピュータ２００は、プロセッサ１０２に、所望の新しいコードを、選択ファームウェア・アドレス空間に書き込ませる。同様に、メモリ２内のファームウェアを変更するとき、コンピュータ２００は、プロセッサ１０２に、所望の新しいコードを、デコーダ２３４がファームウェア・メモリ２をマップした非選択ファームウェア・アドレス（図示せず）空間に書き込ませる。
【００２３】
さらに図３を参照して、プロセッサ１０２のアーキテクチャを変更するファームウェア・セレクタ２０２の動作を考察する。新しいプロセッサは、ファームウェア・メモリ２に記憶されたファームウェアに対応し実行するように設計されている。コンピュータ２００が、変更後の最初の起動シーケンスを開始するとき、新しいプロセッサ１０２は、セレクタ２０２に識別情報を提供する。セレクタ２０２は、この識別情報に基づいて、新しいプロセッサ１０２が、ファームウェア・メモリ２に記憶されたファームウェアを実行すべきであることを判断する。次に、アドレス・デコーダ２３４が、ファームウェア・メモリ２を選択ファームウェア中のアドレス空間にマップし、デコーダ２３２が、ファームウェア・メモリ１を非選択ファームウェア用の別のアドレス空間にマップする。次に、プロセッサ１０２は、ファームウェア・メモリ２に記憶されたファームウェアをロードし実行し始める。具体的には、プロセッサ１０２は、選択ファームウェア・アドレス空間の最初のデータ・フェッチであるリセット・アドレスを、メモリ・アドレス２４０上に書き込む。イネーブル・ロジック２１０とデコーダ２３４は、このアドレスを認識し、ファームウェア・メモリ２をイネーブルし、それによりファームウェアの最初の命令がデータバス（図示せず）に送られる。さらに、ロジック２１０とデコーダ２３２は、ファームウェア・メモリ１をディスエーブルする。プロセッサ１０２は、データバスから命令をロードし、その命令を実行する。プロセッサ１０２、イネーブル・ロジック２１０、ならびにデコーダ２３２および２３４は、プロセッサがファームウェア・メモリ２に記憶されたファームウェアを実行し終わるまで、このシーケンスを繰り返す。
【００２４】
コンピュータ２００が、起動シーケンスを終了して、プロセッサ・アーキテクチャが変更された後で、コンピュータ２００は、それぞれのアドレス空間にアクセスすることによって、ファームウェア・メモリ１および２に記憶されたファームウェアを変更することができる。例えば、メモリ２内のファームウェアを変更するとき、コンピュータ２００は、プロセッサ１０２に、所望の新しいコードを選択ファームウェア・アドレス空間に書き込ませる。これと同様に、メモリ１内のファームウェアを変更するとき、コンピュータ２００は、プロセッサ１０２に、所望の新しいコードを、デコーダ２３２がファームウェア・メモリ１をマップした非選択ファームウェア・アドレス空間に書き込ませる。
【００２５】
したがって、このようなファームウェア・セレクタ２０２によって、コンピュータ２００は、ファームウェア・メモリを再プログラムしたり交換したり、メモリが取り付けられた回路基板（図示せず）を交換したりすることなしに、プロセッサ１０２をアップグレードしたり変更したりすることができる。
【００２６】
コンピュータ２００の他の実施形態が意図されている。例えば、コンピュータ２００は、図３と関連して、２つのファームウェア・メモリを有するように説明されているが、コンピュータは、コンピュータが図２に示したような３つ以上の異なるタイプのプロセッサをサポートできるようにする３つ以上のファームウェア・メモリを有することができる。さらに、ファームウェア・セレクタ２０２が、イネーブル・ロジック２１０ならびにアドレス・デコーダ２３２および２３４を有するように考察したが、セレクタは、セレクタが図３と関連して前に考察した方式と同じかまたは類似の方式で動作できるようにする任意の他のアーキテクチャを有することができる。さらに、使用されていないファームウェア・メモリをアドレス空間にマップするように説明したが、セレクタ２０２は、使用されていないファームウェア・メモリをアクセスできないようにディスエーブルするだけでもよい。
【図面の簡単な説明】
【図１】従来のコンピュータの概略ブロック図。
【図２】本発明の実施形態によるファームウェア・セレクタを含む計算処理装置の概略ブロック図。
【図３】本発明の実施形態による図２のファームウェア・セレクタ、ファームウェア・メモリおよびプロセッサの概略ブロック図。
【符号の説明】
１０２　プロセッサ
１３２，１３８　ファームウェア・メモリ
２００　コンピュータ
２０２　ファームウェア・セレクタ
２４０　記憶場所
【図１】
2004021990.tif 000003
【図２】
2004021990.tif 000004
【図３】
2004021990.tif 000005