(57)【要約】      （修正有）【課題】揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部を提供する。【解決手段】各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュのデータを代替する際に、代替される複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する段階と、リフレッシュされるメモリバンクの中の１つに対するリフレッシュバンクＩＤを識別する段階と、代替ＩＤとリフレッシュバンクＩＤとの間に衝突が存在するか否かを判別する段階と、衝突が存在する場合、新たな代替ＩＤを選択する段階と、を有する。【選択図】図９
2018120589.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュのデータを代替する方法であって、
前記方法は、
代替される前記複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する段階と、
リフレッシュされる前記メモリバンクの中の１つに対するリフレッシュバンクＩＤを識別する段階と、
前記代替ＩＤと前記リフレッシュバンクＩＤとの間に衝突が存在するか否かを判別する段階と、
前記衝突が存在する場合、新たな代替ＩＤを選択する段階と、を有することを特徴とする方法。
【請求項２】
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記キャッシュ管理部は、
前記代替ＩＤを識別する代替管理部と、
前記リフレッシュバンクＩＤを識別するリフレッシュコントローラと、
前記衝突が存在するか否かを判別する比較器と、を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記代替管理部は、前記比較器から受信された代替フィードバックに基づいて新たな代替ＩＤを更に選択することを特徴とする請求項３に記載の方法。
【請求項５】
各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュのデータを代替する方法であって、
前記方法は、
代替される前記複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する段階と、
リフレッシュされる前記メモリバンクの中の１つに対する第１リフレッシュバンクＩＤを識別する段階と、
前記代替ＩＤと前記第１リフレッシュバンクＩＤとの間に衝突が存在するか否かを判別する段階と、
前記衝突が存在する場合、前記第１リフレッシュバンクＩＤが変更可能であるか否かを判別する段階と、
前記衝突が存在し、前記第１リフレッシュバンクＩＤが変更可能である場合、第２リフレッシュバンクＩＤを選択する段階と、を有することを特徴とする方法。
【請求項６】
前記揮発性メモリキャッシュは、ＤＲＡＭキャッシュを含むことを特徴とする請求項１又は５に記載の方法。
【請求項７】
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行されることを特徴とする請求項５に記載の方法。
【請求項８】
前記キャッシュ管理部は、
前記代替ＩＤを識別する代替管理部と、
前記第１リフレッシュバンクＩＤを識別するリフレッシュコントローラと、
前記衝突が存在するか否かを判別する比較器と、を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記リフレッシュコントローラは、前記比較器から受信されたリフレッシュフィードバックに基づいて前記第２リフレッシュバンクＩＤを更に選択することを特徴とする請求項８に記載の方法。
【請求項１０】
前記衝突が存在し、前記第１リフレッシュバンクＩＤが変更不可能である場合、新たな代替ＩＤを選択する段階を更に含むことを特徴とする請求項５に記載の方法。
【請求項１１】
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され、
前記キャッシュ管理部は、
前記代替ＩＤを識別する代替管理部と、
前記第１リフレッシュバンクＩＤを識別するリフレッシュコントローラと、
前記衝突が存在するか否かを判別する比較器と、を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第２リフレッシュバンクＩＤが選択された場合、前記第１リフレッシュバンクＩＤのリフレッシュは、前記第１リフレッシュバンクＩＤの定期的に計画された次のリフレッシュまで延期されることを特徴とする請求項５に記載の方法。
【請求項１３】
前記第２リフレッシュバンクＩＤが選択された場合、前記第１リフレッシュバンクＩＤのリフレッシュは、前記第２リフレッシュバンクＩＤがリフレッシュされる時点まで延期されることを特徴とする請求項５に記載の方法。
【請求項１４】
各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュを含むキャッシュを管理するキャッシュ管理部であって、
前記キャッシュ管理部は、
代替される前記複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する代替管理部と、
リフレッシュされる前記メモリバンクの中の１つに対するリフレッシュバンクＩＤを識別するリフレッシュコントローラと、
前記代替ＩＤと前記リフレッシュバンクＩＤとの間に衝突が存在するか否かを判別し、前記衝突が存在する場合、新たな代替ＩＤを選択させるための代替フィードバックを前記代替管理部に伝送するか、又は新たなリフレッシュバンクＩＤを選択させるためのリフレッシュフィードバックを前記リフレッシュコントローラに伝送する比較器と、を備えることを特徴とするキャッシュ管理部。
【請求項１５】
前記揮発性メモリキャッシュは、ＤＲＡＭキャッシュを含むことを特徴とする請求項１４に記載のキャッシュ管理部。
【請求項１６】
前記比較器は、前記代替フィードバックを前記代替管理部に更に伝送することを特徴とする請求項１４に記載のキャッシュ管理部。
【請求項１７】
前記比較器は、前記リフレッシュフィードバックを前記リフレッシュコントローラに更に伝送することを特徴とする請求項１４に記載のキャッシュ管理部。
【請求項１８】
前記比較器は、
前記衝突が存在する場合、前記リフレッシュバンクＩＤが変更可能であるか否かを判別し、
前記リフレッシュバンクＩＤが変更可能である場合、前記リフレッシュフィードバックを前記リフレッシュコントローラに更に伝送し、
前記リフレッシュバンクＩＤが変更不可能である場合、前記代替フィードバックを前記代替管理部に更に伝送することを特徴とする請求項１４に記載のキャッシュ管理部。
【請求項１９】
前記キャッシュは、不揮発性メモリを更に含むことを特徴とする請求項１４に記載のキャッシュ管理部。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、揮発性メモリキャッシュに関し、より詳細には、揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部に関する。
【背景技術】
【０００２】
既存のキャッシュ（ｃａｃｈｅ）代替ポリシーは、一般的に２つの主要設計考慮事項、即ち最高のキャッシュヒット率（ｃａｃｈｅ  ｈｉｔ  ｒａｔｉｏ）を達成し、合理的な具現費用を維持することを考慮する。このような設計考慮事項は一般的にオンチップ（ｏｎ−ｃｈｉｐ）ＳＲＡＭキャッシュが使用されることを仮定する。ＳＲＡＭキャッシュは不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ：ＮＶＭ）であるため、リフレッシュ（ｒｅｆｒｅｓｈ）は一般的にＳＲＡＭキャッシュに用いられない。具現費用及び／又はチップサイズを減らすために、オンチップキャッシュにＤＲＡＭを使用する傾向がある。ＤＲＡＭキャッシュは揮発性メモリであるため、リフレッシュがＤＲＡＭキャッシュで用いられる。また、ＳＲＡＭキャッシュは一般的にＤＲＡＭキャッシュよりも速いが、ＤＲＡＭキャッシュは、一般的にＳＲＡＭキャッシュよりも安く、一般的にＳＲＡＭキャッシュよりも単位面積当たりより高い格納容量を有する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，０７２，８２９号明細書
【特許文献２】米国特許第９，２９３，１８７号明細書
【特許文献３】米国特許出願公開第２００８／０２７０６８３号明細書
【特許文献４】米国特許出願公開第２０１６／０１８８２２２号明細書
【特許文献５】米国特許出願公開第２０１６／０１８８４９０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、揮発性メモリキャッシュのためのリフレッシュを認識する代替ポリシーに基づく揮発性メモリキャッシュのデータを代替する方法及びそのためのキャッシュ管理部を提供することにある。
【課題を解決するための手段】
【０００５】
本明細書の実施形態の一側面はリフレッシュを用いる揮発性メモリキャッシュに対する代替ポリシーに関する。本発明の実施形態に関し、衝突が代替ＩＤとリフレッシュバンクＩＤとの間に存在する場合、代替ＩＤ又はリフレッシュバンクＩＤの中のいずれか１つは遅延を防止するために変更される。より具体的に、本発明の一部の実施形態は、代替ＩＤ及びリフレッシュバンクＩＤを識別し、衝突がある場合、衝突による遅延を防止するために新たな代替ＩＤを選択する。また、本発明の一部の実施形態は、代替ＩＤ及びリフレッシュバンクＩＤを識別し、衝突がある場合、リフレッシュバンクＩＤが変更可能であるか否かを確認し、リフレッシュバンクＩＤが変更可能である場合、衝突による遅延を防止するために新たなリフレッシュバンクＩＤを選択する。
【０００６】
上記目的を達成するためになされた本発明の一態様による方法は、各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｃａｃｈｅ）のデータを代替する方法であって、前記方法は、代替される前記複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する段階と、リフレッシュ（ｒｅｆｒｅｓｈ）される前記メモリバンクの中の１つに対するリフレッシュバンク（ｂａｎｋ）ＩＤを識別する段階と、前記代替ＩＤと前記リフレッシュバンクＩＤとの間に衝突が存在するか否かを判別する段階と、前記衝突が存在する場合、新たな代替ＩＤを選択する段階と、を有する。
【０００７】
前記揮発性メモリキャッシュは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）キャッシュを含み得る。
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され得る。
前記キャッシュ管理部は、前記代替ＩＤを識別する代替管理部と、前記リフレッシュバンクＩＤを識別するリフレッシュコントローラと、前記衝突が存在するか否かを判別する比較器と、を含み得る。
前記代替管理部は、前記比較器から受信された代替フィードバック（ｒｅｐｌａｃｅｍｅｎｔ  ｆｅｅｄｂａｃｋ）に基づいて新たな代替ＩＤを更に選択し得る。
【０００８】
上記目的を達成するためになされた本発明の他の態様による方法は、各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｃａｃｈｅ）のデータを代替する方法であって、前記方法は、代替される前記複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する段階と、リフレッシュ（ｒｅｆｒｅｓｈ）される前記メモリバンクの中の１つに対する第１リフレッシュバンク（ｂａｎｋ）ＩＤを識別する段階と、前記代替ＩＤと前記第１リフレッシュバンクＩＤとの間に衝突が存在するか否かを判別する段階と、前記衝突が存在する場合、前記第１リフレッシュバンクＩＤが変更可能であるか否かを判別する段階と、前記衝突が存在し、前記第１リフレッシュバンクＩＤが変更可能である場合、第２リフレッシュバンクＩＤを選択する段階と、を有する。
【０００９】
前記揮発性メモリキャッシュは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）キャッシュを含み得る。
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され得る。
前記キャッシュ管理部は、前記代替ＩＤを識別する代替管理部と、前記第１リフレッシュバンクＩＤを識別するリフレッシュコントローラと、前記衝突が存在するか否かを判別する比較器と、含み得る。
前記リフレッシュコントローラは、前記比較器から受信されたリフレッシュフィードバック（ｒｅｆｒｅｓｈ  ｆｅｅｄｂａｃｋ）に基づいて前記第２リフレッシュバンクＩＤを更に選択し得る。
前記方法は、前記衝突が存在し、前記第１リフレッシュバンクＩＤが変更不可能である場合、新たな代替ＩＤを選択する段階を更に含み得る。
前記方法は、前記揮発性メモリキャッシュのキャッシュ管理部によって遂行され、前記キャッシュ管理部は、前記代替ＩＤを識別する代替管理部と、前記第１リフレッシュバンクＩＤを識別するリフレッシュコントローラと、前記衝突が存在するか否かを判別する比較器と、含み得る。
前記第２リフレッシュバンクＩＤが選択された場合、前記第１リフレッシュバンクＩＤのリフレッシュは、前記第１リフレッシュバンクＩＤの定期的に計画された次のリフレッシュまで延期され得る。
前記第２リフレッシュバンクＩＤが選択された場合、前記第１リフレッシュバンクＩＤのリフレッシュは、前記第２リフレッシュバンクＩＤがリフレッシュされる時点まで延期され得る。
【００１０】
上記目的を達成するためになされた本発明の一態様によるキャッシュ管理部は、各々が複数のメモリラインを含む１つ以上のメモリバンクを有する揮発性メモリキャッシュを含むキャッシュを管理するキャッシュ管理部であって、前記キャッシュ管理部は、代替される前記複数のメモリラインの中の少なくとも１つに対する代替ＩＤを識別する代替管理部と、リフレッシュ（ｒｅｆｒｅｓｈ）される前記メモリバンクの中の１つに対するリフレッシュバンク（ｂａｎｋ）ＩＤを識別するリフレッシュコントローラと、前記代替ＩＤと前記リフレッシュバンクＩＤとの間の衝突が存在するか否かを判別し、前記衝突が存在する場合、新たな代替ＩＤを選択させるための代替フィードバック（ｒｅｐｌａｃｅｍｅｎｔ  ｆｅｅｄｂａｃｋ）を前記代替管理部に伝送するか、又は新たなリフレッシュバンクＩＤを選択させるためのリフレッシュフィードバック（ｒｅｆｒｅｓｈ  ｆｅｅｄｂａｃｋ）を前記リフレッシュコントローラに伝送する比較器と、を備える。
【００１１】
前記揮発性メモリキャッシュは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）キャッシュを含み得る。
前記比較器は、前記代替フィードバックを前記代替管理部に更に伝送し得る。
前記比較器は、前記リフレッシュフィードバックを前記リフレッシュコントローラに更に伝送し得る。
前記比較器は、前記衝突が存在する場合、前記リフレッシュバンクＩＤが変更可能であるか否かを判別し、前記リフレッシュバンクＩＤが変更可能である場合、前記リフレッシュフィードバックをリフレッシュコントローラに更に伝送し、前記リフレッシュバンクＩＤが変更不可能である場合、前記代替フィードバックを前記代替管理部に更に伝送し得る。
前記キャッシュは、不揮発性メモリを更に含み得る。
【００１２】
本発明の上記特徴及び他の特徴並びにその側面は明細書、請求項、及び図面に関して認識され、理解される。
【発明の効果】
【００１３】
本発明の揮発性メモリキャッシュのデータを代替する方法によれば、衝突が代替ＩＤとリフレッシュバンクＩＤとの間に存在する場合、代替ＩＤ又はリフレッシュバンクＩＤの中のいずれか１つを変更することで遅延を防止することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による広帯域幅メモリスタックの斜視図である。
【図２】本発明の一実施形態による広帯域幅メモリスタックをレベル３キャッシュとして使用するプロセシングシステムのブロック図である。
【図３】本発明の一実施形態による広帯域幅メモリスタックのブロック図である。
【図４】一実施形態によるバックサイドＤＲＡＭキャッシュを含むＮＶＤＩＭＭの一例を示す。
【図５】本発明の一実施形態によるロジックダイのブロック図である。
【図６】本発明の他の実施形態によるロジックダイのブロック図である。
【図７】本発明の更に他の実施形態によるロジックダイのブロック図である。
【図８】本発明の一実施形態によるＮＶＭ／キャッシュコントローラのブロック図である。
【図９】本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの一方法を説明するフローチャートである。
【図１０】本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの他の方法を説明するフローチャートである。
【図１１】本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの更に他の方法を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
本発明の実施形態において、衝突（ｃｏｎｆｌｉｃｔ）が代替ＩＤ（ｒｅｐｌａｃｅｍｅｎｔ  ＩＤ（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ））とリフレッシュバンクＩＤ（ｒｅｆｒｅｓｈ  ｂａｎｋ  ＩＤ）との間に存在する場合、代替ＩＤ又はリフレッシュバンクＩＤの中のいずれか１つは遅延を防止するために変更される。より具体的に、本発明の一部の実施形態は、代替ＩＤ及びリフレッシュバンクＩＤを識別し、衝突がある場合、衝突による遅延を防止するために新たな代替ＩＤを選択する。また、本発明の一部の実施形態は、代替ＩＤ及びリフレッシュバンクＩＤを識別し、衝突がある場合、リフレッシュバンクＩＤが変更可能であるか否かを確認し、リフレッシュバンクＩＤが変更可能である場合、衝突による遅延を防止するために新たなリフレッシュバンクＩＤを選択する。
【００１６】
図面に関連して以下に説明する詳細な説明は、本発明によって提供される揮発性メモリキャッシュ（ｃａｃｈｅｓ）のためのリフレッシュを認識する代替ポリシーの例示的な実施形態に対する説明として意図し、本発明が構成されるか、或いは利用可能な唯一の形態を示すために意図するものではない。本明細書は図示する実施形態に関連して本発明の特徴を説明する。しかし、本発明の実施形態は、本発明の思想及び範囲内に含まれ、また意図された他の実施形態と同一であるか、或いは同等な機能及び構造が達成されることが理解される。本明細書の他の箇所で言及するように、同じ要素符号は同じ要素又は特徴を示すものと意図する。
【００１７】
２０１６年１１月１１日付で出願し、「Ｂｙｔｅ−Ａｄｄｒｅｓｓａｂｌｅ  Ｆｌａｓｈ−Ｂａｓｅｄ  Ｍｏｄｕｌｅ」という名称の米国特許出願１５／３４９，９４９号、２０１６年９月２１日付で出願し、「ＨＢＭ  ｗｉｔｈ  Ｉｎ−Ｍｅｍｏｒｙ  Ｃａｃｈｅ」という名称の米国特許出願１５／２７２，３３９号、そして２０１６年１０月４日付で出願し、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ｏｐｅｒａｔｉｎｇ  ａ  ＤＤＲ−Ｃｏｍｐａｔｉｂｌｅ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｍｅｍｏｒｙ  ｍｏｄｕｌｅ」という名称の米国特許出願１５／２８５，４２３号の全体内容は全体的に参照文献として本明細書に引用される。
【００１８】
広帯域幅メモリ（ｈｉｇｈ  ｂａｎｄｗｉｄｔｈ  ｍｅｍｏｒｙ：ＨＢＭ）は高性能の３ＤスタックされたＤＲＡＭ（ｔｈｒｅｅ  ｄｉｍｅｎｓｉｏｎａｌ（３Ｄ）−ｓｔａｃｋｅｄ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）である。第２世代広帯域幅メモリはスタック（ｓｔａｃｋ）当たり８個のダイ（ｄｉｅｓ）まで含むことができ、２ＧＴ／ｓ（ｇｉｇａ  ｔｒａｎｓｆｅｒｓ  ｐｅｒ  ｓｅｃｏｎｄ）までピン伝送速度（ｐｉｎ  ｔｒａｎｓｆｅｒ  ｒａｔｅｓ）を提供する。インターフェイス（ｉｎｔｅｒｆａｃｅ）は、総１０２４ビット幅アクセスのために、８個のチャンネルを含み、各チャンネルは１２８ビット幅である。第２世代広帯域幅メモリは、パッケージ（ｐａｃｋａｇｅ）当たり２５６ＧＢ／ｓメモリ帯域幅に到達し、パッケージ当たり８ＧＢまでの格納容量を有する。第２世代広帯域幅メモリのインターフェイスはＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）によって受け入れられた標準に準拠する。
【００１９】
図１は、本発明の一実施形態による広帯域幅メモリスタックの斜視図である。図１を参照すると、広帯域幅メモリスタック（ＨＢＭ  ｓｔａｃｋ）１０５の物理的な構成は、ロジックダイ（ｌｏｇｉｃ  ｄｉｅ）１１０、及びロジックダイ１１０上にスタックされた（ｓｔａｃｋｅｄ）複数のＤＲＡＭダイ（例えば、８個のダイ）を含む３Ｄ  ＤＲＡＭ又はＤＲＡＭスタック（ｔｈｒｅｅ  ｄｉｍｅｎｓｉｏｎａｌ  ＤＲＡＭ  ｏｒ  ＤＲＡＭ  ｓｔａｃｋ）１１５を有する。相互連結（ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎｓ）はＴＳＶｓ（ｔｈｒｏｕｇｈ−ｓｉｌｉｃｏｎ  ｖｉａｓ）を利用してスタック内に形成される。他の広帯域幅メモリスタックは、ロジックダイ内に接続及び信号処理回路を含み、その結果としてＤＲＡＭチャンネルインターフェイスが実質的に変更されずに広帯域幅メモリの外部インターフェイスからホストプロセッサに提供される。
【００２０】
図２は、本発明の一実施形態による広帯域幅メモリスタックをレベル３キャッシュとして使用するプロセシングシステムのブロック図である。図２を参照すると、広帯域幅メモリスタック（ＨＢＭ／ＣＭ）１０５は、ホストプロセッサ１５５（ｈｏｓｔ  ｐｒｏｃｅｓｓｏｒ、ＣＰＵ又はＧＰＵ）に連結される。ホストプロセッサ１５５は複数のコア（Ｃ）１６０を含み、各コアはレベル１（Ｌ１）キャッシュ１５０を有する。レベル２（Ｌ２）キャッシュ１２０はレベル１（Ｌ１）キャッシュ１５０に連結され、第１メモリコントローラ（ＭＣ１）１２５はオフチップメインメモリ（ｏｆｆ−ｃｈｉｐ  ｍａｉｎ  ｍｅｍｏｒｙ）１３０にインターフェイスを提供する。第２メモリコントローラ（ＭＣ２）１３５は広帯域幅メモリスタック１０５にインターフェイスを提供する。広帯域幅メモリスタック１０５は広帯域幅メモリスタック１０５のロジックダイ内にキャッシュ管理部（ｃａｃｈｅ  ｍａｎａｇｅｒ：ＣＭ）を含む。広帯域幅メモリスタック１０５は、その中に集積されたキャッシュマネージャ（ｍａｎａｇｅｒ）（ＣＭ）と共に、ホストプロセッサ１５５によってレベル３キャッシュとして（又は、例えばレベル３キャッシュも有するシステムのレベル４キャッシュとして）使用される。広帯域幅メモリインターフェイス１４５はＪＥＤＥＣに準拠するインターフェイスである。即ち、広帯域幅メモリインターフェイス１４５は導電体（ｃｏｎｄｕｃｔｏｒｓ）及びＪＥＤＥＣ標準によって明示されたシグナリングプロトコル（ｓｉｇｎａｌｉｎｇ  ｐｒｏｔｏｃｏｌｓ）を提供する。一実施形態において、広帯域幅メモリスタック１０５及びホストプロセッサ１５５はシリコンインターポーザ（ｓｉｌｉｃｏｎ  ｉｎｔｅｒｐｏｓｅｒ）１４０内に配置される。シリコンインターポーザ１４０は広帯域幅メモリスタック１０５とホストプロセッサ１５５とを連結する。
【００２１】
図３は、本発明の一実施形態による広帯域幅メモリスタックのブロック図である。図３を参照すると、一部の実施形態において、広帯域幅メモリスタック１０５は、チャンネルと称され、Ｃｈ０−Ｃｈ７として図３で示した８個の内部インターフェイスを通じて、ＤＲＡＭスタック１１５（例えば、図１参照）内のＤＲＡＭに連結されるロジックダイ１１０を含む。各レベルはダイと称される。例えば、Ｃｈ０及びＣｈ１はＤＲＡＭダイ０にあり、Ｃｈ２及びＣｈ３はＤＲＡＭダイ１にあり、Ｃｈ４及びＣｈ５はＤＲＡＭダイ２にあり、Ｃｈ６及びＣｈ７はＤＲＡＭダイ３にある。
【００２２】
そして、全てのＤＲＡＭダイの下に、ロジックを追加できるロジックダイがある。ロジックダイは第２メモリコントローラ１３５（例えば、図２参照）と通信する。ロジックダイと第２メモリコントローラ１３５との間のインターフェイスはＪＥＤＥＣ標準によって定義される。
【００２３】
一実施形態において、一部のキャッシュ管理ロジックは、広帯域幅メモリ自体が全体として自体的に管理されるキャッシュ（ｓｅｌｆ−ｍａｎａｇｅｄ  ｃａｃｈｅ）として扱うことができるように、ロジックダイに追加される。このような実施形態により、ホストプロセッサ１５５はキャッシュを制御するための追加的な作業を遂行する必要がない。
【００２４】
図４は、一実施形態によるバックサイドＤＲＡＭキャッシュを含むＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）の一例を示す。図４を参照すると、ＮＶＤＩＭＭ２０１ａは、不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ：ＮＶＭ）２１０、バックサイドＤＲＡＭキャッシュ（ｂａｃｋｓｉｄｅ  ＤＲＡＭ  ｃａｃｈｅ）２１１ａ、及びＮＶＭ／キャッシュコントローラ（ＮＶＭ／ｃａｃｈｅ  ｃｏｎｔｒｏｌｌｅｒ）２２０を含む。ＮＶＤＩＭＭ２０１ａのデータバッファ（ｄａｔａ  ｂｕｆｆｅｒ）２３０はホストメモリコントローラによって要請されるＮＶＤＩＭＭ２０１ａの状態のデータをデータ（ＤＱ）バスを通じて提供する。ＮＶＤＩＭＭ２０１ａのＲＣＤ（ｒｅｇｉｓｔｅｒｉｎｇ  ｃｌｏｃｋ  ｄｒｉｖｅｒ）２３１はデータバッファ２３０に命令シークェンス（ｃｏｍｍａｎｄ  ｓｅｑｕｅｎｃｅｓ）を生成する制御及びアドレスバッファ（ｃｏｎｔｒｏｌ  ａｎｄ  ａｄｄｒｅｓｓ（ＣＡ）  ｂｕｆｆｅｒ）を提供する。バックサイドＤＲＡＭキャッシュ２１１ａは、ＮＶＭ／キャッシュコントローラ２２０に連結され、ＮＶＭ／キャッシュコントローラ２２０を通じてデータバッファ２３０からのデータ及びＲＣＤ２３１からの制御及びアドレスを受信する。これは、ホストメモリコントローラによるバックサイドＤＲＡＭキャッシュ２１１ａへの直接的なアクセスを禁止する。ホストメモリコントローラは、直接的なモード（ｄｉｒｅｃｔ  ｍｏｄｅ）ではバックサイドＤＲＡＭキャッシュ２１１ａにアクセスできるが、キャッシュモード（ｃａｃｈｅ  ｍｏｄｅ）ではバックサイドＤＲＡＭキャッシュ２１１ａに直接アクセスできない。バックサイドＤＲＡＭキャッシュ２１１ａへのアクセスは、従来のＤＲＡＭへのアクセス時間よりも長いアクセス時間を引き起こすメモリコントローラとメモリモジュールとの間のハンドシェーキング（ｈａｎｄｓｈａｋｉｎｇ）を要求する。
【００２５】
ＤＲＡＭ（例えば、８ＧＢ広帯域幅メモリ）をキャッシュとして利用する場合、リフレッシュの影響は無視できない。これは、キャッシュライン（ｃａｃｈｅ  ｌｉｎｅ）が追い出されるか（ｅｖｉｃｔ、又は除去されるか）又は挿入されるために選択され、選択されたキャッシュラインがリフレッシュされ始めたばかりのバンク内にもあるため、選択されたキャッシュラインが追い出されるか又は挿入される前に遅延が要求されることを意味する。この待ちは次の動作に対してより高い待機行列（ｑｕｅｕｉｎｇ）の遅延を引き起こす。
【００２６】
本実施形態によるリフレッシュを認識するキャッシュ代替ポリシーは既存の代替ポリシーに基づいて構築される。例えば、既存の代替ポリシーは本実施形態をその内に含むように修正される。本実施形態は、ＬＲＵ基礎（Ｌｅａｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ−ｂａｓｅｄ：ＬＲＵ−ｂａｓｅｄ）代替ポリシー、ランダム（ｒａｎｄｏｍ）代替ポリシー、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）代替ポリシー、ｎＭＲＵ（ｎｏｔ−Ｍｏｓｔ−Ｒｅｃｅｎｔｌｙ−Ｕｓｅｄ）代替ポリシー、及び／又はその他の種類の中の任意のものに基づく。
【００２７】
一般的な代替ポリシーは代替ＩＤを確認する。本実施形態によるリフレッシュを認識するキャッシュ代替ポリシーは代替ＩＤ及びリフレッシュバンクＩＤの両方を確認する。代替ＩＤ及びリフレッシュバンクＩＤに基づいて、本実施形態は、代替するためのより良いラインを判別するか、或いはリフレッシュするためのより良いバンクを判別する。
【００２８】
一部の実施形態において、代替ＩＤがリフレッシュバンクＩＤと衝突すると、これは代替されるラインがリフレッシュによって影響を受けることを意味し、これにより、その次の最適な代替ＩＤが選択される。一部の実施形態において、代替ＩＤがリフレッシュＩＤと衝突すると、リフレッシュされる次のリフレッシュバンクが選択される。延期されたバンクは、次のリフレッシュバンクが元のリフレッシュされる時点でリフレッシュされるか、又はリフレッシュバンクの定期的に計画された次のリフレッシュまで延期される。
【００２９】
図５は、本発明の一実施形態によるロジックダイのブロック図である。図５を参照すると、ロジックダイ（例えば、図１〜図３参照）１１０はキャッシュ管理部（ｃａｃｈｅ  ｍａｎａｇｅｒ）６００を含む。キャッシュ管理部６００は揮発性メモリキャッシュを管理する。キャッシュ管理部６００は、代替管理部（ｒｅｐｌａｃｅｍｅｎｔ  ｍａｎａｇｅｒ）３００、リフレッシュコントローラ（ｒｅｆｒｅｓｈ  ｃｏｎｔｒｏｌｌｅｒ）４００、及び比較器（ｃｏｍｐａｒａｔｏｒ）５００を含む。揮発性メモリキャッシュは３Ｄ  ＤＲＡＭキャッシュ（例えば、図１のＤＲＡＭスタック１１５参照）である。揮発性メモリキャッシュは１つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
【００３０】
代替管理部３００は代替ポリシーに基づいて代替ＩＤ３２０を判別する（又は識別する）。代替管理部３００は代替ＩＤ３２０を比較器５００に提供する。
【００３１】
リフレッシュコントローラ４００は任意のバンクのリフレッシュが必要であるか否かを判別する。リフレッシュが必要である場合、リフレッシュコントローラ４００はリフレッシュポリシーに基づいてリフレッシュバンクＩＤ４２０を判別する（又は識別する）。リフレッシュコントローラ４００はリフレッシュバンクＩＤ４２０を比較器５００に提供する。また、リフレッシュコントローラ４００は最終リフレッシュバンクＩＤ４６０としてリフレッシュバンクＩＤ４２０を出力する。
【００３２】
リフレッシュが必要でない場合、リフレッシュコントローラ４００は、リフレッシュバンクＩＤ４２０を伝送するのではなく、リフレッシュが必要でないことを示す信号を比較器５００に伝送することができるが、本発明はこれに制限されない。例えば、リフレッシュが必要でない場合、リフレッシュコントローラ４００は比較器５００に何も伝送しない。
【００３３】
比較器５００は代替ＩＤ３２０とリフレッシュバンクＩＤ４２０とを比較する。比較器５００は代替ＩＤ３２０とリフレッシュバンクＩＤ４２０との間に衝突があるか否かを判別する。比較器５００は衝突が存在するか否かを示す代替フィードバック（ｒｅｐｌａｃｅｍｅｎｔ  ｆｅｅｄｂａｃｋ）３４０を代替管理部３００に提供する。一実施形態において、代替フィードバック３４０は、衝突が存在する場合に比較器５００によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器５００は、衝突が存在しない場合に第１レベルで代替フィードバック３４０を提供し、衝突が存在する場合に第２レベルで代替フィードバック３４０を提供する。
【００３４】
代替管理部３００が、衝突が存在しないことを示す代替フィードバック３４０を受信した場合（又は代替管理部３００が代替フィードバック３４０を受信しない場合）、代替管理部３００は最終代替ＩＤ３６０として代替ＩＤ３２０を出力する。
【００３５】
代替管理部３００が、衝突が存在することを示す代替フィードバック３４０を受信した場合、代替管理部３００は、代替ポリシーに基づいて次の代替ＩＤを選択し、最終代替ＩＤ３６０として次の代替ＩＤを出力する。次の代替ＩＤは、次の最適代替ＩＤ、次の最も古い（ｏｌｄｅｓｔ）代替ＩＤ等である。
【００３６】
即ち、代替管理部３００は比較器５００から受信された代替フィードバック３４０に基づいて新たな代替ＩＤを選択する。
【００３７】
図６は、本発明の他の実施形態によるロジックダイのブロック図である。図６を参照すると、ロジックダイ１１２はキャッシュ管理部６０２を含む。キャッシュ管理部６０２は揮発性メモリキャッシュを管理する。キャッシュ管理部６０２は、代替管理部３０２、リフレッシュコントローラ４０２、及び比較器５０２を含む。揮発性メモリキャッシュは３Ｄ  ＤＲＡＭキャッシュ（例えば、図１のＤＲＡＭスタック１１５参照）である。揮発性メモリキャッシュは１つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
【００３８】
代替管理部３０２は代替ポリシーに基づいて代替ＩＤ３２２を判別する（又は識別する）。代替管理部３０２は代替ＩＤ３２２を比較器５０２に提供する。また、代替管理部３０２は最終代替ＩＤ３６２として代替ＩＤ３２２を出力する。
【００３９】
リフレッシュコントローラ４０２は任意のバンクのリフレッシュが必要であるか否かを判別する。リフレッシュが必要である場合、リフレッシュコントローラ４０２はリフレッシュポリシーに基づいてリフレッシュバンクＩＤ４２２を判別する（又は識別する）。リフレッシュコントローラ４０２はリフレッシュバンクＩＤ４２２を比較器５０２に提供する。
【００４０】
リフレッシュが必要でない場合、リフレッシュコントローラ４０２は、リフレッシュバンクＩＤ４２２を伝送するのではなく、リフレッシュが必要でないことを示す信号を比較器５０２に伝送できるが、本発明はこれに制限されない。例えば、リフレッシュが必要でない場合、リフレッシュコントローラ４０２は比較器５０２に何も伝送しない。
【００４１】
比較器５０２は代替ＩＤ３２２とリフレッシュバンクＩＤ４２２とを比較する。比較器５０２は代替ＩＤ３２２とリフレッシュバンクＩＤ４２２との間に衝突があるか否かを判別する。比較器５０２は衝突が存在するか否かを示すリフレッシュフィードバック４４２をリフレッシュコントローラ４０２に提供する。一実施形態において、リフレッシュフィードバック４４２は、衝突が存在する場合に比較器５０２によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器５０２は、衝突が存在しない場合に第１レベルでリフレッシュフィードバック４４２を提供し、衝突が存在する場合に第２レベルでリフレッシュフィードバック４４２を提供する。
【００４２】
リフレッシュコントローラ４０２が、衝突が存在しないことを示すリフレッシュフィードバック４４２を受信した場合（又はリフレッシュコントローラ４０２がリフレッシュフィードバック４４２を受信しない場合）、リフレッシュコントローラ４０２は最終リフレッシュバンクＩＤ４６２としてリフレッシュバンクＩＤ４２２を出力する。
【００４３】
リフレッシュコントローラ４０２が、衝突が存在することを示すリフレッシュフィードバック４４２を受信した場合、リフレッシュコントローラ４０２は、リフレッシュバンクＩＤ４２２が延期（又は変更）可能であるか否かを判別し、リフレッシュバンクＩＤ４２２が延期（又は変更）可能である場合に、リフレッシュポリシーに基づいて次のリフレッシュバンクＩＤを選択し、最終リフレッシュバンクＩＤ４６２として次のリフレッシュバンクＩＤを出力する。次のリフレッシュバンクＩＤは、次の最適リフレッシュバンクＩＤ、次の最も古いリフレッシュバンクＩＤ等である。
【００４４】
即ち、リフレッシュコントローラ４０２は比較器５０２から受信されたリフレッシュフィードバック４４２に基づいて次のリフレッシュバンクＩＤを選択する。
【００４５】
延期されたバンクは、次のリフレッシュバンクが元のリフレッシュされる時点でリフレッシュされるか、又はリフレッシュバンクの定期的に計画された次のリフレッシュまで遅延される。
【００４６】
図７は、本発明の更に他の実施形態によるロジックダイのブロック図である。図７を参照すると、ロジックダイ１１４はキャッシュ管理部６０４を含む。キャッシュ管理部６０４は揮発性メモリキャッシュを管理する。キャッシュ管理部６０４は、代替管理部３０４、リフレッシュコントローラ４０４、及び比較器５０４を含む。揮発性メモリキャッシュは３Ｄ  ＤＲＡＭキャッシュ（例えば、図１のＤＲＡＭスタック１１５参照）である。揮発性メモリキャッシュは１つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
【００４７】
代替管理部３０４は代替ポリシーに基づいて代替ＩＤ３２４を判別する（又は識別する）。代替管理部３０４は代替ＩＤ３２４を比較器５０４に提供する。
【００４８】
リフレッシュコントローラ４０４は任意のバンクのリフレッシュが必要であるか否かを判別する。リフレッシュが必要である場合、リフレッシュコントローラ４０４はリフレッシュポリシーに基づいてリフレッシュバンクＩＤ４２４を判別する（又は識別する）。リフレッシュコントローラ４０４はリフレッシュバンクＩＤ４２４を比較器５０４に提供する。
【００４９】
リフレッシュが必要でない場合、リフレッシュコントローラ４０４は、リフレッシュバンクＩＤ４２４を伝送するのではなく、リフレッシュが必要でないことを示す信号を比較器５０４に伝送することができるが、本発明はこれに制限されない。例えば、リフレッシュが必要でない場合、リフレッシュコントローラ４０４は比較器５０４に何も伝送しない。
【００５０】
比較器５０４は代替ＩＤ３２４とリフレッシュバンクＩＤ４２４とを比較する。比較器５０４は代替ＩＤ３２４とリフレッシュバンクＩＤ４２４との間に衝突があるか否かを判別する。衝突が存在する場合、比較器５０４はリフレッシュバンクＩＤ４２４が延期可能であるか否かを判別する。
【００５１】
リフレッシュバンクＩＤ４２４が延期され、衝突が存在する場合、比較器５０４はリフレッシュバンクＩＤ４２４が変更されなければならないことを示すリフレッシュフィードバック４４４をリフレッシュコントローラ４０４に提供する。一実施形態において、リフレッシュフィードバック４４４は、リフレッシュバンクＩＤ４２４が変更されなければならない場合に比較器５０４によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器５０４は、リフレッシュバンクＩＤ４２４が変更されてはならない場合に第１レベルでリフレッシュフィードバック４４４を提供し、リフレッシュバンクＩＤ４２４が変更されなければならない場合に第２レベルでリフレッシュフィードバック４４４を提供する。
【００５２】
リフレッシュバンクＩＤ４２４が延期されず、衝突が存在する場合、比較器５０４は代替ＩＤ３２４が変更されなければならないことを示す代替フィードバック３４４を代替管理部３０４に提供する。一実施形態において、代替フィードバック３４４は代替ＩＤ３２４が変更されなければならない場合に比較器５０４によってのみ提供され、そうでない場合に提供されないが、本発明はこれに制限されない。例えば、比較器５０４は、代替ＩＤ３２４が変更されてはならない場合に第１レベルで代替フィードバック３４４を提供し、代替ＩＤ３２４が変更されなければならない場合に第２レベルで代替フィードバック３４４を提供する。
【００５３】
リフレッシュコントローラ４０４が、リフレッシュバンクＩＤ４２４が変更されてはならないことを示すリフレッシュフィードバック４４４を受信した場合（又はリフレッシュコントローラ４０４がリフレッシュフィードバック４４４を受信しない場合）、リフレッシュコントローラ４０４は最終リフレッシュバンクＩＤ４６４としてリフレッシュバンクＩＤ４２４を出力する。
【００５４】
リフレッシュコントローラ４０４が、リフレッシュバンクＩＤ４２４が変更されなければならないことを示すリフレッシュフィードバック４４４を受信した場合、リフレッシュコントローラ４０４は、リフレッシュポリシーに基づいて次のリフレッシュバンクＩＤを選択し、最終リフレッシュバンクＩＤ４６４として次のリフレッシュバンクＩＤを出力する。次のリフレッシュバンクＩＤは、次の最適リフレッシュバンクＩＤ、次の最も古いリフレッシュバンクＩＤ等である。
【００５５】
即ち、リフレッシュコントローラ４０４は比較器５０４から受信されたリフレッシュフィードバック４４４に基づいて次のリフレッシュバンクＩＤを選択する。
【００５６】
延期されたバンクは、次のリフレッシュバンクが元のリフレッシュされる時点でリフレッシュされるか、又はリフレッシュバンクの定期的に計画された次のリフレッシュまで延期される。即ち、第２リフレッシュバンクＩＤが選択された場合、第１リフレッシュバンクＩＤのリフレッシュは第２リフレッシュバンクＩＤがリフレッシュされる時点まで延期される。
【００５７】
代替管理部３０４が、代替ＩＤ３２４が変更されてはならないことを示す代替フィードバック３４４を受信した場合（又は代替管理部３０４が代替フィードバック３４４を受信しない場合）、代替管理部３０４は最終代替ＩＤ３６４として代替ＩＤ３２４を出力する。
【００５８】
代替管理部３０４が、代替ＩＤ３２４が変更されなければならないことを示す代替フィードバック３４４を受信した場合、代替管理部３０４は、代替ポリシーに基づいて次の代替ＩＤを選択し、最終代替ＩＤ３６４として次の代替ＩＤを出力する。次の代替ＩＤは、次の最適代替ＩＤ、次の最も古い代替ＩＤ等である。
【００５９】
即ち、代替管理部３０４は比較器５０４から受信された代替フィードバック３４４に基づいて新たな代替ＩＤを選択する。
【００６０】
図８は、本発明の一実施形態によるＮＶＭ／キャッシュコントローラのブロック図である。図８を参照すると、ＮＶＭ／キャッシュコントローラ２２０（図４参照）は、代替管理部３０６、リフレッシュコントローラ４０６、及び比較器５０６を含む。ＮＶＭ／キャッシュコントローラ２２０は揮発性メモリキャッシュを管理する。揮発性メモリキャッシュはバックサイドＤＲＡＭキャッシュ（例えば、図４のバックサイドＤＲＡＭキャッシュ２１１ａ参照）である。揮発性メモリキャッシュは１つ以上のメモリバンクを含み、メモリバンクの各々は複数のメモリラインを含む。
【００６１】
本実施形態において、ＮＶＭ／キャッシュコントローラ２２０の代替管理部３０６、リフレッシュコントローラ４０６、及び比較器５０６は、それぞれ図５の代替管理部３００、リフレッシュコントローラ４００、及び比較器５００と実質的に同様の方式で動作する。従って、これらの詳細な説明を省略する。
【００６２】
例えば、比較器５０６は、代替管理部３０６から代替ＩＤ３２６を受信し、リフレッシュコントローラ４０６からリフレッシュバンクＩＤ４２６を受信する。比較器５０６は衝突が存在するか否かに基づいて代替フィードバック３４６を出力する。代替管理部３０６は最終代替ＩＤ３６６を出力し、リフレッシュコントローラ４０６は最終リフレッシュバンクＩＤ４６６を出力する。
【００６３】
他の実施形態において、ＮＶＭ／キャッシュコントローラ２２０の代替管理部３０６、リフレッシュコントローラ４０６、及び比較器５０６は、それぞれ図６の代替管理部３０２、リフレッシュコントローラ４０２、及び比較器５０２と実質的に同様の方式で動作する。従って、これらの詳細な説明を省略する。
【００６４】
例えば、比較器５０６は、代替管理部３０６から代替ＩＤ３２６を受信し、リフレッシュコントローラ４０６からリフレッシュバンクＩＤ４２６を受信する。比較器５０６は衝突が存在するか否かに基づいてリフレッシュフィードバック４４６を出力する。代替管理部３０６は最終代替ＩＤ３６６を出力し、リフレッシュコントローラ４０６は最終リフレッシュバンクＩＤ４６６を出力する。
【００６５】
更に他の実施形態において、ＮＶＭ／キャッシュコントローラ２２０の代替管理部３０６、リフレッシュコントローラ４０６、及び比較器５０６は、それぞれ図７の代替管理部３０４、リフレッシュコントローラ４０４、及び比較器５０４と実質的に同様の方式で動作する。従って、これらの詳細な説明を省略する。
【００６６】
例えば、比較器５０６は、代替管理部３０６から代替ＩＤ３２６を受信し、リフレッシュコントローラ４０６からリフレッシュバンクＩＤ４２６を受信する。比較器５０６は、衝突が存在し、リフレッシュバンクＩＤ４２６が変更可能である場合、リフレッシュフィードバック４４６を出力する。比較器５０６は、衝突が存在し、リフレッシュバンクＩＤ４２６が変更不可能である場合、代替フィードバック３４６を出力する。代替管理部３０６は最終代替ＩＤ３６６を出力し、リフレッシュコントローラ４０６は最終リフレッシュバンクＩＤ４６６を出力する。
【００６７】
図９は、本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの一方法を説明するフローチャートである。揮発性メモリキャッシュは１つ以上のメモリバンクを含む。メモリバンクの各々は複数のメモリラインを含む。揮発性メモリキャッシュはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）キャッシュである。
【００６８】
図９を参照すると、本実施形態において、１０００段階で、代替される複数のメモリラインの中の少なくとも１つに対する代替ＩＤが識別される。１０１０段階で、リフレッシュされるメモリバンクの中の１つに対するリフレッシュバンクＩＤが識別される。
【００６９】
１０２０段階で、衝突が代替ＩＤとリフレッシュバンクＩＤとの間に存在するか否かが判別される。衝突が存在しないと判別された場合、段階１０３０で、代替ＩＤ又はリフレッシュバンクＩＤを変更するための動作は行われない。衝突が存在すると判別された場合、段階１０４０で、新たな代替ＩＤが選択される。
【００７０】
図９の方法はロジックダイのキャッシュ管理部によって遂行される（例えば、図１〜図３及び図５〜図７参照）。また、図９の方法はＮＶＭ／キャッシュコントローラによって遂行される（例えば、図４及び図８参照）。
【００７１】
図１０は、本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの他の方法を説明するフローチャートである。揮発性メモリキャッシュは１つ以上のメモリバンクを含む。メモリバンクの各々は複数のメモリラインを含む。揮発性メモリキャッシュはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）キャッシュである。
【００７２】
図１０を参照すると、本実施形態において、１１００段階で、代替される複数のメモリラインの中の少なくとも１つに対する代替ＩＤが識別される。１１１０段階で、リフレッシュされるメモリバンクの中の１つに対するリフレッシュバンクＩＤ（例えば、第１リフレッシュバンクＩＤ）が識別される。
【００７３】
１１２０段階で、衝突が代替ＩＤとリフレッシュバンクＩＤとの間に存在するか否かが判別される。衝突が存在しないと判別された場合、段階１１３０で、代替ＩＤ又はリフレッシュバンクＩＤを変更するための動作は行われない。衝突が存在すると判別された場合、段階１１４０で、リフレッシュバンクＩＤが変更可能であるか否かが判別される。また、衝突が存在し、リフレッシュバンクＩＤが変更されないと判別された場合、１１３０段階で、代替ＩＤ又はリフレッシュバンクＩＤを変更するための動作は行われない。衝突が存在し、リフレッシュバンクＩＤが変更可能であると判別された場合、１１５０段階で、新たなリフレッシュバンクＩＤ（例えば、第２リフレッシュバンクＩＤ）が選択される。
【００７４】
図１０の方法はロジックダイのキャッシュ管理部によって遂行される（例えば、図１〜図３及び図５〜図７参照）。また、図１０の方法はＮＶＭ／キャッシュコントローラによって遂行される（例えば、図４及び図８参照）。
【００７５】
図１１は、本発明の一実施形態による揮発性メモリキャッシュに対する代替ポリシーの更に他の方法を説明するフローチャートである。揮発性メモリキャッシュは１つ以上のメモリバンクを含む。メモリバンクの各々は複数のメモリラインを含む。揮発性メモリキャッシュはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）キャッシュである。
【００７６】
図１１を参照すると、本実施形態において、１２００段階で、代替される複数のメモリラインの中の少なくとも１つに対する代替ＩＤが識別される。１２１０段階で、リフレッシュされるメモリバンクの中の１つに対するリフレッシュバンクＩＤが識別される。
【００７７】
１２２０段階で、衝突が代替ＩＤとリフレッシュバンクＩＤとの間に存在するか否かが判別される。衝突が存在しないと判別された場合、段階１２３０で、代替ＩＤ又はリフレッシュバンクＩＤを変更するための動作は行われない。衝突が存在すると判別された場合、段階１２４０で、リフレッシュバンクＩＤが変更可能であるか否かが判別される。衝突が存在し、リフレッシュバンクＩＤが変更可能であると判別された場合、１２５０段階で、新たなリフレッシュバンクＩＤが選択される。衝突が存在し、リフレッシュバンクＩＤが変更されないと判別された場合、１２６０段階で、新たな代替ＩＤが選択される。
【００７８】
図１１の方法はロジックダイのキャッシュ管理部によって遂行される（例えば、図１〜図３及び図５〜図７参照）。また、図１１の方法はＮＶＭ／キャッシュコントローラによって遂行される（例えば、図４及び図８参照）。
【００７９】
このように、本発明の実施形態において、衝突が代替ＩＤとリフレッシュバンクＩＤとの間に存在する場合、代替ＩＤ又はリフレッシュバンクＩＤの中のいずれか１つは遅延を防止するために変更される。より具体的に、本発明の一部の実施形態は、代替ＩＤ及びリフレッシュバンクＩＤを識別し、衝突がある場合、衝突による遅延を防止するために新たな代替ＩＤを選択する。また、本発明の一部の実施形態は、代替ＩＤ及びリフレッシュバンクＩＤを識別し、衝突がある場合、リフレッシュバンクＩＤが変更可能であるか否かを確認し、リフレッシュバンクＩＤが変更可能である場合、衝突による遅延を防止するために新たなリフレッシュバンクＩＤを選択する。
【００８０】
ここで、第１、第２、第３等の用語を多様な要素、成分、領域、層、及び／又はセクションを説明するために使用したとしても、このような要素、成分、領域、層、及び／又はセクションはこのような用語によって制限されないものと理解すべきである。このような用語は、他の要素、成分、領域、層、又はセクションから１つの要素、構成、領域、層又はセクションを区別するために使用される。従って、上述の第１要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱せずに、第２要素、成分、領域、層、又はセクションを指称することができる。
【００８１】
本明細書で説明した本発明の実施形態において、関連する装置又は成分は任意の適切なハードウェア（例えば、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ））、ファームウェア（例えば、ＤＳＰ又はＦＰＧＡ）、ソフトウェア、或いはソフトウェア、ファームウェア、及びハードウェアの適切な組合せを利用して具現される。例えば、関連する装置の多様な要素は１つの集積回路（ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ；ＩＣ）又は分離されたＩＣチップで形成される。また、関連する装置の多様な構成要素はフレキシブル印刷回路フィルム（ｆｌｅｘｉｂｌｅ  ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｆｉｌｍ）、ＴＣＰ（ｔａｐｅ  ｃａｒｒｉｅｒ  ｐａｃｋａｇｅ）、ＰＣＢ（ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｂｏａｒｄ）で具現されるか、或いは１つ以上の回路及び／又は他の装置として同じ基板上に形成される。また、関連する装置の多様な構成要素は、１つ以上のプロセッサ及び１つ以上のコンピューティング装置で実行され、コンピュータプログラム命令語を実行し、本明細書で説明した多様な機能を遂行するための他のシステム構成要素と相互作用するプロセス又はスレッド（ｔｈｒｅａｄ）である。コンピュータプログラム命令語は、例えばＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）のような、標準メモリ装置を利用してコンピューティング装置で具現されるメモリに格納される。コンピュータプログラム命令語は、例えばＣＤ−ＲＯＭ、フラッシュドライブ（ｆｌａｓｈ  ｄｒｉｖｅ）等のような他の一時的ではない（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）コンピュータ読み取り可能な記録媒体に格納される。また、当業者は、本発明の例示的な実施形態の思想及び範囲を逸脱せずに、多様なコンピューティング装置の機能が１つのコンピューティング装置に統合されるか、集積されるか、或いは特定コンピューティング装置の機能が１つ以上の他のコンピューティング装置に亘って分散されることを認識する。
【００８２】
図面を参照しながら説明したものとして他の要素又は特徴に対する１つの要素又は特徴の関係を説明することを容易にするために“最上”、“最下”、“下に”、“下部に”、“更に下の”、“更に下部に”、“上に”、“更に上に”のような空間的であり相対的な用語を本明細書で使用した。空間的であり相対的な用語は図面で示した方向に加えて使用又は動作で装置の他の方向を含むように意図したことが理解されるべきである。例えば、図面の装置を裏返した場合、他の構成要素又は特徴に対して“下に”、“最下”、又は“下部に”と説明した要素は他の要素又は特徴の“上に”合わせることになる。従って、“下部に”及び“下に”の例示的な用語は上又は下方向の両方を含む。装置は異なって合わせることができ（例えば、９０°又は他の方向に回転させること）、本明細書で使用した空間的であり相対的な記述はそれに合わせて解釈されなければならない。
【００８３】
また、１つの要素、構成要素、領域、層、及び／又はセクションが２つの要素、構成要素、領域、層、及び／又はセクションの間にあると言及した場合、２つの要素、構成要素、領域、層、及び／又はセクションの間に単に要素、構成要素、領域、層、及び／又はセクションがあるか、或いは１つ以上の間の要素、構成要素、領域、層、及び／又はセクションがまた存在することが理解されるべきである。
【００８４】
本明細書で使用した用語は、特定の実施形態を説明するためのものであり、本発明を制限しようとする意図はない。本明細書で使用したように、単数形態は文脈上で明確に異なって示さない限り、複数形態も含むように意図する。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語を本明細書で使用した場合、記述した特徴、整数、段階、動作、要素、及び／又は構成要素の存在を明示するが、１つ以上の特徴、整数、段階、動作、要素、要素、構成要素、及び／又はこれらのグループの存在を不可にしないことと更に理解されるべきである。
【００８５】
本明細書で使用したように、“及び／又は”という用語は１つ以上の関連する列挙した項目の任意のこと又は全ての組合せを含む。“少なくとも１つ”、“中の１つ”、及び“から選択された”のような表現は要素の全体リストを修正し、そしてリストの個別要素を修正しない。また、本発明の実施形態を記述する場合、“することができる”の使用は“本発明の１つ以上の実施形態”を意味する。また、“例示”の用語は例又は図面を意味する。
【００８６】
要素又は層が他の要素又は層“に”、“に連結された”、“に結合された”、“と関係がある”、“と結合された”、又は“と隣接する”場合として言及した場合、要素又は層は他の要素又は層“に直接的に”、“に直接的に連結された”、“に直接的に結合された”、“と直接的に関係がある”、“と直接的に結合された”、又は“と直接的に隣接する”ことであるか、或いは１つ以上の間の要素又は層が存在する。また、“連結”、“連結された”、等は、当業者によって理解されるものとして用語が使用される文脈に従って“電気的な連結”、“電気的に連結された”、等を示す。要素又は層が他の要素又は層“に直接的に”、“に直接的に連結された”、“に直接的に結合された”、“と直接的に関係がある”、“と直接的に結合された”、又は“と直接的に隣接する”として言及した場合、その間の要素及び層が存在しない。
【００８７】
本明細書で使用したように、“実質的に”、“約”、及びこれと類似な用語は近似値の用語として使用され、程度の用語として使用されず、当業者によって認識される測定された又は計算された値の固有な偏差を説明するために意図する。
【００８８】
本明細書で使用したように、“使用”、“使用される”、及び“使用された”の用語は“利用”、“利用される”、及び“利用された”用語と密接なものと各々看做される。
【００８９】
本発明の１つ以上の実施形態に関して説明した特徴は本発明の他の実施形態の特徴と共に使用することを可能する。例えば、第３実施形態が本明細書で明確に説明されなくても、第１実施形態において説明した特徴は第３実施形態を形成するために第２実施形態で説明した特徴と結合される。
【００９０】
当業者は、プロセスがハードウェア、ファームウェア（例えば、ＡＳＩＣを通じて）、或いはソフトウェア、ファームウェア、及び／又はハードウェアの任意の組合せを通じて実行されることを認識しなければならない。また、プロセスの段階のシークェンスは固定されず、当業者によって認識されたものとして任意の所望するシークェンスに変更される。変更されたシークェンスは全ての段階又は段階の部分を含む。
【００９１】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００９２】
１０５    広帯域幅メモリスタック（ＨＢＭ／ＣＭ）
１１０、１１２、１１４    ロジックダイ
１１５    ３Ｄ  ＤＲＡＭ（ＤＲＡＭスタック）
１２０    レベル２（Ｌ２）キャッシュ
１２５    第１メモリコントローラ（ＭＣ１）
１３０    オフチップメインメモリ
１３５    第２メモリコントローラ（ＭＣ２）
１４０    シリコンインターポーザ
１４５    広帯域幅メモリインターフェイス
１５０    レベル１（Ｌ１）キャッシュ
１５５    ホストプロセッサ
１６０    コア（Ｃ）
２０１ａ    ＮＶＤＩＭＭ  ２１０    不揮発性メモリ（ＮＶＭ）
２１１ａ    バックサイドＤＲＡＭキャッシュ
２２０    ＮＶＭ／キャッシュコントローラ
２３０    データバッファ
２３１    ＲＣＤ（ｒｅｇｉｓｔｅｒｉｎｇ  ｃｌｏｃｋ  ｄｒｉｖｅｒ）
３００、３０２、３０４、３０６    代替管理部
３２０、３２２、３２４、３２６    代替ＩＤ
３４０、３４４、３４６    代替フィードバック
３６０、３６２、３６４、３６６    最終代替ＩＤ
４００、４０２、４０４、４０６    リフレッシュコントローラ
４２０、４２２、４２４、４２６    リフレッシュバンクＩＤ
４４２、４４４、４４６    リフレッシュフィードバック
４６０、４６２、４６４、４６６    最終リフレッシュバンクＩＤ
５００、５０２、５０４、５０６    比較器
６００、６０２、６０４    キャッシュ管理部
【図１】
2018120589.tif 000003
【図２】
2018120589.tif 000004
【図３】
2018120589.tif 000005
【図４】
2018120589.tif 000006
【図５】
2018120589.tif 000007
【図６】
2018120589.tif 000008
【図７】
2018120589.tif 000009
【図８】
2018120589.tif 000010
【図９】
2018120589.tif 000011
【図１０】
2018120589.tif 000012
【図１１】
2018120589.tif 000013