JP2019164858A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2019164858A JP2019164858A JP2018051604A JP2018051604A JP2019164858A JP 2019164858 A JP2019164858 A JP 2019164858A JP 2018051604 A JP2018051604 A JP 2018051604A JP 2018051604 A JP2018051604 A JP 2018051604A JP 2019164858 A JP2019164858 A JP 2019164858A
- Authority
- JP
- Japan
- Prior art keywords
- determination voltage
- temperature
- voltage
- read
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B69/00—Erasable-and-programmable ROM [EPROM] devices not provided for in groups H10B41/00 - H10B63/00, e.g. ultraviolet erasable-and-programmable ROM [UVEPROM] devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B43/00—EEPROM devices comprising charge-trapping gate insulators
- H10B43/20—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
- H10B43/23—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
- H10B43/27—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
Abstract
【課題】リードデータに含まれるエラーの数を可及的に低減すること。【解決手段】メモリシステムは、第1メモリと、温度センサと、コントローラとを備える。第1メモリは、メモリセルトランジスタとメモリセルトランジスタのしきい値電圧を制御するアクセス回路とを備える。コントローラは、第1メモリに対し、リード動作時に、第1判定電圧を取得し、プログラム動作時の温度とリード動作時の温度との差分に応じて第1判定電圧を補正し、アクセス回路に、しきい値電圧と補正された第1判定電圧である第2判定電圧との比較に基づいてしきい値電圧に対応したデータを取得させる。【選択図】図11
Description
本実施形態は、メモリシステムに関する。
従来、メモリセルトランジスタを有するメモリシステムが広く知られている。そのようなメモリシステムにおいては、メモリセルのしきい値電圧と判定電圧との比較に基づいて、そのメモリセルトランジスタに保持されるデータが判定される。
一つの実施形態は、リードデータに含まれるエラーの数を可及的に低減したメモリシステムを提供することを目的とする。
一つの実施形態によれば、メモリシステムは、第1メモリと、温度センサと、コントローラとを備える。第1メモリは、メモリセルトランジスタとメモリセルトランジスタのしきい値電圧を制御するアクセス回路とを備える。コントローラは、第1メモリに対し、プログラム動作を実行し、プログラム動作の後、第1リード動作を実行する。プログラム動作は、温度センサを用いて温度を測定し、測定された温度である第1温度を記憶し、アクセス回路に前記しきい値電圧を第1データに対応した値に設定させる動作である。第1リード動作は、温度センサを用いて温度を測定し、測定された温度である第2温度と第1温度との差分を演算し、第1判定電圧を取得し、第1判定電圧を差分に応じて補正し、アクセス回路にしきい値電圧と補正された第1判定電圧である第2判定電圧との比較に基づいてしきい値電圧に対応した第2データを取得させる動作である。
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態のメモリシステムの構成例を示す図である。図1に示されるように、メモリシステム1は、ホスト機器300と接続可能である。ホスト機器300は、例えば、サーバ、パーソナルコンピュータ、またはモバイル型の情報処理装置などが該当する。メモリシステム1は、ホスト機器300の外部記憶装置として機能する。ホスト機器300は、メモリシステム1に対して要求を発行することができる。要求は、リード要求およびライト要求を含む。
図1は、第1の実施形態のメモリシステムの構成例を示す図である。図1に示されるように、メモリシステム1は、ホスト機器300と接続可能である。ホスト機器300は、例えば、サーバ、パーソナルコンピュータ、またはモバイル型の情報処理装置などが該当する。メモリシステム1は、ホスト機器300の外部記憶装置として機能する。ホスト機器300は、メモリシステム1に対して要求を発行することができる。要求は、リード要求およびライト要求を含む。
メモリシステム1は、1以上のNAND型フラッシュメモリ100、および1つのコントローラ200を備える。ここでは、メモリシステム1は、1以上のNAND型フラッシュメモリ100として、NAND型フラッシュメモリ100_0、100_1を備える。なお、メモリシステム1に具備されるNAND型フラッシュメモリ100は、2に限定されない。
各NAND型フラッシュメモリ100は、複数のメモリセルトランジスタを備え、データを不揮発に記憶することができる。NAND型フラッシュメモリ100は、NANDバス400によってコントローラ200と接続され、コントローラ200からの命令に基づいて動作する。すなわち、各NAND型フラッシュメモリ100は、コントローラ200と、例えば8ビットの入出力信号IO<7:0>の送受信を行う。入出力信号IO<7:0>は、例えばコマンド、アドレス、データである。また、NAND型フラッシュメモリ100は、コントローラ200から制御信号を受信し、コントローラ200へステータス信号を送信する。
制御信号は、チップイネーブル信号CEn0およびCEn1、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、およびライトプロテクト信号WPn等を含む。コントローラ200は、信号WEn、REn、CLE、ALE、およびWPnを、NAND型フラッシュメモリ100_0および100_1に送信する。コントローラ200は、チップイネーブル信号CEn0をNAND型フラッシュメモリ100_0に送信し、チップイネーブル信号CEn1をNAND型フラッシュメモリ100_1に送信する。
チップイネーブル信号CEn(CEn0およびCEn1)は、対象となるNAND型フラッシュメモリ100をイネーブル状態とするための信号である。ライトイネーブル信号WEnは、NAND型フラッシュメモリ100に入出力信号IO<7:0>を取り込むように指示する信号である。リードイネーブル信号REnは、NAND型フラッシュメモリ100に入出力信号IO<7:0>を出力するように指示するための信号である。コマンドラッチイネーブル信号CLEは、入出力信号IO<7:0>がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、入出力信号IO<7:0>がアドレスであることを示す信号である。ライトプロテクト信号WPnは、NAND型フラッシュメモリ100にプログラム処理やイレース処理の実行の禁止を命令するための信号である。
ステータス信号は、NAND型フラッシュメモリ100の種々の状態を示し、レディ/ビジー信号RBn(RBn0およびRBn1)を含む。レディ/ビジー信号RBnは、NAND型フラッシュメモリ100がビジー状態であるか否か(コントローラ200からコマンドを受信不可能な状態か可能な状態か)を示す信号である。レディ/ビジー信号RBn0はNAND型フラッシュメモリ100_0から出力され、レディ/ビジー信号RBn1はNAND型フラッシュメモリ100_1から出力される。コントローラ200は、ステータス信号やレディ/ビジー信号RBnを受け取ることで、各NAND型フラッシュメモリ100の状態を知ることができる。
メモリシステム1は、さらに、1以上の温度センサ210として、温度センサ210_0、210_1を備える。各温度センサ210は、NAND型フラッシュメモリ100の温度を測定するために使用される。なお、温度センサ210_0は、NAND型フラッシュメモリ100_0の近傍に設けられており、NAND型フラッシュメモリ100_0の周辺温度を検出する。また、温度センサ210_1は、NAND型フラッシュメモリ100_1の近傍に設けられており、NAND型フラッシュメモリ100_1の周辺温度を検出することができる。以降、NAND型フラッシュメモリ100の温度とは、対応する温度センサ210によって検出された温度と定義する。なお、温度センサ210は、NAND型フラッシュメモリ100に内蔵されてもよい。
コントローラ200は、ホスト機器300からの要求に基づいて、NAND型フラッシュメモリ100に対してリード処理、プログラム処理、およびイレース処理等を命令する。
コントローラ200は、ホストインターフェイス回路201、メモリ(RAM)202、プロセッサ(CPU)203、バッファメモリ204、NANDインターフェイス回路205、およびECC(error correction code)回路206を備える。なお、コントローラ200は、例えばSoC(System-On-a-Chip)として構成され得る。コントローラ200は、複数のチップによって構成されてもよい。コントローラ200は、CPU203に代えて、FPGA(field-programmable gate array)やASIC(application specific integrated circuit)を備えていてもよい。つまり、コントローラ200は、ソフトウェア、ハードウェア、またはこれらの組み合わせによって構成され得る。
ホストインターフェイス回路201は、例えばATA(Advanced Technology Attachment)規格、SAS(Serial Attached SCSI)規格、またはPCI(Peripheral Components Interconnect) Express(登録商標)規格などに準拠したバスを介してホスト機器300と接続され、コントローラ200とホスト機器300との通信を司る。
NANDインターフェイス回路205は、NANDバスを介して各NAND型フラッシュメモリ100と接続され、コントローラ200とNAND型フラッシュメモリ100との通信を司る。
CPU203は、コントローラ200の動作を制御する。
RAM202は、CPU203の作業領域として使用される。バッファメモリ204は、NAND型フラッシュメモリ100に送信されるデータ、およびNAND型フラッシュメモリ100から送信されたデータを一時的に保持する。RAM202およびバッファメモリ204は、例えばDRAM(dynamic random access memory)、SRAM(static random access memory)、またはこれらの組み合わせなどによって構成され得る。なお、RAM202およびバッファメモリ204を構成するメモリの種類は、これらに限定されない。
ECC回路206は、誤り訂正符号を用いてデータの誤りを検出および訂正する。
図2は、第1の実施形態のメモリシステム1に保持される各種データを説明する図である。
NAND型フラッシュメモリ100には、ユーザデータ140およびシステムデータ141が格納される。ユーザデータ140は、ホスト機器300から受信し、ECC回路206によって誤り訂正符号化されたデータである。本明細書において、データは、少なくともユーザデータ140を指すこととする。
システムデータ141は、コントローラ200の制御に要するデータである。システムデータ141は、ファームウェアプログラム142を含む。ファームウェアプログラム142は、CPU203がコントローラ200の動作の制御を実現するためのコンピュータプログラムである。例えば、CPU203は、メモリシステム1の起動時にファームウェアプログラム142をRAM202にロードする。そして、CPU203は、RAM202にロードされたファームウェアプログラム142に従って動作することによって、コントローラ200の動作の制御を実現する。
RAM202には、判定電圧情報220、補正アルゴリズム221、および温度情報222が格納される。判定電圧情報220、補正アルゴリズム221および温度情報222の詳細は後述する。
なお、システムデータ141、判定電圧情報220、補正アルゴリズム221、および温度情報222の格納位置は、上記に限定されない。例えば、判定電圧情報220、補正アルゴリズム221、および温度情報222の一部または全部は、NAND型フラッシュメモリ100に格納されていてもよい。また、RAM202およびNAND型フラッシュメモリ100のほかに任意の種類のメモリがメモリシステム1に具備され、システムデータ141、判定電圧情報220、補正アルゴリズム221および温度情報222の一部または全部は、そのメモリに格納されてもよい。
図3は、NAND型フラッシュメモリ100の構成例を示す図である。図示するようにNAND型フラッシュメモリ100は、メモリセルアレイ111およびアクセス回路130を備える。アクセス回路130は、ロウデコーダ112およびセンスアンプ113を備える。
メモリセルアレイ111は、それぞれが複数の不揮発性メモリセルトランジスタの集合である複数のブロックBLK(BLK0、BLK1、…)を備える。ブロックBLKの各々は、それぞれがワード線およびビット線に関連付けられたメモリセルトランジスタの集合である複数のストリングユニットSU(SU0、SU1、…)を備える。ストリングユニットSUの各々は、メモリセルトランジスタが直列接続された複数のNANDストリング114を備える。なお、ストリングユニットSU内のNANDストリング114の数は任意である。メモリセルアレイ111の詳細については後述する。
ロウデコーダ112は、例えばプログラム処理およびリード処理の際、ブロックBLKのアドレスおよびページのアドレスをデコードして、対象となるページに対応するワード線を選択する。そしてロウデコーダ112は、選択ワード線および非選択ワード線に適切な電圧を印加する。
センスアンプ113は、複数のセンスアンプユニット(不図示)を備える。各センスアンプユニットは、ビット線に対応して設けられている。各センスアンプユニットは、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータをセンスする。また、各センスアンプユニットは、データの書き込み時には、書き込みデータをメモリセルトランジスタに転送する。また各センスアンプユニットは、それぞれデータを保持するため、複数のラッチ回路(不図示)を含む。
アクセス回路130は、シーケンサ121、電圧発生回路122、およびドライバ123をさらに備える。
シーケンサ121は、NAND型フラッシュメモリ100全体の動作を制御する。
電圧発生回路122は、電源電圧VDDを昇圧または降圧することにより、データのプログラム、リード、およびイレースに必要な電圧を発生させ、ドライバ123に供給する。
ドライバ123は、電圧発生回路122が発生させた電圧を、ロウデコーダ112、センスアンプ113、ソース線、およびウェル等に供給する。
次に、メモリセルアレイ111が備えるブロックBLKについて説明する。
図4は、第1の実施形態のブロックBLKの回路構成を示す図である。なお、各ブロックBLKは、同一の構成を有している。ブロックBLKは、例えば4つのストリングユニットSU0〜SU3を有する。各ストリングユニットSUは、複数のNANDストリング114を含む。
NANDストリング114の各々は、例えば14個のメモリセルトランジスタMT(MT0〜MT13)および選択トランジスタST1、ST2を含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そして14個のメモリセルトランジスタMT(MT0〜MT13)は、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。なお、メモリセルトランジスタMTは、電荷蓄積層に絶縁膜を用いたMONOS型であってもよいし、電荷蓄積層に導電膜を用いたFG型であってもよい。さらに、NANDストリング114内のメモリセルトランジスタMTの個数は14個に限定されない。
ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0〜SGD3に接続される。これに対してストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、例えば選択ゲート線SGSに共通接続される。ストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、ストリングユニットSU毎に異なる選択ゲート線SGS0〜SGS3に接続されてもよい。同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT13の制御ゲートは、それぞれワード線WL0〜WL13に共通接続される。
ストリングユニットSU内にある各NANDストリング114の選択トランジスタST1のドレインは、それぞれ異なるビット線BL(BL0〜BL(L−1)、但しLは2以上の自然数)に接続される。また、ビット線BLは、複数のブロックBLK間で各ストリングユニットSU内にある1つのNANDストリング114を共通に接続する。更に、各選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
つまりストリングユニットSUは、異なるビット線BLに接続され、且つ同一の選択ゲート線SGDに接続されたNANDストリング114の集合である。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合である。そしてメモリセルアレイ111は、ビット線BLを共通にする複数のブロックBLKの集合である。
データのプログラムおよびリードは、1つのストリングユニットSUにおける1つのワード線WLに接続されたメモリセルトランジスタMTに対して、一括して行われる。以下、データのプログラムおよびリードの際、一括して選択されるメモリセルトランジスタMTの群を「メモリセルグループMCG」と呼ぶ。そして、1つのメモリセルグループMCGにプログラムされる、あるいはリードされる1ビットのデータの集まりを「ページ」と呼ぶ。
データのイレースは、ブロックBLK単位、またはブロックBLKよりも小さい単位で行うことができる。イレース方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、イレース方法に関しては、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。イレース方法に関しては、更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
図5は、第1の実施形態のブロックBLKの一部領域の断面図である。図示するように、p型ウェル領域10上に、複数のNANDストリング114が形成されている。すなわち、ウェル領域10上には、選択ゲート線SGSとして機能する例えば4層の配線層11、ワード線WL0〜WL13として機能する14層の配線層12、および選択ゲート線SGDとして機能する例えば4層の配線層13が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
そして、これらの配線層13、12、11を貫通してウェル領域10に達するピラー状の導電体14が形成されている。導電体14の側面には、ゲート絶縁膜15、電荷蓄積層(絶縁膜または導電膜)16、およびブロック絶縁膜17が順次形成され、これらによってメモリセルトランジスタMT、並びに選択トランジスタST1およびST2が形成されている。導電体14は、NANDストリング114の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体14の上端は、ビット線BLとして機能する金属配線層18に接続される。
ウェル領域10の表面領域内には、n+型不純物拡散層19が形成されている。拡散層19上にはコンタクトプラグ20が形成され、コンタクトプラグ20は、ソース線SLとして機能する金属配線層21に接続される。更に、ウェル領域10の表面領域内には、p+型不純物拡散層22が形成されている。拡散層22上にはコンタクトプラグ23が形成され、コンタクトプラグ23は、ウェル配線CPWELLとして機能する金属配線層24に接続される。ウェル配線CPWELLは、ウェル領域10を介して導電体14に電位を印加するための配線である。
以上の構成が、半導体基板に平行な第2方向D2に複数配列されており、第2方向D2に並ぶ複数のNANDストリング114の集合によってストリングユニットSUが形成される。
なお、メモリセルアレイ111は、上記の構成以外の構成を有し得る。すなわちメモリセルアレイ111の構成については、例えば、“三次元積層型不揮発性半導体メモリ(THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY)”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、メモリセルアレイ111の構成については、“三次元積層型不揮発性半導体メモリ(THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY)”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置およびその製造方法(NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME)”という2008年12月9日に出願された米国特許出願12/679,991号、“半導体メモリおよびその製造方法(SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME)”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
以降では、メモリセルトランジスタMTを、単に、メモリセルと表記する。
図6は、第1の実施形態のメモリセルの取り得るしきい値電圧の一例を示す図である。縦軸は、メモリセルの数を示しており、横軸は、しきい値電圧を示している。以下、本実施形態では、メモリセルが8値のデータを保持可能な場合について説明するが、保持可能なデータは8値に限定されない。本実施形態においては、メモリセルが2値以上のデータ(1ビット以上のデータ)を保持可能であればよい。
図6に示されるように、しきい値電圧の取り得る範囲は、8つの範囲に区分される。この8つの区分を、しきい値電圧が低いほうから順に、“Er”ステート、“A”ステート、“B”ステート、“C”ステート、“D”ステート、“E”ステート、“F”ステート、および“G”ステートと呼ぶことにする。各メモリセルのしきい値電圧は、アクセス回路130によって、“Er”ステート、“A”ステート、“B”ステート、“C”ステート、“D”ステート、“E”ステート、“F”ステート、および“G”ステート、の何れかに属するように、制御される。その結果、しきい値電圧を横軸としてメモリセルの数をプロットした場合、メモリセルは、理想的には、本図に示されるように、それぞれ異なるステートに属する互いに重ならない8つの分布を形成する。
8つのステートは、3ビットのデータに対応する。本図の例によれば、“Er”ステートは“111”のデータに対応し、“A”ステートは“110”のデータに対応し、“B”ステートは“100”のデータに対応し、“C”ステートは“000”のデータに対応し、“D”ステートは“010”のデータに対応し、“E”ステートは“011”のデータに対応し、“F”ステートは“001”のデータに対応し、“G”ステートは“101”のデータに対応する。なお、本図では、MSB(Most Significant Bit)を左端に配置し、LSB(Least Significant Bit)を右端に配置した表記方法を採用している。
このように、各メモリセルは、そのしきい値電圧が属するステートに応じたデータを保持することができる。なお、図6に示す対応関係は、データコーディングの一例である。データコーディングは本図の例に限定されない。
なお、1つのメモリセルに保持される3ビットのデータのうち、LSBをロアービット、MSBをアッパービット、LSBとMSBとの間のビットをミドルビット、と表記する。同一のメモリセルグループMCGに属する全てのメモリセルトランジスタMTのロアービットの集合を、ロアーページと表記する。同一のメモリセルグループMCGに属する全てのメモリセルトランジスタMTのミドルビットの集合を、ミドルページと表記する。同一のメモリセルグループMCGに属する全てのメモリセルトランジスタMTのアッパービットの集合を、アッパーページと表記する。
しきい値電圧は、イレース処理によって“Er”ステートに低下せしめられる。また、しきい値電圧は、プログラム処理によって、“Er”ステートに維持されるか、または“A”ステート、“B”ステート、“C”ステート、“D”ステート、“E”ステート、“F”ステート、および“G”ステート、の何れかに至るまで、上昇せしめられる。
具体的には、プログラム処理においては、シーケンサ121は、カラムアドレスに対応したビット線BLを選択する。ドライバ123は、選択されたビット線の電位をゼロとする。ロウデコーダ112は、ロウアドレスに対応したワード線WLを選択し、選択されたワード線WLに、プログラミングパルスを印加する。すると、選択されたビット線BLおよび選択されたワード線WLとの交点に位置するメモリセルの電荷蓄積層16に電子が注入され、その結果、メモリセルのしきい値電圧が上昇する。センスアンプ113は、所定のタイミングでデータのリードを行うことで、メモリセルのしきい値電圧がライトデータのデータに対応した目標のステートに到達したか否かを確認する(ベリファイリード)。センスアンプ113は、メモリセルのしきい値電圧が目標のステートに到達するまで、ロウデコーダ112にプログラムパルスの印加を継続させる。
以降、プログラム処理によってあるステートにしきい値電圧が設定されたメモリセルを、そのステートに属するメモリセル、と表記することがある。
隣接する2つのステート間には、判定電圧が設定される。例えば、図6に例示されるように、“Er”ステートと“A”ステートとの間に判定電圧Vraが設定され、“A”ステートと“B”ステートとの間に判定電圧Vrbが設定され、“B”ステートと“C”ステートとの間に判定電圧Vrcが設定され、“C”ステートと“D”ステートとの間に判定電圧Vrdが設定され、“D”ステートと“E”ステートとの間に判定電圧Vreが設定され、“E”ステートと“F”ステートとの間に判定電圧Vrfが設定され、“F”ステートと“G”ステートとの間に判定電圧Vrgが設定される。リード処理においては、複数種類の判定電圧によって、メモリセルが属するステートに対応付けられたデータが判定される。
例えば図6に示されたデータコーディングが適用される場合を考える。メモリセルが“Er”ステート、“E”ステート、“F”ステート、および“G”ステート、の何れかに属する場合、そのメモリセルが保持するロアービットの値は“1”である。メモリセルが“A”ステート、“B”ステート、“C”ステート、および“D”ステートの何れかに属する場合、そのメモリセルが保持するロアービットの値は“0”である。よって、VraおよびVreの2種類の判定電圧を使用することによって、ロアーページのデータが判定できる。
メモリセルが“Er”ステート、“A”ステート、“D”ステート、および“E”ステートの何れかに属する場合、そのメモリセルが保持するミドルビットの値は“1”である。メモリセルが“B”ステート、“C”ステート、“F”ステート、および“G”ステートの何れかに属する場合、そのメモリセルが保持するミドルビットの値は“0”である。よって、Vrb、Vrd、およびVrfの3種類の判定電圧を使用することによって、ミドルページのデータが判定できる。
メモリセルが“Er”ステート、“A”ステート、“B”ステート、および“G”ステートの何れかに属する場合、そのメモリセルが保持するアッパービットの値は“1”である。メモリセルが“C”ステート、“D”ステート、“E”ステート、および“F”ステートの何れかに属する場合、そのメモリセルが保持するアッパービットの値は“0”である。よって、VrcおよびVrgの2種類の判定電圧を使用することによって、アッパーページのデータが判定できる。
このように、データの判定に使用される判定電圧の種類は、リード対象のページの種類に応じて異なる。ロウデコーダ112は、リード処理では、リード対象のページの種類に応じた複数種類の判定電圧を使用する。
さらに具体的に説明すると、リード処理においては、センスアンプ113は、ビット線BLに電源電圧VDDをプリチャージする。ロウデコーダ112は、ロウアドレスに対応したワード線WLを選択する。ロウデコーダ112は、非選択のワード線WLに属するメモリセルを導通状態にし、選択されたワード線WLに、リード対象のページの種類に対応する複数種類の判定電圧を順次印加する。センスアンプ113は、プリチャージにより蓄えられた電荷のソース線SLへの流出を引き起こした判定電圧を特定することによって、対象のメモリセルが属するステートに対応するデータを判定する。
なお、実施形態のNAND型フラッシュメモリ100は、通常モードおよびネガティブセンシングモードを含む複数のモードでリード処理を実行することが可能である。
通常モードでは、ドライバ123は、ソース線SLの電位をゼロとする。そして、ロウデコーダ112は、非選択のワード線WLに転送電位Vreadを印加することによって、非選択のワード線WLを導通状態にする。これにより、通常モードでは、選択されたワード線WLに判定電圧をそのまま印加することが可能である。つまり、ドライバ123が負の電圧を生成することができない場合においては、通常モードでは、負の値の判定電圧を使用することができない。
これに対し、ネガティブセンシングモードでは、ドライバ123は、ソース線SLの電位を正側にバイアスする。つまり、ドライバ123は、ソース線SLに正の値の電圧(Vbiasと表記する)を印加する。これにより、ワード線WLとソース線SLとの電位差Vgsは、Vbiasだけ負側にバイアスされる。従って、ネガティブセンシングモードでは、選択されたワード線WLに対し、見かけ上、負の値の判定電圧を使用することが可能となる。ネガティブセンシングモードでは、ロウデコーダ112は、非選択のワード線WLを導通状態にする際には、非選択のワード線WLに印加する転送電位VreadをVbiasだけ正側にバイアスする。
なお、バイアス電圧Vbiasは、判定電圧の種類毎に異なっていてもよいし、複数種類の判定電圧で共通してもよい。
図6では、メモリセルが、互いに重ならない8つの分布を形成する場合を説明した。しかしながら、メモリセルのしきい値電圧は、使用履歴に応じて変化し得る。使用履歴は、当該メモリセルへのアクセス(プログラム処理、リード処理、およびイレース処理)、当該メモリセルへのプログラム完了時からの経過時間、当該メモリセルの近隣のメモリセルへのアクセス、当該メモリセルに対するイレース処理やプログラム処理の実行時の温度、当該メモリセルに対してプログラム処理されてからリード処理がされるまでの間の温度、などを含む。メモリセルのしきい値電圧が変化し得るので、現実的には、リード処理時において、ステート毎の分布が互いに重なり合った状態になっている場合がある。
図7は、第1の実施形態のメモリセルの取り得るしきい値電圧の別の一例を示す図である。ここでは、説明を簡単にするために、“A”ステートおよび“B”ステートのいずれかに属するメモリセルのしきい値電圧の分布を図示している。実線は、“A”ステートおよび“B”ステートのいずれかに属するメモリセルのしきい値電圧の分布を示している。破線は、“A”ステートに属するメモリセルのしきい値電圧の分布を示し、一点鎖線は、“B”ステートに属するメモリセルのしきい値電圧の分布を示している。本図の例では、“A”ステートに属するメモリセルのしきい値電圧の分布の裾野と“B”ステートに属するメモリセルのしきい値電圧の分布の裾野とが重なり合っている。言い換えると、“A”ステートに属するメモリセルのしきい値電圧の最大値が判定電圧Vrbを超えており、かつ、“B”ステートに属するメモリセルのしきい値電圧の最小値が判定電圧Vrbを下回っている。“A”ステートに属し、かつ、しきい値電圧が判定電圧Vrbよりも高いメモリセルがリードされた場合、そのメモリセルは“B”ステートに属するとして認識される。即ち、“110”としてプログラムされたデータが“100”としてリードされる。“B”ステートに属し、かつ、しきい値電圧が判定電圧Vrbよりも低いメモリセルがリードされた場合、そのメモリセルは“A”ステートに属するとして認識される。即ち、“100”としてプログラムされたデータが“110”としてリードされる。
このように、リードされたデータは、しきい値電圧の変化によって、プログラムされた時点での値から変化した場合がある。変化したデータは、ECC回路206によって、エラービットとして検出され訂正され得る。しかしながら、ECC回路206によって訂正可能なエラービットの数には、限界がある。リードデータに含まれるエラービットの数(以降、エラー数)が限界を超えないように、コントローラ200は、各判定電圧をシフトさせることが可能に構成される。
例えば、隣接する2つのステートの分布間においてメモリセルの合計数が極小となる電圧値を判定電圧として使用すると、リードデータに含まれるエラー数を少なくすることができる。図7に示される分布の場合、Vbが、メモリセルの合計数が極小となる電圧値に該当する。即ち、Vbを判定電圧として使用することによって、“110”としてプログラムされたデータが“100”としてリードされたり、“100”としてプログラムされたデータが“110”としてリードされたりして発生するエラービットの数を低減することができる。
以降、隣接する2つのステートの分布間においてメモリセルの合計数が極小となる電圧値を、最適判定電圧、と表記する。
図8は、メモリセルのしきい値電圧の一例を説明する図である。この図では、横軸はしきい値電圧を示している。縦軸はメモリセルの数を示している。
図8において、実線は、摂氏50度でデータがプログラムされ、その後、摂氏50度でリード処理を実行したときに測定された(条件1)、メモリセルのしきい値電圧の分布を示している。前述の通り、各ステート間のエラービット数が極小となる電圧値が最適判定電圧となるため、条件1のケースでは、電圧値Va1、Vb1、Vc1、Vd1、Ve1、Vf1、およびVg1が最適判定電圧に該当する。なお、電圧値Va1、Vb1、Vc1、Vd1、Ve1、Vf1、およびVg1は全てゼロ以上の値である。
図8において、点線は、摂氏70度でデータがプログラムされ、その後、摂氏0度でリード処理を実行したときに測定された(条件2)、メモリセルのしきい値電圧の分布を示している。このケースでは、条件1と比較すると、メモリセルのしきい値電圧の分布が正側にシフトしている。これに伴って、それぞれの最適判定電圧は条件1のケースからそれぞれ正側にシフトしている。即ち、条件2のケースでは、Va2(>Va1)、Vb2(>Vb1)、Vc2(>Vc1)、Vd2(>Vd1)、Ve2(>Ve1)、Vf2(>Vf1)、およびVg2(>Vg1)が最適判定電圧に該当する。なお、電圧値Va2、Vb2、Vc2、Vd2、Ve2、Vf2、およびVg2は全て正の値である。
図8において、一点鎖線は、摂氏0度でデータがプログラムされ、その後、摂氏70度でリード処理を実行したときに測定された(条件3)、メモリセルのしきい値電圧の分布を示している。このケースでは、条件1のケースと比較すると、メモリセルのしきい値電圧の分布が負側にシフトしている。これに伴って、それぞれの最適判定電圧は条件1のケースからそれぞれ負側にシフトしている。それぞれの最適判定電圧が負側にシフトしたことによって、“Er”ステートと“A”ステートとの間のメモリセルの合計数が極小となる電圧値(Va3とする)は、負の値になっていると推測される。条件3のケースでは、負の値であるVa3(<Va1)と、Vb3(<Vb1)、Vc3(<Vc1)、Vd3(<Vd1)、Ve3(<Ve1)、Vf3(<Vf1)、およびVg3(<Vg1)とが最適判定電圧に該当する。なお、電圧値Vb3、Vc3、Vd3、Ve3、Vf3、およびVg3は全て正の値である。
このように、メモリセルのしきい値電圧は、プログラム処理時とリード処理時との温度差に応じてシフトする。これは、メモリセルのしきい値電圧が温度に応じて変化することに起因すると考えられる。プログラム処理のベリファイリード時およびリード処理時において、しきい値電圧がともに温度に依存して増減するので、プログラム処理時とリード処理時とで温度差が発生した場合、リード処理時のしきい値電圧は、プログラム処理時のしきい値電圧を基準とすると、その温度差に応じた量だけ増減する。
温度に応じたしきい値電圧の増減を、NAND型フラッシュメモリ100において補償することが考えられる。例えば、プログラム処理時の温度に依らず、プログラム完了時のメモリセルのプログラム状態を一定としたり、リード処理時の温度に依らず、メモリセルのプログラム状態を読み出すことは可能である。しかしながら、NAND型フラッシュメモリ100の内部で補償可能な温度差には限界がある。さらに、NAND型フラッシュメモリ100の内部で温度に応じてしきい値電圧を補償しようとする場合、NAND型フラッシュメモリ100は、リード処理の際に、プログラム処理時の温度を取得するための別のリード処理を自律的に行う必要があり、リード性能が大幅に低下する。
したがって、ある程度以上の温度差を補償する場合、コントローラ200によるアシストが必要である。
実施形態では、プログラム処理時とリード処理時とで温度差が発生した場合であってもリードデータに含まれるエラービットの数をできるだけ少なくするために、コントローラ200は、プログラム処理時とリード処理時との温度差に応じて判定電圧を補正する。
具体的には、CPU203は、プログラム処理時にNAND型フラッシュメモリ100の温度を温度センサ210を用いて測定する。CPU203は、取得した測定値(温度データ)をプログラム処理時の温度(Tpと表記する)として温度情報222に記録する。
リード処理の実行時には、そのリード処理をNAND型フラッシュメモリ100に命令する前に、CPU203は、温度センサ210を用いてNAND型フラッシュメモリ100の温度を測定する。即ち、CPU203は、リード処理時の温度(Trと表記する)を取得する。さらに、CPU203は、プログラム処理時の温度Tpを温度情報222から取得する。そして、CPU203は、リード処理時の温度Trとプログラム処理時の温度Tpとの差分(以降、一例としてTr−Tp)に基づいて、判定電圧の補正量Vcorを決定する。
なお、CPU203は、差分(Tr−Tp)に対応する補正量Vcorを、補正アルゴリズム221から取得する。補正アルゴリズム221は、温度差Tdifとメモリセルのしきい値電圧の変化Vdifとの間の対応関係を規定する情報である。
なお、温度測定のタイミングはこれに限定されない。CPU203は、温度を定期的または非定期的に測定して各測定値を例えばRAM202に格納しておき、CPU203は、プログラム処理の間近に格納された測定値をTpとして取得し、リード処理の間近に格納された測定値をTrとして取得してもよい。
図9は、第1の実施形態の補正アルゴリズム221によって規定された対応関係を説明するための図である。本図において、横軸は、温度差Tdifを示し、縦軸はしきい値電圧の変化Vdifを示す。本図の例によれば、温度差Tdifとしきい値電圧の変化Vdifとは負の相関関係を有する。
CPU203は、温度差Tdifが(Tr−Tp)である場合のしきい値電圧の変化Vdifの値を補正量Vcorとして決定する。そして、CPU203は、補正前の判定電圧に補正量Vcorを加算することによって補正後の判定電圧を決定する。なお、補正前の判定電圧に補正量Vcorが加算されるか減算されるかは、温度差Tdifやしきい値電圧の変化Vdifの定義に応じて変更される。
なお、補正量Vcorを決定するための補正アルゴリズム221は、判定電圧の種類毎に個別に用意されていてもよいし、全ての種類の判定電圧に対し共通に使用されてもよい。
CPU203は、リード対象のページの種類に応じた複数種類の判定電圧のそれぞれを補正する。補正後、複数種類の判定電圧が負の値を含む場合、CPU203は、NAND型フラッシュメモリ100に、ネガティブセンシングモードを設定する。複数種類の判定電圧が負の値を含まない場合、CPU203は、NAND型フラッシュメモリ100に、通常モードで動作させる。
なお、温度情報222には、任意の単位領域毎に温度Tpが記録され得る。単位領域は、決まったサイズを有する記憶領域であり、例えば、NAND型フラッシュメモリ100、ブロックBLK、ストリングユニットSU、ワード線WL、または複数のワード線WLのグループである。NAND型フラッシュメモリ100が多段で構成される場合は、該NAND型フラッシュメモリ100のチップを単位領域とすることも可能である。多段とは、複数のNAND型フラッシュメモリ100のチップを積層した構造をいう。ここでは一例として、図10に例示されるように、温度情報222には、ブロックBLK毎に温度Tpが記録されることとする。
なお、温度情報222は、電源断時までにNAND型フラッシュメモリ100に保存され、起動時にRAM202にロードされてもよい。
また、温度Tpの測定のタイミングは、プログラム処理時の温度からの変化量が十分に小さい限り、プログラム処理の実行タイミングと厳密に一致していなくてもよい。ここでは、プログラム処理時の温度Tpをプログラム処理の単位であるページよりも大きいブロック単位で記録することとしている。よって、一例として、1つのブロックBLKに対していっぱいまでデータがプログラムされたタイミングでそのブロックBLKにかかる温度Tpが測定されることとする。ブロックBLKがいっぱいまでデータがプログラムされるとは、ブロックBLKに空き領域が無くなるまでデータがプログラムされることである。なお、ブロック単位で温度Tpを取得する方法やタイミングはこれに限定されない。
また、補正前の判定電圧は、任意の方法で取得され得る。ここでは一例として、CPU203は、補正前の判定電圧を、判定電圧情報220に基づいて決定することができる。判定電圧情報220は、全ての種類の判定電圧が決定できるように構成されている。判定電圧情報220には、補正前の判定電圧が記録されていてもよいし、補正前の判定電圧がある基準値からのシフト量として記録されていてもよい。CPU203は、例えば、補正前の判定電圧から補正量Vcorを加算することによって、補正後の判定電圧を取得する。
なお、判定電圧情報220は、任意のタイミングで更新され得る。例えば、判定電圧情報220は、使用履歴に応じて更新されてもよい。また、判定電圧情報220は、補正前の判定電圧が単位領域毎に個別に取得できるように構成されてもよい。単位領域は、温度情報222の場合と同様、任意に設定され得る。
次に、第1の実施形態のメモリシステム1の動作を説明する。
図11は、第1の実施形態のメモリシステム1のプログラム動作を説明するフローチャートである。
CPU203は、1つのブロックBLKがいっぱいになるまでデータをプログラムすると(S101)、当該ブロックBLKを備えるNAND型フラッシュメモリ100の温度Tpを測定する(S102)。そして、CPU203は、測定された温度TpをそのブロックBLKに関連付けて温度情報222に記録する(S103)。S103の処理の後、プログラム処理時の動作が完了する。
図12は、第1の実施形態のメモリシステム1のリード動作を説明するフローチャートである。
CPU203は、1つのブロックBLKに対してリード処理を実行する場合、まず、当該ブロックBLKを含むNAND型フラッシュメモリ100の温度Trを測定する(S201)。そして、CPU203は、温度情報222に該ブロックBLKに関連付けて記録された温度Tpと、S201の処理によって測定された温度Trと、の温度差(Tr−Tp)を演算する(S202)。
続いて、CPU203は、判定電圧情報220から、判定電圧を取得する(S203)。そして、CPU203は、S202の処理によって演算された温度差(Tr−Tp)と補正アルゴリズム221とに基づいて、補正量Vcorを取得する(S204)。そして、CPU203は、S203の処理によって取得された判定電圧を、S204の処理によって取得された補正量Vcorを用いて補正する(S205)。
なお、CPU203は、S203〜S205の処理を、リード対象のページに対応する複数種類の判定電圧のそれぞれに対して実行する。
CPU203は、複数種類の判定電圧のうちに、負の値の判定電圧が存在するか否かを判定する(S206)。負の値の判定電圧が存在する場合(S206、Yes)、CPU203は、ネガティブセンシングモードを設定し(S207)、判定電圧を指定したリード処理をNAND型ブラッシュメモリ100に命令する(S208)。
S207では、例えば図13に例示されるようなコマンドがコントローラ200からNAND型フラッシュメモリ100に送られる。本図において、VSRCは、ソース線SLに印加されるバイアスVbiasの値が設定される。そして、EFh、ααh、およびVSRCの組み合わせによって、ネガティブセンシングモードでの動作が指示される。
例えば、使用したい実効的な判定電圧をVnetとし、設定するワードライン電位をVCGとし、設定可能な最低ワードライン電位をVCG_min(=0)とした場合を考える。
Vnet<VCG_minの場合、S206:Yesと判定される。その場合、例えば、CPU203は、VCGとしてVCG_minを設定し、Vbias(即ちVSRC)として(VCG_min−Vnet)を設定する。これにより、正味の判定電圧を、VCG−Vbias=VCG_min−(VCG_min−Vnet)=Vnetとすることができる。
S208では、例えば図14に例示されるようなコマンドがコントローラ200からNAND型フラッシュメモリ100に送られる。
本図において、EFhからV3までのシーケンスは、判定電圧を設定するコマンドシーケンスである。EFhとββhとの組み合わせは、判定電圧のシフト量(より正確にはVCGのシフト量)を設定するコマンドである。PSは、ページを選択するコマンドである。例えば、PSによって、ロアーページ、ミドルページ、およびアッパーページの何れかが指定される。V1、V2、およびV3によって、選択されたページに対応した3種類の判定電圧のシフト量が指定できる。
例えば、PSによってロアーページが選択された場合、V1によってVraのシフト量が指定でき、V2によってVreのシフト量が指定できる。V3は使用されない。
PSによってミドルページが選択された場合、V1によってVrbのシフト量が指定でき、V2によってVrdのシフト量が指定でき、V3によってVrfのシフト量が指定できる。
PSによってアッパーページが選択された場合、V1によってVrcのシフト量が指定でき、V2によってVrgのシフト量が指定できる。V3は使用されない。
なお、ネガティブセンシングモードを使用する場合には、CPU203は、S205の処理によって補正された後の各種判定電圧にバイアスVbiasを加算した電圧を、V1〜V3に設定する。
また、このコマンドシーケンスで設定される判定電圧の数は、1つのメモリセルに保持可能なデータの容量に応じて変更され得る。例えば、1つのメモリセルに4値のデータが格納される場合には、1種類または2種類の判定電圧が設定される。
アクセス回路130は、EFhからV3までのシーケンスを受信すると、レディ/ビジー信号RBnをビジー状態にして再びレディ状態にする。すると、コントローラ200は、リードコマンドに相当するPSから30hまでのコマンドシーケンスをNAND型フラッシュメモリ100に送る。
リードコマンドでは、PSは、判定電圧を設定する際に送られるPSと同様、ページを選択するコマンドである。00hと30hとの組み合わせは、ページからデータをリードする指示を意味する。CA1およびCA2は、カラムアドレスを構成し、RA1、RA2、およびRA3は、ロウアドレスを構成する。
アクセス回路130は、リードコマンドを受理すると、メモリセルアレイ111のRA1、RA2、およびRA3によって指定されたページからデータをリードする。アクセス回路130は、メモリセルアレイ111からデータをリードする間(tR)、レディ/ビジー信号RBnをビジー状態にする。
レディ/ビジー信号RBnがビジー状態からレディ状態になると、コントローラ200は、データ出力コマンドに相当する05hからE0hまでのコマンドシーケンスをNAND型フラッシュメモリ100に送る。
データ出力コマンドでは、05hとE0hとの組み合わせは、メモリセルアレイ111から読み出された1ページのデータのうちの、カラムアドレスによって指定した範囲のデータを出力する指示を意味する。CA1およびCA2は、カラムアドレスを構成し、出力させるデータの範囲を示す。RA1、RA2、およびRA3は、ロウアドレスを構成する。RA1、RA2、およびRA3は、リードコマンドと同じロウアドレスが指定される。
アクセス回路130は、データ出力コマンドを受理すると、レディ/ビジー信号RBnを一度ビジー状態にした後、データを出力する。
図12に戻り、負の値の判定電圧が存在しない場合(S206、No)、CPU203は、通常モードを設定する(S209)。そして、CPU203は、判定電圧を指定したリード処理をNAND型ブラッシュメモリ100に命令する(S210)。なお、通常モードが予め設定されている場合、CPU203は、リードを行うタイミングで通常モードを設定しなくてもよい。その場合、CPU203は、ネガティブセンシングモードによるリード処理(S208)を完了する毎に、図15に例示したコマンドシーケンスを送信する。
S207では、例えば図15に例示されるようなコマンドがコントローラ200からNAND型フラッシュメモリ100に送られる。EFh、ααh、およびOFFの組み合わせによって、通常モードでの動作が指示される。OFFは、VSRC(Vbias)としてゼロが設定されるコマンドである。
S210では、例えば図14に例示されるようなコマンドがコントローラ200からNAND型フラッシュメモリ100に送られる。ただし、S210では、S205の処理によって補正された後の各種判定電圧が、V1〜V3として設定される。
S210では、例えば図14に例示されるようなコマンドがコントローラ200からNAND型フラッシュメモリ100に送られる。ただし、S210では、S205の処理によって補正された後の各種判定電圧が、V1〜V3として設定される。
S208またはS210の処理によって、各メモリセルに保持されるデータからなるリードデータがコントローラ200に送られる。
ECC回路206は、リードデータに含まれるエラービットの検出と訂正とを実行する(S211)。CPU203は、エラーの訂正が成功したか否かを判定する(S212)。例えば、ECC回路206は、エラーの訂正の成否をCPU203に通知する。CPU203は、エラーの生成に成功したか否かをECC回路206からの通知に基づいて判定する。
エラーの訂正が成功した場合(S212、Yes)、リード処理時の動作が完了する。
エラーの訂正が失敗した場合(S212、No)、CPU203は、リトライリードを実行するか否かを判定する(S213)。
リトライリードは、判定電圧を変更してリード処理を再び実行する処理である。リトライリードでは、少なくとも、S205の処理によって補正された判定電圧と異なる判定電圧が使用される。CPU203は、変更された判定電圧をアクセス回路130に使用させてリード処理を実行させる。
なお、判定電圧の変更方法は、特定の方法に限定されない。また、リトライリードを実行するか否かの判定方法は、特定の方法に限定されない。
一例では、全種類の判定電圧からなるセットが、複数パターン、予め用意されている。CPU203は、エラーの訂正に成功するまで、リトライリードを繰り返す。CPU203は、リトライリード毎に、複数のパターンのそれぞれを順番に適用する。S213の処理では、未適用のパターンが残っている場合、CPU203は、リトライリードを実行する、と判定する。未適用のパターンが残っていない場合、CPU203は、リトライリードを実行しない、と判定する。
別の例では、CPU203は、NAND型フラッシュメモリ100に、ディストリビューションリードを実行する。ディストリビューションリードとは、選択されたワード線に印可する電圧を所定の刻み幅ごとにシフトさせながら当該選択されたワード線に接続された、オン状態のメモリセルの数またはオフ状態のメモリセルの数を観測することによって、メモリセルのしきい値電圧の分布を測定する動作をいう。CPU203は、ディストリビューションリードによって得られたメモリセルのしきい値電圧の分布に基づいて、必要な種類の最適判定電圧を決定する。そして、CPU203は、決定された最適判定電圧を適用してリード処理を再び実行する。S213の処理では、最適判定電圧を適用したリード処理が未実行である場合、CPU203は、リトライリードを実行する、と判定する。最適判定電圧を適用したリード処理が実行済みである場合、CPU203は、リトライリードを実行しない、と判定する。
リトライリードを実行すると判定された場合(S213、Yes)、CPU203は、リード対象のページに対応した複数種類の判定電圧のうちの一部または全部を変更する(S214)。例えば、CPU203は、未適用のパターンのうちの1つを、変更後の判定電圧とする。または、CPU203は、ディストリビューションリードを実行し、得られた最適判定電圧を変更後の判定電圧とする。S214の処理の後、S206の処理が実行される。
リトライリードを実行しないと判定された場合(S213、No)、CPU203は、訂正失敗に関する処理を実行し(S215)、リード処理時の動作が完了する。
なお、訂正失敗に関する処理は、特定の処理に限定されない。一例では、CPU203は、ホスト機器300に訂正不能なエラーの発生を通知してもよい。別の例では、コントローラ200がECC回路206のほかにECC回路206よりもさらに強力な訂正能力を有するエラー訂正機能を有し、CPU203は、当該エラー訂正機能を用いてエラーの訂正を試みてもよい。
以上述べたように、第1の実施形態によれば、コントローラ200は、プログラム動作を実行し(S101〜S103)、その後、第1リード動作を実行する(S201〜S215)。プログラム動作では、コントローラ200は、プログラム処理を実行し(S101)、プログラム処理時の温度を測定し(S102)、測定された温度を記憶する(S103)。第1リード動作では、コントローラ200は、温度センサを用いて温度を測定し(S201)、プログラム動作時の温度と第1リード動作時の温度との差分を演算し(S202)、補正前の判定電圧を取得し(S203)、取得した判定電圧を差分に応じて補正し(S204、S205)、アクセス回路130に、補正された判定電圧としきい値電圧との比較に基づいてしきい値電圧に対応したデータを取得させる(S206〜S210)。
この構成により、使用時の温度に起因したしきい値電圧の変化に応じてリード処理時の判定電圧が補正されるので、リードデータに含まれるエラービットの数を低減することが可能である。
また、コントローラ200は、第1リード動作において、補正された判定電圧の符号が負であるか否かを判定し(S206)、補正された判定電圧の符号が負である場合、アクセス回路130にソース線SLの電位を所定値だけバイアスさせ(S208)、補正された判定電圧の符号が負ではない場合、アクセス回路130にソース線SLの電位をバイアスさせない(S210)。
この構成により、補正された判定電圧の符号が負である場合であっても、アクセス回路130に、見かけ上、負の値の判定電圧を使用してデータを判定させることができる。よって、最適判定電圧の符号が負である場合において、その最適判定電圧に近い判定電圧を適用することが可能となるので、負の値を判定電圧として適用できない通常モードと比べて、リードデータに含まれるエラービットの数を低減することが可能である。
なお、以上の説明においては、補正された判定電圧の符号が負であるか否か、即ち補正された判定電圧がゼロを超えるかゼロを下回るかによって、ネガティブセンシングモードを使用するか否かが決定された。ネガティブセンシングモードを使用するか否かのしきい値はゼロでなくてもよい。例えば、設定可能な最低ワードライン電位VCG_minがゼロと異なる場合、VCG_minをしきい値として使用してネガティブセンシングモードを使用するか否かが決定されてもよい。
なお、メモリシステム1は、リードデータに含まれるエラーの検出および訂正を実行するECC回路206をさらに備える。コントローラ200は、ECC回路206がエラーの訂正に失敗した場合(S212、No)、1回以上のリトライリードを実行する(S213、S214)。各リトライリードは、アクセス回路130に使用させる判定電圧を変更してデータの取得をリトライさせる動作である。
第1の実施形態では、第1リード動作において、まず、使用温度に起因したしきい値電圧の変化に応じてリード処理時の判定電圧が補正されることによって、リードデータに含まれるエラービットの数を低減することができるので、ECC回路206がエラーの訂正に失敗する機会を低減することができる。よって、リトライリードを実行する機会が低減され、ひいては、リードレイテンシが短縮される。また、リトライリードを実行する回数が低減されることでNANDフラッシュメモリの読み出しストレスが減少するため、メモリシステム1の信頼性が改善される。
(第2の実施形態)
第2の実施形態のメモリシステム1のハードウェア構成は、第1の実施形態と同じである。よって、第2の実施形態のメモリシステム1のハードウェア的な構成要素については、第1の実施形態と同じ符号および名称を用いて説明する。
第2の実施形態のメモリシステム1のハードウェア構成は、第1の実施形態と同じである。よって、第2の実施形態のメモリシステム1のハードウェア的な構成要素については、第1の実施形態と同じ符号および名称を用いて説明する。
第2の実施形態では、第1のリード処理時の温度(Tr1と表記する)と第2のリード処理時の温度(Tr2と表記する)との差分(以降、一例としてTr2−Tr1)に応じて判定電圧が補正される。なお、第2のリード処理は、第1のリード処理よりも後に実行されるリード処理である。
具体的には、CPU203は、第1のリード処理の後、第1のリード処理において使用された判定電圧と温度Tr1との関係を学習する。第2のリード処理時には、CPU203は、温度Tr1と温度Tr2との差分(Tr2−Tr1)に応じた補正が適用された判定電圧を、学習された結果と第2のリード処理時の温度Tr2とに基づいて取得する。
第1のリード処理によって使用された判定電圧とは、読み出されたデータに含まれていたエラーの訂正に成功した場合に使用された判定電圧である。
学習とは、ここでは一例として、第1のリード処理において使用された判定電圧を、温度Tr1と所定の基準温度(Tbaseと表記する)との差分(以降、一例としてTbase−Tr1)に応じて補正し、補正によって得られた電圧(基準電圧)を記憶することである。基準電圧は、学習情報223に記録されることによって記憶される。
図16は、第2の実施形態の学習情報223の構成の一例を示す図である。本図に示される例によれば、学習情報223には、ブロックBLK毎に全種類の判定電圧(Vra〜Vrg)について基準電圧が記録されている。なお、学習情報223は、任意の単位領域毎に基準電圧が記録され得る。単位領域は、決まったサイズを有する記憶領域であり、例えば、NAND型フラッシュメモリ100、NANDフラッシュメモリ100内の個別チップ、ブロックBLK、ストリングユニットSU、ワード線WL、または複数のワード線WLのグループである。
なお、学習の方法は上記した方法に限定されない。例えば、学習では、第1のリード処理において使用された判定電圧と温度Tr1との対が記憶されてもよい。
また、学習情報223は、温度情報222と同様に、電源断時までにNAND型フラッシュメモリ100に保存され、起動時にRAM202にロードされてもよい。
図17は、第2の実施形態のメモリシステム1に保持される各種データを説明する図である。
NAND型フラッシュメモリ100には、第1の実施形態と同様に、ユーザデータ140およびファームウェアプログラム141が格納される。
RAM202には、判定電圧情報220、補正アルゴリズム221、および前述した学習情報223が格納される。
CPU203は、補正アルゴリズム221を用いることによって、第1のリード処理において使用された判定電圧を基準電圧に変換する。
具体的には、CPU203は、基準温度Tbaseと温度Tr1との差分(Tbase−Tr1)を演算する。そして、CPU203は、温度差Tdifが(Tbase−Tr1)である場合のしきい値電圧の変化Vdifの値(補正量Vcor1)を取得する。そして、CPU203は、第1のリード処理において使用された判定電圧に補正量Vcor1を加算することによって、基準電圧を取得する。
また、CPU203は、補正アルゴリズム221と温度Tr2とに基づいて、第2のリード処理において使用される判定電圧を演算する。
具体的には、CPU203は、温度Tr2と基準温度Tbaseとの差分(Tr2−Tbase)を演算する。そして、CPU203は、温度差Tdifが(Tr2−Tbase)である場合のしきい値電圧の変化Vdifの値(補正量Vcor2)を取得する。そして、CPU203は、基準電圧に補正量Vcor2を加算することによって、第2のリード処理において使用される判定電圧を取得する。
つまり、第1のリード処理によって使用された判定電圧が温度Tr1と温度Tbaseとの温度差に応じて補正されることによって基準電圧が得られ、基準電圧が温度Tbaseと温度Tr2との温度差に応じて補正されることによって第2のリード処理によって使用される判定電圧が得られる。よって、第2のリード処理によって使用される判定電圧は、第1のリード処理によって使用された判定電圧が温度Tr1と温度Tr2との温度差に応じて補正されることによって得られる電圧と等しい。
以降、第1のリード処理を含むメモリシステム1の一連の動作を、第1リード動作と表記する。また、第2のリード処理を含むメモリシステム1の一連の動作を、第2リード動作と表記する。第2リード動作は、第1リード動作の後、第1リード動作の対象となった単位領域に対して実行される。
図18は、第2の実施形態のメモリシステム1の第1リード動作を説明するフローチャートである。本図の説明において、対象とは、第1リード動作の対象をいう。
まず、CPU203は、対象のブロックBLKを含むNAND型フラッシュメモリ100の温度Tr1を測定する(S301)。そして、CPU203は、判定電圧情報220から判定電圧を取得する(S302)。CPU203は、対象のページの種類に応じた複数種類の判定電圧を取得する。
その後、S303〜S308の処理によって、S207〜S211と同様の手順で、ネガティブセンシングモードまたは通常モードを使用したデータのリードと、リードされたデータに含まれるエラーの検出と訂正とが実行される。
そして、CPU203は、エラーの訂正が成功したか否かを判定する(S309)。エラーの訂正が失敗した場合(S309、No)、S310〜S312において、S213〜S215と同様の処理が実行され得る。なお、S311の処理の後、S303の処理が実行される。
エラーの訂正が成功した場合(S309、Yes)、CPU203は、温度Tr1と基準温度Tbaseとの差分(Tbase−Tr1)を演算する(S313)。そして、CPU203は、差分(Tbase−Tr1)と補正アルゴリズム221とに基づいて補正量Vcor1を取得する(S314)。そして、CPU203は、エラーの訂正に成功したデータを取得した際に使用された判定電圧を補正量Vcor1を用いて補正することで基準電圧を決定する(S315)。CPU203は、得られた基準電圧を対象のブロックBLKに関連付けて学習情報223に記録する(S316)。S316の処理によって、第1のリード処理が完了する。
なお、CPU203は、S314〜S316の処理を、リード対象のページに対応する複数種類の判定電圧のそれぞれに対して実行する。
図19は、第2の実施形態のメモリシステム1の第2リード動作を説明するフローチャートである。本図の説明において、対象とは、第2リード動作の対象をいう。第2リード動作の対象は、第1リード動作が実行された単位領域(ここではブロックBLK)が該当する。
まず、CPU203は、対象のブロックBLKを含むNAND型フラッシュメモリ100の温度Tr2を測定する(S401)。そして、CPU203は、基準温度Tbaseと温度Tr2との差分(Tr2−Tbase)を演算する(S402)。
そして、CPU203は、学習情報223から対象のブロックBLKに関連付けられた基準電圧を取得する(S403)。そして、CPU203は、差分(Tr2−Tbase)と補正アルゴリズム221とに基づいて補正量Vcor2を取得する(S404)。そして、CPU203は、基準電圧を補正量Vcor2を用いて補正することで判定電圧を演算する(S405)。
なお、CPU203は、S403〜S405の処理を、リード対象のページに対応する複数種類の判定電圧のそれぞれに対して実行する。
その後、S406〜S415において、S206〜S215と同じ処理が実行され得る。
このように、第2の実施形態においては、コントローラ200は、第1リード動作を実行し(S301〜S316)、その後、第2リード動作を実行する(S401〜S415)。第1リード動作では、コントローラ200は、温度センサ210を用いて温度を測定し(S301)、判定電圧を取得し(S302、S311)、アクセス回路130に、しきい値電圧と判定電圧との比較に基づいてしきい値電圧に対応したデータを取得させる(S303〜S309)。ここで、第1リード動作では、コントローラ200は、データの取得に使用された判定電圧と、測定された温度と、の関係を学習する(S313〜S316)。第2リード動作では、コントローラ200は、温度センサ210を用いて温度を測定し(S401)、測定された温度と基準温度との差分に応じて補正された判定電圧を、第1リード動作での学習の結果と第2リード動作にて測定された温度とに基づいて取得し(S402〜S405)、アクセス回路130に、取得された判定電圧を用いてデータを取得させる(S406〜S410)。
この構成により、温度に起因したしきい値電圧の変化に応じてリード処理時の判定電圧が補正されるので、温度に起因したしきい値電圧の変化に応じてリード処理時の判定電圧が補正されない場合に比べて、リードデータに含まれるエラービットの数を低減することが可能である。
また、第2リード動作において、コントローラ200は、取得された判定電圧の符号が負であるか否かを判定し(S406)、補正された判定電圧の符号が負である場合、アクセス回路130にソース線SLの電位を所定値だけバイアスさせ(S408)、補正された判定電圧の符号が負ではない場合、アクセス回路130にソース線SLの電位をバイアスさせない(S410)。
この構成により、第1の実施形態と同様に、アクセス回路130にソース線SLの電位をバイアスできない場合に比べて、補正された判定電圧の符号が負である場合におけるリードデータに含まれるエラービットの数を低減することが可能である。
なお、第2の実施形態においては、第1のリード処理および第2のリード処理において、ネガティブセンシングモードを使用するか否かの判断のためのしきい値としてゼロを使用した。第1の実施形態と同様、ネガティブセンシングモードを使用するか否かの判断のためのしきい値はゼロ以外の値であってもよい。
また、第1リード動作において、コントローラ200は、リードデータに含まれるエラーの訂正に失敗した場合(S309、No)、1回以上のリトライリードを実行することができる(S310、S311)。コントローラ200は、エラーの訂正に成功した場合に使用された判定電圧を用いて学習を実行する(S309、Yes、S313〜S316)。
このように、エラーの訂正に成功した場合に判定電圧と温度との関係が学習され、学習された結果が第2リード動作において温度に応じた補正の基準として使用される。前述の通り、これらの補正値および補正された判定電圧はNANDフラッシュメモリ100の使用履歴に依存するため、上記第2リード動作では学習情報を使用することにより、NANDフラッシュメモリの使用履歴に逐次対応するようリード電圧が補正されることになる。よって、第2リード動作においてリードデータに含まれるエラービットの数を大きく低減することが可能となる。
また、第1リード動作において、コントローラ200は、第1リード動作時の温度と予め設定された基準温度との差分を演算し(S313)、エラーの訂正に成功した場合に使用された判定電圧を当該差分に応じて補正し(S314、S315)、得られた電圧(基準電圧)を学習の結果として学習情報223に記録する。
なお、コントローラ200は、学習情報223に判定電圧(エラーの訂正に成功した場合に使用された判定電圧)と温度(第1リード動作時の温度の測定値)との対を記録してもよい。しかしながら、学習情報223に判定電圧と温度との対が記録される場合、学習情報223に基準電圧のみが記録される場合に比べて、学習情報223のサイズが大きくなる。即ち、コントローラ200が学習情報223に基準電圧を学習の結果として記録することによって、学習情報223のサイズを低減することが可能である。
なお、学習情報223に判定電圧と温度との対が記録される場合、コントローラ200は、第2リード動作においては、学習情報223に記録された温度と第2リード動作時の温度との差分に基づいて学習情報223に記録された判定電圧を補正するように構成されればよい。
また、以上の説明では、第1リード動作のフロー(図18)と第2リード動作のフロー(図19)とをわけて説明した。第1リード動作と第2リード動作とは、1つのフローとして実現され得る。例えば、コントローラ200は、リード処理が開始すると、対象のブロックBLKにかかる学習値の有無を調べ、当該学習値が記録されていない場合には第1リード動作を実行し、当該学習値が記録されている場合には第2リード動作を実行する。
(第3の実施形態)
第1の実施形態と第2の実施形態とは組み合わせて適用され得る。
第1の実施形態と第2の実施形態とは組み合わせて適用され得る。
例えば、メモリシステム1は、リードデータに含まれるエラーの訂正に成功した後(S212、Yes)、S313〜S316の処理を実行する。これによって、メモリシステム1は、プログラム処理後のリード処理において、当該プログラム処理時と当該リード処理時との温度差に応じた補正を行うとともに、当該リード処理時に使用された判定電圧と当該リード処理時の温度との関係を学習することができる。そして、その後のリード処理において、メモリシステム1は、第2の実施形態の第2リード動作を実行する。
この構成により、第1の実施形態の効果と第2の実施形態の効果とを得ることが可能となる。
また、第2の実施形態では、メモリシステム1は、第2リード動作において、リードデータに含まれるエラーの訂正に成功した後(S412、Yes)、S313〜S316の動作を実行してもよい。よって、メモリシステム1は、第2リード動作を実行する毎に学習の結果を更新することができ、ひいては、繰り返し実行されるリード動作のそれぞれにおいて第2の実施形態の効果を得ることが可能となる。
また、第1の実施形態のリード処理、第2の実施形態の第1リード動作、および第2の実施形態の第2リード動作は、ホスト機器300からのリード要求に応じて実行されてもよいし、パトロールリードにおいて実行されてもよい。
パトロールリードとは、メモリセルに保持されるデータの健全性を確認するためにバックグラウンドで実行されるリード処理である。パトロールリードは、例えば全てのブロックBLKまたはサンプリングされた一部のブロックBLKに対して定期的に実行される。パトロールリードにおいては、コントローラ200は、実際にリード処理を行って、リードデータに含まれるエラーの検出および訂正を実行する。そして、コントローラ200は、エラーの検出および訂正の結果から、データの健全性を判定する。コントローラ200は、例えば、ECC回路206によるエラーの訂正に失敗した場合、リードされたブロックBLKをリフレッシュの対象に設定する。リフレッシュとは、プログラム処理を再実行することによって、ステート毎のメモリセルのしきい値電圧の分布を互いに重ならない状態に近づける処理である。
コントローラ200は、パトロールリードの対象として選択したブロックBLKに対し、第1の実施形態のリード処理、第2の実施形態の第1リード動作、または第2の実施形態の第2リード動作を実行してもよい。また、コントローラ200は、ホスト機器300からのリード要求に応じたリード処理やパトロールリードにおけるリード処理の他に、任意のリード処理において第1の実施形態のリード処理、第2の実施形態の第1リード動作、および第2の実施形態の第2リード動作のうちの任意の動作を実行してもよい。
また、第1の実施形態および第2の実施形態では、温度センサ210はNAND型フラッシュメモリ100の外に具備されることとした。前述したように、温度センサ210はNAND型フラッシュメモリ100に内蔵されてもよい。その場合には、例えばS102、S201、S301、S401などにおいて、CPU203は、NAND型フラッシュメモリ100に温度データを取得するためのコマンドを送信すればよい。
図20は、温度データを取得するためのコマンドシーケンスの一例である。本図において、EEhとXXhとの組み合わせは、温度データの出力を要求するコマンドを構成する。
アクセス回路130は、温度データの出力を要求するコマンドを受理すると、レディ/ビジー信号RBnをビジー状態にして自身が備える温度センサ210から温度検出値を取得する。アクセス回路130は、温度検出値の取得を完了すると、レディ/ビジー信号RBnをレディー状態にして、取得した温度検出値を温度データとして取得する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、100 NAND型フラッシュメモリ、111 メモリセルアレイ、130 アクセス回路、200 コントローラ、202 RAM、203 CPU、206 ECC回路、210 温度センサ、220 判定電圧情報、221 補正アルゴリズム、222 温度情報、223 学習情報、300 ホスト機器。
Claims (14)
- メモリセルトランジスタと前記メモリセルトランジスタのしきい値電圧を制御するアクセス回路とを備える不揮発性の第1メモリと、
温度センサと、
前記第1メモリに対し、プログラム動作を実行し、前記プログラム動作の後、第1リード動作を実行するコントローラと、
を備え、
前記プログラム動作は、前記温度センサを用いて温度を測定し、測定された前記温度である第1温度を記憶し、前記アクセス回路に前記しきい値電圧を第1データに対応した値に設定させる動作であり、
前記第1リード動作は、前記温度センサを用いて温度を測定し、測定された前記温度である第2温度と前記第1温度との差分を演算し、第1判定電圧を取得し、前記第1判定電圧を前記差分に応じて補正し、前記アクセス回路に前記しきい値電圧と補正された前記第1判定電圧である第2判定電圧との比較に基づいて前記しきい値電圧に対応した第2データを取得させる動作である、
メモリシステム。 - 前記第1リード動作において、前記コントローラは、前記第2判定電圧と第1値とを比較し、前記第2判定電圧が前記第1値より低い場合、前記アクセス回路に前記メモリセルトランジスタのソース線の電位を所定値だけバイアスさせ、前記第2判定電圧が前記第1値より高い場合、前記アクセス回路に前記ソース線の電位をバイアスさせない、
請求項1に記載のメモリシステム。 - 前記第2データに含まれるエラーの検出および訂正を実行するECC回路をさらに備え、
前記コントローラは、前記ECC回路が前記訂正に失敗した場合、リトライリードを実行し、
前記リトライリードは、前記アクセス回路に前記第2判定電圧と異なる第3判定電圧を使用させて前記第2データの取得をリトライさせる動作である、
請求項1に記載のメモリシステム。 - 学習情報が格納される第2メモリをさらに備え、
前記コントローラは、前記ECC回路が前記訂正に成功した場合、第4判定電圧と前記第2温度との関係を学習し、学習の結果を前記学習情報に記録し、
前記第4判定電圧は、前記ECC回路が前記訂正に成功した場合の前記第2判定電圧または前記第3判定電圧である、
請求項3に記載のメモリシステム。 - 前記コントローラは、前記第1リード動作の後、第2リード動作を実行し、
前記第2リード動作は、前記温度センサを用いて温度を測定し、測定された前記温度である第3温度と前記学習情報とに基づいて第5判定電圧を決定し、前記アクセス回路に前記第5判定電圧を使用させて前記しきい値電圧に対応した第3データを取得させる動作である、
請求項4に記載のメモリシステム。 - 前記コントローラは、前記第2温度と予め設定された第4温度との差分を演算し、前記第4判定電圧を前記差分に応じて補正し、補正された前記第4判定電圧である第6判定電圧を前記学習情報に記録する、
請求項5に記載のメモリシステム。 - 前記第2リード動作において、前記コントローラは、前記第3温度と前記第4温度との差分を演算し、前記第6判定電圧を前記差分に応じて補正することによって前記第5判定電圧を決定する、
請求項6に記載のメモリシステム。 - 前記第1値は、ゼロである、
請求項2に記載のメモリシステム。 - メモリセルトランジスタと前記メモリセルトランジスタのしきい値電圧を制御するアクセス回路とを備える不揮発性の第1メモリと、
温度センサと、
前記第1メモリに対し、第1リード動作を実行し、前記第1リード動作の後、第2リード動作を実行するコントローラと、
を備え、
前記第1リード動作は、前記温度センサを用いて温度を測定し、第1判定電圧を決定し、前記アクセス回路に前記しきい値電圧と前記第1判定電圧との比較に基づいて前記しきい値電圧に対応した第1データを取得させ、前記第1判定電圧と測定された前記温度である第1温度との関係を学習する動作であり、
前記第2リード動作は、前記温度センサを用いて温度を測定し、測定された前記温度である第2温度と前記第1温度との差分に応じて補正された前記第1判定電圧である第2判定電圧を前記第1リード動作での学習の結果と前記第2温度とに基づいて決定し、前記アクセス回路に前記しきい値電圧と前記第2判定電圧との比較に基づいて前記しきい値電圧に対応した第2データを取得させる動作である、
メモリシステム。 - 前記コントローラは、前記第2リード動作において、前記第2判定電圧と第1値とを比較し、前記第2判定電圧が前記第1値より低い場合、前記アクセス回路に前記メモリセルトランジスタのソース線の電位を所定値だけバイアスさせ、前記第2判定電圧が前記第1値より高い場合、前記アクセス回路に前記ソース線の電位をバイアスさせない、
請求項9に記載のメモリシステム。 - 前記第1データに含まれるエラーの検出および訂正を実行するECC回路をさらに備え、
前記第1リード動作において、前記コントローラは、前記アクセス回路に第3判定電圧を使用させて前記第1データを取得させ、前記ECC回路が前記訂正に失敗した場合、リトライリードを実行し、前記リトライリードは、前記アクセス回路に前記第3判定電圧と異なる第4判定電圧を使用させて前記第1データの取得をリトライさせる動作であり、
前記第1判定電圧は、前記ECC回路が前記訂正に成功した場合の前記第3判定電圧または前記第4判定電圧である、
請求項9に記載のメモリシステム。 - 学習情報が格納される第2メモリをさらに備え、
前記第1リード動作において、前記コントローラは、前記第1温度と予め設定された第3温度との差分を演算し、前記第1判定電圧を前記差分に応じて補正し、補正された前記第1判定電圧である第5判定電圧を、前記学習の結果として前記学習情報に記録する、
請求項11に記載のメモリシステム。 - 前記第2リード動作において、前記コントローラは、前記第2温度と前記第3温度との差分を演算し、前記第5判定電圧を前記差分に応じて補正することによって前記第2判定電圧を取得する、
請求項12に記載のメモリシステム。 - 前記第1値は、ゼロである、
請求項10に記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051604A JP2019164858A (ja) | 2018-03-19 | 2018-03-19 | メモリシステム |
US16/278,764 US10740101B2 (en) | 2018-03-19 | 2019-02-19 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018051604A JP2019164858A (ja) | 2018-03-19 | 2018-03-19 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019164858A true JP2019164858A (ja) | 2019-09-26 |
Family
ID=67904536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018051604A Pending JP2019164858A (ja) | 2018-03-19 | 2018-03-19 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10740101B2 (ja) |
JP (1) | JP2019164858A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102116983B1 (ko) * | 2013-08-14 | 2020-05-29 | 삼성전자 주식회사 | 메모리 장치 및 메모리 시스템의 동작 방법. |
CN110246533B (zh) * | 2018-03-09 | 2020-11-13 | 建兴储存科技(广州)有限公司 | 固态储存装置的失败模式检测方法及错误更正方法 |
KR102531995B1 (ko) * | 2018-03-29 | 2023-05-15 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 이를 포함하는 저장 장치 및 메모리 컨트롤러의 동작 방법 |
CN110806957A (zh) * | 2019-10-10 | 2020-02-18 | 鸿秦(北京)科技有限公司 | 一种降低固态盘高温误码率的方法 |
KR20210062364A (ko) * | 2019-11-21 | 2021-05-31 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것의 동작 방법 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5142692B2 (ja) | 2007-12-11 | 2013-02-13 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2009238874A (ja) | 2008-03-26 | 2009-10-15 | Toshiba Corp | 半導体メモリ及びその製造方法 |
JP5283960B2 (ja) | 2008-04-23 | 2013-09-04 | 株式会社東芝 | 三次元積層不揮発性半導体メモリ |
JP2009266944A (ja) | 2008-04-23 | 2009-11-12 | Toshiba Corp | 三次元積層不揮発性半導体メモリ |
JP2010199235A (ja) | 2009-02-24 | 2010-09-09 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2011028827A (ja) | 2009-06-25 | 2011-02-10 | Toshiba Corp | 半導体記憶装置 |
US8213255B2 (en) * | 2010-02-19 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile storage with temperature compensation based on neighbor state information |
JP2012069205A (ja) | 2010-09-22 | 2012-04-05 | Toshiba Corp | 不揮発性半導体記憶装置 |
DE102011056141A1 (de) | 2010-12-20 | 2012-06-21 | Samsung Electronics Co., Ltd. | Negativspannungsgenerator, Dekoder, nicht-flüchtige Speichervorrichtung und Speichersystem, das eine negative Spannung verwendet |
US8472274B2 (en) * | 2011-03-02 | 2013-06-25 | Apple Inc. | Using temperature sensors with a memory device |
JP2012252740A (ja) | 2011-06-02 | 2012-12-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8514646B1 (en) * | 2012-05-09 | 2013-08-20 | Storart Technology Co. Ltd. | Method for improving performance when flash memory storage device works in wide temperature range |
US9543028B2 (en) | 2014-09-19 | 2017-01-10 | Sandisk Technologies Llc | Word line dependent temperature compensation scheme during sensing to counteract cross-temperature effect |
KR20160073868A (ko) * | 2014-12-17 | 2016-06-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10446242B2 (en) * | 2016-05-27 | 2019-10-15 | Western Digital Technologies, Inc. | Temperature variation compensation |
US10564900B2 (en) * | 2016-03-04 | 2020-02-18 | Western Digital Technologies, Inc. | Temperature variation compensation |
US9996281B2 (en) * | 2016-03-04 | 2018-06-12 | Western Digital Technologies, Inc. | Temperature variation compensation |
US10373656B2 (en) * | 2016-09-26 | 2019-08-06 | Toshiba Memory Corporation | Memory system that carries out temperature-based access to a memory chip |
US10535383B2 (en) * | 2018-02-28 | 2020-01-14 | Sandisk Technologies Llc | Throughput performance for cross temperature handling scenarios |
US20190043567A1 (en) * | 2018-08-28 | 2019-02-07 | Intel Corporation | Temperature-dependent read operation time adjustment in non-volatile memory devices |
-
2018
- 2018-03-19 JP JP2018051604A patent/JP2019164858A/ja active Pending
-
2019
- 2019-02-19 US US16/278,764 patent/US10740101B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10740101B2 (en) | 2020-08-11 |
US20190286442A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240021250A1 (en) | Memory system | |
US10957397B2 (en) | Non-volatile memory device, storage device, and programming method thereof for performing an erase detect operation | |
JP2019164858A (ja) | メモリシステム | |
US9627077B2 (en) | Semiconductor memory device storing management data redundantly in different pages | |
US7525839B2 (en) | Semiconductor memory device capable of correcting a read level properly | |
US9230670B2 (en) | Semiconductor device, memory system and operating method thereof | |
US10496474B2 (en) | Semiconductor storage device and memory system having the same | |
JP2019149219A (ja) | メモリシステム | |
US10719396B2 (en) | Memory system | |
TWI579852B (zh) | Memory system and controller | |
JP2021044043A (ja) | メモリシステム | |
JP2018045744A (ja) | メモリシステムおよび方法 | |
JP2019053806A (ja) | メモリシステム、及びメモリシステムの制御方法 | |
KR20150107575A (ko) | 반도체 기억장치 및 nand 플래시 메모리의 프로그램 방법 | |
CN110660436B (zh) | 半导体存储装置及存储器控制器 | |
US11017837B2 (en) | Memory system | |
KR101651573B1 (ko) | 반도체 기억장치 및 그 프로그래밍 방법 | |
US11594289B2 (en) | Semiconductor device, memory system and semiconductor memory device | |
JP2024043775A (ja) | メモリシステム | |
TW202234394A (zh) | 半導體記憶裝置 | |
JP2020102295A (ja) | メモリシステムおよび不揮発性メモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180905 |