(57)【特許請求の範囲】
【請求項１】
第1のストレージエリアおよび第2のストレージエリアを備える、ストレージデバイスによってデータを記憶するための方法であって、前記第1のストレージエリアは、データ領域および予約領域を含み、前記第2のストレージエリアは、データ領域および予約領域を含み、前記方法は、
前記ストレージデバイスによって、論理アドレスおよびデータを搬送する、書き込み要求を受信するステップと、
前記ストレージデバイスによって、前記書き込み要求の特徴を決定するステップと、
前記ストレージデバイスによって、前記書き込み要求の前記特徴が第1の条件を満たす場合には、前記書き込み要求において搬送された前記データを前記第1のストレージエリアの前記予約領域の第1のストレージアドレスに書き込むステップと、
前記ストレージデバイスによって、前記論理アドレスと前記第1のストレージアドレスとの間のマッピング関係を確立するステップ、または、
前記書き込み要求の前記特徴が第2の条件を満たす場合には、前記書き込み要求において搬送された前記データを前記第2のストレージエリアの前記予約領域の第2のストレージアドレスに書き込むステップと、
前記ストレージデバイスによって、前記論理アドレスと前記第2のストレージアドレスとの間のマッピング関係を確立するステップ、とを含み、
前記第1のストレージエリアの前記予約領域は、前記第2のストレージエリアの前記予約領域より小さい、または、前記第1のストレージエリアの前記データ領域に対する前記第1のストレージエリアの前記予約領域の比は、前記第2のストレージエリアの前記データ領域に対する前記第2のストレージエリアの前記予約領域の比未満である、方法。
【請求項２】
前記ストレージデバイスによって、前記書き込み要求の特徴を決定するステップは、
前記ストレージデバイスによって、前記書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定するステップであって、
前記第1の条件は、前記シーケンシャル書き込み要求であり、前記第2の条件は、前記ランダム書き込み要求である、ステップを含む、請求項1に記載の方法。
【請求項３】
前記ストレージデバイスによって、前記書き込み要求の特徴を決定するステップは、
前記ストレージデバイスによって、前記書き込み要求のシーケンスレベルを決定するステップを含み、
前記第1の条件は、第1のシーケンスレベルの範囲であり、前記第2の条件は、第2のシーケンスレベルの範囲であり、前記第1のシーケンスレベルの範囲の最小値は、前記第2のシーケンスレベルの範囲の最大値より大きく、前記シーケンスレベルは、シーケンシャル書き込み要求カウントとランダム書き込み要求カウントとの合計に対する前記シーケンシャル書き込み要求カウントの比である、請求項1に記載の方法。
【請求項４】
前記ストレージデバイスによって、前記書き込み要求の特徴を決定するステップは、
前記ストレージデバイスによって、前記書き込み要求のランダムネスレベルを決定するステップを含み、
前記第1の条件は、第1のランダムネスレベルの範囲であり、前記第2の条件は、第2のランダムネスレベルの範囲であり、前記第1のランダムネスレベルの範囲の最大値は、前記第2のランダムネスレベルの範囲の最小値未満であり、前記ランダムネスレベルは、シーケンシャル書き込み要求カウントとランダム書き込み要求カウントとの合計に対する前記ランダム書き込み要求カウントの比である、請求項1に記載の方法。
【請求項５】
前記ストレージデバイスによって、前記書き込み要求の特徴を決定するステップは、
前記ストレージデバイスによって、前記書き込み要求において搬送された前記データのサイズを決定するステップであって、
前記第1の条件は、前記第1のストレージエリアに記憶されている第1のデータ範囲であり、前記第2の条件は、前記第2のストレージエリアに記憶されている第2のデータ範囲であり、前記第1のデータ範囲の最小値は、前記第2のデータ範囲の最大値より大きい、ステップを含む、請求項1に記載の方法。
【請求項６】
ストレージコントローラ、第1のストレージエリア、および第2のストレージエリアを備える、ストレージデバイスであって、前記第1のストレージエリアは、データ領域および予約領域を含み、前記第2のストレージエリアは、データ領域および予約領域を含み、前記ストレージコントローラは、
論理アドレスおよびデータを搬送する、書き込み要求を受信するように構成される、受信ユニットと、
前記書き込み要求の特徴を決定するように構成される、決定ユニットと、
前記書き込み要求の前記特徴が第1の条件を満たす場合には、前記書き込み要求において搬送された前記データを前記第1のストレージエリアの前記予約領域の第1のストレージアドレスに書き込むように構成される、書き込みユニットと、
前記論理アドレスと前記第1のストレージアドレスとの間のマッピング関係を確立するように構成される、マッピングユニットとを備え、
前記書き込みユニットは、前記書き込み要求の前記特徴が第2の条件を満たす場合には、前記書き込み要求において搬送された前記データを前記第2のストレージエリアの前記予約領域の第2のストレージアドレスに書き込むようにさらに構成され、
前記マッピングユニットは、前記論理アドレスと前記第2のストレージアドレスとの間のマッピング関係を確立するようにさらに構成され、
前記第1のストレージエリアの前記予約領域は、前記第2のストレージエリアの前記予約領域より小さい、または、前記第1のストレージエリアの前記データ領域に対する前記第1のストレージエリアの前記予約領域の比は、前記第2のストレージエリアの前記データ領域に対する前記第2のストレージエリアの前記予約領域の比未満である、ストレージデバイス。
【請求項７】
前記決定ユニットは、前記書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定するように特に構成され、
前記第1の条件は、前記シーケンシャル書き込み要求であり、前記第2の条件は、前記ランダム書き込み要求である、請求項6に記載のストレージデバイス。
【請求項８】
前記決定ユニットは、前記書き込み要求のシーケンスレベルを決定するように特に構成され、
前記第1の条件は、第1のシーケンスレベルの範囲であり、前記第2の条件は、第2のシーケンスレベルの範囲であり、前記第1のシーケンスレベルの範囲の最小値は、前記第2のシーケンスレベルの範囲の最大値より大きく、前記シーケンスレベルは、シーケンシャル書き込み要求カウントとランダム書き込み要求カウントとの合計に対する前記シーケンシャル書き込み要求カウントの比である、請求項6に記載のストレージデバイス。
【請求項９】
前記決定ユニットは、前記書き込み要求のランダムネスレベルを決定するように特に構成され、
前記第1の条件は、第1のランダムネスレベルの範囲であり、前記第2の条件は、第2のランダムネスレベルの範囲であり、前記第1のランダムネスレベルの範囲の最大値は、前記第2のランダムネスレベルの範囲の最小値未満であり、前記ランダムネスレベルは、シーケンシャル書き込み要求カウントとランダム書き込み要求カウントとの合計に対する前記ランダム書き込み要求カウントの比である、請求項6に記載のストレージデバイス。
【請求項１０】
前記決定ユニットは、前記書き込み要求において搬送された前記データのサイズを決定するように特に構成され、
前記第1の条件は、前記第1のストレージエリアに記憶されている第1のデータ範囲であり、前記第2の条件は、前記第2のストレージエリアに記憶されている第2のデータ範囲であり、前記第1のデータ範囲の最小値は、前記第2のデータ範囲の最大値より大きい、請求項6に記載のストレージデバイス。
【請求項１１】
ストレージコントローラ、第1のストレージエリア、および第2のストレージエリアを備える、ストレージデバイスであって、前記第1のストレージエリアは、データ領域および予約領域を含み、前記第2のストレージエリアは、データ領域および予約領域を含み、
前記ストレージコントローラは、
論理アドレスおよびデータを搬送する、書き込み要求を受信し、
前記書き込み要求の特徴を決定し、
前記書き込み要求の前記特徴が第1の条件を満たす場合には、前記書き込み要求において搬送された前記データを前記第1のストレージエリアの前記予約領域の第1のストレージアドレスに書き込み、
前記論理アドレスと前記第1のストレージアドレスとの間のマッピング関係を確立する、または、
前記書き込み要求の前記特徴が第2の条件を満たす場合には、前記書き込み要求において搬送された前記データを前記第2のストレージエリアの前記予約領域の第2のストレージアドレスに書き込み、
前記論理アドレスと前記第2のストレージアドレスとの間のマッピング関係を確立する、ように構成され、
前記第1のストレージエリアの前記予約領域は、前記第2のストレージエリアの前記予約領域より小さい、または、前記第1のストレージエリアの前記データ領域に対する前記第1のストレージエリアの前記予約領域の比は、前記第2のストレージエリアの前記データ領域に対する前記第2のストレージエリアの前記予約領域の比未満である、ストレージデバイス。
【請求項１２】
前記ストレージコントローラは、前記書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定するように特に構成され、
前記第1の条件は、前記シーケンシャル書き込み要求であり、前記第2の条件は、前記ランダム書き込み要求である、請求項11に記載のストレージデバイス。
【請求項１３】
前記ストレージコントローラは、前記書き込み要求のシーケンスレベルを決定するように特に構成され、
前記第1の条件は、第1のシーケンスレベルの範囲であり、前記第2の条件は、第2のシーケンスレベルの範囲であり、前記第1のシーケンスレベルの範囲の最小値は、前記第2のシーケンスレベルの範囲の最大値より大きく、前記シーケンスレベルは、シーケンシャル書き込み要求カウントとランダム書き込み要求カウントとの合計に対する前記シーケンシャル書き込み要求カウントの比である、請求項11に記載のストレージデバイス。
【請求項１４】
前記ストレージコントローラは、前記書き込み要求のランダムネスレベルを決定するように特に構成され、
前記第1の条件は、第1のランダムネスレベルの範囲であり、前記第2の条件は、第2のランダムネスレベルの範囲であり、前記第1のランダムネスレベルの範囲の最大値は、前記第2のランダムネスレベルの範囲の最小値未満であり、前記ランダムネスレベルは、シーケンシャル書き込み要求カウントとランダム書き込み要求カウントとの合計に対する前記ランダム書き込み要求カウントの比である、請求項11に記載のストレージデバイス。
【請求項１５】
前記ストレージコントローラは、前記書き込み要求において搬送された前記データのサイズを決定するように特に構成され、
前記第1の条件は、前記第1のストレージエリアに記憶されている第1のデータ範囲であり、前記第2の条件は、前記第2のストレージエリアに記憶されている第2のデータ範囲であり、前記第1のデータ範囲の最小値は、前記第2のデータ範囲の最大値より大きい、請求項11に記載のストレージデバイス。
【請求項１６】
プログラムコードを記憶するコンピュータ可読記憶媒体であって、前記プログラムコードに含まれる命令は、請求項1から5のいずれか一項に記載の方法を実行するために使用される、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報技術の分野に関し、詳細には、ストレージデバイスによってデータを記憶するための方法およびストレージデバイスに関する。
【背景技術】
【０００２】
ソリッドステートディスク(Solid State Disk、SSD)は、図1に示したように、ストレージコントローラ101およびメディア102(例えば、フラッシュメモリチップ)を備える。ストレージコントローラ101は、中央処理ユニット(Central Processing Unit、CPU)1011およびメモリ1012を備える。SSD内のストレージは、構成単位として物理ブロック(physical block)およびページ(page)を使用して構築されている。ページが、ソリッドステートディスクにおける最小の読み込み/書き込み単位であり、ページのサイズは、4KB、8KB、または16KBであり得る。ページは、物理ブロックに組み合わされ、各物理ブロックは、32、64、または128個のページを有し得る。SSDは、ストレージ領域をデータ領域および予約領域(Over-Provisioning)に一般的に分割する。データ領域は、データが既に書き込まれている領域であり、予約領域は、空き領域であるとともに空きページを含み、データは、予約領域に書き込まれ得る。SSD内のデータ領域に既に記憶されているデータが新規データによって上書きされることになる場合には、リダイレクト・オン・ライト(Redirect-On-Write、ROW)機構が使用される。すなわち、SSDが新規データを論理ブロックアドレス(Logical Block Address、LBA)に書き込み、既に記憶されているデータを変更する場合には、SSDは、新規データを予約領域のページに書き込み、LBAと予約領域のページアドレスとの間のマッピング関係を確立し、データ領域の、LBAが以前マッピングされていた、ページアドレス内のデータをガベージデータとしてマークを付ける。予約領域が閾値未満である場合には、SSDは、ガベージ領域リサイクル処理をガベージデータがあるページの物理ブロックに対して行う。リサイクル処理のプロセスとは、ガベージデータがあるページの物理ブロック内の有効データを読み込み、読み込んだ有効データを予約領域に書き込み、ガベージデータがあるページの物理ブロック内のデータを消去し、物理ブロックを新規予約領域として使用することである。ガベージ領域リサイクル処理のプロセスにおいては、有効データを読み込み有効データを予約領域に書き込むプロセスを有効データの移動と称する。
【０００３】
ガベージ領域リサイクル処理は、ライトアンプリフィケーションを引き起こし、新たに書き込まれたデータのサイズWに対するSSDにおけるガベージ領域リサイクル処理において移動された有効データのサイズVと新たに書き込まれたデータのサイズWとの合計の比、すなわち、(V+W)/Wを、ライトアンプリフィケーションと称する。
【発明の概要】
【課題を解決するための手段】
【０００４】
第1の態様によれば、本発明の実施形態は、第1のストレージエリアおよび第2のストレージエリアを備える、ストレージデバイスによってデータを記憶するための解決手法を提供している、ここで、第1のストレージエリアは、データ領域および予約領域を含み、第2のストレージエリアは、データ領域および予約領域を含み、ストレージデバイスは、論理アドレスおよびデータを搬送する、書き込み要求を受信し、ストレージデバイスは、書き込み要求の特徴を決定する。
【０００５】
書き込み要求の特徴が第1の条件を満たす場合には、ストレージデバイスは、書き込み要求において搬送されたデータを第1のストレージエリアの予約領域の第1のストレージアドレスに書き込み、論理アドレスと第1のストレージアドレスとの間のマッピング関係を確立する、または、書き込み要求の特徴が第2の条件を満たす場合には、ストレージデバイスは、書き込み要求において搬送されたデータを第2のストレージエリアの予約領域の第2のストレージアドレスに書き込み、論理アドレスと第2のストレージアドレスとの間のマッピング関係を確立する。本発明の本実施形態においては、書き込み要求において搬送されたデータを書き込み要求の特徴に従って、異なるストレージエリアの予約領域に書き込む、そのことが、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。
【０００６】
必要に応じて、ストレージデバイスは、ガベージ領域リサイクル処理を第1のストレージエリアおよび第2のストレージエリアに対して独立して行ってもよい。ストレージデバイスがガベージ領域リサイクル処理を第1のストレージエリアおよび第2のストレージエリアに対して独立して行い得ることは、ストレージデバイスが、ガベージ領域リサイクル処理を第1のストレージエリアおよび第2のストレージエリアのうちの1つに対して行い、他方のストレージエリアに影響を及ぼさない、または、ガベージ領域リサイクル処理を第1のストレージエリアおよび第2のストレージエリアの両方に対して並行して行い得ることを意味する。異なる特徴を有する書き込み要求については、データが、異なるストレージエリアに書き込まれ、ガベージ領域リサイクル処理が、異なるストレージエリアに設定された異なる予約領域に基づいて、ストレージエリアに対して独立して行われる。したがって、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減することができ、ライトアンプリフィケーションを低減することができ、ガベージ領域リサイクル処理のプロセスをトリガする回数も異なる予約領域を設定することによって低減することができ、その結果、ストレージデバイス内の物理ブロックを消去する回数を低減するとともにストレージデバイスの耐用年数を増大している。
【０００７】
必要に応じて、第1のストレージエリアの予約領域のサイズは、第2のストレージエリアの予約領域のサイズとは異なる。
【０００８】
必要に応じて、第1のストレージエリアの予約領域は、第2のストレージエリアの予約領域より小さい、または、第1のストレージエリアのデータ領域に対する第1のストレージエリアの予約領域の比は、第2のストレージエリアのデータ領域に対する第2のストレージエリアの予約領域の比未満である。第2のストレージエリアがより多くの予約領域を有しているため、第2のストレージエリアにおけるガベージ領域リサイクル処理の回数を低減することができる。
【０００９】
必要に応じて、データを対応するストレージエリア、例えば、前述の第1または第2のストレージエリアに書き込む場合には、対応するストレージエリアの予約領域が不十分であるならば、動的な調整を行ってもよい。例えば、最大冗長クォータが使い切られていないという前提条件の下では、追加の予約領域を適用してもよく、その後、書き込み要求におけるデータが、新たに適用される予約領域に書き込まれる。
【００１０】
必要に応じて、ストレージデバイスによって、書き込み要求の特徴を決定するステップは、
ストレージデバイスによって、書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定するステップであって、第1の条件は、シーケンシャル書き込み要求であり、第2の条件は、ランダム書き込み要求である、ステップと、異なるストレージエリアにシーケンシャル書き込み要求およびランダム書き込み要求をそれぞれ記憶するステップとを含む、そのことが、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。加えて、シーケンシャル書き込み要求およびランダム書き込み要求の両方が存在する場合には、ストレージデバイスのランダム書き込み性能をシーケンシャル書き込み要求の性能に影響を及ぼすことなく改善している。必要に応じて、データを基準論理アドレスに書き込むかどうかを決定する、ここで、基準論理アドレスと論理アドレスとの間のアドレス差の絶対値はLより大きくなく、Lをシーケンシャル書き込み要求に関する要件に従って設定してもよい。ある実施形態においては、データを基準論理アドレスに書き込む場合には、書き込み要求は、シーケンシャル書き込み要求であり、さもなければ、書き込み要求は、ランダム書き込み要求である。別の実施形態においては、データを基準論理アドレスに書き込まない場合には、書き込み要求は、ランダム書き込み要求である。データを基準論理アドレスに書き込む場合には、さらに、ストレージデバイスは、基準アドレスを搬送する書き込み要求を最後に受信した時間と論理アドレスを搬送する書き込み要求を最後に受信した時間との間の間隔が閾値Tより大きいかどうかを決定し、間隔が閾値Tより大きい場合には、書き込み要求は、ランダム書き込み要求のままであり、間隔が閾値Tより大きくない場合には、書き込み要求は、シーケンシャル書き込み要求である。Tは、特定の実施形態に従って設定されてもよい。
【００１１】
必要に応じて、ストレージデバイスによって、書き込み要求の特徴を決定するステップは、
ストレージデバイスによって、書き込み要求のシーケンスレベルを決定するステップであって、第1の条件は、第1のシーケンスレベルの範囲であり、第2の条件は、第2のシーケンスレベルの範囲であり、第1のシーケンスレベルの範囲の最小値は、第2のシーケンスレベルの範囲の最大値より大きい、ステップを含む。必要に応じて、シーケンスレベルは、(現在の論理アドレスのシーケンシャル書き込み要求カウントCsおよび現在の論理アドレスのランダム書き込み要求カウントCrの合計)に対する現在の論理アドレスのシーケンシャル書き込み要求カウントCsの比S(シーケンスレベル)、すなわち、C/(C+Cr)=Sである。シーケンスレベルに従って、異なるシーケンスレベルを有する書き込み要求において搬送されたデータを異なる予約領域を有する異なるストレージエリアにそれぞれ記憶し得る、そのことが、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。
【００１２】
必要に応じて、ストレージデバイスによって、書き込み要求の特徴を決定するステップは、
ストレージデバイスによって、書き込み要求のランダムネスレベルを決定するステップであって、
第1の条件は、第1のランダムネスレベルの範囲であり、第2の条件は、第2のランダムネスレベルの範囲であり、第1のランダムネスレベルの範囲の最大値は、第2のランダムネスレベルの範囲の最小値未満である、ステップを含む。必要に応じて、ランダムネスレベルは、(現在の論理アドレスのシーケンシャル書き込み要求カウントCsおよび現在の論理アドレスのランダム書き込み要求カウントCrの合計)に対する現在の論理アドレスのランダム書き込み要求カウントCrの比R、すなわち、Cr/(Cr+C)=Rである。ランダムネスレベルに従って、異なるランダムネスレベルを有する書き込み要求において搬送されたデータを別々に記憶し得る、そのことが、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。
【００１３】
必要に応じて、ストレージデバイスによって、書き込み要求の特徴を決定するステップは、
ストレージデバイスによって、書き込み要求において搬送されたデータのサイズを決定するステップであって、
第1の条件は、第1のストレージエリアに記憶されている第1のデータ範囲であり、第2の条件は、第2のストレージエリアに記憶されている第2のデータ範囲であり、第1のデータ範囲の最小値は、第2のデータ範囲の最大値より大きい、ステップを含む。ストレージデバイスは、異なるストレージエリアを備え、各ストレージエリアは、対応するデータ範囲を記憶している、そのことが、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減し得る。必要に応じて、データ範囲は、ストレージエリアに記憶されている書き込み要求において搬送されたデータのサイズの区間を指す。
【００１４】
必要に応じて、複数の書き込み要求が同時に送信されるケースでは、ストレージデバイスは、ストレージデバイスの書き込み性能を改善するために、第1の条件を満たしている書き込み要求を優先的に処理する。
【００１５】
必要に応じて、ストレージデバイスは、SSD、または、瓦記録(Shingled Magnetic Recording、SMR)ディスク、または、ガベージ領域リサイクル処理機能を有するとともにROW機構に基づいたストレージアレイである。
【００１６】
第1の態様において実施される解決手法と対応する、第2の態様によれば、本発明の実施形態は、ストレージデバイスによってストレージエリアを分割するための解決手法をさらに提供している。ストレージデバイスは、ストレージ領域を第1のストレージエリアおよび第2のストレージエリアに分割する、ここで、第1のストレージエリアは、データ領域および予約領域を含み、第2のストレージエリアは、データ領域および予約領域を含む、ここで、第1のストレージエリアの予約領域は、第1の書き込み要求において搬送されたデータを記憶するように構成され、第2のストレージエリアの予約領域は、第2の書き込み要求において搬送されたデータを記憶するように構成され、第1の書き込み要求の特徴は、第1の条件を満たし、第2の書き込み要求の特徴は、第2の条件を満たす。
【００１７】
必要に応じて、対応する数量のストレージエリアが、書き込み要求のシーケンスレベルまたはランダムネスレベルのクラス番号に従って分割されてもよく、対応する予約領域が、シーケンスレベルまたはランダムネスレベルの各クラスの値に従って、設定される。ストレージエリアの分割および対応する予約領域の設定をあらかじめ行ってもよいし、または、動的な分割および設定を使用中に行ってもよい。
【００１８】
第1の態様および第2の態様に対応する、第3の態様によれば、本発明の実施形態は、本発明の実施形態の第1の態様および第2の態様において提供した実施形態の解決手法を実施するために、第1の態様および第2の態様の実施形態におけるストレージデバイスとして別々に使用される、ストレージデバイスをさらに提供している。ストレージデバイスは、第1の態様および第2の態様における本発明の実施形態の解決手法を実施する構造的ユニットを備える、または、ストレージデバイスは、第1の態様および第2の態様における実施形態の解決手法を実施するためにストレージコントローラを備える。
【００１９】
それに対応するように、本発明の実施形態は、不揮発性コンピュータ可読記憶媒体およびコンピュータプログラム製品をさらに提供している。不揮発性コンピュータ可読記憶媒体およびコンピュータプログラム製品に含まれるコンピュータ命令が、本発明の実施形態において提供したストレージデバイスのストレージコントローラのメモリにロードされ、ストレージコントローラのCPUが、コンピュータ命令を実行すると、ストレージデバイスは、第1の態様および第2の態様の実施形態におけるストレージデバイスの機能を行って、本発明の実施形態の第1の態様および第2の態様において提供した解決手法を実施する。
【図面の簡単な説明】
【００２０】
【図１】SSDの概略構造図である。
【図２】本発明の実施形態による、フローチャートである。
【図３】本発明の実施形態による、ストレージエリアの概略図である。
【図４】本発明の実施形態による、ストレージエリアの概略図である。
【図５】本発明の実施形態による、ストレージエリアの概略図である。
【図６】本発明の実施形態による、ストレージエリアの概略図である。
【図７】本発明の実施形態による、ストレージエリアの概略図である。
【図８】本発明の実施形態による、ストレージエリアの概略図である。
【図９】本発明の実施形態による、ストレージエリアの概略図である。
【図１０】本発明の実施形態による、ストレージデバイスの概略図である。
【図１１】本発明の実施形態による、ストレージデバイスの概略図である。
【発明を実施するための形態】
【００２１】
SSDを本発明の実施形態における例として使用する。本発明の本実施形態においては、SSDは、第1のストレージエリアVd1および第2のストレージエリアVd2を備える。Vd1は、データ領域および予約領域を含み、Vd2は、データ領域および予約領域を含み、Vd1の予約領域のサイズは、Vd2の予約領域のサイズとは異なる。本発明の本実施形態においては、SSDは、ガベージ領域リサイクル処理をVd1およびVd2に対して独立して行い得る。SSDがガベージ領域リサイクル処理をVd1およびVd2に対して独立して行い得ることは、SSDが、ガベージ領域リサイクル処理をVd1およびVd2のうちの1つに対して行い、他方のストレージエリアに影響を及ぼさない、または、ガベージ領域リサイクル処理をVd1およびVd2の両方に対して並行して行い得ることを意味する。異なる特徴を有する書き込み要求については、データが、異なるストレージエリアに書き込まれ、ガベージ領域リサイクル処理が、異なるストレージエリアに設定された異なる予約領域に基づいて、ストレージエリアに対して独立して行われる。したがって、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減することができ、ライトアンプリフィケーションを低減することができ、ガベージ領域リサイクル処理のプロセスをトリガする回数も異なる予約領域を設定することによって低減することができ、その結果、SSD内の物理ブロックを消去する回数を低減するとともにSSDの耐用年数を増大している。
【００２２】
本発明の本実施形態におけるSSDの前述の特性を本発明の実施形態における別のストレージデバイスにさらに適用してもよく、そのため、その詳細を本明細書では再び説明しない。
【００２３】
図2に示したように、本発明の実施形態は、以下のステップを含む。
【００２４】
ステップ201: 書き込み要求を受信する。
【００２５】
SSDは、LBAおよびデータを搬送する、書き込み要求を受信する。
【００２６】
ステップ202: 書き込み要求の特徴を決定する。
【００２７】
書き込み要求の特徴を決定する実施様態は、以下のことを含む。
【００２８】
特に、書き込み要求を受信した場合には、SSDは、書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定する。本発明の本実施形態においては、SSDは、各書き込み要求を受信した時間、および書き込み要求において搬送されたLBAアドレスを記録する。特定の実施様態においては、書き込み要求がシーケンシャル書き込み要求(図2に示した第1の条件)であるかランダム書き込み要求(図2に示した第2の条件)であるかを決定するための方法は、以下の通りである。
【００２９】
SSDは、受信した書き込み要求において搬送されたLBA、および書き込み要求を最後に受信した時間を記録する。書き込み要求において搬送されたLBAmに従って、SSDは、データをLBAn(基準論理アドレスと称する)に書き込むかどうかのクエリを行う、ここで、LBAmとLBAnとの間の差の絶対値はLより大きくなく、Lをシーケンシャル書き込み要求に関する要件に従って設定してもよい。データをLBAnに書き込まない場合には、LBAmを搬送する書き込み要求は、ランダム書き込み要求である。ある実施様態においては、データをLBAnに書き込む場合には、LBAmを搬送する書き込み要求は、シーケンシャル書き込み要求である。別の実施様態においては、データをLBAnに書き込む場合には、SSDは、LBAnを搬送する書き込み要求を最後に受信した時間とLBAmを搬送する書き込み要求を最後に受信した時間との間の間隔が閾値Tより大きいかどうかをさらに決定する。間隔がTより大きい場合には、LBAmを搬送する書き込み要求は、ランダム書き込み要求である。間隔がTより大きくない場合には、LBAmを搬送する書き込み要求は、シーケンシャル書き込み要求である。Tは、特定の実施形態に従って設定されてもよく、本発明の本実施形態に限定されない。シーケンシャル書き込み要求は、一般的に、同一のファイルまたはアプリケーションからの書き込み要求であり、ランダム書き込み要求は、異なるファイルまたはアプリケーションからの書き込み要求である。
【００３０】
本発明の本実施形態においては、SSDは、図2に示した第1のストレージエリア(Vd1)および図2に示した第2のストレージエリア(Vd2)を備える、ここで、Vd1およびVd2の各々は、1つまたは複数の物理ブロックを含む。図3に示したように、本発明の本実施形態においては、Vd1はY個の物理ブロックを含む、ここで、各物理ブロックは(n+1)個のページを含み、Vd1はシーケンシャル書き込み要求において搬送されたデータを記憶するように構成され、第1の物理ブロックから第(Y-2)の物理ブロックはVd1のデータ領域を形成し、第(Y-1)の物理ブロックおよび第Yの物理ブロックは予約領域を形成する。
【００３１】
図4に示したように、SSDは、第1のシーケンシャル書き込み要求を受信する、ここで、第1のシーケンシャル書き込み要求において搬送された論理アドレスはLBA1である。LBA1は、Vd1内の第1の物理ブロックの(n+1)個のページに既にマッピングされており、すなわち、LBA1は、Vd1内の第1の物理ブロックのページ0からページnにマッピングされている。SSDのROW機構に基づいて、SSDは、第1のシーケンシャル書き込み要求において搬送されたデータをVd1内の第(Y-1)の物理ブロックの予約領域に書き込み、LBA1とVd1内の第(Y-1)の物理ブロックの(n+1)個のページとの間のマッピングを確立し、すなわち、LBA1とVd1内の第(Y-1)の物理ブロックのページ0からページnとの間のマッピングを確立し、Vd1内の第1の物理ブロックのページ0からページnにあるデータをガベージデータとして識別する(そして、LBA1とVd1内の第1の物理ブロックの(n+1)個のページとの間のマッピングを消去する)。SSDは、第2のシーケンシャル書き込み要求を受信する、ここで、第2のシーケンシャル書き込み要求において搬送された論理アドレスはLBA2である。LBA2は、Vd1内の第2の物理ブロックの(n+1)個のページに既にマッピングされており、すなわち、LBA2は、Vd1内の第2の物理ブロックのページ0からページnにマッピングされている。SSDのROW機構に基づいて、SSDは、第2のシーケンシャル書き込み要求において搬送されたデータをVd1内の第Yの物理ブロックの予約領域に書き込み、LBA2とVd1内の第Yの物理ブロックの(n+1)個のページとの間のマッピングを確立し、すなわち、LBA2とVd1内の第Yの物理ブロックのページ0からページnとの間のマッピングを確立し、Vd1内の第2の物理ブロックのページ0からページnにあるデータをガベージデータとして識別する(そして、LBA2とVd1内の第2の物理ブロックの(n+1)個のページとの間のマッピングを消去する)。
【００３２】
図4に示したVd1内の予約領域が0個に変化するので、ガベージ領域リサイクル処理を開始する必要がある。ガベージ領域リサイクル処理を、Vd1内で最も多くのガベージデータを含む物理ブロックに対して行う。本発明の本実施形態においては、図4に示した第1の物理ブロックおよび第2の物理ブロックが、最も多くのガベージデータを含む。したがって、第1の物理ブロックおよび第2の物理ブロックに対するガベージ領域リサイクル処理を開始する。図5に示したように、ガベージ領域リサイクル処理のプロセスにおいては、Vd1内の第1の物理ブロックおよび第2の物理ブロックのページに記憶されているデータがすべてガベージデータであるため、有効データが存在しておらず、有効データの移動を行う必要がない、すなわち、ライトアンプリフィケーションが存在しない。したがって、シーケンシャル書き込み要求がVd1に記憶されており、ガベージ領域リサイクル処理のプロセスにおいて、有効データの移動およびライトアンプリフィケーションをVd1において低減している。加えて、ガベージ領域リサイクル処理のプロセスにおいて有効データが存在してないかわずかな有効データが存在しているかであるため、少量の予約領域がVd1に割り振られ得る。
【００３３】
図6に示したように、本発明の本実施形態においては、Vd2はX個の物理ブロックを含む、ここで、各物理ブロックは(n+1)個のページを含み、Vd2はランダム書き込み要求において搬送されたデータを記憶するように構成され、第1の物理ブロックから第(X-3)の物理ブロックはVd2のデータ領域を形成し、第(X-2)の物理ブロックから第Xの物理ブロックは予約領域を形成する。
【００３４】
図7に示したように、SSDは、第1のランダム書き込み要求を受信する、ここで、第1のランダム書き込み要求において搬送された論理アドレスはLBA1'である。LBA1'は、Vd2内の第1の物理ブロックの最初のm個のページに既にマッピングされており、すなわち、LBA1'は、Vd2内の第1の物理ブロックのページ0からページm-1にマッピングされている。SSDのROW機構に基づいて、SSDは、第1のランダム書き込み要求において搬送されたデータをVd2内の第(X-2)の物理ブロックの予約領域に書き込み、LBA1'とVd2内の第(X-2)の物理ブロックの最初のm個のページとの間のマッピングを確立し、すなわち、LBA1'とVd2内の第(X-2)の物理ブロックのページ0からページm-1との間のマッピングを確立し、Vd2内の第1の物理ブロックのページ0からページm-1にあるデータをガベージデータとして識別する(そして、LBA1'とVd2内の第1の物理ブロックの最初のm個のページとの間のマッピングを消去する)。SSDは、第2のランダム書き込み要求を受信する、ここで、第2のランダム書き込み要求において搬送された論理アドレスはLBA3'である。LBA3'は、Vd2内の第2の物理ブロックの最初の(n+1-m)個のページに既にマッピングされており、すなわち、LBA3'は、Vd2内の第2の物理ブロックのページ0からページn-mにマッピングされている。SSDのROW機構に基づいて、SSDは、第2のランダム書き込み要求において搬送されたデータをVd2内の第(X-2)の物理ブロックの予約領域に書き込み、LBA3'とVd2内の第(X-2)の物理ブロックの最初の(n+1-m)個のページとの間のマッピングを確立し、すなわち、LBA3'とVd2内の第(X-2)の物理ブロックのページmからページnとの間のマッピングを確立し、Vd2内の第2の物理ブロックのページ0からページn-mにあるデータをガベージデータとして識別する(そして、LBA3'とVd2内の第2の物理ブロックの最初の(n+1-m)個のページとの間のマッピングを消去する)。
【００３５】
図8に示したように、Vd2内の予約領域が閾値未満でありガベージ領域リサイクル処理が開始されている場合には、リサイクル処理を行う必要がある物理ブロックがVd2内の第1の物理ブロックおよび第2の物理ブロックである。有効データが、第1の物理ブロックのページmからページnに記憶されており、有効データの移動を行う必要がある。本発明の本実施形態においては、第1の物理ブロックのページmからページnに記憶されている有効データをVd2内の第(X-1)の物理ブロックのページ0からページn-mに移動し、LBA4'とVd2内の第(X-1)の物理ブロックのページ0からページm-1との間のマッピングを確立する。加えて、Vd2内の第2の物理ブロックのページmからページnに記憶されている有効データをVd2内の第(X-1)の物理ブロックのページmからページnに移動し、LBA2'とVd2内の第(X-1)の物理ブロックのページmからページnとの間のマッピングを確立する。SSDは、Vd2内の第1の物理ブロックおよび第2の物理ブロックにあるデータを消去し、第1の物理ブロックおよび第2の物理ブロックは、予約領域として使用される。
【００３６】
本発明の本実施形態においては、Vd1は、シーケンシャル書き込み要求において搬送されたデータを記憶するように構成され、Vd2は、ランダム書き込み要求において搬送されたデータを記憶するように構成され、シーケンシャル書き込み要求において搬送されたデータおよびランダム書き込み要求において搬送されたデータを、書き込み要求の特徴に従って、異なるストレージエリアにそれぞれ記憶している、そのことが、ガベージ領域リサイクル処理のプロセスにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。
【００３７】
本発明の本実施形態においては、より多くの予約領域がVd2に割り振られている、すなわち、Vd2の予約領域がVd1の予約領域より大きい、そのことが、ガベージ領域リサイクル処理の回数を低減し得るし、その結果、Vd2内の物理ブロックを消去する回数を低減するとともにSSDの耐用年数を増大している。別の実施形態においては、Vd2のデータ領域に対するVd2の予約領域の比は、Vd1のデータ領域に対するVd1の予約領域の比より大きい、そのことが、本発明の本実施形態におけるガベージ領域リサイクル処理の回数を低減する効果も実現し得る。
【００３８】
本発明の本実施形態においては、SSDは、Vd1およびVd2を備える、ここで、Vd1は、シーケンシャル書き込み要求において搬送されたデータを記憶するように構成され、Vd2は、ランダム書き込み要求において搬送されたデータを記憶するように構成される。ランダム書き込み要求およびシーケンシャル書き込み要求の両方が存在するケースでは、シーケンシャル書き込み要求の性能に影響を及ぼすことなく、SSDのランダム書き込み性能を改善している。
【００３９】
必要に応じて、データを対応するストレージエリア、例えば、前述の第1または第2のストレージエリアに書き込む場合には、対応するストレージエリアの予約領域が不十分であるならば、動的な調整を行ってもよい。例えば、最大冗長クォータが使い切られていないという前提条件の下では、追加の予約領域を適用してもよく、その後、書き込み要求におけるデータが、新たに適用される予約領域に書き込まれる。
【００４０】
必要に応じて、複数の書き込み要求が同時に送信されるケースでは、SSDが受信した書き込み要求がシーケンシャル書き込み要求およびランダム書き込み要求の両方を含む場合には、書き込み性能を改善するために、シーケンシャル書き込み要求において搬送されたデータを第1のストレージエリアに優先的に書き込んでもよい。
【００４１】
本発明の実施形態は、書き込み要求の特徴を決定するステップ2の別の実施形態の解決手法、すなわち、SSDによって、書き込み要求において搬送されたLBAにおけるシーケンシャル書き込み要求カウントおよびランダム書き込み要求カウントに関する統計を収集するステップを提供している。本発明の本実施形態においては、書き込み要求において搬送されたLBAにおけるシーケンシャル書き込み要求カウントを書き込み要求のシーケンシャル書き込み要求カウントとも称し、書き込み要求において搬送されたLBAにおけるランダム書き込み要求カウントを書き込み要求のランダム書き込み要求カウントとも称する。
【００４２】
例えば、LBAmを搬送する書き込み要求がシーケンシャル書き込み要求であるとSSDが決定した場合には、LBAmのシーケンシャル書き込み要求カウントCsを1ずつ増大する、または、LBAmを搬送する書き込み要求がランダム書き込み要求であるとSSDが決定した場合には、LBAmのランダム書き込み要求カウントCrを1ずつ増大する。(LBAmの現在のシーケンシャル書き込み要求カウントCsおよびLBAmの現在のランダム書き込み要求カウントCrの合計)で割ったLBAmの現在のシーケンシャル書き込み要求カウントCsの値S(シーケンスレベル)を計算する。Sが図2に示した第1の条件(第1のシーケンスレベルの範囲)を満たす場合には、書き込み要求において搬送されたデータをVd1に書き込む、または、Sが図2に示した第2の条件(第2のシーケンスレベルの範囲)を満たす場合には、書き込み要求において搬送されたデータをVd2に書き込む。例えば、第1のシーケンスレベルの範囲は、0.8より大きくて1より大きくなく、第2のシーケンスレベルの範囲は、0.8より大きくない。Vd1に記憶されているデータに対応する書き込み要求のシーケンスレベルは、Vd2に記憶されているデータに対応する書き込み要求のシーケンスレベルより大きく、Vd1内の物理ブロックは、Vd2内の物理ブロックがガベージ領域リサイクル処理のプロセスにおいて行うものより少ない有効データの移動を生じることになり、それによって、ライトアンプリフィケーションを低減している。
【００４３】
Vd1に記憶されているデータに対応する書き込み要求のシーケンスレベルは、Vd2に記憶されているデータに対応する書き込み要求のシーケンスレベルより大きく、SSDによってVd1に割り振られている予約領域は、Vd2の予約領域より小さい、または、Vd1のデータ領域に対するVd1の予約領域の比は、Vd2のデータ領域に対するVd2の予約領域の比未満である。本実施様態においては、Vd2におけるガベージ領域リサイクル処理の回数を低減しており、それによって、Vd2内の物理ブロックを消去する回数を低減するとともにSSDの耐用年数を増大している。さらに、書き込み要求が、異なるシーケンスレベルに従って、異なるエリアにそれぞれ書き込まれる、したがって、より高いシーケンスレベルを有する書き込み要求に影響を及ぼすことなく、SSDのランダム書き込み性能を改善している。
【００４４】
必要に応じて、複数の書き込み要求が同時に送信されるケースでは、書き込み性能を改善するために、SSDが受信した書き込み要求が異なるシーケンスレベルを有している場合には、より高いシーケンスレベルを有する書き込み要求を優先的に処理してもよいし、または、SSDが受信した書き込み要求が異なるランダムネスレベルを有している場合には、より低いランダムネスレベルを有する書き込み要求を優先的に処理してもよい。
【００４５】
別の実施様態は、ランダムネスレベルRに基づいてもよい。LBAmを搬送する書き込み要求がシーケンシャル書き込み要求であるとSSDが決定した場合には、LBAmのシーケンシャル書き込み要求カウントCsを1ずつ増大する、または、LBAmを搬送する書き込み要求がランダム書き込み要求であるとSSDが決定した場合には、LBAmのランダム書き込み要求カウントCrを1ずつ増大する。(LBAmの現在のシーケンシャル書き込み要求カウントCsおよびLBAmの現在のランダム書き込み要求カウントCrの合計)で割ったLBAmの現在のランダム書き込み要求カウントCrの値R(ランダムネスレベル)を計算する。Rが図2に示した第1の条件(第1のランダムネスレベルの範囲)を満たす場合には、書き込み要求において搬送されたデータをVd1に書き込む、または、Rが図2に示した第2の条件(第2のランダムネスレベルの範囲)を満たす場合には、書き込み要求において搬送されたデータをVd2に書き込む。例えば、第1のランダムネスレベルの範囲は、0.2より大きくなく、第2のランダムネスレベルの範囲は、0.2より大きいが1より大きくない。Vd1に記憶されているデータに対応する書き込み要求のランダムネスレベルは、Vd2に記憶されているデータに対応する書き込み要求のランダムネスレベル未満であり、Vd1内の物理ブロックは、Vd2内の物理ブロックがガベージ領域リサイクル処理のプロセスにおいて行うものより少ない有効データの移動を生じることになり、それによって、ライトアンプリフィケーションを低減している。
【００４６】
Vd1に記憶されているデータに対応する書き込み要求のランダムネスレベルは、Vd2に記憶されているデータに対応する書き込み要求のランダムネスレベル未満であり、SSDによってVd1に割り振られている予約領域は、Vd2の予約領域より小さい、または、Vd1のデータ領域に対するVd1の予約領域の比は、Vd2のデータ領域に対するVd2の予約領域の比未満である。本実施様態においては、Vd2におけるガベージ領域リサイクル処理の回数を低減しており、それによって、Vd2内の物理ブロックを消去する回数を低減するとともにSSDの耐用年数を増大している。さらに、書き込み要求が、異なるランダムネスレベルに従って、異なるエリアにそれぞれ書き込まれる、したがって、より低いランダムネスレベルを有する書き込み要求に影響を及ぼすことなく、SSDのランダム書き込み性能を改善している。
【００４７】
必要に応じて、対応する数量のストレージエリアが、書き込み要求のシーケンスレベルまたはランダムネスレベルのクラス番号に従って分割されてもよく、対応する予約領域が、シーケンスレベルまたはランダムネスレベルの各クラスの値に従って、設定される。ストレージエリアの分割および対応する予約領域の設定をあらかじめ行ってもよいし、または、動的な分割および設定を使用中に行ってもよい。
【００４８】
本発明の実施形態は、書き込み要求の特徴を決定するステップ2の別の実施形態の解決手法、すなわち、書き込み要求において搬送されたデータのサイズを決定するステップと、書き込み要求において搬送されたデータのサイズに従って、ストレージエリアを決定するステップとを提供している。
【００４９】
図9に示したように、SSDは、Vd1、Vd2、…、およびVd9として参照符号が付けられている、9つのストレージエリアを備える。本発明の本実施形態においては、ある実施様態においては、各ストレージエリアは、R個の物理ブロックを含み、各物理ブロックは、(n+1)個のページを含む。別の実施様態においては、各ストレージエリアは異なる数量の物理ブロックを含んでいてもよく、本発明の本実施形態に限定されない。SSDは、書き込み要求において搬送されたデータのサイズに従って、ストレージエリアを選択する。Vd1は、(0-4KB]のデータを記憶するように構成され、Vd2は、(4KB-8KB]のデータを記憶するように構成され、Vd3は、(8KB-16KB]のデータを記憶するように構成され、Vd4は、(16KB-32KB]のデータを記憶するように構成され、Vd5は、(32KB-64KB]のデータを記憶するように構成され、Vd6は、(64KB-128KB]のデータを記憶するように構成され、Vd7は、(128KB-256KB]のデータを記憶するように構成され、Vd8は、(256KB-512KB]のデータを記憶するように構成され、Vd9は、512KBより大きいデータを記憶するように構成される。(4KB-8KB]のデータをデータ範囲のデータとも称する。データ範囲は、ストレージエリアに記憶されている書き込み要求において搬送されたデータのサイズの区間を指す。Vd1のデータ範囲は、Vd1に記憶されている書き込み要求において搬送されたデータのサイズが4KBより大きくないことを表している。書き込み要求を受信した場合には、SSDは、各ストレージエリアに記憶されているデータ範囲に従って、書き込み要求において搬送されたデータを記憶するために使用されるストレージエリアを決定する。例えば、図2に示した第2のストレージエリアは、Vd1である。Vd1のデータ範囲にあるデータは4KBより大きくない(図2に示した第2の条件)ため、複数の書き込み要求において搬送されたデータが同一の物理ブロックに記憶される。いくつかのデータが変更により無効データとして識別され、ガベージ領域リサイクル処理が物理ブロックに対して行われた場合には、物理ブロックに記憶されている別の書き込み要求において搬送されたデータが有効データとして使用され、有効データの移動を行う必要があり、それによって、ライトアンプリフィケーションが引き起こされる。例えば、Vd9は、図2に示した第1のストレージエリアである。Vd9のデータ範囲にあるデータは512KBより大きい(図2に示した第1の条件)ため、同一の書き込み要求または少量の書き込み要求において搬送されたデータが同一の物理ブロックに記憶される。したがって、SSDが物理ブロック内のデータを変更するための書き込み要求を再び受信した場合には、全物理ブロックのページに記憶されているデータがガベージデータとして識別される。ガベージ領域リサイクル処理を物理ブロックに対して行う場合には、全物理ブロック内のデータのすべてまたはほとんどがガベージデータであるため、有効データの移動が生じないか、少量の有効データの移動だけが生じるかである、つまり、ライトアンプリフィケーションが引き起こされることはないか、小さなライトアンプリフィケーションが引き起こされるかである。したがって、SSDが異なるストレージエリアに分割され、各ストレージエリアが対応するデータ範囲を記憶している、そのことが、ガベージ領域リサイクル処理のプロセスにおけ���有効データの移動を低減するとともにライトアンプリフィケーションを低減し得る。必要に応じて、書き込み要求において搬送されたデータのサイズは、対応するストレージエリアを決定する。より多くの予約領域を、大きなデータを記憶しているデータ範囲に対応するストレージエリアに割り振るより、小さなデータを記憶しているデータ範囲に対応するストレージエリアに割り振る、または、小さなデータを記憶しているデータ範囲に対応するストレージエリアのデータ領域に対する小さなデータを記憶しているデータ範囲に対応するストレージエリアの予約領域の比は、大きなデータを記憶しているデータ範囲に対応するストレージエリアのデータ領域に対する大きなデータを記憶しているデータ範囲に対応するストレージエリアの予約領域の比より大きい、そのことが、ガベージ領域リサイクル処理の回数を低減し、物理ブロックを消去する回数を低減し、SSDの耐用年数を増大し得る。
【００５０】
必要に応じて、複数の書き込み要求が同時に送信されるケースでは、異なるサイズのデータを搬送する書き込み要求を受信した場合には、SSDは、書き込み性能を改善するために、比較的大きなサイズのデータを搬送する書き込み要求を優先的に処理してもよい。
【００５１】
本発明の本実施形態においては、SSDによってVd1に割り振られている予約領域は、Vd2の予約領域より小さい、または、Vd1のデータ領域に対するVd1の予約領域の比は、Vd2のデータ領域に対するVd2の予約領域の比未満である。特定の実施形態においては、異なる予約領域クォータの重みを、Vd1およびVd2における書き込み要求の対応する特徴に従って決定してもよい。Vd1に割り振られている予約領域は、Vd2の予約領域より小さい、または、Vd1のデータ領域に対するVd1の予約領域の比は、Vd2のデータ領域に対するVd2の予約領域の比未満であり、本発明の本実施形態に限定されない。
【００５２】
本発明の本実施形態においては、書き込み要求において搬送されたデータをページに書き込んだ後に、LBAとページとの間のマッピング関係が確立されており、SSDの特定の実施形態によれば、LBAからデータが書き込まれているページがある物理ブロックへのマッピングがまず確立されてもよい。特定の実施形態については、SSDのマッピング機構を参照されたい、ただし、本発明に限定されない、そのため、その詳細を本明細書では再び説明しない。
【００５３】
本発明を瓦記録(Shingled Magnetic Recording、SMR)ディスクにさらに適用してもよい。SMRディスクの特別な構造により、データをトラックAに書き込む場合には、トラックAの後のL個のトラック上のデータは上書きされ、トラックAの前のトラック上のデータは上書きされない。したがって、M(M>=L)個のトラックがSMRディスク内のゾーン(zone)を形成するために一般的に使用され、ゾーン内の物理領域内のデータがシーケンシャルに書き込まれ、ゾーン内の有効データが書き込みの前にまず移動される。SMRディスクは、一般的に、ROW機構を使用し、物理ストレージ領域をデータゾーン(データが既に記憶されているゾーン)および予約ゾーン(空きゾーン)に分割し、論理アドレスから物理ストレージ領域へのマッピングを記録する。データを書き込む場合には、データを予約ゾーンの領域にシーケンシャルに書き込み、論理アドレスをデータが新たに書き込まれた物理アドレスにその後マッピングし、論理アドレスが以前マッピングされていた物理アドレスに記憶されているデータをガベージデータとしてマークを付ける。予約ゾーンの数量が閾値未満であった後に、ガベージ領域リサイクル処理を開始し、最も多くのガベージデータを有するゾーンを見つけ、ゾーン内の有効データを移動し、ゾーンは、データが引き続き書き込まれ得る予約ゾーンとなる。SMRディスク内のゾーンは、SSD内の物理ブロックのものと類似した特性を有する。したがって、本発明の実施形態におけるSSD内のガベージ領域リサイクル処理中に有効データの移動を低減している解決手法をSMRディスクにも適用してもよい。SMRディスクを異なるストレージエリアに分割する、ここで、各ストレージエリアは複数のゾーン(データゾーンおよび予約ゾーンを含む)を含み、異なるサイズを有する予約ゾーンが異なるストレージエリアに割り振られ、書き込み要求の特徴を決定する。例えば、書き込み要求がランダム書き込み要求であるかシーケンシャル書き込み要求であるかを決定する、または、書き込み要求のシーケンスレベルを決定する、または、書き込み要求のランダムネスレベルを決定する、または、書き込み要求において搬送されたデータのサイズを決定する。書き込み要求において搬送されたデータは、特定のストレージエリアの予約ゾーンに記憶される、その結果、ガベージ領域リサイクル処理中のSMRディスクにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。特定の実施形態については、SSDの実施形態の解決手法を参照すればよいので、その詳細を本発明の本実施形態においては本明細書では再び説明しない。予約ゾーンをSMRディスク内の異なるストレージエリアに割り振り得る方式については、予約領域をSSD内の異なるストレージエリアに割り振る上述した方式を参照されたい。
【００５４】
加えて、ガベージ領域リサイクル処理機能を有するとともにROW機構に基づいたストレージアレイにおいては、例えば、オールSSDストレージアレイおよびハードディスクドライブ(HDD)ストレージアレイにおいては、ストレージアレイコントローラは、構成単位(例えば、1MB)に従って、各ハードディスクの論理ブロックアドレスをブロックに分割する。1つのブロックをN個のディスクの各ディスクから取り出し、条件(例えば、レイド(Redundant Array of Independent Disks, RAID)のセグメント)を満たすセグメント(segment)を形成する、例えば、RAID6(3データブロック+2チェックブロックを含む)を形成する。シーケンシャル書き込み方式が、書き込み性能を改善するためにセグメントにおいて使用される。セグメント内のデータを上書きできず、書き込む前にセグメント内の有効データをまず移動する必要がある。ストレージアレイコントローラは、ストレージ領域をデータセグメント(データが既に書き込まれているセグメント)および予約セグメント(空きセグメント)に分割し、論理アドレスから物理ストレージ領域へのマッピングを記録する。データを書き込む場合には、ストレージアレイコントローラは、データを予約セグメントにシーケンシャルに書き込み、その後、論理アドレスをデータが新たに書き込まれた物理アドレスにマッピングし、論理アドレスが以前マッピングされていた物理アドレスに記憶されているデータをガベージデータとしてマークを付ける。予約セグメントの数量が閾値未満であった後に、ガベージ領域リサイクル処理を開始し、最も多くのガベージデータを有するセグメントを見つけ、セグメント内の有効データを移動し、セグメントは、データが引き続き書き込まれ得る予約セグメントとなる。
【００５５】
前述のストレージアレイにおいては、セグメントは、SSD内の物理ブロックのものと類似した特性を有する。したがって、本発明の実施形態におけるSSD内のガベージデータリサイクル処理中に有効データの移動を低減している解決手法を前述のストレージアレイにも適用してもよい。ストレージアレイを異なるストレージエリアに分割する、ここで、各ストレージエリアは、複数のセグメント(データセグメントおよび予約セグメントを含む)を含み、書き込み要求の特徴を決定する。例えば、書き込み要求がランダム書き込み要求であるかシーケンシャル書き込み要求であるかを決定する、または、書き込み要求のシーケンスレベルを決定する、または、書き込み要求のランダムネスレベルを決定する、または、書き込み要求において搬送されたデータのサイズを決定する。書き込み要求において搬送されたデータは、特定のストレージエリアの予約セグメントに記憶される、その結果、ガベージ領域リサイクル処理中のストレージアレイにおける有効データの移動を低減するとともにライトアンプリフィケーションを低減している。特定の実施形態については、SSDの実施形態の解決手法を参照すればよいので、その詳細を本発明の本実施形態においては本明細書では再び説明しない。予約セグメントをストレージアレイ内の異なるストレージエリアに割り振り得る方式については、予約領域をSSD内の異なるストレージエリアに割り振る上述した方式を参照されたい。
【００５６】
本発明の本実施形態は、フラッシュメモリメディアおよび類似した特性を有する記憶媒体を使用して形成された別の製品にさらに適用されてもよい。
【００５７】
必要に応じて、本発明の実施形態においては、一例としてSSDを使用すれば、SSDは、3つ以上のストレージエリアを備えていてもよい。さらに、SSDは、複数の方式で書き込み要求の特徴を決定してもよい。例えば、SSDは、第1のストレージエリアおよび第2のストレージエリアを備え、書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定する。書き込み要求がシーケンシャル書き込み要求である場合には、SSDは、書き込み要求において搬送されたデータを第1のストレージエリアに書き込む、または、書き込み要求がランダム書き込み要求である場合には、SSDは、書き込み要求において搬送されたデータを第2のストレージエリアに書き込む。SSDは、第3のストレージエリアおよび第4のストレージエリアをさらに備え、書き込み要求のシーケンスレベルまたはランダムネスレベルを決定し、書き込み要求のシーケンスレベルまたはランダムネスレベルに従って、書き込み要求において搬送されたデータを第3のストレージエリアまたは第4のストレージエリアに書き込む。必要に応じて、SSDは、第5のストレージエリアおよび第6のストレージエリアをさらに備え、書き込み要求において搬送されたデータのサイズを決定し、書き込み要求において搬送されたデータのサイズに従って、書き込み要求において搬送されたデータを第5のストレージエリアまたは第6のストレージエリアに書き込む。特定の実施様態の組合せは本発明に限定されない。
【００５８】
本発明の実施形態は、図10に示したように、ストレージコントローラ1001、第1のストレージエリア1002、および第2のストレージエリア1003を備える、ストレージデバイスを提供している、ここで、第1のストレージエリア1002は、データ領域および予約領域を含み、第2のストレージエリア1003は、データ領域および予約領域を含む。ストレージコントローラ1001は、図2に示した本発明の実施形態を行うように構成される。特に、ストレージコントローラ1001は、論理アドレスおよびデータを搬送する、書き込み要求を受信し、書き込み要求の特徴を決定する。書き込み要求の特徴が第1の条件を満たす場合には、ストレージコントローラ1001は、書き込み要求において搬送されたデータを第1のストレージエリア1002の予約領域の第1のストレージアドレスに書き込み、論理アドレスと第1のストレージアドレスとの間のマッピング関係を確立する、または、書き込み要求の特徴が第2の条件を満たす場合には、ストレージコントローラ1001は、書き込み要求において搬送されたデータを第2のストレージエリア1003の予約領域の第2のストレージアドレスに書き込み、論理アドレスと第2のストレージアドレスとの間のマッピング関係を確立する。必要に応じて、図10に示したストレージデバイスは、SSDであり得るし、ストレージコントローラ1001は、SSDのコントローラである。必要に応じて、図10に示したストレージデバイスは、SMRディスクでさらにあり得るし、ストレージコントローラ1001は、SMRディスクのコントローラである。必要に応じて、図10に示したストレージデバイスは、本発明の実施形態において説明したストレージアレイでさらにあり得るし、ストレージコントローラ1001は、ストレージアレイのアレイコントローラである。特定の説明については、本発明の実施形態における対応する部分の説明を参照されたい、そのため、その詳細を本明細書では再び説明しない。必要に応じて、複数の書き込み要求が同時に送信されるケースでは、ストレージデバイスは、ストレージデバイスの書き込み性能を改善するために、第1の条件を満たしている書き込み要求を優先的に処理する。必要に応じて、データを対応するストレージエリア、例えば、前述の第1または第2のストレージエリアに書き込む場合には、対応するストレージエリアの予約領域が不十分であるならば、動的な調整を行ってもよい。例えば、最大冗長クォータが使い切られていないという前提条件の下では、追加の予約領域を適用してもよく、その後、書き込み要求におけるデータが、新たに適用される予約領域に書き込まれる。
【００５９】
本発明の本実施形態におけるストレージデバイスは、さらに、フラッシュメモリメディアおよび類似した特性を有する記憶媒体を使用して形成された別の製品であってもよい。
【００６０】
本発明の実施形態は、図11に示したように、ストレージコントローラ、第1のストレージエリア1105、および第2のストレージエリア1106を備える、別のストレージデバイスを提供している、ここで、ストレージコントローラは、受信ユニット1101、決定ユニット1102、書き込みユニット1103、およびマッピングユニット1104を備える。受信ユニット1101は、論理アドレスおよびデータを搬送する、書き込み要求を受信するように構成される。決定ユニット1102は、書き込み要求の特徴を決定するように構成される。書き込みユニット1103は、書き込み要求の特徴が第1の条件を満たす場合には、書き込み要求において搬送されたデータを第1のストレージエリア1105の予約領域の第1のストレージアドレスに書き込むように構成される。マッピングユニット1104は、論理アドレスと第1のストレージアドレスとの間のマッピング関係を確立するように構成される。書き込みユニット1103は、書き込み要求の特徴が第2の条件を満たす場合には、書き込み要求において搬送されたデータを第2のストレージエリア1106の予約領域の第2のストレージアドレスに書き込むようにさらに構成される。マッピングユニット1104は、論理アドレスと第2のストレージアドレスとの間のマッピング関係を確立するようにさらに構成される。必要に応じて、図11に示したストレージデバイスにおいては、ストレージコントローラは、ガベージ領域リサイクル処理を第1のストレージエリア1105および第2のストレージエリア1106に対して独立して行ってもよい。必要に応じて、第1のストレージエリア1105の予約領域のサイズは、第2のストレージエリア1106の予約領域のサイズとは異なる。必要に応じて、第1のストレージエリア1105の予約領域は、第2のストレージエリア1106の予約領域より小さく、第1のストレージエリア1105の予約領域のサイズは、第2のストレージエリア1106の予約領域のサイズより小さい。必要に応じて、第1のストレージエリア1105のデータ領域に対する第1のストレージエリア1105の予約領域の比は、第2のストレージエリア1106のデータ領域に対する第2のストレージエリア1106の予約領域の比未満である。必要に応じて、決定ユニット1102は、書き込み要求がシーケンシャル書き込み要求であるかランダム書き込み要求であるかを決定するように特に構成され、ここで、第1の条件は、シーケンシャル書き込み要求であり、第2の条件は、ランダム書き込み要求である。必要に応じて、決定ユニット1102は、書き込み要求のシーケンスレベルを決定するように特に構成され、ここで、第1の条件は、第1のシーケンスレベルの範囲であり、第2の条件は、第2のシーケンスレベルの範囲であり、第1のシーケンスレベルの範囲の最小値は、第2のシーケンスレベルの範囲の最大値より大きい。シーケンスレベルの意味については、図2に示した実施形態における説明を参照されたい。必要に応じて、決定ユニット1102は、書き込み要求のランダムネスレベルを決定するように特に構成され、ここで、第1の条件は、第1のランダムネスレベルの範囲であり、第2の条件は、第2のランダムネスレベルの範囲であり、第1のランダムネスレベルの範囲の最大値は、第2のランダムネスレベルの範囲の最小値未満である。ランダムネスレベルの意味については、図2に示した実施形態における説明を参照されたい���必要に応じて、決定ユニット1102は、書き込み要求において搬送されたデータのサイズを決定するように特に構成され、ここで、第1の条件は、第1のストレージエリア1105に記憶されている第1のデータ範囲であり、第2の条件は、第2のストレージエリア1106に記憶されている第2のデータ範囲であり、第1のデータ範囲の最小値は、第2のデータ範囲の最大値より大きい。データ範囲の意味については、図2に示した実施形態における説明を参照されたい。必要に応じて、複数の書き込み要求が同時に送信されるケースでは、ストレージデバイスは、ストレージデバイスの書き込み性能を改善するために、第1の条件を満たしている書き込み要求を優先的に処理する。必要に応じて、データを対応するストレージエリア、例えば、前述の第1または第2のストレージエリアに書き込む場合には、対応するストレージエリアの予約領域が不十分であるならば、動的な調整を行ってもよい。例えば、最大冗長クォータが使い切られていないという前提条件の下では、追加の予約領域を適用してもよく、その後、書き込み要求におけるデータが、新たに適用される予約領域に書き込まれる。
【００６１】
図11に示したストレージデバイスは、SSD、SMRディスク、または本発明の実施形態におけるストレージアレイであり得る。図11に示したストレージデバイスは、さらに、フラッシュメモリメディアおよび類似した特性を有する記憶媒体を使用して形成された別の製品であってもよい。特定の説明については、本発明の実施形態における対応する部分の説明を参照されたい、そのため、その詳細を本明細書では再び説明しない。
【００６２】
図11に示したストレージデバイスによれば、ある実施様態においては、前述のユニットは、ストレージデバイスにインストールされており、前述のユニットは、ストレージデバイスのストレージコントローラのメモリにロードされ得るし、ストレージコントローラのCPUは、メモリ内の命令を実行して、本発明の対応する実施形態における機能を実施する。別の実施形態においては、ストレージデバイスに含まれるユニットは、ハードウェアによって実施されてもよいし、または、ソフトウェアおよびハードウェアの組合せによって実施されてもよい。前述のユニットを構造的ユニットとも称してもよい。
【００６３】
本発明の実施形態は、不揮発性コンピュータ可読記憶媒体およびコンピュータプログラム製品をさらに提供している。不揮発性コンピュータ可読記憶媒体およびコンピュータプログラム製品に含まれるコンピュータ命令が、図10または図11に示したストレージデバイスのストレージコントローラのメモリにロードされると、CPUは、メモリにロードされたコンピュータ命令を実行して、本発明の実施形態における対応する機能を実施する。
【００６４】
前述の実施形態によれば、本発明の実施形態は、ストレージデバイスによってストレージエリアを分割するための方法を提供している。ストレージデバイスは、ストレージ領域を第1のストレージエリアおよび第2のストレージエリアに分割する、ここで、第1のストレージエリアは、データ領域および予約領域を含み、第2のストレージエリアは、データ領域および予約領域を含む、ここで、第1のストレージエリアの予約領域は、第1の書き込み要求において搬送されたデータを記憶するように構成され、第2のストレージエリアの予約領域は、第2の書き込み要求において搬送されたデータを記憶するように構成され、第1の書き込み要求の特徴は、第1の条件を満たし、第2の書き込み要求の特徴は、第2の条件を満たす。特に、第1の条件、第2の条件、第1の書き込み要求の特徴、および第2の書き込み要求の特徴については、図2に示した実施形態における説明を参照されたい、そのためその詳細を本明細書では再び説明しない。第1のストレージエリアの予約領域と第2のストレージエリアの予約領域との間の関係についても、図2に示した実施形態における説明を参照されたい。本発明の実施形態におけるストレージデバイスの構造については、図10を参照すればよいので、その詳細を本明細書では再び説明しない。必要に応じて、対応する数量のストレージエリアが、書き込み要求のシーケンスレベルまたはランダムネスレベルのクラス番号に従って分割されてもよく、対応する予約領域が、シーケンスレベルまたはランダムネスレベルの各クラスの値に従って、設定される。ストレージエリアの分割および対応する予約領域の設定をあらかじめ行ってもよいし、または、動的な分割および設定を使用中に行ってもよい。
【００６５】
本発明において提供したいくつかの実施形態においては、開示した装置および方法を他の方式で実施してもよいことを理解されたい。例えば、説明した装置の実施形態におけるユニット分割は論理的な機能分割にすぎず、実際の実装においては他の分割であってもよい。例えば、複数のユニットまたはコンポーネントを組み合わせても別のシステムに統合してもよいし、またはいくつかの特徴を無視しても行わなくてもよい。加えて、図示または記載した相互接続または直接接続または通信接続は、いくつかのインターフェースによって実施されてもよい。装置間またはユニット間の間接接続または通信接続は、電子的に、機械的に、または他の形式で実施されてもよい。
【００６６】
別個の部分として説明したユニットは、物理的に別個のものであってもなくてもよいし、ユニットとして表示した部分は、物理ユニットであってもなくてもよいし、一ヶ所に配置されていてもよいし、または複数のネットワークユニットに分散されていてもよい。実施形態の解決手法の目的を達成するために、一部またはすべてのユニットを実際の必要性に応じて選択してもよい。
【００６７】
加えて、本発明の実施形態における機能ユニットを1つの処理ユニットに統合してもよいし、または、ユニットの各々が物理的に単独で存在してもよいし、または、2つ以上のユニットは1つのユニットに統合される。
【符号の説明】
【００６８】
101  ストレージコントローラ
102  メディア
1001  ストレージコントローラ
1002  第1のストレージエリア
1003  第2のストレージエリア
1011  CPU
1012  メモリ
1101  受信ユニット
1102  決定ユニット
1103  書き込みユニット
1104  マッピングユニット
1105  第1のストレージエリア
1106  第2のストレージエリア
【図１】
0006311195.tif 000002
【図２】
0006311195.tif 000003
【図３】
0006311195.tif 000004
【図４】
0006311195.tif 000005
【図５】
0006311195.tif 000006
【図６】
0006311195.tif 000007
【図７】
0006311195.tif 000008
【図８】
0006311195.tif 000009
【図９】
0006311195.tif 000010
【図１０】
0006311195.tif 000011
【図１１】
0006311195.tif 000012