JP2023158144A - Memory system and control method - Google Patents

Memory system and control method Download PDF

Info

Publication number
JP2023158144A
JP2023158144A JP2023145251A JP2023145251A JP2023158144A JP 2023158144 A JP2023158144 A JP 2023158144A JP 2023145251 A JP2023145251 A JP 2023145251A JP 2023145251 A JP2023145251 A JP 2023145251A JP 2023158144 A JP2023158144 A JP 2023158144A
Authority
JP
Japan
Prior art keywords
block
data
nvm
blocks
nvm set
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
JP2023145251A
Other languages
Japanese (ja)
Inventor
伸一 菅野
Shinichi Sugano
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 JP2023145251A priority Critical patent/JP2023158144A/en
Publication of JP2023158144A publication Critical patent/JP2023158144A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System (AREA)

Abstract

To provide a memory system capable of accessing a non-volatile memory without a die contention.SOLUTION: A controller of a memory system classifies a plurality of non-volatile memory dies into a first die group and a second die group so that each of the plurality of non-volatile memory dies connected to a plurality of channels belongs to only one die group. When the controller receives a first write command specifying a first name space from a host, the controller writes first data to be written into the first name space into a first write destination block selected from the first die group. When the controller receives a second write command specifying a second name space from the host, the controller writes second data to be written into the second name space into a second write destination block selected from the second die group.SELECTED DRAWING: Figure 3

Description

本発明の実施形態は、不揮発性メモリを制御する技術に関する。 Embodiments of the present invention relate to techniques for controlling nonvolatile memory.

近年、不揮発性メモリを備えるメモリシステムが広く普及している。 In recent years, memory systems including nonvolatile memory have become widespread.

このようなメモリシステムの一つとして、NANDフラッシュ技術ベースのソリッドステートドライブ(SSD)が知られている。SSDは、その低電力消費、高性能という特徴により、様々なコンピュータのストレージとして使用されている。 As one such memory system, a solid state drive (SSD) based on NAND flash technology is known. SSDs are used as storage in various computers due to their low power consumption and high performance characteristics.

通常、SSDにおいては、その大容量化のために多数の不揮発性メモリダイが搭載されている。個々の不揮発性メモリダイは独立して動作することができる。このため、各不揮発性メモリは並列処理の単位として機能し得る。 Typically, an SSD is equipped with a large number of nonvolatile memory dies to increase its capacity. Each non-volatile memory die can operate independently. Therefore, each nonvolatile memory can function as a unit of parallel processing.

米国特許出願公開第2013/019057号明細書US Patent Application Publication No. 2013/019057

しかし、通常、一つの不揮発性メモリダイに対する動作は、並列には実行されず、逐次的に実行される。このため、もし書き込み動作が実行されている不揮発性メモリダイへのリード要求が起きると(ダイコンテンション)、そのリード要求の応答時間(リードレイテンシ)は非常に長くなる場合がある。 However, operations on a single non-volatile memory die are typically not performed in parallel but sequentially. Therefore, if a read request occurs to a nonvolatile memory die on which a write operation is being performed (die contention), the response time (read latency) of the read request may become extremely long.

したがって、ホストがダイコンテンション無しでSSDをアクセスすることを可能にするための新たな機能の実現が必要とされる。 Therefore, there is a need to implement new functionality to allow hosts to access SSDs without die contention.

本発明が解決しようとする課題は、ダイコンテンション無しで不揮発性メモリをアクセスすることができるメモリシステムおよび制御方法を提供することである。 The problem to be solved by the present invention is to provide a memory system and control method that can access non-volatile memory without die contention.

実施形態によれば、ホストに接続可能なメモリシステムは、複数のチャンネルと、前記複数のチャンネルに接続された複数の不揮発性メモリダイを含む不揮発性メモリであって、各不揮発性メモリダイが複数のブロックを含む、不揮発性メモリと、前記複数のチャンネルを介して前記複数の不揮発性メモリダイに接続されたコントローラであって、前記複数の不揮発性メモリダイを制御するように構成されたコントローラとを具備する。前記コントローラは、前記メモリシステムの論理アドレス空間を、少なくとも第1ネームスペースと第2ネームスペースとを含む複数のネームスペースに割り当てる。前記コントローラは、前記複数の不揮発性メモリダイの各々が一つのダイグループにのみ属するように前記複数の不揮発性メモリダイを第1のダイグループと第2のダイグループとに分類する。前記コントローラは、前記第1のダイグループに対応する前記第1ネームスペースを指定する第1のライトコマンドを前記ホストから受信した場合、前記第1ネームスペースに書き込まれるべき第1のデータを、前記第1のダイグループから選択された第1の書き込み先ブロックに書き込む。前記コントローラは、前記第2のダイグループに対応する前記第2ネームスペースを指定する第2のライトコマンドを前記ホストから受信した場合、前記第2ネームスペースに書き込まれるべき第2のデータを、前記第2のダイグループから選択された第2の書き込み先ブロックに書き込む。 According to embodiments, a memory system connectable to a host is a non-volatile memory including a plurality of channels and a plurality of non-volatile memory dies connected to the plurality of channels, each non-volatile memory die having a plurality of blocks. and a controller connected to the plurality of non-volatile memory dies via the plurality of channels and configured to control the plurality of non-volatile memory dies. The controller allocates logical address space of the memory system to a plurality of namespaces including at least a first namespace and a second namespace. The controller classifies the plurality of non-volatile memory dies into a first die group and a second die group such that each of the plurality of non-volatile memory dies belongs to only one die group. When the controller receives a first write command specifying the first namespace corresponding to the first die group from the host, the controller writes the first data to be written to the first namespace. Writing to a first destination block selected from a first die group. When the controller receives a second write command specifying the second namespace corresponding to the second die group from the host, the controller writes the second data to be written to the second namespace. Writing to a second destination block selected from a second die group.

実施形態のメモリシステムの構成例を示すブロック図。FIG. 1 is a block diagram illustrating a configuration example of a memory system according to an embodiment. 同実施形態のメモリシステム内の複数のNAND型フラッシュメモリダイを分類することによって得られる、各々が複数のチャンネルに跨がった複数の不揮発性メモリセット(NVMセット)を示すブロック図。FIG. 2 is a block diagram illustrating a plurality of non-volatile memory sets (NVM sets) each spanning a plurality of channels, obtained by sorting a plurality of NAND flash memory dies in the memory system of the embodiment. 図2の各NVMセットに対応するブロック管理と各NVMセットに対応する一つ以上の領域(ネームスペース)との関係を示すブロック図。FIG. 3 is a block diagram showing the relationship between block management corresponding to each NVM set in FIG. 2 and one or more areas (name space) corresponding to each NVM set. 同実施形態のメモリシステムによって実行される分離されたNVMセットのためのホスト書き込み/ガベージコレクション動作を説明するための図。FIG. 6 is a diagram illustrating host write/garbage collection operations for separated NVM sets performed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行される共有NVMセットのためのホスト書き込み/ガベージコレクション動作を説明するための図。FIG. 6 is a diagram illustrating host write/garbage collection operations for a shared NVM set performed by the memory system of the embodiment. 同実施形態のメモリシステム内の複数のNAND型フラッシュメモリダイを分類することによって得られる、同一チャンネルに接続されたNAND型フラッシュメモリダイの集合を各々が含む複数のNVMセットを示すブロック図。FIG. 3 is a block diagram illustrating a plurality of NVM sets, each including a set of NAND flash memory dies connected to the same channel, obtained by sorting a plurality of NAND flash memory dies in the memory system of the embodiment. 図6の各NVMセットに対応するブロック管理と各NVMセットに対応する一つ以上の領域(ネームスペース)との関係を示すブロック図。FIG. 7 is a block diagram showing the relationship between block management corresponding to each NVM set in FIG. 6 and one or more areas (name space) corresponding to each NVM set. 同実施形態のメモリシステムに適用されるフラッシュメモリパッケージを模式的に示す図。FIG. 2 is a diagram schematically showing a flash memory package applied to the memory system of the same embodiment. 図8のフラッシュメモリパッケージの構造を示す断面図。9 is a cross-sectional view showing the structure of the flash memory package of FIG. 8. FIG. 同一チャンネルに接続されたNAND型フラッシュメモリダイの集合を各々が含む複数のNVMセットとこれらNVMセットとして使用される1つ以上のフラッシュメモリパッケージとの関係を示す図。FIG. 3 is a diagram showing the relationship between a plurality of NVM sets each including a set of NAND flash memory dies connected to the same channel and one or more flash memory packages used as these NVM sets. 同実施形態のメモリシステムによって実行される、あるNVMサブセットに対するガベージコレクション動作の一部分を示す図。FIG. 6 is a diagram illustrating a portion of a garbage collection operation for a certain NVM subset performed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行される、あるNVMサブセットに対するガベージコレクション動作の残りの一部分を示す図。FIG. 6 is a diagram illustrating a remaining part of the garbage collection operation for a certain NVM subset performed by the memory system of the same embodiment. 同実施形態のメモリシステムによって実行される、あるNVMサブセットに対するガベージコレクション動作の残りの他の部分を示す図。FIG. 7 is a diagram illustrating the remaining portions of the garbage collection operation for an NVM subset performed by the memory system of the same embodiment. 同実施形態のメモリシステムによって実行されるNVMセット間コピー動作を示す図。FIG. 6 is a diagram showing an inter-NVM set copy operation executed by the memory system of the embodiment. 図14のNVMセット間コピー動作の前のアドレス変換テーブルの内容とNVMセット間コピー動作の後のアドレス変換テーブルの内容との関係を示す図。15 is a diagram showing the relationship between the contents of the address conversion table before the inter-NVM set copy operation in FIG. 14 and the contents of the address conversion table after the NVM set-to-NVM set copy operation. FIG. 同実施形態のメモリシステムによって実行されるNVMセット間コピー動作の一部分を示す図。FIG. 6 is a diagram illustrating a portion of the NVM set-to-NVM set copy operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行されるNVMセット間コピー動作の残りの一部分を示す図。FIG. 7 is a diagram illustrating the remaining part of the NVM inter-set copy operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行されるNVMセット間コピー動作の残りの他の部分を示す図。FIG. 7 is a diagram illustrating the remaining portions of the NVM inter-set copy operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行されるNVMセット交換動作の概要を説明するための図。FIG. 3 is a diagram for explaining an overview of an NVM set exchange operation executed by the memory system of the embodiment. NVMセット交換動作の前の2つのNVMセットのために実行される、ホスト書き込み/ガベージコレクション動作を説明するための図。FIG. 6 is a diagram illustrating a host write/garbage collection operation performed for two NVM sets prior to an NVM set exchange operation. NVMセット交換動作のために2つのNVMセット間で実行されるホスト書き込み/ガベージコレクション動作を説明するための図。FIG. 3 is a diagram illustrating a host write/garbage collection operation performed between two NVM sets for an NVM set exchange operation. 同実施形態のメモリシステムによって実行される新NVMセット作成動作の概要を示す図。FIG. 3 is a diagram illustrating an overview of a new NVM set creation operation executed by the memory system of the embodiment. 新NVMセット作成のために実行されるホスト書き込み/ガベージコレクション動作を説明するための図。FIG. 4 is a diagram for explaining host write/garbage collection operations executed to create a new NVM set. 同実施形態のメモリシステムによって実行される新NVMセット作成動作の一部分を示す図。FIG. 6 is a diagram illustrating a part of the new NVM set creation operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行される新NVMセット作成動作の残りの一部分を示す図。FIG. 7 is a diagram showing the remaining part of the new NVM set creation operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行される新NVMセット作成動作の残りの他の部分を示す図。FIG. 7 is a diagram illustrating the remaining part of the new NVM set creation operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行されるNVMセット結合動作の概要を示す図。FIG. 3 is a diagram illustrating an overview of an NVM set combination operation executed by the memory system of the embodiment. NVMセット結合のために実行されるホスト書き込み/ガベージコレクション動作を説明するための図。FIG. 6 is a diagram for explaining host write/garbage collection operations performed for NVM set combination. 同実施形態のメモリシステムによって実行されるデータ書き込み/読み出し動作の手順の一部分を示すフローチャート。3 is a flowchart showing a part of the procedure of data write/read operations executed by the memory system of the same embodiment. 同実施形態のメモリシステムによって実行されるデータ書き込み/読み出し動作の手順の残り部分を示すフローチャート。7 is a flowchart showing the remaining part of the data write/read operation procedure executed by the memory system of the embodiment. 同実施形態のメモリシステムによって、あるNVMサブセット毎に実行されるガベージコレクション動作の手順を示すフローチャート。7 is a flowchart showing the procedure of a garbage collection operation executed for each NVM subset by the memory system of the embodiment. 同実施形態のメモリシステムによって実行されるNVMセット間コピー動作の手順を示すフローチャート。7 is a flowchart showing a procedure for an inter-NVM set copy operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行されるNVMセット間コピー動作の別の手順を示すフローチャート。7 is a flowchart illustrating another procedure of the NVM set-to-set copy operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行される新NVMセット作成動作の手順を示すフローチャート。7 is a flowchart showing the procedure of a new NVM set creation operation executed by the memory system of the embodiment. 同実施形態のメモリシステムによって実行される新NVMセット作成動作の別の手順を示すフローチャート。7 is a flowchart showing another procedure of the new NVM set creation operation executed by the memory system of the embodiment. 同実施形態のメモリシステムに適用されるホストの構成例を示すブロック図。FIG. 3 is a block diagram illustrating a configuration example of a host applied to the memory system of the embodiment. 同実施形態のメモリシステムとホストとを含むコンピュータの構成例を示すブロック図。FIG. 2 is a block diagram showing a configuration example of a computer including a memory system and a host according to the embodiment.

以下、図面を参照して、実施形態を説明する。
まず、図1を参照して、一実施形態に係るメモリシステムを含む情報処理システム1の構成を説明する。
Hereinafter, embodiments will be described with reference to the drawings.
First, with reference to FIG. 1, the configuration of an information processing system 1 including a memory system according to an embodiment will be described.

このメモリシステムは、不揮発性メモリにデータを書き込み、不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスである。このメモリシステムは、例えば、NANDフラッシュ技術ベースのソリッドステートドライブ(SSD)3として実現されている。 The memory system is a semiconductor storage device configured to write data to and read data from non-volatile memory. This memory system is realized, for example, as a solid state drive (SSD) 3 based on NAND flash technology.

情報処理システム1は、ホスト(ホストデバイス)2と、SSD3とを含む。ホスト2は、サーバ、パーソナルコンピュータのような情報処理装置である。ホスト2として機能するサーバの典型例としては、データセンター内のサーバが挙げられる。 The information processing system 1 includes a host (host device) 2 and an SSD 3. The host 2 is an information processing device such as a server or a personal computer. A typical example of a server functioning as the host 2 is a server in a data center.

ホスト2がデータセンター内のサーバによって実現されるケースにおいては、このホスト(サーバ)2は、ネットワーク50を介して複数のエンドユーザ端末51に接続されてもよい。ホスト2は、これらエンドユーザ端末51に対して様々なサービスを提供することができる。複数の仮想マシンが、このホスト(サーバ)2として機能する物理サーバ上で実行されてもよい。これら仮想マシンは、対応するクライアント(エンドユーザ端末51)に各種サービスを提供するように構成された仮想サーバとして機能することができる。 In the case where the host 2 is realized by a server in a data center, this host (server) 2 may be connected to a plurality of end user terminals 51 via a network 50. The host 2 can provide various services to these end user terminals 51. Multiple virtual machines may be executed on this physical server functioning as the host (server) 2. These virtual machines can function as virtual servers configured to provide various services to corresponding clients (end user terminals 51).

SSD3は、ホスト2として機能する情報処理装置(コンピューティングデバイス)のメインストレージとして使用され得る。SSD3は、情報処理装置に内蔵されてもよいし、情報処理装置にケーブルまたはネットワークを介して接続されてもよい。 The SSD 3 may be used as the main storage of an information processing apparatus (computing device) functioning as the host 2. The SSD 3 may be built into the information processing device, or may be connected to the information processing device via a cable or a network.

ホスト2とSSD3とを相互接続するためのインタフェースとしては、SCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)、Ethernet(登録商標),Fibre channel、NVM Express(NVMe)(登録商標)等を使用し得る。 Interfaces for interconnecting the host 2 and the SSD 3 include SCSI, Serial Attached SCSI (SAS), ATA, Serial ATA (SATA), PCI Express (PCIe), Ethernet (registered trademark), Fibre channel, and NV. M Express ( NVMe) (registered trademark), etc. may be used.

SSD3は、コントローラ4および不揮発性メモリ(NAND型フラッシュメモリ)5を備える。SSD3は、ランダムアクセスメモリ、例えば、DRAM6も備えていてもよい。 The SSD 3 includes a controller 4 and a nonvolatile memory (NAND flash memory) 5. SSD 3 may also include random access memory, for example DRAM 6.

NAND型フラッシュメモリ5は、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含む。NAND型フラッシュメモリ5は、2次元構造のNAND型フラッシュメモリであってもよいし、3次元構造のNAND型フラッシュメモリであってもよい。 The NAND flash memory 5 includes a memory cell array including a plurality of memory cells arranged in a matrix. The NAND flash memory 5 may be a two-dimensional NAND flash memory or a three-dimensional NAND flash memory.

NAND型フラッシュメモリ5のメモリセルアレイは、複数のブロックB0~Bm-1を含む。ブロックB0~Bm-1の各々は多数のページ(ここではページP0~Pn-1)によって編成される。ブロックB0~Bm-1は、消去単位として機能する。ブロックは、「消去ブロック」、または「物理ブロック」と称されることもある。ページP0~Pn-1の各々は、同一ワード線に接続された複数のメモリセルを含む。ページP0~Pn-1は、データ書き込み動作およびデータ読み込み動作の単位である。 The memory cell array of the NAND flash memory 5 includes a plurality of blocks B0 to Bm-1. Each of blocks B0 to Bm-1 is organized by a number of pages (pages P0 to Pn-1 here). Blocks B0 to Bm-1 function as erase units. A block is sometimes referred to as an "erase block" or "physical block." Each of pages P0 to Pn-1 includes a plurality of memory cells connected to the same word line. Pages P0 to Pn-1 are units of data write operations and data read operations.

コントローラ4は、Toggle、オープンNANDフラッシュインタフェース(ONFI)のようなNANDインタフェース13、および複数のチャンネル(Ch)を介して、NAND型フラッシュメモリ5に電気的に接続されている。NANDインタフェース13は、NAND型フラッシュメモリ5を制御するように構成されたNAND制御回路として機能する。 The controller 4 is electrically connected to the NAND flash memory 5 via a NAND interface 13 such as Toggle, an open NAND flash interface (ONFI), and a plurality of channels (Ch). The NAND interface 13 functions as a NAND control circuit configured to control the NAND flash memory 5.

NAND型フラッシュメモリ5は、図2に示すように、複数のNAND型フラッシュメモリダイ(図2においては「NANDダイ」として示されている)を含む。各NAND型フラッシュメモリダイは、複数のブロックを含むメモリセルアレイとこのメモリセルアレイを制御する周辺回路とを含む不揮発性メモリダイである。個々のNAND型フラッシュメモリダイは独立して動作可能である。このため、NAND型フラッシュメモリダイは、単一の並列動作単位として機能する。NAND型フラッシュメモリダイは、「NAND型フラッシュメモリチップ」とも称される。 As shown in FIG. 2, the NAND flash memory 5 includes a plurality of NAND flash memory dies (indicated as "NAND dies" in FIG. 2). Each NAND flash memory die is a nonvolatile memory die that includes a memory cell array including a plurality of blocks and peripheral circuitry that controls the memory cell array. Each NAND flash memory die can operate independently. Therefore, a NAND flash memory die functions as a single parallel operating unit. A NAND flash memory die is also referred to as a "NAND flash memory chip."

図2においては、NANDインタフェース13に複数のチャンネルCh0、Ch1、Ch2、…ChNが接続されており、これらチャンネルCh0、Ch1、Ch2、…ChNの各々に、同数(例えばチャンネル当たりK個のダイ、Kは2以上の整数)のNAND型フラッシュメモリダイそれぞれが接続されている場合が例示されている。各チャンネルは、対応するNAND型フラッシュメモリダイと通信するための通信線(メモリバス)を含む。 In FIG. 2, a plurality of channels Ch0, Ch1, Ch2, ... ChN are connected to the NAND interface 13, and each of these channels Ch0, Ch1, Ch2, ... ChN has the same number of dies (for example, K dies per channel, A case is illustrated in which NAND flash memory dies (K is an integer of 2 or more) are connected. Each channel includes a communication line (memory bus) for communicating with a corresponding NAND flash memory die.

図2においては、NAND型フラッシュメモリダイ600、601、602~606はチャンネルCh0に接続されている。NAND型フラッシュメモリダイ610、611、612~616はチャンネルCh1に接続されている。NAND型フラッシュメモリダイ620、621、622~626はチャンネルCh2に接続されている。同様に、NAND型フラッシュメモリダイ640、641、642~646はチャンネルChNに接続されている。 In FIG. 2, NAND flash memory dies 600, 601, 602-606 are connected to channel Ch0. NAND flash memory dies 610, 611, 612-616 are connected to channel Ch1. NAND flash memory dies 620, 621, 622-626 are connected to channel Ch2. Similarly, NAND flash memory dies 640, 641, 642-646 are connected to channel ChN.

コントローラ4は、チャンネルCh0、Ch1、Ch2、…ChNを介してNAND型フラッシュメモリ5を制御する。コントローラ4は、チャンネルCh0、Ch1、Ch2、…ChNを同時に駆動することができる。つまり、NANDインタフェース13はチャンネルCh0、Ch1、Ch2、…ChNにそれぞれ対応するN個のNAND制御回路を含んでいる。コントローラ4は、これらNAND制御回路を使用することによって、チャンネルCh0、Ch1、Ch2、…ChNを互いに独立して駆動することができる。 The controller 4 controls the NAND flash memory 5 via channels Ch0, Ch1, Ch2, . . . ChN. The controller 4 can drive channels Ch0, Ch1, Ch2, . . . ChN simultaneously. That is, the NAND interface 13 includes N NAND control circuits corresponding to channels Ch0, Ch1, Ch2, . . . ChN, respectively. By using these NAND control circuits, the controller 4 can drive channels Ch0, Ch1, Ch2, . . . ChN independently of each other.

本実施形態では、コントローラ4は、NAND型フラッシュメモリダイの各々が一つのダイグループにのみ属するように、K×N個のNAND型フラッシュメモリダイ600~646を、複数のダイグループに分類する。以下では、このダイグループを「不揮発性メモリサブセット(NVMセット)」と称する。 In this embodiment, the controller 4 classifies the K×N NAND flash memory dies 600 to 646 into a plurality of die groups so that each NAND flash memory die belongs to only one die group. Hereinafter, this die group will be referred to as a "non-volatile memory subset (NVM set)".

図2においては、各NVMセットは、複数のチャンネルCh0、Ch1、Ch2、…ChNに跨がっている。例えば、NVMセット60は、チャンネルCh0、Ch1、Ch2、…ChNにそれぞれ接続されたNAND型フラッシュメモリダイ600、610、620、…640を含む。NVMセット61は、チャンネルCh0、Ch1、Ch2、…ChNにそれぞれ接続されたNAND型フラッシュメモリダイ601、611、621、…641を含む。NVMセット62は、チャンネルCh0に接続されたNAND型フラッシュメモリダイ602、603、…605、606、チャンネルCh1に接続されたNAND型フラッシュメモリダイ612、613、…615、616、チャンネルCh2に接続されたNAND型フラッシュメモリダイ622、623、…625、626、そして、チャンネルChNに接続されたNAND型フラッシュメモリダイ642、643、…645、646を含む。 In FIG. 2, each NVM set spans multiple channels Ch0, Ch1, Ch2,...ChN. For example, the NVM set 60 includes NAND flash memory dies 600, 610, 620, . . . 640 connected to channels Ch0, Ch1, Ch2, . . . ChN, respectively. The NVM set 61 includes NAND flash memory dies 601, 611, 621, . . . 641 connected to channels Ch0, Ch1, Ch2, . . . ChN, respectively. The NVM set 62 includes NAND flash memory dies 602, 603, ... 605, 606 connected to channel Ch0, NAND flash memory dies 612, 613, ... 615, 616 connected to channel Ch1, and NAND flash memory dies 612, 613, ... 615, 616 connected to channel Ch2. 625, 626, and NAND flash memory dies 642, 643, . . . 645, 646 connected to the channel ChN.

このように、図2においては、K×N個のNAND型フラッシュメモリダイ600~646は、各々が複数のチャンネルに跨がっている複数のNVMセットに分類されている。各NVMセットにおいては、最大N個のNAND型フラッシュメモリダイに対するデータ書き込み/読み出し動作を同時に実行することができる。 Thus, in FIG. 2, the K×N NAND flash memory dies 600-646 are classified into multiple NVM sets, each spanning multiple channels. In each NVM set, data write/read operations can be performed simultaneously on a maximum of N NAND flash memory dies.

これら複数のNVMセットには、ホスト2によって指定可能な複数の領域をそれぞれ関連付けることができる。これら複数の領域は、ホスト2によってアクセス可能な論理的な領域である。各NVMセットに対応する領域の数は1つであってもよいし、2以上であってもよい。さらに、各NVMセットに対応する領域の数は、NVMセット毎に異なっていてもよい。 A plurality of areas that can be specified by the host 2 can be associated with each of these plurality of NVM sets. These multiple areas are logical areas that can be accessed by the host 2. The number of areas corresponding to each NVM set may be one, or may be two or more. Furthermore, the number of regions corresponding to each NVM set may be different for each NVM set.

コントローラ4は、異なるNVMセットに対応する異なる領域をそれぞれ指定する複数のI/Oコマンド(ライトコマンド、またはリードコマンド)を、ダイコンテンション無しで、同時に実行することができる。したがって、例えば、NVMセット60に対するデータ書き込み動作の実行中にNVMセット61に対応する領域に向けたリードコマンドがホスト2から受信されたとしても、コントローラ4は、このデータ書き込み動作の完了を待つことなく、このリードコマンドに対応するデータ読み出し動作を即座に実行することができる。 The controller 4 can simultaneously execute a plurality of I/O commands (write commands or read commands) each specifying a different area corresponding to a different NVM set without die contention. Therefore, for example, even if a read command directed to the area corresponding to the NVM set 61 is received from the host 2 while a data write operation is being executed for the NVM set 60, the controller 4 waits for the completion of this data write operation. Therefore, the data read operation corresponding to this read command can be executed immediately.

図1に示されるSSD3においては、コントローラ4は、NAND型フラッシュメモリ5のデータ管理とNAND型フラッシュメモリ5のブロック管理とを実行するように構成されたフラッシュトランスレーション層(FTL)としても機能することができる。 In the SSD 3 shown in FIG. 1, the controller 4 also functions as a flash translation layer (FTL) configured to perform data management of the NAND flash memory 5 and block management of the NAND flash memory 5. be able to.

このFTLによって実行されるデータ管理には、(1)論理アドレスそれぞれとNAND型フラッシュメモリ5の物理アドレスそれぞれとの間の対応関係を示すマッピング情報の管理、(2)ページ単位のリード/ライトとブロック単位の消去動作とを隠蔽するための処理、等が含まれる。論理アドレスは、SSD3をアドレス指定するためにホスト2によって使用されるアドレスである。この論理アドレスとしては、通常、論理ブロックアドレス(LBA)が使用される。 Data management performed by this FTL includes (1) management of mapping information indicating the correspondence between each logical address and each physical address of the NAND flash memory 5, (2) read/write in page units, This includes block-by-block erase operations and processing for concealing them. The logical address is the address used by the host 2 to address the SSD 3. A logical block address (LBA) is normally used as this logical address.

論理ブロックアドレス(LBA)それぞれと物理アドレスそれぞれとの間のマッピングの管理は、アドレス変換テーブル(論理物理アドレス変換テーブル)として機能するルックアップテーブル(LUT)を用いて実行される。あるLBAに対応する物理アドレスは、このLBAのデータがライトされたNAND型フラッシュメモリ5内の物理記憶位置を示す。ルックアップテーブル(LUT)はSSD3の電源オン時にNAND型フラッシュメモリ5からDRAM6にロードされてもよい。一般に、各ルックアップテーブルのサイズは、比較的大きい。したがって、各ルックアップテーブルの少なくとも一部がDRAM6にアドレス変換テーブルキャッシュとして格納されてもよい。 Management of the mapping between each logical block address (LBA) and each physical address is performed using a look-up table (LUT) that functions as an address translation table (logical-physical address translation table). A physical address corresponding to a certain LBA indicates a physical storage position in the NAND flash memory 5 to which data of this LBA has been written. The look-up table (LUT) may be loaded from the NAND flash memory 5 to the DRAM 6 when the SSD 3 is powered on. Generally, the size of each lookup table is relatively large. Therefore, at least a portion of each lookup table may be stored in the DRAM 6 as an address translation table cache.

NAND型フラッシュメモリ5において、ページへのデータ書き込みは、1消去サイクル当たり1回のみ可能である。このため、コントローラ4は、あるLBAに対応する更新データを、このLBAに対応する以前のデータが格納されている物理記憶位置ではなく、別の物理記憶位置に書き込む。そして、コントローラ4は、対応するルックアップテーブル(LUT)を更新してこのLBAをこの別の物理記憶位置に関連付ける。これにより、このLBAに対応する以前のデータは無効化される。 In the NAND flash memory 5, data can be written to a page only once per erase cycle. Therefore, the controller 4 writes update data corresponding to a certain LBA to a different physical storage location, rather than to the physical storage location where the previous data corresponding to this LBA is stored. Controller 4 then updates a corresponding look-up table (LUT) to associate this LBA with this other physical storage location. As a result, previous data corresponding to this LBA is invalidated.

本実施形態では、複数のルックアップテーブル(LUT)40、41、42…が使用される。これらルックアップテーブル(LUT)40、41、42…は、基本的には、複数のNVMセットにそれぞれ対応している。なお、各ルックアップテーブルは、ある一つの領域に対応付けられていてもよいし、ガベージコレクションの一つのグループに対応付けられていてもよい。 In this embodiment, a plurality of look-up tables (LUTs) 40, 41, 42, . . . are used. These lookup tables (LUTs) 40, 41, 42, . . . basically correspond to a plurality of NVM sets, respectively. Note that each lookup table may be associated with one area or one group of garbage collection.

各NVMセットは、ガベージコレクション用のグループを少なくとも一つ含む。ガベージコレクション用のグループは、複数のブロックを含み、ガベージコレクションが施される単位として使用される。ガベージコレクション用のグループを一つのみ含むNVMセットについては、一つのルックアップテーブルのみが用いられてもよい。ガベージコレクション用のグループを複数含むNVMセットについては、複数のルックアップテーブルが用いられてもよい。 Each NVM set includes at least one group for garbage collection. A group for garbage collection includes a plurality of blocks and is used as a unit for garbage collection. For NVM sets containing only one group for garbage collection, only one lookup table may be used. For NVM sets that include multiple groups for garbage collection, multiple lookup tables may be used.

コントローラ4は、さらに、マルチネームスペースコントロール機能を有している。マルチネームスペースコントロール機能は、一つのストレージデバイスを複数のドライブであるかのように扱うことを可能にするために、SSD3に複数の論理アドレス空間(LBA空間)を割り当てることを可能にする。 The controller 4 further has a multi-name space control function. The multi-name space control function allows multiple logical address spaces (LBA spaces) to be assigned to the SSD 3 in order to treat one storage device as if it were multiple drives.

上述の複数の領域の各々は、ネームスペースによって実現されてもよい。各ネームスペースは、NAND型フラッシュメモリ5内の領域に相当する。各ネームスペースには、論理アドレス範囲(LBA範囲)が割り当てられる。LBA範囲のサイズ(つまりLBAの数)は、ネームスペース毎に可変である。各LBA範囲は、LBA0から始まる。個々のネームスペースは、これらネームスペースの識別子によって識別される。 Each of the multiple areas described above may be implemented by a namespace. Each name space corresponds to an area within the NAND flash memory 5. Each namespace is assigned a logical address range (LBA range). The size of the LBA range (ie, the number of LBAs) is variable for each namespace. Each LBA range starts at LBA0. Individual namespaces are identified by their namespace identifiers.

ホスト2からのライトコマンドは、特定のネームスペースの識別子、つまりネームスペースID(NSID)を含む。コントローラ4は、ホスト2からのライトコマンド内のネームスペースIDに基づいて、ライトデータが書き込まれるべきアクセス対象の領域(ネームスペース)を決定する。同様に、ホスト2からのリードコマンドも、特定のネームスペースに対応するネームスペースIDを含む。コントローラ4は、ホスト2からのリードコマンド内のネームスペースIDに基づいて、データが読み出されるべきアクセス対象の領域(ネームスペース)を決定する。 The write command from the host 2 includes an identifier for a specific namespace, ie, a namespace ID (NSID). Based on the namespace ID in the write command from the host 2, the controller 4 determines the access target area (namespace) into which the write data is to be written. Similarly, a read command from the host 2 also includes a namespace ID corresponding to a specific namespace. Based on the namespace ID in the read command from the host 2, the controller 4 determines the area (namespace) to be accessed from which data is to be read.

ブロック管理には、バッドブロックの管理と、ウェアレベリングと、ガベージコレクション等が含まれる。 Block management includes bad block management, wear leveling, garbage collection, etc.

ウェアレベリングは、ブロックそれぞれの消耗を均一化するための動作である。 Wear leveling is an operation to equalize the wear of each block.

ガベージコレクションは、データを書き込むことが可能なフリーブロックの個数を増やすための動作である。ガベージコレクション動作においては、コントローラ4は、有効データと無効データとが混在する幾つかのブロック内の有効データのみを、別のブロック(例えばフリーブロック)にコピーする。ここで、有効データとは、LUTから参照されているデータ(すなわち論理アドレスから最新のデータとして紐付けられているデータ)であって、後にホスト2からリードされる可能性があるデータを意味する。無効データとは、もはやホスト2からリードされる可能性が無いデータを意味する。例えば、ある論理アドレスに関連付けられているデータは有効データであり、どの論理アドレスにも関連付けられていないデータは無効データである。そして、コントローラ4は、コピーされた有効データのLBAそれぞれを、その有効データのコピー先物理アドレスにマッピングする。有効データが別のブロックにコピーされることによって無効データのみになったブロックは、フリーブロックとして解放される。これによって、このブロックはその消去動作が実行された後に再利用することが可能となる。 Garbage collection is an operation to increase the number of free blocks into which data can be written. In the garbage collection operation, the controller 4 copies only valid data in some blocks in which valid data and invalid data are mixed to another block (for example, a free block). Here, valid data refers to data that is referenced from the LUT (that is, data that is linked as the latest data from the logical address) and that may be read from the host 2 later. . Invalid data means data that can no longer be read by the host 2. For example, data that is associated with a certain logical address is valid data, and data that is not associated with any logical address is invalid data. Then, the controller 4 maps each LBA of the copied valid data to the copy destination physical address of the valid data. A block whose valid data is copied to another block and contains only invalid data is released as a free block. This allows this block to be reused after its erase operation has been performed.

次に、コントローラ4の構成について説明する。 Next, the configuration of the controller 4 will be explained.

コントローラ4は、ホストインタフェース11、CPU12、NANDインタフェース13、およびDRAMインタフェース14等を含む。これらCPU12、NANDインタフェース13、DRAMインタフェース14は、バス10を介して相互接続される。 The controller 4 includes a host interface 11, a CPU 12, a NAND interface 13, a DRAM interface 14, and the like. These CPU 12, NAND interface 13, and DRAM interface 14 are interconnected via a bus 10.

このホストインタフェース11は、ホスト2との通信を実行するように構成されたホストインタフェース回路である。このホストインタフェース11は、例えば、PCIeコントローラ(NVMeコントローラ)であってよい。ホストインタフェース11は、ホスト2から様々なコマンド(ライトコマンド、リードコマンド、各種制御コマンド、アンマップ(UNMAP)コマンド、等)を受信する。 This host interface 11 is a host interface circuit configured to communicate with the host 2. This host interface 11 may be, for example, a PCIe controller (NVMe controller). The host interface 11 receives various commands (write commands, read commands, various control commands, UNMAP commands, etc.) from the host 2 .

ライトコマンドは、SSD3に対し、このライトコマンドによって指定されたデータをライトするように要求する。ライトコマンドは、開始LBA、転送長、およびIDを含んでいてもよい。ライトコマンド内のIDは、データが書き込まれるべき領域を一意に識別するための識別子である。このIDは、ネームスペースIDであってもよい。リードコマンドは、SSD3に対し、このリードコマンドによって指定されたデータをリードするように要求する。リードコマンドは、開始LBA、転送長、およびIDを含んでいてもよい。リードコマンド内のIDは、データが読み出されるべき領域を一意に識別するための識別子である。このIDは、ネームスペースIDであってもよい。 The write command requests the SSD 3 to write data specified by this write command. The write command may include a starting LBA, transfer length, and ID. The ID in the write command is an identifier for uniquely identifying the area in which data is to be written. This ID may be a namespace ID. The read command requests the SSD 3 to read the data specified by this read command. The read command may include a starting LBA, transfer length, and ID. The ID in the read command is an identifier for uniquely identifying the area from which data is to be read. This ID may be a namespace ID.

CPU12は、ホストインタフェース11、NANDインタフェース13、DRAMインタフェース14を制御するように構成されたプロセッサである。CPU12は、SSD3の電源オンに応答してNAND型フラッシュメモリ5または図示しないROMから制御プログラム(ファームウェア)をDRAM6にロードし、そしてこのファームウェアを実行することによって様々な処理を行う。なお、ファームウェアはコントローラ4内の図示しないSRAM上にロードされてもよい。このCPU12は、例えば、上述のFTLの処理に加え、ホスト2からの様々なコマンドを処理するためのコマンド処理等を実行することができる。CPU12の動作は、CPU12によって実行される上述のファームウェアによって制御される。なお、FTL処理およびコマンド処理の一部または全部は、コントローラ4内の専用ハードウェアによって実行してもよい。 The CPU 12 is a processor configured to control the host interface 11, the NAND interface 13, and the DRAM interface 14. The CPU 12 loads a control program (firmware) from the NAND flash memory 5 or a ROM (not shown) into the DRAM 6 in response to power-on of the SSD 3, and executes the firmware to perform various processes. Note that the firmware may be loaded onto an SRAM (not shown) in the controller 4. This CPU 12 is capable of executing command processing for processing various commands from the host 2, for example, in addition to the above-mentioned FTL processing. The operation of the CPU 12 is controlled by the above-mentioned firmware executed by the CPU 12. Note that part or all of the FTL processing and command processing may be executed by dedicated hardware within the controller 4.

CPU12は、NVMセット制御部21、ガベージコレクション(GC)動作制御部22、NVMセット間コピー制御部23、新NVMセット作成制御部24、NVMセット交換制御部25、NVMセット結合部26として機能することができる。 The CPU 12 functions as an NVM set control unit 21, a garbage collection (GC) operation control unit 22, an inter-NVM set copy control unit 23, a new NVM set creation control unit 24, an NVM set exchange control unit 25, and an NVM set combination unit 26. be able to.

NVMセット制御部21は、K×N個のNAND型フラッシュメモリダイ600~646の各々が一つのNVMセットにのみ属するようにK×N個のNAND型フラッシュメモリダイ600~646を複数のNVMセットに分類する。そして、NVMセット制御部21は、各NVMセットに対応する少なくとも一つの領域を含む複数の領域のいずれか一つを指定するホスト2からのI/Oコマンドに応じて、複数のNVMセット内の一つのNVMセットに対するデータ書き込み/読み出し動作を実行する。例えば、複数のNVMセットが第1のNVMセットと第2のNVMセットとを有するケースにおいては、NVMセット制御部21は、第1のNVMセットに対応する少なくとも一つの領域を指定するホスト2からの第1のI/Oコマンドに応じて、第1のNVMセットに対するデータ書き込み/読み出し動作を実行し、第2のNVMセットに対応する少なくとも一つの領域を指定するホスト2からの第2のI/Oコマンドに応じて、第2のNVMセットに対するデータ書き込み/読み出し動作を実行する。 The NVM set control unit 21 connects the K×N NAND flash memory dies 600 to 646 to multiple NVM sets so that each of the K×N NAND flash memory dies 600 to 646 belongs to only one NVM set. Classify into. Then, the NVM set control unit 21 controls the number of areas within the plurality of NVM sets in response to an I/O command from the host 2 that specifies any one of the plurality of areas including at least one area corresponding to each NVM set. Perform data write/read operations for one NVM set. For example, in a case where a plurality of NVM sets include a first NVM set and a second NVM set, the NVM set control unit 21 receives a message from the host 2 that specifies at least one area corresponding to the first NVM set. a second I/O command from the host 2 that performs a data write/read operation for the first NVM set and specifies at least one region corresponding to the second NVM set; Performing data write/read operations for the second NVM set in response to the /O command.

また、NVMセット制御部21は、NAND型フラッシュメモリ5(多数のNAND型フラッシュメモリダイ)5内のフリーブロック群を、複数のNVMセットにそれぞれ対応する複数のフリーブロックプールによってNVMセット毎に個別に管理する。フリーブロックは有効データを保持しないブロックを意味する。例えば、第1のNVMセットに属するフリーブロックそれぞれは、第1のNVMセットに対応する第1のフリーブロックプールによって管理され、第2のNVMセットに属するフリーブロックそれぞれは、第2のNVMセットに対応する第2のフリーブロックプールによって管理される。SSD3を初期化する動作時においては、NVMセット制御部21は、第1のNVMセットに属する全てのブロックを第1のフリーブロックプールに配置し、第2のNVMセットに属する全てのブロックを第2のフリーブロックプールに配置する。 Further, the NVM set control unit 21 individually controls free block groups in the NAND flash memory 5 (a large number of NAND flash memory dies) 5 for each NVM set by using a plurality of free block pools respectively corresponding to the plurality of NVM sets. to be managed. A free block means a block that does not hold valid data. For example, each free block belonging to a first NVM set is managed by a first free block pool corresponding to the first NVM set, and each free block belonging to a second NVM set is managed by a first free block pool corresponding to the first NVM set. managed by a corresponding second free block pool. During the operation of initializing the SSD 3, the NVM set control unit 21 places all blocks belonging to the first NVM set in the first free block pool, and places all blocks belonging to the second NVM set in the first free block pool. Place it in the 2nd free block pool.

複数のNVMセットの各々について、NVMセット制御部21は、対応するフリーブロックプール内のフリーブロックの一つをユーザデータ(ホスト2からのライトデータ、またはガベージコレクションのためにコピーされるべきデータ)が書き込まれるべきブロックとして割り当てる動作と、このユーザデータを割り当てられたブロックに書き込む動作と、このユーザデータで満たされたブロックをデータブロックプール(アクティブブロックプールとも云う)によって管理する動作と、データブロックプールによって管理され且つ有効データを保持しないブロックを、対応するフリーブロックプールに返却する動作とを実行する。 For each of the plurality of NVM sets, the NVM set control unit 21 stores one of the free blocks in the corresponding free block pool as user data (write data from the host 2 or data to be copied for garbage collection). the act of allocating this user data as a block to be written to, the act of writing this user data into the allocated block, the act of managing the block filled with this user data by a data block pool (also known as the active block pool), and and returning blocks that are managed by the pool and do not hold valid data to the corresponding free block pool.

これにより、あるNVMセットに対応するフリーブロックプールに配置されたブロック群をこのNVMセットに対応する1以上の領域によってのみ使用することができるので、複数のNVMセット間でダイコンテンションが起きないことを保証することが可能となる。なお、データブロックプールとは、対応するNVMセットに属し且つ有効データを保持するブロックそれぞれを管理するためのプールを意味する。 As a result, blocks placed in the free block pool corresponding to a certain NVM set can be used only by one or more areas corresponding to this NVM set, so that die contention does not occur between multiple NVM sets. It becomes possible to guarantee. Note that the data block pool refers to a pool for managing each block that belongs to a corresponding NVM set and holds valid data.

本実施形態では、分離されたNVMセットと共有NVMセットとの2種類のNVMセットを扱うことができる。 In this embodiment, two types of NVM sets can be handled: a separated NVM set and a shared NVM set.

分離されたNVMセットは、一つのみのガベージコレクション用グループ(一つのみのデータブロックプール)を含むNVMセットである。つまり、分離されたNVMセットに対応するフリーブロックプールは、このNVMセットに属し且つ有効データを保持するブロックそれぞれを管理する単一のデータブロックプールに専用のフリーブロックプールである。分離されたNVMセットにおいては、単一のデータブロックプールが、分離されたNVMセットに対応するフリーブロックプールを占有する。 A separated NVM set is an NVM set that includes only one garbage collection group (only one data block pool). That is, the free block pool corresponding to a separated NVM set is a free block pool dedicated to a single data block pool that manages each block that belongs to this NVM set and holds valid data. In an isolated NVM set, a single data block pool occupies the free block pool corresponding to the isolated NVM set.

共有NVMセットは、複数のガベージコレクション用グループ(複数のデータブロックプール)を含むNVMセットである。つまり、共有NVMセットに対応するフリーブロックプールは、このNVMセットに属し且つ有効データを保持するブロックそれぞれを管理する複数のデータブロックプールによって共有されるフリーブロックプールである。共有NVMセットにおいては、複数のデータブロックプールが、共有NVMセットに対応するフリーブロックプールを共有する。 The shared NVM set is an NVM set that includes multiple garbage collection groups (multiple data block pools). In other words, a free block pool corresponding to a shared NVM set is a free block pool shared by a plurality of data block pools that manage blocks that belong to this NVM set and hold valid data, respectively. In a shared NVM set, multiple data block pools share a free block pool that corresponds to the shared NVM set.

ガベージコレクション(GC)動作制御部22は、上述のガベージコレクション用グループ毎にガベージコレクションを独立して実行する。 The garbage collection (GC) operation control unit 22 independently executes garbage collection for each of the above-mentioned garbage collection groups.

分離されたNVMセットのガベージコレクション、つまり分離されたNVMセットに属する単一のデータブロックプール内のブロック群のガベージコレクションにおいては、GC動作制御部22は、(1)分離されたNVMセットに対応するフリーブロックプール内のフリーブロックの一つをコピー先ブロックとして割り当て、(2)このデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみをコピー先ブロックにコピーし、(3)コピー先ブロックへの有効データのコピーによって無効データのみになったブロックを、分離されたNVMセットに対応するフリーブロックプールに返却する、動作を実行する。これにより、ある分離されたNVMセットのGCによって作成されたフリーブロックをこのNVMセットに対応する1以上の領域のみによって使用することができるので、複数のNVMセット間でダイコンテンションが起きないことを保証することが可能となる。 In garbage collection of a separated NVM set, that is, garbage collection of a group of blocks within a single data block pool belonging to a separated NVM set, the GC operation control unit 22 (1) corresponds to the separated NVM set; (2) Allocate one of the free blocks in the free block pool to be the copy destination block, and (2) copy only valid data from one or more blocks included in this data block pool and in which valid data and invalid data are mixed. and (3) return the block, which has become only invalid data due to the copying of valid data to the copy destination block, to the free block pool corresponding to the separated NVM set. This allows free blocks created by GC of a certain isolated NVM set to be used only by one or more regions corresponding to this NVM set, ensuring that die contention does not occur between multiple NVM sets. It becomes possible to guarantee this.

共有NVMセットのガベージコレクション、つまり共有NVMセットに属する複数のデータブロックプールの一つのデータブロックプール内のブロック群のガベージコレクションにおいては、GC動作制御部22は、(1)共有NVMセットに対応するフリーブロックプール内のフリーブロックの一つをコピー先ブロックとして割り当て、(2)一つのデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみをコピー先ブロックにコピーし、(3)コピー先ブロックへの有効データのコピーによって無効データのみになった一つ以上のブロックを、共有NVMセットに対応するフリーブロックプールに返却する、動作を実行する。これにより、ある共有NVMセットのGCによって作成されたフリーブロックをこの共有NVMセットに対応する1以上の領域のみによって使用することができるので、複数のNVMセット間でダイコンテンションが起きないことを保証することが可能となる。 In garbage collection of a shared NVM set, that is, garbage collection of a group of blocks in one data block pool of a plurality of data block pools belonging to the shared NVM set, the GC operation control unit 22 performs the following steps: (1) corresponding to the shared NVM set; Allocate one of the free blocks in the free block pool as the copy destination block, and (2) copy only valid data from one or more blocks included in one data block pool and in which valid data and invalid data are mixed. and (3) returning one or more blocks, which are reduced to only invalid data by copying valid data to the destination block, to the free block pool corresponding to the shared NVM set. This ensures that die contention does not occur between multiple NVM sets, since free blocks created by the GC of a certain shared NVM set can be used only by one or more regions corresponding to this shared NVM set. It becomes possible to do so.

NVMセット間コピー制御部23は、NVMセットそれぞれの消耗度(プログラム/消去サイクルの数)を均一にするために、NVMセット間コピー動作を実行する。このNVMセット間コピー動作は、例えば、高い消耗度を有する分離されたNVMセットに格納されている有効データを、低い消耗度を有する分離されたNVMセットにコピーするために使用できる。これによってこれらNVMセットの消耗度を均一にすることができる。ホスト2は、コピー元NVMセットとコピー先NVMセットとを指定するパラメータを含むNVMセット間コピーコマンドをSSD3に送出することができる。 The inter-NVM set copy control unit 23 executes an inter-NVM set copy operation in order to equalize the degree of wear (number of program/erase cycles) of each NVM set. This inter-NVM set copy operation can be used, for example, to copy valid data stored in a separate NVM set with a high degree of wear to a separate NVM set with a low degree of wear. This makes it possible to equalize the degree of wear of these NVM sets. The host 2 can send to the SSD 3 an inter-NVM set copy command that includes parameters specifying a copy source NVM set and a copy destination NVM set.

NVMセット間コピー制御部23は、(1)コピー元NVMセットに属するブロックから有効データを保持するブロックをコピー元ブロックとして選択し、(2)コピー元ブロック内の有効データのみを、コピー先NVMセットに対応するフリーブロックプールから割り当てられたコピー先ブロックにコピーし、(3)論理アドレスそれぞれとコピー元NVMセットの物理アドレスそれぞれとの間のマッピングを管理するルックアップテーブルを更新して、コピーされた有効データに対応する論理アドレスに、有効データがコピーされたコピー先ブロック内の物理記憶位置を示す物理アドレスをマッピングし、(4)コピー元ブロックから有効データが無くなった場合、コピー元ブロックを、コピー元NVMセットに対応するフリーブロックプールに返却し、(5)コピー元NVMセットに有効データを保持するブロックが存在しなくなるまで(1)~(4)の動作を繰り返す。これにより、コピー元NVMセット内のデータ(高い更新頻度を有するデータ)を、少ないプログラム/消去サイクルの数を有するコピー先NVMセットに移動することが可能となる。この結果、消耗度の低いコピー先NVMセットが、高い更新頻度を有するデータの書き込みに利用される。よって、コピー元NVMセットのプログラム/消去サイクルの数が制限値に達するタイミングを遅らせることが可能となる。 The inter-NVM set copy control unit 23 (1) selects a block that holds valid data from the blocks belonging to the copy source NVM set as a copy source block, and (2) transfers only the valid data in the copy source block to the copy destination NVM. (3) update the lookup table that manages the mapping between each logical address and each physical address of the source NVM set; The physical address indicating the physical storage location in the copy destination block where the valid data has been copied is mapped to the logical address corresponding to the valid data that has been copied, and (4) if there is no valid data from the copy source block, the copy source block is returned to the free block pool corresponding to the copy source NVM set, and (5) operations (1) to (4) are repeated until there are no blocks holding valid data in the copy source NVM set. This allows data in the source NVM set (data with a high update frequency) to be moved to a destination NVM set with a lower number of program/erase cycles. As a result, a copy destination NVM set with a low degree of wear is used for writing data having a high update frequency. Therefore, it is possible to delay the timing at which the number of program/erase cycles of the copy source NVM set reaches the limit value.

新NVMセット作成制御部24は、他のNVMセットから新たなNVMセットを作成する。例えば、新NVMセット作成制御部24は、あるNVMセット内の一部のNAND型フラッシュメモリダイ集合を新たなNVMセットとして作成することができる。これにより、一つのNVMセットを2つのNVMセットに分割することが可能となる。 The new NVM set creation control unit 24 creates a new NVM set from other NVM sets. For example, the new NVM set creation control unit 24 can create a part of the NAND flash memory die set in a certain NVM set as a new NVM set. This allows one NVM set to be divided into two NVM sets.

NVMセット交換制御部25は、NVMセットそれぞれの消耗度(プログラム/消去サイクルの数)を均一にするために、NVMセット交換動作を実行する。このNVMセット交換動作は、例えば、高い消耗度を有する分離されたNVMセットと低い消耗度を有する分離されたNVMセットとの間でデータを交換するために使用できる。これによってこれらNVMセットの消耗度を均一にすることができる。ホスト2は、格納されているデータが交換されるべき2つのNVMセット(第1NVMセット、第2NVMセット)を指定するパラメータを含むNVMセット交換コマンドをSSD3に送出することができる。 The NVM set exchange control unit 25 executes an NVM set exchange operation in order to equalize the degree of wear (number of program/erase cycles) of each NVM set. This NVM set exchange operation can be used, for example, to exchange data between a separate NVM set with high wearout and a separate NVM set with low wearout. This makes it possible to equalize the degree of wear of these NVM sets. The host 2 can send to the SSD 3 an NVM set exchange command that includes parameters specifying two NVM sets (a first NVM set, a second NVM set) with which stored data should be exchanged.

NVMセット交換制御部25は、第1のNVMセット内の有効データのみを第2のNVMセットにコピーする動作と、第2のNVMセット内の有効データのみを第1のNVMセットにコピーする動作とを実行する。 The NVM set exchange control unit 25 operates to copy only valid data in the first NVM set to the second NVM set, and to copy only valid data in the second NVM set to the first NVM set. and execute.

第1のNVMセット内の有効データのみを第2のNVMセットにコピーする動作においては、NVMセット交換制御部25は、(1)第1のNVMセットに属するブロックから有効データを保持するブロックをコピー元ブロックとして選択し、(2)コピー元ブロック内の有効データのみを、第2のNVMセットに対応するフリーブロックプールから割り当てられたコピー先ブロックにコピーし、(3)論理アドレスそれぞれと第1のNVMセットの物理アドレスそれぞれとの間のマッピングを管理するルックアップテーブルを更新して、コピーされた有効データに対応する論理アドレスに、有効データがコピーされたコピー先ブロック内の物理記憶位置を示す物理アドレスをマッピングし、(4)コピー元ブロックから有効データが無くなった場合、コピー元ブロックを、第1のNVMセットに対応するフリーブロックプールに返却し、(5)第1のNVMセットに有効データを保持するブロックが存在し無くなるまで(6)~(9)の動作を繰り返す。 In the operation of copying only valid data in the first NVM set to the second NVM set, the NVM set exchange control unit 25 (1) extracts blocks holding valid data from blocks belonging to the first NVM set; (2) copy only the valid data in the copy source block to the copy destination block allocated from the free block pool corresponding to the second NVM set, and (3) copy each logical address and the Update the lookup table that manages the mapping between each physical address in the NVM set of 1 to the physical storage location in the destination block where the valid data was copied to the logical address corresponding to the copied valid data. (4) If there is no valid data from the copy source block, return the copy source block to the free block pool corresponding to the first NVM set, and (5) return the copy source block to the free block pool corresponding to the first NVM set. The operations (6) to (9) are repeated until there are no more blocks holding valid data.

第2のNVMセット内の有効データのみを第1のNVMセットにコピーする動作においては、NVMセット交換制御部25は、(1)第2のNVMセットに属するブロックから有効データを保持するブロックをコピー元ブロックとして選択し、(2)コピー元ブロック内の有効データのみを、第1のNVMセットに対応するフリーブロックプールから割り当てられたコピー先ブロックにコピーし、(3)論理アドレスそれぞれと第2のNVMセットの物理アドレスそれぞれとの間のマッピングを管理するルックアップテーブルを更新して、コピーされた有効データに対応する論理アドレスに、有効データがコピーされたコピー先ブロック内の物理記憶位置を示す物理アドレスをマッピングし、(4)コピー元ブロックから有効データが無くなった場合、コピー元ブロックを、第2のNVMセットに対応するフリーブロックプールに返却し、(5)第2のNVMセットに有効データを保持するブロックが存在し無くなるまで(1)~(4)の動作を繰り返す。 In the operation of copying only valid data in the second NVM set to the first NVM set, the NVM set exchange control unit 25 (1) extracts blocks holding valid data from blocks belonging to the second NVM set; (2) copy only the valid data in the copy source block to the copy destination block allocated from the free block pool corresponding to the first NVM set, and (3) copy each logical address and the Update the lookup table that manages the mapping between each of the physical addresses of the NVM set of 2 and the physical storage location in the destination block where the valid data was copied to the logical address corresponding to the copied valid data. (4) If there is no valid data from the copy source block, return the copy source block to the free block pool corresponding to the second NVM set, and (5) return the copy source block to the free block pool corresponding to the second NVM set. The operations (1) to (4) are repeated until there are no more blocks holding valid data.

これにより、これら2つのNVMセットの消耗度を均一化することが可能となる。 This makes it possible to equalize the degree of consumption of these two NVM sets.

NVMセット結合部26は、2以上のNVMセットを一つのNVMセットに結合する。結合対象の2以上のNVMセットおよび結合先の一つのNVMセットはホスト2によって指定することができる。 The NVM set combining unit 26 combines two or more NVM sets into one NVM set. Two or more NVM sets to be combined and one NVM set to be combined can be specified by the host 2.

NANDインタフェース13は、CPU12の制御の下、NAND型フラッシュメモリ5を制御する。DRAMインタフェース14は、CPU12の制御の下、DRAM6を制御するように構成されたDRAMコントローラである。DRAM6の記憶領域の一部は、ホスト2からのライトデータを一時的に格納するためのライトバッファ(WB)として利用される。本実施形態では、複数のライトバッファ(WB)30、31、32…が利用される。少なくとも一つのライトバッファ(WB)がNVMセット毎に準備されてもよい。また、DRAM6の記憶領域の他の一部は、上述のルックアップテーブル(LUT)40、41、42…の格納に利用される。 The NAND interface 13 controls the NAND flash memory 5 under the control of the CPU 12. DRAM interface 14 is a DRAM controller configured to control DRAM 6 under the control of CPU 12. A part of the storage area of the DRAM 6 is used as a write buffer (WB) for temporarily storing write data from the host 2. In this embodiment, a plurality of write buffers (WB) 30, 31, 32, . . . are used. At least one write buffer (WB) may be provided for each NVM set. Further, another part of the storage area of the DRAM 6 is used to store the above-mentioned look-up tables (LUTs) 40, 41, 42, . . . .

図3は、図2の各NVMセットに対応するブロック管理と各NVMセットに対応する一つ以上の領域(ネームスペース)との関係の例を示す。 FIG. 3 shows an example of the relationship between block management corresponding to each NVM set in FIG. 2 and one or more areas (name space) corresponding to each NVM set.

NVMセット60は、チャンネルCh0に接続されたNAND型フラッシュメモリダイ600、チャンネルCh1に接続されたNAND型フラッシュメモリダイ610、チャンネルCh2に接続されたNAND型フラッシュメモリダイ620、…チャンネルChNに接続されたNAND型フラッシュメモリダイ640を含む。NVMセット60に属し且つ有効データを保持しないブロック(フリーブロック)それぞれは、NVMセット60に対応するフリーブロックプール80によって管理される。SSD3を初期化する処理においては、コントローラ4は、NVMセット60に属する全てのブロック、つまりNAND型フラッシュメモリダイ600、610、620、…640内の全てのブロックを、NVMセット60に対応するフリーブロックプール80に配置する。 The NVM set 60 includes a NAND flash memory die 600 connected to channel Ch0, a NAND flash memory die 610 connected to channel Ch1, a NAND flash memory die 620 connected to channel Ch2, ... connected to channel ChN. It includes a NAND type flash memory die 640. Each block (free block) that belongs to the NVM set 60 and does not hold valid data is managed by a free block pool 80 corresponding to the NVM set 60. In the process of initializing the SSD 3, the controller 4 transfers all blocks belonging to the NVM set 60, that is, all blocks in the NAND flash memory die 600, 610, 620, ... 640, to the free memory corresponding to the NVM set 60. Place it in the block pool 80.

NVMセット60に属するブロックは、フリーブロックプール80とNVMサブセット90とを用いて管理される。NVMサブセット90は、NVMセット60に属し且つ有効データを保持するブロックそれぞれを管理するためのデータブロックプールである。このNVMサブセット90に含まれるブロック群が、一つのガベージコレクション用グループを構成する。 Blocks belonging to NVM set 60 are managed using free block pool 80 and NVM subset 90. The NVM subset 90 is a data block pool for managing each block that belongs to the NVM set 60 and holds valid data. A group of blocks included in this NVM subset 90 constitutes one garbage collection group.

フリーブロックプール80は一つのNVMサブセット90に専用のフリーブロックプールである。したがって、NVMセット60は、一つのNVMサブセット90によって専有されるNVMセット(分離されたNVMセット)として機能する。NVMサブセット90には、一つのライトバッファ(WB)30が関連付けられる。 Free block pool 80 is a free block pool dedicated to one NVM subset 90. Therefore, NVM set 60 functions as an NVM set (separated NVM set) that is occupied by one NVM subset 90. One write buffer (WB) 30 is associated with the NVM subset 90.

NVMセット60は、ホスト2によって指定可能な少なくとも一つの領域(ネームスペース)のための物理記憶スペースとして利用される。NVMセット60は一つのネームスペースのみに専用の物理記憶スペースであってもよい。図3においては、NVMセット60が2つのネームスペース100、101用の物理記憶スペースとして利用される場合が例示されている。 The NVM set 60 is used as a physical storage space for at least one area (name space) that can be specified by the host 2. NVM set 60 may be a physical storage space dedicated to only one namespace. In FIG. 3, a case is illustrated in which the NVM set 60 is used as a physical storage space for two namespaces 100 and 101.

NVMセット61は、チャンネルCh0に接続されたNAND型フラッシュメモリダイ601、チャンネルCh1に接続されたNAND型フラッシュメモリダイ611、チャンネルCh2に接続されたNAND型フラッシュメモリダイ621、…チャンネルChNに接続されたNAND型フラッシュメモリダイ641を含む。NVMセット61に属し且つ有効データを保持しないブロック(フリーブロック)それぞれは、NVMセット61に対応するフリーブロックプール81によって管理される。SSD3を初期化する処理においては、コントローラ4は、NVMセット61に属する全てのブロック、つまりNAND型フラッシュメモリダイ601、611、621、…641内の全てのブロックを、NVMセット61に対応するフリーブロックプール81に配置する。 The NVM set 61 includes a NAND flash memory die 601 connected to channel Ch0, a NAND flash memory die 611 connected to channel Ch1, a NAND flash memory die 621 connected to channel Ch2, ... connected to channel ChN. It includes a NAND type flash memory die 641. Each block (free block) that belongs to the NVM set 61 and does not hold valid data is managed by a free block pool 81 corresponding to the NVM set 61. In the process of initializing the SSD 3, the controller 4 transfers all blocks belonging to the NVM set 61, that is, all blocks in the NAND flash memory die 601, 611, 621, ... 641, to the free memory corresponding to the NVM set 61. Place it in the block pool 81.

NVMセット61に属するブロックは、フリーブロックプール81とNVMサブセット91とを用いて管理される。NVMサブセット91は、NVMセット61に属し且つ有効データを保持するブロックそれぞれを管理するためのデータブロックプールである。このNVMサブセット91に含まれるブロック群が、一つのガベージコレクション用グループを構成する。フリーブロックプール81は一つのNVMサブセット91に専用のフリーブロックプールである。したがって、NVMセット61は、一つのNVMサブセット91によって専有されるNVMセット(分離されたNVMセット)として機能する。NVMサブセット91には、一つのライトバッファ(WB)31が関連付けられる。 Blocks belonging to NVM set 61 are managed using free block pool 81 and NVM subset 91. The NVM subset 91 is a data block pool for managing each block that belongs to the NVM set 61 and holds valid data. A group of blocks included in this NVM subset 91 constitutes one garbage collection group. Free block pool 81 is a free block pool dedicated to one NVM subset 91. Therefore, the NVM set 61 functions as an NVM set (separated NVM set) that is exclusively occupied by one NVM subset 91. One write buffer (WB) 31 is associated with the NVM subset 91.

NVMセット61は、少なくとも一つの領域(ネームスペース)のための物理記憶スペースとして利用される。NVMセット61は一つのネームスペースのみに専用の物理記憶スペースであってもよい。図3においては、NVMセット61が一つのネームスペース102用の物理記憶スペースとして利用される場合が例示されている。 The NVM set 61 is used as a physical storage space for at least one area (namespace). NVM set 61 may be a physical storage space dedicated to only one namespace. In FIG. 3, a case is illustrated in which the NVM set 61 is used as a physical storage space for one namespace 102.

NVMセット62は、チャンネルCh0に接続されたNAND型フラッシュメモリダイ602、603、…605、606、チャンネルCh1に接続されたNAND型フラッシュメモリダイ612、613、…615、616、チャンネルCh2に接続されたNAND型フラッシュメモリダイ622、623、…625、626、…チャンネルChNに接続されたNAND型フラッシュメモリダイ642、643、…645、646を含む。NVMセット62に属し且つ有効データを保持しないブロック(フリーブロック)それぞれは、NVMセット62に対応するフリーブロックプール82によって管理される。SSD3を初期化する処理においては、コントローラ4は、NVMセット62に属する全てのブロック、つまりNAND型フラッシュメモリダイ602~646内の全てのブロックを、NVMセット62に対応するフリーブロックプール82に配置する。 The NVM set 62 includes NAND flash memory dies 602, 603, ... 605, 606 connected to channel Ch0, NAND flash memory dies 612, 613, ... 615, 616 connected to channel Ch1, and NAND flash memory dies 612, 613, ... 615, 616 connected to channel Ch2. NAND flash memory dies 622, 623, . . . 625, 626, . . . NAND flash memory dies 642, 643, . Each block (free block) that belongs to the NVM set 62 and does not hold valid data is managed by a free block pool 82 corresponding to the NVM set 62. In the process of initializing the SSD 3, the controller 4 places all blocks belonging to the NVM set 62, that is, all blocks in the NAND flash memory dies 602 to 646, in the free block pool 82 corresponding to the NVM set 62. do.

NVMセット62に属するブロックは、フリーブロックプール82とNVMサブセット92、93、94、95とを用いて管理される。NVMサブセット92、93、94、95の各々は、NVMセット62に属し且つ有効データを保持するブロックそれぞれを管理するためのデータブロックプールである。NVMサブセット92に含まれるブロック群が一つのガベージコレクション用グループを構成し、NVMサブセット93に含まれるブロック群が別のガベージコレクション用グループを構成し、NVMサブセット94に含まれるブロック群がさらに別のガベージコレクション用グループを構成し、NVMサブセット95に含まれるブロック群がさらに別のガベージコレクション用グループを構成する。フリーブロックプール82はNVMサブセット92、93、94、95によって共有されるフリーブロックプールである。したがって、NVMセット62は、複数のNVMサブセット92~95によって共有される共有NVMセットとして機能する。NVMサブセット92、93、94、95には、ライトバッファ(WB)32、33、34、35がそれぞれ関連付けられる。 Blocks belonging to NVM set 62 are managed using free block pool 82 and NVM subsets 92, 93, 94, and 95. Each of the NVM subsets 92, 93, 94, and 95 is a data block pool for managing blocks that belong to the NVM set 62 and hold valid data. A group of blocks included in NVM subset 92 constitutes one group for garbage collection, a group of blocks included in NVM subset 93 constitutes another group for garbage collection, and a group of blocks included in NVM subset 94 constitutes yet another group for garbage collection. A group for garbage collection is constituted, and a group of blocks included in the NVM subset 95 constitutes another group for garbage collection. Free block pool 82 is a free block pool shared by NVM subsets 92, 93, 94, 95. Therefore, NVM set 62 functions as a shared NVM set shared by multiple NVM subsets 92-95. Write buffers (WB) 32, 33, 34, and 35 are associated with NVM subsets 92, 93, 94, and 95, respectively.

NVMセット62は、少なくとも一つの領域(ネームスペース)のための物理記憶スペースとして利用される。NVMセット62は一つのネームスペースのみに専用の物理記憶スペースであってもよいし、複数のネームスペースのための物理記憶スペースであってもよい。図3においては、NVMセット62が4つのネームスペース103、104、105、106用の物理記憶スペースとして利用される場合が例示されている。 The NVM set 62 is used as a physical storage space for at least one area (namespace). NVM set 62 may be a physical storage space dedicated to only one namespace, or may be a physical storage space for multiple namespaces. In FIG. 3, a case is illustrated in which the NVM set 62 is used as a physical storage space for four name spaces 103, 104, 105, and 106.

また、図3においては、ネームスペース103が、2つのNVMサブセット92、93を使用する場合が例示されている。例えば、ネームスペース103に対応するLBA範囲が2つのサブLBA範囲に分割されてもよい。一方のサブLBA範囲に対応するライトデータ(例えば、更新頻度の低いコールドデータ)は、ライトバッファ(WB)32を介して、NVMサブセット92用のインプットブロック(書き込み先ブロック)に書き込まれてもよい。他方のサブLBA範囲に対応するライトデータ(例えば、更新頻度の高いホットデータ(メタデータ)は、ライトバッファ(WB)33を介して、NVMサブセット93用のインプットブロック(書き込み先ブロック)に書き込まれてもよい。 Further, in FIG. 3, a case is illustrated in which the name space 103 uses two NVM subsets 92 and 93. For example, the LBA range corresponding to namespace 103 may be divided into two sub-LBA ranges. Write data (for example, cold data with low update frequency) corresponding to one sub-LBA range may be written to an input block (write destination block) for the NVM subset 92 via the write buffer (WB) 32. . Write data (for example, frequently updated hot data (metadata)) corresponding to the other sub-LBA range is written to the input block (write destination block) for the NVM subset 93 via the write buffer (WB) 33. It's okay.

図3においては、ネームスペース100または101のIDを含むホスト2からのI/Oコマンドに応じてNVMセット60に対するデータ書き込み/読み出し動作が実行される。また、ネームスペース102のIDを含むホスト2からのI/Oコマンドに応じてNVMセット61に対するデータ書き込み/読み出し動作が実行される。また、ネームスペース103~106の何れかのネームスペースのIDを含むホスト2からのI/Oコマンドに応じてNVMセット62に対するデータ書き込み/読み出し動作が実行される。したがって、NVMセット60、61、62それぞれを同時にアクセスすることができ、ダイコンテンションに起因する長いレイテンシ(特に長いリードレイテンシ)を抑制することができる。 In FIG. 3, data write/read operations are performed on the NVM set 60 in response to an I/O command from the host 2 that includes the ID of the namespace 100 or 101. Further, data write/read operations for the NVM set 61 are executed in response to an I/O command from the host 2 that includes the ID of the namespace 102. Further, data write/read operations for the NVM set 62 are executed in response to an I/O command from the host 2 that includes the ID of any of the name spaces 103 to 106. Therefore, each of the NVM sets 60, 61, and 62 can be accessed simultaneously, and long latency (especially long read latency) caused by die contention can be suppressed.

また、ガベージコレクションはNVMサブセット毎に独立して実行されるので、一つ以上のNVMサブセットを専有するネームスペースは、他のネームスペースによって使用される他のNVMサブセットのガベージコレクションによる影響(GCコンテンション)を受けない。 Additionally, since garbage collection is performed independently for each NVM subset, a namespace that owns one or more NVM subsets will be affected by the garbage collection of other NVM subsets used by other namespaces (GC controllers). tension).

共有NVMセット62は、以下の特徴を有する。 The shared NVM set 62 has the following characteristics.

共有NVMセット62の内部においては、複数のNVMサブセット92~95間でフリーブロックプール82が共有されているため、ダイコンテンションが発生する場合がある。しかし、あるNVMサブセット用の新規のインプットブロックの割り当てが必要とされた時、コントローラ4は、共有フリーブロックプール82内のフリーブロック群からプログラム/イレーズサイクルの数が少ないブロックを選択し、この選択したブロックを新規のインプットブロックとして割り当てることができる。これにより、NVMサブセット92、93、94、95それぞれの消耗を均一にすることができる。 Inside the shared NVM set 62, the free block pool 82 is shared among the plurality of NVM subsets 92-95, so die contention may occur. However, when a new input block allocation for a certain NVM subset is required, the controller 4 selects a block with a small number of program/erase cycles from the free blocks in the shared free block pool 82; This block can be assigned as a new input block. This makes it possible to equalize the wear and tear of each of the NVM subsets 92, 93, 94, and 95.

また、分離されたNVMセット60、61は、以下の特徴を有する。 Furthermore, the separated NVM sets 60 and 61 have the following characteristics.

分離されたNVMセット60、61の各々の内部においては、一つのNVMサブセットが一つのフリーブロックプールを専有することができる。したがって、この一つのNVMサブセットに一つのネームスペースが対応しているならば、このネームスペースは、ダイコンテンション無しで、分離されたNVMセットを専有することができる。しかし、分離されたNVMセットは他のNVMセットとフリーブロック群を共有していないため、もしある特定の分離されたNVMセットに格納されるデータの書き換え頻度が高いならば、このNVMセットの消耗度が他のNVMセットの消耗度よりも高くなるという状態が生じうる。このように不均等な消耗はSSD3の寿命を低減させる要因となる。 Within each separated NVM set 60, 61, one NVM subset can occupy one free block pool. Therefore, if one namespace corresponds to this one NVM subset, this namespace can occupy a separate NVM set without die contention. However, since isolated NVM sets do not share free block groups with other NVM sets, if the data stored in a particular isolated NVM set is frequently rewritten, this NVM set will become exhausted. A situation may arise where the degree of exhaustion is higher than the degree of consumption of other NVM sets. Such uneven consumption becomes a factor that reduces the lifespan of the SSD 3.

本実施形態では、共有NVMセットと分離されたNVMセットとを1台のSSD3内に共存させることができる。したがって、例えば、ワークロードに応じて、共有NVMセットと分離されたNVMセットとを使い分けることが可能となる。 In this embodiment, a shared NVM set and a separated NVM set can coexist within one SSD 3. Therefore, for example, it is possible to use a shared NVM set and a separate NVM set depending on the workload.

また、図3のケースにおいては、個々のネームスペースに対して以下の環境が提供される。 Further, in the case of FIG. 3, the following environment is provided for each namespace.

<NVMセット60>
ネームスペース100、101は、一つのNVMサブセット90を共有する。ネームスペース100、101と他のネームスペースとの間のダイコンテンションは生じないが、ネームスペース100、101間のGCコンテンションは生じうる。
<NVM set 60>
Namespaces 100, 101 share one NVM subset 90. Although die contention between namespaces 100, 101 and other namespaces does not occur, GC contention between namespaces 100, 101 may occur.

<NVMセット61>
ネームスペース102は、一つのNVMサブセット91を専有する。ネームスペース102と他のネームスペースとの間のダイコンテンション、GCコンテンションは生じない。
<NVM set 61>
Namespace 102 occupies one NVM subset 91. No die contention or GC contention occurs between the namespace 102 and other namespaces.

<NVMセット62>
ネームスペース103は、2つのNVMサブセット92、93を専有する。ネームスペース103とNVMセット62を使用する他のネームスペースとの間のダイコンテンションは生じうるが、ネームスペース103と他のネームスペースとの間のGCコンテンションは生じない。
<NVM set 62>
Namespace 103 occupies two NVM subsets 92, 93. Although die contention between namespace 103 and other namespaces using NVM set 62 may occur, there is no GC contention between namespace 103 and other namespaces.

ネームスペース104、105は、一つのNVMサブセット94を共有する。ネームスペース104、105とNVMセット62を使用する他のネームスペースとの間のダイコンテンションは生じうる。また、ネームスペース104、105と他のネームスペースとの間のGCコンテンションは生じないが、ネームスペース104、105間のGCコンテンションは生じうる。 Namespaces 104, 105 share one NVM subset 94. Die contention between namespaces 104, 105 and other namespaces using NVM set 62 may occur. Furthermore, although no GC contention occurs between the namespaces 104 and 105 and other namespaces, GC contention between the namespaces 104 and 105 may occur.

ネームスペース106は、一つのNVMサブセット95を専有する。ネームスペース106とNVMセット62を使用する他のネームスペースとの間のダイコンテンションは生じうるが、ネームスペース106と他のネームスペースとの間のGCコンテンションは生じない。 Namespace 106 occupies one NVM subset 95. Although die contention between namespace 106 and other namespaces using NVM set 62 may occur, there is no GC contention between namespace 106 and other namespaces.

次に、図4を参照して、分離されたNVMセット60、61のためのホスト書き込み/ガベージコレクション動作を説明する。 Referring now to FIG. 4, host write/garbage collection operations for separated NVM sets 60, 61 will now be described.

図4の左上部は、NVMセット60のためのホスト書き込み/ガベージコレクション動作を示している。 The top left of FIG. 4 shows host write/garbage collection operations for NVM set 60.

(1)ユーザインプットブロックの割り当て
はじめに、フリーブロックプール80内の1つのフリーブロックがユーザインプットブロック210として割り当てられる。ユーザインプットブロック210とは、ホスト2からのライトデータを書き込むためのブロックのことであり、書き込み先ブロックとも云う。なお、ユーザインプットブロック210がすでに割り当てられていれば、この動作は実行されない。
(1) Allocation of User Input Block First, one free block in the free block pool 80 is allocated as the user input block 210. The user input block 210 is a block for writing write data from the host 2, and is also referred to as a write destination block. Note that this operation is not performed if the user input block 210 has already been allocated.

(2)ホスト書き込み
ホスト2からのライトデータがライトバッファ30からユーザインプットブロック210に書き込まれる。ライトバッファ30にはネームスペース100またはネームスペース101に関連付けられたライトデータが一時的に格納されている。そして、NVMセット60に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック210内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing Write data from the host 2 is written from the write buffer 30 to the user input block 210. The write buffer 30 temporarily stores write data associated with the name space 100 or the name space 101. Then, the lookup table corresponding to the NVM set 60 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 210 where this write data is written. mapped.

(3)ユーザインプットブロックの移動
ユーザインプットブロック210がライトデータで満たされると、そのユーザインプットブロック210は、NVMサブセット(データブロックプール)90に移動される。つまり、データで満たされたユーザインプットブロック210はNVMサブセット(データブロックプール)90によって管理される。
(3) Movement of User Input Block When the user input block 210 is filled with write data, the user input block 210 is moved to the NVM subset (data block pool) 90. That is, the user input blocks 210 filled with data are managed by the NVM subset (data block pool) 90.

(4)GCインプットブロックの割り当て
NVMセット60においてガベージコレクションの実行が必要になった場合、他のNVMセットとは独立して、NVMサブセット90内のブロック群のためのガベージコレクション動作が実行される。例えば、NVMサブセット90に含まれているブロック数が、NVMサブセット90に対応するある閾値X1よりも多い場合に、ガベージコレクション動作が必要と判断されてもよい。閾値X1は、NVMサブセット90用に割り当て可能なブロックの総数に基づいて決定されてもよい。例えば、NVMサブセット90用に割り当て可能なブロックの総数から所定数を引いた残りの値が、NVMサブセット90に対応するある閾値X1として利用されてもよい。
(4) Allocation of GC input blocks When it becomes necessary to perform garbage collection in the NVM set 60, the garbage collection operation for the blocks in the NVM subset 90 is performed independently of other NVM sets. . For example, if the number of blocks included in the NVM subset 90 is greater than a certain threshold value X1 corresponding to the NVM subset 90, it may be determined that a garbage collection operation is necessary. Threshold X1 may be determined based on the total number of blocks that can be allocated for NVM subset 90. For example, a value remaining after subtracting a predetermined number from the total number of blocks that can be allocated for the NVM subset 90 may be used as a certain threshold value X1 corresponding to the NVM subset 90.

NVMセット60においてガベージコレクション動作が必要になった場合、フリーブロックプール80内の1つのフリーブロックがGCインプットブロック200として割り当てられる。GCインプットブロック210とは、ガベージコレクションにおいて有効データのコピー先となるブロックのことであり、コピー先ブロックとも云う。 When a garbage collection operation is required in NVM set 60, one free block in free block pool 80 is assigned as GC input block 200. The GC input block 210 is a block to which valid data is copied during garbage collection, and is also referred to as a copy destination block.

(5)有効データのコピー
NVMサブセット90内のブロックの中から有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択される。その選択されたブロックの有効データのみがGCインプットブロック200にコピーされる。そして、NVMセット60に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック200内の物理記憶位置を示す物理アドレスがマッピングされる。
(5) Copying Valid Data One or more blocks in which valid data and invalid data coexist are selected from among the blocks in the NVM subset 90 as copy source blocks. Only valid data of the selected block is copied to the GC input block 200. The lookup table corresponding to the NVM set 60 is then updated, thereby assigning the physical storage location in the GC input block 200 to which the valid data was copied to the logical address (LBA) corresponding to the copied valid data. The indicated physical address is mapped.

(6)GCインプットブロックの移動
GCインプットブロック200が有効データで満たされると、GCインプットブロック200はNVMサブセット90に移動される。つまり、有効データで満たされたGCインプットブロック200はNVMサブセット(データブロックプール)90によって管理される。
(6) Movement of GC Input Block Once the GC input block 200 is filled with valid data, the GC input block 200 is moved to the NVM subset 90. That is, the GC input block 200 filled with valid data is managed by the NVM subset (data block pool) 90.

(7)ブロックの返却
NVMサブセット90によって管理されており且つ有効データを保持しないブロックは、NVMサブセット90からフリーブロックプール80に返却される。有効データを保持しないブロックは、ホスト書き込みによってその全てのデータが無効化されたブロック、またはガベージコレクション動作によってその全ての有効データがコピー先ブロックにコピーされたブロックである。
(7) Returning Blocks Blocks that are managed by the NVM subset 90 and do not hold valid data are returned from the NVM subset 90 to the free block pool 80. A block that does not hold valid data is a block that has had all its data invalidated by a host write, or a block that has had all its valid data copied to a destination block by a garbage collection operation.

図4の左下部は、NVMセット61のためのホスト書き込み/ガベージコレクション動作を示している。 The bottom left of FIG. 4 shows host write/garbage collection operations for NVM set 61.

(1)ユーザインプットブロックの割り当て
フリーブロックプール81内の1つのフリーブロックがユーザインプットブロック211として割り当てられる。
(1) Allocation of User Input Block One free block in the free block pool 81 is allocated as the user input block 211.

(2)ホスト書き込み
ホスト2からのライトデータがライトバッファ31からユーザインプットブロック211に書き込まれる。ライトバッファ31にはネームスペース102に関連付けられたライトデータが一時的に格納されている。そして、NVMセット61に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック211内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing Write data from the host 2 is written from the write buffer 31 to the user input block 211. Write data associated with the name space 102 is temporarily stored in the write buffer 31. Then, the lookup table corresponding to the NVM set 61 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 211 where this write data is written. mapped.

(3)ユーザインプットブロックの移動
ユーザインプットブロック211がライトデータで満たされると、そのユーザインプットブロック211は、NVMサブセット(データブロックプール)91に移動される。つまり、データで満たされたユーザインプットブロック211はNVMサブセット(データブロックプール)91によって管理される。
(3) Movement of user input block When the user input block 211 is filled with write data, the user input block 211 is moved to the NVM subset (data block pool) 91. That is, the user input blocks 211 filled with data are managed by the NVM subset (data block pool) 91.

(4)GCインプットブロックの割り当て
NVMセット61においてガベージコレクションの実行が必要になった場合、他のNVMセットとは独立して、NVMサブセット91内のブロック群のためのガベージコレクション動作が実行される。例えば、NVMサブセット91に含まれているブロック数が、NVMサブセット91に対応するある閾値X1よりも多い場合に、ガベージコレクション動作が必要と判断されてもよい。閾値X1は、NVMサブセット91用に割り当て可能なブロックの総数に基づいて決定されてもよい。例えば、NVMサブセット91用に割り当て可能なブロックの総数から所定数を引いた残りの値が、NVMサブセット91に対応するある閾値X1として利用されてもよい。
(4) Allocation of GC input blocks When it becomes necessary to perform garbage collection in the NVM set 61, the garbage collection operation for the blocks in the NVM subset 91 is performed independently of other NVM sets. . For example, if the number of blocks included in the NVM subset 91 is greater than a certain threshold value X1 corresponding to the NVM subset 91, it may be determined that a garbage collection operation is necessary. Threshold X1 may be determined based on the total number of blocks that can be allocated for NVM subset 91. For example, a value remaining after subtracting a predetermined number from the total number of blocks that can be allocated for the NVM subset 91 may be used as a certain threshold value X1 corresponding to the NVM subset 91.

NVMセット61においてガベージコレクション動作が必要になった場合、フリーブロックプール81内の1つのフリーブロックがGCインプットブロック201として割り当てられる。 When a garbage collection operation is required in the NVM set 61, one free block in the free block pool 81 is assigned as the GC input block 201.

(5)有効データのコピー
NVMサブセット91内のブロックの中から有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択される。その選択されたブロックの有効データのみがGCインプットブロック201にコピーされる。そして、NVMセット61に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック201内の物理記憶位置を示す物理アドレスがマッピングされる。
(5) Copying Valid Data One or more blocks containing a mixture of valid data and invalid data are selected from among the blocks in the NVM subset 91 as copy source blocks. Only valid data of the selected block is copied to the GC input block 201. The lookup table corresponding to the NVM set 61 is then updated, thereby assigning the physical storage location in the GC input block 201 to which this valid data was copied to the logical address (LBA) corresponding to the copied valid data. The indicated physical address is mapped.

(6)GCインプットブロックの移動
GCインプットブロック201が有効データで満たされると、GCインプットブロック201はNVMサブセット91に移動される。つまり、有効データで満たされたGCインプットブロック201はNVMサブセット(データブロックプール)91によって管理される。
(6) Movement of GC input block When the GC input block 201 is filled with valid data, the GC input block 201 is moved to the NVM subset 91. That is, the GC input block 201 filled with valid data is managed by the NVM subset (data block pool) 91.

(7)ブロックの返却
NVMサブセット91によって管理されており且つ有効データを保持しないブロックは、NVMサブセット91からフリーブロックプール81に返却される。有効データを保持しないブロックは、ホスト書き込みによってその全てのデータが無効化されたブロック、またはガベージコレクション動作によってその全ての有効データがコピー先ブロックにコピーされたブロックである。
(7) Returning Blocks Blocks that are managed by the NVM subset 91 and do not hold valid data are returned from the NVM subset 91 to the free block pool 81. A block that does not hold valid data is a block that has had all its data invalidated by a host write, or a block that has had all its valid data copied to a destination block by a garbage collection operation.

図5は、共有NVMセット62のために実行されるホスト書き込み/ガベージコレクション動作を示す。ここでは、共有NVMセット62が、2つのNVMサブセット94、95のみを含む場合を想定する。 FIG. 5 illustrates host write/garbage collection operations performed for shared NVM set 62. Here, it is assumed that the shared NVM set 62 includes only two NVM subsets 94 and 95.

NVMサブセット94用のホスト書き込み/ガベージコレクション動作は以下のように実行される。 Host write/garbage collection operations for NVM subset 94 are performed as follows.

(1)ユーザインプットブロックの割り当て
フリーブロックプール82内の1つのフリーブロックがユーザインプットブロック214として割り当てられる。
(1) Allocation of User Input Block One free block in the free block pool 82 is allocated as the user input block 214.

(2)ホスト書き込み
ホスト2からのライトデータがライトバッファ34からユーザインプットブロック214に書き込まれる。ライトバッファ34にはネームスペース104または105に関連付けられたライトデータが一時的に格納されている。そして、NVMサブセット94に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック214内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing Write data from the host 2 is written from the write buffer 34 to the user input block 214. The write buffer 34 temporarily stores write data associated with the namespace 104 or 105. Then, the lookup table corresponding to the NVM subset 94 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 214 where this write data is written. mapped.

(3)ユーザインプットブロックの移動
ユーザインプットブロック214がライトデータで満たされると、そのユーザインプットブロック214は、NVMサブセット(データブロックプール)94に移動される。つまり、データで満たされたユーザインプットブロック214はNVMサブセット(データブロックプール)94によって管理される。
(3) Movement of User Input Blocks Once a user input block 214 is filled with write data, the user input block 214 is moved to the NVM subset (data block pool) 94. That is, the user input blocks 214 filled with data are managed by the NVM subset (data block pool) 94.

(4)GCインプットブロックの割り当て
NVMサブセット(データブロックプール)94においてガベージコレクションの実行が必要になった場合、他のNVMセットおよびNVMセット62内の他のNVMサブセットとは独立して、NVMサブセット94内のブロック群のためのガベージコレクション動作が実行される。例えば、NVMサブセット94に含まれているブロック数が、NVMサブセット94に対応するある閾値X1よりも多い場合に、ガベージコレクション動作が必要と判断されてもよい。閾値X1は、NVMサブセット94用に割り当て可能なブロックの総数に基づいて決定されてもよい。例えば、NVMサブセット94用に割り当て可能なブロックの総数から所定数を引いた残りの値が、NVMサブセット94に対応するある閾値X1として利用されてもよい。
(4) Allocation of GC input blocks When it becomes necessary to perform garbage collection in the NVM subset (data block pool) 94, the NVM subset Garbage collection operations for blocks within 94 are performed. For example, if the number of blocks included in the NVM subset 94 is greater than a certain threshold value X1 corresponding to the NVM subset 94, it may be determined that a garbage collection operation is necessary. Threshold X1 may be determined based on the total number of blocks that can be allocated for NVM subset 94. For example, a value remaining after subtracting a predetermined number from the total number of blocks that can be allocated for the NVM subset 94 may be used as a certain threshold value X1 corresponding to the NVM subset 94.

NVMサブセット94においてガベージコレクション動作が必要になった場合、フリーブロックプール82内の1つのフリーブロックがGCインプットブロック204として割り当てられる。 When a garbage collection operation is required in NVM subset 94, one free block in free block pool 82 is assigned as GC input block 204.

(5)有効データのコピー
NVMサブセット94内のブロックの中から有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択される。その選択されたブロックの有効データのみがGCインプットブロック204にコピーされる。そして、NVMサブセット94に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック204内の物理記憶位置を示す物理アドレスがマッピングされる。
(5) Copying Valid Data One or more blocks containing a mixture of valid data and invalid data are selected from among the blocks in the NVM subset 94 as copy source blocks. Only valid data of the selected block is copied to the GC input block 204. The lookup table corresponding to NVM subset 94 is then updated, thereby assigning the logical address (LBA) corresponding to the copied valid data to the physical storage location within GC input block 204 where this valid data was copied. The indicated physical address is mapped.

(6)GCインプットブロックの移動
GCインプットブロック204が有効データで満たされると、GCインプットブロック204はNVMサブセット94に移動される。つまり、有効データで満たされたGCインプットブロック204はNVMサブセット(データブロックプール)94によって管理される。
(6) Moving the GC Input Block Once the GC input block 204 is filled with valid data, the GC input block 204 is moved to the NVM subset 94. That is, the GC input block 204 filled with valid data is managed by the NVM subset (data block pool) 94.

(7)ブロックの返却
NVMサブセット94によって管理されており且つ有効データを保持しないブロックは、NVMサブセット94からフリーブロックプール82に返却される。有効データを保持しないブロックは、ホスト書き込みによってその全てのデータが無効化されたブロック、またはガベージコレクション動作によってその全ての有効データがコピー先ブロックにコピーされたブロックである。
(7) Returning Blocks Blocks that are managed by the NVM subset 94 and do not hold valid data are returned from the NVM subset 94 to the free block pool 82 . A block that does not hold valid data is a block that has had all its data invalidated by a host write, or a block that has had all its valid data copied to a destination block by a garbage collection operation.

NVMサブセット95用のホスト書き込み/ガベージコレクション動作も、NVMサブセット94用のホスト書き込み/ガベージコレクション動作と同様の手順で実行される。 Host write/garbage collection operations for NVM subset 95 are performed in a similar manner to host write/garbage collection operations for NVM subset 94.

図6は、複数のNVMセットの別の構成例を示す。 FIG. 6 shows another example configuration of multiple NVM sets.

図6では、各NVMセットは、同一チャンネルに接続されたNAND型フラッシュメモリダイの集合を含む。すなわち、NVMセット110は、チャンネルCh0に接続されたNAND型フラッシュメモリダイ600、601、602、603、…605、606を含む。NVMセット111は、チャンネルCh1に接続されたNAND型フラッシュメモリダイ610、611、612、613、…615、616を含む。NVMセット112は、チャンネルCh2に接続されたNAND型フラッシュメモリダイ620、621、622、623、…625、626と、…チャンネルChNに接続されたNAND型フラッシュメモリダイ640、641、642、643、…645、646とを含む。 In FIG. 6, each NVM set includes a collection of NAND flash memory dies connected to the same channel. That is, the NVM set 110 includes NAND flash memory dies 600, 601, 602, 603, . . . 605, 606 connected to channel Ch0. NVM set 111 includes NAND flash memory dies 610, 611, 612, 613, . . . 615, 616 connected to channel Ch1. The NVM set 112 includes NAND flash memory dies 620, 621, 622, 623, ... 625, 626 connected to channel Ch2, and NAND flash memory dies 640, 641, 642, 643, connected to channel ChN. ...645, 646 are included.

図6のNVMセット構成においては、NVMセット110、111、112へのアクセスは、異なるチャンネルを介して実行される。したがって、あるNVMセット内のどのNAND型フラッシュメモリダイに対するデータ書き込み/読み出し動作の実行中であっても、他のNVMセット内の任意のNAND型フラッシュメモリダイに対するデータ書き込み/読み出し動作を即座に実行することができる。 In the NVM set configuration of FIG. 6, access to NVM sets 110, 111, 112 is performed via different channels. Therefore, even if a data write/read operation is being performed on any NAND flash memory die in one NVM set, a data write/read operation on any NAND flash memory die in another NVM set is immediately performed. can do.

各NVMセットが複数のチャンネルに跨がっている図2のNVMセット構成においては、一つのチャンネルがNVMセット間で共有される。したがって、図2のNVMセット構成において、もしNVMセット60内のNAND型フラッシュメモリダイ600へのライト/リード要求とNVMセット61内のNAND型フラッシュメモリダイ601へのライト/リード要求とが同時に起こると、チャンネルCh0へのアクセスの競合に起因するレイテンシの増加が発生する場合がある。 In the NVM set configuration of FIG. 2 where each NVM set spans multiple channels, one channel is shared between the NVM sets. Therefore, in the NVM set configuration of FIG. 2, if a write/read request to the NAND flash memory die 600 in the NVM set 60 and a write/read request to the NAND flash memory die 601 in the NVM set 61 occur simultaneously. In this case, an increase in latency may occur due to contention for access to channel Ch0.

図6のNVMセット構成においては、NVMセット110、111、112へのアクセスは異なるチャンネルを介して実行されるので、たとえNVMセット110、111、112それぞれに対するライト/リード要求が同時に発生しても、これらライト/リード要求を即座に実行することができる。したがって、ホスト2からのアクセス要求に対するレイテンシを低減することができる。 In the NVM set configuration shown in FIG. 6, access to NVM sets 110, 111, and 112 is performed through different channels, so even if write/read requests to each of NVM sets 110, 111, and 112 occur simultaneously. , these write/read requests can be executed immediately. Therefore, the latency for access requests from the host 2 can be reduced.

しかし、図6のNVMセット構成においては、各NVMセットのピークI/O性能は、単一チャンネルの性能に制限される。したがって、図6のNVMセット構成は、単一チャンネルの性能を向上させることが可能な機構と組み合わせて利用することが好適である。 However, in the NVM set configuration of FIG. 6, the peak I/O performance of each NVM set is limited to the performance of a single channel. Therefore, the NVM set configuration of FIG. 6 is preferably used in combination with mechanisms that can improve single channel performance.

図7は、図6の各NVMセットに対応するブロック管理と各NVMセットに対応する一つ以上の領域(ネームスペース)との関係を示す。 FIG. 7 shows the relationship between block management corresponding to each NVM set in FIG. 6 and one or more areas (name space) corresponding to each NVM set.

NVMセット110は、図2のNVMセット60と同様に、分離されたNVMセットとして機能し得る。SSD3を初期化する処理においては、NVMセット110に属する全てのブロックは、NVMサブセット90に専用のフリーブロックプール80に配置される。NVMセット111は、図2のNVMセット61と同様に、分離されたNVMセットとして機能し得る。SSD3を初期化する処理においては、NVMセット111に属する全てのブロックは、NVMサブセット91に専用のフリーブロックプール81に配置される。NVMセット112は、図2のNVMセット62と同様に、共有NVMセットとして機能し得る。SSD3を初期化する処理においては、NVMセット112に属する全てのブロックは、NVMサブセット92~95によって共有されるフリーブロックプール82に配置される。 NVM set 110 may function as a separate NVM set, similar to NVM set 60 of FIG. In the process of initializing the SSD 3, all blocks belonging to the NVM set 110 are placed in a free block pool 80 dedicated to the NVM subset 90. NVM set 111 may function as a separate NVM set, similar to NVM set 61 of FIG. In the process of initializing the SSD 3, all blocks belonging to the NVM set 111 are placed in the free block pool 81 dedicated to the NVM subset 91. NVM set 112 may function as a shared NVM set, similar to NVM set 62 of FIG. In the process of initializing the SSD 3, all blocks belonging to the NVM set 112 are placed in the free block pool 82 shared by the NVM subsets 92-95.

図8は、SSD3に搭載されるNAND型フラッシュメモリ5として使用可能なフラッシュメモリパッケージを模式的に示す。 FIG. 8 schematically shows a flash memory package that can be used as the NAND flash memory 5 mounted on the SSD 3.

このフラッシュメモリパッケージ910は、パッケージ内の積層されたNAND型フラッシュメモリダイの内部を垂直に貫通する電極を使用するTSV(スルー・シリコン・ビア)技術によって、データ入出力の高速化と消費電力の低減を可能にしたメモリパッケージである。フラッシュメモリパッケージ910においては、積層された複数のNAND型フラッシュメモリダイが単一のパッケージ内に収容されている。ここでは、8個のNAND型フラッシュメモリダイD0~D7が単一のパッケージ内に収容されている場合が例示されているが、パッケージ内に収容されるNAND型フラッシュメモリダイの数はこの例に限定されない。 This flash memory package 910 uses TSV (Through Silicon Via) technology, which uses electrodes that vertically penetrate inside the stacked NAND flash memory die inside the package, to speed up data input/output and reduce power consumption. This is a memory package that makes it possible to reduce In flash memory package 910, a plurality of stacked NAND flash memory dies are housed in a single package. Here, the case where eight NAND type flash memory dies D0 to D7 are housed in a single package is illustrated, but the number of NAND type flash memory dies housed in the package is different from this example. Not limited.

このフラッシュメモリパッケージ910は、プリント配線基板のようなパッケージ基板911、インタフェースダイ(インタフェースチップとも云う)Ce、上述の積層されたNAND型フラッシュメモリダイD0~D7を含む。パッケージ基板911の裏面には、信号を入出力するための複数の外部I/O端子(電極)として機能する複数のはんだバンプ916が配置されている。これら信号には、8ビット幅のI/O信号と、様々な制御信号(複数のチップイネーブル信号CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WE、リードイネーブル信号RE、複数のレディー/ビジー信号RB、等)が含まれる。8ビット幅のI/O信号は、コマンド、アドレス、データ、等の伝送に使用される。アドレスの一部は、チップアドレスを含んでいてもよい。アクセス対象のNAND型フラッシュメモリダイは、チップイネーブル信号CEとチップアドレスとの組み合わせによって選択されてもよい。 This flash memory package 910 includes a package substrate 911 such as a printed wiring board, an interface die (also referred to as an interface chip) Ce, and the above-described stacked NAND type flash memory dies D0 to D7. A plurality of solder bumps 916 that function as a plurality of external I/O terminals (electrodes) for inputting and outputting signals are arranged on the back surface of the package substrate 911. These signals include 8-bit wide I/O signals and various control signals (chip enable signals CE, command latch enable signals CLE, address latch enable signals ALE, write enable signals WE, read enable signals RE, ready/busy signal RB, etc.). Eight-bit wide I/O signals are used to transmit commands, addresses, data, etc. Part of the address may include a chip address. A NAND flash memory die to be accessed may be selected by a combination of a chip enable signal CE and a chip address.

パッケージ基板911の表面には、インタフェースダイCeが配置されている。インタフェースダイCeは図示しない配線層を介して複数のはんだバンプ916に接続されている。 An interface die Ce is arranged on the surface of the package substrate 911. The interface die Ce is connected to a plurality of solder bumps 916 via a wiring layer (not shown).

積層されたNAND型フラッシュメモリダイD0~D7は、多数の垂直ビア925によって相互接続されている。インタフェースダイCeは、これら多数の垂直ビア925を介して、I/O信号、チップイネーブル信号CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WE、リードイネーブル信号RE等をNAND型フラッシュメモリダイD0~D7に伝送し、またこれら多数の垂直ビア925を介して、I/O信号、レディー/ビジー信号RB等をNAND型フラッシュメモリダイD0~D7から受信する。 The stacked NAND flash memory dies D0-D7 are interconnected by a number of vertical vias 925. The interface die Ce transmits I/O signals, chip enable signal CE, command latch enable signal CLE, address latch enable signal ALE, write enable signal WE, read enable signal RE, etc. through these many vertical vias 925 in NAND type. The I/O signals, ready/busy signals RB, etc. are transmitted to the flash memory dies D0-D7 and received from the NAND-type flash memory dies D0-D7 through these multiple vertical vias 925.

インタフェースダイCeは、パラレル/シリアル変換回路を内蔵していてもよい。インタフェースダイCeは、コントローラ4からの8ビット幅のI/O信号をパラレル/シリアル変換回路を使用して例えば64ビット幅のI/O信号に変換し、これら64ビット幅のI/O信号を、多数の垂直ビア925内に含まれる特定の64本の垂直ビアを介してNAND型フラッシュメモリダイD0~D7に伝送してもよい。 The interface die Ce may include a parallel/serial conversion circuit. The interface die Ce converts the 8-bit wide I/O signal from the controller 4 into a 64-bit wide I/O signal using a parallel/serial conversion circuit, and converts these 64-bit wide I/O signals into , may be transmitted to the NAND flash memory die D0-D7 through specific 64 vertical vias included in the number of vertical vias 925.

垂直ビア925の各々は、積層されたNAND型フラッシュメモリダイD0~D7それぞれの半導体基板を貫通する複数の貫通電極Vと、積層されたNAND型フラッシュメモリダイD0~D7間をそれぞれ接続する複数のバンプ電極(はんだバンプ)919とを含む。 Each of the vertical vias 925 connects a plurality of through electrodes V that penetrate the semiconductor substrates of the stacked NAND flash memory dies D0 to D7, and a plurality of through electrodes V that connect the stacked NAND flash memory dies D0 to D7, respectively. bump electrodes (solder bumps) 919.

ワイヤボンディングを使用する従来のメモリパッケージにおいては、積層されるダイの数が増えると、パッケージの外部I/O端子の寄生容量、寄生抵抗が増大し、これによってメモリパッケージを高い周波数で動作させることが困難となる。 In conventional memory packages that use wire bonding, as the number of stacked dies increases, the parasitic capacitance and parasitic resistance of the package's external I/O terminals increases, making it difficult for the memory package to operate at high frequencies. becomes difficult.

図8のフラッシュメモリパッケージ910においては、ボンディングワイヤーの代わりに、多数の垂直ビア925によって、積層されたNAND型フラッシュメモリダイD0~D7が相互接続される。したがって、外部I/O端子の寄生容量、寄生抵抗を低減でき、フラッシュメモリパッケージ910内の各NAND型フラッシュメモリダイを高い周波数で動作させることが可能となる。 In the flash memory package 910 of FIG. 8, stacked NAND flash memory dies D0-D7 are interconnected by a number of vertical vias 925 instead of bonding wires. Therefore, the parasitic capacitance and parasitic resistance of the external I/O terminal can be reduced, and each NAND flash memory die in the flash memory package 910 can be operated at a high frequency.

図9は、フラッシュメモリパッケージ910の断面図である。 FIG. 9 is a cross-sectional view of flash memory package 910.

支持基板912の表面上には、積層されたNAND型フラッシュメモリダイD0~D7が実装されている。NAND型フラッシュメモリダイD0~D7の各々には、貫通電極Vが埋め込まれている。貫通電極Vは、対応するNAND型フラッシュメモリダイ内の半導体基板を貫通する電極である。隣接する2つのNAND型フラッシュメモリダイの貫通電極Vの間は、はんだバンプ919によって接続される。この場合、各NAND型フラッシュメモリダイの表面においては、貫通電極Vは、その半導体基板の上方に設けられた配線層を介して、はんだバンプ919に接続されてもよい。また、隣接する2つのNAND型フラッシュメモリダイ間は接着層915を介して物理的に結合されてもよい。 On the surface of the support substrate 912, stacked NAND flash memory dies D0 to D7 are mounted. A through electrode V is embedded in each of the NAND flash memory dies D0 to D7. The through electrode V is an electrode that penetrates the semiconductor substrate within the corresponding NAND flash memory die. The through electrodes V of two adjacent NAND flash memory dies are connected by solder bumps 919 . In this case, on the surface of each NAND flash memory die, the through electrode V may be connected to the solder bump 919 via a wiring layer provided above the semiconductor substrate. Further, two adjacent NAND flash memory dies may be physically coupled via an adhesive layer 915.

支持基板912の裏面上には、インタフェースダイCeが実装されている。支持基板912には配線層923が形成されている。インタフェースダイCeは、複数のはんだバンプ918を介して配線層923に接続される。最下層のNAND型フラッシュメモリダイD0の各貫通電極Vは配線層923に接続される。これにより、インタフェースダイCeは、NAND型フラッシュメモリダイD0~D7と電気的に接続される。 An interface die Ce is mounted on the back surface of the support substrate 912. A wiring layer 923 is formed on the support substrate 912. Interface die Ce is connected to wiring layer 923 via a plurality of solder bumps 918. Each through electrode V of the lowest layer NAND flash memory die D0 is connected to the wiring layer 923. Thereby, the interface die Ce is electrically connected to the NAND flash memory dies D0 to D7.

支持基板912は複数のはんだバンプ917を介してパッケージ基板911に接続されている。インタフェースダイCeは、封止樹脂921で封止されている。NAND型フラッシュメモリダイD0~D7は、封止樹脂922で封止されている。封止樹脂921、922の外周は、封止樹脂920で封止されているとともに、封止樹脂922の上部は金属板913で封止されている。 Support substrate 912 is connected to package substrate 911 via a plurality of solder bumps 917. The interface die Ce is sealed with a sealing resin 921. The NAND flash memory dies D0 to D7 are sealed with a sealing resin 922. The outer circumferences of the sealing resins 921 and 922 are sealed with a sealing resin 920, and the upper part of the sealing resin 922 is sealed with a metal plate 913.

図10は、図6で説明した複数のNVMセットこれらNVMセットとして使用される1つ以上のフラッシュメモリパッケージとの関係を示す
図10では、NAND型フラッシュメモリ5内の多数のNAND型フラッシュメモリダイが2つのNVMセット130、131に分類されている場合が例示されている。NVMセット130、131は、図6で説明した分離されたNVMセット110、111にそれぞれ対応する。NVMセット130は、チャンネルCh0にそれぞれ接続されたNAND型フラッシュメモリダイD0~D7を含み、NVMセット131は、チャンネルCh1にそれぞれ接続されたNAND型フラッシュメモリダイD10~D17を含む。
FIG. 10 shows the relationship between the plurality of NVM sets described in FIG. 6 and one or more flash memory packages used as these NVM sets. A case is illustrated in which the NVM sets 130 and 131 are classified into two NVM sets 130 and 131. NVM sets 130 and 131 correspond to the separated NVM sets 110 and 111 described in FIG. 6, respectively. NVM set 130 includes NAND flash memory dies D0 to D7, each connected to channel Ch0, and NVM set 131 includes NAND flash memory dies D10 to D17, each connected to channel Ch1.

NVMセット130内のNAND型フラッシュメモリダイD0~D7は、単一のフラッシュメモリパッケージ910によって実現されている。フラッシュメモリパッケージ910においては、図8、図9で説明したように、NAND型フラッシュメモリダイD0~D7が積層されており、且つこれらNAND型フラッシュメモリダイD0~D7が多数の垂直ビア(各垂直ビアは貫通電極V及びはんだバンプ919を含む)によって相互接続されている。フラッシュメモリパッケージ910のパッケージ基板911の裏面に設けられた複数の外部I/O端子(はんだバンプ916)は、チャンネルCh0内の複数の信号線に接続されている。これら信号線は、8ビット幅のI/O信号線と、様々な制御信号(複数のチップイネーブル信号CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WE、リードイネーブル信号RE、複数のレディー/ビジー信号RB、等)のための複数の制御信号線を含み得る。NANDインタフェース13からチャンネルCh0を介して受信されるこれら信号は、インタフェースダイCeおよび多数の垂直ビアを介して、NAND型フラッシュメモリダイD0~D7に伝送される。 NAND flash memory dies D0 to D7 in the NVM set 130 are realized by a single flash memory package 910. In the flash memory package 910, as explained in FIGS. 8 and 9, NAND type flash memory dies D0 to D7 are stacked, and these NAND type flash memory dies D0 to D7 are connected to a large number of vertical vias (each vertical via). The vias are interconnected by vias (including through electrodes V and solder bumps 919). A plurality of external I/O terminals (solder bumps 916) provided on the back surface of the package substrate 911 of the flash memory package 910 are connected to a plurality of signal lines in the channel Ch0. These signal lines include an 8-bit wide I/O signal line and various control signals (multiple chip enable signals CE, command latch enable signal CLE, address latch enable signal ALE, write enable signal WE, read enable signal RE, It may include multiple control signal lines for multiple ready/busy signals RB, etc.). These signals received from the NAND interface 13 via channel Ch0 are transmitted to the NAND flash memory dies D0-D7 via the interface die Ce and a number of vertical vias.

同様に、NVMセット131内のNAND型フラッシュメモリダイD10~D17も、単一のフラッシュメモリパッケージ930によって実現されている。フラッシュメモリパッケージ930は、フラッシュメモリパッケージ910と同様の構造を有している。すなわち、フラッシュメモリパッケージ930においては、NAND型フラッシュメモリダイD10~D17が積層されており、且つこれらNAND型フラッシュメモリダイD10~D17が多数の垂直ビア(各垂直ビアは貫通電極V及びはんだバンプ939を含む)によって相互接続されている。フラッシュメモリパッケージ930のパッケージ基板931の裏面に設けられた複数の外部I/O端子(はんだバンプ936)は、チャンネルCh1内の複数の信号線に接続されている。これら信号線は、8ビット幅のI/O信号線と、様々な制御信号(複数のチップイネーブル信号CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WE、リードイネーブル信号RE、複数のレディー/ビジー信号RB、等)のための複数の制御信号線を含み得る。NANDインタフェース13からチャンネルCh1を介して受信されるこれら信号は、インタフェースダイCeおよび多数の垂直ビアを介して、NAND型フラッシュメモリダイD10~D17に伝送される。 Similarly, the NAND flash memory dies D10 to D17 in the NVM set 131 are also realized by a single flash memory package 930. Flash memory package 930 has a similar structure to flash memory package 910. That is, in the flash memory package 930, NAND type flash memory dies D10 to D17 are stacked, and these NAND type flash memory dies D10 to D17 have a large number of vertical vias (each vertical via is connected to a through electrode V and a solder bump 939). interconnected by A plurality of external I/O terminals (solder bumps 936) provided on the back surface of the package substrate 931 of the flash memory package 930 are connected to a plurality of signal lines in the channel Ch1. These signal lines include an 8-bit wide I/O signal line and various control signals (multiple chip enable signals CE, command latch enable signal CLE, address latch enable signal ALE, write enable signal WE, read enable signal RE, It may include multiple control signal lines for multiple ready/busy signals RB, etc.). These signals received from the NAND interface 13 via the channel Ch1 are transmitted to the NAND flash memory dies D10-D17 via the interface die Ce and a number of vertical vias.

コントローラ4は、NVMセット130に対応する領域(ネームスペース)を指定するホスト2からのI/Oコマンドに応じて、チャンネルCh0を介してNVMセット130に対するデータ書き込み/読み出し動作を実行する。また、コントローラ4は、NVMセット131に対応する領域(ネームスペース)を指定するホスト2からのI/Oコマンドに応じて、チャンネルCh1を介してNVMセット131に対するデータ書き込み/読み出し動作を実行する。 The controller 4 executes data write/read operations for the NVM set 130 via the channel Ch0 in response to an I/O command from the host 2 that specifies an area (name space) corresponding to the NVM set 130. Further, the controller 4 executes data write/read operations for the NVM set 131 via the channel Ch1 in response to an I/O command from the host 2 that specifies an area (name space) corresponding to the NVM set 131.

図10の構成においては、各NVMセットのピークI/O性能は、単一チャンネルの性能に制限されるものの、各チャンネルの性能は、ワイヤボンディングで複数のダイを接続する通常のメモリパッケージを使用した場合よりも向上される。したがって、図10の構成は、NVMセット130、131それぞれに対するライト/リード要求を同時に実行することを可能とし、且つ各NVMセットのピークI/O性能の低下を最小限に抑えることを可能とする。 In the configuration of Figure 10, the peak I/O performance of each NVM set is limited to the performance of a single channel, but the performance of each channel is limited using a typical memory package that connects multiple die with wire bonds. It will be better than if you did it. Therefore, the configuration of FIG. 10 makes it possible to simultaneously execute write/read requests for each of the NVM sets 130 and 131, and to minimize the decline in peak I/O performance of each NVM set. .

なお、図10では、各分離されたNVMセットに含まれる複数のNAND型フラッシュメモリダイを多数の垂直ビア(TSV)を使用したメモリパッケージによって実現する場合を例示したが、共有NVMセットに含まれる複数のNAND型フラッシュメモリダイも、多数の垂直ビア(TSV)を使用したメモリパッケージによって実現することができる。 Note that although FIG. 10 shows an example in which multiple NAND flash memory dies included in each separated NVM set are realized by a memory package using a large number of vertical vias (TSV), Multiple NAND flash memory dies can also be implemented with memory packages using multiple vertical vias (TSVs).

また、多数の垂直ビア(TSV)を使用した単一のメモリパッケージが2以上のチャンネルをサポートしている場合には、2以上のチャンネルに対応する2以上のNVMセットに含まれる複数のNAND型フラッシュメモリダイを、単一のメモリパッケージによって実現してもよい。 Additionally, if a single memory package using many vertical vias (TSV) supports two or more channels, multiple NAND types in two or more NVM sets corresponding to the two or more channels A flash memory die may be implemented with a single memory package.

次に、図11~図13を参照して、図2、3で説明したNVMセット60に対するガベージコレクション動作について具体的に説明する。 Next, with reference to FIGS. 11 to 13, the garbage collection operation for the NVM set 60 described in FIGS. 2 and 3 will be specifically described.

図11~図13では、図示を簡単にするために、NVMセット60が2つのNAND型フラッシュメモリダイ1~2を含み、各ダイが、ページP1~P4を含む2つのブロックを有する場合を想定する。 In FIGS. 11 to 13, for ease of illustration, it is assumed that the NVM set 60 includes two NAND flash memory dies 1 to 2, and each die has two blocks including pages P1 to P4. do.

図11に示すように、フリーブロックプール80内のフリーブロック(ここでは、フリーブロック#21)がGCインプットブロック200として割り当てられる。 As shown in FIG. 11, a free block in the free block pool 80 (here, free block #21) is allocated as a GC input block 200.

続いて、NVMサブセット90から有効データと無効データとが混在するブロック(ブロック#11)がコピー元ブロックとして選択され、この選択されたコピー元ブロック(ブロック#11)内の有効データのみがGCインプットブロック200(ブロック#21)にコピーされる。 Next, a block (block #11) in which valid data and invalid data are mixed is selected from the NVM subset 90 as a copy source block, and only valid data in this selected copy source block (block #11) is input to the GC. Copied to block 200 (block #21).

ブロック#11において、有効データd1、d3と無効データd2、d4とが混在している場合には、有効データd1およびデータd3のみがGCインプットブロック200(ブロック#21)にコピーされる。このとき、データd1はブロック#21のページP1にコピーされ、データd3はブロック#21のページP2にコピーされる。 In block #11, if valid data d1, d3 and invalid data d2, d4 coexist, only valid data d1 and data d3 are copied to GC input block 200 (block #21). At this time, data d1 is copied to page P1 of block #21, and data d3 is copied to page P2 of block #21.

ブロック#11の有効データ(データd1およびデータd3)がGCインプットブロック200(ブロック#21)にコピーされると、ブロック#11のデータd1およびデータd3は無効化される。これにより、ブロック#11は有効データを保持しないブロックとなったため、図12に示すように、ブロック#11はフリーブロックプール80に返却される。 When valid data (data d1 and data d3) of block #11 is copied to GC input block 200 (block #21), data d1 and data d3 of block #11 are invalidated. As a result, block #11 has become a block that does not hold valid data, so block #11 is returned to the free block pool 80 as shown in FIG.

NVMサブセット90には、有効データd5、d7と、無効データd6、d8とが混在するブロック#12が存在する。ブロック#12がコピー元ブロックとして選択されると、ブロック#12の有効データ(データd5およびデータd7)のみがGCインプットブロック200(ブロック#21)にコピーされる。このとき、データd5は、ブロック#21のページP3にコピーされ、データd7は、ブロック#21のページP4にコピーされる。 The NVM subset 90 includes a block #12 in which valid data d5, d7 and invalid data d6, d8 coexist. When block #12 is selected as a copy source block, only valid data (data d5 and data d7) of block #12 is copied to GC input block 200 (block #21). At this time, data d5 is copied to page P3 of block #21, and data d7 is copied to page P4 of block #21.

ブロック#12の有効データ(データd5およびデータd7)がGCインプットブロック200(ブロック#21)にコピーされると、ブロック#12のデータd5およびデータd7は無効化される。これにより、ブロック#12は有効データを保持しないブロックとなったため、図13に示すように、ブロック#12はフリーブロックプール80に返却される。また、データd5およびデータd7がGCインプットブロック200(ブロック#21)にコピーされると、ブロック#21は、有効データで満たされる。この場合、ブロック#21は、NVMサブセット90に移動される。 When valid data (data d5 and data d7) of block #12 is copied to GC input block 200 (block #21), data d5 and data d7 of block #12 are invalidated. As a result, block #12 has become a block that does not hold valid data, so block #12 is returned to the free block pool 80 as shown in FIG. Furthermore, when data d5 and data d7 are copied to GC input block 200 (block #21), block #21 is filled with valid data. In this case, block #21 is moved to NVM subset 90.

図14は、NVMセット間コピー動作を示す。ここでは、図2におけるNVMセット60がコピー元NVMセット、図2におけるNVMセット61がコピー先NVMセットであるとして説明する。ホスト2は、コピー元NVMセットとコピー先NVMセットとを指定することができる。コピー先NVMセットは、ホスト2によって現在利用されていないNVMセットであってよい。ホスト2によって現在利用されていないNVMセットをコピー先NVMセットとして使用することにより、NVMセット間コピー動作によってホットデータとコールドデータとがコピー先NVMセットに混在してしまうことを防止することができる。なお、現在利用されていないNVMセットが存在しない場合には、ホスト2は、新たなNVMセットの作成を要求するコマンドをSSD3に送出してもよい。 FIG. 14 shows the NVM set-to-set copy operation. Here, the explanation will be given assuming that the NVM set 60 in FIG. 2 is the copy source NVM set, and the NVM set 61 in FIG. 2 is the copy destination NVM set. The host 2 can specify a copy source NVM set and a copy destination NVM set. The copy destination NVM set may be an NVM set that is not currently used by the host 2. By using an NVM set that is not currently used by host 2 as the copy destination NVM set, it is possible to prevent hot data and cold data from being mixed in the copy destination NVM set due to the copy operation between NVM sets. . Note that if there is no NVM set that is currently not in use, the host 2 may send a command to the SSD 3 requesting the creation of a new NVM set.

NVMセット間コピー動作は以下の手順で実行される。 The inter-NVM set copy operation is executed in the following steps.

(1)ユーザインプットブロックの割り当て
コピー先NVMセット(NVMセット61)では、フリーブロックプール81内の1つのフリーブロックがユーザインプットブロック211として割り当てられる。
(1) Allocation of User Input Block In the copy destination NVM set (NVM set 61), one free block in the free block pool 81 is allocated as the user input block 211.

(2)ホスト書き込み
ホスト2からのライトデータがライトバッファ31からユーザインプットブロック211に書き込まれる。通常、ライトバッファ31には、コピー先NVMセットに対応するネームスペース102に関連付けられたライトデータが格納されるが、NVMセット間コピー動作が開始された後は、コピー元NVMセットに対応するネームスペース100または101に関連付けられたライトデータがライトバッファ31に格納される。そして、NVMサブセット90に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック211内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing Write data from the host 2 is written from the write buffer 31 to the user input block 211. Normally, write data associated with the name space 102 corresponding to the copy destination NVM set is stored in the write buffer 31, but after the copy operation between NVM sets is started, the write data associated with the name space 102 corresponding to the copy source NVM set is stored in the write buffer 31. Write data associated with space 100 or 101 is stored in write buffer 31. Then, the lookup table corresponding to the NVM subset 90 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 211 where this write data is written. mapped.

このように、NVMセット間コピー動作の前では、ネームスペース101またはネームスペース100に関連付けられたライトデータの書き込み先はコピー元NVMセット(NVMセット60)のユーザインプットブロック210であったが、NVMセット間コピー動作後には、ネームスペース101またはネームスペース100に関連付けられたライトデータの書き込み先は、コピー先NVMセット(NVMセット61)のユーザインプットブロック211となる。 In this way, before the NVM set-to-NVM set copy operation, the writing destination of the write data associated with the name space 101 or name space 100 was the user input block 210 of the copy source NVM set (NVM set 60); After the inter-set copy operation, the write data associated with the name space 101 or the name space 100 is written to the user input block 211 of the copy destination NVM set (NVM set 61).

(3)ユーザインプットブロックの移動
ユーザインプットブロック211がライトデータで満たされると、そのユーザインプットブロック211は、NVMサブセット(データブロックプール)91に移動される。つまり、データで満たされたユーザインプットブロック211はNVMサブセット(データブロックプール)91によって管理される。
(3) Movement of user input block When the user input block 211 is filled with write data, the user input block 211 is moved to the NVM subset (data block pool) 91. That is, the user input blocks 211 filled with data are managed by the NVM subset (data block pool) 91.

(4)GCインプットブロックの割り当て
コピー先NVMセット(NVMセット61)において、フリーブロックプール81内の1つのフリーブロックがGCインプットブロック201として割り当てられる。
(4) Allocation of GC input block In the copy destination NVM set (NVM set 61), one free block in the free block pool 81 is allocated as the GC input block 201.

(5)コピー元NVMセットからコピー先NVMセットへの有効データのコピー
コピー元NVMセット(NVMセット60)のNVMサブセット90内のブロックから、有効データを保持するブロックがコピー元ブロックとして選択される。そして、このコピー元ブロック内の有効データのみがコピー先NVMセット(NVMセット61)のGCインプットブロック(コピー先ブロック)201にコピーされる。この場合、まず、このコピー元ブロックからコピー対象の有効データが選択される。そして、この選択された有効データがこのコピー元ブロックから読み出され、そしてGCインプットブロック(コピー先ブロック)201に書き込まれる。
(5) Copying valid data from the copy source NVM set to the copy destination NVM set A block holding valid data is selected as the copy source block from the blocks in the NVM subset 90 of the copy source NVM set (NVM set 60). . Then, only the valid data in this copy source block is copied to the GC input block (copy destination block) 201 of the copy destination NVM set (NVM set 61). In this case, first, valid data to be copied is selected from this copy source block. The selected valid data is then read from the copy source block and written to the GC input block (copy destination block) 201.

有効データがGCインプットブロック201にコピーされると、NVMサブセット90に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック201内の物理記憶位置を示す物理アドレスがマッピングされる。 When valid data is copied to the GC input block 201, the lookup table corresponding to the NVM subset 90 is updated, thereby causing the valid data to be copied to the logical address (LBA) corresponding to the copied valid data. A physical address indicating a physical storage location within the GC input block 201 is mapped.

(6)GCインプットブロックの移動
コピー先NVMセット(NVMセット61)において、GCインプットブロック201がコピー元NVMセット(NVMセット60)のブロックからの有効データで満たされると、GCインプットブロック201はNVMサブセット91に移動される。つまり、有効データで満たされたGCインプットブロック201はNVMサブセット(データブロックプール)91によって管理される。
(6) Moving the GC input block When the GC input block 201 in the copy destination NVM set (NVM set 61) is filled with valid data from the block in the copy source NVM set (NVM set 60), the GC input block 201 moves to the NVM is moved to subset 91. That is, the GC input block 201 filled with valid data is managed by the NVM subset (data block pool) 91.

(7)ブロックの返却
コピー先NVMセット(NVMセット61)において、NVMサブセット91によって管理されており且つ有効データを保持しないブロックは、NVMサブセット91からフリーブロックプール81に返却される。例えば、NVMサブセット91内のあるブロックに保持されている全てのデータが、ユーザインプットブロック211への新たなライトデータの書き込みによって無効化されると、このブロックが、NVMサブセット91からフリーブロックプール81に返却される。
(7) Returning Blocks In the copy destination NVM set (NVM set 61), blocks that are managed by the NVM subset 91 and do not hold valid data are returned from the NVM subset 91 to the free block pool 81. For example, if all data held in a certain block in the NVM subset 91 is invalidated by writing new write data to the user input block 211, this block is transferred from the NVM subset 91 to the free block pool 81. will be returned to.

(7)’コピー元ブロックの返却
コピー元NVMセット(NVMセット60)において、コピー元ブロックの有効データがGCインプットブロック201にコピーされることによってこのコピー元ブロックに有効データが存在しなくなった場合、このコピー元ブロックは、NVMサブセット90からフリーブロックプール80に返却される。
(7) 'Return of copy source block In the copy source NVM set (NVM set 60), when the valid data of the copy source block is copied to the GC input block 201, so that no valid data exists in this copy source block. , this copy source block is returned from the NVM subset 90 to the free block pool 80.

このNVMセット間コピー動作により、例えば、コピー元NVMセットに格納されているデータ(ホットデータ)用の物理記憶スペースを、少ない書き換え回数(少ないプログラム/イレーズサイクルの数)を有するコピー先NVMセットに変更することができる。よって、NVMセット間の消耗度を均一化するウェアレベリングを実行することができる。 Through this NVM set-to-NVM set copy operation, for example, the physical storage space for data (hot data) stored in the copy source NVM set is transferred to the copy destination NVM set that has a lower number of rewrites (lower number of program/erase cycles). Can be changed. Therefore, wear leveling can be performed to equalize the degree of wear among NVM sets.

なお、コピー対象として選択された有効データが実際にGCインプットブロック201にコピーされる前に、この有効データのLBAxと同じLBAxを有するライトデータ(このLBAxに対応する新データ)がユーザインプットブロック211に書き込まれる場合がある。ライトデータ(このLBAxに対応する新データ)がユーザインプットブロック211に書き込まれると、NVMサブセット90に対応するルックアップテーブルが更新され、これによって、このライトデータに対応するLBAxに、このライトデータが書き込まれたユーザインプットブロック211内の物理記憶位置を示す物理アドレスがマッピングされる。 Note that before the valid data selected as a copy target is actually copied to the GC input block 201, write data (new data corresponding to this LBAx) having the same LBAx as this valid data is copied to the user input block 211. may be written to. When write data (new data corresponding to this LBAx) is written to the user input block 211, the lookup table corresponding to the NVM subset 90 is updated, so that this write data is written to the LBAx corresponding to this write data. A physical address indicating the physical storage location within the written user input block 211 is mapped.

この場合、選択された有効データはもはやホスト2によってリードされない古いデータとなる。したがって、もしコピー対象として選択された有効データが実際にGCインプットブロック201にコピーされる前に、この有効データのLBAxと同じLBAxを有するライトデータがユーザインプットブロック211に書き込まれたならば、この有効データのコピー動作は中止されてもよい。これにより、無駄なコピー動作が実行されることを防ぐことができる。 In this case, the selected valid data will be old data that is no longer read by the host 2. Therefore, if write data having the same LBAx as that of this valid data is written to the user input block 211 before the valid data selected as a copy target is actually copied to the GC input block 201, this The copy operation of valid data may be aborted. This can prevent unnecessary copy operations from being executed.

あるいは、有効データのコピー動作を中止する代わりに、選択された有効データのコピー動作自体は実行し且つNVMサブセット90に対応するルックアップテーブルを更新しないようにしてもよい。これにより、LBAxに対応する物理アドレスが、この有効データ(古いデータ)がコピーされた物理記憶位置を示す値に変更されてしまうことを防止することができる。より詳しくは、あるLBAに対応する有効データがGCインプットブロック201にコピーされる度に、ルックアップテーブルを参照することによってこのLBAに対応する物理アドレスがコピー元NVMセット(NVMセット60)またはコピー先NVMセット(NVMセット61)のいずれに対応する物理アドレスであるかが判定されてもよい。もしこの物理アドレスがコピー先NVMセット(NVMセット61)に対応する物理アドレスであるならば、このLBAに対応する新データがユーザインプットブロック211に書き込まれたと認識され、ルックアップテーブルの更新は実行されない。一方、この物理アドレスがコピー元NVMセット(NVMセット60)に対応する物理アドレスであるならば、コピーされた有効データがこのLBAに対応する最新のデータであると認識され、ルックアップテーブルが更新される。ルックアップテーブルの更新により、このLBAには、有効データがコピーされた物理記憶位置を示す物理アドレスがマッピングされる。 Alternatively, instead of canceling the valid data copy operation, the selected valid data copy operation itself may be performed and the lookup table corresponding to the NVM subset 90 may not be updated. This can prevent the physical address corresponding to LBAx from being changed to a value indicating the physical storage location to which this valid data (old data) has been copied. More specifically, each time valid data corresponding to a certain LBA is copied to the GC input block 201, the physical address corresponding to this LBA is determined from the copy source NVM set (NVM set 60) or the copy source by referring to the lookup table. It may be determined which of the previous NVM sets (NVM set 61) the physical address corresponds to. If this physical address corresponds to the copy destination NVM set (NVM set 61), it is recognized that new data corresponding to this LBA has been written to the user input block 211, and the lookup table update is executed. Not done. On the other hand, if this physical address corresponds to the copy source NVM set (NVM set 60), the copied valid data is recognized as the latest data corresponding to this LBA, and the lookup table is updated. be done. By updating the lookup table, this LBA is mapped to a physical address indicating the physical storage location where the valid data has been copied.

図15は、図14のNVMセット間コピー動作の前のアドレス変換テーブルの内容とNVMセット間コピー動作の後のアドレス変換テーブルの内容との関係を示す。
NVMセット間コピー動作が実行される前、NVMサブセット90に対応するLUT40は、コピー元NVMセット(NVMセット60)の物理アドレスのみを保持している。
FIG. 15 shows the relationship between the contents of the address translation table before the inter-NVM set copy operation in FIG. 14 and the contents of the address translation table after the inter-NVM set copy operation.
Before the inter-NVM set copy operation is performed, the LUT 40 corresponding to the NVM subset 90 holds only the physical address of the copy source NVM set (NVM set 60).

コピー元NVMセット(NVMセット60)からコピー先NVMセット(NVMセット61)へNVMセット間コピー動作が開始されると、LUT40の物理アドレスが順次更新されていく。例えば、LBA10に対応するデータd10がコピー元NVMセット(NVMセット60)からコピー先NVMセット(NVMセット61)のGCインプットブロック201にコピーされた場合、LUT40のLBA10に、データd10がコピーされたコピー先NVMセット(NVMセット61)内の物理記憶位置を示す物理アドレスがマッピングされる。よって、NVMセット間コピー動作が完了すると、LUT40は、NVMセット61の物理アドレスのみを保持するようになる。 When the inter-NVM set copy operation starts from the copy source NVM set (NVM set 60) to the copy destination NVM set (NVM set 61), the physical addresses of the LUT 40 are sequentially updated. For example, when data d10 corresponding to LBA10 is copied from the copy source NVM set (NVM set 60) to the GC input block 201 of the copy destination NVM set (NVM set 61), data d10 is copied to LBA10 of LUT40. A physical address indicating a physical storage location within the copy destination NVM set (NVM set 61) is mapped. Therefore, when the inter-NVM set copy operation is completed, the LUT 40 will hold only the physical address of the NVM set 61.

このように、GCと同様の仕組みを使用してNVMセット間コピー動作を実行することにより、コントローラ4は、コピー先NVMセット(NVMセット61)にコピーされたデータに対応するアドレス変換情報を作成するための特別な処理を行うこと無く、ホスト2から要求されるデータを、LUT40を参照することによってコピー先NVMセット(NVMセット61)から読み出すことができる。 In this way, by executing the copy operation between NVM sets using a mechanism similar to GC, the controller 4 creates address translation information corresponding to the data copied to the copy destination NVM set (NVM set 61). The data requested by the host 2 can be read from the copy destination NVM set (NVM set 61) by referring to the LUT 40 without performing any special processing.

次に、図16~図18を参照して、NVMセット間コピー動作について具体的に説明する。 Next, the inter-NVM set copy operation will be specifically described with reference to FIGS. 16 to 18.

図16~図18では、図示を簡単にするために、NVMセット60がNAND型フラッシュメモリダイ1~2を含み、NVMセット61がNAND型フラッシュメモリダイ3~4を含み、各ダイは、ページP1~P4を各々が含む2つのブロックを有する場合を想定する。また、NVMセット60からNVMセット61へ有効データがコピーされることを想定する。 In FIGS. 16 to 18, for ease of illustration, NVM set 60 includes NAND flash memory dies 1 to 2, NVM set 61 includes NAND flash memory dies 3 to 4, and each die has a page. Assume that there are two blocks each including P1 to P4. It is also assumed that valid data is copied from the NVM set 60 to the NVM set 61.

図16に示すように、コピー先NVMセット(NVMセット61)においてフリーブロックプール81内のフリーブロック(ここでは、ブロック#41)がGCインプットブロック201として割り当てられる。 As shown in FIG. 16, a free block (here, block #41) in the free block pool 81 is allocated as the GC input block 201 in the copy destination NVM set (NVM set 61).

続いて、コピー元NVMセット(NVMセット60)では、NVMサブセット90内のブロックから有効データを保持するブロックがコピー元ブロックとして選択され、この選択されたコピー元ブロック(ブロック#11)内の有効データのみがコピー先NVMセット(NVMセット61)のGCインプットブロック201(ブロック#41)にコピーされる。 Next, in the copy source NVM set (NVM set 60), a block holding valid data from the blocks in the NVM subset 90 is selected as a copy source block, and the valid data in this selected copy source block (block #11) is selected as a copy source block. Only data is copied to the GC input block 201 (block #41) of the copy destination NVM set (NVM set 61).

ブロック#11において、有効データd1、d3と無効データd2、d4とが混在している場合には、有効データd1およびデータd3のみがGCインプットブロック201(ブロック#41)にコピーされる。このとき、データd1はブロック#41のページP1にコピーされ、データd3はブロック#41のページP2にコピーされる。 In block #11, if valid data d1, d3 and invalid data d2, d4 coexist, only valid data d1 and data d3 are copied to GC input block 201 (block #41). At this time, data d1 is copied to page P1 of block #41, and data d3 is copied to page P2 of block #41.

ブロック#11の有効データ(データd1およびデータd3)がGCインプットブロック201(ブロック#41)にコピーされると、ブロック#11のデータd1およびデータd3は無効化される。これにより、ブロック#11は有効データを保持しないブロックとなったため、図17に示すように、ブロック#11はフリーブロックプール80に返却される。 When valid data (data d1 and data d3) of block #11 is copied to GC input block 201 (block #41), data d1 and data d3 of block #11 are invalidated. As a result, block #11 has become a block that does not hold valid data, so block #11 is returned to the free block pool 80 as shown in FIG.

NVMサブセット90には、有効データd5、d7と、無効データd6、d8とが混在するブロック#12が存在する。ブロック#12がコピー元ブロックとして選択されると、ブロック#12の有効データ(データd5およびデータd7)のみがGCインプットブロック201(ブロック#41)にコピーされる。このとき、データd5は、ブロック#41のページP3にコピーされ、データd7は、ブロック#41のページP4にコピーされる。 The NVM subset 90 includes a block #12 in which valid data d5, d7 and invalid data d6, d8 coexist. When block #12 is selected as a copy source block, only valid data (data d5 and data d7) of block #12 is copied to GC input block 201 (block #41). At this time, data d5 is copied to page P3 of block #41, and data d7 is copied to page P4 of block #41.

ブロック#12の有効データ(データd5およびデータd7)がGCインプットブロック201(ブロック#41)にコピーされると、ブロック#12のデータd5およびデータd7は無効化される。これにより、ブロック#12は有効データを保持しないブロックとなったため、図18に示すように、ブロック#12はフリーブロックプール80に返却される。また、データd5およびデータd7がGCインプットブロック201(ブロック#41)にコピーされると、ブロック#41は、有効データで満たされる。この場合、ブロック#41は、NVMサブセット91に移動される。 When valid data (data d5 and data d7) of block #12 is copied to GC input block 201 (block #41), data d5 and data d7 of block #12 are invalidated. As a result, block #12 has become a block that does not hold valid data, so block #12 is returned to the free block pool 80 as shown in FIG. Furthermore, when data d5 and data d7 are copied to GC input block 201 (block #41), block #41 is filled with valid data. In this case, block #41 is moved to NVM subset 91.

図19は、2つのNVMセット(NVMセット#1、NVMセット#2)間でデータを交換するNVMセット交換動作の概要を示す。 FIG. 19 shows an overview of an NVM set exchange operation for exchanging data between two NVM sets (NVM set #1, NVM set #2).

ここでは、NVMセット#1がNVMセット60であり、NVMセット#2がNVMセット61であることを想定する。また、NVMセット交換動作前において、NVMセット#1(NVMセット60)にデータA(高い更新頻度を有するデータ)が格納されており、NVMセット#2(NVMセット61)にデータB(低い更新頻度を有するデータ)が格納されていることを想定する。 Here, it is assumed that NVM set #1 is NVM set 60 and NVM set #2 is NVM set 61. Furthermore, before the NVM set exchange operation, data A (data with high update frequency) is stored in NVM set #1 (NVM set 60), and data B (data with low update frequency) is stored in NVM set #2 (NVM set 61). It is assumed that data with frequency) is stored.

この場合、NVMセット#1(NVMセット60)の書き換え回数(プログラム/イレーズサイクルの数)は、NVMセット#2(NVMセット61)の書き換え回数(プログラム/イレーズサイクルの数)よりも多くなる。ここで、NVMセットの書き換え回数(プログラム/イレーズサイクルの数)は、このNVMセットに所属する全ブロックのプログラム/イレーズサイクルの数の平均によって表されてもよいし、このNVMセットに所属する全ブロックのプログラム/イレーズサイクルの数の合計によって表されてもよい。 In this case, the number of rewrites (number of program/erase cycles) of NVM set #1 (NVM set 60) is greater than the number of rewrites (number of program/erase cycles) of NVM set #2 (NVM set 61). Here, the number of rewrites (number of program/erase cycles) of an NVM set may be expressed by the average number of program/erase cycles of all blocks belonging to this NVM set, or may be expressed by the average number of program/erase cycles of all blocks belonging to this NVM set. It may be expressed by the sum of the number of program/erase cycles for the block.

例えば、NVMセット#1(NVMセット60)は、100日の期間中に800回書き換えられるのに対し(プログラム/イレーズサイクルの数=800)、NVMセット#2(NVMセット61)は、同じ100日の期間中に100回しか書き換えられない(プログラム/イレーズサイクルの数=100回)。個々のブロックの書き換え回数の制限値が例えば1000回である場合、NVMセット#1において、200回(=1000回-800回)分の書き換え(プログラム/イレーズ動作)が実行されると、NVMセット#1の書き換え回数がこの制限値に達する。この場合、NVMセット#1内の各ブロックはもはや正常に機能できなくなる可能性が高い。 For example, NVM set #1 (NVM set 60) is rewritten 800 times in a period of 100 days (number of program/erase cycles = 800), whereas NVM set #2 (NVM set 61) is rewritten 800 times during a period of 100 days. It can only be rewritten 100 times during the day (number of program/erase cycles = 100 times). For example, if the limit value of the number of rewrites for each block is 1000 times, when rewrites (program/erase operations) for 200 times (=1000 times - 800 times) are executed in NVM set #1, the NVM set The number of times #1 is rewritten reaches this limit value. In this case, each block in NVM set #1 is likely to no longer be able to function properly.

本実施形態では、必要に応じて、NVMセット#1(NVMセット60)とNVMセット#2(NVMセット61)との間でデータを交換する動作を実行することができる。例えば、SSD3の使用開始から100日経過した時点で、NVMセット交換を要求するホスト2からのコマンドに応じて、NVMセット#1(NVMセット60)とNVMセット#2(NVMセット61)との間でデータが交換されてもよい。 In this embodiment, an operation of exchanging data between NVM set #1 (NVM set 60) and NVM set #2 (NVM set 61) can be performed as necessary. For example, when 100 days have passed since the start of use of the SSD 3, NVM set #1 (NVM set 60) and NVM set #2 (NVM set 61) are replaced in response to a command from host 2 requesting NVM set replacement. Data may be exchanged between them.

NVMセット交換動作では、NVMセット#1(NVMセット60)に格納されている有効データがNVMセット#2(NVMセット61)にコピーされる。そして、NVMセット#1(NVMセット60)に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたNVMセット#2(NVMセット61)内の物理記憶位置を示す物理アドレスがマッピングされる。 In the NVM set exchange operation, valid data stored in NVM set #1 (NVM set 60) is copied to NVM set #2 (NVM set 61). Then, the lookup table corresponding to NVM set #1 (NVM set 60) is updated, and as a result, the valid data is copied to the logical address (LBA) of NVM set #2 that corresponds to the copied valid data. A physical address indicating a physical storage location within (NVM set 61) is mapped.

また、NVMセット#2(NVMセット61)に格納されている有効データがNVMセット#1(NVMセット60)にコピーされる。そして、NVMセット#2(NVMセット61)に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたNVMセット#1(NVMセット60)内の物理記憶位置を示す物理アドレスがマッピングされる。 Furthermore, valid data stored in NVM set #2 (NVM set 61) is copied to NVM set #1 (NVM set 60). Then, the lookup table corresponding to NVM set #2 (NVM set 61) is updated, and as a result, the valid data is copied to the logical address (LBA) of NVM set #1 that corresponds to the copied valid data. A physical address indicating a physical storage location within (NVM set 60) is mapped.

NVMセット交換動作が完了すると、データA(高い更新頻度を有するデータ)用の物理記憶スペースはNVMセット#2(NVMセット61)に変更され、データB(低い更新頻度を有するデータ)用の物理記憶スペースはNVMセット#1(NVMセット60)に変更される。 Once the NVM set exchange operation is completed, the physical storage space for data A (data with a high update frequency) is changed to NVM set #2 (NVM set 61), and the physical storage space for data B (data with a low update frequency) is changed to NVM set #2 (NVM set 61). The storage space is changed to NVM set #1 (NVM set 60).

NVMセット交換動作の完了直後のNVMセット#2(NVMセット61)の書き換え回数は100回であり、データ交換の完了直後のNVMセット#2(NVMセット61)の書き換え回数は100回であり、NVMセット#1(NVMセット60)の書き換え回数は800回である。 The number of times that NVM set #2 (NVM set 61) is rewritten immediately after the completion of the NVM set exchange operation is 100 times, and the number of times that NVM set #2 (NVM set 61) is rewritten immediately after the completion of data exchange is 100 times. The number of rewrites of NVM set #1 (NVM set 60) is 800 times.

この後、データAが再び高い頻度で更新され、これによりNVMセット#2の書き換え回数は100日間に800回増加する。一方、データBも比較的低い頻度で更新され、これによってNVMセット#1の書き換え回数は100日間に100回増加する。この結果、初期状態から200日経過時(NVMセット交換から100日経過時)において、NVMセット#2(NVMセット61)の書き換え回数は900回、NVMセット#1(NVMセット60)の書き換え回数は900回となる。 After this, data A is updated at a high frequency again, and as a result, the number of rewrites of NVM set #2 increases by 800 times in 100 days. On the other hand, data B is also updated at a relatively low frequency, and as a result, the number of rewrites of NVM set #1 increases by 100 times in 100 days. As a result, after 200 days have passed since the initial state (100 days have passed since NVM set replacement), the number of rewrites for NVM set #2 (NVM set 61) is 900, and the number of rewrites for NVM set #1 (NVM set 60) will be 900 times.

このように、NVMセット交換動作を実行することで、NVMセット#1(NVMセット60)とNVMセット#2(NVMセット61)間で、それぞれに所属するブロックの書き換え回数を均一化することができる。このため、NVMセット間の消耗度を均一化することができる。 In this way, by executing the NVM set exchange operation, it is possible to equalize the number of rewrites of blocks belonging to each between NVM set #1 (NVM set 60) and NVM set #2 (NVM set 61). can. Therefore, it is possible to equalize the degree of wear among NVM sets.

図20は、NVMセット交換動作の前の2つのNVMセットのために実行される、ホスト書き込み/ガベージコレクション動作を示す。
NVMセット交換動作の実行前において、NVMセット#1(NVMセット60)と、NVMセット#2(NVMセット61)では、ホスト書き込み/ガベージコレクション動作が互いに独立して実行されている。詳しくは、図4で説明した通りである。
FIG. 20 shows host write/garbage collection operations performed for two NVM sets prior to the NVM set exchange operation.
Before the NVM set exchange operation is performed, host write/garbage collection operations are performed independently of each other in NVM set #1 (NVM set 60) and NVM set #2 (NVM set 61). The details are as explained in FIG. 4.

図21は、NVMセット交換動作のために2つのNVMセット間で実行されるホスト書き込み/ガベージコレクション動作を示す。
(1)ユーザインプットブロックの割り当て
NVMセット#1では、フリーブロックプール80内の1つのブロックがユーザインプットブロック210として割り当てられる。また、NVMセット#2では、フリーブロックプール81内の1つのブロックがユーザインプットブロック211として割り当てられる。
FIG. 21 illustrates host write/garbage collection operations performed between two NVM sets for an NVM set exchange operation.
(1) Allocation of User Input Block In NVM set #1, one block in the free block pool 80 is allocated as the user input block 210. Furthermore, in NVM set #2, one block in the free block pool 81 is allocated as the user input block 211.

(2)ホスト書き込み
ホスト2からのライトデータがライトバッファ30からユーザインプットブロック210に書き込まれる。通常、ライトバッファ30には、NVMセット#1(NVMセット60)に対応するネームスペース100またはネームスペース101に関連付けられたライトデータが格納されるが、NVMセット交換動作が開始された後は、NVMセット#2(NVMセット61)に対応するネームスペース102に関連付けられたライトデータがライトバッファ30に格納される。そして、NVMセット#2(NVMセット61)に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック210内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing Write data from the host 2 is written from the write buffer 30 to the user input block 210. Normally, write data associated with the name space 100 or name space 101 corresponding to NVM set #1 (NVM set 60) is stored in the write buffer 30, but after the NVM set exchange operation is started, Write data associated with the name space 102 corresponding to NVM set #2 (NVM set 61) is stored in the write buffer 30. Then, the lookup table corresponding to NVM set #2 (NVM set 61) is updated, and thereby the physical memory in the user input block 210 in which this write data is written to the logical address (LBA) corresponding to the write data. A physical address indicating the location is mapped.

このように、NVMセット交換動作の前では、ネームスペース102に関連付けられたライトデータの書き込み先はNVMセット#2(NVMセット61)のユーザインプットブロック211であったが、NVMセット交換動作が開始されると、ネームスペース102に関連付けられたライトデータの書き込み先は、NVMセット#1(NVMセット60)のユーザインプットブロック210に変更される。 In this way, before the NVM set exchange operation, the write data associated with the namespace 102 was written to the user input block 211 of NVM set #2 (NVM set 61), but the NVM set exchange operation started. Then, the writing destination of the write data associated with the name space 102 is changed to the user input block 210 of NVM set #1 (NVM set 60).

また、ホスト2からのライトデータがライトバッファ31からユーザインプットブロック211に書き込まれる。通常、ライトバッファ31には、NVMセット#2(NVMセット61)に対応するネームスペース102に関連付けられたライトデータが格納されるが、NVMセット交換動作が開始された後は、NVMセット#1(NVMセット60)に対応するネームスペース100または101に関連付けられたライトデータがライトバッファ31に格納される。そして、NVMセット#1(NVMセット60)に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック211内の物理記憶位置を示す物理アドレスがマッピングされる。 Further, write data from the host 2 is written from the write buffer 31 to the user input block 211. Normally, write data associated with the name space 102 corresponding to NVM set #2 (NVM set 61) is stored in the write buffer 31, but after the NVM set exchange operation is started, write data associated with the name space 102 corresponding to NVM set #2 (NVM set 61) is stored in the write buffer 31. Write data associated with the namespace 100 or 101 corresponding to (NVM set 60) is stored in the write buffer 31. Then, the lookup table corresponding to NVM set #1 (NVM set 60) is updated, and the physical memory in the user input block 211 in which this write data has been written is thereby updated to the logical address (LBA) corresponding to the write data. A physical address indicating the location is mapped.

このように、NVMセット交換動作の前では、ネームスペース101またはネームスペース100に関連付けられたライトデータの書き込み先はNVMセット#1(NVMセット60)のユーザインプットブロック210であったが、NVMセット交換動作が開始されると、ネームスペース101またはネームスペース100に関連付けられたライトデータの書き込み先は、NVMセット#2(NVMセット61)のユーザインプットブロック211に変更される。 In this way, before the NVM set exchange operation, the write data associated with namespace 101 or namespace 100 was written to the user input block 210 of NVM set #1 (NVM set 60), but When the exchange operation is started, the writing destination of the write data associated with the name space 101 or name space 100 is changed to the user input block 211 of NVM set #2 (NVM set 61).

(3)ユーザインプットブロックの移動
ユーザインプットブロック210がライトデータで満たされると、そのユーザインプットブロック210は、NVMサブセット(データブロックプール)90に移動される。つまり、データで満たされたユーザインプットブロック210はNVMサブセット(データブロックプール)90によって管理される。
(3) Movement of User Input Block When the user input block 210 is filled with write data, the user input block 210 is moved to the NVM subset (data block pool) 90. That is, the user input blocks 210 filled with data are managed by the NVM subset (data block pool) 90.

また、ユーザインプットブロック211がライトデータで満たされると、そのユーザインプットブロック211は、NVMサブセット(データブロックプール)91に移動される。つまり、データで満たされたユーザインプットブロック211はNVMサブセット(データブロックプール)91によって管理される。 Further, when the user input block 211 is filled with write data, the user input block 211 is moved to the NVM subset (data block pool) 91. That is, the user input blocks 211 filled with data are managed by the NVM subset (data block pool) 91.

(4)GCインプットブロックの割り当て
NVMセット#1(NVMセット60)において、フリーブロックプール80内の1つのフリーブロックがGCインプットブロック200として割り当てられる。
(4) Allocation of GC input block In NVM set #1 (NVM set 60), one free block in free block pool 80 is allocated as GC input block 200.

また、NVMセット(NVMセット61)において、フリーブロックプール81内の1つのフリーブロックがGCインプットブロック201として割り当てられる。 Furthermore, in the NVM set (NVM set 61), one free block in the free block pool 81 is allocated as the GC input block 201.

(5)有効データの交換
コピー元NVMセット(NVMセット60)のNVMサブセット90内のブロックから、有効データを保持するブロックがコピー元ブロックとして選択される。そして、このコピー元ブロック内の有効データのみが、NVMセット#2(NVMセット61)のGCインプットブロック201にコピーされる。そして、NVMサブセット90に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック201内の物理記憶位置を示す物理アドレスがマッピングされる。
(5) Exchange of valid data A block holding valid data is selected as a copy source block from the blocks in the NVM subset 90 of the copy source NVM set (NVM set 60). Then, only the valid data in this copy source block is copied to the GC input block 201 of NVM set #2 (NVM set 61). The lookup table corresponding to the NVM subset 90 is then updated, thereby assigning the logical address (LBA) corresponding to the copied valid data to the physical storage location in the GC input block 201 where this valid data was copied. The indicated physical address is mapped.

NVMセット#2(NVMセット61)のNVMサブセット91内のブロックから、有効データを保持するブロックがコピー元ブロックとして選択される。そして、このコピー元ブロック内の有効データのみが、NVMセット#1(NVMセット60)のGCインプットブロック200にコピーされる。そして、NVMサブセット91に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック200内の物理記憶位置を示す物理アドレスがマッピングされる。 A block holding valid data is selected as a copy source block from the blocks in NVM subset 91 of NVM set #2 (NVM set 61). Then, only the valid data in this copy source block is copied to the GC input block 200 of NVM set #1 (NVM set 60). The lookup table corresponding to the NVM subset 91 is then updated, thereby assigning the physical storage location in the GC input block 200 to which the valid data was copied to the logical address (LBA) corresponding to the copied valid data. The indicated physical address is mapped.

(6)GCインプットブロックの移動
NVMセット#1(NVMセット60)において、GCインプットブロック200がNVMセット#2(NVMセット61)の1以上のブロックからの有効データで満たされると、GCインプットブロック200はNVMサブセット90に移動される。つまり、有効データで満たされたGCインプットブロック200はNVMサブセット(データブロックプール)90によって管理される。
(6) GC input block movement In NVM set #1 (NVM set 60), when the GC input block 200 is filled with valid data from one or more blocks of NVM set #2 (NVM set 61), the GC input block 200 is moved to NVM subset 90. That is, the GC input block 200 filled with valid data is managed by the NVM subset (data block pool) 90.

また、NVMセット#2(NVMセット61)において、GCインプットブロック201がNVMセット#1(NVMセット60)の1以上のブロックからの有効データで満たされると、GCインプットブロック201はNVMサブセット91に移動される。つまり、有効データで満たされたGCインプットブロック201はNVMサブセット(データブロックプール)91によって管理される。 Also, in NVM set #2 (NVM set 61), when the GC input block 201 is filled with valid data from one or more blocks of NVM set #1 (NVM set 60), the GC input block 201 is transferred to the NVM subset 91. will be moved. That is, the GC input block 201 filled with valid data is managed by the NVM subset (data block pool) 91.

(7)コピー元ブロックの返却
NVMセット#1(NVMセット60)において、NVMサブセット90によって管理されており且つ有効データを保持しないブロックは、NVMサブセット90からフリーブロックプール80に返却される。例えば、NVMサブセット90内のあるブロックによって保持されている全てのデータが、ユーザインプットブロック210への新たなライトデータの書き込みによって無効化されると、このブロックが、NVMサブセット90からフリーブロックプール80に返却される。
(7) Return of copy source blocks In NVM set #1 (NVM set 60), blocks that are managed by NVM subset 90 and do not hold valid data are returned from NVM subset 90 to free block pool 80. For example, if all data held by a block in NVM subset 90 is invalidated by writing new write data to user input block 210, then this block is transferred from NVM subset 90 to free block pool 80. will be returned to.

NVMセット#2(NVMセット61)において、NVMサブセット91によって管理されており且つ有効データを保持しないブロックは、NVMサブセット91からフリーブロックプール81に返却される。例えば、NVMサブセット91内のあるブロックによって保持されている全てのデータが、ユーザインプットブロック211への新たなライトデータの書き込みによって無効化されると、このブロックが、NVMサブセット91からフリーブロックプール81に返却される。 In NVM set #2 (NVM set 61), blocks that are managed by NVM subset 91 and do not hold valid data are returned from NVM subset 91 to free block pool 81. For example, if all data held by a block in NVM subset 91 is invalidated by writing new write data to user input block 211, then this block is transferred from NVM subset 91 to free block pool 81. will be returned to.

図22は、新NVMセット作成動作の概要を示す。
いま、NAND型フラッシュメモリダイ600~606、610~616、620~626、…640~646を含むNVMセット160が利用されている場合を想定する。このNVMセット160には、フリーブロックプール180が存在する。フリーブロックプール180は、NVMサブセット190BおよびNVMサブセット190Cによって共有されている。さらに、NVMサブセット190Bに対応してライトバッファ130Bが設けられ、NVMサブセット190Cに対応してライトバッファ130Cが設けられている。
FIG. 22 shows an overview of the new NVM set creation operation.
Now, assume that an NVM set 160 including NAND flash memory dies 600-606, 610-616, 620-626, . . . 640-646 is being used. In this NVM set 160, a free block pool 180 exists. Free block pool 180 is shared by NVM subset 190B and NVM subset 190C. Furthermore, a write buffer 130B is provided corresponding to the NVM subset 190B, and a write buffer 130C is provided corresponding to the NVM subset 190C.

コントローラ4は、図22の下部に示すように、NVMセット160から新たなNVMセット161を作成することができる。この場合、まず、NVMセット160に含まれる複数のNAND型フラッシュメモリダイの中から新たなNVMセット161用に確保すべきNAND型フラッシュメモリダイが決定される。図22の例では、NVMセット161用のNAND型フラッシュメモリダイとしてNAND型フラッシュメモリダイ600,610,620,…640が決定されている。これらNAND型フラッシュメモリダイ600,610,620,…640内の有効データは、NVMセット160内の残りのNAND型フラッシュメモリダイに属するブロック群にコピーされる。 The controller 4 can create a new NVM set 161 from the NVM set 160, as shown at the bottom of FIG. In this case, first, a NAND flash memory die to be reserved for the new NVM set 161 is determined from among the plurality of NAND flash memory dies included in the NVM set 160. In the example of FIG. 22, NAND flash memory dies 600, 610, 620, . . . , 640 are determined as NAND flash memory dies for the NVM set 161. Valid data in these NAND flash memory dies 600, 610, 620, . . . 640 is copied to blocks belonging to the remaining NAND flash memory dies in the NVM set 160.

これにより、NVMセット161用のフリーブロックプール181、NVMサブセット190A、ライトバッファ130Aが作成される。NAND型フラッシュメモリダイ600,610,620,…640内のフリーブロックそれぞれは、NVMセット161用のフリーブロックプール181によって管理される。元のNVMセット160は縮小されたNVMセットとなる。フリーブロックプール180は、NAND型フラッシュメモリダイ600,610,620,…640を除く残りのダイに属するフリーブロック群のみを管理する。 As a result, a free block pool 181, an NVM subset 190A, and a write buffer 130A for the NVM set 161 are created. Each free block in the NAND flash memory die 600, 610, 620, . . . 640 is managed by a free block pool 181 for the NVM set 161. The original NVM set 160 becomes the reduced NVM set. The free block pool 180 manages only free block groups belonging to the remaining dies excluding the NAND flash memory dies 600, 610, 620, . . . 640.

図23は、新NVMセット作成のために実行されるホスト書き込み/ガベージコレクション動作を示す。ここでは、2つのNVMサブセットを含む元のNVMセット160から新たなNVMセット161を作成する場合を想定する。 FIG. 23 illustrates host write/garbage collection operations performed for new NVM set creation. Here, it is assumed that a new NVM set 161 is created from an original NVM set 160 that includes two NVM subsets.

(1)ユーザインプットブロックの割り当て
元のNVMセット160に対応するフリーブロックプール180内の1つのフリーブロックがNVMサブセット190Bに対応するユーザインプットブロック410として割り当てられる。また、フリーブロックプール180内の1つのフリーブロックがNVMサブセット190Cに対応するユーザインプットブロック411として割り当てられる。なお、ユーザインプットブロック410,411がすでに割り当てられていれば、この動作は実行されない。
(1) User Input Block Allocation One free block in the free block pool 180 corresponding to the original NVM set 160 is allocated as the user input block 410 corresponding to the NVM subset 190B. Also, one free block in free block pool 180 is allocated as user input block 411 corresponding to NVM subset 190C. Note that this operation is not performed if the user input blocks 410 and 411 have already been allocated.

(2)ホスト書き込み
ホスト2からのライトデータがライトバッファ130Bからユーザインプットブロック410に書き込まれる。そして、NVMサブセット190Bに対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック410内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing Write data from the host 2 is written from the write buffer 130B to the user input block 410. Then, the lookup table corresponding to NVM subset 190B is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in user input block 410 where this write data is written. mapped.

また、ホスト2からのライトデータがライトバッファ130Cからユーザインプットブロック411に書き込まれる。そして、NVMサブセット190Cに対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック411内の物理記憶位置を示す物理アドレスがマッピングされる。 Further, write data from the host 2 is written from the write buffer 130C to the user input block 411. Then, the lookup table corresponding to the NVM subset 190C is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 411 where this write data is written. mapped.

(3)ユーザインプットブロックの移動
ユーザインプットブロック410がライトデータで満たされると、そのユーザインプットブロック410は、NVMサブセット(データブロックプール)190Bに移動される。つまり、データで満たされたユーザインプットブロック410はNVMサブセット(データブロックプール)190Bによって管理される。
(3) Movement of user input block When the user input block 410 is filled with write data, the user input block 410 is moved to the NVM subset (data block pool) 190B. That is, user input blocks 410 filled with data are managed by NVM subset (data block pool) 190B.

また、ユーザインプットブロック411がライトデータで満たされると、そのユーザインプットブロック411は、NVMサブセット(データブロックプール)190Cに移動される。つまり、データで満たされたユーザインプットブロック411はNVMサブセット(データブロックプール)190Cによって管理される。 Further, when the user input block 411 is filled with write data, the user input block 411 is moved to the NVM subset (data block pool) 190C. That is, user input blocks 411 filled with data are managed by NVM subset (data block pool) 190C.

(4)GCインプットブロックの割り当て
元のNVMセット(NVMセット160)において、フリーブロックプール180内のフリーブロックから1つのブロックがNVMサブセット190Bに対応するGCインプットブロック400として割り当てられる。また、フリーブロックプール180内のフリーブロックから1つのブロックがNVMサブセット190Cに対応するGCインプットブロック401として割り当てられる。
(4) Allocation of GC input block In the original NVM set (NVM set 160), one block from the free blocks in the free block pool 180 is allocated as the GC input block 400 corresponding to the NVM subset 190B. Furthermore, one block from the free blocks in the free block pool 180 is allocated as the GC input block 401 corresponding to the NVM subset 190C.

(5)有効データのコピー
NVMサブセット190B(またはNVMサブセット190C)内のブロックから、有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択され、コピー元ブロック内の有効データのみがGCインプットブロック400(またはGCインプットブロック401)にコピーされる。そして、NVMサブセット190B(またはNVMサブセット190C)に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック400(またはGCインプットブロック401)内の物理記憶位置を示す物理アドレスがマッピングされる。
(5) Copying valid data One or more blocks in which valid data and invalid data are mixed are selected as a copy source block from the blocks in the NVM subset 190B (or NVM subset 190C), and the valid data in the copy source block is only is copied to GC input block 400 (or GC input block 401). The lookup table corresponding to NVM subset 190B (or NVM subset 190C) is then updated, thereby causing the GC input block 400 to which the valid data has been copied to the logical address (LBA) corresponding to the copied valid data. A physical address indicating a physical storage location within (or GC input block 401) is mapped.

(6)GCインプットブロックの移動
GCインプットブロック400(またはGCインプットブロック401)が有効データで満たされると、GCインプットブロック400(またはGCインプットブロック401)はNVMサブセット190B(またはNVMサブセット190C)に移動される。つまり、有効データで満たされたGCインプットブロックは対応するNVMサブセット(データブロックプール)によって管理される。
(6) Movement of GC input block When GC input block 400 (or GC input block 401) is filled with valid data, GC input block 400 (or GC input block 401) moves to NVM subset 190B (or NVM subset 190C). be done. That is, GC input blocks filled with valid data are managed by the corresponding NVM subset (data block pool).

(7)、(7)’ブロックの返却
NVMサブセット190B(またはNVMサブセット190C)によって管理されており且つ有効データを保持しないブロックは、フリーブロックに返却される。この場合、新たなNVMセット161に割り当てるべきダイ集合に属さないブロックは、NVMサブセット190B(またはNVMサブセット190C)からフリーブロックプール180に返却される。一方、新たなNVMセット161に割り当てるべきダイ集合に属さないブロックは、NVMサブセット190B(またはNVMサブセット190C)から新NVMセットのフリーブロックプール181に返却される。
(7), (7)'Returning blocks Blocks that are managed by the NVM subset 190B (or NVM subset 190C) and do not hold valid data are returned to free blocks. In this case, blocks that do not belong to the die set to be allocated to the new NVM set 161 are returned to the free block pool 180 from the NVM subset 190B (or NVM subset 190C). On the other hand, blocks that do not belong to the die set to be allocated to the new NVM set 161 are returned from the NVM subset 190B (or NVM subset 190C) to the free block pool 181 of the new NVM set.

なお、上述の説明では、元のNVMセット160全体に対するGCを行う場合を説明したが、新たなNVMセット161に割り当てるべきダイ集合に属するブロックから有効データを保持するブロックを優先的にコピー元ブロックとして選択し、このコピー元ブロック内の有効データのみをGCインプットブロック(コピー先ブロック)にコピーしてもよい。これにより、新たなNVMセット161を短時間で作成することが可能となる。 In addition, in the above description, a case where GC is performed for the entire original NVM set 160 has been described, but from blocks that belong to the die set to be allocated to the new NVM set 161, blocks holding valid data are prioritized as copy source blocks. , and only valid data in this copy source block may be copied to the GC input block (copy destination block). This makes it possible to create a new NVM set 161 in a short time.

次に、図24~図26を用いて新NVMセット作成動作を具体的に説明する。図24~図26では、図示を簡単にするために、NVMセット330(NVMセットA)が、NAND型フラッシュメモリダイ1~4を含み、各ダイが、ページP1~P4を各々が含む2つのブロックを有する場合を想定する。 Next, the new NVM set creation operation will be specifically explained using FIGS. 24 to 26. In FIGS. 24-26, for ease of illustration, NVM set 330 (NVM set A) includes NAND flash memory dies 1-4, and each die has two NAND flash memory dies 1-4 each containing pages P1-P4. Assume a case with blocks.

まず、NVMセットAに所属するNAND型フラッシュメモリダイ1~4から、新たなNVMセットB用に確保すべきNAND型フラッシュメモリダイ1~2が決定される。 First, from the NAND flash memory dies 1 to 4 belonging to NVM set A, NAND flash memory dies 1 to 2 to be reserved for the new NVM set B are determined.

次に、図24に示すように、NVMセットAのフリーブロックプール300内のブロック(ここでは、ブロック#41)がGCインプットブロック320として割り当てられる。また、NVMセットB用に確保されたNAND型フラッシュメモリダイ1~2のブロックから有効データを保持するブロック(ここでは、ブロック#11)がコピー元ブロックとして選択され、この選択されたコピー元ブロック(ブロック#11)内の有効データがGCインプットブロック320(ブロック#41)にコピーされる。 Next, as shown in FIG. 24, a block in the free block pool 300 of NVM set A (here, block #41) is allocated as a GC input block 320. Also, a block (block #11 in this case) that holds valid data from the blocks of NAND flash memory die 1 and 2 reserved for NVM set B is selected as a copy source block, and this selected copy source block Valid data in (block #11) is copied to GC input block 320 (block #41).

ブロック#11において、有効データd1、d3と無効データd2、d4とが混在している場合には、有効データd1およびデータd3のみがGCインプットブロック320(ブロック#41)にコピーされる。このとき、データd1はブロック#41のページP1にコピーされ、データd3はブロック#41のページP2にコピーされる。 In block #11, if valid data d1, d3 and invalid data d2, d4 coexist, only valid data d1 and data d3 are copied to GC input block 320 (block #41). At this time, data d1 is copied to page P1 of block #41, and data d3 is copied to page P2 of block #41.

ブロック#11の有効データ(データd1およびデータd3)がGCインプットブロック320(ブロック#41)にコピーされると、ブロック#11のデータd1およびデータd3は無効化される。これにより、ブロック#11は有効データを保持しないブロックとなったため、図25に示すように、ブロック#11は、NVMセットB(新たなNVMセット)用に新たに作成されるフリーブロックプール301に返却される。 When valid data (data d1 and data d3) of block #11 is copied to GC input block 320 (block #41), data d1 and data d3 of block #11 are invalidated. As a result, block #11 has become a block that does not hold valid data, so as shown in FIG. will be returned.

NVMセットB用に確保されたNAND型フラッシュメモリダイの中に、有効データd5、d7と、無効データd6、d8とが混在するブロック#12が存在する。ブロック#12がコピー元ブロックとして選択されると、ブロック#12の有効データ(データd5およびデータd7)のみがGCインプットブロック320(ブロック#41)にコピーされる。このとき、データd5は、ブロック#21のページP3にコピーされ、データd7は、ブロック#41のページP4にコピーされる。 In the NAND flash memory die reserved for NVM set B, there is a block #12 in which valid data d5, d7 and invalid data d6, d8 coexist. When block #12 is selected as a copy source block, only valid data (data d5 and data d7) of block #12 is copied to GC input block 320 (block #41). At this time, data d5 is copied to page P3 of block #21, and data d7 is copied to page P4 of block #41.

ブロック#12の有効データ(データd5およびデータd7)がGCインプットブロック320(ブロック#41)にコピーされると、ブロック#12のデータd5およびデータd7は無効化される。これにより、ブロック#12は有効データを保持しないブロックとなったため、図26に示すように、ブロック#12はNVMセットB(新たなNVMセット)フリーブロックプール301に返却される。 When valid data (data d5 and data d7) of block #12 is copied to GC input block 320 (block #41), data d5 and data d7 of block #12 are invalidated. As a result, block #12 has become a block that does not hold valid data, so block #12 is returned to NVM set B (new NVM set) free block pool 301, as shown in FIG.

図27は、NVMセット結合動作の概要を示す。
図27には、NVMセット#1(NVMセット163)およびNVMセット#2(NVMセット164)をNVMセット#3(NVMセット165)に結合する動作が示されている。
FIG. 27 shows an overview of NVM set join operations.
FIG. 27 shows the operation of combining NVM set #1 (NVM set 163) and NVM set #2 (NVM set 164) into NVM set #3 (NVM set 165).

NVMセット#1(NVMセット163)は、NAND型フラッシュメモリダイ600,610,620,…640を含む。NVMセット#2(NVMセット164)は、NAND型フラッシュメモリダイ601,611,621,…641を含む。NVMセット#3(NVMセット165)は、NAND型フラッシュメモリダイ602~606、612~616、622~626、…642~646を含む。 NVM set #1 (NVM set 163) includes NAND flash memory dies 600, 610, 620, . . . 640. NVM set #2 (NVM set 164) includes NAND flash memory dies 601, 611, 621, . . . 641. NVM set #3 (NVM set 165) includes NAND flash memory dies 602-606, 612-616, 622-626, . . . 642-646.

NVMセット#1(NVMセット163)およびNVMセット#2(NVMセット164)がNVMセット#3(NVMセット165)と結合された場合、NVMセット#1(NVMセット163)に対応するフリーブロックプール183、およびNVMセット#2(NVMセット164)に対応するフリーブロックプール184もNVMセット#1(NVMセット165)に対応するフリーブロックプール185と結合される。また、NVMセット#1(NVMセット163)のNVMサブセット190A、およびNVMセット#2(NVMセット164)のNVMサブセット190BもNVMセット#3(NVMセット165)のNVMサブセット190Cと結合される。 When NVM set #1 (NVM set 163) and NVM set #2 (NVM set 164) are combined with NVM set #3 (NVM set 165), the free block pool corresponding to NVM set #1 (NVM set 163) 183, and free block pool 184 corresponding to NVM set #2 (NVM set 164) is also combined with free block pool 185 corresponding to NVM set #1 (NVM set 165). NVM subset 190A of NVM set #1 (NVM set 163) and NVM subset 190B of NVM set #2 (NVM set 164) are also combined with NVM subset 190C of NVM set #3 (NVM set 165).

図28は、NVMセット結合のために実行されるホスト書き込み/ガベージコレクション動作を示す。
NVMセット結合動作が実行される前において、NVMセット#1~#3では、互いに独立してライトデータの書き込み動作およびガベージコレクション動作が実行される。
FIG. 28 illustrates host write/garbage collection operations performed for NVM set binding.
Before the NVM set combination operation is performed, write data write operations and garbage collection operations are performed independently of each other in NVM sets #1 to #3.

(1)ユーザインプットブロックの割り当て
フリーブロックプール183内の1つのフリーブロックがユーザインプットブロック413として割り当てられる。また、フリーブロックプール184内の1つのフリーブロックがユーザインプットブロック414として割り当てられる。さらにフリーブロックプール185内の1つのフリーブロックがユーザインプットブロック415として割り当てられる。なお、ユーザインプットブロック413,414,415がすでに割り当てられていれば、この動作は実行されない。
(1) Allocation of User Input Block One free block in the free block pool 183 is allocated as the user input block 413. Additionally, one free block within free block pool 184 is assigned as user input block 414 . Additionally, one free block within free block pool 185 is assigned as user input block 415 . Note that this operation is not performed if the user input blocks 413, 414, and 415 have already been allocated.

(2)ホスト書き込み
NVMセット#1(NVMセット163)において、ホスト2からのライトデータがライトバッファ130Aからユーザインプットブロック413に書き込まれる。ライトバッファ130AにはNVMサブセット190Aに対応付けられたライトデータが一時的に格納されている。そして、NVMセット163に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック413内の物理記憶位置を示す物理アドレスがマッピングされる。
(2) Host writing In NVM set #1 (NVM set 163), write data from host 2 is written from write buffer 130A to user input block 413. Write data associated with the NVM subset 190A is temporarily stored in the write buffer 130A. Then, the lookup table corresponding to the NVM set 163 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 413 where this write data is written. mapped.

また、NVMセット#2(NVMセット164)において、ホスト2からのライトデータがライトバッファ130Bからユーザインプットブロック414に書き込まれる。ライトバッファ130BにはNVMサブセット190Bに対応付けられたライトデータが一時的に格納されている。そして、NVMセット164に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック414内の物理記憶位置を示す物理アドレスがマッピングされる。 Further, in NVM set #2 (NVM set 164), write data from the host 2 is written from the write buffer 130B to the user input block 414. Write data associated with the NVM subset 190B is temporarily stored in the write buffer 130B. Then, the lookup table corresponding to the NVM set 164 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 414 where this write data is written. mapped.

さらに、NVMセット#3(NVMセット165)において、ホスト2からのライトデータがライトバッファ130Cからユーザインプットブロック415に書き込まれる。ライトバッファ130CにはNVMサブセット190Cに対応付けられたライトデータが一時的に格納されている。そして、NVMセット165に対応するルックアップテーブルが更新され、これによってライトデータに対応する論理アドレス(LBA)に、このライトデータが書き込まれたユーザインプットブロック415内の物理記憶位置を示す物理アドレスがマッピングされる。 Furthermore, in NVM set #3 (NVM set 165), write data from host 2 is written from write buffer 130C to user input block 415. Write data associated with the NVM subset 190C is temporarily stored in the write buffer 130C. Then, the lookup table corresponding to the NVM set 165 is updated, so that the logical address (LBA) corresponding to the write data is set to the physical address indicating the physical storage location in the user input block 415 where this write data is written. mapped.

(3)ユーザインプットブロックの移動
NVMセット#3において、ユーザインプットブロック415がライトデータで満たされると、そのユーザインプットブロック415は、NVMサブセット(データブロックプール)190Cに移動される。つまり、データで満たされたユーザインプットブロック415はNVMサブセット(データブロックプール)190Cによって管理される。
(3) Movement of user input block When the user input block 415 is filled with write data in NVM set #3, the user input block 415 is moved to the NVM subset (data block pool) 190C. That is, user input blocks 415 filled with data are managed by NVM subset (data block pool) 190C.

NVMセット結合動作が実行される前は、NVMセット#1において、ユーザインプットブロック413がライトデータで満たされると、そのユーザインプットブロック413は、NVMサブセット(データブロックプール)190Aに移動され、NVMセット#2において、ユーザインプットブロック414がライトデータで満たされると、そのユーザインプットブロック414は、NVMサブセット(データブロックプール)190Bに移動される。しかし、NVMセット結合動作が実行された後は、(3)の替りに(3)’で示す動作が実行される。 Before the NVM set join operation is performed, when the user input block 413 is filled with write data in NVM set #1, the user input block 413 is moved to the NVM subset (data block pool) 190A and the user input block 413 is moved to the NVM set At #2, once the user input block 414 is filled with write data, the user input block 414 is moved to the NVM subset (data block pool) 190B. However, after the NVM set combination operation is executed, the operation shown in (3)' is executed instead of (3).

(3)’結合先NVMセットへのユーザインプットブロックの移動
NVMセット#1内のユーザインプットブロック413がライトデータで満たされると、そのユーザインプットブロック413は、NVMセット#3のNVMサブセット190Cに移動される。つまり、データで満たされたユーザインプットブロック413はNVMサブセット(データブロックプール)190Cによって管理される。
(3) 'Moving the user input block to the destination NVM set When the user input block 413 in NVM set #1 is filled with write data, the user input block 413 is moved to the NVM subset 190C of NVM set #3. be done. That is, user input blocks 413 filled with data are managed by NVM subset (data block pool) 190C.

また、NVMセット#2内のユーザインプットブロック414がライトデータで満たされると、そのユーザインプットブロック414は、NVMセット#3のNVMサブセット190Cに移動される。つまり、データで満たされたユーザインプットブロック414はNVMサブセット(データブロックプール)190Cによって管理される。 Additionally, when the user input block 414 in NVM set #2 is filled with write data, that user input block 414 is moved to NVM subset 190C in NVM set #3. That is, user input blocks 414 filled with data are managed by NVM subset (data block pool) 190C.

(4)GCインプットブロックの割り当て
NVMサブセット(データブロックプール)190Aにおいてガベージコレクションの実行が必要になった場合、他のNVMセットとは独立して、NVMサブセット190A内のブロック群のためのガベージコレクション動作が実行される。例えば、NVMサブセット190Aに含まれているブロック数が、NVMサブセット190Aに対応するある閾値X1よりも多い場合に、ガベージコレクション動作が必要と判断されてもよい。閾値X1は、NVMサブセット190A用に割り当て可能なブロックの総数に基づいて決定されてもよい。例えば、NVMサブセット190A用に割り当て可能なブロックの総数から所定数を引いた残りの値が、NVMサブセット190Aに対応するある閾値X1として利用されてもよい。
(4) Allocation of GC input blocks When it becomes necessary to perform garbage collection in the NVM subset (data block pool) 190A, garbage collection for blocks in the NVM subset 190A is performed independently of other NVM sets. Action is performed. For example, if the number of blocks included in NVM subset 190A is greater than a certain threshold value X1 corresponding to NVM subset 190A, it may be determined that a garbage collection operation is necessary. Threshold X1 may be determined based on the total number of blocks that can be allocated for NVM subset 190A. For example, a value remaining after subtracting a predetermined number from the total number of blocks that can be allocated for NVM subset 190A may be used as a certain threshold value X1 corresponding to NVM subset 190A.

NVMサブセット190Aにおいてガベージコレクション動作が必要になった場合、フリーブロックプール183内の1つのフリーブロックがGCインプットブロック403として割り当てられる。 When a garbage collection operation is required in NVM subset 190A, one free block in free block pool 183 is assigned as GC input block 403.

また、NVMサブセット(データブロックプール)190Bにおいてガベージコレクションの実行が必要になった場合、他のNVMセットとは独立して、NVMサブセット190B内のブロック群のためのガベージコレクション動作が実行される。例えば、NVMサブセット190Bに含まれているブロック数が、NVMサブセット190Bに対応するある閾値X1よりも多い場合に、ガベージコレクション動作が必要と判断されてもよい。閾値X1は、NVMサブセット190B用に割り当て可能なブロックの総数に基づいて決定されてもよい。例えば、NVMサブセット190B用に割り当て可能なブロックの総数から所定数を引いた残りの値が、NVMサブセット190Bに対応するある閾値X1として利用されてもよい。 Furthermore, when it becomes necessary to perform garbage collection in NVM subset (data block pool) 190B, garbage collection operations are performed for the blocks in NVM subset 190B independently of other NVM sets. For example, if the number of blocks included in NVM subset 190B is greater than a certain threshold value X1 corresponding to NVM subset 190B, it may be determined that a garbage collection operation is necessary. Threshold X1 may be determined based on the total number of blocks that can be allocated for NVM subset 190B. For example, a value remaining after subtracting a predetermined number from the total number of blocks that can be allocated for NVM subset 190B may be used as a certain threshold value X1 corresponding to NVM subset 190B.

NVMサブセット190Bにおいてガベージコレクション動作が必要になった場合、フリーブロックプール184内の1つのフリーブロックがGCインプットブロック404として割り当てられる。 When a garbage collection operation is required in NVM subset 190B, one free block in free block pool 184 is assigned as GC input block 404.

NVMサブセット(データブロックプール)190Cにおいてガベージコレクションの実行が必要になった場合、他のNVMセットとは独立して、NVMサブセット190C内のブロック群のためのガベージコレクション動作が実行される。例えば、NVMサブセット190Cに含まれているブロック数が、NVMサブセット190Cに対応するある閾値X1よりも多い場合に、ガベージコレクション動作が必要と判断されてもよい。閾値X1は、NVMサブセット190C用に割り当て可能なブロックの総数に基づいて決定されてもよい。例えば、NVMサブセット190C用に割り当て可能なブロックの総数から所定数を引いた残りの値が、NVMサブセット190Cに対応するある閾値X1として利用されてもよい。 When garbage collection needs to be performed in NVM subset (data block pool) 190C, garbage collection operations are performed for the blocks in NVM subset 190C independently of other NVM sets. For example, if the number of blocks included in NVM subset 190C is greater than a certain threshold value X1 corresponding to NVM subset 190C, it may be determined that a garbage collection operation is necessary. Threshold X1 may be determined based on the total number of blocks that can be allocated for NVM subset 190C. For example, a value remaining after subtracting a predetermined number from the total number of blocks that can be allocated for the NVM subset 190C may be used as a certain threshold value X1 corresponding to the NVM subset 190C.

NVMサブセット190Cにおいてガベージコレクション動作が必要になった場合、フリーブロックプール185内の1つのフリーブロックがGCインプットブロック405として割り当てられる。 When a garbage collection operation is required in NVM subset 190C, one free block in free block pool 185 is assigned as GC input block 405.

(5)有効データのコピー
NVMサブセット190A内のブロックの中から有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択される。その選択されたブロックの有効データのみがGCインプットブロック403にコピーされる。そして、NVMセット163に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック403内の物理記憶位置を示す物理アドレスがマッピングされる。
(5) Copying Valid Data One or more blocks containing a mixture of valid data and invalid data are selected as copy source blocks from among the blocks in the NVM subset 190A. Only the valid data of the selected block is copied to the GC input block 403. The lookup table corresponding to the NVM set 163 is then updated, thereby assigning the physical storage location in the GC input block 403 to which the valid data was copied to the logical address (LBA) corresponding to the copied valid data. The indicated physical address is mapped.

また、NVMサブセット190B内のブロックの中から有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択される。その選択されたブロックの有効データのみがGCインプットブロック404にコピーされる。そして、NVMセット164に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック404内の物理記憶位置を示す物理アドレスがマッピングされる。 Furthermore, one or more blocks containing a mixture of valid data and invalid data are selected as copy source blocks from among the blocks in the NVM subset 190B. Only valid data of the selected block is copied to the GC input block 404. The lookup table corresponding to NVM set 164 is then updated, thereby assigning the logical address (LBA) corresponding to the copied valid data to the physical storage location within GC input block 404 where this valid data was copied. The indicated physical address is mapped.

さらに、NVMサブセット190C内のブロックの中から有効データと無効データとが混在する一つ以上のブロックがコピー元ブロックとして選択される。その選択されたブロックの有効データのみがGCインプットブロック405にコピーされる。そして、NVMセット165に対応するルックアップテーブルが更新され、これによって、コピーされた有効データに対応する論理アドレス(LBA)に、この有効データがコピーされたGCインプットブロック405内の物理記憶位置を示す物理アドレスがマッピングされる。 Furthermore, one or more blocks in which valid data and invalid data coexist are selected from among the blocks in the NVM subset 190C as copy source blocks. Only the valid data of the selected block is copied to the GC input block 405. The lookup table corresponding to NVM set 165 is then updated, thereby assigning the logical address (LBA) corresponding to the copied valid data to the physical storage location in GC input block 405 where this valid data was copied. The indicated physical address is mapped.

(6)GCインプットブロックの移動
NVMセット#3において、GCインプットブロック405が有効データで満たされると、GCインプットブロック403はNVMサブセット190Cに移動される。つまり、有効データで満たされたGCインプットブロック405はNVMサブセット(データブロックプール)190Cによって管理される。
(6) Movement of GC input block In NVM set #3, when GC input block 405 is filled with valid data, GC input block 403 is moved to NVM subset 190C. That is, the GC input block 405 filled with valid data is managed by the NVM subset (data block pool) 190C.

NVMセット結合動作が実行される前は、NVMセット#1において、GCインプットブロック403が有効データで満たされると、GCインプットブロック403はNVMサブセット190Aに移動され、NVMセット#2において、GCインプットブロック404が有効データで満たされると、GCインプットブロック404はNVMサブセット190Bに移動される。しかし、NVMセット結合動作が実行された後は、(6)の替りに(6)’で示す動作が実行される。 Before the NVM set join operation is performed, in NVM set #1, when GC input block 403 is filled with valid data, GC input block 403 is moved to NVM subset 190A; in NVM set #2, GC input block 403 is moved to NVM subset 190A; Once 404 is filled with valid data, GC input block 404 is moved to NVM subset 190B. However, after the NVM set combination operation is executed, the operation shown in (6)' is executed instead of (6).

(6)’結合先NVMセットへのGCインプットブロックの移動
NVMセット#1内のGCインプットブロック403が有効データで満たされると、GCインプットブロック403はNVMセット#3内のNVMサブセット190Cに移動される。有効データで満たされたユーザインプットブロック403はNVMサブセット(データブロックプール)190Cによって管理される。
(6) 'Moving the GC input block to the destination NVM set When the GC input block 403 in NVM set #1 is filled with valid data, the GC input block 403 is moved to the NVM subset 190C in NVM set #3. Ru. User input blocks 403 filled with valid data are managed by NVM subset (data block pool) 190C.

また、NVMセット#2内のGCインプットブロック404が有効データで満たされると、GCインプットブロック404はNVMセット#3内のNVMサブセット190Cに移動される。有効データで満たされたユーザインプットブロック403はNVMサブセット(データブロックプール)190Cによって管理される。 Additionally, once the GC input block 404 in NVM set #2 is filled with valid data, the GC input block 404 is moved to NVM subset 190C in NVM set #3. User input blocks 403 filled with valid data are managed by NVM subset (data block pool) 190C.

(7)ブロックの返却
NVMセット#3において、NVMサブセット190Cによって管理されており且つ有効データを保持しないブロックは、NVMサブセット190Cからフリーブロックプール185に返却される。有効データを保持しないブロックは、ホスト書き込みによってその全てのデータが無効化されたブロック、またはガベージコレクション動作によってその全ての有効データがコピー先ブロックにコピーされたブロックである。
(7) Return of blocks In NVM set #3, blocks that are managed by the NVM subset 190C and do not hold valid data are returned from the NVM subset 190C to the free block pool 185. A block that does not hold valid data is a block that has had all its data invalidated by a host write, or a block that has had all its valid data copied to a destination block by a garbage collection operation.

NVMセット結合動作が実行される前は、NVMセット#1において、NVMサブセット190Aによって管理されており且つ有効データを保持しないブロックは、NVMサブセット190Aからフリーブロックプール183に返却され、NVMサブセット190Bによって管理されており且つ有効データを保持しないブロックは、NVMサブセット190Bからフリーブロックプール184に返却される。しかし、NVMセット結合動作が実行された後は、(7)の替りに(7)’で示す動作が実行される。 Before the NVM set join operation is performed, in NVM set #1, blocks that are managed by NVM subset 190A and do not hold valid data are returned from NVM subset 190A to free block pool 183 and are returned to free block pool 183 by NVM subset 190B. Blocks that are managed and do not hold valid data are returned from NVM subset 190B to free block pool 184. However, after the NVM set combination operation is executed, the operation shown in (7)' is executed instead of (7).

(7)’結合先NVMセットへのNVMサブセットのブロックの移動
NVMサブセット190AのブロックがNVMセット#3のNVMサブセット190Cに移動される。つまり、NVMサブセット190AのブロックはNVMサブセット(データブロックプール)190Cによって管理される。
(7) 'Moving blocks of NVM subset to destination NVM set Blocks of NVM subset 190A are moved to NVM subset 190C of NVM set #3. That is, the blocks of NVM subset 190A are managed by NVM subset (data block pool) 190C.

また、NVMサブセット190BのブロックがNVMセット#3のNVMサブセット190Cに移動される。つまり、NVMサブセット190BのブロックはNVMサブセット(データブロックプール)190Cによって管理される。 Also, the block in NVM subset 190B is moved to NVM subset 190C in NVM set #3. That is, the blocks of NVM subset 190B are managed by NVM subset (data block pool) 190C.

(8)結合先NVMセットへのフリーブロックの移動
NVMセット#1のフリーブロックプール183内のフリーブロックがNVMセット#3のフリーブロックプール185に移動される。また、NVMセット#2のフリーブロックプール184内のフリーブロックがNVMセット#3のフリーブロックプール185に移動される。
(8) Movement of free blocks to combination destination NVM set Free blocks in free block pool 183 of NVM set #1 are moved to free block pool 185 of NVM set #3. Additionally, free blocks in the free block pool 184 of NVM set #2 are moved to the free block pool 185 of NVM set #3.

図29および図30のフローチャートは、コントローラ4によって実行されるデータ書き込み/読み出し動作の手順を示す。 The flowcharts in FIGS. 29 and 30 show the procedure of data write/read operations performed by the controller 4.

ホスト2からのコマンドが受信されると(ステップS101のYES)、NVMセット制御部21は、受信されたコマンドに含まれるネームスペースIDをチェックする(ステップS102)。受信されたコマンドによってNVMセット#1に対応する領域が指定されたならば(ステップS103のYES)、NVMセット制御部21は、NVMセット#1をアクセス対象に決定する(ステップS104)。例えば、NVMセット#1にNSID1のネームスペースが対応しているケースでは、受信されたコマンドがNSID1を含むならば、NVMセット#1に対応する領域が指定されたと判定されてもよい。 When a command from the host 2 is received (YES in step S101), the NVM set control unit 21 checks the namespace ID included in the received command (step S102). If the area corresponding to NVM set #1 is specified by the received command (YES in step S103), the NVM set control unit 21 determines NVM set #1 to be accessed (step S104). For example, in a case where the namespace of NSID1 corresponds to NVM set #1, if the received command includes NSID1, it may be determined that the area corresponding to NVM set #1 has been specified.

受信されたコマンドがライトコマンドであったならば(ステップS105のYES)、NVMセット制御部21は、新規ユーザインプットブロックの割り当てが必要か否かを判定する(ステップS106)。新規ユーザインプットブロックの割り当てが必要であるならば(ステップS106のYES)、NVMセット制御部21は、NVMセット#1のフリーブロックプール内のフリーブロックをユーザインプットブロックとして割り当て(ステップS107)、割り当てられたユーザインプットブロックにライトデータを書き込む(ステップS108)。新規ユーザインプットブロックの割り当てが不要であるならば(ステップS106のNO)、NVMセット制御部21は、すでに割り当てられているユーザインプットブロックにライトデータを書き込む(ステップS108)。 If the received command is a write command (YES in step S105), the NVM set control unit 21 determines whether it is necessary to allocate a new user input block (step S106). If it is necessary to allocate a new user input block (YES in step S106), the NVM set control unit 21 allocates a free block in the free block pool of NVM set #1 as a user input block (step S107), and The write data is written to the user input block (step S108). If it is not necessary to allocate a new user input block (NO in step S106), the NVM set control unit 21 writes write data to the already allocated user input block (step S108).

ユーザインプットブロックにライトデータが書き込まれた場合、NVMセット制御部21は、NVMセット#1に対応するLUTを更新する(ステップS109)。そして、NVMセット制御部21は、ライト完了のレスポンスをホスト2へ返す(ステップS110)。 When write data is written to the user input block, the NVM set control unit 21 updates the LUT corresponding to NVM set #1 (step S109). Then, the NVM set control unit 21 returns a write completion response to the host 2 (step S110).

受信されたコマンドがリードコマンドであったならば(ステップS105のNO、ステップS111のYES)、NVMセット制御部21はNVMセット#1に対応するLUTを参照して(ステップS112)、リードコマンド内の開始LBAに対応する物理アドレスを得る。NVMセット制御部21は、この物理アドレスに基づいて、リードコマンドによって指定されたデータを、NVMセット#1に所属するNVMサブセットのブロックから読み出す(ステップS113)。そして、NVMセット制御部21は、読み出したデータおよびリード完了のレスポンスをホスト2に返す(ステップS114)。 If the received command is a read command (NO in step S105, YES in step S111), the NVM set control unit 21 refers to the LUT corresponding to NVM set #1 (step S112), and reads the information in the read command. Obtain the physical address corresponding to the starting LBA of. Based on this physical address, the NVM set control unit 21 reads the data specified by the read command from the block of the NVM subset belonging to NVM set #1 (step S113). Then, the NVM set control unit 21 returns the read data and a read completion response to the host 2 (step S114).

受信されたコマンドによってNVMセット#1に対応する領域が指定されなかったならば(ステップS103のNO)、NVMセット制御部21は、受信されたコマンドによってNVMセット#2に対応する領域が指定されたか否かを判定する(ステップS115)。受信されたコマンドによってNVMセット#2に対応する領域が指定されたならば(ステップS115のYES)、NVMセット制御部21は、NVMセット#2をアクセス対象に決定する(ステップS116)。例えば、NVMセット#2にNSID2のネームスペースが対応しているケースでは、受信されたコマンドがNSID2を含むならば、NVMセット#2に対応する領域が指定されたと判定されてもよい。 If the area corresponding to NVM set #1 is not specified by the received command (NO in step S103), the NVM set control unit 21 determines that the area corresponding to NVM set #2 is specified by the received command. It is determined whether or not (step S115). If the area corresponding to NVM set #2 is specified by the received command (YES in step S115), the NVM set control unit 21 determines NVM set #2 to be accessed (step S116). For example, in a case where the namespace of NSID2 corresponds to NVM set #2, if the received command includes NSID2, it may be determined that the area corresponding to NVM set #2 has been specified.

受信されたコマンドがライトコマンドであったならば(ステップS117のYES)、NVMセット制御部21は、新規ユーザインプットブロックの割り当てが必要か否かを判定する(ステップS118)。新規ユーザインプットブロックの割り当てが必要であるならば(ステップS118のYES)、NVMセット制御部21は、NVMセット#2のフリーブロックプール内のフリーブロックをユーザインプットブロックとして割り当て(ステップS119)、割り当てられたユーザインプットブロックにライトデータを書き込む(ステップS120)。新規ユーザインプットブロックの割り当てが不要であるならば(ステップS118のNO)、NVMセット制御部21は、すでに割り当てられているユーザインプットブロックにライトデータを書き込む(ステップS120)。 If the received command is a write command (YES in step S117), the NVM set control unit 21 determines whether it is necessary to allocate a new user input block (step S118). If it is necessary to allocate a new user input block (YES in step S118), the NVM set control unit 21 allocates a free block in the free block pool of NVM set #2 as a user input block (step S119), and The write data is written to the user input block that was created (step S120). If it is not necessary to allocate a new user input block (NO in step S118), the NVM set control unit 21 writes write data to the already allocated user input block (step S120).

ユーザインプットブロックにライトデータが書き込まれた場合、NVMセット制御部21は、NVMセット#2に対応するLUTを更新する(ステップS121)。そして、NVMセット制御部21は、ライト完了のレスポンスをホスト2へ返す(ステップS122)。 When write data is written to the user input block, the NVM set control unit 21 updates the LUT corresponding to NVM set #2 (step S121). Then, the NVM set control unit 21 returns a write completion response to the host 2 (step S122).

受信されたコマンドがリードコマンドであったならば(ステップS117のNO、ステップS123のYES)、NVMセット制御部21はNVMセット#2に対応するLUTを参照して(ステップS124)、リードコマンド内の開始LBAに対応する物理アドレスを得る。NVMセット制御部21は、この物理アドレスに基づいて、リードコマンドによって指定されたデータを、NVMセット#2に所属するNVMサブセットのブロックから読み出す(ステップS125)。そして、NVMセット制御部21は、読み出したデータおよびリード完了レスポンスをホスト2に返す(ステップS126)。 If the received command is a read command (NO in step S117, YES in step S123), the NVM set control unit 21 refers to the LUT corresponding to NVM set #2 (step S124), and reads the information in the read command. Obtain the physical address corresponding to the starting LBA of. Based on this physical address, the NVM set control unit 21 reads the data specified by the read command from the block of the NVM subset belonging to NVM set #2 (step S125). Then, the NVM set control unit 21 returns the read data and a read completion response to the host 2 (step S126).

図31のフローチャートは、GC動作制御部22によってあるNVMセットに所属するNVMサブセット毎に実行されるガベージコレクション動作の手順を示す。 The flowchart in FIG. 31 shows the procedure of the garbage collection operation executed by the GC operation control unit 22 for each NVM subset belonging to a certain NVM set.

GC動作制御部22は、NVMセット#1に所属するNVMサブセット#1に含まれているブロック数がNVMサブセット#1に対応する閾値X1に達したか否かを判定する(ステップS201)。NVMセット#1に所属するNVMサブセット#1に含まれているブロック数が閾値X1に達したならば(ステップS201のYES)、GC動作制御部22は、NVMサブセット#1のGCを開始する。 The GC operation control unit 22 determines whether the number of blocks included in NVM subset #1 belonging to NVM set #1 has reached the threshold value X1 corresponding to NVM subset #1 (step S201). If the number of blocks included in NVM subset #1 belonging to NVM set #1 reaches the threshold value X1 (YES in step S201), the GC operation control unit 22 starts GC of NVM subset #1.

GC動作制御部22は、まず、NVMセット#1のフリーブロックプール内のフリーブロックをコピー先ブロックとして割り当てる(ステップS202)。そして、GC動作制御部22は、NVMサブセット#1のブロックから、有効データと無効データとが混在するブロックをコピー元ブロックとして選択する(ステップS203)。 The GC operation control unit 22 first allocates a free block in the free block pool of NVM set #1 as a copy destination block (step S202). Then, the GC operation control unit 22 selects a block containing a mixture of valid data and invalid data from the blocks of NVM subset #1 as a copy source block (step S203).

次に、GC動作制御部22は、選択されたブロック(コピー元ブロック)の有効データのみをコピー先ブロックにコピーする(ステップS204)。そして、GC動作制御部22は、NVMサブセット#1に対応するLUTを更新する(ステップS205)。その後、GC動作制御部22は、無効データのみになったブロック(コピー元ブロック)をNVMセット#1のフリーブロックプールに返却する(ステップS206)。 Next, the GC operation control unit 22 copies only the valid data of the selected block (copy source block) to the copy destination block (step S204). Then, the GC operation control unit 22 updates the LUT corresponding to NVM subset #1 (step S205). After that, the GC operation control unit 22 returns the block containing only invalid data (copy source block) to the free block pool of NVM set #1 (step S206).

続いて、GC動作制御部22は、NVMサブセット#1に含まれるブロック数がNVMサブセット#1に対応する閾値X2(<X1)以下まで低下したか否か判定する(ステップS207)。NVMサブセット#1に含まれるブロック数が閾値X2(<X1)以下まで低下したならば(ステップS207のYES)、GC動作制御部22はガベージコレクション動作を終了する。NVMサブセット#1に含まれるブロック数が閾値X2(<X1)以下まで低下していなければ(ステップS207のNO)、GC動作制御部22はガベージコレクション動作を続行する(ステップS202~S206)。 Subsequently, the GC operation control unit 22 determines whether the number of blocks included in NVM subset #1 has decreased to a threshold value X2 (<X1) or less corresponding to NVM subset #1 (step S207). If the number of blocks included in NVM subset #1 falls below the threshold value X2 (<X1) (YES in step S207), the GC operation control unit 22 ends the garbage collection operation. If the number of blocks included in NVM subset #1 has not decreased to below the threshold value X2 (<X1) (NO in step S207), the GC operation control unit 22 continues the garbage collection operation (steps S202 to S206).

図32のフローチャートは、NVMセット間コピー制御部23によって実行されるNVMセット間コピー動作の手順を示す。 The flowchart in FIG. 32 shows the procedure of the inter-NVM set copy operation executed by the inter-NVM set copy control unit 23.

コピー元NVMセットとコピー先NVMセットとを指定するパラメータを含むホスト2からのNVMセット間コピーコマンドが受信されると(ステップS301のYES)、NVMセット間コピー制御部23はコピー先NVMセットのフリーブロックプール内のフリーブロックをコピー先ブロックとして割り当てる(ステップS302)。そして、NVMセット間コピー制御部23はコピー元NVMセットに属するブロックから有効データを有するブロックをコピー元ブロックとして選択する(ステップS303)。 When an inter-NVM set copy command including a parameter specifying a copy source NVM set and a copy destination NVM set is received from the host 2 (YES at step S301), the inter-NVM set copy control unit 23 specifies the copy destination NVM set. A free block in the free block pool is allocated as a copy destination block (step S302). Then, the inter-NVM set copy control unit 23 selects a block having valid data from the blocks belonging to the copy source NVM set as a copy source block (step S303).

次に、NVMセット間コピー制御部23は、コピー元ブロックからコピー先ブロックに有効データをコピーする(ステップS304)。有効データのコピーが行われると、NVMセット間コピー制御部23は、コピー元NVMセットのNVMサブセットに対応するLUTを更新する(ステップS305)。 Next, the NVM inter-set copy control unit 23 copies valid data from the copy source block to the copy destination block (step S304). When the effective data is copied, the inter-NVM set copy control unit 23 updates the LUT corresponding to the NVM subset of the copy source NVM set (step S305).

続いて、NVMセット間コピー制御部23は、有効データを持たなくなったコピー元ブロックをコピー元NVMセットのフリーブロックプールに返却する(ステップS306)。 Subsequently, the inter-NVM set copy control unit 23 returns the copy source block that no longer has valid data to the free block pool of the copy source NVM set (step S306).

NVMセット間コピー制御部23は、コピー元NVMセットに有効データを有するブロックが存在しなくなるまで、ステップS302~S306の処理を繰り返す(ステップS307)。 The inter-NVM set copy control unit 23 repeats the processes of steps S302 to S306 until there is no block with valid data in the copy source NVM set (step S307).

図33のフローチャートは、NVMセット間コピー制御部23によって実行されるNVMセット間コピー動作の別の手順を示す。ここでは、NVMセット間コピー動作中におけるホスト書き込み動作を許可する場合が想定されている。 The flowchart in FIG. 33 shows another procedure of the inter-NVM set copy operation executed by the inter-NVM set copy control unit 23. Here, it is assumed that the host write operation is permitted during the NVM set-to-NVM set copy operation.

コピー元NVMセットとコピー先NVMセットとを指定するパラメータを含むホスト2からのNVMセット間コピーコマンドが受信されると(ステップS401のYES)、NVMセット間コピー制御部23は、コピー先NVMセットのフリーブロックプール内のフリーブロックをコピー先ブロックとして割り当てる(ステップS402)。そして、NVMセット間コピー制御部23はコピー元NVMセットに属するブロックから有効データを有するブロックをコピー元ブロックとして選択する(ステップS403)。 When an inter-NVM set copy command including a parameter specifying a copy source NVM set and a copy destination NVM set is received from the host 2 (YES in step S401), the inter-NVM set copy control unit 23 selects the copy destination NVM set. A free block in the free block pool is allocated as a copy destination block (step S402). Then, the inter-NVM set copy control unit 23 selects a block having valid data from the blocks belonging to the copy source NVM set as a copy source block (step S403).

次に、NVMセット間コピー制御部23は、コピー元ブロックからコピー先ブロックに有効データをコピーする(ステップS404)。有効データのコピーが行われると、NVMセット間コピー制御部23は、コピー元NVMセットのNVMサブセットに対応するLUTを更新する(ステップS405)。 Next, the NVM inter-set copy control unit 23 copies valid data from the copy source block to the copy destination block (step S404). When the effective data is copied, the inter-NVM set copy control unit 23 updates the LUT corresponding to the NVM subset of the copy source NVM set (step S405).

続いて、NVMセット間コピー制御部23は、有効データを持たなくなったコピー元ブロックをコピー元NVMセットのフリーブロックプールに返却する(ステップS406)。 Subsequently, the inter-NVM set copy control unit 23 returns the copy source block that no longer has valid data to the free block pool of the copy source NVM set (step S406).

次に、NVMセット間コピー制御部23は、コピー元NVMセットに有効データを有するブロックが存在しないか否かを判定する(ステップS407)。コピー元NVMセットに有効データを有するブロックが存在しないならば(ステップS407のYES)、NVMセット間コピー制御部23は、NVMセット間コピー動作を終了する。 Next, the inter-NVM set copy control unit 23 determines whether or not there is no block having valid data in the copy source NVM set (step S407). If there is no block having valid data in the copy source NVM set (YES in step S407), the inter-NVM set copy control unit 23 ends the inter-NVM set copy operation.

一方、コピー元NVMセットに有効データを有するブロックが存在するならば(ステップS407のNO)、コントローラ4のNVMセット制御部21は、コピー元NVMセットに所属するNVMサブセットへのライトデータが受信されたか否かを判定する(ステップS408)。コピー元NVMセットに所属するNVMサブセットへのライトデータが受信されていなければ(ステップS408のNO)、処理は、ステップS402に進む。 On the other hand, if there is a block with valid data in the copy source NVM set (NO in step S407), the NVM set control unit 21 of the controller 4 receives write data to the NVM subset belonging to the copy source NVM set. It is determined whether or not (step S408). If write data to the NVM subset belonging to the copy source NVM set has not been received (NO in step S408), the process proceeds to step S402.

コピー元NVMセットに所属するNVMサブセットへのライトデータが受信されていれば(ステップS408のYES)、NVM制御部21は、コピー先NVMセットのフリーブロックプールのフリーブロックを書き込み先ブロックとして割り当てる(ステップS409)。そして、NVM制御部21はその割り当てられたブロックにライトデータを書き込む(ステップS410)。ライトデータが書き込まれると、NVM制御部21は、コピー元NVMセットに所属するNVMサブセットに対応するLUTを更新する(ステップS411)。 If write data to the NVM subset belonging to the copy source NVM set has been received (YES in step S408), the NVM control unit 21 allocates a free block in the free block pool of the copy destination NVM set as the write destination block ( Step S409). Then, the NVM control unit 21 writes write data to the allocated block (step S410). When the write data is written, the NVM control unit 21 updates the LUT corresponding to the NVM subset belonging to the copy source NVM set (step S411).

次に、コントローラ4は、ライト完了のレスポンスをホスト2へ返す(ステップS412)。ライト完了のレスポンスがホスト2に返されると、処理は、ステップS402に進む。 Next, the controller 4 returns a write completion response to the host 2 (step S412). When a write completion response is returned to the host 2, the process advances to step S402.

コピー元NVMセットに有効データを有するブロックが存在しなくなるまで、ステップS402~S412の処理が繰り返される(ステップS407)。 The processes of steps S402 to S412 are repeated until there are no blocks with valid data in the copy source NVM set (step S407).

図34のフローチャートは、新NVMセット作成制御部24によって実行される新NVMセット作成動作の手順を示す。 The flowchart in FIG. 34 shows the procedure of the new NVM set creation operation executed by the new NVM set creation control unit 24.

新NVMセット作成コマンドが受信されると(ステップS501のYES)、新NVMセット作成制御部24は、元のNVMセットに属する全てのNAND型フラッシュメモリダイの中から、新NVMセット用に確保すべきNAND型フラッシュメモリダイのグループを決定する(ステップS502)。元のNVMセットは新NVMセット作成コマンドによってしていてされてもよい。 When the new NVM set creation command is received (YES in step S501), the new NVM set creation control unit 24 selects the NAND flash memory dies that are reserved for the new NVM set from among all the NAND flash memory dies that belong to the original NVM set. A group of NAND flash memory dies to be used is determined (step S502). The original NVM set may be replaced by a new NVM set creation command.

続いて、新NVMセット作成制御部24は、元のNVMセットのフリーブロックプールのフリーブロックをコピー先ブロックとして割り当てる(ステップS503)。そして、新NVMセット作成制御部24は、新NVMセットに属するブロック(つまり確保されたNAND型フラッシュメモリダイのグループに属するブロック)から、有効データを保持するブロックをコピー元ブロックとして選択する(ステップS504)。 Subsequently, the new NVM set creation control unit 24 allocates a free block in the free block pool of the original NVM set as a copy destination block (step S503). Then, the new NVM set creation control unit 24 selects a block that holds valid data as a copy source block from the blocks that belong to the new NVM set (that is, blocks that belong to the group of secured NAND flash memory dies) (step S504).

次に、新NVMセット作成制御部24は、コピー元ブロックからコピー先ブロックに有効データをコピーする(ステップS505)。有効データがコピーされると、新NVMセット作成制御部24は、コピー元NVMセットのNVMサブセットに対応するLUTを更新する(ステップS506)。続いて、新NVMセット作成制御部24は、有効データを持たなくなったコピー元ブロックを新NVMセットのフリーブロックプールに返却する(ステップS507)。 Next, the new NVM set creation control unit 24 copies valid data from the copy source block to the copy destination block (step S505). When the valid data is copied, the new NVM set creation control unit 24 updates the LUT corresponding to the NVM subset of the copy source NVM set (step S506). Subsequently, the new NVM set creation control unit 24 returns the copy source block that no longer has valid data to the free block pool of the new NVM set (step S507).

次に、新NVMセット作成制御部24は、新NVMセットに有効データを有するブロックが存在しないか否かを判定する(ステップS508)。新NVMセットに有効データを有するブロックが存在しないならば(ステップS508のYES)、新NVMセット作成制御部24は新NVMセット作成動作を終了する。新NVMセットに有効データを有するブロックが存在するならば(ステップS508のNO)、新NVMセット作成制御部24は新NVMセット作成動作を続行する(ステップS503~S507)。 Next, the new NVM set creation control unit 24 determines whether or not there is no block having valid data in the new NVM set (step S508). If there is no block with valid data in the new NVM set (YES in step S508), the new NVM set creation control unit 24 ends the new NVM set creation operation. If a block having valid data exists in the new NVM set (NO in step S508), the new NVM set creation control unit 24 continues the new NVM set creation operation (steps S503 to S507).

新NVMセットに有効データを有するブロックが存在しなくなるまで、ステップS503~S507の処理が繰り返される。 The processes of steps S503 to S507 are repeated until there are no blocks with valid data in the new NVM set.

図35のフローチャートは、新NVMセット作成制御部24によって実行される新NVMセット作成動作の別の手順を示す。ここでは、新NVMセット作成動作と元のNVMセットにおけるガベージコレクション動作とを並行して実行する手順が示されている。 The flowchart in FIG. 35 shows another procedure for the new NVM set creation operation executed by the new NVM set creation control unit 24. Here, a procedure is shown in which a new NVM set creation operation and a garbage collection operation on the original NVM set are executed in parallel.

新NVMセット作成コマンドが受信されると(ステップS601)、新NVMセット作成制御部24は、新NVMセット用に確保すべきNAND型フラッシュメモリダイのグループを決定する(ステップS602)。続いて、新NVMセット作成制御部24は、元のNVMセットのフリーブロックプールのフリーブロックをコピー先ブロックとして割り当てる(ステップS603)。そして、新NVMセット作成制御部24は、元のNVMセットに属するブロックから、有効データと無効データが混在するブロックをコピー元ブロックとして選択する(ステップS604)。ステップS604では、新NVMセット作成制御部24は、有効データの少ないブロックを優先的にコピー元ブロックとして選択してもよい。 When a new NVM set creation command is received (step S601), the new NVM set creation control unit 24 determines a group of NAND flash memory dies to be secured for the new NVM set (step S602). Subsequently, the new NVM set creation control unit 24 allocates a free block in the free block pool of the original NVM set as a copy destination block (step S603). Then, the new NVM set creation control unit 24 selects a block containing a mixture of valid data and invalid data as a copy source block from the blocks belonging to the original NVM set (step S604). In step S604, the new NVM set creation control unit 24 may preferentially select a block with less valid data as the copy source block.

次に、新NVMセット作成制御部24は、コピー元ブロックからコピー先ブロックに有効データをコピーする(ステップS605)。有効データがコピーされると、新NVMセット作成制御部24は、コピー元NVMセットのNVMサブセットに対応するLUTを更新する(ステップS606)。 Next, the new NVM set creation control unit 24 copies valid data from the copy source block to the copy destination block (step S605). When the valid data is copied, the new NVM set creation control unit 24 updates the LUT corresponding to the NVM subset of the copy source NVM set (step S606).

続いて、新NVMセット作成制御部24は、有効データを持たなくなったコピー元ブロックの物理位置が新NVMセットに属するか否かを判定する(ステップS607)。有効データを持たなくなったコピー元ブロックの物理位置が新NVMセットに属するならば(ステップS607のYES)、新NVMセット作成制御部24は、有効データを持たなくなったコピー元ブロックを新NVMセットのフリーブロックプールに返却する(ステップS608)。有効データを持たなくなったコピー元ブロックの物理位置が新たなNVMセットに属しないならば(ステップS607のNO)、新NVMセット作成制御部24は、有効データを持たなくなったコピー元ブロックを元のNVMセットのフリーブロックプールに返却する(ステップS609)。 Next, the new NVM set creation control unit 24 determines whether the physical location of the copy source block that no longer has valid data belongs to the new NVM set (step S607). If the physical location of the copy source block that no longer has valid data belongs to the new NVM set (YES in step S607), the new NVM set creation control unit 24 transfers the copy source block that no longer has valid data to the new NVM set. The block is returned to the free block pool (step S608). If the physical location of the copy source block that no longer has valid data does not belong to the new NVM set (NO in step S607), the new NVM set creation control unit 24 restores the copy source block that no longer has valid data to the original NVM set. The block is returned to the free block pool of the NVM set (step S609).

次に、新NVMセット作成制御部24は、新NVMセットに有効データを有するブロックが存在しないか否かを判定する(ステップS610)。新NVMセットに有効データを有するブロックが存在しないならば(ステップS610のYES)、新NVMセット作成制御部24は新NVMセット作成動作を終了する。新NVMセットに有効データを有するブロックが存在するならば(ステップS610のNO)、新NVMセット作成制御部24はステップS603の処理を実行する。 Next, the new NVM set creation control unit 24 determines whether or not there is no block having valid data in the new NVM set (step S610). If there is no block with valid data in the new NVM set (YES in step S610), the new NVM set creation control unit 24 ends the new NVM set creation operation. If there is a block with valid data in the new NVM set (NO in step S610), the new NVM set creation control unit 24 executes the process in step S603.

新NVMセットに有効データを有するブロックが存在しなくなるまで、ステップS603~S607の処理が繰り返される。 The processes of steps S603 to S607 are repeated until there are no blocks with valid data in the new NVM set.

図36は、ホスト2として機能する情報処理装置(コンピューティングデバイス)のハードウェア構成例を示す。 FIG. 36 shows an example of the hardware configuration of an information processing apparatus (computing device) functioning as the host 2. As shown in FIG.

この情報処理装置は、サーバのようなコンピューティングデバイスとして実現される。この情報処理装置は、プロセッサ(CPU)801、メインメモリ802、BIOS-ROM803、ネットワークコントローラ805、周辺インタフェースコントローラ806、コントローラ807、およびエンベデッドコントローラ(EC)808等を含む。 This information processing apparatus is realized as a computing device such as a server. This information processing device includes a processor (CPU) 801, a main memory 802, a BIOS-ROM 803, a network controller 805, a peripheral interface controller 806, a controller 807, an embedded controller (EC) 808, and the like.

プロセッサ801は、この情報処理装置の各コンポーネントの動作を制御するように構成されたCPUである。このプロセッサ801は、複数のSSD3のいずれか1つからメインメモリ802にロードされる様々なプログラムを実行する。メインメモリ802は、DRAMのようなランダムアクセスメモリから構成される。また、このプログラムには、上述のNVMセット間コピー、NVMセット交換、新NVMセット作成、およびNVMセット結合を指示するコマンドを発行するための設定プログラムが含まれていてもよい。 Processor 801 is a CPU configured to control the operation of each component of this information processing apparatus. This processor 801 executes various programs loaded into the main memory 802 from any one of the plurality of SSDs 3. Main memory 802 is comprised of random access memory such as DRAM. Further, this program may include a setting program for issuing commands instructing the above-described inter-NVM set copy, NVM set exchange, new NVM set creation, and NVM set combination.

また、プロセッサ801は、不揮発性メモリであるBIOS-ROM803に格納された基本入出力システム(BIOS)も実行する。BIOSはハードウェア制御のためのシステムプログラムである。 Processor 801 also executes a basic input/output system (BIOS) stored in BIOS-ROM 803, which is a non-volatile memory. BIOS is a system program for controlling hardware.

ネットワークコントローラ805は、有線LANコントローラ、無線LANコントローラのような通信デバイスである。周辺インタフェースコントローラ806は、USBデバイスのような周辺デバイスとの通信を実行するように構成されている。 The network controller 805 is a communication device such as a wired LAN controller or a wireless LAN controller. Peripheral interface controller 806 is configured to perform communications with peripheral devices, such as USB devices.

コントローラ807は、複数のコネクタ807Aにそれぞれ接続されるデバイスとの通信を実行するように構成されている。複数のSSD3が複数のコネクタ807Aにそれぞれ接続されてもよい。コントローラ807は、SAS expander、PCIe Switch、PCIe expander、フラッシュアレイコントローラ、またはRAIDコントローラ等である。 Controller 807 is configured to communicate with devices connected to each of the plurality of connectors 807A. A plurality of SSDs 3 may be respectively connected to a plurality of connectors 807A. The controller 807 is a SAS expander, a PCIe Switch, a PCIe expander, a flash array controller, a RAID controller, or the like.

EC808は、情報処理装置の電力管理を実行するように構成されたシステムコントローラとして機能する。 The EC 808 functions as a system controller configured to perform power management of the information processing device.

図37は、複数のSSD3とホスト2とを含む情報処理装置(サーバ)の構成例を示す。 FIG. 37 shows a configuration example of an information processing device (server) including a plurality of SSDs 3 and a host 2.

この情報処理装置(サーバ)は、ラックに収容可能な薄い箱形の筐体901を備える。多数のSSD3は筐体901内に配置されてもよい。この場合、各SSD3は筐体901の前面901Aに設けられたスロットに取り外し可能に挿入されてもよい。 This information processing device (server) includes a thin box-shaped housing 901 that can be accommodated in a rack. A large number of SSDs 3 may be placed within the housing 901. In this case, each SSD 3 may be removably inserted into a slot provided on the front surface 901A of the housing 901.

システムボード(マザーボード)902は筐体901内に配置される。システムボード(マザーボード)902上においては、CPU801、メインメモリ802、ネットワークコントローラ805、コントローラ807を含む様々な電子部品が実装されている。これら電子部品がホスト2として機能する。 A system board (motherboard) 902 is placed inside the housing 901 . Various electronic components including a CPU 801, a main memory 802, a network controller 805, and a controller 807 are mounted on the system board (motherboard) 902. These electronic components function as the host 2.

以上説明したように、本実施形態によれば、複数のNAND型フラッシュメモリダイの各々が一つのNVMセットにのみ属するようにこれらNAND型フラッシュメモリダイが複数のNVMセットに分類される。そして、各NVMセットに対応する少なくとも一つの領域(例えばネームスペース)を指定するホストからのI/Oコマンドに応じて、複数のNVMセットの一つのNVMセットに対するデータ書き込み/読み出し動作が実行される。したがって、異なるNVMセットに対応する異なる領域をそれぞれ指定する複数のI/Oコマンド(ライトコマンド、またはリードコマンド)を、ダイコンテンション無しで、同時に実行することができる。よって、例えば、たとえあるNVMセットに対するデータ書き込み動作の実行中に別のNVMセットに対応する領域に向けたリードコマンドがホスト2から受信されても、コントローラ4は、このデータ書き込み動作の完了を待つことなく、このリードコマンドに対応するデータ読み出し動作を即座に実行することができる。 As described above, according to the present embodiment, the NAND flash memory dies are classified into a plurality of NVM sets such that each of the NAND flash memory dies belongs to only one NVM set. Then, data write/read operations are performed on one of the plurality of NVM sets in response to an I/O command from the host that specifies at least one area (for example, namespace) corresponding to each NVM set. . Therefore, a plurality of I/O commands (write commands or read commands) each specifying a different area corresponding to a different NVM set can be executed simultaneously without die contention. Therefore, for example, even if a read command directed to an area corresponding to another NVM set is received from the host 2 while a data write operation for a certain NVM set is being executed, the controller 4 waits for the completion of this data write operation. The data read operation corresponding to this read command can be immediately executed without any trouble.

また、NAND型フラッシュメモリ5のフリーブロック群は、複数のNVMセットに対応する複数のフリーブロックプールによってNVMセット毎に個別に管理される。そして、複数のNVMセットの各々について、対応するフリーブロックプール内のフリーブロックの一つをインプットブロック(ユーザインプットブロックまたはGCインプットブロック)として割り当てる動作と、ライトデータをインプットブロックに書き込む動作と、ライトデータで満たされたインプットブロックをNVMサブセットによって管理する動作と、NVMサブセットによって管理され且つ有効データを保持しないブロックを対応するフリーブロックプールに返却する動作とが実行される。このように、複数のNVMセットそれぞれに対応するフリーブロックを使用することにより、インプットブロックの割り当てとフリーブロックの返却を、NVMセット毎に独立して実行することができる。これにより、あるNVMセットに属するダイ内のブロックが別のNVMセット用のインプットブロックとして割り当てられること等を防止することができる。よって、ダイコンテンションが起きないことを保証することが可能となる。 Further, the free block group of the NAND flash memory 5 is managed individually for each NVM set by a plurality of free block pools corresponding to a plurality of NVM sets. Then, for each of the plurality of NVM sets, an operation of allocating one of the free blocks in the corresponding free block pool as an input block (user input block or GC input block), an operation of writing write data to the input block, and a write operation are performed. The operations of managing input blocks filled with data by the NVM subset and returning blocks that are managed by the NVM subset and do not hold valid data to the corresponding free block pool are performed. In this way, by using free blocks corresponding to each of a plurality of NVM sets, input block allocation and free block return can be executed independently for each NVM set. Thereby, it is possible to prevent a block within a die belonging to a certain NVM set from being allocated as an input block for another NVM set. Therefore, it is possible to ensure that die contention does not occur.

さらに、フリーブロックプールが複数のNVMサブセット(複数のガベージコレクション用グループ)によって共有される共有NVMセットと、フリーブロックプールが一つNVMサブセット(一つのガベージコレクション用グループ)によって専有される分離されたNVMセットとを、1台のSSD3内に共存させることができる。 Additionally, there are shared NVM sets in which the free block pool is shared by multiple NVM subsets (multiple garbage collection groups), and separated NVM sets in which the free block pool is dedicated to one NVM subset (one garbage collection group). The NVM set can coexist within one SSD 3.

なお、本実施形態では、不揮発性メモリとしてNAND型フラッシュメモリを例示した。しかし、本実施形態の機能は、例えば、MRAM(Magnetoresistive
Random Access Memory)、PRAM(Phase change
Random Access Memory)、ReRAM(Resistive Random Access Memory)、又は、FeRAM(Ferroelectric Random Access Memory)のような他の様々な不揮発性メモリにも適用できる。
Note that in this embodiment, a NAND flash memory is exemplified as the nonvolatile memory. However, the functions of this embodiment are, for example, MRAM (Magnetoresistive
Random Access Memory), PRAM (Phase change
It is also applicable to various other non-volatile memories such as Random Access Memory (Random Access Memory), ReRAM (Resistive Random Access Memory), or FeRAM (Ferroelectric Random Access Memory).

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, as well as within the scope of the invention described in the claims and its equivalents.

2…ホスト、3…SSD、4…コントローラ、5…NAND型フラッシュメモリ、21…NVMセット制御部、22…GC動作制御部、23…NVMセット間コピー制御部、24…新NVMセット作成制御部、25…NVM交換制御部、26…NVMセット結合部、60、61、62…NVMセット、80、81、82…フリーブロックプール、90、91、92、93、94、95…NVMサブセット。 2... Host, 3... SSD, 4... Controller, 5... NAND flash memory, 21... NVM set control unit, 22... GC operation control unit, 23... Copy control unit between NVM sets, 24... New NVM set creation control unit , 25... NVM exchange control unit, 26... NVM set coupling unit, 60, 61, 62... NVM set, 80, 81, 82... Free block pool, 90, 91, 92, 93, 94, 95... NVM subset.

Claims (17)

ホストに接続可能なメモリシステムであって、
複数のチャンネルと、
前記複数のチャンネルに接続された複数の不揮発性メモリダイを含む不揮発性メモリであって、各不揮発性メモリダイが複数のブロックを含む、不揮発性メモリと、
前記複数のチャンネルを介して前記複数の不揮発性メモリダイに接続されたコントローラであって、前記複数の不揮発性メモリダイを制御するように構成されたコントローラとを具備し、
前記コントローラは、
前記メモリシステムの論理アドレス空間を、少なくとも第1ネームスペースと第2ネームスペースとを含む複数のネームスペースに割り当て、
前記複数の不揮発性メモリダイの各々が一つのダイグループにのみ属するように前記複数の不揮発性メモリダイを第1のダイグループと第2のダイグループとに分類し、
前記第1のダイグループに対応する前記第1ネームスペースを指定する第1のライトコマンドを前記ホストから受信した場合、前記第1ネームスペースに書き込まれるべき第1のデータを、前記第1のダイグループから選択された第1の書き込み先ブロックに書き込み、
前記第2のダイグループに対応する前記第2ネームスペースを指定する第2のライトコマンドを前記ホストから受信した場合、前記第2ネームスペースに書き込まれるべき第2のデータを、前記第2のダイグループから選択された第2の書き込み先ブロックに書き込むように構成されている、
メモリシステム。
A memory system connectable to a host,
multiple channels and
a non-volatile memory comprising a plurality of non-volatile memory dies connected to the plurality of channels, each non-volatile memory die including a plurality of blocks;
a controller connected to the plurality of non-volatile memory dies via the plurality of channels, the controller configured to control the plurality of non-volatile memory dies;
The controller includes:
allocating a logical address space of the memory system to a plurality of namespaces including at least a first namespace and a second namespace;
classifying the plurality of nonvolatile memory dies into a first die group and a second die group such that each of the plurality of nonvolatile memory dies belongs to only one die group;
When a first write command specifying the first namespace corresponding to the first die group is received from the host, first data to be written to the first namespace is written to the first die group. Write to the first write destination block selected from the group,
When a second write command specifying the second namespace corresponding to the second die group is received from the host, the second data to be written to the second namespace is written to the second die group. configured to write to a second destination block selected from the group;
memory system.
前記コントローラは、
前記第2のデータの書き込み動作の実行中に、前記第1ネームスペースを指定する第1のリードコマンドを前記ホストから受信した場合、前記第2のデータの書き込み動作の完了を待つこと無く前記第1のダイグループからデータを読み出すように構成されている、
請求項1記載のメモリシステム。
The controller includes:
If a first read command specifying the first namespace is received from the host while the second data write operation is being executed, the second data write operation is executed without waiting for the completion of the second data write operation. configured to read data from one die group;
The memory system according to claim 1.
前記第1のダイグループに属するフリーブロック群は、前記第1のダイグループに対応する第1のフリーブロックプールによって管理され、前記第2のダイグループに属するフリーブロック群は、前記第2のダイグループに対応する第2のフリーブロックプールによって管理され、
前記第1のフリーブロックプールは、前記第1のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する第1のデータブロックプールに専用のフリーブロックプールであり、前記第2のフリーブロックプールは、前記第2のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する複数の第2のデータブロックプールによって共有される共有フリーブロックプールである、
請求項1記載のメモリシステム。
A free block group belonging to the first die group is managed by a first free block pool corresponding to the first die group, and a free block group belonging to the second die group is managed by a first free block pool corresponding to the first die group. managed by a second free block pool corresponding to the group;
The first free block pool is a free block pool dedicated to a first data block pool that manages each block that belongs to the first die group and holds valid data, and the second free block pool is a shared free block pool shared by a plurality of second data block pools that manage blocks that belong to the second die group and hold valid data, respectively;
The memory system according to claim 1.
前記コントローラは、
前記第1のデータブロックプール内のブロック群のガベージコレクションにおいては、前記第1のフリーブロックプール内のフリーブロックの一つを第1のコピー先ブロックとして割り当て、前記第1のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第1のコピー先ブロックにコピーし、前記第1のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第1のフリーブロックプールに返却する、動作を実行し、
前記複数の第2のデータブロックプールの一つの第2のデータブロックプール内のブロック群のガベージコレクションにおいては、前記複数の第2のデータブロックプールによって共有される前記第2のフリーブロックプール内のフリーブロックの一つを第2のコピー先ブロックとして割り当て、前記一つの第2のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第2のコピー先ブロックにコピーし、前記第2のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第2のフリーブロックプールに返却する、動作を実行するように構成されている、
請求項3記載のメモリシステム。
The controller includes:
In garbage collection of a group of blocks in the first data block pool, one of the free blocks in the first free block pool is allocated as a first copy destination block, and one of the blocks included in the first data block pool is allocated as a first copy destination block. and copying only valid data from one or more blocks in which valid data and invalid data are mixed to the first copy destination block, and copying the valid data to the first copy destination block to copy only the invalid data to the first copy destination block. performing an operation of returning the one or more blocks that have become free to the first free block pool;
In garbage collection of a group of blocks in one second data block pool of the plurality of second data block pools, garbage collection of blocks in the second free block pool shared by the plurality of second data block pools is performed. One of the free blocks is allocated as a second copy destination block, and only valid data is transferred from one or more blocks included in the one second data block pool and containing a mixture of valid data and invalid data to the second copy destination block. copying the valid data to the second copy destination block and returning the one or more blocks, which have become only invalid data by copying the valid data to the second copy destination block, to the second free block pool. is configured to
The memory system according to claim 3.
前記第1のダイグループに属するフリーブロック群は、前記第1のダイグループに対応する第1のフリーブロックプールによって管理され、前記第2のダイグループに属するフリーブロック群は、前記第2のダイグループに対応する第2のフリーブロックプールによって管理され、
前記第1のフリーブロックプールは、前記第1のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する第1のデータブロックプールに専用のフリーブロックプールであり、前記第2のフリーブロックプールは、前記第2のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する第2のデータブロックプールに専用のフリーブロックプールである、
請求項1記載のメモリシステム。
A free block group belonging to the first die group is managed by a first free block pool corresponding to the first die group, and a free block group belonging to the second die group is managed by a first free block pool corresponding to the first die group. managed by a second free block pool corresponding to the group;
The first free block pool is a free block pool dedicated to a first data block pool that manages each block that belongs to the first die group and holds valid data, and the second free block pool is a free block pool dedicated to a second data block pool that manages each block that belongs to the second die group and holds valid data;
The memory system according to claim 1.
前記コントローラは、
前記第1のデータブロックプール内のブロック群のガベージコレクションにおいては、前記第1のフリーブロックプール内のフリーブロックの一つを第1のコピー先ブロックとして割り当て、前記第1のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第1のコピー先ブロックにコピーし、前記第1のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第1のフリーブロックプールに返却する、動作を実行し、
前記第2のデータブロックプール内のブロック群のガベージコレクションにおいては、前記第2のフリーブロックプール内のフリーブロックの一つを第2のコピー先ブロックとして割り当て、前記第2のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第2のコピー先ブロックにコピーし、前記第2のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第2のフリーブロックプールに返却する、動作を実行するように構成されている、
請求項5記載のメモリシステム。
The controller includes:
In garbage collection of a group of blocks in the first data block pool, one of the free blocks in the first free block pool is allocated as a first copy destination block, and one of the blocks included in the first data block pool is allocated as a first copy destination block. and copying only valid data from one or more blocks in which valid data and invalid data are mixed to the first copy destination block, and copying the valid data to the first copy destination block to copy only the invalid data to the first copy destination block. performing an operation of returning the one or more blocks that have become free to the first free block pool;
In garbage collection of a group of blocks in the second data block pool, one of the free blocks in the second free block pool is allocated as a second copy destination block, and the blocks included in the second data block pool are and copying only valid data from one or more blocks in which valid data and invalid data are mixed to the second copy destination block, and copying the valid data to the second copy destination block to copy only the invalid data. configured to perform an operation of returning the one or more blocks that have become free to the second free block pool;
The memory system according to claim 5.
前記第1のダイグループに属するフリーブロック群は、前記第1のダイグループに対応する第1のフリーブロックプールによって管理され、前記第2のダイグループに属するフリーブロック群は、前記第2のダイグループに対応する第2のフリーブロックプールによって管理され、
前記第1のフリーブロックプールは、前記第1のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する複数の第1のデータブロックプールによって共有される共有フリーブロックプールであり、前記第2のフリーブロックプールは、前記第2のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する複数の第2のデータブロックプールによって共有される共有フリーブロックプールである、
請求項1記載のメモリシステム。
A free block group belonging to the first die group is managed by a first free block pool corresponding to the first die group, and a free block group belonging to the second die group is managed by a first free block pool corresponding to the first die group. managed by a second free block pool corresponding to the group;
The first free block pool is a shared free block pool shared by a plurality of first data block pools that manage blocks that belong to the first die group and hold valid data, and The free block pool is a shared free block pool shared by a plurality of second data block pools that manage blocks that belong to the second die group and hold valid data, respectively.
The memory system according to claim 1.
前記コントローラは、
前記複数の第1のデータブロックプールの一つの第1のデータブロックプール内のブロック群のガベージコレクションにおいては、前記複数の第1のデータブロックプールによって共有される前記第1のフリーブロックプール内のフリーブロックの一つを第1のコピー先ブロックとして割り当て、前記一つの第1のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第1のコピー先ブロックにコピーし、前記第1のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第1のフリーブロックプールに返却する、動作を実行し、
前記複数の第2のデータブロックプールの一つの第2のデータブロックプール内のブロック群のガベージコレクションにおいては、前記複数の第2のデータブロックプールによって共有される前記第2のフリーブロックプール内のフリーブロックの一つを第2のコピー先ブロックとして割り当て、前記一つの第2のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第2のコピー先ブロックにコピーし、前記第2のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第2のフリーブロックプールに返却する、動作を実行するように構成されている、
請求項7記載のメモリシステム。
The controller includes:
In garbage collection of blocks in one first data block pool of the plurality of first data block pools, garbage collection of blocks in the first free block pool shared by the plurality of first data block pools is performed. One of the free blocks is allocated as a first copy destination block, and only valid data is transferred from one or more blocks included in the one first data block pool and containing a mixture of valid data and invalid data to the first copy destination block. copying the valid data to the first copy destination block and returning the one or more blocks, which have become only invalid data by copying the valid data to the first copy destination block, to the first free block pool. death,
In garbage collection of a group of blocks in one second data block pool of the plurality of second data block pools, garbage collection of blocks in the second free block pool shared by the plurality of second data block pools is performed. One of the free blocks is allocated as a second copy destination block, and only valid data is transferred from one or more blocks included in the one second data block pool and containing a mixture of valid data and invalid data to the second copy destination block. copying the valid data to the second copy destination block and returning the one or more blocks, which have become only invalid data by copying the valid data to the second copy destination block, to the second free block pool. is configured to
The memory system according to claim 7.
前記第1のダイグループは、前記複数のチャンネルにそれぞれ接続された複数の第1の不揮発性メモリダイの集合を含み、前記第2のダイグループは、前記複数のチャンネルにそれぞれ接続された複数の第2の不揮発性メモリダイの集合を含む、
請求項1記載のメモリシステム。
The first die group includes a set of a plurality of first nonvolatile memory dies each connected to the plurality of channels, and the second die group includes a set of a plurality of first nonvolatile memory dies each connected to the plurality of channels. 2 non-volatile memory dies;
The memory system according to claim 1.
前記第1のダイグループは、前記複数のチャンネルの第1のチャンネルにそれぞれ接続された複数の第1の不揮発性メモリダイの集合を含み、前記第2のダイグループは、前記複数のチャンネルの第2のチャンネルにそれぞれ接続された複数の第2の不揮発性メモリダイの集合を含む、
請求項1記載のメモリシステム。
The first die group includes a set of first nonvolatile memory dies each connected to a first channel of the plurality of channels, and the second die group includes a set of first nonvolatile memory dies connected to a first channel of the plurality of channels. a plurality of second non-volatile memory dies each connected to a channel of the second non-volatile memory die;
The memory system according to claim 1.
前記第1のダイグループに属する前記不揮発性メモリダイの数は、前記第2のダイグループに属する前記不揮発性メモリダイの数と異なる、
請求項1記載のメモリシステム。
The number of non-volatile memory dies belonging to the first die group is different from the number of non-volatile memory dies belonging to the second die group.
The memory system according to claim 1.
前記コントローラは、前記ホストからのコマンドを受信したことに応じ、前記複数の不揮発性メモリダイを、前記第1のダイグループと前記第2のダイグループとに分類する、
請求項1記載のメモリシステム。
The controller classifies the plurality of nonvolatile memory dies into the first die group and the second die group in response to receiving a command from the host.
The memory system according to claim 1.
複数のチャンネルに接続された複数の不揮発性メモリダイを、前記複数のチャンネルを介して前記複数の不揮発性メモリダイに接続されたコントローラによって制御する制御方法であって、各不揮発性メモリダイが複数のブロックを含み、
論理アドレス空間を、少なくとも第1ネームスペースと第2ネームスペースとを含む複数のネームスペースに割り当てることと、
前記複数の不揮発性メモリダイの各々が一つのダイグループにのみ属するように前記複数の不揮発性メモリダイを第1のダイグループと第2のダイグループとに分類することと、
前記第1のダイグループに対応する前記第1ネームスペースを指定する第1のライトコマンドをホストから受信した場合、前記第1ネームスペースに書き込まれるべき第1のデータを、前記第1のダイグループから選択された第1の書き込み先ブロックに書き込むことと、
前記第2のダイグループに対応する前記第2ネームスペースを指定する第2のライトコマンドを前記ホストから受信した場合、前記第2ネームスペースに書き込まれるべき第2のデータを、前記第2のダイグループから選択された第2の書き込み先ブロックに書き込むこととを具備する制御方法。
A control method for controlling a plurality of non-volatile memory dies connected to a plurality of channels by a controller connected to the plurality of non-volatile memory dies via the plurality of channels, wherein each non-volatile memory die controls a plurality of blocks. including,
allocating the logical address space to a plurality of namespaces including at least a first namespace and a second namespace;
classifying the plurality of non-volatile memory dies into a first die group and a second die group such that each of the plurality of non-volatile memory dies belongs to only one die group;
When a first write command specifying the first namespace corresponding to the first die group is received from the host, the first data to be written to the first namespace is written to the first die group. writing to a first write destination block selected from;
When a second write command specifying the second namespace corresponding to the second die group is received from the host, the second data to be written to the second namespace is written to the second die group. writing to a second write destination block selected from the group.
前記第1のダイグループに属するフリーブロック群は、前記第1のダイグループに対応する第1のフリーブロックプールによって管理され、前記第2のダイグループに属するフリーブロック群は、前記第2のダイグループに対応する第2のフリーブロックプールによって管理され、
前記第1のフリーブロックプールは、前記第1のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する第1のデータブロックプールに専用のフリーブロックプールであり、前記第2のフリーブロックプールは、前記第2のダイグループに属し且つ有効データを保持するブロックそれぞれを管理する複数の第2のデータブロックプールによって共有される共有フリーブロックプールである請求項13記載の制御方法。
A free block group belonging to the first die group is managed by a first free block pool corresponding to the first die group, and a free block group belonging to the second die group is managed by a first free block pool corresponding to the first die group. managed by a second free block pool corresponding to the group;
The first free block pool is a free block pool dedicated to a first data block pool that manages each block that belongs to the first die group and holds valid data, and the second free block pool 14. The control method according to claim 13, wherein the second data block pool is a shared free block pool shared by a plurality of second data block pools that manage blocks that belong to the second die group and hold valid data, respectively.
前記第1のデータブロックプール内のブロック群のガベージコレクションにおいては、前記第1のフリーブロックプール内のフリーブロックの一つを第1のコピー先ブロックとして割り当て、前記第1のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第1のコピー先ブロックにコピーし、前記第1のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第1のフリーブロックプールに返却する、動作を実行することと、
前記複数の第2のデータブロックプールの一つの第2のデータブロックプール内のブロック群のガベージコレクションにおいては、前記複数の第2のデータブロックプールによって共有される前記第2のフリーブロックプール内のフリーブロックの一つを第2のコピー先ブロックとして割り当て、前記一つの第2のデータブロックプールに含まれ且つ有効データと無効データとが混在する一つ以上のブロックから有効データのみを前記第2のコピー先ブロックにコピーし、前記第2のコピー先ブロックへの前記有効データのコピーによって無効データのみになった前記一つ以上のブロックを前記第2のフリーブロックプールに返却する、動作を実行することとをさらに具備する請求項14記載の制御方法。
In garbage collection of a group of blocks in the first data block pool, one of the free blocks in the first free block pool is allocated as a first copy destination block, and one of the blocks included in the first data block pool is allocated as a first copy destination block. and copying only valid data from one or more blocks in which valid data and invalid data are mixed to the first copy destination block, and copying the valid data to the first copy destination block to copy only the invalid data to the first copy destination block. performing an operation of returning the one or more blocks that have become free to the first free block pool;
In garbage collection of a group of blocks in one second data block pool of the plurality of second data block pools, garbage collection of blocks in the second free block pool shared by the plurality of second data block pools is performed. One of the free blocks is allocated as a second copy destination block, and only valid data is transferred from one or more blocks included in the one second data block pool and containing a mixture of valid data and invalid data to the second copy destination block. copying the valid data to the second copy destination block and returning the one or more blocks, which have become only invalid data by copying the valid data to the second copy destination block, to the second free block pool. 15. The control method according to claim 14, further comprising:
前記第1のダイグループは、前記複数のチャンネルにそれぞれ接続された複数の第1の不揮発性メモリダイの集合を含み、前記第2のダイグループは、前記複数のチャンネルにそれぞれ接続された複数の第2の不揮発性メモリダイの集合を含む請求項13記載の制御方法。 The first die group includes a set of a plurality of first nonvolatile memory dies each connected to the plurality of channels, and the second die group includes a set of a plurality of first nonvolatile memory dies each connected to the plurality of channels. 14. The method of claim 13, comprising a set of two non-volatile memory dies. 前記第1のダイグループは、前記複数のチャンネルの第1のチャンネルにそれぞれ接続された複数の第1の不揮発性メモリダイの集合を含み、前記第2のダイグループは、前記複数のチャンネルの第2のチャンネルにそれぞれ接続された複数の第2の不揮発性メモリダイの集合を含む請求項13記載の制御方法。 The first die group includes a set of first nonvolatile memory dies each connected to a first channel of the plurality of channels, and the second die group includes a set of first nonvolatile memory dies connected to a first channel of the plurality of channels. 14. The control method of claim 13, comprising a set of a plurality of second non-volatile memory dies each connected to a channel of the second non-volatile memory die.
JP2023145251A 2020-08-31 2023-09-07 Memory system and control method Pending JP2023158144A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023145251A JP2023158144A (en) 2020-08-31 2023-09-07 Memory system and control method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020145847A JP7132291B2 (en) 2020-08-31 2020-08-31 Memory system and control method
JP2022063903A JP2022091981A (en) 2020-08-31 2022-04-07 controller
JP2023145251A JP2023158144A (en) 2020-08-31 2023-09-07 Memory system and control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2022063903A Division JP2022091981A (en) 2020-08-31 2022-04-07 controller

Publications (1)

Publication Number Publication Date
JP2023158144A true JP2023158144A (en) 2023-10-26

Family

ID=73837499

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2020145847A Active JP7132291B2 (en) 2020-08-31 2020-08-31 Memory system and control method
JP2022063903A Pending JP2022091981A (en) 2020-08-31 2022-04-07 controller
JP2023145251A Pending JP2023158144A (en) 2020-08-31 2023-09-07 Memory system and control method

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2020145847A Active JP7132291B2 (en) 2020-08-31 2020-08-31 Memory system and control method
JP2022063903A Pending JP2022091981A (en) 2020-08-31 2022-04-07 controller

Country Status (1)

Country Link
JP (3) JP7132291B2 (en)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4746598B2 (en) * 2007-09-28 2011-08-10 株式会社東芝 Semiconductor memory device
JP4666080B2 (en) * 2009-02-09 2011-04-06 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
JP2013137665A (en) * 2011-12-28 2013-07-11 Toshiba Corp Semiconductor storage device, method of controlling semiconductor storage device, and memory controller
US9734911B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9483397B2 (en) * 2013-07-16 2016-11-01 Intel Corporation Erase management in memory systems
JP5969130B2 (en) * 2013-07-18 2016-08-17 株式会社日立製作所 Information processing device
WO2015114829A1 (en) * 2014-02-03 2015-08-06 株式会社日立製作所 Information processing device
WO2016013076A1 (en) * 2014-07-23 2016-01-28 富士通株式会社 Information processing device, memory controller, storage device control program, and storage device control method
JP2017027388A (en) * 2015-07-23 2017-02-02 株式会社東芝 Memory system and control method for nonvolatile memory
JP2015222590A (en) * 2015-07-24 2015-12-10 株式会社東芝 Memory system
US9606915B2 (en) * 2015-08-11 2017-03-28 Toshiba Corporation Pool level garbage collection and wear leveling of solid state devices

Also Published As

Publication number Publication date
JP2020205077A (en) 2020-12-24
JP2022091981A (en) 2022-06-21
JP7132291B2 (en) 2022-09-06

Similar Documents

Publication Publication Date Title
JP6765321B2 (en) Memory system and control method
JP6709180B2 (en) Memory system and control method
JP6765322B2 (en) Memory system and control method
KR20170128012A (en) Flash-based storage and computing device
JP7342163B2 (en) memory system
JP7132291B2 (en) Memory system and control method
JP7167295B2 (en) Memory system and control method
JP2022179798A (en) Memory system and control method
JP2022121655A (en) Memory system and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240610