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

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

Info

Publication number
JP4669244B2
JP4669244B2 JP2004222402A JP2004222402A JP4669244B2 JP 4669244 B2 JP4669244 B2 JP 4669244B2 JP 2004222402 A JP2004222402 A JP 2004222402A JP 2004222402 A JP2004222402 A JP 2004222402A JP 4669244 B2 JP4669244 B2 JP 4669244B2
Authority
JP
Japan
Prior art keywords
address
cache
way
processor
block
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
JP2004222402A
Other languages
English (en)
Other versions
JP2006040176A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004222402A priority Critical patent/JP4669244B2/ja
Priority to US10/995,183 priority patent/US7636811B2/en
Priority to EP04257449.1A priority patent/EP1622030B1/en
Publication of JP2006040176A publication Critical patent/JP2006040176A/ja
Application granted granted Critical
Publication of JP4669244B2 publication Critical patent/JP4669244B2/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/1032Reliability improvement, data loss prevention, degraded operation etc

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置などに関し、特に、アプリケーションにおける性能を低減させることなくキャッシュ容量を縮小可能なキャッシュメモリ装置およびメモリ制御方法に関するものである。
近年、CPU(Central Processing Unit)の高速化に伴い、メインメモリの処理速度がCPUに追いつかなくなっており、メインメモリのデータアクセス中にCPUが処理を一時中断して待ち状態に陥るメモリ遅延の問題が深刻化している。
そこで、多くのシステムでは、CPUとメインメモリの間に高速なキャッシュメモリを設けて、両者の速度差を緩和している。ところで、キャッシュメモリの連想方式には、ダイレクトマッピング方式、フルアソシエイティブ方式およびセットアソシエイティブ方式など様々な方式が存在するが、中でもセットアソシエイティブ方式が多く利用されている。
このセットアソシエイティブ方式は、キャッシュラインを複数のウェイに分割し、それぞれのウェイに対してダイレクトマッピング方式を利用する方式であり、一般的にはウェイ数が多いほどヒット率が向上することとなる。
また、キャッシュメモリ内に欠陥が生じた場合、従来のセットアソシエイティブ方式に係る技術ではLSI(Large Scale Integration)の製造歩留まりなどの観点から、欠陥を含んだウェイの機能を停止させ、欠陥の生じた部分の利用を避けている。
なお、特許文献1に記載されたキャッシュ機構では、ブロックデータのサイズであるラインサイズを変更することによってキャッシュの効率を向上させる技術が公開されており、特許文献2に記載されたキャッシュメモリシステムでは、効率的にキャッシュメモリを再構成する技術が公開されている。
特開2001−216193号公報 特開平5−241962号公報
しかしながら、従来に係る技術では、キャッシュメモリ内に欠陥などが存在し、キャッシュ容量を縮小する場合に、対応するウェイの機能を停止するため、実アプリケーションにおける性能が悪くなるという問題があった。
すなわち、数百〜数十個のウェイを採用するセットアソシエイティブ方式のキャッシュメモリでは、欠陥などの存在するウェイ機能を停止させても特に問題とならないが、一般のPC(Personal Computer)向けのキャッシュメモリでは、僅か4ウェイのセットアソシエイティブ方式が多く採用されているため、該セットアソシエイティブ方式の対応するウェイ機能を停止させることは、アプリケーションに係る性能が著しく低下することとなる。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、アプリケーションにおける性能を低減させることなくキャッシュ容量を縮小することができるキャッシュメモリ装置およびメモリ制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置であって、前記キャッシュメモリ装置は、複数のブロックに分割されたウェイを複数有する、データを記憶する記憶部を有し、キャッシュ容量を縮小する場合に、前記記憶部が有するウェイの一部のブロックの機能を停止させることによりウェイ数を減らすことなくライン方向の機能を停止させることを特徴とする。
また、本発明は、複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置であって、複数のブロックに分割されたウェイを保持する保持手段と、前記プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得するアクセスアドレス取得手段と、前記アクセスアドレスおよび前記保持手段が保持する各ウェイのブロックの停止状態を基にして、前記プロセッサが要求するデータにヒットしたか否かを判定する判定処理手段と、を備えたことを特徴とする。
また、本発明は、上記発明において、前記ブロックは、エントリアドレスと、対応するタグが有効か否かの情報を含むステータスビットとを有するタグ情報を有し、前記判定処理手段は、前記保持手段が保持する各ウェイのブロックの停止状態に基づいて、ウェイの全てのキャッシュ容量が使用される場合のエントリアドレスである第1のエントリアドレスと、ウェイの一部のブロックが停止状態となっている場合に、使用されているエントリアドレス部の利用領域を変更することなく、第1のエントリアドレスとは異なるビットを使用するエントリアドレスである第2のエントリアドレスとのいずれかのエントリアドレスを選択し、選択したエントリアドレスと前記タグ比較アドレスとを比較して、前記プロセッサが要求するデータにヒットしたか否かを判定することを特徴とする。
また、本発明は、上記発明において、前記ラインアドレスは、ウェイに含まれるブロックを特定する特定情報を含み、該特定情報によってウェイに含まれる複数のブロックのうち一つのブロックが特定されることを特徴とする。
また、本発明は、上記発明において、前記ブロックは、複数のタグ情報を含み、キャッシュ容量の使用状況によって、前記タグ情報のアドレス構成が変更されることを特徴とする。
また、本発明は、上記発明において、前記判定処理手段は、キャッシュ容量の使用状況によって、使用するウェイおよびブロックを予め特定しておくことを特徴とする。
また、本発明は、上記発明において、前記タグ比較アドレスは、キャッシュ容量の使用状況によって、アドレス構成が変更されることを特徴とする。
また、本発明は、複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置に適用されるメモリ制御方法であって、前記プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得するアクセスアドレス取得工程と、前記アクセスアドレスおよび各ウェイを複数のブロックに分割されて得られる各ブロックの停止状態を基にして、前記プロセッサが要求するデータにヒットしたか否かを判定する判定処理工程と、を含んだことを特徴とする。
また、本発明は、上記発明において、前記判定処理工程は、各ウェイのブロックの停止状態に基づいて、ウェイの全てのキャッシュ容量が使用される場合のエントリアドレスである第1のエントリアドレスと、ウェイの一部のブロックが停止状態となっている場合に、使用されているエントリアドレス部の利用領域を変更することなく、第1のエントリアドレスとは異なるビットを使用するエントリアドレスである第2のエントリアドレスとのいずれかのエントリアドレスを選択し、選択したエントリアドレスと、前記タグ比較アドレスとを比較して、前記プロセッサが要求するデータにヒットしたか否かを判定することを特徴とする。
本発明によれば、複数のブロックに分割されたウェイを保持する保持手段を有し、プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得し、アクセスアドレスと、保持手段が保持する各ウェイのブロックの停止状態とを基にして、プロセッサが要求するデータにヒットしたか否かを判定するので、ウェイ数を減らすことなくキャッシュ容量を縮小することができ、アプリケーションにおける性能の低減を防止するという効果を奏する。
以下に添付図面を参照して、この発明に係るキャッシュメモリ装置およびメモリ制御方法の好適な実施の形態を詳細に説明する。
本実施例に係るキャッシュメモリ装置は、n(nは1より大きい)ウェイセットアソシエイティブ方式のキャッシュメモリであり、ブロックに欠陥が生じキャッシュ容量を小さくする場合に、ライン方向に機能を停止させることによって、ウェイ数を減少させることなく、キャッシュ容量縮小に対応する。
なお、本実施例に係るキャッシュメモリ装置は、プロセッサに内蔵することやプロセッサに付加させることが可能であるが、以降の説明では、図1に示すように、キャッシュメモリ装置200が、プロセッサ100に直接接続されていると共に、メインメモリ300へのアクセスは、キャッシュ200を介して行われるシステムを例に挙げて説明する。
図2は、本実施例に係るキャッシュメモリ装置200の構成を示す機能ブロック図である。同図に示すように、キャッシュメモリ装置200は、キャッシャブルメモリアクセス空間210と、記憶部220と、キャッシュヒット検出部230と、データ選択部240とを有する。
キャッシャブルメモリアクセス空間210は、プロセッサ100からメモリアクセスアドレスを受付ける。なお、プロセッサ100から受付けるメモリアクセスアドレスは、記憶部220(記憶部220に関する説明は後述する)に含まれるキャッシュ容量を全て使用する場合と、キャッシュ容量をライン方向に縮小する場合とで異なる。
図3に、キャッシュ容量を全て使用する場合の、メモリアクセスアドレスの一例を示す。同図に示すように、メモリアクセスアドレスは、全42ビットで構成され、41ビット目から20ビット目がタグ比較アドレスとなり、19ビット目から6ビット目がラインアドレスとなる。なお、本実施例では、メモリアクセスアドレスが全42ビットで構成される例を示すが、これに限定されるものではない。
ここで、ラインアドレスは、記憶部220に含まれるデータの位置を特定するためのものであり、タグ比較アドレスは、ラインアドレスによって特定されるデータがプロセッサ100の検索中のデータか否かを判定するための情報である。
また、図4に、キャッシュ容量をライン方向に縮小する場合の、メモリアクセスアドレスの一例を示す。同図に示すように、メモリアクセスアドレスは、全41ビットで構成され、40ビット目から19ビット目がタグ比較アドレスとなり、18ビット目から6ビット目がラインアドレスとなる。すなわち、図3に示すメモリアクセスアドレスと、図4に示すメモリアクセスアドレスとの違いは、19番目のビットをラインアドレスに含ませるか、タグ比較アドレスに含ませるかの違いとなる。
なお、後述するように、キャッシュ容量を全て使用する場合のラインアドレスは、19番目のビットが、記憶部220に含まれるブロックを選択する場合に利用されることとなる。
キャッシャブルメモリアクセス空間210は、受付けたメモリアクセスアドレスに含まれるタグ比較アドレスおよびラインアドレスをそれぞれタグ比較アドレス部210aおよびラインアドレス部210bに格納する。なお、下位ビット210cにはその他のデータが格納される。
タグ比較アドレス部210aに格納されたタグ比較アドレスは、キャッシュヒット検出部230(キャッシュヒット検出部230に関しては後述する)に渡され、ラインアドレス部210bに格納されたラインアドレスは、記憶部220に渡される。
次に、記憶部220について説明する。記憶部220は、2ブロックに分割された複数のウェイを保持する。また、各ブロックには複数のラインが存在し、ラインごとにデータが格納される。なお、記憶部220に含まれるラインの数とウェイの数を乗算したものが、データの総量となる。また本実施例では、各ウェイが2ブロックに分割された場合を示すが、本発明を2ブロック以上に分割されたウェイに適応してもよい。
図5に記憶部220のデータ構造の一例を示す。同図に示すように、記録部220は、ウェイ0のブロック0およびブロック1と、ウェイ1のブロック0およびブロック1と、ウェイ2のブロック0およびブロック1と、ウェイ3のブロック0およびブロック1とを有する。なお、ここでは説明の便宜上、4個のウェイ(ウェイ0〜3)を保持する場合を示すが、この記憶部220は、任意数のウェイを保持しても良い。
また、各ブロックは、ライン毎に、ラインアドレス220aと、タグ220bと、データ220cとを有する。ラインアドレス220aは、対応するタグ220bおよびデータ220cの位置を示す情報である。また、ラインアドレス220aは、キャッシャブルメモリアクセス空間210から渡されるラインアドレスである。
そして、キャッシャブルメモリアクセス空間210から渡されるラインアドレスと同一のラインアドレスに対応するタグが、キャッシュヒット検出部230に渡される。なお、キャッシュ容量を全て使用する場合には、ラインアドレスに含まれる先頭ビットの値を参照して、各ウェイのブロック0を利用するか、ブロック1を利用するか判定することになる。
具体的には、ラインアドレスに含まれる先頭ビットの値が「1」の場合には、ブロック0が利用され、ラインアドレスに含まれる先頭ビットの値が「0」の場合には、ブロック1が利用されることになる。キャッシュ容量を全て使用する場合の割付の一例を図6に示す。またこの場合、ラインアドレスの先頭アドレスは、ブロックを識別するために利用されるので、先頭アドレスを除いた残りのアドレスを用いて、対応するタグを検索する。
一方、キャッシュ容量をライン方向に縮小する場合には、ウェイごとにenbblk[n]と呼ばれる信号を使用する。ここで、nは各ウェイを特定するための情報が格納される(n=0ならばウェイ0を示し、n=1ならばウェイ1を示し、n=2ならばウェイ2を示し、n=3ならばウェイ3を示す)。このenbblk[n]を利用することによって、製造不良などによって使用できないブロックを避けることができる。
例えば、ウェイ0のブロック0に欠陥が存在する場合には、enbblk[0]を“1”に設定することによって、ウェイ0のブロック0の利用を避けることができる。同様に、ウェイ2のブロック1に欠陥が存在する場合には、enbblk[2]を“0”に設定することによって、ウェイ2のブロック1の利用を避けることができる。キャッシュ容量をライン方向に縮小する場合の割付の一例を図7に示す。なお、enbblk[n]信号は、予め、キャッシュヒット検出部230に設定されている。
タグ210bは、キャッシュヒット検出部230に送信され、タグ210bに含まれるエントリアドレスと、タグ比較アドレスとが比較される。図8にタグ210bのデータ構造の一例を示す。
図8に示すように、タグ220bは、エントリアドレス部と、ステータスビット部とを有する。また、タグ220bは、全22ビットで構成され、41ビット目から20ビット目までがエントリアドレス部となり、そのほかのビットがステータスビット部となる。
また、エントリアドレス部の最上位ビットを「M」とする。この「M」は、キャッシュ容量を全て使用する場合と、キャッシュ容量をライン方向に縮小する場合とで対応するビットが異なる。具体的には、キャッシュ容量を全て使用する場合には、「M」を41番目のビットに対応させ、キャッシュ容量をライン方向に縮小する場合には、「M」を19番目のビットに対応させる。
すなわち、キャッシュ容量を全て使用する場合には、エントリアドレスが、41ビットから20ビットまでとなるが、キャッシュ容量をライン方向に縮小する場合には、エントリアドレスが、40ビットから19ビットとなる。また、「M」を利用することによって、エントリアドレス部の利用領域を変更する必要がないため、キャッシュメモリに係るエントリアドレス部を再設計する必要がなくコストを抑えることができる。
ステータスビット部には、対応するタグが有効か否かの情報が含まれる。このタグが有効か否かの情報は、タグバリッドとして、キャッシュヒット検出部230によって利用されることになる。
次に、キャッシュヒット検出部230の説明を行う。本実施例に係るキャッシュヒット検出部230は、キャッシャブルメモリアクセス空間210から渡されるタグ比較アドレスや、記憶部220に含まれる各ウェイのタグに含まれるエントリアドレスなどを比較して、対応するデータがヒットしたか否かを判定し、判定結果をデータ選択部240に渡す。
なお、キャッシュヒット検出部230は、ヒット検出回路と、タグバリッド相当信号作成回路とを含む。すなわち、キャッシュヒット検出部230は、ヒット検出回路およびタグバリッド相当信号作成回路を利用して、対応するデータにヒットしたか否かを判定する。
図9にヒット検出回路の一例を示す。なお、ここでは、ウェイ0に対してヒットしたか否かを判定するヒット検出回路の例を示すが、ウェイ1〜3に関しても同様のヒット検出回路を利用することによって、データがヒットしたか否かを判定可能である。
図9に示すように、ヒット検出回路は、複数のXOR演算子、AND演算子およびOR演算子を有する。なお、XOR演算子の出力にはインバータが取り付けられているため、XOR演算子から出力される値は反転される。
また、図9に示すように、XOR演算子230aには、ウェイ0のブロック0のタグエントリアドレス(タグを構成する全22ビットの内、40ビット目から20ビット目まで)と、メモリアクセス要求のタグ比較アドレス(メモリアクセスアドレスを構成する全42ビットの内、40ビット目から20ビット目まで)とが入力される。
そして、XOR演算子230aは、タグエントリアドレスと、タグ比較アドレスとを基にXOR演算を行う。演算結果の値は、インバータによって反転された後、AND演算子230dに入力される。具体的には、演算結果の値が「1」ならば、AND演算子230dには反転された「0」が入力される。
XOR演算子230bには、ウェイ0のブロック0のタグエントリアドレスに係る最上位アドレス「M」と、メモリアクセス要求のタグ比較アドレスのキャッシュ容量の使用状況に応じた値が「Mt」として入力される。具体的には、キャッシュ容量を全て使用する場合には、「Mt」には、タグ比較アドレスの先頭のビットが入力される。
一方、キャッシュ容量をライン方向に縮小する場合は、タグ比較アドレスの最後尾のビットが「Mt」に入力される。すなわち、キャッシュ容量を全て利用する場合には、メモリアクセスアドレスに係る41番目のビットが「Mt」に入力され、キャッシュ容量をライン方法に縮小する場合には、メモリアクセスアドレスに係る19番目のビットが「Mt」に入力される。
そして、XOR演算子230bは、タグエントリアドレスの「M」と、タグ比較アドレスの「Mt」とを基にXOR演算を行う。演算結果の値は、インバータによって反転された後、AND演算子230dに入力される。
AND演算子230cは、後述するタグバリッド相当信号作成回路によって作成されるタグバリッドに相当する信号と、ウェイ0の機能を有効とする信号とが入力される。なお、ウェイ0の機能を有効にする場合には「1」が入力され、ウェイ1の機能を無効にする場合は「0」が入力される。なお、ウェイ0の機能を有効にするか否かは予め、キャッシュヒット検出部230に設定されている。
AND演算子230dには、XOR演算子230aの出力値がインバータによって反転された値と、XOR演算子230bの出力値がインバータによって反転された値とが入力される。そして、AND演算子230dは、XOR演算子230aおよび230bから入力された値を基にして、AND演算を行い、演算結果をAND演算子230eに入力する。
AND演算子230eは、AND演算子230dおよびAND演算子230cの出力値を受付け、受付けた値を基に、AND演算を行う。そして、演算結果をOR演算子230fに入力する。
なお、XOR演算子230g、XOR演算子230h、AND演算子230i、AND演算子230jおよびAND演算子230kは、上述したXOR演算子230a、XOR演算子230b、AND演算子230c、AND演算子230dおよびAND演算子230eとほぼ同様であるため説明を省略する。
OR演算子230fは、AND演算子230eおよびAND演算子230kから入力される値を基にOR演算を実行し、演算結果を出力する。なお、OR演算子230fから出力される値が「1」ならば、ヒットしたことを示し、出力される値が「0」ならば、ミスしたことを示す。キャッシュヒット検出部230は、対応するデータがヒットしたか否かの情報を後述するデータ選択部240に通知することになる。
なお、図9では、ウェイ0に係るヒット検出回路を示したが、ウェイ1〜3に関しても同様のヒット検出回路を利用して、ヒット検出を行うことができる。ここでは、ウェイ1〜3に係るヒット検出回路の説明は省略する。
次に、図9に示したタグバリッドに相当する信号を作成するタグバリッド相当信号作成回路の説明をおこなう。図10は、タグバリッド相当信号作成回路の一例を示す図である。同図に示すように、このタグバリッド相当信号作成回路は複数のAND演算子およびOR演算子から構成される。
AND演算子235aは、上述したenbblk[n]信号が反転した値と、キャッシュ容量の使用状態に係るモードの信号(以下、モード信号と表記する)とを受付け、受付けた値を基にしてAND演算を実行し、演算結果の値をOR演算子235bに入力する。なお、ウェイ0に係るenbblk[n]信号はenbblk[0]となる。
ここで、モード信号として入力される値は、キャッシュ容量を全て使用する場合には、「0」となり、キャッシュ容量をライン方向に縮小する場合には、「1」となる。なお、このモード信号は、キャッシュヒット検出部230に予め設定されている。また、OR演算子235bは、モード信号を反転した値と、OR演算子235aから入力される値を基にして、OR演算を行い、演算結果の数値をAND演算子235cに出力する。
AND演算子235cは、OR演算子235eから入力される値と、ブロック0に係るタグのステータスビット部に含まれるタグが有効か否かの情報(以下、タグバリッドと表記する)を基にして、AND演算を実行し、演算結果を図9に示すAND演算子230cに出力する。
AND演算子235dは、上述したモード信号と、enbblk[0]を受付け、受付けた値を基にして、AND演算を実行し、演算結果の値をOR演算子235eに出力する。また、OR演算子235eは、AND演算子235dの演算結果の値と、モード信号の値を反転した値を受付け、受付けた値を基にして、OR演算を実行し、演算結果の値をAND演算子235fに出力する。
AND演算子235fは、OR演算子235eの演算結果の値と、ウェイ0のブロック1のタグステータスからのタグバリッドを基にして、AND演算を実行し、演算結果の値を図9に示すAND演算子230iに出力する。なお、ここでは、ウェイ0に係るタグバリッド相当信号作成回路を示したが、ウェイ1〜3に関しても同様のタグバリッド相当信号作成回路を利用する。本実施例では、ウェイ1〜3に係るタグバリッド相当信号作成回路の説明は省略する。
このように、キャッシュヒット検出部230に予め、モード信号、各enbblk[n]信号および各ウェイの有効または無効に係る信号を設定しておくことによって、ウェイ数を減少させることなく、キャッシュ容量を縮小することができる。また、各ウェイの機能を有効する信号を利用することによって、従来どおり、ウェイ数を減少させて、キャッシュ容量を縮小させることもできる。すなわち、キャッシュメモリ装置の各ブロックに存在する欠陥に応じて、臨機応変に該当するウェイまたは、ラインを停止させ、キャッシュ容量の縮小に対応することができる。
データ選択部240は、キャッシュヒット検出部230からデータがヒットしたか否かの情報を受取り、ヒットした旨の情報を受取った場合には、対応するデータを記憶部220から検索し、検索したデータをプロセッサ100に渡す。なお、データ選択部240は、対応するデータが記憶部220に存在しない場合には、対応するデータをメモリ300に要求することとなる。
上述してきたように、本実施例に係るキャッシュメモリ装置200は、キャッシャブルメモリアクセス空間210がキャッシュ容量の使用状態に応じて、データ構造の異なったメモリアクセスアドレスをプロセッサ100から受付け、キャッシュヒット検出部230が予め設定されたモード信号、enbblk[n]信号および各ウェイの有効または無効に係る信号、キャッシャブル空間210から受付けるタグ比較アドレスおよび記憶装置220から受付けるタグを基にして、データがヒットしたか否かを判定するので、ウェイ数を減らすことなくキャッシュ容量を縮小することができ、アプリケーションにおける性能の低減を防ぐことができる。
(付記1)複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置であって、
キャッシュ容量を縮小する場合に、データを記憶する記憶部のウェイ方向またはライン方向の機能を停止させること
を特徴とするキャッシュメモリ装置。
(付記2)前記記憶部は、複数のウェイを有し、該ウェイは複数のブロックに分割されていることを特徴とする付記1に記載のキャッシュメモリ装置。
(付記3)複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置であって、
前記プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得するアクセスアドレス取得手段と、
前記アクセスアドレスおよび各ウェイの状態を基にして、前記プロセッサが要求するデータにヒットしたか否かを判定する判定処理手段と、
を備えたことを特徴とするキャッシュメモリ装置。
(付記4)複数のブロックに分割されたウェイを保持する保持手段を更に備えたことを特徴とする付記3に記載のキャッシュメモリ装置。
(付記5)前記ラインアドレスは、ウェイに含まれるブロックを特定する特定情報を含み、該特定情報によってウェイに含まれる複数のブロックのうち一つのブロックが特定されることを特徴とする付記4に記載のキャッシュメモリ装置。
(付記6)前記ブロックは、複数のタグ情報を含み、キャッシュ容量の使用状況によって、前記タグ情報のアドレス構成が変更されることを特徴とする付記4に記載のキャッシュメモリ装置。
(付記7)前記判定処理手段は、キャッシュ容量の使用状況によって、使用するウェイおよびブロックを予め特定しておくことを特徴とする付記4に記載のキャッシュメモリ装置。
(付記8)前記タグ比較アドレスは、キャッシュ容量の使用状況によって、アドレス構成が変更されることを特徴とする付記3に記載のキャッシュメモリ装置。
(付記9)複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置に適用されるメモリ制御方法であって、
前記プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得するアクセスアドレス取得工程と、
前記アクセスアドレスおよび各ウェイの状態を基にして、前記プロセッサが要求するデータにヒットしたか否かを判定する判定処理工程と、
を含んだことを特徴とするメモリ制御方法。
以上のように、本発明にかかるキャッシュメモリ装置およびメモリ制御方法は、アプリケーションにおける性能を維持しつつ、キャッシュメモリの容量を縮小させる場合に適している。
本実施例に係るキャッシュメモリを説明する図である。 本実施例に係るキャッシュメモリの構成を示す機能ブロック図である。 キャッシュ容量を全て利用する場合の、メモリアクセスアドレスの一例を示す図である。 キャッシュ容量をライン方向に縮小する場合の、メモリアクセスアドレスの一例を示す図である。 記憶部のデータ構造の一例を示す図である。 キャッシュ容量を全て使用する場合の割付の一例を示す図である。 キャッシュ容量をライン方向に縮小する場合の割付の一例を示す図である。 タグのデータ構造の一例を示す図である。 ヒット検出回路の一例を示す図である。 タグバリッド相当信号作成回路の一例を示す図である。
符号の説明
100 プロセッサ
200 キャッシュメモリ装置
210 キャッシャブルメモリアクセス空間
220 記憶部
230 キャッシュヒット検出部
240 データ選択部
300 メインメモリ

Claims (9)

  1. 複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置であって、
    前記キャッシュメモリ装置は、複数のブロックに分割されたウェイを複数有する、データを記憶する記憶部を有し、
    キャッシュ容量を縮小する場合に、前記記憶部が有するウェイの一部のブロックの機能を停止させることによりウェイ数を減らすことなくライン方向の機能を停止させること
    を特徴とするキャッシュメモリ装置。
  2. 複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置であって、
    複数のブロックに分割されたウェイを保持する保持手段と、
    前記プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得するアクセスアドレス取得手段と、
    前記アクセスアドレスおよび前記保持手段が保持する各ウェイのブロックの停止状態を基にして、前記プロセッサが要求するデータにヒットしたか否かを判定する判定処理手段と、
    を備えたことを特徴とするキャッシュメモリ装置。
  3. 前記ブロックは、エントリアドレスと、対応するタグが有効か否かの情報を含むステータスビットとを有するタグ情報を有し、
    前記判定処理手段は、前記保持手段が保持する各ウェイのブロックの停止状態に基づいて、ウェイの全てのキャッシュ容量が使用される場合のエントリアドレスである第1のエントリアドレスと、ウェイの一部のブロックが停止状態となっている場合に、使用されているエントリアドレス部の利用領域を変更することなく、第1のエントリアドレスとは異なるビットを使用するエントリアドレスである第2のエントリアドレスとのいずれかのエントリアドレスを選択し、選択したエントリアドレスと前記タグ比較アドレスとを比較して、前記プロセッサが要求するデータにヒットしたか否かを判定する
    ことを特徴とする請求項に記載のキャッシュメモリ装置。
  4. 前記ラインアドレスは、ウェイに含まれるブロックを特定する特定情報を含み、該特定情報によってウェイに含まれる複数のブロックのうち一つのブロックが特定されることを特徴とする請求項に記載のキャッシュメモリ装置。
  5. 前記ブロックは、複数のタグ情報を含み、キャッシュ容量の使用状況によって、前記タグ情報のアドレス構成が変更されることを特徴とする請求項に記載のキャッシュメモリ装置。
  6. 前記判定処理手段は、キャッシュ容量の使用状況によって、使用するウェイおよびブロックを予め特定しておくことを特徴とする請求項に記載のキャッシュメモリ装置。
  7. 前記タグ比較アドレスは、キャッシュ容量の使用状況によって、アドレス構成が変更されることを特徴とする請求項に記載のキャッシュメモリ装置。
  8. 複数のウェイを有するセットアソシエイティブ方式が採られると共に、プロセッサからの要求に応じて、該当するデータをプロセッサに渡すキャッシュメモリ装置に適用されるメモリ制御方法であって、
    前記プロセッサの要求するデータの位置を示すラインアドレスと、該ラインアドレスによって特定されるデータが適切か否かを判定するためのタグ比較アドレスとを含んだアクセスアドレスを取得するアクセスアドレス取得工程と、
    前記アクセスアドレスおよび各ウェイを複数のブロックに分割されて得られる各ブロックの停止状態を基にして、前記プロセッサが要求するデータにヒットしたか否かを判定する判定処理工程と、
    を含んだことを特徴とするメモリ制御方法。
  9. 前記判定処理工程は、各ウェイのブロックの停止状態に基づいて、ウェイの全てのキャッシュ容量が使用される場合のエントリアドレスである第1のエントリアドレスと、ウェイの一部のブロックが停止状態となっている場合に、使用されているエントリアドレス部の利用領域を変更することなく、第1のエントリアドレスとは異なるビットを使用するエントリアドレスである第2のエントリアドレスとのいずれかのエントリアドレスを選択し、選択したエントリアドレスと、前記タグ比較アドレスとを比較して、前記プロセッサが要求するデータにヒットしたか否かを判定する
    ことを特徴とする請求項8に記載のメモリ制御方法。
JP2004222402A 2004-07-29 2004-07-29 キャッシュメモリ装置およびメモリ制御方法 Expired - Fee Related JP4669244B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004222402A JP4669244B2 (ja) 2004-07-29 2004-07-29 キャッシュメモリ装置およびメモリ制御方法
US10/995,183 US7636811B2 (en) 2004-07-29 2004-11-24 Cache memory and method of controlling memory
EP04257449.1A EP1622030B1 (en) 2004-07-29 2004-11-30 Cache memory and method of controlling memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004222402A JP4669244B2 (ja) 2004-07-29 2004-07-29 キャッシュメモリ装置およびメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2006040176A JP2006040176A (ja) 2006-02-09
JP4669244B2 true JP4669244B2 (ja) 2011-04-13

Family

ID=34930866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004222402A Expired - Fee Related JP4669244B2 (ja) 2004-07-29 2004-07-29 キャッシュメモリ装置およびメモリ制御方法

Country Status (3)

Country Link
US (1) US7636811B2 (ja)
EP (1) EP1622030B1 (ja)
JP (1) JP4669244B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4364166B2 (ja) * 2005-06-30 2009-11-11 株式会社東芝 キャッシュ装置
US7958456B2 (en) 2005-12-23 2011-06-07 Apple Inc. Scrolling list with floating adjacent index symbols
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
JP5231867B2 (ja) * 2008-05-23 2013-07-10 株式会社東芝 キャッシュメモリシステム
US8200907B2 (en) * 2008-12-18 2012-06-12 Lsi Corporation Compressed cache controller valid word status using pointers
US8572513B2 (en) 2009-03-16 2013-10-29 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
JP5397843B2 (ja) * 2009-08-18 2014-01-22 国立大学法人神戸大学 キャッシュメモリとそのモード切替方法
US8624933B2 (en) 2009-09-25 2014-01-07 Apple Inc. Device, method, and graphical user interface for scrolling a multi-section document
US11200542B2 (en) 2014-05-30 2021-12-14 Apple Inc. Intelligent appointment suggestions
CN116301544A (zh) 2014-06-27 2023-06-23 苹果公司 尺寸减小的用户界面
EP3129886B1 (en) * 2014-12-14 2019-10-02 VIA Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US10719434B2 (en) * 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228036A (ja) * 1988-03-08 1989-09-12 Mitsubishi Electric Corp キャッシュメモリ
EP0549508A1 (en) * 1991-12-26 1993-06-30 International Business Machines Corporation Reconfigurable multi-way associative cache memory
JPH08286974A (ja) * 1995-04-14 1996-11-01 Kofu Nippon Denki Kk キャッシュメモリ装置
JPH10334695A (ja) * 1997-05-27 1998-12-18 Toshiba Corp キャッシュメモリ及び情報処理システム
US5983322A (en) * 1997-04-14 1999-11-09 International Business Machines Corporation Hardware-managed programmable congruence class caching mechanism
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
US6470425B1 (en) * 1999-05-26 2002-10-22 Nec Corporation Cache line replacement threshold based on sequential hits or misses
JP2004038807A (ja) * 2002-07-05 2004-02-05 Fujitsu Ltd キャッシュメモリ装置およびメモリ割付方法
US20040088682A1 (en) * 2002-11-05 2004-05-06 Thompson Ryan C. Method, program product, and apparatus for cache entry tracking, collision detection, and address reasignment in processor testcases
US20050198442A1 (en) * 2004-03-02 2005-09-08 Mandler Alberto R. Conditionally accessible cache memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63259748A (ja) 1987-04-17 1988-10-26 Hitachi Ltd 階層記憶制御方式
JP2001216193A (ja) 2000-01-31 2001-08-10 Nec Corp キャッシュ機構およびキャッシュ機構の動作制御方法
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01228036A (ja) * 1988-03-08 1989-09-12 Mitsubishi Electric Corp キャッシュメモリ
EP0549508A1 (en) * 1991-12-26 1993-06-30 International Business Machines Corporation Reconfigurable multi-way associative cache memory
JPH05241962A (ja) * 1991-12-26 1993-09-21 Internatl Business Mach Corp <Ibm> 再構成可能なキャッシュ・メモリ・システム
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
JPH08286974A (ja) * 1995-04-14 1996-11-01 Kofu Nippon Denki Kk キャッシュメモリ装置
US5809535A (en) * 1995-04-14 1998-09-15 Nec Corporation Cache memory control apparatus utilizing a bit as a second valid bit in a tag in a first mode and as an additional address bit in a second mode
US5983322A (en) * 1997-04-14 1999-11-09 International Business Machines Corporation Hardware-managed programmable congruence class caching mechanism
JPH10334695A (ja) * 1997-05-27 1998-12-18 Toshiba Corp キャッシュメモリ及び情報処理システム
US6145055A (en) * 1997-05-27 2000-11-07 Kabushiki Kaisha Toshiba Cache memory having flags for inhibiting rewrite of replacement algorithm area corresponding to fault cell and information processing system having such a cache memory
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
US6470425B1 (en) * 1999-05-26 2002-10-22 Nec Corporation Cache line replacement threshold based on sequential hits or misses
JP2004038807A (ja) * 2002-07-05 2004-02-05 Fujitsu Ltd キャッシュメモリ装置およびメモリ割付方法
US20040088682A1 (en) * 2002-11-05 2004-05-06 Thompson Ryan C. Method, program product, and apparatus for cache entry tracking, collision detection, and address reasignment in processor testcases
US20050198442A1 (en) * 2004-03-02 2005-09-08 Mandler Alberto R. Conditionally accessible cache memory

Also Published As

Publication number Publication date
US7636811B2 (en) 2009-12-22
EP1622030A3 (en) 2007-12-05
US20060026356A1 (en) 2006-02-02
EP1622030B1 (en) 2015-04-01
EP1622030A2 (en) 2006-02-01
JP2006040176A (ja) 2006-02-09

Similar Documents

Publication Publication Date Title
US5257361A (en) Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation
JP5440067B2 (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US6170039B1 (en) Memory controller for interchanging memory against memory error in interleave memory system
JP7340326B2 (ja) メンテナンス動作の実行
JP4669244B2 (ja) キャッシュメモリ装置およびメモリ制御方法
JP4608011B2 (ja) 演算処理装置および演算処理方法
US8868835B2 (en) Cache control apparatus, and cache control method
US6745292B1 (en) Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
US5276850A (en) Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously
CN110046107B (zh) 存储器地址转换装置和方法
JP4750889B2 (ja) キャッシュメモリ制御装置、およびパイプライン制御方法
US5781922A (en) Page boundary caches
JP4833586B2 (ja) データキャッシュが内蔵された半導体集積回路およびそれの実速度テスト方法
US20040015669A1 (en) Method, system, and apparatus for an efficient cache to support multiple configurations
JPH02308349A (ja) バッファ記憶制御装置
JPH09218823A (ja) キャッシュメモリ制御装置
JP2006260378A (ja) 半導体集積回路
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
JPH1185613A (ja) キャッシュメモリ
JP3204098B2 (ja) 動的アドレスデコードキャッシュ制御方式
JPH01228036A (ja) キャッシュメモリ
JP2001051898A (ja) 階層キャッシュメモリのデータ参照方法、および、階層キャッシュメモリを含むデータ処理装置
JPH1031622A (ja) キャッシュメモリ装置
JPH077355B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100401

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: 20110111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110114

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4669244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees