(57)【要約】【課題】  非同期型パイプライン転送制御に基づくデータ駆動型演算処理装置で実行されるプログラムの性能評価を、容易に短時間で実行する。【解決手段】  アプリケーションプログラムをフローグラフで記述し、入力アークおよび出力アークを抽出する。これらの入力アークおよび出力アークのパケットレートを抽出し（Ｓ３，Ｓ４）、これらの入力アークのパケットレートおよび出力アークのパケットレートが、プロセッサエレメントのパイプライン転送レートの上限値以下であるかを判断する（ステップＳ６）。この判断結果に従って、記述されたフローグラフプログラムが、演算処理プロセッサで実行可能であるかを判定する（ステップＳ７，Ｓ８）。【選択図】        図７
2005259030.tif 000002
【特許請求の範囲】
【請求項１】
実行可能なパケットを検出して出力する発火制御部と、実行プログラムを格納するプログラム格納部とを含み、非同期パイプライン転送制御でパケットを転送するデータ駆動型処理装置の性能を評価するための装置であって、
前記発火制御部の入力パケットフローレートと前記プログラム格納部の出力パケットフローレートのいずれか大きいほうのフローレートを前記データ駆動型処理装置の可能なパケット転送レートとを比較する手段と、
前記比較手段による比較結果に基づいて、前記データ駆動型処理装置に対する入力データレートを評価する評価手段とを備える、性能評価装置。
【請求項２】
非同期型パイプライン転送制御でパケットを転送するデータ駆動型処理装置で実行されるプログラムの入力アークおよび出力アークに接続するノードについて、パケット入力レートとパケット出力レートの少なくとも一方を前記データ駆動型処理装置の実行可能なパケット転送レートとを比較するステップと、
前記比較ステップにおける比較結果に基づいて前記データ駆動型処理装置に対する入力データレートを評価するステップとを備える、性能評価方法。
【請求項３】
プログラム開発ツールを用いてフローグラフの形態での前記プログラムの開発時に、該フローグラフプログラムに記述された入出力アークについて前記比較ステップを実行する、請求項２記載の性能評価方法。
【請求項４】
請求項２に記載される性能評価方法をコンピュータに実行させるためのプログラム。
【請求項５】
請求項４に記載されるプログラムを記録したコンピュータ読取可能記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理装置の性能を評価するための装置および方法に関し、特に、データ駆動アーキテクチャに基づく非同期型パイプラインデータ処理装置上で実行されるプログラムの静的性能を評価するための装置、方法および該方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
大量のデータを高速処理する場合には、並列処理が有効である。このような並列処理向けアーキテクチャの１つとして、データ駆動型アーキテクチャがある。このデータ駆動型アーキテクチャに基づく情報処理システムにおいては、「ある処理に必要な入力データがすべて揃い、その処理に必要な演算装置などの資源が割当てられたときに処理が行なわれる」という規則に従って処理が並列に進行する。
【０００３】
このようなデータ駆動型演算処理装置の構成は、たとえば非特許文献１（ＰＤＰＴＡ'９８インターナショナル・コンファレンス（International Conference）の「スーパー・インテグレイティッド・データドリブン・プロセッサ・リアライジング・ハイパーディストリビューテッド・システム・エンバイロンメント(Super-Integrated Data-Driven Processor Realizing hyper-distributed System Environment)」、ムラマツ等、１９９８、ｐｐ.４６１−４６８）において示されている。この非特許文献１は、データ駆動型処理装置内のパイプラインステージ間でパケット転送をハンドシェイク方式に従って実行する自己同期型または非同期転送方式について解説している。この非特許文献１においては、処理性能が、パイプラインステージを介して転送されるパケットの速度（フローレート）に依存することを検証している。このパケット転送時において、パイプラインステージの充満率（フィリングレート:filling rate）がある一定値以下の場合、入力データパケットの数の増大に伴ってパケット転送レートが改善され、パイプラインステージの充満率がある値に到達すると、パケット転送レートが最大値になり、さらに入力パケット数が増大すると、パイプラインのオーバーフローにより、パケット転送レートが減少することがされている。
【非特許文献１】ＰＤＰＴＡ'９８  インターナショナル・コンファレンス、「スーパーインテグレイティッド・データドリブン・プロセッサ・リアライジング・ハイパーディストリビューテッド・システム・エンバイロンメント」、ムラマツ等、１９９８、ｐｐ.４６１−４６８.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の非特許文献１においては、パイプラインステージの充満率が、ある値のときに最大の処理性能が得られることを検証している。しかしながら、そのシステム評価に要した時間等については何ら示していない。
【０００５】
また、上述の非特許文献１においては、複数のデータ駆動型演算処理プロセッサを並列に設け、並列演算処理を行なうことを図る。このような複数のプロセッサが設けられるマルチプロセッサシステムとして、たとえば１０個以上のプロセッサエレメントが集積化されているデータ駆動型演算処理装置において、たとえば音声信号処理を実行する場合を考える。ここで、プロセッサーエレメントは、1つの単位データ駆動型演算処理装置に対応する。
【０００６】
音声信号処理プログラムを表現する応用フローグラフの場合、数千個のノードをこのデータ駆動型演算処理装置に割当て、一定レートでデータを入力する。データ駆動型演算処理装置において、各プロセッサエレメントで処理可能な入力レートを超えたレートでデータ（パケット）が入力されると、パイプラインがオーバーフローし、処理が停止する。このため、マルチプロセッサのデータ駆動型演算処理装置に入力可能な入力データのデータレートを検証する手段が必要である。
【０００７】
外部クロック信号に基づいて処理を行なう同期型プロセッサは、その処理能力が外部のシステムクロックに支配される。したがって、プロセッサ上で実行するプログラムに対して入力可能なデータの入力レートは明確である。一方、非同期または自己同期型パイプライン型プロセッサの場合、外部のシステムクロック信号が存在しないため、その動作速度は、クロック信号に支配されない。このため、実行プログラムに対して入力可能なデータストリームのレートを予測するのは困難である。
【０００８】
従来は、その動作速度を保証する精度の高いシミュレータを用いて実験的に入力データストリームの投入間隔を変更して動作を検証し、シミュレータにより、プロセッサの処理可能な入力データストリームのレートを決定していた。しかしながら、このような精度の高いシミュレータの実行速度は、実務上満足できるレベルではなく、このデータ入力レートの評価に長時間を要しており、短時間でデータ転送レートを評価することのできる簡易評価手法が必要とされている。
【課題を解決するための手段】
【０００９】
この発明の第１の観点に係る性能評価装置は、実行可能なパケットを検出して出力する発火制御部と実行プログラムを格納するプログラム格納部とを含み、非同期パイプライン転送制御でパケットを転送するデータ駆動型処理装置の性能を評価する装置であり、発火制御部の入力パケットフローレートとプログラム格納部の出力パケットフローレートのいずれか大きいほうのフローレートをデータ駆動型処理装置の可能なパケット転送レートとを比較する手段と、この比較手段による比較結果に基づいてデータ駆動型処理装置に対する入力データレートを評価する評価手段とを含む。
【００１０】
この発明の第２の観点に係る性能評価方法は、非同期型パイプライン転送制御でパケットを転送するデータ駆動型処理装置で実行されるプログラムの入力アークおよび出力アークに接続されるノードについて、パケット入力レートとパケット出力レートをデータ駆動型処理装置の実行可能なパケット転送レートとを比較するステップと、この比較ステップにおける比較結果に基づいてデータ駆動型処理装置に対する入力データレートを評価するステップとを含む。
【００１１】
この発明の第３の観点に係るプログラムは、この第２の観点に係る性能評価方法をコンピュータに実行させるためのプログラムである。
【００１２】
この発明の第４の観点に係るコンピュータ読取可能な記録媒体は、この第３の観点に係るプログラムを格納する記録媒体である。
【発明の効果】
【００１３】
非同期型パイプライン転送制御に基づくデータ駆動型処理装置において、このデータ駆動型処理装置上で実行するプログラムの実行またはシミュレーション前に、プログラムを解析し、このデータ駆動型処理装置に入力可能な入力データレートを評価する。これにより、パイプライン転送制御に基づくデータ駆動型処理装置上で実行されるアプリケーションプログラムの静的性能を評価する。すなわち、従来のように、アプリケーションプログラムを記述するフローグラフのシミュレーションにより、入力データの入力可能なデータレートを決定するのではなく、フローグラフそのものを解析して、データ駆動型演算処理装置内のプロセッサエレメント内のパイプラインステージの転送速度の上限値から、このデータ駆動型演算処理装置に対する入力可能なデータレートを導出する。これにより、短時間でデータ駆動型処理装置の入力データレートの性能評価を行なうことができる。
【発明を実施するための最良の形態】
【００１４】
［実施の形態１］
この発明に従うアプリケーションプログラムの性能の評価手法について説明する前に、アプリケーションプログラムを実行する処理装置の構成について簡単に以下に説明する。
【００１５】
図１は、マルチプロセッサのデータ駆動型演算処理プロセッサＤＰの構成の一例を示す図である。このデータ駆動型演算処理プロセッサＤＰは、複数のプロセッサエレメントＰＥ♯０−ＰＥ♯３を含む。これらのプロセッサエレメントＰＥ♯０−ＰＥ♯３は、それぞれ、同一構成を有し、データ駆動型アーキテクチャに基づいて内部で、非同期でまたは自己同期的にパケットを転送して処理を実行する。これらのプロセッサエレメントＰＥ♯０−ＰＥ♯３は、ルータＲＴに結合され、ルータを介してデータ（パケット）を送受する。このルータＲＴは、入力ポートＩＡおよびＩＢと出力ポートＯＡおよびＯＢに結合される。入力ポートＩＡまたはＩＢを介してデータパケットが時系列的に入力され、ルータＲＴにおいて、この入力されたパケットに含まれるプロセッサエレメントを指定する番号に基づいてパケットの分配が行なわれ、またこれらのプロセッサエレメントＰＥ♯０−ＰＥ♯３において処理されたデータパケットが、ルータＲＴを介して出力ポートＯＡまたはＯＢを介して転送される。
【００１６】
これらのプロセッサエレメントＰＥ♯０−ＰＥ♯３には、アプリケーションプログラムに基づいて、予め設定された処理内容が記憶されており、データ駆動型アーキテクチャに基づいて、その設定された記憶内容に従って処理が進められる。
【００１７】
図２は、プロセッサエレメントＰＥ♯０−ＰＥ♯３に対して転送されるパケットＰＡの構成の一例を示す図である。図２において、パケットＰＡは、プロセッサエレメントを特定するプロセッサ番号を格納するフィールドＰＦと、実行すべき演算処理内容を示す命令コードを格納するフィールドＯＦと、ノード番号を格納するフィールドＮＦと、入力時間順序を示す世代番号を格納するフィールドＧＦと、演算されるデータ（オペランドデータ）を格納するフィールドＤＦと、次の行き先ノードを示す次ノード番号を格納するフィールドＮＦとを含む。
【００１８】
ルータＲＴにおいて、プロセッサ番号ＰＦに基づいて対応のプロセッサエレメントが選択され、指定されたプロセッサへ、このデータパケットＰＡが転送される。なお、図２に示すパケットＰＡの構成において、命令コードを格納するフィールドＯＦは、プロセッサエレメントＰＥ♯０−ＰＥ♯３において、入力されたパケットＰＡのノード番号フィールドＮＦ内のノード番号を参照して、後に説明するプログラム記憶部から対応の命令コードが検索されてフィールドＯＦ内に付加されて、対応のプロセッサエレメント内を転送されてもよい。
【００１９】
図３は、プロセッサエレメントＰＥ♯０−ＰＥ♯３の構成の一例を概略的に示す図である。これらのプロセッサエレメントＰＥ♯０−ＰＥ♯３は、同一構成を有する。これらのプロセッサエレメントＰＥ♯０−ＰＥ♯３は、それぞれ単体として利用される場合にも、データ駆動型演算処理プロセッサと称されるため、図３においては、参照符号１を用いて、単体のデータ駆動型演算処理プロセッサ（プロセッサエレメント）を示す。
【００２０】
図３において、プロセッサエレメントに対応するデータ駆動型演算処理プロセッサ１は、パケットの転送経路を制御する合流／分岐部１９と、合流／分岐部１９からのパケットを受け、発火条件を満たすパケットを検出し、その発火したパケットをパイプライン伝送路６を介して転送する発火処理部５と、発火処理部５から転送されたパケットを受け、パケット内に含まれる命令コードに従ってオペランドデータに必要な演算処理を施して出力する演算処理部７と、演算処理部７からパイプラインデータ伝送路８を介して転送されるパケットを受け、この与えられたデータパケットに含まれる次ノード番号に従って次のノード番号および対応の命令コードを、内部に含まれるプログラムメモリから読出して、ノード番号フィールド、次ノード番号フィールドおよび命令コードフィールドにそれぞれ格納して転送するプログラム記憶部９を含む。
【００２１】
合流／分岐部１９は、プログラム記憶部９からパイプラインデータ転送路１０を介して伝送されたパケットを受け、その行先情報（ノード番号およびプロセッサ番号）に従って、与えられたパケットを出力データ伝送路１３または内部のパイプラインデータ伝送路１２を介して転送する分岐部１１と、分岐部１１からのデータパケットと入力データ伝送路２から与えられるデータパケットを受け、順次、データ伝送路４を介して発火処理部５へ転送する合流部３を含む。
【００２２】
入力データ伝送路２および出力データ伝送路１３は、図１に示す構成が用いられる場合、それぞれルータＲＴに接続される。
【００２３】
発火処理部５は、与えられたパケットにおいて、ノード番号および世代番号が一致する２つのデータパケットを検出し、これらのパケットが到着すると、パケットの発火条件が満たされたとして、対をなすパケットのうち一方のパケットのオペランドデータを他方のパケットのデータフィールドに追加し、一方のデータパケットを消去し、この新たに生成されたパケットを演算処理部７に転送する。この処理は、パケットの演算内容が２項演算命令のときであり、３項以上の演算命令の時には、その演算を実行するノードに対するパケットがすべて到着する時に発火条件が満たされたとして、新たな１つのパケット生成処理が実行される。また、この発火処理部５は、パケットＰＡが定数データとの演算の場合には、単に、内部に含まれる定数データメモリから対応の定数データを読出してデータフィールドＤＦに追加して新たな１つのパケットを生成して演算処理部７へ転送する。
【００２４】
データ駆動型演算処理プロセッサ１内においては、発火処理部５に含まれる待合せメモリ内にパケットを格納することができない場合、この待合せメモリに空きが生じるまで、非発火状態のパケットは、パイプラインデータ伝送路４、６、８、１０および１２の経路を周回される。
【００２５】
プログラム記憶部９は、演算処理部７からのパケットに従って新たなパケットを生成するとき、パケット伝送先が複数個存在する場合には、複数のパケットをコピー操作により生成して、分岐部１１に転送する。このデータ駆動型演算処理プロセッサ１内においては、パケットは、ハンドシェイク態様に従って各データ伝送路を非同期に転送される。
【００２６】
図４は、このデータ駆動型演算処理プロセッサ１内のデータ伝送路のパイプライン構成の一例を示す図である。図４において、所定の処理を行なうロジック部１６の入力側および出力側に、それぞれ、ラッチ回路１５ａおよび１５ｂが配置される。これらのラッチ回路１５ａおよび１５ｂにそれぞれ対応して転送制御回路１７ａおよび１７ｂが配置される。転送制御回路１７ａおよび１７ｂは、パイプラインステージの次段回路へ、データ転送を指示する送信指示信号ＳＥＮＤをデータ（パケット）転送時送出し、また、データ受入が可能なときに、データ転送許可信号ＡＣＫを、前段の転送制御回路へ転送する。
【００２７】
ロジック部１６に対応して、遅延回路１８が設けられる。この遅延回路１８によりロジック回路１６における処理時間によるデータ（パケット）転送の遅延を補償する。
【００２８】
ロジック部１６は、図３に示すデータ駆動型演算処理プロセッサ１内において設けられ、転送されたパケットを受けてそれぞれ処理を実行する部分に対応し、具体的に、図３に示す合流部３、発火処理部５、演算処理部７、プログラム記憶部９、および分岐部１１のいずれかである。
【００２９】
この図４に示すパイプライン構成の場合のパケット転送動作を図５を参照して説明する。図５においては、ラッチ回路１５ｂの次段にラッチ回路１５ｃが配置される構成を示す。有意のデータ（処理前のデータ）がラッチ回路１５ａおよび１５ｃに存在する場合には、ラッチ回路１５ｃおよび１５ａは、転送指示信号ＡＣＫをデアサート状態に維持し、データ（パケット）転送を禁止する。従って、この状態では、ラッチ回路１５ｂからラッチ回路１５ｃへのデータ（パケット）転送は待機状態にある。
【００３０】
一方、ラッチ回路１５ｂにおいては、データ（パケット）を対応のロジック部に転送し、空状態となっているため、データ転送指示信号ＡＣＫをアサートしてデータ転送許可を前段のラッチ回路１５ａに与える。ラッチ回路１５ａは、このとき転送可能なデータが存在するため、この転送許可に従ってデータ（パケット）をロジック部１６に転送し、同時に送信指示信号ＳＥＮＤをアサートする。
【００３１】
転送制御回路１７ｂは、送信許可信号ＡＣＫをアサートした後、遅延回路１８を介してアサート状態の送信指示信号ＳＥＮＤが与えられると、対応のラッチ回路１５ｂにラッチ動作を行なわせ、ロジック部１６から転送されたデータ（パケット）をラッチさせる。
【００３２】
これらのラッチ回路１５ａおよび１５ｂは、内部にＦＩＦＯ（ファーストイン・ファーストアウト）態様で配置されるラッチ回路を含み、このデータ駆動型演算処理プロセッサ１内において、パケットを所定の順序で転送することができる。
【００３３】
なお、このパケット転送制御として、ラッチ回路において転送可能なデータが存在するときに送信指示信号ＳＥＮＤを送信要求として出力し、次段のラッチ回路においてデータの受入が可能となると送信許可信号ＡＣＫをアサートし、このアサート状態の送信許可信号ＡＣＫに従って、送信指示信号ＳＥＮＤとともにデータ（パケット）の転送が行われる転送制御が用いられても良い。
【００３４】
このような、送信可能データが存在しまた送信データを受入可能となったことを確認して転送を行う「ハンドシェイク」型の転送制御は、クロック信号と非同期で転送タイミングが確立されており、非同期型または自己タイミング型転送制御と称され、以下においては、この転送制御に従ってデータ（パケット）の転送を行うパイプラインを自己タイミング同期型パイプラインと称す。
【００３５】
この自己タイミング同期型パイプライン機構の場合、パイプライン中の任意の場所で、データの流れが一時的に停止状態となったとしても、その停止位置よりも後段の（下流側）のラッチ回路に順次データ（パケット）が転送されパイプラインステージを満たす。従ってラッチ回路は、データパケットのいわゆる一種のバッファ機能を有している。
【００３６】
なお、この図４に示すデータ転送路のパイプライン構成は、自己タイミング型パイプライン制御機構を有する構成であればよく、図４に示す構成と異なる他の構成が用いられてもよい。ＦＩＦＯ態様で、自己タイミング同期型データ転送（ハンドシェイク型データ転送制御）が行なわれる構成であればよい。
【００３７】
図６は、データ駆動型演算処理プロセッサで実行されるプログラムとデータ駆動型演算処理プロセッサの基本構成（プロセッサエレメント）との関係を示す図である。図６においては、図３に示すデータ駆動型演算処理プロセッサ１の構成およびデータパケットの流れを示し、右側に、実行されるプログラムとして、減算のプログラム例を示す。この減算プログラムにおいては、ノード２０において演算処理の内容、すなわち減算ＳＵＢを示すコードが記述される。このノード２０に対し入力アーク２１ａおよび２１ｂにより、演算処理データを示し、出力アーク２２により、演算処理後のデータの出力経路を示す。これらのアーク２１ａ、２１ｂ、および２２により、データを格納するパケットが流れる経路を示す。複数のノードをアークで接続している集合は、フローグラフと呼ばれ、データ駆動型演算処理プロセッサのプログラムは、フローグラフの形で記述される。
【００３８】
図６においては、データパケット“３”および“２”が、それぞれ入力アーク２１ａおよび２１ｂを介してノード２０へ転送され、減算ＳＵＢがこれらのデータパケット内のデータ（３，２）に対して行なわれ、演算結果が、再びデータパケット“１”として、出力アーク２２を介して転送される。
【００３９】
通常、データ駆動型演算処理プロセッサ１においては、入出力制御回路が設けられ、入力データをパケット化する機能が実装される。このパケット化においては、各パケットは、図２に示すように、パケットの識別子（世代番号）、演算内容（命令コード）、および次に実行する演算を決めるアドレス情報（次ノード番号）が、それぞれ対応のフィールドに格納される。この演算内容を示す命令コードは、図２に示すノード番号フィールドＮＦ内に含まれるノード番号を参照して、プログラム記憶部９から読出されて追加される。このときには、データ駆動型演算処理プロセッサ１内においては、図２に示すプロセッサ番号フィールドＰＦは削除される。
【００４０】
この生成されたパケットは、ＦＩＦＯ構成のパイプラインデータ伝送路２を介して合流／分岐部１９に取込まれる。この合流／分岐部１９内の合流部３により、データ伝送路４を構成するＦＩＦＯパイプラインを介して生成されたパケットが発火制御部５に転送されて取込まれる。この発火制御部５においては、内部の図示しない待合せメモリ内に、この取込んだパケットを、最初の演算されるパケットとして格納する。
【００４１】
次いで、この発火制御部５は、最初のパケットに対する演算相手が、この発火制御部５に到着するまで、すなわち、この最初のパッケトの発火条件が満たされるまで、その演算を待合わせる。なお、図６に示す例においては、２項演算が示されるものの、３項以上の演算の場合でも、同様な待合せが行なわれる。定数との演算を行なう場合には、入力パケットは無条件で発火し、対応の定数が入力パケットに付加されて、新たなパケットとして転送される。
【００４２】
演算に必要なオペランドが、すべて発火制御部５に到着した時点で、各オペランドを含むパケットが、１つのパケットに結合される。すなわち図６に示すパケット“３”および“２”が１つのパケットにまとめられる。この新たに生成されるパケット内には、オペランドデータ（３、２）、パケットの識別子、演算内容、および次に実行する演算を決めるアドレス情報が、図２に示すように格納され、データ伝送路６に含まれるＦＩＦＯパイプラインを介して演算処理部７に転送される。
【００４３】
演算処理部７は、与えられたパケットの内容に従ってオペランドデータに対して減算ＳＵＢを実行し、その演算結果を再び元のパケット内に格納し、パケット“１”を生成してデータ伝送路８のＦＩＦＯのパイプラインを介してプログラム記憶部９に転送する。
【００４４】
プログラム記憶部９は、演算処理部７から与えられたパケットに含まれる次演算ノード番号（アドレス情報）に従って内部に含まれるプログラムメモリをアクセスし、次に実行すべき演算内容を示す命令コードおよび次にこのデータパケットが転送されるノードを示す次のノード番号を図２に示すフィールドＯＦおよびＮＦに格納して、データ伝送路１０のＦＩＦＯのパイプラインを介して合流／分岐部１９へ転送する。
【００４５】
合流／分岐部１９においては、図３に示す分岐部１１が、与えられたパケットの行先情報に基づいて、出力データ伝送路１３またはデータ伝送路１２のいずれかへパケットを転送する。
【００４６】
１つのノード２０に対して入力アーク２１ａおよび２１ｂを介してパケットが転送される場合、発火制御部５においては、時系列的にパイプラインを介してパケットが転送される。したがって、データ駆動型演算処理プロセッサ単体（またはプロセッサエレメント）で実行されるフローグラフに対して、発火制御部５に入力されるパケットの転送速度（フローレートＲ（ｆｃ））は、次式から算出することができる。
【００４７】
【数１】
2005259030.tif 000003
【００４８】
ここで、上式（１）において、ｊは、データ駆動型演算処理プロセッサ（またはプロセッサエレメント）で実行されるフローグラフの入力アークを示し、ｍ個の入力アークが存在することを表わす。ｒ（ｊ）は、入力アークｊに対する入力パケットレート（パケットの転送速度）を示す。
【００４９】
同様に、プログラム記憶部９から出力されるパケットのフローレートＲ（ｐｓ）は、次式から算出することができる。
【００５０】
【数２】
2005259030.tif 000004
【００５１】
ここで、上式（２）において、ｋは、データ駆動型演算処理プロセッサ（プロセッサエレメント）で実行されるフローグラフの出力アークを示し、ｎ個の出力アークが存在することを表わす。ｒ（ｋ）は、出力アークｋに対する出力パケットレートを示す。すべてのアークについて、一定のレートｒでパケットが流れると仮定すれば、１つのプロセッサエレメントにおいて隘路となるフローレートＦＲ（critical）は、次式に基づいて算出することができる。
【００５２】
ＦＲ（critical）＝ｒ・Ｍａｘ（ｍ，ｎ）  …（３）
上式（３）において、演算Ｍａｘ（ｍ，ｎ）は、ｍおよびｎのうち大きいほうを選択する処理を示す。
【００５３】
上式（３）において、ＦＲ（critical）は、データ駆動型演算処理プロセッサの基本構成（図３に示すデータ駆動型演算処理プロセッサであり、図１に示すプロセッサエレメント）におけるパケットレート（パケットの入力レート）を示す。ｒは、フローグラフに対する入力パケットの転送レートを示し、具体的に、フローグラフ上の各入力アークおよび
出力アーク上に流れるパケットの転送レートを示す。ｍおよびｎは、プロセッサエレメントで実行されるフローグラフに含まれる入力アーク数および出力アーク数をそれぞれ示す。入力アークおよび出力アークは、図３に示す入力伝送路２および出力伝送路１３に対応する。図２に示すようにフローグラフが１つのノード２０で構成される場合、入力アーク２１ａおよび２１ｂであるため、ｍは、２に等しく、また出力アーク２２は１つであり、ｎ＝１となる。
【００５４】
入力パケットレートｒに対して、上式（３）の計算結果により得られたフローレートの臨界値ＦＲ（critical）の値が、非同期パイプライン転送制御を行なうプロセッサエレメントまたは単位データ駆動型演算処理プロセッサの上限レートを超えると、パケットは、パイプライン内で処理可能なレートよりも大きなレートで入力されるため、パイプラインがオーバーフローする。今、ここでは、パケットの入力レートをパイプラインの状況に応じてダイナミックに変更する動的な性能評価はここでは考えない。入力パケットのレートが一定である静的な性能の評価について考慮する。
【００５５】
たとえば、図１に示すデータ駆動型演算処理プロセッサＤＰの処理性能が１００ＭＨｚ、すなわち、パイプラインのパケット転送レートが１００メガパケット／秒であるとする。また、このデータ駆動型演算処理プロセッサにおいて実行されるプログラムは、図６に示す２入力１出力のノードで表現されるフローグラフであると仮定する。この場合、フローグラフの入力アーク２１ａおよび２１ｂに、それぞれ、７０メガパケット／秒の一定のレートでパケットがデータ駆動型演算処理プロセッサ（プロセッサエレメント）に入力された場合、図６に示す合流／分岐部１９においてはこれらのパケットが時系列的に転送されるため、合流／分岐部１９から発火制御部５の間のデータ伝送路１２におけるパケット転送レートが１４０メガパケット／秒となり、データ駆動型演算処理プロセッサ（プロセッサエレメント）の処理性能の上限レートを超え、パイプラインがオーバーフローする。このパイプラインのオーバーフローの有無を、本発明においては、アプリケーションプログラムの実行前に評価する。
【００５６】
図７は、この発明の実施の形態１に従う性能評価方法を示すフロー図である。以下、図７を参照して、図１に示す複数のプロセッサエレメントを含むデータ駆動型演算処理プロセッサにおいてフローグラフがこのデータ駆動型演算処理プロセッサＤＰ内で実行可能かを評価する方法について説明する。
【００５７】
まず、評価対象のフローグラフプログラムを準備し、検証操作を開始する（ステップＳ０）。この検証操作は、コンピュータまたはワークステーション上等の処理装置を利用して、検証処理が実行されてもよく、また、作業者がフローグラフプログラムを目視により追跡して手作業で検証操作を行っても良い。
【００５８】
次いで、解析対象のフローグラフのすべてのノードが、同一のプロセッサエレメントで実行されるか否かを判断する（ステップＳ１）。同一のプロセッサエレメントで、すべてのノードが実行されない場合、解析対象のすべてのノードが、同一のプロセッサエレメントで実行されるように解析の対象を変更する（ステップＳ２）処理を実行するため、ステップＳ１０において、処理を終了する。この場合、プロセッサ番号を参照して、各プロセッサエレメントごとにフローグラフが分解されて、再びステップＳ０からの処理が開始される。
【００５９】
ステップＳ１において、フローグラフのすべてのノードが、同一のプロセッサエレメントで実行されると判定された場合、このフローグラフの入力アークおよび出力アーク上に流れるパケットレートが、すべてのアークについて同じであるかを確認する（ステップＳ３）。入力アークおよび出力アークに流れるパケットのレートが異なる場合、各パケットレートについて、共通のパケットレートの入力アークの数と該共通のパケットレートとの乗算を行ない、同様、同じパケットレートと対応の出力アークの数との乗算を行ない、各パケットレートについて求められた結果を、それぞれ入力アークおよび出力アークについて加算する。これにより、上述の式（１）および（２）のフローレートＲ（ｆｃ）およびＲ（ｐｓ）が求められる（ステップＳ４）。
【００６０】
具体的に、フローレートが、ｒ１、ｒ２、ｒ３、…と複数個存在し、レートｒ１でパケットが流れる入力アークの数がｉｎ１、出力アークの数がｏｕｔ１、レートｒ２でパケットが流れる入力アークの数がｉｎ２、出力アークの数がｏｕｔ２、…とすると、このステップＳ４の処理は、次式（４）および（５）で表わされる。
【００６１】
Ｒ（ｆｃ）＝（ｒ１・ｉｎ１）＋（ｒ２・ｉｎ２）＋…  …（４）
Ｒ（ｐｓ）＝（ｒ１・ｏｕｔ１）＋（ｒ２・ｏｕｔ２）＋…  …（５）
一方、ステップＳ３において、このフローグラフの入力アークおよび出力アークをパケットのフローレートが同じｒの場合、入力アークおよび出力アークの数を数え、これらの入力アーク数および出力アーク数の大きいほうの数と一定のパケットレートｒとを乗算し、パケットレートの最大値を算出する（ステップＳ５）。
【００６２】
これらのステップＳ４およびＳ５で求められた結果を、プロセッサエレメントのパイプライン転送レートと比較する。入力アークについてのパケットフローレートＲ（ｆｃ）および出力アークについてのパケットフローレートＲ（ｐｓ）のいずれかが、プロセッサエレメントのパイプライン転送レートの上限よりも大きい場合、プロセッサエレメントで処理不可能となる。したがって、このプロセッサエレメントのパイプライン転送レートの上限に収まるようにプロセッサエレメント内のパケットレートを低減するかまたは、実行するノードを低減する（ステップＳ７）。
【００６３】
入力アークおよび出力アークは、フローグラフにおける入力アークおよび出力アークであり、プロセッサエレメントにおける外部からの入力データパケットおよび外部への出力データパケットにそれぞれ対応する。この実行ノード数を低減することにより、フローグラフにおける入力アークまたは出力アークの数を低減し、プロセッサエレメントに入力されるパケットの内部のパイプラインでの転送レートを低減する。
【００６４】
一方、これらの入力アークおよび出力アークについての転送レート（フローレート）が、プロセッサエレメントのパイプライン転送レートよりも上回ることがない場合には、このプロセッサエレメントで実行可能な負荷であると判断する（ステップＳ８）。これらのステップＳ７およびＳ８により、フローグラフの実行可能／不可能を判断して終了し、ステップＳ１０へ移り、性能評価の処理が終了する。
【００６５】
なお、上述の説明においては、出力アークおよび入力アークそれぞれについて、フローレートを算出し、これらも、プロセッサエレメントのパケット転送レートと比較している。しかしながら、この入力アークおよび出力アークのパケット転送速度（フローレート）の大きいほうを選択し、この大きいほうのフローレートを、プロセッサエレメントのパケット転送レートと比較してもよい。
【００６６】
なお、上述の説明においては、複数のプロセッサエレメントが含まれるデータ駆動型演算処理プロセッサ（またはプロセッサエレメント）についての性能評価を行なっている。しかしながら、図３に示すように、プロセッサエレメントが単体で利用される場合においても、この性能評価方法は適用可能である。単に、図７に示すフロー図においてステップＳ２の処理が存在しないだけである。プロセッサエレメント内においては、同じフローレートでパケットが転送されるため、フローグラフのノード間のアークについて考慮することは必要ではなく、このプロセッサエレメント（またはデータ駆動型演算処理プロセッサ）外部からの入力パケットおよび外部への出力パケットの対応するアークについてフローレートを計算する。
【００６７】
上述の説明においては、入力アークおよび出力アークとしては、入力伝送路および出力伝送路に対応するとして説明している。内部では、入力アークにおいて規定された転送レートでパケットが転送されるため、パイプラインのオーバフローが生じないと考えられるためである。しかしながら、フローグラフの各ノードについて入力および出力のアークのパケット転送レートが規定されているときには、各ノードについて上述の操作が実行されても良い。
【００６８】
図８は、このフローグラフプログラムの性能評価装置の機能的構成を概略的に示す図である。図８において、性能評価装置は、フローグラフプログラム情報を入力する入力手段３０と、この入力手段３０から入力されたプログラムからフローグラフを抽出するフローグラフ抽出手段３１と、このフローグラフ抽出手段３１により抽出されたフローグラフから入力アークを抽出する入力アーク抽出手段３２と、フローグラフ抽出手段３１により抽出されたフローグラフから出力アークを抽出する出力アーク抽出手段３３と、入力アーク抽出手段３２により抽出された入力アーク情報に基づいて入力フローレートを算出する入力フローレート算出手段３４と、出力アーク抽出手段３３により抽出された出力アーク情報に基づいて出力フローレートを算出する出力フローレート算出手段３５と、入力手段３０から入力されたプロセッサエレメントまたはデータ駆動型演算処理プロセッサの入力パケット転送レートを保持する入力パケットフローレート保持手段３７と、入力フローレート算出手段３４および出力フローレート算出手段３５により算出されたフローレートをこの入力パケットフローレート保持手段３７に保持されたフローレートと比較し、その比較結果に基づいて判定結果Ｐ／Ｆを出力する比較手段３６を含む。
【００６９】
入力手段３０は、ディスク駆動装置、キーボードおよびマウス等を含み、外部から必要な情報を入力する。
【００７０】
この図８に示す性能評価装置は、たとえばコンピュータなどの装置においてその機能が実現される。フローグラフ抽出手段３１は、入力手段３０から与えられるフローグラフプログラムから、そのノードの接続を追跡して、このプロセッサエレメントに対するフローグラフを抽出する。入力アーク抽出手段３２は、このフローグラフのノード情報により、入力アークを抽出し、出力アーク抽出手段３３は、このフローグラフのノード情報に基づいて出力アークを抽出する。これらの入力アークおよび出力アークには、それぞれ、予め、フローレート情報が付け加えられている。
【００７１】
入力フローレート算出手段３４は、この入力アーク抽出手段３２により抽出された入力アークおよび対応のパケットフローレートの乗算および乗算結果の加算の積和演算を行なって入力フローレートを算出する。同様、出力フローレート算出手段３５も、この抽出された入力アークと各出力アークのフローレートの積和演算を行なって出力フローレートを算出する。これらの入力フローレート算出手段３４および出力フローレート算出手段３５においては、同一のフローレートのアークの数を算出し、このアークの数を対応のフローレートと乗算するとともに、異なるフローレートについての加算を実行する。
【００７２】
比較手段３６は、この入力フローレート算出手段３４および出力フローレート算出手段３５により算出されたフローレートのうち大きいほうのフローレートを抽出し、その大きいフローレートを入力パケットフローレート保持手段３７に保持されたフローレートと比較する。この比較結果に従って、判定結果Ｐ／Ｆを実行可能または実行不可能を指示する状態に設定する。この判定結果は、表示装置上に表示されても良く、また、プリンタなどによりプリントアウトされても良い。
【００７３】
この図８に示す性能評価装置を、フローグラフ抽出および性能評価のために利用することにより、正確に、性能評価を行なうことができる。
【００７４】
以上のように、この発明の実施の形態１に従えば、データ駆動型演算処理プロセッサ（またはプロセッサエレメント）において、フローグラフの入力アークおよび出力アークのパケットフローレートを算出し、そのフローレートをプロセッサエレメントまたはデータ駆動型演算処理プロセッサのパケット転送レートと比較し、その比較結果に基づいてフローグラフプログラムの実行可能／不可能を判定している。すべて、シミュレータを用いて転送レートを変更してプログラムを実行する必要がなく、簡易に、プログラムの性能評価を行なうことができる。
【００７５】
［実施の形態２］
この図８に示す性能評価処理を、パーソナルコンピュータまたはワークステーションなどのコンピュータ上で実行することにより、高精度でアプリケーションプログラムの静的性能評価処理を実行することができる。
【００７６】
図９は、この発明の実施の形態２に従うアプリケーションプログラムの静的性能評価装置が搭載されるコンピュータの構成を概略的に示す図である。図９において、コンピュータは、ＣＲＴ（陰極線管）または液晶表示装置などで構成されるディスプレイ装置６１０と、このコンピュータを集中的に管理し制御するためのＣＰＵ（中央演算処理装置）６２２と、ＲＯＭ（リード・オンリ・メモリ）またはＲＡＭ（ランダム・アクセス・メモリ）を含み、管理用データおよびブートストラップ用プログラム等を格納するとともに、作業領域を与えるメモリ６２４と、不揮発的に大容量のプログラム情報などを格納する固定ディスク装置６２６と、フレキシブルディスク（ＦＤ）６３２が着脱自在に装着されて、この装着されたＦＤ６３２をアクセスするＦＤ駆動装置６３０と、ＣＤ−ＲＯＭ（コンパクト・ディスク・リード・オンリ・メモリ）６４２が着脱自在に装着されて、該装着されたＣＤ−ＲＯＭ６４２をアクセスするＣＤ−ＲＯＭ駆動装置６４０と、通信ネットワーク３００と該コンピュータとを通信接続するための通信インターフェイス６８０と、必要な情報／データを入力する入力部７００と、処理結果データとをプリントアウトするためのプリンタ６９０を含む。
【００７７】
入力部７００は、その位置ディスプレイ装置６１０上で変更可能であり、クリック操作により情報を入力するマウス６６０と、キーの押下により情報を入力するキーボード６５０を含む。これらのコンピュータ内の各要素は、内部バス６６０により相互接続される。
【００７８】
また、このコンピュータにおいては、カセット形式の磁気テープが着脱自在に装着されて、この装着された磁気テープをアクセスする磁気テープ駆動装置が設けられていてもよい。
【００７９】
この実施の形態２においては、コンピュータ上に展開されるエディタツールを用いてフローグラフの詳細情報を取得することにより、評価精度を改善する。
【００８０】
図１０は、フローグラフを記述するためのエディタツールを用いて記述されたフローグラフの一例を示す図である。図１０において、データ駆動型演算処理プロセッサ（プロセッサエレメント）への入力は、入力ノード（input［0］）５０の記述により宣言される。この記述された入力ノード５０からのアーク５１に、データ駆動型演算処理プロセッサに入力されるパケットレートを指定する。アーク５１以降の下流のアークに対しては、パケットレートは変更されずにパケットが流れるため、これらの下流のアークに対して流れるパケットレートを指定することは要求されない。
【００８１】
アーク５１が、ノード５５の左入力ポートに結合される。このノード５５の右入力ポートには定数“０”が結合される。ノード５５においては、この左入力ノードに与えられたデータが、右入力ノードのデータよりも小さい場合には、真（true）ノードへ左入力ノードのデータが出力される。偽（false）のときには、偽出力ノードへ左入力ノードのデータが出力される。ノード５５の真ノードは、モジュール５２に結合される。モジュール５２においては、さらに処理が内部で実行される。このフローグラフにおいてモジュール５２を利用することにより、データ格納（Store Data）処理を階層記述することができる。
【００８２】
モジュール５２内においては、複数のノード、アークおよびさらにモジュールを記述することが可能であり、またモジュールを複数個ネストすることも可能である。たとえば音声信号処理を行なう応用プログラムにおいては、数千個のノードの規模のフローグラフを記述する場合がある。このような大規模のフローグラフを記述する場合モジュールを利用することにより、各処理単位でフローグラフを分割することが可能となり、大規模フローグラフを記述することができる。
【００８３】
図１０においては、さらに、MainおよびInitで定義されるモジュールが用いられる。これらのモジュールにおいては、メイン処理および初期化処理をそれぞれ実行するプログラムが記述される。
【００８４】
なお、ノード５５の偽ノードfalseに接続されるノードにおいて記述される演算“SWEQfs”は、左入力ノードおよび右入力ノードのデータの大小を比較し、その比較結果に従って真出力ノードおよび偽出力ノードのいずれかへ、左入力ノードのデータを出力する処理を示す。これにより、入力ノード５０からのデータのうち、定数“0”および“0xffff”の間の入力データがMainで記述されるモジュール内で処理され、それ以外のデータの処理は、Initで記述される初期化処理で実行される。
【００８５】
このMainモジュールの出力が、出力ノード５４に結合される。この出力ノード５４は、データ駆動型演算処理プロセッサからの出力を意味する。この出力ノード５４において出力“outp1,0”を記述することにより、出力ノードが宣言される。
【００８６】
この図１０に示すフローグラフにおいては、入力ノードおよび出力ノードがそれぞれ１つであり、したがって入力アークおよび出力アークも１つである。したがってアーク５１に規定されるデータパケットフローレートが指定されたとき、この入力アーク５１のフローレートがデータ駆動型演算処理プロセッサのパケット入力レートを超えなければ、この図１０に示すフローグラフは、データ駆動型演算処理プロセッサ（プロセッサエレメント）において実行可能である。
【００８７】
通常、フローグラフにおいては、入力ノードおよび出力ノードはそれぞれ、複数個設けられ、入力ノード５０と出力ノード５４の間に、演算ノードおよびモジュールがアークで接続される。
【００８８】
本実施の形態２においては、このエディタツールを利用してフローグラフを記述するとき、入力アーク５１にパケットのフローレートを指定することにより、該アークに設定されたパケットの転送レートおよびデータ駆動型演算処理プロセッサ内のパケット転送レートの上限値に基づいて、プログラムの静的性能評価を実行する。すなわち、図１０に示すようにエディタツールを用いて記述したフローグラフに、入力されるパケットのデータレートが設定される。このエディタツール上で性能評価機能を実行し、図１１に示すフロー図に従って、性能評価処理が実行され、その性能評価結果が、ユーザにディスプレイ装置６１０またはプリンタ６９０を利用して表示される。以下、図１１を参照して、この発明の実施の形態２における性能評価方法について説明する。
【００８９】
まず、エディタツールを用いてフローグラフを記述する（ステップＳ１９）。このフローグラフを記述した後に、記述されたアプリケーションプログラムの性能評価をエディタツール上で実行する。したがってこのエディタツールは、フローグラフを記述する機能に加えて、記述されたフローグラフプログラムの性能を評価する機能を有する。
【００９０】
まず、記述されたフローグラフについて、すべてのノードが、アークで接続されているかおよびその他の構文（シンタックス）が正確に記載されているかを判定する（ステップＳ２０）。ステップＳ２０において、すべてのノードがアークで接続されており、またシンタックスも正確に記述されていると判定されていると、次いでフローグラフに入力されるパケットレートが設定されているかの判定が行なわれる（ステップＳ２２）。これらのステップＳ２０およびＳ２２により、解析対象のフローグラフが解析可能であるかを検出する。
【００９１】
ステップＳ２０において、フローグラフのノードの接続が不十分またはシンタックス不良などの不良が検出されると、さらに未接続ノードの存在などのエラーが存在することを表示して性能評価処理を完了する（ステップＳ２１）。このステップＳ２１においてエラー表示が行なわれた場合、未接続ノードの解析を実行する。また、ステップＳ２２において入力アークに対して入力パケットレートが設定されていないと判定された場合には、入力パケットレートを入力アークに対して設定する必要がある旨を、ディスプレイ装置６１０上に表示して、この処理を終了する（ステップＳ２３）。
【００９２】
したがって、性能解析のための情報が不足する場合には、ステップＳ２１またはＳ２３において、その不足情報の存在およびその不足情報の処理を任せて解析処理を終了する。
【００９３】
ステップＳ２２において、フローグラフに対する入力パケットレートが設定されていると判定されると、このエディタツールにおいては、フローグラフの性能評価の解析が可能であると判定される。このとき、同一プロセッサエレメントごとに、実行されるノードの入力アークおよび出力アークを抽出して、これらの入力および出力アークの数を数える。これらの検出された入力アークおよび出力アークに流れるパケットに対して設定されたパケットレート情報を元に、入力アークに対する合計パケットレートおよび出力アークに対する合計パケットレートを計算する（ステップＳ２４）。このステップＳ２４における処理においては、先の実施の形態１における処理と同様の処理が行なわれる。この入力アークおよび出力アークの検出処理においては、宣言された入力ノードおよび宣言された出力ノードを検出するとともに、それに接続されるアークに対して記述されたフローレートを抽出することにより必要な情報の獲得が行なわれる。
【００９４】
次いで、入力アークおよび出力アークにおいて、各アークに流れるパケットレートを合計する（ステップＳ２５）。このステップＳ２５における入力アークに流れるパケットレートの合計および出力アークに流れるパケットレートの合計は、アークのパケットレートが異なる場合を想定する。入力アークおよび出力アークのパケットのフローレートがすべて同一の場合には、単に、ステップＳ２４において算出された入力アークの数および出力アークの数の大きいほうの数と一定のフローレートとの乗算が行なわれる。
【００９５】
次いで、この算出された合計パケットレートが、予め設定されたプロセッサエレメントのパイプライン転送レートの上限以下であるかの判定が行なわれる（ステップＳ２６）。この合計パケットレートが、プロセッサエレメントのパイプライン転送レートの上限を超える場合、パイプラインが、オーバーフローすることをユーザに知らせる（ステップＳ２７）。この場合、図９に示すディスプレイ装置６１０を用いてダイヤログボックスの形で表示される。
【００９６】
一方、合計パケットレートが、プロセッサエレメントのパイプライン転送レートの上限を超えない場合には、その比較値を比例計算（割算）に基づいて算出し、上限値と合計パケットフローレートをまとめて、図９に示すディスプレイ装置６１０上に表示する。この比例計算によるパイプラインの転送レート上限値と合計パケットフローレートの比を算出して表示することにより、パケット転送レートを高くするまたは、ノード数の増加などの処理を、さらに、解析結果に基づいて行なうことができる。
【００９７】
この図１１に示すフローは、図９に示すコンピュータに搭載されるエディタツールを、ＣＰＵ６２２の制御の下に実行して性能評価機能が実現される。このエディタツールを用いて記述したフローグラフプログラムの性能評価を行なうことにより、入力ノードおよび出力ノードの抽出および入力アークおよび出力アークの抽出を確実に高精度で行なうことができる（エディタツールにおいて各入力ノードおよび出力ノードの宣言により、自由に抽出することができる）。これにより、非同期型パイプライン転送制御に基づくデータ駆動型演算処理プロセッサ（またはプロセッサエレメント）上で実行されるアプリケーションプログラムの静的性能評価を高精度でかつ短時間で行なうことができる。
【００９８】
［実施の形態３］
この非同期型パイプライン転送制御型プロセッサ上で実行されるアプリケーションプログラムの静的性能評価処理は、プログラムにより実現される。本実施の形態３においては、この性能評価プログラムは、コンピュータで読取可能な記録媒体に格納される。この記録媒体としては、コンピュータに内蔵され、コンピュータが処理を実行するために必要なメモリ６２４それ自体が、プログラムメディアであってもよい。また、このコンピュータの外部記憶装置に着脱自在に装着され、そこに記録されたプログラムが外部記憶装置を介して読取可能な記録媒体であってもよい。このような外部記憶装置としては、図９に示すＦＤ駆動装置６３０およびＣＤ−ＲＯＭ駆動装置６４０、および磁気テープ装置（図示せず）などであり、記録媒体としては、ＦＤ（フレキシブルディスク）６３２、ＣＤ−ＲＯＭ６４２、または磁気テープ（図示せず）である。
【００９９】
いずれの記録媒体が利用される場合においても、各記録媒体に記録されているプログラムは、図９に示すＣＰＵ６２２がアクセスして実行する構成であってもよい。または、これに代えて、性能評価プログラムが、対応の記録媒体から一旦読出され、所定のプログラム記憶エリア、たとえばメモリ６２４のプログラム記憶エリアにロードされ、ＣＰＵ６２２により、この格納された性能処理プログラムが読出されて実行されてもよい。この場合、当然、性能評価プログラムをメモリ６２４の所定のプログラム領域にロードするためのプログラムは、コンピュータ内において、メモリ６２４または固定ディスク６２６の所定領域に格納されている。
【０１００】
この性能評価プログラムを記録する記録媒体は、コンピュータ本体と分離可能に構成される。このような記録媒体としては、固定的にプログラムを担持する媒体を利用することができる。具体的には、磁気テープまたはカセットテープなどのテープ、ＦＤ６３２および固定ディスク６２６などの磁気ディスク、ＣＤ−ＲＯＭ６４２、ＭＯ（マグネティック・オプティカル・ディスク）、ＭＤ（ミニディスク）、ＤＶＤ（デジタル・バーサタイル・ディスク）などの光ディスク系のディスク、メモリカード、またはＩＣカードまたは光カードなどのカード、マスクＲＯＭ、ＥＰＲＯＭ（書込消去可能なＲＯＭ）、ＥＥＰＲＯＭ（電気的に書込消去可能なＲＯＭ）、またはフラッシュメモリなどの半導体メモリを利用することができる。したがって、この図１２に示すように、記録媒体３５０としては、性能評価プログラム３６０が記録される記録媒体であれば、任意の種類の記録媒体を利用することができる。
【０１０１】
また、図９に示すコンピュータにおいては、通信インターフェイス６８０を介してネットワーク３００と接続される。したがって、この場合、ネットワーク３００から、性能評価プログラムがダウンロードされ、そのダウンロードされたプログラムを担持する記録媒体であってもよい。通信ネットワーク３００から性能評価プログラムがダウンロードされる場合には、ダウンロード用プログラムが、予めこのコンピュータ本体に搭載されていてもよく、または別の記録媒体からこの性能評価プログラムダウンロード前にインストールされてもよい。
【０１０２】
この通信ネットワーク３００を介して性能評価プログラムがダウンロードされる場合には、サーバなどのホストにおいて、性能評価プログラムが担持されている。なお、記録媒体に格納される内容としては、性能評価プログラムそのものでなく、マシン語へのコンパイル後のコードデータ等の、性能評価処理を行なうためのコードデータであってもよい。  
【０１０３】
また、図１２に示す記録媒体３５０において、性能評価プログラム３６０は、エディターツールを実現するプログラムの一部の領域に保持されていてもよい。
【０１０４】
以上のように、この発明の実施の形態３に従えば、性能評価処理プログラムを記録媒体に保持しており、容易にアプリケーションプログラムの性能評価を高精度で行なうことができる。
【０１０５】
以上のように、この発明の実施の形態１から３に従えば、入力アークおよび出力アークのパケットのフローレートをフローグラフの解析により算出することにより、複数のプロセッサエレメントを含むデータ駆動型演算処理プロセッサの全体の構成の中で、いずれのプロセッサエレメントがパイプライン転送の隘路になるかを検出することが、フローグラフを実行する上で、入力可能な入力データのレートを算出することができる。
【０１０６】
さらに、このアプリケーションプログラムの性能評価アルゴリズムおよび解析機能を実現するフローグラフ開発環境ツールを利用することにより、従来行なうことができなかったアプリケーションプログラムの実行前にその性能評価を容易に行なうことができ、応用フローグラフ開発期間を短縮することができる。
【図面の簡単な説明】
【０１０７】
【図１】複数のプロセッサエレメントを含むデータ駆動型演算処理プロセッサの構成を概略的に示す図である。
【図２】プロセッサエレメントに供給されるパケットの構成の一例を示す図である。
【図３】図１に示すプロセッサエレメントを構成する単位データ駆動型演算処理プロセッサの構成を概略的に示す図である。
【図４】図３に示すプロセッサエレメント内のパイプラインデータ転送路の構成の一例を概略的に示す図である。
【図５】図４に示すパイプラインデータ転送路のデータパケット転送動作を示す図である。
【図６】データ駆動型演算処理プロセッサにおけるフローグラフとデータ駆動型演算処理プロセッサの基本構成との関係を概略的に示す図である。
【図７】この発明の実施の形態１に従うアプリケーションプログラム性能評価方法を示すフロー図である。
【図８】図７に示す処理フローを実現するハードウェア構成を機能的に示す図である。
【図９】この発明に従うアプリケーションプログラムの静的性能評価装置が搭載されるコンピュータの構成を概略的に示す図である。
【図１０】この発明に従うアプリケーションプログラムをこの開発環境の機能として実現した場合のフローグラフの一例を示す図である。
【図１１】この発明の実施の形態２に従うアプリケーションプログラムの性能評価方法を示すフロー図である。
【図１２】この発明の実施の形態３に従う記録媒体の構成を概略的に示す図である。
【符号の説明】
【０１０８】
ＤＰ  データ駆動型演算処理プロセッサ、ＰＥ♯０−ＰＥ♯３  プロセッサエレメント、１  データ駆動型演算処理プロセッサ、２  入力データ伝送路、３  パケット合流部、５  発火処理部、７  演算処理部、９  プログラム記憶部、１１  分岐部、４，６，８，１０，１２  データ伝送路、１３  出力データ伝送路、１５ａ，１５ｂ  ラッチ回路、１７ａ，１７ｂ  転送制御回路、２１ａ，２１ｂ  入力アーク、２２  出力アーク、３０  入力手段、３１  フローグラフ抽出手段、３２  入力アーク抽出手段、３３  出力アーク抽出手段、３４  入力フローレート算出手段、３５  出力フローレート算出手段、３６  比較手段、３７  入力パケットフローレート保持手段、６１０  ディスプレイ装置、６２２  ＣＰＵ、６２４  メモリ、６２６  固定ディスク、６３０  ＦＤ駆動装置、６４０  ＣＤ−ＲＯＭ駆動装置、６３２  ＦＤ、６４２  ＣＤ−ＲＯＭ、６８０  通信インターフェイス、７００  入力部。
【図１】
2005259030.tif 000005
【図２】
2005259030.tif 000006
【図３】
2005259030.tif 000007
【図４】
2005259030.tif 000008
【図５】
2005259030.tif 000009
【図６】
2005259030.tif 000010
【図７】
2005259030.tif 000011
【図８】
2005259030.tif 000012
【図９】
2005259030.tif 000013
【図１０】
2005259030.tif 000014
【図１１】
2005259030.tif 000015
【図１２】
2005259030.tif 000016