JP3522140B2 - Way別hit/missカウンタおよびそのカウント方法 - Google Patents
Way別hit/missカウンタおよびそのカウント方法Info
- Publication number
- JP3522140B2 JP3522140B2 JP01734599A JP1734599A JP3522140B2 JP 3522140 B2 JP3522140 B2 JP 3522140B2 JP 01734599 A JP01734599 A JP 01734599A JP 1734599 A JP1734599 A JP 1734599A JP 3522140 B2 JP3522140 B2 JP 3522140B2
- Authority
- JP
- Japan
- Prior art keywords
- counter
- address
- way
- tag
- ram
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のWAYから
構成されるキャッシュメモリにおいて、その使用および
動作効率を測定するWAY別HIT/MISSカウンタ
およびそのカウント方法に関する。
構成されるキャッシュメモリにおいて、その使用および
動作効率を測定するWAY別HIT/MISSカウンタ
およびそのカウント方法に関する。
【0002】
【従来の技術】近年プログラムの高速化により大容量で
かつ高速なアクセスが可能であるキャッシュメモリを搭
載したプロセッサが数多く開発されている。各プロセッ
サにおけるキャッシュメモリの容量、方式は、そのプロ
セッサのハ−ドウェア的な制限および使用目的によって
決まってくる。特に使用目的に関しては、そのプロセッ
サにおいてどのようなプログラム(計算)を実行するの
かでプロセッサの性能は大きく変わってくる。例えば、
プログラムの内容によりキャッシュメモリの使用方法が
全く異なってしまい、せっかく大容量のキャッシュメモ
リを搭載しても効率よく使用できない場合が出てくる。
かつ高速なアクセスが可能であるキャッシュメモリを搭
載したプロセッサが数多く開発されている。各プロセッ
サにおけるキャッシュメモリの容量、方式は、そのプロ
セッサのハ−ドウェア的な制限および使用目的によって
決まってくる。特に使用目的に関しては、そのプロセッ
サにおいてどのようなプログラム(計算)を実行するの
かでプロセッサの性能は大きく変わってくる。例えば、
プログラムの内容によりキャッシュメモリの使用方法が
全く異なってしまい、せっかく大容量のキャッシュメモ
リを搭載しても効率よく使用できない場合が出てくる。
【0003】
【発明が解決しようとうする課題】上述した従来の技術
の問題点を解決するには、プログラムの変更を行うか、
プロセッサのキャッシュメモリの構成を変更する必要が
ある。ただし、これらのことをあらかじめ考慮して変
更、設計するには、実行するプログラムをあらかじめソ
フトウェアツールによりシミュレートするか、または現
状のプロセッサ上で実行させて、その結果により類推す
る必要がある。シミュレートする場合、綿密かつ詳細な
データを収集することは可能であるが、非常に時間がか
かり大量のデータの収集はできないとう問題点があっ
た。
の問題点を解決するには、プログラムの変更を行うか、
プロセッサのキャッシュメモリの構成を変更する必要が
ある。ただし、これらのことをあらかじめ考慮して変
更、設計するには、実行するプログラムをあらかじめソ
フトウェアツールによりシミュレートするか、または現
状のプロセッサ上で実行させて、その結果により類推す
る必要がある。シミュレートする場合、綿密かつ詳細な
データを収集することは可能であるが、非常に時間がか
かり大量のデータの収集はできないとう問題点があっ
た。
【0004】一方、現状のプロセッサ上で実行させる場
合、そのプロセッサのキャッシュメモリの容量および方
式をあらかじめ知っておくだけでなく、実際に動作して
いる場合のキャッシュメモリの使用効率(方法)を何ら
かの形で入手する必要があった。
合、そのプロセッサのキャッシュメモリの容量および方
式をあらかじめ知っておくだけでなく、実際に動作して
いる場合のキャッシュメモリの使用効率(方法)を何ら
かの形で入手する必要があった。
【0005】従来、一部のプロセッサでは、これらの情
報を得るためにキャッシュメモリのヒットおよびミスの
回数を測定するHIT/MISSカウンタを備えている
ものがある。これらのカウンタは、収集するデータの内
容をある程度区別してカウントする。例えば、命令フェ
ッチの回数または命令フェッチに要した時間、データフ
ェッチの回数またはデータフェッチに要した時間等をカ
ウントして、これらの情報を参考に各プログラムにおけ
るキャッシュメモリの性能を測定していた。
報を得るためにキャッシュメモリのヒットおよびミスの
回数を測定するHIT/MISSカウンタを備えている
ものがある。これらのカウンタは、収集するデータの内
容をある程度区別してカウントする。例えば、命令フェ
ッチの回数または命令フェッチに要した時間、データフ
ェッチの回数またはデータフェッチに要した時間等をカ
ウントして、これらの情報を参考に各プログラムにおけ
るキャッシュメモリの性能を測定していた。
【0006】ここで、WAYとは、複数のTAGアドレ
スアレイやキャッシュメモリへのアクセスルートのこと
である。エントリとは、簡単に言うとメモリ中の項目の
ことであり、例えば、256エントリとはそのメモリの
中に256個の項目があることを意味する。 また、キ
ャッシュメモリとは、CPUとメインメモリとの間に介
在した小容量で高速なメモリのことであり、CPUがキ
ャッシュメモリをアクセスしたときに、該当するCPU
のアドレスにデータが存在する場合は、CPUはプログ
ラムに従い命令を実行していくが、存在しない場合は、
プログラムの実行を中断して主記憶のデータをキャッシ
ュメモリに転送する。
スアレイやキャッシュメモリへのアクセスルートのこと
である。エントリとは、簡単に言うとメモリ中の項目の
ことであり、例えば、256エントリとはそのメモリの
中に256個の項目があることを意味する。 また、キ
ャッシュメモリとは、CPUとメインメモリとの間に介
在した小容量で高速なメモリのことであり、CPUがキ
ャッシュメモリをアクセスしたときに、該当するCPU
のアドレスにデータが存在する場合は、CPUはプログ
ラムに従い命令を実行していくが、存在しない場合は、
プログラムの実行を中断して主記憶のデータをキャッシ
ュメモリに転送する。
【0007】なお、該当するアドレスにデータが存在す
る場合はそのアドレスがヒットしたといい、存在しない
場合はミスしたという。該当するアドレスにデータが存
在している確率のことをヒット率という。
る場合はそのアドレスがヒットしたといい、存在しない
場合はミスしたという。該当するアドレスにデータが存
在している確率のことをヒット率という。
【0008】最近では、これらの情報だけでは足りず、
キャッシュメモリ中のどのエントリに対してアクセスを
しているのか。またヒット回数あるいはミス回数はどの
位なのか。更新の度合いはどの位なのかの情報が必要と
なってきている。もし、これらの情報を入手できれば、
これらの情報により、キャッシュメモリのあるエントリ
にのみ集中してアクセスしているのがわかり、プログラ
ムを変更してあるアドレスのみにアクセスが集中しない
ようアドレスを分散させることも可能となるが、これら
の情報を効率良く収集する手段はこれまで実現されてい
なかった。
キャッシュメモリ中のどのエントリに対してアクセスを
しているのか。またヒット回数あるいはミス回数はどの
位なのか。更新の度合いはどの位なのかの情報が必要と
なってきている。もし、これらの情報を入手できれば、
これらの情報により、キャッシュメモリのあるエントリ
にのみ集中してアクセスしているのがわかり、プログラ
ムを変更してあるアドレスのみにアクセスが集中しない
ようアドレスを分散させることも可能となるが、これら
の情報を効率良く収集する手段はこれまで実現されてい
なかった。
【0009】本発明は上述したような従来の技術が有す
る問題点に鑑みなされたものであって、上述した情報を
簡単なハードウェアで実施するため、複数のWAYから
構成されるキャッシュメモリにおいて、これらの情報を
格納しておくトレース用RAMとカウンタを用いてその
使用および動作効率を測定する各WAY別HIT/MI
SSカウンタおよびそのカウント方法を提供することを
目的とする。
る問題点に鑑みなされたものであって、上述した情報を
簡単なハードウェアで実施するため、複数のWAYから
構成されるキャッシュメモリにおいて、これらの情報を
格納しておくトレース用RAMとカウンタを用いてその
使用および動作効率を測定する各WAY別HIT/MI
SSカウンタおよびそのカウント方法を提供することを
目的とする。
【0010】
【課題を解決するための手段】上記の問題点を解決する
ため、本発明は、複数のWAYから構成されるキャッシ
ュメモリにおいて、キャッシュメモリの使用効率を測定
するために各WAYごとに複数存在するキャッシュメモ
リのTAGアドレスが格納されたTAGアドレスアレイ
を有し、TAGアドレスアレイのエントリに登録されて
いるアドレスをヒットした回数をカウントするWAY別
HITカウンタであって、WAY別HITカウンタは、
エントリがヒットされるごとにインクリメントされる第
1のカウンタと、第1のカウンタがカウントしたカウン
ト値が格納される第1のRAMと、TAGアドレスアレ
イの内容が更新されるごとに更新前のTAGアドレスお
よび第1のRAMに格納されたカウント値が登録される
第2のRAMと、第2のRAMへの登録アドレスを生成
する第2のカウンタと、を具備することを特徴とする。
ため、本発明は、複数のWAYから構成されるキャッシ
ュメモリにおいて、キャッシュメモリの使用効率を測定
するために各WAYごとに複数存在するキャッシュメモ
リのTAGアドレスが格納されたTAGアドレスアレイ
を有し、TAGアドレスアレイのエントリに登録されて
いるアドレスをヒットした回数をカウントするWAY別
HITカウンタであって、WAY別HITカウンタは、
エントリがヒットされるごとにインクリメントされる第
1のカウンタと、第1のカウンタがカウントしたカウン
ト値が格納される第1のRAMと、TAGアドレスアレ
イの内容が更新されるごとに更新前のTAGアドレスお
よび第1のRAMに格納されたカウント値が登録される
第2のRAMと、第2のRAMへの登録アドレスを生成
する第2のカウンタと、を具備することを特徴とする。
【0011】また、第1のRAMの内容は、TAGアド
レスアレイをアクセスする信号と同じ信号でアクセスさ
れ、TAGアドレスアレイがいずれかのWAYでヒット
すると、読み出した値を第1のカウンタでHITしたW
AYに対応するカウンタのみインクリメントして、その
他のWAYに対応するカウンタはそのままの値で前記値
を読み出した同じ領域に書き込むことを特徴とする。
レスアレイをアクセスする信号と同じ信号でアクセスさ
れ、TAGアドレスアレイがいずれかのWAYでヒット
すると、読み出した値を第1のカウンタでHITしたW
AYに対応するカウンタのみインクリメントして、その
他のWAYに対応するカウンタはそのままの値で前記値
を読み出した同じ領域に書き込むことを特徴とする。
【0012】また、第2のRAMの内容は、TAGアド
レスアレイの内容が更新されるごとに、更新されるエン
トリにおける更新前のTAGアドレスおよび第1のRA
Mに登録された対応するエントリ上のカウント値が登録
されることを特徴とする。
レスアレイの内容が更新されるごとに、更新されるエン
トリにおける更新前のTAGアドレスおよび第1のRA
Mに登録された対応するエントリ上のカウント値が登録
されることを特徴とする。
【0013】また、TAGごとにヒット数をカウントす
る場合は、ヒットするごとに第1のカウンタがインクリ
メントされ、TAGアドレスが更新されると第1のカウ
ンタの内容がリセットされて、第2のRAMに更新前の
TAGアドレスおよび更新前に第1のRAMに格納され
たカウント値が登録され、エントリごとにヒット数をカ
ウントする場合は、ヒットするごとに第1のカウンタが
インクリメントされ、TAGアドレスが更新されても第
1のカウンタの内容がリセットされずそのままカウント
を続けることを特徴とする。
る場合は、ヒットするごとに第1のカウンタがインクリ
メントされ、TAGアドレスが更新されると第1のカウ
ンタの内容がリセットされて、第2のRAMに更新前の
TAGアドレスおよび更新前に第1のRAMに格納され
たカウント値が登録され、エントリごとにヒット数をカ
ウントする場合は、ヒットするごとに第1のカウンタが
インクリメントされ、TAGアドレスが更新されても第
1のカウンタの内容がリセットされずそのままカウント
を続けることを特徴とする。
【0014】また、複数のWAYから構成されるキャッ
シュメモリにおいて、各WAYごとに複数存在するキャ
ッシュメモリのTAGアドレスが格納されたTAGアド
レスアレイを有し、TAGアドレスアレイのエントリに
登録されているアドレスをミスした回数をカウントして
キャッシュメモリの使用効率を測定するWAY別MIS
Sカウンタであって、WAY別MISSカウンタは、エ
ントリをミスするごとにインクリメントされる第1のカ
ウンタと、第1のカウンタがカウントしたカウント値が
格納される第1のRAMと、TAGアドレスアレイの内
容が更新されるごとに更新前のTAGアドレスおよび第
1のRAMに格納されたカウント値が登録される第2の
RAMと、第2のRAMへの登録アドレスを生成する第
2のカウンタと、を具備することを特徴とする。
シュメモリにおいて、各WAYごとに複数存在するキャ
ッシュメモリのTAGアドレスが格納されたTAGアド
レスアレイを有し、TAGアドレスアレイのエントリに
登録されているアドレスをミスした回数をカウントして
キャッシュメモリの使用効率を測定するWAY別MIS
Sカウンタであって、WAY別MISSカウンタは、エ
ントリをミスするごとにインクリメントされる第1のカ
ウンタと、第1のカウンタがカウントしたカウント値が
格納される第1のRAMと、TAGアドレスアレイの内
容が更新されるごとに更新前のTAGアドレスおよび第
1のRAMに格納されたカウント値が登録される第2の
RAMと、第2のRAMへの登録アドレスを生成する第
2のカウンタと、を具備することを特徴とする。
【0015】また、TAGごとにミス数をカウントする
場合は、ミスするごとに第1のカウンタがインクリメン
トされ、TAGアドレスが更新されると第1のカウンタ
の内容がリセットされて、第2のRAMに更新前のTA
Gアドレスおよび更新前に第1のRAMに格納されたカ
ウント値が登録され、エントリごとにミス数をカウント
する場合は、ミスするごとに第1のカウンタがインクリ
メントされ、TAGアドレスが更新されても第1のカウ
ンタの内容がリセットされずそのままカウントを続ける
ことを特徴とする。
場合は、ミスするごとに第1のカウンタがインクリメン
トされ、TAGアドレスが更新されると第1のカウンタ
の内容がリセットされて、第2のRAMに更新前のTA
Gアドレスおよび更新前に第1のRAMに格納されたカ
ウント値が登録され、エントリごとにミス数をカウント
する場合は、ミスするごとに第1のカウンタがインクリ
メントされ、TAGアドレスが更新されても第1のカウ
ンタの内容がリセットされずそのままカウントを続ける
ことを特徴とする。
【0016】上記のように構成される本発明において
は、各RAMにそれぞれ異なる値が格納されるので、キ
ャッシュメモリのエントリごと、またはWAY別のヒッ
ト回数を求めることができ、キャッシュメモリのWAY
別エントリ別の使用率およびヒット率等を容易に算出す
ることができる。
は、各RAMにそれぞれ異なる値が格納されるので、キ
ャッシュメモリのエントリごと、またはWAY別のヒッ
ト回数を求めることができ、キャッシュメモリのWAY
別エントリ別の使用率およびヒット率等を容易に算出す
ることができる。
【0017】また、キャッシュメモリのエントリごと、
またはWAY別のミス回数を求めることができので、キ
ャッシュメモリのWAY別エントリ別の使用率およびミ
ス率等を容易に算出することができる。
またはWAY別のミス回数を求めることができので、キ
ャッシュメモリのWAY別エントリ別の使用率およびミ
ス率等を容易に算出することができる。
【0018】さらに、これらのデータを参考にすること
により、より効率的なプログラム、高速なプログラムの
作成が容易となるので、さらに、今後のキャッシュメモ
リの設計をするにあたって重要なデータを提供できる。
により、より効率的なプログラム、高速なプログラムの
作成が容易となるので、さらに、今後のキャッシュメモ
リの設計をするにあたって重要なデータを提供できる。
【0019】
【発明の実施の形態】次に、本発明の実施例について図
面を参照して説明する。
面を参照して説明する。
【0020】図1は、本発明の第1の実施例の全体構成
を示すブロック図である。
を示すブロック図である。
【0021】図1において、点線で囲んだトレース回路
部7が本発明に関する部分であり、それ以外のTAGア
ドレスを格納したTAGアドレス2aと後述するTAG
アドレスアレイ5a〜5dのアドレスを指すINDEX
アドレス2bおよびBLOCKアドレス2cを格納した
命令アドレス2と、命令アドレス2のINDEXアドレ
ス2bと外部から入力したWAY更新用INDEX3a
信号を選択するセレクタ4と、キャッシュメモリ(図示
せず)のTAGアドレスを格納した複数のTAGアドレ
スアレイ5a〜5dと、各TAGアドレスアレイ5a〜
5dの出力とTAGアドレス2aを比較するコンパレー
タ6a〜6dとは従来からの公知の技術である。
部7が本発明に関する部分であり、それ以外のTAGア
ドレスを格納したTAGアドレス2aと後述するTAG
アドレスアレイ5a〜5dのアドレスを指すINDEX
アドレス2bおよびBLOCKアドレス2cを格納した
命令アドレス2と、命令アドレス2のINDEXアドレ
ス2bと外部から入力したWAY更新用INDEX3a
信号を選択するセレクタ4と、キャッシュメモリ(図示
せず)のTAGアドレスを格納した複数のTAGアドレ
スアレイ5a〜5dと、各TAGアドレスアレイ5a〜
5dの出力とTAGアドレス2aを比較するコンパレー
タ6a〜6dとは従来からの公知の技術である。
【0022】トレース回路部7は、各TAGアドレスア
レイ5a〜5dから出力された信号(TAGDATA)
とWAY更新用DATA(WE:Write Enable)を選択
するセレクタ8と、各WAY別のヒット数を格納する複
数のWAY別HITカウンタ9a〜9dと、WAY別H
ITカウンタ9a〜9dのカウント値を格納する複数の
トレース用RAM10a〜10dと、複数のトレース用
RAM10a〜10dの出力を選択するセレクタ11
と、TAGアドレスアレイ5a〜5dの内容が更新され
るごとに複数のトレース用RAM10a〜10dの出力
等を格納するトレース用RAM12と、を含む。
レイ5a〜5dから出力された信号(TAGDATA)
とWAY更新用DATA(WE:Write Enable)を選択
するセレクタ8と、各WAY別のヒット数を格納する複
数のWAY別HITカウンタ9a〜9dと、WAY別H
ITカウンタ9a〜9dのカウント値を格納する複数の
トレース用RAM10a〜10dと、複数のトレース用
RAM10a〜10dの出力を選択するセレクタ11
と、TAGアドレスアレイ5a〜5dの内容が更新され
るごとに複数のトレース用RAM10a〜10dの出力
等を格納するトレース用RAM12と、を含む。
【0023】また、図1には示されていないが実際には
TAGアドレスアレイ5a〜5dの他に、データアレイ
も設けられている。
TAGアドレスアレイ5a〜5dの他に、データアレイ
も設けられている。
【0024】図1中において、各信号の接続関係を示
す。
す。
【0025】命令アドレス2のTAGアドレス2aはコ
ンパレータ6a〜6dに入力され、INDEXアドレス
2bはセレクタ4に入力される。WAY更新用INDE
X信号3aはセレクタ4を経て、TAGアドレスアレイ
5a〜5dとトレース回路部7のトレース用RAM10
a〜10dに入力される。
ンパレータ6a〜6dに入力され、INDEXアドレス
2bはセレクタ4に入力される。WAY更新用INDE
X信号3aはセレクタ4を経て、TAGアドレスアレイ
5a〜5dとトレース回路部7のトレース用RAM10
a〜10dに入力される。
【0026】また、WAY更新用DATA(WE)3b
〜3eとWAY更新用DATA(TAG)3fは、それ
ぞれTAGアドレスアレイ5a〜5dに入力される。T
AGアドレス5a〜5dからの一方の出力はコンパレー
タ6a〜6dに入力して命令アドレス2から入力したT
AGアドレス2aと比較され、もう一方は、セレクタ8
に入力される。セレクタ8はWAY更新用DATA(W
E)3b〜3eにより選択される。
〜3eとWAY更新用DATA(TAG)3fは、それ
ぞれTAGアドレスアレイ5a〜5dに入力される。T
AGアドレス5a〜5dからの一方の出力はコンパレー
タ6a〜6dに入力して命令アドレス2から入力したT
AGアドレス2aと比較され、もう一方は、セレクタ8
に入力される。セレクタ8はWAY更新用DATA(W
E)3b〜3eにより選択される。
【0027】命令アドレス2のTAGアドレス2aとT
AGアドレスアレイ5a〜5dから読み出したTAGア
ドレスをコンパレータ6a〜6dに入力し、両方の信号
が一致すれば、WAYHIT信号13a〜13dとして
外部回路(図示せず)に出力されると共に、トレース回
路部7の各WAY別HITカウンタ9a〜9dにも出力
される。
AGアドレスアレイ5a〜5dから読み出したTAGア
ドレスをコンパレータ6a〜6dに入力し、両方の信号
が一致すれば、WAYHIT信号13a〜13dとして
外部回路(図示せず)に出力されると共に、トレース回
路部7の各WAY別HITカウンタ9a〜9dにも出力
される。
【0028】図2は、命令アドレス2のINDEXアド
レス2bとTAGアドレスアレイ5a〜5dの対応関係
を示す図である。
レス2bとTAGアドレスアレイ5a〜5dの対応関係
を示す図である。
【0029】図2のように、INDEXアドレス2b
は、キャッシュメモリのTAGアドレスが格納されたT
AGアドレスアレイ5a〜5dのある登録エントリを指
している。そして、INDEXアドレス2bが指すTA
Gアドレスアレイ5a〜5dのいずれかのTAGアドレ
スアレイからTAGアドレスが読み出される。
は、キャッシュメモリのTAGアドレスが格納されたT
AGアドレスアレイ5a〜5dのある登録エントリを指
している。そして、INDEXアドレス2bが指すTA
Gアドレスアレイ5a〜5dのいずれかのTAGアドレ
スアレイからTAGアドレスが読み出される。
【0030】図3は、図1に示したTAGアドレスアレ
イ5a〜5dとキャッシュメモリ20a〜20dの対応
関係を示す図である。
イ5a〜5dとキャッシュメモリ20a〜20dの対応
関係を示す図である。
【0031】図3のように、TAGアドレスアレイ5a
〜5dの各TAGアドレスはキャッシュメモリ20a〜
20dのあるTAGアドレス21a〜21dを指してい
る。ここで、TAGとは、各キャッシュメモリ20a〜
20dに格納されているブロック単位ごとに管理される
領域の先頭アドレスを指す。
〜5dの各TAGアドレスはキャッシュメモリ20a〜
20dのあるTAGアドレス21a〜21dを指してい
る。ここで、TAGとは、各キャッシュメモリ20a〜
20dに格納されているブロック単位ごとに管理される
領域の先頭アドレスを指す。
【0032】図3に示すように、各TAGアドレスアレ
イ5a〜5dは、TAG00からTAG3255の10
24個のTAGメモリアドレスで構成され、各TAGア
ドレスアレイ5a〜5dのTAGアドレスは、キャッシ
ュメモリ20a〜20dのTAGアドレスと対応してい
る。例えば、TAGメモリアドレス5aのTAG00
は、キャッシュメモリ20aのブロックの先頭アドレス
21aを指しており、TAG0225はアドレス11a
を指している。
イ5a〜5dは、TAG00からTAG3255の10
24個のTAGメモリアドレスで構成され、各TAGア
ドレスアレイ5a〜5dのTAGアドレスは、キャッシ
ュメモリ20a〜20dのTAGアドレスと対応してい
る。例えば、TAGメモリアドレス5aのTAG00
は、キャッシュメモリ20aのブロックの先頭アドレス
21aを指しており、TAG0225はアドレス11a
を指している。
【0033】ここでは、4つのTAGアドレスアレイ5
a〜5dと、キャッシュメモリ20a〜20dしか示し
ていないが、システムの規模や要求に応じ、もちろんこ
れ以上のTAGアドレスアレイとキャッシュメモリを追
加できることは言うまでもない。
a〜5dと、キャッシュメモリ20a〜20dしか示し
ていないが、システムの規模や要求に応じ、もちろんこ
れ以上のTAGアドレスアレイとキャッシュメモリを追
加できることは言うまでもない。
【0034】図4は、図1に示したトレース回路部7を
拡大した図である。
拡大した図である。
【0035】図4において、トレース用RAM10a〜
10dとは、各WAY別HITカウンタ9a〜9dでカ
ウントした各WAYごとのヒット数を格納しておく領域
である。各トレース用RAM10a〜10dは、それぞ
れ0〜255までのヒット数のカウント値が格納され、
4つのトレース用RAM6全部で255×4の1026
個のカウント値を格納しておくことができる。
10dとは、各WAY別HITカウンタ9a〜9dでカ
ウントした各WAYごとのヒット数を格納しておく領域
である。各トレース用RAM10a〜10dは、それぞ
れ0〜255までのヒット数のカウント値が格納され、
4つのトレース用RAM6全部で255×4の1026
個のカウント値を格納しておくことができる。
【0036】トレース用RAM12は、TAGアドレス
アレイ5a〜5dの内容が更新されるごとにTAGアド
レス、INDEX、トレース用RAM10a〜10dの
カウント値を時系列的に格納しておく領域である。この
トレース用RAM12は、各WAY別を示すWAYWE
0〜WAYWEn部12aと、TAGアドレスを格納し
たTAGアドレス0〜TAGアドレスn部12bと、I
NDEX0〜INDEXn部12cと、各WAYごとの
ヒット数を格納しておくカウント値0〜カウント値n部
12dと、を含む。
アレイ5a〜5dの内容が更新されるごとにTAGアド
レス、INDEX、トレース用RAM10a〜10dの
カウント値を時系列的に格納しておく領域である。この
トレース用RAM12は、各WAY別を示すWAYWE
0〜WAYWEn部12aと、TAGアドレスを格納し
たTAGアドレス0〜TAGアドレスn部12bと、I
NDEX0〜INDEXn部12cと、各WAYごとの
ヒット数を格納しておくカウント値0〜カウント値n部
12dと、を含む。
【0037】図4中において、各信号の接続関係を示
す。
す。
【0038】TAGアドレスアレイ5a〜5dからの読
み出しDATA(TAG)WAY15a〜15dはセレ
クタ8を経て、トレース用RAM12のTAGアドレス
0〜TAGアドレスn12bに入力される。外部回路か
らのWAY更新用DATAWE(0:4)16はセレク
タ8に入力すると共に、セレクタ11にも入力しここを
経てトレース用RAM12のカウント値0〜カウント値
n12dに入力される。命令アドレス2からのINDE
Xアドレス信号2bは、トレース用RAM10a〜10
dとトレース用RAM12のINDEX0〜INDEX
n12cに入力される。また、コンパレータ6a〜6d
からのWAY0 HIT〜WAY3HIT信号13a〜
13dはカウンタ9a〜9dに入力し、各カウンタ9a
〜9dのカウント値はトレース用RAM10a〜10d
に格納され、TAGアドレスアレイ5a〜5dの内容が
更新される度にトレース用RAM12のカウント値0〜
カウント値n12dに格納される。
み出しDATA(TAG)WAY15a〜15dはセレ
クタ8を経て、トレース用RAM12のTAGアドレス
0〜TAGアドレスn12bに入力される。外部回路か
らのWAY更新用DATAWE(0:4)16はセレク
タ8に入力すると共に、セレクタ11にも入力しここを
経てトレース用RAM12のカウント値0〜カウント値
n12dに入力される。命令アドレス2からのINDE
Xアドレス信号2bは、トレース用RAM10a〜10
dとトレース用RAM12のINDEX0〜INDEX
n12cに入力される。また、コンパレータ6a〜6d
からのWAY0 HIT〜WAY3HIT信号13a〜
13dはカウンタ9a〜9dに入力し、各カウンタ9a
〜9dのカウント値はトレース用RAM10a〜10d
に格納され、TAGアドレスアレイ5a〜5dの内容が
更新される度にトレース用RAM12のカウント値0〜
カウント値n12dに格納される。
【0039】本実施例の動作の説明に入る前に、図1と
図4に示した各信号の機能をここで簡単に説明してお
く。
図4に示した各信号の機能をここで簡単に説明してお
く。
【0040】(1)WAY更新用INDEX信号
命令アドレス2から出力され、TAGアドレスを更新す
るとき、TAGアドレスアレイ5a〜5dのアドレスを
示す信号である。
るとき、TAGアドレスアレイ5a〜5dのアドレスを
示す信号である。
【0041】(2)WAY1〜WAY3更新用DATA
(WE)信号 外部回路から出力され、TAGアドレスを更新すると
き、WAY更新用INDEX信号3aで指定したTAG
アドレスアレイの更新を許可する信号である。
(WE)信号 外部回路から出力され、TAGアドレスを更新すると
き、WAY更新用INDEX信号3aで指定したTAG
アドレスアレイの更新を許可する信号である。
【0042】(3)WAY更新用DATA(TAG)
外部回路から出力され、TAGアドレスアレイを更新す
るときの更新データである。
るときの更新データである。
【0043】(4)WAY0 HIT〜WAY3 HI
T信号 命令アドレス2のTAGアドレス2aとTAGアドレス
アレイ5a〜5dから読み出したTAGアドレスが一致
した(ヒット)したときにコンパレータ6a〜6dから
出力される信号である。
T信号 命令アドレス2のTAGアドレス2aとTAGアドレス
アレイ5a〜5dから読み出したTAGアドレスが一致
した(ヒット)したときにコンパレータ6a〜6dから
出力される信号である。
【0044】(5)読み出しDATA(TAG)WAY
0〜WAY3信号 TAGアドレスアレイ5a〜5dから読み出された信号
(TAGアドレス)である。
0〜WAY3信号 TAGアドレスアレイ5a〜5dから読み出された信号
(TAGアドレス)である。
【0045】(6)WAY更新用DATA WE(0:
4)信号 外部回路から出力され、TAGアドレスアレイ5a〜5
dの出力を選択する信号である。
4)信号 外部回路から出力され、TAGアドレスアレイ5a〜5
dの出力を選択する信号である。
【0046】(7)INDEXアドレス信号
命令アドレス2から出力され、トレース用RAM10a
〜10dのどのトレース用RAMのどのアドレスからカ
ウンタ値を読み出すか指定する信号である。
〜10dのどのトレース用RAMのどのアドレスからカ
ウンタ値を読み出すか指定する信号である。
【0047】次に、本発明の第1の実施例の動作を説明
する。
する。
【0048】なお、本発明においては4WAY256エ
ントリのキャッシュメモリを例にとって説明する。
ントリのキャッシュメモリを例にとって説明する。
【0049】本実施例は、複数のWAYを有するキャッ
シュメモリにおけるアドレスアレイの登録において、各
WAYごとに複数存在する登録エントリの1個の登録エ
ントリごとに、そのエントリに登録されているTAGア
ドレスにヒットした回数を保持する領域を設け、この領
域が属するエントリにアドレスがヒットするごとに+1
インクリメントされた値が更新され書き込まれるもので
ある。
シュメモリにおけるアドレスアレイの登録において、各
WAYごとに複数存在する登録エントリの1個の登録エ
ントリごとに、そのエントリに登録されているTAGア
ドレスにヒットした回数を保持する領域を設け、この領
域が属するエントリにアドレスがヒットするごとに+1
インクリメントされた値が更新され書き込まれるもので
ある。
【0050】本実施例は、キャッシュメモリ20a〜2
0dにおけるTAGアドレスアレイ5a〜5dに付属す
るトレース回路部7であり、その構成は、 TAGアド
レスメモリ5a〜5dにアクセスするINDEXアドレ
ス2bにより登録したカウント値を読み出すトレース用
RAM10a〜10dと、読み出したカウント値を各W
AYごとのWAY0〜WAY3 HIT信号により+1
カウントアップする各WAY別HITカウンタ9a〜9
dと、TAGアドレスアレイ5a〜5dが更新されるご
とに更新前のTAGアドレスおよびヒットカウント値等
を登録していくトレース用RAM12と、から構成され
る。
0dにおけるTAGアドレスアレイ5a〜5dに付属す
るトレース回路部7であり、その構成は、 TAGアド
レスメモリ5a〜5dにアクセスするINDEXアドレ
ス2bにより登録したカウント値を読み出すトレース用
RAM10a〜10dと、読み出したカウント値を各W
AYごとのWAY0〜WAY3 HIT信号により+1
カウントアップする各WAY別HITカウンタ9a〜9
dと、TAGアドレスアレイ5a〜5dが更新されるご
とに更新前のTAGアドレスおよびヒットカウント値等
を登録していくトレース用RAM12と、から構成され
る。
【0051】図5は、キャッシュメモリ20a〜20d
がヒットしたときの信号の流れを示す図であり、図6
は、トレース回路部7の信号の流れを示す図である。
がヒットしたときの信号の流れを示す図であり、図6
は、トレース回路部7の信号の流れを示す図である。
【0052】それでは、まず最初に図5および図6を参
照して、キャッシュメモリ20a〜20dがヒットした
ときの動作を説明する。
照して、キャッシュメモリ20a〜20dがヒットした
ときの動作を説明する。
【0053】なお、本文中の番号〜は、図5および
図6中の〜に対応している。
図6中の〜に対応している。
【0054】図5において、初期設定として各WAY対
応のトレース用RAM10a〜10dにはALL 0を
設定しておく。このトレース用RAM10a〜10dの
各エントリはTAGアドレスアレイ5a〜5dの各WA
Yの登録エントリと1対1に対応している。次に、キャ
ッシュメモリ20a〜20dのアクセス命令におけるア
ドレス(図5の命令アドレス2)のINDEXアドレス
2bを取り出し()、これを各WAYの登録エントリ
としてTAGアドレスアレイ5a〜5dからTAGアド
レスを読み出す()。読み出された各WAYのTAG
アドレスは、コンパレータ6a〜6dにより命令アドレ
スのTAG部分と比較され()、一致すれば外部回路
へWAY HIT信号13a〜13dが出力される
()。
応のトレース用RAM10a〜10dにはALL 0を
設定しておく。このトレース用RAM10a〜10dの
各エントリはTAGアドレスアレイ5a〜5dの各WA
Yの登録エントリと1対1に対応している。次に、キャ
ッシュメモリ20a〜20dのアクセス命令におけるア
ドレス(図5の命令アドレス2)のINDEXアドレス
2bを取り出し()、これを各WAYの登録エントリ
としてTAGアドレスアレイ5a〜5dからTAGアド
レスを読み出す()。読み出された各WAYのTAG
アドレスは、コンパレータ6a〜6dにより命令アドレ
スのTAG部分と比較され()、一致すれば外部回路
へWAY HIT信号13a〜13dが出力される
()。
【0055】続いて、図6において、TAGアドレスア
レイ5a〜5dがアクセスされると、トレース用RAM
10a〜10dも同じINDEXアドレス信号2bによ
りアクセスされ、それぞれカウント値が読み出される
()。カウント値を読み出した後、いずれかのWAY
でヒットするとWAYHIT信号により対応するWAY
の各WAY別HITカウンタが+1インクリメントされ
る()。その他の各WAY別HITカウンタはインク
リメントされず、そのままの値を保持する。例えば、I
NDEX01においてTAGアドレスメモリ5aがヒッ
トするとWAY0HIT信号13aによりトレース用R
AM10aのINDEX01に入っていたカウント値
(初めてヒットした場合は当然0が読み出されているは
ずである。)を+1インクリメントして再び同じトレー
ス用RAM10aの同じ領域に書き込んで、カウント値
を更新する。
レイ5a〜5dがアクセスされると、トレース用RAM
10a〜10dも同じINDEXアドレス信号2bによ
りアクセスされ、それぞれカウント値が読み出される
()。カウント値を読み出した後、いずれかのWAY
でヒットするとWAYHIT信号により対応するWAY
の各WAY別HITカウンタが+1インクリメントされ
る()。その他の各WAY別HITカウンタはインク
リメントされず、そのままの値を保持する。例えば、I
NDEX01においてTAGアドレスメモリ5aがヒッ
トするとWAY0HIT信号13aによりトレース用R
AM10aのINDEX01に入っていたカウント値
(初めてヒットした場合は当然0が読み出されているは
ずである。)を+1インクリメントして再び同じトレー
ス用RAM10aの同じ領域に書き込んで、カウント値
を更新する。
【0056】一方、同じINDEX01によって読み出
されたWAY1〜WAY3対応のトレース用RAM10
b〜10dから読み出されたカウント値は+1インクリ
メントされずにそのまま同じ領域に書き込まれる。結果
的に、ヒットした場合にだけそのヒットしたWAYに対
応する各WAY別HITカウンタがインクリメントさ
れ、ヒットしなかった場合は、そのヒットしなかったW
AYに対応する各WAY別HITカウンタがインクリメ
ントされない。
されたWAY1〜WAY3対応のトレース用RAM10
b〜10dから読み出されたカウント値は+1インクリ
メントされずにそのまま同じ領域に書き込まれる。結果
的に、ヒットした場合にだけそのヒットしたWAYに対
応する各WAY別HITカウンタがインクリメントさ
れ、ヒットしなかった場合は、そのヒットしなかったW
AYに対応する各WAY別HITカウンタがインクリメ
ントされない。
【0057】このような動作をキャッシュメモリ20a
〜20dをアクセスする命令が実行されるごとに行う。
以上がキャッシュメモリ20a〜20dをヒットしたと
きの動作である。
〜20dをアクセスする命令が実行されるごとに行う。
以上がキャッシュメモリ20a〜20dをヒットしたと
きの動作である。
【0058】図7は、TAGアドレスを更新するときの
信号の流れを示す図であり、図8は、トレース回路部7
の信号の流れを示す図である。
信号の流れを示す図であり、図8は、トレース回路部7
の信号の流れを示す図である。
【0059】次に、TAGアドレスアレイ5a〜5dの
アドレスの更新が発生した場合の動作を説明する。
アドレスの更新が発生した場合の動作を説明する。
【0060】本実施例は、ヒットした回数を保持する領
域に属するTAGアドレスが更新される場合、この領域
のHITカウンタ値も0にリセットされるか、またこれ
とは反対に、TAGアドレスが更新されても、HITカ
ウンタ値はリセットされずカウント値を引き継いでカウ
ントアップするように設定することができる。これらの
2つの機能は初期設定時に選択される。
域に属するTAGアドレスが更新される場合、この領域
のHITカウンタ値も0にリセットされるか、またこれ
とは反対に、TAGアドレスが更新されても、HITカ
ウンタ値はリセットされずカウント値を引き継いでカウ
ントアップするように設定することができる。これらの
2つの機能は初期設定時に選択される。
【0061】また、この領域が属するTAGアドレスが
更新された場合、更新前にこの領域に登録されていたH
ITカウント値およびこの領域が属するTAGアドレス
を読み出し、これを別に用意した保存領域に書き込む。
保存領域に登録されるデータは、このTAGアドレス登
録領域のTAGアドレスおよびアクセスアドレス(エン
トリ番号(INDEXアドレス))、HITカウント値
および書き込み(読み出し)WAY信号となる。保存領
域にはTAGアドレスアレイ5a〜5dのどこかのエン
トリが更新された場合に登録データが書き込まれる。保
存領域は書き込みが終了すると、登録用カウンタ14を
+1インクリメントして、次の書き込みに備える。
更新された場合、更新前にこの領域に登録されていたH
ITカウント値およびこの領域が属するTAGアドレス
を読み出し、これを別に用意した保存領域に書き込む。
保存領域に登録されるデータは、このTAGアドレス登
録領域のTAGアドレスおよびアクセスアドレス(エン
トリ番号(INDEXアドレス))、HITカウント値
および書き込み(読み出し)WAY信号となる。保存領
域にはTAGアドレスアレイ5a〜5dのどこかのエン
トリが更新された場合に登録データが書き込まれる。保
存領域は書き込みが終了すると、登録用カウンタ14を
+1インクリメントして、次の書き込みに備える。
【0062】通常、キャッシュメモリ20a〜20dの
アクセス命令がTAGアドレスアレイ5a〜5dのWA
Y0 〜WAY3のどれとも一致しない場合、つまりミ
スした場合は、ミスヒットとなり主記憶(図示せず)よ
りデータを読み出しに行く。このとき主記憶より読み出
されたデータは実際に必要なデータを含むブロック単位
で読み出され、この読み出されたブロックデータがキャ
ッシュメモリ20a〜20dに登録される。そして、登
録されたメモリの先頭アドレス(TAGアドレス)を新
たにWAY0〜WAY3のどれかに登録する。(登録方
法については色々な方式があるが特に本発明とは関係な
いので省略する。)まず最初に図7および図8を参照し
て、TAGアドレスアレイを更新するときの信号の流れ
を説明する。
アクセス命令がTAGアドレスアレイ5a〜5dのWA
Y0 〜WAY3のどれとも一致しない場合、つまりミ
スした場合は、ミスヒットとなり主記憶(図示せず)よ
りデータを読み出しに行く。このとき主記憶より読み出
されたデータは実際に必要なデータを含むブロック単位
で読み出され、この読み出されたブロックデータがキャ
ッシュメモリ20a〜20dに登録される。そして、登
録されたメモリの先頭アドレス(TAGアドレス)を新
たにWAY0〜WAY3のどれかに登録する。(登録方
法については色々な方式があるが特に本発明とは関係な
いので省略する。)まず最初に図7および図8を参照し
て、TAGアドレスアレイを更新するときの信号の流れ
を説明する。
【0063】図7において、TAGアドレスアレイ5a
〜5dのある領域を更新するためにINDEXアドレス
3aが入力されると()、新しいTAGアドレスが書
き込まれる前に、TAGアドレスアレイ5a〜5dから
更新される前のTAGアドレスが読み出される()。
また同時にトレース用RAM10a〜10dから対応す
るカウント値が読み出される()。
〜5dのある領域を更新するためにINDEXアドレス
3aが入力されると()、新しいTAGアドレスが書
き込まれる前に、TAGアドレスアレイ5a〜5dから
更新される前のTAGアドレスが読み出される()。
また同時にトレース用RAM10a〜10dから対応す
るカウント値が読み出される()。
【0064】次に、図8において、TAGアドレスアレ
イ5a〜5dのどのWAYに書き込むかを指定する4ビ
ットのWAY更新用DATA (WE)信号3b〜3e
により、各WAYから読み出された4つのTAGアドレ
スのうち一つをセレクタ8により選択し()、トレー
ス用RAM10a〜10dから出力された4つのカウン
ト値をセレクタ11により選択する()。選択された
TAGアドレスおよびカウント値は、そのときアクセス
したINDEXおよびそのときのWAY更新用DATA
(WE)信号と共にトレース用RAM12に書き込まれ
る()。
イ5a〜5dのどのWAYに書き込むかを指定する4ビ
ットのWAY更新用DATA (WE)信号3b〜3e
により、各WAYから読み出された4つのTAGアドレ
スのうち一つをセレクタ8により選択し()、トレー
ス用RAM10a〜10dから出力された4つのカウン
ト値をセレクタ11により選択する()。選択された
TAGアドレスおよびカウント値は、そのときアクセス
したINDEXおよびそのときのWAY更新用DATA
(WE)信号と共にトレース用RAM12に書き込まれ
る()。
【0065】これらのデータは、あるWAYのエントリ
において登録していたTAGアドレスとそれに対するヒ
ット回数を示している。
において登録していたTAGアドレスとそれに対するヒ
ット回数を示している。
【0066】トレース用RAM12は書き込みが終了す
ると登録用カウンタ14を+1インクリメントして次の
書き込みに備える()。トレース用RAM12へはT
AGアドレスの更新が起こる度に登録動作が行われ、登
録される内容は更新されるエントリに格納されているT
AGアドレスおよびそのアドレスにヒットしたカウント
値である。
ると登録用カウンタ14を+1インクリメントして次の
書き込みに備える()。トレース用RAM12へはT
AGアドレスの更新が起こる度に登録動作が行われ、登
録される内容は更新されるエントリに格納されているT
AGアドレスおよびそのアドレスにヒットしたカウント
値である。
【0067】なお、更新された領域(エントリ)に対応
するトレース用RAM10a〜10d中のカウント値は
リセットされる。これにより新たに登録されたTAGア
ドレスに対するヒット回数をカウントすることができ
る。
するトレース用RAM10a〜10d中のカウント値は
リセットされる。これにより新たに登録されたTAGア
ドレスに対するヒット回数をカウントすることができ
る。
【0068】一方、エントリごとのヒット回数にのみ注
目し、そのときにエントリに登録されているアドレス、
およびこのエントリが更新されることは考慮しない場
合、更新動作が行われても対応するトレース用RAM1
0a〜10d中のカウント値をリセットせずにそのまま
引き続きカウントアップするような設定とする。こうす
ることにより、そのエントリの通算のヒット回数を求め
ることができる。
目し、そのときにエントリに登録されているアドレス、
およびこのエントリが更新されることは考慮しない場
合、更新動作が行われても対応するトレース用RAM1
0a〜10d中のカウント値をリセットせずにそのまま
引き続きカウントアップするような設定とする。こうす
ることにより、そのエントリの通算のヒット回数を求め
ることができる。
【0069】なお、本設定を採用した場合でも、更新さ
れるごとにトレース用RAM12にTAGアドレス、お
よびカウント値を登録することが可能である。
れるごとにトレース用RAM12にTAGアドレス、お
よびカウント値を登録することが可能である。
【0070】以上のように、本実施例によれば、キャッ
シュメモリのエントリごと、またはWAY別のヒット回
数を求めることができので、キャッシュメモリのWAY
別およびエントリ別の使用率とヒット率を容易に求める
ことができる。
シュメモリのエントリごと、またはWAY別のヒット回
数を求めることができので、キャッシュメモリのWAY
別およびエントリ別の使用率とヒット率を容易に求める
ことができる。
【0071】図9は、本発明の第2の実施例の全体構成
を示すブロック図である。
を示すブロック図である。
【0072】本実施例は、アドレスをヒットした回数を
カウントするのではなく、ミスした回数をカウントし
て、トレース用RAMに登録する例である。
カウントするのではなく、ミスした回数をカウントし
て、トレース用RAMに登録する例である。
【0073】図9に示すように、本実施例は、図1に示
した第1の実施例の各WAY別HITカウンタ9a〜9
dの代わりに各WAY別MISSカウンタ9a’〜9
d’を設けており、命令アドレス2のTAGアドレス2
aとTAGアドレスアレイ5a〜5dから読み出したT
AGアドレスを比較し、一致しないときにWAYHIT
0〜WAY HIT3信号13a’〜13d’を外部回
路とトレース回路部7に出力する。
した第1の実施例の各WAY別HITカウンタ9a〜9
dの代わりに各WAY別MISSカウンタ9a’〜9
d’を設けており、命令アドレス2のTAGアドレス2
aとTAGアドレスアレイ5a〜5dから読み出したT
AGアドレスを比較し、一致しないときにWAYHIT
0〜WAY HIT3信号13a’〜13d’を外部回
路とトレース回路部7に出力する。
【0074】図10は、図9に示したトレース回路部7
を拡大した図である。
を拡大した図である。
【0075】WAY0 MISS〜WAY3 MISS
信号13a’〜13d’が各WAY別MISカウンタ9
a'〜9d'入力されている。
信号13a’〜13d’が各WAY別MISカウンタ9
a'〜9d'入力されている。
【0076】これ以外の構成は図1に示した第1の実施
例と同様であるため、図1と同じ符号を付して示す。
例と同様であるため、図1と同じ符号を付して示す。
【0077】本実施例は、アドレスをヒットした回数で
はなく、ミスした回数をカウントしている以外は第1の
実施例と同様であるので、構成や動作の詳しい説明は省
略する。
はなく、ミスした回数をカウントしている以外は第1の
実施例と同様であるので、構成や動作の詳しい説明は省
略する。
【0078】以上のように、本実施例によれば、キャッ
シュメモリのエントリごと、またはWAY別のミス回数
を求めることができので、キャッシュメモリのWAY別
およびエントリ別の使用率とミス率を容易に求めること
ができる。
シュメモリのエントリごと、またはWAY別のミス回数
を求めることができので、キャッシュメモリのWAY別
およびエントリ別の使用率とミス率を容易に求めること
ができる。
【0079】
【発明の効果】以上説明したように、本発明によれば、
以下のような顕著な効果を奏する。
以下のような顕著な効果を奏する。
【0080】(1)キャッシュメモリのエントリごと、
またはWAY別のヒット回数を求めることができ、これ
により、キャッシュメモリのWAY別エントリ別の使用
率およびヒット率等を容易に算出することができる。
またはWAY別のヒット回数を求めることができ、これ
により、キャッシュメモリのWAY別エントリ別の使用
率およびヒット率等を容易に算出することができる。
【0081】(2)キャッシュメモリのエントリごと、
またはWAY別のミス回数を求めることができ、これに
より、キャッシュメモリのWAY別エントリ別の使用率
およびミス率等を容易に算出することができる。
またはWAY別のミス回数を求めることができ、これに
より、キャッシュメモリのWAY別エントリ別の使用率
およびミス率等を容易に算出することができる。
【0082】(3)これらのデータを参考にすることに
より、より効率的なプログラム、高速なプログラムの作
成が容易となる。さらに、今後のキャッシュメモリの設
計をするにあたって重要なデータを提供できる。
より、より効率的なプログラム、高速なプログラムの作
成が容易となる。さらに、今後のキャッシュメモリの設
計をするにあたって重要なデータを提供できる。
【図1】本発明の第1の実施例の全体構成を示すブロッ
ク図である。
ク図である。
【図2】命令アドレスとそのINDEXアドレスとTA
Gアドレスアレイの対応関係を示す図である。
Gアドレスアレイの対応関係を示す図である。
【図3】図1に示した各TAGメモリアドレスとキャッ
シュアドレスメモリの対応関係を示す図である。
シュアドレスメモリの対応関係を示す図である。
【図4】図1に示したトレース回路部を拡大した図であ
る。
る。
【図5】キャッシュメモリがヒットしたときの信号の流
れを示す図である。
れを示す図である。
【図6】トレース回路部の信号の流れを示す図である。
【図7】TAGアドレスの更新するときの信号の流れを
示す図である。
示す図である。
【図8】トレース回路部の信号の流れを示す図である。
【図9】本発明の第2の実施例の全体構成を示す図であ
る。
る。
【図10】図9に示したトレース回路部を拡大した図で
ある。
ある。
1 WAY別HITカウンタ
1’ WAY別MISSカウンタ
2 命令アドレス
2a TAGアドレス
2b INDEXアドレス
2c Blockアドレス
3a WAY更新用INDEX信号
3b,3c,3d,3e,16 WAY更新用DATA
(WE)信号 3f WAY更新用DATA(TAG) 4,8,11 セレクタ 5a,5b,5c,5d TAGアドレスアレイ 6a,6b,6c,6d コンパレータ 7 トレース回路部 9a,9b,9c,9d 各WAY別HITカウンタ 9a’,9b’,9c’,9d’ 各WAY別HITカ
ウンタ 10a,10b,10c,10d,12 トレース用R
AM 11a,11b,11c,11d TAGアドレス 12a WAYWE0〜WAYWE3 12b TAGアドレス0〜TAGアドレス3 12c INDEX0〜INDEXn 12d カウント値0〜カウント値n 13a,13b,13c,13d WAYHIT信号 13a’,13b’,13c’,13d’ WAYMI
SS信号 14 登録用カウンタ 15a,15b,15c,15d 読み出しDATA
(TAG)WAY0〜WAYn信号 20a,20b,20c,20d キャッシュメモリ 21a,21b,21c,21d TAGアドレス
(WE)信号 3f WAY更新用DATA(TAG) 4,8,11 セレクタ 5a,5b,5c,5d TAGアドレスアレイ 6a,6b,6c,6d コンパレータ 7 トレース回路部 9a,9b,9c,9d 各WAY別HITカウンタ 9a’,9b’,9c’,9d’ 各WAY別HITカ
ウンタ 10a,10b,10c,10d,12 トレース用R
AM 11a,11b,11c,11d TAGアドレス 12a WAYWE0〜WAYWE3 12b TAGアドレス0〜TAGアドレス3 12c INDEX0〜INDEXn 12d カウント値0〜カウント値n 13a,13b,13c,13d WAYHIT信号 13a’,13b’,13c’,13d’ WAYMI
SS信号 14 登録用カウンタ 15a,15b,15c,15d 読み出しDATA
(TAG)WAY0〜WAYn信号 20a,20b,20c,20d キャッシュメモリ 21a,21b,21c,21d TAGアドレス
フロントページの続き
(58)調査した分野(Int.Cl.7,DB名)
G06F 12/08
G06F 11/22 - 11/34
Claims (6)
- 【請求項1】 複数のWAYから構成されるキャッシュ
メモリにおいて、該キャッシュメモリの使用効率を測定
するために前記各WAYごとに複数存在する前記キャッ
シュメモリのTAGアドレスが格納されたTAGアドレ
スアレイを有し、該TAGアドレスアレイのエントリに
登録されているアドレスをヒットした回数をカウントす
るWAY別HITカウンタであって、 前記WAY別HITカウンタは、前記エントリがヒット
されるごとにインクリメントされる第1のカウンタと、 前記第1のカウンタがカウントしたカウント値が格納さ
れる第1のRAMと、 前記TAGアドレスアレイの内容が更新されるごとに更
新前のTAGアドレスおよび前記第1のRAMに格納さ
れたカウント値が登録される第2のRAMと、 前記第2のRAMへの登録アドレスを生成する第2のカ
ウンタと、 を具備することを特徴とするWAY別HITカウンタ。 - 【請求項2】 請求項1に記載のWAY別HITカウン
タにおいて、 前記第1のRAMの内容は、前記TAGアドレスアレイ
をアクセスする信号と同じ信号でアクセスされ、該TA
GアドレスアレイがいずれかのWAYでヒットすると、
読み出した値を前記第1のカウンタでHITしたWAY
に対応するカウンタのみインクリメントして、その他の
WAYに対応するカウンタはそのままの値で前記読み出
した値を読み出した同じ領域に書き込むことを特徴とす
るWAY別HITカウンタ。 - 【請求項3】 請求項1に記載のWAY別HITカウン
タにおいて、 前記第2のRAMの内容は、前記TAGアドレスアレイ
の内容が更新されるごとに、更新されるエントリにおけ
る更新前のTAGアドレスおよび前記第1のRAMに登
録された対応するエントリ上のカウント値が登録される
ことを特徴とするWAY別HITカウンタ。 - 【請求項4】 請求項1に記載のWAY別HITカウン
タのカウント方法であって、 TAGごとにヒット数をカウントする場合は、ヒットす
るごとに前記第1のカウンタがインクリメントされ、T
AGアドレスが更新されると前記第1のカウンタの内容
がリセットされて、前記第2のRAMに更新前のTAG
アドレスおよび更新前に前記第1のRAMに格納された
カウント値が登録され、前記エントリごとにヒット数を
カウントする場合は、ヒットするごとに前記第1のカウ
ンタがインクリメントされ、TAGアドレスが更新され
ても前記第1のカウンタの内容がリセットされずそのま
まカウントを続けることを特徴とするWAY別HITカ
ウンタのカウント方法。 - 【請求項5】 複数のWAYから構成されるキャッシュ
メモリにおいて、前記各WAYごとに複数存在する前記
キャッシュメモリのTAGアドレスが格納されたTAG
アドレスアレイを有し、該TAGアドレスアレイのエン
トリに登録されているアドレスをミスした回数をカウン
トして該キャッシュメモリの使用効率を測定するWAY
別MISSカウンタであって、 前記WAY別MISSカウンタは、前記エントリをミス
するごとにインクリメントされる第1のカウンタと、 前記第1のカウンタがカウントしたカウント値が格納さ
れる第1のRAMと、 前記TAGアドレスアレイの内容が更新されるごとに更
新前のTAGアドレスおよび前記第1のRAMに格納さ
れたカウント値が登録される第2のRAMと、 前記第2のRAMへの登録アドレスを生成する第2のカ
ウンタと、 を具備することを特徴とするWAY別MISSカウン
タ。 - 【請求項6】 請求項5に記載のWAY別MISSカウ
ンタのカウント方法であって、 TAGごとにミス数をカウントする場合は、ミスするご
とに前記第1のカウンタがインクリメントされ、TAG
アドレスが更新されると前記第1のカウンタの内容がリ
セットされて、前記第2のRAMに更新前のTAGアド
レスおよび更新前に前記第1のRAMに格納されたカウ
ント値が登録され、前記エントリごとにミス数をカウン
トする場合は、ミスするごとに前記第1のカウンタがイ
ンクリメントされ、TAGアドレスが更新されても前記
第1のカウンタの内容がリセットされずそのままカウン
トを続けることを特徴とするWAY別MISSカウンタ
のカウント方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01734599A JP3522140B2 (ja) | 1999-01-26 | 1999-01-26 | Way別hit/missカウンタおよびそのカウント方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01734599A JP3522140B2 (ja) | 1999-01-26 | 1999-01-26 | Way別hit/missカウンタおよびそのカウント方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000215104A JP2000215104A (ja) | 2000-08-04 |
JP3522140B2 true JP3522140B2 (ja) | 2004-04-26 |
Family
ID=11941474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01734599A Expired - Fee Related JP3522140B2 (ja) | 1999-01-26 | 1999-01-26 | Way別hit/missカウンタおよびそのカウント方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3522140B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599210B2 (en) | 2017-06-29 | 2020-03-24 | Samsung Electronics Co., Ltd. | Processor, computing device including the same and method of selecting low power mode of the same |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1866771B1 (en) | 2005-03-31 | 2012-10-24 | Semiconductor Energy Laboratory Co., Ltd. | Arithmetic processing device and electronic appliance using arithmetic processing device |
JP2007206806A (ja) * | 2006-01-31 | 2007-08-16 | Matsushita Electric Ind Co Ltd | キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ |
WO2012169142A1 (en) | 2011-06-09 | 2012-12-13 | Semiconductor Energy Laboratory Co., Ltd. | Cache memory and method for driving the same |
JP6012263B2 (ja) | 2011-06-09 | 2016-10-25 | 株式会社半導体エネルギー研究所 | 半導体記憶装置 |
-
1999
- 1999-01-26 JP JP01734599A patent/JP3522140B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599210B2 (en) | 2017-06-29 | 2020-03-24 | Samsung Electronics Co., Ltd. | Processor, computing device including the same and method of selecting low power mode of the same |
Also Published As
Publication number | Publication date |
---|---|
JP2000215104A (ja) | 2000-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI338218B (en) | Method and apparatus for prefetching data from a data structure | |
US7634591B2 (en) | Method and apparatus for tracking command order dependencies | |
US7272754B2 (en) | Implementation-efficient multiple-counter value hardware performance counter | |
US6745291B1 (en) | High speed LRU line replacement system for cache memories | |
CN100392623C (zh) | 用于从地址高速缓存去除条目的方法和设备 | |
JPH07104816B2 (ja) | コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 | |
US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
JPH01290050A (ja) | バッファ記憶装置 | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
JP3522140B2 (ja) | Way別hit/missカウンタおよびそのカウント方法 | |
JP3407808B2 (ja) | コンピュータシステム | |
JPH02234242A (ja) | 部分書込み制御装置 | |
IL145651A (en) | Bit Cache Mode (BITS) | |
US20100257319A1 (en) | Cache system, method of controlling cache system, and information processing apparatus | |
CN118295936B (zh) | 高速缓存替换策略的管理方法、装置及电子设备 | |
US6915405B2 (en) | Emulated target associative memory system with a multi-digit incrementable validity counter | |
JPH05225060A (ja) | 情報処理装置 | |
CN100462941C (zh) | 一种实现可配置risc cpu中的存储器空间的方法 | |
US5926840A (en) | Out-of-order fetching | |
JP2004021896A (ja) | キャッシュフィル制御方法及びcpu | |
Crisu | An architectural survey and modeling of data cache memories in verilog hdl | |
JPH1185613A (ja) | キャッシュメモリ | |
JP2001249829A (ja) | システムシミュレータ | |
JPH04326142A (ja) | キャッシュ記憶装置の性能評価方法 | |
CN118295936A (zh) | 高速缓存替换策略的管理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040203 |
|
LAPS | Cancellation because of no payment of annual fees |