(57)【特許請求の範囲】
【請求項１】
システム全体の制御を行う中央演算処理手段と複数のバスマスタを備え、システムバスおよびメモリバスを介して共有のメモリにアクセスするデータ処理装置であって、
前記バスマスタから前記システムバスへのデータ転送を調停するバス調停手段と、
前記データ処理装置を構成する各モジュールへクロック信号を供給するクロック生成手段と、
前記バスマスタからのメモリアクセス要求を実行するために前記メモリバスを介して前記メモリに接続されたメモリ制御手段を備え、
前記メモリ制御手段は、
前記メモリアクセス要求からコマンドを生成するコマンド生成手段と、
前記メモリアクセス要求および実行サイクル数の情報を取得するモニタ手段と、
前記モニタ手段が取得したメモリアクセス要求および実行サイクル数の情報を、前記メモリアクセス要求の実行履歴を示す情報として格納する保持手段と、
前記保持手段に格納された前記実行履歴を示す情報を前記メモリへ書き出すデータ書き出し手段と、
前記コマンド生成手段の出力と前記データ書き出し手段の出力を切り替えて前記メモリに送出する切り替え手段とを備え、
前記切り替え手段によって選択された前記データ書き出し手段は、前記メモリバスを介して前記保持手段のデータを前記メモリへ出力することを特徴とするデータ処理装置。
【請求項２】
前記モニタ手段は、前記中央演算処理手段からアドレス値を用いて指定される、メモリアクセス要求の取得に係る開始条件および終了条件に従って、前記メモリアクセス要求の情報を取得し、前記保持手段に前記実行履歴を示す情報を出力することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記データ書き出し手段は、前記中央演算処理手段から指定されるデータ書き出しの開始アドレスに従って前記メモリへの書き出し処理を行うことを特徴とする請求項１または２記載のデータ処理装置。
【請求項４】
前記データ書き出し手段は、前記メモリへのリフレッシュコマンドの発行後における前記メモリバスのアイドル期間中に、前記クロック生成手段を制御して前記モジュールへのクロック信号の供給停止を指示した後で前記メモリへのデータ書き出し処理を行うことを特徴とする請求項１から３のいずれか１項記載のデータ処理装置。
【請求項５】
システム全体の制御を行う中央演算処理手段と複数のバスマスタを備え、システムバスおよびメモリバスを介して共有のメモリにアクセスするデータ処理装置にて実行される制御方法であって、
前記バスマスタから前記システムバスへのデータ転送を調停するバス調停ステップと、
前記データ処理装置を構成する各モジュールへクロック信号を供給するクロック生成ステップと、
前記バスマスタからのメモリアクセス要求を実行するメモリ制御ステップを有し、
前記メモリ制御ステップは、
コマンド生成手段が前記メモリアクセス要求からコマンドを生成するコマンド生成ステップと、
モニタ手段が前記メモリアクセス要求および実行サイクル数の情報を取得する取得ステップと、
前記モニタ手段が取得したメモリアクセス要求および実行サイクル数の情報を、前記メモリアクセス要求の実行履歴を示す情報として保持手段が格納する保持ステップと、
前記保持手段に格納された前記実行履歴を示す情報をデータ書き出し手段が前記メモリへ書き出すデータ書き出しステップと、
切り替え手段が前記コマンド生成手段の出力と前記データ書き出し手段の出力を切り替えて前記メモリに送出する切り替えステップと、を備え、
前記切り替えステップにて前記切り替え手段によって選択された前記データ書き出し手段は、前記メモリバスを介して前記保持手段のデータを前記メモリへ出力することを特徴とするデータ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムＬＳＩなどのデータ処理装置の性能を評価する技術に関し、特にメモリアクセス効率の最適化に関するものである。
【背景技術】
【０００２】
バス上での転送制御を行う複数のバスマスタがシステムバスを介してメインメモリであるＤＲＡＭ（Dynamic Random Access Memory）にアクセスする共有メモリ構成のシステムＬＳＩが知られている。各バスマスタからのメモリアクセス要求はメモリ制御回路によって処理される。メモリ制御回路はメモリバスに接続されたＤＲＡＭとの間でデータ転送を実行する。複数のバスマスタからメモリアクセス要求が同時に発生した場合、システムバスを監視するバスアービタは、予め決められた優先順位に従ってアクセス権を制御する。システムバスのデータ転送効率を高めるために、メモリ制御回路にコマンド・キューを設け、複数のメモリアクセス要求を保持する構成が一般的に用いられる。またメモリバスのデータ転送効率を高めるために、コマンド・キューに保持されたメモリアクセス要求の実行順序を並べ替えるリオーダリング処理が知られている。
【０００３】
上記のような共有メモリ構成のシステムＬＳＩにおいて、システムの性能を最適化するためには各バスマスタに対して適切にバス帯域を割り当てる必要がある。特に、バスマスタから複数のメモリアクセス要求が同時に発生している状況において、局所的なメモリアクセスの集中により性能が低下しないようにシステムを制御する技術が知られている。特許文献１や特許文献２には、各バスマスタのデータ処理のアクセス量とともに、アクセス時間の情報を取得し、ソフトウェアを修正してシステム性能を最適化することで、システム負荷による性能劣化を回避する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１９３０９３号公報
【特許文献２】特開２０１０−０３３４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術ではメモリバスのデータ転送効率まで含めたシステム性能の最適化が難しいという問題がある。通常、複数のバスマスタからのメモリアクセス要求が頻繁に発生する状況では、メモリアクセス要求のアドレスやデータ転送方向の前後関係に依存してメモリバス上でのオーバーヘッドが発生し得る。このようなメモリバス上でのオーバーヘッドを低減するためには、バスアービタの優先度設定やリオーダリング処理の動作モード設定といった、メモリアクセス効率に関わるパラメータの調整が必要である。
【０００６】
従来、メモリアクセス効率に関わるパラメータの調整については、論理シミュレーションや、性能評価ボードを用いた実機評価により行われてきた。しかし、論理シミュレーションでは実行に時間がかかるため、全ての条件を評価することが難しい。また実機評価ではシステムＬＳＩ内部の挙動を観測できないので、メモリアクセス効率までをも考慮した設定値の調整が困難であった。そこで補完的な技術としてロジック・アナライザーを用いて性能評価ボード上のメモリバスを直接観測する方法が知られている。この方法は、近年多用されているシステムＬＳＩとＤＲＡＭを１つのパッケージに実装したＰＯＰ（Package On Package）構造では信号観測が困難になっている。
【０００７】
本発明は、システムＬＳＩなどのデータ処理装置の性能評価に必要なメモリアクセスに関する情報を実機評価にて容易に取得できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明に係る装置は、システム全体の制御を行う中央演算処理手段と複数のバスマスタを備え、システムバスおよびメモリバスを介して共有のメモリにアクセスするデータ処理装置であって、前記バスマスタから前記システムバスへのデータ転送を調停するバス調停手段と、前記データ処理装置を構成する各モジュールへクロック信号を供給するクロック生成手段と、前記バスマスタからのメモリアクセス要求を実行するために前記メモリバスを介して前記メモリに接続されたメモリ制御手段を備える。前記メモリ制御手段は、前記メモリアクセス要求からコマンドを生成するコマンド生成手段と、前記メモリアクセス要求および実行サイクル数の情報を取得するモニタ手段と、前記モニタ手段が取得したメモリアクセス要求および実行サイクル数の情報を、前記メモリアクセス要求の実行履歴を示す情報として格納する保持手段と、前記保持手段に格納された前記実行履歴を示す情報を前記メモリへ書き出すデータ書き出し手段と、前記コマンド生成手段の出力と前記データ書き出し手段の出力を切り替えて前記メモリに送出する切り替え手段とを備え、前記切り替え手段によって選択された前記データ書き出し手段は、前記メモリバスを介して前記保持手段のデータを前記メモリへ出力する。
【発明の効果】
【０００９】
本発明によれば、メモリアクセス要求をトレースして実行履歴の情報をメモリへ書き出すことによって、データ処理装置の性能評価に必要な情報を取得できる。
【図面の簡単な説明】
【００１０】
【図１】図２ないし１０と併せて本発明の実施形態を説明するために、システムＬＳＩおよび周辺デバイスの概要を例示した図である。
【図２】メモリアクセス要求の概要（Ａ）とメモリアクセス履歴の概要（Ｂ）を説明する図である。
【図３】メモリアクセス履歴ファイルの概要を説明する図である。
【図４】システム性能測定処理の流れを例示するフローチャートである。
【図５】モニタ動作の概要を例示するフローチャートである。
【図６】データ書き出し処理の概要を例示するフローチャートである。
【図７】性能評価対象となるデータ処理に関与する回路部とメモリを示した図である。
【図８】メモリアクセス履歴ファイルの説明図である。
【図９】メモリアクセス指標データから得られる、各データ処理の起動および終了時間とバス帯域の推移を例示した図である。
【図１０】メモリアクセス効率を改善した場合における、各データ処理の起動および終了時間とバス帯域の推移を例示した図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施形態に係るデータ処理装置を、添付図面に基づいて詳細に説明する。
図１は本実施形態に関わるシステムＬＳＩ（大規模集積回路）および周辺デバイスについて概要を示す図である。
システムＬＳＩ１００はＩ／О（入出力）ポート１０７を介して各種のデバイス（符号１０１乃至１０４参照）と接続されている。ＲＯＭ（読み出し専用メモリ）１０１は制御プログラムを格納する記憶手段であり、ＲＯＭ制御回路１１４に接続されている。ホストＰＣ（パーソナル・コンピュータ）４０２と通信するためのシリアルポート１０２は、インターフェース（以下、ＩＦと略記する）制御回路１１５に接続されている。画像データ生成装置１０３はシステムＬＳＩ１００に画像データを供給する装置であり、画像処理回路１１６に接続されている。メモリカード１０４は画像データなどを保存する記憶デバイスであり、メモリカード制御回路１１８に接続されている。さらにシステムＬＳＩ１００はメモリバス１０６を介して外部の共有メモリ（以下、単にメモリという）１０５に接続されている。
【００１２】
システムＬＳＩ１００は、システム全体を制御するＣＰＵ（中央演算処理装置）１１０を備える。ＣＰＵ１１０は、システムバス１１１を介して、バスアービタ１１２、クロック生成回路１１３、メモリ制御回路１２０に接続されている。クロック生成回路１１３はシステムＬＳＩ１００の各モジュールおよび外部デバイスにクロック信号を供給するモジュールである。
【００１３】
複数のバスマスタとして、ＲＯＭ制御回路１１４、ＩＦ制御回路１１５、画像処理回路１１６、データ圧縮回路１１７、メモリカード制御回路１１８がシステムバス１１１に接続されている。ＲＯＭ制御回路１１４はＣＰＵ１１０とＲＯＭ１０１との間でデータ転送を制御するモジュールである。ＩＦ制御回路１１５はＣＰＵ１１０とシリアルポート１０２との間でデータ転送を制御するモジュールである。画像処理回路１１６は画像データ生成装置１０３から入力される画像データを処理するモジュールである。データ圧縮回路１１７は画像処理回路１１６で処理された画像データのサイズを圧縮するモジュールである。メモリカード制御回路１１８はメモリカード１０４へのデータ転送を制御するモジュールである。尚、これらのバスマスタはＤＭＡ（Direct Memory Access）コントローラを内蔵しており、ＣＰＵ１１０の介在なしにメモリ制御回路１２０へのメモリアクセス要求を発行できる。またバスアービタ１１２はバスマスタからシステムバス１１１へのデータ転送を調停するバス調停手段であり、ＣＰＵ１１０からの制御により、各バスマスタへのアクセス権発行の優先度を変更できる。
【００１４】
メモリ制御回路１２０は、メモリアクセス要求を実行するためのモジュールとして、バスＩＦ１２１、アドレスデコーダ１２２、コマンド・キュー１２３、コマンド生成回路１２４、データ・キュー１２５を内蔵する。バスＩＦ１２１はシステムバス１１１との間でデータ転送を制御する。アドレスデコーダ１２２はバスＩＦ１２１から取得したメモリアクセス要求のアドレスを、メモリ１０５のバンク、ロウ、カラムアドレスの構成に応じてデコード処理する。コマンド・キュー１２３はアドレスデコーダ１２２から取得したメモリアクセス要求をメモリアクセス実行まで保持し、保持しているメモリアクセス要求の実行順序を変更するリオーダリング処理の機能を備える。コマンド生成回路１２４はコマンド・キュー１２３の先頭に保持されているメモリアクセス要求をＤＲＡＭコマンドに変換し、メモリバス１０６上でのデータ転送を実行する。データ・キュー１２５はバスＩＦ１２１から取得したデータをメモリアクセスの実行時点まで一時的に保持する。コマンド生成回路１２４はデータ・キュー１２５に保持されたデータの転送処理を行う。
【００１５】
さらに、メモリ制御回路１２０は、メモリアクセス要求の実行履歴を示す情報をメモリ１０５に書き出すためのモジュールとして、モニタ１２６、トレース・キュー１２７、データ書き出し回路１２８を内蔵する。モニタ１２６はコマンド・キュー１２３の先頭に保持されているメモリアクセス要求の情報をサンプリングによって抽出するとともに、メモリアクセスの実行サイクルをカウントする。トレース・キュー１２７はモニタ１２６がサンプリングで抽出したメモリアクセス要求の情報と、実行サイクルのカウント値を保持する。データ書き出し回路１２８はトレース・キュー１２７に保持されたメモリアクセス要求の実行履歴情報を、定期的にメモリ１０５に書き出す処理を実行する。切り替え回路１２９は、コマンド生成回路１２４およびデータ書き出し回路１２８とメモリバス１０６との間で信号入出力制御を排他的に切り替える。レジスタ１３０はメモリ制御回路１２０内の各モジュールの動作モードやステータスを管理する。
【００１６】
図２（Ａ）は本実施形態に係るコマンド・キュー１２３に保持されるメモリアクセス要求について概要を例示した図である。
メモリアクセス要求は、以下に示す情報を含む。
・バスマスタの識別子ID
・メモリ１０５に対するデータ転送方向（リードまたはライト）を示す指定子DIR
・アクセス先のバンクアドレスを示す指定子BANK
・アクセス先のロウアドレスを示す指定子ROW
・アクセス先のカラムアドレスを示す指定子COL
・データ転送サイズを示すSIZE。
【００１７】
図２（Ｂ）は本実施形態に係るトレース・キュー１２７に保持されるメモリアクセス履歴について概要を例示した図である。
メモリアクセス履歴は、以下の情報を含む。
・バスマスタの識別子ID
・メモリ１０５に対するデータ転送方向（リードまたはライト）を示す指定子DIR
・アクセス先のバンクアドレスを示す指定子BANK
・アクセス先のロウアドレスを示す指定子ROW
・データ転送サイズを示すSIZE
・データ転送に要した実行サイクル数を示すCYCLE。
【００１８】
図３は、データ書き出し回路１２８によってメモリ１０５に書き出されるメモリアクセス履歴情報ファイル（以下、単に履歴ファイルという）について概要を示す。図３には、メモリアドレス（Address）と前記のID，DIR，BANK，ROW，SIZE，CYCLEについての各履歴情報を示す。ファイルの各要素のビットサイズは、ID：２ビット、DIR：１ビット、BANK：２ビット、ROW：１０ビット、SIZE：８ビット、CYCLE：９ビットの合計３２ビットであり、履歴情報はアドレス0x10000から４バイトおきに保存される。履歴ファイルの最後にはデータの終了を示すサンプリング終了コード（全ビット‘１’）が挿入される。なお、これら要素の各ビットサイズは例示であって、本発明を適用するにあたって、異なるビット数で定義してもよい。
【００１９】
次に、本実施形態におけるシステム性能評価の実施環境を説明する。
システム性能評価ボードには、図１で示したシステムＬＳＩ１００と各種の外部デバイスが搭載されている。ホストＰＣ４０２は、シリアルケーブル４０３を介して、システム性能評価ボードのＣＰＵ１１０と通信を行う。システム性能評価処理の流れとしては、まず、ホストＰＣ４０２の指示に従って、ＣＰＵ１１０がＲＯＭ１０１に内蔵された性能測定プログラムを実行する。性能測定プログラムの実行が完了した後、ホストＰＣ４０２はメモリ１０５に書き出された履歴ファイルを参照し、メモリアクセス効率に関わる各種メモリアクセス指標データを算出する（後述の表１ないし６参照）。このメモリアクセス指標データを基に、メモリアクセス効率に関わるパラメータの設定値を調整することで、システム性能の最適化が図られる。
【００２０】
図４はＣＰＵ１１０が性能測定プログラムに従って実行する処理例を示すフローチャートである。ＣＰＵ１１０はホストＰＣ４０２からの指示によりＲＯＭ１０１に内蔵された性能測定プログラムの実行を開始させる。
まず、Ｓ５０１でＣＰＵ１１０は、モニタ１２６によるメモリアクセス要求のサンプリング開始および終了条件を開始アドレス値および終了アドレス値としてそれぞれレジスタ１３０に設定する。続いてＳ５０２でＣＰＵ１１０は、データ書き出し回路１２８がトレース・キュー１２７の内容をメモリ１０５に書き出す際の開始アドレスの値をレジスタ１３０に設定する。Ｓ５０３でＣＰＵ１１０は、バスアービタ１１２の図示しない制御レジスタに、各バスマスタのデータ転送量に応じたアクセス権割り当ての優先度を設定する。Ｓ５０４でＣＰＵ１１０は、メモリ制御回路１２０のレジスタ１３０に、コマンド・キュー１２３のリオーダリング処理の動作モードを設定する。
以上のＳ５０１からＳ５０４の処理でＣＰＵ１１０が設定する値については、予めＲＯＭ１０１に内蔵されたプログラムに記述して設定する方法と、ホストＰＣ４０２から直接的に値を入力して設定する方法がある。
【００２１】
Ｓ５０５でＣＰＵ１１０は、性能評価の対象となるデータ処理プログラムを実行し、データ処理プログラムの実行完了を待つ（Ｓ５０６）。Ｓ５０７でＣＰＵ１１０は、メモリ１０５に書き出された履歴ファイルの情報を参照して、サンプリング終了コードが書き出されたアドレス値を確認する。Ｓ５０８でＣＰＵ１１０は、ホストＰＣ４０２の表示部の画面に、Ｓ５０３、Ｓ５０４で設定したパラメータの値を表示させる制御を行う。Ｓ５０９でＣＰＵ１１０は、ホストＰＣ４０２の表示部の画面に、履歴ファイルが格納されているメモリのアドレス領域を表示させる制御を行う。該アドレス領域は、Ｓ５０２で設定したデータ書き出し先のアドレス値から開始し、サンプリング終了コードのアドレス値で終了する領域である。そして、処理が終了する。
【００２２】
次に、図５のフローチャートを用いて、モニタ１２６の動作概要を説明する。モニタ１２６は、ＣＰＵ１１０からのサンプリング開始および終了設定（図４のＳ５０１参照）を受けて動作を開始する。ここでサンプリング開始条件および終了条件についてはＣＰＵ１１０からアドレス値を用いて指定される。
まずＳ６０１でモニタ１２６は、コマンド・キュー１２３の先頭に格納されたメモリアクセス要求を参照し、サンプリング開始条件に合致するか否かを判定する。取得したメモリアクセス要求がサンプリング開始条件に合致しない場合、モニタ１２６は次のメモリアクセス要求の更新まで待機するために、Ｓ６０１の判定処理を繰り返す。また、メモリアクセス要求がサンプリング開始条件に合致する場合、Ｓ６０２に処理を進め、モニタ１２６はメモリアクセス要求の情報（図２（Ａ）参照）を取得する。Ｓ６０３でモニタ１２６は、次のメモリアクセス要求の更新までの実行サイクル数をカウントする。Ｓ６０４でモニタ１２６は、トレース・キュー１２７に取得したメモリアクセス要求の情報とカウント値（図２（Ｂ）参照）をメモリアクセス履歴として保存する。Ｓ６０５でモニタ１２６は、トレース・キュー１２７に保存したメモリアクセス履歴の情報がサンプリング終了条件に合致するか否かを判定する。サンプリング終了条件との合致が判定された場合、Ｓ６０６に処理を進め、トレース・キュー１２７にサンプリング終了コードを追加する処理が実行された後、一連の処理を終了する。Ｓ６０５でメモリアクセス履歴の情報がサンプリング終了条件に合致しない場合、モニタ１２６は次のメモリアクセス要求の更新まで待機し、Ｓ６０２に戻って処理を繰り返す。
【００２３】
次に、図６のフローチャートを用いて、図１のデータ書き出し回路１２８の動作について概要を説明する。データ書き出し回路１２８はＣＰＵ１１０からのデータ書き出し先アドレスの設定（図４のＳ５０２参照）を受けて動作を開始する。
まずＳ７０１でデータ書き出し回路１２８は、メモリバス１０６を監視し、コマンド生成回路１２４からのメモリ１０５へのリフレッシュコマンド発行までの間、待機する。Ｓ７０２でデータ書き出し回路１２８はクロック生成回路１１３を制御して、データ書き出し回路１２８、トレース・キュー１２７、切り替え回路１２９およびメモリ１０５を除いた、各モジュールへのクロック信号の供給を停止させる。続くＳ７０３にて、切り替え回路１２９は、データ書き出し回路１２８からの入力信号を選択する状態に切り替え、データ書き出し回路１２８の出力をメモリ１０５に送出する。つまり、データ書き出し回路１２８はトレース・キュー１２７の内容を指定されたメモリアドレスの領域に書き出す。データ書き出し処理の完了後、Ｓ７０４でデータ書き出し回路１２８は、次回のデータ書き出し処理に備えて、メモリ１０５へのデータ書き出し先のアドレス値を更新する。Ｓ７０５でデータ書き出し回路１２８は、メモリ１０５にリフレッシュコマンドを発行し、切り替え回路１２９はコマンド生成回路１２４からの信号を選択する状態に戻す。Ｓ７０６でデータ書き出し回路１２８は、クロック生成回路１１３を制御してシステムＬＳＩ１００の各部および外部デバイスへのクロック信号の供給を再開させる。
以上のＳ７０１からＳ７０５までの処理については、サンプリング終了コードがメモリ１０５に書き出されるまでの間、繰り返し実行される。
【００２４】
上記のようにクロック信号の供給停止および再開を行う前には、データ書き出し回路１２８がメモリ１０５に対してリフレッシュコマンドを発行し、コマンド発行後のメモリバス１０６のアイドル期間中にクロック生成回路１１３を制御する。これにより、メモリ１０５へのデータ書き出しによってコマンド生成回路１２４とメモリ１０５と間でのステートの不一致が生じないように防止できる。
【００２５】
次に、図７に示すデータ処理を例にして、履歴ファイルからメモリアクセス効率に関わる各種メモリアクセス指標データを算出する処理について説明する。図７のデータ処理例では、画像データ１枚分について以下の３つの処理が並列に実行される。
（１）画像処理回路１１６からメモリ１０５のバンク１に画像データを書き込む処理（以下、処理１とする）。
（２）画像処理回路１１６がバンク１に書き込んだ画像データを、データ圧縮回路１１７がバンク１から読み出してデータ圧縮処理を施した後、メモリ１０５のバンク２へ書き出す処理（以下、処理２とする）。
（３）データ圧縮回路１１７がバンク２へ書き込んだ圧縮データを、メモリカード１０４に保存する為にメモリカード制御回路１１８がバンク２から読み出す処理（以下、処理３とする）。
このように、処理１ではバンク１への書き込みだけが行われ、処理２ではバンク１からの読み出しおよびバンク２への書き込みが行われ、処理３ではバンク２からの読み出しだけが行われる。
【００２６】
図８は図７のデータ処理にて性能測定プログラムを実行した場合にメモリ１０５に書き出される履歴ファイルの情報を例示する。図８には、メモリアドレス（Address）と前記のID，DIR，BANK，ROW，SIZE，CYCLEの各履歴情報を示す。ここでは各要素の値を識別し易くするため、バスマスタ識別子IDをアルファベット［Ａ，Ｂ，Ｃ，Ｄ］で表記している。また、データ転送方向の指定子DIRについては［Ｗ，Ｒ］の記号で表記し、“Ｗ”は書き込みを示し、“Ｒ”は読み出しを示す。T0，T1，T2は、処理１、処理２、処理３の開始時刻をそれぞれ表し、T3，T4，T5は処理１、処理２、処理３の終了時刻をそれぞれ表す。各データ処理区間を“TX-TY”で表記し、“X”および“Y”は整数値を表す変数である。
【００２７】
下表１から６は、履歴ファイルから算出されるメモリアクセス指標データを例示し、各データ処理区間（T0-T1，T1-T2，T2-T3，T3-T4，T4-T5）および全区間（T0-T5）についての算出結果を示す。下記に示す値は、各データ処理区間でのメモリアクセス履歴の情報を読み出して、所定の演算により集計することで得られる。
【００２８】
【表１】
0005850724.tif 000002
表１は、各データ処理区間および全区間における実行サイクル数を示す。これらの値は、データ転送方向（リード／ライト）別に全てのバスマスタ分のCYCLE値を積算することによって算出される。
【００２９】
【表２】
0005850724.tif 000003
表２は、各データ処理区間および全区間における各バスマスタのデータ転送方向（リード／ライト）別のメモリアクセス回数を示す。これらの値は、前記のIDとDIRのパターンを積算することにより算出される。
【００３０】
【表３】
0005850724.tif 000004
表３は、各データ処理区間および全区間における各バスマスタのデータ転送量を示す。これらの値は、データ転送方向（リード／ライト）別にバスマスタ毎のSIZE値を積算することにより算出される。
【００３１】
【表４】
0005850724.tif 000005
表４は、各データ処理区間および全区間におけるバスマスタ毎に割り当てられたバス帯域を示す。これらの値は、データ転送方向（リード／ライト）別にバスマスタ毎のデータ転送量をアクセス回数で除算することにより算出される。
【００３２】
【表５】
0005850724.tif 000006
表５は、各データ処理区間および全区間におけるメモリアクセス要求のアクセスパターン（バンク、ロウアドレスの遷移）を示す。これらの値は、読み出した前後のメモリアクセス履歴からBANK、ROWの値についての遷移パターンを積算することにより算出される。
【００３３】
【表６】
0005850724.tif 000007
表６は、各データ処理区間および全区間におけるメモリアクセス要求のデータ転送方向（リード／ライト）の遷移パターンを示す。これらの値は、読み出した前後のメモリアクセス履歴からDIRの値についての遷移パターンを積算することにより算出される。
【００３４】
以上のようにして得られた各種メモリアクセス指標データの集計結果から、ユーザは意図したデータ処理が目標性能に達したか否かについて、詳細に確認できる。例えば、表１に例示した実行サイクル数の算出結果より、全区間あるいはユーザの着目するデータ処理区間での実行サイクル数が目標とする範囲内に収まっているか否かについて判定できる。また、その他のメモリアクセス指標データと併せて詳細な解析を行うことで、メモリアクセス効率を含めたシステム性能の最適化を図ることができる。
【００３５】
図９は、表１に例示した実行サイクル数のデータと、表４に例示したバス帯域のデータに基づいて、データ処理毎の開始時刻および終了時刻と、バス帯域の時間的変化をグラフ化したものである。図９（Ａ）は、横軸を時間軸として前記の処理１から３に要した処理時間を表した図である。図９（Ｂ）は、横軸に時間軸をとり、縦軸にバス帯域のデータをとって処理１から３の推移に伴う時間的変化を表した図である。これらのグラフは、ホストＰＣ４０２の表示部の画面に表示され、ユーザはグラフを見て、メモリアクセス効率が低く、かつデータ処理時間の長い区間が“T2-T3”であることを特定できる。バスアービタ１１２の優先度設定やリオーダリング処理のモードについて、“T2-T3”の区間でのアクセスパターンやＲ／Ｗ遷移パターンを参照しながら最適化することで、メモリアクセス効率の向上によりシステム性能が改善される。図１０（Ａ）および（Ｂ）は、“T2-T3”の区間でメモリアクセス効率を改善した場合を示し、横軸および縦軸についてはそれぞれ図９（Ａ）および（Ｂ）で説明した通りである。図９との比較から分かるように、処理１ないし３に要する時間が短縮され、“T2-T3”の区間でバス帯域のレベルが高くなっている。
【００３６】
本実施形態では、システムＬＳＩの実機評価にてメモリアクセスに関連する履歴情報を容易に取得でき、また取得したパラメータの解析により、メモリアクセス効率に関わるパラメータ設定の最適化が可能となる。すなわち、メモリアクセス効率について改善の余地があるデータ処理区間について、前記パラメータの調整により、システム全体の性能を向上させることができる。
【００３７】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３８】
１００  システムＬＳＩ
１０５  メモリ
１０６  メモリバス
１１０  ＣＰＵ
１１２  バスアービタ
１１３  クロック生成回路
１２０  メモリ制御回路
１２４  コマンド生成回路
１２６  モニタ
１２７  トレース・キュー
１２８  データ書き出し回路
１２９  切り替え回路
【図１】
0005850724.tif 000008
【図２】
0005850724.tif 000009
【図３】
0005850724.tif 000010
【図４】
0005850724.tif 000011
【図５】
0005850724.tif 000012
【図６】
0005850724.tif 000013
【図７】
0005850724.tif 000014
【図８】
0005850724.tif 000015
【図９】
0005850724.tif 000016
【図１０】
0005850724.tif 000017