(57)【要約】計算システムの大容量行ベースメモリにおける効率的なキャッシュデータアクセスに関するシステム及び方法である。計算システムは、処理装置と、集積３次元（３Ｄ）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）とを含む。処理装置は、キャッシュとして３Ｄ  ＤＲＡＭを用いる。３Ｄ  ＤＲＡＭのメモリアレイバンク内の複数の行の各行は、少なくとも、複数のキャッシュタグと、複数のキャッシュタグにより示された複数の対応するキャッシュラインとを記憶する。処理装置からのメモリ要求の受信に応じて、３Ｄ  ＤＲＡＭは、受信したメモリ要求内のキャッシュタグにより示された所与のキャッシュライン上の受信したメモリ要求に従い、メモリアクセスを実行する。複数のＤＲＡＭトランザクションを用いるのではなく、待ち時間及び電力消費を減らすために、単一の複合ＤＲＡＭトランザクションを用いてもよい。【選択図】図４
2015503160.tif 000002
【特許請求の範囲】
【請求項１】
（ｉ）複数のキャッシュタグと、（ｉｉ）前記複数のキャッシュタグにより示された複数のキャッシュラインと、を少なくとも記憶するようにそれぞれ構成された複数の行と、
制御回路とを備えるダイナミックランダムアクセスメモリ（ＤＲＡＭ）であって、
前記制御回路は、
メモリ要求を受信し、
前記受信したメモリ要求によるメモリアクセスを、前記受信したメモリ要求内の第１のキャッシュタグにより示された所与のキャッシュライン上で実行するように構成されており、
前記メモリアクセスの実行は、前記所与のキャッシュラインを記憶する前記複数の行の各行の単一の読み取りを含む、
ＤＲＡＭ。
【請求項２】
前記制御回路は、前記受信したメモリ要求内の前記第１のキャッシュタグが、前記各行に記憶された前記複数のキャッシュタグのうち第２のキャッシュタグと適合することを判定するように、さらに構成されている、請求項１に記載のＤＲＡＭ。
【請求項３】
前記複数の行の各行は、前記複数のキャッシュタグに対応するメタデータを記憶するようにさらに構成されており、前記メタデータは、キャッシュリプレース状態、ダーティビット、有効ビット及びキャッシュコヒーレンシ値のうち少なくとも１つを含む、請求項２に記載のＤＲＡＭ。
【請求項４】
前記所与のキャッシュラインを記憶する前記各行の単一の読み取りにより前記メモリアクセスを実行することは、前記メモリアクセスに基づいて前記メタデータを更新することを含む、請求項３に記載のＤＲＡＭ。
【請求項５】
メモリ要求を生成するように構成された第１のチップの処理装置と、
複数の行を備える第２のチップのダイナミックランダムアクセスメモリ（ＤＲＡＭ）であって、前記第１のチップに結合されたＤＲＡＭと、を備えるシステムインパッケージ（ＳｉＰ）であって、
前記ＤＲＡＭは、
少なくとも、複数のキャッシュタグと、前記複数のキャッシュタグにより示された複数のキャッシュラインとを、前記複数の行のうち同一の行に記憶し、
前記処理装置から前記メモリ要求を受信し、
前記受信したメモリ要求によるメモリアクセスを、前記受信したメモリ要求内の第１のキャッシュタグにより示された所与のキャッシュライン上で実行するように構成されており、
前記メモリアクセスの実行は、前記所与のキャッシュラインを記憶する前記複数の行の各行の単一の読み取りを含む、
ＳｉＰ。
【請求項６】
前記ＤＲＡＭは、前記受信したメモリ要求内の前記第１のキャッシュタグが、前記各行に記憶された前記複数のキャッシュタグのうち第２のキャッシュタグと適合することを判定するように、さらに構成されている、請求項５に記載のＳｉＰ。
【請求項７】
前記各行内の前記第２のキャッシュタグの位置は、前記各行の前記所与のキャッシュラインの位置を示す、請求項６に記載のＳｉＰ。
【請求項８】
前記ＤＲＡＭは、前記複数のキャッシュタグに対応するメタデータを、前記複数の行のうち同一の行に記憶するようにさらに構成されており、前記メタデータは、キャッシュリプレース状態、ダーティビット、有効ビット及びキャッシュコヒーレンシ値のうち少なくとも１つを含む、請求項７に記載のＳｉＰ。
【請求項９】
前記所与のキャッシュラインを記憶する前記各行の単一の読み取りにより前記メモリアクセスを実行することは、前記メモリアクセスに基づいて前記メタデータを更新することを含む、請求項８に記載のＳｉＰ。
【請求項１０】
前記メモリ要求は、前記第１のキャッシュタグと、前記各行を識別するＤＲＡＭアドレスとを含む、請求項７に記載のＳｉＰ。
【請求項１１】
前記ＤＲＡＭは３次元（３Ｄ）集積回路（ＩＣ）である、請求項７に記載のＳｉＰ。
【請求項１２】
前記処理装置は、汎用マイクロプロセッサ、グラフィック処理装置（ＧＰＵ）、アクセラレーテッドプロセッシングユニット（ＡＰＵ）及びフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のうち少なくとも１つである、請求項１１に記載のＳｉＰ。
【請求項１３】
少なくとも、１つ以上のキャッシュタグと、前記１つ以上のキャッシュタグによって示された１つ以上のキャッシュラインとを、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）の複数の行のうち同一の行に記憶することと、
前記ＤＲＡＭに結合された処理装置からメモリ要求を受信することと、
前記受信したメモリ要求によるメモリアクセスを、前記受信したメモリ要求内の第１のキャッシュタグにより示された所与のキャッシュライン上で実行することであって、前記所与のキャッシュラインを記憶する各行の単一の読み取りを含むことと、
を含む、方法。
【請求項１４】
前記受信したメモリ要求内の前記第１のキャッシュタグが、前記各行に記憶された前記１つ以上のキャッシュタグのうち第２のキャッシュタグと適合することを判定すること、をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記各行内の前記第２のキャッシュタグの位置は、前記各行内の前記所与のキャッシュラインの位置を示す、請求項１４に記載の方法。
【請求項１６】
前記複数のキャッシュタグに対応するメタデータを、前記１つ以上の行の前記同一の行に記憶することをさらに含み、前記メタデータは、キャッシュリプレース状態、ダーティビット、有効ビット及びキャッシュコヒーレンシ値のうち少なくとも１つを含む、請求項１５に記載の方法。
【請求項１７】
前記所与のキャッシュラインを記憶する前記各行の単一の読み取りにより前記メモリアクセスを実行することは、前記メモリアクセスに基づいて前記メタデータを更新することを含む、請求項１６に記載の方法。
【請求項１８】
前記各行を識別するＤＲＡＭアドレスに加えて、前記第１のキャッシュタグを、前記メモリ要求内で送信することをさらに含む、請求項１５に記載の方法。
【請求項１９】
前記ＤＲＡＭは３次元（３Ｄ）集積回路（ＩＣ）である、請求項１５に記載の方法。
【請求項２０】
前記処理装置は、汎用マイクロプロセッサ、グラフィック処理装置（ＧＰＵ）、アクセラレーテッドプロセッシングユニット（ＡＰＵ）及びフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のうち少なくとも１つである、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算システムに関し、さらに具体的には、計算システムの大容量行ベースメモリ（ｌａｒｇｅ  ｒｏｗ−ｂａｓｅｄ  ｍｅｍｏｒｙ）における効率的なキャッシュデータアクセスに関する。
【背景技術】
【０００２】
半導体製造プロセスの前進とオンダイ幾何学的寸法の削減によって、半導体チップは、さらなる機能性及び性能を提供する。しかしながら、潜在的な利益を制限しかねない設計問題が、プロセス及び集積回路設計における現代技術を用いても未だに生じている。１つの問題は、二次元平面レイアウトのチップの連続的な生成において、相互連結遅延が、単位長さごとに増加し続けることにある。また、個々のチップ間の高電気インピーダンスは、待ち時間を増加させる。さらに、オフチップから別のダイに横断する信号は、これらの長い信号ルート上で増加した寄生容量により、これらの信号に関する電力消費を大幅に（例えば、１０倍から１００倍）増加させることもある。
【０００３】
別の設計問題は、多くのデータにアクセスする多くのソフトウェアアプリケーションが、典型的に、メモリ帯域幅によって計算時間が概して決定されるメモリ拘束（ｍｅｍｏｒｙ  ｂｏｕｎｄ）タイプであるという点にある。オフチップのダイナミックランダムアクセスメモリ（ＤＲＡＭ）に関するメモリアクセス待ち時間は、何百にもなって一千回のクロックサイクルを超えることもあり、プロセッサ設計におけるコアの増加数は、メモリ帯域幅問題を強調する。最近、単一の回路内に垂直及び水平に統合された能動電子部品の２つ以上の層を含む３次元集積回路（３Ｄ  ＩＣ）に進歩が見られる。システムインパッケージ（ＳｉＰ）又はチップ積層マルチチップモジュール（ＭＣＭ）として知られる３Ｄパッケージングは、単独のチップを単一のパッケージに積層することによって、空間を節約する。これらの層内の構成要素は、垂直又は水平のオンチップ信号伝達を用いて通信する。この信号伝達は、既知の二次元平面レイアウトの回路に対する相互接続信号遅延を減少させる。
【０００４】
上述の製造トレンドは、マイクロプロセッサパッケージ内の数ギガバイトの集積メモリにつながる。ある場合には、付加的なオンチップ記憶装置は、例えばオフチップメモリにアクセスする前のラストレベルキャッシュ（ＬＬＣ）等の行ベースメモリとして用いられてもよい。付加的なメモリにより減少した誤り指数は、プロセッサ及びそのオフチップメモリ間の待ち時間間隔を隠すのに役立つ。しかしながら、行ベースメモリに関するキャッシュアクセス機構は、この付加的な集積メモリにとって非効率となる場合がある。例えば数ギガバイトのキャッシュに対して数百メガバイト等の大容量タグデータアレイは、マイクロプロセッサダイ上に設けるには非実用的であって、高価になる場合がある。
【０００５】
例えば６４バイトのラインから４キロバイト（ＫＢ）のラインへの成長等のように、付加的な集積メモリに関するデータキャッシュラインの大きさの増加によって、集積メモリ内のキャッシュラインの数及び対応するタグの大きさの両方が減少する。しかしながら、ダーティビット及びコヒーレンシ情報は、依然として、独自のキャッシュラインの大きさ（６４バイトのライン）の粒度に維持されてもよい。さらに、数バイトのみが対象となる場合には、全体で４ＫＢのラインがアクセスされてもよいため、データ転送は、過剰な帯域幅を消費してもよい。
【０００６】
付加的なキャッシュのタグ及びデータを集積ＤＲＡＭに記憶して、それにアクセスしながらＤＲＡＭアクセス機構を利用することは、多くの電力を浪費する。さらに、タグ及びデータが逐次的方法で読み出されるので、これらの機構は、特に、高アソシアティブオンパッケージキャッシュに関する多くの帯域幅を消費し、且つ、多くの時間を消費することになる。したがって、オンパッケージＤＲＡＭは、多くの余分なデータ記憶装置を提供するが、キャッシュ及びＤＲＡＭアクセス機構は、非効率である。
【０００７】
上記に鑑み、計算システムの大容量行ベースメモリにおける効率的なキャッシュデータアクセスに関する効率的な方法及びシステムが所望される。
【発明の概要】
【課題を解決するための手段】
【０００８】
計算システムの大容量行ベースメモリにおける効率的なキャッシュデータアクセスに関するシステム及び方法が検討される。
【０００９】
１つの実施形態において、計算システムは、処理装置及び集積ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。処理装置は、例えば、汎用マイクロプロセッサ、グラフィック処理装置（ＧＰＵ）、アクセラレーテッドプロセッシングユニット（ＡＰＵ）等を含む。集積ＤＲＡＭは、３次元（３Ｄ）ＤＲＡＭであってもよいし、処理装置を備えたシステムインパッケージ（ＳｉＰ）内に含まれてもよい。処理装置は、キャッシュとして３Ｄ  ＤＲＡＭを利用してもよい。
【００１０】
種々の実施形態において、３Ｄ  ＤＲＡＭは、タグアレイ及びデータアレイの両方を記憶してもよい。３Ｄ  ＤＲＡＭのメモリアレイバンクの複数の行の各々は、１つ以上のキャッシュタグと、１つ以上のキャッシュタグにより示される１つ以上の対応するキャッシュラインとを記憶してもよい。処理装置からのメモリ要求の受信に応じて、３Ｄ  ＤＲＡＭは、受信されたメモリ要求内のキャッシュタグにより示される所与のキャッシュライン上の受信されたメモリ要求に従い、メモリアクセスを実施してもよい。メモリアクセスの実施は、所与のキャッシュラインを記憶する複数の行の各々の単一の読み取りを含んでもよい。複数のＤＲＡＭトランザクションを用いるのではなく、待ち時間及び電力消費を減らすために、単一の複合ＤＲＡＭトランザクションを用いることができる。
【００１１】
これらの実施形態及び他の実施形態は、以下の説明及び図面を参照することでさらに理解されるであろう。
【図面の簡単な説明】
【００１２】
【図１】計算システムの１つの実施形態の一般的なブロック図である。
【図２】システムインパッケージ（ＳｉＰ）の実施形態の一般的なブロック図である。
【図３】計算システムの別の実施形態の一般的なブロック図である。
【図４】キャッシュ記憶配置にアクセスするために用いられるシーケンスステップの１つの実施形態の一般的なブロック図である。
【図５】効率的なインパッケージＤＲＡＭアクセスのための方法の１つの実施形態の一般的なフローチャートである。
【００１３】
本発明は、種々の変形例及び代替形態を受け入れる一方で、特定の実施形態が図面において例として示されており、本明細書で詳細に述べられている。ただし、図面及びこれに対する詳細な説明は、本発明が開示された特定の形態に限定するものではなく、それどころか、本発明は、添付の請求項により定義される本発明の趣旨及び範囲内に含まれる全ての変形、均等物及び代替案を網羅していることを意図することを理解されたい。
【発明を実施するための形態】
【００１４】
以下の説明において、本発明を完全に理解するために、多くの特定の詳細が記載される。しかしながら、当業者は、これらの特定の詳細なしに本発明が実施されてもよいことを認識するに違いない。本発明が曖昧になることを避けるために、周知の回路、構造及び技術は、詳細に示されていない場合もある。
【００１５】
図１を参照すると、計算システム１００の１つの実施形態の一般的なブロック図が示されている。図示されるように、マイクロプロセッサ１１０は、対応する１つ以上のキャッシュメモリのサブシステム１２４ａ〜１２４ｂに接続する１つ以上のプロセッサコア１２２ａ〜１２２ｂを備えてもよい。また、マイクロプロセッサは、インターフェース論理１４０と、メモリ制御器１３０と、システム通信論理１２６と、共有キャッシュメモリサブシステム１２８とを含んでもよい。１つの実施形態において、マイクロプロセッサ１１０の図示された機能は、単一の集積回路上に組み込まれる。別の実施形態において、図示された機能は、コンピュータのマザーボード上のチップセット内に組み込まれる。
【００１６】
１つの実施形態において、マイクロプロセッサ１１０は、携帯端末機、スマートフォン若しくはタブレット、デスクトップ又はサーバ等の内部のスタンドアローンシステムである。１つの実施形態において、システム通信論理１１６は、システムバスである。別の実施形態において、マイクロプロセッサ１１０は、種々のプロトコルの１つを用いて、プロセッサコア１２２ａ〜１２２ｂを、ディスクメモリ１６２、ＤＲＡＭ１７０、周辺入力／出力（Ｉ／Ｏ）装置、例えば中央処理装置（ＣＰＵ）と称され得る別の汎用マイクロプロセッサ等の他の処理装置、グラフィック処理装置（ＧＰＵ）、アクセラレーテッドプロセッシングユニット（ＡＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はその他の装置に接続する論理（ｌｏｇｉｃ）１２６におけるシステムバス制御器を組み込む。このような実施形態において、システム通信論理１２６は、メモリ制御器１３０及びインターフェース論理１４０の機能を置き換えてもよいし、組み込んでもよい。
【００１７】
計算システム１００における構成要素のさらなる説明を手短に行う。汎用マイクロプロセッサ１１０を備える計算システム１００が１つの実施形態で示されるものの、他の目的のために用いられる他の実施形態において、マイクロプロセッサ１１０は、別のタイプの処理装置で置き換えられてもよい。他のタイプの処理装置は、グラフィック処理装置（ＧＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はアクセラレーテッドプロセッシングユニット（ＡＰＵ）を含んでもよい。概して、ＡＰＵは、付加的な処理能力を含むチップである。この付加的な処理能力は、汎用ＣＰＵの他の１つ以上のタイプの計算を加速させるために用いられてもよい。１つの実施形態において、ＡＰＵは、同一のダイ上でＧＰＵと統合する汎用ＣＰＵ、ＦＰＧＡ又は他の処理装置を含んでもよく、こうして、電力消費を減少させながら、ユニット間のこれらのデータ転送速度を改善する。他の実施形態において、ＡＰＵは、ビデオ処理及び他のアプリケーション特有のアクセラレータを含んでもよい。
【００１８】
計算システム１００で用いられる所与のタイプの処理装置にかかわらず、ソフトウェアアプリケーションが多くのデータにアクセスするほど、メモリサブシステムが頻繁に用いられる。待ち時間はさらに重要になる。相互接続待ち時間を減少させるために、より多くのオンチップメモリ記憶装置が用いられてもよい。例えば、キャッシュメモリサブシステム１２４ａ〜１２４ｂの各々は、プロセッサコア１２２ａ〜１２２ｂの各々に関するメモリ待ち時間を減少させてもよい。さらに、マイクロプロセッサ１１０は、共有キャッシュメモリサブシステム１２８を、オフチップＤＲＡＭ１７０及び／又はオフチップディスクメモリ１６２にアクセスする前のラストレベルキャッシュ（ＬＬＣ）として含んでもよい。
【００１９】
キャッシュメモリサブシステム１２４ａ〜１２４ｂ，１２８により提供される付加的なメモリにより達成される誤り指数の減少は、プロセッサコア１２２ａ〜１２２ｂのうち所与の１つのコアと、オフチップメモリとの間の待ち時間の間隔を隠すのに役立つ。しかしながら、キャッシュメモリサブシステム１２４ａ〜１２４ｂ，１２８の各々を用いるための設置面積は制限されている。したがって、キャッシュメモリサブシステム１２４ａ〜１２４ｂ，１２８の各々の大きさは制限されており、また、非常に多くのアクセスが、例えばＤＲＡＭ１７０及び／又はディスクメモリ１６２等のオフチップメモリにすでに送信されている。
【００２０】
メモリ待ち時間を減少させる試みに続いて、さらなるオンチップメモリ記憶装置を提供するために他の技術を用いてもよい。図１には示されてはいないが、１つの実施形態において、マイクロプロセッサ１１０は、ラストレベルキャッシュ（ＬＬＣ）を提供するために、３次元集積回路（３Ｄ  ＩＣ）を利用してもよい。計算システムに関するこのような実施形態のさらなる詳細は、図２および図３の説明において後述される。３Ｄ集積ＤＲＡＭは、オフチップメモリアクセスを減少させるために、低待ち時間相互接続と、非常に大容量の付加的なオンチップメモリ記憶装置とを提供してもよい。マイクロプロセッサ１１０内のインターフェース論理は、３Ｄ集積ＤＲＡＭに関するアドレス変換を提供してもよい。３Ｄ集積ＤＲＡＭ内の制御論理は、３Ｄ集積ＤＲＡＭ内の複数のメモリアレイバンクにおける複数の行のうち所与の一行のアクセスのために用いられる典型的なステップを変更してもよい。３Ｄ  ＩＣを利用する実施形態をさらに説明する前に、図１に示された計算システム１００における構成要素のさらなる説明が提供される。
【００２１】
プロセッサコア１２２ａ〜１２２ｂの各々は、所与のインストラクションセットによる命令を実行する回路を含んでもよい。例えば、ｘ８６インストラクションセットアーキテクチャ（ＩＳＡ）が選択されてもよい。あるいは、Ａｌｐｈａ、ＰｏｗｅｒＰＣ、又は他のインストラクションセットアーキテクチャの何れかが選択されてもよい。１つの実施形態において、プロセッサコア１２２ａ〜１２２ｂの各々は、所与のＩＳＡの命令を処理するために用いられるスーパースカラー、マルチスレッドマイクロアーキテクチャを含んでもよい。
【００２２】
キャッシュメモリサブシステム１２４ａ〜１２４ｂ，１２８は、数ブロックのデータを記憶するように構成される高速キャッシュメモリを含んでもよい。本明細書で用いられる「ブロック」は、コヒーレンシ目的で単位として処理される隣接記憶位置に記憶されるバイトのセットである。本明細書で用いられる、「キャッシュブロック」、「ブロック」、「キャッシュライン」及び「ライン」などの各用語は置き換え可能である。いくつかの実施形態において、ブロックは、キャッシュ内の割当及び割当解除の単位であってもよい。ブロック内のバイト数は、設定選択により変更されてもよいし、任意のサイズであってもよい。さらに、「キャッシュタグ」、「キャッシュラインタグ」及び「キャッシュブロックタグ」などの各用語は置き換え可能である。
【００２３】
キャッシュメモリサブシステム１２４ａ〜１２４ｂ，１２８の各々は、対応するキャッシュ制御器に接続されたキャッシュメモリ又はキャッシュアレイを含んでもよい。キャッシュメモリサブシステム１２４ａ〜１２４ｂ，１２８は、キャッシュの階層として実装されてもよい。プロセッサコア１２２ａ〜１２２ｂ（階層内）のより近くに位置するキャッシュは、所望であれば、プロセッサコア１２２ａ〜１２２ｂ内に統合されてもよい。このレベルのキャッシュは、レベル１（Ｌ１）の多層の階層であってもよい。１つの実施形態において、キャッシュメモリサブシステム１２４ａ〜１２４ｂの各々は、Ｌ２キャッシュ構造を表し、共有キャッシュメモリサブシステム１２８は、Ｌ３キャッシュ構造を表す。他の実施形態において、キャッシュメモリサブシステム１１４の各々は、Ｌ１キャッシュ構造を表し、共有キャッシュサブシステム１１８は、Ｌ２キャッシュ構造を表す。他の実施形態が可能であり、検討される。
【００２４】
プロセッサコア１２２ａ〜１２２ｂは、概して、データ及び命令に関して、キャッシュメモリサブシステム１２４ａ〜１２４ｂにアクセスする。本明細書で用いられる、キャッシュメモリサブシステムに関連する「アクセス」という用語は、対応する要求アドレスの要求されたデータがキャッシュに存在する場合には、キャッシュヒットとなり得る読み取り又は書き込み要求動作の実行を意味する。あるいは、読み取り又は書き込み動作は、要求されたデータがキャッシュ内に存在しない場合には、キャッシュ誤りとなることもある。
【００２５】
キャッシュ誤りが起きると、要求されたブロックなどは、キャッシュメモリサブシステム１２４ａ〜１２４ｂの各々において、又は、共有キャッシュメモリサブシステム１２８内において発見されず、その後、読み取り要求が生成されてメモリ制御器１３０に送信されてもよい。メモリ制御器１３０は、要求されたブロックに対応するアドレスを変換してもよいし、読み取り要求を、メモリバス１５０を通してオフチップＤＲＡＭ１７０に送ってもよい。オフチップＤＲＡＭ１７０は、Ｉ／Ｏ制御器及びバス１６０と、メモリバス１５０とを通して、オフチップディスクメモリ１６２からのデータで満たされてもよい。
【００２６】
対応する要求されたブロックを有するキャッシュフィルラインは、元の読み取り又は書き込み要求を完了させるために、オフチップＤＲＡＭ１７０からキャッシュメモリサブシステム１２４ａ〜１２４ｂのうち対応する１つに伝搬されてもよい。キャッシュフィルラインは、１つ以上のレベルのキャッシュ内に設けられてもよい。さらに、キャッシュフィルラインは、キャッシュ内の対応するセット内に設けられてもよい。対応するセット内に利用可能なウェイ（ｗａｙ）が存在しない場合には、典型的に、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムは、セット内でどのウェイが、キャッシュフィルライン（ｃａｓｈ  ｆｉｌｌ  ｌｉｎｅ）データにより強制撤去され置き換えられるデータを有するべきかを決定する。典型的に、割当とは、低レベルのキャッシュ階層から取ってきたキャッシュフィルラインを、特定のキャッシュに対するキャッシュ誤りの後に続く当該特定のキャッシュのウェイに記憶することを意味する。
【００２７】
オフチップディスクメモリ１６２は、不揮発性、ランダムアクセスのデータ二次記憶装置を設けてもよい。１つの実施形態において、オフチップディスクメモリ１６２は、１つ以上のハードディスクドライブ（ＨＤＤ）を含んでもよい。ＨＤＤは、典型的に、各々が磁気媒体で覆われている１つ以上の回転ディスクを含んでもよい。これらのディスクは、毎分、数千回の回転速度で回転する。磁気アクチュエータは、回転ディスクの上に磁気読み取り／書き込み装置を配置することに関与している。
【００２８】
他の実施形態において、オフチップディスクメモリ１６２は、ソリッドステートディスク（ＳＳＤ）を利用する。ソリッドステートディスクは、ソリッドステートドライブと称されることもある。ＳＳＤは、ＨＤＤインターフェースをエミュレートするが、持続性のデータを記憶するために、ＨＤＤ内で見受けられるような電気機械装置よりもむしろ、ソリッドステートメモリを利用する。例えば、ＳＳＤは、フラッシュメモリのバンクを備えてもよい。
【００２９】
オフチップＤＲＡＭ１７０は、集積回路内の個々のコンデンサ内に各ビットのデータを記憶する一種のダイナミックランダムアクセスメモリであってもよい。コンデンサは、充電又は放電の何れかが可能である。これら２つの状態は、１ビットの２論理値を表すために用いられてもよい。ＤＲＡＭ１７０は、１ビットにつき、単一のトランジスタと、コンデンサとを利用してもよい。ＤＲＡＭは、オンチップシンクロナスＲＡＭ（ＳＲＡＭ）で用いられる６個のトランジスタと比較して、はるかに高い密度に達してもよい。ＤＲＡＭ１７０は、ＨＤＤ及びフラッシュメモリとは異なり、不揮発性メモリよりもむしろ、揮発性メモリであってよい。ＤＲＡＭ１７０は、電力がオフになったときに、データを失ってもよい。
【００３０】
オフチップＤＲＡＭ１７０は、多チャネルメモリアーキテクチャを含んでもよい。このタイプのアーキテクチャは、データとメモリ制御器１３０との間の通信のチャネルをさらに多く追加することにより、メモリ制御器１３０に対するデータの転送速度を増してもよい。多チャネルアーキテクチャは、多メモリモジュール及びマザーボード並びに／又は多チャネルをサポート可能なカードを利用する。
【００３１】
１つの実施形態において、メモリモジュールの各々は、各インターフェースに関する同一のプロトコルをメモリ制御器１３０に対して有してもよい。プロトコルの一例は、ダブルデータレート（ＤＤＲ）タイプのプロトコルである。プロトコルは、クロック周期ごとのいくつかのデータ転送、信号電圧レベル、信号タイミング、信号及びクロック位相、並びに、クロック周波数などの情報転送のために用いる値を決定してもよい。プロトコル例としては、ＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ３  ＳＤＲＡＭ、ＧＤＤＲ４（グラフィックダブルデータレート、バージョン４）ＳＤＲＡＭ、及び、ＧＤＤＲ５（グラフィックダブルデータレート、バージョン５）ＳＤＲＡＭを含む。メモリ制御器１３０は、メモリチャネルとインターフェースをとり、対応するプロトコルに従うための制御回路を含んでもよい。さらに、メモリ制御器１３０は、メモリ要求を待ち行列に入れるための要求待ち行列を含んでもよい。
【００３２】
図２を参照すると、システムインパッケージ（ＳｉＰ）２００，２４０の実施形態の一般的なブロック図が示されている。３次元（３Ｄ）パッケージングは、計算システム内で用いられてもよい。このタイプのパッケージングは、システムインパッケージ（ＳｉＰ）と称されてもよい。ＳｉＰは、１つ以上の３次元集積回路（３Ｄ  ＩＣ）を含む。３Ｄ  ＩＣは、垂直及び／又は水平の両方向において単一の回路に統合された２つ以上の層の能動電子部品を備える。１つの実施形態では、インターポーザーを用いた統合が用いられ、それにより、３Ｄ  ＩＣが処理装置２２０の隣に設けられてもよい。あるいは、３Ｄ  ＩＣは、別のＩＣの頂部に直接積み重ねられてもよい。
【００３３】
ダイ積み重ね技術とは、同一のパッケージにおいて高帯域幅及び低待ち時間相互接続とともに、シリコンの複数の別々の断片（集積チップ）の物理的な積み重ねを可能にする製造プロセスである。ダイは、シリコンのインターポーザー上に並んで積み重ねられてもよいし、互いに頂部上に垂直に直接積み重ねられてもよい。ＳｉＰに関する１つの構成は、１つ以上のＤＲＡＭチップを、処理装置の隣及び／又は頂部に積み重ねることである。ＤＲＡＭチップを積み重ねることにより、システムに関する非常に大容量のキャッシュが、処理装置用に実現されてもよい。１つの実施形態において、この大容量のキャッシュは、数百ＭＢ（又はそれ以上）の大きさを有してもよい。
【００３４】
図示されるように、１つの実施形態において、ＳｉＰ２００は、水平行待ち時間相互接続２１０を通して処理装置２２０と通信する処理装置２２０と、１つ以上の３次元（３Ｄ）ＤＲＡＭ２３０，２３２とを含んでもよい。処理装置２２０は、マイクロプロセッサと称され得る汎用ＣＰＵ、グラフィック処理装置（ＧＰＵ）、アクセラレーテッドプロセッシングユニット（ＡＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は、例えばキャッシュなどの行ベースメモリを使用する他のデータ処理装置であってもよい。
【００３５】
インパッケージ水平低待ち時間相互接続２１０は、ＳｉＰが用いられていない場合、長いオフチップ相互接続と比較して相互接続信号の長さを減少させる。インパッケージ水平行低待ち時間相互接続２１０は、処理装置２２０及び３Ｄ  ＤＲＡＭ２３０，２３２などのチップが回路基板上の別個のパッケージ内に搭載されているかのように、特定の信号及びプロトコルを用いてもよい。ＳｉＰ２００は、パッケージ外部接続２１４に到達する背面バイア又はスルーバルクシリコンバイア２１２を付加的に備える。パッケージ外部接続２１４は、入力／出力（Ｉ／Ｏ）信号及び電力信号用に用いてもよい。
【００３６】
他の実施形態において、ＳｉＰ２４０は、処理装置２２０の頂部に直接積み重ねられた３Ｄ  ＤＲＡＭ２５０を備える。図示されてはいないものの、ＳｉＰ２００及びＳｉＰ２４０の各々について、複数のチップ又は装置層は、それらを通り抜ける直接垂直相互接続２１６によって互いの頂部の上に積み重ねられてもよい。異なる装置層の間を通り抜け可能な垂直相互接続２１６の大きさ及び密度は、３Ｄ  ＩＣを製造するために用いられた基礎的技術に基づいて変化する。
【００３７】
次に図３を参照すると、３次元（３Ｄ）ＤＲＡＭを利用する計算システム３００の１つの実施形態の一般的なブロック図が示される。上述した回路及び論理は、同様の符号が付されている。計算システム３００は、上述したシステムインパッケージ（ＳｉＰ）などの３次元（３Ｄ）パッケージングを利用してもよい。計算システム３００は、ＳｉＰ３１０を含んでもよい。１つの実施形態において、ＳｉＰ３１０は、上述した処理装置２２０と、低待ち時間相互接続３４０を通して通信可能な３Ｄ  ＤＲＡＭ３３０とを含んでもよい。インパッケージ低待ち時間相互接続３４０は、ＳｉＰが用いられていない場合には、長オフチップ相互接続より短い長さで、水平及び／又は垂直に設けられてもよい。
【００３８】
ＤＲＡＭメモリ技術を用いるＳｉＰ３１０の１つの実施形態が示されるものの、１つ以上の行バッファ又は他の均等構造を含む行ベースアクセススキームを用いる他のメモリ技術が可能であり、検討される。他のメモリ技術の例は、位相変化メモリ、スピントルクトランスファ抵抗メモリ、メモリスタなどを備える。
【００３９】
処理装置２２０は、計算を実行し、且つ、ソフトウェアアプリケーションにより記述されたアルゴリズムのための作業を実行するための実行エンジン３２２を含んでもよい。１つの実施形態において、実行エンジン３２２は、汎用ＣＰＵの１つ以上のプロセッサコアを含んでもよい。他の実施形態において、実行エンジン３２２は、少なくともグラフィックレンダリング及び３Ｄグラフィックアプリケーションのためのデータ処理を中心とする動作を実行するために、シェーダと、他のグラフィック処理ブロックと、ＧＰＵの単一命令複数データ（ＳＩＭＤ）パイプラインとを含んでもよい。所与のアルゴリズムによるデータ処理のための回路の他の例が可能であり、検討される。
【００４０】
処理装置２２０は、メモリ制御器３２６、メモリバス１５０、Ｉ／Ｏ制御器及びバス１６０を介して、例えばディスクメモリ１６２などのオフパッケージメモリと通信してもよい。１つの実施形態に示されるように、計算システム３００は、上述した計算システム１００に含まれるオフパッケージＤＲＡＭ１７０を含まなくてもよい。オンパッケージ３Ｄ  ＤＲＡＭ３３０は、いくつかのオフパッケージメモリアクセスを減少させて長メモリ待ち時間を隠す、非常に大容量のオンパッケージメモリ記憶装置を提供してもよい。他の実施形態において、計算システム３００は、依然としてオフパッケージＤＲＡＭ１７０を含んでもよい。
【００４１】
処理装置２２０は、Ｉ／Ｏ装置及び他の処理装置に対するインターフェース論理を含んでもよい。このインターフェース論理は、説明を簡単にするために図示されていない。処理装置２２０は、３Ｄ  ＤＲＡＭ３３０と通信するために、インターフェース論理３２４も含んでよい。この通信で用いられるプロトコル、アドレスフォーマット及びインターフェース信号は、オフパッケージＤＲＡＭ１７０で用いられるプロトコル、アドレスフォーマット及びインターフェース信号に類似していてもよい。しかしながら、３Ｄ  ＤＲＡＭ３３０がラストレベルキャッシュ（ＬＬＣ）として用いられる場合には、この通信に対して調整が行われてもよい。例えば、処理装置２２０から３Ｄ  ＤＲＡＭ３３０に送信されたメモリ要求は、メモリアレイバンク３３２ａ〜３３２ｂのうち１つのバンクの各行を識別するＤＲＡＭアドレスに加えて、キャッシュタグを含んでもよい。受信されたキャッシュタグは、３Ｄ  ＤＲＡＭ３３０内で識別された所与の行内に記憶されたキャッシュタグと比較するために用いられてもよい。
【００４２】
他のＤＲＡＭ接続形態と同様に、３Ｄ  ＤＲＡＭ３３０は、複数のメモリアレイバンク３３２ａ〜３３２ｂを含んでもよい。バンク３３２ａ〜３３２ｂの各々は、行バッファ３３４ａ〜３３４ｂの各々を含んでもよい。行バッファ３３４ａ〜３３４ｂの各々は、メモリアレイバンク３３２ａ〜３３２ｂ内の複数の行のうちアクセスされた行内にデータを記憶してもよい。アクセスされた行は、受信されたメモリ要求内のＤＲＡＭアドレスにより識別されてもよい。制御論理３３６は、受信されたメモリ要求内のキャッシュタグと、行バッファ内に記憶された１つ以上のキャッシュタグと間のタグ比較を実施してもよい。さらに、制御論理は、受信されたＤＲＡＭアドレス内のビットフィールドよりもむしろキャッシュタグ比較結果を利用することにより、行バッファの列アクセスを変更してもよい。
【００４３】
制御論理３３６は、行バッファ内に記憶されたメタデータを更新してもよい。メタデータは、少なくとも、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）値、ダーティビット及びキャッシュコヒーレンシ値を含んでもよい。制御論理３３６は、複数のＤＲＡＭトランザクションを単一の複合トランザクションに変化させるために、識別された行及び行バッファのアクセスを同期させてもよい。この単一の複合トランザクションは、一度は、識別された行にアクセスするために、もう一度は、行バッファに記憶されている修正された内容を、識別された行に戻すために、３Ｄ  ＤＲＡＭ３３０内のデータ及び制御ラインの活性化及びプリチャージを実施してもよい。以下、さらに説明する。
【００４４】
次に図４を参照すると、キャッシュ記憶配置４００にアクセスするために用いられるシーケンスステップの１つの実施形態を示す一般的なブロック図が図示される。データは、種々の方法で３Ｄ  ＤＲＡＭ内に記憶されてもよい。例えば、所与のメモリアレイバンク内の各行は、セットアソシアティブキャッシュ組織を用いて、データを記憶してもよい。記憶されたデータは、キャッシュラインに区分されてもよい。また、各行は、同一行内のキャッシュラインに対応するキャッシュタグも記憶してよい。さらに、各行は、リプレース状態、キャッシュコヒーレンシ状態、ダーティビットなどの所与のキャッシュラインに対応するメタデータを記憶してもよい。
【００４５】
ＤＲＡＭメモリ技術を用いるキャッシュ記憶配置４００の１つの実施形態が示されるものの、１つ以上の行バッファ又は他の均等構造を含む行ベースアクセススキームを用いる他のメモリ技術が可能であり、検討される。他のメモリ技術の例は、位相変化メモリ、スピントルクトランスファ抵抗メモリ、メモリスタなどを備える。
【００４６】
３Ｄ  ＤＲＡＭ内の１つ以上のメモリアレイバンクのうち所与の１つのメモリアレイバンクが図４に示されている。メモリアレイバンク４３０は、複数の行４３２ａ〜４３２ｋを含んでもよい。行４３２ａ〜４３２ｋの各々は、Ｎ個のウェイのセットアソシアティブキャッシュ組織に関するキャッシュタグ及びキャッシュラインを記憶してもよい。ここで、Ｎは１より大きい整数である。８ウェイ、１６ウェイ、３２ウェイ又は他の数のウェイなどの異なる数のウェイが選択されてもよい。例えば、行４３２ａは、キャッシュタグをフィールド４３４ａ〜４３４ｄに記憶する。行４３２ａは、対応するキャッシュラインのデータ部分をフィールド４３８ａ〜４３８ｄに記憶してもよい。したがって、メモリアレイバンク４３０は、キャッシュ組織のタグアレイ及びデータアレイを単一の物理構造に結合する。行４３２ａにおけるフィールド４３４３ａ〜４３４ｄなどの各行の一部は、フィールド４３８ａ〜４３８ｄなどの行の残りに記憶されたデータ要素に対応するタグの入力を保持するために用いられる。
【００４７】
メモリアレイバンク４３０の行４３２ａ〜４３２ｋにおけるタグ記憶装置は、３Ｄ  ＤＲＡＭの全体のサイズのうち固定的なほんの一部であってもよい。１つの実施形態において、キャッシュラインのデータ部分又はキャッシュブロックは、６４バイトのデータを記憶する。他の大きさが可能であり、検討される。しかしながら、キャッシュラインのサイズは、メモリアレイバンク４３０内で用いられるキャッシュ記憶配置４００により変化しなくてもよい。キャッシュ記憶配置４００及びシーケンスステップは、３Ｄ  ＤＲＡＭの全体的なサイズにより、タグ記憶装置のスケールを可能にする一方、キャッシュラインのサイズを例えば６４バイトなどの同一のサイズに保つ。オンチップＳＲＡＭ記憶部は、処理装置内のタグ記憶装置用に利用されなくてもよい。
【００４８】
１つの実施形態において、メモリアレイバンク４３０は、３０ウェイのセットアソシアティブキャッシュ組織を利用する。行４３２ａ〜４３２ｋの各行は、３２ウェイを記憶するために十分な空間を有してもよいが、そのうち２つのウェイは、対応するキャッシュタグ情報を記憶するために利用されてもよい。１つの例では、キャッシュラインは６４バイトであり、キャッシュタグは４バイトである。この例では、２つのキャッシュラインは、記憶装置の２ライン×６４バイト＝１２８バイトを提供する。この例では、タグ記憶装置は、典型的に２つのキャッシュラインにより専有される空間内に設けられる。３０キャッシュラインに関して、タグ記憶装置は、３０ウェイ×４バイト＝１２０バイトを利用する。余分な８バイトは、付加的な情報などの付加的なメタデータを記憶し、リプレース判定、プリフェッチヒント、プロファイリングデータ、ダーティビット、キャッシュコヒーレンシ状態、その他を改善するために用いられてもよい。
【００４９】
行４３２ａ〜４３２ｋの各行は、記憶されたキャッシュラインに対応するメタデータを記憶してもよい。例えば、行４３２ａは、状態メタデータをフィールド４３６ａ内に記憶する。記憶されたメタデータは、対応するキャッシュラインごとに、下記の情報のうち少なくとも１つ以上を含んでもよい、すなわち、有効ビット、対応するキャッシュブロックを所有するソースを示すキャッシュブロックオーナー符号化、キャッシュ制御器により使用されるキャッシュリプレースアルゴリズムに関連して用いられるＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）退去情報、例えば修正された、排他的な、所有された、共有の、無効の若しくは他の状態などのキャッシュコヒーレンシ状態を指定する指示、ダーティビット、プリフェッチヒント情報、プロファイリングデータ又はその他の情報である。他のタイプの状態情報が可能であり、検討される。
【００５０】
メモリアレイバンク４３０の行に記憶された情報に続いて、行４３２ｋは、情報を、行４３２ａと類似したフォーマット内に記憶してもよい。例えば、行４３２ｋは、タグをフィールド４３４ｍ〜４３４ｑに記憶してもよいし、状態メタデータをフィールド４３６ｋに記憶してもよいし、対応するキャッシュラインのデータ部分をフィールド４３８ｍ〜４３８ｑに記憶してもよい。行４３２ａ〜４３２ｋに記憶された情報が特定の順序で隣接空間に示されてはいるものの、隣接していてもしていなくてもデータ記憶装置に関する他の配置が可能であり、検討されることに留意されたい。特定の記憶配置は、設計トレードオフに基づき選択されてもよい。
【００５１】
行バッファ４４０は、行４３２ａ〜４３２ｋのうち選択された行から読み出されたデータ及びメタデータを記憶してもよい。行バッファ４４０は、行４３２ａ〜４３２ｋと類似した記憶配置を用いてもよい。例えば、行バッファ４４０は、Ｎウェイのセットアソシアティブキャッシュ組織に関するキャッシュタグ情報を、フィールド４４４ａ〜４４４ｄに記憶してもよい。行バッファ４４０は、対応するキャッシュラインのデータ部分を、フィールド４４８ａ〜４４８ｄに記憶してもよい。行バッファ４４０は、対応する状態メタデータなどのステータス情報を、フィールド４４６に記憶してもよい。
【００５２】
１つの例において、キャッシュラインは６４バイトであり、キャッシュタグは４バイトであり、メモリアレイバンク４３０は、３０ウェイのセットアソシアティブキャッシュ組織を利用する。行４３２ａ〜４３２ｋの各行は、タグ記憶装置に関して２つのウェイを、またデータ記憶装置に関して３０ウェイを利用してもよい。また、２つのウェイは、メタデータ記憶装置を含んでもよい。したがって、行４３２ａ〜４３２ｋの各行は、３２ウェイ×６４バイト／ウェイ＝２，０４８バイト、又は、２キロバイト（ＫＢ）の記憶装置を含む。同様に、行バッファ４４０は、２ＫＢの記憶装置を含む。行４３２ａ〜４３２ｋの各行は、情報記憶装置に関してＤＲＡＭメモリ技術を利用してもよい。しかしながら、行バッファ４４０は、レジスタ、ＳＲＡＭセル又は他の記憶機構を利用してもよい。したがって、行バッファ４４０の繰り返されたアクセスは、行４３２ａ〜４３２ｋの何れかの行の繰り返されたアクセスより効率的であってもよい。
【００５３】
３Ｄ  ＤＲＡＭは、対応する処理装置に関して非常に大容量のインパッケージメモリ記憶装置を記憶してもよい。この大容量のメモリ記憶装置は、ラストレベルキャッシュとして用いられてもよい。１つの実施形態において、キャッシュラインのデータ部分又はキャッシュブロックは、６４バイトのデータを記憶する。他の大きさが可能であり、検討される。３Ｄ  ＤＲＡＭは、少なくとも数百メガバイト（ＭＢ）又はそれ以上のサイズを有してもよい。メモリアレイバンク４３０は、３Ｄ  ＤＲＡＭ内の複数のバンクのうち１つのバンクであってもよい。１つの例において、３Ｄ  ＤＲＡＭは、５１２ＭＢのサイズを有し、個々が６４バイトのキャッシュラインを８，３８８，６０８個分記憶してもよい。対応するキャッシュタグは、４〜８バイトの大きさを有してもよい。４バイトのキャッシュタグに関して、対応するタグアレイは、８，３８８，６０８×４バイト＝３２ＭＢの大きさを有する。このような大きなタグアレイは、処理装置内のオンチップＳＲＡＭに都合よく記憶されていなくてもよい。むしろ、この大きなタグアレイは、図４に示すように３Ｄ  ＤＲＡＭ内に記憶されてもよい。
【００５４】
タグ、ステータス情報、及び、３Ｄ  ＤＲＡＭに記憶されたキャッシュラインに対応するデータにアクセスすることに関して、ステップ１〜７のシーケンスが図４に示されている。メモリアレイバンク４３０がタグアレイ及びデータアレイの両方を同一行内に記憶するキャッシュとして用いられる場合には、行４３２ａ〜４３２ｋのうち所与の行に関してステップ１〜７を使用するシーケンスとは異なるアクセスシーケンスは、長い待ち時間を有してもよい。例えば、ＤＲＡＭアクセスは、第１の活性化又は開ステージと、全体の行の内容を行バッファ内にコピーするステージと、タグ読み取りステージと、タグ比較ステージと、列アクセスを含むデータ読み取り又は書き込みアクセスステージと、第１のプリチャージ又は閉ステージと、第２の活性化又は開ステージと、全体の行の内容を行バッファ内に再度コピーするステージと、タグ読み取りステージと、タグ比較ステージと、適合するタグに対応するステータス情報に関する更新ステージと、第２のプリチャージ又は閉ステージとを典型的に含む。
【００５５】
メモリアレイバンク４３０内のアクセスステップに続き、その間にも他の行に記憶された他のデータがアクセスされる場合には、１つ以上の付加的なプリチャージ及び活性化ステージは、行バッファの各アクセス後に含まれてもよい。単一のキャッシュアクセスに関して複数のＤＲＡＭトランザクションを使用するよりもむしろ、キャッシュアクセスを単一のＤＲＡＭトランザクションに変換するために、ステップ１〜７のシーケンスが用いられてもよい。活性化／開、列アクセス、読み取り、書き込み及びプリチャージ／閉等の異なるＤＲＡＭ動作の各々は、異なる待ち時間を有する。活性化及びプリチャージ動作は、多くの場合、読み取り及び書き込み動作よりもかなり長い待ち時間を有する。したがって、単一の複合トランザクションを作成するために用いられるステップ１〜７のシーケンスは、いくつかの個々の活性化及びプリチャージ動作を減少させることができる。
【００５６】
シーケンス１の間、処理装置からのメモリ要求は、３Ｄ  ＤＲＡＭにより受信されてもよい。メモリ要求は、３Ｄ集積製造プロセスにより利用可能な水平又は垂直の短い低待ち時間の相互接続ルートを横断していてもよい。コンプリートアドレスの一部は、アドレス４１０として図示されている。フィールド４１２，４１４は、キャッシュタグ及びページインデックスをそれぞれ記憶してもよい。コンプリートアドレスの他の部分は、３Ｄ  ＤＲＡＭ内のメモリアレイバンク４３０を識別するために、チャネルインデックス、バンクインデックス、サブアレイインデックス及びその他のうち１つ以上を含んでもよい。シーケンス２の間、行４３２ａ〜４３２ｋの所与の行は、ページインデックス４１４により他の行から選択されてもよい。
【００５７】
シーケンス３の間、活性化又は開ステージが実行され、行４３２ａ〜４３２ｋのうち選択された行の全体的な内容を、行バッファ４４０にコピーする。３Ｄ  ＤＲＡＭ内又は概してＤＲＡＭ内の行４３２ａ〜４３２ｋのうち選択された行の読み取りは、「破壊的」動作である。選択された行の全体的な内容のコピーは、行バッファ４４０内に保持される。メモリアレイバンク４３０の行から行バッファにデータを読み取るこのプロセスは、「活性化」又は「開」と称される。異なる行からのデータがアクセスされる予定の場合、行バッファ４４０の内容は「プリチャージされ」又は「閉じられて」もよく、このプロセスは、行バッファ４４０内にデータ記憶された現在値をメモリアレイバンク４３０に戻す。
【００５８】
キャッシュタグは、複数のキャッシュラインのうちどのラインが、選択された行内でアクセスされつつあるかを判定するために用いられてもよい。例えば、３０ウェイセットアソシアティブキャッシュ組織において、行４３２ａが選択された場合、フィールド４３４ａ〜４３４ｄに記憶されたキャッシュタグ値は、フィールド４３８ａ〜４３８ｄに記憶された３０行のキャッシュラインのうちどのラインがアクセスされつつあるかを判定するために用いられてもよい。アドレス４１０内のフィールド４１２に記憶されたキャッシュタグは、行バッファ４４０に記憶された複数のキャッシュラインの対応するキャッシュラインを設置するために、比較論理において用いられてもよい。
【００５９】
シーケンス４の間、フィールド４１２に記憶されたキャッシュタグ値が、行バッファ４４０内のフィールド４４４ａ〜４４４ｄのうち１つのフィールドに記憶されたキャッシュタグ値と適合して、フィールド４４６に記憶された、対応するキャッシュライン状態が対応するキャッシュラインが有効なキャッシュラインであることを示す場合に、キャッシュラインヒットが発生し得る。１つの実施形態において、このタグ比較動作は、単一の連続的なバーストにおけるフィールド４４４ａ〜４４４ｄ内に記憶されたキャッシュタグの各々を読み取ってもよい。１つの例において、キャッシュタグは、上述した例で説明された２行のキャッシュラインに相当する空間に記憶されている。情報に値するこれらの２行のキャッシュラインは、単一の動作内の行バッファ４４０から読み出されてもよい。その後、比較論理は、フィールド４４４ａ〜４４４ｄから読み出されたキャッシュタグの各々を、フィールド４１２に記憶されたキャッシュタグ値と比較してもよい。
【００６０】
他の実施形態において、受信されたアドレスからの１つ以上のビットは、タグ比較論理に関してフィールド４４４ａ〜４４４ｄに記憶されたキャッシュタグのサブグループを選択してもよい。タグの適合が判定されると、その後、３Ｄ  ＤＲＡＭアクセスの後続のステップを開始してもよい。適合の発生が判定されない場合には、フィールド４４４ａ〜４４４ｄに記憶されたキャッシュタグの第１のサブグループとは異なる他のサブグループは、タグ比較論理から選択されてもよい。この機構は、２つ以上のサブグループに一般化されてもよい。この機構は、読み取り動作の総量及び／又は集合バーストの全長及び／又はタグ比較に用いられるバス専有を減少させてもよい。
【００６１】
シーケンス５の間、行バッファ４４０に記憶された複数のキャッシュラインのうち所与の１つのラインは、タグ比較結果に基づいて選択される。この列アクセスは、受信されたアドレスに記憶された情報に基づき、フィールド４４４ａ〜４４４ｄ内のキャッシュタグなどの行バッファ４４０及びフィールド４４６内に記憶されるキャッシュライン状態情報に記憶される。選択された所与のキャッシュラインは、受信されたメモリ要求に基づいて読み取り又は書き込みされる。１つの実施形態において、オフセット値は、受信されたアドレスに記憶されてもよいし、アクセスされる予定の選択されたキャッシュライン内の特定のバイト又はワードを示すために用いられてもよい。読み取り又は書き込み動作は、行バッファ４４０に記憶された内容に対して直接動作する。
【００６２】
シーケンス６の間、選択されたキャッシュラインに対応するフィールド４４６に記憶された状態情報が更新される。例えば、キャッシュコヒーレンシ状態は変化してもよく、ＬＲＵリプレース状態は変化してしまってもよく、キャッシュブロック所有者識別子（ＩＤ）は変化してしまってもよく、プリフェッチヒント情報及びプロファイリングデータの両方は変化してしまってもよいなどである。更新動作は、行バッファ４４０に記憶された内容に対して直接動作してもよい。シーケンス７の間、プリチャージ又は閉ステージは、行バッファ４４０の全体的な内容を、行４３２ａ〜４３２ｋのうち選択された行に戻してコピーするために実行される。例えば少なくとも状態情報及びキャッシュラインの所与のラインなどの、行バッファ４４０内の内容のうちのいくらかは、これから修正される。
【００６３】
図３に示される制御論理３３６などの制御論理は、シーケンス３〜７において実施される動作を、妨げられることのない動作のブロックとして確実に起こすことが可能である。例えば、開動作がシーケンス３内でいったん開始すると、メモリアレイバンク４３０内のデータ上で動作するのを待っている他のメモリ要求は、シーケンス３〜７が完了してしまうまで待つことを続けるように制御論理により指示されてもよい。３Ｄ  ＤＲＡＭのこの単一の複合アクセスは、付加的な高コストの活性化及びプリチャージ待ち時間を回避する。３Ｄ  ＤＲＡＭのこの単一の複合アクセスは、単一の活性化待ち時間に対する単一のメモリ要求、単一のプリチャージ待ち時間、キャッシュライン上で実施される単一の読み出し／書き込み動作、状態情報を更新するための単一の書き込み動作、並びに、タグ読み出し及び比較に関する待ち時間に対応するアクセスの待ち時間を保持してもよい。
【００６４】
図５を参照すると、効率的なインパッケージＤＲＡＭアクセスのための方法５００の１つの実施形態の一般的なフローチャートが示される。検討する目的のため、後述の方法のこの実施形態及び後続の実施形態のステップは、出てくる順番で示される。しかしながら、他の実施形態において、いくつかのステップは図示されるステップとは異なる順番で起きてもよく、いくつかのステップは同時に実施されてもよく、いくつかのステップは他のステップと組み合わされてもよく、いくつかのステップは存在しなくてもよい。
【００６５】
１つ以上のコンピュータプログラム又はソフトウェアアプリケーションは、ブロック５０２で実行される。処理装置がこれらのアプリケーションを実行してもよい。処理装置の例は上述したとおりである。処理装置は、３Ｄ  ＤＲＡＭなどの３Ｄ集積メモリを含むシステムインパッケージ（ＳｉＰ）内に存在してもよい。処理装置は、キャッシュとして３Ｄ  ＤＲＡＭを利用してもよい。
【００６６】
ブロック５０４において、処理装置は、処理装置内のキャッシュメモリサブシステム内の所与のメモリ要求ミスを判定してもよい。ブロック５０６で、処理装置は、所与のメモリ要求に対応するアドレスを３Ｄ  ＤＲＡＭなどのインパッケージ集積ＤＲＡＭキャッシュに送ってもよい。アドレスは、処理装置内で用いられる対応するキャッシュアドレスからアクセスオンチップキャッシュに変換されるＤＲＡＭアドレスに加えて、非翻訳キャッシュタグを含んでもよい。ブロック５０８において、３Ｄ  ＤＲＡＭ内の制御論理は、３Ｄ  ＤＲＡＭにおけるメモリアレイバンク内のアドレスに対応する所与の行を識別してもよい。
【００６７】
ブロック５１０において、３Ｄ  ＤＲＡＭ内の制御論理は、所与の行を活性化させ開いてもよい。ブロック５１２において、所与の行の内容は、行バッファにコピーされ記憶されてもよい。ブロック５１４において、行バッファ内のタグ情報は、アドレス内のタグ情報と比較されてもよい。ブロック５０６〜５１２に説明されたステップは、図４に関して上述したシーケンス１〜４に対応してもよい。
【００６８】
タグ比較においてタグヒットが起こらないと判定されると（条件付きブロック５１６）、ブロック５１８にて、メモリ要求がメインメモリに送られてもよい。メインメモリは、オフチップ非集積ＤＲＡＭ及び／又はオフチップディスクメモリを含んでもよい。タグ比較においてタグヒットが起こると判定されると（条件付きブロック５１６）、ブロック５２０にて、読み取り又は書き込み動作が、行バッファ内の対応するキャッシュライン上で実施される。
【００６９】
ブロック５２２において、キャッシュラインに関する状態情報を記憶する行バッファ内の対応するメタデータが更新される。ブロック５２４において、行バッファ内に記憶された修正及び未修正情報の両方は、所与の行に戻されてコピーされる。プリチャージ及び閉ステージは、データを移動させるために実施される。
【００７０】
上述の実施形態はソフトウェアを含んでもよいことに留意されたい。このような実施形態において、方法及び／又は機構を実行するプログラム命令は、コンピュータ可読記憶媒体上に伝搬され記憶されてもよい。プログラム命令を記憶するように構成された多くのタイプの媒体が利用可能であり、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリ、プログラム可能ＲＯＭ（ＰＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、及び、種々の他の形式の揮発性又は不揮発性の記憶装置を含む。一般的に言えば、コンピュータアクセス可能記憶媒体は、命令及び／又はデータをコンピュータに供給するために、使用中、コンピュータによってアクセス可能ないずれかの記憶媒体を含む。例えば、コンピュータアクセス可能記憶媒体は、磁気又は光学媒体などの記憶媒体（例えば、（固定式または着脱式）ディスク、テープ、ＣＤ−ＲＯＭ若しくはＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、又は、ブルーレイなど）を含んでもよい。記憶媒体は、ＲＡＭなどの揮発性又は不揮発性メモリ媒体（例えば、シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＳＤＲＡＭ、低出力ＤＤＲ（ＬＰＤＤＲ２など）ＳＤＲＡＭ、ラムバスＤＲＡＭ（ＲＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）など）、ＲＯＭ、フラッシュメモリ、ユニバーサルシリアルバス（ＵＳＢ）インターフェースなどの周辺インターフェースを介してアクセス可能な不揮発性メモリ（例えばフラッシュメモリ）などをさらに含んでもよい。記憶媒体は、ネットワーク及び／又は無線リンクなどの通信媒体を介してアクセス可能な記憶媒体だけでなく、微小電気機械システム（ＭＥＭＳ）も含む。
【００７１】
さらに、プログラム命令は、例えばＣ言語などの高レベルプログラミング言語におけるハードウェア機能の行動レベル記述、レジスタトランスファレベル（ＲＴＬ）記述、例えばＶｅｒｉｌｏｇなどの設計用言語（ＨＤＬ）、ＶＨＤＬ、又は、例えばＧＤＳＩＩストリームフォーマット（ＧＤＳＩＩ）などのデータベースフォーマットを含んでもよい。いくつかの場合、記述は、ライブラリ合成からのゲートのリストを含むネットリストを作成するように、記述を合成可能な合成ツールにより読み取られてもよい。ネットリストは、システムを備えるハードウェアの機能を表すゲート一式を含む。ネットリストは、その後、マスクに適用される幾何学的図形を記述するデータセットを作成するように、設置されルーティングされてもよい。マスクは、その後、システムに対応する半導体回路を製造するために、種々の半導体製造ステップにおいて用いられてもよい。あるいは、コンピュータアクセス可能記憶媒体に対する命令は、上述のように、ネットリスト（ライブラリ合成の有無）又はデータセットであってもよい。さらに、命令は、Ｃａｄｅｎｃｅ（登録商標）、ＥＶＥ（登録商標）、及び、Ｍｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ（登録商標）などのベンダーからのハードウェアベースタイプのエミュレータによってエミュレーションするために利用されてもよい。
【００７２】
上記の実施形態を詳細に説明してきたが、上記の開示が完全に理解されれば、多くの変形例及び修正例が当業者にとって自明であろう。以下の特許請求の範囲は、このような変形例及び修正例の全てを包含するように解釈されることが意図される。
【図１】
2015503160.tif 000003
【図２】
2015503160.tif 000004
【図３】
2015503160.tif 000005
【図４】
2015503160.tif 000006
【図５】
2015503160.tif 000007
【国際調査報告】
2015503160.tif 000008
2015503160.tif 000009
2015503160.tif 000010