【手続補正書】
【提出日】令和3年3月17日(2021.3.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フロントエンドメモリからエビクション（ｅｖｉｃｔｉｏｎ、放逐）のために、データの複数のキャッシュラインからエビクションするキャッシュラインを選択する方法において，
キャッシュの複数のウェー（ｗａｙ）のそれぞれのウェーにベースライン交替点数を割り当てるステップと、
ここで、前記ウェーのそれぞれはキャッシュラインを格納し、
加重されたベースライン交替点数を生成するために、第１の加重ファクターをベースライン交替点数に割り当てるステップと、
それぞれのウェーに格納された前記キャッシュラインの有効性の程度（ｄｅｇｒｅｅ）に基づいてそれぞれのウェーに有効性点数を割り当てるステップと、
加重された有効性点数を生成するために、前記有効性点数に第２の加重ファクターを割り当てるステップと、
前記ウェーに対する前記加重されたベースライン交替点数及び前記ウェーに対する前記加重された有効性点数に基づいて、それぞれのウェーに対するエビクション決定点数を割り当てるステップと、
最も高いエビクション決定点数を有するウェーのキャッシュラインをエビクションのためのキャッシュラインに選択するステップと、を含むことを特徴とする、方法。
【請求項２】
前記ベースライン交替点数は、前記ウェーのキャッシュラインの使用の最新性又は前記ウェーの前記キャッシュラインの使用の頻度に対応することを特徴とする、請求項１に記載の方法。
【請求項３】
ＤＲＡＭから前記エビクションのために選択されたキャッシュラインをエビクションするステップをさらに含むことを特徴とする、請求項１に記載の方法。
【請求項４】
使用者入力によって、前記有効性点数に対応する前記第２の加重ファクター又は前記ベースライン交替点数に対応する前記第１の加重ファクターのうち、いずれか１つを調節するステップをさらに含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記ベースライン交替点数は乱数点数であり、
乱数発生器によって、前記乱数点数を発生するステップをさらに含むことを特徴とする、請求項１に記載の方法。
【請求項６】
それぞれのキャッシュラインの有効ビットを読み込むことによって前記有効性点数を判別するステップと、
前記それぞれのキャッシュラインの有効なビットの累積記録を実行するステップと、をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記エビクションのために選択されたキャッシュラインをエビクションするステップをさらに含むことを特徴とする、請求項１に記載の方法。
【請求項８】
メモリモジュールで予め読み込み動作を具現するためのメモリキャッシュコントローラーにおいて、
前記メモリキャッシュコントローラーは、
バックエンドメモリへの未処理要請（ｏｕｔｓｔａｎｄｉｎｇ  ｒｅｑｕｅｓｔｓ）の数がバックエンドメモリの臨界値（ｔｈｒｅｓｈｏｌｄ  ｎｕｍｂｅｒ）を満たしているかどうかに基づいて、バックエンドメモリがビジー（Ｂｕｓｙ）状態であるかどうかを判別し、
フロントエンドメモリへの未処理要請の数がフロントエンドメモリの臨界値を満たすことに基づいて、フロントエンドメモリがビジーであるかどうかを判別し、
前記バックエンドメモリ及び前記フロントエンドメモリの内のいずれもビジー状態ではないと判別されたことに少なくとも部分的に基づいて、書き込みバッファセットカウンタに基づいて、書き込みバッファの書き込みバッファメタデータにインデックスを付け、
前記書き込みバッファの有効なビットを読み込み、
前記書き込みバッファの全てのキャッシュラインが完全に有効であるかの有無を判別し、
前記書き込みバッファの全てのキャッシュラインが完全に有効なものと判別されたことを確認して、前記書き込みバッファセットカウンタを１増加させ、
前記書き込みバッファの全てのキャッシュラインよりも少ない数が完全に有効なものであると判断されたことを確認し、
エビクション（ｅｖｉｃｔｉｏｎ）のための交替ラインとして、完全に有効ではない前記書き込みバッファのキャッシュラインを選択し、
この時、前記キャッシュラインは、前記フロントエンドメモリへの未処理要請の数が前記フロントエンドメモリの臨界値（第１の臨界値）を満たしているかどうか、及び前記バックエンドメモリへの未処理要請の数が前記バックエンドメモリの臨界値（第２の臨界値）を満たしているかどうかを判別することに基づいて選択され、
前記バックエンドメモリから前記交替ラインを予め読み込み、
前記書き込みバッファセットカウンタを１増加させるように構成されることを特徴とする、メモリキャッシュコントローラー。
【請求項９】
メモリモジュールを用いて読み込み−修正−書き込み動作を行う方法において、
前記方法は、
バックエンドメモリが未処理のバックエンドワークロード（ｂａｃｋｅｎｄ  ｗｏｒｋｌｏａｄ）によって占有されるバックエンドの程度（ｄｅｇｒｅｅ）を決定するステップと、
ここで、前記バックエンドの程度は、バックエンドメモリへの未処理要請の数に対応し、
フロントエンドメモリが未処理のフロントエンドワークロード（ｆｒｏｎｔｅｎｄ  ｗｏｒｋｌｏａｄ）によって占有されるフロントエンドの程度を決定するステップと、
ここで、前記フロントエンドの程度は、フロントエンドメモリへの未処理要請の数に対応し、
前記バックエンドの程度と前記フロントエンドの程度に少なくとも部分的に基づいて、予め読み込み動作を実行するステップと、
書き込みバッファのキャッシュラインの有効性と、前記フロントエンドメモリへの未処理要請の数が前記フロントエンドメモリの臨界値（第１の臨界値）を満たしていないことと、前記バックエンドメモリへの未処理要請の数が前記バックエンドメモリの臨界値（第２の臨界値）を満たしていないこと、とに基づいて、いずれのキャッシュラインを予め読み込みを行うかを決定するステップと、を有することを特徴とする、方法。
【請求項１０】
前記予め読み込み動作を実行するステップは、前記バックエンドメモリのメディアコントローラーに伝送された前記未処理要請を追跡するためのＭＳＨＲ（Ｍｉｓｓ  Ｓｔａｔｕｓ  Ｈａｎｄｌｉｎｇ  Ｒｅｇｉｓｔｅｒ）を維持するステップを含むことを特徴とする、請求項９に記載の方法。
【請求項１１】
前記バックエンドメモリのメディアコントローラーに伝送された未処理要請が臨界値を満たさないことを判別し、読み込み要求を前記バックエンドメモリに送信して前記予め読み込み動作を実行するステップをさらに有する、ことを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記臨界値は、前記バックエンドメモリの特性に基づくことを特徴とする、請求項１１に記載の方法。
【請求項１３】
動作条件に基づいて、前記臨界値を調節するステップをさらに有することを特徴とする、請求項１１に記載の方法。
【請求項１４】
前記書き込みバッファのキャッシュラインの有効性に基づいて、いずれのキャッシュラインを予め読み込みを行うかを決定するステップは、前記書き込みバッファの有効ビットを読み込むステップを含むことを特徴とする、請求項９に記載の方法。
【請求項１５】
前記書き込みバッファの有効ビットを読み込むステップは、
前記フロントエンドメモリのキャッシュ内のデータのセットを選択するステップと、
前記セットのそれぞれのラインを個別的に選択するステップと、
それぞれの選択されたラインのデータの有効性を検査するステップと、を含むことを特徴とする、請求項１４に記載の方法。
【請求項１６】
ベースライン交替点数及びデータ有効点数に基づいて、エビクションのためのデータの前記セット内のキャッシュラインを選択するステップをさらに有することを特徴とする、請求項１５に記載の方法。
【請求項１７】
前記フロントエンドメモリのコントローラー内のトランザクションキューをモニタリングするステップをさらに有し、
前記フロントエンドメモリの程度は、前記トランザクションキューに対応することを特徴とする、請求項９に記載の方法。
【請求項１８】
書き込みバッファセットインデックスをカウントするための書き込みバッファセットカウンタを維持するステップと、
前記書き込みバッファセットカウンタに基づいて、エビクションのための前記フロントエンドメモリのキャッシュ内のデータのセットのラインを選択するステップと、をさらに有することを特徴とする、請求項９に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
一部の実施例によると、フロントエンドメモリからエビクション（ｅｖｉｃｔｉｏｎ、放逐）のために、データの複数のキャッシュラインからエビクションするキャッシュラインを選択する方法が提供され、前記方法は、キャッシュの複数のウェーのそれぞれのウェーにベースライン交替点数を割り当てるステップと、ここで、前記ウェーのそれぞれはキャッシュラインを格納し、加重されたベースライン交替点数を生成するために、第１の加重ファクターをベースライン交替点数に割り当てるステップと、それぞれのウェーに格納された前記キャッシュラインの有効性の程度に基づいてそれぞれのウェーに有効性点数を割り当てるステップと、加重された有効性点数を生成するために、前記有効性点数に第２の加重ファクターを割り当てるステップと、前記ウェーに対する前記加重されたベースライン交替点数及び前記ウェーに対する前記加重された有効性点数に基づいて、それぞれのウェーに対するエビクション決定点数を割り当てるステップと、最も高いエビクション決定点数を有するウェーのキャッシュラインをエビクションのためのキャッシュラインに選択するステップと、を含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
前記方法は、使用者入力によって、前記有効性点数に対応する前記第２の加重ファクター又は前記ベースライン交替点数に対応する前記第１の加重ファクターのうち、いずれか１つを調節するステップをさらに含む。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
一部の実施例によると、メモリモジュールで予め−読み込み動作を具現するためのメモリキャッシュコントローラーが提供され、メモリキャッシュコントローラーは、バックエンドメモリへの未処理要請（ｏｕｔｓｔａｎｄｉｎｇ  ｒｅｑｕｅｓｔｓ）の数がバックエンドメモリの臨界値（ｔｈｒｅｓｈｏｌｄ  ｎｕｍｂｅｒ）を満たしているかどうかに基づいて、バックエンドメモリがビジー（Ｂｕｓｙ）状態であるかどうかを判別し、フロントエンドメモリへの未処理要請の数がフロントエンドメモリの臨界値を満たすことに基づいて、フロントエンドメモリがビジーであるかどうかを判別し、前記バックエンドメモリ及び前記フロントエンドメモリの内のいずれもビジー状態ではないと判別されたことに少なくとも部分的に基づいて、書き込みバッファセットカウンタに基づいて、書き込みバッファの書き込みバッファメタデータにインデックスを付け、前記書き込みバッファの有効なビットを読み込み、前記書き込みバッファの全てのキャッシュラインが完全に有効であるかの有無を判別し、前記書き込みバッファの全てのキャッシュラインが完全に有効なものと判別されたことを確認して、前記書き込みバッファセットカウンタを１増加させ、前記書き込みバッファの全てのキャッシュラインよりも少ない数が完全に有効なものであると判断されたことを確認し、エビクション（ｅｖｉｃｔｉｏｎ）のための交替ラインとして、完全に有効ではない前記書き込みバッファのキャッシュラインを選択し、この時、前記キャッシュラインは、前記フロントエンドメモリへの未処理要請の数が前記フロントエンドメモリの臨界値（第１の臨界値）を満たしているかどうか、及び前記バックエンドメモリへの未処理要請の数が前記バックエンドメモリの臨界値（第２の臨界値）を満たしているかどうかを判別することに基づいて選択され、前記バックエンドメモリから前記交替ラインを予め読み込み、前記書き込みバッファセットカウンタを１増加させるように構成される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
一部の実施例によると、メモリモジュールを用いて読み込み−修正−書き込み動作を行う方法が提供され、前記方法は、バックエンドメモリが未処理のバックエンドワークロード（ｂａｃｋｅｎｄ  ｗｏｒｋｌｏａｄ）によって占有されるバックエンドの程度（ｄｅｇｒｅｅ）を決定するステップと、ここで、前記バックエンドの程度は、バックエンドメモリへの未処理要請の数に対応し、フロントエンドメモリが未処理のフロントエンドワークロード（ｆｒｏｎｔｅｎｄ  ｗｏｒｋｌｏａｄ）によって占有されるフロントエンドの程度を決定するステップと、ここで、前記フロントエンドの程度は、フロントエンドメモリへの未処理要請の数に対応し、前記バックエンドの程度と前記フロントエンドの程度に少なくとも部分的に基づいて、予め読み込み動作を実行するステップと、書き込みバッファのキャッシュラインの有効性と、前記フロントエンドメモリへの未処理要請の数が前記フロントエンドメモリの臨界値（第１の臨界値）を満たしていないことと、前記バックエンドメモリへの未処理要請の数が前記バックエンドメモリの臨界値（第２の臨界値）を満たしていないこと、とに基づいて、いずれのキャッシュラインを予め読み込みを行うかを決定するステップと、を有する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
前記予め読み込み動作を実行するステップは、前記バックエンドメモリのメディアコントローラーに伝送された前記未処理要請を追跡するためのＭＳＨＲ（Ｍｉｓｓ  Ｓｔａｔｕｓ  Ｈａｎｄｌｉｎｇ  Ｒｅｇｉｓｔｅｒ）を維持するステップを含む。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
前記方法は、前記バックエンドメモリのメディアコントローラーに伝送された未処理要請が臨界値を満たさないことを判別し、読み込み要求を前記バックエンドメモリに送信して前記予め読み込み動作を実行するステップをさらに有する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
前記臨界値は、前記バックエンドメモリの特性に基づく。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
動作条件に基づいて、前記臨界値を調節するステップをさらに有する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
前記書き込みバッファのキャッシュラインの有効性に基づいて、いずれのキャッシュラインを予め読み込みを行うかを決定するステップは、前記書き込みバッファの有効ビットを読み込むステップを含む。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
前記書き込みバッファの有効ビットを読み込むステップは、前記フロントエンドメモリのキャッシュ内のデータのセットを選択するステップと、前記セットのそれぞれのラインを個別的に選択するステップと、それぞれの選択されたラインのデータの有効性を検査するステップと、を含む。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
前記方法は、ベースライン交替点数及びデータ有効点数に基づいて、エビクションのためのデータの前記セット内のキャッシュラインを選択するステップをさらに有する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
前記方法は、前記フロントエンドメモリのコントローラー内のトランザクションキューをモニタリングするステップをさらに有し、前記フロントエンドメモリの程度は、前記トランザクションキューに対応する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】削除
【補正の内容】
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
前記方法は、書き込みバッファセットインデックスをカウントするための書き込みバッファセットカウンタを維持するステップと、前記書き込みバッファセットカウンタに基づいて、エビクションのための前記フロントエンドメモリのキャッシュ内のデータのセットのラインを選択するステップと、をさらに有する。