(57)【要約】【課題】半導体メモリカードの大容量化に伴い、外部のデータ管理サイズと半導体メモリカードの内部のデータ管理サイズとが異なることによって書き込みに長時間がかかるという欠点を解消すること。【解決手段】不揮発性記憶装置内の物理ブロックサイズにかかわらず、外部で管理されているサイズに応じた部分物理ブロックを用いる。部分物理ブロック単位でデータを書き込み、物理ブロック単位で消去ブロックを確保することにより書き込みの高速化を図ることができる。【選択図】図１
2005078634.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
コントローラと、を有し、
外部から与えられる論理アドレスに基づいて前記不揮発性メモリにデータを書き込み、及び読み出す不揮発性記憶装置であって、
前記不揮発性メモリは、互いにペアとなる複数の不揮発性メモリ素子から成り、各不揮発性メモリは複数のバンクから成り、各バンクは同一数の複数の物理ブロックから成り、前記各物理ブロックは複数の部分物理ブロックから成るものであり、
外部からは、一連の論理グループアドレスと各論理グループに属する一連の論理ブロックアドレスを含む論理アドレスが与えられるものであり、
前記コントローラは、
ペア毎に各バンクから夫々１つずつ選択される物理ブロックの組を物理ブロックグループとし、その共通する部分物理ブロックの位置に論理ブロックを書き込むものであり、
外部から与えられる論理アドレスのうち論理グループアドレスをその論理グループが属する論理ブロックが記録される部分物理ブロックアドレスに変換するアドレス変換領域を有するアドレス変換テーブルと、
各物理ブロックについて書き込み済み及び消去済みのいずれかを示すエントリテーブルと、
論理ブロックグループを構成する論理ブロックが有効データかどうかを記載した有効データテーブルと、を有し、
書き込みのためのデータとその論理アドレスとが外部から与えられたときに、前記有効データテーブルに基づいて未書き込みの領域に部分物理ブロックグループの単位で当該データを書き込むと共に、前記アドレス変換テーブルにその論理ブロックが属する論理グループに対してその部分物理ブロックを登録し、エントリテーブル及び有効データテーブルを更新することを特徴とする不揮発性記憶装置。
【請求項２】
前記コントローラは、有効データテーブルを検索し、物理ブロックに含まれる有効データが少ない物理ブロックを消去予定物理ブロックとし、消去予定物理ブロックに有効な論理ブロックがなければその論理ブロックを消去し、有効な論理ブロックがあれば消去済みの他の物理ブロックに有効な論理ブロックのデータを集約することによって、消去ブロックを確保する消去ブロック確保手段を有することを特徴とする請求項１記載の不揮発性記憶装置。
【請求項３】
前記不揮発性メモリの物理ブロックグループのデータ容量は論理グループのデータ容量と等しいものであり、部分物理ブロックグループのデータ容量は、論理ブロックのデータ容量及び前記不揮発性記憶装置の外部のデータ管理単位と等しくしたことを特徴とする請求項１記載の不揮発性記憶装置。
【請求項４】
不揮発性メモリと、
コントローラと、を有し、
外部から与えられる論理アドレスに基づいて前記不揮発性メモリにデータを書き込み、及び読み出す不揮発性記憶装置のデータ書き込み方法であって、
前記不揮発性メモリは、互いにペアとなる複数の不揮発性メモリ素子から成り、各不揮発性メモリは複数のバンクから成り、各バンクは同一数の複数の物理ブロックから成り、前記各物理ブロックは複数の部分物理ブロックから成るものであり、
外部からは、一連の論理グループアドレスと各論理グループに属する一連の論理ブロックアドレスを含む論理アドレスが与えられるものであり、
前記コントローラは、
ペア毎に各バンクから夫々１つずつ選択される物理ブロックの組を物理ブロックグループとし、その共通する部分物理ブロックの位置に論理ブロックを書き込むものであり、
外部から与えられる論理アドレスのうち論理グループアドレスをその論理グループが属する論理ブロックが記録される部分物理ブロックアドレスに変換するアドレス変換領域を有するアドレス変換テーブルと、
各物理ブロックについて書き込み済み及び消去済みのいずれかを示すエントリテーブルと、
論理ブロックグループを構成する論理ブロックが有効データかどうかを記載した有効データテーブルと、を有し、
書き込みのためのデータとその論理アドレスとが外部から与えられたときに、前記有効データテーブルに基づいて未書き込みの領域に部分物理ブロックグループの単位で当該データを書き込み、
前記アドレス変換テーブルにその論理ブロックが属する論理グループに対してその部分物理ブロックを登録し、
エントリテーブル及び有効データテーブルを更新することを特徴とする不揮発性記憶装置のデータ書き込み方法。
【請求項５】
前記有効データテーブルを検索し、物理ブロックに含まれる有効データが少ない物理ブロックを消去予定物理ブロックとし、消去予定物理ブロックに有効な論理ブロックがなければその論理ブロックを消去し、有効な物理ブロックがあれば消去済みの他の物理ブロックに有効な論理ブロックのデータを集約することによって、消去ブロックを確保する処理を更に有することを特徴とする請求項４記載の不揮発性記憶装置のデータ書き込み方法。
【請求項６】
前記不揮発性メモリの物理ブロックグループのデータ容量は、論理グループのデータ容量と等しいものであり、部分物理ブロックグループのデータ容量は、論理ブロックのデータ容量及び前記不揮発性記憶装置の外部のデータ管理単位と等しくしたことを特徴とする請求項４記載の不揮発性記憶装置のデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は書き換え可能な不揮発性メモリを有する不揮発性記憶装置及びその書込み方法に関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを有する半導体メモリは、メモリカードとして需要が広まっている。そのメモリカードに主に使用されている不揮発性メモリであるＮＡＮＤ型フラッシュメモリは、１６ＫＢを消去単位としてきた。そのためにメモリカードを使用する外部ホスト機器は１６ＫＢというサイズを書き込みの管理単位として使用している。
【０００３】
しかし、近年メモリカードの容量の増加のために、内蔵するＮＡＮＤ型フラッシュメモリ容量も増加し、それに伴い消去単位を１２８ＫＢとしたＮＡＮＤ型フラッシュメモリが提案されている。しかし、メモリカードを使用する外部ホスト機器からの１６ＫＢ単位での書き込みに対して、メモリカード内部のコントローラではＮＡＮＤ型フラッシュメモリの消去単位である１２８ＫＢ単位として扱うために、ホスト機器からみて相対的に１６ＫＢ単位の書き込みに要する時間がかかるという欠点があった。
【０００４】
次に従来の半導体メモリカードについてより具体的に説明する。図１０は従来のメモリカード１００を示す図であり、コントローラ１０１と不揮発性メモリであるフラッシュメモリＦＭ０〜ＦＭ３が設けられている。各フラッシュメモリＦＭ０〜ＦＭ３は夫々例えば１２８ＭＢの容量を有しており、有効データ領域として５００ＭＢのメモリカードを構成している。又コントローラ１０１は図１０に示すように、ＣＰＵ１１１、２ＫＢの容量を持つ一時退避バッファ１１２、５１２Ｂの容量を持つデータ転送バッファ１１３、１２ビットで４ＫＷｏｒｄ構成、即ち６ＫＢの容量を持つアドレス変換テーブル１１４、及び１ビットで４ＫＷｏｒｄ構成、即ち全５１２Ｂの容量を持つエントリテーブル１１５によって構成されている。
【０００５】
さてフラッシュメモリＦＭ０〜ＦＭ３は図１０に示すように、夫々１２８ＭＢの容量を持っている。各フラッシュメモリＦＭ０〜ＦＭ３は図１１（ａ）に示すように、夫々が１２８ＫＢの容量を持つ１０２４の物理ブロック（ＰＢ０〜ＰＢ１０２３）によって構成される。これによってメモリカード１００の不揮発性メモリの全容量は５１２ＭＢとなり、このうちホスト機器１０２がデータ領域として使用できる容量は５００ＭＢである。
【０００６】
図１１（ｂ）はフラッシュメモリ内の１つの物理ブロックＰＢｉ（ｉ＝０〜１０２３）の構成を示している。物理ブロックは物理ページＰＰ０〜ＰＰ６３までの６４の物理ページから成り立っている。各物理ページは図１２に示すように、２ＫＢの容量を持つデータ領域と、６４Ｂの容量を持つ管理領域から成り立っている。
【０００７】
さてこのメモリカード１００は外部のホスト機器１０２から見て５００ＭＢのメモリ容量があり、図１３に示すような論理マップによって論理アドレスが割り付けられる。即ち５００ＭＢのデータ領域は論理ブロック０から論理ブロック３９９９まで４０００の論理ブロック（ＬB）に分割され、各論理ブロックが１２８ＫＢの容量を持つ。この論理ブロックアドレスはホスト機器が指定するアドレスと対応している。
【０００８】
図１０に示すアドレス変換テーブル１１４は論理グループを示す論理アドレスが与えられたときに、フラッシュメモリとその中の物理ブロックを指定するものである。このうち最初の２ビットはフラッシュメモリＦＭ０からＦＭ３のどれかを示すビット、続く１０ビットはそのフラッシュメモリ内のどの物理ブロックかを示すビットである。又エントリテーブル１１５は、４０９６の物理ブロックに対応した１ビット構成のフラグから成るテーブルである。このフラグは消去済みであれば１、書込み済みの場合は０とする。
【０００９】
次にデータの読み出し処理について、図１４のデータ読み出しの概略図を用いて説明する。ホスト機器１０２からの論理アドレスのうち、１２８ＫＢ単位のアドレスを論理ブロックアドレス、１２８ＫＢ未満のアドレスを論理ページアドレスとする。論理ブロックアドレスを元にアドレス変換テーブル１１４から物理ブロックを指定し、これを読み出し元物理ブロックとする。そして読み出し元物理ブロックの論理ページアドレスのデータを読み出してデータ転送バッファ１１３を介してホスト機器１０２に転送する。そして読み出しが終了したかどうかをチェックし、終了していなければ論理ページアドレスがブロック内で最終となったかどうかをチェックする。最終でなければ論理ページアドレスをインクリメントし、同様の処理を繰り返す。論理ページアドレスがブロック内で最終となれば、論理ページアドレスを０とし、論理ブロックアドレスをインクリメントして同様の処理を繰り返す。こうすれば指定された論理アドレスからデータを読み出すことができる。
【００１０】
次に書込みの処理について図１５のフローチャートを用いて説明する。データを書込む際には、まずステップＳ３０１においてホスト機器１０２からの論理アドレスのうち、１２８ＫＢ単位のアドレスを論理ブロックアドレスとし、１２８ＫＢ単位未満のアドレスを論理ページアドレスとする。次いでステップＳ３０２においてエントリテーブルを検索し、消去済みの物理ブロックを得て書込み先物理ブロックとする。そしてエントリテーブル１１５の該当ビットを書込み済み「０」に更新する。次いでステップＳ３０３に進んで論理ページアドレスが０かどうかをチェックし、０でなければ後述する前半巻き込み処理を行い（ステップＳ３０４）、論理ページアドレスが０であればこの処理を行うことなくステップＳ３０５に進む。そしてステップＳ３０５において、ホスト機器からの書込みデータをページバッファを介してフラッシュメモリに転送し、書込み先物理ブロックの論理ページアドレスに書込む。このとき管理領域に書込むための管理情報を同時に書込んでおく。そしてステップＳ３０６において書込みを終了したかどうかをチェックし、終了していなければステップＳ３０７において論理ページアドレスがブロック内の最終かどうかをチェックする。最終でなければステップＳ３０８において論理ページアドレスをインクリメントし、ステップＳ３０５に戻る。論理ページアドレスが最終ブロックであれば、ステップＳ３０９において消去とテーブル更新を行い、ステップＳ３１０において論理ページアドレスを０、論理ブロックアドレスをインクリメントして、ステップＳ３０２に戻る。又ステップＳ３０６において書込みが終了すれば、ステップＳ３１１において論理ページアドレスがブロック内最終かどうかをチェックする。最終でなければステップＳ３１２において後半の巻き込み処理を行い、ブロック内で最終であれば、この処理を行うことなくステップＳ３１３に進んで消去とテーブル更新を行って処理を終える。
【００１１】
このように従来の不揮発性記憶装置のデータ書き込み方法によれば、図１６に示すように読出し元物理ブロック１２０が１２８ＫＢあり、そのうちのホスト機器が管理する１６ＫＢの新しいデータ１２２を書込む場合であっても、書込み先物理ブロック１２１は１２８ＫＢ単位で書き込みを行う。読出し元物理ブロック１２０のうち物理ブロックに書込まない前半の領域１２０−１については、前半巻き込み処理によってフラッシュメモリの書込み先物理ブロック１２１−１にコピーする。同様に後半の領域１２０−２についても、後半の巻き込み処理によって書込みページアドレス以降の論理ページアドレスについて書込み先物理ブロック１２１−２にコピーする。従って従来のデータ書き込み処理によれば、図１６に示すように外部のホスト機器で管理されているデータ処理単位が１６ＫＢであっても、書き込み先の物理ブロック単位で書き込まれることとなる。
【非特許文献１】トランジスタ技術社発行、「インターフェイス」１９９９年１２月号、Ｐ１０８〜１１９
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このように従来の不揮発性記憶装置のデータ書き込み方法によれば、フラッシュメモリの消去サイズより小さなデータを書込むときに、メモリカード内部においてはフラッシュメモリの消去サイズと同等のデータを書き込むため、書き込み速度が低下するという欠点があった。
【００１３】
本発明はこのような従来の問題点に鑑みてなされたものであって、書き込みの単位を小さくして高速で書き込みを行うことができるようにすると共に、書込まれたデータを集約することによって消去済みのブロックを確保し、確保した消去済みの領域を次の書込みを容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
この課題を解決するために、本発明は、不揮発性メモリと、コントローラと、を有し、外部から与えられる論理アドレスに基づいて前記不揮発性メモリにデータを書き込み、及び読み出す不揮発性記憶装置であって、前記不揮発性メモリは、互いにペアとなる複数の不揮発性メモリ素子から成り、各不揮発性メモリは複数のバンクから成り、各バンクは同一数の複数の物理ブロックから成り、前記各物理ブロックは複数の部分物理ブロックから成るものであり、外部からは、一連の論理グループアドレスと各論理グループに属する一連の論理ブロックアドレスを含む論理アドレスが与えられるものであり、前記コントローラは、ペア毎に各バンクから夫々１つずつ選択される物理ブロックの組を物理ブロックグループとし、その共通する部分物理ブロックの位置に論理ブロックを書き込むものであり、外部から与えられる論理アドレスのうち論理グループアドレスをその論理グループが属する論理ブロックが記録される部分物理ブロックアドレスに変換するアドレス変換領域を有するアドレス変換テーブルと、各物理ブロックについて書き込み済み及び消去済みのいずれかを示すエントリテーブルと、論理ブロックグループを構成する論理ブロックが有効データかどうかを記載した有効データテーブルと、を有し、書き込みのためのデータとその論理アドレスとが外部から与えられたときに、前記有効データテーブルに基づいて未書き込みの領域に部分物理ブロックグループの単位で当該データを書き込むと共に、前記アドレス変換テーブルにその論理ブロックが属する論理グループに対してその部分物理ブロックを登録し、エントリテーブル及び有効データテーブルを更新することを特徴とするものである。
【００１５】
ここで、前記コントローラは、有効データテーブルを検索し、物理ブロックに含まれる有効データが少ない物理ブロックを消去予定物理ブロックとし、消去予定物理ブロックに有効な論理ブロックがなければその論理ブロックを消去し、有効な論理ブロックがあれば消去済みの他の物理ブロックに有効な論理ブロックのデータを集約することによって、消去ブロックを確保する消去ブロック確保手段を有するものであってもよい。
【００１６】
ここで、前記不揮発性メモリの物理ブロックグループのデータ容量は論理グループのデータ容量と等しいものであり、部分物理ブロックグループのデータ容量は、論理ブロックのデータ容量及び前記不揮発性記憶装置の外部のデータ管理単位と等しくしたものであってもよい。
【発明の効果】
【００１７】
このような特徴を有する本発明によれば、データ書き込みの際の書き込み単位をホスト機器で用いられているデータ書き込み単位と同一とし、しかもメモリカード内の不揮発性メモリの消去単位が大容量化により拡大した場合であっても外部ホスト機器からみたデータの書き込みを短時間で行うことができる。又書き込み領域のうちの一部が使用されている場合であっても、消去済みのブロックの確保処理を行うことによって書き込み可能な領域を形成することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１８】
図１は本発明の実施の形態によるメモリカードの構成を示すブロック図である。本図に示すようにメモリカード２１はコントローラ２２及び不揮発性メモリ、例えば１２８ＭＢの容量を持つフラッシュメモリＦＭ０〜ＦＭ３によって構成されている。コントローラ２２はＣＰＵ３１、５１２Ｂの容量を持つ一時退避バッファ３２、５１２Ｂの容量を持つデータ転送バッファ３３、１５ビットで４ＫＷｏｒｄの構成、即ち７．５ＫＢの容量を持つアドレス変換テーブル３４と、１ビットで３２ＫＷｏｒｄの構成、即ち４ＫＢの容量を持つエントリテーブル３５及び８ビットで４ＫＷｏｒｄの構成、即ち４ＫＢの容量を持つ有効データテーブル３６によって構成されている。
【００１９】
さてフラッシュメモリＦＭ０〜ＦＭ３は図２（ａ）に示すように、夫々１６ＫＢのデータ容量を持つ８０９２の物理ブロックＰＢ０〜ＰＢ８１９１によって構成される。又１つのフラッシュメモリはバンク０〜３の４つのバンクから成り、各バンクは２０４８の物理ブロックから構成されている。バンク０には４の倍数である物理ブロックＰＢ０，ＰＢ４・・・ＰＢ８１８８が含まれる。バンク１には４の倍数＋１の物理ブロック、即ちＰＢ１，ＰＢ５・・・ＰＢ８１８９が含まれ、バンク２には４の倍数＋２である物理ブロックＰＢ２，ＰＢ６・・・ＰＢ８１９０が含まれ、又バンク３には４の倍数＋３である物理ブロックＰＢ３，ＰＢ７・・・ＰＢ８１９１が含まれる。
【００２０】
図２（ｂ）はメモリ内の１つの物理ブロックＰＢｉ（ｉ＝０〜８１９１）の構成を示している。各物理ブロックは物理ページＰＰ０〜ＰＰ３１の３２個の物理ページから構成されている。各物理ページは５１２Ｂのデータ容量を持つ。この物理ページはデータの書き込み単位であり、４ページ、即ち２ＫＢを部分物理ブロックとする。１物理ブロック中には８つの部分物理ブロックが含まれる。そして４つのフラッシュメモリ０〜３を、フラッシュメモリＦＭ０とＦＭ１、ＦＭ２とＦＭ３でペアにして２つのグループとする。これらの各グループに含まれる８つのバンクの夫々から、消去済みである物理ブロックを夫々１つ選択し、８つの物理ブロックから成る物理ブロックグループを構成する。
【００２１】
さて論理アドレスは実施の形態１と同様に、論理グループＬＧ０〜ＬＧ３９９９に対して論理ブロックＬＢ０〜ＬＢ３２７６７までの論理ブロックが構成される。アドレス変換テーブル３４は論理グループに対して１５ビット構成で部分物理ブロックを特定している。このうち１ビットはフラッシュメモリのペアを特定するビットであり、１１ビットは物理ブロックグループを特定するビット、３ビットはその物理ブロックグループ内の先頭バンクの物理ブロックの中の部分物理ブロックを特定するビットである。実施の形態２では複数の物理ブロックをグループ化しているため、このアドレステーブルもグループの先頭のみを示している。又エントリテーブルは１ビットで３２ＫＷ構成で、各物理ブロックについて消去済みか書き込み済みかを示すものである。
【００２２】
図３はフラッシュメモリとその上に構成される論理ブロックを示す図である。物理ブロックグループに含まれる物理ブロックの物理ページを４ページ単位の８つの部分物理ブロックに分割し、夫々の物理ブロックから同じ位置の部分物理ブロックを取り出し、これらを１つの単位として論理ブロックとする。例えばフラッシュメモリＦＭ０とＦＭ１の各バンク０〜３の全てについて、物理ページＰＰ０〜ＰＰ３を取り出して論理ブロック（LB）を構成している。言い換えると論理ブロックは１つの物理ブロックグループに属し、８つの物理ブロックから成り、物理ブロックから物理ページを４ページ、すなわち1部分物理ブロックを夫々選択しており、物理ブロック内における相対的な物理ページ位置は同じである。このようにある論理ブロックのデータは部分物理ブロックグループに書き込まれる。
【００２３】
コントローラ２２は論理ブロック単位でデータを書き込み管理する。有効なデータの集約や無効なブロックの消去を行うために論理ブロック単位でそこに有効なデータが書かれているか、それとも既に無効なデータかを認識する必要がある。そのため論理グループの先頭に対してその論理グループのデータが有効か無効かを１ビットの情報として有効データテーブル３６として持っている。図４はこの有効データテーブル３６の構成を示す図である。論理ブロックの先頭はフラッシュメモリＦＭ０とＦＭ２のバンク０にのみ存在する。従ってフラッシュメモリＦＭ０，ＦＭ２のバンク０の物理ブロック２×８Ｋ／４バンクの全てに１Ｗｏｒｄ（８ビット）を割り当て、物理ブロック内の各部分物理ブロックが有効なデータかどうかを１ビットで表す。従って有効データテーブルの全てが１でないワードを選択することで消去対象を見つけることができる。
【００２４】
ここでコントローラ２２のＣＰＵ３１は、有効データテーブルを検索し、物理ブロックに含まれる有効データが少ない物理ブロックを消去予定物理ブロックとし、消去予定物理ブロックに有効な論理ブロックがなければその論理ブロックを消去し、有効な論理ブロックがあれば消去済みの他の物理ブロックに有効な論理ブロックのデータを集約することによって、消去ブロックを確保する消去ブロック確保手段の機能を有している。
【００２５】
次にこの実施の形態の動作についてフローチャートを用いて説明する。まず電源投入時には最終書き込み論理グループアドレスを無効値とし、エントリカウンタを０とする。エントリカウンタとは物理ブロックグループにおける部分物理ブロックの位置を指定するために使用される。そして書き込み処理時には図５のフローチャートに示すように、ホスト機器３からの論理アドレスのうち１２８ＫＢ単位のアドレスを論理グループアドレス、１６ＫＢ単位のアドレスを論理ブロックアドレス、１６ＫＢ単位未満のアドレスを論理ページアドレスとする。次いでステップＳ２０２に進んで、論理グループアドレスを元にアドレス変換テーブル３４から得られる部分物理ブロックをテーブル部分物理ブロックとする。次いでステップＳ２０３に進んで、テーブル部分物理ブロックのアドレステーブルを読み出して保持する。そしてステップＳ２０４に進んで後述する書き込み先の決定処理を行い、ステップＳ２０５において、コントローラに保持したアドレステーブルのうち論理ブロックアドレスに対応するアドレスを読み込み元部分物理ブロックとして保持する。実施の形態２では複数の物理ブロックをグループ化しているため、このアドレステーブルもグループの先頭のみを示している。次いでステップＳ２０６において、コントローラに保持したアドレステーブルのうち論理ブロックアドレスに対応するアドレスを書き込み先部分物理ブロックグループの先頭の部分物理ブロックに差し替える。そしてステップＳ２０７において論理ページアドレスが０かどうかをチェックし、０でなければ前半巻き込み処理ステップＳ２０８を行う。論理ページアドレスが０であればステップＳ２０９に進んでホスト機器からの書き込みデータをデータ転送バッファ３３を介してフラッシュメモリに転送し、書き込み先部分物理ブロックに書き込む。又このとき管理領域に書き込む管理情報も同時に書き込む。実施の形態２では２つのフラッシュメモリの８つのブロックに並列して書き込みを行っているため、高速で書き込み処理が行える。
【００２６】
そして図６のステップＳ２１０において、書き込みが終了したかどうかをチェックし、終了していなければ、ステップＳ２１１に進んで論理ブロック境界までの書き込みが終了したかどうかをチェックする。ブロック境界まで書き込みが終了していなければ、図５のステップＳ２０９に戻って同様の処理を繰り返す。さてステップＳ２１１においてブロック境界まで書き込みを終了していると、ステップＳ２１２においてテーブルを更新し、ステップＳ２１３において論理ブロックアドレスが論理グループ内の最終かどうかをチェックする。最終でなければ、ステップＳ２１４において論理ページアドレスを０、論理ブロックアドレスをインクリメントしてステップＳ２０４に戻る。又論理グループ内で最終であればステップＳ２１５において論理ページアドレスを０、論理ブロックアドレスと論理グループアドレスとをインクリメントしてステップＳ２０２に戻る。一方ステップＳ２１０において書き込みが終了していれば、ステップＳ２１６において、論理ページアドレスがブロック内で最終かどうかをチェックする。最終でなければステップＳ２１７において後半巻き込み処理を行う。最終であれば、ステップＳ２１８においてテーブル更新を行って処理を終える。
【００２７】
図７はステップＳ２０４の書き込み先決定処理を示すフローチャートである。この処理を開始すると、まずステップＳ２２１において、論理グループアドレスが最終グループアドレスと同一かどうかをチェックする。同一であればステップＳ２２２においてエントリカウンタが８未満かどうかをチェックする。論理グループアドレスが最終書き込み論理グループアドレスと同一でないか、エントリカウンタが８以上であれば、ステップＳ２２３に進んで空き領域をチェックする。空き領域がなければステップＳ２２４において後述する消去ブロック確保処理を行い、空き領域があればステップＳ２２５においてエントリテーブルを検索し、消去済みの物理ブロックグループを得て書き込み先物理ブロックグループとする。そしてエントリテーブルの該当ビットを書き込み済み「０」に更新し、エントリカウンタを０とする（ステップＳ２２２）。一方ステップＳ２２２においてエントリーカウンタが８未満であれば、ステップＳ２２７においてエントリカウンタをインクリメントする。そしてステップＳ２２８において書き込み物理ブロックグループのエントリカウンタ番目の部分物理ブロックのグループを書き込み先部分物理ブロックグループとする。
【００２８】
次にステップＳ２２４の消去ブロック確保処理について、図８のフローチャートについて説明する。動作を開始すると、まずステップＳ２３１において有効データテーブルを順に検索し、物理ブロック内に含まれる有効データが最も少ない物理ブロックを得て第１の消去予定ブロックとする。次いでステップＳ２３２において第１の消去予定ブロックに有効な論理ブロックが含まれないどうかをチェックする。有効な論理ブロックがなければ、ステップＳ２３３においてこの第１の消去予定物理ブロックを消去し、ステップＳ２３４においてエントリテーブルのこの消去予定ブロックに該当するデータを消去済み「１」に更新する。一方ステップＳ２３２において第１の消去予定ブロックに含まれる有効な論理ブロックがあれば、ステップＳ２３５に進む。そしてその物理ブロックに含まれる論理ブロックに書かれている論理アドレスの論理グループを元にアドレス変換テーブルからアドレステーブルを読み出す。次いでステップＳ２３６において、アドレステーブルから論理グループの有効な論理ブロックがどの物理ブロックに含まれるかを調べ、第２の消去予定物理ブロックから順次最大で第８の消去予定物理ブロックまでを得る。この場合、最小では第１の消去予定物理ブロックのみとなる。次いでステップＳ２３７においてエントリテーブルを検索し、消去済みの物理ブロックを得てその先頭の部分物理ブロックを書き込み先物理ブロックとする。又エントリテーブルの該当ビットを書き込み済み「０」に更新する。次いでステップＳ２３８において、アドレステーブルから有効な論理ブロックの物理アドレスを元にデータを書き込み先物理ブロックにコピーする。これによって集約先に対してデータを集約する。次にステップＳ２３９において、第１から最大で第８の消去予定物理ブロックまで消去予定物理ブロックを順次消去する。これによって分散している物理ブロックを消去することができる。次いでステップＳ２４０に進んで、エントリテーブルの第１の消去予定物理ブロックに該当するデータから最大第８の消去予定物理ブロックに該当するデータまでを、順次消去済み「１」として消去ブロック確保の処理を終える。
【００２９】
次にステップＳ２１２,２１８のテーブル更新処理について、図９のフローチャートを用いて説明する。テーブル更新処理では、ステップＳ２５１においてアドレス変換テーブルの論理グループアドレスのデータを書き込み先部分物理ブロックグループの先頭の部分物理ブロックに書き換える。そしてステップＳ２５２において最終書き込み論理グループアドレスを論理グループアドレスとして処理を終える。
【００３０】
尚ここで説明した各実施の形態でのデータ容量などの数値は一例であり、他の数値としても良いことはいうまでもない。
【産業上の利用可能性】
【００３１】
本発明は書き換え可能な不揮発性メモリを有する不揮発性記憶装置及びその書込み方法であって、大容量化した場合にも従来例に比べて書き込み速度を高速化することができる。そのため大容量化で高速で書き込みが必要な不揮発性メモリの種々の用途に使用することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態による不揮発性記憶装置の全体構成を示すブロック図である。
【図２】実施の形態によるフラッシュメモリとその物理ブロックの構成を示す図である。
【図３】実施の形態によるフラッシュメモリとその上に構成される論理ブロックを示す図である。
【図４】実施の形態による有効データテーブルの一例を示す図である。
【図５】実施の形態によるデータ書き込み処理を示すフローチャート（その１）である。
【図６】実施の形態によるデータ書き込み処理を示すフローチャート（その１）である。
【図７】実施の形態による書き込み先決定処理を示すフローチャートである。
【図８】実施の形態による消去ブロック確保処理を示すフローチャートである。
【図９】実施の形態によるテーブル更新処理を示すフローチャートである。
【図１０】従来の不揮発性メモリの構成を示す図である。
【図１１】従来のフラッシュメモリ、及びその物理ブロックの構成を示す図である。
【図１２】従来の物理ブロックに書き込まれる論理ページの構成を示す図である。
【図１３】従来の論理ブロックの構成を示す図である。
【図１４】従来の不揮発性メモリのデータ読み出し時の動作を示す概略図である。
【図１５】従来の不揮発性記憶装置のデータ書き込み処理を示すフローチャートである。
【図１６】従来のデータ書き込み時の動作を示す概略図である。
【符号の説明】
【００３３】
２１  メモリカード
２１  コントローラ
３１  ＣＰＵ
３２  一時退避バッファ
３３  データ転送バッファ
３４  アドレス変換テーブル
３５  エントリテーブル
３６  有効テーブル
ＦＭ０〜ＦＭ３  フラッシュメモリ
【図１】
2005078634.tif 000003
【図２】
2005078634.tif 000004
【図３】
2005078634.tif 000005
【図４】
2005078634.tif 000006
【図５】
2005078634.tif 000007
【図６】
2005078634.tif 000008
【図７】
2005078634.tif 000009
【図８】
2005078634.tif 000010
【図９】
2005078634.tif 000011
【図１０】
2005078634.tif 000012
【図１１】
2005078634.tif 000013
【図１２】
2005078634.tif 000014
【図１３】
2005078634.tif 000015
【図１４】
2005078634.tif 000016
【図１５】
2005078634.tif 000017
【図１６】
2005078634.tif 000018