JP4842889B2 - 演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法 - Google Patents

演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法 Download PDF

Info

Publication number
JP4842889B2
JP4842889B2 JP2007165823A JP2007165823A JP4842889B2 JP 4842889 B2 JP4842889 B2 JP 4842889B2 JP 2007165823 A JP2007165823 A JP 2007165823A JP 2007165823 A JP2007165823 A JP 2007165823A JP 4842889 B2 JP4842889 B2 JP 4842889B2
Authority
JP
Japan
Prior art keywords
loop
processing
pipeline
visualization
information
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.)
Active
Application number
JP2007165823A
Other languages
English (en)
Other versions
JP2009003826A (ja
Inventor
周史 山村
孝 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007165823A priority Critical patent/JP4842889B2/ja
Priority to US12/142,499 priority patent/US7917739B2/en
Publication of JP2009003826A publication Critical patent/JP2009003826A/ja
Application granted granted Critical
Publication of JP4842889B2 publication Critical patent/JP4842889B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法に関し、特に演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法に関する。
現在、コンピュータに実行させるソフトウェアの複雑化や処理対象データの大規模化が進んでおり、コンピュータが備える演算装置の処理能力の一層の向上が求められている。ここで、処理能力の高い演算装置を実現する際には、パイプライン処理を採用することが一般的となっている。パイプライン処理とは、1つの命令の処理過程を複数の処理単位(ステージ)に分割し、各ステージを並列に実行可能とする演算処理の方法である。
例えば、1つの命令の処理過程が、命令フェッチ(F)、命令デコード(D)、命令実行(X)、ライトバック(W)のようなステージに分割される。このようなパイプラインでは、例えば、1つ目の命令について命令デコード(D)を実行し、これと並列に2つ目の命令について命令フェッチ(F)を実行することが可能である。従って、実質的にステージ数だけ並列に命令を処理することができ、演算処理の高速化を図ることができる。
しかし、単純なパイプライン構造をもつ演算装置で依存関係のある複数の命令を連続して実行しようとすると、待機状態が発生して処理効率が低下するという問題がある。例えば、2つ目の命令が1つ目の命令の処理結果を利用するものである場合、1つ目の命令の処理が完了するまで2つ目の命令の処理を待機させる必要がある。従って、演算装置の開発時には、待機状態の発生が抑制されるようなパイプラインの設計が求められる。また、パイプライン処理を行う演算装置向けのコンパイラやプログラムの開発時には、対象とする演算装置のパイプライン構造を考慮した最適化が求められる。
そこで、演算装置、コンパイラ、プログラムの各開発者は、必要に応じてパイプライン処理のシミュレーションを行って、待機状態の発生状況の分析を行っている。例えば、パイプライン処理のシミュレーションを行うシミュレータは、被験演算装置の設計情報と被験プログラムとを入力として受け付け、被験プログラムを仮想的に実行して、パイプライン処理の実行状況を示す情報を出力する。
このようにして得られたシミュレーション結果は、開発者が理解容易な形式で可視化されて表示される。例えば、パイプラインに投入された命令を縦軸としクロック時間を横軸として、各ステージの状態変化を表形式で表したウォーターフォール図が知られている。また、このような図上で待機状態が発生した箇所を強調表示する可視化方法も知られている(例えば、特許文献1参照)。
特開平11−65845号公報
しかし、上記特許文献1に記載の技術では、シミュレーション結果のデータが膨大になると、開発者が処理効率上の問題点を図から見つけ出すことが容易でないという問題がある。特に、被験プログラムがループ処理を行うものである場合、同様の処理内容を示す図形が実行されたループ回数分だけ繰り返し表示されることとなり、その傾向は顕著となる。処理効率上の問題点を確認するという目的からすると、ループ処理については、本来はループ1回分または少数回分の実行状況が表示されれば十分である。一方、図上での単純な図形比較のみでは、ループ処理の範囲を正確に判定することは困難である。
本発明はこのような点に鑑みてなされたものであり、パイプライン処理の実行状況を可視化する際に、ループ部分の表示を適切に簡略化して視認性を高めることが可能な演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような演算処理可視化プログラムが提供される。本発明に係る演算処理可視化プログラムは、演算装置におけるパイプライン処理の実行状況を可視化するものである。この演算処理可視化プログラムを実行するコンピュータ10は、ループ情報記憶手段11、動作情報記憶手段12、ループ判定手段13および出力手段14を有する。ループ情報記憶手段11は、被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ定義情報11aを記憶する。動作情報記憶手段12は、被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報12aを記憶する。ループ判定手段13は、ループ情報記憶手段11に記憶されたループ定義情報11aを参照して、動作情報記憶手段12に記憶された動作情報12aで示される各パイプライン処理がループ処理を構成するか否か判定する。出力手段14は、ループ判定手段13によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報14aを出力する。
このような演算処理可視化プログラムを実行するコンピュータ10によれば、ループ判定手段13により、ループ処理の対象となる命令のアドレスを特定するループ定義情報11aが参照されて、動作情報12aで示される各パイプライン処理がループ処理を構成するか否か判定される。そして、出力手段14により、ループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報14aが出力される。
また、上記課題を解決するために、演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化装置において、被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ定義情報を記憶するループ情報記憶手段と、被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を記憶する動作情報記憶手段と、ループ情報記憶手段に記憶されたループ定義情報を参照して、動作情報記憶手段に記憶された動作情報で示される各パイプライン処理がループ処理を構成するか否か判定するループ判定手段と、ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する出力手段と、を有することを特徴とする演算処理可視化装置が提供される。
このような演算処理可視化装置によれば、ループ判定手段により、ループ処理の対象となる命令のアドレスを特定するループ定義情報が参照されて、動作情報で示される各パイプライン処理がループ処理を構成するか否か判定される。そして、出力手段により、ループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報が出力される。
また、上記課題を解決するために、演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化方法において、ループ判定手段が、被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を動作情報記憶手段から取得し、被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ情報記憶手段に記憶されたループ定義情報を参照して、動作情報で示される各パイプライン処理がループ処理を構成するか否か判定し、出力手段が、ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する、ことを特徴とする演算処理可視化方法が提供される。
このような演算処理可視化方法によれば、ループ処理の対象となる命令のアドレスを特定するループ定義情報が参照されて、動作情報で示される各パイプライン処理がループ処理を構成するか否か判定される。そして、ループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報が出力される。
本発明では、被験プログラムにおいてループ処理の対象となる命令のアドレスを特定する情報を参照して、パイプラインに投入された命令のアドレスからループ処理の範囲を判定し、ループ処理部分の実行状況については所定のループ回数分だけ表示されるようにした。これにより、ループ処理部分の表示を適切に簡略化でき、視認性を高めることができる。従って、パイプライン処理の実行状況の分析がより容易となる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、本実施の形態の概要を示す図である。図1に示すコンピュータ10は、演算装置におけるパイプライン処理の実行状況を可視化するものである。コンピュータ10は、ループ情報記憶手段11、動作情報記憶手段12、ループ判定手段13および出力手段14を有する。
ループ情報記憶手段11には、ループ定義情報11aが格納されている。ループ定義情報11aは、被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定した情報である。例えば、各ループ処理について、ループの先頭のアドレスと最後尾のアドレスとを指定して、対象となる命令のアドレス範囲を特定する。ループ定義情報11aは、例えば、被験プログラムのソースコードをコンパイルする際に、コンパイラが処理途中で生成する中間情報から抽出することができる。
動作情報記憶手段12には、動作情報12aが格納されている。動作情報12aは、被験プログラムの実行によりパイプラインに投入された命令のアドレスと、投入された命令に対するパイプライン処理の実行状況を示す情報とを含んでいる。パイプライン処理の実行状況を示す情報は、例えば、クロック時間と処理を実行中であるステージとを対応付けた情報である。動作情報12aは、例えば、被験プログラムを演算装置のシミュレータに入力することで、シミュレーション結果として得られる情報である。
ループ判定手段13は、ループ情報記憶手段11に格納されたループ定義情報11aと、動作情報記憶手段12に格納された動作情報12aとを取得する。そして、ループ判定手段13は、動作情報12aで示されるパイプラインに投入された各命令のアドレスを、ループ定義情報11aで定義されたアドレスと照合して、各パイプライン処理がループ処理を構成するか否か判定する。
出力手段14は、ループ判定手段13の判定結果に基づいて、動作情報12aで示されるパイプライン処理の実行状況を視覚的に表した可視化情報14aを生成して出力する。具体的には、出力手段14は、ループ処理を構成しないと判定されたパイプライン処理については、全て可視化の対象とする。一方、ループ処理を構成すると判定されたパイプライン処理については、所定のループ回数分のみを可視化の対象とする。出力された可視化情報14aは、所定のモニタに表示されたり、所定の記憶装置に格納されて後で利用される。
ここで、命令“#02”,“#03”がループ処理の対象となっている被験プログラムを考える。そして、この被験プログラムのシミュレーションで、命令“#01”,“#02”,“#03”,“#02”,“#03”,“#04”という順序で命令がパイプラインに投入されたとする。この場合、命令のアドレスに基づいて、命令“#02”,“#03”がループ処理の対象であり、ループが2回実行されたことがわかる。そこで、命令“#02”,“#03”に対するパイプライン処理については、例えば、ループ1回分のみを可視化の対象として、表示を簡略化することができる。
このような演算処理可視化プログラムを実行するコンピュータ10によれば、ループ判定手段13により、ループ処理の対象となる命令のアドレスを特定するループ定義情報11aが参照されて、動作情報12aで示される各パイプライン処理がループ処理を構成するか否か判定される。そして、出力手段14により、ループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報14aが出力される。
これにより、ループ処理部分の表示を適切に簡略化でき、視認性を高めることができる。従って、パイプライン処理の実行状況の分析がより容易となる。
以下、本実施の形態を図面を参照して詳細に説明する。本実施の形態は、演算装置におけるパイプライン処理のシミュレーションを行う1つのシミュレーション装置で構成される。本実施の形態に係るシミュレーション装置は、例えば、コンピュータに所定のシミュレーションプログラムを実行させることで実現することができる。
図2は、シミュレーション装置のハードウェア構成を示す図である。シミュレーション装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス106を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104および入力インタフェース105が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データの少なくとも一部が一時的に格納される。HDD103には、OSプログラムやアプリケーションプログラムが格納される。また、HDD103には、CPU101による処理に必要な各種データが格納される。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ21の画面に表示させる。入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号を、バス106を介してCPU101に送信する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、シミュレーション装置100のモジュール構成について説明する。
図3は、シミュレーション装置の機能を示すブロック図である。シミュレーション装置100は、ソースファイル記憶部110、コンパイル部120、バイナリファイル記憶部130、ループ情報記憶部140、シミュレーション部150、動作情報記憶部160および可視化部170を有する。
ソースファイル記憶部110には、シミュレーション対象のプログラムのソースコードを記載したソースファイルが格納されている。シミュレーション装置100の利用者は、ソースファイルを予め作成して、ソースファイル記憶部110に格納しておく。
コンパイル部120は、利用者の操作入力によりコンパイルの指示があると、ソースファイル記憶部110からソースファイルを読み出す。そして、コンパイル部120は、ソースコードのコンパイル処理を行い、実行可能形式のコードであるバイナリコードを生成する。ここで、コンパイル部120は、いわゆるクロスコンパイラの機能を有しており、シミュレーション対象の演算装置で実行可能なバイナリコードを生成することができる。また、コンパイル部120は、コンパイル処理の途中で得られる情報のうちループ処理の対象となる命令のアドレスを特定したループ定義情報を出力する。
バイナリファイル記憶部130には、コンパイル部120によって生成されたバイナリコードを記載したバイナリファイルが格納される。このバイナリファイルは、実行可能形式のプログラムファイルであり、シミュレーション対象の演算装置で実行可能な1以上の命令が含まれている。
ループ情報記憶部140には、コンパイル部120によって出力されたループ定義情報が格納される。ループ定義情報では、シミュレーション対象のプログラムで定義された各ループ処理について、ループの開始点に相当する命令のアドレスと終了点に相当する命令のアドレスとが設定されている。
シミュレーション部150は、利用者の操作入力によりシミュレーション開始の指示があると、バイナリファイル記憶部130からシミュレーション対象のプログラムのバイナリファイルを読み出す。そして、シミュレーション部150は、読み出したバイナリファイルと所定の演算装置の設計情報とに基づいて、演算処理のシミュレーションを行う。演算装置の設計情報は、利用者が予め作成して、シミュレーション部150に組み込んでおく。なお、シミュレーションの実行時に、利用者が複数の設計情報の中から1つを選択できるようにしてもよい。
動作情報記憶部160には、シミュレーション部150のシミュレーション結果である動作情報が格納される。動作情報は、演算装置のパイプラインに投入された命令毎に、パイプライン処理の進行状況、すなわち、各ステージの処理が行われたクロック時間を記載したものである。
可視化部170は、シミュレーション部150による演算処理のシミュレーションが完了すると、動作情報記憶部160から動作情報を読み出すと共に、ループ情報記憶部140からループ定義情報を読み出す。そして、可視化部170は、読み出した動作情報とループ定義情報とに基づいて、パイプライン処理の実行状況を可視化したウォーターフォール図を生成し、モニタ21に表示する。ウォーターフォール図は、パイプラインに投入された命令を縦軸としクロック時間を横軸として、パイプライン処理の進行状況を表形式で表したものである。
図4は、評価対象プログラムのソースコード例を示す図である。図4に示すソースコード111は、ソースファイル記憶部110にソースファイルとして格納されている。ソースコード111は、シミュレーション対象のプログラムをC言語で記述したものである。ソースコード111では、まずコード範囲111aで、このプログラムで用いる変数“a”,“m”,“i”を宣言し、変数“a”,“m”の初期化を行っている。そして、コード範囲111bで、コード範囲111aで宣言した変数を用いた四則演算を行っている。ここで、コード範囲111bでは、2つの四則演算を3回繰り返すループ処理を行っている。
図5は、評価対象プログラムのアセンブリコード例を示す図である。図5に示すアセンブリコード121は、コンパイル部120によるコンパイル処理の過程で生成されるものである。アセンブリコード121は、ソースコード111に対応する処理内容を所定のアセンブリ言語で記述したものである。ここで、コード範囲121aが、ソースコード111のコード範囲111aに対応している。コード範囲121bが、ソースコード111のコード範囲111bに対応している。
コード範囲121aは、ラベル“L1”とラベル“L2”とで挟まれた3つの命令で構成される。具体的には、変数“a”,“m”,“i”にそれぞれ初期値を代入する命令で構成される。また、コード範囲121bは、ラベル“L2”とラベル“L3“とで挟まれた5つの命令で構成される。具体的には、変数“a”の加算命令、変数“m”の乗算命令、ループカウンタである変数“i”の加算命令、ループカウンタの比較命令、比較結果に基づく分岐命令で構成される。ここで、比較命令および分岐命令によりループ制御が行われ、5つの命令が3回繰り返して実行されることになる。
図6は、ループ定義テーブルのデータ構造を示す図である。図6に示すループ定義テーブル141は、コンパイル部120によって生成されるテーブルであり、ループ情報記憶部140に格納されている。ループ定義テーブル141には、ループIDを示す項目、開始アドレスを示す項目および終了アドレスを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのループ処理についてのループ定義情報が構成される。
ループIDを示す項目には、シミュレーション対象のプログラムにおけるループ処理を一意に識別する識別番号が設定される。この識別番号は、1から始まる連番である。開始アドレスを示す項目には、ループ処理の開始点にある命令のアドレスが設定される。例えば、図5に示したアセンブリコード121の4番目の命令(加算命令)のアドレスがこれに相当する。終了アドレスを示す項目には、ループ処理の終了点にある命令のアドレスが設定される。例えば、図5に示したアセンブリコード121の8番目の命令(分岐命令)のアドレスがこれに相当する。
なお、開始アドレスおよび終了アドレスは、バイナリファイル中での先頭からの位置を示す数値であり、単位はバイトである。図6の例では、アドレスを16進数として表記している。ループ定義テーブル141に格納される情報は、コンパイル部120によってコンパイル処理を通じて抽出されて登録される。
図7は、パイプライン動作テーブルのデータ構造を示す図である。図7に示すパイプライン動作テーブル161は、動作情報記憶部160に格納されている。パイプライン動作テーブル161には、命令実行IDを示す項目、アドレスを示す項目およびステージ数を示す項目が設けられている。また、各ステージについて、ステージ種別を示す項目、開始クロックを示す項目および終了クロックを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1回の命令実行についての動作情報が構成される。
命令実行IDを示す項目には、パイプライン処理を一意に識別する識別番号が設定される。この識別番号は、1から始まる連番であり、命令がパイプラインに投入される毎に新たな識別番号が設定される。アドレスを示す項目には、投入された命令のアドレスが設定される。アドレスは、バイナリファイル中での先頭からの位置を示す数値である。ステージ数を示す項目には、そのパイプライン処理で実行されたステージの数が設定される。
ステージ種別を示す項目には、ステージを示す符号が設定される。例えば、命令フェッチを示す“F”、命令デコードを示す“D”、命令実行を示す“X”、メモリアクセスを示す“M”、ライトバックを示す“W”などである。開始クロックを示す項目には、そのステージの処理を開始したクロック時間が設定される。終了クロックを示す項目には、そのステージの処理が終了したクロック時間が設定される。ステージ種別、開始クロック、終了クロックの組は、実行されたステージ数だけ設定される。
パイプライン動作テーブル161に格納される動作情報は、シミュレーション部150によって登録される。例えば、命令実行IDが“4”、アドレスが“0x1000000c”、ステージ数が“4”、クロック時間“4”の実行ステージが“F”、クロック時間“5”の実行ステージが“D”、クロック時間“6”の実行ステージが“X”、クロック時間“7”の実行ステージが“W”という情報が登録される。
なお、図7に示した例では、命令実行ID“4”〜“8”の動作情報が、図5に示したループ処理におけるループ1回目の処理に相当する。そして、命令実行ID“9”の動作情報は、ループ1回目の後にループの開始点に戻ってループ2回目の処理が開始されたことを示している。
次に、シミュレーション装置100において、ループ定義情報および動作情報に基づいて実行される可視化処理の詳細を説明する。
図8は、可視化処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS11]可視化部170は、動作情報記憶部160に格納されたパイプライン動作テーブル161の動作情報のうち、命令実行IDの小さいものから順に動作情報を1つ選択する。
[ステップS12]可視化部170は、ループフラグがOFF、すなわち、ループ外を示しているか否か判断する。ループフラグとは、現在注目しているパイプライン処理がループ処理の一部であるか否かを示すフラグである。可視化処理の開始時には、ループフラグはOFF(ループ外)に設定されている。ループ外である場合には、処理がステップS13に進められる。ループ内である場合には、処理がステップS17に進められる。
[ステップS13]可視化部170は、ループ情報記憶部140に格納されたループ定義テーブル141を参照して、ステップS11で選択した動作情報のアドレスが、いずれかのループ処理の開始アドレスに該当するか否か判断する。開始アドレスに該当する場合には、処理がステップS16に進められる。開始アドレスに該当しない場合には、処理がステップS14に進められる。
[ステップS14]可視化部170は、現在一時的に保持している動作情報で示されるパイプライン処理を、モニタ21に簡略表示する。具体的には、可視化部170は、1回目のループ分のパイプライン処理のみをモニタ21に表示し、2回目以降のループ分のパイプライン処理を表示しないようにする。また、可視化部170は、全ループ回数分の動作情報を統計処理し、統計値をモニタ21に表示する。その後、可視化部170は、保持している動作情報を破棄する。
[ステップS15]可視化部170は、ステップS11で選択した動作情報で示されるパイプライン処理を、モニタ21に通常表示する。
[ステップS16]可視化部170は、ステップS11で選択した動作情報を、新規のループに属する動作情報として一時的に保持する。そして、可視化部170は、ループフラグをON(ループ内)に設定する。
[ステップS17]可視化部170は、ループ定義テーブル141を参照して、ステップS11で選択した動作情報のアドレスが、いずれかのループ処理の開始アドレスに該当するか否か判断する。開始アドレスに該当する場合には処理がステップS18に進められる。開始アドレスに該当しない場合には、処理がステップS19に進められる。
[ステップS18]可視化部170は、現在一時的に保持している動作情報で示されるパイプライン処理の全てを、モニタ21に通常表示する。そして、可視化部170は、保持している動作情報を破棄する。
[ステップS19]可視化部170は、ループ定義テーブル141を参照して、ステップS11で選択した動作情報のアドレスが、いずれかのループ処理の終了アドレスに該当するか否か判断する。終了アドレスに該当する場合には処理がステップS20に進められる。終了アドレスに該当しない場合には、処理がステップS21に進められる。
[ステップS20]可視化部170は、ステップS11で選択した動作情報を、1つ前に選択した動作情報と同じループに属する動作情報として一時的に保持する。そして、可視化部170は、ループフラグをOFFに設定する。
[ステップS21]可視化部170は、ステップS11で選択した動作情報を、1つ前に選択した動作情報と同じループに属する動作情報として一時的に保持する。
[ステップS22]可視化部170は、ステップS11で全ての動作情報を選択したか否か判断する。全ての動作情報を選択した場合には、処理が終了する。未選択の動作情報が存在する場合には、処理がステップS11に進められる。
このようにして、可視化部170は、投入された命令のアドレスに基づいて、各動作情報がループ処理を表すものか否か判断する。そして、可視化部170は、ループ処理を表す動作情報については最初のループ分のみを表示の対象とすると共に、ループ処理を表さない動作情報については全てを表示の対象とする。また、可視化部170は、ループ処理を表す動作情報を統計処理し、統計値をパイプライン処理の実行状況と併せて表示する。
なお、図8に示した可視化処理では、多重ループがある場合には最内ループのみを簡略表示するようにしたが、最内ループ以外もループの階層に応じて簡略表示するようにしてもよい。
図9は、ループ統計テーブルのデータ構造を示す図である。図9に示すループ統計テーブル171は、可視化部170による可視化処理の過程で生成されるものである。ループ統計テーブル171には、ループIDを示す項目、ループ回数を示す項目およびCPI(Cycles Per Instruction)を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのループ処理についてのループ統計情報が構成される。
ループIDを示す項目には、シミュレーション対象のプログラムにおけるループ処理を一意に識別する識別番号が設定される。このループIDは、図6に示したループ定義テーブル141のループIDと対応するものである。ループ回数を示す項目には、シミュレーション時に実行されたループの回数が設定される。
CPIを示す項目には、ループ処理期間中のCPIの値が設定される。CPIとは、1命令当たりの平均クロック数である。理想的な実行状況、すなわち、待機状態が全く発生せずに1クロック毎に1命令がパイプライン投入されている状況では、CPIは1となる。待機状態が発生すると、CPIは1より大きい値になる。
ループ統計テーブル171に格納される情報は、可視化部170によって生成されて保持される。例えば、ループIDが“2”、ループ回数が“10”、CPIが“2.5”という情報が保持される。
図10は、パイプライン動作画面の表示例を示す第1の図である。図10に示すパイプライン動作画面21aは、可視化部170によってモニタ21に表示される画面である。パイプライン動作画面21aには、演算処理のシミュレーション結果を可視化したウォーターフォール図が示されている。
ウォーターフォール図の縦軸はパイプラインへの命令の投入に対応しており、横軸はクロック時間に対応している。ウォーターフォール図の記載内容は、基本的に図7に示したパイプライン動作テーブル161の内容と対応している。すなわち、ウォーターフォール図では、パイプラインに投入された命令の処理経過とクロック時間とが対応付けられて可視化されている。
ただし、パイプライン動作画面21aでは、ループ処理の部分が簡略表示されている。ループ処理の部分が他の部分と区別できるように点線で囲まれており、その中に最初のループの実行状況のみが表示される。そして、ループ1回分の実行状況に続けて、ループ処理後の実行状況が表示される。また、ループ処理の実行状況の近くに、そのループ処理についてのループ回数とCPIとが表示される。
ここで、利用者は、左側に表示されている三角形を操作することで、ループ処理の全ての実行状況を表示させることが可能である。
図11は、パイプライン動作画面の表示例を示す第2の図である。図11に示すパイプライン動作画面21bは、パイプライン動作画面21aに対して操作入力が行われたときに、可視化部170によってモニタ21に表示される画面である。図11に示す通り、パイプライン動作画面21bでは、全てのパイプライン処理の実行状況が表示される。ここで、利用者は、パイプライン動作画面21bの左側に表示されている三角形を操作することで、パイプライン動作画面21aの表示に戻すことが可能である。すなわち、利用者は、必要に応じて、ループ処理部分の表示方法を切り換えることができる。
なお、図10,11に示した例は、CPIが1の場合、すなわち、待機状態が発生しない理想的なパイプライン処理の実行状況を示したものである。次に、待機状態が発生するパイプライン処理の例を示す。
図12は、ループ定義テーブルの他の例を示す図である。図12に示すパイプライン動作テーブル162は、動作情報記憶部160に格納されている。パイプライン動作テーブル162のデータ構造は、図7に示したパイプライン動作テーブル161と同じである。
パイプライン動作テーブル162は、一部の命令について命令実行(X)ステージに要するクロック数が、パイプライン動作テーブル161と異なる。具体的には、パイプライン動作テーブル162では、アドレス“0x1000000c”〜“0x10000014”の3つの命令が、命令実行(X)ステージに4クロックを要している。例えば、命令実行ID“4”のパイプライン処理では、クロック時間“6”〜“9”の間、命令実行(X)ステージが実行されている。
図13は、パイプライン動作画面の表示例を示す第3の図である。図13に示すパイプライン動作画面21cは、可視化部170によってモニタ21に表示される画面である。この例では、命令実行ID“4”〜“6”のパイプライン処理は、命令実行(X)ステージに4クロックを要するため、“X”のブロックが4つ並んで表示されている。命令実行ID“7”,“8”のパイプライン処理は、図10に示したパイプライン処理と同様、各ステージに1クロックを要している。ただし、命令実行ID“7”のパイプライン処理は、命令実行ID“6”の実行結果を利用するものであり、待機状態が発生している。パイプライン動作画面21cでは、待機状態は斜線のブロックを用いて強調表示されている。
このような表示方法では、同一ステージの処理が複数クロックに跨る場合や待機状態が複数クロック連続して発生したときは、要したクロック数だけブロックが横方向に並べられる。しかし、メモリアクセス時のように、数十〜数百クロック連続して同一ステージの処理や待機状態の発生があると、ウォーターフォール図の視認性が低下する。そこで、クロック時間方向の表示も簡略化する表示方法が考えられる。
図14は、パイプライン動作画面の表示例を示す第4の図である。図14に示すパイプライン動作画面21dは、可視化部170によってモニタ21に表示される画面である。パイプライン動作画面21dは、図13に示したパイプライン動作画面21cと同じ内容を、異なる表示形式で表示したものである。
具体的には、4クロック連続する命令実行(X)ステージの処理を、4ブロックで表す代わりに、ステージを示す記号と連続する数とによって簡略表示している。このような表示方法を用いる場合、簡略表示の対象とする連続クロック数の閾値を予め決めておく必要がある。例えば、3クロック以上連続する場合に簡略表示を行うと決めておく。
なお、複数のパイプライン処理の間で、開始クロックおよび終了クロックの相対的な位置関係がずれないように、簡略表示部分の長さを適切に設定する。図14の例では、ループ処理部分の命令実行(X)ステージの長さを、2ブロックに統一している。
なお、本実施の形態では、1回目のループの実行状況を表示するようにしたが、最後の1回のループなど、任意のループを表示するようにしてもよい。また、本実施の形態では、ループ1回分の実行状況を表示するようにしたが、2回分や3回分など、所定のループ回数分の実行状況を表示するようにしてもよい。
このようなシミュレーション装置100を用いることで、ループ処理の表示を命令方向に適切に簡略化することができる。更に、複数クロックに跨る処理や待機状態の表示をクロック時間方向に適切に簡略化することができる。すなわち、パイプライン処理の分析にとって重要でない部分を適切に省略して表示し、ウォーターフォール図の視認性を高めることができる。従って、パイプライン処理の分析がより容易となる。
特に、ループ処理の判定を行う際に、コンパイラなどから取得した命令のアドレスに関する情報を用いるようにしたため、単に図形比較によって判定を行う場合と異なり、判定誤りを防止することができる。
以上、本発明の演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、シミュレーション装置100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc - Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
(付記1) 演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化プログラムにおいて、
コンピュータを、
被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ定義情報を記憶するループ情報記憶手段、
前記被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を記憶する動作情報記憶手段、
前記ループ情報記憶手段に記憶された前記ループ定義情報を参照して、前記動作情報記憶手段に記憶された前記動作情報で示される各パイプライン処理がループ処理を構成するか否か判定するループ判定手段、
前記ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する出力手段、
として機能させることを特徴とする演算処理可視化プログラム。
(付記2) 前記出力手段が出力する前記可視化情報は、パイプラインの各ステージの状態をクロック時間と対応付けて表したものであることを特徴とする付記1記載の演算処理可視化プログラム。
(付記3) 前記出力手段は、前記可視化情報を出力した後にループ部分の展開指示があると、ループ処理を構成すると判定された全ループ回数分のパイプライン処理の実行状況を表した他の可視化情報を出力することを特徴とする付記1記載の演算処理可視化プログラム。
(付記4) 前記出力手段は、前記ループ判定手段の判定結果に基づいてループ処理で行われたループの回数を計数し、計数したループ回数を示す情報を前記可視化情報に含めて出力することを特徴とする付記1記載の演算処理可視化プログラム。
(付記5) 前記出力手段は、ループ処理を構成すると判定されたパイプライン処理の実行状況を示す情報に基づいて、ループ処理の間に1命令の実行に要したクロック数の平均を計算し、計算した平均クロック数を示す情報を前記可視化情報に含めて出力することを特徴とする付記1記載の演算処理可視化プログラム。
(付記6) 前記出力手段が出力する前記可視化情報は、所定のクロック数以上のクロックに跨って処理が実行されたステージの状態を、クロック時間方向に圧縮して表したものであることを特徴とする付記2記載の演算処理可視化プログラム。
(付記7) 演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化装置において、
被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ定義情報を記憶するループ情報記憶手段と、
前記被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を記憶する動作情報記憶手段と、
前記ループ情報記憶手段に記憶された前記ループ定義情報を参照して、前記動作情報記憶手段に記憶された前記動作情報で示される各パイプライン処理がループ処理を構成するか否か判定するループ判定手段と、
前記ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する出力手段と、
を有することを特徴とする演算処理可視化装置。
(付記8) 前記出力手段が出力する前記可視化情報は、パイプラインの各ステージの状態をクロック時間と対応付けて表したものであることを特徴とする付記7記載の演算処理可視化装置。
(付記9) 前記出力手段は、前記可視化情報を出力した後にループ部分の展開指示があると、ループ処理を構成すると判定された全ループ回数分のパイプライン処理の実行状況を表した他の可視化情報を出力することを特徴とする付記7記載の演算処理可視化装置。
(付記10) 前記出力手段は、前記ループ判定手段の判定結果に基づいてループ処理で行われたループの回数を計数し、計数したループ回数を示す情報を前記可視化情報に含めて出力することを特徴とする付記7記載の演算処理可視化装置。
(付記11) 前記出力手段は、ループ処理を構成すると判定されたパイプライン処理の実行状況を示す情報に基づいて、ループ処理の間に1命令の実行に要したクロック数の平均を計算し、計算した平均クロック数を示す情報を前記可視化情報に含めて出力することを特徴とする付記7記載の演算処理可視化装置。
(付記12) 前記出力手段が出力する前記可視化情報は、所定のクロック数以上のクロックに跨って処理が実行されたステージの状態を、クロック時間方向に圧縮して表したものであることを特徴とする付記8記載の演算処理可視化装置。
(付記13) 演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化方法において、
ループ判定手段が、被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を動作情報記憶手段から取得し、前記被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ情報記憶手段に記憶されたループ定義情報を参照して、前記動作情報で示される各パイプライン処理がループ処理を構成するか否か判定し、
出力手段が、前記ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する、
ことを特徴とする演算処理可視化方法。
(付記14) 前記出力手段が出力する前記可視化情報は、パイプラインの各ステージの状態をクロック時間と対応付けて表したものであることを特徴とする付記13記載の演算処理可視化方法。
(付記15) 前記可視化情報の出力後にループ部分の展開指示があると、前記出力手段が、ループ処理を構成すると判定された全ループ回数分のパイプライン処理の実行状況を表した他の可視化情報を出力することを特徴とする付記13記載の演算処理可視化方法。
(付記16) 前記可視化情報の出力の際、前記出力手段は、前記ループ判定手段の判定結果に基づいてループ処理で行われたループの回数を計数し、計数したループ回数を示す情報を前記可視化情報に含めることを特徴とする付記13記載の演算処理可視化方法。
(付記17) 前記可視化情報の出力の際、前記出力手段は、ループ処理を構成すると判定されたパイプライン処理の実行状況を示す情報に基づいて、ループ処理の間に1命令の実行に要したクロック数の平均を計算し、計算した平均クロック数を示す情報を前記可視化情報に含めることを特徴とする付記13記載の演算処理可視化方法。
(付記18) 前記出力手段が出力する前記可視化情報は、所定のクロック数以上のクロックに跨って処理が実行されたステージの状態を、クロック時間方向に圧縮して表したものであることを特徴とする付記14記載の演算処理可視化方法。
本実施の形態の概要を示す図である。 シミュレーション装置のハードウェア構成を示す図である。 シミュレーション装置の機能を示すブロック図である。 評価対象プログラムのソースコード例を示す図である。 評価対象プログラムのアセンブリコード例を示す図である。 ループ定義テーブルのデータ構造を示す図である。 パイプライン動作テーブルのデータ構造を示す図である。 可視化処理の手順を示すフローチャートである。 ループ統計テーブルのデータ構造を示す図である。 パイプライン動作画面の表示例を示す第1の図である。 パイプライン動作画面の表示例を示す第2の図である。 ループ定義テーブルの他の例を示す図である。 パイプライン動作画面の表示例を示す第3の図である。 パイプライン動作画面の表示例を示す第4の図である。
符号の説明
10 コンピュータ
11 ループ情報記憶手段
11a ループ定義情報
12 動作情報記憶手段
12a 動作情報
13 ループ判定手段
14 出力手段
14a 可視化情報

Claims (5)

  1. 演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化プログラムにおいて、
    コンピュータを、
    被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ定義情報を記憶するループ情報記憶手段、
    前記被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を記憶する動作情報記憶手段、
    前記ループ情報記憶手段に記憶された前記ループ定義情報を参照して、前記動作情報記憶手段に記憶された前記動作情報で示される各パイプライン処理がループ処理を構成するか否か判定するループ判定手段、
    前記ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する出力手段、
    として機能させることを特徴とする演算処理可視化プログラム。
  2. 前記出力手段が出力する前記可視化情報は、パイプラインの各ステージの状態をクロック時間と対応付けて表したものであることを特徴とする請求項1記載の演算処理可視化プログラム。
  3. 前記出力手段は、前記可視化情報を出力した後にループ部分の展開指示があると、ループ処理を構成すると判定された全ループ回数分のパイプライン処理の実行状況を表した他の可視化情報を出力することを特徴とする請求項1記載の演算処理可視化プログラム。
  4. 演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化装置において、
    被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ定義情報を記憶するループ情報記憶手段と、
    前記被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を記憶する動作情報記憶手段と、
    前記ループ情報記憶手段に記憶された前記ループ定義情報を参照して、前記動作情報記憶手段に記憶された前記動作情報で示される各パイプライン処理がループ処理を構成するか否か判定するループ判定手段と、
    前記ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する出力手段と、
    を有することを特徴とする演算処理可視化装置。
  5. 演算装置におけるパイプライン処理の実行状況を可視化する演算処理可視化方法において、
    ループ判定手段が、被験プログラムの実行によりパイプラインに投入された命令のアドレスと当該命令に対するパイプライン処理の実行状況を示す情報とを含む動作情報を動作情報記憶手段から取得し、前記被験プログラムに含まれる命令のうちループ処理の対象となる命令のアドレスを特定するループ情報記憶手段に記憶されたループ定義情報を参照して、前記動作情報で示される各パイプライン処理がループ処理を構成するか否か判定し、
    出力手段が、前記ループ判定手段によりループ処理を構成すると判定されたパイプライン処理のうち所定のループ回数分のパイプライン処理の実行状況と、ループ処理を構成しないと判定されたパイプライン処理の実行状況とを視覚的に表した可視化情報を出力する、
    ことを特徴とする演算処理可視化方法。
JP2007165823A 2007-06-25 2007-06-25 演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法 Active JP4842889B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007165823A JP4842889B2 (ja) 2007-06-25 2007-06-25 演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法
US12/142,499 US7917739B2 (en) 2007-06-25 2008-06-19 Storage medium storing calculation processing visualization program, calculation processing visualization apparatus, and calculation processing visualization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007165823A JP4842889B2 (ja) 2007-06-25 2007-06-25 演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法

Publications (2)

Publication Number Publication Date
JP2009003826A JP2009003826A (ja) 2009-01-08
JP4842889B2 true JP4842889B2 (ja) 2011-12-21

Family

ID=40137748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007165823A Active JP4842889B2 (ja) 2007-06-25 2007-06-25 演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法

Country Status (2)

Country Link
US (1) US7917739B2 (ja)
JP (1) JP4842889B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
JP3535354B2 (ja) 1997-08-27 2004-06-07 株式会社東芝 ストール検出表示装置及び方法
US6230313B1 (en) * 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
US7237234B2 (en) * 2001-12-13 2007-06-26 Texas Instruments Incorporated Method for selective solicitation of user assistance in the performance tuning process
US7987347B2 (en) * 2006-12-22 2011-07-26 Broadcom Corporation System and method for implementing a zero overhead loop

Also Published As

Publication number Publication date
US7917739B2 (en) 2011-03-29
JP2009003826A (ja) 2009-01-08
US20080320289A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
US11042369B1 (en) Systems and methods for modernizing and optimizing legacy source code
US20120311537A1 (en) Performance visualization including hierarchical display of performance data
US20110016452A1 (en) Method and system for identifying regression test cases for a software
US9785416B2 (en) Presenting a custom view in an integrated development environment based on a variable selection
US20070011664A1 (en) Device and method for generating an instruction set simulator
JP2009129179A (ja) プログラム並列化支援装置およびプログラム並列化支援方法
TWI617983B (zh) 代碼覆蓋率處理方法
WO2006022204A1 (ja) ソースプログラムの分析装置および方法
JP2013109675A (ja) プログラムの生成を支援する装置及び方法
TWI488120B (zh) 用於進行除錯式交易的方法及電腦可讀取儲存媒體
JP2013206291A (ja) プログラム、コード生成方法および情報処理装置
US9292296B2 (en) Code optimization based on information of readably converted executed instruction groups represented in address file
JP5481571B2 (ja) コードにおける時間計算量およびフローの理解を高める方法
KR101232535B1 (ko) 가상 태스크를 이용한 멀티-코어의 성능 분석용 관계 모델링
JP2018005546A (ja) 情報処理装置、プログラム実行状態表示方法およびプログラム実行状態表示プログラム
JP5504960B2 (ja) シミュレーション装置及びシミュレーション方法
US9405664B2 (en) Automating software testing
JP3274036B2 (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
WO2012137083A1 (en) Method, system and computer product for generating task flows for application
JP4842889B2 (ja) 演算処理可視化プログラム、演算処理可視化装置および演算処理可視化方法
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
JP2009245177A (ja) フィーチャーモデル作成支援装置及びプログラム
JP2008117067A (ja) アプリケーションプログラムを生成するための装置、方法、及びプログラム
JPWO2017204139A1 (ja) データ処理装置、データ処理方法、およびプログラム記録媒体
JP5319643B2 (ja) ソフトウェアプロダクトライン開発支援装置およびその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111004

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111006

R150 Certificate of patent or registration of utility model

Ref document number: 4842889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 3