JP2006119831A - Information processor and information processing program - Google Patents
Information processor and information processing program Download PDFInfo
- Publication number
- JP2006119831A JP2006119831A JP2004305798A JP2004305798A JP2006119831A JP 2006119831 A JP2006119831 A JP 2006119831A JP 2004305798 A JP2004305798 A JP 2004305798A JP 2004305798 A JP2004305798 A JP 2004305798A JP 2006119831 A JP2006119831 A JP 2006119831A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- data
- flash memory
- sector
- backup
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、アプリケーションプログラムの変数データおよびステータスデータのバックアップを行う、情報処理装置とプログラムとに関する。 The present invention relates to an information processing apparatus and a program for backing up variable data and status data of an application program.
アプリケーションプログラムのステータスデータや変数のバックアップ処理を行う際には、バックアップ媒体として、ハードディスクやDVDなどの周辺記憶装置や、データ保存用に電池を装荷したランダムアクセスメモリ(以下、RAMという。)や、保存用のフラッシュメモリが用いられる。コストや保守性の観点からはフラッシュメモリを媒体とする方法が優れていて、容量の大きさや、データ読み出しの容易さなどが特徴として挙げられる。 When performing backup processing of status data and variables of application programs, as a backup medium, a peripheral storage device such as a hard disk or a DVD, a random access memory (hereinafter referred to as RAM) loaded with a battery for data storage, A storage flash memory is used. From the viewpoint of cost and maintainability, a method using a flash memory as a medium is excellent, and features such as large capacity and easy data reading.
フラッシュメモリを媒体とする方法では、一般にフラッシュメモリ上のあるアドレスへデータが書き込まれるとそのアドレスに対する上書き処理ができなくなる。もう一度同じアドレスに対してデータを書き込むためには、セクタと呼ばれる複数のビットからなる物理的に定められた単位全体を消去し、そのセクタ消去後に再びそのアドレスへのデータ書き込みが可能となる。 In the method using the flash memory as a medium, generally, when data is written to a certain address on the flash memory, the overwriting process cannot be performed on the address. In order to write data to the same address again, the entire physically defined unit composed of a plurality of bits called a sector is erased, and data can be written to the address again after the sector is erased.
また、フラッシュメモリ上のセクタを構成するビットの書き換えにはデータ保証回数の制限があり、一般に10の4乗回から10の6乗回のビットの書き換えが行われると不良なビットとなり、ビットの書き換えができなくなる性質がある。 In addition, there is a limit on the number of data guarantees in rewriting the bits constituting the sector on the flash memory. Generally, rewriting a bit from 10 4 to 10 6 will result in a bad bit. There is a property that cannot be rewritten.
このようなフラッシュメモリを用いてバックアップ処理を行う際には、データの書き込みは、書き込みをするアドレスからシーケンシャルに行い、セクタの最後までデータが書き込まれると、次のセクタの先頭から再びシーケンシャルにデータを書き込むシーケンシャルアクセス方式がとられる場合が多い。 When performing backup processing using such a flash memory, data is written sequentially from the address to be written, and once the data is written to the end of the sector, the data is again sequentially from the beginning of the next sector. In many cases, a sequential access method for writing is used.
また、データの管理形式としては、データをファイルとして(以下、ファイル形式という。)バックアップする形式と、データをフラッシュメモリの物理アドレスに直接書き込み(以下、アドレス形式という。)バックアップする形式とがある。 As a data management format, there are a format in which data is backed up as a file (hereinafter referred to as a file format) and a format in which data is directly written to a physical address of a flash memory (hereinafter referred to as an address format). .
ファイル形式の場合には、フラッシュメモリ上にファイル情報を記憶するディレクトリ部という領域を用意する必要があり、ディレクトリ部の書き換え頻度が大きくなりやすく、そのために不良ビットが発生しやすいという問題がある。また、構造が複雑で、そのためにデータの書き込み時間と読み出し時間が長くなりやすいという問題もある。しかし、この形式はバックアップするアプリケーション変数の型や量の変更に関して柔軟であり、アプリケーションソフトのデータ構造に無関係に変数の型や量の変更ができるという長所がある。 In the case of the file format, it is necessary to prepare an area called a directory portion for storing file information on the flash memory, and the frequency of rewriting the directory portion is likely to increase, which causes a problem that defective bits are likely to occur. There is also a problem that the structure is complicated and the data writing time and reading time tend to be long. However, this format is flexible in terms of changing the type and amount of application variables to be backed up, and has the advantage that the type and amount of variables can be changed regardless of the data structure of the application software.
一方、アドレス形式は、メモリにディレクトリ部のような特殊な領域を作る必要がなく、メモリの有効的な活用が行える。また、特殊な領域を作る必要がないためにデータ構造が単純で、そのためにデータの書き込み時間と読み出し時間が短い場合が多い。しかし、変数の型や量の変更に対応するためには、システム設計者がフラッシュメモリ上のアドレスを完全に把握する必要があるという短所をもつ。 On the other hand, the address format does not require a special area such as a directory part in the memory, and the memory can be used effectively. In addition, since it is not necessary to create a special area, the data structure is simple. For this reason, the data writing time and reading time are often short. However, in order to cope with changes in the type and amount of variables, there is a disadvantage that the system designer needs to completely grasp the address on the flash memory.
アドレス形式を用いてバックアップ処理を行うアプリケーションを設計する場合には、フラッシュメモリ上のバックアップデータのアドレスがアプリケーションソフトの構造に依存するため、システム設計者はアプリケーションプログラムの設計のたびにバックアッププログラムを再構築する必要があり、その際には、フラッシュメモリ上のアドレスを完全に把握し、データの書き込み効率やバックアップの頑健性を考慮する必要があった。 When designing an application that performs backup processing using the address format, the address of the backup data on the flash memory depends on the structure of the application software, so the system designer re-executes the backup program each time the application program is designed. In this case, it is necessary to fully grasp the address on the flash memory and consider the data writing efficiency and the robustness of the backup.
そのため、システム設計者にとって、アプリケーションの内容とは関係の薄いバックアップ処理の設計作業が増え、システム設計者の負担が重くなるという問題があった。 For this reason, there has been a problem for the system designer that the design work of backup processing that is not related to the contents of the application increases, and the burden on the system designer becomes heavy.
情報処理装置におけるフラッシュメモリを用いたバックアップ処理において、アドレス形式のバックアップ処理は、バックアップのインフラとして共通化したり再利用したりできず、システム設計者にとって、作業負担が重い場合が多いという問題があった。 In backup processing using flash memory in information processing devices, address-type backup processing cannot be shared and reused as backup infrastructure, and there is a problem that the workload is often heavy for system designers. It was.
この問題を解決するために本発明では、データの読み込み時間と書き込み時間が短いアドレス形式のデータ管理でありながら、システム設計者が容易にバックアップ処理をアプリケーションに導入でき、フラッシュメモリの書き込み効率がよく、バックアップ処理の頑健性も高い、情報処理装置またはプログラムを提供することを目的とする。 In order to solve this problem, according to the present invention, the system designer can easily introduce the backup process into the application while the data read time and the data write time are short, and the flash memory write efficiency is improved. An object of the present invention is to provide an information processing apparatus or program that has high robustness in backup processing.
以下、本発明でのバックアップ処理を図3のデータ構造を参照して説明する。 Hereinafter, backup processing according to the present invention will be described with reference to the data structure of FIG.
(1) 本発明のバックアップ処理においては、バックアップする変数データ10のRAM100上の位置と、フラッシュメモリ101上のセーブ位置との対応関係を変数IDをつけてRAM100上に変数ディレクトリ2として記憶する手段と、あらかじめ設定したセーブ条件にもとづき、前記変数データ10と前記変数IDとをセーブする情報として、新たなセーブ位置にセーブする手段とを備え一つのアプリケーション変数10には、一つの変数IDを配する。
(1) In the backup processing of the present invention, means for storing the correspondence between the position of the
このようにアプリケーション変数のRAM100上の位置(以下RAMアドレスという。)と、フラッシュメモリ101上のセーブ位置(以下フラッシュアドレスという。)とを記憶した変数ディレクトリ2というデータベースをRAM100上に設置し、その変数データ10と変数IDとを一つのセットとし、フラッシュメモリ101にバックアップする。
In this manner, a database called
変数ディレクトリ2上には、バックアップデータの様々な情報を記憶する領域(以下、フィールドという。)を配し、RAMアドレスをRAMアドレスフィールド22に記憶し、フラッシュアドレスをフラッシュアドレスフィールド23に記憶し、変数IDを変数IDフィールド21に記憶する。このように一つの変数IDに対し、複数の情報を記憶するフィールドの組20を一つ配しておく。
On the
さらに、フラッシュアドレス101上に、バックアップデータに関する記憶領域(以下、エレメントという。)4を配し、エレメント4の中にバックアップデータ16とそのバックアップデータに関する情報を記憶し(以下、この情報を記憶した領域30をヘッダという。)、このエレメント4を書き込みの単位としてフラッシュメモリ101にデータを書き込む。
Further, a storage area (hereinafter referred to as an element) 4 relating to backup data is arranged on the
バックアッププログラムは、変数データ10や、バックアップデータ16などを監視し、規定のバックアップ条件が満たされた場合には、RAM100上の変数データ10をフラッシュメモリ101上の新たなアドレスに新たなエレメント4として記憶し、変数IDヘッダ31に変数IDを記述する。また、その際には変数ディレクトリ2上のフラッシュアドレスフィールド23を移動した先の新しいフラッシュアドレスの値に更新する。
The backup program monitors the
(2) 本発明のバックアップ処理において、あるアプリケーション変数が配列変数18である場合には、その配列変数18に一つの変数IDを配し、その配列変数18の一つの要素19には一つの指数(以下、配列インデックスという。)を配し、配列要素19ごとにフラッシュメモリ101にエレメント4として記憶する。
(2) In the backup process of the present invention, when an application variable is an
また、この配列変数18の変数ディレクトリ2には、各配列要素19の配列インデックスとフラッシュアドレスとを対応付けて記憶しておくテーブル(以下、配列テーブルという。)9を設ける。
The
配列テーブル9上には、フィールドを配し、配列インデックスは配列インデックスフィールド14に記憶し、配列要素のフラッシュアドレスは配列要素フラッシュアドレスフィールド15に記憶する。 Fields are arranged on the array table 9, the array index is stored in the array index field 14, and the flash address of the array element is stored in the array element flash address field 15.
また、フラッシュメモリ101上の一つのエレメント4には、各配列要素19をバックアップデータ16として記憶するとともに、配列変数18の変数IDを変数IDヘッダ31に記憶し、配列要素19の配列インデックスを配列インデックスヘッダ32に一つのエレメント4としてバックアップする。
Further, in each
規定のバックアップ条件が満たされた場合には、フラッシュメモリ101上の新たなアドレスに、RAM100上の配列要素のデータ19を新たなエレメント4として記憶し、変数IDと配列インデックスとを記憶する。また、配列要素フラッシュアドレスフィールド15を移動した先の新しいフラッシュアドレスに更新する。
When the prescribed backup condition is satisfied, the
(3) 本発明における変数ディレクトリ2の再構築は、アプリケーションプログラムの起動時に、フラッシュメモリ101内にバックアップされていたバックアップデータ16をもとに行う。フラッシュメモリ101の先頭のセクタからシーケンシャルにフラッシュメモリ101を読み込んでいくと同時に、変数IDごとに変数ディレクトリ2を構築する。この際に、同じ変数IDのエレメント4があれば、その変数IDの変数ディレクトリ2及び変数データ10の内容は上書き処理される。フラッシュメモリ101にはシーケンシャルに新しいエレメントを記憶していくため、この上書き処理により変数ディレクトリ2及び変数データ10の内容は最新のバックアップデータ16と同期する。この変数ディレクトリ2の再構築は一度フラッシュメモリ101全体に対して行い、次にシーケンシャルに並んだ先頭のセクタから、次に書き込みを行うアドレスまで行う。
(3) The
(4) また、本発明では前記フラッシュメモリ101のセーブ領域をグループ化する。変数データ10を種類に応じてグループに分け、設定されたグループの数に従い、バックアップ処理を並列的に実行する。
(4) In the present invention, the save areas of the
(5) また、本発明におけるフラッシュメモリ101のセクタ消去は、書き込みを行うアドレスが新しいセクタに移動するときに、一番古くに書き込みが行われたセクタに対して行う。エレメント4には、そのエレメント4を消去するかを判定するためのアクティブフラグを用意し、そのアクティブフラグを記憶するアクティブフラグフィールド24を変数ディレクトリ2上に配し、活性化したフラグを持つ変数IDであって消去セクタ上に最新のバックアップデータがある場合には、そのエレメント4を新たなセクタへと複写する。消去セクタ上の消してはいけないエレメント4を全て移動させた後にセクタ消去を行う。
(5) Further, sector erasure of the
(6) また、本発明では、システムのハードウェアに電源電圧の低下(以下、パワーフェイルという。)が起こったときに、優先してバックアップするデータ(以下、パワーフェイルデータという。)が設定されている場合、セクタ消去が実行される前の段階で毎回必ずパワーフェイルデータのバックアップを行う。 (6) In the present invention, when power supply voltage drops (hereinafter referred to as power fail) occurs in the system hardware, data to be preferentially backed up (hereinafter referred to as power fail data) is set. In this case, the power fail data is always backed up every time before the sector erase is executed.
本発明によれば、アドレス形式のデータ管理でありながらも異なるアプリケーションやハードウェアに共通に利用可能で、システム設計者が容易にバックアップをアプリケーションプログラムに導入でき、再利用も容易なバックアップ方式を提供できる。 According to the present invention, although it is data management in an address format, it can be used in common for different applications and hardware, a system designer can easily introduce backup into an application program, and provides a backup method that can be easily reused it can.
(1) また本発明によれば、変数ディレクトリを用いることで、アプリケーションプログラムの設計者は、バックアップ処理におけるフラッシュメモリのアドレス管理を、変数IDを介した管理にルーチン化することができ、作業負担の減少をさせることができる。 (1) Further, according to the present invention, by using the variable directory, the designer of the application program can routinely manage the address management of the flash memory in the backup process to the management via the variable ID, and the work load Can be reduced.
(2) また本発明によれば、配列要素を個別にバックアップ処理することにより、配列変数全体をバックアップ処理する場合に比べてデータ書き換え量を抑制でき、フラッシュメモリの長寿化が実現できる。 (2) Further, according to the present invention, the array element is individually backed up, so that the amount of data rewrite can be suppressed as compared with the case where the entire array variable is backed up, and the life of the flash memory can be increased.
(3) また、本発明の変数ディレクトリ再構築手段によれば、最新のデータを判定する必要がなく、また特別な判別フラグも必要としないため、簡易なデータ構造で再構築が行うことができる。 (3) Further, according to the variable directory restructuring means of the present invention, it is not necessary to determine the latest data, and no special discrimination flag is required, so that the reconstruction can be performed with a simple data structure. .
(4) また、本発明のセクタグループ化手段によれば、データの重要度に応じて、データバックアップの頻度をそろえ、効率的なセクタ利用と調寿命化を実現することができる。 (4) Further, according to the sector grouping means of the present invention, the frequency of data backup can be adjusted in accordance with the importance of data, and efficient sector utilization and life adjustment can be realized.
(5) また、本発明のセクタ消去手段によれば、セクタ消去はセクタ3に書き込み可能な領域がなくなったときにのみ行われる。そのために、セクタ消去はデータ書き込み量にのみ依存させることができ。非常に小さいセクタ消去頻度を実現できる。
(5) Further, according to the sector erasing means of the present invention, sector erasure is performed only when there is no writable area in
(6) また、本発明のパワーフェイルデータのバックアップ手段によれば、フラッシュメモリのセクタ消去中にパワーフェイルが起こった場合でも、確実にパワーフェイルデータをバックアップすることができる。 (6) Further, according to the power fail data backup means of the present invention, power fail data can be reliably backed up even when a power fail occurs during sector erasure of the flash memory.
図1は本発明の実施形態例であるフラッシュメモリと変数ディレクトリとRAM上の変数データとを配した情報処理装置の構成図であり、図3は、一つの変数IDに対応した変数ディレクトリと、エレメントとの概観図である。 FIG. 1 is a configuration diagram of an information processing apparatus in which a flash memory, a variable directory, and variable data on a RAM according to an embodiment of the present invention are arranged. FIG. 3 shows a variable directory corresponding to one variable ID, It is a general-view figure with an element.
情報処理装置202は、アプリケーションプログラムのバックアップ以外の処理を行うアプリケーションモジュール200とバックアップ処理を行うバックアップモジュール201とで構成されていて、中央演算回路5にフラッシュメモリ101、RAM100、入力デバイス6および出力デバイス7が接続されている。アプリケーションモジュール200には、RAM100上にアプリケーション変数のデータを変数データリスト1として配する。
The
バックアップモジュール201には、変数ディレクトリ2上に、一つの変数IDごとに複数の情報を記憶させておくフィールドの組20を配する。フィールドとしてはRAMアドレスを記憶するRAMアドレスフィールド22および、フラッシュアドレスを記憶するフラッシュアドレスフィールド23、変数IDを記憶する変数IDフィールド21、セクタ消去の際に新たなセクタ3に移動するかを判定するアクティブフラグフィールド24などを用いる。また、フラッシュメモリ101のエレメント4上には、バックアップデータ16とともに複数の情報を記憶させておくヘッダの組30を配する。ヘッダとしては、変数IDを記憶する変数IDヘッダ31や、配列インデックスを記憶させておく配列インデックスヘッダ32、データサイズを示すサイズヘッダ34、などを用いる。
In the
また、この実施形態では、以降で示すさまざまな処理のために複数のフィールドやヘッダを用いている。変数データが配列変数かどうかを記述するタイプフィールド42、配列変数の場合に配列数を記述する配列数フィールド25、単体の変数の場合には変数のビットサイズを記述しておき、配列変数の場合には要素のビットサイズを記述しておくサイズフィールド43、変数データを登録および復帰させる場合にそのバックアップデータを復帰させるかをアプリケーションモジュールにより登録される登録フラグフィールド27、セクタ消去時にも消去することなく保存を続けるべきバックアップデータを登録するパーマネントフラグフィールド28、バックアップ条件の種類を記述しておく条件フィールド26などが用いられる。
In this embodiment, a plurality of fields and headers are used for various processes described below. A type field 42 that describes whether the variable data is an array variable, an
なお、変数ディレクトリ2上に、クリティカルフラグフィールド44を設け、変数データ10を読み出す時のアクセス方式が割り込み禁止によるアクセスかどうかを判定し、割り込み禁止機能を実現することもできる。また、バックアップデータが保存されているセクタ3の番号を記憶しておく新セクタフィールド45、ひとつ前のバックアップデータが保存されているセクタ3の番号を記憶しておく旧セクタフィールド46、ひとつ前のバックアップデータが保存されているエレメント4のアドレスを記憶しておく旧フラッシュアドレスフィールド47、バックアップデータがエラーを含んでいる場合にエラーを記述しておくエラーフラグフィールド48などを記憶させておいて、一つ前のバックアップデータの特定や、変数データの特定、変数データの変更検知などに用いてもよい。
It is also possible to provide a critical flag field 44 on the
また、条件フィールド26より指定されるバックアップ条件の種類としては、アプリケーションから指定されるタイミングをコマンドフィールド41に記憶し実行される場合や、あらかじめ周期フィールド40に記憶されたタイミングで実行される場合や、カウンタフィールド29でのカウントに基づいて実行される場合などのタイミングで実行することができる。また、バックアップを行う条件として、RAMアドレスとフラッシュアドレスとが指定するそれぞれのデータをアプリケーションモジュール200で監視し、データの内容に変更が行われた場合には変数データ10をバックアップするという条件を加えてもよい。以上のような様々な条件に従いRAMアドレスの指定する変数データ10と、変数ディレクトリ2や配列テーブル9に保存されている情報とを、新たなエレメント4としてフラッシュメモリ101上のアドレスにバックアップする。
Further, as the types of backup conditions specified from the
以上のようにアプリケーションプログラム実行時には、変数データリスト1上のある変数データ10に対して、アプリケーションによる読み出しあるいは変更が行われる。また、その変数IDの変数ディレクトリ2では、RAMアドレスフィールド22に記憶したRAMアドレスをもとに変数データリスト1上の変数データ10を参照し、フラッシュアドレスフィールド23をもとにエレメント4上のバックアップデータ16のアドレスを得る。そして、あらかじめ設定したバックアップ条件に従い、前期変数データ10をフラッシュメモリ101上の新たなアドレスに記憶する。その際バックアップモジュール201はアプリケーションモジュール200の通常時の処理とは切り離し実行する。
As described above, when executing the application program, the
また、配列変数の場合、各配列要素を一つのエレメント4として新たなフラッシュアドレスにバックアップする。変数ディレクトリ2に保存されたあるひとつの変数IDが示すデータが配列変数18である場合、変数ディレクトリ2上のフラッシュアドレスフィールド23は、RAM100上に別途設置された配列テーブル9のRAMアドレスを記憶し、変数ディレクトリ2上に配列数フィールド25を設ける。配列テーブル9では、それぞれの配列要素19を区別する配列インデックスとそれぞれの配列要素19のフラッシュアドレス上でのアドレスとを対応付ける。このようにフラッシュメモリ101上での配列要素19のアドレス管理を一つ一つ行うことにより、たとえば配列変数18のひとつの要素19のみにデータの変更が起こった場合に、配列全体18をバックアップデータ16としてバックアップ処理するのではなく、その配列要素19のみをバックアップデータ16としてバックアップ処理することができる。
In the case of an array variable, each array element is backed up as a
なお、変数ディレクトリ2上のRAMアドレスフィールド22が指定するRAMアドレスと配列要素19のデータサイズとから各配列要素のRAM100上のデータ19を特定することができる。
The
なお、この例においては配列変数18に変数IDを附してバックアップ処理を行うが、配列要素19に変数IDを附してバックアップ処理を行ってもよい。
In this example, the
次に、フラッシュメモリ101内へのデータの複写方法を図2で表す。一つのエレメント4ごとに、ひとつのバックアップデータ16と、そのバックアップデータに対応した情報をヘッダ30として記憶している。まず変数データ10の保存はフラッシュメモリ101の先頭のセクタ3の先頭アドレスからシーケンシャルに行う。図2(a)のように、書き込みが行われているセクタ3に書き込み予定のデータのサイズよりも大きい空き領域がある場合には、空き領域にデータを書き込む。一方、図2(b)のように、データサイズ分の空き領域がない場合には、次のセクタ領域を新たな書き込みを行うセクタ領域とする。
Next, a method of copying data into the
新たなセクタに書き込み領域が移る際には、フラッシュメモリ101の先頭セクタからシーケンシャルにフラッシュメモリ101上の空きセクタ領域を検索する。その結果、フラッシュメモリ101の書き込みを行っていたセクタ3から規定数先までのセクタ領域が空き領域でなければ、もっとも前に書き込んだセクタを消去する。消去の際には消去対象のセクタ3に含まれるエレメント4すべてを一度に消去する。図2(c)のように規定数先のセクタ領域から、消さずに保存しておくべきエレメント4を新しいセクタに複写した後、消去セクタのデータを消去する。
When the writing area moves to a new sector, an empty sector area on the
これにより、フラッシュメモリ101上には規定数の連続してデータ消去されたセクタ領域と、連続して書き込まれているセクタ領域とが常に存在する。
Thus, a prescribed number of consecutively erased sector areas and continuously written sector areas always exist on the
また、フラッシュメモリ101の最後尾のセクタまで消去され、新たにセクタ消去を行う必要がある場合には、フラッシュメモリ先頭のセクタ領域を消去する。すると、このフラッシュメモリ101の書き込み領域と非書き込み領域は、常に円環状に循環し、循環して連続な書き込み領域の先頭のセクタには最も古い変数データがバックアップされ、循環して連続な書き込み領域の最後尾のセクタの、最後尾のアドレスに、バックアップするエレメント4を書き込む。
When the last sector of the
セクタ消去時に、一定の条件を満たすエレメント4は新しいセクタ3に移動させる。このエレメント4は、アプリケーションが使用していてバックアップを行うように登録されたエレメント4のみではなく、消去せずにフラッシュメモリ101上に常に残すように登録されたバックアップデータのエレメント4も含む。エレメント4にはそのエレメントが変数ディレクトリ2に登録されているという情報を記憶しておく登録フラグフィールド27と、消去せずに常に残しておくという情報を記憶しておくパーマネントフラグフィールド28とが配されており、フラッシュメモリ101上のエレメント4にはパーマネントフラグを記憶する属性フラグ・チェックサムヘッダ35が配され、パーマネントフラグの状態をフラッシュメモリ101のバックアップデータ上にも保存される。登録フラグがONの変数とパーマネントフラグがONの変数は、セクタ消去の際に消去されずに新しいセクタ3に移動する。
At the time of sector erasing, the
次に、バックアップ処理を行うタイミングについて述べる。バックアップを定期的に行う場合には、アプリケーションからバックアップモジュール201を、何らかの形で自動的に繰り返し呼び出す。バックアップモジュール201側で、変数ディレクトリ2に条件フィールド26を配し、時間をカウントして定期処理を行う場合に用いられる周期フィールド40やカウンタフィールド29などを配した構成にして時間計測を行い、アプリケーションによってあらかじめ登録された周期に達した場合にバックアップ処理を行う。
Next, the timing for performing the backup process will be described. When the backup is periodically performed, the
また、変数データ10に変更が加わるたびにバックアップ処理を行いたい場合には、変数ディレクトリ2のRAMアドレスフィールド22の指し示す変数データ10とフラッシュアドレスフィールド23の指し示すバックアップデータ16を逐次比較し、2つの値が異なる場合に、バックアップ処理を行う。
When it is desired to perform a backup process every time the
また、アプリケーション側で任意にバックアップ処理を行うタイミングを指定する場合には、変数ディレクトリ2に、同時にコマンドフィールド41を配し、アプリケーションからの指示を保存する。このコマンドフィールド41を監視し、バックアップが指示されるとバックアップを行う。
In addition, in order to arbitrarily specify the timing at which backup processing is performed on the application side, a command field 41 is simultaneously placed in the
ここで図4に条件別バックアップ実施例の処理フローを示す。複数のアプリケーションデータに対してそれぞれ異なるタイミングで条件付けてバックアップ処理を行う。バックアップ処理に演算回路の処理が渡された場合に変数ディレクトリ2に登録されているすべての変数IDに対して、以下の処理が行われる。まずステップ1においてコマンドフィールド41にアプリケーションからのバックアップ指示の設定がされているかを判定し、バックアップ指示の設定を与えられている変数である場合には、ステップ9においてバックアップ処理が行われる。
FIG. 4 shows the processing flow of the backup example according to conditions. Backup processing is performed with a condition at different timings for a plurality of application data. When the processing of the arithmetic circuit is transferred to the backup processing, the following processing is performed for all the variable IDs registered in the
また、バックアップ指示の設定がない場合においても、ステップ2において条件フィールド26を読み込み、バックアップが変数変化時に行うように設定されている場合には、ステップ3において、変数がデフォルト値を維持し続けているならばバックアップ処理を行わない。またそうでない場合はステップ4において変数に変化が起きているかを、変数ディレクトリ2のRAMアドレスフィールド22の指定する値とフラッシュアドレスフィールド23の指定する値とを比較することで検知する。変化がない場合にはバックアップを行わないが、変化があった場合においても、ステップ5においてさらに、変化している状態が数ターン維持されていることを条件に加えて、その条件を満たした後バックアップ処理がステップ10で行う。
Even when there is no backup instruction setting, if the
また、バックアップ条件が変数変化時ではない場合においても、ステップ6において条件フィールド26を読み込み、定期的にバックアップ処理を行うように設定されていれば定期バックアップ処理を行う。ステップ7において、定期時間かどうかを判定し、定期時間であればステップ8の処理を行う。ステップ8では、変数がデフォルト値を維持し続けているかを判定する。そして、維持し続けていない場合にはバックアップ処理を行う。
Even when the backup condition is not when the variable is changed, the
ステップ3とステップ8とにおいて、変数がデフォルト値を維持し続けているならばバックアップ処理を行わないように設定する。変数が宣言された当初から、規定値を維持し続けている場合には、バックアップを行う必要がなく、この条件を判定することでバックアップ処理の量を抑制できる。たとえば変数の宣言時には全ての変数を0に設定すれば過去のバックアップデータがない変数データで値が0のデータはバックアップを省くことができる。
In
ステップ5においてさらに、変化している状態が数ターン維持されていることを条件に加える場合には、アプリケーション設計者がバックアップの条件として任意に時間を設定する。
Further, in
また、条件フィールド26にバックアップ条件が記述されていないデータはバックアップ処理されない。
Also, data for which no backup condition is described in the
次に、アプリケーションの起動時のアプリケーション変数への値の回復処理について説明する。アプリケーションの起動時には、バックアップデータ16から変数ディレクトリ2を再構築するとともに、変数データリスト1を再編成する。変数ディレクトリ2を構築した後、アプリケーションが指定する再使用したいデータの変数IDのバックアップデータ16が、変数データリスト1に読み込まれるとともに、バックアップを取る変数IDが指定され変数ディレクトリ2の登録フラグフィールド27に登録される。
Next, a process for recovering the value of the application variable at the time of starting the application will be described. When the application is started, the
通常、フラッシュメモリ101上には、循環して連続な書き込み済みセクタ領域と、同様に連続な非書き込みセクタ領域とが設置される。また、書き込み済みセクタ領域には、同一変数IDのバックアップデータが複数回書き込まれている。データはシーケンシャルに並び、連続して書き込まれた領域のもっとも先頭のデータが最も古くに書き込まれたデータで、そこから時間順に記憶されている。そのため、最も新しいデータは、同一変数IDのエレメントのうち、最も後方のエレメントに位置する。
In general, on the
変数ディレクトリ2の再構築の際には、まず、フラッシュメモリ101の先頭セクタの先頭アドレスから最後尾セクタの最後尾アドレスまで、すべてのバックアップデータ16をシーケンシャルに変数ディレクトリ2へと書き込む。同時に、シーケンシャルに並んだエレメントのうち最も後方のエレメントの位置を検索しておき、再び先頭セクタから検索したエレメントまでの再書き込みを行う。これにより、常に最も新しいデータで変数ディレクトリ2の変数IDが上書き処理される。
When the
この変数ディレクトリ2の再構築により、フラッシュアドレス101にバックアップされたデータと変数ディレクトリ2とを整合させる。その後、さらにアプリケーションの変数データリスト1との整合をとったり、バックアップ処理条件の登録を受けたりしてもよい。
By reconstructing the
次に、アプリケーション側から見た場合のバックアップ実行のための手続きを図5で示す。ステップ30のアプリケーションからのバックアップモジュール起動処理により、ステップ20のバックアップ処理が起動する。バックアップ処理が起動すると、ステップ21で前述の変数ディレクトリ2の再構築を行う。このときに同時にアプリケーションプログラムによって変数のバックアップ条件の情報がステップ31において登録される。このときに登録される変数の変数IDが、変数ディレクトリ2にすでにある場合には、その変数を登録し登録フラグをONにするとともに、バックアップデータの値が変数ディレクトリ2内の変数アドレスが示すRAMアドレスに書かれアプリケーションの変数データ10として用いられる。また、変数ディレクトリ2に存在しない変数IDの場合には変数ディレクトリ2に新たな変数IDを持つデータとして登録される(ステップ22)。
Next, FIG. 5 shows a procedure for executing backup when viewed from the application side. By the backup module activation process from the application in
以降、内部処理が渡されると、ステップ23のバックアップ処理を行う。内部処理の引渡しは、アプリケーションプログラムのサブルーチンの形式でもよく、スケジューラ等によって内部処理が引き渡されるバックグラウンド処理の形式でもよい。アプリケーションプログラムからのバックアップ処理の呼び出しは、通常は以上の起動と登録との手順のみであるが、登録された設定のバックアップ条件以外の条件でバックアップを行いたいときに用いるステップ32のバックアップ指示と、ステップ33のバックアップ設定の変更を行うための再設定とは、随意に呼び出すことができる。
Thereafter, when the internal processing is passed, the backup processing in
このように、アプリケーションプログラムからの呼び出しは起動と登録のみでバックアップを実行する。 In this way, the backup from the application program is executed only by activation and registration.
このような構成にすることで、アプリケーションの変更があった場合にも、消去したくないデータと変数IDを残すことができる。アプリケーション起動時の変数IDの登録以外、アプリケーションへの依存がないために、アプリケーションに何らかの変更が行われた場合において、新しい変数に対しては新しい変数IDを登録させることで対応し、変更に対する冗長性を高くすることができる。 With such a configuration, it is possible to leave data and variable IDs that are not desired to be deleted even when there is a change in application. Since there is no dependency on the application other than the registration of the variable ID at the time of starting the application, if any change is made to the application, a new variable ID can be registered for the new variable, and the change is redundant. Sexuality can be increased.
次に、終了処理以外での電源断が発生し、フラッシュデータの書き込みエラーが起こったとしても、エラーデータを読み込むことなく、代替となる過去のデータを自動的に読み込んで対応する例を示す。 Next, an example will be described in which, even if a power failure occurs other than in the end process and a flash data write error occurs, past data that is alternative is automatically read and handled without reading error data.
バックアップモジュール201が起動している場合であって、何らかのデータが書き込まれている途中で電源断が発生した場合には、記述された変数IDに対応するデータがエラーデータとなっている場合がある。再起動時にそのようなエラーデータを誤って変数ディレクトリ2に読み込んで再構築することを避け、エラーデータを読み込まずに、エラーデータ以前にバックアップ処理されたバックアップデータを読み込む。変数ディレクトリ2の再構築は、シーケンシャルな上書き処理により行われていたため、エラーデータの判別ができれば、それを変数ディレクトリ2に読み込まないことで自動的にエラーの起こっていない最新のバックアップデータからシステムを復旧することができる。
When the
このために、エレメント4に通常のバックアップデータ16と同時にデータサイズを記憶しておくサイズヘッダ34および、属性フラグおよびチェックサムを記憶しておく属性フラグ・チェックサムヘッダ35、を用意することで対応可能となる。バックアップデータの記述に際して、エレメント4内にデータサイズ、バックアップデータ、属性フラグおよびチェックサムの順番で記述する。このような順番で記述することにより、属性フラグおよびチェックサムを記述する前の電源断による書き込みエラーの発生に対しては、属性フラグおよびチェックサムが正しく書き込まれない。そのため、属性フラグおよびチェックサムが正しく書き込まれていないエレメント4には、書き込み途中でエラーが発生したことが検知でき、エラーデータを読みこまないようにすることができる。
For this purpose, a
また、複数の変数間に、常に同期が取られている必要がある場合、ある変数データ10が正常にバックアップされても、同時に同期すべき別の変数のバックアップ処理前に電源断等でバックアップが中断された場合にはそれを検知し、同期が取れている過去の状態に設定しなおす必要がある。
In addition, when it is necessary to always synchronize a plurality of variables, even if a certain
この同期処理は、フラッシュメモリ101内に同期フラグエレメントと終端同期フラグエレメントを備えることで対応可能となる。同期フラグエレメントと終端同期フラグエレメントには、たとえば、固有の変数IDを割り当てておき同期フラグエレメントであるということを判定可能にしておく。また、データとして同期させるグループのメンバの変数IDを記述しておく。また、同期フラグエレメントと対になるエレメントとして、終端同期フラグエレメントもあわせて記述する。ここでこの同期すべき変数グループのメンバをバックアップ処理する場合には、必ず、同期フラグエレメントと終端同期フラグエレメントとで前記メンバをはさむように記述する。このように記述することで同期グループの記述途中の電源断に対して、同期フラグエレメントとデータとして記述されたメンバと終端同期フラグエレメントが記憶された順番に従って記述されていない場合には電源断が起こったことが検知できる。また、これらのエレメントの記述の際には、変数ディレクトリ2上にルートフラグフィールド49とチェーンフィールド50を配しておく。ルートフラグには、同期して記述しておくべき変数のエレメントのうち先頭に保存するエレメントかどうかを記述しておき、チェーンフィールド50にはそのエレメントの次に保存するべき変数データ10を示しておく。同期バックアップ処理は、まずルートフラグがONになっている変数データ10を検知すると、その変数ディレクトリ2のチェーンフィールド50が示す別の変数ディレクトリ2を検索し、さらにそこからチェーンフィールド50に記述された変数ディレクトリ2を次々と検索する。そして同期フラグエレメントのデータとしてそのチェーンを記述した後それぞれの変数ディレクトリ2が示す変数データ10がバックアップされ最後に終端同期フラグエレメントを記述する。このようにして同期バックアップを実現することができる。
This synchronization processing can be handled by providing the
また、一般にフラッシュメモリ101のデータ消去には時間がかかり、その間の電源断がおこると消去作業中のセクタ全体が不定なビット列となってしまう。そのエラーデータを読み込むことがないようにするためには、常に連続して2以上のセクタ3が空き領域になっているように前記非書き込みセクタを設定すればよい。上述の書き込みを行う新しいセクタを検出する過程において、常に非書き込みセクタが2以上連続するように設定し、非書き込みセクタが連続していなければ、少なくともひとつ存在するはずの非書き込みセクタの次のセクタ3を消去する。このように処理することで、たとえ電源断により全体が不定なビットとなったセクタ3であっても常に消去の対象になるためにそこからデータが読み出されることはなくなる。また、消去予定のセクタ3に存在する有効なデータを移行した後でセクタ消去を行うために、データを移行する局面での電源断があったとしても、前述のデータ書き込みにおける電源断対策によってエラーデータの読み込みを防ぐことができる。
In general, it takes time to erase data in the
また、バックアップ処理はバックグラウンドで実行される定期的な処理であるが、情報処理装置への入力電圧が何らかの原因により低下してしまうパワーフェイルなどの特殊なタイミングで、バックアップ処理を実行したい場合がある。また、更新頻度が高い変数と、重要な変数とを区別して保存したい場合もある。 In addition, the backup process is a regular process that is executed in the background, but you may want to execute the backup process at a special timing such as power failure where the input voltage to the information processing device drops for some reason. is there. In addition, there is a case where it is desired to store a variable with a high update frequency and an important variable separately.
パワーフェイルや変数を区別して保存するには、セクタ群を多重化することで対応が可能である。たとえば変数IDを0〜FFFまでをAセクタ群として、1000からFFFFまでをBセクタ群として、それ以外をCセクタ群と分けておき、それぞれのセクタ群に対応したバックアップモジュール201を並行して実行する。
In order to distinguish and save the power fail and the variable, it is possible to multiplex the sector group. For example, variable IDs 0 to FFF are set as A sector groups, 1000 to FFFF are set as B sector groups, and the others are divided as C sector groups, and
パワーフェイル時に起動する割り込みプログラムにおいてバックアップしたい変数を登録しておき、割り込みプログラム中でバックアップモジュール201を呼び出し、パワーフェイル時にバックアップ対象の変数を多重化した別のセクタ3に記憶し、電源断に対応する。しかし、セクタ消去中のパワーフェイルの場合には、セクタ消去の処理に非常に時間がかかり、バックアップ処理を行う前に電源断がおこる事がある。このときは一般に割り込み処理でセーブ(書き込み)はできない。そのため、パワーフェイルデータが設定されている場合には、セクタ消去実行前に必ずパワーフェイルデータをバックアップセーブすることで、パワーフェイルに対しても確実にパワーフェイル対象の変数をバックアップ処理することができるようになる。たとえば、書き込みを行っていたセクタ3の空き領域のサイズが、一定のサイズより小さくなったときに、このバックアップを行い、バックアップが終了した後で消去対象のセクタ3を消去する。
Register the variable to be backed up in the interrupt program that is activated at the time of power fail, call the
以上のようにしてエラーデータを読み込むことなく正常なバックアップデータからアプリケーション変数を復旧することができ、頑健性の高いバックアップ処理を得ることができる。 As described above, application variables can be restored from normal backup data without reading error data, and a highly robust backup process can be obtained.
1 変数データリスト
2 変数ディレクトリ
3 セクタ
4 エレメント
5 中央演算回路
6 入力デバイス
7 出力デバイス
9 配列テーブル
10 RAM上の変数のデータ
14 配列インデックスフィールド
15 配列要素フラッシュアドレスフィールド
18 RAM上の配列変数のデータ
19 RAM上の配列要素のデータ
20 変数ディレクトリのフィールドの組
21 変数IDフィールド
22 RAMアドレスフィールド
23 フラッシュアドレスフィールド
24 アクティブフラグフィールド
25 配列数フィールド
26 条件フィールド
27 登録フラグフィールド
28 パーマネントフラグフィールド
29 カウンタフィールド
30 エレメントのヘッダの組
31 変数IDヘッダ
32 配列インデックスヘッダ
34 サイズヘッダ
35 属性フラグ・チェックサムヘッダ
40 周期フィールド
41 コマンドフィールド
42 タイプフィールド
43 サイズフィールド
44 クリティカルフラグフィールド
45 新セクタフィールド
46 旧セクタフィールド
47 旧フラッシュアドレスフィールド
48 エラーフラグフィールド
49 ルートフラグフィールド
50 チェーンフィールド
100 RAM
101 フラッシュメモリ
200 アプリケーションモジュール
201 バックアップモジュール
202 情報処理装置
DESCRIPTION OF
101
Claims (12)
前記変数のRAM上の位置と、フラッシュメモリ上のセーブ位置との対応関係を変数IDをつけてRAM上に記憶した変数ディレクトリとして記憶する手段と、
あらかじめ設定したセーブ条件にもとづき、前記変数のデータと前記変数IDとをセーブする情報として、フラッシュメモリ上の新たなセーブ位置にセーブする手段と、
を備えたことを特徴とする情報処理装置。 In an information processing apparatus that saves application program variables in flash memory as backup data,
Means for storing a correspondence relationship between a position of the variable on the RAM and a save position on the flash memory as a variable directory stored on the RAM with a variable ID;
Means for saving the data of the variable and the variable ID based on a preset save condition to a new save position on the flash memory as information for saving;
An information processing apparatus comprising:
前記セーブする情報として、前記配列要素を表す指数を含む請求項1記載の情報処理装置。 The variable directory includes an array table as means for specifying each array element of the array variable when the variable ID specifies an array variable,
The information processing apparatus according to claim 1, wherein the information to be saved includes an index representing the array element.
前記変数のRAM上の位置と、フラッシュメモリ上のセーブ位置との対応関係を変数IDをつけて変数ディレクトリとしてRAM上に記憶する機能と、
あらかじめ設定したセーブ条件に基づいて、前記変数のデータと前記変数IDとを、セーブする情報としてフラッシュメモリ上の新たなセーブ位置にセーブし、前記アプリケーションプログラムとは非同期に実行するセーブ機能とを、
コンピューターに実現させるためのプログラム。 In an information processing apparatus that saves application program variables in flash memory as backup data,
A function of storing a correspondence relationship between a location of the variable on the RAM and a save location on the flash memory on the RAM as a variable directory with a variable ID;
Based on a preset save condition, the variable data and the variable ID are saved in a new save position on the flash memory as information to be saved, and a save function that is executed asynchronously with the application program,
A program for realizing on a computer.
前記セーブする情報に、前記配列要素を表す指数を含めてセーブする機能とを、
コンピューターに実現させるための請求項7記載のプログラム。 The variable directory has a function of specifying each array element of the array variable in an array table when the variable ID specifies an array variable;
A function for saving the information to be saved by including an index representing the array element;
8. The program according to claim 7, which is realized by a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004305798A JP4824294B2 (en) | 2004-10-20 | 2004-10-20 | Information processing apparatus and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004305798A JP4824294B2 (en) | 2004-10-20 | 2004-10-20 | Information processing apparatus and information processing program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011173100A Division JP5398795B2 (en) | 2011-08-08 | 2011-08-08 | Information processing apparatus and information processing program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006119831A true JP2006119831A (en) | 2006-05-11 |
JP2006119831A5 JP2006119831A5 (en) | 2007-12-06 |
JP4824294B2 JP4824294B2 (en) | 2011-11-30 |
Family
ID=36537669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004305798A Active JP4824294B2 (en) | 2004-10-20 | 2004-10-20 | Information processing apparatus and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4824294B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09244954A (en) * | 1996-03-11 | 1997-09-19 | Toshiba Corp | Information storage device |
JPH10312693A (en) * | 1997-05-14 | 1998-11-24 | Nec Corp | Storage device |
JP2001014216A (en) * | 1999-06-28 | 2001-01-19 | Sharp Corp | Memory controller |
JP2002014818A (en) * | 2000-06-28 | 2002-01-18 | Mitsubishi Electric Corp | Information processor and method for preserving set parameter of bios |
JP2002229863A (en) * | 2001-02-05 | 2002-08-16 | Kyocera Mita Corp | Backup circuit |
JP2002342147A (en) * | 2001-05-18 | 2002-11-29 | Konica Corp | Nonvolatile memory device and memory control method thereof |
-
2004
- 2004-10-20 JP JP2004305798A patent/JP4824294B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09244954A (en) * | 1996-03-11 | 1997-09-19 | Toshiba Corp | Information storage device |
JPH10312693A (en) * | 1997-05-14 | 1998-11-24 | Nec Corp | Storage device |
JP2001014216A (en) * | 1999-06-28 | 2001-01-19 | Sharp Corp | Memory controller |
JP2002014818A (en) * | 2000-06-28 | 2002-01-18 | Mitsubishi Electric Corp | Information processor and method for preserving set parameter of bios |
JP2002229863A (en) * | 2001-02-05 | 2002-08-16 | Kyocera Mita Corp | Backup circuit |
JP2002342147A (en) * | 2001-05-18 | 2002-11-29 | Konica Corp | Nonvolatile memory device and memory control method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP4824294B2 (en) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241873B2 (en) | Headstart restore of first volume to a second volume | |
US8341386B2 (en) | Method for updating basic input/output system and method for repairing thereof | |
CN1331063C (en) | On-line data backup method based on data volume snapshot | |
US8065492B2 (en) | System and method for early detection of failure of a solid-state data storage system | |
TWI546818B (en) | Green nand device (gnd) driver with dram data persistence for enhanced flash endurance and performance | |
KR100204027B1 (en) | Database recovery apparatus and method using nonvolatile memory | |
US7610465B2 (en) | Method and related apparatus for data migration utilizing disk arrays | |
CN100538657C (en) | The device, the system and method that are used for time sensitive copy | |
US20070061540A1 (en) | Data storage system using segmentable virtual volumes | |
JPH06274409A (en) | Batch erasure-type nonvolatile memory | |
JP2008015769A (en) | Storage system and writing distribution method | |
JP2006120082A (en) | Memory card, semiconductor device, and control method for memory card | |
JP4460967B2 (en) | MEMORY CARD, NONVOLATILE SEMICONDUCTOR MEMORY, AND SEMICONDUCTOR MEMORY CONTROL METHOD | |
JP2019133633A (en) | Electronic computer device and method | |
JPH03224045A (en) | Data holding system | |
US20050033933A1 (en) | Systems and methods for modifying disk drive firmware in a raid storage system | |
JP5398795B2 (en) | Information processing apparatus and information processing program | |
US8688938B2 (en) | Data copying | |
CN111338850A (en) | Method and system for improving backup efficiency based on COW mode multi-snapshot | |
JPH08249218A (en) | File controller and data write method | |
JP4824294B2 (en) | Information processing apparatus and information processing program | |
KR101969799B1 (en) | Electronic device and controlling method thereof | |
JP3313576B2 (en) | Memory access control method and device | |
KR100775141B1 (en) | An implementation method of FAT file system which the journaling is applied method | |
JP2010259004A (en) | Image processing apparatus, image forming apparatus, storage device addition method, and storage device addition program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071018 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100917 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20100917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110307 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110808 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110816 |
|
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: 20110906 |
|
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: 20110908 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4824294 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140916 Year of fee payment: 3 |
|
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 |
|
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 |