JP6157811B2 - ブート前データ検証のための方法及びシステム - Google Patents

ブート前データ検証のための方法及びシステム Download PDF

Info

Publication number
JP6157811B2
JP6157811B2 JP2012166673A JP2012166673A JP6157811B2 JP 6157811 B2 JP6157811 B2 JP 6157811B2 JP 2012166673 A JP2012166673 A JP 2012166673A JP 2012166673 A JP2012166673 A JP 2012166673A JP 6157811 B2 JP6157811 B2 JP 6157811B2
Authority
JP
Japan
Prior art keywords
storage area
data storage
stored
ofp
verification number
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.)
Active
Application number
JP2012166673A
Other languages
English (en)
Other versions
JP2013178733A5 (ja
JP2013178733A (ja
Inventor
ルイジ ピー. リーギ,
ルイジ ピー. リーギ,
ティモシー エス. ウィッカム,
ティモシー エス. ウィッカム,
マーク エー. タルボット,
マーク エー. タルボット,
グレゴリー エム. ウェルブルック,
グレゴリー エム. ウェルブルック,
チャーリー シー. ワン,
チャーリー シー. ワン,
オスカー ミレレス,
オスカー ミレレス,
マイケル ディー. ルービン,
マイケル ディー. ルービン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JP2013178733A publication Critical patent/JP2013178733A/ja
Publication of JP2013178733A5 publication Critical patent/JP2013178733A5/ja
Application granted granted Critical
Publication of JP6157811B2 publication Critical patent/JP6157811B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明の分野は概して、一又は複数のプログラムの実行を開始するBIOS(基本入出力システム)を組み込むコンピュータベースシステムの起動に関し、より詳しくはこのようなプログラムのためのブート前データ検証を組み込む方法及びシステムに関する。
該して、コンピュータシステムに最初の電源が投入されると、起動プログラムが動作し、不揮発性メモリに保存される。このような起動プログラムはブートファームウェアと呼ばれることがあり、口語的にはBIOSプログラムと呼ばれる。BIOSプログラムは、標準的なパーソナルコンピュータから航空機内の航空電子工学機器(例えば、航空電子工学ユニットすなわち「ブラックボックス」)として配備される組み込みシステムにいたるまで、多数のコンピュータシステムで実行される。
BIOSプログラムの実行は、BIOSが実行される処理装置と通信可能に結合されているシステムコンポーネントの検出及び識別に有用である。例えば、コンピュータハードドライブ、表示装置、及び外部メモリデバイスは、BIOSの実行によって識別及び処理されるが、このようなデバイス用のソフトウェアドライバは、BIOSが操作をオペレーティングシステムに戻したときに読込まれる。幾つかのアプリケーションでは、BIOSは実行すべき組込み試験(BIT)を始動するソフトウェアを含むことができ、それによって、ハードドライブ、表示装置などが少なくとも部分的に動作していることを判断する。すなわち、プロセッサはデバイスと通信することができる。オペレーティングシステムを起動するBIOSの一部、又は航空機システムの場合には、動作を開始するデバイスに関連する飛行管制プログラム(OFP)によって、最終的にBIOSの実行が完了する。
このようなシステムでは、BIOSが動作してオペレーティングシステム又はOFPの実行を開始する。しかしながら、BIOSにはオペレーティングシステム又はOFPの内容の検証を行える命令は含まれていない。そのため、オペレーティングシステム、OFP、又は他のアプリケーションが破損している場合には、特定のシステムの動作には障害が発生するか、まったく動作しない。
航空機搭載の航空電子工学機器では、BIOS又はブートROMからOFPを実行している場合には、誤った取り外し並びに交換作業が問題の原因となる。例えば、デバイスがOFPを正しく実行していない場合には、航空電子工学デバイスは取り外し及び交換が行われ、取り外されたデバイスは整備倉庫に送られる。上述のように取り外されたデバイスに関する問題点は再現することができず、OFPが誤っていたと判断されることがしばしばある。そのため、修復作業はOFPの再読込み、再試験、及び運用への復帰で構成されることになる。
本発明の態様によれば、プログラム実行のためのデータの読込みに先立って、実行可能なプログラムを定義するデータの検証方法が提示されている。この方法は、1次データ記憶領域内のデータ、実行可能なプログラムを定義するデータに対する検証番号を計算するステップ、計算された検証番号と保存されている番号とを比較するステップ、検証番号が保存されている番号と一致した場合に1次データ記憶領域内のプログラムを実行するステップ、1次データ記憶領域内で実行可能な同一のプログラムを2次データ記憶領域内で定義するデータに対して検証番号を計算するステップを含む。検証番号と保存されている番号とが一致しない場合には、2次データ記憶領域内のデータに対して計算した検証番号と保存されている番号とを比較し、2次データ記憶領域内のデータに対する検証番号と保存されている番号とが一致する場合には、該当するプログラムを実行し、2次データ記憶領域内のデータに対する検証番号と保存されている番号とが一致しない場合には、失敗したことを示す。好ましくは、この方法は、同一の実行可能なプログラムを定義するデータを含む各データ記憶領域に対して反復される手順d)、e)及びf)をさらに含む。好ましくは、この方法は、2次データ記憶領域に対して計算した検証番号と保存されている番号とが一致しない場合に、2次データ記憶領域内のデータを1次記憶領域にコピーするステップをさらに含む。有利には、この方法は、航空機搭載電子工学機器に対して、飛行管制プログラムのチェックサムを計算するステップを含んでいてもよい。有利には、この方法は、実行可能なプログラムを定義するデータのチェックサムを計算するため、ブートROMデバイス内の命令を実行するステップを含んでいてもよい。有利には、この方法は、計算した検証番号と基本入出力システムに関連するメモリに保存されている番号とを比較するステップを含む。
本発明のさらなる態様によれば、処理装置、当該処理装置によって基本入出力が実行されるブートROM、デバイスに関連する実行可能なアプリケーションのイメージを保存するように構成された1次データ記憶領域、及びデバイスに関連する実行可能なアプリケーションの少なくとも1つの追加イメージを保存するように構成された少なくとも1つの2次データ記憶領域を含むデバイスが提供される。デバイスは、1次データ記憶領域内に保存されたイメージ及び少なくとも1つの2次データ記憶領域内に保存された各イメージに対して個別に検証番号を計算し;各イメージに対して計算された個別の検証番号とブートROMに保存されている番号とを比較し;イメージに対して計算された検証番号が任意の1次又は2次データ記憶領域に保存された番号と一致し、イメージに対して計算した個別の検証番号が保存された番号と一致しなかった場合には、1次又は2次のデータ記憶領域の1つからイメージをコピーし;さらに1次及び2次データ記憶領域の1つの保存されたイメージによって定義されるプログラムを実行する、ようにプログラムされている。有利には、このデバイスは、航空機搭載の航空電子工学ユニットを含むことができる。有利には、このデバイスは、飛行管制プログラムを含むことができ、独立に計算された検証番号は飛行管制プログラム用のチェックサムを含むことができる。有利には、このデバイスは、前記1次及び2次データ記憶領域内の各イメージに対して個別に計算された検証番号が、イメージによって定義されたプログラムの実行前に保存されている番号と一致することを検証するように、プログラムすることができる。有利には、個別の検証番号を計算する場合に、実行可能なアップリケーションのイメージのチェックサムを計算する前記ブートROM内の命令を実行するように、デバイスをプログラムすることができる。有利には、前記デバイスがランダムアクセスメモリを含む場合に、デバイスは前記データ記憶領域の一つからイメージをコピーするようにプログラムすることができ、個別に計算された検証番号は、実行のため前記ランダムアクセスメモリに保存された番号に一致する。有利には、デバイスは、シリコンメモリデバイス、コンピュータハードドライブ、CD−ROM、フラッシュドライブ、及びサムドライブのいずれか一つを含んでいてもよい。
本発明のさらなる態様では、コンピュータ上で具現化されコンピュータで実行可能な命令を有する一又は複数のコンピュータで読み取り可能な記憶媒体が提供される。記憶媒体の少なくとも一部分は、実行可能なアプリケーションに関連するチェックサムを表わすデータを含む。少なくとも一つのプロセッサで実行した場合、コンピュータで実行可能な命令によって少なくとも一つのプロセッサは複数のデータ記憶領域内のデータ、同一の実行可能なプログラムを定義する各データ記憶領域内のデータに対して個別の検証番号を計算し、複数のデータ記憶領域内の各々に対して個別に計算された番号を保存されている番号と比較し、計算された検証番号が保存されている番号と一致しなかった場合、個別に計算された検証番号が複数のデータ記憶領域の中の任意の一つに保存された番号と一致する場合には複数のデータ記憶領域の一つのデータをコピーし、さらに、複数のデータ記憶領域の中の一つに保存されたデータによって定義されたプログラムを実行する。有利には、実行可能なアプリケーションは飛行管制プログラムを含んでいてもよい。有利には、コンピュータで実行可能な命令によって、少なくとも一つのプロセッサは、各データ記憶領域に対して計算された検証番号が、保存されているデータによって定義されたプログラムの実行に先立って、保存された番号と一致することを検証することができる。
しかも本発明のさらなる態様により、メモリソースからプログラムを実行する方法が提供されている。この方法は、複数のデータ記憶領域内のデータ、同一の実行可能なプログラムを定義する各データ記憶領域内のデータに対して個別の検証番号を計算するステップ、データ記憶領域内の各々に対して個別に計算された番号と保存されている番号とを比較するステップ、個別に計算された検証番号が保存されている番号と一致しなかった場合、個別に計算された検証番号が複数のデータ記憶領域の中の任意の一つに保存された番号と一致する場合には複数のデータ記憶領域の一つのデータを複製するステップ、さらに、複数のデータ記憶領域の中の一つに保存されたデータによって定義されたプログラムを実行するステップを含む。好ましくは、この方法は、各データ記憶領域に対して個別に計算された検証番号が、保存されているデータによって定義されたプログラムの実行に先立って、保存された番号と一致することを検証するステップをさらに含むことができる。有利には、個別の検証番号を計算する場合には、この方法は、航空機搭載の航空電子工学機器に対する飛行管制プログラムのチェックサムを計算するステップ、及び同一の実行可能なプログラムを定義するデータのチェックサムを計算するためのブートROMデバイス内の命令を実行するステップのうちの少なくとも一つを含むことができる。
既に説明した特徴、機能及び利点は、様々な実施形態で独立に実現することが可能であるか、以下の説明及び図面を参照してさらなる詳細が理解されうる、さらに別の実施形態で組み合わせることが可能である。
図1は検証プロセスのフロー図である。 図2は種々の記憶領域内のアプリケーションの複数のイメージを示す処理システムの図である。 図3はデータ処理システムの図である。 図4は検証プロセスのフロー図である。
説明されている実施形態は、例えば、実行前にデータが読み込まれる不揮発性メモリに保存されるデータ(例えば、オペレーティングシステムファイル、アプリケーション、及び例えば重要なシステムファイル、カーネルファイル、コンフィギュレーションファイルなどを含むコンピュータシステムの初期化に必要となるその他の情報)の検証を対象としている。例示的な実施形態では、検証試験が失敗した場合には(例えば、チェックサム試験が失敗する場合)、同一データの2次ソースを利用することができる。データの2次ソースが検証試験に合格した場合には、データは2次ソースに関連するメモリから読み込まれ、実行される。幾つかの実施形態では、検証済みの2次ソース内のデータのコピーは、1次メモリの中で検証できなかったデータを上書きすることがある。メモリデバイスの容量が増大し且つ物理的なサイズが小さくなるにつれて、3倍、4倍、5倍、さらにはn倍までのデータソースを想定することができるため、不具合の発生を示す前に実行用のアプリケーションの読み込み時に複数回の実行を試みることができる。このような実施形態はまた、他のソースからの有効なファイルで破損したファイルを上書きすることを可能にし、結果的に「自己修復」機能を提供する。
本明細書に記載されているように、基本入出力システム(BIOS)に追加命令が付加されている。この命令により、例えば、オペレーティングシステムの内容、アプリケーション及びシステムを初期化するための他の保存情報から構成されるデータの検証を実行することができる。単純な例では、BIOSで実行される命令により、不揮発性メモリに保存された航空電子工学ユニットの飛行管制プログラム(OFP)に対する計算を行い、航空電子工学ユニットすなわち「ブラックボックス」によって実行されるように意図することができる。BIOSはさらに、計算されたチェックサムがOFP用に保存されたチェックサムに等しく、チェックサムは例えばBIOSに関連するメモリに保存されていることを検証する。
図1に関してさらに説明されているように、チェックサムが等しい場合には、BIOSによってOFPの作動が許可される、及び/又はOFPが実行される。チェックサムが等しくない場合には、BIOSはOFPの別のインスタンスが保存されている別のメモリロケーションに移動し、チェックサムの計算及び保存されているチェックサムに対する検証を可能にする。このプロセスは、検証可能なチェックサムを有するイメージが検出されるまで、OFPの複数のミラーイメージに対して反復することが可能で、検出された時点で当該イメージは実行可能となるか、実行可能となるメモリ内へ転送可能となる。さらに、チェックサム検証試験に合格するOFPのイメージは、チェックサムが検証できないメモリロケーションにコピーすることが可能で、将来のシステムのブートアップで実行することができるOFPの検証可能なコピーを生成することができる。この実施形態では、BIOSが実行されるブートROMは、データの2次(3次など)ソースの(メモリ)ロケーションで構成されている。
上述の考え方は図1のフローチャート10を用いて容易に視覚化することができる。実際の手順は様々な方法で実行可能であるが、一又は複数のデータソ−スがデータの1次ソースの読み込み、実行、及び交換のための機能を処理することによってアクセス可能であるという点において、すべてが一貫している。フローチャート10を参照すると、1次データ記憶領域に対する検証番号は計算(12)され、計算された検証番号はチェックサムなどの保存された値と比較(14)される。検証番号と保存されている番号が一致する場合(16)には、1次データ記憶領域に保存されているプログラムは読み込まれ、実行(18)される。
検証番号と保存されている番号が一致しない場合(16)には、1次データ記憶領域にあるべきデータの正確なコピーを含んでいなければならない2次データ記憶領域に対する検証番号が計算(20)される。2次データ記憶領域に対して計算(20)された検証番号は、保存されている番号と比較(22)される。検証番号と2次データ記憶領域に関連して保存されている番号とが一致する場合(24)には、2次データ記憶領域に保存されているプログラムは実行(26)される。
検証番号と2次データ記憶領域に関連して保存されている番号とが一致しない場合(24)には、ユニットは故障(28)しているものとみなすことができる。2次データ記憶領域のプログラムの実行は、さまざまな方法で実現することができる。プログララムは2次データ記憶領域から直接実行すること(26)が可能で、又は、1次データ記憶領域から実行できるように、2次データ記憶領域のデータは1次データ記憶領域にコピー(30)することが可能である。代替的に、プログラムを2次記憶領域から実行し、次に一旦プログラムが読み込まれると自己修復機能として、1次記憶領域にコピー(30)してもよい。別の実施形態では、2次データ記憶領域に保存されているプログラムは、当該プログラムが実行できるメモリから読み込まれる。
図1に関連する最も単純な実施例では、データ検証機能(計算された番号と保存されている番号との比較)が1次メモリロケーションに関して合格した場合には、このようなメモリロケーションでプログラムが実行される(18)。しかしながら、当業者であれば、図1によって図解されたプロセスは必ずしも2個のデータ記憶領域に限定されないことを理解するであろう。ある種のアプリケーションでは、データ検証機能がn個のデータ記憶領域に関して実行されるものと想定されている。
特に、検証番号の計算は、チェックサムなどの値の計算を含むことがある。図2は、1次データ記憶領域、2次データ記憶領域、3次記憶領域及びn次記憶領域などが複数の方法で具現化されうることを示している。図2で、プロセッサ100はBIOSが保存されるブートROMデバイス102に結合している。ブートROMデバイス102の一部は、プロセッサ100によって実行されるアプリケーションに対するチェックサム104(又は複数のアプリケーションに対する複数のチェックサム)を保存する。メモリ110は実行されるアプリケーションの1次イメージ112を含む。本明細書に記載されているように、プロセッサ100、ブートROM102、及びメモリ110を組み込んでいるデバイスは、複数のメモリデバイス、例えば、メモリデバイス120及び130を含むように構成されうる。図2の例に示したように、メモリデバイス120は実行されるアプリケーションの2つのイメージ(122及び124)で構成されており、メモリデバイス130は実行されるアプリケーションの単一イメージ132で構成されている。
メモリデバイス120の実施例では、データ記憶領域は単一メモリデバイス内で分離されたパーティションであってもよい。他の実施例では、データ記憶領域は物理的に分離されたメモリデバイス(例えば、ハードドライブ、シリコンメモリデバイス、CD−ROM、フラッシュドライブ、サムドライブなど)として具現化されうる。さらに別の実施例では、データ記憶領域は同一形式の物理的に分離されたメモリデバイス(例えば、分離された回路基板上のメモリデバイス)として具現化されうる。また、本明細書で記載されている機能を実現するためには、多数の物理メモリデバイスの実施形態及び構成の組み合わせが利用可能である。
さらに、実施形態は飛行管制プログラムに限定されない。検証されるデータは、オペレーティングシステム、アプリケーション、及び/又はメモリに保存されるシステムの初期化に必要な他の情報を含みうる。この実施形態では、メモリに保存されるデータは、実行用に読み込まれる前に、又はBIOSがオペレーティングシステムにシステムの制御を引き渡す前に有効となる(検証される)。有効化が失敗した場合には、このようなデータの2次ソースが利用され、検証試験に合格するものとみなされる。
さらに、2次データソースの一つのデータをメモリから読み込んで1次データメモリにコピーすることができる。例えば、再度図2を参照すると、イメージ112が1次イメージであって、イメージ112に対して計算された検証がブートROM102に保存されているチェックサム104とが一致せず、イメージ132がブートROM102に保存されているチェックサムと一致しない場合には、ブートROM102はイメージ132をメモリ110にコピーする命令を含むように構成することができ、各実施形態を説明するためにイメージ112は破損したものとみなし、上書きすることができる。
ある種のアプリケーションでは、例えば、上述の航空機搭載の航空電子工学システムでは、様々な場所での運用に必要となるソフトウェア及びデータを多数コピーすることにより、システムの冗長性が高まり、ブートアップ及び最終的にはシステムの運用を阻害する問題の自動訂正が可能になる。オペレータがいる場合でも、機能が自動化され、時間が節約される。
一つの実施形態では、本明細書に記載されているメソッド、システム、及びコンピュータで読み込み可能な媒体の技術的な効果は、(a)デバイスのデータ記憶領域内に実行可能なプログラムを構成するデータが、例えば、これらのデータが保存されているチェックサムに等しいことによって、予想通りであることを検証すること、(b)検証試験に合格した場合、データ記憶デバイスに関連するプログラムを実行すること、(c)デバイスの種々のデータ記憶領域内の実行可能なプログラムを構成するデータが、例えば、これらのデータが保存されているチェックサムに等しいことによって、予想通りであることを検証することを試みること、(d)検証試験に合格した場合、種々のデータ記憶デバイスのプログラムを実行すること、(e)デバイスが後に元のデータ記憶領域からプログラムを実行できるように、種々のデータ記憶領域から元のデータ記憶領域にプログラムを潜在的にコピーすること、のうちの少なくとも一つを含む。
次に図3に注目すると、データ処理システムのより詳細な図が、例示的な実施形態に従って図解されている。この例示的な実施例では、データ処理システム300は、通信ファブリック302を含み、これによりプロセッサ装置304、メモリ306、固定記憶域308、通信装置310、入出力(I/O)装置312、及び表示装置314の間の通信を可能にする。種々の実施形態では、システム300は汎用パーソナルコンピュータ又は航空機搭載の航空電子工学ユニットを表わしている。
プロセッサ装置304は、メモリ306に読み込まれうるソフトウェアに対する命令を実行するように働く。プロセッサ装置304は、特定の実装に応じて、一又は複数のプロセッサの組であってもよく、あるいはマルチプロセッサコアであってもよい。さらに、プロセッサ装置304は、単一チップ上に様々な種類のプロセッサが共存する異種プロセッサシステムを一又は複数個使用して実装してもよい。別の例示的な実施例では、プロセッサ装置304は同一形式の複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
メモリ306及び固定記憶域308は、OFPなどのアプリケーションのイメージ(又はイメージ群)が保存される様々な記憶デバイスの例である。本明細書で使用しているように、記憶デバイスは、一時的又は永続的に情報を保存することが可能な任意の数のハードウェアである。これらの例では、メモリ306は、例えば、限定しないが、ランダムアクセスメモリ(RAM)又は他の好適な揮発性又は不揮発性の記憶デバイスであってもよい。メモリ306の一部は、先行するパラグラフで説明したように、ブートROMデバイスとして構成してもよい。固定記憶域308は特定の実装に応じて様々な形態をとりうる。例えば、限定しないが、固定記憶域308は一又は複数のコンポーネント又はデバイスを含みうる。例えば、固定記憶域308は、ハードドライブ、フラッシュメモリ、書換型光ディスク、書換型磁気テープ、又はこれらの組み合わせであってもよい。固定記憶域308によって使用される媒体は着脱式であってもよい。例えば、限定しないが、着脱式ハードドライブは固定記憶域308に使用しうる。
通信装置310はこれらの例では、他のデータ処理システム又はデバイスとの通信を提供する。これらの例では、通信装置310はネットワークインターフェースカード(NIC)である。通信装置310は、物理的及び無線の通信リンクのいずれか一方又は両方を使用することによって、通信を提供することができる。
入出力装置312により、データ処理システム300に接続可能な他のデバイスによるデータの入力及び出力が可能になる。例えば、限定しないが、入出力装置312はキーボード及びマウスによるユーザー入力のための接続を提供しうる。さらに、入出力装置312は出力をプリンタに送ってもよい。表示装置314はユーザーに情報を表示する機構を提供する。
オペレーティングシステム及びアプリケーション又はプログラムに対する命令は、固定記憶域308上に配置される。これらの命令は、プロセッサ装置304によって実行するため、メモリ306に読み込まれうる。異なる実施形態のプロセスは、メモリ306などのメモリに配置されうる命令を実装したコンピュータを使用して、プロセッサ装置304によって実行されうる。これらの命令はマシンコードと呼ばれ、プロセッサ装置304のプロセッサによって読み込まれ実行される。種々の実施形態のマシンコードは、メモリ306又は固定記憶域308など、種々の物理的な又は有形のコンピュータで読込可能な媒体上に具現化しうる。
追加的に、又は代替的に、マシンコード316は、選択的に着脱可能でコンピュータで読込可能な媒体318上に機能的な形態で配置され、プロセッサ装置304での実行用のデータ処理システム300に読込み又は転送することができる。マシンコード316及びコンピュータで読込可能な媒体318は、これらの実施例ではコンピュータプログラム製品320を形成する。1つの実施例では、コンピュータで読込可能な媒体318は、例えば、固定記憶域308の一部であるハードドライブなどの記憶デバイスに転送するための固定記憶域308の一部であるドライブまたは他のデバイスに挿入又は配置される光ディスク又は磁気ディスクなど、有形の形態をとりうる。有形の形態では、コンピュータで読込可能な媒体318はまた、データ処理システム300に接続されているハードドライブ、サムドライブ、又はフラッシュメモリなどの固定記憶域の形態をとりうる。コンピュータで読込可能な媒体318の有形の形態はまた、コンピュータで記録可能な記憶媒体とも呼ばれる。幾つかの例では、コンピュータで読込可能な媒体318は着脱式ではないことがある。
代替的に、マシンコード316は、通信装置310との通信リンク及び/又は入出力装置312との接続によって、コンピュータで読取可能な媒体318からデータ処理システム300に転送することができる。通信リンク及び/又は接続は、例示的な実施例で物理的なもの又は無線によるものでありうる。コンピュータで読込可能な媒体はまた、マシンコードを含む通信リンク又は無線転送など、無形の形態をとりうる。
幾つかの例示的な実施形態では、マシンコード316は、データ処理システム300内で使用するため、他のデバイス又はデータ処理システムから、ネットワークを介して固定記憶域308へダウンロードすることができる。例えば、データ処理サーバーのコンピュータで読取可能な記憶媒体に保存されたマシンコードは、ネットワークを介してサーバーからデータ処理システム300にダウンロードすることができる。マシンコード316を提供するデータ処理システムは、ホストコンピュータ、クライアントコンピュータ、又はマシンコード316を保存及び転送することができる他のデバイスであってもよい。
データ処理システム300に対して例示されている種々のコンポーネントは、異なる実施形態が実装しうる方法に対して構造上の制限を設けることを意図していない。異なる例示的実施形態は、データ処理システム300に対して図解されているコンポーネントに対して追加的又は代替的なコンポーネントを含むデータ処理システム内に実装しうる。図3に示した他のコンポーネントは、実施例とは異なることがある。
1つの実施例では、データ処理システム300の記憶装置は、データを保存しうる任意のハードウェア装置である。メモリ306、固定記憶域308及びコンピュータで読込可能な媒体318は有形の記憶デバイスの例である。
他の実施例では、バスシステムは通信ファブリック302を実装するために使用可能で、システムバス又は入出力バスなどの一又は複数のバスを含みうる。言うまでもなく、このバスシステムは、当該バスシステムに結合された様々なコンポーネント又はデバイス間でのデータ転送を可能にする、任意の好適な形式のアーキテクチャを用いて実装することができる。また、通信装置は、モデム又はネットワークアダプタなど、データの送受信に使用される一又は複数のデバイスを含むことができる。さらに、メモリは例えば、限定しないが、通信ファブリック302によってアクセス可能な外部メモリ又はメモリ制御装置を介してみられるような、メモリ306又はキャッシュであってもよい。
図4は検証プロセスの代替的な実装を示すフロー図400である。上述の実施形態は、当該記憶領域からプログラムが実行されるとすぐに、適切なチェックサムを有するプログラム記憶領域が見つかるまで、プログラム記憶領域のチェックサムを計算するプロセスについて説明した。フローチャート400は、第1のプログラム記憶領域がチェックサム試験に合格した場合でも、すべてのプログラム記憶領域が検証されるプロセスを図解している。すべてのプログラム記憶領域の内容を検証することにより、プログラム記憶領域2〜nが破損しているが、プログラム記憶領域1は常に検証試験に合格しているため、このような破損は検出されない、というシナリオは回避されるもしプログラム記憶領域2〜nの破損が検出されないままであると、プログラム記憶領域1が検証試験に合格しないことがあれば、プログラム記憶領域1〜nを取り込んでいるユニットは不必要に動作不能となるだろう
次にフローチャート400を参照すると、1次アドレス(プログラム記憶領域1)用のデータ検証機能が実施される(402)。具体的には、先行する段落で説明した内容と同様に、検証番号が計算され、保存されている番号と比較され、比較の結果が保存される。データ検証機能は2次アドレス(プログラム記憶領域2)に対して実施(404)され、結果が保存される。同様に、n次アドレス(プログラム記憶領域n)の残りの部分に対しても実施され、結果が保存される。
一つのシナリオでは、すべてのプログラム記憶領域が検証試験に合格する。具体的には、プログラムが1次アドレスから実行されるポイントで、1次アドレスでの比較410が合格したこと、2次アドレスでの比較412が合格したこと、及びn次アドレスでの比較414が合格したことが検証されている。
別のシナリオでは、プログラム記憶領域の多く又はすべてが検証試験に合格しない。具体的には、1次アドレスでの比較410が合格しなかったこと、2次アドレスでの比較420が合格しなかったこと、及びn次アドレスのうちの一又は複数で比較422が合格しなかったことを検証した場合には、何であれ最終的に検証試験に合格したアドレスのうちの一つで最終的にプログラムが実行(430)される。nアドレスのうちの一つも合格しない場合には、ユニットの不具合(424)が発生し、通知(例えば、報告)されることがある。しかしながら、nアドレスのうちの一つで比較422が合格した場合には、そのプログラム記憶領域のデータが、1次プログラム領域、2次プログラム記憶領域、及び比較が合格しなかったnプログラム記憶領域の任意の領域にコピー(430)される。次に、1次プログラム記憶領域、2次プログラム記憶領域又は比較が合格したnプログラム記憶領域のうちの一つのいずれかからプログラムが実行(432)される。
1次アドレスでの比較410が合格せず、2次アドレスでの比較420が合格したが、nアドレスのうちの一又は複数で比較440のうちの一つが合格しなかったシナリオでは、2次プログラム記憶領域のデータが、1次プログラム記憶領域及び比較が合格しなかったn次プログラム記憶領域のいずれかにピー(442)され、プログラムは最終的に1次プログラム記憶領域、2次プログラム記憶領域又はnプログラム記憶領域のうちの一つのいずれかから実行される。
同様に、1次アドレスでの比較410が合格せず、2次アドレスでの比較420が合格し、且つnアドレスでの比較440のすべてが合格したシナリオでは、2次プログラム記憶領域又はnプログラム記憶領域のうちの一つのデータが、1次プログラム記憶領域に複写(450)され、プログラムは最終的に1次プログラム記憶領域、2次プログラム記憶領域又はnプログラム記憶領域のうちの一つのいずれかから実行(452)される。
最終的に、1次アドレスでの比較410が合格し、2次アドレスでの比較412が合格し、且つnアドレスでの比較414のうちの少なくとも一つが合格しなかったシナリオでは、1次プログラム記憶領域又は2次プログラム記憶領域のうちの一つのデータが、比較414が合格しなかったnプログラム記憶領域に複写(460)され、プログラムは最終的に1次プログラム記憶領域、2次プログラム記憶領域又はnプログラム記憶領域のうちの一つのいずれかから実行(462)される。
上述の方法及びシステム構成は、当該プログラムに対する1次記憶ローケーションが破損している場合であっても、プログラムを確実に実行するため、実行可能である。これまでは、又特に、航空機搭載の航空電子工学システムに関連してスペース及び重量が厳しく制約されている場合には、「追加の」プログラムイメージを保存するための単純な追加メモリのための物理的なスペースが確保できなかった。しかしながら、メモリデバイスの物理的な大きさが小さくなる一方で、記憶容量は増大し続けたため、本明細書に記載した構成が実現可能になってきた。種々の実施形態により、保存されているプログラムのイメージが破損している可能性がある場合でも、「健全」であることが確認されているアプリケーションイメージをコピーすることにより、ユニットは少なくとも一定のレベルでの自己修復を行うため、修理を目的とした航空機からのユニット取り外しを減らすことが可能になっている。
本明細書で使用しているように、「一つの」という語から始まって単数形で記載されている要素又はステップは、複数の要素又はステップを除外することが明示的に記載されていない限り、複数の要素又はステップを除外しないと理解すべきである。さらに、本発明の「一つの実施形態」又は「例示的実施形態」への言及は、記載されている機能をも取り込む付加的な実施形態の存在を除外するように解釈されることを意図していない。
種々の有利な実施形態の説明は、例示及び説明を目的として提示されているものであり、網羅的な説明であること、又は開示された形態に実施形態を限定することを意図していない。当業者には、多数の修正例及び変形例が明らかであろう。さらに、種々の有利な実施形態は、他の有利な実施形態に照らして別の利点を提供することができる。選択された一又は複数の実施形態は、実施形態の原理、実際の用途を最もよく説明するため、及び他の当業者に対し、様々な実施形態の開示と、考慮される特定の用途に適した様々な修正との理解を促すために選択及び記述されている。
本明細書では、最良のモードを含め、様々な実施形態を開示する実施例を使用しているため、当業者は任意の機器やシステムの作成ならびに使用、及び組込まれた任意の方法の実施を含む実施形態を実行することができる。特許可能な範囲は特許請求の範囲によって定義されており、当業者であれば想起される他の実施例も含みうる。このような他の実施例は、それらが特許請求の範囲の文字言語から逸脱しない構造要素を有する場合、あるいは、それらが特許請求の範囲の文字言語とごくわずかな相違を有する等価な構造要素を含んでいる場合は、特許請求の範囲の範囲内にあることを意図している。
100 プロセッサ
102 ブートROM(BIOS)
104 チェックサム
112 アプリケーションの1次イメージ
120、130 メモリデバイス
122、124 アプリケーションのイメージ
132 アプリケーションの単一イメージ
300 データ処理システム
302 通信ファブリック
304 プロセッサ装置
306 メモリ
308 固定記憶域
310 通信装置
312 入出力装置
314 表示装置
316 マシンコード
318 コンピュータで読込み可能な媒体
320 コンピュータプログラム製品

Claims (6)

  1. 航空機アビオニクスデバイス用のオペレーショナルフライトプログラム(OFP)の実行用のデータの読み込みに先立って、前記OFPを定義するデータを検証する方法であって、
    a)前記OFPを定義する、航空機内の1次データ記憶領域内のデータに対する第1の検証番号を計算するステップと、
    b)前記第1の検証番号と、航空機アビオニクスデバイスのブートROMに保存されている番号とを比較するステップと、
    c)前記第1の検証番号が前記保存されている番号と一致しないことを確認するステップと、
    d)前記第1の検証番号が前記保存されている番号と一致しないことの前記確認に基づき、前記1次データ記憶領域内のものと同一のOFPを定義している、前記航空機内の2次データ記憶領域内のデータに対する第2の検証番号を計算するステップと、
    e)前記第2の検証番号と、前記航空機アビオニクスデバイスの前記ブートROMに保存されている前記番号とを比較するステップと、
    f)前記第2の検証番号と前記保存されている番号とが一致することを確認するステップと、
    g)前記第2の検証番号と前記保存された番号が一致することの確認に基づき、前記1次データ記憶領域内のデータを前記2次データ記憶領域内のデータで上書きするステップと、
    h)前記OFPを実行させるステップと、を含む方法。
  2. 前記第1の検証番号を計算するステップ及び前記第2の検証番号を計算するステップの各々が、前記OFPのチェックサムを計算するステップを含む、請求項1に記載の方法。
  3. 前記第1の検証番号を計算するステップ及び前記第2の検証番号を計算するステップの各々が、前記OFPを定義するデータのチェックサムを計算するため、前記ブートROMデバイス内の命令を実行するステップを含む、請求項1に記載の方法。
  4. 航空機アビオニクスデバイスであって、
    プロセシング装置と、
    前記プロセシング装置によって基本入出力システムが実行されるブートROMと、
    前記航空機アビオニクスデバイスに関連するオペレーショナルフライトプログラム(OFP)のイメージを保存するように構成されている1次データ記憶領域と、
    前記航空機アビオニクスデバイスに関連する前記OFPの追加イメージを保存するように構成された少なくとも一つの2次データ記憶領域と、を含み、
    前記プロセッシング装置が、
    前記1次データ記憶領域内に保存されている前記イメージに対する第1の検証番号を計算し、
    記1次データ記憶領域内に保存されている前記イメージに対して計算された前記第1の検証番号と、前記ブートROMに保存されている番号とを比較し、
    前記1次データ記憶領域内に保存されている前記イメージに対する前記第1の検証番号が前記保存されている番号と一致しないことを確認し、
    前記1次データ記憶領域内に保存されている前記イメージに対する前記第1の検証番号が前記保存されている番号と一致しないことの前記確認に基づき、前記少なくとも一つの2次データ記憶領域内の前記追加イメージに対する第2の検証番号であって、前記少なくとも一つの2次データ記憶領域内の前記追加イメージに対応するデータが前記1次データ記憶領域内のものと同一のOFPを定義している、第2の検証番号を計算し、
    前記少なくとも一つの2次データ記憶領域内に保存されている前記追加イメージに対して計算された前記第2の検証番号と、前記ブートROMに保存されている前記番号とを比較し、
    記第2の検証番号と前記保存されている番号とが一致することを確認し、
    前記1次データ記憶領域の前記イメージを前記航空機アビオニクスデバイスに関連する前記OFPの前記追加イメージで上書きし、
    前記2次データ記憶領域の前記追加イメージによって定義される前記OFPを実行する、ようにプログラムされている、航空機アビオニクスデバイス。
  5. 第1及び第2の検証番号の各々前記OFPに対するチェックサムを含む、請求項に記載の航空機アビオニクスデバイス。
  6. 前記少なくとも一つの2次データ記憶領域が、シリコンメモリデバイス、コンピュータハードドライブ、CD−ROM、フラッシュドライブ、及びサムドライブのうちの少なくとも一つを含む、請求項に記載の航空機アビオニクスデバイス。
JP2012166673A 2011-07-29 2012-07-27 ブート前データ検証のための方法及びシステム Active JP6157811B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/193,718 US8826080B2 (en) 2011-07-29 2011-07-29 Methods and systems for preboot data verification
US13/193,718 2011-07-29

Publications (3)

Publication Number Publication Date
JP2013178733A JP2013178733A (ja) 2013-09-09
JP2013178733A5 JP2013178733A5 (ja) 2015-08-13
JP6157811B2 true JP6157811B2 (ja) 2017-07-05

Family

ID=46875641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012166673A Active JP6157811B2 (ja) 2011-07-29 2012-07-27 ブート前データ検証のための方法及びシステム

Country Status (5)

Country Link
US (1) US8826080B2 (ja)
EP (1) EP2551765A1 (ja)
JP (1) JP6157811B2 (ja)
CN (1) CN102968348A (ja)
CA (1) CA2780370C (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471435B2 (en) * 2012-01-05 2016-10-18 Mitsubishi Electric Corporation Information processing device, information processing method, and computer program
CN103617095A (zh) * 2013-11-15 2014-03-05 中国航空无线电电子研究所 一种VxWorks映像文件正确性的检查方法
US9135029B2 (en) * 2014-01-02 2015-09-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Securely reconfiguring a multi-node system to prevent firmware rollback
CN103729597B (zh) * 2014-01-16 2017-11-17 宇龙计算机通信科技(深圳)有限公司 系统启动校验方法、系统启动校验装置和终端
FR3024869B1 (fr) * 2014-08-14 2016-08-26 Zodiac Aero Electric Systeme de distribution electrique pour un aeronef et procede de commande correspondant
TWI599904B (zh) * 2016-03-30 2017-09-21 緯創資通股份有限公司 電子裝置及其資料驗證方法
CN108958819B (zh) * 2018-06-29 2021-12-31 大陆汽车车身电子系统(芜湖)有限公司 多分区系统的启动方法及多分区系统
JP7330681B2 (ja) * 2018-10-04 2023-08-22 キヤノン株式会社 情報処理装置、その制御方法、プログラム、及び画像形成装置
US20220113982A1 (en) * 2020-10-09 2022-04-14 Arris Enterprises Llc Selective switching of an active partition in an electronic device

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5793943A (en) 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
US6061788A (en) * 1997-10-02 2000-05-09 Siemens Information And Communication Networks, Inc. System and method for intelligent and reliable booting
US5987605A (en) 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
USH2040H1 (en) * 1998-05-22 2002-08-06 The United States Of America As Represented By The Secretary Of The Navy Personal computer based utility program for an electronic countermeasure system
SE521456C2 (sv) * 1998-12-15 2003-11-04 Ericsson Telefon Ab L M Förfarande och anordning vid ett distribuerat system
US6401218B1 (en) * 1999-02-16 2002-06-04 International Business Machines Corporation Method and system for functional kernel verification testing within a data processing system
US6907602B2 (en) * 2000-08-10 2005-06-14 Mustek Systems Inc. Method for updating firmware of computer device
US6651188B2 (en) 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
US7146525B2 (en) 2001-08-31 2006-12-05 Legend (Beijing) Limited Method for backing up and recovering data in the hard disk of a computer
US7024581B1 (en) * 2002-10-09 2006-04-04 Xpoint Technologies, Inc. Data processing recovery system and method spanning multiple operating system
AU2004273105B2 (en) * 2003-09-18 2009-06-11 Aristocrat Technologies Australia Pty Ltd BIOS protection device
US20060047944A1 (en) * 2004-09-01 2006-03-02 Roger Kilian-Kehr Secure booting of a computing device
CN100356337C (zh) * 2004-10-16 2007-12-19 鸿富锦精密工业(深圳)有限公司 基本输入输出系统只读存储器数据检测系统及方法
US7346793B2 (en) * 2005-02-10 2008-03-18 Northrop Grumman Corporation Synchronization of multiple operational flight programs
JP2006227830A (ja) * 2005-02-16 2006-08-31 Seiko Epson Corp 情報処理機器及び情報処理機器の制御方法
CN1858713A (zh) * 2005-04-30 2006-11-08 广东科龙电器股份有限公司 提高e/eprom存储器存储数据可靠性的方法
TWI284284B (en) 2005-08-08 2007-07-21 Inventec Corp Selective apparatus for main/backup basic input/output system (BIOS)
CN1971536A (zh) 2005-11-24 2007-05-30 鸿富锦精密工业(深圳)有限公司 基本输入输出系统的纠错系统及方法
US7669048B2 (en) 2005-12-09 2010-02-23 Microsoft Corporation Computing device limiting mechanism
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US7783877B2 (en) 2007-05-15 2010-08-24 Inventec Corporation Boot-switching apparatus and method for multiprocessor and multi-memory system
BRPI0815619A2 (pt) * 2007-08-21 2015-02-18 Thomson Licensing Método e sistema para o reparo de sistemas de arquivos danificados do disco rígido
US20090063834A1 (en) 2007-09-05 2009-03-05 Inventec Corporation Auto-Switching Bios System and the Method Thereof
TW200923783A (en) 2007-11-30 2009-06-01 Giga Byte Tech Co Ltd Method for automatically repairing system configuration using single key control
CN101452410A (zh) * 2007-12-06 2009-06-10 中兴通讯股份有限公司 一种嵌入式数据库的数据备份系统及数据备份和恢复方法
CN101458647B (zh) 2007-12-12 2012-11-21 鸿富锦精密工业(深圳)有限公司 双bios电路
CN101458648A (zh) 2007-12-12 2009-06-17 鸿富锦精密工业(深圳)有限公司 双bios电路
JP5083890B2 (ja) * 2007-12-27 2012-11-28 東芝エレベータ株式会社 エレベータの制御装置
TWI355608B (en) 2008-01-30 2012-01-01 Inventec Corp Computer system with dual basic input output syste
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
JP4802222B2 (ja) * 2008-07-22 2011-10-26 株式会社東芝 コンピュータシステムおよびコンテンツ保護方法
CN101634960A (zh) * 2008-07-23 2010-01-27 鸿富锦精密工业(深圳)有限公司 一种修改bios参数及重新生成校验和的方法
US20100082963A1 (en) 2008-10-01 2010-04-01 Chun Hui Li Embedded system that automatically updates its software and the method thereof
FR2938671B1 (fr) * 2008-11-17 2011-06-03 Sagem Defense Securite Equipement avionique securise et procede de securisation associe
US20100235646A1 (en) * 2009-03-13 2010-09-16 Egis Technology Inc. Verification method and system thereof
JP5493951B2 (ja) * 2009-04-17 2014-05-14 株式会社リコー 情報処理装置、正当性検証方法及びプログラム
JP5247887B2 (ja) * 2009-05-27 2013-07-24 株式会社日立製作所 ストレージ装置、及びその制御方法、並びにプログラム
JP5233869B2 (ja) * 2009-06-26 2013-07-10 日立電線株式会社 処理システム及び処理装置が実行するプログラムの実行方法
TWI399647B (zh) 2009-10-15 2013-06-21 Wistron Corp 回復電腦系統之基本輸出入系統之方法及相關電腦系統
US8621276B2 (en) * 2010-12-17 2013-12-31 Microsoft Corporation File system resiliency management

Also Published As

Publication number Publication date
CA2780370A1 (en) 2013-01-29
EP2551765A1 (en) 2013-01-30
JP2013178733A (ja) 2013-09-09
US20130031413A1 (en) 2013-01-31
CN102968348A (zh) 2013-03-13
US8826080B2 (en) 2014-09-02
CA2780370C (en) 2015-11-17

Similar Documents

Publication Publication Date Title
JP6157811B2 (ja) ブート前データ検証のための方法及びシステム
CN102521081B (zh) 修复遭破坏的软件
CN103718165B (zh) Bios闪存攻击保护和通知
JP5909264B2 (ja) セキュア・リカバリ装置及び方法
US8135993B1 (en) Updating a firmware image using a firmware debugger application
US9027014B2 (en) Updating firmware compatibility data
US20170270301A1 (en) Systems And Methods Using Virtual UEFI Path For Secure Firmware Handling In Multi-Tenant Or Server Information Handling System Environments
US11017091B2 (en) Firmware map data
US7509544B2 (en) Data repair and synchronization method of dual flash read only memory
WO2016206514A1 (zh) 启动处理方法及装置
KR20170067826A (ko) 펌웨어의 업데이트 방법
WO2015184732A1 (zh) 引导程序的存储方法、故障恢复方法及设备、计算机存储介质
TW201314574A (zh) 用於電腦系統之基本輸入輸出系統程式更新方法及更新裝置
KR101844095B1 (ko) 부트로더 실행 방법 및 장치
US9317454B2 (en) Information processing apparatus, information processing method, and recording medium
JP7084160B2 (ja) 起動制御装置、起動制御システム、起動制御方法、及び、起動制御プログラム
US9971659B1 (en) Memory programming providing corruption protection
US20220147343A1 (en) Tranistionary firmware packages
JP6822203B2 (ja) ファームウェア実行装置、ドライバ実行装置、ドライバ管理装置、ファームウェア管理装置、コンピュータ装置、方法およびプログラム
JP2019160133A (ja) 情報処理装置、情報処理システムおよび方法
US20120166785A1 (en) Information processing apparatus, restoring method of bios setup, restoring program
US20230069169A1 (en) Information processing apparatus and control method of the same
JP5668518B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2022126549A (ja) 情報処理装置
TWI457754B (zh) 實現硬碟驅動器拷貝的應用伺服器及方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170223

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170306

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: 20170516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170607

R150 Certificate of patent or registration of utility model

Ref document number: 6157811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250