JP2018206384A - 不揮発性メモリ(nvm)において複数の名前空間を管理する - Google Patents

不揮発性メモリ(nvm)において複数の名前空間を管理する Download PDF

Info

Publication number
JP2018206384A
JP2018206384A JP2018103504A JP2018103504A JP2018206384A JP 2018206384 A JP2018206384 A JP 2018206384A JP 2018103504 A JP2018103504 A JP 2018103504A JP 2018103504 A JP2018103504 A JP 2018103504A JP 2018206384 A JP2018206384 A JP 2018206384A
Authority
JP
Japan
Prior art keywords
mua
namespace
entry
nvm
map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018103504A
Other languages
English (en)
Other versions
JP2018206384A5 (ja
Inventor
マーク・イシュ
Ix Mark
スティーブン・エス・ウィリアムズ
S Williams Steven
ジェフリー・ムンシル
Munsil Jeffrey
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2018206384A publication Critical patent/JP2018206384A/ja
Publication of JP2018206384A5 publication Critical patent/JP2018206384A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】NVMeコントローラの名前空間を管理する装置及び方法を提供する。【解決手段】NVM206は、1つ以上の名前空間内に、マップユニット(MU)をアドレス指定可能なデータブロックとして記憶するように配列されている。フォワードマップ214は、各MUをNVM内の物理的位置と相関させるマップユニットアドレス(MUA)エントリを設けている。MUAエントリは、各々の名前空間のための、隣同士に連続した範囲にグループ化される。ベースMUAアレイは、フォワードマップ内における、各々の名前空間への最初のMUAエントリのアドレスを識別する。新規の名前空間の追加は、MUAエントリの新規範囲をフォワードマップの、最後のMUAエントリの直後に付加することと、新規の名前空間への最初のMUAエントリの、フォワードマップ内でのアドレスを識別するために、ベースMUAアレイに新規エントリを追加することによって為される。【選択図】図7

Description

本発明の様々な実施形態は、一般にデータ・ストレージ・デバイス内のデータ管理に関する。
いくつかの実施形態では、不揮発性メモリ(NVM)は、マップユニット(MU)をアドレス指定可能なデータブロックとして1つ以上の名前空間内に記憶するようにアレンジされている。フォワードマップは、MUの各々をNVM内の物理的位置と相関させる一連のマップユニットアドレス(MUA)エントリを有する。MUAエントリは、各名前空間のための、すぐ隣どうしに連続した範囲内にグループ化される。ベースMUAアレイは、フォワードマップ内の、各名前空間の最初のMUAエントリのアドレスを識別する。新規の名前空間を追加することができる。これは、最後のMUAエントリのすぐ後に、MUAエントリの新規範囲をフォワードマップに付加することによって、また、フォワードマップ内で新規の名前空間の最初のMUAエントリのアドレスを識別するために、ベースMUAアレイに新規エントリを追加することによって行う。
本開示内容の様々な実施形態を特徴付けるこれらの及び他の機能及び利点は、以降の詳細な説明及び添付の図面を考慮することで理解可能になる。
本開示内容の様々な実施形態による一例のデータ・ストレージ・デバイスの機能ブロック表現を提供する。 いくつかの実施形態によるソリッド・ステート・ドライブ(SSD)として構成される図1のデータ・ストレージ・デバイスの形態を示す。 いくつかの実施形態における、図2のSSDによってデータを記憶する一例の方式を示す。 いくつかの実施形態における、SSDで使用されるマルチレベルのマップ構造の一例のフォーマットを示す。 マップ構造の第二レベルマップ(SLM)の一例のフォーマットを示す。 マップ構造の第一レベルマップ(FLM)の一例のフォーマットを示す。 いくつかの実施形態における、SSDの名前空間を管理するように構成されたNVMeコントローラ及びメディア管理層(MML)コントローラを示す。 名前空間IDと名前空間HBLAデータを管理するように構成されたHBLA領域の一例のフォーマットを示す。 図8のデータを符号化するために用いられる変換テーブルの一例のフォーマットを示す。 いくつかの実施形態における、SSDのフォワードマップにアクセスするために用いられるデータ構造としてのマップユニットアドレス(MUA)アレイを示す。 フォワードマップへの新規の名前空間の追加を示す。 フォワードマップからの名前空間の削除を示す。 新規の名前空間ルーチンを作成するフローチャートである。 既存の名前空間ルーチンを削除するフローチャートである。 本開示の様々な実施形態に従って実施されるステップを示すデータ処理ルーチンのフローチャートである。
本開示は、概してデータ記憶に関し、具体的には、データ記憶デバイスにて名前空間を管理する方法及び装置に関する。
不揮発性メモリエクスプレス(NVMe)仕様は、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)シリアルバス構成を利用するデータ記憶システムにおいて高速アクセスを管理するための、近年導入されたインターフェース規格である。NVMeは、ローカルの不揮発性メモリ(NVM)への直接入出力(I/O)アクセスを提供することにより、企業及びクライアントのソリッド・ステート・ドライブ(SSD)環境向けに特に最適化される。NVMeは、ディープ・コマンド・キュー、簡素化したコマンド復号化及び処理、頑強なエラー報告及び取り扱いをサポートすることにより、読み出し動作と書き込み動作の遅延を短縮する上で役立つ。
NVMe規格の1つの特徴は、ホストが記憶領域を別個の名前空間として指定する能力である。概して、名前空間は、所定数の、ブロックアクセス向けに初期化された記憶ブロックを有する、NVM内のアドレス指定可能なドメインとして定義される。名前空間は、SSDの一部、SSD全体を構成する、又は、複数のSSD若しくはその他のデータ記憶デバイスをスパンするマルチデバイスのメモリ空間を構成することができる。名前空間ID(NSID)は、関連の名前空間(NS)のための、コントローラ毎の固有の識別子である。ホストは、名前空間、コントローラID、及び、ブロックの関連の論理アドレス(論理ブロックアドレス、LBAなど)を指定することにより、特定のNVMにアクセスすることができる。
データ記憶デバイス(又は、こうしたデバイスのグループ)内の並列データ転送経路を拡張するように動作できる一方で、SSD内又は他のデバイス内の利用可能なNVMを複数の名前空間に細分化することは、コントローラがデータを検索するために用いる様々なマップ構造への更新を処理する上で多数の問題を呈する。これは、既存のデバイス構成に新規の名前空間を追加する場合、又は、既存のデバイス構成から既存の名前空間を削除する場合に、特に当てはまる。
したがって、本開示の様々な実施形態は、概して、NVMeコントローラ環境においてマップデータを管理する装置及び方法に関する。以降で説明するように、いくつかの実施形態で、データは、所定サイズのアドレス指定可能なブロック又はマップユニット(MU)の形式で、不揮発性メモリ(NVM)に記憶される。フォワードマップは、各MUを、MUが記憶されているNVM内の物理的位置と相関させるために、マップデータを提供する1つのデータ構造としてメモリ内に維持される。NVMは、NVMe仕様に従って、少なくとも1つの名前空間に分割される。
マップユニットアドレス(MUA)アレイは、NVM内の各名前空間について、フォワードマップ内の最初のブロックアドレスを識別するように構成されている。NVMに追加された新規の名前空間の各々について、新規エントリが、各々の新規名前空間が過去の最も新しく追加された名前空間の最後のエントリのすぐ後に続く形で、MUAアレイに供給される。
既存の名前空間を、MUAアレイからエントリを除去することによって削除し、更に、既存のポインタをフォワードマップに適宜シフトダウンする。こうすることで、フォワードマップが断片化することなく連続的に維持されるので、2次ルックアップテーブルが不要となり、その結果、名前空間をシステムに追加する、又はシステムから除去する場合のその他のシステム遅延が短縮される。
様々な実施形態のこれらの及びその他の特徴及び利点は、まず初めに、データ処理システム100を提供する図1を再考することで理解できる。システム100は、ホストデバイス102とデータ記憶デバイス104を含む。データ記憶デバイス104は、コントローラ106とメモリモジュール108を含む。コントローラは、メモリモジュール108内のNVMストレージとの間における往復のデータ転送に、トップレベルの通信機能と制御機能を提供する。ホストデバイスとデータ記憶デバイスの間のデータ転送は、1つ以上のPCIeポートを介して提供される。
限定はされないが、この例では、データ記憶デバイス104は、図2で全体を説明するコントローラ構成110を設けたソリッド・ステート・ドライブ(SSD)であると想定する。このコントローラ構成は、フロントエンドコントローラ112、コアコントローラ114、バックエンドコントローラ116を含む。フロントエンドコントローラ112はホストI/F機能を実行し、バックエンドコントローラ116はNVMメモリとのデータ転送を指示し、コアコントローラ114はデバイスにトップレベルの制御を提供する。
各コントローラ112、114、116は、関連のプログラミング(例えば、ファームウェア「FW」)が適切なメモリ位置に実装された別々のプログラム可能なプロセッサ、並びに、データ管理及び転送機能を実行する様々なハードウェア素子を含んでいる。これは一実施形態の例示的なものにすぎない。他の実施形態において、単一のプログラム可能なプロセッサ(又は三[3]つより少ないプログラム可能なプロセッサ)を構成し、適切なメモリ位置の関連のFWを用いて、フロントエンド、コア及びバックエンド処理を各々実行することもできる。純粋にハードウェアベースのコントローラ構成を使用することも可能である。
メモリ118は、コントローラ110によりローカルメモリとして利用される様々な形式の揮発性及び不揮発性メモリ(例えば、SRAM、DDR DRAM、フラッシュなど)を表す。1つ以上のマップ構造120、マップデータ及び他の制御情報のための1つ以上のキャッシュ122、ホストデータのための1つ以上のデータバッファ124を含む、様々なデータ構成及びデータセットを、データ転送中にメモリによって記憶してよい。非プロセッサベースのハードウェア支援回路126は、必要に応じて、1つ以上のコントローラによって特定のメモリ管理タスクのオフローディングを可能にすることができる。
図3は、いくつかの実施形態で、ホストデータ(例えば、ユーザデータ)をSSD NVMに記憶する一般的な方式の図式的概観を提供する。ホストデバイスが、セクタと呼ばれる固定サイズのデータブロック、又は論理ブロックアドレス(LBA)128をNVMに提供し、記憶させる。LBA128は、512バイト(B)、1024B(1KB)、2048B(2KB)といった固定量のユーザデータ(セクタサイズ)を各々有する。
用語「LBA」はいくらか不明瞭であることが理解される。即ち、用語「LBA」は、異なる状況において、データブロック全体、ブロックのユーザデータ部分、及び/又はブロックの論理アドレスを意味するように用いられることが一般的である。説明を明瞭にする目的で、用語LBAはブロック(コンテンツ)を意味し、LBA ID、HLBA(ホストLBA)、又は名前空間HLBAは、関連のブロックに関連付けされた論理アドレスを指すものとする。HBLA値は、データを転送するために、ホストによって様々なアクセスコマンドと共に供給される。典型的に、その範囲は最小値(例えば、HBLA 0)から最大値(HBLA N)である。
LBA128は、時にアドレス指定可能なユニット(AU)とも呼ばれ、又、マップユニット(MU)130と呼ばれるより大型のデータブロックにグループ化され、ユーザデータの4096B(4KB)などのより大型の全体の固定セクタサイズを達成する。例えば、1KBのAUサイズを用いることで、こうしたAUを4つ組み合わせて、4KBのMUが形成される。いくつかの実施形態では、2つの512Bのセクタ(LBA)を組み合わせて、1KBの1つのAUにすることができ、次に、4つのAUを用いて4KBのMUを形成することができる。ファクタは、ホストによって用いられる好適なブロックサイズと、SSD104が維持する様々な制御情報の粒度レベルとを含む。所与のMU内のHLBAは通常は継続的であるが、これは必須ではない。完全なMUが形成されるまで、LBAのデータコンテンツをローカルのデータバッファメモリ126内に累積させることができる。
MUが形成されたら、転送操作を実行し、NANDフラッシュメモリの消去ブロック134内の所定のページ(行)132のようなNVMにMU130を転送する。MU130は、NVM104に書き込まれる、又はNVM104から読み出されるメモリの最小単位を表す。所与のMU130内の全てよりも少ないLBA/AUに読み出し要求を提供する場合には、MUが取得されて復号化され、SSDが、要求されたデータ部分をホストにフォワーディングする。
図3は、サイズが4KBのMUの管理を示すが、これは一例にすぎず、限定ではない。これ以外のサイズを用いることもできる。更に大きいバイト数の制御データがNVM内のページ132に書き込まれたり、関連付けられる。1つの実施形態では、各ページは、LDPC(低密度パリティコード)値、論理値、名前空間情報などのような、4KBのユーザデータに関連した様々なタイプの制御データを収容するための、1872Bのメモリグループを更に設けている。
図4は、NVM内の様々なMU130の位置を追跡するために使用できるマルチレベルマップ140を示す。マップ140は、第一レベルマップ142と第二レベルマップ144を設けたマルチレベルマップとして示されている。これは単に例証を目的としたものであって限定ではなく、シングルレベルマップ、又は2レベルよりも高いレベルのマルチレベルマップといった他のマップ構造も容易に使用できる。
図5に、第二レベルマップ(SLM)144の配置の一例を示す。SLM144は、NVMに常駐している、或いはNVMに書き込むことができるユーザデータ(例えば、MU130)の個々のブロックを記述する多数の第二レベルマップエントリ145(SLME又はエントリ)によって構成されている。特定の論理アドレスが使用されていない、又は使用しない場合でも、SLM144は、NVMに収容できるブロックの論理アドレスの使用可能な範囲全体を記述する。
各エントリ145は、物理ブロックアドレスフィールド146、オフセットフィールド148、ステータスフィールド150を含む多数のフィールドを含んでいる。他のフォーマットを用いることもできる。関連のHBLA値(又は、HBLA値から導出した値)は、エントリ145へのインデックスとして用いられる。
上で述べたように、典型的なフラッシュアレイは、特定の消去ブロック内のフラッシュメモリセルの行に沿って書き込まれたページとして配列されたMUを配列する。PBAは、アレイ、基板、ガベージコレクションユニット(GCU)、消去ブロック、ページ等の用語で表現してもよい。オフセット値は、メモリの所定のページに沿っているビットオフセットであってもよい。ステータス値は、関連のブロックのステータス(例えば、有効、無効、空等)を示すことができる。
エントリ145の複数のグループを、ここでマップページ152と呼ぶより大型のデータセットに配列してもよい。各マップページには、いくつかの所定数のエントリ(変数Aによって表される)が提供される。この場合、各マップページ152は合計100個のエントリを有する。各ページには、2の累乗である数を含むエントリの他のグループを作成することもできる。
つまり、第二レベルマップ(SLM)144が、システム内の全てのマップページ152の配列を構成するということである。SSDの全ストレージ容量を記述するために、いくつかの大きな総数のマップページBが必要になることも想定される。各マップページは、関連のマップID値(ここではマップユニットアドレス(MUA)とも呼ばれる)を有する。MUAの範囲は継続的に0〜Bである。SLM144はNANDフラッシュNVMに記憶されるが、SLMは、フラッシュ内の集中した位置に属するのではなく、様々なダイの種々のセットにわたって書き込まれる傾向にあるようである。
図6に、図4の第一レベルマップ(FLM)142の配列を示す。FLM142によって、SSDはフラッシュに記憶された様々なマップページ152を検索することができる。この目的のため、FLM142は第一レベルマップエントリ165(FLME又はエントリ)によって構成されている。各FLME165は、PBAフィールド166、オフセットフィールド168、ステータスフィールド170を有する。上で述べたマップページID(MUA)は、関連のエントリを検索するために、FLM140へのインデックスとして用いられる。
PBAフィールド166は、関連のマップページの位置を記述する。オフセット値は、前述のように、特定のページ又は他の位置に沿ってのビットオフセットとして動作する。ステータス値は、第二レベルマップ内と同じであってもよく、必要に応じて、マップページ自体のステータスに関係していてもよい。前述と同様、MUAは、関連のエントリを検索するために、データ構造へのインデックスとして用いられる。
第一レベルマップ(FLM)142は、エントリ0からエントリCまでの全てのエントリ162の配列を構成する。いくつかの場合、BはCと等しいが、これらの値は異なっていてもよい。FLM142にアクセスすることで、フラッシュメモリ118内の所望のマップページの位置のMUAを検索できるようになる。フラッシュからの所望のマップページの取得では、そのマップページ内の第二レベルマップエントリを提供し、次に、関連の第二レベルエントリ内のPBA情報に基づいて、別個のLBAを識別し取得できる。そのため、第一レベルマップ142を、所望のMUに関連付けられた関連のマップページの取得を可能にするフォワードマップとして考えることができる。
図7は、いくつかの実施形態によるSSD104の更なる態様を示す。NVMe(不揮発性メモリエクスプレス)コントローラ202は、メディア管理層(MML)コントローラ204と通信して、NVM(この場合は、NANDフラッシュメモリ206と識別される)からデータを転送する。NVMeコントローラ204は図2のコアコントローラ114の一部を形成し、MMLコントローラ204は図2のバックエンドコントローラ116の一部を形成するが、他の配列を用いることもできる。
NVMe規格に従い、NANDフラッシュ206のデータブロック(MU130)の記憶に利用できる部分は、多数の名前空間208に分割されている。このような2例の名前空間は、名前空間(NS)AとNSBとして識別される。各々の名前空間はブロックストレージ容量の関連する総量を有する。PCIeインターフェースプロトコルを介したデータ転送には、HBLA値を示すホストからの値、データの記憶先又は取得先である名前空間、NVMeコントローラ202に関連した名前空間コントローラIDが含まれる。
名前空間208の効率的な管理を容易にするために、MMLコントローラ204は、HBLA−NS変換テーブル210、フォワードマップ212、及びMUAアレイ214を含んだ、ローカルメモリ内の特定のデータ構造を利用する。次に、これらの各々について説明する。
名前空間管理スキームの一部として、NANDフラッシュ206に書き込まれた各AUの制御データ部分を、このデータに関連した名前空間ID値を記憶するように修正する。この目的のため、図8に示すように、64ビットのHBLAフィールド220を各AUの1872Bのデータに組み込む。フィールド220は、0〜7の符号を付けた八(8)個の8ビット(1B)ブロック222で表されている。
64ビットフィールドの下位の32ビット(例えば、0〜3バイト)は、ホストより提供されたHLBA値(名前空間HBLA)を構成している。上位の32ビット(例えば、7バイト)のMSBは、関連データの名前空間IDに設定される。この実施形態では、残りの3バイト(例えば、4〜6バイト)が保留されているが、この3バイトは、システム内で、名前空間、HLBA、又は他の制御情報により多くのビット数が必要である等の場合に、適宜使用することができる。
HBLA−NS変換テーブル210を用い、MMLコントローラ204の指示によって、又は指示の下で、名前空間IDを符号化してHBLAフィールド220にする。図8は、いくつかの実施形態におけるテーブル210の配列を示す。他の形式を適宜使用することもできる。
コントローラHLBA値の名前空間ID及び名前空間HLBAへの復号化は、MMLコントローラ204内で、又はMMLコントローラ204によって、単独で実行される。これら2つの値は、以下で述べるように、所与のMUA(例えば、フォワードマップへのインデックス)を計算するために以降で使用される。この計算は、再割り当てのために有効なデータを再配置し、消去ブロックを消去するために、ホストの読み出し/書き込み動作の実行中、並びに、電源投入時のメタデータ回復中、ガベージコレクション動作中に実行される。
図10は、図7のMUAアレイ212とフォワードマップ214を、いくつかの実施形態に従ってより詳細に示す。同図では、図示のように三(3)つの名前空間にNS1、NS2、及びNS4を指定しているが、合計四(4)つの名前空間を収容することが可能である(NS1〜NS4)。フォワードマップ214はMUA0(最小MUA値、又は一番下のアドレス)からMUAN−1(最大MUA値、又は一番上のアドレス)まで配列されている。NS1、NS2、及びNS4のそれぞれの名前空間範囲は、各々224、226、228と識別される。ブロック230は、マップ内の未使用のMUA範囲を表す。名前空間範囲の各々は、名前空間の形成時に確立された異なるデータブロック(MU)総容量を有する。各々の名前空間のHLBA値は、その名前空間のHBLA0から最大ブロック値までであってよい。
図10からわかるように、NANDフラッシュ内の名前空間は、フォワードマップ214内のMUAの連続的且つ継続的な範囲によって記述されている。MMLコントローラ206は、MUAアレイ212を、対応する名前空間ID範囲のベースMUAとして各々参照される名前空間ベースMUA値232のアレイとして定義する。各ベースMUAはアレイ212へのインデックスであり、したがって、或る特定のMUAを取得するためには、関連の名前空間についてベースMUAを検索し、インクリメントするだけでよい。所与のMUが記憶されているMUAは、名前空間HLBAを、名前空間IDに対応したベースMUAアレイの要素内の値に追加することで取得される。例えば、NS4内の所定のMUAを検索するためには、これを次式から求めることができる。
所定のMUA=NS4第一MUAアドレス+HLBA (1)
名前空間を削除することで、フォワードマップ内でのHLBAの位置が変更し得るため、フッタエントリは絶対MUA値を含まない。つまり、HLBA値とMUA値の間には、静的ではなく相対的な一致が維持される。そのため、関連のMUデータを参照するフォワードマップMUAをシステムが常に確実に検索するためには、フッタエントリ(使用する場合)がフル64ビットのHLBAフィールド220(図8)を含んでいる必要がある。
図11は、図10のMUAアレイ212とフォワードマップ214に新規の名前空間234(NS3)を追加した状態を示す。新規の名前空間234が、次の利用可能なMUA(この場合は、第四名前空間228(NS4)内の最後のMUAの次のMUA)の開始位置に追加されていることがわかる。次に、NS3のポインタが、第三名前空間234の第一MUAアドレスを識別する。
図12は、図12のMUAアレイ212とフォワードマップ214で、第一名前空間224(NS1)が削除された状態を示す。第二名前空間226(NS2)は上述と同様であるが、マップ214内で連続性を維持し、断片化を防止するために、第四名前空間228(NS4)と第三名前空間234(NS3)がそれぞれシフトダウンされている。NS1のステータスは無効に設定されている。
こうすることで、NS4の最初のMUAエントリが、(削除された)NS1の最初のMUAエントリによって占有されていた中間アドレスと対応するようにシフトダウンされる。これで、NS4の対応するベースMUAエントリ(ポインタ)232が、この中間アドレス(例えば、以前にNS1の第一エントリによって占有されていたエントリ)を指すようになった。ポインタを、物理メモリ内のマップページの位置を指し続けるように調整する。
この方式で複数の名前空間をサポートするためには、表Iで例証されるように、NVMeコマンドセットに変化する多数のインターフェースが必要な場合がある。
Figure 2018206384
NVMeコントローラ202は、アクティブでない又は付加されていない名前空間について、MMLコントローラ204への入出力コマンドをブロックする。NVMeコントローラは、これらのコマンドに即座にエラーを戻すので、MMLコントローラがホストの要求を見ることはない。NVMeコントローラ202は、名前空間のアタッチとデタッチの両方を実施する名前空間アタッチ(Namespace Attachment)コマンドのサポートも実施する。MMLコントローラは所与のポートから名前空間へのアクセスを可能にするだけなので、MMLコントローラ204がこれらのコマンドを見ることはない。
SSD104の最初の初期化時には、第一名前空間(NS1)のみが定義され、この名前空間がNVM(NANDフラッシュ206)のデータ容量全体に拡張する。EBファイル内でベースMUAアレイ212が他のメジャーなMMLテーブルと共に生成され、又、名前空間のあらゆる作成又は削除に伴って、EBファイル保存操作がトリガされる。MMLコントローラ204は、後にNVMeコントローラ202から送られる名前空間作成コマンドと名前空間削除コマンドのためにハンドラが必要であることを理解されたい。
図13は、新規の名前空間作成ルーチン300のためのフローチャートを示す。このフローチャートは、既存のNVMに新規の名前空間を追加するために実施されるステップの全体を例証する。新規の名前空間の要求はホストレベルで始まると想定されるが、これは必須ではない。
ステップ302で新規の名前空間の特性を定義する。この特性には、新規の名前空間に含めるブロックの総数(例えば、サイズ)が含まれる。ステップ304で、ベースMUAアレイ212を、新規に追加された名前空間を反映するように、並びに、ポインタを、フォワードマップ214内の次の利用可能なMUAを指すように更新する。ステップ306で、フォワードマップのフルコピーをNVMに保存し、ステップ308でルーチンが終了する。
この方法では、新規の名前空間の作成に伴い、概して以下の操作を順番に行う必要がある。即ち、次の利用可能なMUAがフォワードマップ上にある状態で、作成中の名前空間のためのベースMUAアレイ212要素を更新し、次に、フォワードマップ/EBファイルテーブルの保存をトリガする。
図14は、既存の名前空間削除ルーチン320のフローチャートを示す。先行と同様に、名前空間削除の要求はホストレベルから始まるが、これは必須ではない。
ステップ322で、ローカルメモリに常駐する全ての既存のLBAをトリムする、又は、名前空間を削除する前にNVMに書き込まれるように処理する。次に、ステップ324で、削除した名前空間よりも上の全てのフォワード・マップ・エントリを、図12に関連して先述したとおりにシフトダウンする。ステップ326で、使用されなくなった全てのエントリのフォワード・マップ・エントリ状態を非管理ステータスに設定する。
ステップ328で、ベースMUAアレイ212を、削除された名前空間を無効として示すように更新する。又、適宜、新規のベース値を、フォワードマップ内の新規の開始位置を指すように更新する。最後に、ステップ330でマップのフルコピーを保存し、ステップ332でルーチンが終了する。
この方法では、既存の名前空間の削除に伴い、概して以下の操作を順番に行う必要がある。即ち、名前空間内の削除対象の全てのコントローラLBAをトリムする、DMA回路(図2のハードウェア支援マネージャ120など)を使用して、削除された名前空間よりも上の名前空間内の全てのフォワード・マップ・エントリを、削除された名前空間のベースMUAにまでシフトダウンする、名前空間の削除により使用されなくなった全てのフォワード・マップ・エントリのフォワード・マップ・エントリ状態をアンマップ(マップされていない)に設定する、削除した名前空間のエントリを無効値に設定し、シフトさせた全ての名前空間のエントリをそれぞれの新規の位置に設定することにより、ベースMUAアレイ212を更新する、及びフォワードマップ/EBファイルテーブル全体の保存をトリガする。
名前空間HLBAに作用する、又は名前空間HLBAの範囲に作用するNVMeコマンドは、MMLコントローラ206によってMUA値に変換したHLBAを更に有する必要がある。このようなコマンドには、初期化、トリム、割り当て取り消し、ゼロ書き込み、データセット管理が含まれる。初期化コマンドの場合、ターゲットの名前空間内のHLBAのみが割り当て取り消しされる。NVMeコントローラ202が全ての名前空間を初期化するように要求すると、MMLコントローラ206が、全ての定義された名前空間をループスルーすることによってこれを行う。
図15は、データ処理ルーチン350のフローチャートであり、概して、図7、図10〜図12に関連して先述したように、NVMが複数の名前空間を有する状況で、NVM206とホストデバイス102との間でデータ転送を行うために、SSD104によって実行されるステップを示している。他のシーケンスを用いることもできる。
ステップ352で、PCIeポートを介してホストデバイス102からホスト・アクセス・コマンドを受信する。ホスト・アクセス・コマンドは、非限定的にデータ読み出しコマンドなどである。ステップ354で、フロントエンドコントローラ112による最初の処理の後に、MVMeコントローラ202は、関連するデータに関連した1つ以上の所定のマップページについての検索コマンドを発行するように動作できる。
ステップ356で、このコマンドが、名前空間IDとHLBA要素を識別するMMLコントローラ206にフォワーディングされる。ステップ358で、これらの要素をベースMUAアレイ212と共に使用して、フォワードマップ内の所定のMUAを検索する。ステップ360で、取得したマップページは、物理メモリ(例えば、ページ132)内のデータを検索するために使用され、又、コマンドは、要求されたデータをリードバックする、処理する、ホストに戻すこと等によって利用され、その後、ステップ362でルーチンが終了する。
ここで述べた様々な実施形態の利点には、HBLA−NS名前空間テーブル210によって、メタデータをNVM内で、並びにそれぞれのコントローラによって取り扱われている最中に、一意化できることが含まれる。フォワードマップ214の連続性を維持することで、マップ内の断片化したセクションを捕えるための二次ルックアップ操作の必要性がなくなる。これは、フォワードマップが連続したHLBA名前空間に分割されるためである。別の利点は、高速経路遅延の影響が大幅に回避されることである。遅延は、一般に、フォワードマップが除去された名前空間の分だけ圧縮される名前空間削除操作の最中にのみ生じる。いくつかのケースでは、この操作の最中にも、操作の影響を受けない名前空間(つまり、再計算されない図12の第二名前空間(NS2)等)へのアクセスが許可される。
様々な実施形態にて、フラッシュメモリを実装したソリッドステートドライブ(SSD)の環境を想定したが、種々のストレージメモリ形態や種々のデバイス数といった他の構成も簡単に使用することができる。
当然のことながら、本開示内容の様々な実施形態の多数の特徴及び利点が、本開示内容の様々な実施形態の構造及び機能の詳細と共に、上記の説明で述べられているとしても、この詳細な説明は例示的なものにすぎず、添付の請求項で表現される用語の広範囲の一般的な意味によって示される十分な範囲まで、本開示内容の原理内で、特に部品の構造及び配置の問題において、詳細に変更を行ってもよい。
100 データ処理システム、102 ホストデバイス、104 データ記憶デバイス、106 コントローラ、108 メモリモジュール。

Claims (20)

  1. 装置であって、
    所定のサイズのユーザデータのアドレス指定可能なブロックを備えたマップユニット(MU)を、不揮発性メモリ(NVM)の少なくとも1つの名前空間内に記憶するように構成された不揮発性メモリ(NVM)と、
    ホストデバイスと前記NVMの間でMUを転送するために、少なくとも1つのペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)ポートを介して、前記ホストデバイスとインターフェース通信するように構成された不揮発性メモリエクスプレス(NVMe)コントローラ回路と、
    前記MUの各々を前記MUが記憶されている前記NVM内の物理的位置と相関させるマップユニットアドレス(MUA)エントリを備えた、ローカルメモリ内にデータ構造として記憶されたフォワードマップであって、前記MUAエントリは、フォワードテーブル内で最下アドレスから最上アドレスまで連続的に配列され、又、前記NVM内の前記少なくとも1つの名前空間の各々のための、すぐ隣どうしに連続した範囲にグループ化される、フォワードマップと、
    前記NVM内の前記少なくとも1つの名前空間の各々への最初のMUAエントリの前記アドレスを前記フォワードマップ内で識別するように構成された、ローカルメモリ内にデータ構造として記憶されているベースMUAアレイと、
    メディア管理層(MML)コントローラ回路であって、前記フォワードマップ内で、過去の最も新しく追加された名前空間の前回のMUAエントリのすぐ後に続けて、前記MUAエントリの新規範囲を前記フォワードマップに付加することにより、又、前記フォワードマップ内で、前記新規の名前空間の前記最初のMUAエントリの前記アドレスを識別するために、新規エントリを前記ベースMUAアレイに追加することにより、新規の名前空間を前記NVMに追加するように構成されている、メディア管理層(MML)コントローラ回路とを備える、装置。
  2. 前記NVM内の第一名前空間は、前記フォワードマップ内の前記最下アドレスに対応した最初のMUAエントリと、前記フォワードマップ内の第一中間アドレスにある最後のMUAエントリとを有し、前記NVM内の第二名前空間は、前記フォワードマップ内の前記第一中間アドレスのすぐ隣の第二中間アドレスにある最初のMUAエントリを有する、請求項1に記載の装置。
  3. 前記MMLコントローラ回路は、次に、前記過去の最も新しく追加された名前空間を前記NVMから削除するように更に構成されており、前記削除は、前記フォワードマップ内の、前記過去の最も新しく追加された名前空間の前記最初のMUAエントリの第一中間アドレスを識別した、前記ベースMUAアレイ内の前記対応するエントリを除去することと、前記新規の名前空間の前記最初のMUAエントリが前記フォワードマップ内の前記第一中間アドレスに対応するように、前記MUAエントリの前記関連範囲をシフトダウンすることと、前記新規の名前空間に関連した前記エントリが前記フォワードマップ内の前記第一中間アドレスを識別できるようにするべく、前記ベースMUAアレイを修正することとによって為される、請求項1に記載の装置。
  4. 前記MMLコントローラ回路は、前記NVMeコントローラ回路から受信した保留中のホストコマンドを利用するように更に構成されており、前記保留中のホストコマンドの使用は、前記保留中のホストコマンドに関連した所定の名前空間を識別することと、前記所定の名前空間への前記最初のMUAエントリの、前記フォワードマップ内での前記アドレスを検索するため、又、前記保留中のホストコマンドに関連した論理アドレスに応答する前記所定の名前空間への前記最初のMUAエントリから多数のエントリを上方にインクリメントすることで、前記保留中のホストコマンドに関連した前記フォワードマップ内の前記関連するMUAエントリを検索するために、前記ベースMUAアレイにアクセスすることと、前記保留中のホストコマンドの前記使用を達成するべく、前記NVM内の、データが書き込まれる、又はデータが取得される物理的位置を識別するために、前記関連するMUAエントリを使用することとによって為される、請求項1に記載の装置。
  5. 前記ローカルメモリにデータ構造として記憶された変換テーブルを更に備え、前記MMLコントローラ回路は、前記NVMeコントローラから受信したMUを、前記MUに関連した前記NVM内の所定の名前空間の名前空間ID値に付加する、請求項1に記載の装置。
  6. 前記MMLコントローラ回路は、前記MUに関連する論理アドレスを備える前記NVMeコントローラから受信した前記MUを更に付加する、請求項5に記載の装置。
  7. 前記MMLコントローラ回路は、前記変換テーブルからの前記名前空間IDに応答する前記ベースMUAアレイにアクセスし、これを、前記名前空間IDに関連した前記ベースMUAエントリから、前記変換テーブルからの前記論理アドレスに対応した距離だけインクリメントする、請求項6に記載の装置。
  8. 前記NVMeコントローラ回路と前記MMLコントローラ回路は、少なくとも1つのプログラム可能なプロセッサと、プロセッサメモリに記憶されている関連のプログラミングを用いて実現され、前記関連の少なくとも1つのプログラム可能なプロセッサによって実行される、請求項1に記載の装置。
  9. 前記MUの各々は、ホストデバイスからの4096バイト(B)のユーザデータを記憶するように構成されており、前記MMLコントローラ回路によって前記MUに付加された別個の論理アドレスを各々有する、前記ホストデバイスからの複数のデータブロックで形成されている、請求項1に記載の装置。
  10. ソリッド・ステート・ドライブ(SSD)として特徴付けられ、前記NVMはNANDフラッシュメモリを備える、請求項1に記載の装置。
  11. 方法であって、
    不揮発性メモリ(NVM)を、ホストデバイスからの所定サイズのユーザデータのアドレス指定可能なブロックを備えたマップユニット(MU)を記憶するための不揮発性メモリエクスプレス(NVMe)名前空間として各々構成された1つ以上の名前空間内に配列するステップと、
    前記MUの各々を前記MUが記憶されている前記NVM内の物理的位置と相関させるマップユニットアドレス(MUA)エントリを備えた、ローカルメモリ内にデータ構造として記憶されたフォワードマップを記憶するステップであって、前記MUAエントリは、フォワードテーブル内で最下アドレスから最上アドレスまで連続的に配列され、又、前記NVM内の前記少なくとも1つの名前空間の各々のための、すぐ隣どうしに連続した範囲にグループ化される、フォワードマップを記憶するステップと、
    前記NVM内の前記1つ以上の名前空間の各々への前記最初のMUAエントリの、前記フォワードマップ内における前記アドレスを識別する前記ローカルメモリ内のデータ構造としてのベースMUAアレイを生成するステップと、
    前記MUAエントリの新規範囲を、前記フォワードマップの、前記フォワードマップ内で前記過去の最も新しく追加された名前空間の前記前回のMUAエントリのすぐ後に付加することと、前記フォワードマップ内の、前記新規の名前空間への前記最初のMUAエントリの前記アドレスを識別するために、前記ベースMUAアレイに新規エントリを追加することとによって、新規の名前空間を前記NVMに追加するステップとを備える、方法。
  12. 前記フォワードマップ及び前記ベースMUAアレイを使用して、前記ホストデバイスと前記新規の名前空間NVMとの間で所定のMUを転送する次のステップを更に備える、請求項11に記載の方法。
  13. 前記追加するステップは、NVMeコントローラ回路より受信したコマンドに応答する前記NVMによってデータ転送を指示するように構成されたメディア管理層(MML)コントローラ回路によって実行される、請求項11に記載の方法。
  14. 前記NVMeコントローラ回路と前記MMLコントローラ回路は、少なくとも1つのプログラム可能なプロセッサと、プロセッサメモリに記憶されている関連のプログラミングとを用いて実現され、前記関連の少なくとも1つのプログラム可能なプロセッサによって実行される、請求項13に記載の方法。
  15. 前記NVM内の第一名前空間は、前記フォワードマップ内の前記最下のアドレスに対応した最初のMUAエントリと、前記フォワードマップ内の第一中間アドレスにおける最後のMUAエントリとを有し、前記NVM内の第二名前空間は、前記フォワードマップ内の前記第一中間アドレスのすぐ隣の第二の中間アドレスにおける最初のMUAエントリを有する、請求項11に記載の方法。
  16. 前記NVMから前記過去の最も新しく追加された名前空間を削除する後続のステップを更に備え、前記後続のステップは、
    前記フォワードマップ内で、前記過去の最も新しく追加された名前空間の前記最初のMUAエントリの第一中間アドレスを識別した、前記ベースMUAアレイ内の前記対応するアレイを除去することと、
    前記新規の名前空間への前記最初のMUAエントリが前記フォワードマップ内の前記第一中間アドレスに対応するように、前記MUAエントリの前記関連の範囲をシフトダウンすることと、
    前記新規の名前空間に関連した前記エントリが前記フォワードマップ内の前記第一中間アドレスを識別するように、前記ベースMUAアレイを修正することとによって為される、請求項11に記載の方法。
  17. 前記ホストデバイスから受信した保留中のホストコマンドを使用する後続のステップを更に備え、前記後続のステップは、
    前記保留中のホストコマンドに関連した所定の名前空間を識別することと、
    前記フォワードマップ内での、前記所定の名前空間への前記最初のMUAエントリの前記アドレスを検索するために、前記ベースMUAアレイにアクセスすることと、
    多数のエントリを、前記保留中のホストコマンドに関連した論理アドレスに応答する前記所定の名前空間への前記最初のMUAエントリから上方へインクリメントすることで、前記保留中のホストコマンドに関連した前記フォワードマップ内の前記関連するMUAエントリを検索することと、
    前記保留中のホストコマンドの前記使用を達成するために、データが書き込まれる、又は取得される前記NVMの内の物理的位置を識別するために、前記関連のMUAエントリを使用することとによって為される、請求項11に記載の方法。
  18. 記憶するべく受信した所定のMUを、前記MUに関連した前記NVM内の所定の名前空間のための名前空間ID値を持つ前記NVMに付加するために、前記ローカルメモリ内にデータ構造として記憶されている変換テーブルを使用することを更に備える、請求項11に記載の方法。
  19. 前記MUに関連する論理アドレスを備える前記所定のMUを付加するために、前記変換テーブルを使用することを更に備える、請求項18に記載の方法。
  20. 前記フォワードマップ内の前記所定の名前空間への前記ベースMUAエントリを検索するために、
    前記変換テーブルからの前記名前空間IDに応答する前記ベースMUAアレイにアクセスすることと、
    所定のマップの前記ベースMUAエントリから、前記変換テーブルからの前記論理アドレスに対応した多数のMUAエントリの分だけインクリメントすることとを更に備える、請求項19に記載の方法。
JP2018103504A 2017-05-31 2018-05-30 不揮発性メモリ(nvm)において複数の名前空間を管理する Pending JP2018206384A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/609,758 2017-05-31
US15/609,758 US10275361B2 (en) 2017-05-31 2017-05-31 Managing multiple namespaces in a non-volatile memory (NVM)

Publications (2)

Publication Number Publication Date
JP2018206384A true JP2018206384A (ja) 2018-12-27
JP2018206384A5 JP2018206384A5 (ja) 2019-02-28

Family

ID=64458272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018103504A Pending JP2018206384A (ja) 2017-05-31 2018-05-30 不揮発性メモリ(nvm)において複数の名前空間を管理する

Country Status (4)

Country Link
US (1) US10275361B2 (ja)
JP (1) JP2018206384A (ja)
KR (1) KR102042643B1 (ja)
CN (1) CN108984420B (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503404B2 (en) * 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
KR102503177B1 (ko) * 2018-03-05 2023-02-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11656992B2 (en) 2019-05-03 2023-05-23 Western Digital Technologies, Inc. Distributed cache with in-network prefetch
CN112114738B (zh) * 2019-06-20 2024-02-20 杭州海康威视数字技术股份有限公司 一种存储数据的方法及存储设备
CN110515561B (zh) * 2019-08-27 2022-09-16 江苏华存电子科技有限公司 一种适用于NVMe命名空间下双接口位址硬体架构
KR20210066559A (ko) 2019-11-28 2021-06-07 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템
US11087846B1 (en) 2020-02-12 2021-08-10 SK Hynix Inc. Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder
US11941458B2 (en) 2020-03-10 2024-03-26 Sk Hynix Nand Product Solutions Corp. Maintaining storage namespace identifiers for live virtualized execution environment migration
US11765250B2 (en) 2020-06-26 2023-09-19 Western Digital Technologies, Inc. Devices and methods for managing network traffic for a distributed cache
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
US11455124B2 (en) * 2020-10-09 2022-09-27 Western Digital Technologies, Inc. Command prioritization to reduce latencies of zone commands
US12088470B2 (en) * 2020-12-18 2024-09-10 Western Digital Technologies, Inc. Management of non-volatile memory express nodes
US12301690B2 (en) 2021-05-26 2025-05-13 Western Digital Technologies, Inc. Allocation of distributed cache
US12149358B2 (en) 2021-06-21 2024-11-19 Western Digital Technologies, Inc. In-network failure indication and recovery
US12204503B2 (en) 2021-06-22 2025-01-21 Samsung Electronics Co., Ltd. Mechanism for managing a migration of data with mapped page and dirty page bitmap sections
US11586372B2 (en) 2021-07-01 2023-02-21 Samsung Electronics Co., Ltd. Use of copy location to selectively set or selectively clear bits of metadata during live migration
CN114265554B (zh) * 2021-12-22 2023-08-15 苏州浪潮智能科技有限公司 Nvme限定名映射方法、计算机设备和存储介质
US20230222165A1 (en) * 2022-01-13 2023-07-13 Druva Inc. Object storage-based indexing systems and method
US12321475B2 (en) 2022-01-26 2025-06-03 Samsung Electronics Co., Ltd. Storage device for performing access authority control and operating method thereof
KR20240065774A (ko) * 2022-11-07 2024-05-14 에스케이하이닉스 주식회사 네임스페이스의 순차성을 기초로 논리 주소를 변환하는 스토리지 장치 및 그 동작 방법
KR20240084902A (ko) 2022-12-07 2024-06-14 삼성전자주식회사 연산 스토리지 장치 및 그 구동 방법
KR20240114205A (ko) 2023-01-16 2024-07-23 삼성전자주식회사 멀티 네임스페이스를 지원하는 스토리지 장치 및 그것의 동작 방법
US12260131B2 (en) 2023-05-02 2025-03-25 SanDisk Technologies, Inc. Commands splitting based on flat logical block address and security key

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080732A1 (en) * 2011-09-27 2013-03-28 Fusion-Io, Inc. Apparatus, system, and method for an address translation layer
JP2017004355A (ja) * 2015-06-12 2017-01-05 株式会社東芝 メモリシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102598019B (zh) * 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
US9727570B2 (en) * 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
US8775773B2 (en) * 2011-08-26 2014-07-08 Vmware, Inc. Object storage system
US9454474B2 (en) * 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US9003071B2 (en) 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV
US9430412B2 (en) * 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
US9292379B2 (en) * 2013-09-28 2016-03-22 Intel Corporation Apparatus and method to manage high capacity storage devices
US9501245B2 (en) 2014-05-02 2016-11-22 Cavium, Inc. Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US9430268B2 (en) * 2014-05-02 2016-08-30 Cavium, Inc. Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers
US20170228173A9 (en) * 2014-05-02 2017-08-10 Cavium, Inc. Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
US9384093B1 (en) 2014-05-28 2016-07-05 Microsemi Storage Solutions (U.S.), Inc. Raid enabled NVME device
US20160342463A1 (en) 2015-05-20 2016-11-24 Kabushiki Kaisha Toshiba Data protection in a namespace

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080732A1 (en) * 2011-09-27 2013-03-28 Fusion-Io, Inc. Apparatus, system, and method for an address translation layer
JP2017004355A (ja) * 2015-06-12 2017-01-05 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
KR20180131475A (ko) 2018-12-10
US20180349285A1 (en) 2018-12-06
CN108984420A (zh) 2018-12-11
KR102042643B1 (ko) 2019-12-02
US10275361B2 (en) 2019-04-30
CN108984420B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
KR102042643B1 (ko) 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리
US11042487B2 (en) Memory system and method for controlling nonvolatile memory
US11232041B2 (en) Memory addressing
JP6126158B2 (ja) ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け
JP6205650B2 (ja) 不均等アクセス・メモリにレコードを配置するために不均等ハッシュ機能を利用する方法および装置
US7890550B2 (en) Flash memory system and garbage collection method thereof
US20200089619A1 (en) Data storage device and method of deleting namespace thereof
US10606760B2 (en) Nonvolatile memory devices and methods of controlling the same
CN112486852B (zh) 一种固态硬盘及其地址映射方法
US20060020744A1 (en) Method and apparatus for maintaining data on non-volatile memory systems
US20190391756A1 (en) Data storage device and cache-diversion method thereof
CN111061655B (zh) 存储设备的地址转换方法与设备
CN110275838B (zh) Kv存储设备的地址转换及其加速器
CN1823327A (zh) 信息记录介质的数据区域管理方法、使用数据区域管理方法的信息处理装置
CN115708080A (zh) 具有散列的键值存储设备
CN113515469B (zh) 创建、删除命名空间的方法与固态存储设备
US20050050294A1 (en) Segmented storage system mapping
US11366609B2 (en) Technique for encoding deferred reference count increments and decrements
CN107273306A (zh) 一种固态硬盘的数据读取、数据写入方法及固态硬盘
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
KR20230075334A (ko) 키-값 데이터 저장 디바이스를 위한 ecc 패리티 바이어싱
US20240211165A1 (en) Devices, Methods, And Computer Readable Media For Control Page Flush Handling
CN119201784A (zh) 无dram存储设备存储介质管理的方法
CN119201781A (zh) 无dram存储设备处理读写命令的方法
CN119201780A (zh) 无dram存储设备执行刷写操作的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200915