(57)【特許請求の範囲】
【請求項１】
コントローラと不揮発性メモリとエラー訂正回路とを有し、
上記コントローラは外部から受信したデータを、第１アドレスを指定して上記不揮発性メモリに格納指示し、上記不揮発性メモリは、上記コントローラからの格納指示に応じたデータの格納動作においてデータの格納エラーが生じた場合、格納したデータを読み出し、
上記エラー訂正回路は、読み出されたデータが訂正可能か否かを判定し、訂正可能である場合は格納完了を上記コントローラに通知し、訂正不可能である場合は格納失敗を上記コントローラに通知し、
上記コントローラは、上記格納失敗の通知に応じて上記データを格納すべき第２アドレスを指定して上記データを格納指示する不揮発性半導体記憶装置であって、
上記コントローラは、上記エラー訂正回路による訂正が可能な場合に、該エラー訂正回路によるデータの訂正ビット数を判定し、該訂正ビット数がｎ（正の整数）よりも少ない場合は格納完了とし、上記訂正ビット数がｎよりも多くｍ（ｎより大きい正の整数）よりも少ない場合は上記不揮発性メモリから上記第１アドレスのデータを読み出して上記エラー訂正回路による訂正を施してからそのデータを上記不揮発性メモリの上記第１アドレスに格納する処理を行なうことを特徴とする不揮発性半導体記憶装置。
【請求項２】
コントローラと揮発性メモリと不揮発性メモリとエラー訂正回路とを有し、
上記コントローラは、外部から供給されたデータを上記揮発性メモリに保持させ、第１アドレスと上記データを供給して上記不揮発性メモリに格納指示し、第２アドレスを供給して上記不揮発性メモリからデータを読み出して上記揮発性メモリに保持させてから外部へ出力させ、
上記不揮発性メモリは、格納のために供給されたデータを保持するデータラッチ手段を備え、上記コントローラからの格納指示に応じたデータの格納動作においてデータの格納エラーが生じた場合、格納失敗を上記コントローラに通知し、
上記コントローラは、上記格納失敗に応じて、上記不揮発性メモリの第１アドレスに格納したデータを読み出し、読み出したデータを上記揮発性メモリへの読出しデータのパスを遮断した状態で上記エラー訂正回路に供給してエラー訂正可能か否かを判定し、エラー訂正可能である場合は格納完了とし、エラー訂正不可能である場合は第３アドレスを指定して上記不揮発性メモリに転送済みの上記データを格納指示することを特徴とする不揮発性半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性記憶装置に適用して有効な技術に関し、例えばフラッシュメモリのような不揮発性半導体メモリもしくはそれを内蔵したマルチメディアカードやスマートメディアなどのカード型記憶装置に利用して有効な技術に関する。
【０００２】
【従来の技術】
近年、デジタルカメラなどの携帯用電子機器のデータ記憶媒体として、電源電圧を遮断しても記憶データを保持できるフラッシュメモリなどの不揮発性メモリを内蔵したメモリカードと呼ばれるカード型記憶装置が広く利用されるようになって来ている。
ところで、不揮発性メモリは、ＲＡＭなどの揮発性メモリに比べて記憶素子の特性のばらつきが大きいとともに、書込み動作の再現性が低いため、比較的頻繁に書込みエラーが発生する。そのため、不揮発性メモリを内蔵したメモリカードにおいては、書込みエラーが発生した記憶領域を他の記憶領域と置き換える代替処理を行なうようにしたものがある。
【０００３】
【発明が解決しようとする課題】
フラッシュメモリは、２層ゲート構造を有し、浮遊ゲート層に蓄積する電荷の量の違いによるしきい値電圧の高低によりデータを記憶する。本願明細書においては、浮遊ゲート層に電荷を注入し、しきい値電圧を高くする動作を書込み、その逆の動作を消去と称する。
従来、フラッシュメモリにおいては、書込み電圧を高くすると同一条件の書き込み動作を行なっても、突然あるビットだけ記憶素子のしきい値電圧が大きく変化して所望のしきい値範囲から外れてしまう現象（以下、過剰書込みエラーと称する）があることが知られている。かかる過剰書込みエラーを少なくするには書込み電圧を低くすれば良いが、書込み電圧が低いと書込み所要時間が長くなってしまうという問題がある。そこで、一般には、上記のような過剰書込みエラーの発生よりも書込み時間の短縮を優先して書込み電圧を高く設定し、発生した過剰書込みエラービットは上記代替処理によって救済することが行なわれる。また、従来のメモリカードには、エラー訂正回路を内蔵し、検出されたエラービットを訂正して出力するように構成されているメモリカードもある。
【０００４】
しかしながら、過剰書込み書込みエラーは、何度も書込みと消去を繰り返すうちに次第に多くなって行くことがある。そのため、発生した過剰書込みエラービットは上記代替処理によって救済するようにしたメモリカードでは、長期間にわたって使用しているうちにだんだんと代替処理が実行される回数が増加し、トータルの書込み所要時間が長くなってしまうとともに、書き替え耐性が早期に劣化する原因になるという問題点がある。
【０００５】
また、エラー訂正回路を内蔵したメモリカードにおいても、従来は、書込みエラーが発生すると、エラー訂正回路によるエラー訂正が可能なエラーであっても代替処理を行なうように構成されていた。そのため、エラー訂正回路を内蔵したとしても、書込み所要時間が長くなったり、書き替え耐性が早期に劣化したりするのを防止することはできなかった。なお、本発明をした後の調査により、類似の先願発明として例えば特開平６−１３１８８６号があることが分かった。
【０００６】
この発明の目的は、不揮発性メモリとエラー訂正回路を内蔵したカード型記憶装置における書込み所要時間を短縮可能にする技術を提供することにある。
この発明の他の目的は、不揮発性メモリとエラー訂正回路を内蔵したカード型記憶装置において、長期間にわたって使用しているうちにだんだんと代替処理が実行される回数が増加し、書き替え耐性が早期に劣化するのを防止する技術を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【０００７】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、不揮発性メモリとエラー訂正回路を内蔵したカード型記憶装置において、不揮発性メモリの書込みにエラーがあった場合、不揮発性メモリからデータを読み出してエラー訂正回路による訂正が可能かを判定し、訂正が可能な場合には、そのまま書込み動作を終了する一方、エラー訂正回路による訂正が不能な場合には書込みデータを他の領域に書き込む代替処理を行なうようにしたものである。
【０００８】
上記した手段によれば、エラー訂正回路による訂正が不能な場合にのみ書込みデータを他の領域に書き込む代替処理を行なうため、書込みエラーがあった場合にはすべて代替処理を行なう方式に比べて代替処理の回数が大幅に少なくなり、これによってデータ書込み所要時間を大幅に短縮することができる。
【０００９】
また、書込みエラーが発生しても、同一条件の書込み動作でしきい値電圧が大きく変化してしまう過剰書込みエラーのような回復可能なエラーであるか否かを判定して、回復可能なエラーの場合にのみエラー訂正回路による訂正が可能かを判定し、回復不能なエラーの場合には直ちに代替処理を行なうようにする。これにより、エラー訂正回路による訂正が可能か否かの判定処理が行われる回数を減らしてトータルの書込み所要時間を短縮することできる。
【００１０】
さらに、エラー訂正回路による訂正が可能な書込みエラーが発生しそのエラービットが所定のビット数ｎより多く所定のビット数ｍ（ｍ＞ｎ）よりも少ないときや、書込みデータが一括書込みの単位であるセクタよりも小さい場合に、同一セクタ内の書込み対象外のデータを読み出してエラーがありかつエラー訂正回路による訂正が可能と判断したときは、訂正されたデータを元の位置に書き込む処理を行なうようにする。これにより、長期間書替えが行なわれないことによりしきい値電圧が変化するいわゆるリテンション不良によりデータが変化したビットを正常な状態に戻すことができるようになる。
【００１１】
【発明の実施の形態】
以下、本発明の好適な実施例を図面に基づいて説明する。
図１は、本発明が適用される不揮発性メモリを内蔵したメモリカードの実施例を示す。
この実施例のメモリカード１００は、特に制限されないが、所定の単位で電気的な一括データ消去が可能なフラッシュメモリ（ＦＬＡＳＨ）１１０と、外部から供給されるコマンドに基づいてデータ転送などカード内部全体の制御を行なうマイクロプロセッサ（ＣＰＵ）１２０と、外部の装置との信号のやり取りを行なうインタフェース回路１３０と、外部からの書込みデータやフラッシュメモリ１１０からの読出しデータを保持するＲＡＭなどからなるバッファメモリ１４０と、書込みデータに対するエラー訂正符号の生成およびエラー訂正符号に基づく読出しデータのチェックと訂正の機能を有するエラー訂正符号生成＆エラー訂正回路１５０と、ＣＰＵ１２０からの指示に従ってフラッシュメモリ１１０に対するデータの書込み、読出しの制御を行なうフラッシュコントローラ１６０などから構成されている。
【００１２】
上記メモリ１１０、ＣＰＵ１２０、フラッシュコントローラ１６０等の各部品はそれぞれ半導体集積回路で構成され、これらの半導体集積回路がプリント配線基板上に搭載され、全体が樹脂等によりモールドされてメモリカード１００が構成される。
また、この実施例のメモリカード１００には、外部の電子機器のカードスロットに挿入されたときに電子機器側の回路と電気的に接続される外部端子１７１〜１７５が設けられている。このうち、外部端子１７１と１７２はそれぞれ電源電圧Ｖｃｃと接地電位ＧＮＤを受ける電源端子及び接地端子、外部端子１７３はタイミングを与えるクロック信号ＣＫを受ける端子、外部端子１７４は外部のホストＣＰＵからカードに対して与えられるコマンドやアドレスが入力されるとともにカードからホストＣＰＵに対してステータスレジスタの内容などを出力する端子、外部端子１７５は外部のホストＣＰＵからカードに対して与えられるライトデータが入力されるとともにカードから読み出されたリードデータをホストＣＰＵに対して出力する端子である。
【００１３】
上記外部端子１７４と１７５の信号の入出力はインタフェース回路１３０を介して行なわれる。バッファメモリ１４０は複数のバンクにより構成されている。マイクロプロセッサ１２０からバッファメモリ１４０に対してはバンクを指定する信号やライトかリードかを示す信号が供給される。バッファメモリ１４０からマイクロプロセッサ１２０へは、各バンクの状態を示す信号が供給される。外部のホストＣＰＵから転送された書込みデータはバッファメモリ１４０内の指定されたバンクに順次格納され、エラー訂正符号生成＆エラー訂正回路１５０を介してフラッシュメモリ１１０に供給される。また、マイクロプロセッサ１２０は、外部端子１７４より入力された論理アドレスとを物理アドレスに変換してフラッシュコントローラ１６０を介してフラッシュメモリ１１０に供給する。
【００１４】
さらに、マイクロプロセッサ１２０からエラー訂正符号生成＆エラー訂正回路１５０に対しては同期クロックＳＣが、また、エラー訂正符号生成＆エラー訂正回路１５０からマイクロプロセッサ１２０に対しては正常にエラー訂正が行なえたか否かを示す信号等が供給される。また、インタフェース回路１３０内には、ライトデータのバッファメモリ１４０からフラッシュメモリ１１０へのライトデータの転送が終了したか否か等カード内の状態を反映するステータスレジスタＳＲ１が設けられている。
【００１５】
このステータスレジスタＳＲ１には、マイクロプロセッサ１２０からの信号によってカード内の状態が設定される。このステータスレジスタＳＲ１に含まれる状態ビットとしては、例えば書込みエラーが発生したことを示すエラービット、カードがアクセス可能な状態にあることを示すレディー／ビジービット、バッファメモリ１４０が一杯になったことを示すオーバーフロービットなどがある。この実施例では、このステータスレジスタＳＲ１の内容は、外部のホストＣＰＵ等がレジスタリードコマンドを外部端子１７４から入力することにより、コマンドと同一の外部端子１７４から読み出せるように構成されている。また、フラッシュコントローラ１６０からの信号によってステータスレジスタＳＲ１にフラッシュメモリ１１０の状態を直接設定できるように構成しても良い。
【００１６】
フラッシュメモリ１１０はフローティングゲートを有する絶縁ゲート型電界効果トランジスタからなる不揮発性記憶素子がマトリックス状に配設されたメモリアレイや、外部より入力されたアドレス信号をデコードしてメモリアレイ内の対応するワード線を選択レベルにするワードデコーダ、メモリアレイ内のビット線に接続され読み出しデータおよび書き込みデータを保持するデータラッチ、書込み消去に必要な高電圧を発生する昇圧回路などから構成されている。上記データラッチは、この実施例のフラッシュメモリでは、１セクタすなわち１本のワード線に接続されているすべての記憶素子のデータを保持することができるような大きさとされている。さらに、フラッシュメモリ１１０内には、書込みが正常に終了したかエラーが発生しているか反映するステータスレジスタＳＲ２が設けられている。
【００１７】
また、この実施例のメモリカードに用いられるフラッシュメモリは、コマンドと制御信号に基づいて動作するように構成されている。フラッシュメモリに有効なコマンドとしては、リードコマンドの他、ライトコマンド、消去コマンド等がある。さらに、フラッシュメモリ１１０へ入力される制御信号としては、チップ選択信号ＣＥやリードかライトかを示す書き込み制御信号ＷＥ、出力タイミングを与える出力制御信号ＯＥ、システムクロックＳＣ、コマンド入力かアドレス入力かを示すためのコマンドイネーブル信号ＣＤＥがある。これらのコマンドや制御信号はフラッシュコントローラ１６０から与えられる。
【００１８】
フラッシュコントローラ１６０はコントロールレジスタを備えており、マイクロプロセッサ１２０がこのコントロールレジスタに対して設定を行なうことにより、フラッシュコントローラ１６０によってフラッシュメモリ１１０に対する書込みや読出し、消去等の制御が行われる。マイクロプロセッサ１２０からフラッシュコントローラ１６０へ供給される信号は、リードまたはライトを指示する制御信号と、上記コントロールレジスタ等を指定するアドレス信号、コントロールレジスタに設定されるデータ信号等がある。
【００１９】
なお、フラッシュメモリを搭載したメモリカードは図１の構成に限定されず、エラー訂正符号生成＆エラー訂正回路を内蔵したフラッシュメモリを使用したものや、エラー訂正符号生成＆エラー訂正回路とコントローラとを１チップとしたものを使用してメモリカードを構成するようにしてもよい。また、フラッシュメモリ１１０は、１つの記憶素子に１ビットのデータを記憶させる２値のフラッシュメモリでも、１つの記憶素子にしきい値電圧を制御して複数ビットのデータを記憶させるように構成された多値のフラッシュメモリでも良い。
【００２０】
さらに、フラッシュメモリは１つのみでなく複数個搭載したものであっても良い。その場合、ＥＣＣ回路は各チップ毎に設けても良いし、ＥＣＣ回路を複数のフラッシュメモリで共用するように構成することも可能である。また、実施例のメモリカードには、コントローラとして、マイクロプロセッサ１２０とフラッシュコントローラ１６０の２つが設けられているが、いずれか一方のみ有する構成も可能である。
【００２１】
次に、上記のように構成されたメモリカードに本発明を適用した場合における書込み処理の第１の実施例を、図２のフローチャートを用いて説明する。
第１の実施例では、メモリカードへのデータの書込みに際して、先ず外部のホストＣＰＵからメモリカードにデータ転送コマンドを送る（ステップＳ１）。続いて、ホストＣＰＵからメモリカードへライトデータを転送する。転送されたコマンドはインタフェース１３０を介してマイクロプロセッサ１２０に供給され、転送されたデータはインタフェース１３０を介してバッファメモリ１４０に格納される（ステップＳ２）。上記コマンドの送信およびライトデータの転送はシリアルに行なわれる。また、コマンドに付随して書込みアドレスが送信される。
【００２２】
所定のライトデータの転送が終了すると、バッファメモリ１４０からフラッシュメモリ１１０へライトデータを転送する（ステップＳ３）。このデータ転送は例えば８ビットのような単位でパラレルに行なわれる。このとき、ライトデータはエラー訂正符号生成＆エラー訂正回路１５０を経由することで、例えば５１２バイトごとにエラー訂正符号が付加されてフラッシュメモリ１１０に供給される。
【００２３】
次に、フラッシュメモリ１１０において、セクタ単位で一括書込みが行なわれる（ステップＳ４）。書込み動作が終了した時点でフラッシュメモリ１１０内のステータスレジスタＳＲ２には、書込みが正常に終了したかエラーが発生しているか反映されているので、これをチェックすることで書込みエラーの有無を判定する（ステップＳ５）。ここで、エラーがなければ１回の書込み動作を終了する。
【００２４】
一方、書込みエラーが発生していたときは、次のステップＳ６でフラッシュメモリ１１０からエラーのあったセクタのデータの読出しを行ない、それをエラー訂正符号生成＆エラー訂正回路１５０に供給してエラー訂正処理を行なう（ステップＳ７）。エラー訂正符号生成＆エラー訂正回路１５０からはマイクロプロセッサ１２０に対して正常にエラー訂正が行なえたか否かを示す信号が供給されているので、それをチェックすることで、エラー訂正が可能なエラーか否かを判定する（ステップＳ８）。そして、エラー訂正が可能と判定した場合は、１回の書込み動作を終了する。エラー訂正が不能であると判定した場合には、他のセクタにライトデータを書き込む代替処理（ステップＳ９）を実行して書込み動作を終了する。
【００２５】
この代替処理では、フラッシュメモリ１１０内のデータラッチに保持されているライトデータをそのまま用いて代替セクタに書込みを行なうようにし、フラッシュメモリ１１０には改めてライトデータは供給せず、書込み動作コマンドと代替セクタのアドレスのみ供給するようにすることができる。ただし、バッファメモリ１４０に格納されているライトデータを代替処理の際に再度フラッシュメモリ１１０に供給するようにすることも可能である。
【００２６】
この実施例によれば、書込みエラーが発生したとしても、エラー訂正回路による訂正が可能な場合には書込み動作を終了し、エラー訂正が不能な場合にのみ書込みデータを他のセクタに書き込む代替処理を行なうため、書込みエラーがあった場合にはすべて代替処理を行なうようにする方式に比べて代替処理の回数が大幅に少なくなり、これによってフラッシュメモリへのデータの書込み所要時間を大幅に短縮することができる。
【００２７】
次に、図１のメモリカードに本発明を適用した場合における書込み処理の第２の実施例を、図３のフローチャートを用いて説明する。なお、この実施例は、フラッシュメモリ１１０が内部のステータスレジスタＳＲ２に、書込みによってしきい値電圧が所定のレベルまで変化していないビットがあることを示す一般的な書込みエラーのフラグの他に、書込みによってしきい値電圧が所定のレベルを飛び越してしまったビットがあることを示す過剰書込みエラーのような回復可能なエラーが発生したことを示すフラグを有する場合に適用可能な実施例である。
【００２８】
この実施例の書込み処理は、図２の第１の実施例の書込み処理とほぼ同様である。異なるのは、図２のフローチャートのステップＳ５の次に、エラー訂正回路による訂正をするかしないかを、ステータスレジスタＳＲ２のフラグを見て判断するステップＳ１１が設けられている点である。このステップＳ１１で参照するのが、上述した書込みによってしきい値電圧が所定のレベルを飛び越してしまったビットがあることを示す過剰書込みエラーのフラグであり、この実施例ではこのフラグを見て過剰書込みエラーであった場合には、ステップＳ６〜Ｓ８によりエラー訂正回路による訂正が可能な範囲のエラーか判定してそうでない場合にのみ代替処理を行なう。一方、ステップＳ１１で過剰書込みエラーでないと判定した場合には、直ちにステップＳ９の代替処理を行なうようにしている。
【００２９】
過剰書込みエラーを起こしたビットは正常なビットに回復する可能性のあるビットであるのに対し、書込み動作によりしきい値電圧が所定のレベルに達しないビットは回復不能な欠陥ビットである。この実施例の書込み処理によれば、このような回復不能な欠陥ビットによる書込みエラーが発生したセクタに関しては直ちに代替処理を行なうことにより、ステップＳ６〜Ｓ８の処理を省略することで書込み所要時間を短縮することできる。
【００３０】
一方、発生した書込みエラーが過剰書込みでしきい値電圧が所定のレベルを飛び越してしまったビットのような回復可能なビットによる書込みエラーである場合には、ステップＳ６〜Ｓ８の処理によりエラー訂正回路による訂正が可能か否かを判定して訂正不能な場合にのみ代替処理を行なうので、第１の実施例と同様に、書込みエラーがあった場合にはすべて代替処理を行なうようにする方式に比べて代替処理の回数が大幅に少なくなり、フラッシュメモリへのデータの書込み所要時間を大幅に短縮することができる。
【００３１】
次に、図１のメモリカードに本発明を適用した場合における書込み処理の第３の実施例を、図４のフローチャートを用いて説明する。この実施例は、例えば長期間データの書替えがなされなかったことによりしきい値電圧が所定の範囲からはずれてしまういわゆるリテンション不良ビットが発生した場合の救済処理を含むようにした実施例である。
【００３２】
この実施例の書込み処理は、途中までは図２の第１の実施例の書込み処理と同じである。異なるのは、図２のフローチャートのステップＳ８とＳ９との間にステップＳ２１〜Ｓ２３からなるリテンション不良救済処理が設けられている点である。
具体的には、ステップＳ８でエラー訂正回路による訂正が可能と判定した場合に、次のステップＳ２１でエラーの個所が所定数ｎ（例えば２個）よりも少ないか否か判定し、少ないときは直ちに書込み動作を終了する。一方、エラーの個所が所定数ｎよりも多いときはステップＳ２２でさらにエラーの個所が第２の所定数ｍ（ただし、ｍ＞ｎで、例えばｍ＝３）よりも少ないか否か判定し、多いときは直ちに代替処理Ｓ９へ移行する。また、ステップＳ２２でエラーの個所がｍより少ないと判定したときは、次のステップＳ２３でリフレッシュライト処理を行なってから代替処理Ｓ９へ移行する。
【００３３】
なお、ここで、リフレッシュライト処理とは、着目するセクタのデータを読み出してエラー訂正回路による訂正を施してからそのデータを元のセクタに書き戻す処理である。この書き戻しの際に当該セクタの記憶素子は一旦消去状態にされる。この処理により、リテンション不良により読出しエラーを起こしたビットを救済して正しいデータをフラッシュメモリに記憶させることができる。また、エラー訂正符号生成＆エラー訂正回路１５０により訂正されたリードデータは、一旦バッファメモリ１４０に格納されてから、フラッシュメモリ１１０へ転送される。
【００３４】
特に制限されるものでないが、この実施例では、エラー訂正符号生成＆エラー訂正回路１５０は５１２バイトずつつまり１セクタのデータの１／４のデータごとにエラー訂正処理を行なうように構成されており、ステップＳ２１における「ｎ」とステップＳ２２における「ｍ」は、それぞれエラー訂正処理の単位である５１２バイトのデータに対応して設定される数であり、ステップＳ２１，Ｓ２２の判定は５１２バイトのデータごとにそれぞれ行なわれる。
【００３５】
また、この実施例で使用するエラー訂正回路は、エラー訂正をしたビットの数を出力するような機能を有するものが望ましい。ただし、そのような機能がないエラー訂正回路であっても１ビットエラーを訂正する回路部分を複数回まわすことでエラー訂正をしたビットの数を知ることができるので、本実施例を適用することができる。
【００３６】
次に、図４の第３の実施例の変形例を、図５のフローチャートを用いて説明する。図４の実施例は１セクタのデータすべてが書替え対象である場合に適用すると有効な実施例であるのに対し、図５の変形例は、データの書替えが１セクタよりも小さなデータについて行なわれる際に、書替え対象外のデータのリテンション不良ビットを救済できるようにする実施例である。
【００３７】
この実施例では、図４のフローチャートにおけるステップＳ２１，Ｓ２２の代わりに、再度同一セクタからのデータの読出しとエラー訂正処理を行なうステップＳ２４，Ｓ２５と、セクタ内書替え対象外のデータに対してエラー訂正が行なわれたか否かを判定するステップＳ２６と、エラー訂正が行なわれた場合にはバッファに格納された訂正済みデータをフラッシュメモリ１１０へ転送するステップＳ２７と、訂正済みデータによるリフレッシュライト処理ステップＳ２８とが設けられている。ステップＳ２６で書替え対象外のデータに対してエラー訂正が行なわれていないと判定されると、当該セクタの書込み動作は直ちに終了する。
【００３８】
次に、図１のメモリカードに本発明を適用した場合における書込み処理の第５の実施例を、図６のフローチャートを用いて説明する。この実施例は、第１実施例を一歩進めた実施例である。
この実施例の書込み処理は、ステップＳ１からＳ８までは図２の第１の実施例の書込み処理と同じである。異なるのは、この実施例では、ステップＳ８でエラー訂正回路による訂正が可能と判定した場合に、次のステップＳ３１でエラー訂正が所定回数ｋ（例えば１０回）よりも多いか少ないかを判定し、少ないときは次のステップＳ３２でエラー回数カウンタをカウントアップして直ちに書込み動作を終了する。一方、エラー訂正の回数が所定数ｋよりも多くなったときはステップＳ９へ移行して代替処理を行なうようにしたものである。
【００３９】
過剰書込みエラーを起こしたビットは通常は回復可能であるが、中には記憶素子の欠陥により頻繁に過剰書込みエラーを起こすビットもある。この実施例によれば、エラー訂正の回数が所定数ｋよりも多くなったときは代替処理を行なうようにしているので、このような欠陥により過剰書込みエラーを起こし易いビットを含むセクタは代替処理により他のセクタと置き換えられる。これによって、かかるビットにより発生する書込みエラーの回数を減らしてエラー訂正回路によるエラー訂正が可能か否かの判定処理が不要になり、トータルの書き込み所要時間が短縮される。
【００４０】
なお、ステップＳ３２でカウントアップされるエラー訂正の回数は、この実施例ではフラッシュメモリ１１０内の当該セクタの管理領域に格納するように構成されている。ただし、これに限定されるものでなく、フラッシュメモリ内の他の領域に格納したり、バッファメモリ１４０やＣＰＵ１２０内に格納しておくようにすることも可能である。
【００４１】
次に、図１のメモリカードに本発明を適用した場合における書込み処理の第６の実施例を、図７のフローチャートおよび図８のブロック図を用いて説明する。この実施例の書込み処理は、図２の第１の実施例の書込み処理とほぼ同じである。異なるのは、この実施例では、エラーの有無の判定ステップＳ５とフラッシュメモリからのデータの読出しステップＳ６との間に、リードデータのバッファメモリ１４０への供給パスを遮断するステップＳ４１を設けた点にある。
【００４２】
この実施例においては、ステップＳ８でエラー訂正回路１５０によるエラー訂正が可能か否か判定して不能な場合にのみ代替処理をするようにしており、図４や図５の実施例のようにリフレッシュライトを行なわないので、フラッシュメモリから読み出したデータをバッファメモリに保持する必要がないためである。
【００４３】
一方、この実施例のように、書込みエラーがあった場合にリードデータのバッファメモリ１４０への供給パスを遮断してからフラッシュメモリからのデータの読出しを行なうことにより、バッファメモリ１４０の一部がリードデータにより占領されるのを防止することができる。そして、これによってＣＰＵ１２０は空いているバッファメモリを利用してフラッシュメモリにおける書込み動作と並行して次のライトデータを取り込むことができるようになり、これによって書込み所要時間を短縮することができる。
【００４４】
なお、この実施例は、図８に示されているように、エラー訂正回路１５０とバッファメモリ１４０との間のリードデータのパス上に伝送ゲートＴＧが設けられている場合には、フラッシュコントローラ１６０からフラッシュメモリ１１０に供給される例えば出力制御信号ＯＥとＣＰＵ１２０から出力されるリードパス遮断信号ＰＣとの論理積をとるＮＡＮＤゲートＧ１のような論理回路を設け、このＮＡＮＤゲートＧ１の出力信号によって上記伝送ゲートＴＧを遮断させるように構成することができる。
【００４５】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上記実施例では、エラー訂正符号生成＆エラー訂正回路１５０におけるエラー訂正方式としては、リード・ソロモン符号を用いた方式の他、ハミング符号やＢＣＨ符号を用いた方式などどのような方式であっても良い。また、実施例では、バッファメモリを内蔵したメモリカードについて説明したが、バッファメモリは第６の実施例以外では必ずしも必要なものでなく、本発明の他の実施例はバッファメモリを内蔵しないメモリカードにも適用することができる。
【００４６】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを内蔵したメモリカードに適用した場合について説明したが、この発明はそれに限定されるものでなく、ＥＥＰＲＯＭチップその他の不揮発性メモリもしくはこれを内蔵したメモリカードあるいは複数の不揮発性メモリチップを１枚のボード上に搭載してなるメモリモジュールなどにも利用することができる。
【００４７】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、この発明に従うと、不揮発性メモリとエラー訂正回路を内蔵したカード型記憶装置において、書込みエラーが発生してもエラー訂正回路により訂正が可能な場合には他のアドレスに書込みを行なう代替処理を行なわないため、書込み所要時間を短縮できるとともに、書き替え耐性が早期に劣化するのを防止することができるという効果がある。
【図面の簡単な説明】
【図１】本発明が適用される不揮発性メモリを内蔵したメモリカードの実施例を示すブロック図である。
【図２】図１のメモリカードに本発明を適用した場合における書込み処理の第１の実施例を示すフローチャートである。
【図３】本発明を適用したメモリカードにおける書込み処理の第２の実施例を示すフローチャートである。
【図４】本発明を適用したメモリカードにおける書込み処理の第３の実施例を示すフローチャートである。
【図５】本発明を適用したメモリカードにおける書込み処理の第４の実施例を示すフローチャートである。
【図６】本発明を適用したメモリカードにおける書込み処理の第５の実施例を示すフローチャートである。
【図７】本発明を適用したメモリカードにおける書込み処理の第６の実施例を示すフローチャートである。
【図８】本発明の第２の実施例の書込み処理が適用されるメモリカードの構成例を示すブロックである。
【符号の説明】
１００  メモリカード
１１０  フラッシュメモリ
１２０  マイクロプロセッサ（ＣＰＵ）
１３０  インタフェース回路
１４０  バッファメモリ
１５０  エラー訂正符号生成＆エラー訂正回路
１６０  フラッシュコントローラ
１７１〜１７５  外部端子
【図１】
0004034949.tif 000002
【図２】
0004034949.tif 000003
【図３】
0004034949.tif 000004
【図４】
0004034949.tif 000005
【図５】
0004034949.tif 000006
【図６】
0004034949.tif 000007
【図７】
0004034949.tif 000008
【図８】
0004034949.tif 000009