(57)【特許請求の範囲】
【請求項１】
マッピング情報を記憶するためのメモリモジュールを動作させる方法であって、
前記メモリモジュールの論理データブロックの論理ページにアドレス指定されたユーザデータを受信することと、
前記論理データブロックの各論理ページとそれらの論理ページと関連付けられたデータの記憶先前記メモリモジュールの物理ページとの間のマッピング対応関係を示すメタデータと前記論理ページへの前記ユーザデータとを結合することと、
前記論理データブロックと関連付けられた空き物理ページに前記結合されたデータを書き込むことと、
を含む方法。
【請求項２】
前記論理データブロックの各論理ページのマッピング対応関係を示すメタデータを生成することであって、各論理ページの前記メタデータが、どの物理ブロックがその論理ページのユーザデータの最終有効バージョンを格納しているか、およびその物理ブロックのどの物理ページがユーザデータのその最終有効バージョンを格納しているかを示すことをさらに含む、請求項１に記載の方法。
【請求項３】
前記論理データブロックが物理データブロックと関連付けられており、前記物理データブロックが１つ以上の物理ログブロックと関連付けられており、どの物理ブロックが論理ページのユーザデータの前記最終有効バージョンを格納しているかを示すメタデータを生成することが、その物理ブロックが前記物理データブロックであるか、その関連ログブロックのうちの１つであるかを示すメタデータを生成することを含む、請求項２に記載の方法。
【請求項４】
前記ユーザデータを前記メタデータと結合することが、ユーザデータの第１の部分をメタデータの第１の部分と、かつユーザデータの第２の部分をメタデータの第２の部分と結合することを含み、メタデータの前記第１の部分が、前記論理データブロックの論理ページの第１の部分のマッピング対応関係を示し、メタデータの前記第２の部分が、前記論理データブロックの論理ページの第２の異なる部分のマッピング対応関係を示す、請求項１または２に記載の方法。
【請求項５】
前記論理データブロックが２つ以上の物理データブロックと関連付けられており、各物理データブロックが１つ以上の物理ログブロックと関連付けられており、前記論理データブロックと関連付けられた空き物理ページに前記結合されたデータを書き込むことが、前記物理データブロックまたはそれらの関連ログブロックの各々の空き物理ページに前記結合されたデータの一部分を書き込むことを含む、請求項１または２に記載の方法。
【請求項６】
前記結合されたデータの一部分を前記物理データブロックまたはそれらの関連ログブロックの各々の空き物理ページに書き込むことが、前記物理データブロックまたはそれらの関連ログブロックの各々に記論理データブロックの一部分だけのマッピング対応関係を示すデータを書き込むことを含む、請求項５に記載の方法。
【請求項７】
前記物理データブロックまたはそれらの関連ログブロックの各々に、前記論理データブロックの一部分だけのマッピング対応関係を示すデータを書き込むことが、前記論理データブロックの各論理ページのマッピング対応関係を示すデータを１コピー分より多く記憶することを含む、請求項６に記載の方法。
【請求項８】
前記結合されたユーザデータおよびメタデータ用のＥＣＣデータを生成することと、前記結合されたデータを書き込む前に前記ユーザデータと前記メタデータと前記ＥＣＣデータとを結合することと、をさらに含む、請求項１または２に記載の方法。
【請求項９】
前記論理データブロックに対応し、かつ前記論理データブロックの各論理ページとそれらの論理ページと関連付けられたデータの記憶先前記メモリモジュールの前記物理ページとの間の前記マッピング対応関係を示すマッピング情報を取得することと、
前記論理データブロックの取り出されたマッピング情報に対応する前記メタデータを生成することと、
を更に含む、請求項１〜８のいずれかに記載の方法。
【請求項１０】
前記メモリモジュールの少なくとも１つのメモリ装置に関するマッピング情報が破損していることを検出することと、
前記少なくとも１つのメモリ装置の各論理データブロックと関連付けられた最終有効物理ページを読み込むことと、
前記少なくとも１つのメモリ装置の各論理データブロックと関連付けられた前記最終有効物理ページのみから読み込まれた前記データからマッピング情報を取得することと、
前記最終有効物理ページから取得された前記マッピング情報から前記メモリ装置に関するマッピング情報を再構築することと、
を含む、請求項１〜９のいずれかに記載の方法。
【請求項１１】
１つ以上のメモリ装置と、
前記１つ以上のメモリ装置に連結された制御回路と、
を含むメモリモジュールであって、
前記制御回路が、論理データブロックのマッピング対応関係を示す前記１つ以上のメモリ装置にアドレス指定可能な前記論理データブロックの各々にデータを記憶するように構成されており、かつ
前記制御回路が、その論理データブロックにユーザデータを記憶する一方で、論理データブロックの前記マッピング対応関係を示す前記データを記憶するように構成されており、かつ
論理データブロックのマッピング対応関係を示す前記データは、前記論理データブロックに関連付けられた全ての有効データが前記ユーザデータの記憶時に記憶される物理位置を示すデータを含む、
メモリモジュール。
【請求項１２】
物理位置を示す前記データが、その論理データブロックと関連付けられた物理ブロックの物理ページアドレスを示すデータを少なくとも備える、請求項１１に記載のメモリモジュール。
【請求項１３】
物理位置を示す前記データが、前記物理ページアドレスがどの物理ブロックに関係しているかを示すデータをさらに備える、請求項１２に記載のメモリモジュール。
【請求項１４】
前記物理ページアドレスがどの物理ブロックに関係するかを示す前記データが、前記物理ブロックがデータブロックであるか関連ログブロックであるかを示すデータを備える、請求項１３に記載のメモリモジュール。
【請求項１５】
前記制御回路が、前記メモリ装置の１つ以上に関するマッピング情報の破損を検出し、
破損が検出された場合には、前記１つ以上のメモリ装置にアドレス指定可能な各論理データブロックと関連付けられた最終有効物理ページのみを読み込み、前記最終有効物理ページから読み込まれた前記データから前記論理データブロックの各々に関するマッピング情報を取得し、前記メモリモジュールに関する前記マッピング情報を再構築するために前記論理データブロックの各々に関する前記取得されたマッピング情報を結合するように構成されている、請求項１１〜１４のいずれかに記載のメモリモジュール。
【請求項１６】
メモリセルの１つ以上の物理ブロックを備え、各々がデータを記憶するためのメモリセルの２つ以上の物理ページを備えるメモリ装置であって、
前記メモリ装置が、メモリセルの論理ブロックに組織され、各々がメモリセルの２つ以上の論理ページを備え、
メモリセルの特定の論理ブロックが、メモリセルの前記物理ブロックの１つ以上と関連付けられており、
メモリセルの前記特定の論理ブロックと関連付けられたメモリセルの特定の物理ブロックのメモリセルの少なくとも１つの物理ページがデータ構造を備え、
前記データ構造が、メモリセルの前記特定の論理ブロックのメモリセルの各論理ページと、メモリセルのそれらの各論理ページと関連付けられた物理ページアドレスとの間のマッピング対応関係を示すメタデータのインデックスを備える、
メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して半導体メモリに関し、１つ以上の実施形態において、本開示は特にメモリ装置のための組み込みマッピング情報を利用する方法と装置とに関する。
【背景技術】
【０００２】
電子装置は、それらの装置向けに提供されている何らかのタイプの大容量記憶装置を有するのが通例である。一般的な例がハードディスク装置（ＨＤＤ）である。ＨＤＤは、比較的低コストで大量の記憶が可能であり、現在の消費者向けＨＤＤは１テラバイト以上の容量が利用可能である。
【０００３】
ＨＤＤは一般に、回転磁気メディアまたはプラッタにデータを記憶する。データは、プラッタ上に一定パターンの磁束反転として記憶されるのが典型的である。典型的なＨＤＤにデータを書き込むために、プラッタは高速で回転する一方で、プラッタの上に浮いている書き込みヘッドが一連の磁気パルスを生成し、そのプラッタ上の磁性粒子を整列させてデータを表現する。典型的なＨＤＤからデータを読み込むために、磁気抵抗読み込みヘッドが高速で回転するプラッタの上に浮いているときに、抵抗の変化が誘発される。実際に生成されるデータ信号は、データパターンの磁束反転の結果であるピークとボトムを有するアナログ信号である。その後、部分的反応最大尤推定法（ＰＲＭＬ）と呼ばれるデジタル信号処理技術が使用され、アナログデータ信号をサンプリングして、そのデータ信号の生成を司っている、可能性が高いデータパターンを判断する。
【０００４】
ＨＤＤは、その機械的性質ゆえの欠点を有する。ＨＤＤは、衝撃、振動または強い磁場による損傷または過剰な読込み／書込みエラーが生じやすい。加えて、ＨＤＤは、可搬型電子装置において比較的消費電力の大きな存在である。
【０００５】
大容量記憶装置の別例が、ソリッドステートドライブ（ＳＳＤ）である。ＳＳＤは、データを回転メディアに記憶するのではなく、半導体メモリ装置を利用してデータを記憶するが、ホストシステムに対し、あたかも典型的なＨＤＤであるかのように表示させるインタフェースとフォームファクタとを含むことが多い。ＳＳＤのメモリ装置は、不揮発性フラッシュメモリ装置であるのが典型的である。
【０００６】
フラッシュメモリ装置は、幅広い電子的用途で使用される不揮発性メモリの人気供給源へと発展した。フラッシュメモリ装置は、高いメモリ密度、高い信頼性、および少ない電力消費を可能にする１トランジスタメモリセルを使用するのが典型的である。セルのしきい値電圧の変化は、電荷蓄積ノード（フローティングゲートやトラッピング層など）または他の物理的な現象（位相変化や分極化など）をプログラミングすることによって、各セルのデータ値を判断する。フラッシュメモリおよび他の不揮発性メモリの一般的な用途は、パーソナルコンピュータ、パーソナルデジタルアシスタンス（ＰＤＡ）、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダ、ゲーム、電気器具、車両、無線装置、携帯電話、および着脱可能なメモリモジュールを含み、不揮発性メモリの使用は拡大し続けている。
【０００７】
ＨＤＤとは異なり、ＳＳＤの動作は、その固体性質により、振動、衝撃、あるいは磁場の影響を一般に受けない。同様に、可動部品を持たないため、ＳＳＤはＨＤＤよりも電力要件が低い。ただしＳＳＤは現在、同じフォームファクタのＨＤＤと比較して、記憶容量がはるかに小さく、同等の記憶容量だと著しく高コストである。
【０００８】
フラッシュメモリ装置の性質により、所与の論理アドレスに対応するフラッシュメモリ装置内の物理的位置は、時間とともに変化するのが一般的であろう。このような対応の変更に対処するために、Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ（ＦＴＬ）を使用して、論理アドレスをデータの記憶先物理アドレスにマッピングする。この高度なマッピング情報は、使いやすさを理由に、メモリ装置の動作時には揮発性メモリに保持されるが、かかるマッピング情報は、装置の起動時に取り出せるように、不揮発性メモリに周期的に記憶される。あるいは、このマッピング情報が、各書き込み動作により、更新されて不揮発性記憶装置に記憶される場合もある。ＳＳＤの電力が突然停止して、直近のマッピング情報が不揮発性メモリに記憶されなかった場合には、論理アドレスと現在の物理アドレスとの関係を再構築するために、ＳＳＤを形成しているメモリ装置のすべての有効ページがスキャンされる。このスキャンには相当の時間がかかる場合があり、その間はホストがそのＳＳＤを利用できない。
【発明の概要】
【０００９】
上記の理由、および本願明細書を読み、理解すれば当業者にとって明らかとなるであろう他の理由により、当該技術においては、代替大容量記憶オプションに対するニーズがある。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態にかかる、少なくとも１つのメモリモジュールを有する電子システムの機能ブロックダイアグラムである。
【図２】本開示の一実施形態にかかるデータブロックとその関連ログブロックとを表す。
【図３】本開示の一実施形態にかかるページのデータ構造を表す。
【図４Ａ】本開示の一実施形態にかかる複数の物理データブロックを結合している論理データブロックのブロック図である。
【図４Ｂ】本開示の一実施形態にかかる複数の物理データブロックを結合している論理データブロックのブロック図である。
【図５】本開示の一実施形態にかかるメモリモジュールを動作させる方法のフローチャートである。
【図６】本開示の一実施形態にかかるメモリモジュールを動作させる方法のフローチャートである。
【発明を実施するための形態】
【００１１】
以下に示す本実施形態の詳細な説明では、本実施形態の一部を形成し、かつ本実施形態が実施され得る具体的な実施形態を例示目的で示す添付の図面を参照する。これらの実施形態は、当業者が本発明を実施できるよう十分に詳しく記載されており、他の実施形態が利用され得ることに加え、本開示の範囲から逸脱しない限り、その処理上、電気的または機械的変更が行われ得ることを理解すべきである。したがって、以下に示す詳細な説明は、限定的な意味で受け止められるべきでない。
【００１２】
図１は、本開示の一実施形態にかかる、電子システム１２０の一部としてプロセッサ１３０と連通（連結など）しているソリッドステートドライブ（ＳＳＤ）１００のブロック図である。電子システム１２０は、プロセッサ１３０によってＳＳＤ  １００の動作を制御するという点で、ＳＳＤ  １００のホストみなされ得る。電子システムのいくつかの実施例は、パーソナルコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタンス（ＰＤＡ）、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダ、電子ゲーム等を含む。プロセッサ１３０は、ディスクドライブコントローラまたは他の外部プロセッサであり得る。プロセッサ１３０とそのＳＳＤ  １００とを接続する目的で使用される標準プロトコルを用いている通信バス１３２が存在するのが典型的である。通信バス１３２は、アドレス、データ、電力、および各種Ｉ／Ｏ信号を含む複数の信号から成るのが典型的である。通信バス１３２のタイプは、システム１２０で利用されているドライブインタフェースのタイプに依存するであろう。いくつかの従来型ディスクドライブインタフェースバスプロトコルの例は、ＩＤＥ、ＡＴＡ、ＳＡＴＡ、ＰＡＴＡ、ファイバチャネル、およびＳＣＳＩである。当該技術においては、他のドライブインタフェースが存在し、かつ公知である。図１は、本開示の実施形態に的を絞るために単純化されている点に留意する必要がある。本開示の範囲から逸脱しない限り、付加的あるいは異なる構成部品、接続、およびＩ／Ｏ信号が、当該技術において公知であるものとして実装され得る。例えば、ＳＳＤ  １００は、電力調節／分配回路、揮発性メモリ、およびそのコントローラなどを含み得る。ただし、かかる追加部品は本開示の理解に必要でない。
【００１３】
本開示の一実施形態にかかるＳＳＤ  １００は、図１に図示するとおり、インタフェース１０２を含んでおり、ドライブコントローラなどのプロセッサ１３０が通信バス１３２を介してＳＳＤ  １００と対話することができる。インタフェース１０２は、当業者に広く知られている多数の標準コネクタの１つであり得る。これらのインタフェース１０２コネクタのいくつかの例が、ＩＤＥ、ＡＴＡ、ＳＡＴＡ、およびＰＣＭＣＩＡコネクタである。本開示の各種実施形態は、さまざまな従来タイプのＨＤＤをエミュレートするように構成できるため、他のディスクドライブコネクタがインタフェース１０２で利用され得る。
【００１４】
図１のＳＳＤ  １００は、マスタコントローラ１０４と、いくつかのメモリモジュール１０６１〜１０６Ｎとを含む。マスタコントローラ１０４によって実行される機能のいくつかは、ＳＳＤ  １００内で動作を管理し、プロセッサ１３０など、ＳＳＤ  １００に対して外部の装置と通信バス１３２によって通信する。メモリモジュール１０６１〜１０６Ｎは、ＳＳＤ  １００用の大容量記憶メディアとして機能する。
【００１５】
マスタコントローラ１０４は、ＳＳＤ  １００の各種動作を管理する。上記のとおり、標準的なＨＤＤに代わるドロップとしてＳＳＤ  １００が使用され得ることに加え、標準インタフェースと通信プロトコルとを有する多数の標準ＨＤＤが存在する。そのため、マスタコントローラ１０４が持つ数多くの機能の１つは、これらの標準化されたＨＤＤプロトコルの１つのその動作をエミュレートすることである。マスタコントローラ１０４の別の機能は、ＳＳＤ  １００に取り付けられたメモリモジュール１０６の動作を管理することである。マスタコントローラ１０４は、様々な標準通信プロトコルを使用してメモリモジュール１０６と通信するように構成することができる。例えば、本開示の一実施形態では、マスタコントローラ１０４が、ＳＡＴＡプロトコルを使用してメモリモジュール１０６と対話する。他の実施形態は、メモリモジュール１０６と通信するために、他の通信プロトコルを利用し得る。マスタコントローラ１０４も、エラー修正コード（ＥＣＣ）チェックなど、メモリモジュールに関連する付加機能を実行し得る。マスタコントローラ１０４の実装は、ハードウェアまたはハードウェア／ソフトウェアの組み合わせを使用して実現され得る。例えば、マスタコントローラ１０４は、状態マシンによって全体的あるいは部分的に実装され得る。
【００１６】
メモリモジュール１０６は、内部通信バス１１２を使用してマスタコントローラ１０４に連結される。マスタコントローラ１０４とメモリモジュール１０６との間の通信は、図示の共有バス１１２を利用して、および／またはマスタコントローラ１０４と各メモリモジュール１０６との個別接続によって実装され得る。
【００１７】
制御回路１１０は、対応するメモリモジュール１０６１〜１０６Ｎで非揮発性メモリ装置１１６の動作を管理する。メモリ装置１１６は、フラッシュメモリ装置であり得る。制御回路１１０は、メモリモジュール１０６１〜１０６Ｎと通信するためにマスタコントローラ１０４によって利用される通信プロトコルを翻訳する目的でも機能し得る。例えば、本開示の一実施形態では、マスタコントローラ１０４が、メモリモジュール１０６１〜１０６Ｎと対話するためにＳＡＴＡプロトコルを利用している可能性がある。かかる実施形態では、制御回路１１０がＳＡＴＡインタフェースをエミュレートするように構成されている。制御回路１１０は、セキュリティ機能など他のメモリ機能を管理して、メモリモジュールとウェアレベリングとに記憶されたデータへのアクセスを規制することもできる。制御回路１１０は、本開示の１つ以上の方法を実行するように更に構成されている。
【００１８】
上記のとおり、フラッシュメモリ装置の性質により、所与の論理アドレスに対応するフラッシュメモリ装置内の物理的位置は、時間とともに変化するのが一般的であろう。この変化は、フラッシュメモリ装置における記憶位置が、一般に、再プログラミングされる前に消去される必要があるために起こる。そのため、メモリ装置内で既存の物理的位置を消去してその位置を新たなデータで再プログラミングするのではなく、所与の論理アドレスに対応するデータが変更される場合、メモリ装置は単に新たなデータを新たな物理的位置に書き込み、古い物理的位置を旧ページとしてマークするだけである。
【００１９】
フラッシュメモリ装置は、メモリセルのブロックとして組織されるのが典型的であり、これらのブロックはページへと更に分割される。データがブロックに書き込まれると、そのデータはそのブロックの最初の空きページに書き込まれる。そのため、ブロックには、有効なページと旧ページが混在し得る。ブロックが満杯になると、有効なデータは統合のために空きブロックにコピーされ得る。この動作は、折りたたみ（ｆｏｌｄｉｎｇ）と称されることが多い。ただし、効率化のために、データブロックは自身と関連付けられた１つ以上のログブロックを有し得る。データブロックが満杯のときにログブロックが利用されと、そのデータブロックに関する以降の書き込みは、そのデータブロック１つ以上のログブロックの次の空きページに対して行われる。このように、折りたたみ動作は実行頻度を減らすことができるため効率的である。有効ページが新たなブロックに折り畳まれると、古いデータブロックとそのログブロックが存在する場合には、それらが消去対象としてマークされる。
【００２０】
この処理の実施例が図２に示されている。図２は、物理データブロック２０２と、その関連物理ログブロック２０４ａおよび２０４ｂとを表す。データブロック２０２および関連ログブロック２０４ａならびに２０４ｂは、単一の論理ブロックアドレスと関連付けられる。本実施例では、ブロック２０２／２０４の各々が、８つの物理ページ２０１０から２０１７を含む。データブロック２０２にアドレス指定されたデータは、物理ページ２０１０から始まり、物理ページ２０１７まで８つの論理ページをデータブロック２０２に書き込んだ。データブロック２０２が満杯、すなわちその最終利用可能物理ページ２０１７が書き込まれたら、以降のページ書き込みは、ログブロック２０４ａに行き、その後同様にログブロック２０４ｂまで進んだ。論理ページ０が自身の物理ページ２０１０で最初にログブロック２０４に書き込まれると、データブロック２０２の物理ページ２０１０が旧ページとしてマークされるなどした。図２に示すとおり、データブロック２０２は、自身と自身の関連ログブロック２０４との間に８つの有効ページ２０１を有する。
【００２１】
Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒ（ＦＴＬ）は、論理アドレスと、自身の対応する物理アドレスとの間の対応関係を追跡する。電力損失または突然の電源停止のためにこのマッピング情報が更新されなければ、メモリ装置のブロックをスキャンすることによって再構築される必要がある。書き込み動作はブロックのページを順番に進んでいくため、このスキャン処理はブロックを逆方向に進んでいく。例えば、ブロック当たり６４ページ存在し、ページ０からページ６３の方向で書き込みが進む場合であれば、スキャンはページ６３からページ０の方向に進む。有効物理ページが発見されると、マッピング情報において自身の対応する論理アドレスが更新される。この処理は、比較的長い時間と多くの電力を消費する場合がある。そのため、図２を再び参照すると、スキャンはログブロック２０４ｂの物理ページ２０１７から始まり、データブロック２０２の方に進む。各有効物理ページ２０１が発見されると、マッピング情報において自身の対応する論理ページが更新される。ただし図２の実施例では、スキャン処理が、データブロック２０２の物理ページ２０１３に到達し、データブロック２０２に対応する論理ブロックアドレスに関するマッピング情報の完全対応関係を取得するまで進む必要がある。
【００２２】
各種実施形態は、論理ブロックアドレスに対応する物理ブロック内に格納された組み込みマッピング情報を利用する。特に、ページがブロックに書き込まれると、そのページは、そのブロックの現在のマッピング情報のスナップショットを含む。このため、ブロックの最終有効ページは、そのブロックの物理／論理マッピングを格納することになる。したがって、各種実施形態は、メモリ装置の有効ページをすべてスキャンしてマッピング情報を再構築するのではなく、各論理ブロックと関連付けられた最終有効ページだけを求めてスキャンし得る。ブロックの最終有効ページが発見されると、そのブロックの最新のマッピング情報がそのページから読み込まれ得る。なお、ログブロックが利用される場合には、ブロックの最終有効ページ、すなわちそのブロックに関して最後に書き込まれたページが関連ログブロックで生じ得る。図２の実施例に戻って参照すると、データブロック２０２の最終有効ページ、すなわち本実施例におけるログブロック２０４ｂの物理ページ２０１７に記憶されたユーザデータにマッピング情報が組み込まれた場合には、データブロック２０２に関するマッピング情報の完全対応関係を構築するために、そのページのみスキャンされる必要がある。
【００２３】
データのページが物理位置、すなわちメモリセルに記憶されている間は、メモリセルの連続するグループに記憶されてはならない。例えば、あるブロックのあるページのメモリセルは、そのブロックの別のページ、あるいはさらに別のブロックのメモリセルとインターリーブされ得る。加えて／あるいは、メモリセルが、そのブロックの２つのページからのデータを記憶し得る。例えば、メモリセル当たり複数桁のデータを記憶するためにマルチレベルセルが使用される場合、１桁が１ページに属し、別の桁は別のページに属し得る。そのため、物理ページまたは物理ブロックを参照すると、ページまたはブロックとしてそれぞれ論理的に関連付けられたメモリセルのグループを参照することになる。さらに、ページまたはブロックのデータ構造に関する記述に、ページまたはブロックの一部分の表示が、メモリセルの連続する物理グループを格納する必要がなく、メモリセルの連続する論理グループさえ格納する必要がない。例えば、データのページがユーザデータの第１の部分と、メタデータの第２の部分と、エラー修正コード（ＥＣＣ）データの第３の部分とを論理的に格納し得る場合、コントローラが、どのメモリセルがユーザデータを格納しているか、どのメモリセルがメタデータを格納しているか、そしてどのメモリセルがＥＣＣデータを格納しているか識別できるように構成されていれば、メタデータおよびＥＣＣデータは、物理的にも論理的にもユーザデータの間で分散され得る。
【００２４】
図３は、本開示の一実施形態にかかるページ２０１のデータ構造の一実施形態を表す。ページ２０１は、１つ以上のユーザデータ部分３１２と、１つ以上のメタデータ部分３１４と、任意で１つ以上のＥＣＣ部分３１６とを有する。本実施例では、ＥＣＣ部分３１６が、ユーザデータ部分３１２とメタデータ部分３１４との両方を対象とするＥＣＣデータを含む。ＥＣＣデータは、ユーザデータと一緒に記憶されることが多いものの、異なるページに別々に記憶されても良い。図３の実施例では、ＥＣＣ部分３１６ａがユーザデータ部分３１２ａとメタデータ部分３１４ａとに関するＥＣＣデータを格納し得るのに対し、ＥＣＣ部分３１６ｂはユーザデータ部分３１２ｂとメタデータ部分３１４ｂとに関するＥＣＣデータを格納し得る。一例を挙げると、各ユーザデータ部分３１２は、２，０４８バイトのユーザデータを格納し、各メタデータ部分３１４は３２バイトのメタデータ（以降で定義）を格納し、各ＥＣＣ部分３１６は１６バイトのＥＣＣデータを格納している。ページ２０１は、設計者が選択する可能性のある他の目的のための付加データ部分（図示せず）を更に含み得る。先述の実施例では、結合されたユーザデータとメタデータとを使用してＥＣＣデータを生成する方が効率的だが、データ部分ごとにＥＣＣデータを別々に生成することもできる。
【００２５】
メタデータ部分３１４は、ページ２０１の関連付け先論理データブロックに関するマッピング情報を表すデータを格納している。そのため、メタデータ部分３１４は、論理アドレスに対応するデータを格納している論理アドレスと物理的位置との間にマッピング対応関係を再構築するのに十分なデータを格納している。６４枚の物理ページを格納しており、最大２つのログブロックを利用しているデータブロックと、データブロックに６４個の論理ページアドレスを関連付けているアドレス指定スキームを考慮すると、各メタデータ部分３１４は、各々が１つの論理ページアドレスを表す３２か所のメタデータ下位部分３２４に下位分割される可能性がある。第１のメタデータ下位部分３２４に所在するブロックの第１の論理ページに対応するデータ、第２のメタデータ下位部分３２４に所在するブロックの第２の論理ページに対応するデータ、第３のメタデータ下位部分３２４に所在するブロックの第３の論理ページに対応するデータなど、自身の論理ページオフセットによってメタデータ下位部分３２４にインデックスを付けることにより、どの論理ページの物理マッピング情報に対応するメタデータも容易に判断され得る。
【００２６】
一実施形態では、論理ページのマッピング情報に対応するメタデータが、その論理ページ用のデータが記憶される物理ページアドレスを示すデータを格納している。更なる実施形態では、メタデータが付加データを格納している場合がある。例えば、ログブロックが使用される場合には、物理ページがデータブロックと関連付けられたデータブロックまたはログブロックに位置するかどうかを付加データが定義し得るとともに、複数ログブロックが使用されるその物理ページを格納しているログブロックの連続番号を更に定義し得る。そのため、先述の実施例の場合、各メタデータ下位部分３２４は、ブロックの６４ページのうちの１ページのアドレスを定義する５桁のデータと、データブロックの場合には論理０、ログブロックの場合には論理１など、ブロックがデータブロックかログブロックかを定義する１桁のデータと、第１のログブロックの場合には論理０、第２のログブロックの場合には論理１など、どのログブロックが、アドレス指定された物理ページを格納しているかを定義する１桁のデータとを含む可能性がある。この更なる分割は、メタデータ下位部分３２４２で示されている。
【００２７】
各種実施形態は、論理データブロック全体の完全なマッピング情報を記憶するために、どの物理ページにも不十分な物理スペースを有するメモリ装置で使用するために適応させることができる。この適応は、複数の物理データブロックと任意の関連ログブロックとを結合して１つの論理データブロックを表すことによって行われる。図４Ａ〜図４Ｂは、かかる実施形態のブロック図を示す。
【００２８】
図４Ａの実施例では、論理データブロック４５６の別個のチャネル４５４と識別される複数の物理ブロック２０２／２０４のグルーピング４５０が、仮想データブロック４５２を作成する目的で使用される。各チャネル４５４は、データブロック２０２と関連付けられ得るとともに、任意で、図２に記載されているように、そのデータブロック２０２と関連付けられた１つ以上のログブロック２０４とも関連付けられ得る。同じく図２に記載されているように、グループ４５０の各物理ブロック２０２／２０４は、複数の物理ページ２０１を有する。ただし、各チャネル４５４の最終有効ページ２０１は、任意の単一チャネル４５４の最終有効ページ２０１に論理データブロック４５６の完全なマッピング情報を記憶するのではなく、論理データブロック４５６の一部分のみのマッピング情報を記憶する。例えば、チャネル４５４当たり６４ページ存在し、８つのチャネル４５４が利用される場合、任意の所与のチャネル４５４の最終有効ページ２０１は、論理ブロック４５４のマッピング情報の８つの論理ページエントリを記憶できるであろう。したがって、チャネル４５２０の最終有効ページ２０１は、論理データブロック４５６の最初の８つの論理ページアドレスに関するマッピング情報を記憶でき、チャネル４５２１の最終有効ページ２０１は、次の論理データブロック４５６の次の８つの論理ページアドレスに関するマッピング情報を記憶でき、チャネル４５２２の最終有効ページ２０１は、次の論理データブロック４５６の次の８つの論理ページアドレスに関するマッピング情報という具合に記憶できるであろう。
【００２９】
論理データブロック４５６は、書き込み動作が論理ブロック４５６のチャネル４５４の各々の最初の空き物理ページにデータを書き込むように、単一の論理ブロックとして取り扱われる。一例を挙げると、グルーピング４５０の物理ページ２０１の各々がページ当たり４ＫＢのデータを含んでいた場合、論理ブロック４５６の物理ページ２０１は、ページ当たりの４ＫＢのＮ倍のデータを有することになる。Ｎとは、仮想データブロック４５２を作成する目的で使用されるチャネル４５４の数である。図４Ａの実施例では、Ｎ＝８である。したがって本実施例では、各書き込み動作が３２ＫＢのデータを書き込むことになる。こうして、チャネル４５４の各々の最終有効ページを読み込むことにより、論理データブロック４５６に関する完全なマッピング情報が取り出され得る。論理データブロック４５６が単一の論理ブロックとして取り扱われず、個々のチャネル４５４に対して書き込み動作が許可されている場合、新たなデータを受信するチャネル４５４が、書き込まれている論理ページアドレスに関するマッピング情報を格納していなかったなら、マッピング情報が古いということになる。また、単一の論理ブロックとして取り扱われると、各論理ページアドレスは、自身のそれぞれのデータブロック２０２の同じ物理ページオフセットで生じることになる。単一ブロックとして取り扱われない場合は、以降の書き込み動作が、異なるデータブロック２０２の異なるオフセットで次の空きページを識別し得る。そのためには、単一の論理ページアドレスの複数の物理アドレスを記憶する必要がある。さらに、各チャネル４５４に対する書き込み動作は、並行的または順次的であり得る。ただし、論理データブロック４５６に対する書き込み動作は、すべてのチャネル４５４が自身のそれぞれの書き込み動作を完了するまで、制御回路によって完了と認識されるべきでない。
【００３０】
図４Ｂの実施例では、論理データブロック４５６の別個のチャネル４５４と識別される複数の物理ブロック２０２／２０４のグルーピング４５０が、仮想データブロック４５２を作成する目的で使用される。この記述は、図４Ｂの実施例の物理ブロック２０２／２０４が各々１２８枚の物理ページ２０１を格納していることを除き、図４Ａの実施例の記述と同様である。チャネル４５４全体にマッピング情報を伝播する際に、チャネル４５２０の最終有効ページ２０１は、論理データブロック４５６の最初の１６個の論理ページアドレスに関するマッピング情報を記憶でき、チャネル４５２１の最終有効ページ２０１は、論理データブロック４５６の次の１６個の論理ページアドレスに関するマッピング情報を記憶でき、チャネル４５２２の最終有効ページ２０１は、論理データブロック４５６の次の１６個の論理ページアドレスに関するマッピング情報という具合に記憶できるであろう。このように、仮想ブロック４５２の最終有効ページ２０１を読み込むことにより、論理データブロック４５６に関する全１２８個の論理ページアドレスの完全なマッピング情報を見つけることができる。
【００３１】
図４Ａと図４Ｂの実施例の各々で８つのチャネル４５４が使用されたが、使用するチャネル４５２はこれより少なくても多くても良い。任意の１チャネル４５４に記憶される自身のマッピング情報を有する論理ページアドレスの区分を増やすことにより、使用するチャネル４５４は減らされ得る。使用されるチャネル４５４の数を増やすことにより、各チャネル４５４は、さらに小さな論理ページアドレスの区分に関するマッピング情報を記憶することができる。ただし、論理データブロック４５６と関連付けられた物理ページ２０１のいかなる部分に書き込むに際しても、かかる各変形は、生成される論理データブロック４５６を１単位として取り扱うべきである。
【００３２】
図４Ａ〜図４Ｂに記載されている実施形態では、最終有効物理ページが、対応する論理データブロック４５６に関するマッピング情報を１コピー分、保有していた。ただし、チャネル４５４の各物理ページ２０１が十分な容量を有しており、論理データブロック４５６の全論理ページアドレスに関するマッピング情報を記憶するのに必要な量を上回るメタデータ下位部分を記憶できる場合には、チャネル４５４全体でマッピング情報の複数コピーを記憶できるであろう。例えば、論理データブロック４５６が１２８個の論理ページアドレスを有し、８本のチャネル４５４が利用される場合、各チャネル４５４の最終有効ページ２０１は、全１２８個の論理ページアドレスに関するマッピング情報を集合的に記憶するために１６個の論理ページアドレスに関するマッピング情報を記憶する必要がある。しかし、各物理ページ２０１に３２個の論理アドレスに関するマッピング情報を記憶するための十分な空間が存在する場合には、マッピング情報が２コピー分、記憶され得る。例えば、チャネル４５２０〜４５２３の最終有効ページ２０１は、論理データブロック４５６の全１２８個の論理ページアドレスに関するマッピング情報の第１コピーを集合的に記憶することができ、チャネル４５２４〜４５２７の最終有効ページ２０１は、論理データブロック４５６の全１２８個の論理ページアドレスに関するマッピング情報の第２コピーを集合的に記憶することができる。このようにして、最終有効ページ２０１を読み込む際にデータ破損問題が存在する場合であっても、データ破損を被らないページ２０１を使用して論理データブロック４５６に関するマッピング情報を作成し直すことが可能であり得る。
【００３３】
動作時、メモリモジュール１０６が自身のメモリ装置１１６の１つに書き込むためのユーザデータを受信すると、制御回路１１０がこのユーザデータを、書き込み先ページ２０１に対応する論理データブロックのマッピング情報を表すメタデータと結合する。このメタデータは、ユーザデータ部分３１２へのユーザデータの書き込み、および／またはＥＣＣ部分３１６へのＥＣＣデータの書き込みと並行して、メタデータ部分３１４に書き込まれる。
【００３４】
各メモリモジュール１０６は、他のメモリモジュール１０６から独立した自身のマッピング情報のセットを有する。制御回路１１０は、自身の対応するメモリ装置１１６がアクセスするためのマッピング情報を記憶する。メモリ装置１１６内の論理アドレスが、ホストから受信される論理アドレスの一部分に過ぎないことは理解されよう。例えば、ＳＳＤ  １００が４つのメモリモジュール１０６を格納しており、各々が１６台のメモリ装置１１６を格納しており、かつ各メモリ装置１１６がブロック当たり６４のページを有する１，９２０個のアドレス指定可能な論理データブロックを有する場合、一部の論理アドレスは、どのメモリモジュール１０６と、メモリモジュール１０６のどのメモリ装置１１６とがアドレス指定された論理データブロックを格納していたかを定義する。そのため、本明細書に記載されているユーザデータと結合されるマッピング情報は、メタデータを格納している物理ページと関連付けられた少なくとも論理データブロックの一部分のマッピング情報を定義するが、どのメモリ装置またはメモリモジュールがその論理データブロックと関連付けられているかに関するマッピング情報は定義しない場合がある。
【００３５】
図５は、本開示の一実施形態にかかるメモリモジュールを動作させる方法のフローチャートである。５３０で、少なくとも１つのメモリ装置の論理データブロックに書き込むためのユーザデータがホストから受信される。例えば、ホストはメモリモジュールに書き込みコマンドを出して、メモリモジュールに書き込まれるデータと、データが書き込まれる場所に対応する論理アドレスとを提供し得る。論理アドレスは、論理データブロックと、ユーザデータを記憶するための論理ページアドレスとを指定する。５３２で、メモリモジュールの制御回路が、アドレス指定された論理データブロックに対応するマッピング情報を取り出す。制御回路は、論理データブロックと関連付けられた次の空き物理ページを選択する前または後にマッピング情報を取り出し得る。ただしマッピング情報が、アドレス指定された論理ページに対応する意図された物理ページを表示するように改訂される前に取り出される場合には、後述するとおり、メタデータを生成する前に更新されるべきである。
【００３６】
５３４で、アドレス指定された論理データブロックのマッピング情報に対応するメタデータが生成される。このメタデータは、論理データブロックの少なくとも一部分について、論理ページアドレスと、その論理データブロックと関連付けられた物理ページアドレスとの間のマッピング対応関係を示す。このメタデータが、現在の書き込みコマンドの論理ページアドレス以外の少なくとも１つの論理ページアドレスに関するマッピング情報を含むことは理解されよう。すなわち、このメタデータは、アドレス指定された論理データブロックの２つ以上の論理ページアドレスに関するマッピング情報に対応する。上記のとおり、このメタデータは、論理データブロックと関連付けられた物理ブロック内の物理ページアドレスと、物理ページを格納している物理ブロックがデータブロックかログブロックかに関する明示と、この物理ページが、論理データブロックと関連付けられた複数のログブロックのうちの１つに格納されている場合にはブロックの連続番号に関する明示とを含む可能性がある。
【００３７】
５３６で、ユーザデータとメタデータとが結合される。一例として、メタデータがユーザデータに添付される。例えば、ユーザデータが２，０４８バイトであり、メタデータが３２バイトである場合、結合されたデータは１６，６４０データ値のストリングであり、最初の１６，３８４データ値がユーザデータであり、最後の２５６のデータがメタデータである。任意で、５３８において、結合されたユーザデータとメタデータとに対するＥＣＣデータが生成される。実際的観点からは、ＥＣＣはデータの読み込みエラーを修正する目的で使われるべきであるものの、修正目的で使用されるデータと共に記憶される必要はない。ただし、一実施形態については、ＥＣＣデータが、結合されたユーザデータおよびメタデータと結合される。一例として、ＥＣＣデータが、結合されたユーザデータとメタデータとに添付される。
【００３８】
次に５４０で、結合されたデータが、制御回路によって選択された空き物理ページに書き込まれ、これにより、物理ページ内の対応する論理データブロックに関する現在のマッピング情報を記憶する。当該技術において一般的であるように、その後、メモリモジュールの制御回路によって保持される高レベルのマッピング情報が更新されるべきである。本明細書に記載された各種実施形態は、Ｆｌａｓｈ  Ｔｒａｎｓｌａｔｉｏｎ  Ｌａｙｅｒまたは他のマッピング技術の特定応用形態に依存しないことに注意されたい。同様に、各種実施形態は高レベルのマッピング情報に干渉しない。そのため、メモリモジュール内でのウェアレベリング、ガーベージコレクション、および他のメンテナンスアクティビティは、かかる実施形態に悪影響を与えたり与えられたりすることなく動作することができる。この実施形態が提供するものは、メモリ装置のすべての有効ページをスキャンする処理よりも効率的にマッピング情報を再構築できるようにすることである。各種実施形態は、すべての論理データブロックのすべての有効ページではなく、メモリ装置の各論理データブロックの１有効ページだけをスキャンすることによってメモリ装置に関するマッピング情報の再構築を簡便化するため、スキャン処理が大幅に単純化される。
【００３９】
図６は、本開示の一実施形態にかかるメモリモジュールを動作させる方法のフローチャートである。６６０で、メモリ装置のマッピング情報が破損していることが検出される。かかる破損は、書き込み動作が完了する前にメモリ装置の電源を停止することによって発生し得る。一例を挙げると、書き込み動作が進行中であることを明示するように不揮発性レジスタを設定し、その書き込み動作の完了時にそれをリセットすることにより、レジスタの値を単に点検するだけで、メモリモジュールの電源投入時に書き込み動作のいかなる中断も検出することができる。
【００４０】
６６２で、制御回路は、メモリ装置のマッピング情報の破損を検出すると、スキャン処理を開始して、そのメモリ装置の各論理データブロックと関連付けられた最終有効物理ページを読み込む。各種実施形態によれば、メモリ装置に関するマッピング情報は、メモリ装置によってアドレス指定された各論理データブロックの最終有効物理ページに記憶された情報だけを使用して再構築され得るため、メモリのページを更に読む必要はない。
【００４１】
６６４で、論理データブロックの最終有効物理ページのみから読み込まれたデータからマッピング情報が取得される。マッピング情報を取得することは、マッピング情報を取得するのに必要なメモリセルだけを読み込むこと、または物理ページのすべてのメモリセルを読み込み、取得されたデータからマッピング情報を抽出することを含み得る。マッピング情報を取得することは、ＥＣＣデータを使用してエラー修正を適用することを更に含み得る。
【００４２】
６６６で、メモリ装置に関するマッピング情報が、論理データブロックの最終有効物理ページから取得されたマッピング情報を使用して再構築される。複数のメモリ装置を格納しているメモリモジュールの場合には、メモリモジュールの各メモリ装置に対して６６２〜６６６からの処理を繰り返せば良い。あるいは、マッピング情報の破損を示しているメモリ装置に対してのみ実行しても良い。再構築されたマッピング情報は、その後メモリモジュールの制御回路によって記憶され得る。
【００４３】
具体的な実施形態を例示し、本明細書に記載したが、同じ目的を達成するために計算されたいかなる構成も、示された具体的な実施形態を代替し得ることは当業者によって理解されよう。当業者には、本開示の多数の改変が明らかであろう。したがって、本出願は、本開示のいかなる改変または変形も包含することを意図している。
【図１】
0005413691.tif 000002
【図２】
0005413691.tif 000003
【図３】
0005413691.tif 000004
【図４Ａ】
0005413691.tif 000005
【図４Ｂ】
0005413691.tif 000006
【図５】
0005413691.tif 000007
【図６】
0005413691.tif 000008