JP3834323B2 - キャッシュメモリおよびキャッシュ制御方法 - Google Patents

キャッシュメモリおよびキャッシュ制御方法 Download PDF

Info

Publication number
JP3834323B2
JP3834323B2 JP2004135686A JP2004135686A JP3834323B2 JP 3834323 B2 JP3834323 B2 JP 3834323B2 JP 2004135686 A JP2004135686 A JP 2004135686A JP 2004135686 A JP2004135686 A JP 2004135686A JP 3834323 B2 JP3834323 B2 JP 3834323B2
Authority
JP
Japan
Prior art keywords
way
decrease
increase
ways
counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004135686A
Other languages
English (en)
Other versions
JP2005316842A (ja
Inventor
泰昌 斉田
広明 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004135686A priority Critical patent/JP3834323B2/ja
Priority to US11/116,232 priority patent/US7437513B2/en
Publication of JP2005316842A publication Critical patent/JP2005316842A/ja
Application granted granted Critical
Publication of JP3834323B2 publication Critical patent/JP3834323B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、セットアソシアティブ方式のキャッシュメモリに関し、特に、動作させるキャッシュ容量を動的に制御可能な機構のキャッシュ制御に関する。
近年のマイクロプロセッサでは、性能向上を図るためにチップ上に搭載されているキャッシュメモリの容量が急激に増加している。このため、マイクロプロセッサの消費電力のうちキャッシュメモリの消費電力の占める割合も急激に増加している。
一方、マイクロプロセッサにより実行されるプログラムには様々な特性のものがあり、それらプログラムの特性により必要なキャッシュメモリの容量が異なる。そのため、全てのプログラムにおいてチップ上の全てのキャッシュメモリが必要とされるわけではない。そこで、必要な容量のキャッシュメモリだけを機能させ、他の部分を停止させるというようにキャッシュメモリの容量を制御することで、マイクロプロセッサの消費電力を低減させる手法が提案されている。
一般的なキャッシュメモリの構成として、セットアソシアティブ方式が広く用いられている。セットアソシアティブ方式において、キャッシュメモリは複数のウェイと呼ばれる単位に分割されており、各ウェイにタグおよびデータが格納される。このような構成においては、動作させるウェイ数を制御することによりキャッシュメモリの容量を制御することができる。すなわち、必要数のウェイだけを動作させ、他のウェイへの電源またはクロックの供給を停止すればよい。
また、そのとき動作させるウェイ数を制御する方法として、キャッシュミス率に基づいてウェイ数を制御するという方法が提案されている(例えば、特許文献1参照)。特許文献1によれば、キャッシュミス率を測定しており、その変化に応じて必要なウェイ数を判断し、ウェイ数の増減を決定する。動作させるキャッシュメモリの容量を動的に制御するので、全てのキャッシュメモリを常に動作させる場合に比べて、キャッシュメモリにおける消費電力が低減される。
また、プログラムの性質に合った構成を採ることによりキャッシュ性能を向上させるために、コンパイル時に最適なブロック構成を決定し、実行時にその構成を用いるキャッシュ方式が提案されている(例えば、特許文献2参照)。
特開平9−50401号公報 特開2000−20396号公報
特許文献1にて提案されたような従来のキャッシュメモリ制御方法は、キャッシュミス率に従ってキャッシュメモリ容量の増減を決定するものである。しかし、測定されたキャッシュミス率は、キャッシュ容量を増加させることがキャッシュミス率の低減にどれだけ有効か、あるいはキャッシュ容量を削減することがキャッシュミス率にどれだけ影響するかを、必ずしも示していない場合がある。
各プログラムのアクセスパターンには、同じアドレスを頻繁に繰り返しアクセスする傾向を示すものと、様々に異なるアドレスをアクセスする傾向にあるものとがある。
図20は、プログラムのアクセスパターンを示すグラフである。図20(a)は、同じアドレスを頻繁に繰り返しアクセスするアクセスパターンを示し、図20(b)は、様々に異なるアドレスをアクセスするアクセスパターンを示している。図20において、LRU(Least Recently Used)状態値は、最近にアクセスされたウェイに対するアクセスである度合いを示しており、その値が小さいほど最近アクセスされたことを示す。
図20(b)のように、様々に異なるアドレスをアクセスする傾向にあるプログラムでは、キャッシュミス率が高いとき、ウェイ数を増加させることは有効である。これに対して、図20(a)のように、同じアドレスを頻繁にアクセスする傾向にあるプログラムでは、アクセス頻度の低いウェイにおけるアクセスヒットの確率が低いので、キャッシュミス率が高いからといって、動作させるウェイ数を更に増加させてもキャッシュミス率の低減に余り寄与しない。このようにキャッシュミス率の低減に余り有効でない場合にも、従来のキャッシュメモリ制御方法ではウェイ数を増加する制御がなされていた。
また、一般的なプログラムは、ある程度一定のキャッシュアクセスの振る舞いの傾向(アクセスパターン)を示すが、様々な処理の組み合わせからなるので、一時的にはアクセスパターンからはずれた振る舞いをすることがある。そのような一時的な振る舞いによってキャッシュミス率が変化したとき、従来のキャッシュメモリ制御方法では、その変化に応じてキャッシュ容量を増減させていた。しかし、一時的な振る舞いによってキャッシュ容量を増減させると、本来のアクセスパターンに戻ったときに、キャッシュ容量が不足あるいは過剰となるといったことが生じる。
このように従来のキャッシュメモリ制御方法では、キャッシュメモリの容量を最適に制御して、キャッシュによる性能向上と消費電力低減を効率良く両立させることが困難であった。
また、特許文献2にて提案されたような従来のキャッシュ方式では、プログラムのコンパイル時にキャッシュ構成が選択されるものである。しかし、コンパイル時では実際の実行パスがわからないので、静的な解析では実行中のプログラムに最適なキャッシュ構成を予測することは困難であり、特許文献2の方式は実行中のプログラムに最適なキャッシュ構成を提供できず、キャッシュ性能を向上させることができないことがあった。
本発明の目的は、動作させる容量を動的に制御可能な機構のキャッシュメモリ制御において性能向上と消費電力低減を効率良く両立させたキャッシュメモリ、およびその制御方法を提供することである。
上記目的を達成するために、本発明のキャッシュメモリは、
セットアソシアティブ方式のキャッシュメモリであって、
各々に動作または停止が選択可能な複数のウェイと、
キャッシュアクセスがヒットしたときヒットウェイを判定するヒット判定手段と、
動作中の各ウェイについて、使用された時期が最も新しいものから最も古いものまでの順位を管理しており、前記ヒット判定手段で得られた前記ヒットウェイがどの順位のウェイかを求め、前記各順位毎のヒット数をカウントし、前記各順位に対するヒット数の関係によって示されるアクセスパターンから動作ウェイ数の増減を判定するウェイ数増減判定手段と、
動作ウェイ数の増減の判定に従って、前記ウェイの各々の動作または停止を選択するウェイ数制御手段とを有している。
したがって、本発明によれば、ヒット判定手段でのキャッシュヒットの判定結果を用いて、ウェイ数増減判定手段が、実行中のプログラムのアクセスパターンを解析し、そのアクセスパターンに適した動作ウェイ数を決定し、ウェイ数制御手段がその決定に従って動作ウェイ数を制御するので、プログラムおよびその動作の特性に応じて、必要な動作ウェイ数を正確に求めて不要なウェイの動作を停止し、適切な動作ウェイ数で動作することができる。
また、前記ウェイ数増減判定手段は、使用された時期が最も古い順位のウェイでのヒット数を、使用された時期が最も新しい順位のウェイでのヒット数で除算して得た評価値を用いて前記アクセスパターンを判断することとしてもよい。
したがって、最下位と最上位の2つの順位のヒット数の関係からアクセスパターンを判断するので、簡易な構成でアクセスパターン判断が可能である。
また、前記ウェイ数増減判定手段は、前記評価値が第1の閾値より小さいとき前記動作ウェイ数を削減し、前記評価値が第2の閾値より大きいとき前記動作ウェイ数を増加することとしてもよい。
したがって、2つの閾値を用いて増加と削減をそれぞれ判定することにより、動作ウェイ数を増加すべき状態、削減すべき状態を互いに独立の閾値で決めることができる。
また、前記ウェイ数増減判定手段は、
使用された時期が最も新しい順位のウェイでのヒット数をカウントするMRUカウンタと、使用された時期が最も古い順位のウェイでのヒット数をカウントするLRUカウンタとを具備し、
前記MRUカウンタの値が所定値に達したとき、前記第1の閾値に前記所定値を乗算した第3の閾値、および前記第2の閾値に前記所定値を乗算した第4の閾値と、前記LRUカウンタの値とを比較して前記動作ウェイ数の増減を判定することとしてもよい。
したがって、MRUカウンタの値が所定値に達したときのLRUカウンタの値を用い、また第1および第2の閾値にその所定値を乗算した第3および第4の閾値を用いるので、演算コストの高い除算を行うことなく、最も古い順位のウェイでのヒット数(LRUカウンタの値)を使用された時期が最も新しい順位のウェイでのヒット数(MRUカウンタの値)で除算した評価値と閾値とを比較することができる。
また、前記ウェイ数増減判定手段は、
使用された時期が最も新しい順位のウェイでのヒット数をカウントするMRUカウンタと、使用された時期が最も古い順位のウェイでのヒット数をカウントするLRUカウンタとを具備し、
所定の判定タイミングで、前記第1の閾値に前記MRUカウンタの値を乗算した第5の閾値、および前記第2の閾値に前記MRUカウンタの値を乗算した第6の閾値と、前記LRUカウンタの値とを比較して前記動作ウェイ数の増減を判定することとしてもよい。
したがって、判定タイミングでのMRUカウンタの値を第1、第2の閾値に乗算して得た第5、第6の閾値を用い、それらと判定タイミングでのLRUカウンタの値を比較するので、判定タイミングでMRUカウンタの値が一定でない場合でも、演算コストの高い除算を行うことなく、評価値と閾値とを比較することができる。
また、前記ウェイ数増減判定手段は、
キャッシュアクセスのヒット数をカウントするヒット数カウンタを更に具備し、
前記ヒット数カウンタの値が所定値に達したときを前記判定タイミングとすることとしてもよい。
したがって、キャッシュのヒット数が所定値に達したときの評価値を用いることにより、アクセスパターンが一定の精度で評価値に反映される期間を確保することができる。
また、前記ウェイ数増減判定手段は、
キャッシュアクセスの回数をカウントするアクセス回数カウンタを更に具備し、
前記アクセス回数カウンタの値が所定値に達したときを前記判定タイミングとすることとしてもよい。
したがって、キャッシュのアクセス回数が所定値に達したときの評価値を用いることにより、アクセスパターンが一定の精度で評価値に反映される期間を確保することができる。
また、前記所定値は実行中のプログラムに応じて変更可能であることとしてもよい。
したがって、プログラムのアクセスパターンを評価値に反映させる期間を、実行中のプログラム毎に適切に設定することができるので、様々なプログラムに対して一定の精度で評価値を算出することができる。
あるいは、前記所定値は現在の動作ウェイ数に応じて変更可能であることとしてもよい。
したがって、プログラムのアクセスパターンを評価値に反映させる期間を、その時点での動作ウェイ数毎に適切に設定することができるので、その時点の動作ウェイ数に対して一定の精度で評価値を算出することができる。
また、前記第1の閾値または前記第2の閾値の少なくとも一方が、実行中のプログラムに応じて変更可能であることとしてもよい。
したがって、動作ウェイ数の増減を判定する閾値をプログラム毎に変更可能なので、プログラムの性質によって適切な閾値が異なる場合でも、適切な閾値によって最適な動作ウェイ数を選択することができる。
また、前記第1の閾値または前記第2の閾値の少なくとも一方が、現在の動作ウェイ数に応じて変更可能であることとしてもよい。
したがって、動作ウェイ数の増減を判定する閾値を、その時点での動作ウェイ数毎に変更可能なので、その時点での動作ウェイ数によって適切な閾値が異なる場合でも、適切な閾値によって最適な動作ウェイ数を選択することができる。
また、前記第1の閾値と前記第2の閾値が同じ値であることとしてもよい。
したがって、最適な閾値として第1の閾値と第2の閾値が一致する場合でも、その設定が可能である。
また、前記ウェイ数増減判定手段は、全ての順位でのヒット数から前記アクセスパターンを判断することとしてもよい。
したがって、全ての順位でのヒット数からアクセスパターンを詳細かつ正確に判断することができるので、より高い精度で動作ウェイ数を適切に制御することができる。
また、前記動作ウェイ数の増減について、カウンタを用いて管理する複数の状態を有し、前記ウェイ数増減判定手段における動作ウェイ数の増減の判定結果に従って状態遷移し、状態遷移後の状態に応じて前記ウェイ数制御手段に前記動作ウェイ数の増減を指示する必要ウェイ数予測手段を更に有することとしてもよい。
したがって、ウェイ数増減判定手段による動作ウェイ数の増減の判定結果をそのまま動作ウェイ数の制御に用いるのではなく、動作ウェイ数の増減を決めるための複数の状態を持ち、ウェイ数増減判定手段からの判定結果を状態遷移に用いることで、ウェイ数増減判定手段による判定結果が、一時的なものか否か見極めた上で動作ウェイ数の制御を決定することができる。
本発明の他のキャッシュメモリは、
セットアソシアティブ方式のキャッシュメモリであって、
各々に動作または停止が選択可能な複数のウェイと、
プログラムのキャッシュアクセスの振る舞いに応じて動作ウェイ数の増減を判定するウェイ数増減判定手段と、
前記動作ウェイ数の増減について、カウンタを用いて管理する複数の状態を有し、前記ウェイ数増減判定手段における動作ウェイ数の増減の判定結果に従って状態遷移し、状態遷移後の状態に応じて前記動作ウェイ数の増減を決定する必要ウェイ数予測手段と、
前記必要ウェイ数予測手段によって決定された前記動作ウェイ数の増減の判定に従って、前記ウェイの各々の動作または停止を選択するウェイ数制御手段とを有している。
したがって、本発明によれば、必要ウェイ数予測手段は、動作ウェイ数の増減を決めるための複数の状態を持ち、ウェイ数増減判定手段からの判定結果を状態遷移に用いることで、ウェイ数増減判定手段による判定結果が、一時的なものか否か見極めた上で動作ウェイ数の制御を決定するので、動作ウェイ数の増減の判定にプログラムの一時的な振る舞いによる影響が含まれている場合でも、プログラムの一時的な振る舞いによる動作ウェイ数の不要な増減を抑制し、キャッシュ性能と消費電力のバランスを良好に維持することができる。
また、前記必要ウェイ数予測手段は、実際に動作ウェイ数を増加させるウェイ数増加の状態と、実際に動作ウェイ数を削減するウェイ数削減の状態との間に少なくとも1つのウェイ数維持の状態を有し、前記ウェイ数増減判定手段の前記判定結果が動作ウェイ数増加であれば動作ウェイ数増加の方向に状態遷移し、前記ウェイ数増減判定手段の前記判定結果が動作ウェイ数削減であれば動作ウェイ数削減の方向に状態遷移することにより、前記ウェイ数増加の状態と前記ウェイ数減少の状態の間を遷移することとしてもよい。
したがって、ウェイ数増減判定手段による動作ウェイ数の増減の判定結果を用いてそのまま動作ウェイ数を制御するのではなく、動作ウェイ数を増減させるときにウェイ数維持の状態において、ウェイ数増減判定手段による判定結果が、一時的なものか否か見極めた上で動作ウェイ数の制御を決定することができる。
また、前記必要ウェイ数予測手段の用いる前記カウンタは非対称であり、前記動作ウェイ数減少の方向よりも前記動作ウェイ数増加の方向へのカウント段数が少ないものとしてもよい。
したがって、プログラムによるアクセスパターンの変化に対して、動作ウェイ数増加の方向には素早く追従し、削減の方向には一時的な振る舞いの影響を強く抑制するので、プログラムの一時的な振る舞いに対してキャッシュ性能を高く維持することができる。
本発明によれば、キャッシュ性能の低下を抑止しつつ消費電力を最大限削減することができる。
本発明の第1の実施形態について図面を参照して詳細に説明する。
図1は、第1の実施形態のキャッシュ機構を示すブロック図である。本実施形態において、キャッシュメモリの機構は4ウェイのセットアソシアティブキャッシュであり、各ウェイ毎に動作させるか否かを制御可能である。この制御で各ウェイを停止させることにより消費電力を削減することができる。
図1を参照すると、本実施形態のキャッシュ機構1は、ウェイ30〜33、キャッシュ制御部10、アドレスデコーダ11、データマルチプレクサ12、アドレス比較器20〜23、ヒット判定部24、ウェイ数増減判定部2、およびウェイ数制御部4を有している。
ウェイ30〜33の各々は、アドレスを格納するタグメモリと、データを格納するデータメモリを有する構成である。ウェイ30は、タグメモリ40とデータメモリ50を具備する。ウェイ31は、タグメモリ41とデータメモリ51を具備する。ウェイ32は、タグメモリ42とデータメモリ52を具備する。ウェイ33は、タグメモリ43とデータメモリ53を具備する。本実施形態では、キャッシュのセット数は8とし、データメモリに格納されるデータのブロックサイズは4バイトとする。
キャッシュ制御部10は、外部からリードまたはライトなどの命令が与えられると、その情報を各ウェイ30〜33のタグメモリ40〜43およびデータメモリ50〜53に送る。
アドレスデコーダ11には外部からアドレスが与えられる。図2は、外部から与えられるアドレスの構成を示す図である。本実施形態では、アドレスは32ビット幅であるとする。図2を参照すると、アドレスは、ブロックオフセット200、セットアドレス201、およびタグアドレス202からなっている。
ブロックオフセット200は、データメモリに格納されているデータの大きさを示す情報である。本実施形態では、ブロックサイズが4バイトなのでブロックオフセット200は2ビットである。
セットアドレス201は、アクセスのあったアドレスのデータが格納されている可能性のあるセットを示す情報である。本実施形態ではセット数が8なのでセットアドレス201は3ビットである。タグアドレス202は、アドレスからブロックオフセット200およびセットアドレス201を除いた27ビットの情報である。タグアドレス202はタグメモリに格納される。
アドレスデコーダ11は、外部からアドレスを与えられると、そのアドレスに対応するセットアドレス201およびタグアドレス202を求め、そのセットアドレス201を各ウェイ30〜33およびウェイ数増減判定部2に、タグアドレス202をアドレス比較器20〜23に送る。
各ウェイ30〜33は、アドレスデコーダ11からのセットアドレス201で指定されたセットに対応するタグメモリに格納されているタグアドレスをアドレス比較器20〜23に送り、そのセットに対応するデータメモリに格納されているデータをデータマルチプレクサ12に送る。ウェイ30のタグメモリ40からのタグアドレスはアドレス比較器20に、ウェイ31のタグメモリ41からのタグアドレスはアドレス比較器21に、ウェイ32のタグメモリ42からのタグアドレスはアドレス比較器22に、ウェイ33のタグメモリ43からのタグアドレスはアドレス比較器23に送られる。
アドレス比較器20は、タグメモリ40からのタグアドレスと、アドレスデコーダ11からのタグアドレス202が一致するか否かを判定し、判定結果をヒット判定部24に送る。判定によりそれらが一致すれば、外部からのアクセスがあったアドレスのデータがデータメモリ50に格納されている。また、不一致であれば、アクセスのあったアドレスのデータがデータメモリ50に格納されていない。
同様に、アドレス比較器21は、タグメモリ41からのタグアドレスと、アドレスデコーダ11からのタグアドレス202が一致するか否かを判定し、判定結果をヒット判定部24に送る。アドレス比較器22は、タグメモリ42からのタグアドレスと、アドレスデコーダ11からのタグアドレス202が一致するか否かを判定し、判定結果をヒット判定部24に送る。アドレス比較器23は、タグメモリ43からのタグアドレスと、アドレスデコーダ11からのタグアドレス202が一致するか否かを判定し、判定結果をヒット判定部24に送る。
ヒット判定部24は、アドレス比較器20〜23より得られた判定結果から、キャッシュヒットかキャッシュミスかを判定する。アドレス比較器20〜23のいずれかで一致が得られればキャッシュヒットである。全てのアドレス比較器20〜23にて不一致であればキャッシュミスである。ヒット判定部24は、キャッシュヒットかキャッシュミスかを示すヒット情報1100をキャッシュ制御部10、データマルチプレクサ12、およびウェイ数増減判定部2に送る。さらにキャッシュヒットの場合、ヒット判定部24は、ヒットしたウェイ(ヒットウェイ)を示すヒットウェイ位置情報1101をデータマルチプレクサ12およびウェイ数増減判定部2に送る。
データマルチプレクサ12は、ヒット判定部24からのヒット情報1100およびヒットウェイ位置情報1101に基づき、ヒットしたウェイのデータメモリからのデータを選択して外部に出力する。
ウェイ数増減判定部2は、ヒット判定部24からのヒット情報1100およびヒットウェイ位置情報1101より実行中のプログラムのアクセスパターンを解析する。さらに、ウェイ数増減判定部2は、解析によって得られたアクセスパターンにおいて、動作しているウェイの数(以下、「動作ウェイ数」という)を増加するか、維持するか、削減するかを決定する。
そして、ウェイ数増減判定部2は、動作ウェイ数を増加する場合にはウェイ数増加情報1000を、動作ウェイ数を削減する場合にはウェイ数削減情報1001をウェイ数制御部4に送る。
図3は、第1の実施形態のウェイ数増減判定部の構成を示すブロック図である。図3を参照すると、ウェイ数増減判定部2は、LRU状態値保持部100、LRU状態判定部101、およびウェイ数増減判定器102を有している。
LRU状態値保持部100は、8つのセットの各々に対応してLRU状態値情報を格納する。LRU状態値情報には、4つの各ウェイのエントリのLRU状態値が含まれている。
LRU状態値は、小さいほど最近に使用されたエントリであることを示し、大きいほど最も長時間使用されていないエントリであることを示す。つまり、LRU状態値の最も小さいエントリがMRU(Most Recently Used)エントリであり、LRU状態値の最も大きいエントリがLRUエントリである。このLRU状態値を参照すれば、アクセスのあったエントリの使用頻度が判明する。
図4は、LRU状態値情報の例を示す図である。図4(a)に示されるように、動作ウェイ数が4の場合、LRU状態値が0であるウェイ30のエントリがMRUエントリであり、LRU状態値が3であるウェイ33のエントリがLRUエントリである。図4(b)に示されるように、動作ウェイ数が3の場合、LRU状態値が0であるウェイ30のエントリがMRUエントリであり、LRU状態値が2であるウェイ32のエントリがLRUエントリである。図4(c)に示されるように、動作ウェイ数が2の場合、LRU状態値が0であるウェイ30のエントリがMRUエントリであり、LRU状態値が1であるウェイ31のエントリがLRUエントリである。動作ウェイ数は、ウェイ数制御部4からのウェイ構成情報1004によって知ることができる。ウェイ構成情報1004は、動作ウェイ数を示す情報である。
LRU状態判定部101は、キャッシュヒット時に、ヒット判定部24からのヒット情報1100およびヒットウェイ位置情報1101と、ウェイ数制御部4からのウェイ構成情報1004と、LRU状態値保持部100からのLRU状態値情報とを元に、アクセスされたエントリがLRUエントリか、MRUエントリか、またはそれ以外のエントリかを判定し、その判定結果をウェイ数増減判定器102に送る。
ウェイ数増減判定器102は、LRU状態判定部101の判定結果に基づき、動作ウェイ数を増加させるべきか、維持するべきか、削減するべきかを判定し、ウェイ数増加情報1000またはウェイ数削減情報1001をウェイ数制御部4に送る。
以下、ウェイ数増減判定器102における基本的な判定方法について説明する。
図20(a)に示したような、MRUエントリへのアクセスが集中するアクセスパターンでは、ウェイを増加しても性能(キャッシュヒット率)の向上に余り寄与せず、またウェイを削減しても性能への影響は少ない。そのため、ウェイ数増減判定器102は動作ウェイ数を削減することを決定する。他方、図20(b)に示したような、MRUエントリからLRUエントリまで比較的均等にアクセスするアクセスパターンでは、ウェイを増加すれば性能の向上に寄与し、削減すれば性能が低下するので、ウェイ数増減判定器102は、動作ウェイ数を増加させることを決定する。
ウェイ数増減判定器102は、ウェイ数増減の判定のためのアクセスパターンの解析に、式(1)によって示される評価関数Dを用いる。
Figure 0003834323
図20(a)に示したようなMRUへのアクセスが集中するアクセスパターンであれば評価関数Dの値は小さくなる。また、図20(b)に示したようなMRUからLRUまで比較的均等にアクセスするアクセスパターンであれば評価関数Dの値は大きくなる。つまり、評価関数Dは、実行中のプログラムのアクセスパターンの特徴を示しているといえる。
また、ここで評価関数Dを用いてアクセスパターン判定するために閾値T1、T2を用いる。閾値T1、T2はT1<T2の関係にある。
ウェイ数増減判定器102は、評価関数Dが閾値T1未満であれば、つまりD<T1であれば、MRUエントリにアクセスが集中するアクセスパターンであると判定し、ウェイ数削減情報1001をウェイ数制御部4に送る。また、ウェイ数増減判定器102は、評価関数Dが閾値T2より大きければ、つまりD>T2であれば、MRUエントリからLRUエントリまで比較的均等にアクセスするアクセスパターンであると判定し、ウェイ数増加情報1000をウェイ数制御部4に送る。ウェイ数増減判定器102は、評価関数Dが閾値T1以上かつ閾値T2以下であれば、つまりT1≦D≦T2であれば、ウェイ数増加情報1000およびウェイ数削減情報1001のどちらも送らない。このように、2つの閾値T1、T2を用いているのは、増加、減少を互いに独立の閾値で、アクセスパターンに応じて適切に選択可能とするためである。これにより、動作ウェイ数を増加すべき状態、削減すべき状態、およびその間の動作ウェイ数を維持する状態をアクセスパターンに合わせて適切に選択することができる。
次に、ウェイ数増減判定器102の構成と、ウェイ数増減の判定における具体的な動作について説明する。
図5は、第1の実施形態のウェイ数増減判定器の構成を示すブロック図である。図5を参照すると、ウェイ数増減判定器102は、LRUカウンタ400、MRUカウンタ401、閾値T1保持部402、閾値T2保持部403、比較器410、411、413、判定タイミング生成用カウンタ値保持部412、およびAND部414、415を有しており、これら各部の動作によって上述したような判定を可能としている。
LRUカウンタ400は、アクセスされたエントリがLRUエントリであった回数をカウントする。そのため、LRUカウンタ400は、LRU状態判定部101による判定の結果、アクセスされたエントリがLRUエントリであればカウントアップする。
MRUカウンタ401は、アクセスされたエントリがMRUエントリであった回数をカウントする。そのため、MRUカウンタ401は、LRU状態判定部101による判定の結果、アクセスされたエントリがMRUエントリであればカウントアップする。
式(1)に示した評価関数Dは、LRUカウンタ400およびMRUカウンタ401の値を用いて式(2)のように示すことができる。
Figure 0003834323
この式(2)には除算が含まれているため、そのまま用いると演算コストが高くなる。そこで、ウェイ数増減判定器102は、MRUカウンタ401の値が所定値(判定タイミング生成用カウンタ保持部412の設定値)に達したときに、判定結果を出力することで、式(2)の分母であるMRUカウンタ401の値を常に一定とすると共に、除算の処理を省いている。つまり、式(2)の両辺にMRUカウンタ401の値を乗算し、MRUカウンタ401の値が所定値に達したときのLRUカウンタ400の値を評価関数Dの代わりに用いる。
ここで用いる閾値T1、T2は、式(2)に示した評価関数Dと直接比較されるのではなく、LRUカウンタ400の値と比較される。そのため閾値T1、T2の値は、判定タイミング生成用カウンタ値保持部412に設定された値を考慮した値に変換しておく必要がある。
これにより、MRUカウンタ401の値が所定値に達したときのLRUカウンタ400の値を用い、また閾値T1、T2に元のT1、T2にその所定値を乗算した値を用いるので、演算コストの高い除算を行うことなく、LRUカウンタ400の値をMRUカウンタ401の値で除算した値と閾値との比較が可能となり、低コストで構成することが可能となっている。
閾値T1保持部402は、動作ウェイ数の増減を判定するために、LRUカウンタ400の値と比較される閾値T1を格納している。閾値T2保持部403は、動作ウェイ数の増減を判定するために、LRUカウンタ400の値と比較される閾値T2を格納している。ここでは、閾値T1、T2は、T1<T2の関係にあり、実行中のプログラムの特性に合わせて適時に変更可能であってもよい。また、閾値T1、T2は、動作ウェイ数に応じて適時に変更可能であってもよい。閾値T1、T2は適切な値に設定される必要があるが、プログラムの性質または動作ウェイ数によって適切な値が異なることも考えられる。その場合でも、プログラムまたは動作ウェイ数に応じて閾値T1、T2を変更可能とすれば、様々なプログラムまたは動作ウェイ数に対して常に一定の精度で評価関数Dを算出し、最適な動作ウェイ数の選択制御を行うことができる。
判定タイミング生成用カウンタ値保持部412は、動作ウェイ数の増減を判定するタイミングを定める、言い換えれば、式(1)に示した評価関数Dを算出する期間を定めるパラメータとしての値を保持する。判定タイミング生成用カウンタ値保持部412に設定する値を大きくすれば、評価関数Dの算出期間が長くなり、プログラムの一時的な変動の影響を受け難くなる。逆に、設定値を小さくすれば、評価関数Dの算出期間が短くなり、プログラムのアクセスパターンの変動に敏感に反応して動作ウェイ数が増減されるようになる。
比較器410は、LRUカウンタ400の値が閾値T1より小さければ、その旨の信号をAND部414に送る。これはMRUエントリにアクセスが集中するアクセスパターンに相当する。
比較器411は、LRUカウンタ400の値が閾値T2より大きければ、その旨の信号をAND部415に送る。これは、MRUエントリからLRUエントリまで比較的均等にアクセスするアクセスパターンに相当する。
比較器413は、MRUカウンタ401の値と判定タイミング生成用カウンタ値保持部412に設定されている値が一致すると、その旨の一致信号をAND部414、415、LRUカウンタ400およびMRカウンタ401に送る。
AND部414は、比較器413からの一致信号のタイミングで比較器410からの信号を、ウェイ数削減情報1001として、ウェイ数制御部4に送る。AND部415は、比較器413からの一致信号のタイミングで比較器411からの信号を、ウェイ数増加情報1000として、ウェイ数制御部4に送る。また、LRUカウンタ400およびMRUカウンタ401は、比較器413からの一致信号によりカウンタ値をリセットする。
図5に示された各部の動作により、ウェイ数増減判定器102は、LRUカウンタ400およびMRUカウンタ401の値と閾値T1および閾値T2とを用い、実行中のプログラムのアクセスパターンに応じた動作ウェイ数の増減を選択する。
なお、本実施形態では、最下位のLRUエントリ用のLRUカウンタ400と最上位のMRUエントリ用のMRUカウンタ401の2つを用い、MRUエントリのヒット数とLRUエントリのヒット数の関係(式(2))からプログラムのアクセスパターンを解析している。これにより、最小限のカウンタを備えるだけの簡易かつ小型の構成で、アクセスパターンを低コストかつ容易に判断することを可能にしている。しかし、本発明はそれに限定されるものではない。例えば、LRUエントリおよびMRUエントリ以外のウェイに対してもカウンタを設け、プログラムのアクセスパターンをより詳細かつ高精度で解析し、動作ウェイ数を増やすべきか減らすべきかを最適に判定することとしてもよい。
また、ウェイ数増減判定器102からのウェイ数増加情報1000およびウェイ数削減情報1001を合わせてウェイ数増減情報と呼ぶこととする。
図1において、ウェイ数制御部4は、ウェイ数増減判定部2からのウェイ数増減情報に従って動作ウェイ数を制御する。ここでは、動作ウェイ数は2〜4の範囲で制御されるものとする。そのため、ウェイ数制御部4は、ウェイ32停止情報1005およびウェイ33停止情報1006によって、ウェイ32およびウェイ33の動作または非動作を選択することとする。そして、動作させるウェイには、動作に必要な電源およびクロックなどが供給され、動作させないウェイには供給されない。なお、ウェイ30、31は常に動作させるので、常に電源およびクロックなどが供給される。
また、ウェイ数制御部4は、動作ウェイ数およびどのウェイが動作しているかを示すウェイ構成情報1004を、キャッシュ制御部10、ウェイ数増減判定部2、およびヒット判定部24に送る。
次に、本実施形態のキャッシュ機構1のリード時の動作について説明する。ただし、ライト時の動作もリード時の動作と同様である。
まず、プロセッサ(不図示)からキャッシュ機構1にリード命令とアドレスが与えられる。
キャッシュ制御部10は、リード命令を受けると、各ウェイ30〜33のタグメモリおよびデータメモリに格納されているアドレスおよびデータを出力するように、各ウェイ30〜33に指示する。また、アドレスデコーダ11は、与えられたアドレスからセットアドレス201およびタグアドレス202を抽出する。そして、アドレスデコーダ11は、セットアドレス201を各ウェイ30〜33およびウェイ数増減判定部2に送り、タグアドレス202をアドレス比較器20〜23に送る。
ウェイ30におけるタグメモリ40は、キャッシュ制御部10からの指示と、アドレスデコーダ11からのセットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているアドレスをアドレス比較器20に送る。
また、ウェイ30におけるデータメモリ50は、キャッシュ制御部10からの指示と、セットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているデータをデータマルチプレクサ12に送る。
同様に、ウェイ31におけるタグメモリ41は、キャッシュ制御部10からの指示と、セットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているアドレスをアドレス比較器21に送る。
データメモリ51は、キャッシュ制御部10からの指示と、セットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているデータをデータマルチプレクサ12に送る。
同様に、ウェイ32におけるタグメモリ42は、キャッシュ制御部10からの指示と、セットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているアドレスをアドレス比較器22に送る。
データメモリ52は、キャッシュ制御部10からの指示と、セットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているデータをデータマルチプレクサ12に送る。
同様に、ウェイ33におけるタグメモリ43は、キャッシュ制御部10からの指示と、セットアドレス201とに基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているアドレスをアドレス比較器23に送る。
データメモリ53は、キャッシュ制御部10からの指示と、セットアドレス201に基づき、アクセスのあったアドレスのデータが格納されている可能性のあるセットを特定し、そこに格納されているデータをデータマルチプレクサ12に送る。
アドレス比較器20は、タグメモリ40からのタグアドレスと、アドレスデコーダ11からのタグアドレス202とを比較し、比較結果をヒット判定部24に送る。同様に、アドレス比較器21は、タグメモリ41からのタグアドレスと、アドレスデコーダ11からのタグアドレス202とを比較し、比較結果をヒット判定部24に送る。アドレス比較器22は、タグメモリ42からのタグアドレスと、アドレスデコーダ11からのタグアドレス202とを比較し、比較結果をヒット判定部24に送る。アドレス比較器23は、タグメモリ43からのタグアドレスと、アドレスデコーダ11からのタグアドレス202とを比較し、比較結果をヒット判定部24に送る。
ヒット判定部24は、アドレス比較器20、アドレス比較器21、アドレス比較器22、およびアドレス比較器23からの比較結果から、キャッシュヒットまたキャッシュミスを判定する。アドレス比較器20〜23のいずれかで一致があればキャッシュヒットであり、全てが不一致であればキャッシュミスである。
キャッシュヒットした場合、ヒット判定部24は、キャッシュヒットしたことを示すヒット情報1100と、ヒットしたウェイを示すヒットウェイ位置情報1101を送る。ヒット情報1100は、ウェイ数増減判定部2、キャッシュ制御部10、データマルチプレクサ12に送られる。ヒットウェイ位置情報1101は、ウェイ数増減判定部2、データマルチプレクサ12に送られる。データマルチプレクサ12は、ヒットウェイ位置情報1101に従って、ヒットしたウェイのデータメモリからのデータを選択してプロセッサに送る。
キャッシュミスした場合、ヒット判定部24は、その旨をキャッシュ制御部10に送る。その場合、キャッシュ制御部10の制御により、キャッシュ内容は主記憶(不図示)からのデータに更新される。
ウェイ数増減判定部2は、ヒット判定部24からヒット情報1100およびヒットウェイ位置情報1101を受け、アドレスデコーダ11から、ヒットしたデータのセットアドレス201を受ける。
図3において、ヒット情報1100を受けると、LRU状態判定部101は、ヒットウェイ位置情報1101とLRU状態値情報を元に、キャッシュヒットしたデータが格納されているウェイのLRU状態値を求め、各ウェイのLRU状態値を更新してLRU状態値保持部100に格納する。
このときのLRU状態値情報の更新方法は以下の1〜3に示す通りである。
1.ヒットしたウェイのLRU状態値を0に更新する。
2.ヒットしたウェイの更新前のLRU状態値より小さなLRU状態値を持つウェイのLRU状態値に1を加算する。
3.ヒットしたウェイの更新前のLRU状態値より大きなLRU状態値を持つウェイのLRU状態値は変更しない。
図5において、LRUエントリにてキャッシュヒットした場合、LRU状態判定部101は、LRUカウンタ400にカウントアップ信号を送る。同様に、MRUエントリにてキャッシュヒットした場合、LRU状態判定部101は、MRUカウンタ401にカウントアップ信号を送る。
図6は、LRU状態値情報の更新と、LRUカウンタ400およびMRUカウンタ401の動作の様子を示す図である。図6におけるLRU状態値情報は、一例としてセット0のLRU状態値情報を示している。
初期状態において、ウェイ30のLRU状態値を0とし、ウェイ31のLRU状態値を1とし、ウェイ32のLRU状態値を2とし、ウェイ33のLRU状態値を3とする。また、LRUカウンタ400およびMRUカウンタ401には初期値として0が格納されているとする。
次に、1回目のキャッシュヒットとして、セット0上のウェイ30のエントリに格納されているデータがキャッシュヒットしたとする。その場合、LRU状態値が0と最も小さいウェイでのキャッシュヒットなので、LRU状態値情報は変更されず、MRUカウンタ401が0から1へカウントアップされる。
次に、2回目のキャッシュヒットとして、セット0上のウェイ30のエントリに格納されているデータがキャッシュヒットしたとする。その場合、また、LRU状態値が0のウェイでのキャッシュヒットなので、LRU状態値情報は変更されず、MRUカウンタ401が1から2へカウントアップされる。
次に、3回目のキャッシュヒットとして、セット0上のウェイ33のエントリに格納されているデータがキャッシュヒットしたとする。ウェイ33のLRU状態値が3なので、今度はLRU状態値情報が更新される。ウェイ33のLRU状態値が0となり、ウェイ30のLRU状態値が1となり、ウェイ31のLRU状態値が2となり、ウェイ32のLRU状態値が3となる。更新されたLRU状態値情報はLRU状態値保持部100に書き戻される。また、ウェイ33の更新前のLRU状態値が3と最も大きな値であったので、LRUエントリでのキャッシュヒットとしてLRUカウンタ400が0から1へカウントアップされる。
次に、4回目のキャッシュヒットとして、セット0上のウェイ31のエントリに格納されているデータがキャッシュヒットしたとする。ウェイ31のLRU状態値が2なので、LRU状態値情報は更新される。ウェイ31のLRU状態値が0となり、ウェイ33のLRU状態値が1となり、ウェイ30のLRU状態値が2となり、ウェイ32のLRU状態値は3のままである。更新されたLRU状態値情報はLRU状態値保持部100に書き戻される。また、ウェイ33のエントリの更新前のLRU状態値が2であったので、LRUカウンタ400およびMRUカウンタ401は共にカウントアップされない。
以後、同様に、キャッシュヒットしたデータがMRUエントリに存在したのか、またはLRUエントリに存在したのかを判定し、LRUカウンタ400およびMRUカウンタ401をカウントアップしていく。
図5において、MRUカウンタ401の値が判定タイミング生成用カウンタ値保持部412に格納されている値(所定値)に達すると、ウェイ数増減判定器102は、LRUカウンタ400の値を用いて、実行中のプログラムのアクセスパターンを評価し、評価結果に従って動作ウェイ数の増減を判定する。
その際、比較器410は、LRUカウンタ400の値と閾値T1を比較し、LRUカウンタ400の値が閾値T1より小さければ、ウェイ数削減情報1001を生成する。比較器411は、LRUカウンタ400の値と閾値T2を比較し、LRUカウンタ400の値が閾値T2より大きければ、ウェイ数増加情報1000を生成する。
比較器413の比較結果の出力は、比較器410および比較器411の出力をガードするように、AND部414、415に接続されている。このため、MRUカウンタ401の値が判定タイミング生成用カウンタ値保持部412に格納されている値(所定値)に達したときのみ、ウェイ数増加情報1000またはウェイ数削減情報1001がウェイ数増減判定器102から送られる。つまり、ウェイ数増減判定器102は、MRUカウンタ401が所定値に到達したタイミングでウェイ数増減情報をウェイ数制御部4に送ることとなる。
また、比較器413の比較において一致が生じたときLRUカウンタ400およびMRUカウンタ401がリセットされるように、比較器413からの比較結果はLRUカウンタ400およびMRUカウンタ401に与えられている。したがって、MRUカウンタ401の値が判定タイミング生成用カウンタ値保持部412に格納されている値(所定値)に達すると、LRUカウンタ400およびMRUカウンタ401はリセットされる。
図1において、ウェイ数制御部4は、ウェイ数増減判定部2からのウェイ数増減情報に従って動作ウェイ数を変化させる。動作ウェイ数が削減されれば消費電力が低減され、動作ウェイ数が増加されればキャッシュ性能が向上する。動作ウェイ数が変化すると、LRU状態値保持部100に格納されているLRU状態値情報は、新たな動作ウェイ数に合わせて初期化される。
動作を停止させるウェイを決定する方法として、例えば、図4に示したようにウェイ番号の大きなウェイから先に停止させることとしてもよい。その場合、動作ウェイ数を変更した直後の初期値は、ウェイ番号の小さなウェイから順に付与することとしてもよい。
図7は、第1の実施形態におけるウェイ数制御部4の動作を説明するための図である。ウェイ数制御部4は、ウェイ数増減判定部2からのウェイ数増加情報1000またはウェイ数削減情報1001に従って動作ウェイ数を増減する。
そして、図7の上段に示したように、動作ウェイ数が4のとき、ウェイ数制御部4は、ウェイ32停止情報1005をウェイ32に送らず、また、ウェイ33停止情報1006もウェイ33に送らない。
図7の中段に示したように、動作ウェイ数が3のとき、ウェイ数制御部4は、ウェイ33停止情報1006をウェイ33に送り、ウェイ33への電源およびクロックなどの供給を停止させる。
図7の下段に示したように、動作ウェイ数が2のとき、ウェイ数制御部4は、ウェイ32停止情報1005をウェイ32に、ウェイ33停止情報1006をウェイ33に送り、ウェイ32、33への電源およびクロックなどの供給を停止させる。
また、ウェイ数制御部4は、ウェイ構成情報1004をウェイ数増減判定部2、キャッシュ制御部10、およびヒット判定部24に送る。キャッシュ制御部10は、ウェイ構成情報1004から、各ウェイが動作中か停止しているか判別し、停止しているウェイへは命令を送らない。ヒット判定部24は、各ウェイが動作中か停止しているかを判別し、停止しているウェイからの比較結果を無効とする。
ウェイ数が削減されるとき、停止するウェイは、内部に格納しているデータをフラッシュする。ライトバック方式のキャッシュメモリであれば、キャッシュの内容は主記憶メモリに書き戻される。
以上説明したように、本実施形態のキャッシュ機構1によれば、ヒット判定部24でのキャッシュヒットの判定結果を用いて、ウェイ数増減判定部2が、実行中のプログラムのアクセスパターンを解析し、そのアクセスパターンに適した動作ウェイ数を決定し、ウェイ数制御部4がその決定に従って動作ウェイ数を制御するので、プログラムおよびその動作の特性に応じて、必要な動作ウェイ数を正確に求めて不要なウェイの動作を停止し、適切な動作ウェイ数で動作することにより、キャッシュ性能の低下を抑止しつつ消費電力を最大限削減することができる。
なお、ここでは、動作ウェイ数を安定させるために、動作ウェイ数の増加の判定と削減の判定の間に、維持という判定を設けるために、閾値T1と閾値T2の間にT1<T2という関係を持たせた。しかし、増加、削減の判定を行うための閾値T1、T2を一致させ、増加か削減のいずれかに判定することによりアクセスパターンの変化に対する動作ウェイ数の追従性を高めることが、動作ウェイ数の判定において適切であれば、T1=T2としてもよい。その場合、図5における比較器410と比較器411は1つの比較器でよく、その比較器は、LRUカウンタ400の値が閾値より小さければウェイ数減少情報1001を送り、LRUカウンタ400の値が閾値より大きければウェイ数増加情報1000を送ることとすればよい。
第2の実施形態について説明する。
第1の実施形態では、ウェイ数増減判定器102は、MRUカウンタ401の値が所定値に達したときに、ウェイ数の増減判定を行うこととしたが、本発明はこれに限定されるものではない。第2の実施形態は、キャッシュヒットの回数が所定値に達したときにウェイ数の増減判定を行うものである。
この場合、判定時点でのMRUカウンタ401の値は一定しないので、LRUカウンタ400の値を評価関数Dの代わりに用いることができない。そこで、元の評価関数Dを以下のように変形することとすればよい。
上述したように、ウェイ数増減判定器102は、評価関数Dと閾値T1の大小関係を比較する必要がある。そのために式(3)が成立するか否かを判定すればよい。
Figure 0003834323
しかし、これには演算コストの高い除算が含まれているので式(3)をそのまま用いず、両辺にMRUカウンタの値を乗算した式(4)を用いて判定すればよい。
Figure 0003834323
これにより、除算を行わず乗算と大小比較だけで評価関数Dと閾値T1の大小関係を求めることができる。また、閾値T2についても同様に、式(5)により、評価関数Dと閾値T2の大小関係を求めることができる。
Figure 0003834323
式(4)および式(5)を用いたウェイ数の増減の判定を行うために、第2の実施形態のウェイ数増減判定器は第1の実施形態のものとは異なる構成である。
図8は、第2の実施形態のウェイ数増減判定部の構成を示すブロック図である。図8を参照すると、第2の実施形態のウェイ数増減判定部2は、第1の実施形態と同様に、LRU状態値保持部100、LRU状態判定部101、およびウェイ数増減判定器102を有している。図8において、LRU状態値保持部100、LRU状態判定部101は図3のものと同様であるが、ウェイ数増減判定器102にヒット情報1100が与えられている点が異なる。
図9は、第2の実施形態のウェイ数増減判定器の構成を示すブロック図である。図9を参照すると、ウェイ数増減判定器102は、LRUカウンタ400、MRUカウンタ401、閾値T1保持部402、閾値T2保持部403、比較器410、411、413、判定タイミング生成用カウンタ値保持部412、ヒット数カウンタ420、閾値T1乗算器421、閾値T2乗算器422、およびAND部414、415を有しており、これら各部の動作によって上述したような判定を可能としている。
LRUカウンタ400は、アクセスされたエントリがLRUエントリであった回数をカウントする。MRUカウンタ401は、アクセスされたエントリがMRUエントリであった回数をカウントする。
閾値T1保持部402は、動作ウェイ数の増減を判定するための閾値T1を格納している。閾値T2保持部403は、動作ウェイ数の増減を判定するための閾値T2を格納している。閾値T1、T2は、T1<T2の関係にあり、実行中のプログラム、動作ウェイ数に応じて適時に変更してもよい。
閾値T1乗算器421は、式(4)の判定に用いる(閾値T1×MRUカウンタの値)を求める乗算器である。閾値T2乗算器422は、式(5)の判定に用いる(閾値T2×MRUカウンタの値)を求める乗算器である。
比較器410は、LRUカウンタ400と閾値T1乗算器421に接続されている。
比較器410は、LRUカウンタ400の値が(閾値T1×MRUカウンタの値)より小さければ、その旨の信号をAND部414に送る。これはMRUエントリにアクセスが集中するアクセスパターンに相当する。
比較器411は、LRUカウンタ400と閾値T2乗算器422に接続されている。
比較器411は、LRUカウンタ400の値が(閾値T2×MRUカウンタの値)より大きければ、その旨の信号をAND部415に送る。これは、MRUエントリからLRUエントリまで比較的均等にアクセスするアクセスパターンに相当する。
ヒット数カウンタ420は、ヒット情報1100を元に、キャッシュヒットした回数をカウントし、その値を比較器413に与える。判定タイミング生成用カウンタ値保持部412は、動作ウェイ数の増減を判定するタイミングを定めるパラメータとしての値を保持する。
比較器413は、ヒット数カウンタ420の値と判定タイミング生成用カウンタ値保持部412に設定されている値が一致すると、その旨の一致信号をAND部414、415、LRUカウンタ400、MRUカウンタ401、およびヒット数カウンタ420に送る。
AND部414は、比較器413からの一致信号のタイミングで比較器410からの信号を、ウェイ数削減情報1001として、ウェイ数制御部4に送る。AND部415は、比較器413からの一致信号のタイミングで比較器411からの信号を、ウェイ数増加情報1000として、ウェイ数制御部4に送る。また、LRUカウンタ400、MRUカウンタ401、およびヒット数カウンタ420は、比較器413からの一致信号によりカウンタ値をリセットする。
以上説明したように、本実施形態のキャッシュ機構1によれば、ヒット判定部24でのキャッシュヒットの判定結果を用いて、ウェイ数増減判定部2は、実行中のプログラムにおけるヒット数が所定値に達したときアクセスパターンを求め、そのアクセスパターンに適した動作ウェイ数を決定し、ウェイ数制御部4がその決定に従って動作ウェイ数を制御するので、キャッシュのヒット数が所定値に達したときの評価関数Dを用いることでアクセスパターンが一定の精度で評価関数Dに反映される期間が確保され、プログラムの特性に応じて適切な動作ウェイ数が選択され、キャッシュ性能の低下を抑止しつつ消費電力を最大限削減することができる。
判定タイミングでのMRUカウンタの値を閾値T1、T2に乗算した値を用い、それらと判定タイミングでのLRUカウンタ400の値を比較するので、第1の実施形態のように判定タイミングでMRUカウンタ401の値が一定でない場合でも、演算コストの高い除算を行うことなく、低コストで構成できる。
第3の実施形態について説明する。
第3の実施形態では、キャッシュアクセスの回数が所定値に達したときにウェイ数の増減判定を行うものである。この場合も、第2の実施形態と同様に、判定時点でのMRUカウンタ401の値は一定しないので、式(4)(5)を用いて動作ウェイ数の増減を判定する。
図10は、第3の実施形態のキャッシュ機構を示すブロック図である。図10を参照すると、第3の実施形態のキャッシュ機構1は、キャッシュ制御部10からウェイ数増減判定部2に送られるキャッシュアクセス情報1200が追加されている点で図1のものと異なる。キャッシュアクセス情報1200は、キャッシュへのアクセスが行われたことを示す情報であり、これにはキャッシュヒットおよびキャッシュミスの両方の場合が含まれる。
キャッシュ制御部10は、外部からの命令が与えられると、キャッシュへのアクセスと判断し、キャッシュアクセス情報1200をウェイ数増減判定部2に送る。
図11は、第3の実施形態のウェイ数増減判定部の構成を示すブロック図である。図11を参照すると、第3の実施形態のウェイ数増減判定部2は、第1の実施形態と同様に、LRU状態値保持部100、LRU状態判定部101、およびウェイ数増減判定器102を有している。図11において、LRU状態値保持部100、LRU状態判定部101は図3のものと同様であるが、ウェイ数増減判定器102にキャッシュアクセス情報1200が与えられている点が異なる。
図12は、第3の実施形態のウェイ数増減判定器の構成を示すブロック図である。図12を参照すると、ウェイ数増減判定器102は、LRUカウンタ400、MRUカウンタ401、閾値T1保持部402、閾値T2保持部403、比較器410、411、413、判定タイミング生成用カウンタ値保持部412、キャッシュアクセス回数カウンタ430、閾値T1乗算器421、閾値T2乗算器422、およびAND部414、415を有している。第3の実施形態のウェイ数増減判定器102は、ヒット数カウンタ420の代わりにキャッシュアクセス回数カウンタ430を有する点だけが第2の実施形態と異なる。
キャッシュアクセス回数カウンタ430は、キャッシュアクセス情報1200を元に、キャッシュへのアクセス回数をカウントし、値を比較器413に与える。これにより、キャッシュアクセス回数カウンタ430の値が、判定タイミング生成用カウンタ値保持部412に格納されている値(所定値)に達したときに、動作ウェイ数の増減が判定される。
以上説明したように、本実施形態のキャッシュ機構1によれば、ヒット判定部24でのキャッシュヒットの判定結果を用いて、ウェイ数増減判定部2は、実行中のプログラムにおけるキャッシュアクセス回数が所定値に達したときアクセスパターンを求め、そのアクセスパターンに適した動作ウェイ数を決定し、ウェイ数制御部4がその決定に従って動作ウェイ数を制御するので、キャッシュアクセス回数が所定値に達したときの評価関数Dを用いることでアクセスパターンが一定の精度で評価値に反映される期間が確保され、プログラムの特性に応じて適切な動作ウェイ数が選択され、キャッシュ性能の低下を抑止しつつ消費電力を最大限削減することができる。
第4の実施形態について説明する。
第1〜3の実施形態では、ウェイ数増減判定部2からのウェイ数増減情報をウェイ数制御部4がそのまま用いて動作ウェイ数を増減することとしたが、本発明はそれに限定されるものではない。第4の実施形態は、ウェイ数増減判定部2とウェイ数制御部4の間に、動作ウェイ数の増減判定を修正する必要ウェイ数予測部3を備えたものである。
図13は、第4の実施形態のキャッシュ機構を示すブロック図である。図13に示す第4の実施形態のキャッシュ機構は、ウェイ数増減判定部2とウェイ数制御部4の間に必要ウェイ数予測部3を備えた点だけが図1のものと異なり、他の点は同じである。
プログラムによっては、一時的な振る舞いによって本来そのプログラムが持つアクセスパターンと異なる動作をすることがある。その一時的な動作変化に応じてキャッシュ容量を増減させることが必ずしも適切でない場合があり、すぐにキャッシュ容量が不足したり、過剰となったりすることがある。
そのため、アクセスパターンの変化に対して、それが一時的な動作変化か、定常的なアクセスパターンの変化かを、ある期間で見極めた上で、キャッシュ容量を制御することが有効な場合がある。また、その見極めに適切な期間が、キャッシュ容量を増加させる方向の制御と、削減する方向の制御とで異なることもある。これらの見極めの期間はプログラムの特性によって異なることもあるし、またキャッシュ機構を適用する装置の設計ポリシーによって異なることもある。
例えば、消費電量削減効果よりもキャッシュ性能の向上を優先し、プログラムの一時的な振る舞いに対してキャッシュ性能を高く維持しようとする場合、増加方向は比較的短期間で判定し、減少方向は比較的長い期間で判定することが好ましい。逆に、キャッシュ性能の向上よりも消費電力削減効果を優先する場合、減少方向は比較的短期間で判定し、増加方向は比較的長い期間で判定することが好ましい。
必要ウェイ数予測部3は、カウントアップとカウントダウンが非対称なカウンタを用いて状態を定め、ウェイ数増減判定部2からのウェイ数増減情報に従って状態遷移し、遷移した状態に応じて動作ウェイ数の増減を判断する。
必要ウェイ数予測部3の非対称カウンタが取りうるのは、「ウェイ数増加」の状態が1つと、「ウェイ数減少」の状態が1つと、「ウェイ数維持」の状態が1つ以上である。「ウェイ数増加」と「ウェイ数削減」の間に1つ以上の「ウェイ数維持」の状態が置かれる。そして、必要ウェイ数予測部3は、ウェイ数増減情報を受けると、所定の規則に従って各状態間を遷移する。状態遷移規則は、増加方向の遷移と、削減方向の遷移とがプログラムの特性、またはキャッシュ機構を適用する装置の設計ポリシーなどによって最適に定められ、一般的には非対称である。
状態遷移後の状態が「ウェイ数増加」であれば、必要ウェイ数予測部3は、必要ウェイ数増加情報1002をウェイ数制御部4に送る。また、状態遷移後の状態が「ウェイ数削減」であれば、必要ウェイ数予測部3は、必要ウェイ数削減情報1003をウェイ数制御部4に送る。状態遷移後の状態が「ウェイ数維持」であれば、必要ウェイ数予測部3は、必要ウェイ数増加情報1002および必要ウェイ数削減情報1003のいずれも送らない。
ウェイ数制御部4は、必要ウェイ数予測部3からの必要ウェイ数増加情報1002および必要ウェイ数減少情報1003に従って動作ウェイ数を制御する。
必要ウェイ数予測部3は、ウェイ数増減判定部2からのウェイ数増減情報をそのまま動作ウェイ数の制御に用いるのではなく、動作ウェイ数の増減を決めるための複数の状態を持ち、ウェイ数増減判定部2からのウェイ数増減情報を状態遷移に用いることで、ウェイ数増減判定部2からのウェイ数増減情報の指示が、一時的なものか否か見極めた上で動作ウェイ数を制御するので、プログラムの一時的な振る舞いによるウェイ数の不要な増減を抑制し、キャッシュ性能と消費電力のバランスを良好に維持することができる。
ここでは、一例として、必要ウェイ数予測部3は、2ビットで構成された非対称カウンタを用いることとする。図14は、第4の実施形態の必要ウェイ数予測部の動作を示す状態遷移図である。図14を参照すると、必要ウェイ数予測部3は、2ビットのカウンタで示される4つの状態を取りうる。各状態は、「ウェイ数増加」、「ウェイ数維持A」、「ウェイ数維持B」、「ウェイ数削減」の4つである。
「ウェイ数増加」の状態は、実行中のプログラムでは、現在より多くのウェイ数を動作させるべきであることを示す。状態遷移後の状態が「ウェイ数増加」であれば、必要ウェイ数予測部3は、必要ウェイ数増加情報1002をウェイ数制御部4に送る。
「ウェイ数削減」の状態は、実行中のプログラムが、現在のウェイ数を必要としていないことを示す。状態遷移後の状態が「ウェイ数削減」であれば、必要ウェイ数予測部3は、必要ウェイ数削減情報1003をウェイ数制御部4に送る。
「ウェイ数維持A」または「ウェイ数維持B」の状態は、実行中のプログラムにおいて、動作させるウェイ数を変更する必要がない、あるいは動作ウェイ数を増減させるべきか否かの評価中であることを示す。状態遷移後の状態が「ウェイ数維持A」または「ウェイ数維持B」であれば、必要ウェイ数予測部3は、必要ウェイ数増加情報1002および必要ウェイ数削減情報1003のどちらも送らない。
必要ウェイ数予測部3は、ウェイ数増減判定部2からウェイ数増減情報を受けると、図14に従って状態遷移を行う。必要ウェイ数予測部3は、ウェイ数増加情報1000を受けると「I」の矢印に従って遷移し、ウェイ数減少情報1001を受けると「D」の矢印に従って遷移する。初期状態は「ウェイ数維持A」である。
図14の状態遷移図によれば、「ウェイ数増加」の状態から「ウェイ数削減」の状態に遷移するには、必要ウェイ数予測部3は、ウェイ数削減情報1001を3回連続で受信する必要がある。また、必要ウェイ数予測部3は、どの状態からでもウェイ数増加情報1000を1回受信すれば、「ウェイ数増加」の状態に遷移する。
図15は、必要ウェイ数予測部の動作例を示す図である。
図15を参照して、第4の実施形態のキャッシュ機構1における必要ウェイ数予測部3の動作例について説明する。なお、ウェイ数増減判定部2がウェイ数増加情報1000およびウェイ数削減情報1001を生成するまでの動作は、第1の実施形態と同じである。
初期状態では、必要ウェイ数予測部3のカウンタは「ウェイ数維持A」の状態である。
次に、必要ウェイ数予測部3は、1個目のウェイ数増減情報として、ウェイ数削減情報1001を受けたとする。これにより非対称カウンタの状態が「ウェイ数維持A」から「ウェイ数維持B」に遷移する。この状態では、必要ウェイ数予測部3は必要ウェイ数増加情報1002および必要ウェイ数削減情報1003のいずれも送らない。
次に、必要ウェイ数予測部3は、2個目のウェイ数増減情報として、ウェイ数削減情報1001を受けたとする。これにより非対称カウンタの状態が「ウェイ数維持B」から「ウェイ数削減」に遷移する。状態遷移後の状態が「ウェイ数削減」なので、必要ウェイ数予測部3は、必要ウェイ数削減情報1003をウェイ数制御部4に送る。
次に、必要ウェイ数予測部3は、3個目のウェイ数増減情報として、ウェイ数増加情報1000を受けたとする。非対称カウンタの状態は、「ウェイ数削減」から「ウェイ数増加」に遷移する。状態遷移後の状態が「ウェイ数増加」なので、必要ウェイ数予測部3は、必要ウェイ数増加情報1002をウェイ数制御部4に送る。
次に、必要ウェイ数予測部3は、4個目のウェイ数増減情報として、ウェイ数増加情報1000を受けたとする。非対称カウンタの状態は、「ウェイ数増加」から「ウェイ数増加」に遷移する。状態遷移後の状態が「ウェイ数増加」なので、必要ウェイ数予測部3は、必要ウェイ数増加情報1002をウェイ数制御部4に送る。
図16は、第4の実施形態におけるウェイ数制御部4の動作を説明するための図である。ウェイ数制御部4は、必要ウェイ数予測部3からの必要ウェイ数増加情報1002または必要ウェイ数削減情報1003に従って動作ウェイ数を増減する。そして、図16の上段に示したように、動作ウェイ数が4のとき、ウェイ数制御部4は、ウェイ32停止情報1005をウェイ32に送らず、また、ウェイ33停止情報1006もウェイ33に送らない。
図16の中段に示したように、動作ウェイ数が3のとき、ウェイ数制御部4は、ウェイ33停止情報1006をウェイ33に送り、ウェイ33への電源およびクロックなどの供給を停止させる。
図16の下段に示したように、動作ウェイ数が2のとき、ウェイ数制御部4は、ウェイ32停止情報1005をウェイ32に、ウェイ33停止情報1006をウェイ33に送り、ウェイ32、33への電源およびクロックなどの供給を停止させる。
以上説明したように、本実施形態によれば、必要ウェイ数予測部3は、ウェイ数増減判定部2からのウェイ数増減情報をそのまま動作ウェイ数の制御に用いるのではなく、動作ウェイ数の増減を決めるための複数の状態を持ち、ウェイ数増減判定部2からのウェイ数増減情報を状態遷移に用いることで、ウェイ数増減判定部2からのウェイ数増減情報の指示が、一時的なものか否か見極めた上で動作ウェイ数を制御するので、プログラムの一時的な振る舞いによるウェイ数の不要な増減を抑制し、キャッシュ性能の向上と消費電力の低減を両立させることができる。
また、非対称カウンタにより状態を遷移し、その状態に応じて動作ウェイ数を制御するので、動作ウェイ数の増加方向と削減方向の状態遷移の各々について適切な状態遷移規則を用いることができ、プログラムの特性や設計ポリシーに対して適切な状態遷移により、キャッシュ性能と消費電力のバランスを良好にとることができる。
なお、ここでは2ビットカウンタによって4つの状態を取りうる例を示したが、本発明はそれに限定されるものではない。図17は、3ビットカウンタを用いた状態遷移図の一例を示す図である。図17によれば、「ウェイ数維持A〜F」まで6つの維持の状態があるので、図14のものより一時的な振る舞いの影響を強く抑止し、削減方向に慎重な判断がなされる。
また、ここでは全ての状態からウェイ数増加情報1000を受信すると、「ウェイ数増加」の状態に遷移することとしたが、本発明はそれに限定されるものではない。増加方向の状態遷移においても、1つ以上の「ウェイ数維持」の状態を経由することとしてもよい。図18は、図17の状態遷移の変形例を示す図である。例えば、図18に示すように、「ウェイ数維持D〜F」または「ウェイ数削減」の状態でウェイ数増加情報1000を受けたとき、「ウェイ数維持C」の状態に遷移し、「ウェイ数維持A〜C」または「ウェイ数増加」の状態でウェイ数増加情報1000を受けたとき、「ウェイ数増加」の状態に遷移することとしてもよい。さらに、プログラムの特性や設計ポリシーに応じて任意の状態遷移規則を採用することができる。
また、ここで示した例とは逆に、動作ウェイ数の増加方向に慎重な判断を行うような状態遷移規則を用いてもよい。
また、非対称カウンタの取りうる状態は任意の自然数であってもよく、例えば5つの状態を取りうることとしてもよい。また、ここでは、一般的なものとして非対称カウンタによる状態遷移を例に示したが、その特殊な例として、適切であれば対称カウンタによる状態遷移を採用してもよい。図19は、対称カウンタを用いた状態遷移図の一例を示す図である。増加方向と減少方向とで同じ慎重さで状態遷移することが適切であれば、図19に示したように対称カウンタによる状態遷移を採用してもよい。
また、ここでは、ウェイ数増減判定部2の判定結果に対して必要ウェイ数予測部3による修正を加える例を示したが、本発明はそれに限定されない。必要ウェイ数予測部3による修正は、ウェイ数増減の判定において、プログラムの一時的な振る舞いによる影響があるような判定結果に対して広く適用可能なものである。例えば、キャッシュミス率に基づいて動作ウェイ数の増減を判定した判定結果に対して、必要ウェイ数予測部3による修正を加えることも可能である。
第1の実施形態のキャッシュ機構を示すブロック図である。 外部から与えられるアドレスの構成を示す図である。 第1の実施形態のウェイ数増減判定部の構成を示すブロック図である。 LRU状態値情報の例を示す図である。 第1の実施形態のウェイ数増減判定器の構成を示すブロック図である。 LRU状態値情報の更新と、MRUカウンタLRUカウンタの動作の様子を示す図である。 第1の実施形態におけるウェイ数制御部の動作を説明するための図である。 第2の実施形態のウェイ数増減判定部の構成を示すブロック図である。 第2の実施形態のウェイ数増減判定器の構成を示すブロック図である。 第3の実施形態のキャッシュ機構を示すブロック図である。 第3の実施形態のウェイ数増減判定部の構成を示すブロック図である。 第3の実施形態のウェイ数増減判定器の構成を示すブロック図である。 第4の実施形態のキャッシュ機構を示すブロック図である。 第4の実施形態の必要ウェイ数予測部の動作を示す状態遷移図である。 必要ウェイ数予測部の動作例を示す図である。 第4の実施形態におけるウェイ数制御部の動作を説明するための図である。 3ビットカウンタを用いた状態遷移図の一例を示す図である。 図17の状態遷移の変形例を示す図である。 対称カウンタを用いた状態遷移図の一例を示す図である。 プログラムのアクセスパターンを示すグラフである。
符号の説明
1 キャッシュ機構
10 キャッシュ制御部
11 アドレスデコーダ
12 データマルチプレクサ
2 ウェイ数増減判定部
20〜23 アドレス比較器
24 ヒット判定部
3 必要ウェイ数予測部
30〜33 ウェイ
4 ウェイ数制御部
40、41、42、43 タグメモリ
50、51、52、53 データメモリ
100 LRU状態値保持部
101 LRU状態判定部
102 ウェイ数増減判定器
200 ブロックオフセット
201 セットアドレス
202 タグアドレス
400 LRUカウンタ
401 MRUカウンタ
402 閾値T1保持部
403 閾値T2保持部
410、411、413 比較器
412 判定タイミング生成用カウンタ値保持部
414、415 AND部
420 ヒット数カウンタ
421 閾値T1乗算器
422 閾値T2乗算器
430 キャッシュアクセス回数カウンタ
1000 ウェイ数増加情報
1001 ウェイ数削減情報
1002 必要ウェイ数増加情報
1003 必要ウェイ数削減情報
1004 ウェイ構成情報
1005 ウェイ32停止情報
1006 ウェイ33停止情報
1100 ヒット情報
1101 ヒットウェイ位置情報
1200 キャッシュアクセス情報

Claims (34)

  1. セットアソシアティブ方式のキャッシュメモリであって、
    各々に動作または停止が選択可能な複数のウェイと、
    キャッシュアクセスがヒットしたときヒットウェイを判定するヒット判定手段と、
    動作中の各ウェイについて、使用された時期が最も新しいものから最も古いものまでの順位を管理しており、前記ヒット判定手段で得られた前記ヒットウェイがどの順位のウェイかを求め、前記各順位毎のヒット数をカウントし、前記各順位に対するヒット数の関係によって示されるアクセスパターンから動作ウェイ数の増減を判定するウェイ数増減判定手段と、
    動作ウェイ数の増減の判定に従って、前記ウェイの各々の動作または停止を選択するウェイ数制御手段とを有するキャッシュメモリ。
  2. 前記ウェイ数増減判定手段は、使用された時期が最も古い順位のウェイでのヒット数を、使用された時期が最も新しい順位のウェイでのヒット数で除算して得た評価値を用いて前記アクセスパターンを判断する、請求項1記載のキャッシュメモリ。
  3. 前記ウェイ数増減判定手段は、前記評価値が第1の閾値より小さいとき前記動作ウェイ数を削減し、前記評価値が第2の閾値より大きいとき前記動作ウェイ数を増加する、請求項2記載のキャッシュメモリ。
  4. 前記ウェイ数増減判定手段は、
    使用された時期が最も新しい順位のウェイでのヒット数をカウントするMRUカウンタと、使用された時期が最も古い順位のウェイでのヒット数をカウントするLRUカウンタとを具備し、
    前記MRUカウンタの値が所定値に達したとき、前記第1の閾値に前記所定値を乗算した第3の閾値、および前記第2の閾値に前記所定値を乗算した第4の閾値と、前記LRUカウンタの値とを比較して前記動作ウェイ数の増減を判定する、請求項3記載のキャッシュメモリ。
  5. 前記ウェイ数増減判定手段は、
    使用された時期が最も新しい順位のウェイでのヒット数をカウントするMRUカウンタと、使用された時期が最も古い順位のウェイでのヒット数をカウントするLRUカウンタとを具備し、
    所定の判定タイミングで、前記第1の閾値に前記MRUカウンタの値を乗算した第5の閾値、および前記第2の閾値に前記MRUカウンタの値を乗算した第6の閾値と、前記LRUカウンタの値とを比較して前記動作ウェイ数の増減を判定する、請求項3記載のキャッシュメモリ。
  6. 前記ウェイ数増減判定手段は、
    キャッシュアクセスのヒット数をカウントするヒット数カウンタを更に具備し、
    前記ヒット数カウンタの値が所定値に達したときを前記判定タイミングとする、請求項5記載のキャッシュメモリ。
  7. 前記ウェイ数増減判定手段は、
    キャッシュアクセスの回数をカウントするアクセス回数カウンタを更に具備し、
    前記アクセス回数カウンタの値が所定値に達したときを前記判定タイミングとする、請求項5記載のキャッシュメモリ。
  8. 前記所定値は実行中のプログラムに応じて変更可能である、請求項4、6、または7のいずれか1項に記載のキャッシュメモリ。
  9. 前記所定値は現在の動作ウェイ数に応じて変更可能である、請求項4、6、または7のいずれか1項に記載のキャッシュメモリ。
  10. 前記第1の閾値または前記第2の閾値の少なくとも一方が、実行中のプログラムに応じて変更可能である、請求項3記載のキャッシュメモリ。
  11. 前記第1の閾値または前記第2の閾値の少なくとも一方が、現在の動作ウェイ数に応じて変更可能である、請求項3記載のキャッシュメモリ。
  12. 前記第1の閾値と前記第2の閾値が同じ値である、請求項3記載のキャッシュメモリ。
  13. 前記ウェイ数増減判定手段は、全ての順位でのヒット数から前記アクセスパターンを判断する、請求項1記載のキャッシュメモリ。
  14. 前記動作ウェイ数の増減について、カウンタを用いて管理する複数の状態を有し、前記ウェイ数増減判定手段における動作ウェイ数の増減の判定結果に従って状態遷移し、状態遷移後の状態に応じて前記ウェイ数制御手段に前記動作ウェイ数の増減を指示する必要ウェイ数予測手段を更に有する、請求項1記載のキャッシュメモリ。
  15. セットアソシアティブ方式のキャッシュメモリであって、
    各々に動作または停止が選択可能な複数のウェイと、
    プログラムのキャッシュアクセスの振る舞いに応じて動作ウェイ数の増減を判定するウェイ数増減判定手段と、
    前記動作ウェイ数の増減について、カウンタを用いて管理する複数の状態を有し、前記ウェイ数増減判定手段における動作ウェイ数の増減の判定結果に従って状態遷移し、状態遷移後の状態に応じて前記動作ウェイ数の増減を決定する必要ウェイ数予測手段と、
    前記必要ウェイ数予測手段によって決定された前記動作ウェイ数の増減の判定に従って、前記ウェイの各々の動作または停止を選択するウェイ数制御手段とを有するキャッシュメモリ。
  16. 前記必要ウェイ数予測手段は、実際に動作ウェイ数を増加させるウェイ数増加の状態と、実際に動作ウェイ数を削減するウェイ数削減の状態との間に少なくとも1つのウェイ数維持の状態を有し、前記ウェイ数増減判定手段の前記判定結果が動作ウェイ数増加であれば動作ウェイ数増加の方向に状態遷移し、前記ウェイ数増減判定手段の前記判定結果が動作ウェイ数削減であれば動作ウェイ数削減の方向に状態遷移することにより、前記ウェイ数増加の状態と前記ウェイ数減少の状態の間を遷移する、請求項14または15に記載のキャッシュメモリ。
  17. 前記必要ウェイ数予測手段の用いる前記カウンタは非対称であり、前記動作ウェイ数減少の方向よりも前記動作ウェイ数増加の方向へのカウント段数が少ない、請求項16記載のキャッシュメモリ。
  18. 各々に動作または停止が選択可能な複数のウェイを具備する、セットアソシアティブ方式のキャッシュメモリを制御するためのキャッシュ制御方法であって、
    動作中の各ウェイについて、使用された時期が最も新しいものから最も古いものまでの順位を管理しておくステップと、
    キャッシュヒットしたウェイであるヒットウェイがどの順位のウェイかを求め、前記各順位毎のヒット数をカウントするステップと、
    前記各順位に対するヒット数の関係によって示されるアクセスパターンから動作ウェイ数の増減を判定するステップと、
    動作ウェイ数の増減の判定に従って、前記ウェイの各々の動作または停止を選択するステップとを有するキャッシュ制御方法。
  19. 使用された時期が最も古い順位のウェイでのヒット数を、使用された時期が最も新しい順位のウェイでのヒット数で除算して得た評価値を用いて前記アクセスパターンを判断する、請求項18記載のキャッシュ制御方法。
  20. 前記評価値が第1の閾値より小さいとき前記動作ウェイ数を削減し、前記評価値が第2の閾値より大きいとき前記動作ウェイ数を増加する、請求項19記載のキャッシュ制御方法。
  21. 使用された時期が最も新しい順位のウェイでのヒット数をカウントするMRUカウンタと、使用された時期が最も古い順位のウェイでのヒット数をカウントするLRUカウンタとを用い、
    前記MRUカウンタの値が所定値に達したとき、前記第1の閾値に前記所定値を乗算した第3の閾値、および前記第2の閾値に前記所定値を乗算した第4の閾値と、前記LRUカウンタの値とを比較して前記動作ウェイ数の増減を判定する、請求項20記載のキャッシュ制御方法。
  22. 使用された時期が最も新しい順位のウェイでのヒット数をカウントするMRUカウンタと、使用された時期が最も古い順位のウェイでのヒット数をカウントするLRUカウンタとを用い、
    所定の判定タイミングで、前記第1の閾値に前記MRUカウンタの値を乗算した第5の閾値、および前記第2の閾値に前記MRUカウンタの値を乗算した第6の閾値と、前記LRUカウンタの値とを比較して前記動作ウェイ数の増減を判定する、請求項20記載のキャッシュ制御方法。
  23. キャッシュアクセスのヒット数をカウントするヒット数カウンタを更に用い、
    前記ヒット数カウンタの値が所定値に達したときを前記判定タイミングとする、請求項22記載のキャッシュ制御方法。
  24. キャッシュアクセスの回数をカウントするアクセス回数カウンタを更に用い、
    前記アクセス回数カウンタの値が所定値に達したときを前記判定タイミングとする、請求項22記載のキャッシュ制御方法。
  25. 前記所定値は実行中のプログラムに応じて変更可能である、請求項21、23、または24のいずれか1項に記載のキャッシュ制御方法。
  26. 前記所定値は現在の動作ウェイ数に応じて変更可能である、請求項21、23、または24のいずれか1項に記載のキャッシュ制御方法。
  27. 前記第1の閾値または前記第2の閾値の少なくとも一方が、実行中のプログラムに応じて変更可能である、請求項20記載のキャッシュ制御方法。
  28. 前記第1の閾値または前記第2の閾値の少なくとも一方が、現在の動作ウェイ数に応じて変更可能である、請求項20記載のキャッシュ制御方法。
  29. 前記第1の閾値と前記第2の閾値が同じ値である、請求項20記載のキャッシュ制御方法。
  30. 前記ウェイ数の増減を判定するステップは、全ての順位でのヒット数から前記アクセスパターンを判断する、請求項18記載のキャッシュ制御方法。
  31. 前記動作ウェイ数の増減について、カウンタを用いて管理する複数の状態を有し、前記動作ウェイ数の増減の判定結果に従って状態遷移し、状態遷移後の状態に応じて前記動作ウェイ数の増減を決定する、請求項18記載のキャッシュ制御方法。
  32. 各々に動作または停止が選択可能な複数のウェイを具備する、セットアソシアティブ方式のキャッシュメモリを制御するためのキャッシュ制御方法であって、
    プログラムのキャッシュアクセスの振る舞いに応じて動作ウェイ数の増減を判定するステップと、
    前記動作ウェイ数の増減について、カウンタを用いて管理する複数の状態を用い、前記動作ウェイ数の増減の判定結果に従って状態遷移し、状態遷移後の状態に応じて前記動作ウェイ数の増減を決定するステップと、
    動作ウェイ数の増減の決定に従って、前記ウェイの各々の動作または停止を選択するステップとを有するキャッシュ制御方法。
  33. 実際に動作ウェイ数を増加させるウェイ数増加の状態と、実際に動作ウェイ数を削減するウェイ数削減の状態との間に少なくとも1つのウェイ数維持の状態を作り、前記判定結果が動作ウェイ数増加であれば動作ウェイ数増加の方向に状態遷移し、前記判定結果が動作ウェイ数削減であれば動作ウェイ数削減の方向に状態遷移することにより、前記ウェイ数増加の状態と前記ウェイ数減少の状態の間を遷移する、請求項31または32に記載のキャッシュ制御方法。
  34. 前記カウンタは非対称であり、前記動作ウェイ数減少の方向よりも前記動作ウェイ数増加の方向へのカウント段数が少ない、請求項33記載のキャッシュ制御方法。
JP2004135686A 2004-04-30 2004-04-30 キャッシュメモリおよびキャッシュ制御方法 Expired - Fee Related JP3834323B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004135686A JP3834323B2 (ja) 2004-04-30 2004-04-30 キャッシュメモリおよびキャッシュ制御方法
US11/116,232 US7437513B2 (en) 2004-04-30 2005-04-28 Cache memory with the number of operated ways being changed according to access pattern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004135686A JP3834323B2 (ja) 2004-04-30 2004-04-30 キャッシュメモリおよびキャッシュ制御方法

Publications (2)

Publication Number Publication Date
JP2005316842A JP2005316842A (ja) 2005-11-10
JP3834323B2 true JP3834323B2 (ja) 2006-10-18

Family

ID=35188415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004135686A Expired - Fee Related JP3834323B2 (ja) 2004-04-30 2004-04-30 キャッシュメモリおよびキャッシュ制御方法

Country Status (2)

Country Link
US (1) US7437513B2 (ja)
JP (1) JP3834323B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130115090A (ko) * 2010-05-11 2013-10-21 어드밴스드 마이크로 디바이시즈, 인코포레이티드 캐시 제어를 위한 방법 및 장치

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156992A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
WO2006106890A1 (en) 2005-03-31 2006-10-12 Semiconductor Energy Laboratory Co., Ltd. Arithmetic processing device and electronic appliance using arithmetic processing device
EP1717708B1 (en) * 2005-04-29 2010-09-01 STMicroelectronics Srl An improved cache memory system
US7861055B2 (en) * 2005-06-07 2010-12-28 Broadcom Corporation Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
US7616210B2 (en) * 2005-08-23 2009-11-10 Canon Kabushiki Kaisha Memory apparatus and memory control method
US7562191B2 (en) * 2005-11-15 2009-07-14 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US7873820B2 (en) * 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
US7496771B2 (en) * 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
US8275942B2 (en) * 2005-12-22 2012-09-25 Intel Corporation Performance prioritization in multi-threaded processors
US20070288776A1 (en) * 2006-06-09 2007-12-13 Dement Jonathan James Method and apparatus for power management in a data processing system
US8244980B2 (en) * 2006-06-21 2012-08-14 Intel Corporation Shared cache performance
US20080005473A1 (en) * 2006-06-30 2008-01-03 Tong Chen Compiler assisted re-configurable software implemented cache
US7467280B2 (en) * 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US7844778B2 (en) * 2006-07-11 2010-11-30 International Business Machines Corporation Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8225046B2 (en) * 2006-09-29 2012-07-17 Intel Corporation Method and apparatus for saving power by efficiently disabling ways for a set-associative cache
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
JP4847272B2 (ja) * 2006-10-18 2011-12-28 株式会社日立製作所 論理区画ごとに電源を管理する計算機システム、ストレージ装置及びそれらの制御方法
US7606976B2 (en) * 2006-10-27 2009-10-20 Advanced Micro Devices, Inc. Dynamically scalable cache architecture
US20080120471A1 (en) * 2006-11-06 2008-05-22 On Demand Microelectronics Method and apparatus for least-recently-used replacement of a block frame in an electronic memory device
JP4519151B2 (ja) * 2007-03-20 2010-08-04 富士通株式会社 キャッシュ制御回路
JP5224959B2 (ja) 2008-07-29 2013-07-03 株式会社東芝 キャッシュシステム
US8347037B2 (en) 2008-10-22 2013-01-01 International Business Machines Corporation Victim cache replacement
US8209489B2 (en) 2008-10-22 2012-06-26 International Business Machines Corporation Victim cache prefetching
US8499124B2 (en) * 2008-12-16 2013-07-30 International Business Machines Corporation Handling castout cache lines in a victim cache
US8117397B2 (en) * 2008-12-16 2012-02-14 International Business Machines Corporation Victim cache line selection
US8225045B2 (en) * 2008-12-16 2012-07-17 International Business Machines Corporation Lateral cache-to-cache cast-in
US8489819B2 (en) * 2008-12-19 2013-07-16 International Business Machines Corporation Victim cache lateral castout targeting
US8949540B2 (en) * 2009-03-11 2015-02-03 International Business Machines Corporation Lateral castout (LCO) of victim cache line in data-invalid state
US8285939B2 (en) * 2009-04-08 2012-10-09 International Business Machines Corporation Lateral castout target selection
US8327073B2 (en) * 2009-04-09 2012-12-04 International Business Machines Corporation Empirically based dynamic control of acceptance of victim cache lateral castouts
US8312220B2 (en) * 2009-04-09 2012-11-13 International Business Machines Corporation Mode-based castout destination selection
US8347036B2 (en) * 2009-04-09 2013-01-01 International Business Machines Corporation Empirically based dynamic control of transmission of victim cache lateral castouts
JP5338905B2 (ja) * 2009-05-29 2013-11-13 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
US8230176B2 (en) * 2009-06-26 2012-07-24 International Business Machines Corporation Reconfigurable cache
JP5625809B2 (ja) * 2009-12-25 2014-11-19 富士通株式会社 演算処理装置、情報処理装置及び制御方法
US9189403B2 (en) * 2009-12-30 2015-11-17 International Business Machines Corporation Selective cache-to-cache lateral castouts
US8285950B2 (en) 2010-06-03 2012-10-09 International Business Machines Corporation SMT/ECO mode based on cache miss rate
US8589627B2 (en) * 2010-08-27 2013-11-19 Advanced Micro Devices, Inc. Partially sectored cache
US8484420B2 (en) * 2010-11-30 2013-07-09 International Business Machines Corporation Global and local counts for efficient memory page pinning in a multiprocessor system
CN103597545B (zh) 2011-06-09 2016-10-19 株式会社半导体能源研究所 高速缓冲存储器及其驱动方法
JP6012263B2 (ja) 2011-06-09 2016-10-25 株式会社半導体エネルギー研究所 半導体記憶装置
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US8954017B2 (en) * 2011-08-17 2015-02-10 Broadcom Corporation Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
JP5458132B2 (ja) * 2012-03-13 2014-04-02 株式会社東芝 キャッシュ装置
JP5498526B2 (ja) * 2012-04-05 2014-05-21 株式会社東芝 キャッシュシステム
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US9135182B2 (en) * 2012-06-01 2015-09-15 Semiconductor Energy Laboratory Co., Ltd. Central processing unit and driving method thereof
JP5954112B2 (ja) * 2012-10-24 2016-07-20 富士通株式会社 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
US9304932B2 (en) 2012-12-20 2016-04-05 Qualcomm Incorporated Instruction cache having a multi-bit way prediction mask
US9021207B2 (en) * 2012-12-20 2015-04-28 Advanced Micro Devices, Inc. Management of cache size
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
KR102027573B1 (ko) * 2013-06-26 2019-11-04 한국전자통신연구원 캐시 메모리 제어 방법 및 그 장치
KR101490072B1 (ko) * 2014-01-28 2015-02-06 한양대학교 산학협력단 캐시의 전력 제어를 위한 장치 및 방법
US9612970B2 (en) * 2014-07-17 2017-04-04 Qualcomm Incorporated Method and apparatus for flexible cache partitioning by sets and ways into component caches
US11281586B2 (en) * 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof
CN109390027B (zh) * 2017-08-08 2021-05-07 慧荣科技股份有限公司 解码方法及相关的闪存控制器与电子装置
CN112954449B (zh) * 2021-01-29 2023-03-24 浙江大华技术股份有限公司 视频流处理方法、系统、电子装置和存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01290051A (ja) 1988-05-18 1989-11-21 Nec Corp キヤツシユメモリ付きデータ処理装置
JPH0520193A (ja) 1991-07-15 1993-01-29 Oki Electric Ind Co Ltd キヤツシユ・メモリ装置
US5465342A (en) 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
JPH08241208A (ja) 1995-03-06 1996-09-17 Fujitsu Ltd キャッシュの情報表示システム
JPH0950401A (ja) 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US6138209A (en) * 1997-09-05 2000-10-24 International Business Machines Corporation Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
JP2954178B1 (ja) 1998-06-26 1999-09-27 甲府日本電気株式会社 可変式キャッシュ方式
JP2000298618A (ja) 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP2002049529A (ja) 2000-08-04 2002-02-15 Sega Corp キャッシュメモリ制御装置及びそれを利用したゲーム装置
EP1182567B1 (en) * 2000-08-21 2012-03-07 Texas Instruments France Software controlled cache configuration
US6983388B2 (en) 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
JP2002236616A (ja) 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
JP2003131945A (ja) 2001-10-25 2003-05-09 Hitachi Ltd キャッシュメモリ装置
US6848025B2 (en) * 2001-10-26 2005-01-25 Elan Research, Inc. Method and system for programmable replacement mechanism for caching devices
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130115090A (ko) * 2010-05-11 2013-10-21 어드밴스드 마이크로 디바이시즈, 인코포레이티드 캐시 제어를 위한 방법 및 장치
KR101673500B1 (ko) 2010-05-11 2016-11-07 어드밴스드 마이크로 디바이시즈, 인코포레이티드 캐시 제어를 위한 방법 및 장치

Also Published As

Publication number Publication date
JP2005316842A (ja) 2005-11-10
US7437513B2 (en) 2008-10-14
US20050246499A1 (en) 2005-11-03

Similar Documents

Publication Publication Date Title
JP3834323B2 (ja) キャッシュメモリおよびキャッシュ制御方法
Jain et al. Back to the future: Leveraging Belady's algorithm for improved cache replacement
US7783836B2 (en) System and method for cache management
US10540287B2 (en) Spatial memory streaming confidence mechanism
JP4045296B2 (ja) キャッシュメモリ及びその制御方法
US8856452B2 (en) Timing-aware data prefetching for microprocessors
US20080114964A1 (en) Apparatus and Method for Cache Maintenance
Sethumurugan et al. Designing a cost-effective cache replacement policy using machine learning
US9418019B2 (en) Cache replacement policy methods and systems
US20080250207A1 (en) Design structure for cache maintenance
US11403525B2 (en) Using reinforcement learning to dynamically tune cache policy parameters
JP2017503299A (ja) モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
US20020152361A1 (en) Directed least recently used cache replacement method
JP2017503298A (ja) アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択
Rodriguez-Rodriguez et al. Reducing writes in phase-change memory environments by using efficient cache replacement policies
CN114631082B (zh) 高速缓存访问测量偏斜校正
WO2023173991A1 (en) Cache line compression prediction and adaptive compression
US9218292B2 (en) Least-recently-used (LRU) to first-dirty-member distance-maintaining cache cleaning scheduler
JP2019164659A (ja) 情報処理装置、情報処理方法およびプログラム
Gawanmeh et al. Enhanced Not Recently Used Algorithm for Cache Memory Systems in Mobile Computing
WO2023173995A1 (en) Cache line compression prediction and adaptive compression
KR101704936B1 (ko) 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템
JP7366122B2 (ja) プロセッサのフィルタリングされた分岐予測構造
Bournoutian et al. Application-aware adaptive cache architecture for power-sensitive mobile processors
Athni et al. Improved Cache Replacement Policy based on Recency Time Re-Reference Interval Prediction

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060721

R150 Certificate of patent or registration of utility model

Ref document number: 3834323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees