JP2021507373A - マルチレベルアドレッシング - Google Patents

マルチレベルアドレッシング Download PDF

Info

Publication number
JP2021507373A
JP2021507373A JP2020532688A JP2020532688A JP2021507373A JP 2021507373 A JP2021507373 A JP 2021507373A JP 2020532688 A JP2020532688 A JP 2020532688A JP 2020532688 A JP2020532688 A JP 2020532688A JP 2021507373 A JP2021507373 A JP 2021507373A
Authority
JP
Japan
Prior art keywords
segment
address
level
address level
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020532688A
Other languages
English (en)
Other versions
JP6908789B2 (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 JP2021507373A publication Critical patent/JP2021507373A/ja
Application granted granted Critical
Publication of JP6908789B2 publication Critical patent/JP6908789B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/7202Allocation control and policies
    • 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/7206Reconfiguration of flash memory system
    • 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/7211Wear leveling

Landscapes

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

Abstract

実施例において、不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスは、マルチレベルアドレッシングスキームを使用して、初期化プロセス中に決定される。マルチレベルアドレッシングスキームを使用することは、それぞれのアドレスレベルにおいてストレージメモリの複数の読み込みを実行し、特定の情報の位置に対応する開始アドレスを決定することを備えることができる。

Description

本開示は、一般に、ストレージシステムなどの装置、及びそれらの操作に関し、さらに特に、マルチレベルアドレッシングに関する。
ストレージシステムは、コンピュータ、携帯電話、ハンドヘルド電子デバイスなどの電子システムに実装されることができる。ソリッドステートドライブ(SSD)などのいくつかのストレージシステムは、ホストからのユーザデータを格納するための不揮発性ストレージメモリを含むことができる。不揮発性ストレージメモリは、電力を供給されないときに格納されたデータを保持することによって永続的なデータを提供し、その寿命を通して特定の回数を書き込むことができる他のタイプのメモリのうち、クロスポイントメモリ、NANDフラッシュメモリを含むことができる。ストレージシステムは、ストレージシステムの動作に重要な情報を位置づける、初期化プロシージャを一般に実行する。
本開示のいくつかの実施形態に従った、装置のブロック図である。 本開示のいくつかの実施形態に従った、マルチレベルアドレッシングスキームによるストレージメモリの複数の読み込みの実施例を示す。 本開示のいくつかの実施形態に従った、重要な情報を位置づける方法のフローチャートである。 本開示のいくつかの実施形態に従った、ストレージメモリのフラグメントの実施例である。 本開示のいくつかの実施形態に従った、ストレージメモリのフラグメントをウェアレベリングする実施例を示す。
実施例において、不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスは、マルチレベルアドレッシングスキームを使用して初期化プロセス中に決定される。マルチレベルアドレッシングスキームを使用することは、それぞれのアドレスレベルにおいてストレージメモリの複数の読み込みを実行し、特定の情報の位置に対応する開始アドレスを決定することを備えることができる。
以前の手法では、ストレージシステムの動作に重要である初期化情報(例えば、重要な情報)などの特定の情報が格納されるストレージシステムのストレージメモリ中の実際の位置は、初期化中に直接にアドレス指定されることができる。例えば、以前の手法では、重要な情報の実際の物理的位置のアドレスを指定することができるファームウェア等の命令を実行することに応答して、初期化を実行することができる。例えば、以前の手法は、単一レベルの直接アドレッシングを使用して、重要な情報を位置づけることができる。
いくつかの以前の手法は、ストレージシステムがパワーダウンする毎に、例えば、各パワーダウン中に新規の重要な情報をこの位置に書き込むことによって、メモリの単一アドレスレベルにおける位置に新規の重要な情報を格納することができる。例えば、この位置に以前に書き込まれた重要な情報は、新規の重要な情報によって上書きされることができる。
しかしながら、ストレージメモリ中のメモリセルは、メモリセルの寿命の間に特定の回数書き込まれることができ、パワーダウンの数は、特定の回数よりも何桁(例えば、5桁)大きくてもよい。例えば、以前の手法では、ストレージシステムは、単一アドレスレベルにおける位置に重要な情報を、この位置においてメモリセルの寿命中にこの位置が書き込まれることができるよりも多い回数、書き込む必要があり得る。
本開示の実施形態は、マルチレベルの間接的なアドレッシングを実行することによって、ストレージデバイスの初期化中にアドレスによって直接的に指定される、ストレージメモリ中の単一アドレスレベルにおける位置に書き込む問題を解決することによって以前の手法を上回る技術的利点を提供する。例えば、本明細書に開示される実施形態は、ストレージメモリの複数の読み込みを実行することを備えることができるマルチレベルアドレッシングスキームを使用して、装置の初期化中に不揮発性ストレージメモリ内の重要な情報の位置に対応する開始アドレスを決定する。
ストレージシステムは、装置の寿命全体を通して各初期化中に重要な情報の位置を間接的にアドレス指定する同じ初期アドレスを使用することができる。いくつかの実施例では、開示されたストレージシステムは、初期アドレスレベルにおいて初期アドレスを有する位置から中間アドレスを読み込み、中間アドレスレベルで中間アドレスにおける位置から重要な情報の位置のアドレスを読み込み、最終アドレスレベルにおいて重要な情報の位置を決定することができる。
いくつかの実施形態では、初期アドレスを有する位置における中間アドレスは、中間アドレスが変更される毎に変更され、中間アドレスは、重要な情報の位置が変更される毎に変更される。例えば、中間アドレスが変更された回数、及び重要な情報の位置が変更された回数は、ストレージデバイスの寿命中に初期アドレスを有する位置における変更数が閾値回数未満のままであるように選択されることができる。例えば、閾値回数は、初期アドレスがストレージデバイスの寿命中に同じままであることができることを意味する、初期アドレスを有する位置においてメモリセルがそれらの寿命全体を通して書き込まれることができる回数であることができる。
以下の詳細な説明では、本明細書の一部を形成し、例示として特定の実施例が示される添付図面への参照が行われる。図面において、同様の数字は、いくつかの図面全体を通して実質的に同様の構成要素を記述する。本開示の範囲から逸脱することなく、他の実施例を利用することができ、構造的な、また電気的な変更を行うことができる。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は、添付の特許請求の範囲及びそれらの均等物によってのみ定義される。
図1Aは、本開示のいくつかの実施形態に従った、コンピューティングシステム100の形式にある装置のブロック図である。コンピューティングシステム100は、例えば、ソリッドステートドライブ(SSD)であることができるストレージシステム102を含む。図1Aの実施例では、ストレージシステム102は、ホスト104に結合され、とりわけクロスポイントメモリ(例えば、三次元(3D)クロスポイントメモリ)などの、不揮発性メモリであることができるストレージメモリ106を含む。処理デバイスなどのコントローラ108(例えば、SSDコントローラ)は、メモリ106に結合される。本明細書に使用される場合、ストレージシステム(例えば、102)、コントローラ(例えば、108)、及び/またはストレージメモリ(例えば、106)は、別々に「装置」とみなされることができる。
いくつかの実施例では、ストレージメモリ106は、3Dクロスポイントメモリセルなどのクロスポイントメモリセルを含むことができる、3Dクロスポイントメモリであってもよく、これらのセルにアクセスするために使用される第一信号線及び第二信号線の交点に(例えば、ワード線及びビット線の交点に)位置していることができる。いくつかのクロスポイントメモリセルは、例えば、抵抗可変メモリセルであることができ、これらの状態(例えば、格納されたデータ値)は、メモリセルのプログラミングされた抵抗に依存する。例えば、メモリセルは、最初に消去されることなく、個別に上書きされることができる抵抗可変メモリセルであることができる。メモリセルは、異なるデータ状態にプログラム可能な材料を含んでもよい。
いくつかの抵抗可変メモリセルは、ストレージ素子(例えば、異なる抵抗レベルにプログラム可能な、相変化材料、金属酸化物材料、及び/またはいくつかの他の材料)と直列で、選択素子(例えば、ダイオード、トランジスタ、または他のスイッチングデバイス)を含むことができる。自己選択型メモリセルと称されることができる、いくつかの可変抵抗メモリセルは、メモリセルについての選択素子及びストレージ素子の両方として機能することができる単一の材料を含む。いくつかの実施例では、メモリセルのそれぞれは、各メモリセルがセレクタデバイス及びメモリ素子の両方として機能することができるように、セレクタ材料(例えば、スイッチング材料)及びストレージ材料として機能することができる材料を含むことができる。例えば、各メモリセルは、さまざまなドープ材料または非ドープ材料から形成されることができる、相変化材料であっても、なくてもよい、及び/またはメモリセルを読み込み中に、及び/または書き込み中に相変化を受ける場合、あるいは受けない場合もある、カルコゲナイド材料を含むことができる。いくつかの実施例では、各メモリセルは、セレン(Se)、ヒ素(As)、及びゲルマニウム(Ge)を含有することができる三元組成、シリコン(Si)、Se、As、及びGeを含有することができる四元組成などを含むことができる。いくつかの実施例では、ストレージメモリ106は、メモリセルの単一ティア(例えば、デッキ)中に、またはメモリセルの複数のティア中に配置されることができる。
いくつかの実施例において、コントローラ108は、プリント回路基板に結合される特定用途向け集積回路(ASIC)の形態で実装されることができる、ステートマシン、シーケンサ、及び/またはいくつかの他のタイプの制御回路を含むことができる。コントローラ108は、初期化コンポーネント110、読み込み専用メモリ(ROM)114、ウェアレベリングコンポーネント116、及び論理アドレスから物理アドレス(例えば、L2P)へのマッピングコンポーネント118などのマッピングコンポーネントを含む。一例では、ROM114は、ストレージシステム102の初期化中に実行されることができる命令を含むハードウェアコンポーネントであってもよい。コントローラ108は、ランダムアクセスメモリ(RAM)112などの揮発性メモリに結合される。
コントローラ108は、いくつかの実施形態に従い、ストレージシステム102を初期化するなどの、本明細書に開示される方法を実行するように構成される。例えば、ストレージシステム102の初期化中に、初期化コンポーネント110は、これらの方法を実行する。初期化コンポーネント110は、ストレージメモリ106を読み込むためにマルチレベルアドレッシングスキームを使用して、ストレージシステム102の動作に重要であるストレージメモリ106内の重要な情報の位置に対応する、論理から物理へのマッピング情報の開始アドレスなどの開始アドレスを決定することによって、ストレージシステム102を初期化することができる。例えば、初期化コンポーネント110は、マルチレベルアドレッシングスキームを使用しながら、ストレージメモリ106の複数の読み込みを実行することによって、間接的に重要な情報の位置を決定することができる。いくつかの実施例では、初期化中に、ストレージシステム102は、ホスト104から、読み込みコマンド及び書き込みコマンドなどのコマンドを許容する準備ができていない場合がある。初期化完了時に、ストレージシステム102は、ストレージシステム102がホスト104からコマンドを許容する準備ができていることを示す準備信号をホスト104に送信することができる。
いくつかの実施例では、初期化コンポーネント110は、ストレージメモリ106に格納される命令(例えば、ファームウェアコード)を実行することに応答して、ストレージシステム102を初期化することができる。例えば、初期化コンポーネント110は、ストレージメモリ106からRAM112中へ命令を読み込み、RAM112からの命令を実行することができる。
いくつかの実施例では、初期化コンポーネント110は、初期化中にストレージメモリ106に命令を位置づけることができる。例えば、初期化コンポーネント110は、マルチレベルアドレッシングスキームを使用して命令の位置を決定することができる。例えば、初期化コンポーネント110は、マルチレベルアドレッシングスキームを使用しながら、ストレージメモリ106の複数の読み込みを実行することによって、命令の位置を決定することができる。いくつかの実施例では、初期化コンポーネント110は、ROM114に格納される、ROM(例えば、ハードウェア)コードなどの命令を実行することに応答して、複数の読み込みを実行することができる。
図1Bは、本開示のいくつかの実施形態に従った、複数のレベルのアドレッシングスキームによるストレージメモリ106の複数の読み込みの実施例を示す。例えば、コントローラ108は、複数の異なるアドレスレベルをストレージメモリ106の部分に割り当てることができる。
初期(例えば、最上位)アドレスレベル120をストレージメモリ106の部分122に割り当てる。最終(例えば、最下位)アドレスレベル124をストレージメモリ106の部分128に割り当てる。複数の(例えば、1つ以上の)中間アドレスレベルを初期アドレスレベル120と最終アドレスレベル124との間に割り当てる。例えば、中間アドレスレベル130及び中間アドレスレベル132をストレージメモリ106の部分134に割り当てる。例えば、アドレスレベル130は、アドレスレベル132よりも上位のアドレスレベルであることができる。
部分134を使用して、L2PテーブルなどのL2Pマッピング情報を格納することができ、このL2Pマッピング情報をストレージシステム102の初期化中にL2Pマッピングコンポーネント118中にロードすることができる。一例では、ホスト104は、ストレージシステム102に書き込まれる、またはこのストレージシステム102から読み出される、ユーザデータ(例えば、ホストデータ)などのデータに対応する、論理アドレスをコントローラ108に送信することができる。次いで、L2Pマッピングコンポーネント118は、部分128内などの、ストレージメモリ106内の物理的位置に対応する物理アドレスに論理アドレスをマッピングすることができる。
ストレージメモリ106は、メモリセルのセグメントを含む。セグメントは、ストレージメモリ106にアクセスするときにアドレス指定可能な最小単位である。いくつかの実施例では、いくつかのセグメントは、とりわけ、16バイトまたは64バイトであることができる。加えて、メモリ106は、ホスト104からホストデータなどのユーザデータ、及び/または重要な情報を格納するために、512バイトまたは4キロバイトセグメントなどのようなセグメントを含むことができる。
部分128は、アドレス指定可能なセグメント135を含む。例えば、最終アドレスレベル124における1セットのセグメント135を使用して重要な情報及び/またはユーザデータを格納し、マルチレベルアドレッシングの最終アドレス、及び/またはL2Pマッピングからの物理アドレスを使用してセグメント135をアドレス指定する。例えば、L2Pマッピングコンポーネント118は、L2Pマッピング情報を使用して、ユーザデータ及び/または重要な情報を格納するために使用されるセグメント135の物理アドレスに論理アドレスをマッピングすることができる。したがって、セグメント135は、物理ブロックと称されることができる。いくつかの実施例では、セグメント135は、ホスト104によって使用されるアドレス指定可能な最小単位であることができ、512バイトまたは4キロバイトなどであってもよい。しかしながら、セグメント137、138、及び139などの部分134中のセグメント、ならびに部分122中のセグメント140は、16バイト、64バイトなどであってもよく、アドレス指定可能な最小単位であることができる。したがって、図1Bに描かれている複数のレベルのアドレッシングスキームは、例えば、アドレスレベル120、130、及び132におけるものと異なるサイズの、アドレスレベル124におけるアドレス指定可能な単位を使用することができる。
部分134は、中間アドレスレベル130においてアドレス指定可能なセグメント137、及び中間アドレスレベル132においてアドレス指定可能なセグメント138を含む。例えば、1セットのセグメント138を使用して、最終アドレスレベル124にセグメント135の最終アドレスを格納する。例えば、1セットのセグメント138のセグメント138Tは、重要な情報を格納するセグメント135Tの最終アドレスを格納することができる。
1セットのセグメント137を使用して、セグメント138の中間アドレスを格納する。例えば、1セットのセグメント137のセグメント137Tは、アドレスレベル132にセグメント138Tの中間アドレスを格納することができる。いくつかの実施例では、部分134は、L2Pマッピング情報を格納するための1セットのセグメント139を含むことができる。
部分122は、セグメント140を含む。例えば、セグメント140を使用して、セグメント137の中間アドレスを格納する。例えば、セグメント140Tは、セグメント137Tの中間アドレスを格納することができる。いくつかの実施例では、セグメント140Bは、セグメント140Tに格納される中間アドレスのコピー(例えば、バックアップコピー)を含むことができる。一例では、中間アドレスレベル130は、省略されることができ、その場合、セグメント140Tは、セグメント138Tの中間アドレスを格納することができる。他の実施例では、中間アドレスレベル130及び132に加えて、部分134に割り当てられる他の中間アドレスレベルがあることができる。
セグメント140Tのアドレスは、複数のアドレッシングスキームの初期アドレスであることができる。初期アドレス、したがってセグメント140Tは、ストレージシステム102の寿命のために固定されていてもよい。例えば、初期アドレスは、コンポーネント110のレジスタ111に格納される、またはファームウェアコードなどのストレージメモリ106に格納されることができる。初期アドレスを初期化コンポーネント110が使用し、ストレージシステム102がストレージシステム102の寿命全体を通して初期化される毎にセグメント140Tの位置を決定することができる。例えば、初期アドレスを使用して、複数のアドレスレベル120、130、及び132を介してセグメント135Tを間接的にアドレス指定する(例えば、このセグメント135Tの位置を間接的に決定する)ことができる。
セグメント140Tに格納され、中間アドレスレベル130においてセグメント137をアドレス指定するために使用される、中間アドレスは、それらが別のセグメント137を使用することに応答して変更することができるという点で可変であることができる。セグメント137に格納され、中間アドレスレベル132においてセグメント138をアドレス指定するために使用される、中間アドレスは、それらが別のセグメント138を使用することに応答して変更することができるという点で可変であることができる。セグメント138に格納され、最終アドレスレベル124においてセグメント135をアドレス指定するために使用される、最終アドレスは、それらが別のセグメント135を使用することに応答して変更することができるという点で可変であることができる。
初期化コンポーネント110は、ストレージシステム102を初期化することができる。初期化中に、初期化コンポーネント110は、図2においてフローチャートに示される方法250を実行し、重要な情報を決定することができる。ブロック252において、初期化コンポーネント110は、初期アドレスに応答してセグメント140Tからセグメント137Tのアドレスを読み込む。ブロック254において、初期化コンポーネント110は、セグメント137Tからセグメント138Tのアドレスを読み込む。ブロック256において、初期化コンポーネント110は、セグメント138Tからセグメント135Tのアドレスを読み込み、重要な情報の位置を位置づける。ブロック256において、初期化コンポーネント110は、セグメント135Tから重要な情報を読み込む。
重要な情報は、L2Pマッピング情報の開始アドレスであることができる。例えば、開始アドレスは、部分134におけるセグメント139Sのアドレスであることができる。次いで、初期化コンポーネント110は、RAM112に、開始アドレスから開始するL2Pマッピング情報を読み込むことができる。
初期化コンポーネント110は、アドレスレベル124において1セットのセグメント135中などの、ストレージメモリ106中に格納される命令に応答して重要な情報を決定するために、方法250のような方法を実行することができる。初期化の一部として、初期化コンポーネント110は、図1Bにおける複数の読み込みを使用し、命令を位置づけることができる。
初期化コンポーネント110は、初期化中に、ROM114において命令を実行し、これらの命令をアドレスレベル124に位置づけることができる。例えば、ROM114における初期アドレスは、セグメント140をアドレス指定することができる。初期化コンポーネント110は、セグメント140からセグメント137のアドレスを読み込むことができる。初期化コンポーネント110は、セグメント137からセグメント138のアドレスを読み込んだ後に、セグメント138から、これらの命令を含むことができるセグメント135のアドレスを読み込むことができる。次いで、初期化コンポーネント110は、前述されるように、重要な情報を位置づける命令を実行することができる。いくつかの実施例において、コントローラ108は、セグメント135内の命令を更新することができ、初期化コンポーネントは、前述されるように、複数のアドレス指定を使用して更新された命令を取得することができる。
図1Bと組み合わせて前述されるセグメントは、それらの寿命中に閾値回数書き込まれることができ、その寿命後、それらのセグメントは、他のセグメントによって置換されることができる。例えば、セグメント内のメモリセル、したがってセグメントは、最初に消去されずに、及び/または移動せずに、それらが閾値回数書き込まれるまで、直接上書きされることができる。
セグメント135Tなどのセグメント135内の重要な情報は、ストレージシステム102の寿命全体を通して、各パワーダウン中に、またはストレージシステム102の連続したパワーダウンの間に複数回、書き込まれることができる。加えて、ユーザデータは、連続したパワーダウンの間にセグメント135に書き込まれてもよい。しかしながら、パワーダウンの数は、セグメント135が書き込まれることができる閾値回数よりも多くてもよい。したがって、重要な情報及びユーザデータがストレージシステム102の寿命中に書き込まれる回数は、セグメント135が書き込まれることができる閾値回数よりも多い、数(例えば、約5以上の)桁など、さらに多いことが予期される。したがって、ある特定の回数、重要なファームウェア情報などの重要な情報、またはユーザデータをそれぞれセグメント135Tに書き込むことに応答して、セグメント135Tのアドレスは、L2Pマッピング情報を現在格納している、セグメント138Tか、1セットのセグメント139のセグメントのうちの1つかのいずれか一方の中で、セグメント135Tのアドレスに新規のアドレスを上書きすることによって新規のセグメント135の新規のアドレスに変更される(例えば、更新される)ことができる。新規のセグメント135を使用して、新規のセグメント135がある特定の回数書き込まれるまで重要な情報またはユーザデータを格納することができ、その時点で、新規のセグメントは、L2Pマッピング情報を現在格納している、セグメント138T、または1セットのセグメント139のセグメントかのいずれか一方の中に、新規のセグメント135のアドレスに異なる新規のセグメント135の異なる新規のアドレスを上書きすることによって、異なる新規のセグメントに変更される。
コントローラ108は、重要な情報及びユーザデータがストレージシステム102の寿命中に書き込まれる所期の回数よりも多い、潜在的な書き込みの合計数を有する、複数のセグメント135をアドレスレベル124に割り振ることができる。例えば、割り振られたセグメント135の数は、各それぞれのセグメント135がそれぞれのセグメント135の寿命中に書き込まれる所期の回数によって除算される、重要な情報及びユーザデータがストレージシステム102の寿命中に書き込まれる所期の回数よりも少なくとも多い場合がある。コントローラ108は、ストレージシステム102の寿命全体を通して固定されるアドレスレベル124においてセグメント135の数を保持することができる。例えば、コントローラ108は、セグメント135の数を静的に割り振ることができる。
セグメント138Tは、それが閾値回数書き込まれるまで上書きされることができる。したがって、セグメント138Tに閾値回数書き込むことに応答して、セグメント138Tのアドレスに新規のアドレスを上書きすることによって、セグメント137Tにおけるセグメント138Tのアドレスを新規のセグメント138の新規のアドレスに変更することにより、セグメント138Tから新規のセグメント138に変更することができる。
コントローラ108は、重要な情報及びユーザデータがストレージシステム102の寿命中に書き込まれる所期の回数よりも多い、潜在的な書き込みの合計数を有する、1セットのセグメント137の複数のセグメント137をアドレスレベル130に、1セットセグメント138の複数のセグメント138をアドレスレベル132に、そして1セットのセグメント139の複数のセグメント139を部分134に割り振ることができる。例えば、コントローラ108は、重要な情報を格納するために使用されるセグメント135の数よりも多い、潜在的な書き込みの合計数を有する、1セットのセグメント138の複数のセグメント138を部分134に割り振ることができる。このセット中のセグメント138の数は、例えば、各それぞれのセグメント138がそれぞれのセグメント138の寿命中に書き込まれる所期の回数によって除算される、Fwの重要な情報を格納するために使用される少なくともセグメント135の数よりも多いと判定されることができる。コントローラ108は、ストレージシステム102の寿命全体を通して固定されるアドレスレベル132に、このセットのセグメント138の数を保持することができる。例えば、コントローラ108は、このセットのセグメント138の数を静的に割り振ることができる。
セグメント137Tは、それが閾値回数書き込まれるまで上書きされることができる。したがって、セグメント137Tに閾値回数書き込むことに応答して、セグメント137Tのアドレスに新規のアドレスを上書きすることによって、セグメント140Tにおけるセグメント137Tのアドレスを新規のセグメント137の新規のアドレスに変更することにより、セグメント137Tから新規のセグメント137に変更することができる。セグメント140Tに以前に書き込まれたセグメント137の前のアドレスは、例えば、セグメント140T中の前のアドレスに新規のアドレスを上書きすることによって、新規のセグメント137が使用される毎に、新規のセグメント137の新規のアドレスに変更されることができる。しかしながら、前述されるような複数のアドレスレベルを使用することにより、セグメント140Tが書き込まれることができる閾値回数を下回るセグメント140Tへの書き込みの数を保持することができることによって、ストレージシステム102の寿命中にセグメント140Tを使用することが可能である。
いくつかの実施例において、コントローラ108は、セグメント135、137、138、及び140に、またはセグメント135、137、138、及び140に対応するテーブル中のエントリに、格納されることができる書き込みカウントを維持することによって、セグメント135、137、138、及び140が書き込まれた回数を追跡することができ、このテーブルは、ストレージメモリ106に格納されることができる。
いくつかの実施例において、コントローラ108は、セグメント137の複数のセットのうちのセグメント137のセット(例えば、フラグメント)をアドレスレベル130に、そしてセグメント138の複数のセットのうちのセグメント138のセット(例えば、フラグメント)をアドレスレベル132に動的に割り当てることができる。例えば、初期化コンポーネント110は、バックグラウンド動作中にストレージメモリ106の他のウェアレベリングを実行するウェアレベリングコンポーネント116に加えて、バックグラウンド動作中に実行されないウェアレベリングの部分として初期化中にセグメント137のセット、及び/またはセグメント138のセットを動的に割り当てることができる。いくつかの実施例では、初期化コンポーネント110は、以前に動的に割り当てられた1セットのセグメントがウェアレベリングされ、解放されることに応答して、異なる1セットのセグメントを動的に割り当てることができる。例えば、1セットのセグメントは、これらのセグメントが共通の(例えば、同じ)回数書き込まれたときに、ウェアレベリングされることができる。
図3Aは、セグメント362−0から362−Nなどのセグメント362のフラグメント360の一例を示す。フラグメント360は、バックグラウンド動作中に実行されないウェアレベリングの一部として初期化中に初期化コンポーネント110によって、アドレスレベル130及び/またはアドレスレベル132などの中間アドレスレベルに動的に割り当てられることができる。例えば、フラグメント360は、アドレスレベル130における複数のフラグメントのうちの1つであることができる、及び/またはアドレスレベル132における複数のフラグメントのうちの1つであることができる。
各それぞれのセグメント362は、ストレージ領域367を含む。例えば、セグメント362−0から362−Nは、ストレージ領域367−0から367−Nをそれぞれ含む。各それぞれのセグメント362は、書き込みカウントWrtCntを格納するように構成される書き込みカウント領域369を含む。例えば、セグメント362−0から362−Nは、書き込みカウントWrtCnt(0)からWrtCnt(N)を格納するようにそれぞれ構成される、書き込みカウント領域369−0から369−Nをそれぞれ含む。
セグメント362は、上位アドレスレベルに格納されるアドレスによってアドレス指定されてもよい。ストレージ領域367は、下位アドレスレベルのアドレスを格納してもよいし、最初に消去されずに、または移動せずに新規のアドレスで上書きされてもよい。いくつかの実施例では、それぞれのセグメント362は、上位アドレスレベルに格納されることができ、フラグメントアドレス及びそれぞれのオフセットによってアドレス指定されることができる。
それぞれの書き込みカウントWrtCntは、それぞれのセグメント上で実行される複数の書き込みであってもよい。例えば、それぞれの書き込みカウントWrtCnt(0)からWrtCnt(N)は、それぞれのセグメント362−0から362−N上で実行されるそれぞれの書き込み数であってもよい。いくつかの実施例において、コントローラ108は、それぞれのストレージ領域367が上書きされる毎にそれぞれの書き込みカウントWrtCntをインクリメントすることができる。他の実施例では、コントローラ108は、ストレージシステム102が初期化されるときからパワーダウンされる直前の間に、それぞれのストレージ領域367の複数の上書きを追跡することができ、そして各パワーダウン中に、上書き数によってそれぞれの書き込みカウントWrtCntをインクリメントすることができる。一例では、書き込みカウントWrtCntは、セグメント362から省略されることができ、コントローラ108は、ストレージメモリ106に格納されることができるテーブル内の各セグメント362について書き込みカウントを格納することができる。
いくつかの実施例では、フラグメント360は、フラグメント360が前もって書き込まれる前に、動的に割り当てられることができる。これらのような実施例では、各セグメントが同じ所定の回数書き込まれた場合、各セグメントが同じ所定の回数書き込まれ、解放されることができる。別のフラグメントは、フラグメント360の各セグメントが同じ所定の回数書き込まれることに応答して、フラグメント360を置換するように動的に割り当てられることができる。
他の実施例では、フラグメント360が前もって書き込まれた後に、例えば、セグメント362−0から362−Nがそれぞれの異なる回数、それぞれ前もって書き込まれた後に、フラグメント360は、動的に割り当てられることができる。図3Bは、本開示のいくつかの実施形態に従った、フラグメント360をウェアレベリングする(例えば、ストレージシステム102の初期化中に)実施例を示す。
図3Bは、フラグメント360が最初に動的に割り当てられるときのフラグメント360の初期状態、及びセグメント362−0から362−Nのそれぞれに書き込みカウントWrtCnt(0)からWrtCnt(N)の対応する初期値を示す。例えば、書き込みカウントのそれぞれの初期値は、それぞれのセグメント362−0から362−Nが割り当ての時点で前もって書き込まれた回数である。図3Bの実施例では、書き込みカウントWrtCnt(0)からWrtCnt(N)の初期値は、それぞれM、P、及びmである。
図3Bは、フラグメント360のウェアレベリングされた状態、及び書き込みカウントWrtCnt(0)からWrtCnt(N)の対応する共通のウェアレベリングされた値をさらに示す。例えば、ウェアレベリングされた状態において、書き込みカウントWrtCnt(0)からWrtCnt(N)のすべては、同じウェアレベリングされた値を含み、フラグメント360は、解放される直前であり、その後、別のフラグメント360によって置換される。例えば、ウェアレベリングされた値は、セグメントがそれらの寿命の間に書き込まれることができる閾値回数を下回ってもよい。
図3Bの実施例では、ウェアレベリングは、ウェアレベリングされた状態についての書き込みカウントの共通のウェアレベリングされた値を決定するコントローラ108を含む。コントローラ108は、最も多い回数以前に書き込まれたフラグメント360のセグメント362を決定することによって、共通のウェアレベリングされた値を決定することができる。例えば、コントローラ108は、書き込みカウントの初期値を読み込み(例えば、それぞれの書き込みカウント領域369から)、書き込みカウントの初期値の最大値を決定することができる。例えば、コントローラ108は、M、P、及びm(例えば、M)の最大値、及び対応するセグメント(例えば、セグメント362−0)を決定することができる。
次いで、コントローラ108は、Mに「Fixed」される、固定された数を追加することによって共通のウェアレベリングされた値を決定することができるため、共通のウェアレベリングされた値は、M+Fixedであり、式中、Fixedは、セグメント362−0がウェアレベリング中に上書きされる回数である。いくつかの実施例では、固定された数を選択した結果、共通のウェアレベリングされた値M+Fixedが、セグメントがそれらの寿命中に書き込まれることができる閾値回数を下回り、ウェアレベリングされたフラグメント360は、それが解放された後に、動的に再割り当てされることができる(例えば、アドレスを中間レベルに格納するために)。
次いで、コントローラ108は、それぞれの残りのセグメント362−1から362−Nのそれぞれがウェアレベリング中に上書きされる回数を決定することができる。例えば、各それぞれの残りのセグメントが上書きされるそれぞれの回数は、共通の回数から、それぞれの残りのセグメントの書き込みカウントのそれぞれの初期値を減算したものである。例えば、セグメント326−1は、Fixed+M−P回、上書きされることができ、セグメント326−Nは、Fixed+M−m回、上書きされることができる。各それぞれの残りのセグメントの各それぞれの書き込みカウントのウェアレベリングされた値は、それぞれの残りのセグメントのそれぞれの書き込みカウントの初期値に、それぞれの残りのセグメントが上書きされるそれぞれの回数を加算したものであることに留意する。例えば、セグメント362−1の書き込みカウントWrtCnt(1)のウェアレベリングされた値は、P+Fixed+M−P=Fixed+Mであり、セグメント362−Nの書き込みカウントWrtCnt(N)のウェアレベリングされた値は、m+Fixed+M−m=Fixed+Mである。
特定の実施例が本明細書で例示及び説明されてきたが、当業者は、同一の結果を達成するように推測される構成が、示される特定の実施形態と置き換えられることができることを認識するであろう。本開示は、本開示の1つ以上の実施形態の適合または変形を網羅することを意図している。上記説明が例示の方式で行われており、限定的な一つではないことが理解されよう。本開示の1つ以上の実施例の範囲は、添付の特許請求の範囲によって権利が与えられる均等物の全体の範囲に沿って、そのような特許請求の範囲を参照して判定されるべきである。

Claims (22)

  1. マルチレベルアドレッシングスキームを使用して初期化プロセス中に装置の不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスを決定することであって、マルチレベルアドレッシングスキームを使用することは、
    それぞれのアドレスレベルにおいて前記ストレージメモリの複数の読み込みを実行し、前記特定の情報の前記位置に対応する前記開始アドレスを決定すること、
    を含む、前記決定すること、
    を備える、方法。
  2. 前記初期化プロセス中に、前記開始アドレスによってアドレス指定される前記ストレージメモリ内の前記位置から前記特定の情報を揮発性メモリに読み込むことをさらに備える、請求項1に記載の方法。
  3. 前記マルチレベルアドレッシングスキームは、初期アドレスレベル、最終アドレスレベル、及び前記初期アドレスレベルと前記最終アドレスレベルとの間に少なくとも1つの中間アドレスレベルを含み、
    前記特定の情報の前記位置に対応する前記開始アドレスは、前記最終アドレスレベルにある、請求項1及び2のいずれか1項に記載の方法。
  4. 複数の読み込みを実行することは、
    前記初期アドレスレベルにおけるセグメントの読み込みを実行し、前記少なくとも1つの中間アドレスレベルにおけるセグメントのアドレスを決定することと、
    前記少なくとも1つの中間アドレスレベルにおける前記セグメントの読み込みを実行し、前記最終アドレスレベルにおけるセグメントのアドレスを決定することであって、前記最終アドレスレベルにおける前記セグメントは前記特定の情報の前記位置に対応する前記開始アドレスを示す、前記決定することと、
    を備える、請求項3に記載の方法。
  5. 前記初期アドレスレベルにおける前記セグメントのアドレスは、固定され、前記装置の各初期化の間に使用される、請求項4に記載の方法。
  6. 閾値回数、前記特定の情報を格納するために使用されるセグメントに上書きすることに応答して、
    前記特定の情報を格納するために使用される前記セグメントを、異なる開始アドレスを有する異なるセグメントに変更することと、
    前記セグメントが前記異なる開始アドレスを示すように、前記最終アドレスレベルにおいて前記セグメントを更新することと、
    閾値回数、前記最終アドレスレベルにおいて前記セグメントを更新することに応答して、
    前記最終アドレスレベルにおける前記セグメントを、前記最終アドレスレベルにおける異なるセグメントに変更することと、
    前記セグメントが前記最終アドレスレベルにおいて前記異なるセグメントのアドレスのインディケーションを格納するように、前記少なくとも1つの中間レベルにおいて前記セグメントを更新することと、
    をさらに備える、請求項4に記載の方法。
  7. 閾値回数、前記特定の情報を格納するために使用される前記セグメントに上書きすること、及び、閾値回数、前記最終アドレスレベルにおいて前記セグメントを更新することは、
    同じ回数、前記特定の情報を格納するために使用される前記セグメントに上書きすること、及び前記最終アドレスレベルにおいて前記セグメントを更新することを備える、請求項6に記載の方法。
  8. 前記初期化プロセス中に前記マルチレベルアドレッシングスキームを使用する部分として、前記少なくとも1つの中間アドレスレベルに対応するセグメントのウェアレベリングを実行することをさらに備える、請求項3に記載の方法。
  9. 前記少なくとも1つの中間アドレスレベルの前記ウェアレベリングを実行することは、それぞれの回数、前記少なくとも1つの中間アドレスレベルに対応する複数のセグメントの各それぞれのセグメントに上書きして、同じ回数、前記それぞれのセグメントが書き込まれることを備え、
    前記少なくとも1つの中間レベルに対応する前記複数のセグメントのうちの少なくとも1つは、前記特定の情報を格納するために使用されるセグメントが変更される毎に上書きされる、請求項8に記載の方法。
  10. 複数の読み込みを実行することは、
    前記ストレージメモリの第一部分の第一アドレスレベルにおける第一セグメントセットのセグメントのアドレスを、前記ストレージメモリの第二部分の初期アドレスレベルにおけるセグメントから読み込むことと、
    前記ストレージメモリの前記第一部分の第二アドレスレベルにおける第二セグメントセットのセグメントのアドレスを、前記第一セグメントセットの前記セグメントから読み込むことと、
    前記ストレージメモリの第三部分の最終アドレスレベルにおけるセグメントセットのセグメントのアドレスを、前記第二セグメントセットの前記セグメントから読み込み、前記最終アドレスレベルにおける前記特定の情報の前記位置を決定することと、
    を備える、請求項1及び2のいずれか1項に記載の方法。
  11. 前記開始アドレスは、論理から物理へのマッピング情報の開始アドレスを含み、
    前記方法は、
    前記論理から物理へのマッピング情報の前記開始アドレスを、前記最終アドレスレベルの前記セグメントセットの前記セグメントから読み込むことと、
    前記開始アドレスを使用して、前記第一部分の第三セグメントセットのセグメントにおいて論理から物理へのマッピング情報にアクセスすることと、
    をさらに備える、請求項10に記載の方法。
  12. 前記論理から物理へのマッピング情報を使用して、ホストからのユーザデータに対応する論理アドレスを、前記第三部分の追加セグメントの物理アドレスにマッピングすることをさらに備える、請求項11に記載の方法。
  13. ユーザデータを前記追加セグメントに格納することをさらに備える、請求項12に記載の方法。
  14. 前記第一セグメントセットの前記第一セグメントの前記アドレスのコピーを、前記第二部分の前記初期アドレスレベルにおける追加セグメントに書き込むことをさらに備える、請求項10に記載の方法。
  15. 初期アドレスレベル、最終アドレスレベル、及び前記初期アドレスレベルと前記最終アドレスレベルとの間に少なくとも1つの中間アドレスレベルを含む不揮発性ストレージメモリと、
    前記ストレージメモリに結合されるコントローラと、
    を備える装置であって、
    前記コントローラは、
    マルチレベルアドレッシングスキームに従い複数の読み込みを実行し、前記装置の初期化中に初期化情報の位置を決定するように構成され、
    前記複数の読み込みは、
    前記初期アドレスレベルにおいて初期アドレスから中間アドレスを読み込むことと、
    前記少なくとも1つの中間アドレスレベルにおいて前記中間アドレスから最終アドレスを読み込み、前記初期化情報の前記位置を決定することと、
    を含む、前記装置。
  16. 前記情報は、論理から物理へのマッピングテーブルの開始アドレスを含む、請求項15に記載の装置。
  17. 前記複数の読み込みを実行するように構成される前記コントローラは、前記ストレージメモリに格納される命令に応答して前記複数の読み込みを実行するように構成される前記コントローラを含み、
    前記コントローラは、前記命令を更新するように構成される、
    請求項15に記載の装置。
  18. 前記初期アドレスは、前記中間アドレスを格納する、前記中間アドレスレベルにおけるセグメントセットのセグメントのアドレスであり、
    前記コントローラは、前記装置の寿命全体を通して中間アドレスを格納するために、前記セグメントセットを前記中間アドレスレベルに割り振るように構成される、請求項15から17のいずれか1項に記載の装置。
  19. 前記初期アドレスは、前記中間アドレスを格納する、特定のセグメントセットのセグメントのアドレスであり、
    前記コントローラは、特定のセグメントセットの各セグメントが同じ特定の回数書き込まれるまで中間アドレスを格納するために前記特定のセグメントセットを前記中間アドレスレベルに割り振るように、そして前記特定のセグメントセットの各セグメントが前記同じ特定の回数書き込まれることに応答して、中間アドレスを格納するために別のセグメントセットを前記中間アドレスレベルに割り振るように構成される、請求項15から17のいずれか1項に記載の装置。
  20. 不揮発性ストレージメモリと、
    前記メモリに結合されるコントローラと、を備える装置であって、
    前記コントローラは、
    前記装置の初期化中に、前記装置の動作に重要な情報を格納する前記メモリ中の位置を見つける、マルチレベルアドレッシングを実装するように構成され、
    前記コントローラは、
    初期アドレスを格納するように構成される初期アドレスレベルに、前記メモリの第一部分を割り当てることと、
    前記位置を含む最終アドレスレベルに前記メモリの第二部分を割り当てることと、
    前記複数のセグメントセットのそれぞれの前のセグメントセットの各セグメントが同じ回数書き込まれることに応答して、前記初期アドレスレベルと前記最終アドレスレベルとの間の中間アドレスレベルに、前記メモリの第三部分の複数のセグメントセットの異なるセグメントセットを動的に割り当てることであって、前記複数のセグメントセットの各セグメントは前記初期アドレスによってアドレス指定されるように構成され、前記位置のアドレスを格納するように構成される、前記割り当てることと、
    によって、前記マルチレベルアドレッシングを実装するように構成される、前記装置。
  21. 前記コントローラは、
    前記それぞれの前のセグメントセットの各それぞれのセグメントが以前に書き込まれた回数を判定し、以前に最も多い回数書き込まれた前記それぞれの前のセットの特定のセグメントを決定することと、
    前記最も多い回数と、前記特定のセグメントが上書きされる固定された回数との総和である前記同じ回数を決定すること、
    によって、前記同じ回数を決定するように構成される、請求項20に記載の装置。
  22. 前記コントローラは、前記それぞれの前のセグメントセットの各それぞれのセグメントに格納されるそれぞれの書き込みカウントを読み込むことによって、前記それぞれの前のセグメントセットの各それぞれのセグメントが以前に書き込まれた回数を決定するように構成される、請求項21に記載の装置。
JP2020532688A 2017-12-14 2018-11-15 マルチレベルアドレッシング Active JP6908789B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/841,378 US10860474B2 (en) 2017-12-14 2017-12-14 Multilevel addressing
US15/841,378 2017-12-14
PCT/US2018/061201 WO2019118125A1 (en) 2017-12-14 2018-11-15 Multilevel addressing

Publications (2)

Publication Number Publication Date
JP2021507373A true JP2021507373A (ja) 2021-02-22
JP6908789B2 JP6908789B2 (ja) 2021-07-28

Family

ID=66816044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020532688A Active JP6908789B2 (ja) 2017-12-14 2018-11-15 マルチレベルアドレッシング

Country Status (6)

Country Link
US (2) US10860474B2 (ja)
EP (1) EP3724769A4 (ja)
JP (1) JP6908789B2 (ja)
KR (1) KR20200089338A (ja)
CN (1) CN111433748A (ja)
WO (1) WO2019118125A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10732881B1 (en) * 2019-01-30 2020-08-04 Hewlett Packard Enterprise Development Lp Region cloning for deduplication
TWI761748B (zh) 2020-01-06 2022-04-21 慧榮科技股份有限公司 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法
CN113535089B (zh) * 2020-05-22 2024-05-17 长江存储科技有限责任公司 用于ssd的映射表的刷新方法
US11487456B1 (en) 2021-04-23 2022-11-01 Vmware, Inc. Updating stored content in an architecture utilizing a middle map between logical and physical block addresses
US11579786B2 (en) * 2021-04-23 2023-02-14 Vmware, Inc. Architecture utilizing a middle map between logical to physical address mapping to support metadata updates for dynamic block relocation
CN114448890B (zh) * 2021-12-22 2023-10-10 天翼云科技有限公司 寻址方法、装置、电子设备及存储介质
US11797214B2 (en) * 2022-01-04 2023-10-24 Vmware, Inc. Micro-batching metadata updates to reduce transaction journal overhead during snapshot deletion

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
JP4679581B2 (ja) 2005-07-29 2011-04-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
CN101479745B (zh) 2006-07-26 2011-08-03 松下电器产业株式会社 非易失性存储装置、存取装置及非易失性存储系统
JP4349532B2 (ja) 2007-04-11 2009-10-21 エヌイーシーコンピュータテクノ株式会社 メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US20090089515A1 (en) * 2007-10-02 2009-04-02 Qualcomm Incorporated Memory Controller for Performing Memory Block Initialization and Copy
US8166277B2 (en) 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
KR101548175B1 (ko) * 2008-11-05 2015-08-28 삼성전자주식회사 싱글 레벨 메모리 셀 블락과 멀티 레벨 메모리 셀 블락을 포함하는 불휘발성 메모리 장치의 마모 레벨링 방법
US8180995B2 (en) * 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US8566511B2 (en) * 2009-07-23 2013-10-22 Stec, Inc. Solid-state storage device with multi-level addressing
US20110283048A1 (en) 2010-05-11 2011-11-17 Seagate Technology Llc Structured mapping system for a memory device
US8341340B2 (en) 2010-07-21 2012-12-25 Seagate Technology Llc Multi-tier address mapping in flash memory
US8417914B2 (en) * 2011-01-06 2013-04-09 Micron Technology, Inc. Memory address translation
US8631212B2 (en) * 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
EP2761464B1 (en) 2011-09-30 2018-10-24 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes

Also Published As

Publication number Publication date
KR20200089338A (ko) 2020-07-24
JP6908789B2 (ja) 2021-07-28
US20190188124A1 (en) 2019-06-20
US11461228B2 (en) 2022-10-04
EP3724769A4 (en) 2021-09-08
US20210089443A1 (en) 2021-03-25
US10860474B2 (en) 2020-12-08
EP3724769A1 (en) 2020-10-21
CN111433748A (zh) 2020-07-17
WO2019118125A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
JP6908789B2 (ja) マルチレベルアドレッシング
US9842030B2 (en) Data storage device and flash memory control method
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
EP1559016B1 (en) Maintaining erase counts in non-volatile storage systems
KR101383853B1 (ko) 빠른 웨어 레벨링 플래쉬 드라이브
KR101110785B1 (ko) 프로그램 가능한 내구력을 가진 플래시 메모리
US8095724B2 (en) Method of wear leveling for non-volatile memory and apparatus using via shifting windows
US20070255889A1 (en) Non-volatile memory device and method of operating the device
CN108959112B (zh) 存储系统及使用其的损耗均衡方法
EP1559015A1 (en) Method and apparatus for managing an erase count block
EP1559112A1 (en) Maintaining an average erase count in a non-volatile storage system
WO2011086732A1 (en) Storage device management device and method for managing storage device
CN112740189B (zh) 非易失性存储器的多级损耗均衡
CN112534415B (zh) 非易失性存储器中的数据有效性跟踪
CN112689829A (zh) 用于就地数据替代媒体的混合式耗损均衡
CN107045423B (zh) 存储器装置及其数据存取方法
CN112445733A (zh) 存储器系统、存储器控制器以及操作方法
CN107301015B (zh) 用于减少存储器设备上的压力的系统和方法
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP7042930B2 (ja) センチネルセルに基づくデータ整合性の判断
US8762623B2 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
JP2020017134A (ja) 記憶装置及び記憶制御方法
CN107025062B (zh) 数据储存方法及其系统
US20110055459A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
CN112230845B (zh) 存储器子系统中基于子组写计数的损耗均衡

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200629

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210701

R150 Certificate of patent or registration of utility model

Ref document number: 6908789

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150