JPH01282642A - Data driving type computer - Google Patents

Data driving type computer

Info

Publication number
JPH01282642A
JPH01282642A JP11284488A JP11284488A JPH01282642A JP H01282642 A JPH01282642 A JP H01282642A JP 11284488 A JP11284488 A JP 11284488A JP 11284488 A JP11284488 A JP 11284488A JP H01282642 A JPH01282642 A JP H01282642A
Authority
JP
Japan
Prior art keywords
packet
data
output
instruction
memory
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
JP11284488A
Other languages
Japanese (ja)
Inventor
Hiroshi Gokan
博 後閑
Nobufumi Komori
伸史 小守
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP11284488A priority Critical patent/JPH01282642A/en
Publication of JPH01282642A publication Critical patent/JPH01282642A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To evade the stoppage of processing due to a dead lock even when the dead lock occurs by providing a dead lock detector and a packet discharging control device. CONSTITUTION:When a dead lock occurs, a deal lock detector 9 informs a packet discharging control device that the whole of the device falls into the dead lock. It is received, and the packet discharging control device discharges a packet, which becomes the cause of the dead lock, out of the packet stored in a firing processing part 3. Thus, the dead lock is avoided and a data processing is restarted. The discharged packet, when the data processing is started, is returned to the firing processing part 3 again.

Description

【発明の詳細な説明】 【産業上の利用分野】 この発明は、よυ高速、並列、分散化処理をめざしたデ
ータ駆動形計算機に関するものである。 詳しくはデッドロックによる処理の停止を回避するべく
構成したデータ駆動形計算機に関するものである。 〔従来の技術] 従来のデータ駆動形計算機について本件出願人が既に出
願法の発明[連想記憶装置及びデータ駆動形計算機JA
PJ5863(特願昭62−   号)を例にあげて説
明する。 該出願に係るデータ駆動形計算機は、 外部からのパケットを内部へ取り込む入力部と、このパ
ケットのタグに従ってグログラムを読み出してパケット
データとともに命令パケットとして出力するプログラム
記憶部と、 この命令パケットを受けて発火処理し、演算パケットを
出力する発火処理部と、 この演算パケットに対して演算処理を行い、結果パケッ
トを出力する演算処理部と、 前記結果パケットを受けて該結果パケットを外部又は前
記入力部へ出力する出力部とを備え、発火処理部と演算
処理部との間にスルーパケットを分岐させる分岐機構を
設け、プログラム記憶部と発火処理部との間にスル−パ
ケットを合流させる合流機構を設け、さらに分岐機構と
合流機構との間に、スルーパケットが流れるローカルバ
スを設は 分岐機構と合流機構との間にバッファを設は発火処理部
としては、以下に述べる連想配憶装置を用いたものであ
る。 連想記tα装置は、 入力され九第1パケットのタグ(データの識別子)ヲハ
ツシュし、パケット入力信号及びメモリアドレスを出力
するアドレス変換部と、前記メモリアドレスを保持する
アドレスレジスタと、 前記入力された第1パケツトを保持するとともに、パケ
ットが有効であるか無効であるかを示す第1プレゼンス
ビツト(以下、FBIと記す)を持つ書き込みレジスタ
と、 パケットさらにはFBを保持し、前記アドレスレジスタ
から出力されたメモリアドレスに記憶されたパケットの
読み出し、あるいは前記書き込みレジスタの内容の記憶
を行う待ち合わせメモリと、この待ち合わせメモリから
読み出した第2パケツトを保持する読み出しレジスタと
、 この読み出しレジスタから出力された第2パケツトが有
効か否かを判定し、該判定結果を判定信号として出力す
る空き判定部と、 前記読み出しレジスタから出力された第2パケツトと前
記書き込みレジスタから出力された第1パケツトのタグ
の比較を行って一致るるいは大小を検出し、「一致」の
場合は第1及び第2パケツトの両方を、「不一致」の場
合は両パケットのうちのタグの大きい方を出力するとと
もに、比較結果を第1の比較信号として出力するタグ比
較部と、このタグ比較部から出力された第2パケツトの
データを第1パケツトに付して出力するデータ対生成部
と、 前記パケット入力信号、判定部tあるいは第1の比較信
号を受け、前記待ち合わせメモリの読み出し及び書き込
みの制御、前記読み出しレジスタに保持されたFB2を
前記空き判定部に出力するあるいは第2パケツトをタグ
比較部へ出力する制御、前記書き込みレジスタに保持さ
れた第1パケツトをタグ比較部へ出力する制御、及び第
1の比較信号が1−一致」を示す場合、前記葺き込みレ
ジスタのFBIを無効にする制御を行う制御部とを設け
たものである。 第5図はデータ駆動形計算機の一例によるプレツク構成
図を示したもので、図において、1は外部よシパケット
を入力する入力部、2はデータフローグフフを紀憶し、
前記入力部1から出力されたパケットのタグ(データの
識別子)にょシ命令を読み出し、これを命令パケットと
して出力するプログラム記憶部である。3は発火処理部
であシ、前記プログラム記憶部2から出力された命令パ
ケットを受け、該命令パケットが持つタグと同一のタグ
を持つ命令パケットを検出して演算パケットとして出力
するか、あるいは前記プログラム記憶部2から出力され
た命令パケットを記憶するものである。4はこの発火処
理部3から出力された演算パケットを受けて該演算パケ
ットのタグの一部である命令で指定される演算を行い、
結果パケットを出力する演算処理部、5は出力部であ)
、前記演算処理部4からの結果パケットを受けて、その
タグの一部である外部フラグが[゛外部出力」を示す場
合、結果パケットを外部に出力し、前記外部フラグが「
内部出力」を示す場合、前記結果パケットを前記入力部
1へ出力するものでるる。6はパケットのフラグが「ス
ルー」を示せば、そのパケットをバッファに送るための
分岐機構でおり、7はバッファ8から送られたテ°−夕
を発火処理部3に送るための合流機構でToシ、8はパ
ヶットを1時的に蓄えるためのバッファである。 第6図は前記データ駆動形計X機の発火処理部3として
用いた連想記憶装置のブロック図であシ、31は第1命
令パケツトのタグをハツクユし、メモリアドレスを決定
してパケット入力信号及びメモリアドレスを出力するア
ドレス変換部、32はこのアドレス変換部31からのメ
そりアドレスを保持するアドレスレジスタである。33
は前記第1命令パケツトを保持し、パケットの有効、無
効を示すFBIを持つ書き込みレジスタ、34はパケッ
ト及びPBを記憶する待ち合わせメモリであシ、前記ア
ドレスレジスタ32から出力されたメモリアドレスに記
憶されているパケット及びPBの読み出し、あるいは前
記アドレスレジスタ32からのメモリアドレスへの前記
書き込みレジスタ33からの第1命令パケツトの書き込
みが行われるものである。35はこの待ち合わせメモリ
34から読み出された第2命令パケツト及びPB2を保
持する読み出しレジスタである。 また、36は前記読み出しレジスタ35から出力された
PB2を調べ、前記第2命令パケツトが有効であるか否
かを判定信号として出力する空き判定部、37は前記読
み出しレジスタ35から出力された第2命令パケツト及
び書き込みレジスタ33から出力された第1命令パケツ
トのタグ比較を行って一致あるいは大小を検出するタグ
比較部であシ、その比較結果を第1の比較信号として出
力するとともに、「一致」の場合は第1及び第2命令パ
ケツトの両方を出力し、「不一致」の場合はタグの大き
い方を出力するものである。38はこのタグ比較部37
から出力された第1の比較信号及び第1.第2命令パケ
ツトのうちの両方あるいは一方を受けて演算パケット又
はスルーパケットを出力するデータ対生成部であシ、第
1の比較信号が「一致」を示す場合は前記第2命令パケ
ツトのデータを第1命令パケツトに付けて@非パケツト
として出力し、「不一致」を示す場合は前記第1.第2
命令パケットのうちタグの大きい方に対して、タグの一
部であるスp−バケットフフグをスy−とし、スルーパ
ケットとして出力するものである。 また、39は前記パケット入力信号、判定信号及び第1
の比較信号を受けて以下の制御を行う制御部である。即
ち、 ■待ち合わせメモリ34の読み出しあるいは書き込みの
制御 ■読み出しレジスタ35のPB2を空き判定部36へ、
あるいは第2命令パケツトをタグ比較部37へ出力する
制御 ■書き込みレジスタ33の第1命令パケツトをタグ比較
部37へ出力する制御、及び ■第1の比較信号が「一致」を示す場合、書き込みレジ
スタ33のPEIを無効とし、「不一致」を示す場合、
該J’BIを有効として待ち合わせメモリ34へ命令パ
ケット及びFBIを書き込む制御 を行うものである。 第7図は前記タグ比較部37のブロック図であり、37
1,372はそれぞれ第1.第2の比較回路であシ、第
1の比較部Pr371は、前記読み出しレジスタ35及
び書き込みレジスタ33から出力された第2及び第1命
令パケツトのタグの一部である世代番号あるいはカラ一
番号をそれぞれ入力してそれらの比較を行い、一致ある
いは大小を検出してその検出結果を第2の比較信号とし
て出力するものである。また第2の比較回路372は、
前記両レジスタ35.33から出力された第2及び第1
命令パケツトのタグの一部である行先ノード番号をそれ
ぞれ入力してそれらの比較を行い、一致あるいは大小を
検出してその検出結果を第3の比較信号として出力する
ものである。373は前記読み出しレジスタ35から出
力された第2命令パケツトを保持する第2のレジスタ、
374は前記書き込みレジスタ33から出力された第1
命令パケツトを保持する第1のレジスタである。 iた、375は前記第2.第3の比較信号を受けてその
いずれか一方を前記第1の比較信号として出力するとと
もに、第1.第2のレジスタ374.373を制御する
比較判定回路であ)、より詳しくは、′j42の比較信
号が「不一致」を示す場合該第2の比較信号を第1の比
較信号とし、第2の比較信号が「一致」を示す場合、第
3の比較信号を第1の比較信号として出力し、また第1
の比較信号で第1.第2のレジスタ3フ4,3フ3Kf
fl持されている第1及び第2命令パケツトの出力を制
御するものである。 次に動作について説明する。 データ駆動形計算機で使用するパケットフォーマットを
第11図に示す。パケットはタグ(データの識別子)と
第1テ゛−夕及び第2データで構成され、タグはスルー
パケットフラグ、外部フラグ、世代番号あるいはカラ一
番号1行先ノード番号、命令、及びL/Rグラフで構成
される。 入力部1は外部から入力されるタグと第1テ゛−タを持
つパケット及び出力部5から出力されるタグと第1デー
タを持つパケットを入力し、プログラム記憶部2へこれ
らを出力する。プログラム記憶部2はデータフローグラ
フをそのメモリに記憶してお夛、パケットを入力すると
、入力パケットのタグの一部である行先ノード番号をア
ドレスとしてメモリから行先ノード番号、命令、及び入
力パケットの持つテ゛−夕が命令の左入力となるか右入
力となるかを示すL/Rフヲグを読み出し、入力パケッ
トのタグの一部である行先ノード番号。 命令、及びL/Rグラフを更新して第1データとともに
第1命令パケツトとして出力する。 この第1命令パケツトは発火処理部3へ入力され、該発
火地理部3は演算パケットを出力する。 この発火処理部3は第6図に示した連想記憶装置を用い
ておシ、この動作を第6図を用いて説明する。プログラ
ム記憶部2から出力された第1命令パケツトはアドレス
変換部31及び書き込みレジスタ33へ入力される。ア
ドレス変換部31は第1命令パケツトが入力されたこと
を示すパケット入力信号を制御部39に出力するととも
に、第1命令パケツトのタグの一部である世代番号ある
いはカッ一番号及び行先ノード番号をハツシュし、待ち
合わせメモリ34のメモリアドレスを決定シて出力する
。パケット入力信号が入力された制御ff1s39ハ、
アドレスレジスタ32ヘアドレス変換部31から出力さ
れたメモリアドレスを保持する制御を行い、これにより
アドレスレジスタ32はメモリアドレスを保持する。次
に制御部39は、待ち合わせメモリ34ヘメモリの読み
出しあるいは書き込みのモードを示すモード信号で、「
読み出力」として出力し、アドレスレジスタ32に対し
て該アドレスレジスタ32が保Mしているメモリアドレ
スを待ち合わせメモリ34へ出力する制御をかける。モ
ード信号及びメモリアドレスが入力される待ち合わせメ
モリ34は、第12図に示すように、タグ、データを持
つ命令パケット、及びPBを1つの情報として持ってい
る。この情報のうちFBはタグ及びデ°−夕が有効であ
るか否かを示すビットである。 待ち合わせメモリ34はモード信号及びアドレスvs;
ty、夕32から出力されたメモリアドレスを入力し、
メモリアドレスが指定する待ち合わせメモリ34に記憶
されているPB及び命令パケットを読み出し、これを読
み出しレジスタ35に出力する。読み出しレジスタ35
に保持されたFB2は、制御部39からの制御によって
読み出しレジスタ35から空き判定部36へ出力され′
る。空き判定部3゛6は、読み出しレジスタ35から出
力されたPBZを判定信号として制御部39へ出力する
。判定信号を入力した制御部39は、判定信号が無効を
示す場合、書き込みレジスタ33のPBlに有効を書き
込み、モード信号を「゛書き込み」として待ち合わせメ
モリ34へ出力し、アドレスレジスタ32に対して該ア
ドレスレジスタ32が保持しているメモリアドレスを待
ち合わせメモリ34へ出力する制御を行うとともに、書
き込みレジスタ33に対して、書き込みレジスタ33が
保持している第1命令パケツト及びFBIを待ち合わせ
メモリ34へ出力する制御を行う。「書き込み」のモー
ドを示したモード信号が入力された待ち合わせメモリ3
4は、アドレスレジスタ32から出力されたメモリアド
レスへ書き込みレジスタ33から出力された第1命令パ
ケツトとPBIどを記憶する。従って判定信号が無効を
示す場合に、アドレスレジスタ32に保持されたメモリ
アドレスが指定する待ち合わせメモリ34の領域は空き
であることから、書き込みレジスタ33に保持された第
1命令パケツト及びFBIは待ち合わせメモリ34へ記
憶され、同一タグを持つ命令パケットを待つこととなる
。 判定信号が有効を示す場合、制御部39は、書き込みレ
ジスタ33及び読み出しレジスタ35に保持されている
第1及び第2命令パケツト2をタグ比較部37へ出力す
る制御を書き込みレジスタ33及び読み出しレジスタ3
5に対して行う。 次にタグ比較部37の動作を第7図に示したブロック図
に従って説明する。書き込みレジスタ33から出力され
た第1命令パケツトは第1のレジスタ374に保持され
る。また、読み出しレジスタ35から出力された第2命
令パケツトは第2のレジスタ373に保持される。書き
込みレジスタ33及び読み出しVラスタ35から出力さ
れた第1及び第2命令パケツトのタグの一部である世代
番号あるいはカフ一番号は第1の比較回路371へ、行
先ノード番号は第2の比較回路372へ送られる。第1
の比較回路371は両命令パケットの世代#rtあるい
はカッ一番号を比較し、一致あるいは大小を検出してそ
の比較結果を第2の比較信号として比較出力判定回路3
75へ出力する。 また第2の比較回路372は、両命令パケットの行先ノ
ード番号を比較し、一致あるいは大小を検出してその比
較結果を第3の比較信号として比較出力判定回路375
へ出力する。比較出力判定回路375は、第2の比較信
号が「不一致(パケットが衝突)」を示せば第2の比較
信号を第1の比較信号として出力し、両命令パケットの
うち助成番号あるいはカッ一番号の大きい方を出力する
制御ヲ第1 、第2のレジスタ374,373に対して
行う。また、第2の比較信号が「一致」を示せば第3の
比較信号を第1の比較信号として出力し、第3の比較信
号が「一致」を示せば両命令パケットを、「不一致(パ
ケットが衝突)」を示せば両命令パケットのうちの行先
ノード番号の大きい方を出力する制御を第1.第2のレ
ジスタ374.373に対して行う〇 データ対生成部38は、タグ比較部37から出力された
第1の比較信号、第1.第2命令パケツトの両方あるい
は一方を入力し、第1の比較信号が「一致」を示せば、
第2命令パケツトのL/Rグラグが示す第1命令パケツ
トのデータ部へ、第2命令パケツトのデータを付け(発
火)、演算パケットとして出力する。また、第1の比較
信号が「不一致」を示せば、第1あるいは第2命令パケ
ツトのスルーバケツトフフグをスルーとし、この命令パ
ケットをス/V−パケットとして出力する。 また、制御部39は第1の比較信号を入力し、この第1
の比較信号が「一致」を示せば書き込みレジスタ33の
PBIを無効とし、第1命令パケツトのタグが第2命令
パケツトのタグよシ小さいことを示せば誓き込みレジス
タ33のFBIを有効とする。また、これとともに待ち
合わせメモリ34へ「書き込み」を示すモード信号を出
力し、アドレスレジスタ32に該アドレスレジスp32
が保持しているメモリアドレスを出力する制御、書き込
みレジスタ33に該書き込みVジメタ33が保持してい
る第1命令パケツト及びPI31を出力する制御を行い
、これによシ待ち合わせメモリ34へ第1命令パケツト
及びFBIを記憶させる。 上記動作によって、第1及び第2命令パケツトのタグが
一致すれば、第1命令パケツトと第2命令パケツトとは
発火し、演算パケットとして出力され、メモリ34の第
2命令パケツトが記憶されていた領域を無効とするため
、簀き込みレジスタ33のFBIは無効とされてメモリ
34へ畜き込まれる。 また、第1.第2命令パケツトのタグが一致せず(パケ
ットが衝突)、第1命令パケツトのタグの方が第2命令
パケツトのタグよシ小さい場合、待ち合わせメモリ34
へ記憶されていた第2命令パケツトと連想記憶装置に入
力された命令パケットが入れ換えられることになる。第
1命令パケツトのタグの方が第2命令パケツトのタグよ
り大きい場合は、待ち合わせメモリ34へ記憶されてい
次第2命令パケットはそのまま記憶され、第16令パケ
ツトが出力されることになる。 ここで、第8図(a)及び(′b)を用いて連想記憶装
置の動作を説明する。ここでは、説明を簡単にするため
、パケットの世代′afあるいはカッ一番号は全て同一
とし、待ち合わせ領域として使用するメモリは4パケツ
トを記憶できるものである。行先ノード番号として“3
°を持つ第1及び第4パケツトと行先ノード番号として
“7”を持つ第2及び第3パケツトハ同一メモリアドレ
ス13”ヲ待ち合わせ領域として使用する。そこで、第
1パケツトが入力されて次に第4パケツトが入力される
と、第1及び第4パケツトは行先ノード番号がどちらも
′3”でるることから発火し、演算パケットとして出力
される。 ここで、第1パケツトが入力され、次に第2パケツトが
入力された場合について考える。第1パケツトが入力さ
れると、第1パケツトは行先ノード番号として3“を持
っているのでメモリアドレス″3°に記憶される。第2
パケツトは行先ノード番号として“7″を持っているの
で、やはシメモリアドレス“3mを示すことになる。そ
こで、第1パケツトと第2パケツトの行先ノード番号の
比較が行われ、第2パケツトの行先ノード番号の方が大
きい(パケットが衝突した)ことから、第2パケツトは
そのスル−パケットフッグがスル−トナってス!−パケ
ットとして出力さn、第17<ゲットはそのままメモリ
アドレス″3”に記憶され、第4パケツトを待つことに
なる。 次に第2パケツトが入力され、続いて第1パケツトが入
力される場合について考える。第2パケツトは行先ノー
ド番号として“7”を持ち、メモリアドレス“3”に記
憶される。この状態で第1パケツトが入力されると、第
1パケツトが持つ行先ノード番号は′3°であることか
ら、やけシメモリアドレス“3“を示す。そこで、第1
パケツトと第2パケツトの行先ノード番号の比較が行わ
れ、第1パケツトの行先ノード番号の方が小さい(パケ
ットが衝突した)ことから、メモリアドレス″3″に記
憶されていた第2パケツトはそのスルーパケットフラグ
がスル−となってスルv −/< )y−ットとして出
力され、その代わシに第1パケツトがメモリアドレス“
3”に記憶されることになる。 連想記憶装置を用いた発火処理部3から出力された演算
パケットは、演算地理部4へ入力され、演算パケットの
タグの一部である命令に従ってデータに対して演算処理
が行われ、結果パケットが出力される。出力部5は演算
処理部4から結果パケットを入力し、結果パケットのタ
グの一部である外部フラグを判定し、外部フラグが外部
出力を示せば結果パケットを外部に出力し、外部フラグ
が内部出力を示せば結果パケットを入力部1に出力する
。発火処理部3から出力されるスルmパケットは、演算
処理部4及びプログラム記憶部2では処理を受けずに、
再び発火処理部3へ戻って命令パケットとして再び発火
処理を受けることになる0 次に2番目の具体例として、第4図に示すよりなρ−1
構造をもつデータフローグラフを実行する場合を考える
。第4図で、本体ブロック41がループ 49がループ構造のデータフローグラフの入力側、グラ
フ50がループ構造のデータフローグラフの出力側を示
している。同期ブロック45で、全てのデータがμmチ
ンを1つ終わったことを検知し、条件判定44でループ
を再度続行するのか終了するのかを判定する。 条件判定44からの信号をうけてノード46TGは左側
からの入力アークから入力されるデータの真偽値が真の
ときのみ右側のアークから入力されるデータを通過させ
、逆に偽の時はデータを吸収するという処理を行うノー
ドであ夛、ループの続行、終了を実行し、ノード47S
Wは左側からの入力アークから入力されるデータの真偽
値が真の時、左側に出力し、偽の時、右側のアークのみ
に出力し、この操作を行うことによシ、ループ続行の場
合は本体ブロック41に終了の場合はグラフの出力側に
データパケットが送られることとなる。 今、従来例で先に示したデータ駆動形計算機において、
第4図のループ構造をもつデータフロー・グラフを実行
させる場合を考える。第4図のノード51のノード番号
をOとし、ノード48のノ・ド番号を80とする。ノー
ド48の左入力のパケットを第1パケツトとし、ノード
51の右入力パケットを第2パケツトとする。 第8図(b)で示すように、この第1パケツトと第2パ
ケツトはオペランドメモリの同一メモリアドレスを指す
ことになる(メモリアドレス’O’)、今、第1パケツ
トよシ先に第2パケツトが到着したとすると、アドレス
10′の場所を第2パケツトが占めてしまう。第1パケ
ツトが到着し、ハツシュ衝突を起こしても、従来例のデ
ータ駆動形計算機では、データパケットが次に向かうノ
ード番号によって、第1パケツトと第2パケツトのどち
らを優先するかを判定する。第2パケツトのノード番号
(80)の方が第1パケツトのノード番号(0)より大
きいので、第1パケツトの方をスル−パケットとしてし
まう。しかも、ノード51のノードは第2パケツト及び
第1パケツトがノード48のノードで処理された後のデ
ータパケットを待っているために、第1パケツトが処理
されない限シ、このデータ処理は完全に止まる。しかし
、第2バゲツトが邪魔して第1パケツトが処理されるこ
とはないので、このデータフローグラフの処理はデッド
ロック状態に陥ったまま、永久に止まってしまうことに
なる。 〔発明が解決しようとする課題」 従来例の中で説明した2誉目の具体例のように複雑なデ
ータフローグラフを処理する時にデータパケットの到着
の順序によっては、データ駆動形計算機のデータ処理が
中断し永久に止まつ°Cしまう(デッドロック状態)に
陥る場合がある。 〔課題を解決するための手段J 従来例で示したような、入力部、出力部、プログツム記
憶部1尭火処理部、演算処理部から成るデータ駆動形計
算機において ■ デッドロック検知装置 ■ パケット放出制御装置 を設けたものである。 ■グツドロック検知装置として上記5つの部分から成る
データ処理系でデータ処理終了以前に処理が完全に中断
してしまうデッドロック状態を検知し、■のパケット放
出制御装置にデッドロック信号を送る機能を持つもので
ある。 ■パケット放出制御装置として、上記デッドロック検知
装置からのデッドロック信号を受け、前記発火処理部に
格納されている1つ以上のパケットを放出させるべく、
発火処理部のパケット待ち合わせ機能と制御するもので
ある。 「作用」 本願の発明においては、データ駆動形計算機において、
データパケットの到着順序によっては、デッドロックが
起こる場合もあシ得る。この時。 デッドロック検知装置が、装置全体がデッドロックに陥
ったことをパケット放出制御装置に知らせ、それを受け
て、パケット放出制御装置が、発火処理部に格納してい
るパケットの中からデッドロックの原因となっているパ
ケットを放出することによシ、デッドロックが回避され
、データ処理が再開される。放出されたパケットはデー
タ処理がはじまると再び発火処理部に戻されることにな
る。 〔実施例J 以下、この発明の第一の実施例を図について説明する。 第1図はデータ駆動形計算機の第1の実施例によるブロ
ック構成図を示したもので、図において、1は外部よシ
パケットを入力する入力部、2はデータフローグラフを
記憶し、前記入力部1から出力されたパケットのタグ(
データの識別子)によシ命令を読み出し、これを命令パ
ケットとして出力するプログラム記憶部である。3は発
火処理部であり、前記プログラム記憶部2から出力され
た命令パケットを受け、該命令パケットが持つタグと同
一のタグを持つ命令パケットを検出して演算パケットと
して出力するか、あるいは前記プログラム記憶部2から
出力された命令パケットを記憶するものである。4ばこ
の発火処理部3から出力された演算パケットを受けて該
演算パケットのタグの一部である命令で指定される演算
を竹い、結果パケットを出力する演算処理部、5は出力
部であシ、前記演算処理部4からの結果パケットを受け
て、そのタグの一部である外部フラグが「外部出力」を
示す場合、結果パケットを外部に出力し、前記外部フラ
グが「内部出力」を示す場合、前記結果パケットを前記
入力部1へ出力する。 9はタイマーであシ、本実施例においてはデッドロック
検知装置として、タイマー9を用い、演算処理部で演算
がおこなわれなくなってからある一定時間経過すること
をデッドロック状態であるとみなし、デッドロック信号
を発火処理部3に送る。 発火処理部3はパケット放出制御装置を内蔵しておシ、
パケットが衝突を起こした場合、あるいは上記タイマー
9からのデッドロック信号を受けた場合に、どのパケッ
トをスルーパケットにするかを判断し、そのパケットを
出力する。スル−パケットは分岐部7で選別されバッフ
ァに貯えられ装置が演算処理を行っている間は合流部8
を通って再度発火処理部3に送られる。 第2図は前記データ駆動形計算機の発火処理部3として
用いた連想記憶装置のブロック図であシ、31は第1命
令パケツトのタグをハツシュし、メモリアドレスを決定
してパケット入力信号及びメモリアドレスを出力するア
ドレス変換部、32はこのアドレス変換部31からのメ
モリアドレスを保持するアドレスレジスタである。33
は前記第1命令パケツトを保持し、パケットの有効、無
効を示すFBIを持つ書き込みレジスタ、34はパケッ
ト及びPBを記憶する待ち合わせメモリであシ、前記ア
ドレスレジスタ32から出力されたメモリアドレスに記
憶されているパケット及OpBの読み出し、あるいは前
記アドレスレジスタ32からのメモリアドレスへの前記
書き込みレジスタ33からの第1命令パケツトの書き込
みが行われるものである。35はこの待ち合わせメモリ
34から読み出された第2命令パケツト及びPB2を保
持する読み出しレジスタである。 また、36は前記読み出しレジスタ35から出力された
PB2を調べ、前記第2命令パケツトが有効であるか否
かを判定信号として出力する空き判定部、37は前記読
み出しレジスタ35がら出力された第2命令パケツト及
び書き込みレジスタ33から出力された第1命令パケツ
トのタグ比較を行って一致あるいは大小を検出するタグ
比較部であシ、その比較結果を5g1の比較信号として
出力するとともに、「一致」の場合は第1及び第2命令
パケツトの両方を出力し、「不一致」の場合はタグの大
きい方を出力するものである。38はこのタグ比較部3
7から出力された第1の比較信号及び第1.第2命令パ
ケツトのうちの両方あるいは一方を受けて演算パケット
又はスルーパケットを出力するデ°−タ対生成部であシ
、第1の比較信号が「一致」を示す場合は前記第2命令
パケツトのデータを第1命令パケツトに付けて演算パケ
ットとして出力し、「不一致」を示す場合は前記第1.
第2命令パケツトのうちタグの大きい方に対して、タグ
の一部であるスルーパケットフラグをスp−とし、スル
−パケットとして出力するものである。 また、39は前記パケット入力信号9判定倍号及びtg
lの比較信号を受けて以下の制御を行う制御部である。 即ち、 ■待ち合わせメモリ34の読み出しあるいは書き込みの
制御 ■読み出しレジスタ35のPB2を空き判定部36へ、
あるいは第2命令パケツトをタグ比較部37へ出力する
制御 ■書き込みレジスタ33の第1命令パケツトをタグ比較
部37へ出力する制御、及び ■第1の比較信号が「一致」を示す場合、書き込みレジ
スタ330FBIを無効とし、「不一致」を示す場合、
該FBIを有効として待ち合わせメモリ34へ命令パケ
ット及びFBIを書き込む制御 を行うものである。 また40はDL制御部であシ、本実施例においてはパケ
ット放出制御装置としてDL制御部40を用い、上記タ
イマー9からのデッドロック信号を受けて、待ち合わせ
メモリ34の読み出しを行い読み出しレジスタ330F
BIを無効にする。そして、データパケットのタグのフ
ラグを1ス/L/Jとし、スルーパケットとして出力す
るための制御を行うものである。 第3図は、DL制御部の内部構成を示したものであシ、 401はタイマー9からのグツドロック信号をうけて、
メモリアドレスを乱数によって生成する乱数発生器 402は乱数発生器401で生成したアドレスのデータ
のフラグを”ス)v−1に書き換えるためのフラグ生成
部 403は乱数発生器401によって生成されたアドレス
のデータのFBIを無効にするための判定信号と、メモ
リに対して読み出しモードを与えるモード信号の2つを
発生する信号発生器である。 次に動作について説明する。 前記の従来例で示した二番目の具体例を用いてそのデッ
ドロック回避方法を説明する。 第4図に示すよりなμmプ構造をもつデータフローグラ
フを処理する場合を考える。第4図のノード51のノー
ド番号をOとし、ノード48のノード番号を80とする
。ノード48の右入力のパケットを第1パケツトとし、
ノード51の左入力パケットを第2パケツトとする。今
、m1t<ケyトよシ先に第2パケツトが到着したとす
ると、この第1パケツトと第2パケツトはメモリ34の
同一メモリアドレスを指すことになる(メモリアドレス
“o”)。 今、アドレス101の場所を第2パケツトが占めてしま
う。第1パケツトが到着し、ハツシュ衝突を起こしても
先に述べた従来例のデータ入換方式ではデータのタグの
ノード番号を比較するため、第2パケツトのノード番号
(0)よシ大きいので、第2パケツトの方t−スルーパ
ケットとして出力してしまう。しかもノード番号0のノ
ード51は第2パケツト及び、第1パケツトがノード4
8で処理された後のデータパケットを待っているために
、第1パケツトが処理されない限シ、このテ゛−タ処理
は完全に止まシ、デッドロック状態に陥る。 タイマー9は演算処理部4で最後に演算処理が行なわれ
てからの時間を計測し、その計測時間がある一定時間を
越えると発火処理部3のDL制御部40にデッドロック
信号を送る。タイマー9は、演算処理が行なわれるたび
、あるいは、デッドロック信号を出力するたびに、時間
カウントがイニシャライズされ、演算処理がある一定時
間の間行なわれないことをデッドロック状態と判断する
。 タイマー9からのデッドロック信号を受けて、DL制御
部40の乱数発生器401がランダムにアドレスt−発
生り、アドレスレジスタ32、フラグ生成部402、信
号発生器403に信号を送シ、信号発生器403がメモ
リ34の該アドレスのデータを読み出しモードに、該ア
ドレスのPBIを無効にする。メ七り34から読み出さ
れ、出力されたデータパケットのフラグをフラグ生成部
402が1スルー“にする書き薯えを行いスルーパケッ
トとして出力する。 グツドロック信号を受けて、メモリ34からス)V −
/(ケラトとして出力されたデータパケットは、分岐部
7を通シ、バッファ8に送られる。この一連の操作をタ
イマー9からのデッドロック信号によってab返される
うちに、メモリ34から第2パケツトがスルーパケット
として出力され、第2パケツトがバッファ8にとどまっ
ている間に第1パケツトがメモリ34に蓄えられ、以下
、係るべきデータパケットとともに演算処理部4に送ら
れ演算が行なわれ、演算処理が再開される。 データ処理が再開されると、バッファ8にとどまってい
るパケットは徐々に合流部6を通して発火処理部4に戻
されることになる。これによシ、データ処理がデッドロ
ックから脱は出すことになる。 次に他の実施例として ■先願のツ゛−タ駆動形計算機にこの発明を適用した場
合について説明したがハツシュメモリを発火地理部に用
いた他のデータ駆動形計算機に適几可能であるというこ
とは言うまでもない。 ■ハツシュメモリを発火処理部に用いず通常のメ七りを
オペランドメモリに用いたデータ駆動形計算機において
、オベフンドメモリカオーバーフロー起こすことをデッ
ドロック状態であるとみなし、検出しこの検出信号をう
けて同様にオペランドメモリからデータパケットを放出
させることによシブラドロック回避を実現することが可
能である。 ■第10図は本発明の第2の実施例を示したものであシ
、第一の実施例ではデータ処理系のデータの処理の停止
の検出を演算処理部4のデータ処理に着目したが、入力
部l、出力部5のデータパケットの入力、出力1分岐な
どのデータ処理に着目して入力部1.出力部5でデ−タ
処理系行なわれなくなって、ある一定時間経過すること
をタイマー9が検出し、第1の実施例と同様なデータ駆
動形計算機を構成することができる。 ■パケット放出制御装置におけるハツシュメモリのアド
レス発生方法は第3図の乱数発生器401の代わシに、
カウンター404を用い、ジ−ケンシャyに発生させた
シ、(第9図伝)参照)また、2つ以上のアドレスを同
時に発生させ、(第9図(bJ参照)発火処理部3のメ
モリ34に蓄えられているパケットを2つ以上同時に放
出させてもよい。 ■タイマーの時間経過の測定方法としては、(A)計算
機システム自体が持合わせているシステムクロックによ
って測定する方法。 (b)データ処理が行なわれるたびにコンデンサなどで
放電を行い、蓄電をはじめてから、一定容量の電荷が蓄
えるまでの時間で処理を行うなどのアナログ回路を用い
て実現してもよへ〔発明の効果J 以上のようにこの発明によれば、データ駆動形計算機の
データ処理において、デッドロック検知装置とパケット
放出制御装置を設けることによシブラドロックが発生し
ても、すみやかにデッドロックによる処理の停止を回避
できるデータ駆動形計算機が得られる。また、発火処理
部のメモリとしてハツシュメモリを用いたデータ駆動形
計算機のデ−タ処理系おいてもデッドロック検知装置と
パケット放出制御装置を設けるととKよシハツシュ衝突
によるデッドロック状態が発生しても比較的簡単な構造
で、小容量のメモリを持つ連想記憶装置及び小容量のメ
モリを持つ連想記憶装置を発火処理部に用いながらもテ
゛ツドロツクによるMWの停止を回避できるデータ駆動
形計算機が得られる。
[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to a data-driven computer that aims at high-speed, parallel, and distributed processing. Specifically, the present invention relates to a data-driven computer configured to avoid stopping processing due to deadlock. [Prior Art] Regarding conventional data-driven computers, the present applicant has already made an invention in the application method [Associative Memory Device and Data-Driven Computer JA
This will be explained using PJ5863 (Patent Application No. 1982) as an example. The data-driven computer according to the application includes an input section that takes in packets from the outside into the computer, a program storage section that reads out a program according to the tag of this packet and outputs it as an instruction packet together with the packet data, and a program storage section that receives the instruction packet. a firing processing unit that performs firing processing and outputs a calculation packet; a calculation processing unit that performs calculation processing on the calculation packet and outputs a result packet; and a calculation processing unit that receives the result packet and transmits the result packet to an external device or the input unit. a branching mechanism for branching through packets between the firing processing section and the arithmetic processing section; and a merging mechanism for merging through packets between the program storage section and the firing processing section. Furthermore, a local bus through which through packets flow is provided between the branching mechanism and the merging mechanism, and a buffer is provided between the branching mechanism and the merging mechanism. It was there. The associative memory tα device includes: an address converter that latches the tag (data identifier) of the inputted first packet and outputs a packet input signal and a memory address; an address register that holds the memory address; and an address register that holds the memory address; A write register that holds the first packet and has a first presence bit (hereinafter referred to as FBI) indicating whether the packet is valid or invalid; and a write register that holds the packet and further the FB, and outputs from the address register. a waiting memory for reading the packet stored at the specified memory address or storing the contents of the write register; a read register for holding the second packet read from the waiting memory; and a read register for holding the second packet read from the waiting memory; an empty determination unit that determines whether or not two packets are valid and outputs the determination result as a determination signal; and a comparison between the tags of the second packet output from the read register and the first packet output from the write register. If there is a match, both the first and second packets are output, and if there is a mismatch, the one with the larger tag of both packets is output, and the comparison result is also output. a tag comparison section that outputs the second packet as a first comparison signal; a data pair generation section that appends the data of the second packet output from the tag comparison section to the first packet and outputs it; and the packet input signal, determination section. t or the first comparison signal, control of reading and writing of the waiting memory, control of outputting FB2 held in the read register to the empty determination section or outputting the second packet to the tag comparison section, a control unit that performs control to output the first packet held in the write register to the tag comparison unit, and control to disable the FBI of the write register when the first comparison signal indicates “1-match”; It was established. Figure 5 shows a block configuration diagram of an example of a data-driven computer.
This is a program storage unit that reads the tag (data identifier) and instruction of the packet output from the input unit 1 and outputs it as an instruction packet. Reference numeral 3 denotes a firing processing unit which receives an instruction packet output from the program storage unit 2, detects an instruction packet having the same tag as that of the instruction packet, and outputs it as an operation packet; It stores command packets output from the program storage section 2. 4 receives the calculation packet output from the firing processing unit 3 and performs the calculation specified by the instruction that is part of the tag of the calculation packet,
an arithmetic processing unit that outputs a result packet; 5 is an output unit)
, receives the result packet from the arithmetic processing unit 4, and if the external flag that is a part of the tag indicates "external output", outputs the result packet to the outside and sets the external flag to "
In the case of "internal output", the result packet is output to the input section 1. 6 is a branching mechanism for sending the packet to the buffer when the flag of the packet indicates "through", and 7 is a merging mechanism for sending the data sent from the buffer 8 to the firing processing section 3. 8 is a buffer for temporarily storing packets. FIG. 6 is a block diagram of an associative memory device used as the firing processing unit 3 of the data-driven type machine X, in which 31 removes the tag of the first instruction packet, determines the memory address, and outputs the packet input signal. and an address converting section 32 that outputs a memory address is an address register that holds the memory address from this address converting section 31. 33
34 is a write register that holds the first instruction packet and has an FBI indicating whether the packet is valid or invalid; 34 is a waiting memory that stores the packet and PB; The first command packet is read from the write register 33 to the memory address from the address register 32. A read register 35 holds the second instruction packet and PB2 read from the waiting memory 34. Further, numeral 36 examines the PB2 output from the read register 35 and outputs a determination signal as a determination signal as to whether or not the second instruction packet is valid. The tag comparison unit compares the tags of the instruction packet and the first instruction packet output from the write register 33 to detect a match or a magnitude, and outputs the comparison result as a first comparison signal, and also outputs a "match" signal. In the case of , both the first and second instruction packets are output, and in the case of ``mismatch'', the one with the larger tag is output. 38 is this tag comparison section 37
The first comparison signal output from the first comparison signal and the first comparison signal output from the first comparison signal. A data pair generation unit that receives both or one of the second instruction packets and outputs an operation packet or a through packet, and when the first comparison signal indicates “match”, the data pair generation unit outputs the data of the second instruction packet. It is attached to the first instruction packet and output as @non-packet, and when it indicates "mismatch", it is attached to the first instruction packet. Second
For the instruction packet with the larger tag, the sp-bucket puffer that is part of the tag is set to sy-, and is output as a through packet. Further, 39 is the packet input signal, the determination signal and the first
This is a control section that performs the following controls in response to a comparison signal. That is, (1) Control of reading or writing to the waiting memory 34; (2) Transferring PB2 of the read register 35 to the empty determination unit 36;
Alternatively, control for outputting the second instruction packet to the tag comparison unit 37; Control for outputting the first instruction packet of the write register 33 to the tag comparison unit 37; and ■ Control for outputting the first instruction packet of the write register 33 to the tag comparison unit 37; If 33 PEIs are invalidated and indicated as “inconsistent”,
It controls writing the command packet and FBI to the waiting memory 34 by validating the J'BI. FIG. 7 is a block diagram of the tag comparison section 37.
1,372 are the 1st. In the second comparison circuit, the first comparison unit Pr371 detects the generation number or color number that is part of the tag of the second and first instruction packets output from the read register 35 and the write register 33. It inputs and compares them, detects coincidence or magnitude, and outputs the detection result as a second comparison signal. Further, the second comparison circuit 372
The second and first output from both registers 35 and 33
Destination node numbers, which are part of the tag of the instruction packet, are input and compared, a match or a magnitude is detected, and the detection result is output as a third comparison signal. 373 is a second register that holds the second instruction packet output from the read register 35;
374 is the first output from the write register 33.
This is the first register that holds instruction packets. i, 375 is the second. Upon receiving the third comparison signal, one of them is outputted as the first comparison signal, and the first. This is a comparison/judgment circuit that controls the second registers 374 and 373), and more specifically, when the comparison signal 'j42 indicates "mismatch", the second comparison signal is set as the first comparison signal, and the second comparison signal is set as the second comparison signal. If the comparison signal indicates a "match," the third comparison signal is output as the first comparison signal, and the first comparison signal is output as the first comparison signal.
With the comparison signal of 1st. 2nd register 3f 4, 3f 3Kf
This control controls the output of the first and second instruction packets held in the first and second instruction packets. Next, the operation will be explained. FIG. 11 shows the packet format used in the data-driven computer. A packet consists of a tag (data identifier), first data, and second data, and the tag includes a through packet flag, an external flag, a generation number or a color number, a destination node number, an instruction, and an L/R graph. configured. The input section 1 inputs a packet having a tag and first data inputted from the outside, and a packet having a tag and first data outputted from the output section 5, and outputs them to the program storage section 2. The program storage unit 2 stores the data flow graph in its memory, and when a packet is input, the destination node number, command, and input packet are stored from the memory using the destination node number, which is part of the tag of the input packet, as an address. Reads the L/R flag indicating whether the data it has is the left or right input of the instruction, and the destination node number that is part of the tag of the input packet. The instruction and L/R graph are updated and output together with the first data as a first instruction packet. This first command packet is input to the firing processing section 3, and the firing geography section 3 outputs a calculation packet. The firing processing section 3 uses the associative memory shown in FIG. 6, and its operation will be explained with reference to FIG. The first instruction packet output from the program storage section 2 is input to the address conversion section 31 and the write register 33. The address conversion unit 31 outputs a packet input signal indicating that the first instruction packet has been input to the control unit 39, and also outputs the generation number or cut number and destination node number that are part of the tag of the first instruction packet. The memory address of the waiting memory 34 is determined and output. Control ff1s39c to which the packet input signal is input;
Control is performed to hold the memory address output from the address converter 31 to the address register 32, so that the address register 32 holds the memory address. Next, the control unit 39 sends a mode signal to the waiting memory 34 indicating the mode of reading or writing from the memory.
The address register 32 is controlled to output the memory address held by the address register 32 to the waiting memory 34. The waiting memory 34 to which the mode signal and memory address are input has a tag, a command packet with data, and PB as one piece of information, as shown in FIG. Of this information, FB is a bit indicating whether or not the tag and data are valid. The waiting memory 34 has a mode signal and an address vs;
Input the memory address output from ty, evening 32,
The PB and instruction packet stored in the waiting memory 34 specified by the memory address are read and outputted to the read register 35. Read register 35
FB2 held at
Ru. The vacancy determination unit 3'6 outputs PBZ output from the read register 35 to the control unit 39 as a determination signal. When the determination signal is inputted, the control unit 39 writes valid to PBl of the write register 33, outputs the mode signal as "Write" to the waiting memory 34, and sends the corresponding information to the address register 32. Controls output of the memory address held by the address register 32 to the waiting memory 34, and outputs the first command packet and FBI held by the write register 33 to the waiting memory 34. Take control. Waiting memory 3 into which a mode signal indicating the "write" mode is input
4 stores the first instruction packet and PBI outputted from the write register 33 at the memory address outputted from the address register 32. Therefore, when the determination signal indicates invalidity, since the area of the waiting memory 34 specified by the memory address held in the address register 32 is empty, the first instruction packet held in the write register 33 and the FBI are stored in the waiting memory. 34 and waits for an instruction packet with the same tag. When the determination signal indicates validity, the control unit 39 controls the write register 33 and the read register 3 to output the first and second instruction packets 2 held in the write register 33 and the read register 35 to the tag comparison unit 37.
Do this for 5. Next, the operation of the tag comparison section 37 will be explained according to the block diagram shown in FIG. The first instruction packet output from the write register 33 is held in the first register 374. Further, the second instruction packet output from the read register 35 is held in the second register 373. The generation number or cuff number, which is part of the tag of the first and second instruction packets output from the write register 33 and the read V raster 35, is sent to the first comparison circuit 371, and the destination node number is sent to the second comparison circuit. Sent to 372. 1st
The comparison circuit 371 compares the generation #rt or the number of the two instruction packets, detects a match or a magnitude, and uses the comparison result as a second comparison signal to the comparison output determination circuit 3.
Output to 75. Further, the second comparison circuit 372 compares the destination node numbers of both instruction packets, detects a match or a magnitude, and uses the comparison result as a third comparison signal to the comparison output determination circuit 375.
Output to. If the second comparison signal indicates "mismatch (packet collision)", the comparison output determination circuit 375 outputs the second comparison signal as the first comparison signal, and outputs the second comparison signal as the first comparison signal, and outputs the second comparison signal as the first comparison signal, Control is performed for the first and second registers 374 and 373 to output the larger one. Further, if the second comparison signal indicates "match", the third comparison signal is output as the first comparison signal, and if the third comparison signal indicates "match", both command packets are output as "mismatch" (packet (collision)", the control to output the one with the larger destination node number of both command packets is performed. The data pair generation section 38 generates the first comparison signal outputted from the tag comparison section 37, the first comparison signal outputted from the tag comparison section 37, and the first comparison signal outputted from the tag comparison section 37. If both or one of the second command packets are input and the first comparison signal indicates "match",
The data of the second instruction packet is attached (fired) to the data portion of the first instruction packet indicated by the L/R flag of the second instruction packet, and is output as an operation packet. Further, if the first comparison signal indicates a "mismatch", the first or second instruction packet is set to throughput, and this instruction packet is output as a S/V-packet. Further, the control unit 39 inputs the first comparison signal, and receives the first comparison signal.
If the comparison signal indicates a "match", the PBI of the write register 33 is invalidated, and if the tag of the first instruction packet is smaller than the tag of the second instruction packet, the FBI of the pledge register 33 is validated. . At the same time, a mode signal indicating "write" is output to the waiting memory 34, and the address register p32 is output to the address register 32.
controls to output the memory address held by the write register 33, and outputs the first instruction packet and PI 31 held by the write V dimeta 33 to the write register 33, thereby outputting the first instruction to the waiting memory 34. Store packets and FBI. As a result of the above operation, if the tags of the first and second instruction packets match, the first and second instruction packets fire, are output as an operation packet, and the second instruction packet is stored in the memory 34. In order to invalidate the area, the FBI of the sorting register 33 is invalidated and stored into the memory 34. Also, 1st. If the tags of the second instruction packet do not match (packets collide) and the tag of the first instruction packet is smaller than the tag of the second instruction packet, the waiting memory 34
The second instruction packet stored in the content addressable memory device and the instruction packet input to the content addressable memory device are exchanged. If the tag of the first instruction packet is larger than the tag of the second instruction packet, the second instruction packet will be stored as is as soon as it is stored in the waiting memory 34, and the 16th instruction packet will be output. Here, the operation of the associative memory device will be explained using FIGS. 8(a) and ('b). In order to simplify the explanation, it is assumed here that the generations 'af or the number of packets are all the same, and the memory used as the waiting area can store four packets. “3” as the destination node number
The first and fourth packets with "7" as the destination node number and the second and third packets with "7" as the destination node number use the same memory address 13" as a waiting area. Therefore, the first packet is input and then the fourth packet is input. When a packet is input, the first and fourth packets are fired because their destination node numbers are both '3', and are output as calculation packets. Now, consider the case where the first packet is input and then the second packet is input. When the first packet is input, since the first packet has 3" as the destination node number, it is stored at the memory address "3°. Second
Since the packet has "7" as the destination node number, it will indicate the memory address "3m".Therefore, the destination node numbers of the first and second packets are compared, and the destination node number of the second packet is Since the destination node number of is larger (the packet collided), the second packet is output as a through-packet flag, and the 17th <get is directly stored at memory address "3" ” and waits for the fourth packet. Next, consider the case where the second packet is input, followed by the first packet. The second packet has “7” as the destination node number, It is stored in the memory address "3". When the first packet is input in this state, the destination node number of the first packet is '3°, so it will inevitably indicate the memory address "3". , 1st
The destination node numbers of the packet and the second packet are compared, and since the destination node number of the first packet is smaller (the packets collided), the second packet stored at memory address "3" is The through packet flag becomes through and is output as through v −/<
The calculation packet output from the firing processing unit 3 using an associative memory device is input to the calculation geography unit 4, and the data is stored in accordance with the instructions that are part of the tag of the calculation packet. The arithmetic processing is performed and a result packet is output.The output unit 5 inputs the result packet from the arithmetic processing unit 4, determines the external flag that is part of the tag of the result packet, and determines whether the external flag indicates the external output. If the external flag indicates internal output, the result packet is output to the input unit 1.The SUL m packet output from the firing processing unit 3 is sent to the arithmetic processing unit 4 and the program storage unit 2. Then, without being processed,
It returns to the firing processing unit 3 again and undergoes the firing process again as a command packet.As a second specific example, as shown in FIG.
Consider the case of executing a structured dataflow graph. In FIG. 4, the main block 41 and the loop 49 represent the input side of the data flow graph having a loop structure, and the graph 50 represents the output side of the data flow graph having the loop structure. A synchronization block 45 detects that all data have completed one μm period, and a condition determination 44 determines whether the loop should be continued again or terminated. In response to the signal from the condition judgment 44, the node 46TG passes the data input from the right arc only when the truth value of the data input from the input arc from the left side is true, and vice versa. The node 47S performs the process of absorbing the data, continues the loop, and terminates it.
When the truth value of the data input from the input arc from the left side is true, W outputs it to the left side, and when it is false, it outputs it only to the right arc. By performing this operation, it is possible to continue the loop. In the case of termination, a data packet is sent to the output side of the graph. Now, in the data-driven computer shown earlier in the conventional example,
Consider the case where a dataflow graph having the loop structure shown in FIG. 4 is executed. The node number of the node 51 in FIG. 4 is O, and the node number of the node 48 is 80. Let the left input packet of node 48 be the first packet, and the right input packet of node 51 be the second packet. As shown in FIG. 8(b), the first packet and the second packet point to the same memory address in the operand memory (memory address 'O'). If the packet arrives, the second packet will occupy the location at address 10'. Even when the first packet arrives and causes a hash collision, conventional data-driven computers determine whether to give priority to the first packet or the second packet, depending on the node number to which the data packet is next directed. Since the node number (80) of the second packet is greater than the node number (0) of the first packet, the first packet is treated as a through packet. Furthermore, since the node 51 is waiting for the data packet after the second packet and the first packet have been processed by the node 48, this data processing will completely stop unless the first packet is processed. . However, because the second baguette interferes and the first packet is not processed, the processing of this data flow graph remains in a deadlock state and stops forever. [Problem to be solved by the invention] When processing a complex data flow graph, as in the second specific example explained in the conventional example, the data processing of a data-driven computer may be affected depending on the order in which data packets arrive. °C may be interrupted and permanently stopped (deadlock state). [Means for solving the problem J] In a data-driven computer consisting of an input section, an output section, a program storage section, a processing section, and an arithmetic processing section as shown in the conventional example, ■Deadlock detection device■ Packet release It is equipped with a control device. ■As a deadlock detection device, the data processing system consisting of the five parts mentioned above has the function of detecting a deadlock state where processing is completely interrupted before the end of data processing, and sending a deadlock signal to the packet release control device (■). It is something. ■As a packet release control device, in order to receive a deadlock signal from the deadlock detection device and release one or more packets stored in the firing processing section,
It controls the packet waiting function of the firing processing section. "Operation" In the invention of the present application, in a data-driven computer,
Depending on the order in which data packets arrive, deadlock may occur. At this time. The deadlock detection device notifies the packet emission control device that the entire device has fallen into a deadlock, and in response, the packet emission control device detects the cause of the deadlock from among the packets stored in the firing processing section. By discharging the packets that have become , deadlock is avoided and data processing is resumed. The released packet will be returned to the firing processing section once data processing begins. [Example J] Hereinafter, a first example of the present invention will be described with reference to the drawings. FIG. 1 shows a block configuration diagram of a first embodiment of a data-driven computer. In the figure, 1 is an input section for inputting an external transfer packet, 2 is an input section for storing a data flow graph, and The tag of the packet output from 1 (
This is a program storage unit that reads instructions according to data identifiers and outputs them as instruction packets. Reference numeral 3 denotes a firing processing unit which receives an instruction packet output from the program storage unit 2, detects an instruction packet having the same tag as that of the instruction packet, and outputs it as an operation packet; It stores command packets output from the storage unit 2. 5 is an output unit which receives the calculation packet output from the 4-cigarette firing processing unit 3, performs the calculation specified by the instruction that is part of the tag of the calculation packet, and outputs the result packet; After receiving a result packet from the arithmetic processing unit 4, if the external flag that is part of the tag indicates "external output", the result packet is output to the outside, and the external flag indicates "internal output". If it indicates, the result packet is output to the input section 1. Reference numeral 9 is a timer. In this embodiment, the timer 9 is used as a deadlock detection device, and the timer 9 is used as a deadlock detection device, and when a certain period of time has elapsed since no calculations are performed in the calculation processing unit, it is regarded as a deadlock state, and the deadlock is detected. A lock signal is sent to the firing processing section 3. The ignition processing section 3 has a built-in packet release control device.
When a packet collision occurs or when a deadlock signal is received from the timer 9, it is determined which packet is to be a through packet, and that packet is output. Through packets are sorted at the branching section 7 and stored in a buffer, and sent to the merging section 8 while the device is performing arithmetic processing.
is sent to the ignition processing section 3 again. FIG. 2 is a block diagram of an associative memory device used as the firing processing section 3 of the data-driven computer, in which 31 hashs the tag of the first instruction packet, determines the memory address, and stores the packet input signal and the memory. The address converter 32 that outputs the address is an address register that holds the memory address from the address converter 31. 33
34 is a write register that holds the first instruction packet and has an FBI indicating whether the packet is valid or invalid; 34 is a waiting memory that stores the packet and PB; The first instruction packet is read from the write register 33 to the memory address from the address register 32. A read register 35 holds the second instruction packet and PB2 read from the waiting memory 34. Further, numeral 36 examines the PB2 output from the read register 35 and outputs a determination signal as a determination signal as to whether or not the second instruction packet is valid. It is a tag comparison section that compares the tags of the instruction packet and the first instruction packet output from the write register 33 to detect a match or a size. In the case of "mismatch", both the first and second instruction packets are output, and in the case of "mismatch", the one with the larger tag is output. 38 is this tag comparison section 3
7 and the first comparison signal output from the first. A data pair generation unit that receives both or one of the second instruction packets and outputs an operation packet or a through packet, and when the first comparison signal indicates "match", the second instruction packet The data of the first instruction packet is attached to the first instruction packet and output as a calculation packet, and if it indicates a "mismatch", the data of the first instruction packet is added to the first instruction packet and output as a calculation packet.
For the second command packet with a larger tag, the through packet flag, which is part of the tag, is set to sp-, and the packet is output as a through packet. Further, 39 is the determination multiple of the packet input signal 9 and tg
This is a control unit that performs the following control in response to the comparison signal of l. That is, (1) Control of reading or writing to the waiting memory 34; (2) Transferring PB2 of the read register 35 to the empty determination unit 36;
Alternatively, control for outputting the second instruction packet to the tag comparison unit 37; Control for outputting the first instruction packet of the write register 33 to the tag comparison unit 37; and ■ Control for outputting the first instruction packet of the write register 33 to the tag comparison unit 37; 330 FBI is invalidated and indicates “inconsistency”,
It controls writing the command packet and FBI into the waiting memory 34 by validating the FBI. Further, 40 is a DL control unit. In this embodiment, the DL control unit 40 is used as a packet release control device, receives a deadlock signal from the timer 9, reads out the waiting memory 34, and reads out the read register 330F.
Disable BI. Then, the tag flag of the data packet is set to 1st/L/J, and control is performed to output it as a through packet. FIG. 3 shows the internal configuration of the DL control section. 401 receives the good lock signal from the timer 9, and
A random number generator 402 generates memory addresses using random numbers, and a flag generation unit 403 rewrites the flag of the address data generated by the random number generator 401 to "S)v-1". This is a signal generator that generates two signals: a judgment signal for disabling data FBI, and a mode signal for setting the memory to read mode.The operation will be explained next. The deadlock avoidance method will be explained using the second concrete example. Consider the case where a data flow graph having a more μm structure shown in Fig. 4 is processed. Let the node number of node 51 in Fig. 4 be O. , the node number of node 48 is 80. The right input packet of node 48 is the first packet,
Let the left input packet of node 51 be the second packet. Now, assuming that the second packet arrives earlier than m1t<key, the first packet and the second packet point to the same memory address in the memory 34 (memory address "o"). Now, the second packet occupies address 101. Even if the first packet arrives and a hash collision occurs, the conventional data exchange method described above compares the node numbers of the data tags, so the node number is larger than the second packet's node number (0). The second packet is output as a t-through packet. Moreover, the node 51 with the node number 0 sends the second packet, and the first packet goes to the node 4.
Since it is waiting for the data packet processed in step 8, unless the first packet is processed, this data processing will completely stop, leading to a deadlock situation. The timer 9 measures the time since the last arithmetic processing was performed in the arithmetic processing section 4, and sends a deadlock signal to the DL control section 40 of the firing processing section 3 when the measured time exceeds a certain fixed time. The timer 9 initializes a time count each time an arithmetic process is performed or outputs a deadlock signal, and determines that a deadlock state occurs when no arithmetic process is performed for a certain period of time. Upon receiving the deadlock signal from the timer 9, the random number generator 401 of the DL control unit 40 randomly generates an address t-, sends a signal to the address register 32, flag generation unit 402, and signal generator 403, and generates a signal. The device 403 puts the data at the address in the memory 34 into read mode and invalidates the PBI at the address. The flag generation unit 402 writes the flag of the data packet read from the memory 34 and outputted to 1 through, and outputs it as a through packet. −
/(The data packet output as a kerato is sent through the branching unit 7 to the buffer 8. While this series of operations is returned ab by the deadlock signal from the timer 9, the second packet is transferred from the memory 34. The first packet is output as a through packet, and while the second packet remains in the buffer 8, the first packet is stored in the memory 34. Thereafter, it is sent to the arithmetic processing section 4 together with the corresponding data packet, where arithmetic processing is performed. When the data processing is restarted, the packets remaining in the buffer 8 will be gradually returned to the firing processing unit 4 through the merging unit 6. This will prevent the data processing from breaking out of the deadlock. Next, as another example, a case in which the present invention is applied to the tweeter-driven computer of the earlier application was described, but it can also be applied to other data-driven computers that use hash memory in the firing geography section. It goes without saying that this is possible. ■In a data-driven computer that does not use hash memory for the firing processing section but uses ordinary memory for the operand memory, an overflow of the obefund memory is a deadlock condition. It is possible to avoid the Sibra lock by deeming and detecting this detection signal, and similarly discharging the data packet from the operand memory in response to this detection signal. ■ Figure 10 shows a second embodiment of the present invention. However, in the first embodiment, the detection of the stoppage of data processing in the data processing system was focused on the data processing of the arithmetic processing unit 4. Focusing on data processing such as 1 branch, the timer 9 detects that a certain period of time has elapsed since the input section 1 and the output section 5 are no longer performing data processing, and the same data as in the first embodiment is output. A drive-type computer can be constructed. ■The address generation method for the hash memory in the packet release control device is as follows, instead of the random number generator 401 in FIG.
By using the counter 404, two or more addresses are generated at the same time (see Figure 9), and two or more addresses are generated simultaneously (see Figure 9 (bJ)). Two or more packets stored in the computer may be simultaneously released. ■Methods for measuring the time elapsed by the timer include (A) a method of measuring using the system clock that the computer system itself has; (b) data It may also be realized using an analog circuit, such as discharging a capacitor or the like every time a process is performed, and performing the process in the time from when electricity begins to be stored until a certain amount of charge is accumulated [Effects of the invention J and above] According to the present invention, even if a Sibra lock occurs in data processing of a data-driven computer, by providing a deadlock detection device and a packet release control device, it is possible to promptly avoid stopping processing due to deadlock. A data-driven computer can be obtained.Furthermore, if a deadlock detection device and a packet release control device are provided in the data processing system of a data-driven computer using hash memory as the memory of the firing processing section, Even if a deadlock state due to a collision occurs, it has a relatively simple structure and uses an associative memory device with a small capacity of memory and an associative memory device with a small capacity of memory in the firing processing section, but can still stop the MW due to a deadlock. A data-driven calculator is obtained that can be avoided.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はこの発明の第1の実施例によるデ゛−タ駆動形
計算機のブロック図、第2図は該計算機を構成する発火
処理部の一実施例のブロック図、第3図は発火処理部に
内蔵されているDL制御部の一実施例のブロック図、第
4図はループつデ°−タフローグラフの一例を示した図
、第5図はテ゛ータ駆動形計算機の一従来例を示すブロ
ック図、第6図は該計算機を構成する発火処理部の一従
来例を示すブロック図、第7図は談発火処理部を構成す
るタグ比較部の一従来例を示すブロック図、第8図ら)
はデ゛−タフローグラブの一例を示f図、第8図(b)
はノード番号とメモリアドレスの対応の一例を示した図
、第9図は発火処理部を構成するDL制御部のブロック
図の第2の実施例を示した図、第10図はこの発明のデ
ータ駆動形計算機の第2の実施例を示した図、第11図
は該計算機を処理するデータパケットの内部構成図、第
12図は該計算機のメモリの内容を示した図である。 1は入力部を示し、2はデログフム記憶部を示し、3は
発火処理部を示し、4は演算処理部を示し、5は出力部
を示し、6は分岐部を示し、7は合流部を示し、8はバ
ッファを示し、31はアドレス変換部を示し、32はア
ドレスレジスタを示し、33は書き込みレジスタを示し
、34はメモリを示し、35は読出しレジスタを示し、
36は空き判定部を示し、37はタグ比較部を示し、3
8はテ′ータ対生成部を示し、39は制御部を示し、4
0はDL制御部を示し、401は乱数発生器を示し、4
02はフラグ生成部を示し、403は信号発生器を示す
。 なお、図中、同一符号は同一、又は和尚部分を示す。 代 理 人  大  岩   増  雄第1図 第3図 第4図 第5図 第7図 (b) 第9図 (d) (b) 第10図 第12図 手続補正書(自発) l、事件の表示   特願昭63−112844号2、
発明の名称 データ駆動形計算機 3、補正をする者 事件との関係 特許出願人 住 所    東京都千代ぽ1区丸の内二丁目2番3号
名 称  (601)三菱電機株式会社代表者 志 岐
 守 哉 4、代理人 住 所    東京都千代田区丸の内二丁目2番3号三
菱電機株式会社内 5、 補正の対象 明細書の発明の詳細な説明の欄。 6、 補正の内容 (1)明細書の第2頁第15行にrAPJ5863 (
特願昭62−   号」とあるのを「特願昭62−54
406号」に訂正する。 (2)明細書の第37頁第13行に「談発火処理部」と
あるのを「該発火処理部」に訂正する。 以  と
FIG. 1 is a block diagram of a data-driven computer according to a first embodiment of the present invention, FIG. 2 is a block diagram of an embodiment of a firing processing section constituting the computer, and FIG. 3 is a block diagram of a firing processing section according to a first embodiment of the present invention. FIG. 4 is a block diagram of an example of a DL control section built in the computer, FIG. 4 is a diagram showing an example of a loop data flow graph, and FIG. 5 is a diagram showing a conventional example of a data-driven computer. 6 is a block diagram showing a conventional example of the firing processing section that constitutes the computer; FIG. 7 is a block diagram showing a conventional example of the tag comparison section that constitutes the firing processing section; FIG. 8, etc. )
Figure 8(b) shows an example of a digital glove.
9 is a diagram showing an example of the correspondence between node numbers and memory addresses, FIG. 9 is a diagram showing a second embodiment of the block diagram of the DL control section constituting the firing processing section, and FIG. 10 is a diagram showing the data of the present invention. FIG. 11 is a diagram showing the internal configuration of a data packet processed by the computer, and FIG. 12 is a diagram showing the contents of the memory of the computer. 1 indicates the input section, 2 indicates the deroghum storage section, 3 indicates the firing processing section, 4 indicates the arithmetic processing section, 5 indicates the output section, 6 indicates the branching section, and 7 indicates the merging section. 8 indicates a buffer, 31 indicates an address translation unit, 32 indicates an address register, 33 indicates a write register, 34 indicates a memory, 35 indicates a read register,
36 indicates a free space determination section, 37 indicates a tag comparison section, and 3
8 indicates a data pair generation section, 39 indicates a control section, and 4.
0 indicates the DL control unit, 401 indicates the random number generator, 4
02 indicates a flag generation unit, and 403 indicates a signal generator. In addition, in the figures, the same reference numerals indicate the same parts or the priest parts. Agent Masuo Oiwa Figure 1 Figure 3 Figure 4 Figure 5 Figure 7 (b) Figure 9 (d) (b) Figure 10 Figure 12 Procedure amendment (voluntary) l. Display Patent Application No. 63-112844 2,
Name of the invention Data-driven computer 3, relationship to the amended person case Patent applicant address 2-2-3 Marunouchi, Chiyopo 1-ku, Tokyo Name (601) Mitsubishi Electric Corporation Representative Moriya Shiki 4. Address of the agent: Mitsubishi Electric Corporation, 2-2-3 Marunouchi, Chiyoda-ku, Tokyo 5. Detailed description of the invention in the specification to be amended. 6. Contents of amendment (1) rAPJ5863 (
``Special Application No. 1988'' was replaced with ``Special Application No. 1982-54''.
No. 406”. (2) In the 37th page, line 13 of the specification, the phrase "ignition processing section" is corrected to "the ignition processing section." After and

Claims (1)

【特許請求の範囲】 外部からのパケットを内部に取り込む入力部と、このパ
ケットのタグに従つてプログラムを読み出してパケット
データとともに命令パケットとして出力するプログラム
記憶部と この命令パケットを受けて発火処理し、演算パケットを
出力する発火処理部と、 この演算パケットに対して演算処理を行い、結果パケッ
トを出力する演算処理部と、前記結果パケットを受けて
該結果パケットを外部又は前記入力部へ出力する出力部
と、 上記5つの部分から成るデータ処理系で、データ処理が
終了以前に完全に中断してしまい、デツドロツク状態に
陥つてしまつた時、デツドロツクであることを検出する
デツドロツク検知装置と、該デツドロツク検知装置から
出力されるデツドロツク信号に呼応して、発火処理部に
格納されている1つ以上のパケットを放出させるべく、
発火処理部のパケット待ち合わせを制御する パケット放出制御装置とから構成されるデータ駆動形計
算機。
[Claims] An input unit that takes in packets from the outside, a program storage unit that reads out a program according to the tag of this packet and outputs it as an instruction packet together with packet data, and a program storage unit that receives this instruction packet and performs firing processing. , a firing processing unit that outputs a calculation packet; a calculation processing unit that performs calculation processing on the calculation packet and outputs a result packet; and a calculation processing unit that receives the result packet and outputs the result packet to the outside or to the input unit. an output unit; a deadlock detection device for detecting a deadlock when data processing is completely interrupted before completion in the data processing system consisting of the five parts described above and the data processing system is in a deadlock state; In order to release one or more packets stored in the firing processing unit in response to a deadlock signal output from the deadlock detection device,
A data-driven computer consisting of a packet release control device that controls the packet waiting of the firing processing section.
JP11284488A 1988-05-10 1988-05-10 Data driving type computer Pending JPH01282642A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11284488A JPH01282642A (en) 1988-05-10 1988-05-10 Data driving type computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11284488A JPH01282642A (en) 1988-05-10 1988-05-10 Data driving type computer

Publications (1)

Publication Number Publication Date
JPH01282642A true JPH01282642A (en) 1989-11-14

Family

ID=14596947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11284488A Pending JPH01282642A (en) 1988-05-10 1988-05-10 Data driving type computer

Country Status (1)

Country Link
JP (1) JPH01282642A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282429A (en) * 2009-06-04 2010-12-16 Canon Inc Image processing device and control method thereof
EP2447773A1 (en) 2010-11-02 2012-05-02 Fujifilm Corporation Photosensitive resin composition, method for producing pattern, MEMS structure, method for producing the structure, method for dry etching, method for wet etching, MEMS shutter device, and image display apparatus
JP2014112396A (en) * 2014-01-07 2014-06-19 Canon Inc Image processor and control method therefor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282429A (en) * 2009-06-04 2010-12-16 Canon Inc Image processing device and control method thereof
EP2447773A1 (en) 2010-11-02 2012-05-02 Fujifilm Corporation Photosensitive resin composition, method for producing pattern, MEMS structure, method for producing the structure, method for dry etching, method for wet etching, MEMS shutter device, and image display apparatus
JP2014112396A (en) * 2014-01-07 2014-06-19 Canon Inc Image processor and control method therefor

Similar Documents

Publication Publication Date Title
US4734850A (en) Data process system including plural storage means each capable of concurrent and intermediate reading and writing of a set of data signals
US6151658A (en) Write-buffer FIFO architecture with random access snooping capability
JPH05334170A (en) Control circuit for dual port memory
EP0364226B1 (en) A system for performing a serializing control of a reference to a main storage
JPH01282642A (en) Data driving type computer
JP2013512520A (en) The system that allows direct data transfer between memories of several components of the system
US5388229A (en) Data transmission system which prefetches data to be transferred
JP3808525B2 (en) Write and / or read access priority management device
JPH01239627A (en) Coincidence detection circuit
JPH0695345B2 (en) Associative memory device and data driven computer
JPH0383186A (en) Data driving type processor
US6996665B2 (en) Hazard queue for transaction pipeline
US5151982A (en) Data processing system
JPH08272687A (en) Input/output cache memory
JPH04241688A (en) Computer driven by data
JPH01106228A (en) Data driving type computer
JPH0383185A (en) Data driving type processor
JPS61240349A (en) Cash-controlling system for information processor
JPH07219845A (en) Cache memory control system
JPH0619957A (en) Vector data processor
JPH0528290A (en) Data driven type computer
JPH07105094A (en) Cache memory device
KR19980050290U (en) Shared memory device using two-stage input queue
JPH0769863B2 (en) Data processing device
JPH01177129A (en) Variable connection processor