(57)【要約】  方法は、メモリを制御するメモリコントローラにて、前記メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価するステップを含む。メモリコントローラにて、利用可能なメモリスペースに応じた冗長ストレージ構成が選択される。選択された冗長ストレージ構成を用いてデータに関する冗長情報が算出される。メモリ内の利用可能なメモリスペースにデータ及び冗長情報が書き込まれる。
2016510928.tif 000002
【特許請求の範囲】
【請求項１】
メモリを制御するメモリコントローラにて、前記メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価するステップと、
前記メモリコントローラにて、前記利用可能なメモリスペースに応じた冗長ストレージ構成を選択するステップと、
前記選択された冗長ストレージ構成を用いて前記データに関する冗長情報を算出するステップと、
前記メモリ内の前記利用可能なメモリスペースに前記データ及び前記冗長情報を書き込むステップと、を含むことを特徴とする方法。
【請求項２】
前記冗長ストレージ構成を選択するステップが、前記利用可能なメモリスペースに基づき、前記冗長情報が算出されるメモリブロックの数を選択するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記冗長ストレージ構成を選択するステップが、前記利用可能なメモリスペースに応じた符号化率を有するエラー訂正符号（ＥＣＣ）を選択するステップを含み、前記冗長情報を算出するステップが、前記選択されたＥＣＣを用いて前記冗長情報を算出するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記冗長ストレージ構成を選択するステップが、１つ以上のメモリブロックを、前記冗長情報の一部の記憶から前記データの一部分の記憶へと再割り当てするステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記冗長ストレージ構成を選択するステップが、１つ以上のメモリブロックの全体の障害に対して保護する第１ストレージ構成から、前記メモリブロックの一部分のみの障害に対して保護する第２ストレージ構成へと切り換えるステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１ストレージ構成により生成された冗長ブロックを再生利用しつつ、前記第１ストレージ構成から前記第２ストレージ構成へと切り換えるステップが実施されることを特徴とする請求項５に記載の方法。
【請求項７】
前記冗長ストレージ構成を選択するステップが、前記利用可能なメモリスペースがあらかじめ定義された閾値未満であることを検出すると前記冗長ストレージ構成を変更するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
メモリと、
前記メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価し、前記利用可能なメモリスペースに応じた冗長ストレージ構成を選択し、前記選択された冗長ストレージ構成を用いて前記データに関する冗長情報を算出し、前記データ及び前記冗長情報を前記メモリ内の前記利用可能なメモリスペースに書き込むように構成されているメモリコントローラと、
を備えることを特徴とする装置。
【請求項９】
前記メモリコントローラが、前記利用可能なメモリスペースに基づき、前記冗長情報が算出されるメモリブロックの数を選択するように構成されていることを特徴とする請求項８に記載の装置。
【請求項１０】
前記メモリコントローラが、前記利用可能なメモリスペースに応じた符号化率を有するエラー訂正符号（ＥＣＣ）を選択し、前記選択したＥＣＣを用いて前記冗長情報を算出するように構成されていることを特徴とする請求項８に記載の装置。
【請求項１１】
前記メモリコントローラが、１つ以上のメモリブロックを、前記冗長情報の一部の記憶から前記データの一部分の記憶へと再割り当てするように構成されていることを特徴とする請求項８に記載の装置。
【請求項１２】
前記メモリコントローラが、１つ以上のメモリブロックの全体の障害に対して保護する第１ストレージ構成から、前記メモリブロックの一部分のみの障害に対して保護する第２ストレージ構成へと切り換えるように構成されていることを特徴とする請求項８に記載の装置。
【請求項１３】
前記メモリコントローラが、前記第１ストレージ構成により生成された冗長ブロックを再生利用しつつ、前記第１ストレージ構成から前記第２ストレージ構成へと切り換えるように構成されていることを特徴とする請求項１２に記載の装置。
【請求項１４】
前記メモリコントローラが、前記利用可能なメモリスペースがあらかじめ定義された閾値未満であることを検出すると、前記冗長ストレージ構成を変更するように構成されていることを特徴とする請求項８に記載の装置。
【請求項１５】
メモリと通信するためのインタフェースと、
前記メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価し、前記利用可能なメモリスペースに応じた冗長ストレージ構成を選択し、前記選択された冗長ストレージ構成を用いて前記データに関する冗長情報を算出し、前記データ及び前記冗長情報を前記メモリ内の前記利用可能なメモリスペースに書き込むように構成されているプロセッサと、を備えることを特徴とするメモリコントローラ。
【請求項１６】
前記プロセッサが、前記利用可能なメモリスペースに基づき、前記冗長情報が算出されるメモリブロックの数を選択するように構成されていることを特徴とする請求項１５に記載のメモリコントローラ。
【請求項１７】
前記プロセッサが、１つ以上のメモリブロックを、前記冗長情報の一部の記憶から前記データの一部分の記憶へと再割り当てするように構成されていることを特徴とする請求項１５に記載のメモリコントローラ。
【請求項１８】
前記プロセッサが、１つ以上のメモリブロックの全体の障害に対して保護する第１ストレージ構成から、前記メモリブロックの一部分のみの障害を保護する第２ストレージ構成へと切り換えるように構成されていることを特徴とする請求項１５に記載のメモリコントローラ。
【請求項１９】
前記プロセッサが、前記利用可能なメモリスペースがあらかじめ定義された閾値未満であることを検出すると、前記冗長ストレージ構成を変更するように構成されていることを特徴とする請求項１５に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的に、メモリシステムに関し、特に、冗長ストレージ構成に関する。
【背景技術】
【０００２】
ソリッドステートドライブ（ＳＳＤ）などの不揮発性メモリシステムでは、メモリ障害が発生した場合にＳＳＤに書き込まれたデータを正常に修復できるようにするために冗長ストレージスキームを用いてデータを記憶する場合がある。不揮発性メモリの種々の冗長ストレージスキームは当技術分野において既知である。
【０００３】
例えば、米国特許出願公開第２０１０／００１７６５０号（この開示は参照により本明細書に組み込まれる）は、外部ホストと通信するためのホストインタフェースと、第１の複数のフラッシュメモリデバイスを含むメインストレージと、を含む不揮発性メモリデータストレージシステムについて記載している。各メモリデバイスは第２の複数のメモリブロックを含む。第３の複数の第１ステージコントローラは第１の複数のフラッシュメモリデバイスに結合されている。第２ステージコントローラは内部インタフェースを介してホストインタフェース及び第３の複数の第１ステージコントローラに結合されている。第２ステージコントローラはデータ復旧のため少なくとも１つのパリティに従い独立ディスク冗長アレイ（ＲＡＩＤ）演算を行うように構成されている。
【０００４】
別の例として、米国特許出願公開第２００９／０２０４８７２号（この開示は参照により本明細書に組み込まれる）は、コントローラが物理ブロックアドレス（ＰＢＡ）バスを介してアクセスされるｒａｗ−ＮＡＮＤ型フラッシュメモリチップを有するフラッシュモジュールについて記載している。コントローラは論理ブロックアドレスを物理ブロックアドレスへと変換する。いくつかの実施形態では、データはシステムの信頼性を向上するためにＲＡＩＤシステムに類似する冗長ストレージを提供するように構成することができる。
【発明の概要】
【０００５】
本明細書に記載される本発明の一実施形態は、メモリを制御するメモリコントローラにて、メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価するステップを含む方法を提供する。メモリコントローラにて、利用可能なメモリスペースに応じた冗長ストレージ構成が選択される。選択された冗長ストレージ構成を用いて、データに関する冗長情報が算出される。メモリ内の利用可能なメモリスペースにデータ及び冗長情報が書き込まれる。
【０００６】
いくつかの実施形態では、冗長ストレージ構成を選択するステップは、利用可能なメモリスペースに基づき、冗長情報が算出されるメモリブロックの数を選択するステップを含む。いくつかの実施形態では、冗長ストレージ構成を選択するステップは、利用可能なメモリスペースに応じた符号化率を有するエラー訂正符号（ＥＣＣ）を選択するステップを含み、冗長情報を算出するステップは、選択されたＥＣＣを用いて冗長情報を算出するステップを含む。更に他の実施形態では、冗長ストレージ構成を選択するステップは、１つ以上のメモリブロックを、冗長情報の一部の記憶から、データの一部分の記憶へと再割り当てするステップを含む。
【０００７】
いくつかの実施形態では、冗長ストレージ構成を選択するステップは、１つ以上のメモリブロック全体の障害に対して保護する第１ストレージ構成から、メモリブロックの一部分のみの障害に対して保護する第２ストレージ構成へと切り換えるステップを含む。他の実施形態では、第１ストレージ構成により生成された冗長ブロックを再生利用しつつ、第１ストレージ構成から第２ストレージ構成への切り換えるステップが実施される。更に他の実施形態では、冗長ストレージ構成を選択するステップは、利用可能なメモリスペースがあらかじめ定義された閾値未満であることを検出すると冗長ストレージ構成を変更するステップを含む。
【０００８】
加えて、本発明の実施形態によれば、メモリ及びメモリコントローラを含む装置が提供される。メモリコントローラは、メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価し、利用可能なメモリスペースに応じた冗長ストレージ構成を選択し、選択された冗長ストレージ構成を用いてデータに関する冗長情報を算出し、データ及び冗長情報をメモリ内の利用可能なメモリスペースに書き込むように構成されている。
【０００９】
加えて、本発明の実施形態によれば、インタフェース及びプロセッサを含むメモリコントローラが提供される。インタフェースはメモリと通信するように構成されている。プロセッサは、メモリ内に残った、データを書き込むために利用可能なメモリスペースを評価し、利用可能なメモリスペースに応じた冗長ストレージ構成を選択し、選択された冗長ストレージ構成を用いてデータに関する冗長情報を算出し、データ及び冗長情報をメモリ内の利用可能なメモリスペースに書き込むように構成されている。
【００１０】
本発明は、下記の図面と併せて解釈される、以下の本発明の実施形態の詳細な説明からより完全に理解されよう。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るメモリシステムを模式的に示すブロック図である。
【図２】本発明の一実施形態に係る、冗長ストレージ構成を選択するための方法を模式的に示すフローチャートである。
【発明を実施するための形態】
【００１２】
概説
本明細書に記載される本発明の実施形態は、ソリッドステートドライブ（ＳＳＤ）などのメモリシステムをメモリ障害に対して保護するための、改良された冗長ストレージスキームを提供する。開示する技術により、メモリシステムの全体的な性能を向上するために、メモリコントローラが利用可能なメモリスペースに基づき冗長ストレージ構成を自由に選択することが可能になる。
【００１３】
例えば、新規データを書き込むための十分なメモリスペースがない可能性があるとコントローラが評価した場合、メモリコントローラは冗長情報の記憶からデータの記憶へとメモリスペースを再割り当てしてもよい。別の例としては、利用可能なメモリスペースが小さい場合、メモリコントローラはより少ない冗長情報、ゆえに、より少ないオーバーヘッドを生成する冗長ストレージスキームを選択してもよい。
【００１４】
通常の実施においては、メモリコントローラはまず現時点で利用可能なメモリスペースを評価する。したがって、メモリコントローラは、新規冗長情報並びに新規冗長情報及び新規データの双方が占めるメモリスペースを算出する方法を、現時点で利用可能なメモリスペースに基づき選択する柔軟性を持つ。
【００１５】
本明細書に記載する開示技術を用いると、必要に応じて、ストレージの信頼性を犠牲にしてメモリスペースを増加することができる。利用可能なメモリスペースが許せば、データは非常に高い信頼性のもとで記憶される。メモリがいっぱいになると、障害に対する耐性がいくらか低下するという犠牲を払って追加のメモリスペースを得ることができる。
【００１６】
システムの説明
図１は、本発明のある実施形態に係るメモリシステム２０を模式的に例示したブロック図である。ホスト１０はストレージのためのデータを送信し、逆に、ストレージから取り出したデータをメモリシステム２０から受け取る。システム２０は、コンピューティングデバイス、携帯電話若しくはその他の通信端末、リムーバブルメモリモジュール（「ＵＳＢフラッシュドライブ」と呼ぶこともある）、ソリッドステートドライブ（ＳＳＤ）、デジタルカメラ、音楽プレーヤ若しくはその他のメディアプレーヤ、及び／又はデータが記憶され取り出されるその他任意のシステム若しくはデバイスなどの、様々なホストシステム及びデバイス内で使用することができる。
【００１７】
メモリシステム２０は、本例では１つ以上のフラッシュメモリデバイス３０である不揮発性メモリに対してデータを読み出す及び書き込むメモリコントローラ２５を含む。コントローラ２５は、ホスト１０と通信するためのホストインタフェース３５と、本明細書に記載する方法を実行するプロセッサ４０と、ランダムアクセスメモリ（ＲＡＭ）４５と、フラッシュデバイス３０と通信するためのメモリインタフェース５０と、を含む。
【００１８】
代替実施形態では、メモリシステム２０中の不揮発性メモリは、例えば、ＮＯＲフラッシュ、チャージトラップフラッシュ（ＣＴＦ）、相変化ＲＡＭ（ＰＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）又は強誘電体ＲＡＭ（ＦｅＲＡＭ）などの任意の他の好適なタイプの不揮発性メモリを含んでもよい。
【００１９】
各フラッシュデバイスは複数のアナログメモリセルを含む。各アナログメモリセルは、セル内に記憶された情報を示す電荷又は電圧のなどの、ストレージ値とも称されるアナログ電圧を記憶する。フラッシュメモリでは、アナログ値の取り得る範囲はいくつかの領域に分割され、各領域は１つ以上のデータビット値に対応する。所望のビットに対応する公称アナログ値を書き込むことによって、アナログメモリセルにデータが書き込まれる。
【００２０】
通常、各デバイス３０内のメモリセルはメモリブロックにて配置される。各メモリブロックは、行がワード線に対応し、列がビット線に対応するメモリセルのアレイを含む。通常、各ワード線は１つ以上のデータページを記憶する。通常、データはページ単位で書き込み及び読み出しが行われ、ブロック単位で消去される。システム２０の性能は種々のメモリ障害、例えば、ブロック障害又はワード線障害の影響を受ける可能性がある。本明細書に記載されるいくつかの実施形態では、メモリコントローラ２５は記憶されたデータをこのような障害から保護する冗長ストレージ構成を適用する。
【００２１】
コントローラ２５、詳細にはプロセッサ４０は、ハードウェアで実装してもよい。あるいは、コントローラは、好適なソフトウェアを実行するマイクロプロセッサ、又はハードウェア要素及びソフトウェア要素の組み合わせを含んでもよい。
【００２２】
図１の構成は、単に概念の明瞭性を目的として示した例示的なシステムの構成である。その他の任意の好適なメモリシステムの構成を使用することもできる。種々のインタフェース、アドレス指定回路、タイミング及びシーケンス回路、並びにデバッギング回路などの、本発明の原理を理解する上で必要ではない要素は、明瞭性のために図から省略されている。
【００２３】
図１の例は３つのメモリデバイス３０を示しているものの、システム２０はメモリコントローラ２５によって制御される任意の所望の数のメモリデバイスを含んでもよい。図１に示す例示的なシステム構成において、メモリデバイス３０及びメモリコントローラ２５は２つの別個の集積回路（ＩＣ）として実装されている。ただし、代替実施形態では、メモリデバイス及びメモリコントローラは、単一のマルチチップパッケージ（ＭＣＰ）又はシステムオンチップ（ＳｏＣ）中の別個の半導体ダイ上に一体化されてもよく、内部バスによって相互接続してもよい。更に代替として、メモリコントローラ回路のいくつか又は全てはメモリデバイスが上に配置される同一のダイ上に存在してもよい。更に代替として、メモリコントローラ２５の機能性の一部又は全部をソフトウェアで実装し、これをホストシステムのプロセッサ又はその他の要素によって実行することもできる。いくつかの実施形態において、ホスト１０及びメモリコントローラ２５は、同一のダイ上、又は同一のデバイスのパッケージ内の別個のダイ上に作製してもよい。
【００２４】
いくつかの実施形態において、メモリコントローラ２５は、本明細書に記載する機能を実行するようにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えばネットワーク経由で電子的な形態でプロセッサにダウンロードしてもよく、又は別の方法によって、あるいは追加的に、磁気メモリ、光学的メモリ、若しくは電子メモリなどの非一時的な有形的媒体によって提供及び／又は保存することができる。
【００２５】
利用可能なメモリスペースに基づく冗長ストレージ構成の選択
上記のように、デバイス３０では様々な種類のメモリ障害が発生する可能性がある。起こり得るメモリ障害には、例えば、デバイス３０の１つにおけるメモリブロック又はワード線の障害を含む。このような障害からデータを保護するために、メモリコントローラ２５は冗長ストレージ構成を用いてデータを記憶する。
【００２６】
いくつかの実際のケースにおいては、ほとんどのブロック障害はプログラミング中に発生するため、通常、この段階ではより高度の保護が必要となる。プログラミング障害からデータを保護するための技術の例は、２０１２年８月２３日に出願された、本特許出願の譲受人に譲渡され、その開示が参照により本明細書に組み込まれる米国特許出願第１３／５９２，５６１号に記載されている。
【００２７】
通常、メモリコントローラは特定のデータに関する冗長情報を算出し、データ及び冗長情報をデバイス３０内に記憶する。冗長ストレージ構成は、メモリ障害が発生した場合、障害が発生したメモリセル内のデータを、残りのデータ及び冗長情報を用いて再構成することができるように設計されている。例えば、メモリコントローラはこのためにＲＡＩＤスキームを用いてもよい。
【００２８】
しかし、実際には、冗長ストレージの障害耐性はメモリスペースの犠牲によって得られる。通常、冗長性が高いほど障害への耐性が向上するが、その一方で、利用可能なメモリスペースは減少する。いくつかの実施形態では、メモリコントローラ２５は、冗長情報の相対的サイズ、すなわち、冗長ストレージにより生じたメモリオーバーヘッドの量を、デバイス３０内の利用可能なメモリスペースに合うように適合させる。
【００２９】
図２は、本発明の一実施形態に係る、冗長ストレージ構成を選択するための方法を模式的に示すフローチャートである。評価ステップ１００では、メモリコントローラ２５はメモリデバイス３０内の、データを書き込むために利用可能なメモリスペースを評価する。選択ステップ１１０では、メモリコントローラ２５は利用可能なメモリスペースに応じた冗長ストレージ構成を選択する。算出ステップ１２０では、メモリコントローラ２５は選択された冗長ストレージ構成を用いて冗長情報を算出する。書込みステップ１３０では、メモリコントローラ２５はデータ及び冗長情報をメモリ内の利用可能なメモリスペースに書き込む。
【００３０】
冗長ストレージ構成の１つでは、ステップ１２０において、データの複数のメモリブロックに関してビットごとの論理ＸＯＲ演算を行うことにより冗長情報を算出することができ、ステップ１３０において、メモリ内に記憶されるＸＯＲパリティブロックを生成する。このようなＲＡＩＤ  ＸＯＲ技術を用いる場合、ＲＡＩＤストライプはＮブロック、つまりＮ−１データブロック及びＮ−１データブロックに対するビットごとのＸＯＲ演算により算出されたパリティ（冗長）ブロックを含む。Ｎは整数である。ストライプ内の単一ブロック障害が発生した場合、メモリコントローラはパリティブロック及び残りのブロックからデータを再構成することができる。
【００３１】
Ｎが小さくなるほど所与の量のデータに対してより多くのパリティブロックが算出され、ＳＳＤ内において利用可能なメモリスペースの量は減少する。逆に、Ｎを増加することで、各パリティブロックはより多数のデータブロックから作成されるため、利用可能なメモリスペースは増加する。
【００３２】
一実施形態では、新規データに利用可能なメモリスペースがあらかじめ定義された閾値未満であることをステップ１００においてメモリコントローラが検出した場合、コントローラはステップ１１０においてＮを増加してもよいが、これはより多くのデータブロックのＸＯＲを算出することによりステップ１２０において冗長データを作成するためである。Ｎを増加すると、パリティブロックの数、又は、事実上、冗長情報の全てが占めるメモリスペースが減少する。残りの利用可能なメモリスペースは、例えば、新規データの記憶のため又はより多くのオーバープロビジョニングの提供のために使用することができる。
【００３３】
別の冗長ストレージ構成では、ステップ１２０において、メモリコントローラ２５はエラー訂正符号（ＥＣＣ）スキームを用いて冗長情報を算出してもよい。換言すれば、これらの実施形態における冗長情報はＥＣＣの冗長ビットを含む。失われたデータの修復のために、記憶されたＥＣＣ符号化データの復号化を用いることができる。不揮発性メモリシステムで一般に使用される特別な符号の分類の１つは低密度パリティ検査（ＬＤＰＣ）符号である。Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ（ＢＣＨ）符号などの他の符号の分類もまた使用してもよい。符号化スキームで使用される冗長ビットはデータブロックとともに、又はデータブロックと別々にメモリブロック内に記憶することができる。
【００３４】
これらＥＣＣ符号の分類のそれぞれにおいては、符号化データサイズと元の生データサイズとの比率は符号化率と称される。ステップ１００において評価された利用可能なメモリスペースがあらかじめ定義された閾値未満である場合、メモリコントローラがステップ１１０においてメモリ内の符号化データのサイズを低減することができるように、いくつかのＥＣＣエンコーダ及びデコーダは符号化率を変更するように構成することができる。あるいは、メモリコントローラは、ステップ１００で利用可能なメモリスペースに応じて、メモリに書き込まれる冗長情報のサイズをステップ１３０において変更するために、符号化率に効果的な変更を施すためステップ１１０において符号化スキームを変更することができる。
【００３５】
前述のＸＯＲスキーム又はＥＣＣスキームに基づく冗長ストレージ構成のいずれにおいても、メモリコントローラは、ステップ１００での、メモリ内に残った、新規データを書き込むために現時点で利用可能なメモリスペースの初期評価に応じて、メモリ内に記憶される冗長情報のサイズを変更することができる。利用可能なメモリがあらかじめ定義された閾値未満である場合、ステップ１２０において、冗長情報のサイズを小さくすることができる。ステップ１１０において、新規データのために利用可能なメモリがわずかしか残っていない場合、メモリコントローラは、更には、冗長情報を全く作成しないことを決定してもよい。ステップ１１０において、メモリコントローラは冗長ストレージ構成全体を、例えば、ＥＣＣからＸＯＲに、又は任意の好適な冗長スキームに変更することを決定してもよい。
【００３６】
前述のＥＣＣ及びＸＯＲの冗長スキーム並びに図２に示すフローチャートは例であり、本発明の実施形態を限定するものではない。本発明の実施形態に従い、ステップ１００における、利用可能なメモリスペースがあらかじめ定義された閾値未満に低下したとの評価に応じて、ステップ１１０及びステップ１２０では、メモリコントローラがメモリ内に記憶される冗長情報のサイズを効果的に変更する柔軟性を持つ任意の好適な冗長ストレージ構成を使用することができる。
【００３７】
いくつかの実施形態では、メモリコントローラはパリティブロックとして元々機能していたメモリブロックをデータブロックとして機能するように再割り当てすることにより冗長ストレージ構成を変更する。再割り当ては、例えば、ＲＡＩＤストライプが正常に書き込まれた後に行われてもよい。この種の再割り当てにより、パリティブロックがデータブロックへと効果的に変更される。したがって、新規データ用のメモリスペースがあらかじめ定義された閾値未満になると、冗長性のために確保されたメモリスペースの比率が動的に変化する。
【００３８】
他の実施形態では、メモリコントローラは冗長情報を専用冗長ストライプに、例えば、専用ブロックグループに記憶する。メモリがいっぱいになると、メモリコントローラは冗長ストライプ又はその一部を新規データ記憶のために再割り当てしてもよい。
【００３９】
一般に、冗長ストレージ構成には、ステップ１２０で算出した冗長情報をパリティブロック又はストライプに記憶することを含んでもよく、パリティブロック又はストライプは、ステップ１００で評価された、新規データのために利用可能なスペースが小さすぎる（例えば、あらかじめ定義された閾値未満である）ことをメモリコントローラが検出すると再使用される。ステップ１３０において、冗長情報は第１の別個のフラッシュメモリデバイス内の再使用可能なパリティブロック又はストライプに記憶することができ、冗長情報のために再使用されるブロックのエンデュランスを増加するために、データは、冗長情報のための第１のフラッシュデバイスとは異なる１つ以上のフラッシュメモリデバイス内のデータブロックに書き込まれる。
【００４０】
更に他の実施形態では、メモリコントローラ２５は、プログラミング中にはブロック障害に対する完全な保護を適用してもよく、その後、読出し中にはワード線障害のみに対する保護へと戻ってもよい。これらの実施形態では、メモリコントローラは、最初に、ブロック障害に対して保護する冗長ブロックを生成する冗長ストレージ構成を用いてデータを記憶する。冗長ブロック（例えば、「ガベージコレクション」プロセスのコンパクションの一部として）を再生利用する場合、メモリコントローラは冗長ブロック全体を、個々のワード線障害に対して保護する個々の冗長ページと入れ替えてもよい。例えば、後者のスキームではブロック全体の代わりに有効ページのみを保護するため、発生するオーバーヘッドが減少する。
【００４１】
本明細書で記載される実施形態では主としてソリッドステートドライブの冗長構成について取り扱うが、本明細書記載の方法は任意の他の好適なデータストレージシステムにおいても使用することができる。
【００４２】
したがって、上述の実施形態は例として挙げられており、本発明は、以上に具体的に図示され説明されたものに限定されないことが理解されるであろう。むしろ、本発明の範囲は、以上に説明した様々な特徴の組み合わせ及び部分的組み合わせの両方、並びに当業者であれば前述の説明を読むことによって想到するであろう従来技術に開示されていないそれらの変型及び修正を含む。この参照により本特許出願に組み込まれる文献は、何らかの用語が、これらの組み込まれた文献の中において本明細書内で明示的又は暗示的になされた定義と対立する方法で定義されている範囲において、本明細書内の定義のみが考慮されるべきである点を除き、本願の必須部分であるとみなされるべきである。
【図１】
2016510928.tif 000003
【図２】
2016510928.tif 000004
【国際調査報告】
2016510928.tif 000005
2016510928.tif 000006
2016510928.tif 000007