JP2016091534A - Memory system and program - Google Patents

Memory system and program Download PDF

Info

Publication number
JP2016091534A
JP2016091534A JP2015028419A JP2015028419A JP2016091534A JP 2016091534 A JP2016091534 A JP 2016091534A JP 2015028419 A JP2015028419 A JP 2015028419A JP 2015028419 A JP2015028419 A JP 2015028419A JP 2016091534 A JP2016091534 A JP 2016091534A
Authority
JP
Japan
Prior art keywords
data
write
input
space
unit
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.)
Granted
Application number
JP2015028419A
Other languages
Japanese (ja)
Other versions
JP6276208B2 (en
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to US14/656,496 priority Critical patent/US10102118B2/en
Publication of JP2016091534A publication Critical patent/JP2016091534A/en
Application granted granted Critical
Publication of JP6276208B2 publication Critical patent/JP6276208B2/en
Priority to US16/129,204 priority patent/US10761977B2/en
Priority to US16/988,219 priority patent/US11347637B2/en
Priority to US17/731,089 priority patent/US11687448B2/en
Priority to US18/197,667 priority patent/US20230281118A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To improve efficiency of control over a nonvolatile memory.SOLUTION: A memory system includes a nonvolatile memory, a configuration unit, an address translation unit, a write unit and a control unit. The configuration unit assigns a plurality of write management areas included in the nonvolatile memory to a plurality of spaces and an input space. The write management area is a unit of an area which manages the number of write. The address translation unit associates a logical address of write data with a physical address which indicates a position of the write data in the nonvolatile memory. The write unit writes the write data to the input space and then writes the write data in the input space to a space corresponding to the write data amongst the plurality of spaces. The control unit controls the plurality of spaces individually with respect to the nonvolatile memory.SELECTED DRAWING: Figure 1

Description

実施形態は、メモリシステム及びプログラムに関する。   Embodiments relate to a memory system and a program.

ソリッドステートドライブ(SSD)は、不揮発性半導体メモリを備え、ハードディスクドライブ(HDD)と同様のインタフェースを持つ。例えば、SSDは、データ書き込み時に、書き込みコマンド、書き込み先のLBA(Logical Block Addressing)、書き込みデータを情報処理装置から受け、LUT(Look Up Table)に基づいて、LBAをPBA(Physical Block Addressing)に変換し、PBAの示す位置に書き込みデータを書き込む。   A solid state drive (SSD) includes a nonvolatile semiconductor memory and has an interface similar to that of a hard disk drive (HDD). For example, the SSD receives a write command, a write destination LBA (Logical Block Addressing), and write data from the information processing apparatus at the time of data writing, and converts the LBA to PBA (Physical Block Addressing) based on the LUT (Look Up Table). Convert and write the write data at the position indicated by PBA.

特開2013−191174号公報JP 2013-191174 A

実施形態は、不揮発性メモリに対する制御を効率化するメモリシステム及びプログラムを提供する。   Embodiments provide a memory system and a program that improve the efficiency of control over a nonvolatile memory.

実施形態によれば、メモリシステムは、不揮発性メモリと、設定部と、アドレス変換部と、書き込み部と、制御部とを含む。設定部は、不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースとインプットスペースとに割り当てる。書き込み管理エリアは書き込み回数を管理する単位のエリアである。アドレス変換部は、書き込みデータの論理アドレスと、不揮発性メモリにおける書き込みデータの位置を示す物理アドレスとを関係付ける。書き込み部は、インプットスペースに書き込みデータを書き込んだ後に、インプットスペースの書き込みデータを、複数のスペースのうちの書き込みデータに対応するスペースに書き込む。制御部は、不揮発性メモリに対して複数のスペースごとに制御を行う。   According to the embodiment, the memory system includes a nonvolatile memory, a setting unit, an address conversion unit, a writing unit, and a control unit. The setting unit allocates a plurality of write management areas included in the nonvolatile memory to a plurality of spaces and input spaces. The write management area is an area for managing the number of writes. The address conversion unit associates the logical address of the write data with the physical address indicating the position of the write data in the nonvolatile memory. The writing unit writes the write data in the input space, and then writes the write data in the input space into a space corresponding to the write data among the plurality of spaces. The control unit controls the nonvolatile memory for each of a plurality of spaces.

第1の実施形態に係る情報処理システムの構成の一例を示すブロック図。1 is a block diagram showing an example of the configuration of an information processing system according to a first embodiment. LBA空間と、ネームスペースと、アドレス変換テーブルと、ガベージコレクション部と、管理データとの関係の一例を示すブロック図。The block diagram which shows an example of the relationship between LBA space, a name space, an address conversion table, a garbage collection part, and management data. 第1の実施形態に係る受付部及び設定部の処理の一例を示すフローチャート。The flowchart which shows an example of the process of the reception part and setting part which concern on 1st Embodiment. 第1の実施形態に係るガベージコレクション部及びアドレス変換部の処理の一例を示すフローチャート。5 is a flowchart illustrating an example of processing of a garbage collection unit and an address conversion unit according to the first embodiment. 第2の実施形態に係る情報処理システムの構成の一例を示すブロック図。The block diagram which shows an example of a structure of the information processing system which concerns on 2nd Embodiment. 第2の実施形態に係る変換テーブルの一例を示すデータ構造図。The data structure figure showing an example of the conversion table concerning a 2nd embodiment. 第2の実施形態に係るメモリシステムの第1の書き込み処理の一例を示すフローチャート。9 is a flowchart showing an example of first write processing of the memory system according to the second embodiment. 第2の実施形態に係るメモリシステムの第2の書き込み処理の一例を示すフローチャート。9 is a flowchart showing an example of second write processing of the memory system according to the second embodiment. 第2の実施形態に係るメモリシステムの読み出し処理の一例を示すフローチャート。10 is a flowchart illustrating an example of a read process of the memory system according to the second embodiment. 第3の実施形態に係る情報処理システムの構成の一例を示すブロック図。The block diagram which shows an example of a structure of the information processing system which concerns on 3rd Embodiment. 第3の実施形態に係るストレージシステムを示す斜視図。The perspective view which shows the storage system which concerns on 3rd Embodiment.

以下、図面を参照して実施形態について説明する。以下の説明において、略同一の機能及び構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。以下の実施形態において、アクセスとは、データの読み出し及びデータの書き込みの双方を意味する。   Hereinafter, embodiments will be described with reference to the drawings. In the following description, about the same function and component, the same code | symbol is attached | subjected and duplication description is performed only when necessary. In the following embodiments, access means both data reading and data writing.

[第1の実施形態]
図1は、本実施形態に係る情報処理システムの構成の一例を示すブロック図である。
[First Embodiment]
FIG. 1 is a block diagram illustrating an example of the configuration of the information processing system according to the present embodiment.

情報処理システム1は、情報処理装置2と、メモリシステム3とを含む。情報処理システム1は、複数の情報処理装置2を含むとしてもよい。情報処理システム1が複数の情報処理装置を備える場合については、後述の第2の実施形態で説明する。   The information processing system 1 includes an information processing device 2 and a memory system 3. The information processing system 1 may include a plurality of information processing devices 2. A case where the information processing system 1 includes a plurality of information processing apparatuses will be described in a second embodiment described later.

メモリシステム3は、例えばSSDであり、コントローラ4と不揮発性メモリ5とを含む。メモリシステム3は、情報処理装置2に内蔵されてもよく、情報処理装置2とメモリシステム3とは、ネットワークなどによりデータを送受信可能に接続されるとしてもよい。   The memory system 3 is, for example, an SSD, and includes a controller 4 and a nonvolatile memory 5. The memory system 3 may be built in the information processing apparatus 2, and the information processing apparatus 2 and the memory system 3 may be connected to each other so as to be able to transmit and receive data via a network or the like.

本実施形態において、不揮発性メモリ5としては、例えば、少なくとも1つのNAND型フラッシュメモリが用いられる。しかしながら、本実施形態は、例えば、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、又は、FeRAM(Ferroelectric Random Access Memory)などのような各種の不揮発性メモリが複数の書き込み管理エリアを含む場合に、適用可能である。ここで、書き込み管理エリアは、書き込み回数を管理する単位のエリアとする。不揮発性メモリ5は、3次元メモリを含むとしてもよい。   In the present embodiment, for example, at least one NAND flash memory is used as the nonvolatile memory 5. However, the present embodiment is, for example, a NOR flash memory, an MRAM (Magnetoresistive Random Access Memory), a PRAM (Phase change Random Access Memory), a ReRAM (Resistive Random Access Memory), or an FeRAM (Ferroelectric Random Access Memory). Such various kinds of nonvolatile memories can be applied when including a plurality of write management areas. Here, the write management area is a unit area for managing the number of times of writing. The nonvolatile memory 5 may include a three-dimensional memory.

例えば、不揮発性メモリ5は、複数のブロック(物理ブロック)を備える。複数のブロックは、ワード線とビット線との交点に配置される複数のメモリセルを含む。不揮発性メモリ5では、ブロック単位にデータが一括して消去される。すなわち、ブロックは、データ消去単位の領域である。データ書き込み及びデータ読み出しは、各ブロックにおけるページ(ワード線)単位で行う。すなわち、ページは、データの書き込み単位又はデータの読み出し単位の領域である。   For example, the nonvolatile memory 5 includes a plurality of blocks (physical blocks). The plurality of blocks include a plurality of memory cells arranged at intersections of word lines and bit lines. In the non-volatile memory 5, data is erased collectively in block units. That is, the block is an area of a data erasing unit. Data writing and data reading are performed in units of pages (word lines) in each block. That is, a page is an area of a data writing unit or a data reading unit.

本実施形態では、書き込み回数がブロック単位で管理されるとする。   In this embodiment, it is assumed that the write count is managed in units of blocks.

情報処理装置2は、メモリシステム3のホスト装置である。情報処理装置2は、メモリシステム3へ、不揮発性メモリ5のブロックと、少なくとも1つのブロックを含むスペースとを関係付けるための設定コマンドC1を送る。   The information processing device 2 is a host device of the memory system 3. The information processing apparatus 2 sends to the memory system 3 a setting command C1 for associating the block of the nonvolatile memory 5 with a space including at least one block.

以下の説明では、スペースは、ネームスペースであるとして説明する。   In the following description, a space is described as a name space.

また、情報処理装置2は、書き込みコマンドC2とともに、ネームスペースの識別データ(NSID)6、書き込み先を示すLBA7、書き込みデータのデータサイズ8、及び、書き込みデータ9を、メモリシステム3へ送る。   Further, the information processing apparatus 2 sends the namespace identification data (NSID) 6, the LBA 7 indicating the write destination, the data size 8 of the write data, and the write data 9 together with the write command C 2 to the memory system 3.

本実施形態において、複数のネームスペースNS0〜NSM(Mは1以上の整数)のそれぞれは、不揮発性メモリ5に含まれる複数のブロックB0〜BN(NはM以上の整数)を区分けすることによって得られるスペースである。本実施形態では、ネームスペースNS0がブロックB0〜B2を含み、ネームスペースNSMがブロックBN-2〜BNを含む。他のネームスペースNS1〜NSM-1もネームスペースNS0,NSMと同様であるとする。 In the present embodiment, each of the plurality of namespaces NS 0 to NS M (M is an integer of 1 or more) includes a plurality of blocks B 0 to B N (N is an integer of M or more) included in the nonvolatile memory 5. It is a space obtained by partitioning. In the present embodiment, the name space NS 0 includes blocks B 0 to B 2 , and the name space NS M includes blocks B N−2 to B N. It is assumed that the other namespaces NS 1 to NS M-1 are the same as the namespaces NS 0 and NS M.

さらに、本実施形態においては、ネームスペースNS0〜NSMを複数のインプットグループIG0〜IGP(Pは1以上の整数)に区分けしている。なお、ネームスペースNS0〜NSMは区分けされることなく、1つのインプットグループとして扱われてもよい。 Further, in the present embodiment, the namespaces NS 0 to NS M are divided into a plurality of input groups IG 0 to IG P (P is an integer of 1 or more). The namespaces NS 0 to NS M may be handled as one input group without being divided.

インプットグループIG0はネームスペースNS0,NS1を含み、インプットグループIGPはネームスペースNSM-1〜NSMを含む。他のインプットグループIG1〜IGP-1もインプットグループIG0,IGPと同様であるとする。 Input group IG 0 contains the name space NS 0, NS 1, input group IG P includes the name space NS M-1 ~NS M. The other input groups IG 1 ~IG P-1 is also similar to the input group IG 0, IG P.

さらに、インプットグループIG0〜IGPは、それぞれ、インプットネームスペースINS0〜INSPを含む。 In addition, input group IG 0 ~IG P, respectively, including the input name space INS 0 ~INS P.

インプットネームスペースINS0〜INSPは、それぞれ、3つのブロックBを含む。しかしながら、インプットネームスペースINS0に含まれるブロックBの数は、1以上であればよい。 Each of the input name spaces INS 0 to INS P includes three blocks B. However, the number of blocks B included in the input name space INS 0 may be one or more.

以下で、ネームスペースNS0,NS1を含むインプットグループIG0を用いて、インプットネームスペースINS0について説明する。 Hereinafter, the input namespace INS 0 will be described using the input group IG 0 including the namespaces NS 0 and NS 1 .

インプットネームスペースINS0は、ネームスペースNS0,NS1に対する書き込みデータ9を格納する。本実施形態において、インプットネームスペースINS0は、ネームスペースNS0,NS1からのデータを格納しないとする。インプットネームスペースINS0は、当該インプットネームスペースINS0内のブロック間でデータを移動する場合がある。 The input namespace INS 0 stores write data 9 for the namespaces NS 0 and NS 1 . In the present embodiment, it is assumed that the input namespace INS 0 does not store data from the namespaces NS 0 and NS 1 . The input name space INS 0 may move data between blocks in the input name space INS 0 .

インプットネームスペースINS0に格納されているデータは、ネームスペースNS0又はネームスペースNS1に対して独立のガベージコレクションが実行された場合に、ガベージコレクションの実行されたネームスペースNS0又はネームスペースNS1に格納される。 Data stored in the input namespace INS 0 is namespace NS 0 or namespace when separate garbage collection against NS 1 is executed, the namespace is executed garbage collection NS 0 or namespace NS Stored in 1 .

なお、本実施形態におけるネームスペースNS0〜NSMとブロックB0〜BNとの間の割り当て関係、インプットネームスペースINS0〜INSPとブロックBとの間の割り当て関係、ネームスペースNS0〜NSMとインプットネームスペースINS0〜INSPとの割り当て関係は一例であり、1つのネームスペースに割り当てられるブロックの個数、1つのインプットネームスペースに割り当てられるブロックの個数、1つのインプットグループに割り当てられるネームスペースの個数などは適宜変更可能である。例えば、各ネームスペースNS0〜NSMに割り当てられるインプットネームスペースINS0〜INSPは選択可能としてもよい。複数のネームスペースNS0〜NSMの間でブロックの個数は異なっていてもよく、複数のインプットネームスペースINS0〜INSPの間でブロックの個数は異なっていてもよい。 In the present embodiment, the allocation relationship between the namespaces NS 0 to NS M and the blocks B 0 to B N , the allocation relationship between the input namespaces INS 0 to INS P and the block B, and the namespace NS 0 to The assignment relationship between NS M and the input namespaces INS 0 to INS P is an example, and the number of blocks assigned to one name space, the number of blocks assigned to one input namespace, and one input group are assigned. The number of namespaces can be changed as appropriate. For example, the input namespaces INS 0 to INS P assigned to the namespaces NS 0 to NS M may be selectable. The number of blocks may be different between the plurality of namespaces NS 0 to NS M , and the number of blocks may be different between the plurality of input namespaces INS 0 to INS P.

コントローラ4は、記憶部10、バッファメモリF0〜FM、プロセッサ11を含む。 The controller 4 includes a storage unit 10, buffer memories F 0 to F M , and a processor 11.

記憶部10は、各ネームスペースNS0〜NSMに対応するアドレス変換テーブル(アドレス変換データ)T0〜TMを格納する。例えば、記憶部10は、作業用メモリとして使用されてもよい。記憶部10は、例えばDRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などのような揮発性メモリでもよく、又は、不揮発性メモリでもよい。記憶部10は、不揮発性メモリと揮発性メモリとの組み合わせでもよい。 The storage unit 10 stores address conversion tables (address conversion data) T 0 to T M corresponding to the namespaces NS 0 to NS M. For example, the storage unit 10 may be used as a working memory. The storage unit 10 may be a volatile memory such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory), or may be a nonvolatile memory. The storage unit 10 may be a combination of a nonvolatile memory and a volatile memory.

アドレス変換テーブルT0〜TMは、ネームスペースNS0〜NSMに対するデータ書き込みにおいて、LBAとPBAとを関係付けたデータであり、例えばLUTである。なお、アドレス変換テーブルT0〜TMの一部又は全部は、メモリ12などのような他のメモリに格納されてもよい。 The address conversion tables T 0 to T M are data in which LBAs and PBAs are related in writing data to the namespaces NS 0 to NS M , for example, LUTs. Part or all of the address conversion tables T 0 to T M may be stored in another memory such as the memory 12.

バッファメモリF0〜FMは、それぞれ、ネームスペースNS0〜NSMに対するデータ書き込みにおいて、書き込みデータを書き込みに適したデータ量になるまで格納する。本実施形態において、バッファメモリF0〜FMは、それぞれ、ネームスペースNS0〜NSMごとに備えられている。しかしながら、バッファメモリは、インプットネームスペースINS0〜INSPごとに備えられてもよい。この場合、バッファメモリの数を少なくすることができる。 Buffer memory F 0 to F M, respectively, in writing data in the namespace NS 0 ~NS M, stores to a data amount suitable to write data to the write. In the present embodiment, the buffer memory F 0 to F M are respectively provided for each namespace NS 0 ~NS M. However, a buffer memory may be provided for each of the input namespaces INS 0 to INS P. In this case, the number of buffer memories can be reduced.

プロセッサ11は、メモリ12、受付部13、設定部14、アドレス変換部15、書き込み部16、ガベージコレクション部G0〜GYを含む。 The processor 11 includes a memory 12, receiving unit 13, setting unit 14, the address conversion section 15, write section 16, the garbage collection unit G 0 ~G Y.

メモリ12は、プログラム17及び管理データ18を格納する。本実施形態において、メモリ12は、プロセッサ11に含まれているが、プロセッサ11の外部に備えられてもよい。メモリ12は、例えば不揮発性のメモリとする。なお、プログラム17及び管理データ18の一部又は全部は、記憶部10などのような他のメモリに格納されてもよい。   The memory 12 stores a program 17 and management data 18. In the present embodiment, the memory 12 is included in the processor 11, but may be provided outside the processor 11. The memory 12 is a nonvolatile memory, for example. Part or all of the program 17 and the management data 18 may be stored in another memory such as the storage unit 10.

プログラム17は、例えばファームウェアである。プロセッサ11は、プログラム17を実行することにより、受付部13、設定部14、アドレス変換部15、書き込み部16、ガベージコレクション部G0〜GYとして機能する。 The program 17 is firmware, for example. The processor 11 executes a program 17, reception unit 13, setting unit 14, the address conversion section 15, write section 16, which functions as a garbage collection unit G 0 ~G Y.

管理データ18は、ネームスペースNS0〜NSMとブロックB0〜BNとの関係、インプットネームスペースINS0〜INSPとブロックBとの関係、ネームスペースNS0〜NSMとインプットネームスペースINS0〜INSPとの関係(インプットグループIG0〜IGP)を示すデータである。管理データ18を参照することにより、どのブロックがどのネームスペース又はインプットネームスペースに所属しているか、どのインプットネームスペースがどのネームスペースに割り当てられているか、判断可能である。 The management data 18 includes the relationship between the namespaces NS 0 to NS M and the blocks B 0 to B N , the relationship between the input namespaces INS 0 to INS P and the block B, the namespaces NS 0 to NS M and the input namespace INS. 0 to INS P is data indicating the relationship (input groups IG 0 to IG P ). By referring to the management data 18, it can be determined which block belongs to which namespace or input namespace, and which input namespace is assigned to which namespace.

さらに、本実施形態では、管理データ18は、インプットネームスペースINS0〜INSPに格納されているデータと当該データに対応するネームスペースNS0〜NSMとの関係、インプットネームスペースINS0〜INSPに格納されているネームスペースNS0〜NSMごとのデータのデータ量、ネームスペースNS0〜NSMごとの書き込み可能データ量、ネームスペースNS0〜NSMごとの書き込み可能な最大データ量、インプットネームスペースINS0〜INSPに含まれるブロックBの書き込み時間データ(書き込みが実行された時間)、インプットネームスペースINS0〜INSPに含まれるブロックBごとの有効データのデータ量など、各種の情報を含む。 Further, in the present embodiment, the management data 18 includes the relationship between the data stored in the input namespaces INS 0 to INS P and the namespaces NS 0 to NS M corresponding to the data, the input namespaces INS 0 to INS. amount of data for each namespace NS 0 ~NS M stored in P, the write data amount of each namespace NS 0 ~NS M, the maximum amount of data that can be written per namespace NS 0 ~NS M, Various data such as the write time data of block B included in the input namespace INS 0 to INS P (the time when the write was executed), the amount of valid data for each block B included in the input namespace INS 0 to INS P Contains information.

本実施形態において、データ量は、例えば、データサイズ又はブロックサイズで表されてもよい。データ量は、例えば、各データのデータサイズが同じ場合には、データの個数又はブロックの個数で表されてもよい。   In the present embodiment, the data amount may be represented by, for example, a data size or a block size. For example, when the data size of each data is the same, the data amount may be represented by the number of data or the number of blocks.

受付部13は、情報処理装置2から、不揮発性メモリ5の各ブロックと、各ネームスペースとを関係付けるための設定コマンドC1を受け付ける。また、受付部13は、情報処理装置2から、書き込みコマンドC2、NSID6、LBA7、データサイズ8、データ9を受け付ける。   The receiving unit 13 receives a setting command C <b> 1 for associating each block of the nonvolatile memory 5 with each name space from the information processing device 2. The accepting unit 13 accepts a write command C 2, NSID 6, LBA 7, data size 8, and data 9 from the information processing apparatus 2.

以下の説明では、説明を簡略化するため、書き込みコマンドC2に、ネームスペースNS0を示すNSID6が付されている場合について説明する。しかしながら、書き込みコマンドC2に、他のネームスペースNS1〜NSMを示すNSIDを付すことも可能である。 In the following description, for simplification of the description, the write command C2, it will be described a case where NSID6 showing a namespace NS 0 is attached. However, it is also possible to attach NSIDs indicating other namespaces NS 1 to NS M to the write command C2.

設定部14は、受付部13によってネームスペースの設定コマンドC1が受け付けられた場合に、設定コマンドC1に基づいて、ネームスペースNS0〜NSMにブロックB0〜BNを割り当て、インプットネームスペースINS0〜INSPにブロックBを割り当て、インプットネームスペースINS0〜INSPにネームスペースNS0〜NSMを割り当て、インプットグループIG0〜IGPを設定する。 When the receiving unit 13 receives the namespace setting command C1, the setting unit 14 assigns blocks B 0 to B N to the namespaces NS 0 to NS M based on the setting command C1, and inputs the input namespace INS. 0 ~INS P to allocate the block B, assigned the namespace NS 0 ~NS M to the input namespace INS 0 ~INS P, to set the input group IG 0 ~IG P.

ネームスペースNS0〜NSMとブロックB0〜BNとの間の割り当ては、設定部14がネームスペースNS0〜NSMのデータ格納状態を監視し、各ネームスペースNS0〜NSMで、データ容量、アクセス頻度、書き込み頻度、アクセス回数、書き込み回数、又は、データ格納率が同レベルとなるように行われてもよく、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。 Allocation between the namespace NS 0 ~NS M and the block B 0 .about.B N is setting unit 14 monitors the data storage state of namespace NS 0 ~NS M, each namespace NS 0 ~NS M, The data capacity, the access frequency, the write frequency, the access count, the write count, or the data storage rate may be performed at the same level, or may be performed in accordance with an instruction from the information processing device 2, and the memory This may be performed in accordance with an instruction from an administrator of the system 3.

ここで、データ容量とは書き込み可能なデータサイズであり、アクセス頻度又は書き込み頻度とは単位時間当たりのアクセス回数又は書き込み回数であり、データ格納率とは、ある領域サイズに対するデータ格納済みの領域サイズの割合を示す値とする。   Here, the data capacity is the writable data size, the access frequency or the write frequency is the number of accesses or the number of writes per unit time, and the data storage rate is the size of the area where data has been stored for a certain area size A value indicating the ratio of.

そして、設定部14は、ネームスペースNS0〜NSMにブロックB0〜BNを割り当てた情報、インプットネームスペースINS0〜INSPにブロックBを割り当てた情報、インプットネームスペースINS0〜INSPにネームスペースNS0〜NSMを割り当てた情報、インプットネームスペースINS0〜INSPに格納されているデータと当該データに対応するネームスペースNS0〜NSMとの関係を示す情報、インプットネームスペースINS0〜INSPに格納されており各ネームスペースNS0〜NSMに対応するデータのデータ量、ネームスペースNS0〜NSMごとの書き込み可能データ量、ネームスペースNS0〜NSMごとの書き込み可能な最大データ量、インプットネームスペースINS0〜INSPに含まれるブロックの書き込み時間データ、インプットネームスペースINS0〜INSPのブロックBごとの有効データのデータ量など各種の情報を含む管理データ18を生成し、管理データ18をメモリ12に格納する。 The setting unit 14, the namespace NS 0 ~NS M on the information assigned to the block B 0 .about.B N, Input namespace INS 0 ~INS P on information allocates a block B, Input namespace INS 0 ~INS P Information in which the namespaces NS 0 to NS M are allocated, information indicating the relationship between the data stored in the input namespaces INS 0 to INS P and the namespaces NS 0 to NS M corresponding to the data, the input namespace INS 0 ~INS amount of data corresponding to the stored respective namespace NS 0 and ~NS M to P, the write data amount of each namespace NS 0 ~NS M, writing for each namespace NS 0 ~NS M maximum amount of data that can be, Bro contained in input namespace INS 0 ~INS P It generates management data 18 including click write time data, the data amount such as various kinds of information of the valid data of each block B Input namespace INS 0 ~INS P, storing management data 18 in the memory 12.

例えば、設定部14は、インプットネームスペースINS0〜INSPにデータが書き込まれるごとに、インプットネームスペースINS0〜INSPに格納されているネームスペースNS0〜NSMごとのデータのデータ量を求める。そして、設定部14は、ネームスペースNS0〜NSMに対応する所定のデータ量から、求められたインプットネームスペースINS0〜INSPに格納されているネームスペースNS0〜NSMごとのデータのデータ量を差し引いた値に相当する数のブロックを、ネームスペースNS0〜NSMに割り当てる。 For example, the setting unit 14, each time the data in the input namespace INS 0 ~INS P is written, the data amount of data for each namespace NS 0 ~NS M stored in the input namespace INS 0 ~INS P Ask. The setting unit 14, a predetermined corresponding to the namespace NS 0 ~NS M from the data amount, the data for each namespace NS 0 stored in the input namespace INS 0 ~INS P obtained ~NS M A number of blocks corresponding to a value obtained by subtracting the data amount is allocated to the namespaces NS 0 to NS M.

例えば、設定部14は、ネームスペースNS0〜NSMと、インプットネームスペースINS0〜INSPに格納されているネームスペースNS0〜NSMごとのデータのデータ量との関係を示す情報を、管理データ18で管理する。 For example, the setting unit 14, and namespace NS 0 ~NS M, information indicating the relationship between the amount of data for each namespace NS 0 ~NS M stored in the input namespace INS 0 ~INS P, Managed by management data 18.

例えば、設定部14は、インプットネームスペースINS0〜INSPに含まれているブロックBの中からデータ移動対象のブロックを選択する。設定部14は、データ移動対象のブロックに格納されておりネームスペースNS0〜NSMに対応する有効データが、当該有効データに対応するネームスペースNS0〜NSMのブロックに移動された場合、インプットネームスペースINS0〜INSPに格納されているネームスペースNS0〜NSMごとのデータのデータ量から、ネームスペースNS0〜NSMに移動された有効データのデータ量を差し引く。そして、設定部14は、差し引いた値で、管理データ18を更新する。 For example, the setting unit 14 selects a data movement target block from among the blocks B included in the input name spaces INS 0 to INS P. Setting unit 14, if the valid data corresponding to the namespace NS 0 ~NS M is stored in the block data migration target has been moved to a block of namespace NS 0 ~NS M corresponding to the valid data, The amount of valid data moved to the name spaces NS 0 to NS M is subtracted from the amount of data for the name spaces NS 0 to NS M stored in the input name spaces INS 0 to INS P. Then, the setting unit 14 updates the management data 18 with the subtracted value.

ここで、設定部14は、有効データを移動するブロックの選択方法として、インプットネームスペースINS0〜INSPに含まれているブロックBのうち、最も書き込み時間データの古いブロックをデータ移動対象のブロックとして選択してもよい。 Here, as a method for selecting a block to which valid data is moved, the setting unit 14 selects a block with the oldest write time data among the blocks B included in the input name spaces INS 0 to INS P as a block to be moved. You may choose as

設定部14は、有効データを移動するブロックの選択方法として、インプットネームスペースINS0〜INSPに含まれているブロックBのうち、有効データのデータ量の最も少ないブロックをデータ移動対象のブロックとして選択してもよい。また、本実施形態においては、例えば、インプットネームスペースINS0〜INSPに含まれているブロックの中から、有効データのデータ量が第1のしきい値より少ないブロックを、データ移動対象のブロックとして選択してもよい。 As a method for selecting a block to which valid data is to be moved, the setting unit 14 selects a block having the smallest amount of valid data from among the blocks B included in the input name spaces INS 0 to INS P as a data movement target block. You may choose. Further, in the present embodiment, for example, among the blocks included in the input name spaces INS 0 to INS P , a block whose effective data amount is less than the first threshold value is selected as a data movement target block. You may choose as

設定部14は、有効データを移動するために選択されたデータ移動対象のブロックに格納されている有効データのデータ量が第2のしきい値より少ない場合に、インプットネームスペースINS0〜INSPに割り当てるブロック数を少なくしてもよい。これとは逆に、設定部14は、データ移動対象のブロックに格納されている有効データのデータ量が第3のしきい値より多い場合に、インプットネームスペースINS0〜INSPに割り当てるブロック数を多くしてもよい。 The setting unit 14 inputs the input namespaces INS 0 to INS P when the amount of valid data stored in the data movement target block selected to move valid data is smaller than the second threshold value. The number of blocks allocated to may be reduced. On the contrary, the setting unit 14 assigns the number of blocks to be assigned to the input namespaces INS 0 to INS P when the amount of valid data stored in the data movement target block is larger than the third threshold value. You may increase.

例えば、設定部14は、インプットネームスペースINS0〜INSPに含まれるブロックの数が第4のしきい値より多い場合に、インプットネームスペースINS0〜INSPからデータ移動対象のブロックを選択してもよい。この場合、書き込み部16は、データ移動対象のブロックに格納されている有効データを当該有効データに対応するネームスペースNS0〜NSMに移動する。そして、設定部14は、インプットネームスペースINS0〜INSPに含まれるブロックの数を減らし、ネームスペースNS0〜NSMに含まれるブロック数を増やす。 For example, when the number of blocks included in the input namespace INS 0 to INS P is larger than the fourth threshold value, the setting unit 14 selects a block to be moved from the input namespace INS 0 to INS P. May be. In this case, the writing unit 16 moves the valid data stored in the data movement target block to the namespaces NS 0 to NS M corresponding to the valid data. Then, the setting unit 14 reduces the number of blocks included in the input namespaces INS 0 to INS P and increases the number of blocks included in the namespaces NS 0 to NS M.

加えて、設定部14は、ネームスペースNS0〜NSMごとに実行されたガベージコレクションの結果に基づいて、データを格納していない空ブロックを、ガベージコレクション前に属するネームスペースから他のネームスペースに変更し、管理データ18を更新する。これにより、ネームスペースNS0〜NSM間でウェアレベリング(Wear Leveling)を実行することができる。ネームスペースNS0〜NSMとブロックB0〜BNとの間の割り当て変更は、設定部14がネームスペースNS0〜NSMのデータ格納状態を監視し、上記の管理データ18の生成時と同様に監視結果に応じて行われてもよく、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。例えば、ネームスペースNS0〜NSMの変更は、データ容量の少ない、アクセス頻度の低い、アクセス回数の少ない、又は、データ格納率の低いネームスペースの空ブロックを、データ容量の多い、アクセス頻度の高い、アクセス回数の多い、又は、データ格納率の高いネームスペースに変換する。 In addition, based on the result of the garbage collection performed for each of the namespaces NS 0 to NS M , the setting unit 14 converts empty blocks that do not store data from the namespace that belongs to the garbage collection to another namespace. And the management data 18 is updated. As a result, wear leveling can be performed between the namespaces NS 0 to NS M. The allocation change between the namespaces NS 0 to NS M and the blocks B 0 to B N is performed when the setting unit 14 monitors the data storage state of the namespaces NS 0 to NS M and generates the management data 18 described above. Similarly, it may be performed according to the monitoring result, may be performed according to an instruction from the information processing apparatus 2, or may be performed according to an instruction from an administrator of the memory system 3. For example, the name space NS 0 to NS M is changed by changing an empty block of a name space with a small data capacity, a low access frequency, a low access frequency, or a low data storage rate to a high data capacity or an access frequency. The name space is converted into a name space with a high access frequency or a high data storage rate.

さらに、設定部14は、オーバープロビジョニング(Over Provisioning)のために、設定コマンドC1に基づいて、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPごとに、不揮発性メモリ5に、普段使用されない予備領域P0〜PYを設定する。予備領域P0〜PYの設定は、設定部14がネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPの各データ容量などに応じて行うとしてもよく、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。 Further, for over provisioning, the setting unit 14 normally stores in the nonvolatile memory 5 for each of the namespaces NS 0 to NS M and the input namespaces INS 0 to INS P based on the setting command C 1. Spare areas P 0 to P Y that are not used are set. The setting of the spare areas P 0 to P Y may be performed by the setting unit 14 according to the data capacity of the name spaces NS 0 to NS M and the input name spaces INS 0 to INS P. It may be performed according to an instruction, or may be performed according to an instruction from an administrator of the memory system 3.

本実施形態において、予備領域P0〜PYは、不揮発性メモリ5に確保されているが、不揮発性メモリ5ではないメモリシステム3内の他のメモリに確保されていてもよい。例えば、予備領域P0〜PYは、DRAM、SRAMなどのメモリに確保されてもよい。 In the present embodiment, the spare areas P 0 to P Y are secured in the nonvolatile memory 5, but may be secured in another memory in the memory system 3 that is not the nonvolatile memory 5. For example, the spare areas P 0 to P Y may be secured in a memory such as DRAM or SRAM.

アドレス変換部15は、受付部13によって書き込みコマンドC2が受け付けられた場合に、書き込みコマンドC2に付されていたNSID6の示すネームスペースNS0に対応するアドレス変換テーブルT0に対して、書き込みコマンドC2に付されていたLBA7をPBAに変換するための関係付けを行う。 The address conversion unit 15, when a write command C2 is received by the receiving unit 13, the address conversion table T 0 corresponding to the namespace NS 0 indicated by NSID6 had been subjected to the write command C2, the write command C2 The association for converting the LBA 7 attached to the PBA into the PBA is performed.

例えば、アドレス変換部15は、書き込み時に、LBA7と、インプットネームスペースINS0内のPBAとを関係付けて、アドレス変換テーブルT0を更新する。さらに、アドレス変換部15は、インプットネームスペースINS0からネームスペースNS0へのデータの移動によってLBA7とPBAとの関係が変更された場合に、LBA7とネームスペースNS0のPBAとを関連付けて、アドレス変換テーブルT0を更新する。 For example, the address conversion unit 15, at the time of writing, the LBA7, in association with the PBA Input namespace INS 0, updates the address conversion table T 0. Further, the address converting unit 15, when the relationship between LBA7 and PBA is changed by moving the data from the input namespace INS 0 to namespace NS 0, in association with the PBA of LBA7 and namespace NS 0, It updates the address conversion table T 0.

本実施形態において、アドレス変換部15は、プロセッサ11によって実現されるとしている。しかしながら、アドレス変換部15は、プロセッサ11と別の構成としてもよい。   In the present embodiment, the address conversion unit 15 is realized by the processor 11. However, the address conversion unit 15 may have a configuration different from that of the processor 11.

また、アドレス変換部15は、アドレス変換テーブルT0〜TMに基づいてアドレス変換を行うが、これに代えてキーバリュー型検索によりアドレス変換を行ってもよい。例えば、LBAをキーとし、PBAをバリューとすることで、キーバリュー型検索によるアドレス変換は実現可能である。 The address conversion unit 15 performs address conversion based on the address conversion tables T 0 to T M , but may perform address conversion by key value type search instead. For example, by using LBA as a key and PBA as a value, address conversion by key-value search can be realized.

書き込み部16は、アドレス変換部15によって得られたインプットネームスペースINS0〜INSPにおけるPBAの示す位置に書き込みデータ9を書き込み、その後、インプットネームスペースINS0〜INSPからアドレス変換部15によって得られたネームスペースNS0〜NSMにおけるPBAの示す位置に書き込みデータ9を書き込む。 The write unit 16 writes the write data 9 to the position indicated by the PBA in the Input namespace INS 0 ~INS P obtained by the address converting unit 15, then, obtained by the address converter 15 from the input namespace INS 0 ~INS P Write data 9 is written at a position indicated by PBA in the designated name spaces NS 0 to NS M.

本実施形態において、書き込み部16は、書き込みコマンドC2に付されていたNSID6の示すネームスペースNS0に対応するバッファメモリF0に、書き込みデータ9を格納する。次に、書き込み部16は、バッファメモリF0がインプットネームスペースINS0又はネームスペースNS0に適したデータ量になった場合に、インプットネームスペースINS0に、バッファメモリF0のデータを書き込む。そして、書き込み部16は、例えば、ネームスペースNS0に対するガベージコレクションの実行に基づいて、設定部14によって選択されたデータ移動対象のブロックに格納されておりネームスペースNS0に対応する有効データを、当該有効データに関連付けられているネームスペースNS0のブロックに移動する。例えば、書き込み部16は、ネームスペースNS0に対するガベージコレクションの実行時に併せてインプットネームスペースINS0に格納されておりネームスペースNS0に対応する有効データを、ネームスペースNS0に書き込む。なお、書き込み部16によるインプットネームスペースINS0からネームスペースNS0へのデータの移動は、任意のタイミングで実行されてもよい。 In the present embodiment, the writing unit 16 stores the write data 9 in the buffer memory F 0 corresponding to the name space NS 0 indicated by the NSID 6 attached to the write command C2. Next, the write unit 16, when the buffer memory F 0 becomes data amount suitable for the input namespace INS 0 or namespace NS 0, the input namespace INS 0, writes the data in the buffer memory F 0. The write unit 16, for example, based on the execution of the garbage collection for the namespace NS 0, the valid data corresponding to the namespace NS 0 is stored in the block of the selected data migration target by setting unit 14, Move to a block in namespace NS 0 associated with the valid data. For example, the writing unit 16, the valid data corresponding to the namespace NS 0 is stored in the input namespace INS 0 together when the garbage collection performed for the namespace NS 0, writes the namespace NS 0. The data movement from the input namespace INS 0 to the namespace NS 0 by the writing unit 16 may be executed at an arbitrary timing.

ガベージコレクション部G0〜GYは、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPに対応しており、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPごとに独立にガベージコレクションを実行可能である。ガベージコレクションとは、不要になったメモリ領域を解放する処理、又は、隙間のあるメモリ領域に書き込まれているデータを集めて連続した利用可能なメモリ領域を確保する処理である。ガベージコレクション部G0〜GYは、並列にガベージコレクションを実行可能としてもよく、順にガベージコレクション部G0〜GYを実行してもよい。 Garbage collection unit G 0 ~G Y corresponds to the namespace NS 0 ~NS M and input namespace INS 0 ~INS P, for each namespace NS 0 ~NS M and input namespace INS 0 ~INS P Garbage collection can be performed independently. Garbage collection is a process of releasing a memory area that is no longer needed, or a process of collecting data written in a memory area with a gap and securing a continuous usable memory area. The garbage collection units G 0 to G Y may execute garbage collection in parallel, or may sequentially execute the garbage collection units G 0 to G Y.

ガベージコレクション部G0〜GYのうちガベージコレクション部G0を用いて具体的に説明する。ガベージコレクション部G0は、まず、管理データ18に基づいて、ネームスペースNS0に対応するブロックB0〜B2を選択する。次に、ガベージコレクション部G0は、選択されたブロックB0〜B2に対するガベージコレクションを実行する。そして、ガベージコレクション部G0によるガベージコレクション結果に基づいて、アドレス変換部15は、アドレス変換テーブルT0を更新する。 It will be specifically described with reference to garbage collection unit G 0 of the garbage collection unit G 0 ~G Y. The garbage collection unit G 0 first selects blocks B 0 to B 2 corresponding to the name space NS 0 based on the management data 18. Next, the garbage collection unit G 0 performs garbage collection on the selected blocks B 0 to B 2 . Then, based on the garbage collection result by the garbage collection unit G 0 , the address conversion unit 15 updates the address conversion table T 0 .

なお、本実施形態においては、LBAとPBAとがアドレス変換テーブルT0〜TMで関係付けられており、PBAで特定可能なブロックとNSIDとが管理データ18で関係付けられている。したがって、LBAが重複しないユニークなアドレスであり管理データ18が生成されれば、プロセッサ11側で、書き込みコマンドC2に付されているLBA7から書き込み先のネームスペースNS0を特定可能である。したがって、LBA7が重複せず管理データ18が生成された後には、書き込みコマンドC2にNSID6が付されることを省略し、LBA7とアドレス変換テーブルT0〜TMと管理データ18に基づいて、プロセッサ11側でNSID6が求められるとしてもよい。 In the present embodiment, LBA and PBA are associated with each other in the address conversion tables T 0 to T M , and a block that can be identified with PBA and NSID are associated with each other in the management data 18. Therefore, if the management data 18 is generated with a unique address that does not overlap the LBA, the processor 11 can identify the write destination namespace NS 0 from the LBA 7 attached to the write command C2. Therefore, after the LBA 7 is not duplicated and the management data 18 is generated, the NSID 6 is not added to the write command C 2, and the processor is based on the LBA 7, the address conversion tables T 0 to T M, and the management data 18. NSID 6 may be obtained on the 11th side.

図2は、LBA空間と、ネームスペースNS0〜NSMと、アドレス変換テーブルT0〜TMと、ガベージコレクション部G0〜GMと、管理データ18との関係の一例を示すブロック図である。 FIG. 2 is a block diagram illustrating an example of the relationship among the LBA space, the namespaces NS 0 to NS M , the address conversion tables T 0 to T M , the garbage collection units G 0 to G M, and the management data 18. is there.

情報処理装置2のLBA空間A0〜AMは、それぞれネームスペースNS0〜NSMに割り当てられている。 LBA space A 0 to A M of the information processing apparatus 2 are respectively assigned to the namespace NS 0 ~NS M.

LBA空間A0は論理アドレス0〜E0を含む。LBA空間A1は論理アドレス0〜E1を含む。LBA空間AMは論理アドレス0〜EMを含む。他のLBA空間A2〜AM-1も同様に複数の論理アドレスを含む。 LBA space A 0 includes logical addresses 0 to E 0 . LBA space A 1 includes logical addresses 0 to E 1 . The LBA space A M includes logical addresses 0 to E M. The other LBA spaces A 2 to A M-1 similarly include a plurality of logical addresses.

以下の説明では、説明を簡略化するために、LBA空間A0とこのLBA空間A0に対して割り当てられているネームスペースNS0とを代表して説明する。しかしながら、他のLBA空間A1〜AM及びネームスペースNS1〜NSMについても同様である。 In the following description, to simplify the description, it will be described as a representative and namespace NS 0 being allocated to LBA space A 0 Toko of LBA space A 0. However, the same applies to the other LBA spaces A 1 to A M and the name spaces NS 1 to NS M.

情報処理装置2は、LBA空間A0のデータを不揮発性メモリ5に書き込む場合に、書き込みコマンドC2、LBA空間A0に対応するネームスペースNS0を示すNSID6、LBA空間A0内のLBA7、データサイズ8、LBA7に対応する書き込みデータ9をメモリシステム3に送る。 The information processing apparatus 2, LBA data space A 0 when writing to a non-volatile memory 5, the write command C2, LBA NSID6 shows a namespace NS 0 corresponding to the spatial A 0, LBA space A 0 in LBA7, data Write data 9 corresponding to size 8 and LBA 7 is sent to the memory system 3.

管理データ18は、ネームスペースNS0とブロックB0〜B2と関係付けている。 The management data 18 is associated with the name space NS 0 and the blocks B 0 to B 2 .

ガベージコレクション部G0は、管理データ18に基づいて、ガベージコレクション部G0に対応するネームスペースNS0に含まれているブロックB0〜B2に対して、ガベージコレクションを実行する。 Garbage collection unit G 0, based on the management data 18, the block B 0 .about.B 2 contained in the namespace NS 0 corresponding to garbage collection unit G 0, performs garbage collection.

ガベージコレクションの結果、ブロックB0〜B2内でデータの配置が変化する。このため、ガベージコレクション部G0は、図2において省略されているアドレス変換部15にアドレス変換テーブルT0の更新を指示し、アドレス変換部15は、ガベージコレクション後のデータ配置と整合するように、ネームスペースNS0に対応するアドレス変換テーブルT0を更新する。 As a result of the garbage collection, the arrangement of data changes in the blocks B 0 to B 2 . For this reason, the garbage collection unit G 0 instructs the address conversion unit 15 omitted in FIG. 2 to update the address conversion table T 0 , so that the address conversion unit 15 matches the data arrangement after the garbage collection. , to update the address conversion table T 0 corresponding to the name space NS 0.

図3は、本実施形態に係る受付部13及び設定部14の処理の一例を示すフローチャートである。   FIG. 3 is a flowchart illustrating an example of processing of the reception unit 13 and the setting unit 14 according to the present embodiment.

ステップS301において、受付部13は、ネームスペースNS0〜NSMの設定コマンドC1を受け付ける。 In step S301, the reception unit 13 receives a setting command C1 for the namespaces NS 0 to NS M.

ステップS302において、設定部14は、ネームスペースNS0〜NSMにブロックB0〜BNを割り当てた情報、インプットネームスペースINS0〜INSPにブロックBを割り当てた情報、インプットネームスペースINS0〜INSPにネームスペースNS0〜NSMを割り当てた情報、インプットネームスペースINS0〜INSPに格納されているデータと当該データに対応するネームスペースNS0〜NSMとの関係を示す情報、その他の各種の情報を含む管理データ18を生成する。 In step S302, the setting unit 14, information on a namespace NS 0 ~NS M was assigned a block B 0 .about.B N, Input namespace INS 0 ~INS information P to the allocated block B, Input namespace INS 0 ~ information assigned a namespace NS 0 ~NS M in INS P, information indicating the relationship between the namespace NS 0 ~NS M corresponding to the data and the data stored in the input namespace INS 0 ~INS P, other The management data 18 including the various types of information is generated.

ステップS303において、設定部14は、管理データ18をメモリ12に格納する。   In step S <b> 303, the setting unit 14 stores the management data 18 in the memory 12.

ステップS304において、設定部14は、管理データ18を更新するか否か判断する。例えば、設定部14は、ガベージコレクションの実行に基づいて、インプットネームスペースINS0〜INSPからネームスペースNS0〜NSMへデータが移動した場合に、管理データ18を更新すると判断する。 In step S304, the setting unit 14 determines whether to update the management data 18 or not. For example, the setting unit 14 determines to update the management data 18 when data is moved from the input namespace INS 0 to INS P to the namespace NS 0 to NS M based on execution of garbage collection.

管理データ18を更新しない場合には、処理はステップS307に移動する。   If the management data 18 is not updated, the process moves to step S307.

管理データ18を更新する場合には、ステップS305において、設定部14は、管理データ18を更新する。   When updating the management data 18, the setting unit 14 updates the management data 18 in step S305.

ステップS306において、設定部14は、更新された管理データ18をメモリ12に格納する。   In step S <b> 306, the setting unit 14 stores the updated management data 18 in the memory 12.

ステップS307において、設定部14は、処理を継続するか否か判断する。   In step S307, the setting unit 14 determines whether or not to continue the process.

処理を継続する場合、処理はステップS304に移動する。   When the process is continued, the process moves to step S304.

処理を継続しない場合、処理は終了する。   If the process is not continued, the process ends.

図4は、本実施形態に係るガベージコレクション部G0及びアドレス変換部15の処理の一例を示すフローチャートである。なお、他のガベージコレクション部G1〜GMでも同様の処理が実行される。この図4の処理は、例えば、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。また、ガベージコレクション部G0は、例えば、ガベージコレクション対象のネームスペースNS0のデータ格納状態を監視し、ガベージコレクションの開始を判断するなどのように、自発的に図4の処理を実行してもよい。より具体的に説明すると、例えば、ガベージコレクション部G0は、ネームスペースNS0内の空きブロックが所定数以下、又は、ネームスペースNS0内の全ブロックに対する空きブロックの割合が所定値以下、の場合に、ネームスペースNS0に対するガベージコレクションを実行する。 Figure 4 is a flowchart illustrating an example of a process of garbage collection unit G 0 and the address converting unit 15 according to the present embodiment. Incidentally, the same processing even other garbage collection unit G 1 ~G M is performed. The process of FIG. 4 may be performed according to an instruction from the information processing apparatus 2, for example, or may be performed according to an instruction from an administrator of the memory system 3. Further, the garbage collection unit G 0 spontaneously executes the process of FIG. 4 such as monitoring the data storage state of the namespace NS 0 subject to garbage collection and determining the start of garbage collection. Also good. To be more specific, for example, garbage collection unit G 0 is less than a predetermined number of free blocks in the namespace NS 0, or the proportion of free blocks for all block in the namespace NS 0 is less than the predetermined value, the In this case, garbage collection is executed for the namespace NS 0 .

ステップS401において、ガベージコレクション部G0は、管理データ18に基づいて、ガベージコレクション対象のネームスペースNS0に対応するブロックB0〜B2を選択する。 In step S401, garbage collection unit G 0, based on the management data 18, selects a block B 0 .about.B 2 corresponding to the namespace NS 0 subject to garbage collection.

ステップS402において、ガベージコレクション部G0は、選択されたネームスペースNS0内のブロックB0〜B2に対するガベージコレクションを実行する。このガベージコレクションの実行に基づいて、書き込み部16は、インプットネームスペースINS0からネームスペースNS0へデータを移動させてもよい。 In step S402, garbage collection unit G 0 performs garbage collection for the block B 0 .about.B 2 in the namespace NS 0 selected. Based on the execution of the garbage collection, the writing unit 16 may move data from the input namespace INS 0 to the namespace NS 0 .

ステップS403において、アドレス変換部15は、ガベージコレクション対象のネームスペースNS0に対応するアドレス変換テーブルT0を、ガベージコレクション後のブロックB0〜B2の状態及びインプットネームスペースINS0のブロックBの状態にそって更新する。 In step S403, the address converter 15, the address conversion table T 0 corresponding to the namespace NS 0 subject to garbage collection, after the garbage collection of the block B 0 .about.B 2 state and block B Input namespace INS 0 Update according to the state.

以上説明した本実施形態においては、ネームスペースNS0〜NSMごとに、予め定められた又は情報処理装置2から設定されたブロック量を割り当てることができ、ネームスペースNS0〜NSMに対応するデータを、そのネームスペースNS0〜NSMに割り当てられたブロックB0〜BNに書き込むことができ、ネームスペースNS0〜NSMごとに異なるデータ量を設定することができる。 Above in the present embodiment described, each namespace NS 0 ~NS M, can be assigned a block amount set by the predetermined or the information processing apparatus 2, corresponding to the namespace NS 0 ~NS M data can be written into that namespace NS 0 ~NS blocks B allocated to the M 0 .about.B N, it is possible to set a different data amount for each namespace NS 0 ~NS M.

本実施形態においては、例えばガベージコレクション実行などのような任意のタイミングで、インプットネームスペースINS0〜INSPに格納されていたデータを、ネームスペースNS0〜NSMに移動させることができる。 In the present embodiment, data stored in the input namespaces INS 0 to INS P can be moved to the namespaces NS 0 to NS M at an arbitrary timing such as execution of garbage collection.

本実施形態においては、管理データ18に基づいて、インプットネームスペースINS0〜INSPに格納されている各データが、どのネームスペースNS0〜NSMに関係するか認識することができる。 In the present embodiment, based on the management data 18, it is possible to recognize which name space NS 0 to NS M each data stored in the input name spaces INS 0 to INS P relates to.

本実施形態においては、インプットネームスペースINS0〜INSPにデータが書き込まれた場合に、インプットネームスペースINS0〜INSPに格納されておりネームスペースNS0〜NSMに対応するデータのデータ量を計算する。そして、ネームスペースNS0〜NSMに割り当てるブロックB0〜BNの数を、当該求められたデータ量の分、差し引く。 In the present embodiment, when data is written into the input namespace INS 0 ~INS P, data of the corresponding data to the input namespace INS 0 ~INS P to the stored namespace NS 0 and ~NS M Calculate Then, the number of blocks B 0 to B N allocated to the namespaces NS 0 to NS M is subtracted by the determined data amount.

これにより、インプットネームスペースINS0〜INSPに格納されているデータの分だけ、対応するネームスペースNS0〜NSMに割り当てられるブロックの数を減らすことができ、効率的にネームスペースNS0〜NSMを割り当てることができる。 As a result, the number of blocks allocated to the corresponding name spaces NS 0 to NS M can be reduced by the amount of data stored in the input name spaces INS 0 to INS P , and the name spaces NS 0 to NS NS M can be assigned.

本実施形態においては、インプットネームスペースINS0〜INSPに含まれているブロックBの中からデータ移動対象のブロックを選択し、データ移動対象のブロックに格納されている有効データを、当該有効データに対応するネームスペースのブロックに移動することができる。この場合に、インプットネームスペースINS0〜INSPに格納されておりネームスペースNS0〜NSMに対応するデータのデータ量から、データ移動対象のブロックに格納されておりネームスペースNS0〜NSMに対応する有効データのデータ量を差し引く。 In the present embodiment, a data movement target block is selected from the blocks B included in the input name spaces INS 0 to INS P , and the valid data stored in the data movement target block is selected as the valid data. You can move to the namespace block corresponding to. In this case, the amount of data corresponding to the input namespace INS 0 ~INS P-stored in and namespace NS 0 ~NS M, namespaces are stored in blocks of data migration target NS 0 ~NS M The amount of valid data corresponding to is subtracted.

これにより、インプットネームスペースINS0〜INSPからネームスペースNS0〜NSMへデータが移動された場合であっても、インプットネームスペースINS0〜INSPに格納されておりネームスペースNS0〜NSMに対応するデータのデータ量を認識することができる。 Thus, even when data is moved from the input namespace INS 0 to INS P to the namespace NS 0 to NS M , the data is stored in the input namespace INS 0 to INS P and is stored in the namespace NS 0 to NS P. The amount of data corresponding to M can be recognized.

本実施形態においては、インプットネームスペースINS0〜INSPからネームスペースNS0〜NSMへ古いデータを移動させることができる。 In the present embodiment, old data can be moved from the input namespaces INS 0 to INS P to the namespaces NS 0 to NS M.

本実施形態においては、例えば、インプットネームスペースINS0〜INSPから有効データの少ないブロックを選択し、当該選択されたブロックからネームスペースNS0〜NSMへ有効データを移動させることができる。また、本実施形態においては、例えば、インプットネームスペースINS0〜INSPに含まれているブロックの中から、有効データのデータ量が第1のしきい値より少ないブロックを、データ移動対象のブロックとして選択することができる。 In the present embodiment, for example, a block with less valid data can be selected from the input namespaces INS 0 to INS P, and valid data can be moved from the selected block to the namespaces NS 0 to NS M. Further, in the present embodiment, for example, among the blocks included in the input name spaces INS 0 to INS P , a block whose effective data amount is less than the first threshold value is selected as a data movement target block. Can be selected.

これにより、インプットネームスペースINS0〜INSPからネームスペースNS0〜NSMへ移動されるデータのデータ量を少なくすることができ、メモリシステム3の性能低下を防止することができる。 As a result, the amount of data moved from the input namespaces INS 0 to INS P to the namespaces NS 0 to NS M can be reduced, and the performance degradation of the memory system 3 can be prevented.

本実施形態においては、有効データを移動するために選択されたブロックの有効データのデータ量が第2のしきい値より少ない場合に、インプットネームスペースINS0〜INSPに割り当てるブロック数を少なくすることができる。また、本実施形態においては、有効データを移動するために選択されたブロックの有効データのデータ量が第3のしきい値より大きい場合に、インプットネームスペースINS0〜INSPに割り当てるブロック数を多くすることができる。 In the present embodiment, the number of blocks allocated to the input namespaces INS 0 to INS P is reduced when the amount of valid data in a block selected for moving valid data is smaller than the second threshold value. be able to. Further, in the present embodiment, when the amount of valid data in a block selected for moving valid data is larger than the third threshold, the number of blocks to be allocated to the input namespaces INS 0 to INS P is set as follows. Can do a lot.

これにより、インプットネームスペースINS0〜INSPに割り当てられるブロック数を適切化することができる。 Thereby, the number of blocks allocated to the input name spaces INS 0 to INS P can be optimized.

本実施形態においては、インプットネームスペースINS0〜INSPに含まれるブロックの数が第4のしきい値より多い場合に、設定部14によってインプットネームスペースINS0〜INSPからブロックが選択され、書き込み部16によって、選択されたブロックに格納されている有効データが当該有効データに対応するネームスペースNS0〜NSMへ移動される。そして、本実施形態においては、設定部14によってインプットネームスペースINS0〜INSPに含まれるブロックの数が減らされ、ネームスペースNS0〜NSMに含まれるブロック数が増加される。 In the present embodiment, when the number of blocks included in the input namespace INS 0 to INS P is larger than the fourth threshold value, the setting unit 14 selects a block from the input namespace INS 0 to INS P , The writing unit 16 moves the valid data stored in the selected block to the namespaces NS 0 to NS M corresponding to the valid data. In the present embodiment, the setting unit 14 reduces the number of blocks included in the input namespaces INS 0 to INS P and increases the number of blocks included in the namespaces NS 0 to NS M.

これにより、インプットネームスペースINS0〜INSPのサイズが大きくなることにより、ネームスペースNS0〜NSMが不足することを防止することができる。 As a result, it is possible to prevent the name spaces NS 0 to NS M from becoming insufficient due to an increase in the size of the input namespaces INS 0 to INS P.

本実施形態においては、ネームスペースNS0〜NSMのうちのどの位置にデータを書き込むか指定することができる。 In the present embodiment, it is possible to specify at which position of the name spaces NS 0 to NS M the data is written.

本実施形態においては、ガベージコレクションを、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPごとに独立して、効率的に、実行することができる。 In the present embodiment, garbage collection can be performed efficiently and independently for each of the namespaces NS 0 to NS M and the input namespaces INS 0 to INS P.

本実施形態においては、ガベージコレクションの結果、データを格納していない空ブロックを、ガベージコレクション前のネームスペースから他のネームスペースに変更することができ、他のネームスペース内で空ブロックを確保することができる。これにより、ブロックに対して割り当てられるネームスペースを変更することができ、ネームスペースNS0〜NSM間でウェアレベリングを実行することができ、不揮発性メモリ5を長寿命化することができる。 In the present embodiment, as a result of garbage collection, an empty block that does not store data can be changed from a namespace before garbage collection to another namespace, and an empty block is secured in another namespace. be able to. As a result, the namespace assigned to the block can be changed, wear leveling can be executed between the namespaces NS 0 to NS M , and the non-volatile memory 5 can be extended in life.

本実施形態では、ネームスペースNS0〜NSMごとに異なるデータ量の予備領域P0〜PMを設定することができ、ネームスペースNS0〜NSMごとにオーバープロビジョニングを実現することができる。これにより、書き込み速度の高速化及び性能維持を実現し、信頼性を向上させることができる。 In the present embodiment, it is possible to set a reserve area P 0 to P M different data amount for each namespace NS 0 ~NS M, can be achieved over provisioning for each namespace NS 0 ~NS M. As a result, the writing speed can be increased and the performance can be maintained, and the reliability can be improved.

本実施形態においては、ネームスペースNS0〜NSMごとにアドレス変換テーブルT0〜TMが管理されており、ネームスペースNS0〜NSMごとに、アドレス変換及びLBAとPBAとの関係の変更を効率的に行うことができる。 In the present embodiment, the address conversion table T for each namespace NS 0 ~NS M 0 ~T M is managed for each namespace NS 0 ~NS M, changing the relationship between the address translation and LBA and PBA Can be performed efficiently.

本実施形態において、アドレス変換をキーバリュー型検索によって行う場合には、不揮発性メモリ5のデータ容量が大きくても、効率的にアドレス変換を行うことができる。   In the present embodiment, when address conversion is performed by key-value type search, even if the data capacity of the nonvolatile memory 5 is large, the address conversion can be performed efficiently.

本実施形態においては、ネームスペースNS0〜NSMごとに高度なメモリ管理を実現することができ、不揮発性メモリ5を長寿命化することができ、コストを削減することができ、ネームスペースNS0〜NSMで区分けされている不揮発性メモリ5に対する書き込み及び読み出しを高速化することができる。 In the present embodiment, advanced memory management can be realized for each of the namespaces NS 0 to NS M , the lifetime of the nonvolatile memory 5 can be extended, the cost can be reduced, and the namespace NS Writing to and reading from the non-volatile memory 5 divided by 0 to NS M can be speeded up.

本実施形態においては、ガベージコレクション部G0〜GYに代えて、又は、ガベージコレクション部G0〜GYとともに、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPごとのコンパクション部を備えるとしてもよい。ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPのそれぞれに対応するコンパクション部は、管理データ18に基づいて、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPのそれぞれに対してコンパクションを実行する。 In the present embodiment, instead of the garbage collection unit G 0 ~G Y, or, together with the garbage collection unit G 0 ~G Y, namespace NS 0 ~NS M and compaction unit of each input namespace INS 0 ~INS P May be provided. The compaction unit corresponding to each namespace NS 0 ~NS M and input namespace INS 0 ~INS P, based on the management data 18, each namespace NS 0 ~NS M and input namespace INS 0 ~INS P Perform compaction on.

本実施形態において、例えば、情報処理装置2とメモリシステム3との間の設定コマンドC1の通信は、省略されてもよい。例えば、アドレス変換部15は、設定部14の一部又は全部の機能を備えるとしてもよい。例えば、アドレス変換部15は、書き込みコマンドC2に付されているNSID6及びLBA7と、LBA7に対応するPBAとを関係付けることで、管理データ18及びネームスペースNS0〜NSMごとのアドレス変換テーブルT0〜TMを生成するとしてもよい。管理データ18とアドレス変換テーブルT0〜TMとは、適宜組み合わせることができ、又は、分割することができる。このように設定コマンドC1の通信が省略され、設定部14の一部又は全部の機能がアドレス変換部15に備えられる構成は、後述の第2の実施形態で説明する。 In the present embodiment, for example, the communication of the setting command C1 between the information processing device 2 and the memory system 3 may be omitted. For example, the address conversion unit 15 may have a part or all of the functions of the setting unit 14. For example, the address conversion unit 15 associates the NSID 6 and the LBA 7 attached to the write command C2 with the PBA corresponding to the LBA 7, so that the address conversion table T for each of the management data 18 and the namespaces NS 0 to NS M is obtained. 0 to T M may be generated. The management data 18 and the address conversion tables T 0 to T M can be appropriately combined or divided. A configuration in which communication of the setting command C1 is omitted and a part or all of the functions of the setting unit 14 are provided in the address conversion unit 15 will be described in a second embodiment to be described later.

[第2の実施形態]
本実施形態においては、メモリシステムが複数の情報処理装置からの書き込みデータを書き込み、メモリシステムが読み出しデータを複数の情報処理装置へ送る情報処理システムについて説明する。
[Second Embodiment]
In the present embodiment, an information processing system will be described in which a memory system writes write data from a plurality of information processing apparatuses, and a memory system sends read data to the plurality of information processing apparatuses.

図5は、本実施形態に係る情報処理システムの構成の一例を示すブロック図である。   FIG. 5 is a block diagram illustrating an example of the configuration of the information processing system according to the present embodiment.

情報処理システム1Aは、複数の情報処理装置D0〜DMとメモリシステム3Aとを含む。複数の情報処理装置D0〜DMのそれぞれは、上記の情報処理装置2と同様の機能を備える。メモリシステム3Aは、主に、アドレス変換テーブルT0〜TM及び管理データ18に代えて変換テーブル(変換データ)20を備える点、複数の情報処理装置D0〜DMとの間でデータ、情報、信号、コマンドなどの送信及び受信を行う点、設定部14の機能がアドレス変換部15に備えられる点で、上記のメモリシステム3と相違している。本実施形態においては、上記第1の実施形態と異なる点を説明し、同じ部分又は実質的に同じ部分については説明を省略するか又は簡単に説明する。 The information processing system 1A includes a plurality of information processing devices D 0 to D M and a memory system 3A. Each of the plurality of information processing devices D 0 to D M has the same function as the information processing device 2 described above. The memory system 3A mainly includes a conversion table (conversion data) 20 in place of the address conversion tables T 0 to T M and the management data 18, and data between the plurality of information processing devices D 0 to D M. The memory system 3 is different from the memory system 3 in that information, signals, commands, and the like are transmitted and received, and the function of the setting unit 14 is provided in the address conversion unit 15. In the present embodiment, differences from the first embodiment will be described, and the description of the same or substantially the same part will be omitted or briefly described.

メモリシステム3Aは、例えばクラウドコンピューティングシステムに備えられる。メモリシステム3Aは、複数の情報処理装置D0〜DMによってシェアされる場合を例として説明するが、例えば複数のユーザによってシェアされてもよい。複数の情報処理装置D0〜DMの少なくとも1つは、仮想マシンでもよい。 The memory system 3A is provided in a cloud computing system, for example. The memory system 3A will be described as an example in which the memory system 3A is shared by a plurality of information processing devices D 0 to D M , but may be shared by a plurality of users, for example. At least one of the plurality of information processing apparatuses D 0 to D M may be a virtual machine.

本実施形態において、コマンドに付されるNSIDは、ネームスペースのアクセス鍵として用いられる。   In the present embodiment, the NSID attached to the command is used as a name space access key.

本実施形態においては、複数の情報処理装置D0〜DMは、自己に対応するネームスペースNS0〜NSMに対してアクセス権限を持つとする。しかしながら、1つの情報処理装置が1以上のネームスペースに対してアクセス権限を持つとしてもよく、複数の情報処理装置が共通のネームスペースに対してアクセス権限を持つとしてもよい。 In the present embodiment, it is assumed that the plurality of information processing apparatuses D 0 to D M have access authority to the namespaces NS 0 to NS M corresponding to the information processing apparatuses D 0 to D M. However, one information processing apparatus may have access authority to one or more name spaces, and a plurality of information processing apparatuses may have access authority to a common name space.

情報処理装置D0〜DMのそれぞれは、書き込みコマンドC2とともに、例えば自己に対応する書き込み先スペースを示すNSID6W、書き込み先を示すLBA7W、データサイズ8、及び、書き込みデータ9Wを、メモリシステム3Aへ送る。 Each of the information processing devices D 0 to D M sends, for example, the NSID 6W indicating the write destination space corresponding to itself, the LBA 7W indicating the write destination, the data size 8 and the write data 9W to the memory system 3A together with the write command C2. send.

情報処理装置D0〜DMのそれぞれは、読み出しコマンドC3とともに、例えば自己に対応する読み出し先スペースを示すNSID6R、読み出し先を示すLBA7Rを、メモリシステム3Aへ送る。 Each of the information processing devices D 0 to D M sends, together with the read command C3, for example, NSID 6R indicating the read destination space corresponding to itself and LBA 7R indicating the read destination to the memory system 3A.

情報処理装置D0〜DMのそれぞれは、読み出しコマンドC3に対応する読み出しデータ9R、又は、読み出し不可であったことを示す情報を、メモリシステム3Aから受ける。 Each of the information processing devices D 0 to D M receives, from the memory system 3A, read data 9R corresponding to the read command C3 or information indicating that reading is impossible.

メモリシステム3Aは、コントローラ4Aと不揮発性メモリ5とを含む。   The memory system 3A includes a controller 4A and a nonvolatile memory 5.

コントローラ4Aは、インタフェース部19、記憶部10、バッファメモリF0〜FM、プロセッサ11を含む。本実施形態においては、コントローラ4Aに備えられるプロセッサの数は1以上で自由に変更可能である。 The controller 4 </ b> A includes an interface unit 19, a storage unit 10, buffer memories F 0 to F M , and a processor 11. In the present embodiment, the number of processors provided in the controller 4A is one or more and can be freely changed.

インタフェース部19は、例えば情報処理装置D0〜DMなどのような外部装置との間で、データ、情報、信号、コマンドなどの送信及び受信を行う。 The interface unit 19 transmits and receives data, information, signals, commands, and the like with an external device such as the information processing devices D 0 to D M.

記憶部10は、変換テーブル20を格納する。なお、変換テーブル20の一部又は全部は、メモリ12などのような他のメモリに格納されてもよい。   The storage unit 10 stores a conversion table 20. A part or all of the conversion table 20 may be stored in another memory such as the memory 12.

変換テーブル20は、LBA、PBA、NSID、データサイズ、データがインプットネームスペースに格納されているか否かを示す情報(以下、インプットフラグという)を互いに関係付けたデータである。この変換テーブル20については、図6を用いて後で説明する。   The conversion table 20 is data in which LBA, PBA, NSID, data size, and information indicating whether data is stored in the input namespace (hereinafter referred to as an input flag) are associated with each other. The conversion table 20 will be described later with reference to FIG.

バッファメモリF0〜FMは、それぞれ、ネームスペースNS0〜NSMに対する書き込みバッファメモリ及び読み出しバッファメモリとして使用される。 Buffer memory F 0 to F M, respectively, it is used for the namespace NS 0 ~NS M as a write buffer memory and the read buffer memory.

プロセッサ11は、プログラム17を格納するメモリ12、受付部13、アドレス変換部15、書き込み部16、読み出し部21、ガベージコレクション部G0〜GYを含む。プロセッサ11は、プログラム17を実行することにより、受付部13、アドレス変換部15、書き込み部16、読み出し部21、ガベージコレクション部G0〜GYとして機能する。 The processor 11 includes a memory 12 which stores a program 17, reception unit 13, the address conversion section 15, write section 16, read section 21, the garbage collection unit G 0 ~G Y. The processor 11 functions as the reception unit 13, the address conversion unit 15, the writing unit 16, the reading unit 21, and the garbage collection units G 0 to G Y by executing the program 17.

受付部13は、データ書き込み時に、情報処理装置D0〜DMからインタフェース部19経由で書き込みコマンドC2、NSID6W、LBA7W、データサイズ8、書き込みデータ9Wを受け付ける。 Reception unit 13 receives at the time of data writing, the information processing apparatus D 0 written from to D M via the interface unit 19 commands C2, NSID6W, LBA7W, data size 8, the write data 9W.

受付部13は、データ読み出し時に、情報処理装置D0〜DMからインタフェース部19経由で読み出しコマンドC3、NSID6R、LBA7Rを受け付ける。 Receiving unit 13, when reading data, receives the read command C3, NSID6R, the LBA7R from the information processing apparatus D 0 to D M via the interface unit 19.

アドレス変換部15は、受付部13によって書き込みコマンドC2が受け付けられた場合に、書き込みコマンドC2に付されていたLBA7WとNSID6Wに基づいて、NSID6Wの示すネームスペースに対応するインプットネームスペースにおける書き込み先のPBAを決定し、LBA7W、NSID6W、決定されたインプットネームスペースのPBA、データサイズ、インプットネームスペースにデータが格納されていることを示すインプットフラグYを関係付けた状態で変換テーブル20を更新する。   When the write command C2 is received by the receiving unit 13, the address converting unit 15 determines the write destination in the input namespace corresponding to the name space indicated by the NSID 6W based on the LBA 7W and the NSID 6W attached to the write command C2. The PBA is determined, and the conversion table 20 is updated in association with the LBA 7W, NSID 6W, the determined input namespace PBA, the data size, and the input flag Y indicating that data is stored in the input namespace.

アドレス変換部15は、インプットネームスペースからネームスペースへデータが移動される場合に、ネームスペースにおける書き込み先のPBAを決定し、LBA7W、NSID6W、決定されたネームスペースのPBA、データサイズ、インプットネームスペースにデータが格納されていないことを示すインプットフラグNを関係付けた状態で変換テーブル20を更新する。   When data is moved from the input namespace to the namespace, the address conversion unit 15 determines the PBA of the write destination in the namespace, LBA7W, NSID6W, the determined namespace PBA, data size, input namespace The conversion table 20 is updated with the input flag N indicating that no data is stored.

アドレス変換部15は、受付部13によって読み出しコマンドC3が受け付けられた場合に、読み出しコマンドC3に付されていたLBA7RとNSID6Rと変換テーブル20とに基づいて、NSID6Rの示すネームスペース、又は、NSID6Rの示すネームスペースに対応するインプットネームスペースにおける読み出し先のPBAを決定する。   When the read command C3 is received by the receiving unit 13, the address conversion unit 15 uses the namespace indicated by the NSID 6R or the NSID 6R based on the LBA 7R, the NSID 6R, and the conversion table 20 attached to the read command C3. The PBA to be read in the input namespace corresponding to the indicated namespace is determined.

書き込み部16は、NSID6Wの示すネームスペースに対応するバッファメモリを経由して、NSID6Wの示すネームスペースに対応するインプットネームスペースにおけるPBAの示す位置に、書き込みデータ9Wを書き込む。その後、書き込み部16は、インプットネームスペースからアドレス変換部15によって得られたNSID6Wの示すネームスペースにおけるPBAの示す位置に、書き込みデータ9Wを書き込む。   The writing unit 16 writes the write data 9W to the position indicated by the PBA in the input namespace corresponding to the name space indicated by the NSID 6W via the buffer memory corresponding to the name space indicated by the NSID 6W. Thereafter, the writing unit 16 writes the write data 9W to the position indicated by PBA in the name space indicated by the NSID 6W obtained by the address conversion unit 15 from the input name space.

読み出し部21は、NSID6Rの示すネームスペースに対応するバッファメモリを経由して、NSID6Rの示すネームスペース、又は、当該ネームスペースに対応するインプットネームスペースにおけるPBAの示す位置から、読み出しデータ9Rを読み出す。そして、読み出し部21は、インタフェース部19経由で、読み出しコマンドC3を発行した情報処理装置に、読み出しデータ9Rを送る。   The reading unit 21 reads the read data 9R from the name space indicated by the NSID 6R or the position indicated by the PBA in the input name space corresponding to the name space via the buffer memory corresponding to the name space indicated by the NSID 6R. Then, the reading unit 21 sends the read data 9R to the information processing apparatus that has issued the read command C3 via the interface unit 19.

本実施形態において、ガベージコレクション部G0〜GYは、変換テーブル20に基づいて、ネームスペースNS0〜NSM及びインプットネームスペースINS0〜INSPごとにガベージコレクションを実行する。 In the present embodiment, the garbage collection units G 0 to G Y execute garbage collection for each of the namespaces NS 0 to NS M and the input namespaces INS 0 to INS P based on the conversion table 20.

図6は、本実施形態に係る変換テーブル20の一例を示すデータ構造図である。   FIG. 6 is a data structure diagram illustrating an example of the conversion table 20 according to the present embodiment.

変換テーブル20は、LBA、PBA、NSID、データサイズ、インプットフラグを関係付けて管理する。例えば、変換テーブル20は、LBA200、PBA300、NS0、データサイズZ、データがインプットネームスペースに格納されていないことを示すインプットフラグNを関係付けている。例えば、変換テーブル20は、LBA201、PBA301、NS0、データサイズZ、データがインプットネームスペースに格納されていることを示すインプットフラグYを関係付けている。例えば、変換テーブル20は、LBA200、PBA399、NSM、データサイズZ、データがインプットネームスペースに格納されていないことを示すインプットフラグNを関係付けている。 The conversion table 20 manages LBA, PBA, NSID, data size, and input flag in association with each other. For example, the conversion table 20 associates an LBA 200, PBA 300, NS 0 , data size Z, and an input flag N indicating that data is not stored in the input namespace. For example, the conversion table 20 relates an LBA 201, PBA 301, NS 0 , data size Z, and an input flag Y indicating that data is stored in the input name space. For example, the conversion table 20 associates an LBA 200, PBA 399, NS M , data size Z, and an input flag N indicating that no data is stored in the input namespace.

本実施形態においては、変換テーブル20でデータサイズが管理されている。しかしながら、データサイズが一定の場合には、変換テーブル20からデータサイズを削除してもよい。データサイズが一定の場合には、データサイズに代えて、インプットネームスペースINS0〜INSPの各ブロックB、ネームスペースNS0〜NSMの各ブロックB0〜BNの有効データの個数に基づいて、各ブロックB,B0〜BNの有効データのデータ量が認識されるとしてもよい。 In the present embodiment, the data size is managed by the conversion table 20. However, if the data size is constant, the data size may be deleted from the conversion table 20. When the data size is constant, instead of the data size, based on the number of valid data in each block B of the input namespace INS 0 to INS P and each block B 0 to B N of the namespace NS 0 to NS M Thus, the amount of valid data in each of the blocks B and B 0 to B N may be recognized.

本実施形態においては、変換テーブル20でインプットフラグが管理されている。しかしながら、PBAに基づいて、データがインプットネームスペースINS0〜INSPとネームスペースNS0〜NSMとのうちのどちらに格納されているか認識できるため、変換テーブル20からインプットフラグが省略されてもよい。 In the present embodiment, the input flag is managed by the conversion table 20. However, since the data can be recognized in the input namespace INS 0 to INS P or the namespace NS 0 to NS M based on the PBA, even if the input flag is omitted from the conversion table 20. Good.

アドレス変換部15は、例えば、LBA200とネームスペースNS0を示すNSIDとに関係するPBA300と、LBA200とネームスペースNSMを示すNSIDとに関係するPBA399とが互いに異なるように、PBAの決定を行う。 For example, the address conversion unit 15 determines the PBA so that the PBA 300 related to the LSID 200 indicating the LBA 200 and the NSID indicating the namespace NS 0 and the PBA 399 related to the NSID indicating the LBA 200 and the namespace NS M are different from each other. .

これにより、アドレス変換部15は、LBA200とともに受け付けられたNSIDがネームスペースNS0を示す場合にはPBA300を選択することができ、LBA200とともに受け付けられたNSIDがネームスペースNSMを示す場合にはPBA399を選択することができる。 Accordingly, the address conversion unit 15 can select the PBA 300 when the NSID received together with the LBA 200 indicates the namespace NS 0 , and the PBA 399 when the NSID received together with the LBA 200 indicates the namespace NS M. Can be selected.

したがって、複数の情報処理装置D0〜DMの間で同じ論理アドレスが使用される場合であっても、メモリシステム3Aを複数の情報処理装置D0〜DMでシェアすることができる。 Therefore, even when the same logical address is used among the plurality of information processing apparatuses D 0 to D M , the memory system 3A can be shared by the plurality of information processing apparatuses D 0 to D M.

図7は、本実施形態に係るメモリシステム3Aの第1の書き込み処理の一例を示すフローチャートである。   FIG. 7 is a flowchart showing an example of the first write process of the memory system 3A according to the present embodiment.

この図7の説明では、複数の情報処理装置D0〜DMのうちの情報処理装置D0から書き込みコマンドC2が発行され、書き込みコマンドC2にはネームスペースNS0を示すNSID6Wが付されている場合を例として説明する。しかしながら、情報処理装置D1〜DMから書き込みコマンドC2が発行された場合も同様である。また、書き込みコマンドC2に他のネームスペースNS1〜NSMのいずれかを示すNSID6Wが付されている場合も同様である。 In the description of FIG. 7, the write command C2 from the information processing apparatus D 0 of the plurality of information processing apparatuses D 0 to D M is issued, NSID6W showing a namespace NS 0 are assigned to the write command C2 A case will be described as an example. However, the same applies when the write command C2 is issued from the information processing devices D 1 to D M. The same applies to the case where the write command C2 has an NSID 6W indicating any of the other namespaces NS 1 to NS M.

ステップS701において、受付部13は、情報処理装置D0からインタフェース部19経由で書き込みコマンドC2、NSID6W、LBA7W、データサイズ8、書き込みデータ9Wを受け付ける。 In step S701, the reception unit 13 writes the information processing apparatus D 0 via the interface unit 19 commands C2, NSID6W, LBA7W, data size 8, accept the write data 9W.

ステップS702において、アドレス変換部15は、受付部13によって書き込みコマンドC2が受け付けられた場合に、書き込みコマンドC2に付されていたLBA7WとNSID6Wに基づいて、NSID6Wの示すネームスペースNS0に対応するインプットネームスペースINS0における書き込み先のPBAを決定する。 In step S702, when the write command C2 is received by the receiving unit 13, the address conversion unit 15 inputs based on the LBA 7W and NSID 6W attached to the write command C2 and corresponding to the namespace NS 0 indicated by the NSID 6W. The write destination PBA in the name space INS 0 is determined.

ステップS703において、アドレス変換部15は、LBA7W、NSID6W、決定されたPBA、データサイズZ、インプットネームスペースにデータが格納されていることを示すインプットフラグYを関係付けた状態で変換テーブル20を更新する。   In step S703, the address conversion unit 15 updates the conversion table 20 with the LBA 7W, NSID 6W, the determined PBA, the data size Z, and the input flag Y indicating that data is stored in the input namespace. To do.

ステップS704において、書き込み部16は、NSID6Wの示すネームスペースNS0に対応するバッファメモリF0を経由して、NSID6Wの示すネームスペースNS0に対応するインプットネームスペースINS0におけるPBAの示す位置に、書き込みデータ9Wを書き込む。 In step S704, the writing unit 16 via the buffer memory F 0 corresponding to the namespace NS 0 indicated by NSID6W, the position indicated by the PBA in the Input namespace INS 0 corresponding to the namespace NS 0 indicated by NSID6W, Write the write data 9W.

図8は、本実施形態に係るメモリシステム3Aの第2の書き込み処理の一例を示すフローチャートである。   FIG. 8 is a flowchart showing an example of the second write process of the memory system 3A according to the present embodiment.

この図8の説明では、インプットネームスペースINS0からネームスペースNS0へ有効データが移動される場合を例として説明する。しかしながら、インプットネームスペースINS1〜INSPからネームスペースNS0〜NSMへ有効データが移動される場合も同様である。 In the description of FIG. 8, a case where valid data is moved from the input namespace INS 0 to the namespace NS 0 will be described as an example. However, the same applies when valid data is moved from the input namespaces INS 1 to INS P to the namespaces NS 0 to NS M.

ステップS801において、書き込み部16は、例えば、ガベージコレクションが実行されたか否かを判断するなどにより、インプットネームスペースINS0からネームスペースNS0へ有効データを移動させるか判断する。 In step S801, the writing unit 16 by, for instance, it is determined whether garbage collection is performed to determine whether to move the valid data from the input namespace INS 0 to namespace NS 0.

有効データを移動させると判断されなかった場合、処理は、ステップS805に移る。   If it is not determined to move the valid data, the process proceeds to step S805.

有効データを移動させると判断された場合、ステップS802において、アドレス変換部15は、インプットネームスペースINS0に含まれているブロックBの中からデータ移動対象のブロックを選択する。 If it is determined that the moving valid data, in step S802, the address converter 15 selects a block of data moved from among the blocks B that are included in the input namespace INS 0.

ステップS803において、書き込み部16は、データ移動対象のブロックに格納されている有効データを当該有効データに対応するネームスペースNS0のブロックに移動する。 In step S803, the writing unit 16 moves the valid data stored in blocks of data movement target block namespace NS 0 corresponding to the valid data.

ステップS804において、アドレス変換部15は、有効データに対応するLBA、ネームスペースNS0におけるPBA、ネームスペースNS0を示すNSID、データサイズZ、データがインプットネームスペースに格納されていないことを示すインプットフラグNを関係付けるように、変換テーブル20を更新する。 In step S804, the address converter 15, an input indicating that no stored PBA, NSID showing a namespace NS 0, data size Z, the data is the input namespace in LBA, namespace NS 0 corresponding to the effective data The conversion table 20 is updated so as to relate the flag N.

ステップS805において、第2の書き込み処理は継続されるか否か判断する。   In step S805, it is determined whether the second writing process is continued.

第2の書き込み処理が継続される場合、第2の書き込み処理はステップS801に移動する。   When the second writing process is continued, the second writing process moves to step S801.

第2の書き込み処理が継続されない場合、第2の書き込み処理は終了する。   If the second write process is not continued, the second write process ends.

図9は、本実施形態に係るメモリシステム3Aの読み出し処理の一例を示すフローチャートである。   FIG. 9 is a flowchart showing an example of a read process of the memory system 3A according to the present embodiment.

この図9の説明では、複数の情報処理装置D0〜DMのうちの情報処理装置DMから読み出しコマンドC3が発行され、読み出しコマンドC3にはネームスペースNSMを示すNSID6Rが付されている場合を例として説明する。しかしながら、情報処理装置D0〜DM-1から読み出しコマンドC3が発行された場合も同様である。また、読み出しコマンドC3に他のネームスペースNS0〜NSM-1のいずれかを示すNSID6Rが付されている場合も同様である。 In the description of FIG. 9, a read command C3 is issued from the information processing device D M out of the plurality of information processing devices D 0 to D M , and the read command C3 is assigned NSID 6R indicating the namespace NS M. A case will be described as an example. However, the same applies when a read command C3 is issued from the information processing devices D 0 to D M−1 . The same applies to the case where NSID 6R indicating any of the other name spaces NS 0 to NS M-1 is attached to the read command C3.

ステップS901において、受付部13は、情報処理装置DMからインタフェース部19経由で読み出しコマンドC3、NSID6R、LBA7Rを受け付ける。 In step S901, the reception section 13 receives the read command C3, NSID6R, the LBA7R from the information processing apparatus D M via the interface unit 19.

ステップS902において、アドレス変換部15は、受付部13によって読み出しコマンドC3が受け付けられた場合に、読み出しコマンドC3に付されていたLBA7RとNSID6Rと変換テーブル20とに基づいて、インプットネームスペースINSP、又は、ネームスペースNSMにおける読み出し先のPBAを決定する。 In step S902, when the read command C3 is received by the receiving unit 13, the address converting unit 15 inputs the input namespace INS P , based on the LBA 7R, NSID 6R, and the conversion table 20 attached to the read command C3. Alternatively, the PBA of the reading destination in the name space NS M is determined.

ステップS903において、読み出し部21は、NSID6Rの示すネームスペースNSMに対応するバッファメモリFMを経由して、NSID6Rの示すネームスペースNSM、又は、ネームスペースNSMに対応するインプットネームスペースINSPにおけるPBAの示す位置から、読み出しデータ9Rを読み出し、インタフェース部19経由で、読み出しコマンドC3を発行した情報処理装置DMに、読み出しデータ9Rを送る。 In step S903, the read unit 21, via the buffer memory F M corresponding to the namespace NS M indicated by NSID6R, namespace NS M indicated NSID6R, or input namespace INS P corresponding to the namespace NS M from the position indicated by the PBA in, it reads the read data 9R, via the interface unit 19, the information processing apparatus D M that issued the read command C3, and sends the read data 9R.

以上説明した本実施形態においては、不揮発性メモリ5が複数のインプットネームスペースINS0〜INSP及びネームスペースNS0〜NSMに区切られる。情報処理装置D0〜DMは、複数のインプットネームスペースINS0〜INSP及びネームスペースNS0〜NSMのうち自己がアクセス権限を持つネームスペースをアクセス可能である。これにより、データセキュリティを向上させることができる。 In the present embodiment described above, the nonvolatile memory 5 is divided into a plurality of input namespaces INS 0 to INS P and namespaces NS 0 to NS M. The information processing devices D 0 to D M can access a name space to which the information processing devices D 0 to D M have access authority among the plurality of input namespaces INS 0 to INS P and the namespaces NS 0 to NS M. Thereby, data security can be improved.

メモリシステム3Aのコントローラ4Aは、インプットネームスペースINS0〜INSP及びネームスペースNS0〜NSMごとに、独立の制御を行う。これにより、インプットネームスペースINS0〜INSP及びネームスペースNS0〜NSMごとに使用条件を切り替えることができる。 The controller 4A of the memory system 3A performs independent control for each of the input namespaces INS 0 to INS P and the namespaces NS 0 to NS M. As a result, the use conditions can be switched for each of the input namespaces INS 0 to INS P and the namespaces NS 0 to NS M.

メモリシステム3Aは、LBAとPBAとNSIDとを関係付けているため、例えば互いに独立の複数の情報処理装置から同じLBAを受信した場合であっても、NSIDによりデータを区別することができる。   Since the memory system 3A associates the LBA, the PBA, and the NSID, for example, even when the same LBA is received from a plurality of independent information processing apparatuses, the data can be distinguished by the NSID.

上記各実施形態において、テーブル形式のデータは、例えばリスト形式などの他のデータ構造で実装されてもよい。   In each of the above embodiments, the data in the table format may be implemented in another data structure such as a list format.

[第3の実施形態]
本実施形態においては、上記第1及び第2の実施形態で説明した情報処理システム1,1Aの詳細構成について説明する。
[Third Embodiment]
In the present embodiment, the detailed configuration of the information processing systems 1 and 1A described in the first and second embodiments will be described.

図10は、本実施形態に係る情報処理システムの詳細構成の一例を示すブロック図である。   FIG. 10 is a block diagram illustrating an example of a detailed configuration of the information processing system according to the present embodiment.

この図10において、情報処理システム1Bは、情報処理装置2Bとメモリシステム3Bとを含む。情報処理システム1Bは、上記第2の実施形態と同様に、複数の情報処理装置を備えるとしてもよい。すなわち、上記第1及び第2の実施形態の情報処理装置2、D0〜DMのいずれかは、情報処理装置2Bに対応する。 In FIG. 10, an information processing system 1B includes an information processing device 2B and a memory system 3B. The information processing system 1B may include a plurality of information processing apparatuses as in the second embodiment. That is, any one of the information processing devices 2 and D 0 to D M of the first and second embodiments corresponds to the information processing device 2B.

上記第1及び第2の実施形態のメモリシステム3,3Aは、メモリシステム3Bに対応する。   The memory systems 3 and 3A of the first and second embodiments correspond to the memory system 3B.

上記第1及び第2の実施形態のプロセッサ11は、CPU43F,43Bに対応する。   The processor 11 of the first and second embodiments corresponds to the CPUs 43F and 43B.

上記第1の実施形態のアドレス変換テーブルT0〜TM、及び、上記第2の実施形態の変換テーブル20は、LUT45に対応する。 The address conversion tables T 0 to T M of the first embodiment and the conversion table 20 of the second embodiment correspond to the LUT 45.

上記第1及び第2の実施形態の記憶部10は、DRAM47に対応する。   The storage unit 10 of the first and second embodiments corresponds to the DRAM 47.

上記第2の実施形態のインタフェース部19は、ホストインタフェース41及びホストインタフェースコントローラ42に対応する。   The interface unit 19 in the second embodiment corresponds to the host interface 41 and the host interface controller 42.

上記第1及び第2の実施形態のバッファメモリF0〜FMは、ライトバッファWB及びリードバッファRBに対応する。 The buffer memories F 0 to F M of the first and second embodiments correspond to the write buffer WB and the read buffer RB.

情報処理装置2Bは、ホスト装置として機能する。   The information processing device 2B functions as a host device.

コントローラ4は、フロントエンド4Fと、バックエンド4Bとを備える。   The controller 4 includes a front end 4F and a back end 4B.

フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部44、及びCPU43Fを備える。   The front end (host communication unit) 4F includes a host interface 41, a host interface controller 42, an encryption / decryption unit 44, and a CPU 43F.

ホストインタフェース41は、情報処理装置2Bとの間で、要求(書き込みコマンド、読み出しコマンド、消去コマンドなど)、LBA及びデータなどを通信する。   The host interface 41 communicates requests (such as a write command, a read command, and an erase command), LBA, data, and the like with the information processing apparatus 2B.

ホストインタフェースコントローラ(制御部)42は、CPU43Fの制御に基づいて、上記ホストインタフェース41の通信を制御する。   The host interface controller (control unit) 42 controls communication of the host interface 41 based on the control of the CPU 43F.

暗号化/復号化部(Advanced Encryption Standard(AES))44は、データ書き込み動作において、ホストインタフェースコントローラ42から送信される書き込みデータ(平文)を暗号化する。暗号化/復号化部44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、この暗号化/復号化部44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。   An encryption / decryption unit (Advanced Encryption Standard (AES)) 44 encrypts write data (plain text) transmitted from the host interface controller 42 in the data write operation. The encryption / decryption unit 44 decrypts the encrypted read data transmitted from the read buffer RB of the back end 4B in the data read operation. Note that it is possible to transmit the write data and the read data without going through the encryption / decryption unit 44 as necessary.

CPU43Fは、フロントエンド4Fの上記各構成41,42,44を制御し、フロントエンド4Fの全体の動作を制御する。   The CPU 43F controls each of the components 41, 42, 44 of the front end 4F, and controls the entire operation of the front end 4F.

バックエンド(メモリ通信部)4Bは、ライトバッファWB、リードバッファRB、LUT45、DDRC46、DRAM47、DMAC48、ECC49、ランダマイザRZ、NANDC50、及びCPU43Bを備える。   The back end (memory communication unit) 4B includes a write buffer WB, a read buffer RB, an LUT 45, a DDRC 46, a DRAM 47, a DMAC 48, an ECC 49, a randomizer RZ, a NANDC 50, and a CPU 43B.

ライトバッファ(ライトデータ転送部)WBは、情報処理装置2Bから送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータが不揮発性メモリ5に適した所定のデータサイズになるまで、一時的にデータを格納する。   The write buffer (write data transfer unit) WB temporarily stores the write data transmitted from the information processing apparatus 2B. Specifically, the write buffer WB temporarily stores data until the write data has a predetermined data size suitable for the nonvolatile memory 5.

リードバッファ(リードデータ転送部)RBは、不揮発性メモリ5から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、情報処理装置2Bに適した順序(情報処理装置2Bが指定した論理アドレスLBAの順序)になるように並び替えられる。   The read buffer (read data transfer unit) RB temporarily stores read data read from the nonvolatile memory 5. Specifically, in the read buffer RB, the read data is rearranged so as to be in an order suitable for the information processing apparatus 2B (order of logical addresses LBA designated by the information processing apparatus 2B).

LUT45は、論理アドレスLBAを所定の物理アドレスPBAに変換するためのデータである。   The LUT 45 is data for converting the logical address LBA into a predetermined physical address PBA.

DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。   The DDRC 46 controls DDR (Double Data Rate) in the DRAM 47.

DRAM47は、例えば、LUT45を格納する揮発性のメモリである。   The DRAM 47 is, for example, a volatile memory that stores the LUT 45.

DMAC(Direct Memory Access Controller)48は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。図10においては1つのDMAC48が図示されているが、コントローラ4は、2以上のDMAC48を備えるとしてもよい。DMAC48は、必要に応じて、コントローラ4内の様々な位置に設定される。   A DMAC (Direct Memory Access Controller) 48 transfers write data, read data, and the like via the internal bus IB. Although one DMAC 48 is illustrated in FIG. 10, the controller 4 may include two or more DMACs 48. The DMAC 48 is set at various positions in the controller 4 as required.

ECC(誤り訂正部)49は、ライトバッファWBから送信される書き込みデータにECC(Error Correcting Code)を付加する。ECC49は、リードバッファRBに送信する際に、付加したECCを用いて、不揮発性メモリ5から読み出した読み出しデータを必要に応じて訂正する。   The ECC (error correction unit) 49 adds ECC (Error Correcting Code) to the write data transmitted from the write buffer WB. When the ECC 49 is transmitted to the read buffer RB, the read data read from the nonvolatile memory 5 is corrected as necessary using the added ECC.

ランダマイザRZ(又はスクランブラ)は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ5の特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ5のメモリセルのセル寿命を長期化できる。そのため、不揮発性メモリ5の信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ5から読み出された読み出しデータはランダマイザRZを通過する。   The randomizer RZ (or scrambler) distributes the write data so that the write data is not biased to a specific page or word line direction of the nonvolatile memory 5 during the data write operation. Thus, by distributing the write data, the number of times of writing can be leveled, and the cell life of the memory cells of the nonvolatile memory 5 can be extended. Therefore, the reliability of the nonvolatile memory 5 can be improved. Further, read data read from the nonvolatile memory 5 during the data read operation passes through the randomizer RZ.

NANDC(NAND Controller)50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列に不揮発性メモリ5にアクセスする。   A NANDC (NAND Controller) 50 accesses the nonvolatile memory 5 in parallel using a plurality of channels (here, four channels CH0 to CH3) in order to satisfy a predetermined speed requirement.

CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。   The CPU 43B controls each configuration (45 to 50, RZ) of the back end 4B, and controls the overall operation of the back end 4B.

なお、図10に示したコントローラ4の構成は例示であり、この構成に限定されることはない。   Note that the configuration of the controller 4 shown in FIG. 10 is an example, and the present invention is not limited to this configuration.

図11は、本実施形態に係るストレージシステムを示す斜視図である。   FIG. 11 is a perspective view showing the storage system according to this embodiment.

ストレージシステム100は、SSDとしてのメモリシステム3Bを備える。   The storage system 100 includes a memory system 3B as an SSD.

メモリシステム3Bは、例えば比較的小型のモジュールであり、その外形寸法の一例は、20mm×30mm程度である。なお、メモリシステム3Bの大きさ及び寸法は、これに限られるものではなく、種々の大きさのものに適宜変更可能である。   The memory system 3B is, for example, a relatively small module, and an example of an external dimension thereof is about 20 mm × 30 mm. Note that the size and dimensions of the memory system 3B are not limited to this, and can be appropriately changed to various sizes.

また、メモリシステム3Bは、例えば、企業(エンタープライズ)で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置2Bに装着されて使用可能である。そのため、メモリシステム3Bは、エンタープライズ用SSD(eSSD)であってもよい。   Further, the memory system 3B can be used by being mounted on an information processing apparatus 2B such as a server in a data center or a cloud computing system operated in a company (enterprise), for example. Therefore, the memory system 3B may be an enterprise SSD (eSSD).

メモリシステム3Bは、例えば上方に開口した複数のコネクタ(例えばスロット)30を備える。各コネクタ30は、例えばSAS(Serial Attached SCSI)コネクタ等である。このSASコネクタによれば、6GbpsのDual Portにより、情報処理装置2Bと各メモリシステム3Bとが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ30は、例えば、PCIe(PCI Express)又はNVMe(NVM Express)等であってもよい。   The memory system 3B includes, for example, a plurality of connectors (for example, slots) 30 opened upward. Each connector 30 is, for example, a SAS (Serial Attached SCSI) connector. According to this SAS connector, the information processing apparatus 2B and each memory system 3B can perform high-speed communication with each other by 6 Gbps Dual Port. However, the present invention is not limited to this, and each connector 30 may be, for example, PCIe (PCI Express) or NVMe (NVM Express).

複数のメモリシステム3Bは、情報処理装置2Bのコネクタ30にそれぞれ装着され、略鉛直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム3Bをコンパクトに纏めて実装可能であり、メモリシステム3Bの小型化を図ることができる。さらに、本実施形態に係るメモリシステム3Bの各形状は、2.5型のSFF(Small Form Factor)である。このような形状により、メモリシステム3Bは、エンタープライズ用HDD(eHDD)と互換形状(コンパチ形状)を図ることができ、eHDDとの容易なシステム互換性を実現することができる。   The plurality of memory systems 3B are respectively attached to the connectors 30 of the information processing apparatus 2B, and are supported side by side in an upright posture in the vertical direction. According to such a configuration, a plurality of memory systems 3B can be packaged in a compact manner, and the memory system 3B can be downsized. Furthermore, each shape of the memory system 3B according to the present embodiment is a 2.5-inch SFF (Small Form Factor). With such a shape, the memory system 3B can achieve a compatible shape (compatible shape) with the enterprise HDD (eHDD), and can realize easy system compatibility with the eHDD.

なお、メモリシステム3Bは、エンタープライズ用に限られない。例えば、メモリシステム3Bは、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。   The memory system 3B is not limited to enterprise use. For example, the memory system 3B can also be applied as a storage medium for consumer electronic devices such as notebook portable computers or tablet terminals.

以上説明したように、本実施形態で説明した構成を持つ情報処理システム1B及びストレージシステム100においては、大容量の記憶に、上記第1及び第2の実施形態と同様の効果を得ることができる。   As described above, in the information processing system 1B and the storage system 100 having the configuration described in this embodiment, the same effects as those in the first and second embodiments can be obtained for large-capacity storage. .

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present 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, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1,1A,1B…情報処理システム、2,2A,2B,D0〜DM…情報処理装置、3,3A,3B…メモリシステム、4…コントローラ、5…不揮発性メモリ、6,6W,6R…NSID、20…置換管理部、7,7W,7R…LBA、8…データサイズ、9,9W…書き込みデータ、9R…読み出しデータ、10…記憶部、11…プロセッサ、12…メモリ、13…受付部、14…設定部、15…アドレス変換部、16…書き込み部、17…プログラム、18、19…インタフェース部、20…変換テーブル…管理データ、NS0〜NSM…ネームスペース、IG0〜IGP…インプットグループNS0〜INSP…インプットネームスペース、C1…設定コマンド、C2…書き込みコマンド、P0〜PY…予備領域、F0〜FM…バッファメモリ、G0〜GY…ガベージコレクション部、A0〜AM…LBA空間、T0〜TM…アドレス変換テーブル、41…ホストインタフェース、42…ホストインタフェースコントローラ、43B,43F…CPU、WB…ライトバッファ、RB…リードバッファ、4F…フロントエンド、4B…バックエンド、44…暗号化/復号化部、45…LUT、46…DDRC、47…DRAM、48…DMAC、49…ECC、RZ…ランダマイザ、50…NANDC、IB…内部バス。 1, 1A, 1B ... information processing system, 2,2A, 2B, D 0 ~D M ... information processing apparatus, 3, 3A, 3B ... memory system, 4 ... controller, 5 ... non-volatile memory, 6,6W, 6R ... NSID, 20 ... Replacement management unit, 7, 7W, 7R ... LBA, 8 ... Data size, 9, 9W ... Write data, 9R ... Read data, 10 ... Storage unit, 11 ... Processor, 12 ... Memory, 13 ... Reception , 14 ... setting section, 15 ... address conversion section, 16 ... writing section, 17 ... program, 18, 19 ... interface section, 20 ... conversion table ... management data, NS 0 to NS M ... name space, IG 0 to IG P ... input group, NS 0 ~INS P ... input name space, C1 ... setting command, C2 ... write command, P 0 ~P Y ... spare area, F 0 ~F M ... buffer Memory, G 0 to G Y ... garbage collection unit, A 0 to A M ... LBA space, T 0 to T M ... address conversion table, 41 ... host interface, 42 ... host interface controller, 43B, 43F ... CPU, WB ... Write buffer, RB ... Read buffer, 4F ... Front end, 4B ... Back end, 44 ... Encryption / decryption unit, 45 ... LUT, 46 ... DDRC, 47 ... DRAM, 48 ... DMAC, 49 ... ECC, RZ ... Randomizer 50, NANDC, IB, internal bus.

Claims (13)

不揮発性メモリと、
前記不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースとインプットスペースとに割り当て、前記書き込み管理エリアは書き込み回数を管理する単位のエリアである、設定部と、
書き込みデータの論理アドレスと、前記不揮発性メモリにおける前記書き込みデータの位置を示す物理アドレスとを関係付けるアドレス変換部と、
前記インプットスペースに前記書き込みデータを書き込んだ後に、前記インプットスペースの前記書き込みデータを、前記複数のスペースのうちの前記書き込みデータに対応するスペースに書き込む書き込み部と、
前記不揮発性メモリに対して前記複数のスペースごとに制御を行う制御部と、
を具備する、メモリシステム。
Non-volatile memory;
A plurality of write management areas included in the non-volatile memory are allocated to a plurality of spaces and input spaces, and the write management area is a unit area for managing the number of writes, and a setting unit.
An address conversion unit that associates a logical address of write data with a physical address indicating a position of the write data in the nonvolatile memory;
A writing unit for writing the write data in the input space to a space corresponding to the write data in the plurality of spaces after writing the write data in the input space;
A control unit that controls the nonvolatile memory for each of the plurality of spaces;
A memory system comprising:
前記制御部は、前記複数のスペースごとにガベージコレクションを実行する、
請求項1に記載のメモリシステム。
The control unit performs garbage collection for each of the plurality of spaces.
The memory system according to claim 1.
前記書き込み部は、前記複数のスペースのうちの第1のスペースに対する第1のガベージコレクションの実行に基づいて、前記インプットスペースに格納されており前記第1のスペースに対応する第1のデータを、前記第1のスペースに書き込む、
請求項2に記載のメモリシステム。
The writing unit stores first data corresponding to the first space stored in the input space based on execution of the first garbage collection for the first space among the plurality of spaces. Writing in the first space;
The memory system according to claim 2.
前記設定部は、前記インプットスペースに格納されているデータと前記データに対応するスペースとの関係を含む管理データを生成する、
請求項1又は請求項2に記載のメモリシステム。
The setting unit generates management data including a relationship between data stored in the input space and a space corresponding to the data;
The memory system according to claim 1 or 2.
前記設定部は、前記インプットスペースに格納されており前記複数のスペースのうちの第1のスペースに対応するデータのデータ量を求め、前記第1のスペースに対応する所定のデータ量から前記求められたデータ量を引いた値に基づいて、前記第1のスペースに対して少なくとも1つの書き込み管理エリアを割り当てる、
請求項1、請求項2、又は、請求項4に記載のメモリシステム。
The setting unit obtains a data amount of data stored in the input space and corresponding to a first space among the plurality of spaces, and is obtained from a predetermined data amount corresponding to the first space. Assigning at least one write management area to the first space based on a value obtained by subtracting the amount of data obtained;
The memory system according to claim 1, claim 2, or claim 4.
前記管理データは、前記第1のスペースと前記求められたデータ量との関係をさらに含み、
前記設定部は、前記インプットスペースのうちのデータ移動対象の書き込み管理エリアに格納されており前記第1のスペースに対応する有効データが、前記第1のスペースに移動された場合に、前記求められたデータ量から、前記第1のスペースに移動された前記有効データのデータ量を引いた値に基づいて、前記管理データを更新する、
請求項5に記載のメモリシステム。
The management data further includes a relationship between the first space and the determined amount of data,
The setting unit is determined when the valid data stored in the write management area of the input space in the input space and corresponding to the first space is moved to the first space. Updating the management data based on a value obtained by subtracting the data amount of the valid data moved to the first space from the data amount
The memory system according to claim 5.
前記設定部は、前記インプットスペースから、最も書き込み時間の古い書き込み管理エリアを、データ移動対象の書き込み管理エリアとして選択し、
前記書き込み部は、前記データ移動対象の書き込み管理エリアに格納されている有効データを、前記有効データに対応するスペースに書き込む、
請求項1乃至請求項5のいずれか1項に記載のメモリシステム。
The setting unit selects, from the input space, a write management area with the oldest write time as a write management area for data movement,
The writing unit writes the valid data stored in the write management area to be moved to the space corresponding to the valid data;
The memory system according to any one of claims 1 to 5.
前記設定部は、前記インプットスペースから、有効データのデータ量の最も少ない書き込み管理エリアを、データ移動対象の書き込み管理エリアとして選択し、
前記書き込み部は、前記データ移動対象の書き込み管理エリアに格納されている前記有効データを、前記有効データに対応するスペースに書き込む、
請求項1乃至請求項5のいずれか1項に記載のメモリシステム。
The setting unit selects, from the input space, a write management area with the least amount of valid data as a write management area for data movement,
The writing unit writes the valid data stored in the write management area to be moved to a space corresponding to the valid data;
The memory system according to any one of claims 1 to 5.
前記設定部は、前記インプットスペースから、有効データのデータ量がしきい値より少ない書き込み管理エリアを、データ移動対象の書き込み管理エリアとして選択し、
前記書き込み部は、前記データ移動対象の書き込み管理エリアに格納されている前記有効データを、前記有効データに対応するスペースに書き込む、
請求項1乃至請求項5のいずれか1項に記載のメモリシステム。
The setting unit selects, from the input space, a write management area in which the amount of valid data is less than a threshold as a write management area for data movement,
The writing unit writes the valid data stored in the write management area to be moved to a space corresponding to the valid data;
The memory system according to any one of claims 1 to 5.
前記設定部は、前記インプットスペースのうちのデータ移動対象の書き込み管理エリアに格納されている有効データのデータ量が、しきい値より少ない場合に、前記インプットスペースに含まれている前記書き込み管理エリアの数を減らす、
請求項1乃至請求項5のいずれか1項に記載のメモリシステム。
The setting unit includes the write management area included in the input space when the amount of valid data stored in the write management area targeted for data movement in the input space is smaller than a threshold value. Reduce the number of
The memory system according to any one of claims 1 to 5.
前記設定部は、前記インプットスペースのうちのデータ移動対象の書き込み管理エリアに格納されている有効データのデータ量が、しきい値より多い場合に、前記インプットスペースに含まれている前記書き込み管理エリアの数を増やす、
請求項1乃至請求項5のいずれか1項に記載のメモリシステム。
The setting unit includes the write management area included in the input space when the amount of valid data stored in the write management area targeted for data movement in the input space is greater than a threshold value. Increase the number of
The memory system according to any one of claims 1 to 5.
前記設定部は、前記複数のスペースを複数のインプットスペースに割り当て、
前記書き込み部は、前記複数のインプットスペースのうちの前記書き込みデータに対応する第1のインプットスペースに前記書き込みデータを書き込んだ後に、前記第1のインプットスペースの前記書き込みデータを、前記複数のスペースのうちの前記書き込みデータに対応する前記スペースに書き込む、
請求項1乃至請求項11のいずれか1項に記載のメモリシステム。
The setting unit assigns the plurality of spaces to a plurality of input spaces,
The writing unit writes the write data in the first input space corresponding to the write data in the plurality of input spaces, and then writes the write data in the first input space to the plurality of spaces. Write to the space corresponding to the write data of
The memory system according to any one of claims 1 to 11.
コンピュータを、
不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースとインプットスペースとに割り当て、前記書き込み管理エリアは書き込み回数を管理する単位のエリアである、設定部と、
書き込みデータの論理アドレスと、前記不揮発性メモリにおける前記書き込みデータの位置を示す物理アドレスとを関係付けるアドレス変換部と、
前記インプットスペースに前記書き込みデータを書き込んだ後に、前記インプットスペースの前記書き込みデータを、前記複数のスペースのうちの前記書き込みデータに対応するスペースに書き込む書き込み部と、
前記不揮発性メモリに対して前記複数のスペースごとに制御を行う制御部と、
して機能させるためのプログラム。
Computer
A plurality of write management areas included in the nonvolatile memory are allocated to a plurality of spaces and input spaces, and the write management area is a unit area for managing the number of times of writing, and a setting unit;
An address conversion unit that associates a logical address of write data with a physical address indicating a position of the write data in the nonvolatile memory;
A writing unit for writing the write data in the input space to a space corresponding to the write data in the plurality of spaces after writing the write data in the input space;
A control unit that controls the nonvolatile memory for each of the plurality of spaces;
Program to make it function.
JP2015028419A 2014-10-30 2015-02-17 Memory system and program Active JP6276208B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US14/656,496 US10102118B2 (en) 2014-10-30 2015-03-12 Memory system and non-transitory computer readable recording medium
US16/129,204 US10761977B2 (en) 2014-10-30 2018-09-12 Memory system and non-transitory computer readable recording medium
US16/988,219 US11347637B2 (en) 2014-10-30 2020-08-07 Memory system and non-transitory computer readable recording medium
US17/731,089 US11687448B2 (en) 2014-10-30 2022-04-27 Memory system and non-transitory computer readable recording medium
US18/197,667 US20230281118A1 (en) 2014-10-30 2023-05-15 Memory system and non-transitory computer readable recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462072799P 2014-10-30 2014-10-30
US62/072,799 2014-10-30

Publications (2)

Publication Number Publication Date
JP2016091534A true JP2016091534A (en) 2016-05-23
JP6276208B2 JP6276208B2 (en) 2018-02-07

Family

ID=56018774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015028419A Active JP6276208B2 (en) 2014-10-30 2015-02-17 Memory system and program

Country Status (1)

Country Link
JP (1) JP6276208B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154909A (en) * 1999-11-25 2001-06-08 Casio Comput Co Ltd Flash memory management device and recording medium
JP2007242163A (en) * 2006-03-09 2007-09-20 Toshiba Corp Data recording method for semiconductor integrated circuit device
JP2008152464A (en) * 2006-12-15 2008-07-03 Toshiba Corp Storage device
JP2011028793A (en) * 2009-07-22 2011-02-10 Toshiba Corp Semiconductor memory device
WO2011092738A1 (en) * 2010-01-28 2011-08-04 株式会社日立製作所 Management system and method for storage system that has pools constructed from real domain groups having different performances
US20120151124A1 (en) * 2010-12-08 2012-06-14 Sung Hoon Baek Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154909A (en) * 1999-11-25 2001-06-08 Casio Comput Co Ltd Flash memory management device and recording medium
JP2007242163A (en) * 2006-03-09 2007-09-20 Toshiba Corp Data recording method for semiconductor integrated circuit device
JP2008152464A (en) * 2006-12-15 2008-07-03 Toshiba Corp Storage device
JP2011028793A (en) * 2009-07-22 2011-02-10 Toshiba Corp Semiconductor memory device
WO2011092738A1 (en) * 2010-01-28 2011-08-04 株式会社日立製作所 Management system and method for storage system that has pools constructed from real domain groups having different performances
US20120151124A1 (en) * 2010-12-08 2012-06-14 Sung Hoon Baek Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same

Also Published As

Publication number Publication date
JP6276208B2 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
JP6479639B2 (en) Information processing apparatus, program, and information processing system
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
JP6538940B2 (en) Nonvolatile memory control method
US11868246B2 (en) Memory system and non-transitory computer readable recording medium
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
JP7030942B2 (en) Memory device and its control method
JP2018160189A (en) Memory system
JP6689325B2 (en) Memory device control method
JP7077151B2 (en) Memory system
JP6595654B2 (en) Information processing device
JP2020123039A (en) Memory system and control method
JP6313242B2 (en) Memory system and program
JP6276208B2 (en) Memory system and program
US11086775B2 (en) Information processing device, non-transitory computer readable recording medium, and information processing system
JP2015191295A (en) Memory controller, memory system, and memory control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170224

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180111

R150 Certificate of patent or registration of utility model

Ref document number: 6276208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350