(57)【特許請求の範囲】
【請求項１】
複数の行先情報および複数の命令情報からなるデータフロープログラムを記憶し、前記行先情報を格納するための行先フィールド、前記命令情報を格納するための命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するデータパケットを入力して、該入力データパケットの前記行先フィールドの内容に基づくアドレス指定により、前記データフロープログラムから次位の前記行先情報および次位の前記命令情報を読出し、該入力データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに格納して、該入力データパケットを出力するプログラム記憶手段と、
前記プログラム記憶手段から出力される前記データパケットを入力して、該入力データパケットの前記命令フィールドの前記命令情報の実行のために必要とされる内容を格納して該入力データパケットを出力する対データ検出手段と、
データが登録された複数のテーブルを有し、前記データパケットを入力して、該入力データパケットの前記命令フィールドの前記命令情報に基づいて、前記複数テーブルから読出された前記データを算術演算して算術演算結果を累算する累積演算を繰返して、繰返された累積演算結果を該入力データパケットの前記データフィールドに格納して、該入力データパケットを出力する累積処理手段と、
前記データパケットを入力して、該入力データパケットの前記命令フィールドの前記命令情報に従い、対応の前記データフィールドの前記データを処理して、処理結果データを該データフィルードに格納して、該入力データパケットを出力する演算手段と、
前記対データ検出手段から出力された前記データパケットを入力して、該入力データパケットの前記命令フィールドの前記命令情報に従い、該入力データパケットを前記累積処理手段および前記演算手段のいずれか一方に出力する分岐手段と、
前記累積処理手段および前記演算手段から出力された前記データパケットを入力して、外部または前記プログラム記憶部に出力する入出力制御手段とを備える、データ処理装置。
【請求項２】
前記累積処理手段に入力される前記データパケットの前記命令情報は、前記累積演算の繰返し回数を指定するデータを含むことを特徴とする、請求項１に記載のデータ処理装置。
【請求項３】
前記累積処理手段は、前記累積演算の繰返し期間において、与えられる前記算術演算結果を順次入力して累算して累算結果を保持する累算器を有することを特徴とする、請求項１または２に記載のデータ処理装置。
【請求項４】
前記累積処理手段は、前記累積演算の繰返し期間において、与えられる前記算術演算結果を順次入力して累算して累算結果を保持する複数の累算器を有することを特徴とする、請求項１または２に記載のデータ処理装置。
【請求項５】
前記累積処理手段に入力される前記データパケットの前記命令情報は、前記複数累算器のうち前記算術演算結果を累算するための１つ以上の累算器を指定する累算器指定データを含み、
前記複数累算器のうち、前記累算器指定データにより指定された１つ以上の前記累算器が能動化されることを特徴とする、請求項４に記載のデータ処理装置。
【請求項６】
前記累積処理手段に入力される前記データパケットの前記命令情報は、前記複数テーブルにおける前記データの読出開始アドレスを指定するデータを含むことを特徴とする、請求項１ないし５のいずれかに記載のデータ処理装置。
【請求項７】
前記累積処理手段に入力される前記データパケットの前記命令情報は、前記複数テーブルから読出されたデータから、前記算術演算のオペランドのデータを選択するためのデータを含み、
前記算術演算は、前記選択するためのデータに基づいて選択されたデータについて実行されることを特徴とする、請求項１ないし６のいずれかに記載のデータ処理装置。
【請求項８】
前記選択するためのデータにより、前記算術演算のオペランドのデータとして、同一の前記テーブルから読出されたデータが選択されることを特徴とする、請求項７に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ処理装置に関し、特に、算術演算結果についての複数個の総和を求める演算処理機能を有したデータ処理装置に関する。
【０００２】
【従来の技術】
本出願人により、データ駆動型情報処理装置における積和演算（複数個の積の総和を求めるための演算処理）を実行するための技術が、特開平６−６０２０６号公報と特開平８−３２９０３８号公報に開示される。これらの公報に開示の内容に沿って、データ駆動型情報処理装置における積和演算を説明する。
【０００３】
データ駆動型情報処理装置は、実行可能になったデータから順に処理を行なう。そのためデータの入力順序に関係なくプログラムを実行できるので並列にデータ処理を行なうことができる。
【０００４】
図１４は、特開平６−６０２０６号公報に開示のデータ駆動型情報処理装置の構成図である。図１５（Ａ）および（Ｂ）は、図１４に示されたデータ駆動型情報処理装置におけるデータパケットのフィールド構成図である。図１５（Ａ）のデータパケット３６は世代情報が格納されるフィールド５１Ｆ、命令情報が格納されるフィールド５２Ｆ、行先情報が格納されるフィールド５３Ｆおよびデータが格納されるフィールド５４Ｆを含む。図１５（Ｂ）のデータパケット３８は、データパケット３６のフィールド５４Ｆに代替して、それぞれデータが格納されるフィールド５４ＦＡと５４ＦＢを含む。
【０００５】
図１４のデータ駆動型情報処理装置は入出力制御部１、プログラム記憶部２、データ対生成部３および演算部４を含む。データ駆動型情報処理装置は、データパケット３６または３８により外部とデータの受渡しを行う。入出力制御部１は該情報処理装置外部または演算部４から入力するデータパケット３６を一時的に記憶し、そのデータパケットの世代情報および行先情報を読取り、読取った情報に基づいて該データパケット３６を該情報処理装置外部またはプログラム記憶部２へ選択的に出力する。
【０００６】
プログラム記憶部２は行先情報と命令情報からなる複数組を有するデータフロープログラムを記憶する。プログラム記憶部２は、図１５（Ａ）のデータパケット３６を入力すると、該入力データパケット３６の行先情報に基づいたアドレス指定によって、データフロープログラムから次位の行先情報および次位の命令情報を読出し、読出された行先情報および命令情報を該入力データパケット３６のフィールド５３Ｆおよびフィールド５２Ｆにそれぞれ格納して、該入力データパケット３６を出力する。
【０００７】
データ対生成部３は、プログラム記憶部２から出力されるデータパケット３６を入力して、該入力データパケット３６のフィールド５２Ｆの命令情報に基づいて必要と判定されるときには、該命令情報の実行のためのデータをデータフィールド５４Ｆに格納して、該入力データパケット３６を出力するが、そうでないときには、該入力データパケット３６はそのまま出力される。
【０００８】
具体的には、データ対生成部３は、プログラム記憶部２から出力されたデータパケット３６を入力して、その命令情報に基づいて必要に応じてデータパケット３６の待合せを行なう。すなわち、命令情報に基づいて、待合わせが必要と判断されたときには、世代情報および行先情報が一致する異なる２つのデータパケット３６の検出を行ない、検出された２つのデータパケット３６のうちの一方のデータパケット３６のフィールド５４Ｆの内容を他方のデータパケット３６のフィールド５４Ｆに追加して格納し、この他方のデータパケット３６を、図１５（Ｂ）のデータパケット３８の構成にして出力する。一方、待合わせが必要ないと判断されたときには、待合わせは行なわれず、該入力データパケット３６は、そのまま出力される。
【０００９】
演算部４は、データ対生成部３から出力されたデータパケット３８または３６を入力し、入力データパケットのフィールド５２Ｆに格納された命令情報を解読し、その解読結果に基づいて該入力データパケットに格納されたデータを演算処理して、その演算結果を該入力データパケットにデータとして格納して、図１５（Ｂ）のデータパケット３６の形式にして出力する。
【００１０】
このようにして、データパケット３６または３８が入出力制御部１→プログラム記憶部２→データ対生成部３→演算部４→入出力制御部１→…と巡回し続けることにより、プログラム記憶部２に記憶されたデータフロープログラムに基づく演算処理が進行する。
【００１１】
プログラム記憶部２に記憶されるデータフロープログラムは、データパケットの流れを記述することによって示される。このプログラム記述をデータフローグラフと呼ぶ。図１６は、図１４のデータ駆動型情報処理装置において実行される積和演算に対応のデータフローグラフである。図１６のデータフローグラフは、ノードＮＤ１〜ＮＤ５およびＮＤ１０と、各ノードを接続する矢印を有する。矢印はデータの流れを示す。ノードＮＤ１とＮＤ２は、データを入力するための入力ノードを示し、ノードＮＤ１０はデータを出力するための出力ノードを示す。ノードＮＤ３〜ＮＤ５には、演算部４において実行される命令情報がそれぞれ割当てられる。ノードＮＤ３〜ＮＤ５のそれぞれに割当てられた命令情報に従う演算を実行するために、対応するデータパケットは図１４の入出力制御部１〜演算部４からなるループを巡回する。したがって、図１６に示されるデータフローグラフに従い１回の積和演算を行なうためには、図１４に示されたデータ駆動型情報処理装置のループを２回以上巡回する必要がある。
【００１２】
図１４のデータ駆動型情報処理装置と図１６のデータフローグラフを参照して、次の式（１）に従う積和演算の手順を説明する。
【００１３】
ＡＣＣ＝ＡＣＣ＋Ｘ＊Ｙ  …（式１）
ただしＡＣＣは累算結果データ、ＸおよびＹはオペランド（被演算データ）を示す。
【００１４】
上述の式１を図１４のデータ駆動型情報処理装置で実行する場合は、図１６のデータフローグラフにおいて、ノードＮＤ１とノードＮＤ２に“Ｙ”と“Ｘ”のそれぞれが割当てられて、ノードＮＤ３に“Ｘ”および“Ｙ”が与えられて、ノードＮＤ３に割当てられた命令情報（乗算命令“ＭＵＬ”）が実行されて、その演算結果が得られる。この期間のデータの流れは、フィールド５４Ｆに“Ｘ”を格納したデータパケット３６が入出力制御部１を経由してプログラム記憶部２に出力されると、プログラム記憶部２においてはデータパケット３６は行先情報に基づくアドレス指定により、次位の命令情報および行先情報が読出されて、該データパケット３６のフィールド５２Ｆおよび５３Ｆのそれぞれに格納されて、該データパケット３６はデータ対生成部３に出力されて、データ対生成部３において対となるデータ（“Ｙ”）を格納したデータパケット３６の入力を待つ。
【００１５】
上述と同様の手順で、フィールド５４Ｆに“Ｙ”を格納したデータパケットが、入出力制御部１を経由してプログラム記憶部２に与えられ、ここで次位の命令情報および行先情報が格納されて、データ対生成部３に出力されると、データ対生成部３においては、予め待機していた“Ｘ”を格納したデータパケット３６とデータ対が検出されて、データ対（“Ｘ”と“Ｙ”）をフィールド５４ＦＡと５４ＦＢに格納したデータパケット３８が生成されて、演算部４に出力され、ここで、該データパケット３８の命令情報に従い、“Ｘ”と“Ｙ”が乗算されて、乗算結果をフィールド５４Ｆに格納したデータパケット３６が入出力制御部１に出力される。
【００１６】
上述のようにして得られた乗算結果の図１６のデータフローグラフにおける流れは以下のようになる。すなわち、乗算結果は、矢印に従ってノードＮＤ５の左側に入り、ノードＮＤ５の右側の入力にはノードＮＤ４の累算結果の値が入力される。ノードＮＤ５に割当てられた命令情報（“ＡＤＤ”で示される加算命令）に従い、前述した命令情報（“ＭＵＬ”）で行なわれたのと同様の手順で、乗算結果と累算結果の内容が加算処理される。その後、この加算結果をノードＮＤ４に与えて、ここで保存する。この保存についても１つの演算とみなしている。したがって、図１６のデータフローグラフに従えば、１回の積和演算を実行するために、データは図１４のデータ駆動型情報処理装置のループを３回巡回する必要がある。
【００１７】
特開平６−６０２０６号公報と特開平８−３２９０３８号公報に開示の技術では、上述したループの巡回回数を削減することにより演算の高速化が達成される。
【００１８】
特開平６−６０２０６号公報においては、図１４の演算部４に累算器を設けることで積和演算を実行している。このような累算器内蔵の演算部４を用いたデータ駆動型情報処理装置で積和演算を実行するためのデータフローグラフは、図１７に示される。図１７のデータフローグラフでは、図１６のノードＮＤ３〜ノードＮＤ５が１つのノードＮＤ７によって示されて、ノードＮＤ７に割当てられた命令情報（“ＭＵＬＡ”の積和演算命令）を実行するのみで積和演算が達成されることを示している。
【００１９】
図１７のデータフローグラフに従って、前述した式１を実行する場合は、次のようにデータが流れる。つまり、ノードＮＤ７へ入る２つの矢印にそれぞれ“Ｘ”と“Ｙ”が割当てられて、積和演算命令（“ＭＵＬＡ”）が実行される。
【００２０】
具体的には、図１４のデータ駆動型情報処理装置において、フィールド５４Ｆに“Ｘ”を格納したデータパケット３６が入出力制御部１を経由してプログラム記憶部２に与えられて、ここで次位の行先情報および命令情報がフィールド５３Ｆおよび５２のそれぞれに格納されて、該データパケット３６はデータ対生成部３に出力されて、ここで、対となるデータ（“Ｙ”）の入力を待つ。
【００２１】
上述と同様の手順により、フィールド５４Ｆに“Ｙ”を格納したデータパケット３６は入出力制御部１を経由してプログラム記憶部２に与えられ、ここで次位の行先情報および命令情報がフィールド５３Ｆおよび５２Ｆそれぞれに格納されて、該データパケット３６はデータ対生成部３に与えられて、予め待機していた“Ｘ”を格納したデータパケット３６と対検出されて、フィールド５４ＦＡと５４ＦＢに“Ｘ”と“Ｙ”を格納したデータパケット３８が得られて、演算部４に出力される。
【００２２】
演算部４では入力したデータパケット３８の内容に基づいて演算し、演算結果をフィールド５４Ｆに格納したデータパケット３６を出力する。このとき、演算部４においては、“Ｘ”と“Ｙ”による乗算結果は演算部４内にある累算器により累算されて、累算器による累算結果値がフィールド５４Ｆに格納されたデータパケット３６が出力される。
【００２３】
このように、累算器を内蔵した演算部４を用いることにより、図１７に従う積和演算処理は、図１６のデータフローグラフに従う積和演算処理に比べて１／３のループの巡回で演算を終了させることができる。
【００２４】
また、特開平８−３２９０３８号公報に開示のデータ処理装置では、データパケットにおいて累算器の役割を果たすフィールドを追加して設けることにより、積和演算を実現している。この公報に開示のデータ駆動型情報処理装置は、演算部４が図１８のように改良されている。演算部４は演算回路２４、加算回路２８、シフタ３０およびセレクタ３２を含む。演算部４に与えられるデータパケット４２は前述したフィールド５１Ｆ〜５３Ｆと、データを格納するフィールド６２Ｆおよび６４Ｆ、積和演算の累積結果データＡＣＣを格納するフィールド６６Ｆを含む。演算部４から出力されるデータパケット４０は、前述したフィールド５１Ｆ〜５３Ｆと、データを格納するフィールド５８Ｆ、累積結果データＡＣＣを格納するフィールド６０Ｆを含む。
【００２５】
演算部４に与えられたデータパケット４２のフィールド５２Ｆの命令情報は、演算回路２４、シフタ３０およびセレクタ３２に対して、演算回路２４で実行される演算の内容、シフタ３０によるシフト量およびセレクタ３２による入力データの選択およびデータの出力先の選択に関する情報それぞれを与える。
【００２６】
動作において演算部４に与えられるデータパケット４２内のフィールド６２Ｆと６４Ｆに格納されたオペランド（“Ｘ”および“Ｙ”）は演算回路２４に与えられて対応の命令情報に従って処理され、その結果が加算器２８により対応の累算結果データＡＣＣに加えられる。加算結果は、シフタ３０によって対応の命令情報で示されるシフト量に従ってシフト処理された後、セレクタ３２に与えられる。セレクタ３２はシフタ３０の出力値、加算器２８の出力値およびフィールド６６Ｆの累算結果データＡＣＣが与えられて、対応の命令情報５２に基づいていずれの入力を選択するかに応じて、出力データパケット４０のフィールド６０Ｆの値を更新したり、フィールド５８Ｆに結果を出力したり、フィールド５８Ｆにシフタ３０の出力を格納させ、フィールド６０Ｆには加算器２８の出力を格納させたりできる。
【００２７】
このようにデータパケット４２または４０の中に累算結果データＡＣＣを格納するデータフィールド６０Ｆまたは６６Ｆを設けることにより、データパケットは大きくなるが、データの順序などの制約がなくなって、効率的な積和演算を行なうことができる。
【００２８】
【発明が解決しようとする課題】
上述した従来の積和演算処理は主に画像データ処理に適用されること、およびデータパケットの情報処理装置内における滞留に起因した処理効率の低下を防止するという目的を有することなどのために、１回の演算で１積和演算を行なっている。そのため複数回の積を実行する場合には、データパケットは積の回数分データ駆動型情報処理装置内を巡回する必要があった。このように積の回数分データ駆動型情報処理装置内を巡回する方式では、ＦＩＲ（Finite  Impulse  Response）フィルタ処理などのように１回の積和演算で積の実行回数が増える処理には不向きであった。たとえば、高々１０タップ（積和実行回数が１０回）のＦＩＲフィルタ処理であっても、データパケットはデータ駆動型情報処理装置内を１０回巡回する必要がある。これはデータパケットが入出力制御部１〜演算部４の各部を１０回通過することを意味する。各部を通過する時間が均等であると仮定して１単位時間とすると、データ駆動型情報処理装置内を１０回巡回すると４０単位時間も必要となる。
【００２９】
それゆえに、この発明の目的は、複数個の算術演算結果の総和を高速に算出することのできるデータ処理装置を提供することである。
【００３０】
【課題を解決するための手段】
この発明の或る局面に係るデータ処理装置は、複数の行先情報および複数の命令情報からなるデータフロープログラムを記憶し、行先情報を格納するための行先フィールド、命令情報を格納するための命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するデータパケットを入力して、該入力データパケットの行先フィールドの内容に基づくアドレス指定により、データフロープログラムから次位の行先情報および次位の命令情報を読出し、該入力データパケットの行先フィールドおよび命令フィールドのそれぞれに格納して、該入力データパケットを出力するプログラム記憶手段と、
プログラム記憶手段から出力されるデータパケットを入力して、該入力データパケットの前記命令フィールドの命令情報の実行のために必要とされる内容を格納して該入力データパケットを出力する対データ検出手段と、
データが登録された複数のテーブルを有し、データパケットを入力して、該入力データパケットの命令フィールドの命令情報に基づいて、複数テーブルから読出されたデータを算術演算して算術演算結果を累算する累積演算を繰返して、繰返された累積演算結果を該入力データパケットのデータフィールドに格納して、該入力データパケットを出力する累積処理手段と、
データパケットを入力して、該入力データパケットの命令フィールドの命令情報に従い、対応のデータフィールドのデータを処理して、処理結果データを該データフィルードに格納して、該入力データパケットを出力する演算手段と、
対データ検出手段から出力されたデータパケットを入力して、該入力データパケットの命令フィールドの命令情報に従い、該入力データパケットを累積処理手段および演算手段のいずれか一方に出力する分岐手段と、
累積処理手段および演算手段から出力されたデータパケットを入力して、外部またはプログラム記憶部に出力する入出力制御手段とを備える。
【００３１】
したがって、データを算術演算して算術演算結果を累算する累積演算を繰返す処理は、累積処理手段においてのみ実行されて、この繰返し期間においてデータパケットがデータ処理装置の各手段を巡回する必要はない。それゆえに、データを算術演算して算術演算結果を累算して総和を求める累積演算を高速に処理できる。
【００３２】
また、累積処理手段で、データを算術演算して算術演算結果を累算する累積演算が繰返されている間でも、演算手段においては他の処理が並行して実行される。それゆえに、データを算術演算して算術演算結果を累算する累積演算が繰返されている間でも、装置におけるデータパケットの滞留は抑制されて、データパケットを用いたデータフロープログラムに従う次位の命令情報に従う処理を進行させることができる。
【００３３】
上述のデータ処理装置において、累積処理手段に入力されるデータパケットの命令情報は、累積演算の繰返し回数を指定するデータを含むことを特徴とする。
【００３４】
したがって、累積処理手段における累積演算の繰返し回数は、累積処理手段に与えるデータパケットの命令情報を用いて指定される。該命令情報は、プログラム記憶部に記憶されたデータフロープログラムから読出される情報であるから、データフロープログラムを用いて、この繰返し回数を任意に指定することができる。
【００３５】
上述のデータ処理装置において、累積処理手段は、累積演算の繰返し期間において、与えられる算術演算結果を順次入力して累算して累算結果を保持する累算器を有することを特徴とする。
【００３６】
したがって、累算器を有することにより、累算器に累算結果を保持することができる。
【００３７】
上述のデータ処理装置では、累積処理手段は、累積演算の繰返し期間において、与えられる算術演算結果を順次入力して累算して累算結果を保持する複数の累算器を有することを特徴とする。
【００３８】
したがって、累積処理手段においては、複数の累算結果を保持することができる。それゆえに、複数の累積演算を並列に実行できるから、データ処理を高速に行なうことができる。
【００３９】
上述のデータ処理装置では、累積処理手段に入力されるデータパケットの命令情報は、複数累算器のうち算術演算結果を累算するための１つ以上の累算器を指定する累算器指定データを含み、複数累算器のうち、累算器指定データにより指定された１つ以上の累算器が能動化されることを特徴とする。
【００４０】
したがって、累積処理手段に与えるデータパケットの命令情報を用いて、すなわち上述したようにプログラム記憶部に記憶されるデータフロープログラムを用いて、複数累算器のうち累算結果を保持するために能動化される累算器を任意に指定できる。それゆえに、複数の累積演算が並列に実行される場合には、能動化される累算器をこの並列の程度に応じて任意に指定することができる。
【００４１】
上述のデータ処理装置において、累積処理手段に入力されるデータパケットの命令情報は、複数テーブルにおけるデータの読出開始アドレスを指定するデータを含むことを特徴とする。
【００４２】
したがって、累積処理手段に与えるデータパケットの命令情報を用いて、すなわち上述と同様にプログラム記憶部に記憶されるデータフロープログラムを用いて、複数テーブルにおけるデータの読出開始アドレスを任意に指定できる。それゆえに、複数テーブルに登録されたデータについて、累積演算の対象となるデータを処理内容に応じて任意に指定して読出すことができる。
【００４３】
上述のデータ処理装置では、累積処理手段に入力されるデータパケットの命令情報は、複数テーブルから読出されたデータから、算術演算のオペランドのデータを選択するためのデータを含み、算術演算は、選択するためのデータに基づいて選択されたデータについて実行されることを特徴とする。
【００４４】
したがって、累積処理手段においては、算術演算のオペランドデータは、複数テーブルから読出されたデータのうちからデータパケットの命令情報を用いて、すなわち上述と同様にプログラム記憶部に記憶されるデータフロープログラムを用いて選択される。
【００４５】
それゆえに、複数テーブルから読出されたデータから、算術演算のオペランドデータを処理内容に応じて任意に選択することができる。
【００４６】
上述のデータ処理装置では、選択するためのデータにより、算術演算のオペランドのデータとして、同一のテーブルから読出されたデータが選択されることを特徴とする。それゆえに、同一テーブルから読出されたデータが算術演算のオペランドデータとして選択された場合に、該算術演算が乗算であった場合には、２乗計算（パワー計算）結果を累算できる。
【００４７】
【発明の実施の形態】
以下、この発明の各実施の形態について図面を参照して説明する。ここでは、前述したデータパケット３６または３８が用いられるが、説明を簡単にするために世代情報を参照した処理は省略される。
【００４８】
（実施の形態１）
まず、実施の形態１について説明する。
【００４９】
本実施の形態１では、演算装置にデータテーブルを２個設けて、積和演算に必要な積の繰返し回数を示す定数データＣＮを入力して、積和演算結果を出力する積和演算器が設けられる。具体的には定数データＣＮを用いて演算式（ＡＣＣ＝ＡＣＣ＋Ｘ（ｉ）＊Ｙ（ｉ）、ただしｉ＝０〜（ＣＮ−１））に従う演算を行ない、累算結果データＡＣＣを求める。
【００５０】
図１は、この発明の各実施の形態に係るデータ駆動型情報処理装置の構成図である。図１のデータ駆動型情報処理装置は入出力制御部１、プログラム記憶部２Ａ（２Ｂ、２Ｃ、２Ｄ）、データ対生成部３、演算部４、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）、分岐部６および合流部７を備える。プログラム記憶部２Ａ、２Ｂ、２Ｃおよび２Ｄは実施の形態１、２、３および４それぞれに適用されて、積和演算部５Ａ、５Ｂ、５Ｃおよび５Ｄは実施の形態１、２、３および４それぞれに適用される。
【００５１】
分岐部６はデータ対生成部３から出力されたデータパケットを入力して、該入力データパケットの命令情報に基づいて演算部４および積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）のいずれか一方に出力する。具体的には、分岐部６は入力データパケットの命令情報が積和演算命令を示すときには、データパケットを積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）に出力し、それ以外のときには演算部４に出力する。合流部７は、演算部４および積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）のそれぞれから出力されたデータパケットを入力して、順次、入出力制御部１に出力する。
【００５２】
なお、積和演算部５Ｂと５Ｃと５Ｄならびにプログラム記憶部２Ｂと２Ｃと２Ｄについては、後述の実施の形態２と３と４で説明する。
【００５３】
図２は、本実施の形態１に係る積和演算部５Ａの構成図である。図２において積和演算部５Ａは入力バッファ５１、アクセス処理部５２Ａ、変数Ｘ（ｉ）（ただし、ｉ＝１、２、３、…、ｎ）を格納するデータテーブル５３、変数Ｙ（ｉ）を格納するデータテーブル５４、乗算器５５、アキュムレータ５６Ａおよび出力バッファ５７を備える。入力バッファ５１と出力バッファ５７には、分岐部６から出力されたデータパケット３６が入力される。図３は、図２のアクセス処理部５２Ａの構成図である。
【００５４】
図４は本実施の形態１に係るプログラム記憶部２Ａの内容例を示す図である。図４においてプログラム記憶部２Ａには、複数の行先情報および複数の命令情報からなるデータフロープログラムが予め格納される。本実施の形態１では、積和演算命令実行時には、データパケット３６の行先情報に基づくアドレス指定により、プログラム記憶部２Ａのデータフロープログラムから次位の行先情報および積和演算のための命令コードＭＵＬＡと定数データＣＮからなる次位の命令情報が読出されて、読出された次位の行先情報と次位の命令情報は、該入力データパケット３６のフィールド５３Ｆと５２Ｆにそれぞれ格納されて、該データパケット３６が出力される。なお、定数データＣＮは、累積演算の繰返し回数を規定する。この累積演算は、データテーブル５３と５４からデータＸ（ｉ）とＹ（ｉ）を読出して乗算器５５で乗算して乗算結果データＸ（ｉ）＊Ｙ（ｉ）をアキュムレータ５６Ａで累算するという一連の処理を指す。
【００５５】
プログラム記憶部２Ａから命令コードＭＵＬＡを格納したデータパケット３６が出力されると、データパケット３６はデータ対生成部３を通過して、すなわちデータ対生成部３でデータを待つことなく、分岐部６に与えられるので、分岐部６は与えられるデータパケット３６を入力し、該入力データパケット３６の命令コードＭＵＬＡに従い、該入力データパケット３６を積和演算部５Ａに与える。
【００５６】
図２において、分岐部６から積和演算部５Ａに与えられたデータパケット３６は、入力バッファ５１と出力バッファ５７に格納される。入力バッファ５１にデータパケット３６が格納されると、該データパケット３６のフィールド５２Ｆの定数データＣＮはアクセス処理部５２Ａに与えられる。データテーブル５３は、ｎ（ただし、ｎ≧ＣＮ）個の領域を有し、各領域には積和演算に必要とされるデータＸ（ｉ）が予め格納されて、同様にデータテーブル５４にはデータＹ（ｉ）が予め格納される。アクセス処理部５２Ａは、与えられる定数データＣＮに基づいてアクセスのための信号ＲＳ（ｉ）を順次生成して、信号ＲＳ（ｉ）に基づいてデータテーブル５３と５４を並列にアクセスする。これにより、データテーブル５３と５４からはデータＸ（ｉ）とＹ（ｉ）が出力されて、乗算器５５に与えられる。アクセス処理部５２Ａは、定数データＣＮに基づいてデータテーブル５３と５４のデータの読出を終了すると、信号ＯＵＴをアキュムレータ５６Ａに出力する。
【００５７】
乗算器５５は、与えられるデータＸ（ｉ）とＹ（ｉ）を入力して、乗算して、乗算結果データＸ（ｉ）＊Ｙ（ｉ）をアキュムレータ５６Ａに与える。アキュムレータ５６Ａは、入力バッファ５１にデータパケット３６が入力されるごとに、たとえば値０が格納されることで初期化される。初期化後は、乗算器５５から与えられる乗算結果データＸ（ｉ）＊Ｙ（ｉ）を入力して、予め格納されている内容と加算して、加算結果を格納する。その後は、乗算結果データＸ（ｉ）＊Ｙ（ｉ）が与えられるごとに該処理を繰返す。
【００５８】
アキュムレータ５６Ａは、その後、アクセス処理部５２から信号ＯＵＴを入力すると、そのとき格納されている内容を累算結果データＡＣＣとして出力バッファ５７に与える。出力バッファ５７に格納されている入力データパケット３６のフィールド５４Ｆには、与えられる累算結果データＡＣＣが格納されて、その後該データパケット３６は出力バッファ５７から合流部７に出力される。
【００５９】
なお、ここでは、アキュムレータ５６Ａは値０に初期化されるとしているが、初期化の値はこれに限定されない。たとえば、前回の累算結果の値をそのまま保持していてもよい。
【００６０】
図３において、アクセス処理部５２Ａは変数ｉのためのレジスタ６１、比較器６２、読出部６３およびインクリメンタ６４を含む。レジスタ６１の変数ｉには、データテーブル５３と５４の先頭アドレスを指示するための値１が予め格納されている。動作において、比較器６２は入力バッファ５１から与えられる定数データＣＮと、インクメンタ６４または入力バッファ６１から与えられる変数ｉとを（ｉ＞ＣＮ）に従い値比較して、比較結果が（ｉ≦ＣＮ）である間は変数ｉを読出部３６に与えるが、そうでなければ信号ＯＵＴをアキュムレータ５６に与える。
【００６１】
読出部６３では変数ｉを入力して、入力した変数ｉに基づいて信号ＲＳ（ｉ）をデータテーブル５３と５４に出力するとともに、入力した変数ｉをインクリメンタ６４に与える。インクリメンタ６４は与えられる変数ｉを入力して、１インクリメントして、インクリメント後の変数ｉを比較器６２に与える。
【００６２】
したがって、積和演算部５Ａにおいて、命令コードＭＵＬＡと定数データＣＮからなる１つの命令情報が実行されると、演算式（ＡＣＣ＝ＡＣＣ＋Ｘ（ｉ）＊Ｙ（ｉ）、ただしｉ＝１〜ＣＮ）に従う積和演算が行なわれて、データテーブル５３と５４内のデータに関する積和演算結果を示す累算結果データＡＣＣを求めることができる。
【００６３】
（実施の形態２）
次に、実施の形態２について説明する。
【００６４】
実施の形態２では、定数データＫおよびＣＮが用いられる。本実施の形態では、累算器が複数設けられて、このうち１回の積和演算のために使用される累算器は定数データＫにより指定される。本実施の形態では、演算式（ＡＣＣ（ｋ）＝ＡＣＣ（ｋ）＋Ｘ（ｉ）＊Ｙ（ｉ）、ただしｉ＝１〜ＣＮ）に従う処理が行なわれることによって、指定された累算器についての累算結果データＡＣＣ（ｋ）が求められる。
【００６５】
図５は本実施の形態２に係る積和演算部５Ｂの構成図である。図において積和演算部５Ｂは、入力バッファ５１、アクセス処理部５２Ｂ、データテーブル５３、データテーブル５４、乗算器５５、アキュムレータ群５６Ｂおよび出力バッファ５７を備える。入力バッファ５１、出力バッファ５７、データテーブル５３、データテーブル５４および乗算器５５は実施の形態１と同様なので説明は省略する。図６は図５のアクセス処理部５２Ｂの構成図である。
【００６６】
図７は本実施の形態２に係るプログラム記憶部２Ｂの内容例を示す図である。図７においてプログラム記憶部２Ｂには前述と同様にデータフロープログラムが予め記憶される。本実施の形態２では積和演算命令実行時にはデータパケット３６の行先情報に基づくアドレス指定により、プログラム記憶部２Ｂのデータフロープログラムから、次位の行先情報および命令コードＭＵＬＡと定数データＣＮと定数データＫからなる次位の命令情報が読出されて、次位の行先情報と命令情報は該入力データパケット３６のフィールド５３Ｆと５２Ｆにそれぞれ格納されて、該データパケットが出力される。なお、定数データＫは、後述するようにアキュムレータ群５６Ｂ中の能動化されるアキュムレータを指定するための情報である。
【００６７】
分岐部６から積和演算部５Ｂにデータパケット３６が与えられると、与えられたデータパケット３６は入力バッファ５１と５７にそれぞれ格納される。データパケット３６が入力バッファ５１に格納されると、該データパケット３６のフィールド５２Ｆ中の定数データＣＮとＫはアクセス処理部５２Ｂに与えられる。アクセス処理部５２Ｂは、与えられる定数データＣＮに基づいて信号ＲＳ（ｉ）を順次生成して、生成された信号ＲＳ（ｉ）に基づいてデータテーブル５３と５４からデータＸ（ｉ）とＹ（ｉ）を順次読出して、乗算器５５に与える。アクセス処理部５２Ｂは定数データＣＮに基づいて、データテーブル５３と５４についての読出を終了すると、信号ＯＵＴをデータパケット群５６Ｂに出力する。乗算器５５は与えられたデータＸ（ｉ）とＹ（ｉ）を入力して乗算して、乗算結果データＸ（ｉ）＊Ｙ（ｉ）をアキュムレータ群５６Ｂに与える。
【００６８】
アキュムレータ群５６Ｂは複数の積和演算結果のデータを保存するために、複数のアキュムレータＡＣ（ｋ）（ｋ＝１、２、３、…、ｍ）を有する。アキュムレータ群５６Ｂでは、定数データＫが与えられると、与えられた定数データＫに基づいて指定される１つ以上のアキュムレータＡＣ（ｋ）が能動化される。乗算器５５から出力された乗算結果データＸ（ｉ）＊Ｙ（ｉ）はアキュムレータ群５６ＢのすべてのアキュムレータＡＣ（ｋ）に与えられるが、定数データＫにより能動化されたアキュムレータＡＣ（ｋ）のみが、与えられる乗算結果データＸ（ｉ）＊Ｙ（ｉ）を入力することができる。
【００６９】
したがって、アキュムレータ群５６Ｂでは定数データＫにより能動化された１つ以上のアキュムレータＡＣ（ｋ）においてのみ、実施の形態１と同様に乗算結果データＸ（ｉ）＊Ｙ（ｉ）について累算処理が行なわれる。その後、アキュムレータ群５６Ｂに信号ＯＵＴが与えられると、能動化されていたアキュムレータＡＣ（ｋ）それぞれは、該信号ＯＵＴの入力に応答して、そのとき格納していた累算結果データＡＣＣ（ｋ）を出力バッファ５７に与える。
【００７０】
出力バッファ５７では、与えられる累算結果データＡＣＣ（ｋ）それぞれは、出力バッファ５７に予め格納されているデータパケット３６のフィールド５４Ｆに格納される。その後、該データパケット３６は出力バッファ５７から合流部７に出力される。
【００７１】
図５では、定数データＫはたとえば３を示しているので、アキュムレータ群５６ＢのアキュムレータＡＣ（１）、ＡＣ（２）およびＡＣ（３）の３個のアキュムレータが能動化された状態が示される。
【００７２】
なお、ここでも、実施の形態１と同様にアキュムレータ群５６ＢのアキュムレータＡＣ（ｋ）のそれぞれは値０に初期化されるとしているが、初期化の値はこれに限定されないし、前回の累算結果の値はそのまま保持していてもよい。
【００７３】
図６においてアクセス処理部５２Ｂと前述したアクセス処理部５２Ａと比較し異なる点は、アクセス処理部５２Ｂには入力バッファ５１から定数データＣＮとＫが与えられて、定数データＣＮは前述と同様に比較器６２に与えられるが、定数データＫはアクセス処理部５２Ｂを通過してアキュムレータ群５６Ｂに与えられる。アクセス処理部５２Ｂの他の構成はアクセス処理部５２Ａのそれと同様なので説明は省略する。
【００７４】
なお、ここでは定数データＫはアクセス処理部５２Ｂを介してアキュムレータ群５６Ｂに与えられるとしたが、アクセス処理部５２Ｂを介さずに直接にアキュムレータ群５６Ｂに与えられるようにしてもよい。
【００７５】
また、定数データＫはアキュムレータ群５６Ｂの能動化されるアキュムレータの数を示すデータであってもよいし、能動化される１つ以上のアキュムレータＡＣ（ｋ）それぞれを一意に特定するためのデータであってもよい。
【００７６】
本実施の形態２では、積和演算部５Ｂの入力に積和演算に用いられる１つ以上のアキュムレータＡＣ（ｋ）を指定するためのデータが追加されるから、アキュムレータ群５６Ｂにおいて複数の累算結果データＡＣＣ（ｋ）を算出して保存することができる。実施の形態１では１つのアキュムレータ５６しか備えないので、複数の積和演算の実行が必要とされる場合には、１回の積和演算が終了するまで次の積和演算を開始することができないから、演算順序を制御するなどの制約が必要とされてソフトウェアが複雑になるかもしれない。これに対して、本実施の形態２では、上述したような複数の累算結果データＡＣＣ（ｋ）を並列に算出して保持することができるから、このような課題を解消することができる。
【００７７】
（実施の形態３）
次に実施の形態３について説明する。
【００７８】
実施の形態３では、データテーブル５３と５４について任意の読出開始アドレスｉ１およびｊ１を入力することにより、任意のアドレスのデータから積和演算を開始できる積和演算器が示される。具体的には、定数データｉ１、ｊ１およびＣＮを用いて演算式（ＡＣＣ＝ＡＣＣ＋Ｘ（ｉ）＊Ｙ（ｉ）、ただしｉ＝ｉ１〜（ｉ１＋ＣＮ―１）およびｊ１＝ｊ１〜（ｊ１＋ＣＮ―１））に従う演算を行なうことにより、累算結果データＡＣＣを得ることができる。
【００７９】
図８は、本実施の形態３に係る積和演算部５Ｃの構成図である。積和演算部５Ｃの構成と実施の形態１に係る図２の積和演算部５Ａの構成とを比較し異なる点は、積和演算部５Ａのアクセス処理部５２Ａに代替してアクセス処理部５２Ｃを備えている点にある。積和演算部５Ｃの他の構成は積和演算部５Ａのそれと同様なので説明は省略する。図９は、図８のアクセス処理部５２Ｃの構成図である。
【００８０】
図１０は本実施の形態３に係るプログラム記憶部２Ｃの内容例を示す図である。図１０においてプログラム記憶部２Ｃには前述と同様にデータフロープログラムが予め格納される。本実施の形態３では、積和演算命令実行時には、データパケット３６の行先情報に基づくアドレス指定により、プログラム記憶部２Ｃのデータフロープログラムから次位の行先情報と、命令コードＭＵＬＡと定数データｉ１、ｊ１およびＣＮとからなる次位の命令情報とが読出されて、読出された次位の行先情報と命令情報はデータパケット３６のフィールド５３Ｆと５２Ｆにそれぞれ格納されて、データパケット３６は出力される。
【００８１】
なお、定数データＣＮは前述と同様であるが、定数データｉ１とｊ１はデータテーブル５３と５４からのデータの読出開始アドレスを示す。前述した各実施の形態では、データテーブル５３と５４の先頭アドレスがデータの読出開始アドレスに固定されているが、本実施の形態ではデータの読出開始アドレスは定数データｉ１およびｊ１のそれぞれにより任意に指定される。
【００８２】
アクセス処理部５２Ｃは与えられる定数データＣＮ、ｉ１およびｊ１に基づいてデータテーブル５３および５４をアクセスするための信号ＲＸ（ｉ）とＲＹ（ｊ）を生成して、生成された信号ＲＸ（ｉ）とＲＹ（ｊ）に基づいてデータテーブル５３と５４からデータＸ（ｉ）とＹ（ｊ）を並列に読出して乗算器５５に与える。乗算器５５とアキュムレータ５６Ａにおいては、前述と同様にデータＸ（ｉ）とＹ（ｊ）の乗算とその乗算結果データＸ（ｉ）＊Ｙ（ｊ）の累算処理が行なわれて、累算結果データＡＣＣは出力バッファ５７に与えられる。したがって、出力バッファ５７からは、積和演算部５Ｃに入力したデータパケット３６が、そのフィールド５４Ｆに積和演算結果データＡＣＣを格納した状態で、合流部７に出力される。
【００８３】
図９を参照して、アクセス処理部５２Ｃは変数ｉとｊのためのレジスタ６１Ｃ、比較器６２Ｃ、読出部６３Ｃおよびインクリメンタ６４Ｃを含む。動作において、入力バッファ５１にデータパケット３６が入力すると、入力バッファ５１から出力される定数データＣＮは比較器６２Ｃに与えられ、同様にして入力バッファ５１から出力される定数データｉ１とｊ１はレジスタ６１Ｃと比較器６２Ｃに与えられる。
【００８４】
レジスタ６１Ｃでは、変数ｊには与えられた定数データｊ１が設定されて変数ｉには与えられた定数データｉ１が設定される。レジスタ６１Ｃにおいて設定された内容は比較器６２Ｃに与えられる。比較器６２Ｃでは、与えられる変数ｉとｊと定数データＣＮとに基づいて（ｊ−ｊ１）≧ＣＮと（ｉ−ｉ１）≧ＣＮが成立しなければ変数ｊとｉを読出部６３Ｃに与えるが、成立すると信号ＯＵＴをアキュムレータ５６Ａに与える。
【００８５】
読出部６３Ｃでは、変数ｉとｊを入力して、入力した変数ｉとｊに基づいて信号ＲＸ（ｉ）とＲＹ（ｊ）をデータテーブル５３と５４に出力するとともに、入力した変数ｉとｊをインクリメンタ６４Ｃに与える。インクリメンタ６４Ｃは変数ｉとｊを入力してそれぞれ１インクリメントして、インクリメント後の変数ｉとｊを比較器６２Ｃに与える。
【００８６】
なお、ここでは、データテーブル５３と５４からのデータ読出開始アドレスを可変設定できることについて実施の形態１の場合を例示して説明したが、実施の形態２の場合においても、同様にして適用することができる。
【００８７】
したがって、積和演算部５Ｃに与えるデータパケット３６のフィールド５２Ｆに任意の定数データｉ１とｊ１を設定することで、データテーブル５３と５４の任意のアドレスのデータから積和演算を開始することができる。
【００８８】
（実施の形態４）
次に実施の形態４について説明する。
【００８９】
図１１は、本実施の形態４に係る積和演算部５Ｄの構成図である。パワー計算（Ｘ2などの２乗計算）などの演算が頻繁に実行されるシステムでは、図１１に示す積和演算部５Ｄが採用される。
【００９０】
実施の形態４では、定数データＣＮおよびＳＥＬが用いられる。本実施の形態では、演算式（ＡＣＣ＝ＡＣＣ＋Ｘ（ｉ）＊Ｙ（ｉ）、ＡＣＣ＝ＡＣＣ＋Ｘ（ｉ）＊Ｘ（ｉ）、ＡＣＣ＝ＡＣＣ＋Ｙ（ｉ）＊Ｙ（ｉ）、ただしｉ＝１〜ＣＮ）に従う処理が行なわれることによって、累算結果データＡＣＣが求められる。
【００９１】
図１１において積和演算部５Ｄは、入力バッファ５１、アクセス処理部５２Ａ、データテーブル５３、データテーブル５４、乗算器５５、アキュムレータ５６Ａ、データを乗算器５５に出力するための出力ポートＰＯ１とＰＯ２を有する選択器５８および出力バッファ５７を備える。選択器５８を除く他の部分の構成は、実施の形態１のそれと同様であるから説明は省略する。
【００９２】
図１２は本実施の形態４に係るプログラム記憶部２Ｄの内容例を示す図である。図１２においてプログラム記憶部２Ｄには前述と同様にデータフロープログラムが予め記憶される。本実施の形態５では積和演算命令実行時にはデータパケット３６の行先情報に基づくアドレス指定により、プログラム記憶部２Ｄのデータフロープログラムから、次位の行先情報および命令コードＭＵＬＡと定数データＣＮと定数データＳＥＬからなる次位の命令情報が読出されて、次位の行先情報と命令情報は該入力データパケット３６のフィールド５３Ｆと５２Ｆにそれぞれ格納されて、該データパケットが出力される。なお、定数データＳＥＬは、後述するように、選択器５８が、与えられるデータを選択的に入力するために参照される。
【００９３】
分岐部６から積和演算部５Ｄにデータパケット３６が与えられると、与えられたデータパケット３６は入力バッファ５１と出力バッファ５７にそれぞれ格納される。データパケット３６が入力バッファ５１に格納されると、該データパケット３６のフィールド５２Ｆ中の定数データＣＮはアクセス処理部５２Ａに与えられて、定数データＳＥＬは選択器５８に与えられる。アクセス処理部５２Ａは、与えられる定数データＣＮに基づいて信号ＲＳ（ｉ）を順次生成して、生成された信号ＲＳ（ｉ）に基づいてデータテーブル５３と５４からデータＸ（ｉ）とＹ（ｉ）を順次読出して、選択器５８に与える。
【００９４】
選択器５８は、データＸ（ｉ）とＹ（ｉ）を入力して、定数データＳＥＬの値に基づいて、入力データを選択的に乗算器５５に出力する。具体的には、定数データＳＥＬが‘１’を示すときは入力したデータＸ（ｉ）とＹ（ｉ）を出力ポートＰＯ１とＰＯ２それぞれを介して出力し、‘２’を示すときは入力したデータＸ（ｉ）を出力ポートＰＯ１とＰＯ２それぞれを介して出力し、‘３’を示すときは入力したデータＹ（ｉ）を出力ポートＰＯ１とＰＯ２それぞれを介して出力する。したがって、乗算器５５からは、定数データＳＥＬが‘１’を示すときは乗算結果データＸ（ｉ）＊Ｙ（ｉ）がアキュームレータ５６Ａに出力されて、 ‘２’を示すときは乗算結果データＸ（ｉ）＊Ｘ（ｉ）がアキュームレータ５６Ａに出力されて、‘３’を示すときは乗算結果データＹ（ｉ）＊Ｙ（ｉ）がアキュームレータ５６Ａに出力される。
【００９５】
アクセス処理部５２Ａは定数データＣＮに基づいて、データテーブル５３と５４についての読出を終了すると、信号ＯＵＴをアキュムレータ５６Ａに出力する。アキュムレータ５６Ａでは実施の形態１と同様に乗算器５５から出力される乗算結果データについて累算処理が行なわれる。その後、アキュムレータ５６Ａに信号ＯＵＴが与えられると、そのとき格納していた累算結果データＡＣＣを出力バッファ５７に与える。
【００９６】
出力バッファ５７では、与えられる累算データＡＣＣは、出力バッファ５７に予め格納されているデータパケット３６のフィールド５４Ｆに格納される。その後、該データパケット３６は出力バッファ５７から合流部７に出力される。
【００９７】
本実施の形態４の積和演算部５Ｄは、選択器５８により、データテーブル５３と５４から読出されたデータＸ（ｉ）とＹ（ｉ）を定数データＳＥＬに基づいて選択的に乗算器５５に出力できるので、上述したようなパワー計算が行われる場合でも対応することができる。
【００９８】
なお、本実施の形態の積和演算部５Ｄは実施の形態１の積和演算部５Ａに選択器５８を追加した構成としているが、実施の形態２と３の積和演算部５Ｂと５Ｃの構成に選択器５８を追加した構成としてもよい。
【００９９】
また、積和演算部は３種類以上のデータテーブルを有して、選択器５８は、これらデータテーブルから読出された３種類以上のデータのうちから、定数データＳＥＬで選択される１種類以上のデータを出力ポートＰＯ１とＰＯ２から乗算器５５に出力するようにしてもよい。
【０１００】
（実施の形態５）
次に実施の形態５について説明する。
【０１０１】
実施の形態５では、積和演算に関する繰返し演算が実行中であっても、後続の処理を行なうことのできる積和演算器が示される。本実施の形態では、実施の形態１〜４で示された積和演算部５Ａ〜５Ｄにおいて積和演算が実行中であっても、後続の処理を待たせることがなくなって、図１のデータ駆動型情報処理装置におけるデータパケットの滞留が解消されて、ひいては演算効率の低下を防止できる。
【０１０２】
具体的には、図１の各部は前段の部分からデータパケットの受入れが可能な状態になると、前段の各部に対してデータパケットの受入れ可能を示すＡＣＫ（Acknowledge）信号を出力する。このことは、前段の各部からすると、次段の各部に対してデータパケットを出力してもよいとの許可信号が与えられたことになる。このＡＣＫ信号により、各部間のデータパケットの伝送が可能となる。
【０１０３】
したがって、分岐部６は、積和演算のための命令コードＭＵＬＡを含む命令情報が格納されたデータパケット３６を積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）に出力して、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）において積和演算が終了して、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）からＡＣＫ信号を受理すると、データ対生成部３に対してＡＣＫ信号を出力する。また、分岐部６は積和演算とは異なる種類の命令情報が格納されたデータパケット３６または３８を演算部４に出力して、演算部４において該命令情報に従う演算が終了して、演算部４からＡＣＫ信号を受理すると、データ対生成部３に対してＡＣＫ信号を出力する。
【０１０４】
このように、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）での積和演算処理と並行して、後続するデータパケット３６または３８についての演算部４による演算処理を実行できるから、積和演算に関する繰返し演算が実行されることに起因したデータパケット３６または３８の滞留は防止できる。
【０１０５】
（実施の形態６）
次に実施の形態６について説明する。
【０１０６】
ＦＩＲフィルタ演算が頻繁に実行され場合には、フィルタ係数をデータテーブル５４のデータＹ（ｊ）に設定しておき、データをデータテーブル５３のデータＸ（ｉ）に設定しておく。たとえば８個のフィルタ係数を有するＦＩＲフィルタの演算を実行する場合には、データテーブル５４は常にアドレス１から８を、すなわち変数ｊを１から８まで１ずつインクリメントしながらデータテーブル５４のデータＹ（ｊ）をアクセスして読出し、アドレステーブル５３はデータの読出開始アドレスを順次ずらして、すなわち変数ｉを１から１ずつインクリメントしながらデータＸ（ｉ）をアドレス指定して読出し、読出されたデータを演算すればよい。また、データが１個ずつ更新される場合は１から８の間のみを巡回する仕組みを追加すればデータテーブルの領域を節約できる。
【０１０７】
図１３（Ａ）〜（Ｃ）にはそのような場合の演算式の例が示される。図１３（Ａ）のＴ＝０は時間軸ｔ＝０を意味し、図１３（Ｂ）のＴ＝１は時間軸ｔ＝１を意味し、図１３（Ｃ）のＴ＝２は時間軸ｔ＝２を意味する。図１３（Ａ）〜（Ｃ）の演算式それぞれは８タップを含む。
【０１０８】
（実施の形態７）
次に実施の形態７について説明する。上述した各実施の形態に適用されるデータテーブル５３と５４は積和演算専用である必要はない。データテーブル５３と５４は他の種類の演算実行時にアクセスされるメモリ領域と共有するように設けられてもよい。その場合には、他の種類の演算処理結果をデータテーブル５３と５４のそれぞれに格納しておくことで、積和演算命令のためのオペランドデータをデータテーブル５３と５４に格納するための特別な手順が省略されて、演算処理の効率化を図ることができる。
【０１０９】
上述した各実施の形態では、乗算器５５による乗算のオペランドはデータテーブル５３と５４から読出された２個のデータとしているが、データテーブルを３個以上設けて、オペランドは３個以上とすることもできる。
【０１１０】
上述した各実施の形態では、乗算器５５による複数個の積の総和を求める積和演算を示したが、乗算器に代替して、除算器や減算器などを設けて、複数個の商の総和や複数個の差の総和を求めるようにしてもよい。
【０１１１】
上述の各実施の形態では、図１のデータ駆動型情報処理装置内の各部を１回巡回することで、所望の積和演算を実行して終了できる。ここで、図１の分岐部６、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）および合流部７をデータパケットが通過するのに１単位時間必要とされると想定する。この場合に、１つの積和演算命令、たとえばタップ数が１０個の積和演算命令が実行される際には、所要時間は以下のようになる。つまり、情報処理装置内をデータパケットが巡回するための４単位時間と１０単位時間（１０タップの所要時間）との計１４単位時間となるから、前述した従来の場合に比較して、データ駆動型情報処理装置において積和演算処理を高速に実行できる。厳密には、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）による積和演算に要する時間は、データパケットがデータ駆動型情報処理装置の１つの部分を通過するのに要する時間より短いので、この処理の高速化に関しては、それ以上の効果を期待できる。
【０１１２】
従来は積和演算処理時にはデータパケットが積の回数分、データ駆動型情報処理装置内を巡回していたが、上述の各実施の形態によれば、このような巡回を省略して積和演算を実行できる。また、積和演算部５Ａ（５Ｂ、５Ｃ、５Ｄ）において積和演算が実行中であったとしても、他の種類の演算処理を並行して実行できるから、データパケットの滞留は抑制されて、演算効率低下は防止できる。
【０１１３】
上述の各実施の形態によれば従来に比較して、積和演算に関して１０タップで２．９倍、２０タップで３．３倍および５０タップでは３．７倍あるいはそれぞれ以上の演算時間の短縮が期待できる。
【０１１４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１１５】
【発明の効果】
本発明によれば、データを算術演算して算術演算結果を累算する累積演算を繰返す処理は、累積処理手段においてのみ実行されて、この繰返し期間においてデータパケットがデータ処理装置の各手段を巡回する必要はない。それゆえに、データを算術演算して算術演算結果を累算して総和を求める累積演算を高速に処理できる。
【０１１６】
また、累積処理手段で、データを算術演算して算術演算結果を累算する累積演算が繰返されている間でも、演算手段においては他の処理が並行して実行される。それゆえに、データを算術演算して算術演算結果を累算する累積演算が繰返されている間でも、装置におけるデータパケットの滞留は抑制されて、データパケットを用いたデータフロープログラムに従う次位の命令情報に従う処理を進行させることができる。
【図面の簡単な説明】
【図１】  この発明の各実施の形態に係るデータ駆動型情報処理装置の構成図である。
【図２】  本実施の形態１に係る積和演算部５Ａの構成図である。
【図３】  図２のアクセス処理部５２Ａの構成図である。
【図４】  本実施の形態１に係るプログラム記憶部２Ａの内容例を示す図である。
【図５】  本実施の形態２に係る積和演算部５Ｂの構成図である。
【図６】  図５のアクセス処理部５２Ｂの構成図である。
【図７】  本実施の形態２に係るプログラム記憶部２Ｂの内容例を示す図である。
【図８】  本実施の形態３に係る積和演算部５Ｃの構成図である。
【図９】  図８のアクセス処理部５２Ｃの構成図である。
【図１０】  本実施の形態３に係るプログラム記憶部２Ｃの内容例を示す図である。
【図１１】  本実施の形態４に係る積和演算器５Ｄの構成図である。
【図１２】  本実施の形態４に係るプログラム記憶部２Ｄの内容例を示す図である。
【図１３】  （Ａ）〜（Ｃ）は本実施の形態６に係る演算式の例を示す図である。
【図１４】  特開平６−６０２０６号公報に開示のデータ駆動型情報処理装置の構成図である。
【図１５】  （Ａ）および（Ｂ）は、図１４に示されたデータ駆動型情報処理装置におけるデータパケットのフィールド構成図である。
【図１６】  図１４のデータ駆動型情報処理装置において実行される積和演算に対応のデータフローグラフである。
【図１７】  累算器内蔵の演算部を用いたデータ駆動型情報処理装置で積和演算を実行するためのデータフローグラフである。
【図１８】  特開平８−３２９０３８号公報に開示の演算部を示す図である。
【符号の説明】
１  入出力制御部、２Ａ，２Ｂ，２Ｃ，２Ｄ  プログラム記憶部、３  データ対生成部、４  演算部、５Ａ，５Ｂ，５Ｃ，５Ｄ  積和演算部、６  分岐部、７合流部、５３，５４  データテーブル。
【図１】
0004141673.tif 000002
【図２】
0004141673.tif 000003
【図３】
0004141673.tif 000004
【図４】
0004141673.tif 000005
【図５】
0004141673.tif 000006
【図６】
0004141673.tif 000007
【図７】
0004141673.tif 000008
【図８】
0004141673.tif 000009
【図９】
0004141673.tif 000010
【図１０】
0004141673.tif 000011
【図１１】
0004141673.tif 000012
【図１２】
0004141673.tif 000013
【図１３】
0004141673.tif 000014
【図１４】
0004141673.tif 000015
【図１５】
0004141673.tif 000016
【図１６】
0004141673.tif 000017
【図１７】
0004141673.tif 000018
【図１８】
0004141673.tif 000019