説明

フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法

【課題】メモリ領域を書込管理のために使用することなく、CPU内蔵型のフラッシュメモリの書込みの効率化を図ることができる、フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法を提供すること。
【解決手段】書込み制御部4aは、フラッシュメモリ2の2以上のブロックを組み合わせて構成された組み合わせブロックの各アドレスに対してデータの書込みを行うもので、組み合わせブロックにデータを書込む際、組み合わせブロックのアドレスの中に初期状態のアドレスが存在する場合には、先頭のアドレスにデータを書込み、初期状態のアドレスが存在しない場合には、次順の書込み対象となるブロックを初期化し、当該初期化されたブロックのアドレスの中の先頭のアドレスにデータを書込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリを備えた制御装置、及びこのような制御装置におけるフラッシュメモリへのデータ書込み方法に関する。
【背景技術】
【0002】
プログラムや初期データを保存するフラッシュメモリを内蔵したCPU(Central Processing Unit)を用いた各種の装置においては、当該装置にインストールされた各種のアプリケーションプログラムからフラッシュメモリの書き換えを行うセルフプログラミングが可能である。
【0003】
ここで、フラッシュメモリへの書込回数には製造メーカーによる保証値(制限値)があり、例えば、一般的なフラッシュメモリへの保証値は数万から20万回程度であり、CPU内蔵型のフラッシュメモリへの保証値は1000回(MIN値)程度となっている。従って、特にCPU内蔵型のフラッシュメモリに関しては、比較的低頻度での書込みで足りるデータ(例えば、製造時に書込まれる装置動作設定データや、アドレス等のように装置に固有のデータ)のみを記憶させることが好ましく、高頻度での書込みが必要となるデータ(例えば、装置の動作状態データ)を記憶させる用途に使用することには不向きであった。
【0004】
このような問題を解決するためには、CPU内蔵型のフラッシュメモリの書込みの効率化を図り、所望のデータ量を最小限の書込回数で書込むことを可能とすることで、フラッシュメモリの実質的な寿命を延長することが好ましい。例えば、特許文献1には、フラッシュメモリ群中の一部の未使用領域を利用し、該未使用領域に再書込み処理をプログラム記述し、ブート時にこの再書込み処理を実施することで、フラッシュメモリの書込回数の平準化を図り、フラッシュメモリの製品寿命を延長することが開示されている。
【0005】
【特許文献1】特開2008−171246号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1のように、フラッシュメモリのメモリ領域を利用して書込効率を向上させる方法では、メモリ領域を書込管理のために使用することになり、メモリの使用効率が低下するため好ましくない。
【0007】
本発明は、上記に鑑みてなされたものであって、メモリ領域を書込管理のために使用することなく、CPU内蔵型のフラッシュメモリの書込みの効率化を図ることができる、フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、請求項1に記載のフラッシュメモリを備えた制御装置は、前記フラッシュメモリに対するデータの書込みを行う書込み制御手段を備え、前記書込み制御手段は、前記フラッシュメモリのデータ書込み領域を構成する複数のブロックの中から2以上のブロックを組み合わせて構成された組み合わせブロックの各アドレスに対してデータの書込みを行うものであって、前記組み合わせブロックを構成する前記2以上のブロックの各々を所定の順序で書込み対象とし、前記組み合わせブロックにデータを書込む際、前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在する場合には、当該初期状態のアドレスの中の先頭のアドレスに前記データを書込み、前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在しない場合には、当該組み合わせブロックの中で次順の書込み対象となるブロックを初期化し、当該初期化されたブロックのアドレスの中の先頭のアドレスに前記データを書込むことを特徴とする。
【0009】
また、請求項2に記載のフラッシュメモリを備えた制御装置は、請求項1に記載のフラッシュメモリを備えた制御装置において、前記書込み制御手段は、前記データの書込みを行う毎に、当該データの書込みを行ったブロックの中で、当該データの書込みを行う以前にデータが書込まれたアドレスを0とすることを特徴とする。
【0010】
また、請求項3に記載のフラッシュメモリへのデータ書込み方法は、フラッシュメモリを備えた制御装置において当該フラッシュメモリに対するデータの書込みを行う際、前記フラッシュメモリのデータ書込み領域を構成する複数のブロックの中から2以上のブロックを組み合わせて構成された組み合わせブロックの各アドレスに対してデータの書込みを行うものであって、前記組み合わせブロックを構成する前記2以上のブロックの各々を所定の順序で書込み対象とするデータ書込み方法であって、前記組み合わせブロックにデータを書込む際、前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在する場合には、当該初期状態のアドレスの中の先頭のアドレスに前記データを書込むステップと、前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在しない場合には、当該組み合わせブロックの中で次順の書込み対象となるブロックを初期化し、当該初期化されたブロックのアドレスの中の先頭のアドレスに前記データを書込むステップとを含むことを特徴とする。
【0011】
また、請求項4に記載のフラッシュメモリへのデータ書込み方法は、請求項3に記載のフラッシュメモリへのデータ書込み方法において、前記各ステップにおいてデータの書込みを行う毎に、当該データの書込みを行ったブロックの中で、当該データの書込みを行う以前にデータが書込まれたアドレスを0とすることを特徴とする。
【発明の効果】
【0012】
請求項1に記載のフラッシュメモリを備えた制御装置又は請求項3に記載のフラッシュメモリへのデータ書込み方法によれば、組み合わせブロックのアドレスに対して先頭から順次データを書込み、初期状態のアドレスが存在しなくなった場合にのみ、次順の書込み対象となるブロックを初期化するので、組み合わせブロックを構成する各ブロックの各アドレスの全てをデータ書込みに使用でき、データ書込みに使用しないアドレスを残したままブロックの初期化を行うことを防止できるので、ブロックの初期化を最小限に留めることができ、フラッシュメモリの寿命を延ばすことが可能となる。特に、メモリ領域を書込管理のために使用する必要がないので、メモリの使用効率を低下させることなく、フラッシュメモリの書込みの効率化を図ることができる。
【0013】
請求項2に記載のフラッシュメモリを備えた制御装置又は請求項4に記載のフラッシュメモリへのデータ書込み方法によれば、データの書込みを行う以前にデータが書込まれたアドレスを0とするので、書込みデータが初期化データと同じである場合にも、アドレス0の次のアドレスが最後に書込みを行ったアドレスであることを容易かつ確実に識別できるので、フラッシュメモリの書込みの効率化を図ることができる。
【発明を実施するための最良の形態】
【0014】
以下に添付図面を参照して、この発明に係るフラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法の一実施の形態を詳細に説明する。ただし、この実施の形態によって本発明が限定されるものではない。
【0015】
〔構成〕
最初に、本実施の形態に係るCPUの構成について説明する。図1は、本実施の形態に係るCPUを機能概念的に示すブロック図である。このCPU1は、フラッシュメモリ内蔵型CPUであり、特許請求の範囲における制御装置に対応するものであって、フラッシュメモリ2、RAM(Random Access Memory)3、及び制御部4を、内部バスにて通信可能に接続して構成されている。
【0016】
フラッシュメモリ2は、プログラムや初期データを不揮発的に書込むものである。図2は、フラッシュメモリ2の論理的構成を示す図である。例えば、フラッシュメモリ2は、全体で1Kバイトの記憶領域を有し、各々が256バイトの4つのブロック0〜3を備える。このフラッシュメモリ2は、ブロック単位のみで初期化(消去)が可能であり、各ブロック0からブロック3における全バイト(全アドレス)を初期値=FFHにすることで、1バイト毎の書込みが可能となる。図3には、ブロック0及びブロック1の初期化後の状態におけるフラッシュメモリ2の要部の物理的構成を示す。ここでは、ブロック0及びブロック1の全バイトにFFHが書込まれている。
【0017】
図1において、RAM3は、CPU1において実行される各処理の一時的なデータを不揮発的に書込む。制御部4は、CPU1の各部を制御する制御手段であり、機能概念的に書込み制御部4aを備える。この書込み制御部4aは、フラッシュメモリ2に対するデータの書込みを制御するもので、特許請求の範囲における書込み制御手段に対応する。具体的には、制御部4は、演算器やレジスタ等の如き回路素子や、当該CPU1の上で解釈実行される各種のプログラム(OSなどの基本制御プログラムや、OS上で起動され特定機能を実現するアプリケーションプログラムを含む)にて構成される。また、請求項3又は4に係る方法をコンピュータとしてのCPU1に実行させるためのデータ書込みプログラムが、任意の記録媒体又はネットワークを介してCPU1にインストールされることで、制御部4及び書込み制御部4aを構成する。
【0018】
〔処理〕
次に、書込み制御部4aによって実行されるデータの書込み制御処理について説明する。この処理では、2ブロック以上のブロックを組み合わせて順番にデータ書込みに使用することで、各ブロック内へのデータ書込回数を均一化し、見た目の書込回数を低減する。このように複数のブロックを組み合わせて構成されるブロックを「組み合わせブロック」と称する。以下では、ブロック0とブロック1によって組み合わせブロックを構成する例であって、これらブロック0とブロック1の全てのアドレスにFFHが書込まれている初期化後の状態から、当該ブロック0とブロック1に任意のデータを書込む例について説明する。
【0019】
図4は、データの書込み制御処理のフローチャート、図5から図12は、データの書込み制御処理の各時点におけるブロック0とブロック1の全部又は要部のレコードの物理的構成を示す図である。1回目のデータ書込み時、書込み制御部4aは、書込み対象となるブロックのアドレスに初期状態のアドレスがあるか否かを判定する(ステップSA−1)。書込み対象となるブロックは、例えば、組み合わせブロックを構成するブロック0とブロック1の書込み順序を予め設定しておくことで判定する。この例では、最初に書込み対象となるブロック0の全てのアドレスが初期状態であるため(ステップSA−1、Yes)、当該ブロック0における初期状態のアドレスの中で先頭のアドレスであるアドレス000Hにデータを書込む(ステップSA−2)。図5には、ブロック0のアドレス000Hにデータ0000000B(=80H)を書込んだ状態のレコードを例示する。その後、書込み制御部4aは、それ以前にデータを書込んだアドレスがあるか否かを判定する(ステップSA−3)。この例では、それ以前にデータを書込んだアドレスは未だないため(ステップSA−3、No)、ステップSA−1に戻る。
【0020】
このステップSA−1において、2回目のデータ書込み時、書込み制御部4aは、書込み対象となるブロックのアドレスに初期状態のアドレスがあるか否かを判定する(ステップSA−1)。この例では、書込み対象となるブロック0に初期状態のアドレスが残っているため(ステップSA−1、Yes)、当該ブロック0における初期状態のアドレスの中で先頭のアドレスであるアドレス001Hにデータを書込む(ステップSA−2)。また、書込み制御部4aは、それ以前にデータを書込んだアドレスがあるか否かを判定する(ステップSA−3)。この例では、先のステップSA−2でデータを書込んだアドレス000Hがあるため(ステップSA−3、Yes)、このアドレス000Hを0にする(ステップSA−4)。図6には、アドレス001Hにデータ0000001B(=81H)を書込むと共に、アドレス000Hを0とした状態のレコードを例示する。
【0021】
3回目のデータ書込み時、書込み制御部4aは、書込み対象となるブロックのアドレスに初期状態のアドレスがあるか否かを判定する(ステップSA−1)。この例では、書込み対象となるブロック0に初期状態のアドレスが残っているため(ステップSA−1、Yes)、当該ブロック0における初期状態のアドレスの中で先頭のアドレスであるアドレス002Hにデータを書込む(ステップSA−2)。また、書込み制御部4aは、それ以前にデータを書込んだアドレスがあるか否かを判定する(ステップSA−3)。この例では、それ以前にデータを書込んだアドレス001Hがあるため(ステップSA−3、Yes)、このアドレス001Hを0にする(ステップSA−4)。図7には、アドレス002Hにデータ1111111B(=FFH)を書込むと共に、アドレス001Hを0とした状態のレコードを例示する。特に、このように初期値と同じFFHをデータとして書込んだ場合には、次のステップSA−1における初期状態の先頭アドレスの判定が困難になる。この問題を回避するため、本実施の形態では、これまで説明したように、それ以前にデータを書込んだアドレスを0にすることで、先頭アドレスの判定を可能としている。すなわち、ステップSA−1、SA−2では、アドレス=0の次のアドレスを探すことで、当該アドレスが次にデータを書込むべきアドレスであることが判る。ただし、初期値と同じFFHをデータとして書込む可能性がない場合や、他の方法によって次にデータを書込むべきアドレスが特定できる場合には、ステップSA−3、SA−4を省略してもよい。
【0022】
以降、書込み制御部4aは、データの書込みを行う毎に、書込み対象となるブロックにおける初期状態のアドレスの中で先頭のアドレスにデータを書込むと共に、それ以前にデータを書込んだアドレスが存在する場合には当該アドレスを0にする。図8にはブロック0の最後のアドレス09FHにデータ0000000B(=80H)を書込むと共に、それ以前の全てのアドレス000H〜09EHを0とした状態のブロック0及びブロック1を例示する。その後、書込み制御部4aは、書込み対象となるブロックを次順のブロック1に移し、同様にデータの書込みを行う。図9にはブロック1の最後のアドレス19FHにデータ0000000B(=80H)を書込むと共に、それ以前の全てのアドレス000H〜19EHを0とした状態のブロック0及びブロック1を例示する。
【0023】
その後、書込み制御部4aは、書込み対象となるブロック1に初期状態のアドレスが残っていないことから(ステップSA−1、No)、次に書込み対象となるブロック0をブロック単位で初期化し(ステップSA−5)、当該初期化を行ったブロック0を書込み対象とした上で、再びステップSA−1に戻ってデータの書込みを行う。図10にはブロック0を初期化した状態のブロック0及びブロック1を例示し、図11にはブロック0の先頭のアドレス000Hにデータ0000000B(=80H)を書込んだ状態のブロック0及びブロック1を例示する。以降、同様にステップSA−1からSSA−4を繰り返し、ブロック0の各アドレスに順次データの書込みを行なう。図12にはブロック0の最後のアドレス09FHにデータ0000000B(=80H)を書込むと共に、それ以前の全てのアドレス000H〜09EHを0とした状態のブロック0及びブロック1を例示する。そして、次に書込み対象となるブロック1をブロック単位で初期化することで(ステップSA−5)、図8の状態に戻り、以降、ブロック0又はブロック1の書込回数が保証値になる迄、データの書込みを繰り返すことができる。
【0024】
〔効果〕
これまで説明したように本実施の形態によれば、組み合わせブロックのアドレスに対して先頭から順次データを書込み、初期状態のアドレスが存在しなくなった場合にのみ、次順の書込み対象となるブロックを初期化するので、組み合わせブロックを構成する各ブロックの各アドレスの全てをデータ書込みに使用でき、データ書込みに使用しないアドレスを残したままブロックの初期化を行うことを防止できるので、ブロックの初期化を最小限に留めることができ、フラッシュメモリ2の寿命を延ばすことが可能となる。特に、メモリ領域を書込管理のために使用する必要がないので、メモリの使用効率を低下させることなく、フラッシュメモリ2の書込みの効率化を図ることができる。
【0025】
また、データの書込みを行う以前にデータが書込まれたアドレスがある場合には当該アドレスを0とするので、書込みデータが初期化データと同じである場合にも、アドレス0の次のアドレスが最後に書込みを行ったアドレスであることを容易かつ確実に識別できるので、フラッシュメモリ2の書込みの効率化を図ることができる。
【0026】
〔変形例〕
以上、本発明の一実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例の一部について説明する。
【0027】
(解決しようとする課題や発明の効果について)
まず、発明が解決しようとする課題や発明の効果は、前記した内容に限定されるものではなく、本発明によって、前記に記載されていない課題を解決したり、前記に記載されていない効果を奏することもでき、また、記載されている課題の一部のみを解決したり、記載されている効果の一部のみを奏することがある。
【0028】
(組み合わせブロックの構成について)
上記実施の形態では、連続する2つのブロックを用いて組み合わせブロックを構成しているが、組み合わせブロックを構成するブロックの数は、2つ以上であれば任意である。また、連続するブロックに限らず、相互に離れた位置にある複数のブロックを用いて組み合わせブロックを構成してもよい。
上記実施の形態では、1バイト毎の書込みで7ビットのデータを記録しているが、データのサイズは1バイト以上の任意のサイズであってもよい。例えば、連続する2バイトのアドレス単位を書き込みに使用する構成の場合、15ビットのデータを記録することができる。
【図面の簡単な説明】
【0029】
【図1】本発明の一実施の形態に係るCPUを機能概念的に示すブロック図である。
【図2】フラッシュメモリの論理的構成を示す図である。
【図3】初期化後の状態におけるフラッシュメモリのブロックの物理的構成を示す図である。
【図4】データの書込み制御処理のフローチャートである。
【図5】データの書込み制御処理の初期時点におけるブロックの要部のレコードの物理的構成を示す図である。
【図6】データの書込み制御処理の図5に続く時点におけるブロックの要部のレコードの物理的構成を示す図である。
【図7】データの書込み制御処理の図6に続く時点におけるブロックの要部のレコードの物理的構成を示す図である。
【図8】データの書込み制御処理の図7に続く時点におけるブロックの物理的構成を示す図である。
【図9】データの書込み制御処理の図8に続く時点におけるブロックの物理的構成を示す図である。
【図10】データの書込み制御処理の図9に続く時点におけるブロックの物理的構成を示す図である。
【図11】データの書込み制御処理の図10に続く時点におけるブロックの物理的構成を示す図である。
【図12】データの書込み制御処理の図11に続く時点におけるブロックの物理的構成を示す図である。
【符号の説明】
【0030】
1 CPU
2 フラッシュメモリ
3 RAM
4 制御部
4a 書込み制御部

【特許請求の範囲】
【請求項1】
フラッシュメモリを備えた制御装置であって、
前記フラッシュメモリに対するデータの書込みを行う書込み制御手段を備え、
前記書込み制御手段は、
前記フラッシュメモリのデータ書込み領域を構成する複数のブロックの中から2以上のブロックを組み合わせて構成された組み合わせブロックの各アドレスに対してデータの書込みを行うものであって、前記組み合わせブロックを構成する前記2以上のブロックの各々を所定の順序で書込み対象とし、
前記組み合わせブロックにデータを書込む際、
前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在する場合には、当該初期状態のアドレスの中の先頭のアドレスに前記データを書込み、
前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在しない場合には、当該組み合わせブロックの中で次順の書込み対象となるブロックを初期化し、当該初期化されたブロックのアドレスの中の先頭のアドレスに前記データを書込むこと、
を特徴とするフラッシュメモリを備えた制御装置。
【請求項2】
前記書込み制御手段は、
前記データの書込みを行う毎に、当該データの書込みを行ったブロックの中で、当該データの書込みを行う以前にデータが書込まれたアドレスを0とすること、
を特徴とする請求項1に記載のフラッシュメモリを備えた制御装置。
【請求項3】
フラッシュメモリを備えた制御装置において当該フラッシュメモリに対するデータの書込みを行う際、前記フラッシュメモリのデータ書込み領域を構成する複数のブロックの中から2以上のブロックを組み合わせて構成された組み合わせブロックの各アドレスに対してデータの書込みを行うものであって、前記組み合わせブロックを構成する前記2以上のブロックの各々を所定の順序で書込み対象とするデータ書込み方法であって、
前記組み合わせブロックにデータを書込む際、
前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在する場合には、当該初期状態のアドレスの中の先頭のアドレスに前記データを書込むステップと、
前記組み合わせブロックのアドレスの中に、初期状態のアドレスが存在しない場合には、当該組み合わせブロックの中で次順の書込み対象となるブロックを初期化し、当該初期化されたブロックのアドレスの中の先頭のアドレスに前記データを書込むステップと、
を含むことを特徴とするフラッシュメモリへのデータ書込み方法。
【請求項4】
前記各ステップにおいてデータの書込みを行う毎に、当該データの書込みを行ったブロックの中で、当該データの書込みを行う以前にデータが書込まれたアドレスを0とすること、
を特徴とする請求項3に記載のフラッシュメモリへのデータ書込み方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−108436(P2010−108436A)
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願番号】特願2008−282426(P2008−282426)
【出願日】平成20年10月31日(2008.10.31)
【出願人】(000003403)ホーチキ株式会社 (792)
【Fターム(参考)】