【手続補正書】
【提出日】令和2年5月13日(2020.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストに連結されるソリッドステートドライブにおいて、複数の物理フラッシュメモリブロックを含むフラッシュメモリの部分を割当する方法であって、
前記フラッシュメモリ上で、複数の読出し動作の中の１つ以上の読出し動作がビットエラーカウントを生成するエラー訂正コードデコーディング演算を含む前記複数の読出し動作を遂行する段階と、
複数のビットエラーカウントから、前記複数の物理フラッシュメモリブロックの中の１つ以上に対する生の（Ｒａｗ）ビットエラー率を計算する段階と、
前記複数の物理フラッシュメモリブロックの各々に対して遂行されるプログラム及び消去サイクルをカウントする段階と、
複数のプログラム方法の各々に対して、前記生のビットエラー率並びに前記プログラム及び消去サイクルのカウントされた回数から、前記複数の物理フラッシュメモリブロックの中の１つ以上に対する平均応答時間及び推定許容可能保持時間を計算する段階と、
前記ホスト上で動作する第１アプリケーションから、第１集合の要求事項を受信する段階と、
前記複数の物理フラッシュメモリブロックの中の１つ以上が前記第１集合の要求事項を充足させるのに適合するか否かを判別する段階と、
前記第１集合の要求事項を充足させるのに適合する物理フラッシュメモリブロックの第１リストを形成する段階と、
前記第１アプリケーションから、ストレージ空間の割当に対する要請を受信する段階と、
前記第１リストからの第１物理フラッシュメモリブロックを前記第１アプリケーションに割当する段階と、を有することを特徴とする方法。
【請求項２】
前記複数のプログラム方法は、
第１ステップサイズを活用するＩＳＰＰ（Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ）方法と、
第２ステップサイズを活用するＩＳＰＰ方法と、を含み、
前記第１ステップサイズは、前記第２ステップサイズよりも大きいことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１集合の要求事項は、要求許容可能保持時間及び要求平均応答時間を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数の物理フラッシュメモリブロックの中の１つ以上が前記第１集合の要求事項を充足させるのに適合するか否かを判別する段階は、
前記複数のプログラム方法の中のいずれかのプログラム方法に対して、
前記計算された平均応答時間が前記要求平均応答時間よりも小さいか否かと、
前記計算された推定許容可能保持時間が前記要求許容可能保持時間よりも大きいか否かと、を判別する段階を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記第１物理フラッシュメモリブロックを消去する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１物理フラッシュメモリブロックを消去する段階は、
前記第１物理フラッシュメモリブロックが浅い（Ｓｈａｌｌｏｗ）消去処理によって前記第１集合の要求事項を充足させるのに適合するように維持されると予測される場合、前記浅い消去処理を採用する段階と、
前記第１物理フラッシュメモリブロックが前記浅い消去処理によって前記第１集合の要求事項を充足させるのに適合するように維持されないと予測される場合、既定の（Ｎｏｒｍａｌ）消去処理を採用する段階と、を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記複数の物理フラッシュメモリブロックの中の１つ以上に対する平均応答時間及び推定許容可能保持時間を計算する段階は、
保持時間関数としてのビットエラーカウントに対して線形フィット（Ｆｉｔ）を遂行する段階と、
前記線形フィットが最大の受け入れ可能な生のビットエラー率を超過する保持時間を前記推定許容可能保持時間として計算する段階を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記最大の受け入れ可能な生のビットエラー率は、１００万ビット当たり１ビットのエラーであることを特徴とする請求項７に記載の方法。
【請求項９】
前記ホスト上で動作する第２アプリケーションから、前記第１集合の要求事項と異なる第２集合の要求事項を受信する段階と、
前記複数の物理フラッシュメモリブロックの中の１つ以上が前記第２集合の要求事項を充足させるのに適合するか否かを判別する段階と、
前記第２集合の要求事項を充足させるのに適合する物理フラッシュメモリブロックの第２リストを形成する段階と、
前記第２アプリケーションから、ストレージ空間の割当に対する要請を受信する段階と、
前記第２リストからの第２物理フラッシュメモリブロックを前記第２アプリケーションに割当する段階と、を更に含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記第２物理フラッシュメモリブロックを消去する段階を更に含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記第２物理フラッシュメモリブロックを消去する段階は、
前記第２物理フラッシュメモリブロックが浅い消去処理によって前記第２集合の要求事項を充足させるのに適合するように維持されると予測される場合、前記浅い消去処理を採用する段階と、
前記第２物理フラッシュメモリブロックが前記浅い消去処理によって前記第２集合の要求事項を充足させるのに適合するように維持されないと予測される場合、既定の消去処理を採用する段階と、を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
ホストに連結されるソリッドステートドライブにおいて、複数の物理フラッシュメモリブロックを含むフラッシュメモリの部分を割当する方法であって、
複数のビットエラーカウントから、前記複数の物理フラッシュメモリブロックの中の１つ以上に対する生の（Ｒａｗ）ビットエラー率を計算する段階と、
前記複数の物理フラッシュメモリブロックの各々に対して遂行されるプログラム及び消去サイクルをカウントする段階と、
複数のプログラム方法の各々に対して、前記生のビットエラー率並びに前記プログラム及び消去サイクルのカウントされた回数から、前記複数の物理フラッシュメモリブロックの中の１つ以上に対する平均応答時間及び推定許容可能保持時間を計算する段階と、
前記複数の物理フラッシュメモリブロックの中の１つ以上が第１集合の要求事項を充足させるのに適合するか否かを判別する段階と、
第１アプリケーションから、ストレージ空間の割当に対する要請を受信する段階と、
物理フラッシュメモリブロックの第１リストからの第１物理フラッシュメモリブロックを前記第１アプリケーションに割当する段階と、を有することを特徴とする方法。
【請求項１３】
前記フラッシュメモリ上で、複数の読出し動作の中の１つ以上の読出し動作が前記複数のビットエラーカウントのビットエラーカウントを生成するエラー訂正コードデコーディング演算を含む前記複数の読出し動作を遂行する段階を更に含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ホスト上で動作する前記第１アプリケーションから、前記第１集合の要求事項を受信する段階と、
前記第１集合の要求事項を充足させるのに適合する前記物理フラッシュメモリブロックの第１リストを形成する段階と、を更に含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
処理ユニットを含むストレージコントローラと、
各々が複数の物理ページを有する複数の物理フラッシュメモリブロックを含むフラッシュメモリと、を備え、
前記ストレージコントローラは、
モーフィックエンジン（Ｍｏｒｐｈｉｃ  Ｅｎｇｉｎｅ）と、
仮想ストレージテーブル、アドレス変換ブロック、及びクラスタリングエンジンを有するストレージ仮想化器（Ｖｉｒｔｕａｌｉｚｅｒ）と、を含み、
前記仮想ストレージテーブルは、ホスト上で実行される第１アプリケーションから第１集合の要件を受信し、
前記クラスタリングエンジンは、複数のプログラム方法の各々に対して、生の（Ｒａｗ）ビットエラー率並びにプログラム及び消去サイクルのカウントされた回数から、前記複数の物理フラッシュメモリブロックの中の１つ以上に対する平均応答時間及び推定許容可能保持時間を計算し、
前記仮想ストレージテーブルは、ホスト上で動作する第１アプリケーションから、第１集合の要求事項を受信し、
前記クラスタリングエンジンは、
前記仮想ストレージテーブルから前記第１集合の要求事項を受信し、
前記複数の物理フラッシュメモリブロックの中の１つ以上が前記第１集合の要求事項を充足させるのに適合するか否かを判別し、
前記第１集合の要求事項を充足させるのに適合する物理フラッシュメモリブロックの第１リストを形成し、
前記第１アプリケーションから、ストレージ空間の割当に対する要請を受信し、
前記第１リストからの第１物理フラッシュメモリブロックを前記第１アプリケーションに割当することを特徴とするソリッドステートドライブ。
【請求項１６】
前記フラッシュメモリ上で、複数の読出し動作の中の１つ以上の読出し動作がビットエラーカウントを生成するエラー訂正コードデコーディング演算を含む前記複数の読出し動作を遂行するＮＡＮＤコントローラ、を更に備えることを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項１７】
複数のビットエラーカウントから、前記複数の物理フラッシュメモリブロックの中の１つ以上に対する前記生のビットエラー率を計算する生のビットエラー率追跡器を更に備えることを特徴とする請求項１６に記載のソリッドステートドライブ。
【請求項１８】
前記複数の物理フラッシュメモリブロックの中の１つ以上に対して遂行されるプログラム及び消去サイクルをカウントする摩耗追跡器を更に備えることを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項１９】
前記推定許容可能保持時間を生成する保持予測器を更に備えることを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項２０】
前記複数の物理フラッシュメモリブロックの中の１つ以上に対して、性能メトリック関数としての前記推定許容可能保持時間を計算することは、
前記保持予測器によって、保持時間関数としてのビットエラーカウントに対して線形フィット（Ｆｉｔ）を遂行することと、
前記線形フィットが最大の受け入れ可能な生のビットエラー率を超過する保持時間を前記推定許容可能保持時間として計算することと、を含むことを特徴とする請求項１９に記載のソリッドステートドライブ。
【請求項２１】
前記複数のプログラム方法は、
第１ステップサイズを活用するＩＳＰＰ（Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ）方法と、
第２ステップサイズを活用するＩＳＰＰ方法と、を含み、
前記第１ステップサイズは、前記第２ステップサイズよりも大きいことを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項２２】
前記第１集合の要求事項は、要求許容可能保持時間及び要求平均応答時間の中の少なくとも１つを含むことを特徴とする請求項１５に記載のソリッドステートドライブ。
【請求項２３】
前記複数の物理フラッシュメモリブロックの中の１つ以上が前記第１集合の要求事項を充足させるのに適合するか否かを判別することは、
前記複数のプログラム方法の中のいずれかのプログラム方法に対して、
前記計算された平均応答時間が前記要求平均応答時間よりも小さいか否かと、
前記計算された推定許容可能保持時間が前記要求許容可能保持時間よりも大きいか否かと、を判別することを含むことを特徴とする請求項２２に記載のソリッドステートドライブ。
【請求項２４】
前記ＮＡＮＤコントローラは、前記第１物理フラッシュメモリブロックを消去し、
前記第１物理フラッシュメモリブロックを消去することは、
前記第１物理フラッシュメモリブロックが浅い（Ｓｈａｌｌｏｗ）消去処理によって前記第１集合の要求事項を充足させるのに適合するように維持されると予測される場合、前記浅い消去処理を採用することと、
前記第１物理フラッシュメモリブロックが前記浅い消去処理によって前記第１集合の要求事項を充足させるのに適合するように維持されないと予測される場合、既定の（Ｎｏｒｍａｌ）消去処理を採用することと、を含むことを特徴とする請求項１６に記載のソリッドステートドライブ。
【請求項２５】
前記仮想ストレージテーブルは、前記ホスト上で動作する第２アプリケーションから、前記第１集合の要求事項と異なる第２集合の要求事項を受信し、
前記クラスタリングエンジンは、
前記仮想ストレージテーブルから前記第２集合の要求事項を受信し、
前記複数の物理フラッシュメモリブロックの中の１つ以上が前記第２集合の要求事項を充足させるのに適合するか否かを判別し、
前記第２集合の要求事項を充足させるのに適合する物理フラッシュメモリブロックの第２リストを形成し、
前記第２アプリケーションから、ストレージ空間の割当に対する要請を受信し、
前記第２リストからの第２物理フラッシュメモリブロックを前記第２アプリケーションに割当することを特徴とする請求項１５に記載のソリッドステートドライブ。