(57)【要約】【課題】不揮発性半導体メモリのデータの信頼性を向上させる。【解決手段】実施形態によれば、半導体記憶装置は、不揮発性半導体メモリと、メモリコントローラとを含む。メモリコントローラは、不揮発性半導体メモリに対して、複数の書き込みデータと複数の書き込みデータのアドレス情報を含む第１のアドレス管理情報とを書き込み、不揮発性半導体メモリから読み出された複数の書き込みデータのいずれかにエラーが発生した場合に、複数の書き込みデータと第１のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する。メモリコントローラは、処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と読み出しエラーの発生しているエラー位置情報とを含む第２のアドレス管理情報を生成し、処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第２のアドレス管理情報とを書き込む。【選択図】図１
2016018473.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性半導体メモリと、
前記不揮発性半導体メモリに対して、複数の書き込みデータと前記複数の書き込みデータのアドレス情報を含む第１のアドレス管理情報とを書き込み、前記不揮発性半導体メモリから読み出された前記複数の書き込みデータのいずれかにエラーが発生した場合に、前記複数の書き込みデータと前記第１のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行するメモリコントローラと、
を具備し、
前記メモリコントローラは、
処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と前記読み出しエラーの発生しているエラー位置情報とを含む第２のアドレス管理情報を生成し、前記処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第２のアドレス管理情報とを書き込む、
半導体記憶装置。
【請求項２】
前記メモリコントローラは、
前記処理対象のエラー訂正グループ内で前記読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループに対応するエラー訂正コードを生成し、前記処理対象のエラー訂正グループの書き込み先のうちの前記消去状態の領域に、前記無効データと前記第２のアドレス管理情報と前記エラー訂正コードとを書き込む、
請求項１の半導体記憶装置。
【請求項３】
前記メモリコントローラは、
前記不揮発性半導体メモリに対して前記エラー訂正コードが書き込まれた後に、前記処理対象のエラー訂正グループ内の前記書き込みデータに対する新たな読み出しエラーを検出した場合に、前記第２のアドレス管理情報と前記エラー訂正コードとを読み出し、前記エラー位置情報の示す領域を前記エラー訂正処理の対象から除外し、前記エラー訂正コードに基づいて前記処理対象のエラー訂正グループ内の前記書き込みデータに対するエラー訂正処理を実行する、
請求項２の半導体記憶装置。
【請求項４】
前記書き込みデータは、前記不揮発性半導体メモリのページに書き込まれるページデータであり、
前記エラー訂正ブループは複数のページデータセットを含み、前記複数のページデータセットのそれぞれは前記不揮発性半導体メモリに対して並列に書き込まれた２以上のページデータを含み、
前記読み出しエラーは、前記不揮発性半導体メモリに対する書き込み中に発生した不正な電源遮断に基づくエラーである、
請求項１乃至請求項３のいずれか１項に記載の半導体記憶装置。
【請求項５】
不揮発性半導体メモリに対するデータの書き込み及び読み出しを実行するインタフェース部と、
前記不揮発性半導体メモリに対して、前記インタフェース部を介して、複数の書き込みデータと前記複数の書き込みデータのアドレス情報を含む第１のアドレス管理情報とを書き込み、前記不揮発性半導体メモリから読み出された前記複数の書き込みデータのいずれかにエラーが発生した場合に、前記複数の書き込みデータと前記第１のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する制御部と、
を具備し、
前記制御部は、
処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と前記読み出しエラーの発生しているエラー位置情報とを含む第２のアドレス管理情報を生成し、前記処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第２のアドレス管理情報とを書き込む、
メモリコントローラ。
【請求項６】
不揮発性半導体メモリに対するデータの書き込み及び読み出しを制御するメモリコントローラの制御方法であって、
前記不揮発性半導体メモリに対して、複数の書き込みデータと前記複数の書き込みデータのアドレス情報を含む第１のアドレス管理情報とを書き込み、
前記不揮発性半導体メモリから読み出された前記複数の書き込みデータのいずれかにエラーが発生した場合に、前記複数の書き込みデータと前記第１のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行し、
処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と前記読み出しエラーの発生しているエラー位置情報とを含む第２のアドレス管理情報を生成し、
前記処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第２のアドレス管理情報とを書き込む、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法に関する。
【背景技術】
【０００２】
不揮発性半導体メモリの一例に、ＮＡＮＤ型フラッシュメモリがある。ＮＡＮＤ型フラッシュメモリに書き込まれたデータの信頼性を高めるために、ホスト装置から受けたデータに基づくエラー訂正コードを生成し、データと生成されたエラー訂正コードとを書き込む技術が用いられる。
【０００３】
一般的には、データの書き込みと同時に、エラー訂正コードがＮＡＮＤ型フラッシュメモリに書き込まれる。
【０００４】
同時に書き込み可能なデータ量の少ない半導体記憶装置においては、書き込まれるデータに対するエラー訂正コードの占める割合をエラー発生確率に適合するように制限するために、データの書き込みタイミングと、エラー訂正コードの書き込みタイミングとを分離する場合がある。例えば、一定量のデータが書き込まれた後で、この一定量のデータに対応するエラー訂正コードが書き込まれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１９８９５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、不揮発性半導体メモリに書き込まれたデータの信頼性を向上させることが可能な半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法を提供する。
【課題を解決するための手段】
【０００７】
実施形態によれば、半導体記憶装置は、不揮発性半導体メモリと、メモリコントローラとを含む。メモリコントローラは、不揮発性半導体メモリに対して、複数の書き込みデータと複数の書き込みデータのアドレス情報を含む第１のアドレス管理情報とを書き込み、不揮発性半導体メモリから読み出された複数の書き込みデータのいずれかにエラーが発生した場合に、複数の書き込みデータと第１のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する。メモリコントローラは、処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と読み出しエラーの発生しているエラー位置情報とを含む第２のアドレス管理情報を生成し、処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと第２のアドレス管理情報とを書き込む。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る半導体記憶装置の構成の一例を示すブロック図。
【図２】比較例の半導体記憶装置に係る不揮発性半導体メモリに対するページデータの並列書き込みの一例を示す図。
【図３】比較例の半導体記憶装置において書き込み中に不正な電源遮断が発生した場合の不揮発性半導体メモリの状態の一例を示す図。
【図４】比較例の半導体記憶装置において不正な電源遮断後に再度電源が投入された時点での不揮発性半導体メモリの状態の一例を示す図。
【図５】第１の実施形態に係る半導体記憶装置において不正な電源遮断が発生し、再度電源が投入され、初期化処理が実行された時点での不揮発性半導体メモリの状態の一例を示す図。
【図６】第１の実施形態に係るアドレス管理情報の内容の一例を示す図。
【図７】第１の実施形態に係る半導体記憶装置の初期化処理の一例を示すフローチャート。
【図８】第１の実施形態に係る半導体記憶装置の初期化対象ブロックに対するエラー訂正処理の一例を示すフローチャート。
【図９】第２の実施形態に係る記憶装置を例示するブロック図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、発明の実施形態について説明する。なお、以下の説明において、略又は実質的に同一の構成要素及び機能については、同一符号を付し、必要に応じて説明を行う。
【００１０】
［第１の実施形態］
本実施形態の半導体記憶装置は、当該半導体記憶装置の不正な電源遮断が発生し、次に半導体記憶装置が起動された場合に、不揮発性半導体メモリに書き込まれているデータを読み出す。次に、半導体記憶装置は、消去（Erase）状態の領域に無効（Invalid）データを書き込み、アドレス管理情報と、読み出されたデータに対するエラー訂正コードとを生成し、不揮発性半導体メモリに書き込む。
【００１１】
本実施形態において、不正な電源遮断後の起動時に生成されるアドレス管理情報は、例えばページの位置（ページの番号、ページのアドレスでもよい）と、そのページに記憶されたデータのＬＢＡ（Logical Block Addressing）とを関連付けたアドレス情報と、書き込み中に不正な電源遮断が発生したためにエラーとなった位置（ページ）を示すエラー位置情報とを含む。
【００１２】
本実施形態では、不揮発性半導体メモリに対して読み出しエラーが発生した場合の処理について説明する。以下においては、具体的な例として、不揮発性半導体メモリに対する書き込み中に不正な電源遮断が発生し、その後の読み出しにおいて読み出しエラーが発生した場合を一例として説明する。しかしながら、他の理由により不揮発性半導体メモリに対して読み出しエラーが発生した場合、例えば、書き込みは正常であったが読み出しにおいてエラーが発生した場合、であっても、同様に本実施形態は適用可能である。
【００１３】
図１は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
【００１４】
半導体記憶装置１は、不揮発性半導体メモリ２、メモリコントローラ３、不揮発性メモリ１４を備える。本実施形態では、不揮発性半導体メモリ２と不揮発性メモリ１４とが分離した構成を例示している。しかしながら、不揮発性半導体メモリ２と不揮発性メモリ１４とは一体でもよい。
【００１５】
不揮発性半導体メモリ２は、例えば、ＮＡＮＤ型フラッシュメモリとする。しかしながら、不揮発性半導体メモリ２は、例えば、ＮＯＲ型フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory：磁気抵抗メモリ）、ＰＲＡＭ（Phase change Random Access Memory：相変化メモリ）、ＲｅＲＡＭ（Resistive Random Access Memory：抵抗変化型メモリ）、又は、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などのメモリでもよい。
【００１６】
本実施形態において、書き込みデータは、ページサイズで、不揮発性半導体メモリ２のページに対して書き込まれる。本実施形態において、ページサイズのデータを、ページデータと呼ぶ。ページデータは、そのページデータに対応する例えばＬＢＡなどのようなアドレス情報を含む。
【００１７】
不揮発性半導体メモリ２におけるデータの消去は、ブロックごとに行われる。ブロックは、複数のページを含む。
【００１８】
本実施形態において、不揮発性半導体メモリ２に書き込まれた書き込みデータを読み出した際にエラーが発生した場合には、この読み出しエラーの発生した書き込みデータを含むエラー訂正グループに対してエラー訂正処理が実行される。
【００１９】
ここで、エラー訂正グループは、複数の書き込みデータと、この複数の書き込みデータのアドレス情報に基づくアドレス管理情報と、を含む。
【００２０】
例えば、エラー訂正ブループは複数のページデータセットを含む。複数のページデータセットのそれぞれは、不揮発性半導体メモリ２に対して並列に書き込まれた２以上のページデータを含む。
【００２１】
より具体的な例として、本実施形態において、エラー訂正グループは、複数のページデータの書き込みが並列に実行される複数のブロックを含むブロックセットとする。
【００２２】
メモリコントローラ３は、ホスト装置５からデータを受け、不揮発性半導体メモリ２に対してデータの書き込みを行う。また、メモリコントローラ３は、ホスト装置５からの読み出し命令に応じて、不揮発性半導体メモリ２からデータを読み出し、読み出されたデータをホスト装置５へ送る。
【００２３】
メモリコントローラ３は、インタフェース部４、ページデータ制御部５、アドレス制御部６、エラー訂正制御部７、ログ制御部８、無効データ書き込み部９、を備える。メモリコントローラ３の各構成要素は、ファームウェアを実行することで実現されてもよい。
【００２４】
インタフェース部４は、メモリコントローラ３の他の構成要素から受けた各種のデータ（例えば、ページデータ、アドレス管理情報、エラー訂正コード、無効データなど）を受け、例えばＤＲＡＭ（Dynamic Random Access Memory）などのような揮発性メモリ１０に記憶し、揮発性メモリ１０に記憶されている各種のデータを、不揮発性半導体メモリ２に書き込む。
【００２５】
また、インタフェース部４は、不揮発性半導体メモリ２から各種のデータを読み出し、揮発性メモリ１０に記憶し、揮発性メモリ１０に記憶されている各種のデータを、メモリコントローラ３の他の構成要素に送る。
【００２６】
本実施形態において、インタフェース部４は揮発性メモリ１０を含む構成としている。しかしながら、インタフェース部４と揮発性メモリ１０とは、分離されている構成としてもよい。
【００２７】
ページデータ制御部５は、不揮発性半導体メモリ２に対するページデータの書き込みを制御する。本実施形態では、ページデータ制御部５は、不揮発性半導体メモリ２に対して、インタフェース部４経由で、２つのブロックに対して並列に２つのページデータを書き込む。しかしながら、ページデータ制御部５は、３以上のブロックに対して並列に３以上のページデータを書き込むとしてもよい。
【００２８】
具体的には、まず、ページデータ制御部５は、インタフェース部４経由で、ブロックＢ0のページＰ0及びブロックＢ1のページＰ0に、それぞれページデータＤ0,0及びページデータＤ1,0を書き込む。
【００２９】
次に、ページデータ制御部５は、インタフェース部４経由で、ブロックＢ0のページＰ1及びブロックＢ1のページＰ1に、それぞれページデータＤ0,1及びページデータＤ1,1を書き込む。
【００３０】
以下、同様に、ページデータ制御部５は、インタフェース部４経由で、順次、ブロックＢ0のページＰ2〜ＰN-1にページデータＤ0,2〜Ｄ0,N-1を書き込み、このページデータＤ0,2〜Ｄ0,N-1のそれぞれと並列に、ブロックＢ1のページＰ2〜ＰN-1にページデータＤ1,2〜Ｄ1,N-1を書き込む。
【００３１】
アドレス制御部６は、所定数のページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1が不揮発性半導体メモリ２に書き込まれた場合に、書き込まれたページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1に対応するアドレス管理情報Ａ0,Nを生成する。そして、アドレス制御部６は、インタフェース部４経由で、不揮発性半導体メモリ２のブロックＢ0のページＰNに、アドレス管理情報Ａ0,Nを書き込む。
【００３２】
アドレス管理情報は、２回以上の並列な書き込みごとに生成される。本実施形態においては、一例として、並列に書き込みが実行される複数のブロックを含むブロックセットごとに、アドレス管理情報が生成される場合を説明する。
【００３３】
エラー訂正制御部７は、所定数のページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1が不揮発性半導体メモリ２に書き込まれた場合に、書き込まれたページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1に対応するエラー訂正コードＥ1,Nを生成し、不揮発性半導体メモリ２のブロックＢ1のページＰNに、エラー訂正コードＥ1,Nを書き込む。
【００３４】
半導体記憶装置１が正常に動作する場合には、ページデータ制御部５、アドレス制御部６、エラー訂正制御部７によるブロックＢ0，Ｂ1に対する書き込み処理と同様の処理が、例えばブロックＢ2，Ｂ3などのような他の複数のブロックに対しても実行される。
【００３５】
ログ制御部８は、ブロックに対する書き込みの履歴を含むログデータ（例えばジャーナル）１１を生成し、不揮発性メモリ１４に書き込む。
【００３６】
ここで、ブロックＢ3のページＰKの書き込み中に、半導体記憶装置１に不正な電源遮断が発生し、その後に半導体記憶装置１の電源投入が行われたとする。
【００３７】
ログ制御部８は、不揮発性メモリ１４に記憶されているログデータ１１を読み出す。そして、ログ制御部８は、どのブロックに対する書き込み中に、不正な電源遮断が発生したかを決定し、書き込みエラーの発生したブロックＢ2，Ｂ3をページデータ制御部５、アドレス制御部６、エラー訂正制御部７、無効データ書き込み部９、へ通知する。
【００３８】
ページデータ制御部５は、書き込みエラーの発生したブロックＢ2，Ｂ3におけるページＰ0〜ＰN-1から、ページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1を読み出す。
【００３９】
アドレス制御部６は、不揮発性半導体メモリ２の書き込みエラーの発生したブロックＢ2，Ｂ3から読み出されたページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1に対応するアドレス情報Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1と、書き込みエラーの発生した位置を示すエラー位置情報とを含むアドレス管理情報Ａ2,Nを生成する。
【００４０】
本実施形態において、ページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1，Ｄ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1は、それぞれ、そのページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1，Ｄ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1に対応する例えばＬＢＡなどのようなアドレス情報Ｌ0,0〜Ｌ0,N-1，Ｌ1,0〜Ｌ1,N-1，Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1を含む。エラーの発生したブロックＢ2，Ｂ3に対応するアドレス管理情報Ａ2,Nの生成には、ページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1に含まれているアドレス情報Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1が用いられる。
【００４１】
エラー訂正制御部７は、不揮発性半導体メモリ２の書き込みエラーの発生したブロックＢ2，Ｂ3から読み出されたページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1と、消去状態のページに書き込まれる無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1と、アドレス管理情報Ａ2,Nとに基づくエラー訂正コードＥ3,Nを生成する。
【００４２】
本実施形態においては、エラー訂正コードＥ3,Nが、ページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1、無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1、アドレス管理情報Ａ2,Nに基づいて生成される場合を例として説明する。しかしながら、エラー訂正コードＥ3,Nは、例えば、読み出し可能なページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1とアドレス管理情報Ａ2,Nとに基づいて生成されてもよく、読み出し可能なページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1と無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1とに基づいて生成されてもよく、ページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1のみに基づいて生成されてもよい。
【００４３】
無効データ書き込み部９は、ログ制御部８によって書き込みエラーが検出された場合に、インタフェース部４経由で、エラー（未書き込みのページデータ）が発生した初期化対象ブロックＢ3のページＰKより後に書き込みが実行されるブロックＢ2，Ｂ3のうちの消去状態のページＰK+1〜ＰN-1に、無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1を書き込む。
【００４４】
アドレス制御部６は、不揮発性半導体メモリ２のブロックＢ2のページＰNに、アドレス情報Ａ2,Nを書き込む。
【００４５】
エラー訂正制御部７は、不揮発性半導体メモリ２のブロックＢ3のページＰNに、エラー訂正コードＥ3,Nを書き込む。
【００４６】
さらに、エラー訂正制御部７は、書き込みエラーの発生した初期化対象ブロックＢ2，Ｂ3内のページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1のいずれかの読み出しエラーが検出された場合に、アドレス管理情報Ａ2,Nのエラー位置情報が示すブロックＢ3のページＰKをエラー訂正処理の対象から除外し、エラー訂正コードＥ3,Nに基づいて、ページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1に対するエラー訂正処理を実行する。
【００４７】
以下で、比較例の半導体記憶装置と本実施形態に係る半導体記憶装置１とを対比して説明する。
【００４８】
ページデータの書き込みタイミングとエラー訂正コードの書き込みタイミングとが分離される書き込みを実行中に不正な電源遮断が発生し、次に電源が投入された場合、最後のエラー訂正コードの書き込み後から不正な電源遮断までの間に書き込まれたページデータに対応するエラー訂正コードは、不揮発性半導体メモリ２に記憶されていない。このため、最後のエラー訂正コードの書き込み後から不正な電源遮断までの間に書き込まれたページデータの信頼性は低下する。
【００４９】
不揮発性半導体メモリ２の微細化によって記憶できるデータの密度が上がるほど、不揮発性半導体メモリ２に書き込まれたページデータの信頼性は低下する傾向にある。不揮発性半導体メモリ２の信頼性を維持する方法として、不揮発性半導体メモリ２に対する書き込み量を制限する方法、不揮発性半導体メモリ２の使用を制限する方法などがある。具体的には、消去されている領域を未書き込みの状態で長時間放置しないことで、不揮発性半導体メモリ２のデータの信頼性の低下を防止する方法がある。また、消去状態の領域（例えばページ）に対する再消去を行うことを防止するために、不正な電源遮断によって書き込み中のブロックに未書き込みのページが存在する場合に、この書き込み中のブロックにおける未書き込みのページに対する書き込みを完了させ、不揮発性半導体メモリ２のデータの信頼性の低下を防止する方法がある。
【００５０】
さらに、不正な電源遮断が発生した時点で書き込み中であったブロックは、書き込み中のページでデータがエラーとなり、継続使用ができない場合がある。そのため、不正な電源遮断が発生した時点で書き込み中であったブロックに対しては、残りのページに対して無効データを書き込み、書き込みを完了させる。
【００５１】
まず、比較例の半導体記憶装置について、図２乃至図４を用いて説明する。
【００５２】
図２は、比較例の半導体記憶装置に係る不揮発性半導体メモリに対するページデータの並列書き込みの一例を示す図である。
【００５３】
比較例の半導体記憶装置は、不揮発性半導体メモリ２における２つのブロックＢ0，Ｂ1におけるページＰ0〜ＰN-1に対して、並列にページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1を書き込む。比較例の半導体記憶装置は、一定量のページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1を不揮発性半導体メモリ２に書き込むと、各ページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1のアドレス情報を示すアドレス管理情報Ａ0,Nと、各ページデータＤ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1及びアドレス管理情報Ａ0,Nを訂正するためのエラー訂正コードＥ1,Nとを、不揮発性半導体メモリ２に書き込む。この図２では、上記図１と同様に、並列に書き込まれる複数のブロックごとに、この複数のブロックに対応するアドレス管理情報とエラー訂正コードとが書き込まれる場合を例示している。
【００５４】
図３は、比較例の半導体記憶装置において書き込み中に不正な電源遮断が発生した場合の不揮発性半導体メモリ２の状態の一例を示す図である。
【００５５】
比較例の半導体記憶装置は、不揮発性半導体メモリ２の２つのブロックＢ2，Ｂ3におけるページＰ0〜ＰK-1に対して、並列にページデータＤ2,0〜Ｄ2,K-1，Ｄ3,0〜Ｄ3,K-1
を書き込む。
【００５６】
ここで、図３では、ブロックＢ2，Ｂ3のページＰKに対するページデータＤ2,K，Ｄ3,Kの書き込み中に、不正な電源遮断が発生した状態を示している。この場合、ブロックＢ2，Ｂ3における書き込みが行われていないページＰK+1〜ＰNは、消去状態となっている。この図３の状態においては、アドレス管理情報及びエラー訂正コードはブロックＢ2，Ｂ3に対して書き込まれていない。したがって、すでにブロックＢ2，Ｂ3に対して書き込まれたページデータＤ2,0〜Ｄ2,K-1，Ｄ3,0〜Ｄ3,K-1は、他のブロックに書き込まれたページデータと比較してエラー訂正能力が低くなる。
【００５７】
図４は、比較例の半導体記憶装置において不正な電源遮断後に再度電源が投入された時点での不揮発性半導体メモリ２の状態の一例を示す図である。
【００５８】
書き込み中に不正な電源遮断の発生したブロックＢ3のページＰKに対しては、正常な読み出しが行われず、ブロックＢ3のページＰKの読み出しがエラーとなる場合がある。また、書き込み中に不正な電源遮断が発生すると、ブロックＢ2，Ｂ3の消去状態のページＰK+1〜ＰNに対する書き込みの信頼性が低下する場合がある。
【００５９】
このため、比較例の半導体記憶装置は、ブロックＢ2，Ｂ3を継続利用せず、ブロックＢ2，Ｂ3における消去状態の残りのページＰK+1〜ＰNに無効データを書き込み、ブロックＢ2，Ｂ3の使用を中止する。
【００６０】
これに対して、本実施形態に係る半導体記憶装置１を、図５乃至図６を用いて説明する。
【００６１】
図５は、本実施形態に係る半導体記憶装置１において不正な電源遮断が発生し、再度電源が投入され、初期化処理が実行された時点での不揮発性半導体メモリ２の状態の一例を示す図である。
【００６２】
本実施形態に係る初期化処理は、ログ制御部８、ページデータ制御部５、アドレス制御部６、エラー訂正制御部７、無効データ書き込み部９により実行される。
【００６３】
電源投入時に実行される初期化処理では、書き込み中の不正な電源遮断によって未書き込みのページＰK+1〜ＰNが発生したブロックＢ2，Ｂ3が検出され、このブロックＢ2，Ｂ3に対してページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1の読み出しが実行される。
【００６４】
初期化処理では、読み出されたページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1のアドレス情報Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1とエラー位置情報とに基づいてアドレス管理情報Ａ2,Nが生成される。
【００６５】
初期化処理では、読み出されたページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1、ブロックＢ2，Ｂ3の消去状態のページＰK+1〜ＰN-1に書き込まれる無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1、アドレス管理情報Ａ2,Nに対応するエラー訂正コードＥ3,Nが生成される。
【００６６】
そして、初期化処理では、ブロックＢ2，Ｂ3の消去状態のページＰK+1〜ＰNに対して、無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1と、アドレス管理情報Ａ2,Nと、エラー訂正コードＥ3,Nとが書き込まれる。
【００６７】
図６は、本実施形態に係るアドレス管理情報Ａ2,Nの内容の一例を示す図である。
【００６８】
アドレス管理情報Ａ2,Nは、書き込み途中で不正な電源遮断の発生したブロックＢ2，Ｂ3において、正常に書き込まれたページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1のアドレス情報（例えばＬＢＡ）Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1と書き込まれたページＰ0〜ＰK-1との関係を示す情報、エラーの発生したブロックＢ3のページＰKの位置を示すエラー位置情報ＥR、無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1の書き込まれたページＰK+1〜ＰN-1を特定する無効特定情報Ｘ2,K+1〜Ｘ2,N-1，Ｘ3,K+1〜Ｘ3,N-1、書き込み中に不正な電源遮断の発生したブロックＢ2，Ｂ3に対応するアドレス管理情報Ａ2,Nの識別情報１２、書き込み中に不正な電源遮断の発生したブロックＢ2，Ｂ3に対応するエラー訂正コードＥ3,Nの識別情報１３、を含む。
【００６９】
アドレス管理情報Ａ2,Nは、例えば、インタフェース部４の揮発性メモリ１０に記憶され、その後、ブロックＢ2のページＰNに書き込まれる。
【００７０】
エラー訂正コードＥ3,Nとしては、並列に書き込みが実行される複数のブロックＢ2，Ｂ3の組において、書き込みエラーの発生したブロックＢ3のページＰKを除く他のページに対する排他的論理和（ＸＯＲ）の値が用いられる。
【００７１】
ある比較例の方法では、複数のブロックに対する並列な書き込みが１回実行されるごとに、並列に書き込まれたページデータの組に対するＸＯＲデータが演算され、このＸＯＲデータがエラー訂正コードとして不揮発性半導体メモリ２に書き込まれる。
【００７２】
この比較例の方法では、エラー訂正コードに基づくエラー訂正処理は、並列に書き込みが実行されるページデータの組のみにしか利用できない。
【００７３】
これに対して、本実施形態では、複数のブロックに対する並列な書き込みが複数回実行された後に、アドレス管理情報とエラー訂正コードとの生成及び書き込みが実行される。本実施形態では、ブロックＢ2，Ｂ3のページＰ0〜ＰNから予めエラーの発生したブロックＢ3のページＰKが除外され、エラーの発生していないブロックＢ2のページＰ0〜ＰN、ブロックＢ3のページＰ0〜ＰK-1，ＰK+1〜ＰN-1に対するＸＯＲデータの演算が実行され、エラー訂正コードＥ3,Nが生成され、ブロックＢ3のページＰNへ書き込まれる。
【００７４】
このように、本実施形態においては、エラーが判明したブロックＢ3のページＰKが、エラー訂正処理の対象から除外される。そして、エラーの発生していないブロックＢ2のページＰ0〜ＰN-1、ブロックＢ3のページＰ0〜ＰK-1，ＰK+1〜ＰN-1におけるエラーは、生成されたエラー訂正コードＥ3,Nに基づいて訂正することができる。
【００７５】
この結果、本実施形態では、不揮発性半導体メモリ２に書き込まれたデータの信頼性を向上させることができる。
【００７６】
図７は、本実施形態に係る半導体記憶装置１の初期化処理の一例を示すフローチャートである。
【００７７】
ブロック１０１において、ログ制御部８は、ログデータ１１を読み出す。
【００７８】
ブロック１０２において、ログ制御部８は、読み出されたログデータ１１に基づいて、書き込み中に不正な電源遮断が発生した初期化対象ブロックが存在するか否か判断する。初期化対象ブロックが存在しない場合、処理は終了する。
【００７９】
ブロック１０２で初期化対象ブロックが存在すると判断された場合、ブロック１０３において、ページデータ制御部５は、初期化対象ブロックに対する読み出しを行う。
【００８０】
ブロック１０４において、アドレス制御部６は、初期化対象ブロックから読み出されたページデータに対応するアドレス情報と、書き込みでエラーの発生したエラー位置情報とを含むアドレス管理情報を生成する。
【００８１】
ブロック１０５において、エラー訂正制御部７は、初期化対象ブロックのうちのエラーページを除くページに対応するエラー訂正コードを生成する。
【００８２】
ブロック１０６において、無効データ書き込み部９、アドレス制御部６、エラー訂正制御部７は、それぞれ、初期化対象ブロックのうちの消去状態のページに対して、無効データ、アドレス管理情報、エラー訂正コードを書き込む。
【００８３】
図８は、本実施形態に係る半導体記憶装置１の初期化対象ブロックに対するエラー訂正処理の一例を示すフローチャートである。
【００８４】
ブロック２０１において、エラー訂正制御部７は、初期化対象ブロック内のいずれかのページデータの読み出しにおいて読み出しエラーが発生したか判断する。
【００８５】
読み出しエラーが発生していない場合には、処理は終了する。
【００８６】
ブロック２０１で読み出しエラーが発生した場合、ブロック２０２において、アドレス制御部６は、初期化対象ブロックからアドレス管理情報を読み出す。
【００８７】
ブロック２０３において、エラー訂正制御部７は、アドレス管理情報のエラー位置情報によって示されるエラーページをエラー訂正処理の対象から除外する。
【００８８】
ブロック２０４において、ページデータ制御部５は、初期化対象ブロックからエラー訂正処理の対象のページデータ及び無効データを読み出し、エラー訂正制御部７は、初期化対象ブロックからエラー訂正コードを読み出す。
【００８９】
ブロック２０５において、エラー訂正制御部７は、初期化対象ブロックから読み出されたページデータ、無効データ、アドレス管理情報、エラー訂正コードに基づいて、エラー訂正処理を実行する。
【００９０】
以上説明した本実施形態に係る半導体記憶装置１は、書き込み中に不正な電源遮断が発生した後の起動処理において、書き込み中に不正な電源遮断が発生した初期化対象ブロックＢ2，Ｂ3を検出する。半導体記憶装置１は、初期化対象ブロックＢ2，Ｂ3の各ページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1を読み出し、読み出されたページデータＤ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1のアドレス情報Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1と、エラーの発生したページの位置を示すエラー位置情報とを含むアドレス管理情報Ａ2,Nを生成する。半導体記憶装置１は、不揮発性半導体メモリ２のデータの信頼性を確保するために、起動時に初期化対象ブロックＢ2，Ｂ3の消去状態のページＰK+1〜ＰNに対して、無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1と、アドレス管理情報Ａ2,Nと、エラー訂正コードＥ3,Nとを書き込む。
【００９１】
これにより、書き込み中に不正な電源遮断が発生した初期化対象ブロックＢ2，Ｂ3に対して、未書き込みのページＰK+1〜ＰNに対する書き込みが完了され、不揮発性半導体メモリ２のデータの信頼性を確保することができる。本実施形態においては、不揮発性半導体メモリ２における消去されてから書き込みが行われるまでの時間を短くすることができる。
【００９２】
本実施形態において、不揮発性半導体メモリ２に対するアドレス管理情報Ａ2,Nとエラー訂正コードＥ3,Nとの書き込みは、初期化対象ブロックＢ2，Ｂ3が無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1を含むことを考慮して実行される。例えば、アドレス管理情報Ａ2,Nとエラー訂正コードＥ3,Nとは、無効データＩ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1を避けるなどの制御にしたがって不揮発性半導体メモリ２に書き込まれる。アドレス管理情報Ａ2,Nとエラー訂正コードＥ3,Nとは、互いに関連付けられる。例えば、エラー訂正コードＥ3,Nは、初期化対象ブロックＢ2，Ｂ3に対して、不正な電源遮断時に書き込み中であったためにエラーの発生しているブロックＢ3のページＰKを除く他のページに対するエラー訂正処理に用いられる。
【００９３】
本実施形態に係る半導体記憶装置１は、不揮発性半導体メモリ２に対してエラー訂正コードＥ3,Nが書き込まれた後に初期化対象ブロックＢ2，Ｂ3内のいずれかのページデータに対する新たな読み出しエラーを検出した場合に、初期化対象ブロックＢ2，Ｂ3のアドレス管理情報Ａ2,Nとエラー訂正コードＥ3,Nとを読み出す。半導体記憶装置１は、読み出されたアドレス管理情報Ａ2,Nのエラー位置情報に基づいて、不正な電源遮断を原因とする読み出しエラーの発生した初期化対象ブロックＢ3のページＰKをエラー訂正処理の対象から除外する。そして、半導体記憶装置１は、エラー訂正コードＥ3,Nに基づくエラー訂正処理によって、上記の新たな読み出しエラーの発生したページデータを訂正する。
【００９４】
これにより、不揮発性半導体メモリ２のデータの信頼性を向上させることができる。
【００９５】
本実施形態では、ページデータの並列書き込みの回数が、エラー訂正コードの書き込みより多ければ、エラー訂正コードの書き込み頻度は適宜変更されてもよい。
【００９６】
例えば、偶数ページ用エラー訂正コードと奇数ページ用エラー訂正コードとを用意するなどのように、本実施形態よりもエラー訂正コードの種別を増やしてもよい。
【００９７】
［第２の実施形態］
本実施形態においては、上記第１の実施形態に係る半導体記憶装置を含む記憶装置について説明する。
【００９８】
図９は、本実施形態に係る半導体記憶装置を備える記憶装置を例示するブロック図である。
【００９９】
記憶装置１５は、ハイブリッド型ハードディスクドライブ（ＨＤＤ）である。しかしながら、記憶装置１５は、例えばＳＳＤ（Solid State Drive）などでもよい。
【０１００】
記憶装置１５は、ホスト装置５の制御に従って、不揮発性半導体メモリ２と、磁気記憶媒体であるディスク１６とに、大容量のデータを記憶する。
【０１０１】
記憶装置１５は、ハードディスクコントローラ（ＨＤＣ）１７と、バッファメモリ２１と、ヘッドＩＣ（Integrated Circuit）１９と、ディスク１６と、ヘッド２０とを備える。
【０１０２】
ＨＤＣ１７は、記憶装置１５とホスト装置５との間のインタフェースを制御し、不揮発性半導体メモリ２及びディスク１６に対するデータ書き込み及びデータ読み出し等を制御する。
【０１０３】
バッファメモリ２１は、ＨＤＣ１７の制御に従い、記憶装置１５とホスト装置５との間のデータ転送のための書き込みデータまたは読み出しデータを一時的に記憶する。バッファメモリ２１としては、例えばＤＲＡＭなどが用いられる。
【０１０４】
メモリコントローラ３は、ＨＤＣ１７の制御に従い、不揮発性半導体メモリ２を制御する。
【０１０５】
ヘッドＩＣ１９は、ＨＤＣ１７の制御に従い、ヘッド２０を制御するヘッドアンプ集積回路である。
【０１０６】
ヘッド２０は、ヘッドＩＣ１９の制御に従って、ディスク１６上を移動し、ディスク１６に記憶されたデータを読み出し、ディスク１６にデータを書き込む。
【０１０７】
本実施形態においては、記憶装置１５に半導体記憶装置１を備えることにより、記憶装置１５に記憶されるデータの信頼性を向上させることができる。
【０１０８】
ハイブリッド型の記憶装置１５では、不揮発性半導体メモリ２に対して一度に書き込むことができるページデータの量が少なくても、エラー訂正を実行することができ、不揮発性半導体メモリ２のデータの信頼性を上げることができる。
【０１０９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１０】
１…半導体記憶装置、２…不揮発性半導体メモリ、３…メモリコントローラ、４…インタフェース部、５…ページデータ制御部、６…アドレス制御部、７…エラー訂正制御部、８…ログ制御部、９…無効データ書き込み部、１０…揮発性メモリ、１１…ログデータ、１２，１３…識別情報、１４…不揮発性メモリ、１５…記憶装置、Ｂ0〜Ｂ3…ブロック、Ｐ0〜ＰN…ページ、Ｄ0,0〜Ｄ0,N-1，Ｄ1,0〜Ｄ1,N-1，Ｄ2,0〜Ｄ2,K，Ｄ3,0〜Ｄ3,K-1…ページデータ、Ａ0,N，Ａ2,N…アドレス管理情報、Ｅ1,N，Ｅ3,N…エラー訂正コード、Ｉ2,K+1〜Ｉ2,N-1，Ｉ3,K+1〜Ｉ3,N-1…無効データ、Ｌ0,0〜Ｌ0,N-1，Ｌ1,0〜Ｌ1,N-1，Ｌ2,0〜Ｌ2,K，Ｌ3,0〜Ｌ3,K-1…アドレス情報
【図１】
2016018473.tif 000003
【図２】
2016018473.tif 000004
【図３】
2016018473.tif 000005
【図４】
2016018473.tif 000006
【図５】
2016018473.tif 000007
【図６】
2016018473.tif 000008
【図７】
2016018473.tif 000009
【図８】
2016018473.tif 000010
【図９】
2016018473.tif 000011