(57)【要約】  経験的に導出される能力に従ってソリッドステート記憶媒体を書き込み調整することによって、ソリッドステートベースの記憶装置に関連するコストを最小化すると同時にソリッドステートベースの記憶装置の恩恵の多くを得ることができる。検査されていないソリッドステート記憶媒体は、無駄のないことに起因して安価に取得されることが可能であり、上記無駄は、他の方法では、厳しい製造業者標準に能力が合わないソリッドステート記憶媒体についての検査と後の廃棄とに内在する。検査されていないソリッドステート記憶媒体は、こうしたソリッドステート記憶媒体内の個々のソリッドステートブロック、又はブロックのグルーピングの能力を経験的に識別することができる検査手順を通じて、初期化される。それから、上記の経験的に取得される能力情報を利用して、データがソリッドステート記憶媒体に書き込まれる速度が調整される。さらに、上記能力情報は、個々のソリッドステートブロック、又はブロックの個々のグルーピングを、異なる性能閾値を含み得るビンへと、ビンに入れることを可能にすることができる。
2017502380.tif 000002
【特許請求の範囲】
【請求項１】
ソリッドステート記憶媒体にデータを記憶するコンピュータ実行可能命令を含む１つ以上のコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
前記ソリッドステート記憶媒体を検査して、前記ソリッドステート記憶媒体の個々の部分の能力を識別するステップと、
前記検査が明らかにした能力が予め定義された閾値より大きい前記ソリッドステート記憶媒体のうち第１の組の個々の部分へのデータ記憶を許容する第１の組のエントリを書き込みポリシーテーブルに生成するステップと、
前記第１の組のエントリの各エントリについて、前記ソリッドステート記憶媒体の対応する部分の、能力により知らせられる書き込み速度を含めて、前記検査により明らかにされたとおり、記憶のためのデータを受け入れるステップと、
前記検査が明らかにした能力が前記予め定義された閾値より小さい前記ソリッドステート記憶媒体のうち第２の組の個々の部分へのデータ記憶を防止する第２の組のエントリを書き込みポリシーテーブルに生成するステップと、
前記ソリッドステート記憶媒体への記憶のための前記データを受信するステップと、
前記ソリッドステート記憶媒体のうち前記第１の組の個々の部分の中から、前記の受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択するステップと、
前記受信されたデータが前記ソリッドステート記憶媒体のうち前記の選択された部分に書き込まれる速度を、前記書き込みポリシーテーブルから取得される、前記選択された部分の各々に対応する前記書き込み速度に従って調整するステップと、
を含むステップに向けられる、
コンピュータ可読媒体。
【請求項２】
前記受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択する前記コンピュータ実行可能命令は、前記ソリッドステート記憶媒体のうち前記の選択された部分の予期される耐久性に基づいて前記ソリッドステート記憶媒体のうち前記少なくともいくらかの部分を選択して、より低い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を減少させ、より高い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を増加させるコンピュータ実行可能命令を含む、請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択する前記コンピュータ実行可能命令は、前記ソリッドステート記憶媒体のうち前記の選択された部分の予期される耐久性に基づいて前記ソリッドステート記憶媒体のうち前記少なくともいくらかの部分を選択して、より低い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を増加させ、より高い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を減少させるコンピュータ実行可能命令を含む、請求項１に記載のコンピュータ可読媒体。
【請求項４】
前記受信されたデータに関するメタデータを取得するさらなるコンピュータ実行可能命令、を含み、前記受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択する前記コンピュータ実行可能命令は、前記の取得されたメタデータに基づいて前記ソリッドステート記憶媒体のうち前記少なくともいくらかの部分を選択するコンピュータ実行可能命令を含む、請求項１に記載のコンピュータ可読媒体。
【請求項５】
安価なソリッドステートベースの記憶を有するコンピューティング装置を供給する方法であって、
閾値処理されていないソリッドステート記憶媒体を取得するステップと、
前記の取得されたソリッドステート記憶媒体を検査して、前記ソリッドステート記憶媒体の個々の部分の能力を識別するステップと、
前記検査が明らかにした能力が予め定義された閾値より大きい前記ソリッドステート記憶媒体のうち第１の組の個々の部分へのデータ記憶を許容する第１の組のエントリを書き込みポリシーテーブルに生成するステップと、
前記第１の組のエントリの各エントリについて、前記ソリッドステート記憶媒体の対応する部分の、能力により知らせられる書き込み速度を含めて、前記検査により明らかにされたとおり、記憶のためのデータを受け入れるステップと、
前記検査が明らかにした能力が前記予め定義された閾値より小さい前記ソリッドステート記憶媒体のうち第２の組の個々の部分へのデータ記憶を防止する第２の組のエントリを書き込みポリシーテーブルに生成するステップと、
を含む方法。
【請求項６】
前記ソリッドステート記憶媒体への記憶のためのデータを受信するステップと、
前記ソリッドステート記憶媒体のうち前記第１の組の個々の部分の中から、前記の受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択するステップと、
前記受信されたデータが前記ソリッドステート記憶媒体のうち前記の選択された部分に書き込まれる速度を、前記書き込みポリシーテーブルから取得される、前記選択された部分の各々に対応する前記書き込み速度に従って調整するステップと、
をさらに含む請求項５に記載の方法。
【請求項７】
前記受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択するステップは、前記ソリッドステート記憶媒体のうち前記の選択された部分の予期される耐久性に基づいて前記ソリッドステート記憶媒体のうち前記少なくともいくらかの部分を選択して、より低い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を減少させ、より高い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を増加させることを含む、請求項６に記載の方法。
【請求項８】
前記受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択するステップは、前記ソリッドステート記憶媒体のうち前記の選択された部分の予期される耐久性に基づいて前記ソリッドステート記憶媒体のうち前記少なくともいくらかの部分を選択して、より低い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を増加させ、より高い予期される耐久性を有する前記ソリッドステート記憶媒体の部分の利用を減少させることを含む、請求項６に記載の方法。
【請求項９】
閾値処理されていないソリッドステート記憶媒体と、
ファームウェアと、
を含み、
前記ファームウェアは、
前記ソリッドステート記憶媒体を検査して、前記ソリッドステート記憶媒体の個々の部分の能力を識別するステップと、
前記検査が明らかにした能力が予め定義された閾値より大きい前記ソリッドステート記憶媒体のうち第１の組の個々の部分へのデータ記憶を許容する第１の組のエントリを書き込みポリシーテーブルに生成するステップと、
前記第１の組のエントリの各エントリについて、前記ソリッドステート記憶媒体の対応する部分の、能力により知らせられる書き込み速度を含めて、前記検査により明らかにされたとおり、記憶のためのデータを受け入れるステップと、
前記検査が明らかにした能力が前記閾値より小さい前記ソリッドステート記憶媒体のうち第２の組の個々の部分へのデータ記憶を防止する第２の組のエントリを書き込みポリシーテーブルに生成するステップと、
前記ソリッドステート記憶媒体への記憶のためのデータを受信するステップと、
前記ソリッドステート記憶媒体のうち前記第１の組の個々の部分の中から、前記の受信されたデータを記憶すべき前記ソリッドステート記憶媒体のうち少なくともいくらかの部分を選択するステップと、
前記受信されたデータが前記ソリッドステート記憶媒体のうち前記の選択された部分に書き込まれる速度を、前記書き込みポリシーテーブルから取得される、前記選択された部分の各々に対応する前記書き込み速度に従って調整するステップと、
を含むステップを実行する、
記憶装置。
【請求項１０】
前記検査は、前記ファームウェアにより公開されるインターフェースを通して当該記憶装置が通信可能に結合されたコンピューティング装置上で実行される処理によって開始される、請求項９に記載の記憶装置。
【発明の詳細な説明】
【背景技術】
【０００１】
現代の記憶媒体には、物理的にシーケンシャルなやり方でデータを記憶する媒体、例えば、従来の磁気及び光記憶媒体などだけでなく、さらに、物理的にランダムなやり方でデータを記憶する媒体、例えば、ソリッドステートベースの記憶媒体などが含まれる。上記の物理的にランダムな媒体は、任意の１ブロックのデータが、任意の他のブロックのデータと同様に効率的にアクセスされることを許容する。今日一般的に利用可能な様々な記憶媒体間における上記及び他の物理的な差は、結果として、能力、属性、及び性能において異なる記憶媒体になる。例えば、磁気及び光媒体は、装置ヘッドの物理的場所からブロックの物理的場所に物理的に移動する読み出し及び書き込み装置を必要とする。結果として、上記の記憶媒体がデータを読み出し又は書き込むことができる速度は、装置ヘッドがある場所から別の場所に物理的に移行しなければならないため、媒体上でのデータの場所の近さに依存する。逆に、ソリッドステート記憶媒体は、いかなる物理的移動部分も要することなく、電気信号を通じてデータを読み出し及び書き込むことができる。結果として、こうした媒体に記憶されるデータは、例えば回転する媒体上で、データの特定の場所に依存しない効率性で、書き込まれ又は読み出されることができる。
【０００２】
データセンター環境内での使用の観点から、ソリッドステート記憶媒体は、磁気記憶媒体を上回る特定の性能優位性を有するものと認められる。例えば、これまでに示されたとおり、ソリッドステート記憶媒体は移動部分を含まないことが可能であるため、ソリッドステート記憶媒体は一般に、磁気記憶媒体より電力効率がよく、より熱耐性があり、物理的障害及び失敗の傾向がより小さいと見なされる。こうした利点は、データセンター環境において実質的である可能性がある。データセンター環境において、より高い温度で上記のデータセンターを運用することは、冷却器具によるより少ないエネルギー利用から生じる金銭的節約をもたらす可能性があり、ソリッドステート記憶媒体の増加した電力効率は、記憶媒体自体によるより少ないエネルギー利用からのさらなる金銭的節約をもたらす可能性がある。さらに、ソリッドステート記憶媒体は一般に、磁気記憶媒体より迅速にデータを読み出すこと及び書き込むことの双方が可能であるものと見なされ、このことは、データセンター環境並びに他のコンピューティング環境における恩恵を提供し得る。
【０００３】
不幸なことに、ソリッドステート記憶媒体は、しばしば、所与の量の記憶容量について、磁気記憶媒体よりも桁違いにより高価である。こうした費用は、大抵、ソリッドステート記憶媒体のパッケージングにおける非効率性に由来する。具体的に、ソリッドステート記憶媒体には、データのビットを記憶する個々の、トランジスタベースのブロックが含まれる。こうしたブロックはウェーハ上に製造され、ウェーハはダイ部品に分割され、ダイ部品はウェーハから切り出される（sliced  out  of）ことが可能である。各ダイは、数千の又は数百万でさえある上記のブロックを含むことができ、１つ以上のダイが、ソリッドステートベースの記憶媒体の基礎を形成することができる。個々のソリッドステートブロックは異なる能力を有する可能性があり、いくつかのブロックが他のブロックより高い性能及び／又は耐久性の能力を有し得る。ダイからソリッドステートベースの記憶媒体を構築するにおいて、特定の性能又は耐久性閾値を達成するのに失敗することを含むダイの故障は、ソリッドステートベースの記憶媒体全体が再販売に適さないと考えられることをもたらし得る。こうした厳格な基準は、実質的な無駄をもたらし、ソリッドステート記憶媒体のコストを増加させる可能性がある。
【発明の概要】
【０００４】
一実施形態において、ソリッドステート記憶媒体は、検査されないことが可能であり、そのようなものとして、異なる能力を有し得るソリッドステートブロックを含むことができる。上記の検査されていないソリッドステート記憶媒体は、一般的に利用可能なソリッドステートベースの記憶媒体よりも桁違いにより高価でないことが可能である。なぜならば、上記の一般的に利用可能なソリッドステート記憶媒体は、製造されても検査の後に発見される不十分な能力に起因して販売されない大きいパーセンテージのソリッドステート記憶媒体について、責任をとるように価格をつけられる可能性があるからである。
【０００５】
別の実施形態において、初期検査が、異なる能力を有し得るソリッドステートブロックを含むソリッドステート記憶媒体に対して実行されることができる。上記の初期検査は、各ソリッドステートブロック、又はブロックの個々のグルーピングの能力を経験的に識別することができ、上記の情報を提供して、ソリッドステート記憶媒体について後の利用に知らせることができる。
【０００６】
さらなる実施形態において、データがソリッドステート記憶媒体に書き込まれる速度が、ソリッドステート記憶媒体の経験的に識別された能力に従って調整されることができる。データがソリッドステート記憶媒体に書き込まれる速度を調整することによって、特定のソリッドステートブロックが、その潜在的なフル性能まで利用されないことが可能であり、ただし、より大きい数量のソリッドステートブロックが利用され、結果として、より大きい記憶容量がもたらされることが可能である。さらに、データがソリッドステート記憶媒体に書き込まれる速度を調整することによって、ソリッドステート記憶媒体の耐久性が増加され得る。
【０００７】
さらに別の実施形態において、データがソリッドステート記憶媒体に書き込まれる速度を調整することで、類似の環境において利用され得る従来の磁気記憶媒体にデータが書き込まれることが可能な速度と同等の、より低い境界を有することができる。それから、ソリッドステート記憶媒体は、該媒体に、競合する従来の磁気記憶媒体と少なくとも同様の速さでデータを書き込ませることができ、上記のより低い書き込み速度に内在するより高い利用性に起因して、競合する従来の磁気記憶媒体と同様に安価であり得る。しかしながら、ソリッドステート記憶媒体は、該媒体から、競合する従来の磁気記憶媒体より実質的に速くデータを読み出させることができ、また、競合する従来の磁気記憶媒体より信頼性があり、より電力効率がよく、より熱耐性があり得る。
【０００８】
さらに別の実施形態において、ソリッドステート記憶媒体の経験的に識別される能力は、個々のソリッドステートブロック、又はブロックの個々のグルーピングを、異なる性能閾値を含み得るビンへと、ビンに入れることを可能にすることができる。異なる性能についてのこうしたビンの利用は、上記のビンに記憶されるデータの態様を識別するメタデータに基づくことができる。場合により、上記のビンは、異なる論理記憶ボリュームを定義することができる。
【０００９】
本発明の概要は、以下に詳細な説明においてさらに説明される概念のうち選択されたものを簡素化された形式で紹介するために提供される。本発明の概要は、請求される対象事項の重要な特徴又は必須の特徴を識別するものではなく、請求される対象事項の範囲を限定するために使用されるべきものでもない。
【００１０】
さらなる特徴及び利点が、添付の図面を参照して進む下記の詳細な説明から明らかにされるであろう。
【図面の簡単な説明】
【００１１】
下記の詳細な説明は、添付の図面と併用されたときに最も良く理解され得る。
【図１】一例示的なソリッドステートベースの記憶装置を結合させた一例示的なコンピューティング装置のブロック図である。
【図２】ソリッドステート記憶媒体の一例示的な初期検査のレイヤブロック図である。
【図３】経験的に収集された性能データによって知らせられるソリッドステート記憶媒体の一例示的な利用のレイヤブロック図である。
【図４】検査されていないソリッドステート記憶媒体の一例示的な利用のフロー図である。
【発明を実施するための形態】
【００１２】
下記の説明は、経験的に導出される能力に従ってソリッドステート記憶媒体を書き込み調整する（write-throttling）ことによって、ソリッドステート記憶装置に関連するコストを最小化すると同時にソリッドステート記憶装置の恩恵の多くを得ることに関する。検査されていない（Untested）ソリッドステート記憶媒体は、無駄のないことに起因して安価に取得されることが可能であり、上記無駄は、他の方法では、厳しい製造業者標準に能力が合わないソリッドステート記憶媒体についての検査と後の廃棄とに内在する。検査されていないソリッドステート記憶媒体は、こうしたソリッドステート記憶媒体内の個々のソリッドステートブロック、又はブロックのグルーピングの能力を経験的に識別することができる検査手順を通じて、初期化されることができる。それから、上記の経験的に取得される能力情報を利用して、データがソリッドステート記憶媒体に書き込まれる速度を調整する（throttle）ことができる。データがソリッドステート記憶媒体に書き込まれる速度を調整することによって、より大きい数量のソリッドステートブロックが利用され、より大きい記憶容量を低減されたコストでもたらすことができる。さらに、データがソリッドステート記憶媒体に書き込まれる速度を調整することによって、ソリッドステート記憶媒体の耐久性を増加させることができる。書き込み調整は、類似の環境において利用され得る従来の磁気記憶媒体にデータが書き込まれることが可能な速度と同等の、より低い境界を有することができる。それから、ソリッドステート記憶媒体は、該媒体に、競合する従来の磁気記憶媒体と少なくとも同じ速さでデータを書き込ませることが可能であり、上記のより低い書き込み速度に内在するより多くの利用に起因して、競合する従来の磁気記憶媒体と同様に安価であり得る。しかしながら、ソリッドステート記憶媒体は、該媒体から、競合する従来の磁気記憶媒体より実質的に速くデータを読み出させることが可能であり、競合する従来の磁気記憶媒体より信頼性があり、より電力効率がよく、より熱耐性があり得る。ソリッドステート記憶媒体の経験的に識別される能力は、個々のソリッドステートブロック、又はブロックの個々のグルーピングを、異なる性能閾値を含み得るビンへと、ビンに入れること（binning）を可能にすることができる。異なる性能についてのこうしたビンの利用は、上記のビンに記憶されるデータの態様を識別するメタデータに基づくことができる。場合により、上記のビンは、異なる論理記憶ボリュームを定義することができる。
【００１３】
本明細書に説明される手法は、これに限られないが、ソリッドステートベースの（solid-state-based）記憶装置に焦点を当てる。このことは反対に、以下に説明されるメカニズムは、記憶媒体の製造業者が個々のユニットのうちほんのいくらかにおける低減された能力に起因して記憶媒体の大部分を受け入れ又は廃棄し、これにより、廃棄される記憶媒体の製造費用を埋め合わせるように高いコストがもたらされるような、異なる能力を有し得る個々のユニットを含む任意タイプの記憶媒体に、等しく適用可能である。
【００１４】
背景として、従来のソリッドステートベースの記憶装置の生産は、さらに、後の再販売に対して不十分な能力を有すると考えられるソリッドステート材料の生産をもたらしている。結果として、販売不可能であると考えられるこうした材料の生産コストは、後の販売に対して能力が十分であると見出された材料の販売価格に組み込まれ、これにより、上記の材料の価格が上げられる。より具体的に、また、当業者に知られているとおり、例えばソリッドステートベースの記憶装置に使用される、ソリッドステート記憶媒体は、通常、シリコン又は他の同様の材料のウェーハ上に生産される。各ウェーハは、通常、ソリッドステート記憶媒体の複数の「ダイ」を収容するようにサイズ調整される（sized）。ダイは、「ダイシング」として知られる処理によってウェーハから分離され、それから、例えばソリッドステートベースの記憶装置においての、後の利用のためにパッケージ化される。こうした記憶装置において利用される前、各々のパッケージ化されたダイが検査されて、その能力が所定閾値に合うことが確保される。
【００１５】
ソリッドステート記憶媒体についての検査される能力には、デジタルデータのビットを記憶することになる個々のソリッドステートコンポーネント又は「ブロック」の性能と、上記のソリッドステートブロックの耐久性と、他の能力、例えば、その電圧閾値、その保持（リテンション）、及び同様のものとが含まれる。例えば、いくつかのソリッドステートブロックが、該ブロックに、他のソリッドステートブロックより迅速にデータを書き込ませることが可能であり得る。同様に、別の例として、いくつかのソリッドステートブロックが、他のソリッドステートブロックより多くの再書き込みサイクルを被ることができるように予期されることがあり、これにより、より高い耐久性を有すると考えることができる。通常、ソリッドステート記憶媒体ダイは、定義された記憶容量、例えば１ギガバイトなどを有するように設計される。１ギガバイトのソリッドステート記憶チップとして販売されるために、パッケージ化されたダイは、１ギガバイト相当のデータを記憶するよう、十分な数量のソリッドステートブロックを含まなければならず、これにおいて、上記のソリッドステートブロックの各々は、少なくとも、閾値レベルの性能、耐久性、及び他の同様の検査された能力を有するように確認されている。上記の閾値能力レベルに合う、パッケージ化されたダイのソリッドステートブロックの十分なものがない場合、例えば、１ギガバイトのデータを記憶する上記のソリッドステートブロックの十分なものがない場合、このパッケージ化されたダイは、１ギガバイトのソリッドステート記憶チップとして販売されることができず、単に廃棄される可能性がある。このことは、ダイがいくらかのより低い閾値能力レベルに合った、１ギガバイト又はそれ以上相当のデータを記憶するのに十分な数量においてソリッドステートブロックを有していた場合にさえ、当てはまる。
【００１６】
したがって、ソリッドステート記憶チップのコストは、特定のチップに関連するオーバーヘッド及び製造コストだけでなく、ダイが閾値能力レベルに合う十分な数量のソリッドステートブロックを欠いたために該ダイが廃棄されたチップのすべてに関連するコストにさらに基づく。より具体的に、ソリッドステート記憶媒体、例えば、ソリッドステート記憶チップへとパッケージ化される前述されたダイなどの価格設定は、最初、閾値能力レベルを確立することと、その後、上記の閾値能力レベルに合うソリッドステート記憶媒体の数量を識別することと、最後、上記のソリッドステート記憶媒体の価格を設定することとによって確立され、したがって、こうした価格における、上記の閾値能力レベルに合うソリッドステート記憶媒体の上記数量の販売は、閾値能力レベルに合ったソリッドステート記憶媒体と上記の閾値能力レベルに合わないために廃棄されたソリッドステート記憶媒体との双方を製造するコストをカバーするのに十分である。
【００１７】
本明細書に説明されるメカニズムは、閾値能力レベルを考慮せずにソリッドステート記憶媒体の利用を可能にする。結果として、本明細書に説明されるメカニズムを用いた利用のために購入されるソリッドステート記憶媒体は、価格において実質的に低減させることができ、したがって、上記のソリッドステート記憶媒体の価格設定は、従来の磁気ベースの記憶媒体の価格設定に匹敵し得る。より具体的に、本明細書に説明されるメカニズムを用いた利用のために購入されるソリッドステート記憶媒体の価格は、閾値能力レベルに合わないために廃棄されたソリッドステート記憶媒体を製造するコストをもはやカバーする必要がない。なぜならば、示されたとおり、本明細書に説明されるメカニズムは、ソリッドステート記憶媒体が何らかの閾値能力レベルを必要とするかを最初にまったく決定することなく、上記のソリッドステート記憶媒体が購入されることを可能にするからである。閾値能力レベルのないことが、不適切であり得るいくらかのソリッドステート記憶媒体の購入をもたらし得ると同時に、本明細書に説明されるメカニズムは、比較可能な磁気媒体ベースの記憶装置と少なくとも同様に性能が良好である任意のソリッドステート記憶媒体を利用することによって、相当なパーセンテージの上記の閾値処理されていない（unthresholded）ソリッドステート記憶媒体の利用を可能にする。結果として、本明細書に説明されるメカニズムは、コストが比較可能な磁気媒体ベースの記憶装置とほぼ同等であり得るソリッドステートベースの記憶装置を可能にし、該ソリッドステートベースの記憶装置の性能は、より高くない場合、比較可能な磁気媒体ベースの記憶装置と少なくとも同様に良好であることが可能であり、上記ソリッドステートベースの記憶装置の電力消費、熱耐性、及び信頼性は、比較可能な磁気媒体ベースの記憶装置より有意義に大きくなり得る。
【００１８】
必要とはされないが、以下における説明は、１つ以上のコンピューティング装置により実行されるコンピュータ実行可能命令、例えばプログラムモジュールなどの、一般的文脈におけるものになる。より具体的に、説明は、特に明示されない限り、１つ以上のコンピューティング装置又は周辺装置によって実行されるふるまい及び動作の象徴表現を参照することになる。そのようなものとして、上記のふるまい及び動作は、構造化された形式においてデータを表現する電気信号の、処理ユニットによる操作を含み、時に、コンピュータにより実行されるものとして言及される。上記の操作は、データを変換し、あるいはデータをメモリ内の場所に維持し、このことは、当業者により十分理解されるやり方において、コンピューティング装置又は周辺装置の動作を再構成し、あるいはその他の方法で改変する。データが維持されるデータ構造は、データのフォーマットによって定義される特定のプロパティを有する物理的場所である。
【００１９】
概して、プログラムモジュールには、特定のタスクを実行し又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、モジュール、コンポーネント、データ構造、及び同様のものが含まれる。さらに、コンピューティング装置が従来のパーソナルコンピュータに限定される必要はなく、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラム可能なコンシューマ電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、及び同様のものを含む他のコンピューティング装置を含むことを、当業者は十分理解するであろう。同様に、上記のメカニズムが、通信ネットワークを通じてリンクされるリモートの処理装置によってタスクが実行されるところの分散されたコンピューティング環境において実施されてもよいため、コンピューティング装置は、スタンドアロンのコンピューティング装置に限定される必要はない。分散コンピューティング環境において、プログラムモジュールは、ローカル及びリモートの双方のメモリ記憶装置に位置し得る。
【００２０】
図１を参照して、一例示的なコンピューティング装置１００が示される。コンピューティング装置１００は、これらに限られないが、１つ以上の中央処理ユニット（ＣＰＵ）１２０と、システムメモリ１３０と、システムバス１２１とを含むことができ、システムバス１２１は、システムメモリを含む様々なシステムコンポーネントを処理ユニット１２０に結合する。システムバス１２１は、様々なバス又はポイントツーポイントアーキテクチャのうち任意のものを用いる、メモリバス又はメモリコントローラとペリフェラルバスとローカルバスとを含むいくつかのタイプのバス構造のうち、任意のものであり得る。
【００２１】
コンピューティング装置はさらにコンピュータ可読媒体を通常含み、このコンピュータ可読媒体には、該コンピュータ可読媒体からデータを取得すること又は該コンピュータ可読媒体にデータを提供することのいずれかによってコンピューティング装置１００によりアクセスされることが可能である任意の利用可能な媒体を含むことができ、揮発性及び不揮発性の双方の媒体、並びに取外し可能及び取外し不能の媒体が含まれる。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報の記憶のために任意の方法又はテクノロジーにおいて実施される媒体が含まれる。コンピュータ記憶媒体は、これらに限られないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリテクノロジー、ＣＤ‐ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、又は、所望される情報を記憶するために使用されることができ、コンピューティング装置１００によりアクセスされることができる任意の他の媒体が含まれる。しかしながら、コンピュータ記憶媒体は、通信媒体を含まない。通信媒体は、通常、搬送波又は他の伝送メカニズムなどの変調されたデータ信号においてコンピュータ可読命令、データ構造、プログラムモジュール又は他のデータを具現化し、任意の情報送達媒体を含む。限定ではなく例として、通信媒体には、有線ネットワーク又は直接有線接続などの有線媒体と、音響、ＲＦ、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とが含まれる。上記のうち任意のものの組み合わせが、コンピュータ可読媒体の範囲内にさらに含まれるべきである。
【００２２】
システムメモリ１３０は、読取専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性及び／又は不揮発性メモリの形式におけるコンピュータ記憶媒体を含む。基本入力／出力システム１３３（ＢＩＯＳ）は、起動中などにコンピューティング装置１００内の要素間において情報を転送するのを助ける基本ルーチンを含み、通常、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は、処理ユニット１２０にとって即座にアクセス可能であり、及び／又は処理ユニット１２０によって現在動作されている、データ及び／又はプログラムモジュールを通常含む。限定ではなく例として、図１は、オペレーティングシステム１３４、他のプログラムモジュール１３５、及びプログラムデータ１３６を例示している。以下にさらに説明されるとおり、オペレーティングシステム１３４は、上記で参照された閾値処理されていないソリッドステート記憶媒体の利用を提供することができる書き込み調整エンジン１３９を含むことができる。
【００２３】
コンピューティング装置１００は、他の取外し可能／取外し不能の、揮発性／不揮発性のコンピュータ記憶媒体をさらに含み得る。例として、図１は、ソリッドステートベースの記憶装置１４９と、任意的にハードディスクドライブ１４８とを例示しており、これらの双方が、記憶装置インターフェース１４０を介してコンピューティング装置１００に通信可能に結合され、記憶装置インターフェース１４０は、今度はシステムバス１２１に接続される。ソリッドステートベースの記憶装置１４９は、ソリッドステート記憶媒体１４２、例えば、上記で参照された閾値処理されていないソリッドステート記憶媒体などを含むことができる。単に例として、ソリッドステート記憶媒体１４２は、シングルレベルセル（ＳＬＣ）又はマルチレベルセル（ＭＬＣ）ベースのソリッドステートテクノロジーに基づくことができる。使用され得る他の取外し可能／取外し不能の、揮発性／不揮発性のソリッドステート記憶媒体には、これらに限られないが、ＦＬＡＳＨメモリカード、ＲＡＭディスク、及び同様のものが含まれる。さらに、ソリッドステートベースの記憶装置１４９はファームウェア１４１をさらに含むことができ、ファームウェア１４１は、ファームウェア１４１自体によってか、又は書き込み調整エンジン１３９との組み合わせにおいてかのいずれかで、ソリッドステート記憶媒体１４２の利用を提供することができる。別の選択肢として、以下にもさらに説明されるとおり、ファームウェア１４１の機能性は、全体的に又は部分的に、書き込み調整エンジン１３９に組み込まれることができる。
【００２４】
ハードディスクドライブ１４８は、磁気ベースの記憶装置又は他のシーケンシャル記憶装置、従来のソリッドステートベースの記憶装置を含むソリッドステートベースの記憶装置、及び他の同様の記憶装置であり得る。限定ではなく例として、ハードディスクドライブ１４８は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリテクノロジー、ＣＤ‐ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、又は、所望される情報を記憶するために使用されることができ、コンピューティング装置１００によりアクセスされることができる任意の他の媒体であり得る。例示を目的として、ハードディスクドライブ１４８は、コンピューティング装置１００に、コンピュータ可読命令、データ構造、プログラムモジュール及び他のデータの記憶を提供することができる。図１において、例えば、ハードディスクドライブ１４８は、オペレーティングシステム１４４、他のプログラムモジュール１４５、及びプログラムデータ１４６を記憶するものとして例示されている。これらのコンポーネントは、オペレーティングシステム１３４、他のプログラムモジュール１３５、及びプログラムデータ１３６と同じか又は異なるかのいずれかであり得ることが留意される。オペレーティングシステム１４４、他のプログラムモジュール１４５、及びプログラムデータ１４６はここでは異なる番号を付与され、最小限、これらが異なるコピーであることが例示されている。
【００２５】
コンピューティング装置１００は、１つ以上のリモートコンピュータに対する論理接続を用いて、ネットワーク化された環境において動作することができる。例示の簡素化のため、コンピューティング装置１００は図１においてネットワーク１９０に接続するように図示されており、ネットワーク１９０は、いかなる特定のネットワーク又はネットワーキングプロトコルにも限定されない。図１に表される論理接続は一般的ネットワーク接続１７１であり、一般的ネットワーク接続１７１は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、又は他のネットワークであり得る。コンピューティング装置１００は、ネットワークインターフェース又はアダプタ１７０を通じて一般的ネットワーク接続１７１に接続され、ネットワークインターフェース又はアダプタ１７０は、今度はシステムバス１２１に接続される。ネットワーク化された環境において、コンピューティング装置１００又はそのうちの部分若しくはその周辺装置に対して相対的に表されるプログラムモジュールは、一般的ネットワーク接続１７１を通じてコンピューティング装置１００に通信可能に結合された１つ以上の他のコンピューティング装置のメモリに記憶されることができる。図示されているネットワーク接続は例示的であり、コンピューティング装置間の通信リンクを確立する他の手段が使用されてもよいことが、十分理解されるであろう。
【００２６】
一実施形態において、ハードディスクドライブ１４８はコンピュータ実行可能命令の記憶を提供することができ、上記コンピュータ実行可能命令は、中央処理ユニット１２０により実行されるときに、ソリッドステートベースの記憶装置１４９が以下に詳細に説明されるメカニズムに従って初期化されることを可能にする。代替的な一実施形態において、ソリッドステートベースの記憶装置１４９の初期化は、他の記憶媒体上に存在し、又はその他の方法でコンピューティング装置１００にとって他の媒体からアクセス可能な、コンピュータ実行可能命令によって実行されることができる。こうした代替的な一実施形態において、ハードディスクドライブ１４８は任意的であってよく、いったんソリッドステートベースの記憶装置１４９が、以下に詳細に説明されるメカニズムに従って動作のために初期化されると、ハードディスクドライブ１４８に記憶されるものとして例示されているオペレーティングシステム１４４、プログラムモジュール１４５、及びプログラムデータ１４６は、代わって、ソリッドステートベースの記憶装置１４９に記憶されることができる。
【００２７】
図２を参照すると、図２に図示されているシステム２００は、図１に例示された例示的なソリッドステートベースの記憶装置１４９などのソリッドステートベースの記憶装置の、一例示的な初期化の部分を例示している。より具体的に、また、これまでに示されたとおり、一実施形態において、ソリッドステートベースの記憶装置は、閾値処理されていないソリッドステート記憶媒体を含むことができる。本明細書において利用されるとき、用語「閾値処理されていない（unthresholded）」は、事前に検査されていない媒体を意味し、そのようなものとして、定義された閾値能力レベルを超えることになる媒体と、上記の同じ定義された閾値能力レベルを達成するのに失敗することになる媒体との双方を含む。結果として、こうした一実施形態において、上記の閾値処理されていないソリッドステート記憶媒体を含むソリッドステートベースの記憶装置の初期化は、閾値処理されていないソリッドステート記憶媒体の能力を識別することを目的として、及び、上記の識別された能力に基づいて閾値処理されていないソリッドステート記憶媒体の部分を定義することを目的として、閾値処理されていないソリッドステート記憶媒体を検査することを含み得る。
【００２８】
ゆえに、一実施形態において、図２のシステム２００により例示されるとおり、ソリッドステートベースの記憶装置のソリッドステート記憶媒体を検査して、その能力を識別することができる。より具体的に、ソリッドステート記憶媒体の定義された部分を個々に検査して、その能力を識別することができる。これまでに示されたとおり、上記部分は、個々のソリッドステート記憶セルと同様に離散的（discrete）であることが可能であり、該ソリッドステート記憶セルは各々、個々に、ある分量のデータを記憶することができる。これまでにも示されたとおり、上記の個々の部分をより広く定義して、ソリッドステート記憶媒体のうちセルのグループ、ダイ丸ごと、又は他の同様の描写可能な部分を包含することが可能である。提示の容易さのため、以下における説明は、個々のソリッドステート記憶セルに基づいたソリッドステート記憶媒体の描写に向けられる。しかしながら、説明されるメカニズムは、ソリッドステート記憶媒体の別様にサイズ調整された部分に等しく適用可能である。
【００２９】
図２の例示的なシステム２００において、個々のソリッドステート記憶セル、例えば、例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を検査して、その能力、例えば、データがソリッドステート記憶セルに書き込まれ、及びソリッドステート記憶セルから読み出されることが可能な速度、ソリッドステート記憶セルの予想される耐久性、ソリッドステート記憶セルの保持能力、ソリッドステート記憶セルによるデータの記憶に対して関連する電圧閾値、及び他の同様の能力を、識別することができる。例示として、本明細書に説明されるメカニズムは性能及び耐久性能力に焦点を当てるが、他の能力が、ソリッドステート記憶媒体の異なるグルーピングを描写すること及び利用することの基礎として同様に利用されてもよい。
【００３０】
例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６の検査は、図２の例示的なシステム２００において、ソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含む記憶装置のファームウェア１４１によって実行されるものとして例示されている。他の実施形態において、こうした検査は、上記の記憶装置が通信可能に結合されているコンピューティング装置上で実行される処理、又は、コンピューティング装置上で実行される処理とファームウェアとの組み合わせによって、等しく実行されてもよい。
【００３１】
図２の例示的なシステム２００において、ファームウェア１４１によるソリッドステート記憶セルの検査、例えば、ソリッドステート記憶セル２４１の検査は、矢印２１１によって例示されている。応答において、結果２１２がファームウェア１４１によって取得されることが可能であり、結果２１２は、例えば、ソリッドステート記憶セル２４１が高い性能及び高い耐久性を有すると示すことができる。より具体的に、結果２１２は、高い性能及び高い耐久性を表す経験的データを提供することができ、ただし、簡潔さを目的として、図２は、カテゴリ化「高」、「中」及び「低」のみ利用している。結果２１２により提供され得る経験的データの例示として、上記の結果は、ソリッドステート記憶セル２４１が３５０メガバイト毎秒において該セル２４１に書き込まれるデータを収容する（accommodate）ことが可能であり、５００メガバイト毎秒において該セル２４１から読み出されるデータを提供することが可能であると示すことができる。耐久性に関して、結果２１２により提供される経験的データは、既知のソリッドステート耐久性推定方法論に基づいて耐久性指標へと推定される（extrapolated）ことができる。
【００３２】
ソリッドステート記憶セル２４２、２４３、２４４、２４５及び２４６の検査は、同等のやり方において進めることができる。例えば、矢印２１３によって示されているソリッドステート記憶セル２４２の検査は、中間レベルの性能を示し得る結果２１４を提供することができ、上記結果は、例えば、ソリッドステート記憶セル２４２が２００メガバイト毎秒において該セル２４２に書き込まれるデータを収容し、４００メガバイト毎秒において該セル２４２から読み出されるデータを提供することができると示すなどする。結果２１４は、例として、ソリッドステート記憶セル２４２が高い耐久性を有するであろうことを示すように推定されることが可能なデータをさらに提供することができる。別の例として、矢印２２１及び２２３によって示されているソリッドステート記憶セル２４５及び２４６の検査はそれぞれ、中間レベルの性能、例えば、ソリッドステート記憶セル２４２を参照して上記で提供された例によって定量化された例示的な中間レベルの性能などを同様に示し得る結果２２２及び２２４をそれぞれ、同様に提供することができる。結果２２２は、ソリッドステート記憶セル２４５が中間レベルの耐久性を有するであろうことを示すように推定されることが可能なデータをさらに提供することができ、結果２２４は、ソリッドステート記憶セル２４６が低い耐久性を有するであろうことを示すように推定されることが可能なデータをさらに提供することができる。
【００３３】
これまでに示されたとおり、図２に示されている例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含むソリッドステート記憶媒体は、該媒体が事前に検査されていないため、安価に獲得されることが可能なソリッドステート記憶媒体であり得る。結果として、こうしたソリッドステート記憶媒体は、正しく動作しないか、誤って形成されているか、又は能力が不十分であるかのコンポーネント又はその部分を含み得る。例えば、矢印２１５により示されているソリッドステート記憶セル２４３の検査は、ソリッドステート記憶セル２４３の失敗を示す結果２１６を提供することができる。例として、結果２１６は、ソリッドステート記憶セル２４３が後の取り出しに対してデータを正しく記憶することができないと示すことができ、あるいは、結果２１６は、ソリッドステート記憶セル２４３が該セル２４３から確実にデータを読み出させることができないと示すことができる。矢印２１７によって示されているソリッドステート記憶セル２４４の検査は結果２１９を提供することができ、結果２１９は、ソリッドステート記憶セル２４４の失敗を示してはいないが、不十分であるソリッドステート記憶セル２４４の特性を示すことができる。
【００３４】
より具体的に、ソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含むソリッドステート記憶媒体が、閾値処理されないことが可能であると同時に、説明される初期化手順は、いくらかの量の閾値処理（thresholding）が上記初期化手順の一部として実行されることを可能にすることができる。例えば、これまでに示されたとおり、一実施形態において、利用されているソリッドステート記憶媒体が、比較可能な磁気ベースの記憶媒体と少なくとも同等である性能を提供するように、閾値性能レベルが確立されることができる。より具体的に、閾値性能レベルは、こうした一実施形態において、データがソリッドステート記憶媒体に書き込まれることが可能な速度に基づいて、確立されることができる。当業者により認識されるであろうとおり、ソリッドステート記憶媒体は、通常、データが該媒体からより迅速に読み出されることを可能にし、それから、ソリッドステート記憶媒体は、データが該媒体に書き込まれることを可能にする。結果として、ソリッドステート記憶媒体にデータが書き込まれる速度が、比較可能な磁気ベースの記憶媒体にデータが書き込まれる速度と少なくとも同等であるように、閾値性能レベルが確立される場合、合理的に、ソリッドステート記憶媒体からデータが読み出される速度が、比較可能な磁気ベースの記憶媒体からデータが読み出される速度より大きくなり、多くの場合において大幅に大きくなることが予期され得る。
【００３５】
こうした一実施形態において、低い（ソリッドステート記憶媒体についての）閾値性能レベルは、事前に検査されていない及び閾値処理されていないソリッドステート記憶媒体の相当な部分が上記の低い閾値性能レベルを超えることを可能にし、これにより、上記相当な部分を利用可能であるようにすることが、予期される。今度は、上記のソリッドステート記憶媒体の相当な部分が利用されることができるため、及び、上記で例示されたとおり、閾値処理されていないソリッドステート記憶媒体が安価に販売され及び獲得されることができるため、本明細書に提供される説明に従って動作するソリッドステートベースの記憶装置は、比較可能な磁気ベースの記憶装置に匹敵するコストを有し、上記の比較可能な磁気ベースの記憶装置と少なくとも同等である性能を提供することができ、しかしなお、より高い熱耐性、より高い信頼性、より低い電力消費、及び他の同様の恩恵を提供することができる。
【００３６】
図２のシステム２００において矢印２１７によって示されているソリッドステート記憶セル２４４の検査に戻ると、この検査は、低い性能レベルを示し得る結果２１９を提供することができ、結果２１９は、同様に低い推定される耐久性のための基礎を提供することができる。例として、結果２１９は、ソリッドステート記憶セル２４４が５０メガバイト毎秒において該セル２４４に書き込まれるデータを収容することのみ可能であり、１００メガバイト毎秒において該セル２４４から読み出されるデータを提供することが可能であると、明らかにすることができる。当業者により認識されるであろうとおり、従来の磁気ベースの記憶装置は、しばしば、少なくともシーケンシャルに、１００メガバイト毎秒より大きい速度でデータを読み出し及び書き込むことができる。結果として、結果２１９は、ソリッドステート記憶セル２４４が比較可能な磁気ベースの記憶媒体の性能レベルを下回る性能レベルを有すると明らかにすることができる。
【００３７】
ソリッドステート記憶媒体、例えば、例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６などの検査からの、結果２１２、２１４、２１６、２１９、２２２及び２２４それぞれを利用して、テーブル、例えば、例示的な書き込みポリシーテーブル２５０などを組み立て又は修正することができる。上記テーブルは、後の利用に、検査されたソリッドステート記憶媒体を知らせることができる。例えば、上記のテーブルは、現在検査されたソリッドステート記憶媒体のうちどの部分がデータの記憶に利用されることができるかと、どの部分が、該部分が上記で説明された検査に失敗したためか、又は該部分が検査されて閾値を下回る能力レベルを有するように見出されたためかのいずれかで、回避されるべきかとを、識別することができる。さらに、上記のテーブルは、利用可能であると見なされた、検査されたソリッドステート記憶媒体のうちの部分が、利用されるべきやり方を識別することができる。例えば、テーブルは、上記部分にデータが書き込まれることが可能な速度、上記部分に好適に記憶されるデータのタイプ、上記部分が利用されるべき優先順位、及び他の同様の利用要因を識別することができる。
【００３８】
図２のシステム２００に図示されている例示的な書き込みポリシーテーブル２５０は、検査されたソリッドステート記憶媒体のうちの部分、すなわち、具体的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２５６に関連する、利用要因の一例示的なカテゴリ化及び定義を例示している。より具体的に、例示的な書き込みポリシーテーブル２５０は、検査されたソリッドステート記憶媒体の部分が後の利用のためにグルーピング又は「ビン」へと組み合わせられることを可能にするための例示的なメカニズムを示しており、これにおいて、特定のビン内のソリッドステート記憶媒体のすべてが、同質のやり方において利用されることができる。一実施形態において、上記のビンは論理ボリュームに対応することができるが、他の実施形態において、単一のビンが複数のボリュームを収容してもよく、あるいは別法として、単一のボリュームが複数のビンにわたってもよい。例えば、例示的な書き込みポリシーテーブル２５０により示されるとおり、あるビンが、検査されて高い性能と少なくとも中間レベルの量の推定される耐久性とを有するように見出された記憶セル、例えば、記憶セル２４１などを含むことができる。別の例として、別のビンが、検査されて中間レベルの性能と少なくとも中間レベルの量の推定される耐久性とを有するように見出された記憶セル、例えば、記憶セル２４２及び２４５などを含むことができる。例示的な書き込みポリシーテーブル２５０において、第３のビンが、検査されて少なくとも中間レベルの性能と低い推定される耐久性とを有するように見出された記憶セル、例えば、記憶セル２４６などを含むことができる。以下にさらに詳細に説明されるとおり、上記のビンに入れることは、データがソリッドステート記憶媒体に書き込まれる速度と、特定タイプのデータが書き込まれるソリッドステート記憶媒体のうちの特定部分とを含め、データがソリッドステート記憶媒体に如何に書き込まれるかを制御することができる。
【００３９】
例示的な書き込みポリシーテーブル２５０によってさらに示されるとおり、検査されたソリッドステート記憶媒体のうちの特定部分は、例えば、ビンに関連付けられないことによって、又は、適切な値を有すること、例えば、対応する書き込み速度がゼロに設定されることによってなどで、動作しない又は使用されないものとして識別されることができる。例えば、初期化検査を失敗したように見出されたソリッドステート記憶セル２４３は、ソリッドステート記憶媒体の非動作部分であるとして識別されることができる。同様に、別の例として、性能閾値を下回る性能レベルを有するように見出されたソリッドステート記憶セル２４４は、同様に、ソリッドステート記憶媒体のこうした部分が、所望されるやり方において、すなわち、対応する磁気ベースの記憶装置の性能と少なくとも同等である性能を提供するように利用されることができないため、非動作であるとして識別されることができる。
【００４０】
検査されたソリッドステート記憶媒体の様々な部分を組み合わせて同質に扱われることが可能なセクションにすることに追加して、書き込みポリシーテーブル、例えば、例示的な書き込みポリシーテーブル２５０は、データが対応するソリッドステート記憶媒体に如何に迅速に書き込まれることが可能かをさらに定義することができる。当業者により認識されるであろうとおり、データがソリッドステート記憶媒体に書き込まれる速度は、こうしたソリッドステート記憶媒体の予想される耐久性に影響する可能性がある。例えば、データがソリッドステート記憶媒体に書き込まれる速度が半分にカットされる場合、単に純粋に機械的意味から、こうしたソリッドステート記憶媒体の予想される耐久性は倍増される可能性がある。なぜならば、上記のソリッドステート記憶媒体が能力があるように予想される書き込みの回数を達成するのに、２倍の量の時間がかかる可能性があるからである。さらに、データがソリッドステート記憶媒体に書き込まれる速度を低減させることは、こうしたソリッドステート記憶媒体に対する物理的ストレスをさらに低減させることができ、このことは、同様に、その予想される耐久性を増加させることができる。
【００４１】
データがソリッドステート記憶媒体に書き込まれることが可能な速度を制限し又は「調整する」ことの別の恩恵は、異なる性能属性を有するソリッドステート記憶媒体の利用であり得る。より具体的に、現在説明されているメカニズムは、例えば例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６などの異なる性能属性を有するソリッドステート記憶媒体が、上記のソリッドステート記憶媒体のうち最小限のみが使用不可能であると見なされるやり方において利用されることを可能にする。例えば、例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６が、ソリッドステートベースの記憶装置についての従来の製造業者によって検査された場合、可能性として、ソリッドステート記憶セル２４１のみが、上記の製造業者により典型的に適用される数種の閾値を超えるように見出され、例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含むソリッドステート記憶媒体全体は、廃棄されることになるか、あるいは大幅に低減された容量のソリッドステート記憶媒体として販売されることになるかのいずれかになる。いずれの場合も、記憶容量あたりのコストは、現在説明されているメカニズムによって提供されるコストよりもかなり高くなることになり、上記メカニズムは、書き込み調整を通して、ソリッドステート記憶セル２４１だけでなくさらにソリッドステート記憶セル２４２、２４５及び２４６の利用を可能にすることができる。そのようなものとして、例示的な書き込みポリシーテーブル２５０は、ソリッドステート記憶セル２４１に書き込まれるデータが高いレートの速度において書き込まれることが可能であると同時に、ソリッドステート記憶セル２４２、２４５及び２４６のうち任意の１つ以上に書き込まれるデータがより低いレートの速度に調整されることが可能であることを、指定することができる。
【００４２】
一実施形態、例えば、図２の例示的なシステム２００により示されるものなどにおいて、書き込みポリシーテーブル２５０は、矢印２４０によって示されるとおり、書き込み調整エンジン１３９によって構築されることができる。こうした一実施形態において、示されたとおり、例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含むソリッドステート記憶媒体を検査することができるファームウェア１４１は、こうした検査から取得される結果２３０を書き込み調整エンジン１３９に提供することができ、それから、今度は書き込み調整エンジン１３９が、矢印２４０によって示されているとおり、書き込みポリシーテーブル２５０を構築することができる。これまでに示されたとおり、こうした一実施形態において、書き込み調整エンジン１３９は、例示的なソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含むソリッドステートベースの記憶装置が通信可能に結合されることが可能なコンピューティング装置上で実行されるオペレーティングシステム又は他の同様のソフトウェアの一部であることが可能である。
【００４３】
上記の一実施形態において、書き込み調整エンジン１３９、又はオペレーティングシステムの他の態様が、上記で説明されたソリッドステート記憶媒体の初期化検査と、後続の書き込みポリシーテーブル２５０の構築又は修正との双方を制御することができる。より具体的に、こうした一実施形態において、ファームウェア１４１は、書き込み調整エンジン１３９によってアクセスされることが可能なインターフェースを公開することができ、ファームウェア１４１に命令して上記で説明されたソリッドステート記憶媒体の初期化検査を実行することができる。それから、こうした検査の結果２３０が、上記の同じインターフェースのうち１つを通じて書き込み調整エンジン１３９に返されることができ、書き込み調整エンジン１３９は、矢印２４０によって示されるとおり、結果２３０を利用して書き込みポリシーテーブル２５０を構築し又は修正することができる。
【００４４】
これまでに示されたとおり、書き込みポリシーテーブル２５０の上記の構築又は修正の一部として、閾値処理を実行して、性能又は他の属性が閾値レベルを下回り、これによりその部分は利用されるべきでないところのソリッドステート記憶媒体の部分、例えば例示的なソリッドステート記憶セル２４４などを、識別することができる。こうした閾値処理は、比較可能な磁気ベースの記憶媒体の性能、より具体的には書き込み性能によって知らせられるものとしてこれまでに説明されているが、上記の閾値は、単に現在説明されているメカニズムの一実施形態である。他の実施形態において、書き込み調整エンジン１３９、若しくはオペレーティングシステムの他の態様、又はソリッドステート記憶媒体に通信可能に結合されたコンピューティング装置上で実行される他の処理が、さらに適切な閾値を選択することができる。例えば、より高い性能閾値が確立されることが可能であり、したがって、例えば、図２に図示されている例示的な図解されているソリッドステート記憶セルの中で、ソリッドステート記憶セル２４１だけが上記のより高い性能閾値を超えることが可能であり、後の利用のために選択されることが可能である。こうした一例において、書き込みポリシーテーブル２５０は、ソリッドステート記憶セル２４１以外の図２に図示されている他の例示的なソリッドステート記憶セルのすべてが上記の閾値処理に失敗している可能性があり、利用されるべきでないことを、指定することができる。しかしながら、こうした一例において、上記のより高い性能閾値は、ソリッドステート記憶媒体のうちより少ないところが利用可能であることをもたらし、結果として、記憶容量あたりのより高いコストをもたらす可能性がある。それにもかかわらず、ソリッドステート記憶媒体が通信可能に結合されるコンピューティング装置上で実行される処理が能力閾値を選択することを可能にすることによって、本明細書に説明されるメカニズムは、こうしたソリッドステート記憶媒体のユーザがその独自のコスト／能力メトリクスを決定し及び強制することを可能にする。
【００４５】
他の実施形態において、例示的な書き込みポリシーテーブル２５０などの書き込みポリシーテーブルの生成又は修正は、直接ファームウェア１４１によって実行されていることが可能であり、あるいは別法として、上記で説明された検査と後続の書き込みポリシーテーブルの生成又は修正との双方は、書き込み調整エンジン１３９、又はソリッドステートベースの記憶装置が通信可能に結合されたコンピューティング装置上で実行される他の同様のソフトウェアによって実行されていてもよい。
【００４６】
図３を参照すると、図３に示されるシステム３００は、書き込み調整エンジン１３９などによる書き込みポリシーテーブル２５０の一例示的な利用を示しており、書き込みポリシーテーブル２５０は、ソリッドステート記憶セル２４１、２４２、２４３、２４４、２４５及び２４６を含むソリッドステート記憶媒体が利用されるやり方を知らせている。以下における説明の文脈を提供するために、アプリケーション３１０が図３のシステム３００に例示されている。アプリケーション３１０は、ソリッドステート記憶媒体が通信可能に結合されるコンピューティング装置上で実行されるコンピュータ実行可能命令を含む１つ以上のアプリケーションプログラムを表現するように意図され、これにおいて、上記のアプリケーションプログラムは、ソリッドステート記憶媒体にデータを記憶しようとする。最初、当業者により認識されるであろうとおり、アプリケーション３１０が記憶媒体上に記憶しようとするデータは、オペレーティングシステムに対して提供されることができ、上記オペレーティングシステムは、適切なドライバ、コントローラ、及び他の同様のコンポーネントと通信して、記憶媒体へのデータの記憶を達成することができる。一実施形態において、こうしたオペレーティングシステムは、アプリケーション３１０からデータ３１１を受信することが可能な書き込み調整エンジン１３９を含むことができる。書き込み調整エンジン１３９は、書き込みポリシーテーブル２５０に対する参照３２０を有し、書き込み調整エンジン１３９により実施されるポリシーに従って、及び、書き込みポリシーテーブル２５０に包含される情報に従って、記憶媒体へのデータの記憶を達成することができる。
【００４７】
例えば、データ３１１がソリッドステート記憶セル２４１に記憶されるべきである場合、書き込み調整エンジン１３９は、例えば、図３の例示的なシステム３００において矢印３３０によって示されているとおり、オペレーティングシステム、ドライバ、コントローラ、及び他の同様のコンポーネントが高いレートの速度においてソリッドステート記憶セル２４１に上記データ３１１を書き込むことを許容することができる。対照的に、データ３１１がソリッドステート記憶セル２４２及び２４５のうち１つ以上に記憶されるべきである場合、書き込み調整エンジン１３９は、オペレーティングシステム、ドライバ、コントローラ、及び他の同様のコンポーネントが上記データ３１１を書き込む速度を調整することができる。例えば、書き込み調整エンジン１３９は、２００メガバイト毎秒のレートにおいてオペレーティングシステム、ドライバ、コントローラ、及び他の同様のコンポーネントのうち関連部分にデータを提供することのみ可能である。別の例として、書き込み調整エンジン１３９は、予め定義された単位時間の間にデータがソリッドステート記憶媒体のうち特定部分にどれほどの頻度で書き込まれるかを制御し、制限することができる。例えば、書き込み調整エンジン１３９は、異なるデータが２４時間の期間につき１００回より多く、又は１か月につき２０００回より多くソリッドステート記憶セルに書き込まれることを許容することができない。こうしたやり方において、例えば、ソリッドステート記憶セルが５万回の書き込み消去サイクルの推定される耐久性を有する場合、このソリッドステート記憶セルは少なくとも２年間利用されることが可能になる。
【００４８】
ソリッドステート記憶セルに書き込まれるデータが調整されるレートは、上記で詳述されたとおり、書き込みポリシーテーブル２５０に包含される情報に基づくことができる。データがソリッドステート記憶媒体のうちいくらかの部分、例えば、ソリッドステート記憶セル２４２及び２４５などに書き込まれるレートを調整すると同時に、ソリッドステート記憶媒体のうち他の部分、例えば、ソリッドステート記憶セル２４１などに書き込まれるデータを許容することによって、書き込み調整エンジン１３９は、ソリッドステート記憶媒体すべてが同質の書き込み速度を用立てる（accommodate）ことができないところのソリッドステート記憶装置の利用を提供することができる。同様に、データがソリッドステート記憶媒体のうちいくらかの部分に書き込まれるレートを調整することによって、書き込み調整エンジン１３９は、ソリッドステート記憶媒体が非同質の耐久性関連プロパティを提示するところのソリッドステート記憶装置の利用を提供することができる。より具体的に、書き込み調整は、上記で説明されたとおり、特定セルへの新しいデータの繰り返される書き込みを制限することを含み得るため、書き込み調整エンジン１３９は、予想される耐久性が他のセルの耐久性よりも有意義に小さいセルを有し得るソリッドステート記憶媒体の利用を提供することができる。こうしたやり方において、より安価なソリッドステート記憶媒体、例えば、上記で詳述されたものなどが利用され、これにより、記憶装置が、ソリッドステート記憶媒体の恩恵の多く、例えば、速い読み出し速度、熱抵抗、低い電力消費、及び機械的信頼性などを、磁気ベースの記憶媒体に匹敵するコストで提供することを可能にすることができる。
【００４９】
一実施形態において、書き込み調整エンジン１３９は、ソリッドステート記憶媒体のうちどの部分を利用して特定タイプのデータを記憶するかに関して、ポリシーをさらに適用することができる。例えば、ポリシーが適用されない場合、データ３１１は、書き込みポリシーテーブル２５０内のソリッドステート記憶セルのうち任意の１つに書き込まれるであろう。ソリッドステート記憶セル２４１のようなセルは、ソリッドステート記憶セル２４２及び２４５などのセルより迅速にデータを受け入れることができるため、可能性として、データ３１１のうちより大きいボリュームが、ソリッドステート記憶セル２４１などのセルに向けられることになる。同様に、ポリシーが適用されない場合、データ３１１は、高い予期される耐久性を有するソリッドステート記憶セル、例えば、例示的なソリッドステート記憶セル２４１などと、低い予期される耐久性を有するソリッドステート記憶セル、例えば、例示的なソリッドステート記憶セル２４６などとに、等しく書き込まれるであろう。
【００５０】
書き込み調整エンジン１３９により適用されることが可能なポリシーの１つが、可能な限りソリッドステート記憶媒体のうち多くの寿命を延ばそうとすることが可能なポリシーであり得る。このポリシーを利用することで、書き込み調整エンジン１３９は、より高い予期される耐久性を有するソリッドステート記憶媒体の部分、例えば、例示的なソリッドステート記憶セル２４１、２４２及び２４５などに対して、該書き込み調整エンジン１３９がより低い予期される耐久性を有するソリッドステート記憶媒体の部分、例えば、例示的なソリッドステート記憶セル２４６などに対して向け得るよりも、より多くのデータを向けることができる。上記のポリシーを利用することで、書き込み調整エンジン１３９は、ソリッドステート記憶媒体のうち最も大きい部分がその予期される耐久性の範囲内として利用可能なままである継続時間を増加させることができる。本質において、書き込み調整エンジン１３９は、従来のウェアレベリングとは違って書き込み調整エンジン１３９が異なる初期の予期される耐久性を考慮に入れることができることを除き、ウェアレベリングの一形式を実行し得る。
【００５１】
書き込み調整エンジン１３９によって適用されることが可能な別のポリシーは、低い予期される耐久性を有するソリッドステート記憶媒体の部分を、より迅速に使い尽くそうとするポリシーであり得る。このポリシーを利用することで、書き込み調整エンジン１３９は、より低い予期される耐久性を有するソリッドステート記憶媒体の部分、例えば、例示的なソリッドステート記憶セル２４６などに対して、該書き込み調整エンジン１３９がソリッドステート記憶媒体の他の部分に対して向け得るよりも、より多くのデータを向けることができる。結果として、書き込み調整エンジン１３９は、ソリッドステート記憶媒体の少なくとも部分が利用されることが可能な時間の長さを増加させることができるが、ただし、こうした部分は減少した容量を表現する可能性がある。なぜならば、予期されるよりも低い耐久性を有するソリッドステート記憶媒体の部分は使い尽くされ、それから、もはや使用されないセクションとして、例示的な書き込みポリシーテーブル２５０などの書き込みポリシーテーブルにおいてマーク付けされるからである。
【００５２】
一実施形態において、書き込み調整エンジン１３９はメタデータ３１２を参照することができ、メタデータ３１２は、場合によりデータ３１１と共に提供されることができ、データ３１１に関する情報を提供することができる。このメタデータ３１２に基づいて、書き込み調整エンジン１３９は、データ３１１を記憶すべきソリッドステート記憶媒体上の適切な場所を選ぶことができる。例えば、メタデータ３１２が、データ３１１は単に一時的なデータ又は寄せ集めデータであると示す場合、書き込み調整エンジン１３９は、耐久性制限に近づいている可能性があるソリッドステート記憶媒体の部分にこうしたデータを記憶するように選択することができ、これにより、失敗への傾向をより大きくすることができる。別の例として、メタデータ３１２が、データ３１１は可能な限り迅速に書き込まれる必要があると示す場合、書き込み調整エンジン１３９は、最高速度のデータの記憶を提供することが可能なソリッドステート記憶媒体の部分、例えば、例示的なソリッドステート記憶セル２４１などにこうしたデータを記憶するように選択することができる。さらに別の例として、書き込み調整エンジン１３９は、メタデータ３１２との組み合わせにおいて、上記で詳述されたものなどの様々なポリシーを考慮に入れることができる。例えば、メタデータ３１２が、データ３１１は頻繁に上書き又は変更されることになると示す場合、書き込み調整エンジン１３９は、上記で詳述されたものなどのポリシーに基づいて、低い予期される耐久性を有するソリッドステート記憶媒体の部分にこうしたデータ３１１を記憶するように選択して、例えば、該部分を使い尽くすことが可能であり、あるいは別法として、ソリッドステート記憶媒体の複数部分にわたり、その予期される耐久性に従ってデータを分散させて、例えば、ソリッドステート記憶媒体の個々のセルについての残りの予期される耐久性をアウトにする（out）ことさえ可能である。
【００５３】
図４を参照すると、図４に示されているフロー図４００は、閾値処理されていないソリッドステート記憶媒体の利用を上記で詳述されたやり方などにおいて可能にするために実行され得る例示的な一連のステップを例示している。最初、例えば、ソリッドステートベースの記憶装置が、例示的なフロー図４００のステップを実行するコンピュータ実行可能命令を含むコンピューティング装置に通信可能に結合されるときなどに、ステップ４１０において、こうした新しいソリッドステートベースの記憶装置が検出されることができる。その後、ステップ４２０において、ソリッドステート記憶媒体のうち定義された部分、例えば、個々のソリッドステート記憶セル、そのグルーピング、ソリッドステート記憶ダイ、又はソリッドステート記憶媒体のうち他の同様の定義された部分などが検査されて、その物理的特性及びその能力が決定されることができる。例えば、一実施形態において、ステップ４２０は、ステップ４１０において検出されたソリッドステートベースの記憶装置上のソリッドステート記憶媒体と同じ場所に位置し得るファームウェア又は他の同様の制御コンポーネントの適切なインターフェースを呼び出すことによって、実行されることができる。
【００５４】
ステップ４４０において、ステップ４２０において実行された検査の結果を利用して、書き込みポリシーが確立されることができる。これまでに示されたとおり、書き込みポリシーは、書き込み調整することを含むことができ、該書き込み調整は、データがソリッドステート記憶媒体の特定部分に書き込まれるレートを、ステップ４２０において決定された上記のソリッドステート記憶媒体の特性に基づいて制限することができる。書き込み調整は、新しいデータが予め定義された時間の間に特定のソリッドステート記憶セルに書き込まれる回数を制限することと、ソリッドステート記憶媒体のうち定義された部分へのデータの全体的な流れを制限することとを含むことができる。一実施形態において、任意的なステップ４３０として、ソリッドステート記憶媒体は、ステップ４２０の一部として取得された特性に基づいて、ソリッドステート記憶媒体容量のブロック又は他の同様の集合へとビンに入れられることができる。上記のビンに入れることは、こうしたビンと一致する論理ボリュームの作成を含むことができるが、他の実施形態において、論理ボリュームが複数のビンにわたってもよく、あるいは単一のビンが複数の論理ボリュームをサポートしてもよい。図４において、ステップ４３０は、これが任意的ステップであり得ることを表すように破線で示されている。
【００５５】
ステップ４４０における書き込みポリシーの確立の後、ステップ４６０において、ソリッドステート記憶媒体に書き込まれるべきデータは、上記ポリシーに従って調整されることができる。この調整は、上記で説明されたとおり、ソリッドステート記憶媒体の特定部分へのデータの流れの制限と、特定のソリッドステート記憶セルに対して実行される書き込みの数量の制限とを含むことができるだけでなく、ソリッドステート記憶媒体上で、データがどこに記憶されるかの選択をさらに含むことができる。例えば、これまでに示されたとおり、ステップ４２０における検査によって、より低い予期される耐久性を有するように判定されたソリッドステート記憶媒体の部分は、該部分に対してより少ないデータを向けさせて、可能な限りソリッドステート記憶媒体の多くの利用を延長することができ、あるいは別法として、該部分に対してより多くのデータを向けさせて、可能な限り迅速にこうしたセクションを使い尽くし、これにより、ソリッドステート記憶媒体の残りのセクションがより長い時間について使用されることを可能にすることができる。一実施形態において、ステップ４５０において、ソリッドステート記憶媒体上に記憶されているデータに関する情報を提供することが可能なメタデータが受信されることができ、ソリッドステート記憶媒体のうちどの部分が記憶のために上記のデータを受信するかについての選択は、このメタデータによって知らせられることができる。図４において、ステップ４５０は、これが任意的なステップであることを示すように破線で示されている。
【００５６】
ステップ４７０において、後続の検査を通してなどで、ソリッドステート記憶媒体に関する情報を更新すべきかに関して、任意的な決定がなされることができる。こうした一実施形態において、ソリッドステート記憶媒体が再検査されるべきであると決定がなされる場合、処理はステップ４２０に戻ることができる。別法として、処理は、ステップ４６０、及び任意的なステップ４５０に戻って、既存の書き込みポリシーを利用し続けて、ソリッドステート記憶媒体にデータを記憶してもよい。前述同様に、図４において、ステップ４７０は、これが任意的ステップであることを示すように破線で示されている。
【００５７】
上記の説明から分かるとおり、経験的に導出される能力に従ってソリッドステート記憶媒体を書き込み調整するメカニズムが提供されている。本明細書に説明される対象事項の多くのあり得るバリエーションを考慮して、我々は、すべてのこうした実施形態を、別記の請求項及びその均等物の範囲内に入り得る限り、本願発明として請求する。
【図１】
2017502380.tif 000003
【図２】
2017502380.tif 000004
【図３】
2017502380.tif 000005
【図４】
2017502380.tif 000006
【国際調査報告】
2017502380.tif 000007
2017502380.tif 000008