JP2004079140A - Data recording controller and program - Google Patents

Data recording controller and program Download PDF

Info

Publication number
JP2004079140A
JP2004079140A JP2002241941A JP2002241941A JP2004079140A JP 2004079140 A JP2004079140 A JP 2004079140A JP 2002241941 A JP2002241941 A JP 2002241941A JP 2002241941 A JP2002241941 A JP 2002241941A JP 2004079140 A JP2004079140 A JP 2004079140A
Authority
JP
Japan
Prior art keywords
data
block
area
data recording
recording
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
JP2002241941A
Other languages
Japanese (ja)
Other versions
JP4096660B2 (en
Inventor
Hiroyuki Yokogawa
横川 裕幸
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2002241941A priority Critical patent/JP4096660B2/en
Publication of JP2004079140A publication Critical patent/JP2004079140A/en
Application granted granted Critical
Publication of JP4096660B2 publication Critical patent/JP4096660B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To prevent lost data by recording data efficiently on a recording medium in which the number of times of writing is limited, to realize increased capacity of the recording medium by the above, and to promote the wide use of the recording medium. <P>SOLUTION: In first embodiment, a CPU 11 sets a recording region and a substitution recording region to a nonvolatile memory 17A by a nonvolatile memory control program, when the number of times of writing data in a block of the recording region reaches a threshold value, data recorded in this block is recorded in a substitution block of the substitution recording region. Further, in second embodiment, when difference of count values of the number of times of writing of a block in which the number of times of writing is the most and a block in which the number of times of block is the least reaches a count difference threshold value, the CPU 11 replaces data of these blocks using the empty block of a nonvolatile memory 17A, and disappearance of data in a block in which the number of times of recording data in the nonvolatile memory 17 is more is prevented. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、記録媒体へのデータ記録を制御するデータ記録制御装置及びその制御用のプログラムに関する。
【0002】
【従来の技術】
従来、携帯可能なノート型のパーソナルコンピュータ等の携帯型情報処理装置においては、各種データや各種プログラムを記録するための大容量の記録媒体として、ハードディスク装置が搭載されている。しかし、ハードディスク装置は衝撃に弱いため、耐衝撃性に優れた不揮発性半導体メモリ等の小容量の記録媒体も携帯型情報処理装置に搭載されている。
【0003】
【発明が解決しようとする課題】
しかしながら、不揮発性半導体メモリは、ハードディスク装置に比べて書込回数の制限値が低いため、書込回数が制限値を超えてしまう可能性が高く、記録されたデータが失われてしまうことがある。また、不揮発性半導体メモリ内において部分的にデータ書込回数が偏っている場合に、その偏り部分で書込回数が制限値に達してしまうと、このメモリ全体をそれ以上使用することができなくなってしまう。
【0004】
このような現象は、メモリ内のデータ書込領域を決定する主体が制御側のプログラムにあり、利用するプログラムによってメモリ内の一部の記録領域に対するデータ書込動作が頻発するためである。すなわち、従来のメモリの利用形態では、部分的に記録領域に対する書込み回数を考慮した制御が行われていなかったため、メモリを有効利用することができない場合があり、不揮発性半導体メモリの大容量化と普及とを妨げるおそれがあった。
【0005】
本発明の課題は、書込回数に制限のある記録媒体に効率良くデータを記録してデータの消失を防ぐとともに、これにより記録媒体の大容量化を実現するとともに普及を促進することである。
【0006】
【課題を解決するための手段】
請求項1記載の発明は、
データ記録制御装置において、
記録媒体内にデータ記録領域と代替データ記録領域を設定する領域設定手段と、
前記記録媒体の指示されたデータ記録領域にデータを記録するデータ記録手段と、
前記データ記録手段によるデータの記録回数を前記データ記録領域毎に記憶する記憶手段と、
を備え、
前記データ記録手段は、前記記憶手段に記憶された前記データ記録領域の記録回数が所定回数となった場合に、前記データ記録領域に記録されたデータを前記代替データ記録領域に記録することを特徴としている。
【0007】
この請求項1記載の発明によれば、
領域設定手段は、記録媒体内にデータ記録領域と代替データ記録領域を設定し、データ記録手段は、前記記録媒体の指示されたデータ記録領域にデータを記録し、記憶手段は、前記データ記録手段によるデータの記録回数を前記データ記録領域毎に記憶し、前記データ記録手段は、前記記憶手段に記憶された前記データ記録領域の記録回数が所定回数となった場合に、前記データ記録領域に記録されたデータを前記代替データ記録領域に記録する。
【0008】
したがって、記録媒体内のデータ記録回数が多いデータ記録領域に記録されるデータの消失を回避することができ、記録媒体の信頼性を向上させることができる。また、これにより、記録媒体の利用価値を高めて記録媒体の普及を促進することができる。
【0009】
請求項4記載の発明は、
データ記録装置において、
記録媒体内の指示されたデータ記録領域にデータを記録するデータ記録手段と、
前記データ記録手段によりデータが記録されたデータ記録領域毎にデータ記録回数を記憶する記憶手段と、
を備え、
前記データ記録手段は、前記データ記録領域に記録されたデータと、該データ記録領域よりも記録回数が少ない他のデータ記録領域に記録されたデータを入れ替えて記録することを特徴としている。
【0010】
この請求項4記載の発明によれば、
データ記録手段は、記録媒体内の指示されたデータ記録領域にデータを記録し、記憶手段は、前記データ記録手段によりデータが記録されたデータ記録領域毎にデータ記録回数を記憶し、前記データ記録手段は、前記データ記録領域に記録されたデータと、該データ記録領域よりも記録回数が少ない他のデータ記録領域に記録されたデータを入れ替えて記録することを特徴としている。
【0011】
したがって、記録媒体内のデータ記録領域毎のデータ記録回数を平均化することができ、記録媒体の使用期間を延ばすことができる。また、これにより、記録媒体の利用価値を高めて記録媒体の普及を促進することができる。
【0012】
【発明の実施の形態】
図面を参照して本発明に関るデータ記録制御装置1について詳細に説明する。以下において、データ記録制御装置1の第1及び第2の実施の形態について詳細に説明するが、各実施の形態におけるデータ記録制御装置1の構成は、何れも図1に示す構成を有するため、図1に示す各機能的構成部について重複する説明は省略し、同一の部分には同一の符号を付して説明する。
【0013】
〔第1の実施の形態〕
以下、各実施の形態の共通部分を含めて、第1の実施の形態について詳細に説明する。まず、構成を説明する。
図1は、本発明を提供した一実施の形態によるデータ記録制御装置1の機能的構成を示すブロック図である。図1に示すように、データ記録制御装置1は、CPU11、入力部12、表示部13、RAM14、ROM15、印字装置16、不揮発性メモリドライブ17、HDD18、伝送制御部18により構成され、各部は相互にデータの送受信が可能なようにバス20により接続されている。
【0014】
図2は、図1に示すROM15に記憶された各種プログラムの階層構造を模式的に示す図である。各種プログラムには、上位階層から順に、CPU11によって実行されるアプリケーションプログラム、メモリ管理やタスク管理等をはじめとするOS(Operating System)の基本機能を実現するシステムプログラム、HDD(Hard Disk Drive)を制御するHDD制御プログラムがあり、不揮発性メモリ17Aを制御する不揮発性メモリ制御プログラムが最下層に実装されている。図1のCPU11は、図2に示す不揮発性メモリ制御プログラムを利用して、不揮発性メモリ17Aに、OSによる認識が可能な記録領域とOSによる認識不可能な代替記録領域とを設定する(図3参照)とともに、後述する各種処理において不揮発性メモリ17Aのデータの書込み、読出し、編集処理等を制御する。
【0015】
ここで、図4を参照して、不揮発性メモリ17Aの記録領域及び代替記録領域について説明する。なお、記録領域及び代替記録領域は、各々複数のデータブロックにより構成される。
【0016】
図4(a)は、記録領域の1ブロックのデータ構成例を示す図である。図4(a)に示すように、記録領域を構成する各ブロック100は、実データを記録するためのデータ領域101と、データ領域内のデータのエラー訂正用のECC(Error Correcting Code)を記録するための領域102と、データ領域101へのデータの書込回数を記録する書込回数カウント領域103と、データ領域101におけるデータの書込回数が所定回数に達した場合にデータ領域101内の実データを記録する代替記録領域内のブロックを指定するアドレスを記録するための代替ブロック指定領域104と、書込回数カウント領域103及び代替ブロック指定領域104に記録されたデータのエラー訂正用のECCを記録するための領域105とによって構成される。
【0017】
図4(b)は、代替記録領域の1ブロックのデータ構成例を示す図である。図4(b)に示すように、代替記録領域を構成する各代替ブロック110は、実データを記録するためのデータ領域111と、データ領域内のデータのエラー訂正用のECCを記録するための領域112と、データ領域111へのデータ書込回数を記録するための書込回数カウント領域113と、このブロックのデータが記録領域のブロックの代替領域として使用された場合にブロック100のアドレスを記録するためのオリジナルブロック指定領域114と、オリジナルブロック指定領域114内のデータのエラー訂正用のECCを記録するための領域115とによって構成される。
【0018】
なお、以下に説明する各処理において、CPU11は、不揮発性メモリ17A内の各ブロックにデータを書き込む際に、実データのエラー訂正用のECCを算出して領域102(又は領域112)に記録するとともに、データ書込回数及び代替ブロックのアドレス(又はオリジナルブロックのアドレス)を書き込む際にそのECCを算出して領域105及び領域115に記録する。また、CPU11は、各ブロックからデータを読み出す際に、上記各ブロックに記録したECCによりエラー訂正処理を行う。このCPU11によるECCを利用したエラー訂正処理の説明は、以下省略する。
【0019】
以下、図1に示したデータ記録制御装置1の各機能的構成部について詳細に説明する。
【0020】
CPU(Central Processing Unit)11は、ROM15に記憶されているOSを含むシステムプログラム及び当該システムに対応する各種アプリケーションプログラムをRAM14内に形成されたワークメモリに展開し、該システムプログラムに従って各部を制御する。また、入力部12や伝送制御部16から入力される各種指示あるいはデータをRAM14内に一時的に格納し、この入力指示及び入力データに応じてROM15内に格納されたアプリケーションプログラムに従って各種処理を実行し、その処理結果をRAM14内に一時的に格納する。そして、RAM14に格納した処理結果を入力部12からの入力指示に従ってROM15内の保存先に保存する。
【0021】
具体的には、CPU11は、ROM15に記憶されたデータ編集処理プログラム、編集対象データ読出処理1用プログラム、及び編集内容書込処理1用プログラムを読み出してRAM14内のワークメモリに展開し、後述するデータ編集処理、編集対象データ読出処理1、及び編集内容書込処理1を実行し、それらの処理結果をRAM14内のワークメモリに記憶するとともに表示部12に表示させる。
【0022】
CPU11は、入力部12からデータ編集処理プログラムを起動する指示が入力されると、データ編集処理を実行する。CPU11は、データ編集処理において、データ編集対象のファイルを選択するためのファイル指定用メニュー(図示省略)を表示部13に表示し、入力部12から指定されたファイルを開き、ファイル内のデータを編集するためのファイル編集画面(図示省略)を表示部13に表示する。CPU11は、ファイル編集画面において選択された編集対象データが入力部12を介して入力されると、後述する編集対象データ読出処理1を実行した後、読み出した編集対象データの編集処理を実行し、入力部12からの指示入力により編集処理の内容が確定されると、後述する編集内容書込処理1を実行する。
【0023】
CPU11は、編集対象データ読出処理1において、指定された編集対象データが記録された不揮発性メモリ17Aの記録領域のブロック100のデータを検索して、このブロックの代替ブロック指定領域104内に代替ブロックを指定するデータが記録されているか否かを判別する。CPU11は、代替ブロック指定領域104において代替ブロックを指定するデータが記録されていれば、指定された代替ブロック110を検索し、そのデータ領域111に記録された実データを編集対象データとして読み出す。一方、CPU11は、代替ブロックを指定するデータが代替ブロック指定領域104に記録されていないと判別すると、ブロック100のデータ領域101から実データを編集対象データとして読み出す。
【0024】
CPU11は、編集対象データ読出処理1において読み出した実データ(以下、編集対象データという)に編集処理を施して編集処理済データを生成する。次いで、編集内容書込処理1において、編集対象データが記録されていたブロック100の書込回数カウント領域103から書込回数のカウント値を読み出すとともに、代替ブロック指定領域104から代替ブロックのアドレスを読み出す。CPU11は、読み出した書込回数のカウント値をROM15に予め記憶されたカウント閾値と比較して、カウント値がカウント閾値未満であれば、ブロック100のデータ領域101に編集処理済データを記録し、書込回数カウント領域103のカウント値を1加算する。
【0025】
また、CPU11は、編集内容書込処理1において、ブロック100への書込回数のカウント値がカウント閾値以上である場合には、代替ブロック指定領域104において代替ブロックを指定するデータが記録されていれば、指定された代替ブロック110のデータ領域111に編集処理済データを記録する。一方、代替ブロックを指定するアドレスが記録されていなければ、不揮発性メモリ17Aの代替記録領域からデータが記録されていない代替ブロック110を探索してブロック100の代替ブロックに指定し、この代替ブロック110のオリジナルブロック指定領域114にブロック100のアドレスを記録する。
【0026】
入力部12は、カーソルキー、数字入力キー及び各種機能キー等を備えたキーボード及びマウス等のポインティングデバイスにより構成され、キーボードにおいて押下されたキーの押下信号やマウスの位置信号をCPU11に出力する。
【0027】
表示部13は、LCD(Liquid Crystal Display)等により構成され、CPU11から入力される表示信号の指示に従って、CPU11により処理中のデータや処理結果のデータ等を表示する。
【0028】
RAM(Random Access Memory)14は、CPU11により実行制御される各種処理において、ROM15から読み出されたプログラム、入力または出力データ、及びパラメータ等の一時的な格納領域を形成する。
【0029】
ROM(Read Only Memory)15は、CPU11が前記各種プログラムを実行する際に使用するプログラムやデータ等が予め記憶されている。具体的には、ROM15は、図2に示すような各種処理プログラムを記憶しており、アプリケーションプログラムとしてデータ編集処理プログラム、編集対象データ読出処理1用プログラム、編集内容書込処理1用プログラム等を記憶する。子頬かに、ROM15は、書込回数を制限するカウント閾値を記憶する。
【0030】
なお、ROM15に記憶されたプログラム、データ等は、その一部若しくは全部を外部機器からLAN(Local Area Network)、WAN(Wide Area Network)等の図示しない通信ネットワークを介して伝送制御部19から受信して格納する構成にしてもよい。
【0031】
印字装置16は、図示しない画像形成部、転写部、定着部、給紙部等を備え、CPU11から入力されるデータを記録紙に印字出力する。
【0032】
不揮発性メモリドライブ17は、メモリ用インターフェイスであり、不揮発性の半導体メモリである不揮発性メモリ17Aとデータ記録制御装置1との間のデータの送受信を仲介する。
【0033】
HDD(Hard Disk Drive)18は、ハードディスク18Aとデータ記録制御装置1とのデータの送受信を仲介するインターフェイスである。
【0034】
伝送制御部19は、図示しない通信ネットワークを介して、外部機器との通信を行うためのネットワークカード、モデム、TA(Terminal Adapter)、ルータ等によって構成される。
【0035】
次に、第1の実施の形態における動作を説明する。
CPU11によるメインの処理であるデータ編集処理と、データ編集処理内で実行される編集対象データ読出処理1及び編集内容書込処理1について、図5〜図7のフローチャートを参照して説明する。
【0036】
ここで、これらのフローチャートに記述されている各機能を実現するためのプログラムは、読み取り可能なプログラムコードの形態でROM15に格納されており、CPU11はこのプログラムコードに従った動作を逐次実行する。また、CPU11は、伝送媒体を介して伝送されてきた上述のプログラムコードに従った動作を逐次実行することもできる。すなわち、ROM15の他、伝送媒体を介して外部供給されたプログラムやデータを利用して本実施の形態に特有の動作を実行することもできる。
【0037】
図5は、CPU11により実行されるデータ編集処理を示すフローチャートである。図5に示すデータ編集処理において、CPU11はファイル指定用メニュー(図示省略)を表示部13に表示させる(ステップS1)。次いで、入力部12からの指示入力によってファイルが指定されたか否かを判別し(ステップS2)、ファイルが指定されなければ(ステップS2;NO)、ステップS1に戻り、ファイルが指定されると(ステップS2;YES)、指定されたファイルが記録されたブロックを不揮発性メモリ17Aから検索し、RAM14に展開し(ステップS3)、ステップS4に移行する。
【0038】
次いで、CPU11は、ファイル編集画面(図示省略)を表示部13に表示して(ステップS4)、入力部12からの指示入力によって編集対象データが指定されたか否かを判別する(ステップS5)。CPU11は、編集対象データが指定されなければ(ステップS5;NO)、ステップS4に戻り、編集対象データが指定されると(ステップS5;YES)、後述する編集対象データ読出処理1を実行し(ステップS6)、続いて編集対象データの編集処理を実行し、編集処理済データを生成する(ステップS7)。
【0039】
上記ステップS7の編集処理の終了後に、CPU11は入力部12からの指示入力により編集内容が確定されたか否かを判別し(ステップS8)、確定されなければ(ステップS8;NO)、ステップS7に戻り、編集内容が確定されると(ステップS8;YES)、後述する編集内容書込処理1を実行して編集処理済データを不揮発性メモリ17Aに記録し、データ編集処理を終了する。
【0040】
図6は、上記データ編集処理内でCPU11により実行される編集対象データ読出処理1を示すフローチャートである。図6に示す編集対象データ読出処理1において、CPU11は、編集対象データが記録された不揮発性メモリ17Aの記録領域のブロック100を読み出し、このブロックの代替ブロック指定領域104内のデータを読み出して(ステップS11)、代替ブロック110を指定するデータの有無を判別する(ステップS12)。
【0041】
CPU11は、代替ブロック指定領域104内に代替ブロック110を指定するデータが記録されていないと判別すると(ステップS12;NO)、ブロック100のデータ領域101に記録された実データを読み出す(ステップS13)。一方、代替ブロック指定領域104に代替ブロックを指定するデータが記録されていると判別すると(ステップS12;YES)、CPU11は不揮発性メモリ17Aから代替ブロック110を検索してそのデータ領域111から実データを読み出す(ステップS14)。
【0042】
図7は、データ編集処理内でCPU11により実行される編集内容書込処理1を示すフローチャートである。なお、この図7に示す編集内容書込処理1の説明においては、編集対象データに対応するブロック100のアドレスをA0、A0のブロックの代替ブロック110のアドレスをA1、代替記憶領域内のデータが記録されていない任意の空きブロックのアドレスをA2とする。
【0043】
図7に示す編集内容書込処理1において、CPU11は、編集対象データが記録された不揮発性メモリ17A内のアドレスがA0である場合に(ステップS21)、アドレスA0のブロック100の書込回数カウント領域103及び代替ブロック指定領域104に記録されたデータを読み出して(ステップS22)、書込回数カウント領域103から読み出したカウント値を、ROM15に記憶されたカウント閾値未満であるか否かを判別し(ステップS23)、書込回数のカウント値がカウント閾値未満であれば(ステップS23;YES)、アドレスA0のブロック100のデータ領域101に編集処理済データを記録し、書込回数カウント領域103のカウント値を1加算して(ステップS24)、編集内容書込処理1を終了する。
【0044】
一方、CPU11は、ステップS23においてアドレスA0のブロックの書込回数のカウント値がカウント閾値未満ではないと判別すると(ステップS23;NO)、ブロック100の代替ブロック指定領域104に代替ブロックを指定するデータがあるか否かを判別する(ステップS25)。ここで、CPU11は、代替ブロックを指定するデータ(アドレスA1)があると判別すると(ステップS25;YES)、アドレスA1の代替ブロック110を読み出して(ステップS26)、アドレスA1の代替ブロック110のデータ領域111に編集処理済データを記録して(ステップS27)、編集内容書込処理1を終了する。
【0045】
一方、CPU11は、ステップS25においてアドレスA0のブロック100の代替ブロック指定領域104において代替ブロックを指定するデータが記録されていないと判別すると(ステップS25;NO)、不揮発性メモリ17Aの代替記録領域からデータが記録されていない空きブロックを探索する(ステップS28)。
【0046】
続いて、CPU11は、アドレスA2の空きブロックをアドレスA0のブロック100の代替ブロックに指定して、アドレスA0のブロック100の代替ブロック指定領域104にアドレスA2を記録する(ステップS29)。次いで、アドレスA2の代替ブロック110のデータ領域111に編集済データを記録して(ステップS30)、編集内容書込処理1を終了する。
【0047】
以上説明したように、第1の実施の形態のデータ記録制御装置1によれば、CPU11は、不揮発性メモリ制御プログラムによって不揮発性メモリ17Aに記録領域と代替記録領域とを設定し、記録領域のブロックにおけるデータ書込回数が閾値に達すると、このブロックに記録されたデータを代替記録領域の代替ブロックに記録するため、不揮発性メモリ17Aに対して効率良くデータを記録して、不揮発性メモリ17Aの使用期間を延ばすとともにその大容量化を可能にする。また、これにより不揮発性メモリを始めとする書込回数に制限がある記録媒体の普及を促進することができる。
【0048】
なお、本第1の実施の形態においては、代替ブロック110については書込回数のカウント値を記録する領域を設けていないが、代替ブロック110についても書込回数カウント領域を設け、カウント値がカウント閾値に達した場合に、不揮発性メモリ17Aの交換を促すガイダンスを表示部13に表示したり、代替ブロック110に記録されたデータのバックアップデータをROM15内に保存してもよい。これにより、データの損失をより確実に防止することができる。
【0049】
〔第2の実施の形態〕
本第2の実施の形態では、データ記録制御装置1は第1の実施の形態において図1のブロック図を参照して説明した構成と略同様であるため、同一の構成部分には同一の符号を付し、重複する説明は省略する。
【0050】
ただし、第2の実施の形態では、図1のCPU11は、図2の不揮発性メモリ制御プログラムを利用して図3に示すように記録領域と代替記録領域とを設定せず、図8に示すように不揮発性メモリ17A全体をOSによる認識が可能な記録領域に設定する。
【0051】
また、第2の実施の形態において、CPU11は、不揮発性メモリ制御プログラムを利用して、図9に示すプロック管理テーブルを作成し、ROM15に保存することによって不揮発性メモリ17A内の各ブロックのデータを管理する。図9に示すように、ブロック管理テーブルには、不揮発性メモリ17A内のアドレスと、ブロック名と、ユーザが指定可能なファイル名と、データ書込回数のカウント値と、各ブロックに記録された実データと、代替ブロック名とが対応付けて記憶されている。
【0052】
ここで、本実施の形態においては、不揮発性メモリ17A内の各ブロックは、図4(a)のブロック100と同様のデータ構成を有する。第1の実施の形態と異なる点は、例えば、不揮発性メモリ17A内の任意のブロックXにおいてデータ記録回数がカウント閾値に達した場合に、CPU11はデータ記録回数がカウント閾値に達していない他のブロックYを探索し、これらの2ブロックのデータを入れ替える。このとき、CPU11は、ブロックXの代替ブロック指定領域にブロックYのアドレスを記録し、ブロックYの代替ブロック指定領域にブロックXのアドレスを記録する。即ち、代替ブロックは予め決められたものではなく、記録されたデータを入れ替えるブロック同士が互いに代替ブロックとなる。
【0053】
なお、本実施の形態における不揮発性メモリ17Aの各ブロックのデータ構成は、第1の実施の形態と同様のデータ構成(図4(a)参照)であるものとして以下の説明を行うが、図10に示すように、書込回数カウント領域103に代わって書込回数チェック領域を設けてもよい。この場合には、図10の書込回数チェック領域123には、データ領域121にデータを書き込む毎にビットパターンを記録してゆき、ビットパターンの書込回数が所定回数になるとパターンが変化するように構成する。そして、CPU11はパターンの変化を検出することによりこのブロックにおけるデータの書込みを制限する。
【0054】
以下、図1を参照して、本実施の形態におけるデータ記録制御装置1の機能的構成を説明する。
【0055】
本題にの実施の形態におけるCPU11は、具体的には、ROM15に記憶されたデータ編集処理プログラム、編集対象データ読出処理2用プログラム、編集内容書込処理2用プログラム、更新処理プログラム、交換戻し処理プログラム、交換処理プログラムを読み出してRAM14内のワークメモリに展開し、後述するデータ編集処理、編集対象データ読出処理2、編集内容書込処理2、更新処理、交換戻し処理、交換処理を実行し、それらの処理結果をRAM14内のワークメモリに記憶するとともに表示部12に表示させる。また、CPU11は、データ編集処理の実行回数の累計と、不揮発性メモリ17A野全ブロックのうちデータ書込回数が最も多いブロックの書込回数カウント値Cmaxと、データ書込回数が最も少ないブロックの買い込み回数カウント値CminとをROM15に記憶させる。
【0056】
CPU11は、データ編集処理において、第1の実施の形態と略同様の処理を実行するため、その詳細な説明は省略する。ただし、本実施の形態では、CPU11は編集対象データ読出処理1の代わりに後述する編集データ読出処理2を、また編集内容書込処理1の代わりに後述する編集内容書込処理2を実行する。
【0057】
CPU11は、編集対象データ読出処理2において、編集対象データが記録されたブロックを読み出し、このブロックの代替ブロック指定領域において代替ブロックを指定するデータがなければこのブロックのデータ領域から実データを読み出す。一方、代替ブロック指定領域104に代替ブロックを指定するデータがあれば、代替ブロックを読み出してそのデータ領域から実データを読み出す。また、実データを読み出したブロックの書込回数カウント領域からカウント値Cを読み出して、ROM15内に記憶されたカウント値Cmaxと比較し、カウント値CがCmaxより大きければ、カウント値CによってROM15内のCmaxを更新する。一方、カウント値CをROM15内に記憶されたカウント値Cminと比較し、カウント値Cがカウント値Cminよりも小さければ、カウント値CによってROM15内のカウント値Cminを更新する。
【0058】
CPU11は、編集内容書込処理2において、データ編集処理の実行回数が100の倍数であれば後述する更新処理を実行し、100の倍数でなければ更新処理を省略して、データ編集処理における編集対象データが記録された不揮発性メモリ17A内のブロックを読み出す。次いで、この読み出したブロックの代替ブロック指定領域において代替ブロックを指定するデータがなければ、このブロックのデータ領域に編集処理済データを記録するとともに書込回数カウント領域のカウント値Cを1加算する。一方、読み出したブロックのデータ領域に代替ブロックを指定するデータがあると、代替ブロックを読み出してそのデータ領域に編集処理済データを記録するとともに書込回数カウント領域のカウント値Cを1加算する。
【0059】
また、CPU11は、編集内容書込処理2において、編集処理済データを記録したブロックのカウント値CがROM15内に記憶されたカウント値Cmaxよりも大きければ、カウント値Cによってカウント値Cmaxを更新し、カウント値Cがカウント値Cminよりも小さければ、カウント値Cによってカウント値Cminを更新する。
【0060】
CPU11は、更新処理において、ROM15に記憶されたカウント値Cmax及びカウント値Cminとの差が、ROM15に記憶されたカウント差閾値未満ではない場合に、カウント値Cmaxのブロックのデータを読み出し、このブロックの代替ブロック指定領域において代替ブロックを指定するデータがあれば、後述する交換戻し処理を実行する。次いで、CPU11は、カウント値Cminのブロックのデータを読み出し、このブロックの代替ブロック指定領域において代替ブロックを指定するデータがあれば、後述する交換戻し処理を行う。次にCPU11は、後述する交換処理を実行して更新処理を終了する。
【0061】
CPU11は、交換戻し処理において、図9のブロック管理テーブルを参照して、実データが記録されていない空きブロックを探索し、この空きブロックを利用して、交換戻しの対象となるブロック及びその代替ブロックに記録された実データを交換することにより、実データを元のブロックに戻す。
【0062】
ここで、図11(a)を参照して、交換戻し処理の例を説明する。図11(a)に示すように、交換戻し処理の対象となるカウント値Cmax又はカウント値CminのブロックB1は、代替ブロックとしてブロックB2が設定されており、ブロックB1の実データD1とブロックB2の実データD2とが入れ替えて記録されており、ブロックB1の代替ブロック指定領域にはB2が、またブロックB2の代替ブロック指定領域にはB1が記録されている。CPU11は、ブロックB2に記録された実データD1を空きブロックAaのデータ領域に移し、ブロックAaの代替ブロック指定領域にB1を記録し、ブロックB2の代替ブロック指定領域をクリアする。
【0063】
次いで、CPU11は、空になったブロックB2のデータ領域にブロックB1に記録された実データD2を移し、ブロックB1の代替ブロック指定領域をクリアする。続いて、CPU11は、空になったブロックB1のデータ領域にブロックAaのデータ領域に記録された実データD1を移す。これにより、ブロックB1の実データD1及びブロックB2の実データD2が元のブロックに戻される。
【0064】
CPU11は、交換処理において、交換戻し処理において実データが元のブロックに戻されたカウント値Cmaxのブロックとカウント値Cminのブロックとに記録された実データを交換する。
【0065】
ここで、図11(b)を参照して、交換処理の例を説明する。図11(b)に示すように、カウント値CmaxのブロックC1のデータ領域には実データD1が、またカウント値CminのブロックC2のデータ領域には実データD2が記録されている。CPU11は、図9のブロック管理テーブルを参照して、データが記録されていない空きブロックAaを探索する。次いで、ブロックC2の実データD2をブロックAaのデータ領域に移し、ブロックAaの代替ブロック指定領域にC2を記録し、ブロックC2の代替ブロック指定領域にAaを記録する。
【0066】
続いて、CPU11は、ブロックC1の実データD1をブロックC2のデータ領域に移してブロックC2の代替ブロック指定領域にC1を記録し、ブロックC1の代替ブロック指定領域にC2を記録する。次いで、ブロックAaのデータ領域に記録した実データD1をブロックC2のデータ領域に移し、ブロックAaの代替ブロック指定領域のデータをクリアし、ブロックC2の代替ブロック指定領域にC1を記録する。このようにして、書込回数が最多のブロックと最少のブロックとに記録された実データが交換される。
【0067】
以下、図12を参照して、CPU11による更新処理において実行されるカウント値Cmaxのブロックの交換戻し処理、カウント値Cminのブロックの交換戻し処理及びこれらの交換戻し処理後に実行される交換処理までの一連の処理手順の例を説明する。
【0068】
図12に示すように、CPU11は、まず1回目の交換戻し処理において、カウント値CmaxのブロックB1及びその代替ブロックB2に記録された実データを、空きブロックAaを利用することにより元のブロックに戻し、ブロックB1及びB2の代替ブロック指定領域のデータをクリアする。また、ブロックB1の書込回数のカウント値40,000に1を加算して40,001に更新し、ブロックB2のカウント値30,000に1を加算して30,001に更新する。
【0069】
次いで、CPU11は2回目の交換戻し処理において、カウント値CminのブロックB3及びその代替ブロックB4に記録された実データを、上記と同様の手順で元のブロックに戻し、ブロックB3及びB4の代替ブロック指定領域のデータをクリアする。また、ブロックB3の書込回数のカウント値10,000に1を加算して10,001に更新し、ブロックB4の書込回数のカウント値20,000に1を加算して20,001に更新する。
【0070】
次に、CPU11は、上記の2回の交換戻し処理後、カウント値CmaxのブロックB1に記録された実データD1及びカウント値CminのブロックB3に記録された実データD3を交換する。このように、CPU11は、書込頻度が高いブロックに記録されたデータを書き込み頻度が低いブロックのデータと交換し、特定のブロックに対するデータ書込みが集中することを防ぐ。
【0071】
ROM15は、具体的には、図2に示すような各種処理プログラムを記憶しており、データ編集処理プログラム、編集対象データ読出処理2用プログラム、編集内容書込処理2用プログラム、更新処理プログラム、交換戻し処理プログラム、交換処理プログラム等のアプリケーションプログラムを記憶する。また、ROM15は、CPU11によるデータ編集処理の実行回数の累計、不揮発性メモリ17Aのブロックのうちデータ書込回数が最多のブロックにおける書込回数のカウント値Cmax、データ書込回数が最少のブロックにおける書込回数のカウント値であるカウント値Cmin、カウント差閾値等を記憶する。
【0072】
次に、第2の実施の形態における動作を説明する。
CPU11によるデータ編集処理において実行される編集対象データ読出処理2、編集内容書込処理2、更新処理、交換戻し処理、交換処理について、図13〜図17のフローチャートを参照して説明する。
【0073】
図13は、CPU11による編集対象データ読出処理2を示すフローチャートである。CPU11は、図13に示す編集対象データ読出処理2において、編集対象データが記録された不揮発性メモリ17A内のブロックを検索し、このブロックの代替ブロック指定領域内のデータを読み出し(ステップS101)、代替ブロックが指定されいるか否かを判別する(ステップS102)。
【0074】
ステップS102において、代替ブロックが指定されていない場合には(ステップS102;NO)、ステップS101で検索したブロックのデータ領域に記録された実データと書込回数カウント領域に記録されたカウント値Cとを読み出して(ステップS103)、ステップS105に移行する。一方、ブロックの代替ブロック指定領域において代替ブロックが指定されている場合には(ステップS102;YES)、指定された代替ブロックのデータ領域に記録された実データと書込回数カウント領域に記録されたカウント値Cとを読み出して(ステップS104)、ステップS105に移行する。
【0075】
ステップS105において、CPU11は、上記ステップS103又はS104において読み出したデータ書込回数のカウント値CがROM15に記録されたカウント値Cmaxを超えるか否かを判別し、カウント値Cがカウント値Cmaxを超える場合には(ステップS105;YES)、カウント値CによりROM15内に記憶されたカウント値Cmaxをカウント値Cによって更新し(ステップS106)、編集対象データ読出処理2を終了する。
【0076】
一方、ステップS105において、CPU11は、カウント値Cがカウント値Cmaxを超えない場合には(ステップS105;NO)、カウント値CがROM15に記憶されたカウント値Cmin未満であるか否かを判別し(ステップS107)、カウント値Cがカウント値Cmin未満である場合には(ステップS107;YES)、カウント値Cによりカウント値Cminを更新し、カウント値Cがカウント値Cmin未満ではない場合には(ステップS107;NO)、そのまま編集対象読出処理2を終了する。
【0077】
図14は、編集内容書込処理2を示すフローチャートである。図14に示すように、CPU11は、ROM15に記憶されたデータ編集処理の実行回数が100の倍数であるか否かを判別し(ステップS111)、100の倍数ではないと判別すると(ステップS111;NO)、ステップS113に移行し、100の倍数であれば(ステップS111;YES)、更新処理を実行して(ステップS112)、ステップS113に移行する。
【0078】
次に、CPU11は、不揮発しえメモリ17Aから編集対象データのブロックA0のデータを読み出し(ステップS113)、書込回数カウント領域及び代替ブロック指定領域内のデータを読み出した後(ステップS114)、代替ブロックを指定するデータの有無を判別する(ステップS115)。
【0079】
ステップS115において、代替ブロックを指定するデータがなければ(ステップS115;NO)、ステップS113で読み出したブロックのデータ領域に編集処理済データを記録するとともに、このブロックの書込回数カウント領域のカウント値Cを1加算して(ステップS116)、ステップS118に移行する。一方、ステップS115において、代替ブロックを指定するデータがあれば(ステップS115;YES)、指定された代替ブロックを読み出し、そのデータ領域に編集処理済データを記録し、このブロックの書込回数カウント領域のカウント値Cを1加算して(ステップS117)、ステップS118に移行する。
【0080】
続いて、CPU11は、ステップS116又はS117において編集処理済データを書き込んだブロックのカウント値Cを、ROM15に記憶されたカウント値Cmaxを超えるか否かを判別し(ステップS118)、カウント値Cがカウント値Cmaxを超えていれば(ステップS118;YES)、カウント値Cによってカウント値Cmaxを更新して(ステップS119)、編集内容書込処理2を終了する。
【0081】
一方、CPU11は、ステップS118においてカウント値Cがカウント値Cmax以下であれば(ステップS118;NO)、カウント値CがROM15に記憶されたカウント値Cmin未満であるか否かを判別し(ステップS120)、カウント値Cがカウント値Cmin未満でなければ(ステップS120;NO)、そのまま編集内容書込処理2を終了する。一方、カウント値Cがカウント値Cmin未満であれば(ステップS120;YES)、カウント値Cによってカウント値Cminを更新し(ステップS121)、編集内容書込処理を終了する。
【0082】
図15は、CPU11による編集内容書込処理2において実行される更新処理を示すフローチャートである。図15に示すように、CPU11は、ROM15内に記憶されたカウント値Cmax及びカウント値Cminの差が、ROM15に記憶されたカウント差閾値未満であるか否かを判別し(ステップS122)、カウント差閾値未満であれば(ステップS122;YES)、そのまま更新処理を終了する。一方、カウント値Cmax及びカウント値Cminの差がカウント差閾値未満ではない場合には(ステップS122;NO)、カウント値Cmaxのブロックを読み出すとともに、その代替ブロック指定領域内のデータを読み出す(ステップS123)。
【0083】
次いで、CPU11は、カウント値Cmaxのブロックの代替ブロック指定領域において代替ブロックが指定されているか否かを判別し(ステップS124)、代替ブロックが指定されていなければ(ステップS124;NO)、ステップS126に移行し、代替ブロックが指定されていると(ステップS124;YES)、カウント値Cmaxのブロックの交換戻し処理を実行して(ステップS125)、ステップS126に移行する。
【0084】
次に、CPU11は、カウント値Cminのブロックのデータを読み出すとともにその代替ブロック指定領域内のデータを読み出して(ステップS126)、代替ブロックを指定するデータの有無を判別する(ステップS127)。CPU11は、代替ブロックを指定するデータがなければ(ステップS127;NO)、ステップS129に移行し、代替ブロックを指定するデータがあると(ステップS127;YES)、カウント値Cminのブロックの交換戻し処理を実行して(ステップS128)、ステップS129に移行する。続いて、CPU11は、カウント値Cmaxのブロックとカウント値Cinのブロックのデータを交換する交換処理を実行して(ステップS129)、更新処理を終了する。
【0085】
図16は、CPU11による更新処理において実行される交換戻し処理を示すフローチャートである。図16に示すように、CPU11は、交換戻し処理の対象となるブロック(ここでは、ブロックA1とする)のデータと、その代替ブロック(ブロックA2とする)のデータとを読み出す(ステップS131)。次いで、CPU11は、図9に示すブロック管理テーブルを参照して空きブロックを探索し(ステップS132)、ブロックAaを取得する(ステップS133)。
【0086】
次いで、CPU11は、ブロックAaのデータ領域にブロックA2に記録された実データD1を記録し、ブロックAaの代替ブロック指定領域にA1を記録して書込回数カウント領域のカウント値Cを1加算する(ステップS134)。また、CPU11は、ブロックA2の代替ブロック指定領域のデータをクリアする(ステップS135)。
【0087】
続いて、CPU11は、ブロックA1のデータ領域に記録された実データD2をブロックA2のデータ領域に移し、ブロックA1の代替ブロック指定領域のデータをクリアする(ステップS136)。次に、CPU11は、ブロックAaのデータ領域に記録した実データD1をブロックA1のデータ領域に移し、ブロックA1の書込回数カウント領域のカウント値を1加算する(ステップS137)。そして、ブロックAaの代替ブロック指定領域のデータをクリアして(ステップS138)、交換戻し処理を終了する。
【0088】
図17は、CPU11による更新処理において実行される交換処理を示すフローチャートである。図17に示すように、CPU11は、交換戻し処理済みのカウント値Cmaxのブロック(ここでは、ブロックA1とする)及びカウント値Cminのブロック(ブロックA2とする)のデータを不揮発性メモリ17Aから読み出す(ステップS141)。次いで、CPU11は、図9のブロック管理テーブルを参照して不揮発性メモリ17A内の空きブロックを探索し(ステップS142)、空きブロック(ブロックAaとする)を取得する(ステップS143)。
【0089】
続いて、CPU11は、ブロックA1に記録された実データD1をブロックAaのデータ領域に移し、ブロックAaの代替ブロック指定領域にA1を記録し、ブロックAaの書込回数カウント領域のカウント値Cを1加算する(ステップS144)。次に、CPU11は、A1の代替ブロック指定領域にAaを記録した後(ステップS145)、ブロックA2に記録された実データD2をブロックA1のデータ領域に移し、ブロックA1の代替ブロック指定領域にA2を記録し、ブロックA1の書込回数カウント領域のカウント値を1加算する(ステップS146)。
【0090】
次に、CPU11は、ブロックAaに記録された実データD1をブロックA2のデータ領域に移し、ブロックA2の代替ブロック指定領域にA1を記録し、ブロックA2の書込回数カウント領域のカウント値を1加算する(ステップS147)。次いで、CPU11は、ブロックAaの代替ブロック指定領域のデータをクリアして(ステップS148)、交換処理を終了する。
【0091】
以上説明したように、第2の実施の形態のデータ記録制御装置1によれば、CPU11は、書込回数カウント値が最多のブロック及び最少のブロックのカウント値の差がカウント差閾値に達すると、不揮発性メモリ17Aの空きブロックを利用してこれらのブロックのデータを入れ替えるため、不揮発性メモリ17A内において部分的にデータ書込が頻発することを防止できる。このため、不揮発性メモリ17Aにおけるデータの消失を防ぎ、大容量化を可能にする。また、これにより、不揮発性メモリを始めとする書込回数に制限がある記録媒体の普及を促進することができる。
【0092】
なお、上記第2の実施の形態においては、編集内容書込処理2において、データ編集処理の実行回数が100の倍数のときに更新処理を実行することとしたが、更新処理の実行頻度はこれに限定されないが、編集内容書込処理2を実行する毎に毎回更新処理を行うのではなく、CPU11による他の処理の妨げにならないように頻度を設定し、定期的に更新処理を実行することが望ましい。
【0093】
また、上記第2の実施の形態においては、データが記録されていない空きブロックを利用して任意のブロックから他のブロックにデータを移動する例を説明したが、これは例えば停電等が発生した場合に移動中のデータが失われることを防ぐためである。この他に、例えば空きブロックを利用せずに、移動させるデータをRAM14に一時記憶させてデータの移動を行ってもよい。
【0094】
更に、上記第2の実施の形態では、交換処理においてデータの書込回数カウント値が最多と最少のブロックのデータを入れ替えたが、これに限らず、データの書込みが頻発するブロックとそれよりも書込頻度が低いブロックのデータを入れ替えることによって不揮発性メモリ17Aにおける部分的なデータ書込が集中することを防止してデータの消失を防ぐことができる。
【0095】
その他、データ記録制御装置1を構成する各部の細部構成、及び細部動作に関しても、本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【0096】
【発明の効果】
請求項1又は8記載の発明によれば、記録媒体内のデータ記録回数が多いデータ記録領域に記録されるデータの消失を回避することができ、記録媒体の信頼性を向上させることができる。また、これにより、記録媒体の利用価値を高めて記録媒体の普及を促進することができる。
【0097】
請求項2、6、7の何れか一項に記載の発明によれば、記録媒体のデータ記録領域に記録されたデータと他の領域に記録した場合に、データが実際に記録された領域を特定し、データを管理することができる。
【0098】
請求項3記載の発明によれば、記録媒体の種類や用途に応じて記録媒体内のデータ記録領域毎にデータ記録回数を制限することができる。
【0099】
請求項4又は9記載の発明によれば、記録媒体内のデータ記録領域毎のデータ記録回数を平均化することができ、記録媒体の使用期間を延ばすことができる。また、これにより、記録媒体の利用価値を高めて記録媒体の普及を促進することができる。
【0100】
請求項5記載の発明によれば、データ記録領域に記録されたデータと他のデータ記録領域に記録されたデータを入れ替えて記録する際のデータの消失を防ぐことができ、データの移動を安全に行うことができる。
【図面の簡単な説明】
【図1】本発明を適用した第1及び第2の実施の形態によるデータ記録制御装置1の機能的構成を示すブロック図である。
【図2】図1のROM15に記憶された各種プログラムの階層構造を模式的に示す図である。
【図3】第1の実施の形態における図1の不揮発性メモリ17Aの構成を示す図である。
【図4】(a)は、図1の不揮発性メモリ17Aの記録領域の1ブロックのデータ構成例を示す図であり、(b)は、代替記録領域の1ブロックのデータ構成例を示す図である。
【図5】第1及び第2の実施の形態における図1のCPU11によるデータ編集処理を示すフローチャートである。
【図6】第1の実施の形態における図1のCPU11による編集対象データ読出処理1を示すフローチャートである。
【図7】第1の実施の形態における図1のCPU11による編集内容書込処理1を示すフローチャートである。
【図8】第2の実施の形態における図1の不揮発性メモリ17Aの構成を示す図である。
【図9】第2の実施の形態において図1のROM15に記憶されたブロック管理テーブルを示す図である。
【図10】図1の不揮発性メモリ17Aの記録領域の1ブロックの図4(a)とは異なるデータ構成例を示す図である。
【図11】(a)は、第2の実施の形態における図1のCPU11による交換戻し処理の手順を示す図であり、(b)はCPU11による交換処理の手順を示す図である。
【図12】第2の実施の形態における図1のCPU11による更新処理において、交換戻し処理を2回実行した後に交換処理を実行する場合の手順を示す図である。
【図13】第2の実施の形態における図1のCPU11による編集対象データ読出処理2を示すフローチャートである。
【図14】第2の実施の形態における図1のCPU11による編集内容書込処理2を示すフローチャートである。
【図15】第2の実施の形態における図1のCPU11による更新処理を示すフローチャートである。
【図16】第2の実施の形態における図1のCPU11による交換戻し処理を示すフローチャートである。
【図17】第2の実施の形態における図1のCPU11による交換処理を示すフローチャートである。
【符号の説明】
1 データ記録制御装置
11 CPU
12 入力部
13 表示部
14 RAM
15 ROM
16 印字装置
17 不揮発性メモリドライバ
17A 不揮発性メモリ
18 HDD
18A ハードディスク
19 伝送制御部
20 バス
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data recording control device that controls data recording on a recording medium and a program for controlling the data recording control device.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, in a portable information processing device such as a portable notebook personal computer, a hard disk device is mounted as a large-capacity recording medium for recording various data and various programs. However, since the hard disk device is vulnerable to impact, a small-capacity recording medium such as a nonvolatile semiconductor memory having excellent impact resistance is also mounted on the portable information processing device.
[0003]
[Problems to be solved by the invention]
However, the non-volatile semiconductor memory has a lower limit of the number of times of writing as compared with the hard disk device. Therefore, there is a high possibility that the number of times of writing exceeds the limit, and recorded data may be lost. . Further, when the number of times of data writing is partially biased in the nonvolatile semiconductor memory and the number of times of writing reaches the limit value in the biased portion, the entire memory cannot be used any more. Would.
[0004]
Such a phenomenon is because the main body that determines the data write area in the memory is in the program on the control side, and the data write operation to some recording areas in the memory frequently occurs depending on the program to be used. In other words, in the conventional memory utilization mode, since the control in consideration of the number of times of writing to the recording area is not performed partially, the memory may not be used effectively, and the capacity of the nonvolatile semiconductor memory may be increased. It could hinder its spread.
[0005]
SUMMARY OF THE INVENTION It is an object of the present invention to efficiently record data on a recording medium having a limited number of times of writing to prevent data loss, thereby realizing a large-capacity recording medium and promoting its spread.
[0006]
[Means for Solving the Problems]
The invention according to claim 1 is
In the data recording control device,
Area setting means for setting a data recording area and an alternative data recording area in a recording medium,
Data recording means for recording data in a designated data recording area of the recording medium,
Storage means for storing the number of times of data recording by the data recording means for each data recording area,
With
The data recording means records the data recorded in the data recording area in the alternative data recording area when the number of recordings of the data recording area stored in the storage means reaches a predetermined number. And
[0007]
According to the invention described in claim 1,
The area setting means sets a data recording area and an alternative data recording area in a recording medium, the data recording means records data in a designated data recording area of the recording medium, and the storage means comprises the data recording means. Is stored for each data recording area, and the data recording means records the data recording area in the data recording area when the recording number of the data recording area stored in the storage means reaches a predetermined number. The recorded data is recorded in the alternative data recording area.
[0008]
Therefore, it is possible to avoid loss of data recorded in the data recording area where the number of times of recording data in the recording medium is large, and it is possible to improve the reliability of the recording medium. This also makes it possible to increase the value of use of the recording medium and promote the spread of the recording medium.
[0009]
The invention according to claim 4 is
In a data recording device,
Data recording means for recording data in a designated data recording area in a recording medium,
Storage means for storing the number of times of data recording for each data recording area in which data is recorded by the data recording means,
With
The data recording unit is characterized in that data recorded in the data recording area is exchanged with data recorded in another data recording area having a smaller number of recording times than the data recording area, and is recorded.
[0010]
According to the invention described in claim 4,
The data recording means records data in a designated data recording area in a recording medium, and the storage means stores a data recording number for each data recording area in which data is recorded by the data recording means. The means is characterized in that the data recorded in the data recording area and the data recorded in another data recording area having a smaller number of recording times than the data recording area are exchanged and recorded.
[0011]
Therefore, the number of times of data recording for each data recording area in the recording medium can be averaged, and the use period of the recording medium can be extended. This also makes it possible to increase the value of use of the recording medium and promote the spread of the recording medium.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
The data recording control device 1 according to the present invention will be described in detail with reference to the drawings. Hereinafter, the first and second embodiments of the data recording control device 1 will be described in detail. However, since the configuration of the data recording control device 1 in each embodiment has the configuration shown in FIG. 1 will be omitted, and the same parts will be described with the same reference numerals.
[0013]
[First Embodiment]
Hereinafter, the first embodiment will be described in detail including common parts of the embodiments. First, the configuration will be described.
FIG. 1 is a block diagram showing a functional configuration of a data recording control device 1 according to one embodiment of the present invention. As shown in FIG. 1, the data recording control device 1 includes a CPU 11, an input unit 12, a display unit 13, a RAM 14, a ROM 15, a printing device 16, a nonvolatile memory drive 17, an HDD 18, and a transmission control unit 18. They are connected by a bus 20 so that data can be mutually transmitted and received.
[0014]
FIG. 2 is a diagram schematically showing a hierarchical structure of various programs stored in the ROM 15 shown in FIG. The various programs include an application program executed by the CPU 11, a system program for realizing basic functions of an OS (Operating System) including memory management and task management, and a HDD (Hard Disk Drive) in order from the upper layer. A non-volatile memory control program for controlling the non-volatile memory 17A is mounted on the lowest layer. The CPU 11 of FIG. 1 uses the nonvolatile memory control program shown in FIG. 2 to set, in the nonvolatile memory 17A, a recording area that can be recognized by the OS and an alternative recording area that cannot be recognized by the OS (FIG. 3), and controls the writing, reading, and editing of data in the nonvolatile memory 17A in various processes described later.
[0015]
Here, the recording area and the alternative recording area of the nonvolatile memory 17A will be described with reference to FIG. Note that the recording area and the substitute recording area are each composed of a plurality of data blocks.
[0016]
FIG. 4A is a diagram showing an example of the data configuration of one block in the recording area. As shown in FIG. 4A, each block 100 forming a recording area records a data area 101 for recording actual data and an ECC (Error Correcting Code) for correcting errors in data in the data area. Area 102 for writing data, the number-of-writes count area 103 for recording the number of times data is written to the data area 101, and the number of times data is written in the data area 101 when the number of times data is written in the data area 101 reaches a predetermined number. An alternative block designation area 104 for recording an address designating a block in an alternative recording area for recording actual data, and an ECC for error correction of data recorded in the write count area 103 and the substitution block designation area 104 And an area 105 for recording the information.
[0017]
FIG. 4B is a diagram illustrating an example of the data configuration of one block in the alternative recording area. As shown in FIG. 4B, each of the replacement blocks 110 constituting the replacement recording area includes a data area 111 for recording actual data and an ECC for error correction of data in the data area. The area 112, the number-of-writes count area 113 for recording the number of times of data writing to the data area 111, and the address of the block 100 when the data of this block is used as a substitute area for the block of the recording area And an area 115 for recording an ECC for error correction of data in the original block specification area 114.
[0018]
In addition, in each process described below, when writing data to each block in the nonvolatile memory 17A, the CPU 11 calculates an ECC for error correction of real data and records it in the area 102 (or area 112). At the same time, when writing the number of times of data writing and the address of the substitute block (or the address of the original block), the ECC is calculated and recorded in the area 105 and the area 115. When reading data from each block, the CPU 11 performs an error correction process using the ECC recorded in each block. The description of the error correction processing using the ECC by the CPU 11 will be omitted below.
[0019]
Hereinafter, each functional component of the data recording control device 1 shown in FIG. 1 will be described in detail.
[0020]
A CPU (Central Processing Unit) 11 loads a system program including an OS stored in a ROM 15 and various application programs corresponding to the system into a work memory formed in a RAM 14 and controls each unit according to the system program. . Further, various instructions or data input from the input unit 12 or the transmission control unit 16 are temporarily stored in the RAM 14, and various processes are executed in accordance with the input instructions and the input data in accordance with the application programs stored in the ROM 15. Then, the processing result is temporarily stored in the RAM 14. Then, the processing result stored in the RAM 14 is stored in a storage destination in the ROM 15 according to an input instruction from the input unit 12.
[0021]
Specifically, the CPU 11 reads out the data editing processing program, the editing target data reading processing 1 program, and the editing content writing processing 1 program stored in the ROM 15 and develops them in the work memory in the RAM 14, which will be described later. The data editing process, the editing target data reading process 1, and the editing content writing process 1 are executed, and the processing results are stored in the work memory in the RAM 14 and displayed on the display unit 12.
[0022]
When an instruction to start the data editing processing program is input from the input unit 12, the CPU 11 executes the data editing processing. In the data editing process, the CPU 11 displays a file designation menu (not shown) for selecting a file to be edited on the display unit 13, opens the file specified from the input unit 12, and displays the data in the file. A file editing screen (not shown) for editing is displayed on the display unit 13. When the edit target data selected on the file edit screen is input via the input unit 12, the CPU 11 executes an edit target data read process 1 described later, and then executes an edit process of the read edit target data. When the content of the editing process is determined by the instruction input from the input unit 12, the editing content writing process 1 described later is executed.
[0023]
The CPU 11 searches the data of the block 100 in the recording area of the non-volatile memory 17A in which the designated edit target data is recorded in the edit target data read processing 1, and stores the substitute block in the substitute block designation area 104 of this block. It is determined whether or not the data designating is designated. If data for designating a substitute block is recorded in the substitute block designation area 104, the CPU 11 searches the designated substitute block 110, and reads out the actual data recorded in the data area 111 as data to be edited. On the other hand, if the CPU 11 determines that the data designating the substitute block is not recorded in the substitute block designation area 104, the CPU 11 reads the actual data from the data area 101 of the block 100 as the data to be edited.
[0024]
The CPU 11 performs an editing process on the actual data (hereinafter, referred to as editing target data) read in the editing target data reading process 1 to generate edited data. Next, in the edit content writing process 1, the count value of the number of times of writing is read from the number-of-times-of-writing count area 103 of the block 100 where the data to be edited is recorded, and the address of the alternative block is read from the alternative block designation area 104. . The CPU 11 compares the count value of the read number of times of writing with a count threshold value stored in the ROM 15 in advance, and if the count value is smaller than the count threshold value, records the edited data in the data area 101 of the block 100; The count value of the write count area 103 is incremented by one.
[0025]
If the count value of the number of times of writing to the block 100 is equal to or larger than the count threshold value in the editing content writing process 1, the CPU 11 records data designating a substitute block in the substitute block designation area 104. For example, the edited data is recorded in the data area 111 of the designated replacement block 110. On the other hand, if the address specifying the replacement block is not recorded, the replacement block 110 in which no data is recorded is searched from the replacement recording area of the nonvolatile memory 17A, and the replacement block is designated as the replacement block of the block 100. Record the address of the block 100 in the original block designation area 114 of FIG.
[0026]
The input unit 12 includes a keyboard and a pointing device such as a mouse provided with a cursor key, a numeric input key, various function keys, and the like, and outputs to the CPU 11 a signal indicating a key pressed on the keyboard and a mouse position signal.
[0027]
The display unit 13 is configured by an LCD (Liquid Crystal Display) or the like, and displays data being processed by the CPU 11, data of a processing result, and the like in accordance with an instruction of a display signal input from the CPU 11.
[0028]
A RAM (Random Access Memory) 14 forms a temporary storage area for programs, input or output data, parameters, and the like read from the ROM 15 in various processes executed and controlled by the CPU 11.
[0029]
A ROM (Read Only Memory) 15 stores in advance programs and data used when the CPU 11 executes the various programs. Specifically, the ROM 15 stores various processing programs as shown in FIG. 2, and includes a data editing processing program, a program for editing target data reading processing 1, a program for editing content writing processing 1, and the like as application programs. Remember. The ROM 15 stores a count threshold value for limiting the number of times of writing.
[0030]
Note that some or all of the programs, data, and the like stored in the ROM 15 are received from an external device from a transmission control unit 19 via a communication network (not shown) such as a LAN (Local Area Network) or a WAN (Wide Area Network). Alternatively, the configuration may be such that the data is stored.
[0031]
The printing device 16 includes an image forming unit (not shown), a transfer unit, a fixing unit, a paper feeding unit, and the like, and prints out data input from the CPU 11 on recording paper.
[0032]
The nonvolatile memory drive 17 is a memory interface, and mediates transmission and reception of data between the nonvolatile memory 17A, which is a nonvolatile semiconductor memory, and the data recording control device 1.
[0033]
The HDD (Hard Disk Drive) 18 is an interface that mediates transmission and reception of data between the hard disk 18A and the data recording control device 1.
[0034]
The transmission control unit 19 includes a network card, a modem, a TA (Terminal Adapter), a router, and the like for communicating with an external device via a communication network (not shown).
[0035]
Next, the operation in the first embodiment will be described.
The data editing processing, which is the main processing by the CPU 11, and the editing target data reading processing 1 and the editing content writing processing 1 executed in the data editing processing will be described with reference to the flowcharts of FIGS.
[0036]
Here, programs for implementing the functions described in these flowcharts are stored in the ROM 15 in the form of readable program codes, and the CPU 11 sequentially executes operations according to the program codes. Further, the CPU 11 can also sequentially execute an operation according to the above-described program code transmitted via the transmission medium. That is, an operation unique to the present embodiment can be executed using a program or data externally supplied via a transmission medium other than the ROM 15.
[0037]
FIG. 5 is a flowchart showing a data editing process executed by the CPU 11. In the data editing process shown in FIG. 5, the CPU 11 displays a file designation menu (not shown) on the display unit 13 (step S1). Next, it is determined whether or not a file has been designated by an instruction input from the input unit 12 (step S2). If a file has not been designated (step S2; NO), the process returns to step S1 and a file has been designated (step S2). (Step S2; YES), a block in which the designated file is recorded is retrieved from the non-volatile memory 17A, expanded in the RAM 14 (Step S3), and the process proceeds to Step S4.
[0038]
Next, the CPU 11 displays a file editing screen (not shown) on the display unit 13 (step S4), and determines whether or not the data to be edited has been designated by the instruction input from the input unit 12 (step S5). If the edit target data is not specified (step S5; NO), the CPU 11 returns to step S4. If the edit target data is specified (step S5; YES), the CPU 11 executes edit target data reading processing 1 described later (step S5). Step S6) Then, the editing process of the data to be edited is executed to generate the edited data (step S7).
[0039]
After the end of the editing processing in step S7, the CPU 11 determines whether or not the editing content has been determined by inputting an instruction from the input unit 12 (step S8). If the editing content has not been determined (step S8; NO), the CPU 11 proceeds to step S7. When the editing content is determined (step S8; YES), the editing content writing process 1 described later is executed to record the edited data in the nonvolatile memory 17A, and the data editing process ends.
[0040]
FIG. 6 is a flowchart showing the edit target data reading process 1 executed by the CPU 11 in the data editing process. In the editing target data reading process 1 shown in FIG. 6, the CPU 11 reads the block 100 in the recording area of the nonvolatile memory 17A in which the editing target data is recorded, and reads the data in the alternative block designation area 104 of this block ( Step S11), it is determined whether or not there is data specifying the alternative block 110 (step S12).
[0041]
When the CPU 11 determines that the data designating the replacement block 110 is not recorded in the replacement block designation area 104 (step S12; NO), the CPU 11 reads the actual data recorded in the data area 101 of the block 100 (step S13). . On the other hand, if it is determined that data designating a substitute block is recorded in the substitute block designation area 104 (step S12; YES), the CPU 11 searches the nonvolatile memory 17A for the substitute block 110 and retrieves the actual data from the data area 111. Is read (step S14).
[0042]
FIG. 7 is a flowchart showing an editing content writing process 1 executed by the CPU 11 in the data editing process. In the description of the editing content writing processing 1 shown in FIG. 7, the address of the block 100 corresponding to the data to be edited is A0, the address of the replacement block 110 of the block of A0 is A1, and the data in the replacement storage area is A1. Let A2 be the address of any empty block that is not recorded.
[0043]
In the editing content writing process 1 shown in FIG. 7, when the address in the nonvolatile memory 17A in which the data to be edited is recorded is A0 (step S21), the CPU 11 counts the number of times of writing of the block 100 of the address A0. The data recorded in the area 103 and the alternative block designation area 104 are read (step S22), and it is determined whether or not the count value read from the write count area 103 is less than the count threshold value stored in the ROM 15. (Step S23) If the count value of the number of times of writing is less than the count threshold (Step S23; YES), the edited data is recorded in the data area 101 of the block 100 at the address A0, and The count value is incremented by 1 (step S24), and the editing content writing process 1 ends.
[0044]
On the other hand, if the CPU 11 determines in step S23 that the count value of the number of times of writing of the block at the address A0 is not smaller than the count threshold value (step S23; NO), the data specifying the replacement block in the replacement block designation area 104 of the block 100 It is determined whether or not there is (step S25). Here, when the CPU 11 determines that there is data (address A1) designating a substitute block (step S25; YES), the CPU 11 reads the substitute block 110 of the address A1 (step S26), and reads the data of the substitute block 110 of the address A1. The edited data is recorded in the area 111 (step S27), and the edited content writing processing 1 ends.
[0045]
On the other hand, when the CPU 11 determines in step S25 that the data designating the replacement block is not recorded in the replacement block designation area 104 of the block 100 at the address A0 (step S25; NO), the CPU 11 determines from the replacement recording area of the nonvolatile memory 17A. An empty block in which no data is recorded is searched (step S28).
[0046]
Subsequently, the CPU 11 designates the empty block at the address A2 as the substitute block of the block 100 at the address A0, and records the address A2 in the substitute block designation area 104 of the block 100 at the address A0 (step S29). Next, the edited data is recorded in the data area 111 of the substitute block 110 at the address A2 (step S30), and the edited content writing processing 1 is terminated.
[0047]
As described above, according to the data recording control device 1 of the first embodiment, the CPU 11 sets the recording area and the alternative recording area in the nonvolatile memory 17A by the nonvolatile memory control program, and When the number of times of data writing in the block reaches the threshold value, the data recorded in this block is recorded in the substitute block of the substitute recording area. To extend the use period and increase the capacity. In addition, it is possible to promote the spread of a recording medium such as a non-volatile memory having a limited number of writings.
[0048]
In the first embodiment, the replacement block 110 is not provided with an area for recording the count value of the number of times of writing, but the replacement block 110 is also provided with an area for counting the number of times of writing. When the threshold value is reached, guidance urging replacement of the non-volatile memory 17A may be displayed on the display unit 13, or backup data of data recorded in the replacement block 110 may be stored in the ROM 15. As a result, data loss can be more reliably prevented.
[0049]
[Second embodiment]
In the second embodiment, since the data recording control device 1 has substantially the same configuration as that described in the first embodiment with reference to the block diagram of FIG. 1, the same components are denoted by the same reference numerals. , And duplicate description will be omitted.
[0050]
However, in the second embodiment, the CPU 11 in FIG. 1 does not use the nonvolatile memory control program in FIG. 2 to set a recording area and an alternative recording area as shown in FIG. Thus, the entire nonvolatile memory 17A is set as a recording area that can be recognized by the OS.
[0051]
Further, in the second embodiment, the CPU 11 creates a block management table shown in FIG. 9 using the nonvolatile memory control program and saves the block management table in the ROM 15 so that the data of each block in the nonvolatile memory 17A is stored. Manage. As shown in FIG. 9, in the block management table, an address in the nonvolatile memory 17A, a block name, a file name that can be specified by the user, a count value of the number of times of data writing, and each block are recorded. Actual data and an alternative block name are stored in association with each other.
[0052]
Here, in the present embodiment, each block in the nonvolatile memory 17A has the same data configuration as the block 100 in FIG. 4A. The difference from the first embodiment is that, for example, when the number of times of data recording has reached the count threshold in an arbitrary block X in the nonvolatile memory 17A, the CPU 11 determines that the number of times of data recording has not reached the count threshold. The block Y is searched, and the data of these two blocks are exchanged. At this time, the CPU 11 records the address of the block Y in the substitute block designation area of the block X, and records the address of the block X in the substitute block designation area of the block Y. That is, the substitute blocks are not predetermined, and the blocks that replace the recorded data are substitute blocks for each other.
[0053]
Note that the following description will be made assuming that the data configuration of each block of the nonvolatile memory 17A in the present embodiment is the same as the data configuration of the first embodiment (see FIG. 4A). As shown in FIG. 10, a write frequency check area may be provided in place of the write frequency count area 103. In this case, a bit pattern is recorded in the write count check area 123 of FIG. 10 every time data is written to the data area 121, and the pattern changes when the number of write times of the bit pattern reaches a predetermined count. To be configured. Then, the CPU 11 restricts data writing in this block by detecting a change in the pattern.
[0054]
Hereinafter, a functional configuration of the data recording control device 1 according to the present embodiment will be described with reference to FIG.
[0055]
The CPU 11 according to the embodiment of the present invention specifically includes a data editing process program, a program for editing target data reading process 2, a program for editing content writing process 2, an updating process program, an exchange returning process stored in the ROM 15. The program and the exchange processing program are read out and developed in the work memory in the RAM 14, and the following data editing processing, editing target data reading processing 2, editing content writing processing 2, update processing, exchange return processing, and exchange processing are executed. The processing results are stored in the work memory in the RAM 14 and displayed on the display unit 12. The CPU 11 also calculates the total number of executions of the data editing process, the write count Cmax of the block with the largest number of data writes among all the blocks in the nonvolatile memory 17A, and the count of the block with the smallest number of data writes. The purchase count value Cmin is stored in the ROM 15.
[0056]
The CPU 11 executes substantially the same processing as that of the first embodiment in the data editing processing, and thus a detailed description thereof is omitted. However, in the present embodiment, the CPU 11 executes an edit data read process 2 described later instead of the edit target data read process 1, and executes an edit content write process 2 described later instead of the edit content write process 1.
[0057]
In the edit target data read process 2, the CPU 11 reads a block in which the edit target data is recorded, and if there is no data designating a substitute block in the substitute block designation area of this block, reads actual data from the data area of this block. On the other hand, if there is data specifying a replacement block in the replacement block specification area 104, the replacement block is read and actual data is read from the data area. Further, the count value C is read from the write number count area of the block from which the actual data is read, and is compared with the count value Cmax stored in the ROM 15. If the count value C is larger than Cmax, the count value C is read from the ROM 15 by the count value C. Is updated. On the other hand, the count value C is compared with the count value Cmin stored in the ROM 15, and if the count value C is smaller than the count value Cmin, the count value C in the ROM 15 is updated with the count value C.
[0058]
In the editing content writing process 2, if the number of times of execution of the data editing process is a multiple of 100, the CPU 11 executes an updating process described later. The block in the nonvolatile memory 17A in which the target data is recorded is read. Next, if there is no data designating a substitute block in the substitute block designation area of the read block, the edited data is recorded in the data area of this block, and the count value C of the write count area is incremented by one. On the other hand, if there is data designating a substitute block in the data area of the read block, the substitute block is read, the edited data is recorded in the data area, and the count value C of the write count area is incremented by one.
[0059]
Further, in the editing content writing process 2, if the count value C of the block in which the edited data is recorded is larger than the count value Cmax stored in the ROM 15, the CPU 11 updates the count value Cmax with the count value C. If the count value C is smaller than the count value Cmin, the count value Cmin is updated by the count value C.
[0060]
When the difference between the count value Cmax and the count value Cmin stored in the ROM 15 is not smaller than the count difference threshold value stored in the ROM 15 in the update process, the CPU 11 reads the data of the block of the count value Cmax, If there is data designating a substitute block in the substitute block designation area, the exchange return process described later is executed. Next, the CPU 11 reads the data of the block having the count value Cmin, and if there is data specifying a substitute block in the substitute block designation area of this block, performs the exchange return process described later. Next, the CPU 11 executes an exchange process described later and ends the update process.
[0061]
In the exchange return processing, the CPU 11 refers to the block management table of FIG. 9 to search for an empty block in which no actual data is recorded, and uses this empty block to perform the exchange return target block and its replacement. The actual data is returned to the original block by exchanging the actual data recorded in the block.
[0062]
Here, an example of the exchange return process will be described with reference to FIG. As shown in FIG. 11A, the block B1 of the count value Cmax or the count value Cmin to be subjected to the exchange return processing has the block B2 set as a substitute block, and the actual data D1 of the block B1 and the block B2 of the block B2 are set. The actual data D2 is replaced with the actual data D2, and B2 is recorded in the substitute block designation area of the block B1, and B1 is recorded in the substitute block designation area of the block B2. The CPU 11 transfers the real data D1 recorded in the block B2 to the data area of the empty block Aa, records B1 in the substitute block designation area of the block Aa, and clears the substitute block designation area of the block B2.
[0063]
Next, the CPU 11 moves the actual data D2 recorded in the block B1 to the data area of the vacant block B2, and clears the substitute block designation area of the block B1. Subsequently, the CPU 11 transfers the actual data D1 recorded in the data area of the block Aa to the data area of the vacant block B1. As a result, the actual data D1 of the block B1 and the actual data D2 of the block B2 are returned to the original block.
[0064]
In the exchange process, the CPU 11 exchanges the actual data recorded in the block of the count value Cmax and the block of the count value Cmin in which the actual data is returned to the original block in the exchange return process.
[0065]
Here, an example of the exchange processing will be described with reference to FIG. As shown in FIG. 11B, the actual data D1 is recorded in the data area of the block C1 having the count value Cmax, and the actual data D2 is recorded in the data area of the block C2 having the count value Cmin. The CPU 11 searches for a free block Aa in which no data is recorded, with reference to the block management table of FIG. Next, the real data D2 of the block C2 is moved to the data area of the block Aa, C2 is recorded in the replacement block designation area of the block Aa, and Aa is recorded in the replacement block designation area of the block C2.
[0066]
Subsequently, the CPU 11 moves the real data D1 of the block C1 to the data area of the block C2, records C1 in the replacement block designation area of the block C2, and records C2 in the replacement block designation area of the block C1. Next, the real data D1 recorded in the data area of the block Aa is moved to the data area of the block C2, the data in the substitute block designation area of the block Aa is cleared, and C1 is recorded in the substitute block designation area of the block C2. In this way, the actual data recorded in the block with the largest number of writing times and the block with the smallest number of writing times are exchanged.
[0067]
Hereinafter, referring to FIG. 12, a process of exchanging blocks of count value Cmax, an exchanging process of blocks of count value Cmin, and an exchanging process executed after these exchanging processes will be described. An example of a series of processing procedures will be described.
[0068]
As shown in FIG. 12, the CPU 11 first converts the actual data recorded in the block B1 of the count value Cmax and its substitute block B2 into the original block by using the empty block Aa in the first exchange return processing. Then, the data in the alternate block designation area of the blocks B1 and B2 is cleared. Also, 1 is added to the count value 40,000 of the number of writing times of the block B1 to update it to 40,001, and 1 is added to the count value 30,000 of the block B2 to update it to 30,001.
[0069]
Next, in the second replacement return process, the CPU 11 returns the actual data recorded in the block B3 of the count value Cmin and the replacement block B4 to the original block in the same procedure as described above, and replaces the replacement blocks of the blocks B3 and B4. Clear the data in the specified area. Further, 1 is added to the count value 10,000 of the number of writing times of the block B3 to update it to 10,000, and 1 is added to the count value 20,000 of the number of writing times of the block B4 and updated to 20,001. I do.
[0070]
Next, the CPU 11 exchanges the actual data D1 recorded in the block B1 of the count value Cmax and the actual data D3 recorded in the block B3 of the count value Cmin after the above two exchange return processes. As described above, the CPU 11 replaces data recorded in a block with a high writing frequency with data of a block with a low writing frequency, thereby preventing data writing to a specific block from being concentrated.
[0071]
The ROM 15 specifically stores various processing programs as shown in FIG. 2, and includes a data editing processing program, a program for editing target data reading processing 2, a program for editing content writing processing 2, an updating processing program, It stores application programs such as an exchange return processing program and an exchange processing program. Further, the ROM 15 stores the total number of executions of the data editing process by the CPU 11, the count value Cmax of the number of times of writing in the block having the largest number of data writings among the blocks of the nonvolatile memory 17A, and the count value Cmax of the block having the least number of times of data writing. A count value Cmin, which is a count value of the number of times of writing, a count difference threshold value, and the like are stored.
[0072]
Next, an operation in the second embodiment will be described.
The editing target data reading process 2, the editing content writing process 2, the updating process, the exchange return process, and the exchange process executed in the data editing process by the CPU 11 will be described with reference to the flowcharts of FIGS.
[0073]
FIG. 13 is a flowchart showing the edit target data reading process 2 by the CPU 11. In the editing target data reading process 2 shown in FIG. 13, the CPU 11 searches for a block in the non-volatile memory 17A in which the editing target data is recorded, and reads data in an alternative block designation area of this block (step S101). It is determined whether or not a substitute block has been designated (step S102).
[0074]
In step S102, when the replacement block is not designated (step S102; NO), the actual data recorded in the data area of the block searched in step S101 and the count value C recorded in the write count area are compared with the count value C. Is read out (Step S103), and the routine goes to Step S105. On the other hand, when a substitute block is designated in the substitute block designation area of the block (step S102; YES), the actual data recorded in the data area of the designated substitute block and the actual data recorded in the write count area are recorded. After reading out the count value C (step S104), the process proceeds to step S105.
[0075]
In step S105, the CPU 11 determines whether or not the count value C of the number of data writings read in step S103 or S104 exceeds the count value Cmax recorded in the ROM 15, and the count value C exceeds the count value Cmax. In this case (step S105; YES), the count value Cmax stored in the ROM 15 is updated with the count value C using the count value C (step S106), and the edit target data reading process 2 ends.
[0076]
On the other hand, in step S105, if the count value C does not exceed the count value Cmax (step S105; NO), the CPU 11 determines whether or not the count value C is less than the count value Cmin stored in the ROM 15. (Step S107) When the count value C is less than the count value Cmin (Step S107; YES), the count value C is updated with the count value C, and when the count value C is not less than the count value Cmin ( Step S107; NO), the edit target read process 2 is terminated as it is.
[0077]
FIG. 14 is a flowchart showing the edit content writing process 2. As shown in FIG. 14, the CPU 11 determines whether the number of times of execution of the data editing process stored in the ROM 15 is a multiple of 100 (step S111), and determines that the number of executions is not a multiple of 100 (step S111; NO), the process proceeds to step S113, and if it is a multiple of 100 (step S111; YES), an update process is executed (step S112), and the process proceeds to step S113.
[0078]
Next, the CPU 11 reads the data of the block A0 of the data to be edited from the nonvolatile memory 17A (step S113), reads out the data in the write count area and the alternative block designation area (step S114), It is determined whether there is data specifying a block (step S115).
[0079]
In step S115, if there is no data designating the substitute block (step S115; NO), the edited data is recorded in the data area of the block read in step S113, and the count value of the write count count area of this block is written. C is incremented by 1 (step S116), and the process proceeds to step S118. On the other hand, in step S115, if there is data designating a substitute block (step S115; YES), the designated substitute block is read out, the edited data is recorded in the data area, and the number-of-writes count area of this block is written. Is incremented by 1 (step S117), and the routine goes to step S118.
[0080]
Subsequently, the CPU 11 determines whether or not the count value C of the block in which the edited data has been written in step S116 or S117 exceeds the count value Cmax stored in the ROM 15 (step S118). If the count value Cmax is exceeded (step S118; YES), the count value Cmax is updated with the count value C (step S119), and the editing content writing process 2 ends.
[0081]
On the other hand, if the count value C is equal to or smaller than the count value Cmax in step S118 (step S118; NO), the CPU 11 determines whether the count value C is less than the count value Cmin stored in the ROM 15 (step S120). If the count value C is not less than the count value Cmin (step S120; NO), the editing content writing process 2 is terminated. On the other hand, if the count value C is less than the count value Cmin (step S120; YES), the count value Cmin is updated with the count value C (step S121), and the editing content writing process ends.
[0082]
FIG. 15 is a flowchart showing an updating process executed in the editing content writing process 2 by the CPU 11. As shown in FIG. 15, the CPU 11 determines whether the difference between the count value Cmax and the count value Cmin stored in the ROM 15 is less than the count difference threshold stored in the ROM 15 (step S122). If the difference is less than the difference threshold (step S122; YES), the update processing is terminated. On the other hand, if the difference between the count value Cmax and the count value Cmin is not smaller than the count difference threshold (step S122; NO), the block with the count value Cmax is read, and the data in the substitute block designation area is read (step S123). ).
[0083]
Next, the CPU 11 determines whether or not a substitute block has been designated in the substitute block designation area of the block having the count value Cmax (step S124). If no substitute block has been designated (step S124; NO), the CPU 11 proceeds to step S126. When a substitute block is designated (step S124; YES), a process of replacing the block with the count value Cmax is performed (step S125), and the process proceeds to step S126.
[0084]
Next, the CPU 11 reads out the data of the block having the count value Cmin and also reads out the data in the substitute block designation area (step S126), and determines whether or not there is data designating the substitute block (step S127). If there is no data designating a substitute block (step S127; NO), the CPU 11 proceeds to step S129, and if there is data designating a substitute block (step S127; YES), a process of exchanging blocks of the count value Cmin. Is executed (Step S128), and the routine goes to Step S129. Subsequently, the CPU 11 executes an exchange process for exchanging data of the block of the count value Cmax and the block of the count value Cin (step S129), and ends the update process.
[0085]
FIG. 16 is a flowchart showing the exchange return processing executed in the update processing by the CPU 11. As shown in FIG. 16, the CPU 11 reads out data of a block (here, block A1) to be subjected to the exchange return processing and data of its replacement block (here, block A2) (step S131). Next, the CPU 11 searches for an empty block by referring to the block management table shown in FIG. 9 (step S132), and acquires the block Aa (step S133).
[0086]
Next, the CPU 11 records the actual data D1 recorded in the block A2 in the data area of the block Aa, records A1 in the alternative block designation area of the block Aa, and adds 1 to the count value C of the write count area. (Step S134). Further, the CPU 11 clears the data in the substitute block designation area of the block A2 (step S135).
[0087]
Subsequently, the CPU 11 moves the real data D2 recorded in the data area of the block A1 to the data area of the block A2, and clears the data of the alternative block designation area of the block A1 (step S136). Next, the CPU 11 moves the actual data D1 recorded in the data area of the block Aa to the data area of the block A1, and adds 1 to the count value of the write count area of the block A1 (step S137). Then, the data of the substitute block designation area of the block Aa is cleared (step S138), and the exchange return processing ends.
[0088]
FIG. 17 is a flowchart showing an exchange process executed in the update process by the CPU 11. As shown in FIG. 17, the CPU 11 reads, from the nonvolatile memory 17A, data of a block of the count value Cmax (here, block A1) and a block of the count value Cmin (here, block A2) which have been subjected to the exchange return processing. (Step S141). Next, the CPU 11 searches for a free block in the nonvolatile memory 17A with reference to the block management table of FIG. 9 (step S142), and acquires a free block (referred to as block Aa) (step S143).
[0089]
Subsequently, the CPU 11 transfers the real data D1 recorded in the block A1 to the data area of the block Aa, records A1 in the alternative block designation area of the block Aa, and changes the count value C of the write count area of the block Aa. One is added (step S144). Next, after recording Aa in the substitute block designation area of A1 (step S145), the CPU 11 moves the actual data D2 recorded in the block A2 to the data area of the block A1, and stores A2 in the substitute block designation area of the block A1. Is recorded and 1 is added to the count value of the write count area of the block A1 (step S146).
[0090]
Next, the CPU 11 transfers the real data D1 recorded in the block Aa to the data area of the block A2, records A1 in the alternative block designation area of the block A2, and sets the count value of the write count area of the block A2 to 1 Addition is performed (step S147). Next, the CPU 11 clears the data in the substitute block designation area of the block Aa (step S148), and ends the exchange processing.
[0091]
As described above, according to the data recording control device 1 of the second embodiment, the CPU 11 determines that the difference between the count values of the block with the largest number of writing times and the block with the smallest number of times reaches the count difference threshold value. Since the data in these blocks are exchanged using the empty blocks of the nonvolatile memory 17A, it is possible to prevent frequent data writing in the nonvolatile memory 17A. Therefore, loss of data in the non-volatile memory 17A is prevented, and the capacity can be increased. In addition, it is possible to promote the spread of a recording medium such as a nonvolatile memory, which has a limited number of times of writing.
[0092]
In the second embodiment, in the editing content writing process 2, the update process is executed when the number of times of execution of the data editing process is a multiple of 100. The update process is not performed every time the edit content writing process 2 is performed, but the frequency is set so as not to hinder other processes by the CPU 11 and the update process is periodically performed. Is desirable.
[0093]
Further, in the second embodiment, an example has been described in which data is moved from an arbitrary block to another block using an empty block in which no data is recorded. This is to prevent the data being moved from being lost in some cases. Alternatively, for example, the data to be moved may be temporarily stored in the RAM 14 without using an empty block.
[0094]
Further, in the second embodiment, in the exchange processing, the data of the blocks with the largest and smallest data write count values are exchanged. However, the present invention is not limited to this. By exchanging the data of the block with a low writing frequency, partial data writing in the nonvolatile memory 17A can be prevented from being concentrated, and data loss can be prevented.
[0095]
In addition, the detailed configuration and the detailed operation of each unit included in the data recording control device 1 can be appropriately changed without departing from the spirit of the present invention.
[0096]
【The invention's effect】
According to the first or eighth aspect of the present invention, it is possible to avoid the loss of data recorded in the data recording area where the number of times of data recording in the recording medium is large, and to improve the reliability of the recording medium. This also makes it possible to increase the value of use of the recording medium and promote the spread of the recording medium.
[0097]
According to the invention described in any one of claims 2, 6, and 7, when data recorded in a data recording area of a recording medium and data recorded in another area are used, an area where data is actually recorded is recorded. Identify and manage your data.
[0098]
According to the third aspect of the invention, the number of times of data recording can be limited for each data recording area in the recording medium according to the type and use of the recording medium.
[0099]
According to the fourth or ninth aspect of the present invention, the number of times of data recording for each data recording area in the recording medium can be averaged, and the use period of the recording medium can be extended. This also makes it possible to increase the value of use of the recording medium and promote the spread of the recording medium.
[0100]
According to the fifth aspect of the present invention, it is possible to prevent data loss when data exchanged between data recorded in the data recording area and data recorded in another data recording area is recorded, and data movement can be safely performed. Can be done.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a functional configuration of a data recording control device 1 according to first and second embodiments to which the present invention is applied.
FIG. 2 is a diagram schematically showing a hierarchical structure of various programs stored in a ROM 15 of FIG.
FIG. 3 is a diagram showing a configuration of a nonvolatile memory 17A of FIG. 1 in the first embodiment.
4A is a diagram illustrating a data configuration example of one block in a recording area of a nonvolatile memory 17A in FIG. 1, and FIG. 4B is a diagram illustrating a data configuration example of one block in an alternative recording region; It is.
FIG. 5 is a flowchart showing a data editing process by the CPU 11 of FIG. 1 in the first and second embodiments.
FIG. 6 is a flowchart showing an edit target data reading process 1 by the CPU 11 of FIG. 1 in the first embodiment.
FIG. 7 is a flowchart showing an editing content writing process 1 by the CPU 11 of FIG. 1 in the first embodiment.
FIG. 8 is a diagram showing a configuration of a nonvolatile memory 17A of FIG. 1 in a second embodiment.
FIG. 9 is a diagram showing a block management table stored in a ROM 15 of FIG. 1 in the second embodiment.
FIG. 10 is a diagram showing an example of a data configuration of one block of a recording area of the nonvolatile memory 17A shown in FIG. 1 which is different from FIG. 4A.
11A is a diagram illustrating a procedure of an exchange return process by the CPU 11 of FIG. 1 according to the second embodiment, and FIG. 11B is a diagram illustrating a procedure of an exchange process by the CPU 11;
FIG. 12 is a diagram showing a procedure in a case where the exchange process is executed after the exchange return process is executed twice in the update process by the CPU 11 of FIG. 1 in the second embodiment.
FIG. 13 is a flowchart showing an edit target data reading process 2 by the CPU 11 of FIG. 1 in the second embodiment.
FIG. 14 is a flowchart showing an editing content writing process 2 by the CPU 11 of FIG. 1 in the second embodiment.
FIG. 15 is a flowchart showing an update process by the CPU 11 of FIG. 1 in the second embodiment.
FIG. 16 is a flowchart showing an exchange return process by the CPU 11 of FIG. 1 in the second embodiment.
FIG. 17 is a flowchart showing an exchange process by the CPU 11 of FIG. 1 in the second embodiment.
[Explanation of symbols]
1 Data recording control device
11 CPU
12 Input section
13 Display
14 RAM
15 ROM
16 Printing device
17 Non-volatile memory driver
17A Non-volatile memory
18 HDD
18A hard disk
19 Transmission control unit
20 bus

Claims (9)

記録媒体内にデータ記録領域と代替データ記録領域を設定する領域設定手段と、
前記記録媒体の指示されたデータ記録領域にデータを記録するデータ記録手段と、
前記データ記録手段によるデータの記録回数を前記データ記録領域毎に記憶する記憶手段と、
を備え、
前記データ記録手段は、前記記憶手段に記憶された前記データ記録領域の記録回数が所定回数となった場合に、前記データ記録領域に記録されたデータを前記代替データ記録領域に記録することを特徴とするデータ記録制御装置。
Area setting means for setting a data recording area and an alternative data recording area in a recording medium,
Data recording means for recording data in a designated data recording area of the recording medium,
Storage means for storing the number of times of data recording by the data recording means for each data recording area,
With
The data recording means records the data recorded in the data recording area in the alternative data recording area when the number of recordings of the data recording area stored in the storage means reaches a predetermined number. Data recording control device.
前記データ記録手段は、前記データ記録領域に前記代替データ記録領域を指定するデータを記録するとともに、前記代替データ記録領域に前記データ記録領域を指定するデータを記録することを特徴とする請求項1記載のデータ記録制御装置。2. The data recording unit according to claim 1, wherein data for designating the alternative data recording area is recorded in the data recording area, and data for designating the data recording area is recorded in the alternative data recording area. The data recording control device according to the above. 前記所定回数を設定する回数設定手段を備えたことを特徴とする請求項1又は2記載のデータ記録制御装置。3. The data recording control device according to claim 1, further comprising a number setting means for setting the predetermined number of times. 記録媒体内の指示されたデータ記録領域にデータを記録するデータ記録手段と、
前記データ記録手段によりデータが記録されたデータ記録領域毎にデータ記録回数を記憶する記憶手段と、
を備え、
前記データ記録手段は、前記データ記録領域に記録されたデータと、該データ記録領域よりも記録回数が少ない他のデータ記録領域に記録されたデータを入れ替えて記録することを特徴とするデータ記録制御装置。
Data recording means for recording data in a designated data recording area in a recording medium,
Storage means for storing the number of times of data recording for each data recording area in which data is recorded by the data recording means,
With
The data recording control, wherein the data recording means exchanges data recorded in the data recording area with data recorded in another data recording area having a smaller number of recording times than the data recording area, and records the data. apparatus.
前記記録媒体からデータが記録されていない空き領域を探索する探索手段を備え、
前記データ記録手段は、前記空き領域を利用して前記データ記録領域に記録されたデータと前記他のデータ記録領域に記録されたデータを入れ替えて記録することを特徴とする請求項4記載のデータ記録制御装置。
A search unit for searching for an empty area where data is not recorded from the recording medium,
5. The data according to claim 4, wherein the data recording unit records the data recorded in the data recording area and the data recorded in the other data recording area by using the empty area. Recording control device.
前記記憶手段は、前記データ記録領域と前記他のデータ記録領域とを対応付けて記憶することを特徴とする請求項4又は5記載のデータ記録制御装置。6. The data recording control device according to claim 4, wherein the storage unit stores the data recording area and the other data recording area in association with each other. 前記データ記録手段は、前記データ記録領域に前記他のデータ記録領域を指定するデータを記録するとともに、前記他のデータ記録領域に前記データ記録領域を指定するデータを記録することを特徴とする請求項4〜6の何れか一項に記載のデータ記録制御装置。The data recording means records data designating the other data recording area in the data recording area, and records data designating the data recording area in the other data recording area. Item 7. The data recording control device according to any one of Items 4 to 6. コンピュータに、
記録媒体内にデータ記録領域と代替データ記録領域を設定する機能と、
前記記録媒体の指示されたデータ記録領域にデータを記録する機能と、
データの記録回数を前記データ記録領域毎に記憶する機能と、
前記データ記録領域の記録回数が所定回数となった場合に、該データ記録領域に記録されたデータを前記代替データ記録領域に記録する機能と、
を実現させるためのプログラム。
On the computer,
A function of setting a data recording area and an alternative data recording area in a recording medium,
A function of recording data in a designated data recording area of the recording medium,
A function of storing the number of data recordings for each data recording area,
A function of recording data recorded in the data recording area in the alternative data recording area when the number of recording times of the data recording area becomes a predetermined number of times;
The program to realize.
コンピュータに、
記録媒体の指示されたデータ記録領域にデータを記録する機能と、
データが記録されたデータ記録領域毎にデータ記録回数を記憶する機能と、
前記データ記録領域に記録されたデータと、該データ記録領域よりも記録回数が少ない他のデータ記録領域に記録されたデータを入れ替えて記録する機能と、
を実現させるためのプログラム。
On the computer,
A function of recording data in a designated data recording area of a recording medium,
A function of storing the number of times of data recording for each data recording area in which data is recorded,
Data recorded in the data recording area, a function of recording data by replacing data recorded in another data recording area having a smaller number of recording times than the data recording area,
The program to realize.
JP2002241941A 2002-08-22 2002-08-22 Data recording control device and program Expired - Fee Related JP4096660B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002241941A JP4096660B2 (en) 2002-08-22 2002-08-22 Data recording control device and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002241941A JP4096660B2 (en) 2002-08-22 2002-08-22 Data recording control device and program

Publications (2)

Publication Number Publication Date
JP2004079140A true JP2004079140A (en) 2004-03-11
JP4096660B2 JP4096660B2 (en) 2008-06-04

Family

ID=32024276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002241941A Expired - Fee Related JP4096660B2 (en) 2002-08-22 2002-08-22 Data recording control device and program

Country Status (1)

Country Link
JP (1) JP4096660B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188624A (en) * 2006-01-12 2007-07-26 Samsung Electronics Co Ltd Hybrid hard disk drive control method, recording medium, and hybrid hard disk drive
JP2009020955A (en) * 2007-07-12 2009-01-29 Hitachi Ltd Recording device
JP2010079860A (en) * 2008-09-29 2010-04-08 Hitachi Ltd Memory device and memory control method
JP2010250413A (en) * 2009-04-13 2010-11-04 Tdk Corp Memory controller, flash memory system with memory controller, and method for controlling flash memory
US8001356B2 (en) 2006-10-19 2011-08-16 Samsung Electronics Co., Ltd. Methods and apparatus for reallocating addressable spaces within memory devices
JP2014509763A (en) * 2011-07-28 2014-04-21 ▲ホア▼▲ウェイ▼技術有限公司 Method and device for performing memory migration
KR101786027B1 (en) * 2009-04-07 2017-10-18 콘티넨탈 오토모티브 시스템 주식회사 Method for storing data of vehicle

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188624A (en) * 2006-01-12 2007-07-26 Samsung Electronics Co Ltd Hybrid hard disk drive control method, recording medium, and hybrid hard disk drive
US8001356B2 (en) 2006-10-19 2011-08-16 Samsung Electronics Co., Ltd. Methods and apparatus for reallocating addressable spaces within memory devices
US8312248B2 (en) 2006-10-19 2012-11-13 Samsung Electronics Co., Ltd. Methods and apparatus for reallocating addressable spaces within memory devices
JP2009020955A (en) * 2007-07-12 2009-01-29 Hitachi Ltd Recording device
JP2010079860A (en) * 2008-09-29 2010-04-08 Hitachi Ltd Memory device and memory control method
KR101786027B1 (en) * 2009-04-07 2017-10-18 콘티넨탈 오토모티브 시스템 주식회사 Method for storing data of vehicle
JP2010250413A (en) * 2009-04-13 2010-11-04 Tdk Corp Memory controller, flash memory system with memory controller, and method for controlling flash memory
JP2014509763A (en) * 2011-07-28 2014-04-21 ▲ホア▼▲ウェイ▼技術有限公司 Method and device for performing memory migration
KR101534540B1 (en) * 2011-07-28 2015-07-07 후아웨이 테크놀러지 컴퍼니 리미티드 Method and device for implementing memory migration
US9600202B2 (en) 2011-07-28 2017-03-21 Huawei Technologies Co., Ltd. Method and device for implementing memory migration

Also Published As

Publication number Publication date
JP4096660B2 (en) 2008-06-04

Similar Documents

Publication Publication Date Title
JP4426262B2 (en) Disk array device and failure avoiding method for disk array device
JP4839091B2 (en) Database recovery method and computer system
US8161003B2 (en) Selective data replication system and method
JP4385215B2 (en) Disk array device having snapshot simulation function
JP2007179545A (en) Storage device using nonvolatile memory as cache, and control method therefor
US7974949B2 (en) Computer system and automatic data backup method
US20060179085A1 (en) Method, system and computer program product for backing up and recovering a database
US20060031648A1 (en) Storage device
JP2007140698A (en) Computing system and storage system and management computer and backup management method
JP2008015769A (en) Storage system and writing distribution method
KR101139076B1 (en) Memory device and file system
JP2004079140A (en) Data recording controller and program
JP2008123314A (en) Information recording method and information recording system to semiconductor storage device
JP3928724B2 (en) Recording medium recording control method and recording medium recording control apparatus
JP2005190047A (en) Storage system with data sorting function
JP4757825B2 (en) File management device, program, computer-readable recording medium
CN109325005A (en) A kind of data processing method and electronic equipment
JP4876793B2 (en) Data storage device and program
JP3957464B2 (en) Data update device
JP5521437B2 (en) Portable terminal device, software update method and program
JP4872328B2 (en) Operating environment switching program and information processing apparatus
JP5217729B2 (en) IC card, its program, and IC card issuing method
JP2008123104A (en) Data-access device
JP4580724B2 (en) Nonvolatile memory control method
JP2004341840A (en) Backup method, system therefor, and restoration method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080123

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080303

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees