JP4263690B2 - システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法 - Google Patents

システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法 Download PDF

Info

Publication number
JP4263690B2
JP4263690B2 JP2004511998A JP2004511998A JP4263690B2 JP 4263690 B2 JP4263690 B2 JP 4263690B2 JP 2004511998 A JP2004511998 A JP 2004511998A JP 2004511998 A JP2004511998 A JP 2004511998A JP 4263690 B2 JP4263690 B2 JP 4263690B2
Authority
JP
Japan
Prior art keywords
processor
health status
register
pal
copy
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.)
Expired - Fee Related
Application number
JP2004511998A
Other languages
English (en)
Other versions
JP2005529406A (ja
Inventor
シェリング,トッド
Original Assignee
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2005529406A publication Critical patent/JP2005529406A/ja
Application granted granted Critical
Publication of JP4263690B2 publication Critical patent/JP4263690B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

発明の詳細な説明
[技術分野]
本発明は、一般にマイクロプロセッサシステムに関し、より詳細にはフィールドアップグレード可能なファームウェアによるマルチプロセッサ処理が可能なマイクロプロセッサシステムに関する。
[背景]
マイクロプロセッサシステム内部のプロセッサは、セルフテストの実行及びリセットイベントに続く処理の起動を行うファームフェアに依存するかもしれない。マルチプロセッサシステムでは、同一の一般的なプロセッサファミリーに属するプロセッサでさえ、プロセッサスピード、ステッピングレベル、アーキテクチャ変更及び他の多くのパラメータにより互いに異なるかもしれない。このため、ファームウェアは、一般的なプロセッサファミリーに属する1つのプロセッサグループにそれぞれ固有の複数のモジュールを含んでいるかもしれない。
さらに、このようなファームウェアモジュールに対しフィールドアップグレードを実行する理由があるかもしれない。フラッシュメモリや他のフィールドアップグレード可能なメモリは、初期的には初期ファームウェアモジュールを有し、以降において、これらのモジュールはアップデートされたファームウェアモジュールにより上書きすることができる。しかしながら、フラッシュメモリに書き込みが行われたために、当該フラッシュメモリが損傷する可能性がある。ファームウェアのアップデートを制御するファームウェア自体が損傷すると、当該システムのフィールドリカバリーが不可能となるかもしれない。このような場合、システムは、このフラッシュメモリを損傷のないファームウェアを有する新たなフラッシュメモリモジュールと物理的に交換するため、メーカーに返却する必要があるかもしれない。
[詳細な説明]
以下において、マルチプロセッサシステムにおけるプロセッサの選択及び初期化を行うための技術が説明される。以下の説明では、本発明の完全なる理解を提供するため、論理実現形態、ソフトウェアモジュール割当て、バス信号処理技術などの多くの具体的詳細と動作の詳細が与えられる。しかしながら、本発明がそのような具体的詳細なく実現可能であるということは当業者には理解可能であろう。他の点では、本発明を不明瞭にすることを回避するため、制御構造、ゲートレベルの回路及び完全なソフトウェア指示シーケンスは示されていない。与えられる説明により、当業者は、過度の実験を行うことなく適切な機能を実現することができる。本発明は、マイクロプロセッサ内部のハードウェアの形式により開示される。しかしながら、本発明は、デジタル信号プロセッサ、ミニコンあるいはメインフレームコンピュータなどの他の形式のプロセッサにより実現されてもよい。同様に、本発明は、プロセッサ間の信号処理方法として、プロセッサ間における割込みを用いて開示される。しかしながら、本発明は、他の形式の信号処理を用いて実現されてもよい。
一実施例では、マルチプロセッサ内の良好なプロセッサの選択及び初期化は、各プロセッサが自身の処理に必要なファームウェアをチェックすることにより開始される。その後、各プロセッサは、自らのプロセッサのヘルスステータス(health status)を判断する。その後、ある判定方法により、すべてのプロセッサのヘルスステータスを収集する一時的なマスタプロセッサが選ばれ、利用可能なものの中で最高のプロセッサヘルスステータスを有するプロセッサグループが決定される。その後、この一時的なマスタプロセッサは、当該グループに属するプロセッサがブート処理を続けることを可能にし、実行を中断するか、あるいは当該グループに属さないプロセッサ(必要に応じて、マスタプロセッサ自身を含む)を不可とする。
図1を参照するに、一実施例によるシステムハードウェアコンポーネントの概略図が示される。中央演算ユニットCPU A110、CPU B114、CPU C118及びCPU D122の複数のプロセッサが示される。他の実施例では、プロセッサは1つのみかもしれないし、2つのプロセッサ、あるいは5以上のプロセッサが存在するかもしれない。一実施例では、これらのプロセッサは、インテル(登録商標)アイテニアム(Itanium)プロセッサファミリーと互換性を有するものであってもよい。CPU A110、CPU B114、CPU C118及びCPU D122などのプロセッサは、それぞれ図示されるIRR112、116、120及び124などの1以上の割込み要求レジスタ(IRR)を有するようにしてもよい。CPU A110などのプロセッサに送信される典型的な割込みは、当該割込みの実行に必要とされるメモリ位置を一般的に記述するベクトルを含む値のIRR112への書き込みなどである。CPU A110は、割込みの実行をイネーブルまたはイネーブル解除するかもしれない。割込みの実行がイネーブル解除されると、IRR112は依然としてベクトルを受け付けるが、CPU A110は当該割込みの実行を自動的には行わないようになる。しかしながら、CPU A110は、IRR112に含まれるベクトルを依然として読み出すようにしてもよい。割込み処理のイネーブル解除によるこのような動作は、しばしば「呼び出しモード(polled mode)」と呼ばれる。さらに、各プロセッサは、LIDという一意的なIDを有する。このLIDは、システムバス上の当該プロセッサの一意的なアドレスとして用いられる。割込みは、既知のLIDを有するプロセッサに向けられる。このLID値は、CPU A110、CPU B114、CPU C118及びCPU D122のそれぞれのLIDレジスタ102、104、106及び108などのLIDレジスタに保持されてもよい。他の実施例では、LID値は、レジスタ以外の他の回路要素に保持されてもよい。
プロセッサCPU A110、CPU B114、CPU C118及びCPU D122は、システムバス130を介し互いに、そしてチップセット134と接続される。システムバス130とチップセット134を介した接続により、プロセッサは、システムRAM(Random Access Memory)136、BIOS(Basic Input Output System)フラッシュメモリ138、グラフィックス140のためコントローラや各種プログラム記憶装置などの様々な入出力(I/O)装置へのアクセスが可能となる。このようなプログラム記憶装置には、システム固定ディスク144や着脱可能なメディア146のためのドライブが含まれるかもしれない。様々な実施例において、着脱可能なメディア146のドライブには、磁気テープ、着脱可能な磁気ディスク、ディスケット、光電ディスク、あるいはCD−ROM(Compact Disk−Read Only Memory)やDVD−ROM(Digital Versatile Disk−Read Only Memory)などの光ディスクなどがあげられる。I/O装置は、AGP(Advanced Graphics Port)142などの専用インタフェース、あるいは、PCI(Peripheral Component Interconnect)バス(図示せず)、USB(Universal Serial Bus)(図示せず)、IDE(Integrated Drive Electronics)バス148などの汎用インタフェースを介して、チップセット134に接続されてもよい。追加的なI/O装置としては、ローカルエリアネットワーク(LAN)150やワイドエリアネットワーク(WAN)152への接続が含まれるかもしれない。他の実施例では、他の多くのインタフェースが利用されてもよい。
コンピュータシステム100は、そのアーキテクチャ内部の何れかにハードウェアセマフォレジスタを有する。ハードウェアセマフォレジスタは、リセットイベント後の最初の読み出しに関する値と、この最初の読み出し後に読み出される以降の読み出しに関する他の値を返すレジスタとして定義されるかもしれない。一実施例では、チップセット134は、ハードウェアセマフォレジスタの具体的な一例であるBOFL(Boot Flag)レジスタ154を有するようにしてもよい。BOFLレジスタ154は、システムの初期化中に用いられ、CPU A110、CPU B114、CPU C118及びCPU D122の中のどのプロセッサが一時的なマスタプロセッサとして動作するか決定する。一実施例では、BOFLレジスタ154は、リセットイベント後の最初の読み出しに関する値と、以降の読み出しにおける他の値を返すかもしれない。他の実施例では、リセットイベント後にプロセッサがBOFLレジスタ154を読み出すたびに、異なる番号が所定のシーケンスで与えられる。すなわち、BOFLレジスタ154を最初に読み出すプロセッサはゼロの値を受け取る。BOFLレジスタ154の以降の読み出しは、非ゼロの値を返す。マスタプロセッサは、BOFLレジスタ154から連続的にゼロの値を読み出すプロセッサである。
一実施例では、オペレーティングシステムがシステム固定ディスク144上にインストールされ、当該オペレーティングシステムのカーネルがシステムRAM136にロードされるようにしてもよい。他の実施例では、オペレーティングシステムは、LAN150またはWAN152を介してロードまたは実行されてもよい。
図2を参照するに、一実施例によるメモリ内のソフトウェアコンポーネントを示す図が示される。一実施例では、BIOSコンポーネントは、図1のBIOSフラッシュメモリ138の内部に備えられるよう図示されているが、他の実施例では、BIOSコンポーネントは他の形態の不揮発性メモリまたは揮発性メモリに備えられていてもよい。ソフトウェアコンポーネントが不揮発性メモリに備えられるとき、それらはファームウェアと呼ばれるかもしれない。
BIOSは、PAL(Processor Abstraction Layer)ファームウェアなどの一般にプロセッサに関するモジュールや、SAL(System Abstraction Layer)などの一般に非プロセッサシステムに関するモジュールを有するかもしれない。異なるプロセッサは、部分的にプロセッサの改訂レベルの違いにより、異なるPALファームウェアの改訂レベルあるいはタイプを必要とするかもしれない。システム内部のPALやSALファームウェアのバージョンをアップデートし、このアップデートされたバージョンに対応するようフラッシュメモリを修正することが効果的であるかもしれない。
しかしながら、フラッシュメモリ内のBIOSのアップデートを行うときには、重大な問題が発生する可能性がある。1つの単純な例として、電力がアップデート処理中に切れると、当該フラッシュメモリには、フラッシュメモリへの書き込みを制御するBIOS部分を含むBIOSの損傷したコピーが含まれる可能性がある。この場合、正しいコードを有する新たなフラッシュメモリを接合する以外の修理方法はない。このような問題の発生頻度を下げるため、一実施例では、PALコードとSALコードは分割されるかもしれない。PALコードは、PAL−Aと呼ばれるシステム初期化に最小限必要とされるPALの一部と、PAL−Bと呼ばれる残りのコードとに分割されるかもしれない。さらに、PAL−Aは、プロセッサに依存しない(PAL−Aジェネリック)ベーシックPAL−Aと、与えられたプロセッサの改訂レベルに固有な(PAL−Aスペシフィック)PAL−Aコードにさらに分割される。PAL−Aジェネリックはプロセッサに依存しないため、アップデートの必要はなく、アップデート処理がイネーブル解除されているフラッシュメモリの領域に配置されていてもよい。同様に、SALもまた、フラッシュメモリのアップデート処理を含むシステムの初期化あるいはリカバリー処理に最低限必要なSALの部分であるSAL−AとSAL−Bとに分割されてもよい。SAL−Aはさらに、以降においてアップデートされることのないベーシックSAL−A(SAL−Aジェネリック)と、経時的にアップデートの必要のあるSAL−A(SAL−Aスペシフィック)にさらに分割される。アップデート処理中の損傷から保護するため、一実施例では、PAL−AジェネリックとSAL−Aジェネリックは、フラッシュメモリの変更が許可されていないプロテクト部分に配置されてもよい。
システムの有用性と信頼性を向上させるため、PAL−AスペシフィックとSAL−Aスペシフィックは、複数のコピーで行われてもよい。システムが、便宜上、タイプ1プロセッサ及びタイプ2プロセッサとラベル付けされた2つの改訂レベルのプロセッサを有する場合を考える。他の実施例では、さらなる改訂レベルの追加的なプロセッサがあってもよい。図2の実施例では、PAL−Aジェネリック220は1つコピーであるが、タイプ1プロセッサのためのPAL−Aスペシフィックは2つのコピー(プライマリPAL−Aスペシフィックタイプ1(230)とセカンダリPAL−Aスペシフィックタイプ1(240))が与えられている。同様に、タイプ2プロセッサのためのPAL−Aスペシフィックは2つのコピー(プライマリPAL−Aスペシフィック2(232)とセカンダリPAL−Aスペシフィックタイプ2(242))が与えられている。また、SAL−Aジェネリック222は1つのコピーが与えられ、SAL−Aスペシフィックには2つのコピー、すなわち、プライマリSAL−Aスペシフィック246とセカンダリSAL−Aスペシフィック260が与えられる。他の実施例では、フラッシュメモリ内のファームウェアのさらなるコピーとタイプが与えられてもよい。一実施例では、これらのコピーは全く同一のものであってもよいし、あるいは他の実施例では、これらのコピーは同様の機能を有してはいるが、全く同じものでなくともよい。
例えば、タイプ1のプロセッサはリセットイベントに続いて実行を開始するとき、PAL−Aジェネリック220内のリセットベクトルと呼ばれる所定の位置から実行を開始する。PAL−Aジェネリック220を実行するプロセッサは、プライマリファームウェアインタフェーステーブル(FIT)224あるいはセカンダリFIT234を用いて、他のコードモジュールの位置を検出する。PAL−Aジェネリック220コードは、固定された位置にあるベクトル、プライマリFITポインタ210とセカンダリFITポインタ212により、プライマリFIT224とセカンダリFIT234のエントリポイントを認識する。プロセッサ上で実行するPAL−Aジェネリック220は、これらのFITポインタを用いてFITを位置決定し、その後当該FITを用いてその他のソフトウェアモジュールを位置決定及び有効とするようにしてもよい。例えば、タイプ1プロセッサは、プライマリFITポインタ210を用いて、プライマリFIT224の位置を検出するかもしれない。その後、タイプ1プロセッサは、プライマリFIT224内の位置、サイズ、チェックサム(checksum)及び他のパラメータを用いて、プライマリPAL−Aスペシフィックタイプ1(230)を位置決定及びチェックするようにしてもよい。タイプ1プロセッサがプライマリPAL−Aスペシフィックタイプ1(230)の位置決定または有効とすることができない場合、セカンダリFITポインタ211及びセカンダリFIT234を用いて、セカンダリPAL−Aスペシフィックタイプ1(240)の位置決定及びチェックするようにしてもよい。
タイプ1プロセッサがプライマリPAL−Aスペシフィックタイプ1(230)またはセカンダリPAL−Aスペシフィックタイプ1(240)を位置決定及び有効とする場合、タイプ1プロセッサは、SAL−Aの位置決定及びチェックを行おうとするかもしれない。PAL−Aジェネリック220は、プライマリPAL−Aスペシフィックタイプ1(230)とセカンダリPAL−Aスペシフィックタイプ1(240)との何れかのエントリポイントを決定し、その実行を開始する。そして、プライマリPAL−Aスペシフィックタイプ1(230)とセカンダリPAL−Aスペシフィックタイプ1(240)の何れかが、SAL−Aジェネリック222のエントリポイントを決定し、制御を引き渡し、次にこのSAL−Aによりそれ自身及びプライマリSAL−Aスペシフィック246またはセカンダリSAL−Aスペシフィック260の有効にする。一実施例では、タイプ1プロセッサは、プライマリFITポインタ210とプライマリFIT224を用いて、プライマリSAL−Aスペシフィック246の位置決定及びチェックを行う。タイプ1プロセッサはプライマリSAL−Aスペシフィック246の位置決定及び有効とすることができない場合、タイプ1プロセッサは、セカンダリFITポインタ212とセカンダリFIT234を用いて、セカンダリSAL−Aスペシフィック260の位置決定及びチェックを行うようにしてもよい。
初期化あるいはリカバリーに必要とされるPAL及びSALの当該部分の位置決定及び有効化が行われた後、プロセッサ上で実行するSAL−Aジェネリック222は、当該プロセッサに関するプロセッサヘルスステータスを決定するようにしてもよい。ヘルスステータスの計算は、チェックサムなどを含む各種ファームウェア有効チェックや、SAL−Aジェネリック222への制御の引き渡し中にPAL−Aスペシフィックにより与えられるハンドオフステータスコードに基づき、SAL−Aジェネリック222により実行されてもよい。このプロセッサヘルスステータスはまた、どのファームウェアコンポーネントの組み合わせが満足いくヘルスステータスを有すると決定されるかに基づきランク付けされてもよい。一実施例では、プロセッサヘルスステータスは、プライマリPAL−AスペシフィックとプライマリSAL−Aスペシフィックの1つのコピーが検出及び有効とされる場合、より上位となるよう決定されるようにしてもよい。セカンダリPAL−AスペシフィックとセカンダリSAL−Aスペシフィックの1つのコピーが検出及び有効とされる場合、やや下位のプロセッサヘルスステータスが決定されるようにしてもよい。プライマリPAL−AスペシフィックとセカンダリSAL−Aスペシフィックの1つのコピーのみ、あるいはセカンダリPAL−AスペシフィックとプライマリSAL−Aスペシフィックが検出及び有効とされる場合、さらに低いプロセッサヘルスステータスが決定されるようにしてもよい。最後に、PAL−AスペシフィックまたはSAL−Aスペシフィックの何れのコピーも検出及び有効とすることができない場合、最下位または「致命的」プロセッサヘルスステータスが決定されるようにしてもよい。
図3を参照するに、本発明の一実施例によるコンポーネント間のメッセージ処理図が示される。一実施例では、各メッセージはプロセッサ間割り込み(IPI)において搬送される。プロセッサのセルフテストを開始させるリセットイベントの後、プロセッサは割り込みをイネーブル解除する。割り込みがプロセッサによりイネーブル解除されるか、あるいはプロセッサが「呼び出し」割り込みモードにあるとき、IPIの当該プロセッサへの送信は、ベクトルの当該プロセッサのIRRへの書き込みを行わせるかもしれない。この場合、プロセッサのIRR内に置かれているベクトルは、メッセージ送信者のLID、該当するヘルス値あるいは他のデータを表すものであるかもしれない。他の実施例では、専用ハードウェアプロセッサ間信号などのメッセージを送る他の手段や、特殊信号をデータバス上に多重化する手段が利用されてもよい。図3の実施例では、CPU A302、CPU B304及びCPU C306の3つのプロセッサが示されているが、他の実施例では、それ以上あるいはそれ以下のプロセッサが当該プロセスに用いられてもよい。リセットイベント後、これら3つのプロセッサ、CPU A302、CPU B304及びCPU C306の各々がセルフテストを行う。一実施例では、このセルフテストには、図2に関して説明されたプロセッサヘルスステータスの決定が含まれていてもよい。各プロセッサにより自身のプロセッサヘルスステータスが決定されると、利用可能なものの中で最高のプロセッサヘルスステータスを有するプロセッサのみがブート処理の継続を許されることが望ましいかもしれない。他の実施例では、パフォーマンス要件により、許容可能なプロセッサヘルスステータスを有する最大グループがブート処理の継続を許されることが望ましいかもしれない。
図3の例では、3つすべてのプロセッサが致命的なプロセッサヘルスステータスであると判断する。各プロセッサはまず、当該プロセッサがマスタであると仮定し、自らにマスタLIDを割り当てる。このステップは、チェックインベクトル通信が失われていないということを確認するのに必要とされる。その後、各プロセッサは、この決定の後にチップセット308のBOFLレジスタ310を読み出す。本例ではCPU B304である、自らのプロセッサヘルスステータスを判断する第1のプロセッサは、リセットイベントの後、BOFLレジスタ310から第1のBOFLレジスタの読み出し312を行う。これにより、CPU B304がマスタとなり、プロセッサ間通信の識別子としてマスタLIDの使用を継続する。この例では、CPU A302が自身のプロセッサヘルスステータスを決定する第2のプロセッサであり、第2のBOFLレジスタの読み出し314を行う。これにより、CPU A302は、スレーブとなり、プロセッサ間通信のための識別子として一意的な非マスタLID(スレーブ1LID)を使用する。最後に、本例では、CPU C306が、自身のプロセッサヘルスステータスを決定する第3のプロセッサであり、第3のBOFLレジスタの読み出し316を行う。これにより、CPU C306は、スレーブとなり、プロセッサ間通信のための識別子として一意的な非マスタLID(スレーブ2LID)を使用する。
プロセッサは、自らがスレーブであると判断すると、一意的なスレーブLIDを計算し、自身のLIDを表すメッセージのチェックを所定のマスタLIDを使用しているプロセッサに送信する。一実施例では、一意的なスレーブLIDは、PALからSALにわたされる位置的に一意的な識別子を用いることにより計算されてもよい。一実施例では、PALは、物理的プロセッサパッケージの1以上のピンから読み出された値からこれらの識別子を判断するようにしてもよい。図3の例では、CPU A302とCPU C306は、それぞれメッセージ320と322における自身のチェックをCPU B304に送信する。一実施例では、CPU B304は、メッセージでチェックを送信したプロセッサに対応するヘルスリクエストメッセージを有するメッセージのチェックの受信に即座に応答する。他の実施例では、CPU B304は、ヘルスリクエストメッセージによる応答前に、メッセージのすべてのチェックを受信するのに所定時間待機するようにしてもよい。図3の例では、CPU B304は、ヘルスリクエストメッセージ330と332をそれぞれCPU A302とCPU C306に送信する。その後、CPU A302とCPU C306は、それぞれヘルスレスポンスメッセージ340と342により自身のプロセッサヘルスステータスのコピーをCPU B304に送信する。他の実施例では、この実際のヘルスステータスが、個々のヘルスステータス値と所定の関係を有するベクトルと交換されてもよい。
本例ではCPU B304であるマスタLIDを有するプロセッサが応答したすべてのプロセッサのプロセッサヘルスステータスを受け取ると、CPU B304は、利用可能なものの中で最上位のプロセッサヘルスステータスを決定する。当該グループに共通のプロセッサヘルスステータスは、グループヘルスステータスと呼ばれる。パフォーマンスが問題とされる他の実施例では、その代わりに、決定されたプロセッサのグループが、許容されるプロセッサヘルスステータスを有する最大数のプロセッサからなるグループとされてもよい。何れの実施例においても、本例ではCPU B304である、マスタLIDを有するプロセッサは、その後、リリースセマフォメッセージ(release semaphore message)をすべてのスレーブプロセッサと自身に対し送信する。このリリースセマフォには、グループヘルスステータスのコピーが含まれていてもよい。他の実施例では、実際のグループヘルスステータスが、グループヘルスステータスとの所定の関係を有するベクトルと交換されてもよい。
図3の例では、CPU B304は、リリースセマフォ350をCPU A302に、リリースセマフォ352をCPU C306に、リリースセマフォ354を自らに送信する。その後、各プロセッサは、対応するリリースセマフォにより表されるグループヘルスステータスと自らのプロセッサヘルスステータスと比較する。これが一致すると、当該プロセッサはブート処理を継続する。しかしながら、一致していない場合、当該プロセッサは停止またはアクティブ解除となり、ブート処理を継続しない。
図4を参照するに、本開示の一実施例によるフローチャートは、ローカルなプロセッサヘルスステータスの導出を示す。他の実施例では、ファームウェアの他のテスト、ハードウェアのテストあるいはそれらの組み合わせが、他の形態のローカルプロセッサヘルスステータスの生成のため実行されてもよい。ブロック410において図4のプロセスが開始されると、PALがリセットイベント直後に制御を取得し、ブロック412において、PALハンドオフステータスを計算し、SALによる利用のためこれをレジスタに格納する。その後、PALは、制御をSALにハンドオフする。PALは、当該PALが現在のプロセッサと互換的であるか、あるいはプロセッサが十分機能的であるかの決定を含むリカバリーチェックへのエントリに応じて、このハンドオフステータスを提供してもよい。その後ブロック414において、SALは、以前に格納したPALハンドオフステータスをチェックする。このPALハンドオフステータスは、合成的なローカルヘルスを計算するためSALにより実行される追加的テストと共に利用される。PALハンドオフステータスは、複数の可能なエラーに関する情報を伝達するようにしてもよい。一実施例では、このような可能なエラーは、ファームウェアのプライマリコピーを利用する通常処理、ファームウェアのセカンダリコピーを利用するフェイルオーバ(failover)処理、非冗長または非重要ファームウェアコンポーネントの欠陥、及び致命的欠陥、の4つのステータスカテゴリのグループに相関関係がある。
その後ブロック418において、プライマリFITポインタとセカンダリFITポインタの境界チェックが実行されてもよい。これは、潜在的にシステムハングを引き起こす可能性のあるメモリアドレススペース内のプロテクトまたはリザーブされた領域への偶発的なアクセスを回避するのに必要であるかもしれない。ブロック422において、チェックサムテストがプライマリFITとセカンダリFITに対して実行される。このテストにより返されるチェックサムは、損傷したコードの実行の回避、あるいは損傷したフラッシュテーブルの検索の回避に利用されるかもしれない。その後ブロック426において、プライマリFITとセカンダリFITがチェックされ、対応するプライマリSAL−AスペシフィックとセカンダリSAL−Aスペシフィックがそれぞれ存在するか判断される。このテストは、必要なSAL−Aテストをサポートする適切なファームウェアの存在を確認するためのものである。その後ブロック430において、チェックサムテストが、ブロック426において検出されたSAL−Aスペシフィックのコピーに対して実行される。これらのテストにより返されるチェックサムは、損傷したコードの実行の回避、あるいは損傷したフラッシュテーブルの検索の回避に、再び利用されてもよい。
ブロック434において、以前のブロックの結果を用いて、合成されたローカルプロセッサヘルスステータスが生成される。一実施例では、5つのレベルのプロセッサヘルスステータスが導かれる。他の実施例では、他のレベルのプロセッサヘルスステータスが導かれてもよい。有効なプライマリPAL−Aスペシフィックと有効なプライマリSAL−Aスペシフィックが検出される場合、最上位のプロセッサヘルスステータスが決定される。有効なセカンダリPAL−Aスペシフィックと有効なセカンダリSAL−Aスペシフィックのみが検出される場合、最上位から2番目のプロセッサヘルスステータスが決定される。有効なプライマリPAL−Aスペシフィックと有効なセカンダリSAL−Aスペシフィックのみが検出される場合、最上位から3番目のプロセッサヘルスステータスが決定される。有効なセカンダリPAL−Aスペシフィックと有効なプライマリSAL−Aスペシフィックのみが検出される場合、最上位から4番目のプロセッサヘルスステータスが決定される。最後に、PAL−AとSAL−Aの有効な組み合わせが検出できず、また他の重大なエラー状態を有すると判断される場合、ワーストなプロセッサヘルスステータスが決定される。
図5を参照するに、本開示の一実施例によるフローチャートは、良好なプロセッサの選択及び初期化を示す。システム内の各プロセッサは、図5のプロセスを実行する。ブロック510において、当該プロセスはリセットイベントに応じて開始される。ローカルプロセッサヘルスステータスが決定されると、プロセッサは、以降のチェックインイベントが損なわれないことを確実にするため、自らにマスタLID値を割り当てる。その後ブロック514において、プロセッサはBOFLレジスタを読み出す。その後ブロック518の判定で、プロセッサは、BOFLから読み出された値に基づき、自身がマスタプロセッサとなったか判断する。マスタプロセッサになっていると判断すると、当該プロセスはYESパスを介して判定ブロック518を抜け出し、プロセッサはタイムアウト期間でチェックを開始する。判定ブロック522において、プロセッサは、このタイムアウト期間が終了しているか判断する。終了していない場合、当該プロセスはNOパスを介し判定ブロック522を抜け出し、ブロック526において、プロセッサは存在すれば、メッセージのチェックを受け取る。プロセッサは、メッセージのチェックの送り手に対応するLIDを決定する。ブロック530において、プロセッサは、ヘルスリクエストメッセージを対応するスレーブプロセッサに送信することにより、ブロック526で検出されたメッセージの任意のチェックに応答する。その後、プロセッサは、判定ブロック522に戻る。タイムアウト期間が終了すると、プロセスはYESパスを介し判定ブロック522を抜け出す。ブロック534において、プロセッサは、グループヘルスステータスを決定し、このグループヘルスステータスを含むメッセージを、受信したメッセージのチェックから特定されるすべてのLIDに送信する。その後判定ブロック538において、プロセッサは、当該グループヘルスステーつが自身のプロセッサヘルスステータスに一致しているか判断する。一致する場合、当該プロセスはYESパスを介して判定ブロック538を抜け出し、ブロック540において、プロセッサはブート処理を継続する。他方、一致していない場合、当該プロセスはNOパスを介して判定ブロック538を抜け出し、ブロック544において、プロセッサは停止するか、あるいはアクティブ解除となる。
他方、判定ブロック518において、プロセッサが自身がスレーブプロセッサであると判断すると、NOパスを介して判定ブロック518を抜け出す。その後、当該プロセッサは自身に一意的なスレーブLIDを割り当てる。その後ブロック550において、プロセッサは、自らのLID値を表すメッセージのチェックをマスタLIDを有するプロセッサに送信する。その後ブロック554において、プロセッサは、対応するヘルスリクエストメッセージを待機及び受信する。その後ブロック558において、プロセッサは、ヘルスレスポンスメッセージおいて自身のプロセッサヘルスステータスを送信する。ブロック560において、プロセッサは、リリースセマフォメッセージを待機及び受信する。その後判定ブロック562において、グループヘルスステータスは自身のプロセッサヘルスステータスに一致するか判断する。一致する場合、当該プロセスはYESパスを介し判定ブロック562を抜け出し、ブロック566において、プロセッサはブート処理を継続する。他方、一致しない場合、プロセスはNOパスを介し判定ブロック562を抜け出し、ブロック544において、プロセッサは停止するか、あるいはアクティブ解除となる。
以上、特定の実施例を参照して、本発明が説明された。しかしながら、添付されたクレームに与えられるような本発明のより広範な趣旨及び範囲から逸脱することなく、様々な変形及び変更が可能であるということは明らかであろう。このため、明細書及び図面は、限定的でなく例示的なものとみなされるべきである。
図1は、一実施例によるシステムハードウェアコンポーネントの概略図である。 図2は、一実施例によるメモリ内のソフトウェアコンポーネントを示す図である。 図3は、本開示の一実施例によるコンポーネント間のメッセージ処理図である。 図4は、本開示の一実施例によるローカルプロセッサヘルスステータスの導出を示すフローチャートである。 図5は、本開示の一実施例による良好なプロセッサの選択及び初期化を示すフローチャートである。

Claims (18)

  1. 第1プロセッサヘルスステータスを決定するよう構成される第1プロセッサと、
    前記第1プロセッサに接続され、第2プロセッサヘルスステータスを決定するよう構成される第2プロセッサと、
    前記第1及び第2プロセッサに接続されるハードウェアセマフォレジスタと、
    から構成され、
    前記第1プロセッサ及び前記第2プロセッサの一方又は双方が、ブート処理を試行するよう構成され
    前記第1プロセッサと前記第2プロセッサは共に、前記第1プロセッサヘルスステータスが前記第2プロセッサヘルスステータスに等しいとき、システムブート処理の制御を共有するよう構成されるシステム。
  2. 請求項1記載のシステムであって、
    前記第1プロセッサは、前記第2プロセッサの前に前記第1プロセッサが前記ハードウェアセマフォレジスタから読み出しを行う場合、前記第1プロセッサヘルスステータスと前記第2プロセッサヘルスステータスを用いて、グループヘルスステータスを決定することを特徴とするシステム。
  3. 請求項2記載のシステムであって、
    前記第1プロセッサは、前記グループヘルスステータスを含むリリースメッセージを前記第2プロセッサに送信することを特徴とするシステム。
  4. 請求項3記載のシステムであって、
    前記グループヘルスステータスが前記第2プロセッサヘルスステータスに一致する場合、前記第2プロセッサはブート処理を継続することを特徴とするシステム。
  5. 請求項3記載のシステムであって、
    前記第1プロセッサは前記ハードウェアセマフォレジスタから第1値を読み出し、前記第2プロセッサは前記ハードウェアセマフォレジスタから第2値を読み出すことを特徴とするシステム。
  6. 請求項5記載のシステムであって、
    前記第1プロセッサは、第1プロセッサ割り込みリクエストレジスタを有し、
    前記第2プロセッサは、第2プロセッサ割り込みリクエストレジスタを有し、
    前記第2プロセッサは、前記第2プロセッサヘルスステータスを前記第1プロセッサ割り込みリクエストレジスタに送信することを特徴とするシステム。
  7. 請求項6記載のシステムであって、
    前記第1プロセッサは、前記グループヘルスステータスを前記第2プロセッサ割り込みリクエストレジスタに送信することを特徴とするシステム。
  8. 第1プロセッサヘルスステータスを決定するステップと、
    第2プロセッサヘルスステータスを決定するステップと、
    前記第1プロセッサヘルスステータスが前記第2プロセッサヘルスステータスに等しいとき、前記第1プロセッサと前記第2プロセッサが共にブート処理の制御を共有することをイネーブルにするステップと、
    を有する方法。
  9. 請求項8記載の方法であって、
    前記第2プロセッサをイネーブルにするステップは、前記第2プロセッサヘルスステータスを前記第2プロセッサに送信するステップを含むことを特徴とする方法。
  10. 請求項9記載の方法であって、
    前記第2プロセッサヘルスステータスを送信するステップは、ヘルスステータスリクエストに応答するものであることを特徴とする方法。
  11. 請求項10記載の方法であって、
    前記第2プロセッサによるハードウェアセマフォレジスタの読み込み前に、前記第1プロセッサにより前記ハードウェアセマフォレジスタを読み込むステップをさらに有することを特徴とする方法。
  12. 請求項11記載の方法であって、
    前記第1プロセッサによりハードウェアセマフォレジスタを読み込むステップは、第1値を受け取るステップを含むことを特徴とする方法。
  13. 請求項8記載の方法であって、
    前記第1プロセッサヘルスステータスを決定するステップは、第1ファームウェアインタフェーステーブルと第2ファームウェアインタフェーステーブルとを調べるため、ジェネリックプロセッサアブストラクションレイヤを使用するステップを含むことを特徴とする方法。
  14. 請求項13記載の方法であって、
    前記ジェネリックプロセッサアブストラクションレイヤを使用するステップは、第1プロセッサスペシフィックプロセッサアブストラクションレイヤの第1コピーと第2コピーとを調べるステップを含むことを特徴とする方法。
  15. 請求項13記載の方法であって、
    前記第1プロセッサヘルスステータスを決定するステップは、
    前記第1プロセッサスペシフィックプロセッサアブストラクションレイヤの第1コピーがシステムアブストラクションレイヤの係る第1コピーを有するか決定するステップと、
    前記第1プロセッサスペシフィックプロセッサアブストラクションレイヤの第2コピーがシステムアブストラクションレイヤの係る第2コピーを有するか決定するステップと、
    を含むことを特徴とする方法。
  16. 請求項8記載の方法であって、
    前記第2プロセッサヘルスステータスを第1プロセッサに送信するステップは、プロセッサ間割り込みを前記第1プロセッサに送信するステップを含むことを特徴とする方法。
  17. 請求項16記載の方法であって、
    前記プロセッサ間割り込みを第1プロセッサに送信するステップは、前記第1プロセッサが割り込みイネーブル解除したとき、前記第2プロセッサヘルスステータスを第1プロセッサ割り込みリクエストレジスタに送信するステップを含むことを特徴とする方法。
  18. 請求項17記載の方法であって、さらに、
    前記第2プロセッサに第2プロセッサリリースメッセージを送信することによって、前記第2プロセッサがブート処理を継続することをイネーブルにするステップを有することを特徴とする方法。
JP2004511998A 2002-06-11 2003-05-09 システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法 Expired - Fee Related JP4263690B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/171,210 US7350063B2 (en) 2002-06-11 2002-06-11 System and method to filter processors by health during early firmware for split recovery architecture
PCT/US2003/014877 WO2003104994A2 (en) 2002-06-11 2003-05-09 System and method to filter processors by health during early firmware for split recovery architecture

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007287336A Division JP4813442B2 (ja) 2002-06-11 2007-11-05 システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法

Publications (2)

Publication Number Publication Date
JP2005529406A JP2005529406A (ja) 2005-09-29
JP4263690B2 true JP4263690B2 (ja) 2009-05-13

Family

ID=29711058

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004511998A Expired - Fee Related JP4263690B2 (ja) 2002-06-11 2003-05-09 システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法
JP2007287336A Expired - Fee Related JP4813442B2 (ja) 2002-06-11 2007-11-05 システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007287336A Expired - Fee Related JP4813442B2 (ja) 2002-06-11 2007-11-05 システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法

Country Status (9)

Country Link
US (1) US7350063B2 (ja)
JP (2) JP4263690B2 (ja)
KR (1) KR100828755B1 (ja)
CN (1) CN100498728C (ja)
AU (1) AU2003241420A1 (ja)
DE (1) DE10392810T5 (ja)
HK (1) HK1096744A1 (ja)
TW (1) TWI225204B (ja)
WO (1) WO2003104994A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0308708D0 (en) * 2003-04-15 2003-05-21 British Telecomm A computer system
US7673125B2 (en) * 2003-06-26 2010-03-02 Hewlett-Packard Development Company, L.P. Resetting multiple cells within a partition of a multiple partition computer system
US7434102B2 (en) * 2004-12-29 2008-10-07 Intel Corporation High density compute center resilient booting
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7971098B2 (en) * 2008-03-24 2011-06-28 Globalfoundries Inc. Bootstrap device and methods thereof
US8046631B2 (en) * 2009-04-29 2011-10-25 Lsi Corporation Firmware recovery in a raid controller by using a dual firmware configuration
US8364775B2 (en) 2010-08-12 2013-01-29 International Business Machines Corporation High availability management system for stateless components in a distributed master-slave component topology
CN102214114B (zh) * 2011-06-24 2014-06-04 深圳市江波龙电子有限公司 一种双cpu系统客户机程序的升级方法及系统
US9015455B2 (en) * 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US8849647B2 (en) 2011-10-19 2014-09-30 Lsi Corporation Dual-firmware for next generation emulation
CN103279700A (zh) * 2013-06-08 2013-09-04 北京时代奥视数码技术有限公司 液晶监视器的固件版本验证方法和液晶监视器
KR102612842B1 (ko) 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821025B2 (ja) * 1986-09-29 1996-03-04 株式会社東芝 マルチプロセッサシステムおよび同システムの初期化方法
JPH03269759A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd マルチプロセッサ制御方式
JPH05324370A (ja) * 1992-05-21 1993-12-07 Yamatake Honeywell Co Ltd プログラム自己診断方法
JP3447404B2 (ja) * 1994-12-08 2003-09-16 日本電気株式会社 マルチプロセッサシステム
US5524209A (en) * 1995-02-27 1996-06-04 Parker; Robert F. System and method for controlling the competition between processors, in an at-compatible multiprocessor array, to initialize a test sequence
US6446199B1 (en) 1995-06-06 2002-09-03 International Business Machines Corporation Disk drive incompatible firmware recovery
US5724527A (en) * 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system
US5918047A (en) 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5790850A (en) 1996-09-30 1998-08-04 Intel Corporation Fault resilient booting for multiprocessor computer systems
US5904733A (en) * 1997-07-31 1999-05-18 Intel Corporation Bootstrap processor selection architecture in SMP systems
US6058475A (en) * 1997-09-22 2000-05-02 Ncr Corporation Booting method for multi-processor computer
JPH11224244A (ja) * 1998-02-09 1999-08-17 Nec Corp 情報処理装置及びそのシステム構成情報の自動生成方法及び記録媒体
US6381693B2 (en) * 1998-12-31 2002-04-30 Intel Corp. Arrangements having firmware support for different processor types
US6601165B2 (en) 1999-03-26 2003-07-29 Hewlett-Packard Company Apparatus and method for implementing fault resilient booting in a multi-processor system by using a flush command to control resetting of the processors and isolating failed processors
US6549961B1 (en) * 1999-10-27 2003-04-15 Infineon Technologies North America Corporation Semaphore access in a multiprocessor system
US6564348B1 (en) * 1999-11-04 2003-05-13 International Business Machines Corporation Method and apparatus for storing and using chipset built-in self-test signatures
JP3833117B2 (ja) * 2000-01-31 2006-10-11 富士通株式会社 サーバ決定方法及び装置
US6842857B2 (en) 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US6889341B2 (en) * 2002-06-28 2005-05-03 Hewlett-Packard Development Company, L.P. Method and apparatus for maintaining data integrity using a system management processor

Also Published As

Publication number Publication date
WO2003104994A3 (en) 2004-06-03
JP2008117401A (ja) 2008-05-22
DE10392810T5 (de) 2005-07-14
KR100828755B1 (ko) 2008-05-09
JP2005529406A (ja) 2005-09-29
JP4813442B2 (ja) 2011-11-09
US20030229775A1 (en) 2003-12-11
TWI225204B (en) 2004-12-11
CN1856772A (zh) 2006-11-01
US7350063B2 (en) 2008-03-25
AU2003241420A8 (en) 2003-12-22
HK1096744A1 (en) 2007-06-08
TW200405173A (en) 2004-04-01
KR20050016545A (ko) 2005-02-21
WO2003104994A2 (en) 2003-12-18
AU2003241420A1 (en) 2003-12-22
CN100498728C (zh) 2009-06-10

Similar Documents

Publication Publication Date Title
JP4813442B2 (ja) システム起動処理のための良好な状態のプロセッサグループ及び関連するファームフェアを決定するシステム及び方法
US6158000A (en) Shared memory initialization method for system having multiple processor capability
US6675324B2 (en) Rendezvous of processors with OS coordination
US5724527A (en) Fault-tolerant boot strap mechanism for a multiprocessor system
JP3954088B2 (ja) 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構
US6219742B1 (en) Method and apparatus for artificially generating general purpose events in an ACPI environment
EP1588260B1 (en) Hot plug interfaces and failure handling
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
US7711941B2 (en) Method and apparatus for booting independent operating systems in a multi-processor core integrated circuit
TW584800B (en) Method, computer and peripheral/expansion bus bridge for booting up with debug system
US10586048B2 (en) Efficient reboot of an operating system
US8713230B2 (en) Method for adjusting link speed and computer system using the same
JP2003186697A (ja) 周辺デバイス試験システム及び方法
JP2001256044A (ja) データ処理装置
JP6996748B2 (ja) デバッグシステム、bios、情報処理装置及びデバッグ方法
US6813730B2 (en) Method, computer program product, and system for detecting a peripheral device in a computer system
US20070124522A1 (en) Node detach in multi-node system
CN118377661A (zh) 总线错误测试方法、装置、设备、存储介质及程序产品
US20060026321A1 (en) Increasing the number of I/O decode ranges using SMI traps
JP2001175477A (ja) コンピュータシステムおよびシステムbiosのコピー方法
JPS6091447A (ja) プログラム保護方式
JPS63278147A (ja) レジスタ誤使用防止制御方式
JPH07281961A (ja) メモリ故障検出装置及び計算機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070905

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070912

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071005

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090113

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090212

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees