(57)【要約】  機械学習モジュールは、キャッシュからトラックを削除するのに用いる複数のキャッシュ削除アルゴリズムの１つを選択する。第１のキャッシュ削除アルゴリズムは、キャッシュから削除するトラックを決定する。第２のキャッシュ削除アルゴリズムは、キャッシュから削除するトラックを決定し、第１および第２のキャッシュ削除アルゴリズムは異なる削除方式を用いる。キャッシュから削除するトラックを選択するのに用いる第１のキャッシュ削除アルゴリズムおよび第２のキャッシュ削除アルゴリズムの１つを示す出力を生じるように、少なくとも１つの機械学習モジュールが実行される。少なくとも１つの機械学習モジュールからの出力において示された、第１および第２のキャッシュ削除アルゴリズムの１つによって選択されたトラックが削除される。
2021524078.tif 000002
【特許請求の範囲】
【請求項１】
トラックをキャッシュからストレージに降格させるためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、実行されたときに動作を行う、その中に具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を備え、前記動作が、
前記キャッシュから削除するトラックを決定するための第１のキャッシュ削除アルゴリズムをもたらすことと、
前記キャッシュから削除するトラックを決定するための第２のキャッシュ削除アルゴリズムをもたらすことであって、前記第１および第２のキャッシュ削除アルゴリズムが異なる削除方式を用いる、前記もたらすことと、
前記キャッシュから削除するトラックを選択するのに用いる前記第１のキャッシュ削除アルゴリズムおよび前記第２のキャッシュ削除アルゴリズムの１つを示す出力を生じるように、少なくとも１つの機械学習モジュールを実行することと、
前記少なくとも１つの機械学習モジュールからの前記出力において示された、前記第１および第２のキャッシュ削除アルゴリズムの１つによって選択されたトラックを削除することと
を含むコンピュータ・プログラム製品。
【請求項２】
前記動作が、
前記キャッシュ内のトラックの最長時間未使用（ＬＲＵ）リストをもたらすことであって、前記第１のキャッシュ削除アルゴリズムが、前記ＬＲＵリストのＬＲＵ端部にある、削除するトラックを選択するＬＲＵアルゴリズムを備える、前記もたらすこと
をさらに含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記動作が、
前記ＬＲＵリスト上にある間に、前記キャッシュ内のトラックがアクセスされた回数を示す、前記ＬＲＵリスト内の前記トラックのそれぞれに対する頻度カウンタをもたらすことをさらに含み、前記第２のキャッシュ削除アルゴリズムが、前記キャッシュ内の前記トラックに対する前記頻度カウンタの最も低い頻度カウンタを有する、削除するトラックを選択する最低使用頻度（ＬＦＵ）アルゴリズムを備える、請求項２に記載のコンピュータ・プログラム製品。
【請求項４】
前記動作が、
前記キャッシュから削除する第１の削除トラックを決定するために、前記第１のキャッシュ削除アルゴリズムを実行することと、
前記キャッシュから削除する第２の削除トラックを決定するために、前記第２のキャッシュ削除アルゴリズムを実行することとをさらに含み、
前記実行された少なくとも１つの機械学習モジュールが、入力として前記第１および前記第２の削除トラックならびにキャッシュ統計値を受信して、前記キャッシュから削除するトラックを選択するのに用いる、前記第１および前記第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる、
請求項１に記載のコンピュータ・プログラム製品。
【請求項５】
前記少なくとも１つの機械学習モジュールを前記実行することが、
入力として前記第１の削除トラックおよびキャッシュ統計値を受信し、前記第１のキャッシュ削除アルゴリズムが前記キャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準を出力する、第１の機械学習モジュールを実行することと、
入力として前記第２の削除トラックおよびキャッシュ統計値を受信し、前記第２のキャッシュ削除アルゴリズムが前記キャッシュに対する前記読み出しヒット率を最適化する可能性を示す第２の信頼水準を出力する、第２の機械学習モジュールを実行することと、
前記第１の信頼水準が前記第２の信頼水準を超えたことに応答して、前記キャッシュから前記第１の削除トラックを削除することと、
前記第２の信頼水準が前記第１の信頼水準を超えたことに応答して、前記キャッシュから前記第２の削除トラックを削除することと
を含む、請求項４に記載のコンピュータ・プログラム製品。
【請求項６】
前記キャッシュ統計値が、前記キャッシュのサイズと、キャッシュ・ミス対ヒット比率と、前記第１の機械学習モジュールに対する前記第１の削除トラックの第１のアクセス頻度、および前記第２の機械学習モジュールに対する前記第２の削除トラックの第２のアクセス頻度と、前記第１の機械学習モジュールに対する最長時間未使用（ＬＲＵ）リスト内の前記第１の削除トラックの第１の位置、および前記第２の機械学習モジュールに対する前記ＬＲＵリスト内の前記第２の削除トラックの第２の位置との少なくとも１つを備える、請求項５に記載のコンピュータ・プログラム製品。
【請求項７】
トラックをキャッシュからストレージに降格させるためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、実行されたときに動作を行う、その中に具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を備え、前記動作が、
前記キャッシュから削除する第１の削除トラックを決定するための第１のキャッシュ削除アルゴリズムを実行することと、
前記キャッシュから削除する第２の削除トラックを決定するための第２のキャッシュ削除アルゴリズムを実行することであって、前記第１および第２のキャッシュ削除アルゴリズムが異なる削除方式を用いる、前記実行することと、
入力として前記第１の削除トラック、前記第２の削除トラック、およびキャッシュ統計値を受信し、前記キャッシュから削除するトラックを選択するのに用いる前記第１および前記第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる、少なくとも１つの機械学習モジュールを実行することと、
前記少なくとも１つの機械学習モジュールからの前記出力が前記第１のキャッシュ削除アルゴリズムを用いるように示したことに応答して、前記キャッシュから前記第１の削除トラックを削除することと、
前記少なくとも１つの機械学習モジュールからの前記出力が前記第２のキャッシュ削除アルゴリズムを用いるように示したことに応答して、前記キャッシュから前記第２の削除トラックを削除することと
を含むコンピュータ・プログラム製品。
【請求項８】
前記少なくとも１つの機械学習モジュールからの前記出力が、
前記第１のキャッシュ削除アルゴリズムが前記キャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準と、
前記第２のキャッシュ削除アルゴリズムが前記キャッシュに対する前記読み出しヒット率を最適化する可能性を示す第２の信頼水準とを備え、
前記出力が、前記第１の信頼水準が前記第２の信頼水準を超えたことに応答して、前記第１のキャッシュ削除アルゴリズムを用いるように示し、
前記出力が、前記第２の信頼水準が前記第１の信頼水準を超えたことに応答して、前記第２のキャッシュ削除アルゴリズムを用いるように示す、
請求項７に記載のコンピュータ・プログラム製品。
【請求項９】
前記少なくとも１つの機械学習モジュールが、入力として前記第１の削除トラックを受信し、前記第１の信頼水準を出力する第１の機械学習モジュールと、入力として前記第２の削除トラックを受信し、前記第２の信頼水準を出力する第２の機械学習モジュールとを備え、前記動作が、
前記キャッシュ内の前記トラックのアクティブ・キャッシュ・リストを保持することと、
前記キャッシュから削除されたトラックの非アクティブ・キャッシュ・リストを保持することと、
前記トラックが前記キャッシュから削除されたとき、トラックの表示を前記アクティブ・キャッシュ・リストから除去することと、
前記キャッシュから削除された前記トラックの表示を、前記非アクティブ・キャッシュ・リストに追加することと、
前記アクティブ・キャッシュ・リスト内に示されず、前記非アクティブ・キャッシュ・リスト内に示される要求トラックに対する読み出し要求に応答して、
前記非アクティブ・キャッシュ・リスト内の前記要求トラックに関する第１の情報に基づいて、修正された第１の信頼水準を決定すること、
前記非アクティブ・キャッシュ・リスト内の前記要求トラックに関する第２の情報に基づいて、修正された第２の信頼水準を決定すること、
前記要求トラックに対する前記修正された第１の信頼水準を生じるように、前記第１の機械学習モジュールを再訓練すること、および
前記要求トラックに対する前記修正された第２の信頼水準を生じるように、前記第２の機械学習モジュールを再訓練すること
を行うことと
をさらに含む、請求項８に記載のコンピュータ・プログラム製品。
【請求項１０】
前記第１および第２の機械学習モジュールが、第１および第２の人工ニューラル・ネットワーク・プログラムをそれぞれ備え、
前記第１の機械学習モジュールを前記再訓練することが、前記要求トラックおよび前記キャッシュ統計値を備える入力に基づいて、前記修正された第１の信頼水準を生じるように、前記第１の人工ニューラル・ネットワーク・プログラムの隠れ層内のノードの重みおよび偏りを調整するために、逆方向伝搬を用いることを含み、
前記第２の機械学習モジュールを前記再訓練することが、前記要求トラックおよび前記キャッシュ統計値を備える入力に基づいて、前記修正された第２の信頼水準を生じるように、前記第２の人工ニューラル・ネットワーク・プログラムの隠れ層内のノードの重みおよび偏りを調整するために、逆方向伝搬を用いることを含む、
請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記アクティブおよび非アクティブ・キャッシュ・リストが、前記キャッシュ内のトラックの最長時間未使用（ＬＲＵ）リストを備え、前記第１のキャッシュ削除アルゴリズムが、前記ＬＲＵリストのＬＲＵ端部にある、削除するトラックを選択するＬＲＵアルゴリズムを備え、前記修正された第１の信頼水準を前記決定することが、前記非アクティブ・キャッシュ・リスト内の前記要求トラックの位置に基づく、請求項９に記載のコンピュータ・プログラム製品。
【請求項１２】
前記非アクティブ・キャッシュ・リスト内の前記要求トラックの前記位置に基づいて、前記修正された第１の信頼水準を前記決定することが、
前記要求トラックが、前記ＬＲＵ端部より、前記非アクティブ・キャッシュ・リストの直近使用（ＭＲＵ）端部に近いことに応答して、前記第１の信頼水準を増加させることと、
前記要求トラックが、前記ＭＲＵ端部より、前記ＬＲＵ端部に近いことに応答して、前記第１の信頼水準を減少させることと
を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記非アクティブ・キャッシュ・リスト内の前記要求トラックの前記位置に基づいて、前記修正された第１の信頼水準を前記決定することが、
前記要求トラックが、前記ＬＲＵ端部より、前記非アクティブ・キャッシュ・リストの直近使用端部に近いことに応答して、
（前記非アクティブ・キャッシュ・リスト内の前記要求トラックの前記位置−（非アクティブ・キャッシュ・リスト・サイズ／２））／前記非アクティブ・キャッシュ・リスト・サイズ／２を備える正の誤差範囲を計算すること、および
前記修正された第１の信頼水準を生じるように、前記第１の信頼水準を前記正の誤差範囲だけ調整することを行うことと、
前記要求トラックが、前記非アクティブ・キャッシュ・リストの直近使用端部より前記ＬＲＵ端部に近いことに応答して、
（（非アクティブ・キャッシュ・リスト・サイズ／２）−前記非アクティブ・キャッシュ・リスト内の前記要求トラックの前記位置）／前記非アクティブ・キャッシュ・リスト・サイズ／２を備える負の誤差範囲を計算すること、および
前記修正された第１の信頼水準を生じるように、前記第１の信頼水準を前記負の誤差範囲だけ調整することを行うことと
を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１４】
前記動作が、
前記非アクティブ・キャッシュ・リストに移動される前に、前記アクティブ・キャッシュ・リスト上にある間に、前記キャッシュ内の前記トラックがアクセスされた回数を示す、前記アクティブおよび非アクティブ・キャッシュ・リスト内の前記トラックのそれぞれに対する頻度カウンタをもたらすことをさらに含み、前記第２のキャッシュ削除アルゴリズムが、前記キャッシュ内の前記トラックに対する前記頻度カウンタの最も低い頻度カウンタを有する、削除するトラックを選択する最低使用頻度（ＬＦＵ）アルゴリズムを備え、前記修正された第２の信頼水準を前記決定することが、前記非アクティブ・キャッシュ・リスト内のトラックの頻度カウンタ値の平均に対する、前記要求トラックの頻度カウンタ値に基づく、
請求項９に記載のコンピュータ・プログラム製品。
【請求項１５】
前記非アクティブ・キャッシュ・リスト内の前記要求トラックの前記頻度カウンタ値に基づいて、前記修正された第２の信頼水準を前記決定することが、
前記要求トラックの前記頻度カウンタ値が、前記非アクティブ・キャッシュ・リスト内の前記トラックの前記頻度カウンタ値の前記平均より大きいことに応答して、前記第２の信頼水準を増加させることと、
前記要求トラックの前記頻度カウンタ値が、前記非アクティブ・キャッシュ・リスト内の前記トラックの前記頻度カウンタ値の前記平均より小さいことに応答して、前記第２の信頼水準を減少させることと
を含む、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
前記非アクティブ・キャッシュ・リスト内の前記要求トラックの前記頻度カウンタ値に基づいて、前記修正された第２の信頼水準を前記決定することが、
前記要求トラックの前記頻度カウンタ値が、前記非アクティブ・キャッシュ・リスト内の前記トラックの前記頻度カウンタ値の前記平均より大きいことに応答して、
（前記要求トラックの頻度カウント値−前記頻度カウンタ値の前記平均）／（前記非アクティブ・キャッシュ・リスト内の頻度カウンタ値の最大頻度カウンタ値−前記頻度カウンタ値の前記平均）を備える正の誤差範囲を計算すること、および
前記修正された第２の信頼水準を生じるように、前記第２の信頼水準を前記正の誤差範囲だけ調整することを行うことと、
前記要求トラックの前記頻度カウンタ値が、前記非アクティブ・キャッシュ・リスト内の前記トラックの前記頻度カウンタ値の前記平均より小さいことに応答して、
（前記頻度カウンタ値の前記平均−前記要求トラックの前記頻度カウント値）／（前記非アクティブ・キャッシュ・リスト内の頻度カウンタ値の最大頻度カウンタ値−前記頻度カウンタ値の前記平均）を備える負の誤差範囲を計算すること、および
前記修正された第２の信頼水準を生じるように、前記第２の信頼水準を前記負の誤差範囲だけ調整することを行うことと
を含む、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１７】
トラックをキャッシュからストレージに降格させるためのシステムであって、
プロセッサと、
実行されたときに動作を行う、その中に具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体と
を備え、前記動作が、
前記キャッシュから削除するトラックを決定するための第１のキャッシュ削除アルゴリズムをもたらすことと、
前記キャッシュから削除するトラックを決定するための第２のキャッシュ削除アルゴリズムをもたらすことであって、前記第１および第２のキャッシュ削除アルゴリズムが異なる削除方式を用いる、前記もたらすことと、
前記キャッシュから削除するトラックを選択するのに用いる前記第１のキャッシュ削除アルゴリズムおよび前記第２のキャッシュ削除アルゴリズムの１つを示す出力を生じるように、少なくとも１つの機械学習モジュールを実行することと、
前記少なくとも１つの機械学習モジュールからの前記出力において示された、前記第１および第２のキャッシュ削除アルゴリズムの１つによって選択されたトラックを削除することと
を含むシステム。
【請求項１８】
前記動作が、
前記キャッシュから削除する第１の削除トラックを決定するために、前記第１のキャッシュ削除アルゴリズムを実行することと、
前記キャッシュから削除する第２の削除トラックを決定するために、前記第２のキャッシュ削除アルゴリズムを実行することとをさらに含み、
前記実行された少なくとも１つの機械学習モジュールが、入力として前記第１および前記第２の削除トラックならびにキャッシュ統計値を受信して、前記キャッシュから削除するトラックを選択するのに用いる、前記第１および前記第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる、
請求項１７に記載のシステム。
【請求項１９】
前記少なくとも１つの機械学習モジュールを前記実行することが、
入力として前記第１の削除トラックおよびキャッシュ統計値を受信し、前記第１のキャッシュ削除アルゴリズムが前記キャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準を出力する、第１の機械学習モジュールを実行することと、
入力として前記第２の削除トラックおよびキャッシュ統計値を受信し、前記第２のキャッシュ削除アルゴリズムが前記キャッシュに対する前記読み出しヒット率を最適化する可能性を示す第２の信頼水準を出力する、第２の機械学習モジュールを実行することと、
前記第１の信頼水準が前記第２の信頼水準を超えたことに応答して、前記キャッシュから前記第１の削除トラックを削除することと、
前記第２の信頼水準が前記第１の信頼水準を超えたことに応答して、前記キャッシュから前記第２の削除トラックを削除することと
を含む、請求項１８に記載のシステム。
【請求項２０】
トラックをキャッシュからストレージに降格させるためのシステムであって、
プロセッサと、
実行されたときに動作を行う、その中に具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体と
を備え、前記動作が、
前記キャッシュから削除する第１の削除トラックを決定するための第１のキャッシュ削除アルゴリズムを実行することと、
前記キャッシュから削除する第２の削除トラックを決定するための第２のキャッシュ削除アルゴリズムを実行することであって、前記第１および第２のキャッシュ削除アルゴリズムが異なる削除方式を用いる、前記実行することと、
入力として前記第１の削除トラック、前記第２の削除トラック、およびキャッシュ統計値を受信し、前記キャッシュから削除するトラックを選択するのに用いる前記第１および前記第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる、少なくとも１つの機械学習モジュールを実行することと、
前記少なくとも１つの機械学習モジュールからの前記出力が前記第１のキャッシュ削除アルゴリズムを用いるように示したことに応答して、前記キャッシュから前記第１の削除トラックを削除することと、
前記少なくとも１つの機械学習モジュールからの前記出力が前記第２のキャッシュ削除アルゴリズムを用いるように示したことに応答して、前記キャッシュから前記第２の削除トラックを削除することと
を含むシステム。
【請求項２１】
前記少なくとも１つの機械学習モジュールからの前記出力が、
前記第１のキャッシュ削除アルゴリズムが前記キャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準と、
前記第２のキャッシュ削除アルゴリズムが前記キャッシュに対する前記読み出しヒット率を最適化する可能性を示す第２の信頼水準とを備え、
前記出力が、前記第１の信頼水準が前記第２の信頼水準を超えたことに応答して、前記第１のキャッシュ削除アルゴリズムを用いるように示し、
前記出力が、前記第２の信頼水準が前記第１の信頼水準を超えたことに応答して、前記第２のキャッシュ削除アルゴリズムを用いるように示す、
請求項２０に記載のシステム。
【請求項２２】
前記少なくとも１つの機械学習モジュールが、入力として前記第１の削除トラックを受信し、前記第１の信頼水準を出力する第１の機械学習モジュールと、入力として前記第２の削除トラックを受信し、前記第２の信頼水準を出力する第２の機械学習モジュールとを備え、前記動作が、
前記キャッシュ内の前記トラックのアクティブ・キャッシュ・リストを保持することと、
前記キャッシュから削除されたトラックの非アクティブ・キャッシュ・リストを保持することと、
前記トラックが前記キャッシュから削除されたとき、トラックの表示を前記アクティブ・キャッシュ・リストから除去することと、
前記キャッシュから削除された前記トラックの表示を、前記非アクティブ・キャッシュ・リストに追加することと、
前記アクティブ・キャッシュ・リスト内に示されず、前記非アクティブ・キャッシュ・リスト内に示される要求トラックに対する読み出し要求に応答して、
前記非アクティブ・キャッシュ・リスト内の前記要求トラックに関する第１の情報に基づいて、修正された第１の信頼水準を決定すること、
前記非アクティブ・キャッシュ・リスト内の前記要求トラックに関する第２の情報に基づいて、修正された第２の信頼水準を決定すること、
前記要求トラックに対する前記修正された第１の信頼水準を生じるように、前記第１の機械学習モジュールを再訓練すること、および
前記要求トラックに対する前記修正された第２の信頼水準を生じるように、前記第２の機械学習モジュールを再訓練すること
を行うことと
をさらに含む、請求項２１に記載のシステム。
【請求項２３】
トラックをキャッシュからストレージに降格させる方法であって、
前記キャッシュから削除するトラックを決定するための第１のキャッシュ削除アルゴリズムをもたらすことと、
前記キャッシュから削除するトラックを決定するための第２のキャッシュ削除アルゴリズムをもたらすことであって、前記第１および第２のキャッシュ削除アルゴリズムが異なる削除方式を用いる、前記もたらすことと、
前記キャッシュから削除するトラックを選択するのに用いる前記第１のキャッシュ削除アルゴリズムおよび前記第２のキャッシュ削除アルゴリズムの１つを示す出力を生じるように、少なくとも１つの機械学習モジュールを実行することと、
前記少なくとも１つの機械学習モジュールからの前記出力において示された、前記第１および第２のキャッシュ削除アルゴリズムの１つによって選択されたトラックを削除することと
を含む方法。
【請求項２４】
前記キャッシュから削除する第１の削除トラックを決定するために、前記第１のキャッシュ削除アルゴリズムを実行することと、
前記キャッシュから削除する第２の削除トラックを決定するために、前記第２のキャッシュ削除アルゴリズムを実行することとをさらに含み、
前記実行された少なくとも１つの機械学習モジュールが、入力として前記第１および前記第２の削除トラックならびにキャッシュ統計値を受信して、前記キャッシュから削除するトラックを選択するのに用いる、前記第１および前記第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる、
請求項２３に記載の方法。
【請求項２５】
前記少なくとも１つの機械学習モジュールを前記実行することが、
入力として前記第１の削除トラックおよびキャッシュ統計値を受信し、前記第１のキャッシュ削除アルゴリズムが前記キャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準を出力する、第１の機械学習モジュールを実行することと、
入力として前記第２の削除トラックおよびキャッシュ統計値を受信し、前記第２のキャッシュ削除アルゴリズムが前記キャッシュに対する前記読み出しヒット率を最適化する可能性を示す第２の信頼水準を出力する、第２の機械学習モジュールを実行することと、
前記第１の信頼水準が前記第２の信頼水準を超えたことに応答して、前記キャッシュから前記第１の削除トラックを削除することと、
前記第２の信頼水準が前記第１の信頼水準を超えたことに応答して、前記キャッシュから前記第２の削除トラックを削除することと
を含む、請求項２４に記載の方法。
【請求項２６】
トラックをキャッシュからストレージに降格させる方法であって、
前記キャッシュから削除する第１の削除トラックを決定するための第１のキャッシュ削除アルゴリズムを実行することと、
前記キャッシュから削除する第２の削除トラックを決定するための第２のキャッシュ削除アルゴリズムを実行することであって、前記第１および第２のキャッシュ削除アルゴリズムが異なる削除方式を用いる、前記実行することと、
入力として前記第１の削除トラック、前記第２の削除トラック、およびキャッシュ統計値を受信し、前記キャッシュから削除するトラックを選択するのに用いる前記第１および前記第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる、少なくとも１つの機械学習モジュールを実行することと、
前記少なくとも１つの機械学習モジュールからの前記出力が前記第１のキャッシュ削除アルゴリズムを用いるように示したことに応答して、前記キャッシュから前記第１の削除トラックを削除することと、
前記少なくとも１つの機械学習モジュールからの前記出力が前記第２のキャッシュ削除アルゴリズムを用いるように示したことに応答して、前記キャッシュから前記第２の削除トラックを削除することと
を含む方法。
【請求項２７】
前記少なくとも１つの機械学習モジュールからの前記出力が、
前記第１のキャッシュ削除アルゴリズムが前記キャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準と、
前記第２のキャッシュ削除アルゴリズムが前記キャッシュに対する前記読み出しヒット率を最適化する可能性を示す第２の信頼水準とを備え、
前記出力が、前記第１の信頼水準が前記第２の信頼水準を超えたことに応答して、前記第１のキャッシュ削除アルゴリズムを用いるように示し、
前記出力が、前記第２の信頼水準が前記第１の信頼水準を超えたことに応答して、前記第２のキャッシュ削除アルゴリズムを用いるように示す、
請求項２６に記載の方法。
【請求項２８】
前記少なくとも１つの機械学習モジュールが、入力として前記第１の削除トラックを受信し、前記第１の信頼水準を出力する第１の機械学習モジュールと、入力として前記第２の削除トラックを受信し、前記第２の信頼水準を出力する第２の機械学習モジュールとを備え、
前記キャッシュ内の前記トラックのアクティブ・キャッシュ・リストを保持することと、
前記キャッシュから削除されたトラックの非アクティブ・キャッシュ・リストを保持することと、
前記トラックが前記キャッシュから削除されたとき、トラックの表示を前記アクティブ・キャッシュ・リストから除去することと、
前記キャッシュから削除された前記トラックの表示を、前記非アクティブ・キャッシュ・リストに追加することと、
前記アクティブ・キャッシュ・リスト内に示されず、前記非アクティブ・キャッシュ・リスト内に示される要求トラックに対する読み出し要求に応答して、
前記非アクティブ・キャッシュ・リスト内の前記要求トラックに関する第１の情報に基づいて、修正された第１の信頼水準を決定すること、
前記非アクティブ・キャッシュ・リスト内の前記要求トラックに関する第２の情報に基づいて、修正された第２の信頼水準を決定すること、
前記要求トラックに対する前記修正された第１の信頼水準を生じるように、前記第１の機械学習モジュールを再訓練すること、および
前記要求トラックに対する前記修正された第２の信頼水準を生じるように、前記第２の機械学習モジュールを再訓練すること
を行うことと
をさらに含む、請求項２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュからトラックを削除する（evict）のに用いる複数のキャッシュ削除アルゴリズムの１つを選択するように機械学習モジュールを用いるためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【０００２】
キャッシュ管理システムは、メモリなど、要求トラックを記憶するストレージ・デバイスより高速アクセスのストレージ・デバイスにおける読み出しおよび書き込み動作の結果として、最近アクセスされたストレージ・デバイス内のトラックをバッファする。より高速アクセスのキャッシュ・メモリ内のトラックに対するその後の読み出し要求は、より低速アクセスのストレージから要求トラックを返すより高速に返され、従って読み出し待ち時間を低減する。
【０００３】
キャッシュ管理システムは、キャッシュに記憶された各トラックに対して１つのエントリを有するリンク・リストを保持することができ、これはストレージ・デバイスに書き込む前にキャッシュにバッファされた書き込みデータ、または読み出しデータを備え得る。キャッシュ管理システムは、読み出しまたは書き込み要求に対してキャッシュに追加するトラックのために余地を作るようにスペースが解放される必要があるとき、キャッシュから削除するトラックを選択するために、キャッシュ削除アルゴリズムを用いる。キャッシュ管理アルゴリズムはキャッシュ・ヒット対ミス比率を増加させるように努め、ここでキャッシュ・ヒットは、読み出し要求がキャッシュにあるトラックに対するものであり、より高速アクセスのキャッシュから対応され得るときに生じ、読み出しミスは、要求トラックがキャッシュにないときに生じる。読み出しミスは、読み出し要求が、トラックをストレージからキャッシュにステージして、要求に戻るための待ち時間の増加を結果として生じる。
【０００４】
異なるキャッシュ削除アルゴリズムは、異なる動作環境および異なる読み出し要求トラック・パターンにおいて、結果としてより良好なキャッシュ・ヒット対ミス比率を生じ得る。
【０００５】
当技術分野において、異なる読み出しアクセス・パターンおよび作業負荷においてキャッシュ・ヒット対ミス比率を改善するように、キャッシュからトラックを削除するのに用いるキャッシュ削除アルゴリズムを選択するための、改善された技術に対する必要性がある。
【発明の概要】
【０００６】
第１の実施形態は、キャッシュからトラックを削除するのに用いる複数のキャッシュ削除アルゴリズムの１つを選択するように機械学習モジュールを用いるためのコンピュータ・プログラム製品、システム、および方法を備える。第１のキャッシュ削除アルゴリズムは、キャッシュから削除するトラックを決定する。第２のキャッシュ削除アルゴリズムは、キャッシュから削除するトラックを決定し、第１および第２のキャッシュ削除アルゴリズムは異なる削除方式を用いる。キャッシュから削除するトラックを選択するのに用いる第１のキャッシュ削除アルゴリズムおよび第２のキャッシュ削除アルゴリズムの１つを示す出力を生じるように、少なくとも１つの機械学習モジュールが実行される。少なくとも１つの機械学習モジュールからの出力において示された、第１および第２のキャッシュ削除アルゴリズムの１つによって選択されたトラックが削除される。
【０００７】
異なるキャッシュ削除アルゴリズムは、異なる動作条件のもとでのキャッシュ・ヒット対ミス比率を改善し得る。述べられる実施形態は、削除するトラックを選択するのに、第１および第２のキャッシュ削除アルゴリズムのどちらを用いるかを示す出力を生じる、少なくとも１つの機械学習モジュールを用い、これはキャッシュ・ヒット対ミス比率に対する、より好ましい効果を有する可能性が高くなるキャッシュ削除アルゴリズムを選択するようになる。
【０００８】
第２の実施形態において、第１の実施形態は、キャッシュから削除する第１の削除トラックを決定するために、第１のキャッシュ削除アルゴリズムを実行することと、キャッシュから削除する第２の削除トラックを決定するために、第２のキャッシュ削除アルゴリズムを実行することとを追加として含み得る。実行された少なくとも１つの機械学習モジュールは、入力として第１および第２の削除トラックならびにキャッシュ統計値を受信して、キャッシュから削除するトラックを選択するのに用いる、第１および第２のキャッシュ削除アルゴリズムの１つを選択するために用いられる出力を生じる。
【０００９】
第２の実施形態について、選択された削除するための第１および第２の削除トラックのいずれが、キャッシュ・ヒット対ミス比率に対して最も大きな改善を有するようになるかを決定するのに用いる、第１および第２のキャッシュ削除アルゴリズムが削除するように選択するようになる第１および第２の削除トラックと、キャッシュ統計値とが、少なくとも１つの機械学習アルゴリズムにもたらされる。
【００１０】
第３の実施形態において、第２の実施形態は、入力として第１の削除トラックおよびキャッシュ統計値を受信し、第１のキャッシュ削除アルゴリズムがキャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準を出力する、第１の機械学習モジュールを実行することと、入力として第２の削除トラックおよびキャッシュ統計値を受信し、第２のキャッシュ削除アルゴリズムがキャッシュに対する読み出しヒット率を最適化する可能性を示す第２の信頼水準を出力する、第２の機械学習モジュールを実行することとを含む、少なくとも１つの機械学習モジュールを実行することを追加として含み得る。第１の削除トラックは、第１の信頼水準が第２の信頼水準を超えたことに応答して、キャッシュから削除され、第２の削除トラックは、第２の信頼水準が第１の信頼水準を超えたことに応答して、キャッシュから削除される。
【００１１】
第３の実施形態について、第１および第２の機械学習アルゴリズムは、機械学習アルゴリズムに関連付けられたキャッシュ削除アルゴリズムが、キャッシュに対する読み出しヒット率を最適化するようになる可能性を示す信頼水準を推定するように訓練される。最も高い信頼水準を有するキャッシュ削除アルゴリズムによって選択されたトラックは、次いで読み出しヒット率を増加させる、すなわちキャッシュ・ミス率を最小化するために最適な結果をもたらす、キャッシュ削除アルゴリズムを用いてキャッシュから削除される。このようにして、キャッシュ削除のためのコンピュータ技術は、機械学習アルゴリズムによって生成された相対的信頼水準によって示されるのに従って、読み出しヒット率に対して最良の効果を有するようになり、キャッシュ・ミス比率を最小化するようになる、特定の削除するトラックを選択するためにキャッシュ削除アルゴリズムを用いることによって改善される。
【００１２】
第４の実施形態は、トラックをキャッシュからストレージに降格させるためのコンピュータ・プログラム製品、システム、および方法を備える。第１のキャッシュ削除アルゴリズムは、キャッシュから削除する第１の削除トラックを決定するために実行される。第２のキャッシュ削除アルゴリズムは、キャッシュから削除する第２の削除トラックを決定するために実行され、第１および第２のキャッシュ削除アルゴリズムは異なる削除方式を用いる。少なくとも１つの機械学習モジュールは、入力として第１の削除トラック、第２の削除トラック、およびキャッシュ統計値を受信し、キャッシュから削除するトラックを選択するのに用いる第１および第２のキャッシュ削除アルゴリズムの１つを選択するのに用いられる出力を生じるために実行される。第１の削除トラックは、少なくとも１つの機械学習モジュールからの出力が第１のキャッシュ削除アルゴリズムを用いるように示したことに応答して、キャッシュから削除される。第２の削除トラックは、少なくとも１つの機械学習モジュールからの出力が第２のキャッシュ削除アルゴリズムを用いるように示したことに応答して、キャッシュから削除される。
【００１３】
第４の実施形態は、特定の時点において、どのキャッシュ削除アルゴリズムが、キャッシュ・ヒット対ミス比率に対してより良好な効果を有する可能性が最も高くなる削除するトラックを選択するようになる、すなわち近い将来に要求される可能性がより低くなるような削除するトラックを選択するようになるかを決定するために、異なる可能なキャッシュ削除アルゴリズムおよびキャッシュ統計値によって、削除するように選択されるようになるトラックを、少なくとも１つの機械学習モジュールに考慮させることによって、削除するトラックを選択するためのコンピュータ技術に改善をもたらす。
【００１４】
第５の実施形態において、第４の実施形態は、少なくとも１つの機械学習モジュールからの出力が、第１のキャッシュ削除アルゴリズムがキャッシュに対する読み出しヒット率を最適化する可能性を示す第１の信頼水準と、第２のキャッシュ削除アルゴリズムがキャッシュに対する読み出しヒット率を最適化する可能性を示す第２の信頼水準とを備えることを追加として含む。出力は、第１の信頼水準が第２の信頼水準を超えたことに応答して、第１のキャッシュ削除アルゴリズムを用いるように示す。出力は、第２の信頼水準が第１の信頼水準を超えたことに応答して、第２のキャッシュ削除アルゴリズムを用いるように示す。
【００１５】
第５の実施形態について、削除するトラックを選択するために用いられ得る異なるキャッシュ削除アルゴリズムに対する、信頼水準を発生するために、少なくとも１つの機械学習アルゴリズムが用いられる。信頼水準は、その時点でどのキャッシュ削除アルゴリズムが、削除するようにそれが示唆するトラックと現在のキャッシュ統計値とに基づいて、キャッシュ読み出しヒット率を最適化する可能性が高くなり、キャッシュ性能を改善するための最良のキャッシュ削除アルゴリズムとなるかを示す。
【００１６】
第６の実施形態において、第４の実施形態は、少なくとも１つの機械学習モジュールは、入力として第１の削除トラックを受信し、第１の信頼水準を出力する第１の機械学習モジュールと、入力として第２の削除トラックを受信し、第２の信頼水準を出力する第２の機械学習モジュールとを備えることを追加として含む。アクティブ・キャッシュ・リストはキャッシュ内のトラックを示し、非アクティブ・キャッシュ・リストはキャッシュから削除されたトラックを示す。トラックの表示は、トラックがキャッシュから削除されたとき、アクティブ・キャッシュ・リストから除去される。キャッシュから削除されたトラックの表示は、非アクティブ・キャッシュ・リストに追加される。アクティブ・キャッシュ・リスト内に示されず、非アクティブ・キャッシュ・リスト内に示される要求トラックに対する読み出し要求に応答して、非アクティブ・キャッシュ・リスト内の要求トラックに関する第１の情報に基づいて、修正された第１の信頼水準が決定される。非アクティブ・キャッシュ・リスト内の要求トラックに関する第２の情報に基づいて、修正された第２の信頼水準が決定される。第１の機械学習モジュールは、要求トラックに対する修正された第１の信頼水準を生じるように再訓練される。第２の機械学習モジュールは、要求トラックに対する修正された第２の信頼水準を生じるように再訓練される。
【００１７】
第６の実施形態について、非アクティブ・キャッシュ・リストは、キャッシュから削除されたトラックに関する情報を保持するために用いられる。読み出しミスがある場合、削除されたトラックに関する情報を有する、非アクティブ・キャッシュ・リスト内の要求トラックに関する第１の情報および第２の情報に基づいて、修正された第１の信頼水準および第２の信頼水準が決定される。例えば、非アクティブ・キャッシュ・リスト内の要求トラックに対する情報が、トラックはキャッシュ削除アルゴリズムによって選択される可能性がより高いことを示す場合、その要求トラックおよびキャッシュ統計値に対してそのキャッシュ削除アルゴリズムのための機械学習モジュールによって生成された信頼水準は、そのキャッシュ削除アルゴリズムが選択される可能性を増加させるように増加され、なぜなら要求トラックを選択する可能性がより高いからである。一方、非アクティブ・キャッシュ・リスト内の要求トラックに対する情報が、トラックはキャッシュ削除アルゴリズムによって選択される可能性がより低いことを示す場合、その要求トラックおよびキャッシュ統計値に対して機械学習モジュールによって生成された信頼水準は、そのキャッシュ削除アルゴリズムが選択される可能性を低減するように低減され、なぜなら要求トラックを選択する可能性がより低いからである。このようにして、機械学習モジュールは、結果としてキャッシュ・ミスを生じる要求トラックに基づいて、要求トラックを選択する可能性が高くなるキャッシュ削除アルゴリズムを選択する可能性がより高い信頼水準を生じるように、および要求トラックを選択する可能性がより低くなるキャッシュ削除アルゴリズムを選択する可能性がより低い信頼水準を生じるように、再訓練される。このようにして、信頼水準は、将来におけるキャッシュ・ミスを低減し、ヒット対ミス比率を改善するように、結果としてキャッシュ・ミスを生じる要求トラックを選択するようになるキャッシュ削除アルゴリズムが用いられる可能性を増加させるように調整される。
【図面の簡単な説明】
【００１８】
【図１】コンピューティング環境の実施形態を示す図である。
【図２】最長時間未使用（Least Recently Used）（ＬＲＵ）リストの実施形態を示す図である。
【図３】キャッシュ制御ブロックの実施形態を示す図である。
【図４】キャッシュ統計値の実施形態を示す図である。
【図５Ａ】トラックに対する読み出し要求を処理する動作の実施形態を示す図である。
【図５Ｂ】トラックに対する読み出し要求を処理する動作の実施形態を示す図である。
【図６】読み出しミスに対して機械学習アルゴリズムを再訓練するための動作の実施形態を示す図である。
【図７】要求トラックに対する読み出しミスがある場合に、要求トラックに対して出力されるべきＬＲＵアルゴリズムに対する修正された信頼水準を決定するための動作の実施形態を示す図である。
【図８】要求トラックに対する読み出しミスがある場合に、要求トラックに対して出力されるべき最低使用頻度（Least Frequently Used）（ＬＦＵ）アルゴリズムに対する修正された信頼水準を決定するための動作の実施形態を示す図である。
【図９】図１の構成要素が実施され得るコンピューティング環境を示す図である。
【発明を実施するための形態】
【００１９】
ストレージ・コントローラは、新たなＩ／Ｏ要求、例えば、読み出しまたは書き込み要求のために、キャッシュ・データに対する余地を作るために、アクティブ・キャッシュからトラックを降格させる。読み出し要求に対するデータがすでにキャッシュにある、すなわちキャッシュ・ヒットの場合、要求されたデータはキャッシュ内にステージされる必要はない。読み出し要求に対するデータがキャッシュにない、すなわちキャッシュ・ミスの場合、または要求に対する書き込みデータがある場合、キャッシュ内にステージするための読み出しデータ、または書き込みデータのためにスペースを設けるために、キャッシュ内のトラックがキャッシュから削除されることが必要になり得る。トラックはキャッシュ削除アルゴリズムに基づいて削除される。キャッシュ・ミス率が高い場合、データは頻繁にストレージからキャッシュ内にステージされる必要があり、新たなＩ／Ｏ要求は、キャッシュ内でスペースが解放されるまで待ち行列に入れられることが必要になる。このようなＩ／Ｏ要求の待ち行列は、厳しい性能問題、および待ち行列に入れられたＩ／Ｏ要求に対する高い応答時間を引き起こし得る。
【００２０】
述べられる実施形態は、第１および第２のキャッシュ削除アルゴリズムをもたらし、および少なくとも１つの機械学習モジュールを実行して、キャッシュ・ヒット対ミス比率を最大化し、読み出し待ち時間を最小化するようになる、キャッシュ・ヒット対ミス比率を改善するように、キャッシュから削除するトラックを選択するのに用いる第１のキャッシュ削除アルゴリズムおよび第２のキャッシュ削除アルゴリズムの１つを示す出力を生成することによって、キャッシュからトラックを削除するためのコンピュータ技術に対する改善をもたらす。述べられる実施形態は、要求トラックを処理するために機械学習モジュールを用いることによって削除するトラックを決定し、機械学習最適化技術を用いることによってキャッシュ・ヒット対ミス比率を最も良く最適化するようになるキャッシュ削除アルゴリズムを決定するのに用いるキャッシュ削除アルゴリズムを選択することに対する改善をもたらす。このようにして、述べられる実施形態は、どのキャッシュ削除アルゴリズムが最も高い信頼値を有するか、またはヒット対ミス比率を増加させ、キャッシュ・ミスの数を低減する可能性がより高いかを考慮することによって、トラックを削除するのに用いるキャッシュ削除アルゴリズムの選択を改善する。
【００２１】
図１は、コンピューティング環境の実施形態を示す。コンピューティング・システム１００は、ストレージ１０４内に構成されたボリューム１０２内のデータ（例えば、論理ユニット番号、論理デバイス、論理サブシステムなど）にアクセスする。コンピューティング・システム１００は、プロセッサ１０６と、ストレージ１０４に対するデータをキャッシュするためのアクティブ・キャッシュ１１０を含むメモリ１０８とを含む。プロセッサ１０６は、１つまたは複数の中央処理装置（ＣＰＵ）、または単一のＣＰＵ上の複数のコアのグループを備え得る。アクティブ・キャッシュ１１０は、コンピューティング・システム内のプロセスによって要求されるデータをバッファする。代替として、コンピューティング・システム１００は、ネットワーク１２０を通してコンピューティング・システム１００（ストレージ・コントローラ）に接続するホスト１１８からの、ストレージ１０４内のトラックに対する入出力（Ｉ／Ｏ）アクセス要求を処理するストレージ・コントローラを備え得る。
【００２２】
メモリ１０８は、ストレージ・マネージャ１２２と、キャッシュ・マネージャ１２４とをさらに含む。ストレージ・マネージャ１２２は、ストレージ１０４内のトラックに対する、コンピューティング・システム１００内の内部プロセスからの、またはホスト１１８からのあるいはその両方のアクセス要求を管理する。キャッシュ・マネージャ１２４は、アクセスされたトラックを、ストレージ１０４から取り出さなければならないのではなく、より高速アクセスのキャッシュ１１０から返されることを可能にするように、トラックに対する将来の読み出しアクセスのために、アクセスされたトラックをアクティブ・キャッシュ１１０内に保持する。トラックは、ボリューム、論理デバイスなど、トラックのより大きなグルーピングの一部である、トラック、論理ブロック・アドレス（ＬＢＡ）など、ストレージ１０４内に構成されたデータの任意のユニットを備え得る。
【００２３】
キャッシュ・マネージャ１２４は、キャッシュ１１０内の読み出し（修正なし）および書き込み（修正あり）トラックを管理するために、メモリ１０８内にキャッシュ管理情報１２６を保持する。キャッシュ管理情報１２６は、制御ブロック・ディレクトリ３００内のキャッシュ制御ブロックに、キャッシュ１１０内のトラックのインデックスをもたらすトラック・インデックス１２８と、アクティブ・キャッシュ１１０内のトラックに対するアクティブ・キャッシュ最長時間未使用（ＬＲＵ）リスト２００Ａ、およびキャッシュ削除アルゴリズムを最適化するようにキャッシュ・アクセスを追跡するために、アクティブ・キャッシュ１１０から削除されたトラックを示すための非アクティブ・キャッシュＬＲＵリスト２００ＩＡとを含み得る。制御ブロック・ディレクトリ３００はキャッシュ制御ブロックを含み、ここでキャッシュ１１０内のトラックに対するメタデータをもたらす、キャッシュ１１０内の各トラックに対して１つのキャッシュ制御ブロックが存在する。トラック・インデックス１２８は、トラックを、キャッシュ１１０内のトラックに関する情報をもたらすキャッシュ制御ブロックに関連付ける。アクティブ・キャッシュＬＲＵリスト２００Ａが一杯であること、または閾値レベルに達したことを決定するとすぐに、アクティブ・キャッシュＬＲＵリスト２００Ａは、キャッシュから削除するトラックを決定するために用いられる。
【００２４】
一実施形態において、キャッシュ制御ブロックは、アクティブ・キャッシュＬＲＵリスト２００Ａ内、および非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内に示されるトラックに対して保持され、違いは、非アクティブ・キャッシュＬＲＵリスト２００ＩＡに示されるトラックに対するトラック・データは、それらがキャッシュ１１０から削除されているので、キャッシュ１１０に記憶され得ないことである。またさらなる代替の実施形態において、非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内のトラックに対して用いられるキャッシュ制御ブロックは、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ上に示されるトラックのためのキャッシュ制御ブロックはより少ないデータを必要とし得るように、キャッシュ１１０に保持されたトラックに対するものと比べて、より少ないフィールドおよびより少ない情報を有し得る。さらなる実施形態において、非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内のトラックに対するデータは、ゴースト・キャッシュ（ghost cache）に記憶され得る。
【００２５】
メモリ１０８は、削除するトラックを選択するための異なるアルゴリズムをもたらす、第１のキャッシュ削除アルゴリズム１３０１と、第２のキャッシュ削除アルゴリズム１３０２とをさらに含む。例えば、一実施形態において第１のキャッシュ削除アルゴリズム１３０１は、アクティブ・キャッシュＬＲＵリスト２００ＡのＬＲＵ端部におけるトラックを削除するように、またはキャッシュ１１０内で最長時間アクセスされないキャッシュを削除するように選択する、最長時間未使用（ＬＲＵ）アルゴリズムを含み得る。アクティブ・キャッシュＬＲＵリスト２００Ａは、アクセス順序を追跡するための二重リンク・リストを備え得る。トラックがキャッシュ１１０に追加された場合、追加されたトラックに対するエントリは、アクティブ・キャッシュＬＲＵリスト２００Ａの直近使用（most recently used）（ＭＲＵ）端部に追加される。キャッシュ１１０内にすでにあるトラックがアクセスされるまたは更新される場合、アクティブ・キャッシュＬＲＵリスト２００Ａ内のそのトラックに対するエントリは、リスト２００ＡのＭＲＵ端部に移動される。キャッシュ１１０が、それの最大サイズに達したとき、ＬＲＵ端部に示される最長時間未使用または未アクセスのトラックは、キャッシュ１１０から削除される。
【００２６】
第２のキャッシュ削除アルゴリズム１３０２は、キャッシュ１１０内にある間で最低使用頻度の、または最も少ないアクセス数の、トラックを削除する最低使用頻度（ＬＦＵ）アルゴリズムを備えることができ、ここでトラックのためのキャッシュ制御ブロック３００は、アクティブ・キャッシュ１１０内にある間にトラックがアクセスされた回数を示す、頻度カウンタを示す。さらなる実施形態において、第１のキャッシュ削除アルゴリズム１３０１または第２のキャッシュ削除アルゴリズム１３０２あるいはその両方は、適応置換キャッシュ（adaptive replacement cache）（ＡＲＣ）、適応置換によるクロック（clock with adaptive replacement）（ＣＡＲ）、動的エージングによるＬＦＵ（ＬＦＵＤＡ）、低相互参照最近度セット（low inter-reference recency set）（ＬＩＲＳ）、時間認識最長時間未使用（time aware least recently used）（ＴＬＲＵ）、直近使用（ＭＲＵ）、擬似ＬＲＵ（ＰＬＲＵ）、ランダム置換（ＲＲ）、セグメント化ＬＲＵ（ＳＬＲＵ）、Ｂｅｌａｄｙアルゴリズム、先入れ先出し（ＦＩＦＯ）、後入れ先出し（ＬＩＦＯ）、マルチ・キュー（ＭＱ）など、代替のキャッシュ削除技術を実施することができる。
【００２７】
メモリ１０８は、第１の機械学習モジュール１３２１と、第２の機械学習モジュール１３２２とをさらに実施することができ、これは、機械学習アルゴリズムに関連付けられた削除アルゴリズムが、アクセスする要求トラックがアクティブ・キャッシュ１１０内にある可能性を増加させるようにヒット対ミス比率を最適化する、削除するトラックを選択する可能性を示す信頼水準を決定するために、決定木学習、相関ルール学習、ニューラル・ネットワーク、機能プログラミング・ロジック、サポート・ベクター・マシン、ベイズ・モデルなどの機械学習技術を実施する。例えば、第１の機械学習モジュール１３２１は、入力として、削除するように第１のキャッシュ削除アルゴリズム１３０１によって決定されたトラックと、キャッシュ統計値とを受信して、ＬＲＵ削除アルゴリズムなど、第１のキャッシュ削除アルゴリズム１３０１が、ヒット対ミス比率を最大化する削除するトラックを選択するようになる第１の信頼水準を生じ得る。第２の機械学習モジュール１３２２は、入力として、削除するように第２のキャッシュ削除アルゴリズム１３０２によって決定されたトラックと、キャッシュ統計値とを受信して、ＬＦＵ削除アルゴリズムなど、第２のキャッシュ削除アルゴリズム１３０２が、ヒット対ミス比率を最大化する削除するトラックを選択するようになる第２の信頼水準を生じ得る。次いでキャッシュ・マネージャ１２４は、出力された第１および第２の信頼水準を用いて、第１のキャッシュ削除アルゴリズム１３０１または第２のキャッシュ削除アルゴリズム１３０２から、選択された削除するトラックを選択することができる。
【００２８】
一実施形態において、第１の機械学習アルゴリズム１３２１および第２の機械学習アルゴリズム１３２２は、別個の人工ニューラル・ネットワーク・プログラムを備え得る。第１のニューラル・ネットワーク１３２１は、第１の削除キャッシュ・アルゴリズム１３０１からの削除するトラックと、キャッシュ統計値とを備える入力に基づいて、所望の第１の信頼水準を生じるように、第１の人工ニューラル・ネットワーク・プログラムの隠れ層内のノードにおける重みおよび偏りを調整するように、逆方向伝搬を用いて訓練され得る。第２のニューラル・ネットワーク１３２２は、第２の削除キャッシュ・アルゴリズム１３０２からの削除するトラックと、キャッシュ統計値とを備える入力に基づいて、所望の第２の信頼水準を生じるように、第２の人工ニューラル・ネットワーク・プログラムの隠れ層内のノードの重みおよび偏りを調整するように、逆方向伝搬を用いて訓練され得る。逆伝搬において、出力の誤差範囲が測定され、それに従って隠れ層内のノードにおける重みおよび偏りは誤差を減少させるように調整される。逆伝搬は、勾配降下（gradient descent）を用いた人工ニューラル・ネットワークの教師あり学習（supervised learning）のためのアルゴリズムを備え得る。人工ニューラル・ネットワークおよび誤差関数を所与として、方法は、ニューラル・ネットワークの重みおよび偏りに関して誤差関数の勾配を計算することができる。
【００２９】
キャッシュ動作の間、キャッシュ・マネージャ１２４は、１５秒間隔など、特定の時間間隔の間、現在用いられているキャッシュ１１０に対するキャッシュ・ヒット対ミス比率およびキャッシュ・サイズなど、キャッシュ・アクセス統計値４００を収集することができる。
【００３０】
図１は２つのキャッシュ削除アルゴリズムおよび２つの機械学習モジュールを示すが、さらなる実施形態において、２つのキャッシュ削除アルゴリズムおよび２つの機械学習モジュールより多くが存在し得る。さらに、キャッシュ削除アルゴリズム１３０ｉのそれぞれに対する信頼水準を決定するための別個の機械学習モジュール１３２ｉの代わりに、キャッシュ削除アルゴリズム１３０１、１３０２によって選択される削除するトラックの入力、およびキャッシュ統計値４００に基づいて、用いるキャッシュ削除アルゴリズムを選択するために１つの機械学習モジュール１３２が用いられ得る。
【００３１】
述べられる実施形態において、リスト２００Ａおよび２００ＩＡはＬＲＵリストを備える。代替の実施形態において、リスト２００Ａおよび２００ＩＡは、キャッシュ１１０内のトラックの表示を組織化するための他のタイプのリストを備え得る。
【００３２】
ストレージ・マネージャ１２２、キャッシュ・マネージャ１２４、第１のキャッシュ削除アルゴリズム１３０１、および第２のキャッシュ削除アルゴリズム１３０２、第１の機械学習モジュール１３２１、および第２の機械学習モジュール１３２２は、図１ではメモリ１０８にロードされ、プロセッサ１０６によって実行されるプログラム・コードとして示される。代替として、機能のいくつかまたはすべては、特定用途向け集積回路（ＡＳＩＣ）など、システム１００内のハードウェア・デバイスにおいて実施されることができ、または別個の専用のプロセッサによって実行され得る。
【００３３】
ストレージ１０４は、固体エレクトロニクスから構成されるソリッド・ステート・ストレージ・デバイス（ＳＳＤ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブル読み出し専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）ドライブ、ストレージ・クラス・メモリ（ＳＣＭ）、相変化メモリ（ＰＣＭ）、抵抗変化型ランダム・アクセス・メモリ（resistive random access memory）（ＲＲＡＭ）、スピン・トランスファー・トルク・メモリ（ＳＴＭ−ＲＡＭ）、導電性ブリッジＲＡＭ（ＣＢＲＡＭ）、磁気ハード・ディスク・ドライブ、光ディスク、テープなど、当技術分野で知られている１つまたは複数のストレージ・デバイスを備えることができる。ストレージ・デバイスはさらに、単純ディスク束（ＪＢＯＤ）、直接アクセス・ストレージ・デバイス（ＤＡＳＤ）、独立ディスク冗長アレイ（ＲＡＩＤ）アレイ、仮想化デバイスなど、デバイスのアレイに構成され得る。さらにストレージ・デバイスは、異なるベンダからの、または同じベンダからの異種のストレージ・デバイスを備え得る。
【００３４】
メモリ１０８は、上述のものを含む適切な揮発性または不揮発性メモリ・デバイスを備え得る。
【００３５】
ある特定の実施形態において、アクティブ・キャッシュ１１０は、ストレージ１０４から直ちにトラックを記憶するためのキャッシュを備え得る。代替の実施形態において、複数のキャッシュ削除アルゴリズム１３０１、１３０２、および機械学習モジュール１３２１、１３２２を用いた本明細書で述べられるキャッシュ削除技術は、Ｌ１およびＬ２キャッシュ、ラスト・レベル・キャッシュ、およびシステム１００内の他のキャッシュなど、プロセッサ・キャッシュからトラックを削除するために用いられ得る。
【００３６】
ネットワーク１２０は、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、およびイントラネットなどを備え得る。
【００３７】
図２は、キャッシュ１１０に直近に追加された、またはキャッシュ１１０内で直近にアクセスされたトラックを識別する直近使用（ＭＲＵ）端部２０２と、それからＬＲＵ端部２０４において識別されたトラックがキャッシュ１１０から降格させるように選択される最長時間未使用（ＬＲＵ）端部２０４とを有するものとして、ＬＲＵキャッシュ・リスト２００Ａおよび２００ＩＡなどの、ＬＲＵリスト２００ｉの１つの実施形態を示す。ＬＲＵ端部２０４は、そのリスト２００Ａ内に示されるトラックに対して最も長くキャッシュ１１０内にあったトラックの、トラックに対するトラック識別子アドレスまたはキャッシュ制御ブロック・インデックスなどの、トラック識別子を指し示す。非アクティブ・キャッシュＬＲＵリスト２００ＩＡは、キャッシュ１１０から降格されたトラックを示す。
【００３８】
図３は、アクティブ・キャッシュ１１０内のトラックの１つに対するキャッシュ制御ブロック３００ｉの実施形態を示し、これはキャッシュ制御ブロック３００ｉのインデックス値などのキャッシュ制御ブロック識別子３０２と、ストレージ１０４内のトラックのトラックＩＤ３０４と、キャッシュ制御ブロック３００ｉがその中に示されるキャッシュＬＲＵリスト３０６と、トラックがそこに示されるＬＲＵリスト・エントリ３０８と、トラックがキャッシュ１１０に追加され、ＬＲＵリスト３０４に示された時間を示すキャッシュ・タイムスタンプ３１０と、トラック３０４が、トラックがアクティブ・キャッシュ１１０内にあった間にアクセスされた回数を示す頻度カウンタ３１２とを含むが、それらに限定されない。非アクティブ・キャッシュＬＲＵリスト２００ＩＡ上にある間、非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内に示されるトラックが、アクティブ・キャッシュＬＲＵリスト２００Ａに戻されない限り、頻度カウンタ３１２は更新されないようになる。
【００３９】
図４は、１つの時間間隔に対して収集される、時間間隔キャッシュ統計値４００の実施形態を示す。キャッシュ・マネージャ１２４は、キャッシュ動作の間の大きな期間内の時間間隔に対してキャッシュ・アクセス統計値を収集することができる。時間間隔キャッシュ・アクセス統計値４００ｉは、ヒットとミスとの比率としてヒットの数を示すキャッシュ・ヒット対ミス比率４０２と、トラックによって費やされるキャッシュの量のキャッシュ・サイズ４０４とを含む。他の統計値も収集され得る。
【００４０】
図５Ａおよび図５Ｂは、ホスト１１８からの読み出し要求に戻るためにストレージ１０４からステージするためのトラックのためにキャッシュ１１０内に余地を作るように、キャッシュ１１０から削除するトラックを選択するのに用いるキャッシュ削除アルゴリズム１３０１および１３０２を決定するために機械学習モジュール１３２１および１３２２を用いるように、キャッシュ・マネージャ１２４によって行われる動作の実施形態を示す。（ブロック５００で）読み出し要求を受信するとすぐに、（ブロック５０２で）読み出すべき要求トラックがアクティブ・キャッシュＬＲＵリスト２００Ａにある場合、要求トラックに対するエントリ２００ＲＴは、（ブロック５０４で）アクティブ・キャッシュＬＲＵリスト２００ＡのＭＲＵ端部２０２に移動される。要求トラック（ＲＴ）に対するキャッシュ制御ブロック３００ＲＴは、頻度カウンタ３１２をインクリメントし、ＭＲＵ端部２０２を示すようにＬＲＵリスト・エントリ３０８を更新するように、（ブロック５０６で）更新される。キャッシュされた要求トラックは、（ブロック５０８で）キャッシュ１１０から、トラックを要求するホスト１１８に返される。
【００４１】
（ブロック５０２で）トラックがキャッシュ１１０内にない場合、および（ブロック５１０で）キャッシュ１１０内に要求トラックのための十分なスペースがない場合、制御はブロック５１２に進んで、削除するトラックを第１のキャッシュ削除アルゴリズム１３０１または第２のキャッシュ削除アルゴリズム１３０２によって選択するプロセスを開始する。ブロック５１２で、キャッシュ・マネージャ１２４は、第１の削除するトラックを決定するために第１のキャッシュ削除アルゴリズム１３０１（例えば、ＬＲＵ）の実行を起動し、（ブロック５１４で）第２の削除するトラックを決定するために第２のキャッシュ削除アルゴリズム１３０２（例えば、ＬＦＵ）の実行を起動する。
【００４２】
キャッシュ・マネージャ１２４は次いで（ブロック５１６で）、入力として第１の削除トラック、すなわち第１の削除するトラックと、キャッシュ統計値４００とを受信し、第１のキャッシュ削除アルゴリズム１３０１がキャッシュ１１０における読み出しヒット対ミス率を最適化する可能性を示す第１の信頼水準を出力する、第１の機械学習モジュール１３２１を実行するように起動する。キャッシュ・マネージャ１２４は（ブロック５１８で）、入力として第２の削除トラック、すなわち第２の削除するトラックと、キャッシュ統計値４００とを受信し、第２のキャッシュ削除アルゴリズム１３０２がキャッシュ１１０に対する読み出しヒット率を最適化する可能性を示す第２の信頼水準を出力する、第２の機械学習モジュール１３２２を実行するように起動する。（ブロック５２０で）第１の信頼水準が第２の信頼水準より大きい場合、キャッシュ・マネージャ１２４は（ブロック５２２で）、第１の機械学習モジュール１３２１によって選択された、第１の削除トラックをキャッシュ１１０から削除する。そうでない場合、（ブロック５２０で）第２の信頼水準がより大きい場合、（ブロック５２４で）第２の機械学習モジュール１３２２によって選択された、第２の削除トラックがキャッシュ１１０から削除される。
【００４３】
キャッシュ１１０からトラックを削除するブロック５１２〜５２４での動作はまた、まだキャッシュ内にないトラックへの書き込み要求のために、キャッシュ１１０に余地を解放するために用いられ得る。
【００４４】
図５Ｂに関して、（ブロック５２２または５２４で）トラックが削除された後、（ブロック５２６で）要求トラックが非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内に示される場合、非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内の要求トラック２００ＲＴに対するエントリは、（ブロック５２８で）アクティブ・キャッシュＬＲＵリスト２００ＡのＭＲＵ端部２０２に移動される。要求トラックのためのキャッシュ制御ブロック３００ＲＴは（ブロック５３０で）、頻度カウンタ３１２をインクリメントし、アクティブＬＲＵキャッシュ・リスト２００Ａを示すようにキャッシュＬＲＵリスト３０６を更新し、およびＭＲＵ端部２０２を示すようにＬＲＵリスト・エントリ３０８を更新するように、更新される。
【００４５】
（ブロック５２６で）要求トラックが非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内にない場合、キャッシュ・マネージャ１２４は、（ブロック５３２で）要求トラックのためにアクティブ・キャッシュＬＲＵリスト２００ＡのＭＲＵ端部２０２にエントリを追加し、（ブロック５３４で）頻度カウンタ３１２が１の状態で、要求トラックのためのキャッシュ制御ブロック３００ＲＴを作成し、キャッシュ制御ブロック３００ＲＴのフィールド３０６および３０８内にそれぞれアクティブ・キャッシュＬＲＵリスト２００ＡおよびＭＲＵ端部２０２を示す。（ブロック５３６で）非アクティブ・キャッシュＬＲＵリスト２００ＩＡが一杯である場合、（ブロック５３８で）非アクティブ・キャッシュＬＲＵリスト２００ＩＡのＬＲＵ端部２０４でのエントリが除去される。（ブロック５３６で）非アクティブ・キャッシュＬＲＵリスト２００ＩＡが一杯でない場合、または（ブロック５３８で）エントリが除去された後、キャッシュ・マネージャ１２４は（ブロック５４０で）、削除されたトラックを非アクティブ・キャッシュＬＲＵリスト２００ＩＡのＭＲＵ端部２０２に示し、キャッシュ制御ブロック３００ＥＴのフィールド３０６および３０８内にそれぞれ非アクティブ・キャッシュＬＲＵリスト２００ＩＡおよびＭＲＵ端部２０２を示すように、削除されたトラック（ＥＴ）のためのキャッシュ制御ブロック３００ＥＴを更新する。
【００４６】
ブロック５４０または５３０から、要求トラックは（ブロック５４２で）キャッシュ１１０にステージされ、要求するホスト１１８に返される。（ブロック５４４で）制御は次いで図６に進んで、要求トラックに対する読み出しミスに対して調整するように、機械学習アルゴリズム１３２１、１３２２を再訓練する。
【００４７】
（ブロック５１０で）要求トラックがキャッシュ１１０になく、要求トラックのためにキャッシュ１１０内にスペースがある場合、（ブロック５４６で）キャッシュ・マネージャ１２４は、要求トラックが非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内にあるまたはない状況に対して、アクティブＬＲＵキャッシュ・リスト２００ＡのＭＲＵ端部２０２に要求トラックが示されるように、ブロック５２６から５３４での動作を行う。キャッシュ・マネージャ１２４は次いで、（ブロック５４８で）図５Ｂのブロック５４２に進んで、要求トラックをキャッシュ１１０内にステージし、キャッシュ・ミスに対処するように機械学習モジュール１３２１、１３２２を再訓練する。
【００４８】
図５Ａおよび図５Ｂの実施形態について、機械学習アルゴリズムは、削除するトラックを選択することに対して最も高い信頼水準を有するキャッシュ削除アルゴリズムが、削除するトラックを選択するために用いられるように、異なるキャッシュ削除アルゴリズムに対する信頼水準を決定するために用いられ、ここで信頼水準は、キャッシュ・ミスを最小化する、またはキャッシュ・ヒットを最大化するようになるキャッシュ・ヒット対ミス比率を最適化するように、キャッシュ削除アルゴリズムが削除するトラックを選択する可能性を示す。
【００４９】
図６は、要求トラックに対して読み出しミスがある場合に、機械学習モジュール１３２１、１３２２予測アルゴリズムを再訓練するために、機械学習モジュール１３２１および１３２２、またはキャッシュ・マネージャ１２４などの別の構成要素によって行われる動作の実施形態を示す。（ブロック６００で）機械学習アルゴリズム１３２１、１３２２を再訓練する動作を開始するとすぐに、（ブロック６０２で）第１の機械学習モジュール１３２１は、非アクティブ・キャッシュ・リスト内の要求トラックに関する第１の情報に基づいて、例えば、非アクティブ・キャッシュ・リスト内の要求トラックの位置に基づいて、修正された第１の信頼水準を決定する。一実施形態において、第１のキャッシュ削除アルゴリズム１３０１がＬＲＵ削除アルゴリズムを備える場合、第１の信頼水準は、要求トラックが、非アクティブＬＲＵキャッシュ・リスト２００ＩＡのＭＲＵ端部２０２に、ＬＲＵ端部２０４と比べてより近いことに応答して増加され、これはキャッシュ・ミスが非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内で比較的高かったトラックに対するものあったことを意味する。要求トラックが、ＭＲＵ端部２０２よりＬＲＵ端部２０４に近い場合、第１の信頼水準は減少されてよく、なぜなら非アクティブＬＲＵキャッシュ・リスト２００ＩＡに記録されたトラックの平均より低いレベルでトラックがアクセスされるからである。
【００５０】
（ブロック６０４で）第２の機械学習モジュール１３２２は、非アクティブ・キャッシュ・リスト内の要求トラックに関する第２の情報に基づいて、例えば、非アクティブ・キャッシュ・リスト内の要求トラックの頻度カウンタ３１２に基づいて、修正された第２の信頼水準を決定する。第２のキャッシュ削除アルゴリズム１３０２が、頻度カウンタ３１２に基づいて、最低使用頻度トラックを削除するためにＬＦＵアルゴリズムを備える実施形態において、第２の信頼水準は、要求トラックの頻度カウンタ値が、非アクティブ・キャッシュ・リスト内のトラックの頻度カウンタ値の平均より大きいことに応答して増加され、これは、要求トラックが平均より大きな頻度カウンタ値を有することを考えれば、ＬＦＵ削除アルゴリズムはより良好な結果を生じるようになることを意味する。第２の信頼水準は、要求トラックの頻度カウンタ値が、非アクティブ・キャッシュ・リスト内のトラックの頻度カウンタ値の平均より小さいことに応答して減少されてよく、なぜならこのような場合、平均より小さな頻度カウンタ３１２を有する、要求トラックに対してＬＦＵ削除アルゴリズムは良好な削除結果を生じないようになるからであり、要求トラックはアクセス・プレディクタ（access predictor）の頻度に基づく選択に対して適格なトラックとなる可能性が低いこと意味する。
【００５１】
修正された第１および第２の信頼水準を決定した後、機械学習モジュール１３２１、１３２２は次いでそれらの値を用いて、結果としてキャッシュ・ミスを生じた要求トラックに対して、修正された第１および第２の信頼水準を生じるように、第１の機械学習モジュール・アルゴリズム１３２１および第２の機械学習モジュール・アルゴリズム１３２２をそれぞれ再訓練することができる。（ブロック６０６で）第１の機械学習モジュール１３２１は、入力として要求トラックとキャッシュ統計値４００とを用いて、要求トラックに対する修正された第１の信頼水準を生じるように、誤差範囲を低減するように逆伝搬を用いて隠れ層のノードでの重みおよび偏りなど、第１の機械学習モジュール１３２１アルゴリズムを再訓練することができる。（ブロック６０８で）第２の機械学習モジュール１３２２はさらに、入力として要求トラックとキャッシュ統計値とを用いて、要求トラックに対する修正された第２の信頼水準を生じるために、第２の機械学習モジュール１３２２を再訓練する。
【００５２】
機械学習モジュール１３２１または１３２２予測アルゴリズムあるいはその両方がニューラル・ネットワークを備える実施形態において、キャッシュ・マネージャ１２４は、修正された第１および第２の信頼水準を生じるように、機械学習モジュールを再訓練するために、逆方向伝搬ルーチンを起動することができる。ベイズ・モデルなど、他のタイプの機械学習アルゴリズムに対しては、入力に基づいて修正された信頼水準を生じるように、機械学習モジュール１３２１、１３２２を再訓練するために、他の技術が用いられ得る。
【００５３】
図６の実施形態について、機械学習モジュール１３２１、１３２２は、読み出しミスに応答して、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の要求トラックの位置と、要求トラックに対する頻度カウンタ値とを含む、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内に保持された要求トラックへのアクセスに関する情報を用いて、ミスとなったトラックに対して生成された信頼水準を調整することによって、再訓練される。これは、要求トラックに対するすぐ前のキャッシュ・ミスに関する情報に基づいて、機械学習アルゴリズム１３２１、１３２２の予測可能性を改善するためのリアル・タイム調整を可能にして、結果としてミスを生じた要求トラックのために余地を作るために、トラックからトラックを削除するためのキャッシュ削除アルゴリズムを選択することにおいて、機械学習アルゴリズムの予測可能性を改善する。
【００５４】
図７は、第１の削除アルゴリズムが、図６のブロック６０６で行われるようなＬＲＵアルゴリズムを備えるとき、修正された第１の信頼水準を計算するために、第１の機械学習モジュール１３２１、またはキャッシュ・マネージャ１２４などの他の構成要素によって行われる動作の実施形態を示す。（ブロック７００で）修正された第１の信頼水準を計算する動作を開始するとすぐに、（ブロック７０２で）要求トラックがＬＲＵ端部２０４よりＭＲＵ端部２０２に近い、すなわち最近の平均より良好なアクセスを有する場合、（ブロック７０４で）第１の機械学習モジュール１３２１は、正の誤差範囲を下記に等しいものとして計算する。
（非アクティブ・キャッシュ・リスト内の要求トラックの位置−（非アクティブ・キャッシュ・リスト・サイズ／２））／（非アクティブ・キャッシュ・リスト・サイズ／２）
（ブロック７０６で）第１の機械学習モジュール１３２１は、例えば、第１の信頼水準に（１＋正の誤差範囲）を乗算することによって、より高い修正された第１の信頼水準を生じるように、正の範囲だけ第１の信頼水準を増加させる。
【００５５】
（ブロック７０２で）要求トラックがＬＲＵ端部２０４により近い場合、（ブロック７０８で）第１の機械学習モジュール１３２１は、負の誤差範囲を下記に等しいものとして、計算する。
（（非アクティブ・キャッシュ・リスト・サイズ／２）−非アクティブ・キャッシュ・リスト内の要求トラックの位置）／（非アクティブ・キャッシュ・リスト・サイズ／２）
（ブロック７１０で）第１の機械学習モジュール１３２１は、より低い修正された第１の信頼水準を生じるように、負の範囲だけ第１の信頼水準を低減する、例えば、第１の信頼水準に（１−負の誤差範囲）を乗算する。
【００５６】
図７の動作の実施形態について、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の要求トラックの位置は、結果としてキャッシュ・ミスを生じる要求トラックが、非アクティブＬＲＵキャッシュ・リスト２００ＩＡの上半分または下半分に存在する程度に基づいて、第１の信頼水準に対する誤差範囲を決定するために用いられる。要求トラックが非アクティブＬＲＵキャッシュ・リスト２００ＩＡの上半分にある場合、要求トラックは非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の平均のトラックより最近にアクセスされており、従ってＬＲＵ削除アルゴリズムは要求トラックに対して、より高い信頼水準を生じるべきであり、すなわち、より最近にアクセスされたということは読み出しヒットを有する可能性がより高いことを意味する。要求トラックが非アクティブＬＲＵキャッシュ・リスト２００ＩＡの下半分にある場合、要求トラックは、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の平均のトラックより最近にはアクセスされておらず、従ってＬＲＵ削除アルゴリズムは、より最近にはアクセスされていない要求トラックに対して、より低い信頼水準を生じるべきであり、これはキャッシュ・ミスを低減する可能性が低い。
【００５７】
図８は、第２の削除アルゴリズム１３０２が、図６のブロック６０８で行われるような、ＬＦＵアルゴリズムを備えるとき、修正された第２の信頼水準を計算するために、第２の機械学習モジュール１３２２、またはキャッシュ・マネージャ１２４などの他の構成要素によって行われる動作の実施形態を示す。（ブロック８００で）修正された第２の信頼水準を計算する動作を開始するとすぐに、（ブロック８０２で）要求トラック頻度カウンタ３１２が、非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内のトラックに対する頻度カウンタ値３１２の平均より大きい場合、（ブロック８０４で）第２の機械学習モジュール１３２２は、正の誤差範囲を下記に等しいものとして計算する。
（要求トラックの頻度カウント値−頻度カウンタ値の平均）／（非アクティブ・キャッシュ・リスト内の頻度カウンタ値の最大頻度カウンタ値−頻度カウンタ値の平均）
（ブロック８０６で）第２の機械学習モジュール１３２２は、より高い修正された第２の信頼水準を生じるように、正の範囲だけ第２の信頼水準を増加させる、例えば、第２の信頼水準に（１＋正の誤差範囲）を乗算する。
【００５８】
（ブロック８０２で）要求トラック頻度カウンタ３１２が、非アクティブ・キャッシュＬＲＵリスト２００ＩＡ内のトラックに対する頻度カウンタ値３１２の平均より小さい場合、（ブロック８０８で）第２の機械学習モジュール１３２２は、負の誤差範囲を下記に等しいものとして計算する。
（頻度カウンタ値の平均−要求トラックの頻度カウント値）／（非アクティブ・キャッシュ・リスト内の頻度カウンタ値の最大頻度カウンタ値−頻度カウンタ値の平均）
（ブロック８１０で）第２の機械学習モジュール１３２２は、より低い修正された第２の信頼水準を生じるように、例えば、第２の信頼水準に（１−負の誤差範囲）を乗算するように、第２の信頼水準を負の範囲だけ減少させる。
【００５９】
図８の動作の実施形態について、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の要求トラックのアクセス頻度の位置は、結果としてキャッシュ・ミスを生じる要求トラックが、平均アクセス頻度より大きいまたは小さい程度に基づいて、第２の信頼水準に対する誤差範囲を決定するために用いられる。要求トラックが、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の平均より大きなアクセス頻度を有する場合、要求トラックは、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の殆どのトラックより大きな頻度でアクセスされており、従ってＬＦＵ削除アルゴリズムは要求トラックに対して、より高い信頼水準、すなわち、より多くの読み出しヒットを生じるべきである。要求トラックが、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内のトラックの平均より低いアクセス頻度を有する場合、要求トラックは、非アクティブＬＲＵキャッシュ・リスト２００ＩＡ内の平均のトラックより低い頻度でアクセスされており、従ってＬＦＵ削除アルゴリズムは、低い頻度でアクセスされる要求トラックに対して、より低い信頼水準を生じるべきであり、より良好なキャッシュ・ヒット対ミス比率に寄与しない。
【００６０】
述べられる実施形態において、変数「Ｉ」などは、異なる要素と共に用いられるとき、その要素の同じまたは異なる事例を意味し得る。
【００６１】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに遂行させるためのコンピュータ可読プログラム命令を有する、（１つまたは複数の）コンピュータ可読記憶媒体を含むことができる。
【００６２】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を維持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、非限定的に、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁的ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピ・ディスク、パンチカードまたはその上に記録された命令を有する溝内の隆起構造などの機械的エンコード型デバイス、および前述の任意の適切な組合せを含む。本明細書で用いられる、コンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または線材を通して伝送される電気信号など、それ自体が一過性の信号であると解釈されるべきではない。
【００６３】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはその組合せを通じて外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを備えることができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【００６４】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋（Ｒ）などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様なプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または専らリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通して、ユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る（例えば、インターネット・サービス・プロバイダを用いてインターネットを通して）。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を行うために、電子回路を個人向けにするようにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【００６５】
本発明の態様は本明細書において、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【００６６】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置によって実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能／働きを実施するための手段を作成するように、マシンを生み出すために汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置の、プロセッサにもたらされ得る。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックにおいて規定された機能／働きの態様を実施する命令を含んだ製造品を備えるように、特定のやり方で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに指示することができるコンピュータ可読記憶媒体に記憶され得る。
【００６７】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能／働きを実施するべく、コンピュータによって実施されるプロセスを生み出すように、一連の動作ステップがコンピュータ、他のプログラマブル装置、または他のデバイス上で行われるようにさせるために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ得る。
【００６８】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備えるモジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替の実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば、連続して示される２つのブロックは、実際は実質的に並行して実行されることができ、またはブロックは時には関わる機能性に応じて、逆の順序で実行され得る。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または働きを行う、または専用ハードウェアおよびコンピュータ命令の組合せを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【００６９】
ホスト１１８およびコンピューティング・システム１００を含む図１の計算構成要素は、図９に示されるコンピュータ・システム９０２などの、１つまたは複数のコンピュータ・システムにおいて実施され得る。コンピュータ・システム／サーバ９０２は、コンピュータ・システムによって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令との一般的な関連において述べられ得る。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ・タイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体などを含むことができる。コンピュータ・システム／サーバ９０２は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる、分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモートの両方のコンピュータ・システム記憶媒体内に位置し得る。
【００７０】
図９に示されるように、コンピュータ・システム／サーバ９０２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ９０２の構成要素は、１つまたは複数のプロセッサまたは処理ユニット９０４、システム・メモリ９０６、およびシステム・メモリ９０６を含む様々なシステム構成要素をプロセッサ９０４に結合するバス９０８を含み得るが、それらに限定されない。バス９０８は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、およびアクセラレイテッド・グラフィックス・ポート、および多様なバス・アーキテクチャのいずれかを用いたプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの１つまたは複数を表す。例として限定せずに、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含む。
【００７１】
コンピュータ・システム／サーバ９０２は通常、多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ９０２によってアクセス可能な任意の入手可能な媒体とすることができ、これは揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方を含む。
【００７２】
システム・メモリ９０６は、ランダム・アクセス・メモリ（ＲＡＭ）９１０またはキャッシュ・メモリ９１２あるいはその両方などの、揮発性メモリの形でのコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ９０２はさらに、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ・システム記憶媒体を含み得る。例のみとして、ストレージ・システム９１３には、非リムーバブル、不揮発性磁気媒体（図示されず、通常「ハード・ドライブ」と呼ばれる）からの読み出しおよびそれへの書き込みがもたらされ得る。図示されないが、リムーバブル、不揮発性磁気ディスク（例えば、「フロッピ・ディスク」）からの読み出しおよびそれへの書き込みのための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などのリムーバブル、不揮発性光ディスクからの読み出しまたはそれへの書き込みのための光ディスク・ドライブがもたらされ得る。このような場合、それぞれは１つまたは複数のデータ媒体インターフェースによって、バス９０８に接続され得る。以下でさらに示され述べられるように、メモリ９０６は、本発明の実施形態の機能を遂行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含み得る。
【００７３】
プログラム・モジュール９１６のセット（少なくとも１つ）を有する、プログラム／ユーティリティ９１４は、例としておよび限定せずに、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ９０６に記憶され得る。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せは、ネットワーキング環境の実装形態を含み得る。コンピュータ９０２の構成要素は、本明細書で述べられる本発明の実施形態の機能または方法論あるいはその両方を一般に遂行するプログラム・モジュール９１６として実施され得る。図１のシステムは１つまたは複数のコンピュータ・システム９０２において実施されることができ、それらが複数のコンピュータ・システム９０２において実施される場合、コンピュータ・システムはネットワークを通して通信することができる。
【００７４】
コンピュータ・システム／サーバ９０２はまた、キーボード、ポインティング・デバイス、ディスプレイ９２０などの１つまたは複数の外部デバイス９１８、ユーザがコンピュータ・システム／サーバ９０２と対話することを可能にする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ９０２が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）あるいはその組合せと、通信することができる。このような通信は、入出力（Ｉ／Ｏ）インターフェース９２２を通じて生じ得る。さらにコンピュータ・システム／サーバ９０２は、ネットワーク・アダプタ９２４を通じて、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えば、インターネット）あるいはその組合せなど、１つまたは複数のネットワークと通信することができる。示されるようにネットワーク・アダプタ９２４は、バス９０８を通じてコンピュータ・システム／サーバ９０２の他の構成要素と通信する。図示されないが、コンピュータ・システム／サーバ９０２と共に、他のハードウェアまたはソフトウェア構成要素あるいはその両方が用いられ得ることが理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどを含むが、それらに限定されない。
【００７５】
「実施形態（an embodiment、embodiment、embodiments、the embodiment、the embodiments）」、「１つまたは複数の実施形態（one or more embodiments）」、「いくつかの実施形態（some embodiments）」、および「一実施形態（one embodiment）」という用語は、明示的な別段の規定がない限り、「本発明の１つまたは複数（すべてではない）の実施形態」を意味する。
【００７６】
「含む（including）」、「備える（comprising）」、「有する（having）」という用語およびそれらの変形は、明示的な別段の規定がない限り、「非限定的に含む」ことを意味する。
【００７７】
項目の列挙されたリストは、明示的な別段の規定がない限り、項目のいずれかまたはすべてが互いに排他的であることを示唆しない。
【００７８】
「ａ」、「ａｎ」、および「ｔｈｅ」という用語は、明示的な別段の規定がない限り、「１つまたは複数」を意味する。
【００７９】
互いに通信するデバイスは、明示的な別段の規定がない限り、互いに連続して通信する必要はない。加えて、互いに通信するデバイスは直接、または１つまたは複数の仲介物を通して間接に通信し得る。
【００８０】
互いに通信するいくつかの構成要素を有する実施形態の説明は、すべてのそのような構成要素が必要であることを示唆しない。これに対して、本発明の多様な可能な実施形態を示すように、多様な任意選択の構成要素が述べられる。
【００８１】
本明細書において単一のデバイスまたは物品が述べられるとき、２つ以上のデバイス／物品（それらが協働するか否かに関わらず）が、単一のデバイス／物品の代わりに用いられ得ることが容易に明らかになるであろう。同様に、本明細書において２つ以上のデバイスまたは物品（それらが協働するか否かに関わらず）が述べられる場合、２つ以上のデバイスまたは物品の代わりに単一のデバイス／物品が用いられることができ、または示される数のデバイスまたはプログラムの代わりに、異なる数のデバイス／物品が用いられ得ることが容易に明らかになるであろう。デバイスの機能性または特徴あるいはその両方は、そのような機能性／特徴を有するものとして明示的に述べられない１つまたは複数の他のデバイスによって代替として具体化され得る。従って、本発明の他の実施形態は、デバイス自体を含む必要はない。
【００８２】
上記の本発明の様々な実施形態の説明は、例示および説明のために提示された。網羅的であること、または本発明を厳密な開示された形に限定することを意図するものではない。上記の教示に照らして、多くの修正形態および変更形態が可能である。本発明の範囲はこの詳細な説明によってではなく、添付の「特許請求の範囲」によって限定されるものである。上記の仕様、例、およびデータは、本発明の構成の製造および使用の完全な説明をもたらす。本発明の多くの実施形態は本発明の範囲から逸脱せずに実施され得るので、本発明は、本明細書の後に添付された「特許請求の範囲」に属する。
【図１】
2021524078.tif 000003
【図２】
2021524078.tif 000004
【図３】
2021524078.tif 000005
【図４】
2021524078.tif 000006
【図５Ａ】
2021524078.tif 000007
【図５Ｂ】
2021524078.tif 000008
【図６】
2021524078.tif 000009
【図７】
2021524078.tif 000010
【図８】
2021524078.tif 000011
【図９】
2021524078.tif 000012
【手続補正書】
【提出日】令和3年7月14日(2021.7.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
図１は２つのキャッシュ削除アルゴリズムおよび２つの機械学習モジュールを示すが、さらなる実施形態において、２つのキャッシュ削除アルゴリズムおよび２つの機械学習モジュールより多くが存在し得る。さらに、キャッシュ削除アルゴリズム１３０１、１３０２のそれぞれに対する信頼水準を決定するための別個の機械学習モジュール１３２１、１３２２の代わりに、キャッシュ削除アルゴリズム１３０１、１３０２によって選択される削除するトラックの入力、およびキャッシュ統計値４００に基づいて、用いるキャッシュ削除アルゴリズムを選択するために１つの機械学習モジュール１３２が用いられ得る。
【国際調査報告】
2021524078.tif 000013
2021524078.tif 000014