JP2023112368A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2023112368A
JP2023112368A JP2022014123A JP2022014123A JP2023112368A JP 2023112368 A JP2023112368 A JP 2023112368A JP 2022014123 A JP2022014123 A JP 2022014123A JP 2022014123 A JP2022014123 A JP 2022014123A JP 2023112368 A JP2023112368 A JP 2023112368A
Authority
JP
Japan
Prior art keywords
block
blocks
pool
memory
erased
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
JP2022014123A
Other languages
English (en)
Inventor
卓巳 藤森
Takumi Fujimori
徹也 砂田
Tetsuya Sunada
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 JP2022014123A priority Critical patent/JP2023112368A/ja
Priority to US17/897,071 priority patent/US11922038B2/en
Publication of JP2023112368A publication Critical patent/JP2023112368A/ja
Pending legal-status Critical Current

Links

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices

Landscapes

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

Abstract

【課題】信頼性及び動作性能を向上できるメモリシステムを提供する。【解決手段】実施形態のメモリシステムは、複数のブロックを含む不揮発性メモリ及び不揮発性メモリを制御するメモリコントローラを備える。メモリコントローラは、複数のブロックのうち第1プールに属する第1ブロックへのデータ書き込み量が第1値を超えた場合、または、第1プールに属する第1ブロックを第2プールに遷移させる場合、または、第2プールに属する第2ブロックを第3プールに遷移させる場合の少なくとも1つの場合に、第4プールに属する第4ブロックの放置許容時間情報、及び第4ブロックのデータ消去後の経過時間情報に基づいて、第4プールに属することが可能な第4ブロックのブロック数の最大値である最大ブロック数を算出し、第4プールに属する第4ブロックのブロック数が最大ブロック数未満である場合に、第3プールに属する第3ブロックに対して消去動作を実行する。【選択図】図6

Description

本発明の実施形態は、半導体メモリを含むメモリシステムに関する。
半導体メモリとして、例えば、メモリセルが二次元あるいは三次元に配列されたNAND型フラッシュメモリが知られている。また、NAND型フラッシュメモリと、NAND型フラッシュメモリを制御するメモリコントローラと、を備えるメモリシステムが知られている。
米国特許第10877687号明細書
信頼性及び動作性能を向上できるメモリシステムを提供する。
実施形態のメモリシステムは、複数のブロックを含む不揮発性メモリと、前記不揮発性メモリを制御するメモリコントローラとを備える。前記メモリコントローラは、前記複数のブロックのうち第1プールに属する第1ブロックへのデータ書き込み量が第1値を超えた場合、または、前記第1プールに属する前記第1ブロックを第2プールに遷移させる場合、または、前記第2プールに属する第2ブロックを第3プールに遷移させる場合の少なくとも1つの場合に、第4プールに属する第4ブロックの放置許容時間情報、及び前記第4ブロックのデータ消去後の経過時間情報に基づいて、前記第4プールに属することが可能な前記第4ブロックのブロック数の最大値である最大ブロック数を算出し、前記第4プールに属する前記第4ブロックのブロック数が前記最大ブロック数未満である場合に、前記第3プールに属する第3ブロックに対して消去動作を実行する。
第1実施形態のメモリシステムを含む情報処理システムの構成を示すブロック図である。 第1実施形態におけるメモリチップの構成を示すブロック図である。 第1実施形態におけるメモリセルアレイ内のブロックの回路図である。 第1実施形態のメモリシステムにおけるブロックの状態遷移を示す図である。 第1実施形態における論理物理変換テーブルの一例を示す図である。 第1実施形態におけるブロック管理の制御を示すフローチャートである。 第1実施形態におけるブロック管理の制御の信号及び情報の授受を示す図である。 第1実施形態における最大ブロック数の算出方法を説明するための図である。 第1実施形態における最大ブロック数の算出方法を説明するための図である。 第1実施形態における最大ブロック数の算出方法を説明するための図である。 第1実施形態における放置許容時間テーブルの一例を示す図である。 第1実施形態における消去済みブロック情報の一例を示す図である。 第1実施形態における消去済みブロック情報の一例を示す図である。 第1実施形態における消去済みブロック情報の一例を示す図である。 第2実施形態のメモリシステムを含む情報処理システムの構成を示すブロック図である。 第2実施形態におけるブロック管理の制御を示すフローチャートである。 第3実施形態におけるNANDコントローラと半導体メモリの構成を示すブロック図である。 第3実施形態におけるメモリチップのプレーン内のブロックの接続例を示す図である。 第3実施形態におけるメモリチップのプレーン内のブロックの他の接続例を示す図である。 第3実施形態のメモリシステムにおける論理ブロックと物理ブロックの対応関係を示すテーブルの一例である。 第3実施形態のメモリシステムにおける論理ブロックと物理ブロックの対応関係を示すテーブルの他の例である。 第4実施形態のメモリシステムを含む情報処理システムの構成を示すブロック図である。 第4実施形態におけるワード線スイッチアレイに対応するフリーブロック数を示すテーブルの一例である。 第4実施形態におけるブロックデコーダグループに対応するフリーブロック数を示すテーブルの一例である。 第4実施形態におけるブロック管理の制御を示すフローチャートである。 第4実施形態におけるブロック管理の制御を示すフローチャートである。 第5実施形態の情報処理システムの構成を示すブロック図である。 第5実施形態におけるNANDコントローラ及び半導体メモリの構成を示すブロック図である。
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、以下に示す実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。
1.第1実施形態
第1実施形態のメモリシステムについて説明する。
1.1 メモリシステムの構成
先ず、第1実施形態のメモリシステムの構成について説明する。図1は、第1実施形態のメモリシステムを含む情報処理システムの構成を示すブロック図である。情報処理システムは、メモリシステム1及びホスト装置2を備える。
メモリシステム1は、メモリコントローラ3及び半導体メモリ10を備える。メモリコントローラ3は、NANDコントローラ20、システムコントローラ(例えば、フラッシュトランスレーションレイヤ(flash translation layer:FTL))30、及びホストインタフェース40を備える。メモリシステム1は、外部のホスト装置2に接続され、ホスト装置2からの命令に応じて各種動作を実行し得る。すなわち、メモリコントローラ3は、ホスト装置2から命令を受け、半導体メモリ10を制御する。
ホストインタフェース40は、メモリシステム1とホスト装置2との間の信号の授受を司る。
システムコントローラ30は、ホストインタフェース40を介してホスト装置2に接続される。システムコントローラ30は、ホスト装置2からホストインタフェース40を介して受信した命令に従って、メモリシステム1全体を制御する。システムコントローラ30の詳細については後述する。
NANDコントローラ20は、NANDバスを介して半導体メモリ10に接続される。NANDバスは、NANDインターフェースに従った信号の送受信を行う。NANDコントローラ20は、また、システムコントローラ30から受信したリクエストあるいは命令に応答して、半導体メモリ10にアクセスする。
半導体メモリ10は、例えば不揮発性メモリである。半導体メモリ10は、複数のメモリチップ10M_0、10M_1、10M_2、…、10M_n(nは0以上の自然数)を含む。メモリチップ10M_nは、複数のメモリセルを備え、データを不揮発に記憶する。半導体メモリ10の詳細については後述する。
上述したメモリシステム1は、例えば、半導体メモリ10、NANDコントローラ20、システムコントローラ30、及びホストインタフェース40の組み合わせにより一つの半導体装置を構成してもよく、その例としてはSSD(solid state drive)や、SDTMカードを含むメモリカード等が挙げられる。メモリコントローラは、例えば、SoC(system-on-a-chip)等であってもよい。また、メモリコントローラに含まれるNANDコントローラ20、システムコントローラ30、及びホストインタフェース40等の各要素は、ハードウェア構成、又はハードウェア資源とファームウェアとの組合せ構成のいずれでも実現可能である。ホスト装置2は、例えば、デジタルカメラやパーソナルコンピュータ等である。
1.1.1 半導体メモリ10の構成
次に、メモリシステム1内の半導体メモリ10の構成について説明する。前述したように、半導体メモリ10は、複数のメモリチップ10M_0~10M_nを有する。メモリチップ10M_nは、例えば、データを不揮発に記憶可能なNAND型フラッシュメモリを含む。
1.1.1.1 メモリチップ10M_nの構成
以下に、半導体メモリ10内のメモリチップ10M_nの構成について説明する。図2は、半導体メモリ10内のメモリチップ10M_nの構成を示すブロック図である。
メモリチップ10M_nは、メモリセルアレイ11、入出力回路12、ロジック制御回路13、レディ/ビジー回路14、レジスタ群15、シーケンサ(または、制御回路)16、電圧生成回路17、ドライバ18、ロウデコーダ19、カラムデコーダ21、及びセンスアンプ22を備える。レジスタ群15は、ステータスレジスタ15A、アドレスレジスタ15B、及びコマンドレジスタ15Cを備える。
メモリセルアレイ11は、1つまたは複数のブロックBLK0,BLK1,BLK2,…,BLKm(mは0以上の自然数)を備える。複数のブロックBLK0~BLKmの各々は、ロウ及びカラムに対応付けられた複数のメモリセルトランジスタ(以下、メモリセルとも記す)を含む。メモリセルトランジスタは、電気的に消去およびプログラム可能な不揮発性メモリセルである。メモリセルアレイ11は、メモリセルトランジスタに電圧を印加するための、複数のワード線、複数のビット線、及びソース線を含む。ブロックBLKmの具体的な構成については後述する。
入出力回路12及びロジック制御回路13は、入出力端子(または、NANDバス)を介してNANDコントローラ20に接続される。入出力回路12は、NANDコントローラ20との間で入出力端子を介して、I/O信号DQ(例えば、DQ0、DQ1、DQ2、…、DQ7)を送受信する。I/O信号DQは、コマンド、アドレス、及びデータ等を通信する。
ロジック制御回路13は、NANDコントローラ20から入出力端子(または、NANDバス)を介して、外部制御信号を受信する。外部制御信号は、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、及びライトプロテクト信号WPnを含む。信号名に付記された“n”は、その信号がアクティブ・ローであることを示す。
チップイネーブル信号CEnは、メモリチップ10M_nの選択を可能にし、当該メモリチップ10M_nを選択する際にアサートされる。コマンドラッチイネーブル信号CLEは、信号DQとして送信されるコマンドをコマンドレジスタ15Cにラッチすることを可能にする。アドレスラッチイネーブル信号ALEは、信号DQとして送信されるアドレスをアドレスレジスタ15Bにラッチすることを可能にする。書き込みイネーブル信号WEnは、信号DQとして送信されるデータを入出力回路12に記憶することを可能にする。読み出しイネーブル信号REnは、メモリセルアレイ11から読み出したデータを、信号DQとして出力することを可能にする。ライトプロテクト信号WPnは、メモリチップ10M_nに対する書き込み動作及び消去動作を禁止する際にアサートされる。
レディ/ビジー回路14は、シーケンサ16からの制御に応じて、レディ/ビジー信号R/Bnを生成する。レディ/ビジー信号R/Bnは、メモリチップ10M_nがレディ状態であるか、あるいはビジー状態であるかを示す。レディ状態は、メモリチップ10M_nがNANDコントローラ20からの命令を受け付け可能な状態であることを示す。ビジー状態は、メモリチップ10M_nがNANDコントローラ20からの命令を受け付けできない状態であることを示す。NANDコントローラ20は、メモリチップ10M_nからレディ/ビジー信号R/Bnを受けることで、メモリチップ10M_nがレディ状態であるか、あるいはビジー状態であるかを知ることができる。
ステータスレジスタ15Aは、メモリチップ10M_nの動作に必要なステータス情報STSを記憶する。ステータスレジスタ15Aは、シーケンサ16の指示に従って、ステータス情報STSを入出力回路12に転送する。
アドレスレジスタ15Bは、入出力回路12から転送されたアドレスADDを記憶する。アドレスADDは、ロウアドレス及びカラムアドレスを含む。ロウアドレスは、例えば、動作対象のブロックBLKmを指定するブロックアドレス、及び指定されたブロック内の動作対象のワード線WLを指定するページアドレスを含む。
コマンドレジスタ15Cは、入出力回路12から転送されたコマンドCMDを記憶する。コマンドCMDは、例えば、シーケンサ16に書き込み動作を命ずる書き込みコマンド、読み出し動作を命ずる読み出しコマンド、及び消去動作を命ずる消去コマンドなどを含む。消去コマンドとしては、例えば、1つのブロックに対して消去動作を実行させるシングルブロックイレーズコマンド、あるいは複数のブロックに対して消去動作を並行して実行させるマルチブロックイレーズコマンドを含む。消去動作を並行して実行とは、例えば、複数のブロックの各々のブロックに対して実行される消去動作開始タイミングと消去動作終了タイミングとが実質的に同時であることを意味する。さらに、消去動作を並行して実行とは、複数のブロックのあるブロックに対して実行される消去動作の開始から終了までの期間と複数のブロックの別のブロックに対して実行される消去動作の開始から終了までの期間とが、部分的に重なっていることを意味してもよい。
ステータスレジスタ15A、アドレスレジスタ15B、及びコマンドレジスタ15Cには、例えばSRAM(static random access memory)を用いる。
シーケンサ16は、コマンドレジスタ15Cからコマンドを受け、このコマンドに基づくシーケンスに従ってメモリチップ10M_nを統括的に制御する。
シーケンサ16は、ドライバ18、ロウデコーダ19、カラムデコーダ21、センスアンプ22、及び電圧生成回路17などを制御して、書き込み動作、読み出し動作、及び消去動作を実行する。具体的には、シーケンサ16は、コマンドレジスタ15Cから受信した書き込みコマンドに基づいて、ドライバ18、ロウデコーダ19、センスアンプ22、及び電圧生成回路17を制御して、アドレスADDにて指定された複数のメモリセルトランジスタにデータを書き込む。シーケンサ16は、またコマンドレジスタ15Cから受信した読み出しコマンドに基づいて、ドライバ18、ロウデコーダ19、カラムデコーダ21、センスアンプ22、及び電圧生成回路17を制御して、アドレスADDにて指定された複数のメモリセルトランジスタからデータを読み出す。シーケンサ16は、またコマンドレジスタ15Cから受信した消去コマンドに基づいて、ドライバ18、ロウデコーダ19、カラムデコーダ21、センスアンプ22、及び電圧生成回路17を制御して、アドレスADDにて指定されたブロックに記憶されたデータを消去する。
電圧生成回路17は、メモリチップ10M_nの外部から電源端子を介して電源電圧VDD及び接地電圧VSSを受け取る。電源電圧VDDは、メモリチップ10M_nの外部から供給される外部電圧であり、例えば3.3Vである。接地電圧VSSは、メモリチップ10M_nの外部から供給される外部電圧であり、例えば0Vである。
電圧生成回路17は、電源電圧VDDを用いて、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を生成する。電圧生成回路17は、生成した電圧を、メモリセルアレイ11、ドライバ18、及びセンスアンプ22などに供給する。
ドライバ18は、電圧生成回路17から複数の電圧を受け取る。ドライバ18は、電圧生成回路17から供給された複数の電圧のうち、読み出し動作、書き込み動作、及び消去動作に応じて選択した複数の電圧を、複数の信号線を介してロウデコーダ19に供給する。ドライバ18は、例えば、消去動作時に、電圧生成回路17から供給された消去電圧VERAをソース線に供給する。
ロウデコーダ19は、アドレスレジスタ15Bからロウアドレスを受け、このロウアドレスをデコードする。ロウデコーダ19は、ロウアドレスのデコード結果に基づいて、複数ブロックのうちのいずれかを選択し、さらに選択したブロックBLKm内のワード線WLを選択する。さらに、ロウデコーダ19は、選択されたブロックBLKmに、ドライバ18から供給された複数の電圧を転送する。
カラムデコーダ21は、アドレスレジスタ15Bからカラムアドレスを受け、このカラムアドレスをデコードする。カラムデコーダ21は、カラムアドレスのデコード結果に基づいて、ビット線を選択する。
センスアンプ22は、データの読み出し動作時には、メモリセルトランジスタからビット線に読み出されたデータを検知及び増幅する。さらに、センスアンプ22は、メモリセルトランジスタから読み出された読み出しデータDATを一時的に記憶し、記憶した読み出しデータDATを入出力回路12へ転送する。また、センスアンプ22は、データの書き込み動作時には、入出力回路12から転送された書き込みデータDATを一時的に記憶する。さらに、センスアンプ22は、書き込みデータDATをビット線に転送する。
1.1.1.2 ブロックの構成
次に、メモリチップ10M_n内のメモリセルアレイ11の回路構成について説明する。メモリセルアレイ11は、前述したように、複数のブロックBLK0~BLKmを有する。以下に、ブロックBLKmの回路構成について説明する。
図3は、メモリセルアレイ11内のブロックBLKmの回路図である。ブロックBLKmは、例えば、複数のストリングユニットSU0、SU1、SU2、SU3を備える。以降、ストリングユニットSUと記した場合、ストリングユニットSU0~SU3の各々を示すものとする。ストリングユニットSUは、複数のNANDストリング(または、メモリストリング)NSを備える。
ここでは、説明を平易にするために、NANDストリングNSが、例えば、8個のメモリセルトランジスタMT0、MT1、MT2、…、MT7、及び2個のセレクトトランジスタST1、ST2を備える例を示す。以降、メモリセルトランジスタMTと記した場合、メモリセルトランジスタMT0~MT7の各々を示すものとする。
メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に記憶する。メモリセルトランジスタMT0~MT7は、セレクトトランジスタST1のソースとセレクトトランジスタST2のドレインとの間に直列に接続される。メモリセルトランジスタMTは、1ビットのデータ、または2ビット以上のデータを記憶することが可能である。
ストリングユニットSU0に含まれる複数のセレクトトランジスタST1のゲートは、セレクトゲート線SGD0に接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST1のゲートは、セレクトゲート線SGD1~SGD3にそれぞれ接続される。セレクトゲート線SGD0~SGD3の各々は、ロウデコーダ19によって独立に制御される。
ストリングユニットSU0に含まれる複数のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。なお、ストリングユニットSU0~SU3のセレクトトランジスタST2のゲートには、個別のセレクトゲート線SGSがそれぞれ接続される場合もある。セレクトトランジスタST1及びST2は、各種動作におけるストリングユニットSUの選択に使用される。
ブロックBLKmに含まれるメモリセルトランジスタMT0~MT7の制御ゲートは、ワード線WL0~WL7にそれぞれ接続される。ワード線WL0~WL7の各々は、ロウデコーダ19によって独立に制御される。
ビット線BL0~BLr(rは0以上の自然数)の各々は、複数のブロックBLK0~BLKmに接続され、ブロックBLKmに含まれるストリングユニットSU内にある1つのNANDストリングNSに接続される。すなわち、ビット線BL0~BLrの各々は、ブロックBLKm内でマトリクス状に配置されたNANDストリングNSのうち、同一列にある複数のNANDストリングNSのセレクトトランジスタST1のドレインに接続される。また、ソース線SLは、複数のブロックBLK0~BLKmに接続される。すなわち、ソース線SLは、ブロックBLKmに含まれる複数のセレクトトランジスタST2のソースに接続される。
要するに、ストリングユニットSUは、異なるビット線BLに接続され、かつ同一のセレクトゲート線SGDに接続されたNANDストリングNSを複数含む。また、ブロックBLKmは、ワード線WLを共通にする複数のストリングユニットSUを含む。さらに、メモリセルアレイ11は、ビット線BLを共通にする複数のブロックBLK0~BLKmを含む。
ブロックBLKmは、例えば、データの消去単位である。すなわち、ブロックBLKm内に含まれるメモリセルトランジスタMTに記憶されたデータは、一括して消去される。複数ブロック内のデータは、1つのブロック毎に順次消去される。または、複数ブロックに対して並行して消去が実行されることにより、複数ブロック内のデータが消去される。なお、データは、ストリングユニットSU単位で消去されてもよいし、また、ストリングユニットSU未満の単位で消去されてもよい。
1つのストリングユニットSU内でワード線WLを共有する複数のメモリセルトランジスタMTを、セルユニットCUと呼ぶ。セルユニットCUに含まれる複数のメモリセルトランジスタMTがそれぞれ記憶する1ビットのデータの集まりをページと呼ぶ。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて記憶容量が変化する。例えば、セルユニットCUは、各メモリセルトランジスタMTが1ビットデータを記憶する場合に1ページデータを記憶し、2ビットデータを記憶する場合に2ページデータを、3ビットデータを記憶する場合に3ページデータをそれぞれ記憶する。
セルユニットCUに対する書き込み動作及び読み出し動作は、ページを単位として行われる。言い換えると、読み出し動作及び書き込み動作は、1つのストリングユニットSUに配設された1本のワード線WLに接続された複数のメモリセルトランジスタMTに対して、一括して行われる。
なお、ブロックBLKmが備えるストリングユニットの数は、SU0~SU3に限るわけではなく、任意に設定可能である。また、ストリングユニットSUに含まれるNANDストリングNSの数、及びNANDストリングNSが備えるメモリセルトランジスタ、及びセレクトトランジスタの数も、任意に設定可能である。さらに、メモリセルトランジスタMTは、電荷蓄積層として絶縁膜を用いたMONOS(metal-oxide-nitride-oxide-silicon)型であってもよいし、電荷蓄積層として導電層を用いたFG(floating gate)型であってもよい。
1.1.2 システムコントローラ30の構成
次に、メモリシステム1内のシステムコントローラ30について説明する。図1に示すように、システムコントローラ30は、ブロック管理部31、ワークロード特性検出部32、消去制御部33、及び消去ブロック情報記憶部34を備える。
ブロック管理部31は、半導体メモリ10内の複数のメモリチップ10M_0~10M_nが含むブロックを管理する。
図4は、メモリシステム1においてブロック管理部31によって管理されるブロックの状態遷移を示す図である。図4に示すように、ブロックは、オープンブロックプールPO、書き込み済みブロックプールPW、フリーブロックプールPF、及び消去済みブロックプールPEの4つのプールのいずれかに属する。
オープンブロックプールPOに属するブロックは、データの書き込みが可能で、かつデータの読み出しが可能なブロックである。以降、オープンブロックプールPOに属するブロックを、オープンブロックと称する。
書き込み済みブロックプールPWに属するブロックは、データの書き込みと読み出しのうち読み出しのみが可能なブロックである。言い換えると、データの書き込みが禁止されるが、読み出しが可能なブロックである。以降、書き込み済みブロックプールPWに属するブロックを、書き込み済みブロックと称する。
フリーブロックプールPFに属するブロックは、ガベージコレクション(または、コンパクション)などによってブロック内の有効データが他のブロックにコピーされて、解放されたブロックである。言い換えると、フリーブロックプールPFのブロックは、保存されるデータが全て無効データであり、データの消去が可能なブロックである。ガベージコレクションは、対象となる書き込み済みブロックに含まれている有効データを、オープンブロックに移動させる動作である。以降、フリーブロックプールPFに属するブロックを、フリーブロックと称する。
ここで、ブロックが記憶している有効データ及び無効データについて説明する。メモリコントローラ3は、論理アドレスと物理アドレスの対応付けを示す論理物理変換テーブルを有する。例えば、論理物理変換テーブルは、NANDコントローラ20に記憶される。図5に論理物理変換テーブルの一例を示す。論理アドレスは、ホスト装置2が管理するアドレスである。物理アドレスは、メモリコントローラ3が管理するアドレスであり、半導体メモリ10の記憶場所を示すアドレスである。例えば、論理アドレスL0は物理アドレスP0に対応付けられ、論理アドレスL1は物理アドレスP12に対応付けられている。
例えば、ホスト装置2は、論理アドレスをメモリコントローラ3に送信する。メモリコントローラ3は、論理物理変換テーブルを参照して、受信した論理アドレスを物理ブロックアドレス及び物理ページアドレスに変換する。メモリコントローラ3は、変換した物理ブロックアドレス及び物理ページアドレスにより、半導体メモリ10にアクセスする。上述において、有効データとは論理アドレスと対応付けられたブロック(または、物理アドレス)に記憶されているデータであり、無効データとは論理アドレスと対応付けられていないブロックに記憶されているデータである。
消去済みブロックプールPEに属するブロックは、フリーブロックに対して消去が実行されて、消去が終了したブロックである。言い換えると、データが消去され、書き込み及び読み出しが禁止されたブロックである。以降、消去済みブロックプールPEに属するブロックを、消去済みブロックと称する。
ブロック管理部31は、各ブロックの状態に応じて、すなわち各ブロックがオープンブロック、書き込み済みブロック、フリーブロック、及び消去済みブロックのいずれであるかに応じて、オープンブロックプールPO、書き込み済みブロックプールPW、フリーブロックプールPF、及び消去済みブロックプールPEの間で、各ブロックを遷移させる。つまり、ブロック管理部31は、各ブロックの状態に基づいて、オープンブロックプールPOから書き込み済みブロックプールPWへ、あるいは書き込み済みブロックプールPWからフリーブロックプールPFへ、フリーブロックプールPFから消去済みブロックプールPEへ、消去済みブロックプールPEからオープンブロックプールPOへと、各ブロックを遷移させる。さらに、ブロック管理部31は、各ブロックが4つのプールのいずれに属しているかを管理する。
ここで、消去済みブロックプールPEに属する消去済みブロックに生じるデータ記憶に関する信頼性について説明する。
消去済みブロックは、データ消去が実行された後、消去された状態で放置され、その後、書き込みが実行されると、そのブロック内のメモリセルに、訂正が不可能なエラー(uncorrectable error:UNC)が発生する可能性が高くなる。このため、データ消去後のUNCが発生する可能性が低い時間内に、消去済みブロックをオープンブロックとして使用するのが望ましい。以降、消去済みブロックがデータ消去後に放置された場合に、そのブロックに生じるメモリセルのUNCの発生率が所定値より低く維持できる時間を放置許容時間と称し、この放置許容時間を含む情報を放置許容時間情報と称する。
図1に戻り、説明を続ける。ワークロード特性検出部32は、オープンブロックへのデータの書き込み量(または、書き込み特性)、及び或るプールから他のプールへ遷移したブロック数(以下、ブロック遷移数)を検出する。
消去制御部33は、フリーブロックに対する消去動作を制御する。消去制御部33は、消去ブロック数算出部331、消去コマンド発行判断部332、及び消去ブロック情報更新部333を含む。消去ブロック数算出部331は、書き込み量あるいはブロック遷移数、消去済みブロックの放置許容時間情報、消去済みブロック情報342(及び消去ブロックカウンタ343のカウント値)に基づいて、消去済みブロックプールPEに属するべき消去済みブロックの個数の最大値である最大ブロック数を算出する。消去コマンド発行判断部332は、算出された最大ブロック数に基づいて、NANDコントローラ20に消去コマンドの発行を指示する。消去ブロック情報更新部333は、NANDコントローラ20から消去完了の応答を受け取り、消去ブロック情報記憶部34内の情報及び値を更新する。
消去ブロック情報記憶部34は、フリーブロックに対する消去動作を制御するのに必要な情報及び値を記憶する。消去ブロック情報記憶部34は、放置許容時間テーブル341、消去済みブロック情報342、及び消去ブロックカウンタ343を含む。放置許容時間テーブル341は、放置許容時間情報を含み、消去済みブロックの書き込み及び消去回数と、書き込み及び消去回数に対応する放置許容時間を示すテーブルである。消去済みブロック情報342は、消去済みブロックのデータ消去後の経過時間に関する情報を含む。消去ブロックカウンタ343は、第1時刻から第2時刻に亘ってフリーブロックから消去済みブロックに遷移したブロックの数、すなわち生成された消去済みブロックの数をカウントし、カウント値として記憶する。消去ブロックカウンタ343のカウント値は、第1期間から第2期間に移行したとき、または第1期間において最初の最大ブロック数が算出される前に初期化(例えば、0)される。
1.2 メモリシステムの動作
次に、第1実施形態のメモリシステム1におけるブロック管理の制御について説明する。図6は、第1実施形態におけるブロック管理の制御を示すフローチャートである。図7は、ブロック管理の制御における信号及び情報の授受を示す図である。このブロック管理の制御は、システムコントローラ30にて実行される。
先ず、ブロック管理部31及びワークロード特性検出部32は、ホスト装置2からホストインタフェース40を介して書き込みコマンドを受信する。また、ブロック管理部31は、内蔵する制御プログラム等により、例えば、ガベージコレクションを実行する。これにより、ワークロード特性検出部32は、ガベージコレクションによる書き込みコマンドを受信する。ガベージコレクションの実行により有効データをオープンブロックに移動させるとき、書き込みコマンドが発行される。ガベージコレクションが実行された書き込み済みブロックは、フリーブロックに遷移される。
ホスト装置2からの書き込みコマンド、あるいはガベージコレクションによる書き込みコマンドを受信すると、ワークロード特性検出部32は、オープンブロックへのデータの書き込みの進捗を監視する。ワークロード特性検出部32は、またブロック管理部31を介してプール間におけるブロックの遷移状況を監視する(S11)。
次に、ワークロード特性検出部32は、オープンブロックへの書き込み量が所定値を超えると、消去制御部33に書き込み特性情報を送信する(S12)。書き込み特性情報は、オープンブロックに対する書き込みに関する情報であり、オープンブロックへの書き込み量及びその書き込み頻度を含む。なお、オープンブロックへの書き込み量が所定値を超えると、フリーブロックプールPFに属するフリーブロックに対して消去動作が実行されるため、当該所定値を消去実行閾値とも称する。
ワークロード特性検出部32は、またフリーブロックプールPFから消去済みブロックプールPEへのブロックの遷移、あるいは書き込み済みブロックプールPWからフリーブロックプールPFへのブロックの遷移を検出すると、消去制御部33にブロック遷移情報を送信する(S12)。ブロック遷移情報は、4つのプール間を遷移するブロックに関する情報であり、4つのプール間を遷移するブロックの数及びその遷移頻度を含む。以降、書き込み特性情報あるいはブロック遷移情報の少なくとも1つの情報を、ワークロード特性情報と称する。
次に、ワークロード特性情報、すなわち書き込み特性情報あるいはブロック遷移情報の少なくとも1つを受け取ると、消去制御部33内の消去ブロック数算出部331は、消去ブロック情報記憶部34から放置許容時間テーブル341内の放置許容時間情報、及び消去済みブロック情報342を取得する。消去済みブロック情報342は、消去済みブロックのデータ消去後の経過時間情報を含む。経過時間情報は、消去済みブロックのデータ消去後からの経過時間、消去済みブロックのデータ消去後からの経過時間が放置許容時間に達するまでの残り時間、及び消去済みブロックのデータ消去後からの経過時間が放置許容時間を越えたか否かの情報の少なくとも1つを含む。残り時間は、消去済みブロックの放置許容時間から、データ消去後の経過時間を減算した時間である。
消去ブロック数算出部331は、ワークロード特性情報、放置許容時間情報、及び消去済みブロック情報342に基づいて、消去済みブロックプールPEに属するべき消去済みブロックの最大ブロック数を算出する。
なおここで、消去ブロック数算出部331は、さらに消去ブロック情報記憶部34から消去ブロックカウンタ343のカウント値を取得する。カウント値は、第1時刻から第2時刻に亘ってフリーブロックから消去済みブロックに遷移したブロックの数、すなわち生成された消去済みブロックの数を示す。消去ブロック数算出部331は、ワークロード特性情報、放置許容時間情報、消去済みブロック情報342に、さらに消去ブロックカウンタ343のカウント値を加えて、これらに基づいて、消去済みブロックプールPEに属するべき消去済みブロックの最大ブロック数を算出してもよい(S13)。これにより、第1時刻から第2時刻に亘って変化する、より正確な最大ブロック数を算出することができる。これら最大ブロック数を算出する方法については後述する。
次に、消去制御部33内の消去コマンド発行判断部332は、消去済みブロックプールPEに属する消去済みブロックの数が、算出した最大ブロック数に達しているか否かを判断する(S14)。
消去済みブロックの数が最大ブロック数に達していない場合(No)、消去コマンド発行判断部332は、NANDコントローラ20に消去リクエストを送信する(S15)。消去リクエストは、NANDコントローラ20に消去コマンド(例えば、シングルブロックイレーズコマンド)の発行を要求する信号である。NANDコントローラ20は、消去リクエストを受信すると、半導体メモリ10に消去コマンドを発行する。消去コマンドを受信すると、半導体メモリ10内のメモリチップ10M_nは、フリーブロックに対して消去を実行する。第1実施形態のメモリシステム1は、シングルブロックイレーズ機能を備える。シングルブロックイレーズ機能では、消去対象が複数ブロックである場合、ブロックが1つずつ消去される。
その後、メモリチップ10M_nのブロックに対する消去が完了すると、消去制御部33内の消去ブロック情報更新部333は、NANDコントローラ20から消去完了を示す通知を受け取る。消去完了通知を受け取ると、消去ブロック情報更新部333は、消去ブロック情報記憶部34内の消去済みブロック情報342、及び消去ブロックカウンタ343のカウント値を更新する(S16)。その後、システムコントローラ30は、ブロック管理の制御を終了する。
一方、ステップS14において、消去済みブロックの数が最大ブロック数に達している場合(Yes)、システムコントローラ30は、ブロック管理の制御を終了する。
以下に、消去済みブロックプールPEに属するべき消去済みブロックの最大ブロック数を算出する方法について説明する。
前述したように、ワークロード特性検出部32は、オープンブロックへの書き込み量が消去実行閾値を超えると、消去制御部33に書き込み特性情報を送信する。ワークロード特性検出部32は、またフリーブロックプールPFから消去済みブロックプールPEへのブロックの遷移、あるいは書き込み済みブロックプールPWからフリーブロックプールPFへのブロックの遷移を検出すると、消去制御部33にブロック遷移情報を送信する。消去制御部33は、書き込み特性情報あるいはブロック遷移情報の少なくとも1つを受信すると、以下の処理を実行する。
図8に、メモリシステム1における時間の経過とスループットとの関係を示す。メモリシステム1により処理される書き込み量等のスループットは、時間の経過ともに変化する。
本実施形態では、図9に示すように、期間WnにおけるオープンブロックプールPOから書き込み済みブロックプールPWへのブロック遷移数をAとし、消去済みブロックのデータ消去後の放置許容時間をBとする。さらに、期間Wn及び期間Wn+1の各々の時間をT(秒)として、期間Wn+1において消去済みブロックプールPEに属するべき消去済みブロックの最大ブロック数NBmaxを算出する。最大ブロック数NBmaxは以下の式(1)で表せる。
NBmax = floor((A×B)/T) … (1)
なお、上述では、式(1)におけるAを、オープンブロックプールPOから書き込み済みブロックプールPWへのブロック遷移数としたが、これに限るわけではない。Aはブロックへの書き込み量が推定できるものであればよく、例えば、フリーブロックプールPFから消去済みブロックプールPEへのブロック遷移数、あるいは書き込み済みブロックプールPWからフリーブロックプールPFへのブロック遷移数、あるいは前述した書き込み特性情報であってもよい。
また、最大ブロック数NBmax、消去済みブロック情報342、及び消去ブロックカウンタ343のカウント値を用いて、NBmaxより正確な最大ブロック数NB’maxを求めることができる。
図10に示すように、時間T(秒)を有する期間Wn+1において、時刻0~T内で変化する時刻をtとする。さらに、期間Wn経過直後の最大ブロック数NBmaxをNBmaxとし、期間Wn+1中にフリーブロックプールPFから消去済みブロックプールPEへ遷移したブロック数、すなわち消去ブロックカウンタ343のカウント値をNcとする。すると、期間Wn+1におけるt時点の最大ブロック数NB’maxは以下の式(2)で表せる。
NB’max = Function(NBmax, t, Nc) … (2)
さらに、より具体的には、最大ブロック数NB’maxは以下の式(3)または式(4)で表せる。
図11、図12、図13及び図14に、消去ブロック情報記憶部34が記憶する情報の一例を示す。図11は、放置許容時間テーブル341を示す。放置許容時間テーブル341は、消去済みブロックの書き込み及び消去回数に対応する放置許容時間を表している。例えば、書き込み及び消去回数が250回より少ない消去済みブロックの場合、その放置許容時間はα時間である。書き込み及び消去回数が3000回程度の消去済みブロックの場合、その放置許容時間はβ時間である。この場合、放置許容時間は、α>βである。
図12、図13及び図14は、消去済みブロック情報342を示す。図12は、消去済みブロックプールPEに属する消去済みブロックと、それら消去済みブロックの使用期限を示すテーブルである。使用期限は、ブロックに対して消去を行った直後の時刻に、放置許容時間Bを加えた時刻である。図13及び図14は、消去済みブロックプールPEに属する消去済みブロックのデータ消去後の状態とそれらのブロック数を示す。図13は、消去済みブロックが使用期限を超えていないか、あるいは超えているかで分けた場合の消去済みブロックの数を示す。図14は、消去済みブロックにおいてデータ消去後から時間が経過していない若いブロック、時間が経過した古いブロック、及びこれらの中間のブロックで分けた場合の消去済みブロックのそれぞれの数を示す。
NB’max = Function 1(NBmax, t, Nc)
=(NBmax×(t/T)-(使用期限を越えたブロック数)) … (3)
上記の式(3)において、“使用期限を越えたブロック数”は、図13に示す“使用期限を越えたブロック”の数に相当する。
また、Practical Value = round(1.0×NByoung+1.2×NBmiddle+1.5×NBold)とすると、
NB’max = Function 2(NBmax, t, Nc)
=(NBmax×(t/T)-Practical Value) … (4)
上記の式(4)の成立条件は(NBmax×(t/T)>Practical Value)である。式(4)において、NByoungは図14に示す“若いブロック”の数に相当する。NBmiddleは図14に示す“中間のブロック”の数に、NBoldは“古いブロック”の数にそれぞれ相当する。
ここで、前述したように、消去済みブロックプールPEに属する消去済みブロック数が最大ブロック数NB’maxに達していない場合は、消去制御部33からNANDコントローラ20に消去リクエストが送信される。その後、ブロックの消去完了後に、消去ブロック情報記憶部34内の情報及び値を更新する。
1.3 第1実施形態の効果
第1実施形態によれば、信頼性及び動作性能を向上できるメモリシステムを提供できる。
以下に、第1実施形態の効果について説明する。
第1実施形態のメモリシステムでは、オープンブロックへのデータの書き込み進捗状況、あるいはプール間におけるブロックの遷移状況、消去済みブロックの放置許容時間情報、及びデータ消去後の消去済みブロックの経過時間情報に基づいて、消去済みブロックプールPEに属するべき消去済みブロックの最適な最大ブロック数を算出する。さらに、消去済みブロックプールPEに属する消去済みブロックの数が、最大ブロック数に設定されるように、フリーブロックに対する消去動作を制御する。
上述の構成により、消去済みブロックプールPEに属する消去済みブロックを最大ブロック数に維持することにより、データが消去された後の消去済みブロックが放置される時間を、訂正が不可能なエラー(UNC)の発生を低減できる時間に制御できる。これにより、半導体メモリ10に発生するUNCを低減でき、半導体メモリ10に記憶されたデータの信頼性を向上させることができる。
また、消去済みブロックの最大ブロック数を動的に管理することで、すなわち、消去済みブロックの最大ブロック数を一定数に設定せず、書き込み特性情報またはブロック遷移情報、放置許容時間情報、及び消去済みブロックの経過時間情報に基づいて算出することで、動作状況に応じて消去済みブロックの最大ブロック数を最適な数に設定できる。これにより、消去動作が読み出し動作及び書き込み動作と衝突する頻度を低減でき、メモリシステムにおける動作性能を向上させることができる。
2.第2実施形態
次に、第2実施形態のメモリシステムについて説明する。第2実施形態のメモリシステムは、マルチブロックイレーズ機能を備える。マルチブロックイレーズ機能は、複数のブロックに対して消去動作を並行して実行する機能である。すなわち、マルチブロックイレーズ機能では、1つの消去コマンド(例えば、マルチブロックイレーズコマンド)で複数のブロックに対して消去動作を並行して実行することができる。以下、第2実施形態では、主に第1実施形態と異なる点について説明する。
2.1 メモリシステムの構成
第2実施形態のメモリシステムの構成について説明する。図15は、第2実施形態のメモリシステムを含む情報処理システムの構成を示すブロック図である。メモリシステム1は、半導体メモリ10、NANDコントローラ20、システムコントローラ30A、及びホストインタフェース40を備える。半導体メモリ10、NANDコントローラ20、及びホストインタフェース40については、第1実施形態と同様である。
2.1.1 システムコントローラ30Aの構成
以下に、第2実施形態におけるシステムコントローラ30Aについて説明する。図15に示すように、システムコントローラ30Aは、ブロック管理部31、ワークロード特性検出部32、消去制御部33、及び消去ブロック情報記憶部34Aを備える。ブロック管理部31、ワークロード特性検出部32、及び消去制御部33は、第1実施形態と同様である。
システムコントローラ30Aが備える消去ブロック情報記憶部34Aは、放置許容時間テーブル341、消去済みブロック情報342、消去ブロックカウンタ343、最大消去ブロック情報344、及びフリーブロック情報345を含む。放置許容時間テーブル341、消去済みブロック情報342、及び消去ブロックカウンタ343は、第1実施形態と同様である。
消去ブロック情報記憶部34Aが含む最大消去ブロック情報344は、マルチブロックイレーズコマンドにより、並行して消去が可能なブロック数の最大数(以下、最大消去ブロック数と記す)を含む。最大消去ブロック数は、消去動作に使用できるピーク電力、及び消去動作に係る信頼性を考慮して設定される値である。
フリーブロック情報345は、フリーブロックプールPFに属するフリーブロック数を含む。
2.2 メモリシステムの動作
以下に、第2実施形態のメモリシステム1におけるブロック管理の制御について説明する。図16は、第2実施形態におけるブロック管理の制御を示すフローチャートである。このブロック管理の制御は、システムコントローラ30にて実行される。
図16において、ステップS21~S23までは、第1実施形態において図7に示したステップS11~S13までの処理と同様である。
ワークロード特性検出部32は、オープンブロックへの書き込みの進捗、及びブロックの遷移状況を監視する(S21)。
次に、ワークロード特性検出部32は、オープンブロックへの書き込み量が所定値を超えると、消去制御部33に書き込み特性情報を送信する。ワークロード特性検出部32は、またフリーブロックプールPFから消去済みブロックプールPEへのブロックの遷移、あるいは書き込み済みブロックプールPWからフリーブロックプールPFへのブロックの遷移を検出すると、消去制御部33にブロック遷移情報を送信する(S22)。
次に、書き込み特性情報あるいはブロック遷移情報の少なくとも1つを受け取ると、消去制御部33内の消去ブロック数算出部331は、消去ブロック情報記憶部34から放置許容時間テーブル341内の放置許容時間情報、消去済みブロック情報342、及び消去ブロックカウンタ343のカウント値を取得する。消去ブロック数算出部331は、ワークロード特性情報、放置許容時間情報、消去済みブロック情報342、及び消去ブロックカウンタ343のカウント値に基づいて、消去済みブロックプールPEに属するべき消去済みブロックの最大ブロック数を算出する(S23)。
次に、消去ブロック数算出部331は、算出した最大ブロック数から、最大ブロック数の算出時に消去済みブロックプールPEに既に属している消去済みブロック数を減算する。これにより、消去ブロック数算出部331は、消去済みブロックプールPEに遷移させるべきブロック数、すなわちフリーブロックに対して消去を行い、フリーブロックを消去済みブロックに遷移させるブロック数(以下、消去予定ブロック数と記す)を算出する(S24)。
次に、消去ブロック数算出部331は、最大消去ブロック情報344に含まれる最大消去ブロック数、消去予定ブロック数、及びフリーブロック情報345に含まれるフリーブロック数のうち、最も少ないブロック数を、並行して消去を実行するべきブロック数(以下、消去実行ブロック数と記す)として選択する(S25)。
次に、消去制御部33内の消去コマンド発行判断部332は、選択された消去実行ブロック数を消去対象とする消去リクエストを、NANDコントローラ20に送信する(S26)。消去リクエストは、NANDコントローラ20にマルチブロックイレーズコマンドの発行を要求する信号である。NANDコントローラ20は、消去リクエストを受信すると、半導体メモリ10にマルチブロックイレーズコマンドを発行する。マルチブロックイレーズコマンドを受信すると、半導体メモリ10は、消去対象の複数のフリーブロックに対して並行して消去を実行する。上述したように、第2実施形態のメモリシステムは、マルチブロックイレーズ機能を備える。マルチブロックイレーズ機能では、消去対象が複数ブロックである場合、複数ブロックに対して並行して消去が実行される。
その後、半導体メモリ10内の複数ブロックに対する消去が完了すると、消去制御部33内の消去ブロック情報更新部333は、NANDコントローラ20から消去完了通知を受け取る。消去完了通知を受け取ると、消去ブロック情報更新部333は、消去ブロック情報記憶部34内の消去済みブロック情報342、消去ブロックカウンタ343のカウント値、及びフリーブロック情報345を更新する(S27)。その後、システムコントローラ30は、ブロック管理の制御を終了する。
2.3 第2実施形態の効果
第2実施形態によれば、第1実施形態と同様に、信頼性及び動作性能を向上できるメモリシステムを提供できる。
第2実施形態は、第1実施形態の効果に加えて、さらに以下の効果を有する。
第2実施形態のメモリシステムは、マルチブロックイレーズ機能を備える。マルチブロックイレーズ機能では、1つの消去コマンドで複数のブロックを並行して消去することができる。第2実施形態では、複数ブロックを並行して消去できるため、消去動作に要する時間を短縮できる。
また、並行して消去するブロック数を動的に管理することで、すなわち、並行して消去するブロック数を一定数に設定せず、最大消去ブロック数、消去予定ブロック数、及びフリーブロック数のうちから選択することで、動作状況に応じて並行して消去するブロック数を最適な数に設定できる。これにより、消去動作が読み出し動作及び書き込み動作と衝突する頻度を低減でき、メモリシステムにおける動作性能を向上させることができる。
3.第3実施形態
次に、第3実施形態のメモリシステムについて説明する。第3実施形態では、複数ブロックを並行して消去するための論理ブロックに対応する半導体メモリ10内のブロックの構成方法について説明する。第3実施形態では、主に第2実施形態と異なる点について説明する。
3.1 NANDコントローラ20と半導体メモリ10の構成
図17は、第3実施形態におけるNANDコントローラ20と半導体メモリ10の構成を示すブロック図である。ここでは説明を容易にするために、半導体メモリ10は、4つのメモリチップ10M_0~10M_3を有し、各メモリチップは2つのバンクBN0、BN1を有し、各バンクは2つのプレーンP0、P1を有し、各プレーンは8つのブロックBLK0~BLK7を含むものとする。
図17に示すように、例えば、NANDコントローラ20は、4つのチャネルCH0、CH1、CH2、及びCH3を有する。チャネルCH0~CH3には、メモリチップ10M_0~10M_3がそれぞれ接続される。メモリチップ10M_0~10M_3の各々は、バンクBN0及びBN1を有する。バンクBN0及びBN1の各々は、プレーンP0及びP1を有する。プレーンP0及びP1の各々は、ブロックBLK0~BLK7を含む。
以下に、メモリチップのプレーン内のブロックの接続例について説明する。
図18は、メモリチップのプレーンP0内のブロックBLK0~BLK7の接続例を示す図である。プレーンP0は、メモリセルアレイ11、ブロックデコーダBD、スイッチ回路SW、及びドライバ18を有する。メモリセルアレイ11は、ブロックBLK0~BLK7を含む。図3に示したロウデコーダ19は、ブロックデコーダBD及びスイッチ回路SWを含む。
メモリセルアレイ11内のブロックBLK0~BLK7はY方向に配列されている。ブロックBLK0~BLK7のX方向には、ブロックデコーダBDが配置される。ブロックデコーダBDは、Y方向に配列されたサブブロックデコーダSBD0及びSBD1を含む。サブブロックデコーダSBD0は、ブロックBLK0~BLK3に対応する。さらに、サブブロックデコーダSBD1は、ブロックBLK4~BLK7に対応する。
サブブロックデコーダSBD0は、ブロックアドレスADRに基づいて、ブロックBLK0~BLK3を選択状態あるいは非選択状態に設定する。サブブロックデコーダSBD1は、ブロックアドレスADRに基づいて、ブロックBLK4~BLK8を選択状態あるいは非選択状態に設定する。
ブロックBLK0~BLK7とサブブロックデコーダSBD0及びSBD1との間には、スイッチ回路SWが配置される。スイッチ回路SWは、X方向に配列されたワード線スイッチアレイWS0、WS1、WS2、WS3を含む。ワード線スイッチアレイWS0~WS3のY方向には、ドライバ18が配置される。
ドライバ18には、信号線群CGg0、CGg1、CGg2、CGg3が接続される。信号線群CGg0~CGg3の各々は、信号線CG0、CG1、…、CG7を含む。ドライバ18は、信号線群CGg0~CGg3の各々内の信号線CG0~CG7を駆動する。
ワード線スイッチアレイWS0~WS3の各々は、複数のスイッチトランジスタを含む。信号線群CGg0~CGg3は、ワード線スイッチアレイWS0~WS3をそれぞれ介して、ブロックBLK0~BLK3にそれぞれ接続される。詳しくは、信号線群CGg0内の信号線CG0~CG7は、ワード線スイッチアレイWS0内のスイッチトランジスタを介して、ブロックBLK0内のワード線WL0~WL7にそれぞれ接続される。信号線群CGg1内の信号線CG0~CG7は、ワード線スイッチアレイWS1内のスイッチトランジスタを介して、ブロックBLK1内のワード線WL0~WL7にそれぞれ接続される。信号線群CGg2内の信号線CG0~CG7は、ワード線スイッチアレイWS2内のスイッチトランジスタを介して、ブロックBLK2内のワード線WL0~WL7にそれぞれ接続される。さらに、信号線群CGg3内の信号線CG0~CG7は、ワード線スイッチアレイWS3内のスイッチトランジスタを介して、ブロックBLK3内のワード線WL0~WL7にそれぞれ接続される。
ワード線スイッチアレイWS0内の複数のスイッチトランジスタは、サブブロックデコーダSBD0からの選択信号SEL0に従って、信号線群CGg0内の信号線CG0~CG7とブロックBLK0内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。例えば、或るスイッチトランジスタは、選択信号SEL0に従って、信号線CG0とワード線WL0との間を接続する、あるいは遮断する。他のスイッチトランジスタは、選択信号SEL0に従って、信号線CG1とワード線WL1との間を接続する、あるいは遮断する。
ワード線スイッチアレイWS1内の複数のスイッチトランジスタは、サブブロックデコーダSBD0からの選択信号SEL0に従って、信号線群CGg1内の信号線CG0~CG7とブロックBLK1内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
ワード線スイッチアレイWS2内の複数のスイッチトランジスタは、サブブロックデコーダSBD0からの選択信号SEL0に従って、信号線群CGg2内の信号線CG0~CG7とブロックBLK2内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
さらに、ワード線スイッチアレイWS3内の複数のスイッチトランジスタは、サブブロックデコーダSBD0からの選択信号SEL0に従って、信号線群CGg3内の信号線CG0~CG7とブロックBLK3内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
また、ワード線スイッチアレイWS0内の他の複数のスイッチトランジスタは、サブブロックデコーダSBD1からの選択信号SEL1に従って、信号線群CGg0内の信号線CG0~CG7とブロックBLK4内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。例えば、或るスイッチトランジスタは、選択信号SEL1に従って、信号線CG0とワード線WL0との間を接続する、あるいは遮断する。他のスイッチトランジスタは、選択信号SEL1に従って、信号線CG1とワード線WL1との間を接続する、あるいは遮断する。
ワード線スイッチアレイWS1内の他の複数のスイッチトランジスタは、サブブロックデコーダSBD1からの選択信号SEL1に従って、信号線群CGg1内の信号線CG0~CG7とブロックBLK5内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
ワード線スイッチアレイWS2内の他の複数のスイッチトランジスタは、サブブロックデコーダSBD1からの選択信号SEL1に従って、信号線群CGg2内の信号線CG0~CG7とブロックBLK6内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
さらに、ワード線スイッチアレイWS3内の他の複数のスイッチトランジスタは、サブブロックデコーダSBD1からの選択信号SEL1に従って、信号線群CGg3内の信号線CG0~CG7とブロックBLK7内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
ドライバ18は、信号線群CGg0~CGg3内の信号線CG0~CG7とワード線スイッチアレイWS0~WS3内のスイッチトランジスタを介して、選択されたブロックBLK内のワード線WLに動作電圧を供給する。例えば、消去動作において、ドライバ18は、消去対象のブロック内のワード線WLに電圧VWLEを供給する。電圧VWLEは、例えば電圧VSS以上、かつ消去電圧VERA未満の電圧である。なお、電圧VWLEは上記の電圧に限らず、電圧VSS未満の電圧であってもよい。一方、ドライバ18は、非消去対象のブロック内のワード線WLに、電圧VWLEより高い電圧を供給する。
また以下に、メモリチップのプレーンP0内のブロックの他の接続例について説明する。
図19は、メモリチップのプレーンP0内のブロックBLK0~BLK7の他の接続例を示す図である。プレーンP0は、メモリセルアレイ11、ブロックデコーダBDA、スイッチ回路SW、及びドライバ18を有する。メモリセルアレイ11、スイッチ回路SW、及びドライバ18は、図18に示した構成と同様である。
ブロックデコーダBDAは、Y方向に配列されたサブブロックデコーダSBDa、SBDb、SBDc及びSBDdを含む。サブブロックデコーダSBDaは、ブロックBLK0及びBLK1に対応する。サブブロックデコーダSBDbは、ブロックBLK2及びBLK3に対応する。サブブロックデコーダSBDcは、ブロックBLK4及びBLK5に対応する。さらに、サブブロックデコーダSBDdは、ブロックBLK6及びBLK7に対応する。
サブブロックデコーダSBDaは、ブロックアドレスADRに基づいて、ブロックBLK0及びBLK1を選択状態あるいは非選択状態に設定する。サブブロックデコーダSBDbは、ブロックアドレスADRに基づいて、ブロックBLK2及びBLK3を選択状態あるいは非選択状態に設定する。サブブロックデコーダSBDcは、ブロックアドレスADRに基づいて、ブロックBLK4及びBLK5を選択状態あるいは非選択状態に設定する。さらに、サブブロックデコーダSBDdは、ブロックアドレスADRに基づいて、ブロックBLK6及びBLK7を選択状態あるいは非選択状態に設定する。
ワード線スイッチアレイWS0内の複数のスイッチトランジスタは、サブブロックデコーダSBDaからの選択信号SEL0に従って、信号線群CGg0内の信号線CG0~CG7とブロックBLK0内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。例えば、或るスイッチトランジスタは、選択信号SEL0に従って、信号線CG0とワード線WL0との間を接続する、あるいは遮断する。他のスイッチトランジスタは、選択信号SEL0に従って、信号線CG1とワード線WL1との間を接続する、あるいは遮断する。
ワード線スイッチアレイWS1内の複数のスイッチトランジスタは、サブブロックデコーダSBDaからの選択信号SEL0に従って、信号線群CGg1内の信号線CG0~CG7とブロックBLK1内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
また、ワード線スイッチアレイWS2内の複数のスイッチトランジスタは、サブブロックデコーダSBDbからの選択信号SEL0に従って、信号線群CGg2内の信号線CG0~CG7とブロックBLK2内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
ワード線スイッチアレイWS3内の複数のスイッチトランジスタは、サブブロックデコーダSBDbからの選択信号SEL0に従って、信号線群CGg3内の信号線CG0~CG7とブロックBLK3内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
また、ワード線スイッチアレイWS0内の他の複数のスイッチトランジスタは、サブブロックデコーダSBDcからの選択信号SEL1に従って、信号線群CGg0内の信号線CG0~CG7とブロックBLK4内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
ワード線スイッチアレイWS1内の他の複数のスイッチトランジスタは、サブブロックデコーダSBDcからの選択信号SEL1に従って、信号線群CGg1内の信号線CG0~CG7とブロックBLK5内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
また、ワード線スイッチアレイWS2内の他の複数のスイッチトランジスタは、サブブロックデコーダSBDdからの選択信号SEL1に従って、信号線群CGg2内の信号線CG0~CG7とブロックBLK6内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
さらに、ワード線スイッチアレイWS3内の他の複数のスイッチトランジスタは、サブブロックデコーダSBDdからの選択信号SEL1に従って、信号線群CGg3内の信号線CG0~CG7とブロックBLK7内のワード線WL0~WL7との間を接続状態あるいは非接続状態に切り換える。
ドライバ18は、信号線群CGg0~CGg3内の信号線CG0~CG7とワード線スイッチアレイWS0~WS3内のスイッチトランジスタを介して、選択されたブロックBLK内のワード線WLに動作電圧を供給する。例えば、消去動作において、ドライバ18は、消去対象のブロック内のワード線WLに電圧VWLEを供給する。電圧VWLEは、前述したように、例えば電圧VSS以上かつ消去電圧VERA未満の電圧である。なお、電圧VWLEは、電圧VSS未満の電圧である場合もある。一方、ドライバ18は、非消去対象のブロック内のワード線WLに、電圧VWLEより高い電圧を供給する。
なお、上述にはメモリチップのプレーンP0内のブロックの接続を説明したが、プレーンP1内のブロックの接続も、図18あるいは図19に示した接続と同様である。また、上述では、NANDコントローラ20に4つのメモリチップ10M_0~10M_3が接続され、各メモリチップが2つのバンクBN0、BN1を有し、各バンクが2つのプレーンP0、P1を有する場合を説明したが、NANDコントローラ20に接続されるメモリチップの数、各メモリチップが有するバンクの数、各バンクが有するプレーンの数、及び各プレーンが有するブロックの数は、それぞれ任意に設定可能である。
3.2 メモリシステムの動作
第3実施形態では、マルチブロックイレーズコマンドを半導体メモリ10に発行し、複数ブロック内のデータを並行して消去する。半導体メモリ10のメモリチップ内のブロックBLK0~BLK7、ブロックデコーダBD、スイッチ回路SW、及びドライバ18が図18あるいは図19に示したように構成されている場合、複数ブロックを並行して消去するために、論理ブロックと物理ブロックとを以下のように対応付ける。論理ブロックは、システムコントローラ30にて管理されるブロックである。物理ブロックは、半導体メモリ10のメモリチップ内のブロックBLK0~BLK7である。
図20は、第3実施形態のメモリシステム1における論理ブロックと物理ブロックとの対応関係を示すテーブルの一例である。チャネルCH0に接続されたメモリチップ10M_0は、バンクBN0及びBN1を有し、バンクBN0及びBN1の各々はプレーンP0及びP1を有する。同様に、チャネルCH1に接続されたメモリチップ10M_1は、バンクBN0及びBN1を有し、バンクBN0及びBN1の各々はプレーンP0及びP1を有する。物理ブロックとしてのプレーンP0及びP1内のブロックBLK0~BLK7は、0~7でそれぞれ示される。論理ブロックのアドレスは、MBA0、MBA1、…、MBA7で示される。
図20に示すように、ワード線スイッチアレイWS0~WS3の各々を共用する複数の物理ブロックによって、論理ブロックが構成される。すなわち、論理ブロックは、1つのワード線スイッチアレイに接続された複数のブロックBLKによって構成される。例えば、アドレスMBA0で示される論理ブロックは、ワード線スイッチアレイWS0に接続されたブロックBLK0及びBLK4によって構成される。アドレスMBA1で示される論理ブロックは、ワード線スイッチアレイWS1に接続されたブロックBLK1及びBLK5によって構成される。アドレスMBA2で示される論理ブロックは、ワード線スイッチアレイWS2に接続されたブロックBLK2及びBLK6によって構成される。さらに、アドレスMBA3で示される論理ブロックは、ワード線スイッチアレイWS3に接続されたブロックBLK3及びBLK7によって構成される。
同様に、アドレスMBA4で示される論理ブロックは、ワード線スイッチアレイWS0に接続されたブロックBLK0及びBLK4によって構成される。アドレスMBA5で示される論理ブロックは、ワード線スイッチアレイWS1に接続されたブロックBLK1及びBLK5によって構成される。アドレスMBA6で示される論理ブロックは、ワード線スイッチアレイWS2に接続されたブロックBLK2及びBLK6によって構成される。さらに、アドレスMBA7で示される論理ブロックは、ワード線スイッチアレイWS3に接続されたブロックBLK3及びBLK7によって構成される。
このように論理ブロックを構成することにより、例えば、アドレスMBA0で示される論理ブロックに対応するブロックBLK0及びBLK4を並行して消去することが可能である。同様に、アドレスMBA1に対応するブロックBLK1及びBLK5を並行して消去することが可能である。
また、論理ブロックと物理ブロックを対応付ける他の例として、アドレスMBA0~MBA7とブロックBLK0~BLK7とを以下のように対応付けてもよい。
図21は、第3実施形態のメモリシステム1における論理ブロックと物理ブロックとの対応関係を示すテーブルの他の例である。図20と同様に、チャネルCH0に接続されたメモリチップ10M_0は、バンクBN0及びBN1を有し、バンクBN0及びBN1の各々はプレーンP0及びP1を有する。チャネルCH1に接続されたメモリチップ10M_1は、バンクBN0及びBN1を有し、バンクBN0及びBN1の各々はプレーンP0及びP1を有する。
また、図18に示した構成では、ブロックデコーダグループG0はサブブロックデコーダSBD0を含み、ブロックデコーダグループG1はサブブロックデコーダSBD1を含む。図19に示した構成では、ブロックデコーダグループG0はサブブロックデコーダSBDa及びSBDbを含み、ブロックデコーダグループG1はサブブロックデコーダSBDc及びSBDdを含む。
図21に示すように、ブロックデコーダグループG0あるいはブロックデコーダグループG1を共用する複数の物理ブロックによって、アドレスMBA0~MBA3あるいはMBA4~MBA7で示される論理ブロックが構成される。すなわち、並行して消去される論理ブロックのグループは、1つのブロックデコーダグループに接続された複数のブロックBLKによって構成される。
例えば、図18に示したように、4つのワード線スイッチアレイWS0~WS3が設けられている場合、これらワード線スイッチアレイWS0~WS3に対応するサブブロックデコーダSBD0及びSBD1を、それぞれブロックデコーダグループG0及びG1と設定する。
このように設定すれば、図21に示すように、アドレスMBA0~MBA3で示される論理ブロックは、ブロックデコーダグループG0によってブロックBLK0~BLK3から選択される。あるいは、アドレスMBA0~MBA3の論理ブロックは、ブロックデコーダグループG1によってブロックBLK4~BLK7からに選択される。
アドレスMBA4~MBA7で示される論理ブロックは、ブロックデコーダグループG1によってブロックBLK4~BLK7から選択される。あるいは、アドレスMBA4~MBA7の論理ブロックは、ブロックデコーダグループG0によってブロックBLK0~BLK3からに選択される。
このように論理ブロックを構成することにより、例えば、アドレスMBA0~MBA3で示される論理ブロックに対応するブロックBLK0~BLK3あるいはBLK4~BLK7を並行して消去することが可能である。同様に、アドレスMBA4~MBA7で示される論理ブロックに対応するブロックBLK4~BLK7あるいはBLK0~BLK3を並行して消去することが可能である。
3.3 第3実施形態の効果
第3実施形態によれば、第2実施形態と同様に、信頼性及び動作性能を向上できるメモリシステムを提供できる。すなわち、半導体メモリ10に記憶されたデータの信頼性を向上させることができる。さらに、メモリシステムにおける動作性能を向上させることができる。
4.第4実施形態
次に、第4実施形態のメモリシステムについて説明する。第4実施形態では、並行して消去するブロック数を最大化(または、最適化)するための論理ブロックの管理方法について説明する。第4実施形態では、主に第2実施形態と異なる点について説明する。
4.1 メモリシステムの構成
第4実施形態のメモリシステムの構成について説明する。図22は、第4実施形態のメモリシステムを含む情報処理システムの構成を示すブロック図である。メモリシステム1は、半導体メモリ10、NANDコントローラ20、システムコントローラ30B、及びホストインタフェース40を備える。半導体メモリ10、NANDコントローラ20、及びホストインタフェース40については、第1実施形態と同様である。
4.1.1 システムコントローラ30Bの構成
以下に、第4実施形態におけるシステムコントローラ30Bについて説明する。図22に示すように、システムコントローラ30Bは、ブロック管理部31、ワークロード特性検出部32、消去制御部33、消去ブロック情報記憶部34、及びフリーブロック情報記憶部34Bを備える。ブロック管理部31、ワークロード特性検出部32、消去制御部33、及び消去ブロック情報記憶部34は、第1実施形態と同様である。
システムコントローラ30Bが備えるフリーブロック情報記憶部34Bは、フリーブロックグループ管理テーブル346、並びに書き込み及び消去回数差の上限値情報347を含む。
フリーブロックグループ管理テーブル346は、図23に示すようなワード線スイッチアレイに対応するフリーブロック数を示す第1テーブル、あるいは図24に示すようなブロックデコーダグループに対応するフリーブロック数を示す第2テーブルを含む。
図23は、ワード線スイッチアレイに対応するフリーブロック数を示す第1テーブルの一例である。この第1テーブルは、フリーブロックプールFPに属するフリーブロックのうち、ワード線スイッチアレイWS0~WS3の各々に対応するフリーブロック数がそれぞれいくつあるかを表す。さらに、ワード線スイッチアレイWS0~WS3の各々のフリーブロックに対して実行された書き込み及び消去の回数の平均値を表す。
図24は、ブロックデコーダグループに対応するフリーブロック数を示す第2テーブルの一例である。この第2テーブルは、フリーブロックプールFPに属するフリーブロックのうち、ブロックデコーダグループG0~G5の各々に対応するフリーブロック数がそれぞれいくつあるかを表す。さらに、ブロックデコーダグループG0~G5の各々のフリーブロックに対して実行された書き込み及び消去の回数の平均値を表す。
書き込み及び消去回数差の上限値情報347は、第1及び第2テーブルに含まれる書き込み及び消去回数の平均値の差の上限値を含む。
4.2 メモリシステムの動作
以下に、第4実施形態のメモリシステム1におけるブロック管理の制御について説明する。図25及び図26は、第4実施形態におけるブロック管理の制御を示すフローチャートである。このブロック管理の制御は、システムコントローラ30にて実行される。
図25において、ステップS31~S34までは、第2実施形態において図16に示したステップS21~S24までの処理と同様である。
ワークロード特性検出部32は、オープンブロックへの書き込みの進捗、及びブロックの遷移状況を監視する(S31)。
次に、ワークロード特性検出部32は、オープンブロックへの書き込み量が所定値を超えると、消去制御部33に書き込み特性情報を送信する。ワークロード特性検出部32は、またフリーブロックプールPFから消去済みブロックプールPEへのブロックの遷移、あるいは書き込み済みブロックプールPWからフリーブロックプールPFへのブロックの遷移を検出すると、消去制御部33にブロック遷移情報を送信する(S32)。
次に、書き込み特性情報あるいはブロック遷移情報の少なくとも1つを受け取ると、消去ブロック数算出部331は、放置許容時間テーブル341内の放置許容時間情報、消去済みブロック情報342、及び消去ブロックカウンタ343のカウント値を取得する。消去ブロック数算出部331は、ワークロード特性情報、放置許容時間情報、消去済みブロック情報342、及び消去ブロックカウンタ343のカウント値に基づいて、消去済みブロックプールPEに属するべき消去済みブロックの最大ブロック数を算出する(S33)。
次に、消去ブロック数算出部331は、算出した最大ブロック数から、最大ブロック数の算出時に消去済みブロックプールPEに既に属している消去済みブロック数を減算する。これにより、消去ブロック数算出部331は、消去済みブロックプールPEに遷移させるべきブロック数、すなわちフリーブロックに対して消去を行い、フリーブロックを消去済みブロックに遷移させるべきブロック数(消去予定ブロック数)を算出する(S34)。
次に、図26に示すように、消去ブロック数算出部331は、フリーブロックグループ管理テーブル346に含まれた情報から、ワード線スイッチアレイWS0~WS3の各々のグループ、あるいはブロックデコーダグループG0~G5の各々のグループに含まれるフリーブロックの書き込み及び消去回数の平均値の中で最大と最小との差が、上限値情報347に含まれる上限値を超えているか否かを判定する(S35)。平均値の最大と最小との差が上限値を超えている場合(Yes)、ワード線スイッチアレイWS0~WS3の各々のグループ、あるいはブロックデコーダグループG0~G5の各々のグループの中で書き込み及び消去回数の平均値が最も小さいグループを選択する(S36)。なお、選択したグループのフリーブロックの数が消去予定ブロック数より少ないときは、書き込み及び消去回数の平均値が次に小さいグループを順次選択する。一方、平均値の最大と最小との差が上限値を超えていない場合(No)、ワード線スイッチアレイWS0~WS3の各々のグループ、あるいはブロックデコーダグループG0~G5の各々のグループの中で、消去予定ブロック数以上で、かつ最も少ない数のフリーブロックを含むグループを選択する(S37)。
次に、消去制御部33内の消去コマンド発行判断部332は、選択されたグループが含むブロックを消去対象とする消去リクエストを、NANDコントローラ20に送信する(S38)。消去リクエストは、NANDコントローラ20にマルチブロックイレーズコマンドの発行を要求する信号である。マルチブロックイレーズコマンドを受信すると、半導体メモリ10は、消去対象の複数のフリーブロックに対して並行して消去を実行する。
その後、半導体メモリ10内の複数ブロックに対する消去が完了すると、消去制御部33内の消去ブロック情報更新部333は、NANDコントローラ20から消去完了通知を受け取る。消去完了通知を受け取ると、消去ブロック情報更新部333は、消去ブロック情報記憶部34内の消去済みブロック情報342、消去ブロックカウンタ343のカウント値、及びフリーブロック情報記憶部34B内のフリーブロックグループ管理テーブル346を更新する(S39)。その後、システムコントローラ30は、ブロック管理の制御を終了する。
4.3 第4実施形態の効果
第4実施形態によれば、第2実施形態と同様に、信頼性及び動作性能を向上できるメモリシステムを提供できる。すなわち、半導体メモリ10に記憶されたデータの信頼性を向上させることができる。さらに、メモリシステムにおける動作性能を向上させることができる。
5.第5実施形態
次に、第5実施形態の情報処理システムについて説明する。第5実施形態では、ホスト装置2から送信された複数の消去リクエストをまとめて1つあるいは複数のマルチブロックイレーズコマンドとして設定する。これにより、複数のブロックを並行して消去する。第5実施形態では、主に第2実施形態と異なる点について説明する。
5.1 情報処理システムの構成
図27は、第5実施形態の情報処理システムの構成を示すブロック図である。情報処理システムは、メモリシステム1及びホスト装置2を備える。ホスト装置2は、システムコントローラ30Aを有する。システムコントローラ30Aについては、第2実施形態にて示したものと同様である。
メモリシステム1は、半導体メモリ10、NANDコントローラ20A、及びホストインタフェース40を備える。半導体メモリ10及びホストインタフェース40については、第2実施形態と同様である。
以下に、第5実施形態におけるNANDコントローラ20Aについて説明する。図28は、第5実施形態におけるNANDコントローラ20A及び半導体メモリ10の構成を示すブロック図である。
NANDコントローラ20Aは、チャネルCH0~CH3を有する。チャネルCH0~CH3は、半導体メモリ10内のメモリチップ10M_0~10M_3にそれぞれ接続される。チャネルCH0~CH3の各々には、複数のキューQ0、Q1、及びQ2が設けられている。例えば、キューQ0は、ホスト装置2から送信された読み出しリクエストが蓄積される。キューQ1は、ホスト装置2から送信された書き込みリクエストが蓄積される。キューQ2は、ホスト装置2から送信された消去リクエストが蓄積される。さらに、チャネルCH0~CH3の各々には、ガベージコレクション等によって生じた書き込みリクエスト、読み出しリクエスト、あるいは各種の優先度を持つリクエスト等が蓄積されるキュー(図示しない)が設けられている。
5.2 情報処理システムの動作
以下に、第5実施形態の情報処理システムの動作について説明する。
先ず、ホスト装置2からホストインタフェース40を介してNANDコントローラ20Aに、読み出しリクエスト、書き込みリクエスト、及び消去リクエストが送信される。
次に、NANDコントローラ20Aは、ホスト装置2から受信したリクエストの属性に従い、それらリクエストを、チャネルCH0~CH3のいずれかのキューQ0、Q1あるいはQ2に順次蓄積する。例えば、キューQ0には、読み出しリクエストが蓄積される。キューQ1には、書き込みリクエストが蓄積される。キューQ2には、消去リクエストが蓄積される。消去リクエストには、ワード線スイッチアレイWS0~WS3のいずれか1つ、あるいはブロックデコーダグループG0~G5のいずれか1つを示す情報が付与されている。
次に、キューQ2に複数の消去リクエストが蓄積された場合、NANDコントローラ20Aは、キューQ2に蓄積された複数の消去リクエストにマージできるリクエストがないかどうか、キューQ2内を走査する。すなわち、NANDコントローラ20Aは、最大消去ブロック情報344が含む最大消去ブロック数と、消去リクエストに付与されたワード線スイッチアレイあるいはブロックデコーダグループを示す情報とに基づいて、並行して消去が可能なブロックとして、複数の消去リクエストによるブロックをまとめられないかどうかを確認する。
複数の消去リクエストをマージできる場合、NANDコントローラ20Aは、マージ可能な複数の消去リクエストで消去されるべきブロックを消去対象とするマルチブロックイレーズコマンドをキューQ2に蓄積する。その後、マージされた複数の消去リクエストは削除される。
なおここでは、NANDコントローラ20Aが、キューQ0~Q2を有し、キューQ2にキューイングされた複数の消去リクエストをマージする処理を行ったが、これに限るわけではなく、キューを設ける回路及び消去リクエストのマージ処理を行う回路は、ホスト装置2と半導体メモリ10の間に配置された回路のいずれの回路で行ってもよい。
5.3 第5実施形態の効果
第5実施形態によれば、信頼性及び動作性能を向上できる情報処理システムを提供できる。すなわち、情報処理システムの半導体メモリ10に記憶されたデータの信頼性を向上させることができる。さらに、情報処理システムにおける動作性能を向上させることができる。第5実施形態の効果の詳細は第2実施形態と同様である。
第5実施形態の情報処理システムでは、ホスト装置2から複数の消去リクエストを受け取り、消去リクエストに付与されたワード線スイッチアレイあるいはブロックデコーダグループに基づいて、複数の消去リクエストを1つのマルチブロックイレーズコマンドとして設定する。これにより、複数のブロックに対して消去動作を並行して実行でき、消去動作に要する時間を短縮することができる。
6.その他変形例等
前述の実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることができる。機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。機能ブロックが前述の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…ホスト装置、3…メモリコントローラ、10…半導体メモリ、10M…メモリチップ、11…メモリセルアレイ、12…入出力回路、13…ロジック制御回路、14…レディ/ビジー回路、15…レジスタ群、15A…ステータスレジスタ、15B…アドレスレジスタ、15C…コマンドレジスタ、16…シーケンサ、17…電圧生成回路、18…ドライバ、19…ロウデコーダ、20…NANDコントローラ、20A…NANDコントローラ、21…カラムデコーダ、22…センスアンプ、30…システムコントローラ、30A…システムコントローラ、30B…システムコントローラ、31…ブロック管理部、32…ワークロード特性検出部、33…消去制御部、34…消去ブロック情報記憶部、34A…消去ブロック情報記憶部、34B…フリーブロック情報記憶部、40…ホストインタフェース、331…消去ブロック数算出部、332…消去コマンド発行判断部、333…消去ブロック情報更新部、341…放置許容時間テーブル、342…消去済みブロック情報、343…消去ブロックカウンタ、344…最大消去ブロック情報、345…フリーブロック情報、346…フリーブロックグループ管理テーブル、347…上限値情報、BLK0~BLKm…ブロック、G0~G5…ブロックデコーダグループ、Q0~Q2…キュー、SBD0,SBD1…サブブロックデコーダ、WS0~WS3…ワード線スイッチアレイ。

Claims (17)

  1. 複数のブロックを含む不揮発性メモリと、
    前記不揮発性メモリを制御するメモリコントローラと、
    を具備し、
    前記メモリコントローラは、
    前記複数のブロックのうち第1プールに属する第1ブロックへのデータ書き込み量が第1値を超えた場合、または、前記第1プールに属する前記第1ブロックを第2プールに遷移させる場合、または、前記第2プールに属する第2ブロックを第3プールに遷移させる場合の少なくとも1つの場合に、
    第4プールに属する第4ブロックの放置許容時間情報、及び前記第4ブロックのデータ消去後の経過時間情報に基づいて、前記第4プールに属することが可能な前記第4ブロックのブロック数の最大値である最大ブロック数を算出し、
    前記第4プールに属する前記第4ブロックのブロック数が前記最大ブロック数未満である場合に、前記第3プールに属する第3ブロックに対して消去動作を実行するメモリシステム。
  2. 前記メモリコントローラは、前記複数のブロックが前記第1プール、前記第2プール、前記第3プール、及び前記第4プールのいずれのプールに属するかを設定し、
    前記第1プールに属する前記第1ブロックは、データの書き込み及び読み出しが可能であり、前記第2プールに属する前記第2ブロックは、データの書き込みと読み出しのうち読み出しのみが可能であり、前記第3プールに属する前記第3ブロックは、データが無効にされており、前記第4プールに属する前記第4ブロックは、データが消去され、書き込み及び読み出しが禁止されている請求項1に記載のメモリシステム。
  3. 前記第4プールに属する前記第4ブロックの前記放置許容時間情報は、前記第4ブロックがデータ消去後に放置された場合に、訂正が不可能なエラーの発生率が第2値より低い放置許容時間を含む請求項1に記載のメモリシステム。
  4. 前記第4プールに属する前記第4ブロックのデータ消去後の前記経過時間情報は、前記第4ブロックのデータ消去後からの経過時間、前記第4ブロックのデータ消去後からの経過時間が前記放置許容時間に達するまでの残り時間、及び前記第4ブロックのデータ消去後からの経過時間が前記放置許容時間を越えたか否かの情報の少なくとも1つを含む請求項3に記載のメモリシステム。
  5. 前記放置許容時間は、前記第4ブロックに対して実行された書き込み動作及び消去動作の回数に応じて設定される請求項3に記載のメモリシステム。
  6. 前記メモリコントローラは、前記第1ブロックに対する書き込み特性情報、及び前記第1ブロックを前記第2プールに遷移させたブロック数または前記第2ブロックを前記第3プールに遷移させたブロック数を含むブロック遷移情報の少なくとも1つの情報、前記放置許容時間情報、及び前記経過時間情報に基づいて、前記第4プールに属することが可能な前記最大ブロック数を算出する請求項1に記載のメモリシステム。
  7. 前記書き込み特性情報は、前記第1プールに属する前記第1ブロックへのデータの書き込み量、または書き込み頻度の少なくとも1つを含む請求項6に記載のメモリシステム。
  8. 前記メモリコントローラは、前記第3プールに属する前記第3ブロックを前記第4プールに遷移させたブロック数をカウントするブロックカウンタをさらに具備し、
    前記メモリコントローラは、前記第1ブロックに対する書き込み特性情報、及び前記第1ブロックを前記第2プールに遷移させたブロック数または前記第2ブロックを前記第3プールに遷移させたブロック数を含むブロック遷移情報の少なくとも1つの情報、前記放置許容時間情報、前記経過時間情報、及び前記ブロックカウンタのカウント値に基づいて、前記第4プールに属することが可能な前記最大ブロック数を算出する請求項1に記載のメモリシステム。
  9. 前記書き込み特性情報は、前記第1プールに属する前記第1ブロックへのデータの書き込み量、または書き込み頻度の少なくとも1つを含む請求項8に記載のメモリシステム。
  10. 前記メモリコントローラは、前記第3プールに属する前記第3ブロックから消去対象である対象ブロックを選択し、前記対象ブロックに対する消去動作を実行させる消去コマンドを前記不揮発性メモリに発行する請求項1に記載のメモリシステム。
  11. 前記メモリコントローラは、前記第3プールに属する前記第3ブロックから消去対象である対象ブロックを選択し、前記対象ブロックに対する消去動作を実行させる消去コマンドを前記不揮発性メモリに発行し、
    前記メモリコントローラは、前記消去コマンドに対する完了通知を受信し、前記第4プールに属する前記第4ブロックのデータ消去後の前記経過時間情報、及び前記ブロックカウンタのカウント値を更新する請求項8に記載のメモリシステム。
  12. 前記メモリコントローラは、前記第3プールに属する前記第3ブロックから消去対象である対象ブロックを選択する場合、書き込み動作及び消去動作の回数が最も少ないブロックを選択する請求項10に記載のメモリシステム。
  13. 前記第4プールに属する前記第4ブロックの前記経過時間情報は、前記第4ブロックのデータ消去後の状態を示す重みを用いて算出される請求項1に記載のメモリシステム。
  14. 前記第4プールに属する前記第4ブロックの前記経過時間情報は、前記第3ブロックに対する消去動作が実行されて、前記第3ブロックが前記第4プールに遷移されたときの時刻に、前記放置許容時間を加算して得られる期限情報を含む請求項3に記載のメモリシステム。
  15. 前記メモリコントローラは、前記第4プールに属する前記第4ブロックの前記最大ブロック数を第1期間と第2期間とでそれぞれ算出し、
    前記メモリコントローラは、前記第1期間から前記第2期間に移行したとき、または前記第1期間において最初の前記最大ブロック数を算出する前に、前記ブロックカウンタのカウント値を初期化する請求項8に記載のメモリシステム。
  16. 前記メモリコントローラは、前記最大ブロック数から前記第4プールに属する前記第4ブロックの数を減算して、第1の数を算出し、
    前記第3ブロックに対する消去動作を並行して実行可能な第2の数、前記第3プールに属する前記第3ブロックの第3の数、及び前記第1の数のうちから最小数を選択し、
    前記第3プールに属する前記第3ブロックの前記最小数に対して消去動作を並行して実行する請求項1に記載のメモリシステム。
  17. 第1信号線に第1電圧を供給し、第2信号線に前記第1電圧と異なる第2電圧を供給するドライバをさらに具備し、
    前記第1ブロック、前記第2ブロック、前記第3ブロック、及び前記第4ブロックを含む前記複数のブロックにおいて、
    前記複数のブロックのうち、第1の複数ブロックが含むメモリセルのワード線が前記ドライバの前記第1信号線に電気的に接続され、
    前記複数のブロックのうち、第2の複数ブロックが含むメモリセルのワード線が前記ドライバの前記第2信号線に電気的に接続される請求項1に記載のメモリシステム。
JP2022014123A 2022-02-01 2022-02-01 メモリシステム Pending JP2023112368A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022014123A JP2023112368A (ja) 2022-02-01 2022-02-01 メモリシステム
US17/897,071 US11922038B2 (en) 2022-02-01 2022-08-26 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022014123A JP2023112368A (ja) 2022-02-01 2022-02-01 メモリシステム

Publications (1)

Publication Number Publication Date
JP2023112368A true JP2023112368A (ja) 2023-08-14

Family

ID=87432034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022014123A Pending JP2023112368A (ja) 2022-02-01 2022-02-01 メモリシステム

Country Status (2)

Country Link
US (1) US11922038B2 (ja)
JP (1) JP2023112368A (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
KR102225989B1 (ko) 2014-03-04 2021-03-10 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102593352B1 (ko) 2016-05-04 2023-10-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180039351A (ko) 2016-10-10 2018-04-18 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법
JP6818664B2 (ja) 2017-09-14 2021-01-20 キオクシア株式会社 半導体記憶装置
US10877687B2 (en) 2018-06-29 2020-12-29 Micron Technology, Inc. Erasure of multiple blocks in memory devices
US20220276790A1 (en) * 2020-12-22 2022-09-01 Continental Automotive Systems, Inc. Predicting lifespan of flash memory based on actual usage profile

Also Published As

Publication number Publication date
US11922038B2 (en) 2024-03-05
US20230244397A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
US8200894B2 (en) Solid state storage device controller with expansion mode
US9870836B2 (en) Memory system and method of controlling nonvolatile memory
US8244937B2 (en) Solid state storage device controller with parallel operation mode
US8565022B2 (en) Memory system and method of operating the same
JP2003217288A (ja) リードディスターブを緩和したフラッシュメモリ
US7978512B2 (en) Semiconductor memory system
US11581045B2 (en) Page buffer circuit with bit line select transistor
JP2020071843A (ja) メモリシステム
US11749350B2 (en) Semiconductor memory medium and memory system
US11334144B2 (en) Memory system
US11901014B2 (en) Partial block handling in a non-volatile memory device
KR20220093912A (ko) 메모리 장치 및 그 동작 방법
JP2023112368A (ja) メモリシステム
US11645001B2 (en) Memory system and controlling method of memory system
JP2015103093A (ja) フラッシュメモリ、バッドブロックの管理方法および管理プログラム
US20200233769A1 (en) Memory system
US20240177748A1 (en) Semiconductor device and method of operating the same capable of preventing malfunction during read operation
US20240087658A1 (en) Storage device including flash memory and block continuous-write operation method thereof
US12027211B2 (en) Partial block handling protocol in a non-volatile memory device
US20240289057A1 (en) Memory system
US20240185927A1 (en) Memory device performing erase operation and method of operating the same
US20240203505A1 (en) Memory device and method of managing temperature of the same
US20240185929A1 (en) Memory device performing read operation and method of operating the same
KR102713411B1 (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