(57)【要約】【課題】データの滞留を回避する。【解決手段】空検出／分岐部７は転送要求信号ＦＷＤを複数パケット処理部９１Ａ、…、９ｎＡに並行して出力して、複数パケット処理部９１Ａ、…、９ｎＡのいずれかからアクノリッジ信号ＡＣＫを受信すると、データ転送許可状態にあるパケット処理部が存在することを検出して、応じてこれら複数パケット処理部に対して前段のパイプライン処理単位３Ａから受理したデータパケットＰＡを並行して与える。このとき、データ転送許可状態にあるパケット処理部のみが与えられたデータパケットＰＡを受理して処理する。その処理結果データは合流部１１を介して後段のパイプライン処理単位３Ｃに出力される。それゆえにデータ転送許可状態のパケット処理部が存在しているのにデータパケットＰＡが処理待ちとなって滞留するのを回避できる。【選択図】        図１
2004157684.tif 000002
【特許請求の範囲】
【請求項１】
複数のパイプライン処理単位が直列に配置されて構成される部分を備えて、前記複数パイプライン処理単位のうち少なくともひとつのパイプライン処理単位は、
前段の前記パイプライン処理単位から出力されたデータを受理して出力する入力部と、与えられる複数のデータを受理して合流させて出力する合流部と、前記入力部と前記合流部との間に並列に接続されて、かつデータ転送許可状態において、前記入力部から与えられたデータを受理して処理し処理結果データを前記合流部に与える複数のデータ処理部とを有し、
前記入力部は、
前記複数データ処理部のうちに前記データ転送許可状態にあるデータ処理部が存在することを検出したとき、前段の前記パイプライン処理単位から受理したデータを前記複数のデータ処理部に並行して与える検出部を含む、情報処理装置。
【請求項２】
前記複数のデータ処理部それぞれには異なる優先順位が予め設定されており、
前記複数データ処理部において前記データ転送許可状態にある前記データ処理部が２つ以上存在するとき、前記２つ以上の前記データ処理部のうち前記優先順位が最も高い前記データ処理部が、前記入力部から与えられた前記データを受理できることを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記検出部は、前段の前記パイプライン処理単位からデータを受理するとき、データ転送要求を前記複数のデータ処理部に並行して出力し、応じてアクノリッジ信号を受信する要求部を含み、
前記複数のデータ処理部それぞれは、前記データ転送要求を受理できたとき、応じて前記アクノリッジ信号を前記要求部に送信する要求受理部を含み、
前記検出部は、前記要求部により前記アクノリッジ信号が受信されたときに、前記複数データ処理部のうちに前記データ転送許可状態にある前記データ処理部が存在することを検出することを特徴とする、請求項１または２に記載の情報処理装置。
【請求項４】
前記優先順位が最も高い前記データ処理部から前記アクノリッジ信号が送信されることを特徴とする、請求項３に記載の情報処理装置。
【請求項５】
前記２つ以上の前記データ処理部のうち前記優先順位が最も高い前記データ処理部を除く１つ以上の前記データ処理部の前記要求受理部は、前記データ転送要求を受理するのが不可能な要求受理不可能状態に設定されることを特徴とする、請求項３または４に記載の情報処理装置。
【請求項６】
前記複数のデータ処理部すべてが前記データ転送許可状態でないときは、前記入力部は前段の前記パイプライン処理単位に対して当該パイプライン処理単位へのデータ転送を禁止することを特徴とする、請求項１から請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
前記データ転送許可状態にある前記データ処理部の前記要求受理部が前記アクノリッジ信号を送信したことに応じて、前記優先順位が下位の前記データ処理部は前記要求受理不可能状態が解除されることを特徴とする、請求項５または６に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパイプライン処理を実行する情報処理装置に関し、特に、データの滞留を回避できる情報処理装置に関する。
【０００２】
【従来の技術】
本来的に自然な情報処理方式であると考えられるデータ駆動原理を基本原理とするデータ駆動型プロセッサは、実行可能な高位仕様記述から直接変換して得られた対象プログラムを効果的に実行するような一連のプロセッサの総称である。
【０００３】
データ駆動型プロセッサは演算処理機構と発火制御機構を有して、予め準備されたデータフロープログラムを実行する。データフロープログラムは複数の命令から構成される。命令はそれぞれの実行に必要な全ての情報が揃うと、すなわち引き数データあるいは次位に実行すべき命令を指示する宛先情報などがデータパケットの形ですべて揃うと実行可能な状態になる（この動作を発火と称する）。実行可能な状態になった命令は、実行結果を必要とする次位の命令の宛先情報および引き数データとともに、演算処理機構に送られる。ここで発火制御機構は、命令が実行可能な状態か否かを判定する処理および実行可能な状態になった命令を、引き数データと宛先情報とを対応付けて演算処理機構に送る処理を実現する。
【０００４】
演算処理機構では発火制御機構から到着した命令が実行され、実行結果は該命令に対応の宛先情報により指示される次位に実行すべき命令の引き数データとしてデータパケットの形で送出される。演算処理機構ではデータパケットの到着によって命令の実行が駆動されることから、このような計算機構はデータ駆動方式として提案されている（例えば、特許文献１参照）。
【０００５】
以下に、特許文献１に示された従来のデータ駆動型プロセッサについて説明する。まず図５（Ａ）と（Ｂ）を参照してデータ駆動原理を説明する。図５（Ａ）において命令ＩＣが割当てられたノードＮＤに左右の入力枝ＬＢおよびＲＢからデータパケットＰＡが到着すると、命令ＩＣについて発火して、図５（Ｂ）において命令ＩＣの演算結果（命令実行結果）のデータはデータパケットＰＡとして出力枝ＯＢに送出される。
【０００６】
このデータ駆動原理を実装したデータ駆動型プロセッサの主要部構成が図６に示される。データ駆動型プロセッサは基本機能部として発火制御（待合せ）機構ＦＣ（ＦＣ：Ｆｉｒｉｎｇ  Ｃｏｎｔｒｏｌ  ｕｎｉｔ）、演算処理機構ＦＰ（ＦＰ：Ｆｕｎｃｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ）、プログラム記憶機構ＰＳ（ＰＳ：Ｐｒｏｇｒａｍ  Ｓｔｏｒａｇｅ  ｕｎｉｔ）、およびデータパケットの入力ＩＮとデータパケットの出力ＯＵＴを制御するデータ入出力制御部Ｉ／Ｏ（Ｉ／Ｏ：Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  ｃｏｎｔｒｏｌｌｅｒ）を備えて、これら基本機能部が環状に接続される巡回パイプライン構造を採る。また各基本機能部の内部もパイプライン構造を有する。
【０００７】
図７には従来のデータ駆動型プロセッサ１Ｃの部分構成であって、図６に示した各基本機能部の内部構成が示される。後に詳述するように、各基本機能部は機能を実現する処理段に対応して複数の自己タイミング型データ転送処理機構（以下、パイプライン処理単位と称する）を有し、それらは縦続接続されパイプラインを構成する。図７ではデータパケットＰＡの入力ＩＮ側から出力ＯＵＴ側にパイプライン処理単位３Ａ、３Ｂおよび３Ｃからなる３段パイプラインが示される。
【０００８】
パイプライン処理単位３Ａ、３Ｂおよび３Ｃそれぞれの内部は、ハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続からなるパイプライン構成を採る。具体的には図８に示すように、ハンドシェイク型データ転送制御を司るＣ素子（自己タイミング型転送制御素子）２０１と２９０および対応するパイプラインレジスタ（データラッチ回路）２２１と２２５の組合せと、通常組合せ回路からなるデータ処理部９Ａ（ハードウェアプリミティブ）とを備える。
【０００９】
Ｃ素子２０１と２９０の転送要求信号ＦＷＤと転送要求信号ＦＷＤを受理したことを示すアクノリッジ信号ＡＣＫの通信による制御の下に、パイプラインレジスタ２２１から出力されたデータパケットＰＡは、データ処理部９Ａで処理され、パイプラインレジスタ２２５へ転送される。図８に示す構成が、ハンドシェイク型転送制御によるデータ転送およびパイプライン処理を行なうための基本構成となっている。
【００１０】
図８の構成から分かるようにデータ駆動型プロセッサの処理速度は、本質的に、図８におけるＣ素子２０１と２９０内部の回路構成およびＣ素子２０１と２９０を構成する図示されない論理ゲート回路あるいはトランジスタなどの各デバイスの信号遅延時間などの電気的特性により決まる。このため、Ｃ素子２０１と２９０内部の回路構成を決定すれば、ハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続網の各段で処理の可能な時間は決定する。
【００１１】
図９および図１０を参照してＣ素子の内部回路構成および動作を説明する。図９においてＣ素子は、図示されない前段のＣ素子から転送要求信号ＦＷＤを入力するＣＩ信号端子９１、ＣＩ信号端子９１を介して転送要求信号ＦＷＤを受理したことを示すアクノリッジ信号ＡＣＫを前段のＣ素子に出力するＲＯ信号端子９２、ＣＩ信号端子９１を介して転送要求信号ＦＷＤを受理したとき対応するパイプラインレジスタへクロックパルスを送出するＣＰ信号端子９３、前段のＣ素子から受理した転送要求信号ＦＷＤを後段に伝えるためのＣＯ信号端子９４、ＣＯ信号端子９４から出力した転送要求信号ＦＷＤが図示されない後段のＣ素子により受理されたことを示すアクノリッジ信号ＡＣＫを後段のＣ素子から受理するためのＲＩ信号端子９５、前段のＣ素子からの転送要求の受付状態を保持するフリップフロップ９６、後段への転送要求の送出状態を保持するフリップフロップ９８、およびフリップフロップ９６と９８との同期をとる論理回路９７を備える。
【００１２】
時間Ｔの経過に従うＣＩ信号端子９１、ＲＯ信号端子９２、ＣＰ信号端子９３、ＣＯ信号端子９４およびＲＩ信号端子９５についてのタイミングチャートが図１０に示される。図１０を参照すると、時間Ｔ１においてＣ素子のＣＩ信号端子９１にレベル「Ｌ」の転送要求信号ＦＷＤが入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ９６はセットされ、その出力ノード９９からレベル「Ｈ」の信号が出力される。
【００１３】
これにより、ＲＯ信号端子９２からはレベル「Ｌ」のアクノリッジ信号ＡＣＫが出力され、前段に対してさらなるデータ転送をするのを禁止する。一定時間後の時間Ｔ２において、ＣＩ信号端子９１に対して前段からレベル「Ｈ」の転送要求信号ＦＷＤが入力され、前段から当該Ｃ素子へのデータのセットが終了する。この状態であり、かつＲＩ信号端子９５に対してレベル「Ｈ」のアクノリッジ信号ＡＣＫが入力されている、すなわち後段からデータ転送を許可されている状態で、かつＣＯ信号端子９４からレベル「Ｈ」の転送要求信号ＦＷＤを出力しているならば、すなわち後段へデータ転送している途中ではない状態であるならば、ＮＡＮＤゲートの論理回路９７はアクティブとなりレベル「Ｌ」の信号を出力する。
【００１４】
その結果、フリップフロップ９６と９８は共にリセットされて、ＣＰ信号端子９３からレベル「Ｈ」のクロックパルスがパイプラインレジスタに出力されて、後段に対してＣＯ信号端子９４からレベル「Ｌ」の転送要求信号ＦＷＤを出力する、すなわち後段に対してデータ転送を要求する。後段のＣ素子では、ＣＩ信号端子９１によりこのレベル「Ｌ」の転送要求信号ＦＷＤを受理するので、前段のＣ素子（該転送要求ＦＷＤの送信元のＣ素子）に対して、更なるデータ転送を行なわないように禁止を示すレベル「Ｌ」のアクノリッジ信号ＡＣＫを送信する。前段のＣ素子ではＲＩ信号端子９５から、このレベル「Ｌ」のアクノリッジ信号ＡＣＫが入力されるのでフリップフロップ９８がセットされる。
【００１５】
その結果、ＣＰ信号端子９３からレベル「Ｌ」の信号が対応のパイプラインレジスタに対して出力され、またＣＯ信号端子９４から後段に対してレベル「Ｈ」の転送要求信号ＦＷＤが出力され、データ転送は終了する。
【００１６】
図１０を参照して示した動作は、図８においては次のようになる。つまり、Ｃ素子２０１のＣＰ信号端子９３から出力されるレベル「Ｈ」のパルス信号によりパイプラインレジスタ２２１がデータパケットＰＡをラッチし、ラッチしたデータパケットＰＡはデータ処理部９Ａで処理される。その処理結果を格納したデータパケットＰＡは上述したＣ素子２０１と２９０間のアクノリッジ信号ＡＣＫと転送要求信号ＦＷＤによるハンドシェイク制御に従ってパイプラインレジスタ２２１から出力される。出力されたデータパケットＰＡは、Ｃ素子２９０のＣＰ信号端子９３から出力されるレベル「Ｈ」のパルス信号により、パイプラインレジスタ２２５によりラッチされて、さらに後段へ転送される。
【００１７】
このようにデータ駆動型プロセッサはＣ素子によるハンドシェイク制御を基本とした階層的なパイプライン構造を有する。
【００１８】
データパケットＰＡの流れに着目してデータ駆動型プロセッサの動作を説明する。外部からデータ駆動型プロセッサに入力されたデータパケットＰＡは、自身が持つ宛先情報に基づく自己経路選択機能により適切な基本機能部への経路を自律的に選択する。それによりデータパケットＰＡは図８に示した自己タイミング型データ転送処理機構（パイプライン処理単位）からなる各基本機能部でＣ素子のハンドシェイク制御に従って順次処理を受けつつ、それを通過することにより、情報処理の実行も自律的に進行する。自己タイミング型データ転送処理機構の導入により、データ駆動型プロセッサではシステムバス、システムクロック、集中制御機構などがすべて排除され制御が完全に分散化されている。
【００１９】
次に、データパケットＰＡが各パイプライン処理単位を通過する動作を述べる。通常の演算処理においては、演算を、それを構成する複数の演算要素に分割し、そして複数の演算要素を何段かに分けて各演算要素を順次処理するようにパイプラインが構成される。このような処理をここではパイプライン分割処理という。
【００２０】
データ駆動型プロセッサに入力されたデータパケットＰＡは、直列に接続されたパイプライン処理単位３Ａ、３Ｂおよび３Ｃを含む各基本機能部にて処理される。データパケットＰＡは各基本機能部においてはパイプライン処理単位３Ａにて処理されて、パイプライン処理単位３Ｂに出力される。パイプライン処理単位３Ｂはパイプライン処理単位３Ａより出力されたデータパケットＰＡを受理して、受理したデータパケットＰＡを処理して処理結果を格納したデータパケットＰＡをパイプライン処理単位３Ｃへ出力する。パイプライン処理単位３Ｃはパイプライン処理単位３Ｂより出力されたデータパケットＰＡを受理して、受理したデータパケットＰＡを処理して処理結果を格納したデータパケットＰＡを出力する。
【００２１】
データ駆動型プロセッサ内部の基本機能部においては、他のパイプライン処理単位と比して相対的に長い処理時間を必要とするパイプライン処理単位であって、かつパイプライン分割処理が困難な場合、または本質的にパイプライン分割処理が困難な場合がある。
【００２２】
パイプライン分割処理が困難な場合としては、たとえば、演算処理機構ＦＰ内におけるパイプライン処理単位において、外部仕様が分かっているが、その外部仕様を具現化した具体的回路構成が不明である様な回路を使用する場合が挙げられる。この典型例としては次の場合がある。つまり他の設計者から受け入れたＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）コア（再利用可能な機能回路ブロック）をパイプライン処理単位に適用する場合において、より細分化された処理単位に分割が困難な場合または内部の具体的回路構成が開示されない場合である。
【００２３】
図１１には、より細分化された処理単位に分割が困難でかつ他のパイプライン処理単位と比べて相対的に長い処理時間を必要とする処理を行なうパイプライン処理単位の論理回路例が示される。図１１の論理回路は例えば図７のパイプライン処理単位３Ｂの内部構成に相当する。図１１の論理回路はＣ素子９０１、９１１、９０２および９０３、これらＣ素子のそれぞれに対応したパイプラインレジスタ９２１、９２２、９２３および９２４、ならびにデータパケットＰＡを処理するデータ処理部９３１を備える。図１１にはこれらの論理回路に関連してＣＩ信号端子９７１、ＲＯ信号端子９７３、ＣＯ信号端子９７９、ＲＩ信号端子９８１、ならびにデータ端子群９７７と９８３が示される。Ｃ素子９０１、９１１、９０２および９０３はマスタリセット信号ＭＲＳが与えられる。マスターリセット信号ＭＲＳは、パイプライン処理単位３Ｂを含むデータ駆動型プロセッサが起動される時にプロセッサを初期化するために用いられる。
【００２４】
Ｃ素子と対応のパイプラインレジスタの組それぞれは、すなわちＣ素子９０１とパイプラインレジスタ９２１の組、Ｃ素子９１１とパイプラインレジスタ９２２の組、Ｃ素子９０２とパイプラインレジスタ９２３の組、およびＣ素子９０３とパイプラインレジスタ９２４の組のそれぞれはハンドシェイク型データ転送制御方式による一時記憶機構を構成し、データ処理部９３１は図８に示したデータ処理部９Ａに相当する。
【００２５】
図１１の各Ｃ素子はアクノリッジ信号ＡＣＫを入力および出力する端子ＲＩおよびＲＯ、転送要求信号ＦＷＤを入力および出力する端子ＣＩおよびＣＯ、マスタリセット信号ＭＲＳを入力する端子ＭＲおよび対応のパイプラインレジスタにパルスを出力する端子ＣＰを有する。パイプラインレジスタ９２１、９２２および９２４のそれぞれは対応のＣ素子からパルスを入力する端子ＣＫ、データパケットＰＡの情報を入力および出力する端子群ＤおよびＱを有する。パイプラインレジスタ９２３は端子ＣＫおよび端子群Ｑと、データパケットＰＡの情報を入力する端子群ＤＩとＤＯを有する。
【００２６】
データ端子群９７７、９８３、Ｄ、Ｑ、ＤＩおよびＤＣそれぞれは複数の端子を有して、複数端子のそれぞれには、データパケットＰＡの情報として必要なレベル「Ｌ」あるいはレベル「Ｈ」の信号が与えられる。
【００２７】
データ処理部９３１は一般的なデータ処理部よりも長いデータ処理時間を要する例えば乗除算演算器のような回路を有する。データ処理部９３１によるデータ処理時間経過後、データ処理が完了する時点で処理結果データが後段のパイプラインレジスタ９２３にラッチされるようにＣ素子９１１には遅延機能が設けられている。
【００２８】
図１１のパイプライン処理単位３Ｂでは処理は次のように行なわれる。パイプライン処理単位３Ｂがデータ端子群９７７を介してデータパケットＰＡを受理する。すなわち、Ｃ素子９０１のＲＯ信号端子９７３を介してアクノリッジ信号ＡＣＫがレベル「Ｈ」で出力されている状態で、ＣＩ信号端子９７１を介してレベル「Ｌ」の転送要求信号ＦＷＤが与えられているとともに、データ端子群９７７にデータパケットＰＡの情報が与えられる。そしてＣ素子９０１の内部回路構成により定まるある時間を経過した後、Ｃ素子９０１の端子ＣＰよりパイプラインレジスタ９２１の端子ＣＫにレベル「Ｈ」のパルスが出力されるので、パイプラインレジスタ９２１はデータ端子群９７７を介して入力したデータパケットＰＡの情報を一時保持（ラッチ）する。
【００２９】
さらに後段のＣ素子９１１の端子ＲＯからアクノリッジ信号ＡＣＫがレベル「Ｈ」（本段（Ｃ素子９１１の段）にデータパケットＰＡが存在しない）であれば、すなわち、Ｃ素子９０１の端子ＲＩにアクノリッジ信号ＡＣＫがレベル「Ｈ」で与えられていれば、Ｃ素子９０１の端子ＣＯからＣ素子９１１の端子ＣＩに対してレベル「Ｌ」の転送要求信号ＦＷＤが出力される。転送要求信号ＦＷＤがレベル「Ｌ」であるとき、データの転送が要求されている状態を示す。
【００３０】
Ｃ素子９１１は該転送要求信号ＦＷＤを入力すると、Ｃ素子９０１と同様のある時間経過の後、端子ＣＰからパイプラインレジスタ９２２の端子ＣＫに対してレベル「Ｈ」のパルスを出力するので、パイプラインレジスタ９２１に保持されていたデータパケットＰＡの情報は出力されてパイプラインレジスタ９２２に入力されて一時保持される。これによりデータパケットＰＡは転送される。
【００３１】
データ処理部９３１はパイプラインレジスタ９２２に保持されたデータパケットＰＡの情報のうち必要な情報を、端子群Ｄを介して入力して、入力した内容について処理を実行し、実行結果を端子群Ｑを介してパイプラインレジスタ９２３へ出力する。Ｃ素子９１１についてはデータ処理部９３１の処理時間に応じた遅延時間が予め設定されている。したがって、データ処理部９３１がパイプラインレジスタ９２３へ実行結果の送出を完了したとき、Ｃ素子９１１は端子ＣＯからＣ素子９０２に対してレベル「Ｌ」の転送要求信号ＦＷＤを出力して端子ＲＯからレベル「Ｈ」のアクノリッジ信号ＡＣＫを出力する。これによりＣ素子９１１はＣ素子９０２に対してはデータの転送を要求して、Ｃ素子９０１に対しては次のデータパケットＰＡの転送が可能であることを知らせる。
【００３２】
Ｃ素子９０３以降の回路（図１１のＣ素子９０３の右側の回路（図示せず））では、Ｃ素子９０１の段からＣ素子９１１の段へのデータパケットＰＡ転送のための信号通信手順と同様の手順に従いデータパケットＰＡが転送される。
【００３３】
なお、図１１においてデータパケットＰＡの入力部となるＣ素子９０１とパイプラインレジスタ９２１及び出力部となるＣ素子９０３とパイプラインレジスタ９２４からなるハンドシェイク型データ転送制御方式による一時記憶機構は、図１１に示すパイプライン処理単位３Ｂの周辺回路とタイミングを調整するために有用であるが、ここでは特段設けなくても良い。
【００３４】
また、図１１においてはパイプライン処理単位３Ｂの後段（パイプライン処理単位３Ｃ）においてデータ処理部９３１による処理前と処理後のデータ両方を必要とする場合を想定して、パイプラインレジスタ９２３はパイプラインレジスタ９２２から出力されるデータパケットＰＡの全体の情報、例えば５４ビット長のデータとデータ処理部９３１から出力された演算結果、例えば５４ビット長のデータとの両方を端子群ＤＩとＤＣから入力し、１０８ビット長のデータとして端子群Ｑを介して出力する機能を有する。
【００３５】
上述のように図１１では、データ処理部９３１の処理に長時間を要すると、本段（パイプライン処理単位３Ｂ）は前段（パイプライン処理単位３Ａ）からデータパケットＰＡを受付けることのできない時間が他の段に比して長くなる。受付けることのできない時間の長さは処理時間の長さに応じて決まる。
【００３６】
このような課題を解決するために、特許文献１の方法が提案されている。この提案方法を図１２に基づいて説明する。
【００３７】
図１２のデータ駆動型プロセッサ１Ａはパイプライン処理単位３Ａ、パイプライン処理単位であるインタリーブ処理部５Ａおよびパイプライン処理単位３Ｃを備える。パイプライン処理単位３Ａと３ＣはデータパケットＰＡを入力して、入力したデータパケットＰＡについて処理して、処理結果を示すデータパケットＰＡを出力する。
【００３８】
インタリーブ処理部５Ａは図示されない複数個の出力ポートを有する入力制御処理部７Ａ、図示されない複数の入力ポートを有する出力制御処理部１１Ａ、カウンタ１３および入力制御処理部７Ａの複数個の出力ポートに並列に接続されたパケット処理部９１Ａ、９２Ａ、９３Ａ、…、９ｎＡを有する。
【００３９】
入力制御処理部７Ａは、パイプライン処理単位３Ａから入力したデータパケットＰＡを受理すると、受理したデータパケットＰＡを、複数出力ポートのうちから所定の振分け方式に従って選択されたひとつの出力ポートを介して出力する。カウンタ１３は入力制御処理部７ＡにデータパケットＰＡが入力するごとにカウントアップして、カウント値は入力制御処理部７Ａにより参照される。
【００４０】
出力制御処理部１１Ａはパケット処理部９１Ａ、９２Ａ、９３Ａ、…、９ｎＡが出力するデータパケットＰＡを複数の入力ポートを介して入力して、パイプライン処理単位３Ｃへ出力する。
【００４１】
入力制御処理部７Ａによる所定の振分け方式とは、カウンタ１３のカウント値に基づいて、パケット処理部９１Ａ、９２Ａ、９３Ａ、…、９ｎＡのうちからひとつのパケット処理部を順番に選択する方式を指す。すなわち、データパケットＰＡの処理要求（転送要求）が入力される毎に処理対象のデータパケットＰＡを、カウンタ１３のカウント値に対応するパケット処理部９１Ａ、９２Ａ、…、９ｎＡへ順次与えることにより、連続して入力されるデータパケットＰＡを各パケット処理部で並列に処理する。
【００４２】
このように図１２の構成では、処理対象のデータパケットＰＡの転送先となるパケット処理部をカウンタ１３で順番に切り替えて選択するという簡便な制御手順で処理性能を向上できる。
【００４３】
【特許文献１】
特開平９−２６９４９号公報の明細書と図面
【００４４】
【発明が解決しようとする課題】
しかしながら、図１２のデータ駆動型プロセッサ１Ａにおいて選択されたパケット処理部が長時間を要する処理を行なっていた場合、他のパケット処理部は転送可能状態であったとしても、選択されたパケット処理部が現在の処理を完了するまでは、次のデータパケットＰＡについての処理は待たされることとなり、パケット処理部９１Ａ〜９ｎＡによる処理の並列性を維持できなくなる。その結果、データ駆動型プロセッサ１Ａにおいては局所的にデータパケットＰＡが滞留し、処理時間が増大し、スループットも低下することとなった。
【００４５】
このような課題を解消するには、データ駆動型プロセッサの複数のパイプライン処理単位において、より細分化された処理単位に分割が困難かつ他のパイプライン処理単位と比較して、相対的に長い処理時間を必要とするパイプライン処理単位が存在する場合であっても、データパケットＰＡを滞留させずに、処理の並列性を有効活用することが望まれる。
【００４６】
それゆえに、この発明の目的は、局所的なデータの滞留を回避する情報処理装置を提供することである。
【００４７】
この発明の他の目的は処理の並列性を維持できる情報処理装置を提供することである。
【００４８】
【課題を解決するための手段】
この発明のある局面に従う情報処理装置は、複数のパイプライン処理単位が直列に配置されて構成される部分を備える。複数パイプライン処理単位のうち少なくともひとつのパイプライン処理単位は、前段のパイプライン処理単位から出力されたデータを受理して出力する入力部と、与えられる複数のデータを受理して合流させて出力する合流部と、入力部と合流部との間に並列に接続されて、かつデータ転送許可状態において、入力部から与えられたデータを受理して処理し処理結果データを合流部に与える複数のデータ処理部とを有する。
【００４９】
入力部は、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出したとき、前段のパイプライン処理単位から受理したデータを複数のデータ処理部に並行して与える検出部を含む。
【００５０】
したがって、入力部の検出部は、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出したとき、前段のパイプライン処理単位から受理したデータを複数のデータ処理部に並行して与えると、データ転送許可状態にあるデータ処理部は与えられたデータを受理して処理する。その処理結果データは合流部を介して後段のパイプライン処理単位に出力される。
【００５１】
それゆえに、前段のパイプライン処理単位から順次入力されるデータは、データ転送許可状態にあるデータ処理部が検出される限りは、該データ処理部において処理される。言換えると、データ転送許可状態にあるそれぞれのデータ処理部で並行してデータを処理できる。その結果、データが処理待ちとなって滞留するのを回避できる。
【００５２】
上述の情報処理装置では好ましくは、複数のデータ処理部それぞれには異なる優先順位が予め設定されており、複数データ処理部においてデータ転送許可状態にあるデータ処理部が２つ以上存在するとき、２つ以上のデータ処理部のうち優先順位が最も高いデータ処理部が、入力部から与えられたデータを受理できる。
【００５３】
したがって、データ転送許可状態にあるデータ処理部が２つ以上存在したとしても、そのうちの最高優先順位のデータ処理部のみがデータを受理して処理できる。
【００５４】
上述の検出部は好ましくは、前段のパイプライン処理単位からデータを受理するとき、データ転送要求を複数のデータ処理部に並行して出力し、応じてアクノリッジ信号を受信する要求部を含む。そして複数のデータ処理部それぞれは、データ転送要求を受理できたとき、応じてアクノリッジ信号を要求部に送信する要求受理部を含む。そして、検出部は、要求部によりアクノリッジ信号が受信されたときに、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出する。
【００５５】
したがって、検出部は、要求部によりデータ転送要求を出力したことに応じてアクノリッジ信号を受信すれば、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを検出できる。それゆえに、複数データ処理部のうちにデータ転送許可状態にあるデータ処理部が存在することを簡単に検出できる。
【００５６】
上述の情報処理装置では好ましくは、優先順位が最も高いデータ処理部からアクノリッジ信号が送信される。
【００５７】
したがって、データ転送許可状態にあるデータ処理部が２つ存在した場合には、最高優先順位のデータ処理部のみがデータを受理して処理できる。
【００５８】
上述の情報処理装置では好ましくは、２つ以上のデータ処理部のうち優先順位が最も高いデータ処理部を除く１つ以上のデータ処理部の要求受理部は、データ転送要求を受理するのが不可能な要求受理不可能状態に設定される。
【００５９】
したがって、複数のデータ処理部に対して並行にデータが与えられたとしても、データ転送許可状態にあり、かつ最高優先順位のデータ処理部のみが与えられるデータを受理して処理する。
【００６０】
上述の情報処理装置は好ましくは、複数のデータ処理部すべてがデータ転送許可状態でないときは、入力部は前段のパイプライン処理単位に対して当該パイプライン処理単位へのデータ転送を禁止する。
【００６１】
したがって、パイプライン処理単位においてデータが処理待ちのために滞留するのを回避できる。
【００６２】
上述の情報処理装置においてデータ転送許可状態にあるデータ処理部の要求受理部がアクノリッジ信号を送信したことに応じて、優先順位が下位のデータ処理部は要求受理不可能状態が解除される。
【００６３】
したがって、データ転送許可状態であり、かつ最高優先順位のデータ処理部が与えられるデータについてのデータ転送要求を受理したことに応じて、優先順位が下位のデータ処理部はデータ転送許可状態に速やかに復帰する。それゆえに、データ転送許可状態に復帰したデータ処理部において次のデータを受理して処理できる。その結果、複数のデータについての並列処理できる。
【００６４】
上述の情報処理装置は好ましくは、データ駆動型情報処理装置であってよい。
【００６５】
【発明の実施の形態】
本発明の実施の形態を図面を参照しながら説明する。なお、本実施の形態ではデータ駆動型プロセッサを例にして説明しているが、これに限定されず直列に接続された複数のパイプライン処理単位を有するプロセッサであればよい。また処理対象のデータはパケット形式のデータパケットＰＡとしているが、処理対象データはパケット形式を有するものに限定されず、任意形式のデータであってよい。図１には本実施の形態に係るデータ駆動型プロセッサの構成が示される。
【００６６】
図１を参照してデータ駆動型プロセッサ１は、パイプライン接続された複数のパイプライン処理単位、すなわち図８の構成を有するパイプライン処理単位３Ａおよび３Ｃ、ならびにパイプライン処理単位５を備える。図１には図６に示したプログラム記憶機構ＰＳ、発火制御機構ＦＣおよび演算処理機構ＦＰの基本機能部を構成する一部が示される。本発明の主要部は、パイプライン処理単位５である。図１において図１２に示されるものと同一の要素には同一の参照番号を付しており、ここではそれらについての詳しい説明は繰返さない。
【００６７】
図２には図１のパイプライン処理単位５の論理回路の図面の構成が示されて、パイプライン処理単位５の論理回路の左半分が図３に、右半分が図４にそれぞれ示される。図２、図３および図４により示される回路はデータ駆動型プロセッサ１におけるＩＰコアに対応するデータ処理部を含む論理回路に相当する。なお、図３の論理回路と図４の論理回路とは便宜上別個に示しているにすぎず、本来は、両者は接続されて一体的に動作するものである。図３及び図４の要素のうち図１の要素と同一部分には同一の符号を付している。
【００６８】
パイプライン処理単位５は、前段のパイプライン処理単位３ＡからのデータパケットＰＡの入力部として機能する空検出／分岐部７とデータ処理部として機能するパケット処理部９１Ａ、９２Ａ、…、９ｎＡと、データパケットＰＡの出力部として機能する合流部１１とを含む。パケット処理部９１Ａ、９２Ａ、…、９ｎＡは空検出／分岐部７と合流部１１間において並列に接続される。具体的にはパケット処理部９１Ａ、９２Ａ、…、９ｎＡそれぞれの入力は空検出／分岐部７の出力に並列に接続されて、それぞれの出力は合流部１１の入力に並列に接続される。空検出／分岐部７の入力はパイプライン処理単位３Ａの出力と接続されている。合流部１１の出力はパイプライン処理単位３Ｃの入力と接続されている。
【００６９】
図３と図４とを参照して、パイプライン処理単位５は、Ｃ素子２００と、Ｃ素子１０１０、１０２０、１０３０、…、１０ｎ０と、Ｃ素子１０１１、１０２１、１０３１、…、１０ｎ１と、Ｃ素子１０１２、１０２２、１０３２、…、１０ｎ２と、Ｃ素子１０１ｎ、１０２ｎ、１０３ｎ、…、１０ｎｎと、Ｃ素子１０（ｎ＋１）０とを含む。またパイプライン処理単位５は、パイプラインレジスタ２１０および２３０と、パイプラインレジスタ１００１、１００２、１００３、…、１００ｎと、パイプラインレジスタ１１１１、１１１２、…、１１１ｎとを含む。さらにパイプライン処理単位５は、ＩＰコアに対応するデータ処理部１１３１、１１３２、…、１１３ｎと、演算結果合流部２８０と、論理ゲート回路２５０と、論理ゲート回路１２４１、１２４２、…、１２４ｎと、論理ゲート回路１２５２および１２５１とを含む。
【００７０】
パイプライン処理単位５にはパイプライン処理単位３Ａから転送要求信号ＦＷＤを入力するためのＣＩ信号端子２０１、データパケットＰＡを入力するためのデータ端子群２０４、パイプライン処理単位３Ａに対してアクノリッジ信号ＡＣＫを出力するためのＲＯ信号端子２０２、マスタリセット信号ＭＲＳを入力するための端子２０３、パイプライン処理単位３Ｃに転送要求信号ＦＷＤを出力するＣＯ端子２０５、パイプライン処理単位３Ｃからアクノリッジ信号ＡＣＫを入力するためのＲＩ端子２０６、およびデータパケットＰＡを出力するデータ端子群２０７が接続される。
【００７１】
図３と図４のＣ素子のそれぞれは図９に示す構成を有して、転送要求信号ＦＷＤの入力および出力の端子ＣＩおよびＣＯ（図９の端子９１と９４に対応）、アクノリッジ信号ＡＣＫの入力および出力の端子ＲＩおよびＲＯ（図９の端子９５と９２に対応）、マスタリセット信号ＭＲＳを入力するための端子ＭＲ、およびパルス出力の端子ＣＰ（図９の端子９３に対応）を有する。パイプラインレジスタ２３０を除くパイプラインレジスタのそれぞれは、パルス入力の端子ＣＫ、データ入力および出力の端子群ＤおよびＱを含む。パイプラインレジスタ２３０は端子ＣＫ、ならびに端子群ＤＴ、ＤＣおよびＱを含む。
【００７２】
データ処理部のそれぞれは、データ入力および出力の端子群ＤおよびＱを含む。演算結果処理部２８０は端子ＣＯ、ＲＩおよびＭＲ、端子群Ｑ、Ｃ素子１０ｎ１、１０ｎ２、…、１０ｎｎのそれぞれの端子ＣＯから転送要求信号ＦＷＤを入力する端子ＣＩ１、ＣＩ２、…、ＣＩｎおよびＣ素子１０ｎ１、１０ｎ２、…、１０ｎｎのそれぞれの端子ＲＩにアクノリッジ信号ＡＣＫを出力するための端子ＲＯ１、ＲＯ２、…、ＲＯｎ、データ処理部１１３１、１１３２、…、１１３ｎのそれぞれの端子群Ｑからデータを入力する端子群Ｄ１、Ｄ２、…、Ｄｎ、ならびにパイプラインレジスタ２３０の端子群ＤＣに接続されてパイプラインレジスタ２３０にデータを出力する端子群Ｑを含む。
【００７３】
端子群２０４、２０７、Ｄ、Ｑ、ＤＴおよびＤＣならびに端子群Ｄ１、Ｄ２、…Ｄｎそれぞれは複数の端子を有して、複数端子のそれぞれには、データパケットＰＡの情報として必要なレベル「Ｌ」あるいはレベル「Ｈ」の信号が与えられる。
【００７４】
Ｃ素子２００の端子ＣＩとＲＯにはＣＩ信号端子２０１とＲＯ信号端子２０２が接続されて、パイプラインレジスタ２１０の端子群Ｄにはデータ端子群２０４が接続されて、パイプラインレジスタ２３０の端子群Ｑにはデータ端子群２０７が接続されて、Ｃ素子１０（ｎ＋１）０の端子ＣＯと端子ＲＩにはＣＯ信号端子２０５とＲＩ信号端子２０６がそれぞれ接続される。Ｃ素子それぞれの端子ＭＲには端子２０３が接続される。Ｃ素子２００の端子ＣＰはパイプラインレジスタ２１０の端子ＣＫに接続されて、Ｃ素子１０１０、１０２０、１０３０、…、１０ｎ０のそれぞれの端子ＣＰはパイプラインレジスタ１００１、１００２、１００３、…、１００ｎそれぞれの端子ＣＫが接続されて、Ｃ素子１０１１、１０１２、…、１０１ｎそれぞれの端子ＣＰはパイプラインレジスタ１１１１、１１１２、…、１１１ｎそれぞれの端子ＣＫが接続される。なお、各Ｃ素子は図９と図１０で示したように動作する。
【００７５】
空検出／分岐部７はＣ素子２００、パイプラインレジスタ２１０、論理ゲート回路１２４１、１２４２、…、１２４ｎ、ならびに論理ゲート回路１２５１および１２５２を有する。パケット処理部９１Ａ、９２Ａ、…、９ｎＡのそれぞれは、Ｃ素子１０１１、１０１２、…、１０１ｎのそれぞれ、Ｃ素子１０２１、１０２２、…、１０２ｎのそれぞれ、Ｃ素子１０３１、１０３２、…、１０３ｎのそれぞれ、およびＣ素子１０ｎ１、１０ｎ２、…、１０ｎｎのそれぞれ、パイプラインレジスタ１１１１、１１１２、…、１１１ｎのそれぞれ、およびデータ処理部１１３１、１１３２、…、１１３ｎのそれぞれを有する。
【００７６】
合流部１１はパイプラインレジスタ２３０、論理ゲート回路２５０および演算結果合流部２８０を有して、パイプラインレジスタ２３０から出力されたデータは後段（直後）のパイプライン処理単位３Ｃに与えられる。
【００７７】
Ｃ素子とパイプラインレジスタからなる組の縦続接続部は、すなわちＣ素子１０１０とパイプラインレジスタ１００１、Ｃ素子１０２０とパイプラインレジスタ１００２、Ｃ素子１０３０とパイプラインレジスタ１００３、およびＣ素子１０ｎ０とパイプラインレジスタ１００ｎからなるハンドシェイク型データ転送制御方式による一時記憶機構の縦続接続部は、データ処理部は有さずに、パイプラインレジスタ２１０の端子群Ｄから出力されたデータパケットＰＡを入力して、パイプラインレジスタ２３０の端子群ＤＴへそのまま転送する（スルーパスする）。この構成は図１１で説明したパイプラインレジスタ９２２、データ処理部９３１、およびパイプラインレジスタ９２３の構成に相当する。パイプラインレジスタ２３０の端子群Ｑからは、演算が施されていないデータ（端子群ＤＴに入力したデータパケットＰＡ）とデータ処理部９１Ａ、９２Ａ、…、９ｎＡのいずれかによる演算結果のデータ（端子群ＤＣに入力したデータパケットＰＡ）とがパラレルに出力される。なお、このようなデータパケットＰＡのスルーパスを有するパイプライン処理単位では演算を施す前後のデータが同時に得られるため、例えば（ｙ（ｘ＋Δｘ）−ｙ（ｘ））／Δｘ）形式の微分演算などを処理するのに適している。
【００７８】
パイプラインレジスタ２１０とパイプラインレジスタ１０１１、１０１２、…、１０１ｎの接続態様は、空検出／分岐部７が前段のパイプライン処理単位３Ａから入力したデータパケットはパケット処理部９１Ａ、９２Ａ、…、９ｎＡに並行して与えるための簡単な接続態様である。これは後述のように、データ転送許可状態にあり、かつ最高優先順位のパケット処理部のみが与えられるデータを受理して処理するように構成されているからである。
【００７９】
次に図１〜図４を参照しながらデータ駆動型プロセッサ１の動作を説明する。パイプライン処理単位５の空検出／分岐処理部７は、データ駆動型プロセッサ１へ入力されてパイプライン処理単位３Ａにより処理されたデータパケットＰＡを、データ端子群２０４を介して受理する。
【００８０】
パイプライン処理単位５にデータパケットＰＡが入力された場合の動作を説明する。すなわち、ＲＯ信号端子２０２からアクノリッジ信号ＡＣＫがレベル「Ｈ」で出力されて、ＣＩ信号端子２０１にレベル「Ｌ」の転送要求信号ＦＷＤが与えられるとともに、データ端子群２０４にデータパケットＰＡが与えられた場合の動作を説明する。ここでは、説明の便宜上、パケット処理部９１Ａ、９２Ａ、…、９ｎＡの全てが空き状態、即ち、Ｃ素子１０１１、１０１２、…、１０１ｎそれぞれの端子ＲＯがレベル「Ｈ」（パケット処理部９１Ａ、９２Ａ、…、９ｎＡがすべて転送許可状態）であるとする。
【００８１】
Ｃ素子２００の端子ＣＯからＣ素子１０１０の端子ＣＩに対してレベル「Ｌ」の転送要求信号ＦＷＤが出力されると、Ｃ素子１０１１の端子ＣＩに対して論理ゲート回路１２４１を介してレベル「Ｌ」の信号が与えられる。Ｃ素子１０１０、１０２０、…、１０ｎ０で制御される経路はパイプラインレジスタ２１０から出力されたデータパケットＰＡを、そのまま（演算を施さず）にパイプラインレジスタ１００ｎへ転送のみするように作用する。以下に、パケット処理部９１Ａ、９２Ａ、…、９ｎＡの動作について説明する。
【００８２】
論理ゲート回路１２４１から出力されたレベル「Ｌ」の信号は論理ゲート回路１２４２、…、１２４ｎそれぞれの入力端子に与えられるので、論理ゲート回路１２４２、…、１２４ｎそれぞれの出力信号はレベル「Ｈ」に固定される。したがって、Ｃ素子１０１２、…、１０１ｎそれぞれの端子ＣＩはレベル「Ｈ」の信号を入力するのでＣ素子２００の端子ＣＯから出力されるレベル「Ｌ」の転送要求信号ＦＷＤは、これらＣ素子には伝達されずに、Ｃ素子１０１１にのみ伝達される。したがって、Ｃ素子１０１２、…、１０１ｎを有するパケット処理部９２Ａ、…、９ｎＡはデータ転送要求受理不可能状態に設定されて、Ｃ素子１０１１を有するパケット処理部９１Ａのみがデータ転送要求受付状態となる。
【００８３】
パケット処理部９１Ａが転送要求受付状態になると、Ｃ素子１０１１の端子ＲＯを介してレベル「Ｌ」のアクノリッジ信号ＡＣＫが出力される。該アクノリッジ信号ＡＣＫは、パイプライン処理単位３Ａからパケット処理部９１Ａに対して更なるデータパケットＰＡが転送されるのを禁止するために、空検出／分岐部７に与えられる。すなわち、該アクノリッジ信号ＡＣＫは論理ゲート回路１２５２と１２５１を経由してＣ素子２００の端子ＲＩに与えられる。該アクノリッジ信号ＡＣＫの入力により、空検出／分岐部７はパケット処理部９１Ａ、９２Ａ、…、９ｎＡにおいてデータ転送許可状態にあるパケット処理部が存在するのを検出できる。
【００８４】
このときパイプラインレジスタ２１０の端子群Ｑから出力されたデータパケットＰＡはパケット処理部９１Ａ、９２Ａ、…、９ｎＡに並行して与えられるけれども、データ転送許可状態であるパケット処理部９１Ａ（パイプラインレジスタ１１１１）のみが与えられたデータパケットＰＡを入力できる。入力したデータパケットＰＡはデータ処理部１１３１で処理されて、その後、演算結果合流部２８０を介してパイプラインレジスタ２３０に与えられる。パイプラインレジスタ２３０はパイプラインレジスタ１００ｎから出力された演算が施されていないデータパケットＰＡと演算結果合流部２８０から出力のデータパケットＰＡとを端子群ＤＴとＤＣとを介してそれぞれ入力し、これら入力データパケットＰＡを１つのデータパケットＰＡにして端子群Ｑを介して出力する。
【００８５】
上述のように、Ｃ素子１０１１はＣ素子２００の端子ＣＯから転送要求信号ＦＷＤを受入れると端子ＲＯからレベル「Ｌ」のアクノリッジ信号ＡＣＫを出力してデータ転送許可状態が解除される。出力されたアクノリッジ信号は論理ゲート回路１２４１の入力端子へ与えられて、論理ゲート回路１２４１の出力信号はレベル「Ｈ」となり論理ゲート回路１２４２、…、１２４ｎそれぞれの入力端に与えられるので、Ｃ素子１０１２、…、１０１ｎそれぞれは端子ＣＩがレベル「Ｌ」となり応じてＣ素子１０１２、…、１０１ｎを有するパケット処理部９２Ａ、…、９ｎＡは、前述の要求受理不可能状態から解放される。つまり、Ｃ素子２００からデータパケットＰＡの転送要求を受入可能な（データ転送許可）状態に復帰する。このとき、Ｃ素子１０１２、…、１０１ｎそれぞれは端子ＲＯからレベル「Ｌ」のアクノリッジ信号ＡＣＫを出力する。該アクノリッジ信号ＡＣＫは論理ゲート回路１２５２と１２５１を介してＣ素子２００の端子ＲＩに入力する。この結果、空検出／分岐部７はパケット処理部９１Ａ、９２Ａ、…、９ｎＡのうちにデータ転送許可状態にあるパケット処理部（この場合には、パケット処理部９２Ａ、…、９ｎＡ）が存在するのを検出できる。
【００８６】
このとき、転送要求を受入可能な状態になったことに応じてパケット処理部９２ＡのＣ素子１０１２の端子ＲＯから出力されたレベル「Ｌ」のアクノリッジ信号ＡＣＫは、論理ゲート回路１２４２の入力端に入力するので論理ゲート回路１２４２からレベル「Ｌ」の信号が出力される。この出力信号はパケット処理部９３Ａ（図示せず）…、パケット処理部９ｎＡに対応の論理ゲート回路１２４３（図示せず）、…、論理ゲート回路１２４ｎの入力端に与えられるので、論理ゲート回路１２４３（図示せず）、…、論理ゲート回路１２４ｎからはレベル「Ｈ」の信号が出力される。論理ゲート回路１２４３（図示せず）、…、論理ゲート回路１２４ｎそれぞれの出力信号はパケット処理部９３Ａ（図示せず）…、パケット処理部９ｎＡのＣ素子１０１３（図示せず）、…、Ｃ素子１０１ｎそれぞれの端子ＣＩに与えられる。その結果、Ｃ素子１０１３（図示せず）、…、Ｃ素子１０１ｎそれぞれにはＣ素子２００の端子ＣＯから出力された転送要求信号ＦＷＤのレベル「Ｌ」を与えることができない状態になる。言換えると、パケット処理部９３Ａ（図示せず）…、パケット処理部９ｎＡは転送要求信号ＦＷＤを受理できない状態に設定されて、データパケットＰＡが与えられても、これを受理できない状態に設定される。
【００８７】
したがって、パイプラインレジスタ２１０の端子群Ｑから出力された次のデータパケットＰＡはパケット処理部９１Ａ、９２Ａ、…、９ｎＡに並行して与えられるけれども、データ転送許可状態であるパケット処理部９２Ａ（パイプラインレジスタ１１１２）のみが与えられたデータパケットＰＡを入力（ラッチ）できる。入力したデータパケットＰＡはデータ処理部１１３２で処理されて、その後、演算結果合流部２８０を介してパイプラインレジスタ２３０に与えられる。パイプラインレジスタ２３０はパイプラインレジスタ１００ｎから出力された演算が施されていないデータパケットＰＡと演算結果合流部２８０から出力のデータパケットＰＡとを端子群ＤＴとＤＣを介して入力し、１つのデータパケットＰＡにして端子群Ｑを介して出力する。
【００８８】
図３と図４に示すように、Ｃ素子２００から出力されるデータパケットＰＡの転送要求信号ＦＷＤは、パケット処理部９１Ａ、９２Ａ、…、９ｎＡの順で示される優先順位に従い受け入れられるように予め回路構成されている。パケット処理部９１Ａ、９２Ａ、…、９ｎＡが全てデータ転送許可状態にあるときは、この中の最高（最上位）の優先順位である所定のパケット処理部が転送要求ＦＷＤを受入れることができる。つまり、所定のパケット処理部が転送要求ＦＷＤを受入れると、一旦、所定パケット処理部よりも優先順位が下位のパケット処理部は転送要求受け入れが禁止されて、要求受理不可能状態に設定される。そして、所定パケット処理部が転送要求を受け入れた後に対応のパイプラインレジスタがデータパケットＰＡをラッチするために、所定パケット処理部のデータ転送許可状態は解除されて、所定パケット処理部よりも優先順位が下位のパケット処理部は転送要求受理不可能状態が解除されて、次の転送要求を受け入れ可能な状態（転送許可状態）に復帰する。
【００８９】
このように、所定パケット処理部がデータパケットＰＡを受入れてデータ処理中であっても、空検出／分岐部７によりデータ転送許可状態にある他のパケット処理部が存在していることが検知されると、他のパケット処理部に対して次のデータパケットＰＡを転送できる。その結果、所定パケット処理部における処理時間が長くても、次のデータパケットＰＡの処理は待機させられることなく（データパケットＰＡは滞留することなく）、複数のデータパケットＰＡを複数のパケット処理部で並列に処理することが可能となる。
【００９０】
なお、すべてのパケット処理部９１Ａ、９２Ａ、…、９ｎＡがデータ処理中であるために次のデータパケットＰＡを受入れることができないときは、すなわちＣ素子１０１１、１０１２、…、１０１ｎの端子ＲＯからレベル「Ｌ」のアクノリッジ信号ＡＣＫが出力されているときは、論理ゲート回路１２５２の出力信号はレベル「Ｌ」となる。該出力信号は論理ゲート回路１２５２および１２５１を介してＣ素子２００の端子ＲＩにアクノリッジ信号ＡＣＫとして入力される。その結果、パイプライン処理単位５の前段（直前）のパイプライン処理単位３Ａに対して次のデータパケットＰＡをパイプライン処理単位５に転送するのを禁止できる。
【００９１】
パケット処理部９１Ａ、９２Ａ、…、９ｎＡのデータ処理部１１３１、１１３２、…、１１３ｎのそれぞれでデータパケットＰＡを処理した結果データ（データパケットＰＡ）は、演算結果合流部２８０の端子群Ｄ１、Ｄ２、…、Ｄｎに出力される。演算結果合流部２８０は、与えられる演算結果データを入力して、入力順に従い端子群Ｑを介してパイプラインレジスタ２３０の端子群ＤＣに出力する。パイプラインレジスタ２３０は入力するデータパケットＰＡの演算結果を、端子ＣＫに対応のＣ素子１０（ｎ＋１）０からパルスを入力したことに応答して、端子群Ｑから出力する。なお、図３の端子群２０４から入力するデータパケットＰＡはここでは５４ビット長を有し、パイプラインレジスタ２３０の端子群Ｑおよび端子群２０７から出力されるデータパケットＰＡは１０８ビット長を有するとしているが、ビット長はこれらに限定されず、任意であってよい。
【００９２】
以上のようにパイプライン処理単位５に連続してデータパケットＰＡが入力しながら、あるパケット処理部であるデータパケットＰＡについてのデータ処理に長時間を要しても、そのデータ処理の期間に別のパケット処理部で別のデータパケットＰＡをデータ処理できる。その結果、データパケットＰＡについてデータ処理の並列性を維持できるとともに、データパケットＰＡが滞留するのを回避できて高いスループットを得ることができる。なお、ここではパイプライン処理単位５について説明したが、パイプライン接続されたパイプライン処理単位３Ａ、３Ｂおよび５の少なくとも１つが図５と同様な構成を有して、同様な効果を奏するようにしてもよい。
【００９３】
このように本実施の形態では、データ駆動型プロセッサ１において、より細分化された処理単位に分割が困難かつ他の処理要素に比較して、相対的に長い処理時間を必要とする処理要素が存在する場合であっても、局所的なデータパケットＰＡの滞留、処理時間の増大、スループットの低下を効果的に解消することができ、データ駆動型プロセッサ１において高速処理が可能となる。
【００９４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９５】
【発明の効果】
この発明によれば、前段のパイプライン処理単位から当該パイプライン処理単位に順次入力されるデータは、当該パイプライン処理単位においてデータ転送許可状態にあるデータ処理部が検出される限りは、該データ処理部において処理される。言換えると、データ転送許可状態にあるそれぞれのデータ処理部で並行してデータを処理できる。その結果、データが処理待ちとなって滞留するのを回避できる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るデータ駆動型プロセッサの主要部構成図である。
【図２】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における論理回路についての図面の構成を示す図である。
【図３】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における要部詳細を示す論理回路図である。
【図４】本発明の実施の形態に係るデータ駆動型プロセッサの主要部における要部詳細を示す論理回路図である。
【図５】（Ａ）と（Ｂ）はデータ駆動原理の説明図である。
【図６】従来のデータ駆動型プロセッサの主要部構成図である。
【図７】従来のデータ駆動型プロセッサの部分構成図である。
【図８】自己タイミング型データ転送処理機構を示す図である。
【図９】Ｃ素子の内部回路構成を示す図である。
【図１０】Ｃ素子の動作を示すタイミングチャートである。
【図１１】従来のパイプライン処理単位の構成を示す図である。
【図１２】従来のデータ駆動型プロセッサを示す図である。
【符号の説明】
１Ａ，１Ｂ，１Ｃ  データ駆動型プロセッサ、３Ａ，３Ｂ，３Ｃ，５  パイプライン処理単位、７  空検出／分岐部、９１Ａ，９２Ａ，…，９ｎＡ  パケット処理部、１１  合流部、ＰＡ  データパケット。
【図１】
2004157684.tif 000003
【図２】
2004157684.tif 000004
【図３】
2004157684.tif 000005
【図４】
2004157684.tif 000006
【図５】
2004157684.tif 000007
【図６】
2004157684.tif 000008
【図７】
2004157684.tif 000009
【図８】
2004157684.tif 000010
【図９】
2004157684.tif 000011
【図１０】
2004157684.tif 000012
【図１１】
2004157684.tif 000013
【図１２】
2004157684.tif 000014