(57)【要約】【課題】ＣＰＵの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送を実現すること。【解決手段】シーケンサ２０１は、フラッシュメモリ１１０を読出しモードに切り替える。第１のセクタ１１１内の転送元のアドレスに記憶されているデータを読み出す。データの読出しが完了すると、フラッシュメモリ１１０を書込みモードに切り替え、コマンドジェネレータ２０４から書込みコマンドを発行する。シーケンサ２０１は、レディ信号ＲＤＹを受信した場合、転送元の全アドレスのデータの転送終了を判断する。終了していない場合、フラッシュメモリ１１０を読出しモードに切り替えて、第１のセクタ１１１の未転送のデータを第２のセクタ１１２に転送する。終了した場合、フラッシュメモリ１１０を読出しモードに切り替えて、ＣＰＵ２００に割り込み要求信号ＩＲを送信する。【選択図】        図２
2007052717.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリ内の第１のセクタに記憶されているデータを読み出す読出し手段と、
前記読出し手段によって読み出されたデータを、前記フラッシュメモリ内における前記第１のセクタとは異なる第２のセクタに書き込む書込み手段と、
を備えることを特徴とするデータ転送装置。
【請求項２】
前記フラッシュメモリの読出しモードと書込みモードとの切り替えを制御する制御手段を備え、
前記読出しモード時において前記読出し手段による前記データの前記第１のセクタからの読み出しが完了した場合、前記フラッシュメモリを前記読出しモードから前記書込みモードに切り替え、
前記書込みモード時において前記書込み手段による前記データの前記第２のセクタへの書き込みが完了した場合、前記フラッシュメモリを前記書込みモードから前記読出しモードに切り替えることを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記読出し手段は、
前記書込み手段による前記データの前記第２のセクタへの書き込みが完了した場合、前記第１のセクタに記憶されている他のデータを読み出すことを特徴とする請求項１または２に記載のデータ転送装置。
【請求項４】
前記第１のセクタのアドレスと前記データから更新された更新後のデータとを保持する保持手段と、
前記読出し手段が読み出しをおこなうセクタのアドレスが前記保持手段に保持されている前記第１のセクタのアドレスと一致するか否かを判定する判定手段と、を備え、
前記読出し手段は、
前記判定手段によって判定された判定結果に基づいて、前記データの読み出しをおこなうことを特徴とする請求項１〜３のいずれか一つに記載のデータ転送装置。
【請求項５】
前記読出し手段は、
前記判定手段によって一致すると判定された場合、前記保持手段に保持されている更新後のデータを読み出し、
前記書込み手段は、
前記読出し手段によって読み出された更新後のデータを前記第２のセクタに書き込むことを特徴とする請求項４に記載のデータ転送装置。
【請求項６】
フラッシュメモリ内の第１のセクタに記憶されているデータを更新する際、前記フラッシュメモリ外から前記データの更新後のデータを読み出す読出し手段と、
前記読出し手段によって読み出された更新後のデータを、前記フラッシュメモリ内における前記第１のセクタとは異なる第２のセクタに書き込む書込み手段と、
を備えることを特徴とするデータ転送装置。
【請求項７】
フラッシュメモリに対してデータ転送をおこなうデータ転送装置によるデータ転送方法であって、
前記フラッシュメモリ内の第１のセクタに記憶されているデータを読み出す読出し工程と、
前記フラッシュメモリ内における前記第１のセクタとは異なる第２のセクタに、前記読出し工程によって読み出されたデータを書き込む書込み工程と、
を含んだことを特徴とするデータ転送方法。
【請求項８】
前記読出し工程による前記データの読み出しが完了した場合、前記フラッシュメモリを読出しモードから書込みモードに切り替える書込みモード切替工程を含み、
前記書込み工程は、
前記書込みモード切替工程によって前記書込みモードに切り替えられた場合、前記第２のセクタに前記データを書き込むことを特徴とする請求項７に記載のデータ転送方法。
【請求項９】
前記フラッシュメモリに対してデータ転送をおこなうデータ転送装置によるデータ転送方法であって、
フラッシュメモリ内の第１のセクタに記憶されているデータを更新する際、前記フラッシュメモリ外から前記データの更新後のデータを読み出す読出し工程と、
前記読出し工程によって読み出された更新後のデータを、前記フラッシュメモリ内における前記第１のセクタとは異なる第２のセクタに書き込む書込み工程と、
を含んだことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、同一フラッシュメモリ内でデータ転送をおこなうデータ転送装置およびデータ転送方法に関する。
【背景技術】
【０００２】
従来において、フラッシュメモリのセクタに記憶されているデータを一部のみ更新する際、一般的には、セクタ内の更新されるデータを含めたすべてのデータを別のセクタに転送する第１の手法か、またはセクタ内のデータを一旦ＲＡＭに転送し、転送元のセクタのデータを消去した後に再度、ＲＡＭからそのセクタにデータを転送する第２の手法が取られる。
【０００３】
特に、第２の手法の場合、フラッシュメモリのデータの消去を開始してからＲＡＭのデータをフラッシュメモリへ転送し終わるまでの間に、何らかの理由によりリセットの入力や電源の切断があった場合、その時点でフラッシュメモリに書込みが完了していないデータは消失する。そのため、重要度の高いデータの更新は、通常、第１の手法のようなセクタ間転送によりおこなわれる。
【０００４】
また、上記データ転送はＣＰＵによりおこなわれる他、フラッシュメモリとＲＡＭとの間のデータ転送の場合には、ＤＭＡ転送も用いられ、特にＲＡＭからフラッシュメモリへの転送の際に、自動的にフラッシュメモリへの書込みコマンドを付加するＤＭＡコントローラも知られている。ただしこれらのＤＭＡコントローラでは、一度の起動のみで同一フラッシュメモリ内のセクタ間でデータ転送をおこなうことはできず、必ずＲＡＭなどのバッファに一度データを転送する必要がある。なお、異なるメモリ間でのデータ転送に関する技術は、たとえば、下記特許文献１および２に開示されている。
【０００５】
【特許文献１】特開平８−２０２６４９号公報
【特許文献２】特開平１１−３１６７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した第１の手法により、ＣＰＵを用いて同一フラッシュメモリ内のセクタ間でデータ転送をおこなう場合、フラッシュメモリの書込みモードと読出しモードの変更や、書込みコマンドの入力は、ＣＰＵがおこなう必要がある。また、データ書込みの終了を監視するためにデータポーリングをＣＰＵがおこなう必要がある。このように、常時ＣＰＵを介在させておく必要があり、プログラムが複雑になりやすいという問題があった。
【０００７】
特に、このデータポーリングは、周期を長くすると書込み終了の検知が遅れて書込み時間が長くなる一方、周期を短くするとフラッシュメモリへのアクセスが増大する。これにより、消費電力が増大するとともに、ＣＰＵが同時に実行している別のタスクが頻繁に中断されるため、オーバーヘッド時間が増加してしまうという問題があった。
【０００８】
この発明は、上述した従来技術による問題点を解消するため、ＣＰＵの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送を実現することができるデータ転送装置およびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、この発明にかかるデータ転送装置およびデータ転送方法は、フラッシュメモリ内の第１のセクタに記憶されているデータを読み出し、読み出されたデータを、前記フラッシュメモリ内における前記第１のセクタとは異なる第２のセクタに書き込むことを特徴とする。
【００１０】
この発明によれば、第１のセクタから第２のセクタにデータを転送することができる。
【００１１】
また、上記発明において、前記読出しモード時において前記データの前記第１のセクタからの読み出しが完了した場合、前記フラッシュメモリを前記読出しモードから書込みモードに切り替え、前記書込みモード時において前記データの前記第２のセクタへの書き込みが完了した場合、前記フラッシュメモリを前記書込みモードから前記読出しモードに切り替えることとしてもよい。
【００１２】
この発明によれば、フラッシュメモリのモード切替えをデータ転送装置により実現することができる。
【００１３】
また、上記発明において、前記データの前記第２のセクタへの書き込みが完了した場合、前記第１のセクタに記憶されている他のデータを読み出すこととしてもよい。
【００１４】
この発明によれば、第１のセクタからのデータ読み出しと第２のセクタへのデータ書込みを繰り返し実行することができる。
【００１５】
また、上記発明において、前記第１のセクタのアドレスと前記データから更新された更新後のデータとを保持し、読み出しをおこなうセクタのアドレスが前記保持手段に保持されている前記第１のセクタのアドレスと一致するか否かを判定し、判定された判定結果に基づいて、前記データの読み出しをおこなうこととしてもよい。
【００１６】
この発明によれば、読み出しをおこなうセクタのアドレスに応じて、データ転送とデータ更新を簡単かつ自動的に切り替えることができる。
【００１７】
また、上記発明において、一致すると判定された場合、保持されている更新後のデータを読み出し、読み出された更新後のデータを前記第２のセクタに書き込むこととしてもよい。
【００１８】
この発明によれば、更新前のデータをフラッシュメモリから読み出すことなく、更新後のデータを読み出すことができる。
【発明の効果】
【００１９】
本発明にかかるデータ転送装置およびデータ転送方法によれば、ＣＰＵの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかるデータ転送装置およびデータ転送方法の好適な実施の形態を詳細に説明する。
【００２１】
（実施の形態１）
（データ転送装置の機能的構成）
まず、この発明の実施の形態１にかかるデータ転送装置の機能的構成について説明する。図１は、この発明の実施の形態１にかかるデータ転送装置の機能的構成を示すブロック図である。
【００２２】
データ転送装置１００は、フラッシュメモリ１１０に対してデータの転送をおこなう。フラッシュメモリ１１０は、電気的に内容を書き換えることができ電源を落としてもデータが失われない不揮発性メモリであり、セクタ単位で消去／書き込みができるようになっている。なお、フラッシュメモリ１１０は、後述する制御部１０３により、データが読出し可能な読出しモードとデータを書き込み可能な書込みモードに切り替えられる。なお、フラッシュメモリ１１０は、データ転送装置１００に内蔵されていてもよく、外部に設けられていてもよい。また、データ転送装置１００に対し着脱自在に構成することとしてもよい。
【００２３】
また、図１において、データ転送装置１００は、読出し部１０１と書込み部１０２と制御部１０３とから構成されている。読出し部１０１は、フラッシュメモリ１１０内の第１のセクタ１１１に記憶されているデータを読み出す。具体的には、フラッシュメモリ１１０の読出しモード時において、第１のセクタ１１１内の任意のアドレスが指定されると、当該アドレスに記憶されているデータを読み出す。
【００２４】
また、書込み部１０２は、読出し部１０１によって読み出されたデータを、フラッシュメモリ１１０内における第１のセクタ１１１とは異なる第２のセクタ１１２に書き込む。具体的には、フラッシュメモリ１１０が読出しモードから書込みモードに切り替わると、読み出されたデータをフラッシュメモリ１１０内における第２のセクタ１１２に書き込む。これにより、第１のセクタ１１１に記憶されていたデータを、第２のセクタ１１２に転送することができる。
【００２５】
また、制御部１０３は、フラッシュメモリ１１０の読出しモードと書込みモードとの切り替えを制御する。具体的には、読出しモード時において読出し部１０１によるデータの第１のセクタ１１１からの読み出しが完了した場合、フラッシュメモリ１１０を読出しモードから書込みモードに切り替える。
【００２６】
さらに、書込みモード時において書込み部１０２によるデータの第２のセクタ１１２への書き込みが完了した場合、フラッシュメモリ１１０を書込みモードから読出しモードに切り替える。この場合、読出し部１０１は、書込み部１０２によるデータの第２のセクタ１１２への書き込みが完了した場合、第１のセクタ１１１に記憶されている他のデータを読み出すこととなる。
【００２７】
（データ転送装置１００のハードウェア構成）
つぎに、この発明の実施の形態１にかかるデータ転送装置１００のハードウェア構成について説明する。図２は、この発明の実施の形態１にかかるデータ転送装置１００のハードウェア構成を示すブロック図である。図２において、データ転送装置１００は、ＣＰＵ２００とともにバス２２０に接続されている。また、フラッシュメモリ１１０は、セクタごとにデータの消去や書き換えの単位となるセクタを複数有しているが、図２では、便宜上、２つのセクタ（転送元となる第１のセクタ１１１と、転送先となる第２のセクタ１１２）を用いて説明する。
【００２８】
また、フラッシュメモリ１１０は、データ転送装置１００からライトイネーブル信号ＷＥを受けることで、読出しモードと書込みモードが切り替えられ、また、書込みモード時においてデータの書込みが完了すると、データ転送装置１００に対しレディ信号ＲＤＹを送信する。
【００２９】
シーケンサ２０１は、データ転送装置１００を統括制御する。具体的には、シーケンサ２０１は、フラッシュメモリ１１０に対するデータの読み出し（リード）制御、書き込み（ライト）制御、コマンドジェネレータ２０４に対するコマンド制御、フラッシュメモリ１１０に対するライトイネーブル信号ＷＥの送信、ＣＰＵ２００に対する割り込み要求信号ＩＲの送信をおこなう。
【００３０】
たとえば、シーケンサ２０１は、フラッシュメモリ１１０からレディ信号ＲＤＹを受信すると、フラッシュメモリ１１０に対し、読出し処理を示すライトイネーブル信号ＷＥ（ＷＥ＝０）を送信することで、フラッシュメモリ１１０を読出しモードに切り替える。また、シーケンサ２０１は、データの読出しが完了した場合、フラッシュメモリ１１０に対し、書込み処理を示すライトイネーブル信号ＷＥ（ＷＥ＝１）を送信することで、フラッシュメモリ１１０を書込みモードに切り替える。
【００３１】
また、シーケンサ２０１は、ライトイネーブル信号ＷＥ（ＷＥ＝１）を送信した場合、コマンドジェネレータ２０４に対し、書込みコマンドの発行指示をおこなう。また、シーケンサ２０１は、全データの転送が完了した場合、ＣＰＵ２００に対し、転送終了を示す割り込み要求信号ＩＲを送信する。
【００３２】
また、設定レジスタ２０２には、転送元となるデータが記憶されている第１のセクタ１１１における転送元のアドレスと、転送先となる第２のセクタ１１２内における転送先のアドレスと、が保持されている。具体的には、たとえば、ＣＰＵ２００またはシーケンサ２０１により、転送元のアドレスと転送先のアドレスが設定される。
【００３３】
また、データレジスタ２０３は、シーケンサ２０１の読出し処理において、フラッシュメモリ１１０から読み出されたデータを一時的に保持しておく。そして、保持されたデータは、シーケンサ２０１の書込み処理において転送先となる第２のセクタ１１２に転送される。
【００３４】
また、コマンドジェネレータ２０４は、シーケンサ２０１から書込みコマンドの発行指示があった場合、書込みコマンドを発行して、フラッシュメモリ１１０に転送する。書込みコマンドには、たとえば、設定レジスタ２０２で設定された転送先のアドレスが含まれる。この書込みコマンドにより、転送先となる第２のセクタ１１２のアドレスが指定されることとなる。また、フラッシュメモリインターフェース２０５は、フラッシュメモリ１１０とデータレジスタ２０３間のデータを転送する。
【００３５】
なお、図１に示した読出し部１０１、書込み部１０２および制御部１０３は、図２に示したシーケンサ２０１、設定レジスタ２０２、データレジスタ２０３、コマンドジェネレータ２０４、フラッシュメモリインターフェース２０５により実現することができる。
【００３６】
（データ転送装置１００のデータ転送処理）
つぎに、この発明の実施の形態１にかかるデータ転送装置１００のデータ転送処理について説明する。図３は、この発明の実施の形態１にかかるデータ転送装置１００のデータ転送処理手順を示すフローチャートである。図３において、あらかじめ、設定レジスタ２０２に、転送元となるデータが記憶されている第１のセクタ１１１における転送元のアドレスと、転送先となる第２のセクタ１１２内における転送先のアドレスと、を設定しておく（ステップＳ３０１）。
【００３７】
つぎに、ライトイネーブル信号ＷＥ（ＷＥ＝０）をフラッシュメモリ１１０に送信し、フラッシュメモリ１１０を読出しモードに切り替える（ステップＳ３０２）。つぎに、第１のセクタ１１１内の転送元のアドレスに記憶されているデータを読み出す（ステップＳ３０３）。具体的には、設定レジスタ２０２に設定されている転送元のアドレスをフラッシュメモリ１１０に送信することで、当該転送元のアドレスに記憶されているデータを、データレジスタ２０３に転送する。これにより、転送したいデータを一時的に退避することができる。
【００３８】
このあと、シーケンサ２０１は、データの読出しが完了すると、ライトイネーブル信号ＷＥ（ＷＥ＝１）を送信して、フラッシュメモリ１１０を書込みモードに切り替える（ステップＳ３０４）。そして、コマンドジェネレータ２０４に書き込みコマンドの発行指示をおこなうことにより、コマンドジェネレータ２０４から書込みコマンドを発行する（ステップＳ３０５）。この書込みコマンドにより、データが書き込まれる第２のセクタ１１２内における転送先のアドレスが指定され、データレジスタ２０３から、データレジスタ２０３に一時的に退避させたデータを、フラッシュメモリ１１０の第２のセクタ１１２の転送先のアドレスに書き込む（ステップＳ３０６）。
【００３９】
このあと、シーケンサ２０１は、フラッシュメモリ１１０からのレディ信号ＲＤＹ（ＲＤＹ＝１）を待ち受け（ステップＳ３０７：Ｎｏ）、レディ信号ＲＤＹを受信してＲＤＹ＝１となった場合（ステップＳ３０７：Ｙｅｓ）、設定レジスタ２０２に設定されている転送元の全アドレスのデータの転送が終了したか否かを判断する（ステップＳ３０８）。
【００４０】
転送元の全アドレスのデータの転送が終了していない場合（ステップＳ３０８：Ｎｏ）、ステップＳ３０２に戻って、ライトイネーブル信号ＷＥ（ＷＥ＝０）を送信して、フラッシュメモリ１１０を読出しモードに切り替える。これにより、第１のセクタ１１１に記憶されている未転送のデータを第２のセクタ１１２に転送することができる。
【００４１】
一方、転送元の全アドレスのデータの転送が終了した場合（ステップＳ３０８：Ｙｅｓ）、ライトイネーブル信号ＷＥ（ＷＥ＝０）を送信して、フラッシュメモリ１１０を読出しモードに切り替える（ステップＳ３０９）。そして、ＣＰＵ２００に対して転送終了の割り込み要求信号ＩＲを送信する（ステップＳ３１０）。これにより、一連の処理を終了する。
【００４２】
すなわち、シーケンサ２０１は、転送されるべきすべてのデータが転送されるまでフラッシュメモリ１１０からの読出し処理と書込み処理を繰り返し、すべてのデータの転送が終了するとＣＰＵ２００に対して転送終了割込みを発生する。
【００４３】
この実施の形態１によれば、読み出されたデータをデータ転送装置１００のデータレジスタ２０３に保持しておくことにより、データ転送中におけるフラッシュメモリ１１０内のデータの消失を防止することができ、安全なデータ転送を実現することができる。
【００４４】
また、フラッシュメモリ１１０の読出しモードと書込みモードの切り替え制御を、シーケンサ２０１からのライトイネーブル信号ＷＥにより自動でおこなうことができる。また、フラッシュメモリ１１０へのデータ書込み時に、書込みコマンドをコマンドジェネレータ２０４が自動的に発行している。したがって、ＣＰＵ２００を介さずにデータ転送処理を実現できるため、データ転送の効率化を図ることができる。また、ＣＰＵ２００によるバス２２０の占有が低減されるため、データ転送の高速化を実現することができる。
【００４５】
また、フラッシュメモリ１１０へのデータ書込み後、レディ信号ＲＤＹにより書込み終了を検知することができるため、データポーリングをおこなう必要がなく、データ転送の効率化を図ることができる。
【００４６】
以上のことから、実施の形態１にかかるデータ転送装置１００およびデータ転送方法によれば、同一のフラッシュメモリ１１０の異なるセクタ間で安全かつ効率的にデータを転送することができる。
【００４７】
（実施の形態２）
つぎに、この発明の実施の形態２について説明する。実施の形態１にかかるデータ転送装置１００およびデータ転送方法は、同一フラッシュメモリ１１０内の転送元となる第１のセクタ１１１から転送先となる第２のセクタ１１２へのデータ転送をおこなう構成であるが、実施の形態２にかかるデータ転送装置およびデータ転送方法は、第１のセクタ１１１に記憶されている更新前のデータを更新する場合、更新前のデータを第１のセクタ１１１に保持したまま、更新後のデータを第２のセクタ１１２に転送する構成である。なお、実施の形態１において説明した構成と同一構成については同一符号を付し、その説明を省略する。
【００４８】
（データ転送装置の機能的構成）
まず、この発明の実施の形態２にかかるデータ転送装置の機能的構成について説明する。図４は、この発明の実施の形態２にかかるデータ転送装置の機能的構成を示すブロック図である。図４において、データ転送装置４００は、実施の形態１で説明した読出し部１０１、書込み部１０２、制御部１０３のほか、保持部１０４および判定部１０５を備えている。
【００４９】
ここで、保持部１０４は、第１のセクタ１１１のアドレスと、当該アドレスに記憶されているデータ（更新前のデータ）から更新された更新後のデータと、を保持する。具体的には、読出し部１０１による読出し開始前に保持しておく。
【００５０】
また、判定部１０５は、読出し部１０１が読み出しをおこなうセクタのアドレス（指定アドレス）が保持部１０４に保持されている第１のセクタ１１１のアドレスと一致するか否かを判定する。一致しない場合には、フラッシュメモリ１１０の指定アドレスにより特定されるデータを読み出す。
【００５１】
一方、一致する場合には、保持部１０４に記憶されているアドレスに対応する更新後のデータを読み出す。この場合、書込み部１０２は、読出し部１０１によって読み出された更新後のデータを第２のセクタ１１２に書き込む。これにより、更新前のデータを第１のセクタ１１１に記憶させたまま、更新後のデータを第２のセクタ１１２に転送して、記憶することができる。
【００５２】
（データ転送装置４００のハードウェア構成）
つぎに、この発明の実施の形態２にかかるデータ転送装置４００のハードウェア構成について説明する。実施の形態２にかかるデータ転送装置４００のハードウェア構成は、フラッシュメモリインターフェース２０５を除いて実施の形態１にかかるデータ転送装置１００のハードウェア構成と同一構成である。図５は、フラッシュメモリインターフェース２０５のハードウェア構成を示すブロック図である。
【００５３】
図５において、フラッシュメモリ１１０の第１のセクタ１１１では、アドレスＡ１からアドレスＡｎまでデータが記憶されているが、更新の対象となる更新前のデータは、図５中、ハッチングで示したアドレスＡｉ〜アドレスＡｊに記憶されているデータＤｉ〜Ｄｊとする。
【００５４】
図５において、フラッシュメモリインターフェース２０５は、更新用データベース５０１と、一致回路５０２と、セレクタ５０３と、を備えている。更新用データベース５０１は、更新対象となる更新前のデータＤｉ〜ＤｊのアドレスＡｉ〜Ａｊと、更新前のデータＤｉ〜Ｄｊから更新された更新後のデータＲｉ〜Ｒｊとの組み合わせが、あらかじめＣＰＵ２００からの処理により保持されている。
【００５５】
また、一致回路５０２は、データ転送装置４００から送信されてくるアドレスＡｋと、更新用データベース５０１内に保持されているアドレスＡｉ〜Ａｊとを比較する論理回路である。また、セレクタ５０３は、一致回路５０２からの切替信号により、シーケンサ２０１と更新用データベース５０１、またはシーケンサ２０１とフラッシュメモリ１１０との接続を切り替える論理回路である。
【００５６】
そして、一致回路５０２において一致するアドレスＡｋが更新用データベース５０１に保持されている場合には、セレクタ５０３に切替信号を送信して、更新用データベース５０１とシーケンサ２０１を接続する。これにより、一致するアドレスＡｋに対応するデータＲｋを更新用データベース５０１からデータレジスタ２０３に読み出すことができる。
【００５７】
このあと、更新用データベース５０１から読み出されたデータＲｋは、設定レジスタ２０２で設定された転送先となる第２のセクタ１１２の転送先のアドレスＡｘに書き込まれる。これにより、第１のセクタ１１１のアドレスＡｋに記憶されているデータＲｋを、第２のセクタ１１２のアドレスＡｘに転送することができる。
【００５８】
一方、一致回路５０２により一致しないと判定された場合、セレクタ５０３に切替信号を送信して、フラッシュメモリ１１０とシーケンサ２０１とを接続する。これにより、フラッシュメモリ１１０の第１のセクタ１１１のアドレスＡｋに記憶されているデータＤｋをデータレジスタ２０３に読み出すことができる。
【００５９】
このあと、フラッシュメモリ１１０から読み出されたデータＤｋは、設定レジスタ２０２で設定された転送先となる第２のセクタ１１２の転送先のアドレスＡｘに書き込まれる。これにより、第１のセクタ１１１のアドレスＡｋに記憶されているデータＤｋを、第２のセクタ１１２のアドレスＡｘに転送することができる。
【００６０】
なお、図４に示した保持部１０４は、図５に示した更新用データベース５０１によって実現することができ、図４に示した判定部１０５は、図５に示した一致回路５０２およびセレクタ５０３により実現することができる。
【００６１】
（データ転送装置４００のデータ転送処理）
つぎに、この発明の実施の形態２にかかるデータ転送装置４００のデータ転送処理について説明する。このデータ処理では、更新前のデータＤｉ〜Ｄｋが記憶されている第１のセクタ１１１のアドレスＡｉ〜Ａｊと、データＤｉ〜Ｄｋから更新された更新後のデータＲｉ〜Ｒｊが、ＣＰＵ２００によりあらかじめ更新用データベース５０１に保持されているものとする。図６は、この発明の実施の形態２にかかるデータ転送装置４００のデータ転送処理手順を示すフローチャートである。
【００６２】
図６において、あらかじめ、設定レジスタ２０２に、更新前のデータＤｉ〜Ｄｋが記憶されている第１のセクタ１１１のアドレスＡｉ〜Ａｊと、更新後のデータＲｉ〜Ｒｋの転送先となる第２のセクタ１１２のアドレスＡｙ〜Ａｚと、を設定しておく（ステップＳ６０１）。
【００６３】
つぎに、ライトイネーブル信号ＷＥ（ＷＥ＝０）をフラッシュメモリ１１０に送信し、フラッシュメモリ１１０を読出しモードに切り替える（ステップＳ６０２）。つぎに、データ読出し処理を実行する（ステップＳ６０３）。このデータ読出し処理については後述する。
【００６４】
このあと、シーケンサ２０１は、データの読出しが完了すると、ライトイネーブル信号ＷＥ（ＷＥ＝１）を送信して、フラッシュメモリ１１０を書込みモードに切り替える（ステップＳ６０４）。そして、コマンドジェネレータ２０４に書き込みコマンドの発行指示をおこなうことにより、コマンドジェネレータ２０４から書込みコマンドを発行する（ステップＳ６０５）。この書込みコマンドにより、データが書き込まれる第２のセクタ１１２内における転送先のアドレスＡｘが指定され、データレジスタ２０３から、データレジスタ２０３に一時的に退避させたデータを、フラッシュメモリ１１０の第２のセクタ１１２の転送先のアドレスＡｘに書き込む（ステップＳ６０６）。
【００６５】
このあと、シーケンサ２０１は、フラッシュメモリ１１０からのレディ信号ＲＤＹ（ＲＤＹ＝１）を待ち受け（ステップＳ６０７：Ｎｏ）、レディ信号ＲＤＹを受信してＲＤＹ＝１となった場合（ステップＳ６０７：Ｙｅｓ）、設定レジスタ２０２に設定されている転送元の全アドレスＡｉ〜ＡｊのデータＤｉ〜Ｄｊの転送が終了したか否かを判断する（ステップＳ６０８）。
【００６６】
転送元の全アドレスＡｉ〜Ａｊをフラッシュメモリインターフェース２０５に送信していない場合（ステップＳ６０８：Ｎｏ）、ステップＳ６０２に戻って、ライトイネーブル信号ＷＥ（ＷＥ＝０）を送信する。一方、転送元の全アドレスＡｉ〜Ａｊをフラッシュメモリインターフェース２０５に送信した場合（ステップＳ６０８：Ｙｅｓ）、ライトイネーブル信号ＷＥ（ＷＥ＝０）を送信して、フラッシュメモリ１１０を読出しモードに切り替える（ステップＳ６０９）。そして、ＣＰＵ２００に対して転送終了の割り込み要求信号ＩＲを送信する（ステップＳ６１０）。これにより、一連の処理を終了する。
【００６７】
すなわち、シーケンサ２０１は、転送されるべきすべてのデータが転送されるまでフラッシュメモリ１１０からの読出し処理と書込み処理を繰り返し、すべてのデータの転送が終了するとＣＰＵ２００に対して転送終了割込みを発生する。
【００６８】
つぎに、図６に示したデータ読出し処理（ステップＳ６０３）について説明する。図７は、図６に示したデータ読出し処理手順を示すフローチャートである。図７において、まず、ステップＳ６０２（図６を参照）のあと、設定レジスタ２０２に設定された転送元の全アドレスＡｉ〜Ａｊから選ばれたアドレスＡｋを、フラッシュメモリインターフェース２０５に送信する（ステップＳ７０１）。アドレスＡｋは、フラッシュメモリインターフェース２０５の一致回路５０２に入力される。
【００６９】
そして、一致回路５０２において、更新用データベース５０１に保持されている更新元となる第１のセクタ１１１のアドレスＡｉ〜Ａｊの中に、入力されたアドレスＡｋと一致するか否かを判定する（ステップＳ７０２）。一致するアドレスがあった場合（ステップＳ７０２：Ｙｅｓ）、セレクタ５０３により、更新用データベース５０１とシーケンサ２０１とが接続され、更新用データベース５０１からアドレスＡｋに対応する更新後のデータＲｋを読み出して、データレジスタ２０３に格納する（ステップＳ７０３）。
【００７０】
このあと、図６に示したステップＳ６０４に移行する。このステップＳ６０４以降の処理により、データレジスタ２０３に格納されたデータＲｋは、設定レジスタ２０２に設定された転送先となる第２のセクタ１１２のアドレスＡｘに転送される。これにより、更新前のデータＤｋを消失させることなく、更新前のデータＤｋと更新後のデータＲｋとをフラッシュメモリ１１０に保存することができる。
【００７１】
また、データ更新の際、更新前のデータＤｋが不要な場合、更新後のデータＲｋが第２のセクタ１１２に記憶されるまで、更新前のデータＤｋが第１のセクタ１１１に保存されているため、更新時において更新前のデータＤｋが消失することはない。これにより、安全かつ効率的なデータ更新をおこなうことができる。
【００７２】
一方、一致するアドレスがない場合（ステップＳ７０２：Ｎｏ）、データＤｋは更新されない転送データであることがわかり、セレクタ５０３により、フラッシュメモリ１１０とシーケンサ２０１とが接続され、フラッシュメモリ１１０の第１のセクタ１１１のアドレスＡｋに記憶されているデータＤｋを読み出して、データレジスタ２０３に格納する（ステップＳ７０４）。
【００７３】
このあと、図６に示したステップＳ６０４に移行する。このステップＳ６０４以降の処理により、データレジスタ２０３に格納されたデータＤｋは、設定レジスタ２０２に設定された転送先となる第２のセクタ１１２のアドレスＡｘに転送される。これにより、データＤｋを転送が完了するまで消失させることなく、安全に転送することができる。
【００７４】
この実施の形態２によれば、読み出されたデータをデータ転送装置４００のデータレジスタ２０３に保持しておくことにより、データ転送中におけるフラッシュメモリ１１０内のデータの消失を防止することができ、安全なデータ転送を実現することができる。また、更新後のデータＲｋが第２のセクタ１１２に記憶されるまで、更新前のデータＤｋが第１のセクタ１１１に保存されているため、安全なデータ更新を実現することができる。
【００７５】
また、フラッシュメモリ１１０の読出しモードと書込みモードの切り替え制御を、シーケンサ２０１からのライトイネーブル信号ＷＥにより自動でおこなうことができる。また、フラッシュメモリ１１０へのデータ書込み時に、書込みコマンドをコマンドジェネレータ２０４が自動的に発行している。したがって、ＣＰＵ２００を介さずにデータ転送・更新処理を実現できるため、データ転送・更新の効率化を図ることができる。また、ＣＰＵ２００によるバス２２０の占有が低減されるため、データ転送・更新の高速化を実現することができる。
【００７６】
また、更新用データベース５０１、一致回路５０２およびセレクタ５０３からなるＲＯＭコレクション機能を用いることにより、他のセクタへの同一データのデータ転送処理と、他のセクタへのデータ更新処理とを、アドレスに応じて簡単に切り替えることができるため、ＣＰＵ２００に対する負荷の軽減を図ることができる。
【００７７】
このように、実施の形態２によれば、同一フラッシュメモリ１１０内における異なるセクタ間のデータ転送およびデータ更新を安全かつ効率的におこなうことができる。
【００７８】
以上のことから、この発明にかかるデータ転送装置およびデータ転送方法によれば、ＣＰＵの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送やデータ更新を実現することができる。
【産業上の利用可能性】
【００７９】
以上のように、本発明にかかるデータ転送装置およびデータ転送方法は、セキュリティ性が要求されるデータの転送・更新に有用であり、たとえば、電子マネーや個人認証に関するデータが格納されているＩＣカードや携帯端末に適している。
【図面の簡単な説明】
【００８０】
【図１】この発明の実施の形態１にかかるデータ転送装置の機能的構成を示すブロック図である。
【図２】この発明の実施の形態１にかかるデータ転送装置のハードウェア構成を示すブロック図である。
【図３】この発明の実施の形態１にかかるデータ転送装置のデータ転送処理手順を示すフローチャートである。
【図４】この発明の実施の形態２にかかるデータ転送装置の機能的構成を示すブロック図である。
【図５】フラッシュメモリインターフェースのハードウェア構成を示すブロック図である。
【図６】この発明の実施の形態２にかかるデータ転送装置のデータ転送処理手順を示すフローチャートである。
【図７】図６に示したデータ読出し処理手順を示すフローチャートである。
【符号の説明】
【００８１】
１００，４００  データ転送装置
１０１  読出し部
１０２  書込み部
１０３  制御部
１０４  保持部
１０５  判定部
１１０  フラッシュメモリ
１１１  第１のセクタ
１１２  第２のセクタ
２０１  シーケンサ
２０２  設定レジスタ
２０３  データレジスタ
２０４  コマンドジェネレータ
２０５  フラッシュメモリインターフェース
２００  ＣＰＵ
２２０  バス
５０１  更新用データベース
５０２  一致回路
５０３  セレクタ
Ａ１，Ａｉ，Ａｊ，Ａｋ，Ａｎ，Ａｘ，Ａｙ，Ａｚ  アドレス
Ｄｉ，Ｄｊ，Ｄｋ  更新前のデータ
ＩＲ  割り込み要求信号
ＲＤＹ  レディ信号
Ｒｉ，Ｒｊ，Ｒｋ  更新後のデータ
ＷＥ  ライトイネーブル信号
【図１】
2007052717.tif 000003
【図２】
2007052717.tif 000004
【図３】
2007052717.tif 000005
【図４】
2007052717.tif 000006
【図５】
2007052717.tif 000007
【図６】
2007052717.tif 000008
【図７】
2007052717.tif 000009