JP2006119831A - Information processor and information processing program - Google Patents

Information processor and information processing program Download PDF

Info

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
Application number
JP2004305798A
Other languages
Japanese (ja)
Other versions
JP2006119831A5 (en
JP4824294B2 (en
Inventor
Yasushi Hiraoka
康 平岡
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.)
Furuno Electric Co Ltd
Original Assignee
Furuno Electric Co Ltd
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 Furuno Electric Co Ltd filed Critical Furuno Electric Co Ltd
Priority to JP2004305798A priority Critical patent/JP4824294B2/en
Publication of JP2006119831A publication Critical patent/JP2006119831A/en
Publication of JP2006119831A5 publication Critical patent/JP2006119831A5/ja
Application granted granted Critical
Publication of JP4824294B2 publication Critical patent/JP4824294B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve a problem that the revision of application finds poor redundancy due to complex management for backup processing when data on a flush memory is managed in an address format, not in a file format in the backup for application data to the flush memory. <P>SOLUTION: A database 2 is constructed for associating an address 1 on a RAM (Random Access Memory) for the application data with backup data 4 on the flush memory. One variable ID (Identification) is provided to one variable. In addition, an information processor uses a means reconstructing the variable ID from the backup data to cope with the revision of application; and a means registering the variable so that the variable ID may not depend on the application. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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 variable data 10 to be backed up on the RAM 100 and the save position on the flash memory 101 as a variable directory 2 on the RAM 100 with a variable ID attached. And means for saving the variable data 10 and the variable ID to a new save position as information for saving the variable data 10 and the variable ID based on a preset save condition, and assigning one variable ID to one application variable 10. To do.

このようにアプリケーション変数のRAM100上の位置(以下RAMアドレスという。)と、フラッシュメモリ101上のセーブ位置(以下フラッシュアドレスという。)とを記憶した変数ディレクトリ2というデータベースをRAM100上に設置し、その変数データ10と変数IDとを一つのセットとし、フラッシュメモリ101にバックアップする。   In this manner, a database called variable directory 2 storing the application variable location on the RAM 100 (hereinafter referred to as the RAM address) and the save location on the flash memory 101 (hereinafter referred to as the flash address) is installed on the RAM 100. The variable data 10 and the variable ID are set as one set and backed up in the flash memory 101.

変数ディレクトリ2上には、バックアップデータの様々な情報を記憶する領域(以下、フィールドという。)を配し、RAMアドレスをRAMアドレスフィールド22に記憶し、フラッシュアドレスをフラッシュアドレスフィールド23に記憶し、変数IDを変数IDフィールド21に記憶する。このように一つの変数IDに対し、複数の情報を記憶するフィールドの組20を一つ配しておく。   On the variable directory 2, an area (hereinafter referred to as a field) for storing various information of backup data is arranged, the RAM address is stored in the RAM address field 22, the flash address is stored in the flash address field 23, The variable ID is stored in the variable ID field 21. In this way, one field set 20 for storing a plurality of information is arranged for one variable ID.

さらに、フラッシュアドレス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 flash address 101, and the backup data 16 and information relating to the backup data are stored in the element 4 (hereinafter this information is stored). The area 30 is referred to as a header), and data is written to the flash memory 101 using the element 4 as a unit of writing.

バックアッププログラムは、変数データ10や、バックアップデータ16などを監視し、規定のバックアップ条件が満たされた場合には、RAM100上の変数データ10をフラッシュメモリ101上の新たなアドレスに新たなエレメント4として記憶し、変数IDヘッダ31に変数IDを記述する。また、その際には変数ディレクトリ2上のフラッシュアドレスフィールド23を移動した先の新しいフラッシュアドレスの値に更新する。   The backup program monitors the variable data 10, the backup data 16, and the like, and when a prescribed backup condition is satisfied, the variable data 10 on the RAM 100 is set as a new element 4 at a new address on the flash memory 101. Store the variable ID in the variable ID header 31. At that time, the flash address field 23 on the variable directory 2 is updated to the new flash address value to which it has been moved.

(2) 本発明のバックアップ処理において、あるアプリケーション変数が配列変数18である場合には、その配列変数18に一つの変数IDを配し、その配列変数18の一つの要素19には一つの指数(以下、配列インデックスという。)を配し、配列要素19ごとにフラッシュメモリ101にエレメント4として記憶する。 (2) In the backup process of the present invention, when an application variable is an array variable 18, one variable ID is assigned to the array variable 18, and one index 19 is assigned to one element 19 of the array variable 18. (Hereinafter referred to as an array index), and each array element 19 is stored as an element 4 in the flash memory 101.

また、この配列変数18の変数ディレクトリ2には、各配列要素19の配列インデックスとフラッシュアドレスとを対応付けて記憶しておくテーブル(以下、配列テーブルという。)9を設ける。   The variable directory 2 of the array variable 18 is provided with a table (hereinafter referred to as an array table) 9 for storing the array index of each array element 19 and the flash address in association with each other.

配列テーブル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 element 4 on the flash memory 101, each array element 19 is stored as backup data 16, and the variable ID of the array variable 18 is stored in the variable ID header 31, and the array index of the array element 19 is arrayed. Back up as one element 4 in the index header 32.

規定のバックアップ条件が満たされた場合には、フラッシュメモリ101上の新たなアドレスに、RAM100上の配列要素のデータ19を新たなエレメント4として記憶し、変数IDと配列インデックスとを記憶する。また、配列要素フラッシュアドレスフィールド15を移動した先の新しいフラッシュアドレスに更新する。   When the prescribed backup condition is satisfied, the array element data 19 on the RAM 100 is stored as a new element 4 at a new address on the flash memory 101, and the variable ID and array index are stored. Also, the array element flash address field 15 is updated to the new flash address to which it has been moved.

(3) 本発明における変数ディレクトリ2の再構築は、アプリケーションプログラムの起動時に、フラッシュメモリ101内にバックアップされていたバックアップデータ16をもとに行う。フラッシュメモリ101の先頭のセクタからシーケンシャルにフラッシュメモリ101を読み込んでいくと同時に、変数IDごとに変数ディレクトリ2を構築する。この際に、同じ変数IDのエレメント4があれば、その変数IDの変数ディレクトリ2及び変数データ10の内容は上書き処理される。フラッシュメモリ101にはシーケンシャルに新しいエレメントを記憶していくため、この上書き処理により変数ディレクトリ2及び変数データ10の内容は最新のバックアップデータ16と同期する。この変数ディレクトリ2の再構築は一度フラッシュメモリ101全体に対して行い、次にシーケンシャルに並んだ先頭のセクタから、次に書き込みを行うアドレスまで行う。 (3) The variable directory 2 in the present invention is reconstructed based on the backup data 16 backed up in the flash memory 101 when the application program is started. The flash memory 101 is sequentially read from the head sector of the flash memory 101, and at the same time, the variable directory 2 is constructed for each variable ID. At this time, if there is an element 4 with the same variable ID, the contents of the variable directory 2 and variable data 10 with that variable ID are overwritten. Since new elements are sequentially stored in the flash memory 101, the contents of the variable directory 2 and the variable data 10 are synchronized with the latest backup data 16 by this overwriting process. The variable directory 2 is reconstructed once for the entire flash memory 101, and then from the first sequential sector to the next writing address.

(4) また、本発明では前記フラッシュメモリ101のセーブ領域をグループ化する。変数データ10を種類に応じてグループに分け、設定されたグループの数に従い、バックアップ処理を並列的に実行する。 (4) In the present invention, the save areas of the flash memory 101 are grouped. The variable data 10 is divided into groups according to the types, and backup processing is executed in parallel according to the number of groups set.

(5) また、本発明におけるフラッシュメモリ101のセクタ消去は、書き込みを行うアドレスが新しいセクタに移動するときに、一番古くに書き込みが行われたセクタに対して行う。エレメント4には、そのエレメント4を消去するかを判定するためのアクティブフラグを用意し、そのアクティブフラグを記憶するアクティブフラグフィールド24を変数ディレクトリ2上に配し、活性化したフラグを持つ変数IDであって消去セクタ上に最新のバックアップデータがある場合には、そのエレメント4を新たなセクタへと複写する。消去セクタ上の消してはいけないエレメント4を全て移動させた後にセクタ消去を行う。 (5) Further, sector erasure of the flash memory 101 according to the present invention is performed on the oldest sector in which writing has been performed when the address to be written moves to a new sector. An active flag for determining whether to delete the element 4 is prepared for the element 4, an active flag field 24 for storing the active flag is arranged on the variable directory 2, and a variable ID having an activated flag is provided. If there is the latest backup data on the erase sector, the element 4 is copied to a new sector. Sector erasure is performed after all the elements 4 that should not be erased are moved on the erase sector.

(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 sector 3. For this reason, sector erasure can be made dependent only on the amount of data written. A very small sector erase frequency can be realized.

(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 information processing apparatus 202 includes an application module 200 that performs processing other than backup of an application program, and a backup module 201 that performs backup processing. The central processing circuit 5 includes a flash memory 101, a RAM 100, an input device 6, and an output device. 7 is connected. In the application module 200, application variable data is arranged on the RAM 100 as the variable data list 1.

バックアップモジュール201には、変数ディレクトリ2上に、一つの変数IDごとに複数の情報を記憶させておくフィールドの組20を配する。フィールドとしてはRAMアドレスを記憶するRAMアドレスフィールド22および、フラッシュアドレスを記憶するフラッシュアドレスフィールド23、変数IDを記憶する変数IDフィールド21、セクタ消去の際に新たなセクタ3に移動するかを判定するアクティブフラグフィールド24などを用いる。また、フラッシュメモリ101のエレメント4上には、バックアップデータ16とともに複数の情報を記憶させておくヘッダの組30を配する。ヘッダとしては、変数IDを記憶する変数IDヘッダ31や、配列インデックスを記憶させておく配列インデックスヘッダ32、データサイズを示すサイズヘッダ34、などを用いる。   In the backup module 201, a group of fields 20 for storing a plurality of information for each variable ID is arranged on the variable directory 2. As fields, a RAM address field 22 for storing a RAM address, a flash address field 23 for storing a flash address, a variable ID field 21 for storing a variable ID, and whether to move to a new sector 3 when erasing a sector are determined. An active flag field 24 or the like is used. Further, on the element 4 of the flash memory 101, a header set 30 for storing a plurality of pieces of information together with the backup data 16 is arranged. As the header, a variable ID header 31 that stores a variable ID, an array index header 32 that stores an array index, a size header 34 that indicates a data size, and the like are used.

また、この実施形態では、以降で示すさまざまな処理のために複数のフィールドやヘッダを用いている。変数データが配列変数かどうかを記述するタイプフィールド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 array number field 25 that describes the number of arrays in the case of an array variable, a bit size of the variable in the case of a single variable, and an array variable Includes a size field 43 that describes the bit size of the element, a registration flag field 27 that is registered by the application module to indicate whether the backup data is restored when variable data is registered and restored, and is erased even when erasing a sector A permanent flag field 28 for registering backup data to be continuously saved and a condition field 26 for describing the type of backup condition are used.

なお、変数ディレクトリ2上に、クリティカルフラグフィールド44を設け、変数データ10を読み出す時のアクセス方式が割り込み禁止によるアクセスかどうかを判定し、割り込み禁止機能を実現することもできる。また、バックアップデータが保存されているセクタ3の番号を記憶しておく新セクタフィールド45、ひとつ前のバックアップデータが保存されているセクタ3の番号を記憶しておく旧セクタフィールド46、ひとつ前のバックアップデータが保存されているエレメント4のアドレスを記憶しておく旧フラッシュアドレスフィールド47、バックアップデータがエラーを含んでいる場合にエラーを記述しておくエラーフラグフィールド48などを記憶させておいて、一つ前のバックアップデータの特定や、変数データの特定、変数データの変更検知などに用いてもよい。   It is also possible to provide a critical flag field 44 on the variable directory 2 and determine whether the access method when reading the variable data 10 is an access by interrupt prohibition, thereby realizing an interrupt prohibition function. In addition, a new sector field 45 for storing the number of the sector 3 in which the backup data is stored, an old sector field 46 for storing the number of the sector 3 in which the previous backup data is stored, and the previous sector field 46 are stored. An old flash address field 47 for storing the address of the element 4 where the backup data is stored, an error flag field 48 for describing an error when the backup data includes an error, and the like are stored. It may be used for specifying the previous backup data, specifying variable data, detecting change of variable data, and the like.

また、条件フィールド26より指定されるバックアップ条件の種類としては、アプリケーションから指定されるタイミングをコマンドフィールド41に記憶し実行される場合や、あらかじめ周期フィールド40に記憶されたタイミングで実行される場合や、カウンタフィールド29でのカウントに基づいて実行される場合などのタイミングで実行することができる。また、バックアップを行う条件として、RAMアドレスとフラッシュアドレスとが指定するそれぞれのデータをアプリケーションモジュール200で監視し、データの内容に変更が行われた場合には変数データ10をバックアップするという条件を加えてもよい。以上のような様々な条件に従いRAMアドレスの指定する変数データ10と、変数ディレクトリ2や配列テーブル9に保存されている情報とを、新たなエレメント4としてフラッシュメモリ101上のアドレスにバックアップする。   Further, as the types of backup conditions specified from the condition field 26, the timing specified by the application is stored in the command field 41 and executed, or the backup condition specified in the period field 40 is executed in advance. It can be executed at a timing such as when it is executed based on the count in the counter field 29. Further, as a condition for performing backup, the application module 200 monitors each data specified by the RAM address and the flash address, and when the data contents are changed, the condition that the variable data 10 is backed up is added. May be. The variable data 10 specified by the RAM address and the information stored in the variable directory 2 and the array table 9 are backed up as new elements 4 to the addresses on the flash memory 101 according to the various conditions as described above.

以上のようにアプリケーションプログラム実行時には、変数データリスト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 variable data 10 on the variable data list 1 is read or changed by the application. In the variable directory 2 of the variable ID, the variable data 10 on the variable data list 1 is referred to based on the RAM address stored in the RAM address field 22 and the backup on the element 4 based on the flash address field 23. The address of data 16 is obtained. Then, the previous period variable data 10 is stored in a new address on the flash memory 101 in accordance with a preset backup condition. At that time, the backup module 201 executes it separately from the normal processing of the application module 200.

また、配列変数の場合、各配列要素を一つのエレメント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 single element 4 to a new flash address. When the data indicated by one variable ID stored in the variable directory 2 is the array variable 18, the flash address field 23 on the variable directory 2 stores the RAM address of the array table 9 separately installed on the RAM 100. The array number field 25 is provided on the variable directory 2. In the array table 9, an array index for distinguishing each array element 19 is associated with an address on the flash address of each array element 19. Thus, by performing address management of the array elements 19 on the flash memory 101 one by one, for example, when data change occurs in only one element 19 of the array variable 18, the entire array 18 is backed up as backup data. Instead of backup processing as 16, only the array element 19 can be backed up as backup data 16.

なお、変数ディレクトリ2上のRAMアドレスフィールド22が指定するRAMアドレスと配列要素19のデータサイズとから各配列要素のRAM100上のデータ19を特定することができる。   The data 19 on the RAM 100 of each array element can be specified from the RAM address specified by the RAM address field 22 on the variable directory 2 and the data size of the array element 19.

なお、この例においては配列変数18に変数IDを附してバックアップ処理を行うが、配列要素19に変数IDを附してバックアップ処理を行ってもよい。   In this example, the array variable 18 is assigned a variable ID to perform backup processing, but the array element 19 may be assigned a variable ID to perform backup processing.

次に、フラッシュメモリ101内へのデータの複写方法を図2で表す。一つのエレメント4ごとに、ひとつのバックアップデータ16と、そのバックアップデータに対応した情報をヘッダ30として記憶している。まず変数データ10の保存はフラッシュメモリ101の先頭のセクタ3の先頭アドレスからシーケンシャルに行う。図2(a)のように、書き込みが行われているセクタ3に書き込み予定のデータのサイズよりも大きい空き領域がある場合には、空き領域にデータを書き込む。一方、図2(b)のように、データサイズ分の空き領域がない場合には、次のセクタ領域を新たな書き込みを行うセクタ領域とする。   Next, a method of copying data into the flash memory 101 is shown in FIG. For each element 4, one backup data 16 and information corresponding to the backup data are stored as a header 30. First, the variable data 10 is stored sequentially from the top address of the top sector 3 of the flash memory 101. As shown in FIG. 2A, when there is an empty area larger than the size of data to be written in the sector 3 in which writing is performed, data is written into the empty area. On the other hand, as shown in FIG. 2B, when there is no empty area for the data size, the next sector area is set as a sector area for new writing.

新たなセクタに書き込み領域が移る際には、フラッシュメモリ101の先頭セクタからシーケンシャルにフラッシュメモリ101上の空きセクタ領域を検索する。その結果、フラッシュメモリ101の書き込みを行っていたセクタ3から規定数先までのセクタ領域が空き領域でなければ、もっとも前に書き込んだセクタを消去する。消去の際には消去対象のセクタ3に含まれるエレメント4すべてを一度に消去する。図2(c)のように規定数先のセクタ領域から、消さずに保存しておくべきエレメント4を新しいセクタに複写した後、消去セクタのデータを消去する。   When the writing area moves to a new sector, an empty sector area on the flash memory 101 is searched sequentially from the first sector of the flash memory 101. As a result, if the sector area from the sector 3 to which the flash memory 101 has been written to the specified number of sectors is not an empty area, the sector written most recently is erased. When erasing, all the elements 4 included in the sector 3 to be erased are erased at once. As shown in FIG. 2C, after copying the element 4 to be stored without erasing from the sector area ahead of the specified number to a new sector, the data in the erase sector is erased.

これにより、フラッシュメモリ101上には規定数の連続してデータ消去されたセクタ領域と、連続して書き込まれているセクタ領域とが常に存在する。   Thus, a prescribed number of consecutively erased sector areas and continuously written sector areas always exist on the flash memory 101.

また、フラッシュメモリ101の最後尾のセクタまで消去され、新たにセクタ消去を行う必要がある場合には、フラッシュメモリ先頭のセクタ領域を消去する。すると、このフラッシュメモリ101の書き込み領域と非書き込み領域は、常に円環状に循環し、循環して連続な書き込み領域の先頭のセクタには最も古い変数データがバックアップされ、循環して連続な書き込み領域の最後尾のセクタの、最後尾のアドレスに、バックアップするエレメント4を書き込む。   When the last sector of the flash memory 101 is erased and a new sector erase is required, the first sector area of the flash memory is erased. Then, the writing area and the non-writing area of the flash memory 101 are always circularly circulated, and the oldest variable data is backed up in the first sector of the circular continuous writing area. The element 4 to be backed up is written at the last address of the last sector.

セクタ消去時に、一定の条件を満たすエレメント4は新しいセクタ3に移動させる。このエレメント4は、アプリケーションが使用していてバックアップを行うように登録されたエレメント4のみではなく、消去せずにフラッシュメモリ101上に常に残すように登録されたバックアップデータのエレメント4も含む。エレメント4にはそのエレメントが変数ディレクトリ2に登録されているという情報を記憶しておく登録フラグフィールド27と、消去せずに常に残しておくという情報を記憶しておくパーマネントフラグフィールド28とが配されており、フラッシュメモリ101上のエレメント4にはパーマネントフラグを記憶する属性フラグ・チェックサムヘッダ35が配され、パーマネントフラグの状態をフラッシュメモリ101のバックアップデータ上にも保存される。登録フラグがONの変数とパーマネントフラグがONの変数は、セクタ消去の際に消去されずに新しいセクタ3に移動する。   At the time of sector erasing, the element 4 that satisfies a certain condition is moved to a new sector 3. This element 4 includes not only the element 4 that is used by the application and registered to perform backup, but also the element 4 of backup data that is registered so as to always remain on the flash memory 101 without being erased. The element 4 has a registration flag field 27 for storing information that the element is registered in the variable directory 2 and a permanent flag field 28 for storing information that the element is always left without being deleted. The attribute flag / checksum header 35 for storing the permanent flag is arranged in the element 4 on the flash memory 101, and the state of the permanent flag is also saved on the backup data of the flash memory 101. A variable whose registration flag is ON and a variable whose permanent flag is ON are moved to a new sector 3 without being erased when the sector is erased.

次に、バックアップ処理を行うタイミングについて述べる。バックアップを定期的に行う場合には、アプリケーションからバックアップモジュール201を、何らかの形で自動的に繰り返し呼び出す。バックアップモジュール201側で、変数ディレクトリ2に条件フィールド26を配し、時間をカウントして定期処理を行う場合に用いられる周期フィールド40やカウンタフィールド29などを配した構成にして時間計測を行い、アプリケーションによってあらかじめ登録された周期に達した場合にバックアップ処理を行う。   Next, the timing for performing the backup process will be described. When the backup is periodically performed, the backup module 201 is automatically and repeatedly called from the application in some form. On the backup module 201 side, the condition field 26 is arranged in the variable directory 2, the time is measured with a configuration in which the periodic field 40, the counter field 29, etc. used for counting time and performing periodic processing are arranged, and the application Backup processing is performed when the period registered in advance is reached.

また、変数データ10に変更が加わるたびにバックアップ処理を行いたい場合には、変数ディレクトリ2のRAMアドレスフィールド22の指し示す変数データ10とフラッシュアドレスフィールド23の指し示すバックアップデータ16を逐次比較し、2つの値が異なる場合に、バックアップ処理を行う。   When it is desired to perform a backup process every time the variable data 10 is changed, the variable data 10 indicated by the RAM address field 22 of the variable directory 2 and the backup data 16 indicated by the flash address field 23 are sequentially compared, Backup processing is performed when the values are different.

また、アプリケーション側で任意にバックアップ処理を行うタイミングを指定する場合には、変数ディレクトリ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 variable directory 2 and an instruction from the application is stored. The command field 41 is monitored, and backup is performed when backup is instructed.

ここで図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 variable directory 2. First, in step 1, it is determined whether a backup instruction from the application is set in the command field 41. If the variable is a backup instruction setting, backup processing is performed in step 9.

また、バックアップ指示の設定がない場合においても、ステップ2において条件フィールド26を読み込み、バックアップが変数変化時に行うように設定されている場合には、ステップ3において、変数がデフォルト値を維持し続けているならばバックアップ処理を行わない。またそうでない場合はステップ4において変数に変化が起きているかを、変数ディレクトリ2のRAMアドレスフィールド22の指定する値とフラッシュアドレスフィールド23の指定する値とを比較することで検知する。変化がない場合にはバックアップを行わないが、変化があった場合においても、ステップ5においてさらに、変化している状態が数ターン維持されていることを条件に加えて、その条件を満たした後バックアップ処理がステップ10で行う。   Even when there is no backup instruction setting, if the condition field 26 is read in step 2 and the backup is set to be performed when the variable changes, the variable continues to maintain the default value in step 3. If so, backup processing is not performed. If not, it is detected in step 4 by comparing the value designated in the RAM address field 22 of the variable directory 2 with the value designated in the flash address field 23 in step 4. If there is no change, backup is not performed, but even if there is a change, in step 5, in addition to the condition that the changed state is maintained for several turns, after satisfying that condition Backup processing is performed in step 10.

また、バックアップ条件が変数変化時ではない場合においても、ステップ6において条件フィールド26を読み込み、定期的にバックアップ処理を行うように設定されていれば定期バックアップ処理を行う。ステップ7において、定期時間かどうかを判定し、定期時間であればステップ8の処理を行う。ステップ8では、変数がデフォルト値を維持し続けているかを判定する。そして、維持し続けていない場合にはバックアップ処理を行う。   Even when the backup condition is not when the variable is changed, the condition field 26 is read in step 6, and if the backup process is set to be performed periodically, the periodic backup process is performed. In step 7, it is determined whether it is a regular time. If it is a regular time, the process of step 8 is performed. In step 8, it is determined whether the variable continues to maintain the default value. If it is not maintained, backup processing is performed.

ステップ3とステップ8とにおいて、変数がデフォルト値を維持し続けているならばバックアップ処理を行わないように設定する。変数が宣言された当初から、規定値を維持し続けている場合には、バックアップを行う必要がなく、この条件を判定することでバックアップ処理の量を抑制できる。たとえば変数の宣言時には全ての変数を0に設定すれば過去のバックアップデータがない変数データで値が0のデータはバックアップを省くことができる。   In step 3 and step 8, setting is made so that backup processing is not performed if the variable continues to maintain the default value. If the specified value has been maintained since the beginning of the variable declaration, it is not necessary to perform backup, and the amount of backup processing can be suppressed by determining this condition. For example, if all variables are set to 0 when declaring variables, backup of variable data that has no backup data in the past and that has a value of 0 can be omitted.

ステップ5においてさらに、変化している状態が数ターン維持されていることを条件に加える場合には、アプリケーション設計者がバックアップの条件として任意に時間を設定する。   Further, in step 5, when the condition that the changing state is maintained for several turns is added as a condition, the application designer arbitrarily sets time as a backup condition.

また、条件フィールド26にバックアップ条件が記述されていないデータはバックアップ処理されない。   Also, data for which no backup condition is described in the condition field 26 is not backed up.

次に、アプリケーションの起動時のアプリケーション変数への値の回復処理について説明する。アプリケーションの起動時には、バックアップデータ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 variable directory 2 is reconstructed from the backup data 16 and the variable data list 1 is reorganized. After the variable directory 2 is constructed, the backup data 16 of the variable ID of the data to be reused specified by the application is read into the variable data list 1, and the variable ID to be backed up is specified and the registration flag field 27 of the variable directory 2 is specified. Registered in

通常、フラッシュメモリ101上には、循環して連続な書き込み済みセクタ領域と、同様に連続な非書き込みセクタ領域とが設置される。また、書き込み済みセクタ領域には、同一変数IDのバックアップデータが複数回書き込まれている。データはシーケンシャルに並び、連続して書き込まれた領域のもっとも先頭のデータが最も古くに書き込まれたデータで、そこから時間順に記憶されている。そのため、最も新しいデータは、同一変数IDのエレメントのうち、最も後方のエレメントに位置する。   In general, on the flash memory 101, a continuous written sector area and a continuous non-written sector area are provided in a circulating manner. Further, backup data with the same variable ID is written in the written sector area a plurality of times. Data is sequentially arranged, and the first data in the continuously written area is the oldest written data, and is stored in order of time. Therefore, the newest data is located in the rearmost element among the elements having the same variable ID.

変数ディレクトリ2の再構築の際には、まず、フラッシュメモリ101の先頭セクタの先頭アドレスから最後尾セクタの最後尾アドレスまで、すべてのバックアップデータ16をシーケンシャルに変数ディレクトリ2へと書き込む。同時に、シーケンシャルに並んだエレメントのうち最も後方のエレメントの位置を検索しておき、再び先頭セクタから検索したエレメントまでの再書き込みを行う。これにより、常に最も新しいデータで変数ディレクトリ2の変数IDが上書き処理される。   When the variable directory 2 is reconstructed, first, all backup data 16 is sequentially written into the variable directory 2 from the head address of the first sector of the flash memory 101 to the last address of the last sector. At the same time, the position of the rearmost element among the elements arranged sequentially is searched, and rewriting from the head sector to the searched element is performed again. As a result, the variable ID of the variable directory 2 is always overwritten with the newest data.

この変数ディレクトリ2の再構築により、フラッシュアドレス101にバックアップされたデータと変数ディレクトリ2とを整合させる。その後、さらにアプリケーションの変数データリスト1との整合をとったり、バックアップ処理条件の登録を受けたりしてもよい。   By reconstructing the variable directory 2, the data backed up to the flash address 101 and the variable directory 2 are matched. Thereafter, it may be further matched with the variable data list 1 of the application, or registration of backup processing conditions may be received.

次に、アプリケーション側から見た場合のバックアップ実行のための手続きを図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 step 30, the backup process in step 20 is activated. When the backup process is activated, the variable directory 2 is reconstructed in step 21. At the same time, information on the backup condition of the variable is registered in step 31 by the application program. If the variable ID of the variable registered at this time already exists in the variable directory 2, the variable is registered and the registration flag is turned ON, and the value of the backup data is a RAM indicated by the variable address in the variable directory 2. It is written in the address and used as variable data 10 of the application. If the variable ID does not exist in the variable directory 2, it is registered as data having a new variable ID in the variable directory 2 (step 22).

以降、内部処理が渡されると、ステップ23のバックアップ処理を行う。内部処理の引渡しは、アプリケーションプログラムのサブルーチンの形式でもよく、スケジューラ等によって内部処理が引き渡されるバックグラウンド処理の形式でもよい。アプリケーションプログラムからのバックアップ処理の呼び出しは、通常は以上の起動と登録との手順のみであるが、登録された設定のバックアップ条件以外の条件でバックアップを行いたいときに用いるステップ32のバックアップ指示と、ステップ33のバックアップ設定の変更を行うための再設定とは、随意に呼び出すことができる。   Thereafter, when the internal processing is passed, the backup processing in step 23 is performed. The delivery of the internal process may be in the form of a subroutine of an application program, or may be in the form of a background process in which the internal process is delivered by a scheduler or the like. Invoking the backup process from the application program is normally only the above-described startup and registration procedures, but the backup instruction in step 32 used when backup is performed under conditions other than the backup conditions of the registered settings, The re-setting for changing the backup setting in step 33 can be called at will.

このように、アプリケーションプログラムからの呼び出しは起動と登録のみでバックアップを実行する。   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 backup module 201 is activated and a power interruption occurs while some data is being written, the data corresponding to the described variable ID may be error data. . When restarting, it avoids erroneously reading such error data into the variable directory 2 and reconstructing it, and reads backup data backed up before the error data without reading the error data. Since the variable directory 2 was reconstructed by sequential overwrite processing, if the error data can be determined, the system is automatically loaded from the latest backup data that does not cause an error by not reading it into the variable directory 2. It can be recovered.

このために、エレメント4に通常のバックアップデータ16と同時にデータサイズを記憶しておくサイズヘッダ34および、属性フラグおよびチェックサムを記憶しておく属性フラグ・チェックサムヘッダ35、を用意することで対応可能となる。バックアップデータの記述に際して、エレメント4内にデータサイズ、バックアップデータ、属性フラグおよびチェックサムの順番で記述する。このような順番で記述することにより、属性フラグおよびチェックサムを記述する前の電源断による書き込みエラーの発生に対しては、属性フラグおよびチェックサムが正しく書き込まれない。そのため、属性フラグおよびチェックサムが正しく書き込まれていないエレメント4には、書き込み途中でエラーが発生したことが検知でき、エラーデータを読みこまないようにすることができる。   For this purpose, a size header 34 for storing the data size simultaneously with the normal backup data 16 and an attribute flag / checksum header 35 for storing the attribute flag and checksum are prepared in the element 4. It becomes possible. When describing the backup data, the element 4 is described in the order of data size, backup data, attribute flag, and checksum. By describing in this order, the attribute flag and checksum are not correctly written in response to the occurrence of a write error due to a power failure before describing the attribute flag and checksum. For this reason, it is possible to detect that an error has occurred in the middle of writing in the element 4 in which the attribute flag and the checksum are not correctly written, and to prevent reading error data.

また、複数の変数間に、常に同期が取られている必要がある場合、ある変数データ10が正常にバックアップされても、同時に同期すべき別の変数のバックアップ処理前に電源断等でバックアップが中断された場合にはそれを検知し、同期が取れている過去の状態に設定しなおす必要がある。   In addition, when it is necessary to always synchronize a plurality of variables, even if a certain variable data 10 is backed up normally, the backup is performed due to a power failure or the like before backup processing of another variable to be synchronized at the same time. If it is interrupted, it must be detected and the past state must be set again.

この同期処理は、フラッシュメモリ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 flash memory 101 with a synchronization flag element and a termination synchronization flag element. For example, a unique variable ID is assigned to the synchronization flag element and the terminal synchronization flag element so that it can be determined that it is a synchronization flag element. In addition, variable IDs of group members to be synchronized as data are described. A terminal synchronization flag element is also described as an element paired with the synchronization flag element. Here, when performing backup processing on the members of the variable group to be synchronized, the members are described so as to be sandwiched between the synchronization flag element and the end synchronization flag element. By describing in this way, the power-off in the middle of the description of the synchronization group will be interrupted if the synchronization flag element, the member described as data, and the terminal synchronization flag element are not described according to the stored order. You can detect what happened. In addition, when describing these elements, a route flag field 49 and a chain field 50 are arranged on the variable directory 2. In the route flag, it is described whether it is an element to be stored at the head of the variable elements to be described in synchronization, and the chain field 50 indicates the variable data 10 to be stored next to the element. deep. In the synchronous backup process, when the variable data 10 whose route flag is ON is detected, another variable directory 2 indicated by the chain field 50 of the variable directory 2 is searched, and further described in the chain field 50 from there. The variable directory 2 is searched one after another. After the chain is described as the data of the synchronization flag element, the variable data 10 indicated by each variable directory 2 is backed up, and finally the terminal synchronization flag element is described. In this way, synchronous backup can be realized.

また、一般にフラッシュメモリ101のデータ消去には時間がかかり、その間の電源断がおこると消去作業中のセクタ全体が不定なビット列となってしまう。そのエラーデータを読み込むことがないようにするためには、常に連続して2以上のセクタ3が空き領域になっているように前記非書き込みセクタを設定すればよい。上述の書き込みを行う新しいセクタを検出する過程において、常に非書き込みセクタが2以上連続するように設定し、非書き込みセクタが連続していなければ、少なくともひとつ存在するはずの非書き込みセクタの次のセクタ3を消去する。このように処理することで、たとえ電源断により全体が不定なビットとなったセクタ3であっても常に消去の対象になるためにそこからデータが読み出されることはなくなる。また、消去予定のセクタ3に存在する有効なデータを移行した後でセクタ消去を行うために、データを移行する局面での電源断があったとしても、前述のデータ書き込みにおける電源断対策によってエラーデータの読み込みを防ぐことができる。   In general, it takes time to erase data in the flash memory 101, and if the power is cut during that time, the entire sector being erased becomes an indefinite bit string. In order to prevent the error data from being read, the non-write sector may be set so that two or more sectors 3 are always empty. In the above-described process of detecting a new sector to be written, it is set so that two or more non-write sectors are always continuous, and if there are no non-write sectors, at least one sector that should be present after the non-write sector 3 is deleted. By processing in this way, even if the sector 3 is entirely indefinite bits due to power interruption, the sector is always erased and data is not read from it. In addition, even if there is a power interruption in the data migration phase in order to perform sector erase after migrating valid data existing in the sector 3 to be erased, an error is caused by the power interruption countermeasure in the data writing described above. Data reading can be prevented.

また、バックアップ処理はバックグラウンドで実行される定期的な処理であるが、情報処理装置への入力電圧が何らかの原因により低下してしまうパワーフェイルなどの特殊なタイミングで、バックアップ処理を実行したい場合がある。また、更新頻度が高い変数と、重要な変数とを区別して保存したい場合もある。   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 backup modules 201 corresponding to the respective sector groups are executed in parallel. To do.

パワーフェイル時に起動する割り込みプログラムにおいてバックアップしたい変数を登録しておき、割り込みプログラム中でバックアップモジュール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 backup module 201 in the interrupt program, store the variable to be backed up in another sector 3 at the time of power fail, and respond to power interruption To do. However, in the case of a power failure during sector erasing, the sector erasing process takes a very long time, and the power may be cut off before performing the backup process. At this time, it is generally not possible to save (write) by interrupt processing. For this reason, if power fail data is set, the power fail data can be backed up without fail by reliably backing up the power fail data before executing sector erase. It becomes like this. For example, this backup is performed when the size of the free area of the sector 3 in which writing has been performed becomes smaller than a certain size, and the sector 3 to be erased is erased after the backup is completed.

以上のようにしてエラーデータを読み込むことなく正常なバックアップデータからアプリケーション変数を復旧することができ、頑健性の高いバックアップ処理を得ることができる。   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.

本発明に係る情報処理装置の構成図Configuration diagram of information processing apparatus according to the present invention セクタ消去の手順を示す図Figure showing the sector erase procedure 変数IDに対応した変数ディレクトリの動作を示す概観図Overview of variable directory operations corresponding to variable IDs バックアップ条件に従った動作を示すフローチャートFlow chart showing operation according to backup conditions バックアップ処理起動時の動作を示すフローチャートFlow chart showing the operation when starting backup processing

符号の説明Explanation of symbols

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 SYMBOLS 1 Variable data list 2 Variable directory 3 Sector 4 Element 5 Central processing circuit 6 Input device 7 Output device 9 Array table 10 Variable data on RAM 14 Array index field 15 Array element flash address field 18 Array variable data 19 on RAM Data of array elements on RAM 20 Variable directory field set 21 Variable ID field 22 RAM address field 23 Flash address field 24 Active flag field 25 Number of arrays field 26 Condition field 27 Registration flag field 28 Permanent flag field 29 Counter field 30 Element Header group 31 variable ID header 32 array index header 34 size header 35 attribute flag / checksum 40 Cycle field 41 Command field 42 Type field 43 Size field 44 Critical flag field 45 New sector field 46 Old sector field 47 Old flash address field 48 Error flag field 49 Route flag field 50 Chain field 100 RAM
101 Flash Memory 200 Application Module 201 Backup Module 202 Information Processing Device

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:
前記変数ディレクトリは、変数IDが配列変数を指定する場合に、その配列変数の各配列要素を指定する手段として配列テーブルを備え、
前記セーブする情報として、前記配列要素を表す指数を含む請求項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.
アプリケーションプログラムの起動時において、フラッシュメモリをスキャンして前記変数ディレクトリを再構築する手段を備えた請求項1に記載の情報処理装置。   2. The information processing apparatus according to claim 1, further comprising means for scanning the flash memory and reconstructing the variable directory when the application program is started. 前記フラッシュメモリのセクタをグループ化し、前記セーブ手段は、前記変数の種類に応じてセーブするグループを決める請求項1記載の情報処理装置。   The information processing apparatus according to claim 1, wherein sectors of the flash memory are grouped, and the saving unit determines a group to save according to the type of the variable. 前記フラッシュメモリは、セクタ単位で消去されるものであり、消去対象となったセクタ内に前記変数ディレクトリで参照されるデータがあるときに、該データをフラッシュメモリ上の新たなセーブ位置に移す手段を備えた請求項1に記載の情報処理装置。   The flash memory is erased in units of sectors, and when there is data referred to by the variable directory in the sector to be erased, means for moving the data to a new save position on the flash memory The information processing apparatus according to claim 1, further comprising: 前記フラッシュメモリは、セクタ単位で消去されるものであり、セクタを消去する場合には、電源電圧が低下した時に優先してセーブするように予め設定したデータを、フラッシュメモリ上の新たなセーブ位置に、セクタを消去する前にセーブする手段を備えた請求項1に記載の情報処理装置。   The flash memory is erased on a sector-by-sector basis. When erasing a sector, data that has been set in advance so as to be preferentially saved when the power supply voltage drops is stored in a new save position on the flash memory. The information processing apparatus according to claim 1, further comprising means for saving before erasing the sector. アプリケーションプログラムの変数をフラッシュメモリにバックアップデータとしてセーブさせる情報処理装置において、
前記変数の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.
前記変数ディレクトリは、変数IDが配列変数を指定する場合に、その配列変数の各配列要素を配列テーブルで指定する機能と、
前記セーブする情報に、前記配列要素を表す指数を含めてセーブする機能とを、
コンピューターに実現させるための請求項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.
アプリケーションプログラムの起動時において、フラッシュメモリをスキャンして前記変数ディレクトリを再構築する機能をコンピューターに実現させるための請求項7記載のプログラム。   8. The program according to claim 7, which causes a computer to realize a function of scanning the flash memory and reconstructing the variable directory when starting the application program. 前記フラッシュメモリのセクタをグループ化し、前記セーブ機能は、前記変数の種類に応じてセーブするグループを決めることをコンピューターに実現させるための請求項7記載のプログラム。   The program according to claim 7, wherein sectors of the flash memory are grouped, and the saving function causes the computer to determine a group to be saved according to the type of the variable. 前記フラッシュメモリは、セクタ単位で消去されるものであり、消去対象となったセクタ内に前記変数ディレクトリで参照されるデータがあるときに、該データをフラッシュメモリ上の新たなセーブ位置に移す機能をコンピューターに実現させるための請求項7記載のプログラム。   The flash memory is erased in units of sectors, and when there is data referred to by the variable directory in the sector to be erased, a function of moving the data to a new save position on the flash memory The program of Claim 7 for making a computer implement | achieve. 前記フラッシュメモリは、セクタ単位で消去されるものであり、セクタを消去する場合に、電源電圧が低下した時に優先してセーブするように予め設定したデータを、フラッシュメモリ上の新たなセーブ位置に、セクタを消去する前にセーブする機能をコンピューターに実現させるための請求項7に記載のプログラム。   The flash memory is erased on a sector-by-sector basis, and when erasing a sector, pre-set data to be preferentially saved when the power supply voltage drops is stored in a new save position on the flash memory. The program according to claim 7 for causing a computer to realize a function of saving before erasing a sector.
JP2004305798A 2004-10-20 2004-10-20 Information processing apparatus and information processing program Active JP4824294B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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