(57)【要約】【課題】メモリシステムにおける電力消費を削減すること。【解決手段】キャッシュにおける電力消費を削減する方法は、キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定する。該非一様なアーキテクチャはキャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容する。キャッシュでの電力消費を削減するために、キャッシュで非一様性アーキテクチャが使用される。本方法は、キャッシュから離れたメモリにどのコードが書き込み可能であるかに応じてコード配置を決定する。コード配置は、メモリからキャッシュにロードされた場合のインターキャッシュラインシーケンシャルフローの出現を減らす。コード配置に従ってコードがコンパイルされ、キャッシュでの電力消費を更に削減するために、メモリからキャッシュへ以後ロードするコードがコード配置に従ってメモリに書き込まれる。【選択図】図１
2007048285.tif 000002
【特許請求の範囲】
【請求項１】
前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定するステップであって、該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容するところのステップと、
前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用するステップと、
を有することを特徴とするキャッシュにおける電力消費削減方法。
【請求項２】
前記キャッシュから離れたメモリにどのコードが書き込み可能であるかに応じて、前記コードが前記メモリから前記キャッシュにロードされた場合のインターキャッシュラインシーケンシャルフローの出現を減らすコード配置を決定するステップと、
前記コード配置に従って前記コードをコンパイルするステップと、
前記キャッシュでの電力消費を更に削減するために、前記メモリから前記キャッシュへ以後ロードするコードを前記コード配置に従って前記メモリに書き込むステップと、
を更に有することを特徴とする請求項１記載の電力消費削減方法。
【請求項３】
１以上の媒体中にエンコードされる、キャッシュにおける電力消費を削減するための論理装置であって、
前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定するステップであって、該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容するところのステップと、
前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用するステップと、
をコンピュータに実行させることを特徴とする論理装置。
【請求項４】
キャッシュにおける電力消費を削減するシステムであって、
キャッシュと、
前記キャッシュでの電力消費を削減するために、前記キャッシュで使用される非一様性アーキテクチャと、
を有し、前記非一様性アーキテクチャは、前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意し、前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容する
ことを特徴とするシステム。
【請求項５】
キャッシュにおける電力消費を削減するシステムであって、
前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定する手段であって、該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容するところの手段と、
前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用する手段と、
を有することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にメモリシステムに関連し、特にキャッシュでの電力消費を削減することに関連する。
【背景技術】
【０００２】
プロセッサに関するキャッシュは一般に相当な電力量を消費する。一例としてARM920Tの命令キャッシュはプロセッサの電力消費の約25%を占める。別の例として、低電力アプリケーションを意図するストロングARMSA-110の命令キャッシュは、プロセッサの電力消費の約27%を占める。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の課題は、従来のメモリシステムに関連する問題及び欠点を軽減又は解消することである。
【課題を解決するための手段】
【０００４】
一形態では、キャッシュにおける電力消費削減方法は、前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定するステップを含む。該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容する。本方法は、前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用するステップも含む。
【０００５】
別の形態では、本方法は、前記キャッシュから離れたメモリにどのコードが書き込み可能であるかに応じてコード配置を決定するステップを含む。コード配置は、前記メモリから前記キャッシュにロードされた場合のインターキャッシュラインシーケンシャルフローの出現を減らす。本方法は、前記コード配置に従って前記コードをコンパイルするステップと、前記キャッシュでの電力消費を更に削減するために、前記メモリから前記キャッシュへ以後ロードするコードを前記コード配置に従って前記メモリに書き込むステップとを更に有する。
【発明を実施するための最良の形態】
【０００６】
本発明の特定の実施例は１以上の技術的恩恵をもたらす。非限定的な一例として、特定の実施例はキャッシュにおける電力消費を低減する。特定の実施例は非一様なキャッシュ構造を用意し、キャッシュにおける電力消費を減らす。特定の実施例はタグルックアップ、ウェイルックアップ又は双方を減らすコード配置を支援し、キャッシュにおける電力消費を減らす。特定の実施例はキャッシュアーキテクチャ及びコード配置の同時最適化を支援し、キャッシュウェイ又はタグアクセス及びキャッシュミスを減らす。特定の実施例はこれらの技術的恩恵の全部又は一部をもたらしてもよいし、全くもたらさなくてもよい。特定の実施例は１以上の他の技術的恩恵をもたらし、１以上のそれらは図面、明細書及び特許請求の範囲から当業者にとって明白になるであろう。
【０００７】
本発明並びにその特徴及び利点の理解の完全を期するため、添付図面に関連する以下の説明が参照される。
【０００８】
以下、本発明の実施例によるキャッシュでの電力消費を削減する方法、論理装置及びシステムが説明される。この場合において、論理装置なる語は、ソフトウエアで構成される論理プログラムや、ハードウエアで構成される論理回路を含む概念である。
【実施例１】
【０００９】
図１はキャッシュ１０の電力消費を減らすための非一様な(ununiform)キャッシュ構造例を示す図である。特定の実施例では、キャッシュ１０はプロセッサの構成要素であり、そのプロセッサで実行するコードを一時的に格納するのに使用される。「コード」に関連するものは、適切ならば、１以上の実行可能な命令、他のコード又は双方を包含する。キャッシュ１０は複数のセット(set)１２、複数のウェイ(way)１４及び複数のタグ１６を含む。セット１２は複数のウェイ１４及び複数のタグ１６を論理的に横切る。セット１２及びウェイ１４間の論理的な交差部は、コードを格納するキャッシュ１０の中で互いに隣接する複数のメモリを含む。セット１２及びタグ１６間の論理的な交差部は、キャッシュ１０の中で互いに隣接する１以上のメモリセルを含み、そのメモリセルは、キャッシュ１０に格納されるコードの発見、キャッシュ１０に格納されたコードの確認又は双方を支援するデータを格納する。非限定的な一例として、セット１２ａ及びタグ１６ａ間の第１の論理交差部は１以上のメモリセルを含み、そのメモリセルは、セット１２ａ及びウェイ１４ａ間の第２の論理交差部で格納されるコードの発見、第２路の論理交差部に格納されたコードの確認又は双方を支援するデータを格納する。キャッシュ１０は複数のセンスアンプ１８も含む。特定の実施例では、センスアンプ１８はキャッシュ１０内のメモリセルの内容を読み出すのに使用される。特定の構成に従って構築された特定の構成要素を含む特定のキャッシュ１０が図示及び説明されるが、本発明は適切な如何なる構成に従って構築された適切な如何なる構成要素を含む適切な如何なるキャッシュ１０にも関連する。更に本発明はキャッシュ１０に限定されず、適切な如何なるメモリシステムにも関連する。
【００１０】
特定の実施例では、キャッシュ１０の非一様なアーキテクチャは、キャッシュ１０における電力消費、キャッシュ１０からの電流漏れ又は双方を減らす。非一様なアーキテクチャは、セット１２が互いに異なる関連値(associativity  value)を有することを許容する。特定の実施例では、第１セット１２が第１数のアクティブなウェイ１４を横切り、第２セット１２は第２数のクティブウェイ１４を横切り、第１数と第２数は異なる場合に、第１セット１２は第２セット１２とは異なる関連値を有する。非限定的な例として、キャッシュ１０内の非一様なアーキテクチャによれば、ウェイ１４ａ，ウェイ１４ｂ，ウェイ１４ｃ，ウェイ１４ｄは全てセット１２ａ及びセット１２ｂ内でアクティブであり；ウェイ１４ａ及びウェイ１４ｂのみがセット１２ｃ及びセット１２ｄでアクティブであり；ウェイ１４ａのみがセット１２ｅ、セット１２ｆ、セット１２ｇ及びセット１２ｈでアクティブである。特定の実施例では、アクティブなメモリセルは格納に利用可能であり、インアクティブなメモリセルは格納に利用できない。
【００１１】
特定の実施例では、キャッシュセット各々の中で最適な数のキャッシュウェイが、キャッシュ１０の設計で決定される。非限定的な例として、ハードウエア、ソフトウエア、組み込み論理要素（logic  component）又はそれらの要素の２以上の組み合わせは、以下に説明されるような、キャッシュセット各々で最適な数のキャッシュウェイを判定するアルゴリズムを実行してよい。１以上のユーザは１以上のコンピュータシステムを利用し、１以上の要素から出力を受信し及び入力を与える。「キャッシュウェイ」に関連するものは、適切ならば、キャッシュ１０のウェイ１４を包含する。「キャッシュセット」に関連するものは、適切ならば、キャッシュ１０のセット１２を包含する。特定の実施例では、アプリケーションが走っている間に、キャッシュ１０の中のアクティブなキャッシュウェイ数が動的に変えられる。特定の実施例では、１以上のスリープ(sleep)トランジスタを利用して、キャッシュ１０の中でアクティブなキャッシュウェイ数を動的に変える。特定の実施例では、不使用のキャッシュウェイへの電源供給は、不使用のキャッシュウェイ中のメモリセルへの電源供給を接続するためのビア(vias)を排除することで、その不使用のキャッシュウェイから分離されてよい。不使用のメモリセルは同様な手法でビットライン及びワードラインから分離されてもよい。
【００１２】
特定の実施例では、不使用キャッシュブロックを特徴付ける（マークする）ために第２の有効ビットが使用されてもよい。「キャッシュブロック」に関連するものは、適切ならば、セット１２及びウェイ１４間の論理交差部を含む。キャッシュブロックは、適切ならば、ウェイ１４に対応するタグ１６及びセット１２の間の論理交差部を含む。特定の実施例では、１以上の有効ビットがセット１２各々のタグ１６各々に付される。特定の実施例では、そのようなビットはセット１２各々のタグ１６各々の一部である。第２有効ビットが１であったならば、対応するキャッシュブロックは、キャッシュミスが生じた場合に置換に使用されない。インアクティブなキャッシュブロックへのアクセスはキャッシュミスを引き起こす。特定の実施例では、非一様なキャッシュ１０の電力消費を減らすため、アクセス対象のキャッシュセットの中でインアクティブにマークされているキャッシュウェイのセンスアンプ１８は、非活性化される。特定の実施例では、これは、メモリアドレスレジスタ２２のセットインデックス２０を検査することで実行される。非限定的な例として、図１に示される非一様なキャッシュ１０の中で、セット１２ｅ、セット１２ｆ、セット１２ｇ又はセット１２ｈがアクセスの目的とされた場合に、センスアンプ１８ｃ及びセンスアンプ１８ｄは非活性化される。セット１２ｃ、セット１２ｄ、セット１２ｅ、セット１２ｆ、セット１２ｇ又はセット１２ｈがアクセスの目的とされた場合に、センスアンプ１８ｅ、センスアンプ１８ｆ、センスアンプ１８ｇ及びセンスアンプ１８ｈは全て非活性化される。
【００１３】
タグアクセス及びタグ比較は命令フェッチ全てについて必ずしも実行されなくてよい。或る命令ｉの直後に実行される命令ｊを考察する。３つの場合が考えられる：
１．イントラキャッシュラインシーケンシャルフロー
これは、ｉ及びｊ双方の命令が同一のキャッシュラインに属し、ｉが分岐でない命令である又は分岐を取得しない場合に生じる。
【００１４】
２．インターキャッシュラインシーケンシャルフロー
これは第１の場合と同様であるが、唯一の相違は、ｉとｊが異なるキャッシュラインに属することである。
【００１５】
３．非シーケンシャルフロー
この場合、ｉは分岐命令を取り、ｊはその目的（ターゲット）である。
【００１６】
第１の場合（イントラキャッシュラインシーケンシャルフローの場合）、ｊ及びｉが同一のキャッシュウェイに属することは容易に検出可能である。従って命令に関するタグ探索（タグルックアップ）は必須でない。一方、例えば分岐を取得する場合（又は非シーケンシャルフロー）のような非シーケンシャルなフェッチ又はキャッシュライン境界をまたぐシーケンシャルフェッチ（又はインターキャッシュラインシーケンシャルフロー）には、タグルックアップ及びウェイアクセスが必要とされる。従って、イントラキャッシュラインシーケンシャルフローの場合にタグ１６及びウェイ１４のメモリセルを非活性化することは、キャッシュ１０の電力消費を減らす。特定の実施例はこの又は同様なインターラインウェイ記憶(ILWM:  inter  line  way  memorization)技法を使用する。
【００１７】
図２Ａ及び２Ｂはキャッシュ１０の電力消費を減らすためのコード配置例を示す。７つの命令を含む基本ブロックを考察する。基本ブロックはＡで指定され、その命令はA1,A2,A3,A4,A5,A6,A7で指定される。A7は分岐を取り、A3は分岐命令ではない。図２Ａでは、A7はキャッシュライン２６ｅのワード２４ｄに属する。Ａ３はキャッシュライン２６ｄのワード２４ｈに属する。Ａ３又はＡ７が実行される場合には、何れの場合も、次の命令がキャッシュ１０内に有るか否かが不明なので、タグルックアップが必要とされる。しかしながら、図２Ｂでは、Ａがどのキャッシュライン境界にも及ばないように、Ａはキャッシュ１０のアドレス空間に位置づけられる。Ａはどのキャッシュライン境界にも至らないので、キャッシュアクセス及びタグアクセスはＡ３に関してはなされない。特定の実施例では、メインメモリ中の基本ブロックの配置は、メインメモリからキャッシュ１０にロードされる場合に、頻繁にアクセスされる基本ブロックが、どのキャッシュライン境界にも及ばないように（又はできるだけ少ないキャッシュ境界にしか及ばないように）変更される。
【００１８】
インターキャッシュラインシーケンシャルフローの出現数を減らすことは、キャッシュ１０での電力消費を減らす。キャッシュラインサイズの増加はそのような出現を減らす傾向にあるが、キャッシュラインサイズを増やすことは、キャッシュミスに関連するオフチップ(off-chip)メモリアクセス数を増やすことにもなる。特定の実施例は或るアルゴリズムを利用し、そのアルゴリズムはこのトレードオフを考慮し、メモリ階層の消費電力全体を最小化するために様々なキャッシュラインサイズを探索する。
【００１９】
Ｌワードのキャッシュラインサイズを有するサイズＣ（C=2mワード）のダイレクトマップキャッシュ１０(direct-mapped  cache)を考察する。キャッシュ読み取りミスの際に、Ｌ個の連続的なワードがフェッチされる。ダイレクトマップキャッシュ１０では、メモリアドレスＭにあるワードを含むキャッシュラインは、
【００２０】
【数１】
2007048285.tif 000003
により計算されてもよい。従って、２つのメモリロケーションMi,Mjは、以下の条件が成立するならば、同じキャッシュラインに対応付けられる：
【００２１】
【数２】
2007048285.tif 000004
上記の数式は次のようにも書ける：
(n・C−L)<  (Mi−Mj)<  (n・C＋L)        （１）
ここで、ｎは何らかの整数である。基本ブロックBi,BjがN回の反復を有するループの内側にあり、それらのメモリロケーションMi,Mjが条件（１）を満足するならば、そのループを実行する際に、キャッシュコンフリクトミスが少なくともN回発生する。これはWウェイセット関連キャッシュ１０に拡張されてもよい。キャッシュコンフリクトミスは、条件（１）を満足する個々の
【００２２】
【数３】
2007048285.tif 000005
の値と共にWより多くの異なるアドレスがループ内でアクセスされた場合に、Wウェイセット関連キャッシュ１０で生じる。Ｍはメモリアドレスである。キャッシュコンフリクトミスの数はキャッシュパラメータ（例えば、キャッシュラインサイズ、キャッシュセット数、キャッシュウェイ数、キャッシュ１０のメモリアドレス空間中の各基本ブロックのロケーション、及びターゲットアプリケーションプログラムの閉ループ各々についての反復回数）から容易に計算できる。特定の実施例は、所与のパフォーマンス制約に関し、キャッシュ１０及びオフチップメモリでの動的なリーク電力消費を多かれ少なかれ同時に減らすようにキャッシュコンフィギュレーション及びコード配置を最適化する。特定の実施例では、アルゴリズムは所与の関連性に関するキャッシュセット各々でのキャッシュコンフリクト数を算出する。
【００２３】
以下の表記（notation）はコード配置に関する問題定義の一例を用意するために使用される：
・Ememory,Eway,Etag：メインメモリ、単一のキャッシュウェイ及びキャッシュタグメモリ各々についてのアクセス当たりのエネルギ消費。
【００２４】
・Pstatic：メインメモリの静的な電力消費。
【００２５】
・TEmemory,TEcache：例えばオフチップメモリ及びキャッシュ１０のようなメインメモリの全エネルギ消費。
【００２６】
・Pleakage：ｌバイトキャッシュメモリブロックのリーク電力消費。
【００２７】
・TEleakage：リークに起因するキャッシュメモリの全エネルギ消費。
【００２８】
・Wbus：メモリアクセスバス幅（バイト）。
【００２９】
・Winst：命令のサイズ（バイト）。
【００３０】
・Scache：キャッシュメモリ中のセット数。
【００３１】
・Caccess：１つのメモリアクセスに必要なCPUサイクル数。
【００３２】
・Cwait：メモリアクセス中の待ちサイクル数。
【００３３】
・Fclock：CPUのクロック周波数。
【００３４】
・nline：キャッシュメモリのラインサイズ（バイト）。
【００３５】
・ai：ｉ番目のキャッシュセット中のウェイ数。
【００３６】
・Nmiss：キャッシュミス数。
【００３７】
・Ninst：実行される命令数。
【００３８】
・Xi：ｉ番目のキャッシュセットに関する「全（フル）ウェイアクセス」の数。「全ウェイ」アクセスでは、ターゲットキャッシュセット中のキャッシュタグ及び全キャッシュウェイが活性化される。「フルウェイアクセス」はインターキャッシュラインシーケンシャルフロー又は非シーケンシャルフローで必要である。或いは単独のキャッシュウェイのみが活性化される。
【００３９】
・Ttotal,Tconst：全実効時間及びそれについての制約。
【００４０】
・Ptotal：メモリシステムの総電力消費。
【００４１】
Ememory,  Eway,  Etag,  Pstatic,Pleakage,Wbus,Winst,Scache,Fclock,Caccess,Cwait及びTconstが所与のパラメータであるとする。決定されるパラメータはnline及びaiである。Nmiss,Xi及びTtotalはコード配置Wbus,Winst,nline及びaiの関数である。Nmiss,Ninst,及びXiは１以上の説明済みの方法に従って見出されてもよい。キャッシュ１０は通常的にはサブバンクに分割され、唯１つのサブバンクがアクセス毎に活性化され、Ewayはnlineに独立である。
【００４２】
以下の例示的問題定義はコード配置に使用されてよい：Ememory,  Eway,  Etag,  Pstatic,Pleakage,Wbus,Winst,Scache,Fclock,Caccess,Cwait及びTconstの所与の値について、所与の時間的制約Tconstの下で、メモリ階層の総電力消費Ptotalを最小化するために、コード配置nline及びaiを決定する。T  total,TEmemory,TEcache,TEleakage及びPtotalは、以下の数式を用いて算出されてもよい：
【００４３】
【数４】
2007048285.tif 000006
特定の実施例では、アルゴリズムはオリジナルのキャッシュコンフィギュレーション（nlines=32,Scache=8,ai=64）と共に始まる。次のステップでは、アルゴリズムはアドレス空間の中でそのアプリケーションプログラムの各ブロックの最適なロケーションを見出す。特定の実施例では、これは、アドレス空間内で配置する関数の順序を変更し、最適な順序を見出すことで実行される。各順序について、アルゴリズムは或るキャッシュセットを反復的に発見することで貪欲にエネルギを減らし、そのキャッシュセットについて２のべき乗でキャッシュウェイ数を減らすことは、最大の電力削減効果をもたらす。電力消費（Ptotal）及びランタイム（Ttotal）は所与の関連性についてキャッシュミス数を算出することで発見される。この計算は、キャッシュ１０をシミュレーションせずに、アプリケーションプログラムのアドレス空間の中で、各ループの反復回数及び各基本ブロックのロケーションを分析することで実行されてよい。最少のエネルギを与える順序が、キャッシュセット各々に関するキャッシュウェイの最適数と共に選択される。アルゴリズムは、様々案キャッシュサイズについて上記のステップを実行し、電力消費が減る限り（ステップの実効を）続ける。関数の順序は、キャッシュラインサイズが変わる場合に固定されてもよい。これは良い簡素化である。なぜなら、キャッシュラインサイズが２のべき乗で変わる場合には、関数の最適な順序は通常的には大きく変わらないからである。特定の実施例では、アルゴリズムの計算時間は、関数の数の二乗で増え、アプリケーションプログラムのループ数に線形に増える。
【００４４】
非限定的な例として、以下の擬似コードは、上述のアルゴリズムの１以上の具体例を実現する：
【００４５】
【数５】
2007048285.tif 000007
特定の実施例では、ハードウエア、ソフトウエア、組み込まれた論理要素、又はそのような要素の２以上の組み合わせが、上記のアルゴリズムの１以上のステップを実行する。１以上のユーザは１以上のコンピュータシステムを利用して、１以上の要素から出力を受信し及びそこに入力を与える。
【００４６】
以上本発明を説明するために特定の実施例が使用されてきた。当該技術分野で通常の知識を有する者は、添付の特許請求の範囲の範疇で、本発明を説明するために使用された特定の実施例に対する変更、置換、変形、代替又は修正の１以上を理解するであろう。本発明はそのような変更、置換、変形、代替又は修正の全てを包含する。
【００４７】
以下、本発明により教示される手段が例示的に列挙される。
【００４８】
（付記１）
キャッシュにおける電力消費を削減する方法であって、
前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定するステップであって、該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容するところのステップと、
前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用するステップと、
を有することを特徴とする方法。
【００４９】
（付記２）
前記キャッシュから離れたメモリにどのコードが書き込み可能であるかに応じて、前記コードが前記メモリから前記キャッシュにロードされた場合のインターキャッシュラインシーケンシャルフローの出現を減らすコード配置を決定するステップと、
前記コード配置に従って前記コードをコンパイルするステップと、
前記キャッシュでの電力消費を更に削減するために、前記メモリから前記キャッシュへ以後ロードするコードを前記コード配置に従って前記メモリに書き込むステップと、
を更に有することを特徴とする付記１記載の方法。
【００５０】
（付記３）
前記キャッシュがプロセッサに関する命令キャッシュである
ことを特徴とする付記１記載の方法。
【００５１】
（付記４）
前記キャッシュに関連するプロセッサにおいて、１以上のプログラム部分の実行中に、前記キャッシュの1以上のキャッシュセットの１以上の関連値を動的に変えるステップ
を有することを特徴とする付記１記載の方法。
【００５２】
（付記５）
前記非一様性アーキテクチャに応じて前記キャッシュ中でインアクティブな１以上のキャッシュブロックをマークするために、１以上の有効性ビットを使用するステップ
を有することを特徴とする付記１記載の方法。
【００５３】
（付記６）
キャッシュブロックをマークする有効性ビットが、前記キャッシュブロックに関連するキャッシュタグに付される
ことを特徴とする付記５記載の方法。
【００５４】
（付記７）
前記非一様性アーキテクチャに従って前記キャッシュ中のインアクティブなキャッシュブロックへのアクセスを防ぐため、前記非一様性アーキテクチャに従って、アクセス対象のキャッシュセット中のインアクティブなキャッシュウェイに関連する１以上のセンスアンプを非活性化するステップ
を更に有することを特徴とする付記１記載の方法。
【００５５】
（付記８）
前記非一様性アーキテクチャに従って前記キャッシュでインアクティブなメモリセルを電源供給部から分離するステップ
を更に有することを特徴とする付記１記載の方法。
【００５６】
（付記９）
メモリセルを電源供給部から分離する前記ステップが、前記メモリセルを前記電源供給部に接続するビアを分離するステップを有する
ことを特徴とする付記８記載の方法。
【００５７】
（付記１０）
前記非一様性アーキテクチャに従って、前記キャッシュ中でインアクティブなメモリセルを前記キャシュのビットライン及びワードラインから分離するステップ
を更に有することを特徴とする付記１記載の方法。
【００５８】
（付記１１）
ロック(lock)ビット及び有効ビットの組み合わせを用いて、前記非一様性アーキテクチャに従って前記キャッシュでインアクティブなキャッシュウェイをマークするステップ
を更に有することを特徴とする付記１記載の方法。
【００５９】
（付記１２）
１以上の媒体中にエンコードされる、キャッシュにおける電力消費を削減するための論理装置であって、
前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定するステップであって、該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容するところのステップと、
前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用するステップと、
をコンピュータに実行させることを特徴とする論理装置。
【００６０】
（付記１３）
前記キャッシュから離れたメモリにどのコードが書き込み可能であるかに応じて、前記コードが前記メモリから前記キャッシュにロードされた場合のインターキャッシュラインシーケンシャルフローの出現を減らすコード配置を決定するステップと、
前記コード配置に従って前記コードをコンパイルするステップと、
前記キャッシュでの電力消費を更に削減するために、前記メモリから前記キャッシュへ以後ロードするコードを前記コード配置に従って前記メモリに書き込むステップと、
をコンピュータに更に実行させることを特徴とする付記１２記載の論理装置。
【００６１】
（付記１４）
前記キャッシュがプロセッサに関する命令キャッシュである
ことを特徴とする付記１２記載の論理装置。
【００６２】
（付記１５）
前記キャッシュに関連するプロセッサにおいて、１以上のプログラム部分の実行中に、前記キャッシュの1以上のキャッシュセットの１以上の関連値を動的に変えるステップ
をコンピュータに実行させることを特徴とする付記１２記載の論理装置。
【００６３】
（付記１６）
前記非一様性アーキテクチャに応じて前記キャッシュ中でインアクティブな１以上のキャッシュブロックをマークするために、１以上の有効性ビットを使用するステップ
をコンピュータに実行させることを特徴とする付記１２記載の論理装置。
【００６４】
（付記１７）
キャッシュブロックをマークする有効性ビットが、前記キャッシュブロックに関連するキャッシュタグに付される
ことを特徴とする付記１６記載の論理装置。
【００６５】
（付記１８）
前記非一様性アーキテクチャに従って前記キャッシュ中のインアクティブなキャッシュブロックへのアクセスを防ぐため、前記非一様性アーキテクチャに従って、アクセス対象のキャッシュセット中のインアクティブなキャッシュウェイに関連する１以上のセンスアンプを非活性化するステップ
をコンピュータに更に実行させることを特徴とする付記１２記載の論理装置。
【００６６】
（付記１９）
前記非一様性アーキテクチャに従って前記キャッシュでインアクティブなメモリセルを電源供給部から分離するステップ
をコンピュータに更に実行させることを特徴とする付記１２記載の論理装置。
【００６７】
（付記２０）
メモリセルを電源供給部から分離する前記ステップが、前記メモリセルを前記電源供給部に接続するビアを分離するステップを有する
ことを特徴とする付記１９記載の論理装置。
【００６８】
（付記２１）
前記非一様性アーキテクチャに従って、前記キャッシュ中でインアクティブなメモリセルを前記キャシュのビットライン及びワードラインから分離するステップ
をコンピュータに更に実行させることを特徴とする付記１２記載の論理装置。
【００６９】
（付記２２）
ロックビット及び有効ビットの組み合わせを用いて、前記非一様性アーキテクチャに従って前記キャッシュでインアクティブなキャッシュウェイをマークするステップ
をコンピュータに更に実行させることを特徴とする付記１２記載の論理装置。
【００７０】
（付記２３）
キャッシュにおける電力消費を削減するシステムであって、
キャッシュと、
前記キャッシュでの電力消費を削減するために、前記キャッシュで使用される非一様性アーキテクチャと、
を有し、前記非一様性アーキテクチャは、前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意し、前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容する
ことを特徴とするシステム。
【００７１】
（付記２４）
前記キャッシュから離れたメモリを更に有し、コードが前記メモリから前記キャッシュにロードされた場合のインターキャッシュラインシーケンシャルフローの出現を減らすコード配置に従って、コードがメモリに書き込まれ及びコンパイルされ、前記コードは、前記キャッシュでの電力消費を更に削減するために、前記コード配置に従って前記メモリから前記キャッシュへロード可能である
ことを特徴とする付記２３記載のシステム。
【００７２】
（付記２５）
前記キャッシュがプロセッサに関する命令キャッシュである
ことを特徴とする付記２３記載のシステム。
【００７３】
（付記２６）
前記キャッシュの1以上のキャッシュセットの１以上の関連値が、前記キャッシュに関連するプロセッサにおいて、１以上のプログラム部分の実行中に動的に変更可能である
ことを特徴とする付記２３記載のシステム。
【００７４】
（付記２７）
１以上の有効性ビットが、前記非一様性アーキテクチャに応じて前記キャッシュ中でインアクティブな１以上のキャッシュブロックをマークする
ことを特徴とする付記２３記載のシステム。
【００７５】
（付記２８）
キャッシュブロックをマークする有効性ビットが、前記キャッシュブロックに関連するキャッシュタグに付される
ことを特徴とする付記２７記載のシステム。
【００７６】
（付記２９）
前記非一様性アーキテクチャに従って前記キャッシュ中のインアクティブなキャッシュブロックへのアクセスを防ぐため、前記非一様性アーキテクチャに従って、アクセス対象のキャッシュセット中のインアクティブなキャッシュウェイに関連する１以上のセンスアンプが非活性化される
ことを特徴とする付記２３記載のシステム。
【００７７】
（付記３０）
前記非一様性アーキテクチャに従って前記キャッシュでインアクティブなメモリセルが電源供給部から分離される
ことを特徴とする付記２３記載のシステム。
【００７８】
（付記３１）
メモリセルを電源供給部に接続するビアが、前記メモリセルを前記電源供給部から分離するために分離される
ことを特徴とする付記３０記載のシステム。
【００７９】
（付記３２）
前記非一様性アーキテクチャに従って、前記キャッシュ中でインアクティブなメモリセルが前記キャシュのビットライン及びワードラインから分離される
ことを特徴とする付記２３記載のシステム。
【００８０】
（付記３３）
ロックビット及び有効ビットの組み合わせが、前記非一様性アーキテクチャに従って前記キャッシュでインアクティブなキャッシュウェイをマークする
ことを特徴とする付記２３記載のシステム。
【００８１】
（付記３４）
キャッシュにおける電力消費を削減するシステムであって、
前記キャッシュのキャッシュセット各々についてキャッシュの最適数を用意するキャッシュの非一様性アーキテクチャを決定する手段であって、該非一様なアーキテクチャは前記キャッシュ中のキャッシュセットが互いに異なる関連値を有することを許容するところの手段と、
前記キャッシュでの電力消費を削減するために、前記キャッシュで前記非一様性アーキテクチャを使用する手段と、
を有することを特徴とするシステム。
【図面の簡単な説明】
【００８２】
【図１】キャッシュの電力消費を減らすための非一様なキャッシュ構造例を示す図である。
【図２Ａ】キャッシュの電力消費を減らすためのコード配置例を示す図である。
【図２Ｂ】キャッシュの電力消費を減らすためのコード配置例を示す図である。
【符号の説明】
【００８３】
１０  キャッシュ
１２  セット
１４  ウェイ
１６  タグ
１８  センスアンプ
２０  セットインデックス
２２  オフセット
２４  ワード
２６  キャッシュライン
【図１】
2007048285.tif 000008
【図２Ａ】
2007048285.tif 000009
【図２Ｂ】
2007048285.tif 000010