キャッシュデステージスキャン時間を管理するためのシステム100であって、キャッシュ120と、前記キャッシュに結合された140プロセッサ130と、を含み、前記プロセッサは、第1のスレッド200を用いて、前記キャッシュにおける複数のストレージトラックをスキャンするための所望のスキャン時間を連続的に判断し、第2のスレッド300を用いて、前記連続的に判断した所望のスキャン時間に基づき、前記キャッシュにおける前記複数のストレージトラックの実際のスキャン時間を連続的に制御する、ように構成される、システム100。前記所望のスキャン時間を連続的に判断する200とき、前記プロセッサ130は、デステージ競合210について前記キャッシュ120を実質的に連続的に監視し205、前記キャッシュにデステージ競合が発生している場合、所定の時間だけ前記所望の時間を増加させ215、振動220について前記キャッシュを実質的に連続的に監視し205、前記キャッシュに振動が発生している場合、所定の百分率だけ前記所望のスキャン時間を減少させる225、ように構成される、請求項1に記載のシステム100。前記プロセッサ130は、前記キャッシュにデステージ競合が発生している場合、100msだけ前記所望のスキャン時間を増加させ215、前記キャッシュに振動が発生している場合、50だけ前記所望のスキャン時間を減少させ225、前記キャッシュにデステージ競合が発生していず、かつ、振動も発生していない場合、現在の所望のスキャン時間を維持する230、ように構成される、請求項2に記載のシステム100。前記実際のスキャン時間を連続的に制御するとき、前記プロセッサ130は、前回のスキャン時間を判断し305、完了した現在のスキャンの部分を判断し310、完了する必要がある前記現在のスキャンの残りの部分を推定し320、前記前回のスキャン時間と、完了した前記現在のスキャンの前記部分と、前記現在のスキャンの前記推定される残りの部分とを合計して325、基準時間を作成することと、前記基準時間を前記所望のスキャン時間の2倍2×で除算して330、基準スキャン因子を作成することと、前記基準スキャン因子に基づき、次回のスキャンについての次回のスキャン時間を変更する345、ように構成される、請求項2に記載のシステム100。完了する必要がある前記現在のスキャンの前記残りの部分を推定する320とき、前記プロセッサ130は、前記現在のスキャンについての推定合計時間から完了した前記現在のスキャンの前記部分を減算して、第1の因子を作成し、前記第1の因子を前記現在のスキャンについての前記推定合計時間で除算して、第2の因子を作成し、前記第2の因子に前記所望のスキャン時間を乗算する、ように構成される、請求項4に記載のシステム100。前記基準スキャン因子に基づき、前記次回のスキャンについての前記次回のスキャン時間を変更する345とき、前記プロセッサ130は、前記基準スキャン因子が1未満である場合335、前記次回のスキャンについての前記次回のスキャン時間を増加させ345、前記基準スキャン因子が1より大きいか又は1に等しい場合、前記キャッシュにおけるデステージタスクの数を維持する355、ようにさらに構成される、請求項5に記載のシステム100。前記次回のスキャンについての前記次回のスキャン時間を増加させる345とき、前記プロセッサ130は、前記キャッシュにおけるデステージタスクの数を減少させるように構成される、請求項6に記載のシステム100。前記キャッシュ120におけるデステージスキャン時間を管理するための方法であって、第1のスレッド200を用いて、前記キャッシュにおける複数のストレージトラックをスキャンするための所望のスキャン時間を連続的に判断することと、第2のスレッド300を用いて、前記連続的に判断した所望のスキャン時間に基づき、前記キャッシュにおける前記複数のストレージトラックの実際のスキャン時間を連続的に制御することと、を含む、方法。前記所望のスキャン時間を連続的に判断すること200は、デステージ競合について210前記キャッシュ120を実質的に連続的に監視すること205と、前記キャッシュにデステージ競合が発生している場合、所定の時間だけ前記所望のスキャン時間を増加させること215と、振動について220前記キャッシュを実質的に連続的に監視すること205と、前記キャッシュに振動が発生している場合、所定の百分率だけ前記所望のスキャン時間を減少させること225と、を含む、請求項8に記載の方法。前記キャッシュ120にデステージ競合が発生している場合、100msだけ前記所望のスキャン時間を増加させること215と、前記キャッシュに振動が発生している場合、50だけ前記所望のスキャン時間を減少させること225と、前記キャッシュにデステージ競合が発生していず、かつ、振動が発生していない場合、現在の所望のスキャン時間を維持すること230と、をさらに含む、請求項9に記載の方法。前記実際のスキャン時間を連続的に制御することは、前回のスキャン時間を判断すること305と、完了した現在のスキャンの部分を判断すること310と、完了する必要がある前記現在のスキャンの残りの部分を推定すること320と、前記前回のスキャン時間と、前記完了した前記現在のスキャンの部分と、前記現在のスキャンの前記推定された残りの部分とを合計して、基準時間を作成することと、前記基準時間を前記所望のスキャン時間の2倍2×で除算して、基準スキャン因子を作成することと、前記基準スキャン因子に基づき、次回のスキャンについての次回のスキャン時間を変更すること345と、を含む、請求項9に記載の方法。完了する必要がある前記現在のスキャンの前記残りの部分を推定することは、前記現在のスキャンについての推定合計時間から完了した前記現在のスキャンの前記部分を減算して、第1の因子を作成することと、前記第1の因子を前記現在のスキャンについての前記推定合計時間で除算して、第2の因子を作成することと、前記第2の因子に前記所望のスキャン時間を乗算することと、を含む、請求項11に記載の方法。前記参照スキャン時間に基づき、前記次回のスキャンについての前記次回のスキャン時間を変更すること345は、前記基準スキャン因子が1未満である場合335、前記次回のスキャンについての前記次回のスキャン時間を増加させること345と、前記基準スキャン因子が1より大きいか又は1に等しい場合、前記キャッシュにおける前記デステージタスクの数を維持すること355と、を含む、請求項12に記載の方法。前記次回のスキャンについての前記次回のスキャン時間を増加させること345は、前記キャッシュにおけるデステージタスクの数を減少させることを含む、請求項13に記載の方法。キャッシュにおけるデステージスキャン時間を管理するためのコンピュータプログラムであって、第1のスレッド200を用いて、前記キャッシュにおける複数のストレージトラックをスキャンするための所望のスキャン時間を連続的に判断するためのコンピュータコードと、第2のスレッド300を用いて、前記連続的に判断した所望のスキャン時間に基づき、前記キャッシュにおける前記複数のストレージトラックの実際のスキャン時間を連続的に制御するためのコンピュータコードと、を含む、コンピュータプログラム。前記所望のスキャン時間を連続的に判断する200ための前記コンピュータコードは、デステージ競合について210前記キャッシュ120を実質的に連続的に監視する205ためのコンピュータコードと、前記キャッシュにデステージ競合が発生している場合、所定の時間だけ前記所望のスキャン時間を増加させる215ためのコンピュータコードと、振動について220前記キャッシュを実質的に連続的に監視する205ためのコンピュータコードと、前記キャッシュに振動が発生している場合、所定の百分率だけ前記所望のスキャン時間を減少させる225ためのコンピュータコードと、を含む、請求項15に記載のコンピュータプログラム。前記実際のスキャン時間を連続的に制御するための前記コンピュータコードは、前回のスキャン時間を判断する305ためのコンピュータコードと、完了した現在のスキャンの部分を判断する310ためのコンピュータコードと、完了する必要がある前記現在の残りの部分を推定する320ためのコンピュータコードと、前記前回のスキャン時間と、完了した前記現在のスキャンの前記部分と、前記現在のスキャンの前記推定される残りの部分とを合計して325、基準時間を作成するためのコンピュータコードと、前記基準時間を前記所望のスキャン時間の2倍2×で除算して330、基準スキャン因子を作成するためのコンピュータコードと、前記基準スキャン因子に基づいて、次回のスキャンのための次回のスキャン時間を変更する345ためのコンピュータコードとを含む、請求項16に記載のコンピュータプログラム。完了する必要がある前記現在のスキャンの前記残りの部分を推定する320ための前記コンピュータコードは、前記現在のスキャンについての推定合計時間から完了した前記現在のスキャンの前記部分を減算して、第1の因子を作成するためのコンピュータコードと、前記第1の因子を現在のスキャンについての前記推定合計時間で除算して、第2の因子を作成するためのコンピュータコードと、前記第2の因子に現在の所望の時間を乗算するためのコンピュータコードと、を含む、請求項17に記載のコンピュータプログラム。前記参照スキャン時間に基づき、前記次回のスキャンのための前記次回のスキャン時間を変更する345ためのコンピュータコードは、前記基準スキャン因子が1未満である場合335、前記次回のスキャン時間を増加させる345ためのコンピュータコードと、前記基準スキャン因子が1より大きいか又は1に等しい場合、前記キャッシュにおけるデステージタスクの数を維持する355ためのコンピュータコードと、を含む、請求項18に記載のコンピュータプログラム。前記次回のスキャンについての前記次回のスキャン時間を増加させる345ためのコンピュータコードは、前記キャッシュにおけるデステージタスクの数を減少させるためのコンピュータコードを含む、請求項19に記載のコンピュータプログラム。キャッシュにおけるデステージスキャン時間を管理するためのシステム及び方法を提供する。種々の実施形態が、キャッシュにおけるデステージスキャン時間を管理するためのシステムを提供する。1つのシステムは、キャッシュと、キャッシュに結合されたプロセッサとを含む。1つの実施形態において、プロセッサは、第1のスレッドを用いて、キャッシュにおける複数のストレージトラックをスキャンするための所望のスキャン時間を連続的に判断し、第2のスレッドを用いて、連続的に判断した所望のスキャン時間に基づき、キャッシュにおける複数のストレージトラックの実際のスキャン時間を連続的に制御するように構成される。キャッシュにおけるデステージスキャン時間を管理するための方法も提供される。1つの方法は、第1のスレッドを用いて、キャッシュにおける複数のストレージトラックをスキャンするための所望のスキャン時間を連続的に判断することと、第2のスレッドを用いて、連続的に判断した所望のスキャン時間に基づき、キャッシュにおける複数のストレージトラックの実際のスキャン時間を連続的に制御することとを含む。キャッシュにおけるデステージスキャン時間を管理するためのコンピュータプログラム製品を含む物理的コンピュータストレージ媒体例えば、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能なプログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリCD-ROM、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせも提供される。1つの物理的コンピュータストレージ媒体は、第1のスレッドを用いて、キャッシュにおける複数のストレージトラックをスキャンするための所望のスキャン時間を連続的に判断するためのコンピュータコードと、第2のスレッドを用いて、連続的に判断した所望のスキャン時間に基づき、キャッシュにおける複数のストレージトラックの実際のスキャン時間を連続的に制御するためのコンピュータコードとを含む。本発明の利点を容易に理解するために、添付図面に示される特定の実施形態を参照して、簡潔に上述した本発明のより詳細な説明が与えられる。これらの図面は本発明の典型的な実施形態を示すものにすぎず、従って、本発明の範囲を限定するものと考えられるべきではないことを理解した上で、本発明が、添付図面を用いて付加的な詳細及び細部と共に記載され、説明される。種々の実施形態が、キャッシュにおけるデステージスキャン時間を管理するためのシステム及び方法を提供する。キャッシュにおけるデステージスキャン時間を管理するためのコンピュータプログラム製品を含む物理的コンピュータストレージ媒体例えば、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能なプログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリCD-ROM、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせも提供される。ここで図面を参照すると、図1は、キャッシュにおけるデステージスキャン時間を管理するためのシステム100の1つの実施形態のブロック図である。少なくとも図示される実施形態において、システム100は、バス140例えば、有線バス及び/又は無線バスを介してキャッシュ120及びプロセッサ130に結合されたメモリ110を含む。メモリ110は、当技術分野において既知の又は将来開発される、いずれのタイプのメモリデバイスであってもよい。メモリ110の例として、これらに限定されるものではないが、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、消去可能なプログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリCD-ROM、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。メモリ110の種々の実施形態において、ストレージトラックをメモリ110内に格納することが可能である。さらに、データをストレージトラックに書き込むときに、ストレージトラックの各々をキャッシュ120からメモリ110にデステージすることができる。1つの実施形態において、キャッシュ120は、1つ又は複数のランクに区分化された書き込みキャッシュを含み、そこで、各々のランクは、1つ又は複数のストレージトラックを含む。キャッシュ120は、当技術分野において既知の又は将来開発される、いずれのキャッシュであってもよい。動作中、各ランクにおけるストレージトラックは、そのストレージトラックに書き込みが行われた後、フォアグラウンドデステージプロセスにおいて、メモリ110にデステージされる。即ち、フォアグラウンドデステージプロセスは、ホスト図示せずがキャッシュ120のランクにおける種々のストレージトラックにアクティブに書き込みを行っている間、ストレージトラックをランクからメモリ110にデステージする。特定のストレージトラックは、1つ又は複数のホストがその特定のストレージトラックに書き込むことを望むこれは、デステージ競合として知られるときにはデステージされず、かつ、キャッシュ120は、ほぼ一杯の状態とほぼ空の状態との間での大きな変動これは、振動として知られるを受けないことが理想的である。デステージ競合の数を低減させ、ストレージトラックがキャッシュ120内に存在する時間を低減させるために、プロセッサ130は、キャッシュ120におけるデステージスキャン時間を管理するための方法を実行するように構成される。種々の実施形態において、プロセッサ130は、プロセッサ130によって実行されたときに、プロセッサ130に、キャッシュ120においてデステージスキャン時間を管理するための方法を実行させるコンピュータ可読コードを含む、デステージスキャン時間管理モジュール1310を含む、又はこれにアクセスすることができる。デステージスキャン時間管理モジュール1310においてそのコンピュータ可読コードを実行するとき、プロセッサ130は、第1のスレッドを用いて、キャッシュ120におけるストレージトラックをスキャンするための所望のスキャン時間を判断し、第2のスレッドを用いて、判断した所望のスキャン時間に基づいて、キャッシュ120におけるストレージトラックの実際のスキャン時間を制御するように構成される。1つの実施形態において、第1のスレッド及び第2のスレッドは、それぞれ、所望のスキャン時間を判断する際、及び、実際のスキャン時間を制御する際、連続的に又は実質的に連続的に機能する。第1のスレッドを用いて所望のスキャン時間を判断するとき、プロセッサ130は、連続的に、実質的に連続的に、又は所定の間隔で、デステージ競合についてキャッシュ120を監視し、キャッシュ120にデステージ競合が発生している場合には、所定の時間だけ所望のスキャン時間を増加させるように構成される。1つの実施形態においては、プロセッサ130がキャッシュ120におけるデステージ競合を検出するたびに、所定の時間の増加は、100ミリ秒である。他の実施形態においては、プロセッサ130がキャッシュ120におけるデステージ競合を検出するたびに、所定の時間の増加は、100ミリ秒より短い例えば、約10ミリ秒から約99ミリ秒までの時間である。さらに別の実施形態においては、プロセッサ130がキャッシュ120におけるデステージ競合を検出するたびに、所定の時間の増加は、100ミリ秒より長い例えば、101ミリ秒から約1秒までの時間である。このように、所定の時間の増加は、システム100の具体的な用途の必要性に従って調整することができる。プロセッサ130はまた、連続的に、実質的に連続的に、又は所定の間隔で、振動についてキャッシュ120を監視し、キャッシュ120に振動が発生している場合には、所定の時間だけ所望のスキャン時間を減少させるように構成される。1つの実施形態においては、プロセッサ130は、キャッシュに振動が発生しているとプロセッサ130が判断したとき、50パーセント50だけ所望のスキャン時間を減少させるように構成される。別の実施形態においては、プロセッサ130は、キャッシュ120に振動が発生しているとプロセッサ130が判断したとき、50パーセントを下回る例えば、約10から約49までの量だけ所望のスキャン時間を減少させるように構成される。さらに別の実施形態においては、プロセッサ130は、キャッシュ120に振動が発生しているとプロセッサ130が判断したとき、50パーセントを上回る例えば、約51から約90までの量だけ所望のスキャン時間を減少させるように構成される。別の実施形態においては、プロセッサ130は、連続的に、実質的に連続的に、又は所定の間隔で、キャッシュ120内に格納されたデータ量を監視し、キャッシュ120が所定量を上回るデータ量を格納している場合、所定の時間だけ所望のスキャン時間を減少させるように構成される。1つの実施形態において、プロセッサ130は、キャッシュ120が、キャッシュ120の総ストレージ容量の70パーセント70に等しいデータ量を格納しているとプロセッサ130が判断したとき、所望のスキャン時間を減少させるように構成される。別の実施形態においては、プロセッサ130は、キャッシュ120がキャッシュ120の総ストレージ容量の70パーセントを上回る例えば、約71から約95までのデータ量を格納しているとプロセッサ130が判断したとき、所望のスキャン時間を減少させるように構成される。さらに別の実施形態においては、プロセッサ130は、キャッシュ120がキャッシュ120の総ストレージ容量の70パーセントを下回る例えば、約10から約69までのデータ量を格納しているとプロセッサ130が判断したとき、所望のスキャン時間を減少させるように構成される。これらの実施形態の各々において、プロセッサ130は、キャッシュ120が所定量を上回るデータ量を格納しているとプロセッサ130が判断したとき、50パーセント50だけ、50パーセントを下回る例えば、約10から約49までの量だけ、又は50パーセントを上回る例えば、約51から約90までの量だけ、所望のスキャン時間を減少させるように構成される。種々の実施形態において、プロセッサ130は、キャッシュにデステージ競合が発生していず、かつ、大量の振動が発生していない又はキャッシュが所定のデータ量を上回るデータ量を格納していない場合、現在の所望の時間を維持するように構成される。上記の説明により、プロセッサ130は、プロセッサ130がキャッシュ120におけるデステージ競合を検出したときに、僅かな時間だけ所望のスキャン時間を増加させ、キャッシュ120に振動が発生している及び/又はキャッシュ120が所定のデータ量を上回るデータ量を格納しているとプロセッサ130が判断したとき、比較的多くの時間、所望のスキャン時間を減少させるように構成されることが明らかである。種々の実施形態において、プロセッサ130は、キャッシュ120の実際のスキャン時間を制御する際に、第2のスレッドが所望のスキャン時間を用いることを可能にするように構成される。第2のスレッドを利用してキャッシュ120の実際のスキャン時間を制御するとき、プロセッサ130は、プロセッサ130がキャッシュ120の前回のスキャンを実行するのにかかった時間を判断するように構成される。さらに、プロセッサ130は、既に完了したキャッシュ120の現在のスキャンの部分を完了するのにかかった時間を判断し、この時間をキャッシュ120の前回のスキャンの時間に加算する。例えば、キャッシュ120の前回のスキャンが750ミリ秒かかり、キャッシュ120の現在のスキャンの部分が260ミリ秒かかった場合には、前回のスキャンの開始から現在時刻までの合計時間は、1010ミリ秒即ち1.01秒である。プロセッサ130はさらに、キャッシュ120の現在のスキャンの残りの部分を完了するのにかかるであろう時間を推定し、この時間を、前回のスキャンの開始から現在時刻までの時間に加算する。1つの実施形態においては、完了する必要があるキャッシュ120の現在のスキャンの残りの部分を推定するとき、プロセッサ130は、現在のスキャンに対する推定合計時間から、完了した現在のスキャンの部分を減算して、第1の因子を作成する。推定合計時間は、スキャンされる残りのストレージトラックの推定数、スキャンされるキャッシュ120の推定される残りの百分率、及び類似の推定に基づくことができ、これらの各々は、例えば前回のスキャンにおいてスキャンされたストレージトラックの総数に基づいて推定することができる。例えば、プロセッサ130が、前回の例における260ミリ秒は現在のスキャンを完了するのにかかる合計時間の3分の1であると推定する場合、プロセッサ130は、キャッシュ120の現在のスキャンの残りの部分を完了するのにかかる時間は520ミリ秒即ち、260ミリ秒×2=520ミリ秒であると推定する。この例において、第1の因子は1530ミリ秒、即ち1.53秒即ち、750ms260ms520ms=1530msである。別の実施形態において、完了する必要があるキャッシュ120の現在のスキャンの残りの部分を推定するときに、プロセッサ130は、前回のスキャンの開始から現在時刻までの時間即ち、上記の例においては1010ミリ秒を第1の因子から減算し、この量を第1の因子で除算する即ち、1530ms-1010ms/1530msように構成される。次いで、この計算の結果に、第1のスレッドから得られる現在の所望の時間を乗算する即ち、所望の時間×[1530ms-1010ms/1530ms]。次いで、この結果を、前回のスキャンの開始から現在時刻までの合計時間に加算して、第1の因子を得る。プロセッサ130は、次いで、第1の因子を現在の所望の時間の2倍即ち、現在の所望の時間×2で除算して基準スキャン因子を求めるように構成され、この基準スキャン因子を用いて、次回の実際のスキャン時間が早すぎるかどうかを予測することができる。基準スキャン因子が1より小さい場合、プロセッサ130は、次回の実際のスキャン時間が早すぎる可能性が高いと判断し、次回のスキャンについての次回の実際のスキャン時間を増加させる。1つの実施形態においては、次回の実際のスキャン時間を増加させるために、プロセッサ130は、キャッシュ120におけるストレージトラックをスキャン及び/又はデステージしているデステージタスクの数を減少させる。キャッシュ120におけるデステージタスクの数を減少させることは、ストレージトラックがスキャン及び/又はデステージされる速度を低減させる効果をもたらし、このことは、キャッシュ120の実際のスキャンを実行するのにかかる時間を増加させる。基準スキャン因子が1より大きい場合、プロセッサ130は、次回の実際のスキャン時間が所望のスキャン時間より長くかかる可能性が高いと判断し、次回のスキャンについてのスキャン時間を変更しない。即ち、プロセッサ130は、キャッシュ120におけるストレージトラックをスキャン及び/又はデステージしているデステージタスクの数を増減せず、これにより、次回のスキャン時間についての時間は、現在のスキャン時間についての時間と実質的に同じままとなる。ここで図2を参照すると、図2は、キャッシュ例えば、キャッシュ120についての所望のスキャン時間を判断するための方法200の1つの実施形態のフロー図である。少なくとも図示される実施形態においては、方法200は、キャッシュを監視することブロック205、及び、キャッシュにデステージ競合が発生しているかどうかを判断することブロック210によって開始する。キャッシュにデステージ競合が発生している場合、方法200は、所定の時間だけ所望のスキャン時間を増加させることブロック215を含む。1つの実施形態において、キャッシュにおいてデステージ競合が検出されるたびに、所定の時間の増加は、100ミリ秒である。他の実施形態においては、キャッシュにおいてデステージ競合が検出されるたびに、所定の時間の増加は、100ミリ秒より短い例えば、約10ミリ秒から約99ミリ秒までの時間である。さらに他の実施形態においては、キャッシュにおいてデステージ競合が検出されるたびに、所定の時間の増加は、101ミリ秒より長い例えば、101ミリ秒から約1秒までの時間である。次いで、方法200は、増加されたスキャン時間を方法300下記を参照されたいに与え、キャッシュの監視ブロック205に戻る。キャッシュにデステージ競合が発生していない場合、方法200は、キャッシュに振動が発生しているかどうかを判断することブロック220をさらに含む。方法200は、キャッシュに振動が発生している場合、所定の時間だけ所望のスキャン時間を減少させることブロック225を含む。1つの実施形態においては、キャッシュに振動が発生しているとき、所望のスキャン時間は、50パーセント50だけ減少される。別の実施形態においては、キャッシュに振動が発生している場合、所望のスキャン時間は、50パーセントを下回る例えば、約10から約49までの量だけ減少される。さらに別の実施形態においては、キャッシュに振動が発生している場合、所望のスキャン時間は、50パーセントを上回る例えば、約51から約90までの量だけ減少される。次いで、方法200は、減少されたスキャン時間を方法300下記を参照されたいに与え、キャッシュの監視ブロック205に戻る。方法200は、キャッシュに振動が発生していない場合、現在の所望のスキャン時間を維持することブロック230を含む。即ち、キャッシュにデステージ競合が発生していず、かつ、大量の振動も発生していない場合、現在の所望のスキャン時間が維持される。次いで、方法200は、キャッシュの監視ブロック205に戻る。ここで図3を参照すると、図3は、キャッシュ例えば、キャッシュ120の実際のスキャン時間を制御するための方法300の1つの実施形態のブロック図である。少なくとも図示される実施形態において、方法300は、プロセッサ例えば、プロセッサ130がキャッシュの前回のスキャンを実行するのにかかった時間を判断することブロック305によって開始する。方法300は、キャッシュの現在のスキャンのうち既に完了した部分を完了するのにかかった時間を判断することブロック310、及び、この時間を、キャッシュの前回のスキャンを実行するのにかかった時間に加算することブロック315によって続行する。方法300は、キャッシュの現在のスキャンの残りの部分を完了するのにかかるであろう時間を推定することブロック320、及び、この時間を、ブロック315において計算された前回のスキャンの開始から現在時刻までの時間に加算することブロック325をさらに含む。1つの実施形態において、完了する必要があるキャッシュの現在のスキャンの残りの部分を推定することは、現在のスキャンについての推定合計時間から現在のスキャンの完了した部分を減算して、第1の因子を作成することを含む。推定合計時間は、キャッシュにおいてスキャンされる残りのストレージトラックの推定数、スキャンされるキャッシュの推定される残りの百分率、及び類似の推定に基づくことができ、これらの各々は、例えば前回のスキャンにおいてスキャンされたストレージトラックの総数に基づいて推定することができる。別の実施形態において、完了する必要があるキャッシュの現在のスキャンの残りの部分を推定することは、前回のスキャンの開始から現在時刻までの時間を、第1の因子から減算し、この量を第1の因子で除算することを含む。次いで、この計算の結果に、上述の方法200から得られる現在の所望の時間を乗算する。次いで、この結果を前回のスキャンの開始から現在時刻までの合計時間に加算して、第1の因子を得る。方法300は、第1の因子を現在の所望の時間の2倍即ち、現在の所望の時間×2で除算して、基準スキャン因子を求めることブロック330をさらに含む。方法300は、基準スキャン因子が1より小さい場合、次回の実際のスキャン時間が早すぎる可能性が高いと判断することブロック340、及び、次回のスキャンについての次回の実際のスキャン時間を増加させることブロック345を含む。1つの実施形態において、キャッシュにおけるデステージタスクの数を減少させることは、ストレージトラックがスキャン及び/又はデステージされる速度を低減させる効果をもたらし、このことは、キャッシュの実際のスキャンを実行するのにかかる時間の量を増加させるので、次回の実際のスキャン時間を増加させることは、キャッシュにおけるストレージトラックをスキャン及び/又はデステージするデステージタスクの数を減少させることを含む。次いで、方法300は、プロセッサ例えば、プロセッサ130がキャッシュの前回のスキャンを実行するのにかかった時間を判断することブロック305に戻る。方法300は、基準スキャン因子が1より大きいか又は1に等しい場合、次回の実際のスキャン時間が所望のスキャン時間より長くかかる可能性が高いと判断することブロック350、及び、次回のスキャンについてのスキャン時間を変更しないこと又は変更を避けることブロック355を含む。即ち、キャッシュにおけるストレージトラックをスキャン及び/又はデステージするデステージタスクの数は増減せず、その結果、次回のスキャン時間についての時間が、現在のスキャン時間についての時間と実質的に同じままとなる。次いで、方法300は、プロセッサ例えば、プロセッサ130がキャッシュの前回のスキャンを実行するのにかかった時間を判断することブロック305に戻る。本発明の上述の説明において、少なくとも1つの例示的な実施形態が提示されたが、膨大な数の変形が存在することを認識すべきである。当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータプログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコード等を含む、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、本明細書においては、これらは全て、一般的に回路、モジュール又はシステムと呼ぶことがある。さらに、本発明の態様は、媒体内に具体化されたコンピュータ可読プログラムコードを有する、1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータプログラム製品の形態をとることができる。1つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又は物理的コンピュータ可読ストレージ媒体とすることができる。物理的コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光学、結晶、高分子、電磁気、赤外線若しくは半導体のシステム、装置若しくはデバイス、又はこれらのいずれかの適切な組み合わせとすることができるが、これらに限定されるものではない。物理的コンピュータ可読ストレージ媒体の例として、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM、フラッシュメモリ、光ファイバ、CD-ROM、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられるが、これらに限定されるものではない。本明細書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はそれらに関連して用いるためのプログラムを収容又は格納することが可能ないずれかの有形媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラムコードは、これらに限定されるものではないが、無線、有線、光ファイバケーブル、無線周波RF等、又はこれらのいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。本発明の態様についての動作を実行するためのコンピュータコードは、Cプログラミング言語又は他の類似のプログラミング言語などのいずれかの静的言語で書くことができる。コンピュータコードは、全体をユーザのコンピュータ上で実行することができ、独立型ソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行することができ、一部をユーザのコンピュータ上で実行し、一部を遠隔コンピュータ上で実行することができ、又は全体を遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオにおいては、遠隔コンピュータは、ローカルエリアネットワークLAN、広域ネットワークWAN若しくはコンバージドネットワークを含むがこれらに限定されるものではない、いずれかのタイプのネットワーク若しくは通信システムを通じてユーザのコンピュータに接続することができ、又は例えば、インターネットサービスプロバイダを用い、インターネットを通じて外部コンピュータに接続をすることができる。本発明の態様は、本明細書において、本発明の実施形態による方法、装置システム及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータプログラム命令によって実装できることが理解されるであろう。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を生成するようになる。これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。コンピュータプログラム命令をコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するためのプロセスを提供するようにすることもできる。図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための1つ又は複数の実行可能な命令を含む、モジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることがあることにも留意すべきである。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも留意されたい。