(57)【要約】【課題】関連するキャッシュメモリでのエネルギ消費を減らす装置を提供すること。【解決手段】本装置はウエイ記憶を実行し、ウエイ記憶は以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用する。メモリアドレスバッファ要素はキャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされる。複数のデータセグメントに関連する複数のエントリはメモリアドレスバッファ要素に格納される。選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示す。メモリアドレスバッファ要素は１以上のウエイを含み、ウエイはキャッシュメモリから抽出された１以上のデータセグメントを格納するように動作する。１以上の以前にアクセスされたアドレスは、該１以上の以前にアクセスされたアドレスに関連する１以上のタグ及び１以上のセット指標と置換される。【選択図】図１
2006120163.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリのウエイ記憶を実行するステップであって、前記ウエイ記憶は以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用し、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされるところのステップ；
複数のデータセグメントに関連する複数のエントリを格納するステップであって、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示すところのステップ；及び
１以上の以前にアクセスしたアドレスと、該１以上の以前にアクセスしたアドレスに関連する１以上のタグ及び１以上のセット指標とを置換するステップ；
を有することを特徴とするキャッシュメモリの電力を減らす方法。
【請求項２】
要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するために前記メモリアドレスバッファ要素を参照するステップ
をさらに有することを特徴とする請求項１記載の方法。
【請求項３】
キャッシュメモリのウエイ記憶を実行する手段；
以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用する手段であって、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされるところの手段；
複数のデータセグメントに関連する複数のエントリを格納する手段であって、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示すところの手段；及び
１以上の以前にアクセスしたアドレスと、該１以上の以前にアクセスしたアドレスに関連する１以上のタグ及び１以上のセット指標とを置換する手段；
を有することを特徴とするキャッシュメモリの電力を減らすシステム。
【請求項４】
要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するために前記メモリアドレスバッファ要素を参照する手段
をさらに有することを特徴とする請求項３記載のシステム。
【請求項５】
キャッシュメモリの電力を減らすためのソフトウエアであって：
キャッシュメモリのウエイ記憶を実行させるコンピュータコード；
以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用させるコンピュータコードであって、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされるところのコンピュータコード；
複数のデータセグメントに関連する複数のエントリを格納させるコンピュータコードであって、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示すところのコンピュータコード；及び
１以上の以前にアクセスしたアドレスと、該１以上の以前にアクセスしたアドレスに関連する１以上のタグ及び１以上のセット指標とを置換させるコンピュータコード；
を有し、コンピュータ読取可能な媒体に組み込まれるソフトウエア。
【請求項６】
要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するために前記メモリアドレスバッファ要素を参照させるコンピュータコード
をさらに有することを特徴とする請求項５記載のソフトウエア。
【請求項７】
キャッシュメモリ；及び
前記キャッシュメモリに結合されたメモリアドレスバッファ要素；
を有するキャッシュメモリの電力を減らす装置であって、前記キャッシュメモリについてウエイ記憶が実行され、前記ウエイ記憶は以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用し、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされ、
複数のデータセグメントに関連する複数のエントリは前記メモリアドレスバッファ要素に格納され、
選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示し、
１以上の以前にアクセスされたアドレスは、該１以上の以前にアクセスされたアドレスに関連する１以上のタグ及び１以上のセット指標と置換される
ことを特徴とする装置。
【請求項８】
前記メモリアドレスバッファ要素は、要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するためにアクセスされる
ことを特徴とする請求項７記載の装置。
【請求項９】
メモリアドレスバッファ要素でのヒットの有無が判定され、該ヒットは要求されたデータセグメントが前記キャッシュメモリに存在する状態を反映し、要求されたデータセグメントを含むものとして選択される１つのウエイが確認された場合に１以上のウエイがディセーブルにされる；
ことを特徴とする請求項７記載の装置。
【請求項１０】
前記キャッシュメモリに含まれる１以上の以前にアクセスしたアドレスを１以上の付加的なアドレスで置換することで前記キャッシュメモリが更新される
ことを特徴とする請求項７記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に回路設計の技術分野に関し、特に処理環境でのウエイ記憶機能を与えるシステム及び方法に関連する。
【背景技術】
【０００２】
集積回路の急増は多くの装置、部品及びアーキテクチャに含まれるディジタル設計に関する要請を増やしてきている。集積回路を含むディジタルシステムの数は絶え間なく増え続けている：そのような増加は大量の製品及びシステムに起因している。それら各自のアプリケーション及び環境の中で、付加的なタスクを実行するため及び（より迅速に実行する可能性を有する）より複雑な動作を実行するために付加的な機能が実装されてもよい。
【０００３】
一般に集積回路に関連するコンピュータプロセスはかなりの量のエネルギを消費する多くのキャッシュメモリを有する。概して２種類のキャッシュメモリがあり、それらは：命令キャッシュ（Ｉ−キャッシュ）及びデータキャッシュ（Ｄ−キャッシュ）である。多くのキャッシュメモリは命令アドレスバス及びデータアドレスバス又は多重化されたバス（データ及び命令のアドレス双方に使用可能なバス）を通じて他の素子とインターフェースをとってもよい。キャッシュメモリにより消費されるエネルギ量はチップ電力消費全体に比べて相当大きくなることがある。これらの不都合はそのような電力消費の問題を緩和する業務を担当するシステム設計者や素子製造者に深刻な問題を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題は関連するキャッシュメモリでのエネルギ消費を減らす手法を提供することである。
【課題を解決するための手段】
【０００５】
特定の態様における手法はキャッシュメモリにアクセスする際に実行される比較を減らすことで電子装置の電力消費を減らすことができる。
【０００６】
本発明の特定の態様によれば、キャッシュメモリの電力を減らす装置が使用され、当該装置はキャッシュメモリに結合されたメモリアドレスバッファ要素を含む。前記キャッシュメモリについてウエイ記憶が実行され、前記ウエイ記憶は以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用する。前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされる。複数のデータセグメントに関連する複数のエントリは前記メモリアドレスバッファ要素に格納され、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示す。１以上の以前にアクセスされたアドレスは、該１以上の以前にアクセスされたアドレスに関連する１以上のタグ及び１以上のセット指標と置換される。
【０００７】
本発明の態様は様々な技術的恩恵を与える。ある態様は所与のキャッシュメモリに関する比較動作を顕著に減らす。以前にアクセスしたデータに関連するクリティカル情報を格納するメモリアドレスバッファにより適切なウエイ(way)が参照されるので、いくつかのウエイは活性化されなくてもよい或いはディセーブルされてもよい。最低限の比較及びウェイアクティビティは一般にキャッシュメモリに関する電力消費の削減及び軽減をもたらす。そのような手法は一般にキャッシュメモリの動作を減らす。更にそのような手法はキャッシュメモリの修正を要しない。このことが重要な利点であるのは、様々なベンダグループにより提供された以前に設計されたキャッシュ又はプロセッサシステムと共にプロセッサコアを利用可能にするからである。
【０００８】
本発明の他の利点は以下の説明により当業者に更に明白になるであろう。また具体的な利点が列挙されたが、様々な本発明の態様はそれらの利点の全部又は一部を有してもよいし、全く有しなくてもよい。
【発明を実施するための最良の形態】
【０００９】
本発明及びその利点の理解の完全を更に期するため、添付図面に関連する以下の説明が参照される。本願における「ソフトウエア」なる用語は、コンピュータを動作させる手順や命令をコンピュータが理解できる形式で記述したプログラムを含む。
【実施例１】
【００１０】
図１はプロセッサ１２での通信に対する記憶法を用意する本発明の実施例による処理システム１０を示す概略ブロック図である。プロセッサ１２はメインメモリ（図示せず）及びキャッシュメモリ１４を含み、それらはアドレスバス及びデータバスを用いて互いに結合されてもよい。キャッシュメモリ１４はタグ、セットインデックス(Set-Index)及びオフセットを含むメモリアドレス１８を含んでもよい。キャッシュメモリ１４はウエイ０−２２、ウエイ１−２４及びマルチプレクサ３０，３２，３４を含んでもよい。ウエイ０はタグ０を含み、ウエイ１はタグ１を含み、これによりウエイの各々がそれらの対応するタグ構造と適切にインターフェースをとることができる。図１の例は一実施例における２方向（２ウエイ）の連結キャッシュメモリを示し：そのような配列に対する置換及び変更がシステム１０により容易に適合させられてもよい。図１は多数のビットコンフィギュレーション及びサイズを含んでもよく、図１はキャッシュメモリ１４に関する可能な配列の一部の具体例を与えるに過ぎないことに留意を要する。そのような代表例は任意的であり、それに応じて構成されてもよい。
【００１１】
システム１０は電力消費を減らすために冗長的なキャッシュタグ及びキャッシュウエイアクセスを減らす技法を実行するよう動作する。システム１０は、メモリアドレスバッファ（ＭＡＢ）内に少数の最近使用した（MRU:  Most  Recently  Used）アドレスを維持することができ、ＭＡＢヒットがあった場合に無駄なタブ及びウエイアクセスを省略することができる。その手法はＭＡＢ内にタグとセットインデックスの値しか維持しないので、エネルギ及びオーバーヘッド領域は（たとえ多数のエントリを有するＭＡＢでさえも）比較的小さくて済む。更にその手法はパフォーマンスを犠牲にはせず：実行中にサイクルタイムも実行サイクル数も増やさない。アドレスの値を格納する代わりにタグの値とセットインデックスの値がＭＡＢに格納される。タグエントリ数及びセットインデックスエントリ数は異なってもよい。このことはＭＡＢのヒット率を犠牲にせずにＭＡＢの領域を減らすことを支援する。更にＭＡＢアクセスはアドレス計算と平行して行うことができるので、遅延ゼロのオーバーヘッドを可能にする。
【００１２】
プロセッサ１２は適切な如何なる態様で包含されてもよく、更にはアルゴリズムが適切な如何なる形式（例えば、ソフトウエア形式、ハードウエア形式等）で具現化されてもよい。例えばプロセッサ１２はマイクロプロセッサでもよいし、単独の集積回路、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレー（FPGA）その他の適切な如何なる処理オブジェクト、デバイス又は素子の一部でもよい。アドレスバス及びデータバスはデータ（例えば、２進データ）を伝送可能なワイヤである。或いはそのようなワイヤはデータ伝搬を促すよう機能する他の如何なる技術（例えば、光放射、レーザ技術等）でもそれと置換されてもよい。
【００１３】
キャッシュメモリ１４はプロセッサ１２からアクセスされてもよい情報を維持するよう動作する格納要素である。キャッシュメモリ１４はランダムアクセスメモリ（RAM）、リードオンリメモリ（ROM）、消去可能プログラム可能なROM(EPROM)、電気的に消去可能なプログラマブルROM（EEPROM）、高速サイクルRAM(FCRAM)、スタティックRAM（SRAM）又はそのような格納動作を支援することができる適切な他の対象物でもよい。他の実施例ではキャッシュメモリ１４は別のプロセッサ又はソフトウエアで置換されてもよく、その別のプロセッサ等はここで概説されたのと同様な形式でプロセッサ１２とインターフェースをとることができる。
【００１４】
教示及び説明のために、提案される発明が動作する方法についての何らかの背景概要を設けることは有意義であろう。以下の基礎的な情報は本発明で解決される１つの問題を示す。この背景情報は本発明を適切に説明するための基礎として考えられてもよい。そのような情報は、真に説明の目的でしか与えられず、従って本発明の広範な範囲及び潜在的な出願内容を限定する如何なる手段としても解釈されるべきではない。
【００１５】
オンチップキャッシュメモリはプロセッサ（特にマイクロプロセッサ）で最も多くの電力を消費する要素の１つである。一般に２種類のキャッシュメモリがあり、それらは：命令キャッシュ（I-キャッシュ）及びデータキャッシュ（D-キャッシュ）である。所与のキャッシュメモリにいくつかの「ウエイ(way)」がある。データのアドレスに基づいて、そのデータは所与のアドレスに対応するキャッシュメモリ内のいくつかのどのロケーションに格納されてもよい。例えば２つのウエイがあったならば、データは何れのウエイに用意されてもよい。図１は２つのウエイ２２，２４を含むアーキテクチャを表現する。メモリアドレスは行の指標（インデックス）として使用されてもよい。メモリアドレスに基づいて所与の行が選択されてもよい。従ってデータは所与のウエイの中の所与の行に含まれる。
【００１６】
概して各ウエイについて及びキャッシュメモリ１４に格納される各データセグメントについてタグがある。メモリアドレスのタグはウエイ０及びウエイ１のタグと比較される。一致したならば、そのデータセグメントがキャッシュメモリ１４内にある状態を表す。一致しなければ、キャッシュミスであり、そのデータを抽出するために（不図示の）メインメモリが参照される。
【００１７】
キャッシュメモリ１４がアクセスされる毎にエネルギが費やされ、電力が消費される。従って上述の比較は処理システムに負担をかけている。このアクセスプロセスが最小限にできるならば、エネルギ消費を減らせるもしれない。実際の関係ではキャッシュメモリ１４内の所与のロケーションがアクセスされると将来引き続きそれがアクセスされるかもしれないことに留意を要する。従ってメモリアクセスのトラックを維持することで、以前にアクセスされたアクセスアドレスを記録する有力な手段が開発されるかもしれない。そのような情報を格納するのにテーブル(即ちMAB)が使用されてもよい。
【００１８】
図２は図１のシステム１０に関連するウエイ及びメモリアドレスバッファの様々な例を示す概略図である。少ない数の最近使用した（MRU）アドレス及びターゲットのキャッシュウエイ番号がMAB３８に格納されている様子を図２は示している。MABヒットがあれば、的外れのキャッシュタグメモリ及び不要なキャッシュウエイはディセーブルされる。
【００１９】
図示の図２に関連する具体例を考察する。ウエイ１に格納されているアドレス２がアクセスされると、その情報がMAB３８に記録される。MAB３８はそのような除法を維持する記憶テーブルを表現する。アクセスされたアドレス（それらに対応するウエイ及び／又は行を含む）はこの形式で格納されてもよい。以後のタスクにて、アドレス２が再び求められる状況を考察する。その場合MAB３８が参照され、そのアドレスは以前にアクセスされたことが確認される。従ってそのアドレスについてキャッシュヒットがある。更にこのデータセグメントがウエイ１−２４に含まれていることが突き止められてもよい。これを実行する際に関数を参照し、タグの比較が回避される。更にそのような手法はウエイ０−２２のセンスアンプをターンオフにすることを許容する。即ち、所望のデータセグメントを含むウエイを認識することで、他のウエイがディセーブルされてもよい。これはデータセグメントの場所を見分けるためのタグの比較及び全てのターンオンに起因する電力を節約する。MAB３８内のデータは適切な如何なる時点で適切に更新されてもよい。キャッシュメモリ１４内であるアドレスが別のアドレスで置換されると、MAB３８はその状態を反映するように更新される必要がある。
【００２０】
MAB３８は一実施例では以下に説明される機能を発揮するソフトウエアと共に用意されてもよい。或いはハードウエア、素子、デバイス、ASIC、FPGA、ROM素子、RAM素子、EPROM、EEPROM、アルゴリズム又はそのような動作を実行するよう機能する要素若しくはオブジェクトの適切な如何なる態様でもそれで機能増加や強化がなされてもよい。そのような（MAB）機能はプロセッサ１２内部に用意され又はプロセッサ１２外部に用意され、システム１０の適切などのロケーションにでも適切な格納がMAB３８によって達成できるようにすることに留意を要する。
【００２１】
D-キャッシュに使用されるMABとは異なり、命令キャッシュに使用されるMAB３８の入力は以下の３種類の中の１つであることに留意を要し、それらは：１）リンクレジスタに格納されたアドレス、２）ベースアドレス（即ち、現在のプログラムカウンタアドレス）と偏移の値及び３）目下のプログラムカウンタアドレスとそのストライド（stride）である。キャッシュライン間の一連のフローの場合には、現在のプログラムカウンタアドレス及びそのプログラムカウンタのストライドがMAB３８の入力として選択可能である。ストライドは偏移の値として処理することができる。現在の動作が「リンクターゲットへの分岐（ジャンプ）」であったならば、リンクレジスタのアドレスはMAB３８の入力として選択可能である。或いはベースアドレス及び偏移の値はデータキャッシュに使用可能である。
【００２２】
MAB３８はアドレスの生成に使用される加算器と並列的にアクセスされるので、概して遅延オーバーヘッドがないことに留意を要する。更にこの手法はキャッシュアーキテクチャの修正を要しない。このことが重要な利点である理由は、以前に設計されたキャッシュ又は様々なベンダにより提供された他のプロセッサと共にプロセッサコアを使用可能にすることである。従ってシステム１０はキャッシュメモリ１４に関連する比較動作で相当な削減効果を達成できる。適切なウエイがメモリアドレスバッファにより参照されるので、ある程度のウエイは非活性に又はディセーブルにできる。最小限の比較及びウエイの動作は、キャッシュメモリ１４が担う電力消費の削減又は軽減をもたらす。概してそのような手法はキャッシュメモリの活動性を減らし、システムパフォーマンスを増やし、増加した帯域に適合させることにさえ使用可能である。
【００２３】
MAB３８は２種類のエントリを有し、それらは：１）タグ（１８ビット）及びシーフラグ（cflag）（２ビット）；及び２）セット−インデックス（９ビット）であることに留意を要する。２ビットのｃフラグは１４ビット加算器のキャリービットと偏移値の符号とを格納するのに使用可能である。タグのエントリ数がｎ１であってセットインデックスのエントリ数がｎ２であったとすると、MAB３８はｎ１×ｎ２個のアドレスについての情報を格納できる。例えば２×８エントリのMAB３８は１６個のアドレスについての情報を格納できる。各アドレスについて、その情報が有効であるか否かを示すフラグがあってもよい。タグエントリｉ及びセットインデックスエントリｊに対応するフラグはブイフラグ（vflag）[i][j]で記述できる。MABエントリは適切な如何なるプロトコルでもそれを用いて、例えば最近使用された（LRU）ポリシー(policy)を用いて更新可能である。
【００２４】
図３は個々の回路５０，６０の構成例の概略ブロック図であり、これらは図１のシステム１０に含まれてもよい。ここで説明されるようにキャッシュメモリ１４は変位成分（即ち、変位アドレス又は変位の値）を基礎のアドレスに付加してもよいことに留意を要する。これら２つのオブジェクトは２つの命令フィールドを反映し、これによりその成分は項目６２，６４で反映される。また、これら２つの成分はターゲットアドレスを与える。そしてこのターゲットアドレスを生成するために２つの数値が付加されてもよい。MAB３８はこの筋書きに対処するためにタグ及びセットインデックスのパラメータを計算する。これらはMABヒットを検出するのに使用できる。
【００２５】
図２の説明に関連して図１のキャッシュに関連する２ウエイセットを考察する。アドレス１がタグ０でキャッシュされるならば、アドレス１に対応するMABエントリのウエイ番号は０である。同様にアドレス２、アドレス３及びアドレス４に対応するウエイ番号はそれぞれ１，０及び０である。MABヒットがあった場合には、そのウエイ番号で特定される１つのウエイが活性化され、他のウエイ及びそれに対応するタグメモリはインアクティブのままである。この技法は冗長的なタグアクセス数を７０％−９０％だけ減らすことができる。不都合なことにメモリアドレスを生成するユニットは多くのプロセッサでクリティカルパス上にある。従ってメモリアドレス生成後にMAB３８にアクセスすることはサイクルタイムを増やす。
【００２６】
この技術は、ターゲットアドレスがベースアドレスと変位の和であり、通常的には少ない数の値をとるという観測に基づいている。更にその値は典型的には小さい。従ってMAB３８のヒット率は、最近使用した少ない数のタグだけを維持することで改善可能である。例えばタグメモリのビット幅、キャッシュのセット数及びキャッシュラインのサイズがそれぞれ１８，５１２及び３２バイトであるとする。セット−インデックス及びオフセットフィールドの幅はそれぞれ９及び５である。多くの変位値は２１４より小さいので、タグの値はアドレスを生成せずに容易に計算できる。これはベースアドレスの上位１８ビット、変位の符号拡張及び１４ビット加算器のキャリービットを検査することで実行でき、加算器はベースアドレスの下位１４ビットと変位を加算する。従って付加される回路の遅延は１４ビット加算器の遅延とセットインデックステーブルにアクセスする遅延との和になる。一般にこの遅延はアドレスを計算するのに使用される３２ビット加算器の遅延よりも小さい。従って（ここで説明される）このような技法は何らの遅延ペナルティも被らない。変位の値が２１４以上又は−２１４より小さい場合には、MABミスが生じるかもしれないが、それが起こる可能性は１％より少ないことに留意を要する。
【００２７】
別の例を考察する：タグ値ｘ及びセットインデックス値ｙに対応するアドレスがあるとする。ｘ及びｙについてのヒット又はミスに依存して、４個の可能性がある。可能性１：ｘ及びｙ双方についてヒットがあった場合。この場合（ｘ，ｙ）に対応するアドレスはテーブルにある。ｉ及びｊがｘ及びｙのエントリ番号を示すとすると、vflag[i][j]は１に設定される。可能性２：ｘについてはミスであり、ｙについてはヒットであった場合。ｊがｙについてのエントリ番号を示し、ｘがMAB３８のエントリｉを置換するならば、vflag[i][j]は１に設定される一方、他の（１以上の）vflag[i][*]は０に設定される。可能性３：ｘについてはヒットであり、ｙについてはミスであった場合。ｉがｘについてのエントリ番号を示し、ｙがMAB３８のエントリｊを置換するならば、vflag[i][j]は１に設定される一方、他の（１以上の）vflag[*][j]は０に設定される。最後に可能性４：ｘ及びｙ双方についてミスでった場合。ｘ，ｙがMAB３８のエントリｉ及びエントリｊを置換するならば、vflag[i][j]は１に設定される一方、他の（１以上の）vflag[i][*]及びvflag[*][j]は０に設定される。
【００２８】
MAB３８とキャッシュメモリ１４の一貫性を維持するために、変位の上位１８ビット全てが０でなく、それら全てが１でもないならば、エントリLRUに対応するvflagは０に設定される。MAB３８のタグエントリ数がキャッシュウエイ数より少ないならば、そのことはMAB３８及びキャッシュ間の一貫性を保障する。言い換えれば、MAB３８にあるタグ及びセットインデックスのペアが有効であるならば、それらに対応するデータは常にキャッシュメモリ１４にある。クリティカルパス遅延は１４ビット加算器の遅延と９ビット比較器の遅延との和になり、その遅延はターゲットプロセッサのクロック期間より小さい。
【００２９】
図３の状況はパイプライン構造又はキャッシュアーキテクチャに何らの変更も要しない状況を反映することに留意を要する。そのようなアーキテクチャは合成可能なコア（RTLコード）として容易に利用可能であり、集積するにも容易である（ソフトIPベースの設計に適している。）。更にそのような態様はパフォーマンスのペナルティをもたらさない。MABのルックアップ(探索)はアドレスの生成と平行してなされるので、MAB３８の遅延は３２ビットALUのものより少ない。MABミスの場合に必要とされる余分なサイクルはない。
【００３０】
上記の説明はMAB３８の動作に着目していた。しかしながら説明されたようにシステム１０は格納動作を行う機能要素の適切などの組み合わせや形態でもそれを利用することを想定しており、それらの技法は適切に他の技法と組み合わせることができる。図３に示されるいくつかのステップは適切ならば変更又は削除されてもよく、或いは付加的なステップがフローに加えられてもよい。これらの変更は、特定の通信システムアーキテクチャ、特定の態様又はコンフィギュレーションに基づいてもよく、本発明の範囲や教示内容から逸脱するものではない。上記の記述はキャッシュメモリ１４の電力を減らす多数の技法を詳細にしていることに留意することも重要である。これらの技法は特定の態様及び組み合わせの中で説明されたが、電力消費を減少させるためにそれらの動作の適切な如何なる組み合わせや順序でもそれを利用するキャッシュメモリ１４をシステム１０は想定している。
【００３１】
本発明は図１乃至図３に示された特定の態様を参照しながら詳細に説明されたが、様々な他の変更、置換及び代替が本発明の精神及び範囲から逸脱せずになされてもよいことが理解されるべきである。例えば本発明はシステム１０内に含まれる多数の要素と共に説明されたが、適切な如何なる処理及び通信アーキテクチャにも適合するようにそれらの要素は再編成又は再配置されてもよい。更に説明されたどの要素も適切ならばシステム１０に対して又は互いに対して別の外部素子として設けられてもよい。本発明は内部要素に加えてこれらの要素の配列の多大な柔軟性も想定している。そのようなアーキテクチャは適切ならば特定の処理の必要性に基づいて設計されてもよい。
【００３２】
様々な他の変更、置換、変形、代替及び修正は当業者に確認されるであろうし、そのような変更、置換、変形、代替及び修正の全てを本発明は添付の特許請求の範囲内に含むことが意図される。米国特許商標庁（USPTO）の便宜を図るため、付加的には本願に関するどの特許でも添付の特許請求の範囲を解釈する如何なる閲覧者に対しても便宜を図るため、出願人は以下の事項に留意すべきことを望む：出願人は、（ａ）「手段(means  for)」又は「ステップ(step  for)」の語が特定の請求項で具体的に使用されない限り、添付のどの請求項も本願出願日に存在するものとしてU.S.C.セクション１１２のパラグラフ（６）を発動するようには意図しておらず；及び（ｂ）明細書中の何らかの記載によって、特許請求の範囲の中で表現されていない何らかの記載方法で本発明を限定するようには意図していない。
【００３３】
以下、本発明により教示される手段を例示的に列挙する。
【００３４】
（付記１）
キャッシュメモリのウエイ記憶を実行するステップであって、前記ウエイ記憶は以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用し、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされるところのステップ；
複数のデータセグメントに関連する複数のエントリを格納するステップであって、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示すところのステップ；及び
１以上の以前にアクセスしたアドレスと、該１以上の以前にアクセスしたアドレスに関連する１以上のタグ及び１以上のセット指標とを置換するステップ；
を有することを特徴とするキャッシュメモリの電力を減らす方法。
【００３５】
（付記２）
要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するために前記メモリアドレスバッファ要素を参照するステップ
をさらに有することを特徴とする付記（１）記載の方法。
【００３６】
（付記３）
メモリアドレスバッファ要素でのヒットの有無を判定するステップであって、該ヒットは要求されたデータセグメントが前記キャッシュメモリに存在する状態を反映するところのステップ；及び
要求されたデータセグメントを含むものとして選択される１つのウエイが確認された場合に、１以上のウエイをディセーブルにするステップ；
を更に有することを特徴とする付記（１）記載の方法。
【００３７】
（付記４）
前記キャッシュメモリに含まれる１以上の以前にアクセスしたアドレスを１以上の付加的なアドレスで置換することでメモリアドレスバッファ要素を更新するステップ
を更に有することを特徴とする付記（１）記載の方法。
【００３８】
（付記５）
ベースアドレス及び変位成分を用いることで要求されたデータセグメントに関連するターゲットアドレスを生成するステップ
を更に有し、前記ターゲットアドレスは要求されたデータセグメントを抽出するために前記メモリアドレスバッファ要素に通知される
ことを特徴とする付記（１）記載の方法。
【００３９】
（付記６）
前記キャッシュメモリがプロセッサに実装され、プロセッサは１以上の電子的タスクを実行し及び前記キャッシュメモリから１以上のデータセグメントを要求するよう動作する
ことを特徴とする付記（１）記載の方法。
【００４０】
（付記７）
キャッシュメモリのウエイ記憶を実行する手段；
以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用する手段であって、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされるところの手段；
複数のデータセグメントに関連する複数のエントリを格納する手段であって、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示すところの手段；及び
１以上の以前にアクセスしたアドレスと、該１以上の以前にアクセスしたアドレスに関連する１以上のタグ及び１以上のセット指標とを置換する手段；
を有することを特徴とするキャッシュメモリの電力を減らすシステム。
【００４１】
（付記８）
要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するために前記メモリアドレスバッファ要素を参照する手段
をさらに有することを特徴とする付記（７）記載のシステム。
【００４２】
（付記９）
メモリアドレスバッファ要素でのヒットの有無を判定する手段であって、該ヒットは要求されたデータセグメントが前記キャッシュメモリに存在する状態を反映するところの手段；及び
要求されたデータセグメントを含むものとして選択される１つのウエイが確認された場合に、１以上のウエイをディセーブルにする手段；
を更に有することを特徴とする付記（７）記載のシステム。
【００４３】
（付記１０）
前記キャッシュメモリに含まれる１以上の以前にアクセスしたアドレスを１以上の付加的なアドレスで置換することでメモリアドレスバッファ要素を更新する手段
を更に有することを特徴とする付記（７）記載のシステム。
【００４４】
（付記１１）
ベースアドレス及び変位成分を用いることで要求されたデータセグメントに関連するターゲットアドレスを生成する手段
を更に有し、前記ターゲットアドレスは要求されたデータセグメントを抽出するために前記キャッシュメモリアドレスバッファ要素に通知される
ことを特徴とする付記（７）記載のシステム。
【００４５】
（付記１２）
キャッシュメモリの電力を減らすためのソフトウエアであって：
キャッシュメモリのウエイ記憶を実行させるコンピュータコード；
以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用させるコンピュータコードであって、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされるところのコンピュータコード；
複数のデータセグメントに関連する複数のエントリを格納させるコンピュータコードであって、選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示すところのコンピュータコード；及び
１以上の以前にアクセスしたアドレスと、該１以上の以前にアクセスしたアドレスに関連する１以上のタグ及び１以上のセット指標とを置換させるコンピュータコード；
を有し、コンピュータ読取可能な媒体に組み込まれるソフトウエア。
【００４６】
（付記１３）
要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するために前記メモリアドレスバッファ要素を参照させるコンピュータコード
をさらに有することを特徴とする付記（１２）記載のソフトウエア。
【００４７】
（付記１４）
メモリアドレスバッファ要素でのヒットの有無を判定させるコンピュータコードであって、該ヒットは要求されたデータセグメントが前記キャッシュメモリに存在する状態を反映するところのコンピュータコード；及び
要求されたデータセグメントを含むものとして選択される１つのウエイが確認された場合に、１以上のウエイをディセーブルにするコンピュータコード；
を更に有することを特徴とする付記（１２）記載のソフトウエア。
【００４８】
（付記１５）
前記キャッシュメモリに含まれる１以上の以前にアクセスしたアドレスを１以上の付加的なアドレスで置換することでメモリアドレスバッファ要素を更新させるコンピュータコード
を更に有することを特徴とする付記（１２）記載のソフトウエア。
【００４９】
（付記１６）
ベースアドレス及び変位成分を用いることで要求されたデータセグメントに関連するターゲットアドレスを生成させるコンピュータコード
を更に有し、前記ターゲットアドレスは要求されたデータセグメントを抽出するために前記キャッシュメモリアドレスバッファ要素に通知される
ことを特徴とする付記（１２）記載のソフトウエア。
【００５０】
（付記１７）
キャッシュメモリ；及び
前記キャッシュメモリに結合されたメモリアドレスバッファ要素；
を有するキャッシュメモリの電力を減らす装置であって、前記キャッシュメモリについてウエイ記憶が実行され、前記ウエイ記憶は以前にアクセスしたアドレスに関連する情報を格納するよう動作するメモリアドレスバッファ要素を利用し、前記メモリアドレスバッファ要素は前記キャッシュメモリにアクセスする際の電力消費を減らすためにアクセスされ、
複数のデータセグメントに関連する複数のエントリは前記メモリアドレスバッファ要素に格納され、
選択された１以上のエントリについてアドレスフィールドが存在し、アドレスフィールドは要求されたデータセグメントを含むウエイを示し、
１以上の以前にアクセスされたアドレスは、該１以上の以前にアクセスされたアドレスに関連する１以上のタグ及び１以上のセット指標と置換される
ことを特徴とする装置。
【００５１】
（付記１８）
前記メモリアドレスバッファ要素は、要求されたデータセグメントが前記キャッシュメモリ内に現在あるか否かを判定するためにアクセスされる
ことを特徴とする付記（１７）記載の装置。
【００５２】
（付記１９）
メモリアドレスバッファ要素でのヒットの有無が判定され、該ヒットは要求されたデータセグメントが前記キャッシュメモリに存在する状態を反映し、要求されたデータセグメントを含むものとして選択される１つのウエイが確認された場合に１以上のウエイがディセーブルにされる；
ことを特徴とする付記（１７）記載の装置。
【００５３】
（付記２０）
前記キャッシュメモリに含まれる１以上の以前にアクセスしたアドレスを１以上の付加的なアドレスで置換することで前記キャッシュメモリが更新される
ことを特徴とする付記（１７）記載の装置。
【００５４】
（付記２１）
ベースアドレス及び変位成分を用いることで要求されたデータセグメントに関連するターゲットアドレスが生成され、前記ターゲットアドレスは要求されたデータセグメントを抽出するために前記キャッシュメモリに通知される
ことを特徴とする付記（１７）記載の装置。
【００５５】
（付記２２）
更にプロセッサを有し、該プロセッサは、前記キャッシュメモリとインターフェースをとり、１以上の電子的タスクを実行し及び前記キャッシュメモリから１以上のデータセグメントを要求するよう動作する
ことを特徴とする付記（１７）記載の装置。
【００５６】
（付記２３）
前記エントリの数及び前記セット指標の数が異なる
ことを特徴とする付記（１７）記載の装置。
【００５７】
（付記２４）
前記メモリアドレスバッファ要素へのアクセスがアドレス計算と並列して実行される
ことを特徴とする付記（１７）記載の装置。
【００５８】
（付記２５）
１以上の以前にアクセスしたアドレスに対応し且つ１以上のデータセグメントが有効か否かを識別する１以上のフラグが用意される
ことを特徴とする付記（１７）記載の装置。
【図面の簡単な説明】
【００５９】
【図１】プロセッサ内の通信に対する記憶法を用意する本発明の様々な態様によるシステムを示す概略ブロック図である。
【図２】図１に関連する様々な構造及びメモリアドレスバッファの具体例を示す概略図を示す。
【図３】図１のシステムに含まれてもよい回路の具体的構成の概略ブロック図を示す。
【符号の説明】
【００６０】
１０  処理システム
１２  プロセッサ
１４  キャッシュメモリ
１８  メモリアドレス
２２，２４  ウエイ
３０，３２，３４  マルチプレクサ
３８  メモリアドレスバッファ
５０，６０  回路
６２，６４  アイテム
【図１】
2006120163.tif 000003
【図２】
2006120163.tif 000004
【図３】
2006120163.tif 000005