JP6313242B2 - Memory system and program - Google Patents

Memory system and program Download PDF

Info

Publication number
JP6313242B2
JP6313242B2 JP2015028418A JP2015028418A JP6313242B2 JP 6313242 B2 JP6313242 B2 JP 6313242B2 JP 2015028418 A JP2015028418 A JP 2015028418A JP 2015028418 A JP2015028418 A JP 2015028418A JP 6313242 B2 JP6313242 B2 JP 6313242B2
Authority
JP
Japan
Prior art keywords
write
data
unit
address
garbage collection
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.)
Active
Application number
JP2015028418A
Other languages
Japanese (ja)
Other versions
JP2016091533A (en
Inventor
菅野 伸一
伸一 菅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory 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 Memory Corp filed Critical Toshiba Memory Corp
Priority to US14/656,405 priority Critical patent/US11334478B2/en
Publication of JP2016091533A publication Critical patent/JP2016091533A/en
Application granted granted Critical
Publication of JP6313242B2 publication Critical patent/JP6313242B2/en
Priority to US17/724,160 priority patent/US11868246B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

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 garbage collection unit. The setting unit allocates a plurality of write management areas included in the nonvolatile memory to a plurality of spaces. The write management area is an area for managing the number of writes. The address conversion unit converts the logical address of the write data into a physical address of a space corresponding to the write data. The writing unit writes the write data at the position indicated by the physical address in the nonvolatile memory. The garbage collection unit performs garbage collection for each of a plurality of spaces in the nonvolatile memory. The setting unit monitors the data storage state of a plurality of spaces, and changes an empty write management area in which data is not stored by garbage collection from a space before garbage collection to another space.

第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の実施形態に係るメモリシステムの書き込み処理の一例を示すフローチャート。9 is a flowchart illustrating an example of a writing process 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 type 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 for data erasure 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 space identification information (NSID) 6 of the name space, 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と同様であるとする。なお、本実施形態におけるネームスペースNS0〜NSMとブロックB0〜BNとの間の割り当て関係は一例であり、1つのネームスペースに割り当てられるブロックの個数などは適宜変更可能である。複数のネームスペースの間でブロックの個数は異なってもよい。 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. Note that the assignment relationship between the namespaces NS 0 to NS M and the blocks B 0 to B N in the present embodiment is an example, and the number of blocks assigned to one namespace can be changed as appropriate. The number of blocks may be different among a plurality of namespaces.

コントローラ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 associated with each other in data writing 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に対するデータ書き込みにおいて、書き込みデータを書き込みに適したデータ量になるまで格納する。 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.

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

メモリ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〜GMとして機能する。 The program 17 is firmware, for example. The processor 11 functions as the reception unit 13, the setting unit 14, the address conversion unit 15, the writing unit 16, and the garbage collection units G 0 to G M by executing the program 17.

管理データ18は、ネームスペースNS0〜NSMとブロックB0〜BNとの関係を示すデータである。管理データ18を参照することにより、どのブロックがどのネームスペースに所属しているか判断可能である。 The management data 18 is data indicating the relationship between the namespaces NS 0 to NS M and the blocks B 0 to B N. By referring to the management data 18, it can be determined which block belongs to which name space.

受付部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を割り当てて管理データ18を生成し、管理データ18をメモリ12に格納する。ネームスペースNS0〜NSMとブロックB0〜BNとの間の割り当ては、設定部14がネームスペースNS0〜NSMのデータ格納状態を監視し、各ネームスペースNS0〜NSMで、データ容量、アクセス頻度、書き込み頻度、アクセス回数、書き込み回数、又は、データ格納率が同レベルとなるように行われてもよく、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。 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 manages the management data 18. And management data 18 is stored in the memory 12. 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ごとに実行されたガベージコレクションの結果に基づいて、データを格納していない空ブロックを、ガベージコレクション前に属するネームスペースから他のネームスペースに変更し、管理データ18を更新する。これにより、ネームスペースNS0〜NSM間でウェアレベリング(Wear Leveling)を実行することができる。ネームスペースNS0〜NSMとブロックB0〜BNとの間の割り当て変更は、設定部14がネームスペースNS0〜NSMのデータ格納状態を監視し、上記の管理データ18の生成時と同様に監視結果に応じて行われてもよく、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。例えば、ネームスペースNS0〜NSMの変更は、データ容量の少ない、アクセス頻度の低い、アクセス回数の少ない、又は、データ格納率の低いネームスペースの空ブロックを、データ容量の多い、アクセス頻度の高い、アクセス回数の多い、又は、データ格納率の高いネームスペースに変換する。 In addition, the setting unit 14 changes empty blocks that do not store data from the name space before the garbage collection to another name space based on the result of the garbage collection executed for each of the name spaces NS 0 to NS M. Change and update the management data 18. 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ごとに、不揮発性メモリ5に、普段使用されない予備領域P0〜PMを設定する。予備領域P0〜PMの設定は、設定部14がネームスペースNS0〜NSMの各データ容量などに応じて行うとしてもよく、情報処理装置2からの指示に応じて行われてもよく、メモリシステム3の管理者の指示に応じて行われてもよい。 Further, the setting unit 14 uses the reserved areas P 0 to P M that are not normally used in the nonvolatile memory 5 for each namespace NS 0 to NS M based on the setting command C 1 for over provisioning. Set. The setting of the spare areas P 0 to P M may be performed by the setting unit 14 according to each data capacity of the name spaces NS 0 to NS M or may be performed according to an instruction from the information processing device 2. This may be performed in accordance with an instruction from the administrator of the memory system 3.

本実施形態において、予備領域P0〜PMは、不揮発性メモリ5に確保されているが、不揮発性メモリ5ではないメモリシステム3内の他のメモリに確保されていてもよい。例えば、予備領域P0〜PMは、DRAM、SRAMなどのメモリに確保されてもよい。 In the present embodiment, the spare areas P 0 to P M 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 M 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は、プロセッサ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によって得られたPBAの示す位置に、書き込みデータ9を書き込む。本実施形態において、書き込み部16は、書き込みコマンドC2に付されていたNSID6の示すネームスペースNS0に対応するバッファメモリF0に、書き込みデータ9を格納する。そして、書き込み部16は、バッファメモリF0がネームスペースNS0に適したデータ量になった場合に、PBAの示す位置に、バッファメモリF0のデータを書き込む。 The writing unit 16 writes the write data 9 at the position indicated by the PBA obtained by the address conversion unit 15. 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. Then, when the buffer memory F 0 has a data amount suitable for the name space NS 0 , the writing unit 16 writes the data in the buffer memory F 0 at the position indicated by PBA.

ガベージコレクション部G0〜GMは、ネームスペースNS0〜NSMに対応しており、ネームスペースNS0〜NSMごとにガベージコレクションを実行する。ガベージコレクションとは、不要になったメモリ領域を解放する処理、又は、隙間のあるメモリ領域に書き込まれているデータを集めて連続した利用可能なメモリ領域を確保する処理である。ガベージコレクション部G0〜GMは、並列にガベージコレクションを実行可能としてもよく、順にガベージコレクション部G0〜GMを実行してもよい。 Garbage collection unit G 0 ~G M corresponds to the namespace NS 0 ~NS M, performs garbage collection for each namespace NS 0 ~NS M. 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 M may be able to execute garbage collection in parallel, or may sequentially execute the garbage collection units G 0 to G M.

ガベージコレクション部G0〜GMのうちガベージコレクション部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 M. 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に、不揮発性メモリ5のブロックB0〜BNを割り当て、管理データ18を生成する。 In step S302, the setting unit 14 allocates the blocks B 0 to B N of the nonvolatile memory 5 to the namespaces NS 0 to NS M and generates management data 18.

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

図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に対するガベージコレクションを実行する。 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.

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

以上説明した本実施形態においては、ネームスペースNS0〜NSMごとに、予め定められた又は情報処理装置2から設定されたブロック量を割り当てることができ、ネームスペースNS0〜NSMに対応するデータを、そのネームスペースNS0〜NSMに割り当てられたブロックB0〜BMに書き込むことができ、ネームスペース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 M blocks allocated to B 0 .about.B M, it is possible to set different data amount for each namespace NS 0 ~NS M.

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

本実施形態においては、ガベージコレクションの結果、データを格納していない空ブロックを、ガベージコレクション前のネームスペースから他のネームスペースに変更することができ、他のネームスペース内で空ブロックを確保することができる。これにより、ブロックに割り当てられるネームスペースを変更することができ、ネームスペース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〜GMに代えて、又は、ガベージコレクション部G0〜GMとともに、ネームスペースNS0〜NSMごとのコンパクション部を備えるとしてもよい。ネームスペースNS0〜NSMのそれぞれに対応するコンパクション部は、管理データ18に基づいて、ネームスペースNS0〜NSMのそれぞれに対してコンパクションを実行する。 In this embodiment, instead of the garbage collection unit G 0 ~G M, or, together with the garbage collection unit G 0 ~G M, may be provided with a compaction unit for each namespace NS 0 ~NS M. The compaction unit corresponding to each namespace NS 0 ~NS M on the basis of the management data 18, executes the compaction on each namespace NS 0 ~NS M.

本実施形態において、例えば、情報処理装置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 that associates LBA, PBA, and NSID 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〜GMを含む。プロセッサ11は、プログラム17を実行することにより、受付部13、アドレス変換部15、書き込み部16、読み出し部21、ガベージコレクション部G0〜GMとして機能する。 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 M. 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 M 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とを関係付けた状態で変換テーブル20を更新する。   When the write command C2 is received by the receiving unit 13, the address conversion unit 15 determines the PBA of the write destination in the name space indicated by the NSID 6W based on the LBA 7W and NSID 6W attached to the write command C2, and the LBA 7W And the NSID 6W and the determined PBA are associated with each other, and the conversion table 20 is updated.

アドレス変換部15は、受付部13によって読み出しコマンドC3が受け付けられた場合に、読み出しコマンドC3に付されていたLBA7RとNSID6Rと変換テーブル20とに基づいて、NSID6Rの示すネームスペースにおける読み出し先のPBAを決定する。   When the read command C3 is received by the receiving unit 13, the address conversion unit 15 reads the PBA of the read destination in the name space indicated by the NSID 6R based on the LBA 7R, NSID 6R, and the conversion table 20 attached to the read command C3. To decide.

書き込み部16は、NSID6Wの示すネームスペースに対応するバッファメモリを経由して、NSID6Wの示すネームスペースに対応するPBAの示す位置に、書き込みデータ9Wを書き込む。   The writing unit 16 writes the write data 9W to the position indicated by the PBA corresponding to the name space indicated by the NSID 6W via the buffer memory corresponding to the name space indicated by the NSID 6W.

読み出し部21は、NSID6Rの示すネームスペースに対応するバッファメモリを経由して、NSID6Rの示すネームスペースに対応するPBAの示す位置から、読み出しデータ9Rを読み出す。そして、読み出し部21は、インタフェース部19経由で、読み出しコマンドC3を発行した情報処理装置に、読み出しデータ9Rを送る。   The reading unit 21 reads the read data 9R from the position indicated by the PBA corresponding to the name space indicated by the NSID 6R 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〜GMは、変換テーブル20に基づいて、ネームスペースNS0〜NSMごとにガベージコレクションを実行する。 In the present embodiment, the garbage collection units G 0 to G M perform garbage collection for each namespace NS 0 to NS M 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とを関係付けており、LBA201とPBA301とNS0とを関係付けており、LBA200とPBA399とNSMとを関係付けている。 The conversion table 20 manages LBA, PBA, and NSID in association with each other. For example, the conversion table 20 associates LBA 200, PBA 300, and NS 0 , associates LBA 201, PBA 301, and NS 0 , and associates LBA 200, PBA 399, and NS M.

アドレス変換部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の書き込み処理の一例を示すフローチャートである。   FIG. 7 is a flowchart showing an example of the writing 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における書き込み先のPBAを決定する。 In step S702, the address converting unit 15, when a write command C2 is received by the receiving unit 13, based on LBA7W and NSID6W that had been subjected to the write command C2, the writing destination in namespace NS 0 indicated by NSID6W Determine the PBA.

ステップS703において、アドレス変換部15は、LBA7WとNSID6Wと決定されたPBAとを関係付けた状態で変換テーブル20を更新する。   In step S703, the address conversion unit 15 updates the conversion table 20 in a state where the LBA 7W, the NSID 6W, and the determined PBA are associated with each other.

ステップS704において、書き込み部16は、NSID6Wの示すネームスペースNS0に対応するバッファメモリF0を経由して、NSID6Wの示すネームスペースNS0に対応する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 corresponding namespace NS 0 indicated by NSID6W, writes the write data 9W.

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

この図8の説明では、複数の情報処理装置D0〜DMのうちの情報処理装置DMから読み出しコマンドC3が発行され、読み出しコマンドC3にはネームスペースNSMを示すNSID6Rが付されている場合を例として説明する。しかしながら、情報処理装置D0〜DM-1から読み出しコマンドC3が発行された場合も同様である。また、読み出しコマンドC3に他のネームスペースNS0〜NSM-1のいずれかを示すNSID6Rが付されている場合も同様である。 In the description of FIG. 8, a read command C3 is issued from the information processing device D M among the plurality of information processing devices D 0 to D M , and NSID 6R indicating the namespace NS M is attached to the read command C3. 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.

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

ステップS802において、アドレス変換部15は、受付部13によって読み出しコマンドC3が受け付けられた場合に、読み出しコマンドC3に付されていたLBA7RとNSID6Rと変換テーブル20とに基づいて、読み出し先のPBAを決定する。   In step S <b> 802, when the read command C <b> 3 is received by the receiving unit 13, the address conversion unit 15 determines a read destination PBA based on the LBA 7 </ b> R, the NSID 6 </ b> R, and the conversion table 20 attached to the read command C <b> 3. To do.

ステップS803において、読み出し部21は、NSID6Rの示すネームスペースNSMに対応するバッファメモリFMを経由して、NSID6Rの示すネームスペースNSMに対応するPBAの示す位置から、読み出しデータ9Rを読み出し、インタフェース部19経由で、読み出しコマンドC3を発行した情報処理装置DMに、読み出しデータ9Rを送る。 In step S803, the read unit 21, via the buffer memory F M corresponding to the namespace NS M indicated by NSID6R, from the position indicated by the PBA corresponding namespace NS M indicated by NSID6R, reads 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が複数のネームスペースNS0〜NSMに区切られる。情報処理装置D0〜DMは、複数のネームスペースNS0〜NSMのうち自己がアクセス権限を持つネームスペースをアクセス可能である。これにより、データセキュリティを向上させることができる。 In the present embodiment described above, the nonvolatile memory 5 is divided into a plurality of namespaces NS 0 to NS M. The information processing devices D 0 to D M can access a name space that the self has access authority among the plurality of name spaces NS 0 to NS M. Thereby, data security can be improved.

メモリシステム3Aのコントローラ4Aは、ネームスペースNS0〜NSMごとに、独立の制御を行う。これにより、ネームスペースNS0〜NSMごとに使用条件を切り替えることができる。 The controller 4A of the memory system 3A performs independent control for each of the name spaces NS 0 to NS M. As a result, the use conditions can be switched for each of 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.

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

この図9において、情報処理システム1Bは、情報処理装置2Bとメモリシステム3Bとを含む。情報処理システム1Bは、上記第2の実施形態と同様に、複数の情報処理装置を備えるとしてもよい。すなわち、上記第1及び第2の実施形態の情報処理装置2、D0〜DMのいずれかは、情報処理装置2Bに対応する。 In FIG. 9, 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 a 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を介して、書き込みデータや読み出しデータなどを転送する。図9においては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. 9, 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.

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

図10は、本実施形態に係るストレージシステムを示す斜視図である。   FIG. 10 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…ネームスペース、C1…設定コマンド、C2…書き込みコマンド、P0〜PM…予備領域、F0〜FM…バッファメモリ、G0〜GM…ガベージコレクション部、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 part, 15 ... address conversion part, 16 ... writing part, 17 ... program, 18 ... management data, 19 ... interface part, 20 ... conversion table, NS 0 to NS M ... name space, C1 ... setting command , C2 ... write command, P 0 ~P M ... spare area, F 0 ~F M ... buffer memory, G 0 ~G M ... garbage collection unit, A 0 ~A M ... LBA space, T 0 through 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 (11)

不揮発性メモリと、
前記不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースに割り当て、前記書き込み管理エリアは書き込み回数を管理する単位のエリアである、設定部と、
書き込みデータの論理アドレスを、前記書き込みデータに対応するスペースの物理アドレスに変換するアドレス変換部と、
前記不揮発性メモリにおける前記物理アドレスの示す位置に、前記書き込みデータを書き込む書き込み部と、
前記不揮発性メモリに対して前記複数のスペースごとにガベージコレクションを実行するガベージコレクション部と、
を具備し、
前記設定部は、前記複数のスペースのデータ格納状態を監視し、前記ガベージコレクションによってデータを格納しない状態となった空の書き込み管理エリアを、前記ガベージコレクションの前のスペースから、他のスペースへ変更する、
メモリシステム。
Non-volatile memory;
A plurality of write management areas included in the nonvolatile memory are assigned to a plurality of spaces, and the write management area is a unit area for managing the number of times of writing, a setting unit;
An address conversion unit that converts a logical address of write data into a physical address of a space corresponding to the write data;
A writing unit for writing the write data at a position indicated by the physical address in the nonvolatile memory;
A garbage collection unit that performs garbage collection for each of the plurality of spaces with respect to the nonvolatile memory;
Equipped with,
The setting unit monitors data storage states of the plurality of spaces, and changes an empty write management area in which data is not stored by the garbage collection from a space before the garbage collection to another space. To
Memory system.
前記設定部は、前記複数のスペースごとに、設定された量の前記書き込み管理エリアを割り当てる、
請求項1に記載のメモリシステム。
The setting unit allocates a set amount of the write management area for each of the plurality of spaces;
The memory system according to claim 1.
前記ガベージコレクション部は、前記複数のスペースに対して、並列に前記ガベージコレクションを実行可能である、
請求項1又は請求項2に記載のメモリシステム。
The garbage collection unit can execute the garbage collection in parallel with respect to the plurality of spaces .
The memory system according to claim 1 or 2.
前記複数のスペースのそれぞれに対応する複数のバッファメモリをさらに具備し、
前記複数のバッファメモリのそれぞれは、対応するスペースへのデータ書き込みにおいて、前記書き込みデータを書き込みに適したデータ量になるまで格納する、
請求項1乃至請求項3のいずれか1項に記載のメモリシステム。
A plurality of buffer memories corresponding to each of the plurality of spaces;
Each of the plurality of buffer memories stores the write data until a data amount suitable for writing is obtained in data writing to a corresponding space .
The memory system according to any one of claims 1 to 3 .
前記設定部は、前記複数のスペースの間でウェアレベリングを行うために、前記空の書き込み管理エリアを、前記ガベージコレクションの前記前のスペースから、前記他のスペースへ変更する、
請求項1乃至請求項4のいずれか1項に記載のメモリシステム。
The setting unit changes the empty write management area from the previous space of the garbage collection to the other space in order to perform wear leveling between the plurality of spaces .
Memory system according to any one of claims 1 to 4.
前記アドレス変換部は、前記複数のスペースごとに、前記論理アドレスから前記物理アドレスへの変換を行う、
請求項1乃至請求項5のいずれか1項に記載のメモリシステム。
The address conversion unit performs conversion from the logical address to the physical address for each of the plurality of spaces.
The memory system according to any one of claims 1 to 5.
前記アドレス変換部は、前記論理アドレスと前記物理アドレスとを関係付けたアドレス変換データに基づいて、前記論理アドレスを前記物理アドレスに変換する、
請求項1乃至請求項6のいずれか1項に記載のメモリシステム。
The address conversion unit converts the logical address into the physical address based on address conversion data that associates the logical address with the physical address.
The memory system according to any one of claims 1 to 6.
前記アドレス変換部は、前記論理アドレスをキーとし、前記物理アドレスをバリューとするキーバリュー型検索により、前記論理アドレスを前記物理アドレスに変換する、
請求項1乃至請求項6のいずれか1項に記載のメモリシステム。
The address conversion unit converts the logical address into the physical address by a key-value type search using the logical address as a key and the physical address as a value.
The memory system according to any one of claims 1 to 6.
前記書き込みデータと、書き込み論理アドレスと、前記複数のスペースのうちの書き込み先スペースを示す書き込みスペース識別情報とを受け付ける受付部をさらに具備し
前記アドレス変換部は、前記書き込み論理アドレスと、前記書き込みスペース識別情報と、前記書き込み先スペースにおける書き込み物理アドレスとを関係付けた変換データを生成
前記書き込み部は、前記書き込み物理アドレスの示す位置に、前記書き込みデータを書き込
請求項1乃至請求項6のいずれか1項に記載のメモリシステム。
And the write data, further comprising: a write logical address, a receiving unit that receives a write space identification information indicating the write destination space of the plurality of spaces,
It said address translation unit generates the a write logical address, and the write space identification information, the conversion data associated with the write physical address in the write destination space,
The writing section, at the position indicated by the write physical address, write No write the write data,
The memory system according to any one of claims 1 to 6 .
前記受付部は、読み出し論理アドレスと、前記複数のスペースのうちの読み出し先スペースを示す読み出しスペース識別情報とを受け付け、
前記アドレス変換部は、前記変換データと前記読み出し論理アドレスと前記読み出しスペース識別情報とに基づいて、前記不揮発性メモリの読み出し先スペースにおける読み出し物理アドレスを決定し、
前記読み出し物理アドレスの示す位置から、読み出しデータを読み出す読み出し部をさらに具備する、
請求項9に記載のメモリシステム。
The reception unit receives a read logical address and read space identification information indicating a read destination space among the plurality of spaces,
The address conversion unit determines a read physical address in a read destination space of the nonvolatile memory based on the conversion data, the read logical address, and the read space identification information,
A read unit for reading read data from a position indicated by the read physical address;
The memory system according to claim 9.
コンピュータを、
不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースに割り当て、前記書き込み管理エリアは書き込み回数を管理する単位のエリアである、設定部と、
書き込みデータの論理アドレスを、前記書き込みデータに対応するスペースの物理アドレスに変換するアドレス変換部と、
前記不揮発性メモリにおける前記物理アドレスの示す位置に、前記書き込みデータを書き込む書き込み部と、
前記不揮発性メモリに対して前記複数のスペースごとにガベージコレクションを実行するガベージコレクション部と、
して機能させ
前記設定部は、前記複数のスペースのデータ格納状態を監視し、前記ガベージコレクションによってデータを格納しない状態となった空の書き込み管理エリアを、前記ガベージコレクションの前のスペースから、他のスペースへ変更する、
プログラム。
Computer
A plurality of write management areas included in the nonvolatile memory are allocated to a plurality of spaces, and the write management area is a unit area for managing the number of times of writing, a setting unit,
An address conversion unit that converts a logical address of write data into a physical address of a space corresponding to the write data;
A writing unit for writing the write data at a position indicated by the physical address in the nonvolatile memory;
A garbage collection unit that performs garbage collection for each of the plurality of spaces with respect to the nonvolatile memory;
To function ,
The setting unit monitors data storage states of the plurality of spaces, and changes an empty write management area in which data is not stored by the garbage collection from a space before the garbage collection to another space. To
program.
JP2015028418A 2014-10-30 2015-02-17 Memory system and program Active JP6313242B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/656,405 US11334478B2 (en) 2014-10-30 2015-03-12 Memory system and nonvolatile memory medium in which program is stored to optimize operating life
US17/724,160 US11868246B2 (en) 2014-10-30 2022-04-19 Memory system and non-transitory computer readable recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462072833P 2014-10-30 2014-10-30
US62/072,833 2014-10-30

Publications (2)

Publication Number Publication Date
JP2016091533A JP2016091533A (en) 2016-05-23
JP6313242B2 true JP6313242B2 (en) 2018-04-18

Family

ID=56018773

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6313242B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754771B2 (en) 2018-07-26 2020-08-25 Toshiba Memory Corporation Storage device and storage control method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163139A (en) * 2000-11-22 2002-06-07 Sharp Corp Data management device and data management method using it
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9396011B2 (en) * 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
US9003071B2 (en) * 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754771B2 (en) 2018-07-26 2020-08-25 Toshiba Memory Corporation Storage device and storage control method
US11366751B2 (en) 2018-07-26 2022-06-21 Kioxia Corporation Storage device and storage control method

Also Published As

Publication number Publication date
JP2016091533A (en) 2016-05-23

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
TW201440059A (en) Half block management for flash storage devices
JP7030942B2 (en) Memory device and its control method
JP2018160189A (en) Memory system
JP6689325B2 (en) Memory device control method
JP7077151B2 (en) Memory system
JP6313242B2 (en) Memory system and program
JP6595654B2 (en) Information processing device
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: 20171113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180122

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: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180322

R150 Certificate of patent or registration of utility model

Ref document number: 6313242

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