(57)【特許請求の範囲】
【請求項１】
不揮発性メモリと、
コントローラと、を有し、
外部から与えられる論理アドレスに基づいて前記不揮発性メモリにデータを書き込み、及び読み出す不揮発性記憶装置であって、
前記不揮発性メモリは、複数の物理ブロックから成り、前記各物理ブロックは複数の物理ページで構成される部分物理ブロックから成り、前記各物理ページは前記データを書き込むデータ領域と管理情報を書き込む管理領域とから成るものであり、
外部からは、一連の論理グループアドレスと各論理グループに属する一連の論理ブロックアドレスと各論理ブロックに属する一連のページアドレスとを含む論理アドレスが与えられるものであり、
前記論理ブロックのサイズは前記不揮発性メモリの部分物理ブロックのサイズに相当するものであり、
前記コントローラは、
外部から与えられる論理アドレスのうち論理グループアドレスをその論理グループに属する論理ブロックが記録される物理ブロックアドレスに変換するアドレス変換領域、及びある論理グループのデータが複数の物理ブロックに重複して記録された場合に、重複して記録されている物理ブロックアドレスを示す重複アドレス登録領域を有するアドレス変換テーブルと、
各物理ブロックについて書き込み済み及び消去済みのいずれかを示すエントリーテーブルと、を有し、
書き込みのためのデータとその論理アドレスとが外部から与えられたときに、未書き込みの領域に前記論理アドレスの論理ブロックのデータを部分物理ブロックの単位で前記データ領域に書き込むと同時に、前記論理ブロックが有する論理グループに含まれる全ての論理ブロックのデータが書き込まれた部分物理ブロックのアドレスを示すアドレステーブルを前記管理領域に書き込み、その後前記アドレス変換テーブルのアドレス変換領域又は重複アドレス登録領域を更新することを特徴とする不揮発性記録装置。
【請求項２】
前記コントローラは、前記アドレス変換領域の前記重複アドレス登録領域に登録可能な空きがないとき、前記アドレス変換領域の前記重複アドレス登録領域を参照し、複数の物理ブロックに重複して記録されている論理グループのデータについていずれかの物理ブロックに当該論理グループのデータを集約することによって消去ブロックを確保する消去ブロック確保手段を有することを特徴とする請求項１記載の不揮発性記憶装置。
【請求項３】
前記消去ブロック確保手段は、ある物理ブロックについて書き込み済み領域及び未書き込み領域があり、且つその物理ブロックに記録されている論理グループに属する論理ブロックのデータが他の物理ブロックから移動できる場合に、その物理ブロックに集約することによって、消去ブロックを確保することを特徴とする請求項２記載の不揮発性記憶装置。
【請求項４】
前記消去ブロック確保手段は、ある物理ブロックについて同一論理グループに属する一部の論理ブロックが記録され、その物理ブロックの未書き込み領域に当該論理グループに属する他の論理ブロックのデータを書き込むことができない場合に、前記エントリテーブルを参照して新たな未書き込みの物理ブロックを検索し、検索した物理ブロックに同一論理グループに属する全ての論理ブロックのデータを書き込むことによって、消去ブロックを確保することを特徴とする請求項２記載の不揮発性記憶装置。
【請求項５】
前記不揮発性メモリの物理ブロックを構成する部分物理ブロックのデータ容量は、前記不揮発性記憶装置の外部のデータ管理単位と等しくしたことを特徴とする請求項１記載の不揮発性記憶装置。
【請求項６】
前記論理グループは、アクセス数の多い上位グループについて、他の論理グループよりもデータ容量を少なくした論理グループから成ることを特徴とする請求項１記載の不揮発性記憶装置。
【請求項７】
不揮発性メモリと、
コントローラと、を有し、
外部から与えられる論理アドレスに基づいて前記不揮発性メモリにデータを書き込み、及び読み出す不揮発性記憶装置のデータ書き込み方法であって、
前記不揮発性メモリは、複数の物理ブロックから成り、前記各物理ブロックは複数の物理ページで構成される部分物理ブロックから成り、前記各物理ページは前記データを書き込むデータ領域と管理情報を書き込む管理領域とから成るものであり、
外部からは、一連の論理グループアドレスと各論理グループに属する一連の論理ブロックアドレスと各論理ブロックに属する一連のページアドレスとを含む論理アドレスが与えられるものであり、
前記論理ブロックのサイズは前記不揮発性メモリの部分物理ブロックのサイズに相当するものであり、
前記コントローラは、
外部から与えられる論理アドレスのうち論理グループアドレスをその論理グループに属する論理ブロックが記録される物理ブロックアドレスに変換するアドレス変換領域、及びある論理グループのデータが複数の物理ブロックに重複して記録された場合に、重複して記録されている物理ブロックアドレスを示す重複アドレス登録領域を有するアドレス変換テーブルと、
各物理ブロックについて書き込み済み及び消去済みのいずれかを示すエントリテーブルと、を有し、
書き込みのためのデータとその論理アドレスとが外部から与えられたときに、未書き込みの領域に前記論理アドレスの論理ブロックのデータを部分物理ブロックの単位で前記データ領域に書き込むと同時に、前記論理ブロックが有する論理グループに含まれる全ての論理ブロックのデータが書き込まれた部分物理ブロックのアドレスを示すアドレステーブルを前記管理領域に書き込み、その後前記アドレス変換テーブルのアドレス変換領域又は重複アドレス登録領域を更新することを特徴とする不揮発性記憶装置のデータ書き込み方法。
【請求項８】
前記アドレス変換領域の前記重複アドレス登録領域に登録可能な空きがないとき、前記アドレス変換領域の前記重複アドレス登録領域を参照し、複数の物理ブロックに重複して記録されている論理グループのデータについていずれかの物理ブロックに当該論理グループのデータを集約することによって消去ブロックを確保する処理を更に有することを特徴とする請求項７記載の不揮発性記憶装置のデータ書き込み方法。
【請求項９】
前記消去ブロック確保処理は、ある物理ブロックについて書き込み済み領域及び未書き込み領域があり、且つその物理ブロックに記録されている論理グループに属する論理ブロックのデータが他の物理ブロックから移動できる場合に、その物理ブロックに集約することによって、消去ブロックを確保するものであることを特徴とする請求項７記載の不揮発性記憶装置のデータ書き込み方法。
【請求項１０】
前記消去ブロック確保処理は、ある物理ブロックについて同一論理グループに属する一部の論理ブロックが記録され、その物理ブロックの未書き込み領域に当該論理グループに属する他の論理ブロックのデータを書き込むことができない場合に、前記エントリテーブルを参照して新たな未書き込みの物理ブロックを検索し、検索した物理ブロックに同一論理グループに属する全ての論理ブロックのデータを書き込むことによって、消去ブロックを確保するものであることを特徴とする請求項７記載の不揮発性記憶装置のデータ書き込み方法。
【請求項１１】
前記不揮発性メモリの物理ブロックを構成する部分物理ブロックのデータ容量は、前記不揮発性記憶装置の外部のデータ管理単位と等しくしたことを特徴とする請求項７記載の不揮発性記憶装置のデータ書き込み方法。
【請求項１２】
前記論理グループは、アクセス数の多い上位グループについて他の論理グループよりもデータ容量を少なくした論理グループから成ることを特徴とする請求項７記載の不揮発性記憶装置のデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は書き換え可能な不揮発性メモリを有する不揮発性記憶装置及びその書込み方法に関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを有する半導体メモリは、メモリカードとして需要が広まっている。そのメモリカードに主に使用されている不揮発性メモリであるＮＡＮＤ型フラッシュメモリは、１６ＫＢを消去単位としてきた。そのためにメモリカードを使用する外部ホスト機器は１６ＫＢというサイズを書き込みの管理単位として使用している。
【０００３】
しかし、近年メモリカードの容量の増加のために、内蔵するＮＡＮＤ型フラッシュメモリ容量も増加し、それに伴い消去単位を１２８ＫＢとしたＮＡＮＤ型フラッシュメモリが提案されている。しかし、メモリカードを使用する外部ホスト機器からの１６ＫＢ単位での書き込みに対して、メモリカード内部のコントローラではＮＡＮＤ型フラッシュメモリの消去単位である１２８ＫＢ単位として扱うために、ホスト機器からみて相対的に１６ＫＢ単位の書き込みに要する時間がかかるという欠点があった。
【０００４】
次に従来の半導体メモリカードについてより具体的に説明する。第１図は従来のメモリカード１００を示す図であり、コントローラ１０１と不揮発性メモリであるフラッシュメモリＦＭ０〜ＦＭ３が設けられている。各フラッシュメモリＦＭ０〜ＦＭ３は夫々例えば１２８ＭＢの容量を有しており、有効データ領域として５００ＭＢのメモリカードを構成している。又コントローラ１０１は第１図に示すように、ＣＰＵ１１１、２ＫＢの容量を持つ一時退避バッファ１１２、５１２Ｂの容量を持つデータ転送バッファ１１３、１２ビットで４ＫＷｏｒｄ構成、即ち６ＫＢの容量を持つアドレス変換テーブル１１４、及び１ビットで４ＫＷｏｒｄ構成、即ち全５１２Ｂの容量を持つエントリテーブル１１５によって構成されている。
【０００５】
さてフラッシュメモリＦＭ０〜ＦＭ３は第１図に示すように、夫々１２８ＭＢの容量を持っている。各フラッシュメモリＦＭ０〜ＦＭ３は第２図（ａ）に示すように、夫々が１２８ＫＢの容量を持つ１０２４の物理ブロック（ＰＢ０〜ＰＢ１０２３）によって構成される。これによってメモリカード１００の不揮発性メモリの全容量は５１２ＭＢとなる。このうちホスト機器１０２がデータ領域として使用できる容量は５００ＭＢである。
【０００６】
第２図（ｂ）はフラッシュメモリ内の１つの物理ブロックＰＢｉ（ｉ＝０〜１０２３）の構成を示している。物理ブロックは物理ページＰＰ０〜ＰＰ６３までの６４の物理ページから成り立っている。各物理ページは第３図に示すように、２ＫＢの容量を持つデータ領域と、６４Ｂの容量を持つ管理領域から成り立っている。
【０００７】
さてこのメモリカード１００は外部のホスト機器１０２から見て５００ＭＢのメモリ容量があり、第４図に示すような論理マップによって論理アドレスが割り付けられる。即ち５００ＭＢのデータ領域は論理ブロックＬＢ０から論理ブロックＬＢ３９９９まで４０００の論理ブロック（ＬＢ）に分割され、各論理ブロックが１２８ＫＢの容量を持つ。この論理ブロックアドレスはホスト機器が指定するアドレスと対応している。
【０００８】
第１図に示すアドレス変換テーブル１１４は論理グループを示す論理アドレスが与えられたときに、フラッシュメモリとその中の物理ブロックを指定するものである。このうち最初の２ビットはフラッシュメモリＦＭ０からＦＭ３のどれかを示すビット、続く１０ビットはそのフラッシュメモリ内のどの物理ブロックかを示すビットである。又エントリテーブル１１５は、４０９６の物理ブロックに対応した１ビット構成のフラグから成るテーブルである。このフラグは消去済みであれば１、書込み済みの場合は０とする。
【０００９】
次にデータの読み出し処理について、第５図のデータ読み出しの概略図を用いて説明する。ホスト機器１０２からの論理アドレス（ＬＡ）のうち、１２８ＫＢ単位のアドレスを論理ブロックアドレス（ＬＢＡ）、１２８ＫＢ未満のアドレスを論理ページアドレス（ＬＰＡ）とする。論理ブロックアドレスを元にアドレス変換テーブル１１４から物理ブロックＰＢを指定し、これを読み出し元物理ブロックとする。そして読み出し元物理ブロックの論理ページアドレスのデータを読み出してデータ転送バッファ１１３を介してホスト機器１０２に転送する。そして読み出しが終了したかどうかをチェックし、終了していなければ論理ページアドレスがブロック内で最終となったかどうかをチェックする。最終でなければ論理ページアドレスをインクリメントし、同様の処理を繰り返す。論理ページアドレスがブロック内で最終となれば、論理ページアドレスを０とし、論理ブロックアドレスをインクリメントして同様の処理を繰り返す。こうすれば指定された論理アドレスからデータを読み出すことができる。
【００１０】
次に書込みの処理について第６図のフローチャートを用いて説明する。データを書込む際には、まずステップＳ３０１においてホスト機器１０２からの論理アドレスＬＡのうち、１２８ＫＢ単位のアドレスを論理ブロックアドレス（ＬＡＢ）とし、１２８ＫＢ単位未満のアドレスを論理ページアドレス（ＬＰＡ）に分ける。次いでステップＳ３０２においてエントリテーブルを検索し、消去済みの物理ブロックを得て書込み先物理ブロック（ＰＢ）とする。そしてエントリテーブル１１５の該当ビットを書込み済み「０」に更新する。次いでステップＳ３０３に進んで論理ページアドレスＬＰＡが０かどうかをチェックし、０でなければ後述する前半巻き込み処理を行う（ステップＳ３０４）。論理ページアドレスが０であれば、この処理を行うことなくステップＳ３０５に進む。そしてステップＳ３０５において、ホスト機器１０２からの書込みデータをページバッファを介してフラッシュメモリに転送し、書込み先物理ブロックの論理ページアドレスに書込む。このとき管理領域に書込むための管理情報を同時に書込んでおく。そしてステップＳ３０６において書込みを終了したかどうかをチェックし、終了していなければステップＳ３０７において論理ページアドレス（ＬＰＡ）がブロック内の最終かどうかをチェックする。最終でなければステップＳ３０８において論理ページアドレスＬＰＡをインクリメントし、ステップＳ３０５に戻る。論理ページアドレスが最終ブロックであれば、ステップＳ３０９において消去とテーブル更新を行い、ステップＳ３１０において論理ページアドレスＬＰＡを０、論理ブロックアドレスＬＢＡをインクリメントして、ステップＳ３０２に戻る。又ステップＳ３０６において書込みが終了すれば、ステップＳ３１１において論理ページアドレスがブロック内最終かどうかをチェックする。最終でなければステップＳ３１２において後半の巻き込み処理を行い、ブロック内で最終であれば、この処理を行うことなくステップＳ３１３に進んで消去とテーブル更新を行って処理を終える。
【００１１】
このように従来の不揮発性記憶装置のデータ書き込み方法によれば、第７図に示すように読出し元物理ブロック１２０が１２８ＫＢあり、そのうちのホスト機器が管理する１６ＫＢの新しいデータ１２２を書込む場合であっても、書込み先物理ブロック１２１は１２８ＫＢ単位で書き込みを行う。読出し元物理ブロック１２０のうち物理ブロックに書込まない前半の領域１２０−１については、前半巻き込み処理によってフラッシュメモリの書込み先物理ブロック１２１−１にコピーする。同様に後半の領域１２０−２についても、後半の巻き込み処理によって書込みページアドレス以降の論理ページアドレスについて書込み先物理ブロック１２１−２にコピーする。従って従来のデータ書き込み処理によれば、第７図に示すように外部のホスト機器で管理されているデータ処理単位が１６ＫＢであっても、書き込み先の物理ブロック単位で書き込まれることとなる。
【００１２】
このように従来の不揮発性記憶装置のデータ書き込み方法によれば、フラッシュメモリの消去サイズより小さなデータを書込むときに、メモリカード内部においてはフラッシュメモリの消去サイズと同等のデータを書き込むため、書き込み速度が低下するという欠点があった。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明はこのような従来の問題点に鑑みてなされたものであって、書き込みの単位を小さくして高速で書き込みを行うことができるようにすると共に、書込まれたデータを集約することによって消去済みのブロックを確保し、確保した消去済みの領域を次の書込みを容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
この課題を解決するために、本発明は、不揮発性メモリと、コントローラと、を有し、外部から与えられる論理アドレスに基づいて前記不揮発性メモリにデータを書き込み、及び読み出す不揮発性記憶装置であって、前記不揮発性メモリは、複数の物理ブロックから成り、前記各物理ブロックは複数の物理ページで構成される部分物理ブロックから成り、前記各物理ページは前記データを書き込むデータ領域と管理情報を書き込む管理領域とから成るものであり、外部からは、一連の論理グループアドレスと各論理グループに属する一連の論理ブロックアドレスと各論理ブロックに属する一連のページアドレスとを含む論理アドレスが与えられるものであり、前記論理ブロックのサイズは前記不揮発性メモリの部分物理ブロックのサイズに相当するものであり、前記コントローラは、外部から与えられる論理アドレスのうち論理グループアドレスをその論理グループに属する論理ブロックが記録される物理ブロックアドレスに変換するアドレス変換領域、及びある論理グループのデータが複数の物理ブロックに重複して記録された場合に、重複して記録されている物理ブロックアドレスを示す重複アドレス登録領域を有するアドレス変換テーブルと、各物理ブロックについて書き込み済み及び消去済みのいずれかを示すエントリーテーブルと、を有し、書き込みのためのデータとその論理アドレスとが外部から与えられたときに、未書き込みの領域に前記論理アドレスの論理ブロックのデータを部分物理ブロックの単位で前記データ領域に書き込むと同時に、前記論理ブロックが有する論理グループに含まれる全ての論理ブロックのデータが書き込まれた部分物理ブロックのアドレスを示すアドレステーブルを前記管理領域に書き込み、その後前記アドレス変換テーブルのアドレス変換領域又は重複アドレス登録領域を更新することを特徴とする。
【発明の効果】
【００１５】
このような特徴を有する本発明によれば、データ書き込みの際の書き込み単位をホスト機器で用いられているデータ書き込み単位と同一とし、しかもメモリカード内の不揮発性メモリの消去単位が大容量化により拡大した場合であっても外部ホスト機器からみたデータの書き込みを短時間で行うことができる。又書き込み領域のうちの一部が使用されている場合であっても、消去済みのブロックの確保処理を行うことによって書き込み可能な領域を形成することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１６】
（実施の形態１）
第８図は本発明の実施の形態１によるメモリカードの構成を示すブロック図である。本図に示すように、メモリカード１はコントローラ２及び不揮発性メモリ、例えば１２８ＭＢの容量を持つフラッシュメモリＦＭ０〜ＦＭ３によって構成されている。コントローラ２はＣＰＵ１１、２ＫＢの容量を持つ一時退避バッファ１２、５１２Ｂの容量を持つデータ転送バッファ１３、１５ビットで４ＫＷｏｒｄの構成、即ち７．５ＫＢの容量を持つアドレス変換テーブル１４と、１ビットで４ＫＷｏｒｄの構成、即ち５１２Ｂの容量を持つエントリテーブル１５によって構成されている。
【００１７】
さてフラッシュメモリＦＭ０〜ＦＭ３は第８図に示すように、夫々１２８ＭＢの容量を持っている。各フラッシュメモリＦＭ０〜ＦＭ３は第９図（ａ）に示すように、夫々が１２８ＫＢの容量を持つ１０２４の物理ブロック（ＰＢ０〜ＰＢ１０２３）によって構成される。これによってメモリカード１の不揮発性メモリの全データ容量は５１２ＭＢとなり、このうち外部からデータ領域として使用できる容量は５００ＭＢである。
【００１８】
第９図（ｂ）はフラッシュメモリ内の１つの物理ブロックＰＢｉ（ｉ＝０〜１０２３）を示している。ここで物理ブロックは６４の物理ページＰＰ０〜ＰＰ６３から成り立っている。そしてその中の各８ページ、即ちホスト機器での管理サイズに等しい１６ＫＢ分を、部分物理ブロックＰＰＢとする。例えばＰＰ０〜ＰＰ７までを部分物理ブロックＰＰＢ０とする。即ち物理ブロックＰＢｉは夫々８つの部分物理ブロックから成り立っている。ここで部分物理ブロックＰＰＢは後述する論理ブロックと同一のサイズであり、論理ブロックのデータを書込む領域である。又物理ページがデータの書込み単位となっている。
【００１９】
さてこのメモリカード１は外部のホスト機器３から見て５００ＭＢのメモリ容量があり、第１０図に示すような論理マップによって論理アドレスが割り付けられる。即ち５００ＭＢのデータ領域は論理グループＬＧ０から論理グループＬＧ３９９９まで４０００の論理グループ（ＬＧ）に分割され、各論理グループが１２８ＫＢのデータ容量を持つ。そして各論理グループは１６ＫＢのデータ容量単位の８つの論理ブロック（ＬＢ）に分割される。論理ブロックＬＢは図示のようにＬＧ０〜ＬＧ３１９９９までの一連の番号が割り当てられている。この論理アドレスはホスト機器が指定するアドレスと対応している。そして異なる論理グループのデータは必ず物理的に異なる消去単位（物理ブロック）に含まれる部分物理ブロックに配置される。又各論理ブロックは夫々１つの部分物理ブロックに配置される。部分物理ブロックの８つの物理ページは夫々８つの論理ページに対応し、各物理ページは２ＫＢの容量を持つデータ領域と、６４Ｂの容量を持つ管理領域から成り立っている。物理ページのデータの構成は後ほど第１２図で示すが、データ領域と管理領域ともに連続した領域を占有せず、複数の領域に離散して構成される。
【００２０】
第１１図はアドレス変換テーブル１４を示すブロック図である。本図に示すように、アドレス変換テーブル１４は論理グループを示す論理アドレスが与えられたときに、フラッシュメモリとその中の物理ブロック及びその部分物理ブロックを指定する１５ビットのアドレス変換領域ＡＣＲ１４ａが設けられる。このうち最初の２ビットはフラッシュメモリＦＭ０からＦＭ３のどれかを示すビット、続く１０ビットはそのフラッシュメモリ内のどの物理ブロックＰＢかを示すビット、続く３ビットはその物理ブロック内のどの部分物理ブロックＰＰＢかを示すビットである。アドレス変換テーブル１４のアドレス変換領域１４ａを除く空き領域の一部には、重複アドレス登録領域ＯＡＲＲ１４ｂが設けられる。ある論理グループのデータが複数の物理ブロックにまたがって記録されることがあるので、そのときに重複アドレス登録領域１４ｂに登録される。重複アドレス登録領域１４ｂは１６の領域を持ち、各領域は重複部分物理ブロックアドレスＯＰＰＢＡ１５ビット、重複論理グループアドレスＯＬＧＡ１２ビットから成り立っている。重複アドレス登録領域１４ｂにおいて、重複部分物理ブロックアドレスの無効値を０とする。フラッシュメモリＦＭ０の先頭の物理ブロックＰＢ０に含まれる部分物理ブロックＰＰＢ０は固定したデータを書き込む領域として予定されているので、重複部分物理ブロックアドレスとしてとり得る有効な値は８〜３２７６７である。又、重複論理アドレスの無効値は４０９５としている。重複論理アドレスとしてとり得る値は外部のホスト機器３が指定できる論理グループの０〜３９９９である。後述するアドレス変換テーブル修正フローの処理を終えた後は、重複アドレス登録領域１４ｂの重複部分物理ブロックアドレスの下位３ビットは全て１となる。尚、ここではアドレス変換領域に論理グループアドレス毎に部分物理ブロックアドレスを登録しているが、部分物理ブロックアドレスに代えて物理ブロックアドレスを登録するようにしてもよい。又重複アドレス登録領域には、単に重複している物理ブロックを示す物理ブロックアドレスを登録するだけでもよい。物理ブロックアドレスがわかれば、その物理ブロック内の部分物理ブロックを検索することにより最新の部分物理ブロックアドレスを得ることができ、その物理ブロックアドレスの管理領域を読み出すことにより論理グループアドレスを得ることができる。
【００２１】
次に各物理ページに書き込まれる論理ページの構成を第１２図に示す。論理ページはブロック管理領域ＢＭＲの２４バイトに続いて、セクタデータ領域ＳＤＲ５１２バイト、セクタ管理領域ＳＭＲ８バイトが交互に連続する構成となっており、最後にページ管理領域ＰＭＲ８バイトが設けられる。セクタデータ領域ＳＤＲは４つで、計２Ｋバイトのデータ領域を構成している。又ブロック管理領域には、論理ブロックアドレスＬＢＡ、アドレステーブルＡＴ、リングカウンタ、アドレス管理領域が設けられている。ここでアドレステーブルＡＴは、この論理ブロックが属する論理グループに含まれる８つの論理ブロックが書き込まれた部分物理ブロックのアドレスを示している。この内容は同一の論理ブロックに属する各論理ページ毎に同一である。アドレステーブルは各１５ビットで表現されるので、例えばその１６ビット目を用いてこの論理ページが消去済みかどうかを知ることができるようにしている。またリングカウンタはアドレステーブルの新旧を判別するためのカウンタであり、アドレステーブルの更新毎にインクリメントされる。
【００２２】
又第８図に示すエントリテーブル１５は４０９６の物理ブロックに対応した１ビット構成のフラグから成るテーブルである。このフラグは消去済みであれば１、書込み済みの場合は０とする。
【００２３】
ここでコントローラ２のＣＰＵ１１は、重複アドレス変換領域に登録可能な空きがないときにアドレス変換テーブル１４の重複アドレス登録領域１４ｂを参照し、複数の物理ブロックに重複して記録されている論理グループのデータについていずれかの物理ブロックに当該論理グループのデータを集約することによって消去ブロックを確保する消去ブロック確保手段の機能を有している。消去ブロック確保手段は、全ての部分物理ブロックが消去済みとなっている物理ブロックがない場合に消去ブロックを確保することとしてもよい。
【００２４】
次にテーブルの初期化処理について第１３図のフローチャートを参照しつつ説明する。初期化処理は、電源投入後に不揮発性メモリの状態に応じてアドレス変換テーブル１４、エントリテーブル１５を作成する処理である。まずステップＳ１１においてエントリテーブル１５の全データを０とする。そしてアドレス変換テーブル１４の全データを無効アドレスとする。ここで無効アドレスは０とする。有効アドレスは８〜３２７６７である。次いでフラッシュメモリＦＭのポインタを０とし（ステップＳ１３）、ステップＳ１４において物理ブロックＰＢのポインタを０とする。次いでステップＳ１５において指定されている物理ブロックのページ０の管理領域から論理ブロックアドレスを読み出し、そのブロックが消去済みかどうかをチェックする。消去済みであればエントリテーブル１５に消去済みであるように登録し（ステップＳ１７）、消去済みでなければステップＳ１８においてアドレス変換テーブル１４に登録する。この処理については後述する。次いでステップＳ１９において最終物理ブロックかどうかをチェックし、最終物理ブロックでなければステップＳ２０において物理ブロックのポインタをインクリメントし、ステップＳ１５に戻る。又ステップＳ１９において最終物理ブロックであれば、ステップＳ２１に進んで最終フラッシュメモリかどうかをチェックする。最終フラッシュメモリでなければ、ステップＳ２２においてフラッシュメモリのポインタをインクリメントし、ステップＳ１４に戻る。ステップＳ２１において最終フラッシュメモリであれば、ステップＳ２３に進んで後述するアドレス変換テーブルの修正処理を行って処理を終える。
【００２５】
次にステップＳ１８のアドレス変換テーブル１４への登録について第１４図のフローチャートを用いて説明する。第１４図においてアドレス変換テーブルの登録を開始すると、まずステップＳ３１においてテーブルオフセットページ（ＴＯＰ）を５６とする。次いでステップＳ３２において物理ブロックのテーブルオフセットページの管理領域の論理ブロックアドレスを読み出す。そしてステップＳ３３において、このページが消去済みかどうかをチェックし、消去済みであればテーブルオフセットページＴＯＰを−８とし（ステップＳ３４）、ステップＳ３２に戻る。又消去済みでなければ、ステップＳ３５に進んで物理ブロックのテーブルオフセットページから読み出した論理グループアドレスに対応するアドレス変換テーブルの値を読み出す。そしてステップＳ３６において読み出した論理アドレスに対応するアドレス変換テーブルのデータが登録済みか未登録かを判定する。これが無効アドレス０であれば未登録と判定する。そしてステップＳ３７において、アドレス変換テーブル１４の変換領域１４ａより読み出した論理ブロックアドレスに属する論理グループアドレスに対応する位置に、読み出し対象である部分物理ブロックのアドレスを登録する。ステップＳ３６において有効アドレスが登録済であれば、ステップＳ３６からＳ３８に進む。そしてアドレス変換テーブル１４の重複アドレス登録領域１４ｂに、読み出し対象である部分物理ブロックのアドレスと物理ブロック管理領域から読み出した論理グループアドレスＬＧＡの値を登録する。
【００２６】
次にステップＳ２３のアドレス変換テーブル修正処理について第１５図のフローチャートについて説明する。アドレス変換テーブルの修正処理とは、同一の論理グループに属する論理ブロックのデータが複数の物理ブロックに離散して配置されている場合に、新しい書き込みのあった部分物理ブロックのアドレスをアドレス変換領域１４ａに、古い書き込みの部分物理ブロックを重複アドレス登録領域１４ｂに登録するように修正する処理である。まずステップＳ４１においてポインタｉを０とし、ステップＳ４２においてアドレス変換テーブル１４の重複アドレス登録領域１４ｂのｉ番目の論理グループアドレスＬＧＡと部分物理ブロックアドレスＰＰＢＡとを得る。次いでステップＳ４３においてこれが有効値かどうかを判別する。有効値であればステップＳ４４に進んでｉ番目の部分物理ブロックの任意のページの管理領域を読み出し、リングカウンタ値を得る。次いでステップＳ４５において、ｉ番目の論理アドレスを元にアドレス変換テーブル１４のアドレス変換領域１４ａから対応する部分物理ブロックのアドレスを得る。さらにステップＳ４６においてｉ番目の論理アドレスに対応する部分物理ブロックアドレスの管理領域を読み出し、リングカウンタ値を得る。そしてステップＳ４７において、リングカウンタ値によって重複アドレス登録領域のテーブルの方が新しいかどうかを判定する。これが新しければ、ステップＳ４８においてｉ番目の部分物理ブロックとｉ番目の論理アドレスに対応する部分物理ブロックアドレスとを入れ替える。一方ステップＳ４７においてテーブルが新しくなければ、この処理を行うことなく、ステップＳ４９に進んでポインタｉが１５かどうかをチェックし、１５でなければｉをインクリメントし（ステップＳ５０）、ステップＳ４２に戻る。ポインタｉが１５となっていれば処理を終了する。こうすればアドレス変換テーブル１４の修正を行うことができる。
【００２７】
次にデータの読み出し処理について、第１６図のフローチャート、及び第１７図のデータ読み出しの概略図を用いて説明する。ステップＳ５１においてホスト機器３からの論理アドレスのうち、１２８ＫＢ単位のアドレスを論理グループアドレスＬＧＡ、１６ＫＢ単位のアドレスを論理ブロックアドレスＬＢＡ、１６ＫＢ未満のアドレスを論理ページアドレスＬＰＡとする。次いでステップＳ５２に進んで、論理グループアドレスを元にアドレス変換テーブル１４から得られた部分物理ブロックをテーブル部分物理ブロックＴＰＰＢとする。次いでステップＳ５３において、テーブル部分物理ブロックの任意のページのアドレステーブルを読み出し、論理ブロックアドレスのデータが書込まれている部分物理ブロックを読み出し元部分物理ブロックとする。ステップＳ５４において読み出し元部分物理ブロックの論理ページアドレスのデータを読み出してデータ転送バッファ１３を介してホスト機器３に転送する。そしてステップＳ５５において読み出しが終了したかどうかをチェックし、終了していなければステップＳ５６において論理ページアドレスがブロック内で最終となったかどうかをチェックする。最終でなければ論理ページアドレスＬＰＡをインクリメントし（ステップＳ５７）、ステップＳ５４に戻って同様の処理を繰り返す。論理ページアドレスがブロック内で最終となれば、ステップＳ５８において論理ブロックアドレスが論理グループ内で最終かどうかをチェックする。最終でなければ論理ページアドレスを０とし、論理ブロックアドレスをインクリメントする（ステップＳ５９）。そしてステップＳ５４に戻って同様の処理を繰り返す。論理ブロックアドレスが論理グループ内で最終であれば、ステップＳ６０に進んで論理ページアドレスを０、論理ブロックアドレス及び論理グループアドレスをインクリメントしてステップＳ５２に戻る。こうすれば指定された論理ページアドレスからデータを読み出すことができる。
【００２８】
次いで第１８図、第１９図を用いてデータ書き込み処理について説明する。データ書き込み処理を開始すると、まずステップＳ６１においてホスト機器３からの論理アドレスのうち１２８ＫＢ単位のアドレスを論理グループアドレスＬＧＡ、１６ＫＢ単位のアドレスを論理ブロックアドレスＬＢＡ、１６ＫＢ未満のアドレスを論理ページアドレスＬＰＡとする。次いでステップＳ６２に進んで、論理グループアドレスを元にアドレス変換テーブルから得られる部分物理ブロックをテーブル部分物理ブロックＴＰＰＢとする。次いでステップＳ６３に進んで、テーブル部分物理ブロックの任意のページのアドレステーブルを読み出して保持する。そしてステップＳ６４に進んでテーブル部分物理ブロックのアドレスが物理ブロックＰＢ内の最終部分物理ブロックかどうかをチェックする。最終部分物理ブロックでなければ、ステップＳ６５に進んで、テーブル部分物理ブロックのアドレスの次の部分物理ブロックを書き込み先部分物理ブロックＰＰＢとする。一方ステップＳ６４において最終部分物理ブロックであれば、ステップＳ６６において後述する重複アドレス登録処理をする。そしてステップＳ６７においてエントリテーブル１５を検索し、消去済みの物理ブロックを得て、その先頭の部分物理ブロックを書き込み先部分物理ブロックＰＰＢとする。更にエントリテーブルのその物理ブロックの当ビットを書き込み済み「０」に更新する。こうして書き込み先部分物理ブロックを決めた後、ステップＳ６８において、アドレステーブルのうち論理ブロックアドレスに対応するアドレスを読み込み元部分物理ブロックとして保持する。そしてステップＳ６９において、アドレステーブルに読み込み元部分物理ブロックと同じ物理ブロックに属する部分物理ブロックがあるかどうかをチェックする。これはその部分物理ブロックが最後の部分物理ブロックか否かを検出するものである。これがなければステップＳ７０において読み込み元部分物理ブロックと同じ物理ブロックに属する部分物理ブロックは消去してもよいので、これを消去予定物理ブロックとして保持する。ステップＳ６９においてこれに相当する部分物理ブロックがなければ、ステップＳ７０の処理を行うことなくステップＳ７１に進んで、コントローラの内部においてアドレステーブルのうち論理ブロックアドレスに対応するアドレスを書き込み先部分物理ブロックに差し替える。
【００２９】
次いで第１９図において論理ページアドレスＬＰＡが０かどうかをチェックし、０でなければ後述するように、前半巻き込み処理を行う（ステップＳ７３）。論理ページアドレスが０であれば、この処理を行うことなくステップＳ７４に進んで、ホスト機器３からの書き込みデータをデータ転送バッファ１３を介してフラッシュメモリに転送する。そして書き込み先部分物理ブロックの論理ページアドレスに書込む。このとき管理領域に書込む管理情報も同時に書込む。そしてステップＳ７５において書込みを終了したかどうかをチェックし、終了していなければステップＳ７６において論理ページアドレスが論理ブロック内の最終ページかどうかをチェックする。最終でなければステップＳ７７において論理ページアドレスをインクリメントし、ステップＳ７４に戻る。論理ブロック内の最終ページであれば、ステップＳ７８において消去とテーブルの更新処理を行う。次いでステップＳ７９において論理ブロックアドレスが論理グループ内の最終かどうかをチェックし、最終でなければステップＳ８０において論理ページアドレスを０とし、論理ブロックアドレスをインクリメントする。次いでステップＳ８１においてテーブル部分物理ブロックに書き込み先部分物理ブロックのアドレスを入れる。そして第１８図のステップＳ６４に戻って同様の処理を繰り返す。又ステップＳ７９において論理ブロックアドレスが論理グループ内の最終であれば、ステップＳ８２において論理ページアドレスを０、論理ブロックアドレスと論理グループアドレスをインクリメントし、ステップＳ６２に戻る。そしてステップＳ７５において書き込み処理が終了すれば、ステップＳ８３において論理ページアドレスが論理ブロック内の最終かどうかをチェックする。最終でなければステップＳ８４において後半巻き込み処理を行う。論理ページアドレスがブロック内で最終であれば、ステップＳ８５において消去とテーブル更新を行って処理を終える。
【００３０】
次いでステップＳ６６の重複アドレス登録処理について第２０図を用いて説明する。重複アドレス登録処理では、ステップＳ９１において重複アドレス登録領域の登録状況を確認する。そして空き領域があるかどうかを判別し、空き領域がなければ後述する消去ブロック確保の処理を行う（ステップＳ９３）。空き領域があればステップＳ９４において、重複アドレス登録領域の空き登録領域の重複部分物理ブロックアドレスにテーブル部分物理ブロックを、重複論理グループアドレスに論理グループアドレスを書込む。
【００３１】
次にステップＳ９３の消去ブロックの確保処理について、第２１図のフローチャートを用いて説明する。まずステップＳ１０１において、重複アドレス登録領域１４ｂの有効アドレスを検索し、１組の重複部分物理ブロックアドレスと重複論理グループアドレスとを得る。そしてそれらを解消部分物理ブロックアドレス、及び解消論理グループアドレスとする。次いでステップＳ１０２において、解消論理グループアドレスを元にアドレス変換テーブルのアドレス変換領域から対応する部分物理ブロックアドレスを得て解消テーブル部分物理ブロック（解消ＴＰＰＢ）とする。そしてステップＳ１０３において、解消テーブル部分物理ブロックの任意のページよりアドレステーブルを読み出す。ステップＳ１０４において、解消テーブル部分物理ブロックに属する物理ブロックのうち、既に書き込まれている部分物理ブロックは全てアドレステーブルに書き込まれているかどうかをチェックする。この処理は解消テーブル部分物理ブロックの属する物理ブロックに有効なデータを全て集めることができるかどうかを判定している。これがＹＥＳであれば、ステップＳ１０５において、解消テーブル部分物理ブロックの次の部分物理ブロックを解消書き込み先部分物理ブロックとする。ステップＳ１０４においてＮＯであれば、ステップＳ１０６に進んで、新たな物理ブロックに全てのデータを書き込む。即ちエントリテーブルを検索して消去済の物理ブロックを得る。そしてその先頭の部分物理ブロックを解消書き込み先部分物理ブロックとする。そしてエントリテーブルの該当ビットを書き込み済み「０」に更新する。次いでこれらのいずれかの処理を行った後、ステップＳ１０７に進んで、アドレステーブルのうち解消書き込み先部分物理ブロックの属する物理ブロックにないデータを、順に解消書き込み先物理ブロックにコピーする。その際アドレステーブルとアドレス変換テーブルのアドレス変換領域についても順次アップデートする。次いでステップＳ１０８に進んで、重複アドレス登録領域のうち解消論理グループアドレスと一致する重複グループアドレスを持つ組の重複部分物理ブロックの属する物理ブロックのデータを消去し、重複部分物理ブロックアドレスＯＰＰＢと重複グループアドレスＯＧＡとを無効化する。これは３以上の物理ブロックに渡って重複が生じていることもあるので、これを解消するためである。次いでステップＳ１０９において、消去に対応してエントリテーブルの重複部分物理ブロックアドレスに該当するデータを消去済みに更新して処理を終える。
【００３２】
次にこの消去ブロック確保の処理の例について、第２２図，第２３図に沿って説明する。第２２図は消去ブロックを確保する前の物理ブロックＰＢ１００とＰＢ１０１との例を示している。この図に示すように、物理ブロックＰＢ１００は部分物理ブロックとしてＰＰＢ８００〜８０７を有しており、物理ブロックＰＢ１０１は部分物理ブロックＰＰＢ８０８〜８１５を有している。そして論理グループＬＧ０の論理ブロックＬＢ０〜７のデータが一旦物理ブロックＰＢ１００に書き込まれ、その後論理グループＬＧ０の論理ブロックＬＢ０〜６は更新されて、物理ブロックＰＢ１０１の部分物理ブロックＰＰＢ８０８〜８１４に書き込まれている。このため物理ブロックＰＢ１００のうち、部分物理ブロックＰＰＢ８００〜８０６のデータは無効化されている。第２２図ではこれをハッチングで示している。この場合には物理ブロックＰＢ１０１の部分物理ブロックＰＰＢ８１５は未書き込みの領域である。この消去ブロック確保前のアドレス変換テーブル１４とエントリテーブル１５の状態も第２２図に同時に示している。アドレス変換テーブル１４の論理グループＬＧ０の位置には、論理グループＬＧ０のうち最も新しく記憶された部分物理ブロックＰＰＢ８１４が登録されている。又重複アドレス登録領域１４ｂには重複部分物理ブロックＰＰＢ８０７、重複論理グループＬＧ０が登録される。これは物理ブロックＰＢ１００内の部分物理ブロックＰＰＢ８０７に有効な論理グループＬＧ０、論理ブロックＬＢ７のデータが記録されていることを示している。この場合には部分物理ブロックＰＰＢ８１５に論理グループＬＧ０、論理ブロックＬＢ７のデータを書き込むことによって、ステップＳ１０４に示すように物理ブロックＰＢ１０１に全てのデータを集めることができる。
【００３３】
従って解消テーブル部分物理ブロックを解消テーブル部分物理ブロックの次の部分物理ブロックとすること（ステップＳ１０４）、即ちこの例では部分物理ブロック８１５とすることによって、第２３図に示すように論理グループＬＧ０、論理ブロックＬＢ７のデータを部分物理ブロックＰＰＢ８１５に書き込み、論理グループＬＧ０の全てのデータを物理ブロックＰＢ１０１に集めることができる。こうすれば物理ブロックＰＢ１００は全て消去済みで未書き込みとなり、新たなデータを書込むことができる。エントリテーブル１５は物理ブロックＰＢ１００が「１」となって書込みができることを示している。
【００３４】
消去ブロックの確保の他の例について第２４図，第２５図を用いて説明する。第２４図は物理ブロックＰＢ１００にまず論理グループＬＧ０の論理ブロックＬＢ０〜７が書き込まれ、更にその後に物理ブロックＰＢ１０１の部分物理ブロックＰＰＢ８０８〜８１３に論理グループＬＧ０の論理ブロックＬＢ０〜５が書き込まれている。そしてハッチングで示すように、このとき物理ブロックＰＢ１００の部分物理ブロックＰＰＢ８００〜８０５が無効となっている。更に論理グループＬＧ０の論理ブロックＬＢ０が物理ブロックＰＢ１０１の部分物理ブロックＰＰＢ８１４に書き込まれ、部分物理ブロックＰＰＢ８０８のデータが無効化された状態を示している。このときアドレス変換テーブル１４については論理グループＬＧ０に対し部分物理ブロックＰＰＢ８１４が書き込まれており、重複アドレス登録領域１４ｂに重複部分物理ブロック８０７とその重複論理グループ０が書き込まれている。この場合にはステップＳ１０４において、解消テーブル部分物理ブロックに属する物理ブロックＰＢ１０１に有効なデータを集めることができない。即ち第２１図のステップＳ１０４において、解消テーブル部分物理ブロックの属する物理ブロックのうち、既書き込みである部分物理ブロックは全てアドレステーブルに書き込まれていない場合を示している。そのためステップＳ１０６においてエントリテーブル１５を検索し、消去済みの物理ブロックを得る。この場合には物理ブロックＰＢ１０２を得てこの物理ブロックに全てのデータを書込む。第２５図はこうして全てのデータが書込まれた状態を示している。この場合、物理ブロックＰＢ１００、１０１は消去済みとなり、エントリテーブル１５のフラグが１となって新たなデータを書込むことができる状態を示している。
【００３５】
次にステップＳ７３の前半巻き込み処理について、第２６図のフローチャートを用いて説明する。まず動作を開始すると、ステップＳ１１１において、巻き込みページアドレスを０とする。次いでステップＳ１１２において、読み出し元部分物理ブロックの巻き込みページアドレスのデータを一時退避バッファ１２に読み出す。次いでそのデータをフラッシュメモリに転送し、書き込み先物理ブロックの巻き込みページアドレスに書込む。このとき管理領域に書込む管理情報も同時に書込む。次いでステップＳ１１３に進んで巻き込みページアドレスをインクリメントし、ステップＳ１１４において巻き込みページアドレスが論理ページアドレスと一致しているかどうかをチェックする。これが一致していなければステップＳ１１２に戻って同様の処理を繰り返す。一致している場合には前半巻き込み処理を終える。
【００３６】
次にステップＳ８４の後半巻き込み処理について、第２７図のフローチャートを用いて説明する。後半巻き込み処理は動作を開始すると、まずステップＳ１２１において論理ページアドレス＋１を巻き込みページアドレスとする。次いでステップＳ１２２において読み出し元物理ブロックの巻き込みページアドレスのデータを一時退避バッファ１２に読み出す。そしてそのデータをフラッシュメモリに転送し、書き込み先物理ブロックの巻き込みページアドレスに書込む。このとき管理領域に書込む管理情報も同時に書込む。次いでステップＳ１２３に進んで、巻き込みページアドレスが最終ページアドレスかどうかをチェックする。最終ページでなければ、ステップＳ１２４において巻き込みページアドレスをインクリメントしてステップＳ１２２に戻る。巻き込みページアドレスが最終ページであれば後半巻き込み処理を終える。このように巻き込み処理は従来例と異なり、ページ単位で行うことによってフラッシュメモリの書き込み管理単位を１６ＫＢとして巻き込み処理の時間を短くなるようにしている。
【００３７】
次にステップＳ７６，Ｓ８５の消去とテーブル更新処理について、第２８図のフローチャートを用いて説明する。この処理を開始すると、まずステップＳ１３１において、消去予定ブロックに有効な値があるかどうかをチェックする。有効な値があれば、ステップＳ１３２において消去予定物理ブロックを消去する。次いでステップＳ１３３においてアドレス変換テーブルの重複アドレス登録領域にあり、今回の書き込みで消去した物理ブロックに対応する重複部分物理ブロックアドレスと重複論理グループアドレスとを無効化する。次いでステップＳ１３４においてエントリテーブルの消去予定物理ブロックに該当するデータを消去済みに更新する。そしてステップＳ１３５においてアドレス変換テーブルの論理グループアドレスのデータを書き込み先部分物理ブロックに書き換える。又ステップＳ１３１において消去予定物理ブロックに有効な値がなければ、ステップＳ１３４までの処理を行うことなくステップＳ１３５の処理をした後このフローを終える。
【００３８】
第２９図はこうした処理を行ってホスト機器から与えられた１６ＫＢ単位のデータをデータ転送バッファ１３を介して書き込み先の物理ブロックに書き込む例を示している。ホスト機器３より書き込み単位として１６ＫＢのデータが与えられると、書き込み先の物理ブロックの中のいずれかの部分物理ブロックにこのデータが書き込まれる状態を示している。この場合には従来のものと異なり、この書き込み先物理ブロックの他の部分物理ブロックについては元の状態、即ち消去済みのままでそのまま維持される。次にホスト機器より新たに１６ＫＢのデータが書き込みデータとして与えられた場合には、他の部分物理ブロックに新たなデータが書き込まれる。その物理ブロックの他の領域はそのまま保持される。このようにホスト機器３から１６ＫＢ単位のデータが書き込みデータとして与えられたときに、フラッシュメモリに１６ＫＢの領域にのみ書き込みを行い、物理ブロックの１２８ＫＢの全ての領域にデータを書込む必要はなく、書き込み時間を短縮することができる。
【００３９】
（実施の形態２）
次に本発明の実施の形態２について説明する。この実施の形態はほぼ実施の形態１と同様である。論理グループ０に属する論理ブロックには外部ホスト機器はＦＡＴと呼ばれるファイル管理のためのデータを配置するために、頻繁に書き込み処理が発生し易く、これに伴って消去ブロックの確保処理が頻繁に入ることとなる。このため論理的にアクセスが偏ることが予想される論理アドレスの領域については第３０図に示すように、論理グループのサイズを小さくする。即ち論理グループ０、１については、論理グループＬＧ０−０〜ＬＧ０−７、論理グループＬＧ１−０〜ＬＧ１−７のように１６ＫＢ単位に分割する。この部分では論理グループと論理ブロックとは同一のサイズの１６ＫＢとなる。論理ブロックは実施の形態１と同様に０から３１９９９まで一連の論理ブロック番号が付けられる。こうすればアクセスが偏ることが予想される論理グループは論理グループのサイズの１６ＫＢに比べて割り当てられる物理ブロックのサイズの１２８ＫＢが大きいために消去ブロック確保処理の頻度が低下し、速度の低下を防ぐことができる。
【００４０】
尚ここで説明した各実施の形態でのデータ容量などの数値は一例であり、他の数値としても良いことはいうまでもない。
【産業上の利用可能性】
【００４１】
本発明は書き換え可能な不揮発性メモリを有する不揮発性記憶装置及びその書込み方法であって、大容量化した場合にも従来例に比べて書き込み速度を高速化することができる。そのため大容量化で高速で書き込みが必要な不揮発性メモリの種々の用途に使用することができる。
【図面の簡単な説明】
【００４２】
【図１】従来の不揮発性メモリの構成を示す図である。
【図２】従来のフラッシュメモリ、及びその物理ブロックの構成を示す図である。
【図３】従来の物理ブロックに書き込まれる論理ページの構成を示す図である。
【図４】従来の論理ブロックの構成を示す図である。
【図５】従来の不揮発性メモリのデータ読み出し時の動作を示す概略図である。
【図６】従来の不揮発性記憶装置のデータ書き込み処理を示すフローチャートである。
【図７】従来のデータ書き込み時の動作を示す概略図である。
【図８】本発明の実施の形態１による不揮発性記憶装置の全体構成を示すブロック図である。
【図９】実施の形態１によるフラッシュメモリとその物理ブロックの構成を示す図である。
【図１０】実施の形態１による論理グループの構成を示す図である。
【図１１】実施の形態１によるアドレス変換テーブルの構成を示す図である。
【図１２】実施の形態１による物理ページ内の論理ページの構成を示す図である。
【図１３】実施の形態１によるテーブル初期化処理を示すフローチャートである。
【図１４】実施の形態１によるアドレス変換テーブルの登録処理を示すフローチャートである。
【図１５】実施の形態１によるアドレス変換テーブルの修正処理を示すフローチャートである。
【図１６】実施の形態１によるデータ読み出し処理を示すフローチャートである。
【図１７】実施の形態１によるデータ読み出し処理の動作を示す概略図である。
【図１８】実施の形態１によるデータ書き込み処理（その１）を示すフローチャートである。
【図１９】実施の形態１によるデータ書き込み処理（その２）を示すフローチャートである。
【図２０】実施の形態１による重複アドレス登録処理を示すフローチャートである。
【図２１】実施の形態１による消去ブロック確保処理を示すフローチャートである。
【図２２】実施の形態１による消去ブロック確保処理をする前の第１の例を示す図である。
【図２３】実施の形態１による第１の例の消去ブロック確保処理後の状態を示す図である。
【図２４】実施の形態１による消去ブロック確保処理をする前の第２の例を示す図である。
【図２５】実施の形態１による第２の例の消去ブロック確保処理後の状態を示す図である。
【図２６】実施の形態１による前半巻き込み処理を示すフローチャートである。
【図２７】実施の形態１による後半巻き込み処理を示すフローチャートである。
【図２８】実施の形態１による消去とテーブル更新の処理を示すフローチャートである。
【図２９】実施の形態１によるデータ書き込み処理の動作を示す概略図である。
【図３０】本発明の実施の形態２による論理グループの構成を示す図である。
【符号の説明】
【００４３】
１  メモリカード
２  コントローラ
１１  ＣＰＵ
１２  一時退避バッファ
１３  データ転送バッファ
１４  アドレス変換テーブル
１５  エントリテーブル
【図１】
0004667243.tif 000002
【図２】
0004667243.tif 000003
【図３】
0004667243.tif 000004
【図４】
0004667243.tif 000005
【図５】
0004667243.tif 000006
【図６】
0004667243.tif 000007
【図７】
0004667243.tif 000008
【図８】
0004667243.tif 000009
【図９】
0004667243.tif 000010
【図１０】
0004667243.tif 000011
【図１１】
0004667243.tif 000012
【図１２】
0004667243.tif 000013
【図１３】
0004667243.tif 000014
【図１４】
0004667243.tif 000015
【図１５】
0004667243.tif 000016
【図１６】
0004667243.tif 000017
【図１７】
0004667243.tif 000018
【図１８】
0004667243.tif 000019
【図１９】
0004667243.tif 000020
【図２０】
0004667243.tif 000021
【図２１】
0004667243.tif 000022
【図２２】
0004667243.tif 000023
【図２３】
0004667243.tif 000024
【図２４】
0004667243.tif 000025
【図２５】
0004667243.tif 000026
【図２６】
0004667243.tif 000027
【図２７】
0004667243.tif 000028
【図２８】
0004667243.tif 000029
【図２９】
0004667243.tif 000030
【図３０】
0004667243.tif 000031