JP2005259030A - 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体 - Google Patents

性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体 Download PDF

Info

Publication number
JP2005259030A
JP2005259030A JP2004072870A JP2004072870A JP2005259030A JP 2005259030 A JP2005259030 A JP 2005259030A JP 2004072870 A JP2004072870 A JP 2004072870A JP 2004072870 A JP2004072870 A JP 2004072870A JP 2005259030 A JP2005259030 A JP 2005259030A
Authority
JP
Japan
Prior art keywords
packet
data
input
rate
program
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.)
Pending
Application number
JP2004072870A
Other languages
English (en)
Inventor
Rikarudo Takashi Shichiku
リカルド 毅史 紫竹
Shinichi Yoshida
眞一 芳田
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2004072870A priority Critical patent/JP2005259030A/ja
Priority to US11/078,422 priority patent/US7493469B2/en
Publication of JP2005259030A publication Critical patent/JP2005259030A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 非同期型パイプライン転送制御に基づくデータ駆動型演算処理装置で実行されるプログラムの性能評価を、容易に短時間で実行する。
【解決手段】 アプリケーションプログラムをフローグラフで記述し、入力アークおよび出力アークを抽出する。これらの入力アークおよび出力アークのパケットレートを抽出し(S3,S4)、これらの入力アークのパケットレートおよび出力アークのパケットレートが、プロセッサエレメントのパイプライン転送レートの上限値以下であるかを判断する(ステップS6)。この判断結果に従って、記述されたフローグラフプログラムが、演算処理プロセッサで実行可能であるかを判定する(ステップS7,S8)。
【選択図】 図7

Description

この発明は、データ処理装置の性能を評価するための装置および方法に関し、特に、データ駆動アーキテクチャに基づく非同期型パイプラインデータ処理装置上で実行されるプログラムの静的性能を評価するための装置、方法および該方法を実現するためのプログラムに関する。
大量のデータを高速処理する場合には、並列処理が有効である。このような並列処理向けアーキテクチャの1つとして、データ駆動型アーキテクチャがある。このデータ駆動型アーキテクチャに基づく情報処理システムにおいては、「ある処理に必要な入力データがすべて揃い、その処理に必要な演算装置などの資源が割当てられたときに処理が行なわれる」という規則に従って処理が並列に進行する。
このようなデータ駆動型演算処理装置の構成は、たとえば非特許文献1(PDPTA'98インターナショナル・コンファレンス(International Conference)の「スーパー・インテグレイティッド・データドリブン・プロセッサ・リアライジング・ハイパーディストリビューテッド・システム・エンバイロンメント(Super-Integrated Data-Driven Processor Realizing hyper-distributed System Environment)」、ムラマツ等、1998、pp.461−468)において示されている。この非特許文献1は、データ駆動型処理装置内のパイプラインステージ間でパケット転送をハンドシェイク方式に従って実行する自己同期型または非同期転送方式について解説している。この非特許文献1においては、処理性能が、パイプラインステージを介して転送されるパケットの速度(フローレート)に依存することを検証している。このパケット転送時において、パイプラインステージの充満率(フィリングレート:filling rate)がある一定値以下の場合、入力データパケットの数の増大に伴ってパケット転送レートが改善され、パイプラインステージの充満率がある値に到達すると、パケット転送レートが最大値になり、さらに入力パケット数が増大すると、パイプラインのオーバーフローにより、パケット転送レートが減少することがされている。
PDPTA'98 インターナショナル・コンファレンス、「スーパーインテグレイティッド・データドリブン・プロセッサ・リアライジング・ハイパーディストリビューテッド・システム・エンバイロンメント」、ムラマツ等、1998、pp.461−468.
上述の非特許文献1においては、パイプラインステージの充満率が、ある値のときに最大の処理性能が得られることを検証している。しかしながら、そのシステム評価に要した時間等については何ら示していない。
また、上述の非特許文献1においては、複数のデータ駆動型演算処理プロセッサを並列に設け、並列演算処理を行なうことを図る。このような複数のプロセッサが設けられるマルチプロセッサシステムとして、たとえば10個以上のプロセッサエレメントが集積化されているデータ駆動型演算処理装置において、たとえば音声信号処理を実行する場合を考える。ここで、プロセッサーエレメントは、1つの単位データ駆動型演算処理装置に対応する。
音声信号処理プログラムを表現する応用フローグラフの場合、数千個のノードをこのデータ駆動型演算処理装置に割当て、一定レートでデータを入力する。データ駆動型演算処理装置において、各プロセッサエレメントで処理可能な入力レートを超えたレートでデータ(パケット)が入力されると、パイプラインがオーバーフローし、処理が停止する。このため、マルチプロセッサのデータ駆動型演算処理装置に入力可能な入力データのデータレートを検証する手段が必要である。
外部クロック信号に基づいて処理を行なう同期型プロセッサは、その処理能力が外部のシステムクロックに支配される。したがって、プロセッサ上で実行するプログラムに対して入力可能なデータの入力レートは明確である。一方、非同期または自己同期型パイプライン型プロセッサの場合、外部のシステムクロック信号が存在しないため、その動作速度は、クロック信号に支配されない。このため、実行プログラムに対して入力可能なデータストリームのレートを予測するのは困難である。
従来は、その動作速度を保証する精度の高いシミュレータを用いて実験的に入力データストリームの投入間隔を変更して動作を検証し、シミュレータにより、プロセッサの処理可能な入力データストリームのレートを決定していた。しかしながら、このような精度の高いシミュレータの実行速度は、実務上満足できるレベルではなく、このデータ入力レートの評価に長時間を要しており、短時間でデータ転送レートを評価することのできる簡易評価手法が必要とされている。
この発明の第1の観点に係る性能評価装置は、実行可能なパケットを検出して出力する発火制御部と実行プログラムを格納するプログラム格納部とを含み、非同期パイプライン転送制御でパケットを転送するデータ駆動型処理装置の性能を評価する装置であり、発火制御部の入力パケットフローレートとプログラム格納部の出力パケットフローレートのいずれか大きいほうのフローレートをデータ駆動型処理装置の可能なパケット転送レートとを比較する手段と、この比較手段による比較結果に基づいてデータ駆動型処理装置に対する入力データレートを評価する評価手段とを含む。
この発明の第2の観点に係る性能評価方法は、非同期型パイプライン転送制御でパケットを転送するデータ駆動型処理装置で実行されるプログラムの入力アークおよび出力アークに接続されるノードについて、パケット入力レートとパケット出力レートをデータ駆動型処理装置の実行可能なパケット転送レートとを比較するステップと、この比較ステップにおける比較結果に基づいてデータ駆動型処理装置に対する入力データレートを評価するステップとを含む。
この発明の第3の観点に係るプログラムは、この第2の観点に係る性能評価方法をコンピュータに実行させるためのプログラムである。
この発明の第4の観点に係るコンピュータ読取可能な記録媒体は、この第3の観点に係るプログラムを格納する記録媒体である。
非同期型パイプライン転送制御に基づくデータ駆動型処理装置において、このデータ駆動型処理装置上で実行するプログラムの実行またはシミュレーション前に、プログラムを解析し、このデータ駆動型処理装置に入力可能な入力データレートを評価する。これにより、パイプライン転送制御に基づくデータ駆動型処理装置上で実行されるアプリケーションプログラムの静的性能を評価する。すなわち、従来のように、アプリケーションプログラムを記述するフローグラフのシミュレーションにより、入力データの入力可能なデータレートを決定するのではなく、フローグラフそのものを解析して、データ駆動型演算処理装置内のプロセッサエレメント内のパイプラインステージの転送速度の上限値から、このデータ駆動型演算処理装置に対する入力可能なデータレートを導出する。これにより、短時間でデータ駆動型処理装置の入力データレートの性能評価を行なうことができる。
[実施の形態1]
この発明に従うアプリケーションプログラムの性能の評価手法について説明する前に、アプリケーションプログラムを実行する処理装置の構成について簡単に以下に説明する。
図1は、マルチプロセッサのデータ駆動型演算処理プロセッサDPの構成の一例を示す図である。このデータ駆動型演算処理プロセッサDPは、複数のプロセッサエレメントPE♯0−PE♯3を含む。これらのプロセッサエレメントPE♯0−PE♯3は、それぞれ、同一構成を有し、データ駆動型アーキテクチャに基づいて内部で、非同期でまたは自己同期的にパケットを転送して処理を実行する。これらのプロセッサエレメントPE♯0−PE♯3は、ルータRTに結合され、ルータを介してデータ(パケット)を送受する。このルータRTは、入力ポートIAおよびIBと出力ポートOAおよびOBに結合される。入力ポートIAまたはIBを介してデータパケットが時系列的に入力され、ルータRTにおいて、この入力されたパケットに含まれるプロセッサエレメントを指定する番号に基づいてパケットの分配が行なわれ、またこれらのプロセッサエレメントPE♯0−PE♯3において処理されたデータパケットが、ルータRTを介して出力ポートOAまたはOBを介して転送される。
これらのプロセッサエレメントPE♯0−PE♯3には、アプリケーションプログラムに基づいて、予め設定された処理内容が記憶されており、データ駆動型アーキテクチャに基づいて、その設定された記憶内容に従って処理が進められる。
図2は、プロセッサエレメントPE♯0−PE♯3に対して転送されるパケットPAの構成の一例を示す図である。図2において、パケットPAは、プロセッサエレメントを特定するプロセッサ番号を格納するフィールドPFと、実行すべき演算処理内容を示す命令コードを格納するフィールドOFと、ノード番号を格納するフィールドNFと、入力時間順序を示す世代番号を格納するフィールドGFと、演算されるデータ(オペランドデータ)を格納するフィールドDFと、次の行き先ノードを示す次ノード番号を格納するフィールドNFとを含む。
ルータRTにおいて、プロセッサ番号PFに基づいて対応のプロセッサエレメントが選択され、指定されたプロセッサへ、このデータパケットPAが転送される。なお、図2に示すパケットPAの構成において、命令コードを格納するフィールドOFは、プロセッサエレメントPE♯0−PE♯3において、入力されたパケットPAのノード番号フィールドNF内のノード番号を参照して、後に説明するプログラム記憶部から対応の命令コードが検索されてフィールドOF内に付加されて、対応のプロセッサエレメント内を転送されてもよい。
図3は、プロセッサエレメントPE♯0−PE♯3の構成の一例を概略的に示す図である。これらのプロセッサエレメントPE♯0−PE♯3は、同一構成を有する。これらのプロセッサエレメントPE♯0−PE♯3は、それぞれ単体として利用される場合にも、データ駆動型演算処理プロセッサと称されるため、図3においては、参照符号1を用いて、単体のデータ駆動型演算処理プロセッサ(プロセッサエレメント)を示す。
図3において、プロセッサエレメントに対応するデータ駆動型演算処理プロセッサ1は、パケットの転送経路を制御する合流/分岐部19と、合流/分岐部19からのパケットを受け、発火条件を満たすパケットを検出し、その発火したパケットをパイプライン伝送路6を介して転送する発火処理部5と、発火処理部5から転送されたパケットを受け、パケット内に含まれる命令コードに従ってオペランドデータに必要な演算処理を施して出力する演算処理部7と、演算処理部7からパイプラインデータ伝送路8を介して転送されるパケットを受け、この与えられたデータパケットに含まれる次ノード番号に従って次のノード番号および対応の命令コードを、内部に含まれるプログラムメモリから読出して、ノード番号フィールド、次ノード番号フィールドおよび命令コードフィールドにそれぞれ格納して転送するプログラム記憶部9を含む。
合流/分岐部19は、プログラム記憶部9からパイプラインデータ転送路10を介して伝送されたパケットを受け、その行先情報(ノード番号およびプロセッサ番号)に従って、与えられたパケットを出力データ伝送路13または内部のパイプラインデータ伝送路12を介して転送する分岐部11と、分岐部11からのデータパケットと入力データ伝送路2から与えられるデータパケットを受け、順次、データ伝送路4を介して発火処理部5へ転送する合流部3を含む。
入力データ伝送路2および出力データ伝送路13は、図1に示す構成が用いられる場合、それぞれルータRTに接続される。
発火処理部5は、与えられたパケットにおいて、ノード番号および世代番号が一致する2つのデータパケットを検出し、これらのパケットが到着すると、パケットの発火条件が満たされたとして、対をなすパケットのうち一方のパケットのオペランドデータを他方のパケットのデータフィールドに追加し、一方のデータパケットを消去し、この新たに生成されたパケットを演算処理部7に転送する。この処理は、パケットの演算内容が2項演算命令のときであり、3項以上の演算命令の時には、その演算を実行するノードに対するパケットがすべて到着する時に発火条件が満たされたとして、新たな1つのパケット生成処理が実行される。また、この発火処理部5は、パケットPAが定数データとの演算の場合には、単に、内部に含まれる定数データメモリから対応の定数データを読出してデータフィールドDFに追加して新たな1つのパケットを生成して演算処理部7へ転送する。
データ駆動型演算処理プロセッサ1内においては、発火処理部5に含まれる待合せメモリ内にパケットを格納することができない場合、この待合せメモリに空きが生じるまで、非発火状態のパケットは、パイプラインデータ伝送路4、6、8、10および12の経路を周回される。
プログラム記憶部9は、演算処理部7からのパケットに従って新たなパケットを生成するとき、パケット伝送先が複数個存在する場合には、複数のパケットをコピー操作により生成して、分岐部11に転送する。このデータ駆動型演算処理プロセッサ1内においては、パケットは、ハンドシェイク態様に従って各データ伝送路を非同期に転送される。
図4は、このデータ駆動型演算処理プロセッサ1内のデータ伝送路のパイプライン構成の一例を示す図である。図4において、所定の処理を行なうロジック部16の入力側および出力側に、それぞれ、ラッチ回路15aおよび15bが配置される。これらのラッチ回路15aおよび15bにそれぞれ対応して転送制御回路17aおよび17bが配置される。転送制御回路17aおよび17bは、パイプラインステージの次段回路へ、データ転送を指示する送信指示信号SENDをデータ(パケット)転送時送出し、また、データ受入が可能なときに、データ転送許可信号ACKを、前段の転送制御回路へ転送する。
ロジック部16に対応して、遅延回路18が設けられる。この遅延回路18によりロジック回路16における処理時間によるデータ(パケット)転送の遅延を補償する。
ロジック部16は、図3に示すデータ駆動型演算処理プロセッサ1内において設けられ、転送されたパケットを受けてそれぞれ処理を実行する部分に対応し、具体的に、図3に示す合流部3、発火処理部5、演算処理部7、プログラム記憶部9、および分岐部11のいずれかである。
この図4に示すパイプライン構成の場合のパケット転送動作を図5を参照して説明する。図5においては、ラッチ回路15bの次段にラッチ回路15cが配置される構成を示す。有意のデータ(処理前のデータ)がラッチ回路15aおよび15cに存在する場合には、ラッチ回路15cおよび15aは、転送指示信号ACKをデアサート状態に維持し、データ(パケット)転送を禁止する。従って、この状態では、ラッチ回路15bからラッチ回路15cへのデータ(パケット)転送は待機状態にある。
一方、ラッチ回路15bにおいては、データ(パケット)を対応のロジック部に転送し、空状態となっているため、データ転送指示信号ACKをアサートしてデータ転送許可を前段のラッチ回路15aに与える。ラッチ回路15aは、このとき転送可能なデータが存在するため、この転送許可に従ってデータ(パケット)をロジック部16に転送し、同時に送信指示信号SENDをアサートする。
転送制御回路17bは、送信許可信号ACKをアサートした後、遅延回路18を介してアサート状態の送信指示信号SENDが与えられると、対応のラッチ回路15bにラッチ動作を行なわせ、ロジック部16から転送されたデータ(パケット)をラッチさせる。
これらのラッチ回路15aおよび15bは、内部にFIFO(ファーストイン・ファーストアウト)態様で配置されるラッチ回路を含み、このデータ駆動型演算処理プロセッサ1内において、パケットを所定の順序で転送することができる。
なお、このパケット転送制御として、ラッチ回路において転送可能なデータが存在するときに送信指示信号SENDを送信要求として出力し、次段のラッチ回路においてデータの受入が可能となると送信許可信号ACKをアサートし、このアサート状態の送信許可信号ACKに従って、送信指示信号SENDとともにデータ(パケット)の転送が行われる転送制御が用いられても良い。
このような、送信可能データが存在しまた送信データを受入可能となったことを確認して転送を行う「ハンドシェイク」型の転送制御は、クロック信号と非同期で転送タイミングが確立されており、非同期型または自己タイミング型転送制御と称され、以下においては、この転送制御に従ってデータ(パケット)の転送を行うパイプラインを自己タイミング同期型パイプラインと称す。
この自己タイミング同期型パイプライン機構の場合、パイプライン中の任意の場所で、データの流れが一時的に停止状態となったとしても、その停止位置よりも後段の(下流側)のラッチ回路に順次データ(パケット)が転送されパイプラインステージを満たす。従ってラッチ回路は、データパケットのいわゆる一種のバッファ機能を有している。
なお、この図4に示すデータ転送路のパイプライン構成は、自己タイミング型パイプライン制御機構を有する構成であればよく、図4に示す構成と異なる他の構成が用いられてもよい。FIFO態様で、自己タイミング同期型データ転送(ハンドシェイク型データ転送制御)が行なわれる構成であればよい。
図6は、データ駆動型演算処理プロセッサで実行されるプログラムとデータ駆動型演算処理プロセッサの基本構成(プロセッサエレメント)との関係を示す図である。図6においては、図3に示すデータ駆動型演算処理プロセッサ1の構成およびデータパケットの流れを示し、右側に、実行されるプログラムとして、減算のプログラム例を示す。この減算プログラムにおいては、ノード20において演算処理の内容、すなわち減算SUBを示すコードが記述される。このノード20に対し入力アーク21aおよび21bにより、演算処理データを示し、出力アーク22により、演算処理後のデータの出力経路を示す。これらのアーク21a、21b、および22により、データを格納するパケットが流れる経路を示す。複数のノードをアークで接続している集合は、フローグラフと呼ばれ、データ駆動型演算処理プロセッサのプログラムは、フローグラフの形で記述される。
図6においては、データパケット“3”および“2”が、それぞれ入力アーク21aおよび21bを介してノード20へ転送され、減算SUBがこれらのデータパケット内のデータ(3,2)に対して行なわれ、演算結果が、再びデータパケット“1”として、出力アーク22を介して転送される。
通常、データ駆動型演算処理プロセッサ1においては、入出力制御回路が設けられ、入力データをパケット化する機能が実装される。このパケット化においては、各パケットは、図2に示すように、パケットの識別子(世代番号)、演算内容(命令コード)、および次に実行する演算を決めるアドレス情報(次ノード番号)が、それぞれ対応のフィールドに格納される。この演算内容を示す命令コードは、図2に示すノード番号フィールドNF内に含まれるノード番号を参照して、プログラム記憶部9から読出されて追加される。このときには、データ駆動型演算処理プロセッサ1内においては、図2に示すプロセッサ番号フィールドPFは削除される。
この生成されたパケットは、FIFO構成のパイプラインデータ伝送路2を介して合流/分岐部19に取込まれる。この合流/分岐部19内の合流部3により、データ伝送路4を構成するFIFOパイプラインを介して生成されたパケットが発火制御部5に転送されて取込まれる。この発火制御部5においては、内部の図示しない待合せメモリ内に、この取込んだパケットを、最初の演算されるパケットとして格納する。
次いで、この発火制御部5は、最初のパケットに対する演算相手が、この発火制御部5に到着するまで、すなわち、この最初のパッケトの発火条件が満たされるまで、その演算を待合わせる。なお、図6に示す例においては、2項演算が示されるものの、3項以上の演算の場合でも、同様な待合せが行なわれる。定数との演算を行なう場合には、入力パケットは無条件で発火し、対応の定数が入力パケットに付加されて、新たなパケットとして転送される。
演算に必要なオペランドが、すべて発火制御部5に到着した時点で、各オペランドを含むパケットが、1つのパケットに結合される。すなわち図6に示すパケット“3”および“2”が1つのパケットにまとめられる。この新たに生成されるパケット内には、オペランドデータ(3、2)、パケットの識別子、演算内容、および次に実行する演算を決めるアドレス情報が、図2に示すように格納され、データ伝送路6に含まれるFIFOパイプラインを介して演算処理部7に転送される。
演算処理部7は、与えられたパケットの内容に従ってオペランドデータに対して減算SUBを実行し、その演算結果を再び元のパケット内に格納し、パケット“1”を生成してデータ伝送路8のFIFOのパイプラインを介してプログラム記憶部9に転送する。
プログラム記憶部9は、演算処理部7から与えられたパケットに含まれる次演算ノード番号(アドレス情報)に従って内部に含まれるプログラムメモリをアクセスし、次に実行すべき演算内容を示す命令コードおよび次にこのデータパケットが転送されるノードを示す次のノード番号を図2に示すフィールドOFおよびNFに格納して、データ伝送路10のFIFOのパイプラインを介して合流/分岐部19へ転送する。
合流/分岐部19においては、図3に示す分岐部11が、与えられたパケットの行先情報に基づいて、出力データ伝送路13またはデータ伝送路12のいずれかへパケットを転送する。
1つのノード20に対して入力アーク21aおよび21bを介してパケットが転送される場合、発火制御部5においては、時系列的にパイプラインを介してパケットが転送される。したがって、データ駆動型演算処理プロセッサ単体(またはプロセッサエレメント)で実行されるフローグラフに対して、発火制御部5に入力されるパケットの転送速度(フローレートR(fc))は、次式から算出することができる。
Figure 2005259030
ここで、上式(1)において、jは、データ駆動型演算処理プロセッサ(またはプロセッサエレメント)で実行されるフローグラフの入力アークを示し、m個の入力アークが存在することを表わす。r(j)は、入力アークjに対する入力パケットレート(パケットの転送速度)を示す。
同様に、プログラム記憶部9から出力されるパケットのフローレートR(ps)は、次式から算出することができる。
Figure 2005259030
ここで、上式(2)において、kは、データ駆動型演算処理プロセッサ(プロセッサエレメント)で実行されるフローグラフの出力アークを示し、n個の出力アークが存在することを表わす。r(k)は、出力アークkに対する出力パケットレートを示す。すべてのアークについて、一定のレートrでパケットが流れると仮定すれば、1つのプロセッサエレメントにおいて隘路となるフローレートFR(critical)は、次式に基づいて算出することができる。
FR(critical)=r・Max(m,n) …(3)
上式(3)において、演算Max(m,n)は、mおよびnのうち大きいほうを選択する処理を示す。
上式(3)において、FR(critical)は、データ駆動型演算処理プロセッサの基本構成(図3に示すデータ駆動型演算処理プロセッサであり、図1に示すプロセッサエレメント)におけるパケットレート(パケットの入力レート)を示す。rは、フローグラフに対する入力パケットの転送レートを示し、具体的に、フローグラフ上の各入力アークおよび
出力アーク上に流れるパケットの転送レートを示す。mおよびnは、プロセッサエレメントで実行されるフローグラフに含まれる入力アーク数および出力アーク数をそれぞれ示す。入力アークおよび出力アークは、図3に示す入力伝送路2および出力伝送路13に対応する。図2に示すようにフローグラフが1つのノード20で構成される場合、入力アーク21aおよび21bであるため、mは、2に等しく、また出力アーク22は1つであり、n=1となる。
入力パケットレートrに対して、上式(3)の計算結果により得られたフローレートの臨界値FR(critical)の値が、非同期パイプライン転送制御を行なうプロセッサエレメントまたは単位データ駆動型演算処理プロセッサの上限レートを超えると、パケットは、パイプライン内で処理可能なレートよりも大きなレートで入力されるため、パイプラインがオーバーフローする。今、ここでは、パケットの入力レートをパイプラインの状況に応じてダイナミックに変更する動的な性能評価はここでは考えない。入力パケットのレートが一定である静的な性能の評価について考慮する。
たとえば、図1に示すデータ駆動型演算処理プロセッサDPの処理性能が100MHz、すなわち、パイプラインのパケット転送レートが100メガパケット/秒であるとする。また、このデータ駆動型演算処理プロセッサにおいて実行されるプログラムは、図6に示す2入力1出力のノードで表現されるフローグラフであると仮定する。この場合、フローグラフの入力アーク21aおよび21bに、それぞれ、70メガパケット/秒の一定のレートでパケットがデータ駆動型演算処理プロセッサ(プロセッサエレメント)に入力された場合、図6に示す合流/分岐部19においてはこれらのパケットが時系列的に転送されるため、合流/分岐部19から発火制御部5の間のデータ伝送路12におけるパケット転送レートが140メガパケット/秒となり、データ駆動型演算処理プロセッサ(プロセッサエレメント)の処理性能の上限レートを超え、パイプラインがオーバーフローする。このパイプラインのオーバーフローの有無を、本発明においては、アプリケーションプログラムの実行前に評価する。
図7は、この発明の実施の形態1に従う性能評価方法を示すフロー図である。以下、図7を参照して、図1に示す複数のプロセッサエレメントを含むデータ駆動型演算処理プロセッサにおいてフローグラフがこのデータ駆動型演算処理プロセッサDP内で実行可能かを評価する方法について説明する。
まず、評価対象のフローグラフプログラムを準備し、検証操作を開始する(ステップS0)。この検証操作は、コンピュータまたはワークステーション上等の処理装置を利用して、検証処理が実行されてもよく、また、作業者がフローグラフプログラムを目視により追跡して手作業で検証操作を行っても良い。
次いで、解析対象のフローグラフのすべてのノードが、同一のプロセッサエレメントで実行されるか否かを判断する(ステップS1)。同一のプロセッサエレメントで、すべてのノードが実行されない場合、解析対象のすべてのノードが、同一のプロセッサエレメントで実行されるように解析の対象を変更する(ステップS2)処理を実行するため、ステップS10において、処理を終了する。この場合、プロセッサ番号を参照して、各プロセッサエレメントごとにフローグラフが分解されて、再びステップS0からの処理が開始される。
ステップS1において、フローグラフのすべてのノードが、同一のプロセッサエレメントで実行されると判定された場合、このフローグラフの入力アークおよび出力アーク上に流れるパケットレートが、すべてのアークについて同じであるかを確認する(ステップS3)。入力アークおよび出力アークに流れるパケットのレートが異なる場合、各パケットレートについて、共通のパケットレートの入力アークの数と該共通のパケットレートとの乗算を行ない、同様、同じパケットレートと対応の出力アークの数との乗算を行ない、各パケットレートについて求められた結果を、それぞれ入力アークおよび出力アークについて加算する。これにより、上述の式(1)および(2)のフローレートR(fc)およびR(ps)が求められる(ステップS4)。
具体的に、フローレートが、r1、r2、r3、…と複数個存在し、レートr1でパケットが流れる入力アークの数がin1、出力アークの数がout1、レートr2でパケットが流れる入力アークの数がin2、出力アークの数がout2、…とすると、このステップS4の処理は、次式(4)および(5)で表わされる。
R(fc)=(r1・in1)+(r2・in2)+… …(4)
R(ps)=(r1・out1)+(r2・out2)+… …(5)
一方、ステップS3において、このフローグラフの入力アークおよび出力アークをパケットのフローレートが同じrの場合、入力アークおよび出力アークの数を数え、これらの入力アーク数および出力アーク数の大きいほうの数と一定のパケットレートrとを乗算し、パケットレートの最大値を算出する(ステップS5)。
これらのステップS4およびS5で求められた結果を、プロセッサエレメントのパイプライン転送レートと比較する。入力アークについてのパケットフローレートR(fc)および出力アークについてのパケットフローレートR(ps)のいずれかが、プロセッサエレメントのパイプライン転送レートの上限よりも大きい場合、プロセッサエレメントで処理不可能となる。したがって、このプロセッサエレメントのパイプライン転送レートの上限に収まるようにプロセッサエレメント内のパケットレートを低減するかまたは、実行するノードを低減する(ステップS7)。
入力アークおよび出力アークは、フローグラフにおける入力アークおよび出力アークであり、プロセッサエレメントにおける外部からの入力データパケットおよび外部への出力データパケットにそれぞれ対応する。この実行ノード数を低減することにより、フローグラフにおける入力アークまたは出力アークの数を低減し、プロセッサエレメントに入力されるパケットの内部のパイプラインでの転送レートを低減する。
一方、これらの入力アークおよび出力アークについての転送レート(フローレート)が、プロセッサエレメントのパイプライン転送レートよりも上回ることがない場合には、このプロセッサエレメントで実行可能な負荷であると判断する(ステップS8)。これらのステップS7およびS8により、フローグラフの実行可能/不可能を判断して終了し、ステップS10へ移り、性能評価の処理が終了する。
なお、上述の説明においては、出力アークおよび入力アークそれぞれについて、フローレートを算出し、これらも、プロセッサエレメントのパケット転送レートと比較している。しかしながら、この入力アークおよび出力アークのパケット転送速度(フローレート)の大きいほうを選択し、この大きいほうのフローレートを、プロセッサエレメントのパケット転送レートと比較してもよい。
なお、上述の説明においては、複数のプロセッサエレメントが含まれるデータ駆動型演算処理プロセッサ(またはプロセッサエレメント)についての性能評価を行なっている。しかしながら、図3に示すように、プロセッサエレメントが単体で利用される場合においても、この性能評価方法は適用可能である。単に、図7に示すフロー図においてステップS2の処理が存在しないだけである。プロセッサエレメント内においては、同じフローレートでパケットが転送されるため、フローグラフのノード間のアークについて考慮することは必要ではなく、このプロセッサエレメント(またはデータ駆動型演算処理プロセッサ)外部からの入力パケットおよび外部への出力パケットの対応するアークについてフローレートを計算する。
上述の説明においては、入力アークおよび出力アークとしては、入力伝送路および出力伝送路に対応するとして説明している。内部では、入力アークにおいて規定された転送レートでパケットが転送されるため、パイプラインのオーバフローが生じないと考えられるためである。しかしながら、フローグラフの各ノードについて入力および出力のアークのパケット転送レートが規定されているときには、各ノードについて上述の操作が実行されても良い。
図8は、このフローグラフプログラムの性能評価装置の機能的構成を概略的に示す図である。図8において、性能評価装置は、フローグラフプログラム情報を入力する入力手段30と、この入力手段30から入力されたプログラムからフローグラフを抽出するフローグラフ抽出手段31と、このフローグラフ抽出手段31により抽出されたフローグラフから入力アークを抽出する入力アーク抽出手段32と、フローグラフ抽出手段31により抽出されたフローグラフから出力アークを抽出する出力アーク抽出手段33と、入力アーク抽出手段32により抽出された入力アーク情報に基づいて入力フローレートを算出する入力フローレート算出手段34と、出力アーク抽出手段33により抽出された出力アーク情報に基づいて出力フローレートを算出する出力フローレート算出手段35と、入力手段30から入力されたプロセッサエレメントまたはデータ駆動型演算処理プロセッサの入力パケット転送レートを保持する入力パケットフローレート保持手段37と、入力フローレート算出手段34および出力フローレート算出手段35により算出されたフローレートをこの入力パケットフローレート保持手段37に保持されたフローレートと比較し、その比較結果に基づいて判定結果P/Fを出力する比較手段36を含む。
入力手段30は、ディスク駆動装置、キーボードおよびマウス等を含み、外部から必要な情報を入力する。
この図8に示す性能評価装置は、たとえばコンピュータなどの装置においてその機能が実現される。フローグラフ抽出手段31は、入力手段30から与えられるフローグラフプログラムから、そのノードの接続を追跡して、このプロセッサエレメントに対するフローグラフを抽出する。入力アーク抽出手段32は、このフローグラフのノード情報により、入力アークを抽出し、出力アーク抽出手段33は、このフローグラフのノード情報に基づいて出力アークを抽出する。これらの入力アークおよび出力アークには、それぞれ、予め、フローレート情報が付け加えられている。
入力フローレート算出手段34は、この入力アーク抽出手段32により抽出された入力アークおよび対応のパケットフローレートの乗算および乗算結果の加算の積和演算を行なって入力フローレートを算出する。同様、出力フローレート算出手段35も、この抽出された入力アークと各出力アークのフローレートの積和演算を行なって出力フローレートを算出する。これらの入力フローレート算出手段34および出力フローレート算出手段35においては、同一のフローレートのアークの数を算出し、このアークの数を対応のフローレートと乗算するとともに、異なるフローレートについての加算を実行する。
比較手段36は、この入力フローレート算出手段34および出力フローレート算出手段35により算出されたフローレートのうち大きいほうのフローレートを抽出し、その大きいフローレートを入力パケットフローレート保持手段37に保持されたフローレートと比較する。この比較結果に従って、判定結果P/Fを実行可能または実行不可能を指示する状態に設定する。この判定結果は、表示装置上に表示されても良く、また、プリンタなどによりプリントアウトされても良い。
この図8に示す性能評価装置を、フローグラフ抽出および性能評価のために利用することにより、正確に、性能評価を行なうことができる。
以上のように、この発明の実施の形態1に従えば、データ駆動型演算処理プロセッサ(またはプロセッサエレメント)において、フローグラフの入力アークおよび出力アークのパケットフローレートを算出し、そのフローレートをプロセッサエレメントまたはデータ駆動型演算処理プロセッサのパケット転送レートと比較し、その比較結果に基づいてフローグラフプログラムの実行可能/不可能を判定している。すべて、シミュレータを用いて転送レートを変更してプログラムを実行する必要がなく、簡易に、プログラムの性能評価を行なうことができる。
[実施の形態2]
この図8に示す性能評価処理を、パーソナルコンピュータまたはワークステーションなどのコンピュータ上で実行することにより、高精度でアプリケーションプログラムの静的性能評価処理を実行することができる。
図9は、この発明の実施の形態2に従うアプリケーションプログラムの静的性能評価装置が搭載されるコンピュータの構成を概略的に示す図である。図9において、コンピュータは、CRT(陰極線管)または液晶表示装置などで構成されるディスプレイ装置610と、このコンピュータを集中的に管理し制御するためのCPU(中央演算処理装置)622と、ROM(リード・オンリ・メモリ)またはRAM(ランダム・アクセス・メモリ)を含み、管理用データおよびブートストラップ用プログラム等を格納するとともに、作業領域を与えるメモリ624と、不揮発的に大容量のプログラム情報などを格納する固定ディスク装置626と、フレキシブルディスク(FD)632が着脱自在に装着されて、この装着されたFD632をアクセスするFD駆動装置630と、CD−ROM(コンパクト・ディスク・リード・オンリ・メモリ)642が着脱自在に装着されて、該装着されたCD−ROM642をアクセスするCD−ROM駆動装置640と、通信ネットワーク300と該コンピュータとを通信接続するための通信インターフェイス680と、必要な情報/データを入力する入力部700と、処理結果データとをプリントアウトするためのプリンタ690を含む。
入力部700は、その位置ディスプレイ装置610上で変更可能であり、クリック操作により情報を入力するマウス660と、キーの押下により情報を入力するキーボード650を含む。これらのコンピュータ内の各要素は、内部バス660により相互接続される。
また、このコンピュータにおいては、カセット形式の磁気テープが着脱自在に装着されて、この装着された磁気テープをアクセスする磁気テープ駆動装置が設けられていてもよい。
この実施の形態2においては、コンピュータ上に展開されるエディタツールを用いてフローグラフの詳細情報を取得することにより、評価精度を改善する。
図10は、フローグラフを記述するためのエディタツールを用いて記述されたフローグラフの一例を示す図である。図10において、データ駆動型演算処理プロセッサ(プロセッサエレメント)への入力は、入力ノード(input[0])50の記述により宣言される。この記述された入力ノード50からのアーク51に、データ駆動型演算処理プロセッサに入力されるパケットレートを指定する。アーク51以降の下流のアークに対しては、パケットレートは変更されずにパケットが流れるため、これらの下流のアークに対して流れるパケットレートを指定することは要求されない。
アーク51が、ノード55の左入力ポートに結合される。このノード55の右入力ポートには定数“0”が結合される。ノード55においては、この左入力ノードに与えられたデータが、右入力ノードのデータよりも小さい場合には、真(true)ノードへ左入力ノードのデータが出力される。偽(false)のときには、偽出力ノードへ左入力ノードのデータが出力される。ノード55の真ノードは、モジュール52に結合される。モジュール52においては、さらに処理が内部で実行される。このフローグラフにおいてモジュール52を利用することにより、データ格納(Store Data)処理を階層記述することができる。
モジュール52内においては、複数のノード、アークおよびさらにモジュールを記述することが可能であり、またモジュールを複数個ネストすることも可能である。たとえば音声信号処理を行なう応用プログラムにおいては、数千個のノードの規模のフローグラフを記述する場合がある。このような大規模のフローグラフを記述する場合モジュールを利用することにより、各処理単位でフローグラフを分割することが可能となり、大規模フローグラフを記述することができる。
図10においては、さらに、MainおよびInitで定義されるモジュールが用いられる。これらのモジュールにおいては、メイン処理および初期化処理をそれぞれ実行するプログラムが記述される。
なお、ノード55の偽ノードfalseに接続されるノードにおいて記述される演算“SWEQfs”は、左入力ノードおよび右入力ノードのデータの大小を比較し、その比較結果に従って真出力ノードおよび偽出力ノードのいずれかへ、左入力ノードのデータを出力する処理を示す。これにより、入力ノード50からのデータのうち、定数“0”および“0xffff”の間の入力データがMainで記述されるモジュール内で処理され、それ以外のデータの処理は、Initで記述される初期化処理で実行される。
このMainモジュールの出力が、出力ノード54に結合される。この出力ノード54は、データ駆動型演算処理プロセッサからの出力を意味する。この出力ノード54において出力“outp1,0”を記述することにより、出力ノードが宣言される。
この図10に示すフローグラフにおいては、入力ノードおよび出力ノードがそれぞれ1つであり、したがって入力アークおよび出力アークも1つである。したがってアーク51に規定されるデータパケットフローレートが指定されたとき、この入力アーク51のフローレートがデータ駆動型演算処理プロセッサのパケット入力レートを超えなければ、この図10に示すフローグラフは、データ駆動型演算処理プロセッサ(プロセッサエレメント)において実行可能である。
通常、フローグラフにおいては、入力ノードおよび出力ノードはそれぞれ、複数個設けられ、入力ノード50と出力ノード54の間に、演算ノードおよびモジュールがアークで接続される。
本実施の形態2においては、このエディタツールを利用してフローグラフを記述するとき、入力アーク51にパケットのフローレートを指定することにより、該アークに設定されたパケットの転送レートおよびデータ駆動型演算処理プロセッサ内のパケット転送レートの上限値に基づいて、プログラムの静的性能評価を実行する。すなわち、図10に示すようにエディタツールを用いて記述したフローグラフに、入力されるパケットのデータレートが設定される。このエディタツール上で性能評価機能を実行し、図11に示すフロー図に従って、性能評価処理が実行され、その性能評価結果が、ユーザにディスプレイ装置610またはプリンタ690を利用して表示される。以下、図11を参照して、この発明の実施の形態2における性能評価方法について説明する。
まず、エディタツールを用いてフローグラフを記述する(ステップS19)。このフローグラフを記述した後に、記述されたアプリケーションプログラムの性能評価をエディタツール上で実行する。したがってこのエディタツールは、フローグラフを記述する機能に加えて、記述されたフローグラフプログラムの性能を評価する機能を有する。
まず、記述されたフローグラフについて、すべてのノードが、アークで接続されているかおよびその他の構文(シンタックス)が正確に記載されているかを判定する(ステップS20)。ステップS20において、すべてのノードがアークで接続されており、またシンタックスも正確に記述されていると判定されていると、次いでフローグラフに入力されるパケットレートが設定されているかの判定が行なわれる(ステップS22)。これらのステップS20およびS22により、解析対象のフローグラフが解析可能であるかを検出する。
ステップS20において、フローグラフのノードの接続が不十分またはシンタックス不良などの不良が検出されると、さらに未接続ノードの存在などのエラーが存在することを表示して性能評価処理を完了する(ステップS21)。このステップS21においてエラー表示が行なわれた場合、未接続ノードの解析を実行する。また、ステップS22において入力アークに対して入力パケットレートが設定されていないと判定された場合には、入力パケットレートを入力アークに対して設定する必要がある旨を、ディスプレイ装置610上に表示して、この処理を終了する(ステップS23)。
したがって、性能解析のための情報が不足する場合には、ステップS21またはS23において、その不足情報の存在およびその不足情報の処理を任せて解析処理を終了する。
ステップS22において、フローグラフに対する入力パケットレートが設定されていると判定されると、このエディタツールにおいては、フローグラフの性能評価の解析が可能であると判定される。このとき、同一プロセッサエレメントごとに、実行されるノードの入力アークおよび出力アークを抽出して、これらの入力および出力アークの数を数える。これらの検出された入力アークおよび出力アークに流れるパケットに対して設定されたパケットレート情報を元に、入力アークに対する合計パケットレートおよび出力アークに対する合計パケットレートを計算する(ステップS24)。このステップS24における処理においては、先の実施の形態1における処理と同様の処理が行なわれる。この入力アークおよび出力アークの検出処理においては、宣言された入力ノードおよび宣言された出力ノードを検出するとともに、それに接続されるアークに対して記述されたフローレートを抽出することにより必要な情報の獲得が行なわれる。
次いで、入力アークおよび出力アークにおいて、各アークに流れるパケットレートを合計する(ステップS25)。このステップS25における入力アークに流れるパケットレートの合計および出力アークに流れるパケットレートの合計は、アークのパケットレートが異なる場合を想定する。入力アークおよび出力アークのパケットのフローレートがすべて同一の場合には、単に、ステップS24において算出された入力アークの数および出力アークの数の大きいほうの数と一定のフローレートとの乗算が行なわれる。
次いで、この算出された合計パケットレートが、予め設定されたプロセッサエレメントのパイプライン転送レートの上限以下であるかの判定が行なわれる(ステップS26)。この合計パケットレートが、プロセッサエレメントのパイプライン転送レートの上限を超える場合、パイプラインが、オーバーフローすることをユーザに知らせる(ステップS27)。この場合、図9に示すディスプレイ装置610を用いてダイヤログボックスの形で表示される。
一方、合計パケットレートが、プロセッサエレメントのパイプライン転送レートの上限を超えない場合には、その比較値を比例計算(割算)に基づいて算出し、上限値と合計パケットフローレートをまとめて、図9に示すディスプレイ装置610上に表示する。この比例計算によるパイプラインの転送レート上限値と合計パケットフローレートの比を算出して表示することにより、パケット転送レートを高くするまたは、ノード数の増加などの処理を、さらに、解析結果に基づいて行なうことができる。
この図11に示すフローは、図9に示すコンピュータに搭載されるエディタツールを、CPU622の制御の下に実行して性能評価機能が実現される。このエディタツールを用いて記述したフローグラフプログラムの性能評価を行なうことにより、入力ノードおよび出力ノードの抽出および入力アークおよび出力アークの抽出を確実に高精度で行なうことができる(エディタツールにおいて各入力ノードおよび出力ノードの宣言により、自由に抽出することができる)。これにより、非同期型パイプライン転送制御に基づくデータ駆動型演算処理プロセッサ(またはプロセッサエレメント)上で実行されるアプリケーションプログラムの静的性能評価を高精度でかつ短時間で行なうことができる。
[実施の形態3]
この非同期型パイプライン転送制御型プロセッサ上で実行されるアプリケーションプログラムの静的性能評価処理は、プログラムにより実現される。本実施の形態3においては、この性能評価プログラムは、コンピュータで読取可能な記録媒体に格納される。この記録媒体としては、コンピュータに内蔵され、コンピュータが処理を実行するために必要なメモリ624それ自体が、プログラムメディアであってもよい。また、このコンピュータの外部記憶装置に着脱自在に装着され、そこに記録されたプログラムが外部記憶装置を介して読取可能な記録媒体であってもよい。このような外部記憶装置としては、図9に示すFD駆動装置630およびCD−ROM駆動装置640、および磁気テープ装置(図示せず)などであり、記録媒体としては、FD(フレキシブルディスク)632、CD−ROM642、または磁気テープ(図示せず)である。
いずれの記録媒体が利用される場合においても、各記録媒体に記録されているプログラムは、図9に示すCPU622がアクセスして実行する構成であってもよい。または、これに代えて、性能評価プログラムが、対応の記録媒体から一旦読出され、所定のプログラム記憶エリア、たとえばメモリ624のプログラム記憶エリアにロードされ、CPU622により、この格納された性能処理プログラムが読出されて実行されてもよい。この場合、当然、性能評価プログラムをメモリ624の所定のプログラム領域にロードするためのプログラムは、コンピュータ内において、メモリ624または固定ディスク626の所定領域に格納されている。
この性能評価プログラムを記録する記録媒体は、コンピュータ本体と分離可能に構成される。このような記録媒体としては、固定的にプログラムを担持する媒体を利用することができる。具体的には、磁気テープまたはカセットテープなどのテープ、FD632および固定ディスク626などの磁気ディスク、CD−ROM642、MO(マグネティック・オプティカル・ディスク)、MD(ミニディスク)、DVD(デジタル・バーサタイル・ディスク)などの光ディスク系のディスク、メモリカード、またはICカードまたは光カードなどのカード、マスクROM、EPROM(書込消去可能なROM)、EEPROM(電気的に書込消去可能なROM)、またはフラッシュメモリなどの半導体メモリを利用することができる。したがって、この図12に示すように、記録媒体350としては、性能評価プログラム360が記録される記録媒体であれば、任意の種類の記録媒体を利用することができる。
また、図9に示すコンピュータにおいては、通信インターフェイス680を介してネットワーク300と接続される。したがって、この場合、ネットワーク300から、性能評価プログラムがダウンロードされ、そのダウンロードされたプログラムを担持する記録媒体であってもよい。通信ネットワーク300から性能評価プログラムがダウンロードされる場合には、ダウンロード用プログラムが、予めこのコンピュータ本体に搭載されていてもよく、または別の記録媒体からこの性能評価プログラムダウンロード前にインストールされてもよい。
この通信ネットワーク300を介して性能評価プログラムがダウンロードされる場合には、サーバなどのホストにおいて、性能評価プログラムが担持されている。なお、記録媒体に格納される内容としては、性能評価プログラムそのものでなく、マシン語へのコンパイル後のコードデータ等の、性能評価処理を行なうためのコードデータであってもよい。
また、図12に示す記録媒体350において、性能評価プログラム360は、エディターツールを実現するプログラムの一部の領域に保持されていてもよい。
以上のように、この発明の実施の形態3に従えば、性能評価処理プログラムを記録媒体に保持しており、容易にアプリケーションプログラムの性能評価を高精度で行なうことができる。
以上のように、この発明の実施の形態1から3に従えば、入力アークおよび出力アークのパケットのフローレートをフローグラフの解析により算出することにより、複数のプロセッサエレメントを含むデータ駆動型演算処理プロセッサの全体の構成の中で、いずれのプロセッサエレメントがパイプライン転送の隘路になるかを検出することが、フローグラフを実行する上で、入力可能な入力データのレートを算出することができる。
さらに、このアプリケーションプログラムの性能評価アルゴリズムおよび解析機能を実現するフローグラフ開発環境ツールを利用することにより、従来行なうことができなかったアプリケーションプログラムの実行前にその性能評価を容易に行なうことができ、応用フローグラフ開発期間を短縮することができる。
複数のプロセッサエレメントを含むデータ駆動型演算処理プロセッサの構成を概略的に示す図である。 プロセッサエレメントに供給されるパケットの構成の一例を示す図である。 図1に示すプロセッサエレメントを構成する単位データ駆動型演算処理プロセッサの構成を概略的に示す図である。 図3に示すプロセッサエレメント内のパイプラインデータ転送路の構成の一例を概略的に示す図である。 図4に示すパイプラインデータ転送路のデータパケット転送動作を示す図である。 データ駆動型演算処理プロセッサにおけるフローグラフとデータ駆動型演算処理プロセッサの基本構成との関係を概略的に示す図である。 この発明の実施の形態1に従うアプリケーションプログラム性能評価方法を示すフロー図である。 図7に示す処理フローを実現するハードウェア構成を機能的に示す図である。 この発明に従うアプリケーションプログラムの静的性能評価装置が搭載されるコンピュータの構成を概略的に示す図である。 この発明に従うアプリケーションプログラムをこの開発環境の機能として実現した場合のフローグラフの一例を示す図である。 この発明の実施の形態2に従うアプリケーションプログラムの性能評価方法を示すフロー図である。 この発明の実施の形態3に従う記録媒体の構成を概略的に示す図である。
符号の説明
DP データ駆動型演算処理プロセッサ、PE♯0−PE♯3 プロセッサエレメント、1 データ駆動型演算処理プロセッサ、2 入力データ伝送路、3 パケット合流部、5 発火処理部、7 演算処理部、9 プログラム記憶部、11 分岐部、4,6,8,10,12 データ伝送路、13 出力データ伝送路、15a,15b ラッチ回路、17a,17b 転送制御回路、21a,21b 入力アーク、22 出力アーク、30 入力手段、31 フローグラフ抽出手段、32 入力アーク抽出手段、33 出力アーク抽出手段、34 入力フローレート算出手段、35 出力フローレート算出手段、36 比較手段、37 入力パケットフローレート保持手段、610 ディスプレイ装置、622 CPU、624 メモリ、626 固定ディスク、630 FD駆動装置、640 CD−ROM駆動装置、632 FD、642 CD−ROM、680 通信インターフェイス、700 入力部。

Claims (5)

  1. 実行可能なパケットを検出して出力する発火制御部と、実行プログラムを格納するプログラム格納部とを含み、非同期パイプライン転送制御でパケットを転送するデータ駆動型処理装置の性能を評価するための装置であって、
    前記発火制御部の入力パケットフローレートと前記プログラム格納部の出力パケットフローレートのいずれか大きいほうのフローレートを前記データ駆動型処理装置の可能なパケット転送レートとを比較する手段と、
    前記比較手段による比較結果に基づいて、前記データ駆動型処理装置に対する入力データレートを評価する評価手段とを備える、性能評価装置。
  2. 非同期型パイプライン転送制御でパケットを転送するデータ駆動型処理装置で実行されるプログラムの入力アークおよび出力アークに接続するノードについて、パケット入力レートとパケット出力レートの少なくとも一方を前記データ駆動型処理装置の実行可能なパケット転送レートとを比較するステップと、
    前記比較ステップにおける比較結果に基づいて前記データ駆動型処理装置に対する入力データレートを評価するステップとを備える、性能評価方法。
  3. プログラム開発ツールを用いてフローグラフの形態での前記プログラムの開発時に、該フローグラフプログラムに記述された入出力アークについて前記比較ステップを実行する、請求項2記載の性能評価方法。
  4. 請求項2に記載される性能評価方法をコンピュータに実行させるためのプログラム。
  5. 請求項4に記載されるプログラムを記録したコンピュータ読取可能記録媒体。
JP2004072870A 2004-03-15 2004-03-15 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体 Pending JP2005259030A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004072870A JP2005259030A (ja) 2004-03-15 2004-03-15 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体
US11/078,422 US7493469B2 (en) 2004-03-15 2005-03-14 Performance evaluation apparatus, performance evaluation method, program and computer readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004072870A JP2005259030A (ja) 2004-03-15 2004-03-15 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体

Publications (1)

Publication Number Publication Date
JP2005259030A true JP2005259030A (ja) 2005-09-22

Family

ID=34918634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004072870A Pending JP2005259030A (ja) 2004-03-15 2004-03-15 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体

Country Status (2)

Country Link
US (1) US7493469B2 (ja)
JP (1) JP2005259030A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245471A (ja) * 2008-03-28 2009-10-22 Sony Corp 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム
JP2011509458A (ja) * 2008-01-08 2011-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス指向アーキテクチャ(soa)対応のアプリケーションを検証するための方法、データ処理システム及びコンピュータ・プログラム
WO2011067896A1 (en) * 2009-12-02 2011-06-09 Mush-A Co., Ltd. Data processing apparatus, data processing system, packet, recording medium, storage device, and data processing method
JP2011138479A (ja) * 2009-12-02 2011-07-14 Mush-A Co Ltd データ処理装置、データ処理システム、パケット、記録媒体、記憶装置およびデータ処理方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005259030A (ja) * 2004-03-15 2005-09-22 Sharp Corp 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体
US20060020852A1 (en) * 2004-03-30 2006-01-26 Bernick David L Method and system of servicing asynchronous interrupts in multiple processors executing a user program
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
ES2367138T3 (es) * 2005-10-31 2011-10-28 Sharp Kabushiki Kaisha Transmisor inalámbrico.
JP2012103772A (ja) * 2010-11-08 2012-05-31 Renesas Electronics Corp プロセッサおよびそれを用いた画像処理システム
TW201346749A (zh) * 2012-02-08 2013-11-16 Mush A Co Ltd 資料處理裝置、資料處理系統、資料結構、記錄媒體、記憶裝置及資料處理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
JPH02275595A (ja) 1989-04-17 1990-11-09 Mitsubishi Electric Corp データ駆動形計算機
US5369775A (en) * 1988-12-20 1994-11-29 Mitsubishi Denki Kabushiki Kaisha Data-flow processing system having an input packet limiting section for preventing packet input based upon a threshold value indicative of an optimum pipeline processing capacity
US5327569A (en) * 1989-08-28 1994-07-05 Mitsubishi Denki Kabushiki Kaisha Data driven type processor including a generation management system
US5404553A (en) * 1991-01-09 1995-04-04 Mitsubishi Denki Kabushiki Kaisha Microprocessor and data flow microprocessor having vector operation function
JPH05217007A (ja) * 1992-02-04 1993-08-27 Sharp Corp データフロープログラムの実行制御方法
US5577256A (en) * 1992-04-28 1996-11-19 Sharp Kabushiki Kaisha Data driven type information processor including a combined program memory and memory for queuing operand data
US5586281A (en) * 1992-10-27 1996-12-17 Sharp Kabushiki Kaisha Data driven type information processing apparatus
JP2000013713A (ja) * 1998-06-19 2000-01-14 Sharp Corp 映像信号処理装置およびそれを用いたテレビジョン受信装置
JP3907385B2 (ja) * 2000-05-22 2007-04-18 シャープ株式会社 データ駆動型情報処理装置およびその実行制御方法
JP3912958B2 (ja) * 2000-06-14 2007-05-09 シャープ株式会社 データ駆動型処理装置およびデータ駆動型処理装置におけるデータ処理方法
JP4149360B2 (ja) * 2003-11-10 2008-09-10 シャープ株式会社 データ駆動型情報処理装置およびデータフロープログラムの実行制御方法
JP2005259030A (ja) * 2004-03-15 2005-09-22 Sharp Corp 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011509458A (ja) * 2008-01-08 2011-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス指向アーキテクチャ(soa)対応のアプリケーションを検証するための方法、データ処理システム及びコンピュータ・プログラム
JP2009245471A (ja) * 2008-03-28 2009-10-22 Sony Corp 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム
WO2011067896A1 (en) * 2009-12-02 2011-06-09 Mush-A Co., Ltd. Data processing apparatus, data processing system, packet, recording medium, storage device, and data processing method
JP2011138479A (ja) * 2009-12-02 2011-07-14 Mush-A Co Ltd データ処理装置、データ処理システム、パケット、記録媒体、記憶装置およびデータ処理方法
US8817793B2 (en) 2009-12-02 2014-08-26 Mush-A Co., Ltd. Data processing apparatus, data processing system, and data processing method
KR101450675B1 (ko) 2009-12-02 2014-10-14 가부시키가이샤 무쉬-에이 데이터 처리 장치, 데이터 처리 시스템, 패킷, 기록 매체, 기억 장치, 및 데이터 처리 방법
US9535671B2 (en) 2009-12-02 2017-01-03 Mush-A Co., Ltd. Parallel data processing apparatus and method
US10025594B2 (en) 2009-12-02 2018-07-17 Mush-A Co., Ltd. Parallel data processing apparatus, system, and method

Also Published As

Publication number Publication date
US7493469B2 (en) 2009-02-17
US20050201288A1 (en) 2005-09-15

Similar Documents

Publication Publication Date Title
US7493469B2 (en) Performance evaluation apparatus, performance evaluation method, program and computer readable recording medium
US11669418B1 (en) Simultaneous multi-processor apparatus applicable to achieving exascale performance for algorithms and program systems
US9912610B2 (en) Data-plane stateful processing units in packet processing pipelines
EP2128769B1 (en) Method, apparatus, and system for automatic test generation from statecharts
US20160070844A1 (en) Selectively reducing graph based analysis pessimism
US8578311B1 (en) Method and system for optimal diameter bounding of designs with complex feed-forward components
US10740520B2 (en) Pessimism in static timing analysis
US20230252212A1 (en) Testbench for sub-design verification
Bravetti et al. A formal approach to microservice architecture deployment
US7203631B2 (en) System and method to analyze VLSI designs
KR20100019332A (ko) 온더플라이 칩 검증을 위한 방법 및 시스템
JP3759860B2 (ja) 自己同期型のパイプライン制御を採用したデータ駆動型情報処理装置の設計方法
CN113781354A (zh) 图像噪点抑制方法、装置、计算设备及存储介质
Bhattacharyya et al. Optimizing synchronization in multiprocessor DSP systems
Nam et al. Asiist: Application specific i/o integration support tool for real-time bus architecture designs
Wolf et al. Execution cost interval refinement in static software analysis
Lustig et al. Synthesis from recursive-components libraries
US9769025B2 (en) Predicting the performance of a multi-stage communications network under load from multiple communicating servers
Tripakis et al. Tokens vs. signals: On conformance between formal models of dataflow and hardware
US10565346B1 (en) Placement, routing, and deadlock removal for network-on-chip using integer linear programming
US8756543B2 (en) Verifying data intensive state transition machines related application
Nejad et al. Mapping kpn models of streaming applications on a network-on-chip platform
US20240046015A1 (en) Latency balancing of paths in multi-processor computing architecture designs for deadlock avoidance
US8082527B1 (en) Representing the behaviors of a packet processor
US11314512B2 (en) Efficient checking of a condition code anticipator for a floating point processor and/or unit

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090616