(57)【要約】      （修正有）【課題】ハイブリッドメモリーモジュールのＤＲＡＭキャッシュについてのメタデータにアクセスするためのオーバーヘッドを軽減させるためのシステム及び方法を提供する。【解決手段】ハイブリッドメモリーモジュールの動作方法は、ホストコンピュータからハイブリッドメモリーモジュール１００に保存されたデータに対するデータアクセス要請を受信するステップ、データアクセス要請を復号化してホストアドレスを獲得するステップ、ＤＲＡＭキャッシュインデックスからメタデータアドレスを獲得するステップ、メタデータキャッシュ１２７ヒットを判定するステップ、メタデータキャッシュヒットの場合、ＤＲＡＭキャッシュ１０１のメタデータに対するアクセスを省略して、ＤＲＡＭキャッシュからデータを獲得するステップ、そして、ＤＲＡＭキャッシュから獲得されたデータをホストコンピュータに返還するステップを包含する。【選択図】図１
2018133086.tif 000002
【特許請求の範囲】
【請求項１】
ハイブリッドメモリーモジュールの動作方法であって、
ＤＲＡＭキャッシュ（ｃａｃｈｅ）、フラッシュメモリー（ｆｌａｓｈ  ｍｅｍｏｒｙ）、そしてメタデータキャッシュ（ｍｅｔａｄａｔａ  ｃａｃｈｅ）を保存するＳＲＡＭを含むハイブリッドメモリーモジュールを提供するステップと、
ここで、前記ＤＲＡＭキャッシュは、前記フラッシュメモリーに保存されたデータのキャッシュされたコピー及び前記データのキャッシュされたコピーに対応するメタデータを含み、前記メタデータキャッシュはＤＲＡＭキャッシュのメタデータの一部のキャッシュされたコピーを含み、
ホストコンピュータから前記ハイブリッドメモリーモジュールに保存されたデータに対するデータアクセス要請を受信するステップと、
前記データアクセス要請を復号化してホストアドレスを獲得するステップと、
ここで、前記ホストアドレスはＤＲＡＭキャッシュタグ（ｔａｇ）及びＤＲＡＭキャッシュインデックス（ｉｎｄｅｘ）を含み、
前記ＤＲＡＭキャッシュインデックスからメタデータアドレスを獲得するステップと、
ここで、前記メタデータアドレスはメタデータキャッシュタグ及びメタデータキャッシュインデックスを含み、
前記ＳＲＡＭの前記メタデータキャッシュに存在してマッチングするメタデータキャッシュエントリー（ｍａｔｃｈｉｎｇ  ｍｅｔａｄａｔａ  ｃａｃｈｅ  ｅｎｔｒｙ）の存在に基づいて、メタデータキャッシュヒット（ｈｉｔ）を判定するステップと、
ここで、前記マッチングするメタデータキャッシュエントリーはメタデータキャッシュタグ及びＤＲＡＭキャッシュタグをペア（ｐａｉｒ）で含み、
前記メタデータキャッシュヒットの場合、前記ＤＲＡＭキャッシュの前記メタデータに対するアクセスを省略して、ＤＲＡＭキャッシュからデータを獲得するステップと、
そして前記ＤＲＡＭキャッシュから獲得された前記データを前記ホストコンピュータに返還するステップと、を包含する、ことを特徴とする動作方法。
【請求項２】
前記メタデータキャッシュヒットを判定するステップは、
前記メタデータキャッシュに存在して前記マッチングする前記メタデータキャッシュエントリーの存在を判定するため、前記メタデータアドレスのメタデータキャッシュタグを一つ以上のメタデータキャッシュエントリーの前記メタデータキャッシュタグと比較するステップと、をさらに包含する、ことを特徴とする請求項１に記載の動作方法。
【請求項３】
前記ＳＲＡＭはブルームフィルター（ｂｌｏｏｍ  ｆｉｌｔｅｒ）を、さらに保存し、
前記ＳＲＡＭのメタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーの不在に基づいて、メタデータキャッシュミス（ｍｉｓｓ）を判定するステップと、
前記ブルームフィルターでブルームフィルターテストを遂行するステップと、
前記ブルームフィルターテスト結果に基づいて、ＤＲＡＭキャッシュミス又は潜在的なＤＲＡＭキャッシュヒットを判定するステップと、
前記ＤＲＡＭキャッシュミスの場合、前記フラッシュメモリーから前記データを獲得するステップと、
そして前記フラッシュメモリーから獲得された前記データをホストコンピュータに返還するステップと、をさらに包含する、ことを特徴とする請求項２に記載の動作方法。
【請求項４】
前記メタデータキャッシュタグの前記比較と前記ブルームフィルターテストは、同時に遂行される、ことを特徴とする請求項３に記載の動作方法。
【請求項５】
前記メタデータキャッシュミスと前記潜在的なＤＲＡＭキャッシュヒットの場合、前記ＤＲＡＭキャッシュの前記メタデータにアクセスするステップと、
前記ホストアドレスの前記ＤＲＡＭキャッシュタグと前記ＤＲＡＭキャッシュの前記メタデータの比較に基づいて、前記ＤＲＡＭキャッシュに前記データが保存されたか否かを判定するステップと、
前記ホストアドレスの前記ＤＲＡＭキャッシュタグにマッチングするエントリーが、前記ＤＲＡＭキャッシュの前記メタデータに存在する場合、前記ＤＲＡＭキャッシュから前記データを獲得して、前記ＤＲＡＭキャッシュから獲得されたデータを前記ホストコンピュータに返還するステップと、
前記ホストアドレスの前記ＤＲＡＭキャッシュタグにマッチングするエントリーが前記ＤＲＡＭキャッシュの前記メタデータに存在しない場合、前記フラッシュメモリーから前記データを獲得し、前記フラッシュメモリーから獲得された前記データをホストコンピュータに返還するステップと、をさらに包含する、ことを特徴とする請求項３に記載の動作方法。
【請求項６】
前記ブルームフィルターは複数のエントリーを含むブルームフィルターアレイ（ａｒｒａｙ）を含み、
前記ブルームフィルターテストは前記ブルームフィルターアレイにハッシュ関数（ｈａｓｈ  ｆｕｎｃｔｉｏｎ）を適用し、肯定結果又は否定結果を提供する、ことを特徴とする請求項３に記載の動作方法。
【請求項７】
前記ブルームフィルターアレイを削除するか又は前記ブルームフィルターアレイを再設定するステップと、をさらに包含する、ことを特徴とする請求項６に記載の動作方法。
【請求項８】
前記メタデータキャッシュヒットの比率が臨界値より高い場合、ブルームフィルターを使用しないようにキャッシュ制御器をプログラムするステップと、をさらに包含する、ことを特徴とする請求項１に記載の動作方法。
【請求項９】
前記メタデータキャッシュヒットの比率が臨界値より低い場合、前記メタデータキャッシュを使用しないようにキャッシュ制御器をプログラムするステップと、をさらに包含する、ことを特徴とする請求項１に記載の動作方法。
【請求項１０】
低電力の条件で、ブルームフィルター及び前記メタデータキャッシュを順次にアクセスするステップと、をさらに包含する、ことを特徴とする請求項１に記載の動作方法。
【請求項１１】
フラッシュメモリーと、
前記フラッシュメモリーに保存されたデータのキャッシュされたコピーと前記データのキャッシュされたコピーに対応するメタデータを含むＤＲＡＭキャッシュと、
前記ＤＲＡＭキャッシュの前記メタデータの一部のキャッシュされたコピーを含むメタデータキャッシュを保存するＳＲＡＭと、
ホストコンピュータにインターフェースを提供するメモリーインターフェースと、前記ＤＲＡＭキャッシュ及び前記フラッシュメモリーに保存されたデータにアクセスするメモリーアクセス制御器と、
前記ＤＲＡＭキャッシュに対するアクセスを制御するＤＲＡＭ制御器と、
前記フラッシュメモリーに対するアクセスを制御するフラッシュ制御器と、
前記ホストコンピュータから要請されたデータのキャッシュされたコピーの存在を判定するキャッシュ制御器と、を含み、
前記キャッシュ制御器は、
前記ホストコンピュータからのデータアクセスの要請を復号化してホストアドレスを獲得し、前記ホストアドレスはＤＲＡＭキャッシュタグ及びＤＲＡＭキャッシュインデックスを含み、
前記ＤＲＡＭキャッシュインデックスからメタデータアドレスを獲得し、前記メタデータアドレスはメタデータキャッシュタグ及びメタデータキャッシュインデックスを含み、
前記ＳＲＡＭの前記メタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーの存在に基づいて、メタデータキャッシュヒットを判定し、前記マッチングするメタデータキャッシュエントリーはメタデータキャッシュタグ及びＤＲＡＭキャッシュタグのペアを含み、そして
前記メタデータキャッシュヒットの場合、前記ＤＲＡＭキャッシュのメタデータに対するアクセスを省略して、前記ＤＲＡＭ制御器に前記ＤＲＡＭキャッシュからデータを獲得するため指示するように構成され、
前記メモリーアクセス制御器は前記ＤＲＡＭキャッシュから獲得された前記データを前記ホストコンピュータに返還するように構成される、ことを特徴とするハイブリッドメモリーモジュール。
【請求項１２】
前記キャッシュ制御器は、メタデータキャッシュに存在してマッチングする前記メタデータキャッシュエントリーの前記存在を判定するため、前記メタデータアドレスの前記メタデータキャッシュタグと一つ以上の前記メタデータキャッシュエントリーの前記メタデータキャッシュタグを比較するように、さらに構成される、ことを特徴とする請求項１１に記載のハイブリッドメモリーモジュール。
【請求項１３】
前記ＳＲＡＭはブルームフィルターを、さらに保存し、そして
前記キャッシュ制御器は、
前記ＳＲＡＭの前記メタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーが存在しないことにより、メタデータキャッシュミスを判定し、
ブルームフィルターでブルームフィルターテストを遂行し、
前記ブルームフィルターテストの結果に基づいて、ＤＲＡＭキャッシュミス又は潜在的なＤＲＡＭキャッシュヒットを判定し、
前記ＤＲＡＭキャッシュミスの場合、前記ＤＲＡＭキャッシュのメタデータに対するアクセスを省略し、前記フラッシュ制御器に前記フラッシュメモリーから前記データを獲得するように指示し、
前記フラッシュメモリーから前記データを獲得するように、さらに構成され、
前記メモリーアクセス制御器は前記フラッシュメモリーから獲得された前記データを前記ホストコンピュータに返還するように、さらに構成される、ことを特徴とする請求項１２に記載のハイブリッドメモリーモジュール。
【請求項１４】
前記キャッシュ制御器は、前記メタデータキャッシュタグの前記比較と前記ブルームフィルターテストを同時に遂行する、ことを特徴とする請求項１３に記載のハイブリッドメモリーモジュール。
【請求項１５】
前記メタデータキャッシュミスと前記潜在的なＤＲＡＭキャッシュヒットの場合、
前記ＤＲＡＭ制御器は、
前記ＤＲＡＭキャッシュの前記メタデータにアクセスし、
前記ホストアドレスの前記ＤＲＡＭキャッシュタグと前記ＤＲＡＭキャッシュの前記メタデータの比較に基づいて、前記ＤＲＡＭキャッシュに前記データが保存されたか否かを判定するように構成され、
前記ホストアドレスの前記ＤＲＡＭキャッシュタグにマッチングするエントリーが、前記ＤＲＡＭキャッシュの前記メタデータに存在する場合、前記ＤＲＡＭ制御器は前記ＤＲＡＭキャッシュから前記データを獲得するように構成され、前記メモリーアクセス制御器は前記ＤＲＡＭキャッシュから獲得された前記データを前記ホストコンピュータに返還するように構成され、
前記ホストアドレスの前記ＤＲＡＭキャッシュタグにマッチングするエントリーが、前記ＤＲＡＭキャッシュの前記メタデータに存在しない場合、前記フラッシュ制御器は前記フラッシュメモリーから前記データを獲得するように構成され、前記メモリーアクセス制御器は前記フラッシュメモリーから獲得された前記データを前記ホストコンピュータに返還するように構成される、ことを特徴とする請求項１３に記載のハイブリッドメモリーモジュール。
【請求項１６】
前記ブルームフィルターは複数のエントリーを含むブルームフィルターアレイを含み、前記ブルームフィルターテストは前記ブルームフィルターアレイにハッシュ関数を適用し、肯定結果又は否定結果を提供する、ことを特徴とする請求項１３に記載のハイブリッドメモリーモジュール。
【請求項１７】
前記キャッシュ制御器は、前記ブルームフィルターアレイを削除するか又はブルームフィルターアレイを再設定するように、さらに構成される、ことを特徴とする請求項１６に記載のハイブリッドメモリーモジュール。
【請求項１８】
前記キャッシュ制御器は、メタデータキャッシュヒットの比率が臨界値より高い場合、ブルームフィルターを使用しないようにプログラムされる、ことを特徴とする請求項１１に記載のハイブリッドメモリーモジュール。
【請求項１９】
前記キャッシュ制御器は、メタデータキャッシュヒットの比率が臨界値より低い場合、前記メタデータキャッシュを使用しないようにプログラムされる、ことを特徴とする請求項１１に記載のハイブリッドメモリーモジュール。
【請求項２０】
前記キャッシュ制御器は、低電力の条件で、ブルームフィルターと前記メタデータキャッシュに順次にアクセスするように構成される、ことを特徴とする請求項１１に記載のハイブリッドメモリーモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハイブリッドメモリーモジュール（ｈｙｂｒｉｄ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）に係り、より詳しくは、ＳＲＡＭメタデータキャッシュ（ｍｅｔａｄａｔａ  ｃａｃｈｅ）及びブルームフィルター（ｂｌｏｏｍ  ｆｉｌｔｅｒ）を用いて、ハイブリッドメモリーモジュールのＤＲＡＭキャッシュについてのメタデータにアクセスするためのオーバーヘッド（ｏｖｅｒｈｅａｄ）を軽減させるためのシステム及び方法に関する。
【背景技術】
【０００２】
ハイブリッドメモリーモジュールは、主たるデータ記憶装置として、揮発性メモリー（例えば、ダイナミックランダムアクセス記憶装置（ＤＲＡＭ  ：  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ））と不揮発性メモリ（例えば、フラッシュメモリー（ｆｌａｓｈ  ｍｅｍｏｒｙ））の双方を含むメモリーモジュールを示す。ハイブリッドメモリーモジュールの一つの例は、ＤＲＡＭとフラッシュメモリーを統合したハイブリッドデュアルインラインメモリーモジュール（ＤＩＭＭ  ：  ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｍｅｍｏｒｙ  ｍｏｄｕｌｅ）である。一般的な構成では、ＤＲＡＭはフラッシュメモリーに保存されたデータのためのキャッシュメモリーとして使用される。ＤＲＡＭキャッシュに高速アクセスするために、ＤＲＡＭキャッシュのメタデータ  （ｍｅｔａｄａｔａ）はハイブリッドメモリーモジュールのスタティックランダムアクセス記憶装置（ＳＲＡＭ  ：  ｓｔａｔｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）に保存される。
【０００３】
しかし、ＤＲＡＭキャッシュのメタデータのため必要となる保存場所の大きさは、ＳＲＡＭの使用可能な保存場所の大きさより大きくなる。ハイブリッドＤＩＭＭに集積されたＳＲＡＭの記憶容量は、そのコストのため相対的に小さく維持される。ＳＲＡＭの制限された保存場所の大きさに起因して、ＤＲＡＭキャッシュ全体のメタデータはＳＲＡＭに保存できないし、結果的にＳＲＡＭに保存できないメタデータの残り部分は、ＤＲＡＭに保存されなければならない。このような場合、ＤＲＡＭに保存されたメタデータについての遅いアクセス速度は、データにアクセスする場合、性能の低下を引き起こす。
【０００４】
このような問題点に対する解決策として、いくつかのアクセス方式が提案された。一番目のアクセス方式はＳＲＡＭに保存されたメタデータの大きさを減らすことである。例えば、メタデータの大きさはＳＲＡＭに保存されたキャッシュラインの個数を少なくすることによって減らせる。斯かる場合、各キャッシュラインの大きさは縮小する。縮小されたキャッシュラインの大きさはヒット率（ｈｉｔ  ｒａｔｅ）に否定的な影響を与え、キャッシュミス（ｍｉｓｓ）の場合、フラッシュメモリーから複数のページ（ｐａｇｅ）の読み出しが必要となりうる。他の例では、キャッシュアソシアティビティ（ｃａｃｈｅ  ａｓｓｏｃｉａｔｉｖｉｔｙ：キャッシュ連関性）は、タグビット（ｔａｇ  ｂｉｔ）と交替ビット（ｒｅｐｌａｃｅｍｅｎｔ  ｂｉｔ）を減らすことによって減少されうるが、斯かるアクセス方式もヒット率に否定的な影響を与える。他の例では、交替政策は交替ビットを用いずに交替されうる。
【０００５】
しかし、複数のテストの結果は、メタデータの大きさを減らすための、斯かる効果の組合せが必要とされるメタデータの大きさの一部だけを減少させることを示す。従って、メタデータを保存するためのＳＲＡＭの大きさが制限されているという、問題点は、フラッシュメモリーのデータ記憶容量とＤＲＡＭキャッシュの大きさが増加するに連れて依然としてしぶとく残る。
【先行技術文献】
【特許文献】
【０００６】
特許文献１：米国特許第８８６８８４３号公報
特許文献２：米国特許第９３８９９６５号公報
特許文献３：米国特許第８４７８９３４号公報
特許文献４：米国特許第９５２４２３５号公報
特許文献５：米国公開特許第２０１６０２６６７９５号公報
特許文献６：米国公開特許第２０１３０１７３８５３号公報
特許文献７：米国公開特許第２０１６０１８８６２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、前述した技術的な課題を解決するためのものであって、その目的とするところはＤＲＡＭキャッシュデータにアクセスするためのオーバーヘッドを軽減させるハイブリッドメモリーモジュール及びその動作方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一つの実施例（実施形態）によるハイブリッドメモリーモジュールの動作方法は、ＤＲＡＭキャッシュ（ｃａｃｈｅ）、フラッシュメモリー（ｆｌａｓｈ  ｍｅｍｏｒｙ）、そしてメタデータキャッシュ（ｍｅｔａｄａｔａ  ｃａｃｈｅ）を保存するＳＲＡＭを含むハイブリッドメモリーモジュールを提供するステップ、前記ＤＲＡＭキャッシュは前記フラッシュメモリーに保存されたデータのキャッシュされたコピー及び前記データのキャッシュされたコピーに対応するメタデータを含み、前記メタデータキャッシュはＤＲＡＭキャッシュのメタデータの一部のキャッシュされたコピーを含み、ホストコンピュータから前記ハイブリッドメモリーモジュールに保存されたデータに対するデータアクセス要請を受信するステップ、前記データアクセス要請を復号化してホストアドレスを獲得するステップ、前記ホストアドレスはＤＲＡＭキャッシュタグ（ｔａｇ）及びＤＲＡＭキャッシュインデックス（ｉｎｄｅｘ）を含み、前記ＤＲＡＭキャッシュインデックスからメタデータアドレスを獲得するステップ、前記メタデータアドレスはメタデータキャッシュタグ及びメタデータキャッシュインデックスを含み、前記ＳＲＡＭの前記メタデータキャッシュに存在してマッチングするメタデータキャッシュエントリー（ｍａｔｃｈｉｎｇ  ｍｅｔａｄａｔａ  ｃａｃｈｅ  ｅｎｔｒｙ）の存在に基づいて、メタデータキャッシュヒット（ｈｉｔ）を判定するステップ、前記マッチングするメタデータキャッシュエントリーはメタデータキャッシュタグ及びＤＲＡＭキャッシュタグをペア（ｐａｉｒ）で含み、前記メタデータキャッシュヒットの場合、前記ＤＲＡＭキャッシュの前記メタデータに対するアクセスを省略して、ＤＲＡＭキャッシュからデータを獲得するステップ、そして、前記ＤＲＡＭキャッシュから獲得された前記データを前記ホストコンピュータに返還するステップを包含する。
【０００９】
本発明の他の実施例によるハイブリッドメモリーモジュールはフラッシュメモリー、前記フラッシュメモリーに保存されたデータのキャッシュされたコピーと前記データのキャッシュされたコピーに対応するメタデータを含むＤＲＡＭキャッシュ、前記ＤＲＡＭキャッシュの前記メタデータの一部のキャッシュされたコピーを含むメタデータキャッシュを保存するＳＲＡＭ、ホストコンピュータにインターフェースを提供するメモリーインターフェース、前記ＤＲＡＭキャッシュ及び前記フラッシュメモリーに保存されたデータにアクセスするメモリーアクセス制御器、前記ＤＲＡＭキャッシュに対するアクセスを制御するＤＲＡＭ制御器、前記フラッシュメモリーに対するアクセスを制御するフラッシュ制御器、そして、前記ホストコンピュータから要請されたデータのキャッシュされたコピーの存在を判定するキャッシュ制御器を包含する。
【００１０】
前記キャッシュ制御器は、前記ホストコンピュータからのデータアクセス要請を復号化してホストアドレスを獲得し、前記ホストアドレスはＤＲＡＭキャッシュタグ及びＤＲＡＭキャッシュインデックスを含み、前記ＤＲＡＭキャッシュインデックスからメタデータアドレスを獲得し、前記メタデータアドレスはメタデータキャッシュタグ及びメタデータキャッシュインデックスを含み、前記ＳＲＡＭの前記メタデータキャッシュに存在して、マッチングするメタデータキャッシュエントリーの存在に基づいて、メタデータキャッシュヒットを判定し、前記マッチングするメタデータキャッシュエントリーはメタデータキャッシュタグ及びＤＲＡＭキャッシュタグのペアを含み、そして、前記メタデータキャッシュヒットの場合、前記ＤＲＡＭキャッシュのメタデータに対するアクセスを省略して、前記ＤＲＡＭ制御器に前記ＤＲＡＭキャッシュからデータを獲得するように指示する構成で成される。前記メモリーアクセス制御器はＤＲＡＭキャッシュから獲得されたデータを前記ホストコンピュータへ返還するように構成される。
【００１１】
イベントの具現及び組合せの多様で新しい事項を含む前記特徴又は他の特徴は、添付の図面と請求項の内容を参照にして、さらに詳しく説明する。本明細書で説明する特定のシステムと方法は、例示を通じて説明され、斯かる例示に本発明が制限されることではない。当業者にとっては明らかのように、本明細書で説明される原理及び特徴は、本発明の範囲を逸脱することなく、多様な実施例に適用される。
【発明の効果】
【００１２】
本発明のハイブリッドメモリーモジュール及びその動作方法はＤＲＡＭキャッシュメタデータにアクセスするためのオーバーヘッドを軽減させ、フラッシュメモリーについてのデータアクセス遅延時間を縮小できる。
【図面の簡単な説明】
【００１３】
【図１】従来のハイブリッドメモリーモジュールのアーキテクチャを示す図である。
【図２】本発明の一実施例によるハイブリッドメモリーモジュールのアーキテクチャを示す図である。
【図３】本発明の一実施例によるキャッシュ制御器の動作例のブロック図である。
【図４】本発明の一実施例によるハイブリッドメモリーモジュールで具現されたブルームフィルターの例を示す図である。
【図５】本発明の一実施例によるキャッシュ制御器により、データ要請を遂行する順序図である。
【発明を実施するための形態】
【００１４】
本明細書に記載された各々の特徴及び開示（ｄｉｓｃｌｏｓｅ）は、ＳＲＡＭメタデータキャッシュとブルームフィルター（Ｂｌｏｏｍ  ｆｉｌｔｅｒ）を利用し、ハイブリッドメモリーモジュールでのＤＲＡＭキャッシュのメタデータに対するアクセスオーバーヘッドを軽減させるためのシステム及び方法を提供するため、各々又は他の特徴及び開示と共に活用される。
このような数多くの追加特徴及び開示を活用する代表的な例は、添付した図面を参照して、別途にまたは共にさらに詳しく説明する。斯かる詳細な説明は、当業者が本発明の態様を実行するための細部的な内容を開示するためであり、請求範囲を制限するものではない。従って、詳細な説明に開示した特徴の組合せは、最も広い意味での本発明の教示（ｔｅａｃｈｉｎｇ）の実践に必要ではなく、本発明の教示する所の代表的な例示を説明するために開示する。
【００１５】
以下においては、説明するための目的で、本発明の完全な理解を提供するために具体的な命名法を使用する。しかし、本発明の開示のため、当業者にとって具体的な事項が必要でないのは明らかなはずである。
【００１６】
詳細な説明のいくつかの部分は、アルゴリズム及びコンピュータメモリーの中のデータビットに対する動作の記号的（ｓｙｍｂｏｌｉｃ）な表現により提示する。斯かるアルゴリズムの説明と表現は、他の分野の通常の技術者に研究の要旨を効果的に伝達するため、データプロセシング分野に係わる通常の技術者により使用される。ここで、アルゴリズムは一般的に、望む結果を引き出す一貫性のある一連のステップとして理解される。ステップは物理量の物理的な操作を必要とする。一般的に、必ず必要なものではないが、このような物理量は保存され、伝達され、結合され、比較され、操作できる電気または磁気信号の形態を有する。これは、このような信号をビット、値、要素、シンボル（ｓｙｍｂｏｌ）、文字、用語、数字などで表現するための一般的な用法である。
【００１７】
しかし、この全ての用語と類似した用語は、適切な物理量と連関され、但し斯かる物理量に適用される便利なラベル（ｌａｂｅｌ）であることに留意しなければならない。以下の内容と明らかに異なる内容が具体的に記述されなければ、明細書全般にわたって、‘‘プロセシング’’、‘‘コンピューティング’’、‘‘計算’’、‘‘決定’’、‘‘表示’’などの用語を活用する部分は、コンピュータシステム又は類似の電子コンピューティング装置のプロセスと措置を示すことにより理解される。コンピュータシステム又は類似の電子コンピューティング装置は、コンピュータシステムのレジスタ（ｒｅｇｉｓｔｅｒ）とメモリーの中において物理（電気）量により示されるデータは、同様にコンピュータシステムメモリー、レジスタ、他の情報記憶装置、情報伝送装置又はディスプレイ装置において他の物理量により示されるデータに操作するか変更される。
【００１８】
本発明の実施例は、ＤＲＡＭメタデータに対するアクセスを減少させるための多様な技法を説明する。例えば、ＤＲＡＭメタデータアクセスはランダム交替（ｒｅｐｌａｃｅｍｅｎｔ）政策を用いて減少される。斯かる場合、交替ビットが必要とされないことがあるが、性能は悪化する場合がある。他の実施例は、ＳＲＡＭにＤＲＡＭキャッシュメタデータの一部を保存し、ＤＲＡＭメタデータアクセスを減少させる。このような場合、ＳＲＡＭマッチ（ｍａｔｃｈ）のみがＤＲＡＭ検索を誘発する。しかし、メタデータマッチが頻繁に発生する場合、この部分的メタデータアクセス方式は性能の劣化を招く。
他のアクセス方式は、ＳＲＡＭをメタデータをキャッシュするために使用し、ＤＲＡＭキャッシュミス（ｍｉｓｓ）を効果的に取り除くためブルームフィルターを使用してタグ（ｔａｇ）がマッチする場合のみＤＲＡＭ検索を遂行するが、ブルームフィルターは誤判定（ｆａｌｓｅ  ｐｏｓｉｔｉｖｅｓ）を誘発する場合がある。しかし、ＳＲＡＭでのブルームフィルターの使用はＤＲＡＭキャッシュの劣等な性能のため、一般的に非効率的である。
【００１９】
尚、代表的例示の多様な特徴と従属項は、本発明の有用で追加的実施例を提供するため、具体的で明確に列挙しない方法で結合される。尚、請求する発明の思想を制限しようとする目的だけではなく、開示の目的のため、全ての値の範囲又は個体グループの表示は、可能な全ての中間値又は中間個体を表わす。尚、図面に図示する構成の面積と模様は本発明を、どのように具現するかを理解するため、役に立てるようにデザインされるが、例示に図示する面積と模様に限定されることではない。
【００２０】
本発明はＳＲＡＭメタデータキャッシュとブルームフィルターを利用し、ハイブリッドメモリーモジュールでＤＲＡＭキャッシュメタデータにアクセスするためのオーバーヘッドを軽減させるシステムと方法を提供する。本発明の一実施例によると、ブルームフィルターとＳＲＡＭキャッシュはＤＲＡＭキャッシュのためのメタデータを保存するため結合される。ブルームフィルターとＳＲＡＭキャッシュの結合された使用は、各々の短所が補完でき、ハイブリッドメモリーモジュールに保存されたデータにアクセスするための向上された性能を提供できる。一般的に、ブルームフィルターはキャッシュミスを予想し、メタデータキャッシュはキャッシュヒットを予想する。メタデータキャッシュとブルームフィルターが同時にアクセスされると、ブルームフィルターフォールス（ｆａｌｓｅ）はキャッシュミスを暗示し、従ってＤＲＡＭアクセスは必要とされない。ＳＲＡＭメタデータキャッシュヒットは、速いキャッシュヒットと見なされ、従ってＤＲＡＭメタデータアクセスは必要とされない。
【００２１】
図１は、従来のハイブリッドメモリーモジュールのアーキテクチャを示す図である。ハイブリッドメモリーモジュール１００は、ＤＲＡＭキャッシュ１０１、フラッシュメモリー１５１、メモリーアクセス制御器１１１、ＤＲＡＭ制御器１２１、キャッシュ制御器１２４、メタデータキャッシュ１２７を保存するためのＳＲＡＭ１２６、そしてフラッシュ制御器１３１を包含する。メタデータキャッシュ１２７はＤＲＡＭキャッシュ１０１のメタデータのキャッシュされたバージョン（ｖｅｒｓｉｏｎ）を包含する。ＤＲＡＭキャッシュ１０１はフラッシュメモリー１５１のキャッシュデータを保存し、メタデータ１０２、読取りキャッシュ１０３、そして書込みバッファー１０４を包含する。メタデータ１０２はタグ、有効ビット、ダーティービット（ｄｉｒｔｙ  ｂｉｔｓ）を包含できる。本明細書において明示的に他の意味に叙述しない限り、メタデータ及びタグ用語は互換的に使用され得る。読取りキャッシュ１０３はフラッシュメモリー１５１からキャッシュされたデータを保存する。読取りキャッシュ１０３はフラッシュメモリー１５１に対するメモリーアクセス回数を減少させる。フラッシュメモリー１５１に書込まれるデータは、書込みバッファー１０４に一時的に保存される。書込みバッファー１０４はフラッシュメモリー１５１に対する書込みトラフィック（ｔｒａｆｆｉｃ）を減少させる。
【００２２】
ホストコンピュータ（図示せず）は、メモリーインターフェース１４０を通じて、ホストコンピュータとハイブリッドメモリーモジュール１００の間に樹立されたメモリーホスト／スレーブ（ｈｏｓｔ／ｓｌａｖｅ）インターフェースプロトコル（例えば、ＮＶＤＩＭＭ−Ｐ）により、ハイブリッドメモリーモジュール１００に保存されたデータにアクセスするためのメモリーアクセスの要請を送る。メモリーアクセスの要請はメモリーアクセス制御器１１１に伝達される。メモリーアクセス制御器１１１は中間変換器として動作し、ホストからの（ＮＶＤＩＭＭ−Ｐプロトコルを通じ）要請をハイブリッドメモリーモジュール１００に判読可能な形態に変換する。ホストからの要請を変換した後に、メモリーアクセス制御器１１１はキャッシュ制御器１２４へ変換された情報を伝達する。
【００２３】
キャッシュ制御器１２４は、ＳＲＡＭ１２６に保存されたメタデータキャッシュ１２７を確認し、メタデータキャッシュヒット又はミスを決定する。メタデータキャッシュヒットであれば、キャッシュ制御器１２４はＤＲＡＭキャッシュ１０１に要請されたデータが保存されたことを確認し、ＤＲＡＭキャッシュ１０１に存在するメタデータ１０２にアクセスせずにメタデータキャッシュ１２７に保存されたメタデータを利用し、ＤＲＡＭ制御器１２１にＤＲＡＭキャッシュ１０１に存在する要請されたデータにアクセスするように要請する。メタデータキャッシュミスであれば、キャッシュ制御器１２４はＤＲＡＭ制御器１２１にＤＲＡＭキャッシュ１０１に保存されたメタデータ１０２にアクセスするように要請し、ＤＲＡＭキャッシュヒット又はミスを決定する。ＤＲＡＭキャッシュヒット又はミスを確認した後に、キャッシュ制御器１２４は要請されたデータの正確な受信場所を決定する。ＤＲＡＭキャッシュヒットであれば、キャッシュ制御器１２４は、ＤＲＡＭ制御器１２１にＤＲＡＭキャッシュ１０１に保存されている要請されたデータへのアクセスを要請する。ＤＲＡＭキャッシュミスであれば、キャッシュ制御器１２４は、フラッシュ制御器１３１にフラッシュメモリー１５１に保存されている要請されたデータのアクセスを要請する。
【００２４】
キャッシュ制御器１２４がＤＲＡＭキャッシュ１０１に要請されたデータが保存されていると判定する時、キャッシュ制御器１２４はＤＲＡＭ制御器１２１にメタデータキャッシュヒットの場合、ＳＲＡＭ１２６に保存されているメタデータキャッシュ１２７を参照するか、メタデータ１０２を参照してＤＲＡＭキャッシュ１０１にアクセスするように指示する。キャッシュ制御器１２４がフラッシュメモリー１５１に要請されたデータが保存されていると判定する場合、フラッシュ制御器１３１はフラッシュ流れ１５０を通じてフラッシュメモリー１５１に保存されたデータにアクセスして引き出す。
【００２５】
図２は、本発明の一実施例によるハイブリッドメモリーモジュールのアーキテクチャを示す図である。ハイブリッドメモリーモジュール２００はＤＲＡＭキャッシュ２０１、フラッシュメモリー２５１、メモリーアクセス制御器２１１、ＤＲＡＭ制御器２２１、キャッシュ制御器２２４、ＳＲＡＭ２２６、そしてフラッシュ制御器２３１を包含する。
【００２６】
ＳＲＡＭ２２６はメタデータキャッシュ２２７にＤＲＡＭキャッシュ２０１のメタデータ２０２にキャッシュされたもののコピーを保存する。メタデータキャッシュ２２７の利用可能な大きさにより、メタデータキャッシュ２２７に保存されるメタデータ２０２にキャッシュされたもののコピーは、メタデータ２０２の部分集合である。ＳＲＡＭ２２６は、キャッシュされたメタデータの他の集合（メタデータ２０２の完全集合又はメタデータ２０２の部分集合）を、ブルームフィルターアレイ２２９の形で（ｉｎ  ｔｈｅ  ｆｏｒｍ  ｏｆ）さらに保存する。
【００２７】
メタデータキャッシュ２２７は、ＤＲＡＭキャッシュ２０１のメタデータ２０２にキャッシュされたバージョンを包含する。ＤＲＡＭキャッシュ２０１はフラッシュメモリー２５１のキャッシュデータを保存し、メタデータ２０２、読取りキャッシュ２０３、そして書込みバッファー２０４を包含する。メタデータ２０２はタグ、有効ビット、ダーティービットを包含する。本明細書において明示的に他の意味を記述しない限り、メタデータ及びタグの用語は互換的に使用できる。読取りキャッシュ２０３はフラッシュメモリー２５１からキャッシュされたデータを保存する。読取りキャッシュ２０３はデータをキャッシュするため使用される。読取りキャッシュ２０３はフラッシュメモリー２５１に対するメモリーアクセス回数を減少させる。フラッシュメモリー２５１に書き込まれるデータは、書き込みバッファー２０４に一時的に保存される。書込みバッファー２０４はフラッシュメモリーについての書込みトラフィックを減少させる。
【００２８】
ホストコンピュータ（図示せず）は、メモリーインターフェース２４０を通じてホストコンピュータとハイブリッドメモリーモジュール２００の間に樹立されたメモリーホスト／スレーブ（ｈｏｓｔ／ｓｌａｖｅ）インターフェースプロトコル（例えば、ＮＶＤＩＭＭ−Ｐ）により、ハイブリッドメモリーモジュール２００に保存されたデータにアクセスするためのメモリーアクセスの要請を送る。メモリーアクセスの要請はメモリーアクセス制御器２１１に伝達される。メモリーアクセス制御器２１１は中間変換器として動作し、ホストからの（ＮＶＤＩＭＭ−Ｐプロトコルを通じ）要請をハイブリッドメモリーモジュール２００に判読可能な形態に変換する。ホストからの要請を変換した後に、メモリーアクセス制御器２１１はキャッシュ制御器２２４へ変換された情報を伝達する。
【００２９】
キャッシュ制御器２２４は、ＳＲＡＭ２２６に保存されたメタデータキャッシュ２２７を確認し、メタデータキャッシュヒット又はミスを決定する。メタデータキャッシュヒットであれば、キャッシュ制御器２２４はＤＲＡＭキャッシュ２０１に、要請されたデータが保存されていることを確認し、ＤＲＡＭキャッシュ２０１に存在するメタデータ２０２にアクセスせずに、メタデータキャッシュ２２７に保存されたメタデータを利用し、ＤＲＡＭ制御器２２１にＤＲＡＭキャッシュ２０１に存在する要請されたデータにアクセスするように要請する。
【００３０】
本発明の一つの実施例によると、キャッシュ制御器２２４はＳＲＡＭ２２６に保存されたメタデータを運営するための多様な関数を提供する。斯かる関数の例はＳＲＡＭ２２６に保存されたメタデータを管理するテスト関数と挿入関数を含むが、本発明はこのような例に制限されない。ブルームフィルターはＤＲＡＭキャッシュヒット又はミスが有るか否かを判定するための関数を利用し、ＳＲＡＭ２２６に保存されたブルームフィルターアレイ２２９により動作する。例えば、キャッシュ制御器２２４はブルームフィルターアレイ２２９により、ブルームフィルターテスト関数を遂行する。ブルームフィルターテスト結果が否定的であれば、ＤＲＡＭキャッシュミスを意味し、ＤＲＡＭキャッシュ２０１にデータが保存されていないことを表わし、キャッシュ制御器２２４はＤＲＡＭキャッシュのメタデータ２０２をアクセスせずに、データを獲得するためフラッシュ制御器２３１に要請を送る。本発明の一つの実施例によると、メタデータキャッシュ２２７でのメタデータキャッシュの確認とブルームフィルターでのブルームフィルターのテストは、独立的に、同時に、又は特定の順序により遂行される。
【００３１】
メタデータキャッシュミスであり、ブルームフィルターのテスト結果が肯定的（即ち、ＤＲＡＭキャッシュヒットを示すがフォールスポジティブである）であれば、キャッシュ制御器２２４は、実際にＤＲＡＭキャッシュヒット又はミスかを判定するため、ＤＲＡＭキャッシュ２０１のメタデータ２０２へのアクセスをＤＲＡＭ制御器２２１に要請する。ＤＲＡＭキャッシュ２０１のメタデータ２０２に存在してマッチングするメタデータの存在に基づいて、キャッシュ制御器２２４は要請されたデータの正確な目的地（ｄｅｓｔｉｎａｔｉｏｎ）を見つけ出す。ＤＲＡＭキャッシュヒットであれば、キャッシュ制御器２２４はＤＲＡＭ制御器２２１にＤＲＡＭキャッシュ２０１に保存されている要請されたデータにアクセスするように要請する。ＤＲＡＭキャッシュミスであれば、キャッシュ制御器２２４はフラッシュメモリー２５１に保存されている要請されたデータへのアクセスをフラッシュ制御器２３１に要請する。
【００３２】
図２を参照すると、メタデータキャッシュ２２７及びブルームフィルターアレイ２２９は、独立的なデータ構造を有し、同一又は異なるメタデータを保存できる。メタデータキャッシュ２２７及びブルームフィルターアレイ２２９は、ＳＲＡＭ２２６においてメタデータとメタデータを運営するためのロジックを保存するため、各自の専用領域を持ち、互いに関連がない。本発明の一つの実施例によると、ＳＲＡＭ２２６はメタデータキャッシュ２２７とブルームフィルターアレイ２２９の中の一つだけを含み、キャッシュ制御器２２４はメタデータキャッシュ２２７とブルームフィルターアレイ２２９の中の一つだけを運営する。ブルームフィルターアレイ２２９の存在又は動作と関係なく、メタデータキャッシュ２２７は動作できる。同様に、メタデータキャッシュ２２７の存在又は動作と関係なく、ブルームフィルターアレイ２２９は動作する。メタデータキャッシュ２２７の存在（又は不在）及び動作モードにより、ＳＲＡＭ２２６でのメタデータキャッシュ２２７とブルームフィルターアレイ２２９の割当てられた領域は動的に変化できる。本発明のハイブリッドメモリーモジュール２００はメタデータキャッシュ２２７とブルームフィルターアレイ２２９が必然的に依存し合わずに、キャッシュヒット又はミスの決定を可能にするための一つ以上の‘‘ラッパー（ｗｒａｐｐｅｒ）’’関数などを提供する。
【００３３】
メタデータキャッシュヒットの場合、即ち、ＳＲＡＭ２２６に有るメタデータキャッシュ２２７がメタデータのキャッシュされたコピーを保存すれば、キャッシュ制御器２２４はＤＲＡＭキャッシュ２０１に要請されたデータが保存されたと判定し、キャッシュ制御器２２４はＤＲＡＭ制御器２２１にＳＲＡＭ２２６に保存されたメタデータキャッシュ２２７を参照して、ＤＲＡＭキャッシュ２０１にアクセスするように指示する。ＤＲＡＭキャッシュヒットの場合、キャッシュ制御器２２４はＤＲＡＭ制御器２２１にメタデータ２０２を参照して、ＤＲＡＭキャッシュ２０１にアクセスするように指示する。キャッシュ制御器２２４がフラッシュメモリー２５１に要請されたデータが保存されていると判定する場合、フラッシュ制御器２３１はフラッシュ流れ２５０を通じて、フラッシュメモリー２５１に保存されたデータにアクセスして引き出す。
【００３４】
本発明の一つの実施例によると、メタデータ２０２は包括的でクリーン（ｃｌｅａｎ）であるので、メタデータキャッシュ２２７は効率的に維持される。例えば、メタデータキャッシュ２２７のライン（ｌｉｎｅ）は、なお、ＤＲＡＭキャッシュ２０１のメタデータ２０２に保存される。メタデータキャッシュ２２７についての、どのようなアクセス類型（例えば、読取り、書込み）も、常に読取りアクセスと見なされる。表１はアクセス類型と要請されたデータの位置に沿い、ハイブリッドメモリーモジュール２００のキャッシュ制御器２２４によって遂行される一覧を示す。
【００３５】
【表１】
2018133086.tif 000003
2018133086.tif 000004
【００３６】
読取りアクセスの要請が有る場合、キャッシュ制御器２２４は要請されたデータのキャッシュされたコピーが次のような方式で、ＤＲＡＭキャッシュ２０１から検索され得るか否かを判定する。まず、キャッシュ制御器２２４はメタデータキャッシュ２２７にマッチングするメタデータが存在するか否かを確認する。マッチするメタデータが検索されると、メタデータタグとＤＲＡＭキャッシュタグの包括性により、キャッシュ制御器２２４は、ＤＲＡＭキャッシュ２０１で、読取りアクセスの要請ヒットであると結論づける。キャッシュ制御器２２４はメタデータ２０２へのアクセスなしに、メタデータキャッシュ２２７でヒットしたメタデータを使用し、ＤＲＡＭキャッシュ２０１から目的のデータを要請する。メタデータキャッシュ２２７の確認の時、追加的にキャッシュ制御器２２４はブルームフィルターアレイ２２９を使用し、ＤＲＡＭキャッシュヒット又はミスの確認を遂行する。ブルームフィルターのテストによるＤＲＡＭキャッシュミスの場合、キャッシュ制御器２２４は目的のデータがＤＲＡＭキャッシュ２０１に存在しないと結論づけ、ＤＲＡＭキャッシュ２０１のメタデータ２０２へのアクセスなしに、データを獲得するためフラッシュ制御器２３１へ要請を送る。ブルームフィルターのテスト結果がＤＲＡＭキャッシュヒットを表わすと、ブルームフィルターによるＤＲＡＭキャッシュヒットがフォールスポジティブであり得るので、キャッシュ制御器２２４はこのステップで真のＤＲＡＭキャッシュヒット又はミスを判定できない。斯かる場合、キャッシュ制御器２２４は真のＤＲＡＭキャッシュヒット又はミスを判定するため、ＤＲＡＭ制御器２２１にメタデータ２０２にアクセスするようにさらに要請する。データアクセスの要請に含まれたＤＲＡＭキャッシュタグとメタデータ２０２の比較により、キャッシュ制御器２２４はＤＲＡＭキャッシュ２０１によりデータ要請のヒットであるか否かを正確に判定する。ＤＲＡＭキャッシュヒットであれば、キャッシュ制御器２２４はＤＲＡＭキャッシュ２０１から目的のデータを要請する。ＤＲＡＭキャッシュミスであれば、キャッシュ制御器２２４はフラッシュメモリー２５１から目的のデータを要請し、フラッシュメモリー２５１から獲得したデータをＤＲＡＭキャッシュ２０１に挿入し、メタデータ２０２をアップデートする。ＤＲＡＭキャッシュヒット又はミスと相関なしに、メタデータキャッシュミスとして、キャッシュ制御器２２４はメタデータ２０２から獲得したメタデータが、メタデータキャッシュ２２７をアップデートするため使用する。
【００３７】
書込みアクセス要請の場合、キャッシュ制御器２２４は読取りアクセス要請の場合と同様に、メタデータキャッシュ２２７とＤＲＡＭキャッシュ２０１のマッチング結果に基づいて同様の措置を遂行する。読取りと書込みのアクセス動作の差異点は、以下においてさらに詳しく説明する。
【００３８】
図３は、本発明の一実施例によるキャッシュ制御器の動作例のブロック図である。図３を参照して説明するキャッシュ制御器は、図２に示したハイブリッドメモリーモジュール２００に統合されたキャッシュ制御器２２４である。この場合、ハイブリッドメモリーモジュール２００とハイブリッドメモリーモジュール２００に統合された内部構成、モジュール、そして装置の重複された説明は省略する。
【００３９】
ホストコンピュータから受信したデータアクセスの要請に対する応答により、キャッシュ制御器は要請されたデータのホストアドレス３０１を獲得し、アクセス類型（例えば、読取り、書込み）を識別するためデータアクセスの要請を復号化する。ホストアドレス３０１はタグ（３０２）（本明細書ではＤＲＡＭキャッシュタグと呼称される）、インデックス３０３（本明細書ではＤＲＡＭキャッシュインデックスと呼称される）、そしてオフセット３０４を包含する。
【００４０】
本発明の一つの実施例によると、ＤＲＡＭキャッシュに有るキャッシュラインはホストから要請されたデータの大きさより大きくなる。斯かる場合、要請されたデータに対応するキャッシュラインの部分を決定するため、オフセット３０４が使用される。例えば、キャッシュラインが２ＫＢであり、要請されたデータの大きさが１Ｂであれば、キャッシュラインにはホストアドレス３０１が示す唯一のデータ部分を識別するため、総計２０４８個のオフセットを要求する２０４８（２ＫＢ／１Ｂ）のデータ部分が存在する。例えば、０のオフセット３０４はキャッシュラインで一番目のデータ部分を示し、２０４７のオフセット３０４はキャッシュラインの最後のデータ部分を示す。
【００４１】
本発明の一実施例によると、インデックス３０３はＤＲＡＭキャッシュに関連されたメタデータの情報を包含できる。キャッシュ制御器はメタデータアドレス３１１を獲得するため、インデックス３０３をさらに復号化してメタデータキャッシュヒット又はミスを判定するため、ＳＲＡＭに保存されたメタデータキャッシュ３２７とメタデータアドレス３１１を比較する。本発明の一つの実施例によると、メタデータアドレス３１１は、メタデータ（ＭＤＣ）タグ３１２及びメタデータ（ＭＤＣ）インデックス３１３を包含する。
【００４２】
まず、キャッシュ制御器はＳＲＡＭのメタデータキャッシュ３２７に保存された複数のＤＲＡＭキャッシュメタデータの中で、マッチングするメタデータエントリー（ｅｎｔｒｙ）を選択するため、メタデータアドレス３１１のメタデータインデックス３１３を使用する。ＳＲＡＭのメタデータキャッシュ３２７に保存された各々のマッチングするメタデータエントリーは、ＭＤＣタグ３３３、ＤＲＡＭキャッシュタグ３３２、そして有効ビット（Ｖ）を含むタグのペア（ｐａｉｒ）を包含できる。有効ビット（Ｖ）は、関連されたキャッシュラインが有効であるか否かを表す。例えば、マッチングするメタデータエントリーを包含するキャッシュラインは、Ｖ＝０であれば、キャッシュミスを表す。例示で図示したように、ＳＲＡＭのメタデータキャッシュ３２７が複数の通路（例えば、通路（ｗａｙ）０、通路１、通路２、そして通路３）により構成されれば、メタデータインデックス３１３は通路ＩＤに対応できる。
【００４３】
メタデータキャッシュヒット又はミスを判定するため、キャッシュ制御器はメタデータキャッシュ３２７においてマッチングするエントリーを検索し、メタデータアドレス３１１のメタデータタグ３１２を、識別されてマッチングするエントリーのＭＤＣタグ３３３と比較する。メタデータタグ３１２とＭＤＣタグ３３３とがマッチすれば、最初のホストタグを含むデータは、マッチングするエントリーから読み出される。メタデータキャッシュ３２７に保存された最初のホストタグは、ホストアドレス３０１のタグ３０２と比較される。最初のホストタグとホストアドレス３０１のタグ３０２がマッチすれば、キャッシュ制御器はメタデータキャッシュヒットと判定し、ＤＲＡＭキャッシュのメタデータに対するアクセスなしに、メタデータキャッシュ３２７に保存されてマッチングするホストタグを利用して、ＤＲＡＭキャッシュに存在して要請されたデータにアクセスする。
【００４４】
メタデータキャッシュ３２７の確認の時、追加的に、キャッシュ制御器はブルームフィルターを用いて、ＤＲＡＭキャッシュに存在してキャッシュされたデータの存在（又は不在）を判定（すなわち、ＤＲＡＭキャッシュヒットまたはミス）するため、ブルームフィルターのテストを遂行できる。ブルームフィルターは、例えば、比較器を通じて、多様な形態に具現される。キャッシュ制御器はホストアドレス３０１のタグ３０２を、メタデータキャッシュ３２７の確認により、識別されてマッチングするメタデータペアのＤＲＡＭキャッシュタグ３３２と比較する。ブルームフィルターのテストがＤＲＡＭキャッシュミス（即ち、メタデータキャッシュ３２７にホストアドレス３０１のタグ３０２とマッチングするＤＲＡＭキャッシュタグ３３２が存在しない場合）を表すと、キャッシュ制御器はＤＲＡＭキャッシュに目的のデータが存在しないと結論づけ、フラッシュ制御器にフラッシュメモリーに保存されたデータにアクセスするように要請する。
【００４５】
いくつかの場合に、キャッシュ制御器はメタデータキャッシュ３２７においてマッチングするメタデータのエントリーが見つけ出せなくて（即ち、メタデータキャッシュのミス）、ブルームフィルターはＤＲＡＭキャッシュヒットを表すことがある。しかし、ブルームフィルターによるＤＲＡＭキャッシュヒットの表示は、フォールスポジティブでありうるので、キャッシュ制御器はＤＲＡＭキャッシュに目的のデータが、実際に、保存されているか否か（真のＤＲＡＭキャッシュヒット又はミス）を判定するため、ＤＲＡＭキャッシュのメタデータにアクセスする。ホストアドレス３０１のタグ３０２とＤＲＡＭキャッシュのメタデータの間の比較結果に基づいて、キャッシュ制御器は目的のデータの位置を正確に判定する。ＤＲＡＭキャッシュにマッチングするメタデータがなければ（即ち、真のＤＲＡＭキャッシュミス）、キャッシュ制御器はＤＲＡＭキャッシュに要請されたデータのキャッシュされたコピーがないことを、確認する。斯かる場合、キャッシュ制御器はＤＲＡＭキャッシュに対するアクセスをせずに、フラッシュメモリーに保存されたデータにアクセスするため、直接に、フラッシュメモリーにアクセスする。ＤＲＡＭキャッシュにマッチングするメタデータが存在すれば（即ち、真のＤＲＡＭキャッシュヒット）、キャッシュ制御器はＤＲＡＭキャッシュに保存されたデータにアクセスするため、ＤＲＡＭ制御器にアクセスする。
【００４６】
図４は、本発明の一実施例によるハイブリッドメモリーモジュールで具現されたブルームフィルターの例を示す図である。キャッシュ制御器はブルームフィルターのため挿入（ｉｎｓｅｒｔ）関数とテスト（ｔｅｓｔ）関数を提供する。本発明の一つの実施例によると、挿入関数はハッシュ関数（ｈａｓｈ  ｆｕｎｃｔｉｏｎ）である。キャッシュ制御器はブルームフィルターの設定により、一つ以上のハッシュ関数を適用できる。例えば、ｘ、ｙ、ｚ、そしてｗにより表示される挿入関数とテスト関数に対する入力は、メタデータキャッシュタグでありうる。
【００４７】
本発明のハイブリッドメモリーモジュールのＳＲＡＭの専用領域に保存されたブルームフィルターのメタデータは、本明細書において複数のエントリーを含むブルームフィルターアレイと呼称されるアレイとして具現される。本発明の一つの実施例において、ブルームフィルターアレイの各エントリーは１６ビットであり、三つのハッシュ関数が存在できる。テスト関数は三つのすべてのハッシュ関数に対するマッチングの結果を提供する。上述した内容は例示のみであり、本発明の範囲から逸脱せず、他の長さのブルームフィルターアレイと他の個数のハッシュ関数などが使用できる。
【００４８】
与えられたキャッシュタグ（例えば、図３のタグ３０２）で、挿入関数はハッシュアルゴリズムに従い、ブルームフィルターアレイ４０１の示されたエントリーにビットを挿入（又はアップデート）する。本発明の実施例において、ハッシュ関数はブルームフィルターアレイ４０１のエントリー（７、１２、そして１４ビットなど）の集合を、キャッシュタグのｘにより示された所に挿入する。そして、データのアクセス要請が受信されると、テスト関数ｔｅｓｔ（ｘ）は、ブルームフィルターアレイ４０１からキャッシュタグのｘにより示されたエントリーを読取り、ブルームフィルターアレイ４０１がキャッシュタグのｘを含んでいるか否かをテストするため呼び出される。次に、キャッシュタグのｙによって示された所へハッシュ関数の挿入を利用して、ブルームフィルターアレイ４０１のエントリー（２、４、そして１１ビットなど）に入力され、キャッシュタグのｙの存在はテスト関数ｔｅｓｔ（ｙ）を用いてテストされる。
【００４９】
本発明の実施例で、キャッシュタグのｘ及びｙは、ブルームフィルターアレイ４０１に対する入力で表される。ブルームフィルターアレイ４０１の各エントリーは０又は１でありうる。挿入関数は一つ以上のハッシュ関数などに基づき、各々のハッシュ関数は入力でキャッシュタグを持つ。挿入関数の出力はブルームフィルターアレイ４０１で示されたエントリーに対応するビット個数である。本発明は特定のハッシュ関数及び使用されるハッシュ関数の個数に制限されない。例えば、挿入関数は入力としてキャッシュタグを受信する場合、ブルームフィルターアレイの四つのエントリーをアップデートする。
【００５０】
キャッシュタグのｚとｗは明確にブルームフィルタ４０１に入力されない。キャッシュタグのｚを含むデータのアクセス要請が受信される場合、キャッシュタグのｚのためのテスト関数ｔｅｓｔ（ｚ）が呼び出され、否定（ｎｅｇａｔｉｖｅ）で返還され、正確にｚがブルームフィルターに含まれないことを表す（よって、ＤＲＡＭキャッシュにない）。しかし、キャッシュタグのｗを含むデータのアクセス要請が受信される場合、テスト関数ｔｅｓｔ（ｗ）はキャッシュタグのｗによって示された通りに、ブルームフィルターアレイ４０１のエントリーを読取り、ブルームフィルターアレイ４０１に存在するキャッシュタグのｗの存在又は不在をテストするため呼び出される。本発明の実施例で、テスト関数ｔｅｓｔ（ｗ）はブルームフィルターアレイ４０１にキャッシュタグのｗが存在することを表す。よって、本発明の実施例で、テスト関数ｔｅｓｔ（ｗ）はフォールスポジティブの例示である。従って、ブルームフィルターは、キャッシュにないキャッシュタグを、確信をもって識別するため使用できるが、どのようなキャッシュタグがキャッシュに存在するかを正確に予測するためには使用できない。
【００５１】
本発明の一つの実施例によると、本発明のブルームフィルターは、ブルームフィルターアレイ４０１の選択された部分又は全体を削除できない。例えば、削除関数はブルームフィルターアレイ４０１の部分または全体を削除するため、キャッシュ制御器に適用される。削除関数はＤＲＡＭキャッシュにキャッシュラインが、これ以上存在しないかキャッシュラインの交替に起因して無くなる場合、使用される。斯かる場合、削除関数は本発明のブルームフィルターアレイ４０１に存在して対応するエントリーを削除できる。ブルームフィルターアレイ４０１が充分に大きくない場合、キャッシュ制御器は新しいエントリーのための空間を備えるためブルームフィルターアレイ４０１の一部を削除する。本発明の他の実施例において、本発明のブルームフィルター４０１は全体のタグの範囲を包括できる、大きなブルームフィルターアレイ４０１が使用でき、又はキャッシュ制御器はブルームフィルター４０１がいっぱいになって、もっと多くのアレイが追加できない場合（ブルームフィルターが非効率的になる場合）、ブルームフィルター４０１を再設定する。
【００５２】
図５は、本発明の一実施例によるキャッシュ制御器により、データ要請を遂行する順序図である。５０１ステップにおいて、ホストコンピュータからのデータアクセスの要請に応じて、ハイブリッドメモリーモジュールのキャッシュ制御器は、要請類型（例えば、読取り、書込み）と要請されたデータに対するホストアドレスを得るため、要請を復号化する。ホストアドレスはタグ（ＤＲＡＭキャッシュタグ）、インデックス、そしてオフセットを含む。５０２ステップにおいて、キャッシュ制御器はＭＤＣ（メタデータキャッシュ）タグ及びＭＤＣインデックスを含むメタデータアドレスを得るため、ホストアドレスのインデックスを復号化する。５０３ステップにおいて、キャッシュ制御器はハイブリッドメモリーモジュールのＳＲＡＭに保存されたメタデータキャッシュからマッチングするキャッシュラインを識別するため、メタデータアドレスのＭＤＣインデックスを使用する。マッチングするキャッシュラインは一対のＭＤＣタグ及びＤＲＡＭキャッシュタグを保存する。
５０４ステップにおいて、メタデータキャッシュにマッチングするキャッシュラインがなければ、キャッシュ制御器はＤＲＡＭ制御器に、ＤＲＡＭキャッシュのメタデータにアクセスして、ＤＲＡＭキャッシュに要請されたデータのキャッシュされたコピーが存在するかを判定（即ち、真のＤＲＡＭキャッシュヒット又はミス）するように要請する。
【００５３】
一方、５０４ステップにおいて、ＳＲＡＭメタデータキャッシュにマッチングするキャッシュラインが識別されると、キャッシュ制御器はマッチングするキャッシュラインのＭＤＣタグがメタデータアドレスのＭＤＣタグとマッチするか否かを判定し、さらにマッチングするＭＤＣタグによって参照されたホストタグが最初のホストタグとマッチングするか否かを判定する。ホストタグがマッチングすると（即ち、メタデータキャッシュヒット）、５０６ステップにおいて、キャッシュ制御器は要請されたデータがＤＲＡＭキャッシュにキャッシュされたと判定し、５１１ステップにおいて、ＤＲＡＭ制御器にＤＲＡＭキャッシュのメタデータにアクセスせずに、マッチングするホストタグを用いてＤＲＡＭキャッシュにアクセスし、ＤＲＡＭキャッシュから要請されたデータを得るように要請する。
【００５４】
そして、５０５ステップにおいて、キャッシュ制御器はＤＲＡＭキャッシュヒット又はミスを判定するため、マッチングするキャッシュラインのＤＲＡＭキャッシュタグ（又はホストアドレスのＤＲＡＭキャッシュタグ）を用いて、ブルームフィルターテストを遂行する。ブルームフィルターテストの結果が否定的であれば、５０９ステップにおいて、キャッシュ制御器はＤＲＡＭキャッシュに要請されたデータがキャッシュされていない（即ち、ＤＲＡＭキャッシュミス）と結論づけ、５１２ステップにおいて、フラッシュ制御器にフラッシュメモリーにアクセスし、要請されたデータを得るように要請する。斯かる場合、ＤＲＡＭキャッシュのメタデータに対するアクセスは省略され、フラッシュメモリーに対するデータアクセスの遅延時間は増加する。
【００５５】
メタデータキャッシュとマッチングせずに（即ち、メタデータキャッシュミス）、ブルームフィルターテストの結果が肯定的（ＤＲＡＭキャッシュヒットのフォールスポジティブでありうる）であれば、５０７ステップ及び５０８ステップにおいて、キャッシュ制御器は、ＤＲＡＭ制御器にＤＲＡＭキャッシュのメタデータに存在するエントリーとホストアドレスのタグ（ＤＲＡＭキャッシュタグ）がマッチするか否かを判定するため、ＤＲＡＭキャッシュのメタデータにアクセスするように要請する。５１０ステップにおいて、ＤＲＡＭキャッシュタグがマッチすれば、キャッシュ制御器は要請されたデータがＤＲＡＭキャッシュにキャッシュされたと判定（即ち、ＤＲＡＭキャッシュヒット）し、５１１ステップにおいて、ＤＲＡＭ制御器にＤＲＡＭキャッシュに存在して要請されたデータにアクセスするように要請する。５０９ステップにおいて、ＤＲＡＭキャッシュタグがマッチに失敗すれば、キャッシュ制御器は、要請されたデータがＤＲＡＭキャッシュにキャッシュされていないと判定（即ち、ＤＲＡＭキャッシュミス）し、５１２ステップにおいて、フラッシュ制御器にフラッシュメモリーに存在する要請されたデータにアクセスするように要請する。
【００５６】
本発明のキャッシュ制御器は、メタデータキャッシュとブルームフィルターの中のいずれか一つ又は双方を支援するように、又は何一つも支援しないように、プログラムできる。例えば、キャッシュ制御器はメタデータキャッシュ及び／又はブルームフィルターの使用不能／使用可能を判定するため、キャッシュヒット比率をモニター（ｍｏｎｉｔｏｒ）する。メタデータキャッシュのヒット比率が、予め定められた第一臨界値より高いと、キャッシュ制御器はブルームフィルターがＤＲＡＭキャッシュのメタデータにアクセスするためのオーバーヘッドを軽減させる効果がほぼ無いとみなされるのでブルームフィルターを非活性化できる。本発明の他の実施例において、メタデータキャッシュヒット比率が予め定められた第二の臨界値より低いと、キャッシュ制御器はブルームフィルターだけ残し、メタデータキャッシュを使用しないこともある。ＤＲＡＭがフラッシュメモリーに対するキャッシュとして使用されないと、キャッシュ制御器はメタデータキャッシュとブルームフィルターの両方を使用しないこともある。
【００５７】
本発明の一実施例によると、キャッシュ制御器は、比較結果を速く得るため、ブルームフィルターとメタデータキャッシュに同時にアクセスできる。本発明の他の実施例によると、キャッシュ制御器は、低電力の条件で順次にブルームフィルターとメタデータキャッシュにアクセスできる。キャッシュ制御器は、ブルームフィルターを先に確認し、ブルームフィルターの結果がメタデータキャッシュミスの場合、キャッシュ制御器はメタデータキャッシュを活性化しない。ブルームフィルターの結果がメタデータキャッシュヒットの場合、キャッシュ制御器はＤＲＡＭキャッシュヒット又はミスを確認するため、メタデータキャッシュを活性化できる。ブルームフィルターの結果がメタデータキャッシュヒットであるが、メタデータキャッシュがフォールス（ｆａｌｓｅ）の場合、キャッシュ制御器は、ＤＲＡＭキャッシュタグにアクセスする。順次のアクセスの順序は反対となることができ、即ち、メタデータキャッシュ、ブルームフィルター、そしてＤＲＡＭキャッシュタグの順序にアクセスできる。
【００５８】
本発明の一つの実施例によると、ハイブリッドメモリーモジュールの動作方法はダイナミックランダムアクセス記憶装置（ＤＲＡＭ）キャッシュ、フラッシュメモリー、そしてメタデータキャッシュを保存するスタティックランダムアクセス記憶装置（ＳＲＡＭ）を含むハイブリッドメモリーモジュールを提供するステップ、ここでＤＲＡＭキャッシュはフラッシュメモリーに保存されたデータのキャッシュされたコピー及びデータのキャッシュされたコピーに対応するメタデータを含み、メタデータキャッシュはＤＲＡＭキャッシュのメタデータの一部のキャッシュされたコピーを含み、ホストコンピュータからハイブリッドメモリーモジュールに保存されたデータに対するデータアクセスの要請を受信するステップ、データのアクセス要請を復号化してホストアドレスを獲得するステップ、ここでホストアドレスはＤＲＡＭキャッシュタグ及びＤＲＡＭキャッシュインデックスを含み、ＤＲＡＭキャッシュインデックスからメタデータアドレスを獲得するステップ、ここでメタデータアドレスはメタデータキャッシュタグ及びメタデータキャッシュインデックスを含み、ＳＲＡＭのメタデータキャッシュに存在してマッチングするメタデータエントリーの存在に基づいて、メタデータキャッシュのヒットを判定するステップ、ここでマッチングするメタデータキャッシュのエントリーは、メタデータキャッシュのタグ及びＤＲＡＭキャッシュタグをペアで含み、メタデータキャッシュヒットの場合、ＤＲＡＭキャッシュのメタデータに対するアクセスを省略して、ＤＲＡＭキャッシュからデータを獲得するステップ、そしてＤＲＡＭキャッシュから獲得されたデータをホストコンピュータに返還するステップを包含する。
【００５９】
メタデータキャッシュのヒットを判定するステップは、メタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーの存在を判定するため、メタデータアドレスのメタデータキャッシュタグを一つ以上のメタデータキャッシュエントリーのメタデータキャッシュタグと比較するステップを、さらに包含する。
【００６０】
ＳＲＡＭはブルームフィルターを、さらに保存でき、ハイブリッドメモリーモジュールの動作方法は、ＳＲＡＭのメタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーが存在しないことに基づいて、メタデータキャッシュミスを判定するステップ、ブルームフィルターによってブルームフィルターテストを遂行するステップ、ブルームフィルターテストの結果に基づいて、ＤＲＡＭキャッシュのミス又は潜在的なＤＲＡＭキャッシュヒットを判定するステップ、ＤＲＡＭキャッシュミスの場合、フラッシュメモリーからデータを獲得するステップ、そしてフラッシュメモリーから獲得されたデータをホストコンピュータに返還するステップをさらに包含する。
【００６１】
メタデータキャッシュタグの比較とブルームフィルターは同時に遂行される。
【００６２】
ハイブリッドメモリーモジュールの動作方法は、メタデータキャッシュミスと潜在的なＤＲＡＭキャッシュヒットの場合、ＤＲＡＭキャッシュのメタデータにアクセスするステップ、ホストアドレスのＤＲＡＭキャッシュタグとＤＲＡＭキャッシュのメタデータの比較に基づいて、ＤＲＡＭキャッシュにデータが保存されたか否かを判定するステップ、ホストアドレスのＤＲＡＭキャッシュタグにマッチングするエントリーがＤＲＡＭキャッシュのメタデータに存在する場合、ＤＲＡＭキャッシュからデータを獲得して、ＤＲＡＭキャッシュから獲得されたデータをホストコンピュータに返還するステップ、そしてホストアドレスのＤＲＡＭキャッシュタグにマッチングするエントリーがＤＲＡＭキャッシュのメタデータに存在しない場合、フラッシュメモリーからデータを獲得し、フラッシュメモリーから獲得したデータをホストコンピュータに返還するステップを、さらに包含する。
【００６３】
ブルームフィルターは複数のエントリーを含むブルームフィルターアレイを包含し、ブルームフィルターテストはブルームフィルターアレイにハッシュ関数を適用し、肯定結果または否定結果を提供する。
【００６４】
ハイブリッドメモリーモジュールの動作方法は、ブルームフィルターアレイを削除するか又はブルームフィルターアレイを再設定するステップを、さらに包含する。
【００６５】
ハイブリッドメモリーモジュールの動作方法は、メタデータキャッシュヒット比率が臨界値より高い場合、ブルームフィルターを使用しないようにキャッシュ制御器をプログラムするステップを、さらに包含する。
【００６６】
ハイブリッドメモリーモジュールの動作方法は、メタデータキャッシュヒット比率が臨界値より低い場合、メタデータキャッシュを使用しないようにキャッシュ制御器をプログラムするステップを、さらに包含する。
【００６７】
ハイブリッドメモリーモジュールの動作方法は、低電力の条件でブルームフィルター及びメタデータキャッシュを順次にアクセスするステップを、さらに包含する。
【００６８】
本発明の他の実施例によると、ハイブリッドメモリーモジュールはフラッシュメモリー、ダイナミックランダムアクセス記憶装置（ＤＲＡＭ）、ここでＤＲＡＭキャッシュはフラッシュメモリーに保存されたデータのキャッシュされたコピーとデータのキャッシュされたコピーに対応するメタデータを含み、ＤＲＡＭキャッシュのメタデータの一部のキャッシュされたコピーを含むメタデータキャッシュを含むスタティックランダムアクセス記憶装置（ＳＲＡＭ）、ホストコンピュータにインターフェースを提供するメモリーインターフェース、ＤＲＡＭキャッシュ及びフラッシュメモリーに保存されたデータにアクセスするメモリーアクセス制御器、ＤＲＡＭキャッシュに対するアクセスを制御するＤＲＡＭ制御器、フラッシュメモリーに対するアクセスを制御するフラッシュ制御器、そしてホストコンピュータから要請されたデータのキャッシュされたコピーの存在を判定するキャッシュ制御器を包含する。
【００６９】
キャッシュ制御器は、データアクセスの要請を復号化してホストアドレスを獲得し、ここでホストアドレスはＤＲＡＭキャッシュタグ及びＤＲＡＭキャッシュインデックスを含み、ＤＲＡＭキャッシュインデックスからメタデータのアドレスを獲得し、ここでメタデータアドレスはメタデータキャッシュタグ及びメタデータキャッシュインデックスを含み、ＳＲＡＭのメタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーの存在に基づいて、メタデータキャッシュヒットを判定し、ここで、マッチングするメタデータキャッシュエントリーはメタデータキャッシュタグ及びＤＲＡＭキャッシュタグのペアを含み、そしてメタデータキャッシュヒットの場合、ＤＲＡＭキャッシュのメタデータに対するアクセスを省略して、ＤＲＡＭ制御器にＤＲＡＭキャッシュからデータを獲得するように指示するように構成される。メモリーアクセス制御器はＤＲＡＭキャッシュから獲得されたデータをホストコンピュータに返還するように構成される。
【００７０】
キャッシュ制御器は、メタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーの存在を判定するため、メタデータアドレスのメタデータキャッシュタグと一つ以上のメタデータキャッシュエントリーのメタデータキャッシュタグを比較するように、さらに構成される。
【００７１】
ＳＲＡＭはブルームフィルターをさらに保存できる。キャッシュ制御器は、ＳＲＡＭのメタデータキャッシュに存在してマッチングするメタデータキャッシュエントリーの存在しないことに基づいて、メタデータキャッシュミスを判定し、ブルームフィルターでブルームフィルターテストを遂行し、ブルームフィルターテストの結果に基づいて、ＤＲＡＭキャッシュミス又は潜在的なＤＲＡＭキャッシュヒットを決定し、ＤＲＡＭキャッシュミスの場合、ＤＲＡＭキャッシュのメタデータに対するアクセスを省略し、フラッシュ制御器にフラッシュメモリーからデータを獲得するように指示し、そしてフラッシュメモリーからデータを獲得するように、さらに構成され、メモリーアクセス制御器はフラッシュメモリーから獲得されたデータをホストコンピュータに返還するように構成される。
【００７２】
キャッシュ制御器は、メタデータキャッシュタグの比較とブルームフィルターテストを同時に遂行する。
【００７３】
メタデータキャッシュミスと潜在的なＤＲＡＭキャッシュヒットの場合、ＤＲＡＭ制御器は、ＤＲＡＭキャッシュのメタデータにアクセスし、そしてホストアドレスのＤＲＡＭキャッシュタグとＤＲＡＭキャッシュのメタデータの比較に基づいて、ＤＲＡＭキャッシュにデータが保存されているか否かを判定するように構成される。ホストアドレスのＤＲＡＭキャッシュタグにマッチングするエントリーが、ＤＲＡＭキャッシュのメタデータに存在する場合、ＤＲＡＭ制御器はＤＲＡＭキャッシュからデータを獲得するように構成され、メモリーアクセス制御器はＤＲＡＭキャッシュから獲得されたデータをホストコンピュータに返還するように構成される。ホストアドレスのＤＲＡＭキャッシュタグにマッチングするエントリーが、ＤＲＡＭキャッシュのメタデータに存在しない場合、フラッシュ制御器はフラッシュメモリーからデータを獲得するように構成され、メモリーアクセス制御器はフラッシュメモリーから獲得したデータをホストコンピュータに返還するように構成される。
【００７４】
ブルームフィルターは複数のエントリーを含むブルームフィルターアレイを包含し、ブルームフィルターテストはブルームフィルターアレイにハッシュ関数を適用し、肯定結果又は否定結果を提供する。
【００７５】
キャッシュ制御器は、ブルームフィルターアレイを削除するか又はブルームフィルターを再設定するように、さらに構成される。
【００７６】
キャッシュ制御器は、メタデータキャッシュヒットの比率が臨界値より高い場合、ブルームフィルターを使用しないようにプログラムされる。
【００７７】
キャッシュ制御器は、メタデータキャッシュヒットの比率が臨界値より低い場合、メタデータキャッシュを使用しないようにプログラムされる。
【００７８】
キャッシュ制御器は、低電力の条件で、ブルームフィルターとメタデータキャッシュに順次にアクセスするように構成される。
【００７９】
上述した本発明の実施例は、ＳＲＡＭメタデータキャッシュ及びブルームフィルターを利用し、ハイブリッドメモリーモジュールに存在するＤＲＡＭキャッシュのメタデータアクセスに対するオーバーヘッドを軽減させるためのシステム及び動作方法を具現する、多様な実施例を説明した。上述した本発明の実施例からの多様な変形及び変更は当業者にとって明らかになるはずである。発明の範囲内に意図した本発明の思想は、添付した請求範囲により記述される。
【産業上の利用可能性】
【００８０】
本発明は、ハイブリッドメモリーモジュール及びその動作方法において、メタデータキャッシュにアクセスするためのオーバ−ヘッドを減らすのに有用である。
【符号の説明】
【００８１】
１００、２００  ハイブリッドメモリーモジュール
１０１、２０１  ＤＲＡＭキャッシュ
１０２、２０２  メタデータ
１０３、２０３  読取りキャッシュ
１０４、２０４  書込みバッファ
１１１、２１１  メモリーアクセス制御器
１２１、２２１  ＤＲＡＭ制御器
１２４、２２４  キャッシュ制御器
１２６、２２６  ＳＲＡＭ
１２７、２２７，３２７  メタデータキャッシュ
１３１、２３１  フラッシュ制御器
１４０、２４０  メモリーインターフェース
１５０、２５０  フラッシュ流れ
１５１、２５１  フラッシュメモリー
２２１  ＤＲＡＭ制御器
２２９、４０１  ブルームフィルターアレイ
２４０  メモリーインターフェース
３０１  ホストアドレス
３０２  タグ
３０３  インデックス
３０４  オフセット
３１１  メタデータアドレス
３１２  メタデータタグ
３１３  メタデータインデックス
３３２  ＤＲＡＭキャッシュタグ
３３３  ＭＤＣタグ
ＭＤＣ  メタデータ
ＤＲＡＭ  ダイナミックランダムアクセスメモリー（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）
ＳＲＡＭ  スタティックランダムアクセスメモリー（ｓｔａｔｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）
【図１】
2018133086.tif 000005
【図２】
2018133086.tif 000006
【図３】
2018133086.tif 000007
【図４】
2018133086.tif 000008
【図５】
2018133086.tif 000009