(57)【特許請求の範囲】
【請求項１】
直列に配置された複数のパイプラインステージが配されたパイプラインを有する自己同期型パイプライン処理を用いたデータ駆動型情報処理装置であって、
前記パイプラインが二以上あり、
夫々のパイプラインが
少なくとも一のデータを二のデータにするためのパイプラインステージである分流制御点及び／又は
二のデータを演算して一のデータとするためのパイプラインステージである合流制御点を有し、
前記パイプラインステージごとに、
データの転送及び演算処理を制御する転送要求信号及び転送許可信号を生成する転送制御回路と、
前記データに含まれる情報から転送経路を決定するルータと、
前記転送経路を切り替えるタイミングを決定するアービタを有し、
前記ルータが、一のパイプラインの分流制御点から他のパイプラインの合流制御点へデータを転送する転送経路を決定し、
前記分流制御点及び／又は前記合流制御点を有するデータ処理エレメントが格子状に接続されていることを特徴とするデータ駆動型情報処理装置。
【請求項２】
前記ルータが、
前記データに含まれるパケットの種類、行き先ステージ番号、単位時間当たりのデータ流量、単位ステージあたりのデータ流量に基づいて前記転送を決定し、該転送経路の情報を前記アービタに出力し、
該アービタが
前記データの到着順序・到着間隔に基づいて前記転送経路の切り替えを行うことを特徴とする請求項１記載のデータ駆動型情報処理装置。
【請求項３】
前記一のパイプラインと前記他のパイプライン間に、他のデータを追い越すよう、あるデータを転送するための分流経路が設けられていることを特徴とする請求項１又は２記載のデータ駆動型情報処理装置。
【請求項４】
直列に配置された複数のパイプラインステージが配されたパイプラインを有する自己同期型パイプライン処理を用いたデータ駆動型情報処理装置であって、
前記パイプラインにおいて、所定数のパイプラインステージが順方向に配置されるとともに、残りのパイプラインステージが折り返し点から逆方向に配置され、
前記順方向及び逆方向の夫々の経路上において、
一のデータを二のデータに分岐するためのパイプラインステージである分流制御点と、
二のデータを演算して一のデータとするためのパイプラインステージである合流制御点を有し、
前記パイプラインステージごとに、
データの転送及び演算処理を制御する転送要求信号及び転送許可信号を生成する転送制御回路と、
前記データに含まれる情報から転送経路を決定するルータと、
前記転送経路を切り替えるタイミングを決定するアービタを有し、
前記ルータが、
前記順方向の経路上のデータと前記逆方向の経路上のデータを比較することにより、前記順方向の経路上の分流制御点から前記逆方向の経路上の合流制御点へデータを転送する転送経路及び／又は前記逆方向の経路上の分流制御点から前記順方向の経路上の合流制御点へデータを転送する転送経路を決定し、
前記分流制御点及び／又は前記合流制御点を有するデータ処理エレメントが格子状に接続されていることを特徴とするデータ駆動型情報処理装置。
【請求項５】
前記順方向の経路と前記逆方向の経路間に、他のデータを追い越すよう、あるデータを転送するための分流経路が設けられていることを特徴とする請求項４記載のデータ駆動型情報処理装置。
【請求項６】
前記データ駆動型情報処理装置がソーティング装置であり、
前記順方向の経路を入力データ系列とし、前記逆方向の経路をソート済みデータ系列とし、
前記ルータが、該入力データ系列に入力されたデータと該ソート済みデータ系列に既にソートされたデータを比較した比較結果によりデータの転送経路を決定することを特徴とする請求項４又は５記載のデータ駆動型情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は自己同期型パイプライン処理を用いたデータ駆動型情報処理装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）等を含む情報処理装置の設計において、ＳｏＣ（System on a Chip）の実現のため、マイクロプロセッサ、チップセット、ビデオチップ、メモリ、専用エンジン等の機能の高集積化が望まれている。機能の高集積化を図ることにより、実装に必要な面積を縮小させ、同等の機能を持つ複数のチップによるシステムよりも消費電力を抑えることができる。しかし、当該高集積化が進むにつれ、ＬＳＩの設計は複雑になる。
【０００３】
このような現状に鑑み、複数のパイプラインステージが配されたパイプラインが敷設されたデータ駆動型情報処理装置が用いられている（例えば、下記特許文献１参照）。このようなデータ駆動型情報処理装置でパイプライン処理を行うことにより、並列処理を実現するとともに、システム全体の保証をパイプラインステージごとの保証に置き換えることができる。そのため、パイプラインステージごとに設計を行うことができ、ＬＳＩの設計も容易に行うことができる。
【０００４】
なかでも、自己同期型パイプライン（ＳＴＰ：Self-Timed Pipeline）処理は様々な利点を有するため、多くの場面で用いられている。以下、図１９を用いて詳しく説明する。
図１９は自己同期型パイプライン処理を用いたデータ駆動型情報処理装置を示すブロック図である。
【０００５】
図１９には、自己同期型パイプライン処理を用いた情報処理装置の一部、具体的にはデータラッチ（ＤＬ１〜ＤＬ３）、転送制御回路（Ｃ１〜Ｃ３）、ロジック回路（Ｌ１，Ｌ２）を示している。そして、データがデータラッチ（ＤＬ１）、ロジック回路（Ｌ１）、データラッチ（ＤＬ２）、ロジック回路（Ｌ２）、データラッチ（ＤＬ３）と順に転送され、各ロジック回路（Ｌ１，Ｌ２）でシーケンス制御が行われる。
【０００６】
以下、図１９に示す情報処理回路の動作について具体的に説明する。まず、データラッチ（ＤＬ１）からデータラッチ（ＤＬ３）までデータを転送する場合、転送制御回路（Ｃ１）は転送制御回路（Ｃ２）に転送要求（ｓｅｎｄ）信号を送ると同時に、データラッチ（ＤＬ１）を開き、データを後段のパイプラインステージに転送する。転送制御回路（Ｃ１）からのｓｅｎｄ信号を受け取った転送制御回路（Ｃ２）は、転送許可（ａｃｋ）信号を転送制御回路（Ｃ１）に返す。転送制御回路（Ｃ２）からのａｃｋ信号を受け取った転送制御回路（Ｃ１）は後続データの転送準備をし、前段のパイプラインステージからのデータ転送を待つ。同様に、転送制御回路（Ｃ２）は後段の転送制御回路（Ｃ３）にｓｅｎｄ信号を出した後、後段のパイプラインステージにデータを転送する。このとき、転送制御回路（Ｃ２）は、転送制御回路（Ｃ３）からのａｃｋ信号を受け取るまで転送制御回路（Ｃ３）にｓｅｎｄ信号を送出できないため、データは転送されない。このようにして、隣り合った転送制御回路間のｓｅｎｄ信号とａｃｋ信号（以下、まとめてハンドシェイク信号と称す）の授受によりデータの転送を制御する。
【０００７】
図１９に示す情報処理回路は、隣り合った転送制御回路間のハンドシェイク信号の授受により制御されるため、他のパイプラインステージのデータ転送制御に直接影響を与えない。つまり、隣接ステージ間のハンドシェイクタイミングのみを制御すれば、パイプライン全体の動作を保証することができる。そのため、パイプライン制御はＶＬＳＩ（Very Large Scale Integration）の設計等で問題視されるタイミング制約やシグナルインテグリティの確保に有効である。例えば、スキューの影響が各パイプラインステージ内に局所化されるため、パイプライン分割が容易となり、スループットを向上させることができる。また、高い並列処理性能を実現することもできる。加えて、クロック制御による同期式パイプラインのように全体が同時に動作することがなく、データの有無によって間欠的に動作することができるため、原理的に省電力且つ低ＥＭＩ（Electro Magnetic Interference）で動作させることができる。
【０００８】
上記したように、ＳＴＰではハンドシェイクの保証によってシステム全体を保証することができる。そのため、複雑な転送であってもハンドシェイクを保証することができれば設計を実現することができる。しかし、ハンドシェイクの保証による設計は、ハンドシェイクが複雑になるほど困難である。つまり、信号数が増大すると回路が複雑となり、システム自体を構築することができなくなって、高集積化を図ることができなくなるという問題を有する。
【０００９】
【特許文献１】特開２００１−３３１４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は上記問題に鑑みてなされたものであり、複雑な回路でも容易に実現することができ、高集積化を図ることができる自己同期型パイプラインを用いたデータ駆動型情報処理装置を提供することを解決課題とする。
【課題を解決するための手段】
【００１１】
請求項１に係る発明は、直列に配置された複数のパイプラインステージが配されたパイプラインを有する自己同期型パイプライン処理を用いたデータ駆動型情報処理装置であって、前記パイプラインが二以上あり、夫々のパイプラインが少なくとも一のデータを二のデータにするためのパイプラインステージである分流制御点及び／又は二のデータを演算して一のデータとするためのパイプラインステージである合流制御点を有し、前記パイプラインステージごとに、データの転送及び演算処理を制御する転送要求信号及び転送許可信号を生成する転送制御回路と、前記データに含まれる情報から転送経路を決定するルータと、前記転送経路を切り替えるタイミングを決定するアービタを有し、前記ルータが、一のパイプラインの分流制御点から他のパイプラインの合流制御点へデータを転送する転送経路を決定し、前記分流制御点及び／又は前記合流制御点を有するデータ処理エレメントが格子状に接続されていることを特徴とするデータ駆動型情報処理装置に関する。
【００１２】
請求項２に係る発明は、前記ルータが、前記データに含まれるパケットの種類、行き先ステージ番号、単位時間当たりのデータ流量、単位ステージあたりのデータ流量に基づいて前記転送を決定し、該転送経路の情報を前記アービタに出力し、該アービタが前記データの到着順序・到着間隔に基づいて前記転送経路の切り替えを行うことを特徴とする請求項１記載のデータ駆動型情報処理装置に関する。
【００１３】
請求項３に係る発明は、前記一のパイプラインと前記他のパイプライン間に、他のデータを追い越すよう、あるデータを転送するための分流経路が設けられていることを特徴とする請求項１又は２記載のデータ駆動型情報処理装置に関する。
【００１５】
請求項４に係る発明は、直列に配置された複数のパイプラインステージが配されたパイプラインを有する自己同期型パイプライン処理を用いたデータ駆動型情報処理装置であって、前記パイプラインにおいて、所定数のパイプラインステージが順方向に配置されるとともに、残りのパイプラインステージが折り返し点から逆方向に配置され、前記順方向及び逆方向の夫々の経路上において、一のデータを二のデータに分岐するためのパイプラインステージである分流制御点と、二のデータを演算して一のデータとするためのパイプラインステージである合流制御点を有し、前記パイプラインステージごとに、データの転送及び演算処理を制御する転送要求信号及び転送許可信号を生成する転送制御回路と、前記データに含まれる情報から転送経路を決定するルータと、前記転送経路を切り替えるタイミングを決定するアービタを有し、前記ルータが、前記順方向の経路上のデータと前記逆方向の経路上のデータを比較することにより、前記順方向の経路上の分流制御点から前記逆方向の経路上の合流制御点へデータを転送する転送経路及び／又は前記逆方向の経路上の分流制御点から前記順方向の経路上の合流制御点へデータを転送する転送経路を決定し、前記分流制御点及び／又は前記合流制御点を有するデータ処理エレメントが格子状に接続されていることを特徴とするデータ駆動型情報処理装置に関する。
請求項５に係る発明は、前記順方向の経路と前記逆方向の経路間に、他のデータを追い越すよう、あるデータを転送するための分流経路が設けられていることを特徴とする請求項４記載のデータ駆動型情報処理装置に関する。
【００１６】
請求項６に係る発明は、前記データ駆動型情報処理装置がソーティング装置であり、前記順方向の経路を入力データ系列とし、前記逆方向の経路をソート済みデータ系列とし、前記ルータが、該入力データ系列に入力されたデータと該ソート済みデータ系列に既にソートされたデータを比較した比較結果によりデータの転送経路を決定することを特徴とする請求項４又は５記載のデータ駆動型情報処理装置に関する。
【発明の効果】
【００１７】
請求項１に係る発明によれば、パイプラインが二以上あり、夫々のパイプラインが少なくとも一のデータを二のデータに分岐するためのパイプラインステージである分流制御点及び／又は二のデータを演算して一のデータとするためのパイプラインステージである合流制御点を有し、前記パイプラインステージごとに、データの転送及び演算処理を制御する転送要求信号及び転送許可信号を生成する転送制御回路と、前記データに含まれる情報から転送経路を決定するルータと、前記転送経路を切り替えるタイミングを決定するアービタを有し、前記ルータが、一のパイプラインの分流制御点から他のパイプラインの合流制御点へデータを転送する転送経路を決定することにより、二以上のパイプライン間でのデータの相互転送制御を実現することができる。
前記分流制御点及び／又は前記合流制御点を有するデータ処理エレメントが格子状に接続されていることにより、データ処理エレメントを複数相互に接続し、それらの間の相互作用機構を実現しつつ、ＶＬＳＩチップ上に展開することができる。
【００１８】
請求項２に係る発明によれば、前記ルータが、前記データに含まれるパケットの種類、行き先ステージ番号、単位時間当たりのデータ流量、単位ステージあたりのデータ流量に基づいて前記転送を決定し、該転送経路の情報を前記アービタに出力し、該アービタが前記データの到着順序・到着間隔に基づいて前記転送経路の切り替えを行うことにより、様々な動作条件に従い動的に制御でき、高機能なデータ操作を実現することができる。
【００１９】
請求項３に係る発明によれば、前記一のパイプラインと前記他のパイプライン間に、他のデータを追い越すよう、あるデータを転送するための分流経路が設けられていることにより、一方のパイプラインが一時的に停止した場合でも、他方のパイプラインとの相互作用を実現することができる。
【００２１】
請求項４及び５に係る発明によれば、直列に配置された複数のパイプラインステージが配されたパイプラインを有する自己同期型パイプライン処理を用いたデータ駆動型情報処理装置であって、前記パイプラインにおいて、所定数のパイプラインステージが順方向に配置されるとともに、残りのパイプラインステージが折り返し点から逆方向に配置され、前記順方向及び逆方向の夫々の経路上において、一のデータを二のデータに分岐するためのパイプラインステージである分流制御点と、二のデータを演算して一のデータとするためのパイプラインステージである合流制御点を有し、前記パイプラインステージごとに、データの転送及び演算処理を制御する転送要求信号及び転送許可信号を生成する転送制御回路と、前記データに含まれる情報から転送経路を決定するルータと、前記転送経路を切り替えるタイミングを決定するアービタを有し、前記ルータが、前記順方向の経路上のデータと前記逆方向の経路上のデータを比較することにより、前記順方向の経路上の分流制御点から前記逆方向の経路上の合流制御点へデータを転送する転送経路及び／又は前記逆方向の経路上の分流制御点から前記順方向の経路上の合流制御点へデータを転送する転送経路を決定することにより、順方向の経路と逆方向の経路間でのデータの相互転送制御を実現することができる。
【００２２】
請求項６に係る発明によれば、前記データ駆動型情報処理装置がソーティング装置であり、前記順方向の経路を入力データ系列とし、前記逆方向の経路をソート済みデータ系列とし、前記ルータが、該入力データ系列に入力されたデータと該ソート済みデータ系列に既にソートされたデータを比較した比較結果によりデータの転送経路を決定することにより、データの大小比較と交換がデータ対毎に並列して行うことができ、大小比較・交換を行うパイプラインの数だけソーティングを並列実行することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の自己同期型パイプライン制御を用いたデータ駆動型情報処理装置について図面を参照しつつ説明する。なお、下記説明において、同じ構成には同じ符号を付している。
【００２４】
まず、本発明の第一実施形態に係るデータ駆動型情報処理装置について説明する。
第一実施形態に係るデータ駆動型情報処理装置は、直列に配置された複数のパイプラインステージが配されたパイプラインを二以上有するデータ駆動型情報処理装置であって、パイプライン間のデータの相互転送制御を実現するためのものである。
図１，２は第一実施形態に係るデータ駆動型情報処理装置の制御の概念について説明するための説明図であり、二本のパイプライン（１，２）間のデータの相互転送制御について説明するための説明図である。
【００２５】
図１に示す如く、パイプライン（１，２）は、パイプラインステージとして、一のデータを一又は二のデータに分岐するための分流制御点（１１，２１）と、一又は二のデータを演算して一のデータとする合流制御点（１２，２２）を有する。具体的には、一方のパイプライン（１）はパイプラインステージとして分流制御点（１１），合流制御点（１２）を有し、他方のパイプライン（２）はパイプラインステージとして分流制御点（２１），合流制御点（２２）を有する。
【００２６】
分流制御点（１１，２１）、合流制御点（１２，２２）の機能について、具体的に説明する。
分流制御点（１１，２１）は設定により、下記（i）（ii）どちらかの機能を有する。
（i）合流制御点（１２）又は合流制御点（２２）のどちらか一方（例えば、分流制御点に許可信号が早く到達した方）にデータを送る。
（ii）入力されたデータを設定した条件により二つに分割して合流制御点（１２）及び合流制御点（２２）の両方に送る。
また、合流制御点（１２，２２）は設定により、下記（iii）（iv）どちらかの機能を有する。
（iii）分流制御点（１１）又は分流制御点（２１）のどちらか一方のデータ（例えば、分流制御点に早く到達したデータ）を受けて後段のパイプラインステージに出力する。
（iv）分流制御点（１１）及び分流制御点（２１）の両方のデータのパケットを演算することにより、異なるデータを作成し、後段のパイプラインステージに出力する。
【００２７】
分流制御点（１１，２１）が（i）又は（ii）のどちらのか機能を有し、合流制御点（１２，２２）が（iii）又は（iv）のどちらかの機能を有することにより、パイプライン（１，２）間のデータの相互転送制御を実現することができる。
なお、分流制御点（１１，２１）が（i）又は（ii）のどちらの機能を有するか、合流制御点（１２，２２）が（iii）又は（iv）のどちらの機能を有するかは、データのパケットが到着する直前までに決定する必要がある。
【００２８】
分流制御点（１１，２１）、合流制御点（１２，２２）を有することにより、パイプライン（１）に入力されたデータは、分流制御点（１１）から合流制御点（１２）を介して出力される経路及び／又は合流制御点（２２）を介して出力される経路を選択することができる。一方、パイプライン（２）に入力されたデータは、分流制御点（２１）から合流制御点（２２）を介して出力される経路及び／又は合流制御点（１２）を介して出力される経路を選択することができる。
つまり、分流制御点（１１，２１）、合流制御点（１２，２２）を有することにより、例えば、
分流制御点（１１）から合流制御点（１２，２２）への転送により実現される「分岐」（図２（ａ）参照）、
分流制御点（１１）から合流制御点（１２）への転送及び分流制御点（２１）から合流制御点（１２）への転送により実現される「合流」（図２（ｂ）参照）、
分流制御点（１１）から合流制御点（１２，２２）への転送及び分流制御点（２１）から合流制御点（２２）への転送により実現される「一方向転送」（図２（ｃ）参照）、
分流制御点（１１）から合流制御点（１２，２２）への転送及び分流制御点（２１）から合流制御点（１２，２２）への転送により実現される「双方向転送」（図２（ｄ）参照）
等を実現することができる。
【００２９】
このように、分流制御点（１１，２１）及び合流制御点（１２，２２）を採用することで、分流制御点（１１，２１）及び合流制御点（１２，２２）の組み合わせのみで（他の構成なしに）、分岐・合流等のパイプライン間の転送制御を実現することができる。つまり、パイプラインの分流制御点と合流制御点の配し方によってパイプラインを縦横無尽に配することができる。具体的には、分流制御点（１１，２１）、合流制御点（１２，２２）、分流制御点（１１，２１）と合流制御点（１２，２２）間の転送を夫々ＯＮ又はＯＦＦの状態にすることでデータの経路を決定することができる。例えば「分岐」を構成したい場合、分流制御点（１１）、合流制御点（１２，２２）、分流制御点（１１）から合流制御点（１２，２２）への転送をＯＮにし、分流制御点（２１）をＯＦＦにする。
【００３０】
次いで、第一実施形態に係るデータ駆動型情報処理装置に用いられる回路について説明する。
図３は第一実施形態に係るデータ駆動型情報処理装置に用いられる回路（１００）を示す図であり、「分岐」、「合流」、「一方向転送」、「双方向転送」の全ての経路を実現するための回路を示す図である。
図３に示す回路（１００）は転送制御回路（３）、ルータ（Router）（４）、アービタ（Arbiter）（５）、マルチプレクサ（multiplexer：ＭＵＸ）（６）を有する回路である。なお、図４は転送制御回路（３）の詳細を示す図であり、図５はアービタ（５）の詳細を示す図である。
【００３１】
転送制御回路（３）はハンドシェイクによりデータ転送を制御する回路であり、転送制御回路（３）からのハンドシェイク信号（転送要求信号及び転送許可信号）に基づいてデータラッチ（図３には図示せず）を開閉することによりデータ転送を制御している。
具体的には、転送制御回路（３）には、入力信号として後段から転送要求（ｓｅｎｄ）信号が、前段から転送許可（ａｃｋ）信号が入力される。また、出力信号として前段へ転送許可（ａｃｋ）信号が、後段へ転送要求（ｓｅｎｄ）信号が出力される。
そして、前段からの転送許可信号と後段からの転送要求信号が入力（遷移）されたとき、前段への転送要求信号及び後段への転送許可信号を出力（遷移）する。つまり、二入力の信号遷移を受けて二出力を信号遷移させる回路である。
また、転送制御回路（３）は各パイプラインステージごとに設けられており、図３ではパイプライン（１）の転送制御回路（３１）とパイプライン（２）の転送制御回路（３２）が示されている。また、パイプライン（１）において、前段からの転送要求信号を「ｓｅｎｄ ｉｎ１」、前段への転送許可信号を「ａｃｋ ｏｕｔ１」、後段への転送要求信号を「ｓｅｎｄ ｏｕｔ１」、後段からの転送許可信号を「ａｃｋ ｉｎ１」とする。同様に、パイプライン（２）において、前段からの転送要求信号を「ｓｅｎｄ ｉｎ２」、前段への転送許可信号を「ａｃｋ ｏｕｔ２」、後段への転送要求信号を「ｓｅｎｄ ｏｕｔ２」、後段からの転送許可信号を「ａｃｋ ｉｎ２」とする。
なお、図４はハフマン回路の制約を満足するように設計した転送制御回路（３）である。ハフマン回路の制約（転送制御回路のタイミングチャート）については後に詳述する。
【００３２】
ルータ（４）はデータに含まれる情報から転送経路を決定するための回路であり、アービタ（５）に転送経路の情報を送る。
転送経路を決定するための情報としては、データのパケットの種類、行き先ステージ番号（属性）、単位時間当たりのパケット流量、単位ステージあたりのパケット流量等を挙げることができる。このように、様々な動作条件に従い動的に制御することにより、高機能なデータ操作を実現することができる。
【００３３】
アービタ（５）はルータ（４）により決定した転送経路に基づき、二つのパケットの到着順序、到着間隔等を加味して転送経路を切り替えるタイミングを決定するための回路であり、決定した転送経路を転送制御回路（３１１，３２１）に伝播させる。
以下、図５を用いてアービタ（５）について説明する。図５（ａ）はアービタ（５）全体を示す回路であり、図５（ｂ）は図５（ａ）の（５１）の部分、図５（ｃ）は図５（ａ）の（５２）の部分を示す。
図５（ｂ）に示す回路（５１）により、アービタ（５）はハンドシェイク信号（ｓｅｎｄ信号とａｃｋ信号）に基づいてデータが転送中か否かを判断する。具体的には、端子（５１ｓ）からｓｅｎｄ信号を受け、端子（５１ａ）からａｃｋ信号を受ける。ここで、回路（５１）は、パイプライン（１）のデータを処理する回路（５１１）とパイプライン（２）のデータを処理する回路（５１２）の二つが設けられており、夫々のパイプラインごとにデータの処理を行う。そして、回路（５１）は図５（ｃ）に示す回路（５２）にデータが転送中であるか否かの情報を送る。回路（５２）は、回路（５１１）からの情報を端子（５２ｓ１）で、回路（５１２）からの情報を端子（５２ｓ２）で受け、当該情報を基に、転送経路を切り替えるタイミングを決定し、ＭＵＸ（６）を制御する情報をＭＵＸ（６）に送る。
なお、図５（ｂ）における端子（５１ｒ）は回路を初期状態に戻すためのｒｅｓｅｔ信号が入力される端子である。
また、図５に示すアービタ（５）は本発明に係るアービタ（５）の一例であり、本発明を何ら限定するものではない。例えば、後述するソーティング装置のアービタ（５）ではパイプライン（２）からのｓｅｎｄ信号やａｃｋ信号はアービタ（５）に入力されない。他にも、ｓｅｎｄ信号のみ又はａｃｋ信号のみがアービタ（５）に入力される場合やこれらの組み合わせも挙げることができる。
【００３４】
ＭＵＸ（６）は、二以上の入力を一の信号として出力するためのものであり、パイプライン（１）におけるＭＵＸ（６１１、６１２）とパイプライン（２）におけるＭＵＸ（６２１、６２１）の四つが設けられている。
【００３５】
転送制御回路（３）、ルータ（４）、アービタ（５）及びＭＵＸ（６）の機能を制御することにより、パイプライン（１，２）間のデータの相互転送制御を実現することができる。以下、図６を用いて具体的に説明する。
図６はパイプライン（１）のデータラッチ（７１１）からパイプライン（２）のデータラッチ（７２２）への転送及びパイプライン（２）のデータラッチ（７２１）からパイプライン（１）のデータラッチ（７１２）への転送が行われている場合を示すイメージブロック図であり、図３は図６における点線で囲まれた（Ａ）の部分を示す。なお、図６では、図示の都合上、データラッチ（７１１）からデータラッチ（７２２）への転送及びデータラッチ（７２１）からデータラッチ（７１２）への転送のみを示しているが、実際にはデータの合流・分岐を切り替えることができる。
図６に示す如く、第一実施形態に係るデータ駆動型情報処理装置は、転送制御回路（３）で生成されるハンドシェイク信号の方向を変えることによってデータの相互転送制御を制御している。具体的には、ハンドシェイク信号のやりとりを、パイプライン（１）の転送制御回路（３１１）とパイプライン（２）の転送制御回路（３１２）間及びパイプライン（２）の転送制御回路（３２１）とパイプライン（１）の転送制御回路（３１２）間で行う。
また、図６以外の例で説明すると、例えば、「合流」は二つのハンドシェイク信号を一つのハンドシェイク信号にすることにより実現することができ、「分岐」は一つのハンドシェイク信号を二方向に出力することで実現することができる。このように、第一実施形態に係るデータ駆動型情報処理装置はハンドシェイク信号の方向を変えることによってデータの転送を制御している。
【００３６】
また、回路（１００）では、転送制御回路（３）のハンドシェイク中に遷移する信号数を制限するため、後段のパイプラインステージの転送受け入れが完了した後にのみ転送要求（ｓｅｎｄ）信号に対して転送許可（ａｃｋ）信号を返すようハンドシェイクのプロトコルを規定する。図７は直列に配置された三つの転送制御回路のタイミングチャートを示す図であり、三つの転送制御回路における転送要求信号をデータが転送される順にｓｅｎｄ１，２，３、転送許可信号をａｃｋ１，２，３とする。図７に示す如く、ｓｅｎｄ１に対するａｃｋ１の立ち上がり条件にａｃｋ２の立ち上がりが必要となる。なお、このようなハンドシェイクプロトコルはｓｅｎｄ信号の到着後もａｃｋ信号の到着を待つ過負荷時から定常状態への復帰が遅れやすいため、パイプラインが過負荷にならないよう、入力データの流量を調整する必要がある。
【００３７】
図８は、図７で示すハンドシェイクプロトコルに基づく双方向転送制御のタイミングチャートを示す図である。図８はパイプライン（１）側とパイプライン（２）側から双方向にデータを転送する場合に、パイプライン（１）側のデータがパイプライン（２）側よりも先に到着しており、パイプライン（２）側のデータはパイプライン（１）側のデータの転送が終了するまで待つ様子を示している。図８より、転送制御回路（３１１，３２１）に入力される信号の中で、同時に遷移する信号は一つのみであり、制御が容易であるといえる。
【００３８】
転送制御回路（３）を上記タイミングチャートを満足するように設計することで、同時に遷移する信号数を制限することができ、ハフマン回路の制約を満足することができる。そして、転送制御回路（１）は機械的に導出することができる（例えば、図４参照）。なお、ハフマン回路の導出方法としては、一般的なものを用いればよい。（例えば、C. J. Myers, ”Asynchronous Circuit Design,” Wiley & Sons, Inc., Jul.2001参照）。
【００３９】
次いで、転送制御回路（３）のタイミング制約について、より詳しく説明する。
転送制御回路（３）はハフマン回路であり、非同期型の回路である。そのため、入力変化の間隔（ｄｃｏｎｓｔｒａｉｎｔ）を安定させるために下式１を満たす必要がある。下式１中のｄｍａｘはハフマン回路内の組み合わせ回路の最大遅延を示し、ｄｆはフィードバック遅延を示している。一方、ｓｅｎｄ信号の遅延、ａｃｋ信号の遅延、ＭＵＸの遅延、ハフマン回路内の組み合わせ回路の最小遅延を夫々、ｄｓ，ｄａ，ｄｍｕｘ，ｄｍｉｎとした場合、ハンドシェイクにおける入力変化の最小時間（ｄｉ）は下式２で示される。このとき、ｄｃｏｎｓｔｒａｉｎｔ＞ｄｉとなる場合、下式１を満たすために、新たな遅延（ｄｘ）を加える必要がある。以上より、下式３を満たすｄｘ以上の遅延をｓｅｎｄ信号又はａｃｋ信号の配線上に加える必要がある。
【００４０】
【数１】
0005110433.tif 000002
【００４１】
【数２】
0005110433.tif 000003
【００４２】
【数３】
0005110433.tif 000004
【００４３】
また、転送制御回路（３）では、ルータ（４）が、データがパイプライン間で並列して転送される場合の経路の選択、又は交差して転送される場合の経路の選択を行う。そしてアービタ（５）とＭＵＸ（６）が経路に応じてハンドシェイクの方向を切り替えるタイミングを制御する。これらの一連の切り替えはデータの到着からｓｅｎｄ信号の送出までの最小の時間間隔（３ｄｍｉｎ＋ｄａ＋ｄｓ＋ｄｘ＋２ｄｍｕｘ）で行われる必要がある。このためにはルータ（４）、アービタ（５）、ＭＵＸ（６）の最大遅延を夫々ｄｒ，ｄａｒｂ，ｄｍｕｘとすると下式４を満たす必要がある。
【００４４】
【数４】
0005110433.tif 000005
【００４５】
また、アービタ（５）では、パイプライン（１）とパイプライン（２）側の一組のデータの転送制御が終了するまで経路保持する必要があるため、状態を保持するフリップフロップ（ＦＦ）を内蔵する必要があり、非同期に信号が到着する。一般にＦＦのクロック側とデータ側への信号が非同期に到着する場合、同期化障害（メタステーブル）により回路が誤動作し得ることが知られているが、ＦＦの二重化により、メタステーブルの発生確率を低減することができる。
【００４６】
また、図９に示す如く、パイプライン（１，２）間には、他のデータを追い越して、あるデータを転送するための分流経路（８）が設けられていてもよい。分流経路（８）を設けることにより、例えば、一方のパイプライン（１）が一時的に停止した場合でも、他方のパイプライン（２）との相互作用を実現することができる。
【００４７】
次いで、上記した回路（１００）を用いたデータ駆動型情報処理装置全体について説明する。本発明に係るデータ駆動型情報処理装置は、回路（１００）を用いることにより、データ処理エレメント（９）を複数相互に接続し、それらの間の相互作用機構を実現しつつ、チップ上に展開することができる。ここでデータ処理エレメントとは、回路（１００）を有するマイクロプロセッサ、チップセット、ビデオチップ、メモリ、専用エンジン等の機能をいう。
図１０，１１はデータ処理エレメント（９）を展開する方法を示す説明図である。
図１０ではデータ処理エレメント（９）が格子状に展開されており、隣接するデータ処理エレメントにデータを転送する。例えば、図１０（ｂ）の矢印が示すように、図面左からのデータが図面上又は図面右のデータ処理エレメント（９）に、図面下からのデータが図面右又は図面上のデータ処理エレメント（９）に転送される。図１１ではデータ処理エレメント（９）が蜘蛛の巣状に展開しており、隣接するデータ処理エレメントにデータを転送する。
データ処理エレメント（９）が図１０，１１に示すように展開することにより、対象となるアプリケーションの同時並列・パイプラインの並列処理の構造に適した形態で、処理対象データの論理的な流れ（データフロー）を物理的なパイプライン処理機構上に写像することができる。
【００４８】
また、図１０，１１に示すデータ処理エレメント（９）は、図１２（ａ）〜（ｃ）に示すような形態を有する。
図１２（ａ）はアプリケーションの論理的なデータフローをそのままパイプライン機構に写像するよう、ロジック回路（９１）同士を接続した専用エンジンを示す図である。図１２（ｂ）は同種のハードウェア機能を有するロジック回路（９２）を複数カスケードしたアクセラレータ・パイプライン上に論理的データフローを写像した専用エンジンを示す図であり、単純な写像では要求性能を満たさない場合等に利用される。図１２（ｃ）は多機能なＡＬＵを搭載したプロセッサ（又はマルチプロセッサ）上に写像して、ソフトウェアをパイプライン並列に実行したマイクロプロセッサを示す図であり、単純な写像では過度な性能になる場合に利用される。
本発明に係る自己同期型パイプライン制御を用いることにより、自由にデータの流れを切り替えたり、相互のデータ系列を対象にして指定された加工を施したりすることができる。そのため、図１２（ａ）〜（ｃ）で示す形態を組み合わせ、又は折衷的な写像法を利用することにより、容易に実現することができる。
【００４９】
次いで、本発明に係るデータ駆動型情報処理装置の第二実施形態について説明する。第二実施形態に係るデータ駆動型情報処理装置は、一のパイプラインにおける離れたパイプラインステージ間の転送制御を行うための装置である。
図１３は第二実施形態に係るデータ駆動型情報処理装置を説明するための説明図である。
図１３に示す如く、パイプライン（１）が、所定数のパイプラインステージ（図ではデータラッチ（７）のみを表示）分だけ順方向（図面右方向）に延び、残りが折り返し点から逆方向（図面左方向）に延びている。
そして、順方向の経路上のデータと逆方向の経路上のデータを比較することにより、順方向の経路上の分流制御点から逆方向の経路上の分流制御点へ分流経路（８）を用いてデータを転送したり、逆方向の経路上の分流制御点から順方向の経路上の合流制御点へデータを転送したりすることができる。
【００５０】
次いで、図１３に示す第二実施形態に係るデータ駆動型情報処理装置を利用した応用例として、ソーティング装置を説明する。
ソーティングとは、例えばＴＣＰパケットのリアセンブル処理等の入力データ系列の順序に性能が左右されるアプリケーションにおける基本的な処理である。
図１４はランダムな順序で入力されるデータ系列のソーティングにおけるデータフローを説明するための説明図である。
【００５１】
ソーティングにおける基本操作は、大小比較と比較結果に応じた要素の交換である。ソーティングは既にソート済のデータ系列の各要素に対して入力データ系列の要素毎に大小比較を行い、必要であればデータの交換を行う。
回路（１００）を利用する場合、あるパイプライン（１）を入力データ系列（１）に利用し、他のパイプライン（２）をソート済みデータ系列（２）に利用する。そして、入力データ系列（１）に入力されたデータとソート済みデータ系列（２）に既にソートされたデータを比較し、適宜データの交換を行う。具体的には、入力データ系列（１）のデータとソート済みデータ系列（２）のデータを比較した比較結果に基づいて、ルータ（４）が転送経路を決定する。
例えば、図１４で示す如く、ソート済みデータ系列（２）に存在する１，３，９といったデータが既にソート済で、入力データ系列（１）にある５といったデータが入力される。入力されたデータ５は１，３，９と大小比較を行う。その際、５は１，３よりは大きいが、９よりは小さいため、９と５が交換されることとなる。
このように、入力データ系列（１）とソート済データ系列（２）間の相互作用として大小比較・交換を行う。なお、ソーティングは入力される全要素に対して大小比較・交換を行う必要があるため、ソート済みデータ系列（２）は出口への転送を停止する。また、全要素の大小比較・交換が終了した時点で、ソート済みデータ系列（２）の出口への転送を開始し、ソーティング結果を出力する。
回路（１００）及び図９に示す分流経路（８）を用いることにより、データの大小関係と交換がデータ対毎に並列して行うことができ、大小比較・交換を行うパイプラインの数だけソーティングを並列実行することができる。
【００５２】
図１５は図３に示すデータ駆動型情報処理装置の回路（１００）を減退し、図９に示す分流経路（８）を追加することで作成したソーティング装置（以下、ＳＰＳ（Self-Timed Parallel Sorter）と称す）の回路を示すブロック図である。ＳＰＳは、入力データ（ｄａｔａ１）とソート済データ（ｄａｔａ２）の大小比較をルータ（４）で行う。そして、比較結果に基づき、アービタ（５）でデータの入れ替えを行うタイミングを調停し、ハンドシェイクの方向をＭＵＸ（６）で制御する。なお、図１６はアービタを示すブロック図である。これらの回路モジュールにより、データ系列の大小比較・交換、ステージへの転送を実現する。
【実施例】
【００５３】
以下、本発明に係るソーティング装置の回路規模と処理性能の評価を行うことにより、本発明の効果をより明確なものとする。
【００５４】
本発明に係るソーティング装置は、要素数Ｎ個のデータ系列のソーティングに対し、全てのパイプライン段で大小比較を行う場合のソーティング装置（ＳＰＳ）である（図１３参照）。
このＳＰＳを、対向するパイプライン間において対応する一段目のパイプライン段でのみ大小比較・交換を行う場合のソーティング装置（ＳＬＳ:Self-Timed Light Sorter）と比較することで、回路規模と処理性能の評価を行った。なお、図１７はＳＬＳを示す図である。
【００５５】
ここで、ＳＬＳではパイプラインのＯＵＴ側パイプラインのデータ（Ｄｏｕｔ）をＩＮ側パイプラインへ転送する際に、既に入力されている入力データ（Ｄｉｎ）と比較し、ＤｏｕｔとＤｉｎ間の大小関係が成立しない場合はＤｏｕｔを、成立する場合はＤｉｎをＩＮ側パイプラインに転送するものである。それにより、ＯＵＴ側パイプライン上の適切な位置に入力データを挿入することができる。このとき大小比較のためにＩＮ側パイプラインではＯＵＴ側パイプラインからのデータ（Ｄｏｕｔ）の合流と入力データ（Ｄｉｎ）の合流があり、また交換のために、ＯＵＴ側パイプラインからＩＮ側パイプラインへの分流がある。
【００５６】
ＳＬＳとＳＰＳのソーティング装置をＴＳＭＣ社０．１８ｎｍＣＭＯＳ標準セルライブラリを用いて設計した。図１８（ａ）はＳＰＳ、図１８（ｂ）はＳＬＳのレイアウトを示す図である。
データフローの写像レベルがパイプラインの性能に与える影響を示すため、８ｂｉｔのデータ幅を持つ１０個の入力データを昇順又は降順にソートした際のターンアラウンドタイム（ワーストケース）と、並列性の増加と回路規模の関係を、ロジックセル数を基に下記表１に示す。
【００５７】
【表１】
0005110433.tif 000006
【００５８】
並列性の高いＳＰＳのほうが並列性の低いＳＬＳの約２倍のセル面積を必要とするものの、性能はＳＰＳのほうがＳＬＳの約９倍高いことがわかる。つまり、本発明に係るＳＰＳのほうが、従来のＳＬＳより、単位セル面積当たりで優れた性能を有することがわかる。
【産業上の利用可能性】
【００５９】
以上説明した如く、本発明に係るデータ駆動型情報処理装置は、マイクロプロセッサ、チップセット、ビデオチップ、メモリ、専用エンジン等の機能が高集積化されたＬＳＩ（Large Scale Integration）等に好適に利用可能である。
【図面の簡単な説明】
【００６０】
【図１】第一実施形態に係るデータ駆動型情報処理装置の制御の概念について説明するための説明図である。
【図２】第一実施形態に係るデータ駆動型情報処理装置の制御の概念について説明するための説明図である。
【図３】第一実施形態に係るデータ駆動型情報処理装置に用いられる回路を示す図である。
【図４】転送制御回路の詳細を示す図である。
【図５】アービタの詳細を示す図である。
【図６】データの転送を示すイメージブロック図である。
【図７】直列に配置された三つの転送制御回路のタイミングチャートを示す図である。
【図８】図７で示すハンドシェイクプロトコルに基づく双方向転送制御のタイミングチャートを示す図である。
【図９】追い越す分流経路が設けられたデータ駆動型情報処理装置を説明するための説明図である。
【図１０】データ処理エレメントを展開する方法を示す説明図である。
【図１１】データ処理エレメントを展開する方法を示す説明図である。
【図１２】データ処理エレメントの形態を示す図である。
【図１３】第二実施形態に係るデータ駆動型情報処理装置に用いられる回路を示す図である装置を説明する。
【図１４】ソーティングにおけるデータフローを説明するための説明図である。
【図１５】ソーティング装置の回路を示すブロック図である。
【図１６】ソーティング装置の回路のアービタを示すブロック図である。
【図１７】ＳＬＳを示す図である。
【図１８】ＳＬＳとＳＰＳのレイアウトを示す図である。
【図１９】自己同期型パイプライン処理を用いたデータ駆動型情報処理装置を示すブロック図である。
【符号の説明】
【００６１】
１，２                  パイプライン
１１，２１              分流制御点
１２，２２              合流制御点
３                      転送制御回路
４                      ルータ
５                      アービタ
８                      分流経路
９                      データ処理エレメント
【図１】
0005110433.tif 000007
【図２】
0005110433.tif 000008
【図３】
0005110433.tif 000009
【図４】
0005110433.tif 000010
【図５】
0005110433.tif 000011
【図６】
0005110433.tif 000012
【図７】
0005110433.tif 000013
【図８】
0005110433.tif 000014
【図９】
0005110433.tif 000015
【図１０】
0005110433.tif 000016
【図１１】
0005110433.tif 000017
【図１２】
0005110433.tif 000018
【図１３】
0005110433.tif 000019
【図１４】
0005110433.tif 000020
【図１５】
0005110433.tif 000021
【図１６】
0005110433.tif 000022
【図１７】
0005110433.tif 000023
【図１８】
0005110433.tif 000024
【図１９】
0005110433.tif 000025