(57)【要約】【課題】  一定のサイクル内のキャッシュメモリのヒット率をリアルタイムに出力可能とする。【解決手段】  キャッシュメモリのヒット率測定回路３は、Ｎビットのシフトレジスタ６と、キャッシュヒットカウンタ７と、キャッシュヒットを出力する出力回路８と、を備える。シフトレジスタ６は、クロック信号１と同期して順次入力されるキャッシュアクセスの結果１８を保持する。カウンタ７は、シフトレジスタ６の最下位ビット６０に入力される内容と、最上位ビット６ｎから出力された内容に基づいて更新されるカウンタ値５０（Ｎサイクルあたりのキャッシュヒット回数）を保持する。出力回路８は、カウンタ７のカウンタ値５０を出力する。【選択図】  図２
2006113732.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュアクセスが行われる度に動作し、該キャッシュアクセスの結果を所定回数分記憶保持するレジスタ回路と、
前記レジスタ回路の動作と同期して、レジスタ回路に記憶保持されたキャッシュのヒット回数を計数するカウンタ回路と、
前記計数したキャッシュのヒット回数を出力する出力回路と、を備えたこと、
を特徴とするキャッシュメモリのヒット率測定回路。
【請求項２】
所定のサイクルで動作し、キャッシュアクセスの結果をシリアル入力するＮビットのシフトレジスタと、
前記シフトレジスタの最下位ビットに入力される内容と、最上位ビットから出力された内容に基づいて、前記シフトレジスタに記録されたキャッシュヒット回数を計数するキャッシュヒットカウンタと、
前記キャッシュヒットカウンタのカウンタ値を出力する出力回路と、を備えたこと、
を特徴とするキャッシュメモリのヒット率測定回路。
【請求項３】
請求項２に記載のキャッシュメモリのヒット率測定回路において、更に、
少なくともＣＰＵから要求されたアドレスの上位指定ビットが変更されたか否かを検出し、前記シフトレジスタを駆動するためのクロック信号を生成するタイミング生成回路を備えること、
を特徴とするキャッシュメモリのヒット率測定回路。
【請求項４】
内蔵キャッシュメモリと、
前記内蔵キャッシュメモリの管理を行うとともに、キャッシュアクセスの結果を示す信号を出力するキャッシュ制御回路と、
請求項１乃至３いずれか一に記載のキャッシュメモリのヒット率測定回路と、を備えること、
を特徴とするプロセッサ。
【請求項５】
Ｎビットのシフトレジスタを備えるキャッシュメモリのヒット率測定回路を用いたキャッシュメモリのヒット率測定方法であって、
キャッシュメモリのヒット率測定回路が、
ＣＰＵから要求されたアドレスの上位指定ビットが変更されたか否かを監視し、該アドレスの上位指定ビットが変更されて少なくともキャッシュラインの変更を検知した場合にクロック信号を生成するステップと、
前記クロック信号と同期して、キャッシュアクセスの結果を前記シフトレジスタにシリアル入力するステップと、
前記シフトレジスタの最下位ビットに入力される内容と、最上位ビットから出力された内容に基いて、シフトレジスタに記録されたキャッシュヒット回数を更新するステップと、
前記更新したキャッシュヒット回数を逐次出力するステップと、を含むこと、
を特徴とするキャッシュメモリのヒット率測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのキャッシュメモリのヒット率を測定するキャッシュメモリのヒット率測定回路、キャッシュメモリのヒット率測定機能を備えたプロセッサ、及び、キャッシュメモリのヒット率測定方法に関する。
【背景技術】
【０００２】
ハードウェア資源を利用してキャッシュのヒット率を測定する方法として、特開平５−２０１８７号公報に開示された方法が挙げられる。同公報の方法では、任意のデータリプレース回数に対するキャッシュのヒット回数からキャッシュのヒット率を測定している。また、特開平２−２０１５６１号公報にも、同様のキャッシュヒット率測定回路が開示されている。
【０００３】
【特許文献１】特開平５−２０１８７号公報
【特許文献２】特開平２−２０１５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、特定のソフトウェアの動作の処理能力やパフォーマンスの向上に役立てるため、一定の時間内のキャッシュメモリのヒット率の変化をリアルタイムに知りたいという要請がある。しかしながら、上述の各方法では、累積されたキャッシュメモリのヒット回数から求めたヒット率が得られるに過ぎず、リアルタイム性の高いキャッシュメモリヒット率を得ることができないという問題点がある。なお、特開平２−２０１５６１号公報では、連続してヒット率を監視できるとされているが、キャッシュアクセスカウンタがフルになるタイミングでヒット率をその都度計算するものであり、特定のソフトウェアの動作中のキャッシュアクセス状況を把握するには不十分である。
【０００５】
また、特定のソフトウェアの動作時のキャッシュメモリのヒット率の動向をリアルタイムに知ることができれば、システム側のコンフィグレーションの変更等の対応措置を講ずるなどしてその後のパフォーマンスの向上に役立てる等その用途も大きく広がると考えられる。
【０００６】
本発明は、上記した事情に鑑みてなされたものであって、一定のサイクル内のキャッシュメモリのヒット率の動向を監視し、リアルタイムに出力可能なキャッシュメモリのヒット率測定回路、及び、キャッシュメモリのヒット率測定方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するための手段を提供する本発明の第１の視点によれば、以下の盗聴を備えるキャッシュメモリのヒット率測定回路が提供される。このキャッシュメモリのヒット率測定回路は、レジスタ回路を備え、キャッシュアクセスが行われる度、該キャッシュアクセスの結果を所定回数分記憶保持する。また、このキャッシュメモリのヒット率測定回路は、カウンタ回路を備え、前記レジスタ回路の動作と同期して、レジスタ回路に記憶保持されたキャッシュのヒット回数を計数する。また、このキャッシュメモリのヒット率測定回路は、出力回路を備え、前記計数したキャッシュのヒット回数を出力する。
【０００８】
また本発明の第２の視点によれば、Ｎビットのシフトレジスタと、キャッシュヒットカウンタと、キャッシュヒットを出力する出力回路と、を備えたキャッシュメモリのヒット率測定回路が提供される。前記シフトレジスタは、所定のサイクルで順次入力されるキャッシュアクセスの結果を保持する。前記キャッシュヒットカウンタは、前記シフトレジスタの最下位ビットに入力される内容と、最上位ビットから出力された内容に基づいて更新されるカウンタ値（Ｎサイクルあたりのキャッシュヒット回数）を保持する。出力回路は、前記キャッシュヒットカウンタのカウンタ値を出力するが、この値が、Ｎサイクルあたりのキャッシュのヒット率を表している。また、前記キャッシュメモリのヒット率測定回路は、前記シフトレジスタを駆動するためのクロック信号を生成するタイミング生成回路を備える。前記タイミング生成回路は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）から要求されたアドレスの上位指定ビットが変更された場合に、キャッシュアクセスが行われたものとしてクロック信号を送出する。
【０００９】
また本発明の第３の視点によれば、内蔵キャッシュメモリと、前記内蔵キャッシュメモリの管理を行うとともに、キャッシュアクセスの結果を示す信号を出力するキャッシュ制御回路と、上述したキャッシュメモリのヒット率測定回路とを備えるプロセッサが提供される。
【００１０】
また本発明の第４の視点によれば、Ｎビットのシフトレジスタを用いたキャッシュメモリのヒット率測定方法が提供される。まず、ＣＰＵから要求されたアドレスの上位指定ビットが変更されたか否かを監視し、該アドレスの上位指定ビットが変更されて少なくともキャッシュラインの変更を検知した場合にクロック信号を生成するステップが行われる。そして前記クロック信号と同期して、キャッシュアクセスの結果を前記シフトレジスタにシリアル入力するステップが行われる。そして、前記シフトレジスタの最下位ビットに入力される内容と、最上位ビットから出力された内容に基いて、シフトレジスタに記録されたキャッシュヒット回数を更新するステップが行われ、次いで前記更新したキャッシュヒット回数を逐次出力するステップが行われる。
【発明の効果】
【００１１】
本発明によれば、リアルタイムに過去Ｎサイクル分のキャッシュヒット回数を得ることができる。このキャッシュヒット回数は、ＣＰＵの過去一定処理サイクル内のキャッシュのヒット率と考えることができ、特定のソフトの動作時の処理能力や、パフォーマンスの向上に役立てることができる。
【発明を実施するための最良の形態】
【００１２】
続いて、本発明のその好ましい一実施の形態について図面を参照して詳細に説明する。図１は、本実施の形態に係るプロセッサの概略構成を表した図である。図１を参照すると、ＣＰＵ２、キャッシュ制御回路９、ＴＡＧメモリ１２、キャッシュメモリ４、外部メモリとからなるキャッシュ機構の基本構成に加えて、本発明に係るキャッシュメモリのヒット率測定回路３とが示されている。
【００１３】
ＣＰＵ２は、キャッシュ制御回路９と接続されており、キャッシュ制御回路９は、キャッシュメモリ４とＴＡＧメモリ１２に接続されている。キャッシュメモリ４から出力されたデータは、外部メモリデータとのセレクタ１９に接続されており、ＣＰＵ２に転送される。
【００１４】
図２は、キャッシュメモリのヒット率測定回路３の詳細構成を表した図である。図２を参照すると、キャッシュメモリのヒット率測定回路３は、大きく分けて、タイミング生成回路５と、シフトレジスタ６と、カウンタ７と、出力回路８とを備えている。
【００１５】
タイミング生成回路５は、バスサイクルのスタートタイミング生成回路２３と、アドレスラッチ（Ａ）２９、アドレスラッチ（Ａ−１）３５と、ＡＮＤゲート２７と、分周回路３２、３４と、比較器３３と、フリップフロップ３７とを備え、ＣＰＵのアドレス１６と、キャッシュ制御回路９からキャッシュアクセスのヒット状態を示す信号１７とが入力される。また、タイミング生成回路５は、シフトレジスタ６に対して、後に詳述するシフトクロック信号１と、キャッシュ制御回路９から受信した信号１７に対応する（キャッシュヒット）信号１８を供給する。
【００１６】
バスサイクルのスタートのタイミング生成回路２３は、アドレスラッチ（Ａ）２９、アドレスラッチ（Ａ−１）３５、ＡＮＤゲート２７に対して、バスサイクルの最初にクロック信号を供給する。
【００１７】
アドレスラッチ（Ａ）２９は、ＣＰＵのアドレス１６をラッチする回路でありアドレスラッチ（Ａ−１）３５は、アドレスラッチ（Ａ）２９のアドレスをラッチする回路である。排他的論理和ゲートで構成される比較器３３は、アドレスラッチ（Ａ）２９とアドレスラッチ（Ａ−１）３５の値を比較し、キャッシュアクセスが行われたことを示す信号３６として出力する。
【００１８】
分周回路３４は出力回路８側へ分周クロックを出力する回路であり、分周回路３２は出力回路８側へシリアル出力の外部出力要求を出力する回路である。キャッシュメモリのヒット率のシリアル出力タイミングは、データバス３０を経由しＣＰＵ２から分周回路３２、３４のパラメータを設定することにより変更できるようになっている。
【００１９】
シフトレジスタ６は、Ｎ個のフリップフロップからなり、タイミング生成回路５から受け取った（キャッシュヒット）信号１８の内容、即ち、過去Ｎ回のキャッシュアクセスの履歴を保持可能となっている。またシフトレジスタ６は、カウンタ７に対して、後述するカウンタ値のアップ、ダウン操作のための信号を供給する。
【００２０】
カウンタ７は、シフトレジスタ６の入力と出力の状態に基づいて、アップ、ダウンされるカウンタ値を保持している。またカウンタ７のカウンタ値５０は、出力回路８へ入力される。
【００２１】
また、出力回路８は、カウンタ７のカウンタ値５０を入力し、分周回路３２、３４で指定されたタイミングで外部へデータをシリアル出力する。
【００２２】
続いて本実施の形態の動作について説明する。始めに図１を参照して、キャッシュ機構の概略動作について説明する。まず、キャッシュ制御回路９は、ＣＰＵ２から出力されたアドレス１６と、ＴＡＧメモリ１２のデータと比較してキャッシュがヒットしているか否かを判断する。
【００２３】
キャッシュがヒットしている場合には、キャッシュアクセスのヒット状態を示す信号１７がアクティブ「１」となる。アクティブな信号１７を受信したセレクタ１９が、キャッシュメモリ４のデータバス１３とデータバス１１を繋ぐことにより、ＣＰＵ２は、キャッシュのデータを取得することが可能となる。
【００２４】
一方、キャッシュがヒットしない場合は、キャッシュアクセスのヒット状態を示す信号１７がインアクティブ「０」となる。インアクティブな信号１７を受信したセレクタ１９が、外部メモリのデータバス１４を選択することにより、データバス１１へ外部メモリのデータが送出される。
【００２５】
続いて、図２及び図３のタイミングチャートを参照して、キャッシュメモリのヒット率測定回路３の動作について説明する。アドレスラッチ（Ａ）２９は、バスサイクルのスタートタイミング生成回路２３から出力されたタイミングで、ＣＰＵ２のアドレス１６をラッチする。アドレスラッチ３５は次のバスサイクルのスタートタイミングで、アドレスラッチ２９の値をラッチする。
【００２６】
比較器３３は、アドレスラッチ（Ａ）２９とアドレスラッチ（Ａ−１）３５を比較し、アドレスの下位ｎビット（ｎ＝キャッシュラインビット数）を超えた変化（換言すれば、アドレス上位指定ビットの変化）が生じた場合に、アクティブ「１」とした信号３６を出力する。
【００２７】
一方、バスサイクルのスタートタイミング生成回路２３は、バスサイクルのスタートタイミングでアクティブ「１」とした信号３８を送信する。従って、ＡＮＤゲート２７、フリップフロップ３７を経由して、シフトレジスタ及びカウンタに供給されるクロック信号１は、バスサイクルのスタート条件とアドレスの変化の双方が成立したとき、即ち、少なくともキャッシュラインをまたぐようなアクセスが生じたときに、アクティブ「１」となる。
【００２８】
また、キャッシュ制御回路９から出力される信号１７は、キャッシュがヒットした場合にアクティブ「１」になる信号であり、シフトレジスタ６のシフトタイミングに合わせるために、クロック信号１と同様にフリップフロップ３７を経由して、（キャッシュヒット信号）１８として入力される。
【００２９】
図４は、シフトレジスタ６と、カウンタ７の動作を説明するための図である。図４を参照すると、タイミング生成回路５から出力される、キャッシュのヒット状態を示す信号１８は、クロック信号１の立ち上がりのタイミングでシフトレジスタ６の最下位ビット６０に供給される。
【００３０】
シフトレジスタ６への入力信号１０７（（キャッシュヒット）信号１８）と、シフトレジスタ６の最上位ビット６ｎから取り出される信号１０３、及び、排他的論理和ゲートを経由してカウンタ７に入力されるイネーブル信号１０５の状態により、表１０８のようにカウンタ７がアップ、ダウンすることになる。従って、カウント値は、シフトレジスタ６の各レジスタ６０〜６ｎに保持された「１」の数と同じとなるように更新される。また表１０８からも明らかなように、シフトレジスタ６に入力される信号と出力される信号が同一である場合は、イネーブル信号１０５がインアクティブ「０」となり、カウンタは動作せず、状態を維持する。
【００３１】
このようにしてカウンタ７に保持されるのカウンタ値５０は、出力回路８内部にあるラッチで一旦保持され、分周回路３２、３４から送られる分周クロックと送信要求のタイミングで、シリアル出力１５される。
【００３２】
このように、ＣＰＵのアクセスサイクル毎のキャッシュのヒット数を保持し、カウントすることで、リアルタイムに出力することが可能となる。この出力値は、一定のＮサイクル内のキャッシュのヒット数であるため、その変化をキャッシュヒット率として用いることができる。
【００３３】
以上、本発明の一実施の形態を説明したが、本発明は、上記実施の形態に限定されるものではなく、その他当業者のなしうる変形実施、細部の仕様変更が可能であることはもちろんである。例えば、上記したバスサイクルのスタートのタイミング生成回路２３の構成等は、ＣＰＵ２のタイプに応じて、適宜変更される事項である。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施の形態の概略構成を表した図である。
【図２】本発明の一実施の形態に係るキャッシュメモリのヒット率測定回路の詳細構成を表した図である。
【図３】本発明の一実施の形態を説明するためのタイミングチャートである。
【図４】本発明の一実施の形態のシフトレジスタとカウンタの動作を説明するための図である。
【符号の説明】
【００３５】
１  （シフトレジスタ）クロック信号
２  ＣＰＵ
３  キャッシュメモリのヒット率測定回路
４  キャッシュメモリ
５  タイミング生成回路
６  シフトレジスタ
７  （キャッシュヒット）カウンタ
８  出力回路
９  キャッシュ制御回路
１１、１３、１４  データバス
１２  ＴＡＧメモリ
１５  シリアル出力
１６  アドレス
１７、３６、３８  信号
１８  （キャッシュヒット）信号
１９  セレクタ
２３  バスサイクルのスタートタイミング生成回路
２６、３１  システムクロック
２７  ＡＮＤゲート
２９  アドレスラッチ（Ａ）
３２、３４  分周回路
３３  比較器
３５  アドレスラッチ（Ａ−１）
３７  フリップフロップ
５０  カウンタ値
６０  シフトレジスタ最下位ビット
６ｎ  シフトレジスタ最上位ビット
１０３、１０７  信号
１０５  イネーブル信号
１０８  表
【図１】
2006113732.tif 000003
【図２】
2006113732.tif 000004
【図３】
2006113732.tif 000005
【図４】
2006113732.tif 000006