IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2023-180899メモリシステム及び半導体メモリの制御方法
<>
  • 特開-メモリシステム及び半導体メモリの制御方法 図1
  • 特開-メモリシステム及び半導体メモリの制御方法 図2
  • 特開-メモリシステム及び半導体メモリの制御方法 図3
  • 特開-メモリシステム及び半導体メモリの制御方法 図4
  • 特開-メモリシステム及び半導体メモリの制御方法 図5
  • 特開-メモリシステム及び半導体メモリの制御方法 図6
  • 特開-メモリシステム及び半導体メモリの制御方法 図7
  • 特開-メモリシステム及び半導体メモリの制御方法 図8
  • 特開-メモリシステム及び半導体メモリの制御方法 図9
  • 特開-メモリシステム及び半導体メモリの制御方法 図10
  • 特開-メモリシステム及び半導体メモリの制御方法 図11
  • 特開-メモリシステム及び半導体メモリの制御方法 図12
  • 特開-メモリシステム及び半導体メモリの制御方法 図13
  • 特開-メモリシステム及び半導体メモリの制御方法 図14
  • 特開-メモリシステム及び半導体メモリの制御方法 図15
  • 特開-メモリシステム及び半導体メモリの制御方法 図16
  • 特開-メモリシステム及び半導体メモリの制御方法 図17
  • 特開-メモリシステム及び半導体メモリの制御方法 図18
  • 特開-メモリシステム及び半導体メモリの制御方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180899
(43)【公開日】2023-12-21
(54)【発明の名称】メモリシステム及び半導体メモリの制御方法
(51)【国際特許分類】
   G11C 11/56 20060101AFI20231214BHJP
   G11C 16/04 20060101ALI20231214BHJP
   G11C 16/26 20060101ALI20231214BHJP
   G11C 16/08 20060101ALI20231214BHJP
【FI】
G11C11/56 220
G11C16/04 170
G11C16/26 100
G11C16/08 120
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022094575
(22)【出願日】2022-06-10
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】齋藤 正宏
(72)【発明者】
【氏名】渡辺 究
(72)【発明者】
【氏名】野田 優子
(72)【発明者】
【氏名】徳冨 司
(72)【発明者】
【氏名】高井 良貴
【テーマコード(参考)】
5B225
【Fターム(参考)】
5B225BA19
5B225CA21
5B225DA09
5B225DE20
5B225EA05
5B225EG16
5B225FA01
(57)【要約】      (修正有)
【課題】高い信頼性でデータをリードできるメモリシステムを提供する。
【解決手段】メモリシステムにおいて、メモリコントローラは、第1リード電圧VCGR_1及び第1アドレスを指定した第1リードによって得られる第1データ、第1リード電圧より高い第2リード電圧VCGR_2及び第1アドレスを指定したリードによって得られる第2データ、第2リード電圧より高い第3リード電圧VCGR_3及び第1アドレスを指定したリードによって得られる第3データを半導体メモリから受け取り、第1データ中の第1値のビットの第1数と期待値との第1差が第3データ中の第1値のビットの第2数と期待値との第2差より小さい場合、第1リード電圧より低い第4リード電圧及び第1アドレスを指定した第4リードを半導体メモリに指示し、第1差が第2差より大きい場合、第3リード電圧より高い第5リード電圧及び第1アドレスを指定した第5リードを指示する。
【選択図】図10
【特許請求の範囲】
【請求項1】
半導体メモリと、
第1リード電圧及び第1アドレスを指定した第1リードによって得られる第1データを前記半導体メモリから受け取り、
前記第1リード電圧より高い第2リード電圧及び前記第1アドレスを指定した第2リードによって得られる第2データを前記半導体メモリから受け取り、
前記第2リード電圧より高い第3リード電圧及び前記第1アドレスを指定した第3リードによって得られる第3データを前記半導体メモリから受け取り、
前記第1データ中の第1値のビットの第1数と期待値との第1差が前記第3データ中の前記第1値のビットの第2数と前記期待値との第2差より小さい場合、前記第1リード電圧より低い第4リード電圧及び前記第1アドレスを指定した第4リードを前記半導体メモリに指示し、
前記第1差が前記第2差より大きい場合、前記第3リード電圧より高い第5リード電圧及び前記第1アドレスを指定した第5リードを前記半導体メモリに指示する、
ように構成されているメモリコントローラと、
を備えるメモリシステム。
【請求項2】
前記メモリコントローラは、前記第1リード電圧と前記第2リード電圧の間の第1電圧及び前記第2リード電圧と前記第3リード電圧の間の第2電圧のうちの1つが第1範囲の中にない場合、前記第4リード又は前記第5リードを前記半導体メモリに指示するようにさらに構成されている、
請求項1に記載のメモリシステム。
【請求項3】
前記メモリコントローラは、前記第1電圧及び前記第2電圧のうちの1つが前記第1範囲の中にない場合、且つ前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差が、前記第1差及び前記第2差の両方より低くない場合、前記第4リード又は前記第5リードを前記半導体メモリに指示するようにさらに構成されている、
請求項2に記載のメモリシステム。
【請求項4】
前記メモリコントローラは、前記第1電圧及び前記第2電圧のうちの1つが前記第1範囲の中にある場合、前記第1電圧及び前記第2電圧のうちの小さい方より低い第6リード電圧及び前記第1アドレスを指定した第6リードを前記半導体メモリに指示するようにさらに構成されている、
請求項3に記載のメモリシステム。
【請求項5】
前記メモリコントローラは、前記第1電圧及び前記第2電圧のうちの1つが前記第1範囲の中にない場合、且つ前記第3差が、前記第1差及び前記第2差より低い場合、前記第6リードを前記半導体メモリに指示するようにさらに構成されている、
請求項4に記載のメモリシステム。
【請求項6】
前記半導体メモリは、mを2以上の整数とするm個のメモリセルトランジスタを含み、
前記期待値は、Lを2以上の整数とするとともにPを1以上の整数とするm/2のP倍の数である、
請求項1に記載のメモリシステム。
【請求項7】
前記m個のメモリセルトランジスタの各々は、Lビットのデータを記憶し、
前記m個のメモリセルトランジスタにデータが書き込まれた直後、前記m個のメモリセルトランジスタのそれぞれの閾値電圧の分布は、独立した2個のローブを有し、
Pは、前記m個のメモリセルトランジスタのそれぞれの閾値電圧が、前記2個の前記ローブのうちの前記閾値電圧の大きい方に向かってP番目のローブとP+1番目のローブのいずれに属するかの区別のために使用されるリード電圧の推定において使用される、
請求項6に記載のメモリシステム。
【請求項8】
前記第1リードは、前記第2リード、前記第3リード、前記第4リード、及び前記第5リードの各々は、前記第1アドレスにより特定されるメモリセルトランジスタの閾値電圧が、それぞれ前記第1リード電圧、前記第2リード電圧、前記第3リード電圧、前記第4リード電圧、及び前記第5リード電圧より低いか否かに基づくデータのリードを指示する、
請求項1に記載のメモリシステム。
【請求項9】
前記メモリコントローラは、前記第1差、前記第2差、及び前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差のうちの最大の1つが第1閾値を超えない場合、前記第1リード電圧と前記第2リード電圧の間の第1電圧及び前記第2リード電圧と前記第3リード電圧の間の第2電圧のうちの小さい方より低い第6リード電圧及び前記第1アドレスを指定した第6リードを前記半導体メモリに指示するようにさらに構成されている、
請求項1に記載のメモリシステム。
【請求項10】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差のうちの最大の1つが第1閾値を超えない場合、且つ前記第1リード電圧と前記第2リード電圧の間の第1電圧及び前記第2リード電圧と前記第3リード電圧の間の第2電圧のうちの1つが第1範囲の中にない場合、前記第4リード又は前記第5リードを前記半導体メモリに指示するようにさらに構成されている、
請求項9に記載のメモリシステム。
【請求項11】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差とのうちの最大の1つが第1閾値を超えない場合、且つ前記第1リード電圧と前記第2リード電圧の間の第1電圧及び前記第2リード電圧と前記第3リード電圧の間の第2電圧のうちの1つが第1範囲の中にない場合、且つ前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差が、前記第1差及び前記第2差の両方より低くない場合、前記第4リード又は前記第5リードを前記半導体メモリに指示するようにさらに構成されている、
請求項10に記載のメモリシステム。
【請求項12】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第3差とのうちの最大の1つが第1閾値を超えない場合、且つ前記第1電圧及び前記第2電圧のうちの1つが前記第1範囲の中にある場合、前記第6リードを前記半導体メモリに指示するようにさらに構成されている、
請求項11に記載のメモリシステム。
【請求項13】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第3差とのうちの最大の1つが第1閾値を超えない場合、且つ前記第1電圧及び前記第2電圧のうちの1つが前記第1範囲の中にない場合、且つ前記第3差が、前記第1差及び前記第2差より低い場合、前記第6リードを前記半導体メモリに指示するようにさらに構成されている、
請求項12に記載のメモリシステム。
【請求項14】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差のうちの最大の1つが第1閾値を超える場合、前記第4リード又は前記第5リードを前記半導体メモリに指示するようにさらに構成されている、
請求項9に記載のメモリシステム。
【請求項15】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差のうちの最大の1つが第1閾値を超える場合、且つ前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差が、前記第1差及び前記第2差の両方より低くない場合、前記第4リード又は前記第5リードを前記半導体メモリに指示するようにさらに構成されている、
請求項14に記載のメモリシステム。
【請求項16】
前記メモリコントローラは、前記第1差と、前記第2差と、前記第2データ中の前記第1値のビットの第3数と前記期待値との第3差のうちの最大の1つが第1閾値を超える場合、且つ前記第3差が、前記第1差及び前記第2差より低い場合、前記第6リードを前記半導体メモリに指示するようにさらに構成されている、
請求項14に記載のメモリシステム。
【請求項17】
前記半導体メモリは、mを2以上の整数とするm個のメモリセルトランジスタを含み、
前記期待値は、Lを2以上の整数とするとともにPを1以上の整数とするm/2のP倍の数である、
請求項9に記載のメモリシステム。
【請求項18】
前記m個のメモリセルトランジスタの各々は、Lビットのデータを記憶し、
前記m個のメモリセルトランジスタにデータが書き込まれた直後、前記m個のメモリセルトランジスタのそれぞれの閾値電圧の分布は、独立した2個のローブを有し、
Pは、前記m個のメモリセルトランジスタのそれぞれの閾値電圧が、前記2個の前記ローブのうちの前記閾値電圧の大きい方に向かってP番目のローブとP+1番目のローブのいずれに属するかの区別のために使用されるリード電圧の推定において使用される、
請求項17に記載のメモリシステム。
【請求項19】
前記第1リードは、前記第2リード、前記第3リード、前記第4リード、及び前記第5リードの各々は、前記第1アドレスにより特定されるメモリセルトランジスタの閾値電圧が、それぞれ前記第1リード電圧、前記第2リード電圧、前記第3リード電圧、前記第4リード電圧、及び前記第5リード電圧より低いか否かに基づくデータのリードを指示する、
請求項9に記載のメモリシステム。
【請求項20】
第1リード電圧及び第1アドレスを指定した第1リードによって得られる第1データを半導体メモリに送信させることと、
前記第1リード電圧より高い第2リード電圧及び前記第1アドレスを指定した第2リードによって得られる第2データを前記半導体メモリに送信させることと、
前記第2リード電圧より高い第3リード電圧及び前記第1アドレスを指定した第3リードによって得られる第3データを前記半導体メモリに送信させることと、
前記第1データ中の第1値のビットの第1数と期待値との第1差が前記第3データ中の前記第1値のビットの第2数と前記期待値との第2差より小さい場合、前記第1リード電圧より低い第4リード電圧及び前記第1アドレスを指定した第4リードを前記半導体メモリに指示することと、
前記第1差が前記第2差より大きい場合、前記第3リード電圧より高い第5リード電圧及び前記第1アドレスを指定した第5リードを前記半導体メモリに指示することと、
を備える半導体メモリの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、概してメモリシステム及び半導体メモリの制御方法に関する。
【背景技術】
【0002】
メモリと、メモリを制御するコントローラを含んだメモリシステムが知られている。メモリシステムは、高い信頼性でデータをリードできることを求められる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-163724号公報
【特許文献2】特開2020-047339号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
高い信頼性でデータをリードできるメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【0005】
一実施形態によるメモリシステムは、半導体メモリと、メモリコントローラとを含む。メモリコントローラは、第1リード電圧及び第1アドレスを指定した第1リードによって得られる第1データを上記半導体メモリから受け取り、上記第1リード電圧より高い第2リード電圧及び上記第1アドレスを指定した第2リードによって得られる第2データを上記半導体メモリから受け取り、上記第2リード電圧より高い第3リード電圧及び上記第1アドレスを指定した第3リードによって得られる第3データを上記半導体メモリから受け取るように構成されている。メモリコントローラは、上記第1データ中の第1値のビットの第1数と期待値との第1差が上記第3データ中の上記第1値のビットの第2数と上記期待値との第2差より小さい場合、上記第1リード電圧より低い第4リード電圧及び上記第1アドレスを指定した第4リードを上記半導体メモリに指示し、上記第1差が上記第2差より大きい場合、上記第3リード電圧より高い第5リード電圧及び上記第1アドレスを指定した第5リードを上記半導体メモリに指示する、ようにさらに構成されている。
【図面の簡単な説明】
【0006】
図1】第1実施形態のメモリシステムの構成要素及び接続、並びに関連する要素を示す図。
図2】第1実施形態のメモリコントローラの構成要素及び構成要素の接続の例を示す図。
図3】第1実施形態のメモリの構成要素及び構成要素の接続の例を示す図。
図4】第1実施形態のメモリセルアレイの一部の中の構成要素及び構成要素の接続の例を示す図。
図5】第1実施形態のメモリセルアレイの一部の構造の例を概略的に示す図。
図6】第1実施形態のメモリシステムの半導体メモリ中の或る閾値電圧分布の時間による変化の例を示す図。
図7】第1実施形態のメモリシステムでのページリードの間に送受信される信号の例を示す図。
図8】第1実施形態のメモリシステムでのページリードの間に送受信される信号の例を示す図。
図9】第1実施形態のメモリシステムのメモリコントローラによる或る動作のフローを示す図。
図10】第1実施形態のメモリシステムのメモリコントローラによる探索方向の決定のフローを示す図。
図11】第1実施形態のメモリシステムでのオンセル数及び閾値電圧の決定の方法を示す図。
図12】第1実施形態のメモリシステムで使用される範囲の例を示す図。
図13】第1実施形態のメモリシステムで使用される期待値の例を示す図。
図14】第1実施形態のメモリシステムのメモリコントローラによる極小値探索のフローを示す図。
図15】第1実施形態のメモリシステムのメモリコントローラによる極小値探索のフローを示す図。
図16】第1実施形態のメモリシステムでの極小値探索の第1実例を示す図。
図17】第1実施形態のメモリシステムでの極小値探索の第2実例を示す図。
図18】参考用のメモリシステムでの極小値探索を示す図。
図19】第2実施形態のメモリシステムのメモリコントローラによる或る動作のフローを示す図。
【発明を実施するための形態】
【0007】
以下に実施形態が図面を参照して記述される。図面は、模式的なものである。或る実施形態についての記述は全て、明示的に又は自明的に排除されない限り、別の実施形態の記述としても当てはまる。よって、或る実施形態についての記述は、先行する実施形態についての記述と同じ内容を、必要な場合を除いて、原則、含まない。或る実施形態中又は相違する実施形態に亘って略同一の機能及び構成を有する複数の構成要素は、互いに区別されるために、参照符号の末尾にさらなる数字又は文字が付加される場合がある。
【0008】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれか又は両者を組み合せたものとして実現されることが可能である。
【0009】
また、実施形態の方法のフローにおけるいずれのステップも、そうでないと示されない限り、示されている順序とは異なる順序で及び(又は)別のステップと並行して起こることが可能である。
【0010】
本明細書及び特許請求の範囲において、或る第1要素が別の第2要素に「接続されている」とは、第1要素が直接的又は常時或いは一時的に導電性となる要素を介して第2要素に接続されていることを含む。
【0011】
1.第1実施形態
1.1.構造(構成)
1.1.1.メモリシステム
図1は、第1実施形態のメモリシステム5の構成要素及び接続の例を示す。
【0012】
メモリシステム5は、ホスト装置(図示せず)からデータの処理の要求を受け取り、受け取られた要求に基づいて、データの記憶及びデータのリードを含む種々の処理を行うシステムである。メモリシステム5の例は、SSD(Solid State Drive)及び各種のメモリカードを含む。
【0013】
図1に示されるように、メモリシステム5は、半導体メモリ1及びメモリコントローラ2を含む。半導体メモリ1は、不揮発にデータを記憶するメモリである。半導体メモリ1は、1又は複数の半導体チップを含む。半導体メモリ1は、例えば、NAND型フラッシュメモリである。以下の記述は、半導体メモリ1がNAND型フラッシュメモリである例に基づく。
【0014】
メモリコントローラ2は、半導体メモリ1を制御するコントローラである。メモリコントローラ2は、図示せぬホスト装置からの要求に示される処理を行うように半導体メモリ1を制御する。メモリコントローラ2の形態の例は、半導体チップ、SoC(System on a Chip)を含む。
【0015】
1.1.2.メモリコントローラ
図2は、第1実施形態のメモリコントローラ2の構成要素及び構成要素の接続の例を示す。
【0016】
メモリコントローラ2は、ホストインターフェース21、ROM(read only memory)22、RAM(random access memory)23、CPU(central processing unit)24、メモリインターフェース25、及び誤り訂正回路26を含む。
【0017】
ホストインターフェース21は、メモリコントローラ2がホスト装置と通信するためのインターフェースである。ホストインターフェース21は、ハードウェア、又はハードウェアとソフトウェアの組合せからなることが可能である。ホストインターフェース21は、ホストインターフェース21が準拠している通信規格に則ってホスト装置と接続されている。
【0018】
ROM22は、不揮発性のメモリである。ROM22の例は、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)を含む。ROM22は、ファームウェアを含むプログラムを記憶する。
【0019】
RAM23は、揮発性のメモリである。RAM23は、データを一時的に記憶し、メモリシステム5が電源の供給を受けている間、ROM22に記憶されているプログラムを記憶する。RAM23の例は、DRAM(Dynamic Random Access Memory)を含む。
【0020】
CPU24は、メモリコントローラ2の全体の動作を制御する回路である。ROM22に記憶されているとともにRAM23上にロードされたプログラムがCPU24によって実行されることによって、メモリコントローラ2は種々の動作を実行する。ファームウェアは、CPU24に、各実施形態において記述される動作を行わせることができるように構成されている。
【0021】
誤り訂正回路26は、独立した専用の半導体チップとして実現されていてもよいし、半導体基板に形成された回路であってもよいし、CPU24がファームウェアを実行することにより実現されてもよい。誤り訂正回路26は、誤り訂正符号(Error Correction Code, ECC)を使用して、半導体メモリ1に書き込まれるデータ及び半導体メモリ1から読み出されたデータの誤りの検出及び訂正を行う。誤り訂正回路26は、半導体メモリ1に書き込まれるデータ(実書き込みデータ)から誤り訂正符号を生成する。誤り訂正符号の生成の方式に基づいて、実書込みデータに対して、この実書込みデータから生成された誤り訂正符号が付加される。誤り訂正回路26は、誤り訂正回路26が受け取ったデータの或る大きさの部分ごとに誤り訂正符号を生成する。実書込みデータと、この実書込みデータから生成された誤り訂正符号は、半導体メモリ1に書き込まれる。誤り訂正回路26は、誤り訂正符号を使用して、半導体メモリ1から読み出されたデータの中の誤りを検出し、誤りが検出された場合に誤りを訂正する。
【0022】
メモリインターフェース25は、メモリコントローラ2が半導体メモリ1と通信するためのインターフェースである。メモリインターフェース25は、ハードウェア、又はハードウェアとソフトウェアの組合せからなることが可能である。メモリインターフェース25は、半導体メモリ1のタイプに基づく方式の通信を可能にするための配線によって半導体メモリ1と接続されている。半導体メモリ1がNAND型フラッシュメモリである例に基づくと、メモリインターフェース25は、NANDメモリインターフェースである。
【0023】
NANDメモリインターフェースに基づく配線の組は、複数の制御信号及び入出力信号DQを伝送する。制御信号は、信号 ̄CE、CLE、ALE、 ̄WE、 ̄RE、 ̄WP、データストローブ信号DQS及び ̄DQS、並びにレディー・ビジー信号RY/BYを含む。符号「 ̄」は、符号「 ̄」無しの名称の信号の論理の反転の論理を示す。半導体メモリ1は、入出力信号DQを受け取り、入出力信号DQを送信する。入出力信号DQは、例えば、8ビットの幅を有し、コマンド(CMD)、書込みデータ又はリードデータ(DAT)、アドレス情報(ADD)、及びステータス(STA)を含む。
【0024】
信号 ̄CEは半導体メモリ1をイネーブルにする。信号CLEは、入出力信号DQによるコマンドの送信を半導体メモリ1に通知する。信号ALEは、入出力信号DQによるアドレス情報の送信を半導体メモリ1に通知する。信号 ̄WEは、入出力信号DQの取り込みを半導体メモリ1に指示する。信号 ̄REは、入出力信号DQの出力を半導体メモリ1に指示する。レディー・ビジー信号RY/BYは、半導体メモリ1がレディー状態であるか、ビジー状態であるかを示し、ローレベルによってビジー状態を示す。半導体メモリ1は、レディー状態にあると、コマンドを受け付け、ビジー状態にあると、コマンドを受け付けない。
【0025】
1.1.3.半導体メモリ
図3は、第1実施形態の半導体メモリ1の構成要素及び構成要素の接続の例を示す。半導体メモリ1は、メモリセルアレイ10、入出力回路11、レジスタ12、シーケンサ13、電圧生成回路14、ドライバ15、ロウデコーダ16、センスアンプ17、及びデータレジスタ(データキャッシュ)18等の構成要素を含む。
【0026】
メモリセルアレイ10は、配列されたメモリセルの集合である。メモリセルアレイ10は、複数のメモリブロック(ブロック)BLK(BLK0、BLK1、…)を含む。各ブロックBLKは、複数のメモリセルトランジスタMTを含む。メモリセルアレイ10には、ワード線WL(図示せず)及びビット線BL(図示せず)も位置している。
【0027】
入出力回路11は、NANDメモリインターフェースに基づく配線によってメモリコントローラ2と接続されている。
【0028】
レジスタ12は、メモリコントローラ2によって受け取られたコマンドCMD及びアドレス情報ADDを保持する回路である。コマンドCMDは、シーケンサ13にデータリード、データ書込み、及びデータ消去を含む種々の動作を指示する。アドレス情報ADDは、例えばブロックアドレス、ページアドレス、及びカラムアドレスを含む。ブロックアドレス、ページアドレス、及びカラムアドレスは、それぞれブロックBLK、ワード線WL、及びビット線BLを指定する。
【0029】
シーケンサ13は、半導体メモリ1全体の動作を制御する回路である。シーケンサ13は、レジスタ12から受け取られたコマンドCMDに基づいて、電圧生成回路14、ロウデコーダ16、及びセンスアンプ17を制御して、データリード、データ書込み、データ消去を含む種々の動作を実行する。
【0030】
電圧生成回路14は、複数の相違する大きさの電圧を生成する回路である。電圧生成回路14は、半導体メモリ1の外部から電源電圧を受け、電源電圧から複数の電圧を生成する。生成された電圧は、メモリセルアレイ10及びドライバ15等の構成要素に供給される。種々の電圧の印加により、半導体メモリ1中の種々の構成要素及び配線に電圧が印加される。
【0031】
ドライバ15は、半導体メモリ1の動作に必要な種々の電圧を幾つかの構成要素に印加する回路である。ドライバ15は、電圧生成回路14から、複数の電圧を受け、複数の電圧のうちの選択されたものをロウデコーダ16に供給する。
【0032】
ロウデコーダ16は、ブロックBLKを選択するための回路である。ロウデコーダ16は、レジスタ12から受け取られたブロックアドレスに基づいて選択された1つのブロックBLKにドライバ15から供給される電位を転送する。
【0033】
センスアンプ17は、メモリセルアレイ10に記憶されているデータを決定する回路である。センスアンプ17は、メモリセルトランジスタMTの状態をセンスし、センスされた状態に基づいてリードデータを生成し、又は、書込みデータをメモリセルトランジスタMTに転送する。
【0034】
データレジスタ18は、半導体メモリ1によるデータの入力及び出力のためのデータを保持する回路である。データレジスタ18は、半導体メモリ1によって受け取られたデータDATを受け取り、受け取られたデータDATに基づくデータをセンスアンプ17に供給する。データレジスタ18は、センスアンプ17からデータを受け取り、受け取られたデータに基づくデータDATを入出力回路11に供給する。
【0035】
1.1.4.メモリセルアレイ
図4は、第1実施形態のメモリセルアレイ10の一部の構成要素及び接続の例を示し、1つのブロックBLK0の構成要素及び接続、並びに関連する要素を示す。複数のブロックBLK、例えば全てのブロックBLKは、図4に示される構成要素及び構成要素の接続を含む。
【0036】
1つのブロックBLKは、複数(例えば4つ)のストリングユニットSU0~SU3を含む。
【0037】
mを正の整数として、m本のビット線BL0~BL(m-1)の各々は、各ブロックBLKにおいて、ストリングユニットSU0~SU3の各々からの1つのNANDストリングNSと接続されている。
【0038】
各NANDストリングNSは、1つの選択ゲートトランジスタST、複数(例えば8つ)のメモリセルトランジスタMT(MT0~MT7)、及び1つの選択ゲートトランジスタDT(DT0、DT1、DT2、又はDT3)を含む。トランジスタST、MT、及びDTは、この順で、ソース線SLと1つのビット線BLとの間に直列に接続されている。メモリセルトランジスタMTは、制御ゲート電極(ワード線WL)、及び周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に記憶できる。
【0039】
相違する複数のビット線BLとそれぞれ接続された複数のNANDストリングNSは1つのストリングユニットSUを構成する。各ストリングユニットSUにおいて、メモリセルトランジスタMT0~MT7の制御ゲート電極は、ワード線WL0~WL7とそれぞれ接続されている。1つのストリングユニットSU中でワード線WLを共有するメモリセルトランジスタMTの組は、セルユニットCUと称される。
【0040】
選択ゲートトランジスタDT0~DT3(図4において、DT2、DT3は図示せず)はストリングユニットSU0~SU3にそれぞれ属する。ストリングユニットSU0の複数のNANDストリングNSの各々の選択ゲートトランジスタDT0のゲートは選択ゲート線SGDL0に接続されている。同様に、ストリングユニットSU1、SU2、及びSU3のそれぞれの複数のNANDストリングNSの各々の選択ゲートトランジスタDT1、DT2、及びDT3のゲートは選択ゲート線SGDL1、SGDL2、及びSGDL3に接続されている。
【0041】
選択ゲートトランジスタSTのゲートは選択ゲート線SGSLに接続されている。
【0042】
1.2.動作
1.2.1.メモリセルトランジスタによるデータの記憶
半導体メモリ1は、1つのメモリセルトランジスタMTにおいて2ビット以上のデータを記憶することができる。図5は、第1実施形態のメモリシステム5の4ビットのデータを記憶しているメモリセルトランジスタMTの閾値電圧の分布とデータのマッピングの例を示す。各メモリセルトランジスタMTの閾値電圧は、その電荷蓄積層中の電子の量の多寡に基づいて、記憶されているデータに応じた大きさを有する。メモリセルトランジスタMTあたり4ビットの記憶の場合、各メモリセルトランジスタMTは、16個の状態のうちの閾値電圧に応じた1つの状態にあることが可能である。16個の状態は、それぞれ、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、及び“15”ステートと称される。“0”ステート、“1”ステート、“2”ステート、“3”ステート、“4”ステート、“5”ステート、“6”ステート、“7”ステート、“8”ステート、“9”ステート、“10”ステート、“11”ステート、“12”ステート、“13”ステート、“14”ステート、及び“15”ステートにあるメモリセルトランジスタMTは、この順でより高い閾値電圧を有する。
【0043】
データ書込みによって、書込み対象のメモリセルトランジスタMTは、書き込まれるデータに基づいて、“0”ステートに維持されるか、“1”ステート、“2”ステート、“3”ステート、“4”ステート、“5”ステート、“6”ステート、“7”ステート、“8”ステート、“9”ステート、“10”ステート、“11”ステート、“12”ステート、“13”ステート、“14”ステート、及び“15”ステートのいずれかに移される。“0”ステートにあるメモリセルトランジスタMTは、データ書込みによっても閾値電圧を上昇されないが、以下、データ書込みによってメモリセルトランジスタMTを“0”ステートにとどめることもデータ書込みと称される場合がある。
【0044】
各ステートに4ビットのデータが任意の形で割り当てられることが可能である。以下、一例が記述される。例として、各ステートは、以下の4ビットデータを有しているものとして扱われる。以下の記述の“ABCD”は、A、B、C、及びDが、それぞれ、ロワー、アッパー、ミドル、ロワーのビットの値を示す。
“0”ステート :“1111”
“1”ステート :“1101”
“2”ステート :“0101”
“3”ステート :“0100”
“4”ステート :“0000”
“5”ステート :“1000”
“6”ステート :“1100”
“7”ステート :“1110”
“8”ステート :“1010”
“9”ステート :“0010”
“10”ステート:“0110”
“11”ステート:“0111”
“12”ステート:“0011”
“13”ステート:“1011”
“14”ステート:“1001”
“15”ステート:“0001”
或る同じ4ビットデータを記憶する複数のメモリセルトランジスタMTであっても、互いに相違する閾値電圧を有し得る。閾値電圧の分布のうち、各ステートに属する閾値電圧の集合からなる部分は、閾値電圧のローブ又は閾値電圧ローブと称される場合がある。
【0045】
データリード対象のメモリセルトランジスタMTによって記憶されているデータの決定のために、リード対象メモリセルトランジスタMTのステートが判断される。リード対象メモリセルトランジスタMTが、どのステートにあるかの判断のために、相違する大きさを有する複数のリード電圧VCGRが使用される。リード対象メモリセルトランジスタMTの閾値電圧がどの範囲にあるかが、このリード対象メモリセルトランジスタMTのステートの決定に用いられる。リード対象メモリセルトランジスタMTの閾値電圧の範囲の決定のために、当該リード対象メモリセルトランジスタMTが、或るリード電圧VCGR以上の閾値電圧を有するか否かが判断される。リード電圧VCGR以上の閾値電圧を有するメモリセルトランジスタMTは、制御ゲート電極においてリード電圧VCGRを受け取っていてもオフしている。一方、リード電圧VCGR未満の閾値電圧を有するメモリセルトランジスタMTは、制御ゲート電極においてリード電圧VCGRを受け取っていると、オンしている。このことに基づいて、或る大きさのリード電圧VCGRを受け取っていてもオフしているリード対象メモリセルトランジスタMTは、このリード電圧VCGRより高い閾値電圧を有すると判断されることが可能である。
【0046】
リード対象メモリセルトランジスタMTが、“0”ステート、“1”ステート、“2”ステート、“3”ステート、“4”ステート、“5”ステート、“6”ステート、“7”ステート、“8”ステート、“9”ステート、“10”ステート、“11”ステート、“12”ステート、“13”ステート、及び“14”ステートより上のステートにあるかの判断のためのリードは、それぞれ、それぞれ、1R(リード)、2R、3R、4R、5R、6R、7R、8R、9R、10R、11R、12R、13R、14R、および15Rと称される。1R、2R、3R、4R、5R、6R、7R、8R、9R、10R、11R、12R、13R、14R、および15Rにおいて、それぞれ、リード電圧V1、V2、V3、V4、V5、V6、V7、V8、V9、V10、V11、V12、V13、V14、及びV15が用いられる。リード電圧V1、V2、V3、V4、V5、V6、V7、V8、V9、V10、V11、V12、V13、V14、及びV15を制御ゲートで受け取っていてもオフしているリード対象メモリセルトランジスタMTは、それぞれ、“1”ステート、“2”ステート、“3”ステート、“4”ステート、“5”ステート、“6”ステート、“7”ステート、“8”ステート、“9”ステート、“10”ステート、“11”ステート、“12”ステート、“13”ステート、“14”ステート、及び“15”ステートかそれ以上のステートにあると判断される。
【0047】
リード電圧V1は、“0”ステート中のメモリセルトランジスタMTの最も高い閾値電圧より高く、書き込まれた直後の“1”ステート中のメモリセルトランジスタMTの最も低い閾値電圧より低い。
【0048】
同様に、α(αは自然数)が2から15の各々のケースについて、リード電圧Vαは、書き込まれた直後の“(α-1)”ステート中のメモリセルトランジスタMTの最も高い閾値電圧より高く、書き込まれた直後の“α”ステート中のメモリセルトランジスタMTの最も低い閾値電圧より低い。
【0049】
1つのセルユニットCUのメモリセルトランジスタMTの同じ位置(桁)のビットのデータの組は、1つのページを構成する。各セルユニットCUのメモリセルトランジスタMTの最下位(下から1桁目)のビット(ロワービット)のデータの組は、ロワーページと称される。各セルユニットCUのメモリセルトランジスタMTの最下位から2桁目のビット(ミドルビット)のデータの組は、ミドルページと称される。各セルユニットCUのメモリセルトランジスタMTの最下位から3桁目のビット(アッパービット)のデータの組は、アッパーページと称される。各セルユニットCUのメモリセルトランジスタMTの最上位(下から4桁目)のビット(トップビット)のデータの組は、トップページと称される。
【0050】
データ消去によって、消去対象のメモリセルトランジスタMTの閾値電圧が下げられ、“0”ステートへと移される。
【0051】
以下の記述は、セルユニットCUごとに4ページのデータが記憶される例に基づく。
【0052】
メモリセルトランジスタMTが同じデータを記憶している期間においても、メモリセルトランジスタMTの閾値電圧は、半導体メモリ1が使用されるに連れて、且つ、時間とともに、意図せずに変化する。この結果、メモリセルトランジスタMTの閾値電圧の分布は、これらのメモリセルトランジスタMTにデータが書き込まれた直後の分布と異なり得る。変化した閾値電圧分布では、隣り合う閾値電圧ローブは、部分的に重なり合う。閾値電圧ローブの重なり合いは、隣り合う2つの閾値電圧ローブの各組において起こり得る。
【0053】
図6は、第1実施形態のメモリシステムの半導体メモリ中の或る閾値電圧分布の時間による変化の例を示す。図6は、隣り合う閾値電圧ローブの例として、或るセルユニットCUについての“3”ステートと“4”ステートについて示す。図6の上部に示されるように、データ書込みの直後の“3”ステートの閾値電圧ローブと“4”ステートの閾値電圧ローブは互いに独立している。しかし、閾値電圧の変化により、図6の下部に示されるように、“3”ステートの閾値電圧ローブの右側の部分と“4”ステートの閾値電圧ローブの左側の部分が重なり、2つの閾値電圧ローブは一体化している。この結果、2つの閾値電圧ローブを含んだ閾値分布の中に極小値が形成されている。このような閾値電圧分布を有するメモリセルトランジスタMTの各々が“3”ステート又はそれより下のステートにあるか或いは“4”ステート又はそれより上のステートにあるかが判断されるために、リード電圧V4の使用は不適切な場合がある。すなわち、リード電圧V4によって、或るメモリセルトランジスタMTが、本来位置するステートは別のステートにあると判断され得る。これは、誤ったデータリードに繋がる。
【0054】
このような場合、閾値電圧分布の極小値に位置するメモリセルトランジスタMTが有する閾値電圧がリード電圧VCGRとして使用されることが、メモリセルトランジスタMTが“3”ステートと“4”ステートのいずれにあるかの高精度な判断を可能にする。よって、極小値の点(極小点)の推定が求められる。推定の対象の極小点は、極小点での電圧をリード電圧VCGRとして使用して後に行われるリードによって、メモリセルトランジスタMTがいずれかに位置し得る2つの隣接するステートに依存する。図6の例では、推定される対象の極小点は“3”ステートのローブと“4”ステートのローブの間の極小点である。以下、推定対象の極小点は、ターゲット極小点と称される場合がある。ターゲット極小点を構成する2つの隣接するステートの間のデフォルトのリード電圧VCGRは、ターゲット極小点に対応するデフォルトリード電圧VCGRと称される場合がある。図6の例では、ターゲット極小点に対応するデフォルトリード電圧は、リード電圧V4である。推定された極小点に対応するリード電圧は、リード電圧V4lmである。
【0055】
1.2.3.データリードの種類
メモリコントローラ2は、以下に記述される複数種類のリードを指示することができ、半導体メモリ1は、以下に記述される複数種類のリードの指示を認識して、指示されたリードを行うことができる。
【0056】
複数種類のリードは、ページリードとシングルステートリードを含む。ページリードは、図5を参照して記述される、1つのページ(トップ、アッパー、ミドル、又はロワー)のデータをリードすることである。図7は、第1実施形態のメモリシステムでのページリードの間に送受信される信号の例を示す。
【0057】
図7に示されるように、メモリコントローラ2は、ページリードコマンドセットを半導体メモリ1に送信する。ページリードコマンドセットは、ページリードを特定するビット列、リード対象を指定するアドレス情報ADD、及びリードの対象のページを指定する情報を含む。リード対象アドレスは、1つのセルユニットCUを特定する。
【0058】
半導体メモリ1は、ページリードコマンドセットを受け取ると、指定されたページリードを行う。ページリードは、リード対象のページに基づいて、複数のリード電圧VCGRを使用する。例えば、ロワーページリードの場合は、図5の例に基づくと、リード電圧V3及びV11が使用される。ページリードにより、リード対象のセルユニットCUの指定されたページのデータが半導体メモリ1中で取得される。取得されたデータは、メモリコントローラ2の指示(リードイネーブル信号 ̄REの制御)によって、メモリコントローラ2に送信される。
【0059】
リード電圧VCGRが指定される場合がある。そのような場合、設定コマンドセットが使用される。設定コマンドセットは、リード電圧VCGRを指定する情報を含む。設定コマンドセットによって指定されたリード電圧は、例えば、次に設定コマンドセットによって設定されるまで有効である。よって、ページリードコマンドセットに先行する設定コマンドセットによって、ページリードコマンドセットに基づくリード使用されるリード電圧VCGRが指定されることが可能である。リード電圧を指定する情報は、例えば、リード電圧を直接指定しても良いし、或る基準の(例えば、デフォルトの)リード電圧との差を指定してもよい。リード電圧の指定は、各リード電圧に対して行われてもよいし、複数のリード電圧に対して行われてもよい。リード電圧を指定する情報が、ページリードコマンドセットに含まれていてもよい。
【0060】
シングルステートリードは、1ページのデータを記憶しているセルユニットCUからのデータのリードと同じである。図8は、第1実施形態のメモリシステムでのシングルステートリードの間に送受信される信号の例を示す。
【0061】
図8に示されるように、メモリコントローラ2は、シングルステートリードコマンドセットを半導体メモリ1に送信する。シングルステートリードコマンドセットは、シングルステートリードを特定するビット列、リード対象を指定するアドレス情報ADD、及び或る大きさのリード電圧VCGRを指定する情報を含む。リード対象アドレスは、1つのセルユニットCUを特定する。
【0062】
半導体メモリ1は、シングルステートリードコマンドセットを受け取ると、シングルステートリードを行う。シングルステートリードは、ただ1つのリード電圧VCGRを使用する。シングルステートリードにより、リード対象のセルユニットCUの各メモリセルトランジスタMTについて、このメモリセルトランジスタMTがリード電圧VCGR未満の閾値電圧を有する場合、このメモリセルトランジスタMTのステートによらずに、或る値の1ビットデータ(例えば“1”データ)が読み出される。一方、シングルステートリードにより、リード対象のセルユニットCUの各メモリセルトランジスタMTについて、このメモリセルトランジスタMTがリード電圧VCGR以上の閾値電圧を有する場合、このメモリセルトランジスタMTのステートによらずに、別の値の1ビットデータ(例えば“0”データ)が読み出される。よって、シングルステートリードによって、リード対象のセルユニットCUの複数の(例えば、全ての)メモリセルトランジスタMTのそれぞれの閾値電圧に基づいて定まる複数ビットの組のデータ(シングルステートリードデータ)が半導体メモリ1中で取得される。シングルステートリードデータは、メモリコントローラ2の指示(リードイネーブル信号 ̄REの制御)によって、メモリコントローラ2に送信される。
【0063】
1.2.3.閾値電圧分布の極小値探索
図9は、第1実施形態のメモリシステムのメモリコントローラによる或る動作のフローを示す。より具体的には、図9は、メモリコントローラ2による、或るセルユニットCUのメモリセルトランジスタMTの閾値電圧分布中の或るターゲット極小点の探索のフローを示す。メモリコントローラ2、特にCPU24は、図9を参照して以下に記述される動作を行う。
【0064】
図9のフローは、或るセルユニットCUの或るページのデータのリードの開始の前に行われる。すなわち、図9のフローは、メモリコントローラ2が、ページデータのリードに使用される、或るリード電圧VCGRの大きさの決定が必要であると判断すると、メモリコントローラ2によって開始されることが可能である。例えば、図9のフローは、メモリコントローラ2が、或るセルユニットCUの或るページのデータを取得し、取得されたページデータに対する誤り訂正回路26による誤り訂正に失敗した場合に、開始することが可能である。
【0065】
メモリコントローラ2は、極小点の探索のうちの最初の部分(初期探索)を行うとともに探索方向を決定する(ST1)。探索方向は、後続のステップによって行われる、極小点が探索される方向である。初期探索によって、極小点探索に使用される情報が取得される。
【0066】
メモリコントローラ2は、極小点を推定する(ST2)。極小点の推定には、初期探索によって得られた情報が使用される。極小点の探索は、ST1によって決定された探索方向に向かって行われる。ST2が終わると、極小点探索のフローは終了する。
【0067】
極小点が推定されると、メモリコントローラ2は、極小点での電圧をリード電圧VCGRとして使用して、セルユニットCUからのさらなるページリードを行うことができる。ページリードに必要な複数のリード電圧VCGRの2つ以上についてST2が行われてもよい。例えば、メモリコントローラ2は、図9のフローの開始の契機となった、誤り訂正に失敗したデータを記憶しているページから、極小点での電圧をリード電圧VCGRとして使用して、データをリードする。例えば、メモリコントローラ2は、得られたデータの誤り訂正に成功すると、極小点での電圧(すなわちリード電圧VCGR)を特定する情報を記憶し、同じページからのデータの次のリードにおいて、特定されるリード電圧VCGRを使用する。
【0068】
1.2.3.1.初期探索及び探索方向決定
図10は、第1実施形態のメモリシステムのメモリコントローラによる或る動作のフローを示す。より具体的には、図10は、図9に示される初期探索及び探索方向決定(ST1)のサブフローを示す。メモリコントローラ2、特にCPU24は、図10を参照して以下に記述される動作を行う。
【0069】
メモリコントローラ2は、3回のシフトリードを行って、相違する大きさの3つのリード電圧VCGRのそれぞれでのオンセル数CCを取得する(ST101)。シフトリードは、或るリードで使用される或る大きさのリード電圧VCGRと異なる(シフトされた)大きさのリード電圧VCGRを使用するリードを指す。このシフトリードは、シングルステートリードを使用する。メモリコントローラ2は、各シフトリードのために、使用されるリード電圧VCGRを指定するシングルステートリードコマンドセットを半導体メモリ1に送信する。半導体メモリ1は、シングルステートリードコマンドセットを受け取ると、受け取られたコマンドセットに基づいてシングルステートリードを行い、得られたシングルステートリードデータをメモリコントローラ2に送信する。
【0070】
或るリード電圧VCGRの印加を含んだシングルステートリードによって、このリード電圧VCGR未満の閾値電圧を有するメモリセルトランジスタMTがオンする。オンセル数CCは、このような或る大きさのリード電圧VCGRの印加によってオンするトランジスタの数である。シングルステートリードデータのうちのオンしたメモリセルトランジスタMTに基づく値のデータ(例えば“1”データ)のビットの数が、オンセル数CCである。メモリコントローラ2は、或るリード電圧VCGRでのシングルステートリードによって得られるシングルステートリードデータ中の特定の値(例えば“1”データ)のビットの数を計数することにより、このリード電圧VCGRによるオンセル数CCを取得できる。
【0071】
或るシフトリードでのリード電圧VCGRの大きさは、このシフトリードより前に行われたシフトリードでのリード電圧VCGRの大きさと、シフト電圧ΔVだけ異なる。よって、図11の中段に示されるように、3回のシフトリードでのリード電圧VCGR_1、VCGR_2、及びVCGR_3は以下の関係を有する。リード電圧VCGR_2は、リード電圧VCGR_1よりシフト電圧ΔVだけ高い。リード電圧VCGR_3は、リード電圧VCGR_2よりシフト電圧ΔVだけ高い。リード電圧VCGR_1、VCGR_2、及びVCGR_3は、任意の順番で使用されることが可能である。より高いリード電圧VCGR_の印加によってオンするメモリセルトランジスタMTの数はより多い。
【0072】
以下、βを正の整数として、リード電圧VCGR_βでのオンセル数CCは、オンセル数CC_βと称される。オンセル数CC_3、CC_2、及びCC_1は、この順で大きい。オンセル数CC_1、CC_2、及びCC_3は、メモリコントローラ2中で、例えば、RAM23によって保持される。
【0073】
リード電圧VCGR_1、VCGR_2、及びVCGR_3の大きさは、任意の方法で決定されることが可能である。例えば、リード電圧VCGR_1、VCGR_2、及びVCGR_3のうちの最初に使用されるものの大きさは、デフォルトの大きさである。具体的には、“3”ステートの閾値電圧ローブと“4”ステートの閾値電圧ローブからなる閾値電圧分布の極小値の探索の例では、リード電圧V4が使用されることができる。又は、誤り訂正に成功したデータに繋がった前回のリードで使用された値が使用されることができる。
【0074】
図10に示されるように、メモリコントローラ2は、オンセル数差CD_2及びオンセル数差CD_3を取得する(ST102)。γを2以上の正の整数として、オンセル数差CD_γは、オンセル数CC_γ-オンセル数CC_(γ-1)である。オンセル数差CD_2及びオンセル数差CD_3は、メモリコントローラ2中で、例えば、RAM23によって記憶される。
【0075】
オンセル数差CD_γは、リード電圧VCGR_(γ-1)を下限とするとともにリード電圧VCGR_γを上限とする範囲の中の閾値電圧を有するメモリセルトランジスタMTの数に相当する。処理の簡略化の目的で、リード電圧VCGR_(γ-1)とリード電圧VCGR_γの範囲の中の閾値電圧を有するメモリセルトランジスタMTは、或る代表の大きさの閾値電圧を有するものと近似される(ST103)。代表の大きさとして、図11の最下段に示されるように、例えば、範囲の中央の大きさが使用される。すなわち、オンセル数差CD_γのメモリセルトランジスタMTが(VCGR_γ+VCGR_(γ-1))/2の大きさの閾値電圧を有するものとして扱われる。以下、(VCGR_γ+VCGR_(γ-1))/2の大きさの閾値電圧は、リード電圧Vr_γと称される場合がある。
【0076】
図10に示されるように、メモリコントローラ2は、リード電圧Vr_2及びVr_3の少なくとも一方が、或る範囲VMの中にあるかを判断する(ST104)。図12に示されるように、範囲VMは、以下に記述される基準の電圧VREに基づく上限及び下限を有する。図9を参照して上記されるように、或るリード電圧VCGRを使用してリードされた或るページデータの誤り訂正に成功すると、メモリコントローラ2は、このリード電圧VCGRを特定する情報を記憶する。基準電圧VREは、このような誤り訂正に成功したページデータのリードに使用されたリード電圧VCGRであることが可能である。例えば、図10のフローを含んだ図9のフローによって或る第1ページの“3”ステートと“4”ステートの区別のためのリード電圧VCGRが推定される場合、誤り訂正に成功した第1ページのデータの前回のリードに使用された“3”ステートと“4”ステートの区別のためのリード電圧VCGRが基準電圧VREとして使用される。同じページからの誤り訂正に成功したページデータのリードに使用された対応するリード電圧VCGRが利用可能でない場合、基準電圧VREはターゲット極小点に対応するデフォルトリード電圧VCGRであることが可能である。範囲VMは、例えば、基準電圧VREを範囲VMの中心において含む。すなわち、範囲VMは、基準電圧VREを中心として、VRE-VM/2からVRE+VM/2の範囲である。
【0077】
初期探索によって得られるリード電圧Vr_2及びVr_3が、範囲VMの中にあることは、リード電圧Vr_2及びVr_3が、ターゲット極小点に対応するデフォルトリード電圧VCGRの近傍に位置することを意味する。よって、探索方向の決定のためのさらなるステップの実行無しに、ターゲット極小点に向かう探索方向が決定されることができる可能性が高い。よって、探索方向の決定のためのさらなるステップが省略されることが可能である。範囲VMがより狭いと、範囲VM中にあるリード電圧Vr_2又はVr_3がターゲット極小点により近い状態が検出されることが可能である。よって、範囲VMがより狭いと、探索方向の決定のためのさらなるステップが省略される可能性がより高い。しかしながら、範囲VMがより狭いと、リード電圧Vr_2又はVr_3が範囲VM中に入る可能性はより低い。
【0078】
一方、範囲VMがより広いと、リード電圧Vr_2又はVr_3が範囲VM中に入る可能性はより高い。このため、探索方向の決定のためのさらなるステップが省略される可能性がより高い。しかしながら、探索方向の決定のためのさらなるステップによって、より高い精度でターゲット極小点に向かう探索方向が決定される可能性が閉ざされる場合がある。
【0079】
以上の検討事項から、範囲VMの大きさが設定される。例として、範囲VMは、シフト電圧ΔVと同じであることが可能である。
【0080】
図10に示されるように、リード電圧Vr_2及びVr_3のいずれかが範囲VMの中にある場合(ST104;Yes)、これは、上記のように、リード電圧Vr_2及びVr_3が、ターゲット極小点に対応するデフォルトリード電圧VCGRの近傍に位置することを意味する。このことに基づいて、メモリコントローラ2は、閾値電圧の分布曲線上における、後続のステップによって極小点が探索される方向を決定する(ST105)。極小点の探索方向は、リード電圧Vr_2及びVr_3のうちの大きい方から小さい方に向かう方向に決定される。具体的には、リード電圧Vr_2がリード電圧Vr_3より小さい場合、探索方向は、電圧の大きさが低くなる方向(電圧の負の方向)である。リード電圧Vr_3がリード電圧Vr_2より小さい場合、探索方向は、電圧の大きさが高くなる方向(電圧の正の方向)である。ST105の実行によって、図10のフローは終了する。
【0081】
リード電圧Vr_2及びVr_3のいずれもが範囲VMの中にない場合(ST104;No)、これは、リード電圧Vr_2及びVr_3が、ターゲット極小点に対応するデフォルトリード電圧VCGR_から遠いことを意味する。このことに基づいて、メモリコントローラ2は、ST105と異なる方法で極小点の探索方向を決定する。
【0082】
まず、メモリコントローラ2は、オンセル数CC_1、CC_2、及びCC_3の各々と期待値ECとの差を算出する(ST106)。期待値ECは、ターゲット極小点の種類に依存する。すなわち、期待値ECは、ターゲット極小点を構成する2つの閾値電圧ローブのそれぞれの2つのステートに依存する。期待値ECは、理論的に各ステートにあると想定されるメモリセルトランジスタMTの数に基づき、ターゲット極小点の近傍に位置する。期待値ECの詳細は、後述される。
【0083】
メモリコントローラ2は、オンセル数CC_1、CC_2、及びCC_3のうち、期待値ECとの差が最小となる1つを選択する(ST107)。
【0084】
メモリコントローラ2は、選択されたオンセル数CCが、オンセル数CC_2であるかを判断する(ST108)。リード電圧Vr_2及びVr_3のいずれもが範囲VMの中にない場合、通常は、オンセル数CC_1と期待値ECとの差又はオンセル数CC_3と期待値ECとの差が最小であると推測される。オンセル数CC_1と期待値ECとの差又はオンセル数CC_3と期待値ECとの差が最小である場合(ST108;No)、メモリコントローラ2は、ST105と異なる方法で極小点の探索方向を決定する(ST109)。具体的には、メモリコントローラ2は、オンセル数CC_1及びCC_3のうち、期待値ECとの差が大きい方のオンセル数CCのオンセルを含んだデータのリードに使用されたリード電圧VCGRから、期待値ECとの差が小さい方のオンセル数CCのオンセルを含んだデータのリードに使用されたリード電圧VCGRに向かう向きを探索方向に決定する。オンセル数CC_1と期待値ECとの差が最小である場合、探索方向は、電圧の大きさが低くなる方向(電圧の負の方向)である。オンセル数CC_3と期待値ECとの差が最小である場合、探索方向は、電圧の大きさが高くなる方向(電圧の正の方向)である。ST109の実行によって、図10のフローは終了する。
【0085】
オンセル数CC_2と期待値ECとの差が最小である場合(ST108;Yes)、メモリコントローラ2は、ST105を行う。リード電圧Vr_2及びVr_3のいずれもが範囲VMの中にない場合、通常は、オンセル数CC_2と期待値ECとの差が最小であることは起こらないと考えられる。よって、オンセル数CC_2と期待値ECとの差が最小であることは、これまでのステップによる処理での意図せぬ現象(エラー)が発生したと考えられる。このことに基づいて、探索方向の決定は、ST109によってではなく、ST105によって行われる。
【0086】
1.2.3.1.1.期待値
図13は、第1実施形態のメモリシステムで使用される期待値ECの例を示す。メモリコントローラ2は、半導体メモリ1にデータを書き込むことを決定すると、書き込まれるデータをページのサイズに分割し、ページごとに半導体メモリ1に書き込む。このとき、メモリコントローラ2は、書き込まれるページデータをランダマイズする。ランダマイズは、ページデータ中のビットをランダムに可逆的に並べ替えることである。ランダマイズの結果、ページサイズのデータの“0”データの分布と“1”データの分布の局所的な偏りが減少し、“0”データと“1”データが実質的に均一に分布する。各ページに書き込まれるページデータの“0”データと“1”データが実質的に均一に分布するため、全4ページにデータを書き込まれたセルユニットCU中のメモリセルトランジスタMTのステートの分布も実質的に均一になる。すなわち、そのようなセルユニットCU中の各ステートに位置するメモリセルトランジスタMTの数は実質的に同一になる。
【0087】
1セルユニットCUがm個のメモリセルトランジスタMTを含む現行の例に基づくと、各ステートに或るメモリセルトランジスタMTの数は、CS=m/2である。Lは、セルユニットCUが記憶しているページの数である。セルユニットCUが4ページのデータを記憶している現行の例に基づくと、Lは4である。
【0088】
そのようなセルユニットCU中の各ステートに位置するメモリセルトランジスタMTの数は実質的に同一であるため、或るステート及びそれより低いステートにあるメモリセルトランジスタMTの総数は、ステートの位置に基づいて、CSに比例する。具体的には、図12に示されるように、“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、及び“14”ステートまでのそれぞれのトランジスタの累計は、それぞれ、CS、2CS、3CS、4CS、5CS、6CS、7CS、8CS、9CS、10CS、11CS、12CS、13CS、14CS、及び15CSである。これらの数が期待値ECとして使用される。Pを正の整数として、ターゲット極小点が下からP番目のステートとP+1番目のステートの間の極小点である例に基づくと、ターゲット極小点の推定のための期待値ECは、CS×Pである。“3”ステートと“4”ステートの間の極小点である例に基づくと、ターゲット極小点の推定のための期待値ECは、4CSである。
【0089】
1.2.3.2.極小点の推定
極小点の推定は、ST1で決定された探索方向に向かって探索が開始する限り、既知の任意の方法で行われることが可能である。以下に2つの例の概要が記述される。
【0090】
1.2.3.2.1.第1例
図14及び図15、第1実施形態のメモリシステムのメモリコントローラによる或る動作のフローを示す。より具体的には、図14及び図15は、図9に示される極小点の推定(ST2)の第1例のサブフローを示す。図14は、図10のST1で探索方向が正の向きであると決定される場合について示す。図15は、図10のST1で探索方向が負の向きであると決定される場合について示す。メモリコントローラ2、特にCPU24は、図14及び図15を参照して以下に記述される動作を行う。
【0091】
メモリコントローラ2は、オンセル数CC_k及びリード電圧VCGR_kに最も近い3つのリード電圧VCGRの使用によって得られる3つのオンセル数CCの計4つのオンセル数CCから算出される3つのオンセル数差CDの比較を使用して、3つのオンセル数差CDのいずれかが極小点であるかを判断する。
【0092】
図14に示されるように、メモリコントローラ2は、変数kを1増分する(ST201)。
【0093】
メモリコントローラ2は、リード電圧VCGR_kを使用したシフトリードを行って、オンセル数CC_kを取得する(ST202)。リード電圧VCGR_kは、リード電圧VCGR_k-1よりシフト電圧ΔVだけ高い。オンセル数CC_kの取得の詳細は、図10のST101に関して記述された通りである。シフトリードは、シングルステートリードを使用する。
【0094】
メモリコントローラ2は、オンセル数差CD_kを算出する(ST203)。オンセル数差CD_kは、オンセル数CC_k-オンセル数CC_(k-1)である。オンセル数差CD_kの算出の詳細は、図10のST102に関して記述された通りである。
【0095】
オンセル数CC_4及びリード電圧VCGR_4に最も近い3つリード電圧VCGRの使用によって得られる3つのオンセル数CCから算出される3つのオンセル数差CDは、オンセル数差CD_(k-2)、CD_(k-1)、及びCD_kである。このことに基づいて、メモリコントローラ2は、オンセル数差CD_(k-1)<オンセル数差CD_(k-2)且つオンセル数差CD_(k-1)<オンセル数差CD_kであるかを判断する(ST204)。
【0096】
オンセル数差CD_(k-1)<オンセル数差CD_(k-2)且つオンセル数差CD_(k-1)<オンセル数差CD_kである場合(ST204_Yes)、メモリコントローラ2は、リード電圧Vr_(k-1)が極小点であると推定する(ST205)。ST205の実行によって、図14のフローは終了する。
【0097】
一方、オンセル数差CD_(k-1)<オンセル数差CD_(k-2)且つオンセル数差CD_(k-1)<オンセル数差CD_kでない場合(ST204_No)、フローはST201に継続する。
【0098】
図15に示されるように、メモリコントローラ2は、変数kを4に設定する(ST211)。
【0099】
メモリコントローラ2は、リード電圧VCGR_4を使用したシフトリードを行って、オンセル数CC_4を取得する(ST211)。探索方向が負であるため、リード電圧VCGR_4は、これまでに使用されたリード電圧VCGR_1、VCGR_2、及びVCGR_3のうちの最小のVCGR、すなわちVCGR_1より低い。リード電圧VCGR_4は、リード電圧VCGR_1よりシフト電圧ΔVだけ低い。オンセル数CC_kの取得の詳細は、図10のST101に関して記述された通りである。シフトリードは、シングルステートリードを使用する。
【0100】
メモリコントローラ2は、オンセル数差CD_4を算出する(ST212)。オンセル数差CD_4は、オンセル数CC_4と、これまでに取得されたオンセル数CC_1、CC_2、及びCC_3のうちで最小のリード電圧VCGRに対応するオンセル数CC、すなわちオンセル数CC_1との差である。すなわち、オンセル数差CD_4は、オンセル数CC_1-オンセル数CC_4である。
【0101】
オンセル数CC_4及びリード電圧VCGR_4に最も近い3つのリード電圧VCGRの使用によって得られる3つのオンセル数CCから算出される3つのオンセル数差CDは、オンセル数差CD_2、CD_3、及びCD_4である。このことに基づいて、メモリコントローラ2は、オンセル数差CD_2<オンセル数差CD_3且つオンセル数差CD_2<オンセル数差CD_4であるかを判断する(ST213)。
【0102】
オンセル数差CD_2<オンセル数差CD_3且つオンセル数差CD_2<オンセル数差CD_4である場合(ST213_Yes)、メモリコントローラ2は、リード電圧Vr_2が極小点であると推定する(ST214)。ST214の実行によって、図14のフローは終了する。
【0103】
一方、オンセル数差CD_2<オンセル数差CD_3且つオンセル数差CD_2<オンセル数差CD_4でない場合(ST213_No)、メモリコントローラ2は、変数kを5に設定する(ST221)。
【0104】
メモリコントローラ2は、リード電圧VCGR_kを使用したシフトリードを行って、オンセル数CC_kを取得する(ST222)。リード電圧VCGR_kは、リード電圧VCGR_k-1よりシフト電圧ΔVだけ低い。オンセル数CC_kの取得の詳細は、図10のST101に関して記述された通りである。シフトリードは、シングルステートリードを使用する。
【0105】
メモリコントローラ2は、オンセル数差CD_kを算出する(ST223)。オンセル数差CD_kは、オンセル数CC_(k-1)-オンセル数CC_kである。
【0106】
メモリコントローラ2は、kが5であるかを判断する(ST224)。kが5である場合(ST224_Yes)、オンセル数CC_5及びリード電圧VCGR_5に最も近い3つのリード電圧VCGRの使用によって得られる3つのオンセル数CCから算出される3つのオンセル数差CDは、オンセル数差CD_2、CD_4、及びCD_5である。このことに基づいて、メモリコントローラ2は、オンセル数差CD_4<オンセル数差CD_2且つオンセル数差CD_4<オンセル数差CD_5であるかを判断する(ST225)。
【0107】
メモリコントローラ2は、オンセル数差CD_4<オンセル数差CD_2且つオンセル数差CD_4<オンセル数差CD_5である場合(ST225_Yes)、リード電圧Vr_4が極小点であると推定する(ST226)。ST226の実行によって、図14のフローは終了する。
【0108】
オンセル数差CD_4<オンセル数差CD_2且つオンセル数差CD_4<オンセル数差CD_5でない場合(ST225_No)、メモリコントローラ2は、kを1増分する(ST227)。ST227は、ST222に継続する。
【0109】
kが5でない場合(ST224_No)、オンセル数CC_k及びリード電圧VCGR_kに最も近い3つのリード電圧VCGRの使用によって得られる3つのオンセル数CCから算出される3つのオンセル数差CDは、オンセル数差CD_(k-2)、CD_(k-1)、及びCD_kである。このことに基づいて、メモリコントローラ2は、オンセル数差CD_(k-1)<オンセル数差CD_(k-2)且つオンセル数差CD_(k-1)<オンセル数差CD_kであるかを判断する(ST231)。
【0110】
メモリコントローラ2は、オンセル数差CD_(k-1)<オンセル数差CD_(k-2)且つオンセル数差CD_(k-1)<オンセル数差CD_kである場合(ST231_Yes)、リード電圧Vr_(k-1)が極小点であると推定する(ST232)。ST232の実行によって、図14のフローは終了する。
【0111】
オンセル数差CD_(k-1)<オンセル数差CD_(k-2)且つオンセル数差CD_(k-1)<オンセル数差CD_kでない場合(ST231_No)、メモリコントローラ2は、kを1増分する(ST233)。ST233は、ST222に継続する。
【0112】
1.2.3.2.2.第2例
第2例では、メモリコントローラ2は、ST1に先立って、ターゲット極小点を含むと推定される探索範囲を決定する。決定は、任意の方法で行われることが可能である。例えば、事前の統計処理及び(又は)シミュレーションにより行われることが可能である。
【0113】
ST2として、メモリコントローラ2は、決定された探索範囲に亘って、ST1で決定された探索方向に向かって、シフトリードを繰り返す。メモリコントローラ2は、シフトリードによって得られる全てのオンセル数差CD、すなわち、全てのリード電圧Vrのうち、最小のリード電圧Vrを極小点として推定する。極小点の探索は、探索方向が正である場合は、図14のフローが使用されることが可能であり、探索方向が負である場合は、図15のフローが使用されることが可能である。
【0114】
1.2.3.3.極小値探索の実例
図16は、第1実施形態のメモリシステム5での極小値探索の第1実例を示す。図16は、図10のサブフローのST104でYesと判断される第1ケースを示す。図16の例では、最上段に示されるように、リード電圧Vr_2が範囲VMの中にある。リード電圧Vr_2がリード電圧Vr_3より小さいため、中段に示されるように、探索方向は、閾値電圧の負の方向と決定される。
【0115】
負の方向に向かって、リード電圧Vrが順次取得され、この結果、リード電圧Vr_4及びVr_5が順に取得される。リード電圧Vr_4は、リード電圧Vr_2及びVr_5より低い。このため、リード電圧Vr_4が極小点と推定される。推定された極小点は、ターゲット極小点と同じく、“3”ステートと“4”ステートの間に位置する。すなわち、推定された極小点は、ターゲット極小点と同じく、“3”ステートと“4”ステートの区別のためのリード電圧として使用されることが可能な極小点である。
【0116】
図17は、第1実施形態のメモリシステム5での極小値探索の第2実例を示す。図16は、図10のサブフローのST104及びST108の両方でNoと判断される第2ケースを示す。図17の例では、最上段に示されるように、リード電圧Vr_2及びVr_3のいずれも範囲VMの中にない。このため、オンセル数CC_1、CC_2、及びCC_3のうち、期待値EC(=4CS)との差が最小となる1つが選択される。図17の例では、オンセル数CC_1が選択される。よって、探索方向は、電圧の負の方向に決定される。
【0117】
負の方向に向かって、リード電圧Vrが順次取得され、この結果、リード電圧Vr_4及びVr_5が順に取得される。リード電圧Vr_4はリード電圧Vr_2及びVr_5より低い。このため、図16と同じく、ターゲット極小点と同じ“3”ステートと“4”ステートの区別のためのリード電圧として使用されることが可能な極小点としてリード電圧Vr_4が推定される。
【0118】
1.3.利点(効果)
第1実施形態によれば、以下に記述されるように、誤った極小点の推定が抑制されたメモリシステムが提供されることが可能である。
【0119】
比較及び参照のために、メモリシステム100(図示せず)が記述される。メモリシステム100は、メモリシステム5と同じ構成要素及び構成要素の接続を有し、一方、メモリシステム5と異なる動作をする。メモリシステム100は、ターゲット極小点の探索のために、第1実施形態の図10のステップST101、ST102、及びST103を行う。次いで、メモリシステム100は、ステップST105を行う。このようにして決定される探索方向に向かう探索により、図18に示される結果が生じ得る。
【0120】
図18の上段は、第1実施形態の図17の最上段と同じであり、すなわち第1実施形態と同じ大きさのリード電圧Vr_2及びVr_3が既に取得済みである。リード電圧Vr_3がリード電圧Vr_2より低いため、探索方向は、電圧の正の方向に決定される。決定された探索方向にリード電圧Vrが順次取得される結果、リード電圧Vr_11及びVr_12が順に取得される。このようなリード電圧Vrの取得の結果、リード電圧Vr_12が極小点として決定される。しかしながら、リード電圧Vr_12は、ターゲット極小点が“3”ステートと“4”ステートの間に位置するのに対して、“4”ステートと“5”ステートの間に位置する。すなわち、決定されたリード電圧Vr_12は、求められるステートの区別のためのリード電圧ではない。リード電圧Vr_12の使用は、誤ったデータリードに繋がる。図18のような誤った決定は、最初の2つのリード電圧Vr_2及びVr_3が、ターゲット極小点から大きく離れていると生じ得る。特に、最初の2つのリード電圧Vr_2及びVr_3が閾値電圧ローブの極大点の近傍にあると生じやすい。
【0121】
第1実施形態によれば、最初の2つのリード電圧Vr_2及びVr_3の少なくとも一方が、範囲VMの中にある場合(第1ケース)、リード電圧Vr_2及びVr_3のうちの大きい方から小さい方に向かう向きが探索方向に決定される。リード電圧Vr_2及びVr_3のうちの少なくともいずれかが範囲VMの中にある限り、これは、リード電圧Vr_2及びVr_3が、探索対象の極小点が区別する2つのステートの間のリード電圧、ひいてはターゲット極小点に対応するリード電圧の近くに位置すると推定される。このため、リード電圧Vr_2及びVr_3の大きい方から小さい方に向かう探索方向の使用によって、ターゲット極小点が区別する2つのステートと異なるステートの区別のための極小点が決定されることが抑制され、ターゲット極小点が推定される可能性が高い。よって、短時間且つ高い精度で、ターゲット極小点が推定されることが可能である。ターゲットのステート区別のための極小点の使用によって、高い精度でデータがリードされることが可能である。
【0122】
第1実施形態によれば、最初の2つのリード電圧Vr_2及びVr_3のいずれも範囲VMの中にない場合、オンセル数CC_1、CC_2、又はCC_3のうち期待値ECとの差が最小となる1つが選択される。そして、オンセル数CC_2が選択されない限り(第2ケース)、期待値ECとの差が大きい方のオンセル数CCのオンセルを含んだデータのリードに使用されたリード電圧VCGRから、期待値ECとの差が小さい方のオンセル数CCのオンセルを含んだデータのリードに使用されたリード電圧VCGRに向かう向きが探索方向に決定される。このように決定された探索方向は、ターゲット極小点に向かう可能性が高い。よって、最初の2つのリード電圧Vr_2及びVr_3のいずれも範囲VMの中にない場合であっても、ターゲット極小点が区別する2つのステートと異なるステートの区別のための極小点が決定されることが抑制されることが可能である。よって、より高い精度でターゲット極小点が決定されることが可能であり、より高い精度でデータがリードされることが可能である。
【0123】
2.第2実施形態
第2実施形態は、ターゲット極小点の初期探索に基づく探索方向の決定(図9のステップST1)の詳細の点で、第1実施形態と異なる。
【0124】
第2実施形態のメモリシステム5bは、第1実施形態のメモリシステム5の構成と同じ構成を有する。ただし、第2実施形態のメモリコントローラ2bは、以下に記述される動作を実行できるように構成されている。具体的には、ROM22b中のプログラムは、CPU24によって実行されることによりメモリコントローラ2bに以下に記述させる動作させるように構成されている。
【0125】
図19は、第2実施形態のメモリシステムのメモリコントローラによる或る動作のフローを示す。より具体的には、図19は、第1実施形態の図9に示される初期探索及び探索方向決定(ST1)のサブフローを示す。メモリコントローラ2b、特にCPU24は、図19を参照して以下に記述される動作を行う。
【0126】
メモリコントローラ2bは、ST103の後、ST106を実行する。メモリコントローラ2bは、ST106の後、オンセル数CC_1、CC_2、及びCC_3のうちの期待値ECと最大の差を有する1つが閾値Nを超えるかを判断する(ST241)。
【0127】
ST241は、オンセル数CC_1、CC_2、及びCC_3に基づいて取得されるリード電圧Vr_2及びVr_3がターゲット極小点から大きく離れていることを検出するために行われる。このことに基づいて、例えば、ST241は、リード電圧Vr_2及びVr_3がターゲット極小点が区別する2つのステートと異なる2つのステートの間の極小点の近傍に位置することを検出するために行われる。その目的で、閾値Nは、例えば、CS(=m/2)とされることが可能である。
【0128】
期待値との最大の差を有するオンセル数CCが閾値Nを超えない場合(ST241_No)、フローはST104に継続する。ST104の判断がYesの場合、フローはST105に継続し、ST105の実行によって図19のフローは終了する。
【0129】
期待値ECと最大の差を有するオンセル数CCが閾値Nを超える場合(ST241_Yes)、及びST104の判断がNoの場合、第1実施形態と同じく、期待値ECとの差が最小となるオンセル数CCを使用した探索方向の決定が行われる。すなわち、期待値と最大の差を有するオンセル数CCが閾値Nを超える場合(ST241_Yes)、及びST104の判断がNoの場合、ST106が実行済みのため、ST107が行われる。ST107は、ST108に継続する。ST108での判断がNoである場合、ST109が行われ、ST109の実行によって、図19のフローは終了する。一方、ST108での判断がYesである場合、ST105が行われる。
【0130】
第2実施形態によれば、オンセル数CC_1、CC_2、及びCC_3のうちの期待値ECと最大の差を有する1つが閾値Nを超えるかが判断される。最大の差を有するオンセル数CCが閾値Nを超える場合、リード電圧Vr_2及びVr_3がターゲット極小点から大きく離れていると推定される。このことに基づいて、第1実施形態と同じステップの後続によって、リード電圧Vr_2又はVr_3が範囲VMの中にあるか否か、及び(又は)期待値ECとの差が最小となるオンセル数CCに基づいて探索方向が決定される。第2実施形態によれば、第1実施形態と同じステップによって第1実施形態と同じ利点を得られ、さらに、第1実施形態と同じステップに先立つ期待値ECと最大の差を有するオンセル数CCと閾値Nの比較によって、第1実施形態よりもさらに高精度でターゲット極小点が決定されることが可能である。
【0131】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0132】
5…メモリシステム、1…半導体メモリ、2…メモリコントローラ、21…ホストインターフェース、22…ROM、23…RAM、24…CPU、25…メモリインターフェース、26…誤り訂正回路、10…メモリセルアレイ、11…入出力回路、12…レジスタ、13…シーケンサ、14…電圧生成回路、15…ドライバ、16…ロウデコーダ、17…センスアンプ、18…データレジスタ、VCGR…リード電圧、CC…オンセル数、CD…オンセル数差、ΔV…シフト電圧、VM…範囲
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19