JP3708560B2 - データフロー型情報処理装置 - Google Patents

データフロー型情報処理装置 Download PDF

Info

Publication number
JP3708560B2
JP3708560B2 JP22136392A JP22136392A JP3708560B2 JP 3708560 B2 JP3708560 B2 JP 3708560B2 JP 22136392 A JP22136392 A JP 22136392A JP 22136392 A JP22136392 A JP 22136392A JP 3708560 B2 JP3708560 B2 JP 3708560B2
Authority
JP
Japan
Prior art keywords
data
output
information
data packet
input
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.)
Expired - Fee Related
Application number
JP22136392A
Other languages
English (en)
Other versions
JPH0668283A (ja
Inventor
和彦 依田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP22136392A priority Critical patent/JP3708560B2/ja
Publication of JPH0668283A publication Critical patent/JPH0668283A/ja
Application granted granted Critical
Publication of JP3708560B2 publication Critical patent/JP3708560B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
この発明はデータフロー型情報処理装置に関し、特に、データパケットの数を少なくすることにより高速演算が可能なデータフロー型情報処理装置に関する。
【0002】
【従来の技術】
計算機は、大別してノイマン型計算機と非ノイマン型計算機とに分類される。
【0003】
ノイマン型計算機においては、種々の命令がプログラムとして予めプログラムメモリに記憶されている。プログラムカウンタと呼ばれる特別なカウンタによってプログラムメモリのアドレスが逐次指定されることにより、順次プログラムメモリから命令が読出される。その命令を実行するとともに、次に実行される命令の、プログラムメモリ中のアドレスをプログラムカウンタにセットすることにより、多様な処理が実行される。
【0004】
一方、非ノイマン型計算機は、プログラムカウンタによる逐次的な命令の実行という概念を持たない。データフロー型情報処理装置はそのような非ノイマン型計算機の一種である。データフロー型情報処理装置のアーキテクチャとしては、ノイマン型計算機のような逐次処理ではなく、命令の並列処理を基本としたものが採用される。
【0005】
データフロー型情報処理装置においては、各演算の実行に必要なデータが揃い次第、その演算を含む命令の実行が可能となる。データが揃い次第複数の命令が同時に実行されるために、データの自然な流れに従って並列的にプログラムが実行される。そのため、演算の所要時間が大巾に短縮するものとされている。
【0006】
図12は、従来のデータフロー型情報処理装置の構成を示すブロック図である。図12を参照して、従来のデータフロー型情報処理装置は、プログラム記憶部(PS)110と、対データ検出部(FC)112と、演算処理部(FP)114とを含む。プログラム記憶部110と対データ検出部112との間にはデータパケットの流路116が2本設けられている。対データ検出部112と演算処理部114との間はデータパケットの流路118で接続されている。演算処理部114とプログラム記憶部110との間はデータパケットの流路120によって接続されている。
【0007】
図12に示されるデータフロー型情報処理装置においては、図5に示されるようなフォーマットのデータパケットが流路116、118、120を流れていくことにより演算が行なわれる。図5を参照して、データパケットには命令フィールドと、行先フィールドと、データ第1フィールドと、データ第2フィールドと、タグフィールドとが設けられている。命令フィールドは、データ第1フィールドまたはデータ第2フィールドに格納されているデータに対して行なわれる命令(演算)を特定する命令情報を格納する。行先フィールドには、このデータパケットに対する演算結果を格納したデータパケットが、プログラム記憶部110内に格納されているデータフロープログラムのどのノードに与えられるかを示す行先情報が格納されている。演算対象のデータはデータ第1フィールドまたはデータ第2フィールドに格納されている。タグフィールドには、命令フィールドに格納されている命令が1入力命令であるか、2入力命令であるかを示す2入力命令情報などが格納されている。
【0008】
図12を参照して、プログラム記憶部110にはデータフロープログラムが記憶されている。データフロープログラムの各行(ノードと呼ぶ)には、命令情報と、その命令による演算結果が供給されるノード名を示す行先情報と、タグフィールドに格納される情報とが含まれている。
【0009】
プログラム記憶部110は、演算処理部114から流路120を通ってデータパケットが入力されると、そのデータパケットの行先フィールドによって示されるノードの情報を読出す。そしてそのノードに格納されている命令情報、行先情報、タグ情報などと、入力されたデータパケットのデータとからデータパケットを生成し、流路116を介して対データ検出部112に与える。このとき、データパケットの演算が2入力命令であればそのデータパケットが2つの入力のいずれのものであるか(右、左と呼ぶ)に従って、2本の流路116のいずれか一方にパケットを出力する。
【0010】
対データ検出部112は、入力されるデータパケットの命令情報が1入力命令を示している場合には、そのまま流路118を介して演算処理部114に与える。データパケットの命令情報が2入力命令を示している場合には、対データ検出部112は待合せ処理を行なう。待合せ処理とは、同じ行先情報、同じ命令情報を有する異なる2つのパケットを検出し、その行先情報、命令情報を用い、かつ1つで前述の2つのデータを持つパケットを作成して演算処理部114に出力する処理である。このような2つのパケットが揃うまで、先に到着したデータパケットは対データ検出部112に一時格納されている。
【0011】
演算処理部114に与えられたデータパケットに対しては、演算処理部114においてデータパケットの命令情報にしたがって演算が行なわれる。演算結果はデータパケットのデータフィールド1に格納される。演算結果を含むデータパケットは流路120を介してプログラム記憶部110に与えられる。このとき、データパケットの行先情報には、プログラム記憶部110から出力されたときの行先情報が格納されている。
【0012】
プログラム記憶部110は、入力されたデータパケットの行先情報の指すノードに格納されている情報に従って次のデータパケットを生成して出力する。
【0013】
このようにデータパケットがプログラム記憶部110と対データ検出部112と演算処理部114とを順次循環していくことによりデータフロープログラムが実行される。
【0014】
【発明が解決しようとする課題】
以上のように従来のデータフロー型情報処理装置では、演算に必要なデータが揃うと即時にその演算が実行される。この演算処理は並列的なものとなる。したがって、データフロー型情報処理装置では従来の逐次処理型計算機よりも処理を高速化できると考えられる。
【0015】
しかし、従来のデータフロー型情報処理装置には次のような改善すべき点が存在する。プログラム記憶部110から出力される命令が1入力命令であって、かつその演算結果がただ1つのノードに与えられる場合を考える。この場合には、プログラム記憶部110からそのデータパケットが出力された時点で、そのデータパケットの次アドレスのノードが出力されたデータパケットの行先情報を調べるだけで簡単に知ることができる。次アドレスのノードを知ることにより、出力されたデータパケットの演算結果を用いて連続して実行可能である。しかしこの場合でも、従来のデータフロー型情報処理装置では、そのデータパケットが演算処理部114による演算を経て、演算結果を含むデータパケットがプログラム記憶部110まで到達しなければ次の命令の実行を開始することができなかった。演算結果を含むデータパケットが到着する前にも、次の命令を含むデータパケットを送出することは可能であるから、何らかの改良を行なうことによりデータフロープログラムの実行に必要なデータパケットの数を減らし、より処理を高速化することが可能であると考えられる。同様に対データ検出部112で待合せ処理が完了しデータパケットが出力される場合にも、そのデータパケットの行先情報が1箇所のノードを示すものであれば、次に実行可能となるノードを簡単に識別できる。この場合にもより処理を高速化することが可能であると考えられる。
【0016】
それゆえに請求項1に記載の発明の目的は、データパケットの数を減らし、それによってより高速に処理を行なうことができるデータフロー型情報処理装置を提供することである。
【0017】
請求項2に記載の発明の目的は、1つのデータが供給されることにより実行可能となる一連の処理を、データパケットをすべての処理について循環させることなく実行することにより、より高速に処理を行なうことができるデータフロー型情報処理装置を提供することである。
【0018】
請求項3に記載の発明の目的は、複数入力命令を含む演算に必要なデータが供給された時点で実行可能となる一連の処理を、すべての処理についてデータパケットを循環させることなく実行することにより、処理を高速化できるデータフロー型情報処理装置を提供することである。
【0019】
【課題を解決するための手段】
請求項1に記載のデータフロー型情報処理装置は、データに対して行なわれる演算と、演算結果の供給先ノードを特定するための行先情報とを含む複数個のノード情報を含むデータフロープログラムを記憶し、入力されるデータパケットに含まれる行先情報に基づいて、前記データフロープログラム中で連鎖的に即時に実行可能な、1入力1出力の一連の命令、または2入力1出力命令とそれに後続する1入力1出力の一連の演算を検出し、それら演算を特定する演算情報と、それら演算の演算結果の行先情報とを含む一連のデータパケットを連続して出力するためのデータパケット出力手段と、データパケット出力手段により出力される一連のデータパケットに対し、先行する演算に対する演算結果を後続する演算の入力に用いることにより、一連の演算を実行し、演算結果を含むデータパケットを、一連のデータパケットに含まれる行先情報により特定されるノードに向けて出力するための演算手段とを含む。
【0020】
請求項2に記載のデータフロー型情報処理装置は、請求項1に記載の装置であって、そのデータパケット出力手段は、データフロープログラムを記憶するための手段と、入力されるデータパケットに含まれる行先情報により特定されるノードに含まれる演算を特定するための演算情報と、演算に必要なデータとを含むデータパケットを出力するための手段と、出力されるデータパケットに含まれる演算情報が1入力で実行開始可能であって、かつ行先情報がただ1つの行先ノードを特定する限り、かつその行先ノードに含まれる演算情報が1入力で実行開始可能である限り、その行先ノードに含まれる演算情報を含むデータパケットを出力することを繰返すための手段とを含むプログラム記憶手段と、プログラム記憶手段に接続され、プログラム記憶手段から出力されるデータパケットに対する演算の実行開始が可能かどうかを検出し、実行可能なデータパケットを順次演算手段に向けて出力するための対データ検出部とを含む。
【0021】
請求項3に記載のデータフロー型情報処理装置は、請求項2に記載の装置であって、対データ検出部はさらに、対データ検出部から演算手段に向けて出力される実行可能なデータパケットに含まれる演算情報が複数入力演算であって、かつ行先情報が単一のノードを示すときに限り所定の第1の値をとり、それ以外の場合には第1の値と異なる所定の第2の値をとる検出信号と、行先情報を表わす行先情報信号とを出力する機能を有し、プログラム記憶手段はさらに、検出信号が第1の値となったことに応答して、行先情報信号により特定されるノードに含まれる演算情報が1入力で実行開始可能であるときに、当該ノードに基づいてデータパケットを生成して出力するための手段とを含む。
【0022】
【作用】
請求項1に記載のデータフロー型情報処理装置では、入力されるデータパケットに含まれる行先情報に基づき、連鎖的に実行可能な一連のノードが検出され、それら一連のノードと行先情報とを含む一連のデータパケットがデータパケット出力手段から演算手段に連続して出力される。演算手段は、一連のデータパケットに対し、先行する演算に対する演算結果を後続する演算の入力に用いることによって一連の演算を実行する。演算結果は、一連のデータパケットに含まれる行先情報により特定されるノードに向けてデータパケットとして出力される。連鎖的に実行可能な演算に対しては、その一連の演算の演算結果のデータパケットのみが演算手段から出力され、途中の演算の演算結果のデータパケットの出力は行なわれない。
【0023】
請求項2に記載のデータフロー型情報処理装置では、プログラム記憶手段にデータパケットが入力されると、そのデータパケットの行先情報によって特定されるノードに含まれる情報に従ってデータパケットが対データ検出部に出力される。出力されるデータパケットに含まれる演算情報が1データで実行開始可能であって、かつ行先情報がただ1つの行先ノードを特定する場合には、さらに行先ノードに含まれる演算情報を持ったデータパケットが出力され、この処理は上述の条件が満たされる限り繰返して行なわれる。対データ検出部は入力されるデータパケットのうち、1データで実行可能なデータパケットを順次演算手段に向けて出力する。したがって、1データで実行開始可能であってかつ行先情報がただ1つの行先ノードを特定する演算は、その一連の演算の先頭に必要なデータが供給されることによって次々と対データ検出部から演算手段に向けて一連のデータパケットとして与えられる。演算手段では、この一連のデータパケットのうち、先行する演算の演算結果を後続する演算の入力に用いて処理を行なう。演算結果は、一連のデータパケットに含まれる行先情報により特定されるノードに向けてデータパケットとして出力される。一連の1入力、1出力命令は、先頭の演算に必要なデータが供給されることにより、次々と演算手段に与えられる。演算手段では、途中の演算結果のデータパケットを出力することなく、この一連の演算を行ない、最終の演算結果のみをデータパケットとして出力する。
【0024】
請求項3に記載のデータフロー型情報処理装置では、請求項2と同じく、一連の1入力、1出力の命令は、先頭の演算開始に必要なデータが供給されると同時にプログラム記憶手段、対データ検出部を経て一連のデータパケットとして演算手段に与えられる。さらに、2入力命令がプログラム記憶手段から対データ検出部に与えられ、対データ検出部においてこのデータパケットに対する演算の実行開始が可能であることが検出されると、そのデータパケットがコピー出力を持たず、行先情報が1入力のノードであるときに限り、検出信号が第1の値となり、そのデータパケットに含まれる行先情報が行先情報信号として出力される。プログラム記憶手段では、この検出信号が第1の値となったことに応答して、行先情報信号により特定されるノード情報に含まれる演算情報が単一入力演算であれば、そのノード情報に基づいて次のデータパケットがプログラム記憶手段からデータパケット出力手段に出力される。このとき、プログラム記憶手段は、請求項2と同様に、出力されるデータパケットに含まれる演算情報が一連の1入力、1出力命令である限り、出力されるデータバケットに含まれる行先情報によって特定される行先ノードに含まれる演算情報を含むデータパケットを出力することを繰返す。これら一連のデータパケットは対データ検出部を経て演算手段に与えられ、前述のようにその演算結果のみのデータパケットが演算手段から出力される。
【0025】
【実施例】
図1は、本発明の一実施例のデータフロー型情報処理装置のブロック図である。図1を参照して、このデータフロー型情報処理装置は、入力されるデータパケットに含まれるデータによって演算が可能となる一連のデータパケットをデータパケットの流路62に出力するためのデータパケット出力手段の一例のデータパケット出力部66と、流路62を介してデータパケット出力部66に接続され、一連のデータパケットのうち、先行するデータパケットによる演算結果を後続するデータパケットの演算の入力に用いて一連の演算を実行し、演算結果を最終のデータパケットに含まれる行先情報に従って生成するデータパケットに格納して流路64に出力するための演算手段の一例の演算処理部54とを含む。演算処理部54の出力とデータパケット出力部66の入力とは流路64により接続されている。
【0026】
このデータフロー型情報処理装置において使用されるデータパケットのフォーマットとしては、図5に示す2種類がある。流路62には2データを必要とすることがあるので、図5(a)のように2データのフォーマットが用いられ、流路60,64には図5(b)に示すデータのフォーマットが用いられる。ただし、タグフィールドには、従来技術でも用いられていた2入力命令情報に加え、この命令の演算結果を与えられるノードが1つであるかどうかを示す1出力情報が格納される。
【0027】
再び図1を参照して、データパケット出力部66は、プログラム記憶手段の一例のプログラム記憶部50と対データ検出部52とを含む。プログラム記憶部50の入力はデータパケットの流路64に接続されている。プログラム記憶部50と対データ検出部52とは、2本のデータパケット流路60によって接続されている。データパケットの命令情報が2入力命令を示すものである場合、データがその2入力の左右いずれに供給されるかに従って、流路60のいずれかが選択される。さらに本発明のデータフロー型情報処理装置においては、対データ検出部52からプログラム記憶部50に対して帰還するマッチング線56とマッチングデータ線58とを含む。マッチング線56には、対データ検出部52において待合せ処理が行なわれ、待合せが完了して出力されるデータパケットの出力先が1箇所のみであるときにハイレベルとなり、他の場合にはローレベルとなるマッチング検出信号が出力される。マッチングデータ線58には、このときの、対データ検出部52から出力されるデータパケットの行先情報を示すデータがプログラム記憶部50に対して与えられる。
【0028】
図2を参照して、プログラム記憶部50は、流路64に接続された入力パケットバッファ68と、データフロープログラムを記憶し、入力パケットバッファ68から行先情報を受取り、対応するノードの情報を出力するためのプログラムメモリ72と、入力パケットバッファ68とプログラムメモリ72とにそれぞれ接続され、プログラムメモリ72から与えられる命令情報、行先情報、タグ情報などと、入力パケットバッファ68から与えられるデータとからデータパケットを生成して出力するための第1のパケット生成回路74および第2のパケット生成回路76と、入力パケットバッファ68に接続され、対データ検出部52からのマッチングデータ線58およびマッチング線56が接続され、マッチング線およびマッチングデータ線の信号と、入力パケットバッファ68からの行先情報とに基づいてプログラムメモリ72を制御し、行先情報またはマッチングデータ線58によって特定されるノードの情報を出力させるためのコントローラ70とを含む。
【0029】
図3を参照して、対データ検出部52は、データパケット流路60に接続された入力パケットバッファ78、80と、2入力命令のデータの待合せを行なうために、データパケットの情報を一旦格納するための待合せメモリ84と、入力パケットバッファ78、80と待合せメモリ84とに接続され、入力されるパケットと待合せメモリ84に格納されているデータパケットの情報とに基づき、演算開始に必要なデータが揃ったデータパケットを生成するための情報を出力するためのマッチングコントロール回路82と、マッチングコントロール回路82から与えられるデータに基づいてデータパケットを生成し、流路62を介して演算処理部54に出力するためのパケット生成回路86とを含む。マッチングコントロール回路82はまた、2入力命令の実行開始のためのデータが2つ揃った時点で、この命令の行先情報がただ1つのノードを示す場合にマッチング線56をハイレベルとし、マッチングデータ線58に行先情報を表わす情報を出力する。
【0030】
図4を参照して、演算処理部54は、データパケット流路62に接続された入力データバッファ90と、それぞれ入力データバッファ90に接続されたデータ1レジスタ92、データ2レジスタ94と、入力データバッファ90に接続された命令情報レジスタ98と、命令情報レジスタ98とデータ1レジスタ92とデータ2レジスタ94とに接続され、命令情報レジスタ98に格納された命令に従って、レジスタ92、94に格納されたデータ間に演算を行なって出力するための算術論理ユニット(ALU)96と、ALU96の出力に接続された出力データバッファ100と、出力データバッファ100の出力に基づいてパケットを生成して流路64に出力するためのパケット生成回路102とを含む。演算処理部54はさらに、出力データバッファ100の格納内容を、所定の条件の成立時にデータ1レジスタ92に帰還させるための帰還用ゲート104、ANDゲート108を含む。帰還用ゲート104の入力は出力データバッファ100に、出力はデータ1レジスタ92にそれぞれ接続されている。ANDゲート108の一方の入力が命令情報レジスタ98に、他方の入力は入力データバッファ90に対するタイミング信号生成回路106aの出力にそれぞれ接続されている。ANDゲート108の出力は帰還用ゲート104の制御端子に接続されている。命令情報レジスタ98には、入力されたデータパケットの行先情報が1出力を表わすものかどうかを示す情報が格納されており、この情報はANDゲート108および出力データバッファ100に与えられる。入力データバッファ90、データレジスタ92、94、ALU96、出力データバッファ100、パケット生成回路102にはそれぞれタイミング信号生成回路106a〜106eが接続されている。タイミング信号生成回路106a〜106eは、タイミング信号線109によって相互に接続され、データの送受信のタイミングを管理する信号を各部に与える。タイミング信号生成回路は、プログラム記憶部50,対データ検出部52にも存在する。
【0031】
この実施例のデータフロー型情報処理装置は、従来の技術の問題点を解決するために、次のような思想に基づいて構成されている。図12を参照して従来のデータフロー型情報処理装置におけるデータフロープログラムの実行において、命令情報が1入力を示している場合を考える。この場合、この命令は1データで演算を実行することが可能である。しかしこの場合にも、演算処理部114から出力されたデータパケットは、プログラム記憶部110で命令情報・行先情報が交換された後、対データ検出部112を経由して再び演算処理部114に到達する。この場合、演算結果については演算処理部114から送出されたときと演算処理部114に再び到達したときとで何ら変わりはない。単に命令情報と行先情報がプログラム記憶部110によって交換されているだけである。
【0032】
そこで、何らかの方法を用いてデータパケットの命令情報・行先情報だけを交換可能とすることを考える。この場合、演算処理部114、プログラム記憶部110、対データ検出部112をパケットが巡回する必要がなくなる。パケットの巡回自体には比較的長時間が必要なために、パケットを減少させ、データパケットの巡回に必要な時間をなくすことでデータフロープログラムの実行を早くすることが可能となる。
【0033】
本実施例のデータフロー型情報処理装置では、次のような機能をプログラム記憶部110、対データ検出部112、演算処理部114に加えることで、従来技術の問題点を解決する。
1.データフロープログラムにおける設定(変更)
図6は、プログラム記憶部50に格納されるデータフロープログラムのフォーマットである。このデータフロープログラムの各ノードはそれぞれアドレスA、A+1、…、B、B+1などに格納されている。各ノードは、命令情報と、行先情報と、コピー情報と、定数情報と、2入力命令情報とを含む。さらに、本発明に係るデータフロー型情報処理装置で実行するデータフロープログラムには次のような変更が施されている。
【0034】
(1) 図6に示されるように、データフロープログラム内の各行に、従来の2入力命令情報に加え、1出力情報のフィールドを設ける。1出力情報とは、この命令の演算結果の行先ノードがただ1つであるかどうかを示すためのものである。1出力情報が“1”のときには行先ノードがただ1つであることを表わす。
“0”のときはこれが成立たないことを示す。
【0035】
同様に2入力命令情報は、従来の場合と同様に“1”のときにはこの演算に必要なデータが2つであることを示し、“0”のときには1つであることを示す。
【0036】
(2) 上述の2入力命令情報と並んで1出力情報についても、データフロープログラム作成時に処理に応じた情報を作成しておく。
2.本実施例装置の特別な動作
図1を参照して、本実施例に係る装置のプログラム記憶部50と、対データ検出部52と、演算処理部54にはそれぞれ、以下のような機能を行なう機構が付与されている。
【0037】
(1) プログラム記憶部50
プログラム記憶部50は、読出されたデータフロープログラムのノードの2入力情報および1出力情報を、出力パケットのタグフィールドに格納してパケットの出力を行なう。プログラム記憶部50はこのとき、2入力情報が2入力を示していない場合つまり命令情報が1データで処理できる命令(1入力命令)である場合には、連続して出力パケットの行先情報で特定されるノードのデータフロープログラムを読出し、そこに格納されている情報に従ってデータパケットを出力する。プログラム記憶部50は、このような方法でデータパケットを出力する。
【0038】
(2) 対データ検出部52は、入力されるデータパケットのうち、2入力命令情報が2入力を示しているパケットについてのみ待合せ処理を行なう。1入力命令のパケットについては直ちに演算処理部54に向けて出力する。
【0039】
2入力命令の待合せ処理が完了し、2入力命令のデータパケットが出力されるとき、対データ検出部52は次のような動作を行なう。出力されるデータパケットの1出力情報が1出力を示す値となっている場合には、対データ検出部52はその出力されるデータパケットの行先情報をマッチングデータ線58(図1参照)に出力し、同時にマッチング線56(図1参照)をハイレベルとする。マッチング線56がハイレベルとなることにより、出力されるデータパケットの1出力情報が1出力を示しているということを示す検出信号がプログラム記憶部50に与えられる。対データ検出部52は、このようにしてプログラム記憶部50に対して行先情報を帰還させた後、プログラム記憶部50から送られてくる2入力命令情報が2入力を示す値ではないパケットを、前述のパケットに連続して演算処理部54に向けて出力する。
【0040】
また、プログラム記憶部50から与えられるデータパケットのうち、2入力命令情報が2入力を示す値ではなく、かつ1出力情報が1出力を示す値となっているパケットは演算処理部54にそのまま出力するとともに、後に送られてくるパケットのうち、2入力命令情報が2入力を示していない連続するパケットを同様に連続して演算処理部54に出力する。
【0041】
(3) プログラム記憶部50では、前述のように1入力命令のデータパケットを連続して出力するのと別に、マッチング線56がハイレベルとなったときには次のような動作を行なう。プログラム記憶部50は、マッチング線56がハイレベルとなれば、マッチングデータ線58に対データ検出部52から出力される行先情報を読込み、その行先情報に対応するデータフロープログラムのノードの情報を読出す。そしてこのノードに格納されている2入力命令情報が2入力を示す値ではないとき、すなわち単一入力を示す値であるときには、読み出されたノードに格納されている情報に基づき、対データ検出部52にデータパケットを送出する。このデータパケット送出時にも、出力されるデータパケットが1入力・1出力命令である場合には、前述のようにその行先情報のノードに従って次々と連続してデータパケットを出力する。
【0042】
(4) 演算処理部54は、入力パケットの1出力情報が1出力を示す値となっている場合には、演算結果をデータレジスタに保持する。この演算結果は、連続して入力される後のパケットの演算に対して入力として使用される。この場合演算結果を含むデータパケットの出力は行なわれない。次にパケットが入力された場合、データレジスタに保存されている演算結果をデータとして演算が行なわれる。そして一連のデータパケットの入力が終了した時点で、一連の演算の演算結果を含むデータパケットが、最終のデータパケットに含まれる行先情報に従ってプログラム記憶部50に向けて出力される。
【0043】
以上のようにすることにより、データフロープログラム中の1入力1出力パケットからなる一連の演算処理および2入力1出力命令とその命令の後に続く1入力1出力命令からなる一連の演算処理についてはパケットが連続して演算処理部に送られる。演算処理部では次々と入力されるデータパケットに対して、先行するデータパケットの演算結果を後続するデータパケットに対する演算の入力として使用し、一連の演算を行なう。そして一連の演算が終了した時点で、その結果を最終のデータパケットに含まれる行先情報とともに出力する。したがって全体としてデータパケットの数を減らすことができ、データフロープログラムの実行速度を上げることができる。
【0044】
以下、図1〜図6に示される本実施例のデータフロー型情報処理装置の動作をより詳細に説明する。
【0045】
図2を参照して、プログラム記憶部50は以下のように動作する。
(1) 基本的な動作として、入力パケットがあれば、入力パケットに含まれる行先情報に対応するノードの情報をプログラムメモリ72から読出し、その内容に対応するパケットをパケット生成回路74、76を用いて対データ検出部52に出力する。
【0046】
(2) 入力パケットに含まれる行先情報に基づいて読出したノード情報のコピー情報が“1”であれば、(1)の動作とともに、読出したノードの直後のアドレスに格納されたノード情報に基づいてデータパケットを出力する。
【0047】
(3) 入力パケットの行先情報に基づいて読出したノード情報に含まれる定数情報が“1”であれば、(1)と同時に、読出したノードの直後のアドレスに格納されている情報をデータとし、データ交換を行なったパケットを(1)と同様に出力する。
【0048】
(4) 入力パケットの行先情報に対応するノードから読出した情報に含まれる2入力命令情報が“0”でかつ1出力情報が“1”であれば、読出したノードに含まれる行先情報に基づいてさらにその行先情報に対応するノード情報を読出す。そして、新たに読出されたノードに含まれる情報に対応するデータパケットを、直前のデータパケットに続いて出力する。さらに、このときの新たに読出された情報に含まれる2入力命令情報が“0”でかつ1出力情報が“1”であれば、同様に新たに読出された行先情報に対応するノードを読出し、そのノードに含まれる情報に対応するデータパケットも出力する。そして、上述のような条件が満たされなくなるまでこのような処理を繰返し行なう。
【0049】
(5) コントローラ70は、対データ検出部52からのマッチング線56がハイレベル(ON)となった場合、マッチングデータ線58の内容を読込む。マッチングデータ線58には、対データ検出部52でマッチングが検出された2入力1出力命令の行先情報が出力されている。コントローラ70は、読込んだ行先情報をプログラムメモリ72に与える。プログラムメモリ72は、与えられた行先情報に対応するノード情報を読出し、その2入力命令情報が“0”であれば、そのノード情報に基づいてデータパケットを出力し、以下上述の(4)と同様に、出力されるデータパケットのノード情報に含まれる2入力命令情報が“0”でかつ1出力情報が“1”であれば、そのデータパケットに含まれる行先情報にしたがって次のノード情報を読出してそれに対応するデータパケットの出力を行なう。この条件が満たされなくなるまでこの処理を繰返し行なう。
【0050】
図3を参照して、対データ検出部52は以下のような動作を行なう。
(6) マッチングコントロール回路82は、入力パケットバッファ78、80に一旦格納された入力パケットに含まれる2入力命令情報が“0”であれば、そのままそのデータパケットをパケット生成回路86から流路62を介して演算処理部54に向けて出力する。
【0051】
(7) マッチングコントロール回路82は、入力パケットバッファ78、80に一旦格納された入力パケットの2入力命令情報が“1”であれば、次のような処理を行なう。マッチングコントロール回路82は、まず待合せメモリ84内に、入力パケットとマッチングするデータパケットが待避されているかどうかをチェックする。その結果により以下のような動作を行なう。
【0052】
(a) 待合せメモリ84にマッチングするデータパケットが待避されていない場合には、入力パケット78または80内の入力パケットを待合せメモリ84に一旦待避させる。
【0053】
(b) マッチングするデータパケットが待合せメモリ84に待避されていれば、入力パケットとこの待避されているデータパケットとのマッチングを行ない、新たなデータパケットを生成してパケット生成回路86から流路62を介して演算処理部54に向けて出力する。このとき、出力されるデータパケットの1出力情報が“1”であればマッチング線56をONとし、マッチングデータ線58に、出力されるデータパケットに含まれる行先情報を出力する。
【0054】
図4を参照して、演算処理部54は次のような動作を行なう。対データ検出部52より送られてくるデータパケットは入力データバッファ90に一旦格納される。このうち命令情報は命令情報レジスタ98に格納される。データ1、データ2は、それぞれデータ1レジスタ92、データ2レジスタ94に格納される。データ1レジスタ92には、後述するように出力データバッファ100の値が帰還される場合がある。
【0055】
ALU96は、命令情報レジスタ98とデータ1レジスタ92、データ2レジスタ94から必要な情報を読込み、演算を行なって出力データバッファ100に出力する。出力データバッファ100は、命令情報レジスタ98の一部に格納された1出力情報の値により、ALU96の出力をパケット生成回路102または帰還用ゲート104のいずれかに与える。この場合1出力情報が“1”である場合には出力データバッファ100はデータを帰還用ゲート104に与え、それ以外の場合にはパケット生成回路102に与える。
【0056】
1出力情報が“1”である場合には、入力データバッファ90に与えられるタイミング信号がONとなるとともに帰還用ゲート104からデータ1レジスタ92に出力データバッファ100の値が帰還される。
【0057】
このようにして1出力情報が“1”であれば、先行するデータパケットに対する演算の結果を、後続するデータパケットの演算の入力として用いて一連の演算が次々と実行される。そして1出力情報が“1”でなくなった時点でパケット生成回路102から、演算結果を持ったパケットが出力される。
【0058】
このようにすることにより、演算処理部54からプログラム記憶部50に向けて出力されるデータパケットの数が減少するとともに、1入力1出力からなる一連の命令、または2入力1出力の命令から始まる、後続する1入力1出力の一連の命令がすべて演算処理部54で連続して処理される。そのために、各命令を実行するために各データパケットを演算処理部からプログラム記憶部、さらに対データ検出部から再び演算処理部に循環させる必要がなく、パケット送信に必要な時間を節約でき、処理を高速化することができる。
【0059】
以下、図7に示されるデータフローダイヤグラムに対応するデータフロープログラムを、本実施例のデータフロー型情報処理装置で実行する場合の装置の動作について説明する。
【0060】
図7を参照して、以下で例として説明するデータフロープログラムは、ノードn3〜n6の処理を含む。各ノードは矢印(アーク)で連結されている。ノードn3は2入力1出力の乗算(mul)である。ノードn4は演算「++」(1加算)である。ノードn5の演算は絶対値を取る演算である。ノードn6の演算は浮動小数点演算である。ノードn6の出力は2入力のノードn7に与えられる。
【0061】
図8を参照して、プログラム記憶部50内に表形式で示されているのは、図7に示されるデータフローダイヤグラムに対応するデータフロープログラムを模式的に表わしたものである。このような情報がプログラムメモリ内に格納されている。符号n1〜n6はノード番号を示す。枠内の各列は左から順に命令情報、行先情報、定数情報、コピー情報、2入力命令情報、1出力命令情報を表わす。
【0062】
今、プログラム記憶部50に、第1のデータパケットN1(opc,n1)が入力されたものとする。この場合プログラム記憶部50内のノードn1の情報が読出され、その情報に従ってデータパケットN3aが対データ検出部52に対して出力される。データパケットN3aは2入力1出力命令である。
【0063】
この場合対データ検出部52内には、データパケットN3aとマッチングするデータパケットが待避されていないものとする。データパケットN3aは対データ検出部52内の待合せメモリ84(図3参照)に待避される。
【0064】
さらに第2のデータパケットN2(opc,n2)がプログラム記憶部50に入力されたものとする。同様にノードn2の情報が読出され、データパケットN3bが対データ検出部52に与えられる。
対データ検出部52は、データパケットN3bを受けると待合せメモリ84内をチェックし、マッチングするデータパケットが待避されていないかどうかを確認する。この場合すでにデータパケットN3aが待避されているために、マッチングが発生し、対データ検出部52は2つのデータパケットN3a、N3bから1つのデータパケットを生成し、演算処理部54に与える。このデータパケットの生成は、データパケットN3a,N3bのデータから生成される。
【0065】
対データ検出部52は、このデータパケットの出力の際に、その1出力情報をチェックする。この場合1出力情報の値は“1”である。そのために、図9に示されるように対データ検出部52は、マッチング線56のマッチング信号をONとする。また対データ検出部52は、マッチングデータ線58上にマッチングデータとして行先情報n3を出力する。
【0066】
プログラム記憶部50は、このマッチング信号がONとなったことに応答して、マッチングデータ(n3)を読込む。そしてプログラム記憶部50は、読込まれた行先情報n3に対応するノードの情報を読出し、このときの2入力情報が“0”であるので、対応するデータパケットN4(++,n4,データ,0,1)を対データ検出部52に出力する。このとき、プログラム記憶部50は、前述の動作(4)(5)に従って、出力されるデータパケットN4の2入力命令情報と1出力命令情報とをチェックする。この場合2入力命令情報が“0”、1出力情報が“1”であるために、プログラム記憶部50は前述の(4)(5)に従って、出力されたデータパケットに含まれる行先情報(n4)に従って、データフロープログラムのノードn4の情報を読出す。そして同様にデータパケットN5(abs,n5,データ,0,1)を、読出した情報に従って対データ検出部52に向けて出力する。この場合に出力されるデータパケットの2入力命令情報、1出力情報も“0”、“1”であるために、プログラム記憶部50はさらに、出力されるデータパケット中の行先情報n5に従ってノードn5の情報を読出す。そして、読出されたノードn5の情報に従ってさらにデータパケットN6(float,n6,データ,0,0)を対データ検出部52に向けて出力する。データパケットN6の出力の際には、1出力情報が“0”である。したがってプログラム記憶部50は、これ以上繰返してデータパケットを出力することは行なわない。
【0067】
図10を参照して、データパケットN3は演算処理部54に送られ、そこで演算mulが行なわれる。データパケットの1出力情報が“1”であるために、演算結果を含むデータパケットは出力されず、演算結果はデータ1レジスタ92に帰還して保存される。一方対データ検出部52は、順に入力されるデータパケットN4、N5、N6がいずれも1入力命令である(2入力命令情報が“0”)ために、これらのデータパケットをそのまま順に演算処理部54に向けて出力する。
【0068】
図11を参照して、データパケットN4、N5、N6に対する演算は、レジスタ92に一時格納されていた、データパケットN3の演算結果を入力として順に行なわれる。この場合、データパケットN4、N5の1出力情報はともに“1”であるために、その演算結果は後続するデータパケットの演算に対する入力として用いられる。しかし、データパケットN6の1出力情報は、“0”であるために、この繰返し演算は終了され、一連の演算結果を含むデータパケットがプログラム記憶部50に向けて出力される。このときの行先情報は、データパケットN6に格納されていた行先情報n6となっている。
【0069】
プログラム記憶部50は、入力されたデータパケットの行先情報n6に従って、データフロープログラムの該当ノードの情報を読出し、さらに上述したような処理を繰返し行なってデータフロープログラムの実行を行なう。
【0070】
以上のようにこの実施例のデータフロー型情報処理装置では、1入力1出力命令からなる一連の命令、または2入力1出力命令と、その命令に後続する1入力1出力命令からなる一連の命令に関するデータパケットを流路を循環させることなく、演算処理部で連続して処理することができる。一連の演算結果のデータパケットのみを演算処理部からプログラム記憶部に出力すればよいために、循環させるデータパケットの数が減少し、一連の処理を完結するのに要する時間も減少させることができる。
【0071】
【発明の効果】
以上のように請求項1に記載の発明によれば、データフロープログラム中で連鎖的に実行可能な一連の演算を含む一連のデータパケットがデータパケット出力手段から演算手段に向けて連続して与えられる。演算手段は、データパケット出力手段から与えられるこの一連のデータパケットに対して、先行する演算に対する演算結果を後続する演算の入力に用いることにより、一連の演算を実行し、その演算結果を持ったデータパケットを所定の行先情報に従って出力する。一連の演算を構成する各演算毎にデータパケットを循環させる必要がなく、一連の演算を演算手段で連続して実行することができるために、データパケットの数が減少し、演算速度を向上させることが可能なデータフロー型情報処理装置を提供できる。
【0072】
請求項2に記載の発明によれば、入力データパケットに基づいて出力されるデータパケットに含まれる演算情報が1データで実行開始可能な演算を示すものであり、かつその行先情報がただ1つの行先ノードを特定するものであれば、その行先ノードに含まれる演算情報に従ったデータパケットを出力することが繰返し行なわれる。繰返し出力されたデータパケットは、対データ検出部によって演算手段に向けて一連のデータパケットとして送られる。そして演算手段により、この一連のデータパケットに対し、先行する演算の演算結果を後続する演算の入力に用いることにより、一連の演算が連続的に実行される。そして一連の演算の演算結果を、所定の行先情報に従ってデータパケットとして出力する。1入力1出力命令のデータパケットを、データパケットの流路を循環させることなく演算手段によって連続して実行し、一連の演算の演算結果のみをデータパケットとして出力すればよいために、出力するデータパケットの数が減少するとともに、一連の演算の実行に必要な時間も減少し、演算の実行速度を向上させることができる。
【0073】
請求項3に記載の発明に係るデータフロー型情報処理装置では、演算手段に向けて出力された実行可能なデータパケットに含まれる演算情報が複数入力演算を示すものであって、かつその行先情報が単一のノードを示すときには、その行先情報により特定されるノードから読出された情報に基づいて、そのノードに対応する演算が単一入力演算であればそれに対応するデータパケットが出力される。したがって、2入力命令であっても1出力であれば、後続する演算が可能なときにはそのためのデータパケットも連続して演算手段に与えられ、演算手段でこの一連の処理を連続して実行することができる。さらにプログラム記憶手段から出力されるデータパケットの演算情報が1入力で実行可能でありかつその行先がただ1つのノードを指定するものであれば、その行先ノードに含まれる演算情報に基づいてデータパケットを出力する処理が繰返し行なわれる。そのために、請求項2に記載のデータフロー型情報処理装置と同様にさらにこの後に続く1入力1出力の命令からなる一連の演算も演算手段で連続して行なうことができる。その一連の演算結果を1つのデータパケットとして出力すればよいために、流路を循環させるデータパケットの数を減らすことができ、しかも一連の演算を行なうときにデータパケットが循環する時間を節約でき、処理を高速化することができる。その結果、データパケットの数をより少なくし、より多くの演算を一連の演算として演算手段で連続して実行することができ、処理をより高速化することができるデータフロー型情報処理装置を提供できる。
【図面の簡単な説明】
【図1】本発明に係るデータフロー型情報処理装置のブロック図である。
【図2】プログラム記憶部のブロック図である。
【図3】対データ検出部のブロック図である。
【図4】演算処理部のブロック図である。
【図5】データパケットの構成を示す模式図である。
【図6】データフロープログラムの構成を示す模式図である。
【図7】データフローダイヤグラムである。
【図8】データフロー型情報処理装置の動作を説明するための模式図である。
【図9】データフロー型情報処理装置の動作を説明するための模式図である。
【図10】データフロー型情報処理装置の動作を説明するための模式図である。
【図11】データフロー型情報処理装置の動作を説明するための模式図である。
【図12】従来のデータフロー型情報処理装置の構成を示すブロック図である。
【符号の説明】
50 プログラム記憶部
52 対データ検出部
54 演算処理部
56 マッチング線
58 マッチングデータ線
66 データパケット出力部
70 コントローラ
72 プログラムメモリ
82 マッチングコントロール回路
84 待合せメモリ
92 データ1レジスタ
94 データ2レジスタ
96 ALU
98 命令情報レジスタ
104 帰還用ゲート
108 ANDゲート

Claims (3)

  1. データに対して行なわれる演算と、演算結果の行先を特定するための行先情報とを含む複数個のノード情報を含むデータフロープログラムを記憶し、入力されるデータパケットに含まれる行先情報に基づいて、前記データフロープログラム中で連鎖的に実行可能な、1入力1出力の一連の命令、または2入力1出力命令とそれに後続する1入力1出力の一連の演算を検出し、前記一連の演算を特定するための演算情報と、前記一連の演算の演算結果の行先情報とを含む一連のデータパケットを連続して出力するためのデータパケット出力手段と、
    前記データパケット出力手段により出力される前記一連のデータパケットに対し、先行する演算に対する演算結果を後続する演算の入力に用いることにより、前記一連の演算を実行し、前記一連の演算の演算結果を含むデータパケットを前記一連のデータパケットに含まれる前記行先情報により特定されるノードに向けて出力するための演算手段とを含む、データフロー型情報処理装置。
  2. 前記データパケット出力手段は、
    前記データフロープログラムを記憶するための手段と、入力されるデータパケットに含まれる行先情報により特定されるノードに含まれる演算を特定する演算情報と、演算に必要なデータとを含むデータパケットを出力するための手段と、出力されるデータパケットに含まれる演算情報が1入力で実行開始可能であってかつ前記ノードに含まれる行先情報がただ1つの行先ノードを特定する限り、かつ前記行先ノードに含まれる演算情報が1入力で実行開始可能である限り、前記行先ノードに含まれる演算情報を含むデータパケットを出力することを繰返すための手段とを含むプログラム記憶手段と、
    前記プログラム記憶手段に接続され、前記プログラム記憶手段から出力されるデータパケットに対する演算が実行開始可能であるかどうかを検出し、実行可能なデータパケットを順次前記演算手段に向けて出力するための対データ検出部とを含む、請求項1に記載のデータフロー型情報処理装置。
  3. 前記対データ検出部は、さらに、前記対データ検出部から前記演算手段に向けて出力される実行可能なデータパケットに含まれる演算情報が複数入力演算であって、かつ行先情報が単一のノードを示すときに限り所定の第1の値をとり、それ以外のときには前記第1の値と異なる所定の第2の値をとる検出信号と、前記行先情報を表わす行先情報信号とを出力する機能を有し、
    前記プログラム記憶手段はさらに、前記検出信号が前記第1の値となったことに応答して、前記行先情報信号により特定されるノードに含まれる演算情報が1入力で実行開始可能であるときに、当該ノードに基づいてデータパケットを生成して出力するための手段を含む、請求項2に記載のデータフロー型情報処理装置。
JP22136392A 1992-08-20 1992-08-20 データフロー型情報処理装置 Expired - Fee Related JP3708560B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22136392A JP3708560B2 (ja) 1992-08-20 1992-08-20 データフロー型情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22136392A JP3708560B2 (ja) 1992-08-20 1992-08-20 データフロー型情報処理装置

Publications (2)

Publication Number Publication Date
JPH0668283A JPH0668283A (ja) 1994-03-11
JP3708560B2 true JP3708560B2 (ja) 2005-10-19

Family

ID=16765624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22136392A Expired - Fee Related JP3708560B2 (ja) 1992-08-20 1992-08-20 データフロー型情報処理装置

Country Status (1)

Country Link
JP (1) JP3708560B2 (ja)

Also Published As

Publication number Publication date
JPH0668283A (ja) 1994-03-11

Similar Documents

Publication Publication Date Title
US4591979A (en) Data-flow-type digital processing apparatus
JPH08241197A (ja) 命令実行順の回転式優先順位選択回路
JP2006518058A (ja) 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法
JPS61276032A (ja) 情報処理装置
JPH01188951A (ja) データフロープログラムの実行制御方式
JP3983447B2 (ja) データ駆動型情報処理装置
US5577256A (en) Data driven type information processor including a combined program memory and memory for queuing operand data
US4085450A (en) Performance invarient execution unit for non-communicative instructions
JP3285430B2 (ja) データ駆動型情報処理装置
JP2632074B2 (ja) データフロー型情報処理装置
US4956767A (en) Data processing system with model for status accumulating operation by simulating sequence of arithmetic steps performed by arithmetic processor
JP3708560B2 (ja) データフロー型情報処理装置
David et al. Self-timed architecture of a reduced instruction set computer
JP3469645B2 (ja) データ駆動型情報処理装置
US5542080A (en) Method for controlling execution of data driven type information processor
JP3696625B2 (ja) データ駆動型情報処理装置
JP2503984B2 (ja) 情報処理装置
JPH09305401A (ja) コンピュータ及びコンパイラ
JPH05282473A (ja) データ処理装置
JP2765058B2 (ja) ストリーム演算終了検知方法及びその装置
JPH04184535A (ja) 並列演算装置
JP2503983B2 (ja) 情報処理装置
JPH0512007A (ja) データ処理方式
JPH0132537B2 (ja)
JPH11126200A (ja) ベクトル処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20031216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040210

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040216

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050804

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080812

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees