(57)【特許請求の範囲】
【請求項１】
データ記憶部と管理情報記憶部とを含むセクタ単位でデータを記憶するようにされた不揮発性記憶装置において、データの書込みの際に対象セクタの管理情報の読み取りを行なっても管理情報が得られない場合には全セクタの管理情報記憶部を参照して書込み対象セクタと対をなしそれぞれのデータ記憶部には対をなす他方のセクタのデータが記憶されるようにされた置換えセクタがあるか否か判定し、置換えセクタが存在したときは当該対象セクタの管理情報記憶部にその置換えセクタを指す情報を記憶するとともに、置換えセクタのデータ記憶部にデータの書込みを行なうようにしたことを特徴とする不揮発性記憶装置。
【請求項２】
データの書込みの際に当該セクタの管理情報の読み取りを行なっても管理情報が得られない場合には全セクタの管理情報を参照する前に所定の記憶領域を参照して不良セクタとして登録されているか判定し、不良セクタとして登録されている場合には代替えセクタにデータの書込みを行なうようにしたことを特徴とする請求項１に記載の不揮発性記憶装置。
【請求項３】
データの書込みの際に当該セクタの管理情報の読み取りを行なっても管理情報が得られない場合であって不良セクタとしても登録されていない場合に、全セクタの管理情報を参照して置換えセクタが存在しないときには、当該セクタを不良セクタとして登録しかつ代替えセクタを設定して当該代替えセクタにデータの書込みを行なうようにしたことを特徴とする請求項１または２に記載の不揮発性記憶装置。
【請求項４】
上記セクタはデータ記憶部と管理情報記憶部とからなり、該管理情報記憶部に上記置換えセクタのセクタ番号が入るセクタポインタ領域が含まれていることを特徴とする請求項１、２または３に記載の不揮発性記憶装置。
【請求項５】
置換えが行なわれていないセクタの管理情報記憶部内のセクタポインタ領域には自己のセクタ番号が格納されるようにされてなることを特徴する請求項１、２、３または４に記載の不揮発性記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電気的に書込み消去可能な不揮発性半導体メモリへのデータ記憶方式さらには不揮発性メモリのセクタ管理方式に適用して有効な技術に関し、例えばブロック単位で一括してデータの消去が可能な複数個のフラッシュメモリチップを内蔵したメモリカードに利用して有効な技術に関する。
【０００２】
【従来の技術】
従来、複数個のフラッシュメモリチップを内蔵したメモリカードにおいては、例えば５２８バイトのような単位を１セクタとしてデータを記憶することが行なわれている。また、フラッシュメモリはＲＡＭなどの揮発性メモリに比べて書換え可能な回数が少ないため、一部の記憶素子に書換えが集中するなど書換え頻度にむらがあると、それだけ早くメモリチップの寿命が切れてしまうことになる。そこで、フラッシュメモリカードにおいては、記憶素子の書換え頻度を平均化させるため、セクタの置換えという操作が行なわれている。
【０００３】
また、フラッシュメモリカードにおいては、一部のセクタが書込み不良であっても充分な記憶容量を補償するため、予備のセクタを設けて不良セクタと代替えすることも行なわれている。なお、上記のようなセクタの置換えや代替えを可能にするため、セクタにはデータ領域の他に管理情報を記憶する領域が設けられ、セクタへのデータの書込みの際にはこの管理情報を読み出してセクタの管理を行なうようにしている。
【０００４】
【発明が解決しようとする課題】
上記メモリカードにあっては、メモリチップへのデータの書込み中に電源が遮断されると、書込み対象セクタのデータが破壊されてしまうので管理情報が消失して当該セクタは不良セクタであると判断されてしまう。しかも、書込み対象セクタに置換えが行なわれていると、当該セクタと対をなす他のセクタをアクセスしたときにも不良セクタと判断されてしまうことがある。その結果、カードのメモリ空間が不連続になり、実記憶容量が減少するという問題点がある。
【０００５】
この発明の目的は、電源遮断等によりデータが破壊されたセクタの修復を可能にしてデータ破壊による実記憶容量の低下を防止することができるメモリカードのデータ管理技術を提供することにある。
【０００６】
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【０００７】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
【０００８】
すなわち、データ記憶部と管理情報記憶部とを含むセクタ単位でデータを記憶するようにされた不揮発性記憶装置において、データの書込みの際に対象セクタの管理情報の読み取りを行なっても管理情報が得られない場合には全セクタの管理情報記憶部を参照して書込み対象セクタと対をなしそれぞれのデータ記憶部には対をなす他方のセクタのデータが記憶されるようにされた置換えセクタがあるか否か判定し、置換えセクタが存在したときは当該対象セクタの管理情報記憶部にその置換えセクタを指す情報を記憶するとともに、置換えセクタのデータ記憶部にデータの書込みを行なうようにしたものである。これによって、書込み中に電源が遮断される等によってデータが破壊された不良セクタを正常セクタに修復することができ、メモリ空間が不連続になるのを回避して実記憶容量の減少を防止することができる。
【０００９】
また、データの書込みの際に当該セクタの管理情報の読み取りを行なっても管理情報が得られない場合には全セクタの管理情報を参照する前に所定の記憶領域を参照して不良セクタとして登録されているか判定し、不良セクタとして登録されている場合には代替えセクタにデータの書込みを行なうようにする。これによって、予備のセクタを持つ記憶装置において、不良セクタへのアクセスがあったときに効率良く代替えセクタへの書込みを行なうことができる。
【００１０】
さらに、データの書込みの際に当該セクタの管理情報の読み取りを行なっても管理情報が得られない場合であって不良セクタとしても登録されていない場合に、全セクタの管理情報を参照して置換えセクタが存在しないときには、当該セクタを不良セクタとして登録しかつ代替えセクタを設定して当該代替えセクタにデータの書込みを行なうようにする。また、この場合、当該代替えセクタの管理情報記憶部がセクタ番号が入るセクタポインタ領域を有するときは、セクタポインタ領域に自分自身を指す情報（自己のセクタ番号）を書き込むようにする。これによって、置換えがなされていないセクタのデータが破壊されて不良セクタとなった場合にも全体の記憶容量を減少させることがない。
【００１１】
【発明の実施の形態】
以下、本発明の好適な実施例を図面に基づいて説明する。
【００１２】
図１は、本発明を適用したフラッシュメモリカードの一実施例を示す。
【００１３】
この実施例のメモリカードは、特に制限されないが、ｎ個のフラッシュメモリチップＦＭ１〜ＦＭｎと、外部とのインタフェースおよびバスの切換え、アドレス信号や制御信号に基づいて各メモリチップに対する選択信号の形成、ＥＣＣコードの生成、チェック等の機能を有するコントローラチップＣＯＮＴ、外部から供給されるコマンドに基づいてフラッシュメモリチップに対する書込み、読出し制御やメモリチップから読み出された管理情報等に基づいてセクタ番号の変更などを行なうマイクロプロセッサＭＰＵと、マイクロプロセッサＭＰＵの作業領域として使用されるＤＲＡＭなどからなる作業用メモリＷＭＭとがプリント配線基板１０上に搭載され、全体が樹脂等によりモールドされて構成される。
【００１４】
上記コントローラチップＣＯＮＴはゲートアレイで構成され、基板１０上に形成されたアドレス＆コントロールバス１１およびデータバス１２を介して上記フラッシュメモリチップＦＭ１〜ＦＭｎおよび作業用メモリＷＭＭに接続されるとともに、外部のパーソナルコンピュータ本体などのカードスロットに挿入される外部端子１３に接続されている。また、上記作業用メモリＷＭＭは、マイクロプロセッサＭＰＵがフラッシュメモリのアクセスを行なう際に論理セクタ番号（論理アドレス）から実セクタ番号（物理アドレス）への変換を行なう際に参照されるアドレス変換テーブルやフラッシュメモリ内のセクタの管理を行なう際に参照される不良セクタテーブルを格納したり、書込みデータを保持したり書込みデータと管理情報とを合成したりするのに使用される。
【００１５】
図２には、上記フラッシュメモリチップＦＬ１〜ＦＬｎ内に構成されるセクタの構成例と、作業用メモリＷＭＭ内に格納される不良セクタテーブルの一例とが示されている。特に制限されないが、各セクタは、図２（ａ）に示すように、５１２バイトのような記憶容量を有する本来のデータの記憶部ＤＡＴＡと、当該セクタの管理情報が記憶される１６バイトのような管理情報記憶部ＭＧＤＴとから構成され、管理情報記憶部ＭＧＤＴは消去回数記憶領域、セクタの置換えの際に対になるセクタの番号が格納されるセクタポインタＳＰ、データ記憶部内のデータのＥＣＣコードが記憶される第１のＥＣＣコード領域および当該管理情報記憶部ＭＧＤＴ内のデータのＥＣＣコードが記憶される第２のＥＣＣコード領域などを含んでいる。
【００１６】
なお、この実施例のメモリカードにおいては、マイクロプロセッサＭＰＵが各セクタの管理情報記憶部ＭＧＤＴ内の消去回数をチェックして所定回数に達したときに所定回数に満たない他のセクタを見つけてそのセクタと置換えを行なうように構成されている。セクタの置換えは、２つのセクタを対となし、図３（ａ）に示すように、それぞれのセクタのセクタポインタＳＰに互いに相手のセクタ番号を記憶するとともに、データ記憶部ＤＡＴＡには相手のセクタに記憶されるべきデータを記憶することにより行なわれる。また、セクタの置換えが行なわれていないセクタのセクタポインタＳＰには自分自身のセクタ番号が格納されるように構成されている。
【００１７】
不良セクタテーブルは、この実施例では図２（ｂ）に示すように、各セクタ番号ｎ−１，ｎ，ｎ＋１，ｎ＋２‥‥‥ごとに代替えセクタ番号（予備セクタの番号）を登録する欄を設けた構成にされており、代替えがなされていないセクタの欄にはオール“１”のデータ（１６ビットのときはＦＦＦＦ）が格納されるようにされている。従って、マイクロプロセッサＭＰＵは、セクタ番号を用いてこの不良セクタテーブルを参照することにより、そのセクタが不良セクタか否か、また不良セクタのときは代替えセクタの番号を知ることができる。
【００１８】
この作業用メモリＷＭＭ内に設けられる不良セクタテーブルは、システムの終了時にフラッシュメモリチップ内に保存し、システムの起動時にフラッシュメモリチップから読み出して作業用メモリＷＭＭ上におくようにすることができる。これによって、電源が遮断されても不良セクタの情報を保持できるとともに、システム起動中は動作速度の遅いフラッシュメモリをアクセスせずに動作速度の速いＤＲＡＭからなる作業メモリＷＭＭをアクセスすればよいので、マイクロプロセッサによる高速な処理が可能になる。
【００１９】
次に、本実施例のメモリカードに外部よりデータ書込みコマンドが入力されたときのマイクロプロセッサＭＰＵによる処理手順を示す図４のフローチャートを用いて、正常時のセクタへのデータの書込み方法および電源遮断等によってデータが破壊されたセクタの修復方法を具体的に説明する。
【００２０】
外部からメモリカードにライトコマンドが発行（入力）されると、マイクロプロセッサＭＰＵは、作業用メモリＷＭＭ内のアドレス変換テーブルを参照して、コマンドとともに入力された論理セクタ番号をフラッシュメモリの実セクタ番号に変換する（手続きＰ２）。次に、この実セクタ番号を用いて当該セクタの管理情報の読み出しを行なって、管理情報が読み出せたか否か判定する（手続きＰ３）。ここで、管理情報が読み出せたときは、セクタポインタＳＰを見てセクタの置換えがあるか否か判定する（手続きＰ４）。セクタの置換えがあるか否かは、セクタポインタ内のセクタ番号が自己のセクタ番号と一致するか否かで判定することができる。すなわち、セクタ番号が一致しているとき置換えがなく、一致しないときは置換えがあると判定される。
【００２１】
次に、置換えがあったときはセクタポインタの示す置換え先のセクタのデータ記憶部にライトデータを書き込む（手続きＰ５）。この書込みはまず当該セクタのデータをすべて消去してから行なう。そのため、マイクロプロセッサは書込みの前に置換え先のセクタから管理情報記憶部内の管理情報を読み出し、内蔵らＭに保持しておく。そして、置換え先セクタのデータを消去し、読み出された管理情報内の消去回数等を更新してから、更新された管理情報とライトデータとを作業用メモリＷＭＭ上で合成して、フラッシュメモリチップへの書込みを行なう。
【００２２】
一方、手続きＰ４で置換えなしと判定したときは、当該セクタのデータ記憶部へライトデータの書込みを行なう（手続きＰ６）。この際にも、当該セクタの管理情報を読み出しておいてデータを消去し、読み出された管理情報内の消去回数等を更新してから更新された管理情報とライトデータを当該セクタに書き込む。
【００２３】
上記手続きＰ３でセクタから管理情報が読み出せなかったときは、当該セクタ番号が不良セクタテーブルに登録されているか調べる（手続きＰ７）。そして、当該セクタが不良セクタとして登録されているか判定する（手続きＰ８）。登録されていたときは、テーブル登録されている代替えセクタ番号を使って代替えセクタに対してライトデータの書込みを行なう（手続きＰ９）。この際にも、当該代替えセクタの管理情報を読み出しておいてデータを消去し、読み出された管理情報内の消去回数等を更新してから更新された管理情報とライトデータを当該セクタに書き込む。
【００２４】
一方、手続きＰ８で、当該セクタが不良セクタとして登録されていいないと判定されたときは、すべてのセクタから管理情報の読出しを行なう（手続きＰ１０）。そして、読み出された管理情報内のセクタポインタを調べて当該セクタを置換え先セクタとして記憶しているものがあるか否か判定する（手続きＰ１１）。記憶しているセクタポインタを有するセクタがあったときはそのセクタのセクタ番号を当該セクタのセクタポインタに入れ、置換え先セクタのデータ記憶領域へライトデータの書込みを行なう（手続きＰ１２）。この際にも、置換え先セクタの管理情報を読み出しておいてデータを消去し、読み出された管理情報内のセクタポインタ等を更新してから更新された管理情報とライトデータを当該セクタに書き込む。
【００２５】
また、手続きＰ１１で当該セクタの番号をセクタポインタに保持するセクタが見つからなかったときは、不良セクタとみなして予備セクタの中から未使用のものを１つ代替えセクタとして割り付け、その代替えセクタの番号を不良セクタテーブルの当該セクタの欄に登録してから、代替えセクタへライトデータを書き込む（手続きＰ１３）。なお、この代替えセクタの管理情報内のセクタポインタには当該セクタの番号を入れる。つまり、とりあえず置換えのないセクタとしておく。
【００２６】
以上の手順に従うと、例えば書込み中に電源が遮断されて図３（ｂ）のように当該セクタ（図ではセクタｊ）のデータが消失したような場合でも、当該セクタと対をなす置換えセクタ（ｉ）のセクタポインタには当該セクタのセクタ番号が残っており、これを手続きＰ１０，Ｐ１１で見つけることができ、見つかった置換えセクタの番号を当該セクタのセクタポインタに書き込むことにより、図３（ｃ）のように、管理情報の消失したセクタを使用可能なセクタとして修復することができる。これによって、メモリ空間が不連続になるのを回避して実記憶容量の減少を防止することができる。
【００２７】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上記実施例においては、すべてのセクタついて不良セクタテーブル上に登録欄を設けているが、不良セクタのみの番号と代替えセクタとを登録するようにしてもよい。また、実施例ではコントローラチップとマイクロプロセッサとを別個に構成しているが、これらをＣＰＵコアをマクロセルとして内蔵したゲートアレイもしくはＡＳＩＣ等により１つの半導体チップとして構成することも可能である。さらに、実施例では、論理セクタ番号から実セクタ番号への変換を作業用メモリＷＭＭ内のアドレス変換テーブルを用いて行なうと説明したが、マイクロプロセッサが演算によって行なうようにすることも可能である。
【００２８】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを内蔵したメモリカードに適用した場合について説明したが、この発明はそれに限定されるものでなく、ＥＥＰＲＯＭチップやＲＡＭチップを内蔵したメモリカードあるいは複数のメモリチップを１枚のボード上に搭載してなるメモリモジュールなどにも利用することができる。
【００２９】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００３０】
すなわち、この発明は、電源遮断等によりデータが破壊されたセクタの修復が可能になり、これによってデータ破壊によるメモリカードの実記憶容量の低下を防止することができるという効果を有する。
【図面の簡単な説明】
【図１】本発明を適用したフラッシュメモリカードの一実施例を示すブロック図である。
【図２】実施例のフラッシュメモリのセクタの構成例および不良セクタテーブルの構成例を示す説明図である。
【図３】セクタの置換えおよびデータ破壊されたセクタの修復の様子を示す説明図である。
【図４】実施例のメモリカードに外部よりデータ書込みコマンドが入力されたときのマイクロプロセッサＭＰＵによる処理手順を示すフローチャートである。
【符号の説明】
１０  プリント配線基板
１１  アドレスバス
１２  データバス
１３  外部端子
ＭＰＵ  マイクロプロセッサ
ＣＯＮＴ          コントローラチップ
ＦＭ１〜ＦＭｎ  フラッシュメモリチップ
【図１】
0003741535.tif 000002
【図２】
0003741535.tif 000003
【図３】
0003741535.tif 000004
【図４】
0003741535.tif 000005