(57)【要約】【課題】  データフロープログラムの実行途中の内容を容易に取得できる。【解決手段】  データ駆動型情報処理装置ＰＥは、データパケットの内容を操作する演算部１２と、演算部１２により用いられるデータフロープログラムを記憶するプログラム記憶部１０４と、データパケットを装置内部でフローさせるか外部に出力するかを制御する分岐部１０５を備える。データフロープログラム実行中のデータ駆動型情報処理装置において実行途中の演算結果を格納したデータパケットを、演算結果を保持したままで装置外部に分岐部１０５を介して出力する命令コードをデータフロープログラム中の所望箇所に記載し、また該命令コードを実行する演算機能を演算部１２に備える。【選択図】        図１
2005141681.tif 000002
【特許請求の範囲】
【請求項１】
命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置であって、
前記データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶した前記データフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
前記データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそそまま出力する発火制御部と、
前記発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットを前記プログラム記憶部に出力する演算部と、
前記プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットを前記データ駆動型情報処理装置の外部または前記発火制御部に出力する入出力部とを備え、
前記データパケットは制御情報をさらに格納し、
前記データフロープログラムには、データパケットの内容を保持して前記データ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
前記演算部は、前記入力データパケットの前記パケット出力指令を示す前記命令情報についての前記演算処理として、該入力データパケットの前記制御情報を転送指示を示すように設定するパケット出力指令処理部を有し、
前記入出力部は前記入力データパケットの前記制御情報が転送指示を示すとき、該入力データパケットを前記外部に出力することを特徴とする、データ駆動型情報処理装置。
【請求項２】
前記プログラム記憶部は、１回の前記アドレス指定により、前記パケット出力指令を示す命令情報を含む複数の前記次位の命令情報と複数の前記次位の行先情報を読出し、読出した前記複数の次位の命令情報それぞれと読出した前記複数の次位の行先情報それぞれを、前記命令フィールドおよび前記行先フィールドにそれぞれ格納した複数の前記入力データパケットを出力し、
前記読出された複数の命令情報には前記パケット出力指令を示す命令情報が含まれることを特徴とする、請求項１に記載のデータ駆動型情報処理装置。
【請求項３】
前記パケット出力指令は複数種類に分類されて、
前記制御情報は該データパケットの前記パケット出力指令の種類を識別するための識別データを含み、
前記パケット出力指令処理部は、
前記入力データパケットの命令情報の前記解読結果が示す前記パケット出力指令の種類に従い、該入力データパケットの前記識別データを設定する、請求項１または２に記載のデータ駆動型情報処理装置。
【請求項４】
前記出力先となる外部は、与えられる前記データパケットを入力して記憶する読取り可能な記憶装置であることを特徴とする、請求項１から３のいずれか１項に記載のデータ駆動型情報処理装置。
【請求項５】
前記出力先となる外部は前記複数種類のパケット出力指令のそれぞれの種類に対応した複数の読取り可能な記憶装置であることを特徴とする、請求項３に記載のデータ駆動型情報処理装置。
【請求項６】
命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置における前記データフロープログラムの実行制御方法であって、
前記データ駆動型情報処理装置は、
前記データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶した前記データフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
前記データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそそまま出力する発火制御部と、
前記発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットを前記プログラム記憶部に出力する演算部と、
前記プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットを前記データ駆動型情報処理装置の外部または前記発火制御部に出力する入出力部とを備え
前記データパケットは制御情報をさらに格納し、
前記データフロープログラムには、データパケットの内容を保持して前記データ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
前記データフロープログラムの実行制御方法は、
前記演算部において前記入力データパケットの命令情報の前記解読結果が前記パケット出力指令を示すときは、前記演算処理として該入力データパケットの前記制御情報を転送指示を示すように設定するパケット出力指令処理ステップと、
前記入出力部において前記入力データパケットの前記制御情報が転送指示を示すとき、該入力データパケットを前記外部に出力するステップとを備える、データフロープログラムの実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ駆動型情報処理装置およびデータフロープログラムの実行制御方法に関し、特に、演算中の状態を保持したままのデータパケットを外部に出力するための機能を有するデータ駆動型情報処理装置およびデータフロープログラムの実行制御方法に関する。
【背景技術】
【０００２】
近年、画像を含むマルチメディアデータ処理では多量のデータを高速に処理することが要求されている。特に画像のデータ処理では高速に多量の演算を実行することが要求される。このような要求に応えるためにデータ駆動型情報処理装置が提案されている。データ駆動型情報処理装置では、ある処理に必要なデータがすべて揃いかつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれるという規則に従って処理が進行する。データ駆動型の情報処理動作に従うデータ処理装置には、非同期のハンドシェイク方式を採用したデータ伝送装置が用いられる。このようなデータ伝送装置では、複数のデータ伝送路が順次に接続され、それらのデータ伝送路がデータの転送要求信号（以下、ＳＥＮＤ信号と称する）およびデータの転送を許可するか否かを示す転送許可信号（以下、ＡＣＫ信号と称する）を互いに送受信しながら、自律的なデータ転送が行なわれる。
【０００３】
図７には従来のデータ駆動型情報処理装置のブロック構成が示される。図７において、データ駆動型情報処理装置Ｐｅは、合流部（ＪＮＣ）１０９、発火制御部（ＦＣ）１０６、演算部（ＦＰ）１０２、データフロープログラムを記憶するプログラム記憶部（ＰＳ）１０４、分岐部（ＢＲＮ）１０５、これら各部間のデータ転送のための複数個のパイプラインレジスタ４ａ〜４ｃおよびパイプラインレジスタ４ａ〜４ｃのそれぞれに対応して設けられたＣ素子２ａ〜２ｃを備える。データパケットはデータ駆動型情報処理装置Ｐｅの図面左側から入力して右側に出力される。
【０００４】
Ｃ素子２ａ〜２ｃそれぞれは、前段（該Ｃ素子よりも図面の左側）Ｃ素子と後段（該Ｃ素子よりも図面の右側）Ｃ素子とのパケット転送パルス（信号ＣＩ，ＣＯ，ＲＩおよびＲＯ）のやり取りによって、対応するパイプラインレジスタにデータをラッチさせるためのクロックパルスＣＰを出力する。パイプラインレジスタ４ａ〜４ｃそれぞれは対応のＣ素子からのクロックパルスＣＰの入力に応じて、前段の処理部（ＦＣ，ＦＰ，ＰＳなど）より与えられるデータを取込んで保持し、出力段に導出し、かつ次のクロックパルスＣＰの入力までこのデータを保持する。これにより、処理部（ＦＣ，ＦＰ，ＰＳ）についてのデータ転送が制御される。
【０００５】
図８には、従来および本発明に適用されるデータ駆動型情報処理装置をフローするデータパケットの構成が示される。図８のデータパケット１１０は、命令コード１１１を格納するためのフィールドＦ１、行先情報１１２を格納するためのフィールドＦ２、ＨＳＴフラグ（ホスト転送フラグ）１１３を格納するためのフィールドＦ３、ＣＴＬフラグ１１４を格納するためのフィールドＦ４およびオペランドデータなどのデータ１１５を格納するためのフィールドＦ５を含む。
【０００６】
命令コード１１１は、演算部１０２でデコードされる。デコード結果は演算部１０２における演算内容を指示する。行先情報１１２は、データパケット１１０の行先を区別するための情報である。ＨＳＴフラグ１１３は０または１の値をとる。分岐部１０５はデータパケット１１０を入力するとＨＳＴフラグ１１３を参照する。参照結果、ＨＳＴフラグ１１３が０である場合にはデータパケット１１０を行先情報１１２に従って合流部１０１またはデータ駆動型情報処理装置Ｐｅの外部に出力し、１である場合にはデータパケット１１０を無条件に外部に出力する。ＣＴＬフラグ１１４は、従来は外部からプログラム記憶部１０４へのデータフロープログラムの転送時、またはプログラム記憶部１０４からデータ駆動型情報処理装置の外部にデータフロープログラムを読出すときなどの特殊モードで使用されるけれども、通常のプログラム実行動作時には参照されることはない未使用の情報であり、‘０’と設定される。ＣＴＬフラグ１１４は本発明の場合には、命令を区別するために利用されるが、詳細は後述する。
【０００７】
図７のデータ駆動型情報処理装置Ｐｅにデータパケット１１０が入力されると、入力データパケット１１０はまず合流部１０１を通り、発火制御部１０６に与えられる。発火制御部１０６は入力データパケット１１０の行先情報１１２に基づいて、行先情報１１２が一致する異なる２つのデータパケット１１０が入力したことを検出すると、検出された一方のデータパケット１１０のデータ１１５を他方のデータパケット１１０のフィールドＦ５に追加して格納して、この他方のデータパケット１１０を演算部１０２に出力する。対データの検出のためにデータパケットの待合わせをする。入力データパケットの命令コード１１１が２項演算命令などの２つのオペランドデータを必要とする命令コードであると判定したときは待合わせをするが、そうでない命令コードであると判定したときは該入力データパケットはそそまま出力される。
【０００８】
演算部１０２は与えられるデータパケット１１０を入力し、その入力データパケット１１０の命令コード１１１に基づいて該入力データパケット１１０の内容に対して所定の演算を行ない、演算結果を該入力データパケット１１０のフィールドＦ５にデータ１１５として格納し、該入力データパケット１１０をプログラム記憶部１０４に出力する。
【０００９】
プログラム記憶部１０４は与えられるデータパケット１１０を入力すると、入力データパケット１１０の行先情報１１２に基づいて、プログラム記憶部１０４に予め記憶されているデータフロープログラムから次位の行先情報１１２と次位の命令コード１１１を読出して、読出された行先情報１１２および命令コード１１１を該入力データパケット１１０のフィールドＦ２およびＦ１にそれぞれ格納して、該入力データパケット１１０を分岐部１０５に出力する。
【００１０】
分岐部１０５はデータパケットを入力すると、該入力データパケット１１０を、その行先情報１１２に基づいて装置の外部に出力するか、または再度、装置内部で処理するために合流部１０１へ出力する。
【００１１】
図９には、図７のデータ駆動型情報処理装置Ｐｅにおけるデータ伝送路の構成が示される。データ伝送路は、Ｃ素子（自己同期型の転送制御回路）３ａおよびパイプラインレジスタ（Ｄタイプフリップフロップからなるデータ保持回路）３ｂを含む。Ｃ素子３ａは図７のＣ素子２ａ〜２ｃのそれぞれに対応し、パイプラインレジスタ３ｂは図７のパイプラインレジスタ４ａ〜４ｃのそれぞれに対応する。Ｃ素子３ａはパルスを受けるパルス入力端子ＣＩ、転送の許可または転送の禁止を示す転送許可信号を出力する転送許可出力端子ＲＯ、パルスを出力するパルス出力端子ＣＯ、転送の許可または転送の禁止を示す転送許可信号を受ける転送許可入力端子ＲＩ、およびパイプラインレジスタ３ｂのデータ保持動作を制御するクロックパルスを与えるためのパルス出力端子ＣＰを有する。
【００１２】
図１０（Ａ）から（Ｅ）には図９に示したＣ素子の動作を説明するためのタイミングチャートが示される。Ｃ素子３ａは端子ＣＩから図１０（Ａ）に示すパルス信号を受取ると、端子ＲＩに図１０（Ｅ）に示すような入力の転送許可信号が許可状態であれば、端子ＣＯから図１０（Ｄ）に示すパルスを出力するとともに、端子ＣＰからパイプラインレジスタ３ｂに図１０（Ｃ）に示すパルスを出力する。パイプラインレジスタ３ｂは与えられるデータパケットをＣ素子３ａから与えられるパルスに応答して入力して保持し、その保持したデータパケットを出力する。
【００１３】
図１１には図９に示したデータ伝送路を所定のロジック回路を介してシーケンスに接続した例が示される。図７のデータ駆動型情報処理装置Ｐｅには図１１に示したデータ転送路が含まれる。図１１において、入力されるデータパケットは、パイプラインレジスタ４ａ→４ｂ→４ｃと順に転送されていく間に、ロジック回路６ａおよび６ｂでシーケンスに処理される。たとえばパイプラインレジスタ４ａがデータパケットを保持した状態である場合、後段のパイプラインレジスタ４ｂがデータパケット保持状態にあれば、パイプラインレジスタ４ａからパイプラインレジスタ４ｂにデータパケットは送られない。
【００１４】
また、後段のパイプラインレジスタ４ｂがデータパケットを保持していない状態であれば、またはデータパケットを保持していない状態になれば、少なくとも予め設定された遅延時間をかけて、データパケットはパイプラインレジスタ４ａからロジック回路６ａに与えられてロジック回路６ａで処理されてパイプラインレジスタ４ｂに与えられる。このように接続された隣のパイプラインレジスタとの間でＣＩ端子とＣＯ端子を介して入出力されるＳＥＮＤ信号およびＲＩ端子とＲＯ端子で入出力されるＡＣＫ信号に従って、非同期に、かつ少なくとも予め設定された遅延時間をかけてデータ伝送を行なう。このような制御は自己同期型転送制御と称されて、自己同期型転送制御を実施するための回路を自己同期型転送制御回路と呼ぶ。
【００１５】
図１２には図９に示したＣ素子の具体的な回路が示される。この回路はたとえば特許文献１に開示される。図１２において、パルス入力端子ＣＩは前段（図面の左側）からのパルス信号であるＳＥＮＤ信号（転送要求信号）を受けると、転送許可出力端子ＲＯは前段にＡＣＫ信号（転送許可信号）を出力する。パルス出力端子ＣＯは後段（図面の右側）にパルス信号であるＳＥＮＤ信号を出力し、転送許可入力端子ＲＩは後段からＡＣＫ信号を受ける。
【００１６】
マスタリセット入力端子ＭＲはパルス信号であるマスタリセット信号を受ける。マスタリセット入力端子ＭＲに「Ｈ」レベルのマスタリセット信号が与えられると、該マスタリセット信号はインバータ５ｆで反転されたのちに、フリップフロップ５ａと５ｂに与えられるので、フリップフロップ５ａと５ｂはリセットされて、その結果、該Ｃ素子３ａが初期化される。このとき、パルス出力端子ＣＯおよび転送許可出力端子ＲＯはともに初期状態として「Ｈ」レベルの信号を出力する。転送許可出力端子ＲＯの出力信号が「Ｈ」レベルであることは転送許可状態を示し、逆に「Ｌ」レベルであることは転送禁止状態を示している。また、パルス出力端子ＣＯの出力が「Ｈ」レベルであることは、後段にデータ転送を要求していない状態を示し、逆に「Ｌ」レベルであることは後段にデータ転送を要求しているまたはデータを転送している状態を示している。
【００１７】
パルス入力端子ＣＩに「Ｌ」レベルの信号が入力されると、すなわち前段からデータ転送が要求されるとフリップフロップ５ａはセットされるので、その出力Ｑに「Ｈ」レベルの信号を出力する。この「Ｈ」レベル信号はインバータ５ｇで反転されるので、転送許可入力端子ＲＯから「Ｌ」レベル信号が前段に出力され、前段に対してさらなるデータ転送を禁止する。一定時間後、パルス入力端子ＣＩに「Ｈ」レベルの信号が入力され、前段から当該Ｃ素子３ａへのデータのセットが終了する。この状態でかつ転送許可入力端子ＲＩに後段から「Ｈ」レベル信号が入力されている、すなわち後段に対するデータ転送を許可されている状態で、かつパルス出力端子ＣＯが「Ｈ」レベル信号を出力している、すなわち後段へデータ転送している途中でない状態（データ転送を後段に要求していない状態）であれば、ＮＡＮＤゲート５ｃはアクティブ状態となり、「Ｌ」レベル信号を出力する。
【００１８】
その結果、フリップフロップ５ａと５ｂはともにリセットされるので、フリップフロップ５ｂは遅延素子５ｅを介して「Ｈ」レベル信号をパルス出力端子ＣＰからパイプラインレジスタ３ｂへ出力する。この出力とともに、遅延素子５ｄを介して後段のＣ素子へ「Ｌ」レベルのＳＥＮＤ信号をパルス出力端子ＣＯから出力する、すなわち後段へデータ転送を要求する。「Ｌ」レベルのＳＥＮＤ信号を受けた後段のＣ素子は、そのＣ素子に対してさらなるデータ転送が行なわれないように転送禁止を示すＡＣＫ信号を「Ｌ」レベルにしてＲＯ端子から出力する。Ｃ素子３ａは転送許可入力端子ＲＩから「Ｌ」レベルのＡＣＫ信号を入力すると、該入力信号によりフリップフロップ５ｂがセットされる。その結果、「Ｌ」レベル信号が遅延素子５ｅを介してパルス出力端子ＣＰからパイプラインレジスタ３ｂへ出力され、また遅延素子５ｄを介して「Ｈ」レベルのＳＥＮＤ信号がパルス出力端子ＣＯから後段へ出力され、その結果、データ転送は終了する。
【００１９】
ところで、データ駆動型情報処理装置Ｐｅを使用したシステムのために、実際のデータ駆動型情報処理装置を用いてプログラムをデバッグする（以下、実機デバッグと称す）場合には、プログラム中の指定部分を通過（フロー）するデータパケットを監視する、または演算中の状態を保持したままのデータパケットの内容をダンプすることは有効である。しかし、従来のデータ駆動型情報処理装置ではデータパケットのダンプが簡単ではなかった。
【００２０】
たとえば、実機デバッグの対象として図１３（Ａ）のようなデータフローグラフで示されるプログラムを想定する。このデータフローグラフは、データパケットを入力するための入力ノード２０１および２０２、演算のためのノード２０３および２０４、ならびにデータパケットを出力するための出力ノード２０５を有する。各ノード間を接続するラインはデータパケットがフローする経路を示す。ノード２０３にはデータ駆動型情報処理装置Ｐｅの演算部１０２で実行される乗算のための命令コード‘ｍｕｌ’が割当てられ、ノード２０４にはサブプログラムを表すモジュール‘ｍｏｄｌ’が割当てられる。
【００２１】
図１３（Ａ）のモジュールノード２０４に割当てられたサブプログラムをデータフローグラフに展開したものが図１３（Ｂ）に示される。該データフローグラフは、形式的入力ノード２０６および２０７、命令コード‘ｍｕｌ’が割当てられたノード２０８、加算のための命令コード‘ａｄｄ’が割当てられたノード２０９、定数（‘３’）が割当てられたノード２１０、および形式的出力ノード２１１を有する。
【００２２】
ここで、図１３（Ａ）と（Ｂ）のプログラムを実機デバッグするために、サブプログラムの矢印２１２で示す箇所を通過するデータパケットのダンプ結果を取得することにより、動作を解析したいといった要求があったと想定する。
【００２３】
たとえば特許文献２に開示のデータ駆動型情報処理装置では、実機デバッグのためにデータパケットをダンプするには、プログラム中の指定の箇所から外部にデータを出力しているが、そのために、プログラムの該指定箇所にデータを出力するための経路を特別に作成する必要があった。
【００２４】
また、たとえば特許文献３に開示の装置では、データパケットをダンプするけれども、ダンプ対象のデータパケットは限定されている。つまり、データ駆動型情報処理装置のハードウェア構成に着目し、ハードウェアの特定箇所（ホスト転送フラグ操作回路がパイプラインレジスタに入力される箇所）に到達したデータパケットをダンプするものである。
【特許文献１】特開平６−８３７３１号公報
【特許文献２】特開平９−１１４６６４号公報
【特許文献３】特開２００１−３０６５４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
特許文献２に開示のダンプ方法では、ダンプ結果を取得したいプログラムの部分に変更を加えるだけでなく、プログラムの他の部分にも変更を加える必要があった。これを図１４（Ａ）と（Ｂ）を用いて説明する。
【００２６】
図１４（Ｂ）のデータフローグラフは図１３（Ｂ）のデータフローグラフの矢印２１２の箇所を通過するデータパケットをダンプするための経路３１２を特別に設けている。経路３１２はノード３０８から出力されたデータパケットを新たに設けられた形式的出力ノード３１３に導出するために設けられている。図１３（Ｂ）と図１４（Ｂ）を参照してわかるように、矢印２１２の箇所を通過するデータパケットをダンプするために、ノード２０８の命令はデータパケットを経路３１２にも出力可能な機能を有する命令に変更されて、プログラムには形式的出力ノード３１３が新たに追加されている。また、図１３（Ａ）と図１４（Ａ）を参照してわかるようにノード２０４の命令は経路３１４にもデータパケットを出力可能な命令のノード３０４に変更されて、ノード３１３に導出されたデータパケットを外部に出力するためにノード３１５および経路３１４がプログラムに追加されている。
【００２７】
この例のようにプログラムをデバッグするために該プログラムについて変更が必要となると、その分の手番も必要となり、またヒューマンエラーに起因したバグも生じやすい。したがって、デバッグの対象がオリジナルのプログラムから上述のように変更後のプログラムに変わってしまい、プログラムデバッグの本来の目的を達成することが困難となる。図１３（Ａ）と（Ｂ）では説明を簡単にするために「トッププログラム―サブプログラム」の２階層の場合を示しているが、実際には、データ駆動型情報処理装置で実行されるプログラムは３階層以上の構造を含むものが多いことは言うまでもないから、この問題はより顕著となろう。
【００２８】
特許文献３の方法は、ハードウェアの特定箇所に到達したデータパケットをダンプするものである。この特定箇所は、ハードウェアの設計段階で、あらかじめ固定して設計される必要があるため、ハードウェア作成完了後にダンプしたい箇所を変更することはできなかった。また、このダンプの特定箇所はプログラム上での位置とは直接には対応しないのでプログラムのデバッグのためのダンプとしては使いづらかった。更に、データパケットのダンプを指令する命令のためのデータパケットとダンプの対象となるデータパケットとを識別しながら扱う制御部をデータ駆動型情報処理装置に新たに追加する必要があった。これは、プログラムデバッグに使用するだけの機能であるにもかかわらず、データ駆動型情報処理装置において該機能を実現するには規模が大きい追加であり現実的でなく、またコストもかかる。
【００２９】
それゆえに、この発明の目的は、データフロープログラムの実行途中の内容を容易に取得できるデータ駆動型情報処理装置およびデータフロープログラムの実行制御方法を提供することである。
【課題を解決するための手段】
【００３０】
この発明のある局面に従うデータ駆動型情報処理装置は、命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置であって、
データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶したデータフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそそまま出力する発火制御部と、
発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットをプログラム記憶部に出力する演算部と、
プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットをデータ駆動型情報処理装置の外部または発火制御部に出力する入出力部とを備え、
データパケットは制御情報をさらに格納し、
データフロープログラムには、データパケットの内容を保持してデータ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
演算部は、入力データパケットのパケット出力指令を示す命令情報についての演算処理として、該入力データパケットの制御情報を転送指示を示すように設定するパケット出力指令処理部を有し、
入出力部は入力データパケットの制御情報が転送指示を示すとき、該入力データパケットを前記外部に出力する。
【００３１】
したがって、次位の命令情報としてパケット出力指令を示す命令情報を格納したデータパケットの制御情報は、演算部のパケット出力指令処理部により転送指示を示すように設定されて、制御情報が転送指示を示すように設定されているデータパケットは入出力部により外部に出力される。
【００３２】
それゆえに、制御情報に従い装置の外部に出力されたデータパケットの内容は、パケット出力指令の命令情報が読出される前に読出されている一連の命令情報に従う該データ駆動型情報処理装置における処理の実行結果を示しているから、パケット出力指令を示す命令情報をデータフロープログラムの所望の箇所に記載することにより、該箇所におけるプログラム実行途中の内容を外部出力されるデータパケットの内容により容易に取得できて、取得内容に基づくデバッグも容易となる。
【００３３】
また、所望箇所が複数個であったとしてもパケット出力指令を示す命令情報をデータフロープログラムの複数の所望箇所にそれぞれ記載するだけでよいから、プログラム全体にわたる書換えを必要とせず実機デバッグを省力化できる。このことから、複数箇所についてのデバッグであっても容易に可能となる。
【００３４】
また、データパケットをプログラム実行中の演算状態を保持したままで外部に出力するという、いわゆるパケットダンプ機能を、データフロープログラムで使用可能な通常の命令コードに従う処理を実行することにより実現できる。
【００３５】
好ましくは、発火制御部は入力データパケットの命令情報がパケット出力指令を示すときは該入力データパケットをそのまま出力する。
【００３６】
したがって、パケット出力指令を示す命令情報を格納したデータパケットについては発火制御部をそのまま通過するから、該データパケットがデータ駆動型情報処理装置をフローしたとしても、対データ検出に関する負荷が上昇するのを回避できる。
【００３７】
好ましくは、プログラム記憶部は、１回のアドレス指定により、パケット出力指令を示す命令情報を含む複数の次位の命令情報と複数の次位の行先情報を読出し、読出した複数の次位の命令情報それぞれと読出した複数の次位の行先情報それぞれを命令フィールドおよび行先フィールドにそれぞれ格納した複数の入力データパケットを出力する。この読出された複数の命令情報にはパケット出力指令を示す命令情報が含まれる。
【００３８】
したがって、１回のアドレス指定によりパケット出力指令を示す命令情報を含む複数の次位の命令情報を読出すことができる。それゆえに、パケット出力指令の命令情報がデータフロープログラムに含まれている場合であっても、そのためにデータフロープログラムからの読出回数が増加すること、およびパケット出力指令の命令情報を読出すためのデータパケットを特別に準備して装置内をフローさせることを回避できる。
【００３９】
好ましくは、パケット出力指令は複数種類に分類されて、制御情報は該データパケットのパケット出力指令の種類を識別するための識別データを含み、パケット出力指令処理部は、入力データパケットの命令情報の解読結果が示すパケット出力指令の種類に従い、該入力データパケットの識別データを設定する。
【００４０】
したがって、いずれの種類のパケット出力指令を格納したデータパケットであっても制御情報に基づいてデータ駆動型情報処理装置の外部に出力される。また、外部出力されたデータパケットについては制御情報の識別データに基づいて、そのパケット出力指令の種類を識別できる。
【００４１】
好ましくは、出力先となる外部は、与えられるデータパケットを入力して記憶する読取り可能な記憶装置である。したがって、記憶装置の記憶内容を読出して確認することにより、パケット出力指令を格納したデータパケットの内容、すなわちダンプ結果を容易に確認できる。
【００４２】
好ましくは、出力先となる外部は複数種類のパケット出力指令のそれぞれの種類に対応した複数の読取り可能な記憶装置である。
【００４３】
したがって、パケット出力指令の種類毎に外部出力されたデータパケットを記憶する装置を別個にすることができる。また、各記憶装置は読取り可能であるから、そこに記憶されたデータパケットの内容を読出して確認することができる。
【００４４】
それゆえに、データフロープログラム中で、一方種類のパケット出力指令の命令情報を記載した箇所を通過するデータパケットの内容と、他方種類のパケット出力指令の命令情報を記載した箇所を通過するデータパケットの内容とを、区分しながら記憶することができる。したがって、プログラムのダンプ目的が異なる箇所ごとに、そこに記載するパケット出力指令の種類を異ならせることにより、各記憶装置にはダンプ目的別にダンプ結果を記憶させることができる。
【００４５】
この発明の他の局面に従うデータフロープログラムの実行制御方法は、命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置におけるデータフロープログラムの実行制御方法であって、
データ駆動型情報処理装置は、
データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶したデータフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそそまま出力する発火制御部と、
発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットをプログラム記憶部に出力する演算部と、
プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットをデータ駆動型情報処理装置の外部または前記発火制御部に出力する入出力部とを備え、
データパケットは制御情報をさらに格納し、
データフロープログラムには、データパケットの内容を保持してデータ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
演算部は、入力データパケットのパケット出力指令を示す命令情報についての演算処理として、該入力データパケットの制御情報を転送指示を示すように設定するパケット出力指令処理部を有し、
データフロープログラムの実行制御方法は、
演算部において入力データパケットの命令情報の解読結果がパケット出力指令を示すときは、演算処理として該入力データパケットの転送フラグをセット状態に設定するパケット出力指令処理ステップと、
入出力部において入力データパケットの制御情報が転送指示を示す該入力データパケットを外部に出力するステップとを備える。
【発明を実施するための最良の形態】
【００４６】
以下、この発明の実施の形態について図面を参照して詳細に説明する。ここではＨＳＴフラグ１１３とＣＴＬフラグ１１４とは実機デバッグを制御するための情報として用いられる。
【００４７】
図１には本実施の形態に係るデータ駆動型情報処理装置ＰＥのブロック構成が示される。データ駆動型情報処理装置ＰＥと図９の従来のデータ駆動型情報処理装置Ｐｅとを比較して異なる点には、従来の演算部１０２が演算部１２に改良された点が含まれる。合流部１０１、発火制御部１０６、プログラム記憶部１０４および分岐部１０５は従来と同様の機能と構成を有する。図１ではデータパケット１１０をデータ駆動型情報処理装置Ｐｅに入力するための入力制御部１００が設けられている。入力制御部１００はプログラムを予め記憶するための記憶部１０Ａを有し、発火制御部１０６はプログラムの実行に必要とされる定数データを予め記憶するための記憶部１６Ａを有する。
【００４８】
図１のデータ駆動型情報処理装置ＰＥでは説明を簡単にするために従来技術で説明した各部間のデータ転送制御線の図示は省略されているが、従来と同様に各部間ではデータパケット１１０は自己同期型転送制御に従い転送される。
【００４９】
演算部１２は図１に模式的に示されるように、従来と同様の種類（四則演算命令、論理演算命令など）の命令コードの処理機能に追加して、本発明に特徴の命令コードＳＨＦとＳＳＦを処理する機能を有する。演算部１２の内部構成が図２に示される。
【００５０】
図２を参照して演算部１２は、命令デコーダ１４０１、加算命令コード（‘ａｄｄ’）に従う演算を実行する演算器１４０２、乗算命令コード（‘ｍｕｌ’）に従う演算を実行する演算器１４０３、命令コードＳＨＦに従う演算を実行する演算器１４０４、命令コードＳＳＦに従う演算を実行する演算器１４０５およびセレクタ１４０９を備える。演算部１２は複数の演算器を有するが、これら演算器で処理される命令コードの種類はここに挙げたものに限定されない。
【００５１】
演算部１２にデータパケット１１０が入力すると、入力データパケット１１０の命令コード１１１は命令デコーダ１４０１に与えられて、行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５は演算器１４０２〜１４０４のすべてに与えられる。演算器１４０２〜１４０４のそれぞれは、与えられる行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５を用いて自己の演算を実行し、演算実行の結果を示す行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５を出力する。加算命令コード‘ａｄｄ’であるとき入力データパケット１１０のデータ１１５を用いた加算結果がデータ１１５として出力される。また乗算命令コード‘ｍｕｌ’であるとき入力データパケット１１０のデータ１１５を用いた乗算結果がデータ１１５として出力される。
【００５２】
これに対して、命令コードＳＨＦの演算器１４０４は、与えられる行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５のうちＨＳＴフラグ１１３を‘１’にセットして出力し、それ以外はそのまま出力する。また、命令コードＳＳＦの演算器１４０５は、与えられる行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５のうちＨＳＴフラグ１１３およびＣＴＬフラグ１１４をそれぞれ‘１’にセットして出力し、それ以外はそのまま出力する。
【００５３】
命令デコーダ１４０１は与えられた命令コード１１１の種類を判別して、判別結果に基づいてセレクタ１４０９を制御する。セレクタ１４０９は命令デコーダ１４０１が‘ａｄｄ’命令と判定したときは演算器１４０２の出力を、‘ｍｕｌ’命令と判定したときは演算器１４０２の出力を、命令コードＳＨＦと判定したときは演算器１４０２の出力を、そして命令コードＳＳＦと判定したときは演算器１４０４の出力をそれぞれ選択する。選択された出力は、出力のためのデータパケット１１０のフィールドＦ２〜Ｆ５に格納されるとともに、入力データパケット１１０の命令コード１１１は、そそまま出力データパケット１１０のフィールドＦ１に格納される。演算終了後、該出力データパケット１１０は演算部１２からプログラム記憶部１０４に出力される。
【００５４】
このように、命令コードＳＨＦまたはＳＳＦが実行される場合には演算部１４から出力されるデータパケット１１０として、入力データパケット１１０の少なくともフィールドＦ１、Ｆ２およびＦ５の内容を保持したままのデータパケット１１０、すなわちデータ駆動型情報処理装置ＰＥにおける演算中の状態（情報）を保持したままのデータパケット１１０を得ることができる。
【００５５】
なお、ＣＴＬフラグ１１４は通常は‘０’であるから、演算部１２から出力されたデータパケット１１０のうちＣＴＬフラグ１１４が‘１’であれば、該データパケットは命令コードＳＳＦの実行結果のデータパケットであることがわかる。
【００５６】
データ駆動型情報処理装置ＰＥではプログラムをデバッグするとき、該プログラム上でダンプする箇所は、事前にプログラム記憶部１０４に記憶されたプログラムにおいて命令コードＳＨＦまたはＳＳＦを書込むことにより直接に指定できる。これを図３（Ａ）〜（Ｃ）および図４（Ａ）〜（Ｃ）を参照して説明する。
【００５７】
本実施の形態では図１３（Ａ）と（Ｂ）の示したのと同じプログラムをデバッグするために矢印２１２の箇所を通過するデータパケット１１０をダンプするには、図３（Ａ）と（Ｂ）に示すように経路４１２を追加して命令コードＳＨＦが割当てられるノード４１３が追加される。図３（Ａ）と（Ｂ）の変更は図１４（Ａ）と（Ｂ）のそれに比べると、少ない変更で済んでいることがわかる。
【００５８】
図３（Ａ）と（Ｂ）のデータフローグラフに対応のプログラムおよびデータは記憶部１０Ａ、プログラム記憶部１０２および記憶部１６Ａにおいて図４（Ａ）〜（Ｃ）にように予め格納される。
【００５９】
図４（Ａ）および（Ｂ）に示す入力制御部１００の記憶部１０Ａおよびプログラム記憶部１０２のそれぞれには、アドレスＡＤに基づき個別に指定される複数の領域それぞれに２組のプログラムデータＰＤ１とＰＤ２を格納する。プログラムデータＰＤ１は該プログラムデータＰＤ１が有効か否かを示す有効データＤ１１、命令コードを示す命令データＤ１２、行先情報を示すノードデータＤ１３、および次位の命令ノードの左側（Ｌ）の入力経路および右側（Ｒ）の入力経路のいずれに出力するかを指示するＬＲデータＤ１４を含む。プログラムデータＰＤ２も同様に、有効データＤ１２、命令データＤ２２、ノードデータＤ２３およびＬＲデータＤ２４を含む。
【００６０】
発火制御部１０６の記憶部１６Ａには図４（Ｃ）の定数表１５０３が格納される。定数表１５０３は有効データＤ４１および値データＤ４２を含む複数個のレコードが予め登録されており、各レコードはアドレスＡＤにより一意に指定される。有効データＤ４１は該レコードの内容が有効か否かを示す。値データＤ４２はプログラム実行のために参照される定数値を示す。
【００６１】
図１のデータ駆動型情報処理装置ＰＥに格納された図４（Ａ）〜（Ｃ）のプログラムおよびデータが実行される場合の動作を、図３（Ａ）と（Ｂ）のフローグラフおよび図３（Ｃ）を適宜参照しながら説明する。
【００６２】
行先情報１１２が‘０’であるデータパケット１１０が入力制御部１００に入力すると、該データパケット１１０の行先情報１１２に基づくアドレス指定により記憶部１０ＡのアドレスＡＤ＝０の領域のプログラムデータのうち有効データＤ１１が‘有効’であるプログラムデータＰＤ１のみが読出される。読出されたプログラムデータＰＤ１の命令データＤ１２は入力データパケット１１０のフィールドＦ１に格納されて、ノードデータＤ１３とＬＲデータはフィールドＦ２に格納される。その後、該入力データパケット１１０は合流部１０１を介して発火制御部１０６に入力して、そこで対となるべきデータの入力を待合わせる（図３（Ａ）のノード２０１参照）。
【００６３】
また、行先情報１１２が‘１’であるデータパケット１１０が入力制御部１００に入力すると、該データパケット１１０の行先情報１１２に基づくアドレス指定によりプログラムデータが読出される。この場合には、記憶部１０ＡのアドレスＡＤ＝１の領域の有効データＤ１１とＤ２１が‘有効’であるからプログラムデータＰＤ１とＰＤ２が読出されるとともに、入力データパケットはコピーされて２個となる。読出されたプログラムデータＰＤ１の命令データＤ１２は２個の入力データパケット１１０の一方のデータパケット１１０のフィールドＦ１に格納されて、ノードデータＤ１３とＬＲデータはフィールドＦ２に格納されて該データパケットは出力される。また、読出されたプログラムデータＰＤ２の命令データＤ２２は他方の入力データパケット１１０のフィールドＦ１に格納されて、ノードデータＤ１３とＬＲデータはフィールドＦ２に格納されて、該データパケット１１０は出力される。出力された２つのデータパケットは合流部１０１を介して発火制御部１０６に入力して、そこで対となるべきデータの入力を待合わせる（図３（Ａ）のノード２０２参照）。
【００６４】
この結果、発火制御部１０６では同じ行先情報１１２（‘ｎ１’）を格納した異なる２つのデータパケット１１０の入力を検出したので、対データを格納したデータパケット１１０を演算部１２に出力する。演算部１２では該入力データパケット１１０の命令コード１１１（‘ｍｕｌ’）に基づく演算が演算器１４０３で行われて、その結果を格納したデータパケット１１０はプログラム記憶部１０４に出力する（図３（Ａ）のノード２０３参照）。
【００６５】
プログラム記憶部１０４ではモジュール（‘ｍｏｄｌ’）に処理を移行させるために入力データパケット１１０の行先情報１１２（‘ｎ１’）に基づくアドレス指定により、プログラムデータが読出される。この場合には、プログラム記憶部１０２のアドレスＡＤ＝０の領域の有効データＤ１１のみが‘有効’であるからプログラムデータＰＤ１のみが読出される。読出されたプログラムデータＰＤ１の命令データＤ１２（‘ｍｕｌ’）は入力データパケット１１０のフィールドＦ１に格納されて、ノードデータＤ１３（‘ｎ２’）とＬＲデータはフィールドＦ２に格納されて該データパケット１１０は合流部１０１を介して発火制御部１０６に入力する。これにより発火制御部１０６ではすでに待合わせていたデータパケット１１０と対が検出されて、対データを格納したデータパケット１１０が演算部１０２に出力される。
【００６６】
演算部１０２では入力したデータパケット１１０の命令コード１１１（‘ｍｕｌ’）に基づく演算が実行されて実行結果を格納したデータパケット１１０はプログラム記憶部１０４に出力される。
【００６７】
プログラム記憶部１０４では入力データパケット１１０の行先情報１１２（‘ｎ２’）に基づくアドレス指定より、有効データＤ１１とＤ２２が有効を示すプログラムデータＰＤ１とＰＤ２が読出される。読出されたプログラムデータＰＤ２の命令データＤ２２は命令コードＳＨＦを示す。このとき入力データパケットはコピーされて２個となる。読出されたプログラムデータＰＤ１の命令データＤ１２（‘ａｄｄ’）は２個の入力データパケット１１０の一方のデータパケット１１０のフィールドＦ１に格納されて、ノードデータＤ１３（‘ｎ３’）とＬＲデータＤ１４はフィールドＦ２に格納されて該データパケット１１０は出力される。また、読出されたプログラムデータＰＤ２の命令コードＳＨＦは他方の入力データパケット１１０のフィールドＦ１に格納されて、行先情報であるノードデータＤ２３（‘ｎ４’ただし、これはダミーの値である）とＬＲデータはフィールドＦ２に格納されて、該データパケット１１０は出力される。出力された２つのデータパケットは分岐部１０５および合流部１０１を介して発火制御部１０６に入力する（（図３（Ａ）のノード４０８参照）。
【００６８】
発火制御部１０６において、命令コード‘ａｄｄ’を格納したデータパケット１１０が入力すると、該入力データパケット１１０の行先情報（‘ｎ３’）に基づくアドレス指定により、定数表１５０３から値データＤ４２（＝３）が読出される。入力データパケット１１０のフィールドＦ５に読出された値データＤ４２が追加格納されて、該データパケット１１０は演算部１０２に出力される。また、発火制御部１０６において命令コードＳＨＦを格納したデータパケット１１０が入力すると待合わせの必要はない命令コードと判定されて、入力データパケットはそのまま演算部１０２に出力される（図３（Ｃ）のステップＳ１）。
【００６９】
演算部１０２では命令コードＳＨＦを格納したデータパケット１１０が入力すると、演算器１４０４は該入力データパケット１１０のＨＳＴフラグ１１３を‘１’にセットする（ステップＳ３（Ｃ）のステップＳ２）。その後、該データパケット１１０はプログラム記憶部１０４に入力する。プログラム記憶部１０４では該入力データパケット１１０の行先情報１１２（‘ｎ４’）に基づくアドレス指定によりプログラムの読出しを行う。ただし、該行先情報１１２（‘ｎ４’）は使用されない。言換えると、行先情報１１２（‘ｎ４’）に基づくアドレス指定により読出されたプログラムの命令コードＤ１２は‘ＮＯＰ’（no operation）を示しているので、該命令コードのデータパケット１１０は演算部１２に入来すると、ここでは処理されずに演算部１２を通過する。
【００７０】
分岐部１０５は入力データパケット１１０のＨＳＴフラグ１１３は‘１’であることに基づいて該データパケット１１０をデータ駆動型情報処理装置ＰＥの外部に出力する（図３（Ｃ）のステップＳ３）。このステップＳ１〜Ｓ３の処理が実行されることにより図３（Ｂ）のノード４１３に当てられた命令コードＳＨＦの処理の実行は終了する。このとき出力された（ダンプされた）データパケット１１０の内容はノード２０１からノード４０８までのプログラムに従う演算の実行結果を格納した状態を示しているから、出力された該データパケット１１０の内容を確認することでノード４０８までのプログラムのデバッグが可能となる。
【００７１】
また、図４（Ｂ）に示すようにノード２０１からノード４０８までのプログラム実行状態をデバッグしたい場合にはノード４０８の命令コード（‘ｍｕｌ’）の次位の命令コードとして読出されるようにプログラム記憶部１０２に記憶させておけばよいから、言換えるとデータフロープログラムをそのように記述しておけばよいからプログラム上でダンプする箇所を直接に、かつ任意に指定できる。
【００７２】
また、この場合には、上述のようなデータパケット１１０のコピー動作を利用して、ノード４０８の命令コード（‘ｍｕｌ’）の次位に読出される命令コード（‘ａｄｄ’）のプログラムデータＰＤ１と同一アドレスの領域に命令コードＳＨＦのプログラムデータＰＤ２を追加するだけでよいから、プログラム変更を少なくすることができて実機デバッグを省力化できる。
【００７３】
上述は命令コード‘ＳＨＦ’について例示したが、これに代替して命令コード‘ＳＳＦ’であっても同様に適用することができて、また同様の効果を得ることができる。
【００７４】
図５には、データ駆動型情報処理装置ＰＥに外部からパケット選択装置３０２とパケット記憶装置３０３が接続された状態が示される。パケット選択装置３０２は分岐部１０５から出力されたデータパケット１１０を入力して、入力したデータパケット１１０のＨＳＴフラグ１１３が‘１’であれば該入力データパケット１１０をパケット記憶装置３０３に出力する。パケット記憶装置３０３は与えられるデータパケット１１０を入力して逐次記憶する。したがって、パケット記憶装置３０３には命令コードＳＨＦまたは命令コードＳＳＦによってダンプされたデータパケット１１０を蓄積することが可能である。
【００７５】
図６には、データ駆動型情報処理装置ＰＥに外部からパケット選択装置３１２ならびに記憶内容を読出可能なパケット記憶装置３１３および３１４が接続された状態が示される。パケット選択装置３１２は分岐部１０５から出力されたデータパケット１１０を入力して、入力したデータパケット１１０のＨＳＴフラグ１１３が‘１’かつＣＴＬフラグ１１４が‘０’であれば該入力データパケット１１０をパケット記憶装置３１３に出力し、ＨＳＴフラグ１１３が‘１’かつＣＴＬフラグ１１４が‘１’であれば該入力データパケット１１０をパケット記憶装置３１４に出力する。パケット記憶装置３１３と３１４は与えられるデータパケット１１０を入力して逐次記憶する。したがって、パケット記憶装置３１３には命令コードＳＨＦによってダンプされたデータパケット１１０を蓄積することが可能であり、パケット記憶装置３１４には命令コードＳＳＦによってダンプされたデータパケット１１０を蓄積することが可能である。パケット記憶装置３１３と３１４の記憶内容を読出して外部に提示する別の装置を用いることにより、デバッグ内容を簡単に知ることができる。
【００７６】
このようにダンプされたデータパケット１１０を記憶する装置を命令コードごとに異ならせることにより、例えば次のような効果が奏される。データ駆動型情報処理装置ＰＥの出力データパケット１１０をパケット記憶装置３１３と３１４に蓄積する際、命令コードＳＨＦのデータパケット１１０はパケット内のデータを蓄積するけれども、命令コードＳＳＦのデータパケットは入来した回数を計数すると想定する。そうした場合、データパケット１１０の内容が必要なデバック箇所では命令コードＳＨＦを使用し、データパケット１１０が通過する量を数えたいだけの箇所では命令コードＳＳＦを使用すると、全てのデータパケットを蓄積する場合に比べてパケット記憶装置の必要容量が少なくて済む。
【００７７】
本実施の形態では、データパケットのダンプを行う機能をデータフロープログラムで使用できる通常の命令として実現する。これにより、簡単なプログラムの変更によりプログラム中の任意の場所におけるデータパケット１１０のダンプ結果を取得できる。また、このためには演算部１２におけるわずかな変更が要求されるのみであるから、実現に必要なコストが非常に少なくて済む。
【００７８】
なお、命令コードＳＨＦとＳＳＦとを区別するために、従来のデータ駆動型情報処理装置で使用しているＣＴＬフラグを使用しているが、これはこのフラグに限るものではなく、従来から使用している別のフラグでも良く、また、新たに別のフラグを付加しても良いことは言うまでもなく、更に多数のフラグを用いることで、より多くの箇所のデバッグを容易化できることは言うまでもない。
【００７９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００８０】
【図１】本実施の形態に係るデータ駆動型情報処理装置ＰＥのブロック構成図である。
【図２】本実施の形態に係る演算部の内部構成図である。
【図３】（Ａ）〜（Ｃ）は本実施の形態に係るデータフローグラフである。
【図４】（Ａ）〜（Ｃ）は図３（Ａ）〜（Ｃ）に対応して記憶されるデータフロープログラムと定数を説明する図である。
【図５】本実施の形態に係るデータ駆動型情報処理装置にパケット選択装置とパケット記憶装置が接続された状態を示す図である。
【図６】本実施の形態に係るデータ駆動型情報処理装置にパケット選択装置と２つのパケット記憶装置が接続された状態を示す図である。
【図７】従来のデータ駆動型情報処理装置のブロック構成図である。
【図８】従来および本発明に適用されるデータパケットの構成図である。
【図９】図７のデータ駆動型情報処理装置におけるデータ伝送路の構成図である。
【図１０】（Ａ）から（Ｅ）には図９に示したＣ素子の動作を説明するためのタイミングチャートである。
【図１１】図９に示したデータ伝送路を所定ロジック回路を介してシーケンス接続した例を示す図である。
【図１２】図９に示したＣ素子の具体的な回路図である。
【図１３】（Ａ）と（Ｂ）は従来のデータフローグラフの一例を示す図である。
【図１４】（Ａ）と（Ｂ）は図１３（Ａ）と（Ｂ）のフローグラフをデバッグする場合のフローグラフを示す図である。
【符号の説明】
【００８１】
１２，１０２  演算部、１００  入力制御部、１０１  合流部、１０４  プログラム記憶部、１０５  分岐部、１１０  データパケット、１４０１  命令デコーダ、１４０２，１４０３，１４０４，１４０５  演算器、１４０９  セレクタ、３１２  パケット選択装置、３１３，３１４  パケット記憶装置。
【図１】
2005141681.tif 000003
【図２】
2005141681.tif 000004
【図３】
2005141681.tif 000005
【図４】
2005141681.tif 000006
【図５】
2005141681.tif 000007
【図６】
2005141681.tif 000008
【図７】
2005141681.tif 000009
【図８】
2005141681.tif 000010
【図９】
2005141681.tif 000011
【図１０】
2005141681.tif 000012
【図１１】
2005141681.tif 000013
【図１２】
2005141681.tif 000014
【図１３】
2005141681.tif 000015
【図１４】
2005141681.tif 000016
【手続補正書】
【提出日】平成16年11月9日(2004.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置であって、
前記データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶した前記データフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
前記データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそのまま出力する発火制御部と、
前記発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットを前記プログラム記憶部に出力する演算部と、
前記プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットを前記データ駆動型情報処理装置の外部または前記発火制御部に出力する入出力部とを備え、
前記データパケットは制御情報をさらに格納し、
前記データフロープログラムには、データパケットの内容を保持して前記データ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
前記演算部は、前記入力データパケットの前記パケット出力指令を示す前記命令情報についての前記演算処理として、該入力データパケットの前記制御情報を転送指示を示すように設定するパケット出力指令処理部を有し、
前記入出力部は前記入力データパケットの前記制御情報が転送指示を示すとき、該入力データパケットを前記外部に出力することを特徴とする、データ駆動型情報処理装置。
【請求項２】
前記プログラム記憶部は、１回の前記アドレス指定により、前記パケット出力指令を示す命令情報を含む複数の前記次位の命令情報と複数の前記次位の行先情報を読出し、読出した前記複数の次位の命令情報それぞれと読出した前記複数の次位の行先情報それぞれを、前記命令フィールドおよび前記行先フィールドにそれぞれ格納した複数の前記入力データパケットを出力し、
前記読出された複数の命令情報には前記パケット出力指令を示す命令情報が含まれることを特徴とする、請求項１に記載のデータ駆動型情報処理装置。
【請求項３】
前記パケット出力指令は複数種類に分類されて、
前記制御情報は該データパケットの前記パケット出力指令の種類を識別するための識別データを含み、
前記パケット出力指令処理部は、
前記入力データパケットの命令情報の前記解読結果が示す前記パケット出力指令の種類に従い、該入力データパケットの前記識別データを設定する、請求項１または２に記載のデータ駆動型情報処理装置。
【請求項４】
前記出力先となる外部は、与えられる前記データパケットを入力して記憶する読取り可能な記憶装置であることを特徴とする、請求項１から３のいずれか１項に記載のデータ駆動型情報処理装置。
【請求項５】
前記出力先となる外部は前記複数種類のパケット出力指令のそれぞれの種類に対応した
複数の読取り可能な記憶装置であることを特徴とする、請求項３に記載のデータ駆動型情報処理装置。
【請求項６】
命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置における前記データフロープログラムの実行制御方法であって、
前記データ駆動型情報処理装置は、
前記データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶した前記データフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
前記データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそのまま出力する発火制御部と、
前記発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットを前記プログラム記憶部に出力する演算部と、
前記プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットを前記データ駆動型情報処理装置の外部または前記発火制御部に出力する入出力部とを備え
前記データパケットは制御情報をさらに格納し、
前記データフロープログラムには、データパケットの内容を保持して前記データ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
前記データフロープログラムの実行制御方法は、
前記演算部において前記入力データパケットの命令情報の前記解読結果が前記パケット出力指令を示すときは、前記演算処理として該入力データパケットの前記制御情報を転送指示を示すように設定するパケット出力指令処理ステップと、
前記入出力部において前記入力データパケットの前記制御情報が転送指示を示すとき、該入力データパケットを前記外部に出力するステップとを備える、データフロープログラムの実行制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
図７のデータ駆動型情報処理装置Ｐｅにデータパケット１１０が入力されると、入力データパケット１１０はまず合流部１０１を通り、発火制御部１０６に与えられる。発火制御部１０６は入力データパケット１１０の行先情報１１２に基づいて、行先情報１１２が一致する異なる２つのデータパケット１１０が入力したことを検出すると、検出された一方のデータパケット１１０のデータ１１５を他方のデータパケット１１０のフィールドＦ５に追加して格納して、この他方のデータパケット１１０を演算部１０２に出力する。対データの検出のためにデータパケットの待合わせをする。入力データパケットの命令コード１１１が２項演算命令などの２つのオペランドデータを必要とする命令コードであると判定したときは待合わせをするが、そうでない命令コードであると判定したときは該入力データパケットはそのまま出力される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
パルス入力端子ＣＩに「Ｌ」レベルの信号が入力されると、すなわち前段からデータ転送が要求されるとフリップフロップ５ａはセットされるので、その出力Ｑに「Ｈ」レベルの信号を出力する。この「Ｈ」レベル信号はインバータ５ｇで反転されるので、転送許可出力端子ＲＯから「Ｌ」レベル信号が前段に出力され、前段に対してさらなるデータ転送を禁止する。一定時間後、パルス入力端子ＣＩに「Ｈ」レベルの信号が入力され、前段から当該Ｃ素子３ａへのデータのセットが終了する。この状態でかつ転送許可入力端子ＲＩに後段から「Ｈ」レベル信号が入力されている、すなわち後段に対するデータ転送を許可されている状態で、かつパルス出力端子ＣＯが「Ｈ」レベル信号を出力している、すなわち後段へデータ転送している途中でない状態（データ転送を後段に要求していない状態）であれば、ＮＡＮＤゲート５ｃはアクティブ状態となり、「Ｌ」レベル信号を出力する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
この発明のある局面に従うデータ駆動型情報処理装置は、命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置であって、
データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶したデータフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納
して、該入力データパケットを出力するプログラム記憶部と、
データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデータを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそのまま出力する発火制御部と、
発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットをプログラム記憶部に出力する演算部と、
プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットをデータ駆動型情報処理装置の外部または発火制御部に出力する入出力部とを備え、
データパケットは制御情報をさらに格納し、
データフロープログラムには、データパケットの内容を保持してデータ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
演算部は、入力データパケットのパケット出力指令を示す命令情報についての演算処理として、該入力データパケットの制御情報を転送指示を示すように設定するパケット出力指令処理部を有し、
入出力部は入力データパケットの制御情報が転送指示を示すとき、該入力データパケットを前記外部に出力する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
この発明の他の局面に従うデータフロープログラムの実行制御方法は、命令情報を格納する命令フィールド、行先情報を格納する行先フィールドおよびデータを格納するデータフィールドを有するデータパケットを入力して、データフロープログラムに従う演算を実行するデータ駆動型情報処理装置におけるデータフロープログラムの実行制御方法であって、
データ駆動型情報処理装置は、
データパケットを入力して、該入力データパケットの行先情報に基づくアドレス指定により、予め記憶したデータフロープログラムから次位の行先情報および次位の命令情報を読出して、該入力データパケットの行先フィールドおよび命令フィールドにそれぞれ格納して、該入力データパケットを出力するプログラム記憶部と、
データパケットを入力して、該入力データパケットの命令情報に基づき、対となるデー
タを検出して該入力データパケットのデータフィールドにデータ対を格納して該入力データパケットを出力するか該入力データパケットをそのまま出力する発火制御部と、
発火制御部からデータパケットを入力して、入力データパケットの命令情報を解読して、解読結果に基づき入力データパケットの内容に対して演算処理を施し、該演算結果を該入力データパケットに格納して該入力データパケットをプログラム記憶部に出力する演算部と、
プログラム記憶部から入力したデータパケットの内容に基づいて該入力データパケットをデータ駆動型情報処理装置の外部または前記発火制御部に出力する入出力部とを備え、
データパケットは制御情報をさらに格納し、
データフロープログラムには、データパケットの内容を保持してデータ駆動型情報処理装置の外部に該データパケットを出力するためのパケット出力指令を示す命令情報が含まれて、
演算部は、入力データパケットのパケット出力指令を示す命令情報についての演算処理として、該入力データパケットの制御情報を転送指示を示すように設定するパケット出力指令処理部を有し、
データフロープログラムの実行制御方法は、
演算部において入力データパケットの命令情報の解読結果がパケット出力指令を示すときは、演算処理として該入力データパケットの転送フラグをセット状態に設定するパケット出力指令処理ステップと、
入出力部において入力データパケットの制御情報が転送指示を示す該入力データパケットを外部に出力するステップとを備える。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
図１には本実施の形態に係るデータ駆動型情報処理装置ＰＥのブロック構成が示される。データ駆動型情報処理装置ＰＥと図７の従来のデータ駆動型情報処理装置Ｐｅとを比較して異なる点には、従来の演算部１０２が演算部１２に改良された点が含まれる。合流部１０１、発火制御部１０６、プログラム記憶部１０４および分岐部１０５は従来と同様の機能と構成を有する。図１ではデータパケット１１０をデータ駆動型情報処理装置ＰＥに入力するための入力制御部１００が設けられている。入力制御部１００はプログラムを予め記憶するための記憶部１０Ａを有し、発火制御部１０６はプログラムの実行に必要とされる定数データを予め記憶するための記憶部１６Ａを有する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
演算部１２にデータパケット１１０が入力すると、入力データパケット１１０の命令コード１１１は命令デコーダ１４０１に与えられて、行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５は演算器１４０２〜１４０５のすべてに与えられる。演算器１４０２〜１４０５のそれぞれは、与えられる行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５を用いて自己の演算を実行し、演算実行の結果を示す行先情報１１２、ＨＳＴフラグ１１３、ＣＴＬフラグ１１４およびデータ１１５を出力する。加算命令コード‘ａｄｄ’であるとき入力データパケット１１０のデータ１１５を用いた加算結果がデータ１１５として出力される。また乗算命令コード‘ｍｕｌ’であるとき入力データパケット１１０のデータ１１５を用いた乗算結果がデータ１１５として出力される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
命令デコーダ１４０１は与えられた命令コード１１１の種類を判別して、判別結果に基づいてセレクタ１４０９を制御する。セレクタ１４０９は命令デコーダ１４０１が‘ａｄｄ’命令と判定したときは演算器１４０２の出力を、‘ｍｕｌ’命令と判定したときは演算器１４０２の出力を、命令コードＳＨＦと判定したときは演算器１４０２の出力を、そして命令コードＳＳＦと判定したときは演算器１４０４の出力をそれぞれ選択する。選択された出力は、出力のためのデータパケット１１０のフィールドＦ２〜Ｆ５に格納されるとともに、入力データパケット１１０の命令コード１１１は、そのまま出力データパケット１１０のフィールドＦ１に格納される。演算終了後、該出力データパケット１１０は演算部１２からプログラム記憶部１０４に出力される。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
このように、命令コードＳＨＦまたはＳＳＦが実行される場合には演算部１２から出力されるデータパケット１１０として、入力データパケット１１０の少なくともフィールドＦ１、Ｆ２およびＦ５の内容を保持したままのデータパケット１１０、すなわちデータ駆動型情報処理装置ＰＥにおける演算中の状態（情報）を保持したままのデータパケット１１０を得ることができる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
図３（Ａ）と（Ｂ）のデータフローグラフに対応のプログラムおよびデータは記憶部１０Ａ、プログラム記憶部１０４および記憶部１６Ａにおいて図４（Ａ）〜（Ｃ）にように予め格納される。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
図４（Ａ）および（Ｂ）に示す入力制御部１００の記憶部１０Ａおよびプログラム記憶部１０４のそれぞれには、アドレスＡＤに基づき個別に指定される複数の領域それぞれに２組のプログラムデータＰＤ１とＰＤ２を格納する。プログラムデータＰＤ１は該プログラムデータＰＤ１が有効か否かを示す有効データＤ１１、命令コードを示す命令データＤ１２、行先情報を示すノードデータＤ１３、および次位の命令ノードの左側（Ｌ）の入力経路および右側（Ｒ）の入力経路のいずれに出力するかを指示するＬＲデータＤ１４を含む。プログラムデータＰＤ２も同様に、有効データＤ１２、命令データＤ２２、ノードデータＤ２３およびＬＲデータＤ２４を含む。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
プログラム記憶部１０４ではモジュール（‘ｍｏｄｌ’）に処理を移行させるために入力データパケット１１０の行先情報１１２（‘ｎ１’）に基づくアドレス指定により、プログラムデータが読出される。この場合には、プログラム記憶部１０４のアドレスＡＤ＝０の領域の有効データＤ１１のみが‘有効’であるからプログラムデータＰＤ１のみが読出される。読出されたプログラムデータＰＤ１の命令データＤ１２（‘ｍｕｌ’）は入力データパケット１１０のフィールドＦ１に格納されて、ノードデータＤ１３（‘ｎ２’）とＬＲデータはフィールドＦ２に格納されて該データパケット１１０は合流部１０１を介して発火制御部１０６に入力する。これにより発火制御部１０６ではすでに待合わせていたデータパケット１１０と対が検出されて、対データを格納したデータパケット１１０が演算部１０２に出力される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
演算部１２では入力したデータパケット１１０の命令コード１１１（‘ｍｕｌ’）に基づく演算が実行されて実行結果を格納したデータパケット１１０はプログラム記憶部１０４に出力される。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
発火制御部１０６において、命令コード‘ａｄｄ’を格納したデータパケット１１０が入力すると、該入力データパケット１１０の行先情報（‘ｎ３’）に基づくアドレス指定により、定数表１５０３から値データＤ４２（＝３）が読出される。入力データパケット１１０のフィールドＦ５に読出された値データＤ４２が追加格納されて、該データパケット１１０は演算部１２に出力される。また、発火制御部１０６において命令コードＳＨＦを格納したデータパケット１１０が入力すると待合わせの必要はない命令コードと判定されて、入力データパケットはそのまま演算部１２に出力される（図３（Ｃ）のステップＳ１）。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
演算部１２では命令コードＳＨＦを格納したデータパケット１１０が入力すると、演算器１４０４は該入力データパケット１１０のＨＳＴフラグ１１３を‘１’にセットする（図３（Ｃ）のステップＳ２）。その後、該データパケット１１０はプログラム記憶部１０４に入力する。プログラム記憶部１０４では該入力データパケット１１０の行先情報１１２（‘ｎ４’）に基づくアドレス指定によりプログラムの読出しを行う。ただし、該行先情報１１２（‘ｎ４’）は使用されない。言換えると、行先情報１１２（‘ｎ４’）に基づくアドレス指定により読出されたプログラムの命令コードＤ１２は‘ＮＯＰ’（no operation）を示しているので、該命令コードのデータパケット１１０は演算部１２に入来すると、ここでは処理されずに演算部１２を通過する。