JP7079349B2 - 論理対物理データ構造 - Google Patents

論理対物理データ構造 Download PDF

Info

Publication number
JP7079349B2
JP7079349B2 JP2020566796A JP2020566796A JP7079349B2 JP 7079349 B2 JP7079349 B2 JP 7079349B2 JP 2020566796 A JP2020566796 A JP 2020566796A JP 2020566796 A JP2020566796 A JP 2020566796A JP 7079349 B2 JP7079349 B2 JP 7079349B2
Authority
JP
Japan
Prior art keywords
data structure
lba
location
controller
hash function
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
JP2020566796A
Other languages
English (en)
Other versions
JP2021526260A (ja
Inventor
パオロ アマート
Original Assignee
マイクロン テクノロジー,インク.
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 マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2021526260A publication Critical patent/JP2021526260A/ja
Application granted granted Critical
Publication of JP7079349B2 publication Critical patent/JP7079349B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本開示は、一般に、半導体メモリ及び方法に関し、より詳細には、論理対物理データ構造に関連する装置及び方法に関する。
メモリデバイスは典型的には、コンピューティングシステム内で、内蔵の、半導体の、集積回路として設けられる。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。揮発性メモリは、データ(例えば、ホストデータ、エラーデータなど)を保持するために電力を必要とし得る。揮発性メモリには、特に、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、及びサイリスタランダムアクセスメモリ(TRAM)などが含まれる。不揮発性メモリは、非通電時に、格納されたデータを保持することで、永続的なデータを提供することができ、不揮発性メモリには、NANDフラッシュメモリ、及びNORフラッシュメモリなどが含まれ得る。
データは、論理ブロックアドレス(LBA)及び物理ブロックアドレス(PBA)に従って格納され得る。LBAとPBAとの間のマッピングは、論理対物理(L2P)マッピングと呼ばれることがある。LBAとPBAとの間のマッピングは、ツリー構造内に格納され得る。L2Pデータを格納するためのツリー構造には、PレベルのL2Pテーブルが含まれ得る。ただし、Pはゼロ以外の整数である。一部のアプローチによる簡単な例には、2レベルのL2Pテーブルが含まれ得る。第1のレベルのテーブルは、「セグメント」と称し得る第2のレベルのテーブルのアドレスを含み得る。一部のアプローチでは、各セグメントは、小範囲の連続したLBA(例えば、1024のLBA)に対するL2Pテーブルを含み得る。
本開示のいくつかの実施形態によるメモリシステムを備えたコンピューティングシステムの形態の装置の機能ブロック図である。 本開示のいくつかの実施形態によるメモリシステムの形態の装置のブロック図である。 本開示のいくつかの実施形態によるフラッシュデータ構造のブロック図である。 本開示のいくつかの実施形態による例示的な論理対物理データ構造のブロック図である。 本開示のいくつかの実施形態による例示的な論理対物理データ構造の別のブロック図である。 本開示のいくつかの実施形態による論理対物理データ構造のための例示的な流れ図を示す。
本開示は、論理対物理データ構造に関連する装置及び方法を含む。例示的な装置が、不揮発性メモリ(NVM)デバイスに結合されたコントローラを備える。このコントローラは、論理ブロックアドレス(LBA)をNVMデバイスの第1の論理対物理(L2P)データ構造内に記憶させ、物理ブロックアドレス(PBA)をNVMデバイスの第2のL2Pデータ構造内に記憶させるように構成され得る。第1のL2Pデータ構造と第2のL2Pデータ構造とは、そのL2Pデータ構造と関連付けられた同じサイズを有し得る。
パーソナルコンピュータ、ラップトップ、タブレット、ファブレット、スマートフォン、モノのインターネット(IoT)対応デバイスなどのコンピューティングシステムは、コンピューティングシステムに関連するデータ及び/または命令を格納するために、もう1つのメモリデバイス(例えば、メモリリソース)を含み得る。本明細書で使用するとき、「IoT対応デバイス」には、物理的デバイス、乗り物、家庭用電気製品、及びその他のデバイスであって、電子機器、ソフトウェア、センサ、アクチュエータ、及び/または上記の種類の物が接続してデータをやり取りすることを可能にするネットワーク接続性が組み込まれた物理的デバイス、乗り物、家庭用電気製品、及びその他のデバイスが含まれる。IoT対応デバイスの例には、いくつかあるサイバー物理システムのなかでも特に、ウェアラブルテクノロジ、スマートホームデバイス、インテリジェントショッピングシステム、及び監視デバイスが含まれる。更に、コンピューティングシステムは、オペレーティングシステムなどのシステムソフトウェアを実行して、コンピューティングシステムで動作するアプリケーションに共通のサービスを提供するための1つ以上の処理リソースを含み得る。オペレーティングシステムの例には、LINUX(登録商標)、UNIX(登録商標)、WINDOWS(登録商標)などが含まれる。
動作中、コンピューティングシステムは、データ(例えば、コマンド、ファームウェア、ソフトウェア、コンピュータコード、メタコード、フレームワークファイルなど)を1つ以上のメモリデバイスに格納することができる。そのようなメモリデバイスは、揮発性または不揮発性(例えば、持続性)であり得る。不揮発性メモリ(NVM)デバイスの例には、NANDフラッシュ、NORフラッシュなどの持続性フラッシュメモリリソース、及び新興メモリデバイスが含まれ得る。新興メモリ(EM)テクノロジには、相変化メモリ(PCM)、磁気抵抗ランダムアクセスメモリ(MRAM)、抵抗変化型メモリ(ReRAM)、強誘電性RAM(FeRAM)、及び/または3D XPointメモリなどが含まれ得、これらは他のメモリテクノロジよりもメモリ関連の待ち時間を改善する可能性がある。揮発性メモリデバイスには、記憶された情報を保持するために電力を必要とするメモリデバイスが含まれ得る。揮発性メモリデバイスの例には、特に、ダイナミックランダムアクセスメモリ(DRAM)及びスタティックランダムアクセスメモリ(SRAM)などが含まれる。
メモリデバイス(複数可)によって記憶されたデータは、メモリデバイス(複数可)の物理的な場所に存在し得る。データが格納された物理的な場所(例えば、物理ブロックアドレス)は、論理ブロックアドレス(LBA)にマッピングされ得る。論理ブロックアドレスは、データ構造内に格納され得、データが格納された物理ブロックアドレス(PBA)にアクセスするために呼び出され得る。例えば、データにアクセスする(例えば、データを読み出す、書き込む、消去するなど)ために、LBAが呼び出され得、コンピューティングシステムはLBAからPBAに導かれる。本明細書で使用するとき、「データ構造」は、データを編成する、及び/またはデータを格納するための特殊化された形式のことをいい、行及び列に編成される場合があり、または行及び列に編成されない場合がある。データ構造の例には、配列、ファイル、レコード、テーブル、ツリー、リンクリスト、ハッシュテーブルなどが含まれる。
論理ブロックアドレス指定は、ホストがデータの論理セクタを識別するために使用し得るスキームである。例えば、各論理セクタは、一意の論理ブロックアドレス(LBA)に対応し得る。更に、LBAはまた、物理アドレスに対応し得る。データの論理セクタは、いくらかのバイト(例えば、256バイト、512バイト、または1,024バイト)のデータであり得る。しかし、実施形態は、これらの例に限定されるものではない。
LBAとPBAとの間のマッピングは、論理対物理(L2P)データ構造(例えば、L2Pアドレスデータ構造)内に格納され得る。一部のアプローチでは、L2Pデータ構造はツリー構造に配列される。一部のアプローチによる、L2Pデータ構造を格納するための例示的なツリー構造には、PレベルのL2Pテーブルが含まれ得る。ただし、Pはゼロ以外の整数である。一部のアプローチによる簡単な例には、2レベルのL2Pテーブルが含まれ得る。第1のレベルのテーブルは、「セグメント」と称し得る第2のレベルのテーブルのアドレスを含み得る。一部のアプローチでは、各セグメントは、小範囲の連続したLBA(例えば、1024のLBA)に対するL2Pテーブルを含み得る。
一部のアプローチでは、上記のツリー構造のL2Pデータ構造を利用して、コンピューティングデバイスの稼働時に所与のLBAの検索を単純化する。更に、一部のアプローチでは、上記のツリー構造のL2Pデータ構造を利用して、第1のレベルのテーブルに関連するサイズを最小化する。例えば、第1のレベルのテーブルに関連するサイズが特定のサイズ閾値内に保たれる場合、第1のレベルのテーブルを、コンピューティングシステムのストレージコントローラのSRAM及び/またはDRAM部分に格納することが可能であり得る。
ただし、ツリー構造のL2Pデータ構造が使用されるアプローチは、様々な欠点を抱えている可能性がある。例えば、ツリー構造のL2Pデータ構造を使用するアプローチでは、メモリデバイスの記憶密度が高くなるときに、ツリー内の付加的レベルを利用する。例えば、メモリデバイスの記憶密度が増加するにつれて、ツリー構造のL2Pデータ構造のレベル数もそれに応じて増加し得る。一部のアプローチでは、これにより、L2Pのルックアップ及び/または変換における遅延が長くなる可能性がある。更に、ツリーのレベル数が増えるにつれて、管理の複雑さ(例えば、メモリ管理スキームの複雑さ)も増加する。遅延時間の増加及び/または管理の複雑さの増加は、ツリーの各レベルにわたって伝播したL2Pテーブルの変更に対応し得る。
対照的に、本明細書の実施形態は、不揮発性メモリデバイス(例えば、新興NVMデバイス)及びフラッシュメモリデバイス(例えば、NANDメモリデバイス)がメモリデバイスの一部として提供されるアプリケーションで使用され得るL2Pテーブル構造を説明する。一部の実施形態では、本明細書に記載のL2Pデータ構造は、L2Pマッピングテーブルを含み得る。第1のL2Pマッピングテーブルは論理ブロックアドレスを含み得、第2のL2Pマッピングテーブルは物理ブロックアドレスを含み得る。一部の実施形態では、第1のL2Pマッピングテーブル(例えば、論理ブロックアドレスを含むL2Pマッピングテーブル)と第2のL2Pマッピングテーブル(例えば、物理ブロックアドレスを含むL2Pマッピングテーブル)とは、同じサイズであり得る(例えば、それらのテーブルは同じ数の行と同じ数の列とを含み得る)。
一部の実施形態では、第1のL2Pマッピングテーブルは、複数のハッシュ関数(例えば、2つのハッシュ関数)を用いてアクセスされ得る。次に、ハッシュ関数を用いる第1のL2Pマッピングテーブルにあるインデックスを使用して、第2のL2Pマッピングテーブル内の対応する物理ブロックアドレスの物理的な場所を特定し得る。一部の実施形態では、第2のL2Pマッピングテーブル内の対応する物理ブロックアドレスの物理的な場所を特定した後で、物理ブロックアドレスを、第2のL2Pマッピングテーブル内のその物理的場所に書き込むか、またはそこから読み出し得る。
本開示の以下の詳細な説明では、本明細書の一部を形成するとともに、本開示の1つ以上の実施形態をどのように実施し得るかを例示として示す添付の図面を参照する。それらの実施形態は、当業者が本開示の実施形態を実施することを可能にするよう十分に詳細に説明され、本開示の範囲から逸脱することなく、他の実施形態が利用されてもよいこと、並びに処理変更、電気的変更、及び/または構造的変更が行われてもよいことが理解されよう。本明細書で使用されるように、特に、図面における参照符号に関する「N」などの指定子は、そのように指定されたいくつかの特定の特徴が含まれてもよいことを示す。本明細書で使用されるように、「いくつかの(a number of)」特定の事項は、そのような事項のうちの1つ以上を指す(例えば、いくつかのメモリアレイは、1つ以上のメモリアレイを指すことができる)。「複数の(plurality of)」は、1つよりも多いそのような事項を指すことを意図している。
本明細書における図は、最初の1桁または複数桁が図面の図番に対応し、残りの桁が図面における要素または構成要素を識別する番号付け慣習に従う。異なる図の間の類似した要素または構成要素は、同じような数字を用いて識別され得る。例えば、図1では要素「10」を110が参照し得、図2では類似の要素が要素「210」として参照され得る。明らかなように、本明細書の様々な実施形態に示す要素は、本開示のいくつかの追加の実施形態を提供するように、追加され、交換され、及び/または削除されてもよい。更に、明らかなように、図に提供される要素の比率及び相対的な大きさは、本発明の特定の実施形態を示すことを意図しており、限定的な意味で取られるべきではない。
図1は、本開示のいくつかの実施形態によるメモリシステム104を備えたコンピューティングシステム100の形態の装置の機能ブロック図である。本明細書で使用するとき、「装置」とは、例えば、回路もしくは回路構成、1つもしくは複数のダイ、1つもしくは複数のモジュール、1つもしくは複数のデバイス、または1つもしくは複数のシステムなど、様々な構造のいずれかまたは構造の組み合わせを指し得るが、これらに限定されない。
メモリシステム104は、例えば、ソリッドステートドライブ(SSD)であってもよい。図1に示される実施形態では、メモリシステム104は、ホストインタフェース106と、メモリ(例えば、いくつかのメモリデバイス110-1、110-2、・・・、110-N)(例えば、ソリッドステートメモリデバイス)と、物理的なホストインタフェース106及びメモリデバイス110-1、110-2、・・・、110-Nに結合されたコントローラ108(例えば、SSDコントローラ)とを含む。
メモリデバイス110-1、110-2、・・・、110-Nは、例えば、いくつかの不揮発性メモリアレイ(例えば、不揮発性メモリセルのアレイ)を含み得る。例えば、メモリデバイス110-1、110-2、・・・、110-Nは、図2に関連して本明細書で更に詳細に説明するように、新興メモリアレイ及び/またはフラッシュメモリアレイなどのいくつかの不揮発性メモリアレイを含み得る。
一部の実施形態では、メモリデバイス110-1、・・・、110-Nは、メモリセル(例えば、不揮発性メモリセル)のいくつかのアレイを含み得る。アレイは、例えば、NANDアーキテクチャを備えたフラッシュアレイであってもよい。しかし、実施形態は、特定のタイプのメモリアレイまたはアレイアーキテクチャに限定されるものではない。メモリセルは、例えば、メモリセルのいくつかの物理ページを含むいくつかのブロックにグループ分けされ得る。いくつかの実施形態では、ブロックは、ユニットとして共に消去されるメモリセルのグループを指す。メモリセルの平面にいくつかのブロックを含めることができ、アレイはいくつかの平面を含み得る。一例として、メモリデバイスは、ページ当たり8KB(キロバイト)のユーザデータ、ブロック当たり128ページのユーザデータ、平面当たり2048ブロック、及びデバイス当たり16平面を格納するように構成され得る。
動作中、データは、例えば、データのページとして、メモリシステムのメモリデバイス(例えば、メモリシステム104のメモリデバイス110-1、・・・、110-N)に書き込まれ、及び/またはそこから読み出され得る。そのため、データのページは、メモリシステムのデータ転送サイズと称され得る。データは、セクタ(例えば、ホストセクタ)と呼ばれるデータセグメント単位でホスト102との間を転送され得る。そのため、データのセクタは、ホストのデータ転送サイズと称され得る。一部の実施形態では、NANDブロックは消去ブロックと称され得、ブロックは消去の単位であり、ページは読み出し及び/または書き込みの尺度である。
ホストインタフェース106は、メモリシステム104とホスト102などの別のデバイスとの間で情報を通信するために使用され得る。ホスト102は、メモリアクセスデバイス(例えば、プロセッサ)を含み得る。本明細書で使用するとき、「プロセッサ」は、並列処理システム、いくつかのコプロセッサなど、いくつかのプロセッサを意図し得る。例示的なホストには、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録再生デバイス、携帯電話(例えば、スマートフォン)、PDA、メモリカードリーダ、インタフェースハブ、IoT対応デバイスなどが含まれ得る。ホスト102は、システムマザーボード及び/またはバックプレーンを含み得、いくつかの処理リソース(例えば、1つ以上のプロセッサ、マイクロプロセッサなど)を含み得る。システム100は、別個の集積回路を含むものであってもよく、またはホスト102及びメモリシステム104の双方が同じ集積回路上にあってもよい。システム100は、例えば、サーバシステム及び/もしくは高性能コンピューティング(HPC)システム、並びに/またはそれらの部分であってもよい。
明確にするために、システム100は、本開示への特定の関連性を有する特徴に焦点を当てて簡略化されている。メモリシステム104は、DRAMアレイ(例えば、2T2C DRAMアレイ、3T DRAMアレイなど)、FeRAM、SRAMアレイ、STT RAMアレイ、PCRAMアレイ、TRAMアレイ、RRAMアレイ、NANDフラッシュアレイ、3D Xpointメモリ、NORフラッシュアレイ、及び/または例えば、コントローラ、3D Xpointメモリ部分及びNANDフラッシュ部分を含むストレージサブシステムなどの1つ以上のメモリリソースを含み得る。
ホストインタフェース106は、標準化された物理インタフェースの形態をとり得る。例えば、メモリシステム104がコンピューティングシステム100の情報ストレージに使用される場合、ホストインタフェース106は、いくつかある物理コネクタ及び/またはインタフェースのなかでも特に、シリアルアドバンスドテクノロジアタッチメント(SATA)物理インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)物理インタフェース、またはユニバーサルシリアルバス(USB)物理インタフェースであり得る。また一方、一般に、ホストインタフェース106は、メモリシステム104と、ホストインタフェース106に適合した受容器を有するホスト(例えば、ホスト102)との間で、制御、アドレス、情報(例えば、データ)、及びその他の信号を受け渡しするためのインタフェースを提供し得る。
コントローラ108は、例えば、制御回路及び/または制御論理(例えば、ハードウェア及びファームウェア)を含み得る。コントローラ108は、メモリ110-1、110-2、・・・、110-Nと同じ物理デバイス(例えば、同じダイ)に含まれ得る。例えば、コントローラ108は、物理ホストインタフェース106及びメモリ110-1、110-2、・・・、110-Nを含む印刷回路基板に結合された特定用途向け集積回路(ASIC)であり得る。あるいは、コントローラ108は、メモリ110-1、110-2、・・・、110-Nを含む物理的デバイスに通信可能に結合された別個の物理的デバイスに含まれ得る。いくつかの実施形態では、コントローラ108の構成要素は、分散型コントローラとして、複数の物理的デバイス(例えば、メモリと同じダイ上の一部の構成要素、及び異なるダイ、モジュール、またはボード上の一部の構成要素)に散在させてもよい。
コントローラ108は、いくつかある動作のなかでも特に、情報の感知(例えば、読み出し)、プログラム(例えば、書き込み)、及び/または消去のために、メモリデバイス110-1、110-2、・・・、110-Nと通信することができる。コントローラ108は、いくつかの集積回路及び/または別個の構成要素であってもよい回路構成を有し得る。いくつかの実施形態では、コントローラ108内の回路構成は、メモリデバイス110-1、110-2、・・・、110-Nにわたるアクセスを制御するための制御回路構成、及び/またはホスト102とメモリシステム104との間に変換レイヤ(例えば、フラッシュ変換レイヤ)を提供するための回路構成を含み得る。
コントローラ108は、L2Pデータ構造として、それぞれの個別のメモリデバイス110-1、110-2、・・・、110-Nの、ブロックアドレス指定部分などの専用領域の動作を制御することができる(例えば、本明細書の図2に関連して更に詳細に説明するように、1つ以上のL2Pデータ構造を格納するように、それぞれの個別のメモリデバイス110-1、・・・、110-Nの一部分を構成することができる)。例えば、それぞれの個別のメモリデバイス110-1、110-2、・・・、110-Nの第1の部分が、第1のL2Pデータ構造を格納するように構成され得、それぞれの個別のメモリデバイス110-1、110-2、・・・、110-Nの第2の部分が、第2のL2Pデータ構造を格納するように構成され得る。
それぞれの個別のメモリデバイス110-1、110-2、・・・、110-Nの第1の部分は、例えば、本明細書で(例えば、図1に関連して)更に説明するように、それぞれの個別のメモリ内のメモリセルの第1の複数ブロック(例えば、物理ブロック)としてもよく、本明細書では、メモリの第1の部分と呼ばれ得る。更に、それぞれの個別のメモリデバイス110-1、110-2、・・・、110-Nの部分が、第2の複数ブロック、第3の複数ブロックなどを含む場合がある。
それぞれの個別のメモリ110-1、110-2、・・・、110-Nの第2の部分は、例えば、本明細書で(例えば、図2に関連して)更に説明するように、それぞれの個別のメモリ内のメモリセルの第2の複数ブロック(例えば、物理ブロック)としてもよい。コントローラ108は、1つ以上のL2Pデータ構造(例えば、図2に示すL2Pデータ構造216-1、・・・、216-N)が、それぞれのメモリデバイス110-1、・・・、110-Nに格納されるようにしてもよい。
図1に示された実施形態は、本開示の実施形態を不明瞭にしないために図示されない追加の回路構成、論理、及び/または構成要素を含み得る。例えば、メモリデバイス104は、I/O回路構成を介してI/Oコネクタ上に供給されるアドレス信号をラッチするためのアドレス回路構成を含み得る。アドレス信号は、メモリ110-1、110-2、・・・、110-Nにアクセスするために、行デコーダ及び列デコーダによって受け取られて、デコードされ得る。
図2は、本開示のいくつかの実施形態によるメモリシステムの形態の装置のブロック図である。図2に示されるように、コントローラ208は、メモリデバイス210に結合され得る。コントローラ208は、図1に示されたコントローラ108に相当し得、メモリデバイス210は、図1に示されたメモリデバイス110-1、・・・、110-Nのうちの少なくとも1つに相当し得る。メモリデバイス210は、NVMデバイス212及びフラッシュメモリデバイス214を含み得る。コントローラ208、メモリデバイス210、NVMデバイス212、及び/またはフラッシュメモリデバイス214は、別個に「装置」と見なされ得る。
NVMデバイス212は、複数のL2Pデータ構造216-1、・・・、216-Nを含み得る。図2には複数のL2Pデータ構造216-1、・・・、216-Nとして示されているが、少なくとも1つの実施形態では、NVMデバイス212は、2つの別個のL2Pデータ構造216-1、・・・、216-Nを含み得る。しかし、実施形態は、2つの別個のL2Pデータ構造216-1、・・・、216-Nに限定されない。例えば、少なくとも1つの実施形態では、NVMデバイス212は、第1のL2Pデータ構造(例えば、L2Pデータ構造216-1)と、第2のL2Pデータ構造(例えば、L2Pデータ構造216-N)とを含み得る。ただし、実施形態はそのようには限定されず、NVMデバイス212は、2つより多い別個のL2Pデータ構造216-1、・・・、216-N(例えば、3つ以上の別個のL2Pデータ構造)を含んでもよい。
L2Pデータ構造216-1、・・・、216-Nは、L2Pアドレス指定スキームに対応するデータを格納するように構成可能であってもよい。例えば、L2Pデータ構造216-1、・・・、216-Nは、L2Pアドレス指定テーブルを格納するように構成可能であってもよい。一部の実施形態では、L2Pデータ構造216-1は、a×bテーブル(例えば、a×bのテンソルまたは多次元配列)であり得、L2Pデータ構造216-Nは、a×bテーブルであり得る。ここで、a及びbはゼロ以外の整数である。別の言い方をするならば、一部の実施形態では、L2Pデータ構造216-1とL2Pデータ構造216-Nとは、同じ数量の列と同じ数量の行とを含み得る(例えば、L2Pデータ構造216-1とL2Pデータ構造216-Nとは同じサイズであり得る)。一部の実施形態では、コントローラ208は、L2Pデータ構造216-1、・・・、216-Nへの格納を制御するように構成され得る。
L2Pデータ構造216-1は、本明細書において、図3Bに関連して更に詳細に図示及び説明が行われるデータ構造Λに相当し得、L2Pデータ構造216-Nは、本明細書の図3Cに関連して更に詳細に図示及び説明が行われるデータ構造Πに相当し得る。例えば、L2Pデータ構造216-1は、論理ブロックアドレス(LBA)を含み得、一方、L2Pデータ構造216-Nは、物理ブロックアドレス(PBA)を含み得る。図2に示されている2つのL2Pデータ構造216-1及び216-Nは、次のようにして関連付けられ得る。すなわち、LBAがL2Pデータ構造216-1のi番目の位置(例えば、場所)に格納されている場合、対応するPBAが、L2Pデータ構造216-Nのi番目の位置に格納され得る。一部の実施形態では、複数のハッシュ関数を実行することにより、L2Pテーブル216-1に格納されたLBAの検索、書き込み、及び/または読み出しが可能であり得る。非限定的な実施例では、本明細書でh及びsと呼ばれる2つのハッシュ関数を実行することにより、L2Pテーブル216-1に格納されたLBAの検索、書き込み、及び/または読み出しが可能であり得る。
ハッシュ関数h及びsは、LBAの関数であり得る。簡単にするために、本明細書では、LBAをlと称することがある。別の言い方をすれば、第1のハッシュ関数hはh(l)と称され得、第2のハッシュ関数はs(l)と称され得る。一部の実施形態では、式1~7並びに表1及び表2に関連して本明細書で更に詳細に説明するように、第1のハッシュ関数h(l)はLBA、lのハッシュアドレスに対応してもよく、第2のハッシュ関数s(l)はLBA、lのハッシュインクリメントに対応してもよい。
一部の実施形態では、ハッシュ関数h及びsは、それらが効率的に計算可能であるように選択され得る。本明細書で使用するとき、用語「効率的に計算可能」とは、ハードウェアに容易に実装できる関数のことを意味する。更に、ハッシュ関数h及びsは、衝突確率が低くなるように選択され得る。ここでの「低衝突確率」という用語は、異なる入力値を受け取ると、異なるハッシュ値を出力する可能性が高い関数のことを意味する。例えば、h及びsの「衝突確率が低い」場合、表1に関連して本明細書で更に詳細に説明するように、ハッシュ関数への入力として異なるLBA(例えば、lの値が異なる)が使用されるとき、各ハッシュ関数h(l)及びs(l)は実行時に異なるハッシュ値を出力する。
L2Pデータがマルチレベルツリー構造内に格納される一部のアプローチとは対照的に、2つのL2Pアドレステーブル(例えば、L2Pデータ構造216-1及びL2Pデータ構造216-N)を使用することにより、メモリデバイス210の記憶密度が増加するにもかかわらず、データ構造の数(例えば、以前のあるアプローチで使用されたツリーのレベル)を最小限に抑え得る。例えば、2つの別個のL2Pアドレステーブル(例えば、第1のL2Pデータ構造216-1及び第2のL2Pデータ構造216-N)が利用される本明細書に記載の実施形態では、メモリデバイス210の記憶密度が増加するにつれて、一部のアプローチで使用されるデータ構造(例えば、ツリー)の数を減らすことができる。ただし、上記のように、実施形態は、2つの別個のL2Pアドレステーブルに限定されず、本開示は、2つを超える別個のL2Pアドレステーブルが、論理ブロックアドレス及び物理ブロックアドレスの格納及び検索に関連して使用され得る実施例を対象として含むことが意図されている。
2つの別個のL2Pアドレステーブル(例えば、L2Pデータ構造216-1及びL2Pデータ構造216-N)を使用することにより、2回の処理のみを使用してLBAの書き込み及び/または読み出しが可能であり得る。例えば、一部の実施形態では、ハッシュ関数h(l)及びs(l)を利用することにより、2回の書き込み処理のみを使用してLBAを書き込むことが可能であり得る。一実施例として、フラッシュメモリデバイス214が閾値量未満のエントリを収容している場合(例えば、フラッシュメモリデバイス214が部分的に満たされている場合)、本明細書の実施形態は、2回の書き込み処理のみを使用して、LBAがL2Pデータ構造216-1に書き込まれることを可能にする。フラッシュメモリデバイス214が閾値量を超えるエントリを収容している実施形態では、本明細書の実施形態は、3回の書き込み処理のみを使用して、LBAがL2Pデータ構造216-1に書き込まれることを可能にし得る。しかし、実施形態はそのように限定されず、一部の実施形態では、LBAは、フラッシュメモリデバイス214に収容されているエントリの量に基づき、3回を超える書き込み処理を使用して、L2Pデータ構造216-1に書き込まれ得る。
いくつかの実施形態では、L2Pデータ構造216-1は、図3A~図3Cに関連して本明細書で更に詳細に説明するように、半順序であるように構成され得る。本明細書で使用するとき、「半順序」は、L2Pデータ構造216-1が、L2Pデータ構造216-1内の特定の要素間の二項関係を反映した状態を指す。例えば、L2Pデータ構造216-1内のある特定の要素は、216-1の順序付けの観点から、L2Pデータ構造内の別の要素に優先する要素を含み得る。ただし、L2Pデータ構造216-1内の全ての要素が、順序付けの点で、ある要素が別の要素に優先するという特性を示す必要はなく、L2Pデータ構造216-1は、順序付けの点で、ペア内のいずれの要素もペア内の他の要素に優先しない要素のペアを含み得る。一部の実施形態では、コントローラ208は、L2Pデータ構造216-1が半順序であるようにL2Pデータ構造216-1を維持するように構成され得る。L2Pデータ構造216-1が半順序であるという条件は、本明細書において、図3A~図3Cに関連して更に詳細に論じられる。
フラッシュメモリデバイス214は、フラッシュデータ構造218を含み得る。フラッシュデータ構造218は、図3Aに関連して本明細書で更に詳細に説明するように、L2Pデータ構造216-1、・・・、216-N内に格納されたPBA及び/またはLBAの場所に対応するデータを格納するように構成可能であり得る。一部の実施形態では、コントローラ208は、フラッシュデータ構造218内のPBA及び/またはLBAの場所に対応するデータの格納を制御するように構成され得る。
上記のように、フラッシュメモリデバイス214は、電子的な(例えば、ソリッドステートの)不揮発性メモリストレージの1つ以上の部分を含み得る。例えば、フラッシュメモリデバイス214は、NAND型フラッシュメモリ、NOR型フラッシュメモリ、NVRAM型フラッシュメモリなどの1つ以上の部分を含み得る。フラッシュメモリデバイス214は、ブロック(またはページ)単位で書き込まれる(または読み出される)ように構成され得、このブロック(またはページ)は、フラッシュメモリデバイス214全体が利用可能な格納スペースよりも小さい容量であり得る。しかしながら、一部の実施形態では、フラッシュメモリデバイス214は、バイトごとに書き込まれ、または読み出され得る(例えば、フラッシュメモリデバイス214の場所が、別々に書き込まれ、または読み出され得る)。
一部の実施形態では、式1に示すように、ハッシュ関数h(l)及びs(l)は、LBAの量n(ただし、0≦n≦n-1)に対して、及びPBAの量m(ただし、m>n)に対して、以下のように定義され得る。
Figure 0007079349000001
式1では、ハッシュ関数s(l)は、s(l)がmに対して互いに素になるように選択され得る。本明細書で使用するとき、用語「互いに素(relatively prime)」(または「互いに素(coprime)」)は、両方の整数を割り切る1よりも大きな整数が存在しないような2つの整数を表す。例えば、整数12と13とは、12及び13の両方を割り切る1よりも大きな整数が存在しないので、互いに素である。対照的に、整数12と14とは、12及び14の両方を割り切る1よりも大きな整数(例えば、2)が存在するので、互いに素ではない。
一部の実施形態では、mに対して互いに素であるようなs(l)を選択することにより、LBA構造Λ(例えば、本明細書において図3Bに示されるLBAデータテーブルΛ316-1)内の別個の位置を一つ一つ残らず調べることが可能であり得る。
式2に示すように、L2Pデータ構造216-1(例えば、図3Bに示されているLBAデータテーブルΛ316-1)及びL2Pデータ構造216-N(例えば、図3Bに示されているPBAデータテーブルΠ316-1)は、m個の要素を含み得る。例えば、L2Pデータ構造216-1及びL2Pデータ構造216-Nは、各PBAに対して1つの要素mが存在するように構成され得る。
Figure 0007079349000002
一部の実施形態では、L2Pデータ構造216-1及びL2Pデータ構造216-Nは空であり得る。例えば、ある期間において、式3によって示すように、L2Pデータ構造216-1及びL2Pデータ構造216-Nは、データを含まない場合がある(例えば、L2Pデータ構造216-1がLBAを含まない場合があり、L2Pデータ構造216-NがPBAを含まない場合がある)。
Figure 0007079349000003
ホスト(例えば、本明細書で図1に示されるホスト102)は、LBA(l)をL2Pデータ構造216-1内の場所に書き込み得る。一部の実施形態では、PBA(p)が書き込まれ得るL2Pデータ構造216-N内に対応する空の場所が存在し得る。LBAを書き込むためのL2Pデータ構造216-1内の場所は、式4を使用して判定され得る。
Figure 0007079349000004
一部の実施形態では、式3に示すように、Λi=-1である場合、L2Pデータ構造216-1内のi番目の場所は空であり、L2Pデータ構造216-1及びL2Pデータ構造216-Nの値は、式5に示すように設定され得る。
Figure 0007079349000005
対照的に、式6に示すように、L2Pのi番目の場所が占有されている場合には、衝突が発生する可能性がある。本明細書で使用するとき、「衝突」とは、ハッシュ関数h(l)によって判定されるL2Pデータ構造216-1内の場所が、lとは異なるLBAを既に含んでいる状況をいう。衝突が検出された場合は、L2Pデータ構造216-1内の既存のLBAに、新たなLBAを上書きすることはできない。その代わりに、衝突が検出された場合は、第2のハッシュ関数s(l)を使用して、LBAを書き込むために、L2Pデータ構造216-1内の別の場所が判定され得る。
Figure 0007079349000006
L2Pデータ構造216-1へのLBAの書き込み、及びL2Pデータ構造216-NへのPBAの書き込みは、図3A~図3Cに関連して以下に詳述する。
図3Aは、本開示のいくつかの実施形態によるフラッシュデータ構造218のブロック図である。フラッシュメモリデバイスは、図2に示されるフラッシュメモリデバイス214に相当し得る。図3Aに示すように、フラッシュデータ構造318は、複数の場所(例えば、図2に示されるフラッシュメモリデバイス214などのフラッシュメモリデバイスの記憶場所)を含み得る。更に、図3Aに示すように、フラッシュデータ構造318は、複数のステップ(例えば、ステップ0、・・・、ステップ4)を示しており、以下では、これらのステップを実施例として説明する。例えば、図3Aは、複数のステップにおけるフラッシュメモリデバイスの状態を示す。
図3Aでは、一部の場所が、空き、有効、または無効であり得る。これらのステータスは、時間が経過して、データがフラッシュメモリデバイスに書き込まれると(例えば、データがフラッシュメモリデータ構造318に書き込まれると)変化し得る。図3Aに示すように、空いている場所(例えば、対応するデータが格納されていない場所)は白い箱として示される。有効なデータ(例えば、所与のLBAに関連付けられたコンテンツの最新バージョン)を含む場所は単一のハッチング線のパターンで示され、無効な場所(例えば、ホストにとってはもはや有効ではないデータを含む場所)はクロスハッチングで示される。例えば、ステップ0では、インデックス0に対応する場所は、LBA 2に関連付けられたデータの最新バージョンを含むため、有効である。これに対し、ステップ3では、ホストによってLBA 2が更新され、このとき最新のコンテンツが場所3にあるため、インデックス0に対応する場所は無効である。
図3Bは、本開示のいくつかの実施形態による例示的なL2Pデータ構造のブロック図である。図3Bに示されているL2Pデータ構造316-1は、図2に示されているL2Pデータ構造216-1に相当し得る。図3Bに示すように、L2Pデータ構造316-1は、複数の場所(例えば、図2に示されるL2Pデータ構造216-1などのLBAテーブル内の場所)を含み得る。更に、図3Bに示すように、L2Pデータ構造316-1は、複数のステップ(例えば、ステップ0、・・・、ステップ4)を示しており、以下では、これらのステップを実施例として説明する。例えば、図3Bは、複数のステップにわたるL2Pデータ構造316-1の漸進的な変化を示す。
図3Cは、本開示のいくつかの実施形態による例示的なL2Pデータ構造の別のブロック図である。図3Cに示されているL2Pデータ構造316-Nは、図2に示されているL2Pデータ構造216-Nに相当し得る。図3Cに示すように、L2Pデータ構造316-Nは、複数の場所(例えば、図2に示されるL2Pデータ構造216-NなどのLBAテーブル内の場所)を含み得る。更に、図3Cに示すように、L2Pデータ構造316-Nは、複数のステップ(例えば、ステップ0、・・・、ステップ4)を示しており、以下では、これらのステップを実施例として説明する。例えば、図3Cは、複数のステップにわたるL2Pデータ構造316-Nの漸進的な変化を示す。
以下の非限定的な実施例では、本発明者らは、8つのPBA(例えば、m=8)と6つのLBA(例えば、n=6)とが存在することを想定している。本実施例に係る2つのハッシュ関数h(l)及びs(l)の例を式7に示す。
Figure 0007079349000007
式7に示すモジュロ演算は8の除数を示すが、実施形態はそのように限定されず、式7に示すh(l)及びs(l)は8とは異なる除数を有し得る。例えば、式7の8の代わりにxの除数(ただし、xは整数)を使用してもよい。m=8及びn=6の例について、2つのハッシュ関数h(l)及びs(l)によって生成された値を表1に示す。
Figure 0007079349000008
本実施例を続けると、ホスト(例えば、本明細書で図1に示されるホスト102)は、一連のLBAをメモリデバイス(例えば、本明細書で図2に示されるメモリデバイス210)に書き込み得る。一部の実施形態では、一連のLBAは、一連のステップ(例えば、図3A~図3Cに示すステップ0、・・・、ステップ4)で書き込まれ得る。例示的な一連のLBAは、表2に示す以下の一連のLBAであり得る。
Figure 0007079349000009
図3A~図3Cに示すステップ0において、ホストは、対応する(表2に示す)2の値でLBAを書き込みしようと試み得る。これは、ホストがメモリデバイスにLBAを書き込もうとする最初の試みであるため、L2Pデータ構造318-N内には、0における空きPBAブロックに対応する空きブロックが存在する。式4を使用すると、i=h(2)=4である。Λは空である(例えば、Λに対応する場所に予め格納されたLBAが存在しない)ので、コントローラによって、図3B及び図3Cに示すように、Λ=2及びΠ=0が設定され得る。更に、フラッシュデータ構造318は、ステップ0ではエントリを含まないので、図3Aに示すように、ステップ0でのインデックス0に対応するフラッシュデータ構造318内の位置に、LBA値2が書き込まれる。
図3A~図3Cに示すステップ1において、ホストは、対応する(表2に示す)4の値でLBAを書き込みしようと試み得る。図3Cに示すように、L2Pデータ構造318-Nには、1における空きPBAブロックに対応する空きブロックが存在する。式4を使用すると、i=h(4)=0である。Λは空である(例えば、Λに対応する場所に予め格納されたLBAが存在しない)ので、コントローラによって、図3B及び図3Cに示すように、Λ=4及びΠ=1が設定され得る。更に、フラッシュデータ構造318は、ステップ1ではエントリを含まないので、図3Aに示すように、ステップ1でのインデックス1に対応するフラッシュデータ構造318内の位置に、LBA値4が書き込まれる。
図3A~図3Cに示すステップ2において、ホストは、対応する(表2に示す)5の値でLBAを書き込みしようと試み得る。図3Cに示すように、L2Pデータ構造318-Nには、2における空きPBAブロックに対応する空きブロックが存在する。式4を使用すると、i=h(5)=6である。Λは空である(例えば、Λに対応する場所に予め格納されたLBAが存在しない)ので、コントローラによって、図3B及び図3Cに示すように、Λ=6及びΠ=2が設定され得る。更に、フラッシュデータ構造318は、ステップ2ではエントリを含まないので、図3Aに示すように、ステップ2でのインデックス2に対応するフラッシュデータ構造318内の位置に、LBA値5が書き込まれる。
図3A~図3Cに示すステップ3において、ホストは、LBAのコンテンツを、対応する(表2に示す)2の値で更新しようと試み得る。図3Cに示すように、L2Pデータ構造318-Nには、3における空きPBAブロックに対応する空きブロックが存在する。式4を使用すると、i=h(2)=4である。Λ=2であるため、Λ=2に対応する場所に正しいLBA値(例えば、値2)が格納される。この場合は、図3Cのインデックス4の空きブロックに対応するようにPBAを更新することが可能であり得る。例えば、いくつかの実施形態では、コントローラによって、図3B及び図3Cに示すように、Λ=2及びΠ=3が設定され得る。本実施例では、このとき、PBAブロック3に対応するPBAのコンテンツが有効になる。更に、フラッシュデータ構造318は、ステップ3ではエントリを含まないので、図3Aに示すように、ステップ3でのインデックス3に対応するフラッシュデータ構造318内の位置に、LBA値2が書き込まれる。
図3A~図3Cに示すステップ4において、ホストは、LBAのコンテンツを、対応する(表2に示す)0の値で書き込みしようと試み得る。図3Cに示すように、L2Pデータ構造318-Nには、4における空きPBAブロックに対応する空きブロックが存在する。式4を使用すると、i=h(0)=0である。Λ=4なので、衝突が発生する可能性がある。一部の実施形態では、衝突が発生すると、コントローラは、競合するLBAを特定の順序で維持するように構成され得る(例えば、コントローラは、半順序であるようにL2Pデータ構造318-1を維持するように構成され得る)。例えば、衝突が発生すると、コントローラは、L2Pデータ構造318-1内の競合するLBAを昇順に維持するように構成され得る。
本実施例に従うと、Λ=4に格納されるLBAは、(ステップ4の表2から)新たなLBA 0よりも大きな値である。その結果、コントローラによって、Λが0に設定され、PBAが1に設定され得る。その結果、コントローラによって、Λ=0及びΠ=0が設定され、LBA 4及びPBA 1の新たな場所が決められ得る。一部の実施形態では、新たな場所は、第2のハッシュ関数s(l)を使用して判定され得る。式7のs(l)を用いると、s(4)=3となるので、i+s(4)=0+3=0となる。その結果、図3B及び図3Cに示すように、コントローラは、Λ=4及びΠ=1をもたらすように構成され得る。
図3A~図3Cに関連して上記で説明した例を、以下では、次の擬似コードの実施例を用いて、更に一般的に概括する。次の擬似コードの実施例では、最初に、L2Pデータ構造318-1及び318-Nは空であり、式3に示すように、全てのi∈{0,...,m-1}について、Λi=Πi=-1を設定することによって初期化される。第1の例示的な擬似コードは、本開示のいくつかの実施形態によるLBA lの書き込み及び/または更新の実施例を示す。
1: procedure 挿入(LBA l,空きPBA p)
2: 設定 i←h(l)
3: 設定 完了した←偽
4: while 完了していない do
5: if Λ=-1 then
6: 設定 Λ←l
7: 設定 Π←p
8: 設定 完了した←真
9: else if Λ=l then
10: 設定 Π←p
11: 設定 完了した←真
12: else if Λ>l then
13: 設定 l’←Λ
14: 設定 p’←Π
15: 設定 Λ←l
16: 設定 Π←p
17: 設定 l←l’
18: 設定 p←p’
19: end if
20: 設定 i←I+s(l)(mod m)
21: end while
22: end procedure
第1の例示的な擬似コードの第1の処理では、対応するPBA pを有するLBA lを書き込む(例えば、挿入する)プロシージャが初期化され得る。一部の実施形態では、第2の処理は、式4に関連して説明したように、第1のハッシュ関数h(l)をiに設定することを含み得る。第3の処理は、設定が完了していないことを示す表示を偽に設定し、それによってプロシージャが第4の処理で継続されるべきであることを示すことを含み得る。
第4の処理は、第5の処理から第21の処理にかけて説明するように、設定が完了していないときにwhileループを実行することを含み得る。一部の実施形態では、第5の処理は、式3に示すように、Λが-1に等しいことを判定することを含み得る。Λが-1に等しい場合、このプロシージャは、式5に示すように、Λがlに設定される第6の処理を続け得る。第7の処理では、式5に示すように、Πがpに設定され得る。Λがlに設定され、Πがpに設定され得る場合、第8の処理に示すように、第5の処理で開始されたifループが完了する。
第9の処理では、式5に示すように、Λがlに等しいとの判定に応答して、else if thenループが開始され得る。Λがlに等しい場合、式5に示すように、第10の処理においてΠがpに設定され得る。一部の実施形態では、Λがlに等しく、Πがpに設定されていることが判定されると、第11の処理で設定を完了し得る。一部の実施形態では、第9の処理から第11の処理にかけては、図3A~図3Cのステップ3に関連して上記で説明したように、L2Pデータ構造318-1及び318-Nへの更新に対応し得る。
第12の処理では、Λ>lとの判定に応答して、第2のelse if thenループが開始され得る。式6に示すように、Λ>lとの判定に応答して、第13の処理では、コントローラによって、Λがl’に設定され得る。一部の実施形態では、l’は、L2Pデータ構造318-1内の第2の場所に対応し得る。第14の処理において、Πがp’に設定され得る。p’は、L2Pデータ構造318-N内の第2の場所に対応し得る。
LBA lは、L2Pデータ構造318-1の第1の場所に予め格納されているLBAよりも大きな値を有するので、第15の処理では、Λがlに設定され得る。同様に、第16の処理では、Πがpに設定され得る。第17の処理では、l’がlに設定され得、第18の処理では、p’がpに設定され得る。最後に、第19の処理において、ifループを終了させ得る。一部の実施形態では、第11の処理から第19の処理にかけては、図3A~図3Cのステップ4に関連して上記で説明したように、L2Pデータ構造318-1及び318-Nで発生する衝突の検出に対応し得る。
第19の処理の完了に応答して、上記の図3A~図3Cに関連して説明したように、第2のハッシュ関数を使用することにより、iがi+s(l)(mod m)に設定されて、第1のハッシュ関数をインクリメントし得る。続いて、whileループが第20の処理で終了され得、プロシージャを第21の処理で終了させ得る。
第2の例示的な擬似コードは、本開示のいくつかの実施形態による、LBA lに対応するPBA pを読み出す実施例を示す。第2の例示的な擬似コードでは、L2Pデータ構造318-1にLBAが書き込まれた(例えば、格納された)場合に、-1のPBA値が返される。
1: procedure 検索(LBA l)
2: 設定 i←h(l)
3: 設定 完了した←偽
4: while 完了していない do
5: if Λ=l then
6: 設定 p←Π
7: 設定 完了した←真
8: else if Λ=-1またはΛ>l then
9: 設定 p←Π
10: 設定 完了した←真
11: end if
12: 設定 i←i+s(l)(mod m)
13: end while
14: return p
15: end procedure
第2の例示的な擬似コードの第1の処理では、対応するLBA lに関連付けられたPBA pを読み出す(例えば、検索する)プロシージャが初期化され得る。一部の実施形態では、第2の処理は、式4に示すように、h(l)をiに設定することを含み得る。第3の処理で設定が完了しない場合、第4の処理でwhileループが実行され得る。
このwhileループは、第5の処理にif thenループを含み得る。例えば、第5の処理においてΛ=lであれば、第6の処理ではΠがpに設定され得る。これは、L2Pデータ構造318-N内の対応するエントリを含むL2Pデータ構造318-1内の場所に対応する。第7の処理で設定が完了され得、第5の処理で実行したif thenループを終了させ得る。
第5の処理で実行されたif thenループが完了しない場合、第8の処理では、Λが-1であるか、またはΛ>lであるとの判定に応答して、else if thenループが実行され得る。この場合、第9の処理でpが-1に設定され得、第8の処理で実行されたelse if thenループを第10の処理で終了させ得る。
第11の処理において、第5の処理で実行されたifループを終了させ得、第12の処理において、上記の図3A~図3Cに関連して説明したように、第2のハッシュ関数を使用することにより、iがi+s(l)(mod m)に設定されて、第1のハッシュ関数をインクリメントし得る。第13の処理では、第4の処理で実行されたwhileループを終了させ得、第14の処理でPBA pが返され得る。最後に、第15の処理で、プロシージャを終了させ得る。
図4は、本開示のいくつかの実施形態による論理対物理データ構造のための例示的な流れ図を示す。ブロック422において、方法420は、第1の論理ブロックアドレス(LBA)を書き込むために、不揮発性メモリデバイスに格納された第1の論理対物理(L2P)データ構造(例えば、本明細書で図2に示されるL2Pデータ構造216-1)内の第1の場所を判定することを含み得る。一部の実施形態では、方法420は、図3A~図3Cに関連して本明細書で説明したように、第1のハッシュ関数h(l)を実行することによって、第1のLBAを書き込むために、第1のL2Pデータ構造内の第1の場所を判定することを含み得る。
ブロック424において、方法420は、第1の場所が第2のLBAを含むことを判定することを含み得る。一部の実施形態では、第1の場所が第2のLBAを含むことを判定することは、第1の場所で衝突が発生していることを判定することを含み得る。第2のLBAは、予め第1の場所に格納されている可能性がある(例えば、第2のLBAは、第1の場所に第1のLBAを格納しようと試みるより前に、第1の場所に格納されている可能性がある)。一部の実施形態では、方法420は、図3A~図3Cに関連して本明細書で説明したように、第2のハッシュ関数s(l)を実行することによって、第1のLBAを書き込むために、第1のL2Pデータ構造内の第1の場所を判定することを含み得る。
ブロック426において、方法420は、第1の場所が第2のLBAを含むとの判定に応答して、第1のL2Pデータ構造内の第2の場所に第1のLBAを書き込むことを含み得る。例えば、方法420は、衝突が発生しているとの判定に応答して、第1のL2Pデータ構造内の第2の場所に第1のLBAを書き込むことを含み得る。
ブロック428において、方法420は、NVMデバイスに格納された第2のL2Pデータ構造(例えば、本明細書で図2に示されるL2Pデータ構造216-N)内の第1の場所に、第1のLBAに対応する物理ブロックアドレス(PBA)を書き込むことを含み得る。一部の実施形態では、第1のL2Pデータ構造内の第2の場所が、第2のL2Pデータ構造内の第1の場所に対応し得る。
上記のように、第1のL2Pデータ構造と第2のL2Pデータ構造とは、同じ数量の行と同じ数量の列とを含み得る(例えば、第1のL2Pデータ構造はa×bテーブルであり得、第2のL2Pデータ構造はa×bテーブルであり得、aとbとはゼロ以外の整数である)。例えば、一部の実施形態では、第1のL2Pデータ構造と第2のL2Pデータ構造とは、同じサイズであり得る。
一部の実施形態では、方法420は、第1のL2Pデータ構造内の第2の場所から第1のLBAを読み出すことを更に含み得る。ただし、実施形態はそのように限定されるものではなく、衝突が検出されず、第1のLBAがL2Pデータ構造内の第1の場所に書き込まれる実施形態などの一部の実施形態では、本方法は、第1のL2Pデータ構造内の第1の場所からLBAを読み出すことを更に含んでもよい。
一部の実施形態では、方法420は、第2のL2Pデータ構造内の第2の場所からPBAを読み出すことを更に含み得る。例えば、衝突が検出され、PBAが第2のL2Pデータ構造内の第2の場所に書き込まれる場合、方法420は、第2のL2Pデータ構造内の第2の場所からPBAを読み出すことを含み得る。ただし、実施形態はそのように限定されるものではなく、衝突が検出されず、PBAが第2のL2Pデータ構造内の第1の場所に書き込まれる実施形態などの一部の実施形態では、本方法は、第2のL2Pデータ構造内の第1の場所からPBAを読み出すことを更に含んでもよい。
本明細書では特定の実施形態を例示し説明してきたが、当業者は、同じ結果を達成するように計算された構成が、示された特定の実施形態に置き換えられ得ることを理解するであろう。この開示は、本開示の1つ以上の実施形態の適合または変形を網羅することを意図している。上記説明は、限定的でなく例示的な方式において行われたことが理解されよう。上記実施形態の組み合わせ、及び本明細書で特に説明されていない他の実施形態は、上記説明をレビューした当業者にとって明らかであろう。本開示の1つ以上の実施形態の範囲は、上記構造及び方法が使用される他の用途を含む。したがって、本開示の1つ以上の実施形態の範囲は、添付の特許請求の範囲の権利が与えられる均等物の全範囲とともに、添付の特許請求の範囲を参照して判定されるべきである。
前述の発明を実施するための形態では、開示を合理化する目的でいくつかの特徴が単一の実施形態において共にグループ化される。この開示の方法は、本開示の開示された実施形態が各請求項に明確に列挙されたものより多くの特徴を使用する必要があるという意図を反映するものとして解釈されるものではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全ての特徴に満たないものに存在する。したがって、以下の特許請求の範囲は、本明細書により、発明を実施するための形態に取り入れられ、各請求の範囲が別個の実施形態として自立する。

Claims (15)

  1. 不揮発性メモリ(NVM)デバイスに結合されたコントローラであって、前記コントローラは
    前記NVMデバイスの第1の論理対物理(L2P)データ構造内に論理ブロックアドレス(LBA)を記憶させることと、
    前記NVMデバイスの第2のL2Pデータ構造内に物理ブロックアドレス(PBA)を記憶させることであって、前記第1のL2Pデータ構造と前記第2のL2Pデータ構造とが、そのL2Pデータ構造と関連付けられた同じサイズを有する、前記PBAを記憶させることと、
    第1のハッシュ関数の実行に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造へ書き込むことと
    を行うように構成されている、前記コントローラを備える、装置
  2. 不揮発性メモリ(NVM)デバイスに結合されたコントローラであって、前記コントローラは
    前記NVMデバイスの第1の論理対物理(L2P)データ構造内に論理ブロックアドレス(LBA)を記憶させることと、
    前記NVMデバイスの第2のL2Pデータ構造内に物理ブロックアドレス(PBA)を記憶させることであって、前記第1のL2Pデータ構造と前記第2のL2Pデータ構造とが、そのL2Pデータ構造と関連付けられた同じサイズを有する、前記PBAを記憶させることと、
    第1のハッシュ関数の実行に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の第1の位置へ書き込むことと、
    前記第1のハッシュ関数の実行が衝突を発生させるとの判定に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の第2の位置へ書き込むことと
    を行うように構成されている、前記コントローラを備え
    前記コントローラは更に、前記第1のL2Pデータ構造の前記第1の位置が、前記第1の位置に書き込まれる前記LBAとは異なるLBAを含むとの判定に少なくとも部分的に基づいて、前記第1のハッシュ関数の実行が衝突を発生させるという判定をもたらすように構成されている、装置
  3. 不揮発性メモリ(NVM)デバイスに結合されたコントローラであって、前記コントローラは
    前記NVMデバイスの第1の論理対物理(L2P)データ構造内に論理ブロックアドレス(LBA)を記憶させることと、
    前記NVMデバイスの第2のL2Pデータ構造内に物理ブロックアドレス(PBA)を記憶させることであって、前記第1のL2Pデータ構造と前記第2のL2Pデータ構造とが、そのL2Pデータ構造と関連付けられた同じサイズを有する、前記PBAを記憶させることと、
    第1のハッシュ関数の実行に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の第1の位置へ書き込むことと、
    前記第1のハッシュ関数の実行が衝突を発生させるとの判定に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の第2の位置へ書き込むことと
    を行うように構成されている、前記コントローラを備え
    前記コントローラは更に、第2のハッシュ関数の実行に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の前記第2の位置へ書き込むように構成されている、装置
  4. 不揮発性メモリ(NVM)デバイスに結合されたコントローラであって、前記コントローラは
    前記NVMデバイスの第1の論理対物理(L2P)データ構造内に論理ブロックアドレス(LBA)を記憶させることと、
    前記NVMデバイスの第2のL2Pデータ構造内に物理ブロックアドレス(PBA)を記憶させることであって、前記第1のL2Pデータ構造と前記第2のL2Pデータ構造とが、そのL2Pデータ構造と関連付けられた同じサイズを有する、前記PBAを記憶させることと、
    第1のハッシュ関数の実行に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の第1の位置から読み出すことと、
    前記第1のハッシュ関数の実行が衝突を発生させるとの判定に少なくとも部分的に基づいて、前記LBAを前記第1のL2Pデータ構造の第2の位置から読み出すことであって、前記第1のL2Pデータ構造の前記第2の位置が、第2のハッシュ関数の実行に少なくとも部分的に基づいて判定される、前記LBAを前記第2の位置から読み出すことと
    を行うように構成されている、前記コントローラを備える、装置
  5. 前記第1のL2Pデータ構造の特定の位置が、前記第2のL2Pデータ構造の対応する特定の位置に対応する、請求項1に記載の装置。
  6. 不揮発性メモリ(NVM)デバイスに結合されたコントローラであって、前記コントローラは
    前記NVMデバイスの第1の論理対物理(L2P)データ構造内に論理ブロックアドレス(LBA)を記憶させることと、
    前記NVMデバイスの第2のL2Pデータ構造内に物理ブロックアドレス(PBA)を記憶させることであって、前記第1のL2Pデータ構造と前記第2のL2Pデータ構造とが、そのL2Pデータ構造と関連付けられた同じサイズを有する、前記PBAを記憶させることと、
    前記第1のL2Pデータ構造を半順序とすることと
    を行うように構成されている、前記コントローラを備える、装置
  7. 第1のメモリ部分と第2のメモリ部分とを含む不揮発性メモリ(NVM)デバイスと、
    前記NVMデバイスに結合されたコントローラであって、前記コントローラは、
    第1のハッシュ関数を実行させて、論理ブロックアドレス(LBA)が格納される前記第1のメモリ部分における第1の論理対物理(L2P)アドレスデータ構造内の第1の場所を判定することと、
    前記第1の場所が第2のLBAを含むとの判定を行うことと、
    第2のハッシュ関数を実行させて、前記LBAが格納される前記第1のメモリ部分における前記第1のL2Pアドレスデータ構造内の第2の場所を判定することと
    を行うように構成されている、前記コントローラと
    を備える、装置。
  8. 前記コントローラは更に、前記LBAに対応する物理ブロックアドレスが、前記第2のメモリ部分における第2のL2Pデータ構造内に格納されるように構成されており、前記第1のハッシュ関数が、h(l)=6l(mod x)で与えられる、請求項に記載の装置であって、lはLBAであり、前記第2のハッシュ関数は、s(l)=3(h(l)+1)(mod x)で与えられ、式中のxはゼロ以外の整数である、前記装置。
  9. Figure 0007079349000010
    であり、
    s(l)がmに対して互いに素であり、s(l)がmに対して互いに素であることが、s(l)及びmの両方を割り切る1よりも大きな整数を持たないs(l)及びmを構成する、請求項8に記載の装置。
  10. 不揮発性メモリ(NVM)デバイスと、
    フラッシュメモリデバイスと、
    前記NVMデバイス及び前記フラッシュメモリデバイスに結合されたコントローラであって、前記コントローラは、
    第1のハッシュ関数を実行させて、論理ブロックアドレス(LBA)が格納される前記NVMデバイスにおける第1のデータ構造内の第1の場所を判定することと、
    前記LBAが前記第1のデータ構造内の前記第1の場所に格納されているとの前記判定に応答して、前記NVMデバイスにおける第2のデータ構造内の対応する第1の場所に物理ブロックアドレスを設定することと、
    第2のハッシュ関数を実行させて、前記LBAが格納される前記第1のデータ構造内の第2の場所を判定することと、
    前記LBAが前記第1のデータ構造内の前記第2の場所に格納されているとの前記判定に応答して、前記NVMデバイスにおける前記第2のデータ構造内の対応する第2の場所に前記物理ブロックアドレスを設定することと
    を行うように構成されている、前記コントローラと
    を備える、装置。
  11. 前記第2のデータ構造内に格納されている物理ブロックアドレスの数量が、前記第1のデータ構造内に格納されているLBAの数量よりも多い、請求項10に記載の装置。
  12. 前記コントローラは、前記第1のハッシュ関数及び前記第2のハッシュ関数を実行するための処理の一部として、前記第1のハッシュ関数のモジュロと、前記第2のハッシュ関数のモジュロとを判定するように構成されている、請求項1011のいずれか1項に記載の装置。
  13. 第1の論理ブロックアドレス(LBA)を書き込むために、不揮発性メモリ(NVM)デバイスに格納された第1の論理対物理(L2P)データ構造内の第1の場所を判定することと、
    前記第1の場所が第2のLBAを含むことを判定することと、
    前記第1の場所が前記第2のLBAを含むとの前記判定に応答して、前記第1のL2Pデータ構造内の第2の場所に前記第1のLBAを書き込むことと、
    前記NVMデバイスに格納された第2のL2Pデータ構造内の場所に、前記第1のLBAに対応する物理ブロックアドレス(PBA)を書き込むことであって、前記第1のL2Pデータ構造内の前記第2の場所が、前記第2のL2Pデータ構造内の前記場所に対応する、前記PBAを書き込むことと
    を含む、方法。
  14. 前記第1のL2Pデータ構造と前記第2のL2Pデータ構造とが、そのL2Pデータ構造と関連付けられた同じ数量の行及び同じ数量の列を有する、請求項13に記載の方法。
  15. 前記第1のL2Pデータ構造内の前記第1の場所が、前記第1のLBAに対応する第1のハッシュ関数を実行することによって判定され、前記第1のL2Pデータ構造内の前記第2の場所が、前記第1のLBAに対応する第2のハッシュ関数を実行して、前記第1のL2Pデータ構造の前記第1の場所を、前記第1のL2Pデータ構造の前記第2の場所にインクリメントすることによって判定される、請求項1314のいずれか1項に記載の方法。
JP2020566796A 2018-05-31 2019-03-27 論理対物理データ構造 Active JP7079349B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/994,669 US10970205B2 (en) 2018-05-31 2018-05-31 Logical-to-physical data structures for tracking logical block addresses indicative of a collision
US15/994,669 2018-05-31
PCT/US2019/024244 WO2019231533A1 (en) 2018-05-31 2019-03-27 Logical-to-physical data structures

Publications (2)

Publication Number Publication Date
JP2021526260A JP2021526260A (ja) 2021-09-30
JP7079349B2 true JP7079349B2 (ja) 2022-06-01

Family

ID=68693068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020566796A Active JP7079349B2 (ja) 2018-05-31 2019-03-27 論理対物理データ構造

Country Status (6)

Country Link
US (2) US10970205B2 (ja)
EP (1) EP3803565A4 (ja)
JP (1) JP7079349B2 (ja)
KR (1) KR20210003946A (ja)
CN (1) CN112204515A (ja)
WO (1) WO2019231533A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754785B2 (en) * 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
KR20210060024A (ko) * 2019-11-18 2021-05-26 에스케이하이닉스 주식회사 신경망 처리 회로를 포함하는 메모리 장치
KR20220009523A (ko) 2020-07-15 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법
US11940908B2 (en) * 2022-04-19 2024-03-26 Western Digital Technologies, Inc. Relative size reduction of a logical-to-physical table
US11934704B1 (en) 2022-09-27 2024-03-19 Western Digital Technologies, Inc. Control table set determination in storage devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090106486A1 (en) 2007-10-19 2009-04-23 Inha-Industry Partnership Institute Efficient prefetching and asynchronous writing for flash memory
US20180136865A1 (en) 2016-11-15 2018-05-17 Samsung Electronics Co., Ltd. Method of operating memory device, memory device using the same and memory system including the device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788240B2 (en) * 2004-12-29 2010-08-31 Sap Ag Hash mapping with secondary table having linear probing
JP4956068B2 (ja) 2006-06-30 2012-06-20 株式会社東芝 半導体記憶装置およびその制御方法
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US9104678B1 (en) 2011-12-31 2015-08-11 Richard Michael Nemes Methods and apparatus for information storage and retrieval using a caching technique with probe-limited open-address hashing
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
WO2014110095A1 (en) 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
US9519575B2 (en) * 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US9846642B2 (en) * 2014-10-21 2017-12-19 Samsung Electronics Co., Ltd. Efficient key collision handling
KR102343246B1 (ko) 2014-12-12 2021-12-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10915256B2 (en) 2015-02-25 2021-02-09 SK Hynix Inc. Efficient mapping scheme with deterministic power transition times for flash storage devices
JP6441171B2 (ja) * 2015-06-12 2018-12-19 東芝メモリ株式会社 メモリシステム
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
US20170139594A1 (en) 2015-11-17 2017-05-18 Samsung Electronics Co., Ltd. Key-value integrated translation layer
US10175889B2 (en) * 2016-03-10 2019-01-08 Toshiba Memory Corporation Memory system capable of accessing memory cell arrays in parallel
KR20180019419A (ko) 2016-08-16 2018-02-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
KR102559518B1 (ko) 2016-09-28 2023-07-26 에스케이하이닉스 주식회사 메모리 제어장치 및 방법
US10108359B2 (en) * 2016-10-20 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for efficient cache buffering in a system having parity arms to enable hardware acceleration
US10409726B2 (en) * 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090106486A1 (en) 2007-10-19 2009-04-23 Inha-Industry Partnership Institute Efficient prefetching and asynchronous writing for flash memory
US20180136865A1 (en) 2016-11-15 2018-05-17 Samsung Electronics Co., Ltd. Method of operating memory device, memory device using the same and memory system including the device

Also Published As

Publication number Publication date
WO2019231533A1 (en) 2019-12-05
US20190370169A1 (en) 2019-12-05
JP2021526260A (ja) 2021-09-30
CN112204515A (zh) 2021-01-08
KR20210003946A (ko) 2021-01-12
US20210191855A1 (en) 2021-06-24
US10970205B2 (en) 2021-04-06
US11556466B2 (en) 2023-01-17
EP3803565A1 (en) 2021-04-14
EP3803565A4 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
JP7079349B2 (ja) 論理対物理データ構造
US20200233585A1 (en) Data relocation in hybrid memory
CN110083545B (zh) 数据存储装置及其操作方法
KR20200035311A (ko) 캐시 라인 데이터
JP7049476B2 (ja) ハイブリッドメモリシステム
US11200159B2 (en) System and method for facilitating efficient utilization of NAND flash memory
US20240143219A1 (en) Software-hardware combination method for internal mapping address query of zoned namespace
US10789003B1 (en) Selective deduplication based on data storage device controller status and media characteristics
US11016904B2 (en) Storage device for performing map scheduling and electronic device including the same
KR20210028729A (ko) 논리적 대 물리적 테이블 프래그먼트들
US10628300B2 (en) RAID stripe physical placement
CN117121107A (zh) 使用内容可寻址存储器的用于经排序字符串表的密钥存储
JP7038227B2 (ja) ハイブリッドメモリシステム
US11126624B2 (en) Trie search engine
US20230315646A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
CN112445422A (zh) 存储器控制器、存储装置以及存储器控制器的操作方法
CN110096452B (zh) 非易失随机访问存储器及其提供方法
CN113126906B (zh) 用于元数据指示的方法和系统
CN110968527A (zh) Ftl提供的缓存
US20220269437A1 (en) Data Storage Device and Method for Predetermined Transformations for Faster Retrieval
CN113302582A (zh) 每光标逻辑单元号定序
US11409665B1 (en) Partial logical-to-physical (L2P) address translation table for multiple namespaces
US20240045597A1 (en) Storage device and operation method thereof
US20230409203A1 (en) Memory system and read method
US20230205440A1 (en) Storage device including indirect access module, method of operating the same, and method of operating storage system including the same

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220411

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220520

R150 Certificate of patent or registration of utility model

Ref document number: 7079349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150