JP2022038210A - メモリシステム及びメモリシステムの制御方法 - Google Patents

メモリシステム及びメモリシステムの制御方法 Download PDF

Info

Publication number
JP2022038210A
JP2022038210A JP2020142585A JP2020142585A JP2022038210A JP 2022038210 A JP2022038210 A JP 2022038210A JP 2020142585 A JP2020142585 A JP 2020142585A JP 2020142585 A JP2020142585 A JP 2020142585A JP 2022038210 A JP2022038210 A JP 2022038210A
Authority
JP
Japan
Prior art keywords
write
memory
channel
data
progress
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020142585A
Other languages
English (en)
Inventor
千穂子 繁田
Chihoko Shigeta
和也 橘内
Kazuya Kitsunai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2020142585A priority Critical patent/JP2022038210A/ja
Priority to US17/147,519 priority patent/US11645001B2/en
Publication of JP2022038210A publication Critical patent/JP2022038210A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

【課題】データのライト速度の低下を抑制するメモリシステム及びメモリシステムの制御方法を提供する。【解決手段】メモリシステムは、各々が複数のメモリセルを含む第1不揮発性メモリ及び第2不揮発性メモリと、第1不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第1セットと、第2不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第2セットと、を並行して実行するメモリコントローラと、を備える。メモリコントローラは、並行して実行される複数のライト処理の第1セットと複数のライト処理の第2セットとの間の進捗の差に基づいて、複数のライト処理の第1セット及び複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理の設定を変更する。【選択図】図14

Description

実施形態は、メモリシステム及びメモリシステムの制御方法に関する。
データを不揮発に記憶することが可能な不揮発性メモリとしてのNANDフラッシュメモリと、当該NANDフラッシュメモリを制御するメモリコントローラと、を備えるメモリシステムが知られている。メモリコントローラには、複数のNANDフラッシュメモリが、互いに並列に動作可能に接続される。これにより、データのライト速度の高速化が図られる。
特開2019-164487号公報 特開2010-152778号公報 米国特許第9852061号明細書
データのライト速度の低下を抑制するメモリシステム及びメモリシステムの制御方法を提供する。
実施形態のメモリシステムは、各々が複数のメモリセルを含む第1不揮発性メモリ及び第2不揮発性メモリと、上記第1不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第1セットと、上記第2不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第2セットと、を並行して実行するように構成されたメモリコントローラと、を備える。上記メモリコントローラは、上記並行して実行される上記複数のライト処理の第1セットと上記複数のライト処理の第2セットとの間の進捗の差に基づいて、上記複数のライト処理の第1セット及び上記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理の設定を変更するように構成される。
第1実施形態に係るメモリシステムを含む構成を説明するためのブロック図。 第1実施形態に係るNANDフラッシュメモリとメモリコントローラとの接続関係を説明するためのブロック図。 第1実施形態に係るNANDフラッシュメモリに割り当てられるメモリ空間の一例を説明するためのブロック図。 第1実施形態に係る論理ブロックを説明するための概念図。 第1実施形態に係るメモリコントローラのライト処理に関する機能構成を説明するためのブロック図。 第1実施形態に係るメモリシステムにおける進捗管理テーブルを説明するための概念図。 第1実施形態に係るNANDチップの構成を説明するためのブロック図。 第1実施形態に係るメモリセルアレイ内の物理ブロックの構成を説明するための回路図。 第1実施形態に係るメモリシステムにおけるライト処理の概要を説明するための模式図。 第1実施形態に係るメモリシステムによって実行されるライト処理を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのコマンドシーケンス及びタイミングチャート。 比較例に係るメモリシステムによるライト処理を説明するための模式図。 第1実施形態に係るメモリシステムによるライト処理を説明するための模式図。 第2実施形態に係るメモリシステムによって実行されるライト処理を説明するためのフローチャート。 第2実施形態に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのフローチャート。 第2実施形態に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのコマンドシーケンス及びタイミングチャート。 第3実施形態に係るメモリシステムによって実行されるライト処理を説明するためのフローチャート。 第3実施形態に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのフローチャート。 第3実施形態に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのコマンドシーケンス及びタイミングチャート。 第1変形例に係るメモリシステムによって実行されるライト処理を説明するためのフローチャート。 第1変形例に係るメモリシステムにおけるチャネル毎の進捗を考慮したライト処理を説明するためのフローチャート。
以下、実施形態につき図面を参照して説明する。この説明に際し、略同一の機能及び構成を有する構成要素については、同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
1.第1実施形態
第1実施形態について説明する。以下では、不揮発性メモリとしてNAND型フラッシュメモリを含むメモリシステムについて説明する。
1.1 構成
1.1.1 メモリシステム
(メモリシステムの全体構成)
まず、メモリシステム1を含む全体構成について、図1を用いて説明する。
図1に示すように、メモリシステム1は、不揮発性メモリ10、揮発性メモリ20、及びメモリコントローラ30を含み、外部のホスト機器2に接続される。不揮発性メモリ10、揮発性メモリ20、及びメモリコントローラ30は、例えばそれらの組み合わせにより一つの半導体記憶装置を構成してもよく、その例としてはSDTMカードのようなメモリカードや、UFS(universal flash storage)、SSD(solid state drive)等が挙げられる。
不揮発性メモリ10(以下、NANDフラッシュメモリ10)は、例えば複数のメモリセルトランジスタを含むNANDフラッシュメモリであり、ホスト機器2から書き込みを指示されたデータ(以下、ライトデータ)をデータ100として不揮発に記憶する。
揮発性メモリ20(以下、DRAM20)は、例えばDRAM(Dynamic random access memory)であり、NANDフラッシュメモリ10を管理するためのファームウェアや、ルックアップテーブル200等の各種の管理情報を記憶する。ルックアップテーブル200は、ホスト機器2によってライトデータに論理的に関連づけられた論理アドレスと、NANDフラッシュメモリ10内の物理的な記憶領域に関連づけられた物理アドレスと、を互いに関連づけた情報である。
メモリコントローラ30は、ホスト機器2からの命令に応答して、NANDフラッシュメモリ10にライトデータを書き込むと共に、当該ライトデータが不揮発化されたことを反映するためにDRAM20内のルックアップテーブル200を更新する。
メモリコントローラ30は、プロセッサ(CPU)31、ホストインタフェース回路32、バッファメモリ33、NANDインタフェース回路34、DRAMインタフェース回路35、及びECC回路36を含む。
プロセッサ31は、ROM(Read only memory)又はNANDフラッシュメモリ10に記憶されたプログラムをロードすることによってメモリコントローラ30全体の動作を制御する。例えば、プロセッサ31は、ウェアレベリング等、NANDフラッシュメモリ10内のメモリ空間を管理するための様々な処理を実行する。また、プロセッサ31は、ホスト機器2から受信した書込みコマンド(ホストライトコマンド)に応答して、NANDフラッシュメモリ10への書込みコマンド(CNTライトコマンド)を発行し、NANDフラッシュメモリ10へライトデータを書き込む処理(ライト処理)を実行させる。以下の説明では、説明の便宜上、1回のライト処理は、1つのCNTライトコマンドに対応して実行されるものとする。
ホストインタフェース回路32は、ホストバスによってホスト機器2と接続され、ホスト機器2との通信を司る。例えば、ホストインタフェース回路32は、ホスト機器2から受信した命令及びデータをそれぞれ、プロセッサ31及びバッファメモリ33に転送する。またホストインタフェース回路32は、プロセッサ31の命令に応答して、バッファメモリ33内のデータをホスト機器2に転送する。
バッファメモリ33は、例えばSRAM(Static random access memory)であり、メモリコントローラ30がNANDフラッシュメモリ10から読み出したデータや、ホスト機器2から受信したライトデータ等を一時的に記憶する。
NANDインタフェース回路34は、NANDバスによってNANDフラッシュメモリ10と接続され、NANDフラッシュメモリ10との通信を司る。
ECC回路36は、データのエラー訂正(ECC:Error Checking and Correcting)に関する処理を行う。具体的には、ECC回路36は、ライト処理時には誤り訂正符号(パリティ)を生成して、これをライトデータに付与する。また、ECC回路36は、リード処理時にはNANDフラッシュメモリ10から読み出したデータを復号し、誤りビットの有無を検出する。そして誤りビットが検出された際には、ECC回路36は、その誤りビットの位置を特定し、誤りを訂正する。ライトデータに付与される誤り訂正符号のビット長が長いほど、訂正できる誤りビット数の上限値(誤りビット数上限値)は増加する。
図2は、第1実施形態に係るNANDフラッシュメモリとメモリコントローラとの接続関係を示すブロック図である。図2に示すように、NANDフラッシュメモリ10は、例えば、各々が不揮発性メモリとしての機能を独立に有する複数のNANDチップ10<>(10<0,0>、10<0,1>、10<0,2>、10<0,3>、10<1,0>、10<1,1>、10<1,2>、10<1,3>、10<2,0>、10<2,1>、10<2,2>、10<2,3>、10<3,0>、10<3,1>、10<3,2>、及び10<3,3>)を含む。複数のNANDチップ10<>の各々は、NANDインタフェース回路34に接続される。具体的には、各々が図2において同一行に位置するNANDチップの組10<0,0>~10<0,3>、10<1,0>~10<1,3>、10<2,0>~10<2,3>、及び10<3,0>~10<3,3>はそれぞれ、共通のNANDバスを介してNANDインタフェース回路34に接続される。
以下では、NANDチップの組10<0,0>~10<0,3>、10<1,0>~10<1,3>、10<2,0>~10<2,3>、及び10<3,0>~10<3,3>とNANDインタフェース回路34との接続経路をそれぞれ、チャネルCH0、CH1、CH2、及びCH3とも呼ぶ。
また、各々が図2において同一列に位置するNANDチップの組10<0,0>~10<3,0>、10<0,1>~10<3,1>、10<0,2>~10<3,2>、及び10<0,3>~10<3,3>をそれぞれ、バンクBANK0、BANK1、BANK2、及びBANK3とも呼ぶ。すなわち、1つのバンクBANK内のNANDチップ10<>の数は、チャネルCHの数(図2の例では4個)に対応する。
なお、図2では、チャネルCHの数が4であり、バンクBANKの数が4である場合について示したが、これに限られず、チャネルCHの数、及びバンクBANKの数は任意に設定可能である。
また、説明の便宜上、不揮発性メモリとしての機能を有する最小単位をNANDチップ10<>として説明するが、NANDチップ10<>は、単一のチップに形成される必要は無く、複数のチップにわたって形成されてもよい。また、複数のNANDチップ10<>が単一のチップに形成されてもよい。
(論理ブロック)
図3は、第1実施形態に係るNANDフラッシュメモリに割り当てられるメモリ空間の一例を示すブロック図である。
図3に示すように、NANDフラッシュメモリ10のメモリ空間は、複数の論理ブロックLBLK(LBLK0、LBLK1、LBLK2、…、LBLKn)によって構成される(nは2以上の整数)。複数の論理ブロックLBLKの各々は、複数の論理ページLPG(LPG0、LPG1、LPG2、…、LPGm)によって構成される(mは2以上の整数)。メモリコントローラ30は、ライトデータを論理ブロックLBLK及び論理ページLPGと対応づけることにより、NANDフラッシュメモリ10内に記憶されるライトデータを特定することができる。なお、図3では、論理ブロックLBLK及び論理ページLPG0の各々の最小数が3である場合が示されるが、これに限らず、論理ブロックLBLK及び論理ページLPG0の各々の最小数は、任意の数に設定可能である。
図4は、図3に示された複数の論理ブロックLBLKのうちの1つの構成を模式的に示す概念図である。図4に示すように、1つの論理ブロックLBLKは、例えば、全てのNANDチップ10<>のうち、2つのバンクBANKに属するNANDチップ10<>にわたって割り当てられる。図4及び図2の例では、バンクBANK0に属するNANDチップ10<0,0>、10<1,0>、10<2,0>、及び10<3,0>、並びにバンクBANK1に属するNANDチップ10<0,1>、10<1,1>、10<2,1>、及び10<3,1>にわたって割り当てられる論理ブロックLBLKが示される。バンクBANK0に属するNANDチップ10<0,0>、10<1,0>、10<2,0>、及び10<3,0>、並びにバンクBANK1に属するNANDチップ10<0,1>、10<1,1>、10<2,1>、及び10<3,1>にわたるメモリ空間内には、図4に示されたような論理ブロックLBLKが複数個割り当てられる。同様に、バンクBANK2に属するNANDチップ10<0,2>、10<1,2>、10<2,2>、及び10<3,2>、並びにバンクBANK3に属するNANDチップ10<0,3>、10<1,3>、10<2,3>、及び10<3,3>にわたるメモリ空間内にも、図4に図示された論理ブロックLBLKと同等のサイズを有する論理ブロックLBLKが複数個割り当てられる。
(機能構成)
図5は、第1実施形態に係るメモリコントローラのライト処理に関する機能構成を示すブロック図である。図5に示すように、メモリコントローラ30において、ライト処理を実行する際、プロセッサ31は、ホストライトコマンド処理部310、CNTライトコマンド発行部320、NANDパラメタ処理部340、及び論理ブロック管理部350として機能し、バッファメモリ33は、ライトバッファ330として機能する。
ホストライトコマンド処理部310は、ホスト機器2からホストライトコマンドを受けると、メモリシステム1におけるライト処理の全体を制御する。ホストライトコマンド処理部310は、ライト進捗管理部311及びライトデータ管理部312を含む。
ライト進捗管理部311は、NANDフラッシュメモリ10からライト完了通知を受けると、進捗管理テーブル313を更新することにより、ライト処理の進捗状況をチャネルCH毎に管理する。
図6は、第1実施形態に係る進捗管理テーブルの構成を示す概念図である。
図6に示すように、進捗管理テーブル313には、チャネルCH毎のライト完了論理ページ数が記憶される。或るチャネルCHのライト完了論理ページ数は、複数の論理ページLPGにわたるライトデータのうち当該チャネルCHに対応する部分の書込み進捗を表す。ライト完了論理ページ数は、複数の論理ページLPGにわたるライトデータが複数のライト処理によって書き込まれる場合に、当該複数のライト処理の開始時に有効となり、当該複数のライト処理が全て完了すると、リセットされればよい。
ライト進捗管理部311は、或る論理ページLPGに対するライト処理が完了するたびに、進捗管理テーブル313のうち、当該完了したライト処理が実行されたチャネルCHのライト完了論理ページ数を更新する。
再び図5に戻って、ライト処理に関するメモリコントローラ30の機能構成について説明する。
ライトデータ管理部312は、進捗管理テーブル313を参照することにより、チャネルCH間に生じるライト処理の進捗の差を把握する。ライトデータ管理部312は、当該進捗の差が所定の閾値未満となるように、ライト処理に関する種々のパラメタを制御する。
具体的には、例えば、ライトデータ管理部312は、NANDフラッシュメモリ10に書き込むデータ(データ内容)をライトデータとするかNULLデータとするかをライト処理毎に決定する。ライトデータ管理部312は、当該決定されたデータ内容をCNTライトコマンド発行部320に送出する。NULLデータは、ホスト機器2からのライトデータとは無関係なデータであり、例えば、閾値電圧が消去状態のメモリセルトランジスタに記憶されるデータに対応する。
また、ライトデータ管理部312は、ライト処理においてメモリセルトランジスタに何ビットのデータを書き込むかを指定するライトモードをライト処理毎に決定する。例えば、ライトデータ管理部312は、SLC(Single-Level Cell)モード、MLC(Multi-Level Cell)モード、及びTLC(Triple-Level Cell)モードを使用可能である。SLCモード、MLCモード、及びTLCモードは、1つのメモリセルトランジスタに対して、それぞれ1ビットデータ、2ビットデータ、及び3ビットデータを記憶させるライトモードである。ライトデータ管理部312は、当該決定されたライトモードをCNTライトコマンド発行部320に送出する。
また、ライトデータ管理部312は、NANDフラッシュメモリ10にライトデータが書き込まれる時間tPROGの上限値(ライト時間上限値)をライト処理毎に決定し、当該決定されたライト時間上限値をNANDパラメタ処理部340に送出する。また、ライトデータ管理部312は、誤りビット数上限値をライト処理毎に決定し、当該決定された誤りビット数上限値を論理ブロック管理部350に送出する。
CNTライトコマンド発行部320は、ホストライトコマンド処理部310からデータ内容及びライトモードを含むライト指示を受けると、当該ライト指示に基づいてNANDフラッシュメモリ10にデータを書き込む旨を指示するCNTライトコマンドを発行する。NANDフラッシュメモリ10は、CNTライトコマンドを受けると、指定された内容のデータを、指定されたライトモードを使用して記憶する。ライト処理の完了後、NANDフラッシュメモリ10は、ライト完了通知をメモリコントローラ30に送出する。
また、CNTライトコマンド発行部320は、NANDフラッシュメモリ10におけるライト処理が完了後、当該ライト処理によって更新された論理アドレスと物理アドレスとの対応関係を含むアドレス更新情報をDRAM20に書き込む旨を指示するCNTライトコマンドを発行し、当該CNTライトコマンドをDRAM20に送出する。これにより、DRAM20は、アドレス更新情報に応じてルックアップテーブル200を最新の状態に更新できる。
ライトバッファ330は、所定の数の論理ページ(例えば、2論理ページ)分のメモリサイズを有し、ホスト機器2からのライトデータを一時的に記憶して、ライト処理の際に当該ライトデータをCNTライトコマンド発行部320に送出する。ライトバッファ330は、1論理ページ分のライト処理が完了すると、当該1論理ページ分のライトデータを消去又は無効化し、ホスト機器2からの新たなライトデータを記憶する。ライトバッファ330内に記憶されるライトデータは、ライト処理の進捗に応じてホストライトコマンド処理部310によって適宜管理される。
NANDパラメタ処理部340は、NANDフラッシュメモリ10に関する種々のパラメタ(例えば、ライト時間上限値)をNANDチップ10<>毎に管理する。ライト時間上限値の変更をライトデータ管理部312から通知された場合、NANDパラメタ処理部340は、ライト処理に先立ち、対応するNANDチップ10<>にライト時間上限値の変更を指示する。例えば、NANDパラメタ処理部340が当該ライト時間上限値を変更する旨をホストライトコマンド処理部310に通知すると、ホストライトコマンド処理部310は、CNTライトコマンド発行部320を介して、変更対象のNANDチップ10<>にライト時間上限値の変更を指示する旨を指示する。
論理ブロック管理部350は、ライト処理における論理ブロックLBLKに関する種々のパラメタ(例えば、誤りビット数上限値)をチャネルCH毎に管理する。誤りビット数上限値の変更をライトデータ管理部312から通知された場合、論理ブロック管理部350は、ライト処理に先立ち、対応するチャネルCHの誤りビット数上限値の変更をECC回路36に指示する。
以上のような構成により、チャネルCH間のライト処理の進捗ずれに応じて、種々の設定が変更されたライト処理が実行される。
1.1.2 NANDチップ
次に、第1実施形態に係るメモリシステムのNANDチップの構成について説明する。
図7は、第1実施形態に係るNANDチップの構成を示すブロック図である。図7では、チャネルCH0を介したメモリコントローラ30とNANDチップ10<>との接続関係と、チャネルCH0に接続されたNANDチップ10<>の構成の具体例としてのNANDチップ10<0,0>の構成と、が一例として示される。なお、NANDチップ10<0,0>以外のNANDチップ10<>は、NANDチップ10<0,0>と同等の構成を有するため、説明を省略する。また、チャネルCH1~CH3は、メモリコントローラ30との間において、チャネルCH0と同等の接続関係を有するため、説明を省略する。
図7に示すように、NANDチップ10<0,0>は、メモリセルアレイ11(11_0及び11_1)、入出力回路12、ロジック制御回路13、レジスタ14、シーケンサ15、電圧生成回路16、ドライバセット17、ロウデコーダ18(18_0及び18_1)、及びセンスアンプ19(19_0及び19_1)を備える。メモリセルアレイ11_0、ロウデコーダ18_0、及びセンスアンプ19_0は、プレーンPLANE0を構成する。メモリセルアレイ11_1、ロウデコーダ18_1、及びセンスアンプ19_1は、プレーンPLANE1を構成する。
プレーンPLANE0及びPLANE1は、同等の構成を有し、NANDチップ10<0,0>内の他の構成に対して並列に接続される。これにより、プレーンPLANE0及びPLANE1は、NANDチップ10<0,0>内で並列に動作し得る。以下に示すメモリセルアレイ11、ロウデコーダ18、及びセンスアンプ19の説明は、プレーンPLANE0及びPLANE1の各々について同等に適用される。
メモリセルアレイ11は、各々がビット線及びワード線に関連付けられた複数の不揮発性のメモリセルトランジスタの集合である複数の物理ブロックPBLKを含む。物理ブロックPBLKは、例えば、データの消去単位となり、物理ブロックPBLKのメモリサイズの整数倍は、論理ブロックLBLKのメモリサイズに相当する。図7では一例として4つの物理ブロックPBLK0~PBLK3が図示される。
入出力回路12及びロジック制御回路13は、メモリコントローラ30との間でNANDインタフェースに従う信号を送受信する。
具体的には、入出力回路12は、8ビットの入出力信号DQ<7:0>、信号DQS、及び/DQSを、メモリコントローラ30との間で送受信する。入出力信号DQ<7:0>は、データDAT、アドレスADD、及びコマンドCMD等を含む。信号DQSはストローブ信号である。信号/DQSは、信号DQSの反転信号である。入出力回路12は、信号DQ<7:0>内のアドレスADD及びコマンドCMDをレジスタ14に転送する。入出力回路12は、ライトデータ及びリードデータDATをセンスアンプ19と送受信する。
ロジック制御回路13は、メモリコントローラ30から信号/CE、CLE、ALE、/WE、RE、/RE、及び/WPを受信する。また、ロジック制御回路13は、信号/RBをメモリコントローラ30に転送してNANDチップ10<0,0>の状態を外部に通知する。
信号/CEは、NANDチップ10<0,0>をイネーブル状態にするための信号であり、“L(Low)”レベルに切り替わることによりアサートされる。イネーブル状態のNANDチップ10<0,0>は、例えば、その他の信号CLE、ALE、/WE、RE、/RE、/WP、DQ<7:0>、DQS、及び/DQSが自身に向けられたものであると認識してこれらを内部に取り込み、自身の状態に応じた信号/RBをメモリコントローラ30に送出するように構成される。
信号CLE及びALEは、NANDチップ10<0,0>への入力信号DQ<7:0>がそれぞれコマンド及びアドレスであることをNANDチップ10<0,0>に通知する信号である。具体的には、例えば、信号CLE及びALEは、それぞれ“H(High)”レベル及び“L”レベルの場合、入力信号DQ<7:0>がコマンドCMDであることをNANDチップ10<0,0>に通知し、それぞれ“L”レベル及び“H”レベルの場合、入力信号DQ<7:0>がアドレスADDであることをNANDチップ10<0,0>に通知する。また、信号CLE及びALEは、いずれも“L”レベルの場合、入力信号DQ<7:0>がデータDATであることをNANDチップ10<0,0>に通知する。
信号/WEは、“L”レベルでアサートされ、入力信号DQ<7:0>をNANDチップ10<0,0>に取り込ませるための信号である。信号/REは、“L”レベルでアサートされ、NANDチップ10<0,0>から出力信号DQ<7:0>を読み出すための信号である。信号REは、信号/REの反転信号である。信号/WPは、“L”レベルでアサートされ、NANDチップ10<0,0>への書込みを禁止するための信号である。
信号/RBは、NANDチップ10<0,0>がレディ状態(メモリコントローラ30からの命令を受信出来る状態)であるか、それともビジー状態(メモリコントローラ30からの命令を受信出来ない状態)であるかを示す信号であり、“L”レベルがビジー状態を示す。
メモリコントローラ30のNANDインタフェース回路34は、例えば、上述した各種信号DQ<7:0>、DQS、/DQS、/CE、CLE、ALE、/WE、RE、/RE、/WP、及び/RBの各々を、チャネルCH0に属するNANDチップ10<0,0>~10<0,3>に対して共通の信号線を用いて通信する。
レジスタ14は、入出力回路12を介してメモリコントローラ30から受信したアドレスADD及びコマンドCMDを記憶する。
シーケンサ15は、レジスタ14に記憶されたコマンドCMDに基づき、NANDチップ10<0,0>全体の動作を制御する。
電圧生成回路16は、リード処理、ライト処理、イレース処理等で使用される電圧を生成する。ドライバセット17は、電圧生成回路16によって生成された電圧を、メモリセルアレイ11、ロウデコーダ18、及びセンスアンプ19に供給する。
ロウデコーダ18は、レジスタ14内のアドレスに基づいて物理ブロックPBLK0~PBLK3のいずれかを選択し、更に選択した物理ブロックPBLKにおいてワード線を選択する。
センスアンプ19は、データのライト処理において、メモリコントローラ30から受信したライトデータDATを、メモリセルアレイ11に転送する。また、センスアンプ19は、データのリード処理において、メモリセルアレイ11内のメモリセルトランジスタの閾値電圧をセンスし、当該センス結果に基づくリードデータDATを読み出す。
図8は、第1実施形態に係るメモリセルアレイ内の物理ブロックの構成を示す回路図である。図8では、メモリセルアレイ11に含まれる複数の物理ブロックPBLKのうち1つが示される。
図8に示すように、物理ブロックPBLKは、例えば4つのストリングユニットSU(SU0~SU3)を含む。各ストリングユニットSUは、ビット線BL0~BLk(kは1以上の整数)にそれぞれ関連付けられた複数のNANDストリングNSを含む。各NANDストリングNSは、例えば8個のメモリセルトランジスタMT0~MT7、並びに選択トランジスタST1及びST2を含む。選択トランジスタST1及びST2のそれぞれは、各種動作時におけるストリングユニットSUの選択に使用される。メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を含み、データに対応する電荷(電子)を不揮発に蓄える。メモリセルトランジスタMTは、ライト処理に適用されるライトモードに応じて、異なるビット数のデータを記憶可能に構成される。
各NANDストリングNSにおいて、メモリセルトランジスタMT0~MT7は、直列接続される。選択トランジスタST1のドレインは、関連付けられたビット線BLに接続され、選択トランジスタST1のソースは、直列接続されたメモリセルトランジスタMT0~MT7の一端に接続される。選択トランジスタST2のドレインは、直列接続されたメモリセルトランジスタMT0~MT7の他端に接続される。選択トランジスタST2のソースは、ソース線SLに接続される。
同一の物理ブロックPBLKにおいて、メモリセルトランジスタMT0~MT7の制御ゲートは、それぞれワード線WL0~WL7に共通接続される。ストリングユニットSU0~SU3内の選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0~SGD3に共通接続される。選択トランジスタST2のゲートは、選択ゲート線SGSに共通接続される。
つまり、物理ブロックPBLKは、同一のワード線WL0~WL7を共有する複数のストリングユニットSUの集合体である。ブロックBLKは、例えばデータの消去単位である。すなわち、同一の物理ブロックPBLK内に含まれるメモリセルトランジスタMTに蓄えられるデータは、一括して消去される。
ストリングユニットSUは、各々が異なるビット線BLに接続され且つ同一のセレクトゲート線SGDに接続された、複数のNANDストリングNSの集合体である。ストリングユニットSUのうち、同一のワード線WLに共通接続されたメモリセルトランジスタMTの集合体を、セルユニットCUとも呼ぶ。例えば、セルユニットCU内の複数のメモリセルトランジスタMT内に記憶された同位ビットの集合が、「1物理ページ」として定義される。つまり、ライト処理においてSLCモード、MLCモード、及びTLCモードが適用された場合、セルユニットCUには、1物理ページデータ、2物理ページデータ、及び3物理ページデータがそれぞれ記憶される。セルユニットCUに記憶される物理ページのメモリサイズの整数倍は、論理ページLPGのメモリサイズに相当する。
なお、以上で説明したメモリセルアレイ11の回路構成は、以上で説明した構成に限定されない。例えば、各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタST1及びST2の個数は、それぞれ任意の個数に設計され得る。各ブロックBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。
1.2 動作
次に、第1実施形態に係るメモリシステムの動作について説明する。
1.2.1 ライト処理の概要
図9は、第1実施形態に係るメモリシステムにおけるライト処理の概要を示す模式図である。図9では、或る論理ブロックLBLK内の複数の論理ページLPGにわたって(論理ページLPG0、LPG1、LPG2、…の順に)ライト処理が実行される場合が示される。
図9に示すように、ライト処理の実行単位は、例えば、1論理ページLPGのうち、1つのチャネルCH内の1つのバンクBANKに対応する部分(図9の斜線部分)に対して実行される。すなわち、CNTライトコマンド発行部320は、ライト処理の当該実行単位毎にCNTライトコマンドを発行し、NANDフラッシュメモリ10に対してライトデータの書込みを指示する。なお、CNTライトコマンドは、単一のコマンドセットである必要はなく、上述したセルユニットCU毎、又は物理ページ毎に発行される複数のコマンドセットを含んでいてもよい。
また、メモリシステム1は、チャネルCH毎に並行してライト処理を実行可能に構成される。具体的には、NANDフラッシュメモリ10は、チャネルCH0~CH3の4つのライト処理を並行して実行できる。つまり、図9の例では、論理ページLPG0のバンクBANK0、論理ページLPG0のバンクBANK1、論理ページLPG1のバンクBANK0、論理ページLPG1のバンクBANK1、論理ページLPG2のバンクBANK0、及び論理ページLPG2のバンクBANK1、…、の順にシーケンシャルに実行される複数のライト処理が、チャネルCH0~CH3で並列に実行される。
1.2.2 フローチャート
次に、第1実施形態に係るメモリシステムにおけるライト処理について、図10及び図11に示すフローチャートを用いて説明する。
図10に示すように、S10において、ホストライトコマンド処理部310は、ホスト機器2からライトデータを受信する。ライトデータ管理部312は、ライトバッファ330にライトデータを一時的に記憶する。
S20において、ライトデータ管理部312は、図9に示したライト処理の実行単位分のライトデータを受信したか否かを判定する。ライト処理の実行単位分のライトデータを受信したと判定された場合(S20;yes)、処理はS30に進む。ライト処理の実行単位分のライトデータを受信していないと判定された場合(S20;no)、処理はS10に戻る。すなわち、ライトデータ管理部312は、ライト処理の実行単位分のライトデータがライトバッファ330内に記憶されるまで、ホスト機器2からのライトデータの受信を継続する。
S30において、ホストライトコマンド処理部310からの指示に基づき、CNTライトコマンド発行部320は、チャネルCH毎の進捗を考慮したライト処理を実行する。S30の詳細については、図11を用いて後述する。S30におけるライト処理において、メモリコントローラ30は、NANDフラッシュメモリ10からライト完了通知を受ける。
S40において、ライト進捗管理部311は、ライト完了通知に基づき、進捗管理テーブル313を更新する。
S50において、ライトデータ管理部312は、S40において更新された進捗管理テーブル313を参照し、進捗が更新されたチャネルCHより、ライト完了論理ページ数が閾値以上多いチャネルCHがあるか否かを判定する。
進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上多いチャネルCHがある場合(S50;yes)、処理はS60に進む。S60において、ライトデータ管理部312は、進捗が更新されたチャネルCHのライト時間上限値を減少させる旨の指示をNANDパラメタ処理部340に送出する。NANDパラメタ処理部340は、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHのライト時間上限値を減少させる。S70において、ライトデータ管理部312は、進捗が更新されたチャネルCHにNULLデータを書き込む旨の指示をCNTライトコマンド発行部320に送出する。S70が終了すると、処理はS100に進む。
一方、進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上多いチャネルCHがない場合(S50;no)、処理はS80に進む。S80において、ライトデータ管理部312は、進捗が更新されたチャネルCHのライト時間上限値が変更済みであるか否か(すなわち、ライト時間上限値は既にS60によって減少しているか否か)を判定する。ライト時間上限値が変更済みである場合(S80;yes)、処理はS90に進む。S90において、NANDパラメタ処理部340は、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHのライト時間上限値及びデータ内容を元の設定値に戻す。S90が終了すると、処理はS100に進む。進捗が更新されたチャネルCHのライト時間上限値が変更済みでない(すなわち、ライト時間上限値が元の設定値のままである)場合(S80;no)、処理はS90を省略し、S100に進む。
S100において、ライトデータ管理部312は、受信した全てのライトデータのライト処理が完了したか否かを判定する。受信した全てのライトデータのライト処理が完了している場合(S100;yes)、ライト処理は終了する。一方、受信した全てのライトデータのライト処理が完了していない場合(S100;no)、処理はS30に戻る。これにより、受信した全てのライトデータのライト処理が完了するまで、S30~S100の処理が繰り返される。
以上により、ライト処理が終了する。
なお、図10の例では、S80において、ライト時間上限値が変更済みであるか否かを判定する場合について記載したが、これに限られない。例えば、S80において、ライトデータ管理部312は、進捗が更新されたチャネルのデータ内容がNULLデータに変更済みであるか否かを判定してもよい。
次に、図11を参照して、図10のS30の詳細について説明する。
図11に示すように、S31において、CNTライトコマンド発行部320は、CNTライトコマンドの発行先のチャネル(ライト対象チャネル)CHのライト時間上限値がNANDパラメタ処理部340によって変更済みであるか否かを判定する。ライト対象チャネルCHのライト時間上限値が変更済みである(元の設定値より減少している)場合(S31;yes)、処理はS32に進む。
S32において、CNTライトコマンド発行部320は、NULLデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、ライト対象チャネルの論理ページLPG内にNULLデータを書き込むライト処理を実行する。ライト処理の完了後、NANDフラッシュメモリ10は、ライト完了通知をメモリコントローラ30に送出し、S33において、メモリコントローラ30は、ライト完了通知を受信する。
なお、NULLデータが書き込まれる場合、メモリセルアレイ11内にはホスト機器2からのライトデータが書き込まれないため、ルックアップテーブル200は更新されない。
一方、ライト対象チャネルCHのライト時間上限値が変更済みでない(元の設定値から減少していない)場合(S31;no)、処理はS34に進む。
S34において、CNTライトコマンド発行部320は、ライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、ライト対象チャネルの論理ページLPG内にライトデータを書き込むライト処理を実行する。
ライト処理の完了後、NANDフラッシュメモリ10は、ライト完了通知をメモリコントローラ30に送出し、S35において、メモリコントローラ30は、ライト完了通知を受信する。
S36において、CNTライトコマンド発行部320は、S34によってNANDフラッシュメモリ10内に書き込まれたライトデータのアドレス更新情報の書き込みを指示するCNTライトコマンドを発行し、DRAM20に送出する。これにより、DRAM20は、最新の状態を反映したルックアップテーブル200に更新される。
以上により、チャネルCH毎の進捗を考慮したライト処理が完了する。
1.2.3 コマンドシーケンス及びタイミングチャート
図12は、第1実施形態に係るメモリシステムにおけるライト処理を示すコマンドシーケンス及びタイミングチャートである。図12では、ライト処理の際の信号DQ及び/RBと、当該信号の通信に応じて選択ワード線WLselに印加される電圧が示される。ここで、選択ワード線WLselとは、ライト処理の対象となるメモリセルトランジスタMTに接続されたワード線WLである。また、図12(A)及び図12(B)ではそれぞれ、図11のS34に対応するライト処理(ライトデータを書き込む場合)、及びS32に対応するライト処理(NULLデータを書き込む場合)が示される。
なお、以下の説明では、説明の便宜上、ライトモードとしてTLCモードが適用され、1回のCNTライトコマンドに対応して3物理ページが書き込まれる場合が示される。
まず、図12(A)を参照してライトデータが書き込まれる場合について説明する。
図12(A)に示すように、CNTライトコマンド発行部320は、ライト処理を指示するコマンドセットCS1、CS2、及びCS3を順にNANDフラッシュメモリ10に送出する。例えば、コマンドセットCS1~CS3はそれぞれ、1つのセルユニットCUに書き込まれる3物理ページのライトデータのうちの1物理ページデータ分を含む。
NANDフラッシュメモリ10は、コマンドセットCS1を受けると、一時的にレディ状態からビジー状態に遷移し、センスアンプ19内のラッチ回路(図示せず)に最初の1物理ページデータを記憶する。
NANDフラッシュメモリ10は、コマンドセットCS2を受けると、一時的にレディ状態からビジー状態に遷移し、センスアンプ19内の更なるラッチ回路(図示せず)に、2つめの物理ページデータを記憶する。
NANDフラッシュメモリ10は、コマンドセットCS3を受けると、レディ状態からビジー状態に遷移し、センスアンプ19内の更なるラッチ回路(図示せず)に、3つめの物理ページデータを記憶する。そして、NANDフラッシュメモリ10は、記憶された3物理ページデータに基づくライト処理を開始する。ライト処理において、シーケンサ15は、プログラム動作を繰り返し実行する。
プログラム動作は、メモリセルトランジスタMTの閾値電圧を上昇させる動作である。プログラム動作において、選択ワード線WLselに接続されたライト対象の複数のメモリセルトランジスタMTは、各々の閾値電圧の高さに応じて閾値電圧の上昇が許容され、又は禁止される。すなわち、シーケンサ15は、ライト対象のメモリセルトランジスタMTのうち、閾値電圧が目標の状態に達していないメモリセルトランジスタMTをプログラム対象に設定し、閾値電圧が目標の状態に達しているメモリセルトランジスタMTをプログラム禁止に設定する。
プログラム動作では、選択ワード線WLselに印可される電圧を電圧VSSからプログラム電圧VPGMに上昇させる。電圧VSSは、接地電圧(例えば、0V)であり、プログラム電圧VPGMは、メモリセルトランジスタMTの閾値電圧を上昇させることが可能な程度に高い電圧である。選択ワード線WLselにプログラム電圧VPGMが印加されると、選択ワード線WLselに接続され、かつプログラム対象に設定されたメモリセルトランジスタMTの閾値電圧は上昇する。一方、選択ワード線WLselに接続され、かつプログラム禁止に設定されたメモリセルトランジスタMTは、例えば当該メモリセルトランジスタMTを含むNANDストリングNSがフローティング状態に制御されることにより、閾値電圧の上昇が抑制される。
プログラム電圧VPGMは、プログラム動作が繰り返される度にステップアップされる。つまり、選択ワード線WLselに印加されるプログラム電圧VPGMは、プログラム動作の回数に応じて高くなる。
プログラム動作の繰り返しにおいてシーケンサ15は、例えば目標の状態に達していないメモリセルトランジスタMTの数が所定の数を下回ったことを検知するか、又はライト処理がメモリコントローラ30から通知されたライト時間上限値を超えたことを検知するとライト処理を終了し、NANDフラッシュメモリ10をビジー状態からレディ状態に遷移させる。
ライトデータが書き込まれる場合、目標の状態に達していないメモリセルトランジスタMTの数が所定の数を十分下回ることができる程度の長さにライト時間上限値が設定される。このため、選択されたセルユニットCUには、ライト時間上限値以内に3物理ページデータを書き込むことができる。図示されたライト時間tPROG0は、3物理ページデータ分のライトデータの書込みに要した時間に対応している。
次に、図12(B)を参照してNULLデータが書き込まれる場合について説明する。
図12(B)に示すように、CNTライトコマンド発行部320は、コマンドセットCS1a、CS2a、及びCS3aを順にNANDフラッシュメモリ10に送出する。例えば、コマンドセットCS1a~CS3aはそれぞれ、1つのセルユニットCUに書き込まれる(しかし実際には書き込まれない)3物理ページのNULLデータのうちの1物理ページデータ分を含む。コマンドセットCS1a~CS3aによるセンスアンプ19へのデータ入力動作は、図12(A)の場合と同様である。
1つのセルユニットCUに書き込まれる3物理ページデータが全てNULLデータの場合、当該セルユニットCU内の全てのメモリセルトランジスタMTの目標の状態は、例えば、消去状態となり得る。これにより、選択ワード線WLselに接続されたライト対象の全てのメモリセルトランジスタMTは、閾値電圧の上昇が禁止される。このため、NULLデータのライト処理では、シーケンサ15は、プログラム電圧VPGMの印加を開始する前に、目標の状態に達していないメモリセルトランジスタMTの数が所定の数を下回ったことを検知して、ライト処理を終了する。
なお、上述の通り、NULLデータのライト処理では、ライトデータのライト処理の場合よりも短いライト時間上限値が設定される。このため、NULLデータのライト処理が消去状態以外の状態を目標の状態に対応する場合においても、シーケンサ15は、ライトデータのライト処理の場合よりも少ない回数のプログラム動作で強制的にライト処理を終了する。
したがって、NULLデータのライト処理におけるライト時間tPROG1を、ライトデータのライト処理におけるライト時間tPROG0よりも短くすることができる。
1.4 本実施形態に係る効果
第1実施形態によれば、複数のライト処理がチャネルCH0~CH3に並行して実行される場合、ライト進捗管理部311は、ライト処理が完了するたびに進捗管理テーブル313を更新する。ライトデータ管理部312及びNANDパラメタ処理部340は、進捗が更新されたチャネルCHよりも閾値以上多いライト完了論理ページ数のチャネルCHがある場合、当該進捗が更新されたチャネルCHのライト時間上限値を減少させる。また、ライトデータ管理部312及びCNTライトコマンド発行部320は、進捗が更新されたチャネルCHよりも閾値以上多いライト完了論理ページ数のチャネルCHがある場合、当該進捗が更新されたチャネルCHに対してNULLデータの書き込む旨のCNTライトコマンドを発行する。これにより、チャネルCH間に生じるライト処理の進捗の差が閾値を超えることを抑制できる。このため、データのライト速度の低下を抑制することができる。
上述の効果について、図13及び図14を用いて補足する。
図13は、比較例に係るメモリシステムにおけるライト処理を説明するための模式図である。図13では、比較例として、チャネルCH間に生じるライト処理の進捗の差に基づいて、ライト処理の設定が変更されない場合の例が示される。
図13に示すように、時刻T0において同時にチャネルCH0~CH3が並列にライト処理を開始する。
時刻T1~T5までは、チャネルCH1~CH3と、チャネルCH0とが交互に、1論理ページLPGに対応するライト処理を完了する。しかしながら、図13の例のように、チャネルCH0が他のチャネルCH1~CH3よりもライト処理の実行速度が遅い場合、ライト処理が進むにつれて、チャネルCH0とチャネルCH1~CH3との進捗の差は大きくなる。そして、時刻T6において、チャネルCH1~CH3は、チャネルCH0が論理ページLPG2に対応するライト処理を完了する前に、論理ページLPG3に対応するライト処理を完了する。
時刻T6の時点で、ライトバッファ330には、論理ページLPG2及びLPG3のライトデータが記憶されている。このため、チャネルCH1~CH3が論理ページLPG4に対応するライト処理を開始するためには、論理ページLPG2のライトデータを、ライトバッファ330から消去又は無効化する必要がある。しかしながら、上述の通り、ライトバッファ330は、例えば、1論理ページ分のライト処理が完了するまで、対応するライトデータを消去又は無効化することができない。このため、チャネルCH1~CH3は、チャネルCH0が論理ページLPG2に対応するライト処理を完了する時刻T7まで、論理ページLPG4に対応するライト処理を開始することができない。
同様に、チャネルCH1~CH3が論理ページLPG4に対応するライト処理を完了する時刻T8の時点で、ライトバッファ330には、論理ページLPG3及びLPG4が記憶されている。しかしながら、チャネルCH1~CH3は、チャネルCH0が論理ページLPG3に対応するライト処理を完了する時刻T9まで、論理ページLPG4に対応するライト処理を開始することができない。
このように、他の複数のチャネルCH1~CH3に比べて実行速度の遅いチャネルCH0が存在する場合、チャネルCH0以外の全てのチャネルCH1~CH3のライト速度が、ライト速度の最も遅いチャネルCH0に律速される場合があり、好ましくない。
また、上述の例では、ライトバッファ330のメモリサイズに関する制約によって、新たな論理ページLPGに対応するライト処理が実行できない場合について説明したが、ライト処理の実行を制約する要因は、ライトバッファ330のメモリサイズに限られない。例えば、ホスト機器2からの新たなライトデータをライトバッファ330が記憶できても、ライトバッファ330内のライトデータに関する書込み中の論理ページLPGの数が上限に達すると、新たな論理ページLPGに対応するライト処理が実行できない場合がある。
いずれにしても、チャネルCH間におけるライト処理の実行速度にずれが存在する場合、ライト速度の最も速いチャネルCHの新たな論理ページLPGに対するライト処理が、ライト速度の遅い他の複数のチャネルCHに律速される場合があり、好ましくない。
図14は、第1実施形態に係るメモリシステムにおけるライト処理を説明するための模式図である。図14の例では、ライトデータ管理部312は、図10のS50における判定に適用される閾値として“1”が設定される場合が示される。
図14に示すように、図14における時刻T10~T13までの動作は、図13における時刻T0~T3までの動作と同等である。
時刻T13において、ライト進捗管理部311は、チャネルCH1~CH3が論理ページLPG1に対応するライト処理を完了したことに伴い、進捗管理テーブル313を更新する。これにより、進捗管理テーブル313において、チャネルCH1~CH3のライト完了論理ページ数は“2”となる。
時刻T14において、チャネルCH0が論理ページLPG1のバンクBANK0に対応するライト処理を完了する。時刻T14では、チャネルCH0は、論理ページLPG1に対応する全てのライト処理を完了していないため、チャネルCH0のライト完了論理ページ数は“1”のままである。このため、ライトデータ管理部312は、チャネルCH1~CH3のライト完了論理ページ数“2”が、チャネルCH0のライト完了論理ページ数“1”より閾値“1”以上多いと判定する。これに伴い、ライトデータ管理部312は、チャネルCH0のライト時間上限値を減少させる旨を、NANDパラメタ処理部340に指示する。また、ライトデータ管理部312は、チャネルCH0の論理ページLPG1のバンクBANK1に対応するライト処理において、NULLデータを書き込む旨をCNTライトコマンド発行部320に指示する。
以上のように動作することにより、時刻T14において、チャネルCH0は、論理ページLPG1のバンクBANK1に対応するライト処理において、NULLデータを書き込む。これにより、チャネルCH0は、時刻T15において、通常より短いライト時間で論理ページLPG1に対応するライト処理を完了させることができる。このため、ライトバッファ330は、論理ページLPG1に対応するライトデータを消去又は無効化し、論理ページLPG3に対応するライトデータを新たに記憶することができる。したがって、時刻T16において、チャネルCH1~CH3は、論理ページLPG2に対応するライト処理を完了した直後に、チャネルCH0のライト速度に律速されることなく、論理ページLPG3に対応するライト処理を開始できる。
なお、時刻T15において、ライトデータ管理部312は、チャネルCH0の論理ページLPG2のバンクBANK0に対応するライト処理において、チャネルCH0のライト完了論理ページ数”2”が、チャネルCH1~CH3のライト完了論理ページ数“2”より閾値“1”未満であると判定する。これに伴い、ライトデータ管理部312は、チャネルCH0のライト時間上限値を減少させた値から増加させ、元に戻す旨を、NANDパラメタ処理部340に指示する。また、ライトデータ管理部312は、チャネルCH0の論理ページLPG2のバンクBANK0に対応するライト処理において、データ内容をNULLデータからライトデータに戻す旨をCNTライトコマンド発行部320に指示する。これにより、時刻T15以降のライト処理において、チャネルCH0に対して、再び通常のライト処理を実行できる。
続いて、時刻T17において、ライト進捗管理部311は、チャネルCH0が論理ページLPG2に対応するライト処理を完了したことに伴い、進捗管理テーブル313を更新する。これにより、進捗管理テーブル313において、チャネルCH0のライト完了論理ページ数は“3”となる。
時刻T18において、ライト進捗管理部311は、チャネルCH1~CH3が論理ページLPG3に対応するライト処理を完了したことに伴い、進捗管理テーブル313を更新する。これにより、進捗管理テーブル313において、チャネルCH1~CH3のライト完了論理ページ数は“4”となる。
時刻T19において、チャネルCH0が論理ページLPG3のバンクBANK0に対応するライト処理を完了する。時刻T19では、チャネルCH0は、論理ページLPG3に対応する全てのライト処理を完了していないため、チャネルCH0のライト完了論理ページ数は“3”のままである。このため、ライトデータ管理部312は、チャネルCH1~CH3のライト完了論理ページ数“4”が、チャネルCH0のライト完了論理ページ数“3”より閾値“1”以上多いと判定する。これに伴い、ライトデータ管理部312は、時刻T14の場合と同様に、チャネルCH0のライト時間上限値を減少させる旨を、NANDパラメタ処理部340に指示する。また、ライトデータ管理部312は、チャネルCH0の論理ページLPG3のバンクBANK1に対応するライト処理において、NULLデータを書き込む旨をCNTライトコマンド発行部320に指示する。
以上のように動作することにより、時刻T19において、チャネルCH0は、論理ページLPG3のバンクBANK1に対応するライト処理において、NULLデータを書き込む。これにより、チャネルCH0は、時刻T20において、通常より短いライト時間で論理ページLPG3に対応するライト処理を完了させることができる。
このように、第1実施形態によれば、ライト速度が速いチャネルCH1~CH3のライト処理が、ライト速度の遅いチャネルCH0に律速される時間帯が発生することを抑制できる。このため、ライト速度の低下を抑制できる。また、進捗を調整する際、チャネルCH0にはNULLデータが書き込まれるため、進捗の調整に伴ってデータの信頼性が低下することを抑制できる。なお、ライトデータ管理部312は、NULLデータが書き込まれたチャネルCH0の論理ページLPG1及びLPG3それぞれのバンクBANK1に書き込まれる予定だったライトデータを、無効化又は消去の対象から除外することにより、他の記憶領域に割り当て得る。すなわち、書き込まれる予定だったライトデータは、無効化又は消去されることなく、NANDフラッシュメモリ10内の他の記憶領域に割り当てられる。このため、メモリシステム1内でライトデータを失うことなく、ライト速度の低下を抑制できる。
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第1実施形態では、ライト処理の進捗が最も遅れているチャネルCHに対してNULLデータを書き込むことによって、進捗の差が閾値を超えることを抑制する場合について説明した。第2実施形態では、ライト処理の進捗が最も遅れているチャネルCHに対してライトデータを書き込みつつ、進捗の差が閾値を超えることを抑制する点において、第1実施形態と異なる。以下では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
2.1 フローチャート
図15及び図16は、第2実施形態に係るメモリシステムにおけるライト処理を示すフローチャートであり、それぞれ第1実施形態における図10及び図11に対応する。
図15に示すように、S10及びS20において、ホストライトコマンド処理部310は、ホスト機器2からライト処理の実行単位分のライトデータを受信する。S10及びS20の動作は、図10におけるS10及びS20の動作と同等である。
S30Aにおいて、ホストライトコマンド処理部310からの指示に基づき、CNTライトコマンド発行部320は、チャネルCH毎の進捗を考慮したライト処理を実行する。S30Aの詳細については、図16を用いて後述する。S30Aにおけるライト処理において、メモリコントローラ30は、NANDフラッシュメモリ10からライト完了通知を受ける。
S40において、ライト進捗管理部311は、ライト完了通知に基づき、進捗管理テーブル313を更新する。
S50において、ライトデータ管理部312は、S40において更新された進捗管理テーブル313を参照し、進捗が更新されたチャネルCHより、ライト完了論理ページ数が閾値以上多いチャネルCHがあるか否かを判定する。
進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上多いチャネルCHがある場合(S50;yes)、処理はS60に進む。S60において、NANDパラメタ処理部340は、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHのライト時間上限値を減少させる。続いて、S70Aにおいて、論理ブロック管理部350は、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHの誤りビット数上限値を増加させる。S70Aが終了すると、処理は、S100に進む。
一方、進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上多いチャネルCHがない場合(S50;no)、処理はS80Aに進む。S80Aにおいて、ライトデータ管理部312は、進捗が更新されたチャネルCHの誤りビット数上限値が変更済みであるか否かを判定する。
誤りビット数上限値が変更済みである場合(S80A;yes)、処理はS90Aに進む。S90Aにおいて、NANDパラメタ処理部340及び論理ブロック管理部350はそれぞれ、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHのライト時間上限値及び誤りビット数上限値を元の設定値に戻す。S90Aが終了すると、処理はS100に進む。進捗が更新されたチャネルCHの誤りビット数上限値が変更されていない場合(S80A;no)、処理はS90Aを省略し、S100に進む。
S100の処理は、第1実施形態の図10におけるS100の処理と同等であるため、説明を省略する。
以上により、ライト処理が終了する。
なお、図15の例では、S80Aにおいて、誤りビット数上限値が変更済みであるか否かを判定する場合について記載したが、これに限られない。例えば、S80Aにおいて、ライトデータ管理部312は、進捗が更新されたチャネルのライト時間上限値が変更済みであるか否かを判定してもよい。
次に、図16を参照して、図15のS30Aの詳細について説明する。
図16に示すように、S31Aにおいて、CNTライトコマンド発行部320は、ライト対象チャネルCHの誤りビット数上限値が論理ブロック管理部350によって変更済みであるか否かを判定する。ライト対象チャネルCHの誤りビット数上限値が変更済みである(元の設定値より増加している)場合(S31A;yes)、処理はS32Aに進む。
S32Aにおいて、CNTライトコマンド発行部320は、通常より多い量のパリティが付与されたライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、ライト対象チャネルの論理ページLPG内に、通常より多い量のパリティが付与されたライトデータを書き込むライト処理を実行し、処理はS35Aに進む。
一方、ライト対象チャネルCHの誤りビット数上限値が変更済みでない(元の設定値から増加していない)場合(S31A;no)、処理はS34Aに進む。
S34Aにおいて、CNTライトコマンド発行部320は、変更されていない通常の量のパリティが付与されたライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、通常の量のパリティが付与されたライト処理を実行し、処理はS35Aに進む。
ライト処理の完了後、NANDフラッシュメモリ10は、ライト完了通知をメモリコントローラ30に送出し、S35Aにおいて、メモリコントローラ30は、ライト完了通知を受信する。
S36Aにおいて、CNTライトコマンド発行部320は、NANDフラッシュメモリ10内に書き込まれたライトデータのアドレス更新情報の書き込みを指示するCNTライトコマンドを発行し、DRAM20に送出する。これにより、DRAM20は、最新の状態を反映したルックアップテーブル200に更新される。
以上により、チャネルCH毎の進捗を考慮したライト処理が完了する。
2.2 コマンドシーケンス及びタイミングチャート
図17は、第2実施形態に係るメモリシステムにおけるライト処理を示すコマンドシーケンス及びタイミングチャートであり、第1実施形態における図12(B)に対応する。すなわち、図17では、図16のS32Aに対応するライト処理(通常より多い量のパリティが付与されたライトデータを書き込む場合)が示される。なお、図16のS34Aに対応するライト処理は、図12(A)と同等であるため、図示が省略される。
図17に示すように、CNTライトコマンド発行部320は、コマンドセットCS1b、CS2b、及びCS3bを順にNANDフラッシュメモリ10に送出する。例えば、コマンドセットCS1b~CS3bはそれぞれ、1つのセルユニットCUに書き込まれる3物理ページのライトデータのうちの1物理ページデータ分を含む。ただし、S34Aの場合よりも、入力データ内におけるライトデータの占める割合は少なく、パリティの占める割合は多い。
S32Aの場合に設定されるライト時間上限値tPROG2は、S34Aの場合のライト時間tPROG0よりも小さな値が設定され得る。これにより、S32Aの場合では、ライト処理に要する時間を短くすることができる一方、ライト処理が完了する前に打ち切られる。
ライト処理が完了する前に打ち切られると、閾値電圧が目標の状態に達していないメモリセルトランジスタMTの数が多くなるため、当該物理ページデータにおける誤りビット数が増加する。しかしながら、上述の通り、当該物理ページデータでは、ライト処理が完了する場合に書き込まれる物理ページデータよりもパリティが多く付与される。このため、データの読出し処理の際に、当該パリティによって、ライト処理の打ち切りに伴って増加した誤りビットを全て訂正することが可能となる。
2.3 本実施形態に係る効果
第2実施形態によれば、ライトデータ管理部312及びNANDパラメタ処理部340は、進捗が更新されたチャネルCHよりも閾値以上多いライト完了論理ページ数のチャネルCHがある場合、当該進捗が更新されたチャネルCHのライト時間上限値を減少させる。このため、第1実施形態と同様に、チャネルCH間の進捗の差が閾値を超えることを抑制できる。
また、ライトデータ管理部312及び論理ブロック管理部350は、進捗が更新されたチャネルCHよりも閾値以上多いライト完了論理ページ数のチャネルCHがある場合、当該進捗が更新されたチャネルCHの誤りビット数上限値を増加させる。これにより、ライト処理が完了する前に打ち切られてしまった場合にも、当該チャネルCHに書き込まれた不完全なデータを読み出す際に、ECC回路36による誤り訂正処理によって訂正できる。このため、書き込まれたデータの信頼性を低下させることなく、データのライト速度の低下を抑制することができる。
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態では、ライト処理の進捗が最も遅れているチャネルCHのライトモードを変更することにより、進捗の差が閾値を超えることを抑制する点において、第1実施形態及び第2実施形態と異なる。以下では、第1実施形態と同等の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
3.1 フローチャート
図18及び図19は、第3実施形態に係るメモリシステムにおけるライト処理を示すフローチャートであり、それぞれ第1実施形態における図10及び図11に対応する。
図18に示すように、S10及びS20において、ホストライトコマンド処理部310は、ホスト機器2からライト処理の実行単位分のライトデータを受信する。S10及びS20の動作は、図10におけるS10及びS20の動作と同等である。
S30Bにおいて、ホストライトコマンド処理部310からの指示に基づき、CNTライトコマンド発行部320は、チャネルCH毎の進捗を考慮したライト処理を実行する。S30Bの詳細については、図19を用いて後述する。S30Bにおけるライト処理において、メモリコントローラ30は、NANDフラッシュメモリ10からライト完了通知を受ける。
S40において、ライト進捗管理部311は、ライト完了通知に基づき、進捗管理テーブル313を更新する。
S50において、ライトデータ管理部312は、S40において更新された進捗管理テーブル313を参照し、進捗が更新されたチャネルCHより、ライト完了論理ページ数が閾値以上多いチャネルCHがあるか否かを判定する。
進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上多いチャネルCHがある場合(S50;yes)、処理はS70Bに進む。S70Bにおいて、ライトデータ管理部312は、進捗が更新されたチャネルCHのライトモードをSLCモードに設定する旨の指示をCNTライトコマンド発行部320に送出する。S70Bが終了すると、処理はS100に進む。
一方、進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上多いチャネルCHがない場合(S50;no)、処理はS80B及びS90Bに進む。S80Bにおいて、ライトデータ管理部312は、進捗が更新されたチャネルCHのライトモードがSLCモードに変更済みであるか否かを判定する。
ライトモードがSLCモードに変更済みである場合(S80B;yes)、処理はS90Bに進む。S90Bにおいて、ライトデータ管理部312は、進捗が更新されたチャネルCHのライトモードをTLCモードに戻す旨の指示をCNTライトコマンド発行部320に送出する。S90Bが終了すると、処理はS100に進む。進捗が更新されたチャネルCHのライトモードが変更されていない場合(S80B;no)、処理はS90Bを省略し、S100に進む。
S100の処理は、第1実施形態の図10におけるS100の処理と同等であるため、説明を省略する。
以上により、ライト処理が終了する。
次に、図19を参照して、図18のS30Bの詳細について説明する。
図19に示すように、S31Bにおいて、CNTライトコマンド発行部320は、ライト対象チャネルCHのライトモードをSLCモードに変更済みであるか否かを判定する。ライト対象チャネルCHのライトモードがSLCモードに設定されている場合(S31B;yes)、処理はS32Bに進む。
S32Bにおいて、CNTライトコマンド発行部320は、SLCモードを適用してライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、ライト対象チャネルの複数のメモリセルトランジスタMTの各々に1ビットデータを書き込むライト処理を実行し、処理はS35Bに進む。
一方、ライト対象チャネルCHのライトモードがSLCモードに設定されていない場合(S31B;no)、処理はS34Bに進む。
S34Bにおいて、CNTライトコマンド発行部320は、TLCモードを適用してライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、ライト対象チャネルの複数のメモリセルトランジスタMTの各々に3ビットデータを書き込むライト処理を実行し、処理はS35Bに進む。
ライト処理の完了後、NANDフラッシュメモリ10は、ライト完了通知をメモリコントローラ30に送出し、S35Bにおいて、メモリコントローラ30は、ライト完了通知を受信する。
S36Bにおいて、CNTライトコマンド発行部320は、NANDフラッシュメモリ10内に書き込まれたライトデータのアドレス更新情報の書き込みを指示するCNTライトコマンドを発行し、DRAM20に送出する。これにより、DRAM20は、最新の状態を反映したルックアップテーブル200に更新される。
以上により、チャネルCH毎の進捗を考慮したライト処理が完了する。
3.2 コマンドシーケンス及びタイミングチャート
図20は、第3実施形態に係るメモリシステムにおけるライト処理を示すコマンドシーケンス及びタイミングチャートであり、第1実施形態における図12(B)に対応する。すなわち、図20では、図19のS32Bに対応するライト処理(SLCモードが適用された場合)が示される。なお、図19のS34Bに対応するライト処理は、図12(A)と同等であるため、図示が省略される。
図20に示すように、CNTライトコマンド発行部320は、コマンドセットCS1c、CS2c、及びCS3cを順にNANDフラッシュメモリ10に送出する。例えば、コマンドセットCS1c~CS3cはそれぞれ、1つのセルユニットCUに書き込まれる1物理ページのライトデータを含む。NANDフラッシュメモリ10は、コマンドセットCS1c~CS3cを受けるたびに、SLCモードを適用したライト処理を実行する。
コマンドセットCS1cを受けると、NANDフラッシュメモリ10は、レディ状態からビジー状態に遷移し、1物理ページデータに基づくライト処理を開始する。ロウデコーダ18は、対応する選択ワード線WLsel(i)にプログラム電圧VPGMを繰り返し印加する。ここで、選択ワード線WLsel(i)とは、ワード線WLiが選択されたことを意味する(0≦i≦5)。また、ロウデコーダ18は、非選択ワード線WL(選択ワード線WLsel(i)以外のワード線)に電圧VPASSを印加する。電圧VPASSは、閾値電圧によらずメモリセルトランジスタMTをオン状態にし、かつライト対象でないメモリセルトランジスタMTの閾値電圧を上昇させない電圧である。選択ワード線WLsel(i)についてのライト処理が終了すると、シーケンサ15は、NANDフラッシュメモリ10をビジー状態からレディ状態に遷移させる。
続いて、コマンドセットCS2c及びCS3cを受けると、NANDフラッシュメモリ10は、レディ状態からビジー状態に遷移し、それぞれ選択ワード線WLsel(i+1)及びWLsel(i+2)についての1物理ページデータに基づくライト処理を開始する。プログラム動作については、コマンドセットCS1cを受けた場合と同様である。
以上のように動作することにより、コマンドセットCS1c~CS3cによる3物理ページ分のライトデータが、ライト時間tPROG3の間にNANDフラッシュメモリ10に書き込まれる。ここで、同じ数の物理ページ(又は論理ページLPG)のライトデータを書き込む場合、SLCモードを適用した場合のライト時間tPROG3は、TLCモードを適用した場合のライト時間tPROG0よりも短くすることができる。このため、SLCモードを適用することにより、TLCモードを適用した場合よりもライト処理の高速化を図ることができる。
3.3 本実施形態に係る効果
第3実施形態によれば、ライトデータ管理部312及びCNTライトコマンド発行部320は、進捗が更新されたチャネルCHよりも閾値以上多いライト完了論理ページ数のチャネルCHがある場合、当該進捗が更新されたチャネルCHに対してSLCモードを適用する旨のCNTライトコマンドを発行する。これにより、第1実施形態と同様に、チャネルCH間の進捗の差が閾値を超えることを抑制できる。
SLCモードが適用される場合、ライト処理に使用されるセルユニットCUの数は増えるものの、ライト処理が途中で打ち切られることなくライトデータを書き込むことができる。このため、誤りビット数上限値やライト時間上限値の設定を変更することなく、書き込まれたデータの信頼性の低下を抑制しつつ、ライト速度の低下を抑制することができる。
4. 変形例等
なお、上述の実施形態は、種々の変形が可能である。
4.1 第1変形例
例えば、上述の第1実施形態及び第2実施形態では、進捗が更新されたチャネルCHのライト時間上限値を減少させることにより、チャネルCH間の進捗の差を調整する場合について説明したが、これに限られない。例えば、進捗が更新されたチャネルCHのライト時間上限値を増加させることにより、チャネルCH間の進捗の差を調整してもよい。
図21及び図22は、第1変形例に係るメモリシステムにおけるライト処理を示すフローチャートであり、例えば第2実施形態の図15及び図16に対応する。
図21に示すとおり、S10及びS20は、図15におけるS10及びS20と同等であるため、説明を省略する。
S30Cにおいて、ホストライトコマンド処理部310からの指示に基づき、CNTライトコマンド発行部320は、チャネルCH毎の進捗を考慮したライト処理を実行する。S30Cの詳細については、図22を用いて後述する。S30Cにおけるライト処理において、メモリコントローラ30は、NANDフラッシュメモリ10からライト完了通知を受ける。
S40において、ライト進捗管理部311は、ライト完了通知に基づき、進捗管理テーブル313を更新する。
S50Cにおいて、ライトデータ管理部312は、S40において更新された進捗管理テーブル313を参照し、進捗が更新されたチャネルCHより、ライト完了論理ページ数が閾値以上少ないチャネルCHがあるか否かを判定する。
進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上少ないチャネルCHがある場合(S50C;yes)、処理はS60Cに進む。S60Cにおいて、NANDパラメタ処理部340は、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHのライト時間上限値を増加させる。続いて、S70Cにおいて、論理ブロック管理部350は、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHの誤りビット数上限値を減少させる。S70Cが終了すると、処理はS100に進む。
一方、進捗が更新されたチャネルCHよりライト完了論理ページ数が閾値以上少ないチャネルCHがない場合(S50C;no)、処理はS80Cに進む。S80Cにおいて、ライトデータ管理部312は、進捗が更新されたチャネルCHの誤りビット数上限値が変更済みであるか否かを判定する。
誤りビット数上限値が変更済みである場合(S80C;yes)、処理はS90Cに進む。S90Cにおいて、NANDパラメタ処理部340及び論理ブロック管理部350はそれぞれ、ライトデータ管理部312からの指示に応じて、進捗が更新されたチャネルCHのライト時間上限値及び誤りビット数上限値を元の設定値に戻す。S90Cが終了すると、処理はS100に進む。進捗が更新されたチャネルCHの誤りビット数上限値が変更されていない場合(S80C;no)、処理はS90Cを省略し、S100に進む。
S100の処理は、第1実施形態の図10におけるS100の処理と同等であるため、説明を省略する。
以上により、ライト処理が終了する。
なお、図21の例では、S80Cにおいて、誤りビット数上限値が変更済みであるか否かを判定する場合について記載したが、これに限られない。例えば、S80Cにおいて、ライトデータ管理部312は、進捗が更新されたチャネルのライト時間上限値が変更済みであるか否かを判定してもよい。
次に、図22を参照して、図21のS30Cの詳細について説明する。
図22に示すように、S31Cにおいて、CNTライトコマンド発行部320は、ライト対象チャネルCHの誤りビット数上限値が論理ブロック管理部350によって変更済みであるか否かを判定する。ライト対象チャネルCHの誤りビット数上限値が変更済みである(元の設定値より減少している)場合(S31C;yes)、処理はS32Cに進む。
S32Cにおいて、CNTライトコマンド発行部320は、通常より少ない量のパリティが付与されたライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、ライト対象チャネルの論理ページLPG内に、通常より少ない量のパリティが付与されたライトデータを書き込むライト処理を実行し、処理はS35Cに進む。
一方、ライト対象チャネルCHの誤りビット数上限値が変更済みでない(元の設定値から減少していない)場合(S31C;no)、処理はS34Cに進む。
S34Cにおいて、CNTライトコマンド発行部320は、変更されていない通常の量のパリティが付与されたライトデータの書込みを指示するCNTライトコマンドを発行し、NANDフラッシュメモリ10に送出する。これにより、NANDフラッシュメモリ10は、通常の量のパリティが付与されたライトデータを書き込むライト処理を実行し、処理はS35Cに進む。
ライト処理の完了後、NANDフラッシュメモリ10は、ライト完了通知をメモリコントローラ30に送出し、S35Cにおいて、メモリコントローラ30は、ライト完了通知を受信する。
S36Cにおいて、CNTライトコマンド発行部320は、NANDフラッシュメモリ10内に書き込まれたライトデータのアドレス更新情報の書き込みを指示するCNTライトコマンドを発行し、DRAM20に送出する。これにより、DRAM20は、最新の状態を反映したルックアップテーブル200に更新される。
以上により、チャネルCH毎の進捗を考慮したライト処理が完了する。
第1変形例によれば、ライト速度が速いチャネルCHのライト時間上限値を増加させることにより、他のチャネルCHとの進捗の差が閾値を超えることを抑制できる。これにより、上述の第1実施形態乃至第3実施形態と同様に、ライト速度が遅いチャネルCHに律速される期間の発生を抑制することができる。
なお、ライト時間上限値が増加することにより、プログラム動作が途中で打ち切られる可能性を低下させることができる。このため、誤りビット数上限値を減少させても、信頼性を低下させることなく、ライトデータを書き込むことができる。したがって、メモリセルアレイ11内においてパリティが占めるメモリサイズの量の増加を抑制できる。
4.2 その他
また、上述の第1実施形態乃至第3実施形態では、通常におけるライト処理の設定として、TLCモードが適用される場合について説明したが、これに限られない。例えば、NANDフラッシュメモリ10には、通常におけるライト処理の設定として、MLCモード、又は4ビット以上のデータを記憶するライトモードが適用されてもよい。
また、上述の第3実施形態では、進捗の差を調整するためにライトモードをSLCモードに変更する場合について説明したが、これに限られない。つまり、進捗の差を調整する場合、通常におけるライト処理に設定されるライトモードよりも少ないビットデータを記憶する任意のライトモードが適用され得る。
また、上述の第1実施形態乃至第3実施形態では、ライト進捗管理部311が進捗の差としてライト完了論理ページ数を管理する場合について説明したが、これに限られない。進捗の差は、チャネルCH間のライト処理のライト速度の差が把握できる任意のパラメタが適用可能である。例えば、ライト進捗管理部311は、ライト完了論理ページ数に代えて、ライト時間の積算値、発行したCNTライトコマンドの数等を管理してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、2…ホスト機器、10…NANDフラッシュメモリ、10<>…NANDチップ、11…メモリセルアレイ、12…入出力回路、13…ロジック制御回路、14…レジスタ、15…シーケンサ、16…電圧生成回路、17…ドライバセット、18…ロウデコーダ、19…センスアンプ、31…プロセッサ、32…ホストインタフェース回路、33…バッファメモリ、34…NANDインタフェース回路、35…DRAMインタフェース回路、36…ECC回路、100…データ、200…ルックアップテーブル、310…ホストライトコマンド処理部、311…ライト進捗管理部、312…ライトデータ管理部、313…進捗管理テーブル、320…CNTライトコマンド発行部、330…ライトバッファ、340…NANDパラメタ処理部、350…論理ブロック管理部。

Claims (8)

  1. 各々が複数のメモリセルを含む第1不揮発性メモリ及び第2不揮発性メモリと、
    前記第1不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第1セットと、前記第2不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第2セットと、を並行して実行するように構成されたメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    前記並行して実行される前記複数のライト処理の第1セットと前記複数のライト処理の第2セットとの間の進捗の差に基づいて、前記複数のライト処理の第1セット及び前記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理の設定を変更するように構成された、
    メモリシステム。
  2. 前記進捗の差は、前記複数のライト処理の第1セットのうち実行が完了したライト処理の数に対応する第1数と、前記複数のライト処理の第2セットのうち実行が完了したライト処理の数に対応する第2数と、の差を含む、
    請求項1記載のメモリシステム。
  3. 前記設定を変更することは、ライト処理に要する時間の上限値を変更することを含み、
    前記メモリコントローラは、前記第1数が前記第2数に対して閾値以上の場合、前記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理に要する時間の第1上限値を、実行済みのライト処理に要する時間の第2上限値よりも小さくするように構成された、
    請求項2記載のメモリシステム。
  4. 前記設定を変更することは、前記第1不揮発性メモリ又は前記第2不揮発性メモリに書き込まれるデータ内容を変更することを更に含み、
    前記メモリコントローラは、前記第1数が前記第2数に対して閾値以上の場合、前記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理において、前記第2不揮発性メモリにNULLデータを書き込むように構成された、
    請求項2記載のメモリシステム。
  5. 前記設定を変更することは、誤りビット数上限値を変更することを更に含み、
    前記メモリコントローラは、前記第1数が前記第2数に対して閾値以上の場合、前記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理における誤りビット数上限値を、実行済みのライト処理における誤りビット数上限値よりも大きくするように構成された、
    請求項2記載のメモリシステム。
  6. 前記設定を変更することは、ライト処理に要する時間の上限値を変更することを含み、
    前記メモリコントローラは、前記第1数が前記第2数に対して閾値以上の場合、前記複数のライト処理の第1セットのうちの少なくとも1つの未実行のライト処理に要する時間の第1上限値を、実行済みのライト処理に要する時間の第2上限値よりも大きくするように構成された、
    請求項2記載のメモリシステム。
  7. 前記設定を変更することは、前記第1不揮発性メモリ又は前記第2不揮発性メモリ内の前記複数のメモリセルそれぞれに書き込まれるデータのビット数を変更することを含み、
    前記メモリコントローラは、前記第1数が前記第2数に対して閾値以上の場合、前記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理において前記第2不揮発性メモリ内の複数のメモリセルそれぞれに書き込まれるデータのビット数を、実行済みのライト処理において前記第2不揮発性メモリ内の複数のメモリセルそれぞれに書き込まれるデータのビット数より少なくするように構成された、
    請求項2記載のメモリシステム。
  8. 各々が複数のメモリセルを含む第1不揮発性メモリ及び第2不揮発性メモリを備えたメモリシステムの制御方法であって、
    前記第1不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第1セットと、前記第2不揮発性メモリに対してシーケンシャルに実行される複数のライト処理の第2セットと、を並行して実行することと、
    前記並行して実行される前記複数のライト処理の第1セットと前記複数のライト処理の第2セットとの間の進捗の差に基づいて、前記複数のライト処理の第1セット及び前記複数のライト処理の第2セットのうちの少なくとも1つの未実行のライト処理の設定を変更することとを備えた、
    メモリシステムの制御方法。
JP2020142585A 2020-08-26 2020-08-26 メモリシステム及びメモリシステムの制御方法 Pending JP2022038210A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020142585A JP2022038210A (ja) 2020-08-26 2020-08-26 メモリシステム及びメモリシステムの制御方法
US17/147,519 US11645001B2 (en) 2020-08-26 2021-01-13 Memory system and controlling method of memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020142585A JP2022038210A (ja) 2020-08-26 2020-08-26 メモリシステム及びメモリシステムの制御方法

Publications (1)

Publication Number Publication Date
JP2022038210A true JP2022038210A (ja) 2022-03-10

Family

ID=80358514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020142585A Pending JP2022038210A (ja) 2020-08-26 2020-08-26 メモリシステム及びメモリシステムの制御方法

Country Status (2)

Country Link
US (1) US11645001B2 (ja)
JP (1) JP2022038210A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101515525B1 (ko) 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
JP2010152778A (ja) 2008-12-26 2010-07-08 Hitachi Ulsi Systems Co Ltd 半導体記憶装置
US9741436B2 (en) 2010-07-09 2017-08-22 Seagate Technology Llc Dynamically controlling an operation execution time for a storage device
US10002086B1 (en) * 2016-12-20 2018-06-19 Sandisk Technologies Llc Multi-channel memory operations based on bit error rates
JP7013294B2 (ja) 2018-03-19 2022-01-31 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
US11645001B2 (en) 2023-05-09
US20220066684A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
JP3938309B2 (ja) リードディスターブを緩和したフラッシュメモリ
KR101460826B1 (ko) 플래시 메모리용 부분 블록 소거 구조
US7679965B2 (en) Flash memory with improved programming precision
US8966163B2 (en) Non-volatile memory device and method for programming the same
US11410732B2 (en) Memory system having semiconductor memory device that performs verify operations using various verify voltages
KR100721062B1 (ko) 멀티레벨 메모리 내의 일부 메모리 블록을 바이너리 메모리블록으로 이용하는 비휘발성 반도체 메모리 장치
TWI602187B (zh) Semiconductor memory devices and memory systems
JP5196965B2 (ja) 不揮発性半導体記憶装置
KR20100010355A (ko) 플래시 메모리 장치 및 그것의 프로그램 및 소거 방법
CN111798901A (zh) 页缓冲器、具有页缓冲器的存储器装置及其操作方法
JP2017054561A (ja) 半導体記憶装置及びメモリシステム
US20210064274A1 (en) Memory system, memory controller, and operation method
KR20210057355A (ko) 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
TW201546810A (zh) Nand型快閃記憶體及其程式化方法
JP2021111259A (ja) メモリシステムとその制御方法
KR20110001098A (ko) 불휘발성 메모리 소자의 프로그램 방법
JP2010108548A (ja) 不揮発性半導体記憶装置とその制御方法
US11237767B2 (en) Memory system, memory controller and method for operating memory controller
JP2022038210A (ja) メモリシステム及びメモリシステムの制御方法
US11182108B2 (en) Memory system, memory controller, and operation method
US11544204B2 (en) Memory system, memory controller and method for operating memory controller
JP2009015977A (ja) 不揮発性半導体メモリとそれを用いた記憶装置
KR20240066720A (ko) 소거 상태의 메모리 셀들을 검증하는 메모리 장치 및 그것의 동작 방법
KR20240015986A (ko) 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법
JP2022046887A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20230106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240425

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240618