(57)【特許請求の範囲】
【請求項１】
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成手段と、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成手段と、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当て手段と、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込み手段と、
前記データ書き込み手段によってデータが書き込まれた物理ページに、該物理ページが含まれる前記物理ブロック内の先頭の物理グループから該物理ページが属する前記物理グループまでの各グループに割り当てられた前記論理グループを示す情報を累積的に書き込む管理情報書き込み手段と
を備えることを特徴とするメモリコントローラ。
【請求項２】
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を判別するために、前記物理ブロックに含まれる物理ページの冗長領域に、該物理ブロックに対応する前記論理ブロックを示す情報を書き込む第１の管理情報書き込み手段と、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成手段と、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成手段と、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当て手段と、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込み手段と、
前記データ書き込み手段によってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込む第２の管理情報書き込み手段と、
第１の管理情報書き込み手段及び第２の管理情報書き込み手段によって書き込まれた情報に基づいて、前記論理ブロックと前記物理ブロックとの対応関係及び前記論理ブロック内の前記論理グループと前記物理ブロック内の前記物理グループとの対応関係を示すテーブルを作成するテーブル作成手段と
を備えることを特徴とするメモリコントローラ。
【請求項３】
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を管理する書替管理手段と、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成手段と、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成手段と、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当て手段と、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込み手段と、
前記データ書き込み手段によってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込むグループ情報書き込み手段とを備え、
前記書替管理手段は、同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を判別するために、前記論理ブロックに対して新たな前記物理ブロックが割り当てられる毎に更新される書替通番を、該新たな前記物理ブロックに含まれる物理ページの冗長領域に書き込む
ことを特徴とするメモリコントローラ。
【請求項４】
請求項１乃至３の何れか１項に記載のメモリコントローラと、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリと、
を備えることを特徴とするフラッシュメモリシステム。
【請求項５】
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成ステップと、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成ステップと、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当てステップと、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込みステップと、
前記データ書き込みステップによってデータが書き込まれた物理ページに、該物理ページが含まれる前記物理ブロック内の先頭の物理グループから該物理ページが属する前記物理グループまでの各グループに割り当てられた前記論理グループを示す情報を累積的に書き込む管理情報書き込みステップと
を有することを特徴とするフラッシュメモリの制御方法。
【請求項６】
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を判別するために、前記物理ブロックに含まれる物理ページの冗長領域に、該物理ブロックに対応する前記論理ブロックを示す情報を書き込む第１の管理情報書き込みステップと、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成ステップと、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成ステップと、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当てステップと、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込みステップと、
前記データ書き込みステップによってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込む第２の管理情報書き込みステップと、
第１の管理情報書き込みステップ及び第２の管理情報書き込みステップによって書き込まれた情報に基づいて、前記論理ブロックと前記物理ブロックとの対応関係及び前記論理ブロック内の前記論理グループと前記物理ブロック内の前記物理グループとの対応関係を示すテーブルを作成するテーブル作成ステップと
を有することを特徴とするフラッシュメモリの制御方法。
【請求項７】
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を管理する書替管理ステップと、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成ステップと、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成ステップと、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当てステップと、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込みステップと、
前記データ書き込みステップによってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込むグループ情報書き込みステップとを有し、
前記書替管理ステップでは、同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を判別するために、前記論理ブロックに対して新たな前記物理ブロックが割り当てられる毎に更新される書替通番を、該新たな前記物理ブロックに含まれる物理ページの冗長領域に書き込む
ことを特徴とするフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００４】
特許文献１に示されているようなＮＡＮＤ型フラッシュメモリを用いたメモリシステムでは、ブロック単位で、論理的なアドレスと物理的なアドレスが変換され、ブロック内の各ページにはアドレス順でデータが格納されていた。
【特許文献１】特開２００１−２９７０３８号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ブロック内の最後のページに格納されるデータだけを書替えたい場合であっても、ブロック内の全ページのデータを再書込みしなければならなかった。
【０００６】
本発明は、上記課題を解決するためになされたものであって、書替効率を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点に係るメモリコントローラは、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成手段と、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成手段と、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当て手段と、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込み手段と、
前記データ書き込み手段によってデータが書き込まれた物理ページに、該物理ページが含まれる前記物理ブロック内の先頭の物理グループから該物理ページが属する前記物理グループまでの各グループに割り当てられた前記論理グループを示す情報を累積的に書き込む管理情報書き込み手段と、
を備えることを特徴とする。
【０００８】
上記目的を達成するため、本発明の第２の観点に係るメモリコントローラは、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を判別するために、前記物理ブロックに含まれる物理ページの冗長領域に、該物理ブロックに対応する前記論理ブロックを示す情報を書き込む第１の管理情報書き込み手段と、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成手段と、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成手段と、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当て手段と、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込み手段と、
前記データ書き込み手段によってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込む第２の管理情報書き込み手段と、
第１の管理情報書き込み手段及び第２の管理情報書き込み手段によって書き込まれた情報に基づいて、前記論理ブロックと前記物理ブロックとの対応関係及び前記論理ブロック内の前記論理グループと前記物理ブロック内の前記物理グループとの対応関係を示すテーブルを作成するテーブル作成手段と、
を備えることを特徴とする。
【０００９】
上記目的を達成するため、本発明の第３の観点に係る本発明に係るメモリコントローラは、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理手段と、
同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を管理する書替管理手段と、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成手段と、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成手段と、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当て手段と、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込み手段と、
前記データ書き込み手段によってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込むグループ情報書き込み手段とを備え、
前記書替管理手段は、同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を判別するために、前記論理ブロックに対して新たな前記物理ブロックが割り当てられる毎に更新される書替通番を、該新たな前記物理ブロックに含まれる物理ページの冗長領域に書き込むことを特徴とする。
【００１０】
上記目的を達成するため、本発明の第４の観点に係るフラッシュメモリシステムは、上述のメモリコントローラと、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリとを備えることを特徴とする。
【００１１】
上記目的を達成するため、本発明の第５の観点に係るフラッシュメモリの制御方法は、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成ステップと、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成ステップと、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当てステップと、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込みステップと、
前記データ書き込みステップによってデータが書き込まれた物理ページに、該物理ページが含まれる前記物理ブロック内の先頭の物理グループから該物理ページが属する前記物理グループまでの各グループに割り当てられた前記論理グループを示す情報を累積的に書き込む管理情報書き込みステップと、
を有することを特徴とする。
【００１２】
上記目的を達成するため、本発明の第６の観点に係るフラッシュメモリの制御方法は、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を判別するために、前記物理ブロックに含まれる物理ページの冗長領域に、該物理ブロックに対応する前記論理ブロックを示す情報を書き込む第１の管理情報書き込みステップと、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成ステップと、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成ステップと、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当てステップと、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込みステップと、
前記データ書き込みステップによってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込む第２の管理情報書き込みステップと、
第１の管理情報書き込みステップ及び第２の管理情報書き込みステップによって書き込まれた情報に基づいて、前記論理ブロックと前記物理ブロックとの対応関係及び前記論理ブロック内の前記論理グループと前記物理ブロック内の前記物理グループとの対応関係を示すテーブルを作成するテーブル作成ステップと
を有することを特徴とする。
【００１３】
上記目的を達成するため、本発明の第７の観点に係るフラッシュメモリの制御方法は、
複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
複数個の論理ページで構成された論理ブロックと前記物理ブロックとの対応関係を管理するブロック管理ステップと、
同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を管理する書替管理ステップと、
前記論理ブロックに含まれる複数個の論理ページを論理ページアドレスが連続する複数個の論理グループに分割する論理グループ形成ステップと、
前記物理ブロックに含まれる複数個の物理ページを物理ページアドレスが連続する複数個の物理グループに分割する物理グループ形成ステップと、
前記物理ブロック内の前記物理グループに、該物理ブロックに対応する前記論理ブロック内の前記論理グループを割り当てる割り当てステップと、
前記物理グループに属する物理ページに、該物理グループに割り当てられた前記論理グループ属する論理ページに対応するデータを論理ページアドレスの順番で書き込むデータ書き込みステップと、
前記データ書き込みステップによってデータが書き込まれた物理ページに、該物理ページが属する前記物理グループに割り当てられた前記論理グループを示す情報を書き込むグループ情報書き込みステップとを有し、
前記書替管理ステップでは、同一の前記論理ブロックに対応する前記物理ブロックに書き込まれているデータの新旧関係を判別するために、前記論理ブロックに対して新たな前記物理ブロックが割り当てられる毎に更新される書替通番を、該新たな前記物理ブロックに含まれる物理ページの冗長領域に書き込む
ことを特徴とする。
【発明の効果】
【００１４】
本発明により、書替効率を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
【００１６】
［フラッシュメモリシステム１の説明］            
図１は、本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。図１に示したようにフラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するコントローラ３と、で構成されている。又、フラッシュメモリシステム１は、通常ホストシステム４に着脱可能に装着されて使用され、ホストシステム４に対して一種の外部記憶装置として用いられる。
【００１７】
尚、ホストシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
【００１８】
フラッシュメモリ２は、ページ単位で読出し又は書込みを、ブロック単位で消去を実行するデバイスであり、例えば、１ブロックは３２ページで構成され、１ページは５１２バイトのユーザ領域と１６バイトの冗長領域とで構成されている。
【００１９】
コントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２と、から構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
【００２０】
マイクロプロセッサ６は、コントローラ３を構成する各機能ブロック全体の動作を制御する機能ブロックである。
【００２１】
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づきホストインターフェースブロック７は動作する。
【００２２】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続される。かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口としてコントローラ３の内部に取り込まれる。一方、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００２３】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給されるホストアドレスと外部コマンドとを一時的に格納するタスクファイルレジスタ（図示せず）及びエラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００２４】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Static Random Access Memory）セルによって構成される機能ブロックである。
【００２５】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出したデータは、ホストシステム４の受取準備ができるまでバッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２の書込準備ができるまでバッファ９に保持される。
【００２６】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づきフラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
【００２７】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスＩＤ情報等の授受を行う機能ブロックである。
【００２８】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【００２９】
［フラッシュメモリの説明］                      
本発明に係るフラッシュメモリシステム１で、データが記憶されるＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として（ハードディスクの代わりになるものとして）開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００３０】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なっている。このようなデータの書替を行なった場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム４側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスと、の対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されており、アドレス変換テーブルは、後述する対応論理ブロックアドレスに基づいて作成される。
【００３１】
上記ブロックとページの構成は、フラッシュメモリ２の仕様によってことなるが、一般的なフラッシュメモリ２では、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザ領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザ領域と６４バイトの冗長領域で構成されているものも提供されている。
【００３２】
ここで、ユーザ領域は、主に、ホストシステム４から供給されるデ―タが記憶される領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。エラ―コレクションコードは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のＥＣＣブロックによって生成される。対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済ブロックであると判断される。ブロックステータスは、そのブロックが不良ブロック（正常にデータの書込み等を行なうことができないブロック）であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００３３】
次に、ＮＡＮＤ型フラッシュメモリの回路構成について説明する。一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイと、によって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００３４】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳ（Metal Oxide Semiconductor）トランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと、呼ばれており、フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書込み若しくはデータの消去を行なっている。このフローティングゲートは周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。ここで、フローティングゲートに電子が注入されている状態（書込状態）が、論理値の「０」のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値の「１」のデータに対応する。
【００３５】
次に、本発明に係るフラッシュメモリシステム１について、図面を参照して説明する。図３は、１ブロックが６４ページで構成されたフラッシュメモリ２の冗長領域に設定される情報を示している。フラッシュメモリ２内の各ブロックには、ホストシステム４側の１ブロック分のアドレス空間（６４ページ分の記憶領域）が割当てられ、ホストシステム４側のアドレス空間とフラッシュメモリ２内のアドレス空間との対応関係は、ブロック単位で管理されている。更に、本発明に係るフラッシュメモリシステム１では、各ブロックに割当てられるページを複数のグループに分割している。尚、ブロックは、上述の通り消去処理の処理単位になっている。
【００３６】
図３に示した例では、各ブロックに割当てられるページを４つのグループに分割している。以下、このグループをサブブロックと言う。各ブロックに割当てられるページを、論理ページアドレス（ホストシステム４側から与えられるページアドレス）の番号が小さい方から順にＬＰ０〜ＬＰ６３とすれば、サブブロック０（サブブロック番号が“０”のサブブロック）にはＬＰ０〜ＬＰ１５のページが割当てられ、サブブロック１（サブブロック番号が“１”のサブブロック）にはＬＰ１６〜ＬＰ３１のページが割当てられ、サブブロック２（サブブロック番号が“２”のサブブロック）にはＬＰ３２〜ＬＰ４７のページが割当てられ、サブブロック３（サブブロック番号が“３”のサブブロック）にはＬＰ４８〜ＬＰ６３のページが割当てられている。
【００３７】
図３に示したブロックのユーザ領域には、サブブロック０、サブブロック１、サブブロック２及びサブブロック３の各サブブロックに割当てられた論理ページアドレスのデータが、サブブロック０、サブブロック１、サブブロック２、サブブロック３の順番で記憶されている。つまり、このブロック内のページ０〜１５（Ｐ０〜Ｐ１５）には、サブブロック０に割当てられた論理ページアドレスのデータが、ページ１６〜３１（Ｐ１６〜Ｐ３１）には、サブブロック１に割当てられた論理ページアドレスのデータが、ページ３２〜４７（Ｐ３２〜Ｐ４７）には、サブブロック２に割当てられた論理ページアドレスのデータが、ページ４８〜６３（Ｐ４８〜Ｐ６３）には、サブブロック３に割当てられた論理ページアドレスのデータがそれぞれ記憶されている。
【００３８】
これに対応して、ページ０〜１５（Ｐ０〜Ｐ１５）の冗長領域には、サブブロック番号として“０”（２進数の００ｂ）が、ページ１６〜３１（Ｐ１６〜Ｐ３１）の冗長領域には、サブブロック番号として“１”（２進数の０１ｂ）が、ページ３２〜４７（Ｐ３２〜Ｐ４７）の冗長領域には、サブブロック番号として“２”（２進数の１０ｂ）が、ページ４８〜６３（Ｐ４８〜Ｐ６３）の冗長領域には、サブブロック番号として“３”（２進数の１１ｂ）がそれぞれ設定されている。
【００３９】
冗長領域には、ホストシステム４側のアドレス空間とフラッシュメモリ２内のアドレス空間との対応関係を管理するために論理通番（２進数の００  １００１  １１１１ｂ）も設定されている。この論理通番は、ホストシステム４側の一定領域内で付された通番である。例えば、ホストシステム側の１０００ブロック分の領域を、フラッシュメモリ２内のブロックアドレスが連続する１０２４ブロックに割当てる管理方法では、ホストシステム４側の領域に対して０〜９９９の論理通番が付与され、フラッシュメモリ２内の１０２４ブロックに対して０〜１０２３の物理通番が付与される。この論理通番と物理通番の対応関係は、冗長領域に設定されている論理通番によって管理される。
【００４０】
尚、ホストシステム４側の一定領域内で付された通番である論理通番は、その領域に対するオフセット分のアドレス（その領域の先頭アドレス）を加算することによって、論理ブロックアドレスに変換することができる。従って、上記論理通番は、実質的に上述の対応論理ブロックアドレスの役割を果たしている。物理通番についてもそのブロックに対するオフセット分のアドレスを加算することによって物理ブロックアドレスに変換することができる。
【００４１】
上記論理ブロックアドレスは、図４に示したように論理ページアドレスから、ページ番号に対応する下位６ビットを除いた部分である。ページ番号部分は各ページに付された通番であり、１ブロックが６４ページの場合は６ビットが割当てられる。尚、上記ＬＰ０〜ＬＰ６３の各ページの論理ページアドレスは、論理ブロックアドレス部分が同一で、ページ番号部分は表１のようなっている。
【００４２】
【表１】
0004000124.tif 000002
【００４３】
本発明に係るフラッシュメモリシステム１では、ブロックに記憶させるデータの順序をサブブロック単位で変更することができる。図５に示した例では、サブブロック３、サブブロック０、サブブロック１、サブブロック２の順番で、各サブブロックに対応するデータが記憶されている。つまり、このブロック内のページ０〜１５（Ｐ０〜Ｐ１５）には、サブブロック３に割当てられた論理ページアドレスのデータが、ページ１６〜３１（Ｐ１６〜Ｐ３１）には、サブブロック０に割当てられた論理ページアドレスのデータが、ページ３２〜４７（Ｐ３２〜Ｐ４７）には、サブブロック１に割当てられた論理ページアドレスのデータが、ページ４８〜６３（Ｐ４８〜Ｐ６３）には、サブブロック２に割当てられた論理ページアドレスのデータがそれぞれ記憶されている。尚、各サブブロック内では、各論理ページアドレスに対応するデータが、論理ページアドレスの順番（番号の小さい順）で書込まれる。
【００４４】
これに対応して、ページ０〜１５（Ｐ０〜Ｐ１５）の冗長領域には、サブブロック番号として“３”（２進数の１１ｂ）が、ページ１６〜３１（Ｐ１６〜Ｐ３１）の冗長領域には、サブブロック番号として“０”（２進数の００ｂ）が、ページ３２〜４７（Ｐ３２〜Ｐ４７）の冗長領域には、サブブロック番号として“１”（２進数の０１ｂ）が、ページ４８〜６３（Ｐ４８〜Ｐ６３）の冗長領域には、サブブロック番号として“２”（２進数の１０ｂ）がそれぞれ設定されている。
【００４５】
次に、ホストシステム４側の１ブロック分のアドレス空間（６４ページ分の記憶領域）に対応するデータの一部だけを書替える処理で、書替前のデータが記憶されているブロックと書替後のデータが記憶されているブロックを並存させる場合について説明する。図６は、書替前のデータが記憶されているブロックの冗長領域に設定される情報（図６（ａ））と、書替後のデータが記憶されているブロックの冗長領域に設定される情報（図６（ｂ））を示している。
【００４６】
書替前のデータが記憶されているブロックには、サブブロック０、サブブロック１、サブブロック２及びサブブロック３の各サブブロックに割当てられた論理ページアドレスのデータが、サブブロック０、サブブロック１、サブブロック２、サブブロック３の順番で記憶されている。これに対応して、ページ０〜１５（Ｐ０〜Ｐ１５）の冗長領域には、サブブロック番号として“０”（２進数の００ｂ）が、ページ１６〜３１（Ｐ１６〜Ｐ３１）の冗長領域には、サブブロック番号として“１”（２進数の０１ｂ）が、ページ３２〜４７（Ｐ３２〜Ｐ４７）の冗長領域には、サブブロック番号として“２”（２進数の１０ｂ）が、ページ４８〜６３（Ｐ４８〜Ｐ６３）の冗長領域には、サブブロック番号として“３”（２進数の１１ｂ）がそれぞれ設定されている。冗長領域には、更に、論理通番００  １００１  １１１１ｂ（２進数）と書替通番００ｂ（２進数）が設定されている。この書替通番は、書替を行う毎に更新されていく番号であり、００ｂ（２進数）、０１ｂ（２進数）、１０ｂ（２進数）、１１ｂ（２進数）、００ｂ（２進数）という順番で更新されていく。
【００４７】
書替後のデータが記憶されているブロックには、サブブロック３とサブブロック２に割当てられた論理ページアドレスのデータが、この順番で記憶されている。これに対応して、ページ０〜１５（Ｐ０〜Ｐ１５）の冗長領域には、サブブロック番号として“３”（２進数の１１ｂ）が、ページ１６〜３１（Ｐ１６〜Ｐ３１）の冗長領域には、サブブロック番号として“２”（２進数の１０ｂ）が設定されている。冗長領域には、更に、論理通番００  １００１  １１１１ｂ（２進数）と書替通番０１ｂ（２進数）が設定されている。
【００４８】
ここで、書替前のデータと書替後のデータは、同一の論理ブロックアドレスに対応したデータなので、書替前のデータが記憶されているブロックの冗長領域に設定されている論理通番と書替後のデータが記憶されているブロックの冗長領域に設定されている論理通番は、同一の番号になっている。書替通番は、００ｂ（２進数）、０１ｂ（２進数）、１０ｂ（２進数）、１１ｂ（２進数）、００ｂ（２進数）という順番で更新されていくので、書替前の書替通番００ｂ（２進数）が、書替後は０１ｂ（２進数）に更新される。
【００４９】
上記のように同一の論理ブロックアドレスに対応したデータが記憶されているブロックが複数存在した場合、書替通番に基づいていずれのブロックに記憶されているデータがより新しいデータであるかが判断される。図６に示した例では、書替通番００ｂ（２進数）が設定されているブロック（図６（ａ））のサブブロック２及びサブブロック３に記憶されているデータは、書替通番０１ｂ（２進数）が設定されているブロック（図６（ｂ））のサブブロック２及びサブブロック３に記憶されているデータに書替えられているので、書替通番００ｂ（２進数）が設定されているブロック（図６（ａ））のサブブロック０及びサブブロック１に記憶されているデータと、書替通番０１ｂ（２進数）が設定されているブロック（図６（ｂ））のサブブロック２及びサブブロック３に記憶されているデータが、論理通番００  １００１  １１１１ｂ（２進数）に対応する最新のデータであると判断される。
【００５０】
次に、本発明に係るフラッシュメモリシステム１におけるアドレス変換テーブルについて説明する。図７は、本発明に係るアドレス変換テーブルの１例を示している。この例では、ホストシステム４側の１０００ブロック分の領域を、フラッシュメモリ２内のブロックアドレスが連続する１０２４ブロックに割当てている。このアドレス変換テーブルは、ホストシステム４側の領域に対して０〜９９９の付与した論理通番と、フラッシュメモリ２内の１０２４ブロックに対して付与した０〜１０２３の物理通番の対応関係を示している。更に、フラッシュメモリ２内の各ブロックにおけるサブブロック単位での格納順序が示されている。
【００５１】
例えば、図３で論理通番０に対応するデータは、物理通番００  １００１  ０１０１ｂ（２進数）に対応するブロックに、サブブロック３、サブブロック２、サブブロック０、サブブロック１の順序で格納されている。サブテーブルは、同一の論理通番に対応するデータが、複数の物理通番に対応するブロックに記憶されている場合に、メインテーブルに記述されていない物理通番を記述する。
【００５２】
論理通番３に対応するデータが記憶されているブロックの物理通番は、メインテーブルとサブテーブルの双方に記述されている。このような場合は、論理通番３に対応するデータが記憶されている物理通番００  ００００  ０１０１ｂ（２進数）に対応するブロックと、物理通番００  ０００１  ０１０１ｂ（２進数）に対応するブロックの冗長領域に設定されている書替通番に基づいて、最新のデータを抽出する。
【００５３】
図８は、サブブロック番号を累積的に記述した場合の例を示している。この例で、ページ０〜１５（Ｐ０〜Ｐ１５）の冗長領域には、最初に格納されるサブブロックのサブブロック番号１１ｂ（２進数）が設定される。ページ１６〜３１（Ｐ１６〜Ｐ３１）の冗長領域には、１番目及び２番目に格納されるサブブロックのサブブロック番号１１ｂ（２進数）及び１０ｂ（２進数）が、この順序設定される。ページ３２〜４７（Ｐ３２〜Ｐ４７）の冗長領域には、１番目、２番目及び３番目に格納されるサブブロックのサブブロック番号１１ｂ（２進数）、１０ｂ（２進数）及び０１ｂ（２進数）が、この順序設定される。ページ４８〜６３（Ｐ４８〜Ｐ６３）の冗長領域には、１番目、２番目、３番目及び４番目に格納されるサブブロックのサブブロック番号１１ｂ（２進数）、１０ｂ（２進数）、０１ｂ（２進数）及び００ｂ（２進数）が、この順序で設定される。このようにサブブロックの格納順序に従って、サブブロック番号を累積的に記述すれば、最後に格納されたサブブロックに対応して設定された累積的なサブブロック番号を読出すだけで、サブブロックの格納順序を把握することができる。
【００５４】
以上説明したように、本実施の形態に係るフラッシュメモリシステム１は、フラッシュメモリ２内の同一のブロックに属する複数のページを、物理ページアドレスが連続する４つのサブブロックに分け、同一のサブブロックに属するページの冗長領域に、同一のサブブロック番号を設定する。そして、フラッシュメモリシステム１は、同一のサブブロック番号が設定されているページのユーザ領域に、ホストシステム４側から与えられるユーザデータを論理ページアドレスの順番で記憶する。このようにブロック内のページを４つのサブブロックに分割して、各グループ単位で記憶順序を変更することによって、フラッシュメモリシステム１は、その書替効率を向上させることができる。
【図面の簡単な説明】
【００５５】
【図１】本発明に係るフラッシュメモリシステムの構成を概略的に示すブロック図である。
【図２】フラッシュメモリの構成例を示す図である。
【図３】フラッシュメモリの冗長領域に設定される情報を示す説明図である。
【図４】論理ブロックアドレスを説明するための図である。
【図５】フラッシュメモリの冗長領域に設定される情報を示す説明図である。
【図６】フラッシュメモリの冗長領域に設定される情報を示す説明図である。
【図７】アドレス変換テーブルの構成例を示す図である。
【図８】フラッシュメモリの冗長領域に設定される情報を示す説明図である。
【符号の説明】
【００５６】
１  フラッシュメモリシステム
２  フラッシュメモリ
３  コントローラ
４  ホストシステム
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュメモリシーケンサブロック
１３  外部バス
１４  内部バス
【図１】
0004000124.tif 000003
【図２】
0004000124.tif 000004
【図３】
0004000124.tif 000005
【図４】
0004000124.tif 000006
【図５】
0004000124.tif 000007
【図６】
0004000124.tif 000008
【図７】
0004000124.tif 000009
【図８】
0004000124.tif 000010