(57)【特許請求の範囲】
【請求項１】
データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記対データ生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部を含み、与えられたトークン中の宛先情報に基づいて前記定数データ処理部から出力された定数が有効である場合には前記定数データ処理部から出力される定数データを用いてデータ対を生成し、定数が無効である場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減されることを特徴とする、データ駆動型情報処理装置。
【請求項２】
前記データ対生成機構は、さらに、
前記定数データ処理部から、定数データが無効であるという情報が出力されたことに基づいて作動し、与えられたトークン中の宛先情報に基づいて引き数データの待合せを行ない、必要な引き数データがすべて揃ったと判定された命令と、前記与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、前記与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する動的データ対生成機構と、
前記定数データ処理部から、定数データが有効であるという情報が出力された場合には前記定数データ処理部の出力する定数データを選択し、前記定数データ処理部から、定数データが無効であるという情報が出力された場合には前記動的データ対生成機構の出力する前記対となる引き数データを選択し、与えられたトークン内の情報を用いてトークンを組立てて出力するためのデータ選択手段とを含む、請求項１に記載のデータ駆動型情報処理装置。
【請求項３】
前記定数データ処理部は、
データフロープログラム中の命令に与えられたノード番号に基づいて計算されるアドレスに、当該命令に用いられる定数データおよびその有効フラグを格納した定数データメモリと、
与えられたトークン中の宛先情報の中の、ノード番号に基づいて前記定数データメモリをアドレス指定し、前記定数データメモリから定数データおよびその有効フラグを読出すための手段とを含む、請求項１に記載のデータ駆動型情報処理装置。
【請求項４】
前記データ対生成機構はさらに、与えられたトークンに含まれる命令コードが、定数データメモリロード命令であることに応答して、前記与えられたトークンに含まれるデータを、前記定数データメモリ内の、前記与えられたトークンに含まれるノード番号に基づいて指定されるアドレスに書込むための手段を含む、請求項３に記載のデータ駆動型情報処理装置。
【請求項５】
データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記対データ生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、与えられたトークン中の引き数データと対となる引き数データが定数である場合には定数データを用いてデータ対を生成し、引き数データが定数でない場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減されることを特徴とし、
前記データ対生成機構は、
与えられたトークン中の宛先情報に基づいて、２入力命令の一方入力に用いられる前記定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、
与えられたトークン内の情報と、前記定数データ処理部の出力とに基づいて、トークンを組立てて出力するためのデータ選択手段を含む、データ駆動型情報処理装置。
【請求項６】
データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行に必要なすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記データ対生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、複数個の動的データ対生成機構を含み、前記複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行のための引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、前記与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、前記与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力し、
前記データ対生成機構はさらに、
前記複数個の動的データ対生成機構をインタリーブして使用する際に、宛先情報のどの情報を用いて前記複数個の動的データ対生成機構を選択するかを示し、外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、前記複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、
与えられたトークン内の情報と、前記インタリーブフラグおよびアドレス生成手段の出力する選択情報とに基づいて、前記複数個の動的データ対生成機構のいずれかを選択的に作動させ、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む、データ駆動型情報処理装置。
【請求項７】
データフロープログラムを記憶するプログラム記憶機構と、
前記プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、
前記データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、
前記プログラム記憶機構と、前記データ対生成機構と、前記演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、
前記巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、
前記データ対生成機構は、
与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、
複数個の動的データ対生成機構とを含み、前記複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行に必要な引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、前記与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、前記与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力し、
前記データ対生成機構はさらに、
与えられたトークン内の情報と、前記定数データ処理部の出力とに基づいて、前記定数データ処理部の出力する定数データまたは前記複数個の動的データ対生成機構が出力する前記対となる引き数データのいずれを有効とすべきかを判定し判定結果を出力する選択検出部と、
前記複数個の動的データ対生成機構をインタリーブして使用するために外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、前記複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、
与えられたトークン内の情報と、前記インタリーブフラグおよびアドレス生成手段の出力する選択情報と、前記選択検出部の出力とに基づいて、前記複数個の動的データ対生成機構ならびに前記定数データ処理部のいずれかの出力を選択し、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む、データ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は情報処理の分野に関し、特に、命令の実行に必要なデータがすべて揃った時点でその命令の実行が行なわれる、データ駆動型情報処理に関する。
【０００２】
【従来の技術】
データ駆動原理は、本来的に自然な情報処理方式であると考えられる。このデータ駆動原理を基本原理とするデータ駆動型プロセッサは、実行可能な高位仕様記述から直接変換された対象プログラムを効果的に実行しようとする研究計画から生まれた一連のプロセッサの総称である。
【０００３】
データ駆動原理とは以下のようなものである。プログラムは複数の命令から構成される。各命令は、それぞれの実行に必要な引き数データがトークン（データパケット）の形ですべて到着すると実行可能な状態になる。実行可能な状態になった命令は、その引き数データおよび実行結果の宛先とともに演算処理機構に送られる。
【０００４】
ここで、実行可能な状態となった命令があるか否かについての判定と、実行可能な状態になった命令が存在する場合に、その命令を、その引き数データおよび実行結果の宛先とともに演算処理機構に送る処理を実現するのが、発火制御機構と呼ばれるものである。
【０００５】
演算処理機構では、当該命令が実行され、命令実行結果が、その宛先に従って、次に実行すべき命令の引き数データとしてトークンの形式で転送される。
【０００６】
このように、データを含むトークンの到着によって命令の実行が駆動されることから、このような計算機構はデータ駆動方式と呼ばれている。図２０に、データ駆動原理を示す。図２０の左部に示されるように、ある命令が２つの入力を必要としている場合、この命令に対応するノードには２つの入力枝が存在する。出力枝は１つである。この左右の入力枝からトークンがこのノードに到着すると、当該命令は発火し、演算結果（命令実行結果）のデータを、図２０の右部に示すように、出力トークンとしてその出力枝に送出する。
【０００７】
このようなデータ駆動原理については、たとえば「情報科学事典」（岩波書店刊、１９９４年）の第４９４頁〜第４９７頁に記載されている。
【０００８】
図２１に、従来のデータ駆動型プロセッサの概略構成を示す。このデータ駆動型プロセッサ４００は、動的発火制御（待合せ）機構（ＦＣ：Firing Control）４０２と、演算処理機構（ＦＰ：Function Processor）１０８と、プログラム記憶機構（ＰＳ：Program Store ）１０４と、データ入出力制御部（Ｉ／Ｏ：Input Output Control）１０２とを含み、これら各基本機能を巡回パイプラインで接続する構成を採用している。この巡回パイプラインによるデータ転送および処理のための基本構成に、図２２に示すようなハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続が用いられる。
【０００９】
図２２を参照して、このデータ転送機構は、たとえばハードウェアプリミティブ４１４の前後に設けられたデータラッチ４１０および４１２と、これらデータラッチ４１０および４１２に対してデータ転送のタイミング信号を与えるハンドシェイク型データ転送制御を行なうＣ素子４０６および４０８を含む。こうした構成を連続して設けることにより、データが各データラッチを順に転送され、その間にハードウェアプリミティブ４１４によってそのデータに対する処理が行なわれる。
【００１０】
このように、物理的水準の作業パケットであるデータパケットが、この構成中を自己経路選択機能により自律的に流路を選択し、それによって各機能要素で順次処理を受けつつ、流路を流れていくことにより、情報処理の実行も自律的に進行する。このような方式を導入することにより、データ駆動型プロセッサからは、システムバス、システムクロック、集中制御機構などがすべて排除される。すなわち全システムの制御が完全に分散化されている。
【００１１】
このようなデータ駆動型プロセッサの処理速度は、本質的に、図２２に示されるＣ素子（自己タイミング型転送制御素子）の内部回路構成およびデバイスの自然科学的特性により決まる。Ｃ素子４０６（または４０８）の内部回路構成を図２３に示す。図２３は一例であるが、このＣ素子は、前後のＣ素子と信号ＣＩ、ＣＯ、ＲＩ、ＲＯを用いてデータ転送のタイミングを決め、それに合せてデータラッチの制御パルスＣＰを出力していく。
【００１２】
このため、Ｃ素子の内部回路構成を決定すれば、この条件下におけるハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続網間での段間処理でどの程度の処理時間を要するかが決定される。
【００１３】
データ駆動型プロセッサの通常の演算処理においては、演算を下位の演算要素に分割し、これを何段かに分けて処理する。これをパイプライン分割処理と呼ぶ。
【００１４】
しかし、図２１に示す動的発火制御機構４０２においては、このようなパイプライン分割処理が実施できない。この事情を以下に説明する。
【００１５】
データ駆動型プロセッサにおいて、パケットとして与えられる引き数データの発火制御機構をどのように実現するかが、プログラムの実行速度や計算機全体のハードウェア量に大きな影響を与える。すなわち、発火制御機構に要するハードウェアや待合せの処理時間を低減することが、データ駆動型プロセッサの方式設計において最も重要な課題の１つである。
【００１６】
発火制御機構に基本的に必要とされる機能は次の３つである。
（１）  入力されたパケットが２入力命令への引き数データであるか否かを調べる。１入力命令へのパケットの場合には、待合せのための処理をバイパスする。
【００１７】
（２）  入力されたパケットが２入力命令へのパケットの場合は、その相手方パケットが既に到着しているか否かを調べる。
【００１８】
（３）  既に相手方パケットが到着していれば、それを他方の引き数データとして読出し、入力パケットとともに演算処理機構に転送する。相手方パケットが未だ到着していない場合には、待合せメモリに当該入力パケットを格納する。
【００１９】
データ駆動型プロセッサへの入力パケットは、宛先指定部分とデータ部分とから構成される。これらデータパケットの構成を、図３３および図３４に示す。図３３は、発火制御機構から演算処理機構に転送される経路以外におけるパケット５１０の形式を示し、図３４は発火制御機構から演算処理機構に転送されるデータパケット５１２の形式を示す。これらはあくまでも一例である。
【００２０】
図３３および図３４を参照して、データ駆動型プロセッサへの入力パケットの宛先指定部分には、一般的には、要素プロセッサ番号、命令記憶番地（ノード番号）ＮＤ、世代番号ＧＮなど待合せの相手を特定するための宛先情報の他に、パケットの型、待合せ条件などの情報が含まれる。データ部分は、一般的には、データの型とデータ自身とから構成される。図３３および図３４において左データはＬＤで、右データはＲＤで示される。発火制御機構は、これらの宛先情報を用いて、上記の発火制御機能を実現する。
【００２１】
発火制御機構の論理回路図を図２５および図２６に示す。図２５および図２６に示す回路は図２４に示すように組合される。この発火制御機構は図２１における発火制御機構４０２である。
【００２２】
図２５および図２６を参照してこの発火制御機構４０２は、Ｃ素子４２０、４２２、４２４、４２６、４２８、および４３０と、データラッチ４４０、４４２、４４４、４４６、４４８、４５０、４５２および４５４と、ＦＣ対応２入力命令実行パケット検出部２５４と、発火制御主要処理部１８８と、データパケットの廃棄、消滅などの機能を実現したり、その他ハンドシェイク型転送制御を行なうための論理ゲート回路４６０、４６２、および４６４とを含む。
【００２３】
図２５および図２６に示される動的発火制御機構４０２での処理は次のように行なわれる。データパケットがデータラッチ４４０にラッチされると、ＦＣ対応２入力命令実行パケット検出部２５４が、このパケットがＦＣ対応２入力命令実行パケットであるか否かを検出する。ＦＣ対応２入力命令実行パケット検出部２５４は、入力パケットがＦＣ対応２入力命令実行パケットであるか否かを表現するフラグＦＲを発生させ、フラグＦＲを入力パケットデータとともに発火制御主要処理部１８８に送る。
【００２４】
発火制御主要処理部１８８によって処理され出力されたデータは、データラッチ４５０、４５２および４５４によって、入力パケットデータとともにそのうちの必要なデータが取捨選択され、出力パケットが形成される。出力パケットはデータラッチ４５４から出力される。
【００２５】
発火制御主要処理部の論理回路図を図２８および図２９に示す。図２８および図２９に示される回路は図２７に示すように組合される。
【００２６】
図２８および図２９を参照して、発火制御主要処理部１８８は、発火制御主要処理部Ｃ素子２７０およびＣ素子２８８と、データラッチ２７６、２８０、２８６および２９６と、待合せメモリ用アクセス調整部２８２と、待合せメモリ２８４と、ハッシュ衝突検出部２９０と、発火詳細検出部２９２と、宛先情報選択部２９４と、インバータ２７２および２７４とを含む。
【００２７】
発火制御主要処理部１８８は以下のように動作する。入力パケットが２入力命令実行パケットであるか否かを表現するフラグＦＲと、発火制御機構に与えられたデータパケット中の必要なデータが発火制御主要処理部１８８に与えられる。入力されたパケットが１入力パケットであれば、そのパケットはスルー処理される。すなわち図２８に示す発火制御主要処理部Ｃ素子２７０のＷＷＢ端子に入力される信号値が１入力パケットを示す値であれば、短い段間処理時間モードが選択されこのパケットはスルー処理される。
【００２８】
入力されたパケットが２入力命令実行パケットであれば、以下に述べる処理を１段の段間処理内で行なわなければならない。この処理とは、待合せメモリからの読出処理および待合せメモリへの書込処理ならびにこれらに付随した処理をいう。具体的には次のとおりである。
【００２９】
入力パケット中の宛先指定部分の１組のビットをアドレスとして用い、待合せメモリ２８４よりデータを読出す。待合せメモリ２８４内のデータの構成を図３０に示す。
【００３０】
待合せメモリ２８４中のハッシュ溢れ宛先指定部分と、入力パケット中のハッシュ溢れ宛先指定部分とを比較し、ハッシュ衝突を起こしているか否かをハッシュ衝突検出部２９０が検出する。
【００３１】
発火詳細検出部２９２は、入力パケットが２入力命令実行パケットであり、かつ、ハッシュ衝突を起こしておらず、かつ、メモリから読出されたデータが有効（ＰＲＥフラグ＝１）であれば発火制御処理を引起すフラグを発生させる。このフラグを、待合せメモリ用アクセス調整部２８２を介して待合せメモリ２８４に与える。
【００３２】
次いで、入力パケット中データと、待合せメモリ２８４から読出されたデータとを収集してパケットを出力するとともに、待合せメモリ２８４の当該アドレスのデータを無効とする。すなわちそのアドレスの有効（ＰＲＥ）フラグの値を無効（０）とする。読出時には、このＰＲＥフラグの値を調べることにより、そのデータが有効か否かを判断することができる。
【００３３】
入力パケットが２入力命令実行パケットであり、かつ、待合せメモリ２８４から読出されたデータが有効であり、かつ、ハッシュ衝突を起こしていれば、ハッシュ衝突フラグの値を有効としたパケットを出力する。このパケットは巡回パイプラインを巡回し、再び発火制御機構に与えられて、再度発火処理が行なわれる。
【００３４】
入力パケットが２入力命令実行パケットであり、かつ、待合せメモリ２８４から読出されたデータが無効であれば、入力パケット中データの値を、待合せメモリ２８４の当該アドレスに書込む。この際、当該アドレスのＰＲＥフラグも有効としておく。
【００３５】
以上のとおり、発火詳細検出、ハッシュ衝突検出のための待合せメモリからのデータの読出と、各種処理のためのデータの書込を１段の段間処理内で行なわなければならない。そのために、かつ、論理素子の物理的伝播遅延時間が有限量であるために、待合せメモリからのデータの読出／書込を含むこの処理に必要な段間処理時間を、他の標準処理部と比して長くする必要がある。他の標準処理部とは、パイプライン分割処理可能な処理部のことをいう。
【００３６】
図２８に示す発火制御主要処理部Ｃ素子２７０が、そのような処理時間の調整が行なわれたＣ素子である。このＣ素子２７０の論理回路図の一例を図３２に示す。
【００３７】
図３２を参照し、このＣ素子２７０は、Ｃ素子４７０および４７２と、データラッチ４８０、４８２、および４８４と、論理ゲート回路４９０、４９２、４９４、４９６、４９８、５００、５０２、および５０４とを含む。それら相互の接続は図示のとおりである。
【００３８】
図３２に示す回路では、待合せメモリ２８４への書込を伴うパケットが処理される場合、すなわち端子ＷＷＢへの入力が「０」のときには、長い段階処理時間モードが選択される。なお端子ＷＷＢには、図２８に示すようにフラグＦＲがインバータ２７４で反転されたものが入力される。したがって端子ＷＷＢの信号が「０」の場合、入力パケットが２入力命令実行パケットである場合に相当する。
【００３９】
待合せメモリ２８４への書込を伴わないパケットが処理される場合、すなわち端子ＷＷＢ（図２８および図３２参照）には、短い段間処理時間モードが選択される。すなわち１入力命令の場合には、標準Ｃ素子の段間処理時間が選択される。
【００４０】
上記のような理由から、長い段間処理時間モードが、経時的にどのように選択されるかに従って、この発火制御主要処理部１８８での処理が、データ駆動型プロセッサ全体の処理時間上のボトルネックとなる場合があり得る。たとえば、連続して長い段間処理時間モードが選択された場合には、システム全体の処理時間がこの発火制御主要処理部１８８での処理速度で律速される。
【００４１】
なお、この事情は発火制御のメカニズムの一部のハッシュ衝突に関するメカニズムを除去しても同様である。そのような場合の待合せメモリの構成の一例を図３１に待合せメモリ２８４ａとして示す。
【００４２】
一方、発火制御機構の構成に要するハードウェア量の傾向は次のように考えることができる。発火制御機構においては、データ対生成のために待合せメモリ２８４（図３０、図３１を参照）を用いる。このメモリに必要なメモリ容量は、原理的には次のようになる。
【００４３】
２b1×ｂ２
ただし、ｂ１は宛先指定部分のビット数を示し、ｂ２はデータ部分のビット数を示す。このため、宛先指定部分のビット数が増加すれば、必要となるメモリ容量は指数関数的に増加する。
【００４４】
【発明が解決しようとする課題】
以上のように発火制御機構においては、発火制御のために、待合せメモリからのデータの読出と、待合せデータのない場合のメモリへの書込、およびそれらに付随した処理を、１段のパイプライン間で処理しなければならない。そのため、本処理がデータ駆動型プロセッサ全体の処理のボトルネックになり得る。このため、この処理をできるだけ高速に行なえるようにし、全体の処理速度を向上させることが望ましい。その場合に、発火制御機構の構成に要するハードウェア量の増加をできるだけ抑えることが望ましい。ハードウェア量を減少できれば最も好ましいであろう。
【００４５】
それゆえに請求項１に記載の発明の目的は、より高速に動作できるデータ駆動型情報処理装置を提供することである。
【００４６】
請求項２に記載の発明の目的は、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【００４７】
請求項３に記載の発明の目的は、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【００４８】
請求項４に記載の発明の目的は、用途が広く、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【００４９】
請求項５に記載の発明の目的は、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供することである。
【００５０】
請求項６に記載の発明の目的は、より高速に動作できるデータ駆動型情報処理装置を提供することである。
【００５１】
請求項７に記載の発明の目的は、より高速に動作できるデータ駆動型情報処理装置を提供することである。
【００５２】
【課題を解決するための手段】
請求項１に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と対データ生成機構と演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含む。データ対生成機構は、与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部を含み、与えられたトークン中の宛先情報に基づいて定数データ処理部から出力された定数が有効である場合には定数データ処理部から出力される定数データを用いてデータ対を生成し、定数が無効である場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減される。
【００５３】
請求項２に記載のデータ駆動型情報処理装置は、請求項１に記載のデータ駆動型情報処理装置であって、データ対生成機構は、さらに、定数データ処理部から、定数データが無効であるという情報が出力されたことに基づいて作動し、与えられたトークン中の宛先情報に基づいて引き数データの待合せを行ない、必要な引き数データがすべて揃ったと判定された命令と、与えられたトークン中の引き数データとを、前記与えられたトークン中の宛先情報とともに出力し、かつ、与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する動的データ対生成機構と、定数データ処理部から、定数データが有効であるという情報が出力された場合には定数データ処理部の出力する定数データを選択し、定数データ処理部から、定数データが無効であるという情報が出力された場合には動的データ対生成機構の出力する対となる引き数データを選択し、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む。
【００５４】
請求項３に記載のデータ駆動型情報処理装置は、請求項１に記載のデータ駆動型情報処理装置であって、定数データ処理部は、データフロープログラム中の命令に与えられたノード番号に基づいて計算されるアドレスに、当該命令に用いられる定数データおよびその有効フラグを格納した定数データメモリと、与えられたトークン中の宛先情報の中の、ノード番号に基づいて前記定数データメモリをアドレス指定し、定数データメモリから定数データおよびその有効フラグを読出すための手段とを含む。
【００５５】
請求項４に記載のデータ駆動型情報処理装置は、請求項３に記載のデータ駆動型情報処理装置であって、データ対生成機構はさらに、与えられたトークンに含まれる命令コードが、定数データメモリロード命令であることに応答して、与えられたトークンに含まれるデータを、定数データメモリ内の、与えられたトークンに含まれるノード番号に基づいて指定されるアドレスに書込むための手段を含む。
【００５６】
請求項５に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と、対データ生成機構と、演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含むデータ駆動型情報処理装置であって、データ対生成機構は、与えられたトークン中の引き数データと対となる引き数データが定数である場合には定数データを用いてデータ対を生成し、引き数データが定数でない場合には引き数データの待合せを行なってデータ対を生成し、それによってデータ対の生成処理の負荷が軽減されることを特徴とし、データ対生成機構は、与えられたトークン中の宛先情報に基づいて、２入力命令の一方入力に用いられる定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、与えられたトークン内の情報と、定数データ処理部の出力とに基づいて、トークンを組立てて出力するためのデータ選択手段とを含む。
【００５７】
請求項６に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行に必要なすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と、データ対生成機構と、演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含む。データ対生成機構は、複数個の動的データ対生成機構を含む。複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行のための引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、与えられたトークン中の引き数データとを、与えられたトークン中の宛先情報とともに出力し、かつ、与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する。データ対生成機構はさらに、複数個の動的データ対生成機構をインタリーブして使用する際に、宛先情報のどの情報を用いて複数個の動的データ対生成機構を選択するかを示し、外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、与えられたトークン内の情報と、インタリーブフラグおよびアドレス生成手段の出力する選択情報とに基づいて、複数個の動的データ対生成機構のいずれかを選択的に作動させ、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む。
【００５８】
請求項７に記載のデータ駆動型情報処理装置は、データフロープログラムを記憶するプログラム記憶機構と、プログラム記憶機構の出力を受け、実行のためのすべての引き数データが利用可能になった命令をその引き数データおよびその実行結果の宛先情報とともに出力するためのデータ対生成機構と、データ対生成機構の出力を受け、与えられた命令を実行してその実行結果を、与えられた宛先情報とともに出力する演算処理機構と、プログラム記憶機構と、データ対生成機構と、演算処理機構との間のデータの移動をトークン形式で行なうための巡回パイプラインと、巡回パイプラインに接続されたデータ入出力制御手段とを含む。データ対生成機構は、与えられたトークン中の宛先情報に基づいて、定数データおよび当該定数データが有効か否かを表わす情報を出力する定数データ処理部と、複数個の動的データ対生成機構とを含む。複数個の動的データ対生成機構の各々は、与えられたトークン中の宛先情報に基づいて、命令の実行に必要な引き数データの待合せを行なうための待合せメモリを有し、実行に必要な引き数データがすべて揃ったと判定された命令と、与えられたトークン中の引き数データとを、与えられたトークン中の宛先情報とともに出力し、かつ、与えられたトークン中の引き数データと対となる引き数データが待合せされていた場合にはさらに当該対となる引き数データを出力する。データ対生成機構はさらに、与えられたトークン内の情報と、定数データ処理部の出力とに基づいて、定数データ処理部の出力する定数データまたは複数個の動的データ対生成機構が出力する対となる引き数データのいずれを有効とすべきかを判定し判定結果を出力する選択検出部と、複数個の動的データ対生成機構をインタリーブして使用するために外部から与えられるインタリーブ設定パラメータと、与えられるトークンに含まれる宛先情報とに基づいて、複数個の動的データ対生成機構のいずれを選択するかを表わす選択情報と、選択された動的データ対生成機構でのデータの待合せに使用するアドレスとを生成するためのインタリーブフラグおよびアドレス生成手段と、与えられたトークン内の情報と、インタリーブフラグおよびアドレス生成手段の出力する選択情報と、選択検出部の出力とに基づいて、複数個の動的データ対生成機構ならびに定数データ処理部のいずれかの出力を選択し、その出力を、与えられたトークン内の情報とともに用いてトークンを組立てて出力するためのデータ選択手段とを含む。
【００５９】
【作用】
請求項１に記載のデータ駆動型情報処理装置においては、データ対生成機構は、与えられたトークン中の宛先情報に基づいて定数データ処理部から出力された定数データが有効である場合とそうでない場合とで、異なる態様でデータ対の生成処理を行なう。一般的に引き数データが定数である場合にはデータ対の生成処理の処理量は少なくてすむ。こうした作業を、他の一般的なデータ対の生成処理と別に行なうことで一般的なデータ対の生成処理の処理量を削減できる。したがってこの請求項１に記載のデータ駆動型情報処理装置では、データ対の生成処理の負荷が軽減される。
【００６０】
請求項２に記載のデータ駆動型情報処理装置においては、請求項１に記載のデータ駆動型情報処理装置の作用に加え、動的データ対生成機構は、定数データ処理部から、定数データが無効であるという情報が出力された場合のみ作動し、定数データが有効であるという情報が出力された場合には作動しない。そのため、動的データ対生成機構の処理量が少なくてすむ。
【００６１】
請求項３に記載のデータ駆動型情報処理装置においては、請求項１に記載のデータ駆動型情報処理装置の作用に加え、定数データメモリに、引き数の１つとして定数を必要とするノードの、その定数が記憶されている。与えられたトークン中の宛先情報の中の、ノード番号に基づいて定数データメモリをアドレス指定することで、そのノードでの演算に必要とされる定数がもしあれば、定数データメモリから読出せる。
【００６２】
請求項４に記載のデータ駆動型情報処理装置においては、請求項３に記載のデータ駆動型情報処理装置の作用に加え、定数データメモリ内の、与えられたトークンに含まれるノード番号に基づいて指定されるアドレスに、パケットを介して定数データを書込むことができる。したがって、様々なデータフロープログラムに対応できる。
【００６３】
請求項５に記載のデータ駆動型情報処理装置においては、請求項１に記載のデータ駆動型情報処理装置の作用に加え、定数データ処理部のみを用いて引き数データの待合せを行なうことができる。動的なデータ対の生成はできないので行なえる処理には限界があるが、少ない処理量で、かつ高速にデータ対の生成を行なえる。
【００６４】
請求項６に記載のデータ駆動型情報処理装置においては、複数個の動的データ対生成機構がインタリーブして使用できる。データパケットを適切な順番でデータ駆動型情報処理装置に与えることで、複数個の動的データ対生成機構の負荷を分散させることができる。
【００６５】
請求項７に記載のデータ駆動型情報処理装置においては、動的データ対生成機構の出力が、定数データ処理部から、定数データが無効であるという情報が出力された場合のみ選択され、定数データが有効であるという情報が出力された場合には選択されない。そのため、動的データ対生成機構の処理量が少なくてすむ。さらに、動的データ対生成機構に含まれる複数個の動的データ対生成機構がインタリーブして使用できる。データパケットを適切な順番でデータ駆動型情報処理装置に与えることで、複数個の動的データ対生成機構の負荷を分散させることができる。
【００６６】
【実施例】
［実施例１］
図１に、本願発明の第１の実施例に係るデータ駆動型情報処理装置であるデータ駆動型プロセッサ１００の模式構成図を示す。図１を参照してこのデータ駆動型プロセッサ１００は、従来のものと同様のデータ入出力制御部１０２と、プログラム記憶機構１０４と、演算処理機構１０８とに加え、定数データメモリ／動的発火制御機構（ＣＳＴ／ＦＣ）１０６を含み、これら各基本機能が巡回パイプラインで接続されている。
【００６７】
図３および図４に、ＣＳＴ／ＦＣ１０６の論理回路図を示す。図３および図４は図２に示すように組合される。このＣＳＴ／ＦＣ１０６への入出力パケットの構成は、図３３および図３４に示したものと同様である。
【００６８】
図３および図４を参照して、ＣＳＴ／ＦＣ１０６は、Ｃ素子１２０、１２２、１２４、１２６、１２８、１３０、１３２および１３４と、データラッチ１５０、１５２、１５４、１５６、１５８、１６０、１６２、１６４、１６６、１６８、１７０および１７２と、定数データメモリのロード・ダンプ検出部１８０と、定数データメモリ１８２と、セレクタ１８４と、ＦＣ対応２入力命令実行パケット検出部１８６と、発火制御主要処理部１８９と、対データ選択部１９０と、論理ゲート回路１４２および１４４と、伝送制御回路１４０および１４６とを含む。図３および図４において、図２５および図２６に示される部品と対応する部品については同じ参照番号を与えている。それらの機能および名称も同一である。したがってそれらについての説明も適宜省略する。
【００６９】
なお、定数データメモリ１８２のデータの格納内容を図５に示す。図５を参照して定数データメモリ１８２は、０〜２bn−１まで、２bn個のアドレスを有する。各アドレスのデータ領域には、定数データと、その定数データが有効かどうかを示すフラグ（ＶＬＤフラグ）とが格納されている。各定数データは、その定数データが使用されるノード番号から所定の方式により計算されるアドレスに予め格納される。なおこの定数データは、ロード・ダンプのための命令を含むデータパケットをこのデータ駆動型プロセッサに与えることにより、ロード・ダンプ検出部１８０の機能により定数データメモリ１８２に書込まれ、または定数データメモリ１８２から出力される。
この第１の実施例のデータ駆動型プロセッサでの処理は次のように行なわれる。ＣＳＴ／ＦＣ１０６に入力パケットが与えられると、その入力パケットの宛先指定部分の一部をアドレスとして、定数データメモリ１８２から該当の定数データおよびＶＬＤフラグが読出される。この実施例の場合には入力パケットの宛先指定部分のうちノード番号によって定数データメモリがアドレス指定される。ＶＬＤフラグは図３に示される定数データメモリ１８２の出力端子ＶＣＤに対応する。ＶＬＤフラグは定数データメモリの値が有効であれば１を、無効であれば０をとる。この定数データメモリ１８２へのアクセスは、当該入力パケットが２入力命令の引き数データであるか、１入力命令の引き数データであるかに関わりなく行なわれる。なお定数データメモリ１８２から出力された定数データおよびＶＬＤフラグは、後段のＣＳＴ／ＦＣデータ選択部（図４における対データ選択部１９０に対応）まで保持される。
【００７０】
ＦＣ対応２入力命令実行パケット検出部１８６は、入力パケットが２入力命令実行パケットであるか否かを検出する。ＦＣ対応２入力命令実行パケット検出部１８６は、入力パケットが２入力命令実行パケットであるか否かを表現するフラグＦＲを発生させ、このフラグＦＲを、入力パケット中の必要なデータとともに発火制御主要処理部１８９に与える。なお本実施例においては、フラグＦＲが１でかつ定数データメモリ１８２から出力される後述のＶＬＤフラグが０のときには対データとして発火制御主要処理部１８９で生成したデータの値（図４における対データ選択部１９０の入力ＭＬに相当）を使用し、フラグＦＲが０でかつＶＬＤフラグが１のときには定数メモリ１８２から出力されたデータの値（図４における対データ選択部１９０の入力Ｃに相当）を使用する。発火制御主要処理部の処理内容については従来のものと基本的には同様であるが、ここに違いを含めてその詳細を説明する。
【００７１】
発火制御主要処理部１８９は、図２８および図２９を参照して、入力パケットが２入力命令実行パケットであるか否かを表現するフラグＦＲと、発火制御機構に与えられたパケット中の必要なデータとを受取る。入力したパケットが１入力命令パケットであれば、すなわちフラグＦＲが０のときには入力パケットはスルー処理される。すなわち、図２８を参照して、発火制御主要処理部Ｃ素子２７０のＷＷＢ端子に入力される信号値が１であれば、短い段間処理時間モードを選択してスルー処理を行なう。
【００７２】
入力されたパケットが２入力命令実行パケットであれば次の処理が行なわれる。入力パケット中の宛先指定部分の１組のビットをアドレスとして用い、待合せメモリ２８４から出るデータを読出す（図２８）。待合せメモリ２８４から読出された宛先指定部分と入力パケットのハッシュ溢れ宛先指定部分とを比較し、図２９に示すハッシュ衝突検出部によってハッシュ衝突を起こしているか否かを検出する。次の発火詳細検出部２９２は、入力パケットが２入力命令実行パケットであり、かつ、ハッシュ衝突を起こしておらず、かつ、メモリから読出されたデータが有効（ＰＲＥ＝１）であれば発火制御処理を行なう。次いで、入力パケット中データとメモリから読出されたデータとをデータラッチ２９４および２９６で収集し、パケットを構成してこれを出力する。同時に当該アドレスについてのメモリ上のデータを無効（ＰＲＥ＝０）とする。すなわちメモリ中の当該アドレスのＰＲＥフラグの値を、無効を表わす値とする。
【００７３】
入力パケットが２入力命令実行パケットであり、かつ、待合せメモリ２８４から読出されたデータが有効（ＰＲＥ＝１）であり、かつ、ハッシュ衝突検出部２９０によってハッシュ衝突の発生が検出された場合には、ハッシュ衝突フラグの値を有効値としたパケットを出力する。このパケットは巡回パイプラインを再び巡回し、次にこの定数データメモリ／動的発火制御機構１０６に到達した時点でもう１度発火検出処理が行なわれる。
【００７４】
入力パケットが２入力命令実行パケットであり、かつ、待合せメモリ２８４から読出されたデータが無効値（ＰＲＥ＝０）であれば、入力パケット中データの値をメモリの当該アドレスに書込む。この際、当該アドレスのＰＲＥフラグには有効値を示す値が書込まれる。
【００７５】
発火制御主要処理部１８９（図４参照）から出力された情報は、対データ選択部１９０において、パケットとして必要な情報を収集／選択することによりパケットに組立てられ、ＣＳＴ／ＦＣ１０６から出力される。このとき、定数データメモリ１８２から出力されたＶＬＤフラグが１であれば、対データ選択部１９０は定数データメモリの出力を選択し、０であれば発火制御主要処理部１８９の出力を選択する。定数データメモリから読出されたＶＬＤフラグの値が０のときのみ発火制御主要処理部１８９が作動するので、発火制御主要処理部１８９により処理されるパケット数が減少し、したがってこの部分の処理がシステム全体のボトルネックとなってしまう可能性が減少する。
【００７６】
なお、定数データメモリのロード・ダンプ検出部１８０は、入力されたデータパケットの命令コードがロードまたはダンプ命令である場合、ラッチ１５２を介して定数データメモリ１８２を制御し、与えられたデータパケットのデータを指定されたアドレスに書込み、または指定されたアドレスから定数データメモリ１８２の格納内容を出力させる。こうしたロード・ダンプ検出部１８０を設けることにより、定数データメモリ１８２へのデータの書込および読出を行なうことができる。したがって定数データメモリ１８２の内容を容易に変更でき、より広い用途にこのデータ駆動型プロセッサを使用できる。ただし、そうした定数データメモリ１８２への単なる書込および単なる読出をする必要がないのであれば、このロード・ダンプ検出部１８０は不要である。
【００７７】
［実施例２］
図６に、本願発明のデータ駆動型情報処理装置の他の実施例であるデータ駆動型プロセッサの模式構成図を示す。図６を参照してこのデータ駆動型プロセッサ２００は、図１に示した第１のデータ駆動型プロセッサのＣＳＴ／ＦＣ１０６に替えて、動的データ対生成処理を行なわず、定数処理のみを行なう定数データメモリ機構（ＣＳＴ）２０２を含む点で異なっている。他の部分は図１に示すものと同様である。
【００７８】
図７に、図６に示すＣＳＴ２０２の論理回路図を示す。図７を参照してこのＣＳＴ２０２は、Ｃ素子１２０、１２２、１２４および１３４と、データラッチ１５０、１５２、１５４、１５６、および１５８と、定数データメモリのロード・ダンプ検出部１８０と、定数データメモリ１８２ａと、セレクタ１８４と、データラッチ２１２と、論理ゲート回路２１０と、伝送制御回路１４０とを含む。図７において、図３および図４の回路におけるものと同じ部品には同じ参照番号を付す。それらの機能および名称も同一である。したがってここではそれらについての説明は適宜省略する。
【００７９】
図７に示す定数データメモリ１８２ａの内容を図８に示す。図８に示される定数データメモリ１８２ａが図５に示される定数データメモリ１８２と異なるのは、各アドレスにデータのみが格納され、ＶＬＤ（有効）フラグが格納されていないことである。これは、この実施例では定数データメモリによる定数処理しか行なわれず、動的データ対生成処理は行なわれないので、常にこの定数データメモリ１８２ａの出力を選択すればよいためである。
【００８０】
この第２の実施例のデータ駆動型プロセッサでの処理は次のように行なわれる。特にＣＳＴ２０２で行なわれる処理についてのみ述べる。図７を参照して、入力パケットの宛先指定部分の一部を用いてアドレス指定することにより、定数データメモリ１８２ａから定数データが読出される。本実施例の場合には、入力パケットのノード番号部分がアドレス指定に用いられる。読出された定数データは、入力パケットとともにデータラッチ１５８、および２１２、ならびにセレクタ１８４によって必要な情報を収集／選択することによりパケットに構成され、ＣＳＴ２０２から出力される。以後のデータ駆動型プロセッサの動作は第１の実施例と同様である。
【００８１】
この第２の実施例では、動的データ対生成処理は一切行なわれない。定数データ処理による定数との待合せ処理が行なわれるだけである。したがって動的データ対生成処理を有するものと比較して行なえる処理には制限があるが、ハードウェア量ははるかに少なくてすむ。また処理も高速に行なわれるという効果がある。
【００８２】
なお、定数データメモリのロード・ダンプ検出部１８０は、第１の実施例と同様に、用いられなくてもよい。
【００８３】
［実施例３］
図９に本願発明に係るデータ駆動型情報処理装置の他の実施例であるデータ駆動型プロセッサ２２０の模式構成図を示す。図９に示される第３の実施例のデータ駆動型プロセッサが図１に示される第１のデータ駆動型プロセッサと異なるのは、ＣＳＴ／ＦＣ１０６に替えて、インタリーブ処理付動的発火制御機構ＦＣ２２２を有することである。端的に言えば、ＦＣ２２２の内部に、動的発火制御機構を複数個持ち、これらをインタリーブして動作させる。そうすることにより、たとえばＦＣ２２２に与えるデータパケットの順序を考慮すれば、複数個の動的発火制御機構がインタリーブして使用でき、動的発火制御機構各々にかかる負荷を減少できる。
【００８４】
図１１および図１２に、ＦＣ２２２の論理回路図を示す。図１１および図１２は、図１０に示すように組合される。
【００８５】
図１１および図１２を参照してこのＦＣ２２２は、Ｃ素子１２０、１２２、１２４、１２６、１２８、１３０、１３２および１３４と、データラッチ１５０、１６０、１６２、１６４、１６６、１６８、１７０、１７２、２４６、２４８および２５２と、インタリーブフラグ／インタリーブ時ＦＣアドレス検出部２５０と、ＦＣ対応２入力命令実行パケット検出部２５４と、２つの発火制御主要処理部２５６および２５８と、発火制御主要処理出力データ選択部２６０と、対データ選択部２６２と、論理ゲート回路２３０、２３２、２３４、２３６、２３８、２４０、２４２、２４４、および１４４と、伝送制御回路１４６とを含む。図１１および図１２において、図３および図４ならびに図７に示される部品に相当する部品には同じ参照符号を付してある。それらの名称および機能も同様である。したがってここでは、それらについての説明は適宜省略する。
【００８６】
図１４および図１５に、図１２に示す発火制御主要処理部２５６または２５８の概略の構成を示す。図１４および図１５は、図１３に示されるように組合される。
【００８７】
図１４および図１５を参照して、発火制御主要処理部２５６または２５８は、発火制御主要処理部Ｃ素子２７０と、Ｃ素子２８８と、インバータ２７２および２７４と、データラッチ２７６、２７８、２８０、２８６および２９６と、待合せメモリ用アクセス調整部２８２と、待合せメモリ２８４と、ハッシュ衝突検出部２９０と、発火詳細検出部２９２と、宛先情報選択部２９４とを含む。図１４および図１５において、図２８および図２９と共通の部品には同じ参照符号を付してある。それらの名称も同様である。したがってそれらについての説明は適宜省略する。
【００８８】
この第３の実施例のデータ駆動型プロセッサは次のように動作する。特にＦＣ２２２の動作についてのみ以下に述べる。図１１に示される端子ＦＩＳには、ＦＩＳパラメータが外部から与えられる。このＦＩＳパラメータはたとえばレジスタなどに格納されている。ＦＩＳパラメータとは、発火制御主要処理部２５６および２５８をインタリーブして使用する際に、宛先指定部分のどの情報を用いて発火制御主要処理部を選択するかを指定するための情報であり、本実施例の場合には３ビットである。したがって８通りの組合せを指定することができる。
【００８９】
インタリーブフラグ／インタリーブ時ＦＣアドレス検出部２５０は、ＦＩＳパラメータに従って、指定されたアドレス計算を行なってデータラッチ２５２を介して発火制御主要処理部２５６および２５８にアドレスを与える。このアドレスは待合せメモリにアクセスする際のアドレスである。なお本実施例においては、どの発火制御主要処理部を選択するかを表わすＩＢフラグが１の場合には発火制御主要処理部２５６を、０の場合には発火制御主要処理部２５８を選択し処理する構成となっている。
【００９０】
ＦＣ対応２入力命令実行パケット検出部２５４は、入力パケットが２入力命令実行パケットであるか否かを検出し、入力パケットが２入力命令実行パケットであるか否かを表現するフラグＦＲを発生する。このフラグＦＲは入力パケットデータとともに発火制御主要処理部２５６および２５８に与えられる。
【００９１】
図１４および図１５を参照して、発火制御主要処理部２５６または２５８で行なわれる処理は、基本的には図２８および図２９を参照して説明したものと同様である。ただし本実施例の場合図１４を参照して、待合せメモリ２８４へのアクセスの際には、データラッチ２７８を介して、前述したインタリーブ・フラグ／インタリーブ時ＦＣアドレス検出部２５０により生成されたアドレスを使用する点が異なる。発火制御主要処理部２５６または２５８から出力された情報は、発火制御主要処理出力データ選択部２６０および対データ選択部２６２において行なわれる、パケットとして必要な情報の収集／選択の後データパケットに組立てられ、ＦＣ２２２から出力される。
【００９２】
本実施例のように複数の発火制御主要処理部を設け、入力パケットの宛先情報の一部を用いていずれの発火制御主要処理部を選択するかを決め、選択された発火制御主要処理部を用いて処理すれば、たとえば宛先情報を参照しながら適切な順序でデータパケットをデータ駆動型プロセッサに与えることにより、発火制御主要処理部２５６および２５８がインタリーブして使用できる。各々の発火制御主要処理部の負荷が軽減され、ＦＣ２２２全体として、従来の動的発火制御機構と比較してより大きな処理能力を有することになる。したがってこの発火制御機構がデータ駆動型プロセッサ全体の処理におけるボトルネックとなる恐れが小さくなる。
【００９３】
なお本実施例ではＦＩＳパラメータは３ビットである。しかしＦＩＳパラメータのビット数が本実施例のように３ビットに限定されるわけではない。また、本実施例では、２つの発火制御主要処理部を使用したが、２つとは限らず、３つ以上使用してもよく、そうした方が各々の負荷は小さくなる。
【００９４】
［実施例４］
図１６に本願発明のデータ駆動型情報処理装置の他の実施例であるデータ駆動型プロセッサ３００の模式構成図を示す。図１６に示されるデータ駆動型プロセッサ３００が第１〜第３の実施例のデータ駆動型プロセッサと異なるのは、図１におけるＣＳＴ／ＦＣ１０６、図６におけるＣＳＴ２０２、および図９におけるＦＣ２２２に替えて、実施例１の構成に、発火制御主要処理部を複数個備えるような変更を加えたＣＳＴ／ＦＣ３０２を有する点で異なっている。すなわちこの実施例４のデータ駆動型プロセッサでは、待合せの相手が定数データであるようなデータパケットが与えられた場合には定数データメモリから当該定数データを読出してデータ対の生成を行ない、２入力命令であってかつ相手の引き数データが定数でないものについては複数個の発火制御主要処理部をインタリーブして使用する。このようにすることにより、定数データ処理を設けることにより、動的データ対生成処理の処理量が削減され、さらにそれを複数個の発火制御主要処理部で分担できる。したがってこの第４の実施例のＣＳＴ／ＦＣ３０２を用いれば、データ駆動型プロセッサにおいて、発火制御機構の処理が全体の処理のボトルネックとなる恐れはより小さくなる。
【００９５】
図１８および図１９に、この第４の実施例のＣＳＴ／ＦＣ３０２の回路構成の概略図を示す。図１８および図１９は図１７に示されるように組合される。
【００９６】
図１８および図１９を参照して、ＣＳＴ／ＦＣ３０２は、Ｃ素子１２０、１２２、１２４、１２６、１２８、１３０、１３２および１３４と、データラッチ１５０、１５２、１５６、１６８、１７０、１７２、２４８、３１０、３１２、３１４、３１６および３１８と、定数データメモリのロード・ダンプ検出部１８０と、定数データメモリ１８２と、インタリーブフラグ／インタリーブ時ＦＣアドレス検出部２５０と、セレクタ１８４と、ＦＣ対応２入力命令実行パケット検出部１８６と、発火制御主要処理部２５６および２５８と、発火制御主要処理出力データ選択部２６０と、対データ選択部２６２と、伝送制御回路１４０および１４６と、論理ゲート回路１４４、２３０、２３４、２３６、２３８、２４０、２４２および２４４とを含む。図１８および図１９において、図３および図４、図７、ならびに図１１および図１２に示される部品に相当する部品には、同一の参照番号が付されている。それらの機能および名称も同様である。したがってそれらについての説明は適宜省略する。
【００９７】
この第４の実施例のデータ駆動型プロセッサ、特にＣＳＴ／ＦＣ３０２は次のように動作する。
【００９８】
図１８に示される端子ＦＩＳから与えられるＦＩＳパラメータは、第３の実施例のＦＩＳパラメータと同様である。すなわち、このＦＩＳパラメータは、複数個（本実施例では２個）の発火制御主要処理部をインタリーブして使用する際に、データパケットの宛先指定部分のどの情報を用いて発火制御主要処理部を選択するかを指定するためのものである。
【００９９】
インタリーブフラグ／インタリーブ時ＦＣアドレス検出部２５０は、ＦＩＳパラメータと、入力されたデータパケットの宛先指定部分の、ＦＩＳパラメータによって指定される情報を用いて、ＩＢフラグと待合せメモリへのアクセスの際のアドレスを生成する。ＩＢフラグは、第３の実施例と同様に、入力されたサブパケットがいずれの発火制御主要処理部で処理されるかを表現するフラグである。
【０１００】
ＦＣ対応２入力命令実行パケット検出部１８６は、入力パケットが２入力命令実行パケットであるか否かを検出し、入力パケットが入力命令実行パケットであるか否かを表現するフラグＦＲを発生させる。フラグＦＲは、入力パケットデータとともに発火制御主要処理部２５６および２５８に与えられる。
【０１０１】
一方、入力パケットがＣＳＴでデータ対生成されるべきものか、発火制御主要処理部２５６または２５８でデータ対生成されるべきものかには関わりなく、入力パケットの宛先指定部分の一部を用いて、定数データメモリ１８２から定数データおよびＶＬＤフラグが読出される。なおこの定数データメモリ１８２のアドレス指定は、本実施例においてはノード番号を用いて行なわれている。またＶＬＤフラグは、当該アドレスの定数データメモリの値が有効であれば１を、無効であれば０をとる。この定数データおよびＶＬＤフラグは、後段の対データ選択部（ＣＳＴ／ＦＣデータ選択部）２６２および発火制御主要処理出力データ選択部２６０まで保持される。
【０１０２】
図１９を参照して、本実施例の場合、ＩＢフラグが１の場合には発火制御主要処理部２５６が、ＩＢフラグが０の場合には発火制御主要処理部２５８が選択的に作動するようになっている。ただしこの場合、定数データメモリ１８２から出力されたＶＬＤフラグが有効の場合にはこれら発火制御主要処理部２５６または２５８は作動せず、ＶＬＤフラグが０の場合のみこのいずれかが作動する。
【０１０３】
発火制御主要処理部２５６または２５８における処理は、基本的には第３の実施例における発火制御主要処理部２５６または２５８と同様である。待合せメモリへのアクセス時に、前述のインタリーブフラグ／インタリーブ時ＦＣアドレス生成部２５０によって生成されたアドレスを使用するのも第３の実施例と同様である。
【０１０４】
発火制御主要処理部２５６または２５８から出力された情報は、発火制御主要処理出力データ選択部２６０および対データ選択部２６２において行なわれるパケットとして必要な情報の収集／選択処理を経てデータパケットに組立てられ、ＣＳＴ／ＦＣ３０２から出力される。なおこの際、定数データメモリ１８２から出力されたＶＬＤフラグの値が１であれば定数データメモリの出力した定数データが、ＶＬＤフラグの値が０であれば発火制御主要処理部２５６または２５８のうちの選択されたものの出力が、入力パケットの対データとして選択される。
【０１０５】
なお定数データメモリのロード・ダンプ検出部１８０は、第１および第２の実施例における定数データメモリのロード・ダンプ検出部１８０と同じものである。ロード・ダンプ検出部１８０は、前述のとおり入力パケットが実行パケットでなく、定数データメモリへの単なる書込および読出の場合にのみ使用される処理部である。したがってこれが存在しなくてもデータ駆動型プロセッサの動作自体には影響はない。ただしロード・ダンプ検出部１８０を用いることにより、定数データメモリの内容の変更および確認が行なえる。
【０１０６】
以上のようにこの実施例４のデータ駆動型プロセッサでは、定数データメモリに有効なデータがあれば、発火制御主要処理部を動作させることなく定数データメモリから出力された定数データが対データとして選択される。定数データメモリに有効なデータが記憶されていなかった場合のみ、発火制御主要処理部が動作するので、発火制御主要処理部の処理量が減少でき、発火制御処理の負荷量が減少する。さらにまた複数個（本実施例の場合には２つ）の発火制御主要処理部を設け、入力パケットの宛先情報を用いてこれらをインタリーブして使用するので、個々の発火制御主要処理部の負荷は分散でき、さらにデータ駆動型プロセッサ全体の処理速度の向上を図ることができる。
【０１０７】
以上この発明を実施例に基づいて説明したが、本願は上述の実施例には限定されず、この他にも様々な変更を加えて実施できることは言うまでもない。たとえばＣ素子の回路構成、定数データメモリおよび待合せメモリのデータの格納の仕方、あるいはＦＩＳパラメータによる指定方法などは、要求仕様により適宜変更することができる。
【０１０８】
【発明の効果】
以上のように請求項１に記載の発明によれば、与えられたトークン中の宛先情報に基づいて定数データ処理部から出力された定数が有効である場合とそうでない場合とで、異なる態様でデータ対の生成処理を行なうので、データ対の生成処理の負荷が軽減される。その結果、全体の処理速度を律速するデータ対の生成処理の速度を高めることができるようになり、より高速に動作できるデータ駆動型情報処理装置を提供できる。
【０１０９】
請求項２に記載の発明によれば、請求項１に記載のデータ駆動型情報処理装置の効果に加え動的データ対生成機構の処理量が少なくてすむので、動的データ対生成機構のハードウェア量を削減できる。また定数データ処理部のハードウェア量も少なくてすむので、全体のデータ対生成処理部のハードウェア量を削減できる。その結果、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供できる。
【０１１０】
請求項３に記載の発明によれば、請求項１に記載の発明の効果に加え、簡単な処理で、かつ高速に、あるノードに対応したデータ対生成のための定数データが定数データメモリから読出せる。そのために必要なハードウェア量も少なくてすみ、その結果、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供できる。
【０１１１】
請求項４に記載の発明によれば、請求項３に記載の発明の効果に加え、様々なデータフロープログラムに簡単に対応して定数データメモリの内容を変更することができる。その結果、用途が広く、より高速に動作でき、ハードウェア量も少ないデータ駆動型情報処理装置を提供できる。
【０１１２】
請求項５に記載の発明によれば、請求項１に記載の発明の効果に加え、定数データ処理部のみを用いて引き数データの待合せを行なうので、少ない処理量で、かつ高速にデータ対の生成を行なえる。必要なハードウェア量も少なくてすむ。その結果、より高速に動作でき、ハードウェア量の少ないデータ駆動型情報処理装置を提供できる。
【０１１３】
請求項６に記載の発明によれば、複数個の動的データ対生成機構の負荷を分散させることができる。その結果、より高速に動作できるデータ駆動型情報処理装置を提供できる。
【０１１４】
請求項７に記載の発明によれば、動的データ対生成機構の処理量が少なくてすみ、動的データ対生成機構に含まれる複数個の動的データ対生成機構の負荷を分散させることができる。その結果、より高速に動作できるデータ駆動型情報処理装置を提供できる。
【図面の簡単な説明】
【図１】本願発明の第１の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図２】図３および図４の関係を模式的に示す図である。
【図３】第１の実施例の定数データメモリ／動的発火制御機構１０６の構成の一部を示す論理回路図である。
【図４】定数データメモリ／動的発火制御機構１０６の構成の他の部分を示す論理回路図である。
【図５】第１の実施例の定数データメモリ１８２の構成を示す模式図である。
【図６】本願の第２の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図７】第２の実施例の定数データメモリ機構２０２の論理回路図である。
【図８】第２の実施例における定数データメモリ１８２ａの構成を模式的に示す図である。
【図９】本願の第３の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図１０】図１１および図１２の関係を示す模式図である。
【図１１】本願の第３の実施例に係るデータ駆動型プロセッサのインタリーブ処理付動的発火制御機構２２２の構成の一部を示す論理回路図である。
【図１２】インタリーブ処理付動的発火制御機構２２２の構成の他の部分を示す論理回路図である。
【図１３】図１４および図１５の関係を模式的に示す図である。
【図１４】本願の第３の実施例に係るデータ駆動型プロセッサの発火制御主要処理部の構成の一部を示す論理回路図である。
【図１５】本願発明の第３の実施例に係るデータ駆動型プロセッサの発火制御主要処理部の構成の他の部分を示す論理回路図である。
【図１６】本願発明の第４の実施例に係るデータ駆動型プロセッサの模式構成図である。
【図１７】図１８および図１９の関係を示す模式図である。
【図１８】第４の実施例のデータ駆動型プロセッサの定数データメモリ／インタリーブ処理付動的発火制御機構３０２の構成の一部を示す論理回路図である。
【図１９】定数データメモリ／インタリーブ処理付動的発火制御機構の他の部分を示す論理回路図である。
【図２０】データ駆動原理を模式的に示す図である。
【図２１】従来のデータ駆動型プロセッサの模式構成図である。
【図２２】巡回パイプラインにおける自己タイミング型データ転送処理機構を示す図である。
【図２３】Ｃ素子の論理回路構成図である。
【図２４】図２５および図２６の関係を模式的に示す図である。
【図２５】従来の技術による動的発火制御機構の構成の一部を示す論理回路図である。
【図２６】動的発火制御機構の他の部分の構成を示す論理回路図である。
【図２７】図２８および図２９の関係を模式的に示す図である。
【図２８】従来の技術における発火制御主要処理部の構成の一部を示す論理回路図である。
【図２９】従来の技術による発火制御主要処理部の構成の他の部分を示す論理回路図である。
【図３０】ハッシュ待合せメカニズム付待合せメモリ２８４の構成を示す模式図である。
【図３１】待合せメモリの他の例２８４ａの構成を示す模式図である。
【図３２】発火制御主要処理部Ｃ素子の論理回路構成図である。
【図３３】巡回パイプラインを巡回するデータパケットの構成を示す模式図である。
【図３４】発火制御機構から出力されるデータパケットの構成を示す模式図である。
【符号の説明】
１８６、２５４  ＦＣ対応２入力命令実行パケット検出部
２５０  インタリーブフラグ／インタリーブ時ＦＣアドレス検出部
２２２  インタリーブ処理付動的発火制御機構
１００、２００、３００、４００  データ駆動型プロセッサ
１０４  プログラム記憶機構
２９４  宛先情報選択部
１０８  演算処理機構
１９０、２６２  対データ選択部
２８４、２８４ａ  待合せメモリ
２８２  待合せメモリ用アクセス調整部
１８２  定数データメモリ
３０２  定数データメモリ／インタリーブ処理付動的発火制御機構
１０６  定数データメモリ／動的発火制御機構
１８０  定数データメモリのロード・ダンプ検出部
１０２  入出力制御部
２９２  発火詳細検出部
２６０  発火制御主要処理出力データ選択部
１８８、２５６、２５８  発火制御主要処理部
２７０  発火制御主要処理部Ｃ素子
【図１】
0003689143.tif 000002
【図２】
0003689143.tif 000003
【図３】
0003689143.tif 000004
【図４】
0003689143.tif 000005
【図５】
0003689143.tif 000006
【図６】
0003689143.tif 000007
【図７】
0003689143.tif 000008
【図８】
0003689143.tif 000009
【図９】
0003689143.tif 000010
【図１０】
0003689143.tif 000011
【図１１】
0003689143.tif 000012
【図１２】
0003689143.tif 000013
【図１３】
0003689143.tif 000014
【図１４】
0003689143.tif 000015
【図１５】
0003689143.tif 000016
【図１６】
0003689143.tif 000017
【図１７】
0003689143.tif 000018
【図１８】
0003689143.tif 000019
【図１９】
0003689143.tif 000020
【図２０】
0003689143.tif 000021
【図２１】
0003689143.tif 000022
【図２２】
0003689143.tif 000023
【図２３】
0003689143.tif 000024
【図２４】
0003689143.tif 000025
【図２５】
0003689143.tif 000026
【図２６】
0003689143.tif 000027
【図２７】
0003689143.tif 000028
【図２８】
0003689143.tif 000029
【図２９】
0003689143.tif 000030
【図３０】
0003689143.tif 000031
【図３１】
0003689143.tif 000032
【図３２】
0003689143.tif 000033
【図３３】
0003689143.tif 000034
【図３４】
0003689143.tif 000035