(57)【特許請求の範囲】
【請求項１】
データ、メタデータ、データエラー修正コード（ＥＣＣ）及びメタデータＥＣＣを含むデータページを受信するステップと、
前記受信されたデータページを、不揮発性メモリを含むメモリサブシステムのレジスタに記憶するステップと、
前記データについてデータ変化インジケータを計算するステップと、
前記データ変化インジケータを記憶するステップと、
前記データページを前記不揮発性メモリへ転送するステップと、
前記データページをコントローラに結合されたメモリサブシステムの不揮発性メモリから検索するステップと、
前記検索されたデータページを前記メモリサブシステムのレジスタに記憶するステップと、
前記検索されたデータページを前記レジスタから処理のためにコントローラへ送信するステップと、
処理されたデータ、処理されたメタデータ、処理されたデータＥＣＣ及び処理されたメタデータＥＣＣを含む処理されたデータページを、前記コントローラから受信するステップと、
前記処理されたデータが変化したかどうか決定するステップと、
前記処理されたデータが変化したと決定されたことに応じて、前記処理されたデータページを前記レジスタへ書き込むステップと、
前記処理されたデータが変化していないと決定されたことに応じて、前記処理されたメタデータを前記レジスタへ書き込むステップと、
前記レジスタのコンテンツを前記不揮発性メモリへ書き込むステップと、
を備えた方法。
【請求項２】
処理されたデータが変化したかどうか決定する前記ステップは、前記データ変化インジケータを読み取ることを更に含む、請求項１に記載の方法。
【請求項３】
前記データ変化インジケータは、エラー検出コードに関連している、請求項２に記載の方法。
【請求項４】
処理されたデータが変化したかどうか決定する前記ステップは、
処理されたデータに対する新しいデータ変化インジケータを計算し、
処理されたデータが変化したかどうかをその新しいデータ変化インジケータに応じて決定する、
ことを更に含む請求項１に記載の方法。
【請求項５】
レジスタと、
データ、メタデータ、データエラー修正コード（ＥＣＣ）及びメタデータＥＣＣをそれぞれ含む複数のデータページを記憶するように構成された不揮発性メモリと、
前記不揮発性メモリに結合されたコントローラであって、
新しいデータ、新しいメタデータ、新しいデータエラー修正コード（ＥＣＣ）及び新しいメタデータＥＣＣを含む新しいデータページを、前記レジスタに記憶し、
前記新しいデータについてデータ変化インジケータを生成し、
前記データ変化インジケータを記憶し、
前記新しいデータページを前記レジスタから前記不揮発性メモリ内の前記複数のデータページの１つへ転送し、
前記転送されたデータページを検索し、
前記検索されたデータページを前記レジスタに記憶し、
前記検索されたデータページを処理のためにプロセッサへ送信し、
処理されたデータ、処理されたメタデータ、処理されたデータＥＣＣ及び処理されたメタデータＥＣＣを含む処理されたデータページを、受信し、
前記処理されたデータが変化したかどうか決定し、
前記処理されたデータが変化したと決定されたことに応じて、前記データページを前記レジスタへ転送し、
前記処理されたデータが変化していないと決定されたことに応じて、前記処理されたメタデータを前記レジスタへ転送し、
前記レジスタのコンテンツを前記不揮発性メモリへ書き込む、
ように構成されたコントローラと、
を備えたシステム。
【請求項６】
前記処理されたデータが変化したと決定することは、前記データ変化インジケータを読み取ることを更に含む、請求項５に記載のシステム。
【請求項７】
前記データ変化インジケータは、エラー検出コードに関連している、請求項６に記載のシステム。
【請求項８】
前記処理されたデータが変化したと決定することは、
前記処理されたデータに対する新しいデータ変化インジケータを計算し、
前記処理されたデータが変化したかどうかをその新しいデータ変化インジケータに応じて決定する、
ことを更に含む請求項５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、メモリシステムに係る。
【背景技術】
【０００２】
フラッシュメモリは、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）の一形式である。フラッシュメモリは、不揮発性で且つ比較的高密度であるために、ハンドヘルドコンピュータ、移動電話、デジタルカメラ、ポータブル音楽プレーヤ、及び他の記憶解決策（例えば、磁気ディスク）が適当でない他の多くの装置において、ファイル及び他の持続的オブジェクトを記憶するのに使用される。フラッシュメモリに記憶されたデータを処理するときには、データページがフラッシュメモリから読み出されて、レジスタに記憶される。レジスタのコンテンツは、不揮発性メモリの外部にあるコントローラへ処理のために転送される。処理されたデータページは、レジスタへ戻され、それをフラッシュメモリへ書き戻すことができる。
【発明の概要】
【０００３】
不揮発性メモリサブシステムのためのコピーバック又は読み取りオペレーションでは、不揮発性メモリ内のレジスタと不揮発性メモリの外部のコントローラとの間のデータページの転送を管理するためにデータ変化インジケータが使用される。
【図面の簡単な説明】
【０００４】
【図１Ａ】最適化コピーバックプロセスを実施するための規範的メモリシステムのブロック図である。
【図１Ｂ】最適化コピーバックプロセスを実施するための別の規範的メモリシステムのブロック図である。
【図２】図１Ａ及び１Ｂのメモリシステムにより使用されるデータ変化インジケータを計算し、記憶するための規範的な最適化コピーバックプロセス２００のフローチャートである。
【図３Ａ】図１Ａ及び１Ｂのメモリシステムにより実施される規範的な最適化コピーバックプロセスのフローチャートである。
【図３Ｂ】図１Ａ及び１Ｂのメモリシステムにより実施される規範的な最適化コピーバックプロセスのフローチャートである。
【図３Ｃ】図１Ａ及び１Ｂのメモリシステムにより実施される規範的な最適化コピーバックプロセスのフローチャートである。
【図４】図１Ａ及び１Ｂのメモリシステムにより実施される規範的な最適化読み取りオペレーションのフローチャートである。
【図５】図３Ａ−３Ｃのコピーバックプロセスにより使用される規範的なデータ構造を示す。
【発明を実施するための形態】
【０００５】
メモリサブシステムの例
図１Ａは、最適化コピーバックプロセスを実施するための規範的メモリシステム１００のブロック図である。ある実施形態において、このシステム１００は、外部バス１２２（例えば、オープンＮＡＮＤフラッシュインターフェイス（ＯＮＦＩ）、ＡＴＡ）を経てホスト装置１２４に結合されたメモリサブシステム１０２を備えることができる。ホスト装置１２４は、スマートホン、メディアプレーヤ、テキストメッセージング装置、ポータブルコンピュータ、ソリッドステートドライブ、デジタルカメラ、等を含む電子装置であるが、これに限定されない。メモリサブシステム１０２は、不揮発性メモリサブシステム（例えば、管理型ＮＡＮＤ）である。
【０００６】
ホスト装置１２４は、システムオンチップ（ＳｏＣ）１２６及び揮発性メモリ１２８を備えることができる。ＳｏＣ１２６は、ホスト装置１２４で実行されるアプリケーションによりなされる読み取り及び書き込み要求を送信する等の、メモリサブシステム１０２と対話するためのハードウェア及びソフトウェアを含むことができる。
【０００７】
メモリサブシステム１０２は、不揮発性メモリ１０４（「生のメモリ」とも称される）及び外部コントローラ１１６を備えることができる。メモリ１０４は、メモリセルアレイ１０６、内部状態マシン１０８、メモリレジスタ１１０及びデータ変化インジケータ（ＤＣＩ）１３０を含むことができる。コントローラ１１６は、プロセッサ１１８、揮発性メモリ１１４、及びエラー修正コード（ＥＣＣ）エンジン１２０を含むことができる。メモリサブシステム１０２のための他の構成も考えられる。例えば、内部状態マシンが、内部バス１１２を経てコントローラ１１６へ現在ページを転送しながら、メモリセルアレイ１０６から次のデータページを読み取りできるようにするために、メモリセルアレイ１０６とメモリレジスタ１１０との間のデータ経路にキャッシュレジスタを含ませることができる。
【０００８】
図１Ｂは、最適化コピーバックプロセスを実施するための別の規範的メモリシステム１３０のブロック図である。このシステム１３０は、メモリサブシステム１０２しか示しておらず、そのオペレーションは、図１Ａを参照して説明した。
【０００９】
コピーバックオペレーション
コピーバックは、あるページから別のページへデータを移動するためのメモリサブシステムコマンドである。コピーバックは、摩耗平滑化(wear leveling)及び他の不揮発性メモリ管理オペレーションに使用することができる。典型的なコピーバックオペレーションでは、データページが内部状態マシンによりメモリセルアレイ１０６から読み取られて、メモリレジスタ１１０に記憶される。外部コントローラ１１６は、メモリレジスタ１１０からデータページを読み取り又はクロックし、プロセッサ１１８がそのデータページに対して希望のオペレーション（例えば、ＥＣＣオペレーション）を遂行できるようにする。処理されたデータページは、コントローラ１１６によってメモリレジスタ１１０へ書き戻すことができる。内部状態マシン１０８は、メモリレジスタ１１０のコンテンツをメモリセルアレイ１０６の新たなデータページへ書き込むことができる。レジスタ１１０の全コンテンツが外部コントローラ１１６へ転送されるのを回避することにより、処理時間及び電力消費を減少することができる。
【００１０】
新たなデータページを書き込むための規範的プロセス
図２は、図１Ａ及び１Ｂのメモリシステムにより使用されるデータ変化インジケータを計算し、記憶するための規範的な最適化コピーバックプロセス２００のフローチャートである。ある実施形態において、プロセス２００は、新たなデータページがメモリサブシステムのメモリレジスタへ転送されたときに開始する（２０２）。データ及びそのデータに含まれるメタデータに対してＤＣＩを計算し、メモリサブシステムに記憶することができる（２０４）。データ変化インジケータの幾つかの例は、チェック和、ハミングコード、パリティビット、繰り返し冗長チェック（ＣＲＣ）、極性記号反転、ターボコード、等であるエラー検出コード（ＥＤＣ）を含むが、これに限定されない。又、ＥＤＣは、ＥＣＣの一部分、例えば、リード・ソロモンコード、リード・ミューラコード、バイナリー・ゴレイコード、及び低密度パリティチェックコードである。ＤＣＩが計算されて記憶された後、レジスタコンテンツを不揮発性メモリへ書き込むことができる（２０６）。ＤＣＩは、図３Ａ−３Ｃを参照して述べる最適化コピーバックプロセスに使用することができる。
【００１１】
規範的な最適化コピーバックプロセス
図３Ａ−３Ｃは、図１Ａ及び１Ｂのメモリシステムにより実施される規範的な最適化コピーバックプロセス３００のフローチャートである。ある実施形態において、このプロセス３００は、不揮発性メモリ（例えば、メモリセルアレイ１０６）からデータページを読み取りそしてそのデータページをメモリレジスタ（例えば、レジスタ１１０）に記憶することにより開始する（３０２）。ＤＣＩ（例えば、ＤＣＩ１３０）は、メモリレジスタ内のデータページに含まれるデータに対して検証することができる（３０４）。ある実施形態において、データページが最初に不揮発性メモリに書き込まれるときに、ＤＣＩを予め計算してメモリサブシステムに記憶することができる（例えば、プロセス２００を使用して）。他の実施形態において、ＤＣＩは、読み取りオペレーションの一部分として又は個別のオペレーションとして「オンザフライ」で計算することができる。メモリサブシステムは、読み取りオペレーションが完了したことを外部コントローラ（例えば、外部コントローラ１１６）に報告することができる（３０６）。
【００１２】
レジスタ内のデータページに含まれるデータに対するＤＣＩが、データページに含まれるデータが変化したことを指示する場合には（３０８）、データページに含まれるデータを外部コントローラへ転送することができ（３１０）、データページに含まれるデータに対してＥＣＣを計算することができ（３１２）、そしてデータページに含まれるデータに対するＥＣＣ情報を外部コントローラにおいて修正することができる（３１４）。データページに含まれるデータ及び修正されたＥＣＣは、メモリレジスタへ返送することができる（３１６）。メモリレジスタにおけるデータページに含まれるデータに対して新たなＤＣＩを計算することができる（３１８）。
【００１３】
レジスタ内のデータページに含まれるデータに対するＤＣＩが、データページに含まれるデータが変化しないことを指示する場合には（３０８）、データページに含まれる新たなメタデータに対するＥＣＣを計算することができる（３２０）。新たなメタデータ及びそれに関連するＥＣＣは、メモリレジスタへ転送することができる（３２２）。メモリレジスタ内のメタデータに対して新たなＤＣＩを計算することができる（３２４）。メモリレジスタのコンテンツは、不揮発性メモリ内の新たなデータページへ書き込むことができる（３２６）。
【００１４】
最適化読み取りオペレーション
図４は、図１Ａ及び１Ｂのメモリシステムにより実施される規範的な最適化読み取りオペレーションのフローチャートである。ある実施形態において、プロセス４００は、不揮発性メモリからデータページを読み取りそしてそのデータページをメモリレジスタに記憶することによって開始する（４０２）。データページに関連した予め計算されたＤＣＩは、メモリサブシステムの記憶位置からメモリレジスタへクロックされ、そして検証される（４０４）。又、ＤＣＩは、「オンザフライ」で計算することもできる。ＤＣＩの状態を読み取って、データページが変化したかどうか決定することができる（４０６）。
【００１５】
データページに含まれるデータが変化した場合には（４０８）、データページに含まれる新たなメタデータに対するＥＣＣを計算して、新たなメタデータと一緒に、メモリレジスタへ転送することができる（４１２）。メモリレジスタ内のメタデータに対して新たなＤＣＩを計算し、そしてレジスタのコンテンツを不揮発性メモリ内の新たな位置に書き込むことができる（４１４）。
【００１６】
データページに含まれるデータが変化しない場合には（４０８）、メモリレジスタのコンテンツを外部コントローラへ転送することができ、外部コントローラによってＥＣＣを計算することができる（４１０）。データページに含まれる新たなメタデータに対するＥＣＣを、外部コントローラにより計算して、新たなメタデータと共に、メモリレジスタへ転送することができる（４１２）。メモリレジスタ内のメタデータに対して新たなＤＣＩを計算し、そしてレジスタのコンテンツを不揮発性メモリ内の新たな位置に書き込むことができる（４１４）。
【００１７】
規範的データ構造
図５は、図３Ａ−３Ｃのコピーバックプロセスにより使用される規範的なデータ構造を示す。図示された例では、不揮発性メモリ内のデータページ５００は、メタデータ５０２、メタデータＥＣＣ５０４、データ５０６及びデータＥＣＣ５０８を含む。データが変化しない場合には、メタデータ５０２及びメタデータＥＣＣ５０４のみがレジスタから外部コントローラ５１０へ処理のために転送される。処理されたメタデータ５０２及びメタデータＥＣＣ５０４は、メモリサブシステムへ転送されて戻され、メモリレジスタに記憶される。データページは、不揮発性メモリ（例えば、メモリセルアレイ）内の新たなデータページに書き込むことができる。
【００１８】
以上、幾つかの実施形態を説明した。しかしながら、種々の変更がなされ得ることが理解されよう。例えば、１つ以上の実施形態の要素を結合し、削除し、変更し、又は補足して、更に別の実施形態を形成することができる。更に別の例として、図示された論理的フローは、希望の結果を達成するのに、図示された特定の順序又は逐次の順序を必要としない。更に、他のステップを設けることもできるし、上述したフローからステップを削除することもできるし、上述したシステムに他のコンポーネントを追加したり又は除去したりすることもできる。従って、他の実施形態は、特許請求の範囲内に包含される。
【符号の説明】
【００１９】
１００：メモリシステム
１０２：メモリサブシステム
１０４：不揮発性メモリ
１０６：メモリセルアレイ
１０８：内部状態マシン
１１０：メモリレジスタ
１１４：揮発性メモリ
１１６：外部コントローラ
１１８：プロセッサ
１２０：エラー修正コード（ＥＣＣ）エンジン
１２２：外部バス
１２４：ホスト装置
１２６：システムオンチップ（ＳｏＣ）
１２８：不揮発性メモリ
１３０：データ変化インジケータ（ＤＣＩ）
【図１Ａ】
0005192587.tif 000002
【図１Ｂ】
0005192587.tif 000003
【図２】
0005192587.tif 000004
【図３Ａ】
0005192587.tif 000005
【図３Ｂ】
0005192587.tif 000006
【図３Ｃ】
0005192587.tif 000007
【図４】
0005192587.tif 000008
【図５】
0005192587.tif 000009