(57)【特許請求の範囲】
【請求項１】
記憶システムに適用されるデータ処理方法であり、前記記憶システムは、ホスト及びフラッシュデバイスを含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従って前記フラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、前記ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、前記オーバープロビジョニング比は、前記ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、前記オーバープロビジョニング空間容量は、物理記憶空間容量と前記ユーザ記憶空間容量との間の差であり、前記方法は、前記フラッシュデバイスにより実行される、データ処理方法であって、
前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するステップと、
前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズ、及び各オーバープロビジョニングレベルに対応している前記ユーザ記憶空間容量の前記区間に従って、目標オーバープロビジョニングレベルを決定するステップと、
前記目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するステップと、
前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整するステップと
を含む方法。
【請求項２】
前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するステップは、
前記ホストにより送信された書き込み命令を受信し、前記書き込み命令に従って、追加対象のデータを決定するステップと、
前記追加対象のデータを前記フラッシュデバイスに追加し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記追加対象のデータが前記フラッシュデバイスに追加された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するステップは、
前記ホストにより送信された削除命令を受信し、前記削除命令に従って、削除対象のデータを決定するステップと、
前記削除対象のデータを前記フラッシュデバイスから削除し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記削除対象のデータが削除された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するステップと
を含む、請求項１に記載の方法。
【請求項４】
前記追加対象のデータを前記フラッシュデバイスに追加する前に、
前記追加対象のデータを圧縮するステップであり、前記追加対象のデータは、圧縮データであるステップを更に含む、請求項２に記載の方法。
【請求項５】
前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整する前記ステップの後に、
前記目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してガベージコレクション処理を実行するステップを更に含む、請求項１乃至４のうちいずれか１項に記載の方法。
【請求項６】
前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整する前記ステップの後に、
前記目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してウェアレベリング処理を実行するステップを更に含む、請求項１乃至４のうちいずれか１項に記載の方法。
【請求項７】
記憶システム内のフラッシュデバイスに適用されるデータ処理装置であり、前記記憶システムは、ホストを更に含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従って前記フラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、前記ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、前記オーバープロビジョニング比は、前記ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、前記オーバープロビジョニング空間容量は、物理記憶空間容量と前記ユーザ記憶空間容量との間の差である、データ処理装置であって、
前記ホストにより送信された操作命令を受信し、前記操作命令に従って、前記フラッシュデバイスに記憶されたデータに対して操作を実行し、前記操作後に取得され且つユーザにより前記フラッシュデバイスに保存されたデータのサイズを決定するように構成された受信ユニットと、
前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズ、及び各オーバープロビジョニングレベルに対応している前記ユーザ記憶空間容量の前記区間に従って、目標オーバープロビジョニングレベルを決定するように構成された決定ユニットであり、
前記決定ユニットは、前記目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するように更に構成される、決定ユニットと、
前記目標調整パラメータに従って、前記フラッシュデバイスの前記オーバープロビジョニング空間容量を調整するように構成された調整ユニットと
を含む装置。
【請求項８】
前記受信ユニットは、前記ホストにより送信された書き込み命令を受信し、前記書き込み命令に従って、追加対象のデータを決定し、前記追加対象のデータを前記フラッシュデバイスに追加し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記追加対象のデータが前記フラッシュデバイスに追加された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するように構成される、請求項７に記載の装置。
【請求項９】
前記受信ユニットは、前記ホストにより送信された削除命令を受信し、前記削除命令に従って、削除対象のデータを決定し、前記削除対象のデータを前記フラッシュデバイスから削除し、前記操作後に取得され且つ前記ユーザにより前記フラッシュデバイスに保存された前記データの前記サイズとして、前記削除対象のデータが削除された後に取得され且つ前記ユーザにより保存されたデータのサイズを決定するように構成される、請求項７に記載の装置。
【請求項１０】
前記受信ユニットは、前記追加対象のデータを圧縮するように更に構成され、前記追加対象のデータは、圧縮データである、請求項８に記載の装置。
【請求項１１】
前記目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してガベージコレクション処理を実行するように構成された処理ユニットを更に含む、請求項７乃至１０のうちいずれか１項に記載の装置。
【請求項１２】
前記目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、前記フラッシュデバイスに記憶された前記データに対してウェアレベリング処理を実行するように構成された処理ユニットを更に含む、請求項７乃至１０のうちいずれか１項に記載の装置。
【請求項１３】
請求項７乃至１２のうちいずれか１項に記載のデータ処理装置を含むフラッシュデバイス。
【請求項１４】
請求項１乃至６のうちいずれか１項に記載の方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュデバイス技術の分野に関し、具体的には、データ処理方法及び装置、並びにフラッシュデバイスに関する。
【背景技術】
【０００２】
略してSSDと呼ばれるソリッドステートディスク（Solid  State  Driveとも呼ばれる）は、ソリッドステート電子記憶チップアレイでできたハードディスクである。SSDは、軍事、車両、産業用制御、ビデオ監視、ネットワーク監視、ネットワーク端末、電力、医療、航空、及びナビゲーションデバイスのような分野に広く適用されている。市場では、一般的なSSD容量は、通常では、60/64GB、120/128GB、240/256GB、480/512GB及び960/1024GBを含み、スラッシュの左側の値は、ユーザ利用可能空間容量を表し、スラッシュの右側の値は、SSDの物理空間容量を表し、２つの値の間の差は、オーバープロビジョニング（Over  Provisioning,  OP）空間である。通常では、ユーザは、この空間の部分において操作を実行することはできず、通常では、この空間の部分の容量は、プライマリコントローラにより決定される。一般的には、OPは、ウェアレベリング、ガベージコレクション、不良ブロックマッピング等を含む最適化操作を実行するために使用される。オーバープロビジョニング比は、ユーザ利用可能空間容量に対するオーバープロビジョニング空間容量の比であり、業界における典型的なオーバープロビジョニング比は7%及び28%である。1024GBの物理空間容量が例として使用される。ユーザ利用可能空間容量が960GBであるときに、対応するオーバープロビジョニング比は7%、すなわち、(1024-960)/960である。ユーザ利用可能空間容量が800GBであるときに、対応するオーバープロビジョニング比は28%、すなわち、(1024-800)/800である。より大きいオーバープロビジョニング比は、より良いランダム書き込み性能、より小さい性能変動、及びより長い耐用寿命を示すが、より高いコストを示す。
【０００３】
SSD内のフラッシュメモリは、再書き込みされる前に消去される必要があり、ブロック単位で消去されている間にページ単位で書き込み及び読み取りされる。したがって、実際に書き込まれるデータの量は、ホストを使用することにより書き込まれるデータの量よりかなり大きい。ライトアンプリフィケーション（Write  Amplification,  WA）は、ホストを使用することにより書き込まれたデータのサイズに対する実際に書き込まれたデータの量の比である。より大きいWAは、より小さいオーバープロビジョニング比、より短い耐用寿命、及びより悪いランダム書き込み性能を示す。
【０００４】
現在、SSDベンダは、特定の容量のSSDのために複数のオーバープロビジョニング比を提供しており、ユーザは、ユーザ要件に従って固定のオーバープロビジョニング比を選択する。いったんオーバープロビジョニング比が固定されると、SSDのパラメータは固定され、SSDの性能及び耐用寿命もまた固定される。このように、SSDは、固定のオーバープロビジョニング比でのみ実行できる。したがって、SSDの性能及び耐用寿命を更に最適化することは困難である。
【発明の概要】
【０００５】
本発明の実施例は、オーバープロビジョニング比を動的に調整し、フラッシュデバイスの信頼性及び性能安定性を改善し、フラッシュデバイスの耐用寿命を延長させるためのデータ処理方法及び装置、並びにフラッシュデバイスを提供する。
【０００６】
本発明の実施例の第１の態様は、データ処理方法を提供し、方法は、記憶システムに適用され、記憶システムは、ホスト及びフラッシュデバイスを含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってフラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差であり、方法は、フラッシュデバイスにより実行され、
ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するステップと、
操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定するステップと、
目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するステップと、
目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するステップと
を含む。
【０００７】
本発明の実施例の第１の態様の第１の可能な実現では、ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するステップは、
ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定するステップと、
追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定するステップと
を含む。
【０００８】
本発明の実施例の第１の態様の第２の可能な実現では、ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するステップは、
ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定するステップと、
削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定するステップと
を含む。
【０００９】
本発明の実施例の第１の態様の第１の可能な実現を参照して、本発明の実施例の第１の態様の第３の可能な実現では、追加対象のデータをフラッシュデバイスに追加する前に、方法は、
追加対象のデータを圧縮するステップであり、追加対象のデータは、圧縮データであるステップを更に含む。
【００１０】
本発明の実施例の第１の態様の第１〜第３の可能な実現のうちいずれか１つを参照して、第１の態様の第４の可能な実現では、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するステップの後に、方法は、
目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行するステップを更に含む。
【００１１】
本発明の実施例の第１の態様の第１〜第３の可能な実現のうちいずれか１つを参照して、第１の態様の第５の可能な実現では、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するステップの後に、方法は、
目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行するステップを更に含む。
【００１２】
本発明の実施例の第２の態様は、データ処理装置を提供し、データ処理装置は、記憶システム内のフラッシュデバイスに適用され、記憶システムは、ホストを更に含み、複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってフラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差であり、データ処理装置は、
ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するように構成された受信ユニットと、
操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定するように構成された決定ユニットであり、
決定ユニットは、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するように更に構成される、決定ユニットと、
目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するように構成された調整ユニットと
を含む。
【００１３】
本発明の実施例の第２の態様の第１の可能な実現では、受信ユニットは、ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定し、追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
【００１４】
本発明の実施例の第２の態様の第２の可能な実現では、受信ユニットは、ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定し、削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
【００１５】
本発明の実施例の第２の態様の第１の可能な実現を参照して、本発明の実施例の第３の可能な実現では、受信ユニットは、追加対象のデータを圧縮するように更に構成され、追加対象のデータは、圧縮データである。
【００１６】
本発明の実施例の第２の態様の第１〜第３の可能な実現のうちいずれか１つを参照して、本発明の実施例の第４の可能な実現では、装置は、
目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行するように構成された処理ユニットを更に含む。
【００１７】
本発明の実施例の第２の態様の第１〜第３の可能な実現のうちいずれか１つを参照して、本発明の実施例の第５の可能な実現では、処理ユニットは、目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行するように更に構成される。
【００１８】
本発明の実施例の第３の態様は、本発明の実施例の第２の態様において提供されるデータ処理装置を含むフラッシュデバイスを提供する。
【００１９】
本発明の実施例では、ホストにより送信された操作命令が受信され、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作が実行され、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズが決定され、次に、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルが決定され、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータが決定され、最後に、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量が調整される。したがって、フラッシュデバイスのオーバープロビジョニング比は、記憶されたデータの量に従って動的に調整され、さらに、フラッシュデバイスの信頼性及び性能安定性が改善され、フラッシュデバイスの耐用寿命が延長する。
【図面の簡単な説明】
【００２０】
本発明の実施例又は従来技術における技術的解決策をより明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みなしに依然としてこれらの添付図面から他の図面を導き得る。
【図１】従来技術における記憶システムのネットワークアーキテクチャの概略図である。
【図２】本発明の実施例によるオーバープロビジョニングレベル構成の概略図である。
【図３】本発明の実施例によるフラッシュデバイスの概略構成図である。
【図４】本発明の実施例によるデータ処理方法の概略フローチャートである。
【図５】本発明の実施例による他のデータ処理方法の概略フローチャートである。
【図６】本発明の実施例によるデータ処理装置の概略構成図である。
【発明を実施するための形態】
【００２１】
以下に、本発明の実施例における添付図面を参照して本発明の実施例における技術的解決策を明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の全てではなく、単なる一部である。創造的取り組みなしに本発明の実施例に基づいて当業者により得られる全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００２２】
本発明の実施例において開示されるデータ処理方法及び装置、並びにフラッシュデバイスのより良い理解のため、以下に、まず、従来技術における記憶システムのネットワークアーキテクチャを説明する。図１を参照すると、図１は、従来技術における記憶システムのネットワークアーキテクチャの概略図である。図１に示す記憶システムは、ホスト及びフラッシュデバイスを含む。従来技術における記憶システムは、複数のホスト及び複数のフラッシュデバイスを含み、記憶システム内の１つのホスト及び１つのフラッシュデバイスが本発明の実施例において記載される点に留意すべきである。ホストは、デスクトップコンピュータ、ノートブックコンピュータ又はサーバのようなデバイスを含んでもよいが、これらに限定されず、ホストは、一連の命令を送信することによりフラッシュデバイスを制御する。フラッシュデバイスは、ホストにより送信された命令に従って、読み取り、書き込み又は削除のような対応する操作を実行する。フラッシュデバイスの物理記憶空間は、オーバープロビジョニング空間及びユーザ記憶空間を含み、物理記憶空間は、フラッシュデバイスの合計空間であり、ユーザ記憶空間は、ホストを使用することによりユーザにより入力されたデータを記憶するために使用される。本発明の実施例において提供されるデータ処理方法及び装置、並びにフラッシュデバイスは、図１に示す記憶システムに適用されてもよく、具体的には、フラッシュデバイスのオーバープロビジョニング空間を調整するシナリオに適用されてもよい。本発明の実施例におけるデータ処理装置は、フラッシュデバイス内に位置する。
【００２３】
本発明の実施例におけるフラッシュデバイスは、NANDフラッシュ（NAND  Flash）を有する記憶デバイス、例えば、ソリッドステートドライブ（Solid  State  Disk,  SSD）、取り外し可能ハードディスク、フロッピーディスク、USBフラッシュドライブ又はSDカードを含んでもよいが、これらに限定されない。フラッシュメモリ内のソリッドステートドライブが本発明の実施例において主に記載され、他のフラッシュデバイスもまた本発明の実施例において使用されてもよい点に留意すべきである。
【００２４】
ソリッドステートドライブSSDは、プライマリコントローラ及びNAND  Flashを主に含む。NAND  Flashは、不揮発性ランダムアクセス記憶媒体であり、NAND  Flashが電源オフされた後にデータを失わないことを特徴とする。NAND  Flashは、ダイナミックランダムアクセスメモリDRAM及びスタティックランダムアクセスメモリSRAMのような従来の揮発性ランダムアクセス記憶媒体及び従来の揮発性フラッシュデバイスとは異なり、したがって、外部フラッシュデバイスとして使用されてもよい。NAND  Flashは、２つの種類、すなわち、シングルレベルセル（Single  Level  Cell,  SLC）及びマルチレベルセル（Multi-Level  Cell,  MLC）に分類され、２つの間の主な違いは、これらが異なる構成を有することである。現在、市場にあるほとんどのNAND  Flashは、MLCチップを使用する。
【００２５】
NAND  Flashコンポーネントは、一般的に、内部レジスタ及び記憶マトリクスを含む。記憶マトリクスはいくつかのブロックを含み、各ブロックはいくつかのページを含み、各ページはいくつかのバイトを含む。NAND  Flashに対して実行される主な操作は、読み取り、書き込み及び消去である。フラッシュデバイスは不揮発性半導体であるため、NAND  Flashは、ページ単位で読み取り及び書き込みされ、ブロック単位で消去される。ページは、書き込まれる前に消去される必要がある。NAND  Flashを使用する順序は、通常では、消去→プログラム→複数回の読み取り→消去…である。
【００２６】
オーバープロビジョニング（Over  Provisioning,  OP）空間は、ユーザが操作を実行できず且つサイズがSSDの物理空間容量からユーザ利用可能空間容量を減算したものである空間である。OPエリアは、通常では最適化操作、例えば、ウェアレベリング、ガベージコレクション及び不良ブロックマッピングのために使用される。
【００２７】
ウェアレベリング（Wear  leveling,  WL）は、全てのブロックが書き込まれる回数量が等しくなることを確保するために使用される機構である。ユーザ論理アドレス空間内のデータは、異なる速度で更新される。いくつかのエリア内のデータは頻繁に更新されるが、いくつかのエリア内のデータは頻繁に更新されない。明らかに、頻繁に更新されるデータにより占有されるフラッシュブロックは早く摩耗し、一方で、頻繁に更新されないデータにより占有されるフラッシュブロックは、あまり摩耗しない。この問題は、ウェアレベリング機構を使用することにより、うまく解決でき、これにより、全てのフラッシュブロックがプログラムされる回数量ができるだけ同じに保持される。
【００２８】
ガベージコレクション（Garbage  Collection,  GC）は、フラッシュブロックの有効ページ上のデータを空白ブロックにコピーし、次に全体のブロックを消去することを意味する。GCは、SSDにとって極めて重要な操作であり、GC効率は、性能に決定的な影響を有する。フラッシュブロックの有効ページの量は、GC効率に決定的な影響を有し、すなわち、より少ない量の有効ページは、コピーされる必要があるより少ない量のページを示し、より少ない時間がコストになることを示し、これにより、ガベージコレクション効率を改善する。
【００２９】
ライトアンプリフィケーション（Write  amplification,  WA）は、ホストを使用することにより書き込まれたデータのサイズに対するNAND  Flashに実際に書き込まれたデータのサイズの比である。NAND  Flashは、書き込まれる前に消去される必要があるため、これらの操作の実行中に、ユーザデータは１回より多く移動又は上書きされる。これらの繰り返し操作は、書き込まれるデータの量を増加させてSSDの耐用寿命を短縮するだけでなく、NAND  Flashの帯域幅も消費し、SSDのランダム書き込み性能に間接的に影響を与える。例えば、4KBのデータが書き込まれる必要があるときに、ブロックがクリーンな空間を有さないが消去できる無効なデータを有する最悪の場合、プライマリコントローラは、全てのデータをキャッシュに読み取り、ブロックを消去し、全体ブロックのデータがキャッシュ内で更新され、新たなデータが書き戻される。この操作から生じるライトアンプリフィケーションは以下の通りである。4KBのデータを実際に書き込むことは、全体ブロック（合計で1024KB）での書き込み操作を引き起こし、すなわち、書き込まれるデータの量は256倍だけ増幅される。同時に、4KBのデータを書き込む簡単な１ステップの操作が４ステップの操作、すなわち、フラッシュメモリから読み取る（1024KB）→キャッシュ内で更新する（4KB）→フラッシュメモリを消去する（1024KB）→フラッシュメモリに書き込む（1024KB）になる。したがって、遅延がかなり増加し、書き込み速度が減少する。したがって、ライトアンプリフィケーションは、SSDのランダム書き込み性能及び耐用寿命に影響を与える主要因である。
【００３０】
複数のオーバープロビジョニングレベルは、複数の異なるオーバープロビジョニング比に従って、本発明の実施例においてフラッシュデバイスの物理記憶空間について構成される。詳細には、図２に示すオーバープロビジョニングレベル構成の概略図を参照する。図２の値は単なる例であり、具体的な値はフラッシュメモリの製造者により設定されてもよく、ここでは限定されない点に留意すべきである。物理記憶空間容量が1024Gであるフラッシュデバイスが図２の例として使用される。オーバープロビジョニング比が7%である場合、ユーザ記憶空間容量は960Gであり、1024Gと960Gとの間の差64Gはフラッシュデバイスのオーバープロビジョニング空間容量である。本発明の実施例では、６個のオーバープロビジョニングレベル、すなわち、Level0、Level1、Level2、Level3、Level4及びLevel5が、複数の異なるオーバープロビジョニング比に従って、フラッシュデバイスの物理記憶空間1024Gについて構成され、ユーザ記憶空間容量の対応する区間は、それぞれ(800G,960G]、(720G,800G]、(660G,720G]、(520G,660G]、(400G,520G]及び[0G,400G]である。本発明の実施例では、対応する調整パラメータが、各ユーザ記憶空間容量について更に構成される。調整パラメータは、オーバープロビジョニング空間調整パラメータ、ガベージコレクションGC調整パラメータ、ウェアレベリングWL調整パラメータ、ライトアンプリフィケーションWA調整パラメータ、並びにホット及びコールドデータ交換頻度のようなパラメータを含む。各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しているため、各オーバープロビジョニングレベルと調整パラメータとの間の対応関係が導出できる。従来技術では、フラッシュデバイスを製造するときに、通常では、フラッシュデバイスの製造者が、顧客の要件に従って顧客のために固定のオーバープロビジョニング比を提供する。いったんオーバープロビジョニング比が固定されると、フラッシュデバイスの性能、パラメータ、耐用寿命等を更に最適化することは困難である。
【００３１】
図１に示すネットワークアーキテクチャに基づいて、図３を参照すると、図３は、本発明の実施例によるフラッシュデバイスの概略構成図である。図３に示すように、フラッシュデバイスは、CPUのような少なくとも１つのプロセッサ1001と、通信インタフェース1003と、メモリ1004と、少なくとも１つの通信バス1002とを含む。任意選択で、プロセッサ1001は、フラッシュデバイスのプライマリコントローラである。通信インタフェース1003は、フラッシュデバイスと同じ記憶システム内にあるホストにより送信された操作命令を受信するように構成される。通信バス1002は、これらの要素の間の接続及び通信を実現するように構成される。メモリ1004は、データを記憶するように構成されたNAND  Flashメモリでもよい。複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってメモリ1005の物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差である。
【００３２】
以下では、本発明の実施例によるデータ処理方法について図３〜図５を参照して詳細に説明する。
【００３３】
図４を参照すると、図４は、本発明の実施例によるデータ処理方法の概略フローチャートである。図３に記載のフラッシュデバイスを参照すると、メモリ1004は、プログラムコードのグループを記憶し、プロセッサ1001は、データ処理方法を実行するために、メモリ1004に記憶されたプログラムコードを呼び出す。方法は以下のステップS101〜ステップS104を含んでもよい。
【００３４】
S101.ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定する。
【００３５】
任意選択で、プロセッサ1001は、ホストにより送信され且つ通信インタフェース1003により受信された操作命令に従って、メモリ1004に記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズを決定する。通信インタフェース1003が操作命令を受信したときに、プロセッサ1001は、まず、操作命令が実行されているか否かを決定する。決定の結果がいいえである場合、すなわち、プロセッサ1001が操作命令を実行していない場合、メモリ1004に記憶されたデータに対して操作が実行される。プロセッサ1001が操作を実行する前に、メモリ1004は、データの一部を記憶してもよく、データのこの部分は、フラッシュデバイス内のデータの初期サイズとして使用される。データの初期サイズは、操作が実行された後に変化してもよい。したがって、フラッシュデバイスは、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズを決定する必要があり、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズに従って、フラッシュデバイスのオーバープロビジョニングレベルが調整される必要があるか否かを決定する。プロセッサ1001が操作命令を実行している場合、プロセッサ1001が、操作命令に従って、メモリ1004に記憶されたデータに対して操作を実行していることが理解され得る。この場合、フラッシュデバイスに対して処理は実行されない。
【００３６】
操作命令は、書き込み命令又は削除命令を含む。具体的には、操作命令が書き込み命令であるとき、プロセッサ1001は、まず、書き込み命令が実行されているか否かを決定し、そうでない場合、追加対象のデータを決定し、追加対象のデータをフラッシュデバイスに追加し、元の基準のデータの初期サイズを増加させ、したがって、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズとして、データの初期サイズと追加対象のデータの量との和を決定する。操作命令が削除命令であるとき、プロセッサ1001は、まず、削除命令が実行されているか否かを決定し、そうでない場合、削除対象のデータを決定し、削除対象のデータをメモリ1004から削除し、元の基準のデータの初期サイズを減少させ、したがって、操作後に取得され且つユーザによりメモリ1005に保存されたデータのサイズとして、データの初期サイズと削除対象のデータの量との間の差を決定する。
【００３７】
S102.操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定する。
【００３８】
任意選択で、複数のオーバープロビジョニングレベルが異なるオーバープロビジョニング比に従ってフラッシュデバイスについて構成され、各オーバープロビジョニングレベルがユーザ記憶空間容量の区間に対応しているため、プロセッサ1001は、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定する。操作後に取得され且つユーザによりメモリ1005に保存されたデータのサイズが500Gである場合、図２から、この場合には、ユーザ記憶空間容量の対応する区間が(400G,520G]であり、対応するオーバープロビジョニングレベルがLevel4であり、Level4が目標オーバープロビジョニングレベルとして決定されることが習得され得る。フラッシュデバイスが使用又はフォーマットされていない場合、目標オーバープロビジョニングレベルは、初期設定でLevel5に設定される。
【００３９】
S103.目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定する。
【００４０】
任意選択で、複数のオーバープロビジョニングレベルが異なるオーバープロビジョニング比に従ってフラッシュデバイスについて構成され、各オーバープロビジョニングレベルがユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間が異なる調整パラメータに対応しているため、各オーバープロビジョニングレベルと調整パラメータとの間の対応関係が導出でき、すなわち、フラッシュデバイスは、オーバープロビジョニングレベルについて異なる調整パラメータを構成する。プロセッサ1001は、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定する。目標調整パラメータは、操作命令が受信される前に使用される調整パラメータと同じでもよく、或いは異なってもよく、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズに従って決定される。操作後に取得され且つユーザによりメモリ1005に保存されたデータのサイズと、データの初期サイズとがユーザ記憶空間容量の同じ区間に属する場合、目標調整パラメータは、データの初期サイズに対応する調整パラメータと同じである。そうでない場合、目標調整パラメータは、データの初期サイズに対応する調整パラメータとは異なる。ユーザによりメモリ1005に保存されたデータのサイズが変化する毎に、プロセッサ1001は、新たな目標オーバープロビジョニングレベル及び新たな目標調整パラメータを決定する必要がある。従来技術では、固定のオーバープロビジョニング比及び固定のオーバープロビジョニング空間容量が存在するため、ユーザによりメモリ1004に保存されたデータのサイズの変化に拘わらず、プロセッサ1001は、固定の調整パラメータに従って、ユーザにより保存されたデータを調整する。このように、フラッシュデバイスの信頼性及び性能安定性が或る程度影響を受ける。
【００４１】
S104.目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整する。
【００４２】
任意選択で、プロセッサ1001は、目標調整パラメータに従って、メモリ1004のオーバープロビジョニング空間容量を調整する。従来技術では、各フラッシュデバイスのオーバープロビジョニング空間容量は納品時に決定されており、これにより、フラッシュデバイスの処理性能は、或る程度制限される。本発明のこの実施例におけるメモリ1004のオーバープロビジョニング空間は固定されておらず、ユーザによりメモリ1004に保存されたデータのサイズと共に変化し、メモリ1004のオーバープロビジョニング空間容量は、調整パラメータに従って、対応して調整され、これにより、フラッシュデバイスが最適動作状態になる。例えば、目標調整パラメータは、Level4に対応する調整パラメータであり、この場合に対応するオーバープロビジョニング空間は、目標調整パラメータに従って1024G-520G=504Gに調整される。従来技術において固定のオーバープロビジョニング比が7%であるフラッシュデバイスの対応するオーバープロビジョニング空間64Gと比較して、オーバープロビジョニング空間が増加し、これは、WAを低減するのに役立つ。したがって、従来技術におけるものと比較して、本発明のこの実施例におけるフラッシュデバイスは、より高い信頼性及びより高い性能安定性を有する。
【００４３】
目標調整パラメータは、目標ガベージコレクション調整パラメータ及び目標ウェアレベリング調整パラメータを含む。メモリ1004のオーバープロビジョニング空間容量を調整した後に、プロセッサ1001は、目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行し、目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング調整処理を実行する。
【００４４】
従来技術におけるオーバープロビジョニング空間は固定されており且つユーザにとってアクセス可能ではないが、本発明のこの実施例におけるオーバープロビジョニング空間は動的に変化し得る点に留意すべきである。特定のオーバープロビジョニングレベルは、固定のオーバープロビジョニング空間に対応しているが、オーバープロビジョニングレベルが他のレベルに変化したときに、オーバープロビジョニング空間は変化する。
【００４５】
本発明のこの実施例では、ホストにより送信された操作命令が受信され、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作が実行され、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズが決定され、次に、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルが決定され、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータが決定され、最後に、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量が調整される。したがって、フラッシュデバイスのオーバープロビジョニング比は、記憶されたデータの量に従って動的に調整され、さらに、フラッシュデバイスの信頼性及び性能安定性が改善され、フラッシュデバイスの耐用寿命が延長する。
【００４６】
図５を参照すると、図５は、本発明の実施例による他のデータ処理方法の概略フローチャートである。図３に記載のフラッシュデバイスを参照すると、メモリ1004は、プログラムコードのグループを記憶し、プロセッサ1001は、データ処理方法を実行するために、メモリ1005に記憶されたプログラムコードを呼び出す。方法は以下のステップS201〜ステップS210を含んでもよい。
【００４７】
S201.ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定する。
【００４８】
任意選択で、通信インタフェース1003は、ホストにより送信された書き込み命令を受信し、通信バス1002を使用することにより、書き込み命令をプロセッサ1001に送信する。プロセッサ1001は、書き込み命令に従って、追加対象のデータを決定する。書き込み命令を受信したときに、プロセッサ1001は、書き込み命令が実行されているか否かを決定する。ホスト及びフラッシュデバイスは記憶システム内にあり、ホストは、フラッシュデバイスの動作を制御し、デスクトップコンピュータ、ノートブックコンピュータ又はサーバのようなデバイスを含んでもよいが、これらに限定されない。プロセッサ1001により受信された書き込み命令は実行されている可能性があるため、プロセッサ1001は、書き込み命令が実行されているか否かを決定する必要がある。書き込み命令が実行されていない場合、プロセッサ1001が、書き込み命令に従って、データをメモリ1004に追加していないことが理解され得る。書き込み命令が実行されている場合、プロセッサ1001が、書き込み命令に従って、データをメモリ1004に追加していることが理解され得る。書き込み命令が再び受信された場合、メモリ1004に記憶されたデータのサイズは変化しない。この場合、フラッシュデバイスに対して処理は実行されない。追加対象のデータを決定することは、追加対象のデータの内容及び量を決定することを含む。
【００４９】
S202.追加対象のデータを圧縮する。
【００５０】
任意選択で、プロセッサ1001は、追加対象のデータを圧縮する。いくつかのSSDは圧縮機能を有し、これにより、ユーザによりSSDに実際に追加されるデータのサイズは、追加されたデータが圧縮された後に取得されたデータのサイズである。したがって、追加対象のデータは、圧縮データである。
【００５１】
本発明のこの実施例におけるステップS202は、SSDが圧縮機能を有するときに実行され、SSDが圧縮機能を有さない場合、ステップS202が実行されず、ステップS203が直接実行される点に留意すべきである。
【００５２】
S203.追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定する。
【００５３】
任意選択で、プロセッサ1001は、追加対象のデータをメモリ1004に追加し、これにより、新たなデータのサイズをユーザによりメモリ1005に以前に保存されたデータのサイズに追加し、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズとして、追加対象のデータがメモリ1004に追加された後に取得され且つユーザにより保存されたデータのサイズを決定する。
【００５４】
S204.ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定する。
【００５５】
任意選択で、プロセッサ1001は、ホストにより送信された削除命令を受信し、通信バス1002を使用することにより、削除命令をプロセッサ1001に送信する。プロセッサ1001は、削除命令に従って、削除対象のデータを決定する。削除命令を受信したときに、プロセッサ1001は、削除命令が実行されているか否かを決定する。削除命令は、トリム（TRIM）命令である。本発明のこの実施例を実現する前提条件は、フラッシュデバイスがTRIM命令をサポートできることである。TRIM命令は、オペレーティングシステムにより、ファイルが削除されたか、或いはフォーマットが実行された後に、このデータブロックがもはや必要ないことをSSDのプライマリコントローラに通知するために使用される。いくつかのファイルが削除されたか、或いは全体パーティションがフォーマットされたときに、オペレーティングシステムは、操作中に更新された論理アドレス（無効なデータアドレスを含む）と共にTRIM命令をSSDのプライマリコントローラに送信する。このように、以降のガベージコレクション処理において、無効なデータが消し去られることができ、これにより、ユーザ記憶空間容量及びオーバープロビジョニング空間容量が対応して増加し、ライトアンプリフィケーションWAが低減され、性能が改善される。本発明のこの実施例によれば、ホストは、できるだけ多くのTRIM命令を送出することを更に要求され、これにより、フラッシュデバイスは、オーバープロビジョニングレベルを逆調整できる。プロセッサ1001により受信された削除命令は実行されている可能性があるため、プロセッサ1001は、削除命令が実行されているか否かを決定する必要がある。削除命令が実行されていない場合、プロセッサ1001が、削除命令に従って、データをフラッシュデバイスから削除していないことが理解され得る。削除命令が実行されている場合、プロセッサ1001が、削除命令に従って、データをメモリ1004から削除していることが理解され得る。削除命令が再び受信された場合、メモリ1004に記憶されたデータのサイズは変化しない。この場合、フラッシュデバイスに対して処理は実行されない。削除対象のデータを決定することは、削除対象のデータの内容及び量を決定することを含み、これは、無効にされる必要があるデータ又は消去される必要があるデータブロックを決定することとして理解されてもよい。
【００５６】
S205.削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定する。
【００５７】
任意選択で、プロセッサ1001は、削除対象のデータをメモリ1005から削除し、これにより、ユーザによりメモリ1005に以前に保存されたデータのサイズを減少させる。プロセッサ1001は、操作後に取得され且つユーザによりメモリ1004に保存されたデータのサイズとして、削除対象のデータが削除され且つユーザにより保存されたデータのサイズを決定する。
【００５８】
S206.操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定する。
【００５９】
S207.目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定する。
【００６０】
S208.目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整する。
【００６１】
本発明のこの実施例におけるステップS206〜ステップS208の具体的な実現処理については、図３に示す実施例におけるステップS102〜ステップS104の具体的な説明を参照する。詳細はここでは更に説明しない。
【００６２】
S209.目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行する。
【００６３】
任意選択で、プロセッサ1001は、目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行する。ガベージコレクションは以下の通りである。SSDのプライマリコントローラが「無効」データを含むこれらのブロック内の全ての「有効」データを結合し、結合されたデータを新たな「空白ブロック」に入れ、予備の「空白ブロック」の量を増加させるために「無効」データブロックを削除する。ガベージコレクションを用いて、無効データの量が低減されるだけでなく、空白ブロックの量も増加し、これにより、より多くの利用可能な空白ブロックがユーザに提供されることが習得され得る。
【００６４】
ガベージコレクションは、SSDに対して大量の負荷を生成するため、ガベージコレクションは、アイドルガベージコレクション及びパッシブガベージコレクションに分類されてもよい。アイドルガベージコレクションは以下の通りである。SSDのプライマリコントローラは、特定の量の空白ブロックを生成するために、システムがアイドルであるときに事前にガベージコレクション操作を実行し、これにより、ガベージコレクション操作は、ユーザ体験に明白に影響を与えないが、欠点は、ユーザにより実行される更新によってガベージコレクションを用いてちょうど取得された有効データが無効になる可能性があるため、余分のライトアンプリフィケーションが引き起こされる点である。パッシブガベージコレクションは、全てのSSDにより所有される。この場合のSSDはガベージコレクションとユーザにより要求されるデータ操作とを同時に実行する必要があるため、SSDのプライマリコントローラの性能は、パッシブガベージコレクションの効率に決定的な影響を有する。プライマリコントローラの性能が悪いときに、ユーザは、SSDの性能が低下したと見出す。パッシブガベージコレクションは以下の通りである。関連するホストにより送信されたTRIM命令に従ってガベージコレクション操作を実行し、これにより、無効ページ上のより多くのデータを生成するようにSSDをトリガーし、ガベージコレクションの圧力を軽減し、SSDの性能が低下したとユーザが見出す機会を低減する。
【００６５】
ガベージコレクション調整パラメータは、フラッシュデバイスに対していつガベージコレクション処理操作を実行するかを決定するために使用され、すなわち、ガベージコレクション調整パラメータは、ガベージコレクションを開始するために使用されるパラメータである。従来技術では、固定のオーバープロビジョニング比の場合、SSDに記憶されたデータのサイズに拘わらず、ガベージコレクション処理は、固定のガベージコレクションパラメータに従ってSSDに対して実行され、したがって、SSDの性能及び信頼性が影響を受ける。本発明のこの実施例において、最適な調整パラメータが異なる空間オーバープロビジョニングレベルについて別々に構成されるため、本発明のこの実施例において、適切なガベージコレクション処理が記憶されたデータの量に従って実行でき、これにより、SSDの性能を最適化する。
【００６６】
S210.目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行する。
【００６７】
任意選択で、プロセッサ1001は、全てのブロックが書き込まれる回数量が等しくなることを確保するために、目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行する。２つの種類のウェアレベリングアルゴリズム、すなわち、ダイナミックウェアレベリングアルゴリズム及びスタティックウェアレベリングアルゴリズムが存在する。要するに、ダイナミックウェアレベリングは、古いフラッシュブロックを使用する代わりに、毎回最も新しいフラッシュブロックを使用することを意味し、スタティックウェアレベリングは、長期間変更されていない古いデータを新しいフラッシュブロックから移動し、古いデータを最も古いデータブロックに保存し、これにより、新しいフラッシュブロックが再び頻繁に使用できることを意味する。ダイナミックウェアレベリング及びスタティックウェアレベリングの両方は、開始粒度を必要とする。ウェアレベリング調整パラメータは、いつウェアレベリング処理操作を開始するかを決定するために使用されるパラメータである。各オーバープロビジョニングレベルは、異なるウェアレベリング調整パラメータに対応しており、より大きいオーバープロビジョニング比に対応するオーバープロビジョニングレベルは、より大きい開始粒度に対応している。
【００６８】
本発明のこの実施例では、ホストにより送信された操作命令が受信され、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作が実行され、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズが決定され、次に、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルが決定され、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータが決定され、最後に、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量が調整され、目標調整パラメータに従ってフラッシュデバイスが対応して調整される。したがって、フラッシュデバイスのオーバープロビジョニング比は、記憶されたデータの量に従って動的に調整され、さらに、フラッシュデバイスの信頼性及び性能安定性が改善され、フラッシュデバイスの耐用寿命が延長し、フラッシュデバイスの主体性が改善される。
【００６９】
以下では、本発明の実施例によるデータ処理装置について図６を参照して詳細に説明する。図６に示すデータ処理装置は、図４及び図５に示す実施例における方法を実行するように構成される点に留意すべきである。説明を簡単にするため、本発明のこの実施例に関する部分のみが示されている。開示されていない具体的な技術的詳細については、本発明の図４及び図５に示す実施例を参照する。
【００７０】
本発明のこの実施例におけるデータ処理装置は、図１に示す記憶システム内のフラッシュデバイスに適用される。複数のオーバープロビジョニングレベルが複数の異なるオーバープロビジョニング比に従ってフラッシュデバイスの物理記憶空間について構成され、各オーバープロビジョニングレベルは、ユーザ記憶空間容量の区間に対応しており、ユーザ記憶空間容量の各区間は、異なる調整パラメータに対応しており、オーバープロビジョニング比は、ユーザ記憶空間容量に対するオーバープロビジョニング空間容量の比であり、オーバープロビジョニング空間容量は、物理記憶空間容量とユーザ記憶空間容量との間の差である。
【００７１】
図６を参照すると、図６は、本発明の実施例によるデータ処理装置10の概略構成図である。データ処理装置10は、受信ユニット101と、決定ユニット102と、調整ユニット103とを含んでもよい。
【００７２】
受信ユニット101は、ホストにより送信された操作命令を受信し、操作命令に従って、フラッシュデバイスに記憶されたデータに対して操作を実行し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズを決定するように構成される。
【００７３】
決定ユニット102は、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズ、及び各オーバープロビジョニングレベルに対応しているユーザ記憶空間容量の区間に従って、目標オーバープロビジョニングレベルを決定するように構成される。
【００７４】
決定ユニット102は、目標オーバープロビジョニングレベル、及び各オーバープロビジョニングレベルと調整パラメータとの間の対応関係に従って、目標調整パラメータを決定するように更に構成される。
【００７５】
調整ユニット103は、目標調整パラメータに従って、フラッシュデバイスのオーバープロビジョニング空間容量を調整するように構成される。
【００７６】
本発明のこの実施例及び図４に示す方法の実施例は、同じ概念に基づき、同じ技術的効果を生成する。具体的な原理については、図４に示す実施例における説明を参照し、詳細はここでは更に説明しない。
【００７７】
任意選択で、受信ユニット101は、ホストにより送信された書き込み命令を受信し、書き込み命令に従って、追加対象のデータを決定し、追加対象のデータをフラッシュデバイスに追加し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、追加対象のデータがフラッシュデバイスに追加された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
【００７８】
受信ユニット101は、ホストにより送信された削除命令を受信し、削除命令に従って、削除対象のデータを決定し、削除対象のデータをフラッシュデバイスから削除し、操作後に取得され且つユーザによりフラッシュデバイスに保存されたデータのサイズとして、削除対象のデータが削除された後に取得され且つユーザにより保存されたデータのサイズを決定するように具体的に構成される。
【００７９】
受信ユニット101は、追加対象のデータを圧縮するように更に構成され、追加対象のデータは、圧縮データである。
【００８０】
データ処理装置10は、
目標調整パラメータ内の目標ガベージコレクション調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してガベージコレクション処理を実行するように構成された処理ユニットを更に含む。
【００８１】
処理ユニットは、目標調整パラメータ内の目標ウェアレベリング調整パラメータに従って、フラッシュデバイスに記憶されたデータに対してウェアレベリング処理を実行するように更に構成される。
【００８２】
本発明のこの実施例及び図５に示す方法の実施例は、同じ概念に基づき、同じ技術的効果を生成する。具体的な原理については、図５に示す実施例における説明を参照し、詳細はここでは更に説明しない。
【００８３】
当業者は、実施例における方法の処理の全部又は一部が関係するハードウェアに命令するコンピュータプログラムにより実現されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。プログラムが実行するときに、実施例における方法の処理が実行される。前述の記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ（Read-Only  Memory,  ROM）又はランダムアクセスメモリ（Random  Access  Memory,  RAM）を含んでもよい。
【００８４】
上記に開示されるものは、本発明の実施例の単なる例であり、明らかに、本発明の保護範囲を限定することを意図するものではない。したがって、本発明の特許請求の範囲に従って行われた等価な変更は、本発明の範囲内に入るものとする。
【図１】
0006484763.tif 000002
【図２】
0006484763.tif 000003
【図３】
0006484763.tif 000004
【図４】
0006484763.tif 000005
【図５】
0006484763.tif 000006
【図６】
0006484763.tif 000007