(57)【要約】【課題】簡易な構成及び処理によってリフレッシュ処理の実行回数を削減することが可能な、不揮発性記憶装置を得る。【解決手段】アドレス設定部６４は、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定する。【選択図】図１２
2019192316.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがデータの消去単位である複数のブロックを有し、各ブロックはそれぞれがデータの読出単位かつ書込単位である複数のページを含む、不揮発性メモリと、
前記不揮発性メモリを制御する制御部と、
を備え、
前記制御部は、
前記複数のブロックのうち記憶データのエラービット数が所定値を超えるブロックを特定するブロック特定部と、
前記ブロック特定部によって特定されたブロックを読出対象ブロックとして、当該読出対象ブロックに記憶されているデータを読み出す読出処理部と、
前記読出処理部によって読み出されたデータを格納するデータ格納部と、
前記データ格納部に格納されているデータに対してエラー訂正を行うエラー訂正部と、
前記エラー訂正部によってエラー訂正が行われたデータを、前記複数のブロックのうちの書込対象ブロックに書き込む書込処理部と、
読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定する、アドレス設定部と、
を有する、不揮発性記憶装置。
【請求項２】
前記制御部は、
読出対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係についての最新のシフト情報が記述されたテーブルを格納するテーブル格納部
をさらに有し、
前記アドレス設定部は、前記テーブル格納部に格納されている前記テーブルを参照することにより、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係をシフトする、請求項１に記載の不揮発性記憶装置。
【請求項３】
前記テーブルは前記不揮発性メモリの所定領域に記憶されており、
前記制御部は、前記不揮発性メモリから読み出した前記テーブルを、前記テーブル格納部に格納する、請求項２に記載の不揮発性記憶装置。
【請求項４】
前記制御部は、
各ブロックの特定の物理ページに記憶されている論理ページの論理ページアドレスに基づいて前記テーブルを作成するテーブル作成部
をさらに有する、請求項２に記載の不揮発性記憶装置。
【請求項５】
前記シフト量は固定値である、請求項１〜４のいずれか一つに記載の不揮発性記憶装置。
【請求項６】
前記シフト量は可変値である、請求項１〜４のいずれか一つに記載の不揮発性記憶装置。
【請求項７】
前記制御部は、２回目以降のシフト量を、１回目のシフト量より小さく設定する、請求項６に記載の不揮発性記憶装置。
【請求項８】
前記制御部は、
読出対象ブロックに関するデータ読み出し回数をカウントするカウンタ
をさらに有し、
前記アドレス設定部は、
前記カウンタのカウンタ値が所定の閾値未満である場合には、書込対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係として、シフトが行われていない初期対応関係への再設定を行い、
前記カウンタのカウンタ値が所定の閾値以上である場合には、書込対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係として、シフトが行われていない初期対応関係への再設定を行わない、請求項１〜７のいずれか一つに記載の不揮発性記憶装置。
【請求項９】
それぞれがデータの消去単位である複数のブロックを有し、各ブロックはそれぞれがデータの読出単位かつ書込単位である複数のページを含む、不揮発性メモリを制御するメモリ制御装置であって、
前記複数のブロックのうち記憶データのエラービット数が所定値を超えるブロックを特定するブロック特定部と、
前記ブロック特定部によって特定されたブロックを読出対象ブロックとして、当該読出対象ブロックに記憶されているデータを読み出す読出処理部と、
前記読出処理部によって読み出されたデータを格納するデータ格納部と、
前記データ格納部に格納されているデータに対してエラー訂正を行うエラー訂正部と、
前記エラー訂正部によってエラー訂正が行われたデータを、前記複数のブロックのうちの書込対象ブロックに書き込む書込処理部と、
読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定する、アドレス設定部と、
を備える、メモリ制御装置。
【請求項１０】
それぞれがデータの消去単位である複数のブロックを有し、各ブロックはそれぞれがデータの読出単位かつ書込単位である複数のページを含む、不揮発性メモリを制御するメモリ制御方法であって、
（Ａ）前記複数のブロックのうち記憶データのエラービット数が所定値を超えるブロックを特定するステップと、
（Ｂ）前記ステップ（Ａ）によって特定されたブロックを読出対象ブロックとして、当該読出対象ブロックに記憶されているデータを読み出すステップと、
（Ｃ）前記ステップ（Ｂ）によって読み出されたデータを格納するステップと、
（Ｄ）前記ステップ（Ｃ）によって格納されたデータに対してエラー訂正を行うステップと、
（Ｅ）前記ステップ（Ｄ）によってエラー訂正が行われたデータを、前記複数のブロックのうちの書込対象ブロックに書き込むステップと、
（Ｆ）前記ステップ（Ｅ）によって書込対象ブロックにデータを書き込むに際し、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定するステップと、
を備える、メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法に関する。
【背景技術】
【０００２】
下記特許文献１には、ＮＡＮＤ型フラッシュメモリにおいてリードディスターブに起因するエラーを修復すべく、検査対象ブロックに含まれる各ページに対してエラー検出処理を行い、所定の閾値を超えるエラーが検出されたエラーページが存在する場合には、検査対象ブロックに対してデータの再書き込み処理（リフレッシュ処理）を実行する、メモリアクセス制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１４６１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＮＡＮＤ型フラッシュメモリでは、ある特定の物理ページにリードアクセスが集中すると、その周辺の近接物理ページにおいてエラーが多発する場合がある。これは、上記特定の物理ページと上記近接物理ページとの間でカップリングが起き、近接物理ページのメモリセルが有する電荷蓄積層（フローティングゲート又はチャージトラップ膜等）に電子が意図せず注入されることが原因と考えられる。つまり、上記特定の物理ページはいわば「エラー誘発物理ページ」であり、リードアクセスが集中する論理ページはいわば「リード集中論理ページ」であり、エラー誘発物理ページにリード集中論理ページが格納されるという偶然が重なった場合に、近接物理ページにおいてエラーが多発する。この現象は、一つのメモリセルに２ビット以上のデータを記憶する多値メモリにおいて、特に顕著となる。
【０００５】
上記特許文献１に開示されたメモリアクセス制御装置によると、リフレッシュ処理の前後で、検査対象ブロックにおける物理ページアドレスと論理ページアドレスとの対応関係は同一である。従って、エラー誘発物理ページにリード集中論理ページが格納されたことが原因でエラーが多発してリフレッシュ処理が実行された場合であっても、リフレッシュ処理後もエラー誘発物理ページにリード集中論理ページが格納された状態が継続されるため、その後も近接物理ページにおいてエラーが多発する可能性が高い。その結果、リフレッシュ処理の実行回数が増大する。
【０００６】
本発明はかかる事情に鑑みて成されたものであり、簡易な構成及び処理によってリフレッシュ処理の実行回数を削減することが可能な、不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法を得ることを目的とするものである。
【課題を解決するための手段】
【０００７】
本発明の第１の態様に係る不揮発性記憶装置は、それぞれがデータの消去単位である複数のブロックを有し、各ブロックはそれぞれがデータの読出単位かつ書込単位である複数のページを含む、不揮発性メモリと、前記不揮発性メモリを制御する制御部と、を備え、前記制御部は、前記複数のブロックのうち記憶データのエラービット数が所定値を超えるブロックを特定するブロック特定部と、前記ブロック特定部によって特定されたブロックを読出対象ブロックとして、当該読出対象ブロックに記憶されているデータを読み出す読出処理部と、前記読出処理部によって読み出されたデータを格納するデータ格納部と、前記データ格納部に格納されているデータに対してエラー訂正を行うエラー訂正部と、前記エラー訂正部によってエラー訂正が行われたデータを、前記複数のブロックのうちの書込対象ブロックに書き込む書込処理部と、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定する、アドレス設定部と、を有することを特徴とするものである。
【０００８】
第１の態様に係る不揮発性記憶装置によれば、アドレス設定部は、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定する。そのため、リフレッシュ処理の前後で、物理ページアドレスと論理ページアドレスとの対応関係は異なる。従って、エラー誘発物理ページにリード集中論理ページが格納されたことが原因でエラーが多発してリフレッシュ処理が実行された場合には、リフレッシュ処理後はエラー誘発物理ページにリード集中論理ページが格納された状態は解消されているため、その後にエラー誘発物理ページの近接物理ページにおいてエラーが多発する可能性は低い。その結果、リフレッシュ処理時にアドレス設定部によって論理ページアドレスと物理ページアドレスとの対応関係をシフトするという簡易な構成及び処理によって、リフレッシュ処理の実行回数を削減することが可能となる。
【０００９】
本発明の第２の態様に係る不揮発性記憶装置は、第１の態様に係る不揮発性記憶装置において特に、前記制御部は、読出対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係についての最新のシフト情報が記述されたテーブルを格納するテーブル格納部をさらに有し、前記アドレス設定部は、前記テーブル格納部に格納されている前記テーブルを参照することにより、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係をシフトすることを特徴とするものである。
【００１０】
第２の態様に係る不揮発性記憶装置によれば、テーブル格納部には、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係についての最新のシフト情報が記述されたテーブルが格納されており、アドレス設定部は、当該テーブルを参照することにより、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係をシフトする。従って、リフレッシュ処理が複数回実行される場合であっても、アドレス設定部は、常に最新のシフト情報に基づいて、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を適切にシフトすることが可能となる。
【００１１】
本発明の第３の態様に係る不揮発性記憶装置は、第２の態様に係る不揮発性記憶装置において特に、前記テーブルは前記不揮発性メモリの所定領域に記憶されており、前記制御部は、前記不揮発性メモリから読み出した前記テーブルを、前記テーブル格納部に格納することを特徴とするものである。
【００１２】
第３の態様に係る不揮発性記憶装置によれば、テーブルは不揮発性メモリの所定領域に記憶されており、制御部は、不揮発性メモリから読み出したテーブルをテーブル格納部に格納する。従って、不揮発性記憶装置の起動時に制御部が自らテーブルを作成する必要がないため、テーブル作成に伴う処理負荷の増大を回避できるとともに、起動処理の所要時間を短縮することが可能となる。
【００１３】
本発明の第４の態様に係る不揮発性記憶装置は、第２の態様に係る不揮発性記憶装置において特に、前記制御部は、各ブロックの特定の物理ページに記憶されている論理ページの論理ページアドレスに基づいて前記テーブルを作成するテーブル作成部をさらに有することを特徴とするものである。
【００１４】
第４の態様に係る不揮発性記憶装置によれば、テーブル作成部は、各ブロックの特定の物理ページに記憶されている論理ページの論理ページアドレスに基づいて、各ブロックに関するテーブルを作成する。従って、不揮発性メモリの所定領域にテーブルを記憶する必要がないため、テーブルの記憶に伴う記憶容量の減少を回避することが可能となる。
【００１５】
本発明の第５の態様に係る不揮発性記憶装置は、第１〜第４のいずれか一つの態様に係る不揮発性記憶装置において特に、前記シフト量は固定値であることを特徴とするものである。
【００１６】
第５の態様に係る不揮発性記憶装置によれば、シフト量は固定値である。従って、シフト量を可変に設定する必要がないため、処理を簡略化することが可能となる。
【００１７】
本発明の第６の態様に係る不揮発性記憶装置は、第１〜第４のいずれか一つの態様に係る不揮発性記憶装置において特に、前記シフト量は可変値であることを特徴とするものである。
【００１８】
第６の態様に係る不揮発性記憶装置によれば、シフト量は可変値である。従って、状況に応じてシフト量を可変に設定することにより、リフレッシュ処理の実行回数をさらに削減することが可能となる。
【００１９】
本発明の第７の態様に係る不揮発性記憶装置は、第６の態様に係る不揮発性記憶装置において特に、前記制御部は、２回目以降のシフト量を、１回目のシフト量より小さく設定することを特徴とするものである。
【００２０】
第７の態様に係る不揮発性記憶装置によれば、制御部は、２回目以降のシフト量を、１回目のシフト量より小さく設定する。１回目のリフレッシュ処理はリードディスターブに起因する可能性が高いため、１回目のリフレッシュ処理では比較的大きいシフト量を設定することにより、リードディスターブに起因するエラーの再発を効果的に防止することができる。また、２回目以降のリフレッシュ処理はデータリテンションに起因する可能性が高いため、２回目以降のリフレッシュ処理では比較的小さいシフト量を設定することにより、一巡するまでのシフト回数を多く確保することができる。
【００２１】
本発明の第８の態様に係る不揮発性記憶装置は、第１〜第７のいずれか一つの態様に係る不揮発性記憶装置において特に、前記制御部は、読出対象ブロックに関するデータ読み出し回数をカウントするカウンタをさらに有し、前記アドレス設定部は、前記カウンタのカウンタ値が所定の閾値未満である場合には、書込対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係として、シフトが行われていない初期対応関係への再設定を行い、前記カウンタのカウンタ値が所定の閾値以上である場合には、書込対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係として、シフトが行われていない初期対応関係への再設定を行わないことを特徴とするものである。
【００２２】
第８の態様に係る不揮発性記憶装置によれば、アドレス設定部は、カウンタのカウンタ値が所定の閾値未満である場合には、書込対象ブロックにおける論理ページアドレスと物理ページアドレスの対応関係として、シフトが行われていない初期対応関係への再設定（つまりＷｒａｐ）を行う。カウンタ値が閾値未満である場合にはリードディスターブに起因するエラーである可能性が低いため、この場合にはＷｒａｐを許可することにより、二巡目以降も同様の処理を繰り返し実行することができる。一方、カウンタ値が閾値以上である場合にはリードディスターブに起因するエラーである可能性が高いため、この場合にはＷｒａｐを禁止することにより、リードディスターブの影響を最も受けやすい初期対応関係に再設定される事態を回避することができる。
【００２３】
本発明の第９の態様に係るメモリ制御装置は、それぞれがデータの消去単位である複数のブロックを有し、各ブロックはそれぞれがデータの読出単位かつ書込単位である複数のページを含む、不揮発性メモリを制御するメモリ制御装置であって、前記複数のブロックのうち記憶データのエラービット数が所定値を超えるブロックを特定するブロック特定部と、前記ブロック特定部によって特定されたブロックを読出対象ブロックとして、当該読出対象ブロックに記憶されているデータを読み出す読出処理部と、前記読出処理部によって読み出されたデータを格納するデータ格納部と、前記データ格納部に格納されているデータに対してエラー訂正を行うエラー訂正部と、前記エラー訂正部によってエラー訂正が行われたデータを、前記複数のブロックのうちの書込対象ブロックに書き込む書込処理部と、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定する、アドレス設定部と、を備えることを特徴とするものである。
【００２４】
第９の態様に係るメモリ制御装置によれば、アドレス設定部は、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定する。そのため、リフレッシュ処理の前後で、物理ページアドレスと論理ページアドレスとの対応関係は異なる。従って、エラー誘発物理ページにリード集中論理ページが格納されたことが原因でエラーが多発してリフレッシュ処理が実行された場合には、リフレッシュ処理後はエラー誘発物理ページにリード集中論理ページが格納された状態は解消されているため、その後にエラー誘発物理ページの近接物理ページにおいてエラーが多発する可能性は低い。その結果、リフレッシュ処理時にアドレス設定部によって論理ページアドレスと物理ページアドレスとの対応関係をシフトするという簡易な構成及び処理によって、リフレッシュ処理の実行回数を削減することが可能となる。
【００２５】
本発明の第１０の態様に係るメモリ制御方法は、それぞれがデータの消去単位である複数のブロックを有し、各ブロックはそれぞれがデータの読出単位かつ書込単位である複数のページを含む、不揮発性メモリを制御するメモリ制御方法であって、（Ａ）前記複数のブロックのうち記憶データのエラービット数が所定値を超えるブロックを特定するステップと、（Ｂ）前記ステップ（Ａ）によって特定されたブロックを読出対象ブロックとして、当該読出対象ブロックに記憶されているデータを読み出すステップと、（Ｃ）前記ステップ（Ｂ）によって読み出されたデータを格納するステップと、（Ｄ）前記ステップ（Ｃ）によって格納されたデータに対してエラー訂正を行うステップと、（Ｅ）前記ステップ（Ｄ）によってエラー訂正が行われたデータを、前記複数のブロックのうちの書込対象ブロックに書き込むステップと、（Ｆ）前記ステップ（Ｅ）によって書込対象ブロックにデータを書き込むに際し、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を規定することにより、書込対象ブロックの各物理ページに書き込む論理ページの論理ページアドレスを設定するステップと、を備えることを特徴とするものである。
【００２６】
第１０の態様に係るメモリ制御方法によれば、ステップ（Ｆ）では、ステップ（Ｅ）によって書込対象ブロックにデータを書き込むに際し、読出対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係を所定のシフト量だけシフトすることによって、書込対象ブロックにおける論理ページアドレスと物理ページアドレスとの対応関係が規定される。そのため、リフレッシュ処理の前後で、物理ページアドレスと論理ページアドレスとの対応関係は異なる。従って、エラー誘発物理ページにリード集中論理ページが格納されたことが原因でエラーが多発してリフレッシュ処理が実行された場合には、リフレッシュ処理後はエラー誘発物理ページにリード集中論理ページが格納された状態は解消されているため、その後にエラー誘発物理ページの近接物理ページにおいてエラーが多発する可能性は低い。その結果、リフレッシュ処理時にステップ（Ｆ）によって論理ページアドレスと物理ページアドレスとの対応関係をシフトするという簡易な処理によって、リフレッシュ処理の実行回数を削減することが可能となる。
【発明の効果】
【００２７】
本発明によれば、簡易な構成及び処理によってリフレッシュ処理の実行回数を削減することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本実施の形態に係るメモリシステムの構成を示す図である。
【図２】不揮発性記憶装置の構成を示す図である。
【図３】不揮発性メモリの記憶領域を模式的に示す図である。
【図４】管理テーブルの構成を示す図である。
【図５】シフトナンバーを説明するための図である。
【図６】シフトナンバーを説明するための図である。
【図７】シフトナンバーを説明するための図である。
【図８】シフトナンバーを説明するための図である。
【図９】特定の物理ページにリードアクセスを集中させた場合に、ブロック内で発生した最大エラービット数をカウントした結果の一例を示す図である。
【図１０】リフレッシュ処理に関してＣＰＵが有する機能を示す図である。
【図１１】リフレッシュ処理の流れを示すフローチャートである。
【図１２】リフレッシュ処理に関してＣＰＵが有する機能を示す図である。
【図１３】連続するシフト位置間でのアドレスのシフト量を示す図である。
【図１４】不揮発性記憶装置の構成を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００３０】
図１は、本実施の形態に係るメモリシステム１の構成を示す図である。図１に示すようにメモリシステム１は、ホスト装置２と、ホスト装置２に着脱自在に接続された不揮発性記憶装置３とを備えて構成されている。ホスト装置２は例えばパーソナルコンピュータ等の情報処理装置であり、不揮発性記憶装置３は例えばフラッシュメモリのメモリカードである。
【００３１】
図２は、不揮発性記憶装置３の構成を示す図である。図２に示すように不揮発性記憶装置３は、ＮＡＮＤ型フラッシュメモリ等の不揮発性メモリ３２と、不揮発性メモリ３２を制御するメモリコントローラ３１とを備えて構成されている。
【００３２】
メモリコントローラ３１は、バス４１を介して相互に接続された、ＣＰＵ４２、ホストインタフェース４３、及びメモリインタフェース４４を備えている。また、メモリコントローラ３１は、ＣＰＵ４２に接続されたＳＲＡＭ４５と、メモリインタフェース４４に接続されたデータバッファ４６及びＥＣＣ（Error Checking and Correction）回路４７とを備えている。
【００３３】
図３は、不揮発性メモリ３２の記憶領域を模式的に示す図である。不揮発性メモリ３２は、それぞれがデータの消去単位である複数のブロックＢ（Ｂ０〜ＢＮ）を有している。各ブロックＢは、それぞれがデータの読出単位かつ書込単位である複数のページＰ（Ｐ０〜ＰＭ）を有している。
【００３４】
図２に示すように、不揮発性メモリ３２の所定の記憶領域には、管理テーブル５０が記憶されている。管理テーブル５０は、不揮発性記憶装置３の起動時に不揮発性メモリ３２から読み出されて、ＳＲＡＭ４５に格納される。
【００３５】
図４は、管理テーブル５０の構成を示す図である。管理テーブル５０には、アドレス変換テーブル５１とシフト情報テーブル５２とが含まれる。
【００３６】
アドレス変換テーブル５１には、ＣＰＵ４２が実行するプログラムにおいて使用される論理ページアドレスと、不揮発性メモリ３２内の物理的なページ位置を示す物理ページアドレスとの対応関係が記述されている。
【００３７】
シフト情報テーブル５２には、各ブロックＢの最新のシフトナンバーが記述されている。
【００３８】
図５〜８は、シフトナンバーを説明するための図である。ここでは、各ブロックＢに含まれるページ数Ｍが２５６ページであり、アドレスのシフト量が固定値の６４ページである例を示している。
【００３９】
図５には、シフトナンバーＰ０の初期位置が示されている。初期位置では、論理ページアドレスＹ０〜Ｙ２５５はそのまま物理ページアドレスＸ０〜Ｘ２５５に対応する。
【００４０】
図６には、シフトナンバーＰ１の第１シフト位置が示されている。第１シフト位置では、物理ページアドレスＸと論理ページアドレスＹとの対応関係が初期位置から６４ページだけ左方向に循環シフトされている。例えば論理ページアドレスＹ０，Ｙ６４，Ｙ１２８，Ｙ１９２は、それぞれ物理ページアドレスＸ１９２，Ｘ０，Ｘ６４，Ｘ１２８に対応する。
【００４１】
図７には、シフトナンバーＰ２の第２シフト位置が示されている。第２シフト位置では、物理ページアドレスＸと論理ページアドレスＹとの対応関係が第１シフト位置から６４ページだけ左方向に循環シフトされている。例えば論理ページアドレスＹ０，Ｙ６４，Ｙ１２８，Ｙ１９２は、それぞれ物理ページアドレスＸ１２８，Ｘ１９２，Ｘ０，Ｘ６４に対応する。
【００４２】
図８には、シフトナンバーＰ３の第３シフト位置が示されている。第３シフト位置では、物理ページアドレスＸと論理ページアドレスＹとの対応関係が第２シフト位置から６４ページだけ左方向に循環シフトされている。例えば論理ページアドレスＹ０，Ｙ６４，Ｙ１２８，Ｙ１９２は、それぞれ物理ページアドレスＸ６４，Ｘ１２８，Ｘ１９２，Ｘ０に対応する。
【００４３】
上述したように、ＮＡＮＤ型フラッシュメモリでは、ある特定の物理ページにリードアクセスが集中すると、その周辺の近接物理ページにおいてエラーが多発する場合がある。これは、上記特定の物理ページと上記近接物理ページとの間でカップリングが起き、近接物理ページのメモリセルが有する電荷蓄積層（フローティングゲート又はチャージトラップ膜等）に電子が意図せず注入される（リードディスターブ）ことが原因と考えられる。つまり、上記特定の物理ページはいわば「エラー誘発物理ページ」であり、リードアクセスが集中する論理ページはいわば「リード集中論理ページ」であり、エラー誘発物理ページにリード集中論理ページが格納されるという偶然が重なった場合に、近接物理ページにおいてエラーが多発する。この現象は、一つのメモリセルに２ビット以上のデータを記憶する多値メモリにおいて、特に顕著となる。
【００４４】
図９は、不揮発性メモリ３２において、ある特定の物理ページにリードアクセスを集中させた場合に、その物理ページを含むブロック内で発生した最大エラービット数をカウントした結果の一例を示す図である。例えば、物理ページアドレスＸ０の物理ページにリードアクセスを集中させた場合の最大エラービット数は「１６」であり、物理ページアドレスＸ１の物理ページにリードアクセスを集中させた場合の最大エラービット数は「４４」である。
【００４５】
図９から明らかなように、物理ページアドレスＸ１の物理ページにリードアクセスを集中させた場合の最大エラービット数は、他の場合と比較して極端に多くなっていることが分かる。つまりこの例では、物理ページアドレスＸ１の物理ページがエラー誘発物理ページということである。
【００４６】
図５に示した初期位置において、物理ページアドレスＸ１のエラー誘発物理ページ（以下「エラー誘発物理ページＸ１」とも称す）には、論理ページアドレスＹ１の論理ページが記憶されている。この論理ページアドレスＹ１の論理ページがリード集中論理ページ（以下「リード集中論理ページＹ１」とも称す）であった場合には、エラー誘発物理ページＸ１にリード集中論理ページＹ１が格納されることとなるため、エラー誘発物理ページＸ１の近接物理ページにおいてエラーが多発する。
【００４７】
メモリコントローラ３１は、エラービット数が所定の閾値を超えるエラーページを含むブロックが存在する場合には、そのブロックから読み出したデータを訂正して他のブロック（又は元のブロック）に書き込む処理（以下「リフレッシュ処理」と称す）を実行する。
【００４８】
図１０は、リフレッシュ処理に関してＣＰＵ４２が有する機能を示す図である。図１０に示すようにＣＰＵ４２は、ブロック特定部６１、読出処理部６２、書込処理部６３、及びアドレス設定部６４を有している。
【００４９】
本実施の形態の例において、ＥＣＣ回路４７は、各ページＰ内の所定ビット長（例えば１０２４バイト。以下「チャンク」と称す。）毎に最大２４ビットまでのエラービットを訂正できる能力を有している。ブロック特定部６１は、ＥＣＣ回路４７によってエラー訂正が行われたエラービット数をカウントし、あるチャンクに関するエラービット数が所定の閾値を超えた場合に、そのチャンクを含むページＰはエラーページであると判定する。そして、ブロック特定部６１は、エラーページを含むブロックＢを、リフレッシュ処理の対象ブロックとして特定する。ブロック特定部６１によってリフレッシュ処理の対象ブロックが特定されると、メモリコントローラ３１はリフレッシュ処理を実行する。
【００５０】
図１１は、メモリコントローラ３１によって実行されるリフレッシュ処理の流れを示すフローチャートである。以下の例では、リフレッシュ処理の対象ブロックである読出対象ブロックがブロックＢ１であり、データが書き込まれる書込対象ブロックがブロックＢ４であり、ブロックＢ１の現在のシフト位置は初期位置（シフトナンバーＰ０）である場合を想定する。
【００５１】
ブロック特定部６１によって読出対象ブロックＢ１が特定されると、次にステップＳＰ０１においてＣＰＵ４２は、ＳＲＡＭ４５に格納されている管理テーブル５０内のシフト情報テーブル５２を参照することにより、読出対象ブロックＢ１に関する現在のシフト情報を取得する。この例では、シフトナンバーＰ０が取得される。
【００５２】
次にステップＳＰ０２においてＣＰＵ４２は、書込対象ブロックＢ４のシフトナンバーを設定する。書込対象ブロックＢ４のシフトナンバーは、読出対象ブロックのシフトナンバーを１だけ更新した値に設定される。この例では読出対象ブロックＢ１のシフトナンバーがＰ０であるため、書込対象ブロックＢ４のシフトナンバーはＰ１に設定される。なお、読出対象ブロックＢ１のシフトナンバーが最大値のＰ３であった場合には、書込対象ブロックＢ４のシフトナンバーは初期値のＰ０に再設定（Ｗｒａｐ）される。
【００５３】
次にステップＳＰ０３においてＣＰＵ４２は、書込対象ブロックＢ４に記憶されているデータを消去する。
【００５４】
次にステップＳＰ０４においてＣＰＵ４２（アドレス設定部６４）は、読出対象ブロックＢ１からデータを読み出すための読出アドレスを設定する。この例では、読出対象ブロックＢ１のシフト位置は初期位置（シフトナンバーＰ０）であり、書込対象ブロックＢ４のシフト位置は第１シフト位置（シフトナンバーＰ１）である。従ってＣＰＵ４２は、論理ページアドレスＹ６４を先頭アドレスとして、Ｙ６４→・・・→Ｙ２５５→Ｙ０→・・・→Ｙ６３の順に、読出アドレスを設定する。
【００５５】
次にステップＳＰ０５においてＣＰＵ４２（読出処理部６２）は、ステップＳＰ０４で設定されたアドレス順に、読出対象ブロックＢ１からデータを読み出す。読み出されたデータは、メモリインタフェース４４を介してデータバッファ４６に格納される。
【００５６】
次にステップＳＰ０６においてＣＰＵ４２（書込処理部６３）は、データバッファ４６に格納されているデータに対してＥＣＣ回路４７によるエラー訂正処理を行い、エラー訂正後のデータを、書込対象ブロックＢ４の先頭物理ページから順に書き込む。その結果、図６に示すように、書込対象ブロックＢ４には、先頭物理ページから論理ページアドレスＹ６４→・・・→Ｙ２５５→Ｙ０→・・・→Ｙ６３の順に、全ての論理ページが書き込まれる。リード集中論理ページＹ１は、物理ページアドレスＸ１９３の物理ページに書き込まれることになる。図９を参照して、物理ページアドレスＸ１９３の物理ページにリードアクセスが集中したとしても、ブロック内に発生する最大エラービット数は比較的少ないため、リードディスターブに起因するリフレッシュ処理がその後に必要となる可能性は低いといえる。
【００５７】
次にステップＳＰ０７においてＣＰＵ４２は、管理テーブル５０内のアドレス変換テーブル５１及びシフト情報テーブル５２を更新し、ＳＲＡＭ４５及び不揮発性メモリ３２に現在格納されている更新前の管理テーブル５０を、更新後の管理テーブル５０によって上書きする。更新後のアドレス変換テーブル５１には、ブロックＢ４に関して、図６に示した物理ページアドレスＸと論理ページアドレスＹとの対応関係が記述される。また、更新後のシフト情報テーブル５２には、ブロックＢ４に関して、シフトナンバーＰ１が記述される。以上の処理により、ブロックＢ１を対象とするリフレッシュ処理が完了する。
【００５８】
その後、データリテンション等に起因してブロックＢ４を対象とするリフレッシュ処理が必要となった場合には、書込対象ブロックのシフトナンバーがＰ２に設定されて、上記と同様の処理が実行される。以降も同様に、シフトナンバーがＰ３→Ｐ０→Ｐ１→Ｐ２→・・・の順に設定されて、上記と同様のリフレッシュ処理が実行される。
【００５９】
本実施の形態に係る不揮発性記憶装置３によれば、アドレス設定部６４は、読出対象ブロックＢ１における論理ページアドレスＹと物理ページアドレスＸとの対応関係を所定のシフト量（上記の例では６４ページ）だけシフトすることによって、書込対象ブロックＢ４における論理ページアドレスＹと物理ページアドレスＸとの対応関係を規定する。そのため、リフレッシュ処理の前後で、物理ページアドレスＸと論理ページアドレスＹとの対応関係は異なる。従って、エラー誘発物理ページ（Ｘ１）にリード集中論理ページ（Ｙ１）が格納されたことが原因でエラーが多発してリフレッシュ処理が実行された場合には、リフレッシュ処理後はエラー誘発物理ページにリード集中論理ページが格納された状態は解消されているため、その後にエラー誘発物理ページの近接物理ページにおいてエラーが多発する可能性は低い。その結果、リフレッシュ処理時にアドレス設定部６４によって論理ページアドレスＹと物理ページアドレスＸとの対応関係をシフトするという簡易な構成及び処理によって、リフレッシュ処理の実行回数を削減することが可能となる。
【００６０】
また、本実施の形態に係る不揮発性記憶装置３によれば、ＳＲＡＭ４５（テーブル格納部）には、読出対象ブロックＢ１における論理ページアドレスＹと物理ページアドレスＸとの対応関係についての最新のシフト情報が記述されたシフト情報テーブル５２が格納されており、アドレス設定部６４は、当該シフト情報テーブル５２を参照することにより、読出対象ブロックＢ１における論理ページアドレスＹと物理ページアドレスＸとの対応関係をシフトする。従って、リフレッシュ処理が複数回実行される場合であっても、アドレス設定部６４は、常に最新のシフト情報に基づいて、読出対象ブロックにおける論理ページアドレスＹと物理ページアドレスＸとの対応関係を適切にシフトすることが可能となる。
【００６１】
また、本実施の形態に係る不揮発性記憶装置３によれば、シフト情報テーブル５２は不揮発性メモリ３２の所定領域に記憶されており、メモリコントローラ３１（制御部）は、不揮発性メモリ３２から読み出したシフト情報テーブル５２をＳＲＡＭ４５に格納する。従って、不揮発性記憶装置３の起動時にメモリコントローラ３１が自らシフト情報テーブル５２を作成する必要がないため、テーブル作成に伴う処理負荷の増大を回避できるとともに、起動処理の所要時間を短縮することが可能となる。
【００６２】
また、本実施の形態に係る不揮発性記憶装置３によれば、連続するシフト位置間でのアドレスのシフト量は固定値（上記の例では６４ページ）である。従って、シフト量を可変に設定する必要がないため、処理を簡略化することが可能となる。
【００６３】
以下、上記実施の形態に係る不揮発性記憶装置３の種々の変形例について説明する。以下に述べる変形例は任意に組み合わせて適用することができる。
【００６４】
＜変形例１＞
上記実施の形態では、シフト情報テーブル５２が不揮発性メモリ３２の所定の記憶領域に予め記憶されており、不揮発性記憶装置３の起動時にシフト情報テーブル５２が不揮発性メモリ３２から読み出される例について述べた。これに対して本変形例では、シフト情報テーブル５２は不揮発性メモリ３２には記憶されておらず、不揮発性記憶装置３の起動時にメモリコントローラ３１がシフト情報テーブル５２を作成する。
【００６５】
図１２は、リフレッシュ処理に関してＣＰＵ４２が有する機能を示す図である。ＣＰＵ４２は、図１０に示した構成に加えてテーブル作成部６５を有している。テーブル作成部６５は、不揮発性記憶装置３の起動時にシフト情報テーブル５２を作成し、作成したシフト情報テーブル５２をＳＲＡＭ４５に格納する。
【００６６】
一例として、テーブル作成部６５は、各ブロックＢの特定の物理ページ（例えば先頭の物理ページ）に記憶されている論理ページの論理ページアドレスＹを取得し、その先頭の論理ページアドレスＹに基づいて各ブロックＢのシフト位置を割り出す。上記の例では、テーブル作成部６５は、先頭の論理ページアドレスがＹ０であるブロックＢに関してはシフトナンバーＰ０を設定し、先頭の論理ページアドレスがＹ６４であるブロックＢに関してはシフトナンバーＰ１を設定し、先頭の論理ページアドレスがＹ１２８であるブロックＢに関してはシフトナンバーＰ２を設定し、先頭の論理ページアドレスがＹ１９２であるブロックＢに関してはシフトナンバーＰ３を設定する。そして、全てのブロックＢに関してシフトナンバーを設定することによってシフト情報テーブル５２を作成して、作成したシフト情報テーブル５２をＳＲＡＭ４５に格納する。
【００６７】
本変形例に係る不揮発性記憶装置３によれば、テーブル作成部６５は、各ブロックＢの特定の物理ページに記憶されている論理ページの論理ページアドレスＹに基づいて、シフト情報テーブル５２を作成する。従って、不揮発性メモリ３２の所定の記憶領域にシフト情報テーブル５２を記憶しておく必要がないため、シフト情報テーブル５２の記憶に伴う不揮発性メモリ３２の記憶容量の減少を回避することが可能となる。
【００６８】
＜変形例２＞
上記実施の形態では、連続するシフト位置間でのアドレスのシフト量が固定値（上記の例では６４ページ）である例について述べた。これに対して本変形例では、連続するシフト位置間でのアドレスのシフト量を可変値とする。
【００６９】
図１３は、連続するシフト位置間でのアドレスのシフト量を示す図である。図１３に示した例では、初期位置（シフトナンバーＰ０）から第１シフト位置（シフトナンバーＰ１）へのシフト量は６４ページであり、第１シフト位置から第２シフト位置（シフトナンバーＰ２）へのシフト量は３２ページであり、第２シフト位置から第３シフト位置（シフトナンバーＰ３）へのシフト量は３２ページである。つまり、２回目以降のシフト量が、１回目のシフト量より小さく設定されている。
【００７０】
なお、図示は省略するが、第３シフト位置から左方向に３２ページだけ循環シフトさせた第４シフト位置、第４シフト位置から左方向に３２ページだけ循環シフトさせた第５シフト位置、及び、第５シフト位置から左方向に３２ページだけ循環シフトさせた第６シフト位置を追加することもできる。この場合、第６シフト位置から左方向に３２ページだけ循環シフトさせることにより、初期位置が再設定される。
【００７１】
本変形例に係る不揮発性記憶装置３によれば、シフト量は可変値（上記の例では６４ページ及び３２ページ）である。従って、メモリコントローラ３１が状況に応じてシフト量を可変に設定することにより、リフレッシュ処理の実行回数をさらに削減することが可能となる。
【００７２】
また、本変形例に係る不揮発性記憶装置３によれば、メモリコントローラ３１は、２回目以降のシフト量を、１回目のシフト量より小さく設定する。１回目のリフレッシュ処理はリードディスターブに起因する可能性が高いため、１回目のリフレッシュ処理では比較的大きいシフト量を設定することにより、リードディスターブに起因するエラーの再発を効果的に防止することができる。また、２回目以降のリフレッシュ処理はデータリテンションに起因する可能性が高いため、２回目以降のリフレッシュ処理では比較的小さいシフト量を設定することにより、一巡するまでのシフト回数を多く確保することができる。
【００７３】
＜変形例３＞
上記実施の形態では、読出対象ブロックのシフト位置が最終位置（第３シフト位置）である場合には、書込対象ブロックのシフト位置を無条件で初期位置に再設定（Ｗｒａｐ）する例について述べた。これに対して本変形例では、読出対象ブロックのシフト位置が最終位置である場合には、読出対象ブロックのデータ読み出し回数に応じてＷｒａｐを許可又は禁止する。
【００７４】
図１４は、不揮発性記憶装置３の構成を示す図である。図２に示した構成に加えて、ＳＲＡＭ４５にリードカウンタ７０が格納されている。ＣＰＵ４２は、各々のブロックＢ毎にデータ読み出し回数をカウントし、各ブロックＢのデータ読み出し回数をカウンタ値としてリードカウンタ７０に格納する。なお、あるブロックＢについてリフレッシュ処理が行われた場合には、そのブロックＢについては、リフレッシュ処理後のデータ読み出し回数がカウントされる。
【００７５】
ＣＰＵ４２は、シフト位置が最終位置であるブロックＢを読出対象とするリフレッシュ処理を実行する場合には、リードカウンタ７０を参照することによって、そのブロックＢに関するデータ読み出し回数を取得する。そして、ＣＰＵ４２は、データ読み出し回数が所定の閾値未満である場合には、アドレス設定部６４に対して、書込対象ブロックのシフト位置として初期位置への再設定（Ｗｒａｐ）を許可し、一方、データ読み出し回数が上記閾値以上である場合には、アドレス設定部６４に対してＷｒａｐを禁止する。アドレス設定部６４は、Ｗｒａｐが禁止された場合には、書込対象ブロックのシフト位置として、初期位置及び最終シフト位置を除く任意のシフト位置（例えば一つ前の第２シフト位置）を設定する。
【００７６】
なお、以上の説明ではＣＰＵ４２はブロックＢ毎にデータ読み出し回数をカウントしたが、ページＰ毎に読み出し回数をカウントしても良い。この場合、ＣＰＵ４２は、リフレッシュ処理を実行する要因となったエラーページに関する読み出し回数を、リードカウンタ７０から取得する。そして、当該データ読み出し回数が所定の閾値未満である場合にはアドレス設定部６４に対してＷｒａｐを許可し、一方、当該データ読み出し回数が上記閾値以上である場合にはアドレス設定部６４に対してＷｒａｐを禁止する。
【００７７】
本変形例に係る不揮発性記憶装置３によれば、アドレス設定部６４は、リードカウンタ７０のカウンタ値が所定の閾値未満である場合には、書込対象ブロックのシフト位置として初期位置への再設定（Ｗｒａｐ）を行う。カウンタ値が閾値未満である場合にはリードディスターブに起因するエラーである可能性が低いため、この場合にはＷｒａｐを許可することにより、二巡目以降も同様の処理を繰り返し実行することができる。一方、カウンタ値が閾値以上である場合にはリードディスターブに起因するエラーである可能性が高いため、この場合にはＷｒａｐを禁止することにより、リードディスターブの影響を最も受けやすい初期位置に再設定される事態を回避することができる。
【符号の説明】
【００７８】
３  不揮発性記憶装置
３１  メモリコントローラ
３２  不揮発性メモリ
４２  ＣＰＵ
４５  ＳＲＡＭ
４６  データバッファ
４７  ＥＣＣ回路
５０  管理テーブル
５１  アドレス変換テーブル
５２  シフト情報テーブル
６１  ブロック特定部
６２  読出処理部
６３  書込処理部
６４  アドレス設定部
６５  テーブル作成部
７０  リードカウンタ
【図１】
2019192316.tif 000003
【図２】
2019192316.tif 000004
【図３】
2019192316.tif 000005
【図４】
2019192316.tif 000006
【図５】
2019192316.tif 000007
【図６】
2019192316.tif 000008
【図７】
2019192316.tif 000009
【図８】
2019192316.tif 000010
【図９】
2019192316.tif 000011
【図１０】
2019192316.tif 000012
【図１１】
2019192316.tif 000013
【図１２】
2019192316.tif 000014
【図１３】
2019192316.tif 000015
【図１４】
2019192316.tif 000016