(57)【要約】本開示はメモリにおけるトランザクションログ復元のための方法を含む。１つの係る方法は、トランザクションログ内に保存されたいくつかのエントリーを調べ、それにより書き込みパターンを判定することと、書き込みパターンに基づいてメモリを読み出すことと、トランザクションログを、書き込みパターンに基づいてメモリから読み出されたデータに関連付けられた情報で更新することと、論理アドレス（ＬＡ）テーブルを、トランザクションログを用いて更新することと、を含む。【選択図】図２
2013544414.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションログに保存されたいくつかのエントリーを調べ、それにより書き込みパターンを判定することと、
前記書き込みパターンに基づいて前記メモリを読み出すことと、
前記書き込みパターンに基づいて前記メモリから読み出されたデータに関連付けられた情報で前記トランザクションログを更新することと、
前記トランザクションログを用いて論理アドレス（ＬＡ）テーブルを更新することと、
を含む、トランザクションログ復元のための方法。
【請求項２】
前記書き込みパターンに基づいて前記メモリを読み出すことはメモリにおけるページを読み出すことを含む、請求項１に記載の方法。
【請求項３】
前記トランザクションログは、データが前記メモリに最近書き込まれた位置に関する情報を含む、請求項１から請求項２のいずれか１つに記載の方法。
【請求項４】
前記トランザクションログは、更新される前に読み出された前記ページに関連付けられた情報を有さなかった、請求項２に記載の方法。
【請求項５】
前記トランザクションログを更新することは、前記トランザクションログを、データを含むメモリにおいて読み出されたページに関連付けられた情報で更新することを含む、請求項２に記載の方法。
【請求項６】
前記メモリを読み出すことは、消去ページが見出されるまで前記書き込みパターンに基づく順序で前記メモリにおけるページを読み出すことを含む、請求項１から請求項２のいずれか１つに記載の方法。
【請求項７】
いくつかのブロックの第１ページおよび最終ページを読み出すことにより部分的に書き込まれたブロックの位置を特定することと、前記書き込みパターンに基づく順序で前記メモリにおいて読み出された前記ページが消去ページを含まないブロックにあるときに前記部分的に書き込まれたブロックに含まれるデータのタイプを判定することとをさらに含む、請求項２に記載の方法。
【請求項８】
ホストデータを含む前記部分的に書き込まれたブロックのページを読み出すことをさらに含む、請求項７に記載の方法。
【請求項９】
データを含む前記部分的に書き込まれたブロックにおいて読み出されたページに関連付けられた情報で前記トランザクションログを更新することをさらに含む、請求項８に記載の方法。
【請求項１０】
メモリシステムを操作するための方法であって、
書き込みパターンに基づく順序でトランザクションログにおける関連付けられたデータを有さない前記メモリシステムにおけるページを読み出すことと、
前記書き込みパターンに基づいて読み出された前記ページに関連付けられた情報でトランザクションログを更新することと、
前記更新されたトランザクションログを用いて不揮発性メモリにおける論理アドレス（ＬＡ）テーブルを更新することと、
を含む方法。
【請求項１１】
電源中断の前に前記ＬＡテーブルを周期的に前記不揮発性メモリに格納することをさらに含み、前記格納されたＬＡテーブルは揮発性メモリにおけるＬＡテーブルのコピーである、請求項１０に記載の方法。
【請求項１２】
前記揮発性メモリにおける前記ＬＡテーブルは前記メモリシステムにおける各書き込み動作後に更新される、請求項１１に記載の方法。
【請求項１３】
前記ＬＡテーブルを更新する前に、不揮発性メモリにおける前記ＬＡテーブルは、前記ＬＡテーブルが不揮発性メモリに格納された最終時間と電源中断との間で実行された書き込み動作に関する情報を含まない、請求項１１に記載の方法。
【請求項１４】
電源中断後に前記メモリシステムの電源投入時に前記更新されたＬＡテーブルを揮発性メモリにコピーすることをさらに含む、請求項１０から請求項１１のいずれか１つに記載の方法。
【請求項１５】
前記書き込みパターンは、前記メモリシステムにおけるどの位置にデータを書き込むかを判定する書き込みパターンアルゴリズムに基づく、請求項１０から請求項１１のいずれか１つに記載の方法。
【請求項１６】
前記書き込みパターンは、データが次に書き込まれたであろう前記メモリシステムにおける位置に関する情報を含む、請求項１５に記載の方法。
【請求項１７】
前記方法は、前記書き込みパターンに基づいて読み出された前記ページにおいて実行された有効書き込みを検証することを含む、請求項１６に記載の方法。
【請求項１８】
書き込みパターンに基づく順序でページを読み出し、それにより不揮発性メモリにおけるトランザクションログまたは論理アドレス（ＬＡ）テーブルになかった書き込み動作情報を見出すことと、
前記見出された書き込み動作情報を用いて前記トランザクションログを更新することと、
前記更新されたトランザクションログを用いて不揮発性メモリにおける前記ＬＡテーブルを更新することと、
前記ＬＡテーブルを揮発性メモリに格納することと、
を含む、メモリシステムにおけるトランザクションログ復元のための方法。
【請求項１９】
前記書き込み動作に関する情報を見出すことは、データが次に前記メモリシステムにおいて書き込まれたであろう位置を前記書き込みパターンから判定することを含む、請求項１８に記載の方法。
【請求項２０】
前記データが次に書き込まれたであろう前記位置を判定することは書き込みパターンアルゴリズムを用いることを含む、請求項１９に記載の方法。
【請求項２１】
前記トランザクションログを更新することは前記電源中断後に破損した前記トランザクションログの最終ページを更新することを含む、請求項１８から請求項１９のいずれか１つに記載の方法。
【請求項２２】
前記方法は前記ＬＡテーブルのコピーを周期的に前記揮発性メモリに格納することを含む、請求項１８から請求項１９のいずれか１つに記載の方法。
【請求項２３】
前記方法は、前記ＬＡテーブルのコピーを前記不揮発性メモリに格納した後に実行された動作に対する読み出し動作および書き込み動作に関する情報を前記トランザクションログに記録することを含む、請求項１８から請求項１９のいずれか１つに記載の方法。
【請求項２４】
前記不揮発性メモリにおける前記ＬＡテーブルを前記更新されたトランザクションログを用いて更新することは、前記ＬＡテーブルが前記不揮発性メモリにコピーされた最終時間と電源中断との間に実行された書き込みに関する情報を追加することを含む、請求項１８から請求項１９のいずれか１つに記載の方法。
【請求項２５】
論理アドレス（ＬＡ）テーブルおよびトランザクションログを格納するよう構成された不揮発性メモリ、および
データがメモリにおいてどこに書き込まれたかを示すトランザクションログにおける情報を調べることにより書き込みパターンを判定することと、
前記書き込みパターンに基づく順序で前記メモリにおけるページを読み出すことと、
前記トランザクションログを、メモリにおいて読み出された前記ページに関連付けられた情報で更新することと、
前記トランザクションログを用いて前記論理アドレス（ＬＡ）テーブルを更新することと、
を行うよう構成されたコントローラ、
を含むメモリシステム。
【請求項２６】
前記トランザクションログは、前記ＬＡテーブルを不揮発性メモリに格納した後に前記メモリシステムにおいて実行された書き込みに関する情報を記録するよう構成された、請求項２５に記載のメモリシステム。
【請求項２７】
前記コントローラは、前記書き込みパターンに基づく順序でメモリにおけるページを読み出すことによりトランザクションログにおけるトランザクションログ情報の最終ページを再作成するよう構成された、請求項２５に記載のメモリシステム。
【請求項２８】
前記コントローラは書き込みパターンアルゴリズムに基づいて前記書き込みパターンを作成するよう構成された、請求項２５から請求項２７のいずれか１つに記載のメモリシステム。
【請求項２９】
論理アドレス（ＬＡ）テーブルおよびトランザクションログを格納するよう構成された不揮発性メモリ、および
書き込みパターンに基づく順序でページを読み出すことにより前記トランザクションログを更新することと、
前記ＬＡテーブルを、前記更新されたトランザクションログを用いて、電源中断後に前記ＬＡテーブルから失われた情報で更新することと、
を行うよう構成されたコントローラ、
を含むメモリシステム。
【請求項３０】
前記コントローラは前記更新されたＬＡテーブルのコピーを揮発性メモリに格納するようさらに構成された、請求項２９に記載のメモリシステム。
【請求項３１】
前記コントローラは前記揮発性メモリにおける前記更新されたＬＡテーブルを継続的に更新するよう、および前記継続的に更新されるＬＡテーブルのコピーを前記不揮発性メモリに３００秒毎に少なくとも１回格納するよう、構成された、請求項３０に記載のメモリシステム。
【請求項３２】
前記コントローラは前記書き込みパターンを前記トランザクションログを用いて判定するよう構成された、請求項２９から請求項３０のいずれか１つに記載のメモリシステム。
【請求項３３】
前記コントローラはデータが次に前記メモリシステムにおいてどこに書き込まれたであろうかを前記書き込みパターンを用いて判定するよう構成された、請求項３２に記載のメモリシステム。
【請求項３４】
前記ＬＡテーブルは論理ブロックアドレス（ＬＢＡ）テーブルである、請求項２９から請求項３０のいずれか１つに記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全般的には、半導体メモリ装置、方法、およびシステムに関し、さらに詳細には、トランザクションログの復元に関する。
【背景技術】
【０００２】
メモリ装置は、通常、コンピュータまたは他の電子装置における内蔵型の半導体、集積回路として提供される。揮発性メモリおよび不揮発性メモリを含む多数の異なるタイプのメモリが存在する。揮発性メモリはそのデータを保持するにあたり電力を必要とし、中でもとりわけランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ：ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）および同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ：ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を含む。不揮発性メモリは、電力非供給時に格納された情報を保持することにより、永続的なデータを提供し得、中でもとりわけＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、リードオンリーメモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ：Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、および相変化ランダムアクセスメモリ（ＰＣＲＡＭ：ｐｈａｓｅ  ｃｈａｎｇｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を含み得る。
【０００３】
複数のメモリ装置をともに組合せることにより、ソリッドステートドライブ（ＳＳＤ：ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）が形成され得る。ソリッドステートドライブは、その他の様々なタイプの不揮発性メモリおよび揮発性メモリの中でもとりわけ、不揮発性メモリ、例えばＮＡＮＤ型フラッシュメモリおよびＮＯＲ型フラッシュメモリを含み得、および／または揮発性メモリ、例えばＤＲＡＭおよびＳＤＲＡＭを含み得る。窒化膜における電荷トラップに情報を格納する半導体−酸化物−窒化物−酸化物−半導体型および金属−窒化物−酸化物−半導体型のキャパシタ構造を用いる浮遊ゲート型フラッシュデバイスおよびチャージトラップフラッシュ（ＣＴＦ：ｃｈａｒｇｅ  ｔｒａｐ  ｆｌａｓｈ）デバイスを含むフラッシュメモリ装置は広範囲の電子的用途における不揮発性メモリとして利用され得る。フラッシュメモリ装置は通常、高いメモリ密度、高い信頼性、および低い電力消費を可能にする１つのトランジスタメモリセルを用いる。
【０００４】
ＳＳＤはコンピュータのための主要なストレージ装置としてハードディスク装置に取って代わるために用いられ得る。なぜならＳＳＤは、性能、サイズ、重量、堅牢性、作動温度範囲、および電力消費に関してハードドライブに優れ得るためである。例えば、ＳＳＤは、可動パーツを有さないため磁気ディスク装置と比較してより優れた性能を有し得、可動パーツが存在しないことにより、シークタイム、レイテンシ、および磁気ディスク装置に関連付けられた他の電気機械的遅延が回避され得る。ＳＳＤ製造業者は不揮発性フラッシュメモリを用いることにより、内部バッテリ供給を使用しないフラッシュＳＳＤを作製し得る。それにより、ＳＳＤは多用途性およびコンパクト性を増すこととなる。
【０００５】
ＳＳＤはいくつかのメモリ装置、例えばいくつかのメモリチップを含み得る（本明細書において用いられる「いくつか」のものとは、１つまたは複数のそのものを指し得る。例えばいくつかのメモリ装置は１つまたは複数のメモリ装置を指し得る）。当業者が理解するように、メモリチップはいくつかのダイおよび／または論理ユニット（ＬＵＮ：ｌｏｇｉｃａｌ  ｕｎｉｔ）を含み得る。各ダイは、各ダイ上に、いくつかのメモリアレイおよび周辺回路を含み得る。メモリアレイはいくつかの物理ページに組織化されるいくつかのメモリセルを含み得、物理ページはいくつかのブロックに組織化され得る。
【０００６】
ＳＳＤは、論理ブロックアドレス（ＬＢＡ：ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ）テーブル等の論理アドレス（ＬＡ：ｌｏｇｉｃａｌ  ａｄｄｒｅｓｓ）テーブルを含み得る。ＬＢＡテーブルはＳＳＤのメモリアレイにおけるデータの論理アドレスをそのデータの物理的位置に関連付ける情報を記録するために用いられ得る。ＬＢＡテーブルはソリッドステートドライブにおける揮発性メモリ内に格納され、ＬＢＡテーブルのデータのコピーはソリッドステートドライブにおける不揮発性メモリ内にも格納され得る。ＬＢＡテーブルは、読み出し要求がソリッドステートドライブにおいて起動されたときに、ソリッドステートドライブにおけるデータの物理的位置を特定し、それによりデータを読み出すために用いられ得る。特定の論理アドレスにあるデータに対する読み出し要求はホストにより起動され得る。論理アドレスがＬＢＡテーブルにおいて見出されると、次に、対応する物理アドレスが示され得る。ソリッドステートドライブは示された物理アドレスからデータを読み出し、それによりソリッドステートドライブに対する読み出し要求が完了される。
【０００７】
ソリッドステートドライブにおけるデータに対する論理アドレスと物理アドレスとの間の関係に関する現時点情報、例えば最新情報、を有するＬＢＡテーブルを有さないソリッドステートドライブにおいては、ソリッドステートドライブにおけるいくつかのデータがアクセス不能となり得る。したがって、ソリッドステートドライブにおいて全データに対する完全なアクセスを達成するためには現時点におけるＬＢＡテーブルが求められる。ソリッドステートドライブにおけるＬＢＡテーブルは、ＬＢＡテーブルが揮発性メモリに格納され、および／またはＬＢＡテーブルが不揮発性メモリに定期的に格納されるため、電源中断後、失われるかまたは不完全となり得る。したがって、電源中断の結果として、ソリッドステートドライブは、電源中断の直前の時間にソリッドステートドライブに書き込まれたデータに関する情報を有さないＬＢＡテーブルを有することとなる。
【図面の簡単な説明】
【０００８】
【図１】本開示の１つまたは複数の実施形態に係る、少なくとも１つのメモリシステムを含むコンピューティングシステムの機能ブロック図である。
【図２】本開示の１つまたは複数の実施形態に係るメモリシステムの機能ブロック図である。
【図３】本開示の１つまたは複数の実施形態に係る不揮発性メモリにおけるトランザクションログ、ブロックテーブル、および論理ブロックアドレス（ＬＢＡ）テーブルのブロック図である。
【図４】本開示の１つまたは複数の実施形態に係る例示的なトランザクションログを示す表である。
【図５】本開示の１つまたは複数の実施形態に係るブロックテーブルを示す表である。
【図６】本開示の１つまたは複数の実施形態に係る論理ブロックアドレス（ＬＢＡ）テーブルを示す表である。
【図７】本開示の１つまたは複数の実施形態に係る例示的なトランザクションログの復元を示す方法フローチャートである。
【発明を実施するための形態】
【０００９】
本開示はメモリにおけるトランザクションログ復元のための方法を含む。１つの係る方法は、トランザクションログ内に保存されたいくつかのエントリーを調べ、それにより書き込みパターンを判定することと、書き込みパターンに基づいてメモリを読み出すことと、トランザクションログを、書き込みパターンに基づいてメモリから読み出されたデータに関連付けられた情報で更新することと、論理アドレス（ＬＡ）テーブルを、トランザクションログを用いて更新することと、を含む。
【００１０】
本開示の以下の詳細な説明においては添付の図面が参照される。なお、添付の図面は本開示の一部を形成するものであり、添付の図面においては１つまたは複数の実施形態が実施され得る１つまたは複数の方法が例示により示される。これらの実施形態は、当業者が本開示の実施形態を実施することが可能となるよう十分詳細に説明される。他の実施形態も利用され得ること、およびプロセス的変更例、電気的変更例、および／または構造的変更例が本開示の範囲から逸脱することなく可能であること、が理解されるべきである。
【００１１】
本開示の以下の詳細な説明においては添付の図面が参照される。なお、添付の図面は本開示の一部を形成するものであり、添付の図面においては１つまたは複数の実施形態が実施され得る１つまたは複数の方法が例示により示される。これらの実施形態は、当業者が本開示の実施形態を実施することが可能となるよう十分詳細に説明される。他の実施形態も利用され得ること、およびプロセス的変更例、電気的変更例、および／または構造的変更例が本開示の範囲から逸脱することなく可能であること、が理解されるべきである。特に図面における参照番号に関して本明細書において用いられる「Ｎ」、「Ｍ」、および「Ｒ」の指示子は、係る方法で指示されるいくつかの特定の特徴が本開示の１つまたは複数の実施形態に含まれ得ることを示す。
【００１２】
本明細書における図面は、番号付与の習慣にしたがって、最初の桁（単数または複数）は図面番号に対応し、残りの桁は図面における構成要素または構成品を指すものである。異なる図面の間での同様の構成要素または構成品は同様の数字を使用することにより示され得る。例えば１０８は図１における要素「０８」を参照し、同様の構成要素は図２においては２０８として参照され得る。理解され得るように、本明細書における様々な実施形態において示される構成要素が追加、交換、および／または排除されると、本開示のいくつかの追加的な実施形態が提供され得る。加えて理解されるように、これらの図面において提供される構成要素の比率および相対的尺度は本発明の特定の実施形態を示すために用いられたものであり、制限的な意味で解釈されるべきではない。
【００１３】
図１は本開示の１つまたは複数の実施形態に係る、少なくとも１つのメモリシステム１０４を含むコンピューティングシステム１００の機能ブロック図である。図１において示される実施形態において、メモリシステム１０４、例えばソリッドステートドライブ（ＳＳＤ）は、物理ホストインターフェース１０６と、コントローラ１０８、例えばメモリシステム制御回路と、１つまたは複数のソリッドステートメモリ装置１１０−１、……、１１０−Ｎとを含み得る。ソリッドステートメモリ装置１１０−１、……、１１０−Ｎは、例えばメモリ装置にフォーマットされたファイルシステムを用いて、メモリシステムのためのストレージボリュームを提供する。１つまたは複数の実施形態において、コントローラ１０８は、物理インターフェース１０６およびソリッドステートメモリ装置１１０−１、……、１１０−Ｎを含むプリント回路基板に連結された特定用途集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）であり得る。
【００１４】
図１において示されるように、コントローラ１０８は物理ホストインターフェース１０６と、ソリッドステートメモリ装置１１０−１、……、１１０−Ｎとに連結され得る。物理ホストインターフェース１０６は、メモリシステム１０４とホストシステム１０２等の他の装置との間で情報を伝達するために用いられ得る。ホストシステム１０２はメモリアクセス装置、例えばプロセッサを含み得る。当業者は、「プロセッサ」が、並列処理システム、いくつかのコプロセッサ、その他等の、１つまたは複数のプロセッサを意図し得ることを理解するであろう。ホストシステムの例は、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル録音・再生装置、モバイル電話、ＰＤＡ、メモリカードリーダ、インターフェースハブ、その他を含む。１つまたは複数の実施形態に対して物理ホストインターフェース１０６は標準インターフェースの形態であり得る。例えば、メモリシステム１０４がコンピューティングシステム１００におけるデータストレージのために用いられる場合、物理ホストインターフェース１０６は、他のコネクタおよびインターフェースの中でもとりわけ、シリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ：ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ：ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）、または汎用シリアルバス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）であり得る。しかし一般に、物理ホストインターフェース１０６は制御、アドレス、データ、および他の信号を、メモリシステム１０４と、物理ホストインターフェース１０６に対する互換性を有する受信器を有するホストシステム１０２との間で渡すためのインターフェースを提供し得る。
【００１５】
コントローラ１０８はソリッドステートメモリ装置１１０−１、……、１１０−Ｎと通信し、それにより、他の動作の中でもとりわけ、データの読み出し、書き込み、および削除を行い得る。コントローラ１０８は、１つまたは複数の集積回路および／またはディスクリート部品であり得る回路を有し得る。１つまたは複数の実施形態に対して、コントローラ１０８における回路は、ソリッドステートメモリ装置１１０−１、……、１１０−Ｎにおけるアクセスを制御するための制御回路と、ホストシステム１０２およびメモリシステム１０４の間の変換層を提供するための回路と、を備え得る。したがって、メモリコントローラは、適切な信号を適切なＩ／Ｏ接続部において適切な時間に受信するために、ソリッドステートメモリ装置１１０−１、……、１１０−ＮのＩ／Ｏ接続部（図１において図示せず）を選択的に結合し得る。同様に、ホストシステム１０２とメモリシステム１０４との間の通信プロトコルは、ソリッドステートメモリ装置１１０−１、……、１１０−Ｎのアクセスに対して要求される通信プロトコルとは異なり得る。次いでコントローラ１０８はソリッドステートメモリ装置１１０−１、……、１１０−Ｎへの所望のアクセスを達成するために、ホストから受け取られたコマンドを適切なコマンドに変換し得る。
【００１６】
ソリッドステートメモリ装置１１０−１、……、１１０−Ｎは、メモリセル、例えば不揮発性メモリの、１つまたは複数のアレイを含み得る。アレイは例えばＮＡＮＤアーキテクチャを有するフラッシュアレイであり得る。ＮＡＮＤアーキテクチャにおいて、「行」のメモリセルの制御ゲートはアクセス、例えばワード、ライン、に連結され得る一方で、これらのメモリセルは選択ゲートソーストランジスタと選択ゲートドレイントランジスタとの間で「ストリング」状に、ソースからドレインへ直列に連結され得る。このストリングは選択ゲートドレイントランジスタによりデータ、例えばビット、ライン、に接続され得る。「行」および「ストリング」という用語の使用は、メモリセルの線形配列または直交配列のいずれも示唆しない。当業者により理解されるように、メモリセルをビットラインおよびソースラインに接続する手法は、アレイがＮＡＮＤアーキテクチャ、ＮＯＲアーキテクチャ、または何らかの他のメモリアレイアーキテクチャであるかに依存する。
【００１７】
ソリッドステートメモリ装置１１０−１、……、１１０−Ｎは、グループ化され得るいくつかのメモリセルを含み得る。本明細書で用いられるグループは、ページ、ブロック、プレーン、ダイ、アレイ全体、またはメモリセルの他のグループ等の、１つまたは複数のメモリセルを含み得る。例えば、メモリアレイの中にはいくつかのページのメモリセルを含むものもあり、これらのメモリセルは１ブロックのメモリセルを形成し得る。いくつかのブロックが１プレーンのメモリセルに含まれ得る。いくつかのプレーンのメモリセルが１つのダイ上に含まれ得る。例えば、１２８ＧＢのメモリ装置は１ページあたり４３１４バイトのデータを含み、１ブロックあたり１２８ページを含み、１プレーンあたり２０４８ブロックを含み、１装置あたり１６プレーンを含む。
【００１８】
ソリッドステートメモリ装置１１０−１、……、１１０−Ｎはいくつかのチャネルを含み得る。なお、各チャネルはいくつかのダイを含み得る。各チャネルは論理ユニット番号（ＬＵＮ）を用いて組織化され得る。データをソリッドステートメモリ装置１１０−１、……、１１０−Ｎに書き込むとき、データはいくつかのチャネルおよびＬＵＮにまたがってストライピングされ得る。データは、これらのチャネルに関連付けられたメモリセルにまたがって予測パターンでデータをストライピングする書き込みパターンアルゴリズムを用いて、ソリッドステートメモリ装置１１０−１、……、１１０−Ｎに書き込まれ得る。データを書き込むことは、ホストによりチャネルに送られたデータトラフィックを取り扱うチャネルの能力により制限され得る。したがって、より多くのデータの書き込みおよび読み出しがいくつかのチャネル上で可能となるよう、いくつかのチャネルがメモリシステムにより用いられ得る。
【００１９】
メモリ装置において、物理ページとは、書き込みおよび／または読み出しの単位、例えば、ともに、もしくはメモリセルの機能的グループとして、メモリセルの書き込みおよび／または読み出しが行われるいくつかのセル、を指し得る。偶数ページおよび奇数ページは、別個の書き込みおよび／または読み出し操作により、書き込みおよび／または読み出しが行われ得る。マルチレベルセル（ＭＬＣ：ｍｕｌｔｉｌｅｖｅｌ  ｃｅｌｌ）を含む実施形態に対して、物理ページはデータの上位ページおよび下位ページに論理的に分割され得る。例えば、１つのメモリセルは１つまたは複数のビットをデータの上位ページに寄与し、１つまたは複数のビットをデータの下位ページに寄与し得る。したがって、論理上位ページおよび論理下位ページの両方が同一の物理ページの一部であるため、データの上位ページおよび下位ページは１回の書き込み動作および／または読み出し動作の一環として書き込みおよび／または読み出しが行われ得る。
【００２０】
メモリシステム１０４はソリッドステートメモリ装置１１０−１、……、１１０−Ｎ上の消耗率を制御するためにウェアレベリングを実装し得る。ソリッドステートメモリアレイは、いくつかのプログラムサイクルおよび／または消去サイクル後に障害を経験し得る。ウェアレベリングは特定のグループ上で実行されるプログラムサイクルおよび／または消去サイクルの回数を低減し得る。ウェアレベリングは、ブロックに対するリクラメーション処理を行うために移動される有効ブロックの量を最小化するための動的ウェアレベリングを含み得る。動的ウェアレベリングはガベージコレクションと称される技術を含み得る。なお、ガベージコレクションにおいては、閾値量を超える無効ページを有するブロックは、そのブロックを消去することにより、リクラメーションが行われる。無効ページとは、例えば、異なるページに更新および格納された１ページのデータであり得る。静的ウェアレベリングは、高い消去カウントを有するブロックに静的データを書き込み、それによりブロックの寿命を延長することを含み得る。
【００２１】
図１の実施形態は、本開示の実施形態を不明瞭化させないために、図示されない追加回路を含み得る。例えば、メモリシステム１０４は、Ｉ／Ｏ回路を通してＩ／Ｏ接続部上で提供されるアドレス信号をラッチするためのアドレス回路を含み得る。アドレス信号は、ソリッドステートメモリ装置１１０−１、……、１１０−Ｎにアクセスするために、行デコーダおよび列デコーダにより受信およびデコードされ得る。アドレス入力接続部の個数がソリッドステートメモリ装置１１０−１、……、１１０−Ｎの密度およびアーキテクチャに依存することは当業者により理解されるであろう。
【００２２】
図２は本開示の１つまたは複数の実施形態に係るメモリシステム２０４の機能ブロック図である。メモリシステム２０４はコントローラ２０８を含み得る。コントローラ２０８は、１つまたは複数のソリッドステートメモリ装置、例えば不揮発性メモリ２１０および／または揮発性メモリ２１２に連結され得る。メモリシステム２０４およびコントローラ２０８は図１において示されるメモリシステム１０４およびコントローラ１０８にそれぞれ類似し得る。
【００２３】
コントローラ２０８はホストインターフェース回路２１４、ホスト−メモリ変換回路２１６、メモリ管理回路２１８、スイッチ２２０、不揮発性メモリ制御回路２２２、および／または揮発性メモリ制御回路２２４を含み得る。本明細書において説明されるように、コントローラ２０８はＡＳＩＣの形態で提供され得るが、実施形態は係る形態には制限されない。
【００２４】
ホストインターフェース回路２１４はホスト−メモリ変換回路２１６に連結され得る。ホストインターフェース回路２１４は、図１において示される物理インターフェース１０６等のホストシステムへの物理インターフェースに対して連結され、および／または一体化され得る。
【００２５】
一般に、ホストインターフェース回路２１４はホストシステム、例えばＰＣＩｅバスから受け取られたコマンドパケットをホスト−メモリ変換回路２１６に対するコマンド命令に変換することと、要求を発したホストへの伝達のためにメモリ応答をホストシステムコマンドに変換することと、を担当する。例えば、ホストインターフェース回路２１４はＰＣＩｅベースのトランザクション層パケットからＳＡＴＡコマンドパケットを構築し得る。
【００２６】
ホスト−メモリ変換回路２１６は、ホストインターフェース回路２１４に、メモリ管理回路２１８に、および／またはスイッチ２２０に連結され得る。ホスト−メモリ変換回路２１６は、論理（例えばホスト）アドレス（例えば、受け取られたコマンドに関連付けられた）を物理メモリアドレスに変換するよう構成され得る。例えば、ホスト−メモリ変換回路２１６はホストセクタ読み出しおよび書き込みコマンドを、不揮発性メモリ２１０の特定部分に向けられたコマンドへ変換し得る。各ホスト動作は単一セクタまたは複数セクタの不揮発性メモリ２１０動作へ変換され得る。
【００２７】
メモリ管理回路２１８は、ホスト−メモリ変換回路２１６に、および／またはスイッチ２２０に、連結され得る。メモリ管理回路２１８は、プロセッサ２２８の動作を介して、書き込み、読み出し、初期化、ウェアレベリング（例えば、ガベージコレクションおよび／またはブロックリクラメーション）、およびエラー訂正を含むがこれらに限定されない、いくつかのプロセスを制御し得る。トランザクションログ復元プロセスにおいて、メモリ管理回路２１８は、書き込みパターンアルゴリズム２３０により作成された書き込みパターンを用いて、どこにデータが書き込まれたか、およびどこに次のデータを書き込むかを判定する。書き込みパターンアルゴリズムは、いくつかのチャネル上に配置されたメモリセルへとデータを予測パターンで書き込むことをコントローラ２０８に行わせる。ホスト書き込みに対する書き込みパターンは書き込みパターンアルゴリズム２３０にしたがって確立され得、リクラメーション書き込みに対する書き込みパターンは書き込みパターンアルゴリズム２３０にしたがって確立され得る。いくつかの実施形態において、書き込みパターンは予測パターンで書き込まれたメモリセルを含み得る。書き込みパターンは、最も低いアドレスから最も高いアドレスへと各チャネル上のブロックを充填することにより、複数のチャネルにまたがってデータを書き込むことを含み得る。例えば、コントローラはデータを、書き込みパターンアルゴリズムにしたがって第１チャネル上のページに書き込み、次いで第２チャネル上のページに書き込み、次いで第３チャネル上のページに書き込み、次いで第１チャネル上の他のページに戻って書き込み、それにより書き込みパターンを作成し得る。データを書き込むとき、データは、書き込みパターンアルゴリズムを用いて、１つのチャネル上の１つのブロックに対して１度に１ページずつそのブロックがフル状態となるまで書き込まれ得る。次にデータが書き込みパターンアルゴリズムにしたがって再びそのチャネル上に書き込まれるときは、データはそのチャネル上の新規ブロックから開始して書き込まれることとなるであろう。論理アドレスに関連付けられたデータが新規の物理アドレスに書き込まれる（例えばウェアレベリングの一部として、またはデータに対する更新として）と、メモリ管理回路２１８はＬＢＡテーブル、例えばＬＢＡテーブル２３４を、論理アドレスに対応する新規の物理アドレスで更新し得る。
【００２８】
メモリ管理回路２１８は、テーブル、例えばブロックテーブル２３６にアクセスし、それによりウェアレベリングに対する候補を判定し得る。メモリ管理回路２１８は、例えば、静的ウェアレベリング動作の一環として、高い消去カウントを有するブロックをブロックテーブル２３６において検索し得る。メモリ管理回路は特定ブロックの消去カウントとカウント閾値とを比較し得る。例えば、最も低い消去カウントを有するブロックの消去カウントが特定ブロックから減算され得る。その差異がカウント閾値より大きい場合、その特定ブロックはブロックリクラメーションに対する候補として示され得る。
【００２９】
メモリ管理回路２１８は、例えば動的ウェアレベリング動作の一環として、ガベージコレクション閾値量の無効の、例えば未使用の部分、例えばページを有するブロックをブロックテーブル２３６において検索し得る。リクラメーションは、ガベージコレクションおよび／またはウェアレベリングの結果としてメモリ管理回路２１８により呼び出さ得るプロセスである。リクラメーションは、全部の有効データを、消去されるべきブロック内の位置から、ブロックが消去される前に他のブロック内の位置に移動することを意味し得る。
【００３０】
スイッチ２２０は、ホスト−メモリ変換回路２１６、メモリ管理回路２１８、不揮発性制御回路２２２、および／または揮発性メモリ制御回路２２４に連結され得る。スイッチ２２０はクロスバースイッチであり得、１つまたは複数のバッファ、例えばスタティックランダムアクセスメモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）バッファを含む、および／または係るバッファに連結され得る。スイッチ２２０はコントローラ２０８の様々な構成品間におけるインターフェースを提供し得る。スイッチ２２０は、係る構成品間における一貫したアクセスおよび実装を提供するために、コントローラ２０８の異なる構成品に関連付けられ得る定義された信号プロトコルにおける変動を相殺し得る。１つまたは複数の実施形態において、スイッチ２２０はダイレクトメモリアクセス（ＤＭＡ：ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）モジュールであり得る。
【００３１】
コントローラ、例えば不揮発性メモリ制御回路２２２は、スイッチ２２０に、および１つまたは複数の不揮発性メモリ２１０に、連結され得る。他の情報の中でもとりわけ、１つまたは複数の不揮発性メモリ２１０は、本明細書において説明されるように、トランザクションログ２３８、論理ブロックアドレス（ＬＢＡ）テーブル２３４−Ｃ等の論理アドレス（ＬＡ：ｌｏｇｉｃａｌ  ａｄｄｒｅｓｓ）テーブルのコピー、および／またはブロックテーブル２３６−Ｃ等のグループテーブルを格納し得る。いくつかの実施形態において、コントローラ２０８は全部のメモリチャネルに対して１つの不揮発性メモリコントローラを含み得る。他の実施形態において、各メモリチャネルは別々の不揮発性メモリコントローラに連結される。
【００３２】
揮発性メモリ制御回路２２４は、スイッチ２２０に、および１つまたは複数の揮発性メモリ装置２１２に連結され得る。他の情報の中でもとりわけ、１つまたは複数の揮発性メモリはＬＢＡテーブル２３４および／またはブロックテーブル２３６を格納し得る。ＬＢＡテーブル２３４は１つまたは複数の不揮発性メモリ２１０におけるページの物理アドレスを格納し、対応する論理アドレスを含み得る。ＬＢＡテーブル２３４は関連付けられたＳＡＴＡコマンドに含まれるＬＢＡによりインデックス付けられ得る。ＬＢＡテーブル２３４は、例えば論理ブロックアドレスに対応する物理ページアドレスを検索するために、ホスト−メモリ変換回路２１６により用いられ得る。ブロックテーブル２３６は１つまたは複数の不揮発性メモリ２１０における消去可能ブロックに対する情報を格納し得る。ブロックテーブル２３６に格納される情報は、有効ページ情報、消去カウント、および他のステータス情報を含み得る。ブロックテーブル２３６からアクセスされる情報は物理ブロックアドレスによりインデックス付けられ得る。
【００３３】
図３は本開示の１つまたは複数の実施形態に係る不揮発性メモリ３１０におけるトランザクションログ３３８、ブロックテーブル３３４、および論理ブロックアドレス（ＬＢＡ）テーブル３３６のブロック図を示す。他の情報の中でもとりわけ、不揮発性３１０メモリは、他の情報の中でもとりわけ論理アドレス、物理アドレス、データ型、位置に対する消去カウント、ステータス情報を含み得る書き込み動作情報を、ＬＢＡテーブル３３６、ブロックテーブル３３４、および／またはトランザクションログ３３８に格納し得る。
【００３４】
揮発性メモリに格納されるＬＢＡテーブルのコピーは、例えば他の周期的間隔の中でもとりわけ少なくとも３００秒毎等で周期的に、ＬＢＡテーブル３３６として不揮発性メモリ３１０に格納され得る。例えば、ＬＢＡテーブル３３６は１２０秒毎に不揮発性メモリ３１０に格納され得る。揮発性メモリにおけるＬＢＡテーブルはソリッドステートドライブにおける各書き込み後に更新され得る。不揮発性メモリ装置におけるＬＢＡテーブルの更新頻度に対する時間的周期は、他の要因の中でもとりわけ、メモリシステムが実行する書き込みの頻度に、および／またはデータが書き込まれるスピードに、依存し得る。
【００３５】
トランザクションログ３３８は不揮発性メモリに格納され、メモリ装置において実行される書き込みに関する情報を記録するために用いられ得る。いくつかのメモリ装置を有するメモリシステムは、メモリ装置において実行される書き込みに関する情報を含むトランザクションログを含み得る。トランザクションログはホスト書き込みに関する情報および／またはリクラメーション書き込みに関する情報を含み得る。ホスト書き込みに関する情報および／またはリクラメーション書き込みに関する情報は、書き込みがメモリにおいて実行されるとき、トランザクションログに含まれる。トランザクションログはメモリシステムにおけるいくつかのメモリ装置にまたがってストライピングされ得る。当業者は、ストライピングは、データが２つ以上の装置上に格納されるよう、データを分割することを含むことを理解するであろう。ストライピングは、トランザクションログ情報等の書き込みデータを断片化し、少なくとも１つの断片をいくつかのメモリ装置のそれぞれに格納することを含み得る。１つまたは複数の実施形態において、コントローラは、各書き込みがメモリ装置において実行されるとき、各書き込みに対するトランザクションログ情報でトランザクションログを更新し得る。トランザクションログは、１つの時間的周期の間にメモリ装置において実行される全書き込みに関するトランザクションログ情報を含み得る。トランザクションログは、ＬＢＡテーブル３３６が不揮発性メモリ３１０に保存された最終時間以後に実行されたメモリ装置に対する全書き込みに関するトランザクションログ情報を含み得る。
【００３６】
１つまたは複数の実施形態において、トランザクションログ３３８からの情報は、ＬＢＡテーブル３３６が不揮発性メモリにおいて最後に保存された時間以降、例えば最終保存と電源中断との間に、メモリ装置（単数または複数）において実行された書き込みに関する情報でＬＢＡテーブル３３６のコピーを更新するために用いられ得る。さもなければ不揮発性メモリ３１０におけるＬＢＡテーブル３３６のコピーには情報の欠落が生じ得る。なぜなら、不揮発性メモリ３１０におけるＬＢＡコピー３３６は不揮発性メモリにコピーされた時間において揮発性メモリのＬＢＡテーブル内にあった情報のみを有することとなるためである。また、揮発性メモリにおけるＬＢＡテーブルは電源中断の間は消去される。そのため、不揮発性メモリにおけるＬＢＡコピーは、仮に揮発性メモリにおけるＬＢＡテーブルが消去されていないとした場合に揮発性メモリにおけるＬＢＡテーブルが不揮発性メモリ３１０にコピーされた最終時間と揮発性メモリにおけるＬＢＡテーブルが消去された時間との間に揮発性メモリにおけるＬＢＡテーブルに格納されたであろう情報を用いて、更新されることは不可能である。したがって、不揮発性メモリ３１０におけるトランザクションログ３３８は不揮発性メモリにおけるＬＢＡテーブル内の情報を更新するために用いられ得る。トランザクションログ３３８はデータの位置とそのデータがメモリ装置に書き込まれた時間とに関する情報を含み得る。トランザクションログ３３８における１ページのデータは、例えば１２８個の書き込み動作に関連付けられた情報を含み得る。この情報はメモリ装置により確認され、次いでＬＢＡテーブル３３６を更新するためにＬＢＡテーブルに入力され得る。１つまたは複数の実施形態において、トランザクションログの最終ページは、電源中断の間、破損され得、そのため、トランザクションログの情報の最終ページはメモリアレイに書き込まれた最近のデータのうちの一部に関する情報を含まない。
【００３７】
いくつかの事例において、トランザクションログ復元プロセスは、保存されたトランザクションログ内のいくつかのエントリーを調べ、それにより書き込みパターンを判定することと、トランザクションログにおいて最後に保存された書き込みのメモリにおける位置を判定することと、を含み得る。書き込みパターンは、最後に保存された書き込みからの情報とともに、書き込みパターンにおける次の書き込みのメモリ内の次の位置、例えば、関連付けられた情報がトランザクションログに保存されていない状態の、書き込みパターンにおける第１書き込み、を判定するために用いられ得る。メモリにおけるページは書き込みパターンに基づく順序で読み出され得る。書き込みパターンにしたがってトランザクションログにおけるデータページに関連付けられた情報を有したであろう次のデータページが読み出される。そのデータページに書き込まれたデータが存在すれば、そのデータページに関連付けられたメタデータは、例えばそのデータページのＬＢＡ等のそのデータページに関連付けられた情報でトランザクションログを更新するために用いられる。次いで、書き込みパターンにしたがってトランザクションログに存在したであろう次のデータページが読み出される。そのデータページに書き込まれたデータが存在すれば、トランザクションログはそのページに関連付けられた情報で再び更新される。このプロセスは、どこで電源中断により最終書き込みが実行されたかを示す消去ページが見出されるまで、トランザクションログを更新するために用いられる。１つまたは複数の実施形態において、更新されたトランザクションログはＬＢＡテーブルを更新するために用いられ得る。
【００３８】
１つまたは複数の実施形態において、トランザクションログ復元プロセスがフル状態のブロック、例えばブロック境界におけるブロック、に到達した場合、データがページに書き込まれたかどうかを判定するためにページを読み出す間、書き込みパターンは、次の書き込みが実行されるブロックを示さない場合もある。トランザクションログ復元プロセスは部分的に書き込まれたブロックを検索し得る。部分的に書き込まれたブロックは電源中断が生じたときに書き込みパターンアルゴリズムにしたがって書き込み中であったブロックである。なぜなら所与のチャネル上のブロックは、ブロックがフル状態となるまで、書き込みパターンアルゴリズムにしたがって１度に１つ書き込まれるためである。
【００３９】
部分的に書き込まれたブロックは、いくつかのブロックの第１ページおよび最終ページを読み出すこと、および書き込みパターンに基づく順序でメモリにおいて読み出されたページが消去ページを含まないブロック内にあるときに部分的に書き込まれたブロックに含まれるデータ型を判定することにより、位置が特定され得る。第１ページがデータを含み、最終ページが消去されている場合、ブロックは部分的に書き込まれ、この特定の部分的に書き込まれたブロックは、電源中断時にデータ書き込み中であったブロックとして認識される。部分的に書き込まれたブロックが位置特定されると、そのブロックはホストデータで書き込まれているかまたはリクラメーションデータで書き込まれているかどうかの判定は、トランザクションログにおけるホスト書き込み識別子および／またはリクラメーション書き込み識別子を用いてなされ得る。リクラメーションデータはウェアレベリングプロセスおよび／またはガベージコレクションプロセスの一環として書き込まれたデータである。リクラメーションデータで部分的に書き込まれたブロックはトランザクションログ復元プロセスの間、無視され得る。なぜなら、部分的に書き込まれたブロックにおけるリクラメーションデータは、リクラメーションデータに対する書き込み確認が受け取られるまでウェアレベリングおよび／またはガベージコレクションの間データが消去されないためにブロックが部分的に書き込まれている場合、その元の位置から消去されていないためである。したがって、部分的に書き込まれたブロックにおけるリクラメーションデータはトランザクションログに保存される必要はない。ホストデータで部分的に書き込まれたブロックが位置特定されると、ページが読み出され、それによりこれらのページがデータを含むかどうかが判定され、これらのページがデータを含む場合、トランザクションログはデータを含むそれらのページに関連付けられた情報で更新される。なお、ページに関連付けられた情報はメタデータに含まれる論理アドレスであり得る。トランザクションログ復元プロセスは、電源中断により書き込みパターンが終了した位置を示す消去ページが見出されるまで継続され得る。
【００４０】
１つまたは複数の実施形態において、トランザクションログ復元プロセスは、トランザクションログにおける破損された最終ページの情報を再作成するために、書き込みパターンを使用し得る。次に、不揮発性メモリにおけるＬＢＡテーブルは現在完全であるトランザクションログで更新され得る。電源中断前のデータの位置を有する更新されたトランザクションログは、不揮発性メモリにおけるＬＢＡテーブルの最終保存と電源中断時との間の書き込みに関する情報が含まれるようＬＢＡテーブルを更新するために用いられ得る。
【００４１】
図４は本開示の１つまたは複数の実施形態に係る例示的なトランザクションログ４３８を示す表である。図４において、トランザクションログ４３８は、メモリ装置内のデータに対する物理アドレス４５２および論理アドレス４５４を含むトランザクションログ情報を含み得る。トランザクションログ４３８はメモリ装置において実行される各書き込みの位置を記録し、トランザクションログ４３８はメモリ装置に格納され得る。トランザクションログはメモリシステムにおけるいくつかのメモリ装置にまたがってストライピングされ得る。１つまたは複数の実施形態において、トランザクションログは、メモリ装置において実行される各ホスト書き込みおよび各リクラメーション書き込みを含むトランザクションをログ記録し得、メモリ装置上で実行されるトランザクションの、メモリ装置および／またはコントローラに対する参考資料となり得る。トランザクションログは、揮発性メモリからのＬＢＡテーブルのコピーが不揮発性メモリにおいて作成された後、消去され得る。トランザクションログは、トランザクションログの消去後に実行されるトランザクションに対応する新規エントリーで更新され得る。
【００４２】
図４において、トランザクションログ４３８はいくつかのエントリー４５６−１、４５６−２、４５６−３、……、４５６−Ｎを含み得る。これらのエントリーはメモリ装置において実行された各トランザクションを示す。トランザクションログ４３８におけるエントリー４５６−１、４５６−２、４５６−３、……、４５６−Ｎは、例えば書き込み、読み出し、または消去等のトランザクションに対するコマンド４５０と、トランザクションの物理アドレス４５２と、トランザクションの論理アドレス４５４と、ホスト書き込み識別子４５７と、リクラメーション書き込み識別子４５８とを含み得る。ホスト書き込み識別子４５７はトランザクションがホストにより始められたこと、例えばデータ型がホストデータであることを示し得、リクラメーション書き込み識別子４５８はトランザクションがリクラメーションプロセスの一環として始められたこと、例えばデータ型がリクラメーションデータであることを示し得る。
【００４３】
図５は本開示の１つまたは複数の実施形態に係るブロックテーブル５３４を示す表である。ブロックテーブル５３４はメモリ装置におけるブロックに関する情報を格納し得る。ブロックテーブル５３４に格納される情報は、データ有効性情報５６０、消去カウント５６２、およびステータス情報５６４を含み得る。ブロックテーブル５３４はいくつかのエントリー５６６−１、５６６−２、５６６−３、……、および５６６−Ｍを含み得る。ブロックテーブル５３４における各エントリーは、１ブロックおよび／または１ページのデータ等の、データに対する物理アドレス５５２、データ有効性情報５６０、消去カウント５６２、およびステータス情報５６４を含み得る。ブロックテーブル５３４におけるデータ有効性情報５６０は、ブロックにおける各ページの有効性に関する情報、例えばデータが有効であるかまたは無効であるかの情報を含み得る。ブロックテーブル５３４における消去カウント５６２はブロックがこれまでに消去された回数を示し得る。ブロックテーブル５３４におけるステータス情報５６４は、ブロックに対する他のステータス表示の中でもとりわけ、ブロックが消去された、および／またはブロックがデータを含むかどうかを示し得る。
【００４４】
図６は、本開示の１つまたは複数の実施形態に係る論理ブロックアドレス（ＬＢＡ）テーブル６３６を示す表である。ＬＢＡテーブル６３６はメモリ装置における各データエントリーに対する論理アドレス６５４および物理アドレス６５２を格納し得、メモリ装置における各データエントリーに対して論理アドレス６５４に対する物理アドレス６５２への変換を提供し得る。ＬＢＡテーブル６３６はメモリ装置への各書き込みに対するＬＢＡによりインデックス付けられ得、ＬＢＡテーブル６３６における各データエントリーに対する論理アドレス６５４および物理アドレス６５２を含むいくつかのエントリー６７０−１、６７０−２、６７０−３、……、および６７０−Ｒを含み得る。ＬＢＡは、各エントリーにおけるデータが格納された対応する物理アドレスを検索するために用いられ得る。ＬＢＡテーブルはメモリシステムの揮発性メモリに格納され得、揮発性メモリにおけるＬＢＡテーブルのコピーが周期的に不揮発性メモリにおいて作成され得る。ＬＢＡテーブルのコピーが不揮発性メモリにおいて作成されると、揮発性メモリにおけるＬＢＡテーブルは消去され得、揮発性メモリにおけるＬＢＡテーブルは、揮発性メモリにおけるＬＢＡテーブルの消去後に実行されたトランザクションに対応する新規エントリーで更新され得る。
【００４５】
図７は本開示の１つまたは複数の実施形態に係る例示的なトランザクションログの復元を示す方法フローチャートである。１つまたは複数の実施形態において、トランザクションログの復元は、トランザクションログに保存されたいくつかのエントリーを調べること７８０を含む。トランザクションログにおけるエントリーを調べることは、ホスト書き込みパターンを判定すること７８２のために、およびリクラメーション書き込みパターンを判定すること７８４のために、用いられ得る。ホスト書き込みパターンは、ホスト書き込みパターンにしたがってトランザクションログにおけるデータページに関連付けられた情報を有したであろう次のデータページを位置特定し読み出すこと７８６のために用いられ得る。トランザクションログの復元は、ホスト書き込みパターンにしたがって読み出されたデータページに関連付けられた情報でトランザクションログを更新すること７８８を含み得る。
【００４６】
本開示はメモリにおけるトランザクションログ復元のための方法を含む。１つの係る方法は、トランザクションログ内に保存されたいくつかのエントリーを調べ、それにより書き込みパターンを判定することと、書き込みパターンに基づいてメモリを読み出すことと、トランザクションログを、書き込みパターンに基づいてメモリから読み出されたデータに関連付けられた情報で更新することと、論理アドレス（ＬＡ）テーブルを、トランザクションログを用いて更新することと、を含む。
【００４７】
本明細書において特定の実施形態が例示および説明されてきたが、当業者は、同一結果を達成するよう計算された構成が、示された特定の実施形態に取って代わられ得ることを理解するであろう。本開示は本開示の１つまたは複数の実施形態の適応例または変化例を含むことを意図するものである。上記の説明が例示的にすぎず制限ではないことを理解すべきである。上述の実施形態の組合せ、および本明細書において特に説明されない他の実施形態は、上記の説明を綿密に調べると、当業者に明らかとなることであろう。本開示の１つまたは複数の実施形態の範囲は、上述の構造および方法が用いられる他の応用を含むものである。したがって、本開示の１つまたは複数の実施形態の範囲は、添付の請求項が教授する均等物の全範囲とともに係る請求項を参照して、判定されるべきである。
【００４８】
前述の詳細な説明において、いくつかの特徴は、本開示を簡素化する目的で、単一の実施形態にまとめられる。本開示の方法は、本発明の開示された実施形態が、各請求項において明示的に記載されるよりも多くの特徴を用いるべきであるという意図を反映するものと解釈されてはならない。むしろ、以下の請求項に反映されるように、本発明の要旨は、開示された単一の実施形態の、全部より少数の特徴に存在する。したがって、以下の請求項は発明を実施するための形態に組み込まれ、各請求項は個別の実施形態として自立している。
【図１】
2013544414.tif 000003
【図２】
2013544414.tif 000004
【図３】
2013544414.tif 000005
【図４】
2013544414.tif 000006
【図５】
2013544414.tif 000007
【図６】
2013544414.tif 000008
【図７】
2013544414.tif 000009
【手続補正書】
【提出日】平成25年7月1日(2013.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
トランザクションログに保存されたいくつかのエントリーを調べ、それにより書き込みパターンを判定することと、
前記書き込みパターンに基づいて前記メモリを読み出すことと、
前記書き込みパターンに基づいて前記メモリから読み出されたデータに関連付けられた情報で前記トランザクションログを更新することと、
前記トランザクションログを用いて論理アドレス（ＬＡ）テーブルを更新することと、
を含む、トランザクションログ復元のための方法。
【請求項２】
前記書き込みパターンに基づいて前記メモリを読み出すことはメモリにおけるページを読み出すことを含む、請求項１に記載の方法。
【請求項３】
前記トランザクションログは、データが前記メモリに最近書き込まれた位置に関する情報を含む、請求項１から請求項２のいずれか１つに記載の方法。
【請求項４】
前記トランザクションログは、更新される前に読み出された前記ページに関連付けられた情報を有さなかった、請求項２に記載の方法。
【請求項５】
前記トランザクションログを更新することは、前記トランザクションログを、データを含むメモリにおいて読み出されたページに関連付けられた情報で更新することを含む、請求項２に記載の方法。
【請求項６】
前記メモリを読み出すことは、消去ページが見出されるまで前記書き込みパターンに基づく順序で前記メモリにおけるページを読み出すことを含む、請求項１から請求項２のいずれか１つに記載の方法。
【請求項７】
いくつかのブロックの第１ページおよび最終ページを読み出すことにより部分的に書き込まれたブロックの位置を特定することと、前記書き込みパターンに基づく順序で前記メモリにおいて読み出された前記ページが消去ページを含まないブロックにあるときに前記部分的に書き込まれたブロックに含まれるデータのタイプを判定することとをさらに含む、請求項２に記載の方法。
【請求項８】
ホストデータを含む前記部分的に書き込まれたブロックのページを読み出すことをさらに含む、請求項７に記載の方法。
【請求項９】
データを含む前記部分的に書き込まれたブロックにおいて読み出されたページに関連付けられた情報で前記トランザクションログを更新することをさらに含む、請求項８に記載の方法。
【請求項１０】
論理アドレス（ＬＡ）テーブルおよびトランザクションログを格納するよう構成された不揮発性メモリ、および
データがメモリにおいてどこに書き込まれたかを示すトランザクションログにおける情報を調べることにより書き込みパターンを判定することと、
前記書き込みパターンに基づく順序で前記メモリにおけるページを読み出すことと、
前記トランザクションログを、メモリにおいて読み出された前記ページに関連付けられた情報で更新することと、
前記トランザクションログを用いて前記論理アドレス（ＬＡ）テーブルを更新することと、
を行うよう構成されたコントローラ、
を含むメモリシステム。
【請求項１１】
前記トランザクションログは、前記ＬＡテーブルを不揮発性メモリに格納した後に前記メモリシステムにおいて実行された書き込みに関する情報を記録するよう構成された、請求項１０に記載のメモリシステム。
【請求項１２】
前記コントローラは、前記書き込みパターンに基づく順序でメモリにおけるページを読み出すことによりトランザクションログにおけるトランザクションログ情報の最終ページを再作成するよう構成された、請求項１０に記載のメモリシステム。
【請求項１３】
前記コントローラは書き込みパターンアルゴリズムに基づいて前記書き込みパターンを作成するよう構成された、請求項１０から請求項１２のいずれか１つに記載のメモリシステム。
【請求項１４】
前記コントローラは前記更新されたＬＡテーブルのコピーを揮発性メモリに格納するようさらに構成された、請求項１０に記載のメモリシステム。
【請求項１５】
前記コントローラは前記揮発性メモリにおける前記更新されたＬＡテーブルを継続的に更新するよう、および前記継続的に更新されるＬＡテーブルのコピーを前記不揮発性メモリに３００秒毎に少なくとも１回格納するよう、構成された、請求項１４に記載のメモリシステム。
【国際調査報告】
2013544414.tif 000010
2013544414.tif 000011
2013544414.tif 000012