図面 (/)

技術 メモリシステム

出願人 東芝メモリ株式会社
発明者 徳冨司白川政信黒瀬賢吾高田万里江山城遼岩崎清隆小島慶久
出願日 2018年9月14日 (2年2ヶ月経過) 出願番号 2018-172736
公開日 2020年3月26日 (8ヶ月経過) 公開番号 2020-047318
状態 未査定
技術分野 不揮発性半導体メモリ 半導体メモリ
主要キーワード 谷位置 パッケージ群 評価指標算出 メモリグループ 通常リード ビットセレクタ ピラー状 DAC値
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2020年3月26日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

読出し電圧補正によるレイテンシの増加を抑制する。

解決手段

一実施形態のメモリシステムは、メモリコントローラと、各々が複数のメモリセルを含む複数のセルユニットを備えた第1不揮発性メモリと、を備える。メモリコントローラは、第1セルユニットから読み出した第1データセットと、第1データセットに対して誤り訂正処理を試みて生成した第1期待データセットと、を第1バッファに格納し、第1セルユニット内の複数のメモリセルのうち、第1データセット及び第1期待データセット内のデータの第1及び第2組合せにそれぞれ対応する第1及び第2メモリセルの数をカウントし、第1及び第2メモリセルの数に基づいて、第1セルユニットからの読出し処理に使用する読出し電圧のシフト量を算出し、シフト量を、第1セルユニットからの次の読出し処理に適用するように構成される。

概要

背景

半導体記憶装置としてのNAND型フラッシュメモリと、半導体記憶装置を制御するメモリコントローラと、を含むメモリシステムが知られている。

概要

読出し電圧補正によるレイテンシの増加を抑制する。一実施形態のメモリシステムは、メモリコントローラと、各々が複数のメモリセルを含む複数のセルユニットを備えた第1不揮発性メモリと、を備える。メモリコントローラは、第1セルユニットから読み出した第1データセットと、第1データセットに対して誤り訂正処理を試みて生成した第1期待データセットと、を第1バッファに格納し、第1セルユニット内の複数のメモリセルのうち、第1データセット及び第1期待データセット内のデータの第1及び第2組合せにそれぞれ対応する第1及び第2メモリセルの数をカウントし、第1及び第2メモリセルの数に基づいて、第1セルユニットからの読出し処理に使用する読出し電圧のシフト量を算出し、シフト量を、第1セルユニットからの次の読出し処理に適用するように構成される。

目的

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

各々が複数のメモリセルを含む複数のセルユニットを含むメモリセルアレイを備えた第1不揮発性メモリと、前記第1不揮発性メモリ内の前記複数のセルユニットのうちの第1セルユニットから読み出した第1データセットと、前記第1データセットに対して誤り訂正処理を試みて生成した第1期待データセットと、を第1バッファに格納し、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット及び前記第1期待データセット内のデータの第1組合せに対応する第1メモリセルの数と、第2組合せに対応する第2メモリセルの数と、をカウントし、前記カウントされた前記第1メモリセルの数及び前記第2メモリセルの数に基づいて、前記第1セルユニットからの読出し処理に使用する読出し電圧シフト量を算出し、前記シフト量を、前記第1セルユニットからの次の読出し処理に適用するように構成されたメモリコントローラと、を備えるメモリシステム

請求項2

前記シフト量を算出することは、前記第1メモリセルの数に対する前記第2メモリセルの数の割合を算出し、前記割合が基準値を超えたか否かに応じて、前記シフト量の極性を判定する、ことを含む、請求項1記載のメモリシステム。

請求項3

前記シフト量を算出することは、前記割合の絶対値の大きさに応じて、前記シフト量の絶対値の大きさを判定することを更に含む、請求項2記載のメモリシステム。

請求項4

前記複数のメモリセルの各々は、第1ビット及び第2ビットを含むデータを保持可能であり、前記第1データセットは、前記第1ビットに対応し、前記メモリコントローラは、前記第1セルユニットから読み出した前記第2ビットに対応する第2データセットを前記第1バッファに更に格納し、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット、前記第2データセット、及び前記第1期待データセット内のデータの第3組合せに対応する第3メモリセルの数と、第4組合せに対応する第4メモリセルの数と、をカウントし、前記カウントされた前記第3メモリセルの数及び前記第4メモリセルの数に基づいて、前記第1セルユニットからの前記第1ビットに対応するデータの読出し処理に使用する読出し電圧のシフト量を算出するように構成された、請求項1記載のメモリシステム。

請求項5

前記複数のメモリセルの各々は、第1ビット及び第2ビットを含むデータを保持可能であり、前記第1データセットは、前記第1ビットに対応し、前記メモリコントローラは、前記第1セルユニットから読み出した前記第2ビットに対応する第2データセットと、前記第2データセットに対して誤り訂正処理を試みて生成した第2期待データセットと、を前記第1バッファに更に格納し、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット、前記第2データセット、前記第1期待データセット、及び前記第2期待データセット内のデータの第5組合せに対応する第5メモリセルの数と、第6組合せに対応する第6メモリセルの数と、をカウントし、前記カウントされた前記第5メモリセルの数及び前記第6メモリセルの数に基づいて、前記第1セルユニットからの前記第1ビットに対応するデータの読出し処理に使用する読出し電圧のシフト量を算出するように構成された、請求項1記載のメモリシステム。

請求項6

前記メモリコントローラは、第1電圧及び第2電圧を使用して前記第1データセットを読み出す場合、前記第1電圧と前記第2電圧との間の第3電圧を使用して読み出した分離データセットを前記第1バッファに更に格納し、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット、前記第1期待データセット、及び前記分離データセット内のデータの第7組合せに対応する第7メモリセルの数と、第8組合せに対応する第8メモリセルの数と、をカウントし、前記カウントされた前記第7メモリセルの数及び前記第8メモリセルの数に基づいて、前記第1電圧のシフト量を算出するように構成され、前記第7組合せにおける前記分離データセット内のデータと、前記第8組合せにおける前記分離データセット内のデータとは一致する、請求項1記載のメモリシステム。

請求項7

前記メモリコントローラは、前記第1電圧及び前記第2電圧を使用して前記第1データセットを読み出す場合、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット、前記第1期待データセット、及び前記分離データセット内のデータの第9組合せに対応する第9メモリセルの数と、第10組合せに対応する第10メモリセルの数と、をカウントし、前記カウントされた前記第9メモリセルの数及び前記第10メモリセルの数に基づいて、前記第2電圧のシフト量を算出するように構成され、前記第9組合せにおける前記分離データセット内のデータと、前記第10組合せにおける前記分離データセット内のデータとは一致し、前記第7組合せ及び前記第8組合せの各々における前記分離データセット内のデータと、前記第9組合せ及び前記第10組合せの各々における前記分離データセット内のデータとは互いに異なる、請求項6記載のメモリシステム。

請求項8

前記複数のメモリセルの各々は、第1ビット及び第2ビットを含むデータを保持可能であり、前記第1データセットは、前記第1ビットに対応し、前記メモリコントローラは、前記第1セルユニットから読み出した前記第2ビットに対応する第2データセットと、前記第2データセットに対して誤り訂正処理を試みて生成した第2期待データセットと、前記第1ビット又は前記第2ビットに対応するデータの読出し処理に使用する第4電圧及び第5電圧の間に位置する第6電圧を使用して読み出した分離データセットと、を前記第1バッファに更に格納し、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット、前記第2データセット、前記第1期待データセット、前記第2期待データセット、及び分離データセット内のデータの第11組合せに対応する第11メモリセルの数と、第12組合せに対応する第12メモリセルの数と、をカウントし、前記カウントされた前記第11メモリセルの数及び前記第12メモリセルの数に基づいて、前記第4電圧又は前記第5電圧のシフト量を算出するように構成された、請求項1記載のメモリシステム。

請求項9

前記複数のメモリセルの各々は、第3ビットを含むデータを更に保持可能であり、前記メモリコントローラは、前記算出された前記第4電圧又は前記第5電圧の前記シフト量に基づき、前記第3ビットに対応する第3データの読出し処理に使用する第7電圧のシフト量を推定するように構成された、請求項8記載のメモリシステム。

請求項10

前記メモリコントローラは、互いに異なるm個の読出し電圧を使用して前記第1データセットを読み出す場合(mは2以上の整数)、前記第1データセットと、前記第1期待データセットと、各々が前記m個の読出し電圧のうちの互いに隣り合う2つの間に位置する、互いに異なる(m−1)個の読出し電圧をそれぞれ使用して読み出した(m−1)個の分離データセットと、を前記第1バッファに格納し、前記第1セルユニット内の前記複数のメモリセルのうち、前記(m−1)個の分離データセットのうちの少なくとも1つ、前記第1データセット、及び前記第1期待データセットの第13組合せに対応する第13メモリセルの数と、第14組合せに対応する第14メモリセルの数と、をカウントし、前記カウントされた前記第13メモリセルの数及び前記第14メモリセルの数に基づいて、前記m個の読出し電圧のうちの1つのシフト量を算出するように構成された、請求項1記載のメモリシステム。

請求項11

前記メモリシステムは、各々が複数のメモリセルを含む複数のセルユニットを含むメモリセルアレイを備えた第2不揮発性メモリを更に備え、前記第1不揮発性メモリ及び前記第2不揮発性メモリは、互いに異なるバスを介して前記メモリコントローラに接続され、前記メモリコントローラは、前記第2不揮発性メモリ内の前記複数のセルユニットのうちの第2セルユニットから読み出した第3データセットと、前記第3データセットに対して誤り訂正処理を試みて生成した第3期待データセットと、を第2バッファに格納し、前記第2セルユニット内の前記複数のメモリセルのうち、前記第3データセット及び前記第3期待データセット内のデータの第15組合せに対応する第15メモリセルの数と、第16組合せに対応する第16メモリセルの数と、をカウントし、前記カウントされた前記第15メモリセルの数及び前記第16メモリセルの数に基づいて、前記第2セルユニットからの読出し処理に使用する読出し電圧のシフト量を算出し、前記シフト量を、前記第2セルユニットからの次の読出し処理に適用するように構成された、請求項1記載のメモリシステム。

請求項12

前記メモリコントローラは、第1カウンタ及び第2カウンタを含み、前記第1カウンタを使用して、前記第1メモリセルの数と、前記第2メモリセルの数と、をカウントし、前記第2カウンタを使用して、前記第15メモリセルの数と、前記第16メモリセルの数と、をカウントするように構成された、請求項11記載のメモリシステム。

請求項13

前記第1期待データセットは、前記第1データセットに対する誤り訂正処理に成功して生成された、請求項1記載のメモリシステム。

請求項14

前記第1期待データセットは、前記第1データセットに対する誤り訂正処理に失敗して生成された、請求項1記載のメモリシステム。

請求項15

前記メモリコントローラは、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット内のデータと前記第1期待データセット内のデータとが異なる第17メモリセルの数に基づき、前記シフト量を算出するか否かを判定するように更に構成された、請求項1記載のメモリシステム。

請求項16

前記メモリコントローラは、前記第1不揮発性メモリ内の前記複数のセルユニットの各々に対して、所定の順番で前記読出し処理を繰り返し実行し、前記第1セルユニット内の前記複数のメモリセルのうち、前記第1データセット内のデータと前記第1期待データセット内のデータとが異なる第17メモリセルの数に基づき、前記読出し処理の次の繰り返し単位の際に前記シフト量を算出するか否かを判定する、請求項1記載のメモリシステム。

請求項17

前記複数のセルユニットの各々は、データの書込み処理における単位である、請求項1記載のメモリシステム。

技術分野

0001

実施形態は、メモリシステムに関する。

背景技術

0002

半導体記憶装置としてのNAND型フラッシュメモリと、半導体記憶装置を制御するメモリコントローラと、を含むメモリシステムが知られている。

先行技術

0003

米国特許出願公開第2018/90212号明細書
特開2015−133161号公報

発明が解決しようとする課題

0004

読出し電圧補正によるレイテンシの増加を抑制する。

課題を解決するための手段

0005

実施形態のメモリシステムは、メモリコントローラと、各々が複数のメモリセルを含む複数のセルユニットを含むメモリセルアレイを備えた第1不揮発性メモリと、を備える。上記メモリコントローラは、上記第1不揮発性メモリ内の上記複数のセルユニットのうちの第1セルユニットから読み出した第1データセットと、上記第1データセットに対して誤り訂正処理を試みて生成した第1期待データセットと、を第1バッファに格納し、上記第1セルユニット内の上記複数のメモリセルのうち、上記第1データセット及び上記第1期待データセット内のデータの第1組合せに対応する第1メモリセルの数と、第2組合せに対応する第2メモリセルの数と、をカウントし、上記カウントされた上記第1メモリセルの数及び上記第2メモリセルの数に基づいて、上記第1セルユニットからの読出し処理に使用する読出し電圧のシフト量を算出し、上記シフト量を、上記第1セルユニットからの次の読出し処理に適用するように構成される。

図面の簡単な説明

0006

第1実施形態に係るメモリシステムの構成を説明するためのブロック図。
第1実施形態に係る半導体記憶装置の構成を説明するためのブロック図。
第1実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図。
第1実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための断面図。
第1実施形態に係るメモリセルアレイの閾値分布を説明するための模式図。
第1実施形態に係るセンスアンプモジュールの構成を説明するためのブロック図。
第1実施形態に係るメモリコントローラに保持される履歴テーブルを説明するための模式図。
第1実施形態に係るメモリコントローラ内の読出し電圧補正回路の構成を説明するためのブロック図。
第1実施形態に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャート
第1実施形態に係るメモリシステムにおけるシフト量算出処理を説明するためのフローチャート。
第1実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標算出対象のカウント値が選択されるまでの処理を説明するための模式図。
第1実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標を算出する処理を説明するための模式図。
第1実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標に基づいてシフト量を算出する処理を説明するための模式図。
第1実施形態の第1変形例に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャート。
第1実施形態の第2変形例に係るメモリコントローラに保持される履歴テーブルを説明するための模式図。
第1実施形態の第2変形例に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャート。
第2実施形態に係るメモリシステムにおけるシフト量算出処理を説明するための模式図。
第2実施形態に係るメモリシステムにおけるシフト量算出処理を説明するための模式図。
第3実施形態に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャート。
第4実施形態に係るメモリセルアレイの閾値分布を説明するための模式図。
第4実施形態に係るメモリセルアレイの読出し電圧補正回路の構成を説明するためのブロック図。
第4実施形態に係るメモリシステムにおけるシフト量算出処理を伴う下位ページ読出し処理を説明するためのフローチャート。
第4実施形態に係るメモリシステムにおける下位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第4実施形態に係るメモリシステムにおけるシフト量算出処理を伴う上位ページ読出し処理を説明するためのフローチャート。
第4実施形態に係るメモリシステムにおける上位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第4実施形態に係るメモリシステムにおけるシフト量算出処理を伴う中位ページ読出し処理を説明するためのフローチャート。
第4実施形態に係るメモリシステムにおける中位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第4実施形態に係るメモリシステムにおける中位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第5実施形態に係るメモリセルアレイの閾値分布を説明するための模式図。
第5実施形態に係るメモリシステムにおけるシフト量算出処理を伴う下位ページ読出し処理を説明するためのフローチャート。
第5実施形態に係るメモリシステムにおける下位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第5実施形態に係るメモリシステムにおける下位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第5実施形態に係るメモリシステムにおける下位ページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第6実施形態に係るメモリシステムにおけるシフト量算出及び推定処理を伴う下位ページ及びトップページ読出し処理を説明するためのフローチャート。
第6実施形態に係るメモリシステムにおける下位ページ及びトップページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第6実施形態に係るメモリシステムにおける下位ページ及びトップページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第6実施形態に係るメモリシステムにおける下位ページ及びトップページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第6実施形態に係るメモリシステムにおける下位ページ及びトップページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第6実施形態に係るメモリシステムにおける下位ページ及びトップページ読出し処理に基づくシフト量算出処理を説明するための模式図。
第6実施形態に係るメモリシステムにおける下位ページ及びトップページ読出し処理に基づくシフト量推定処理を説明するための模式図。
その他の第1変形例に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャート。
その他の第2変形例に係るメモリシステムの構成を説明するためのブロック図。

実施例

0007

以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。

0008

1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。以下では、不揮発性メモリとしてのNANDフラッシュメモリと、当該NANDフラッシュメモリを制御するメモリコントローラと、を備えたメモリシステムを例に挙げて説明する。

0009

1.1 構成
1.1.1メモリシステムの構成
第1実施形態に係るメモリシステムの構成について、図1を用いて説明する。

0010

図1に示すように、メモリシステム1は、メモリコントローラ100及びNANDパッケージ群200を備えている。メモリコントローラ100とNANDパッケージ群200とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。

0011

メモリコントローラ100は、ホストバスによってホスト機器2に接続される。そしてメモリコントローラ100は、NANDパッケージ群200を制御し、またホスト機器2から受信した命令応答して、NANDパッケージ群200にアクセスする。ホスト機器2は、例えばデジタルカメラパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインタフェースSAS(Serial attachedSCSI(small computer system interface))、SATA(Serial ATA(advanced technology attachment))、PCIe(Peripheral component interconnect express)、又はNVMe(Non‐volatile memory express)に従ったバスである。

0012

また、メモリコントローラ100は、後述するNANDインタフェースに従った信号の送受信を行うNANDバスによって、NANDパッケージ群200に接続される。

0013

NANDパッケージ群200は、複数のチャネルCH(CH0、CH1、…)を含む。複数のチャネルCHの各々は、対応するNANDバスによって、メモリコントローラ100に対して個別に接続される。なお、NANDパッケージ群200内のチャネル数は、任意の数が適用可能である。

0014

複数のチャネルCHの各々は、複数のチップChip(Chip0、Chip1、…)を含む。複数のチップChipの各々は、例えば、NANDフラッシュメモリとしての機能を有する。なお、チャネルCH内のチップ数は、任意の数が適用可能である。当該構成は、図示しない他のチャネルCHにおいても同様である。チップChipの構成については、後述する。

0015

1.1.2メモリコントローラの構成
引き続き図1を用いて、メモリコントローラ100の構成の詳細について説明する。

0016

メモリコントローラ100は、例えば、SoC(System on a chip)であり、ホストインタフェース回路110、メモリ(RAM)120、プロセッサ(CPU)130、バッファメモリ140、NANDインタフェース回路150、ECC回路160、NANDコントローラ群170、及び読出し電圧補正回路180を備えている。なお、以下に説明されるメモリコントローラ100の各部110−170の機能は、ハードウェア構成、又はハードウェア資源ファームウェアとの組合せ構成のいずれでも実現可能である。また、読出し電圧補正回路180は、特に記載する場合を除き、ファームウェアとは独立して機能し得るハードウェア構成によって実現可能であるものとする。

0017

ホストインタフェース回路110は、ホストバスを介してホスト機器2と接続され、ホスト機器2から受信した命令及びデータを、それぞれプロセッサ130及びバッファメモリ140に転送する。またプロセッサ130の命令に応答して、バッファメモリ140内のデータをホスト機器2へ転送する。

0018

メモリ120は、例えばDRAM又はSRAM等の半導体メモリであり、プロセッサ130の作業領域として使用される。そしてメモリ120は、NANDパッケージ群200を管理するためのファームウェアや、後述する履歴テーブル等の、各種の管理テーブル等を保持する。

0019

プロセッサ130は、メモリコントローラ100全体の動作を制御する。例えば、プロセッサ130は、ホスト機器2から読出し命令を受信した際には、それに応答して、NANDコントローラ群170を制御して、読出し命令を発行させる(このようなホスト機器2からの指示に基づく読出し処理は、ホストリード処理ともいう)。書込み処理及び消去処理の際も同様である。またプロセッサ130は、NANDコントローラ群170を制御して、ホスト機器2に依らずNANDパッケージ群200を管理するための様々な内部処理を実行させる。例えば、プロセッサ130は、パトロールリード処理、及びリフレッシュ処理等のメモリシステム1内における内部処理を実行させ得る。

0020

バッファメモリ140は、書込みデータ読出しデータ、及びECC回路160によって誤り訂正された読出しデータ(期待データとも呼ぶ)を一時的に保持する。

0021

NANDインタフェース回路150は、NANDバスを介してNANDパッケージ群200と接続され、NANDパッケージ群200との通信を司る。そして、プロセッサ130から受信した命令に基づき、後述するNANDインタフェースに基づく各種信号をNANDパッケージ群200と送受信する。

0022

ECC回路160は、NANDパッケージ群200に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちECC回路160は、データの書き込み時には誤り訂正符号を生成して、これを書込みデータに付与し、データの読出し処理時にはこれを復号し、誤りビットの有無を検出する。そして誤りビットが検出された際には、その誤りビットの位置を特定し、誤り訂正する。誤り訂正の方法は、例えば、硬判定復号(Hard bit decoding)及び軟判定復号(Soft bit decoding)を含む。硬判定復号に用いられる硬判定復号符号としては、例えば、BCH(Bose‐Chaudhuri‐Hocquenghem)符号やRS(Reed‐Solomon)符号等を用いることができ、軟判定復号に用いられる軟判定復号符号としては、例えば、LDPC(Low Density Parity Check)符号等を用いることができる。

0023

NANDコントローラ群170は、プロセッサ130からの命令に基づき、NANDパッケージ群200との間で送受信されるコマンド及びアドレス等を生成する。NANDコントローラ群170は、例えば、ホスト機器2から受信したデータの読出し命令に応じて、NANDインタフェースに基づく読出しコマンドをNANDパッケージ群200に対して発行する。また、NANDコントローラ群170は、例えば、ホスト機器2からの命令に依らず、NANDインタフェースに基づく読出しコマンドをNANDパッケージ群200に対して発行し得る。

0024

NANDコントローラ群170は、複数のNANDコントローラ171、172、…を含む。NANDコントローラ171、172、…はそれぞれ、NANDパッケージ群200内のチャネルCH0、CH1、…に対応して設けられる。すなわち、NANDコントローラ171、172、…はそれぞれ、チャネルCH0、CH1、…との間の通信を制御するように構成される。

0025

読出し電圧補正回路180は、NANDパッケージ群200からデータを読み出す際に生成される読出し電圧の補正量(シフト量)を算出するように構成される。読出し電圧補正回路180は、例えば、NANDパッケージ群200からの読出しデータを受けると共に、当該読出しデータをECC回路160によって誤り訂正処理した後の読出しデータを受ける。読出し電圧補正回路180は、誤り訂正前読出しデータ及び誤り訂正後読出しデータに基づき、読出し電圧の補正量を算出し、当該算出した補正量をメモリ120に転送して保持させる。読出し電圧補正回路180の構成の詳細については、後述する。

0026

1.1.3チップの構成
次に、NANDフラッシュメモリに対応するチップの構成について、図2を用いて説明する。図2では、メモリコントローラ100とチャネルCH0との接続関係と、チャネルCH0内の1つのチップChip0の構成と、が一例として示される。

0027

まず、メモリコントローラ100とチャネルCH0との接続関係について説明する。なお、メモリコントローラ100と他のチャネルCH1等との接続関係は、メモリコントローラ100とチャネルCH0との接続関係と同等であるため、説明を省略する。

0028

図2に示すように、チャネルCH0内の各チップChipは、メモリコントローラ100とNANDバスを介して接続され、NANDインタフェースに従う信号を送受信する。NANDインタフェースの信号の具体例は、チップイネーブル信号CEn(CE0n、CE1n、…)、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLEライトイネーブル信号WEn、リードイネーブル信号REn、レディビジー信号RBn(RB0n、RB1n、…)、及び入出力信号DQである。信号CE0n、CE1n、…はそれぞれ、チップChip0、Chip1、…に個別に入力され、信号RBn0、RBn1、…はそれぞれ、チップChip0、Chip1、…から個別に出力される。信号ALE、CLE、WEn、REn、及びDQは、同一のチャネルCH0内の各チップChipに対して共通して入力される。

0029

具体的には、信号CE0n、CE1n、…はそれぞれ、チップChip0、Chip1、…をイネーブルにするための信号であり、“L(Low)”レベルアサートされる。信号CLE及びALEは、各チップChipへの入力信号DQがそれぞれコマンド及びアドレスであることを各チップChipに通知する信号である。信号WEnは“L”レベルでアサートされ、入力信号DQを各チップChipに取り込ませるための信号である。信号REnも“L”レベルでアサートされ、各チップChipから出力信号DQを読み出すための信号である。レディ・ビジー信号RB0n、RB1n、…はそれぞれ、チップChip0、Chip1、…がレディ状態(メモリコントローラ100からの命令を受信出来る状態)であるか、それともビジー状態(メモリコントローラ100からの命令を受信出来ない状態)であるかを示す信号であり、“L”レベルがビジー状態を示す。入出力信号DQは、例えば8ビットの信号である。そして入出力信号DQは、各チップChipとメモリコントローラ100との間で送受信されるデータの実体であり、コマンドCMD、アドレスADD、並びに書き込みデータ及び読出しデータ等のデータDATである。

0030

以上のように構成されることにより、メモリコントローラ100は、チャネルCH間で独立して並行に、チャネルCH内の任意の1つのチップChipと通信することができる。

0031

次に、チップChip0の構成について説明する。なお、他のチップChip1等の構成は、チップChip0の構成と同等であるため、説明を省略する。

0032

チップChip0は、メモリセルアレイ11、ロウデコーダ12、ドライバ13、センスアンプモジュール14、アドレスレジスタ15、コマンドレジスタ16、及びシーケンサ17を備える。

0033

メモリセルアレイ11は、ロウ及びカラム対応付けられた複数の不揮発性のメモリセルを含む複数のブロックBLKを備えている。図2では一例として4つのブロックBLK0〜BLK3が図示されている。そしてメモリセルアレイ11は、メモリコントローラ100から与えられたデータを記憶する。

0034

ロウデコーダ12は、アドレスレジスタ15内のブロックアドレスBAに基づいてブロックBLK0〜BLK3のいずれかを選択し、更に選択したブロックBLKにおいてワード線を選択する。

0035

ドライバ13は、アドレスレジスタ15内のページアドレスPAに基づいて、選択されたブロックBLKに対して、ロウデコーダ12を介して電圧を供給する。

0036

センスアンプモジュール14は、データの読出し時には、メモリセルアレイ11内のメモリセルトランジスタ閾値電圧センスし、データを読み出す。そして、このデータDATをメモリコントローラ100に出力する。データの書き込み時には、メモリコントローラ100から受信した書き込みデータDATを、メモリセルアレイ11に転送する。

0037

アドレスレジスタ15は、メモリコントローラ100から受信したアドレスADDを保持する。このアドレスADDには、上述のブロックアドレスBAとページアドレスPAとが含まれる。コマンドレジスタ16は、メモリコントローラ100から受信したコマンドCMDを保持する。

0038

シーケンサ17は、コマンドレジスタ16に保持されたコマンドCMDに基づき、チップChip0全体の動作を制御する。

0039

次に、上記ブロックBLKの構成について、図3を用いて説明する。図3は、いずれかのブロックBLKの回路図である。

0040

図3に示すように、ブロックBLKは、例えば4つのストリングユニットSU(SU0〜SU3)を含む。そして各々のストリングユニットSUは、複数のNANDストリングNSを含む。メモリセルアレイ11内のブロック数、ブロックBLK内のストリングユニット数、及びストリングユニットSU内のNANDストリング数は任意である。

0041

NANDストリングNSの各々は、例えば64個のメモリセルトランジスタMT(MT0〜MT63)並びに選択トランジスタST1及びST2を含んでいる。メモリセルトランジスタMTは、制御ゲート電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。

0042

ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれセレクトゲート線GD0〜SGD3に接続される。これに対してストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、例えばセレクトゲート線SGSに共通接続される。あるいは、ストリングユニット毎に異なるセレクトゲート線SGS0〜SGS3に接続されても良い。また、同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT63の制御ゲートは、それぞれワード線WL0〜WL63に共通接続される。

0043

また、メモリセルアレイ11内において同一列にあるNANDストリングNSの選択トランジスタST1のドレインは、ビット線BL(BL0〜BL(m−1)、但しmは2以上の自然数)に共通接続される。すなわちビット線BLは、複数のブロックBLK間で同一列にあるNANDストリングNSを共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。

0044

つまりストリングユニットSUは、異なるビット線BLに接続され、かつ同一のセレクトゲート線SGDに接続されたNANDストリングNSの集合体である。ストリングユニットSUのうち、同一のワード線WLに共通接続されたメモリセルトランジスタMTの集合体を、セルユニットCU(又はメモリグループ)とも言う。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合体である。そしてメモリセルアレイ11は、ビット線BLを共通にする複数のブロックBLKの集合体である。

0045

図4は、ブロックBLKの一部領域の断面図である。図4に示すように、p型ウェル領域20上に、複数のNANDストリングNSが形成されている。すなわち、p型ウェル領域20上には、セレクトゲート線SGSとして機能する例えば4層の配線層21、ワード線WL0〜WL63として機能する64層の配線層22、及びセレクトゲート線SGDとして機能する例えば4層の配線層23が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。

0046

そして、これらの配線層23、22、21を通過してp型ウェル領域20に達するピラー状導電体24が形成されている。導電体24の側面には、ゲート絶縁膜25、電荷蓄積層(絶縁膜または導電膜)26、及びブロック絶縁膜27が順次形成され、これらによってメモリセルトランジスタMT、並びに選択トランジスタST1及びST2が形成されている。導電体24は、NANDストリングNSの電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体24の上端は、ビット線BLとして機能する金属配線層28に接続される。

0047

p型ウェル領域20の表面領域内には、n+型不純物拡散層29が形成されている。n+型不純物拡散層29上にはコンタクトプラグ30が形成され、コンタクトプラグ30は、ソース線SLとして機能する金属配線層31に接続される。更に、p型ウェル領域20の表面領域内には、p+型不純物拡散層32が形成されている。p+型不純物拡散層32上にはコンタクトプラグ33が形成され、コンタクトプラグ33は、ウェル配線CPWELLとして機能する金属配線層34に接続される。ウェル配線CPWELLは、p型ウェル領域20を介して導電体24に電位印加するための配線である。

0048

以上の構成が、図4を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のNANDストリングNSの集合によってストリングユニットSUが形成される。

0049

本例では、1つのメモリセルトランジスタMTが例えば2ビットデータを保持可能である。この2ビットデータを、下位のビットからそれぞれ下位(Lower)ビット、及び上位(Upper)ビットと呼ぶことにする。そして、同一のセルユニットCUに属するメモリセルの保持する下位ビットの集合を下位ページと呼び、上位ビットの集合を上位ページと呼ぶ。つまり、1つのストリングユニットSU内における1本のワード線WL(1つのセルユニットCU)には2ページ割当てられ、1つのストリングユニットSUは128ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、セルユニットCUに形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読出しは、このページ毎又はセルユニットCU毎に行っても良い。

0050

図5は、各メモリセルトランジスタMTの取り得るデータ、閾値電圧分布、及び読出し時に用いる電圧について示したダイアグラムである。

0051

上述の通り、メモリセルトランジスタMTは、2ビットデータを保持可能である。すなわち、メモリセルトランジスタMTは、閾値電圧に応じて4個の状態を取ることが出来る。この4個の状態を、閾値電圧の低いものから順に、“Er”状態、“A”状態、“B”状態、及び“C”状態と呼ぶことにする。

0052

“Er”状態のメモリセルトランジスタMTの閾値電圧は、電圧VA未満であり、データの消去状態に相当する。“A”状態のメモリセルトランジスタMTの閾値電圧は、電圧VA以上であり且つ電圧VB(>VA)未満である。“B”状態のメモリセルトランジスタMTの閾値電圧は、電圧VB以上であり且つ電圧VC(>VB)未満である。“C”状態のメモリセルトランジスタMTの閾値電圧は、電圧VC以上であり且つ電圧VREAD未満である。このように分布する4個の状態のうちで、“C”状態が、閾値電圧の最も高い状態である。電圧VA〜VCは、総称して電圧VCGRとも言う。電圧VREADは、例えば、読出し動作時において読出し対象でないワード線WLに印加される電圧であり、保持データにかかわらずメモリセルトランジスタMTをオンさせる電圧である。

0053

また上記閾値電圧分布は、前述の下位ビット及び上位ビットからなる2ビット(2ページ)データを書き込むことで実現される。すなわち、上記“Er”状態から“C”状態と、下位ビット及び上位ビットとの関係は、例えば、次の通りである。
“Er”状態:“11”(“上位/下位”の順で表記
“A”状態:“01”
“B”状態:“00”
“C”状態:“10”
このように、閾値電圧分布において隣り合う2つの状態に対応するデータ間では、2ビットのうちの1ビットのみが変化する。

0054

従って、下位ビットを読み出す際には、下位ビットの値(“0”or“1”)が変化する境界に相当する電圧を用いれば良く、このことは上位ビットでも同様である。

0055

すなわち、図5に示すように、下位ページ読出しは、“A”状態と“B”状態とを区別する電圧VBを読出し電圧として用いる。電圧VBを用いた読出し動作を、読出し動作BRと呼ぶ。読出し動作BRは、メモリセルトランジスタMTの閾値電圧が電圧VB未満か否かを判定する。

0056

そして上位ページ読出しは、“Er”状態と“A”状態とを区別する電圧VA、及び“B”状態と“C”状態とを区別する電圧VCを読出し電圧として用いる。電圧VA及びVCを用いた読出し動作を、それぞれ読出し動作AR及びCRと呼ぶ。読出し動作ARにより、消去状態のメモリセルトランジスタMTが特定される。

0057

なお、メモリセルアレイ11の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ11の構成については、例えば、“THREE DIMENSIONALSTACKED NONVOLATILESEMICONDUCTORMEMORY”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月18日に出願された米国特許出願12/406,524号、“NON‐VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHODOFMANUFACTURING THESAME”という2010年3月25日に出願された米国特許出願12/679,991号、及び“SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。

0058

1.1.4センスアンプモジュールの構成
次に、第1実施形態に係る不揮発性メモリのセンスアンプモジュールの構成について説明する。図6は、第1実施形態に係る不揮発性メモリのセンスアンプモジュールの構成の一例を説明するための回路図である。

0059

図6に示すように、センスアンプモジュール14は、ビット線BL毎に設けられたセンスアンプユニットSAU(SAU0、SAU1、…、SAU(m−1))を備えている。

0060

センスアンプユニットSAUの各々は、センスアンプSA、演算部OP、及び例えば5つのラッチ回路ADL、BDL、CDLSDL、並びにXDLを備えている。

0061

センスアンプSAは、対応するビット線BLの電圧又は電流をセンスすることでデータを読み出し、又書込みデータに応じてビット線BLに電圧を印加する。すなわちセンスアンプSAは、ビット線BLを直接的に制御するモジュールである。そしてセンスアンプSAには、読出し時には、例えばシーケンサ17によってストローブ信号STBが与えられる。センスアンプSAは、ストローブ信号STBがアサートされるタイミングで読出しデータを確定させる。そして、内部に有するラッチ回路(図示せず)にこのデータを保持し、更にラッチ回路ADL、BDL、CDL、SDL、及びXDLのいずれかに転送する。

0062

ラッチ回路ADL、BDL、CDL、及びSDLは、読出しデータ及び書込みデータを一時的に保持する。演算部OPは、センスアンプSA、ラッチ回路ADL、BDL、CDL、SDL、及びXDLに保持されているデータに対して、否定(NOT)演算、論理和(OR)演算、論理積(AND)演算、否定論理積(NAND)演算、否定論理和NOR)演算、排他的論理和(XOR)演算等、種々の論理演算を行う。

0063

これらのセンスアンプSA、ラッチ回路ADL、BDL、CDL、及びSDL、並びに演算部OPは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路XDLに接続されている。

0064

センスアンプモジュール14におけるデータの入出力は、ラッチ回路XDLを介して行われる。すなわち、メモリコントローラ100から受信したデータは、ラッチ回路XDLを介して、ラッチ回路ADL、BDL、CDL、SDL、又はセンスアンプSAに転送される。また、ラッチ回路ADL、BDL、CDL、SDL又はセンスアンプSAのデータは、ラッチ回路XDLを介して、信号DQ<7:0>のいずれかの信号としてメモリコントローラ100へ送信される。ラッチ回路XDLは、チップChipのキャッシュメモリとして機能する。したがって、ラッチ回路ADL、BDL、CDL、及びSDLが使用中であったとしても、ラッチ回路XDLが空いていれば、チップChipはレディ状態となることができる。

0065

なお、図6の例では、ビット線BL0は、信号DQ<0>を通信する信号線に接続され、ビット線BL1は、信号DQ<1>を通信する信号線に接続され、ビット線BL(m−1)に接続されたラッチ回路XDLは、信号DQ<7>を通信する信号線に接続されている。このように、ビット線BLとメモリコントローラ100との間を接続する信号線は、信号DQ<7:0>のいずれかに対応している。すなわち、或るビット線BLに接続されたNANDストリングNSは、信号DQ<7:0>のいずれかに対応付けられる。

0066

1.1.5履歴テーブルの構成
次に、履歴テーブルについて説明する。上述の通り、メモリコントローラ100は、例えば、メモリ120において履歴テーブルを保持する。履歴テーブルの概念について、図7を用いて説明する。図7は、第1実施形態に係るメモリシステムの履歴テーブルの一例を示す概念図である。

0067

図7に示すように、履歴テーブルは、例えば、読出し動作AR〜CRに用いられる読出し電圧のシフト量Δを示す情報(例えばDAC(Digital to Analogue Converter)値)が設定されている。シフト量Δは、例えば、チャネルCH毎、チップChip毎、ブロックBLK毎、ワード線WL毎、及びストリングユニットSU毎に個別に設定され得る。

0068

このシフト量Δについて、以下に説明する。図5で説明した“Er”状態、“A”状態、“B”状態、及び“C”状態に対応する閾値分布は、互いに分離している。したがって、電圧VA、VB、及びVCによって、各状態を区別することができる。しかし、データを書き込んだ後に時間が経過すると、隣接セルとの干渉により閾値分布がシフトする場合がある(これを「データリテンションエラー」と呼ぶ)また、閾値分布は、書込み処理や、読出し処理によっても変動し得る(これを、それぞれ「プログラムディスターブ」、及び「リードディスターブ」と呼ぶ)。このような種々の変動要因(以下、単に「変動要因」とも呼ぶ)に伴う閾値分布が変化すると、隣り合う閾値分布が重なってしまうことがある。

0069

隣り合う閾値分布が重なることにより、上記の電圧VA、VB、及びVCではデータを正しく読み出せないことがある。具体的には、例えば、“A”状態の閾値分布と“B”状態の閾値分布とが重なった場合、“A”状態の閾値分布のうち電圧VBよりも閾値電圧が大きいものは、“B”状態と誤って読み出される可能性があり、“B”状態の閾値分布のうち電圧VBよりも閾値電圧が小さいものは、“A”状態と誤って読み出される可能性がある。このように、誤って読み出されたビットの数(フェイルビット数)が、ECC回路160の訂正可能ビット数を超えた場合、メモリコントローラ100は、チャネルCHからの正しいデータの読出しに失敗する。

0070

このような場合に、メモリコントローラ100は、読出し電圧を通常リード処理における読出し電圧VA、VB、及びVC(以降の説明では、これを「デフォルトの読出し電圧」とも呼ぶ)からシフトさせて、再度データの読出しを試みる。これをシフトリード処理と呼ぶ。この際のデフォルトの読出し電圧からのシフト量を示す情報を、読出し動作AR〜CRの各々について、チャネルCH毎、チップChip毎、ブロックBLK毎、ワード線WL毎、及びストリングユニットSU毎に保持しているのが、図7に示す履歴テーブルである。

0071

本例における履歴テーブルでは、DAC値=0の状態が、デフォルトの読出し電圧(すなわち、シフト量Δ=0)に対応する。シフト量Δは、例えばメモリコントローラ100内の読出し電圧補正回路180によって適宜、適切な値が算出され、メモリ120内の履歴テーブルに保持される。メモリコントローラ100は、この履歴テーブルを参照することにより、読出し対象のメモリセルトランジスタMTに対応するワード線WLに印加すべき読出し電圧を決定する。

0072

図7の例では、(チャネルCH、チップChip、ブロックBLK、ワード線WL、ストリングユニットSU)=(0、0、0、0、0)に対応するセルユニットCUには、読出し動作AR、BR、及びCRに対してそれぞれ+8、+2、及び−7のシフト量Δが設定されている。これは、当該セルユニットCUに読出し動作AR、BR、及びCRを実行する際にはそれぞれ、デフォルトの読出し電圧VA、VB、及びVCに対して、DAC値を+8、+2、及び−7だけ電圧値をシフトさせることを意味する。また、(チャネルCH、チップChip、ブロックBLK、ワード線WL、ストリングユニットSU)=(0、0、0、1、0)に対応するセルユニットCUには、読出し動作AR、BR、及びCRのいずれにも“0”のシフト量が設定されている。これは、当該セルユニットCUに読出し動作AR、BR、及びCRを実行する際にはそれぞれ、デフォルトの読出し電圧VA、VB、及びVCを適用することを意味する。

0073

1.1.6読出し電圧補正回路の構成
次に、メモリコントローラ100内に設けられる読出し電圧補正回路180の構成について、図8を用いて説明する。

0074

図8に示すように、読出し電圧補正回路180は、例えば、読出し電圧補正用バッファメモリ181、ビットカウンタ182、ビットセレクタ183、評価指標算出回路184、及びシフト量算出回路185を備えている。

0075

読出し電圧補正用バッファメモリ181は、例えば、SRAM等の半導体メモリであり、読出し電圧を補正する処理に用いる読出しデータを一時的に保持するための記憶領域である。読出し電圧補正用バッファメモリ181は、読出し電圧補正対象の読出しデータ(誤り訂正前読出しデータ)と、当該読出しデータがECC回路160によって誤り訂正された期待データ(誤り訂正後読出しデータ)と、を同時に保持可能な記憶容量を有する。なお、誤り訂正前読出しデータ及び誤り訂正後読出しデータは、少なくとも誤り訂正可能な単位(例えば、ページ単位)のデータサイズを有する。

0076

ビットカウンタ182は、読出し電圧補正用バッファメモリ181に保持された誤り訂正前読出しデータ及び誤り訂正後読出しデータが取り得る値の組合せ毎に、ビット数をカウントする。具体的には、例えば、誤り訂正前読出しデータ及び誤り訂正後読出しデータがいずれも1ページ分存在する場合、1つのメモリセルトランジスタMTに対して(誤り訂正前読出しデータ、誤り訂正後読出しデータ)の組が取り得る値の組合せは、(1、1)、(1、0)、(0、0)、及び(0、1)の4通り存在する。ビットカウンタ182は、当該4通りの組合せがそれぞれ何ビットずつ存在するか、をカウントする。

0077

ビットセレクタ183は、ビットカウンタ182がカウントした4通りの値の組合せのうち、シフト量算出処理に用いる2つ(例えば、(1、0)と(0、1)等)を選択する。

0078

評価指標算出回路184は、ビットセレクタ183によって選択された2通りの値の組合せにそれぞれ対応するカウント値を用いて、シフト量補正処理に用いる評価指標を算出する。評価指標は、例えば、2つのカウント値の比が用いられ得る。

0079

シフト量算出回路185は、評価指標算出回路184によって算出された評価指標に基づき、シフト量Δを算出する。シフト量算出回路185は、例えば、算出したシフト量Δをメモリ120に転送し、履歴テーブルを更新する。

0080

なお、図8では、各部181〜185がファームウェアとは独立して機能し得る場合について説明したが、これに限られない。例えば、図8に示した各部181〜185のうち、読出し電圧補正用バッファメモリ181、及びビットカウンタ182を除く構成(ビットセレクタ183、評価指標算出回路184、及びシフト量算出回路185)については、ファームウェアによって実施可能に構成されてもよい。

0081

1.2 動作
次に、第1実施形態に係るメモリシステムの動作について説明する。

0082

1.2.1シフト量算出処理を伴う読出し処理
メモリコントローラ100によるシフト量算出処理を伴う読出し処理について、図9に示すフローチャートを用いて説明する。図9では、例えば、パトロールリード処理を想定したシーケンスの一例が示される。パトロールリード処理は、例えば、書込まれたデータの閾値分布の変動状況を把握するために、メモリコントローラ100がNANDパッケージ群200内の各セルユニットCUを定期的に巡回してデータの読出し処理を行う、メモリシステム1の内部処理である。なお、図9の例では、メモリコントローラ100は、当該パトロールリード処理の際に、或るセルユニットCUに対応する全てのページ(上位ページ及び下位ページ)の読出しを命令するものとする。このような読出し方式は、1ページずつランダムに読み出す「ランダムリード処理」と区別して、「シーケンシャルリード処理」とも呼ぶ。

0083

図9に示すように、ステップST10において、メモリコントローラ100は、メモリ120内の履歴テーブルを参照し、読出し対象のセルユニットCUに対応する読出し動作AR〜CR毎のシフト量Δを把握する。

0084

ステップST20において、メモリコントローラ100は、把握したシフト量Δに基づいてシフトリードコマンドを発行する。この際、例えば、メモリコントローラ100の発行するコマンドシーケンスがシフト量Δを示す情報を含み、チップChipは、当該情報に基づいて読出し電圧を印加する。これにより、チップChipは、履歴テーブルのシフト量を適用した読出し電圧によって誤り訂正前読出しデータSR(誤り訂正前上位読出しデータSR_U、及び誤り訂正前下位読出しデータSR_L)を読み出し、メモリコントローラ100に出力する。誤り訂正前読出しデータSRは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0085

ステップST30において、ECC回路160は、誤り訂正前読出しデータSRに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST30;yes)、ECC回路160は、誤り訂正後読出しデータEXP(誤り訂正後上位読出しデータEXP_U、及び誤り訂正後下位読出しデータEXP_L)を読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST40に進む。

0086

ステップST40において、読出し電圧補正回路180は、シフト量算出処理を実行する。シフト量算出処理の詳細は、後述する。

0087

ステップST50において、メモリコントローラ100は、ステップST40において算出されたシフト量Δをメモリ120の履歴テーブル内における対応する領域に保持させることにより、履歴テーブルを更新する。

0088

一方、ステップST30においてECC回路160による誤り訂正処理が失敗した場合(ステップST30;no)、処理はステップST60に進む。

0089

ステップST60において、メモリコントローラ100は、リトライシーケンスを実行し、再度のデータ読出しを試みる。具体的には、例えば、メモリコントローラ100は、所定のアルゴリズムにしたがって読出し電圧を変化させて更なるシフトリード処理を行い、当該更なるシフトリード処理によって読み出されたデータを誤り訂正しようと試みる。

0090

ステップST70において、メモリコントローラ100は、リトライシーケンスの結果に基づき、閾値分布の変動が許容範囲内であるか否かを判定する。リトライシーケンスの結果、閾値分布の変動が許容範囲内であると判定した場合、メモリコントローラ100は、リフレッシュ処理を実行しないと判定し(ステップST70;no)、読出し処理を終了させる。一方、リトライシーケンスの結果、閾値分布の変動が許容範囲外であると判定した場合、メモリコントローラ100は、リフレッシュ処理を実行すると判定し(ステップST70;yes)、処理はステップST80に進む。リフレッシュ処理は、例えば、誤り訂正されたデータを再度メモリセルアレイ11に書き込むことにより、変動した閾値分布を理想の閾値分布の状態に近づける処理である。

0091

ステップST80において、メモリコントローラ100は、リフレッシュコマンドを発行し、リフレッシュ処理を実行する。

0092

以上により、一連の処理が終了する。

0093

1.2.2シフト量算出処理
次に、第1実施形態に係るメモリシステムにおけるシフト量算出処理について説明する。

0094

図10は、第1実施形態に係るメモリシステムにおけるシフト量算出処理を説明するためのフローチャートである。図10は、図9におけるステップST40の詳細を示す。

0095

図10に示すように、ステップST41において、ビットカウンタ182は、読出し電圧補正用バッファメモリ181に保持された誤り訂正前読出しデータSR及び誤り訂正後読出しデータEXPが取り得る値の組合せ毎に、ビット数をカウントする。

0096

ステップST42において、ビットセレクタ183は、ステップST41において値の組合せ毎のカウント値から、比較するビット数のカウント値の組を選択する。

0097

ステップST43において、評価指標算出回路184は、ステップST42において選択されたカウント値の組に基づき、評価指標を算出する。

0098

ステップST44において、シフト量算出回路185は、ステップST43において算出された評価指標に基づき、シフト量Δを算出する。

0099

以上により、シフト量算出処理が終了する。

0100

図11は、第1実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標算出対象のカウント値が選択されるまでの処理を説明するための模式図である。図11は、図10におけるステップST41及びST42に対応する。

0101

図11に示すように、誤り訂正前読出しデータSR及び誤り訂正後読出しデータEXPが取り得る値の組合せC0=(SR_U、SR_L、EXP_U、EXP_L)は、2^4=16通り存在する。このうち、誤り訂正前読出しデータの組(SR_U、SR_L)と誤り訂正後読出しデータ(EXP_U、EXP_L)の組とが一致する4通りの場合は、データは誤りなく読み出されたことを示す。具体的には、例えば、組合せC0=(1、1、1、1)となる場合は、“Er”状態のデータが書き込まれたメモリセルトランジスタMTから“Er”状態のデータが正しく読み出されたことを示す。同様に、組合せC0=(0、1、0、1)、(0、0、0、0)、及び(1、0、1、0)となる場合はそれぞれ、“A”状態、“B”状態、及び“C”状態のデータが正しく読み出されたことを示す。

0102

一方、誤り訂正前読出しデータの組(SR_U、SR_L)と誤り訂正後読出しデータ(EXP_U、EXP_L)の組とが一致しない残りの12通りの場合は、データが誤って読み出されたことを示す。具体的には、例えば、組合せC0=(1、1、0、1)の場合は、“A”状態のデータが書き込まれたメモリセルトランジスタMTから“Er”状態のデータが誤って読み出されたことを示す。また、例えば、組合せC0=(0、1、1、1)の場合は、“Er”状態のデータが書き込まれたメモリセルトランジスタMTから“A”状態のデータが誤って読み出されたことを示す。

0103

図10におけるステップST41では、ビットカウンタ182は、上記したような16通りの組合せC0毎に読出し処理を行ったセルユニットCU内のメモリセルトランジスタMTを分類する。そして、ビットカウンタ182は、16通りの組合せC0毎に、分類されたメモリセルトランジスタMTの数を(ビット数として)カウントする。

0104

図10におけるステップST42では、ビットセレクタ183は、16通りの組合せC0のうち、以下の条件に合致する2通りを1つの組として選択する。ビットセレクタ183は、第1状態と第2状態とを区別する読出し電圧VCGRのシフト量を算出するため、「第1状態→第2状態誤読出しケース」と、「第2状態→第1状態誤読出しケース」と、を1つの組として選択する。ここで、「第1状態→第2状態誤読出しケース」とは、第1状態のデータが書き込まれたメモリセルトランジスタMTから、第1状態と隣り合う第2状態のデータが誤って読み出された場合を示す。また、「第2状態→第1状態誤読出しケース」とは、第2状態のデータが書き込まれたメモリセルトランジスタMTから、第1状態のデータが誤って読み出された場合を示す。

0105

これにより、ビットセレクタ183は、16通りの組合せC0から6通りを選択し、当該選択された6通りから3つの組を形成することができる。具体的には、ビットセレクタ183は、電圧VAのシフト量Δを算出する((第1状態、第2状態)=(Er、A)の)場合、組合せC0=(1、1、0、1)に対応する「A→Er誤読出しケース」のカウント値と、組合せC0=(0、1、1、1)に対応する「Er→A誤読出しケース」のカウント値と、を1つの組として選択する。また、ビットセレクタ183は、電圧VBのシフト量Δを算出する((第1状態、第2状態)=(A、B)の)場合、組合せC0=(0、1、0、0)に対応する「B→A誤読出しケース」のカウント値と、組合せC0=(0、0、0、1)に対応する「A→B誤読出しケース」のカウント値と、を1つの組として選択する。また、ビットセレクタ183は、電圧VCのシフト量Δを算出((第1状態、第2状態)=(B、C)の)場合、組合せC0=(0、0、1、0)に対応する「C→B誤読出しケース」のカウント値と、組合せC0=(1、0、0、0)に対応する「B→C誤読出しケース」のカウント値と、を1つの組として選択する。

0106

以上のように動作することにより、ビットセレクタ183は、シフト量算出処理に用いる2通りのカウント値を含む組を、読出し動作AR〜CRの各々について選択することができる。

0107

図12は、第1実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標を算出する処理を説明するための模式図である。図12は、図10におけるステップST43に対応する。

0108

図12上段では、隣り合う2つの閾値分布の一例として、“A”状態、及び“B”状態の各々に対応するデータが書込まれたメモリセルトランジスタMTの閾値分布が示される。当該2つの閾値分布は、種々の変動要因によって変化し、互いに重なり合っている。このような2つの閾値分布に対して読出し電圧VB(VB1〜VB5)を印加した場合に、「A→B誤読出しケース」及び「B→A誤読出しケース」がどのように増減するか、が示される。また、図12の下部では、「A→B誤読出しケース」のカウント値(Count(A→B)と表記)、及び「B→A誤読出しケース」のカウント値(Count(B→A)と表記)から算出される評価指標rと、読出し電圧VBとの関係が示される。

0109

図12の上段に示すように、電圧VB3は、例えば、“A”状態及び“B”状態の各々に対応する2つの閾値分布間の谷位置、すなわち、隣り合う2つの閾値分布間で同じ閾値電圧のメモリセル数が等しい位置に相当する。隣り合う2つの閾値分布の形状がほぼ等しいとみなせる場合、“A”状態の閾値分布のうち、電圧VB3よりも大きい閾値電圧を有するメモリセル数と、“B”状態の閾値分布のうち、電圧VB3よりも小さい閾値電圧を有するメモリセル数と、は、ほぼ等しくなり得る。このため、電圧VB3を用いて読み出されたデータは、「A→B誤読出しケース」のカウント値と、「B→A誤読出しケース」のカウント値とがほぼ等しくなり得る。すなわち、「A→B誤読出しケース」のカウント値に対する「B→A誤読出しケース」のカウント値の比率は、“1”とみなし得る。

0110

読出し電圧を電圧VB3から電圧VB4、VB5と徐々に大きくしていくと、「A→B誤読出しケース」のカウント値は徐々に減少するのに対し、「B→A誤読出しケース」のカウント値は急激に増加し得る。すなわち、「A→B誤読出しケース」のカウント値に対する「B→A誤読出しケース」のカウント値の比率は、“1”から急激に増加し得る。これに対して、読出し電圧を電圧VB3から電圧VB2、VB1と徐々に小さくしていくと、「A→B誤読出しケース」のカウント値は急激に増加するのに対し、「B→A誤読出しケース」のカウント値は徐々に減少する。すなわち、「A→B誤読出しケース」のカウント値に対する「B→A誤読出しケース」のカウント値の比率は“1”から急激に減少し得る。

0111

このため、図12下段に示すように、例えば、当該比率の対数値縦軸に取ると、当該対数値は、電圧VB3においてr3≒0となり、電圧VB3の近傍において、読出し電圧と正の相関を有し得る。評価指標算出回路184は、例えば、当該比率の対数値を評価指標rとして算出し、シフト量算出回路185に送る。これにより、シフト量算出回路185は、評価指標rの値に応じて、現在の読出し電圧が電圧VB3からどれだけ離れているか、を推定することができる。

0112

図13は、第1実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標に基づいてシフト量Δを算出する処理を説明するための模式図である。図13は、図10におけるステップST44に対応する。

0113

図13の上段では、評価指標r(r1〜r5)の値の大きさに応じて設定されるシフト量Δ(Δ1〜Δ5)の大きさが示される。図13の下段では、シフト量Δの大きさと、読出し電圧VBとの関係が示される。

0114

図13の上段に示すように、シフト量Δは、例えば、評価指標rが“0”となる場合、“0”となるように設定され、かつ評価指標rに対して負の相関を有するように設定される。すなわち、評価指標r3(≒0)に対応するシフト量Δ3は、“0”近傍の値(≒0)となるように設定される。そして、評価指標r1<r2<r3(0≒0)<r4<r5に対して、それぞれシフト量Δ1>Δ2>Δ3(0≒0)>Δ4>Δ5となるようにシフト量Δが設定される。

0115

このようにシフト量Δを設定することにより、図13の下段に示すように、読出し電圧VBに電圧VB3より大きい値が設定されていた場合(評価値rが正の場合)には、読出し電圧VB3に近づけるように、負のシフト量Δ(<Δ3)を設定することができる。また、読出し電圧VBに電圧VB3より小さい値が設定されていた場合(評価値rが負の場合)には、読出し電圧VB3に近づけるように、正のシフト量Δ(>Δ3)を設定することができる。

0116

また、読出し電圧VBの電圧VB3からの差(評価値rの絶対値)が小さいほどシフト量Δの絶対値が小さくなるように設定され、大きいほどシフト量Δの絶対値が大きくなるように設定される。これにより、読出し電圧VBの電圧VB3からのずれの大きさに応じて、シフト量Δの大きさを変化させることができ、電圧VB3への収束を早めることができる。一般に、隣り合う2つの閾値分布の形状がほぼ等しいとみなせる場合、当該2つの閾値分布の谷位置に読出し電圧VBを設定することにより、フェイルビット数を最小に出来る可能性が高い。このため、上述のような読出し電圧VBを電圧VB3に近づけるシフト量Δの算出方法を適用することにより、読出し電圧VBを最適な値に近づけることができる。

0117

なお、上述したように、最適な読出し電圧VCGRのシフト量Δを算出するためには、重なり合う閾値分布間のフェイルビット数の比率が1:1になるまで補正を繰り返すことが理想であり得る。しかしながら、重なり合う閾値分布の一方が非対称な形状を有しているために、閾値分布が非対称に重なっている場合には、これに限定する必要はない。

0118

1.3 本実施形態に係る効果
第1実施形態によれば、読出し電圧補正用バッファメモリ181は、誤り訂正前読出しデータSR_U及びSR_Lと、誤り訂正後読出しデータEXP_U及びEXP_Lを保持する。ビットカウンタ182は、組合せC0=(SR_U、SR_L、EXP_U、EXP_L)毎にビット数をカウントする。ビットセレクタ183は、電圧VA〜VCのシフト量Δを算出するためにそれぞれ、組合せC0の中からC0=(1、1、0、1)及び(0、1、1、1)の組、(0、1、0、0)及び(0、0、0、1)の組、並びに(0、0、1、0)及び(1、0、0、0)の組を選択する。評価指標算出回路184は、選択された組毎に割合の対数値を評価指標rとして算出する。シフト量算出回路185は、評価指標rに基づいてシフト量Δを算出する。これにより、メモリコントローラ100は、読出し処理が実行される毎に、読出し電圧のシフト量Δを算出することができる。このため、トラッキング処理のように、シフト量Δを算出するために更なる読出し処理を実行することなくシフト量Δを算出することができる。したがって、シフト量Δの算出によるレイテンシの増加を抑制することができる。

0119

また、シフト量Δは、評価指標rが評価基準(例えば、“0”)を超えるか否かに基づいて、正の値を有するか、負の値を有するか、が判定される。これにより、読出し電圧が重なり合う2つの閾値電圧の谷位置よりも大きい場合には負のシフト量Δを算出し、小さい場合には正のシフト量Δを算出することができる。このため、谷位置に近づく方向に読出し電圧を補正することができる。

0120

また、シフト量Δは、評価指標rと評価基準との差の絶対値が大きいほど、大きな絶対値となるように算出される。これにより、読出し電圧が谷位置から離れているほど大きなシフト量Δを算出し、谷位置に近い場合には小さなシフト量Δを算出することができる。このため、読出し電圧補正処理を繰り返すことによって、読出し電圧を谷位置に収束させることができる。

0121

1.4 第1変形例
第1実施形態では、誤り訂正に成功した全ての場合についてシフト量算出処理を実行し、履歴テーブルを更新する例について説明したが、これに限られない。例えば、シフト量算出処理は、フェイルビット数が所定の値を超えた場合に、選択的に実行されてもよい。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。

0122

図14は、第1実施形態の第1変形例に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャートである。図14は、第1実施形態において説明した図9に対応し、図9のステップST30とステップST40との間に、新たなステップST31が追加された場合が示される。

0123

図14に示すように、ステップST10〜ST30の処理は、図9の場合と同等であるため、その説明を省略する。なお、ステップST30において誤り訂正に成功すると(ステップST30;yes)、処理はステップST31に進み、誤り訂正に失敗すると(ステップST30;no)、処理はステップST60に進む。なお、ステップST60〜ST80の処理は、図9の場合と同等であるため、その説明を省略する。

0124

ステップST31において、メモリコントローラ100は、誤り訂正前読出しデータSRと誤り訂正後読出しデータEXPとを比較し、フェイルビット数の数をカウントする。フェイルビット数は、例えば、誤り訂正前読出しデータSRと誤り訂正後読出しデータEXPとの間でデータが異なるビットの数をカウントすることにより算出される。フェイルビット数のカウント値が基準値N1以上であった場合(ステップST31;yes)、メモリコントローラ100はシフト量算出処理を実行すると判定し、処理はステップST40に進む。ステップST40及びST50の処理は、図9の場合と同等であるため、その説明を省略する。なお、基準値N1は、誤り訂正可能なビット数の上限値以下の任意の自然数である。一方、フェイルビット数のカウント値が基準値N1未満であった場合(ステップST31;no)、メモリコントローラ100はシフト量算出処理の実行は不要であると判定し、シフト量算出処理を実行することなく処理を終了する。

0125

以上で、読出し処理が終了する。

0126

第1実施形態の第1変形例によれば、メモリコントローラ100は、誤り訂正前読出しデータSRと誤り訂正後読出しデータEXPとを比較し、フェイルビット数をカウントする。メモリコントローラ100は、フェイルビットカウント数に基づいて、シフト量算出処理を実行するか否かを判定する。これにより、閾値分布の谷位置に対する読出し電圧のずれが小さく、データが誤って読み出されるビットが少ない場合には、シフト量算出処理を実行しないと判定することができる。このため、不要なシフト量算出処理の回数を低減すると共に、読出し電圧の補正が必要な程度に閾値分布が変動した場合に選択的にシフト量算出処理を実行することができる。したがって、シフト量算出処理の実行回数を低減することができ、読出し電圧補正によるレイテンシの増加を抑制することができる。

0127

1.5 第2変形例
第1実施形態及び第1実施形態の第1変形例では、パトロールリード処理によって、セルユニットCUを定期的に巡回してデータの読出し処理を行う場合について説明したが、これに限られない。例えば、パトロールリード処理の対象は、或る繰り返し単位において巡回するセルユニットCUは、前回実行されたシフト量算出処理の結果に応じて判定されてもよい。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。

0128

図15は、第1実施形態の第2変形例に係るメモリシステムの履歴テーブルの一例を示す概念図である。図15は、第1実施形態における図7に対応する。

0129

図15に示すように、履歴テーブルには、シフト量Δに加え、優先パトロールフラグ、及びパトロールカウント値が設定されている。

0130

優先パトロールフラグは、例えば、ページ毎(図15の例では、下位ページ及び上位ページ)にそれぞれ個別に割当てられる。優先パトロールフラグは、例えば、シフト量算出処理を伴うパトロールリード処理を優先して実行するセルユニットCUに対して設定される。

0131

パトロールカウント値は、例えば、当該セルユニットCUに対して、シフト量算出処理を伴うパトロールリード処理が連続して実行された回数を示す。パトロールカウント値が大きい場合、同じセルユニットCUに対して優先的に何度もシフト量算出処理を実行していることを示す。すなわち、パトロールカウント値が過度に大きい状態からは、シフト量算出処理によっても誤り訂正できないことが示唆される。誤り訂正できない場合としては、例えば、読出し電圧の最適値からのずれが改善していない場合や、仮に最適値が特定された場合でも、隣り合う閾値分布間の重複部分が大きくなり過ぎた場合等が含まれる。

0132

図16は、第1実施形態の第2変形例に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理を説明するためのフローチャートである。図16は、第1実施形態において説明した図9に対応し、図9のステップST10の前に新たなステップST1〜ST3が追加されると共に、ステップST50の後に新たなステップST51、ST52、及びST53が追加された場合が示される。

0133

図16に示すように、ステップST1において、メモリコントローラ100は、パトロールリード処理の開始に際して、履歴テーブルを参照し、優先パトロールフラグが設定されたページのアドレスを取得する。メモリコントローラ100は、当該アドレスに基づき、優先パトロールフラグが設定されたページに対して優先的にシフト量算出処理を伴うパトロールリード処理を実行する。

0134

ステップST2において、メモリコントローラ100は、引き続き履歴テーブルを参照し、優先パトロールフラグが設定されたページに対応するパトロールカウント値をインクリメントする。

0135

ステップST3において、メモリコントローラ100は、ステップST2においてインクリメントされたパトロールカウント値が基準値N2未満であるか否かを判定する。基準値N2は、例えば、任意の自然数が適用可能である。パトロールカウント値が基準値N2未満である場合(ステップST3;yes)、シフト量算出処理によってフェイルビット数の改善が見込めると判定し、処理はステップST10に進む。一方、基準値N2以上である場合(ステップST3;no)、これ以上シフト量算出処理を実行してもフェイルビット数の改善が見込めないと判定し、処理はステップST60に進む。ステップST10〜ST50、及びステップST60〜ST80の処理は、図9の場合と同等であるため、その説明を省略する。

0136

ステップST50の後、処理はステップST51に進む。ステップST51において、メモリコントローラ100は、誤り訂正前読出しデータSRと、誤り訂正後読出しデータEXPとを比較し、フェイルビット数をカウントする。フェイルビット数のカウント値が基準値N3未満であった場合(ステップST51;yes)、シフト量算出処理の更なる実行が不要な程度にフェイルビット数が改善したと判定し、処理はステップST52に進む。ステップST52において、メモリコントローラ100は、履歴テーブルを参照し、ステップST51においてフェイルビット数が十分に改善したと判定されたページに対応する優先パトロールフラグをリセットし、処理を終了する。この場合、次の繰り返し単位におけるパトロールリード処理では、当該セルユニットCUには優先パトロールフラグが設定されていないため、シフト量算出処理が省略される。

0137

一方、フェイルビットカウント数のカウント値が基準値N3以上である場合(ステップST51;no)、シフト量算出処理の更なる実行が必要であると判定し、処理はステップST53に進む。ステップST53において、メモリコントローラ100は、履歴テーブルを参照し、ステップST51においてフェイルビット数が十分に改善していないと判定されたページに対応する優先パトロールフラグをセットし(又はセットを維持し)、処理を終了する。この場合、次の繰り返し単位におけるパトロールリード処理では、当該セルユニットCUには優先パトロールフラグが設定されているため、シフト量算出処理が再度実行される。

0138

第1実施形態の第2変形例によれば、履歴テーブルは、シフト量Δに加え、優先パトロールフラグ及びパトロールカウント値を更に保持する。メモリコントローラ100は、パトロールリード処理の実行に際し、優先パトロールフラグを参照することによって、優先的にフェイルビット数の改善が必要なページを特定し、当該ページに対してシフト量算出処理を実行する。これにより、シフト量算出処理が必要なページに対して優先的にパトロールリード処理を実行することができ、読出し処理のレイテンシの増加を抑制することができる。

0139

また、メモリコントローラ100は、パトロールカウント値を参照することにより、優先的にシフト量算出処理を実行したものの、フェイルビット数の改善が見られないページを特定し、当該ページに対してリトライシーケンス及び必要に応じてリフレッシュ処理を実行する。これにより、シフト量算出処理によってもフェイルビット数の改善が見られないページに対していつまでもシフト量算出処理が実行され続け、レイテンシが増加することを抑制することができる。

0140

また、メモリコントローラ100は、シフト量算出処理の実行後、フェイルビット数をカウントし、更なる優先的なシフト量算出処理の実行が必要か否かを判定する。これにより、読出し電圧に対して閾値分布のずれが大きくなく、誤って読み出されるデータが少ない場合には、シフト量算出処理を実行しないと判定することができる。このため、読出し電圧の補正が必要な場合に対して選択的にシフト量算出処理を実行することができる。したがって、シフト量算出処理の実行回数を低減することができ、読出し電圧補正によるレイテンシの増加を抑制することができる。

0141

2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。

0142

第1実施形態、並びに第1変形例及び第2変形例では、セルユニットCU内の全ページについて誤り訂正前読出しデータSRを読み出し、対応する全ての誤り訂正後読出しデータEXPを用いて、シフト量算出処理を実行する場合について説明した。しかしながら、例えば、読出し電圧補正用バッファメモリ181内に十分な一時保存領域が確保できない場合、全てのページ分の誤り訂正後読出しデータEXPを用いることなく、シフト量算出処理を実行してもよい。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。

0143

2.1シフト量算出処理
図17及び図18は、第2実施形態に係るメモリシステムにおけるシフト量算出処理のうち、評価指標算出対象のカウント値が選択されるまでの処理を説明するための模式図である。図17及び図18は、第1実施形態における図11に対応する。図17は、誤り訂正後読出しデータEXPのうち、誤り訂正後上位読出しデータEXP_Uを用いずに、誤り訂正後下位読出しデータEXP_Lを用いて評価指標算出対象のカウント値が選択される場合を示す。図18は、誤り訂正後読出しデータEXPのうち、誤り訂正後下位読出しデータEXP_Lを用いずに、誤り訂正後上位読出しデータEXP_Uを用いて評価指標算出対象のカウント値が選択される場合を示す。

0144

まず、誤り訂正後上位読出しデータEXP_Uを用いることなく、誤り訂正後下位読出しデータEXP_Lを用いる場合について、図17を用いて説明する。

0145

図17に示すように、誤り訂正前読出しデータSRは、セルユニットCU内のメモリセルトランジスタMTを、“Er”状態〜“C”状態の4通りに分類する。しかしながら、誤り訂正後読出しデータEXPは、下位ページ分しか存在しないため、セルユニットCU内のメモリセルトランジスタMTを、“Er”状態又は“A”状態の場合と、“B”状態又は“C”状態の場合と、の2通りに分類する。このため、誤り訂正前読出しデータSR及び誤り訂正後読出しデータEXPが取り得る値の組合せC1=(SR_U、SR_L、EXP_L)は、2^3=8通り存在する。ビットカウンタ182は、上記したような8通りの組合せC1毎にセルユニットCU内のメモリセルトランジスタMTを分類する。そして、ビットカウンタ182は、8通りの組合せC1毎に、分類されたメモリセルトランジスタMTの数を(ビット数として)カウントする。

0146

図17の例では、ビットセレクタ183は、8通りの組合せC1のうち、組合せC1=(SR_U、SR_L、EXP_L)=(0、1、0)及び(0、0、1)の2通りを含む1つの組に着目する。組合せC1=(0、1、0)の場合は、“B”状態又は“C”状態のデータが書き込まれたメモリセルトランジスタMTから“A”状態のデータが誤って読み出されたことを示す場合である。組合せC1=(0、0、1)の場合は、“Er”状態又は“A”状態のデータが書き込まれたメモリセルトランジスタMTから“B”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC1=(0、1、0)の場合は、「B,C→A誤読出しケース」を含み、組合せC1=(0、0、1)の場合は、「Er,A→B誤読出しケース」を含む。

0147

一般に、閾値分布は、ピーク値に対応する閾値電圧から離れるほど、メモリセル数が減少する。このため、隣り合う閾値分布と重なる領域に属するメモリセル数の方が、2個先の閾値分布と重なる領域に属するメモリセル数よりも有意に大きいとみなし得る。

0148

したがって、組合せC1=(0、1、0)にカウントされた場合のうち、「B→A誤読出しケース」の数は、「C→A誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC1=(0、1、0)に対応するカウント値は、「B→A誤読出しケース」に実質的に等しいとみなし得る。同様に、組合せC1=(0、0、1)にカウントされた場合のうち、「A→B誤読出しケース」の数は、「Er→B誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC1=(0、0、1)に対応するカウント値は、「A→B誤読出しケース」に実質的に等しいとみなし得る。

0149

上記したような近似を行うことにより、ビットセレクタ183は、電圧VBのシフト量Δを算出する場合として、「B→A誤読出しケース」に実質的に対応する組合せC1=(0、1、0)のカウント値と、「A→B誤読出しケース」に実質的に対応する組合せC1=(0、0、1)のカウント値と、を1つの組として選択する。

0150

以上のように動作することにより、ビットセレクタ183は、シフト量算出処理に用いる2通りのカウント値を含む組を、読出し動作BRについて選択することができる。

0151

次に、誤り訂正後下位読出しデータEXP_Lを用いることなく、誤り訂正後上位読出しデータEXP_Uを用いる場合について、図18を用いて説明する。

0152

図18に示すように、誤り訂正前読出しデータSRは、セルユニットCU内のメモリセルトランジスタMTを、“Er”状態〜“C”状態の4通りに分類する。しかしながら、誤り訂正後読出しデータEXPは、上位ページ分しか存在しないため、セルユニットCU内のメモリセルトランジスタMTを、“Er”状態又は“C”状態の場合と、“A”状態又は“B”状態の場合と、の2通りに分類する。このため、誤り訂正前読出しデータSR及び誤り訂正後読出しデータEXPが取り得る値の組合せC2=(SR_U、SR_L、EXP_U)は、2^3=8通り存在する。ビットカウンタ182は、上記したような8通りの組合せC2毎に読出し処理を行ったセルユニットCU内のメモリセルトランジスタMTを分類する。そして、ビットカウンタ182は、8通りの組合せC2毎に、分類されたメモリセルトランジスタMTの数を(ビット数として)カウントする。

0153

図18の例では、8通りの組合せC2のうち、組合せC2=(SR_U、SR_L、EXP_U)=(1、1、0)及び(0、1、1)の2通りを含む組と、(0、0、1)及び(1、0、0)の2通りを含む組と、の2組に着目する。

0154

組合せC2=(1、1、0)の場合は、“A”状態又は“B”状態のデータが書き込まれたメモリセルトランジスタMTから“Er”状態のデータが誤って読み出されたことを示す場合である。組合せC2=(0、1、1)の場合は、“Er”状態又は“C”状態のデータが書き込まれたメモリセルトランジスタMTから“A”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC2=(1、1、0)の場合は、「A,B→Er誤読出しケース」を含み、組合せC2=(0、1、1)の場合は、「Er,C→A誤読出しケース」を含む。

0155

また、組合せC2=(0、0、1)の場合は、“Er”状態又は“C”状態のデータが書き込まれたメモリセルトランジスタMTから“B”状態のデータが誤って読み出されたことを示す場合である。組合せC2=(1、0、0)の場合は、“A”状態又は“B”状態のデータが書き込まれたメモリセルトランジスタMTから“C”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC2=(0、0、1)の場合は、「Er,C→B誤読出しケース」を含み、組合せC2=(1、0、0)の場合は、「A,B→C誤読出しケース」を含む。

0156

図17の際に説明したように、閾値分布は、ピーク値に対応する閾値電圧から離れるほど、メモリセル数が減少する。このため、隣り合う閾値分布と重なる領域に属するメモリセル数の方が、3個先の閾値分布と重なる領域に属するメモリセル数よりも有意に大きいとみなし得る。

0157

したがって、組合せC2=(1、1、0)にカウントされた場合のうち、「A→Er誤読出しケース」の数は、「B→Er誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC2=(1、1、0)に対応するカウント値は、「A→Er誤読出しケース」に実質的に等しいとみなし得る。同様に、組合せC2=(0、1、1)にカウントされた場合のうち、「Er→A誤読出しケース」の数は、「C→A誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC2=(0、1、1)に対応するカウント値は、「Er→A誤読出しケース」に実質的に等しいとみなし得る。

0158

また、組合せC2=(0、0、1)にカウントされた場合のうち、「C→B誤読出しケース」の数は、「Er→B誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC2=(0、0、1)に対応するカウント値は、「C→B誤読出しケース」に実質的に等しいとみなし得る。同様に、組合せC2=(1、0、0)にカウントされた場合のうち、「B→C誤読出しケース」の数は、「A→C誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC2=(1、0、0)に対応するカウント値は、「B→C誤読出しケース」に実質的に等しいとみなし得る。

0159

上記したような近似を行うことにより、ビットセレクタ183は、電圧VAのシフト量Δを算出する場合として、「A→Er誤読出しケース」に実質的に対応する組合せC2=(1、1、0)のカウント値と、「A→Er誤読出しケース」に実質的に対応する組合せC2=(0、1、1)のカウント値と、を1つの組として選択する。また、ビットセレクタ183は、電圧VCのシフト量Δを算出する場合として、「C→B誤読出しケース」に実質的に対応する組合せC2=(0、0、1)のカウント値と、「B→C誤読出しケース」に実質的に対応する組合せC2=(1、0、0)のカウント値と、を1つの組として選択する。

0160

以上のように動作することにより、ビットセレクタ183は、シフト量算出に用いる2通りのカウント値を含む組を、読出し動作AR及びCRについて選択することができる。

0161

2.2 本実施形態に係る効果
第2実施形態によれば、ビットカウンタ182は、誤り訂正前読出しデータSR(SR_U及びSR_L)と、誤り訂正後下位読出しデータEXP_L又は誤り訂正後上位読出しデータEXP_Uのいずれか1つと、により生じる8通りの組合せC1又はC2についてビット数をカウントする。ビットセレクタ183は、誤り訂正後下位読出しデータEXP_Lを用いる場合、8通りの組合せC1のうち、C1=(0、1、0)及び(0、0、1)の組を選択する。これにより、誤り訂正後上位読出しデータEXP_Uを用いることなく、読出し動作BRに対応するシフト量Δを算出するために用いるカウント値を選択することができる。また、ビットセレクタ183は、誤り訂正後上位読出しデータEXP_Uを用いる場合、8通りの組合せC2のうち、C2=(1、1、0)及び(0、1、1)の組、並びに(0、0、1)及び(1、0、0)の組を選択する。これにより、誤り訂正後下位読出しデータEXP_Lを用いることなく、読出し動作AR及びCRに対応するシフト量Δを算出するために用いるカウント値を選択することができる。したがって、メモリコントローラ100に誤り訂正後上位読出しデータEXP_U及び誤り訂正後下位読出しデータEXP_Lを同時に保持可能な領域を確保できない場合にも、シフト量算出処理を実行することができる。

0162

なお、上述のように、誤り訂正後上位読出しデータEXP_U及び誤り訂正後下位読出しデータEXP_Lを同時に保持可能な領域を確保できない場合でも、図17及び図18に示した動作を順に実行することによって、第1実施形態と同様に、全ての読出し動作AR〜CRに対応するシフト量Δを算出してもよい。すなわち、まず、読出し電圧補正回路180は、読出し電圧補正用バッファメモリ181に、誤り訂正前読出しデータSR(SR_U及びSR_L)、及び誤り訂正後下位読出しデータEXP_Lを保持させ、8通りの組合せC1に基づいて読出し動作BRに対応するシフト量Δを算出する。読出し動作BRに対応するシフト量Δの算出後、読出し電圧補正回路180は、読出し電圧補正用バッファメモリ181から誤り訂正後下位読出しデータEXP_Lを削除しつつ、誤り訂正前上位読出しデータSR_UをECC回路160に転送し、誤り訂正後上位読出しデータEXP_Uを得る。その後、読出し電圧補正回路180は、読出し電圧補正用バッファメモリ181に保持させた誤り訂正前読出しデータSR(SR_U及びSR_L)、及び誤り訂正後上位読出しデータEXP_Uに基づき、8通りの組合せC2に基づいて読出し動作AR及びCRに対応するシフト量Δを算出する。これにより、第2実施形態に係る読出し電圧補正回路180は、全ての読出し動作AR〜CRに対応するシフト量Δを算出することが出来る。

0163

3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。

0164

第1実施形態及び第2実施形態では、セルユニットCUに対応する全てのページについて一括してデータを読み出すシーケンシャルリード処理が実行される場合について説明した。第3実施形態では、1ページずつランダムにデータを読み出すランダムリード処理が実行される場合にシフト量算出処理を併せて実行する場合について説明する。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。

0165

3.1シフト量算出処理を伴う読出し処理
第3実施形態に係るメモリシステムにおけるシフト量算出処理を伴う読出し処理について、図19に示すフローチャートを用いて説明する。図19は、第1実施形態における図9に対応し、図9のステップST20に代えてステップST21が実行され、ステップST30及びST40の間に新たなステップST32、ST33、及びST34が追加される。また、上述の通り、図19では、ランダムリード処理によってデータが読み出される場合が示される。

0166

図19に示すように、ステップST10において、メモリコントローラ100は、メモリ120内の履歴テーブルを参照し、読出し対象のページに対応する読出し動作(図19の場合では、読出し動作AR及びCR)のシフト量Δを把握する。

0167

ステップST21において、メモリコントローラ100は、ステップST10において把握したシフト量Δに基づいてシフトリードコマンドを発行する。これにより、チップChipは、履歴テーブルのシフト量を適用した読出し電圧によって誤り訂正前上位読出しデータSR_Uを読み出し、メモリコントローラ100に出力する。誤り訂正前上位読出しデータSR_Uは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0168

ステップST30において、ECC回路160は、誤り訂正前上位読出しデータSR_Uに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST30;yes)、ECC回路160は、誤り訂正後上位読出しデータEXP_Uを読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST32に進む。一方、ECC回路160による誤り訂正処理が失敗した場合(ステップST30;no)、処理はステップST60に進む。なお、ステップST60〜ST80の処理は、図9の場合と同等であるため、その説明を省略する。

0169

ステップST32において、メモリコントローラ100は、メモリ120内の履歴テーブルを再度参照し、読出し対象のページを含むセルユニットCU内の他のページに対応する読出し動作(図19の場合では、読出し動作BR)のシフト量Δを把握する。

0170

ステップST33において、メモリコントローラ100は、ステップST32において把握したシフト量Δに基づいてシフトリードコマンドを発行する。これにより、チップChipは、履歴テーブルのシフト量を適用した読出し電圧によって誤り訂正前下位読出しデータSR_Lを読み出し、メモリコントローラ100に出力する。誤り訂正前下位読出しデータSR_Lは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0171

ステップST34において、ECC回路160は、誤り訂正前下位読出しデータSR_Lに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST34;yes)、ECC回路160は、誤り訂正後下位読出しデータEXP_Lを読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST40に進む。一方、ECC回路160による誤り訂正処理が失敗した場合(ステップST34;no)、処理はステップST60に進む。

0172

ステップST40において、読出し電圧補正回路180は、図10図13に示したシフト量算出処理と同等の処理を実行する。そして、ステップST50において、メモリコントローラ100は、算出したシフト量Δによって履歴テーブルを更新し、読出し処理を終了する。

0173

3.2 本実施形態に係る効果
第3実施形態によれば、メモリコントローラ100は、ランダムリード処理によってページ単位でデータが読み出された際に、更なるシフトリード処理を実行することで、誤り訂正処理を実行することができる。より具体的には、ランダムリード処理が上位ページのように2種類の読出し電圧を用いたシフトリード処理である場合、下位ページのシフトリード処理を更に実行する。これにより、第1実施形態と同等の動作を実行することができ、ひいては、第1実施形態と同等の効果を奏することができる。

0174

4. 第4実施形態
第3実施形態では、ランダムリード処理が実行された際に、追加のシフトリード処理を実行することによってシフト量算出処理を実行する場合について説明したが、これに限られない。例えば、ランダムリード処理が実行された際に、シフトリード処理を実行する代わりにシングルステートリード処理を実行してもよい。

0175

シフトリード処理は、互いに異なる複数個の読出し電圧を1つのセットとして印加することによって、特定のページのデータを確定させる。これに対し、シングルステートリード処理は、単一の読出し電圧を印加することによって、当該読出し電圧に対する閾値電圧の大小関係を確定する処理である。このため、シングルステートリード処理は、読出し回数が少ない分、シフトリード処理よりも短時間で実行可能である。

0176

以下の説明では、第3実施形態と同等の構成及び動作については説明を省略し、第3実施形態と異なる構成及び動作について主に説明する。

0177

4.1メモリセルトランジスタの閾値分布について
図20は、第4実施形態に係るメモリシステムの各メモリセルトランジスタMTの取り得るデータ、閾値電圧分布、及び読出し時に用いる電圧について示したダイアグラムである。第4実施形態では、1つのメモリセルトランジスタMTが例えば3ビットデータを保持可能な場合を想定する。この3ビットデータを、下位のビットからそれぞれ下位(Lower)ビット、中位(Middle)ビット、及び上位(Upper)ビットと呼ぶことにする。そして、同一のセルユニットCUに属するメモリセルの保持する下位ビットの集合を下位ページと呼び、中位ビットの集合を中位ページと呼び、上位ビットの集合を上位ページと呼ぶ。

0178

この場合、メモリセルトランジスタMTは、閾値電圧に応じて8個の状態を取ることが出来る。この8個の状態を、閾値電圧の低いものから順に、“Er”状態、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、及び“G”状態と呼ぶことにする。

0179

“Er”状態〜“B”状態については、第1実施形態における図5における説明と同等である。なお、電圧VA〜VCの大きさは、図5の場合と異なり得る。“C”状態のメモリセルトランジスタMTの閾値電圧は、電圧VC以上であり且つ電圧VD(>VC)未満である。“D”状態のメモリセルトランジスタMTの閾値電圧は、電圧VD以上であり且つ電圧VE(>VD)未満である。“E”状態のメモリセルトランジスタMTの閾値電圧は、電圧VE以上であり且つ電圧VF(<VE)未満である。“F”状態のメモリセルトランジスタMTの閾値電圧は、電圧VF以上であり且つ電圧VG(<VF)未満である。“G”状態のメモリセルトランジスタMTの閾値電圧は、電圧VG以上であり且つ電圧VREAD未満である。このように分布する8個の状態のうちで、“G”状態が、閾値電圧の最も高い状態である。

0180

上記閾値電圧分布は、前述の下位ビット、中位ビット、及び上位ビットからなる3ビット(3ページ)データを書き込むことで実現される。すなわち、上記“Er”状態から“G”状態と、下位ビット、中位ビット、及び上位ビットとの関係は、例えば、次の通りである。
“Er”状態:“111”(“上位/中位/下位”の順で表記)
“A”状態:“110”
“B”状態:“100”
“C”状態:“000”
“D”状態:“010”
“E”状態:“011”
“F”状態:“001”
“G”状態:“101”
このように、閾値電圧分布において隣り合う2つの状態に対応するデータ間では、3ビットのうちの1ビットのみが変化する。

0181

従って、下位ビットを読み出す際には、下位ビットの値(“0”or“1”)が変化する境界に相当する電圧を用いれば良く、このことは中位ビット及び上位ビットでも同様である。

0182

すなわち、図20に示すように、下位ページ読出しは、“Er”状態と“A”状態とを区別する電圧VA、及び“D”状態と“E”状態とを区別する電圧VEを読出し電圧として用いる。電圧VA及びVEを用いた読出し動作を、それぞれ読出し動作AR及びERと呼ぶ。

0183

中位ページ読出しは、“A”状態と“B”状態とを区別する電圧VB、“C”状態と“D”状態とを区別する電圧VD、及び“E”状態と“F”状態とを区別する電圧VFを読出し電圧として用いる。電圧VD及びVFを用いた読出し動作を、それぞれ読出し動作DR及びFRと呼ぶ。

0184

そして上位ページ読出しは、“B”状態と“C”状態とを区別する電圧VC、及び“F”状態と“G”状態とを区別する電圧VGを読出し電圧として用いる。電圧VC及びVGを用いた読出し動作を、それぞれ読出し動作CR及びGRと呼ぶ。

0185

4.2読出し電圧補正回路の構成
次に、第4実施形態に係るメモリシステムの読出し電圧補正回路の構成について、図21示すブロック図を用いて説明する。図21に示すように、読出し電圧補正回路180は、分離データ生成回路186を更に備えている。

0186

分離データ生成回路186は、例えば、少なくとも否定(NOT)演算、及び論理和(OR)演算が可能な演算機能を備えている。また、分離データ生成回路186は、読出し電圧補正用バッファメモリ181に保持されたデータに対して所定の論理演算を実行しつつ、所定の条件を満たすデータの一部を分離データとして切出す機能を備えている。分離データ生成回路186は、当該分離データをビットカウンタ182に送出する。分離データの詳細については後述する。

0187

4.3シフト量算出処理を伴う下位ページ読出し処理
まず、3ページのうち下位ページをランダムリード処理によって読み出す場合にシフト量算出処理を実行する際の動作について図22に示すフローチャートを用いて説明する。図22は、第3実施形態における図19に対応し、ステップST21に代えて、ステップST22が実行され、ステップST32〜ST34に代えてステップST35〜ST37が実行される。

0188

図22に示すように、ステップST10において、メモリコントローラ100は、メモリ120内の履歴テーブルを参照し、読出し対象のページに対応する読出し動作(図22の場合では、読出し動作AR及びER)のシフト量Δを把握する。

0189

ステップST22において、メモリコントローラ100は、ステップST10において把握したシフト量Δに基づいてシフトリードコマンドを発行する。これにより、チップChipは、履歴テーブルのシフト量を適用した読出し電圧によって誤り訂正前下位読出しデータSRt_Lを読み出し、メモリコントローラ100に出力する。誤り訂正前下位読出しデータSRt_Lは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0190

ステップST30において、ECC回路160は、誤り訂正前下位読出しデータSRt_Lに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST30;yes)、ECC回路160は、誤り訂正後下位読出しデータEXPt_Lを読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST35に進む。一方、ECC回路160による誤り訂正処理が失敗した場合(ステップST30;no)、処理はステップST60に進む。なお、ステップST60〜ST80の処理は、図19の場合と同等であるため、その説明を省略する。

0191

ステップST35において、メモリコントローラ100は、電圧VCを読出し電圧に用いたシングルステートリードコマンドを発行する。これにより、チップChipは、シングルステート読出しデータSSRt_CRを読み出し、メモリコントローラ100に出力する。シングルステート読出しデータSSRt_CRは、メモリコントローラ100内において、読出し電圧補正用バッファメモリ181に保持される。

0192

ステップST36において、分離データ生成回路186は、読出し電圧補正用バッファメモリ181から読み出した誤り訂正前下位読出しデータSRt_L及びシングルステート読出しデータSSRt_CRに基づき、誤り訂正前分離データSEP_SRt_L1、及びSEP_SRt_L2を生成する。具体的には、分離データ生成回路186は、誤り訂正前下位読出しデータSRt_Lから、シングルステート読出しデータSSRt_CRのデータが“1”に対応するビットを誤り訂正前分離データSEP_SRt_L1として抽出し、“0”に対応するビットを、誤り訂正前分離データSEP_SRt_L2として抽出する。抽出された誤り訂正前分離データSEP_SRt_L1及びSEP_SRt_L2は、ビットカウンタ182に送出される。

0193

ステップST37において、分離データ生成回路186は、読出し電圧補正用バッファメモリ181から読み出した誤り訂正後下位読出しデータEXPt_L及びシングルステート読出しデータSSRt_CRに基づき、誤り訂正後分離データSEP_EXPt_L1、及びSEP_EXPt_L2を生成する。具体的には、分離データ生成回路186は、誤り訂正後下位読出しデータEXPt_Lから、シングルステート読出しデータSSRt_CRのデータが“1”に対応するビットを誤り訂正後分離データSEP_EXPt_L1として抽出し、“0”に対応するビットを、誤り訂正後分離データSEP_EXPt_L2として抽出する。抽出された誤り訂正後分離データSEP_EXPt_L1及びSEP_EXPt_L2は、ビットカウンタ182に送出される。

0194

ステップST40において、読出し電圧補正回路180は、誤り訂正前分離データSEP_SRt_L1及びSEP_SRt_L2、並びに誤り訂正後分離データSEP_EXPt_L1及びSEP_EXPt_L2に基づいて、シフト量算出処理を実行する。シフト量算出処理の詳細は、後述する。

0195

ステップST50において、メモリコントローラ100は、ステップST40において算出されたシフト量Δをメモリ120の履歴テーブル内における対応する領域に保持することにより、履歴テーブルを更新する。

0196

以上により、一連の処理が終了する。

0197

4.4下位ページ読出し処理に基づくシフト量算出処理
図23は、第4実施形態に係るメモリシステムにおける、下位ページ読出し処理に基づくシフト量算出処理を説明するための模式図である。図23では、シフト量算出処理のうち、評価指標算出対象のカウント値が選択されるまでの処理が示される。

0198

図23に示すように、誤り訂正前下位読出しデータSRt_Lは、セルユニットCU内のメモリセルトランジスタMTを2通りに分類する。すなわち、誤り訂正前下位読出しデータSRt_Lは、閾値電圧が電圧VA未満、又は電圧VE以上の場合にデータ“1”となり、該当するメモリセルトランジスタMTは“Er”状態、又は“E”状態〜“G”状態の閾値分布に属しているとみなされる。また、誤り訂正前下位読出しデータSRt_Lは、閾値電圧が電圧VA以上電圧VE未満の場合にデータ“0”となり、該当するメモリセルトランジスタMTは“A”状態〜“D”状態の閾値分布に属しているとみなされる。

0199

シングルステート読出しデータSSRt_CRは、閾値電圧がVC未満の場合にデータ“1”となり、該当するメモリセルトランジスタMTは“Er”状態〜“B”状態の閾値分布に属しているとみなされる。また、シングルステート読出しデータSSRt_CRは、閾値電圧がVC以上の場合にデータ“0”となり、“C”状態〜“G”状態の閾値分布に属しているとみなされる。

0200

このため、誤り訂正前分離データSEP_SRt_L1は、“Er”状態〜“B”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VA未満の場合にはデータ“1”に、電圧VA以上の場合にはデータ“0”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_L1がデータ“1”となるメモリセルトランジスタMTは“Er”状態の閾値分布に属しているとみなされ、データ“0”となるメモリセルトランジスタMTは“A”状態又は“B”状態の閾値分布に属しているとみなされる。また、誤り訂正前分離データSEP_SRt_L2は、“C”状態〜“G”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VE未満の場合にはデータ“0”に、電圧VE以上の場合にはデータ“1”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_L2がデータ“0”となるメモリセルトランジスタMTは“C”状態又は“D”状態の閾値分布に属しているとみなされ、データ“1”となるメモリセルトランジスタMTは“E”状態〜“G”状態の閾値分布に属しているとみなされる。

0201

一方、誤り訂正後分離データSEP_EXPt_L1及びSEP_EXPt_L2はそれぞれ、誤り訂正前分離データSEP_SRt_L1及びSEP_SRt_L2による分類に依らず、メモリセルトランジスタMTを2通りに分類する。すなわち、誤り訂正後分離データSEP_EXPt_L1及びSEP_EXPt_L2がデータ“1”となるメモリセルトランジスタMTは、“Er”状態、又は“E”状態〜“G”状態の閾値分布に属していることが期待される。誤り訂正後分離データSEP_EXPt_L1及びSEP_EXPt_L2がデータ“0”となるメモリセルトランジスタMTは、“A”状態〜“D”状態の閾値分布に属していることが期待される。

0202

なお、上述の通り、誤り訂正後分離データSEP_EXPt_L1は“Er”状態〜“B”状態の閾値分布に、誤り訂正後分離データSEP_EXPt_L2は“C”状態〜“G”状態の閾値分布に、属しているとみなされたメモリセルトランジスタMTの集合である。このため、誤り訂正後分離データSEP_EXPt_L1がデータ“1”となるメモリセルトランジスタMTは“Er”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“A”状態〜“B”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。また、誤り訂正後分離データSEP_EXPt_L2がデータ“1”となるメモリセルトランジスタMTは“E”状態〜“G”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“C”状態〜“D”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。

0203

このため、誤り訂正前分離データSEP_SRt_L1及び誤り訂正後分離データSEP_EXPt_L1が取り得る値の組合せC3_L1=(SEP_SRt_L1、SEP_EXPt_L1)は、2×2=4通り存在する。同様に、誤り訂正前分離データSEP_SRt_L2及び誤り訂正後分離データSEP_EXPt_L2が取り得る値の組合せC3_L2=(SEP_SRt_L2、SEP_EXPt_L2)は、2×2=4通り存在する。ビットカウンタ182は、上記したような各々が4通りの組合せC3_L1及びC3_L2毎(すなわち、8通りの組合せ毎)にビット数をカウントする。

0204

図23の例では、ビットセレクタ183は、4通りの組合せC3_L1のうち、組合せC3_L1=(1、0)及び(0、1)の2通りを含む1つの組に着目する。組合せC3_L1=(1、0)の場合は、“A”状態又は“B”状態のデータが書き込まれたメモリセルトランジスタMTから“Er”状態のデータが誤って読み出されたことを示す場合である。組合せC3_L1=(0、1)の場合は、“Er”状態のデータが書き込まれたメモリセルトランジスタMTから“A”状態又は“B”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_L1=(1、0)の場合は、「A,B→Er誤読出しケース」を含み、組合せC3_L1=(0、1)の場合は、「Er→A,B誤読出しケース」を含む。

0205

「A,B→Er誤読出しケース」のうち、「A→Er誤読出しケース」の数は、「B→Er誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_L1=(1、0)に対応するカウント値は、「A→Er誤読出しケース」に実質的に等しいとみなし得る。同様に、「Er→A,B誤読出しケース」のうち、「Er→A誤読出しケース」の数は、「Er→B誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_L1=(0、1)に対応するカウント値は、「Er→A誤読出しケース」に実質的に等しいとみなし得る。

0206

同様に、ビットセレクタ183は、4通りの組合せC3_L2のうち、組合せC3_L2=(0、1)及び(1、0)の2通りを含む1つの組に着目する。組合せC3_L2=(0、1)の場合は、“ “E”状態〜“G”状態のデータが書き込まれたメモリセルトランジスタMTから“C”状態又は“D”状態のデータが誤って読み出されたことを示す場合である。組合せC3_L2=(1、0)の場合は、“C”状態又は“D”状態のデータが書き込まれたメモリセルトランジスタMTから“E”状態〜“G”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_L2=(0、1)の場合は、「E〜G→C,D誤読出しケース」を含み、組合せC3_L2=(1、0)の場合は、「C,D→E〜G誤読出しケース」を含む。

0207

「E〜G→C,D誤読出しケース」のうち、「E→D誤読出しケース」の数は、「F〜G→C,D誤読出しケース」及び「E→C誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_L2=(0、1)に対応するカウント値は、「E→D誤読出しケース」に実質的に等しいとみなし得る。同様に、「C,D→E〜G誤読出しケース」のうち、「D→E誤読出しケース」の数は、「C→E〜G誤読出しケース」及び「D→F,G誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_L2=(1、0)に対応するカウント値は、「D→E誤読出しケース」に実質的に等しいとみなし得る。

0208

上記した近似を行うことにより、ビットセレクタ183は、電圧VAのシフト量Δを算出する場合、「A→Er誤読出しケース」及び「Er→A誤読出しケース」にそれぞれ実質的に対応する組合せC3_L1=(1、0)及び(0、1)のカウント値を1つの組として選択する。また、ビットセレクタ183は、電圧VEのシフト量Δを算出する場合、「E→D誤読出しケース」及び「D→E誤読出しケース」にそれぞれ実質的に対応する組合せC3_L2=(0、1)及び(1、0)のカウント値を1つの組として選択する。

0209

以上のように動作することにより、ビットセレクタ183は、シフト量算出に用いる2通りのカウント値を含む組を、読出し動作AR及びERについて選択することができる。

0210

4.5シフト量算出処理を伴う上位ページ読出し処理
次に、3ページのうち上位ページをランダムリード処理によって読み出す場合にシフト量算出処理を実行する際の動作について図24に示すフローチャートを用いて説明する。図24は、図22に対応し、ステップST22に代えて、ステップST22Aが実行され、ステップST35〜ST37に代えてステップST35A〜ST37Aが実行される。

0211

図24に示すように、ステップST10において、メモリコントローラ100は、メモリ120内の履歴テーブルを参照し、読出し対象のページに対応する読出し動作(図24の場合では、読出し動作CR及びGR)毎のシフト量Δを把握する。

0212

ステップST22Aにおいて、メモリコントローラ100は、ステップST10において把握したシフト量Δに基づいてシフトリードコマンドを発行する。これにより、チップChipは、誤り訂正前上位読出しデータSRt_Uを読み出し、メモリコントローラ100に出力する。誤り訂正前上位読出しデータSRt_Uは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0213

ステップST30において、ECC回路160は、誤り訂正前上位読出しデータSRt_Uに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST30;yes)、ECC回路160は、誤り訂正後上位読出しデータEXPt_Uを読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST35Aに進む。一方、ECC回路160による誤り訂正処理が失敗した場合(ステップST30;no)、処理はステップST60に進む。なお、ステップST60〜ST80の処理は、図22の場合と同等であるため、その説明を省略する。

0214

ステップST35Aにおいて、メモリコントローラ100は、電圧VEを読出し電圧に用いたシングルステートリードコマンドを発行する。これにより、チップChipは、シングルステート読出しデータSSRt_ERを読み出し、メモリコントローラ100に出力する。シングルステート読出しデータSSRt_ERは、メモリコントローラ100内において、読出し電圧補正用バッファメモリ181に保持される。

0215

ステップST36Aにおいて、分離データ生成回路186は、読出し電圧補正用バッファメモリ181から読み出した誤り訂正前上位読出しデータSRt_U及びシングルステート読出しデータSSRt_ERに基づき、誤り訂正前分離データSEP_SRt_U1、及びSEP_SRt_U2を生成する。具体的には、分離データ生成回路186は、誤り訂正前上位読出しデータSRt_Uから、シングルステート読出しデータSSRt_ERのデータが“1”に対応するビットを誤り訂正前分離データSEP_SRt_U1として抽出し、“0”に対応するビットを誤り訂正前分離データSEP_SRt_U2として抽出する。抽出された誤り訂正前分離データSEP_SRt_U1及びSEP_SRt_U2は、ビットカウンタ182に送出される。

0216

ステップST37Aにおいて、分離データ生成回路186は、読出し電圧補正用バッファメモリ181から読み出した誤り訂正後上位読出しデータEXPt_U及びシングルステート読出しデータSSRt_ERに基づき、誤り訂正後分離データSEP_EXPt_U1、及びSEP_EXPt_U2を生成する。具体的には、分離データ生成回路186は、誤り訂正後上位読出しデータEXPt_Uから、シングルステート読出しデータSSRt_ERのデータが“1”に対応するビットを誤り訂正後分離データSEP_EXPt_U1として抽出し、“0”に対応するビットを誤り訂正後分離データSEP_EXPt_U2として抽出する。抽出された誤り訂正後分離データSEP_EXPt_U1及びSEP_EXPt_U2は、ビットカウンタ182に送出される。

0217

ステップST40において、読出し電圧補正回路180は、誤り訂正前分離データSEP_SRt_U1及びSEP_SRt_U2、並びに誤り訂正後分離データSEP_EXPt_U1及びSEP_EXPt_U2に基づいて、シフト量算出処理を実行する。シフト量算出処理の詳細は、後述する。

0218

ステップST50において、メモリコントローラ100は、ステップST40において算出されたシフト量Δをメモリ120の履歴テーブル内における対応する領域に保持することにより、履歴テーブルを更新する。

0219

以上により、一連の処理が終了する。

0220

4.6上位ページ読出し処理に基づくシフト量算出処理
図25は、第4実施形態に係るメモリシステムにおける、上位ページ読出し処理に基づくシフト量算出処理を説明するための模式図である。図25では、シフト量算出処理のうち、評価指標算出対象のカウント値が選択されるまでの処理が示される。

0221

図25に示すように、誤り訂正前上位読出しデータSRt_Uは、セルユニットCU内のメモリセルトランジスタMTを2通りに分類する。すなわち、誤り訂正前上位読出しデータSRt_Uは、閾値電圧が電圧VC未満、又は電圧VG以上の場合にデータ“1”となり、該当するメモリセルトランジスタMTは“Er”状態〜“B”状態、又は“G”状態の閾値分布に属しているとみなされる。また、誤り訂正前上位読出しデータSRt_Uは、閾値電圧が電圧VC以上電圧VG未満の場合にデータ“0”となり、該当するメモリセルトランジスタMTは“C”状態〜“F”状態の閾値分布に属しているとみなされる。

0222

シングルステート読出しデータSSRt_ERは、閾値電圧がVE未満の場合にデータ“1”となり、該当するメモリセルトランジスタMTは“Er”状態〜“D”状態の閾値分布に属しているとみなされる。また、シングルステート読出しデータSSRt_ERは、閾値電圧がVE以上の場合にデータ“0”となり、“E”状態〜“G”状態の閾値分布に属しているとみなされる。

0223

このため、誤り訂正前分離データSEP_SRt_U1は、“Er”状態〜“D”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VC未満の場合にはデータ“1”に、電圧VC以上の場合にはデータ“0”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_U1がデータ“1”となるメモリセルトランジスタMTは“Er”状態〜“B”状態の閾値分布に属しているとみなされ、データ“0”となるメモリセルトランジスタMTは“C”状態又は“D”状態の閾値分布に属しているとみなされる。また、誤り訂正前分離データSEP_SRt_U2は、“E”状態〜“G”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VG未満の場合にはデータ“0”に、電圧VG以上の場合にはデータ“1”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_U2がデータ“0”となるメモリセルトランジスタMTは“E”状態又は“F”状態の閾値分布に属しているとみなされ、データ“1”となるメモリセルトランジスタMTは“G”状態の閾値分布に属しているとみなされる。

0224

一方、誤り訂正後分離データSEP_EXPt_U1及びSEP_EXPt_U2はそれぞれ、誤り訂正前分離データSEP_SRt_U1及びSEP_SRt_U2による分類に依らず、メモリセルトランジスタMTを2通りに分類する。すなわち、誤り訂正後分離データSEP_EXPt_U1及びSEP_EXPt_U2がデータ“1”となるメモリセルトランジスタMTは、“Er”状態〜“B”状態、又は“G”状態の閾値分布に属していることが期待される。誤り訂正後分離データSEP_EXPt_U1及びSEP_EXPt_U2がデータ“0”となるメモリセルトランジスタMTは、“C”状態〜“F”状態の閾値分布に属していることが期待される。

0225

なお、上述の通り、誤り訂正後分離データSEP_EXPt_U1は“Er”状態〜“D”状態の閾値分布に、誤り訂正後分離データSEP_EXPt_U2は“E”状態〜“G”状態の閾値分布に、属しているとみなされたメモリセルトランジスタMTの集合である。このため、誤り訂正後分離データSEP_EXPt_U1がデータ“1”となるメモリセルトランジスタMTは“Er”状態〜“B”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“C”状態又は“D”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。また、誤り訂正後分離データSEP_EXPt_U2がデータ“1”となるメモリセルトランジスタMTは“G”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“E”状態又は“F”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。

0226

このため、誤り訂正前分離データSEP_SRt_U1及び誤り訂正後分離データSEP_EXPt_U1が取り得る値の組合せC3_U1=(SEP_SRt_U1、SEP_EXPt_U1)は、2×2=4通り存在する。同様に、誤り訂正前分離データSEP_SRt_U2及び誤り訂正後分離データSEP_EXPt_U2が取り得る値の組合せC3_U2=(SEP_SRt_U2、SEP_EXPt_U2)は、2×2=4通り存在する。ビットカウンタ182は、上記したような各々が4通りの組合せC3_U1及びC3_U2毎(すなわち、8通りの組合せ毎)にビット数をカウントする。

0227

図25の例では、ビットセレクタ183は、4通りの組合せC3_U1のうち、組合せC3_U1=(1、0)及び(0、1)の2通りを含む1つの組に着目する。組合せC3_U1=(1、0)の場合は、“C”状態又は“D”状態のデータが書き込まれたメモリセルトランジスタMTから“Er”状態〜“B”状態のデータが誤って読み出されたことを示す場合である。組合せC3_U1=(0、1)の場合は、“Er”状態〜“B”状態のデータが書き込まれたメモリセルトランジスタMTから“C”状態又は“D”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_U1=(1、0)の場合は、「C,D→Er〜B誤読出しケース」を含み、組合せC3_U1=(0、1)の場合は、「Er〜B→C,D誤読出しケース」を含む。

0228

「C,D→Er〜B誤読出しケース」のうち、「C→B誤読出しケース」の数は、「D→Er〜B誤読出しケース」及び「C→Er,A誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_U1=(1、0)に対応するカウント値は、「C→B誤読出しケース」に実質的に等しいとみなし得る。同様に、「Er〜B→C,D誤読出しケース」のうち、「B→C誤読出しケース」の数は、「Er,A→C,D誤読出しケース」及び「B→D誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_U1=(0、1)に対応するカウント値は、「B→C誤読出しケース」に実質的に等しいとみなし得る。

0229

同様に、ビットセレクタ183は、4通りの組合せC3_U2のうち、組合せC3_U2=(0、1)及び(1、0)の2通りを含む1つの組に着目する。組合せC3_U2=(0、1)の場合は、“G”状態のデータが書き込まれたメモリセルトランジスタMTから“E”状態又は“F”状態のデータが誤って読み出されたことを示す場合である。組合せC3_U2=(1、0)の場合は、“E”状態又は“F”状態のデータが書き込まれたメモリセルトランジスタMTから“G”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_U2=(0、1)の場合は、「G→E,F誤読出しケース」を含み、組合せC3_U2=(1、0)の場合は、「E,F→G誤読出しケース」を含む。

0230

「G→E,F誤読出しケース」のうち、「G→F誤読出しケース」の数は、「G→E誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_U2=(0、1)に対応するカウント値は、「G→F誤読出しケース」に実質的に等しいとみなし得る。同様に、「E,F→G誤読出しケース」のうち、「F→G誤読出しケース」の数は、「E→G誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_U2=(1、0)に対応するカウント値は、「F→G誤読出しケース」に実質的に等しいとみなし得る。

0231

上記した近似を行うことにより、ビットセレクタ183は、電圧VCのシフト量Δを算出する場合、「C→B誤読出しケース」及び「B→C誤読出しケース」にそれぞれ実質的に対応する組合せC3_U1=(1、0)及び(0、1)のカウント値を1つの組として選択する。また、ビットセレクタ183は、電圧VGのシフト量Δを算出する場合、「G→F誤読出しケース」及び「F→G誤読出しケース」にそれぞれ実質的に対応する組合せC3_U2=(0、1)及び(1、0)のカウント値を1つの組として選択する。

0232

以上のように動作することにより、ビットセレクタ183は、シフト量算出に用いる2通りのカウント値を含む組を、読出し動作CR及びGRについて選択することができる。

0233

4.7シフト量算出処理を伴う中位ページ読出し処理
次に、3ページのうち中位ページをランダムリード処理によって読み出す場合にシフト量算出処理を実行する際の動作について図26に示すフローチャートを用いて説明する。図26は、図22に対応し、ステップST22に代えて、ステップST22Bが実行され、ステップST35〜ST37に代えてステップST35B〜ST37Bが実行される。

0234

図26に示すように、ステップST10において、メモリコントローラ100は、メモリ120内の履歴テーブルを参照し、読出し対象のページに対応する読出し動作(図26の場合では、読出し動作BR、DR、及びFR)毎のシフト量Δを把握する。

0235

ステップST22Bにおいて、メモリコントローラ100は、ステップST10において把握したシフト量Δに基づいてシフトリードコマンドを発行する。これにより、チップChipは、誤り訂正前中位読出しデータSRt_Mを読み出し、メモリコントローラ100に出力する。誤り訂正前中位読出しデータSRt_Mは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0236

ステップST30において、ECC回路160は、誤り訂正前中位読出しデータSRt_Mに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST30;yes)、ECC回路160は、誤り訂正後中位読出しデータEXPt_Mを読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST35Bに進む。一方、ECC回路160による誤り訂正処理が失敗した場合(ステップST30;no)、処理はステップST60に進む。なお、ステップST60〜ST80の処理は、図22の場合と同等であるため、その説明を省略する。

0237

ステップST35Bにおいて、メモリコントローラ100は、電圧VC及びVEを読出し電圧に用いたシングルステートリードコマンドを発行する。これにより、チップChipは、シングルステート読出しデータSSRt_CR及びSSRt_ERを読み出し、メモリコントローラ100に出力する。シングルステート読出しデータSSRt_CR及びSSRt_ERは、メモリコントローラ100内において、読出し電圧補正用バッファメモリ181に保持される。

0238

ステップST36Bにおいて、分離データ生成回路186は、読出し電圧補正用バッファメモリ181から読み出した誤り訂正前中位読出しデータSRt_M及びシングルステート読出しデータSSRt_CR及びSSRt_ERに基づき、誤り訂正前分離データSEP_SRt_M1、SEP_SRt_M2、及びSEP_SRt_M3を生成する。具体的には、分離データ生成回路186は、誤り訂正前中位読出しデータSRt_Mから、シングルステート読出しデータSSRt_CRのデータが“1”に対応するビットを誤り訂正前分離データSEP_SRt_M1として抽出する。また、分離データ生成回路186は、誤り訂正前中位読出しデータSRt_Mから、シングルステート読出しデータSSRt_CR及びSSRt_ERのデータがそれぞれ“0”及び“1”に対応するビットを誤り訂正前分離データSEP_SRt_M2として抽出する。また、分離データ生成回路186は、誤り訂正前中位読出しデータSRt_Mから、シングルステート読出しデータSSRt_ERのデータが“0”に対応するビットを誤り訂正前分離データSEP_SRt_M3として抽出する。抽出された誤り訂正前分離データSEP_SRt_M1、SEP_SRt_M2、及びSEP_SRt_M3は、ビットカウンタ182に送出される。

0239

ステップST37Bにおいて、分離データ生成回路186は、読出し電圧補正用バッファメモリ181から読み出した誤り訂正後中位読出しデータEXPt_M及びシングルステート読出しデータSSRt_CR及びSSRt_ERに基づき、誤り訂正後分離データSEP_EXPt_M1、SEP_EXPt_M2、及びSEP_EXPt_M3を生成する。具体的には、分離データ生成回路186は、誤り訂正後中位読出しデータEXPt_Mから、シングルステート読出しデータSSRt_CRのデータが“1”に対応するビットを誤り訂正後分離データSEP_EXPt_M1として抽出する。また、分離データ生成回路186は、誤り訂正後中位読出しデータEXPt_Mから、シングルステート読出しデータSSRt_CR及びSSRt_ERのデータがそれぞれ“0”及び“1”に対応するビットを誤り訂正後分離データSEP_EXPt_M2として抽出する。また、分離データ生成回路186は、誤り訂正後中位読出しデータEXPt_Mから、シングルステート読出しデータSSRt_ERのデータが“0”に対応するビットを誤り訂正後分離データSEP_EXPt_M3として抽出する。抽出された誤り訂正後分離データSEP_EXPt_M1〜SEP_EXPt_M3は、ビットカウンタ182に送出される。

0240

ステップST40において、読出し電圧補正回路180は、誤り訂正前分離データSEP_SRt_M1〜SEP_SRt_M3、及び誤り訂正後分離データSEP_EXPt_M1〜SEP_EXPt_M3に基づいて、シフト量算出処理を実行する。シフト量算出処理の詳細は、後述する。

0241

ステップST50において、メモリコントローラ100は、ステップST40において算出されたシフト量Δをメモリ120の履歴テーブル内における対応する領域に保持することにより、履歴テーブルを更新する。

0242

以上により、読出し処理が終了する。

0243

4.8中位ページ読出し処理に基づくシフト量算出処理
図27及び図28は、第4実施形態に係るメモリシステムにおける、中位ページ読出し処理に基づくシフト量算出処理を説明するための模式図である。図27では、シフトリード処理及びシングルステートリード処理によって読み出されるデータが示され、図28では、シフト量算出処理のうち、評価指標算出対象のカウント値が選択されるまでの処理が示される。

0244

図27に示すように、誤り訂正前中位読出しデータSRt_Mは、閾値電圧に応じて、セルユニットCU内のメモリセルトランジスタMTを2通りに分類する。すなわち、誤り訂正前中位読出しデータSRt_Mは、閾値電圧が電圧VB未満又は電圧VD以上電圧VF未満の場合にデータ“1”となり、該当するメモリセルトランジスタMTは“Er”状態、“A”状態、“D”状態、又は“E”状態の閾値分布に属しているとみなされる。誤り訂正前中位読出しデータSRt_Mは、閾値電圧が電圧VB以上電圧VD未満、又は電圧VF以上の場合にデータ“0”となり、該当するメモリセルトランジスタMTは“B”状態、“C”状態、“F”状態、又は“G”状態の閾値分布に属しているとみなされる。

0245

シングルステート読出しデータSSRt_CR及びSSRt_ERについてはそれぞれ、下位ページ読出しの場合、及び上位ページ読出しの場合と同等である。

0246

このため、図28に示すように、誤り訂正前分離データSEP_SRt_M1は、“Er”状態〜“B”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VB未満の場合にはデータ“1”に、電圧VB以上の場合にはデータ“0”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_M1がデータ“1”となるメモリセルトランジスタMTは“Er”状態又は“A”状態の閾値分布に属しているとみなされ、データ“0”となるメモリセルトランジスタMTは“B”状態の閾値分布に属しているとみなされる。また、誤り訂正前分離データSEP_SRt_M2は、“C”状態〜“D”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VD未満の場合にはデータ“0”に、電圧VD以上の場合にはデータ“1”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_M2がデータ“0”となるメモリセルトランジスタMTは“C”状態の閾値分布に属しているとみなされ、データ“1”となるメモリセルトランジスタMTは“D”状態の閾値分布に属しているとみなされる。また、誤り訂正前分離データSEP_SRt_M3は、“E”状態〜“G”状態の閾値分布に属しているとみなされたメモリセルトランジスタMTを、2通りに(閾値電圧が電圧VF未満の場合にはデータ“1”に、電圧VF以上の場合にはデータ“0”に)分類する。すなわち、誤り訂正前分離データSEP_SRt_M3がデータ“1”となるメモリセルトランジスタMTは“E”状態の閾値分布に属しているとみなされ、データ“0”となるメモリセルトランジスタMTは“F”状態又は“G”状態の閾値分布に属しているとみなされる。

0247

一方、誤り訂正後分離データSEP_EXPt_M1〜SEP_EXPt_M3はそれぞれ、誤り訂正前分離データSEP_SRt_M1〜SEP_SRt_M3による分類に依らず、メモリセルトランジスタMTを2通りに分類する。すなわち、誤り訂正後分離データSEP_EXPt_M1〜SEP_EXPt_M3がデータ“1”となるメモリセルトランジスタMTは、“Er”状態、“A”状態、“D”状態、又は“E”状態の閾値分布に属していることが期待される。誤り訂正後分離データSEP_EXPt_M1〜SEP_EXPt_M3がデータ“0”となるメモリセルトランジスタMTは、“B”状態、“C”状態、“F”状態、又は“G”状態の閾値分布に属していることが期待される。

0248

なお、上述の通り、誤り訂正後分離データSEP_EXPt_M1は“Er”状態〜“B”状態の閾値分布に、誤り訂正後分離データSEP_EXPt_M2は“C”状態又は“D”状態の閾値分布に、誤り訂正後分離データSEP_EXPt_M3は“E”状態〜“G”状態の閾値分布に、属しているとみなされたメモリセルトランジスタMTの集合である。このため、誤り訂正後分離データSEP_EXPt_M1がデータ“1”となるメモリセルトランジスタMTは“Er”状態又は“A”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“B”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。また、誤り訂正後分離データSEP_EXPt_M2がデータ“1”となるメモリセルトランジスタMTは“D”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“C”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。また、誤り訂正後分離データSEP_EXPt_M3がデータ“1”となるメモリセルトランジスタMTは“E”状態の閾値分布に、データ“0”となるメモリセルトランジスタMTは、“F”状態又は“G”状態の閾値分布に、それぞれ属していることが期待されるとみなすことができる。

0249

このため、誤り訂正前分離データSEP_SRt_M1及び誤り訂正後分離データSEP_EXPt_M1が取り得る値の組合せC3_M1=(SEP_SRt_M1、SEP_EXPt_M1)は、2×2=4通り存在する。同様に、誤り訂正前分離データSEP_SRt_M2及び誤り訂正後分離データSEP_EXPt_M2が取り得る値の組合せC3_M2=(SEP_SRt_M2、SEP_EXPt_M2)は、2×2=4通り存在する。誤り訂正前分離データSEP_SRt_M3及び誤り訂正後分離データSEP_EXPt_M3が取り得る値の組合せC3_M3=(SEP_SRt_M3、SEP_EXPt_M3)は、2×2=4通り存在する。ビットカウンタ182は、上記したような各々が4通りの組合せC3_M1、C3_M2、及びC3_M3毎(すなわち、12通りの組合せ毎)にビット数をカウントする。

0250

図28の例では、ビットセレクタ183は、4通りの組合せC3_M1のうち、組合せC3_M1=(1、0)及び(0、1)の2通りを含む1つの組に着目する。組合せC3_M1=(1、0)の場合は、“B”状態のデータが書き込まれたメモリセルトランジスタMTから“Er”状態又は“A”状態のデータが誤って読み出されたことを示す場合である。組合せC3_M1=(0、1)の場合は、“Er”状態又は“A”状態のデータが書き込まれたメモリセルトランジスタMTから“B”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_M1=(1、0)の場合は、「B→Er,A誤読出しケース」を含み、組合せC3_M1=(0、1)の場合は、「Er,A→B誤読出しケース」を含む。

0251

「B→Er,A誤読出しケース」のうち、「B→A誤読出しケース」の数は、「B→Er誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_M1=(1、0)に対応するカウント値は、「B→A誤読出しケース」に実質的に等しいとみなし得る。同様に、「Er,A→B誤読出しケース」のうち、「A→B誤読出しケース」の数は、「Er→B誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_M1=(0、1)に対応するカウント値は、「A→B誤読出しケース」に実質的に等しいとみなし得る。

0252

同様に、ビットセレクタ183は、4通りの組合せC3_M2のうち、組合せC3_M2=(0、1)及び(1、0)の2通りを含む1つの組に着目する。組合せC3_M2=(0、1)の場合は、 “D”状態のデータが書き込まれたメモリセルトランジスタMTから“C”状態のデータが誤って読み出されたことを示す場合である。組合せC3_M2=(1、0)の場合は、 “C”状態のデータが書き込まれたメモリセルトランジスタMTから“D”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_M2=(0、1)に対応するカウント値は、「D→C誤読出しケース」に等しくなり、組合せC3_M2=(1、0)に対応するカウント値は、「C→D誤読出しケース」に等しくなる。

0253

同様に、ビットセレクタ183は、4通りの組合せC3_M3のうち、組合せC3_M3=(1、0)及び(0、1)の2通りを含む1つの組に着目する。組合せC3_M3=(1、0)の場合は、“F”状態、又は“G”状態のデータが書き込まれたメモリセルトランジスタMTから“E”状態のデータが誤って読み出されたことを示す場合である。組合せC3_M3=(0、1)の場合は、 “E”状態のデータが書き込まれたメモリセルトランジスタMTから“F”状態又は“G”状態のデータが誤って読み出されたことを示す場合である。すなわち、組合せC3_M3=(1、0)の場合は、「F,G→E誤読出しケース」を含み、組合せC3_M3=(0、1)の場合は、「E→F,G誤読出しケース」を含む。

0254

「F,G→E誤読出しケース」のうち、「F→E誤読出しケース」の数は、「G→E誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_M3=(1、0)に対応するカウント値は、「F→E誤読出しケース」に実質的に等しいとみなし得る。同様に、「E→F,G誤読出しケース」のうち、「E→F誤読出しケース」の数は、「E→G誤読出しケース」の数に対して有意に大きいとみなし得る。すなわち、組合せC3_M3=(0、1)に対応するカウント値は、「E→F誤読出しケース」に実質的に等しいとみなし得る。

0255

上記した近似を行うことにより、ビットセレクタ183は、電圧VBのシフト量Δを算出する場合、「B→A誤読出しケース」及び「A→B誤読出しケース」にそれぞれ実質的に対応する組合せC3_M1=(1、0)及び(0、1)のカウント値を1つの組として選択する。また、ビットセレクタ183は、電圧VDのシフト量Δを算出する場合、「D→C誤読出しケース」及び「C→D誤読出しケース」にそれぞれ実質的に対応する組合せC3_M2=(0、1)及び(1、0)のカウント値を1つの組として選択する。また、ビットセレクタ183は、電圧VFのシフト量Δを算出する場合、「F→E誤読出しケース」及び「E→F誤読出しケース」にそれぞれ実質的に対応する組合せC3_M3=(1、0)及びC3_M3=(0、1)のカウント値を1つの組として選択する。

0256

以上のように動作することにより、ビットセレクタ183は、シフト量算出に用いる2通りのカウント値を含む組を、読出し動作BR、DR、及びFRについて選択することができる。

0257

4.9 本実施形態に係る効果
第4実施形態によれば、メモリコントローラ100は、メモリセルトランジスタMTに3ビットデータを保持可能な場合でも、ランダムリード処理に伴ってシングルステート読出しデータを読み出すことで、誤り訂正処理を実行することができる。より具体的には、ランダムリード処理が下位ページ又は上位ページのように2種類の読出し電圧を用いたシフトリード処理である場合、分離データ生成回路186は、1種類のシングルステート読出しデータを用いて誤り訂正前後の読出しデータをそれぞれ2つに分離する。また、ランダムリード処理が中位ページのように3種類の読出し電圧を用いたシフトリード処理である場合、分離データ生成回路186は、2種類のシングルステート読出しデータを用いて誤り訂正前後の読出しデータをそれぞれ3つに分離する。これにより、ビットカウンタ182は、誤り訂正前後の分離データの組毎にビット数をカウントし、ビットセレクタ183は、誤り訂正前後の分離データの組毎に評価指標算出対象の2つの組合せを選択することができる。このため、ランダムリード処理の場合に、更なるシフトリード処理を実行することなく、ランダムリード処理対象のページの読出しに用いる読出し電圧のシフト量を算出することができる。したがって、読出し電圧補正によるレイテンシの増加を抑制することができる。

0258

5. 第5実施形態
第4実施形態では、メモリセルトランジスタMTに3ビットのデータが保持可能な場合について説明したが、これに限られない。例えば、メモリセルトランジスタMTは4ビット以上のデータが保持可能であってもよい。

0259

以下の説明では、第4実施形態と同等の構成及び動作については説明を省略し、第4実施形態と異なる構成及び動作について主に説明する。

0260

5.1メモリセルトランジスタの閾値分布について
図29は、第5実施形態に係るメモリシステムの各メモリセルトランジスタMTの取り得るデータ、閾値電圧分布、及び読出し時に用いる電圧について示したダイアグラムである。第5実施形態では、1つのメモリセルトランジスタMTが例えば4ビットデータを保持可能な場合を想定する。この4ビットデータを、下位のビットからそれぞれ下位(Lower)ビット、中位(Middle)ビット、上位(Upper)ビット、トップ(Top)ビットと呼ぶことにする。そして、同一のセルユニットCUに属するメモリセルの保持する下位ビットの集合を下位ページと呼び、中位ビットの集合を中位ページと呼び、上位ビットの集合を上位ページと呼び、トップビットの集合をトップページと呼ぶ。

0261

上述の通り、メモリセルトランジスタMTは、4ビットデータを保持可能である。すなわち、メモリセルトランジスタMTは、閾値電圧に応じて16個の状態を取ることが出来る。この16個の状態を、閾値電圧の低いものから順に、“S0”状態、“S1”状態、“S2”状態、“S3”状態、“S4”状態、“S5”状態、“S6”状態、“S7”状態、“S8”状態、“S9”状態、“S10”状態、“S11”状態、“S12”状態、“S13”状態、“S14”状態、及び“S15”状態と呼ぶことにする。

0262

“S0”状態のメモリセルトランジスタMTの閾値電圧は、電圧VS1未満であり、データの消去状態に相当する。“Sk”状態のメモリセルトランジスタMTの閾値電圧は、電圧VS(k)以上であり且つ電圧VS(k+1)(>VS(k))未満である(1≦k≦14)。“S15”状態のメモリセルトランジスタMTの閾値電圧は、電圧VS15以上であり且つ電圧VREAD未満である。このように分布する16個の状態のうちで、“S15”状態が、閾値電圧の最も高い状態である。

0263

上記閾値電圧分布は、前述の下位ビット、中位ビット、上位ビット、及びトップビットからなる4ビット(4ページ)データを書き込むことで実現される。すなわち、上記“S0”状態から“S15”状態と、下位ビット、中位ビット、上位ビット、及びトップビットとの関係は、例えば、次の通りである。
“S0”状態:“1111”(“トップ/上位/中位/下位”の順で表記)
“S1”状態:“1110”
“S2”状態:“1010”
“S3”状態:“1000”
“S4”状態:“1001”
“S5”状態:“0001”
“S6”状態:“0000”
“S7”状態:“0010”
“S8”状態:“0110”
“S9”状態:“0100”
“S10”状態:“1100”
“S11”状態:“1101”
“S12”状態:“0101”
“S13”状態:“0111”
“S14”状態:“0011”
“S15”状態:“1011”
このように、閾値電圧分布において隣り合う2つの状態に対応するデータ間では、4ビットのうちの1ビットのみが変化する。

0264

従って、下位ビットを読み出す際には、下位ビットの値(“0”or“1”)が変化する境界に相当する電圧を用いれば良く、このことは中位ビット、上位ビット、及びトップビットでも同様である。

0265

すなわち、図29に示すように、下位ページ読出しは、“S0”状態と“S1”状態とを区別する電圧VS1、“S3”状態と“S4”状態とを区別する電圧VS4、“S5”状態と“S6”状態とを区別する電圧VS6、及び“S10”状態と“S11”状態とを区別する電圧VS11を読出し電圧として用いる。電圧VS1、VS4、VS6、及びVS11を用いた読出し動作を、それぞれ読出し動作1R、4R、6R、及び11Rと呼ぶ。

0266

中位ページ読出しは、“S2”状態と“S3”状態とを区別する電圧VS3、“S6”状態と“S7”状態とを区別する電圧VS7、“S8”状態と“S9”状態とを区別する電圧VS9、及び“S12”状態と“S13”状態とを区別する電圧VS13を読出し電圧として用いる。電圧VS3、VS7、VS9、及びVS13を用いた読出し動作を、それぞれ読出し動作3R、7R、9R、及び13Rと呼ぶ。

0267

上位ページ読出しは、“S1”状態と“S2”状態とを区別する電圧VS2、“S7”状態と“S8”状態とを区別する電圧VS8、及び“S13”状態と“S14”状態とを区別する電圧VS14を読出し電圧として用いる。電圧VS2、VS8、及びVS14を用いた読出し動作を、それぞれ読出し動作2R、8R、及び14Rと呼ぶ。

0268

そして、トップページ読出しは、“S4”状態と“S5”状態とを区別する電圧VS5、“S9”状態と“S10”状態とを区別する電圧VS10、“S11”状態と“S12”状態とを区別する電圧VS12、及び“S14”状態と“S15”状態とを区別する電圧VS15を読出し電圧として用いる。電圧VS5、VS10、VS12、及びVS15を用いた読出し動作を、それぞれ読出し動作5R、10R、12R、及び15Rと呼ぶ。

0269

5.2シフト量算出処理を伴う下位ページ読出し処理
第5実施形態では、一例として、4ページのうち下位ページをランダムリード処理によって読み出す場合にシフト量算出処理を実行する際の動作について図30に示すフローチャートを用いて説明する。図30は、第4実施形態における図22に対応し、ステップST22に代えて、ステップST22Cが実行され、ステップST35〜ST37に代えてステップST35C〜ST37Cが実行される。

0270

図30に示すように、ステップST10において、メモリコントローラ100は、メモリ120内の履歴テーブルを参照し、読出し対象のページに対応する読出し動作(図30の場合では、読出し動作1R、4R、6R、及び11R)毎のシフト量Δを把握する。

0271

ステップST22Cにおいて、メモリコントローラ100は、ステップST10において把握したシフト量Δに基づいてシフトリードコマンドを発行する。これにより、チップChipは、履歴テーブルのシフト量を適用した読出し電圧によって誤り訂正前下位読出しデータSRq_Lを読み出し、メモリコントローラ100に出力する。誤り訂正前下位読出しデータSRq_Lは、メモリコントローラ100内において、ECC回路160に転送されると共に、読出し電圧補正用バッファメモリ181に保持される。

0272

ステップST30において、ECC回路160は、誤り訂正前下位読出しデータSRq_Lに対して誤り訂正処理を実行する。ECC回路160による誤り訂正処理が成功した場合(ステップST30;yes)、ECC回路160は、誤り訂正後下位読出しデータEXPq_Lを読出し電圧補正用バッファメモリ181に保持させた後、処理はステップST35Cに進む。一方、ECC回路160による誤り訂正処理が失敗した場合(ステップST30;no)、処理はステップST60に進む。なお、ステップST60〜ST80の処理は、図22の場合と同等であるため、その説明を省略する。

0273

ステップST35Cにおいて、メモリコントローラ100は、電圧VS2、VS5、及びVS8を読出し電圧に用いたシングルステートリードコマンドを発行する。これにより、チップChipは、シングルステート読出しデータSSRq_2R、SSRq_5R、及びSSRq_8Rを読み出し、メモリコントローラ100に出力する。シングルステート読出しデータSSRq_2R、SSRq_5R、及びSSRq_8Rは、メモリコントローラ100内において、読出し電圧補正用バッファメモリ181に保持される。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ