JP2007052717A - データ転送装置およびデータ転送方法 - Google Patents
データ転送装置およびデータ転送方法 Download PDFInfo
- Publication number
- JP2007052717A JP2007052717A JP2005238728A JP2005238728A JP2007052717A JP 2007052717 A JP2007052717 A JP 2007052717A JP 2005238728 A JP2005238728 A JP 2005238728A JP 2005238728 A JP2005238728 A JP 2005238728A JP 2007052717 A JP2007052717 A JP 2007052717A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sector
- flash memory
- read
- reading
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【課題】CPUの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送を実現すること。
【解決手段】シーケンサ201は、フラッシュメモリ110を読出しモードに切り替える。第1のセクタ111内の転送元のアドレスに記憶されているデータを読み出す。データの読出しが完了すると、フラッシュメモリ110を書込みモードに切り替え、コマンドジェネレータ204から書込みコマンドを発行する。シーケンサ201は、レディ信号RDYを受信した場合、転送元の全アドレスのデータの転送終了を判断する。終了していない場合、フラッシュメモリ110を読出しモードに切り替えて、第1のセクタ111の未転送のデータを第2のセクタ112に転送する。終了した場合、フラッシュメモリ110を読出しモードに切り替えて、CPU200に割り込み要求信号IRを送信する。
【選択図】 図2
【解決手段】シーケンサ201は、フラッシュメモリ110を読出しモードに切り替える。第1のセクタ111内の転送元のアドレスに記憶されているデータを読み出す。データの読出しが完了すると、フラッシュメモリ110を書込みモードに切り替え、コマンドジェネレータ204から書込みコマンドを発行する。シーケンサ201は、レディ信号RDYを受信した場合、転送元の全アドレスのデータの転送終了を判断する。終了していない場合、フラッシュメモリ110を読出しモードに切り替えて、第1のセクタ111の未転送のデータを第2のセクタ112に転送する。終了した場合、フラッシュメモリ110を読出しモードに切り替えて、CPU200に割り込み要求信号IRを送信する。
【選択図】 図2
Description
この発明は、同一フラッシュメモリ内でデータ転送をおこなうデータ転送装置およびデータ転送方法に関する。
従来において、フラッシュメモリのセクタに記憶されているデータを一部のみ更新する際、一般的には、セクタ内の更新されるデータを含めたすべてのデータを別のセクタに転送する第1の手法か、またはセクタ内のデータを一旦RAMに転送し、転送元のセクタのデータを消去した後に再度、RAMからそのセクタにデータを転送する第2の手法が取られる。
特に、第2の手法の場合、フラッシュメモリのデータの消去を開始してからRAMのデータをフラッシュメモリへ転送し終わるまでの間に、何らかの理由によりリセットの入力や電源の切断があった場合、その時点でフラッシュメモリに書込みが完了していないデータは消失する。そのため、重要度の高いデータの更新は、通常、第1の手法のようなセクタ間転送によりおこなわれる。
また、上記データ転送はCPUによりおこなわれる他、フラッシュメモリとRAMとの間のデータ転送の場合には、DMA転送も用いられ、特にRAMからフラッシュメモリへの転送の際に、自動的にフラッシュメモリへの書込みコマンドを付加するDMAコントローラも知られている。ただしこれらのDMAコントローラでは、一度の起動のみで同一フラッシュメモリ内のセクタ間でデータ転送をおこなうことはできず、必ずRAMなどのバッファに一度データを転送する必要がある。なお、異なるメモリ間でのデータ転送に関する技術は、たとえば、下記特許文献1および2に開示されている。
しかしながら、上述した第1の手法により、CPUを用いて同一フラッシュメモリ内のセクタ間でデータ転送をおこなう場合、フラッシュメモリの書込みモードと読出しモードの変更や、書込みコマンドの入力は、CPUがおこなう必要がある。また、データ書込みの終了を監視するためにデータポーリングをCPUがおこなう必要がある。このように、常時CPUを介在させておく必要があり、プログラムが複雑になりやすいという問題があった。
特に、このデータポーリングは、周期を長くすると書込み終了の検知が遅れて書込み時間が長くなる一方、周期を短くするとフラッシュメモリへのアクセスが増大する。これにより、消費電力が増大するとともに、CPUが同時に実行している別のタスクが頻繁に中断されるため、オーバーヘッド時間が増加してしまうという問題があった。
この発明は、上述した従来技術による問題点を解消するため、CPUの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送を実現することができるデータ転送装置およびデータ転送方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかるデータ転送装置およびデータ転送方法は、フラッシュメモリ内の第1のセクタに記憶されているデータを読み出し、読み出されたデータを、前記フラッシュメモリ内における前記第1のセクタとは異なる第2のセクタに書き込むことを特徴とする。
この発明によれば、第1のセクタから第2のセクタにデータを転送することができる。
また、上記発明において、前記読出しモード時において前記データの前記第1のセクタからの読み出しが完了した場合、前記フラッシュメモリを前記読出しモードから書込みモードに切り替え、前記書込みモード時において前記データの前記第2のセクタへの書き込みが完了した場合、前記フラッシュメモリを前記書込みモードから前記読出しモードに切り替えることとしてもよい。
この発明によれば、フラッシュメモリのモード切替えをデータ転送装置により実現することができる。
また、上記発明において、前記データの前記第2のセクタへの書き込みが完了した場合、前記第1のセクタに記憶されている他のデータを読み出すこととしてもよい。
この発明によれば、第1のセクタからのデータ読み出しと第2のセクタへのデータ書込みを繰り返し実行することができる。
また、上記発明において、前記第1のセクタのアドレスと前記データから更新された更新後のデータとを保持し、読み出しをおこなうセクタのアドレスが前記保持手段に保持されている前記第1のセクタのアドレスと一致するか否かを判定し、判定された判定結果に基づいて、前記データの読み出しをおこなうこととしてもよい。
この発明によれば、読み出しをおこなうセクタのアドレスに応じて、データ転送とデータ更新を簡単かつ自動的に切り替えることができる。
また、上記発明において、一致すると判定された場合、保持されている更新後のデータを読み出し、読み出された更新後のデータを前記第2のセクタに書き込むこととしてもよい。
この発明によれば、更新前のデータをフラッシュメモリから読み出すことなく、更新後のデータを読み出すことができる。
本発明にかかるデータ転送装置およびデータ転送方法によれば、CPUの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送を実現することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるデータ転送装置およびデータ転送方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
(データ転送装置の機能的構成)
まず、この発明の実施の形態1にかかるデータ転送装置の機能的構成について説明する。図1は、この発明の実施の形態1にかかるデータ転送装置の機能的構成を示すブロック図である。
(データ転送装置の機能的構成)
まず、この発明の実施の形態1にかかるデータ転送装置の機能的構成について説明する。図1は、この発明の実施の形態1にかかるデータ転送装置の機能的構成を示すブロック図である。
データ転送装置100は、フラッシュメモリ110に対してデータの転送をおこなう。フラッシュメモリ110は、電気的に内容を書き換えることができ電源を落としてもデータが失われない不揮発性メモリであり、セクタ単位で消去/書き込みができるようになっている。なお、フラッシュメモリ110は、後述する制御部103により、データが読出し可能な読出しモードとデータを書き込み可能な書込みモードに切り替えられる。なお、フラッシュメモリ110は、データ転送装置100に内蔵されていてもよく、外部に設けられていてもよい。また、データ転送装置100に対し着脱自在に構成することとしてもよい。
また、図1において、データ転送装置100は、読出し部101と書込み部102と制御部103とから構成されている。読出し部101は、フラッシュメモリ110内の第1のセクタ111に記憶されているデータを読み出す。具体的には、フラッシュメモリ110の読出しモード時において、第1のセクタ111内の任意のアドレスが指定されると、当該アドレスに記憶されているデータを読み出す。
また、書込み部102は、読出し部101によって読み出されたデータを、フラッシュメモリ110内における第1のセクタ111とは異なる第2のセクタ112に書き込む。具体的には、フラッシュメモリ110が読出しモードから書込みモードに切り替わると、読み出されたデータをフラッシュメモリ110内における第2のセクタ112に書き込む。これにより、第1のセクタ111に記憶されていたデータを、第2のセクタ112に転送することができる。
また、制御部103は、フラッシュメモリ110の読出しモードと書込みモードとの切り替えを制御する。具体的には、読出しモード時において読出し部101によるデータの第1のセクタ111からの読み出しが完了した場合、フラッシュメモリ110を読出しモードから書込みモードに切り替える。
さらに、書込みモード時において書込み部102によるデータの第2のセクタ112への書き込みが完了した場合、フラッシュメモリ110を書込みモードから読出しモードに切り替える。この場合、読出し部101は、書込み部102によるデータの第2のセクタ112への書き込みが完了した場合、第1のセクタ111に記憶されている他のデータを読み出すこととなる。
(データ転送装置100のハードウェア構成)
つぎに、この発明の実施の形態1にかかるデータ転送装置100のハードウェア構成について説明する。図2は、この発明の実施の形態1にかかるデータ転送装置100のハードウェア構成を示すブロック図である。図2において、データ転送装置100は、CPU200とともにバス220に接続されている。また、フラッシュメモリ110は、セクタごとにデータの消去や書き換えの単位となるセクタを複数有しているが、図2では、便宜上、2つのセクタ(転送元となる第1のセクタ111と、転送先となる第2のセクタ112)を用いて説明する。
つぎに、この発明の実施の形態1にかかるデータ転送装置100のハードウェア構成について説明する。図2は、この発明の実施の形態1にかかるデータ転送装置100のハードウェア構成を示すブロック図である。図2において、データ転送装置100は、CPU200とともにバス220に接続されている。また、フラッシュメモリ110は、セクタごとにデータの消去や書き換えの単位となるセクタを複数有しているが、図2では、便宜上、2つのセクタ(転送元となる第1のセクタ111と、転送先となる第2のセクタ112)を用いて説明する。
また、フラッシュメモリ110は、データ転送装置100からライトイネーブル信号WEを受けることで、読出しモードと書込みモードが切り替えられ、また、書込みモード時においてデータの書込みが完了すると、データ転送装置100に対しレディ信号RDYを送信する。
シーケンサ201は、データ転送装置100を統括制御する。具体的には、シーケンサ201は、フラッシュメモリ110に対するデータの読み出し(リード)制御、書き込み(ライト)制御、コマンドジェネレータ204に対するコマンド制御、フラッシュメモリ110に対するライトイネーブル信号WEの送信、CPU200に対する割り込み要求信号IRの送信をおこなう。
たとえば、シーケンサ201は、フラッシュメモリ110からレディ信号RDYを受信すると、フラッシュメモリ110に対し、読出し処理を示すライトイネーブル信号WE(WE=0)を送信することで、フラッシュメモリ110を読出しモードに切り替える。また、シーケンサ201は、データの読出しが完了した場合、フラッシュメモリ110に対し、書込み処理を示すライトイネーブル信号WE(WE=1)を送信することで、フラッシュメモリ110を書込みモードに切り替える。
また、シーケンサ201は、ライトイネーブル信号WE(WE=1)を送信した場合、コマンドジェネレータ204に対し、書込みコマンドの発行指示をおこなう。また、シーケンサ201は、全データの転送が完了した場合、CPU200に対し、転送終了を示す割り込み要求信号IRを送信する。
また、設定レジスタ202には、転送元となるデータが記憶されている第1のセクタ111における転送元のアドレスと、転送先となる第2のセクタ112内における転送先のアドレスと、が保持されている。具体的には、たとえば、CPU200またはシーケンサ201により、転送元のアドレスと転送先のアドレスが設定される。
また、データレジスタ203は、シーケンサ201の読出し処理において、フラッシュメモリ110から読み出されたデータを一時的に保持しておく。そして、保持されたデータは、シーケンサ201の書込み処理において転送先となる第2のセクタ112に転送される。
また、コマンドジェネレータ204は、シーケンサ201から書込みコマンドの発行指示があった場合、書込みコマンドを発行して、フラッシュメモリ110に転送する。書込みコマンドには、たとえば、設定レジスタ202で設定された転送先のアドレスが含まれる。この書込みコマンドにより、転送先となる第2のセクタ112のアドレスが指定されることとなる。また、フラッシュメモリインターフェース205は、フラッシュメモリ110とデータレジスタ203間のデータを転送する。
なお、図1に示した読出し部101、書込み部102および制御部103は、図2に示したシーケンサ201、設定レジスタ202、データレジスタ203、コマンドジェネレータ204、フラッシュメモリインターフェース205により実現することができる。
(データ転送装置100のデータ転送処理)
つぎに、この発明の実施の形態1にかかるデータ転送装置100のデータ転送処理について説明する。図3は、この発明の実施の形態1にかかるデータ転送装置100のデータ転送処理手順を示すフローチャートである。図3において、あらかじめ、設定レジスタ202に、転送元となるデータが記憶されている第1のセクタ111における転送元のアドレスと、転送先となる第2のセクタ112内における転送先のアドレスと、を設定しておく(ステップS301)。
つぎに、この発明の実施の形態1にかかるデータ転送装置100のデータ転送処理について説明する。図3は、この発明の実施の形態1にかかるデータ転送装置100のデータ転送処理手順を示すフローチャートである。図3において、あらかじめ、設定レジスタ202に、転送元となるデータが記憶されている第1のセクタ111における転送元のアドレスと、転送先となる第2のセクタ112内における転送先のアドレスと、を設定しておく(ステップS301)。
つぎに、ライトイネーブル信号WE(WE=0)をフラッシュメモリ110に送信し、フラッシュメモリ110を読出しモードに切り替える(ステップS302)。つぎに、第1のセクタ111内の転送元のアドレスに記憶されているデータを読み出す(ステップS303)。具体的には、設定レジスタ202に設定されている転送元のアドレスをフラッシュメモリ110に送信することで、当該転送元のアドレスに記憶されているデータを、データレジスタ203に転送する。これにより、転送したいデータを一時的に退避することができる。
このあと、シーケンサ201は、データの読出しが完了すると、ライトイネーブル信号WE(WE=1)を送信して、フラッシュメモリ110を書込みモードに切り替える(ステップS304)。そして、コマンドジェネレータ204に書き込みコマンドの発行指示をおこなうことにより、コマンドジェネレータ204から書込みコマンドを発行する(ステップS305)。この書込みコマンドにより、データが書き込まれる第2のセクタ112内における転送先のアドレスが指定され、データレジスタ203から、データレジスタ203に一時的に退避させたデータを、フラッシュメモリ110の第2のセクタ112の転送先のアドレスに書き込む(ステップS306)。
このあと、シーケンサ201は、フラッシュメモリ110からのレディ信号RDY(RDY=1)を待ち受け(ステップS307:No)、レディ信号RDYを受信してRDY=1となった場合(ステップS307:Yes)、設定レジスタ202に設定されている転送元の全アドレスのデータの転送が終了したか否かを判断する(ステップS308)。
転送元の全アドレスのデータの転送が終了していない場合(ステップS308:No)、ステップS302に戻って、ライトイネーブル信号WE(WE=0)を送信して、フラッシュメモリ110を読出しモードに切り替える。これにより、第1のセクタ111に記憶されている未転送のデータを第2のセクタ112に転送することができる。
一方、転送元の全アドレスのデータの転送が終了した場合(ステップS308:Yes)、ライトイネーブル信号WE(WE=0)を送信して、フラッシュメモリ110を読出しモードに切り替える(ステップS309)。そして、CPU200に対して転送終了の割り込み要求信号IRを送信する(ステップS310)。これにより、一連の処理を終了する。
すなわち、シーケンサ201は、転送されるべきすべてのデータが転送されるまでフラッシュメモリ110からの読出し処理と書込み処理を繰り返し、すべてのデータの転送が終了するとCPU200に対して転送終了割込みを発生する。
この実施の形態1によれば、読み出されたデータをデータ転送装置100のデータレジスタ203に保持しておくことにより、データ転送中におけるフラッシュメモリ110内のデータの消失を防止することができ、安全なデータ転送を実現することができる。
また、フラッシュメモリ110の読出しモードと書込みモードの切り替え制御を、シーケンサ201からのライトイネーブル信号WEにより自動でおこなうことができる。また、フラッシュメモリ110へのデータ書込み時に、書込みコマンドをコマンドジェネレータ204が自動的に発行している。したがって、CPU200を介さずにデータ転送処理を実現できるため、データ転送の効率化を図ることができる。また、CPU200によるバス220の占有が低減されるため、データ転送の高速化を実現することができる。
また、フラッシュメモリ110へのデータ書込み後、レディ信号RDYにより書込み終了を検知することができるため、データポーリングをおこなう必要がなく、データ転送の効率化を図ることができる。
以上のことから、実施の形態1にかかるデータ転送装置100およびデータ転送方法によれば、同一のフラッシュメモリ110の異なるセクタ間で安全かつ効率的にデータを転送することができる。
(実施の形態2)
つぎに、この発明の実施の形態2について説明する。実施の形態1にかかるデータ転送装置100およびデータ転送方法は、同一フラッシュメモリ110内の転送元となる第1のセクタ111から転送先となる第2のセクタ112へのデータ転送をおこなう構成であるが、実施の形態2にかかるデータ転送装置およびデータ転送方法は、第1のセクタ111に記憶されている更新前のデータを更新する場合、更新前のデータを第1のセクタ111に保持したまま、更新後のデータを第2のセクタ112に転送する構成である。なお、実施の形態1において説明した構成と同一構成については同一符号を付し、その説明を省略する。
つぎに、この発明の実施の形態2について説明する。実施の形態1にかかるデータ転送装置100およびデータ転送方法は、同一フラッシュメモリ110内の転送元となる第1のセクタ111から転送先となる第2のセクタ112へのデータ転送をおこなう構成であるが、実施の形態2にかかるデータ転送装置およびデータ転送方法は、第1のセクタ111に記憶されている更新前のデータを更新する場合、更新前のデータを第1のセクタ111に保持したまま、更新後のデータを第2のセクタ112に転送する構成である。なお、実施の形態1において説明した構成と同一構成については同一符号を付し、その説明を省略する。
(データ転送装置の機能的構成)
まず、この発明の実施の形態2にかかるデータ転送装置の機能的構成について説明する。図4は、この発明の実施の形態2にかかるデータ転送装置の機能的構成を示すブロック図である。図4において、データ転送装置400は、実施の形態1で説明した読出し部101、書込み部102、制御部103のほか、保持部104および判定部105を備えている。
まず、この発明の実施の形態2にかかるデータ転送装置の機能的構成について説明する。図4は、この発明の実施の形態2にかかるデータ転送装置の機能的構成を示すブロック図である。図4において、データ転送装置400は、実施の形態1で説明した読出し部101、書込み部102、制御部103のほか、保持部104および判定部105を備えている。
ここで、保持部104は、第1のセクタ111のアドレスと、当該アドレスに記憶されているデータ(更新前のデータ)から更新された更新後のデータと、を保持する。具体的には、読出し部101による読出し開始前に保持しておく。
また、判定部105は、読出し部101が読み出しをおこなうセクタのアドレス(指定アドレス)が保持部104に保持されている第1のセクタ111のアドレスと一致するか否かを判定する。一致しない場合には、フラッシュメモリ110の指定アドレスにより特定されるデータを読み出す。
一方、一致する場合には、保持部104に記憶されているアドレスに対応する更新後のデータを読み出す。この場合、書込み部102は、読出し部101によって読み出された更新後のデータを第2のセクタ112に書き込む。これにより、更新前のデータを第1のセクタ111に記憶させたまま、更新後のデータを第2のセクタ112に転送して、記憶することができる。
(データ転送装置400のハードウェア構成)
つぎに、この発明の実施の形態2にかかるデータ転送装置400のハードウェア構成について説明する。実施の形態2にかかるデータ転送装置400のハードウェア構成は、フラッシュメモリインターフェース205を除いて実施の形態1にかかるデータ転送装置100のハードウェア構成と同一構成である。図5は、フラッシュメモリインターフェース205のハードウェア構成を示すブロック図である。
つぎに、この発明の実施の形態2にかかるデータ転送装置400のハードウェア構成について説明する。実施の形態2にかかるデータ転送装置400のハードウェア構成は、フラッシュメモリインターフェース205を除いて実施の形態1にかかるデータ転送装置100のハードウェア構成と同一構成である。図5は、フラッシュメモリインターフェース205のハードウェア構成を示すブロック図である。
図5において、フラッシュメモリ110の第1のセクタ111では、アドレスA1からアドレスAnまでデータが記憶されているが、更新の対象となる更新前のデータは、図5中、ハッチングで示したアドレスAi〜アドレスAjに記憶されているデータDi〜Djとする。
図5において、フラッシュメモリインターフェース205は、更新用データベース501と、一致回路502と、セレクタ503と、を備えている。更新用データベース501は、更新対象となる更新前のデータDi〜DjのアドレスAi〜Ajと、更新前のデータDi〜Djから更新された更新後のデータRi〜Rjとの組み合わせが、あらかじめCPU200からの処理により保持されている。
また、一致回路502は、データ転送装置400から送信されてくるアドレスAkと、更新用データベース501内に保持されているアドレスAi〜Ajとを比較する論理回路である。また、セレクタ503は、一致回路502からの切替信号により、シーケンサ201と更新用データベース501、またはシーケンサ201とフラッシュメモリ110との接続を切り替える論理回路である。
そして、一致回路502において一致するアドレスAkが更新用データベース501に保持されている場合には、セレクタ503に切替信号を送信して、更新用データベース501とシーケンサ201を接続する。これにより、一致するアドレスAkに対応するデータRkを更新用データベース501からデータレジスタ203に読み出すことができる。
このあと、更新用データベース501から読み出されたデータRkは、設定レジスタ202で設定された転送先となる第2のセクタ112の転送先のアドレスAxに書き込まれる。これにより、第1のセクタ111のアドレスAkに記憶されているデータRkを、第2のセクタ112のアドレスAxに転送することができる。
一方、一致回路502により一致しないと判定された場合、セレクタ503に切替信号を送信して、フラッシュメモリ110とシーケンサ201とを接続する。これにより、フラッシュメモリ110の第1のセクタ111のアドレスAkに記憶されているデータDkをデータレジスタ203に読み出すことができる。
このあと、フラッシュメモリ110から読み出されたデータDkは、設定レジスタ202で設定された転送先となる第2のセクタ112の転送先のアドレスAxに書き込まれる。これにより、第1のセクタ111のアドレスAkに記憶されているデータDkを、第2のセクタ112のアドレスAxに転送することができる。
なお、図4に示した保持部104は、図5に示した更新用データベース501によって実現することができ、図4に示した判定部105は、図5に示した一致回路502およびセレクタ503により実現することができる。
(データ転送装置400のデータ転送処理)
つぎに、この発明の実施の形態2にかかるデータ転送装置400のデータ転送処理について説明する。このデータ処理では、更新前のデータDi〜Dkが記憶されている第1のセクタ111のアドレスAi〜Ajと、データDi〜Dkから更新された更新後のデータRi〜Rjが、CPU200によりあらかじめ更新用データベース501に保持されているものとする。図6は、この発明の実施の形態2にかかるデータ転送装置400のデータ転送処理手順を示すフローチャートである。
つぎに、この発明の実施の形態2にかかるデータ転送装置400のデータ転送処理について説明する。このデータ処理では、更新前のデータDi〜Dkが記憶されている第1のセクタ111のアドレスAi〜Ajと、データDi〜Dkから更新された更新後のデータRi〜Rjが、CPU200によりあらかじめ更新用データベース501に保持されているものとする。図6は、この発明の実施の形態2にかかるデータ転送装置400のデータ転送処理手順を示すフローチャートである。
図6において、あらかじめ、設定レジスタ202に、更新前のデータDi〜Dkが記憶されている第1のセクタ111のアドレスAi〜Ajと、更新後のデータRi〜Rkの転送先となる第2のセクタ112のアドレスAy〜Azと、を設定しておく(ステップS601)。
つぎに、ライトイネーブル信号WE(WE=0)をフラッシュメモリ110に送信し、フラッシュメモリ110を読出しモードに切り替える(ステップS602)。つぎに、データ読出し処理を実行する(ステップS603)。このデータ読出し処理については後述する。
このあと、シーケンサ201は、データの読出しが完了すると、ライトイネーブル信号WE(WE=1)を送信して、フラッシュメモリ110を書込みモードに切り替える(ステップS604)。そして、コマンドジェネレータ204に書き込みコマンドの発行指示をおこなうことにより、コマンドジェネレータ204から書込みコマンドを発行する(ステップS605)。この書込みコマンドにより、データが書き込まれる第2のセクタ112内における転送先のアドレスAxが指定され、データレジスタ203から、データレジスタ203に一時的に退避させたデータを、フラッシュメモリ110の第2のセクタ112の転送先のアドレスAxに書き込む(ステップS606)。
このあと、シーケンサ201は、フラッシュメモリ110からのレディ信号RDY(RDY=1)を待ち受け(ステップS607:No)、レディ信号RDYを受信してRDY=1となった場合(ステップS607:Yes)、設定レジスタ202に設定されている転送元の全アドレスAi〜AjのデータDi〜Djの転送が終了したか否かを判断する(ステップS608)。
転送元の全アドレスAi〜Ajをフラッシュメモリインターフェース205に送信していない場合(ステップS608:No)、ステップS602に戻って、ライトイネーブル信号WE(WE=0)を送信する。一方、転送元の全アドレスAi〜Ajをフラッシュメモリインターフェース205に送信した場合(ステップS608:Yes)、ライトイネーブル信号WE(WE=0)を送信して、フラッシュメモリ110を読出しモードに切り替える(ステップS609)。そして、CPU200に対して転送終了の割り込み要求信号IRを送信する(ステップS610)。これにより、一連の処理を終了する。
すなわち、シーケンサ201は、転送されるべきすべてのデータが転送されるまでフラッシュメモリ110からの読出し処理と書込み処理を繰り返し、すべてのデータの転送が終了するとCPU200に対して転送終了割込みを発生する。
つぎに、図6に示したデータ読出し処理(ステップS603)について説明する。図7は、図6に示したデータ読出し処理手順を示すフローチャートである。図7において、まず、ステップS602(図6を参照)のあと、設定レジスタ202に設定された転送元の全アドレスAi〜Ajから選ばれたアドレスAkを、フラッシュメモリインターフェース205に送信する(ステップS701)。アドレスAkは、フラッシュメモリインターフェース205の一致回路502に入力される。
そして、一致回路502において、更新用データベース501に保持されている更新元となる第1のセクタ111のアドレスAi〜Ajの中に、入力されたアドレスAkと一致するか否かを判定する(ステップS702)。一致するアドレスがあった場合(ステップS702:Yes)、セレクタ503により、更新用データベース501とシーケンサ201とが接続され、更新用データベース501からアドレスAkに対応する更新後のデータRkを読み出して、データレジスタ203に格納する(ステップS703)。
このあと、図6に示したステップS604に移行する。このステップS604以降の処理により、データレジスタ203に格納されたデータRkは、設定レジスタ202に設定された転送先となる第2のセクタ112のアドレスAxに転送される。これにより、更新前のデータDkを消失させることなく、更新前のデータDkと更新後のデータRkとをフラッシュメモリ110に保存することができる。
また、データ更新の際、更新前のデータDkが不要な場合、更新後のデータRkが第2のセクタ112に記憶されるまで、更新前のデータDkが第1のセクタ111に保存されているため、更新時において更新前のデータDkが消失することはない。これにより、安全かつ効率的なデータ更新をおこなうことができる。
一方、一致するアドレスがない場合(ステップS702:No)、データDkは更新されない転送データであることがわかり、セレクタ503により、フラッシュメモリ110とシーケンサ201とが接続され、フラッシュメモリ110の第1のセクタ111のアドレスAkに記憶されているデータDkを読み出して、データレジスタ203に格納する(ステップS704)。
このあと、図6に示したステップS604に移行する。このステップS604以降の処理により、データレジスタ203に格納されたデータDkは、設定レジスタ202に設定された転送先となる第2のセクタ112のアドレスAxに転送される。これにより、データDkを転送が完了するまで消失させることなく、安全に転送することができる。
この実施の形態2によれば、読み出されたデータをデータ転送装置400のデータレジスタ203に保持しておくことにより、データ転送中におけるフラッシュメモリ110内のデータの消失を防止することができ、安全なデータ転送を実現することができる。また、更新後のデータRkが第2のセクタ112に記憶されるまで、更新前のデータDkが第1のセクタ111に保存されているため、安全なデータ更新を実現することができる。
また、フラッシュメモリ110の読出しモードと書込みモードの切り替え制御を、シーケンサ201からのライトイネーブル信号WEにより自動でおこなうことができる。また、フラッシュメモリ110へのデータ書込み時に、書込みコマンドをコマンドジェネレータ204が自動的に発行している。したがって、CPU200を介さずにデータ転送・更新処理を実現できるため、データ転送・更新の効率化を図ることができる。また、CPU200によるバス220の占有が低減されるため、データ転送・更新の高速化を実現することができる。
また、更新用データベース501、一致回路502およびセレクタ503からなるROMコレクション機能を用いることにより、他のセクタへの同一データのデータ転送処理と、他のセクタへのデータ更新処理とを、アドレスに応じて簡単に切り替えることができるため、CPU200に対する負荷の軽減を図ることができる。
このように、実施の形態2によれば、同一フラッシュメモリ110内における異なるセクタ間のデータ転送およびデータ更新を安全かつ効率的におこなうことができる。
以上のことから、この発明にかかるデータ転送装置およびデータ転送方法によれば、CPUの負荷軽減および転送プログラムの複雑化の防止を図ることにより、安全かつ効率的なデータ転送やデータ更新を実現することができる。
以上のように、本発明にかかるデータ転送装置およびデータ転送方法は、セキュリティ性が要求されるデータの転送・更新に有用であり、たとえば、電子マネーや個人認証に関するデータが格納されているICカードや携帯端末に適している。
100,400 データ転送装置
101 読出し部
102 書込み部
103 制御部
104 保持部
105 判定部
110 フラッシュメモリ
111 第1のセクタ
112 第2のセクタ
201 シーケンサ
202 設定レジスタ
203 データレジスタ
204 コマンドジェネレータ
205 フラッシュメモリインターフェース
200 CPU
220 バス
501 更新用データベース
502 一致回路
503 セレクタ
A1,Ai,Aj,Ak,An,Ax,Ay,Az アドレス
Di,Dj,Dk 更新前のデータ
IR 割り込み要求信号
RDY レディ信号
Ri,Rj,Rk 更新後のデータ
WE ライトイネーブル信号
101 読出し部
102 書込み部
103 制御部
104 保持部
105 判定部
110 フラッシュメモリ
111 第1のセクタ
112 第2のセクタ
201 シーケンサ
202 設定レジスタ
203 データレジスタ
204 コマンドジェネレータ
205 フラッシュメモリインターフェース
200 CPU
220 バス
501 更新用データベース
502 一致回路
503 セレクタ
A1,Ai,Aj,Ak,An,Ax,Ay,Az アドレス
Di,Dj,Dk 更新前のデータ
IR 割り込み要求信号
RDY レディ信号
Ri,Rj,Rk 更新後のデータ
WE ライトイネーブル信号
Claims (9)
- フラッシュメモリ内の第1のセクタに記憶されているデータを読み出す読出し手段と、
前記読出し手段によって読み出されたデータを、前記フラッシュメモリ内における前記第1のセクタとは異なる第2のセクタに書き込む書込み手段と、
を備えることを特徴とするデータ転送装置。 - 前記フラッシュメモリの読出しモードと書込みモードとの切り替えを制御する制御手段を備え、
前記読出しモード時において前記読出し手段による前記データの前記第1のセクタからの読み出しが完了した場合、前記フラッシュメモリを前記読出しモードから前記書込みモードに切り替え、
前記書込みモード時において前記書込み手段による前記データの前記第2のセクタへの書き込みが完了した場合、前記フラッシュメモリを前記書込みモードから前記読出しモードに切り替えることを特徴とする請求項1に記載のデータ転送装置。 - 前記読出し手段は、
前記書込み手段による前記データの前記第2のセクタへの書き込みが完了した場合、前記第1のセクタに記憶されている他のデータを読み出すことを特徴とする請求項1または2に記載のデータ転送装置。 - 前記第1のセクタのアドレスと前記データから更新された更新後のデータとを保持する保持手段と、
前記読出し手段が読み出しをおこなうセクタのアドレスが前記保持手段に保持されている前記第1のセクタのアドレスと一致するか否かを判定する判定手段と、を備え、
前記読出し手段は、
前記判定手段によって判定された判定結果に基づいて、前記データの読み出しをおこなうことを特徴とする請求項1〜3のいずれか一つに記載のデータ転送装置。 - 前記読出し手段は、
前記判定手段によって一致すると判定された場合、前記保持手段に保持されている更新後のデータを読み出し、
前記書込み手段は、
前記読出し手段によって読み出された更新後のデータを前記第2のセクタに書き込むことを特徴とする請求項4に記載のデータ転送装置。 - フラッシュメモリ内の第1のセクタに記憶されているデータを更新する際、前記フラッシュメモリ外から前記データの更新後のデータを読み出す読出し手段と、
前記読出し手段によって読み出された更新後のデータを、前記フラッシュメモリ内における前記第1のセクタとは異なる第2のセクタに書き込む書込み手段と、
を備えることを特徴とするデータ転送装置。 - フラッシュメモリに対してデータ転送をおこなうデータ転送装置によるデータ転送方法であって、
前記フラッシュメモリ内の第1のセクタに記憶されているデータを読み出す読出し工程と、
前記フラッシュメモリ内における前記第1のセクタとは異なる第2のセクタに、前記読出し工程によって読み出されたデータを書き込む書込み工程と、
を含んだことを特徴とするデータ転送方法。 - 前記読出し工程による前記データの読み出しが完了した場合、前記フラッシュメモリを読出しモードから書込みモードに切り替える書込みモード切替工程を含み、
前記書込み工程は、
前記書込みモード切替工程によって前記書込みモードに切り替えられた場合、前記第2のセクタに前記データを書き込むことを特徴とする請求項7に記載のデータ転送方法。 - 前記フラッシュメモリに対してデータ転送をおこなうデータ転送装置によるデータ転送方法であって、
フラッシュメモリ内の第1のセクタに記憶されているデータを更新する際、前記フラッシュメモリ外から前記データの更新後のデータを読み出す読出し工程と、
前記読出し工程によって読み出された更新後のデータを、前記フラッシュメモリ内における前記第1のセクタとは異なる第2のセクタに書き込む書込み工程と、
を含んだことを特徴とするデータ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005238728A JP2007052717A (ja) | 2005-08-19 | 2005-08-19 | データ転送装置およびデータ転送方法 |
US11/281,493 US20070043899A1 (en) | 2005-08-19 | 2005-11-18 | Data transfer device and data transfer method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005238728A JP2007052717A (ja) | 2005-08-19 | 2005-08-19 | データ転送装置およびデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007052717A true JP2007052717A (ja) | 2007-03-01 |
Family
ID=37768481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005238728A Withdrawn JP2007052717A (ja) | 2005-08-19 | 2005-08-19 | データ転送装置およびデータ転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070043899A1 (ja) |
JP (1) | JP2007052717A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010170328A (ja) * | 2009-01-22 | 2010-08-05 | Hitachi Ltd | メモリ装置および計算機 |
JP2018022497A (ja) * | 2012-01-26 | 2018-02-08 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 |
US11182079B2 (en) | 2008-02-28 | 2021-11-23 | Memory Technologies Llc | Extended utilization area for a memory device |
US11226771B2 (en) | 2012-04-20 | 2022-01-18 | Memory Technologies Llc | Managing operational state data in memory module |
US11733869B2 (en) | 2009-06-04 | 2023-08-22 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2618328T3 (es) * | 2010-02-01 | 2017-06-21 | Israel Hershler | Dispositivo de memoria USB |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170031B1 (en) * | 1997-07-08 | 2001-01-02 | Seagate Technology Llc | Read/write state machines for transferring data to/from host interface in a digital data storage system |
JP3727485B2 (ja) * | 1999-04-02 | 2005-12-14 | シャープ株式会社 | 不揮発性メモリ内蔵マイクロコンピュータ |
US6809964B2 (en) * | 2001-08-30 | 2004-10-26 | Micron Technology, Inc. | Nonvolatile semiconductor memory device capable of transferring data internally without using an external bus |
WO2003085677A1 (fr) * | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7350044B2 (en) * | 2004-01-30 | 2008-03-25 | Micron Technology, Inc. | Data move method and apparatus |
-
2005
- 2005-08-19 JP JP2005238728A patent/JP2007052717A/ja not_active Withdrawn
- 2005-11-18 US US11/281,493 patent/US20070043899A1/en not_active Abandoned
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11494080B2 (en) | 2008-02-28 | 2022-11-08 | Memory Technologies Llc | Extended utilization area for a memory device |
US11907538B2 (en) | 2008-02-28 | 2024-02-20 | Memory Technologies Llc | Extended utilization area for a memory device |
US11829601B2 (en) | 2008-02-28 | 2023-11-28 | Memory Technologies Llc | Extended utilization area for a memory device |
US11182079B2 (en) | 2008-02-28 | 2021-11-23 | Memory Technologies Llc | Extended utilization area for a memory device |
US11550476B2 (en) | 2008-02-28 | 2023-01-10 | Memory Technologies Llc | Extended utilization area for a memory device |
JP2010170328A (ja) * | 2009-01-22 | 2010-08-05 | Hitachi Ltd | メモリ装置および計算機 |
US11775173B2 (en) | 2009-06-04 | 2023-10-03 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
US11733869B2 (en) | 2009-06-04 | 2023-08-22 | Memory Technologies Llc | Apparatus and method to share host system RAM with mass storage memory RAM |
KR102317152B1 (ko) * | 2012-01-26 | 2021-10-27 | 메모리 테크놀로지즈 엘엘씨 | 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 |
KR102458334B1 (ko) | 2012-01-26 | 2022-10-24 | 메모리 테크놀로지즈 엘엘씨 | 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 |
KR20210130829A (ko) * | 2012-01-26 | 2021-11-01 | 메모리 테크놀로지즈 엘엘씨 | 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 |
US10877665B2 (en) | 2012-01-26 | 2020-12-29 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US11797180B2 (en) | 2012-01-26 | 2023-10-24 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
KR20200079558A (ko) * | 2012-01-26 | 2020-07-03 | 메모리 테크놀로지즈 엘엘씨 | 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 |
JP2018022497A (ja) * | 2012-01-26 | 2018-02-08 | メモリー テクノロジーズ リミティド ライアビリティ カンパニー | 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法 |
US11226771B2 (en) | 2012-04-20 | 2022-01-18 | Memory Technologies Llc | Managing operational state data in memory module |
US11782647B2 (en) | 2012-04-20 | 2023-10-10 | Memory Technologies Llc | Managing operational state data in memory module |
Also Published As
Publication number | Publication date |
---|---|
US20070043899A1 (en) | 2007-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3898305B2 (ja) | 半導体記憶装置、半導体記憶装置の制御装置及び制御方法 | |
US7266640B2 (en) | Memory card authentication system, capacity switching-type memory card host device, capacity switching-type memory card, storage capacity setting method, and storage capacity setting program | |
US20060208097A1 (en) | Electronic apparatus, unit drive, and interface controlling method of the unit drive | |
US20100122017A1 (en) | Memory controller, non-volatile memory system, and host device | |
JP2007052717A (ja) | データ転送装置およびデータ転送方法 | |
JPS63223901A (ja) | 車載制御装置 | |
JP2000105725A (ja) | チップイネーブル信号生成回路及びメモリ装置 | |
KR20080078977A (ko) | Mmc 또는 sd 프로토콜을 사용하는 다수의 메모리장치들을 인터페이스하는 방법 및 시스템 | |
KR20020036717A (ko) | 마이크로컴퓨터 및 그 제어 방법 | |
JP5010065B2 (ja) | マイクロコンピュータ | |
CN100517377C (zh) | 多功能ic卡及其控制方法 | |
JP2007114943A (ja) | ファームウェア更新方法及び情報処理装置 | |
JP2007334813A (ja) | メモリ制御回路及びデータ書き換え方法 | |
CN210052151U (zh) | 一种双芯片程序更新装置 | |
JP4793798B2 (ja) | マイクロコンピュータ | |
US20050138236A1 (en) | Direct memory access control device and method for automatically updating data transmisson size from peripheral | |
JP2003521033A (ja) | マイクロプロセッサシステムを動作する方法および対応するマイクロプロセッサシステム | |
JP4478298B2 (ja) | データ転送システム | |
JP2000099452A (ja) | Dma制御装置 | |
KR100615694B1 (ko) | 복수개의 기능블럭을 제어하는 제어시스템 | |
KR20100063219A (ko) | 시스템 온 칩에서 비트 단위의 데이터 쓰기 방법 및 장치 | |
JP2007087086A (ja) | Dma転送システム | |
JP2005301714A (ja) | マルチcpuシステム、そのデータ転送方法、及びそのプログラム | |
JP2008033657A (ja) | メモリ制御装置および情報処理装置並びにメモリ制御方法 | |
JP2009271623A (ja) | 半導体記憶装置及びコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081104 |