JP5939120B2 - Flash memory data processing method and program for data processing - Google Patents

Flash memory data processing method and program for data processing Download PDF

Info

Publication number
JP5939120B2
JP5939120B2 JP2012222217A JP2012222217A JP5939120B2 JP 5939120 B2 JP5939120 B2 JP 5939120B2 JP 2012222217 A JP2012222217 A JP 2012222217A JP 2012222217 A JP2012222217 A JP 2012222217A JP 5939120 B2 JP5939120 B2 JP 5939120B2
Authority
JP
Japan
Prior art keywords
data
block
stored
save
flash memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012222217A
Other languages
Japanese (ja)
Other versions
JP2014075036A (en
Inventor
暢矢 植松
暢矢 植松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2012222217A priority Critical patent/JP5939120B2/en
Publication of JP2014075036A publication Critical patent/JP2014075036A/en
Application granted granted Critical
Publication of JP5939120B2 publication Critical patent/JP5939120B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、記憶したデータの消去回数に限度のあるフラッシュメモリのデータ処理方法、及び、このデータ処理用のプログラムに関する。   The present invention relates to a data processing method of a flash memory having a limit on the number of times of erasure of stored data, and a program for this data processing.

自動車の動作中に発生する様々なデータを記憶する記憶装置としてフラッシュメモリが広く利用されている。
このフラッシュメモリは、周知のように、記憶したデータを消去できる回数に制限があるため、データを書き換えるたびに過去のデータを消去すると、短期間にその制限回数に達し、動作保証ができなくなってしまう。
A flash memory is widely used as a storage device for storing various data generated during the operation of an automobile.
As is well known, this flash memory has a limit on the number of times that stored data can be erased. Therefore, if past data is erased every time data is rewritten, the limit number of times is reached in a short period of time, and operation cannot be guaranteed. End up.

そのため、フラッシュメモリを記憶装置として用いる場合、その記憶領域を複数のブロックに分けるとともに、データの種類によって記憶すべきブロックを分け、新しいデータが発生したら過去のデータを消去することなく対応するブロックに累積的に記憶させていた。   Therefore, when using a flash memory as a storage device, the storage area is divided into a plurality of blocks, the blocks to be stored are divided according to the type of data, and when new data is generated, the past data is not erased and the corresponding block is deleted. It was memorized cumulatively.

そして、ブロックの記憶容量が一定量に達すると、そのブロック内のすべてのデータを一括して消去していた。
このようにすれば、フラッシュメモリに記憶したデータを消去する回数を大幅に減らすことができるので、フラッシュメモリの動作保証期間を大きく伸ばすことができた(特許文献1)。
When the storage capacity of the block reaches a certain amount, all data in the block is erased collectively.
In this way, the number of times of erasing data stored in the flash memory can be greatly reduced, so that the operation guarantee period of the flash memory can be greatly extended (Patent Document 1).

特開2000−243093号公報JP 2000-243093 A

ところで、上述のようにブロック内に累積的にデータを記憶する場合、それらのデータの中には必要なデータと不要なデータとが混在して記憶されることとなる。
そのため、上述の特許文献1に係る発明では、各データをブロックに記憶する際、データの要不要を示す確認用フラグを各データに付帯させるとともに、ブロック内のデータを一括して消去するときには、確認用フラグで必要とされるデータのみをRAMに退避させた後に消去していた。
By the way, when data is stored cumulatively in a block as described above, necessary data and unnecessary data are mixedly stored in the data.
Therefore, in the invention according to Patent Document 1 described above, when each data is stored in the block, a confirmation flag indicating whether the data is necessary is attached to each data, and when the data in the block is erased collectively, Only data required by the confirmation flag is erased after being saved in the RAM.

そして、ブロック内のデータを消去した後、RAMに退避させていたデータを、退避元のブロックに戻し、RAMに退避させていたデータについては、他の退避させていたデータとの混在等を防止するため消去していた。   Then, after erasing the data in the block, the data saved in the RAM is returned to the original block, and the data saved in the RAM is prevented from being mixed with other saved data. To erase.

しかし、データの退避先としてRAMを用いた場合、退避中に瞬断(RAMに供給されていた電源が一時的に断たれること)が生じると、RAMに退避させていたデータが消えてしまう課題があった。   However, when a RAM is used as a data saving destination, if a momentary interruption occurs during saving (the power supplied to the RAM is temporarily turned off), the data saved in the RAM is erased. There was a problem.

この課題を解決する方法としては、フラッシュメモリ内に退避用の退避ブロックを設け、データを退避させる先を、RAMから退避ブロックに変更する方法が考えられる。
しかし、フラッシュメモリ内にはデータを記憶するための通常のブロックが複数あり、これら各ブロックからデータを退避させる処理を一つの退避ブロックに対して行うと、退避ブロックに退避させたデータを消去する回数が、通常のブロックの消去回数の合計数となってしまう。
As a method for solving this problem, a method of providing a save block for saving in the flash memory and changing the destination for saving data from the RAM to the save block can be considered.
However, there are multiple normal blocks for storing data in the flash memory, and if the process for saving data from each block is performed on one save block, the data saved in the save block is erased. The number of times becomes the total number of normal block erasures.

そのため、通常の各ブロックの消去回数が、フラッシュメモリの動作保証ができなくなる制限回数に達していない場合であっても、フラッシュメモリ全体としては、早期に動作保証ができない状態になってしまうという課題があった。   Therefore, even if the normal number of erasures of each block does not reach the limit number at which the operation of the flash memory cannot be guaranteed, the entire flash memory cannot be assured of operation at an early stage. was there.

そこで、本発明は、退避ブロックの消去回数のみが動作保証ができない制限回数を上回ってしまうことによってフラッシュメモリ全体が早期に動作保証できない状態になってしまうことを防止することができるフラッシュメモリのデータ処理方法、及び、このデータ処理用のプログラムを提供することを目的とする。   Accordingly, the present invention provides data for a flash memory that can prevent the entire flash memory from being in a state where the operation cannot be guaranteed at an early stage by exceeding the limit number that the operation cannot be guaranteed only for the number of erasures of the save block. It is an object to provide a processing method and a program for processing this data.

上記目的を達成するためになされた発明である請求項1に記載されたデータ処理方法は、データを記憶するための複数のブロック、及び、該ブロックに記憶されたデータを退避させるための退避ブロックが設定された記憶領域を有するフラッシュメモリのデータ処理方法である。   The data processing method according to claim 1, which is an invention made to achieve the above object, includes a plurality of blocks for storing data, and a save block for saving data stored in the block Is a data processing method of a flash memory having a storage area in which is set.

本発明では、退避の際、一のブロックから退避させた複数のデータからなるデータ群の末尾に、このデータ群の末尾であることを示す末尾情報を付加する退避処理(S38、S50)が実行される。 In the present invention, at the time of saving, saving processing (S38, S50) is performed in which tail information indicating the end of the data group is added to the end of the data group consisting of a plurality of data saved from one block. Is done.

さらに本発明では、この退避処理による退避後に、退避元の一のブロックに記憶されていたデータを一括して消去する第1消去処理(S52)が実行され、この第1消去処理による消去後に、末尾情報によって区切られたデータ群を退避元の一のブロックに戻す回復処理(S54)が実行される。 Furthermore, in the present invention, after the evacuation by the evacuation process, the first erasure process (S52) for erasing the data stored in one block of the evacuation source at a time is executed. A recovery process (S54) is performed to return the data group delimited by the tail information to one block of the save source.

このようにすると、退避ブロックでは、末尾情報によって、各ブロックから退避させたデータ群を区別することができるので、退避ブロックに退避させたデータ群を退避元のブロックに戻した後に、そのデータ群を一々消去しなくても、複数のデータ群を累積的に記憶しておくことができる。   In this way, in the save block, the data group saved from each block can be distinguished by the tail information. A plurality of data groups can be stored cumulatively without erasing them one by one.

そして、これら複数のデータ群を一括して消去すれば、退避ブロックに退避させたデータ群を退避元のブロックに戻した後に、そのデータ群を一々消去する場合に比べ、退避ブロックに対する消去回数を減らすことができる。   If these multiple data groups are erased at once, the number of times of erasure for the evacuation block can be reduced compared with the case where the data group evacuated to the evacuation block is returned to the evacuation source block and then the data group is erased one by one. Can be reduced.

そのため、このデータ処理方法を用いれば、退避ブロックの消去回数のみが動作保証ができない制限回数を上回ってしまうことによってフラッシュメモリ全体が早期に動作保証できない状態になることを防止することができる。   Therefore, if this data processing method is used, it is possible to prevent the entire flash memory from being in a state where the operation cannot be guaranteed at an early stage because the number of erasures of the save block exceeds the limit number that the operation cannot be guaranteed.

請求項2に記載した第2消去処理、すなわち、退避ブロックに記憶され、末尾情報で区切られた複数のデータ群からなるデータを一括して消去するタイミングとしては、退避ブロックの記憶容量が一杯になるなどしたタイミングでもよいが、これに限られるものではない。   The second erasing process according to claim 2, that is, the timing of erasing the data consisting of a plurality of data groups stored in the save block and delimited by the end information at a time is that the storage capacity of the save block is full. However, the present invention is not limited to this.

また、退避判定処理、すなわち、複数のブロックのうち、いずれかのブロックのデータを退避ブロックに退避させるかは、例えば、記憶容量が満杯となったブロックについて実行するようにしてもよいが、これに限られるものではない。   Further, whether or not to save the data of any block among the plurality of blocks to the save block may be executed for a block whose storage capacity is full, for example. It is not limited to.

また、請求項3に記載したフラッシュメモリのデータ処理方法のように、データを記憶する場合、退避の対象かを識別するための退避確認フラグをデータに関連付け、いずれかの前記ブロックにデータを記憶する記憶処理(S10〜S22)と、前記記憶処理によってデータを記憶する処理が実行されるとき、過去に同一種類のデータを記憶していた場合、過去に記憶された同一種類のデータの前記退避確認フラグを過去に記憶されたものであることを示すものに変更するフラグ変更処理(S18)と、を実行するようにしてもよい。
この場合、前記退避処理では、一の前記ブロックに記憶されたデータのうち、前記フラグ変更処理で前記退避確認フラグが保持されているデータを前記退避ブロックに退避させる処理を実行するようにしてもよい。
Further , when data is stored as in the data processing method of the flash memory according to claim 3, a save confirmation flag for identifying whether to save is associated with the data, and the data is stored in any of the blocks When the storage process (S10 to S22) to be performed and the process of storing data by the storage process are executed, if the same type of data has been stored in the past, the saving of the same type of data stored in the past is performed. You may make it perform the flag change process (S18) which changes a confirmation flag into what shows what was memorize | stored in the past.
In this case, in the save process, a process of saving the data in which the save confirmation flag is held in the flag change process among the data stored in one of the blocks to the save block may be executed. Good.

このようにすれば、同一種類のデータについては、退避処理を行う際、最新データのみが退避されることとなる。
尚、請求項4に記載したプログラムをフラッシュメモリを記憶装置として用いる装置にインストールすれば、その装置において、上述した効果と同様の効果を得られる。
In this way, for the same type of data, only the latest data is saved when the save process is performed.
If the program described in claim 4 is installed in a device using a flash memory as a storage device, the same effect as described above can be obtained in the device.

因みに、上記各手段等の括弧内の符号は、後述する実施形態に記載の具体的手段等との対応関係を示す一例であり、本発明は上記各手段等の括弧内の符号に示された具体的手段等に限定されるものではない。   Incidentally, the reference numerals in parentheses for each of the above means are examples showing the correspondence with the specific means described in the embodiments described later, and the present invention is indicated by the reference numerals in the parentheses of the above respective means. It is not limited to specific means.

本実施形態のECUのブロック図である。It is a block diagram of ECU of this embodiment. 本実施形態のフラッシュメモリの説明図で、(a)記憶領域が複数のブロックに分割されている様子、(b)各ブロックが複数のレコードに分割されている様子、(c)各レコードの構成を示す図である。In the explanatory view of the flash memory of this embodiment, (a) the storage area is divided into a plurality of blocks, (b) each block is divided into a plurality of records, (c) the configuration of each record FIG. 記憶処理のフローチャートである。It is a flowchart of a storage process. 退避処理の第1フローチャートである。It is a 1st flowchart of a save process. 退避処理の第2フローチャートである。It is a 2nd flowchart of an evacuation process. データが移動する様子を概念的に示した説明図である。It is explanatory drawing which showed notably the mode that data moves. データが移動する様子を概念的に示した説明図である。It is explanatory drawing which showed notably the mode that data moves.

以下に本発明のデータ処理方法を実現した実施形態を図面と共に説明する。
1.全体構成
本実施形態のECU1は、図1に示すように、CPU10、RAM11、ROM12、フラッシュメモリ2、インタフェイス部13を備え、それぞれがバス14で通信可能に接続された制御装置である。
Embodiments that implement the data processing method of the present invention will be described below with reference to the drawings.
1. Overall Configuration As shown in FIG. 1, the ECU 1 of the present embodiment is a control device that includes a CPU 10, a RAM 11, a ROM 12, a flash memory 2, and an interface unit 13, each of which is communicably connected via a bus 14.

CPU10は後述する各種処理を実行する主制御部である。
RAM11は、一時記憶が必要なデータを記憶する揮発性のメモリであり、データの記憶及び読み出しが可能なメモリである。
The CPU 10 is a main control unit that executes various processes described later.
The RAM 11 is a volatile memory that stores data that needs to be temporarily stored, and is a memory that can store and read data.

ROM12は、各種処理用のプログラム等のデータが予め記憶されたメモリであり、データの読み込みだけが可能なメモリである。
フラッシュメモリ2は、電源遮断時にも記憶の保持が必要なデータを記憶する不揮発性のメモリであり、データの記憶及び読み出しが可能なメモリである。
The ROM 12 is a memory in which data such as various processing programs is stored in advance, and is a memory that can only read data.
The flash memory 2 is a non-volatile memory that stores data that needs to be retained even when the power is shut off, and is a memory that can store and read data.

インタフェイス部13は、車両に備えられた各種センサ及び制御対象の各種装置と通信するため、ECU1に対する入出力信号に対して必要な変換を行う装置である。
ECU1では、CPU10がROM12から読み出されたプログラムに基づいて各種処理が実行されるとともに、この処理で発生したデータや、インタフェイス部13の入力信号を変換したデータ、その他のデータが、RAM11やフラッシュメモリ2に対して記憶、読み込み、消去する処理が実行される。
The interface unit 13 is a device that performs necessary conversion on an input / output signal to the ECU 1 in order to communicate with various sensors provided in the vehicle and various devices to be controlled.
In the ECU 1, the CPU 10 executes various processes based on the program read from the ROM 12, and the data generated in this process, the data converted from the input signal of the interface unit 13, and other data are stored in the RAM 11 and Processing for storing, reading and erasing the flash memory 2 is executed.

2.フラッシュメモリ2
次に、フラッシュメモリ2について図2を用いて詳細に説明する。
尚、以下の説明では、説明容易のため、一般的なブロックとして20a〜20cの3つのブロックしか言及していないが、この一般的なブロックの数については3つに限られるものではない。
2. Flash memory 2
Next, the flash memory 2 will be described in detail with reference to FIG.
In the following description, for ease of explanation, only three blocks 20a to 20c are mentioned as general blocks, but the number of general blocks is not limited to three.

このフラッシュメモリ2は、図2(a)に記載したように、記憶領域が複数のブロック20a〜20c,21に分けられており、そのうちの一つは退避ブロック21として用いられる。   As shown in FIG. 2A, the flash memory 2 has a storage area divided into a plurality of blocks 20 a to 20 c and 21, one of which is used as the save block 21.

また、本実施形態では、データの記憶頻度が各ブロック20a〜20c間で偏らないように、データの種類によってデータを記憶すべきブロック20a〜20cが予め定められており、後述する記憶処理では、この予め定められたところに従って、各ブロック20a〜20cに各データが記憶される。   In the present embodiment, the blocks 20a to 20c where data should be stored are determined in advance according to the type of data so that the data storage frequency does not deviate between the blocks 20a to 20c. Each data is stored in each of the blocks 20a to 20c in accordance with the predetermined place.

次に、各ブロック20a〜20cの構造について説明する。
各ブロック20a〜20cは、図2(b)に示すように、複数のレコード200で構成されている。このレコード200は、フラッシュメモリ2の記憶・読み出しの最小単位である。
Next, the structure of each block 20a-20c is demonstrated.
Each block 20a-20c is comprised by the some record 200, as shown in FIG.2 (b). This record 200 is a minimum unit of storage / reading of the flash memory 2.

そして、各レコード200は、図2(c)に示すように、フラグ1、フラグ2、種別データ、データ、チェックデータの記録領域からなる。
フラグ1(記憶済確認フラグ)は、未記憶のレコード200にデータが記憶された際(記憶済状態)に「0」とされ、記憶されていない状態(未記憶状態)では「1」のまま維持されるフラグである。
Each record 200 includes a recording area for flag 1, flag 2, type data, data, and check data, as shown in FIG.
The flag 1 (stored confirmation flag) is set to “0” when data is stored in the unstored record 200 (stored state), and remains “1” when the data is not stored (unstored state). It is a flag that is maintained.

フラグ2(退避確認フラグ)は、同一種類のデータが同じブロック20a〜20cに新たに記憶されるとき、過去のデータが記憶されたレコードについては「0」とされ、新しいデータが記憶されるレコードについては「1」のまま維持されるフラグである。   The flag 2 (save confirmation flag) is set to “0” for a record in which past data is stored when the same type of data is newly stored in the same block 20a to 20c, and a record in which new data is stored. Is a flag which is maintained as “1”.

すなわち、本実施形態では、各ブロック20a〜20c内で、同一種類のデータが複数記憶される場合、同一種類のデータについて最新のデータが記憶されたレコードのフラグ2は「1」とされ、それ以外の過去のデータが記憶されたレコードのフラグ2については「0」に変更される。   That is, in the present embodiment, when a plurality of the same type of data is stored in each of the blocks 20a to 20c, the flag 2 of the record in which the latest data is stored for the same type of data is set to “1”. The flag 2 of the record storing past data other than is changed to “0”.

種別データは、記憶されるデータの種類を示す情報である。
データは、CPUで実行される処理で発生したデータや、インタフェイス部13の入力信号を変換したデータ、その他のデータに対応するもので、記憶すべき情報が現されたデータである。フラグ1やフラグ2、種別データ、チェックデータは、このデータに対する冗長データである。
The type data is information indicating the type of stored data.
The data corresponds to data generated by processing executed by the CPU, data obtained by converting the input signal of the interface unit 13, and other data, and is data that represents information to be stored. Flag 1 and flag 2, type data, and check data are redundant data for this data.

チェックデータは、チェックサムデータやCRCデータなどである。
ところで、フラッシュメモリは、データの上書きができない。そのため、フラッシュメモリでは、仮に、古いデータを新しいデータに書き換えようとした場合、その古いデータを一旦消去して、その上で新しいデータを記憶されなければならない。
The check data is checksum data, CRC data, or the like.
By the way, the flash memory cannot overwrite data. For this reason, in the flash memory, if old data is to be rewritten to new data, the old data must be erased once and then new data must be stored thereon.

しかし、単に「1」から「0」に書き換える場合には、古いデータを消去する必要がなく、そのまま「1」から「0」に書き換えることができる。
そのため、フラグ1やフラグ2は、初期状態ではそれぞれ「1」「1」とされる。
However, when simply rewriting from “1” to “0”, it is not necessary to erase the old data, and it is possible to rewrite from “1” to “0” as it is.
Therefore, the flags 1 and 2 are set to “1” and “1” respectively in the initial state.

そして、フラグ1については、各レコードにデータが記憶されると「0」とされ、る。
一方、フラグ2は、同じ種類のデータが新しく記憶されると、過去のデータが記録されたレコードに対応するものについては「0」とされ、新しくデータが記憶されるレコードに対応するものについては「1」のまま維持される。
The flag 1 is set to “0” when data is stored in each record.
On the other hand, when the same type of data is newly stored, the flag 2 is set to “0” for a record corresponding to a record of past data, and for a flag corresponding to a record where data is newly stored. “1” is maintained.

3.記憶処理
次に、上述したフラッシュメモリ2を備えるECU1において実行される各種処理のうち、図3にフローチャートで示した記憶処理について説明する。
3. Storage Process Next, the storage process shown in the flowchart in FIG. 3 will be described among various processes executed in the ECU 1 including the flash memory 2 described above.

本実施形態のECU1で実行される記憶処理は、ECU1内で扱われる各種データについて、それらデータの種類によって予め定められたいずれかのブロック20a〜20cにデータを記憶する処理である。   The storage process executed by the ECU 1 of the present embodiment is a process of storing data in any of the blocks 20a to 20c determined in advance according to the types of the data handled in the ECU 1.

この記憶処理は、本実施形態のECU1が動作中、常時実行される。
本実施形態では、前述したように、各ブロック20a〜20cへの記憶頻度が偏らないように、データの種類によって記憶すべきブロック20a〜20cが予め決められている。
This storage process is always executed while the ECU 1 of the present embodiment is operating.
In the present embodiment, as described above, the blocks 20a to 20c to be stored are determined in advance according to the type of data so that the storage frequency in each of the blocks 20a to 20c is not biased.

そのため、この記憶処理が開始されると、S10においてまず、データを記憶すべきブロック(以下では説明簡単のためブロック20aに記憶する場合ついて説明する)が決定され、CPU10内に有するアドレス変数(ADD)にそのブロック20aの先頭レコードのアドレスが記憶される。   Therefore, when this storage process is started, in S10, first, a block in which data is to be stored (hereinafter, a case where data is stored in the block 20a will be described for simplicity) is determined, and an address variable (ADD) included in the CPU 10 is determined. ) Stores the address of the first record of the block 20a.

尚、データを記憶すべきブロックを決定する処理は、データに予め種別データが冗長データとして関連付けられているときは、この種別データにより行ってもよいし、他の方法で決定してもよい。   It should be noted that the process for determining a block in which data is to be stored may be performed using this type data when the type data is associated with the data as redundant data in advance, or may be determined by another method.

次にS12において、ADDが示すアドレス位置のレコードのフラグ1が「0」か否か、すなわちADDが示すアドレス位置のレコードにはデータが記憶済か否かを判断し、記憶されていない記憶「1」の場合には(S12:NO)、ステップS22に進み、ADDが示すアドレス位置のレコードにデータを記憶する処理が実行される。   Next, in S12, it is determined whether or not the flag 1 of the record at the address position indicated by ADD is “0”, that is, whether or not data has been stored in the record at the address position indicated by ADD. In the case of “1” (S12: NO), the process proceeds to step S22, and the process of storing data in the record at the address position indicated by the ADD is executed.

そして、S22では、ADDが示すアドレス位置のレコードのフラグ1を「0」、すなわち記憶済みにし、フラグ2は「1」のまま保持する。さらに、S22では、種別データ、データ、及び、チェックデータを記憶する。   In S22, the flag 1 of the record at the address position indicated by the ADD is set to “0”, that is, stored, and the flag 2 is held as “1”. Further, in S22, type data, data, and check data are stored.

一方、S12において、ADDが示すアドレス位置のレコードのフラグ1が「0」、すなわち記憶済みの場合には(S12:YES)、S14に進む。
S14では、ADDが示すアドレス位置のレコードのフラグ2が「1」、すなわち、そのレコードに記憶されたデータが最新のデータであるか否かを判断し、フラグ2が「0」である場合は(S14:NO)、過去のデータであると識別してS20に進み、フラグ2が「1」である場合は(S14:YES)、最新のデータであると識別してS16に進む。
On the other hand, if the flag 1 of the record at the address position indicated by ADD is “0” in S12, that is, if it has been stored (S12: YES), the process proceeds to S14.
In S14, it is determined whether or not the flag 2 of the record at the address position indicated by the ADD is “1”, that is, whether or not the data stored in the record is the latest data. If the flag 2 is “0”, (S14: NO), it is identified as past data, and the process proceeds to S20. If the flag 2 is “1” (S14: YES), it is identified as the latest data, and the process proceeds to S16.

S16において、記憶を行おうとするデータと、ADDが示すアドレス位置のレコードも記憶されているデータの種別が一致するか否かを種別データを用いて判断し、不一致の場合(S16:NO)はS20に進み、一致する場合(S16:YES)は、S18に進む。   In S16, it is determined using the type data whether or not the type of data to be stored matches the type of data stored in the record at the address position indicated by the ADD, and if they do not match (S16: NO) The process proceeds to S20, and if they match (S16: YES), the process proceeds to S18.

S18では、ADDが示すアドレス位置のレコードに記憶されているデータは同一種類のデータの中では過去のデータであるので、そのレコードのフラグ2を「0」に書き換え、S20に進む。   In S18, since the data stored in the record at the address position indicated by the ADD is past data among the same type of data, the flag 2 of the record is rewritten to “0”, and the process proceeds to S20.

S20では、CPU10内に有するADDを1加算する処理が実行され、ブロック20aの次の先頭レコードのアドレスが記憶される。
以下、最終的にS22によって、この記憶処理の開始のきっかけとなったデータが、ブロック20a内のすでにデータが記憶されたレコードのうち最後尾のアドレスの次に位置するアドレスのレコードに記憶されるまで、S12〜S20の処理が繰り返される。
In S20, a process of adding 1 to the ADD in the CPU 10 is executed, and the address of the next top record of the block 20a is stored.
Thereafter, the data that triggered the start of the storage process is finally stored in S22 in the record at the address located next to the last address in the record in which data is already stored in the block 20a. Until then, the processing of S12 to S20 is repeated.

4.退避処理
次に、各ブロック20a〜20cに記憶されているデータを退避ブロック21に退避させる退避処理について、図4及び図5を用いて説明する。
4). Next, a save process for saving the data stored in each of the blocks 20a to 20c to the save block 21 will be described with reference to FIGS.

この退避処理は、本実施形態のECU1が動作中、常時実行される。
この退避処理では、まずS30において、データを退避させる退避条件を満たすブロック20a〜20cがあるか判定する処理が実行される。
This evacuation process is always executed while the ECU 1 of the present embodiment is operating.
In this saving process, first, in S30, a process for determining whether there is a block 20a to 20c that satisfies a saving condition for saving data is executed.

この退避条件は様々に設定でき、例えば、(1)各ブロック20a〜20cの記憶容量が、各ブロック20a〜20cの全記憶容量のうち満杯に近い所定量(例えば90%)に達したか否かや、(2)予め退避を行うと定められたタイミングに達したか否か、(3)ユーザから退避処理を実行する指示があった場合など様々に設定することができる。   This saving condition can be set in various ways. For example, (1) whether the storage capacity of each of the blocks 20a to 20c has reached a predetermined full amount (for example, 90%) of the total storage capacity of each of the blocks 20a to 20c. However, it can be set variously, for example, (2) whether or not the timing determined to be saved in advance has been reached, and (3) when the user gives an instruction to execute the saving process.

尚、この退避条件は、各ブロック20a〜20cに新たにデータを記憶することができなくなることが予想される前には少なくとも実行されることが好ましい。
そしてこのS30において、いずれかのブロック20a〜20cが退避条件を満たしたと判定された場合には(S30:YES)、そのブロック20a〜20cに対してS32以下の処理が開始され、いずれのブロックも退避条件を満たさない場合には(S30:NO)、待機する処理が実行される。
This save condition is preferably executed at least before it is predicted that data cannot be newly stored in each of the blocks 20a to 20c.
In S30, if it is determined that any of the blocks 20a to 20c satisfies the retreat condition (S30: YES), the processing from S32 onward is started for the blocks 20a to 20c. If the evacuation condition is not satisfied (S30: NO), a standby process is executed.

次に、S32において、CPU10内に有するアドレス変数(ADD)について、退避対象のブロック(以下では、説明簡単のため、ブロック20a内のデータを退避させるものとして説明する)の先頭レコードのアドレスが記憶される。   Next, in S32, the address variable (ADD) in the CPU 10 is stored with the address of the first record of the block to be saved (in the following description, the data in the block 20a will be saved for the sake of simplicity). Is done.

次にS34において、ADDが示すアドレス位置のレコードのフラグ1が記憶済みを示す「0」か否かを判定し、「1」の場合には(S34:NO)、S50に進み、退避ブロック21において後述する末尾情報を記憶する処理が行われる。   Next, in S34, it is determined whether or not the flag 1 of the record at the address position indicated by the ADD is “0” indicating that it has been stored. If “1” (S34: NO), the process proceeds to S50 and the save block 21 is reached. The process of storing tail information described later is performed.

一方、ADDが示すアドレス位置のレコードのフラグ1が、記憶済みであることを示す「0」の場合には(S34:YES)、S36に進む。
S36では、ADDが示すアドレス位置のレコードのフラグ2が最新データであることを示す「1」か否かを判定し、フラグ2が最新データを示す「1」であれば、次にS38を実行して、そのレコードのデータを、退避ブロック21に移動させる処理を実行し、S40の処理を実行する。
On the other hand, if the flag 1 of the record at the address position indicated by ADD is “0” indicating that it has been stored (S34: YES), the process proceeds to S36.
In S36, it is determined whether or not the flag 2 of the record at the address position indicated by ADD is “1” indicating that it is the latest data. If flag 2 is “1” indicating the latest data, then S38 is executed. Then, the process of moving the data of the record to the save block 21 is executed, and the process of S40 is executed.

一方、S36において、フラグ2が最新データではないことを示す「0」であれば、S38の処理を行うことなく、すなわち、データを退避させることなく、次にS40を実行する。   On the other hand, if the flag 2 is “0” indicating that it is not the latest data in S36, S40 is executed without performing the process of S38, that is, without saving the data.

S40では、CPU10内に有するADDを1加算し、ブロック20a内の次の先頭レコードのアドレスが記憶される。
以下、S34〜S40の処理が繰り返し実行され、ブロック20a内のレコードのうち、データが記憶されているすべてのレコードのフラグ1及びフラグ2についてチェックがなされる。
In S40, 1 is added to the ADD held in the CPU 10, and the address of the next top record in the block 20a is stored.
Thereafter, the processes of S34 to S40 are repeatedly executed, and the flag 1 and the flag 2 of all records in which data is stored among the records in the block 20a are checked.

この結果、ブロック20a内のレコードのうち、フラグ2が「1」とされるレコードに記憶されたデータについてはすべて退避ブロック21に退避されることとなる。
一方、このデータを退避させる処理が終了すると、S50に移行する(S34:NO)。
As a result, all the data stored in the record in which the flag 2 is “1” among the records in the block 20 a are saved in the save block 21.
On the other hand, when the process of saving the data is completed, the process proceeds to S50 (S34: NO).

S50では、退避ブロック21を構成するレコードのうち、S34〜S40の処理によってブロック20aから退避ブロック21に退避させたデータが記憶された最後尾のアドレスのレコードの末尾、すなわち、この最後尾のアドレスのレコードに対し、さらに一つ後のアドレスのレコードに末尾情報が記録される。   In S50, among the records constituting the save block 21, the end of the record at the last address where the data saved from the block 20a to the save block 21 by the processing of S34 to S40 is stored, that is, this last address. The tail information is recorded in the record of the next address with respect to this record.

そして、このS50が終了すると、図5に示すように、次にS52が実行される。
S52では、退避元のブロックであるブロック20a内の退避後のデータを一括して消去する処理が実行される。この処理が実行されると、ブロック20a内のすべてのレコードが初期化され、例えば、各レコードのフラグ1及びフラグ2はすべて「1」にされる。
When S50 ends, S52 is executed next, as shown in FIG.
In S52, a process of collectively erasing the saved data in the block 20a, which is the save source block, is executed. When this processing is executed, all the records in the block 20a are initialized. For example, all the flags 1 and 2 of each record are set to “1”.

続くS54では、先に行ったS34〜S40の処理でブロック20aから退避ブロック21に退避させたデータを、S52によってカラになった退避元のブロックであるブロック20aに戻す処理が実行される。   In subsequent S54, a process is executed in which the data saved in the save block 21 from the block 20a in the process of S34 to S40 previously performed is returned to the block 20a that is the save source block changed in S52.

この処理は、今回行った退避処理により末尾情報が記憶されたレコードと、前回の退避処理により末尾情報が記憶されたレコードとの間のレコードに記憶された情報を退避元のデータの消去後のブロック20aに戻す処理が実行される。   This processing is performed by deleting the information stored in the record between the record in which the end information is stored by the save processing performed this time and the record in which the end information is stored by the previous save processing after erasing the original data. Processing to return to block 20a is executed.

尚、前回の退避処理によって末尾情報が記憶されたレコードがない場合は、今回行った退避処理によって末尾情報が記憶されたレコードより前のアドレスのレコードに記憶された情報を退避元のブロック20aに戻す処理が実行される。   If there is no record in which the end information is stored by the previous save process, the information stored in the record at the address before the record in which the end information is stored by the save process performed this time is stored in the save source block 20a. Processing to return is executed.

そして、このS54の処理が終了すると、退避ブロック21の記憶容量が所定量に達し空き容量が少なくなっているかが判定される(S56)。
このS56において、退避ブロック21の記憶容量が所定量に達していないと判定されると(S56:NO)、本処理は終了し、退避ブロック21の記憶容量が所定量に達していると判定されると(S56:YES)、退避ブロック21内のデータがすべて消去されて、本処理は終了し、再びS30以下の処理が実行される。
When the process of S54 is completed, it is determined whether the storage capacity of the save block 21 has reached a predetermined amount and the free capacity is reduced (S56).
If it is determined in S56 that the storage capacity of the save block 21 has not reached the predetermined amount (S56: NO), this process is terminated, and it is determined that the storage capacity of the save block 21 has reached the predetermined amount. Then (S56: YES), all the data in the save block 21 is erased, this processing is terminated, and the processing from S30 is executed again.

5.概念図
以上説明した記憶処理及び退避処理を実行した場合に、各ブロック20a〜20c、21においてデータが記録・退避・消去される様子について、図6〜図7を用いて簡単に説明する。
5. Conceptual diagram How data is recorded / saved / erased in each of the blocks 20a to 20c and 21 when the storage process and the saving process described above are executed will be briefly described with reference to FIGS.

尚、図6〜図7において、各レコード20a〜20c内を複数に分割する一つ一つのマス目はレコードを意味する。
初期状態ではブロック20a〜20c、及び、退避ブロック21を構成する各レコードにはデータが記憶されていない。
In FIGS. 6 to 7, each square that divides each of the records 20a to 20c into a plurality means a record.
In the initial state, no data is stored in the records constituting the blocks 20a to 20c and the save block 21.

車両のエンジンがかけられ、ECU1が動作を開始すると、上述した記憶処理により、図6(a)に示すように、各ブロック20a〜20cにデータの記憶が開始される。
尚、ブロック20aについては、3種類のデータが記憶されたレコードについて、斜線、縦縞線、編目線で示している。
When the engine of the vehicle is started and the ECU 1 starts operation, data storage is started in each of the blocks 20a to 20c, as shown in FIG.
As for the block 20a, a record in which three types of data are stored is indicated by diagonal lines, vertical stripe lines, and stitch lines.

そして、例えば、図6(b)に示すように、ブロック20aの記憶容量が満了に近くなるなどして退避条件を満たすと(図4のS30:YES)、ブロック20aのうち、最新データのみが退避ブロック21に移動する(S38)。   Then, for example, as shown in FIG. 6B, when the storage condition of the block 20a is nearly expired (S30: YES in FIG. 4), only the latest data is stored in the block 20a. Move to the retreat block 21 (S38).

斜線、縦縞線、編目線で示したレコードが、図6(b)に示したブロック20a内には複数あるが、退避ブロック21内にはそれぞれ1つしかないのは、斜線、縦縞線、編目線で示したレコードに記録された同一種類のデータのうち、最新のデータのみを退避させているからである。   There are a plurality of records indicated by diagonal lines, vertical stripe lines, and stitch lines in the block 20a shown in FIG. 6B, but there is only one record in the evacuation block 21. This is because only the latest data is saved among the same type of data recorded in the record indicated by the line of sight.

また、この退避のとき、退避ブロック21に退避させた複数のデータからなるデータ群の末尾には、末尾情報αが付加される。
その後、図6(c)に示すように、ブロック20a内は初期化される。このとき、ブロック20a内のデータは、最新データも過去のデータもすべて一括して消去される(S52)。
Further, at the time of saving, tail information α is added to the end of the data group composed of a plurality of data saved in the save block 21.
Thereafter, as shown in FIG. 6C, the inside of the block 20a is initialized. At this time, all the latest data and past data are erased collectively from the data in the block 20a (S52).

そして、この初期化が終了すると、図7(a)に示すように、退避ブロック21に退避させていたデータがブロック20a内に戻される(S54)。
その後、他のブロック20b〜20cについても同様にデータを退避させると、図7(b)に示すように、複数のデータ群が、末尾情報αに区切られて記憶されることとなる。
When this initialization is completed, as shown in FIG. 7A, the data saved in the save block 21 is returned to the block 20a (S54).
Thereafter, when data is similarly saved in the other blocks 20b to 20c, a plurality of data groups are stored by being divided into tail information α as shown in FIG. 7B.

そして、退避ブロック21内の記憶されたデータ量が所定量を越えると(S56:YES)、図7(c)に示すように、退避ブロック21内のすべてのデータについても一括して消去される(S58)。   When the amount of data stored in the save block 21 exceeds a predetermined amount (S56: YES), all the data in the save block 21 are also erased collectively as shown in FIG. 7C. (S58).

本実施形態では、このようにすることによって、退避ブロック21の消去回数だけが他のブロック20a〜20cに比べ極端に多くなることを防止して、フラッシュメモリ20全体の動作保証ができなくなることを防止しているのである。   In this embodiment, by doing so, it is possible to prevent the number of times of erasure of the save block 21 from being extremely increased compared to the other blocks 20a to 20c, and the operation of the entire flash memory 20 cannot be guaranteed. It is preventing.

6.本実施形態の特徴的な作用効果
本実施形態では、各ブロック20a〜20cに記憶されたデータを退避ブロック21に退避させる際、退避させた複数のデータからなるデータ群の末尾に、このデータ群の末尾であることを示す末尾情報αを付加して区切っている。
6). Characteristic operational effects of the present embodiment In the present embodiment, when the data stored in each of the blocks 20a to 20c is saved in the save block 21, the data group is placed at the end of the data group consisting of a plurality of saved data. Is appended with tail information α indicating that it is the tail.

このようにすると、退避ブロック21内では、この末尾情報αによって、各ブロック20a〜20cから退避させたデータ群を区別することができるので、退避ブロック21に退避させたデータ群を退避元のブロック20a〜20cに戻した後に、そのデータ群を一々消去しなくても、複数のデータ群を累積的に記憶しておくことができる。   In this way, in the save block 21, the data group saved from each of the blocks 20 a to 20 c can be distinguished by the tail information α, and therefore the data group saved in the save block 21 is stored in the save source block. After returning to 20a to 20c, a plurality of data groups can be stored cumulatively without deleting the data groups one by one.

そして、これら複数のデータ群を一括して消去すれば、退避ブロック21に退避させたデータ群を退避元のブロック20a〜20cに戻した後に、そのデータ群を一々消去する場合に比べ、退避ブロック21に対する消去回数を減らすことができる。   If the plurality of data groups are erased collectively, the data block saved in the save block 21 is returned to the save source blocks 20a to 20c, and then the data block is erased one by one. The number of erasures for 21 can be reduced.

そのため、本実施形態によれば、退避ブロック21の消去回数のみが動作保証ができない制限回数を上回ってしまうことによってフラッシュメモリ2全体が早期に動作保証できない状態になることを防止することができる
尚、本実施形態では、最新データを退避する場合について説明したが、退避させるデータの種類は最新データに限られるものではない。
Therefore, according to the present embodiment, it is possible to prevent the entire flash memory 2 from being in a state where the operation cannot be guaranteed at an early stage because the number of times of erasure of the save block 21 exceeds the limit number where the operation cannot be guaranteed. In this embodiment, the case of saving the latest data has been described. However, the type of data to be saved is not limited to the latest data.

7.対応関係
S18の処理は本発明のフラグ変更処理に相当し、S34,S36の処理は本発明の退避判定処理に相当する。
7). Correspondence Relationship The process of S18 corresponds to the flag change process of the present invention, and the processes of S34 and S36 correspond to the save determination process of the present invention.

S52の処理は本発明の第1消去処理に相当し、S54の処理は回復処理に相当し、S58の処理は第2消去処理に相当する。
図3の記憶処理と図4,5の退避処理を実行するROM12に記憶されたプログラムが、本発明のデータ処理用のプログラムに相当する。
The process of S52 corresponds to the first erase process of the present invention, the process of S54 corresponds to the recovery process, and the process of S58 corresponds to the second erase process.
The program stored in the ROM 12 that executes the storage process of FIG. 3 and the save process of FIGS. 4 and 5 corresponds to the data processing program of the present invention.

(その他の実施形態)
本発明は、特許請求の範囲に記載された発明の趣旨に合致するものであればよく、上述の実施形態に限定されるものではない。
(Other embodiments)
The present invention is not limited to the above-described embodiment as long as it matches the gist of the invention described in the claims.

1… ECU 2…フラッシュメモリ 10…CPU 11…RAM 12…ROM 13… インタフェイス部 14… バス 20a〜20c…ブロック
21… 退避ブロック 200… レコード
DESCRIPTION OF SYMBOLS 1 ... ECU 2 ... Flash memory 10 ... CPU 11 ... RAM 12 ... ROM 13 ... Interface part 14 ... Bus 20a-20c ... Block 21 ... Retraction block 200 ... Record

Claims (4)

データを記憶するための複数のブロック、及び、該ブロックに記憶されたデータを退避させるための退避ブロックが設定された記憶領域を有するフラッシュメモリのデータ処理方法であって、
一の前記ブロックから退避させた複数のデータからなるデータ群の末尾に、このデータ群の末尾であることを示す末尾情報を付加する退避処理(S38、S50)と、
該退避処理による退避後に、退避元の一の前記ブロックに記憶されていたデータを一括して消去する第1消去処理(S52)と、
該第1消去処理による消去後に、前記末尾情報によって区切られた前記データ群を退避元の一の前記ブロックに戻す回復処理(S54)と、
を実行することを特徴とするフラッシュメモリのデータ処理方法。
A data processing method for a flash memory having a plurality of blocks for storing data, and a storage area in which a save block for saving data stored in the block is set,
Save processing (S38, S50) for adding tail information indicating the end of the data group to the end of the data group consisting of a plurality of data saved from one block;
A first erasing process (S52) for collectively erasing data stored in one block of the saving source after saving by the saving process;
After the erasure by the first erasure process, a recovery process (S54) for returning the data group delimited by the end information to one block of the save source;
A data processing method for a flash memory, comprising:
請求項1に記載のフラッシュメモリのデータ処理方法において、
前記退避ブロックに記憶され、前記末尾情報で区切られた複数のデータ群からなるデータを一括して消去する第2消去処理(S58)
を実行することを特徴とするフラッシュメモリのデータ処理方法。
The flash memory data processing method according to claim 1,
Second erasure process (S58) for collectively erasing data composed of a plurality of data groups stored in the save block and separated by the tail information
A data processing method for a flash memory, comprising:
請求項1〜2のいずれか1項に記載のデータ処理方法において、
データを記憶する場合、退避の対象かを識別するための退避確認フラグをデータに関連付け、いずれかの前記ブロックにデータを記憶する記憶処理(S10〜S22)と、
前記記憶処理によってデータを記憶する処理が実行されるとき、過去に同一種類のデータを記憶していた場合、過去に記憶された同一種類のデータの前記退避確認フラグを過去に記憶されたものであることを示すものに変更するフラグ変更処理(S18)と、
を実行し、
前記退避処理では、
一の前記ブロックに記憶されたデータのうち、前記フラグ変更処理で前記退避確認フラグが保持されているデータを前記退避ブロックに退避させる処理を実行する
ことを特徴とするフラッシュメモリのデータ処理方法。
In the data processing method of any one of Claims 1-2,
In the case of storing data, a storage process (S10 to S22) that associates a save confirmation flag for identifying whether the data is to be saved with the data and stores the data in any of the blocks;
When the process of storing data is executed by the storage process, if the same type of data has been stored in the past, the save confirmation flag of the same type of data stored in the past is stored in the past. A flag change process (S18) for changing to a flag indicating that there is,
Run
In the evacuation process,
A data processing method for a flash memory, comprising: executing a process of saving the data in which the save confirmation flag is held in the flag change process among the data stored in one block to the save block .
請求項1〜3のいずれか1項に記載されたフラッシュメモリのデータ処理方法を実行することを特徴とするフラッシュメモリのデータ処理用のプログラム。   A program for data processing of a flash memory, which executes the data processing method for a flash memory according to any one of claims 1 to 3.
JP2012222217A 2012-10-04 2012-10-04 Flash memory data processing method and program for data processing Active JP5939120B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012222217A JP5939120B2 (en) 2012-10-04 2012-10-04 Flash memory data processing method and program for data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012222217A JP5939120B2 (en) 2012-10-04 2012-10-04 Flash memory data processing method and program for data processing

Publications (2)

Publication Number Publication Date
JP2014075036A JP2014075036A (en) 2014-04-24
JP5939120B2 true JP5939120B2 (en) 2016-06-22

Family

ID=50749152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012222217A Active JP5939120B2 (en) 2012-10-04 2012-10-04 Flash memory data processing method and program for data processing

Country Status (1)

Country Link
JP (1) JP5939120B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000243093A (en) * 1998-12-25 2000-09-08 Sanyo Electric Co Ltd Data storing method for flash memory and data reading out method from flash memory
JP2006268176A (en) * 2005-03-22 2006-10-05 Denso Corp Data validity/invalidity deciding method for flash eeprom
JP5162846B2 (en) * 2005-07-29 2013-03-13 ソニー株式会社 Storage device, computer system, and storage system
JP4999325B2 (en) * 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 Flash memory
JP2011221933A (en) * 2010-04-14 2011-11-04 Panasonic Corp Electronic equipment

Also Published As

Publication number Publication date
JP2014075036A (en) 2014-04-24

Similar Documents

Publication Publication Date Title
JP4418439B2 (en) Nonvolatile storage device and data writing method thereof
JP4122972B2 (en) Data recording apparatus and data writing method for flash memory
JP5813589B2 (en) Memory system and control method thereof
JP2010020586A (en) Data processing device
JP5570406B2 (en) Memory controller and data recording apparatus
JP4253272B2 (en) Memory card, semiconductor device, and control method of semiconductor memory
JP2019192316A (en) Nonvolatile storage device, memory control device, and memory control method
JP2007316779A (en) Nonvolatile memory system
JP6123766B2 (en) Data reading apparatus, program, and data reading method
JP6009290B2 (en) Electronic control device for vehicle
JP5541194B2 (en) Control device for reading and writing data to flash memory
JP5939120B2 (en) Flash memory data processing method and program for data processing
JP2018028830A (en) Electronic controller and information storage method thereof
US20110082995A1 (en) Information processing apparatus
JP4513786B2 (en) Memory controller, memory system, and memory control method
JP4818453B1 (en) Electronic device and data reading method
CN109426443B (en) Memory control apparatus and method
JP5520880B2 (en) Flash memory device
JP4239754B2 (en) Nonvolatile memory system
JP2009276883A (en) Semiconductor auxiliary storage device
JP6329185B2 (en) Memory control circuit, memory control system, memory control method, and memory control program
KR102275140B1 (en) Method for updating vehicular control unit
JP2004310268A (en) Semiconductor device with built-in flash memory, control method for flash memory, and program for the method
JP2012248094A (en) Electronic equipment
JP4146581B2 (en) Flash memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160405

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160502

R151 Written notification of patent or utility model registration

Ref document number: 5939120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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