JP2019153366A - メモリシステム、読み出し方法、プログラム、およびメモリコントローラ - Google Patents

メモリシステム、読み出し方法、プログラム、およびメモリコントローラ Download PDF

Info

Publication number
JP2019153366A
JP2019153366A JP2018039775A JP2018039775A JP2019153366A JP 2019153366 A JP2019153366 A JP 2019153366A JP 2018039775 A JP2018039775 A JP 2018039775A JP 2018039775 A JP2018039775 A JP 2018039775A JP 2019153366 A JP2019153366 A JP 2019153366A
Authority
JP
Japan
Prior art keywords
read
word line
cells
voltage
adjacent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018039775A
Other languages
English (en)
Inventor
孝幸 伊東
Takayuki Ito
孝幸 伊東
知也 児玉
Tomoya Kodama
知也 児玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2018039775A priority Critical patent/JP2019153366A/ja
Priority to US16/119,978 priority patent/US11043275B2/en
Publication of JP2019153366A publication Critical patent/JP2019153366A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/66Types of semiconductor device ; Multistep manufacturing processes therefor
    • H01L29/68Types of semiconductor device ; Multistep manufacturing processes therefor controllable by only the electric current supplied, or only the electric potential applied, to an electrode which does not carry the current to be rectified, amplified or switched
    • H01L29/76Unipolar devices, e.g. field effect transistors
    • H01L29/772Field effect transistors
    • H01L29/78Field effect transistors with field effect produced by an insulated gate
    • H01L29/792Field effect transistors with field effect produced by an insulated gate with charge trapping gate insulator, e.g. MNOS-memory transistors
    • H01L29/7923Programmable transistors with more than two possible different levels of programmation
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/30EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】メモリセルからのデータの読み出し時のエラーを適切に抑制可能とする。【解決手段】メモリシステムは、不揮発性メモリと、メモリコントローラと、を備える。不揮発性メモリは、複数の第1セルを含む第1ワードラインと、第1ワードラインに隣接し、複数の第2セルを含む第2ワードラインと、を含む。メモリコントローラは、複数の第2セルそれぞれの閾値電圧を表す複数の隣接電圧に応じて、複数の第1セルに対して用いる読み出し電圧を決定する。メモリコントローラは、決定された複数の読み出し電圧を用いて、第1ワードラインからデータを読み出す。【選択図】図1

Description

本発明の実施形態は、メモリシステム、読み出し方法、プログラム、およびメモリコントローラに関する。
SSD(Solid State Drive)やメモリカードに使われるNANDフラッシュメモリの記憶密度の向上に伴い、その信頼性が問題になっている。例えば、微細化によってメモリセル間の距離が小さくなれば、メモリセルに閾値電圧を書き込む際に隣接するメモリセル間の干渉(CCI:Cell-to-Cell Interference)によってメモリセルの閾値電圧が影響を受ける。
チャージトラップ型のNANDフラッシュメモリ等では、隣接するメモリセル(隣接セル)との閾値電圧の差分に応じて、メモリセルに蓄積された電荷が隣接セルへと移動する現象(電荷の横抜けと呼ぶ)が知られている。電荷の横抜けについては、CCIと同様に、隣接セルの閾値電圧によって、閾値電圧の変化量(以下、隣接影響量と呼ぶ)が異なる。一方、電荷の横抜けは、CCIとは異なり、時間とともに隣接影響量が変化するという特徴をもつ。
メモリセルから読み出しを行う際、このメモリセルに隣接するメモリセルのデータに応じて異なる条件で読み出しを行うことで、CCIによる影響を低減する手法が知られている。
特許第3913704号公報
しかしながら、従来技術では、メモリセルからのデータの読み出し時のエラーを適切に抑制できない場合があった。例えば、上述のようにチャージトラップ型のNANDフラッシュメモリでは、電荷の横抜けの存在により、隣接影響量が時間とともに変化する。このため、CCIによる影響を低減する従来の手法を適用しても、エラーを精度よく低減することができない場合があった。
実施形態のメモリシステムは、不揮発性メモリと、メモリコントローラと、を備える。不揮発性メモリは、複数の第1セルを含む第1ワードラインと、第1ワードラインに隣接し、複数の第2セルを含む第2ワードラインと、を含む。メモリコントローラは、複数の第2セルそれぞれの閾値電圧を表す複数の隣接電圧に応じて、複数の第1セルに対して用いる読み出し電圧を決定する。メモリコントローラは、決定された複数の読み出し電圧を用いて、第1ワードラインからデータを読み出す。
メモリシステムの構成例を示すブロック図。 不揮発性メモリのメモリアレイの構造を説明する図。 不揮発性メモリでのデータの割り当て方法の一例を示す図。 不揮発性メモリのメモリセルの構造例を示す断面図。 電荷の横抜けの影響を説明するための図。 読み出し電圧決定処理のフローチャート。 読み出し処理のフローチャート。 変形例の読み出し電圧の決定方法を説明する図。
以下、添付図面を参照しながら、実施形態のメモリシステム、読み出し方法、プログラム、およびメモリコントローラについて詳細に説明する。なお、以下の説明において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
本実施形態にかかるメモリシステムは、読み出し処理を実行する前に、読み出し対象となるワードラインに隣接するワードラインに含まれるセルの閾値電圧(隣接電圧)に応じて、読み出し対象となるワードラインの各セルのデータを読み出すときに用いる電圧(読み出し電圧)を決定する。例えば、隣接するワードラインに含まれるセルの閾値電圧の大きさに応じて、複数の読み出し電圧が決定される。読み出し処理の実行時には、隣接するワードラインのセルの閾値電圧に対応する読み出し電圧を用いて、読み出し対象となるワードラインの各セルからデータが読み出される。このような構成により、データの読み出し時のエラーをより適切に抑制することが可能となる。
図1は、本実施形態に係るメモリシステム1の構成例を示すブロック図である。図1に示すメモリシステム1は、不揮発性メモリ2とコントローラ3とDRAM(Dynamic Random Access Memory)4を備え、ホストCPU100からの命令に従って動作する。不揮発性メモリ2は、例えばNANDフラッシュメモリである。
ホストCPU100からメモリシステム1への書き込み命令や読み出し命令は、コントローラ3に送られる。コントローラ3は、ホストCPU100からの命令に従って不揮発性メモリ2を制御し、不揮発性メモリ2にデータを書き込んだり、不揮発性メモリ2からデータを読み出したりする。なお、図1では不揮発性メモリ2とコントローラ3とが1対1に対応している例を示しているが、コントローラ3が複数の不揮発性メモリ2を制御する構成であってもよい。
コントローラ3は、不揮発性メモリコントローラ5とホストコントローラ6とを備える。コントローラ3またはコントローラ3内の不揮発性メモリコントローラ5が、本実施形態に係るメモリコントローラに相当する。
ホストコントローラ6は、ホストCPU100から発行される命令に従ってデータの送受信を行う。具体的には、ホストコントローラ6では、ホストCPU100が指し示すアドレス情報(一般にLBA:Logical Block Addressと呼ばれる)を不揮発性メモリ2の物理アドレス空間に変換するような処理が行われる。
一方、不揮発性メモリコントローラ5は、ホストコントローラ6から送られる信号に基づいて、不揮発性メモリ2を制御する。具体的には、不揮発性メモリコントローラ5は、不揮発性メモリ2に対し、コマンドおよびアドレスを送出して、データの書き込みや読み出しを行う。
不揮発性メモリコントローラ5は、書き込み部10と、読み出し部20と、分類部30と、決定部40と、生成部50とを備える。不揮発性メモリコントローラ5は、ECC(Error Correction Code)処理部60をさらに備えてもよい。
書き込み部10は、不揮発性メモリ2に対してコマンドやアドレス情報を送出したり、書き込むべきデータを送出したりすることにより、不揮発性メモリ2に対してデータを書き込む。ホストCPU100から書き込みデータとして送られてきたデータは、ECC処理部60にてエラー訂正符号が付加されてよい。なお、エラー訂正符号を付加した後にデータを乱数化するような処理が付加されてもよい。
不揮発性メモリ2に対するデータの書き込みは、アドレス情報により指定されたメモリセル群の個々のメモリセルの閾値電圧を、そのデータ(以下、“書き込みデータ”と呼ぶ)に対応した電圧レベルに設定することにより行われる。すなわち、書き込みデータは、メモリセル群の個々のメモリセルの閾値電圧に応じて記憶される。
読み出し部20は、不揮発性メモリ2に対してコマンドやアドレス情報を送出することにより、不揮発性メモリ2からデータを読み出す。不揮発性メモリ2から読み出したデータは、ECC処理部60にてエラー訂正が行われてもよい。
分類部30は、読み出し対象となるワードライン(対象ワードライン、第1ワードライン)に含まれる複数のセル(第1セル)を、第1ワードラインに隣接するワードライン(隣接ワードライン、第2ワードライン)に含まれる複数のセル(隣接セル、第2セル)の閾値電圧に応じて、複数のクラス(第1クラス)に分類する。
決定部40は、メモリセル群からのデータの読み出しに用いる電圧(読み出し電圧)を決定する。本実施形態では、決定部40は、分類されたクラス(第1クラス)に属するセルの閾値電圧の分布に基づいて、各クラスに対して用いる読み出し電圧を決定する。閾値電圧の分布は、例えば、各クラスに属するセルの閾値電圧ごとのセル数を示すヒストグラムである。決定部40は、ヒストグラムを用いる方法以外の方法で読み出し電圧を決定してもよい。例えば決定部40は、閾値電圧ごとのセル数から線形演算により読み出し電圧を決定してもよい。決定部40の動作の詳細については後述する。
なお、分類部30および決定部40により、読み出し電圧を決定する処理は、読み出し部20によりデータが読み出される処理(読み出し処理)の前に実行される。
読み出し部20は、このようにして決定された読み出し電圧を用いて、読み出し対象となるワードラインのメモリセル群からデータを読み出す。例えば読み出し部20は、分類された複数のクラスのうち、隣接するワードラインに含まれるセルの閾値電圧に対応するクラスに対して決定された読み出し電圧を用いて、読み出し対象となるワードラインからデータを読み出す。
生成部50は、読み出されたデータに基づき、読み出し結果としてホストCPU100などに出力する出力データを生成する。例えば生成部50は、複数のクラスに対して決定された複数の読み出し電圧それぞれを用いて読み出されたデータに対して、各クラスに対して定められる複数のマスクを適用し、複数のマスクの適用結果を統合した出力データを生成する。出力データの生成処理の詳細は後述する。
不揮発性メモリ2は、コントロール部7と、データバッファ8と、メモリアレイ9とを備える。コントロール部7は、コントローラ3から発行されるコマンドやアドレス情報を解釈し、データバッファ8やメモリアレイ9を制御する。書き込みデータはデータバッファ8で一時的に蓄えられた後に、メモリアレイ9に書き込まれる。読み出しの場合には、メモリアレイ9から読み出されたデータがデータバッファ8で一時的に保存され、コントローラ3に順次送られる。
DRAM4は、メモリシステム1による各種処理で用いられる各種データを記憶する記憶部である。例えばDRAM4は、決定された読み出し電圧を示す情報を記憶する。なお、メモリシステム1は、DRAM4の代わりに、SRAM(Static Random Access Memory)を備え、用いてもよい。または、DRAM4の代わりとして、不揮発性メモリ2の一部を用いてもよい。
図2は、不揮発性メモリ2のメモリアレイ9の構造を説明する図である。メモリアレイ9は、図2に示すように、複数のトランジスタ(各トランジスタが“メモリセル”と呼ばれる)を直列に並べたNANDストリングと呼ばれる回路が複数集まって構成される。1つのNANDストリングのことをビットライン(BL)と呼ぶ。複数のビットラインの同一位置にあるトランジスタのゲート電極は、ワードライン(WL)と呼ばれる線で互いに接続されている。図2ではBL1〜BL4の4つのビットラインと、WL1〜WL6の6つのワードラインのみを図示しているが、実際にはビットラインおよびワードラインはより多く存在し、多数のメモリセルがアレイ状に配置された構成となっている。
データは、メモリセル(トランジスタ)の電荷蓄積層に対し電荷を注入することで書き込まれる。電荷を蓄積すると、蓄積された電荷量に応じて、メモリセルの閾値電圧が変化する。データを読み出す場合、読み出し対象となるワードラインに電圧(読み出し電圧)を印加し、残りのワードラインに読み出しパス電圧(Vread)を印加する。メモリセルの閾値電圧が読み出し電圧よりも小さい場合、ビットライン全体が通電可能(ON)状態となり、そうでない場合は、ビットラインが通電不可能(OFF)状態となる。不揮発性メモリ2では、各ビットラインの通電の有無をセンスアンプにより取得することで、メモリセルからデータを読み出す。
不揮発性メモリ2では、閾値電圧が可変であるメモリセル(トランジスタ)それぞれに対し1ビット〜4ビット程度のデータが記録される。各セルに2以上のビットを記録する場合、各閾値レベルに対してビット数分のデータが割り当てられる。
図3は、不揮発性メモリ2でのデータの割り当て方法の一例を示す図である。
例えば、セルあたり2ビットを記録する場合、図3の例に示すように、4種類の閾値レベルに対して、それぞれ2ビットのシンボルが割り当てられる。読み出しを行う場合、必要に応じて複数の読み出し電圧で読み出しが行われ、データが読み出される。図3の例では、Lowerページを読み出す場合、読み出し電圧=VBとして1回の読み出しを行えばよい。一方、Upperページを読み出す場合は、読み出し電圧=VAおよびVCの2パターンにて読み出しが行われ、データが取得される。
図4は、不揮発性メモリ2のメモリセルの構造例を示す断面図である。近年の3次元型の不揮発性メモリでは、図4に示すようなチャージトラップ型のメモリセルが用いられる。チャージトラップ型のメモリセルは、基板51と、トンネル層52と、チャージトラップ層53と、絶縁層54と、制御ゲート55とがこの順に積層された構造となっている。この構造では、チャージトラップ層53に形成される欠陥に電荷がトラップされることによって、メモリセルの閾値電圧が変化する。書き込みのため電荷をトラップさせる場合、制御ゲート55と基板51との間に高い電圧パルスを与える。この電圧パルスの強さ、印加時間または回数等を変更することで、チャージトラップ層53にトラップされる電荷の量、すなわちメモリセルの閾値電圧を制御できる。
チャージトラップ型のメモリセルでは、チャージトラップ層53が隣接するメモリセルとつながっている。チャージトラップ層53は、欠陥を持った絶縁体であるため、書き込んだ電荷が即座に隣接するメモリセルに伝わることはない。しかし、熱または電界等の影響により、時間とともにゆっくりと、電荷が移動する現象(電荷の横抜け)が生じる。蓄積していた電荷が移動すると、メモリセルの閾値電圧が変化する。閾値電圧の変化が大きくなると、やがて閾値電圧が隣の閾値レベルに重なり(例えば、図3のCレベルのセルが、Bレベルの範囲に入るなど)、書き込まれたデータが変化する、ビット誤りの要因となる。
以下、決定部40による読み出し電圧の決定方法についてさらに説明する。一般に、隣接セルとの閾値電圧の差に応じて、電荷の横抜けの速度が異なる。データを書き込んでからの経過時間が同じ場合、閾値電圧の差が大きいほど、横抜けによる閾値電圧の変化幅は大きくなる。本実施形態では、電荷の横抜けによる閾値電圧の変化を考慮して決定部40において複数の読み出し電圧を決定し、不揮発性メモリ2からデータを読み出す。
上述のとおり、電荷の横抜けは、隣接セルとの閾値電圧の差分が大きいほど早く進行する。このことから、ある読み出しタイミングにおいて、ワードラインの各セルの閾値電圧のヒストグラムを、その隣接セルの閾値電圧(Vth)の大小(例えば、閾値電圧Vthが所定値以上か否か)のそれぞれについて描くと、図5のようになる。
図5のように、隣接セルの閾値電圧に応じて、各レベルを分離するための電圧(VA、VBおよびVC)は異なる。例えば、隣接セルの閾値電圧Vthが大きい場合のVCであるVChighと、閾値電圧Vthが小さい場合のVCであるVClowとの間には、横抜けの影響による差分501が生じる。
なお横抜けは時間とともに徐々に進行することから、上記電圧(絶対値または影響差)についても、時間、温度、および、デバイス特性等の要因により変化する。
決定部40は、例えば、隣接セルの閾値電圧の大小に応じて、それぞれトラッキング(閾値トラッキング)を実施することで、読み出し電圧を決定してよい。トラッキングは、不揮発性メモリ2からの読み出しデータに基づき、読み出しに用いる最適な電圧を推定する手法である。トラッキングは、どのような手法を用いてもよいが、例えば図3のようなヒストグラム(またはその一部)に基づき最適な電圧を推定する手法を用いることができる。決定部40は、例えば、ヒストグラムの極小値を与える電圧を、読み出し電圧として決定してよい。極小値自体を用いる代わりに極小値を補正した値を用いてもよい。
また、ヒストグラムの生成時にノイズを低減する目的でフィルタ処理を行ったり、トラッキングのための読み出し電圧の間隔に対して、補間処理等を行ったりした上で、上述の処理を行ってもよい。
ヒストグラムは、例えばセル群(例えば、あるワードライン上に含まれるセル群)から、トラッキングのための読み出し電圧を変化させて複数回、読み出しを行った結果に基づき、生成することができる。例えば、対象ワードラインに対して、0、0.1、0.2[V]、・・・のように読み出し電圧を徐々に大きく設定して読み出しを行い、各読み出し電圧において、出力が0(非通電)から1(通電)となったセルの数を数えることで、ヒストグラムを構築することができる。
なお、ヒストグラムをトラッキングに用いる場合、ヒストグラムの全体(閾値電圧=0〜Vreadの範囲)を構築せず、データを読み出すのに必要な電圧の周辺だけに相当するヒストグラムの一部を構築してもよい。図3の例の場合、Upperページを読む場合ではVAおよびVCの周辺、Lowerページを読む場合はVBの周辺のみについて読み出しを行い、ヒストグラムの一部を構築した上でトラッキングを実施してもよい。
次に、本実施形態にかかるメモリコントローラによる読み出し電圧決定処理の流れについて図6を用いて説明する。図6は、本実施形態における読み出し電圧決定処理の一例を示すフローチャートである。
まず読み出し部20は、対象ワードラインに隣接するワードラインからデータを読み出す(ステップS101)。この際に用いる読み出し電圧は、予め定められた値の電圧であってよい。例えば、電圧VBが用いられてよい。読み出し結果は、隣接ワードライン上の各セルの閾値電圧がVBよりも大きいか否かに応じて、0または1の値の配列として出力される。なお、隣接ワードラインは、予め定められた片側の隣接ワードラインであっても、両側の隣接ワードラインであってもよい。また、各隣接ワードラインからの読み出し回数は、1回でなく複数回としてもよい。ここでは、片側の隣接ワードラインから、1回の読み出しを行う場合について説明し、他の場合については後述する。
次に読み出し部20は、対象ワードラインから、トラッキングに用いるデータを読み出す(ステップS102)。その後、読み出されたデータに基づきトラッキングが実施され、読み出し電圧が決定される(ステップS103、ステップS104)。例えば、下記の手順により読み出し電圧が決定される。
まず、分類部30は、隣接セルの閾値電圧に応じて、対象ワードラインに含まれる複数のセルを複数のクラスのいずれかにそれぞれ分類する。決定部40は、図5に示されるような、隣接セルの閾値電圧の大小に応じたクラスそれぞれに対するヒストグラム(またはその一部)を構築する(ステップS103)。例えば決定部40は、複数のクラスそれぞれについて、クラスに分類されたセルの閾値電圧ごとの個数(セル数)を算出することにより、ヒストグラムを生成する。
各ヒストグラムは、例えば以下のように構築できる。まず分類部30は、対象ワードラインからの各読み出し結果(閾値電圧=0〜Vread、または、その一部)と、隣接ワードラインからの読み出し結果(または、隣接ワードラインからの読み出し結果のNOT)とでAND演算を行う。
隣接ワードラインからの読み出し結果そのものを用いてAND演算を行った場合、対象ワードラインの各セルのうち、隣接セルの閾値電圧が小さいセル群が抽出される。一方、隣接ワードラインからの読み出し結果のNOTを用いてAND演算を行った場合、隣接セルの閾値電圧の大きいセル群が抽出される。言い換えると、このようなAND演算により、対象ワードラインの各セルが、隣接セルの閾値電圧が小さい場合に対応するクラス、および、隣接セルの閾値電圧が大きい場合に対応するクラス、の2クラスのうちいずれかに分類される。
次に決定部40は、AND演算の結果のうち“1”のビット数を数える。このビット数がセル数に相当する。決定部40は、ある読み出し電圧に対する計数結果(例えば読み出し電圧=0のときの計数結果)と、次の読み出し電圧に対する計数結果(例えば読み出し電圧=0.1[V]のときの計数結果)との差分をとることで、ヒストグラムを構築する。
なお、上記の方法は一例であり、他の類似の方法によりヒストグラムを構築してもよい。例えば、対象ワードラインからの各読み出し結果に対して、次の読み出し演算とのXOR演算を実施し、この結果から“1”のビット数を数えるなどの方法を用いてもよい。
その後、決定部40は、構築した各ヒストグラムを用いて、各クラスに対して用いる読み出し電圧を決定する(ステップS104)。上記のように、決定部40は、例えば、ヒストグラムの極小値を与える電圧を読み出し電圧として決定する。
本実施形態では、隣接ワードラインの読み出し結果に応じて別々にトラッキングを実施する点が従来の技術と異なっている。各クラスでのトラッキング方法の詳細は任意に変更されてもよい。
決定部40により読み出し電圧が決定された後、読み出し部20は、決定された読み出し電圧を用いて読み出し処理を行う。以下に、本実施形態にかかるメモリコントローラによる読み出し処理の流れについて図7を用いて説明する。図7は、本実施形態における読み出し処理の一例を示すフローチャートである。
読み出し部20は、対象ワードラインに隣接するワードラインからデータを読み出す(ステップS201)。この際に用いる読み出し電圧は、予め定められた値の電圧であってよい。例えば、電圧VBが用いられてよい。次に読み出し部20は、対象ワードラインから、決定された読み出し電圧を用いてデータを読み出す(ステップS202)。
上記のように、決定部40は、隣接セルの閾値電圧の大小について、それぞれ読み出し電圧を決定する。このため、読み出し部20は、決定した読み出し電圧の値が同一である場合を除き、各読み出し電圧を用いて計2回の読み出し処理を行う。なお、直前のトラッキングで読み出したデータをDRAM4等に保存しておき、保存したデータを読み出し処理で流用してもよい。
その後、生成部50は、読み出し部20が読み出したデータを統合し、ホストCPU100へと出力するデータ(出力データ)を生成する(ステップS203)。本実施形態では、隣接セルの閾値電圧の大小に応じて読み出し電圧が異なる点を考慮して出力データが生成される。生成部50は、生成した出力データを、例えばホストコントローラ6を介してホストCPU100に出力する(ステップS204)。
以上のように、決定部40が最適な読み出し電圧を決定し(図6)、読み出し部20が、決定された読み出し電圧を用いて読み出し処理を実施する(図7)。
次に、生成部50による出力データの生成処理について説明する。以下の例では、生成部50は、ワードライン上の各セルについて、隣接セルの閾値電圧の大小に応じて、読み出し部20が読み出した2つのデータのいずれかを選択し、出力データとする。生成部50は、例えば以下の(1)式のビット演算により出力データOut(k)を生成してよい。
Out(k)=(R1(k)&N1(k))|(R2(k)&N2(k))
・・・(1)
kは、セルを識別する情報(セルインデックス)である。R1(k)は、隣接セルの閾値電圧が小さいときの対象ワードラインからの読み出し結果を示す。R2(k)は、隣接セルの閾値電圧が大きいときの対象ワードラインからの読み出し結果を示す。N1(k)は、閾値電圧が小さい隣接セルからの読み出し結果を示す。N2(k)は、N1(k)のNOT値を示す。N1(k)およびN2(k)は、それぞれ、閾値電圧が小さい隣接セル、および、閾値電圧が大きい隣接セルを示すマスクに相当する。言い換えると、N1(k)およびN2(k)は、それぞれ、隣接セルの閾値電圧が小さい場合に対応するクラスに対するマスク、および、隣接セルの閾値電圧が大きい場合に対応するクラスに対するマスクに相当する。
(1)式のビット演算は、ビット単位で演算してもよいし、複数ビット単位(例えば1バイトまたは数バイト単位)で演算してもよい。なお、不揮発性メモリ2では、読み出し電圧が大きいほどON状態となるセルの数が増加する。このため、ノイズによる影響を除外すれば、読み出し結果が“1”となるセルの個数は、読み出し電圧に対し単調増加する。また、一般に横抜けによる閾値変化の影響により、隣接セルの閾値電圧が小さい場合のほうか、隣接セルの閾値電圧が大きい場合よりも、当該セルにおける閾値電圧は小さくなりやすい。また上記のようにR1(k)およびN1(k)は、隣接セルの閾値が小さい場合の読み出し結果である。これらを考慮し、生成部50は、以下の(2)式によりOut(k)を生成してもよい。
Out(k)=R1(k)|(R2(k)&N2(k)) ・・・(2)
なお、図3の例でUpperページを読み出す場合は、2つの閾値レベル(VA、VC)について読み出しを行い、2つの読み出し結果をマージして出力する必要がある。このため、本実施形態では、2つの閾値レベルそれぞれについて上記の処理を行い、生成したOut(k)をコントローラ3側(例えば生成部50)でマージすることで、Upperページの読み出し結果を生成してよい。
または、不揮発性メモリ2においてページリードを用いてもよい。図3の例でUpperページに対しページリードを行うと、不揮発性メモリ2内部で2つの読み出し電圧(VA、VC)で読み出しが実施され、2つの読み出し結果がマージされた上で、コントローラ3へと出力される。
ページリードを用いる場合、上記の読み出しに加えて、読み出し対象アドレスから、2つの読み出し電圧(VA、VC)の中間に相当する電圧(例えばVB)により読み出しが実施される。この読み出しの結果、または、そのNOTと、ページリードの結果とのAND演算を行うと、コントローラ3側で、ページリードの結果(すなわちVA、VCの読み出し結果がマージされたデータ)から、VAによる部分と、VCによる部分とを分離することが可能になる。そして、この分離結果を用いてそれぞれトラッキングを実施することで、各読み出し電圧の決定が可能となる。
なお、上述の処理は、読み出しのたびに毎回実施される必要はなく、例えば通常の読み出し処理においてエラーが発生した場合などに行うこととしてよい。
以上に示した方法によって、電荷の横抜けに起因する閾値電圧の変化に対し、最適な読み出し電圧を決定して読み出しを行うことが可能となる。これにより、読み出しエラーを低減することが可能となる。
(変形例1)
なお、上記ではマルチレベルセル(MLC、2ビットセル)の場合について説明したが、トリプルレベルセル(TLC、3ビットセル)、および、クアッドレベルセル(QLC、4ビットセル)などの3ビット以上を記録するセルについても同様の処理を行うことが可能である。
TLCおよびQLCでは、図3のような閾値電圧に対するデータシンボルの割り当て方法がMLCとは異なる。このため、各ページのデータを読み出すために必要な閾値レベルの位置および数が異なる。この場合、読み出しに必要な各閾値レベルについてそれぞれ上述の処理を行って、読み出しを行ってよい。MLCの場合と同様に、ページリードを活用して処理を行ってもよい。なお、ページリード時の読み出し回数が3以上となる場合、読み出し結果から各閾値レベルの部分を分離するために、2以上のシングルリードの結果からマスクを生成して、AND演算を行う必要がある。
(変形例2)
上述のとおり、片側1方向に隣接する隣接ワードラインを用いる代わりに、両側の隣接ワードラインを用いてもよい。一般に不揮発性メモリ2は、図2のようにワードラインが並んでいる。このため、端部のワードラインを除く各ワードラインは、2つの隣接ワードラインを有する。電荷の横抜けは、隣接の両方向に対し発生することから、両方向の隣接の影響を考慮することで、読み出しエラーをさらに削減することが可能となる。
この場合、まず読み出し部20は、対象ワードラインに隣接するワードラインについて、データの読み出しを行う。読み出しは、隣接する両側の各ワードラインについて行う。この際に用いる電圧は、予め定められた値の電圧であってよい。例えば、電圧VBが用いられてよい。次に読み出し部20は、対象ワードラインから、トラッキングに用いるデータの読み出しを行う。
次に決定部40は、読み出し電圧を決定する。まず分類部30は、各隣接ワードラインのセルについての閾値電圧の大小から、対象ワードラインの各セルをクラス“小・小”、“小・大”、“大・小”、“大・大”の4クラスに分類する。例えばクラス“小・小”は、2つの隣接ワードラインのセルの閾値電圧が共に小さい場合のクラスに相当する。
決定部40は、分類されたクラスそれぞれについてトラッキングを実施する。例えば決定部40は、隣接ワードラインの各読み出し結果、および、隣接ワードラインの各読み出し結果のいずれかまたは両方にNOTを適用した結果について、AND演算を行うことで、マスクを生成する。例えば、以下の(3)式に示すようにマスクが生成される。N1_1およびN1_2は、それぞれ、2つの隣接ワードラインのうち一方および他方に含まれる、閾値電圧が小さい隣接セルからの読み出し結果を示す。
Mask(小・小)=N1_1&N1_2、
Mask(小・大)=N1_1&NOT(N1_2)、
Mask(大・小)=NOT(N1_1)&N1_2、
Mask(大・大)=NOT(N1_1)&NOT(N1_2) ・・・(3)
決定部40は、このマスクを用いて各クラスに対応するセルを抽出し、それぞれについてトラッキングを実施することで、読み出し電圧を決定する。その後、読み出し部20は、決定部40により決定された各読み出し電圧を用いて読み出しを実施する。読み出し結果は、例えば以下の(4)式により統合される。
Out(k)=
Mask(小・小)&Read(小・小)
|Mask(小・大)&Read(小・大)
|Mask(大・小)&Read(大・小)
|Mask(大・大)&Read(大・大) ・・・(4)
Read(クラス)は、対象ワードラインの当該クラスに対応するセルからの読み出し結果を示す。例えばRead(小・小)は、両側の隣接セルの閾値電圧が小さいときの対象ワードラインからの読み出し結果を示す。
このOut(k)は、ある閾値レベルについての読み出し結果である。生成部50は、1または複数の閾値レベルについての読み出し結果を結合することで、ページ読み出し結果を生成して出力する。この処理の代わりにページリードを用いてもよい。
なお、上記の例では各隣接ワードライン上のセルの閾値電圧の大小に応じて4クラスにセルが分類される。一方、ワードライン間の間隔が同一で、隣接セル間の閾値電圧の差が同一であれば、隣接する各方向に対する横抜けの影響はほぼ同一になる。このことから、上記のように4クラスとする代わりに、クラス“小・大”とクラス“大・小”とをマージし、3クラスとして上記の処理を行ってもよい。例えば、以下の(5)式によりマージしたマスクMask(中)を、マージしたクラスのマスクとしてもよい。
Mask(中)=Mask(小・大)|Mask(大・小) ・・・(5)
このようにクラス数を削減することで、処理量を削減することが可能になる。
(変形例3)
上記までの例では、1以上の隣接ワードラインそれぞれについて1回の読み出しを行っていたが、1以上の隣接ワードラインの少なくとも一方について複数回の読み出しを実施し、クラス分離に用いてもよい。例えば、まず読み出し部20は、各隣接ワードラインについて2回以上の読み出しを実施する。読み出しに用いる電圧は、予め定められた値の電圧であってよい。例えばn回の読み出しを実施する場合、読み出しに用いる電圧は、Vread×k/(n+1)(k=1、・・・、n)を用いてもよい。
n回の読み出し結果の組み合わせにより、隣接ワードラインの閾値電圧の大小に応じたマスクが生成できる。例えば、隣接ワードラインについて2回の読み出しを実施する場合、各隣接ワードラインに対して、“小”、“中”、“大”の3クラスのマスクが生成可能である。マスクは、例えば、以下の(6)式により生成される。
Mask(小)=N1(小)、
Mask(中)=N1(大)&NOT(N1(小))、
Mask(大)=NOT(N1(大)) ・・・(6)
N1(小)は、1回目の読み出し電圧より閾値電圧が小さい隣接セルからの読み出し結果を示す。N1(大)&NOT(N1(小))は、1回目の読み出し電圧より閾値電圧が大きく、2回目の読み出し電圧より閾値電圧が小さい隣接セルからの読み出し結果を示す。NOT(N1(大))は、2回目の読み出し電圧より閾値電圧が大きい隣接セルからの読み出し結果を示す。
両側の隣接ワードラインから読み出しを行う場合、各ワードラインのクラスの組み合わせそれぞれに対してAND演算を行うことで、組み合わせそれぞれに対するマスクを生成することができる。両側の隣接ワードラインについて各2回の読み出しを行う場合、3×3=9パターンのマスクが生成される。例えば両側の隣接ワードラインのマスクが共に“小”の場合のクラス“小・小”に対しては、以下の(7)式によりマスクが生成される。Mask(小)_1およびMask(小)_2は、それぞれ、2つの隣接ワードラインのうち一方および他方に対して生成されるマスクを表す。他の8クラスについても同様にしてマスクが生成される。
Mask(小・小)=Mask(小)_1&Mask(小)_2 ・・・(7)
なお、両側の隣接ワードラインについて各1回読み出す場合と同様、横抜けの影響がほぼ同一になると考えられる条件について、クラスをマージすることで総クラス数を削減してもよい。例えば、両側の隣接ワードラインの閾値電圧の大小が反転した関係となるクラス同士(例えばクラス“大・中”とクラス“中・大”等)を1つのクラスにマージしてもよい。
その後、読み出し部20は、トラッキングに用いるデータを読み出す。決定部40は、各マスクに対応するセル群についてそれぞれトラッキングを実施することで、読み出し電圧を決定する。そして、読み出し部20は、決定された各読み出し電圧で読み出しを実施する。生成部50は、読み出された結果を結合して出力する。
(変形例4)
特にクラス数が多くなった場合に、1クラスあたりの対応するセル数が少なくなることから、トラッキングの精度が低下する場合がある。例えば隣接セルの閾値電圧が“中”であるクラスに対する読み出し電圧が、隣接セルの閾値電圧が“大”または“小”であるクラスに対して不自然に大きく算出される場合などが生じうる。このような場合に、トラッキングされた読み出し電圧に対し、クラス間でフィルタを適用することで、精度低下による影響を抑えてもよい。上述のとおり、横抜けは隣接セルの閾値電圧に依存することから、多くの場合、横抜けの影響量は隣接セルの閾値電圧に対して単調である。クラス間でフィルタ(平滑化等)処理を行うことで、トラッキングの精度の低下を抑制可能となる。
(変形例5)
上記のように、両側の隣接ワードラインそれぞれで複数回の読み出しを実施する場合、クラス数が大きくなるため、不揮発性メモリ2からの読み出し回数が増加し、処理に要する時間が増加する問題がある。これに対し、決定部40が決定する読み出し電圧の個数を制限することで、読み出しの回数を削減してもよい。すなわち決定部40は、複数のクラスの少なくとも一部に対して、同一の読み出し電圧を設定することにより、予め定められた個数以下の読み出し電圧を決定してもよい。
例えば、各クラスにおけるトラッキング結果(電圧)が類似する複数のクラスについて、各クラスの読み出し電圧をマージする(例えば、2クラスの平均、または、2クラスの重み付き平均)、および、各クラスのヒストグラムをマージしたヒストグラムからトラッキングにより読み出し電圧を決定する、などの処理を行ってもよい。トラッキング結果が類似するとは、例えば、電圧の値の差が閾値以内であることを示す。
これ以外の方法により、読み出し電圧を予め定められた個数以下のクラスタに分類してもよい。また、決定された読み出し電圧を量子化することで、読み出し電圧の個数を削減してもよい。
このような削減処理は、読み出し電圧の数が予め定められた値(個数)以下となるまで実施されてもよい。このような処理により、読み出し部20における読み出し回数を削減し、処理時間を削減することが可能となる。
(変形例6)
上述のとおり、不揮発性メモリ2では、CCIによる閾値電圧への影響が存在する。CCIは、隣接ワードライン(典型的には、次に書き込みが実施されるワードライン)における書き込みデータにより、対象ワードラインが影響される現象である。CCIは、主に書き込み時の電圧印加により発生する。このため、不揮発性メモリ2へのデータの書き込み方法によって、CCIの影響は異なる。
不揮発性メモリ2への書き込み方法としては、例えば以下のような方法がある。
(1)ワードラインごとに順に書き込む
(2)多段階(例えばページ単位)で逐次書き込む
(1)の方法では、例えばWL=0に一通りのデータ(MLCの場合、LowerページおよびUpperページのデータ)を書き込んだのちに、WL=1に一通りのデータが書き込まれる。この場合、CCIの影響量は隣接(次)ワードラインの閾値電圧の大小により決まることから、横抜けによる影響量と同様に扱うことが可能となる。
すなわち、両側の隣接ワードラインの閾値電圧に基づきクラスを設定していれば、前ワードラインについては横抜けによる影響が、次ワードライン分については横抜けおよびCCIによる影響が、それぞれ加わることになる。このため、トラッキングによりこれら合計の影響分を考慮した読み出し電圧を決定することができる。
(1)の方法では、少なくとも次ワードラインについて、読み出し回数を増やしてよい。例えば次ワードラインについて読み出し回数を多く(例えば2回またはそれ以上)に設定すれば、CCIの影響と横抜けの影響を考慮した複数の読み出し電圧の決定が可能となる。なお、前ワードラインについては、CCIの影響はないかまたは僅かである。このため、前ワードラインの読み出し回数を次ワードラインよりも少なく設定してもよい。
一方、(2)の方法では、例えばMLCの場合、次ワードラインにLowerページ分のデータを書き込んだ後、対象ワードラインのUpperページの書き込みが行われる。この場合、CCIはUpperページ分の書き込みについてのみ発生するため、CCIの影響量は小さくなる。また、CCIの影響量は、Upperページの書き込み分に依存し、閾値電圧の大小に対し単調ではなくなる。例えば図3の例では、EレベルとBレベルはCCIの影響が小さく、AレベルとCレベルはCCIの影響が大きい、等のようになる。このような場合、次ワードラインの閾値電圧の大小に応じてクラス分けを行う代わりに、隣接ワードラインの各レベル(Eレベル、Aレベル、Bレベル、Cレベル)に応じてクラスに分類し、読み出し電圧の設定を行ってよい。その他の場合(TLCやQLCの場合等)についても、書き込みの方法に応じて、CCIの影響を補正可能なようにクラス分けを行い、読み出し電圧の設定を行ってよい。
上記以外のCCIによる影響を低減する読み出し手法と併用して、本実施形態の処理を行うこととしてもよい。例えば、特許文献1に記載された方法のように、不揮発性メモリ2内部の処理により、CCIの影響を補正して読み出しを行う方法を適用してもよい。この方法により読み出しを行うことで、読み出しデータにおけるCCIの影響が低減される。
(変形例7)
上述のとおり、電荷の横抜けは時間とともに徐々に進行する。このことから、ある読み出しタイミングにおいて決定部40が決定した読み出し電圧は、しばらくの間は流用することが可能となる。コントローラ3は、決定部40が決定した読み出し電圧を記憶部(例えばDRAM4等)に保持しておき、次の読み出し時にはこの値を用いて読み出しを行ってよい。この場合、隣接ワードラインの閾値電圧の大小それぞれについてトラッキングを実施する必要がなくなることから、読み出しに要する時間を低減することが可能となる。なお、保存した読み出し電圧は、所定時刻の経過、および、流用により読み出しエラーが発生した場合などの所定の条件に応じて破棄し、再度(複数回の)トラッキングを実施して決定してよい。また、例えば読み出し電圧を保持する記憶領域のサイズを制限するため、読み出し電圧を示す情報を古い順に逐次破棄してもよい。
(変形例8)
不揮発性メモリ2の各セルに2ビット以上のデータを記憶させる場合、書き込んだデータを読み出すためには複数回の読み出しを行う必要がある。例えば図3のようなMLCの場合、VA、VBおよびVCの3の読み出し位置において読み出しを行うことで、2ビットのデータを読み出すことができる。ここで、決定部40は、これら複数の読み出し位置のうち一部における読み出し電圧(第1電圧)を、他の読み出し位置において設定した読み出し電圧(第2電圧)に基づく内挿または外挿により決定してもよい。内挿または外挿は、例えば線形(一次)内挿または線形(一次)外挿であってもよい。また、例えば一次式または多項式による回帰により、第1電圧と第2電圧との関係を予め求め、この関係に基づいて、第2電圧から第1電圧を決定してもよい。
例えば決定部40は、MLCの場合に、AレベルとCレベルにおける各読み出し電圧の決定結果に基づき、Bレベルの各読み出し電圧を内挿して決定してもよい。内挿に用いる重みは、予め定められた電圧の関係(例えばVA、VB、VC)に基づき決定されてよい。また、TLCおよびQLCの場合も同様に、一部の読み出し位置に対する読み出し電圧の決定結果から、他の読み出し位置の読み出し電圧を内挿または外挿により決定してよい。
(変形例9)
トラッキングに用いるデータはワードライン上の全セルを用いる必要はなく、ワードライン上の一部のセルのみを用いてもよい。例えば読み出し部20は、トラッキングに用いるデータとして、ワードライン上の一部のセルからデータを読み出す。読み出しの対象とする一部のセルは、どのような方法で決定してもよい。例えばワードラインの先頭から4kiBの範囲のセルとする方法、および、サンプリングにより選択する方法などを適用できる。
決定部40は、一部のセルから読み出されたデータを用いてトラッキングを実施する。不揮発性メモリ2ではワードライン上の各セルは同一のタイミングで書き込みが行われているため、横抜けの影響量はほぼ等しい。ワードライン上の一部のデータから読み出し電圧を決定することで、データの読み出しにかかる時間、および、トラッキングにかかる時間(各クラスのヒストグラム生成等)を削減することが可能となる。
(変形例10)
これまでは各処理をコントローラ3が実施する例について説明した。コントローラ3で実施する処理のうち少なくとも一部の処理は、不揮発性メモリ2上で実施してもよい。例えば、読み出し電圧を決定した後の読み出し処理の全部または一部を不揮発性メモリ2上が行ってよい。例えば、不揮発性メモリ2上に実装したビット演算回路が、データバッファ8上の読み出しデータから、各種マスクの生成、トラッキング、および、読み出しデータの合成処理等のうち一部または全部を実施してもよい。
例えばビット演算回路は、コントローラ3から入力された複数の読み出し電圧それぞれによりデータを読み出し、データバッファ8に保存する。ビット演算回路は、保存したデータを用いてビット演算を行い、データで合成してコントローラ3に出力する。また、例えばビット演算回路が、複数のクラスそれぞれの読み出し処理を実施し、コントローラ3が複数の読み出し結果を統合する処理を実施するように構成してもよい。
読み出しデータに対する処理をコントローラ3において行う場合、データを不揮発性メモリ2からコントローラ3へと伝送する必要があり、伝送に係る遅延が大きくなる。不揮発性メモリ2の内部で一部または全部の処理を実施することで、これら遅延の影響を低減できる。他方、不揮発性メモリ2内部では処理回路およびメモリサイズの制約がある場合も多く、この場合コントローラ3側で処理を行うことで、より複雑な処理も実施可能となる。
またコントローラ3で実施する処理のうち少なくとも一部を、メモリシステム1の外部の装置(例えば、ホストCPU100、および、クラウド環境上に構築されたサーバ装置など)で実施してもよい。このように、コントローラ3が備える機能は、コントローラ3、不揮発性メモリ2、および、ホストCPU100などの少なくとも一部を含むメモリシステムが備えるように構成することができる。
(変形例11)
決定部40は、隣接セルの閾値電圧と、各クラスに属するセルの読み出し電圧との関係を求め、求めた関係を用いて読み出し電圧を決定してもよい。例えば決定部40は、読み出し電圧を直接決定する代わりに、隣接セルの閾値電圧と最適な読み出し電圧との関係を示す関数を求め、この関数に基づき、読み出し電圧を決定してよい。
図8は、片側の隣接ワードラインを考慮する例である。図8に示すように、本変形例では、隣接セルの閾値電圧の大小に応じた2以上のヒストグラムから、隣接セルの閾値電圧と、読み出し電圧との関係を示す関数を求める。図8の例の場合、例えば、隣接セルの閾値電圧が大きいクラスおよび小さいクラスの2クラスでヒストグラムを構築し、それぞれについてトラッキングを実施することで読み出し電圧を算出する。
そして決定部40は、算出した各読み出し電圧と、各クラスの代表閾値(例えば、各クラスのセルの平均閾値、または各クラスの区間の中心閾値等)とで与えられる点を結んだ直線により、関数を決定する。または、より多くのクラス(例えば隣接セルの大・中・小の3クラス)でトラッキングを実施し、得られた各点から回帰分析(例えば線形回帰等)により関数を決定してもよい。
なお、図8のような片側の隣接ワードラインを考慮する例の他に、両側の隣接ワードラインを考慮し、関数を求めてもよい。両側の隣接ワードラインを考慮する場合も、まず上記実施形態と同様に、各クラスについてトラッキングを実施する。その後、得られた読み出し電圧と、隣接セルの閾値電圧とで与えられる点を通過する関数を求める。または、決定部40は回帰分析により関数を求めてもよい。両側の隣接ワードラインの横抜けの影響量を別々に評価する場合、隣接セルの閾値電圧の大小は、2次元(小・小、大・小等)になるため、得られる関数は面状(平面等)となる。または、両側の隣接ワードラインの横抜けの影響量がほぼ同一と見なせる場合は、隣接セルの閾値電圧として、各閾値電圧の合計値を用いてもよい。この場合、得られる関数は線(直線)となる。
その後、決定部40は、得られた関数を用いて読み出し電圧を決定する。本変形例では、隣接セルの閾値電圧と読み出し電圧との関係が関数として求められていることから、任意の隣接セルの閾値電圧に対して、最適な読み出し電圧を決定することが可能である。これを利用して、関数の決定に用いるクラス(第1クラス)の個数より、読み出しに用いるクラス(読み出しクラス、第2クラス)の個数を多く設定し、関数から各読み出しクラスの読み出し電圧を決定してよい。読み出し部20は、決定された読み出し電圧に基づき、各読み出しクラスのセルのデータを読み出す。
本変形例によれば、少ないクラス数でのトラッキング結果から関数を求め、より多い読み出しクラスの読み出し電圧を決定することで、読み出し電圧の決定にかかる処理量を低減することが可能となる。読み出しクラスの個数が多くなることに起因して、決定する読み出し電圧の個数が大きくならないように、例えば上記変形例5を適用して個数を制限してもよい。
なお上記の例では、関数として直線または平面を仮定しているが、関数の形状はこれによらず、例えば2次関数(または3次以上の多次関数)、指数関数または対数関数等による曲線または曲面で近似してもよい。
本変形例において関数を求める際、トラッキングを実施する代わりに、複数の読み出し結果(例えばセルカウント数)から直接、関数のパラメタ(係数など)を求めてもよい。この場合、複数の読み出し結果から、係数等を与える関数(第2関数、例えば、1次または多次の関数)を予め用意しておき、用いてよい。第2関数は、読み出し結果と、関数のパラメタとの関係を予め学習(回帰分析等)し、用意してよい。
また、上述のとおり、CCIによる影響は、不揮発性メモリ2への書き込みの方法により異なる。本変形例においても、ワードラインごとに順に書き込みが実施される場合、CCIは、次ワードラインに対する横抜けと同様に扱うことが可能である。すなわち、関数を求める際に前ワードラインと次ワードラインを別々に評価(すなわち、関数を面として評価)することで、CCIについても考慮した関数を求めることができる。
一方、ページ単位で書き込みが行われる場合、CCIの影響が隣接セルの閾値電圧の大小に対し単調ではなくなる場合がある。このため、図8のような直線(または曲線、平面等)では、閾値電圧と読み出し電圧との関係を精度よく近似できない場合がある。このような場合、書き込み方法に応じた干渉の“形状”を考慮し、関数を用意してよい。例えば、図3のようなMLCに対してページ単位の逐次書き込みが行われる場合、CCIは隣接セルのレベルがEレベルまたはBレベルのときに小さく、AレベルまたはCレベルのときに大きくなる。このことから、決定部40は、例えば以下の(8)式のような関数を用いてよい。
F(隣接セルの閾値電圧Vth=x)=ax+b if x<VA||(VB<x<VC)
ax+b+c otherwise ・・・(8)
ただしa、b、cは係数であり、各クラスでのトラッキング結果に基づき、回帰分析等で算出される。この他、上記のように、本変形例においても、CCIの影響を抑制する読み出し方法(特許文献1等)を用いた上で、処理を行ってもよい。
(変形例12)
変形例11において、隣接セルの閾値電圧と最適な読み出し電圧との関係を示す関数を求める代わりに、直接、読み出しに用いるクラス(読み出しクラス、第2クラス)における読み出し電圧を決定してもよい。決定部40は、第1クラスの各読み出し結果(セルのカウント数)に基づきトラッキングを行う代わりに、第2クラスのそれぞれに対応する各関数にこれを入力し、読み出し電圧を決定してよい。関数は、第1クラスの各読み出し結果(カウント数)と第2クラスの各読み出し電圧との対応を示すものであり、例えば1次関数や、2次以上の多次関数であってよい。関数は、読み出し結果と、最適な読み出し電圧との関係を予め学習(回帰分析)し、用意してよい。
(ハードウェア構成)
上述の不揮発性メモリコントローラ5(コントローラ3)に含まれる各部(書き込み部10、読み出し部20、分類部30、決定部40、生成部50、およびECC処理部60)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。また、上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。また、上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、上記各部のうち1つを実現してもよいし、上記各部のうち2以上を実現してもよい。
以上のように、本実施形態によれば、隣接セルの閾値電圧の影響によりビットごとにエラーレートのばらつきがあるような不揮発性メモリに対しても、良好なエラー抑制を実現することができる。
本実施形態にかかるメモリコントローラで実行されるプログラムは、ROM等に予め組み込まれて提供される。
本実施形態にかかるメモリコントローラで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、本実施形態にかかるメモリコントローラで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかるメモリコントローラで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態にかかるメモリコントローラで実行されるプログラムは、コンピュータを上述したメモリコントローラの各部として機能させうる。このコンピュータは、CPUがコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム
2 不揮発性メモリ
3 コントローラ
4 DRAM
5 不揮発性メモリコントローラ
6 ホストコントローラ
10 書き込み部
20 読み出し部
30 分類部
40 決定部
50 生成部
60 ECC処理部

Claims (13)

  1. 複数の第1セルを含む第1ワードラインと、前記第1ワードラインに隣接し、複数の第2セルを含む第2ワードラインと、を含む不揮発性メモリと、
    複数の前記第2セルそれぞれの閾値電圧を表す複数の隣接電圧に応じて、複数の前記第1セルに対して用いる読み出し電圧を決定し、
    決定された複数の前記読み出し電圧を用いて、前記第1ワードラインからデータを読み出す、
    メモリコントローラと、
    を備えるメモリシステム。
  2. 前記メモリコントローラは、
    複数の前記第1セルを、複数の前記隣接電圧に応じて複数の第1クラスに分類し、
    前記第1クラスに属するセルの閾値電圧の分布に基づいて前記読み出し電圧を決定する、
    請求項1に記載のメモリシステム。
  3. 前記メモリコントローラは、前記第1クラスに属するセルの閾値電圧ごとのセル数を示すヒストグラムに基づいて前記読み出し電圧を決定する、
    請求項2に記載のメモリシステム。
  4. 前記メモリコントローラは、複数の前記隣接電圧と、対応する前記第1クラスに属するセルの読み出し電圧との関係を求め、前記関係を用いて前記読み出し電圧を決定する、
    請求項2に記載のメモリシステム。
  5. 前記メモリコントローラは、
    さらに、複数の前記隣接電圧に応じて、複数の前記第1セルを前記第1クラスよりも多い複数の第2クラスに分類し、
    前記関係を用いて前記第2クラスに対して用いる読み出し電圧を決定する、
    請求項4に記載のメモリシステム。
  6. 前記メモリコントローラは、複数の前記第1クラスの少なくとも一部に対して同一の読み出し電圧を設定することにより、予め定められた個数以下の読み出し電圧を決定する、
    請求項2に記載のメモリシステム。
  7. 前記メモリコントローラは、
    複数の前記読み出し電圧それぞれを用いて前記第1ワードラインから読み出されたデータに対して、複数の前記第1クラスに応じて定められる複数のマスクを適用し、複数のマスクの適用結果を統合した出力データを生成する、
    請求項2に記載のメモリシステム。
  8. 前記第1セルは、前記第1ワードラインに含まれるセルのうち少なくとも一部である、
    請求項1に記載のメモリシステム。
  9. 決定された前記読み出し電圧を示す情報を記憶する記憶部をさらに備え、
    前記メモリコントローラは、前記記憶部に記憶された前記読み出し電圧を用いて、前記第1ワードラインからデータを読み出す、
    請求項1に記載のメモリシステム。
  10. 前記メモリコントローラは、データのビット数に応じた複数の読み出し位置に対応する複数の読み出し電圧に含まれる第1電圧を、複数の前記読み出し電圧に含まれる第2電圧に基づく内挿または外挿により決定する、
    請求項1に記載のメモリシステム。
  11. 複数の第1セルを含む第1ワードラインに隣接する第2ワードラインに含まれる複数の第2セルそれぞれの閾値電圧を表す複数の隣接電圧に応じて、複数の前記第1セルに対して用いる読み出し電圧を決定する決定ステップと、
    決定された複数の前記読み出し電圧を用いて、前記第1ワードラインからデータを読み出す読み出しステップと、
    を含む読み出し方法。
  12. コンピュータを、
    複数の第1セルを含む第1ワードラインに隣接する第2ワードラインに含まれる複数の第2セルそれぞれの閾値電圧を表す複数の隣接電圧に応じて、複数の前記第1セルに対して用いる読み出し電圧を決定する決定ステップと、
    決定された複数の前記読み出し電圧を用いて、前記第1ワードラインからデータを読み出す読み出しステップ、
    を実行させるためのプログラム。
  13. 複数の第1セルを含む第1ワードラインに隣接する第2ワードラインに含まれる複数の第2セルそれぞれの閾値電圧を表す複数の隣接電圧に応じて、複数の前記第1セルに対して用いる読み出し電圧を決定し、
    決定された複数の前記読み出し電圧を用いて、前記第1ワードラインからデータを読み出す、
    メモリコントローラ。
JP2018039775A 2018-03-06 2018-03-06 メモリシステム、読み出し方法、プログラム、およびメモリコントローラ Pending JP2019153366A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018039775A JP2019153366A (ja) 2018-03-06 2018-03-06 メモリシステム、読み出し方法、プログラム、およびメモリコントローラ
US16/119,978 US11043275B2 (en) 2018-03-06 2018-08-31 Memory system, read method, program, and memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018039775A JP2019153366A (ja) 2018-03-06 2018-03-06 メモリシステム、読み出し方法、プログラム、およびメモリコントローラ

Publications (1)

Publication Number Publication Date
JP2019153366A true JP2019153366A (ja) 2019-09-12

Family

ID=67842748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018039775A Pending JP2019153366A (ja) 2018-03-06 2018-03-06 メモリシステム、読み出し方法、プログラム、およびメモリコントローラ

Country Status (2)

Country Link
US (1) US11043275B2 (ja)
JP (1) JP2019153366A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600489B2 (en) 2018-03-07 2020-03-24 Toshiba Memory Corporation Memory system, reading method, program, and memory controller

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10658066B2 (en) 2018-09-05 2020-05-19 Micron Technology, Inc. First-pass continuous read level calibration
US10629278B2 (en) 2018-09-05 2020-04-21 Micron Technology, Inc. First-pass dynamic program targeting (DPT)
KR20200117374A (ko) * 2019-04-04 2020-10-14 에스케이하이닉스 주식회사 비휘발성 메모리 장치, 이의 동작 방법 및 이를 이용하는 시스템
US11119848B2 (en) * 2019-07-10 2021-09-14 Micron Technology, Inc. Logic based read sample offset in a memory sub system
KR20220010210A (ko) 2020-07-17 2022-01-25 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 읽기 동작 방법
KR20220054493A (ko) * 2020-10-23 2022-05-03 삼성전자주식회사 비휘발성 메모리 장치, 그것을 갖는 저장 장치, 및 그것의 리드 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500918A (ja) * 2003-06-13 2007-01-18 サンディスク コーポレイション メモリ・システムのトラッキング・セル
US20070279982A1 (en) * 2006-05-31 2007-12-06 Noboru Shibata Semiconductor memory device capable of correcting a read level properly
US20100149868A1 (en) * 2008-12-12 2010-06-17 Samsung Electronics Co., Ltd. Access method of non-volatile memory device
US20110038205A1 (en) * 2009-08-17 2011-02-17 Skymedi Corporation Method Of Reducing Bit Error Rate For A Flash Memory
JP2011519110A (ja) * 2008-04-29 2011-06-30 サンディスク アイエル リミティド プログラム、検証、読み出し用の基準電圧の適応型セッティングを用いた不揮発性マルチレベルメモリ
US20110170347A1 (en) * 2010-01-13 2011-07-14 Noboru Shibata Semiconductor memory device capable of accurate reading even when erasure level changes
US20160049204A1 (en) * 2014-08-13 2016-02-18 Kabushiki Kaisha Toshiba Memory system and method of controlling non-volatile memory
US20160078954A1 (en) * 2014-09-16 2016-03-17 Kabushiki Kaisha Toshiba Semiconductor memory device
US9812194B1 (en) * 2017-02-07 2017-11-07 Phison Electronics Corp. Decoding method, memory storage device and memory control circuit unit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3913704B2 (ja) 2003-04-22 2007-05-09 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた電子装置
JP4892307B2 (ja) * 2006-09-08 2012-03-07 株式会社東芝 不揮発性半導体格納装置
JP2008084485A (ja) * 2006-09-28 2008-04-10 Toshiba Corp 不揮発性半導体記憶装置及びデータ読出方法
US7864593B2 (en) * 2007-04-12 2011-01-04 Qimonda Ag Method for classifying memory cells in an integrated circuit
KR101703279B1 (ko) * 2010-08-05 2017-02-06 삼성전자 주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 독출 방법
US8427875B2 (en) * 2010-12-07 2013-04-23 Silicon Motion Inc. Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
WO2014133490A1 (en) * 2013-02-27 2014-09-04 Empire Technology Development Llc Linear programming based decoding for memory devices
US8924824B1 (en) * 2013-03-12 2014-12-30 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US10026486B1 (en) * 2017-03-06 2018-07-17 Sandisk Technologies Llc First read countermeasures in memory
JP2018156711A (ja) 2017-03-21 2018-10-04 東芝メモリ株式会社 メモリコントローラおよびデータ読み出し方法
US10541035B1 (en) * 2018-06-28 2020-01-21 Sandisk Technologies Llc Read bias adjustment for compensating threshold voltage shift due to lateral charge movement

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500918A (ja) * 2003-06-13 2007-01-18 サンディスク コーポレイション メモリ・システムのトラッキング・セル
US20070279982A1 (en) * 2006-05-31 2007-12-06 Noboru Shibata Semiconductor memory device capable of correcting a read level properly
JP2007323731A (ja) * 2006-05-31 2007-12-13 Toshiba Corp 半導体記憶装置
JP2011519110A (ja) * 2008-04-29 2011-06-30 サンディスク アイエル リミティド プログラム、検証、読み出し用の基準電圧の適応型セッティングを用いた不揮発性マルチレベルメモリ
US20100149868A1 (en) * 2008-12-12 2010-06-17 Samsung Electronics Co., Ltd. Access method of non-volatile memory device
US20110038205A1 (en) * 2009-08-17 2011-02-17 Skymedi Corporation Method Of Reducing Bit Error Rate For A Flash Memory
US20110170347A1 (en) * 2010-01-13 2011-07-14 Noboru Shibata Semiconductor memory device capable of accurate reading even when erasure level changes
JP2011146088A (ja) * 2010-01-13 2011-07-28 Toshiba Corp 半導体記憶装置
US20160049204A1 (en) * 2014-08-13 2016-02-18 Kabushiki Kaisha Toshiba Memory system and method of controlling non-volatile memory
US20160078954A1 (en) * 2014-09-16 2016-03-17 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2016062623A (ja) * 2014-09-16 2016-04-25 株式会社東芝 半導体記憶装置
US9812194B1 (en) * 2017-02-07 2017-11-07 Phison Electronics Corp. Decoding method, memory storage device and memory control circuit unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600489B2 (en) 2018-03-07 2020-03-24 Toshiba Memory Corporation Memory system, reading method, program, and memory controller

Also Published As

Publication number Publication date
US11043275B2 (en) 2021-06-22
US20190279724A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
JP2019153366A (ja) メモリシステム、読み出し方法、プログラム、およびメモリコントローラ
US11610116B2 (en) Storage device performance optimization using deep learning
US10360101B2 (en) Memory controller and data reading method
KR102190694B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
JP2019160355A (ja) メモリシステム、読み出し方法、プログラムおよびメモリコントローラ
CN112166472A (zh) 具有使用基于组件的功能进行的动态校准的存储器子***
CN105097028A (zh) 包括非易失性存储器件的存储装置和该器件的读取方法
KR20110041500A (ko) 플래시 메모리 디바이스 내의 타겟 셀 판독 방법 및 시스템, 플래시 메모리 내의 방해를 특징화하는 방법
JP2012504820A (ja) 性能要因調整に基づくメモリ・デバイスの軟データ生成の方法および装置
WO2013070366A2 (en) Statistical read comparison signal generation for memory systems
KR102242565B1 (ko) 소거 상태 정보를 기초로 메모리 장치를 제어하는 메모리 컨트롤러 및 이의 동작 방법
TW201331945A (zh) 胞元間干擾的消除
KR102443034B1 (ko) 메모리 장치
KR20110004100A (ko) 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템
KR20140072697A (ko) 메모리 장치, 메모리 시스템 및 이의 동작 방법
US11972294B2 (en) Allocation schema for a scalable memory area
KR20150000358A (ko) 메모리 시스템 및 이의 독출 방법
KR20190074890A (ko) 메모리 컨트롤러 및 그 동작 방법
US11914490B2 (en) Reactive read based on metrics to screen defect prone memory blocks
US9292377B2 (en) Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
JP2018163707A (ja) 半導体記憶装置及びそのリード制御方法
CN111813339B (zh) 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质
Papandreou et al. Enhancing the reliability of MLC NAND flash memory systems by read channel optimization
CN111951873A (zh) 用于校准存储器单元数据状态的感测的设备及方法
US11887680B2 (en) Reducing program verifies for multi-level NAND cells

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210623

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220118