(57)【特許請求の範囲】
【請求項１】
アクセス装置と通信可能であり、前記アクセス装置からの指示によりデータの書き込み及び読み出しを行う不揮発性記憶装置であって、
データの書き込み及び読み出しが論理アドレスに対応する物理アドレスに基づいて行われ、多値書き込み可能な不揮発性メモリと、
前記不揮発性メモリの書き込み動作及び読み出し動作を制御するメモリコントローラとを備え、
前記不揮発性メモリは、消去単位である複数のブロックを含み、
前記複数のブロックの各々は、書き込み単位である複数のページを含み、
前記メモリコントローラは、
前記ブロックに格納されるデータの論理アドレスと物理アドレスとの対応情報を格納する論理／物理変換テーブルと、
前記アクセス装置から受信した論理アドレスに基づいて前記論理／物理変換テーブルから物理アドレスを特定し、前記不揮発性メモリの前記ブロックに対するデータの書き込み及び読み出しを制御する制御部と、
書き込み中の電源遮断に対してデータを保護する第１の書き込みモードと、前記第１の書き込みモードより高速にデータを書き込む第２の書き込みモードとのうち一方の書き込みモードを格納するための書き込みモードテーブルと、
前記アクセス装置から受信した前記第１の書き込みモード又は前記第２の書き込みモードを前記書き込みモードテーブルに設定する設定部とを備え、
前記制御部は、前記書き込みモードテーブルに設定された書き込みモードに基づいてデータの書き込みを行い、
前記制御部は、
前記書き込みモードテーブルに前記第１の書き込みモードが設定されている場合、前記論理／物理変換テーブルから特定された物理アドレスへ２値モード書き込みを行った後、前記アクセス装置から指定された論理アドレスが対応する複数の書き込み済みのブロックのデータを、書き込みがされていない空きブロックに多値書き込みで複写し、
前記書き込みモードテーブルに前記第２の書き込みモードが設定されている場合、前記論理／物理変換テーブルから特定された物理アドレスへ多値モード書き込みを行い、
前記不揮発性メモリの前記ブロックは、
前記アクセス装置が指定する論理アドレスに対応して前記ブロック内の全てのページにデータが書き込まれている書き込み完結ブロックと、
前記アクセス装置が指定する論理アドレスに対応したデータが書き込まれる書き込み用ブロックと、
データが消去された状態の空きブロックとを含み、
前記制御部は、前記書き込みモードテーブルに前記第１の書き込みモードが設定されている場合、前記書き込み用ブロックへは常に前記２値モード書き込みでデータを書き込み、前記書き込み用ブロックの全てのページにデータが書き込まれたときに、論理アドレスが共通する前記書き込み完結ブロックのデータ及び前記書き込み用ブロックのデータを多値モード書き込みで前記空きブロックへ複写する集約処理を行い、
前記制御部は、前記アクセス装置から新規書き込みモードを受信し、前記新規書き込みモードが前記書き込みモードテーブルに格納されている書き込みモードと異なる場合、前記書き込み完結ブロックのデータ及び前記書き込み用ブロックのデータを多値モード書き込みで前記空きブロックへ複写する集約処理を行うことを特徴とする不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置、該不揮発性記憶装置にアクセスするアクセス装置、及びこれらを備える不揮発性記憶システムに関し、特に、不揮発性半導体メモリを用いた不揮発性記憶装置のデータの書き込み方法に関する。
【背景技術】
【０００２】
音楽コンテンツや映像コンテンツなどのデジタルデータを記録する媒体の一種である半導体メモリカードは、その記憶素子にフラッシュメモリなどの不揮発性半導体メモリを使用している。
【０００３】
近年では、フラッシュメモリの大容量化が進行し、高い記録密度及び高いデータ記録速度が必要になってきている。また、フラッシュメモリの記録容量を向上させるため、１つのメモリセルに複数ビットのデータ記録が可能なフラッシュメモリ（以下、多値フラッシュメモリ）が普及している。
【０００４】
上記の多値フラッシュメモリのデータ書き込みにおいて、複数ビットのうち、下位ビットへのデータの書き込み後、上位ビットへのデータの書き込み中に電源遮断が発生すると、書き込み中の上位ビットのデータに加えて書き込み済みの下位ビットのデータまでもが誤ったデータとなってしまうという特性がある。そこで、多値フラッシュメモリの電源遮断時にデータ書き込み中の一部のデータが破壊された場合、電源遮断前のデータを復元し、多値フラッシュメモリを有効に利用することが可能な技術が開示されている（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２５７１０９号公報
【特許文献２】特開２００９−２１１２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、常に電源遮断時の対策を考慮したデータ書き込みを行うと、電源遮断時の対策を考慮したデータ書き込みにかかる処理時間は、電源遮断時の対策を考慮しないデータ書き込みにかかる処理時間に比べて、膨大となる。
【０００７】
また、多値フラッシュメモリを用いた不揮発性記憶装置に、例えば、地図や辞書のようなコンテンツデータを予め生産工場内で書き込んで記録した後に製品として出荷するときには、電源遮断時の対策を考慮せずにデータを書き込むことにより、書き込み時間を短縮したい場合がある。
【０００８】
本発明は、不揮発性記憶装置にデータの書き込みを行う場合に、電源遮断時の書き込みモードとは別に、高速なデータ書き込みを実現するための書き込みモードを持ち、コンテンツデータの書き込み時間を短縮することができる不揮発性記憶装置、アクセス装置及び不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る不揮発性記憶装置は、アクセス装置と通信可能であり、前記アクセス装置からの指示によりデータの書き込み及び読み出しを行う不揮発性記憶装置であって、データの書き込み及び読み出しが論理アドレスに対応する物理アドレスに基づいて行われ、多値書き込み可能な不揮発性メモリと、前記不揮発性メモリの書き込み動作及び読み出し動作を制御するメモリコントローラとを備え、前記不揮発性メモリは、消去単位である複数のブロックを含み、前記複数のブロックの各々は、書き込み単位である複数のページを含み、前記メモリコントローラは、前記ブロックに格納されるデータの論理アドレスと物理アドレスとの対応情報を格納する論理／物理変換テーブルと、前記アクセス装置から受信した論理アドレスに基づいて前記論理／物理変換テーブルから物理アドレスを特定し、前記不揮発性メモリの前記ブロックに対するデータの書き込み及び読み出しを制御する制御部と、書き込み中の電源遮断に対してデータを保護する第１の書き込みモードと、前記第１の書き込みモードより高速にデータを書き込む第２の書き込みモードとのうち一方の書き込みモードを格納するための書き込みモードテーブルと、前記アクセス装置から受信した前記第１の書き込みモード又は前記第２の書き込みモードを前記書き込みモードテーブルに設定する設定部とを備え、前記制御部は、前記書き込みモードテーブルに設定された書き込みモードに基づいてデータの書き込みを行う。
【００１０】
この不揮発性記憶装置においては、書き込み中の電源遮断に対してデータを保護する第１の書き込みモードと、第１の書き込みモードより高速にデータを書き込む第２の書き込みモードとのうち一方の書き込みモードを格納するための書き込みモードテーブルに、アクセス装置から受信した第１の書き込みモード又は第２の書き込みモードを設定し、書き込みモードテーブルに設定された書き込みモードに基づいてデータの書き込みを行っているので、不揮発性記憶装置にデータの書き込みを行う場合に、電源遮断時の第１の書き込みモードとは別に、高速なデータ書き込みを実現するための第２の書き込みモードを用いて、コンテンツデータの書き込み時間を短縮することができる。
【００１１】
前記制御部は、前記書き込みモードテーブルに前記第１の書き込みモードが設定されている場合、前記論理／物理変換テーブルから特定された物理アドレスへ２値モード書き込みを行った後、前記アクセス装置から指定された論理アドレスが対応する複数の書き込み済みのブロックのデータを、書き込みがされていない空きブロックに多値書き込みで複写し、前記書き込みモードテーブルに前記第２の書き込みモードが設定されている場合、前記論理／物理変換テーブルから特定された物理アドレスへ多値モード書き込みを行うことが好ましい。
【００１２】
この場合、第１の書き込みモードが設定されているときに、２値モード書き込みを行った後、書き込みがされていない空きブロックに複数の書き込み済みのブロックのデータを多値書き込みで複写しているので、電源遮断によるデータの破壊を防止することができるとともに、第２の書き込みモードが設定されているときには、多値モード書き込みを行っているので、工場生産時などの異常な電源遮断の恐れが無い場合に、コンテンツデータの書き込み時間を短縮することができる。
【００１３】
前記不揮発性メモリの前記ブロックは、前記アクセス装置が指定する論理アドレスに対応して前記ブロック内の全てのページにデータが書き込まれている書き込み完結ブロックと、前記アクセス装置が指定する論理アドレスに対応したデータが書き込まれる書き込み用ブロックと、データが消去された状態の空きブロックとを含み、前記制御部は、前記書き込みモードテーブルに前記第１の書き込みモードが設定されている場合、前記書き込み用ブロックへは常に前記２値モード書き込みでデータを書き込み、前記書き込み用ブロックの全てのページにデータが書き込まれたときに、論理アドレスが共通する前記書き込み完結ブロックのデータ及び前記書き込み用ブロックのデータを多値モード書き込みで前記空きブロックへ複写する集約処理を行うことが好ましい。
【００１４】
この場合、第１の書き込みモードが設定されているときに、書き込み用ブロックに常に２値モード書き込みでデータを書き込み、書き込み用ブロックの全てのページにデータが書き込まれた後に、論理アドレスが共通する書き込み完結ブロックのデータ及び書き込み用ブロックのデータを多値モード書き込みで空きブロックへ複写しているので、多値モード書き込みによる集約処理中に電源遮断が発生した場合でも、電源再投入時に、集約処理により作成中の書き込み完結ブロックに書き込まれたデータを放棄し、集約処理前の書き込み完結ブロックのデータ及び書き込み用ブロックのデータを用いて再度集約処理を行うことができ、電源遮断によるデータの破壊を確実に防止することができる。
【００１５】
前記制御部は、前記アクセス装置から新規書き込みモードを受信し、前記新規書き込みモードが前記書き込みモードテーブルに格納されている書き込みモードと異なる場合、前記書き込み完結ブロックのデータ及び前記書き込み用ブロックのデータを多値モード書き込みで前記空きブロックへ複写する集約処理を行うことが好ましい。
【００１６】
この場合、新規書き込みモードを受信し、新規書き込みモードが書き込みモードテーブルに格納されている書き込みモードと異なるときに、書き込み完結ブロックのデータ及び書き込み用ブロックのデータを多値モード書き込みで空きブロックへ複写しているので、書き込み途中ブロックが２値モード書き込みで書き込まれている場合も、多値モード書き込みで書き込まれている場合も、上記の集約処理を実施することとなり、書き込みモードの変更中に電源が遮断された場合でも、電源再投入時に、集約処理により作成中の書き込み完結ブロックに書き込まれたデータを放棄することにより、書き込みモードの変更中の電源遮断によるデータの破壊を防止することができる。
【００１７】
前記論理／物理変換テーブルは、ブロック内の全てのページに書き込みが行われていないブロックである書き込み途中ブロックの物理アドレスと論理アドレスとの対応情報に付加して、前記書き込み途中ブロックに書き込み済のデータが２値モード書き込み又は多値モード書き込みのいずれの方式により書き込まれたかを示す情報を既存データ書き込み方式として記録する書き込み途中ブロック管理テーブルを含み、前記制御部は、前記アクセス装置から書き込みコマンドを受信したときに、前記書き込み途中ブロック管理テーブルにより決定される前記書き込み途中ブロックの既存データ書き込み方式が、前記書き込みモードテーブルの書き込みモードにより決定される書き込み方式と異なる場合、前記書き込み完結ブロックのデータ及び前記書き込み用ブロックのデータを多値モード書き込みで前記空きブロックへ複写する集約処理を行うようにしてもよい。
【００１８】
この場合、アクセス装置から書き込みコマンドを受信したときに、書き込み途中ブロック管理テーブルにより決定される書き込み途中ブロックの既存データ書き込み方式が、書き込みモードテーブルの書き込みモードにより決定される書き込み方式と異なる場合、書き込み完結ブロックのデータ及び書き込み用ブロックのデータを多値モード書き込みで空きブロックへ複写する集約処理を行っているので、書き込みモードを複数回変更する場合に、書き込みモードの変更に伴う複写回数を減少させることができ、書き込みモードの変更時間を短縮することができる。
【００１９】
前記不揮発性メモリの前記ブロックは、前記アクセス装置が指定する論理アドレスに対応して前記ブロック内の全てのページにデータが書き込まれている書き込み完結ブロックと、前記アクセス装置が指定する論理アドレスに対応したデータが書き込まれる書き込み用ブロックと、データが消去された状態の空きブロックとを含み、前記制御部は、前記書き込みモードテーブルに前記第１の書き込みモードが設定されている場合、前記書き込み用ブロックにデータを書き込む前に当該データを他のブロックにバックアップし、バックアップ後に前記書き込み用ブロックにデータを書き込むことが好ましい。
【００２０】
この場合、書き込みモードテーブルに第１の書き込みモードが設定されているときに、書き込み用ブロックにデータを書き込む前に当該データを他のブロックにバックアップし、バックアップ後に書き込み用ブロックにデータを書き込んでいるので、電源遮断により書き込み途中ブロックのデータが破壊された場合でも、バックアップされたデータを読み出すことにより、データの破壊を防止することができる。
【００２１】
前記不揮発性メモリは、書き込みモードを変更できるモード変更可能領域と、書き込みモードを変更できないモード変更不可領域とを含み、前記制御部は、前記モード変更可能領域に対してのみ、書き込みモードテーブルに格納されている書き込みモードに応じてデータを書き込むことが好ましい。
【００２２】
この場合、モード変更可能領域に対してのみ、書き込みモードテーブルに格納されている書き込みモードに応じてデータを書き込んでいるので、モード変更可能領域に対しては、上記の効果を奏することができるとともに、モード変更不可領域の書き込みモードを予め第１の書き込みモードに設定し、ファイルシステムデータ等の重要なデータをモード変更不可領域に書き込むことにより、電源遮断による重要なデータの破壊を確実に防止することができる。
【００２３】
本発明に係るアクセス装置は、不揮発性記憶装置と通信可能であり、前記不揮発性記憶装置へのデータの書き込み及び前記不揮発性記憶装置からのデータの読み出しを行うアクセス装置であって、書き込み中の電源遮断に対してデータを保護する第１の書き込みモードと、前記第１の書き込みモードより高速にデータを書き込む第２の書き込みモードとのうち一方を不揮発性記憶装置へ指示する。
【００２４】
このアクセス装置においては、書き込み中の電源遮断に対してデータを保護する第１の書き込みモードと、第１の書き込みモードより高速にデータを書き込む第２の書き込みモードとのうち一方を不揮発性記憶装置へ指示しているので、不揮発性記憶装置では、指示された書き込みモードに基づいてデータの書き込みを行うことができ、電源遮断時の第１の書き込みモードとは別に、高速なデータ書き込みを実現するための第２の書き込みモードを用いて、コンテンツデータの書き込み時間を短縮することができる。
【００２５】
本発明に係る他の不揮発性記憶システムは、上記いずれかの不揮発性記憶装置と、上記アクセス装置とを備える。
【発明の効果】
【００２６】
本発明によれば、不揮発性記憶装置にデータの書き込みを行う場合に、電源遮断時の第１の書き込みモードとは別に、高速なデータ書き込みを実現するための第２の書き込みモードを用いて、コンテンツデータの書き込み時間を短縮することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施の形態の不揮発性メモリシステムの構成を示すブロック図である。
【図２】図１に示す不揮発性メモリの内部構造の一例を説明するための模式図である。
【図３】図１に示す不揮発性メモリの物理ブロックの内部構造の一例を説明するための模式図である。
【図４】図１に示す論理／物理変換テーブルの構成の一例を示す図である。
【図５】図１に示す空きブロック管理テーブルの構成の一例を示す図である。
【図６】図１に示す書き込みモードテーブルの構成の一例を示す図である。
【図７】図１に示す不揮発性メモリの物理ページが属するセルページの一例を示す図である。
【図８】図１に示す不揮発性メモリ装置の書き込み動作の一例を説明するためのフローチャートである。
【図９】図１に示す不揮発性メモリ装置の書き込みモード変更処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００２８】
以下に、本発明の一実施の形態の不揮発性メモリシステムについて、図面を参照しながら説明する。
【００２９】
図１は、本発明の一実施の形態の不揮発性メモリシステムの構成を示すブロック図である。図１に示す不揮発性メモリシステムは、不揮発性記憶システムの一例であり、アクセス装置１００と、不揮発性メモリ装置１０２とを有する。不揮発性メモリ装置１０２は、アクセス装置１００と通信可能であり、アクセス装置１００からの指示によりデータの書き込み及び読み出しを行う。不揮発性メモリ装置１０２は、例えば、半導体メモリカードであり、不揮発性記憶装置の一例である。アクセス装置１００は、不揮発性メモリ装置１０２に対してデータの書き込み及び読み出しを行うホスト機器であり、例えば、デジタルカメラ、携帯電話、ビデオレコーダ、コンピュータ等が該当する。
【００３０】
アクセス装置１００は、アクセス装置１００の各種制御を行う制御部（図示省略）、及び不揮発性メモリ装置１０２との間でコマンドやデータを送信する指令部１０１等を備える。指令部１０１は、制御部による制御の下、不揮発性メモリ装置１０２へ各種指令を送信し、例えば、データの書き込みを指示する書き込みコマンドや書き込みモードの変更を指示する書き込みモード変更コマンドを不揮発性メモリ装置１０２へ送信する。
【００３１】
不揮発性メモリ装置１０２は、メモリコントローラ１０３と、不揮発性メモリ１０４とを有する。メモリコントローラ１０３は、アクセス装置１００からのコマンドを受信して不揮発性メモリ１０４に対するデータの書き込み及び読み出しを制御する半導体回路である。不揮発性メモリ１０４は、電源無しにデータの保持が可能なフラッシュメモリである。
【００３２】
メモリコントローラ１０３は、ホストインターフェース１０５と、論理／物理変換テーブル１０６と、空きブロック管理テーブル１０７と、書き込みモードテーブル１０８と、書き込みモード変更制御部１０９と、読み出し／書き込み制御部１１０を有する。
【００３３】
ホストインターフェース１０５は、アクセス装置１００との間でコマンドやデータをやりとりする。論理／物理変換テーブル１０６は、アクセス装置１００が指定する論理アドレスを不揮発性メモリ１０４内の物理アドレスに変換するテーブルであり、不揮発性メモリ１０４の物理ブロックに格納されるデータの論理アドレスと物理アドレスとの対応情報を格納する。
【００３４】
空きブロック管理テーブル１０７は、不揮発性メモリ１０４内の物理ブロックの使用状況を管理するテーブルである。書き込みモードテーブル１０８は、書き込み方式を決定するための情報を管理するテーブルであり、書き込み中の電源遮断に対してデータを保護する第１の書き込みモードの一例である耐電源断モードと、第１の書き込みモードより高速にデータを書き込む第２の書き込みモードの一例である高速モードとのうち一方の書き込みモードを格納する。
【００３５】
書き込みモード変更制御部１０９は、アクセス装置１００の指令部１０１から取得した書き込みモード変更コマンドによる書き込みモードの変更を制御し、アクセス装置１００から受信した耐電源断モード又は高速モードを書き込みモードテーブル１０８に設定する。読み出し／書き込み制御部１１０は、不揮発性メモリ１０４に対するデータの書き込み及び読み出しを制御し、書き込みモードテーブル１０８に設定された書き込みモードに基づいてデータの書き込みを行う。なお、上記各ブロックは、図示を省略した配線により相互に接続され、種々のデータ及び信号等を相互に通信可能に構成されている。
【００３６】
不揮発性メモリ１０４は、データの書き込み及び読み出しが論理アドレスに対応する物理アドレスに基づいて行われ、多値書き込み可能な不揮発性半導体メモリであり、消去単位である複数のブロックを含み、複数のブロックの各々は、書き込み単位である複数のページを含む。例えば、不揮発性メモリ１０４は、データの消去単位となる物理ブロックを複数有する多値ＮＡＮＤ型フラッシュメモリである。
【００３７】
具体的には、不揮発性メモリ１０４は、Ｍ個（Ｍ＞３、Ｍは整数）の閾値電圧領域を持つ複数のメモリセルを有し、複数のメモリセルからデータの書き込み単位である物理ページが構成され、複数の物理ページからデータの消去単位である物理ブロックが構成される。不揮発性メモリ１０４では、Ｍ個の閾値電圧領域のうち２つの閾値電圧領域を用いてデータを書き込む２値モード書き込みと、Ｍ個の閾値電圧領域を用いてデータを書き込む多値モード書き込みのいずれかによってデータを書き込むことができる。
【００３８】
また、不揮発性メモリ１０４は、管理データ格納領域１１１と、データ格納領域１１２とを有する。管理データ格納領域１１１は、アクセス装置１００からアクセスできない領域であり、アドレス管理情報などが格納される。データ格納領域１１２は、アクセス装置１００から論理アドレスを指定して書き込み及び読み出しが可能な領域であり、コンテンツデータやファイルシステムデータが格納される。
【００３９】
図２は、不揮発性メモリ１０４の内部構造の一例を説明するための模式図である。不揮発性メモリ１０４は、例えば、ＰＢ０からＰＢ１０２３までの１０２４個の物理ブロックで構成されている。物理ブロックは、不揮発性メモリ１０４の消去単位であり、例えば、一物理ブロックあたりの容量は５１２ＫＢ（キロバイト）である。
【００４０】
図３は、１つの物理ブロックの内部構造の一例を説明するための模式図である。物理ブロックＰＢは、例えば、ＰＰ０からＰＰ１２７までの１２８個の物理ページから構成されている。物理ページは、不揮発性メモリ１０４における書き込みの最小単位である。書き込みを行う際は、番号の小さい物理ページから順番に書き込む。一物理ページあたりの容量は、例えば、データ格納用の４ＫＢと、管理情報格納用の１２８Ｂとを加算した値である。
【００４１】
図４は、論理／物理変換テーブル１０６の構成の一例を示す図である。論理／物理変換とは、アクセス装置１００が指定した論理アドレスから得られる論理ブロック（ＬＢ）の論理アドレスを、不揮発性メモリ１０４の物理ブロック（ＰＢ）の物理アドレスに変換する処理である。
【００４２】
論理／物理変換テーブル１０６は、論理ブロックの論理アドレスを、変換する物理ブロックの物理アドレスに対応づけて記憶するテーブルである。読み出し／書き込み制御部１１０は、アクセス装置１００から受信した書き込み先ページを指定する論理アドレスに対して、書き込み先ページを指定する論理アドレスを含む物理アドレスを論理／物理変換テーブル１０６から特定し、不揮発性メモリ１０４の書き込み動作及び読み出し動作を制御する。
【００４３】
論理／物理変換テーブル１０６は、書き込み完結ブロック管理テーブル４０１と、書き込み途中ブロック管理テーブル４０２とで構成される。
【００４４】
書き込み完結ブロック管理テーブル４０１は、物理ブロック内の全ての物理ページに書き込みが行われている物理ブロックである書き込み完結ブロックの物理アドレスを、論理ブロックの論理アドレスに対応づけて管理しているテーブルである。物理ブロックが割り当てられていない論理ブロックの論理アドレスに対しては、物理アドレスとして、未割り当てを示す値を設定する。
【００４５】
書き込み途中ブロック管理テーブル４０２は、物理ブロック内の全ての物理ページに書き込みが行われていない物理ブロックである書き込み途中ブロックの物理アドレスを、論理ブロックの論理アドレスに対応づけて管理しているテーブルである。
【００４６】
図４に示す例では、論理ブロックＬＢ１（論理アドレスＬＢ１を有する論理ブロック）は、２つの物理ブロックＰＢ３５８、ＰＢ３８（物理アドレスＰＢ３５８を有する物理ブロック及び物理アドレスＰＢ３８を有する物理ブロック）に対応している。物理ブロックＰＢ３５８は、書き込み完結ブロックとなっているが、物理ブロックＰＢ３８は、書き込み途中ブロックとなっていることを示している。これは、物理ブロックＰＢ３５８のデータと同じ論理ブロックのデータが、物理ブロックＰＢ３８とに書き込まれていることを表している。このように、１つの論理ブロックには、１つの書き込み完結ブロックと、１つの書き込み途中ブロックとの、２つの物理ブロックを対応させることができる。
【００４７】
書き込み途中ブロック管理テーブル４０２に物理アドレスが登録されている物理ブロックは、新しくデータを書き込むための書き込み用ブロックとして用いられ、例えば、最大３つの物理ブロックの物理アドレスが登録可能である。登録されている物理ブロックの物理アドレスの数が最大値未満の場合、使用しない領域の論理ブロックの論理アドレスとして、空きを示す値を設定し、物理アドレスとして、未割り当てを示す値を設定する。
【００４８】
読み出し／書き込み制御部１１０は、新しくデータを書き込む際、既に書き込み途中ブロックとして、３組の論理ブロックの論理アドレスと物理ブロックの物理アドレスとが登録されている場合は、何れか一つの組に対して後述する多値モード集約を行い、書き込み完結ブロックとする。その後、読み出し／書き込み制御部１１０は、書き込み完結ブロック管理テーブル４０１に論理ブロックの論理アドレスと書き込み完結ブロックの物理アドレスとの組を登録し、書き込み途中ブロック管理テーブル４０２からは該組を削除する。そして、読み出し／書き込み制御部１１０は、削除により空いた領域に、新しく論理ブロックの論理アドレスと物理ブロックの物理アドレスとを登録する。
【００４９】
図５は、空きブロック管理テーブル１０７の構成の一例を示す図である。空きブロック管理テーブル１０７は、各物理ブロックについて、書き込み完結ブロック又は書き込み途中ブロックとして使用されている使用中ブロックであるか、もしくは使用されていない空きブロックであるかを示すテーブルである。
【００５０】
図中の「物理ブロック」の欄には、物理ブロックの物理アドレス（ＰＢ０〜ＰＢ１０２３）が格納され、「状態」の欄に、「使用中」、又は、「空き」が格納され、「使用中」とは、書き込み完結ブロック又は書き込み途中ブロックとして使用されていることを示しており、「空き」とは、使用されていない空きブロックであることを示している。読み出し／書き込み制御部１１０は、書き込みを行う際は、空きブロック管理テーブル１０７を参照し、空きとなっている物理ブロックの物理アドレスを取得して、該物理ブロックへ書き込みを行う。
【００５１】
図６は、書き込みモードテーブル１０８の構成の一例を示す図である。書き込みモードテーブル１０８には、書き込み方式を決めるための情報である書き込みモードが格納される。書き込みモードは、高速モードと、耐電源断モードとの二種類がある。「高速」は、データを短時間で書き込める多値モード書き込みを使用する高速モードを示し、「耐電源断」は、書き込み中の電源遮断に対してデータを保護する耐電源断モードを示し、耐電源断モードは、書き込み中の電源遮断時により破壊されるデータ量が少なくなる２値モード書き込みと、多値モード集約とを使用する。書き込みモードは、電源投入時に耐電源断モードに設定される。以後は、アクセス装置１００の指令部１０１からの指示により変更できる。
【００５２】
図７は、多値ＮＡＮＤ型フラッシュメモリにおいて、第１セルページと第２セルページとに属する物理ページの一例を示す図である。不揮発性メモリ１０４として用いられる多値ＮＡＮＤ型フラッシュメモリは、例えば、１つのメモリセルに２ビットの値を記録する。該２ビットは、２つの物理ページに割り当てられるため、２つの物理ページは、メモリセルを共有する。図７には、メモリセルを共有している物理ページの組が示されている。
【００５３】
例えば、物理ページＰＰ０と物理ページＰＰ４とは、メモリセルを共有している。このため、物理ページＰＰ０の先頭ビットと、物理ページＰＰ４の先頭ビットとは、同じメモリセルに格納される。このように、メモリセルを共有する２つの物理ページのうち、番号が小さい方の物理ページが第１セルページであり、番号が大きい方の物理ページが第２セルページである。なお、図中のｎは、不等式０≦ｎ≦２９を満たす整数である。
【００５４】
次に、２種類の書き込み方式、すなわち、高速モードと、耐電源断モードとで処理されるデータ書き込み方法について説明する。まずは、耐電源断モードによるデータの書き込みについて説明する。
【００５５】
［電源遮断により破壊されるデータ］
書き込み中に不揮発性メモリ装置１０２の電源が遮断されると、書き込み中の物理ページとメモリセルを共有する物理ページのデータが破壊される。例えば、図７に示す例では、物理ページＰＰ５への書き込み中に電源が遮断されると、メモリセルを共有する物理ページＰＰ１のデータが破壊される。
【００５６】
［２値モード書き込み］
書き込み中に電源が遮断された場合にデータが破壊されることを防止するため、読み出し／書き込み制御部１１０は、２値モード書き込みを実施する。２値モード書き込みは、第１セルページに属する物理ページにのみ書き込みを行う方式であり、第２セルページに属する物理ページへの書き込みは行わない。このため、電源遮断により破壊される物理ページはない。しかしながら、２値モード書き込みでは、物理ブロック容量の半分のみの書き込みとなるので、第１セルページに属する物理ページへの書き込みを行った時点では、書き込み完結ブロックとすることができない。このため、耐電源断モードでは、読み出し／書き込み制御部１１０は、第１セルページに属する物理ページへの２値モード書き込みを実施した後、後述する多値モード集約を実施して書き込み完結ブロックを作成する。
【００５７】
［多値モード集約］
多値モード集約は、書き込み完結ブロックと、書き込み途中ブロックとからデータを読み出し、空きブロック内の全物理ページにコピーして書き込み完結ブロックを作成する処理である。読み出し／書き込み制御部１１０は、上記の多値モード集約を実施する。ここで、多値モード集約中に電源遮断が発生した場合は、電源再投入時に作成中の書き込み完結ブロックに書き込まれたデータを放棄して電源遮断によるデータ破壊を防止する。このように、２値モード書き込みと多値モード集約とを併用することにより、電源遮断によるデータ破壊を防止する書き込みが可能になる。
【００５８】
なお、書き込み完結ブロックが存在しない論理ブロックの多値モード集約を実施する場合は、書き込み完結ブロックのデータをコピーする代わりに初期値（全ビット１）を書き込む。
【００５９】
次に、高速モードによるデータの書き込みについて説明する。
【００６０】
［多値モード書き込み］
２値モード書き込みと、多値モード集約とは、電源遮断によるデータ破壊を防止できるため有用であるが、１ページ分のデータを書くために、複数回物理ページへの書き込みを行う必要がある。工場生産時など、電源遮断の恐れが無い場合は、１回の物理ページへの書き込みで１ページ分のデータを書き込める多値モード書き込みが有用である。このため、高速モードでは、読み出し／書き込み制御部１１０は、上記の多値モード書き込みを実施する。多値モード書き込みを実施する場合は、読み出し／書き込み制御部１１０は、物理ブロック内の全ての物理ページへ書き込みを行う。全ての物理ページに書き込みを実施した時点で、書き込み途中ブロックは、書き込み完結ブロックとなる。
【００６１】
［データ書き込み処理の手順］
図８は、アクセス装置１００の指令部１０１が不揮発性メモリ装置１０２へ書き込みコマンド、書き込み論理アドレス、及び書き込みデータを送信した時の、不揮発性メモリ装置１０２の書き込み動作の一例を説明するためのフローチャートである。
【００６２】
最初に、メモリコントローラ１０３のホストインターフェース１０５は、アクセス装置１００の指令部１０１から書き込みコマンドを受信するとともに、アクセス装置１００の指令部１０１が指定した書き込み論理アドレス及び書き込みデータを取得し、書き込み論理アドレス等を読み出し／書き込み制御部１１０へ通知する（Ｓ８０１）。
【００６３】
次に、読み出し／書き込み制御部１１０は、書き込み論理アドレスを論理ブロック単位の論理アドレスに変換して書き込みを開始する論理ブロックの論理アドレスを取得し、その後、以下のようにして、論理／物理変換テーブル１０６等を参照して書き込みを実施する書き込み用物理ブロックを決定する（Ｓ８０２）。
【００６４】
すなわち、読み出し／書き込み制御部１１０は、書き込みを開始する論理ブロックの論理アドレスが論理／物理変換テーブル１０６の書き込み途中ブロック管理テーブル４０２に登録されている場合は、該論理ブロックに対応する物理ブロックを書き込み用物理ブロックとして決定する。
【００６５】
一方、書き込みを開始する論理ブロックの論理アドレスが書き込み途中ブロック管理テーブル４０２に登録されていない場合は、読み出し／書き込み制御部１１０は、空きブロック管理テーブル１０７を利用して空きブロックの物理アドレスを取得し、該空きブロックを消去する。続いて、読み出し／書き込み制御部１１０は、取得した物理ブロックの物理アドレスを書き込み途中ブロック管理テーブル４０２に登録し、該物理ブロックを書き込み用物理ブロックとして決定する。
【００６６】
次に、読み出し／書き込み制御部１１０は、書き込みモードテーブル１０８を参照して、書き込みモードが高速モードに設定されているか否かを判定する（Ｓ８０３）。高速モードに設定されている場合（ＹＥＳの場合）は、読み出し／書き込み制御部１１０は、多値モード書き込みによりデータを書き込み用物理ブロックに書き込む（Ｓ８０４）。書き込みモードが高速モードではなく、耐電源断モードに設定されている場合（ＮＯの場合）は、読み出し／書き込み制御部１１０は、２値モード書き込みによりデータを書き込み用ブロックに書き込む（Ｓ８０５）。
【００６７】
次に、読み出し／書き込み制御部１１０は、アクセス装置１００から送信されたデータを全て書き込み終えたかどうか判定する（Ｓ８０６）。全て書き込み終えた場合（ＹＥＳの場合）は、データの書き込みを終了する。
【００６８】
全て書き込み終えていない場合（ＮＯの場合）は、読み出し／書き込み制御部１１０は、書き込み用物理ブロックの全ての書き込み対象ページに書き込みが完了したか確認する（Ｓ８０７）。書き込み用物理ブロックの全ての書き込み対象ページに書き込みが完了していない場合（ＮＯの場合）は、処理Ｓ８０３へ戻り、読み出し／書き込み制御部１１０は、未書き込みのデータの書き込みを行う。
【００６９】
書き込み用物理ブロックの全ての書き込み対象ページに書き込みが完了した場合（ＹＥＳの場合）は、読み出し／書き込み制御部１１０は、書き込みモードが耐電源断モードに設定されているか否かを判定する（Ｓ８０８）。
【００７０】
書き込みモードが耐電源断モードに設定されている場合（ＹＥＳの場合）は、読み出し／書き込み制御部１１０は、多値モード集約を実施する（Ｓ８０９）。具体的には、読み出し／書き込み制御部１１０は、書き込み用ブロックの全てのページにデータが書き込まれたときに、論理アドレスが共通する書き込み完結ブロックのデータ及び書き込み用ブロックのデータを多値モード書き込みで空きブロックへ複写する集約処理を行う。一方、書き込みモードが耐電源断モードではなく、高速モードに設定されている場合（ＮＯの場合）は、次に説明する処理Ｓ８１０を実施する。
【００７１】
その後、読み出し／書き込み制御部１１０は、作成された書き込み完結ブロックの物理アドレスを、論理／物理変換テーブル１０６の書き込み完結ブロック管理テーブル４０１に登録し、書き込み途中ブロック管理テーブル４０２から削除する。
【００７２】
このとき、読み出し／書き込み制御部１１０は、書き込み完結ブロック管理テーブル４０１に登録されていた物理ブロックの物理アドレスに対する、空きブロック管理テーブル１１３上の状態を空きに変更し、新しく登録された物理ブロックの物理アドレスに対する、空きブロック管理テーブル１０７上の状態を使用中に変更する。
【００７３】
そして、読み出し／書き込み制御部１１０は、変更した論理／物理変換テーブル１０６と空きブロック管理テーブル１１３とを不揮発性メモリ１０４の管理データ格納領域１１１へ書き込み（Ｓ８１０）、書き込み用物理ブロック決定処理Ｓ８０２へと戻る。
【００７４】
以上の処理により、本実施の形態では、書き込みモードが高速モードに設定されている場合は、多値モード書き込みによりアクセス装置１００が送信したデータを不揮発性メモリ１０４に高速に書き込むことができ、書き込みモードが耐電源断モードに設定されている場合は、２値モード書き込みと、多値モード集約とによりアクセス装置１００が送信したデータを不揮発性メモリ１０４へ書き込むことができ、電源遮断によるデータ破壊を防止することができる。
【００７５】
［書き込みモード変更手順］
図９は、アクセス装置１００の指令部１０１が不揮発性メモリ装置１０２へ書き込みモード変更コマンドと、新規書き込みモードとを送信した時の、不揮発性メモリ装置１０２の書き込みモード変更処理の一例を説明するためのフローチャートである。
【００７６】
指令部１０１が不揮発性メモリ装置１０２へ書き込みモード変更コマンドと、当該コマンドにより変更すべき書き込みモードを表す新規書き込みモードとを送信すると、最初に、メモリコントローラ１０３のホストインターフェース１０５は、アクセス装置１００の指令部１０１が指定した新規書き込みモードを取得し、書き込みモード変更制御部１０９へ通知する。（Ｓ９０１）。
【００７７】
書き込みモード変更制御部１０９は、書き込みモードテーブル１０８から現在の書き込みモードを取得し、新規書き込みモードと比較して一致しているかどうか判定する（Ｓ９０２）。両者が一致した場合（ＮＯの場合）は、モード変更の必要がないため、書き込みモード変更処理を終了する。
【００７８】
不一致の場合（ＹＥＳの場合）は、書き込みモードが変換されたことを示しているので、処理を進め、書き込みモード変更制御部１０９は、論理／物理変換テーブル１０６の書き込み途中ブロック管理テーブル４０２を参照し、書き込み途中ブロックが存在するかどうか確認する（Ｓ９０３）。
【００７９】
書き込み途中ブロックが存在しない場合（ＮＯの場合）は、書き込みモード変更制御部１０９は、書き込みモードテーブル１０８の書き込みモードを新規書き込みモードに更新し（Ｓ９０４）、書き込みモード変更処理を終了する。
【００８０】
書き込み途中ブロックが存在する場合（ＹＥＳの場合）は、書き込みモード変更制御部１０９は、判定結果を読み出し／書き込み制御部１１０に通知し、読み出し／書き込み制御部１１０は、登録されている書き込み途中ブロックの１つに対して多値モード集約を実施する（Ｓ９０５）。このとき、書き込み途中ブロックが２値モード書き込みで書き込まれている場合も、多値モード書き込みで書き込まれている場合も、読み出し／書き込み制御部１１０は、多値モード集約を実施する。従って、書き込みモード変更処理中に電源断が発生した場合は、電源再投入時に作成中の書き込み完結ブロックに書き込まれたデータを放棄することにより、書き込みモード変更処理中の電源遮断によるデータ破壊を防止できる。
【００８１】
その後、読み出し／書き込み制御部１１０は、処理Ｓ８１０と同様の管理データ格納領域処理を実施し（Ｓ９０６）、処理Ｓ９０３へ戻る。
【００８２】
以上の処理により、アクセス装置１００が送信した新規書き込みモードを書き込みモードテーブル１０８に設定することができる。
【００８３】
上記のように、本実施の形態によれば、不揮発性メモリ装置１０２は、書き込みモードテーブル１０８を備え、アクセス装置１００から書き込みモードを変更することが可能になり、書き込みの状況に応じて、高速モードと耐電源断モードとに書き込み方法を切り替えることが可能になる。このように書き込み方法を切り替えることにより、例えば、工場生産時など電源遮断の恐れが無い場合は、高速モードで高速な書き込みが可能になり、データの書き込み時間を短縮できる。
【００８４】
なお、本実施の形態について、上記のように説明したが、本発明は、本実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で種々の変更が可能である。例えば、以下のような場合も、本発明に含まれる。
【００８５】
（１）本実施の形態の不揮発性メモリ１０４として、２ビットデータの記録が可能なメモリセルを用いたＮＡＮＤ型フラッシュメモリを使用したが、２ビットデータに限らず、より多ビット（例えば、３ビッド、４ビット）のデータ記録が可能なメモリセルを用いた不揮発性メモリであっても、上記と同様の効果を得ることができる。
【００８６】
（２）本実施の形態では、「２値モード書き込み」及び「多値モード書き込み」のいずれを行うかを書き込みモードテーブル１０８に格納されている書き込みモード（高速モード又は耐電源断モード）により判定しているが、データ格納領域１１２の全領域に対して該判定結果を適用する必要はなく、コンテンツデータの書き込み対象とならない領域については、書き込みモードテーブル１０８に格納されている書き込みモードに依らず、書き込みモードの選択を行ってもよい。
【００８７】
例えば、データ格納領域１１２を、書き込みモードを変更できるモード変更可能領域と、書き込みモードを変更できないモード変更不可領域とに区分し、モード変更可能領域に対してのみ、書き込みモードテーブル１０８に格納されている書き込みモードに応じてデータを書き込むようにしてもよい。
【００８８】
また、モード変更不可領域については、予め設定した書き込みモードでのみ書き込みを行い、外部から書き込みモードを変更できないようにすることが好ましい。例えば、モード変更不可領域の書き込みモードを予め耐電源断モードに設定し、ファイルシステムデータ等の重要なデータをモード変更不可領域に書き込むことにより、電源遮断による重要なデータの破壊を確実に防止することができる。
【００８９】
（３）本実施の形態では、耐電源断モードのデータ書き込みは、２値モード書き込みと多値モード集約との２段階で書き込む例を示したが、電源遮断によりデータを破壊することを防止可能なデータ書き込み方式であれば、他の方式で書き込みを行ってもよい。
【００９０】
例えば、書き込み途中ブロックの物理ページにデータを書き込む際、他の物理ブロックの物理ページに同じデータを書き込むことにより、データを２重化して保存する書き込み方式を採用してもよい。このとき、電源遮断により書き込み途中ブロックのデータが破壊された場合は、２重化された他方の物理ページからデータを読み出すことにより、電源遮断によるデータ破壊を防止することが可能である。
【００９１】
また、書き込み途中ブロックの物理ページにデータを書き込む際、電源遮断により破壊されるデータを前もって読み出して他の物理ブロックの物理ページにバックアップし、バックアップ後に、書き込み途中ブロックの物理ページにデータを書き込む書き込み方式を採用してもよい。このとき、電源遮断により書き込み途中ブロックのデータが破壊された場合は、バックアップされたデータを読み出すことによりデータ破壊を防止することが可能である。
【００９２】
上記のような書き込み方式を使用した場合であっても、上記と同様の効果を得ることができる。
【００９３】
（４）本実施の形態では、アクセス装置１００が不揮発性メモリ装置１０２へ書き込みモード変更コマンドを送信した時に、書き込み途中ブロックに対して多値モード集約を実施しているが、書き込みモード変更コマンドを送信した時ではなく、後続する書き込みコマンドを送信したときに、多値モード集約を実施しても良い。
【００９４】
例えば、書き込み途中ブロック管理テーブル４０２に、物理アドレスと論理アドレスとの対応情報に付加して、さらに、書き込み途中ブロックに書き込み済のデータが「２値モード書き込み」又は「多値モード書き込み」のいずれの方式により書き込まれたかを示す情報を既存データ書き込み方式として記録しておく。このとき、読み出し／書き込み制御部１１０は、書き込みコマンド受信時に、書き込み途中ブロック管理テーブル４０２及び書き込みモードテーブル１０８を参照し、書き込み途中ブロック管理テーブル４０２により決定される該書き込み途中ブロックの既存データ書き込み方式と、書き込みモードテーブル１０８の書き込みモードにより決定される書き込み方式とが異なる場合は、書き込み完結ブロックのデータ及び書き込み途中ブロックのデータを多値モード書き込みで空きブロックへ複写する多値モード集約を行ってもよい。
【００９５】
上記のように、書き込みコマンドを送信したときに多値モード集約を行う方式は、書き込みモードを複数回変更するケースにおいて、書き込みモード変更に伴う物理ページのコピー回数を減らして書き込みモード変更時間を短縮できるため有効である。
【産業上の利用可能性】
【００９６】
本発明は、不揮発性記憶装置にデータの書き込みを行う場合に、電源遮断時の書き込みモードとは別に、高速なデータ書き込みを実現するための書き込みモードを持ち、コンテンツデータの書き込み時間を短縮することができので、不揮発性半導体メモリを用いた不揮発性記憶装置へのデータの書き込み、特に、多値フラッシュメモリへのデータの書き込みに好適に適用可能である。
【符号の説明】
【００９７】
１００  アクセス装置
１０１  指令部
１０２  不揮発性メモリ装置
１０３  メモリコントローラ
１０４  不揮発性メモリ
１０５  ホストインターフェース
１０６  論理／物理変換テーブル
１０７  空きブロック管理テーブル
１０８  書き込みモードテーブル
１０９  書き込みモード変更制御部
１１０  読み出し／書き込み制御部
１１１  管理データ格納領域
１１２  データ格納領域
【図１】
0005592293.tif 000002
【図２】
0005592293.tif 000003
【図３】
0005592293.tif 000004
【図４】
0005592293.tif 000005
【図５】
0005592293.tif 000006
【図６】
0005592293.tif 000007
【図７】
0005592293.tif 000008
【図８】
0005592293.tif 000009
【図９】
0005592293.tif 000010