(57)【特許請求の範囲】
【請求項１】
データ書換時に消去動作が必要な書換可能不揮発性メモリと、前記書換可能不揮発性メモリにデータを書き込む前に一時的に２データブロック分の書込データを記憶するデータ格納手段を有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置において、
前記書換可能不揮発性メモリは、データブロック単位でメモリブロックへのデータの消去と書込みがなされ、メモリブロック単位のデータ消去処理に要する時間がメモリブロック単位のデータ書込処理に要する時間より長い時間を必要とする書換可能不揮発性メモリであり、
連続した複数のデータブロックを書き換えるときに、
（１）前記データ格納手段に最初の２データブロック分のデータが転送されると、全ての書換可能不揮発性メモリの最初のメモリブロックのデータ消去処理を実行し、
（２）最初の二つの書換可能不揮発性メモリのデータ消去処理が終了すると前記データ格納手段から二つの書換可能不揮発性メモリのデータ消去されたメモリブロックへ二つのデータブロックをそれぞれ転送した後データ書込処理を実行し、
（３）前記各書換可能不揮発性メモリのメモリブロックへデータ書込処理が正常に終了したのを確認した後当該書換可能不揮発性メモリの次ぎのメモリブロックの消去処理を開始し、
（４）前記メモリブロックへの２データブロック分の書込処理が正常に終了したのを確認すると前記データ格納手段に次ぎの２データブロック分のデータを転送し、
（５）前記データ格納手段に転送された２データブロック分のデータを次ぎの二つの書換可能不揮発性メモリのメモリブロックにそれぞれ転送した後データ書込処理を実行し、
（６）以下、前記（３）〜（５）の処理を繰り返す
ことを特徴とする記憶装置。
【請求項２】
データ書換時に消去動作が必要な書換可能不揮発性メモリと、前記書換可能不揮発性メモリにデータを書き込む前に一時的に２データブロック分の書込データを記憶するデータ格納手段を有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置において、
前記書換可能不揮発性メモリは、データブロック単位でメモリブロックへのデータの消去と書込みがなされ、メモリブロック単位のデータ消去処理に要する時間がメモリブロック単位のデータ書込処理に要する時間より長い時間を必要とする書換可能不揮発性メモリであり、
連続した複数のデータブロックの書換時に、前記データ格納手段に格納された２データブロック分のデータを前記書換可能不揮発性メモリに転送することにより、あるメモリブロックの書込動作を実行し、メモリブロックへの１データブロック分のデータの書込みが正常に終了すると、当該書換可能不揮発性メモリの次に書換えを行うメモリブロックの消去を実行するデータ書換制御手段と
を備えたことを特徴とする記憶装置。
【請求項３】
請求項２に記載された記憶装置において、書込みを行ったメモリブロックが不良であり、書込みが正常に終了しなかった場合には、データ格納手段の格納データを別のブロックへ転送して書込処理を実行することを特徴とする記憶装置。
【請求項４】
データ書換時に消去動作が必要な書換可能不揮発性メモリと、前記書換可能不揮発性メモリにデータを書き込む前に一時的に書込データの２データブロック分を記憶するデータ格納手段を有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置において、
前記書換可能不揮発性メモリは、データブロック単位でメモリブロックへのデータの消去と書込みがなされ、メモリブロック単位のデータ消去処理に要する時間がメモリブロック単位のデータ書込処理に要する時間より長い時間を必要とする書換可能不揮発性メモリであり、
書換可能不揮発性メモリの特定のチップの特定のメモリブロックを消去する書換可能不揮発性メモリ消去手段と、
前記データ格納手段に格納されたデータを書換可能不揮発性メモリの特定のチップの特定のメモリブロックに転送して書込みを行うデータ書込手段と、
前記メモリ記消去手段と前記データ書込手段を制御して１以上のメモリブロックのデータを書換可能不揮発性メモリに格納する書換制御手段とを有し、
連続した複数のデータブロックで前記メモリブロックを書き換えるときに、前記書換制御手段が、
（１）最初に書換えを行う２データブロック分のデータをデータ格納手段に格納すると同時に、書換えを行う対象となる全ての書換可能不揮発性メモリのメモリブロックの内容を消去する制御
（２）消去が完了した最初の二つの書換可能不揮発性メモリのメモリブロックにデータ格納手段に格納された最初の２データブロック分のデータを順次転送した後それぞれ書込処理を行い、書込処理が正常に終了したときに当該書換可能不揮発性メモリの書込処理が終了したメモリブロックの次ぎのメモリブロックの消去を行う制御
（３）前記書込みが正常に終了したら次に書き込む２データブロック分のデータをデータ格納手段に格納する制御
（４）次ぎの二つの書換可能不揮発性メモリのメモリブロックにデータ格納手段に格納された次ぎの２データブロック分のデータを順次転送した後それぞれ書込処理を行い、書込処理が正常に終了したときに当該書換可能不揮発性メモリの書込処理が終了したメモリブロックの次ぎのメモリブロックの消去を行う制御
（５）前記（３）および（４）の制御を繰り返す制御
を実行することを特徴とする記憶装置。
【請求項５】
データ書換時に消去動作が必要な書換可能不揮発性メモリと、書換可能不揮発性メモリにデータを書き込む前に一時的に２データブロック分の書込データを記憶するデータ格納手段を有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置であって、前記書換可能不揮発性メモリは、データブロック単位でメモリブロックへのデータの消去と書込みがなされ、メモリブロック単位のデータ消去処理に要する時間がメモリブロック単位のデータ書込処理に要する時間より長い時間を必要とする書換可能不揮発性メモリである記憶装置のデータ書換方法において、
連続した複数のデータブロックを書き換えるときに、
（１）２データブロック分の書込データがデータ格納手段に転送されると全ての書換可能不揮発性メモリの最初のメモリブロックのデータ消去処理を実行し、
（２）メモリブロックのデータ消去処理が終了すると、転送された２データブロック分の書込データを最初の二つの書換可能不揮発性メモリの最初のメモリブロックへ転送した後書込処理を実行し、
（３）書込処理が正常に終了すると、当該書換可能不揮発性メモリの次ぎのメモリブロックのデータ消去処理を実行するとともに、次ぎの２データブロック分の書込データを前記データ格納手段へ転送し、
（４）転送された次ぎの２データブロック分の書込データを二つの書換可能不揮発性メモリの最初のメモリブロックへ転送した後書込処理を実行し、
（５）前記（３）および（４）の処理を繰り返す
ことを特徴とする記憶装置のデータ書換方法。
【請求項６】
請求項５に記載された記憶装置のデータ書換方法において、書込みを行ったメモリブロックが不良であり、書込みが正常に終了しなかった場合に、データ格納手段の格納データを別のブロックへ転送して書込処理を実行することを特徴とする記憶装置のデータ書換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、格納データの書換時に消去動作を必要とする書換可能な不揮発性メモリを有する記憶装置およびそのデータ書換方法に係り、特に、記憶装置へのデータ書換速度の向上を実現する記憶装置およびそのデータ書換方法に関する。
【０００２】
【従来の技術】
記憶内容を電気的に書き換えること可能でかつ電源を切っても記憶内容が消滅しない電気的書換可能不揮発性メモリは、主に情報処理装置の記憶装置として広く利用されている。
書換可能不揮発性メモリの中には、一旦データを消去してから新たなデータを書き込む処理を行うことによって、データの書換えを行うものがある。このような手順でデータの書換えを行う場合、データの消去とデータの書込みの２段階の動作が必要であり、完全に書換えが終了するまでに多くの時間がかかるという問題がある。
【０００３】
このような問題を解決するため、従来より様々な技術が提案されている。
例えば、特開平５−２７９２４号公報に開示された技術では、書換可能不揮発性メモリにデータを書き込む前に一時的にデータを記憶するバッファメモリを設けることにより見かけの書換速度を向上している。
【０００４】
【発明が解決しようとする課題】
上記従来技術のように一時的にデータを記憶するバッファメモリを備えることにより書換速度を向上させる場合、一度に複数の書換可能不揮発性メモリチップに書換えを行うことが可能となる。つまり、一時的にバッファメモリに記憶したデータを複数のチップに送り込み、同時に書込処理を実行することによって、理論的には書込みに費やす時間をチップ数分の１に短縮することができる。
【０００５】
しかし、多くの書換可能不揮発性メモリを並列に動作させバッファメモリに記憶したデータを複数のメモリチップに同時に書き込むには、その分多くのバッファメモリが必要となる。なぜなら、メモリチップに書き込んだデータは書込みが正常に終了するまでバッファメモリに残しておかないと、万が一書込みが失敗した場合、書込データが失われてしまうこととなる。このような書込データの消失を無くすためには、結局書込処理を行っているチップ数分のバッファメモリが必要になる。
【０００６】
以上の手法によれば、メモリチップへの書込時間を短縮するためには、バッファメモリの増加に伴い、装置のコストが上昇したり、装置の大きさや重量の増大、消費電力の増加などの様々な弊害が生まれる。
【０００７】
このような問題点に鑑み、本発明の目的は、上記弊害がないよう、バッファメモリを増加させることなく、メモリチップの特性に合わせた高効率の書換処理を行うことによって、書換時間の短縮を図ることにある。
【０００８】
【課題を解決するための手段】
本発明は、上記目的を達成するために、データ書換時に消去動作が必要な書換可能不揮発性メモリを有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置において、連続した複数のデータブロックを書き換えるときに、あるメモリブロックへの書込動作と並行して、次に書換えを行う他のメモリブロックの消去動作を実行するようにした。
【０００９】
本発明は、データ書換時に消去動作が必要な書換可能不揮発性メモリを有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置において、前記書換可能不揮発性メモリにデータを書き込む前に一時的に書込データを記憶するデータ格納手段と、連続した複数ブロックの書換時に、前記データ格納手段に格納されたデータの一部または全てを前記書換可能不揮発性メモリに転送することにより、あるブロックの書込動作を実行し、それと並行して、次に書換えを行う他のブロックの消去を実行するデータ書換制御手段とを備えた。
【００１０】
さらに、本発明は、上記記憶装置において、書込みを行ったメモリブロックが不良であり、書込みが正常に終了しなかった場合には、データ格納手段の格納データを別のブロックへ転送して書込処理を実行するようにした。
【００１１】
本発明は、データ書換時に消去動作が必要な書換可能不揮発性メモリを有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置において、前記書換可能不揮発性メモリにデータを書き込む前に一時的に書込データを記憶するデータ格納手段と、書換可能不揮発性メモリの特定のチップの特定のメモリブロックを消去する書換可能不揮発性メモリ消去手段と、前記データ格納手段に格納されたデータを書換可能不揮発性メモリの特定のチップの特定のメモリブロックに転送して書込みを行うデータ書込手段と、前記メモリ記消去手段と前記データ書込手段を制御して１以上のメモリブロックのデータを書換可能不揮発性メモリに格納する書換制御手段とを有し、連続した複数のデータブロックで前記メモリブロックを書き換えるときに、前記書換制御手段が、
（１）書換えを行うデータをデータ格納手段に格納すると同時に、書換えを行う対象となる書換可能不揮発性メモリのメモリブロックの内容を消去する制御
（２）消去が完了した書換可能不揮発性メモリのメモリブロックにデータ格納手段に格納されたデータを転送して書込みを行うと同時に、書込みを行っていない別のチップ内の次に書換えを行う対象となるメモリブロックの消去を行う制御
（３）書込みが正常に終了したら次に書き込むデータをデータ格納手段に格納する制御
（４）以下、連続した複数のメモリブロックの書換えが全て終了するまで前記（２）および（３）の処理を繰り返し実行する制御
を実行するようにした。
【００１２】
また、上記課題を解決するために、本発明は、データ書換時に消去動作が必要な書換可能不揮発性メモリを有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置のデータ書換方法において、連続した複数のデータブロックを書き換えるときに、あるメモリブロックへの書込動作と並行して、次に書換えを行う他のメモリブロックの消去動作を実行する。
【００１３】
本発明は、データ書換時に消去動作が必要な書換可能不揮発性メモリと、データ格納手段と、データ書換制御手段を有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置のデータ書換方法において、前記書換可能不揮発性メモリにデータを書き込む前にデータ格納手段に一時的に書込データを記憶し、連続した複数ブロックの書換時に、データ格納手段に格納されたデータの一部または全てを前記書換可能不揮発性メモリに転送して、あるメモリブロックの書込動作を実行するとともに、この書込動作と並行して、次に書換えを行う他のブロックの消去を実行する。
【００１４】
本発明は、上記記憶装置のデータ書換方法において、書込みを行ったメモリブロックが不良であり、書込みが正常に終了しなかった場合に、データ格納手段の格納データを別のブロックへ転送して書込処理を実行する。
【００１５】
本発明は、データ書き換え時に消去動作が必要な書換可能不揮発性メモリと、データ格納手段と、書換可能不揮発性メモリ消去手段と、データ書込手段と、書換制御手段とを有し、前記書換可能不揮発性メモリに格納されたデータを書き換える処理をブロック単位で扱う記憶装置のデータ書換方法において、前記書換可能不揮発性メモリにデータを書き込む前に前記データ格納手段に一時的に書込データを記憶し、書換えを行うデータを前記データ格納手段に格納すると同時に、書換えを行う対象となる書換可能不揮発性メモリのメモリブロックを消去し、消去が完了した書換可能不揮発性メモリのメモリブロックに前記データ格納手段に格納されたデータを転送して書込みを行うと同時に、書込みを行っていない別のチップ内の次に書換えを行う対象となるメモリブロックの内容を消去し、書込みが正常に終了したら次に書き込むデータを前記データ格納手段に格納する。
【００１６】
【発明の実施の形態】
以下、本発明にかかる記憶装置の実施形態を図面を参照して説明する。
図１に、本発明を実現する記憶装置の一構成例を示す。図中、書換可能な不揮発性メモリを有する記憶装置１は、記憶装置１の各部及びホストシステムとのインターフェイスを制御する制御手段１０と、複数の書換可能不揮発性メモリ３０と、一時的にデータを格納するバッファメモリ２０とを有して構成され、システムバス２を介して図示を省略したホストシステムに接続されている。
さらに制御手段１０は、書換制御手段１１と、不揮発性メモリ消去手段１２と、データ書込手段１３とを有して構成される。
【００１７】
制御手段１０は、記憶装置１の各部およびホストシステムとのインターフェイスを制御する。
バッファメモリ２０は、ホストシステムが書換可能不揮発性メモリ３０に対する書換えをはじめとする、ホストシステムと書換可能不揮発性メモリとの間のデータのやりとりや、書換可能不揮発性メモリ３０の格納データを移動したりする際に、一時的にデータを格納するデータ格納手段として働く。
書換可能不揮発性メモリ３０は、例えば、電気的に書換可能なＲＯＭからなる書換可能な不揮発性メモリを用いて構成される。
システムバス２は、図示を省略したホストシステムとデータや制御信号をやりとりする際に使用する。
【００１８】
書換御手段１１は、書換可能不揮発性メモリ消去手段１２とデータ書込手段１３を制御して１以上のブロックのデータを書換可能不揮発性メモリ３０に格納する書換制御機能を達成する。
書換可能不揮発性メモリ消去手段１２は、書換可能不揮発性メモリ３０の特定のチップの特定のメモリブロックを消去する書換可能不揮発性メモリ消去機能を達成する。
データ書込手段１３は、バッファメモリ２０に格納されたデータを書換可能不揮発性メモリ３０の特定のチップの特定のメモリブロックに転送して書込みを行うデータ書込機能を達成する。
【００１９】
システムバス２は、ホストシステム側に布設されている。ホストシステムがシステムバス２を通してデータのアクセス要求を記憶装置１に送ると、これを受けた記憶装置１内の制御手段１０は、アクセス要求の内容と対応するデータが格納されている書換可能不揮発性メモリ３０上の物理的な位置（メモリブロック）を割り出し、バッファメモリ２０を適宜利用してホストのアクセス要求に応えていく。
【００２０】
図２を用いて、図１に示した記憶装置１内において、書換可能不揮発性メモリ３０に書き込まれるデータの経路を特に取り出して説明する。
それぞれの書換可能不揮発性メモリ内のメモリブロックに格納されたデータを書換える際には、一群のデータの単位で一度に書換えを行う。以下、この書換単位毎に書き換えられる書換可能不揮発性メモリ内の記憶領域の単位をメモリブロックと呼ぶ。
書換可能不揮発性メモリ３０は、複数の書換可能不揮発性メモリ３１，３２から構成される。それぞれの書換可能不揮発性メモリ３１，３２には、複数のメモリブロック３１０，３１１〜、３２０，３２１〜がそれぞれ順序よく配列される。
【００２１】
バッファメモリ２０は、図１に示したバッファメモリ２０と同一のものであるが、ここでは特にデータ転送に用いるデータバッファとして機能する転送バッファメモリとする。
転送バッファメモリ２０と書換可能不揮発性メモリ３１，３２とは、データバス１４を介して結ばれている。このデータバス１４を通して、バッファメモリ２０から書換可能不揮発性メモリ３１，３２へデータの転送を行う。
システムバス２は、制御手段１０を通したシステムのデータバスとしても働き、記憶装置１のローカルバスといえる。
【００２２】
なお、図２では、制御手段１０が２つの書換可能不揮発性メモリ３１，３２を制御する例を示しているが、一般的には制御手段１０が制御する書換可能不揮発性メモリは２つである必要はなく、さらに増加しても構わない。
【００２３】
例えば、図３に示すように、内部データバス１４を通して３つの書換可能不揮発性メモリ３１，３２，３３を並列に接続することができる。このようにして、並列処理する書換可能不揮発性メモリの数を増やすことによって、メモリチップへの書込処理をより多く並列に実行することが可能となるので、書込性能を向上させることができる。
【００２４】
図１および図２に示した記憶装置１による、書換可能不揮発性メモリ内のデータ書換処理の順序を、図４を用いて説明する。
図において、上段は書換可能不揮発性メモリ３１に対する処理を示し、下段は書換可能不揮発性メモリ３２に対する処理を示している。
それぞれの処理は、システムバス２から転送バッファメモリ２０へ１ブロック分のデータ（以下、データブロックという）を転送する転送処理４１と、書換可能不揮発性メモリ３１，３２内のメモリブロックに既に書き込まれているデータを消去する消去処理４２と、バッファメモリ２０からデータバス１４を通して書換可能不揮発性メモリ３１，３２へ１データブロック分のデータを転送する転送処理４３と、書換可能不揮発性メモリ３１，３２へ転送されたデータを各メモリブロックに書き込む書込処理４４とがあり、それぞれの処理に要する時間がその長さで示されている。
なお、転送処理４１〜書換処理４４の時間の幅は実際に要する時間に比例して示されているわけではない。また、転送処理４１〜書換処理４４の処理時間はそれぞれ常に一定であるとは限らない。
さらに、「書き込み」とは消去されたブロックに新しいデータを格納することを意味し、「書き換え」は「消去」を実行した後に「書き込み」を実行して完了するものとする。
【００２５】
まず、ホストシステムから、記憶装置１に対して連続した２データブロック以上のデータＤ１〜Ｄｎの書換要求が発生した場合を考える。
１ブロック目のデータＤ１をシステムバス２を介して転送バッファメモリ２０に格納する転送処理４１が実行される（処理１）。
制御手段１０は、現在バッファメモリ２０に格納されているデータと置き変えられるメモリブロックの物理的な位置（メモリブロック）を割り出す。この実施の形態では、この置き変えられるメモリブロック３１０が第１の書換可能不揮発性メモリ３１内にあるとする。
制御手段１０は、第１の書換可能不揮発性メモリ３１に命令を出して、このブロック３１０に既に格納されているデータＤ００−１を消去する消去処理４２を実行する（処理２）。
【００２６】
処理２によるデータの消去が終了したことを確認すると、制御手段１０はバッファメモリ２０内のデータＤ１を書換可能不揮発性メモリ３１へ転送する転送処理４３を実行し（処理３）、それに引き続いてデータＤ１をメモリブロック３１０へ書き込む書込処理４４を実行する（処理４）。
制御手段１０は、処理４が完全に終了したことを確認するまでバッファ２０内のデータＤ１を消去せずに保持しておく。こうすることによって、処理３の転送処理４３または処理４の書込処理４４の実行中に、記憶装置１内で何らかのエラーが発生して書換動作が中断しても、データＤ１がバッファ２０内に保存されているので書換可能不揮発性メモリを再び書き直すことが可能となる。
【００２７】
制御手段１０は、最初のデータブロックＤ１のメモリブロック３１０への書込処理４４（処理４）が終了するまでに、２番目に書換えを行うメモリブロック３２０の物理的な位置を割り出し、このメモリブロックに既に格納されているデータＤ００−２を消去する処理４２を実行しておく（処理５）。
ここで、連続したメモリブロックを、予め第１の書換可能不揮発性メモリ３１と第２の書換可能不揮発性メモリ３２に交互に割り当てておく。こうすることによって、一方のメモリブロックへの書込処理と並行して、次に書き換えるメモリブロックの消去を行うことができる。
【００２８】
最初のメモリブロック３１０へのデータブロックＤ１の書込みが正常に終了すると、２番目のメモリブロック３２０へのデータＤ２をシステムバス２を通じてバッファメモリ２０へ転送する転送処理４１を実行する（処理６）。
最初のブロック３１０への書込みと違い、今回は書き込むメモリブロック３２０に既に格納されているデータＤ００−２の消去を既に完了しているので、即座にバッファメモリ２０の内容Ｄ２を第２の書換可能不揮発性メモリ３２のメモリブロック３２０へ転送する転送処理４３を実行することができ（処理７）、引き続いて該メモリブロック３２０へデータＤ２を書き込む書込処理４４を実行する（処理８）。
処理８における書込処理４４が完全に終了するまで、バッファメモリ２０内のデータＤ２は消去せずに保持しておく。
【００２９】
制御手段１０は、メモリブロック３２０の書込処理４４（処理８）が終了するまでに、３番目に書替えを行うメモリブロック３１１の物理的な位置を割り出し、このブロックに既に格納されているデータＤ０１−１を消去する消去処理４２を実行しておく（処理９）。
メモリブロック３２０へのデータブロックＤ２の書込みが正常に終了したことを確認すると、バッファメモリ２０へデータブロックＤ３を転送する転送処理４１を実行し（処理１０）、データＤ３を第１の書換可能不揮発性メモリ３１のメモリブロック３１１へ転送する転送処理４１（処理１１）と、引き続き該データＤ３をメモリブロック３１１へ書き込む書込処理４３（処理１２）を順次実行する。
４番目のデータブロックＤ４をメモリブロック３２１へ書き換える処理についても同様の処理（処理１３〜）が行われる。以下、順次メモリブロック３２２〜の内容が書き換えられる。
【００３０】
以上の処理によって、通常の単純な書換処理においては、図４に示した４ブロック分のデータＤ１〜Ｄ４を書き込む場合には、書換可能不揮発性メモリ３０の消去処理４２が４回、書換可能不揮発性メモリ３０への書込処理４４が４回、そして、バッファメモリ２０へのデータ転送処理４１および不揮発性メモリ３０へのデータ転送処理４３が合計８回実行されることが必要であるが、図４より明らかなように、書込処理４４時に並行して消去処理４２を実行することができるので、書換可能不揮発性メモリ３０の消去処理４２を４回、書換可能不揮発性メモリ３０への書込処理４４を１回、データ転送処理４１，４３を合計８回をそれぞれ実行する時間で一連のデータの書換処理を実行することが可能となる。そして、この処理を実行するために必要な転送バッファメモリ２０は１データブロック分の容量しか必要としていない。
【００３１】
図５を用いて、本発明にかかる記憶装置１の別の実施の形態を説明する。
この実施の形態にかかる記憶装置１は、複数の群に分けられた第１の書換可能不揮発性メモリ３１，第３の書換可能不揮発性メモリ３３、および第２の書換可能不揮発性メモリ３２，第４の書換可能不揮発性メモリ３４と、１データブロックの容量のデータを記憶することができる格納手段である第１のバッファメモリ２０１および第２のバッファメモリ２０２から構成されるバッファメモリ２０と、第１のバッファメモリ２０１と第１の書換可能不揮発性メモリ３１および第３の書換可能不揮発性メモリ３３を結ぶデータバス１４１と、第２のバッファメモリ２０２と第２の書換可能不揮発性メモリ３２および第４の書換可能不揮発性メモリ３４を結ぶデータバス１４２とから構成され、システムバス２を介して図示を省略したホストシステムに接続される。
【００３２】
各書換可能不揮発性メモリ３１〜３４には、それぞれ複数のメモリブロック３１０，３１１〜、３２０，３２１〜、３３０，３３１〜、３４０，３４１〜が設けられる。
【００３３】
図６は、図５に示した構成の記憶装置１内で、書換動作が行われるときの処理の順序を示す。図５に示した記憶装置１は、図３に示した記憶装置１に比べバッファメモリを１つ加えて、同時に２メモリブロックを並行して書換動作することを可能とした点に特徴を有している。
図において、上段は第１の書換可能不揮発性メモリ３１および第２の書換可能不揮発性メモリ３２に対する処理を示し、下段は第３の書換可能不揮発性メモリ３３および第４の書換可能不揮発性メモリ３４に対する処理を示している。
【００３４】
それぞれの処理は、システムバス２から転送バッファメモリ２０の第１のバッファメモリ２０１と第２のバッファメモリ２０２へそれぞれ１データブロック分のデータを転送する転送処理４１と、書換可能不揮発性メモリ３１，３２または書換可能不揮発性メモリ３３，３４内の各メモリブロックに書き込まれているデータを消去する消去処理４２と、バッファメモリ２０の第１のバッファメモリ２０１からデータバス１４１を通して第１の書換可能不揮発性メモリ３１または第３の書換可能不揮発性メモリ３３のメモリブロックへ、第２のバッファメモリ２０２からデータバス１４２を通して第２の書換可能不揮発性メモリ３２または第４の書換可能不揮発性メモリ３４のメモリブロックへそれぞれ１データブロック分のデータを転送する転送処理４３と、書換可能不揮発性メモリ３１〜３４へ転送されたデータを各メモリブロックに書き込む書込処理４４とがあり、それぞれの処理に要する時間がその長さで示されている。
【００３５】
なお、転送処理４１〜書換処理４４の処理時間の幅は実際に要する時間に比例して示されているわけではない。また、転送処理４１〜書換処理４４の処理時間は常に一定であるとは限らない。さらに、「書き込み」とは消去されたブロックに新しいデータを格納することを意味し、「書き換え」は「消去」を実行した後に「書き込み」を実行して完了するものとする。
【００３６】
ホストシステムから、この記憶装置１に対して連続した４ブロック以上のデータＤ１〜Ｄｎの書換要求が発生した場合を考える。
まず、１ブロック目のデータＤ１と２ブロック目のデータＤ２を、システムバス２を通ってバッファメモリ２０の第１のバッファメモリ２０１と第２のバッファメモリ２０２に格納する転送処理４１を実行する（処理１）。
このとき１データブロック目のデータＤ１は第１のバッファメモリ２０１に、２データブロック目のデータＤ２は第２のバッファメモリ２０２に格納されるとする。
【００３７】
制御手段１０は、現在バッファメモリ２０に格納されているデータと置き換えられるメモリブロックの物理的な位置を割り出す。ここでは、この置き換えられるメモリブロックは第１の書換可能不揮発性メモリ３１内のメモリブロック３１０と第２の書換可能不揮発性メモリ３２内のメモリブロック３２０であるとする。制御手段１０は、第１の書換可能不揮発性メモリ３１と第２の書換可能不揮発性メモリ３２に命令を出して、このメモリブロック３１０，３２０に既に格納されているデータ（Ｄ００−１，Ｄ００−２）を消去する消去処理４２を実行する（処理２）。
【００３８】
書き換えられるメモリブロックのデータ消去が終了したことを確認すると、制御手段１０は、バッファメモリ２０の第１のバッファメモリ２０１内のデータＤ１をデータバス１４１を介して第１の書換可能不揮発性メモリ３１のメモリブロック３１０へ、バッファメモリ２０の第２のバッファメモリ２０２内のデータＤ２をデータバス１４２を介して第２の書換可能不揮発性メモリ３２のメモリブロック３２０へ転送する転送処理４３を実行し（処理３）、引き続いてそれぞれのデータＤ１，Ｄ２をそれぞれのメモリブロックへ書き込む書込処理４４を実行する（処理４）。
【００３９】
制御手段１０は、データＤ１，Ｄ２をそれぞれメモリブロック３１０，３２０へ書き込む処理（処理４）が完全に終了したことを確認するまでバッファ２０の第１のバッファメモリ２０１および第２のバッファメモリ２０２内のデータＤ１，Ｄ２を消去せずに保持しておく。こうすることによって、転送処理４３（処理３）または書込処理４４（処理４）の実行中に、記憶装置１内で何らかのエラーが発生して書換動作が中断しても、再び書き直しが可能になる。
【００４０】
制御手段１０は、最初の２データブロックのデータＤ１，Ｄ２の書込処理４４（処理４）が終了するまでに、次に書替えを行う第３の書換可能不揮発性メモリ３３および第４の書換可能不揮発性メモリ３４のメモリブロック３３０，３４０の物理的な位置を割り出し、このメモリブロックに既に格納されているデータ（Ｄ００−３，Ｄ００−４）を消去する消去処理４２を実行しておく（処理５）。
ここで、連続したメモリブロックは、必ず第１の書換可能不揮発性メモリ３１から第４の書換可能不揮発性メモリ３４へ順番に割り当てておく。こうすることによって、書込処理と並行して、次に書き換えるブロックの消去を行うことができる。
【００４１】
最初の２メモリブロック３１０，３２０へのデータＤ１，Ｄ２の書込みが正常に終了すると、次に書替えを行う２メモリブロック３３０，３４０を書き換えるデータＤ３，Ｄ４をシステムバス２を通じてバッファメモリ２０の第１のバッファメモリ２０１および第２のバッファメモリ２０２へ転送する転送処理４１を実行する（処理６）。
最初の、メモリブロック３１０，３２０と違い、今回は書き込むメモリブロック３３０，３４０のデータの消去を既に完了しているので、即座にバッファメモリ２０の第１のバッファメモリ２０１および第２のバッファメモリ２０２に一時蓄積されたデータＤ３，Ｄ４を、第３の書換可能不揮発性メモリ３３のメモリブロック３３０および第４の書換可能不揮発性メモリ３４のメモリブロック３４０へ転送する転送処理４３を実行し（処理７）、引き続いてこのデータＤ３，Ｄ４をメモリブロック３３０，３４０へそれぞれ書き込む書込処理４４を実行する（処理８）。
書込処理４４（処理８）が完全に終了するまで、バッファメモリ２０の第１のバッファメモリメモリ２０１および第２のバッファメモリ２０２内に一時格納されたデータＤ３，Ｄ４は消去せずに保持しておく。
【００４２】
制御手段１０は、上記書換処理４４（処理８）が完了するまでに、その次に書換えを行うメモリブロック３１１，３２１に既に格納されているデータ（Ｄ０１−１，Ｄ０１−２）を消去する消去処理４２を実行する（処理９）。
【００４３】
メモリブロック３３０，３４０に対する書換処理４４（処理８）が正常に終了したことを確認すると、バッファメモリ２０の第１のバッファメモリ２０１および第２のバッファメモリ２０２へそれぞれデータＤ５，Ｄ６を転送する転送処理４１を実行し（処理１０）、第１の書換可能不揮発性メモリ３１のメモリブロック３１１と第２の書換可能不揮発性メモリ３２のメモリブロック３２１へデータＤ５，Ｄ６を転送する転送処理４３（処理１１）および各メモリブロック３１１，３２１へのデータＤ５，Ｄ６を書き込む書込処理４４（処理１２）を順次実行する。
以後のブロック３３１，３４１の書換えについても同様の処理が行われる。
【００４４】
図５の例では、バッファメモリが増加したことによって書換動作の並列処理が可能となるだけではなく、２つの書換可能不揮発性メモリへの書込動作時に残りの２つの書換可能不揮発性メモリの消去を並行して実行することによって、データの書換速度をさらに向上させることができる。
【００４５】
図７を用いて、消去処理４２に要する時間が書込処理４４に要する時間より大きい場合の実施の形態を説明する。この実施の形態では、書換可能不揮発性メモリを第１から第８の８個のメモリチップを備え、バッファメモリが２データブロック分の記憶容量を有し、消去処理４２に要する時間が書込処理４４に要する時間の約４倍必要であるものとする。
まず、バッファメモリへ２データブロック分のデータＤ１，Ｄ２を転送する転送処理４１を実行する（処理１）。次いで、全ての書換可能不揮発性メモリチップの内容を消去する消去処理４２を実行しておく（処理２）。
次に、第１の書換可能不揮発性メモリ３１のデータブロック３１０へデータＤ１を転送する転送処理４３を実行し（処理３）、引き続きデータＤ１をメモリブロック３１０へ書き込む書込処理４４を実行する（処理４）。
続いて、第２の書換可能不揮発性メモリ３２のメモリブロック３２０へデータＤ２を転送する転送処理４３を実行する（処理５）とともに、第２の書換可能不揮発性メモリ３２のメモリブロック３２０へデータＤ２を書き込む書込処理４４を実行する（処理６）。
【００４６】
処理４の書込処理および処理６の書込処理が正常に終了したのを確認した後、第３の書換可能不揮発性メモリ３３および第４の書換可能不揮発性メモリ３４へのデータＤ３，Ｄ４の書込みを実行するため、ホストシステムからデータＤ３，Ｄ４の転送を受ける転送処理４１を実行する（処理７、処理８）。
【００４７】
このとき、第１の書換可能不揮発性メモリ３１および第２の書換可能不揮発性メモリ３２は、次に書き込む予定であるメモリブロック３１１，３２１を消去する消去処理４２を実行する（処理９、処理１０）。
【００４８】
第３の書換可能不揮発性メモリ３３および第４の書換可能不揮発性メモリ３４に対しては、処理５、処理６が完了し次第、メモリブロック３３０，３４０へデータＤ３，Ｄ４を転送する転送処理４３を実行し（処理１１、処理１２）、引き続いてデータＤ３，Ｄ４をメモリブロックへ書き込む書込処理４４を実行する（処理１３、処理１４）。
そして、さらに第３の書換可能不揮発性メモリ３３、第４の書換可能不揮発性メモリ３４に、次に書き込むデータブロックがあればメモリブロック３３１，３４１のデータを消去する消去処理４２を実行する（処理１５、処理１６）。
【００４９】
以下、第５の書換可能不揮発性メモリ３５以降にも同様の処理を施す。
このとき、第１の書換可能不揮発性メモリ３１のメモリブロック３１１、第２の書換可能不揮発性メモリ３２のメモリブロック３２１を消去する消去処理４２である処理９および処理１０は、書込処理と比較して約４倍長い時間を要することから、第７および第８の書換可能不揮発性メモリ３７，３８へのデータＤ７，Ｄ８の書込みが終了する頃に消去が終了し、すぐに書込処理を実行することができる。
以下、他の書換可能不揮発性メモリ３６〜３８のメモリブロック３６０，３６１〜３８０，３８１〜３８ｎについても同様の処理が行われ、非常に効率の高い書換処理を実現することができる。
【００５０】
なお、上記実施の形態では全て書込処理が成功して次の処理に移ることができるようになっているが、もし、書込処理が失敗に終わった場合には、バッファメモリに格納されているデータを一旦別のメモリブロックに転送してこのメモリブロックから再度書込処理を実行することによって、書込みが成功するまで何度でも書込処理を実行することができる。
【００５１】
【発明の効果】
本発明によれば、ブロック単位で消去処理を必要とする電気的に書換可能な不揮発性メモリを記憶媒体とする記憶装置において、書換えを高速に行うことを要求される場合に、搭載するチップ数より少ないブロック数の格納バッファを用いて、搭載するチップ数と等しいブロック数のバッファを備える場合と比較してほとんど遜色ない書換性能を実現することができる。
しかも、このとき、書込みが失敗しても、書込データを失うことなく、書込みが成功するまで何度でも書込処理を実行することができる。
また、消去に必要とされる時間が同じ領域にデータを書き込むための時間と比較して長いような不揮発性メモリを使用する場合において、書込処理と消去処理を効率良く実行することができ、書換処理を少ないバッファメモリで高速に実現することができる。
【図面の簡単な説明】
【図１】本発明を実現する記憶装置の構成の一例を示すブロック図。
【図２】図１に示した記憶装置内のデータの経路の第１の例を示すブロック図。
【図３】図１に示した記憶装置内のデータの経路の第２の例を示すブロック図。
【図４】図１および図２に示した記憶装置により、データの書換えが並列して実行されるときの処理の順序を示す図（１）。
【図５】図１に示した記憶装置内のデータの経路の第３の例を示すブロック図。
【図６】図１および図５に示した記憶装置により、データの書換えが並列して実行されるときの処理の順序を示す図（２）。
【図７】消去時間が書込時間と比較して長いメモリを用いた場合のデータの書換えを高速に行う処理の順序を示す図。
【符号の説明】
１  記憶装置
２  システムバス
１０  データ書換制御回路
１１  書換制御手段
１２  メモリ消去手段
１３  データ書込手段
１４，１４１，１４２  データバス
２０  バッファメモリ
３０  書換可能不揮発性メモリ
３１  第１の書換可能不揮発性メモリ
３２  第２の書換可能不揮発性メモリ
３３  第３の書換可能不揮発性メモリ
３４  第４の書換可能不揮発性メモリ
４１  システムバス‐バッファメモリ間データ転送処理
４２  書換可能不揮発性メモリのデータ消去処理
４３  バッファメモリ‐書換可能不揮発性メモリ間データ転送処理
４４  書換可能不揮発性メモリのデータ書込処理
２０１  第１のバッファメモリ
２０２  第２のバッファメモリ
３１０，３１１，３２０，３２１，３３０，３３１  メモリブロック
【図１】
0003550293.tif 000002
【図２】
0003550293.tif 000003
【図３】
0003550293.tif 000004
【図４】
0003550293.tif 000005
【図５】
0003550293.tif 000006
【図６】
0003550293.tif 000007
【図７】
0003550293.tif 000008