(57)【要約】実施例において、不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスは、マルチレベルアドレッシングスキームを使用して、初期化プロセス中に決定される。マルチレベルアドレッシングスキームを使用することは、それぞれのアドレスレベルにおいてストレージメモリの複数の読み込みを実行し、特定の情報の位置に対応する開始アドレスを決定することを備えることができる。
2021507373.tif 000002
【特許請求の範囲】
【請求項１】
マルチレベルアドレッシングスキームを使用して初期化プロセス中に装置の不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスを決定することであって、マルチレベルアドレッシングスキームを使用することは、
それぞれのアドレスレベルにおいて前記ストレージメモリの複数の読み込みを実行し、前記特定の情報の前記位置に対応する前記開始アドレスを決定すること、
を含む、前記決定すること、
を備える、方法。
【請求項２】
前記初期化プロセス中に、前記開始アドレスによってアドレス指定される前記ストレージメモリ内の前記位置から前記特定の情報を揮発性メモリに読み込むことをさらに備える、請求項１に記載の方法。
【請求項３】
前記マルチレベルアドレッシングスキームは、初期アドレスレベル、最終アドレスレベル、及び前記初期アドレスレベルと前記最終アドレスレベルとの間に少なくとも１つの中間アドレスレベルを含み、
前記特定の情報の前記位置に対応する前記開始アドレスは、前記最終アドレスレベルにある、請求項１及び２のいずれか１項に記載の方法。
【請求項４】
複数の読み込みを実行することは、
前記初期アドレスレベルにおけるセグメントの読み込みを実行し、前記少なくとも１つの中間アドレスレベルにおけるセグメントのアドレスを決定することと、
前記少なくとも１つの中間アドレスレベルにおける前記セグメントの読み込みを実行し、前記最終アドレスレベルにおけるセグメントのアドレスを決定することであって、前記最終アドレスレベルにおける前記セグメントは前記特定の情報の前記位置に対応する前記開始アドレスを示す、前記決定することと、
を備える、請求項３に記載の方法。
【請求項５】
前記初期アドレスレベルにおける前記セグメントのアドレスは、固定され、前記装置の各初期化の間に使用される、請求項４に記載の方法。
【請求項６】
閾値回数、前記特定の情報を格納するために使用されるセグメントに上書きすることに応答して、
前記特定の情報を格納するために使用される前記セグメントを、異なる開始アドレスを有する異なるセグメントに変更することと、
前記セグメントが前記異なる開始アドレスを示すように、前記最終アドレスレベルにおいて前記セグメントを更新することと、
閾値回数、前記最終アドレスレベルにおいて前記セグメントを更新することに応答して、
前記最終アドレスレベルにおける前記セグメントを、前記最終アドレスレベルにおける異なるセグメントに変更することと、
前記セグメントが前記最終アドレスレベルにおいて前記異なるセグメントのアドレスのインディケーションを格納するように、前記少なくとも１つの中間レベルにおいて前記セグメントを更新することと、
をさらに備える、請求項４に記載の方法。
【請求項７】
閾値回数、前記特定の情報を格納するために使用される前記セグメントに上書きすること、及び、閾値回数、前記最終アドレスレベルにおいて前記セグメントを更新することは、
同じ回数、前記特定の情報を格納するために使用される前記セグメントに上書きすること、及び前記最終アドレスレベルにおいて前記セグメントを更新することを備える、請求項６に記載の方法。
【請求項８】
前記初期化プロセス中に前記マルチレベルアドレッシングスキームを使用する部分として、前記少なくとも１つの中間アドレスレベルに対応するセグメントのウェアレベリングを実行することをさらに備える、請求項３に記載の方法。
【請求項９】
前記少なくとも１つの中間アドレスレベルの前記ウェアレベリングを実行することは、それぞれの回数、前記少なくとも１つの中間アドレスレベルに対応する複数のセグメントの各それぞれのセグメントに上書きして、同じ回数、前記それぞれのセグメントが書き込まれることを備え、
前記少なくとも１つの中間レベルに対応する前記複数のセグメントのうちの少なくとも１つは、前記特定の情報を格納するために使用されるセグメントが変更される毎に上書きされる、請求項８に記載の方法。
【請求項１０】
複数の読み込みを実行することは、
前記ストレージメモリの第一部分の第一アドレスレベルにおける第一セグメントセットのセグメントのアドレスを、前記ストレージメモリの第二部分の初期アドレスレベルにおけるセグメントから読み込むことと、
前記ストレージメモリの前記第一部分の第二アドレスレベルにおける第二セグメントセットのセグメントのアドレスを、前記第一セグメントセットの前記セグメントから読み込むことと、
前記ストレージメモリの第三部分の最終アドレスレベルにおけるセグメントセットのセグメントのアドレスを、前記第二セグメントセットの前記セグメントから読み込み、前記最終アドレスレベルにおける前記特定の情報の前記位置を決定することと、
を備える、請求項１及び２のいずれか１項に記載の方法。
【請求項１１】
前記開始アドレスは、論理から物理へのマッピング情報の開始アドレスを含み、
前記方法は、
前記論理から物理へのマッピング情報の前記開始アドレスを、前記最終アドレスレベルの前記セグメントセットの前記セグメントから読み込むことと、
前記開始アドレスを使用して、前記第一部分の第三セグメントセットのセグメントにおいて論理から物理へのマッピング情報にアクセスすることと、
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記論理から物理へのマッピング情報を使用して、ホストからのユーザデータに対応する論理アドレスを、前記第三部分の追加セグメントの物理アドレスにマッピングすることをさらに備える、請求項１１に記載の方法。
【請求項１３】
ユーザデータを前記追加セグメントに格納することをさらに備える、請求項１２に記載の方法。
【請求項１４】
前記第一セグメントセットの前記第一セグメントの前記アドレスのコピーを、前記第二部分の前記初期アドレスレベルにおける追加セグメントに書き込むことをさらに備える、請求項１０に記載の方法。
【請求項１５】
初期アドレスレベル、最終アドレスレベル、及び前記初期アドレスレベルと前記最終アドレスレベルとの間に少なくとも１つの中間アドレスレベルを含む不揮発性ストレージメモリと、
前記ストレージメモリに結合されるコントローラと、
を備える装置であって、
前記コントローラは、
マルチレベルアドレッシングスキームに従い複数の読み込みを実行し、前記装置の初期化中に初期化情報の位置を決定するように構成され、
前記複数の読み込みは、
前記初期アドレスレベルにおいて初期アドレスから中間アドレスを読み込むことと、
前記少なくとも１つの中間アドレスレベルにおいて前記中間アドレスから最終アドレスを読み込み、前記初期化情報の前記位置を決定することと、
を含む、前記装置。
【請求項１６】
前記情報は、論理から物理へのマッピングテーブルの開始アドレスを含む、請求項１５に記載の装置。
【請求項１７】
前記複数の読み込みを実行するように構成される前記コントローラは、前記ストレージメモリに格納される命令に応答して前記複数の読み込みを実行するように構成される前記コントローラを含み、
前記コントローラは、前記命令を更新するように構成される、
請求項１５に記載の装置。
【請求項１８】
前記初期アドレスは、前記中間アドレスを格納する、前記中間アドレスレベルにおけるセグメントセットのセグメントのアドレスであり、
前記コントローラは、前記装置の寿命全体を通して中間アドレスを格納するために、前記セグメントセットを前記中間アドレスレベルに割り振るように構成される、請求項１５から１７のいずれか１項に記載の装置。
【請求項１９】
前記初期アドレスは、前記中間アドレスを格納する、特定のセグメントセットのセグメントのアドレスであり、
前記コントローラは、特定のセグメントセットの各セグメントが同じ特定の回数書き込まれるまで中間アドレスを格納するために前記特定のセグメントセットを前記中間アドレスレベルに割り振るように、そして前記特定のセグメントセットの各セグメントが前記同じ特定の回数書き込まれることに応答して、中間アドレスを格納するために別のセグメントセットを前記中間アドレスレベルに割り振るように構成される、請求項１５から１７のいずれか１項に記載の装置。
【請求項２０】
不揮発性ストレージメモリと、
前記メモリに結合されるコントローラと、を備える装置であって、
前記コントローラは、
前記装置の初期化中に、前記装置の動作に重要な情報を格納する前記メモリ中の位置を見つける、マルチレベルアドレッシングを実装するように構成され、
前記コントローラは、
初期アドレスを格納するように構成される初期アドレスレベルに、前記メモリの第一部分を割り当てることと、
前記位置を含む最終アドレスレベルに前記メモリの第二部分を割り当てることと、
前記複数のセグメントセットのそれぞれの前のセグメントセットの各セグメントが同じ回数書き込まれることに応答して、前記初期アドレスレベルと前記最終アドレスレベルとの間の中間アドレスレベルに、前記メモリの第三部分の複数のセグメントセットの異なるセグメントセットを動的に割り当てることであって、前記複数のセグメントセットの各セグメントは前記初期アドレスによってアドレス指定されるように構成され、前記位置のアドレスを格納するように構成される、前記割り当てることと、
によって、前記マルチレベルアドレッシングを実装するように構成される、前記装置。
【請求項２１】
前記コントローラは、
前記それぞれの前のセグメントセットの各それぞれのセグメントが以前に書き込まれた回数を判定し、以前に最も多い回数書き込まれた前記それぞれの前のセットの特定のセグメントを決定することと、
前記最も多い回数と、前記特定のセグメントが上書きされる固定された回数との総和である前記同じ回数を決定すること、
によって、前記同じ回数を決定するように構成される、請求項２０に記載の装置。
【請求項２２】
前記コントローラは、前記それぞれの前のセグメントセットの各それぞれのセグメントに格納されるそれぞれの書き込みカウントを読み込むことによって、前記それぞれの前のセグメントセットの各それぞれのセグメントが以前に書き込まれた回数を決定するように構成される、請求項２１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ストレージシステムなどの装置、及びそれらの操作に関し、さらに特に、マルチレベルアドレッシングに関する。
【背景技術】
【０００２】
ストレージシステムは、コンピュータ、携帯電話、ハンドヘルド電子デバイスなどの電子システムに実装されることができる。ソリッドステートドライブ（ＳＳＤ）などのいくつかのストレージシステムは、ホストからのユーザデータを格納するための不揮発性ストレージメモリを含むことができる。不揮発性ストレージメモリは、電力を供給されないときに格納されたデータを保持することによって永続的なデータを提供し、その寿命を通して特定の回数を書き込むことができる他のタイプのメモリのうち、クロスポイントメモリ、ＮＡＮＤフラッシュメモリを含むことができる。ストレージシステムは、ストレージシステムの動作に重要な情報を位置づける、初期化プロシージャを一般に実行する。
【図面の簡単な説明】
【０００３】
【図１Ａ】本開示のいくつかの実施形態に従った、装置のブロック図である。
【図１Ｂ】本開示のいくつかの実施形態に従った、マルチレベルアドレッシングスキームによるストレージメモリの複数の読み込みの実施例を示す。
【図２】本開示のいくつかの実施形態に従った、重要な情報を位置づける方法のフローチャートである。
【図３Ａ】本開示のいくつかの実施形態に従った、ストレージメモリのフラグメントの実施例である。
【図３Ｂ】本開示のいくつかの実施形態に従った、ストレージメモリのフラグメントをウェアレベリングする実施例を示す。
【発明を実施するための形態】
【０００４】
実施例において、不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスは、マルチレベルアドレッシングスキームを使用して初期化プロセス中に決定される。マルチレベルアドレッシングスキームを使用することは、それぞれのアドレスレベルにおいてストレージメモリの複数の読み込みを実行し、特定の情報の位置に対応する開始アドレスを決定することを備えることができる。
【０００５】
以前の手法では、ストレージシステムの動作に重要である初期化情報（例えば、重要な情報）などの特定の情報が格納されるストレージシステムのストレージメモリ中の実際の位置は、初期化中に直接にアドレス指定されることができる。例えば、以前の手法では、重要な情報の実際の物理的位置のアドレスを指定することができるファームウェア等の命令を実行することに応答して、初期化を実行することができる。例えば、以前の手法は、単一レベルの直接アドレッシングを使用して、重要な情報を位置づけることができる。
【０００６】
いくつかの以前の手法は、ストレージシステムがパワーダウンする毎に、例えば、各パワーダウン中に新規の重要な情報をこの位置に書き込むことによって、メモリの単一アドレスレベルにおける位置に新規の重要な情報を格納することができる。例えば、この位置に以前に書き込まれた重要な情報は、新規の重要な情報によって上書きされることができる。
【０００７】
しかしながら、ストレージメモリ中のメモリセルは、メモリセルの寿命の間に特定の回数書き込まれることができ、パワーダウンの数は、特定の回数よりも何桁（例えば、５桁）大きくてもよい。例えば、以前の手法では、ストレージシステムは、単一アドレスレベルにおける位置に重要な情報を、この位置においてメモリセルの寿命中にこの位置が書き込まれることができるよりも多い回数、書き込む必要があり得る。
【０００８】
本開示の実施形態は、マルチレベルの間接的なアドレッシングを実行することによって、ストレージデバイスの初期化中にアドレスによって直接的に指定される、ストレージメモリ中の単一アドレスレベルにおける位置に書き込む問題を解決することによって以前の手法を上回る技術的利点を提供する。例えば、本明細書に開示される実施形態は、ストレージメモリの複数の読み込みを実行することを備えることができるマルチレベルアドレッシングスキームを使用して、装置の初期化中に不揮発性ストレージメモリ内の重要な情報の位置に対応する開始アドレスを決定する。
【０００９】
ストレージシステムは、装置の寿命全体を通して各初期化中に重要な情報の位置を間接的にアドレス指定する同じ初期アドレスを使用することができる。いくつかの実施例では、開示されたストレージシステムは、初期アドレスレベルにおいて初期アドレスを有する位置から中間アドレスを読み込み、中間アドレスレベルで中間アドレスにおける位置から重要な情報の位置のアドレスを読み込み、最終アドレスレベルにおいて重要な情報の位置を決定することができる。
【００１０】
いくつかの実施形態では、初期アドレスを有する位置における中間アドレスは、中間アドレスが変更される毎に変更され、中間アドレスは、重要な情報の位置が変更される毎に変更される。例えば、中間アドレスが変更された回数、及び重要な情報の位置が変更された回数は、ストレージデバイスの寿命中に初期アドレスを有する位置における変更数が閾値回数未満のままであるように選択されることができる。例えば、閾値回数は、初期アドレスがストレージデバイスの寿命中に同じままであることができることを意味する、初期アドレスを有する位置においてメモリセルがそれらの寿命全体を通して書き込まれることができる回数であることができる。
【００１１】
以下の詳細な説明では、本明細書の一部を形成し、例示として特定の実施例が示される添付図面への参照が行われる。図面において、同様の数字は、いくつかの図面全体を通して実質的に同様の構成要素を記述する。本開示の範囲から逸脱することなく、他の実施例を利用することができ、構造的な、また電気的な変更を行うことができる。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は、添付の特許請求の範囲及びそれらの均等物によってのみ定義される。
【００１２】
図１Ａは、本開示のいくつかの実施形態に従った、コンピューティングシステム１００の形式にある装置のブロック図である。コンピューティングシステム１００は、例えば、ソリッドステートドライブ（ＳＳＤ）であることができるストレージシステム１０２を含む。図１Ａの実施例では、ストレージシステム１０２は、ホスト１０４に結合され、とりわけクロスポイントメモリ（例えば、三次元（３Ｄ）クロスポイントメモリ）などの、不揮発性メモリであることができるストレージメモリ１０６を含む。処理デバイスなどのコントローラ１０８（例えば、ＳＳＤコントローラ）は、メモリ１０６に結合される。本明細書に使用される場合、ストレージシステム（例えば、１０２）、コントローラ（例えば、１０８）、及び／またはストレージメモリ（例えば、１０６）は、別々に「装置」とみなされることができる。
【００１３】
いくつかの実施例では、ストレージメモリ１０６は、３Ｄクロスポイントメモリセルなどのクロスポイントメモリセルを含むことができる、３Ｄクロスポイントメモリであってもよく、これらのセルにアクセスするために使用される第一信号線及び第二信号線の交点に（例えば、ワード線及びビット線の交点に）位置していることができる。いくつかのクロスポイントメモリセルは、例えば、抵抗可変メモリセルであることができ、これらの状態（例えば、格納されたデータ値）は、メモリセルのプログラミングされた抵抗に依存する。例えば、メモリセルは、最初に消去されることなく、個別に上書きされることができる抵抗可変メモリセルであることができる。メモリセルは、異なるデータ状態にプログラム可能な材料を含んでもよい。
【００１４】
いくつかの抵抗可変メモリセルは、ストレージ素子（例えば、異なる抵抗レベルにプログラム可能な、相変化材料、金属酸化物材料、及び／またはいくつかの他の材料）と直列で、選択素子（例えば、ダイオード、トランジスタ、または他のスイッチングデバイス）を含むことができる。自己選択型メモリセルと称されることができる、いくつかの可変抵抗メモリセルは、メモリセルについての選択素子及びストレージ素子の両方として機能することができる単一の材料を含む。いくつかの実施例では、メモリセルのそれぞれは、各メモリセルがセレクタデバイス及びメモリ素子の両方として機能することができるように、セレクタ材料（例えば、スイッチング材料）及びストレージ材料として機能することができる材料を含むことができる。例えば、各メモリセルは、さまざまなドープ材料または非ドープ材料から形成されることができる、相変化材料であっても、なくてもよい、及び／またはメモリセルを読み込み中に、及び／または書き込み中に相変化を受ける場合、あるいは受けない場合もある、カルコゲナイド材料を含むことができる。いくつかの実施例では、各メモリセルは、セレン（Ｓｅ）、ヒ素（Ａｓ）、及びゲルマニウム（Ｇｅ）を含有することができる三元組成、シリコン（Ｓｉ）、Ｓｅ、Ａｓ、及びＧｅを含有することができる四元組成などを含むことができる。いくつかの実施例では、ストレージメモリ１０６は、メモリセルの単一ティア（例えば、デッキ）中に、またはメモリセルの複数のティア中に配置されることができる。
【００１５】
いくつかの実施例において、コントローラ１０８は、プリント回路基板に結合される特定用途向け集積回路（ＡＳＩＣ）の形態で実装されることができる、ステートマシン、シーケンサ、及び／またはいくつかの他のタイプの制御回路を含むことができる。コントローラ１０８は、初期化コンポーネント１１０、読み込み専用メモリ（ＲＯＭ）１１４、ウェアレベリングコンポーネント１１６、及び論理アドレスから物理アドレス（例えば、Ｌ２Ｐ）へのマッピングコンポーネント１１８などのマッピングコンポーネントを含む。一例では、ＲＯＭ１１４は、ストレージシステム１０２の初期化中に実行されることができる命令を含むハードウェアコンポーネントであってもよい。コントローラ１０８は、ランダムアクセスメモリ（ＲＡＭ）１１２などの揮発性メモリに結合される。
【００１６】
コントローラ１０８は、いくつかの実施形態に従い、ストレージシステム１０２を初期化するなどの、本明細書に開示される方法を実行するように構成される。例えば、ストレージシステム１０２の初期化中に、初期化コンポーネント１１０は、これらの方法を実行する。初期化コンポーネント１１０は、ストレージメモリ１０６を読み込むためにマルチレベルアドレッシングスキームを使用して、ストレージシステム１０２の動作に重要であるストレージメモリ１０６内の重要な情報の位置に対応する、論理から物理へのマッピング情報の開始アドレスなどの開始アドレスを決定することによって、ストレージシステム１０２を初期化することができる。例えば、初期化コンポーネント１１０は、マルチレベルアドレッシングスキームを使用しながら、ストレージメモリ１０６の複数の読み込みを実行することによって、間接的に重要な情報の位置を決定することができる。いくつかの実施例では、初期化中に、ストレージシステム１０２は、ホスト１０４から、読み込みコマンド及び書き込みコマンドなどのコマンドを許容する準備ができていない場合がある。初期化完了時に、ストレージシステム１０２は、ストレージシステム１０２がホスト１０４からコマンドを許容する準備ができていることを示す準備信号をホスト１０４に送信することができる。
【００１７】
いくつかの実施例では、初期化コンポーネント１１０は、ストレージメモリ１０６に格納される命令（例えば、ファームウェアコード）を実行することに応答して、ストレージシステム１０２を初期化することができる。例えば、初期化コンポーネント１１０は、ストレージメモリ１０６からＲＡＭ１１２中へ命令を読み込み、ＲＡＭ１１２からの命令を実行することができる。
【００１８】
いくつかの実施例では、初期化コンポーネント１１０は、初期化中にストレージメモリ１０６に命令を位置づけることができる。例えば、初期化コンポーネント１１０は、マルチレベルアドレッシングスキームを使用して命令の位置を決定することができる。例えば、初期化コンポーネント１１０は、マルチレベルアドレッシングスキームを使用しながら、ストレージメモリ１０６の複数の読み込みを実行することによって、命令の位置を決定することができる。いくつかの実施例では、初期化コンポーネント１１０は、ＲＯＭ１１４に格納される、ＲＯＭ（例えば、ハードウェア）コードなどの命令を実行することに応答して、複数の読み込みを実行することができる。
【００１９】
図１Ｂは、本開示のいくつかの実施形態に従った、複数のレベルのアドレッシングスキームによるストレージメモリ１０６の複数の読み込みの実施例を示す。例えば、コントローラ１０８は、複数の異なるアドレスレベルをストレージメモリ１０６の部分に割り当てることができる。
【００２０】
初期（例えば、最上位）アドレスレベル１２０をストレージメモリ１０６の部分１２２に割り当てる。最終（例えば、最下位）アドレスレベル１２４をストレージメモリ１０６の部分１２８に割り当てる。複数の（例えば、１つ以上の）中間アドレスレベルを初期アドレスレベル１２０と最終アドレスレベル１２４との間に割り当てる。例えば、中間アドレスレベル１３０及び中間アドレスレベル１３２をストレージメモリ１０６の部分１３４に割り当てる。例えば、アドレスレベル１３０は、アドレスレベル１３２よりも上位のアドレスレベルであることができる。
【００２１】
部分１３４を使用して、Ｌ２ＰテーブルなどのＬ２Ｐマッピング情報を格納することができ、このＬ２Ｐマッピング情報をストレージシステム１０２の初期化中にＬ２Ｐマッピングコンポーネント１１８中にロードすることができる。一例では、ホスト１０４は、ストレージシステム１０２に書き込まれる、またはこのストレージシステム１０２から読み出される、ユーザデータ（例えば、ホストデータ）などのデータに対応する、論理アドレスをコントローラ１０８に送信することができる。次いで、Ｌ２Ｐマッピングコンポーネント１１８は、部分１２８内などの、ストレージメモリ１０６内の物理的位置に対応する物理アドレスに論理アドレスをマッピングすることができる。
【００２２】
ストレージメモリ１０６は、メモリセルのセグメントを含む。セグメントは、ストレージメモリ１０６にアクセスするときにアドレス指定可能な最小単位である。いくつかの実施例では、いくつかのセグメントは、とりわけ、１６バイトまたは６４バイトであることができる。加えて、メモリ１０６は、ホスト１０４からホストデータなどのユーザデータ、及び／または重要な情報を格納するために、５１２バイトまたは４キロバイトセグメントなどのようなセグメントを含むことができる。
【００２３】
部分１２８は、アドレス指定可能なセグメント１３５を含む。例えば、最終アドレスレベル１２４における１セットのセグメント１３５を使用して重要な情報及び／またはユーザデータを格納し、マルチレベルアドレッシングの最終アドレス、及び／またはＬ２Ｐマッピングからの物理アドレスを使用してセグメント１３５をアドレス指定する。例えば、Ｌ２Ｐマッピングコンポーネント１１８は、Ｌ２Ｐマッピング情報を使用して、ユーザデータ及び／または重要な情報を格納するために使用されるセグメント１３５の物理アドレスに論理アドレスをマッピングすることができる。したがって、セグメント１３５は、物理ブロックと称されることができる。いくつかの実施例では、セグメント１３５は、ホスト１０４によって使用されるアドレス指定可能な最小単位であることができ、５１２バイトまたは４キロバイトなどであってもよい。しかしながら、セグメント１３７、１３８、及び１３９などの部分１３４中のセグメント、ならびに部分１２２中のセグメント１４０は、１６バイト、６４バイトなどであってもよく、アドレス指定可能な最小単位であることができる。したがって、図１Ｂに描かれている複数のレベルのアドレッシングスキームは、例えば、アドレスレベル１２０、１３０、及び１３２におけるものと異なるサイズの、アドレスレベル１２４におけるアドレス指定可能な単位を使用することができる。
【００２４】
部分１３４は、中間アドレスレベル１３０においてアドレス指定可能なセグメント１３７、及び中間アドレスレベル１３２においてアドレス指定可能なセグメント１３８を含む。例えば、１セットのセグメント１３８を使用して、最終アドレスレベル１２４にセグメント１３５の最終アドレスを格納する。例えば、１セットのセグメント１３８のセグメント１３８Ｔは、重要な情報を格納するセグメント１３５Ｔの最終アドレスを格納することができる。
【００２５】
１セットのセグメント１３７を使用して、セグメント１３８の中間アドレスを格納する。例えば、１セットのセグメント１３７のセグメント１３７Ｔは、アドレスレベル１３２にセグメント１３８Ｔの中間アドレスを格納することができる。いくつかの実施例では、部分１３４は、Ｌ２Ｐマッピング情報を格納するための１セットのセグメント１３９を含むことができる。
【００２６】
部分１２２は、セグメント１４０を含む。例えば、セグメント１４０を使用して、セグメント１３７の中間アドレスを格納する。例えば、セグメント１４０Ｔは、セグメント１３７Ｔの中間アドレスを格納することができる。いくつかの実施例では、セグメント１４０Ｂは、セグメント１４０Ｔに格納される中間アドレスのコピー（例えば、バックアップコピー）を含むことができる。一例では、中間アドレスレベル１３０は、省略されることができ、その場合、セグメント１４０Ｔは、セグメント１３８Ｔの中間アドレスを格納することができる。他の実施例では、中間アドレスレベル１３０及び１３２に加えて、部分１３４に割り当てられる他の中間アドレスレベルがあることができる。
【００２７】
セグメント１４０Ｔのアドレスは、複数のアドレッシングスキームの初期アドレスであることができる。初期アドレス、したがってセグメント１４０Ｔは、ストレージシステム１０２の寿命のために固定されていてもよい。例えば、初期アドレスは、コンポーネント１１０のレジスタ１１１に格納される、またはファームウェアコードなどのストレージメモリ１０６に格納されることができる。初期アドレスを初期化コンポーネント１１０が使用し、ストレージシステム１０２がストレージシステム１０２の寿命全体を通して初期化される毎にセグメント１４０Ｔの位置を決定することができる。例えば、初期アドレスを使用して、複数のアドレスレベル１２０、１３０、及び１３２を介してセグメント１３５Ｔを間接的にアドレス指定する（例えば、このセグメント１３５Ｔの位置を間接的に決定する）ことができる。
【００２８】
セグメント１４０Ｔに格納され、中間アドレスレベル１３０においてセグメント１３７をアドレス指定するために使用される、中間アドレスは、それらが別のセグメント１３７を使用することに応答して変更することができるという点で可変であることができる。セグメント１３７に格納され、中間アドレスレベル１３２においてセグメント１３８をアドレス指定するために使用される、中間アドレスは、それらが別のセグメント１３８を使用することに応答して変更することができるという点で可変であることができる。セグメント１３８に格納され、最終アドレスレベル１２４においてセグメント１３５をアドレス指定するために使用される、最終アドレスは、それらが別のセグメント１３５を使用することに応答して変更することができるという点で可変であることができる。
【００２９】
初期化コンポーネント１１０は、ストレージシステム１０２を初期化することができる。初期化中に、初期化コンポーネント１１０は、図２においてフローチャートに示される方法２５０を実行し、重要な情報を決定することができる。ブロック２５２において、初期化コンポーネント１１０は、初期アドレスに応答してセグメント１４０Ｔからセグメント１３７Ｔのアドレスを読み込む。ブロック２５４において、初期化コンポーネント１１０は、セグメント１３７Ｔからセグメント１３８Ｔのアドレスを読み込む。ブロック２５６において、初期化コンポーネント１１０は、セグメント１３８Ｔからセグメント１３５Ｔのアドレスを読み込み、重要な情報の位置を位置づける。ブロック２５６において、初期化コンポーネント１１０は、セグメント１３５Ｔから重要な情報を読み込む。
【００３０】
重要な情報は、Ｌ２Ｐマッピング情報の開始アドレスであることができる。例えば、開始アドレスは、部分１３４におけるセグメント１３９Ｓのアドレスであることができる。次いで、初期化コンポーネント１１０は、ＲＡＭ１１２に、開始アドレスから開始するＬ２Ｐマッピング情報を読み込むことができる。
【００３１】
初期化コンポーネント１１０は、アドレスレベル１２４において１セットのセグメント１３５中などの、ストレージメモリ１０６中に格納される命令に応答して重要な情報を決定するために、方法２５０のような方法を実行することができる。初期化の一部として、初期化コンポーネント１１０は、図１Ｂにおける複数の読み込みを使用し、命令を位置づけることができる。
【００３２】
初期化コンポーネント１１０は、初期化中に、ＲＯＭ１１４において命令を実行し、これらの命令をアドレスレベル１２４に位置づけることができる。例えば、ＲＯＭ１１４における初期アドレスは、セグメント１４０をアドレス指定することができる。初期化コンポーネント１１０は、セグメント１４０からセグメント１３７のアドレスを読み込むことができる。初期化コンポーネント１１０は、セグメント１３７からセグメント１３８のアドレスを読み込んだ後に、セグメント１３８から、これらの命令を含むことができるセグメント１３５のアドレスを読み込むことができる。次いで、初期化コンポーネント１１０は、前述されるように、重要な情報を位置づける命令を実行することができる。いくつかの実施例において、コントローラ１０８は、セグメント１３５内の命令を更新することができ、初期化コンポーネントは、前述されるように、複数のアドレス指定を使用して更新された命令を取得することができる。
【００３３】
図１Ｂと組み合わせて前述されるセグメントは、それらの寿命中に閾値回数書き込まれることができ、その寿命後、それらのセグメントは、他のセグメントによって置換されることができる。例えば、セグメント内のメモリセル、したがってセグメントは、最初に消去されずに、及び／または移動せずに、それらが閾値回数書き込まれるまで、直接上書きされることができる。
【００３４】
セグメント１３５Ｔなどのセグメント１３５内の重要な情報は、ストレージシステム１０２の寿命全体を通して、各パワーダウン中に、またはストレージシステム１０２の連続したパワーダウンの間に複数回、書き込まれることができる。加えて、ユーザデータは、連続したパワーダウンの間にセグメント１３５に書き込まれてもよい。しかしながら、パワーダウンの数は、セグメント１３５が書き込まれることができる閾値回数よりも多くてもよい。したがって、重要な情報及びユーザデータがストレージシステム１０２の寿命中に書き込まれる回数は、セグメント１３５が書き込まれることができる閾値回数よりも多い、数（例えば、約５以上の）桁など、さらに多いことが予期される。したがって、ある特定の回数、重要なファームウェア情報などの重要な情報、またはユーザデータをそれぞれセグメント１３５Ｔに書き込むことに応答して、セグメント１３５Ｔのアドレスは、Ｌ２Ｐマッピング情報を現在格納している、セグメント１３８Ｔか、１セットのセグメント１３９のセグメントのうちの１つかのいずれか一方の中で、セグメント１３５Ｔのアドレスに新規のアドレスを上書きすることによって新規のセグメント１３５の新規のアドレスに変更される（例えば、更新される）ことができる。新規のセグメント１３５を使用して、新規のセグメント１３５がある特定の回数書き込まれるまで重要な情報またはユーザデータを格納することができ、その時点で、新規のセグメントは、Ｌ２Ｐマッピング情報を現在格納している、セグメント１３８Ｔ、または１セットのセグメント１３９のセグメントかのいずれか一方の中に、新規のセグメント１３５のアドレスに異なる新規のセグメント１３５の異なる新規のアドレスを上書きすることによって、異なる新規のセグメントに変更される。
【００３５】
コントローラ１０８は、重要な情報及びユーザデータがストレージシステム１０２の寿命中に書き込まれる所期の回数よりも多い、潜在的な書き込みの合計数を有する、複数のセグメント１３５をアドレスレベル１２４に割り振ることができる。例えば、割り振られたセグメント１３５の数は、各それぞれのセグメント１３５がそれぞれのセグメント１３５の寿命中に書き込まれる所期の回数によって除算される、重要な情報及びユーザデータがストレージシステム１０２の寿命中に書き込まれる所期の回数よりも少なくとも多い場合がある。コントローラ１０８は、ストレージシステム１０２の寿命全体を通して固定されるアドレスレベル１２４においてセグメント１３５の数を保持することができる。例えば、コントローラ１０８は、セグメント１３５の数を静的に割り振ることができる。
【００３６】
セグメント１３８Ｔは、それが閾値回数書き込まれるまで上書きされることができる。したがって、セグメント１３８Ｔに閾値回数書き込むことに応答して、セグメント１３８Ｔのアドレスに新規のアドレスを上書きすることによって、セグメント１３７Ｔにおけるセグメント１３８Ｔのアドレスを新規のセグメント１３８の新規のアドレスに変更することにより、セグメント１３８Ｔから新規のセグメント１３８に変更することができる。
【００３７】
コントローラ１０８は、重要な情報及びユーザデータがストレージシステム１０２の寿命中に書き込まれる所期の回数よりも多い、潜在的な書き込みの合計数を有する、１セットのセグメント１３７の複数のセグメント１３７をアドレスレベル１３０に、１セットセグメント１３８の複数のセグメント１３８をアドレスレベル１３２に、そして１セットのセグメント１３９の複数のセグメント１３９を部分１３４に割り振ることができる。例えば、コントローラ１０８は、重要な情報を格納するために使用されるセグメント１３５の数よりも多い、潜在的な書き込みの合計数を有する、１セットのセグメント１３８の複数のセグメント１３８を部分１３４に割り振ることができる。このセット中のセグメント１３８の数は、例えば、各それぞれのセグメント１３８がそれぞれのセグメント１３８の寿命中に書き込まれる所期の回数によって除算される、Ｆｗの重要な情報を格納するために使用される少なくともセグメント１３５の数よりも多いと判定されることができる。コントローラ１０８は、ストレージシステム１０２の寿命全体を通して固定されるアドレスレベル１３２に、このセットのセグメント１３８の数を保持することができる。例えば、コントローラ１０８は、このセットのセグメント１３８の数を静的に割り振ることができる。
【００３８】
セグメント１３７Ｔは、それが閾値回数書き込まれるまで上書きされることができる。したがって、セグメント１３７Ｔに閾値回数書き込むことに応答して、セグメント１３７Ｔのアドレスに新規のアドレスを上書きすることによって、セグメント１４０Ｔにおけるセグメント１３７Ｔのアドレスを新規のセグメント１３７の新規のアドレスに変更することにより、セグメント１３７Ｔから新規のセグメント１３７に変更することができる。セグメント１４０Ｔに以前に書き込まれたセグメント１３７の前のアドレスは、例えば、セグメント１４０Ｔ中の前のアドレスに新規のアドレスを上書きすることによって、新規のセグメント１３７が使用される毎に、新規のセグメント１３７の新規のアドレスに変更されることができる。しかしながら、前述されるような複数のアドレスレベルを使用することにより、セグメント１４０Ｔが書き込まれることができる閾値回数を下回るセグメント１４０Ｔへの書き込みの数を保持することができることによって、ストレージシステム１０２の寿命中にセグメント１４０Ｔを使用することが可能である。
【００３９】
いくつかの実施例において、コントローラ１０８は、セグメント１３５、１３７、１３８、及び１４０に、またはセグメント１３５、１３７、１３８、及び１４０に対応するテーブル中のエントリに、格納されることができる書き込みカウントを維持することによって、セグメント１３５、１３７、１３８、及び１４０が書き込まれた回数を追跡することができ、このテーブルは、ストレージメモリ１０６に格納されることができる。
【００４０】
いくつかの実施例において、コントローラ１０８は、セグメント１３７の複数のセットのうちのセグメント１３７のセット（例えば、フラグメント）をアドレスレベル１３０に、そしてセグメント１３８の複数のセットのうちのセグメント１３８のセット（例えば、フラグメント）をアドレスレベル１３２に動的に割り当てることができる。例えば、初期化コンポーネント１１０は、バックグラウンド動作中にストレージメモリ１０６の他のウェアレベリングを実行するウェアレベリングコンポーネント１１６に加えて、バックグラウンド動作中に実行されないウェアレベリングの部分として初期化中にセグメント１３７のセット、及び／またはセグメント１３８のセットを動的に割り当てることができる。いくつかの実施例では、初期化コンポーネント１１０は、以前に動的に割り当てられた１セットのセグメントがウェアレベリングされ、解放されることに応答して、異なる１セットのセグメントを動的に割り当てることができる。例えば、１セットのセグメントは、これらのセグメントが共通の（例えば、同じ）回数書き込まれたときに、ウェアレベリングされることができる。
【００４１】
図３Ａは、セグメント３６２−０から３６２−Ｎなどのセグメント３６２のフラグメント３６０の一例を示す。フラグメント３６０は、バックグラウンド動作中に実行されないウェアレベリングの一部として初期化中に初期化コンポーネント１１０によって、アドレスレベル１３０及び／またはアドレスレベル１３２などの中間アドレスレベルに動的に割り当てられることができる。例えば、フラグメント３６０は、アドレスレベル１３０における複数のフラグメントのうちの１つであることができる、及び／またはアドレスレベル１３２における複数のフラグメントのうちの１つであることができる。
【００４２】
各それぞれのセグメント３６２は、ストレージ領域３６７を含む。例えば、セグメント３６２−０から３６２−Ｎは、ストレージ領域３６７−０から３６７−Ｎをそれぞれ含む。各それぞれのセグメント３６２は、書き込みカウントＷｒｔＣｎｔを格納するように構成される書き込みカウント領域３６９を含む。例えば、セグメント３６２−０から３６２−Ｎは、書き込みカウントＷｒｔＣｎｔ（０）からＷｒｔＣｎｔ（Ｎ）を格納するようにそれぞれ構成される、書き込みカウント領域３６９−０から３６９−Ｎをそれぞれ含む。
【００４３】
セグメント３６２は、上位アドレスレベルに格納されるアドレスによってアドレス指定されてもよい。ストレージ領域３６７は、下位アドレスレベルのアドレスを格納してもよいし、最初に消去されずに、または移動せずに新規のアドレスで上書きされてもよい。いくつかの実施例では、それぞれのセグメント３６２は、上位アドレスレベルに格納されることができ、フラグメントアドレス及びそれぞれのオフセットによってアドレス指定されることができる。
【００４４】
それぞれの書き込みカウントＷｒｔＣｎｔは、それぞれのセグメント上で実行される複数の書き込みであってもよい。例えば、それぞれの書き込みカウントＷｒｔＣｎｔ（０）からＷｒｔＣｎｔ（Ｎ）は、それぞれのセグメント３６２−０から３６２−Ｎ上で実行されるそれぞれの書き込み数であってもよい。いくつかの実施例において、コントローラ１０８は、それぞれのストレージ領域３６７が上書きされる毎にそれぞれの書き込みカウントＷｒｔＣｎｔをインクリメントすることができる。他の実施例では、コントローラ１０８は、ストレージシステム１０２が初期化されるときからパワーダウンされる直前の間に、それぞれのストレージ領域３６７の複数の上書きを追跡することができ、そして各パワーダウン中に、上書き数によってそれぞれの書き込みカウントＷｒｔＣｎｔをインクリメントすることができる。一例では、書き込みカウントＷｒｔＣｎｔは、セグメント３６２から省略されることができ、コントローラ１０８は、ストレージメモリ１０６に格納されることができるテーブル内の各セグメント３６２について書き込みカウントを格納することができる。
【００４５】
いくつかの実施例では、フラグメント３６０は、フラグメント３６０が前もって書き込まれる前に、動的に割り当てられることができる。これらのような実施例では、各セグメントが同じ所定の回数書き込まれた場合、各セグメントが同じ所定の回数書き込まれ、解放されることができる。別のフラグメントは、フラグメント３６０の各セグメントが同じ所定の回数書き込まれることに応答して、フラグメント３６０を置換するように動的に割り当てられることができる。
【００４６】
他の実施例では、フラグメント３６０が前もって書き込まれた後に、例えば、セグメント３６２−０から３６２−Ｎがそれぞれの異なる回数、それぞれ前もって書き込まれた後に、フラグメント３６０は、動的に割り当てられることができる。図３Ｂは、本開示のいくつかの実施形態に従った、フラグメント３６０をウェアレベリングする（例えば、ストレージシステム１０２の初期化中に）実施例を示す。
【００４７】
図３Ｂは、フラグメント３６０が最初に動的に割り当てられるときのフラグメント３６０の初期状態、及びセグメント３６２−０から３６２−Ｎのそれぞれに書き込みカウントＷｒｔＣｎｔ（０）からＷｒｔＣｎｔ（Ｎ）の対応する初期値を示す。例えば、書き込みカウントのそれぞれの初期値は、それぞれのセグメント３６２−０から３６２−Ｎが割り当ての時点で前もって書き込まれた回数である。図３Ｂの実施例では、書き込みカウントＷｒｔＣｎｔ（０）からＷｒｔＣｎｔ（Ｎ）の初期値は、それぞれＭ、Ｐ、及びｍである。
【００４８】
図３Ｂは、フラグメント３６０のウェアレベリングされた状態、及び書き込みカウントＷｒｔＣｎｔ（０）からＷｒｔＣｎｔ（Ｎ）の対応する共通のウェアレベリングされた値をさらに示す。例えば、ウェアレベリングされた状態において、書き込みカウントＷｒｔＣｎｔ（０）からＷｒｔＣｎｔ（Ｎ）のすべては、同じウェアレベリングされた値を含み、フラグメント３６０は、解放される直前であり、その後、別のフラグメント３６０によって置換される。例えば、ウェアレベリングされた値は、セグメントがそれらの寿命の間に書き込まれることができる閾値回数を下回ってもよい。
【００４９】
図３Ｂの実施例では、ウェアレベリングは、ウェアレベリングされた状態についての書き込みカウントの共通のウェアレベリングされた値を決定するコントローラ１０８を含む。コントローラ１０８は、最も多い回数以前に書き込まれたフラグメント３６０のセグメント３６２を決定することによって、共通のウェアレベリングされた値を決定することができる。例えば、コントローラ１０８は、書き込みカウントの初期値を読み込み（例えば、それぞれの書き込みカウント領域３６９から）、書き込みカウントの初期値の最大値を決定することができる。例えば、コントローラ１０８は、Ｍ、Ｐ、及びｍ（例えば、Ｍ）の最大値、及び対応するセグメント（例えば、セグメント３６２−０）を決定することができる。
【００５０】
次いで、コントローラ１０８は、Ｍに「Ｆｉｘｅｄ」される、固定された数を追加することによって共通のウェアレベリングされた値を決定することができるため、共通のウェアレベリングされた値は、Ｍ＋Ｆｉｘｅｄであり、式中、Ｆｉｘｅｄは、セグメント３６２−０がウェアレベリング中に上書きされる回数である。いくつかの実施例では、固定された数を選択した結果、共通のウェアレベリングされた値Ｍ＋Ｆｉｘｅｄが、セグメントがそれらの寿命中に書き込まれることができる閾値回数を下回り、ウェアレベリングされたフラグメント３６０は、それが解放された後に、動的に再割り当てされることができる（例えば、アドレスを中間レベルに格納するために）。
【００５１】
次いで、コントローラ１０８は、それぞれの残りのセグメント３６２−１から３６２−Ｎのそれぞれがウェアレベリング中に上書きされる回数を決定することができる。例えば、各それぞれの残りのセグメントが上書きされるそれぞれの回数は、共通の回数から、それぞれの残りのセグメントの書き込みカウントのそれぞれの初期値を減算したものである。例えば、セグメント３２６−１は、Ｆｉｘｅｄ＋Ｍ−Ｐ回、上書きされることができ、セグメント３２６−Ｎは、Ｆｉｘｅｄ＋Ｍ−ｍ回、上書きされることができる。各それぞれの残りのセグメントの各それぞれの書き込みカウントのウェアレベリングされた値は、それぞれの残りのセグメントのそれぞれの書き込みカウントの初期値に、それぞれの残りのセグメントが上書きされるそれぞれの回数を加算したものであることに留意する。例えば、セグメント３６２−１の書き込みカウントＷｒｔＣｎｔ（１）のウェアレベリングされた値は、Ｐ＋Ｆｉｘｅｄ＋Ｍ−Ｐ＝Ｆｉｘｅｄ＋Ｍであり、セグメント３６２−Ｎの書き込みカウントＷｒｔＣｎｔ（Ｎ）のウェアレベリングされた値は、ｍ＋Ｆｉｘｅｄ＋Ｍ−ｍ＝Ｆｉｘｅｄ＋Ｍである。
【００５２】
特定の実施例が本明細書で例示及び説明されてきたが、当業者は、同一の結果を達成するように推測される構成が、示される特定の実施形態と置き換えられることができることを認識するであろう。本開示は、本開示の１つ以上の実施形態の適合または変形を網羅することを意図している。上記説明が例示の方式で行われており、限定的な一つではないことが理解されよう。本開示の１つ以上の実施例の範囲は、添付の特許請求の範囲によって権利が与えられる均等物の全体の範囲に沿って、そのような特許請求の範囲を参照して判定されるべきである。
【図１Ａ】
2021507373.tif 000003
【図１Ｂ】
2021507373.tif 000004
【図２】
2021507373.tif 000005
【図３Ａ】
2021507373.tif 000006
【図３Ｂ】
2021507373.tif 000007
【手続補正書】
【提出日】令和2年6月30日(2020.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチレベルアドレッシングスキームを使用して初期化プロセス中に装置の不揮発性ストレージメモリ内の特定の情報の位置に対応する開始アドレスを決定することを備える方法であって、
前記マルチレベルアドレッシングスキームを使用することは、
それぞれのアドレスレベルにおいて前記ストレージメモリの複数の読み込みを実行し、前記特定の情報の前記位置に対応する前記開始アドレスを決定すること、
を含み、
前記それぞれのアドレスレベルは、前記不揮発性ストレージメモリの第一部分に割り当てられる初期アドレスレベル、前記不揮発性ストレージメモリの第二部分に割り当てられる最終アドレスレベル、及び前記初期アドレスレベルと前記最終アドレスレベルとの間にあり、前記不揮発性ストレージメモリの第三部分に割り当てられる中間アドレスレベルを含み、
前記ストレージメモリの前記複数の読み込みを実行することは、
前記不揮発性ストレージメモリの前記第一部分においてセグメントの読み込みを実行し、前記不揮発性ストレージメモリの前記第三部分においてセグメントのアドレスを決定することであって、前記第三部分の前記セグメントは前記第二部分におけるセグメントセット中のセグメントのアドレスを格納するために使用される前記第三部分におけるセグメントセット中のセグメントである、前記決定することと、
前記不揮発性ストレージメモリの前記第三部分において前記セグメントの読み込みを実行し、前記不揮発性ストレージメモリの前記第二部分における前記セグメントのアドレスを決定することであって、前記不揮発性ストレージメモリの前記第二部分の前記セグメントは、前記初期化情報を格納するために使用される前記第二部分における前記セグメントセット中のセグメントであり、前記特定の情報の前記位置に対応する前記開始アドレスを示す、前記決定することと、
コントローラによって前記セグメントセットのセグメントの数を前記第二部分に割り振り、重要な情報及びユーザデータが前記不揮発性ストレージメモリの寿命中に書き込まれる所期の回数より多い潜在的な書き込み数に適応させることと、
を含む、前記方法。
【請求項２】
前記初期化プロセス中に、前記開始アドレスによってアドレス指定される前記ストレージメモリ内の前記位置から前記特定の情報を揮発性メモリに読み込むことをさらに備える、請求項１に記載の方法。
【請求項３】
前記不揮発性ストレージメモリの前記第一部分の前記セグメントのアドレスは、固定され、前記装置の各初期化中に使用される、請求項１に記載の方法。
【請求項４】
前記不揮発性ストレージメモリの前記第二部分の前記セグメントを閾値回数更新することに応答して、
前記不揮発性ストレージメモリの前記第二部分の前記セグメントを前記不揮発性ストレージメモリの前記第二部分の異なるセグメントに変更することと、
前記不揮発性ストレージメモリの前記第三部分の前記セグメントが、前記不揮発性ストレージメモリの前記第二部分の前記異なるセグメントのアドレスのインディケーションを格納するように、前記不揮発性ストレージメモリの前記第三部分の前記セグメントを更新することと、
をさらに備える、請求項１に記載の方法。
【請求項５】
前記初期化プロセス中に前記マルチレベルアドレッシングスキームを使用する部分として、前記不揮発性ストレージメモリの前記第三部分のウェアレベリングを実行することをさらに備える、請求項１に記載の方法。
【請求項６】
前記不揮発性ストレージメモリの前記第三部分の前記ウェアレベリングを実行することは、それぞれの回数、前記不揮発性ストレージメモリの前記第三部分の複数のセグメントの各それぞれのセグメントに上書きし、同じ回数、前記それぞれのセグメントが書き込まれることを備え、
前記不揮発性ストレージメモリの前記第三部分の前記複数のセグメントのうちの少なくとも１つは、前記特定の情報を格納するために使用される前記不揮発性ストレージメモリの前記第二部分のセグメントが変更される毎に上書きされる、請求項５に記載の方法。
【請求項７】
前記開始アドレスは、論理から物理へのマッピング情報の開始アドレスを含み、
前記方法は、
前記論理から物理へのマッピング情報の前記開始アドレスを、前記不揮発性ストレージメモリの前記第二部分の前記セグメントから読み込むことと、
前記開始アドレスを使用して、前記不揮発性ストレージメモリの前記第三部分のセグメントセットのセグメントにおいて論理から物理へのマッピング情報にアクセスすることと、
をさらに備える、請求項１に記載の方法。
【請求項８】
前記論理から物理へのマッピング情報を使用して、ホストからのユーザデータに対応する論理アドレスを、前記不揮発性ストレージメモリの前記第二部分の追加セグメントの物理アドレスにマッピングすることをさらに備える、請求項７に記載の方法。
【請求項９】
前記ユーザデータを前記追加セグメントに格納することをさらに備える、請求項８に記載の方法。
【請求項１０】
前記不揮発性ストレージメモリの前記第三部分中の前記セグメントの前記アドレスのコピーを、前記不揮発性ストレージメモリの前記第一部分の追加セグメントに書き込むことをさらに備える、請求項１に記載の方法。
【請求項１１】
第一、第二、及び第三部分を含む不揮発性ストレージメモリであって、初期アドレスレベルは前記第一部分に割り当てられ、最終アドレスレベルは前記第二部分に割り当てられ、前記初期アドレスレベルと前記最終アドレスレベルとの間の中間アドレスレベルは前記第三部分に割り当てられる、前記不揮発性ストレージメモリと、
前記不揮発性ストレージメモリに結合されるコントローラと、
を備える装置であって、
前記コントローラは、マルチレベルアドレッシングスキームに従い前記不揮発性ストレージメモリの複数の読み込みを実行し、前記装置の初期化中に初期化情報の位置を決定するように構成され、
前記複数の読み込みは、
前記不揮発性ストレージメモリの前記第三部分のセグメントのアドレスを決定する前記第一部分のセグメントの読み込みであって、前記第三部分の前記セグメントは前記第二部分のセグメントセットのセグメントのアドレスを格納するために使用される前記第三部分におけるセグメントセット中のセグメントである、前記読み込みと、
前記第二部分の前記セグメントセットのセグメントのアドレスを決定し、前記初期化情報の前記位置を決定する前記第三部分の前記セグメントの読み込みであって、前記不揮発性ストレージメモリの前記第二部分の前記セグメントは前記初期化情報を格納するために使用される前記第二部分の前記セグメントセットのセグメントである、前記読み込みと、
を含み、
前記コントローラは、前記セグメントセットのセグメントの数を前記第三部分に割り振り、前記第二部分の前記セグメントセットのセグメントの数より多い潜在的な書き込みの合計数に適応させるように構成される、前記装置。
【請求項１２】
前記初期化情報は、論理から物理へのマッピングテーブルの開始アドレスを含む、請求項１１に記載の装置。
【請求項１３】
前記複数の読み込みを実行するように構成される前記コントローラは、前記ストレージメモリに格納される命令に応答して前記複数の読み込みを実行するように構成される前記コントローラを含み、
前記コントローラは、前記命令を更新するように構成される、
請求項１１に記載の装置。
【請求項１４】
前記第三部分の前記セグメントは、前記第二部分において前記セグメントセット中の前記セグメントのアドレスを格納するために使用される前記第三部分における第一セグメントセット中のセグメントであり、
前記コントローラは、
前記第三部分において前記第一セグメントセット中の各セグメントが同じ特定の回数書き込まれるまで、前記第三部分の前記第一セグメントセットを前記中間アドレスレベルに割り振り、前記第二部分において前記セグメントセット中の前記セグメントの前記アドレスを格納するように構成され、
前記第三部分における前記第一セグメントセット中の各セグメントが前記同じ特定の回数書き込まれることに応答して、前記第三部分の第二セグメントセットを前記中間アドレスレベルに割り振り、前記第二部分において前記セグメントセット中の前記セグメントの前記アドレスを格納するように構成される、
請求項１１から１３のいずれか１項に記載の装置。
【請求項１５】
不揮発性ストレージメモリと、
前記不揮発性ストレージメモリに結合されるコントローラと、を備える装置であって、
前記コントローラは、
前記装置の初期化中に、前記装置の動作に重要な情報を格納する前記不揮発性ストレージメモリ中の位置を見つける、マルチレベルアドレッシングを実装するように構成され、
前記コントローラは、
前記不揮発性ストレージメモリの第一部分を初期アドレスレベルに割り当てること、
前記不揮発性ストレージメモリの第二部分を最終アドレスレベルに割り当てること、
前記複数のセグメントセットのそれぞれの前のセグメントセットの各セグメントが同じ回数書き込まれることに応答して、前記初期アドレスレベルと前記最終アドレスレベルとの間の中間アドレスレベルに、前記不揮発性ストレージメモリの第三部分の複数のセグメントセットの異なるセグメントセットを動的に割り当てること、
前記第一部分のセグメントの読み込みを実行し、前記第三部分の動的に割り当てられたセグメントセットのセグメントのアドレスを決定すること、及び
前記第三部分の前記動的に割り当てられたセグメントセットの前記セグメントの読み込みを実行し、前記第二部分のセグメントのアドレスを決定し、前記装置の前記動作に重要な前記情報を格納する前記不揮発性ストレージメモリ中の前記位置を決定すること、
によって前記マルチレベルアドレッシングを実装するように構成され、
前記第二部分の前記セグメントは、前記最終アドレスレベルにおける複数のセグメントのうちの１つであり、
前記最終アドレスレベルにおける前記複数のセグメントは、重要な情報及びユーザデータが前記不揮発性ストレージメモリの寿命中に書き込まれる所期の回数より多い潜在的な書き込み数に適応させるように割り振られる、前記装置。
【請求項１６】
前記コントローラは、
前記それぞれの前のセグメントセットの各それぞれのセグメントが以前に書き込まれた回数を判定し、以前に最も多い回数書き込まれた前記それぞれの前のセットの特定のセグメントを決定することと、
前記最も多い回数と、前記特定のセグメントが上書きされる固定された回数との総和である前記同じ回数を決定すること、
によって、前記同じ回数を決定するように構成される、請求項１５に記載の装置。
【請求項１７】
前記コントローラは、前記それぞれの前のセグメントセットの各それぞれのセグメントに格納されるそれぞれの書き込みカウントを読み込むことによって、前記それぞれの前のセグメントセットの各それぞれのセグメントが以前に書き込まれた回数を決定するように構成される、請求項１６に記載の装置。
【国際調査報告】
2021507373.tif 000008
2021507373.tif 000009