(57)【特許請求の範囲】
【請求項１】
観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、
前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる前記アクセス回数及び前記所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、
前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに前記アクセス回数及び前記所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、
前記観測対象のアクセスに伴うキャッシュミスの発生を検出するキャッシュミス観測手段とを備えたことを特徴とする性能最適化システム。
【請求項２】
前記キャッシュミス観測手段は、
前記キャッシュミスの発生を通知するキャッシュミス発生通知手段と、
前記キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了を通知するキャッシュミスアクセス終了通知手段とを含むことを特徴とする請求項１記載の性能最適化システム。
【請求項３】
観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、
前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる前記アクセス回数及び前記所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、
前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに前記アクセス回数及び前記所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、
前記観測対象のアクセスに伴うバスアクセスの発生を検出するバスアクセス観測手段とを備えたことを特徴とする性能最適化システム。
【請求項４】
前記バスアクセス観測手段は、
前記バスアクセスの発生を通知するバスアクセス発生通知手段と、
前記バスアクセスの終了を通知するバスアクセス終了通知手段とを含むことを特徴とする請求項３記載の性能最適化システム。
【請求項５】
前記観測対象のアクセスの種別を判定し、特定のアクセスを選択して検出するアクセス種別判定手段をさらに備えたことを特徴とする請求項１から４のいずれか１項に記載の性能最適化システム。
【請求項６】
前記観測対象以外のバスマスタとのアクセス競合の調停によりアクセスが待たされていることを検出するバス調停観測手段と、
バス調停による期間を計数するバス調停期間計数手段と、
前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記バス調停による期間の計数値を保存する複数のテーブルエントリからなるバス調停期間テーブルを保存するバス調停期間テーブル保持手段とをさらに備えたことを特徴とする請求項１から５のいずれか１項に記載の性能最適化システム。
【請求項７】
観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出し、
前記アクセスに関わる所要期間の計数を開始し、
前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、
前記キャッシュミスアクセスの終了を検出し、
前記アクセスに関わる所要期間の計数を終了し、
前記キャッシュミスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする性能最適化方法。
【請求項８】
観測対象のアクセスに伴うバスアクセスの発生を検出し、
前記アクセスに関わる所要期間の計数を開始し、
前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、
前記バスアクセスの終了を検出し、
前記アクセスに関わる所要期間の計数を終了し、
前記バスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする性能最適化方法。
【請求項９】
さらに、バス競合の発生を検出し、
バス調停期間の計数を開始し、
前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記バス調停期間の計数値を保存する複数のエントリからなるバス調停期間テーブルからテーブルエントリを選択し、
前記バス競合の終了を検出し、
前記バス調停期間の計数を終了し、
前記バス競合の発生から終了までの間の前記バス調停期間の計数値により前記バス調停期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする請求項７または８記載の性能最適化方法。
【請求項１０】
さらに、検出したアクセスが指定された任意の条件に適合するか判定を行うことを特徴とする請求項７から９のいずれか１項に記載の性能最適化方法。
【請求項１１】
コンピュータに、
観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出する処理と、
前記アクセスに関わる所要期間の計数を開始する処理と、
前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、
前記キャッシュミスアクセスの終了を検出する処理と、
前記アクセスに関わる所要期間の計数を終了する処理と、
前記キャッシュミスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
を実行させることを特徴とする性能最適化プログラム。
【請求項１２】
コンピュータに、
観測対象のアクセスに伴うバスアクセスの発生を検出する処理と、
前記アクセスに関わる所要期間の計数を開始する処理と、
前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、
前記バスアクセスの終了を検出する処理と、
前記アクセスに関わる所要期間の計数を終了する処理と、
前記バスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
を実行させることを特徴とする性能最適化プログラム。
【請求項１３】
前記コンピュータに、
バス競合の発生を検出する処理と、
バス調停期間の計数を開始する処理と、
前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記バス調停期間の計数値を保存する複数のテーブルエントリからなるバス調停期間テーブルからテーブルエントリを選択する処理と、
前記バス競合の終了を検出する処理と、
前記バス調停期間の計数を終了する処理と、
前記バス競合の発生から終了までの間の前記バス調停期間の計数値により、前記バス調停期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
をさらに実行させることを特徴とする請求項１１または１２記載の性能最適化プログラム。
【請求項１４】
前記コンピュータに、
検出したアクセスが指定された任意の条件に適合するか判定を行う処理をさらに実行させることを特徴とする請求項１１から１３のいずれか１項に記載の性能最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、性能最適化システム、方法及びプログラムに関し、特にキャッシュミスなどによって生じるペナルティなどの所要期間情報を収集し、分析できる性能最適化システムおよび性能最適化方法に関する。
【背景技術】
【０００２】
ＭＰＵ（Micro Processing Unit）等のプロセッサで用いられるキャッシュメモリは、タグメモリとデータメモリとのメモリの組（「キャッシュライン」と呼ばれる。）で構成され、そのキャッシュラインのデータは、アドレスの一部分（「インデックス」と呼ばれる。）を用いて選択される（例えば、特許文献１参照）。このため、プロセッサから、あるアドレスへのメモリアクセスが発生すると、そのアドレスのインデックスによってキャッシュメモリの特定のキャッシュラインが決まり、それに該当するタグメモリとデータメモリとからデータが読み出される。読み出されたタグメモリのデータは、そのメモリアクセスのアドレスにおける上位ビットのデータと比較される。その結果、両データが一致すれば、該当するキャッシュラインのデータが有効とされ（「キャッシュヒット」と呼ばれる。）、そのデータメモリのデータがプロセッサに渡される一方、両データが異なれば、該当するキャッシュラインのデータは無効とされる（「キャッシュミス」と呼ばれる）。【０００３】
ここで、メモリアクセスのアドレスとキャッシュミス情報を取得できれば、プログラムのどの部分でキャッシュミスが発生しているかが分かり、その部分のプログラムを最適化すれば、プロセッサの性能向上を図ることができる。【０００４】
このような性能最適化システムの一例として、特許文献１には、比較的小規模な回路追加でプログラムの最適化に有効なデータを取得できる、キャッシュ観測装置、プロセッサの解析方法、及びキャッシュメモリが開示されている。図１３にその構成を示す。【０００５】
図１３に示すように、特許文献１に記載されている性能最適化システムは、キャッシュミス判定手段ｅ１と、エントリ領域判定手段ｅ２と、キャッシュミス回数計数手段ｅ１０とから構成されている。【０００６】
このような構成を有する性能最適化システムは、次のように動作する。すなわち、キャッシュミス判定手段ｅ１は、キャッシュメモリｅ３へのアクセス発生時に、キャッシュミスが発生したか否かを判定する。エントリ領域判定手段ｅ２は、キャッシュメモリｅ３のキャッシュラインを指定するアドレスの一部分であるインデックスの一部を用いて、キャッシュミスアクセスがキャッシュメモリｅ３のどのキャッシュエントリ領域へのアクセスであったかを判定する。キャッシュミス回数計数手段ｅ１０は、エントリ領域判定手段ｅ２で指定されるキャッシュエントリ領域ごとに、キャッシュミスアクセスの回数を計数する。【０００７】
これによれば、分割されたキャッシュエントリ領域のどの領域でどれだけのキャッシュミスが発生したかを測定することができ、インデックスの分布を利用することで比較的小規模な回路追加によりプログラムの最適化に有効なデータを効率よく取得することができる、とされている。
【特許文献１】特開２００７−２０６８０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に記載の性能最適化システムには、次のような問題があった。【０００９】
第１の問題点は、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができないことである。その理由は、アクセス遅延、待ち時間などの所要期間の大きさを測定できないことによる。【００１０】
第２の問題点は、社外から提供されたＭＰＵコア及びキャッシュメモリ等からなるＭＰＵ等のプロセッサ（中央処理装置、データ処理装置等）を用いた場合など、キャッシュメモリ周辺に修正を加えられない場合には、キャッシュミス観測を行えないことである。その理由は、キャッシュメモリに対するアクセス時にキャッシュミスアクセスを判定する手法を用いており、キャッシュメモリ周辺の信号を観測する必要があることによる。【００１１】
第３の問題点は、他のバスマスタとの競合による性能への影響を把握できないことである。その理由は、バスの調停による待ち時間と純粋なアクセス遅延の切り分けができないためである。【００１２】
さらに、特許文献１に記載の性能最適化システムでは、キャッシュエントリ領域毎にテーブルエントリを構成しているため、キャッシュエントリにはメモリの複数の箇所のデータが入ることから、それら複数の領域にアクセスが発生した場合にその箇所によってキャッシュミスなどによって生じるペナルティが大きく異なる場合の切り分けが難しいといった問題もあった。【００１３】
本発明の目的は、上記を解決し、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明に係る第１の性能最適化システムは、観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる前記アクセス回数及び前記所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに前記アクセス回数及び前記所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、前記観測対象のアクセスに伴うキャッシュミスの発生を検出するキャッシュミス観測手段とを備えたことを特徴とする。
【００１５】
本発明に係る第２の性能最適化システムは、観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる前記アクセス回数及び前記所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに前記アクセス回数及び前記所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、前記観測対象のアクセスに伴うバスアクセスの発生を検出するバスアクセス観測手段とを備えたことを特徴とする。
【００１６】
本発明に係る第１の性能最適化方法は、観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出し、前記アクセスに関わる所要期間の計数を開始し、前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、前記キャッシュミスアクセスの終了を検出し、前記アクセスに関わる所要期間の計数を終了し、前記キャッシュミスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする。
【００１７】
本発明に係る第２の性能最適化方法は、観測対象のアクセスに伴うバスアクセスの発生を検出し、前記アクセスに関わる所要期間の計数を開始し、前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、前記バスアクセスの終了を検出し、前記アクセスに関わる所要期間の計数を終了し、前記バスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする。
【００１８】
本発明に係る第１の性能最適化プログラムは、コンピュータに、観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出する処理と、前記アクセスに関わる所要期間の計数を開始する処理と、前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、前記キャッシュミスアクセスの終了を検出する処理と、前記アクセスに関わる所要期間の計数を終了する処理と、前記キャッシュミスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、を実行させることを特徴とする。
【００１９】
本発明に係る第２の性能最適化プログラムは、コンピュータに、観測対象のアクセスに伴うバスアクセスの発生を検出する処理と、前記アクセスに関わる所要期間の計数を開始する処理と、前記観測対象のアクセスをアドレス値、アクセス種別、アクセスの識別子の組み合わせにより分類し、該分類ごとにメモリの領域を区切り、その区切った分類領域ごとにアクセス回数及び前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、前記バスアクセスの終了を検出する処理と、前記アクセスに関わる所要期間の計数を終了する処理と、前記バスアクセスの発生から終了までの間の前記アクセス回数及び前記所要期間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施例に係る性能最適化システムの構成を示すブロック図である。
【図２】第１の実施例に係る性能最適化システムの動作を示す流れ図である。
【図３】本発明の第２の実施例に係る性能最適化システムの構成を示すブロック図である。
【図４】第２の実施例に係る性能最適化システムの動作を示す流れ図である。
【図５】本発明の第３の実施例に係る性能最適化システムの構成を示すブロック図である。
【図６】第３の実施例に係る性能最適化システムの動作を示す流れ図である。
【図７】本発明の第４の実施例に係る性能最適化システムの構成を示すブロック図である。
【図８】第４の実施例に係る性能最適化システムの動作を示す流れ図である。
【図９】本発明の第５の実施例に係る性能最適化システムの構成を示すブロック図である。
【図１０】第５の実施例に係る性能最適化システムの動作を示す流れ図である。
【図１１】本発明の第６の実施例に係る性能最適化システムの構成を示すブロック図である。
【図１２】第６の実施例に係る性能最適化システムの動作を示す流れ図である。
【図１３】特許文献１に開示された性能最適化システムの構成を示すブロック図である。
【符号の説明】
【００２２】
１００  バスマスタ
１１０  ＭＰＵ（中央処理装置；プロセッサ；データ処理装置）
１１１  ＭＰＵコア
１１２  キャッシュメモリ
１２０  周辺回路
１３０  バスアービタ
２０１  キャッシュミス観測手段
２０２  所要期間計数手段
２０３  テーブルエントリ選択手段
２０４  バスアクセス観測手段
２０５  バス調停観測手段
２０６  バス調停期間計数手段
２０７  キャッシュミス観測手段
２１１  キャッシュミスアクセス発生通知手段
２１２  キャッシュミスアクセス終了通知手段
２１３  アクセス回数テーブル更新手段
２２１  バスアクセス発生通知手段
２２２  バスアクセス終了通知手段
２２３  アクセス種別判定手段
３０１  所要期間テーブル保持手段
３０２  アクセス回数テーブル保持手段
３０３  バス調停期間テーブル保持手段
４０１  アクセス遅延サイクル測定カウンタ
４０２  バス調停サイクル測定カウンタ
４０３  アドレス発生器
４０４  設定レジスタ
４０５  エントリ更新器
４０６  ＡＮＤ回路
４１０  テーブル用メモリ
４２０  バスアクセス観測器
４１１  エントリ（テーブルエントリ）
４１２  アクセス数保持部
４１３  アクセス遅延保持部
４１４  バス調停サイクル数保持部
４２１  アクセスフィルタ
【発明を実施するための最良の形態】
【００２３】
次に、本発明に係る性能最適化システム、方法及びプログラムを実施するための形態について、図面を参照して詳細に説明する。【００２４】
［第１の実施の形態］
本発明の第１の実施の形態に係る性能最適化システムは、所要期間計数手段と、テーブルエントリ選択手段と、所要期間テーブル保持手段と、キャッシュミス観測手段とを備える。これらの各手段は、次のように動作する。キャッシュミス観測手段は、キャッシュミス発生を検出する。所要期間計数手段は、キャッシュミスによるアクセス遅延や待ち時間などの所要期間を計数する。テーブルエントリ選択手段は、キャッシュミスアクセスを観測対象のアクセスのアドレス値等のアクセスに基づく分類領域ごとに選別し、所要期間計数手段による所要期間の計数値により、その選別された分類領域に該当する所要期間テーブル保持手段の該当テーブルエントリを更新する。【００２５】
このような構成を採用し、性能に与える影響の大きさを計測することにより、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供することができる。【００２６】
［第２の実施の形態］
本発明の第２の実施の形態に係る性能最適化システムは、所要期間計数手段と、テーブルエントリ選択手段と、所要期間テーブル保持手段と、バスアクセス観測手段とを備える。これらの各手段は、次のように動作する。バスアクセス観測手段は、バスアクセスを検出する。所要期間計数手段は、キャッシュミスによるアクセス遅延や待ち時間などの所要期間を計数する。テーブルエントリ選択手段は、アクセス種別等のアクセスに基づく分類領域ごとに選別することでキャッシュミスアクセスとその他のアクセスを分類し、所要期間計数手段による所要期間の計数値により、その選別された分類領域に該当する所要期間テーブル保持手段の該当テーブルエントリを更新する。【００２７】
このような構成を採用し、ＭＰＵコア及びキャッシュメモリ等からなるＭＰＵ等のプロセッサ（中央処理装置、データ処理装置等）の外部から観測することにより、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができると共に、さらに社外から提供されたＭＰＵコア及びキャッシュメモリ等、修正を加えられない場合でも、キャッシュミス観測を行うことができる性能最適化システムを提供することができる。【００２８】
［第３の実施の形態］
本発明の第２の実施の形態に係る性能最適化システムは、所要期間計数手段と、テーブルエントリ選択手段と、所要期間テーブル保持手段と、バスアクセス観測手段と、バス調停観測手段と、バス調停期間計数手段と、バス調停期間テーブル保持手段とを備える。これらの各手段は、次のように動作する。バスアクセス観測手段は、バスアクセスを検出する。所要期間計数手段は、アクセス遅延や待ち時間などの所要期間を計数する。バス調停観測手段は、バス調停を検出する。バス調停期間計数手段は、バス調停による待ち時間などの所要期間を計数する。テーブルエントリ選択手段は、バスアクセスを観測対象のアクセスのアドレス値等のアクセスに基づく分類領域ごとに選別し、所要期間計数手段による所要期間の計数値により、その選別された分類領域に該当する所要期間テーブル保持手段の該当テーブルエントリを更新すると共に、バス調停期間計数手段による所要期間の計数値により、上記の選別された分類領域に該当するバス調停期間テーブル保持手段の該当テーブルエントリを更新する。【００２９】
このような構成を採用し、アクセス遅延や待ち時間の所要期間と、所要期間のうちバス調停による待ち時間などが占めるバス調停期間の双方を観測することにより、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができると共に、さらに他のバスマスタとの競合による性能への影響を把握できる性能最適化システムを提供することができる。【００３０】
上記第１〜第３の実施の形態によれば、次のような効果が得られる。【００３１】
第１の効果は、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができることである。その理由は、所要期間計数手段および所要期間テーブル保持手段により各キャッシュミスによる待ちサイクル数などの所要期間の影響が測定可能となり、キャッシュミス回数が少ないが性能に与える影響が大きい場合の特定ができることにある。【００３２】
第２の効果は、社外から提供されたＭＰＵコア及びキャッシュメモリ等、修正を加えられない場合でも、キャッシュミスを観測できることにある。その理由は、本手法ではＭＰＵコア及びキャッシュメモリ等の外部に位置するバスを流れるキャッシュミスアクセスを、バスアクセス観測手段およびテーブルエントリ選択手段によってその他のアクセスと区別して観測可能なためである。【００３３】
第３の効果は、他のバスマスタとの影響を把握できることである。その理由は、バス調停観測手段、バス調停期間計数手段およびバス調停期間テーブル保持手段により、バスの調停による待ち時間とその他の待ち時間の切り分けが可能なためである。【００３４】
以下、本発明の各実施例について、図面を参照して詳細に説明する。
【実施例１】
【００３５】
図１を参照すると、本発明の第１の実施例に係る性能最適化システムは、ＭＰＵコア１１１及びキャッシュメモリ１１２を有するＭＰＵ（中央処理装置、又はプロセッサ、或いはデータ処理装置等を含む。）１１０に接続されるもので、所要期間計数手段２０２と、テーブルエントリ選択手段２０３と、所要期間テーブル保持手段３０１と、キャッシュミス観測手段２０１とを有している。ここで、キャッシュミス観測手段２０１は、キャッシュミスアクセス発生通知手段２１１及びキャッシュミスアクセス終了通知手段２１２を含む。これらの手段は、それぞれ概略つぎのように動作する。【００３６】
所要期間計数手段２０２は、アクセス遅延や待ち時間などの所要期間を計数する。【００３７】
テーブルエントリ選択手段２０３は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤ（identifier）などのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブル保持手段３０１により保持される所要期間テーブルのどのテーブルエントリに所要期間の計数結果（計数値）を保存するかを選択する。【００３８】
所要期間テーブル保持手段３０１は、テーブルエントリ選択手段２０３によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。【００３９】
キャッシュミス観測手段２０１は、キャッシュミスが発生したことを検出する機能と、内部のキャッシュミスアクセス発生通知手段２１１によってキャッシュミスアクセスの発生を通知する機能と、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了を検出する機能と、内部のキャッシュミスアクセス終了通知手段２１２によってキャッシュミスアクセスの終了を通知する機能とを備える。【００４０】
次に、図２のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。【００４１】
まず、キャッシュミス観測手段２０１は、ＭＰＵ１００内のキャッシュメモリ１１２へのアクセスの観測を続ける（ステップＳ１１：Ｎｏ）。その結果、キャッシュミスが発生したことを検出すると（ステップＳ１１：Ｙｅｓ）、キャッシュミス観測手段２０１は、その内部のキャッシュミスアクセス発生通知手段２１１によって所要期間計数手段２０２及びテーブルエントリ選択手段２０３にアクセス発生を通知する。【００４２】
次に、所要期間計数手段２０２は、キャッシュミス観測手段２０１からのアクセス発生通知を受けると、所要期間の計数を開始する（ステップＳ１２）。【００４３】
さらに、テーブルエントリ選択手段２０３は、キャッシュミス観測手段２０１からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値を用いて、所要期間テーブル保持手段３０１のどのテーブルエントリの結果（所要期間値）を更新するかを選択する（ステップＳ１３）。【００４４】
この間、キャッシュミス観測手段２０１は、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了の監視を続ける（ステップＳ１４：Ｎｏ）。その結果、キャッシュミスアクセスが終了すると（ステップＳ１４：Ｙｅｓ）、キャッシュミス観測手段２０１は、その内部のキャッシュミスアクセス終了通知手段２１２によって所要期間計数手段２０２にアクセスの終了を通知する。【００４５】
ここで、所要期間計数手段２０２は、キャッシュミスアクセス観測手段２０１からのアクセス終了通知を受けると、所要期間の計数を終了する（ステップＳ１５）。【００４６】
最後に、所要期間計数手段２０２は、所要期間テーブル保持手段３０１のテーブルエントリを更新する（ステップＳ１６）。更新するテーブルエントリは、テーブルエントリ選択手段２０３によって選択されたものとなる。【００４７】
なお、ステップＳ１３のテーブルエントリ選択については、ステップＳ１１のアクセス検出後からステップＳ１６の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。【００４８】
次に、本実施例の効果について説明する。【００４９】
本実施例では、所要期間計数手段２０２および所要期間テーブル保持手段３０１により各キャッシュミスによる待ちサイクル数などの所要期間の影響が測定可能なように構成されているため、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる。【００５０】
また、本実施例では、さらに、テーブルエントリ選択手段２０３および所要期間テーブル保持手段３０１によって、アドレス範囲やアクセスの内容等のアクセスに基づいて分類した領域ごとに所要期間の値を保持できるように構成されているため、性能に与える影響が大きいアクセスがどのような領域で発生しているかを特定することができる。【００５１】
また、本実施例では、例えば前述した特許文献１に記載の性能最適化システムのようにキャッシュエントリ領域ごとのテーブルエントリを構成するのではなく、元のメモリ領域を区切りその区切った領域ごとにテーブルエントリを構成して測定しているため、メモリの複数の領域にアクセスが発生した場合に、その領域によってキャッシュミスなどによって生じるペナルティが大きく異なる場合の切り分けも容易になる等の利点もある。
【実施例２】
【００５２】
次に、本発明の第２の実施例について図面を参照して詳細に説明する。【００５３】
図３を参照すると、本実施例に係る性能最適化システムは、ＭＰＵコア及びキャッシュメモリ等の外部に位置するバスマスタ１００及び周辺回路１２０に接続されるもので、所要期間計数手段２０２と、テーブルエントリ選択手段２０３と、所要期間テーブル保持手段３０１と、バスアクセス観測手段２０４とを有している。ここで、バスアクセス観測手段２０４は、バスアクセス発生通知手段２２１及びバスアクセス終了通知手段２２２を含む。これらの手段は、それぞれ概略つぎのように動作する。【００５４】
所要期間計数手段２０２は、アクセス遅延や待ち時間などの所要期間を計数する。【００５５】
テーブルエントリ選択手段２０３は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。【００５６】
所要期間テーブル保持手段３０１は、テーブルエントリ選択手段２０３によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。【００５７】
バスアクセス観測手段２０４は、バスへのアクセスが発生したことを検出する機能と、内部のバスアクセス発生通知手段２２１によって検出したアクセスを通知する機能と、バスアクセスの終了を検出する機能と、内部のバスアクセス終了通知手段２２２によってバスアクセスの終了を通知する機能とを備える。【００５８】
次に、図４のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。【００５９】
まず、バスアクセス観測手段２０４は、バスへのアクセス発生の観測を続ける（ステップＳ２１：Ｎｏ）。その結果、アクセスを検出すると（ステップＳ２１：Ｙｅｓ）、バスアクセス観測手段２０４は、その内部のバスアクセス発生通知手段２２１によって所要期間計数手段２０２及びテーブルエントリ選択手段２０３にアクセス発生を通知する。【００６０】
次に、所要期間計数手段２０２は、バスアクセス観測手段２０４からのアクセス発生通知を受けると、所要期間の計数を開始する（ステップＳ２２）。【００６１】
さらに、テーブルエントリ選択手段２０３は、同様にバスアクセス観測手段２０４からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブル保持手段３０１のどのテーブルエントリの結果を更新するかを選択する（ステップＳ２３）。【００６２】
この間、バスアクセス観測手段２０４は、バスアクセスの終了の監視を続ける（ステップＳ２４：Ｎｏ）。その結果、バスアクセスが終了すると（ステップＳ２４：Ｙｅｓ）、バスアクセス観測手段２０４は、その内部のバスアクセス終了通知手段２２２によって所要期間計数手段２０２にアクセスの終了を通知する。【００６３】
ここで、所要期間計数手段２０２は、バスアクセス観測手段２０４からのアクセス終了通知を受けると、所要期間の計数を終了する（ステップＳ２５）。【００６４】
最後に、所要期間計数手段２０２は、所要期間テーブル保持手段３０１のテーブルエントリを更新する（ステップＳ２６）。更新するテーブルエントリは、テーブルエントリ選択手段２０３によって選択されたものとなる。【００６５】
なお、ステップＳ２３のテーブルエントリ選択については、ステップＳ２１のアクセス検出後からステップＳ２６の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。【００６６】
次に、本実施例の効果について説明する。【００６７】
ある種のＭＰＵやバスを利用した場合において、キャッシュミスアクセスはその他のアクセスと異なる特徴的な形態が取られている。ここで、本実施例では、ＭＰＵコア及びキャッシュメモリ等の外部に位置する、バスを流れるアクセスをバスアクセス観測手段２０４によって観測し、テーブルエントリ選択手段２０３によってキャッシュミスアクセスとその他のアクセスを分離して格納する形態を取ることで、社外から提供されたＭＰＵコア及びキャッシュメモリ等からなるＭＰＵなど、修正を加えられない場合でもキャッシュミスを観測できる。【００６８】
また、本実施例では、キャッシュミス観測手段２０１に代えてバスアクセス観測手段２０４を備え、キャッシュミスに限らない所要期間を測定可能なように構成されているため、ＤＭＡ（Direct Memory Access）コントローラやその他の機能ブロックなど、キャッシュを備えるＭＰＵ以外のバスマスタの所要期間を観測できる。【００６９】
更に、本実施例では、複数のアクセス種別を使い分けるＭＰＵ以外のバスマスタについて、性能への影響をアクセス種別毎に切り分けて観測することもできる。
【実施例３】
【００７０】
次に、本発明の第３の実施例について図面を参照して詳細に説明する。【００７１】
図５を参照すると、本実施例に係る性能最適化システムは、ＭＰＵコア及びキャッシュメモリ等の外部に位置するバスマスタ１００及び周辺回路１２０に接続されるもので、所要期間計数手段２０２と、テーブルエントリ選択手段２０３と、所要期間テーブル保持手段３０１と、バスアクセス観測手段２０４と、バス調停観測手段２０５と、バス調停期間計数手段２０６と、バス調停期間テーブル保持手段３０３とを有している。ここで、バスアクセス観測手段２０４は、バスアクセス発生通知手段(図示せず)及びバスアクセス終了通知手段(図示せず)を含む。これらの手段は、それぞれ概略つぎのように動作する。【００７２】
所要期間計数手段２０２は、アクセス遅延や待ち時間などの所要期間を計数する。【００７３】
テーブルエントリ選択手段２０３は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれかもしくはこれら複数の組み合わせを用いて所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。【００７４】
所要期間テーブル保持手段３０１は、テーブルエントリ選択手段２０３によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。【００７５】
バスアクセス観測手段２０４は、バスへのアクセスが発生したことを検出する機能と、内部のバスアクセス発生通知手段(図示せず)によって検出したアクセスを通知する機能と、バスアクセスの終了を検出する機能と、内部のバスアクセス終了通知手段(図示せず)によってバスアクセスの終了を通知する機能とを備える。【００７６】
バス調停観測手段２０５は、複数のバスマスタ１００の競合による調停待ちが発生していることを検出する。【００７７】
バス調停期間計数手段２０６は、複数のバスマスタ１００の競合による調停待ちが発生している期間を計数する。ここで測定されるバス競合時間は、複数のバスマスタ１００がバスに対してアクセス要求を行った際に、バスのアクセス権の調停を行うバスのコントローラが、アクセス権を与えていないバスマスタ１００に対してアクセスを待たせているサイクル数に対応する。【００７８】
バス調停期間テーブル保持手段３０３は、テーブルエントリ選択手段２０３によって分類された領域ごとのバス調停期間値を保存する複数のテーブルエントリからなるバス調停期間テーブルを保持する。【００７９】
次に、図６のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。【００８０】
まず、バスアクセス観測手段２０４は、バスへのアクセス発生の観測を続ける（ステップＳ３１：Ｎｏ）。その結果、バスへのアクセス発生を検出すると（ステップＳ３１：Ｙｅｓ）、バスアクセス観測手段２０４は、その内部のバスアクセス発生通知手段(図示せず)によって所要期間計数手段２０２、テーブルエントリ選択手段２０３、及びバス調停観測手段２０５にアクセス発生を通知する。【００８１】
次に、所要期間計数手段２０２は、バスアクセス観測手段２０４からのアクセス発生通知を受けると、所要期間の計数を開始する（ステップＳ３２）。【００８２】
さらに、テーブルエントリ選択手段２０３は、同様にバスアクセス観測手段２０４からのアクセス発生通知を受けると、通知されたバスアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて所要期間テーブル保持手段３０１のどのテーブルエントリの結果を更新するかを選択する（ステップＳ３３）。【００８３】
ここで、バス調停観測手段２０５は、同様にバスアクセス観測手段２０４からのアクセス発生通知を受けるが、観測対象のアクセスにバス競合による調停待ちが発生していない場合（ステップＳ３４：Ｎｏ）、何もせずにステップＳ３８に進む。一方、観測対象のアクセスにバス競合による調停待ちが発生している場合（ステップＳ３４：Ｙｅｓ）、バス調停観測手段２０５は、バス調停期間計数手段２０６にバス調停待ち発生を通知し、バス調停期間計数手段２０６は、バス調停期間の計数を開始する（ステップＳ３５）。【００８４】
その後、バス調停観測手段２０５は、バス調停の観測を続ける（ステップＳ３６：Ｎｏ）。その結果、観測対象アクセスのバス調停待ち終了を検出すると（ステップＳ３６：Ｙｅｓ）、バス調停観測手段２０５は、バス調停期間計数手段２０６にバス調停待ち終了を通知し、バス調停期間計数手段２０６は、バス調停期間の計数を終了する（ステップＳ３７）。【００８５】
ここで、バスアクセス観測手段２０４は、バスアクセスの終了の監視を続ける（ステップＳ３８：Ｎｏ）。その結果、バスアクセスが終了すると（ステップＳ３８：Ｙｅｓ）、バスアクセス観測手段２０４は、その内部のバスアクセス終了通知手段２２２によって所要期間計数手段２０２にアクセスの終了を通知する。【００８６】
所要期間計数手段２０２は、バスアクセス観測手段２０４からのアクセス終了通知を受けると、所要期間の計数を終了する（ステップＳ３９）。【００８７】
最後に、所要期間計数手段２０２は、所要期間テーブル保持手段３０１のテーブルエントリを、バス調停期間計数手段２０６は、バス調停期間テーブル保持手段３０３のテーブルエントリを、それぞれ更新する（ステップＳ３１０、Ｓ３１１）。更新するテーブルエントリは、テーブルエントリ選択手段２０３によって選択されたものとなる。【００８８】
なお、ステップＳ３３のテーブルエントリ選択については、ステップＳ３１のアクセス検出後からステップＳ３１０の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。【００８９】
また、ステップＳ３１０のバス調停期間テーブル更新については、テーブルエントリ選択後であれば、ステップＳ３７のバス調停期間計数終了以降、表記の順序に限らず、実行可能である。【００９０】
次に、本実施例の効果について説明する。【００９１】
本実施例では、バス調停観測手段、バス調停期間計数手段およびバス調停期間テーブル保持手段により、バスの調停による待ち時間とその他の待ち時間の切り分けが可能となり、他のバスマスタとの影響を把握できる。
【実施例４】
【００９２】
次に、本発明の第４の実施例について図面を参照して詳細に説明する。【００９３】
図７を参照すると、本実施例に係る性能最適化システムは、ＭＰＵコア及びキャッシュメモリ等の外部に位置するバスマスタ１００及び周辺回路１２０に接続されるもので、所要期間計数手段２０２と、テーブルエントリ選択手段２０３と、所要期間テーブル保持手段３０１と、バスアクセス観測手段２０８とを有している。ここで、バスアクセス観測手段２０８は、バスアクセス発生通知手段２２１、バスアクセス終了通知手段２２２及びアクセス種別判定手段２２３を含む。これらの手段は、それぞれ概略つぎのように動作する。【００９４】
所要期間計数手段２０２は、アクセス遅延や待ち時間などの所要期間を計数する。【００９５】
テーブルエントリ選択手段２０３は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。【００９６】
所要期間テーブル保持手段３０１は、テーブルエントリ選択手段２０３によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。【００９７】
バスアクセス観測手段２０８は、バスへのアクセスが発生したことを検出する機能と、内部のアクセス種別判定手段２２３によって、検出したバスアクセス情報のうち、アドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセスの種別、アクセスＩＤなど情報を用いて、指定された任意の条件に適合するアクセスを選別する機能と、内部のバスアクセス発生通知手段２２１によって検出したアクセスを通知する機能と、バスアクセスの終了を検出する機能と、内部のバスアクセス終了通知手段２２２によってバスアクセスの終了を通知する機能を備える。【００９８】
次に、図８のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。【００９９】
まず、バスアクセス観測手段２０８は、バスへのアクセス発生の観測を続ける（ステップＳ４１：Ｎｏ）。その結果、バスへのアクセス発生を検出すると（ステップＳ４１：Ｙｅｓ）、バスアクセス観測手段２０８は、その内部のアクセス種別判定手段２２３を起動する。【０１００】
次に、アクセス種別判定手段２２３は、検出したバスアクセス情報のうち、アドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどの情報を用いて、検出したバスアクセスが指定された任意の条件に適合するか判定を行う。その結果、条件に適合しない場合（ステップＳ４２：Ｎｏ）は、ステップＳ４１に戻り、次のバスアクセスの検出を行う。一方、条件に適合する場合（ステップＳ４２：Ｙｅｓ）、バスアクセス観測手段２０８は、その内部のバスアクセス発生通知手段２２１によって適合したアクセスが発生したことをアクセス発生通知として、所要期間計数手段２０２及びテーブルエントリ選択手段２０３に通知する。【０１０１】
次に、所要期間計数手段２０２は、バスアクセス観測手段２０８からのアクセス発生通知を受けると、所要期間の計数を開始する（ステップＳ４３）。【０１０２】
さらに、テーブルエントリ選択手段２０３は、同様にバスアクセス観測手段２０８からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて所要期間テーブル保持手段３０１のどのテーブルエントリの結果を更新するかを選択する（ステップＳ４４）。【０１０３】
この間、バスアクセス観測手段２０８は、バスアクセスの終了の監視を続ける（ステップＳ４５：Ｎｏ）。その結果、バスへのアクセスが終了すると（ステップＳ４５：Ｙｅｓ）、バスアクセス観測手段２０８は、その内部のバスアクセス終了通知手段２２２によって所要期間計数手段２０２にアクセスの終了を通知する。【０１０４】
ここで、所要期間計数手段２０２は、バスアクセス観測手段２０８からのアクセス終了通知を受けると、所要期間の計数を終了する（ステップＳ４６）。【０１０５】
最後に、所要期間計数手段２０２は、所要期間テーブル保持手段３０１のテーブルエントリを更新する（ステップＳ４７）。更新するテーブルエントリは、テーブルエントリ選択手段２０３によって選択されたものとなる。【０１０６】
なお、ステップＳ４４のテーブルエントリ選択については、ステップＳ４１のアクセス検出後からステップＳ４７の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。【０１０７】
次に、本実施例の効果について説明する。【０１０８】
本実施例では、バスアクセス観測手段内にアクセス種別判定手段を設け、観測する対象アクセスを限定して観測可能なように構成されているため、観測する必要がないアクセスを排除することや、所要期間テーブル保持手段の容量を削減することができる。
【実施例５】
【０１０９】
次に、本発明の第５の実施例について図面を参照して詳細に説明する。【０１１０】
図９を参照すると、本実施例に係る性能最適化システムは、ＭＰＵコア１１１及びキャッシュメモリ１１２を有するＭＰＵ１１０に接続されるもので、所要期間計数手段２０２と、テーブルエントリ選択手段２０３と、所要期間テーブル保持手段３０１と、キャッシュミス観測手段２０７と、アクセス回数テーブル保持手段３０２とを有している。これらの手段は、それぞれ概略つぎのように動作する。【０１１１】
所要期間計数手段２０２は、アクセス遅延や待ち時間などの所要期間を計数する。【０１１２】
テーブルエントリ選択手段２０３は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。【０１１３】
所要期間テーブル保持手段３０１は、テーブルエントリ選択手段２０３によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。【０１１４】
キャッシュミス観測手段２０７は、キャッシュミスが発生したことを検出する機能と、内部のキャッシュミスアクセス発生通知手段２１１によってキャッシュミスアクセスの発生を通知する機能と、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了を検出する機能と、内部のキャッシュミスアクセス終了通知手段２１２によってキャッシュミスアクセスの終了を通知する機能と、内部のアクセス回数テーブル更新手段２１３によってアクセス回数テーブル保持手段３０２によって保持されるアクセス回数テーブルを更新する機能とを備える。【０１１５】
アクセス回数テーブル保持手段３０２は、テーブルエントリ選択手段２０３によって分類された領域ごとのアクセス回数を保存する複数のエントリからなるアクセス回数テーブルを保持する。【０１１６】
次に、図１０のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。【０１１７】
まず、キャッシュミス観測手段２０７は、キャッシュメモリ１１２へのアクセスの観測を続ける（ステップＳ５１：Ｎｏ）。その結果、キャッシュミスが発生したことを検出すると（ステップＳ５１：Ｙｅｓ）、キャッシュミス観測手段２０７は、その内部のキャッシュミスアクセス発生通知手段２１１によって所要期間計数手段２０２及びテーブルエントリ選択手段２０３にアクセス発生を通知する。【０１１８】
次に、所要期間計数手段２０２は、キャッシュミス観測手段２０７からのアクセス発生通知を受けると、所要期間の計数を開始する（ステップＳ５２）。【０１１９】
さらに、テーブルエントリ選択手段２０３は、キャッシュミス観測手段２０７からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値を用いて所要期間テーブル保持手段３０１のどのテーブルエントリの結果を更新するかを選択する（ステップＳ５３）。【０１２０】
この間、キャッシュミス観測手段２０７は、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了の監視を続ける（ステップＳ５４：Ｎｏ）。その結果、バスへのキャッシュミスアクセスが終了すると（ステップＳ５４：Ｙｅｓ）、キャッシュミス観測手段２０７は、その内部のキャッシュミスアクセス終了通知手段２１２によって所要期間計数手段２０２にアクセスの終了を通知する。【０１２１】
ここで、所要期間計数手段２０２は、キャッシュミス観測手段２０７からのアクセス終了通知を受けると、所要期間の計数を終了する（ステップＳ５５）。【０１２２】
最後に、所要期間計数手段２０２は、所要期間テーブル保持手段３０１のテーブルエントリを、キャッシュミス観測手段２０７は、その内部のアクセス回数テーブル更新手段２１３によってアクセス回数テーブル保持手段３０２のテーブルエントリを、それぞれ更新する（ステップＳ５６、Ｓ５７）。更新するエントリは、テーブルエントリ選択手段２０３によって選択されたものとなる。【０１２３】
なお、ステップＳ５３のテーブルエントリ選択については、ステップＳ５１のアクセス検出後からステップＳ５６の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。【０１２４】
また、ステップＳ５７のアクセス回数テーブル更新については、テーブルエントリ選択後であれば、ステップＳ５１のアクセス検出以降表記の順序に限らず実行可能である。【０１２５】
次に、本実施例の効果について説明する。【０１２６】
本実施例では、アクセス回数テーブル保持手段３０２により分類領域ごとのアクセス回数を保持できるように構成されているため、所要期間テーブル保持手段３０１によって保持されている領域ごとの所要期間情報と組み合わせて、分類領域ごとのアクセスの平均所要期間を特定することができる。
【実施例６】
【０１２７】
次に、本発明の第６の実施例について詳細に説明する。【０１２８】
図１１に示す本実施例の性能最適化システムは、ＭＰＵコア及びキャッシュメモリ等の外部に位置するバスマスタ１００及び周辺回路１２０に接続されるもので、アクセス遅延サイクル測定カウンタ４０１と、バス調停サイクル測定カウンタ４０２と、アドレス発生器４０３と、設定レジスタ４０４と、エントリ更新器４０５と、ＡＮＤ回路４０６と、テーブル用メモリ４１０と、バスアクセス観測器４２０とを有している。【０１２９】
テーブル用メモリ４１０は、アクセス数保持部４１２、アクセス遅延保持部４１３、バス調停サイクル数保持部４１４から構成される複数のエントリ（テーブルエントリ）４１１から構成されるテーブルを保持している。【０１３０】
バスアクセス観測器４２０は、対象アクセスの絞込みを行うアクセスフィルタ４２１を含む。バスアクセス観測器４２０は、バスの観測点からの信号と、設定レジスタ４０４からの設定内容の信号を受け取り、設定レジスタ４０４から通知された設定内容に従って、バスの観測点からの信号を元に観測を行う。この時、設定レジスタ４０４の設定において観測対象の絞込みを行うよう設定されていた場合、アクセスフィルタ４２１によって絞込みを行う。【０１３１】
バスアクセス観測器４２０は、観測対象アクセス検出通知と観測対象アクセス終了通知をアクセス遅延サイクル測定カウンタ４０１、バス調停サイクル測定カウンタ４０２、エントリ更新器４０５及びＡＮＤ回路４０６に通知する。このために観測対象アクセスが発生中に観測対象アクセス検出・終了通知信号がＨレベルとなるよう構成し、検出通知は信号がＬレベルからＨレベルへの変化、終了通知はＨレベルからＬレベルへの変化によって行われる。また、観測対象のバスアクセスを検出した際、観測対象アクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどを、アドレス発生器４０３に対して通知する。【０１３２】
ここで、バスには複数のアクセスがオーバーラップする方式を採用するものが存在する。このようなバスを観測対象とする場合、バスアクセス観測器４２０は、複数のバスアクセスがオーバーラップするケースに対応できる必要がある。【０１３３】
なお、本実施例においては、簡単のため単一のバスマスタ１００における例を記載しているが、複数のバスマスタを観測対象とする構成に容易に拡張可能であり、対象とすることが望ましい。【０１３４】
アクセス遅延サイクル測定カウンタ４０１は、バスアクセス観測器４２０から観測対象バスアクセスの開始通知と終了通知を受け取る。本実施例では、バスアクセス観測器４２０は、観測対象アクセス発生中に観測対象アクセス検出・終了通知信号にＨレベルを出力するよう構成されており、アクセス遅延サイクル測定カウンタ４０１は、バスアクセス観測器４２０からの信号がＨレベルである期間のサイクル数のカウントを行う。バスアクセス観測器４２０からの信号がＨレベルからＬレベルに変化すると、カウントを終了すると共に測定値をエントリ更新器４０５に通知する。【０１３５】
ここで、バスには、複数のアクセスがオーバーラップする方式を採用するものが存在する。このようなバスを観測対象とする場合、アクセス遅延サイクル測定カウンタ４０１は、複数のバスアクセスがオーバーラップするケースに対応できるよう、複数のカウンタを備える必要がある。【０１３６】
バス調停サイクル測定カウンタ４０２は、ＡＮＤ回路４０６からバス調停検出通知と終了通知を受け取る。本実施例では、ＡＮＤ回路４０６は、観測対象アクセス発生中に観測対象バスマスタ１００が調停待ちとなった場合にＨレベルを出力するよう構成されている。バス調停サイクル測定カウンタ４０２は、ＡＮＤ回路４０６からの信号がＨレベルである期間のサイクル数のカウントを行い、ＡＮＤ回路４０６からの信号がＨレベルからＬレベルに変化すると、カウントを終了すると共に測定値をエントリ更新器４０５に通知する。【０１３７】
ここで、バスには、複数のアクセスがオーバーラップする方式を採用するものが存在する。このようなバスを観測対象とする場合、バス調停サイクル測定カウンタ４０２は、複数のバスアクセスがオーバーラップするケースに対応できるよう、複数のカウンタを備える必要がある。【０１３８】
アドレス発生器４０３は、バスアクセス観測器４２０から観測対象アクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどを受け取る。アドレス発生器４０３は、これらの情報を用いて、測定結果を保存するエントリが格納されている、テーブル用メモリ４１０のアドレスを算出し、エントリ更新器に通知する。【０１３９】
設定レジスタ４０４は、バスアクセス観測器４２０の観測対象の設定、動作の設定等や、アドレス発生器４０３の動作の設定等を保持し、それぞれバスアクセス観測器４２０及びアドレス発生器４０３に通知する。【０１４０】
エントリ更新器４０５は、バスアクセス観測器４２０からの観測対象アクセスの検出・終了通知、アクセス遅延サイクル測定カウンタ４０１及びバス調停サイクル測定カウンタ４０２からの測定値の通知、アドレス発生器４０３からのテーブル用メモリ４１０のアドレスの通知を受ける。【０１４１】
また、エントリ更新器４０５は、テーブル用メモリ４１０上のエントリ４１１を更新する機能を備える。更新は、観測対象アクセスの終了が通知された時点で開始されるが、この通知は、バスアクセス観測器４２０からの観測対象アクセス検出・終了通知信号がＨレベルからＬレベルに変化したことを検知して行われる。アクセスの終了が通知されると、エントリ更新器４０５は、アドレス発生器４０３から通知されたアドレスを元にテーブル用メモリ４１０上の更新対象エントリ４１１の値を読み込む。【０１４２】
ここで、エントリ４１１は、アクセス数保持部４１２、アクセス遅延保持部４１３、バス調停サイクル数保持部４１４から構成されるが、エントリ更新器４０５は、アクセス数保持部４１２の値を１加算し、アクセス遅延保持部４１３の値にアクセス遅延サイクル測定カウンタ４０１から通知された測定値を加算し、バス調停サイクル数保持部４１４の値にバス調停サイクル測定カウンタ４０２から通知された測定値を加算する。加算後、テーブル用メモリ４１０上の更新対象エントリ４１１に対して書き戻しを行う。【０１４３】
ＡＮＤ回路４０６は、バスアクセス観測器４２０からの観測対象アクセス検出・終了通知信号と、バスアービタ１３０からの観測対象バスマスタ１００の調停待ち信号を受け取る。ここで、バスアービタ１３０は、観測対象バスマスタ１００が調停待ちである場合にＨレベルを出力するよう構成する。本実施例では、観測対象アクセス発生中がＨレベル、観測対象バスマスタの調停待ち時にＨレベルとして構成されており、観測対象アクセス発生中に観測対象バスマスタ１００が調停待ちとなった場合にバス調停サイクル測定カウンタにＨレベルを出力する。【０１４４】
次に、図１２のフローチャートを用いて、本実施例における動作を説明する。なお、本フローチャートは、代表的な動作順序を抜粋したものであるが、実際には本実施例における性能最適化システムの各要素が前記のとおり独立して動作する。このため、必ずしも本フローチャートの手順に従うものではなく、異なる順序となることがある。【０１４５】
まず、バスアクセス観測器４２０は、バスへのアクセス発生の観測を続け（ステップＳ６１：Ｎｏ）、アクセスを検出すると（ステップＳ６１：Ｙｅｓ）、内部のアクセスフィルタ４２１による選別を開始する。【０１４６】
アクセスフィルタ４２１は、検出したバスアクセス情報のうち、アドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどの情報を用いて、検出したバスアクセスが設定レジスタ４０４によって指定された任意の条件に適合するか判定を行う。ここで、条件に適合しない場合（ステップＳ６２：Ｎｏ）は、次のバスアクセスの検出に戻る。一方、条件に適合する場合（ステップＳ６２：Ｙｅｓ）、バスアクセス観測器４２０は、適合したアクセスが発生したことをアクセス発生通知として、アクセス遅延サイクル測定カウンタ４０１と、アドレス発生器４０３と、エントリ更新器４０５と、ＡＮＤ回路４０６とに通知する（エントリ更新器４０５への通知は、ここでは意味を持たない）。【０１４７】
通知は、観測対象アクセス検出・終了通知信号をＬレベルからＨレベルに変化させることで行われる。この時、アドレス発生器４０３への観測対象アクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどの通知も同時に行われる。【０１４８】
次に、アクセス遅延サイクル測定カウンタ４０１は、観測対象アクセス検出・終了通知信号がＨレベルの時にサイクル数をカウントするよう構成されているため、バスアクセス観測器４２０からのアクセス発生通知によって計数を開始する（ステップＳ６３）。【０１４９】
さらに、アドレス発生器４０３は、バスアクセス観測器４２０からのアクセス発生通知を受けると、同時に通知されたバスアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスＩＤなどのいずれか、もしくはこれら複数の組み合わせを用いて、測定結果を保存するエントリが格納されている、テーブル用メモリ４１０のアドレスを算出し、エントリ更新器４０５に通知する（ステップＳ６４）。【０１５０】
また、この時、ＡＮＤ回路４０６の入力の片方に観測対象アクセス検出・終了通知信号としてＨレベルが入力される。【０１５１】
バスアービタ１３０は、観測対象バスマスタ１００が調停待ちである場合にＨレベルを出力するよう構成されているため、観測対象のアクセスにバス競合による調停待ちが発生していない場合は、ＡＮＤ回路４０６の入力の片方がＬレベルであり、バス調停サイクル測定カウンタ４０２へはＬレベルを出力する。【０１５２】
この場合、バス調停サイクル測定カウンタ４０２は、何もせずに（ステップＳ６５：Ｎｏ）、ステップＳ６９に進む。観測対象のアクセスにバス競合による調停待ちが発生している場合は（ステップＳ６５：Ｙｅｓ）、ＡＮＤ回路４０６の２つの入力がＨレベルとなる。そうすると、バス調停サイクル測定カウンタ４０２は、Ｈレベルが入力されることにより、バス調停期間の計数を開始する（ステップＳ６６）。【０１５３】
その後、バス調停サイクル測定カウンタ４０２は、ＡＮＤ回路４０６からの入力がＨレベルの間、計数を続け（ステップＳ６７：Ｎｏ）、観測対象アクセスのバス調停待ちが終了すると、バスアービタ１３０からＡＮＤ回路４０６への信号がＬレベルとなり、ＡＮＤ回路４０６がＬレベルを出力する（ステップＳ６７：Ｙｅｓ）。バス調停サイクル測定カウンタ４０２は、ＡＮＤ回路４０６からの信号がＬレベルになると、計数を終了し（ステップＳ６７：Ｙｅｓ）、エントリ更新器４０５に計数値を通知する（ステップＳ６８）。【０１５４】
ここで、バスアクセス観測器４２０は、バスアクセスの終了の監視を続ける（ステップＳ６９：Ｎｏ）。その結果、バスアクセスが終了すると（ステップＳ６９：Ｙｅｓ）、バスアクセス観測器４２０は、アクセス遅延サイクル測定カウンタ４０１と、アドレス発生器４０３と、エントリ更新器４０５と、ＡＮＤ回路４０６とに、観測対象アクセス検出・終了通知信号をＬレベルとすることで、アクセスの終了を通知する（アドレス発生器４０３、ＡＮＤ回路４０６への通知は、ここでは意味を持たない）。【０１５５】
アクセス遅延サイクル測定カウンタ４０１は、アクセスが終了し観測対象アクセス検出・終了通知信号がＬレベルとなると、所要期間の計数を終了し（ステップＳ６９：Ｙｅｓ）、エントリ更新器４０５に計数値を通知する（ステップＳ６１０）。【０１５６】
ここで、エントリ更新器４０５は、バスアクセス観測器４２０からのアクセス検出・終了通知信号がＨレベルからＬレベルになることでアクセスの終了が通知されると、アドレス発生器４０３から通知されたアドレスを元にテーブル用メモリ４１０上の更新対象エントリ４１１の値を読み込む（ステップＳ６１１）。【０１５７】
ここで、更新対象エントリ４１１は、アクセス数保持部４１２、アクセス遅延保持部４１３、バス調停サイクル数保持部４１４から構成される。この更新対象エントリ４１１に対し、エントリ更新器４０５は、アクセス数保持部４１２の値を１加算し、アクセス遅延保持部４１３の値にアクセス遅延サイクル測定カウンタ４０１から通知された計数値を加算し、バス調停サイクル数保持部４１４の値にバス調停サイクル測定カウンタ４０２から通知された計数値を加算する（ステップＳ６１２）。加算後、エントリ更新器４０５は、テーブル用メモリ４１０上の更新対象エントリ４１１に対して書き戻しを行う（ステップＳ６１３）。【０１５８】
次に、本実施例における観測方法の応用例を説明する。【０１５９】
特定のプロセッサとバスの組み合わせにおいて、プロセッサからのキャッシュミスアクセスでは、バス上を「ＷＲＡＰバースト」と呼ばれる特徴的なバスアクセスが発生する。ＷＲＡＰバーストでは、連続するｎ個のデータを転送する時、1≦ｍ≦ｎであるｍ番目の任意のデータから転送をスタートし、ｎ番目のデータ転送後、１番目に戻ってｍ−１番目のデータまで転送する手順にて、ｎ個のデータを転送することを許可する転送方式となっている。また、バーストアクセスの長さは、キャッシュラインを満たすデータ数の転送が行える長さとなっている特長がある。【０１６０】
このため、設定レジスタ４０４の設定によって、アドレス発生器４０３にＷＲＡＰバーストはバーストアクセス長によって異なるエントリを更新させる方法や、同様に設定レジスタ４０４の設定によって、バスアクセス観測器４２０内のアクセスフィルタ４２１によって該当アクセスに絞り込んで観測する方法などにより、キャッシュミスアクセスを分離して観測することができる。【０１６１】
なお、上記各実施例に係る性能最適化システムは、上述した構成要素の各処理（機能）を実現可能なものであれば、そのシステムの物理的構成、そのシステム内部のハードウェア（回路）及びソフトウェア（プログラム）構成については、特に限定されるものではない。例えば、独立して個別の回路やユニット或いはプログラム部品（プログラムモジュール等）を構成したり、１つの回路やユニット内に一体的に構成したりする等、いずれの形態でも適用可能である。これらの形態は、実際に使用するシステムの機能や用途等の事情に応じて適宜選択可能である。【０１６２】
また、上述した構成要素の各機能に対応して、これらと同様の処理を行う各処理ステップを有する性能最適化方法も、本発明の範疇に含まれる。【０１６３】
さらに、上述した構成要素の各機能の内の少なくとも一部の処理は、ＣＰＵ（Central Processing Unit）を有するプロセッサ等のコンピュータによるソフトウェア処理で実現してもよい。この場合、コンピュータを機能させるためのプログラム（性能最適化プログラム）は、本発明の範疇に含まれる。このプログラムは、ＣＰＵにより直接実行可能な形式のプログラムに限らず、ソース形式のプログラムや、圧縮処理されたプログラム、暗号化されたプログラム等、種々形態のプログラムを含む。また、このプログラムは、システム全体の制御を行うＯＳ（Operating System）やファームウェア等の制御プログラムと連携して動作し、或いはその一部に組み込まれて一体的に動作するアプリケーションプログラムやそれを構成するソフトウェア部品（ソフトウェアモジュール）等、いずれの形態でも提供可能である。さらに、このプログラムは、無線又は有線回線を介して外部装置と通信する通信機能を有するシステムに実装して使用する場合、例えば回線上に接続されたサーバ等の外部ノードからダウンロードして自システム内の記録媒体にインストールして使用することもできる。これらの形態は、実際に使用するシステムの機能や用途等の事情に応じて適宜選択可能である。【０１６４】
また、上記のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。この場合、記録媒体は、ＲＯＭ（Read Only Memory）等のメモリ等、システム内に固定して使用されるものや、利用者により持ち運びが可能な可搬型のもの等、いずれの形態でも適用可能である。【０１６５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１６６】
この出願は、２００８年２月１３日に出願された日本出願特願２００８−０３１７２８号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１６７】
本発明によれば、キャッシュミスを観測して性能最適化を行う情報を収集する用途に適用できる。また、複数のバスマスタの競合を観測して性能最適化を行う情報を収集する用途にも適用可能である。
【図１】
0005397771.tif 000002
【図２】
0005397771.tif 000003
【図３】
0005397771.tif 000004
【図４】
0005397771.tif 000005
【図５】
0005397771.tif 000006
【図６】
0005397771.tif 000007
【図７】
0005397771.tif 000008
【図８】
0005397771.tif 000009
【図９】
0005397771.tif 000010
【図１０】
0005397771.tif 000011
【図１１】
0005397771.tif 000012
【図１２】
0005397771.tif 000013
【図１３】
0005397771.tif 000014