JP2004326773A - プロセッサタイプの決定 - Google Patents
プロセッサタイプの決定 Download PDFInfo
- Publication number
- JP2004326773A JP2004326773A JP2004121853A JP2004121853A JP2004326773A JP 2004326773 A JP2004326773 A JP 2004326773A JP 2004121853 A JP2004121853 A JP 2004121853A JP 2004121853 A JP2004121853 A JP 2004121853A JP 2004326773 A JP2004326773 A JP 2004326773A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- firmware
- reset
- reset vector
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000008859 change Effects 0.000 abstract description 9
- 230000004044 response Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
【課題】コンピュータシステムにおけるプロセッサの変更を、容易かつ効率的及び/または安全に実施する手段を提供する。
【解決手段】プロセッサタイプを決定するシステム(100)及び方法(400)である。プロセッサからのリセットベクトルが識別される。リセットベクトルの特徴に応答して、プロセッサのプロセッサタイプが決定される。
【選択図】図4
【解決手段】プロセッサタイプを決定するシステム(100)及び方法(400)である。プロセッサからのリセットベクトルが識別される。リセットベクトルの特徴に応答して、プロセッサのプロセッサタイプが決定される。
【選択図】図4
Description
本発明の実施の形態は、コンピュータシステムの設計、製造、およびオペレーションに関する。
コンピュータ業界は、高速化、機能追加、およびそれ以外の改良についてのコンピュータユーザの間での要求を満たすように、新しいタイプのプロセッサおよびプロセッサファミリ内の新しい世代を絶え間なく作成し続けている。コンピュータシステムの製造者達は、このような新しいプロセッサを十分に活用する新しいコンピュータシステムを提供するように挑戦し続けている。
あいにく、プロセッサアーキテクチャはプロセッサごとに異なるので、通常、異なるタイプのプロセッサごとに、それに対応して異なるタイプのソフトウェアが必要となる。例えば、第1のタイプのプロセッサは、通常、第2のタイプのプロセッサ向けに設計されたソフトウェアで動作することもできないし、当該ソフトウェアを実行することもできない。ほとんどのコンピュータシステムに共通の1つの特定のタイプのソフトウェアは、ファームウェア、すなわち初期化ソフトウェアである。プロセッサが「起動」した時点、または、実行を開始した時点から、例えばオペレーティングシステムといったより高レベルのソフトウェアがロードされて、制御を引き受けるまで、通常、ファームウェアが、プロセッサ、および、多くの場合、他の周辺装置を制御する。また、ファームウェアは、オペレーティングシステムが利用するある一定の基本機能または「システムコール」も提供し、それによって、オペレーティングシステムが特定のシステムハードウェアの特徴に依存することを最小にすることができる。ファームウェアは、通常、読み出し専用メモリ、例えば読み出し専用メモリ(ROM)デバイスまたは電気的消去可能プログラマブルメモリデバイスに記憶される。時に、ファームウェアの最初の部分だけがこのようなデバイスに記憶され、それ以降の部分は、例えば磁気媒体といった他の記憶デバイスからランダムアクセスメモリ(RAM)に読み込まれる。
システムを正常に初期化するために、ファームウェアは、例えばシステムのメモリマップといったシステムのコンフィギュレーションのある一定の側面を認識すべきである。このため、システム製造者は、通常、システム内にファームウェアを設ける。従来から、システム製造者は、システムの組み立て中に、プロセッサまたはプロセッサタイプと、対応するファームウェアとを整合させている。設計効率および生産効率の理由から、コンピュータシステムの製造者は、通常、設計プロセスおよび生産プロセスをできるだけ共通にして、さまざまなタイプのプロセッサをサポートするようにこのようなシステムを設計することになる。
製造後に、コンピュータシステムのプロセッサタイプを変更することが望ましい場合がある。例えば、製造者は、第1のタイプのプロセッサを有するシステムの需要を予想せず、その代わり、第2のタイプのプロセッサを有するシステムを生産してしまうかもしれない。このような場合、既存のシステムの在庫品を、第2のタイプのプロセッサを有するシステムから第1のタイプのプロセッサを有するシステムに変換することが望ましい場合がある。さらに、顧客がプロセッサまたはプロセッサタイプを変更することが望ましい場合がある。
あいにく、プロセッサおよび/またはプロセッサタイプを変更すると、通常、その新しいプロセッサに対応するために、ファームウェアも変更する必要がある。ファームウェアは、通常、プロセッサとは別になっており、例えば、ROMチップに存在するので、システムのファームウェアを変更するには、システムのプロセッサを取り替えることに加えて、さらに別の労力が必要となる。例えば、場合によっては、ROMチップを取り替える場合がある。あるいは、ファームウェアを収容したシステムボード全体を取り替える場合がある。このような取り替えは、特に複数のコンピュータをアップグレードする場合に、困難であり、時間を要し、費用がかかり、かつ、エラーを起こしやすくなる可能性があることが理解される。
上記の問題に対処しつつプロセッサの変更を容易にする方法および/またはシステムを提供する。
プロセッサタイプ決定システムおよびプロセッサタイプ決定方法が開示される。プロセッサからのリセットベクトルが識別される。このリセットベクトルの特徴に対応して、プロセッサのプロセッサタイプが決定される。
ChhedaおよびChokseyが2002年6月13日に出願した同時係属中の米国特許出願第10/171,873号「Automatic Selection of Firmware for a Computer that Allows a Plurality of Processor Types」 は、本出願の出願人により所有されるものであり、参照によりその内容全体を本明細書に組み込むものとする。
図1は、コンピュータシステム100のブロック図を示している。このコンピュータシステム100は、本発明の一実施形態によると、ファームウェアの取り替えも再プログラミングも行うことなく、プロセッサの変更を可能とする。具体的には、ファームウェアの取り替えも再プログラミングも行うことなく、第1のファームウェアに対応する第1のプロセッサを、第1のファームウェアとは異なる第2のファームウェアに対応する第2のプロセッサと取り替えることができる。
コンピュータシステム100の代表的な実施形態には、例えば、サーバ、汎用パーソナルコンピュータ(PC)、ハンドヘルドコンピュータまたはラップトップコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル民生電子機器、ネットワークコンピュータ、移動電話機または「携帯」電話機、パーソナル通信システム(PCS)、電子ゲームシステム、個人情報端末(PDA)、ミニコンピュータ、メインフレームコンピュータ、および上記計算システムまたはデバイスのいずれか1つまたは2つ以上のものを備える分散コンピューティング環境が含まれるが、これらに限定されるものではない。コンピュータシステム100は、通常、少なくとも1つのプロセッサ102およびシステムメモリ104を含む。プロセッサ102は、この業界で入手可能な多くの市販のプロセッサのいずれかであってもよい。
コンピュータシステム100は、さらに追加の特徴および機能を備えることができる。例えば、コンピュータシステム100は、取り外し可能な記憶装置108および取り外し不能な記憶装置110も備えることができる。コンピュータ記憶媒体には、情報を記憶するための任意の方法または技術で実施された揮発性の取り外し可能媒体、揮発性の取り外し不能媒体、不揮発性の取り外し可能媒体、および不揮発性の取り外し不能媒体が含まれる。記憶される情報としては、例えば、コンピュータ可読命令、データ構造、プログラムモジュール、またはそれ以外のデータがある。コンピュータ記憶媒体には、例えば、RAM、ROM、EEPROM、フラッシュメモリもしくそれ以外のメモリ技術、コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)もしくはそれ以外の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはそれ以外の磁気記憶デバイス、または、所望の情報を記憶するのに使用でき、かつ、コンピュータシステム100がアクセスできる他の任意の媒体が含まれるが、これらに限定されるものではない。いずれのかかるコンピュータ記憶媒体もコンピュータシステム100の一部となり得る。
また、コンピュータ100は、当該コンピュータが他のコンピュータ/デバイスと通信することを可能にする通信デバイス(1つまたは複数)116も含むことができる。コンピュータシステム100は、入力デバイス(1つまたは複数)114を有することもできる。この入力デバイス114としては、例えば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどがある。出力デバイス(1つまたは複数)112も含めることができる。この出力デバイス112としては、例えば、ディスプレイ、スピーカ、プリンタなどがある。
プロセッサ102は、バス150を介してシステムメモリに機能的に接続され、バス160を介して周辺デバイス108〜116に機能的に接続される。本発明の実施形態は、バス150と160が同じバス構造である構成だけでなく、バス150と160が同じでない構成にも好適である。バス150、160は、通常、アドレス線、データ線、ならびに、例えば「書き込み」または「読み出し」といったデータオペレーションの指示及びデータおよびアドレス信号の正当性を示すさまざまな制御信号、リセット信号を含むそれ以外の制御信号を含む。アドレス線は、例えば64本であり、データ線は、例えば16本または32本である。
システムメモリ104は、ファームウェア1 120〜ファームウェアN 130を含む複数のコンピュータ可読媒体を備える。多くのコンピュータシステムでは、例えばROM、EEPROM、またはフラッシュメモリチップといった集積回路メモリデバイスに、ファームウェアが記憶される。ファームウェア1 120〜ファームウェアN 130は、対応する固有のファームウェアを利用する、システム100によりサポートされる複数のプロセッサまたはプロセッサタイプに対応する。例えば、システム100は、固有のファームウェアを必要とするNタイプのプロセッサをサポートするように設計される。互換性のある命令セットを実行するプロセッサであっても、プロセッサ間の相違により、固有のファームウェアが必要となり得ることが理解されよう。例えば、互換性のある命令セットを実行する2つのプロセッサが、適切なオペレーションを行うためには、異なる初期値および/または異なるシーケンスの起動命令が必要となることがある。本発明の実施形態は、このような異なるプロセッサに好適である。
ファームウェア1 120〜ファームウェアN 130は、例えばマスクROM、EPROM、フラッシュEEPROMなどの既知のタイプの不揮発性メモリデバイスに収容することができる。ファームウェア1 120〜ファームウェアN 130は、1つのメモリデバイスに存在してもよいし、複数のメモリデバイスに存在してもよいことが理解されよう。
以下にさらに詳細に説明するように、プロセッサタイプ識別部140が、システム100に実装されるプロセッサのタイプを識別する。プロセッサタイプ識別部140および/またはそれ以外のシステム論理回路は、プロセッサタイプの情報を用いて、プロセッサ102が実行するのに適したファームウェア、例えばファームウェア1 120またはファームウェアN 130を決定することができる。
図2は、本発明の一実施形態によるプロセッサタイプ識別部140を示している。プロセッサタイプ識別部140は、入力として、リセット信号230、読み出し/書き込み制御信号250、およびアドレスバス240を受け取る。通常、これらの信号は、図1のバス150の一部である。リセット信号230は、既知のいずれのリセット信号のタイプであってもよく、システムパワーオンリセットや、ソフトウェア制御されたリセット信号などが含まれる。このソフトウェア制御されたリセット信号としては、例えばプロセッサ102の出力がある。読み出し/書き込み制御信号250は、メモリアクセスが読み出しオペレーションであるのか、書き込みオペレーションであるのかを決定するための既知のいずれのタイプの制御信号であってもよい。本発明の実施形態は、「Intel」スタイルのメモリ制御信号および「Motorola」スタイルのメモリ制御信号の双方に好適である。さらに、本発明の実施の形態は、プロセッサ102がハーバードタイプアーキテクチャ(Harvard type architecture)の場合にも好適である。この場合、読み出し/書き込み制御信号250は、命令空間とデータ空間とを区別する信号をさらに含むことができる。
プロセッサ102(図1)がリセットされると、プロセッサは、一連のイベントを開始する。リセット後にプロセッサ102が実行する最初の外部に見えるイベントの1つは、「リセットベクトル」を出力することである。リセットベクトルは、通常、特定の第1のメモリアドレスへのフェッチリクエストまたはデータリクエストである。通例、その第1のアドレスのメモリの内容は、第2のメモリアドレスを含む。第2のメモリアドレスのメモリは、リセット後にプロセッサが実行するファームウェアの最初の(外部)命令を収容する。その第1のアドレスのメモリの内容が、リセット後にプロセッサが実行するファームウェアの最初の外部命令を含む場合がある。
再度、図2を参照して、状態マシン210が、リセット信号230および読み出し/書き込み制御信号250を検査することにより、プロセッサ102からのリセットベクトルを検出する。例えば、リセット信号230のディアサート(非アサート)に続く最初の読み出し信号によって、リセットベクトルを識別することができる。本発明の実施形態によれば、状態マシン210は、さまざまなタイプのプロセッサ102に対応する信号と他のシステムの実施上の細部との多種多様な組み合わせによってリセットベクトルを検出できることが理解される。
通常、異なるプロセッサおよび異なるプロセッサタイプは、対応する固有のリセットベクトルを出力する。例えば、第1のプロセッサは、「00000000」のリセットベクトルを出力することができる一方、第2のプロセッサは、「00001111」のリセットベクトルを出力することができる。現代の典型的なプロセッサは、リセットベクトルとして、例えば64ビットといったより大きなアドレスを出力する。本発明の実施形態は、種々のアドレス幅に好適である。
リセット識別部220は、複数のプロセッサ間のリセットベクトルの相違の知識を使用して、プロセッサ識別(ID)信号260を生成する。プロセッサ識別信号260は、例えば、サポートするプロセッサタイプごとに専用の信号線を備えることができる。したがって、プロセッサタイプに対応する各信号線をチップ選択信号として使用して、ファームウェア1 120〜ファームウェアN 130の中からファームウェアを選択することができる。プロセッサ識別信号(1つまたは複数)260によるプロセッサタイプの他のコード化も、本発明の実施の形態によく適していることが理解される。例えば、2つの信号線を使用して、最大4つのプロセッサタイプを表すことができる。あるいは、プロセッサ識別信号線(1つまたは複数)260がシリアル通信を実施すると、限られた数の信号線で多数のプロセッサタイプを伝えることができる。
複数のプロセッサ間のこのようなリセットベクトルの相違を表す代表的な方法を以下の表1に示す。表1は、本発明の一実施形態による代表的なリセットベクトル識別テーブルを示している。
本発明の一実施の形態によると、プロセッサ102から出力されたリセットベクトルの識別情報に応じて、状態マシン210は、リセットベクトル値によりインデックスされる表1を参照し、対応するプロセッサ識別値を決定する。例えば、プロセッサ102から出力されたリセットベクトルが「00001111」である場合、プロセッサタイプ識別部140から出力された値は「N」となる。
表2は、本発明の別の実施形態による代表的なリセットベクトル識別テーブルを示している。
本発明の一実施形態によると、プロセッサ102から出力されたリセットベクトルの識別情報に応じて、状態マシン210は、リセットベクトル値によりインデックスされるた表2を参照し、対応するファームウェアインデックスを決定する。例えば、プロセッサ102から出力されたリセットベクトルが「00001111」である場合、ファームウェアインデックスは「N」となる。ファームウェアインデックス値を使用することにより、プロセッサ102(図1)に対応する適切なファームウェアの組(ファームウェアセット)を識別することができる。
代替的には、本発明の一実施形態によると、例えば、以下の表3のように、ファームウェアインデックス値を表内へのインデックスとして使用することにより、例えば開始アドレスといった、メモリ内のファームウェアのロケーション(位置)を参照することができる。表3は、代表的なファームウェアロケーションルックアップテーブルである。
プロセッサ102から出力されたリセットベクトルの識別情報に応じて、状態マシン210は、ファームウェアインデックス(リセットベクトル値から決定することができる)によりインデックスされる表3を参照して、対応するファームウェア開始アドレスを決定する。例えば、ファームウェアインデックスが1である場合、対応するファームウェア開始アドレスは「0001FF00h」となる。記号「h」は、その数字が16進数、すなわち16進数法で表されていることを示す。
以下の表4は、本発明の別の実施形態による代表的なリセットベクトル識別テーブルを示している。
本発明の一実施形態によると、プロセッサ102から出力されたリセットベクトルの識別情報に応じて、状態マシン210は、リセットベクトル値によりインデックスされる表4を参照し、対応するファームウェア開始アドレスを決定する。例えば、プロセッサ102から出力されたリセットベクトルが「00001111」である場合、プロセッサタイプ識別部140から出力された値は「N番目の」アドレスとなる。
本発明の実施形態は、リセット識別ブロック220の他の実施態様にもよく適していることが分かる。例えば、組み合わせ論理回路が、リセットベクトルをプロセッサ識別コードまたはファームウェア開始アドレスに変換してもよい。
リセットベクトル識別テーブルは、通常、不揮発性メモリに記憶される。しかしながら、リセットベクトル識別テーブルは、さまざまな媒体に記憶することができる。例えば、リセットベクトル識別テーブルは、システムチップセットの一部であってもよい。あるいは、リセットベクトル識別テーブルを、ファームウェア1 120〜ファームウェアN 130と同様に、システムメモリ104(図1)の既知のアドレスに記憶することもできる。例えば、プロセッサ102から出力されたリセットベクトルの識別情報に応じて、状態マシン210は、システムメモリに記憶されたリセットベクトル識別テーブルへのメモリアクセスを実行する。次に、プロセッサタイプコードが使用されて、プロセッサ102による使用に適したファームウェアが選択される。
有利なことに、リセットベクトル識別テーブル(または前述した他のタイプのテーブル)を、新たなプロセッサタイプおよび/または新たなファームウェアセットを含めるために更新できる。この更新は、リセットベクトル情報とファームウェアセットとの間の対応関係を提供するテーブルに情報を直接追加することにより行うことができ、例えば、表1の行を直接追加することにより行うことができる。
例えばプロセッサ識別信号260の出力といったプロセッサタイプの表示を、ファームウェアの選択に加えて、他の目的に使用することができる。例えば、さまざまなプロセッサタイプは、異なる電圧レベルを利用することが最適な場合がある。プロセッサタイプの表示を、特定のプロセッサタイプに対応する電圧レベルの選択に使用することができる。あるいは、さまざまなプロセッサタイプは、異なるバスタイミングを利用することが最適な場合がある。プロセッサタイプの表示を、特定のプロセッサタイプに対応する最適なバスタイミングの選択に使用することができる。さらに、複数のコンピュータシステムを備えるコンピューティング環境の中でプロセッサタイプを自動的に決定して報告することが望ましい場合がある。本発明の実施の形態は、プロセッサタイプ識別情報のこれらの使用およびそれ以外の使用にも好適である。
図3は、本発明の一実施形態による状態マシン210によって実施される状態図300を示している。
状態S0 310は、状態マシン210のリセット状態である。この状態は、状態マシン210の起動時に入る状態である。さらに、この状態は、状態マシンが未定義の状態に誤って入った場合に入る状態である。状態遷移312が示すように、例えば、図2のリセット信号230がアクティブになった時のように、システムがリセットされた時も、状態マシンは、この状態に再度入る。プロセッサ識別信号(1つまたは複数)260は、状態310では変化すべきではない。例えば、プロセッサ識別信号は、前の値を維持するか、場合によっては、初期値を維持する。
再度、図3を参照して、状態S1 320は、例えばシステム100(図1)といったシステムがリセットから抜け出した時に状態遷移315によって入る状態である。例えば、システムは、通常、前のアクティブなリセット信号、例えばリセット信号230が、アクティブでなくなった時に「リセットから抜け出す」ことになる。状態マシンは、状態S1 320にいる間、例えばプロセッサ102(図1)といったプロセッサからの最初のデータアクセスを待つ。さまざまなプロセッサが、さまざまな方法でリセットベクトルおよびメモリアクセスを実施することが分かる。例えば、いくつかのタイプのプロセッサの場合、リセットベクトルのアクセスは、データアクセスとして取り扱われることができる。他のタイプのプロセッサの場合、リセットベクトルのアクセスは、命令フェッチとして取り扱われることができる。このような相違により、リセットベクトルのさまざまな表示、例えば読み出し/書き込み制御信号250(図2)の組み合わせを生じることができる。本発明の実施形態は、このようにリセットベクトルのさまざまな表示にもよく適している。プロセッサ識別信号(1つまたは複数)260(図2)は、状態320では変化すべきではない。例えば、プロセッサ識別信号は、状態S0 310からの前の値を維持する。
再度、図3を参照して、状態S1 320からの2つの出口が存在する。システムリセットに応答して、状態遷移325により、状態S0 310に戻る。リセットベクトルが、状態S1 320によって認識されると、状態遷移326により、状態S2 330に移る。
状態S2 330は、システム実行状態である。例えばコンピュータシステム100(図1)といったシステムが動作している時間の大部分の間、状態マシン300は、状態S2 330に存在する。状態S2 330は、リセットベクトルを認識すると、状態S1 320から入る状態である。状態S2 330は、例えばプロセッサが出力したアドレスといったリセットベクトルを利用して、複数のプロセッサタイプの中からそのプロセッサタイプを決定する。例えば、状態S2 330は、例えば表1といったリセットベクトル識別テーブルテーブル表参照を行い、その特定のリセットベクトルのプロセッサタイプの特徴を識別する。本発明の実施形態によると、状態S2 330は、他の方法を利用して、複数のプロセッサタイプの中からリセットベクトルに対応するプロセッサタイプを決定できることがわかる。例えば、状態S2 330は、組み合わせ論理回路を利用して、リセットベクトルをプロセッサ識別コードに変換してもよい。
図3の状態S2 330は、識別したプロセッサタイプに対応するプロセッサ識別信号(1つまたは複数)260(図2)を出力する。状態S2 330は、プロセッサ識別信号(1つまたは複数)260の値を変更する唯一の状態であるべきである。状態遷移335は、状態S2 330からの唯一の出口である。状態遷移335は、例えばリセット信号230のアクティブなレベルといった、システムリセットに応答して、状態S2 310へ状態を変化させる。
図3の状態マシン300は、状態マシンのさまざまな既知の実施によく適している。例えば、状態マシン300を、例えば集積回路の論理ゲートおよびラッチといった順序論理回路で実施することができる。本発明の実施形態によると、状態マシン300を、プロセッサのソフトウェア命令を介して実施することもできる。
図4は、本発明の一実施形態によるプロセッサタイプを決定する方法400を示すフローチャートである。
ブロック410では、プロセッサからのリセットベクトルが識別される。リセットベクトルは、通常、プロセッサがあらゆる内部リセット動作を完了した直後にプロセッサによって実行される外部メモリアクセスである。「リセットベクトル」という用語は、時に、プロセッサがあらゆる内部リセット動作を完了した直後に出力されるアドレスを指すのに使用される。リセットベクトルが示すアドレスにおけるメモリ内容は、命令であってもよいし、命令のアドレスであってもよい。一般に、リセット信号がディアサートされた後の最初のメモリアクセスとして、リセットベクトルを識別することができる。メモリアクセスは、通常、メモリ制御信号の特定の組み合わせによって示される。例えば、メモリアクセスを示すのに、読み出し信号をアクティブにすることができる。あるコンピュータシステムでは、読み出し信号を、読み出しオペレーション(読み出し動作)がデータアクセスであるのか、プログラムアクセスであるのかを示す信号と共に利用することができる。本発明の実施形態は、さまざまなリセットベクトルならびにリセットベクトルを識別するさまざまな方法に好適である。
ブロック420では、リセットベクトルの特徴が使用されて、リセットベクトルを生成したプロセッサのプロセッサタイプが決定される。そのような特徴の1つは、リセットベクトルの一部としてプロセッサが出力したアドレスである。例えば、異なるタイプのプロセッサは、そのリセットベクトルの一部として異なるアドレスを出力する。例えば、第1のタイプのプロセッサは、そのリセットベクトルの一部として第1のアドレスを出力する一方、第2のタイプのプロセッサは、そのリセットベクトルの一部として第2のアドレスを出力する。第1のアドレスおよび第2のアドレスは異なる。
リセットベクトルを生成したプロセッサのプロセッサタイプを決定するのに使用される1つの代表的な方法が、リセットベクトル識別テーブルである。例えば上記の表1といったリセットベクトル識別テーブルには、リセットベクトルアドレスとプロセッサタイプとの対応関係を列挙することができる。例えば、リセットベクトルは、プロセッサタイプを特定するインデックス、または、その特徴的なリセットベクトルを有するプロセッサタイプに対応したファームウェア開始アドレスを特定するインデックスとして使用することができる。本発明の実施形態は、リセットベクトルを生成したプロセッサのプロセッサタイプを決定する他の方法にもよく適している。例えば、組み合わせ論理回路が、リセットベクトルアドレスに応じたプロセッサタイプを生成してもよい。
オプションとしてのブロック430では、複数のファームウェアセットから1セットのファームウェアが選択される。この選択されたファームウェアセットが、プロセッサタイプに対応するものである。この新規な態様では、そのプロセッサ上での実行に適切なファームウェアが選択される。
本発明の実施形態により、製造者は、従来技術のもとで適用可能な方法よりもより簡単な方法で、コンピュータシステムのプロセッサタイプを変更することが可能になる。特定のシステムにどのタイプのプロセッサを実装するかについての決定は、そのプロセッサを実際に実装するまで延期することが有利な場合がある。本発明を利用することにより、製造者達は、プロセッサタイプが変更されるシステムに共通の検査手順を利用することもできる。
また、顧客も、本発明の実施形態から利益を受けることができる。顧客は、改良されたプロセッサアーキテクチャまたは所望の新しい特徴を利用するために、ファームウェアを変更する必要なく、システムのプロセッサを変更することができる。他の状況において、製造者が、特定のプロセッサのサポートを中止した場合に、顧客は、プロセッサを変更することが有益であると考えることがある。あるいは、顧客は、ローエンドのプロセッサを有するコンピュータシステムを購入することがある。顧客の計算ニーズが大きくなるにつれて、顧客は、プロセッサをアップグレードすることによってシステムの能力を向上させることができる。
本発明の実施形態のさらなる利点は、システム管理の領域で見出される。例えば、さまざまな情報技術システムにおいて、システム管理者は、計算資源を決定するために、さまざまなシステムに搭載されたプロセッサのタイプを自動的に監視することができる。
従来技術の下では、プロセッサの識別には、通常、プロセッサの専用ピンおよび/もしくはプロセッササポートチップセットの専用ピン、または、物理的なスイッチ(例えば、デュアルインラインピンスイッチ、すなわちDIPスイッチ)を利用していた。このようなスイッチは、通常、ユーザおよび/または組み立て工が、システムに実装されたプロセッサのタイプを示すために設定していた。このような外部的なコンフィギュレーションは、本発明の実施の形態よりも柔軟性が低く、エラーを起こしやすい。
本発明の実施形態は、プロセッサタイプの決定方法および決定システムを提供する。別の実施形態は、従来のコンピュータシステムの設計技法を補完し、かつ、当該設計技法と互換性があるようにして、上述の必要性を満たす。さらに別の実施形態は、プロセッサタイプの決定に応じて、プロセッサに対応するファームウェアを選択することができる。
以下に、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
1.プロセッサタイプの決定方法であって、
プロセッサからのリセットベクトルを識別するステップと(410)、
前記リセットベクトルの特徴に応じて、前記プロセッサのプロセッサタイプを決定するステップ(420)、
とを含む、プロセッサタイプの決定方法。
2.前記リセットベクトルの前記特徴の1つは、アドレスである、上項1に記載の方法。
3.前記識別するステップは、リセット信号(230)がディアサートされた後に、前記プロセッサからの最初のデータアクセスのアドレスを取り込むステップを含む、上項1に記載の方法。
4.前記決定するステップは、テーブルデータ構造(または表データ構造。以下同じ)のプロセッサタイプを参照するステップを含む、上項1に記載の方法。
5.前記参照するステップは、前記テーブルデータ構造へのインデックスとして前記リセットベクトルを利用するステップを含む、上項4に記載の方法。
6.複数のファームウェアの組から、前記プロセッサタイプに対応する1組のファームウェアを選択するステップ(430)をさらに含む、上項1に記載の方法。
7.前記選択するステップ(430)は、前記1組のファームウェアを含むメモリデバイスにチップ選択信号をアサートするステップを含む、上項6に記載の方法。
8.プロセッサからのリセットベクトルを検出する状態マシン(210)と、
前記リセットベクトルを複数のプロセッサタイプに関係づける情報を含むプロセッサタイプ識別手段(140)
を備える、システム。
9.前記情報は、テーブルデータ構造を含む、上項8に記載のシステム。
10.プロセッサタイプを識別するための複数のハードウェア識別信号(260)をさらに備える、上項8に記載のシステム。
1.プロセッサタイプの決定方法であって、
プロセッサからのリセットベクトルを識別するステップと(410)、
前記リセットベクトルの特徴に応じて、前記プロセッサのプロセッサタイプを決定するステップ(420)、
とを含む、プロセッサタイプの決定方法。
2.前記リセットベクトルの前記特徴の1つは、アドレスである、上項1に記載の方法。
3.前記識別するステップは、リセット信号(230)がディアサートされた後に、前記プロセッサからの最初のデータアクセスのアドレスを取り込むステップを含む、上項1に記載の方法。
4.前記決定するステップは、テーブルデータ構造(または表データ構造。以下同じ)のプロセッサタイプを参照するステップを含む、上項1に記載の方法。
5.前記参照するステップは、前記テーブルデータ構造へのインデックスとして前記リセットベクトルを利用するステップを含む、上項4に記載の方法。
6.複数のファームウェアの組から、前記プロセッサタイプに対応する1組のファームウェアを選択するステップ(430)をさらに含む、上項1に記載の方法。
7.前記選択するステップ(430)は、前記1組のファームウェアを含むメモリデバイスにチップ選択信号をアサートするステップを含む、上項6に記載の方法。
8.プロセッサからのリセットベクトルを検出する状態マシン(210)と、
前記リセットベクトルを複数のプロセッサタイプに関係づける情報を含むプロセッサタイプ識別手段(140)
を備える、システム。
9.前記情報は、テーブルデータ構造を含む、上項8に記載のシステム。
10.プロセッサタイプを識別するための複数のハードウェア識別信号(260)をさらに備える、上項8に記載のシステム。
以上、本発明の実施形態であるプロセッサタイプの決定について説明した。本発明を特定の実施形態について説明したが、本発明は、そのような実施形態によって限定されるものとして解釈されるべきではなく、特許請求の範囲に従って解釈されるべきである。
102 プロセッサ
104 システムメモリ
120 ファームウエア1
130 ファームウエアN
140 プロセッサタイプ識別手段
210 状態マシン
104 システムメモリ
120 ファームウエア1
130 ファームウエアN
140 プロセッサタイプ識別手段
210 状態マシン
Claims (10)
- プロセッサタイプの決定方法であって、
プロセッサからのリセットベクトルを識別するステップ(410)と、
前記リセットベクトルの特徴に応じて、前記プロセッサのプロセッサタイプを決定するステップ(420)
とを含む、方法。 - 前記リセットベクトルの前記特徴の1つは、アドレスである、請求項1に記載の方法。
- 前記識別するステップは、リセット信号(230)がディアサートされた後に、前記プロセッサからの最初のデータアクセスのアドレスを取り込むステップを含む、請求項1に記載の方法。
- 前記決定するステップは、テーブルデータ構造におけるプロセッサタイプを参照するステップを含む、請求項1に記載の方法。
- 前記参照するステップは、前記テーブルデータ構造へのインデックスとして前記リセットベクトルを利用するステップを含む、請求項4に記載の方法。
- 複数のファームウェアの組から、前記プロセッサタイプに対応する1組のファームウェアを選択するステップ(430)をさらに含む、請求項1に記載の方法。
- 前記選択するステップ(430)は、前記1組のファームウェアを含むメモリデバイスにチップ選択信号をアサートするステップを含む、請求項6に記載の方法。
- プロセッサからのリセットベクトルを検出する状態マシン(210)と、
前記リセットベクトルを複数のプロセッサタイプに関係づける情報を含むプロセッサタイプ識別手段(140)
を備える、システム。 - 前記情報は、テーブルデータ構造からなる、請求項8に記載のシステム。
- プロセッサタイプを識別するための複数のハードウェア識別信号(260)をさらに備える、請求項8に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/420,287 US7246222B2 (en) | 2003-04-21 | 2003-04-21 | Processor type determination based on reset vector characteristics |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004326773A true JP2004326773A (ja) | 2004-11-18 |
Family
ID=32298287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004121853A Pending JP2004326773A (ja) | 2003-04-21 | 2004-04-16 | プロセッサタイプの決定 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7246222B2 (ja) |
JP (1) | JP2004326773A (ja) |
GB (1) | GB2400942B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305544B2 (en) * | 2004-12-10 | 2007-12-04 | Intel Corporation | Interleaved boot block to support multiple processor architectures and method of use |
US7734903B2 (en) * | 2005-12-08 | 2010-06-08 | Electronics And Telecommunications Research Institute | Multi-processor system and method for controlling reset and processor ID thereof |
US20090146144A1 (en) * | 2007-12-10 | 2009-06-11 | Broadcom Corporation | Method and system supporting production of a semiconductor device using a plurality of fabrication processes |
US20180275731A1 (en) * | 2017-03-21 | 2018-09-27 | Hewlett Packard Enterprise Development Lp | Processor reset vectors |
EP3963444A4 (en) * | 2019-04-30 | 2022-11-23 | Hewlett-Packard Development Company, L.P. | STARTING PROCESSORS |
JP2023053458A (ja) * | 2021-10-01 | 2023-04-13 | 富士通株式会社 | 制御プログラム、制御方法、及び情報処理装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5388267A (en) | 1991-05-29 | 1995-02-07 | Dell Usa, L.P. | Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity |
US5724527A (en) * | 1995-12-28 | 1998-03-03 | Intel Corporation | Fault-tolerant boot strap mechanism for a multiprocessor system |
US6381693B2 (en) * | 1998-12-31 | 2002-04-30 | Intel Corp. | Arrangements having firmware support for different processor types |
US6353894B1 (en) * | 1999-04-08 | 2002-03-05 | Mitsumi Electric Co., Ltd. | Power management system |
US6704865B1 (en) * | 1999-12-23 | 2004-03-09 | Delphi Technologies, Inc. | Microprocessor conditional deterministic reset vector method |
US6834384B2 (en) * | 2001-03-14 | 2004-12-21 | General Instrument Corporation | Methods and apparatus for upgrading firmware in an embedded system |
US7003656B2 (en) * | 2002-06-13 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Automatic selection of firmware for a computer that allows a plurality of process types |
-
2003
- 2003-04-21 US US10/420,287 patent/US7246222B2/en not_active Expired - Fee Related
-
2004
- 2004-03-31 GB GB0407333A patent/GB2400942B/en not_active Expired - Fee Related
- 2004-04-16 JP JP2004121853A patent/JP2004326773A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB0407333D0 (en) | 2004-05-05 |
US20040210750A1 (en) | 2004-10-21 |
GB2400942A (en) | 2004-10-27 |
US7246222B2 (en) | 2007-07-17 |
GB2400942B (en) | 2005-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7322029B2 (en) | Method and system for recovering program code in a computer system | |
US20040230963A1 (en) | Method for updating firmware in an operating system agnostic manner | |
US7844845B2 (en) | System and method for preventing user O.S. in VMM system from deenergizing device being used by service O.S. | |
US7908469B2 (en) | Method for executing power on self test on a computer system and updating SMBIOS information partially | |
US20150186161A1 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
US11416256B2 (en) | Selectively performing ahead branch prediction based on types of branch instructions | |
CN113544640A (zh) | 分支指令的处理方法、分支预测器及处理器 | |
US7003656B2 (en) | Automatic selection of firmware for a computer that allows a plurality of process types | |
US20060031716A1 (en) | Method of providing a real time solution to error occurred when computer is turned on | |
US8086834B2 (en) | System and method for populating a dedicated system service repository for an information handling system | |
US9189351B2 (en) | Method of obtaining instruction for triggering function | |
US6986035B2 (en) | Modular bios for detecting resources of a system and reporting information about the resources during two separate phases | |
CN112905252A (zh) | 一种服务器bios启动项顺序的排序方法及介质 | |
JP2004326773A (ja) | プロセッサタイプの決定 | |
US20130097340A1 (en) | Usb multi-functions device and method thereof | |
CN113849230A (zh) | 服务器启动方法、装置、电子设备及可读存储介质 | |
US20040243731A1 (en) | Upgrading a memory subsystem | |
US8024362B2 (en) | System and method for erasing and writing desktop management interface data under a linux system | |
US7577831B2 (en) | Relocating of system management interface code within an information handling system | |
US11816058B2 (en) | Method for dynamically modifying PCH PCIE root port where onboard VGA is located | |
US20070011440A1 (en) | Processor and processing method | |
US7103767B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
US20050010746A1 (en) | Method for dynamically building acpi architecture | |
US7240187B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
EP3944174A1 (en) | Methods and processors for performing resource deduction for execution of smart contract |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061025 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061030 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070320 |