JP4478298B2 - Data transfer system - Google Patents
Data transfer system Download PDFInfo
- Publication number
- JP4478298B2 JP4478298B2 JP2000187103A JP2000187103A JP4478298B2 JP 4478298 B2 JP4478298 B2 JP 4478298B2 JP 2000187103 A JP2000187103 A JP 2000187103A JP 2000187103 A JP2000187103 A JP 2000187103A JP 4478298 B2 JP4478298 B2 JP 4478298B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory block
- memory
- written
- storage area
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、メモリブロックを単位としてデータの消去を行うメモリにデータを書き込むメモリの書き込み装置に関し、特に、書き込み先となるメモリブロックに対するデータ消去の開始からデータ書き込みの完了までに要する時間を短くした装置に関する。
【0002】
【従来の技術】
例えば記憶装置の一種であるフラッシュメモリ等では、記憶されたデータを書き換えることが可能であるが、RAM(Random Access Memory)等とは異なり、書き込み先となる記憶領域に記憶されたデータを消去した後に書き込み対象となるデータを当該記憶領域に書き込むといった手順が必要である。
【0003】
一例として、電気的にデータの書き換えが可能である上記したフラッシュメモリでは、その記憶領域が例えば64Kバイト等に相当する幾つかの領域(メモリブロック)に分割されており、当該メモリブロック単位(つまり、64Kバイト等のデータ単位)でしかデータの消去を行うことができないといったものがある。このため、このようなフラッシュメモリでは、通常のRAM等とは異なり、データを1バイト単位で書き換えることはできない。
【0004】
ところで、上記のようなフラッシュメモリ等にプログラムデータを格納するとともに当該フラッシュメモリ等とマイクロコンピュータ(マイコン)とを接続して動作を行う電気製品等の装置では、マイコンと外部のプログラム転送装置とを接続して、フラッシュメモリ等に記憶されたプログラムデータの一部又は全部の内容を消去して当該消去した記憶領域にプログラム転送装置から転送(伝送)された新たなプログラムデータの内容を書き込むことが多く行われている。
【0005】
しかしながら、例えば小型の電気製品等では、通常は、フラッシュメモリ等のメモリブロック1個分より少ない記憶容量を有したRAMしか搭載していないことも多く、このような場合には、例えばメモリブロック1個分に相当する量のデータをRAMに一旦蓄積した後に実際の書き込み先となるメモリブロックに対してデータの書き込みを行うといったことはできない。
【0006】
このため、従来では、例えば書き込み先となるメモリブロックに記憶されたプログラムデータを消去した後に、外部のプログラム転送装置から書き込み対象となるプログラムデータを転送して当該データを書き込み先となるメモリブロックに書き込むといった手順が用いられていた。ここで、外部の装置からの転送処理にはシリアルデータを伝送するシリアル通信が用いられることも多いが、このような転送処理は、通常、同一の装置の内部でデータをメモリ転送する場合と比べて、非常に遅く、長い時間がかかってしまう。
【0007】
このようなことから、上記のようなデータの書き込みの仕方では、例えばプログラムデータ等の重要なデータを記憶するメモリブロックのデータが転送処理により書き換えられている途中で当該書き換え処理が中断されてしまうようなこと(例えば装置の電源がオフにされてしまうようなこと)が発生する可能性が高く、このようなことが発生すると、上記した電気製品等の装置が正常に動作しなくなってしまうといった不具合があった。
【0008】
また、例えば割り込み処理が行われる装置において、割り込み処理ルーチンの格納場所(格納されている記憶領域)を示す割り込みベクターを記憶するメモリブロックのデータを書き換える場合には、当該メモリブロックに記憶されたデータ(割り込みベクターを含むデータ)を消去してから書き込み対象となるデータ(割り込みベクターを含むデータ)を書き込み終わるまでの間は割り込み処理を実行することができないが、上記のような外部の装置からの転送処理には上述のように非常に長い時間がかかってしまうため、長い時間の間、割り込み処理を実行することができなくなってしまうといった不具合があった。
【0009】
ここで、例えば特開平10−124403号公報に記載された「ブロック消去型フラッシュメモリの書込み方法」では、フラッシュメモリが有する複数のメモリブロックの一部を退避メモリブロックとするとともに他をデータ書込み用メモリブロックとし、所望のデータ書込み用メモリブロック(書込該当メモリブロック)に新たなデータを書き込む場合には、当該書込該当メモリブロックに既に書き込まれている既存データを退避メモリブロックに書き込んだ後に、当該書込該当メモリブロックに対してデータの消去及び書込みを実行することが行われる。
【0010】
この方法では、前記書込該当メモリブロックに対する書込み処理が行われるときに前記既存データが保存されることになるが、例えば上記のような外部の装置からの転送処理が行われるような場合に書込該当メモリブロックを使用することができない時間(すなわち、当該書込該当メモリブロックに対する書き込みにかかる時間)が長いといったことは解消されず、本来使用すべき書込該当メモリブロックを用いて処理を実行することができない時間が長くなってしまう。
【0011】
【発明が解決しようとする課題】
上述のように、従来のフラッシュメモリ等のデータ書き換え処理では、例えば書き込み対象となるデータが外部の装置から転送されるような場合には特に、書き込み先となるメモリブロックに記憶されたデータが消去されてから当該メモリブロックに新たなデータが書き込まれ終わるまでの時間が非常に長くなり、本来使用すべき当該メモリブロックを用いて処理を実行することができない時間が長くなってしまうといった不具合があった。
【0012】
本発明は、このような従来の課題を解決するためになされたもので、メモリのメモリブロックに記憶されたデータを書き換えるに際して、当該メモリブロックに対するデータ消去の開始からデータ書き込みの完了までに要する時間を短くすることができるメモリの書き込み装置を提供することを目的とする。
【0013】
【課題を解決するための手段】
上記目的を達成するため、本発明に係るメモリの書き込み装置では、次のようにして、メモリが有するメモリブロックに記憶されたデータを消去して当該メモリブロックに書き込み対象となるデータを書き込む。ここで、本発明に言うメモリはデータを記憶する複数のメモリブロックを有しており、メモリブロックに記憶されたデータはメモリブロックを単位として消去される構成となっている。
【0014】
すなわち、データ蓄積手段が書き込み対象となるデータの書き込み先となるメモリブロック以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックに書き込み対象となるデータを書き込み、データ書き込み手段がデータ蓄積手段による書き込みが完了したことに応じて、書き込み先となるメモリブロックに記憶されたデータを消去するとともに、データ蓄積用メモリブロックに記憶された書き込み対象となるデータを読み出して当該データを書き込み先となるメモリブロックに書き込む。
【0015】
従って、書き込み対象となるデータがデータ蓄積用メモリブロックに書き込まれ終わった後に、書き込み先となるメモリブロックに記憶されたデータが消去されて、データ蓄積用メモリブロックに記憶されたデータが当該書き込み先となるメモリブロックに書き込まれるため、当該書き込み先となるメモリブロックに対するデータ消去の開始からデータ書き込みの完了までに要する時間を非常に短くすることができる。
【0016】
なお、メモリブロックに記憶されるデータとしては、特に限定はなく、種々なデータであってもよい。
また、メモリとしても、例えば複数のメモリブロックを有してメモリブロック単位でデータの消去を行うようなものであれば、どのようなメモリが用いられてもよい。
【0017】
また、メモリが有するメモリブロックの数としては、複数であれば、任意であってもよい。
また、書き込み先となるメモリブロックやデータ蓄積用のメモリブロックとして割り当てられるメモリブロックの数としては、それぞれ1以上であれば、任意であってもよい。
また、書き込み先となるメモリブロックやデータ蓄積用のメモリブロックとしては、例えば予め固定的に割り当てられている構成であってもよく、また、例えばメモリの使用状況等に応じて可変的に割り当てられる構成であってもよい。
【0018】
【発明の実施の形態】
本発明に係る一実施例を図面を参照して説明する。
図1には、本発明を適用した記憶領域更新装置1を備えたデータ転送システムの回路構成例を示してあり、このシステムには、記憶領域を更新する機能を有した当該記憶領域更新装置1と、データを転送(伝送)する機能を有したデータ転送装置2と、シリアルデータを伝送する機能を有したシリアル通信接続線3とが備えられており、記憶領域更新装置1とデータ転送装置2とがシリアル通信接続線3を介して接続されている。
【0019】
本例では、記憶領域更新装置1の内部に備えられたフラッシュメモリ11のデータ書き込み用データブロック1部B1に記憶されたデータの内容をデータ転送装置2の内部に備えられた主記憶装置21の転送データ部Dに記憶されたデータの内容に書き換える場合を例として本発明の一実施例を説明する。
【0020】
記憶領域更新装置1には、フラッシュメモリ11と、RAM12と、シリアル変換器13と、CPU(Central Processing Unit)14とが備えられている。フラッシュメモリ11としては、本例では、ブロック消去型の記憶装置であり、且つ、1バイト単位でデータの書き込みが可能なものが用いられている。具体的には、本例のフラッシュメモリ11の記憶領域は4つの領域(メモリブロックB1〜B4)に分割されており、各メモリブロックB1〜B4は例えば64Kバイトの記憶領域に相当している。
【0021】
本例では、上記した4つのメモリブロックB1〜B4の内の3個のメモリブロックB1〜B3がデータ書き込み用のメモリブロック(以下で、それぞれ、データ書き込み用データブロック1部B1、データ書き込み用データブロック2部B2、データ書き込み用データブロック3部と言う)として割り当てられており、残りの1個のメモリブロックB4がデータ蓄積用のメモリブロック(以下で、バッファブロックB4と言う)として割り当てられている。
【0022】
また、本例では、上記した各データ書き込み用データブロックB1〜B3は、例えばCPU14を制御するためのプログラムデータを格納(記憶)するために設けられており、また、上記したバッファブロックB4は、例えばデータ書き込み用データブロックB1〜B3に対して書き込もうとするデータを一時的に蓄積(記憶)するために設けられている。なお、上記したように、本例のフラッシュメモリ11では、例えば各メモリブロックB1〜B4に対するデータの書き込みについては1バイト単位で行うことが可能であるが、各メモリブロックB1〜B4に記憶されたデータの消去についてはメモリブロック単位(つまり、本例では、64Kバイト単位)でしか行うことができない。
【0023】
RAM12は、例えば上記したフラッシュメモリ11のメモリブロック1個分より少ない量(すなわち、本例では、64Kバイト未満)のデータを記憶する機能を有した記憶装置であり、本例では、CPU14により処理されるプログラム等のデータを一時的に記憶する領域として用いられる。
シリアル変換器13は、シリアルデータとパラレルデータとを変換する機能を有しており、本例では、後述するデータ転送装置2のシリアル変換器22とシリアル通信接続線3を介して接続されており、シリアル通信接続線3を介して受信したシリアルデータをCPU14により処理可能なパラレルデータへ変換してCPU14へ出力する機能を有している。
【0024】
CPU14は、例えばRAM12の記憶領域を用いてフラッシュメモリ11に記憶された各種のプログラムを実行することにより当該記憶領域更新装置1に係る各種の処理や制御を実行する機能を有しており、本例では、例えばフラッシュメモリ11に記憶されたデータをメモリブロックB1〜B4毎に消去する処理や、例えばフラッシュメモリ11に対してデータを書き込む処理や、例えばフラッシュメモリに記憶されたデータを読み出す処理や、例えば後述するデータ転送装置2からシリアル通信接続線3を介して送信(転送)されるデータをシリアル変換器13により受信する処理等を実行する。
【0025】
一方、データ転送装置2には、主記憶装置21と、シリアル変換器22と、CPU23とが備えられている。
主記憶装置21は、CPU23から直接アクセスすることが可能なメモリ(記憶装置)であり、本例では、CPU23により転送処理の動作を実行させるためのプログラム(転送プログラム)のデータを記憶した記憶領域(転送プログラム部P)と、記憶領域更新装置1に対して転送するデータ(転送データ)を記憶した記憶領域(転送データ部D)とを有している。なお、転送データとしては、本例では、上記した記憶領域更新装置1のフラッシュメモリ11のデータ書き込み用データブロック1部B1に書き込むべきデータが記憶される。
【0026】
シリアル変換器22は、シリアルデータとパラレルデータとを変換する機能を有しており、本例では、上記した記憶領域更新装置1のシリアル変換器13とシリアル通信接続線3を介して接続されており、CPU23から入力されるパラレルデータをシリアルデータへ変換してシリアル通信接続線3へ送信出力する機能を有している。
【0027】
CPU23は、例えばRAM(図示せず)の記憶領域を用いて主記憶装置21に記憶された各種のプログラムを実行することにより当該データ転送装置2に係る各種の処理や制御を実行する機能を有しており、本例では、例えば主記憶装置21から転送プログラムのデータや転送データを読み出す処理や、例えば読み出した転送データ等をシリアル変換器22によりシリアルデータとしてシリアル通信接続線3を介して記憶領域更新装置1へ送信(転送)する処理等を実行する。
【0028】
なお、本例のデータ転送装置2と記憶領域更新装置1との間で行われる転送処理では、データ転送装置2が特定のパターン(本例では、一例として、“AAhAAh”というパターン)を記憶領域更新装置1に対して送信出力した後に当該データ転送装置2が転送データ部Dに記憶された転送データを当該記憶領域更新装置1に対して送信(転送)する手順が用いられており、このような転送処理の手順が上記した転送プログラムによって規定されている。
【0029】
次に、図2を参照して、本例のデータ転送システムにより行われる処理動作の一例を示す。
なお、本例では、上述したように、記憶領域更新装置1に備えられたフラッシュメモリ11のデータ書き込み用データブロック1部B1の記憶内容を新たなプログラムデータの内容に書き換える場合を例として示す。
【0030】
ここで、上記した新たなプログラムデータは、例えばデータ転送装置2に備えられた主記憶装置21の転送データ部Dに転送データとして予め格納されているか、或いは、例えば以下に示す転送処理が行われる前にユーザ等により当該転送データ部Dに転送データとして格納されるものとする。また、本例では、記憶領域更新装置1に備えられたフラッシュメモリ11のデータ書き込み用データブロック1部B1及びバッファブロックB4にはプログラムデータが書き込まれた状態であるとし、残りのデータ書き込み用データブロック2部B2及びデータ書き込み用データブロック3部B3にはプログラムデータが書き込まれた状態であっても書き込まれていない状態(空の状態)であってもよいとする。
【0031】
また、上記図2では、新たなプログラムデータの書き込み前にデータ書き込み用データブロック1部B1に記憶されているプログラムデータを“旧プログラム”として示し、当該書き込み前にバッファブロックB4に記憶されているプログラムデータを“データ”として示し、当該新たなプログラムデータを“新プログラム”として示してある。また、同図では、プログラムデータが記憶されていても記憶されていなくてもよい残りの2つのデータ書き込み用データブロックB2、B3の記憶状態を“データ或いは空”として示し、データ書き込み用データブロック1部B1やバッファブロックB4に記憶されたデータが消去された状態を“消去”として示してある。
【0032】
まず、データ転送装置2が動作させられて転送プログラムに従った処理が開始されると、データ転送装置2では、CPU23が上記したパターン“AAhAAh”のデータをシリアル変換器22へ送ることで当該データをシリアル通信接続線3を介して記憶領域更新装置1へ送信し、その後、当該CPU23が主記憶装置21の転送データ部Dに記憶された(本例では、記憶領域更新装置1のフラッシュメモリ11に対する書き込み対象となる)転送データを同様にして記憶領域更新装置1へ送信(転送)する。なお、このような転送処理が開始される前における記憶領域更新装置1のフラッシュメモリ11の状態が上記図2(a)に示されている。
【0033】
上記したパターン“AAhAAh”のデータや転送データの送信処理がデータ転送装置2により行われると、当該パターン“AAhAAh”のデータや当該転送データがシリアル通信接続線3を介して記憶領域更新装置1のシリアル変換器13に届く。そして、記憶領域更新装置1では、シリアル変換器13がこのようなパターン“AAhAAh”のデータや転送データを受信して、受信したデータをCPU14により処理することが可能なパラレルデータへ変換してCPU14へ送る。
【0034】
記憶領域更新装置1では、まず、CPU14がシリアル変換器13からパターン“AAhAAh”のデータを受け取ったことに応じて、フラッシュメモリ11の記憶領域の記憶内容を更新する要求があったと判断して、フラッシュメモリ11のバッファブロックB4に記憶されているプログラムデータを消去する。なお、このような消去が行われたときにおける記憶領域更新装置1のフラッシュメモリ11の状態が上記図2(b)に示されている。
【0035】
次に、記憶領域更新装置1では、CPU14がシリアル変換器13から転送データを受信したことに応じて、当該転送データの内容をバッファブロックB4に書き込んでいく。そして、記憶領域更新装置1では、CPU14がシリアル変換器13を介してデータ転送装置2から転送データの全てを受信して当該転送データの全てをバッファブロックB4に書き込んだと判断したときに、当該CPU14がデータ書き込み用データブロック1部B1に記憶されているプログラムデータを消去して、バッファブロックB4に書き込まれた転送データを読み出して当該転送データをデータ書き込み用データブロック1部B1に書き込む。
【0036】
なお、転送データの内容がバッファブロックB4に書き込まれたときにおける記憶領域更新装置1のフラッシュメモリ11の状態が上記図2(c)に示されており、データ書き込み用データブロック1部B1に記憶されたプログラムデータが消去されたときにおける記憶領域更新装置1のフラッシュメモリ11の状態が上記図2(d)に示されており、データ書き込み用データブロック1部B1に転送データが書き込まれたときにおける記憶領域更新装置1のフラッシュメモリ11の状態が上記図2(e)に示されている。
【0037】
以上のように、本例のデータ転送システムでは、データ転送装置2から記憶領域更新装置1に対して書き込み対象となる転送データを転送して当該転送データを記憶領域更新装置1に備えられたフラッシュメモリ11に書き込むときに、記憶領域更新装置1がまずデータ蓄積用のバッファブロックB4の記憶内容を消去した後に当該バッファブロックB4に受信した転送データを書き込んで蓄積し、このようなバッファブロックB4に対する書き込みが完了した後に、当該転送データの書き込み先となるデータ書き込み用データブロック(本例では、データ書き込み用データブロック1部B1)の記憶内容を消去してから、当該バッファブロックB4に蓄積された転送データを当該書き込み先となるデータ書き込み用データブロックに転送して書き込むことが行われる。
【0038】
従って、本例のデータ転送システムに備えられた記憶領域更新装置1では、例えば本例のようにRAM12の記憶容量が少ない状況においてブロック消去型メモリ(本例では、フラッシュメモリ11)のメモリブロックの記憶内容を書き換えるような場合であっても、書き込み先となるメモリブロック(本例では、データ書き込み用データブロック1部B1)の記憶内容を消去してから当該メモリブロックに対するデータの書き込みが完了するまでに要する時間を極めて短くすることができる。
【0039】
そして、本例の記憶領域更新装置1では、例えばプログラム等の重要なデータを記憶するメモリブロックの記憶内容を書き換える途中で、バッファブロック(本例では、バッファブロックB4)から書き込み先となるメモリブロックへのデータ転送の動作が中断されてしまったような場合であっても、書き込み対象となるデータが消失してしまう可能性を極めて低くすることができ、このため、記憶領域の更新を安全に行うことができる。
【0040】
また、本例の記憶領域更新装置1では、例えば割り込みベクターを含むデータを記憶したメモリブロックの記憶内容を書き換えるような場合であっても、書き込み対象となるデータの全てを外部の装置(本例では、データ転送装置2)から受け取った後に書き込み先となるメモリブロックに対するデータの消去及びデータの書き込みが行われることから、当該データ消去が行われるまでは当該メモリブロックに記憶された割り込みベクターを用いて割り込み処理を実行することが可能であり、書き込み先となるメモリブロックに記憶された割り込みベクターを用いて割り込み処理を行うことができない時間を極めて短くすることができる。
【0041】
なお、本例では、フラッシュメモリ11が有する1個のデータ書き込み用データブロックB1のみに対してデータを書き込む例を示したが、例えば本例と同様な書き込み処理を複数回行うことにより、複数のデータ書き込み用データブロックB1〜B3に対してデータを書き込むことができる。また、本例では、1個のバッファブロックB4のみを用意したが、例えば複数個のバッファブロックを用意しておくことも可能である。
【0042】
また、本例では、書き込み対象となるデータ(本例では、転送データ)を一括してデータ転送装置2から記憶領域更新装置1へ送る構成としたが、例えば当該データを幾つかのブロックに分けて送ることも可能である。また、書き込み対象となるデータを一括して送る場合或いは幾つかのブロックに分けて送る場合のいずれの場合においても、例えばデータ転送装置2が誤り訂正符号や誤り検出符号を転送対象となるデータに付加するとともに記憶領域更新装置1が受信した当該データに関して誤り訂正処理や誤り検出処理を行って、誤りが発生したときに当該データの再送を行う構成とすることも可能である。
【0043】
また、記憶領域更新装置1において、例えばバッファブロックB4から書き込み先となるデータ書き込み用データブロックB1へ書き込み対象となるデータ(本例では、転送データ)を転送する前に当該バッファブロックB4に格納された当該データに関して巡回冗長検査(CRC:Cyclic Redundancy Check)やSUMチェック等を行ってデータ転送装置2から当該バッファブロックB4への当該データの転送が正常に行われたか否かを判定するようにし、当該転送が正常に行われたことを確認したことに応じてバッファブロックB4から書き込み先となるデータ書き込み用データブロックB1へのデータ転送を行う構成とすることも可能である。
【0044】
ここで、本例の記憶領域更新装置1では、フラッシュメモリ11が本発明に言うメモリに相当し、4個のメモリブロックB1〜B4が本発明に言う複数のメモリブロックに相当し、上記した転送データが本発明に言う書き込み対象となるデータに相当し、データ書き込み用データブロック1部B1が本発明に言う書き込み先となるメモリブロックに相当し、バッファブロックB4が本発明に言う書き込み先となるメモリブロック以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックに相当する。
【0045】
なお、メモリ(本例では、フラッシュメモリ11)が有する複数のメモリブロックに対してデータ蓄積用のメモリブロックとデータ書き込み用のメモリブロックとを割り当てる態様としては、必ずしも本例の態様に限られず、種々な態様が用いられてもよい。本例では、メモリが有する複数のメモリブロックの中の1以上の(本例では、1個の)メモリブロックをデータ蓄積用のメモリブロックとして割り当てるとともに、それ以外のメモリブロックをデータ書き込み用の(すなわち、データ蓄積用ではなく、データを格納するために本来使用されるべき)メモリブロックとして割り当てる態様を用いた。
【0046】
また、本例では、本発明に言うメモリとしてフラッシュメモリを用いた場合を示したが、例えば複数のメモリブロックを有してメモリブロックに記憶されたデータがメモリブロックを単位として消去されるようなものであれば、他のメモリが用いられてもよい。
【0047】
また、本例の記憶領域更新装置1では、CPU14がデータ蓄積用のバッファブロックB4に書き込み対象となる転送データ(本例では、プログラムデータ)を書き込む機能により、本発明に言うデータ蓄積手段が構成されている。
また、本例の記憶領域更新装置1では、CPU14がバッファブロックB4に対する転送データの書き込みが完了したことを確認したことに応じて、書き込み先となるデータ書き込み用データブロック1部B1に記憶されたプログラムデータを消去するとともに、バッファブロックB4に記憶された前記転送データを読み出して当該データを書き込み先となるデータ書き込み用データブロック1部B1に書き込む機能により、本発明に言うデータ書き込み手段が構成されている。
【0048】
なお、本発明に係るメモリの書き換え装置の構成としては、必ずしも本例で示したものに限られず、種々な構成が用いられてもよい。
一例として、本例では、本発明に係るメモリの書き換え装置により行われる各種の処理が、例えばプロセッサ(本例では、CPU14)やメモリ(本例では、RAM12)等を備えたハードウエア資源においてプロセッサがROM(本例では、フラッシュメモリ11)に格納された制御プログラムを実行することにより制御される構成としたが、例えば当該処理を実行するための各機能手段を独立したハードウエア回路として構成することも可能である。
【0049】
また、本発明は上記の制御プログラムを格納したフロッピーディスクやCD−ROM等のコンピュータにより読み取り可能な記録媒体として把握することもでき、当該制御プログラムを記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【0050】
【発明の効果】
以上説明したように、本発明に係るメモリの書き換え装置によると、データを記憶する複数のメモリブロックを有してメモリブロックに記憶されたデータがメモリブロックを単位として消去されるメモリに対して、メモリブロックに記憶されたデータを消去して当該メモリブロックに書き込み対象となるデータを書き込むに際して、書き込み対象となるデータの書き込み先となるメモリブロック以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックに書き込み対象となるデータを書き込んだ後に、書き込み先となるメモリブロックに記憶されたデータを消去するとともに、データ蓄積用メモリブロックに記憶された書き込み対象となるデータを読み出して当該データを書き込み先となるメモリブロックに書き込むようにしたため、書き込み先となるメモリブロックに対するデータ消去の開始からデータ書き込みの完了までに要する時間を非常に短くすることができる。
【図面の簡単な説明】
【図1】本発明を適用した記憶領域更新装置を備えたデータ転送システムの一例を示す図である。
【図2】メモリブロックの書き換え処理の一例を説明するための図である。
【符号の説明】
1・・記憶領域更新装置、 2・・データ転送装置、
3・・シリアル通信接続線、 11・・フラッシュメモリ、
B1〜B3・・データ書き込み用データブロック、
B4・・バッファブロック、 12・・RAM、
13、22・・シリアル変換器、 14、23・・CPU、
21・・主記憶装置、 P・・転送プログラム部、 D・・転送データ部、[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a memory writing device that writes data to a memory that erases data in units of memory blocks, and in particular, shortens the time required from the start of data erasure to the completion of data writing to a memory block that is a write destination. Relates to the device.
[0002]
[Prior art]
For example, in a flash memory that is a type of storage device, it is possible to rewrite the stored data, but unlike RAM (Random Access Memory), etc., the data stored in the storage area that is the write destination is erased. A procedure for writing data to be written into the storage area later is necessary.
[0003]
As an example, in the above-described flash memory in which data can be electrically rewritten, the storage area is divided into several areas (memory blocks) corresponding to, for example, 64 Kbytes, etc. , Data can be erased only in 64 Kbyte data units). For this reason, unlike a normal RAM or the like, such a flash memory cannot rewrite data in units of 1 byte.
[0004]
By the way, in an apparatus such as an electrical product that stores program data in the flash memory or the like and operates by connecting the flash memory or the like and a microcomputer (microcomputer), the microcomputer and an external program transfer device are connected to each other. Connecting, erasing part or all of the program data stored in the flash memory or the like, and writing the new program data transferred (transmitted) from the program transfer device to the erased storage area Much has been done.
[0005]
However, for example, a small electrical product or the like usually has only a RAM having a storage capacity smaller than one memory block such as a flash memory. In such a case, for example, the memory block 1 It is impossible to write data to the memory block that is the actual write destination after temporarily storing the amount of data corresponding to the number of pieces of data in the RAM.
[0006]
For this reason, conventionally, for example, after erasing program data stored in a memory block as a write destination, the program data to be written is transferred from an external program transfer device, and the data is transferred to the memory block as a write destination. A procedure such as writing was used. Here, serial communication for transmitting serial data is often used for transfer processing from an external device, but such transfer processing is usually compared with the case of transferring data to the memory inside the same device. It is very slow and takes a long time.
[0007]
For this reason, in the data writing method as described above, for example, the rewriting process is interrupted while the data in the memory block storing important data such as program data is being rewritten by the transfer process. There is a high possibility that such a thing (for example, the power of the apparatus is turned off) will occur, and if such a thing occurs, the apparatus such as the above-mentioned electric product will not operate normally. There was a bug.
[0008]
For example, in a device that performs interrupt processing, when rewriting data in a memory block that stores an interrupt vector indicating a storage location (stored storage area) of an interrupt processing routine, the data stored in the memory block Interrupt processing cannot be executed until the data to be written (data including interrupt vector) is completely written after erasing (data including interrupt vector), but from external devices such as the above Since the transfer process takes a very long time as described above, there is a problem that the interrupt process cannot be executed for a long time.
[0009]
Here, for example, in “Block erase type flash memory writing method” described in Japanese Patent Application Laid-Open No. 10-124403, a part of a plurality of memory blocks of the flash memory is used as a save memory block and the other is used for data writing. When writing new data to a desired data write memory block (write target memory block) as a memory block, after writing the existing data already written to the write target memory block to the save memory block Then, erasing and writing of data are performed on the memory block to be written.
[0010]
In this method, the existing data is saved when a write process is performed on the memory block to be written. For example, a write process is performed when a transfer process from an external device as described above is performed. The time that cannot be used (that is, the time required for writing to the corresponding write memory block) is not resolved, and the process is executed using the write corresponding memory block to be originally used. The time that cannot be done will be long.
[0011]
[Problems to be solved by the invention]
As described above, in the data rewriting process of the conventional flash memory or the like, the data stored in the memory block as the write destination is erased particularly when the data to be written is transferred from an external device. The time until new data is completely written to the memory block after the data is written becomes very long, and the time during which processing cannot be executed using the memory block that should be originally used becomes long. It was.
[0012]
The present invention has been made to solve such a conventional problem. When rewriting data stored in a memory block of a memory, the time required from the start of data erasure to the completion of data writing to the memory block. An object of the present invention is to provide a memory writing device that can shorten the length of the memory.
[0013]
[Means for Solving the Problems]
To achieve the above object, the memory writing device according to the present invention erases data stored in a memory block of the memory and writes data to be written into the memory block as follows. Here, the memory referred to in the present invention has a plurality of memory blocks for storing data, and the data stored in the memory block is erased in units of memory blocks.
[0014]
That is, the data storage means writes the data to be written to the memory block assigned as the memory block for data storage among the memory blocks other than the memory block to which the data to be written is written, and the data writing means In response to the completion of writing by the data storage means, the data stored in the memory block as the write destination is erased, and the data to be written stored in the data storage memory block is read and the data is written Write to the previous memory block.
[0015]
Therefore, after the data to be written has been written to the data storage memory block, the data stored in the memory block to be written to is erased, and the data stored in the data storage memory block is changed to the write destination. Therefore, the time required from the start of data erasure to the completion of data writing to the memory block as the write destination can be greatly shortened.
[0016]
The data stored in the memory block is not particularly limited and may be various data.
As the memory, any memory may be used as long as it has a plurality of memory blocks and erases data in units of memory blocks.
[0017]
Further, the number of memory blocks included in the memory may be arbitrary as long as it is plural.
Further, the number of memory blocks to be assigned as a write destination memory block or a data storage memory block may be arbitrary as long as it is 1 or more.
Further, the memory block to be written to or the memory block for data storage may have a configuration that is fixedly allocated in advance, for example, or is variably allocated according to, for example, the memory usage status It may be a configuration.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment according to the present invention will be described with reference to the drawings.
FIG. 1 shows a circuit configuration example of a data transfer system provided with a storage area update device 1 to which the present invention is applied. This system includes a storage area update device 1 having a function of updating a storage area. A
[0019]
In this example, the contents of the data stored in the data writing data block 1 part B1 of the
[0020]
The storage area update device 1 includes a
[0021]
In this example, three memory blocks B1 to B3 out of the four memory blocks B1 to B4 described above are data write memory blocks (hereinafter, data write data block 1 part B1, data write data, respectively).
[0022]
Further, in this example, each of the data writing data blocks B1 to B3 described above is provided for storing (storing) program data for controlling the
[0023]
The
The
[0024]
The
[0025]
On the other hand, the
The
[0026]
The
[0027]
The
[0028]
In the transfer process performed between the
[0029]
Next, an example of processing operations performed by the data transfer system of this example will be described with reference to FIG.
In this example, as described above, a case where the storage content of the data writing data block 1 part B1 of the
[0030]
Here, the new program data described above is stored in advance as transfer data in the transfer data section D of the
[0031]
In FIG. 2, the program data stored in the data writing data block 1 part B1 before writing new program data is shown as “old program” and stored in the buffer block B4 before the writing. Program data is indicated as “data”, and the new program data is indicated as “new program”. In the same figure, the storage state of the remaining two data write data blocks B2 and B3 that may or may not be stored as program data is shown as “data or empty”. The state in which the data stored in the first part B1 and the buffer block B4 is erased is shown as “erased”.
[0032]
First, when the
[0033]
When the
[0034]
In the storage area update device 1, first, in response to the
[0035]
Next, in the storage area updating device 1, in response to the
[0036]
The state of the
[0037]
As described above, in the data transfer system of this example, the transfer data to be written is transferred from the
[0038]
Therefore, in the storage area update device 1 provided in the data transfer system of this example, the memory block of the block erasure type memory (the
[0039]
In the storage area update device 1 of this example, the memory block that becomes the write destination from the buffer block (in this example, the buffer block B4) in the middle of rewriting the storage contents of the memory block that stores important data such as programs. Even if the data transfer operation is interrupted, the possibility that the data to be written will be lost can be extremely reduced. It can be carried out.
[0040]
Further, in the storage area update device 1 of this example, even if the storage contents of the memory block storing the data including the interrupt vector are rewritten, for example, all the data to be written is transferred to an external device (this example). In this case, since the data is erased and the data is written to the memory block as the write destination after being received from the data transfer apparatus 2), the interrupt vector stored in the memory block is used until the data is erased. Interrupt processing can be executed, and the time during which interrupt processing cannot be performed using the interrupt vector stored in the memory block that is the write destination can be extremely shortened.
[0041]
In this example, the example in which data is written only to one data write data block B1 included in the
[0042]
In this example, the data to be written (transfer data in this example) is collectively sent from the
[0043]
Further, in the storage area update device 1, for example, before transferring the data to be written (transfer data in this example) from the buffer block B4 to the data write data block B1 as the write destination, the data is stored in the buffer block B4. In addition, cyclic redundancy check (CRC: Cyclic Redundancy Check) or SUM check is performed on the data to determine whether the data transfer from the
[0044]
Here, in the storage area updating apparatus 1 of this example, the
[0045]
The mode of allocating the data storage memory block and the data write memory block to the plurality of memory blocks included in the memory (the
[0046]
Further, in this example, a case where a flash memory is used as the memory according to the present invention is shown. However, for example, data stored in a memory block having a plurality of memory blocks is erased in units of memory blocks. Other memories may be used as long as they are appropriate.
[0047]
Further, in the storage area updating apparatus 1 of this example, the data storage means referred to in the present invention is configured by the function of the
Further, in the storage area updating device 1 of this example, the
[0048]
The configuration of the memory rewriting device according to the present invention is not necessarily limited to that shown in this example, and various configurations may be used.
As an example, in this example, various processes performed by the memory rewriting device according to the present invention are performed by a processor in a hardware resource including, for example, a processor (
[0049]
Further, the present invention can be grasped as a computer-readable recording medium such as a floppy disk or a CD-ROM storing the above control program, and the control program is input from the recording medium to the computer and executed by the processor. Thus, the processing according to the present invention can be performed.
[0050]
【The invention's effect】
As described above, the memory rewriting device according to the present invention has a plurality of memory blocks for storing data and the data stored in the memory block is erased in units of memory blocks. When erasing data stored in a memory block and writing data to be written into the memory block, as a memory block for storing data among memory blocks other than the memory block to which data to be written is written After writing the data to be written to the allocated memory block, the data stored in the memory block to be written to is erased, and the data to be written stored in the data storage memory block is read to Memory block to which data is written For that to be written to the click can be very short amount of time required from the start of data erasing to the completion of data writing to the memory block in which to write.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example of a data transfer system provided with a storage area update device to which the present invention is applied.
FIG. 2 is a diagram for explaining an example of a memory block rewrite process;
[Explanation of symbols]
1 .... Storage area update device, 2 .... Data transfer device,
3. Serial
B1 to B3 .. Data block for data writing,
B4 ... Buffer block, 12 .... RAM,
13, 22 ... Serial converter, 14, 23 ... CPU,
21 .. Main memory, P .. Transfer program part, D .. Transfer data part,
Claims (2)
前記データ転送装置は、
前記記憶領域更新装置に対して書き込み対象となるデータを転送する手段と、
前記転送される書き込み対象となるデータに誤り訂正符号又は誤り検出符号を付加する手段と、を備え、
前記記憶領域更新装置は、
前記データ転送装置から書き込み対象となるデータを受信する手段と、
書き込み対象となるデータの書き込み先となるメモリブロック以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックに書き込み対象となるデータを書き込むデータ蓄積手段と、
前記データ蓄積手段による書き込みが完了したことに応じて、書き込み先となるメモリブロックに記憶されたデータを消去するとともに、データ蓄積用メモリブロックに記憶された書き込み対象となるデータを読み出して当該データを書き込み先となるメモリブロックに書き込むデータ書き込み手段と、
書き込み対象となるデータに関して誤り訂正処理又は誤り検出処理を行う手段と、を備え、
当該データ転送システムでは、前記データ転送装置において誤り訂正符号又は誤り検出符号を転送対象となるデータに付加するとともに前記記憶領域更新装置において受信した当該データに関して誤り訂正処理又は誤り検出処理を行い、誤りが発生したときに当該データの再送を行う、
ことを特徴とするデータ転送システム。A data transfer device has a plurality of memory blocks for storing data, and the data stored in the memory block is erased in units of the memory block. The data stored in the memory block of the memory is erased and the memory block is erased. and a storage area update device for writing data to be written, the data transfer device and said storage area updating device is connected via a serial communication connection line, RAM provided in the memory area update device memory The amount of data smaller than one memory block is stored, the data to be written is transferred from the data transfer device to the storage area update device, and the data is provided in the storage area update device. In a data transfer system for writing to a designated memory,
The data transfer device
Means for transferring data to be written to the storage area updating device;
Means for adding an error correction code or error detection code to the data to be written to be transferred,
The storage area update device includes:
Means for receiving data to be written from the data transfer device;
Data storage means for writing data to be written to a memory block assigned as a data storage memory block among memory blocks other than the memory block to which data to be written is written;
In response to the completion of writing by the data storage means, the data stored in the memory block as the write destination is erased, and the data to be written stored in the data storage memory block is read out and the data is read out. Data writing means for writing to a memory block as a writing destination;
Means for performing error correction processing or error detection processing on data to be written,
In the data transfer system, an error correction code or an error detection code is added to data to be transferred in the data transfer device and an error correction process or an error detection process is performed on the data received in the storage area update device. Re-send the data when an error occurs,
A data transfer system characterized by that.
前記記憶領域更新装置では、前記データ蓄積用のメモリブロックから前記書き込み先となるメモリブロックへ書き込み対象となるデータを転送する前に前記データ蓄積用のメモリブロックに格納された当該データに関して巡回冗長検査又はSUMチェックを行って前記データ転送装置から前記データ蓄積用のメモリブロックへの当該データの転送が正常に行われたか否かを判定し、当該転送が正常に行われたことを確認したことに応じて前記データ蓄積用のメモリブロックから前記書き込み先となるメモリブロックへのデータ転送を行う、
ことを特徴とするデータ転送システム。The data transfer system according to claim 1, wherein
In the storage area updating device, a cyclic redundancy check is performed on the data stored in the data storage memory block before transferring the data to be written from the data storage memory block to the write destination memory block. Or SUM check to determine whether or not the data transfer from the data transfer device to the data storage memory block has been performed normally and confirm that the transfer has been performed normally In response, data is transferred from the memory block for storing data to the memory block that is the write destination.
A data transfer system characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000187103A JP4478298B2 (en) | 2000-06-22 | 2000-06-22 | Data transfer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000187103A JP4478298B2 (en) | 2000-06-22 | 2000-06-22 | Data transfer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002008382A JP2002008382A (en) | 2002-01-11 |
JP4478298B2 true JP4478298B2 (en) | 2010-06-09 |
Family
ID=18687141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000187103A Expired - Fee Related JP4478298B2 (en) | 2000-06-22 | 2000-06-22 | Data transfer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4478298B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005250882A (en) * | 2004-03-04 | 2005-09-15 | Fuji Xerox Co Ltd | Information processor and program rewriting method |
JP2006039206A (en) | 2004-07-27 | 2006-02-09 | Canon Inc | Ciphering device and deciphering device |
KR100703807B1 (en) | 2006-02-17 | 2007-04-09 | 삼성전자주식회사 | Method and apparatus for managing block by update type of data in block type memory |
JP2013003831A (en) * | 2011-06-16 | 2013-01-07 | Dainippon Printing Co Ltd | Ic chip, processing program for ic chip, and writing processing method in ic chip |
-
2000
- 2000-06-22 JP JP2000187103A patent/JP4478298B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002008382A (en) | 2002-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101507194B1 (en) | Serial interface nand | |
US7890732B2 (en) | Memory card and semiconductor device | |
JP5173818B2 (en) | Initializing flash storage via embedded controller | |
JP3898305B2 (en) | Semiconductor storage device, control device and control method for semiconductor storage device | |
US7664923B2 (en) | Method and system for updating software | |
US20100122017A1 (en) | Memory controller, non-volatile memory system, and host device | |
JPH10124401A (en) | Memory device | |
WO2008020389A2 (en) | Flash memory access circuit | |
US20060062041A1 (en) | Memory device, momory managing method and program | |
JP2006195565A (en) | Control method for semiconductor storage device, memory card, and host apparatus | |
US5878257A (en) | Self-booting mechanism to allow dynamic system configuration and diagnostic | |
KR20020036717A (en) | Microcomputer and method for controlling the same | |
JP4478298B2 (en) | Data transfer system | |
JP2001344148A (en) | Boot block flash memory control circuit, ic memory card provided with it, semiconductor storage device, and boot block flash memory deleting method | |
JP2007052717A (en) | Data transfer device and method | |
US6301709B1 (en) | Circuit pack system with semi-or fully-automatic upgrade capability | |
JP4793798B2 (en) | Microcomputer | |
JPH1027097A (en) | Method and device for rewriting data of flash rom | |
KR100316584B1 (en) | Flash Memory To Share With Booting And Main Operation Program In System And Upgrade Method In That Memory | |
JP2005071170A (en) | Apparatus for updating storage area | |
JP2001117778A (en) | Usb device with firmware rewriting function | |
JPH04277850A (en) | Descriptor control system | |
JPH11167525A (en) | Nonvolatile-memory mixedly mounted microcomputer and nonvolatile memory rewriting method thereof, and recording medium where nonvolatile memory rewriting program of nonvolatile-memory mixedly mounted microcomputer is recorded | |
US20010037437A1 (en) | Information processing device | |
JP3599099B2 (en) | Seeds control circuit for electronic disk drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070619 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071010 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091006 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100112 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100204 |
|
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: 20100302 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100315 |
|
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: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |