(57)【特許請求の範囲】
【請求項１】
データアレイと、
物理タグ付けされたタグアレイと、
仮想タグ付けされたタグアレイであって、
仮想アドレスを受け取り、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断し、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データアレイに出力する
ように構成された仮想タグ付けされたタグアレイと
を備え、
前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
データキャッシュ。
【請求項２】
前記仮想タグ付けされたタグアレイが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断すると同時に、前記仮想アドレスを物理アドレスに変換し、前記物理アドレスを前記物理タグ付けされたタグアレイに出力し、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力するように構成された変換回路
をさらに備える、請求項1に記載のデータキャッシュ。
【請求項３】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記変換回路からの前記物理アドレスを使用した前記物理タグ付けされたタグアレイの検索が実行されないように、前記物理タグ付けされたタグアレイが無効化される、請求項2に記載のデータキャッシュ。
【請求項４】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想タグ付けされたタグアレイが、前記物理タグ付けされたタグアレイを無効化するようにさらに構成される、請求項1に記載のデータキャッシュ。
【請求項５】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、前記仮想タグ付けされたタグアレイが、前記仮想アドレスに対応する物理アドレスを使用した前記物理タグ付けされたタグアレイの検索を有効化するようにさらに構成される、請求項4に記載のデータキャッシュ。
【請求項６】
前記仮想タグ付けされたタグアレイが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断すると同時に、前記仮想アドレスを前記物理アドレスに変換し、前記物理アドレスを前記物理タグ付けされたタグアレイに出力し、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力するように構成された変換回路
をさらに備える、請求項5に記載のデータキャッシュ。
【請求項７】
前記物理タグ付けされたタグアレイの前記検索を有効化するために、前記仮想タグ付けされたタグアレイが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、ミスを前記物理タグ付けされたタグアレイに出力するように構成される、請求項6に記載のデータキャッシュ。
【請求項８】
前記仮想タグ付けされたタグアレイからの前記ミスに応答して、前記物理タグ付けされたタグアレイが、
前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致があるかどうかを判断し、
一致がある場合、前記物理アドレスについての前記物理タグ付けされたタグアレイによって記憶されたウェイを出力する
ように構成される、請求項7に記載のデータキャッシュ。
【請求項９】
前記データアレイが、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想タグ付けされたタグアレイから前記ウェイを受け取り、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がないが、前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致がある場合、前記物理タグ付けされたタグアレイから前記ウェイを受け取り、
前記ウェイを受け取ったことに応答して、前記ウェイに基づいてデータ要素を出力する
ように構成される、請求項8に記載のデータキャッシュ。
【請求項１０】
前記データアレイがセットアソシアティブであり、前記データ要素を出力するために、前記データアレイが、前記仮想アドレスから取得されたインデックスおよび前記ウェイによってアドレス指定されたデータ要素を出力する、請求項9に記載のデータキャッシュ。
【請求項１１】
前記仮想タグ付けされたタグアレイのサイズが、前記物理タグ付けされたタグアレイのサイズよりも小さい、請求項1に記載のデータキャッシュ。
【請求項１２】
前記仮想タグ付けされたタグアレイのサイズが、前記物理タグ付けされたタグアレイのサイズと等しい、請求項1に記載のデータキャッシュ。
【請求項１３】
前記仮想タグ付けされたタグアレイが、セットアソシアティブメモリ構造、フルアソシアティブメモリ構造、およびダイレクトマップメモリ構造からなる群から選択される構造を有する、請求項1に記載のデータキャッシュ。
【請求項１４】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるとき、前記データキャッシュのステージ数が、前記仮想タグ付けされたタグアレイおよび前記データアレイからなる2ステージに低減される、請求項1に記載のデータキャッシュ。
【請求項１５】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があり、前記一致に応答して、前記仮想タグ付けされたタグアレイが、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力し、前記物理タグ付けされたタグアレイを無効化する、請求項1に記載のデータキャッシュ。
【請求項１６】
半導体ダイ上に実装される、請求項1に記載のデータキャッシュ。
【請求項１７】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のデータキャッシュ。
【請求項１８】
データアレイと、物理タグ付けされたタグアレイと、仮想タグ付けされたタグアレイとを含むデータキャッシュの動作方法であって、
仮想アドレスを受け取るステップと、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断するステップと、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データアレイに出力するステップと
を含み、
前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
方法。
【請求項１９】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記物理タグ付けされたタグアレイを無効化するステップをさらに含む、請求項18に記載の方法。
【請求項２０】
前記仮想アドレスを物理アドレスに変換するステップと、
前記物理アドレスを前記物理タグ付けされたタグアレイに出力するステップとをさらに含み、
前記仮想アドレスを前記物理アドレスに変換するステップおよび前記物理アドレスを前記物理タグ付けされたタグアレイに出力するステップが実行されると同時に、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断し、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力する、請求項19に記載の方法。
【請求項２１】
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、前記仮想アドレスに対応する前記物理アドレスを使用した前記物理タグ付けされたタグアレイの検索を有効化するステップを含む、請求項20に記載の方法。
【請求項２２】
前記物理タグ付けされたタグアレイの前記検索を有効化するステップが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、ミスを前記物理タグ付けされたタグアレイに出力するステップを含む、請求項21に記載の方法。
【請求項２３】
前記仮想タグ付けされたタグアレイからの前記ミスに応答して、
前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致があるかどうかを判断するステップと、
前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致がある場合、前記物理アドレスについての前記物理タグ付けされたタグアレイによって記憶されたウェイを出力するステップと
をさらに含む、請求項22に記載の方法。
【請求項２４】
前記データアレイにおいて、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想タグ付けされたタグアレイから、または前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がないが、前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致がある場合、前記物理タグ付けされたタグアレイから前記ウェイを受け取るステップと、
前記ウェイを受け取ったことに応答して、前記ウェイに基づいてデータ要素を出力するステップと
をさらに含む、請求項23に記載の方法。
【請求項２５】
前記データアレイがセットアソシアティブであり、前記データ要素を出力するステップが、前記仮想アドレスから取得されたインデックスおよび前記ウェイによってアドレス指定されたデータ要素を出力するステップを含む、請求項24に記載の方法。
【請求項２６】
データキャッシュであって、
仮想タグ付けされたタグアレイ中に仮想アドレスとの一致があるかどうかを判断するための手段と、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、
前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データキャッシュのデータアレイに出力するための手段と、
前記データキャッシュの物理タグ付けされたタグアレイを無効化するための手段と
を備え、
前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
データキャッシュ。
【請求項２７】
プロセッサに、
データキャッシュの仮想タグ付けされたタグアレイ中に仮想アドレスとの一致があるかどうかを判断し、
前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、
前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データキャッシュのデータアレイに提供し、
前記データキャッシュの物理タグ付けされたタグアレイを無効化する
ように命令するためのソフトウェアを記憶し、
前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はデータキャッシュに関する。
【０００２】
優先権の主張
本出願は、その全体が参照により本明細書に組み込まれる、2012年1月17日に出願されたMETHOD FOR FILTERING TRAFFIC TO A PHYSICALLY-TAGGED DATA CACHEと題する米国仮特許出願第61/587,140号の優先権を主張する。
【背景技術】
【０００３】
多くの現代のマイクロプロセッサは、仮想的にアドレス指定されたキャッシュを利用する。仮想的にアドレス指定されたキャッシュを使用するために、仮想アドレスから対応する物理アドレスへの変換が一般に実行される。この変換は本質的に別のステージを命令パイプラインに追加し、今度は命令パイプラインがマイクロプロセッサの性能を低下させる。
【０００４】
加えて、モバイルデバイスのより長いバッテリー寿命に対する増加する需要に応じて、マイクロプロセッサの電力プロファイルはますます重要になってきている。記憶ユニット内の電力利用の最も大きい構成要素のうちの1つは、動作が命令パイプラインを下に移動するときに各動作に対して物理タグ付けされたタグアレイを検索することである。物理タグ付けされたタグアレイにおけるこの検索は、平均負荷使用ペナルティができるだけ低くなるように、命令パイプラインから直接負荷を取り除くことができるようにするのに必要である。問題は、一般的に大きな構造である物理タグ付けされたタグアレイにアクセスすることに関連する電力が極めて大きいということである。
【０００５】
したがって、データキャッシュと、物理タグ付けされたタグアレイへのアクセス数を制限しながら命令パイプラインが同じ性能を実現することを可能にするデータキャッシュの動作方法とが必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００６】
データキャッシュの物理タグ付けされたタグアレイへのアクセス数を実質的に減少させる、データキャッシュの実施形態が開示される。概して、データキャッシュは、データ要素を記憶するデータアレイと、物理タグ付けされたタグアレイと、仮想タグ付けされたタグアレイとを含む。一実施形態では、仮想タグ付けされたタグアレイは仮想アドレスを受け取る。仮想タグ付けされたタグアレイ中に仮想アドレスとの一致がある場合、仮想タグ付けされたタグアレイは、データアレイに、仮想アドレスについての仮想タグ付けされたタグアレイに記憶されたウェイ(way)を出力する。加えて、一実施形態では、仮想タグ付けされたタグアレイは物理タグ付けされたタグアレイを無効化する。このようにして、物理タグ付けされたタグアレイにアクセスすることなくウェイが取得される。仮想タグ付けされたタグアレイによって出力されたウェイを使用して、データアレイ中の所望のデータ要素がアドレス指定される。対照的に、仮想タグ付けされたタグアレイ中に仮想アドレスとの一致がない場合、仮想アドレスから物理アドレスへの変換から取得された物理アドレスが物理タグ付けされたタグアレイに与えられ、物理タグ付けされたタグアレイは、物理アドレスについての物理タグ付けされたタグアレイに記憶されたウェイを出力する。データアレイ中の所望のデータ要素は、仮想アドレスから取得されたインデックスおよび仮想タグ付けされたタグアレイから取得されたウェイを用いてアドレス指定される。
【０００７】
仮想アドレスと仮想タグ付けされたタグアレイ中のタグとの間に一致があるときに、仮想タグ付けされたタグアレイからウェイを取得することによって、物理タグ付けされたタグアレイにアクセスすることなくウェイが取得される。その結果、データキャッシュにおけるステージ数を事実上低減することによって性能が改善される。加えて、仮想アドレスと仮想タグ付けされたタグアレイ中のタグとの間に一致があるときに、物理タグ付けされたタグアレイが無効化される実施形態では、データキャッシュの電力消費が低減される。
【図面の簡単な説明】
【０００８】
【図１】本開示の一実施形態による、仮想タグ付けされたタグアレイを含むデータキャッシュを示す図である。
【図２】本開示の一実施形態による、データアレイがセットアソシアティブメモリ構造として実装される、図1のデータキャッシュのデータアレイの一例を示す図である。
【図３】図1のデータキャッシュを用いることができるプロセッサベースのシステムの一例を示す図である。
【発明を実施するための形態】
【０００９】
ここで図面を参照して、本開示のいくつかの例示的な実施形態について説明する。「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するように本明細書で使用される。「例示的な」として本明細書で説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１０】
データキャッシュの物理タグ付けされたタグアレイへのアクセス数を実質的に減少させる、データキャッシュの実施形態が開示される。以下で説明するように、物理タグ付けされたタグアレイへのアクセス数を減少させることによって、データキャッシュの性能が向上するとともに、データキャッシュの電力消費が低減される。図1は、本開示によるデータキャッシュ10の一実施形態を示す。概して、データキャッシュ10は、図示のように接続された、データアレイ12と、変換回路14と、仮想タグ付けされたマイクロタグアレイ16と、物理タグ付けされたタグアレイ18とを含む。データアレイ12は、いくつかのデータ要素(たとえば、いくつかの64バイトデータ要素)を記憶する。さらに、図2に示すように、データアレイ12の各インデックスまたはセットについて、各々が別個のデータ要素を記憶するいくつかの「ウェイ」をデータアレイ12が含むように、データアレイ12はセットアソシアティブである。したがって、データアレイ12の各インデックスについて、データアレイ12はN-1個のデータ要素を記憶し、N-1はデータアレイ12中のウェイの数である。たとえば、データアレイ12が4ウェイセットアソシアティブである場合、データアレイ12は、各々が各インデックスまたはセットについての別個のデータ要素をデータアレイ12に記憶する4つのウェイを含む。したがって、データアレイ12中の特定のデータ要素をアドレス指定するためにインデックスとウェイの両方が使用される。
【００１１】
変換回路14は、知られている仮想アドレスから物理アドレスへの変換技法を使用して、データキャッシュ10に入力された仮想アドレスを物理アドレスに変換するように動作する。仮想タグ付けされたマイクロタグアレイ16は、たとえば、セットアソシアティブメモリ構造、フルアソシアティブメモリ構造、またはダイレクトマップメモリ構造などの任意の所望のメモリ構造を使用して実装され得る。仮想タグ付けされたマイクロタグアレイ16のサイズは、好ましくは、物理タグ付けされたタグアレイ18のサイズよりも実質的に小さい。しかしながら、仮想タグ付けされたマイクロタグアレイ16のサイズはこれに限定されない。たとえば、仮想タグ付けされたマイクロタグアレイ16のサイズは、代替として、物理タグ付けされたタグアレイ18のサイズと等しくてもよい。仮想タグ付けされたマイクロタグアレイ16はいくつかの仮想タグのウェイ値を記憶する。物理タグ付けされたタグアレイ18も、たとえば、セットアソシアティブメモリ構造、フルアソシアティブメモリ構造、またはダイレクトマップメモリ構造などの任意の所望のメモリ構造を使用して実装され得る。物理タグ付けされたタグアレイ18はいくつかの物理タグのウェイ値を記憶する。
【００１２】
動作の際、データ要素、またはデータ要素の一部分がデータアレイ12に書き込まれると、対応するウェイ値は、対応する仮想タグと関連して、仮想タグ付けされたマイクロタグアレイ16に記憶される。同様の方法で、対応するウェイ値は、対応する物理タグと関連して、物理タグ付けされたタグアレイ18に記憶される。ウェイ値が仮想タグ付けされたマイクロタグアレイ16および物理タグ付けされたタグアレイ18に記憶される厳密な方法は、仮想タグ付けされたマイクロタグアレイ16および物理タグ付けされたタグアレイ18の構造に依存する。このプロセスは、新しいデータ要素、またはデータ要素の一部分がデータアレイ12に書き込まれるたびに繰り返される。
【００１３】
データ要素がデータキャッシュ10から読み出されるか、またはさもなければアドレス指定されるとき、データキャッシュ10は、たとえば、マイクロプロセッサの命令パイプラインから仮想アドレス(VA)を受け取る。仮想アドレスを受け取ったことに応答して、変換回路14は、知られている仮想アドレスから物理アドレスへの変換技法を使用して、仮想アドレスを物理アドレスに変換する。変換回路14が変換を実行しているのと同時に、仮想タグ付けされたマイクロタグアレイ16は、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致があるかどうかを判断する。仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致があるかどうかを仮想タグ付けされたマイクロタグアレイ16が判断する方法は、特定の実装形態によって異なる。たとえば、仮想タグ付けされたマイクロタグアレイ16が、たとえば、内容アドレスメモリ(Content Addressable Memory)(CAM)構造などのセットアソシアティブメモリ構造として実装される場合、仮想アドレス、または少なくとも仮想アドレスに含まれる仮想タグは、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致があるかどうかを判断するために、仮想タグ付けされたマイクロタグアレイ16に記憶されたいくつかの仮想タグと同時に比較される。
【００１４】
別の例として、仮想タグ付けされたマイクロタグアレイ16がセットアソシアティブメモリ構造として実装される場合、仮想タグ付けされたマイクロタグアレイ16は、いくつかのセットまたはインデックスと、各セットまたはインデックスについてのいくつかのウェイとを含み得る。好ましくは、仮想タグ付けされたマイクロタグアレイ16中のウェイの数は、データアレイ12中のウェイの数よりも少ない。この例では、仮想タグ付けされたマイクロタグアレイ16のインデックスはデータアレイ12のインデックスと同じであり、仮想タグ付けされたマイクロタグアレイ16中の各データ要素(すなわち、各インデックスとウェイの組合せ)は、仮想タグおよび関連するウェイを記憶するように構成される。仮想アドレスとの一致があるかどうかを判断するために、仮想アドレスに含まれるインデックスを使用して、仮想タグ付けされたマイクロタグアレイ16にインデックス付けし、仮想タグ付けされたマイクロタグアレイ16中のインデックスについてのウェイを検索して、これらのウェイのいずれかについての仮想タグが仮想アドレスからの仮想タグと一致するかどうかを判断する。仮想タグが一致する場合、仮想アドレスとの一致がある。仮想タグ付けされたマイクロタグアレイ16の上記の例は例示のためのみに与えられ、本開示の範囲を限定するものではないことに留意されたい。
【００１５】
仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致がない場合、仮想タグ付けされたマイクロタグアレイ16は、物理タグ付けされたタグアレイ18を有効化するミスインジケータを出力する。応答して、物理タグ付けされたタグアレイ18は変換回路14からの物理アドレスを処理して、対応するウェイをデータアレイ12に出力する。物理タグ付けされたタグアレイ18が物理アドレスを処理して、対応するウェイを出力する方法は、特定の実装形態によって異なる。たとえば、物理タグ付けされたタグアレイ18がフルアソシアティブメモリ構造(たとえば、CAM構造)として実装される場合、物理タグ付けされたタグアレイ18は、いくつかの物理タグおよび対応するウェイを記憶する。次いで、物理タグ付けされたタグアレイ18中の物理タグは、物理タグ付けされたタグアレイ18中の物理タグと関連して記憶されたウェイ値を出力するために、物理アドレスに含まれる物理タグと同時に比較される。別の例として、物理タグ付けされたタグアレイ18は、いくつかのセットまたはインデックスと、各セットまたはインデックスについてのいくつかのウェイとを有するセットアソシアティブメモリ構造として実装され得る。物理タグ付けされたタグアレイ18のインデックスはデータアレイ12のインデックスと同じであり、物理タグ付けされたタグアレイ18中の各データ要素(すなわち、各インデックスとウェイの組合せ)は、物理タグおよび対応するウェイを記憶するように構成される。物理アドレスに含まれるインデックスを使用して、物理タグ付けされたタグアレイ18にインデックス付けし、物理アドレスからの物理タグと一致する物理タグについて、物理タグ付けされたタグアレイ18中のインデックスについてのウェイを検索する。次いで、一致する物理タグに関連して記憶されたウェイ値は、物理タグ付けされたタグアレイ18によって出力される。物理タグ付けされたタグアレイ18の上記の例は例示のためのみに与えられ、本開示の範囲を限定するものではないことに留意されたい。
【００１６】
物理タグ付けされたタグアレイ18からウェイを受け取ったことに応答して、データアレイ12は適切なデータ要素を出力する。より具体的には、一実施形態では、データアレイ12中のデータ要素は、仮想アドレスに含まれるインデックスおよび仮想タグ付けされたマイクロタグアレイ16または物理タグ付けされたタグアレイ18のいずれかから取得されたウェイを使用してアドレス指定される。こうして、仮想アドレスからのインデックスおよび物理タグ付けされたタグアレイ18によって出力されたウェイを使用して、データアレイ12はインデックスおよびウェイによってアドレス指定されたデータ要素を出力する。
【００１７】
仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致がある場合、この実施形態では、仮想タグ付けされたマイクロタグアレイ16は物理タグ付けされたタグアレイ18を無効化するヒットインジケータを出力する。加えて、仮想タグ付けされたマイクロタグアレイ16は仮想アドレスのウェイをデータアレイ12に出力する。この場合も、仮想タグ付けされたマイクロタグアレイ16によって出力されたウェイは、仮想アドレスと一致する仮想タグに関連して仮想タグ付けされたマイクロタグアレイ16に記憶されたウェイ値である。仮想タグ付けされたマイクロタグアレイ16からウェイを受け取ったことに応答して、 データアレイ12は適切なデータ要素を出力する。より具体的には、一実施形態では、データアレイ12中のデータ要素は、仮想アドレスに含まれるインデックスおよび仮想タグ付けされたマイクロタグアレイ16または物理タグ付けされたタグアレイ18のいずれかから取得されたウェイを使用してアドレス指定される。こうして、仮想アドレスからのインデックスおよび仮想アドレスについての仮想タグ付けされたマイクロタグアレイ16から出力されたウェイを使用して、データアレイ12はインデックスおよびウェイによってアドレス指定されたデータ要素を出力する。
【００１８】
特に、仮想タグ付けされたマイクロタグアレイ16は、一般的に大きな構造である物理タグ付けされたタグアレイ18へのアクセス数を低減することによって、データキャッシュ10の性能を改善し、データキャッシュ10の電力消費を低減する。より具体的には、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスのヒットがある場合、物理タグ付けされたタグアレイ18にアクセスすることなくウェイが取得される。結果として、データキャッシュ10におけるステージ数が事実上2ステージに低減される。具体的には、仮想タグ付けされたマイクロタグアレイ16中にヒットがあるとき、データキャッシュ10におけるステージ数は2(すなわち、仮想タグ付けされたマイクロタグアレイ16およびデータアレイ12)である。対照的に、従来のデータキャッシュは3ステージを必要とし、これらのステージは、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスのヒットがないときにデータキャッシュ10で利用される、変換回路14、物理タグ付けされたタグアレイ18、およびデータアレイ12に対応する。データキャッシュ10におけるステージ数を低減することに加えて、仮想タグ付けされたマイクロタグアレイ16におけるヒットは、本来なら物理タグ付けされたタグアレイ18によって消費されていたであろう電力も節約する。
【００１９】
本明細書で説明するデータキャッシュ10によって与えられる利点の2つの例は、性能を向上させることおよび電力を低下させることである。性能は、仮想タグ付けされたマイクロタグアレイ16からのウェイを使用して、データアレイ12にインデックス付けすることによって向上する。電力は、仮想タグ付けされたマイクロタグアレイ16中にヒットがあるときに物理タグ付けされたタグアレイ18を有効化しないことによって低減される。しかしながら、代替実施形態では、仮想タグ付けされたマイクロタグアレイ16中にヒットがあるとき、物理タグ付けされたタグアレイ18は無効化されない場合がある(たとえば、物理タグ付けされたタグアレイ18を無効化するためにヒットインジケータが与えられない場合がある)ことに留意されたい。そうすることによって、電力消費は物理タグ付けされたタグアレイ18を無効化することによって低減されない。しかしながら、仮想タグ付けされたマイクロタグアレイ16からのウェイをデータアレイ12に与え、それによって、データキャッシュ10のステージ数を事実上低減することによって、性能は依然として改善される。
【００２０】
本明細書で開示する実施形態によるデータキャッシュ10は任意のプロセッサベースのデバイスに設けられるか、または組み込まれる。例として、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００２１】
この点について、図3は、図1に示すデータキャッシュ10を用いることができるプロセッサベースのシステム20の一例を示す。この例では、プロセッサベースのシステム20は、1つまたは複数のプロセッサ24を各々が含む1つまたは複数の中央処理装置(CPU)22を含む。CPU22は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ24に結合されたデータキャッシュ10を含む。CPU22はシステムバス26に結合され、プロセッサベースのシステム20に含まれるマスターデバイスおよびスレーブデバイスを相互結合することができる。よく知られているように、CPU22は、アドレス情報、制御情報、およびデータ情報をシステムバス26を通じて交換することによって、これらの他のデバイスと通信する。図3には示されていないが、複数のシステムバス26を設けてもよく、この場合、各システムバス26は異なるファブリックを構成する。
【００２２】
他のマスターデバイスおよびスレーブデバイスが、システムバス26に接続され得る。図3に示されるように、これらのデバイスは、例として、メモリシステム28、1つまたは複数の入力デバイス30、1つまたは複数の出力デバイス32、1つまたは複数のネットワークインターフェースデバイス34、および1つまたは複数のディスプレイコントローラ36を含み得る。入力デバイス30は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含み得る。出力デバイス32は、限定はしないが、オーディオ、ビデオ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス34は、ネットワーク38との間のデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク38は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、私設ネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス34は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。
【００２３】
CPU22はまた、システムバス26を通じてディスプレイコントローラ36にアクセスして、1つまたは複数のディスプレイ40に送られる情報を制御するように構成され得る。ディスプレイコントローラ36は、1つまたは複数のビデオプロセッサ42を介して表示されるべき情報をディスプレイ40に送り、ビデオプロセッサ42は、表示されるべき情報をディスプレイ40に適切なフォーマットとなるように処理する。ディスプレイ40は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。
【００２４】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスによって実行される命令として、または両方の組合せとして実装され得ることが、当業者にはさらに諒解されよう。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリでもよく、所望の任意のタイプの情報を記憶するように構成され得る。この互換性を明確に示すために、上記では、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００２５】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、FPGAもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００２６】
本明細書で開示する実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令で具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能ROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICは遠隔局に存在し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別構成要素として存在し得る。
【００２７】
本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および議論を提供するために説明したものであることにも、留意されたい。説明した動作は、例示した順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明した動作は、実際には、いくつかの異なるステップで実行され得る。加えて、例示的な実施形態において論じた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャート図において例示した動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００２８】
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正が当業者には容易に明らかとなり、本明細書で定義した一般原理は、本開示の趣旨および範囲を逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００２９】
10  データキャッシュ
12  データアレイ
14  変換回路
16  仮想タグ付けされたマイクロタグアレイ
18  物理タグ付けされたタグアレイ
20  プロセッサベースのシステム
22  中央処理装置(CPU)
24  プロセッサ
26  システムバス
28  メモリシステム
30  入力デバイス
32  出力デバイス
34  ネットワークインターフェースデバイス
36  ディスプレイコントローラ
38  ネットワーク
40  ディスプレイ
42  ビデオプロセッサ
【図１】
0005752331.tif 000002
【図２】
0005752331.tif 000003
【図３】
0005752331.tif 000004