(57)【要約】【課題】  マスタ間のアクセス要求競合に伴うシステム性能劣化の回避策の検討を容易にする。【解決手段】  複数のマスタ部に対応する複数の情報取得部の各々において、フラグ部は、対応マスタ部における所望の処理の実行開始／実行終了に伴ってセット状態／リセット状態に遷移する。時刻取得部は、フラグ部のセット状態／リセット状態への遷移に伴ってタイマ部の時刻を処理開始時刻／処理終了時刻として取得する。時間取得部は、フラグ部がセット状態である期間にて対応マスタ部のアクセス要求が調停部に対して発行され且つ調停部がメインメモリ部へのアクセスを対応マスタ部に許可していない場合にカウント動作を実施し、フラグ部のリセット状態への遷移時のカウント値を処理中断時間として取得する。情報保存部は、処理開始時刻および処理終了時刻と処理中断時間とを対応マスタ部に関連付けて保存する。【選択図】    図３
2010033496.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタ部と、
前記複数のマスタ部により共通のバスを介してアクセスされるメインメモリ部と、
前記複数のマスタ部の前記メインメモリ部へのアクセス要求を調停する調停部と、
前記複数のマスタ部に共通して設けられるタイマ部と、
前記複数のマスタ部に対応して設けられる複数の情報取得部とを備え、
前記複数の情報取得部の各々は、
前記複数のマスタ部の中の対応マスタ部における所望の処理の実行開始／実行終了に伴ってセット状態／リセット状態に遷移するフラグ部と、
前記フラグ部のセット状態／リセット状態への遷移に伴って前記タイマ部の時刻を処理開始時刻／処理終了時刻として取得する時刻取得部と、
前記フラグ部がセット状態である期間にて前記対応マスタ部のアクセス要求が前記調停部に対して発行され且つ前記調停部が前記メインメモリ部へのアクセスを前記対応マスタ部に許可していない場合にカウント動作を実施し、前記フラグ部のリセット状態への遷移時のカウント値を処理中断時間として取得する時間取得部と、
前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記対応マスタ部に関連付けて保存する情報保存部とを備えることを特徴とするコンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記フラグ部は、前記対応マスタ部における所望の処理の実行開始／実行終了に伴ってセット／リセットされる複数のフラグを備え、
前記フラグ部は、前記複数のフラグのいずれかがセットされるのに伴ってセット状態に遷移し、セットされたフラグがリセットされるのに伴ってリセット状態に遷移し、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記フラグ部におけるセット／リセットされたフラグに関連付けて保存することを特徴とするコンピュータシステム。
【請求項３】
請求項１または請求項２に記載のコンピュータシステムにおいて、
前記複数の情報取得部の各々は、専用メモリ部を備え、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記専用メモリ部に保存することを特徴とするコンピュータシステム。
【請求項４】
請求項１または請求項２に記載のコンピュータシステムにおいて、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記メインメモリ部に保存することを特徴とするコンピュータシステム。
【請求項５】
請求項１または請求項２に記載のコンピュータシステムにおいて、
前記複数のマスタ部の各々は、ローカルメモリ部を備え、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記対応マスタ部の前記ローカルメモリ部に保存することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタ部と複数のマスタ部により共通のバスを介してアクセスされるメインメモリ部とを有するコンピュータシステムに関する。
【背景技術】
【０００２】
プロセッサコアやＤＭＡ（Direct Memory Access）コントローラ等のマスタが複数存在するコンピュータシステム（例えば、マルチコアプロセッサシステム）では、複数のマスタが共通のバスを介してメインメモリにアクセスする構成が採用されることが多い。このような構成のマルチコアプロセッサシステムでは、プロセッサコア間でバスアクセス要求（メモリアクセス要求）が競合すると、メインメモリからプロセッサコアへのデータの転送が遅くなり、プロセッサコアがデータ転送待ちのためにインターロック状態（処理の実行を中断した状態）に遷移する。プロセッサコアがインターロック状態に遷移することは、システム全体の性能劣化に繋がる。
【０００３】
マルチコアプロセッサシステムの開発工程においては、システムに対して要求される性能が達成されていない場合、全てのプロセッサコアに関するバスアクセス量の総和を取得し、その情報を利用してシステム性能劣化の対策を検討することが実施されている。全てのプロセッサコアに関するバスアクセス量の総和がバス帯域の上限値（システムで実現可能なバスアクセス量の最大値）に近い場合には、各プロセッサコアの処理時間がデータ転送待ちに起因して長くなっている可能性がある。従って、そのような場合には、各プロセッサコアのバスアクセス要求の発行回数が削減されるように、システム上で実行されるプログラム（アプリケーション）の修正等が実施される。
【０００４】
また、バスマスタ間のバス獲得要求の競合制御を実施する競合制御回路に関して、転送データ損失の防止やシステム性能の向上を実現するための技術が考案されている（例えば、特許文献１を参照）。
【特許文献１】特開平６−６００１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
プロセッサコアの待ち時間（プロセッサコアがインターロック状態である時間）が原因でシステム性能劣化が発生している場合には、プロセッサコア間でバスアクセス要求が競合しないように、スケジューリング（各プロセッサコアに対する処理割り当てや各プロセッサコアの処理実行順序）を変更する、或いは、プロセッサコアで使用されるデータをメインメモリとは別のメモリ（例えば、プロセッサコアの内部に設けられるローカルメモリ）に配置することで、システム性能劣化を軽減することが可能である。
【０００６】
しかしながら、現状では、全てのプロセッサコアに関するバスアクセス量の総和のみが取得可能であり、各プロセッサコアで待ち時間（処理中断時間）が発生しているか否かの判断や各プロセッサコアの待ち時間の発生原因がアクセス要求競合であるか否かの判断はシステム開発者の経験に依存している。経験が少ないシステム開発者にとって、各プロセッサコアで待ち時間が発生しているか否かの判断や各プロセッサコアの待ち時間の発生原因がアクセス要求競合であるか否かの判断は容易ではない。従って、プロセッサコア間のアクセス要求競合に起因するシステム性能劣化の回避策（スケジューリング変更やデータ配置先変更等）を検討することは困難である。
【０００７】
本発明は、このような問題に鑑みてなされたものであり、マスタ間のアクセス要求競合に伴うシステム性能劣化の回避策の検討を容易にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様では、コンピュータシステムは、複数のマスタ部と、メインメモリ部と、調停部と、タイマ部と、複数の情報取得部とを備える。メインメモリ部は、複数のマスタ部により共通のバスを介してアクセスされる。調停部は、複数のマスタ部のメインメモリ部へのアクセス要求を調停する。タイマ部は、複数のマスタ部に共通して設けられる。複数の情報取得部は、複数のマスタ部に対応して設けられる。複数の情報取得部の各々は、フラグ部と、時刻取得部と、時間取得部と、情報保存部とを備える。フラグ部は、複数のマスタ部の中の対応マスタ部における所望の処理の実行開始／実行終了に伴ってセット状態／リセット状態に遷移する。時刻取得部は、フラグ部のセット状態／リセット状態への遷移に伴ってタイマ部の時刻を処理開始時刻／処理終了時刻として取得する。時間取得部は、フラグ部がセット状態である期間にて対応マスタ部のアクセス要求が調停部に対して発行され且つ調停部がメインメモリ部へのアクセスを対応マスタ部に許可していない場合にカウント動作を実施し、フラグ部のリセット状態への遷移時のカウント値を処理中断時間として取得する。情報保存部は、処理開始時刻および処理終了時刻と処理中断時間とを対応マスタ部に関連付けて保存する。
【発明の効果】
【０００９】
各マスタ部の所望の処理に関する処理開始時刻および処理終了時刻と処理中断時間とをシステム開発者に対して提供することができる。これにより、マスタ部間のアクセス要求競合に伴うシステム性能劣化の回避策の検討が大幅に容易になる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について図面を用いて説明する。
【００１１】
図１は、本発明の一実施形態のコンピュータシステムを示している。図２は、アクセス量測定部の詳細を示している。図３は、メモリコントローラの詳細を示している。本発明の一実施形態のコンピュータシステム１０は、図１に示すように、並列処理を実行するマルチコアプロセッサ２０と、マルチコアプロセッサ２０で使用されるデータ等を格納するメインメモリ３０とを用いて具現されている。なお、本実施形態では、メインメモリ３０として１個のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）が設けられるものとするが、メインメモリ３０として複数個のＳＤＲＡＭが設けられることもある。
【００１２】
マルチコアプロセッサ２０は、マスタ２１−１〜２１−ｎ、アクセス量測定部２２−１〜２２−ｎ、タイマ２３およびメモリコントローラ２４を有している。マスタ２１−ｉ（ｉ＝１，２，・・・，ｎ）は、ＣＰＵ（Central Processing Unit）２１ａ−ｉおよびローカルメモリ２１ｂ−ｉ等を有するプロセッサコアである。マスタ２１−ｉ（プロセッサコア）のＣＰＵ２１ａ−ｉでは、マルチコアプロセッサ２０の並列処理単位（関数やタスク等）に相当する処理Ｐｉ１、Ｐｉ２、Ｐｉ３、・・・が順次実行される。なお、本実施形態では、マスタ２１−１〜２１−ｎの全てがプロセッサコアであるものとするが、マスタ２１−１〜２１−ｎの一部がプロセッサコア以外のマスタ（例えば、ＤＭＡコントローラ）であることもある。
【００１３】
アクセス量測定部２２−ｉは、マスタ２１−ｉのメモリインタフェース部（図示せず）に付随して設けられている。アクセス量測定部２２−ｉは、図２に示すように、フラグ部４１、アクセス量算出部４２およびレジスタ部４３を有している。アクセス量測定部２２−ｉにおいて、フラグ部４１は、マスタ２１−ｉ（ＣＰＵ２１ａ−ｉ）にてアクセス量測定用のフラグセット命令／フラグリセット命令が実行されるのに伴ってセット状態／リセット状態に遷移する。アクセス量算出部４２は、フラグ部４１がセット状態である期間にてマスタ２１−ｉからメモリコントローラ２４に対してアクセス要求が発行される度に、マスタ２１−ｉから通知されるアクセス量とレジスタ部４３の値とを加算し、加算結果によりレジスタ部４３の値を更新する。従って、マスタ２１−ｉの各処理に対応する部分の前後にアクセス量測定用のフラグセット命令およびフラグリセット命令の命令コードを挿入されたプログラムがコンピュータシステム１０（マルチコアプロセッサ２０）で実行されると、マスタ２１−ｉのバスアクセス量の累計がアクセス量測定部２２−ｉのレジスタ部４３に格納されることになる。タイマ２３は、システムクロックに同期して動作することで、マスタ２１−１〜２１−ｎ間で共通した時刻情報を生成する。
【００１４】
メモリコントローラ２４は、図３に示すように、待ち時間測定部２４ａ−１〜２４ａ−ｎ、リクエストキュー部２４ｂ−１〜２４ｂ−ｎ、調停部２４ｃおよびリクエストキュー部２４ｄを有している。待ち時間測定部２４ａ−ｉは、マスタ２１−ｉに対応して設けられている。待ち時間測定部２４ａ−ｉは、フラグ部５１、時刻取得用レジスタ部５２、時間取得用カウンタ部５３、測定条件判定部５４および測定結果保存部５５を有している。待ち時間測定部２４ａ−ｉにおいて、フラグ部５１は、マスタ２１−ｉ（ＣＰＵ２１ａ−ｉ）にて待ち時間測定用のフラグセット命令／フラグリセット命令が実行されるのに伴ってセット／リセットされるフラグＦ１〜Ｆｍを有している。なお、フラグ部５１のフラグＦ１〜Ｆｍについては、２個以上のフラグがセットされている状態が存在しないように制御される。
【００１５】
時刻取得用レジスタ部５２は、フラグ部５１がセット状態に遷移するのに伴って（フラグＦ１〜Ｆｍのいずれかがセットされるのに伴って）、タイマ２３の時刻を開始時刻として取得する。また、時刻取得用レジスタ部５２は、フラグ部５１がリセット状態に遷移するのに伴って（フラグＦ１〜Ｆｍにおけるセットされたフラグがリセットされるのに伴って）、タイマ２３の時刻を終了時刻として取得する。時間取得用カウンタ部５３は、フラグ部５１がセット状態に遷移するのに伴って、カウント値を０に初期化する。時間取得用カウンタ部５３は、フラグ部５１がセット状態である期間にて測定条件判定部５４によりカウント動作が許可されている場合、システムクロックのサイクル毎にカウント値をインクリメントする。時間取得用カウンタ部５３は、フラグ部５１のリセット状態への遷移時のカウント値を待ち時間（中断時間）として取得する。
【００１６】
測定条件判定部５４は、調停部２４ｃから供給されるバス占有マスタ情報ＭＮＵＭがマスタ２１−ｉ以外を示しており、リクエストキュー部２４ｂ−ｉから調停部２４ｃに対してアクセス要求ＲＥＱｉが発行されており、調停部２４ｃからリクエストキュー部２４ｂ−ｉに対してアクセス通知ＡＣＫｉが発行されていない場合にのみ、時間取得用カウンタ部５３のカウント動作を許可する。測定結果保存部５５は、フラグ部５１がセット状態に遷移するのに伴って、時刻取得用レジスタ部５２により取得された開始時刻をマスタ２１−ｉに関連付けられた専用メモリＭＥＭにおけるフラグ部５１でセットされたフラグの対応位置に格納する。また、測定結果保存部５５は、フラグ部５１がリセット状態に遷移するのに伴って、時刻取得用レジスタ部５２により取得された終了時刻および時間取得用カウンタ部５３により取得された待ち時間をマスタ２１−ｉに関連付けられた専用メモリＭＥＭにおけるフラグ部５１でリセットされたフラグの対応位置に格納する。
【００１７】
なお、本実施形態では、待ち時間測定部２４ａ−ｉの測定結果（開始時刻、終了時刻および待ち時間）が待ち時間測定部２４ａ−ｉにおける測定結果保存部５５の専用メモリＭＥＭに格納される構成を採用しているが、待ち時間測定部２４ａ−ｉの測定結果がメインメモリ３０またはマスタ２１−ｉのローカルメモリ２１ｂ−ｉにおける予め確保された領域に格納される構成を採用してもよい。この場合、待ち時間測定部２４ａ−ｉにおける測定結果保存部５５の専用メモリＭＥＭが不要になるため、待ち時間測定部２４ａ−ｉの回路規模を低減することができる。この結果、マルチコアプロセッサ２０の小規模化によるコンピュータシステム１０のコスト削減を実現することができる。
【００１８】
リクエストキュー部２４ｂ−ｉは、マスタ２１−ｉに対応して設けられている。リクエストキュー部２４ｂ−ｉは、マスタ２１−ｉにより発行されるアクセス要求を順次受け付けて保持し、保持しているアクセス要求を受け付け順にアクセス要求ＲＥＱｉとして調停部２４ｃに発行する。リクエストキュー部２４ｂ−ｉは、調停部２４ｃに発行したアクセス要求ＲＥＱｉに関して調停部２４ｃからアクセス通知ＡＣＫｉが発行されると、調停部２４ｃから供給されるデータをアクセス通知とともにマスタ２１−ｉに供給する。
【００１９】
調停部２４ｃは、リクエストキュー部２４ｂ−１〜２４ｂ−ｎにより発行されるアクセス要求ＲＥＱ１〜ＲＥＱｎを調停してマスタ２１−１〜２１−ｎの中からメインメモリ３０へのアクセス（メインメモリ３０用のバスの占有）を許可すべきマスタを決定し、調停結果に応じたアクセス要求をリクエストキュー部２４ｄに発行する。調停部２４ｃは、リクエストキュー部２４ｄに発行したアクセス要求に関してリクエストキュー部２４ｄからアクセス通知が発行されると、リクエストキュー部２４ｄから供給されるデータをアクセス通知ＡＣＫ１〜ＡＣＫｎの中で該当するアクセス通知とともにリクエストキュー部２４ｂ−１〜２４ｂ−ｎの中で該当するリクエストキュー部に供給する。また、調停部２４ｃは、マスタ２１−１〜２１−ｎの中でメインメモリ３０用のバスを占有しているマスタを示すバス占有マスタ情報ＭＮＵＭを待ち時間測定部２４ａ−１〜２４ａ−ｎに供給する。
【００２０】
リクエストキュー部２４ｄは、調停部２４ｃにより発行されるアクセス要求を順次受け付けて保持し、保持しているアクセス要求を受け付け順にメインメモリ３０に発行する。リクエストキュー部２４ｄは、メインメモリ３０に発行したアクセス要求に関してメインメモリ３０からアクセス通知が発行されると、メインメモリ３０から供給されるデータをアクセス通知とともに調停部２４ｃに供給する。
【００２１】
メインメモリ３０は、マルチコアプロセッサ２０のメモリコントローラ２４（リクエストキュー部２４ｄ）により発行されるアクセス要求に応答して該当するデータを読み出し、読み出したデータをアクセス通知とともにマルチコアプロセッサ２０のメモリコントローラ２４（リクエストキュー部２４ｄ）に供給する。
【００２２】
図４は、待ち時間測定部の動作を示している。マスタ２１−ｉの処理Ｐｉｊ（ｊ＝１，２，３，・・・）に対応する部分の前後にフラグＦｊに関する待ち時間測定用のフラグセット命令およびフラグリセット命令の命令コードを挿入されたプログラムがコンピュータシステム１０（マルチコアプロセッサ２０）で実行されると、待ち時間測定部２４ａ−ｉは以下のように動作する。
【００２３】
マスタ２１−ｉにてフラグＦｊに関する待ち時間測定用のフラグセット命令が実行されると（ステップＳ１０１）、待ち時間測定部２４ａ−ｉにてフラグ部５１のフラグＦｊがセットされる（ステップＳ２０１）。これにより、待ち時間測定部２４ａ−ｉにて、時間取得用カウンタ部５３のカウント値が０に初期化されるとともに、タイマ２３の時刻が時刻取得用レジスタ部５２により開始時刻として取得され、その開始時刻が測定結果保存部５５により専用メモリＭＥＭにおけるフラグＦｊの対応位置に格納される（ステップＳ２０２）。
【００２４】
マスタ２１−ｉにて処理Ｐｉｊが実行されている期間中には（ステップＳ１０２）、待ち時間測定部２４ａ−ｉにてシステムクロックのサイクル毎に次のような動作が実施される。まず、バス占有マスタ（調停部２４ｃから供給されるバス占有マスタ情報ＭＮＵＭが示すマスタ）がマスタ２１−ｉ以外であるか否かが測定条件判定部５４により判定される（ステップＳ２０３）。測定条件判定部５４にてバス占有マスタがマスタ２１−ｉ以外であると判定された場合、リクエストキュー部２４ｂ−ｉから調停部２４ｃに対してアクセス要求ＲＥＱｉが発行されているか否かが測定条件判定部５４により判定される（ステップＳ２０４）。測定条件判定部５４にてアクセス要求ＲＥＱｉが発行されていると判定された場合、調停部２４ｃからリクエストキュー部２４ｂ−１に対してアクセス通知ＡＣＫｉが発行されていないか否かが測定条件判定部５４により判定される（ステップＳ２０５）。測定条件判定部５４にてアクセス通知ＡＣＫｉが発行されていないと判定された場合、時間取得用カウンタ部５３のカウント動作が測定条件判定部５４により許可され、時間取得用カウント部５３のカウント値がインクリメントされる（ステップＳ２０６）。測定条件判定部５４にてバス占有マスタがマスタ２１−ｉ以外ではない（バス占有マスタがマスタ２１−ｉである）と判定された場合、或いは、測定条件判定部５４にてアクセス要求ＲＥＱｉが発行されていないと判定された場合、或いは、測定条件判定部５４にてアクセス通知ＡＣＫｉが発行されていると判定された場合には、時間取得用カウンタ部５３のカウント動作が測定条件判定部５４により許可されず、時間取得用カウント部５３のカウント値はインクリメントされない。
【００２５】
マスタ２１−ｉにて処理Ｐｉｊの実行が終了してフラグＦｊに関する待ち時間測定用のフラグリセット命令が実行されると（ステップＳ１０３）、待ち時間測定部２４ａ−ｉにてフラグ部５１のフラグＦｊがリセットされる（ステップＳ２０７）。これにより、待ち時間測定部２４ａ−ｉにて、タイマ２３の時刻が時刻取得用レジスタ部５３により終了時刻として取得されるとともに、時間取得用カウンタ部５３でカウント値が待ち時間として取得され、その終了時刻および待ち時間が測定結果保存部５５により専用メモリＭＥＭにおけるフラグＦｊの対応位置に格納される（ステップＳ２０８）。これにより、マスタ２１−ｉの処理Ｐｉｊに関して、マスタ２１−１〜２１―ｎ間で共通した時刻情報に基づく開始時刻および終了時刻と、マスタ２１−１〜２１−ｎ間のアクセス要求競合に起因する待ち時間とが専用メモリＭＥＭにおけるフラグＦｊの対応位置に格納されたことになる。
【００２６】
図５は、プログラム開発環境の一例を示している。図６は、待ち時間測定部の測定結果の使用例を示している。コンピュータシステム１０の開発工程において、システム開発者は、例えば、図５に示すように、ホストコンピュータ１００がＩＣＥ（In-Circuit Emulator）２００を介してシステムボード３００（コンピュータシステム１０を実装）に接続されたプログラム開発環境で、ホストコンピュータ１００のプログラム開発用ツールを使用してコンピュータシステム１０のプログラムを開発する。図５のプログラム開発環境では、システム開発者がホストコンピュータ１００を操作することで、コンピュータシステム１０（マルチコアプロセッサ２０）からハードウェア情報（例えば、内部のレジスタやメモリに格納されているデータ）を取得してホストコンピュータ１００のディスプレイ装置に表示させることが可能である。
【００２７】
システム開発者は、コンピュータシステム１０に対して要求される性能が達成されていない場合、例えば、図５のプログラム開発環境にて、マスタ２１−ｉの処理Ｐｉｊに対応する部分の前後にアクセス量測定用のフラグセット命令およびフラグリセット命令が挿入されたプログラムをコンピュータシステム１０（マルチコアプロセッサ２０）で実行させる。そして、システム開発者は、ホストコンピュータ１００を操作することにより、アクセス量測定部２２−１〜２２−ｎのレジスタ部４３に格納されているマスタ２１−１〜２１−ｎのバスアクセス量の累計を読み出してホストコンピュータ１００のディスプレイ装置に表示させる。これにより、システム開発者は、マスタ２１−１〜２１−ｎの全てに関するバスアクセス量の総和を把握することができる。
【００２８】
マスタ２１−１〜２１−ｎの全てに関するバスアクセス量の総和がバス帯域の上限値に近い場合には、マスタ２１−１〜２１−ｎの処理時間がアクセス要求競合に起因して長くなっている可能性がある。従って、そのような場合には、システム開発者は、図５のプログラム開発環境にて、マスタ２１−ｉの処理Ｐｉｊに対応する部分の前後にフラグＦｊに関する待ち時間測定用のフラグセット命令およびフラグリセット命令が挿入されたプログラムをコンピュータシステム１０（マルチコアプロセッサ２０）で実行させる。そして、システム開発者は、ホストコンピュータ１００を操作することにより、待ち時間測定部２４ａ−１〜２４ａ−ｎにおける測定結果保存部５５の専用メモリＭＥＭに格納されている測定結果（マスタ２１−１〜２１−ｎの各処理に関する開始時刻、終了時刻および待ち時間）を読み出してホストコンピュータ１００のディスプレイ装置に表示させる。このとき、ホストコンピュータ１００のディスプレイ装置には、例えば、測定結果に加えて、ホストコンピュータ１００のプログラム開発用ツールにより測定結果に基づいて生成されたグラフも表示される。例えば、図６の左側に示すような測定結果が読み出された場合には、ホストコンピュータ１００のプログラム開発用ツールにより、図６の右側に示すようなグラフが生成される。これにより、システム開発者は、マスタ２１−１〜２１−ｎで並列に実行されている処理およびその処理におけるアクセス要求競合に起因する待ち時間を視覚的に把握することができる。
【００２９】
従って、システム開発者は、マスタ２１−ｘにおける待ち時間の長い処理Ｐｘａで使用されるデータの配置先をメインメモリ３０からマスタ２１−ｘのローカルメモリ２１ｂ−ｘに変更する、或いは、マスタ２１−ｘにおける待ち時間の長い処理Ｐｘａがマスタ２１−ｙにおける待ち時間の短い処理Ｐｙａと並列に実行されるようにスケジューリング（各マスタに対する処理割り当てや各マスタの処理実行順序）を変更するといった性能劣化回避策を容易に検討することができる。なお、マスタ２１−ｘにおける待ち時間の長い処理Ｐｘａで使用されるデータの配置先をメインメモリ３０からマスタ２１−ｘのローカルメモリ２１ｂ−ｘに変更すると、マスタ２１−ｘにおける処理Ｐｘａが実行されている期間でのアクセス要求の発行回数が削減されるため、アクセス要求競合が少なくなり、マスタ２１−ｘの処理Ｐｘａにおける待ち時間が削減されることになる。また、マスタ２１−ｘにおける待ち時間の長い処理Ｐｘａをマスタ２１−ｙにおける待ち時間の短い処理Ｐｙａと並列に実行されるようにスケジューリングを変更すると、待ち時間の短い処理はアクセス要求の発行回数が少ない処理であるため、アクセス要求競合が少なくなり、マスタ２１−ｘの処理Ｐｘａにおける待ち時間が削減されることになる。
【００３０】
以上のように、本発明の一実施形態では、メインメモリ３０用のバスをマスタ２１−１〜２１−ｎ間で共有するコンピュータシステム１０に関して、マスタ２１−１〜２１−ｎ間のアクセス要求競合に伴うシステム性能劣化の回避策を検討するうえで必要なハードウェア情報をシステム開発者に対して提供することができる。具体的には、マスタ２１−１〜２１−ｎの各処理（関数やタスク等）に関して、マスタ２１−１〜２１−ｎ間で共通した時刻情報に基づく開始時刻および終了時刻と、マスタ２１−１〜２１−ｎ間のアクセス要求競合に起因する待ち時間とをシステム開発者に対して提供することが可能である。従って、マスタ２１−１〜２１−ｎ間のアクセス要求競合に伴うシステム性能劣化の回避策（スケジューリング変更やデータ配置先変更等）の検討が大幅に容易になる。
【００３１】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
複数のマスタ部と、
前記複数のマスタ部により共通のバスを介してアクセスされるメインメモリ部と、
前記複数のマスタ部の前記メインメモリ部へのアクセス要求を調停する調停部と、
前記複数のマスタ部に共通して設けられるタイマ部と、
前記複数のマスタ部に対応して設けられる複数の情報取得部とを備え、
前記複数の情報取得部の各々は、
前記複数のマスタ部の中の対応マスタ部における所望の処理の実行開始／実行終了に伴ってセット状態／リセット状態に遷移するフラグ部と、
前記フラグ部のセット状態／リセット状態への遷移に伴って前記タイマ部の時刻を処理開始時刻／処理終了時刻として取得する時刻取得部と、
前記フラグ部がセット状態である期間にて前記対応マスタ部のアクセス要求が前記調停部に対して発行され且つ前記調停部が前記メインメモリ部へのアクセスを前記対応マスタ部に許可していない場合にカウント動作を実施し、前記フラグ部のリセット状態への遷移時のカウント値を処理中断時間として取得する時間取得部と、
前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記対応マスタ部に関連付けて保存する情報保存部とを備えることを特徴とするコンピュータシステム。
（付記２）
付記１に記載のコンピュータシステムにおいて、
前記フラグ部は、前記対応マスタ部における所望の処理の実行開始／実行終了に伴ってセット／リセットされる複数のフラグを備え、
前記フラグ部は、前記複数のフラグのいずれかがセットされるのに伴ってセット状態に遷移し、セットされたフラグがリセットされるのに伴ってリセット状態に遷移し、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記フラグ部におけるセット／リセットされたフラグに関連付けて保存することを特徴とするコンピュータシステム。
（付記３）
付記１または付記２に記載のコンピュータシステムにおいて、
前記複数の情報取得部の各々は、専用メモリ部を備え、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記専用メモリ部に保存することを特徴とするコンピュータシステム。
（付記４）
付記１または付記２に記載のコンピュータシステムにおいて、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記メインメモリ部に保存することを特徴とするコンピュータシステム。
（付記５）
付記１または付記２に記載のコンピュータシステムにおいて、
前記複数のマスタ部の各々は、ローカルメモリ部を備え、
前記情報保存部は、前記処理開始時刻および前記処理終了時刻と前記処理中断時間とを前記対応マスタ部の前記ローカルメモリ部に保存することを特徴とするコンピュータシステム。
（付記６）
付記１〜付記５のいずれかに記載のコンピュータシステムにおいて、
前記情報保存部により保存された情報は、システムの外部に出力され、アクセス要求競合に伴うシステム性能劣化の回避策を検討するために使用されることを特徴とするコンピュータシステム。
【００３２】
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれらに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態のコンピュータシステムを示す図である。
【図２】アクセス量測定部の詳細を示す図である。
【図３】メモリコントローラの詳細を示す図である。
【図４】待ち時間測定部の動作を示す図である。
【図５】プログラム開発環境の一例を示す図である。
【図６】待ち時間測定部の測定結果の使用例を示す図である。
【符号の説明】
【００３４】
１０‥コンピュータシステム；２０‥マルチコアプロセッサ；２１−１〜２１−ｎ‥マスタ；２１ａ−１〜２１ａ−ｎ‥ＣＰＵ；２１ｂ−１〜２１ｂ−ｎ‥ローカルメモリ；２２−１〜２２−ｎ‥アクセス量測定部；２３‥タイマ；２４‥メモリコントローラ；２４ａ−１〜２４ａ−ｎ‥待ち時間測定部；２４ｂ−１〜２４ｂ−ｎ‥リクエストキュー部；２４ｃ‥調停部；２４ｄ‥リクエストキュー部；３０‥メインメモリ；４１‥フラグ部；４２‥アクセス量算出部；４３‥レジスタ部；５１‥フラグ部；５２‥時刻取得用レジスタ部；５３‥時間取得用カウンタ部；５４‥測定条件判定部；５５‥測定結果保存部；Ｆ１〜Ｆｍ‥フラグ；ＭＥＭ‥専用メモリ
【図１】
2010033496.tif 000003
【図２】
2010033496.tif 000004
【図３】
2010033496.tif 000005
【図４】
2010033496.tif 000006
【図５】
2010033496.tif 000007
【図６】
2010033496.tif 000008