(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038908
(43)【公開日】2024-03-21
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
G11C 16/08 20060101AFI20240313BHJP
G06F 12/00 20060101ALI20240313BHJP
G11C 7/04 20060101ALI20240313BHJP
G11C 11/56 20060101ALI20240313BHJP
【FI】
G11C16/08 120
G06F12/00 597U
G11C7/04
G11C11/56 220
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022143276
(22)【出願日】2022-09-08
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】武田 奈穂美
(72)【発明者】
【氏名】白川 政信
【テーマコード(参考)】
5B160
5B225
【Fターム(参考)】
5B160AA06
5B160AA14
5B225BA19
5B225CA21
5B225DA10
5B225EA05
5B225EG16
5B225FA01
(57)【要約】
【課題】読出し処理のレイテンシの増加を抑制する。
【解決手段】実施形態に係るメモリシステムは、第1~第5サブメモリ領域とコントローラとを備え、コントローラは、第1処理において第1サブメモリ領域に対応する第1電圧を算出し、第2処理において第4サブメモリ領域に対応する第2電圧を算出し、第1処理の前に、第1、第2、第4、及び第5サブメモリ領域の各々からデータを読出す際に第3電圧を用い、第3サブメモリ領域からデータを読出す際に、第3サブメモリ領域に対応する第4電圧を用い、第1処理の後、第2処理の前に、第1サブメモリ領域からデータを読出す際に第1電圧を用い、第2、第4、及び第5サブメモリ領域の各々からデータを読出す際に、第1電圧を用いて算出される第5電圧を用い、第2処理の後、第2及び第5サブメモリ領域の各々からデータを読出す際に、第2電圧を用いて算出される第6電圧を用いるように構成される。
【選択図】
図5
【特許請求の範囲】
【請求項1】
第1サブメモリ領域、第2サブメモリ領域、第3サブメモリ領域、第4サブメモリ領域、及び第5サブメモリ領域を含む不揮発性メモリと、
コントローラと、
を備え、
前記第1サブメモリ領域、前記第2サブメモリ領域、前記第3サブメモリ領域、前記第4サブメモリ領域、及び前記第5サブメモリ領域の各々は複数のメモリセルを含み、
前記コントローラは、
第1処理において、前記第1サブメモリ領域に対応付けられる第1電圧を算出し、
前記第1処理の後の第2処理において、前記第4サブメモリ領域に対応付けられる第2電圧を算出し、
前記第1処理の前において、前記第1サブメモリ領域、前記第2サブメモリ領域、前記第4サブメモリ領域、及び前記第5サブメモリ領域の各々からデータを読出す際に、第3電圧を共通電圧として用い、前記第3サブメモリ領域からデータを読出す際に、前記第3サブメモリ領域に対応付けられる第4電圧を用い、
前記第1処理の後、前記第2処理の前において、前記第1サブメモリ領域からデータを読出す際に、前記第1電圧を用い、前記第2サブメモリ領域、前記第4サブメモリ領域、及び前記第5サブメモリ領域の各々からデータを読出す際に、前記第1電圧を用いて算出される第5電圧を前記共通電圧として用い、前記第3サブメモリ領域からデータを読出す際に、前記第4電圧を用い、
前記第2処理の後、前記第1サブメモリ領域からデータを読出す際に、前記第1電圧を用い、前記第2サブメモリ領域及び前記第5サブメモリ領域の各々からデータを読出す際に、前記第2電圧を用いて算出される第6電圧を前記共通電圧として用い、前記第3サブメモリ領域からデータを読出す際に、前記第4電圧を用い、前記第4サブメモリ領域からデータを読出す際に、前記第2電圧を用いる、
ように構成されるメモリシステム。
【請求項2】
前記第1処理は、第1条件が満たされる際に実行され、
前記第1条件は、
前記第1サブメモリ領域にデータが書込まれたことと、
前記第1サブメモリ領域にデータが書込まれた後、第1時間が経過すること、温度が第1温度以上になること、及び前記第1サブメモリ領域からデータを読出した際のフェイルビット数が第1値以上であること、のうち少なくともいずれか1つと、
を含む、
請求項1記載のメモリシステム。
【請求項3】
外部からの指示によらない処理において、前記第1条件が満たされるかどうか判定される、
請求項2記載のメモリシステム。
【請求項4】
外部からの読出し処理の指示に基づいて、前記第1条件が満たされるかどうか判定される、
請求項2記載のメモリシステム。
【請求項5】
第1サブメモリ領域、第2サブメモリ領域、第3サブメモリ領域、第4サブメモリ領域、第5サブメモリ領域、及び第6サブメモリ領域を含む不揮発性メモリと、
コントローラと、
を備え、
前記第1サブメモリ領域、前記第2サブメモリ領域、前記第3サブメモリ領域、前記第4サブメモリ領域、前記第5サブメモリ領域、及び前記第6サブメモリ領域の各々は複数のメモリセルを含み、
前記コントローラは、
第1処理において、前記第1サブメモリ領域に対応付けられる第1電圧を算出し、
第1処理の前において、前記第1サブメモリ領域、前記第2サブメモリ領域、及び前記第4サブメモリ領域の各々からデータを読出す際に、第2電圧を第1共通電圧として用い、前記第3サブメモリ領域からデータを読出す際に、前記第3サブメモリ領域に対応付けられる第3電圧を用い、前記第5サブメモリ領域、及び前記第6サブメモリ領域の各々からデータを読出す際に、第4電圧を第2共通電圧として用い、
第1処理において第1条件が満たされる場合に、前記第1処理の後、前記第1サブメモリ領域からデータを読出す際に、前記第1電圧を用い、前記第2サブメモリ領域、及び前記第4サブメモリ領域の各々からデータを読出す際に、前記第1電圧を用いて算出される第5電圧を前記第1共通電圧として用い、前記第3サブメモリ領域からデータを読出す際に、前記第3電圧を用い、前記第5サブメモリ領域、及び前記第6サブメモリ領域の各々からデータを読出す際に、前記第4電圧を用い、
第1処理において第1条件が満たされない場合に、前記第1処理の後、前記第1サブメモリ領域からデータを読出す際に、前記第1電圧を用い、前記第2サブメモリ領域、及び前記第4サブメモリ領域の各々からデータを読出す際に、前記第2電圧を前記第1共通電圧として用い、前記第3サブメモリ領域からデータを読出す際に、前記第3電圧を用い、前記第5サブメモリ領域、及び前記第6サブメモリ領域の各々からデータを読出す際に、前記第1電圧を用いて算出される第6電圧を前記第2共通電圧として用いる、
ように構成されるメモリシステム。
【請求項6】
前記第1処理は、第2条件が満たされる際に実行され、
前記第2条件は、
前記第1サブメモリ領域にデータが書込まれたことと、
前記第1サブメモリ領域にデータが書込まれた後、第1時間が経過すること、温度が第1温度以上になること、及び前記第1サブメモリ領域からデータを読出した際のフェイルビット数が第1値以上であること、のうち少なくともいずれか1つと、
を含む、
請求項5記載のメモリシステム。
【請求項7】
前記第1条件は、
前記第1サブメモリ領域の位置に関する条件、
前記第1サブメモリ領域にデータが書込まれた際の温度に関する条件、
前記第1サブメモリ領域にデータが書込まれた際のステータスに関する条件、及び
前記第5電圧又は前記第6電圧が第1の電圧範囲にあること、
のうち少なくともいずれか1つ、
を含む、
請求項6記載のメモリシステム。
【請求項8】
外部からの指示によらない処理において、前記第2条件が満たされるかどうか判定される、
請求項6又は請求項7記載のメモリシステム。
【請求項9】
外部からの読出し処理の指示に基づいて、前記第2条件が満たされるかどうか判定される、
請求項6又は請求項7記載のメモリシステム。
【請求項10】
第1メモリ領域及び第2メモリ領域を含む不揮発性メモリと、
コントローラと、
を備え、
前記第1メモリ領域及び前記第2メモリ領域の各々は複数のサブメモリ領域を含み、前記複数のサブメモリ領域の各々は複数のメモリセルを含み、
前記コントローラは、
前記第1メモリ領域に含まれる前記複数のサブメモリ領域の各々からデータを読出す際に、前記第1メモリ領域に対応付けられる第1共通電圧を用い、
前記第2メモリ領域に含まれる前記複数のサブメモリ領域の各々からデータを読出す際に、前記第2メモリ領域に対応付けられ、かつ前記第1共通電圧とは独立な第2共通電圧を用いる、
ように構成されるメモリシステム。
【請求項11】
前記コントローラは、前記第1メモリ領域内の第1サブメモリ領域が第1条件を満たすと、
前記第1サブメモリ領域に対応づけられる第1電圧を算出し、
前記第1電圧に基づいて第2電圧を算出し、
前記第2電圧を前記第1共通電圧に適用する
ように構成される請求項10記載のメモリシステム。
【請求項12】
前記コントローラは、前記第2電圧を前記第1共通電圧に適用した後、
前記第1メモリ領域に含まれる前記第1サブメモリ領域を除く複数のサブメモリ領域の各々からデータを読み出す際に、前記第1共通電圧を用い、
前記第1サブメモリ領域からデータを読出す際に、前記第1電圧を用いる
ように構成される請求項11記載のメモリシステム。
【請求項13】
前記第1条件は、前記第1サブメモリ領域にデータが書込まれた際の温度が所定の温度未満であることを含む、
請求項11記載のメモリシステム。
【請求項14】
前記第1条件は、前記第1サブメモリ領域にデータが書込まれた際に、これまでの前記第1サブメモリ領域へのデータの書込み処理の実行回数が所定の数未満であることを含む、
請求項11記載のメモリシステム。
【請求項15】
前記コントローラは、前記第1メモリ領域内の第2サブメモリ領域が第2条件を満たすと、
前記第2サブメモリ領域からデータを読出す際に、前記第1メモリ領域に対応付けられる第3共通電圧を用いる、
ように構成される請求項10記載のメモリシステム。
【請求項16】
前記コントローラは、前記第1メモリ領域内の第3サブメモリ領域が前記第2条件を満たすと、
前記第3サブメモリ領域に対応づけられる第3電圧を算出し、
前記第3電圧に基づいて第4電圧を算出し、
前記第4電圧を前記第3共通電圧に適用する
ように構成される請求項15記載のメモリシステム。
【請求項17】
前記コントローラは、前記第1メモリ領域に含まれる前記複数のサブメモリ領域のうち第4サブメモリ領域が第3条件を満たすと、
前記第4サブメモリ領域に対応づけられる第5電圧を算出し、
前記第4サブメモリ領域からデータを読出す際に、前記第5電圧を用い、
前記第1メモリ領域に含まれる前記第4サブメモリ領域を除く複数のサブメモリ領域の各々からデータを読み出す際に、前記第1共通電圧を用いる、
ように構成される請求項10記載のメモリシステム。
【請求項18】
外部からの指示によらない内部処理において、前記第4サブメモリ領域が前記第3条件を満たすかどうか判定される、
請求項17記載のメモリシステム。
【請求項19】
外部からの読出し処理の指示に基づいて、前記第4サブメモリ領域が前記第3条件を満たすかどうか判定される、
請求項17記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、メモリシステムに関する。
【背景技術】
【0002】
データを不揮発に記憶することが可能な不揮発性メモリと、当該不揮発性メモリを制御するコントローラと、を備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-0190150号公報
【特許文献2】米国特許第11250918号明細書
【特許文献3】米国特許第11120882号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
読出し処理のレイテンシの増加を抑制する。
【課題を解決するための手段】
【0005】
実施形態に係るメモリシステムは、第1サブメモリ領域、第2サブメモリ領域、第3サブメモリ領域、第4サブメモリ領域、及び第5サブメモリ領域を含む不揮発性メモリと、コントローラと、を備え、上記第1サブメモリ領域、上記第2サブメモリ領域、上記第3サブメモリ領域、上記第4サブメモリ領域、及び上記第5サブメモリ領域の各々は複数のメモリセルを含み、上記コントローラは、第1処理において、上記第1サブメモリ領域に対応付けられる第1電圧を算出し、上記第1処理の後の第2処理において、上記第4サブメモリ領域に対応付けられる第2電圧を算出し、上記第1処理の前において、上記第1サブメモリ領域、上記第2サブメモリ領域、上記第4サブメモリ領域、及び上記第5サブメモリ領域の各々からデータを読出す際に、第3電圧を共通電圧として用い、上記第3サブメモリ領域からデータを読出す際に、上記第3サブメモリ領域に対応付けられる第4電圧を用い、上記第1処理の後、上記第2処理の前において、上記第1サブメモリ領域からデータを読出す際に、上記第1電圧を用い、上記第2サブメモリ領域、上記第4サブメモリ領域、及び上記第5サブメモリ領域の各々からデータを読出す際に、上記第1電圧を用いて算出される第5電圧を上記共通電圧として用い、上記第3サブメモリ領域からデータを読出す際に、上記第4電圧を用い、上記第2処理の後、上記第1サブメモリ領域からデータを読出す際に、上記第1電圧を用い、上記第2サブメモリ領域及び上記第5サブメモリ領域の各々からデータを読出す際に、上記第2電圧を用いて算出される第6電圧を上記共通電圧として用い、上記第3サブメモリ領域からデータを読出す際に、上記第4電圧を用い、上記第4サブメモリ領域からデータを読出す際に、上記第2電圧を用いる。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るメモリシステム及びホスト機器を含むメモリシステムの構成の一例を示すブロック図。
【
図2】第1実施形態に係る不揮発性メモリの構成の一例を説明するためのブロック図。
【
図3】第1実施形態に係る不揮発性メモリの備えるメモリセルアレイの回路構成の一例を示す回路図。
【
図4】第1実施形態に係るメモリシステムにおけるメモリセルトランジスタの閾値電圧分布の一例を示す模式図。
【
図5】第1実施形態に係るメモリシステムの揮発性メモリが記憶するブロック毎の読出し電圧情報の一例を示す図。
【
図6】第1実施形態に係るメモリシステムの揮発性メモリが記憶する共通読出し電圧情報の一例を示す図。
【
図7】第1実施形態の第1動作例に係る第1処理を説明するためのフローチャート。
【
図8】第1実施形態の第1動作例に係る第2処理を説明するためのフローチャート。
【
図9】第1実施形態の第1動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図。
【
図10】第1実施形態の第1動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図。
【
図11】第1実施形態の第1動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図。
【
図12】第1実施形態の第1動作例に係るトラッキングリード処理の一例を説明するための模式図。
【
図13】第1実施形態の第1動作例に係る補正量算出処理の一例を説明するための模式図。
【
図14】第1実施形態の第2動作例に係る第2処理を説明するためのフローチャート。
【
図15】第1実施形態の第2動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図。
【
図16】第1実施形態の第3動作例に係る読出し処理を説明するためのフローチャート。
【
図17】第1実施形態の第1変形例に係るメモリシステムの揮発性メモリが記憶するブロック毎の読出し電圧情報の一例を示す図。
【
図18】第1実施形態の第1変形例の第1動作例に係る書込み処理を含む全体動作を説明するためのフローチャート。
【
図19】第1実施形態の第1変形例の第1動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図。
【
図20】第1実施形態の第1変形例の第2動作例に係る書込み処理を含む全体動作を説明するためのフローチャート。
【
図21】第1実施形態の第1変形例の第2動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図。
【
図22】第1実施形態の第2変形例に係るメモリシステムの揮発性メモリが記憶するブロック毎の読出し電圧情報の一例を示す図。
【
図23】第1実施形態の第2変形例の第1動作例に係るメモリシステムにおいて、複数の共通読出し電圧の識別子のうち、ブロックに対応する共通読出し電圧の識別子を付与する動作を説明するためのフローチャート。
【
図24】第1実施形態の第2変形例の第1動作例における読出し電圧情報の更新の一例を説明するための図。
【
図25】第1実施形態の第2変形例の第2動作例に係る第1処理を説明するためのフローチャート。
【
図26】第1実施形態の第2変形例の第2動作例に係る第2処理を説明するためのフローチャート。
【
図27】第1実施形態の第2変形例の第2動作例における読出し電圧情報の更新の一例を説明するための図。
【
図28】第2実施形態に係る不揮発性メモリの構成の一例を説明するためのブロック図。
【
図29】第2実施形態の動作例に係るメモリシステムにおけるパトロール処理を説明するためのフローチャート。
【
図30】第2実施形態に係る読出し電圧の更新処理を説明するためのフローチャート。
【
図31】第2実施形態の第1変形例に係るメモリシステムにおけるパトロール処理を説明するためのフローチャート。
【
図32】第2実施形態の第1変形例に係るメモリシステムの読出し電圧の更新処理を含む一連の動作を説明するためのフローチャート。
【
図33】第2実施形態の第2変形例に係るメモリシステムを用いたパトロール処理における読出し電圧の更新処理のリストに加える処理を示すフローチャート。
【
図34】第2実施形態の第2変形例に係るメモリシステムの読出し電圧の更新処理を含む一連の動作を説明するためのフローチャート。
【
図35】第2実施形態の第3変形例に係るメモリシステムを用いたホスト読出し処理を説明するためのフローチャート。
【
図36】第2実施形態の第4変形例に係るメモリシステムを用いたホスト読出し処理を説明するためのフローチャート。
【
図37】第2実施形態の第5変形例に係るメモリシステムを用いたパトロール処理における読出し電圧の更新処理のリストに加える処理を示すフローチャート。
【発明を実施するための形態】
【0007】
以下に、実施形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【0008】
なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。同様の構成を有する要素同士を特に区別する場合、同一符号の末尾に、互いに異なる文字又は数字を付加する場合がある。
【0009】
1 第1実施形態
1.1 構成
以下では、不揮発性メモリを含むメモリシステムについて説明する。
【0010】
1.1.1 メモリシステム
まず、メモリシステムを含む構成について、
図1を用いて説明する。
図1は、第1実施形態に係るメモリシステム及びホスト機器を含むメモリシステムの構成の一例を示すブロック図である。
【0011】
メモリシステム1は、不揮発性メモリ10、揮発性メモリ20、及びコントローラ30を備える。不揮発性メモリ10、揮発性メモリ20、及びコントローラ30は、例えばこれらの組み合わせにより一つの半導体装置を構成してもよい。メモリシステム1は、例えば、SSD(solid state drive)やSDTMカードである。メモリシステム1は、外部のホスト機器2に接続される。メモリシステム1は、ホスト機器2からのデータを記憶する。また、メモリシステム1は、データをホスト機器2に読出す。
【0012】
不揮発性メモリ10は、例えば、半導体メモリである。半導体メモリは、例えば、NAND型フラッシュメモリである。不揮発性メモリ10は、チップChip0~ChipNを含む。チップChip0~ChipNの各々は、複数のメモリセルを含む。不揮発性メモリ10は、ホスト機器2から書込みを指示されたデータを不揮発に記憶する。また、不揮発性メモリ10は、ホスト機器2からの指示に基づいた読出し処理(ホスト読出し処理)により読出されたデータを、コントローラ30を介してホスト機器2に出力する。なお、以下の説明において、チップChip0~ChipNを区別しない場合、各チップChip0~ChipNを単にチップChipと呼ぶ。
【0013】
揮発性メモリ20は、例えばDRAM(Dynamic random access memory)である。揮発性メモリ20は、不揮発性メモリ10を管理するためのファームウェアや、各種の管理情報を記憶する。揮発性メモリ20は、例えば読出し電圧情報21を記憶する。読出し電圧情報21は、読出し処理を実行するための情報である。読出し電圧情報21は、読出し処理を実行する際に用いられる読出し電圧の種類を示す読出し電圧の識別子、及び当該読出し電圧の識別子に対応する読出し電圧に関する情報を含む。読出し電圧情報21の詳細については、後述する。
【0014】
コントローラ30は、例えば、SoC(system-on-a-chip)のような集積回路で構成される。コントローラ30は、ホスト機器2から命令を受取る。コントローラ30は、当該受取った命令に基づいて不揮発性メモリ10を制御する。具体的には、コントローラ30は、ホスト機器2から受取った書込み命令に基づいて、書込みを命令されたデータを不揮発性メモリ10に書込む。また、コントローラ30は、ホスト読出し処理において、ホスト機器2から受取った読出し命令に基づいて、ホスト機器2から読出しを命令されたデータを不揮発性メモリ10から読出してホスト機器2に送信する。
【0015】
1.1.2 コントローラ
コントローラ30は、プロセッサ(CPU)31、バッファメモリ32、ホストインタフェース回路(ホストI/F)33、ECC回路34、NANDインタフェース回路(NAND I/F)35、DRAMインタフェース回路(DRAM I/F)36、読出し電圧選択部37、及び読出し電圧算出部38を含む。コントローラ30内の各部の機能は、専用ハードウェア、プログラム(ファームウェア)を実行するプロセッサ、またはこれらの組み合わせにより実現され得る。
【0016】
プロセッサ31は、コントローラ30内のROM(Read only memory)に記憶されたプログラムを用いて、コントローラ30全体の動作を実行する。プロセッサ31は、例えば、不揮発性メモリ10に書込み処理、読出し処理、及び消去処理を含む各種処理の実行を指示するためのコマンドを発行する。
【0017】
バッファメモリ32は、例えばSRAM(Static random access memory)である。バッファメモリ32は、コントローラ30が不揮発性メモリ10から読出したデータや、ホスト機器2から受信した書込みデータ等を一時的に記憶する。
【0018】
ホストインタフェース回路33は、ホストバスを介してホスト機器2と接続される。ホストインタフェース回路33は、コントローラ30とホスト機器2との間の通信を司る。ホストバスは、例えば、SDTMインタフェース、SAS(Serial attached SCSI(small computer system interface))、SATA(Serial ATA(advanced technology attachment))、又はPCIe(Peripheral component interconnect express)等に準拠したバスである。
【0019】
ECC回路34は、不揮発性メモリ10に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。より具体的には、ECC回路34は、データの書込み時には誤り訂正符号を生成して、誤り訂正符号を書込みデータに付与する。誤り訂正符号は、例えばBCH(Bose-Chaudhuri-Hocquenghem)符号やRS(Reed-Solomon)符号等の硬判定復号符号、又はLDPC(Low-Density Parity-Check)符号等の軟判定復号符号である。また、ECC回路34は、データの読出し処理時には誤り訂正符号を復号し、誤りビットの有無を検出する。ECC回路34は、誤りビットが検出された際に、その誤りビットの位置を特定し、誤りを訂正する。
【0020】
NANDインタフェース回路35は、NANDバスによって不揮発性メモリ10と接続される。NANDインタフェース回路35は、NANDインタフェース規格に基づいて通信を行う。NANDインタフェース回路35は、不揮発性メモリ10内のチップChip0~ChipNの各々と独立に通信を行う。NANDインタフェース回路35は、不揮発性メモリ10との通信を司る。NANDインタフェース回路35は、プロセッサ31の指示により、データ、コマンド、及びアドレスを不揮発性メモリ10に送信する。コマンドは、不揮発性メモリ10全体を制御するための信号である。データは、読出しデータ及び書込みデータを含む。
【0021】
DRAMインタフェース回路36は、揮発性メモリ20に接続される。DRAMインタフェース回路36は、コントローラ30と揮発性メモリ20との間の通信を司る。DRAMインタフェース回路36は、DRAMインタフェース規格に基づいて通信を行う。
【0022】
読出し電圧選択部37は、読出し電圧情報21に基づいて、読出し電圧の識別子を抽出する。読出し電圧選択部37は、読出し電圧として、当該抽出した読出し電圧の識別子に応じた読出し電圧を適用する。
【0023】
読出し電圧算出部38は、読出し電圧情報21内の読出し電圧の識別子を付与する。読出し電圧算出部38は、読出し電圧の識別子に対応する読出し電圧を更新する。読出し電圧算出部38は、当該読出し電圧を更新する際に、読出し電圧を算出する。
【0024】
1.1.3 チップ
次に、不揮発性メモリ10内のチップChipの構成について、
図2を用いて説明する。
図2は、第1実施形態に係る不揮発性メモリの構成の一例を説明するためのブロック図である。
図2では、チップChip0の構成の例が示される。なお、チップChip1~ChipNは、チップChip0と同等の構成を有する。
【0025】
チップChipは、例えばメモリセルアレイ11A及び11B、コマンドレジスタ12、アドレスレジスタ13、シーケンサ14、ドライバモジュール15、ロウデコーダモジュール16A及び16B、並びにセンスアンプモジュール17A及び17Bを備える。なお、以下の説明において、メモリセルアレイ11A及び11Bを区別しない場合、各メモリセルアレイ11A及び11Bを単にメモリセルアレイ11と呼ぶ。また、ロウデコーダモジュール16A及び16Bを区別しない場合、各ロウデコーダモジュール16A及び16Bを単にロウデコーダモジュール16と呼ぶ。また、センスアンプモジュール17A及び17Bを区別しない場合、各センスアンプモジュール17A及び17Bを単にセンスアンプモジュール17と呼ぶ。
【0026】
以下の説明では、メモリセルアレイ11A、ロウデコーダモジュール16A、及びセンスアンプモジュール17Aの組をプレーンPLN1と呼ぶ。メモリセルアレイ11B、ロウデコーダモジュール16B、及びセンスアンプモジュール17Bの組をプレーンPLN2と呼ぶ。なお、
図2の例では、チップChipが2つのプレーンPLN1及びPLN2を含む場合を示したが、これらに限られない。各Chipは、1つのプレーンPLN又は3つ以上のプレーンPLNを備えてもよい。
【0027】
メモリセルアレイ11A及び11Bはそれぞれ、データを不揮発に記憶する。メモリセルアレイ11A及び11Bのそれぞれには、複数のビット線及び複数のワード線が設けられる。メモリセルアレイ11A及び11Bのそれぞれは、ブロックBLK0~BLKnを含む。ブロックBLK0~BLKnの各々は、複数のメモリセルの集合である。ブロックBLK0~BLKnの各々は、例えばデータの消去単位として使用される。各メモリセルは、1本のビット線と1本のワード線とに関連付けられる。メモリセルアレイ11の詳細については後述する。なお、以下の説明において、ブロックBLK0~BLKnを区別しない場合、ブロックBLK0~BLKnの各々を単にブロックBLKと呼ぶ。
【0028】
コマンドレジスタ12は、チップChipがコントローラ30から受信したコマンドCMDを記憶する。コマンドCMDは、例えばシーケンサ14に読出し処理、書込み処理、及び消去処理等を実行させる命令を含む。
【0029】
アドレスレジスタ13は、チップChipがコントローラ30から受信したアドレスADDを記憶する。アドレスADDは、例えばブロックアドレス及びカラムアドレスを含む。アドレスレジスタ13は、記憶したアドレスADDを、ドライバモジュール15、ロウデコーダモジュール16、及びセンスアンプモジュール17に転送する。
【0030】
シーケンサ14は、チップChip全体の動作を制御する。シーケンサ14は、プレーンPLN1とプレーンPLN2とを独立に制御する。例えば、シーケンサ14は、コマンドレジスタ12に記憶されたコマンドCMDに基づいて、プレーンPLN1及びPLN2に対する読出し処理、書込み処理、及び消去処理を実行する。
【0031】
ドライバモジュール15は、シーケンサ14の指示に基づき、読出し処理、書込み処理、及び消去処理等に必要な電圧を生成する。ドライバモジュール15は、生成した電圧をメモリセルアレイ11A及び11B、ロウデコーダモジュール16A及び16B、並びにセンスアンプモジュール17A及び17Bに供給する。
【0032】
ロウデコーダモジュール16A及び16Bはそれぞれ、メモリセルアレイ11A及び11Bに対応して設けられる。各ロウデコーダモジュール16は、アドレスレジスタ13に記憶されたブロックアドレスに基づいて、対応するメモリセルアレイ11内の1つのブロックBLKを選択する。当該選択されたブロックBLKには、各ロウデコーダモジュール16を介して、ドライバモジュール15によって生成された電圧が供給される。
【0033】
センスアンプモジュール17A及び17Bはそれぞれ、メモリセルアレイ11A及び11Bに対応して設けられる。各センスアンプモジュール17は、読出し処理において、メモリセルからビット線に読出された読出しデータをセンスする。各センスアンプモジュール17は、当該センスした読出しデータをコントローラ30に転送する。各センスアンプモジュール17は、書込み処理において、ビット線を介して書き込まれる書込みデータをメモリセルに転送する。また、各センスアンプモジュール17は、アドレスレジスタ13からカラムアドレスを受け取る。各センスアンプモジュール17は、当該受け取ったカラムアドレスに基づくカラムのデータを出力する。
【0034】
不揮発性メモリ10とコントローラ30との間の通信は、例えばNANDインタフェース規格に基づいて行われる。NANDインタフェース規格に基づく各種信号は、例えば信号I/O、CEn、CLE、ALE、WEn、REn、WPn、及びRBnを含む。
【0035】
信号I/Oは、例えば8ビット幅の信号である。信号I/Oは、コントローラ30と不揮発性メモリ10との間で送受信される。信号I/Oは、アドレスADD、コマンドCMD、及びデータDATを含む。
【0036】
信号CEnは、チップイネーブル(Chip Enable)信号である。信号CEnは、不揮発性メモリ10をイネーブルにするための信号である。信号CLEは、コマンドラッチイネーブル(Command Latch Enable)信号である。信号CLEは、信号CLEが“H(High)”レベルである間に不揮発性メモリ10に送信される信号I/Oがコマンドであることを不揮発性メモリ10に通知する。信号ALEは、アドレスラッチイネーブル(Address Latch Enable)信号である。信号ALEは、信号ALEが“H”レベルである間に不揮発性メモリ10に送信される信号I/Oがアドレスであることを不揮発性メモリ10に通知する。信号WEnは、ライトイネーブル(Write Enable)信号である。信号WEnは、不揮発性メモリ10に信号I/Oを取り込むことを指示する。信号REnは、リードイネーブル(Read Enable)信号である。信号REnは、不揮発性メモリ10に信号I/Oを出力することを指示する。信号RBnは、レディビジー(Ready Busy)信号である。信号RBnは、不揮発性メモリ10がレディ状態であるか、ビジー状態であるかを示す。レディ状態は、外部からの命令を受け付ける状態である。ビジー状態は、外部からの命令を受け付けない状態である。
【0037】
1.1.4 メモリセルアレイ
次に、第1実施形態に係る不揮発性メモリ10が備えるメモリセルアレイ11の構成について
図3を用いて説明する。
図3は、第1実施形態に係る不揮発性メモリの備えるメモリセルアレイの回路構成の一例を示す回路図である。
図3では、メモリセルアレイ11のうち、1つのブロックBLKの回路図の例が示される。
【0038】
ブロックBLKは、例えば4つのストリングユニットSU0~SU3を含む。なお、
図3において、ストリングユニットSU2及びSU3の構成は簡略化して示される。なお、以下の説明において、ストリングユニットSU0~SU3を区別しない場合、各ストリングユニットSU0~SU3を単にストリングユニットSUと呼ぶ。
【0039】
各ストリングユニットSUは、複数のNANDストリングNSを含む。
【0040】
各NANDストリングNSは、例えば16個のメモリセルトランジスタMT(MT0~MT15)と、選択トランジスタST1及びST2とを備える。なお、NANDストリングNSあたりのメモリセルトランジスタMTの数は限定されるものではない。各メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各NANDストリングNSにおいて、各メモリセルトランジスタMTは、選択トランジスタST1及びST2の間に、直列接続される。
【0041】
各ブロックBLK内において、ストリングユニットSU0~SU3の選択トランジスタST1のゲートはそれぞれ、選択ゲート線SGD0~SGD3に接続される。なお、以下の説明において、選択ゲート線SGD0~SGD3を区別しない場合、各選択ゲート線SGD0~SGD3を単に選択ゲート線SGDと呼ぶ。各ブロックBLK内の全てのストリングユニットSUの選択トランジスタST2のゲートは、選択ゲート線SGSに共通接続される。同一のブロックBLK内のメモリセルトランジスタMT0~MT15の制御ゲートは、それぞれワード線WL0~WL15に接続される。すなわち、同じアドレスのワード線WLは、同一のブロックBLK内の全てのストリングユニットSUに共通接続されており、選択ゲート線SGSは、同一のブロックBLK内の全てのストリングユニットSUに共通接続される。一方、選択ゲート線SGDは、同一のブロックBLK内のストリングユニットSUの1つのみに接続される。
【0042】
また、メモリセルアレイ11内でマトリクス状に配置されたNANDストリングNSのうち、同一行にあるNANDストリングNSの選択トランジスタST1の他端は、M本のビット線BL(BL0~BL(M-1))のいずれかに接続される。Mは2以上の自然数である。また、ビット線BLは、複数のブロックBLKにわたって、同一列のNANDストリングNSに共通接続される。
【0043】
また、選択トランジスタST2の他端は、ソース線SLに接続される。ソース線SLは、複数のブロックBLKにわたって、複数のNANDストリングNSに共通接続される。
【0044】
上述のとおり、データの消去は、例えば、同一のブロックBLK内にあるメモリセルトランジスタMTに対して一括して行われる。これに対して、データの読出し処理、及び書込み処理は、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通接続された複数のメモリセルトランジスタMTにつき、一括して行われ得る。このような、1つのストリングユニットSU中でワード線WLを共有する複数のメモリセルトランジスタMTの組は、例えば、セルユニットCUと呼ばれる。つまり、セルユニットCUは、一括して、書込み処理又は読出し処理が実行される複数のメモリセルトランジスタMTの組である。例えば、それぞれが1ビットデータを記憶する複数のメモリセルトランジスタMTを含むセルユニットCUの記憶容量が、「1ページデータ」として定義される。1ページデータは、例えば、データの読出し単位として使用される。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて2ページデータ以上の記憶容量を有し得る。
【0045】
1.1.5 データの割付について
第1実施形態に係るメモリシステム1におけるデータの割付について
図4を用いて説明する。
図4は、第1実施形態に係るメモリシステムにおけるメモリセルトランジスタの閾値電圧分布の一例を示す模式図である。
図4に示された閾値電圧分布において、縦軸はメモリセルトランジスタMTの個数に対応し、横軸はメモリセルトランジスタMTの閾値電圧に対応する。なお、
図4及び以降の図面において、メモリセルトランジスタMTの個数、及びメモリセルトランジスタMTの閾値電圧は、それぞれNMTs及びVthで示されることがある。
【0046】
図4に示すように、第1実施形態に係るメモリシステム1では、例えば1個のセルユニットCUに含まれた複数のメモリセルトランジスタMTの閾値電圧によって、閾値電圧分布は8つの状態を含む。
【0047】
以下では、当該8つの状態を、閾値電圧の低い方から順に、状態“S0”、状態“S1”、状態“S2”、状態“S3”、状態“S4”、状態“S5”、状態“S6”、及び状態“S7”と呼ぶ。
【0048】
8つの状態“S0”~“S7”を区別するために、7つの読出し電圧V1、V2、V3、V4、V5、V6、及びV7が用いられる。また、記憶するデータに依らずに全てのメモリセルトランジスタMTをオン状態にするために、電圧VREADが用いられる。読出し電圧V1~V7、及び電圧VREADは、メモリセルトランジスタMTのゲートに印加される。読出し電圧V1~V7、及び電圧VREADの関係は、V1<V2<V3<V4<V5<V6<V7<VREADである。
【0049】
状態“S0”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V1未満である。状態“S1”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V1以上かつ読出し電圧V2未満である。状態“S2”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V2以上かつ読出し電圧V3未満である。状態“S3”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V3以上かつ読出し電圧V4未満である。状態“S4”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V4以上かつ読出し電圧V5未満である。状態“S5”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V5以上かつ読出し電圧V6未満である。状態“S6”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V6以上かつ読出し電圧V7未満である。状態“S7”に含まれるメモリセルトランジスタMTの閾値電圧は、読出し電圧V7以上かつ読出し電圧VREAD未満である。
【0050】
ゲートに読出し電圧V1が印加されると、状態“S0”に属するメモリセルトランジスタMTはオン状態になり、状態“S1”~“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧V2が印加されると、状態“S0”及び“S1”に属するメモリセルトランジスタMTはオン状態になり、状態“S2”~“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧V3が印加されると、状態“S0”~“S2”に属するメモリセルトランジスタMTはオン状態になり、状態“S3”~“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧V4が印加されると、状態“S0”~“S3”に属するメモリセルトランジスタMTはオン状態になり、状態“S4”~“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧V5が印加されると、状態“S0”~“S4”に属するメモリセルトランジスタMTはオン状態になり、状態“S5”~“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧V6が印加されると、状態“S0”~“S5”に属するメモリセルトランジスタMTはオン状態になり、状態“S6”及び“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧V7が印加されると、状態“S0”~“S6”に属するメモリセルトランジスタMTはオン状態になり、状態“S7”に属するメモリセルトランジスタMTはオフ状態になる。また、ゲートに読出し電圧VREADが印加されると、全ての状態“S0”~“S7”に属するメモリセルトランジスタMTがオン状態になる。
【0051】
以上で説明された8つの状態のそれぞれに対して、異なる3ビットデータが割り当てられる。以下に、8つの状態に対するデータの割り付けの一例を羅列する。
【0052】
状態“S0”:“1、1、1(上位ビット、中位ビット、下位ビット)”データ
状態“S1”:“1、1、0”データ
状態“S2”:“1、0、0”データ
状態“S3”:“0、0、0”データ
状態“S4”:“0、1、0”データ
状態“S5”:“0、1、1”データ
状態“S6”:“0、0、1”データ
状態“S7”:“1、0、1”データ。
【0053】
このようにデータが割付けられた場合、下位ビットで構成される1ページデータ(下位ページデータ)は、読出し電圧V1及びV5を用いた読出し処理によって確定する。中位ビットで構成される1ページデータ(中位ページデータ)は、読出し電圧V2、V4、及びV6を用いた読出し処理によって確定する。上位ビットで構成される1ページデータ(上位ページデータ)は、読出し電圧V3及びV7のそれぞれを用いた読出し処理によって確定する。つまり、下位ページデータ、中位ページデータ、及び上位ページデータはそれぞれ、2種類、3種類、及び2種類の読出し電圧を用いた読出し処理によって確定する。
【0054】
1.1.6 読出し電圧情報
次に、第1実施形態に係る揮発性メモリ20が記憶する読出し電圧情報21について説明する。
【0055】
書込み処理直後において、例えば
図4に示すように、閾値電圧分布において状態“S0”~状態“S7”は互いに離間する。したがって、コントローラ30は、読出し電圧として、既定の読出し電圧を適用することで、正しいデータを読出すことができる。ここで、既定の読出し電圧とは、読出し電圧V1~V7の各々についての、書込み直後のデフォルト値である。
【0056】
しかしながら、ディスターブ等の要因により、メモリセルトランジスタMTの閾値電圧は変動する。これにより、最適な読出し電圧は、書込み処理後の時間の経過に応じて、既定の読出し電圧からずれる可能性がある。
【0057】
メモリセルトランジスタMTの閾値電圧の変動の傾向は、例えば不揮発性メモリ10内の物理的な位置に応じて異なり得る。例えば、最適な読出し電圧の既定の読出し電圧からのずれの大きさは、チップChip毎に異なり得る。このため、メモリシステム1は、例えば各Chip内の複数のブロックBLKに共通する上記ずれの傾向に基づいて、当該チップChip内の各ブロックBLKから正しいデータを読出し得る読出し電圧として、当該チップChipの共通読出し電圧を適用するように構成される。
【0058】
また、メモリセルトランジスタMTの閾値電圧の変動の傾向は、同じチップChip内においても、ブロックBLKの物理的な位置や、書込み処理及び消去処理のサイクルが繰り返された回数等に応じて異なり得る。これにより、最適な読出し電圧の既定の読出し電圧からのずれの大きさの傾向が、同じチップChip内の他のブロックBLKと異なるブロックBLKが存在し得る。このことから、メモリシステム1は、各チップChip内の各ブロックBLKに対して個別に算出された最適な読出し電圧として、個別読出し電圧を適用可能に構成される。個別読出し電圧は、例えば最適な読出し電圧の既定の読出し電圧からのずれの大きさの傾向が他のブロックBLKと異なるブロックBLKに対して適用される。
【0059】
読出し処理に際しては、上述の共通読出し電圧又は個別読出し電圧が適宜選択的に適用されることが望ましい。メモリシステム1は、各ブロックBLKに適用される読出し電圧に関する情報を、読出し電圧情報21として管理する。
【0060】
読出し電圧情報21には、共通読出し電圧及び個別読出し電圧に加えて、例えば、読出し電圧の識別子が含まれる。読出し電圧の識別子は、共通読出し電圧、及び個別読出し電圧のどちらが適用されるブロックBLKであるのかを識別するための情報である。読出し電圧の識別子は、各チップChipに対応する共通読出し電圧の識別子、及び個別読出し電圧の識別子を含む。
【0061】
なお、上述のように、最適な読出し電圧は、時間の経過に応じて共通読出し電圧及び個別読出し電圧から変動し得る。このため、メモリシステム1は、共通読出し電圧及び個別読出し電圧を更新可能に構成される。共通読出し電圧を更新する場合、メモリシステム1は、例えば各チップChipに1つ以上含まれる特定のブロックBLKを用いる。以下の説明では、当該特定のブロックBLKを共通読出し電圧更新用ブロックと呼ぶ。
【0062】
読出し電圧情報21には、共通読出し電圧更新用ブロックであるかどうかの情報が更に含まれる。読出し電圧情報21に含まれる情報のうち、読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるどうかの情報は、「ブロック毎の読出し電圧情報」として管理される。読出し電圧情報21に含まれる情報のうち、共通読出し電圧の識別子と共通読出し電圧との対応関係を示す情報は、「共通読出し電圧情報」として管理される。
【0063】
以下では、読出し電圧情報21の具体例について、
図5及び
図6を用いて説明する。
図5は、第1実施形態に係るメモリシステムの揮発性メモリが記憶するブロック毎の読出し電圧情報の一例を示す図である。
図6は、第1実施形態に係るメモリシステムの揮発性メモリが記憶する共通読出し電圧情報の一例を示す図である。
【0064】
図5に示すように、ブロック毎の読出し電圧情報には、読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報が、ブロック毎に記憶される。
【0065】
読出し電圧の識別子は、共通読出し電圧の識別子Icom0~IcomN、及び個別読出し電圧の識別子Iiを含む。書込み処理が実行された各ブロックBLKに対して、共通読出し電圧の識別子Icom0~IcomN、及び個別読出し電圧の識別子Iiのうちいずれかの読出し電圧の識別子が付与される。なお、書込み処理が実行されていない状態のブロックBLKに対しては、読出し電圧の識別子が付与されない。
図5では、読出し電圧の識別子が付与されていないブロックBLKに対して、「-」が示される。
【0066】
共通読出し電圧の識別子Icom0~IcomNはそれぞれ、チップChip0~ChipNに対応付けられる。例えば、共通読出し電圧の識別子Icom0は、チップChip0に含まれるブロックBLKのうち、共通読出し電圧が適用されるブロックBLKに対して付与される。
図5の例では、チップChip0のブロックBLK0、BLK1、及びBLKn…に対して、共通読出し電圧の識別子Icom0が付与される。また、共通読出し電圧の識別子Icom1は、チップChip1に含まれるブロックBLKのうち、共通読出し電圧が適用されるブロックBLKに対して付与される。
図5の例では、チップChip1のブロックBLK0~BLK2、及びBLKn、…に対して、共通読出し電圧の識別子Icom1が付与される。また、図示しないが、各共通読出し電圧の識別子Icom2~IcomNは、共通読出し電圧の識別子Icom0及びIcom1と同等に、各チップChip2~ChipNに含まれるブロックBLKのうち、共通読出し電圧が適用されるブロックBLKに対して付与される。
【0067】
個別読出し電圧の識別子Iiは、チップChipに関わらず、個別読出し電圧が適用されるブロックBLKに対して付与される。
図5の例では、チップChip0のブロックBLK2、及びチップChip1のブロックBLK3、…に対して、個別読出し電圧の識別子Iiが付与される。
【0068】
ブロック毎の読出し電圧情報は、個別読出し電圧の識別子Iiが付与される各ブロックBLKの固有の読出し電圧として、個別読出し電圧を記憶する。例えば、
図5の例において、ブロック毎の読出し電圧情報は、個別読出し電圧の識別子Iiが付与されるチップChip0のブロックBLK2の読出し電圧V1として、個別読出し電圧Vi0-2を記憶する。また、ブロック毎の読出し電圧情報は、個別読出し電圧の識別子Iiが付与されるチップChip1のブロックBLK3の読出し電圧V1として、個別読出し電圧Vi1-3を記憶する。なお、図示しないが、ブロック毎の読出し電圧情報は、個別読出し電圧の識別子Iiが付与される各ブロックBLKの読出し電圧V2~V7としてそれぞれ、読出し電圧V1と同様に、個別読出し電圧を記憶する。なお、個別読出し電圧が算出されていない状態のブロックBLKは、未設定状態とされる。
図5では、個別読出し電圧が算出されていない状態のブロックBLKに対して、「-」が示される。
【0069】
また、ブロック毎の読出し電圧情報において、各ブロックBLKが共通読出し電圧更新用ブロックであるかどうかの情報が記憶される。
図5では、共通読出し電圧更新用ブロックであるブロックBLKに対して、“○”が示される。また、共通読出し電圧更新用ブロックではないブロックBLKに対して、“×”が示される。例えば、
図5の例において、共通読出し電圧更新用ブロックは、チップChip0のブロックBLK0及びBLK3、並びにチップChip1のブロックBLK0及びBLK3、…である。メモリシステム1は、例えばチップChip0のブロックBLK0の閾値電圧分布、又はチップChip0のブロックBLK3の閾値電圧分布に基づいてチップChip0に対応する共通読出し電圧を更新する。また、メモリシステム1は、例えばチップChip1のブロックBLK0の閾値電圧分布、又はチップChip1のブロックBLK3の閾値電圧分布に基づいてチップChip1に対応する共通読出し電圧を更新する。共通読出し電圧の更新については後述する。
【0070】
なお、
図5では、各チップChipに対して2つの共通読出し電圧更新用ブロックのみ示したが、これに限られない。ブロック毎の読出し電圧情報には、例えば、各チップChipにおいて、予め定められた数の複数のブロックBLKが共通読出し電圧更新用ブロックである、と記憶され得る。より具体的には、ブロック毎の読出し電圧情報には、各チップChipにおいて、例えばブロックBLK0、BLK100、BLK200、…が、共通読出し電圧更新用ブロックである、と記憶される。
【0071】
また、共通読出し電圧更新用ブロックは、固定されていなくてもよい。例えば、共通読出し電圧更新用ブロックは、対応するチップにおける書込み処理の実行回数に基づいて変更されてもよい。より具体的には、ブロック毎の読出し電圧情報には、例えば、100番目、200番目、…の書込み処理がそれぞれ実行されるブロックが共通読出し電圧更新用ブロックである、と記憶され得る。また、例えば、共通読出し電圧更新用ブロックは、対応するチップにおける共通読出し電圧更新後の経過時間に基づいて変更されてもよい。より具体的には、ブロック毎の読出し電圧情報には、例えば1日や1ヶ月等の期間毎に、当該期間における最初の書込み処理の実行対象であるブロックBLKが、共通読出し電圧更新用ブロックであると、記憶され得る。
【0072】
また、
図5に示す例では、各チップChip内の一部のブロックBLKが共通読出し電圧更新用ブロックである場合について説明したが、これに限られない。例えば、各チップChip内の全てのブロックBLKが共通読出し電圧更新用ブロックであってもよい。この場合、読出し電圧情報21には、各チップChipにおける共通読出し電圧更新用ブロックであるかどうかの情報が記憶されなくてもよい。
【0073】
次に、共通読出し電圧情報について説明する。
【0074】
同一の共通読出し電圧の識別子が付与されるブロックBLKの読出し電圧は、各読出し電圧V1~V7に関して同一である。例えば、チップChip0において共通読出し電圧の識別子Icom0が付与されるブロックBLK0、BLK1、及びBLKn、…の読出し電圧V1として、共通読出し電圧Vc0が適用される。また、チップChip1において共通読出し電圧の識別子Icom1が付与されるブロックBLK0~BLK2、及びBLKn…の読出し電圧V1として、共通読出し電圧Vc1が適用される。
【0075】
なお、図示しないが、その他の読出し電圧V2~V7に関しても、同様に共通読出し電圧が適用される。
【0076】
また、
図5、
図6、及び上記説明では、揮発性メモリ20が、共通読出し電圧及び個別読出し電圧をそれぞれ記憶する例を示したが、これに限られない。揮発性メモリ20は、例えば共通読出し電圧と既定の読出し電圧との差分、及び個別読出し電圧と既定の読出し電圧との差分を記憶するように構成されてもよい。
【0077】
1.2 動作
第1実施形態に係るメモリシステム1の動作について説明する。
【0078】
1.2.1 第1動作例
第1動作例では、共通読出し電圧更新用ブロックに対して書込み処理が実行される際に、共通読出し電圧を更新しつつ、当該共通読出し電圧更新用ブロックに対する読出し電圧として個別読出し電圧が記憶される動作例が説明される。
【0079】
1.2.1.1 全体動作
第1動作例における書込み処理を含む全体動作について説明する。
【0080】
第1動作例における書込み処理を含む全体動作は、第1処理及び第2処理を含む。第1処理は、書込み対象のブロックBLKに対する書込み処理、及び当該ブロックBLKの読出し電圧として共通読出し電圧を適用する処理を含む。第2処理は、例えば書込み対象のブロックBLKが共通読出し電圧更新用ブロックであり、かつ第2処理の開始条件が満たされる場合に実行される。第2処理の開始条件は、例えば書込み処理から予め定められた時間が経過すること(以下では、時間に関する条件と呼ぶ)を含む。第2処理は、書込み対象のブロックBLKに対する個別読出し電圧の算出処理、及び当該算出処理の結果に基づいて共通読出し電圧を更新する処理を含む。また、第2処理は、当該共通読出し電圧を更新する処理から予め定められた時間が経過した際に実行されてもよい。ここで、予め定められた時間は、例えば30分以上、36時間以内である。この場合、第2処理は、書込み対象とされた共通読出し電圧更新用ブロックに対して、定期的に複数回実行されてもよい。
【0081】
また、第2処理の開始条件は、例えばコントローラ30が、不揮発性メモリ10の温度が予め定められた温度の条件を満たすことを検出したこと(以下では、温度に関する条件と呼ぶ)を含んでもよい。ここで、温度の条件は、例えば不揮発性メモリ10の温度が予め定められた温度以上になることである。また、温度の条件は、例えば不揮発性メモリ10の温度が予め定められた温度以下になることである。また、温度の条件は、例えば不揮発性メモリ10の温度が、第1処理において共通読出し電圧更新用ブロックに書込み処理を実行した際の不揮発性メモリ10の温度よりも、予め定められた温度差以上高くなることである。
【0082】
また、第2処理の開始条件は、例えばコントローラ30が、第1処理において書込み処理が実行されたブロックBLKの読出し処理を実行した際のフェイルビット数が予め定められた値以上であることを検出したこと(以下では、フェイルビット数に関する条件と呼ぶ)を含んでもよい。当該予め定められた値は、例えば各ブロックBLKについてエラー訂正処理ができる最大のフェイルビット数の40%以上の値である。
【0083】
また、第2処理の開始条件は、例えば上記時間に関する条件、上記温度に関する条件、及び上記フェイルビット数に関する条件のうち少なくともいずれか1つの条件を含む条件であってもよい。
【0084】
以下では、第1動作例における書込み処理を含む全体動作について
図7及び
図8を用いて、説明する。
図7は、第1実施形態の第1動作例に係る第1処理を説明するためのフローチャートである。
図8は、第1実施形態の第1動作例に係る第2処理を説明するためのフローチャートである。
【0085】
まず、第1処理における動作について、
図7を用いて説明する。
【0086】
ホスト機器2からの書込み命令を受信すると(第1処理開始)、コントローラ30は、不揮発性メモリ10に、書込み対象のブロックBLKに対する書込み処理を実行させる(St0)。
【0087】
書込み処理が終了すると、読出し電圧算出部38は、書込み処理が実行されたブロックBLKの読出し電圧の識別子として、当該ブロックBLKに対応する共通読出し電圧の識別子を付与する(St1)。すなわち、当該ブロックBLKの読出し電圧が共通読出し電圧とされる。
【0088】
読出し電圧算出部38は、読出し電圧情報21において、書込み処理が実行されたブロックBLKに対応する個別読出し電圧を未設定状態にする(St2)。なお、St2の処理が実行される際の当該ブロックBLKに対応する個別読出し電圧が未設定状態である場合、コントローラ30は、当該ブロックBLKに対応する個別読出し電圧を未設定状態に維持する。
【0089】
そして、第1処理が終了する(第1処理終了)。
【0090】
次に、第2処理における動作について、
図8を用いて説明する。
【0091】
書込み処理が実行されたブロックBLKが共通読出し電圧更新用ブロックである場合(第2処理開始)、読出し電圧算出部38は、例えば上記ブロックBLKに対する書込み処理が実行された後、予め定められた時間が経過した際に、当該ブロックBLKに対する個別読出し電圧を算出する(St3)。個別読出し電圧を算出する処理では、書込み処理が実行されたブロックBLKについて、状態“S1”~“S7”のうち隣り合う状態間の読出し電圧V1~V7のそれぞれに関する個別読出し電圧が算出される。個別読出し電圧の算出については後述する。揮発性メモリ20は、例えばコントローラ30の指示によって、各共通読出し電圧の識別子について、St3の処理が実行された回数に対する個別読出し電圧の系列データを記憶する。なお、書込み処理が実行されたブロックBLKが共通読出し電圧更新用ブロックではない場合、第2処理は実行されない。
【0092】
St3の処理の後、読出し電圧算出部38によって、St3の処理において算出された個別読出し電圧が、読出し電圧情報21の当該ブロックBLKの個別読出し電圧が記憶される領域に、記憶される(St4)。そして、処理はSt5に進む。
【0093】
読出し電圧算出部38は、上記ブロックBLKの個別読出し電圧を用いて、書込み処理が実行されたブロックBLKに付与された共通読出し電圧の識別子に対応する共通読出し電圧を更新する(St5)。これにより、当該共通読出し電圧の識別子が付与される全てのブロックBLKの読出し電圧として、更新された共通読出し電圧が適用される。なお、更新された共通読出し電圧は、例えば上記系列データのうち全ての個別読出し電圧を用いて算出される、個別読出し電圧の平均値や中央値である。また、更新された共通読出し電圧は、上記系列データに含まれる全ての個別読出し電圧を用いて算出される個別読出し電圧の平均値や中央値の代わりに、例えば上記系列データのうち最新の所定の数の個別読出し電圧を用いて算出される個別読出し電圧の平均値や中央値であってもよい。そして、処理はSt6に進む。
【0094】
読出し電圧算出部38は、書込み処理が実行されたブロックBLKの読出し電圧の識別子として、個別読出し電圧の識別子Iiを付与する(St6)。
【0095】
以上の処理により、第2処理の動作が終了する(第2処理終了)。
【0096】
以上のように、第1動作例において、書込み処理が実行されたブロックBLKが共通読出し電圧更新用ブロックである場合、第2処理において、読出し電圧算出部38によって、書込み対象とされたブロックBLKの個別読出し電圧として、St3の処理において算出された個別読出し電圧が記憶される。また、読出し電圧算出部38は、書込み対象とされたブロックBLKの読出し電圧の識別子として、個別読出し電圧の識別子を付与する。また、読出し電圧算出部38は、書込み対象とされたブロックBLKの個別読出し電圧を用いて共通読出し電圧を更新する。
【0097】
なお、第1動作例において、第1処理及び第2処理における各処理の順番は入れ替えられてもよい。例えば第1処理において、St1の処理及びSt2の処理は入れ替えられてもよい。また、第2処理において、St5の処理及びSt6の処理は入れ替えられてもよい。
【0098】
1.2.1.2 読出し電圧情報の更新
第1動作例の書込み処理を含む全体動作における読出し電圧情報21の更新について、
図9~
図11を用いてさらに説明する。
図9~
図11は、第1実施形態の第1動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図である。
図9~
図11では、チップChip0のブロックBLK0~BLK4についての読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報、並びに共通読出し電圧の識別子Icom0に対応する共通読出し電圧が示される。以下の動作例では、チップChip0のブロックBLK0~BLK4をそれぞれ、単にブロックBLK0~BLK4とも呼ぶ。
【0099】
以下では、ブロックBLK0に対する書込み処理を含む1回目の全体動作が実行された後、ブロックBLK3に対する書込み処理を含む2回目の全体動作が実行される際の読出し電圧情報21の更新の例が示される。第1動作例において、ブロックBLK0及びBLK3は共通読出し電圧更新用ブロックである。これにより、ブロックBLK0に対する第1処理とともに第2処理が実行される。また、ブロックBLK3に対する第1処理とともに第2処理が実行される。
【0100】
図9は1回目の全体動作における第1処理が実行される前における読出し電圧情報21である。
図10は1回目の全体動作の後第2処理が実行された後、2回目の全体動作の前における読出し電圧情報21である。
図11は、2回目の全体動作が実行された後における読出し電圧情報21である。
【0101】
図9に示すように、1回目の全体動作が実行される前において、ブロックBLK0、BLK1、BLK3、及びBLK4のそれぞれの読出し電圧の識別子は、共通読出し電圧の識別子Icom0である。また、ブロックBLK2の読出し電圧の識別子は、個別読出し電圧の識別子Iiである。また、共通読出し電圧の識別子Icom0に対応する共通読出し電圧は、電圧Vc0(0)である。第1動作例において、電圧Vc0(0)は、例えば規定の読出し電圧である。また、ブロックBLK2の個別読出し電圧として、個別読出し電圧Vi0-2が記憶される。
【0102】
ブロックBLK0に対する書込み処理を含む1回目の全体動作が実行された後、
図10に示すように、ブロックBLK0の個別読出し電圧として、電圧Vi0-0が記憶される。また、電圧Vi0-0を用いて、共通読出し電圧が、電圧Vc0(0)から電圧Vc0(1)に更新される。また、ブロックBLK0の読出し電圧の識別子として、個別読出し電圧の識別子Iiが付与される。より具体的には、例えばコントローラ30が、1回目の全体動作の第1処理においてブロックBLK0に対する書込み処理が実行された後、予め定められた時間が経過したことを検出した際に、1回目の全体動作の第2処理が実行される。これにより、St3、St4、St5、及びSt6の処理においてそれぞれ、ブロックBLK0の個別読出し電圧の算出、個別読出し電圧の記憶、共通読出し電圧の更新、及びブロックBLK0に対する個別読出し電圧の識別子Iiの付与が実行される。
【0103】
ブロックBLK3に対する書込み処理を含む2回目の全体動作が実行された後、
図11に示すように、ブロックBLK3の個別読出し電圧として、電圧Vi0-3が記憶される。また、電圧Vi0-3を用いて、共通読出し電圧が、電圧Vc0(1)から電圧Vc0(2)に更新される。また、ブロックBLK3の読出し電圧の識別子として、個別読出し電圧の識別子Iiが付与される。2回目の全体動作は、1回目の全体動作におけるブロックBLK0の代わりに、ブロックBLK3に関する処理が実行されることを除き、同様である。
【0104】
なお、上記動作例では、第1処理が実行される前において、第1処理が実行されるブロックBLKの読出し電圧の識別子として、共通読出し電圧の識別子が付与される例を示したが、これに限られない。第1処理が実行される前において、第1処理が実行されるブロックBLKの読出し電圧の識別子は付与されていなくてもよいし、当該読出し電圧の識別子として、個別読出し電圧の識別子Iiが付与され、当該ブロックBLKの読出し電圧として個別読出し電圧が記憶されてもよい。これらの場合であっても、各全体動作が実行された後の読出し電圧情報21はそれぞれ、
図11及び
図12に示す読出し電圧情報と同等とし得る。
【0105】
1.2.1.3 個別読出し電圧の算出
St3の処理における個別読出し電圧の算出について説明する。
【0106】
個別読出し電圧の算出は、例えばトラッキングリード処理や、補正量算出処理を用いて実行される。以下では、トラッキングリード処理を用いた個別読出し電圧の算出の例、及び補正量算出処理を用いた個別読出し電圧の算出の例が説明される。
【0107】
(トラッキングリード処理)
トラッキングリード処理を用いた個別読出し電圧の算出の例について、
図12を用いて説明する。
図12は、第1実施形態の第1動作例に係るトラッキングリード処理の一例を説明するための模式図である。
【0108】
図12(A)に示すように、書込み処理直後の閾値電圧分布において、状態“S(m-1)”及び状態“Sm”は互いに離間する。しかしながら、上述のようなメモリセルトランジスタMTの閾値電圧の変動が発生することによって、各状態“S0”~“S7”の閾値電圧分布の半値全幅等の分布幅が変化する可能性がある。これにより、
図12(B)に示すように、状態“S(m-1)”及び状態“Sm”のそれぞれの閾値電圧分布は重なる可能性がある。また、上述のように最適な読出し電圧が既定の読出し電圧からずれる可能性がある。これらのことから、既定の読出し電圧を用いた読出し処理ではフェイルビット数が多くなり、エラー訂正が困難になる可能性がある。
【0109】
そこで、第1実施形態に係るメモリシステム1は、
図12(B)に示すように、トラッキングリード処理を実行する。トラッキングリード処理では、複数のトラッキング電圧を用いた読出し処理が実行され、フェイルビット数が少なくなる個別読出し電圧が探索される。
【0110】
例えば、読出し電圧Vmに対応するトラッキングリードでは、トラッキング電圧Vmt0、Vmt1、Vmt2、Vmt3、及びVmt4をそれぞれ用いた読出し処理が連続で実行される。
【0111】
トラッキング電圧Vmt0~Vmt4はそれぞれ任意の値に設定され、隣り合うトラッキング電圧間の差は例えば略同一に設定される。トラッキング電圧Vmt0、Vmt1、Vmt2、Vmt3、及びVmt4はこの順に高い(Vmt0<Vmt1<Vmt2<Vmt3<Vmt4)。また、既定の読出し電圧Vmdefは、トラッキング電圧Vmt0より高く、トラッキング電圧Vmt4より低い(Vmt0<Vmdef<Vmt4)。
【0112】
なお、トラッキング電圧の数は、5つに限られず、任意の数に設定され得る。また、隣り合うトラッキング電圧間の差は、読出し電圧毎に異なっていてもよい。
【0113】
読出し電圧Vmに対応するトラッキングリード処理において、シーケンサ14は、例えばトラッキング電圧Vmt0を用いた読出し処理におけるメモリセルトランジスタMTのオンセル数、トラッキング電圧Vmt1を用いた読出し処理におけるメモリセルトランジスタMTのオンセル数、…、及びトラッキング電圧Vmt4を用いた読出し処理におけるメモリセルトランジスタMTのオンセル数に基づいて、状態“S(m-1)”と状態“Sm”とを分離するための個別読出し電圧を見積もる。シーケンサ14は、例えばメモリセルトランジスタMTのオンセル数が最少となる電圧を推定する。シーケンサ14は、例えば、当該推定した電圧を個別読出し電圧とする。
【0114】
(補正量算出処理)
補正量算出処理を用いた個別読出し電圧の算出の例について、
図13を用いて説明する。
図13は、第1実施形態の第1動作例に係る補正量算出処理の一例を説明するための模式図である。
図13の例では、読出し電圧Vmの補正量を算出する場合が示される。
【0115】
ECC回路34は、例えば読出しデータのカラムアドレス毎に、書き込まれる際の状態と、読出される際の状態と、を比較する。より具体的には、例えば、ECC回路34は、状態“Sm”として書き込まれたデータが状態“S(m-1)”として誤って読出されたメモリセル数E(a)を算出する。また、ECC回路34は、状態“S(m-1)”として書き込まれたデータが状態“Sm”として誤って読出されたメモリセル数E(b)を算出する。
【0116】
図13において、状態“Sm”として書き込まれたデータが状態“S(m-1)”として誤って読出されたメモリセル数E(a)は、
図13(A)~
図13(C)における領域(a)の面積に相当する。また、状態“S(m-1)”として書き込まれたデータが状態“Sm”として誤って読出されたメモリセル数E(b)は、
図13(A)~
図13(C)における領域(b)の面積に相当する。
【0117】
図13(A)では、読出し電圧Vmが状態“S(m-1)”及び状態“Sm”に対応する2つの閾値電圧分布が交差する位置における電圧Vmoptと等しい場合が示される。
図13(A)では、メモリセル数E(a)とメモリセル数E(b)とは、等しい。この場合、状態“S(m-1)”及び状態“Sm”との間で発生するフェイルビット数Eは最少となることが期待される。フェイルビット数Eは、メモリセル数E(a)及びE(b)の和である(E=E(a)+E(b))。このため、読出し電圧算出部38は、読出し電圧Vmが更新不要であると判定する。つまり、読出し電圧算出部38は、読出し電圧Vmの補正量ΔVmを“0”とする(ΔVm=0)。
【0118】
図13(B)では、読出し電圧Vmが電圧Vmoptよりも高電圧側に位置する場合が示される。
図13(B)では、メモリセル数E(a)は、メモリセル数E(b)よりも多い。この場合、フェイルビット数Eは、
図13(A)の場合のフェイルビット数Eよりも多くなってしまう。このため、読出し電圧算出部38は、読出し電圧Vmを電圧Vmoptに近づけるように、低電圧側にシフトさせる。つまり、読出し電圧算出部38は、負の補正量ΔVmを算出する(ΔVm<0)。
【0119】
図13(C)では、読出し電圧Vmが電圧Vmoptよりも低電圧側に位置する場合が示される。
図13(C)では、メモリセル数E(a)は、メモリセル数E(b)よりも少なくなる。この場合、フェイルビット数Eは、
図13(A)の場合のフェイルビット数Eよりも多くなってしまう。このため、読出し電圧算出部38は、読出し電圧VAを電圧VAoptに近づけるように、高電圧側にシフトさせる。つまり、読出し電圧算出部38は、正の補正量ΔVmを算出する(ΔVm>0)。
【0120】
なお、メモリセル数E(a)及びE(b)の差は、読出し電圧Vmが電圧Vmoptから離れるほど大きくなることが期待される。このため、読出し電圧算出部38は、補正量ΔVmを、メモリセル数E(a)及びE(b)の比の大きさに応じて決定する。これにより、閾値電圧分布の重複の度合いに応じて適切な補正量を決定することができ、電圧Vmoptに近づくように補正量ΔVmを算出する。
【0121】
読出し電圧算出部38は、例えば、以上のようにして算出された補正量ΔVmを規定の読出し電圧Vmdefに加えた電圧を、個別読出し電圧とする。
【0122】
1.2.2 第2動作例
第2動作例では、共通読出し電圧更新用ブロックに対して書込み処理が実行された後、共通読出し電圧を更新しつつ、当該共通読出し電圧更新用ブロックに対する読出し電圧として共通読出し電圧が適用される動作例が説明される。なお、以下では、書込み処理が実行された後、予め定められた時間が経過した際に、共通読出し電圧が更新される例が示される。
【0123】
1.2.2.1 全体動作
第2動作例における書込み処理を含む全体動作について、
図14を用いて説明する。
図14は、第1実施形態の第2動作例に係る第2処理を説明するためのフローチャートである。以下では、第2動作例における全体動作について、第1動作例における全体動作と異なる点について主に説明する。
【0124】
第2動作例における書込み処理を含む全体動作は、第1処理及び第2処理を含む。
【0125】
第2動作例における第1処理は、第1動作例における第1処理と同等である。また、第2動作例の第2処理は、St10及びSt11の処理を含む。St10及びSt11の処理は、第1動作例の第2処理におけるSt3及びSt5の処理と同等である。
【0126】
また、第2動作例における第2処理は、第1動作例における第2処理と同様に、例えば書込み対象のブロックBLKが共通読出し電圧更新用ブロックであり、かつ上述の第2処理の開始条件が満たされる場合に実行される。また、書込み対象のブロックBLKが共通読出し電圧更新用ブロックではない場合、第1実施形態の第1動作例と同様に、第2処理は実行されない。
【0127】
以上のように、第2動作例の第2処理では、書込み対象とされたブロックBLKの読出し電圧の識別子として、共通読出し電圧の識別子が付与される。また、読出し電圧算出部38は、第1動作例と同等に、書込み対象とされたブロックBLKの個別読出し電圧を用いて共通読出し電圧を更新する。
【0128】
なお、メモリシステム1は、第1動作例と同等に、第1処理の書込み処理が実行されたブロックBLKが共通読出し電圧更新用ブロックである場合、例えば第2処理を定期的に複数回実行するように構成されてもよい。
【0129】
1.2.2.2 読出し電圧情報の更新
第2動作例の書込み処理を含む全体動作における読出し電圧情報21の更新について、
図15を用いてさらに説明する。
図15は、第1実施形態の第2動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図である。
図15では、説明を簡単にするため、チップChip0のブロックBLK0についての読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報、並びに識別子Icom0に対応する共通読出し電圧が示される。
【0130】
以下では、ブロックBLK0に対する書込み処理を含む全体動作が実行される際の読出し電圧情報21の更新の例が示される。第2動作例において、ブロックBLK0は共通読出し電圧更新用ブロックである。これにより、ブロックBLK0に対する第1処理とともに第2処理が実行される。
【0131】
図15(A)は第1処理が実行される前における読出し電圧情報21である。
図15(B)は第1処理が実行された後、第2処理が実行される前における読出し電圧情報21である。
図15(C)は第2処理が実行された後における読出し電圧情報21である。
【0132】
ブロックBLK0に対する第1処理が実行される前において、ブロックBLK0には、書込み処理が実行されていない。すなわち、
図15(A)に示すように、ブロックBLK0に対する読出し電圧の識別子、及びブロックBLK0に対する個別読出し電圧は、未設定状態である。また、共通読出し電圧の識別子Icom0に対応する共通読出し電圧は、電圧Vc0(0)である。第2動作例において、電圧Vc0(0)は、例えば規定の読出し電圧である。
【0133】
第1処理のSt1の処理において、ブロックBLK0に対する書込み処理が実行される。そして、
図15(B)に示すように、ブロックBLK0に対する第1処理が実行されることによって、ブロックBLK0の読出し電圧の識別子として、共通読出し電圧の識別子Icom0が付与される。
【0134】
第2処理のSt11の処理において、読出し電圧算出部38は、共通読出し電圧の識別子Icom0に対応する共通読出し電圧を更新する。これにより、
図15(C)に示すように、第2処理が実行された後において、共通読出し電圧の識別子Icom0に対応する共通読出し電圧は、電圧Vc0(0)から電圧Vc0(1)に更新される。このため、図示しないが、共通読出し電圧の識別子Icom0が付与される全てのブロックBLKの読出し電圧は、電圧Vc0(1)になる。
【0135】
1.2.3 第3動作例
第3動作例では、各ブロックBLKに対する読出し処理が実行される場合の例が説明される。
【0136】
第3動作例における全体動作について、
図16を用いて説明する。
図16は、第1実施形態の第3動作例に係る読出し処理を説明するためのフローチャートである。
【0137】
例えばホスト機器2から読出し処理の指示があった場合(開始)、読出し電圧選択部37は、読出し電圧情報21に基づいて、読出し処理の対象とされたブロックBLKの読出し電圧の識別子を抽出する(St20)。なお、読出し処理の対象とされるブロックBLKは、有効なデータを記憶するブロックBLKである。
【0138】
コントローラ30は、St20の処理において抽出された読出し電圧の識別子が個別読出し電圧の識別子であるかどうかを判定する(St21)。St20の処理において抽出された読出し電圧の識別子が個別読出し電圧の識別子であると判定される場合(St21;YES)、処理はSt23に進む。St20の処理において抽出された読出し電圧の識別子が個別読出し電圧の識別子でない場合(St21;NO)、処理はSt22に進む。すなわち、St20の処理において抽出された読出し電圧の識別子が共通読出し電圧の識別子である場合、処理はSt22に進む。
【0139】
St20の処理において抽出された読出し電圧の識別子が共通読出し電圧の識別子である場合(St21;NO)、読出し電圧選択部37は、読出し電圧として、当該共通読出し電圧の識別子に対応する共通読出し電圧を適用する(St22)。そして、処理はSt24に進む。
【0140】
St20の処理において抽出された読出し電圧の識別子が個別読出し電圧の識別子であると判定される場合(St21;YES)、読出し電圧選択部37は、読出し電圧の識別子に基づいて、読出し電圧として、読出し処理の対象とされたブロックBLKに対応する個別読出し電圧を適用する(St23)。そして、処理はSt24に進む。
【0141】
コントローラ30は、St22の処理において適用された読出し電圧、又はSt23の処理において適用された読出し電圧を用いて、読出し処理を実行する(St24)。
【0142】
以上の動作により、第3動作例における全体動作が終了する(終了)。
【0143】
1.3 第1実施形態に係る効果
第1実施形態に係るメモリシステム1によれば、読出し処理のレイテンシの増加を抑制することができる。ここで、リードレイテンシは読出し処理の遅延時間である。
【0144】
第1実施形態に係るメモリシステム1は、複数のチップChipを含む不揮発性メモリ10と、コントローラ30とを備える。第1実施形態の第1動作例において、コントローラ30は、1回目の全体動作の前において、チップChip0のブロックBLK0、BLK1、BLK3、及びBLK4の各々からデータを読出す際に、電圧Vc0(0)を共通読出し電圧として用いる。また、コントローラ30は、ブロックBLK2からデータを読出す際に、ブロックBLK2に対応付けられる電圧Vi0-2を用いる。コントローラ30は、1回目の全体動作において、ブロックBLK0に対応付けられる電圧Vi0-0が算出されると、電圧Vi0-0に基づいて共通読出し電圧を、Vc0(0)からVc0(1)に更新する。コントローラ30は、1回目の全体動作の後、ブロックBLK0からデータを読出す際に、電圧Vi0-0を用いる。また、コントローラ30は、ブロックBLK1、BLK3、及びBLK4の各々からデータを読出す際に、電圧Vc0(1)を共通読出し電圧として用いる。また、コントローラ30は、ブロックBLK2からデータを読出す際に、電圧Vi0-2を用いる。コントローラ30は、2回目の全体動作において、ブロックBLK3に対応付けられる電圧Vi0-3が算出されると、電圧Vi0-3に基づいて共通読出し電圧を、Vc0(1)からVc0(2)に更新する。コントローラ30は、2回目の全体動作の後、ブロックBLK0からデータを読出す際に、電圧Vi0-0を用いる。また、コントローラ30は、ブロックBLK1及びBLK4の各々からデータを読出す際に、電圧Vc0(2)を共通読出し電圧として用い、ブロックBLK2からデータを読出す際に、電圧Vi0-2を用いる。また、コントローラ30は、ブロックBLK3からデータを読出す際に、電圧Vi0-3を用いる。このように、あるチップChipにおいて、共通読出し電圧を複数回更新するように構成されることで、各ブロックBLKからデータを読出す際に、当該ブロックBLKに対して独立に算出された読出し電圧を用いなくてもフェイルビット数の増加を抑制することができる。すなわち、各ブロックBLKの最適な読出し電圧を算出する処理の頻度を低減しつつ、フェイルビット数の増加を抑制することができる。したがって、フェイルビット数が増加したブロックに対する読出し電圧の更新処理、及び読直し処理等の追加処理の増加を抑制することで、リードレイテンシの増加を抑制することができる。
【0145】
補足すると、上述のように、書込み処理の後、メモリセルトランジスタMTの閾値電圧が変動することによって、最適な読出し電圧は変動してしまう。また、各チップChipに含まれる複数のブロックBLKは、同様の最適な読出し電圧の変動の傾向を有し得る。第1実施形態に係るメモリシステム1によれば、各チップChipの最適な読出し電圧の変動の傾向を共通の読出し電圧に反映させることで、共通の読出し電圧と、各ブロックBLKの最適な読出し電圧との差の増大を抑制することができる。すなわち、全てのブロックBLKに対して最適な読出し電圧の算出を行わなくても、メモリセルトランジスタMTの閾値電圧の変動による読出し電圧の変動の影響を抑制することができる。
【0146】
また、コントローラ30は、各チップChipに含まれる複数のブロックBLKの各々からデータを読出す際に、当該チップChipに対応付けられる共通読出し電圧を用いる。複数のチップChipに対応付けられる複数の共通読出し電圧はそれぞれ、互いに独立である。これらの構成により、複数のチップChipの各々において、リードレイテンシの増加を抑制することができる。
【0147】
1.4 第1実施形態の第1変形例
第1実施形態の第1動作例、及び第1実施形態の第2動作例では、書込み処理の条件に関わらず、共通読出し電圧が更新される例を示したが、これに限られない。コントローラ30は、書込み処理の条件に基づいて共通読出し電圧を更新するかどうか判定する処理を行ってもよい。
【0148】
以下では、第1実施形態の第1変形例に係るメモリシステム1の構成及び動作について、第1実施形態に係るメモリシステムの構成及び動作と異なる点について主に説明する。
【0149】
1.4.1 構成
第1実施形態の第1変形例に係る不揮発性メモリ10及びコントローラ30の構成は、第1実施形態に係る不揮発性メモリ及びコントローラの構成と同等である。また、第1実施形態の第1変形例に係る揮発性メモリ20は、第1実施形態に係る揮発性メモリと同等に、読出し電圧情報21を記憶する。以下では、第1実施形態の第1変形例に係る揮発性メモリ20が記憶する読出し電圧情報21について、第1実施形態に係る揮発性メモリ20が記憶する読出し電圧情報と異なる点が主に説明される。
【0150】
第1実施形態の第1変形例における読出し電圧情報21について、
図17を用いて説明する。
図17は、第1実施形態の第1変形例に係るメモリシステムの揮発性メモリが記憶するブロック毎の読出し電圧情報の一例を示す図である。なお、第1実施形態の第1変形例において、共通読出し電圧の識別子と共通読出し電圧との関係を示すテーブルは、第1実施形態における
図6のテーブルと実質的に同等であるため、その説明及び図示を省略する。チップChip1~ChipNに関する読出し電圧情報はチップChip0に関する読出し電圧情報と同様である。
【0151】
第1実施形態の第1変形例に係る揮発性メモリ20は、読出し電圧情報21において、読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報に加えて、各ブロックBLKに対する最新の書込み処理を実行した際の温度を記憶する。なお、
図17及び以下の説明では、各ブロックBLKに対して最後に書込み処理を実行した際の不揮発性メモリ10の温度を、単に書込み温度と呼ぶ。第1実施形態の第1変形例における読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報は、第1実施形態における読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報と実質的に同等であるため、それらの説明を省略する。
【0152】
1.4.2 動作
第1実施形態の第1変形例に係るメモリシステム1の動作について説明する。
【0153】
1.4.2.1 第1実施形態の第1変形例の第1動作例
第1実施形態の第1変形例の第1動作例では、共通読出し電圧更新用ブロックに対して書込み処理が実行された後、当該ブロックBLKが共通読出し電圧更新の条件を満たす場合に、共通読出し電圧を更新しつつ、当該共通読出し電圧更新用ブロックに対する読出し電圧として共通読出し電圧が適用される動作例が説明される。
【0154】
1.4.2.1.1 全体動作
第1実施形態の第1変形例の第1動作例における書込み処理を含む全体動作について、
図18を用いて説明する。
図18は、第1実施形態の第1変形例の第1動作例に係る書込み処理を含む全体動作を説明するためのフローチャートである。以下では、第1実施形態の第1動作例及び第2動作例と異なる点が主に説明される。
【0155】
第1実施形態の第1変形例の第1動作例は、第1処理及び第2処理を含む。
【0156】
第1処理において、コントローラ30は、第1実施形態の第1動作例のSt0~St2の処理と同等の処理を実行する。また、コントローラ30は、揮発性メモリ20に、書込み対象のブロックBLKに関連付けられた書込み温度を記憶させる。
【0157】
第1実施形態の第1変形例の第1動作例における第2処理は、第1実施形態の第1動作例、及び第1実施形態の第2動作例における第2処理と同様に、例えば書込み対象のブロックBLKが共通読出し電圧更新用ブロックであり、かつ上述の第2処理の開始条件が満たされる場合に実行される。また、書込み対象のブロックBLKが共通読出し電圧更新用ブロックではない場合、第1実施形態の第1動作例、及び第1実施形態の第2動作例と同様に、第2処理は実行されない。
【0158】
第2処理において、St30の処理は、第1実施形態の第1動作例のSt3の処理、及び第1実施形態の第2動作例のSt10の処理と同等である。また、St32の処理は、第1実施形態の第1動作例のSt5の処理、及び第1実施形態の第2動作例のSt11の処理と同等である。
【0159】
コントローラ30は、St30の処理の後、書込み対象のブロックBLKが共通読出し電圧更新の条件を満たすかどうか判定する(St31)。共通読出し電圧更新の条件は、例えば書込み対象のブロックBLKに対応する書込み温度が70℃未満であることである。書込み対象のブロックBLKが共通読出し電圧更新の条件を満たす場合(St31;YES)、処理はSt32に進む。書込み対象のブロックBLKが共通読出し電圧更新の条件を満たさない場合(St31;NO)、第2処理の動作は終了する(第2処理終了)。
【0160】
また、St32の処理が実行されると、第2処理の動作は終了する(第2処理終了)。
【0161】
なお、全体動作において、St31の処理の順番は可能な範囲で変更されてもよい。例えば、
図18において、St31の処理とSt30の処理とは入れ替えられてもよい。
【0162】
また、第5変形例では、共通読出し電圧更新の条件が書込み温度に基づく場合を示すが、これに限られない。共通読出し電圧更新の条件は、例えば各ブロックBLKのフェイルビット数Eに基づいてもよい。すなわち、共通読出し電圧更新の条件は、例えば書込み処理が実行されたブロックBLKが、フェイルビット数Eが予め定められた数未満のブロックBLKであることであってもよい。この場合、揮発性メモリ20は、例えば読出し電圧情報21において、読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報に加えて、各ブロックBLKのフェイルビット数Eを記憶する。
【0163】
また、共通読出し電圧更新の条件は、例えばブロックBLKについて算出された個別読出し電圧と、当該ブロックBLKに対応する共通読出し電圧との差、又は当該個別読出し電圧と、当該共通読出し電圧とは異なる共通読出し電圧や、当該ブロックBLKとは異なるブロックBLKに対応する個別読出し電圧との差に基づいてもよい。より具体的には、共通読出し電圧更新の条件は、例えば上記差が予め定められた値未満のブロックBLKであることであってもよい。
【0164】
また、共通読出し電圧更新の条件は、例えば書込み処理が実行されたブロックBLKが、所定の範囲のブロックBLKであることである。所定の範囲のブロックBLKは、例えば予め共通読出し電圧更新に用いることができると決定される複数のブロックBLKを含む。当該複数のブロックBLKは、例えばメモリセルアレイ11内の物理的な位置、又は論理的な位置によって決定されてもよい。
【0165】
また、共通読出し電圧更新の条件は、例えば書込み処理において実行されるプログラムループの回数に基づく条件であってもよい。より具体的には、共通読出し電圧更新の条件は、例えばプログラムループの回数が予め設定された回数未満であることである。コントローラ30は、共通読出し電圧更新の条件が満たされない場合に、例えば書込み対象のブロックBLKが、他のブロックBLKよりも書込みにくいブロックBLKや他のブロックBLKと異なる特性を有するブロックBLKであると判断する。そして、共通読出し電圧の更新は実行されない。
【0166】
また、第1実施形態の第1変形例の第1動作例では、共通読出し電圧更新の条件が書込み温度に基づく条件であったが、これに限られない。共通読出し電圧更新の条件は、書込み温度の代わりに、St30の処理において個別読出し電圧を算出する際の不揮発性メモリ10の温度に基づく条件であってもよい。
【0167】
1.4.2.1.2 読出し電圧情報の更新
第1実施形態の第1変形例の第1動作例の書込み処理を含む全体動作における読出し電圧情報21の更新について、
図19を用いてさらに説明する。
図19は、第1実施形態の第1変形例の第1動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図である。
図19では、説明を簡単にするため、ブロックBLK0についての読出し電圧の識別子、個別読出し電圧、共通読出し電圧更新用ブロックであるかどうかの情報、及び書込み温度、並びに共通読出し電圧の識別子Icom0に対応する共通読出し電圧が示される。
【0168】
以下では、90℃の書込み温度においてブロックBLK0に対する書込み処理が実行される場合の、書込み処理を含む全体動作が実行される際の読出し電圧情報21の更新の例が示される。第1実施形態の第1変形例の第1動作例において、チップChip0のブロックBLK0は共通読出し電圧更新用ブロックである。これにより、ブロックBLK0に対する第1処理とともに第2処理が実行される。
【0169】
図19(A)は第1処理が実行される前における読出し電圧情報21である。
図19(B)は第1処理が実行された後、第2処理が実行される前における読出し電圧情報21である。
図19(C)は第2処理が実行された後における読出し電圧情報21である。
【0170】
図19(A)及び(B)に示すように、第1処理が実行される前における読出し電圧情報21、及び第1処理が実行された後、第2処理が実行される前における読出し電圧情報21は、書込み温度を除き、第1実施形態における
図15(A)及び
図15(B)と同等である。
図19(A)に示すように、第1処理が実行される前において、書込み温度は未設定状態(
図19中「-」で示される)である。また、第1実施形態の第1変形例の第1動作例における書込み温度は90℃である。これにより、
図19(B)に示すように、第1処理において、ブロックBLK0に対する書込み処理の際の不揮発性メモリ10の温度が記憶される。
【0171】
第2処理のSt31の処理におけるブロックBLK0の書込み温度が70℃以上であるため、コントローラ30は、書込み処理が実行されたブロックBLK0の書込み温度が共通読出し電圧更新の条件を満たさないと判定する。これにより、
図19(C)に示すように、第2処理が実行された後において、共通読出し電圧は、コントローラ30によって更新されない。
【0172】
なお、書込み対象のブロックBLK0が共通読出し電圧更新の条件を満たす場合における読出し電圧情報21の更新は、書込み温度が記憶されることを除き、第1実施形態の第2動作例において、
図15に示す読出し電圧情報の更新と同等である。
【0173】
1.4.2.2 第1実施形態の第1変形例の第2動作例
第1実施形態の第1変形例の第2動作例では、共通読出し電圧更新用ブロックに対して書込み処理が実行された後、当該ブロックBLKが共通読出し電圧更新の条件を満たす場合に、共通読出し電圧を更新しつつ、当該共通読出し電圧更新用ブロックに対する読出し電圧として個別読出し電圧が記憶される動作例が説明される。
【0174】
1.4.2.2.1 全体動作
第1実施形態の第1変形例の第2動作例における書込み処理を含む全体動作について、
図20を用いて説明する。
図20は、第1実施形態の第1変形例の第2動作例に係る書込み処理を含む全体動作を説明するためのフローチャートである。以下では、第1実施形態の第2動作例、及び第1実施形態の第1変形例の第1動作例と異なる点が主に説明される。
【0175】
第1実施形態の第1変形例の第2動作例における全体動作は、第1処理及び第2処理を含む。
【0176】
第1実施形態の第1変形例の第2動作例における第1処理は、第1実施形態の第1変形例の第1動作例における第1処理と同等である。
【0177】
第1実施形態の第1変形例の第2動作例における第2処理は、第1実施形態の第1動作例、第1実施形態の第2動作例、及び第1実施形態の第1変形例の第1動作例における第2処理と同様に、例えば書込み対象のブロックBLKが共通読出し電圧更新用ブロックであり、かつ上述の第2処理の開始条件が満たされる場合に実行される。また、書込み対象のブロックBLKが共通読出し電圧更新用ブロックではない場合、第1実施形態の第1動作例、第1実施形態の第2動作例、及び第1実施形態の第1変形例の第1動作例と同様に、第2処理は実行されない。
【0178】
第2処理において、St40の処理は、第1実施形態の第1動作例におけるSt3の処理、第1実施形態の第2動作例におけるSt10の処理、及び第1実施形態の第1変形例の第1動作例におけるSt30の処理と同等である。St41の処理は、第1実施形態の第1動作例におけるSt4の処理と同等である。St43の処理は、第1実施形態の第1動作例におけるSt5の処理、第1実施形態の第2動作例におけるSt11の処理、及び第1実施形態の第1変形例の第1動作例におけるSt32の処理と同等である。St44の処理は、第1実施形態の第1動作例におけるSt6の処理と同等である。
【0179】
コントローラ30は、St41の処理の後、第1実施形態の第1変形例の第1動作例におけるSt31の処理と同等に、書込み対象のブロックBLKが共通読出し電圧更新の条件を満たすかどうか判定する(St42)。書込み対象のブロックBLKが共通読出し電圧更新の条件を満たす場合(St42;YES)、処理はSt43に進む。書込み対象のブロックBLKが共通読出し電圧更新の条件を満たさない場合(St42;NO)、処理はSt44に進む。
【0180】
なお、全体動作において、共通読出し電圧更新の条件を満たすかどうか判定する処理の順番は、可能な範囲で変更されてもよい。例えば、
図20において、St42の処理は、St40の処理の前に実行されてもよい。
【0181】
1.4.2.2.2 読出し電圧情報の更新
第1実施形態の第1変形例の第2動作例に係る書込み処理を含む全体動作における読出し電圧情報21の更新について、
図21を用いてさらに説明する。
図21は、第1実施形態の第1変形例の第2動作例に係る書込み処理を含む全体動作における読出し電圧情報の更新の一例を説明するための図である。
図21では、説明を簡単にするため、チップChip0のブロックBLK0についての読出し電圧の識別子、個別読出し電圧、共通読出し電圧更新用ブロックであるかどうかの情報、及び書込み温度、並びに共通読出し電圧の識別子Icom0に対応する共通読出し電圧が示される。
【0182】
以下では、90℃の書込み温度においてブロックBLK0に対する書込み処理が実行される場合の、書込み処理を含む全体動作が実行される際の読出し電圧情報の更新の例が示される。第1実施形態の第1変形例の第2動作例において、チップChip0のブロックBLK0は共通読出し電圧更新用ブロックである。これにより、第1処理とともに第2処理が実行される。
【0183】
図21(A)は第1処理が実行される前における読出し電圧情報21である。
図21(B)は第1処理が実行された後、第2処理が実行される前における読出し電圧情報21である。
図21(C)は第2処理が実行された後における読出し電圧情報21である。
図21(A)に示す読出し電圧情報21、及び
図21(B)に示す読出し電圧情報21はそれぞれ、第1実施形態の第1変形例の第1動作例における
図19(A)に示す読出し電圧情報、及び
図19(B)に示す読出し電圧情報と同等であるため、これらの説明を省略する。
【0184】
書込み対象のブロックBLK0が共通読出し電圧更新の条件を満たさない場合において、第2動作例における読出し電圧情報21の更新は、
図21(C)に示す第2処理が実行された後の読出し電圧情報21において、個別読出し電圧として、電圧Vi0-0が記憶されること、及び読出し電圧の識別子として個別読出し電圧の識別子Iiが付与されることを除き、第1実施形態の第1変形例の第1動作例における読出し電圧情報の更新と同等である。すなわち、第1実施形態の第1変形例の第2動作例では、St41の処理によって、ブロックBLK0に対する個別読出し電圧が記憶される。また、St44の処理によって、ブロックBLK0の読出し電圧の識別子として、個別読出し電圧の識別子Iiが付与される。また、共通読出し電圧の更新は実行されない。
【0185】
なお、書込み対象のブロックBLK0が共通読出し電圧更新の条件を満たす場合における読出し電圧情報21の更新は、書込み温度が記憶されていることを除き、第1実施形態の第2動作例において、
図15に示す第1実施形態の第2動作例に係る読出し電圧情報の更新と同等である。
【0186】
第1実施形態の第1変形例によっても第1実施形態と同様の効果が奏される。
【0187】
1.5 第1実施形態の第2変形例
上述の第1実施形態、及び第1実施形態の第1変形例では、各チップChipに対して1つの共通読出し電圧が設定される場合を示したが、これに限られない。各チップChipに対して複数の共通読出し電圧が設定されてもよい。
【0188】
以下では、第1実施形態の第2変形例に係るメモリシステム1の構成及び動作について、第1実施形態に係るメモリシステムの構成及び動作と異なる点について主に説明する。
【0189】
1.5.1 構成
第1実施形態の第2変形例に係る不揮発性メモリ10及びコントローラ30の構成は、第1実施形態に係る不揮発性メモリ及びコントローラの構成と同等である。また、第1実施形態の第2変形例に係る揮発性メモリ20は、第1実施形態に係る揮発性メモリと同様に、読出し電圧情報21を記憶する。以下では、第1実施形態の第2変形例における読出し電圧情報21について、第1実施形態における読出し電圧情報と異なる点が主に説明される。
【0190】
第1実施形態の第2変形例における読出し電圧情報21について
図22を用いて説明する。
図22は、第1実施形態の第2変形例に係るメモリシステムの揮発性メモリが記憶するブロック毎の読出し電圧情報の一例を示す図である。なお、第1実施形態の第2変形例において、共通読出し電圧の識別子と共通読出し電圧との関係を示すテーブルは、チップChip0に対応する共通読出し電圧の識別子の数が増えていることを除き、第1実施形態における
図6のテーブルと実質的に同等であるため、その説明を省略する。
【0191】
第1実施形態の第2変形例において、読出し電圧算出部38は、チップChip0において、2つの共通読出し電圧の識別子Icom0-0及びIcom0-1を設定し得る。より具体的には、読出し電圧算出部38は、例えば書込み温度が70℃未満であるブロックBLKに対して、共通読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0を付与する。また、読出し電圧算出部38は、例えば書込み温度が70℃以上であるブロックBLKに対して、共通読出し電圧の識別子として、共通読出し電圧の識別子Icom0-1を付与する。例えば、
図22に示す例において、書込み温度が70℃未満であるブロックBLK0、BLK1、及びBLKn…に対して、読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0が付与される。また、書込み温度が70℃以上であるブロックBLK2、及びBLK3、…に対して、読出し電圧の識別子として、共通読出し電圧の識別子Icom0-1が付与される。
【0192】
1.5.2 動作
第1実施形態の第2変形例に係るメモリシステム1の動作について説明する。
【0193】
以下では、共通読出し電圧更新用ブロックに対して書込み処理が実行される場合の動作例が説明される。
【0194】
1.5.2.1 第1実施形態の第2変形例の第1動作例
第1実施形態の第2変形例の第1動作例では、書込み処理が実行されたブロックBLKが条件を満たすかどうかに応じて、異なる共通読出し電圧の識別子が付与される動作例が説明される。
【0195】
1.5.2.1.1 全体動作
第1実施形態の第2変形例に係る第1動作例は、共通読出し電圧の識別子を付与する処理を除き、例えば
図7及び
図8を用いて説明される第1実施形態の第1動作例の全体動作、又は
図14を用いて説明される第1実施形態の第2動作例の全体動作と同等とすることができる。
【0196】
以下では、共通読出し電圧の識別子を付与する処理について
図23を用いて説明する。
図23は、第1実施形態の第2変形例に係るメモリシステムにおいて、複数の共通読出し電圧の識別子のうち、ブロックに対応する共通読出し電圧の識別子を付与する動作を説明するためのフローチャートである。当該処理は、第1実施形態の第1動作例のSt1の処理に相当する処理である。
【0197】
書込み対象のブロックBLKに対する書込み処理が実行された場合(開始)、コントローラ30は、書込み処理が実行されたブロックBLKがチップChip0に含まれるブロックBLKであるかどうかを判定する(St50)。書込み処理が実行されたブロックBLKがチップChip0に含まれるブロックBLKであると判定される場合(St50;YES)、処理はSt51に進む。書込み処理が実行されたブロックBLKがチップChip0に含まれるブロックBLKではないと判定される場合(St50;NO)、処理はSt54に進む。
【0198】
書込み処理が実行されたブロックBLKがチップChip0に含まれるブロックBLKであると判定される場合(St50;YES)、コントローラ30は、第1条件が満たされるかどうかを判定する(St51)。ここで、第1条件は、例えばブロックBLKの書込み温度に基づく。より具体的には、第1条件は、ブロックの書込み温度が70℃以上であることである。第1条件が満たされると判定される場合(St51;YES)、処理はSt52に進む。第1条件を満たされないと判定される場合(St51;NO)、処理はSt53に進む。
【0199】
第1条件が満たされる場合(St51;YES)、共通読出し電圧の識別子として、共通読出し電圧の識別子Icom0-1を付与する。
【0200】
第1条件が満たされない場合(St51;NO)、共通読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0を付与する。
【0201】
書込み処理が実行されたブロックBLKがチップChip0に含まれるブロックBLKではない場合(St50;NO)、当該ブロックBLKを含むチップChipに対応する共通読出し電圧の識別子を付与する(St54)。なお、当該チップChipにおいても複数の共通読出し電圧が適用される場合、コントローラ30は、St54の処理において、St51~St53の処理と同様に読出し電圧の識別子を付与し得る。
【0202】
以上の動作により、共通読出し電圧の識別子を付与する動作が終了する(終了)。
【0203】
このように、全体動作の第1処理において、書込み処理が実行されたブロックBLKに対して、共通読出し電圧の選択が実行される。
【0204】
なお、
図23に示される処理の同様の処理が、例えば第1実施形態の第1動作例の第2処理においてさらに実行されてもよい。より具体的には、
図23に示される処理と同様の処理が、例えば第1実施形態の第1動作例の第2処理において、St3の処理の前に実行されてもよい。この場合、例えば書込み処理が実行されたブロックBLKに対して、第2処理において選択された共通読出し電圧の識別子に基づいて、共通読出し電圧の更新が実行される。
【0205】
また、
図23に示される処理の代わりに、
図23に示される処理の同様の処理が、例えば第1実施形態の第1動作例の第2処理において実行されてもよい。この場合、共通読出し電圧更新用ブロックに対してのみ、共通読出し電圧の識別子の選択が実行される。
【0206】
また、第1実施形態の第2変形例に係る第1動作例は、第1実施形態の第1変形例に係る第1動作例及び第2動作例において実施することもできる。すなわち、第1実施形態の第2変形例に係る第1動作例の第1処理において共通読出し電圧の識別子Icom0-0及びIcom0-1がそれぞれ付与された読出し電圧更新用ブロックを用いて共通読出し電圧を更新する際に、第1実施形態の第1変形例に係る第1動作例及び第2動作例と同等に、共通読出し電圧更新の条件を満たすかどうか判定してもよい。
【0207】
また、
図23に示される処理の同様の処理が、例えば第1実施形態の第1変形例に係る第1動作例及び第2動作例においてさらに実行されてもよい。より具体的には、
図23に示される処理の同様の処理が、例えば第1実施形態の第1変形例に係る第1動作例の第2処理において、St31とSt32の処理の間において実行されてもよい。また、
図23に示される処理の同様の処理が、例えば第1実施形態の第1変形例に係る第2動作例の第2処理において、St42とSt43の処理の間において実行されてもよい。また、
図23に示される処理の代わりに、
図23に示される処理の同様の処理が、例えば第1実施形態の第1変形例に係る第1動作例及び第2動作例のそれぞれの第2処理において実行されてもよい。
【0208】
1.5.2.1.2 読出し電圧情報の更新
第1実施形態の第2変形例の第1動作例における読出し電圧情報21の更新について、
図24を用いてさらに説明する。
図24は、第1実施形態の第2変形例の第1動作例における読出し電圧情報の更新の一例を説明するための図である。
【0209】
以下では、チップChip0のブロックBLK0に対して、書込み温度が40℃である書込み処理を含む全体動作、及び書込み温度が90℃である書込み処理を含む全体動作が連続して実行される場合の読出し電圧情報21の更新の例が示される。
図24では、説明を簡単にするため、ブロックBLK0についての読出し電圧の識別子、共通読出し電圧更新用ブロックであるかどうかの情報、及び書込み温度が示される。
【0210】
図24に示す例において、ブロックBLK0は、共通読出し電圧更新用ブロックではない。これにより、各書込み処理を含む全体動作において、第2処理は実行されず、ブロックBLK0に対する第1処理のみが実行される。
【0211】
図24(A)は1回目の書込み処理を含む全体動作が実行される前における読出し電圧情報21である。
図24(B)は1回目の書込み処理を含む全体動作が実行された後、2回目の書込み処理を含む全体動作が実行される前における読出し電圧情報21である。
図24(C)は2回目の書込み処理を含む全体動作が実行された後における読出し電圧情報21である。
【0212】
図24に示す例の1回目の書込み処理を含む第1処理が実行される前において、ブロックBLK0には、書込み処理が実行されていない。これにより、
図24(A)に示すように、読出し電圧の識別子、及び書込み温度は未設定状態である。
【0213】
1回目の書込み処理の書込み温度は、40℃である。これにより、1回目の書込み処理の書込み温度は、第1条件を満たさない。このため、
図24(B)に示すように、1回目の第1処理においてブロックBLK0に対する書込み処理が実行された後、St53の処理によって、読出し電圧算出部38は、ブロックBLK0の読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0を付与する。
【0214】
2回目の書込み処理の書込み温度は、90℃である。すなわち、2回目の書込み処理の書込み温度は、第1条件を満たす。これにより、
図24(C)に示すように、2回目の第1処理においてブロックBLK0に対する書込み処理が実行された後、St52の処理によって、読出し電圧算出部38は、ブロックBLK0の読出し電圧の識別子として、共通読出し電圧の識別子Icom0-1を付与する。
【0215】
なお、上述の第1実施形態の第2変形例では、ブロックBLKの書込み温度に基づいて共通読出し電圧の識別子を付与する場合が示されたが、これに限られない。例えば、読出し電圧算出部38は、各ブロックBLKの疲弊状態に基づいて共通読出し電圧を付与してもよい。この場合、読出し電圧情報21には、例えば読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用ブロックであるかどうかの情報に加えて、各ブロックBLKに対する書込み処理の実行回数が記憶される。以下の説明では、各ブロックBLKに対する書込み処理の実行回数を、疲弊度とも呼ぶ。
【0216】
読出し電圧算出部38が各ブロックBLKの疲弊状態に基づいて共通読出し電圧を付与する場合、チップChip0において、2つの共通読出し電圧の識別子Icom0-0及びIcom0-1は、疲弊度に応じて付与され得る。より具体的には、例えば疲弊度が1000未満であるブロックBLK1、BLK3、及びBLKn…に対して、共通読出し電圧の識別子Icom0-0が付与される。また、例えば疲弊度が1000以上であるブロックBLK0、及びBLK2、…に対して、共通読出し電圧の識別子Icom0-1が付与される。
【0217】
また、コントローラ30は、各ブロックBLKの最新の書込み処理の際に取得するステータス情報に基づいて、複数の共通読出し電圧のうち、当該ブロックBLKに対する共通読出し電圧を適用してもよい。ここで、ステータス情報は、例えば書込み処理において実行されるプログラムループの回数である。
【0218】
また、コントローラ30は、例えば各ブロックBLKの個別読出し電圧の系列データを用いて算出される値に基づいて、複数の共通読出し電圧の識別子のうち、当該ブロックBLKに対する共通読出し電圧の識別子を付与してもよい。個別読出し電圧の系列データを用いて算出される値は、例えば個別読出し電圧の平均値や中央値である。より具体的には、コントローラ30は、当該個別読出し電圧の系列データを用いて算出される値と、既定の読出し電圧との差が予め定められる値未満である場合、当該ブロックBLKは書込み処理、及び読出し処理の特性が悪化していないブロックBLKであると推定する。また、コントローラ30は、上記差が予め定められる値以上である場合、当該ブロックBLKは書込み及び読出しの特性が悪化したブロックBLKであると推定する。コントローラ30は、上記差が予め定められる値未満であるブロックBLKに対して、読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0を付与する。また、コントローラ30は、上記差が予め定められる値以上であるブロックBLKに対して、読出し電圧の識別子として、共通読出し電圧の識別子Icom0-1を付与する。このようにして、コントローラ30は、特性が悪化したブロックBLKと、特性が悪化していないブロックBLKとに分けて、共通読出し電圧の識別子を付与することができる。
【0219】
また、コントローラ30は、例えば各ブロックBLKの物理的な位置や論理的な位置に基づいて、複数の共通読出し電圧の識別子のうち、当該ブロックBLKに対する共通読出し電圧の識別子を付与してもよい。すなわち、メモリシステム1は、例えば各チップChipにおいて、予め定められる第1範囲にあるブロックBLKに対して共通読出し電圧の識別子Icom0-0を付与し、第1範囲と異なる第2範囲にあるブロックBLKに対して共通読出し電圧の識別子Icom0-1を付与するように構成されてもよい。
【0220】
1.5.2.2 第1実施形態の第2変形例の第2動作例
第1実施形態の第2変形例の第2動作例では、各チップChipに対して複数の共通読出し電圧が設定される場合において、書込み処理が実行された共通読出し電圧更新用ブロックが条件を満たすかどうかに応じて、2つの共通読出し電圧の識別子のうちいずれか1つに対応する共通読出し電圧を更新する動作例が示される。
【0221】
1.5.2.2.1 全体動作
第1実施形態の第2変形例に係る第2動作例における全体動作は、第1処理及び第2処理を含む。なお、第2処理が実行されるタイミングは、第1実施形態の第1動作例における第2処理が実行されるタイミングと同様である。
【0222】
第1実施形態の第2変形例に係る第2動作例の全体動作について
図25及び
図26を用いて説明する。
図25は、第1実施形態の第2変形例の第2動作例に係る第1処理を説明するためのフローチャートである。
図26は、第1実施形態の第2変形例の第2動作例に係る第2処理を説明するためのフローチャートである。
【0223】
まず、第1実施形態の第2変形例に係る第2動作例の第1処理が説明される。
【0224】
図25に示すように、St60及びSt62の処理は、第1実施形態の第1動作例の第1動作におけるSt0及びSt2の処理と同等である。
【0225】
St61の処理において、書込み処理が実行されたブロックBLKの読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0が付与される。より一般的には、例えば各チップChipにおいて2つの共通読出し電圧の識別子が付与される場合に、いずれか1つの共通読出し電圧の識別子が付与される。
【0226】
以上のようにして第1処理が終了する。
【0227】
次に、第1実施形態の第2変形例に係る第2動作例における第2処理が説明される。
【0228】
第1実施形態の第2変形例の第2動作例における第2処理は、第1実施形態の第1動作例、第1実施形態の第2動作例、第1実施形態の第1変形例の第1動作例、第1実施形態の第1変形例の第2動作例、及び第1実施形態の第2変形例の第1動作例における第2処理と同様に、例えば書込み対象のブロックBLKが共通読出し電圧更新用ブロックであり、かつ上述の第2処理の開始条件が満たされる場合に実行される。また、書込み対象のブロックBLKが共通読出し電圧更新用ブロックではない場合、第1実施形態の第1動作例、第1実施形態の第2動作例、第1実施形態の第1変形例の第1動作例、第1実施形態の第1変形例の第2動作例、及び第1実施形態の第2変形例の第1動作例と同様に、第2処理は実行されない。
【0229】
St70の処理は、第1実施形態の第1動作例におけるSt3の処理、第1実施形態の第2動作例におけるSt10の処理、第1実施形態の第1変形例の第1動作例におけるSt30の処理、及び第1実施形態の第1変形例の第2動作例のSt40の処理と同等である。St71の処理は、第1実施形態の第1動作例におけるSt4の処理、及び第1実施形態の第1変形例の第2動作例のSt41の処理と同等である。St75の処理は、第1実施形態の第1動作例におけるSt6の処理、及び第1実施形態の第1変形例の第2動作例のSt44の処理と同等である。
【0230】
コントローラ30は、St71の処理の後、書込み対象のブロックBLKが共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧更新の条件を満たすかどうか判定する(St72)。書込み対象のブロックBLKが、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧更新の条件を満たす場合(St72;YES)、処理はSt73に進む。書込み対象のブロックBLKが、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧更新の条件を満たさない場合(St72;NO)、処理はSt74に進む。ここで、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧更新の条件は、例えばSt70の処理において算出された個別読出し電圧に基づく条件である。以下の説明において、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧更新の条件を、単に個別読出し電圧に基づく条件とも呼ぶ。より具体的に、個別読出し電圧に基づく条件は、例えば書込み対象のブロックBLKについて算出された個別読出し電圧と、当該ブロックBLKに対応する共通読出し電圧との差、又は当該個別読出し電圧と、当該共通読出し電圧とは異なる共通読出し電圧や、当該ブロックBLKとは異なるブロックBLKに対応する個別読出し電圧との差が、予め定められた値未満であることである。当該ブロックBLKに対応する共通読出し電圧は、例えば共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧である。
【0231】
St73の処理は、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧が更新されることを除き、第1実施形態の第1動作例におけるSt5の処理、第1実施形態の第2動作例におけるSt11の処理、及び第1実施形態の第1変形例の第1動作例におけるSt32の処理、第1実施形態の第1変形例の第2動作例のSt43の処理と同等である。
【0232】
St74の処理は、共通読出し電圧の識別子Icom0-1に対応する共通読出し電圧が更新されることを除き、第1実施形態の第1動作例におけるSt5の処理、第1実施形態の第2動作例におけるSt11の処理、及び第1実施形態の第1変形例の第1動作例におけるSt32の処理、第1実施形態の第1変形例の第2動作例のSt43の処理と同等である。
【0233】
なお、上述の動作例では、書込み処理が実行されたブロックBLKの個別読出し電圧が記憶される例について説明したが、これに限られない。例えば、第1実施形態の第1変形例の第1動作例と同様に、書込み対象のブロックBLKの個別読出し電圧を用いて共通読出し電圧を更新した際に、個別読出し電圧が記憶されなくてもよい。この場合、例えばSt74の処理において共通読出し電圧を更新した後、書込み対象のブロックBLKに対して共通読出し電圧の識別子Icom0-1が付与されてもよい。
【0234】
1.5.2.2.2 読出し電圧情報の更新
第1実施形態の第2変形例の第2動作例における読出し電圧情報21の更新について、
図27を用いてさらに説明する。
図27は、第1実施形態の第2変形例の第2動作例における読出し電圧情報の更新の一例を説明するための図である。
【0235】
以下では、チップChip0のブロックBLK0に対して、2回の全体動作が連続して実行される場合の読出し電圧情報21の更新の例が示される。
図27では、説明を簡単にするため、ブロックBLK0についての読出し電圧の識別子、個別読出し電圧、共通読出し電圧更新用ブロックであるかどうかの情報、個別読出し電圧に基づく条件を満たすかどうかの情報、並びに共通読出し電圧の識別子Icom0-0及びIcom0-1のそれぞれに対応する共通読出し電圧が示される。なお、
図27中、個別読出し電圧に基づく条件が満たされる場合に、個別読出し電圧に基づく条件に対応する欄に“○”が示される。また、
図27中、個別読出し電圧に基づく条件が満たされない場合に、個別読出し電圧に基づく条件に対応する欄に“×”が示される。
【0236】
また、以下では、個別読出し電圧に基づく条件が、書込み対象のブロックBLKについて算出された個別読出し電圧と、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧との差が、予め定められた値未満である例、が説明される。
【0237】
図27に示す例において、ブロックBLK0は、共通読出し電圧更新用ブロックである。これにより、各全体動作において、第1処理及び第2処理が実行される。
【0238】
図27(A)は1回目の全体動作が実行される前における読出し電圧情報21である。
図27(B)は1回目の全体動作が実行された後、2回目の全体動作が実行される前における読出し電圧情報21である。
図27(C)は2回目の全体動作が実行された後における読出し電圧情報21である。
【0239】
図27に示す例の1回目の書込み処理を含む第1処理が実行される前において、ブロックBLK0の読出し電圧の識別子として、共通読出し電圧の識別子Icom0-0が付与される。また、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧として、電圧Vc0-0(0)が記憶される。また、共通読出し電圧の識別子Icom0-1に対応する共通読出し電圧として、電圧Vc0-1(0)が記憶される。
【0240】
1回目の全体動作のSt71の処理において、ブロックBLK0の個別読出し電圧として、電圧Vi0-0(0)が記憶される。ブロックBLK0の個別読出し電圧としての電圧Vi0-0(0)と、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧としての電圧Vc0-0(0)との差は、例えば予め定められた値未満である。これにより、St72の処理において、個別読出し電圧に基づく条件が満たされる。このため、
図27(B)に示すように、St73の処理によって、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧が、電圧Vc0-0(0)から電圧Vc0-0(1)に更新される。また、St75の処理において、ブロックBLK0に対して個別読出し電圧の識別子Iiが付与される。
【0241】
2回目の全体動作のSt71の処理において、ブロックBLK0の個別読出し電圧として、電圧Vi0-0(1)が記憶される。ブロックBLK0の個別読出し電圧としての電圧Vi0-0(1)と、共通読出し電圧の識別子Icom0-0に対応する共通読出し電圧としての電圧Vc0-0(1)との差は、例えば予め定められた値以上である。これにより、St72の処理において、個別読出し電圧に基づく条件は満たされない。このため、
図27(C)に示すように、St74の処理によって、共通読出し電圧の識別子Icom0-1に対応する共通読出し電圧が、電圧Vc0-1(0)から電圧Vc0-1(1)に更新される。また、St75の処理において、ブロックBLK0に対して個別読出し電圧の識別子Iiが付与される。
【0242】
第1実施形態の第2変形例によっても、第1実施形態及び第1実施形態の第1変形例と同様の効果が奏される。
【0243】
2 第2実施形態
上述の第1実施形態、第1実施形態の第1変形例、及び第1実施形態の第2変形例では、書込み処理を実行した後の経過時間に基づいて読出し電圧が更新される例を示したが、これに限られない。コントローラ30は、ホスト機器2等からの書込み処理等の指示に関わらず、メモリシステム1の内部処理において読出し電圧を更新すると判定されたタイミングにおいて、読出し電圧を更新してもよい。
【0244】
以下では、第2実施形態に係るメモリシステムの構成及び動作について説明される。
【0245】
2.1 構成
第2実施形態に係るメモリシステム1の構成について
図28を用いて説明する。
図28は、第2実施形態に係る不揮発性メモリの構成の一例を説明するためのブロック図である。
【0246】
第2実施形態に係るメモリシステム1の不揮発性メモリ10及び揮発性メモリ20の構成は、第1実施形態に係るメモリシステム1の不揮発性メモリ10及び揮発性メモリ20の構成と実質的に同等である。
【0247】
第2実施形態に係るメモリシステム1のコントローラ30は、CPU31、バッファメモリ32、ホストインタフェース回路33、ECC回路34、NANDインタフェース回路35、DRAMインタフェース回路36、読出し電圧選択部37、読出し電圧算出部38、及び算出対象判定部39を含む。第2実施形態に係るメモリシステム1のコントローラ30において、CPU31、バッファメモリ32、ホストインタフェース回路33、ECC回路34、NANDインタフェース回路35、DRAMインタフェース回路36、読出し電圧選択部37、及び読出し電圧算出部38の構成は、第1実施形態に係るメモリシステム1におけるこれらの構成と同等である。
【0248】
算出対象判定部39は、例えばパトロール処理の際に、フェイルビット数Eに基づいて、各ブロックBLKの読出し電圧を更新するかどうかを判定する。パトロール処理は、例えば有効なブロックに対して定期的に実行される内部処理である。コントローラ30は、パトロール処理において、例えば不揮発性メモリ10内の複数のページを巡回することで、エラー訂正処理が可能かどうかを判定する。また、コントローラ30は、当該判定の結果に基づいて、読出し電圧を最適な状態に保つ。
【0249】
2.2 動作
第2実施形態に係るメモリシステム1の動作について説明する。
【0250】
2.2.1 第2実施形態の動作例
第2実施形態の動作例では、パトロール動作においてエラー訂正処理ができる最大のフェイルビット数Ethを超えてはいないものの、フェイルビット数Eが多いと判定されたブロックBLKの読出し電圧が更新される動作例が説明される。
【0251】
2.2.1.1 パトロール処理
まず、第2実施形態に係るメモリシステム1におけるパトロール処理について
図29を用いて説明する。
図29は、第2実施形態の動作例に係るメモリシステムにおけるパトロール処理を説明するためのフローチャートである。なお、以下では説明を簡単にするため、各チップChipが1つのプレーンPLNを含む場合について説明する。
【0252】
St80において、コントローラ30は、変数i0、j0、及びk0を初期化する(i0=j0=k0=0)。
【0253】
読出し電圧選択部37は、チップChipi0のブロックBLKj0に対して付与される読出し電圧の識別子に基づいて、当該ブロックBLKの読出し電圧として、当該読出し電圧の識別子に対応する読出し電圧を適用する(St81)。なお、読出し電圧を適用する処理は、第1実施形態の第3動作例のSt20~St23の処理と実質的に同等である。
【0254】
コントローラ30は、チップChipi0のブロックBLKj0のセルユニットCUk0に対して、上記決定される読出し電圧を用いてパトロール読出し処理を実行する(St82)。より具体的には、コントローラ30は、パトロール読出し処理を実行する旨のコマンドセットを発行し、不揮発性メモリ10に送信する。不揮発性メモリ10は、当該コマンドセットを受信すると、上記決定される読出し電圧を用いてセルユニットCUk0からデータを読出す。当該読出されたデータは、コントローラ30に送信される。
【0255】
なお、以下の説明では、パトロール読出し処理において、不揮発性メモリ10は、セルユニットCUk0に記憶された全てのページからデータを読出して、コントローラ30に出力するものとして説明するが、これに限られない。例えば、不揮発性メモリ10は、セルユニットCUk0に記憶された特定の1ページ又は複数のページからデータを読出して、コントローラ30に出力してもよい。
【0256】
コントローラ30内のECC回路34は、上記読出されたデータを用いてエラー検出及びエラー訂正処理を行う。そして、コントローラ30は、エラー訂正に成功したかどうかを判定する(St83)。エラー訂正に成功したと判定された場合(St83;YES)、処理はSt84に進む。エラー訂正に失敗したと判定された場合(St83;NO)、処理はSt86に進む。
【0257】
算出対象判定部39は、上記エラー検出の結果を用いて、チップChipi0のブロックBLKj0のセルユニットCUk0のフェイルビット数Eが予め定められた基準値Ecより多いかどうか判定する(St84)。ここで、基準値Ecは、例えばセルユニットCUについてエラー訂正処理ができる最大のフェイルビット数Eth未満の数である。基準値Ecは、例えばフェイルビット数Ethの40%以上の値である。セルユニットCUk0のフェイルビット数Eが基準値Ecより多いと判定された場合(St84;YES)、処理はS65に進む。チップChipi0のブロックBLKj0のセルユニットCUk0のフェイルビット数Eが基準値Ec以下であると判定された場合(St84;NO)、処理はSt87に進む。
【0258】
セルユニットCUk0のフェイルビット数Eが基準値Ecより多いと判定された場合(St84;YES)、コントローラ30は読出し電圧の更新処理を実行する(St85)。読出し電圧の更新処理の詳細については後述する。そして、処理はSt89に進む。
【0259】
エラー訂正に失敗したと判定された場合(St83;NO)、コントローラ30はその他のリトライ処理を実行する(St86)。そして、処理はSt89に進む。
【0260】
チップChipi0のブロックBLKj0のセルユニットCUk0のフェイルビット数Eが基準値Ec以下であると判定された場合(St84;NO)、コントローラ30は、チップChipi0のブロックBLKj0内のセルユニットCUのパトロール読出し処理が終了したかどうかを判定する(St87)。チップChipi0のブロックBLKj0内のセルユニットCUのパトロール読出し処理が終了したと判定された場合(St87;YES)、処理はSt89に進む。チップChipi0のブロックBLKj0内にパトロール読出し処理を実行すべきセルユニットCUが残っていると判定された場合(St87;NO)、処理はSt88に進む。
【0261】
チップChipi0のブロックBLKj0内にパトロール読出し処理を実行すべきセルユニットCUが残っていると判定された場合(St87;NO)、コントローラ30は、変数k0をインクリメントする(St88)。そして、処理はSt82に進む。これにより、チップChipi0のブロックBLKj0における全てのセルユニットCUについてパトロール読出し処理が完了するまで、St82~St88の処理が繰り返される。
【0262】
St85の処理が実行された場合、及びチップChipi0のブロックBLKj0の全てのセルユニットCUに対してパトロール読出し処理を実行したと判定された場合(St87;YES)、コントローラ30は、チップChipi0における全てのブロックBLKに対してパトロール読出し処理を実行したかどうかを判定する(St89)。チップChipi0における全てのブロックBLKに対してパトロール読出し処理を実行したと判定された場合(St89;YES)、処理はSt91に進む。チップChipi0内にパトロール読出し処理を実行すべきブロックBLKが残っていると判定された場合(St89;NO)、処理はSt90に進む。
【0263】
チップChipi0内にパトロール読出し処理を実行すべきブロックBLKが残っていると判定された場合(St89;NO)、コントローラ30は、変数j0をインクリメントする(St90)。また、コントローラ30は、変数k0を初期化する(k0=0)。そして、処理はSt81に進む。これにより、チップChipi0における全てのブロックBLKについてパトロール読出し処理が完了するまで、St81~St90が繰り返される。
【0264】
チップChipi0における全てのブロックBLKに対してパトロール読出し処理を実行したと判定された場合(St89;YES)、コントローラ30は、全てのチップChipに対してパトロール読出し処理を実行したかどうかを判定する(St91)。全てのチップChipに対してパトロール読出し処理を実行したと判定された場合(St91;YES)、パトロール処理は終了する。パトロール読出し処理を実行すべきチップChipが残っていると判定された場合(St91;NO)、処理はSt92に進む。
【0265】
パトロール読出し処理を実行すべきチップChipが残っていると判定された場合(St91;NO)、コントローラ30は、変数i0をインクリメントする(St91)。また、コントローラ30は、変数j0及びk0を初期化する(j0=k0=0)。そして、処理はSt81に進む。これにより、全てのチップChipについてパトロール読出し処理が完了するまで、St81~St92が繰り返される。
【0266】
以上の動作によりパトロール処理が終了する。
【0267】
なお、上述したパトロール処理のフローはあくまで一例であり、これに限られない。
【0268】
また、パトロール読出し処理は、各ブロックBLKのうち、予め選択される一部の代表セルユニットCUに対して実行されてもよい。また、代表セルユニットCUの数は、ブロックBLKによって異なってもよい。
【0269】
また、例えば、パトロール読出し処理は、各チップChipのうち、予め選択される一部の代表ブロックBLKに対して実行されてもよい。また、代表ブロックBLKの数は、チップChipによって異なってもよい。
【0270】
また、例えば、コントローラ30は、不揮発性メモリ10内の記憶領域の一部をパトロール処理対象から除外してもよい。より具体的には、コントローラ30は、例えば、データが書き込まれていない未使用のブロックBLK、及び有効なデータが書き込まれておらず参照されることがない無効なブロックBLK等を、パトロール読出し処理の対象から除外し得る。
【0271】
また、例えば、パトロール処理は、複数のチップChipに対して並列に実行されてもよい。
【0272】
また、
図29の例では、各チップChipが1つのプレーンPLNを含む場合を示したが、これに限られない。各チップChipが複数のプレーンPLNを含む場合、パトロール処理は、複数のプレーンPLNに対して実行されてもよい。
【0273】
2.2.1.2 読出し電圧の更新処理
St85の読出し電圧の更新処理について、
図30を用いて説明する。
図30は、第2実施形態に係る読出し電圧の更新処理を説明するためのフローチャートである。
【0274】
チップChipi0のブロックBLKj0のセルユニットCUk0のフェイルビット数Eが基準値Ecより多いと判定された場合(St84;YES)、コントローラ30は、チップChipi0のブロックBLKj0が更新処理の条件を満たすかどうか判定する(St100)。更新処理の条件は、例えば当該ブロックBLKが有効なブロックBLKであることである。また、更新処理の条件は、例えば上記ブロックBLKが読出し電圧更新処理の対象となった回数が、予め決められた回数未満であることである。また、更新処理の条件は、例えば予め決められた期間内に、上記ブロックBLKが一度も第1対象リストに加えられていないことである。当該期間は、例えば上記ブロックBLKに対する書込み処理が実行されてから現在までの期間、及び最近の予め決められた期間等である。上記ブロックBLKが更新処理の条件を満たすと判定された場合(St100;YES)、処理はSt101に進む。上記ブロックBLKが更新処理の条件を満たさないと判定された場合(St100;NO)、読出し電圧の更新処理は終了する。
【0275】
読出し電圧算出部38は、チップChipi0のブロックBLKj0の個別読出し電圧を算出する(St101)。なお、個別読出し電圧を算出する処理は、書込み処理が実行されたブロックBLKに関する処理が実行される代わりに、フェイルビット数Eが基準値Ecより多いと判定されたセルユニットCUを含むブロックBLKに関する処理が実行されることを除き、例えば第1実施形態の第1動作例のSt3の処理、及び第1実施形態の第2動作例のSt10の処理と同様である。そして、処理はSt102に進む。
【0276】
それから、読出し電圧算出部38によって、St101の処理において算出された個別読出し電圧が、チップChipi0のブロックBLKj0の個別読出し電圧として記憶される(St102)。そして、処理はSt103に進む。
【0277】
読出し電圧算出部38は、チップChipi0のブロックBLKj0の読出し電圧の識別子として、個別読出し電圧の識別子Iiを付与する(St103)。そして、読出し電圧の更新処理は終了する(終了)。
【0278】
以上の動作により、読出し電圧の更新処理が実行される。
【0279】
第2実施形態に係るメモリシステム1によっても、第1実施形態、第1実施形態の第1変形例、及び第1実施形態の第2変形例に係るメモリシステムと同様の効果が奏される。
【0280】
また、第2実施形態の動作例によれば、パトロール処理において、フェイルビット数Eが、エラー訂正処理ができる最大のフェイルビット数Ethに達する前に、フェイルビット数Eが多いブロックBLKの読出し電圧の更新処理を実行することができる。これにより、例えばリトライ処理の頻度を低減することができる。このため、フェイルビット数Eの増加によるリードレイテンシの増加を抑制することができる。
【0281】
また、St100において、読出し電圧の更新処理の対象であるブロックBLKが有効なブロックBLKであることが、更新処理の条件とされる。これにより、読出し電圧の更新処理を実行する際に無効なブロックBLKに対する処理の実行を避けることができる。このことによっても、リードレイテンシの増加を抑制することができる。
【0282】
また、St100において、読出し電圧の更新処理の対象であるブロックBLKがこれまでに読出し電圧更新処理の対象のブロックBLKとして選択された回数が、予め決められた回数未満であることが、更新処理の条件とされ得る。当該選択された回数が予め決められた回数以上であるブロックは、例えばブロック内のデータが破壊されていることで適切な読出し電圧を算出することができないブロックである可能性がある。このため、このようなブロックに対して、読出し電圧の更新処理が繰り返されることによって、システムに対する処理の負荷が大きくなることを抑制することができる。
【0283】
2.3 第2実施形態の第1変形例
上述の第2実施形態では、パトロール処理内において、読出し電圧の更新処理が実行される場合を示したが、これに限られない。読出し電圧の更新処理は、パトロール処理の終了後に実行されてもよい。以下では、第2実施形態の第1変形例に係るメモリシステムの構成及び動作について、第2実施形態に係るメモリステムの構成及び動作と異なる点が説明される。
【0284】
2.3.1 構成
第2実施形態の第1変形例において、揮発性メモリ20は、コントローラ30の指示によって、図示しない第1対象リストを記憶する。第1対象リストには、読出し電圧の更新処理を実行するために、読出し電圧の更新処理の対象とされるブロックBLKが記憶される。読出し電圧算出部38は、第1対象リストに記憶されるブロックBLKに対して、読出し電圧の更新処理を実行する。
【0285】
第2実施形態の第1変形例に係る不揮発性メモリ10、コントローラ30、及びホスト機器2の構成は、第2実施形態に係る不揮発性メモリ10、コントローラ30、及びホスト機器2の構成と実質的に同等である。また、第2実施形態の第1変形例に係る揮発性メモリ20の構成は、上述のように第1対象リストを記憶することを除き、第2実施形態に係る揮発性メモリ20の構成と同等である。
【0286】
2.3.2 動作
第2実施形態の第1変形例に係るメモリシステム1の動作ついて、第2実施形態の動作例に係るメモリシステムの動作と異なる点が主に説明される。
【0287】
2.3.2.1 パトロール処理
第2実施形態の第1変形例に係るメモリシステム1におけるパトロール処理について
図31を用いて説明する。
図31は、第2実施形態の第1変形例に係るメモリシステムにおけるパトロール処理を説明するためのフローチャートである。
【0288】
第2実施形態の第1変形例のパトロール処理において、St110~St114、及びSt116~St122の処理はそれぞれ、変数i0、j0、及びk0の代わりに変数i1、j1、及びk1を用いることを除き、第2実施形態の動作例のパトロール処理におけるSt80~St84、及びSt86~St92の処理と実質的に同等である。以下では、第2実施形態の第1変形例のパトロール処理について、第2実施形態の動作例のパトロール処理と異なる点が主に説明される。
【0289】
チップChipi1のブロックBLKj1のセルユニットCUk1のフェイルビット数Eが基準値Ecより多いと判定された場合(St114;YES)、コントローラ30は、第1対象リストに、ブロックBLKj1を加える(St115)。そして、処理はSt119に進む。なお、第1対象リストには、St114の処理においてセルユニットCUk1のフェイルビット数Eが基準値Ecより多いと判定された順番に、ブロックBLKが加えられる。
【0290】
以上のようにして、St121の処理において全てのパトロール読出し処理が終了したと判定されるまで、St111~St122の処理を繰り返し実行することで、第2実施形態の第1変形例のパトロール処理が終了する。
【0291】
コントローラ30は、例えば上述のようなパトロール処理の後、次のパトロール処理の前に、第1対象リストに基づいて読出し電圧の更新処理を実行する。
【0292】
なお、上記説明では、フェイルビット数Eが基準値Ecより多い全てのブロックBLKを第1対象リストに加える例を示したが、これに限られない。第1対象リストに加えるブロックBLKは、各チップChipあたり1つであってもよいし、予め決められた数であってもよい。各チップChipあたり1つのブロックBLKを第1対象リストに加える場合、当該1つのブロックBLKは、各チップChipにおいて最もフェイルビット数Eが多いブロックBLKとしてもよい。
【0293】
また、複数のプレーンPLNに対してパトロール処理を実行する際に、第1対象リストに加えるブロックBLKは、各プレーンPLNあたり1つであってもよいし、予め決められた数であってもよい。各プレーンPLNあたり1つのブロックBLKを第1対象リストに加える場合、当該1つのブロックBLKは、各プレーンPLNにおいて最もフェイルビット数Eが多いブロックBLKとしてもよい。
【0294】
2.3.2.2 読出し電圧の更新処理
次に、第2実施形態の第1変形例に係るメモリシステム1の読出し電圧の更新処理を含む一連の動作について、
図32を用いて説明する。
図32は、第2実施形態の第1変形例に係るメモリシステムの読出し電圧の更新処理を含む一連の動作を説明するためのフローチャートである。
【0295】
例えばホスト機器2から読出し電圧の更新処理の指示があった場合(開始)、コントローラ30は、上述のパトロール処理において作成された第1対象リストのうち、最初のブロックBLKが更新処理の条件を満たすかどうか判定する(St130)。なお、St130の処理は、St100の処理において、チップChipi0のブロックBLKj0のセルユニットCUk0のフェイルビット数Eが基準値Ecより多いと判定された際のブロックBLKj0の代わりに、第1対象リストの最初のブロックBLKに対して処理が実行されることを除き、St100の処理と同様である。最初のブロックBLKが更新処理の条件を満たすと判定された場合(St130;YES)、処理はSt131に進む。最初のブロックBLKが更新処理の条件を満たさないと判定された場合(St130;NO)、処理はSt132に進む。
【0296】
最初のブロックBLKが更新処理の条件を満たすと判定された場合(St130;YES)、メモリシステム1は、最初のブロックBLKに対して読出し電圧の更新処理を実行する(St131)。当該読出し電圧の更新処理は、当該最初のブロックBLKに関する処理が実行されることを除き、第2実施形態の動作例のSt85の処理と同様である。そして、処理はSt132に進む。
【0297】
読出し電圧の更新処理(St131)を実行した後、及び最初のブロックBLKが更新処理の条件を満たさないと判定された場合(St130;NO)、コントローラ30は、上述の最初のブロックBLKを第1対象リストから取り除く(St132)。そして、処理はSt133に進む。
【0298】
コントローラ30は、全ての読出し電圧更新処理が終了したかどうかを判定する(St133)。すなわち、第1対象リストに含まれるブロックBLKがないかどうかを判定する。全ての読出し電圧更新処理が終了したと判定された場合(St133;YES)、処理は終了する。第1対象リストにブロックBLKが含まれる場合(St133;NO)、処理はSt130に進む。
【0299】
以上のようにして、読出し電圧の更新処理を含む一連の動作が終了する(終了)。
【0300】
第2実施形態の第1変形例に係るメモリシステム1によっても、第1実施形態、第1実施形態の第1変形例、第1実施形態の第2変形例、及び第2実施形態に係るメモリシステムと同様の効果が奏される。
【0301】
2.4 第2実施形態の第2変形例
上述の第2実施形態の第1変形例では、読出し電圧の更新処理を含む一連の動作において、フェイルビット数Eが基準値Ecより多いブロックBLKに対して、第1対象リストの順番に読出し電圧の更新処理が実行される場合を示したが、これに限られない。読出し電圧の更新処理を含む一連の動作において、フェイルビット数Eが基準値Ecより多いブロックBLKのうち、一部のブロックBLKの読出し電圧の更新処理が優先的に実行されてもよい。
【0302】
以下では、第2実施形態の第2変形例に係るメモリシステムの構成及び動作について、第2実施形態の第1変形例に係るメモリシステムの構成及び動作と異なる点が説明される。
【0303】
2.4.1 構成
第2実施形態の第2変形例において、揮発性メモリ20は、読出し電圧の更新処理を実行するための第2対象リスト及び第3対象リストを記憶する。第2対象リスト及び第3対象リストは、それぞれ読出し電圧の更新処理の対象とされるブロックBLKが記憶される。第2対象リストに含まれるブロックBLKのフェイルビット数Eは、第3対象リストに含まれるブロックBLKのフェイルビット数Eよりも多い。読出し電圧算出部38は、第2対象リスト及び第3対象リストに基づいて、読出し電圧の更新処理を実行する。
【0304】
第2実施形態の第2変形例に係る不揮発性メモリ10、コントローラ30、及びホスト機器2の構成は、第2実施形態の第1変形例に係る不揮発性メモリ10、コントローラ30、及びホスト機器2の構成と実質的に同等である。また、第2実施形態の第2変形例に係る揮発性メモリ20の構成は、上述のように第2対象リスト及び第3対象リストを記憶することを除き、第2実施形態の第1変形例に係る揮発性メモリ20の構成と同等である。
【0305】
2.4.2 動作
第2実施形態の第2変形例に係るメモリシステム1の動作ついて、第2実施形態の第1変形例に係るメモリシステムの動作と異なる点が主に説明される。
【0306】
2.4.2.1 パトロール処理
(全体動作)
第2実施形態の第2変形例に係るメモリシステム1におけるパトロール処理について、第2実施形態の第1変形例に係るメモリシステムにおけるパトロール処理と異なる点について説明する。
【0307】
第2実施形態の第2変形例のパトロール処理において、コントローラ30は、第2実施形態の第1変形例のパトロール処理におけるSt110~St114、及びSt116~St122と同等の処理を実行する。以下では、第2実施形態の第2変形例のパトロール処理について、第2実施形態の第1変形例のパトロール処理と異なる点が主に説明される。
【0308】
第2実施形態の第2変形例において、コントローラ30は、フェイルビット数Eに基づいて、チップChipi1のブロックBLKj1を、第2対象リスト及び第3対象リストのうちのいずれかに加える(St115)。当該処理の詳細については後述する。
【0309】
第2実施形態の第2変形例のパトロール処理の後、次のパトロール処理の前に、コントローラ30は、第2対象リスト及び第3対象リストに基づいて読出し電圧の更新処理を実行する。第2実施形態の第2変形例の読出し電圧の更新処理については後述する。
【0310】
(第2対象リスト及び第3対象リストの生成)
上述のように、コントローラ30は、フェイルビット数Eに基づいて、ブロックBLKj
1を第2対象リスト又は第3対象リストに加える。以下では、ブロックBLKj
1を第2対象リスト又は第3対象リストに加える処理について、
図33を用いて説明する。
図33は、第2実施形態の第2変形例に係るメモリシステムを用いたパトロール処理における読出し電圧の更新処理のリストに加える処理を示すフローチャートである。
【0311】
セルユニットCUk1のフェイルビット数Eが基準値Ecより多いと判定された場合(St114;YES)、算出対象判定部39は、ブロックBLKj1のセルユニットCUk1のフェイルビット数Eが、エラー訂正処理ができる最大のフェイルビット数Ethに定数aを乗じた値(a×Eth)より多いかどうか判定する(St140)。定数aは1より小さい正の数である。また、値(a×Eth)は、基準値Ecより大きい値である。第2実施形態の第2変形例における基準値Ecは、エラー訂正処理ができる最大のフェイルビット数Ethに定数bを乗じた値(b×Eth)である。定数bは定数aより小さい正の数である。セルユニットCUk1のフェイルビット数Eが値(a×Eth)より多いと判定された場合(St140;YES)、処理はSt141に進む。セルユニットCUk1のフェイルビット数Eが値(a×Eth)以下であると判定された場合(St140;NO)、処理はSt142に進む。
【0312】
セルユニットCUk1のフェイルビット数Eが値(a×Eth)より多いと判定された場合(St140;YES)、算出対象判定部39は、ブロックBLKj1を第2対象リストに加える(St141)。そして、処理は終了する。なお、第2対象リストには、St140の処理においてセルユニットCUk1のフェイルビット数Eが値(a×Eth)より多いと判定された順番に、ブロックBLKが加えられる。
【0313】
セルユニットCUk1のフェイルビット数Eが値(a×Eth)以下であると判定された場合(St140;NO)、コントローラ30は、ブロックBLKj1を第3対象リストに加える(St142)。そして、処理は終了する。なお、第3対象リストには、St140の処理においてセルユニットCUk1のフェイルビット数Eが値(a×Eth)以下であると判定された順番に、ブロックBLKが加えられる。
【0314】
以上のような動作により、読出し電圧更新の処理に関する第2対象リスト及び第3対象リストが生成される。
【0315】
2.4.2.2 読出し電圧の更新処理
次に、第2実施形態の第2変形例に係るメモリシステム1の読出し電圧の更新処理を含む一連の動作について、
図34を用いて説明する。
図34は、第2実施形態の第2変形例に係るメモリシステムの読出し電圧の更新処理を含む一連の動作を説明するためのフローチャートである。
【0316】
例えばホスト機器2から読出し電圧の更新処理の指示があった場合(開始)、St150において、コントローラ30は、変数pを初期化する(p=0)。
【0317】
コントローラ30は、第2対象リストにブロックBLKが含まれるかどうか判定する(St151)。第2対象リストにブロックBLKが含まれる場合(St151;YES)、処理はSt152に進む。第2対象リストにブロックBLKが含まれない場合(St151;NO)、処理はSt154に進む。
【0318】
コントローラ30は、第2対象リストの最初のブロックBLKを読出し電圧の更新処理の対象のブロックBLKとして選択する(St152)。そして、処理はSt153に進む。
【0319】
コントローラ30は、第2対象リストの最初のブロックBLKを第2対象リストから取り除く(St153)。そして、処理はSt157に進む。
【0320】
コントローラ30は、第3対象リストにブロックBLKが含まれているかどうか判定する(St154)。第3対象リストにブロックBLKが含まれる場合(St154;YES)、処理はSt155に進む。第3対象リストにブロックBLKが含まれない場合(St154;NO)、処理は終了する。
【0321】
コントローラ30は、第3対象リストの最初のブロックBLKを読出し電圧の更新処理の対象のブロックBLKとして選択する(St155)。そして、処理はSt156に進む。
【0322】
コントローラ30は、第3対象リストの最初のブロックBLKを第3対象リストから取り除く(St156)。そして、処理はSt157に進む。
【0323】
メモリシステム1は、St152、又はSt155の処理において、読出し電圧の更新処理の対象として選択されたブロックBLKの読出し電圧の更新処理を実行する(St157)。当該読出し電圧の更新処理は、St152、又はSt155の処理において、読出し電圧の更新処理の対象として選択されたブロックBLKに対する処理が実行されることを除き、第2実施形態の動作例のSt85の処理、及び第2実施形態の第2変形例のSt131の処理と同様である。そして、処理はSt158に進む。
【0324】
コントローラ30は、変数pをインクリメントする(St158)。そして、処理はSt159に進む。
【0325】
コントローラ30は、変数pが許容回数Nmax以上であるかどうかを判定する(St159)。変数pが許容回数Nmax以上であると判定された場合(St159;YES)、処理は終了する。変数pが許容回数Nmax未満であると判定された場合(St159;NO)、処理はSt151に進む。これにより、許容回数Nmaxの読出し電圧更新処理が実行されるまで、St151~St159が繰り返される。
【0326】
以上のようにして、読出し電圧の更新処理を含む一連の動作が終了する(終了)。
【0327】
第2実施形態の第2変形例に係るメモリシステム1によっても、第1実施形態、第1実施形態の第1変形例、第1実施形態の第2変形例、第2実施形態、及び第2実施形態の第1変形例に係るメモリシステムと同様の効果が奏される。
【0328】
また、第2実施形態の第2変形例によれば、第2対象リスト及び第3対象リストに基づいて読出し電圧の更新処理を実行することで、第3対象リストに含まれるブロックBLKよりフェイルビット数が多い、第2対象リストに含まれるブロックBLKの読出し電圧の更新処理を優先的に実行することができる。これにより、ECC回路34の訂正限界を超えてしまうブロックBLKの発生を効率的に抑制することができる。また、第2対象リストに含まれるブロックBLKが無い場合であっても、第3対象リストに含まれるブロックBLKに対する読出し電圧の更新処理を実行することで、フェイルビット数の増加を抑制することができる。
【0329】
2.5 第2実施形態の第3変形例
上述の第2実施形態では、パトロール処理において、読出し電圧の更新処理が実行される場合を示したが、これに限られない。外部からの指示に基づいて、読出し電圧の更新処理が実行されてもよい。
【0330】
第2実施形態の第3変形例に係るメモリシステム1の構成は、第2実施形態に係るメモリシステムの構成と実質的に同等である。以下では、第2実施形態の第3変形例に係るメモリシステム1の動作について、第2実施形態に係るメモリシステム1と異なる動作が説明される。
【0331】
第2実施形態の第3変形例に係るメモリシステム1のホスト読出し処理について、
図35を用いて説明する。
図35は、第2実施形態の第3変形例に係るメモリシステムを用いたホスト読出し処理を説明するためのフローチャートである。
【0332】
ホスト機器2から読出し処理の指示があった場合(開始)、読出し電圧選択部37は、当該指示における読出し処理の対象であるセルユニットCUを含むブロックBLKに対して付与される読出し電圧の識別子に基づいて、読出し電圧として、当該ブロックBLKの読出し電圧を適用する(St160)。
【0333】
コントローラ30は、ホスト読出し処理の対象であるセルユニットCUに対して、上記適用される読出し電圧を用いて読出し処理を実行する(St161)。そして、処理はSt162に進む。
【0334】
St162の処理は、チップChipi0のブロックBLKj0のセルユニットCUk0、及びチップChipi1のブロックBLKj1のセルユニットCUk1の代わりに、ホスト読出し処理の対象となるセルユニットCUに対して処理が実行されることを除いて、第2実施形態の動作例のSt83の処理、及び第2実施形態の第1変形例のSt113の処理と実質的に同等である。エラー訂正に成功したと判定された場合(St162;YES)、処理はSt163に進む。エラー訂正に失敗したと判定された場合(St162;NO)、処理はSt165に進む。
【0335】
算出対象判定部39は、St162のエラー検出の結果を用いて、セルユニットCUのフェイルビット数Eが基準値Ecより多いかどうか判定する(St163)。セルユニットCUのフェイルビット数Eが基準値Ecより多いと判定された場合(St163;YES)、処理はSt164に進む。セルユニットCUのフェイルビット数Eが基準値Ec以下であると判定された場合(St163;NO)、ホスト読出し処理は終了する(終了)。
【0336】
セルユニットCUのフェイルビット数Eが基準値Ecより多いと判定された場合(St163;YES)、コントローラ30は、読出し電圧の更新処理を実行する(St164)。St164の処理は、ホスト読出し処理の対象となるセルユニットCUを含むブロックBLKに対して処理が実行されることを除いて、第2実施形態の動作例のSt85の処理、第2実施形態の第1変形例のSt131の処理、及び第2実施形態の第2変形例のSt157の処理と実質的に同等である。そして、ホスト読出し処理は終了する。
【0337】
St165の処理は、チップChipi0のブロックBLKj0のセルユニットCUk0、及びチップChipi1のブロックBLKj1のセルユニットCUk1の代わりに、ホスト読出し処理の対象となるセルユニットCUに関する処理が実行されることを除いて、第2実施形態の動作例のSt86の処理、及び第2実施形態の第1変形例のSt116の処理と実質的に同等である。
【0338】
以上の動作により、ホスト読出し処理は終了する。
【0339】
第2実施形態の第3変形例に係るメモリシステム1によっても、第1実施形態、第1実施形態の第1変形例、第1実施形態の第2変形例、及び第2実施形態に係るメモリシステムと同様の効果が奏される。
【0340】
2.6 第2実施形態の第4変形例
上述の第2実施形態の第3変形例では、ホスト読出し処理内において、読出し電圧の更新処理が実行される場合を示したが、これに限られない。ホスト読出し処理内において読出し電圧の更新処理の対象とされたブロックBLKに対して、ホスト読出し処理とは異なる処理において、読出し電圧の更新処理が実行されてもよい。
【0341】
第2実施形態の第4変形例に係るメモリシステム1の構成は、第2実施形態の第1変形例に係るメモリシステムの構成と実質的に同等である。以下では、第2実施形態の第4変形例に係るメモリシステム1の動作について、第2実施形態の第1変形例に係るメモリシステム1と異なる動作が説明される。
【0342】
第2実施形態の第4変形例に係るメモリシステム1のホスト読出し処理について、
図36を用いて説明する。
図36は、第2実施形態の第4変形例に係るメモリシステムを用いたホスト読出し処理を説明するためのフローチャートである。
【0343】
St170~St173、及びSt175の処理は、第2実施形態の第3変形例におけるSt160~St163、及びSt165の処理と実質的に同等である。
【0344】
ホスト読出し処理の対象のセルユニットCUのフェイルビット数Eが基準値Ecより多いと判定された場合(St173;YES)、コントローラ30は、読出し電圧更新処理のリストに、当該セルユニットCUを含むブロックBLKを加える(St174)。なお、コントローラ30は、第2実施形態の第1変形例と同様に1つの対象リストを作成してもよいし、第2実施形態の第2変形例と同様にフェイルビット数に基づいて2つの対象リストを作成してもよい。そして、ホスト読出し処理は終了する。
【0345】
第1対象リストを用いた読出し電圧の更新処理、並びに第2対象リスト及び第3対象リストを用いた読出し電圧の更新処理はそれぞれ、第2実施形態の第1変形例における読出し電圧の更新処理、並びに第2実施形態の第2変形例における読出し電圧の更新処理と同等とすることができる。
【0346】
第2実施形態の第4変形例に係るメモリシステム1によっても、第1実施形態、第1実施形態の第1変形例、第1実施形態の第2変形例、第2実施形態、第2実施形態の第1変形例、第2実施形態の第2変形例、及び第2実施形態の第3変形例に係るメモリシステムと同様の効果が奏される。
【0347】
2.7 第2実施形態の第5変形例
上述の第2実施形態の動作例では、パトロール動作においてエラー訂正処理ができる最大のフェイルビット数を超えてはいないものの、フェイルビット数Eが多いと判定されたブロックBLKの読出し電圧が更新される動作例が示されたが、これに限られない。パトロール処理において、エラー訂正処理により訂正できる最大のフェイルビット数を超えたと判定されたブロックBLKの読出し電圧が更新されてもよい。
【0348】
第2実施形態の第5変形例に係る構成は、第2実施形態に係る構成と同等とすることができる。以下では、第2実施形態の第5変形例に係る動作について、第2実施形態に係る動作と異なる点が主に説明される。
【0349】
2.7.1 動作例
第2実施形態の第5変形例では、パトロール処理において、エラー訂正処理により訂正できる最大のフェイルビット数Ethを超えたと判定されたブロックBLKの読出し電圧を更新する動作例が説明される。
【0350】
2.7.1.1 読出し電圧の更新処理
第2実施形態の第5変形例における全体動作において、
図37を用いて説明する。
図37は、第2実施形態の第5変形例に係るメモリシステムを用いたパトロール処理における読出し電圧の更新処理のリストに加える処理を示すフローチャートである。
【0351】
第2実施形態の第5変形例のパトロール処理において、St180~St182、及びSt185~St190の処理はそれぞれ、変数i0、j0、及びk0の代わりに変数i2、j2、及びk2を用いることを除き、第2実施形態の動作例のパトロール処理におけるSt80~St82、St87~St92の処理と実質的に同等である。以下では、第2実施形態の第5変形例のパトロール処理について、第2実施形態の動作例のパトロール処理と異なる点が主に説明される。
【0352】
コントローラ30は、エラー訂正に成功したかどうかを判定する(St183)。エラー訂正に成功したと判定された場合(St183;YES)、処理はSt185に進む。エラー訂正に失敗したと判定された場合(St183;NO)、処理はSt184に進む。
【0353】
エラー訂正に失敗したと判定された場合(St183;NO)、読出し電圧算出部38は、チップChipi0のブロックBLKj0の代わりに、チップChipi2のブロックBLKj2に関する処理を実行することを除き、第2実施形態の動作例のSt85の処理、第2実施形態の第1変形例のSt131の処理、第2実施形態の第2変形例のSt157の処理、及び第2実施形態の第3変形例のSt164の処理と同様に、読出し電圧の更新処理を実行する(St184)。これにより、読出し電圧算出部38によって、チップChipi2のブロックBLKj2の個別読出し電圧として、算出された個別読出し電圧が記憶される。また、読出し電圧算出部38は、チップChipi2のブロックBLKj2の読出し電圧の識別子として、個別読出し電圧の識別子Iiを付与する。そして、処理はSt187に進む。
【0354】
以上のようにして、第2実施形態の第5変形例の動作が実行される。
【0355】
第2実施形態の第5変形例に係るメモリシステム1によっても、第1実施形態、第1実施形態の第1変形例、及び第1実施形態の第2変形例に係るメモリシステムと同様の効果が奏される。
【0356】
3 その他
なお、上述の例では、チップChip毎に共通読出し電圧が適用される場合を説明したが、これに限られない。共通読出し電圧は、プレーンPLN毎、プレーンPLN内の複数のブロックBLKの集合毎に適用されてもよい。プレーンPLN内の複数のブロックBLKの集合毎に共通の読出し電圧が適用される場合、プレーンPLN内の複数のブロックBLKの集合は、例えば、各プレーンPLNにおいて、センスアンプモジュールと各ブロックBLKとの物理的な距離に基づいて分けられる。
【0357】
また、上述の例では、ブロックBLK毎に読出し電圧の識別子が付与される場合を説明したが、これに限られない。読出し電圧の識別子は、ブロックBLKよりも小さい単位に対して付与されてもよい。ブロックBLKよりも小さい単位は、例えば1つ以上のセルユニットCUを含むワード線グループである。この場合、メモリシステム1の揮発性メモリ20は、例えばワード線グループ毎の読出し電圧情報を記憶する。すなわち、例えば各ワード線グループの読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用のワード線グループであるかどうかの情報が記憶される。共通読出し電圧更新用のワード線グループは、共通読出し電圧更新用のブロックに対応する。また、第1処理及び第2処理を含む全体動作、パトロール処理、及びホスト読出し処理において、各ブロックBLKに対して処理が実行される代わりに、ワード線グループを対象とする処理が実行され得る。また、各チップChipが、例えば1つ以上のブロックBLKと1つ以上のワード線グループとを含む、異なる構成単位の組合せに基づいて、管理されてもよい。この場合、読出し電圧情報21は、1つ以上のブロックBLKの各々に関する読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用のブロックであるかどうかの情報、並びに1つ以上のワード線グループの各々に関する読出し電圧の識別子、個別読出し電圧、及び共通読出し電圧更新用のワード線グループであるかどうかの情報を含み得る。また、第1処理及び第2処理を含む全体動作、パトロール処理、及びホスト読出し処理において、ブロックBLKを対象とする処理、及びワード線グループを対象とする処理がいずれも実行され得る。
【0358】
また、上述の実施形態では、読出し電圧情報21が揮発性メモリ20のみに記憶される場合を示したが、これに限られない。メモリシステム1は、読出し電圧情報21の少なくとも一部が不揮発性メモリ10に記憶されるように構成されてもよい。また、メモリシステム1は、例えば不揮発性メモリ10が、読出し電圧情報21のうち最新の更新された情報及び追加された情報を、定期的に又は不定期的に記憶するように構成されてもよい。これにより、メモリシステム1の電源が不正に切断された場合等に、不揮発性メモリ10に記憶される読出し電圧情報21に関する情報に基づいて、読出し電圧情報21を復旧することができる。
【0359】
上記ではいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことが出来る。これら実施形態及びその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0360】
1…メモリシステム、2…ホスト機器、10…不揮発性メモリ、11A、11B…メモリセルアレイ、12…コマンドレジスタ、13…アドレスレジスタ、14…シーケンサ、15…ドライバモジュール、16A、16B…ロウデコーダモジュール、17A、17B…センスアンプモジュール、20…揮発性メモリ、30…コントローラ、21…読出し電圧情報、22…補正量情報、31…プロセッサ、32…バッファメモリ、33…ホスト I/F、34…ECC回路、35…NAND I/F、36…DRAM I/F、37…読出し電圧選択部、38…読出し電圧算出部、39…算出対象判定部。