JP2022051363A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2022051363A JP2022051363A JP2020157798A JP2020157798A JP2022051363A JP 2022051363 A JP2022051363 A JP 2022051363A JP 2020157798 A JP2020157798 A JP 2020157798A JP 2020157798 A JP2020157798 A JP 2020157798A JP 2022051363 A JP2022051363 A JP 2022051363A
- Authority
- JP
- Japan
- Prior art keywords
- temperature
- memory
- memory system
- threshold value
- group
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40626—Temperature related aspects of refresh operations
-
- 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
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- 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/5628—Programming or writing circuits; Data input 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/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/08—Address circuits; Decoders; Word-line control 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/10—Programming or data input 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/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/32—Timing 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/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
-
- 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
- Soundproofing, Sound Blocking, And Sound Damping (AREA)
- Vehicle Body Suspensions (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】データの信頼性の悪化を抑制する。【解決手段】一実施形態のメモリシステムは、各々が複数のメモリセルを含む複数のグループを含む不揮発性メモリと、メモリコントローラと、を備える。メモリコントローラは、第1グループへの書込み処理における第1温度と、第1グループへの書込み処理の後における第2温度と、が条件を満たす場合、第1グループに対するリフレッシュ処理を実行するように構成される。【選択図】図8
Description
実施形態は、メモリシステムに関する。
半導体記憶装置としてのNAND型フラッシュメモリと、半導体記憶装置を制御するメモリコントローラと、を含むメモリシステムが知られている。
データの信頼性の悪化を抑制する。
実施形態のメモリシステムは、各々が複数のメモリセルを含む複数のグループを含む不揮発性メモリと、メモリコントローラと、を備える。上記メモリコントローラは、第1グループへの書込み処理における第1温度と、上記第1グループへの書込み処理の後における第2温度と、が条件を満たす場合、上記第1グループに対するリフレッシュ処理を実行するように構成される。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。
第1実施形態に係るメモリシステムについて説明する。
1.1 構成
第1実施形態について説明する。以下では、不揮発性メモリとしてNAND型フラッシュメモリを含むメモリシステムについて説明する。
第1実施形態について説明する。以下では、不揮発性メモリとしてNAND型フラッシュメモリを含むメモリシステムについて説明する。
1.1.1 メモリシステム
まず、メモリシステムを含む構成について、図1を用いて説明する。
まず、メモリシステムを含む構成について、図1を用いて説明する。
図1に示すように、メモリシステム1は、外部のホスト機器2に接続され、ホスト機器2からの命令に応じて各種動作を実行し得る。また、メモリシステム1は、不揮発性メモリ10、揮発性メモリ20、及びメモリコントローラ30を含む。不揮発性メモリ10、揮発性メモリ20、及びメモリコントローラ30は、例えばそれらの組み合わせにより一つの半導体装置を構成してもよく、その例としてはSDTMカードのようなメモリカードや、UFS(universal flash storage)、SSD(solid state drive)等が挙げられる。
不揮発性メモリ10(以下、NANDフラッシュメモリ10)は、例えば、各々が複数のメモリセルを含む複数のチップ10-0~10-Nを含む(Nは1以上の整数)。NANDフラッシュメモリ10は、ホスト機器2から書き込みを指示されたデータを不揮発に記憶する。また、NANDフラッシュメモリ10は、ホスト機器2から読み出しを指示されたデータを、メモリコントローラ30を介してホスト機器2に出力する。
揮発性メモリ20(以下、DRAM20)は、例えばDRAM(Dynamic random access memory)であり、NANDフラッシュメモリ10を管理するためのファームウェアや、各種の管理情報を記憶する。例えば、DRAM20は、NANDフラッシュメモリ10に記憶されたデータの信頼性の悪化の抑制に使用される情報として、温度管理情報21及びリフレッシュ予約情報22を記憶する。
温度管理情報21には、NANDフラッシュメモリ10にデータが書き込まれた記憶領域と、当該データが書き込まれた際の温度に関連する情報と、が対応づけて記憶される。
リフレッシュ予約情報22には、NANDフラッシュメモリ10内のデータが書き込まれた記憶領域のうち、リフレッシュ処理を実行すべき記憶領域のリストが記憶される。
リフレッシュ処理は、例えば、NANDフラッシュメモリ10内の或る記憶領域に書き込まれたデータを、後述するエラー訂正処理の実行後に新たな記憶領域に書き込むことにより、当該データを読み出した際にデータに含まれるエラーの数(エラービット数)を低減させる処理を含む。
メモリコントローラ30は、プロセッサ(CPU)31、バッファメモリ32、ホストインタフェース回路33、ECC回路34、NANDインタフェース回路35、及びDRAMインタフェース回路36を含む。なお、以下に説明されるメモリコントローラ30の各部31-36の機能は、ハードウェア構成、又はハードウェア資源とファームウェアとの組合せ構成のいずれでも実現可能である。
プロセッサ31は、ROM(Read only memory)に記憶されたプログラムをロードすることによってメモリコントローラ30全体の動作を制御する。例えば、プロセッサ31は、ホスト機器2から書込み要求を受信した際には、それに応答して、書込み処理を実行する。読出し処理及び消去処理の際も同様である。
バッファメモリ32は、例えばSRAM(Static random access memory)であり、メモリコントローラ30がNANDフラッシュメモリ10から読み出したデータや、ホスト機器2から受信した書込みデータ等を一時的に記憶する。
ホストインタフェース回路33は、ホストバスを介してホスト機器2と接続され、メモリコントローラ30とホスト機器2との間の通信を司る。ホストバスは、例えば、SDTMインタフェース、SAS(Serial attached SCSI(small computer system interface))、SATA(Serial ATA(advanced technology attachment))、又はPCIeTM(Peripheral component interconnect express)等に準拠したバスである。
ECC回路34は、NANDフラッシュメモリ10に記憶されるデータに関するエラー検出処理及びエラー訂正処理を行う。すなわちECC回路34は、データの書き込み時には誤り訂正符号を生成して、これを書込みデータに付与し、データの読出し処理時にはこれを復号し、エラービットの有無を検出する。そしてエラービットが検出された際には、そのエラービットのエラー位置を特定し、エラー訂正する。エラー訂正の方法は、例えば、硬判定復号(Hard decision decoding)及び軟判定復号(Soft decision decoding)を含む。硬判定復号に用いられる符号としては、例えば、BCH(Bose‐Chaudhuri‐Hocquenghem)符号やRS(Reed‐Solomon)符号等を用いることができ、軟判定復号に用いられる符号としては、例えば、LDPC(Low Density Parity Check)符号等を用いることができる。
NANDインタフェース回路35は、NANDバスによってNANDフラッシュメモリ10と接続され、NANDフラッシュメモリ10との通信を司る。NANDインタフェース回路35は、メモリコントローラ30とNANDフラッシュメモリ10と間におけるデータ、コマンド、及びアドレスの転送を制御し、NANDフラッシュメモリ10内の各チップ10-0~10-Nを独立に制御し得る。NANDインタフェース回路35は、NANDインタフェース規格に準拠する。
DRAMインタフェース回路36は、DRAM20に接続され、メモリコントローラ30とDRAM20との間の通信を司る。DRAMインタフェース回路36は、DRAMインタフェース規格に準拠する。
1.1.2 チップ
次に、NANDフラッシュメモリ10内のチップの構成について、図2を用いて説明する。図2では、チップ10-0内の構成が一例として示される。なお、チップ10-0以外のチップ10-1~10-Nは、チップ10-0と同等の構成を有するため、説明を省略する。
次に、NANDフラッシュメモリ10内のチップの構成について、図2を用いて説明する。図2では、チップ10-0内の構成が一例として示される。なお、チップ10-0以外のチップ10-1~10-Nは、チップ10-0と同等の構成を有するため、説明を省略する。
図2に示すように、チップ10-0は、例えば入出力回路11、レジスタセット12、ロジックコントローラ13、シーケンサ14、温度センサ15、電圧生成回路16、メモリセルアレイ17、ロウデコーダモジュール18、及びセンスアンプモジュール19を含む。
入出力回路11は、例えば8ビット幅の入出力信号I/O1~I/O8を、メモリコントローラ30との間で送受信する。入出力信号I/Oは、データDAT、ステータスSTS、アドレスADD、コマンドCMD等を含み得る。また、入出力回路11は、センスアンプモジュール19との間でデータDATを送受信する。
レジスタセット12は、ステータスレジスタ12A、アドレスレジスタ12B、及びコマンドレジスタ12Cを含む。ステータスレジスタ12A、アドレスレジスタ12B、及びコマンドレジスタ12Cは、それぞれステータスSTS、アドレスADD、及びコマンドCMDを記憶する。
ステータスSTSは、例えばシーケンサ14の動作状態に基づいて更新される。また、ステータスSTSは、メモリコントローラ30からの指示に基づいてステータスレジスタ12Aから入出力回路11に転送され、メモリコントローラ30に出力される。アドレスADDは、入出力回路11からアドレスレジスタ12Bに転送され、例えばチップアドレス、ブロックアドレス、ページアドレス、カラムアドレス等を含み得る。コマンドCMDは、入出力回路11からコマンドレジスタ12Cに転送され、チップ10-0の各種動作に関する命令を含む。
ロジックコントローラ13は、メモリコントローラ30から受信した制御信号に基づいて、入出力回路11及びシーケンサ14のそれぞれを制御する。このような制御信号としては、例えばチップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、リードイネーブル信号REn、及びライトプロテクト信号WPnが使用される。また、ロジックコントローラ13は、シーケンサ14から受信した制御信号をメモリコントローラ30に通知する。このような制御信号としては、例えばレディ/ビジー信号RBnが使用される。
チップイネーブル信号CEnは、チップ10-0をイネーブルにするための信号である。コマンドラッチイネーブル信号CLEは、受け取った入出力信号I/OがコマンドCMDであることを入出力回路11に通知するための信号である。アドレスラッチイネーブル信号ALEは、受け取った入出力信号I/OがアドレスADDであることを入出力回路11に通知するための信号である。ライトイネーブル信号WEnは、入出力信号I/Oの入力を入出力回路11に命令するための信号である。リードイネーブル信号REnは、入出力信号I/Oの出力を入出力回路11に命令するための信号である。ライトプロテクト信号WPnは、電源のオンオフ時にチップ10-0を保護状態にするための信号である。
レディ/ビジー信号RBnは、チップ10-0がレディ状態であるかビジー状態であるかを、メモリコントローラ30に通知するための信号である。なお、本明細書において“レディ状態”は、チップ10-0がメモリコントローラ30からの命令を受け付ける状態であることを示し、“ビジー状態”は、チップ10-0がメモリコントローラ30からの命令を受け付けない状態であることを示す。
シーケンサ14は、チップ10-0全体の動作を制御する。例えば、シーケンサ14は、コマンドレジスタ12Cに記憶されたコマンドCMDと、アドレスレジスタ12Bに記憶されたアドレスADDとに基づいて、読出し処理、書込み処理、消去処理等を実行する。シーケンサ14は、例えば、温度センサ15から取得した温度の情報をステータスSTSとしてステータスレジスタ12Aに記憶させ、入出力回路11を介してメモリコントローラ30に出力する。なお、温度は、ステータスSTSとしてではなく、ステータスSTS以外の情報としてメモリコントローラ30に出力されてもよい。
温度センサ15は、チップ10-0内に設けられ、例えばメモリセルアレイ17の温度を計測する。温度センサ15は、計測した温度の情報をシーケンサ14に送出する。なお、温度センサ15は、メモリセルアレイ17の温度を直接計測しなくてもよい。例えば、温度センサ15は、メモリセルアレイ17以外の箇所の温度を計測してもよい。この場合、メモリセルアレイ17の温度は、温度センサ15によって計測された温度に基づいてシーケンサ14によって推定され得る。
電圧生成回路16は、読出し処理、書込み処理、消去処理等で使用される電圧を生成する。そして、電圧生成回路16は、生成した電圧をメモリセルアレイ17、ロウデコーダモジュール18、及びセンスアンプモジュール19に供給する。
メモリセルアレイ17は、複数のプレーンPB(図2の例では2つのプレーンPB0及びPB1)を含む。複数のプレーンPBの各々は、複数のブロックBLK0~BLKn(nは1以上の整数)を含む。複数のプレーンPBは、互いに並列に動作可能である。ブロックBLKは、データを不揮発に記憶することが可能な複数のメモリセルトランジスタの集合であり、例えばデータの消去単位として使用される。各メモリセルトランジスタは、1本のビット線BLと1本のワード線WLとに関連付けられている。
ロウデコーダモジュール18は、ブロックアドレスに基づいて、各種処理を実行するブロックBLKを選択する。そして、ロウデコーダモジュール18は、電圧生成回路16から供給された電圧を、選択したブロックBLK内のワード線WL等に転送する。
センスアンプモジュール19は、読出し処理において、メモリセルアレイ17からデータを読み出し、当該読出しデータを入出力回路11に転送する。また、センスアンプモジュール19は、書込み処理において、入出力回路11から受け取ったデータに基づいて、ビット線BLに所定の電圧を印加する。
1.1.3 メモリセルアレイ
次に、第1実施形態に係る不揮発性メモリ内のチップに含まれるメモリセルアレイの構成について説明する。
次に、第1実施形態に係る不揮発性メモリ内のチップに含まれるメモリセルアレイの構成について説明する。
図3は、第1実施形態に係るメモリセルアレイの構成を示す回路図の一例である。図3では、メモリセルアレイ17のうち、1つのブロックBLKが抽出して示される。図3に示すように、ブロックBLKは、例えば4つのストリングユニットSU0~SU3を含む。
各ストリングユニットSUは、ビット線BL0~BLmにそれぞれ関連付けられた複数のNANDストリングNSを含む(mは、1以上の整数)。NANDストリングNSは、例えばメモリセルトランジスタMT0~MT7、並びに選択トランジスタST1及びST2を含む。
メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタST1及びST2のそれぞれは、各種処理時におけるストリングユニットSUの選択に使用される。
各NANDストリングNSにおいて、メモリセルトランジスタMT0~MT7は、直列接続される。直列接続されたメモリセルトランジスタMT0~MT7の一端と、関連付けられたビット線BLとの間には、選択トランジスタST1が接続される。直列接続されたメモリセルトランジスタMT0~MT7の他端には、選択トランジスタST2のドレインが接続される。選択トランジスタST2のソースには、ソース線CELSRCが接続される。
同一のブロックBLKにおいて、ストリングユニットSU0~SU3に含まれた複数の選択トランジスタST1の各々のゲートはそれぞれ、選択ゲート線SGD0~SGD3に共通接続される。複数のメモリセルトランジスタMT0~MT7の各々の制御ゲートはそれぞれ、ワード線WL0~WL7に共通接続される。複数の選択トランジスタST2の各々のゲートは、選択ゲート線SGSに共通接続される。
ビット線BL0~BLmは、複数のブロックBLK間で共有される。同じカラムアドレスに対応するNANDストリングNSには、同じビット線BLが接続される。ワード線WL0~WL7のそれぞれは、ブロックBLK毎に設けられる。ソース線CELSRCは、例えば複数のブロックBLK間で共有される。
1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合は、例えばセルユニットCUと称され、データの書込み単位として使用される。例えば、それぞれが1ビットデータを記憶するメモリセルトランジスタMTを含むセルユニットCUの記憶容量が、「1ページデータ」として定義される。1ページデータは、例えば、データの読出し単位として使用される。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて2ページデータ以上の記憶容量を有し得る。
なお、以上で説明したメモリセルアレイ17の回路構成はあくまで一例であり、これに限定されない。例えば、各ブロックBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタST1及びST2の各々の個数は、それぞれ任意の個数に設計され得る。
1.1.4 データの記憶方式
メモリシステム1は、例えば、いくつかの書込みモードを使用することが出来る。例えば、メモリシステム1は、SLC(Single-Level Cell)モード、MLC(Multi-Level Cell)モード、TLC(Triple-Level Cell)モード、又はQLC(Quadruple-Level Cell)モードを使用可能である。SLCモード、MLCモード、TLCモード、及びQLCモードは、1つのメモリセルトランジスタMTに対して、それぞれ1ビットデータ、2ビットデータ、3ビットデータ、及び4ビットデータを記憶させる書込みモードである。
メモリシステム1は、例えば、いくつかの書込みモードを使用することが出来る。例えば、メモリシステム1は、SLC(Single-Level Cell)モード、MLC(Multi-Level Cell)モード、TLC(Triple-Level Cell)モード、又はQLC(Quadruple-Level Cell)モードを使用可能である。SLCモード、MLCモード、TLCモード、及びQLCモードは、1つのメモリセルトランジスタMTに対して、それぞれ1ビットデータ、2ビットデータ、3ビットデータ、及び4ビットデータを記憶させる書込みモードである。
図4は、第1実施形態に係るメモリシステムにおけるメモリセルトランジスタMTの閾値電圧の分布の一例であり、SLCモード、MLCモード、TLCモード、及びQLCモードがそれぞれ使用された4種類の閾値電圧分布及び読出し電圧のグループを示している。なお、図4に示された閾値電圧分布において、縦軸はメモリセルトランジスタMTの個数(メモリセル数)に対応し、横軸はメモリセルトランジスタMTの閾値電圧Vthに対応する。図4に示すように、複数のメモリセルトランジスタMTは、適用される書込みモード、すなわち記憶するデータのビット数に応じて複数の閾値電圧分布を形成する。
SLCモード(1bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は2個の閾値電圧分布を形成する。この2個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“Er”状態、“A”状態と称される。SLCモードにおいて、“Er”状態、及び“A”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる1ビットデータが割り当てられる。
MLCモード(2bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は4個の閾値電圧分布を形成する。この4個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“Er”状態、“A”状態、“B”状態、“C”状態と称される。MLCモードにおいて、“Er”状態~“C”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる2ビットデータが割り当てられる。
TLCモード(3bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は8個の閾値電圧分布を形成する。この8個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“Er”状態、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、“G”状態と称される。TLC方式において、“Er”状態~“G”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる3ビットデータが割り当てられる。
QLCモード(4bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は16個の閾値電圧分布を形成する。この16個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“Er”状態、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、“G”状態、“H”状態、“I”状態、“J”状態、“K”状態、“L”状態、“M”状態、“N”状態、“O”状態と称される。QLC方式において、“Er”状態~“O”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる4ビットデータが割り当てられる。
各書込みモードにおいて、隣り合う閾値電圧分布の間にそれぞれ読出し電圧が設定される。具体的には、“Er”状態における最大の閾値電圧と“A”状態における最小の閾値電圧との間に、読出し電圧VAが設定される。同様に、“A”状態及び“B”状態間に読出し電圧VBが設定される。“B”状態及び“C”状態間に読出し電圧VCが設定される。“C”状態及び“D”状態間に読出し電圧VDが設定される。“D”状態及び“E”状態間に読出し電圧VEが設定される。“E”状態及び“F”状態間に読出し電圧VFが設定される。“F”状態及び“G”状態間に読出し電圧VGが設定される。“G”状態及び“H”状態間に読出し電圧VHが設定される。“H”状態及び“I”状態間に読出し電圧VIが設定される。“I”状態及び“J”状態間に読出し電圧VJが設定される。“J”状態及び“K”状態間に読出し電圧VKが設定される。“K”状態及び“L”状態間に読出し電圧VLが設定される。“L”状態及び“M”状態間に読出し電圧VMが設定される。“M”状態及び“N”状態間に読出し電圧VNが設定される。“N”状態及び“O”状態間に読出し電圧VOが設定される。
各書込みモードにおいて、最も高い閾値電圧分布における最大の閾値電圧よりも高い電圧に、読出しパス電圧VREADが設定される。読出しパス電圧VREADがゲートに印加されたメモリセルトランジスタMTは、記憶するデータに依らずにオン状態になる。
以上で説明した1つのメモリセルトランジスタMTが記憶するデータのビット数は一例であり、これに限定されない。例えば、メモリセルトランジスタMTには、5ビットデータ以上のデータが記憶されても良い。また、読出し電圧、及び読出しパス電圧のそれぞれは、各書込みモードで同じ電圧値に設定されても良いし、異なる電圧値に設定されても良い。
なお、図4では、各閾値電圧分布が重複しない場合について説明したが、実際には、各閾値電圧分布は、種々の要因によって変動し、互いに重複し得る。この場合、隣り合う2つの閾値分布のうち、重複した部分に相当する閾値電圧を有するメモリセルトランジスタMTからは、誤ったデータが読み出される可能性があり、好ましくない。
図5は、第1実施形態に係るメモリセルトランジスタの閾値電圧分布の重複に伴うエラービット数を示す模式図である。図5では、一例としてMLCモードが使用された場合を想定する。図5では、閾値電圧分布を変動させる要因の一例として、書込み処理時の温度と、読出し処理時の温度との違いに基づく閾値電圧分布の変動の様子が、“B”状態及び“C”状態に対応する2つの閾値電圧分布で例示される。より具体的には、図5(A)では、書込み処理時の温度と読出し処理時の温度とが同等である場合(状態A)における閾値電圧分布の重複の様子が示される。図5(B)及び図5(C)では、書込み処理時の温度と読出し処理時の温度とが有意に異なる場合(状態BC)における閾値電圧分布の重複の様子が示される。
図5(A)及び図5(B)に示すように、状態(BC)では、状態(A)に対して、閾値電圧分布同士の重複の仕方が大きく変化する。例えば、状態(A)において、2つの閾値電圧分布の交点に対応する電圧に読出し電圧VCが設定されている場合、“C”状態に書き込まれたデータを“B”状態と誤って読み出すメモリセルトランジスタMTの数、及び“B”状態に書き込まれたデータを“C”状態と誤って読み出されるメモリセルトランジスタMTの数の和(エラービット数NE_BC)は、図5(A)における斜線部の面積に対応し、状態(A)において最小となる。しかしながら、状態(BC)では、2つの閾値電圧分布の交点に対応する電圧が状態(A)の場合から変化する。このため、読出し電圧VCを使用してデータを読み出すと、エラービット数NE_BCは図5(B)における斜線部の面積に対応し、状態(A)の場合よりも増加する。
また、図5(A)及び図5(C)に示すように、状態(BC)では、2つの閾値電圧分布が、状態(A)の場合よりも大きく広がる。このため、状態(BC)における2つの閾値電圧分布の交点に対応する電圧VC’に読出し電圧を再設定したとしても、エラービット数NE_BCは図5(C)における斜線部の面積に対応し、状態(A)の場合よりも増加する。
このように、状態(BC)では、状態(A)よりも、エラービット数NE_BCが増加するため、ECC回路34によるエラー訂正処理に失敗する可能性が高くなる場合があり、好ましくない。メモリコントローラ30は、このような事態を回避するため、温度管理情報21を記憶してリフレッシュ処理の要否を適宜判定し、当該判定結果をリフレッシュ予約情報22に記憶する。
1.1.5 温度管理情報
次に、第1実施形態に係る温度管理情報の構成について説明する。図6は、第1実施形態に係るメモリシステムの温度管理情報の構成の一例を示す概念図である。
次に、第1実施形態に係る温度管理情報の構成について説明する。図6は、第1実施形態に係るメモリシステムの温度管理情報の構成の一例を示す概念図である。
図6に示すように、温度管理情報21には、NANDフラッシュメモリ10内の全ての記憶領域について、所定の記憶領域(温度管理単位)毎に、低温フラグが記憶される。低温フラグは、対応する温度管理単位の記憶領域に対してデータが書き込まれた際、メモリセルアレイ17の温度が低温であったか否かを示す。データが書き込まれた際のメモリセルアレイ17の温度が低温であった場合、低温フラグには“True”が記憶され、低温でなかった場合、低温フラグには“False”が記憶される。なお、低温であったか否かは、例えばNANDフラッシュメモリ10から送出される温度センサ15の温度情報に基づき、メモリコントローラ30によって判定される。また、データが書き込まれていない温度管理単位の低温フラグには、例えば、“False”が記憶される。
図6の例では、温度管理単位がワード線WLである場合が示される。すなわち、同一のブロックBLK内において同一のワード線WLに接続される全てのセルユニットCUに対して、1つの低温フラグが割り当てられる場合が示される。
また、図6の例では、チップChip0のブロックBLK0において、ワード線WL0~WL5に対応づけられた6つの低温フラグに“True”が設定され、ワード線WL6及びWL7に対応づけられた2つの低温フラグに“False”が設定される場合が示される。当該情報を参照することにより、メモリコントローラ30は、チップChip0のブロックBLK0において、ワード線WL0~WL5に接続されたメモリセルにデータが書き込まれた際、メモリセルアレイ17が低温状態であったことを認識する。また、メモリコントローラ30は、チップChip0のブロックBLK0において、ワード線WL6及びWL7に接続されたメモリセルにデータが書き込まれた際、メモリセルアレイ17が低温状態ではなかったことを認識する。
以上のような構成により、メモリコントローラ30は、NANDフラッシュメモリ10内の全ての記憶領域について、データが書き込まれた際の温度状態を把握できる。
1.1.6 リフレッシュ予約情報
次に、第1実施形態に係るリフレッシュ予約情報の構成について説明する。図7は、第1実施形態に係るメモリシステムのリフレッシュ予約情報の構成の一例を示す概念図である。
次に、第1実施形態に係るリフレッシュ予約情報の構成について説明する。図7は、第1実施形態に係るメモリシステムのリフレッシュ予約情報の構成の一例を示す概念図である。
図7に示すように、リフレッシュ予約情報22には、NANDフラッシュメモリ10内の記憶領域のうち、リフレッシュ処理が予約済みの領域が、例えばリフレッシュ処理の実行単位で記憶される。リフレッシュ処理の実行単位は、例えばブロックBLK単位である。図7の例では、リフレッシュ処理の実行単位がブロックBLK単位である場合において、チップChip0のブロックBLK0及びブロックBLK1を含む記憶領域が、リフレッシュ処理の予約済み領域としてリフレッシュ予約情報22に記憶される場合が示される。
メモリコントローラ30は、例えば、リフレッシュ予約情報22を参照することにより、リフレッシュ処理が予約された記憶領域の順に、リフレッシュ処理が予約された温度管理単位を含むブロックBLK単位でリフレッシュ処理を実行する。なお、リフレッシュ処理の実行単位は、ブロックBLKに限らず、温度管理単位であってもよい。
1.2 動作
次に、第1実施形態に係るメモリシステムにおける動作について説明する。
次に、第1実施形態に係るメモリシステムにおける動作について説明する。
1.2.1 温度管理情報の更新処理
まず、第1実施形態に係るメモリシステムにおける書込み処理に伴う温度管理情報の更新処理について説明する。
まず、第1実施形態に係るメモリシステムにおける書込み処理に伴う温度管理情報の更新処理について説明する。
図8は、第1実施形態に係るメモリシステムにおける温度管理情報の更新処理を示すフローチャートである。
図8に示すように、ステップST11において、メモリシステム1は、書込み処理を実行する。具体的には、例えば、メモリコントローラ30は、ホスト機器2からの書込み要求に応じて、書込みコマンドセットを発行し、NANDフラッシュメモリ10に送出する。書込みコマンドセットは、例えば、NANDフラッシュメモリ10に書込み処理の実行を指示するコマンドと、データを書き込む記憶領域を指定するアドレスと、当該記憶領域に書き込まれるデータと、を含む。書込みコマンドセットを受けると、NANDフラッシュメモリ10は、書込みコマンドセットに含まれるデータを、指定されたアドレスの記憶領域に書き込む。
ステップST12において、メモリコントローラ30は、NANDフラッシュメモリ10から書込み処理時の温度の情報(以下、「書込み処理時温度」と呼ぶ)を取得する。具体的には、例えば、メモリコントローラ30は、温度の読出しコマンドを発行し、NANDフラッシュメモリ10に送出する。温度の読出しコマンドは、例えばステータスリードコマンドである。温度の情報の読出しコマンドを受けると、NANDフラッシュメモリ10は、温度センサ15によって計測された温度の情報をメモリコントローラ30に送出する。
なお、図8の例では、ステップST12に係る処理は、ステップST11に係る処理の後に実行される場合が示されるが、これに限られない。例えば、ステップST12に係る処理は、ステップST11に係る処理の実行中に並行して実行されてもよく、書込み処理時温度の取得タイミングは、実行中の書込み処理における任意のタイミングに設定可能である。また、例えば、ステップST12に係る処理は、ステップST11に係る処理の前に実行されてもよい。
例えば、メモリコントローラ30は、1つのワード線WLに対する書込み処理毎に、書込み処理時温度を取得し得る。この場合、当該1つのワード線WLに対する書込み処理は数ミリ秒で完了するため、書込み処理中のどのタイミングで温度を取得しても有意な差が生じない可能性が高い。このため、メモリコントローラ30は、当該1つのワード線WLに対する書込み処理中の任意の1回のタイミングで計測された温度を書込み処理時温度として取得し得る。
また、例えば、メモリコントローラ30は、1つのブロックBLKに対する書込み処理毎に、書込み処理時温度を取得し得る。この場合、書込み処理中に温度が有意に変化し得る。このため、メモリコントローラ30は、当該1つのブロックBLKに対する書込み処理中の所定の複数のタイミング(例えば、書込み処理の開始時と終了時)で計測された複数の温度を取得し得る。その場合、メモリコントローラ30は、取得した複数の温度の平均値を、書込み処理時温度として用いてもよい。また、メモリコントローラ30は、当該1つのブロックBLKに対する書込み処理中の所定の複数のタイミングで計測された複数の温度の最低値を、書込み処理時温度として用いてもよい。
ステップST13において、メモリコントローラ30は、ステップST12で取得された書込み処理時温度が閾値Tth1未満であるか否かを判定する。閾値Tth1は、書込み処理時温度が低温であるか否かをメモリコントローラ30が判定するための閾値である。
書込み処理時温度が閾値Tth1未満である場合(ステップST13;yes)、メモリコントローラ30は当該書込み処理時温度が低温であると判定し、処理はステップST14に進む。ステップST14において、メモリコントローラ30は、書込み処理時温度が閾値Tth1未満である書込み処理対象領域に対応する温度管理単位の低温フラグを“True”にセットする。
一方、書込み処理時温度が閾値Tth1以上である場合(ステップST13;no)、メモリコントローラ30は当該書込み処理時温度が低温でないと判定し、処理はステップST15に進む。ステップST15において、メモリコントローラ30は、書込み処理時温度が閾値Tth1以上である書込み処理対象領域に対応する温度管理単位の低温フラグを“False”にセットする。
以上により、書込み処理、及び書込み処理に伴う温度管理情報21の更新処理が終了する。
1.2.2 リフレッシュ予約判定処理
次に、第1実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理について説明する。図9は、第1実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートである。図9に示すリフレッシュ予約判定処理のステップST21~ST24は、例えば、メモリコントローラ30によって定期的に実行される。
次に、第1実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理について説明する。図9は、第1実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートである。図9に示すリフレッシュ予約判定処理のステップST21~ST24は、例えば、メモリコントローラ30によって定期的に実行される。
図9に示すように、ステップST21において、メモリコントローラ30は、NANDフラッシュメモリ10からリフレッシュ処理を予約するか否かを判定する際に使用する温度の情報(以下、「リフレッシュ処理判定時温度」と呼ぶ)を取得する。なお、リフレッシュ処理判定時温度を取得する場合、メモリコントローラ30は、1つの時点における温度をリフレッシュ処理判定時温度として取得する。このように、リフレッシュ処理判定時温度の取得方法は、ある期間にわたる温度の代表値を複数の温度に基づいて取得する書込み処理時温度の取得方法とは異なる。
ステップST22において、メモリコントローラ30は、ステップST21において取得されたリフレッシュ処理判定時温度が閾値Tth2以上であるか否か判定する。閾値Tth2は、低温フラグが“True”の温度管理単位への書込み処理時の温度に対して、NANDフラッシュメモリ10におけるリフレッシュ処理判定時の温度が有意に上昇したか否かをメモリコントローラ30が判定するための閾値である。閾値Tth2は、閾値Tth1より高い(Tth2>Tth1)。
リフレッシュ処理判定時温度が閾値Tth2以上である場合(ステップST22;yes)、処理はステップST23に進み、リフレッシュ処理判定時温度が閾値Tth2未満である場合(ステップST22;no)、処理はステップST23及びST24を省略する。
ステップST23において、メモリコントローラ30は、低温フラグが“True”の全ての温度管理単位に対するリフレッシュ処理を予約する。具体的には、メモリコントローラ30は、温度管理情報21を参照し、低温フラグが“True”の全ての温度管理単位を抽出する。そして、メモリコントローラ30は、抽出した全ての温度管理単位を含むブロックBLKをリフレッシュ予約情報22に記憶する。
ステップST24において、メモリコントローラ30は、リフレッシュ処理を予約した全ての温度管理単位の低温フラグを“False”にセットする。
以上により、リフレッシュ予約判定処理が終了する。
なお、メモリコントローラ30は、任意のタイミングで予約されたリフレッシュ処理を実行し得る。
具体的には、例えば、メモリコントローラ30は、リフレッシュ処理対象のブロックBLKのアドレスを含む読出しコマンドセットを発行し、NANDフラッシュメモリ10に送出する。読出しコマンドセットを受けると、NANDフラッシュメモリ10は、リフレッシュ処理対象のブロックBLKからデータを読み出し、メモリコントローラ30に出力する。NANDフラッシュメモリ10から読出しデータを受けると、メモリコントローラ30内のECC回路34は、読み出されたデータに対してエラー訂正処理を実行し、エラー訂正後のデータを得る。
メモリコントローラ30は、エラー訂正後のデータを含む書込みコマンドセットを発行し、NANDフラッシュメモリ10に送出する。書込みコマンドセットを受けると、NANDフラッシュメモリ10は、エラー訂正後のデータを、リフレッシュ処理対象のブロックBLKとは別のブロックBLKに書き込む。又は、NANDフラッシュメモリ10は、リフレッシュ処理対象のブロックBLKに書込み済みのデータを消去した後、当該リフレッシュ処理対象のブロックBLKにエラー訂正後のデータを書き込む。そして、メモリコントローラ30は、リフレッシュ予約情報22からリフレッシュ処理対象のブロックBLKを示す情報を削除する。
以上により、リフレッシュ処理が終了する。
1.2.3 メモリシステムの状態と温度との関係
図10は、第1実施形態に係るメモリシステムの状態と温度推移との関係を示すダイアグラムである。図10では、非通電状態のメモリシステム1が起動してから再び非通電状態になるまでのシーケンスと、状態の遷移に伴うメモリシステム1の温度変化の様子の一例が時系列で示される。
図10は、第1実施形態に係るメモリシステムの状態と温度推移との関係を示すダイアグラムである。図10では、非通電状態のメモリシステム1が起動してから再び非通電状態になるまでのシーケンスと、状態の遷移に伴うメモリシステム1の温度変化の様子の一例が時系列で示される。
図10に示すように、時刻t0に至るまで、メモリシステム1は非通電状態である。非通電状態において、メモリシステム1は、温度Tp0に保たれる。温度Tp0は、メモリシステム1が設置される室内の温度であり、例えば5℃である。温度Tp0は、20℃や25℃の場合もあるが、ユーザによって設定されるため、上述の例に限られない。
時刻t0において、メモリシステム1への電源の供給が開始される。これにより、メモリシステム1は、パワーオンリード処理等の起動処理を実行する。また、例えば、メモリシステム1は、起動処理後、ホスト機器2からの要求に応じて、読出し処理及び書込み処理等(ホスト処理)を実行する。また、メモリシステム1は、ホスト機器2からの要求に依らない処理(バックグラウンド処理)についても適宜実行する。このため、メモリシステム1の温度は、温度Tp0から上昇し、時刻t1において温度Tp1(>Tp0)に達する。温度Tp1は、例えば45℃である。図10では、メモリシステム1の温度が温度Tp0以上Tp1以下の期間におけるメモリシステム1の状態を“起動状態”と呼ぶ。
引き続きホスト処理及びバックグラウンド処理を実行することにより、メモリシステム1の温度は、時刻t1以降も上昇し、時刻t2において、温度Tp2(>Tp1)に達する。温度Tp2は、例えば70℃である。そして、時刻t2から時刻t3の間、ホスト処理及びバックグラウンド処理の実行に伴って発生する熱と、図示しない温度制御機構によって排出される熱とが釣り合い、メモリシステム1の温度は、温度Tp2で安定化する。図10では、メモリシステム1の温度が温度Tp2で安定化している時刻t2から時刻t3までの期間のメモリシステム1の状態を“定常状態”と呼ぶ。
時刻t3において、例えば、ホスト機器2からの要求が無くなり、メモリシステム1の温度が低下する。なお、時刻t3以降もバックグラウンド処理は引き続き実行されるため、メモリシステム1の温度は、時刻t4において温度Tp1で再び安定化する。図10では、メモリシステム1の温度が温度Tp2から低下し始めてから温度Tp1で安定化している時刻t5までの期間を“アイドル状態”と呼ぶ。温度Tp1は、通電中におけるメモリシステム1の温度が安定している状態のうち、最も低い温度となり得る。すなわち、メモリシステム1は、温度Tp1より低い温度として、閾値Tth1を設定する。
時刻t5において、再びホスト処理が発生する。これにより、メモリシステム1の温度は上昇し、時刻t6において温度Tp2に達する。そして時刻t6から時刻t7の間、メモリシステム1の状態は、定常状態となる。
時刻t7において、メモリシステム1への電源の供給が停止され、非通電状態となる。これに伴い、メモリシステム1におけるホスト処理及びバックグラウンド処理の実行は停止され、メモリシステム1の温度は温度Tp0まで低下する。
以上により、メモリシステム1のシーケンスが終了する。
図10に示したシーケンスの各状態における温度Tp0~Tp2に基づき、メモリコントローラ30は、閾値Tth1及びTth2を、温度Tp0及びTp1の間に設定する。閾値Tth2は、温度Tp1より低く、例えば、30℃より高く40℃より低い範囲(30℃<Tth2<40℃)に設定される。閾値Tth1は、閾値Tth2より低く、例えば、10℃より高く30℃より低い範囲(10℃<Tth1<30℃)に設定される。これにより、メモリコントローラ30は、定常状態及びアイドル状態の際に、リフレッシュ処理が無限に繰り返されることを回避することができる。
1.3 本実施形態に係る効果
第1実施形態によれば、メモリコントローラ30は、書込み処理時の温度が閾値Tth1以下、かつ書込み処理後の温度が閾値Tth2以上の場合、当該書込み処理対象の記憶領域に対するリフレッシュ処理を予約する。これにより、起動状態において書き込まれたデータを定常状態(又はアイドル状態)において読み出す処理において、読出しデータに含まれるエラービット数がECC回路34の軟判定復号による訂正能力を上回る前に、起動状態において書き込まれたデータを、より高い温度状態で書き直すことができる。このため、書込み処理時と読出し処理時の温度差に起因する閾値電圧分布の変動を抑制することができ、読み出されたデータに含まれるエラービット数の増加を抑制できる。したがって、データの信頼性の悪化を抑制できる。
第1実施形態によれば、メモリコントローラ30は、書込み処理時の温度が閾値Tth1以下、かつ書込み処理後の温度が閾値Tth2以上の場合、当該書込み処理対象の記憶領域に対するリフレッシュ処理を予約する。これにより、起動状態において書き込まれたデータを定常状態(又はアイドル状態)において読み出す処理において、読出しデータに含まれるエラービット数がECC回路34の軟判定復号による訂正能力を上回る前に、起動状態において書き込まれたデータを、より高い温度状態で書き直すことができる。このため、書込み処理時と読出し処理時の温度差に起因する閾値電圧分布の変動を抑制することができ、読み出されたデータに含まれるエラービット数の増加を抑制できる。したがって、データの信頼性の悪化を抑制できる。
補足すると、図10に示したシーケンスにおいて、起動状態及び定常状態の温度差は、アイドル状態及び定常状態の温度差、並びに起動状態及びアイドル状態の温度差よりも大きい。このため、起動状態において書き込まれたデータを定常状態において読み出す場合は、アイドル状態において(バックグラウンド処理によって)書き込まれたデータを定常状態において読み出す場合、及び起動状態において書き込まれたデータをアイドル状態において(バックグラウンド処理によって)読み出す場合よりも、読み出されたデータの信頼性が大きく損なわれる可能性が高い。
第1実施形態によれば、メモリコントローラ30は、温度管理情報21の更新処理において、NANDフラッシュメモリ10の温度が閾値Tth1以下の際にデータが書き込まれた記憶領域について、温度管理単位毎に“True”の低温フラグを設定する。これにより、メモリコントローラ30は、起動状態のうち、特に温度Tp0に近い低温状態においてデータが書き込まれた記憶領域を特定することができる。また、メモリコントローラ30は、リフレッシュ予約判定処理において、NANDフラッシュメモリ10の温度が閾値Tth2以上となった際に、“True”の低温フラグが設定された全ての温度管理単位についてリフレッシュ処理を予約する。このため、メモリシステム1が定常状態に至るまでに(例えばアイドル状態において)、“True”の低温フラグが設定された全ての温度管理単位についてリフレッシュ処理の実行を予約することができる。したがって、低温時に書き込まれたデータを高温時に読み出す際に生じるエラービット数がECC回路34の軟判定復号による訂正能力を上回ってしまうことを回避できる。
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態では、リフレッシュ処理判定時温度及び書込み処理時温度に個別の閾値が設定されるのではなく、リフレッシュ処理判定時温度及び書込み処理時温度の差に閾値が設定される点において、第1実施形態と異なる。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態では、リフレッシュ処理判定時温度及び書込み処理時温度に個別の閾値が設定されるのではなく、リフレッシュ処理判定時温度及び書込み処理時温度の差に閾値が設定される点において、第1実施形態と異なる。以下の説明では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
2.1 温度管理情報
図11は、第2実施形態に係るメモリシステムの温度管理情報の構成の一例を示す概念図であり、第1実施形態における図6に対応する。
図11は、第2実施形態に係るメモリシステムの温度管理情報の構成の一例を示す概念図であり、第1実施形態における図6に対応する。
図11に示すように、温度管理情報21Aには、NANDフラッシュメモリ10内の全ての記憶領域について、温度管理単位毎に、低温フラグに代えて、書込み処理時温度が記憶される。
図11の例では、チップChip0のブロックBLK0において、ワード線WL0~WL7に対応づけて、書込み処理時温度T0~T7がそれぞれ記憶される場合が示される。当該情報を参照することにより、メモリコントローラ30は、温度管理単位毎の書込み処理時温度を具体的に把握することができる。
2.2 温度管理情報の更新処理
図12は、第2実施形態に係るメモリシステムにおける温度管理情報の更新処理を示すフローチャートであり、第1実施形態における図8に対応する。
図12は、第2実施形態に係るメモリシステムにおける温度管理情報の更新処理を示すフローチャートであり、第1実施形態における図8に対応する。
図12に示すように、ステップST31において、メモリシステム1は、書込み処理を実行する。書込み処理の詳細については、図8のステップST11と同等であるため、説明を省略する。
ステップST32において、メモリコントローラ30は、NANDフラッシュメモリ10から書込み処理時温度を取得する。書込み処理時温度の取得処理については、図8のステップST12と同等であるため、説明を省略する。
ステップST33において、メモリコントローラ30は、書込み処理対象領域に対応する温度管理単位の書込み処理時温度を記憶する。
以上により、温度管理情報21Aの更新処理が終了する。
2.3 リフレッシュ予約判定処理
図13は、第2実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートであり、第1実施形態における図9に対応する。図13に示すリフレッシュ予約判定処理のステップST41~ST45は、例えば、メモリコントローラ30によって定期的に実行される。
図13は、第2実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートであり、第1実施形態における図9に対応する。図13に示すリフレッシュ予約判定処理のステップST41~ST45は、例えば、メモリコントローラ30によって定期的に実行される。
図13に示すように、ステップST41において、メモリコントローラ30は、リフレッシュ処理判定時温度を取得する。なお、リフレッシュ処理判定時温度の取得処理については、図9のステップST21と同等であるため、説明を省略する。
ステップST42において、メモリコントローラ30は、温度管理情報21Aを参照し、書込み処理時温度が記憶されている温度管理単位を選択する。
ステップST43において、メモリコントローラ30は、ステップST41において取得したリフレッシュ処理判定時温度と、ステップST42において選択された温度管理単位の書込み処理時温度と、の温度差が閾値Tth3以上であるか否かを判定する。閾値Tth3は、例えば、書込み処理時の温度と読出し処理時の温度との差に起因する閾値電圧分布の変動が許容できる範囲で設定され得る。ここで、「閾値電圧分布の変動が許容できる」とは、当該閾値電圧分布の変動によって生じるエラービット数が、ECC回路34によるエラー訂正処理によってエラー訂正可能な数以内であることを含む。
リフレッシュ処理判定時温度と書込み処理時温度との温度差が閾値Tth3以上である場合(ステップST43;yes)、処理はステップST44に進み、閾値Tth3未満である場合(ステップST43;no)、処理はステップST44を省略してステップST45に進む。
ステップST44において、メモリコントローラ30は、ステップST42において選択された温度管理単位を含むブロックBLKをリフレッシュ予約情報22に記憶し、リフレッシュ処理を予約する。
ステップST45において、メモリコントローラ30は、温度管理情報21A内の全ての温度管理単位を選択したか否かを判定する。選択していない温度管理単位がある場合(ステップST45;no)、処理はステップST42に戻る。これにより、全ての温度管理単位が選択されるまで、ステップST42~ST45が繰り返される。全ての温度管理単位が選択済みの場合(ステップST45;yes)、リフレッシュ予約判定処理は終了する。
2.4 本実施形態に係る効果
第2実施形態によれば、メモリコントローラ30は、リフレッシュ処理判定時温度と書込み処理時温度との差が閾値Tth3以上の温度管理単位がある場合、当該温度管理単位についてリフレッシュ処理を予約する。これにより、閾値電圧変動が許容できない状態になる可能性がある記憶領域を、温度管理単位毎に検出することができる。このため、メモリコントローラ30は、温度管理単位毎にリフレッシュ処理の予約要否を判定することができ、より適応的な制御が可能となる。
第2実施形態によれば、メモリコントローラ30は、リフレッシュ処理判定時温度と書込み処理時温度との差が閾値Tth3以上の温度管理単位がある場合、当該温度管理単位についてリフレッシュ処理を予約する。これにより、閾値電圧変動が許容できない状態になる可能性がある記憶領域を、温度管理単位毎に検出することができる。このため、メモリコントローラ30は、温度管理単位毎にリフレッシュ処理の予約要否を判定することができ、より適応的な制御が可能となる。
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態は、書込み処理時温度及びリフレッシュ処理判定時温度が条件を満たす場合でも、リフレッシュ処理が予約されない温度管理単位が存在する点において、第1実施形態及び第2実施形態と異なる。以下の説明では、第2実施形態と同等の構成及び動作については説明を省略し、第2実施形態と異なる構成及び動作について主に説明する。
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態は、書込み処理時温度及びリフレッシュ処理判定時温度が条件を満たす場合でも、リフレッシュ処理が予約されない温度管理単位が存在する点において、第1実施形態及び第2実施形態と異なる。以下の説明では、第2実施形態と同等の構成及び動作については説明を省略し、第2実施形態と異なる構成及び動作について主に説明する。
3.1 温度管理情報
図14は、第3実施形態に係るメモリシステムの温度管理情報の構成の一例を示す概念図であり、第2実施形態における図11に対応する。
図14は、第3実施形態に係るメモリシステムの温度管理情報の構成の一例を示す概念図であり、第2実施形態における図11に対応する。
図14に示すように、温度管理情報21Bには、NANDフラッシュメモリ10内の全ての記憶領域について、温度管理単位毎に、書込み処理時温度と共に、除外フラグが記憶される。除外フラグは、書込み処理時温度及びリフレッシュ処理判定時温度が条件を満たす場合に、対応する温度管理単位の記憶領域に対するリフレッシュ処理を予約するか否かを判定するためのフラグである。
リフレッシュ処理の予約の際に書込み処理時温度及びリフレッシュ処理判定時温度が条件を満たすか否かが考慮されない場合、除外フラグには“True”が記憶される。一方、リフレッシュ処理の予約の際に書込み処理時温度及びリフレッシュ処理判定時温度が条件を満たすか否かが考慮される場合、除外フラグには“False”が記憶される。
図14の例では、チップChip0のブロックBLK0において、ワード線WL0~WL2、及びWL5~WL7に対応づけられた6つの除外フラグに“False”が設定され、ワード線WL3及びWL4に対応づけられた2つの除外フラグに“True”が設定される場合が示される。当該情報を参照することにより、メモリコントローラ30は、チップChip0のブロックBLK0において、ワード線WL3及びWL4に接続されたメモリセルについては、リフレッシュ処理を予約するか否か判定する際に書込み処理時温度を考慮しないことを認識する。
3.2 温度管理情報の更新処理
次に、第3実施形態に係るメモリシステムにおける温度管理情報の更新処理のいくつかの例について説明する。
次に、第3実施形態に係るメモリシステムにおける温度管理情報の更新処理のいくつかの例について説明する。
3.2.1 第1例
まず、温度管理情報の更新処理の第1例について説明する。第1例では、書込み対象領域に対するアクセスが発生し得る状態に基づいて、除外フラグが設定される。
まず、温度管理情報の更新処理の第1例について説明する。第1例では、書込み対象領域に対するアクセスが発生し得る状態に基づいて、除外フラグが設定される。
図15は、第3実施形態に係るメモリシステムにおける温度管理情報の更新処理の第1例を示すフローチャートであり、第2実施形態における図12に対応する。
ステップST51~ST53において、メモリコントローラ30は、書込み処理を実行し、書込み処理対象領域に対応する温度管理単位の書込み処理時温度を温度管理情報21Bに記憶する。ステップST51~ST53の処理は、第2実施形態の図12におけるステップST31~ST33の処理と同等であるため、説明を省略する。
ステップST54において、メモリコントローラ30は、書込み対象領域が起動状態にしかNANDフラッシュメモリ10へのアクセス(例えば、書込み処理及び読出し処理等)が発生しない記憶領域であるか否かを判定する。
書込み対象領域に対して起動状態にしかアクセスが発生しない場合(ステップST54;true)、処理はステップST55に進む。ステップST55において、メモリコントローラ30は、書込み対象領域に対応する温度管理単位の除外フラグを“True”にセットする。
一方、書込み対象領域に対してアイドル状態及び定常状態にもアクセスが発生し得る場合(ステップST54;false)、処理はステップST56に進む。ステップST56において、メモリコントローラ30は、書込み対象領域に対応する温度管理単位の除外フラグを“False”にセットする。
なお、メモリコントローラ30は、定常状態及びアイドル状態にアクセスが発生しない(起動状態にしかアクセスが発生しない)データと、定常状態及びアイドル状態にアクセスが発生し得るデータと、を予め区別し、NANDフラッシュメモリ10内の互いに異なる記憶領域に記憶させることができる。すなわち、メモリコントローラ30は、書込み対象領域のアドレスに基づき、当該書込み対象領域に対応する温度管理単位の除外フラグを設定できる。定常状態及びアイドル状態にアクセスが発生しないデータは、例えば、パワーオンリード処理の際に読み出されるシステムデータが想定される。また、定常状態及びアイドル状態にアクセスが発生しないデータの記憶領域は、例えば、当該システムデータを記憶するシステムデータ領域が想定される。このため、メモリコントローラ30は、書込み対象領域のアドレスに基づき、温度管理情報21B内の温度管理単位毎に、当該温度管理単位が起動状態にしかアクセスされない記憶領域であるか否かを判定することができる。
以上により、温度管理情報21Bの更新処理が終了する。
なお、ステップST54において、メモリコントローラ30は、定常状態及びアイドル状態における書込み対象領域へのアクセスの頻度が閾値未満であるか否かを判定してもよい。すなわち、定常状態及びアイドル状態における書込み対象領域へのアクセスの頻度が閾値未満の場合(ST54;true)、処理はステップST55に進み、閾値以上の場合(ST54;false)、処理はステップST56に進む。以上のように動作することにより、例えば、ホスト処理は実行されないがバックグラウンド処理が低頻度で実行される場合にも、リフレッシュ処理が予約されないように制御することができる。ホスト処理は実行されないがバックグラウンド処理が低頻度で実行される場合の例としては、例えば、データ正しく読み出せるか否かを確認するために定期又は不定期に実行される読出し処理(パトロール処理)等が想定される。
また、ステップST54において、メモリコントローラ30は、書込み対象領域の用途に応じて、当該書込み対象領域に除外フラグを設定するか否かを判定してもよい。すなわち、書込み対象領域が、定常状態及びアイドル状態におけるアクセスの頻度が低頻度であることが想定されるデータが書き込まれている記憶領域である場合(ST54;true)、処理はステップST55に進み、高頻度であることが想定されるデータが書き込まれている記憶領域である場合(ST54;false)、処理はステップST56に進む。以上のように動作することにより、メモリコントローラ30は、実績に基づくアクセス頻度ではなく、例えばメモリコントローラ30の設計時に予め設定されたNANDフラッシュメモリ10内の記憶領域の用途に応じて、除外フラグを設定するか否かを判定することができる。
3.2.2 第2例
次に、温度管理情報の更新処理の第2例について説明する。第2例では、書込みモードに基づいて、除外フラグが設定される。すなわち、閾値電圧分布間のマージンが比較的小さい書込みモードでは“False”の除外フラグが設定されるのに対し、閾値電圧分布間のマージンが比較的大きい書込みモードでは“True”の除外フラグが設定される。
次に、温度管理情報の更新処理の第2例について説明する。第2例では、書込みモードに基づいて、除外フラグが設定される。すなわち、閾値電圧分布間のマージンが比較的小さい書込みモードでは“False”の除外フラグが設定されるのに対し、閾値電圧分布間のマージンが比較的大きい書込みモードでは“True”の除外フラグが設定される。
図16は、第3実施形態に係るメモリシステムにおける温度管理情報の更新処理の第2例を示すフローチャートである。
ステップST51~ST53において、メモリコントローラ30は、書込み処理を実行し、書込み処理対象領域に対応する温度管理単位の書込み処理時温度を温度管理情報21Bに記憶する。ステップST51~ST53の処理は、第1例と同等であるため、説明を省略する。
ステップST54Aにおいて、メモリコントローラ30は、書込み処理にSLCモードが使用されたか否かを判定する。
SLCモードが使用された(すなわち、メモリセルトランジスタMTに1ビットのデータが書き込まれた)場合(ステップST54A;true)、処理はステップST55に進む。ステップST55において、メモリコントローラ30は、書込み対象領域に対応する温度管理単位の除外フラグを“True”にセットする。
一方、SLCモードが使用されない(すなわち、メモリセルトランジスタMTに2ビット以上のデータが書き込まれた)場合(ステップST54A;false)、処理はステップST56に進む。ステップST56において、メモリコントローラ30は、書込み対象領域に対応する温度管理単位の除外フラグを“False”にセットする。
以上により、温度管理情報21Bの更新処理が終了する。
なお、図16の例では、書込みモードがSLCモードである場合に、メモリコントローラ30が除外フラグを“True”に設定する場合について説明したが、これに限られない。例えば、書込みモードがSLCモード又はMLCモードである場合に、メモリコントローラ30は除外フラグを“True”に設定してもよい。この場合、書込みモードがTLCモード又はQLCモードである場合には、メモリコントローラ30は除外フラグを“False”に設定する。
3.3 リフレッシュ予約判定処理
図17は、第3実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートであり、第2実施形態における図13に対応する。図17に示すリフレッシュ予約判定処理のステップST61~ST66は、例えば、メモリコントローラ30によって定期的に実行される。
図17は、第3実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートであり、第2実施形態における図13に対応する。図17に示すリフレッシュ予約判定処理のステップST61~ST66は、例えば、メモリコントローラ30によって定期的に実行される。
図17に示すように、ステップST61において、メモリコントローラ30は、リフレッシュ処理判定時温度を取得する。なお、リフレッシュ処理判定時温度の取得処理の詳細については、図13のステップST41と同等であるため、説明を省略する。
ステップST62において、メモリコントローラ30は、温度管理情報21Bを参照し、書込み処理時温度が記憶されている温度管理単位を選択する。
ステップST63において、メモリコントローラ30は、ステップST62において選択された温度管理単位の除外フラグが“False”であるか否かを判定する。除外フラグが“False”である場合(ステップST63;yes)、処理はステップST64に進み、除外フラグ“True”である場合(ステップST63;no)、処理はステップST66に進む。
ステップST64において、メモリコントローラ30は、ステップST61において取得したリフレッシュ処理判定時温度と、ステップST62において選択された温度管理単位の書込み処理時温度と、の温度差が閾値Tth3以上であるか否かを判定する。なお、閾値Tth3に基づく判定処理の詳細については、図13のステップST43と同等であるため、説明を省略する。
リフレッシュ処理判定時温度と書込み処理時温度との温度差が閾値Tth3以上である場合(ステップST64;yes)、処理はステップST65に進み、閾値Tth3未満である場合(ステップST64;no)、処理はステップST65を省略してステップST66に進む。
ステップST65において、メモリコントローラ30は、ステップST62において選択された温度管理単位を含むブロックBLKをリフレッシュ予約情報22に記憶し、リフレッシュ処理を予約する。
ステップST66において、メモリコントローラ30は、温度管理情報21B内の全ての温度管理単位を選択したか否かを判定する。選択していない温度管理単位がある場合(ステップST66;no)、処理はステップST62に戻る。これにより、全ての温度管理単位が選択されるまで、ステップST62~ST66が繰り返される。全ての温度管理単位が選択済みの場合(ステップST66;yes)、リフレッシュ予約判定処理は終了する。
3.4 本実施形態に係る効果
第3実施形態によれば、メモリコントローラ30は、温度管理情報21Bの更新処理において、除外フラグを、当該除外フラグに対応する温度管理単位のアドレスに応じて設定する。メモリコントローラ30は、リフレッシュ予約判定処理において、除外フラグが“True”の温度管理単位については、リフレッシュ処理判定時温度及び書込み処理時温度が条件を満たす場合においても、リフレッシュ処理を予約しない。これにより、低温状態で書き込まれたデータであっても、低温状態に対して閾値電圧分布が大きく変動する高温状態で読み出される可能性がないデータについては、リフレッシュ処理の実行を省略することができる。このため、リフレッシュ処理の実行に伴うバックグラウンド処理の増加を抑制することができる。したがって、ホスト機器2からの要求に対するメモリシステム1の応答性能の悪化を抑制できる。また、リフレッシュ処理によって高温状態で書き直されたシステムデータが起動状態において読み出されることによって、信頼性が損なわれるリスクも回避できる。
第3実施形態によれば、メモリコントローラ30は、温度管理情報21Bの更新処理において、除外フラグを、当該除外フラグに対応する温度管理単位のアドレスに応じて設定する。メモリコントローラ30は、リフレッシュ予約判定処理において、除外フラグが“True”の温度管理単位については、リフレッシュ処理判定時温度及び書込み処理時温度が条件を満たす場合においても、リフレッシュ処理を予約しない。これにより、低温状態で書き込まれたデータであっても、低温状態に対して閾値電圧分布が大きく変動する高温状態で読み出される可能性がないデータについては、リフレッシュ処理の実行を省略することができる。このため、リフレッシュ処理の実行に伴うバックグラウンド処理の増加を抑制することができる。したがって、ホスト機器2からの要求に対するメモリシステム1の応答性能の悪化を抑制できる。また、リフレッシュ処理によって高温状態で書き直されたシステムデータが起動状態において読み出されることによって、信頼性が損なわれるリスクも回避できる。
4. 第4実施形態
次に、第4実施形態に係るメモリシステムについて説明する。第4実施形態は、NANDフラッシュメモリ10の疲弊度に応じてリフレッシュ予約判定処理における判定基準を変更する点において、第1実施形態乃至第3実施形態と異なる。以下の説明では、第2実施形態と同等の構成及び動作については説明を省略し、第2実施形態と異なる構成及び動作について主に説明する。
次に、第4実施形態に係るメモリシステムについて説明する。第4実施形態は、NANDフラッシュメモリ10の疲弊度に応じてリフレッシュ予約判定処理における判定基準を変更する点において、第1実施形態乃至第3実施形態と異なる。以下の説明では、第2実施形態と同等の構成及び動作については説明を省略し、第2実施形態と異なる構成及び動作について主に説明する。
4.1 リフレッシュ予約判定処理
図18は、第4実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートであり、第2実施形態における図13に対応する。図18に示すリフレッシュ予約判定処理のステップST71~ST77は、例えば、メモリコントローラ30によって定期的に実行される。
図18は、第4実施形態に係るメモリシステムにおけるリフレッシュ予約判定処理を示すフローチャートであり、第2実施形態における図13に対応する。図18に示すリフレッシュ予約判定処理のステップST71~ST77は、例えば、メモリコントローラ30によって定期的に実行される。
図18に示すように、ステップST71において、メモリコントローラ30は、リフレッシュ処理判定時温度を取得する。なお、リフレッシュ処理判定時温度の取得処理の詳細については、図13のステップST41と同等であるため、説明を省略する。
ステップST72において、メモリコントローラ30は、書込み処理時温度が記憶されている温度管理単位を選択する。
ステップST73において、メモリコントローラ30は、ステップST72において選択された温度管理単位の疲弊度が閾値WEth以上であるか否かを判定する。疲弊度は、例えば、当該温度管理単位の書込み・消去サイクル数(W/E数、又はP/E数)を含み、閾値電圧分布のシフトしやすさ、及び広がりやすさに相関する指標である。W/E数は、メモリコントローラ30によって例えばブロックBLK単位で管理される。
疲弊度が閾値WEth未満である場合(ステップST73;no)、処理はステップST74に進む。ステップST74において、ステップST71において取得したリフレッシュ処理判定時温度と、ステップST72において選択された温度管理単位の書込み処理時温度と、の温度差が閾値Tth3以上であるか否かを判定する。
リフレッシュ処理判定時温度と書込み処理時温度との温度差が閾値Tth3以上である場合(ステップST74;yes)、処理はステップST76に進み、閾値Tth3未満である場合(ステップST74;no)、処理はステップST76を省略してステップST77に進む。
一方、疲弊度が閾値WEth以上である場合(ステップST73;yes)、処理はステップST75に進む。ステップST75において、ステップST71において取得したリフレッシュ処理判定時温度と、ステップST72において選択された温度管理単位の書込み処理時温度と、の温度差が閾値Tth3より小さい閾値Tth4以上であるか否かを判定する(Tth4<Tth3)。
リフレッシュ処理判定時温度と書込み処理時温度との温度差が閾値Tth4以上である場合(ステップST75;yes)、処理はステップST76に進み、閾値Tth4未満である場合(ステップST75;no)、処理はステップST76を省略してステップST77に進む。
ステップST76において、メモリコントローラ30は、ステップST72において選択された温度管理単位を含むブロックBLKをリフレッシュ予約情報22に記憶し、リフレッシュ処理を予約する。
ステップST77において、メモリコントローラ30は、全ての温度管理単位を選択したか否かを判定する。選択していない温度管理単位がある場合(ステップST77;no)、処理はステップST72に戻る。これにより、全ての温度管理単位が選択されるまで、ステップST72~ST77が繰り返される。全ての温度管理単位が選択済みの場合(ステップST77;yes)、リフレッシュ予約判定処理は終了する。
なお、図18の例では、疲弊度の値によらずリフレッシュ処理の予約を判定する処理(ステップST74又はST75)が実行される場合について説明したが、これに限られない。例えば、疲弊度が閾値WEth未満である場合(ステップST73;no)、処理はステップST74を省略してステップST77に進んでもよい。
4.2 本実施形態に係る効果
第4実施形態によれば、メモリコントローラ30は、疲弊度の増加に応じて閾値Tthに小さな値を設定する。これにより、疲弊度が大きい温度管理単位については、リフレッシュ処理予約判定時温度及び書込み処理時温度の温度差がより小さい時点で、リフレッシュ処理の予約が必要であると判定することができる。このため、度重なる使用によって閾値電圧分布がシフトしやすくなった、及び閾値電圧分布が広がりやすくなった温度管理単位についても、エラービット数がECC回路34の軟判定復号におけるエラー訂正能力を超える前の適切なタイミングで、リフレッシュ処理を予約することができる。したがって、データの信頼性の悪化を抑制することができる。
第4実施形態によれば、メモリコントローラ30は、疲弊度の増加に応じて閾値Tthに小さな値を設定する。これにより、疲弊度が大きい温度管理単位については、リフレッシュ処理予約判定時温度及び書込み処理時温度の温度差がより小さい時点で、リフレッシュ処理の予約が必要であると判定することができる。このため、度重なる使用によって閾値電圧分布がシフトしやすくなった、及び閾値電圧分布が広がりやすくなった温度管理単位についても、エラービット数がECC回路34の軟判定復号におけるエラー訂正能力を超える前の適切なタイミングで、リフレッシュ処理を予約することができる。したがって、データの信頼性の悪化を抑制することができる。
5. 変形例等
上述の第1実施形態乃至第4実施形態は、上述の例に限られず、種々の変形が適用可能である。
上述の第1実施形態乃至第4実施形態は、上述の例に限られず、種々の変形が適用可能である。
例えば、上述した第1実施形態乃至第4実施形態では、メモリコントローラ30が、温度管理情報21の更新処理において、NANDフラッシュメモリ10内の温度センサ15によって計測された温度を取得する場合について説明したが、これに限られない。例えば、メモリコントローラ30は、NANDフラッシュメモリ10の外部(例えば、メモリコントローラ30内のADC(Analog to digital converter)等)から温度を取得してもよい。この場合、メモリコントローラ30は、取得した温度を適宜補正することによって、NANDフラッシュメモリ10の特にメモリセルアレイ17における温度を推定し、当該推定値に基づいて温度管理情報21の更新処理を実行してもよい。
また、上述の第1実施形態乃至第4実施形態では、温度管理単位がワード線WLに共通接続される4つのセルユニットCUである場合について説明したが、これに限られない。例えば、温度管理単位は、4つ未満のセルユニットCUでもよいし、複数のワード線WLに関連づけられた5つ以上のセルユニットCUであってもよい。複数のワード線WLに関連づけられた5つ以上のセルユニットCUは、ワード線グループとも呼ばれる。また、例えば、温度管理単位は、1つのブロックBLKであってもよいし、複数のブロックBLKであってもよい。温度管理単位が複数のブロックBLKである場合、同一の温度管理単位に含まれる複数のブロックBLKの各々は、異なるチップChipに属していてもよい。また、例えば、温度管理単位が複数のブロックBLKである場合、同一の温度管理単位に含まれる複数のブロックBLKの各々は、同一のチップChip内の異なるプレーンPBに属していてもよい。
温度管理単位となる複数のブロックBLKは、論理ブロックであってもよい。論理ブロックに含まれる複数のブロックBLKは、複数のチップChipにわたって存在し、ブロック間パリティを構成する誤り訂正フレームを含む。なお、論理ブロックを構成する複数のチップChip内の、対応するワード線WLを組にしたものは、論理ワード線とも呼ばれる。温度管理単位は、当該論理ワード線に関連づけられた複数のセルユニットCUであってもよい。また、温度管理単位は、複数の論理ワード線に関連づけられた複数のセルユニットCUであってもよい。複数の論理ワード線WLに関連づけられた複数のセルユニットCUの組は、論理ワード線グループとも呼ばれる。
なお、メモリコントローラ30は、温度管理単位を上述した種々の大きさに適宜変更可能に構成される。これにより、NANDフラッシュメモリ10の状態に応じて、温度管理情報21に必要な記憶容量及びリフレッシュ処理の予約単位を適宜調整することができる。
また、上述の第3実施形態及び第4実施形態は、第2実施形態に適用される場合について説明したが、これに限られず、第1実施形態に適用されてもよい。第4実施形態が第1実施形態に適用される場合、図17のステップST74及びST75において、例えば、メモリコントローラ30は、リフレッシュ処理判定時温度との比較に用いられる閾値を疲弊度に応じて変化させてもよい。すなわち、疲弊度が閾値WEth未満の場合、メモリコントローラ30は、リフレッシュ処理判定時温度が閾値Tth2以上であるか否かを判定し、疲弊度が閾値WEth以上の場合、メモリコントローラ30は、リフレッシュ処理判定時温度が閾値Tth2よりも低い閾値Tth5以上であるか否かを判定する(Tth5<Tth2)。
また、例えば、図17のステップST74及びST75において、メモリコントローラ30は、書込み処理時温度との比較に用いられる閾値を疲弊度に応じて変化させてもよい。すなわち、疲弊度が閾値WEth未満の場合、メモリコントローラ30は、書込み処理時温度が閾値Tth1以下であるか否かを判定し、疲弊度が閾値WEth以上の場合、メモリコントローラ30は、書込み処理時温度が閾値Tth1よりも高い閾値Tth6以下であるか否かを判定する(Tth6<Tth1)。
また、上述の第1実施形態乃至第4実施形態では、温度管理情報21及びリフレッシュ予約情報22をDRAM20に記憶する場合について説明したが、これに限られない。例えば、温度管理情報21及びリフレッシュ予約情報22は、不慮の電源断によってメモリシステム1から失われることを避けるため、NANDフラッシュメモリ10に適宜不揮発化されてもよい。
また、上述の第1実施形態乃至第4実施形態では、1つのメモリセルトランジスタMTに2ビットのデータを記憶可能な場合について説明したが、これに限られず、3ビット、4ビット、又は5ビット以上のデータを記憶可能であってもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…ホスト機器、10…不揮発性メモリ、11…入出力回路、12…レジスタセット、12A…ステータスレジスタ、12B…アドレスレジスタ、12C…コマンドレジスタ、13…ロジックコントローラ、14…シーケンサ、15…温度センサ、16…電圧生成回路、17…メモリセルアレイ、18…ロウデコーダモジュール、19…センスアンプモジュール、20…揮発性メモリ、21…温度管理情報、22…リフレッシュ予約情報、30…メモリコントローラ、31…プロセッサ、32…バッファメモリ、33…ホストインタフェース回路、34…ECC回路、35…NANDインタフェース回路、36…DRAMインタフェース回路。
Claims (17)
- 各々が複数のメモリセルを含む複数のグループを含む不揮発性メモリと、
メモリコントローラと、
を備え、
前記メモリコントローラは、
第1グループへの書込み処理における第1温度と、前記第1グループへの書込み処理の後における第2温度と、が条件を満たす場合、前記第1グループに対するリフレッシュ処理を実行する
ように構成された、
メモリシステム。 - 前記条件は、前記第1温度が第1閾値以下、かつ前記第2温度が前記第1閾値より高い第2閾値以上であることを含む、
請求項1記載のメモリシステム。 - 前記条件は、前記第2温度と前記第1温度との差が第3閾値以上であることを含む、
請求項1記載のメモリシステム。 - 前記メモリコントローラは、
前記第1グループに対応するフラグを記憶し、
前記フラグが第1値にセットされる場合、前記条件が満たされるか否かを、前記第1グループに対するリフレッシュ処理を実行するか否かの考慮に含め、
前記フラグが第2値にセットされる場合、前記条件が満たされるか否かを、前記第1グループに対するリフレッシュ処理を実行するか否かの考慮から除外する
ように構成された、
請求項1記載のメモリシステム。 - 前記メモリコントローラは、
前記第1グループのアドレスに基づき、前記フラグを前記第1値にセットするか前記第2値にセットするかを判定する
ように構成された、
請求項4記載のメモリシステム。 - 前記メモリシステムは、
前記第1グループに書き込まれたデータに対する読出し処理が、前記第2温度が第4閾値以上の状態において発生する頻度に基づき、前記フラグを前記第1値にセットするか前記第2値にセットするかを判定する
ように構成された、
請求項4記載のメモリシステム。 - 前記メモリシステムは、
前記第1グループの用途に基づき、前記フラグを前記第1値にセットするか前記第2値にセットするかを判定する
ように構成された、
請求項4記載のメモリシステム。 - 前記メモリシステムは、
前記第1グループ内の複数のメモリセルの各々に書き込まれるビット数に基づき、前記フラグを前記第1値にセットするか前記第2値にセットするかを判定する
ように構成された、
請求項4記載のメモリシステム。 - 前記メモリコントローラは、
前記第1グループの疲弊度が第5閾値未満である場合、前記第2温度が前記第2閾値以上の場合に前記リフレッシュ処理を実行し、
前記第1グループの疲弊度が前記第5閾値以上である場合、前記第2温度が前記第2閾値より低い第6閾値以上の場合に前記リフレッシュ処理を実行する
ように構成された、
請求項2記載のメモリシステム。 - 前記第1グループの疲弊度は、前記第1グループに対する書込み・消去サイクル数である、
請求項9記載のメモリシステム。 - 前記メモリコントローラは、
前記第1グループの疲弊度が第5閾値未満である場合、前記第1温度が前記第1閾値以下の場合に前記リフレッシュ処理を実行し、
前記第1グループの疲弊度が前記第5閾値以上である場合、前記第1温度が前記第1閾値より高い第7閾値以下の場合に前記リフレッシュ処理を実行する
ように構成された、
請求項2記載のメモリシステム。 - 前記第1グループの疲弊度は、前記第1グループに対する書込み・消去サイクル数である、
請求項11記載のメモリシステム。 - 前記メモリコントローラは、
前記第1グループの疲弊度が第5閾値未満である場合、前記第2温度と前記第1温度との差が前記第3閾値以上の場合に前記リフレッシュ処理を実行し、
前記第1グループの疲弊度が前記第5閾値以上である場合、前記第2温度と前記第1温度との差が前記第3閾値より小さい第8閾値以上の場合に前記リフレッシュ処理を実行する
ように構成された、
請求項3記載のメモリシステム。 - 前記第1グループの疲弊度は、前記第1グループに対する書込み・消去サイクル数である、
請求項13記載のメモリシステム。 - 前記不揮発性メモリは、各々が前記複数のグループを含む複数のブロックを含み、
前記複数のブロックの各々は、消去処理の単位である、
請求項1記載のメモリシステム。 - 前記複数のグループの各々に含まれる前記複数のメモリセルは、同一のワード線に共通接続される、
請求項15記載のメモリシステム。 - 前記複数のグループの各々は、消去処理の単位である、
請求項1記載のメモリシステム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020157798A JP2022051363A (ja) | 2020-09-18 | 2020-09-18 | メモリシステム |
TW110121453A TWI776547B (zh) | 2020-09-18 | 2021-06-11 | 記憶體系統 |
TW111128058A TWI835222B (zh) | 2020-09-18 | 2021-06-11 | 記憶體系統 |
US17/349,248 US11462256B2 (en) | 2020-09-18 | 2021-06-16 | Memory system |
CN202110755924.2A CN114203214A (zh) | 2020-09-18 | 2021-07-05 | 存储器*** |
US17/888,065 US11710515B2 (en) | 2020-09-18 | 2022-08-15 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020157798A JP2022051363A (ja) | 2020-09-18 | 2020-09-18 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022051363A true JP2022051363A (ja) | 2022-03-31 |
Family
ID=80645834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020157798A Pending JP2022051363A (ja) | 2020-09-18 | 2020-09-18 | メモリシステム |
Country Status (4)
Country | Link |
---|---|
US (2) | US11462256B2 (ja) |
JP (1) | JP2022051363A (ja) |
CN (1) | CN114203214A (ja) |
TW (2) | TWI776547B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220121406A (ko) * | 2021-02-25 | 2022-09-01 | 삼성전자주식회사 | 메모리 장치 및 그 동작방법 |
JP2023119953A (ja) * | 2022-02-17 | 2023-08-29 | キオクシア株式会社 | メモリシステム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4701807B2 (ja) | 2005-04-21 | 2011-06-15 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置及び不揮発性記憶システム |
US8213255B2 (en) * | 2010-02-19 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile storage with temperature compensation based on neighbor state information |
US20170034551A1 (en) | 2015-07-29 | 2017-02-02 | GM Global Technology Operations LLC | Dynamic screen replication and real-time display rendering based on media-application characteristics |
US10446242B2 (en) * | 2016-05-27 | 2019-10-15 | Western Digital Technologies, Inc. | Temperature variation compensation |
US11481126B2 (en) | 2016-05-24 | 2022-10-25 | Micron Technology, Inc. | Memory device error based adaptive refresh rate systems and methods |
US10991421B2 (en) * | 2016-09-19 | 2021-04-27 | Bar-Ilan University | Complementary dual-modular redundancy memory cell |
JP6779822B2 (ja) * | 2017-03-24 | 2020-11-04 | キオクシア株式会社 | メモリシステム |
US20190074051A1 (en) * | 2017-09-07 | 2019-03-07 | Mediatek Inc. | Memory system and refresh control method thereof |
JP2019057194A (ja) * | 2017-09-22 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム、及び不揮発性メモリの制御方法 |
TWI646548B (zh) | 2017-11-16 | 2019-01-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行刷新管理之方法以及記憶裝置及其控制器 |
US11056166B2 (en) * | 2019-07-17 | 2021-07-06 | Micron Technology, Inc. | Performing a refresh operation based on a characteristic of a memory sub-system |
-
2020
- 2020-09-18 JP JP2020157798A patent/JP2022051363A/ja active Pending
-
2021
- 2021-06-11 TW TW110121453A patent/TWI776547B/zh active
- 2021-06-11 TW TW111128058A patent/TWI835222B/zh active
- 2021-06-16 US US17/349,248 patent/US11462256B2/en active Active
- 2021-07-05 CN CN202110755924.2A patent/CN114203214A/zh active Pending
-
2022
- 2022-08-15 US US17/888,065 patent/US11710515B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI776547B (zh) | 2022-09-01 |
US11462256B2 (en) | 2022-10-04 |
CN114203214A (zh) | 2022-03-18 |
TWI835222B (zh) | 2024-03-11 |
TW202213330A (zh) | 2022-04-01 |
US20220093169A1 (en) | 2022-03-24 |
US20220392523A1 (en) | 2022-12-08 |
US11710515B2 (en) | 2023-07-25 |
TW202247179A (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240021250A1 (en) | Memory system | |
US10324788B2 (en) | Memory system | |
JP2020038738A (ja) | 不揮発性メモリ及びメモリシステム | |
JP2008123330A (ja) | 不揮発性半導体記憶装置 | |
US12033705B2 (en) | Memory system, control method thereof, and program | |
JP2020155180A (ja) | メモリ読み出し方法及びメモリシステム並びにコンピュータ・プログラム | |
JP7128088B2 (ja) | メモリシステム | |
US10860251B2 (en) | Semiconductor memory device | |
US11710515B2 (en) | Memory system | |
JP7512136B2 (ja) | メモリシステム及び情報処理システム | |
JP2020119618A (ja) | メモリシステム | |
JP6652472B2 (ja) | メモリシステムおよび制御方法 | |
US11216208B1 (en) | Memory system, memory controller, and operation method of memory system | |
JP2021039810A (ja) | メモリシステム | |
US11715535B2 (en) | Semiconductor storage device | |
US12001687B2 (en) | Memory system | |
TWI764569B (zh) | 半導體記憶裝置 | |
US20240127893A1 (en) | Memory system | |
JP2019164847A (ja) | メモリシステム | |
US20230170032A1 (en) | Semiconductor device, memory system and semiconductor memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20230106 |