(57)【要約】【課題】  複数のメモリブロックを利用し、一部のメモリブロックを更新し、更新された領域を使用するように切り替えるため、そのまで使用しているメモリブロックを消去して書き換えることなく、迅速に新しい情報に切り替えることが出来る記憶領域更新装置を提供する。【解決手段】  記憶領域更新装置１では、データ蓄積手段１４が書き込み対象となるデータ（例えば転送データ）を現在使用しているメモリブロックＢ１以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックＢ２に当該データを書き込み、データ書き込み手段１４が更新されたブロックを示す情報をメモリブロックＢ４の先頭に書き込み、アドレス変換機能１５はメモリブロックB４の先頭から情報を読出し、最新のメモリブロックを使用してＣＰＵ１４が動作するようにアドレスを変換する。【選択図】図１
2005071170.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリブロックを有する記憶領域更新装置において、使用中のメモリブロック以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックに書き込み対象となるデータを書き込むデータ蓄積手段と、前記データ蓄積手段によって書込みが完了したことに応じて前記メモリブロックを示す情報を書き込むブロック選択情報格納手段と、前記ブロック選択情報格納手段に記録されている情報から前記メモリブロックをＣＰＵが使用できるようにアドレスを変換するアドレス変換手段とを備えたことを特徴とする記憶領域更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリブロックを有しており、プログラムデータを書き換える時に、使用しているメモリブロックとは異なるメモリブロックに書込み、書込み完了後にそのメモリブロックを切り替えて使用することによって確実に新旧どちらかのメモリブロックを使用することができる記憶領域更新装置に関するものである。
【背景技術】
【０００２】
例えば、フラッシュメモリ等にプログラムデータを格納するとともに当該フラッシュメモリ等とマイクロコンピュータ（マイコン）とを接続して動作を行う電気製品等の装置では、マイコンと外部のプログラム転送装置とを接続して、フラッシュメモリ等に記憶されたプログラムデータの一部又は全部の内容を消去して当該消去した記憶領域にプログラム転送装置から転送（伝送）された新たなプログラムデータの内容を書き込むことが多く行われている。
【０００３】
しかしながら、例えば小型の電気製品等では、通常は、フラッシュメモリ等のメモリブロック１個分より少ない記憶容量を有したＲＡＭしか搭載していないことも多く、このような場合には、例えばメモリブロック１個分に相当する量のデータをＲＡＭに一旦蓄積した後に実際の書き込み先となるメモリブロックに対してデータの書き込みを行うといったことはできない。
【０００４】
このため、従来では、例えば書き込み先となるメモリブロックに記憶されたプログラムデータを消去した後に、外部のプログラム転送装置から書き込み対象となるプログラムデータを転送して当該データを書き込み先となるメモリブロックに書き込むといった手順が用いられていた。ここで、外部の装置からの転送処理にはシリアルデータを伝送するシリアル通信が用いられることも多いが、このような転送処理は、通常、同一の装置の内部でデータをメモリ転送する場合と比べて、非常に遅く、長い時間がかかってしまう。
【０００５】
このようなことから、上記のようなデータの書き込みの仕方では、例えばプログラムデータ等の重要なデータを記憶するメモリブロックのデータが転送処理により書き換えられている途中で当該書き換え処理が中断されてしまうようなこと（例えば装置の電源がオフにされてしまうようなこと）が発生する可能性が高く、このようなことが発生すると、上記した電気製品等の装置が正常に動作しなくなってしまうといった不具合があった。
【０００６】
また、例えば割り込み処理が行われる装置において、割り込み処理ルーチンの格納場所（格納されている記憶領域）を示す割り込みベクターを記憶するメモリブロックのデータを書き換える場合には、当該メモリブロックに記憶されたデータ（割り込みベクターを含むデータ）を消去してから書き込み対象となるデータ（割り込みベクターを含むデータ）を書き込み終わるまでの間は割り込み処理を実行することができないが、上記のような外部の装置からの転送処理には上述のように非常に長い時間がかかってしまうため、長い時間の間、割り込み処理を実行することができなくなってしまうといった不具合があった。
【０００７】
ここで、例えば特開平１０−１２４４０３号公報に記載された「ブロック消去型フラッシュメモリの書込み方法」では、フラッシュメモリが有する複数のメモリブロックの一部を退避メモリブロックとするとともに他をデータ書込み用メモリブロックとし、所望のデータ書込み用メモリブロック（書込該当メモリブロック）に新たなデータを書き込む場合には、当該書込該当メモリブロックに既に書き込まれている既存データを退避メモリブロックに書き込んだ後に、当該書込該当メモリブロックに対してデータの消去及び書込みを実行することが行われる。
【０００８】
この方法では、前記書込該当メモリブロックに対する書込み処理が行われるときに前記既存データが保存されることになるが、例えば上記のような外部の装置からの転送処理が行われるような場合に書込該当メモリブロックを使用することができない時間（すなわち、当該書込該当メモリブロックに対する書き込みにかかる時間）が長いといったことは解消されず、本来使用すべき書込該当メモリブロックを用いて処理を実行することができない時間が長くなってしまう。
【０００９】
また、上記の特開平１０−１２４４０３号公報の問題点を解決するために、例えば特開２００２−００８３８２号公報に記載された「メモリの書き込み装置」では、書き込み対象となるデータがデータ蓄積用メモリブロックに書き込まれ終わった後に、書き込み先となるメモリブロックに記憶されたデータが消去されて、データ蓄積用メモリブロックに記憶されたデータが当該書き込み先となるメモリブロックに書き込まれるため、当該書き込み先となるメモリブロックに対するデータ消去の開始からデータ書き込みの完了までに要する時間を短くすることができる。
【００１０】
しかし、この方法でも、メモリブロックに対するデータ消去の開始からデータ書き込みの完了までに要する時間はどうしても必要となる。
【特許文献１】特開平１０−１２４４０３号公報
【特許文献２】特開２００２−００８３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述のように、従来のフラッシュメモリ等のデータ書き換え処理では、例えば書き込み対象となるデータが外部の装置から転送されるような場合には特に、書き込み先となるメモリブロックに記憶されたデータが消去されてから当該メモリブロックに新たなデータが書き込まれ終わるまでの時間があり、本来使用すべき当該メモリブロックを用いて処理を実行することができない時間が生じるといった不具合があった。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明に係る記憶領域更新装置では、次のようにして、メモリブロックに書き込み対象となるデータを書き込む。ここで、本発明で言うメモリはデータを記憶する複数のメモリブロックを有しており、アドレスを変換する機能を持ったものである。
【００１３】
すなわち、データ蓄積手段が使用しているメモリブロック以外のメモリブロックの中でデータ蓄積用のメモリブロックとして割り当てられたメモリブロックに書き込み対象となるデータを書き込み、データ書き込み手段がデータ蓄積手段による書き込みが完了したことに応じて、データ蓄積手段によって最新のメモリブロックを示す情報を更新し、最新のメモリブロックを示す情報を参照し、アドレス割り付けを変換することによってCPUが書き込まれた新しいメモリブロックを使用する。アドレス割付を変更するタイミングとしては選択情報格納部Ｂ４を一定間隔で参照し、そのたびに変更する構成であってもよいし、起動時のみ参照して再起動されるまでは変更しない構成であってもかまわない。
【００１４】
従って、メモリブロックを書き換える時に、使用しているメモリブロックが消去されること無く、他のメモリブロックに書き込み、その後に使用するメモリブロックを変更するため、確実に新旧どちらかのメモリブロックを使用することが出来る記憶領域更新装置を提供することができる。
【００１５】
なお、メモリブロックに記憶されるデータとしては、特に限定はなく、種々なデータであってもよい。
【００１６】
また、メモリが有するメモリブロックの数としては、複数であれば、任意であってもよい。また、書き込み先となるメモリブロックやデータ蓄積用のメモリブロックとして割り当てられるメモリブロックの数としては、それぞれ１以上であれば、任意であってもよい。
【発明の効果】
【００１７】
本発明は、使用しているメモリブロックを消去することなく、別のメモリブロックに転送データを書き込んでおき、書込み完了後、最新のデータがどのメモリブロックに書き込まれているかを示す情報を更新し、その情報をもとにどのメモリブロックを使用するか決定する。そのため、使用しているメモリブロックが消去されること無く、他のメモリブロックに書き込まれ、その後に使用するメモリブロックを変更するため、迅速に使用するメモリブロックを切り替え、かつ確実に新旧どちらかのメモリブロックを使用することが出来る記憶領域更新装置を提供することができるという利点がある。
【発明を実施するための最良の形態】
【００１８】
データ書き込み用データブロックと、ブロック選択情報格納部に、どのデータブロックが最新であるかを示す情報を格納出来るように構成することで実現した。
【実施例１】
【００１９】
本発明に係る一実施例を図面を参照して説明する。図１には、本発明を適用した記憶領域更新装置１を備えたデータ転送システムの回路構成例を示してあり、このシステムには、記憶領域を更新する機能を有した当該記憶領域更新装置１と、データを転送（伝送）する機能を有したデータ転送装置２と、シリアルデータを伝送する機能を有したシリアル通信接続線３とが備えられており、記憶領域更新装置１とデータ転送装置２とがシリアル通信接続線３を介して接続されている。
【００２０】
本例では、記憶領域更新装置１の内部に備えられたフラッシュメモリ１１のデータ書き込み用データブロック１部Ｂ１に記憶されたデータの内容からをデータ転送装置２の内部に備えられた主記憶装置２１の転送データ部Ｄに記憶されたデータの内容に書き換える場合を例として本発明の一実施例を説明する。
【００２１】
記憶領域更新装置１には、フラッシュメモリ１１と、ＲＡＭ１２と、シリアル変換器１３と、ＣＰＵ（Central Processing Unit）１４とアドレス変換器１５が備えられている。本例のフラッシュメモリ１１の記憶領域は４つの領域（メモリブロックＢ１〜Ｂ４）に分割されており、各メモリブロックＢ１〜Ｂ４は例えば６４Ｋバイトの記憶領域に相当している。
【００２２】
本例では、上記した４つのメモリブロックＢ１〜Ｂ４の内の３個のメモリブロックＢ１〜Ｂ３がデータ書き込み用のメモリブロック（以下で、それぞれ、データ書き込み用データブロック１部Ｂ１、データ書き込み用データブロック２部Ｂ２、データ書き込み用データブロック３部Ｂ３と言う）として割り当てられており、残りの１個のメモリブロックＢ４がブロック選択情報格納部（以下で、選択情報格納部Ｂ４と言う）として割り当てられている。
【００２３】
また、本例では、上記した各データ書き込み用データブロックＢ１〜Ｂ３は、例えばＣＰＵ１４を制御するためのプログラムデータを格納（記憶）するために設けられており、また、上記したバッファブロックＢ４は、例えばデータ書き込み用データブロックＢ１〜Ｂ３のうち、どのデータブロックが最新であるかを示す情報を格納される。
【００２４】
ＲＡＭ１２は、本例では、ＣＰＵ１４により処理されるプログラム等のデータを一時的に記憶する領域として用いられる。シリアル変換器１３は、シリアルデータとパラレルデータとを変換する機能を有しており、本例では、後述するデータ転送装置２のシリアル変換器２２とシリアル通信接続線３を介して接続されており、シリアル通信接続線３を介して受信したシリアルデータをＣＰＵ１４により処理可能なパラレルデータへ変換してＣＰＵ１４へ出力する機能を有している。
【００２５】
ＣＰＵ１４は、例えばＲＡＭ１２の記憶領域を用いてフラッシュメモリ１１に記憶された各種のプログラムを実行することにより当該記憶領域更新装置１に係る各種の処理や制御を実行する機能を有しており、本例では、例えばフラッシュメモリ１１に記憶されたデータをメモリブロックＢ１〜Ｂ４毎に消去する処理や、例えばフラッシュメモリ１１に対してデータを書き込む処理や、例えばフラッシュメモリに記憶されたデータを読み出す処理や、例えば後述するデータ転送装置２からシリアル通信接続線３を介して送信（転送）されるデータをシリアル変換器１３により受信する処理等を実行する。アドレス変換器１５は選択情報格納部Ｂ４に格納されているどのブロックが最新であるかを示す情報からＣＰＵへのメモリマッピングを変換を行う。変換を行うタイミングとしては選択情報格納部Ｂ４を一定間隔で参照し、そのたびに変更する構成であってもよいし、起動時のみ参照して再起動されるまでは変更しない構成であってもかまわない。
【００２６】
一方、データ転送装置２には、主記憶装置２１と、シリアル変換器２２と、ＣＰＵ２３とが備えられている。主記憶装置２１は、ＣＰＵ２３から直接アクセスすることが可能なメモリ（記憶装置）であり、本例では、ＣＰＵ２３により転送処理の動作を実行させるためのプログラム（転送プログラム）のデータを記憶した記憶領域（転送プログラム部Ｐ）と、記憶領域更新装置１に対して転送するデータ（転送データ）を記憶した記憶領域（転送データ部Ｄ）とを有している。なお、転送データとしては、本例では、上記した記憶領域更新装置１のフラッシュメモリ１１のデータ書き込み用データブロック２部Ｂ２に書き込むべきデータが記憶される。
【００２７】
シリアル変換器２２は、シリアルデータとパラレルデータとを変換する機能を有しており、本例では、上記した記憶領域更新装置１のシリアル変換器１３とシリアル通信接続線３を介して接続されており、ＣＰＵ２３から入力されるパラレルデータをシリアルデータへ変換してシリアル通信接続線３へ送信出力する機能を有している。
【００２８】
ＣＰＵ２３は、例えばＲＡＭ（図示せず）の記憶領域を用いて主記憶装置２１に記憶された各種のプログラムを実行することにより当該データ転送装置２に係る各種の処理や制御を実行する機能を有しており、本例では、例えば主記憶装置２１から転送プログラムのデータや転送データを読み出す処理や、例えば読み出した転送データ等をシリアル変換器２２によりシリアルデータとしてシリアル通信接続線３を介して記憶領域更新装置１へ送信（転送）する処理等を実行する。
【００２９】
なお、本例のデータ転送装置２と記憶領域更新装置１との間で行われる転送処理では、データ転送装置２が特定のパターン（本例では、一例として、“ＡＡｈＡＡｈ”というパターン）を記憶領域更新装置１に対して送信出力した後に当該データ転送装置２が転送データ部Ｄに記憶された転送データを当該記憶領域更新装置１に対して送信（転送）する手順が用いられており、このような転送処理の手順が上記した転送プログラムによって規定されている。
【００３０】
次に、図２を参照して、本例のデータ転送システムにより行われる処理動作の一例を示す。なお、本例では、上述したように、記憶領域更新装置１に備えられたフラッシュメモリ１１のデータ書き込み用データブロック１部Ｂ１の記憶内容を新たなプログラムデータの内容に書き換える場合を例として示す。
【００３１】
ここで、上記した新たなプログラムデータは、例えばデータ転送装置２に備えられた主記憶装置２１の転送データ部Ｄに転送データとして予め格納されているか、或いは、例えば以下に示す転送処理が行われる前にユーザ等により当該転送データ部Ｄに転送データとして格納されるものとする。また、本例では、記憶領域更新装置１に備えられたフラッシュメモリ１１のデータ書き込み用データブロック１部Ｂ１はプログラムデータが書き込まれた状態であるとし、データ書き込み用データブロック２部Ｂ２データ及び書き込み用データブロック３部Ｂ３はプログラムデータが書き込まれた状態であっても書き込まれていない状態（空の状態）であってもよいとする。選択情報格納部Ｂ４にはこの場合はデータブロック１部Ｂ１に最新のプログラムが格納されているため、そのことを示す情報が格納されている。
【００３２】
また、上記図２では、新たなプログラムデータの書き込み前にデータ書き込み用データブロック１部Ｂ１に記憶されているプログラムデータを“旧プログラム”として示し、当該書き込み前にバッファブロックＢ２に記憶されているプログラムデータを“データ”として示し、当該新たなプログラムデータを“新プログラム”として示してある。また、同図では、プログラムデータが記憶されていても記憶されていなくてもよい残りの２つのデータ書き込み用データブロックＢ２、Ｂ３の記憶状態を“データ或いは空”として示している。
【００３３】
まず、データ転送装置２が動作させられて転送プログラムに従った処理が開始されると、データ転送装置２では、ＣＰＵ２３が上記したパターン“ＡＡｈＡＡｈ”のデータをシリアル変換器２２へ送ることで当該データをシリアル通信接続線３を介して記憶領域更新装置１へ送信し、その後、当該ＣＰＵ２３が主記憶装置２１の転送データ部Ｄに記憶された（本例では、記憶領域更新装置１のフラッシュメモリ１１に対する書き込み対象となる）転送データを同様にして記憶領域更新装置１へ送信（転送）する。なお、このような転送処理が開始される前における記憶領域更新装置１のフラッシュメモリ１１の状態が上記図２（ａ）に示されている。
【００３４】
上記したパターン“ＡＡｈＡＡｈ”のデータや転送データの送信処理がデータ転送装置２により行われると、当該パターン“ＡＡｈＡＡｈ”のデータや当該転送データがシリアル通信接続線３を介して記憶領域更新装置１のシリアル変換器１３に届く。そして、記憶領域更新装置１では、シリアル変換器１３がこのようなパターン“ＡＡｈＡＡｈ”のデータや転送データを受信して、受信したデータをＣＰＵ１４により処理することが可能なパラレルデータへ変換してＣＰＵ１４へ送る。
【００３５】
記憶領域更新装置１では、まず、ＣＰＵ１４がシリアル変換器１３からパターン“ＡＡｈＡＡｈ”のデータを受け取ったことに応じて、フラッシュメモリ１１の記憶領域の記憶内容を更新する要求があったと判断して、転送先のブロックを決定する。
【００３６】
この例では転送先の決定方法としては現在使用しているブロックの次のブロックとする。この例ではバッファブロックＢ１を使用しているため、格納先としてはバッファブロックＢ２となる。当該転送データの内容をバッファブロックＢ２に書き込んでいく。そして、記憶領域更新装置１では、ＣＰＵ１４がシリアル変換器１３を介してデータ転送装置２から転送データの全てを受信して当該転送データの全てをバッファブロックＢ２に書き込んだと判断したときに、当該ＣＰＵ１４が選択情報格納部Ｂ４に記憶されている内容を最新のブロックを示す情報をバッファブロックＢ２が最新である事を示す情報に更新する。
【００３７】
なお、転送データの内容がバッファブロックＢ２に書き込まれたときにおける記憶領域更新装置１のフラッシュメモリ１１の状態が上記図２（ｂ）に示されており、選択情報格納部Ｂ４がバッファブロックＢ２が最新である事を示す情報に更新された状態が上記図２（ｃ）に示されている。
【００３８】
従って、本例のデータ転送システムに備えられた記憶領域更新装置１では、使用しているメモリブロックが消去されること無く、他のメモリブロックに書き込み、その後に使用するメモリブロックを新しく書き込まれたメモリブロックにアドレス割り当てを変更するため, 迅速に新旧のメモリブロックを切り替え、確実に新旧どちらかのメモリブロックを使用することが出来る。
【００３９】
そして、本例の記憶領域更新装置１では、例えばプログラム等の重要なデータを記憶するメモリブロックの記憶内容を書き換える途中で、書き込み先となるメモリブロックへのデータ転送の動作が中断されてしまったような場合であっても、書き込み対象となるデータが消失してしまう可能性を極めて低くすることができ、このため、記憶領域の更新を安全に行うことができる。
【００４０】
また、本例の記憶領域更新装置１では、例えば割り込みベクターを含むデータを記憶したメモリブロックの記憶内容を書き換えるような場合であっても、書き込み対象となるデータの全てを外部の装置（本例では、データ転送装置２）から受け取った後に書き込み先となるメモリブロックに対するアドレス変換を行うため、
当該メモリブロックに記憶された割り込みベクターを用いて割り込み処理を実行することが可能であり、書き込み先となるメモリブロックに記憶された割り込みベクターを用いて割り込み処理を行うことができない時間を極めて短くすることができる。また、何らかの理由により以前のプログラムに戻したいといった時でも最新のプログラムを示す情報のみを以前のプログラムが格納されているメモリブロックを指し示すように変更すればよく、簡単に戻すことも出来る。
【００４１】
また、本例では、書き込み対象となるデータ（本例では、転送データ）を一括してデータ転送装置２から記憶領域更新装置１へ送る構成としたが、例えば当該データを幾つかのブロックに分けて送ることも可能である。また、書き込み対象となるデータを一括して送る場合或いは幾つかのブロックに分けて送る場合のいずれの場合においても、例えばデータ転送装置２が誤り訂正符号や誤り検出符号を転送対象となるデータに付加するとともに記憶領域更新装置１が受信した当該データに関して誤り訂正処理や誤り検出処理を行って、誤りが発生したときに当該データの再送を行う構成とすることも可能である。
【００４２】
なお、メモリ（本例では、フラッシュメモリ１１）が有する複数のメモリブロックに対してデータ書き込み用のメモリブロックを割り当てる態様としては、必ずしも本例の態様に限られず、種々な態様が用いられてもよい。本例では、メモリが有する複数のメモリブロックの中の１以上の（本例では、１個の）メモリブロックをデータ蓄積用のメモリブロックとして割り当てるとともに、それ以外のメモリブロックをデータ書き込み用の（すなわち、データ蓄積用ではなく、データを格納するために本来使用されるべき）メモリブロックとして割り当てる態様を用いた。また、アドレス変換器１５は、固定的なハードウエアとすることもできるし、プログラマブルロジックデバイス（ＰＬＤ）やフィールドプログラマブルゲートアレイ（ＦＰＧＡ）といった書き換え可能なハードウエアとすることも可能である。
【００４３】
なお、本発明に係る記憶領域更新装置の構成としては、必ずしも本例で示したものに限られず、種々な構成が用いられてもよい。一例として、本例では、本発明に係る記憶領域更新装置により行われる各種の処理が、例えばプロセッサ（本例では、ＣＰＵ１４）やメモリ（本例では、ＲＡＭ１２）等を備えたハードウエア資源においてプロセッサがＲＯＭ（本例では、フラッシュメモリ１１）に格納された制御プログラムを実行することにより制御される構成としたが、例えば当該処理を実行するための各機能手段を独立したハードウエア回路として構成することも可能である。
【００４４】
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ−ＲＯＭ等のコンピュータにより読み取り可能な記録媒体として把握することもでき、当該制御プログラムを記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【００４５】
【図１】本発明を適用した記憶領域更新装置を備えたデータ転送システムの一例を示す図である。
【図２】書き換え処理の一例を説明するための図である。
【符号の説明】
【００４６】
１：記憶領域更新装置 
２：データ転送装置
３：シリアル通信接続線 
１１：フラッシュメモリ
Ｂ１〜Ｂ３：データ書き込み用データブロック
Ｂ４：ブロック選択情報格納部
１２：ＲＡＭ
１３、２２：シリアル変換器 
１４、２３：ＣＰＵ
１５：アドレス変換器
２１：主記憶装置 
Ｐ：転送プログラム部 
Ｄ：転送データ部
【図１】
2005071170.tif 000003
【図２】
2005071170.tif 000004