JP3689143B2 - データ駆動型情報処理装置 - Google Patents
データ駆動型情報処理装置 Download PDFInfo
- Publication number
- JP3689143B2 JP3689143B2 JP07657495A JP7657495A JP3689143B2 JP 3689143 B2 JP3689143 B2 JP 3689143B2 JP 07657495 A JP07657495 A JP 07657495A JP 7657495 A JP7657495 A JP 7657495A JP 3689143 B2 JP3689143 B2 JP 3689143B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- constant
- output
- information
- argument
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Description
【産業上の利用分野】
この発明は情報処理の分野に関し、特に、命令の実行に必要なデータがすべて揃った時点でその命令の実行が行なわれる、データ駆動型情報処理に関する。
【0002】
【従来の技術】
データ駆動原理は、本来的に自然な情報処理方式であると考えられる。このデータ駆動原理を基本原理とするデータ駆動型プロセッサは、実行可能な高位仕様記述から直接変換された対象プログラムを効果的に実行しようとする研究計画から生まれた一連のプロセッサの総称である。
【0003】
データ駆動原理とは以下のようなものである。プログラムは複数の命令から構成される。各命令は、それぞれの実行に必要な引き数データがトークン(データパケット)の形ですべて到着すると実行可能な状態になる。実行可能な状態になった命令は、その引き数データおよび実行結果の宛先とともに演算処理機構に送られる。
【0004】
ここで、実行可能な状態となった命令があるか否かについての判定と、実行可能な状態になった命令が存在する場合に、その命令を、その引き数データおよび実行結果の宛先とともに演算処理機構に送る処理を実現するのが、発火制御機構と呼ばれるものである。
【0005】
演算処理機構では、当該命令が実行され、命令実行結果が、その宛先に従って、次に実行すべき命令の引き数データとしてトークンの形式で転送される。
【0006】
このように、データを含むトークンの到着によって命令の実行が駆動されることから、このような計算機構はデータ駆動方式と呼ばれている。図20に、データ駆動原理を示す。図20の左部に示されるように、ある命令が2つの入力を必要としている場合、この命令に対応するノードには2つの入力枝が存在する。出力枝は1つである。この左右の入力枝からトークンがこのノードに到着すると、当該命令は発火し、演算結果(命令実行結果)のデータを、図20の右部に示すように、出力トークンとしてその出力枝に送出する。
【0007】
このようなデータ駆動原理については、たとえば「情報科学事典」(岩波書店刊、1994年)の第494頁〜第497頁に記載されている。
【0008】
図21に、従来のデータ駆動型プロセッサの概略構成を示す。このデータ駆動型プロセッサ400は、動的発火制御(待合せ)機構(FC:Firing Control)402と、演算処理機構(FP:Function Processor)108と、プログラム記憶機構(PS:Program Store )104と、データ入出力制御部(I/O:Input Output Control)102とを含み、これら各基本機能を巡回パイプラインで接続する構成を採用している。この巡回パイプラインによるデータ転送および処理のための基本構成に、図22に示すようなハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続が用いられる。
【0009】
図22を参照して、このデータ転送機構は、たとえばハードウェアプリミティブ414の前後に設けられたデータラッチ410および412と、これらデータラッチ410および412に対してデータ転送のタイミング信号を与えるハンドシェイク型データ転送制御を行なうC素子406および408を含む。こうした構成を連続して設けることにより、データが各データラッチを順に転送され、その間にハードウェアプリミティブ414によってそのデータに対する処理が行なわれる。
【0010】
このように、物理的水準の作業パケットであるデータパケットが、この構成中を自己経路選択機能により自律的に流路を選択し、それによって各機能要素で順次処理を受けつつ、流路を流れていくことにより、情報処理の実行も自律的に進行する。このような方式を導入することにより、データ駆動型プロセッサからは、システムバス、システムクロック、集中制御機構などがすべて排除される。すなわち全システムの制御が完全に分散化されている。
【0011】
このようなデータ駆動型プロセッサの処理速度は、本質的に、図22に示されるC素子(自己タイミング型転送制御素子)の内部回路構成およびデバイスの自然科学的特性により決まる。C素子406(または408)の内部回路構成を図23に示す。図23は一例であるが、このC素子は、前後のC素子と信号CI、CO、RI、ROを用いてデータ転送のタイミングを決め、それに合せてデータラッチの制御パルスCPを出力していく。
【0012】
このため、C素子の内部回路構成を決定すれば、この条件下におけるハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続網間での段間処理でどの程度の処理時間を要するかが決定される。
【0013】
データ駆動型プロセッサの通常の演算処理においては、演算を下位の演算要素に分割し、これを何段かに分けて処理する。これをパイプライン分割処理と呼ぶ。
【0014】
しかし、図21に示す動的発火制御機構402においては、このようなパイプライン分割処理が実施できない。この事情を以下に説明する。
【0015】
データ駆動型プロセッサにおいて、パケットとして与えられる引き数データの発火制御機構をどのように実現するかが、プログラムの実行速度や計算機全体のハードウェア量に大きな影響を与える。すなわち、発火制御機構に要するハードウェアや待合せの処理時間を低減することが、データ駆動型プロセッサの方式設計において最も重要な課題の1つである。
【0016】
発火制御機構に基本的に必要とされる機能は次の3つである。
(1) 入力されたパケットが2入力命令への引き数データであるか否かを調べる。1入力命令へのパケットの場合には、待合せのための処理をバイパスする。
【0017】
(2) 入力されたパケットが2入力命令へのパケットの場合は、その相手方パケットが既に到着しているか否かを調べる。
【0018】
(3) 既に相手方パケットが到着していれば、それを他方の引き数データとして読出し、入力パケットとともに演算処理機構に転送する。相手方パケットが未だ到着していない場合には、待合せメモリに当該入力パケットを格納する。
【0019】
データ駆動型プロセッサへの入力パケットは、宛先指定部分とデータ部分とから構成される。これらデータパケットの構成を、図33および図34に示す。図33は、発火制御機構から演算処理機構に転送される経路以外におけるパケット510の形式を示し、図34は発火制御機構から演算処理機構に転送されるデータパケット512の形式を示す。これらはあくまでも一例である。
【0020】
図33および図34を参照して、データ駆動型プロセッサへの入力パケットの宛先指定部分には、一般的には、要素プロセッサ番号、命令記憶番地(ノード番号)ND、世代番号GNなど待合せの相手を特定するための宛先情報の他に、パケットの型、待合せ条件などの情報が含まれる。データ部分は、一般的には、データの型とデータ自身とから構成される。図33および図34において左データはLDで、右データはRDで示される。発火制御機構は、これらの宛先情報を用いて、上記の発火制御機能を実現する。
【0021】
発火制御機構の論理回路図を図25および図26に示す。図25および図26に示す回路は図24に示すように組合される。この発火制御機構は図21における発火制御機構402である。
【0022】
図25および図26を参照してこの発火制御機構402は、C素子420、422、424、426、428、および430と、データラッチ440、442、444、446、448、450、452および454と、FC対応2入力命令実行パケット検出部254と、発火制御主要処理部188と、データパケットの廃棄、消滅などの機能を実現したり、その他ハンドシェイク型転送制御を行なうための論理ゲート回路460、462、および464とを含む。
【0023】
図25および図26に示される動的発火制御機構402での処理は次のように行なわれる。データパケットがデータラッチ440にラッチされると、FC対応2入力命令実行パケット検出部254が、このパケットがFC対応2入力命令実行パケットであるか否かを検出する。FC対応2入力命令実行パケット検出部254は、入力パケットがFC対応2入力命令実行パケットであるか否かを表現するフラグFRを発生させ、フラグFRを入力パケットデータとともに発火制御主要処理部188に送る。
【0024】
発火制御主要処理部188によって処理され出力されたデータは、データラッチ450、452および454によって、入力パケットデータとともにそのうちの必要なデータが取捨選択され、出力パケットが形成される。出力パケットはデータラッチ454から出力される。
【0025】
発火制御主要処理部の論理回路図を図28および図29に示す。図28および図29に示される回路は図27に示すように組合される。
【0026】
図28および図29を参照して、発火制御主要処理部188は、発火制御主要処理部C素子270およびC素子288と、データラッチ276、280、286および296と、待合せメモリ用アクセス調整部282と、待合せメモリ284と、ハッシュ衝突検出部290と、発火詳細検出部292と、宛先情報選択部294と、インバータ272および274とを含む。
【0027】
発火制御主要処理部188は以下のように動作する。入力パケットが2入力命令実行パケットであるか否かを表現するフラグFRと、発火制御機構に与えられたデータパケット中の必要なデータが発火制御主要処理部188に与えられる。入力されたパケットが1入力パケットであれば、そのパケットはスルー処理される。すなわち図28に示す発火制御主要処理部C素子270のWWB端子に入力される信号値が1入力パケットを示す値であれば、短い段間処理時間モードが選択されこのパケットはスルー処理される。
【0028】
入力されたパケットが2入力命令実行パケットであれば、以下に述べる処理を1段の段間処理内で行なわなければならない。この処理とは、待合せメモリからの読出処理および待合せメモリへの書込処理ならびにこれらに付随した処理をいう。具体的には次のとおりである。
【0029】
入力パケット中の宛先指定部分の1組のビットをアドレスとして用い、待合せメモリ284よりデータを読出す。待合せメモリ284内のデータの構成を図30に示す。
【0030】
待合せメモリ284中のハッシュ溢れ宛先指定部分と、入力パケット中のハッシュ溢れ宛先指定部分とを比較し、ハッシュ衝突を起こしているか否かをハッシュ衝突検出部290が検出する。
【0031】
発火詳細検出部292は、入力パケットが2入力命令実行パケットであり、かつ、ハッシュ衝突を起こしておらず、かつ、メモリから読出されたデータが有効(PREフラグ=1)であれば発火制御処理を引起すフラグを発生させる。このフラグを、待合せメモリ用アクセス調整部282を介して待合せメモリ284に与える。
【0032】
次いで、入力パケット中データと、待合せメモリ284から読出されたデータとを収集してパケットを出力するとともに、待合せメモリ284の当該アドレスのデータを無効とする。すなわちそのアドレスの有効(PRE)フラグの値を無効(0)とする。読出時には、このPREフラグの値を調べることにより、そのデータが有効か否かを判断することができる。
【0033】
入力パケットが2入力命令実行パケットであり、かつ、待合せメモリ284から読出されたデータが有効であり、かつ、ハッシュ衝突を起こしていれば、ハッシュ衝突フラグの値を有効としたパケットを出力する。このパケットは巡回パイプラインを巡回し、再び発火制御機構に与えられて、再度発火処理が行なわれる。
【0034】
入力パケットが2入力命令実行パケットであり、かつ、待合せメモリ284から読出されたデータが無効であれば、入力パケット中データの値を、待合せメモリ284の当該アドレスに書込む。この際、当該アドレスのPREフラグも有効としておく。
【0035】
以上のとおり、発火詳細検出、ハッシュ衝突検出のための待合せメモリからのデータの読出と、各種処理のためのデータの書込を1段の段間処理内で行なわなければならない。そのために、かつ、論理素子の物理的伝播遅延時間が有限量であるために、待合せメモリからのデータの読出/書込を含むこの処理に必要な段間処理時間を、他の標準処理部と比して長くする必要がある。他の標準処理部とは、パイプライン分割処理可能な処理部のことをいう。
【0036】
図28に示す発火制御主要処理部C素子270が、そのような処理時間の調整が行なわれたC素子である。このC素子270の論理回路図の一例を図32に示す。
【0037】
図32を参照し、このC素子270は、C素子470および472と、データラッチ480、482、および484と、論理ゲート回路490、492、494、496、498、500、502、および504とを含む。それら相互の接続は図示のとおりである。
【0038】
図32に示す回路では、待合せメモリ284への書込を伴うパケットが処理される場合、すなわち端子WWBへの入力が「0」のときには、長い段階処理時間モードが選択される。なお端子WWBには、図28に示すようにフラグFRがインバータ274で反転されたものが入力される。したがって端子WWBの信号が「0」の場合、入力パケットが2入力命令実行パケットである場合に相当する。
【0039】
待合せメモリ284への書込を伴わないパケットが処理される場合、すなわち端子WWB(図28および図32参照)には、短い段間処理時間モードが選択される。すなわち1入力命令の場合には、標準C素子の段間処理時間が選択される。
【0040】
上記のような理由から、長い段間処理時間モードが、経時的にどのように選択されるかに従って、この発火制御主要処理部188での処理が、データ駆動型プロセッサ全体の処理時間上のボトルネックとなる場合があり得る。たとえば、連続して長い段間処理時間モードが選択された場合には、システム全体の処理時間がこの発火制御主要処理部188での処理速度で律速される。
【0041】
なお、この事情は発火制御のメカニズムの一部のハッシュ衝突に関するメカニズムを除去しても同様である。そのような場合の待合せメモリの構成の一例を図31に待合せメモリ284aとして示す。
【0042】
一方、発火制御機構の構成に要するハードウェア量の傾向は次のように考えることができる。発火制御機構においては、データ対生成のために待合せメモリ284(図30、図31を参照)を用いる。このメモリに必要なメモリ容量は、原理的には次のようになる。
【0043】
2b1×b2
ただし、b1は宛先指定部分のビット数を示し、b2はデータ部分のビット数を示す。このため、宛先指定部分のビット数が増加すれば、必要となるメモリ容量は指数関数的に増加する。
【0044】
【発明が解決しようとする課題】
以上のように発火制御機構においては、発火制御のために、待合せメモリからのデータの読出と、待合せデータのない場合のメモリへの書込、およびそれらに付随した処理を、1段のパイプライン間で処理しなければならない。そのため、本処理がデータ駆動型プロセッサ全体の処理のボトルネックになり得る。このため、この処理をできるだけ高速に行なえるようにし、全体の処理速度を向上させることが望ましい。その場合に、発火制御機構の構成に要するハードウェア量の増加をできるだけ抑えることが望ましい。ハードウェア量を減少できれば最も好ましいであろう。
【0045】
それゆえに請求項1に記載の発明の目的は、より高速に動作できるデータ駆動型情報処理装置を提供することである。
【0046】
請求項2に記載の発明の目的は、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【0047】
請求項3に記載の発明の目的は、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【0048】
請求項4に記載の発明の目的は、用途が広く、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【0049】
請求項5に記載の発明の目的は、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【0050】
請求項6に記載の発明の目的は、より高速に動作できるデータ駆動型情報処理装置を提供することである。
【0051】
請求項7に記載の発明の目的は、より高速に動作できるデータ駆動型情報処理装置を提供することである。
【0052】
【課題を解決するための手段】
請求項1に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と対データ生成機構と演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含む。データ対生成機構は、与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部を含み、与えられたトークン中の宛先情報に基づいて定数データ処理部から出力された定数が有効である場合には定数データ処理部から出力される定数データを用いてデータ対を生成し、定数が無効である場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減される。
【0053】
請求項2に記載のデータ駆動型情報処理装置は、請求項1に記載のデータ駆動型情報処理装置であって、データ対生成機構は、さらに、定数データ処理部から、定数データが無効であるという情報が出力されたことに基づいて作動し、与えられたトークン中の宛先情報に基づいて引き数データの待合せを行ない、必要な引き数データがすべて揃ったと判定された命令と、与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する動的データ対生成機構と、定数データ処理部から、定数データが有効であるという情報が出力された場合には定数データ処理部の出力する定数データを選択し、定数データ処理部から、定数データが無効であるという情報が出力された場合には動的データ対生成機構の出力する対となる引き数データを選択し、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む。
【0054】
請求項3に記載のデータ駆動型情報処理装置は、請求項1に記載のデータ駆動型情報処理装置であって、定数データ処理部は、データフロープログラム中の命令に与えられたノード番号に基づいて計算されるアドレスに、当該命令に用いられる定数データおよびその有効フラグを格納した定数データメモリと、与えられたトークン中の宛先情報の中の、ノード番号に基づいて前記定数データメモリをアドレス指定し、定数データメモリから定数データおよびその有効フラグを読出すための手段とを含む。
【0055】
請求項4に記載のデータ駆動型情報処理装置は、請求項3に記載のデータ駆動型情報処理装置であって、データ対生成機構はさらに、与えられたトークンに含まれる命令コードが、定数データメモリロード命令であることに応答して、与えられたトークンに含まれるデータを、定数データメモリ内の、与えられたトークンに含まれるノード番号に基づいて指定されるアドレスに書込むための手段を含む。
【0056】
請求項5に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と、対データ生成機構と、演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、データ対生成機構は、与えられたトークン中の引き数データと対となる引き数データが定数である場合には定数データを用いてデータ対を生成し、引き数データが定数でない場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減されることを特徴とし、データ対生成機構は、与えられたトークン中の宛先情報に基づいて、2入力命令の一方入力に用いられる定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、与えられたトークン内の情報と、定数データ処理部の出力とに基づいて、トークンを組立てて出力するためのデータ選択手段とを含む。
【0057】
請求項6に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行に必要なすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と、データ対生成機構と、演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含む。データ対生成機構は、複数個の動的データ対生成機構を含む。複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行のための引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、与えられたトークン中の引き数データとを、与えられたトークン中の宛先情報とともに出力し、かつ、与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する。データ対生成機構はさらに、複数個の動的データ対生成機構をインタリーブして使用する際に、宛先情報のどの情報を用いて複数個の動的データ対生成機構を選択するかを示し、外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、与えられたトークン内の情報と、インタリーブフラグおよびアドレス生成手段の出力する選択情報とに基づいて、複数個の動的データ対生成機構のいずれかを選択的に作動させ、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む。
【0058】
請求項7に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と、データ対生成機構と、演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含む。データ対生成機構は、与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、複数個の動的データ対生成機構とを含む。複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行に必要な引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、与えられたトークン中の引き数データとを、与えられたトークン中の宛先情報とともに出力し、かつ、与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する。データ対生成機構はさらに、与えられたトークン内の情報と、定数データ処理部の出力とに基づいて、定数データ処理部の出力する定数データまたは複数個の動的データ対生成機構が出力する対となる引き数データのいずれを有効とすべきかを判定し判定結果を出力する選択検出部と、複数個の動的データ対生成機構をインタリーブして使用するために外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、与えられたトークン内の情報と、インタリーブフラグおよびアドレス生成手段の出力する選択情報と、選択検出部の出力とに基づいて、複数個の動的データ対生成機構ならびに定数データ処理部のいずれかの出力を選択し、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む。
【0059】
【作用】
請求項1に記載のデータ駆動型情報処理装置においては、データ対生成機構は、与えられたトークン中の宛先情報に基づいて定数データ処理部から出力された定数データが有効である場合とそうでない場合とで、異なる態様でデータ対の生成処理を行なう。一般的に引き数データが定数である場合にはデータ対の生成処理の処理量は少なくてすむ。こうした作業を、他の一般的なデータ対の生成処理と別に行なうことで一般的なデータ対の生成処理の処理量を削減できる。したがってこの請求項1に記載のデータ駆動型情報処理装置では、データ対の生成処理の負荷が軽減される。
【0060】
請求項2に記載のデータ駆動型情報処理装置においては、請求項1に記載のデータ駆動型情報処理装置の作用に加え、動的データ対生成機構は、定数データ処理部から、定数データが無効であるという情報が出力された場合のみ作動し、定数データが有効であるという情報が出力された場合には作動しない。そのため、動的データ対生成機構の処理量が少なくてすむ。
【0061】
請求項3に記載のデータ駆動型情報処理装置においては、請求項1に記載のデータ駆動型情報処理装置の作用に加え、定数データメモリに、引き数の1つとして定数を必要とするノードの、その定数が記憶されている。与えられたトークン中の宛先情報の中の、ノード番号に基づいて定数データメモリをアドレス指定することで、そのノードでの演算に必要とされる定数がもしあれば、定数データメモリから読出せる。
【0062】
請求項4に記載のデータ駆動型情報処理装置においては、請求項3に記載のデータ駆動型情報処理装置の作用に加え、定数データメモリ内の、与えられたトークンに含まれるノード番号に基づいて指定されるアドレスに、パケットを介して定数データを書込むことができる。したがって、様々なデータフロープログラムに対応できる。
【0063】
請求項5に記載のデータ駆動型情報処理装置においては、請求項1に記載のデータ駆動型情報処理装置の作用に加え、定数データ処理部のみを用いて引き数データの待合せを行なうことができる。動的なデータ対の生成はできないので行なえる処理には限界があるが、少ない処理量で、かつ高速にデータ対の生成を行なえる。
【0064】
請求項6に記載のデータ駆動型情報処理装置においては、複数個の動的データ対生成機構がインタリーブして使用できる。データパケットを適切な順番でデータ駆動型情報処理装置に与えることで、複数個の動的データ対生成機構の負荷を分散させることができる。
【0065】
請求項7に記載のデータ駆動型情報処理装置においては、動的データ対生成機構の出力が、定数データ処理部から、定数データが無効であるという情報が出力された場合のみ選択され、定数データが有効であるという情報が出力された場合には選択されない。そのため、動的データ対生成機構の処理量が少なくてすむ。さらに、動的データ対生成機構に含まれる複数個の動的データ対生成機構がインタリーブして使用できる。データパケットを適切な順番でデータ駆動型情報処理装置に与えることで、複数個の動的データ対生成機構の負荷を分散させることができる。
【0066】
【実施例】
[実施例1]
図1に、本願発明の第1の実施例に係るデータ駆動型情報処理装置であるデータ駆動型プロセッサ100の模式構成図を示す。図1を参照してこのデータ駆動型プロセッサ100は、従来のものと同様のデータ入出力制御部102と、プログラム記憶機構104と、演算処理機構108とに加え、定数データメモリ/動的発火制御機構(CST/FC)106を含み、これら各基本機能が巡回パイプラインで接続されている。
【0067】
図3および図4に、CST/FC106の論理回路図を示す。図3および図4は図2に示すように組合される。このCST/FC106への入出力パケットの構成は、図33および図34に示したものと同様である。
【0068】
図3および図4を参照して、CST/FC106は、C素子120、122、124、126、128、130、132および134と、データラッチ150、152、154、156、158、160、162、164、166、168、170および172と、定数データメモリのロード・ダンプ検出部180と、定数データメモリ182と、セレクタ184と、FC対応2入力命令実行パケット検出部186と、発火制御主要処理部189と、対データ選択部190と、論理ゲート回路142および144と、伝送制御回路140および146とを含む。図3および図4において、図25および図26に示される部品と対応する部品については同じ参照番号を与えている。それらの機能および名称も同一である。したがってそれらについての説明も適宜省略する。
【0069】
なお、定数データメモリ182のデータの格納内容を図5に示す。図5を参照して定数データメモリ182は、0〜2bn−1まで、2bn個のアドレスを有する。各アドレスのデータ領域には、定数データと、その定数データが有効かどうかを示すフラグ(VLDフラグ)とが格納されている。各定数データは、その定数データが使用されるノード番号から所定の方式により計算されるアドレスに予め格納される。なおこの定数データは、ロード・ダンプのための命令を含むデータパケットをこのデータ駆動型プロセッサに与えることにより、ロード・ダンプ検出部180の機能により定数データメモリ182に書込まれ、または定数データメモリ182から出力される。
この第1の実施例のデータ駆動型プロセッサでの処理は次のように行なわれる。CST/FC106に入力パケットが与えられると、その入力パケットの宛先指定部分の一部をアドレスとして、定数データメモリ182から該当の定数データおよびVLDフラグが読出される。この実施例の場合には入力パケットの宛先指定部分のうちノード番号によって定数データメモリがアドレス指定される。VLDフラグは図3に示される定数データメモリ182の出力端子VCDに対応する。VLDフラグは定数データメモリの値が有効であれば1を、無効であれば0をとる。この定数データメモリ182へのアクセスは、当該入力パケットが2入力命令の引き数データであるか、1入力命令の引き数データであるかに関わりなく行なわれる。なお定数データメモリ182から出力された定数データおよびVLDフラグは、後段のCST/FCデータ選択部(図4における対データ選択部190に対応)まで保持される。
【0070】
FC対応2入力命令実行パケット検出部186は、入力パケットが2入力命令実行パケットであるか否かを検出する。FC対応2入力命令実行パケット検出部186は、入力パケットが2入力命令実行パケットであるか否かを表現するフラグFRを発生させ、このフラグFRを、入力パケット中の必要なデータとともに発火制御主要処理部189に与える。なお本実施例においては、フラグFRが1でかつ定数データメモリ182から出力される後述のVLDフラグが0のときには対データとして発火制御主要処理部189で生成したデータの値(図4における対データ選択部190の入力MLに相当)を使用し、フラグFRが0でかつVLDフラグが1のときには定数メモリ182から出力されたデータの値(図4における対データ選択部190の入力Cに相当)を使用する。発火制御主要処理部の処理内容については従来のものと基本的には同様であるが、ここに違いを含めてその詳細を説明する。
【0071】
発火制御主要処理部189は、図28および図29を参照して、入力パケットが2入力命令実行パケットであるか否かを表現するフラグFRと、発火制御機構に与えられたパケット中の必要なデータとを受取る。入力したパケットが1入力命令パケットであれば、すなわちフラグFRが0のときには入力パケットはスルー処理される。すなわち、図28を参照して、発火制御主要処理部C素子270のWWB端子に入力される信号値が1であれば、短い段間処理時間モードを選択してスルー処理を行なう。
【0072】
入力されたパケットが2入力命令実行パケットであれば次の処理が行なわれる。入力パケット中の宛先指定部分の1組のビットをアドレスとして用い、待合せメモリ284から出るデータを読出す(図28)。待合せメモリ284から読出された宛先指定部分と入力パケットのハッシュ溢れ宛先指定部分とを比較し、図29に示すハッシュ衝突検出部によってハッシュ衝突を起こしているか否かを検出する。次の発火詳細検出部292は、入力パケットが2入力命令実行パケットであり、かつ、ハッシュ衝突を起こしておらず、かつ、メモリから読出されたデータが有効(PRE=1)であれば発火制御処理を行なう。次いで、入力パケット中データとメモリから読出されたデータとをデータラッチ294および296で収集し、パケットを構成してこれを出力する。同時に当該アドレスについてのメモリ上のデータを無効(PRE=0)とする。すなわちメモリ中の当該アドレスのPREフラグの値を、無効を表わす値とする。
【0073】
入力パケットが2入力命令実行パケットであり、かつ、待合せメモリ284から読出されたデータが有効(PRE=1)であり、かつ、ハッシュ衝突検出部290によってハッシュ衝突の発生が検出された場合には、ハッシュ衝突フラグの値を有効値としたパケットを出力する。このパケットは巡回パイプラインを再び巡回し、次にこの定数データメモリ/動的発火制御機構106に到達した時点でもう1度発火検出処理が行なわれる。
【0074】
入力パケットが2入力命令実行パケットであり、かつ、待合せメモリ284から読出されたデータが無効値(PRE=0)であれば、入力パケット中データの値をメモリの当該アドレスに書込む。この際、当該アドレスのPREフラグには有効値を示す値が書込まれる。
【0075】
発火制御主要処理部189(図4参照)から出力された情報は、対データ選択部190において、パケットとして必要な情報を収集/選択することによりパケットに組立てられ、CST/FC106から出力される。このとき、定数データメモリ182から出力されたVLDフラグが1であれば、対データ選択部190は定数データメモリの出力を選択し、0であれば発火制御主要処理部189の出力を選択する。定数データメモリから読出されたVLDフラグの値が0のときのみ発火制御主要処理部189が作動するので、発火制御主要処理部189により処理されるパケット数が減少し、したがってこの部分の処理がシステム全体のボトルネックとなってしまう可能性が減少する。
【0076】
なお、定数データメモリのロード・ダンプ検出部180は、入力されたデータパケットの命令コードがロードまたはダンプ命令である場合、ラッチ152を介して定数データメモリ182を制御し、与えられたデータパケットのデータを指定されたアドレスに書込み、または指定されたアドレスから定数データメモリ182の格納内容を出力させる。こうしたロード・ダンプ検出部180を設けることにより、定数データメモリ182へのデータの書込および読出を行なうことができる。したがって定数データメモリ182の内容を容易に変更でき、より広い用途にこのデータ駆動型プロセッサを使用できる。ただし、そうした定数データメモリ182への単なる書込および単なる読出をする必要がないのであれば、このロード・ダンプ検出部180は不要である。
【0077】
[実施例2]
図6に、本願発明のデータ駆動型情報処理装置の他の実施例であるデータ駆動型プロセッサの模式構成図を示す。図6を参照してこのデータ駆動型プロセッサ200は、図1に示した第1のデータ駆動型プロセッサのCST/FC106に替えて、動的データ対生成処理を行なわず、定数処理のみを行なう定数データメモリ機構(CST)202を含む点で異なっている。他の部分は図1に示すものと同様である。
【0078】
図7に、図6に示すCST202の論理回路図を示す。図7を参照してこのCST202は、C素子120、122、124および134と、データラッチ150、152、154、156、および158と、定数データメモリのロード・ダンプ検出部180と、定数データメモリ182aと、セレクタ184と、データラッチ212と、論理ゲート回路210と、伝送制御回路140とを含む。図7において、図3および図4の回路におけるものと同じ部品には同じ参照番号を付す。それらの機能および名称も同一である。したがってここではそれらについての説明は適宜省略する。
【0079】
図7に示す定数データメモリ182aの内容を図8に示す。図8に示される定数データメモリ182aが図5に示される定数データメモリ182と異なるのは、各アドレスにデータのみが格納され、VLD(有効)フラグが格納されていないことである。これは、この実施例では定数データメモリによる定数処理しか行なわれず、動的データ対生成処理は行なわれないので、常にこの定数データメモリ182aの出力を選択すればよいためである。
【0080】
この第2の実施例のデータ駆動型プロセッサでの処理は次のように行なわれる。特にCST202で行なわれる処理についてのみ述べる。図7を参照して、入力パケットの宛先指定部分の一部を用いてアドレス指定することにより、定数データメモリ182aから定数データが読出される。本実施例の場合には、入力パケットのノード番号部分がアドレス指定に用いられる。読出された定数データは、入力パケットとともにデータラッチ158、および212、ならびにセレクタ184によって必要な情報を収集/選択することによりパケットに構成され、CST202から出力される。以後のデータ駆動型プロセッサの動作は第1の実施例と同様である。
【0081】
この第2の実施例では、動的データ対生成処理は一切行なわれない。定数データ処理による定数との待合せ処理が行なわれるだけである。したがって動的データ対生成処理を有するものと比較して行なえる処理には制限があるが、ハードウェア量ははるかに少なくてすむ。また処理も高速に行なわれるという効果がある。
【0082】
なお、定数データメモリのロード・ダンプ検出部180は、第1の実施例と同様に、用いられなくてもよい。
【0083】
[実施例3]
図9に本願発明に係るデータ駆動型情報処理装置の他の実施例であるデータ駆動型プロセッサ220の模式構成図を示す。図9に示される第3の実施例のデータ駆動型プロセッサが図1に示される第1のデータ駆動型プロセッサと異なるのは、CST/FC106に替えて、インタリーブ処理付動的発火制御機構FC222を有することである。端的に言えば、FC222の内部に、動的発火制御機構を複数個持ち、これらをインタリーブして動作させる。そうすることにより、たとえばFC222に与えるデータパケットの順序を考慮すれば、複数個の動的発火制御機構がインタリーブして使用でき、動的発火制御機構各々にかかる負荷を減少できる。
【0084】
図11および図12に、FC222の論理回路図を示す。図11および図12は、図10に示すように組合される。
【0085】
図11および図12を参照してこのFC222は、C素子120、122、124、126、128、130、132および134と、データラッチ150、160、162、164、166、168、170、172、246、248および252と、インタリーブフラグ/インタリーブ時FCアドレス検出部250と、FC対応2入力命令実行パケット検出部254と、2つの発火制御主要処理部256および258と、発火制御主要処理出力データ選択部260と、対データ選択部262と、論理ゲート回路230、232、234、236、238、240、242、244、および144と、伝送制御回路146とを含む。図11および図12において、図3および図4ならびに図7に示される部品に相当する部品には同じ参照符号を付してある。それらの名称および機能も同様である。したがってここでは、それらについての説明は適宜省略する。
【0086】
図14および図15に、図12に示す発火制御主要処理部256または258の概略の構成を示す。図14および図15は、図13に示されるように組合される。
【0087】
図14および図15を参照して、発火制御主要処理部256または258は、発火制御主要処理部C素子270と、C素子288と、インバータ272および274と、データラッチ276、278、280、286および296と、待合せメモリ用アクセス調整部282と、待合せメモリ284と、ハッシュ衝突検出部290と、発火詳細検出部292と、宛先情報選択部294とを含む。図14および図15において、図28および図29と共通の部品には同じ参照符号を付してある。それらの名称も同様である。したがってそれらについての説明は適宜省略する。
【0088】
この第3の実施例のデータ駆動型プロセッサは次のように動作する。特にFC222の動作についてのみ以下に述べる。図11に示される端子FISには、FISパラメータが外部から与えられる。このFISパラメータはたとえばレジスタなどに格納されている。FISパラメータとは、発火制御主要処理部256および258をインタリーブして使用する際に、宛先指定部分のどの情報を用いて発火制御主要処理部を選択するかを指定するための情報であり、本実施例の場合には3ビットである。したがって8通りの組合せを指定することができる。
【0089】
インタリーブフラグ/インタリーブ時FCアドレス検出部250は、FISパラメータに従って、指定されたアドレス計算を行なってデータラッチ252を介して発火制御主要処理部256および258にアドレスを与える。このアドレスは待合せメモリにアクセスする際のアドレスである。なお本実施例においては、どの発火制御主要処理部を選択するかを表わすIBフラグが1の場合には発火制御主要処理部256を、0の場合には発火制御主要処理部258を選択し処理する構成となっている。
【0090】
FC対応2入力命令実行パケット検出部254は、入力パケットが2入力命令実行パケットであるか否かを検出し、入力パケットが2入力命令実行パケットであるか否かを表現するフラグFRを発生する。このフラグFRは入力パケットデータとともに発火制御主要処理部256および258に与えられる。
【0091】
図14および図15を参照して、発火制御主要処理部256または258で行なわれる処理は、基本的には図28および図29を参照して説明したものと同様である。ただし本実施例の場合図14を参照して、待合せメモリ284へのアクセスの際には、データラッチ278を介して、前述したインタリーブ・フラグ/インタリーブ時FCアドレス検出部250により生成されたアドレスを使用する点が異なる。発火制御主要処理部256または258から出力された情報は、発火制御主要処理出力データ選択部260および対データ選択部262において行なわれる、パケットとして必要な情報の収集/選択の後データパケットに組立てられ、FC222から出力される。
【0092】
本実施例のように複数の発火制御主要処理部を設け、入力パケットの宛先情報の一部を用いていずれの発火制御主要処理部を選択するかを決め、選択された発火制御主要処理部を用いて処理すれば、たとえば宛先情報を参照しながら適切な順序でデータパケットをデータ駆動型プロセッサに与えることにより、発火制御主要処理部256および258がインタリーブして使用できる。各々の発火制御主要処理部の負荷が軽減され、FC222全体として、従来の動的発火制御機構と比較してより大きな処理能力を有することになる。したがってこの発火制御機構がデータ駆動型プロセッサ全体の処理におけるボトルネックとなる恐れが小さくなる。
【0093】
なお本実施例ではFISパラメータは3ビットである。しかしFISパラメータのビット数が本実施例のように3ビットに限定されるわけではない。また、本実施例では、2つの発火制御主要処理部を使用したが、2つとは限らず、3つ以上使用してもよく、そうした方が各々の負荷は小さくなる。
【0094】
[実施例4]
図16に本願発明のデータ駆動型情報処理装置の他の実施例であるデータ駆動型プロセッサ300の模式構成図を示す。図16に示されるデータ駆動型プロセッサ300が第1〜第3の実施例のデータ駆動型プロセッサと異なるのは、図1におけるCST/FC106、図6におけるCST202、および図9におけるFC222に替えて、実施例1の構成に、発火制御主要処理部を複数個備えるような変更を加えたCST/FC302を有する点で異なっている。すなわちこの実施例4のデータ駆動型プロセッサでは、待合せの相手が定数データであるようなデータパケットが与えられた場合には定数データメモリから当該定数データを読出してデータ対の生成を行ない、2入力命令であってかつ相手の引き数データが定数でないものについては複数個の発火制御主要処理部をインタリーブして使用する。このようにすることにより、定数データ処理を設けることにより、動的データ対生成処理の処理量が削減され、さらにそれを複数個の発火制御主要処理部で分担できる。したがってこの第4の実施例のCST/FC302を用いれば、データ駆動型プロセッサにおいて、発火制御機構の処理が全体の処理のボトルネックとなる恐れはより小さくなる。
【0095】
図18および図19に、この第4の実施例のCST/FC302の回路構成の概略図を示す。図18および図19は図17に示されるように組合される。
【0096】
図18および図19を参照して、CST/FC302は、C素子120、122、124、126、128、130、132および134と、データラッチ150、152、156、168、170、172、248、310、312、314、316および318と、定数データメモリのロード・ダンプ検出部180と、定数データメモリ182と、インタリーブフラグ/インタリーブ時FCアドレス検出部250と、セレクタ184と、FC対応2入力命令実行パケット検出部186と、発火制御主要処理部256および258と、発火制御主要処理出力データ選択部260と、対データ選択部262と、伝送制御回路140および146と、論理ゲート回路144、230、234、236、238、240、242および244とを含む。図18および図19において、図3および図4、図7、ならびに図11および図12に示される部品に相当する部品には、同一の参照番号が付されている。それらの機能および名称も同様である。したがってそれらについての説明は適宜省略する。
【0097】
この第4の実施例のデータ駆動型プロセッサ、特にCST/FC302は次のように動作する。
【0098】
図18に示される端子FISから与えられるFISパラメータは、第3の実施例のFISパラメータと同様である。すなわち、このFISパラメータは、複数個(本実施例では2個)の発火制御主要処理部をインタリーブして使用する際に、データパケットの宛先指定部分のどの情報を用いて発火制御主要処理部を選択するかを指定するためのものである。
【0099】
インタリーブフラグ/インタリーブ時FCアドレス検出部250は、FISパラメータと、入力されたデータパケットの宛先指定部分の、FISパラメータによって指定される情報を用いて、IBフラグと待合せメモリへのアクセスの際のアドレスを生成する。IBフラグは、第3の実施例と同様に、入力されたサブパケットがいずれの発火制御主要処理部で処理されるかを表現するフラグである。
【0100】
FC対応2入力命令実行パケット検出部186は、入力パケットが2入力命令実行パケットであるか否かを検出し、入力パケットが入力命令実行パケットであるか否かを表現するフラグFRを発生させる。フラグFRは、入力パケットデータとともに発火制御主要処理部256および258に与えられる。
【0101】
一方、入力パケットがCSTでデータ対生成されるべきものか、発火制御主要処理部256または258でデータ対生成されるべきものかには関わりなく、入力パケットの宛先指定部分の一部を用いて、定数データメモリ182から定数データおよびVLDフラグが読出される。なおこの定数データメモリ182のアドレス指定は、本実施例においてはノード番号を用いて行なわれている。またVLDフラグは、当該アドレスの定数データメモリの値が有効であれば1を、無効であれば0をとる。この定数データおよびVLDフラグは、後段の対データ選択部(CST/FCデータ選択部)262および発火制御主要処理出力データ選択部260まで保持される。
【0102】
図19を参照して、本実施例の場合、IBフラグが1の場合には発火制御主要処理部256が、IBフラグが0の場合には発火制御主要処理部258が選択的に作動するようになっている。ただしこの場合、定数データメモリ182から出力されたVLDフラグが有効の場合にはこれら発火制御主要処理部256または258は作動せず、VLDフラグが0の場合のみこのいずれかが作動する。
【0103】
発火制御主要処理部256または258における処理は、基本的には第3の実施例における発火制御主要処理部256または258と同様である。待合せメモリへのアクセス時に、前述のインタリーブフラグ/インタリーブ時FCアドレス生成部250によって生成されたアドレスを使用するのも第3の実施例と同様である。
【0104】
発火制御主要処理部256または258から出力された情報は、発火制御主要処理出力データ選択部260および対データ選択部262において行なわれるパケットとして必要な情報の収集/選択処理を経てデータパケットに組立てられ、CST/FC302から出力される。なおこの際、定数データメモリ182から出力されたVLDフラグの値が1であれば定数データメモリの出力した定数データが、VLDフラグの値が0であれば発火制御主要処理部256または258のうちの選択されたものの出力が、入力パケットの対データとして選択される。
【0105】
なお定数データメモリのロード・ダンプ検出部180は、第1および第2の実施例における定数データメモリのロード・ダンプ検出部180と同じものである。ロード・ダンプ検出部180は、前述のとおり入力パケットが実行パケットでなく、定数データメモリへの単なる書込および読出の場合にのみ使用される処理部である。したがってこれが存在しなくてもデータ駆動型プロセッサの動作自体には影響はない。ただしロード・ダンプ検出部180を用いることにより、定数データメモリの内容の変更および確認が行なえる。
【0106】
以上のようにこの実施例4のデータ駆動型プロセッサでは、定数データメモリに有効なデータがあれば、発火制御主要処理部を動作させることなく定数データメモリから出力された定数データが対データとして選択される。定数データメモリに有効なデータが記憶されていなかった場合のみ、発火制御主要処理部が動作するので、発火制御主要処理部の処理量が減少でき、発火制御処理の負荷量が減少する。さらにまた複数個(本実施例の場合には2つ)の発火制御主要処理部を設け、入力パケットの宛先情報を用いてこれらをインタリーブして使用するので、個々の発火制御主要処理部の負荷は分散でき、さらにデータ駆動型プロセッサ全体の処理速度の向上を図ることができる。
【0107】
以上この発明を実施例に基づいて説明したが、本願は上述の実施例には限定されず、この他にも様々な変更を加えて実施できることは言うまでもない。たとえばC素子の回路構成、定数データメモリおよび待合せメモリのデータの格納の仕方、あるいはFISパラメータによる指定方法などは、要求仕様により適宜変更することができる。
【0108】
【発明の効果】
以上のように請求項1に記載の発明によれば、与えられたトークン中の宛先情報に基づいて定数データ処理部から出力された定数が有効である場合とそうでない場合とで、異なる態様でデータ対の生成処理を行なうので、データ対の生成処理の負荷が軽減される。その結果、全体の処理速度を律速するデータ対の生成処理の速度を高めることができるようになり、より高速に動作できるデータ駆動型情報処理装置を提供できる。
【0109】
請求項2に記載の発明によれば、請求項1に記載のデータ駆動型情報処理装置の効果に加え動的データ対生成機構の処理量が少なくてすむので、動的データ対生成機構のハードウェア量を削減できる。また定数データ処理部のハードウェア量も少なくてすむので、全体のデータ対生成処理部のハードウェア量を削減できる。その結果、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供できる。
【0110】
請求項3に記載の発明によれば、請求項1に記載の発明の効果に加え、簡単な処理で、かつ高速に、あるノードに対応したデータ対生成のための定数データが定数データメモリから読出せる。そのために必要なハードウェア量も少なくてすみ、その結果、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供できる。
【0111】
請求項4に記載の発明によれば、請求項3に記載の発明の効果に加え、様々なデータフロープログラムに簡単に対応して定数データメモリの内容を変更することができる。その結果、用途が広く、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供できる。
【0112】
請求項5に記載の発明によれば、請求項1に記載の発明の効果に加え、定数データ処理部のみを用いて引き数データの待合せを行なうので、少ない処理量で、かつ高速にデータ対の生成を行なえる。必要なハードウェア量も少なくてすむ。その結果、より高速に動作でき、ハードウェア量の少ないデータ駆動型情報処理装置を提供できる。
【0113】
請求項6に記載の発明によれば、複数個の動的データ対生成機構の負荷を分散させることができる。その結果、より高速に動作できるデータ駆動型情報処理装置を提供できる。
【0114】
請求項7に記載の発明によれば、動的データ対生成機構の処理量が少なくてすみ、動的データ対生成機構に含まれる複数個の動的データ対生成機構の負荷を分散させることができる。その結果、より高速に動作できるデータ駆動型情報処理装置を提供できる。
【図面の簡単な説明】
【図1】本願発明の第1の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図2】図3および図4の関係を模式的に示す図である。
【図3】第1の実施例の定数データメモリ/動的発火制御機構106の構成の一部を示す論理回路図である。
【図4】定数データメモリ/動的発火制御機構106の構成の他の部分を示す論理回路図である。
【図5】第1の実施例の定数データメモリ182の構成を示す模式図である。
【図6】本願の第2の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図7】第2の実施例の定数データメモリ機構202の論理回路図である。
【図8】第2の実施例における定数データメモリ182aの構成を模式的に示す図である。
【図9】本願の第3の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図10】図11および図12の関係を示す模式図である。
【図11】本願の第3の実施例に係るデータ駆動型プロセッサのインタリーブ処理付動的発火制御機構222の構成の一部を示す論理回路図である。
【図12】インタリーブ処理付動的発火制御機構222の構成の他の部分を示す論理回路図である。
【図13】図14および図15の関係を模式的に示す図である。
【図14】本願の第3の実施例に係るデータ駆動型プロセッサの発火制御主要処理部の構成の一部を示す論理回路図である。
【図15】本願発明の第3の実施例に係るデータ駆動型プロセッサの発火制御主要処理部の構成の他の部分を示す論理回路図である。
【図16】本願発明の第4の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図17】図18および図19の関係を示す模式図である。
【図18】第4の実施例のデータ駆動型プロセッサの定数データメモリ/インタリーブ処理付動的発火制御機構302の構成の一部を示す論理回路図である。
【図19】定数データメモリ/インタリーブ処理付動的発火制御機構の他の部分を示す論理回路図である。
【図20】データ駆動原理を模式的に示す図である。
【図21】従来のデータ駆動型プロセッサの模式構成図である。
【図22】巡回パイプラインにおける自己タイミング型データ転送処理機構を示す図である。
【図23】C素子の論理回路構成図である。
【図24】図25および図26の関係を模式的に示す図である。
【図25】従来の技術による動的発火制御機構の構成の一部を示す論理回路図である。
【図26】動的発火制御機構の他の部分の構成を示す論理回路図である。
【図27】図28および図29の関係を模式的に示す図である。
【図28】従来の技術における発火制御主要処理部の構成の一部を示す論理回路図である。
【図29】従来の技術による発火制御主要処理部の構成の他の部分を示す論理回路図である。
【図30】ハッシュ待合せメカニズム付待合せメモリ284の構成を示す模式図である。
【図31】待合せメモリの他の例284aの構成を示す模式図である。
【図32】発火制御主要処理部C素子の論理回路構成図である。
【図33】巡回パイプラインを巡回するデータパケットの構成を示す模式図である。
【図34】発火制御機構から出力されるデータパケットの構成を示す模式図である。
【符号の説明】
186、254 FC対応2入力命令実行パケット検出部
250 インタリーブフラグ/インタリーブ時FCアドレス検出部
222 インタリーブ処理付動的発火制御機構
100、200、300、400 データ駆動型プロセッサ
104 プログラム記憶機構
294 宛先情報選択部
108 演算処理機構
190、262 対データ選択部
284、284a 待合せメモリ
282 待合せメモリ用アクセス調整部
182 定数データメモリ
302 定数データメモリ/インタリーブ処理付動的発火制御機構
106 定数データメモリ/動的発火制御機構
180 定数データメモリのロード・ダンプ検出部
102 入出力制御部
292 発火詳細検出部
260 発火制御主要処理出力データ選択部
188、256、258 発火制御主要処理部
270 発火制御主要処理部C素子
Claims (7)
- データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記対データ生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部を含み、与えられたトークン中の宛先情報に基づいて前記定数データ処理部から出力された定数が有効である場合には前記定数データ処理部から出力される定数データを用いてデータ対を生成し、定数が無効である場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減されることを特徴とする、データ駆動型情報処理装置。 - 前記データ対生成機構は、さらに、
前記定数データ処理部から、定数データが無効であるという情報が出力されたことに基づいて作動し、与えられたトークン中の宛先情報に基づいて引き数データの待合せを行ない、必要な引き数データがすべて揃ったと判定された命令と、前記与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、前記与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する動的データ対生成機構と、
前記定数データ処理部から、定数データが有効であるという情報が出力された場合には前記定数データ処理部の出力する定数データを選択し、前記定数データ処理部から、定数データが無効であるという情報が出力された場合には前記動的データ対生成機構の出力する前記対となる引き数データを選択し、与えられたトークン内の情報を用いてトークンを組立てて出力するためのデータ選択手段とを含む、請求項1に記載のデータ駆動型情報処理装置。 - 前記定数データ処理部は、
データフロープログラム中の命令に与えられたノード番号に基づいて計算されるアドレスに、当該命令に用いられる定数データおよびその有効フラグを格納した定数データメモリと、
与えられたトークン中の宛先情報の中の、ノード番号に基づいて前記定数データメモリをアドレス指定し、前記定数データメモリから定数データおよびその有効フラグを読出すための手段とを含む、請求項1に記載のデータ駆動型情報処理装置。 - 前記データ対生成機構はさらに、与えられたトークンに含まれる命令コードが、定数データメモリロード命令であることに応答して、前記与えられたトークンに含まれるデータを、前記定数データメモリ内の、前記与えられたトークンに含まれるノード番号に基づいて指定されるアドレスに書込むための手段を含む、請求項3に記載のデータ駆動型情報処理装置。
- データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記対データ生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、与えられたトークン中の引き数データと対となる引き数データが定数である場合には定数データを用いてデータ対を生成し、引き数データが定数でない場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減されることを特徴とし、
前記データ対生成機構は、
与えられたトークン中の宛先情報に基づいて、2入力命令の一方入力に用いられる前記定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、
与えられたトークン内の情報と、前記定数データ処理部の出力とに基づいて、トークンを組立てて出力するためのデータ選択手段を含む、データ駆動型情報処理装置。 - データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行に必要なすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記データ対生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、複数個の動的データ対生成機構を含み、前記複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行のための引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、前記与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、前記与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力し、
前記データ対生成機構はさらに、
前記複数個の動的データ対生成機構をインタリーブして使用する際に、宛先情報のどの情報を用いて前記複数個の動的データ対生成機構を選択するかを示し、外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、前記複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、
与えられたトークン内の情報と、前記インタリーブフラグおよびアドレス生成手段の出力する選択情報とに基づいて、前記複数個の動的データ対生成機構のいずれかを選択的に作動させ、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む、データ駆動型情報処理装置。 - データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記データ対生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、
与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、
複数個の動的データ対生成機構とを含み、前記複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行に必要な引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、前記与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、前記与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力し、
前記データ対生成機構はさらに、
与えられたトークン内の情報と、前記定数データ処理部の出力とに基づいて、前記定数データ処理部の出力する定数データまたは前記複数個の動的データ対生成機構が出力する前記対となる引き数データのいずれを有効とすべきかを判定し判定結果を出力する選択検出部と、
前記複数個の動的データ対生成機構をインタリーブして使用するために外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、前記複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、
与えられたトークン内の情報と、前記インタリーブフラグおよびアドレス生成手段の出力する選択情報と、前記選択検出部の出力とに基づいて、前記複数個の動的データ対生成機構ならびに前記定数データ処理部のいずれかの出力を選択し、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む、データ駆動型情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07657495A JP3689143B2 (ja) | 1995-03-31 | 1995-03-31 | データ駆動型情報処理装置 |
US08/488,433 US5640525A (en) | 1995-03-31 | 1995-06-07 | Data-driven information processing devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07657495A JP3689143B2 (ja) | 1995-03-31 | 1995-03-31 | データ駆動型情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08272771A JPH08272771A (ja) | 1996-10-18 |
JP3689143B2 true JP3689143B2 (ja) | 2005-08-31 |
Family
ID=13609028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07657495A Expired - Fee Related JP3689143B2 (ja) | 1995-03-31 | 1995-03-31 | データ駆動型情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5640525A (ja) |
JP (1) | JP3689143B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0926949A (ja) * | 1995-07-10 | 1997-01-28 | Sharp Corp | データ駆動型情報処理装置 |
JP3488812B2 (ja) | 1997-08-28 | 2004-01-19 | シャープ株式会社 | データ伝送路 |
US6151682A (en) * | 1997-09-08 | 2000-11-21 | Sarnoff Corporation | Digital signal processing circuitry having integrated timing information |
JP2000013713A (ja) | 1998-06-19 | 2000-01-14 | Sharp Corp | 映像信号処理装置およびそれを用いたテレビジョン受信装置 |
JP3853098B2 (ja) | 1999-01-18 | 2006-12-06 | シャープ株式会社 | データ駆動型情報処理システム |
JP3766779B2 (ja) * | 2000-03-31 | 2006-04-19 | シャープ株式会社 | 自己同期型データ伝送装置およびこれを用いたデータ駆動型情報処理装置 |
JP3983455B2 (ja) * | 2000-04-13 | 2007-09-26 | シャープ株式会社 | データ駆動型情報処理装置の実行制御装置 |
JP3759860B2 (ja) | 2000-06-08 | 2006-03-29 | シャープ株式会社 | 自己同期型のパイプライン制御を採用したデータ駆動型情報処理装置の設計方法 |
JP3912958B2 (ja) * | 2000-06-14 | 2007-05-09 | シャープ株式会社 | データ駆動型処理装置およびデータ駆動型処理装置におけるデータ処理方法 |
JP4173654B2 (ja) * | 2001-08-30 | 2008-10-29 | シャープ株式会社 | データ駆動型情報処理装置 |
US7627693B2 (en) * | 2002-06-11 | 2009-12-01 | Pandya Ashish A | IP storage processor and engine therefor using RDMA |
US7415723B2 (en) * | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US7725595B1 (en) | 2005-05-24 | 2010-05-25 | The United States Of America As Represented By The Secretary Of The Navy | Embedded communications system and method |
US7996348B2 (en) | 2006-12-08 | 2011-08-09 | Pandya Ashish A | 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
US9846642B2 (en) * | 2014-10-21 | 2017-12-19 | Samsung Electronics Co., Ltd. | Efficient key collision handling |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5115510A (en) * | 1987-10-20 | 1992-05-19 | Sharp Kabushiki Kaisha | Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information |
JP2632074B2 (ja) * | 1990-07-11 | 1997-07-16 | シャープ株式会社 | データフロー型情報処理装置 |
JPH0520152A (ja) * | 1991-07-15 | 1993-01-29 | Nec Corp | フアイル属性管理方式 |
JP3312039B2 (ja) * | 1992-01-08 | 2002-08-05 | シャープ株式会社 | データ駆動型情報処理装置 |
JP2772604B2 (ja) * | 1992-10-27 | 1998-07-02 | シャープ株式会社 | データ処理システム |
-
1995
- 1995-03-31 JP JP07657495A patent/JP3689143B2/ja not_active Expired - Fee Related
- 1995-06-07 US US08/488,433 patent/US5640525A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5640525A (en) | 1997-06-17 |
JPH08272771A (ja) | 1996-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3689143B2 (ja) | データ駆動型情報処理装置 | |
JP2554914B2 (ja) | プログラマブル集積回路デバイス | |
US7694109B2 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
US5809274A (en) | Purge control for ON-chip cache memory | |
US6341343B2 (en) | Parallel processing instructions routed through plural differing capacity units of operand address generators coupled to multi-ported memory and ALUs | |
US5577256A (en) | Data driven type information processor including a combined program memory and memory for queuing operand data | |
US5303354A (en) | Data transfer system between registers for microcomputer | |
US20070260857A1 (en) | Electronic Circuit | |
JPH0155499B2 (ja) | ||
JPH05342084A (ja) | データ記憶装置及びデータ記憶方法 | |
JP3790626B2 (ja) | デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置 | |
US5617549A (en) | System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer | |
US7474586B1 (en) | Random access memory (RAM) method of operation and device for search engine systems | |
JP3983455B2 (ja) | データ駆動型情報処理装置の実行制御装置 | |
US5875323A (en) | Processor using implicit register addressing | |
US5802384A (en) | Vector data bypass mechanism for vector computer | |
JP3239042B2 (ja) | マイクロコンピュータ | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
JP2629400B2 (ja) | 自己同期型パイプライン処理装置 | |
JP2766404B2 (ja) | データ駆動形マイクロプロセッサ | |
JP3701033B2 (ja) | データ駆動型情報処理装置 | |
JPH08305564A (ja) | マイクロコンピュータ | |
JPH02183332A (ja) | プログラムド制御方式 | |
JPH01255935A (ja) | データ出力装置 | |
JPH0740257B2 (ja) | メモリアクセス制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040615 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040812 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040825 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050610 |
|
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: 20090617 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110617 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |