JP2011222048A - Information processor and information processing program - Google Patents

Information processor and information processing program Download PDF

Info

Publication number
JP2011222048A
JP2011222048A JP2011173100A JP2011173100A JP2011222048A JP 2011222048 A JP2011222048 A JP 2011222048A JP 2011173100 A JP2011173100 A JP 2011173100A JP 2011173100 A JP2011173100 A JP 2011173100A JP 2011222048 A JP2011222048 A JP 2011222048A
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
JP2011173100A
Other languages
Japanese (ja)
Other versions
JP5398795B2 (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 JP2011173100A priority Critical patent/JP5398795B2/en
Publication of JP2011222048A publication Critical patent/JP2011222048A/en
Application granted granted Critical
Publication of JP5398795B2 publication Critical patent/JP5398795B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

PROBLEM TO BE SOLVED: To solve the problem that since when data management on a flash memory is performed with not a file format but an address format, the management of backup processing is complicate, and redundancy to the change of an application is poor in case of backing up application data to the flash memory.SOLUTION: A database 2 in which an address 1 on an RAM of application data is associated with backup data 4 on a flash memory is constructed, and one variable ID is set with respect to one variable. Also, there are used means for reconstructing variable ID from the backup data in order to facilitate countermeasures to the change of an application and means for registering variables so that the variable ID can be prevented from depending on the application.

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.

また、本発明は、データを移行する局面での電源断があったとしても、エラーデータの読み込みを防ぐことを目的とする。   Another object of the present invention is to prevent error data from being read even if the power is cut off during the data migration.

本発明は、アプリケーションプログラムの変数をフラッシュメモリにバックアップデータとしてセーブさせる情報処理装置において、変数は変数データと変数IDとを含み、変数データのRAM上の位置とフラッシュメモリ上のセーブ位置との対応関係を記憶した変数ディレクトリを、変数IDをつけてRAM上に構築する手段と、あらかじめ設定したセーブ条件にもとづき、変数データと変数IDとをセーブする情報として、フラッシュメモリ上の新たなセーブ位置にセーブする手段と、を備え、フラッシュメモリは、シーケンシャルにデータが書き込まれるものであり、データが書き込まれている書き込みセクタとデータが書き込まれていない非書き込みセクタとからなる複数のセクタで構成され、最後尾の書き込みセクタから連続する非書き込みセクタが少なくとも二つ以上無いとき、最後尾の書き込みセクタに連続する二つ以上のセクタが非書き込みセクタとなるようにデータ消去処理を行って、非書き込みセクタに設定する手段を備えることを特徴とする。   The present invention relates to an information processing apparatus that saves a variable of an application program as backup data in a flash memory. The variable includes variable data and a variable ID. Correspondence between a position of the variable data in the RAM and a save position in the flash memory The variable directory storing the relationship is constructed in a new save location on the flash memory as information for saving the variable data and the variable ID based on the means for building the variable directory on the RAM with the variable ID and the preset save conditions. The flash memory is a device in which data is sequentially written, and is composed of a plurality of sectors composed of a writing sector in which data is written and a non-writing sector in which data is not written, Consecutive from the last writing sector When there are at least two writing sectors, the data erasing process is performed so that two or more sectors continuous to the last writing sector become non-writing sectors, and a means for setting to non-writing sectors is provided. And

また、本発明は、変数をフラッシュメモリにバックアップデータとしてセーブする際に、変数データがデフォルト値を維持し続けていることを検出すると、変数をバックアップデータとしてセーブしない手段を備えたことを特徴としている。   In addition, the present invention is characterized by comprising means for not saving a variable as backup data when it is detected that the variable data continues to maintain a default value when the variable is saved in the flash memory as backup data. Yes.

また、本発明は、アプリケーションプログラムの起動時において、フラッシュメモリをスキャンして変数ディレクトリを再構築する手段を備えたことを特徴としている。   Further, the present invention is characterized by comprising means for scanning the flash memory and reconstructing the variable directory when the application program is started.

また、本発明は、フラッシュメモリのセクタをグループ化し、セーブ手段は、変数の種類に応じてセーブするグループを決めることを特徴としている。   Further, the present invention is characterized in that sectors of the flash memory are grouped, and the save means determines a group to save according to the type of variable.

また、本発明では、フラッシュメモリは、消去対象となったセクタ内に変数ディレクトリで参照されるデータがあるときに、該データをフラッシュメモリ上の新たなセーブ位置に移す手段を備えたことを特徴としている。   In the present invention, the flash memory includes means for moving the data to a new save position on the flash memory when there is data referred to in the variable directory in the sector to be erased. It is said.

また、本発明では、フラッシュメモリは、セクタを消去する場合には、電源電圧が低下した時に優先してセーブするように予め設定したデータを、フラッシュメモリ上の新たなセーブ位置に、セクタを消去する前にセーブする手段を備えたことを特徴としている。   Further, in the present invention, when erasing a sector, the flash memory erases the sector at a new save position on the flash memory with data set in advance so that it is preferentially saved when the power supply voltage drops. It is characterized by having means to save before doing.

以下、本発明でのバックアップ処理を図3のデータ構造を参照して説明する。   Hereinafter, backup processing according to the present invention will be described with reference to the data structure of FIG.

本発明のバックアップ処理においては、バックアップする変数データ10のRAM100上の位置と、フラッシュメモリ101上のセーブ位置との対応関係を変数IDをつけてRAM100上に変数ディレクトリ2として記憶する手段と、あらかじめ設定したセーブ条件にもとづき、前記変数データ10と前記変数IDとをセーブする情報として、新たなセーブ位置にセーブする手段とを備え一つのアプリケーション変数10には、一つの変数IDを配する。   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, As information for saving the variable data 10 and the variable ID based on the set save condition, a means for saving at a new save position is provided, and one variable ID is allocated to one application variable 10.

このようにアプリケーション変数の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.

本発明のバックアップ処理において、あるアプリケーション変数が配列変数18である場合には、その配列変数18に一つの変数IDを配し、その配列変数18の一つの要素19には一つの指数(以下、配列インデックスという。)を配し、配列要素19ごとにフラッシュメモリ101にエレメント4として記憶する。   In the backup processing 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 (hereinafter referred to as the following) is assigned to one element 19 of the array variable 18. An array index is provided, 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.

本発明における変数ディレクトリ2の再構築は、アプリケーションプログラムの起動時に、フラッシュメモリ101内にバックアップされていたバックアップデータ16をもとに行う。フラッシュメモリ101の先頭のセクタからシーケンシャルにフラッシュメモリ101を読み込んでいくと同時に、変数IDごとに変数ディレクトリ2を構築する。この際に、同じ変数IDのエレメント4があれば、その変数IDの変数ディレクトリ2及び変数データ10の内容は上書き処理される。フラッシュメモリ101にはシーケンシャルに新しいエレメントを記憶していくため、この上書き処理により変数ディレクトリ2及び変数データ10の内容は最新のバックアップデータ16と同期する。この変数ディレクトリ2の再構築は一度フラッシュメモリ101全体に対して行い、次にシーケンシャルに並んだ先頭のセクタから、次に書き込みを行うアドレスまで行う。   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.

また、本発明では前記フラッシュメモリ101のセーブ領域をグループ化する。変数データ10を種類に応じてグループに分け、設定されたグループの数に従い、バックアップ処理を並列的に実行する。   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.

また、本発明におけるフラッシュメモリ101のセクタ消去は、書き込みを行うアドレスが新しいセクタに移動するときに、一番古くに書き込みが行われたセクタに対して行う。エレメント4には、そのエレメント4を消去するかを判定するためのアクティブフラグを用意し、そのアクティブフラグを記憶するアクティブフラグフィールド24を変数ディレクトリ2上に配し、活性化したフラグを持つ変数IDであって消去セクタ上に最新のバックアップデータがある場合には、そのエレメント4を新たなセクタへと複写する。消去セクタ上の消してはいけないエレメント4を全て移動させた後にセクタ消去を行う。   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.

また、本発明では、システムのハードウェアに電源電圧の低下(以下、パワーフェイルという。)が起こったときに、優先してバックアップするデータ(以下、パワーフェイルデータという。)が設定されている場合、セクタ消去が実行される前の段階で毎回必ずパワーフェイルデータのバックアップを行う。   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. 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.

また本発明によれば、変数ディレクトリを用いることで、アプリケーションプログラムの設計者は、バックアップ処理におけるフラッシュメモリのアドレス管理を、変数IDを介した管理にルーチン化することができ、作業負担の減少をさせることができる。   Further, according to the present invention, by using the variable directory, the designer of the application program can routinely manage the address of the flash memory in the backup process to the management via the variable ID, thereby reducing the work load. Can be made.

また本発明によれば、配列要素を個別にバックアップ処理することにより、配列変数全体をバックアップ処理する場合に比べてデータ書き換え量を抑制でき、フラッシュメモリの長寿化が実現できる。   In addition, according to the present invention, by performing backup processing of array elements individually, the data rewrite amount can be suppressed as compared with the case of performing backup processing of the entire array variable, and the life of the flash memory can be increased.

また、本発明の変数ディレクトリ再構築手段によれば、最新のデータを判定する必要がなく、また特別な判別フラグも必要としないため、簡易なデータ構造で再構築が行うことができる。   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.

また、本発明のセクタグループ化手段によれば、データの重要度に応じて、データバックアップの頻度をそろえ、効率的なセクタ利用と調寿命化を実現することができる。   Further, according to the sector grouping means of the present invention, it is possible to achieve efficient use of sectors and adjustment of life by arranging the frequency of data backup in accordance with the importance of data.

また、本発明のセクタ消去手段によれば、セクタ消去はセクタ3に書き込み可能な領域がなくなったときにのみ行われる。そのために、セクタ消去はデータ書き込み量にのみ依存させることができ。非常に小さいセクタ消去頻度を実現できる。   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.

また、本発明のパワーフェイルデータのバックアップ手段によれば、フラッシュメモリのセクタ消去中にパワーフェイルが起こった場合でも、確実にパワーフェイルデータをバックアップすることができる。   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.

本発明に係る情報処理装置の構成図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

図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 and reconstructing such error data into the variable directory 2, and reads backup data that was 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.

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)

アプリケーションプログラムの変数をフラッシュメモリにバックアップデータとしてセーブさせる情報処理装置において、
前記変数は変数データと変数IDとを含み、
前記変数データのRAM上の位置と、前記フラッシュメモリ上のセーブ位置との対応関係を記憶した変数ディレクトリを、変数IDをつけてRAM上に構築する手段と、
あらかじめ設定したセーブ条件にもとづき、前記変数データと前記変数IDとをセーブする情報として、前記フラッシュメモリ上の新たなセーブ位置にセーブする手段と、を備え、
前記フラッシュメモリは、シーケンシャルにデータが書き込まれるものであり、データが書き込まれている書き込みセクタとデータが書き込まれていない非書き込みセクタとからなる複数のセクタで構成され、最後尾の書き込みセクタから連続する非書き込みセクタが少なくとも二つ以上無いとき、前記最後尾の書き込みセクタに連続する二つ以上のセクタが非書き込みセクタとなるようにデータ消去処理を行って、前記非書き込みセクタに設定する手段を備えることを特徴とする情報処理装置。
In an information processing apparatus that saves application program variables as backup data in flash memory,
The variable includes variable data and a variable ID,
Means for building a variable directory on the RAM with a variable ID, storing a correspondence relationship between the position of the variable data on the RAM and the save position on the flash memory;
Means for saving the variable data and the variable ID based on a preset save condition as information for saving the variable data and the variable ID in a new save position on the flash memory,
The flash memory is one in which data is sequentially written, and is composed of a plurality of sectors including a writing sector where data is written and a non-writing sector where data is not written, and is continuous from the last writing sector. Means for performing data erasure processing so that two or more consecutive sectors to the last writing sector become non-writing sectors when there are at least two non-writing sectors to be set, An information processing apparatus comprising:
前記変数を前記フラッシュメモリにバックアップデータとしてセーブする際に、前記変数データがデフォルト値を維持し続けていることを検出すると、前記変数をバックアップデータとしてセーブしない手段を備えた請求項1に記載の情報処理装置。   The unit according to claim 1, further comprising means for not saving the variable as backup data when detecting that the variable data continues to maintain a default value when saving the variable as backup data in the flash memory. Information processing device. アプリケーションプログラムの起動時において、フラッシュメモリをスキャンして前記変数ディレクトリを再構築する手段を備えた請求項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〜請求項3のいずれかに記載の情報処理装置。   The information processing apparatus according to claim 1, wherein sectors of the flash memory are grouped, and the saving unit determines a group to be saved according to the type of the variable. 前記フラッシュメモリは、消去対象となったセクタ内に前記変数ディレクトリで参照されるデータがあるときに、該データをフラッシュメモリ上の新たなセーブ位置に移す手段を備えた請求項1〜請求項4のいずれかに記載の情報処理装置。   5. The flash memory according to claim 1, further comprising means for moving the data to a new save position on the flash memory when there is data referred to in the variable directory in the sector to be erased. The information processing apparatus according to any one of the above. 前記フラッシュメモリは、セクタを消去する場合には、電源電圧が低下した時に優先してセーブするように予め設定したデータを、フラッシュメモリ上の新たなセーブ位置に、セクタを消去する前にセーブする手段を備えた請求項1〜請求項5のいずれかに記載の情報処理装置。   In the case of erasing a sector, the flash memory saves data set in advance so that it is preferentially saved when the power supply voltage is lowered to a new save position on the flash memory before erasing the sector. The information processing apparatus according to any one of claims 1 to 5, further comprising means. コンピュータによって実行されるアプリケーションプログラムが使用する変数をフラッシュメモリにバックアップデータとしてセーブする手段として前記コンピュータを機能させるためのプログラムであって、
前記変数は変数データと変数IDとを含み、
前記プログラムは、
前記変数データのRAM上の位置とフラッシュメモリ上のセーブ位置との対応関係を記憶した変数ディレクトリを、変数IDをつけてRAM上に構築する手段と、
あらかじめ設定したセーブ条件に基づいて、前記変数データと前記変数IDとを、セーブする情報としてフラッシュメモリ上の新たなセーブ位置に、前記アプリケーションプログラムとは非同期にセーブするセーブ手段、
として前記コンピュータを機能させるプログラムであって、
シーケンシャルにデータが書き込まれ、データが書き込まれている書き込みセクタとデータが書き込まれていない非書き込みセクタとからなる複数のセクタで構成される前記フラッシュメモリに対して、最後尾の書き込みセクタから連続する非書き込みセクタが少なくとも二つ以上無いとき、前記最後尾の書き込みセクタに連続する二つ以上のセクタが非書き込みセクタとなるようにデータ消去処理を行って、前記非書き込みセクタに設定する手段を前記コンピュータに機能させるプログラム。
A program for causing the computer to function as means for saving a variable used by an application program executed by the computer as backup data in a flash memory,
The variable includes variable data and a variable ID,
The program is
Means for building a variable directory on the RAM with a variable ID, storing a correspondence relationship between the position of the variable data on the RAM and the save position on the flash memory;
Save means for saving the variable data and the variable ID in a new save position on the flash memory as information to be saved asynchronously with the application program based on a preset save condition;
A program for causing the computer to function as
Data is written sequentially, and the flash memory composed of a plurality of sectors including a writing sector in which data is written and a non-writing sector in which data is not written continues from the last writing sector. When there are at least two non-write sectors, the data erasure processing is performed so that two or more sectors continuous to the last write sector become non-write sectors, and the means for setting the non-write sectors as the non-write sectors A program that causes a computer to function.
前記変数を前記フラッシュメモリにバックアップデータとしてセーブする際に、前記変数データがデフォルト値を維持し続けていることを検出すると、前記変数をバックアップデータとしてセーブしない手段を前記コンピュータに機能させる請求項7に記載のプログラム。   8. When saving the variable as backup data in the flash memory and detecting that the variable data continues to maintain a default value, the computer is caused to function not to save the variable as backup data. The program described in. アプリケーションプログラムの起動時に、フラッシュメモリをスキャンして前記変数ディレクトリを再構築する手段を前記コンピュータに機能させる請求項7または請求項8に記載のプログラム。   The program according to claim 7 or 8, which causes the computer to function to scan the flash memory and reconstruct the variable directory when the application program is started. 前記フラッシュメモリのセクタをグループ化し、前記セーブ手段によって、前記変数の種類に応じてセーブするグループを決めることを、前記コンピュータに機能させる請求項7〜請求項9のいずれかに記載のプログラム。   The program according to any one of claims 7 to 9, which causes the computer to group sectors of the flash memory and to determine a group to be saved according to the type of the variable by the saving means. 前記フラッシュメモリに対して、消去対象となったセクタ内に前記変数ディレクトリで参照されるデータがあるときに、該データをフラッシュメモリ上の新たなセーブ位置に移す手段を前記コンピュータに機能させる請求項7〜請求項10のいずれかに記載のプログラム。   A means for causing the computer to function to move the data to a new save position on the flash memory when there is data referred to by the variable directory in the sector to be erased with respect to the flash memory. The program according to any one of claims 7 to 10. 前記フラッシュメモリに対して、セクタを消去する場合に、電源電圧が低下した時に優先してセーブするように予め設定したデータを、フラッシュメモリ上の新たなセーブ位置に、セクタを消去する前にセーブする手段を前記コンピュータに機能させる請求項7〜請求項11のいずれかに記載のプログラム。   When erasing a sector from the flash memory, save the data set in advance so that it is preferentially saved when the power supply voltage drops, to a new save location on the flash memory before erasing the sector. The program according to any one of claims 7 to 11, which causes the computer to function.
JP2011173100A 2011-08-08 2011-08-08 Information processing apparatus and information processing program Active JP5398795B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011173100A JP5398795B2 (en) 2011-08-08 2011-08-08 Information processing apparatus and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011173100A JP5398795B2 (en) 2011-08-08 2011-08-08 Information processing apparatus and information processing program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004305798A Division JP4824294B2 (en) 2004-10-20 2004-10-20 Information processing apparatus and information processing program

Publications (2)

Publication Number Publication Date
JP2011222048A true JP2011222048A (en) 2011-11-04
JP5398795B2 JP5398795B2 (en) 2014-01-29

Family

ID=45038874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011173100A Active JP5398795B2 (en) 2011-08-08 2011-08-08 Information processing apparatus and information processing program

Country Status (1)

Country Link
JP (1) JP5398795B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544112A (en) * 2013-10-17 2014-01-29 Tcl通讯(宁波)有限公司 Mobile terminal and memory bad-block processing method thereof
JP2015200945A (en) * 2014-04-04 2015-11-12 Necプラットフォームズ株式会社 Flash memory control device, flash memory incorporating appliance, flash memory control method and program therefor

Citations (3)

* 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
JP2000250820A (en) * 1999-02-26 2000-09-14 Hewlett Packard Co <Hp> Method for preserving data into non-volatile memory
JP2002229863A (en) * 2001-02-05 2002-08-16 Kyocera Mita Corp Backup circuit

Patent Citations (3)

* 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
JP2000250820A (en) * 1999-02-26 2000-09-14 Hewlett Packard Co <Hp> Method for preserving data into non-volatile memory
JP2002229863A (en) * 2001-02-05 2002-08-16 Kyocera Mita Corp Backup circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544112A (en) * 2013-10-17 2014-01-29 Tcl通讯(宁波)有限公司 Mobile terminal and memory bad-block processing method thereof
JP2015200945A (en) * 2014-04-04 2015-11-12 Necプラットフォームズ株式会社 Flash memory control device, flash memory incorporating appliance, flash memory control method and program therefor

Also Published As

Publication number Publication date
JP5398795B2 (en) 2014-01-29

Similar Documents

Publication Publication Date Title
TWI546818B (en) Green nand device (gnd) driver with dram data persistence for enhanced flash endurance and performance
US8065492B2 (en) System and method for early detection of failure of a solid-state data storage system
US7610465B2 (en) Method and related apparatus for data migration utilizing disk arrays
KR100204027B1 (en) Database recovery apparatus and method using nonvolatile memory
CN1331063C (en) On-line data backup method based on data volume snapshot
US20170255526A1 (en) Headstart restore of first volume to a second volume
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
CN103019888B (en) Backup method and device
US20150143174A1 (en) Method and apparatus for recovering metadata lost during an unexpected power down event
CN102929750A (en) Nonvolatile media dirty region tracking
KR101736944B1 (en) Fail safe refresh of data stored in nand memory device
KR20190016562A (en) Apparatus and method for wear leveling for storage class memory
JP2008015769A (en) Storage system and writing distribution method
JPH06274409A (en) Batch erasure-type nonvolatile memory
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CN104050056A (en) File system backup of multi-storage-medium device
US7900003B2 (en) System, method and computer program product for storing an information block
JP2017079053A (en) Methods and systems for improving storage journaling
US9772782B2 (en) Non-volatile complement data cache
JP5183662B2 (en) Memory control device and memory control method
JPH0833864B2 (en) Data integrity method
JP5398795B2 (en) Information processing apparatus and information processing program
CN111338850A (en) Method and system for improving backup efficiency based on COW mode multi-snapshot
JP4824294B2 (en) Information processing apparatus and information processing program
CN105573862A (en) Method and equipment for recovering file systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131022

R150 Certificate of patent or registration of utility model

Ref document number: 5398795

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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