(57)【要約】      （修正有）【課題】プロセッサに基づくマシンの意思決定を為す能力を、ハードウェアに組み込まれたパイプラインに基づくマシンのナンバークランチング速度と組み合わせることを可能とする新しい計算アーキテクチャを提供する。【解決手段】パイプライン加速器４４は、複数のパイプライン・ユニット７４１〜７４ｎを含む。複数のパイプライン・ユニットをパイプライン加速器に含ませることによって、加速器のデータ処理性能を増大することができる。更には、複数のパイプライン・ユニットが共通バスを介して通信することによって、パイプライン・ユニットの数を変えることができ、加速器のコンフィギュレーション及び機能を変えることができる。これは、それらパイプライン・ユニットの内の１つを変えるたび、或は、加速器内のパイプライン・ユニットの数を変えるたびに、それらパイプライン・ユニット・インターフェースを設計或は再設計する必要性をなくする。【選択図】図３
2011175655.tif 000002
【特許請求の範囲】
【請求項１】
通信バスと、
それぞれが前記通信バスに結合されており、それぞれがハードワイヤパイプライン回路を備える複数のパイプラインユニットとを含み、
各ハードワイヤパイプラインは、少なくとも他の１つのハードワイヤパイプライン回路に対して異なるクロック信号で動作し、
各ハードワイヤパイプライン回路はフィールドプログラマブルゲートアレイダイ上に配置されている、パイプライン加速器。
【請求項２】
それぞれの前記パイプラインユニットは、
前記ハードワイヤパイプライン回路に結合されたメモリを含み、
該ハードワイヤパイプライン回路は、
前記通信バスからデータを受信し、
該データを前記メモリにローディングし、
該メモリから前記データを検索し、
検索された前記データを処理し、
処理された前記データを前記通信バスに提供するように動作する、請求項１記載のパイプライン加速器。
【請求項３】
それぞれの前記パイプラインユニットは、
前記ハードワイヤパイプライン回路に結合されたメモリを含み、該ハードワイヤパイプライン回路は、
通信バスからデータを受信し、
該データを処理し、
処理された前記データを前記メモリにローディングし、
前記メモリから処理された前記データを検索し、
検索された前記データを前記通信バスに提供するように動作する、請求項１記載のパイプライン加速器。
【請求項４】
パイプラインバスと、
前記通信バスと前記パイプラインバスとに結合されたパイプラインバス・インターフェースとを含む、請求項１記載のパイプライン加速器。
【請求項５】
前記通信バスは、それぞれが各前記パイプラインユニットに結合されている複数の分岐を含み、
本パイプライン加速器は該分岐のそれぞれと結合したルータを含む、請求項１記載のパイプライン加速器。
【請求項６】
前記通信バスは、それぞれが各前記パイプラインユニットに結合している複数の分岐を含み、
本パイプライン加速器は該分岐のそれぞれと結合したルータと、
パイプラインバスと、
前記ルータと前記パイプラインバスとに結合したパイプラインバスインターフェースとを含む、請求項１に記載のパイプライン加速器。
【請求項７】
前記通信バスは、それぞれが各前記パイプラインユニットと結合している複数の分岐を含み、
本パイプライン加速器は該分岐のそれぞれと結合したルータと、
パイプラインバスと、
前記ルータと前記パイプラインバスとに結合したパイプラインバスインターフェースと、
前記ルータと結合した第２バスとを含む、請求項１記載のパイプライン加速器。
【請求項８】
前記通信バスは前記パイプラインユニットの１つにアドレス指定されたデータを受信するように動作でき、
１つの前記ハードワイヤパイプライン回路は前記データを受領するように動作でき、
他の前記ハードワイヤパイプライン回路は前記データを拒絶するように動作できる、請求項１記載のパイプライン加速器。
【請求項９】
前記通信バスはそれぞれが各前記パイプラインユニットと結合している複数の分岐を含み、
本パイプライン加速器はそれぞれの前記分岐と結合したルータをさらに含み、
該ルータは前記パイプラインユニットの１つにアドレス処理されたデータを受信し、
前記通信バスの前記それぞれの前記分岐を介して前記１つのパイプラインユニットに前記データを提供するように動作する、請求項１記載のパイプライン加速器。
【請求項１０】
少なくとも１つの前記ハードワイヤパイプライン回路はフィールドプログラマブルゲートアレイに配置されている、請求項１記載のパイプライン加速器。
【請求項１１】
少なくとも１つの前記ハードワイヤパイプライン回路はアプリケーション特定集積回路に配置されている、請求項１記載のパイプライン加速器。
【請求項１２】
少なくとも１つの前記ハードワイヤパイプライン回路はアプリケーション特定集積回路に配置されており、少なくとも１つの前記ハードワイヤパイプライン回路はフィールドプログラムマブルゲートアレイに配置されている、請求項１記載のパイプライン加速器。
【請求項１３】
プロセッサと、
ハードワイヤパイプラインコンフィギュレーション情報を保存するように動作するパイプライン加速器形態レジストリと、
パイプライン加速器とを含む計算マシンであって、
該パイプライン加速器は、
通信バスと、
該通信バスに結合されたパイプラインバスインターフェースと、
複数のパイプラインユニットであって、それぞれが前記通信バスと結合されており、それぞれがハードワイヤパイプライン回路を備える複数のパイプラインユニットと、
前記プロセッサ、前記レジストリおよび前記パイプライン加速器の前記パイプラインバスインターフェースに結合されたパイプラインバスとを含み、
各ハードワイヤパイプライン回路は、フィールド・プログラマブルゲートアレイダイに配置されており、少なくとも他の１つのハードワイヤパイプライン回路に対して異なるクロック信号で動作し、
前記パイプラインバスは、前記プロセッサと前記パイプライン加速器との間でデータを搬送し、前記レジストリから前記パイプライン加速器に前記ハードワイヤパイプラインコンフィギュレーション情報を搬送するように動作する、計算マシン。
【請求項１４】
前記プロセッサは前記パイプラインユニットの１つを識別するメッセージを生成し、該メッセージを前記パイプラインバスに提供するように動作し、
前記パイプラインバスインターフェースは前記メッセージを前記通信バスに提供するように動作し、
それぞれの前記パイプラインユニットは前記メッセージを分析するように動作し、
識別された前記パイプラインユニットは前記メッセージを受領するように動作し、
他の前記パイプラインユニットは前記メッセージを拒絶するように動作する、請求項１３記載の計算マシン。
【請求項１５】
前記通信バスは、各前記パイプラインユニットと結合されている複数の分岐を含み、
前記プロセッサは、前記パイプラインユニットの１つを識別するメッセージを生成し、該メッセージを前記パイプラインバスに提供するように動作し、
本計算マシンは、前記分岐の各々および前記パイプラインバスインターフェースと結合し、前記パイプラインバスインターフェースから前記メッセージを受信し、そのメッセージを識別された前記パイプラインユニットに提供するように動作するルータを含む、請求項１３記載の計算マシン。
【請求項１６】
前記通信バスがそれぞれの前記パイプラインユニットと結合する複数の分岐を含み、
本計算マシンは、第２バスと、
前記分岐の各々、前記パイプラインバスインターフェースおよび前記第２バスと結合するルータとを含む、請求項１３記載の計算マシン。
【請求項１７】
前記パイプラインバスは前記プロセッサを介してパイプライン加速器コンフィギュレーションレジストリに結合している、請求項１３記載の方法。
【請求項１８】
少なくとも１つの前記パイプラインユニットはフィールドプログラマブルゲートアレイを含む、請求項１３記載の計算マシン。
【請求項１９】
少なくとも１つの前記パイプラインユニットはアプリケーション特定集積回路を含む、請求項１３記載の計算マシン。
【請求項２０】
少なくとも１つの前記パイプラインユニットはフィールドプログラマブルゲートアレイを含んでおり、少なくとも１つのパイプラインユニットはアプリケーション特定集積回路を含む、請求項１３記載の計算マシン。
【請求項２１】
プログラムインストラクションを保存するように動作するメモリと、
該メモリに結合されたプログラムインストラクションバスと、
該プログラムインストラクションバスから分離したパイプラインバスと、
該プログラムインストラクションバスおよび該パイプラインバスに結合しており、該プログラムインストラクションバスを介して前記メモリからプログラムインストラクションを検索し、該プログラムインストラクションを実行するように動作するプロセッサと、
該プログラムインストラクションバスと直接的に通信しないパイプライン加速器とを含む計算マシンであって、
前記パイプライン加速器は、
通信バスと、
前記パイプラインバスと前記通信バスとの間で結合されたパイプラインバスインターフェースと、
それぞれが前記通信バスに結合しており、それぞれがハードワイヤパイプライン回路を備える複数のパイプラインユニットとを含み、
各ハードワイヤパイプライン回路は、少なくとも他の１つのハードワイヤパイプライン回路に対して異なるクロック信号で動作する、計算マシン。
【請求項２２】
プロセッサがプログラムインストラクションバスを介してメモリからプログラムインストラクションを検索するステップと、
前記プロセッサが前記インストラクションを実行するステップと、
前記プログラムインストラクションバスから分離されたパイプラインバスを介して前記プロセッサとパイプライン加速器の複数のパイプラインユニットとの間で情報を伝達するステップとを含む方法であって、
前記パイプライン加速器は、前記プログラムインストラクションバスとは直接的に通信せずに、各パイプラインユニットは、少なくとも他の１つのパイプラインユニットに対して異なるクロック信号で動作する、方法。
【請求項２３】
前記情報はデータを含んでおり、前記情報を伝達するステップは該データを前記プロセッサから前記パイプラインユニットに送るステップと、該データを該パイプラインユニットで処理するステップとを含む、請求項２２記載の方法。
【請求項２４】
前記情報はデータを含んでおり、前記情報を伝達するステップは前記データを前記プロセッサから前記パイプライン・ユニットに送るステップと、該データを該プロセッサで処理するステップとを含む、請求項２２記載の方法。
【請求項２５】
前記情報は前記パイプライン・ユニットのアドレスを含む、請求項２２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
＜優先権の請求＞
この出願は、下記の特許文献１に対する優先権を請求するものである。
【特許文献１】米国仮出願第６０／４２２，５０３号（２００２年１０月３１日出願）
【０００２】
＜関連出願の相互参照＞
この出願は、「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された下記の特許文献２、「改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法」と題された下記の特許文献３、「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された下記の特許文献４、「プログラマブル回路、関連計算マシン、並びに、方法」と題された下記の特許文献５と関連する。
【特許文献２】米国出願第１０／６８４，１０２号
【特許文献３】米国出願第１０／６８４，０５３号
【特許文献４】米国出願第１０／６８３，９２９号
【特許文献５】米国出願第１０／６８４，０５７号
【背景技術】
【０００３】
比較的大量のデータを比較的短い期間で処理する通常の計算アーキテクチャは、処理負担を分担する多数の相互接続プロセッサを含む。処理負担を分担することによって、これら多数のプロセッサは、しばしば、所与のクロック周波数で単一プロセッサができるものよりよりも迅速にデータを処理できる。例えば、これらプロセッサの各々はデータの各部分を処理できるか、或は、処理アルゴリズムの各部分を実行できる。
【０００４】
図１は、多数プロセッサ・アーキテクチャを有する従来の計算マシン１０の概略ブロック図である。この計算マシン１０は、マスター・プロセッサ１２と、相互に通信すると共に該マスター・プロセッサとバス１６を介して通信する共同プロセッサ１４1−１４nと、遠隔装置（図１では不図示）から生データを受け取る入力ポート１８と、該遠隔装置に処理データを提供する出力ポート２０とを含む。また、計算マシン１０はマスター・プロセッサ１２に対するメモリ２２と、共同プロセッサ１４1−１４nに対する各メモリ２４1−２４nと、マスター・プロセッサ及び共同プロセッサがバス１６を介して共有するメモリ２６とを含む。メモリ２２はマスター・プロセッサ１２に対するプログラム及び作業メモリの双方の役割を果たし、各メモリ２４1−２４nは各共同メモリ１４1−１４nに対するプログラム及び作業メモリの双方の役割を果たす。共有されたメモリ２６は、マスター・プロセッサ１２及び共同プロセッサ１４がそれらの間でデータを転送すること、ポート１８を介して遠隔装置からデータを転送すること、ポート２０を介して遠隔装置にデータを転送することを可能としている。またマスター・プロセッサ１２及び共同プロセッサ１４は、マシン１０が生データを処理する速度を制御する共通クロック信号を受け取る。
【０００５】
一般に、計算マシン１０は、マスター・プロセッサ１２及び共同プロセッサ１４の間で生データの処理を効果的に分割する。ソナー・アレイ等の遠隔ソース（図１では不図示）は、ポート１８を介して、生データに対する先入れ先出し（ＦＩＦＯ）バッファ（不図示）として作用する共有メモリ２６の１つの区分に生データをロードする。マスター・プロセッサ１２はバス１６を介してメモリ２６から生データを検索して、マスター・プロセッサ及び共同プロセッサ１４はその生データを処理して、バス１６を介して必要に応じてデータをそれらの間に転送する。マスター・プロセッサ１２はその処理データを共有メモリ２６内に規定された別のＦＩＦＯバッファ（不図示）にロードし、遠隔ソースがポート２０を介してこのＦＩＦＯからその処理データを検索する。
【０００６】
演算例において、計算マシン１０は生データに対するｎ＋１個の各演算を順次実行することによって該生データを処理し、これら演算は一体的に高速フーリエ変換（ＦＦＴ）等の処理アルゴリズムを構成する。より詳細には、マシン１０はマスター・プロセッサ１２及び共同プロセッサ１４からのデータ-処理パイプラインを形成する。クロック信号の所与の周波数で、そうしたパイプラインはしばしばマシン１０が単一プロセッサのみを有するマシンよりも高速に生データを処理することを可能としている。
【０００７】
メモリ２６内における生データＦＩＦＯ（不図示）からの生データ検索後、マスター・プロセッサ１２はその生データに対して三角関数等の第１番演算を実行する。この演算は第１番結果を生み出し、それをプロセッサ１２がメモリ２６内に規定された第１番結果ＦＩＦＯ（不図示）に記憶する。典型的には、プロセッサ１２はメモリ２２内に記憶されたプログラムを実行し、そのプログラムの制御の下で上述した動作を実行する。プロセッサ１２はメモリ２２を作業メモリとしても使用し得て、当該プロセッサが第１番演算の中間期間に生成するデータを一時的に記憶する。
【０００８】
次に、メモリ２６内における第１番結果ＦＩＦＯ（不図示）からの第１番結果検索後、共同プロセッサ１４1はその第１番結果に対して対数関数等の第２番演算を実行する。この第２番演算は第２番結果を生み出し、それを共同プロセッサ１４1がメモリ２６内に規定された第２番結果ＦＩＦＯ（不図示）に記憶する。典型的には、共同プロセッサ１４1はメモリ２４1内に記憶されたプログラムを実行し、そのプログラムの制御の下で上述した動作を実行する。共同プロセッサ１４1はメモリ２４1を作業メモリとしても使用し得て、当該共同プロセッサが第２番演算の中間期間に生成するデータを一時的に記憶する。
【０００９】
次に共同プロセッサ２４2−２４nは、共同プロセッサ２４1に対して先に議論されたものと同様に、（第２番結果−第（ｎ−１）番）結果に対して（第３番演算−第ｎ番）演算を順次実行する。
【００１０】
共同プロセッサ２４nによって実行される第ｎ番演算は最終結果、即ち処理データを生
み出す。共同プロセッサ２４nはその処理データをメモリ２６内に規定された処理データ
ＦＩＦＯ（不図示）内にロードし、遠隔装置（図１では不図示）がこのＦＩＦＯからその処理データを検索する。
【００１１】
マスター・プロセッサ１２及び共同プロセッサ１４は処理アルゴリズムの種々の演算を同時に実行するので、計算マシン１０は、しばしば、種々の演算を順次実行する単一プロセッサを有する計算マシンよりも生データを高速に処理することができる。詳細には、単一プロセッサは、生データから成る先行集合に対する全（ｎ＋１）個の演算を実行するまで、生データから成る新しい集合を検索できない。しかし、以上に議論したパイプライン技術を用いて、マスター・プロセッサ１２は第１演算だけを実行後に生データから成る新しい集合を検索できる。結果として、所与のクロック周波数でこのパイプライン技術は、単一プロセッサ・マシン（図１では不図示）と比較して約ｎ＋１倍だけマシン１０が生データを処理する速度を増大することができる。
【００１２】
代替的には、計算マシン１０は、生データに対するＦＦＴ等の処理アルゴリズムの（ｎ
＋１）例を同時に実行することによって該生データを並列して処理し得る。即ち、もしそのアルゴリズムが先行する例において先に記載されたような（ｎ＋１）個の順次演算を含めば、マスター・プロセッサ１２及び共同プロセッサ１４の各々は生データからそれぞれが成る各集合に対して、順次、全（ｎ＋１）個の演算を実行する。その結果として、所与のクロック周波数で、先のパイプライン技術と同様のこの並列処理技術は、単一プロセッサ・マシン（図１では不図示）と比較して約ｎ＋１倍だけマシン１０が生データを処理する速度を増大することができる。
【００１３】
残念ながら、計算マシン１０は単一プロセッサ・計算マシン（図１では不図示）と比べてより迅速にデータを処理できるが、マシン１０のデータ処理速度はしばしばプロセッサ・クロックの周波数より非常に小さい。詳細には、計算マシン１０のデータ処理速度はマスター・プロセッサ１２及び共同プロセッサ１４がデータ処理するのに必要な時間によって制限される。簡略化のため、この速度制限の例はマスター・プロセッサ１２と連携して議論されているが、この議論は共同プロセッサ１４にも適用されることを理解して頂きたい。先に議論されたように、マスター・プロセッサ１２は所望の方式でデータを操作すべくプロセッサを制御するプログラムを実行する。このプログラムはプロセッサ１２が実行する複数の命令から成るシーケンスを含む。残念ながら、プロセッサ１２は典型的には単一命令を実行するために多数のクロック・サイクルを必要とし、そしてしばしばデータの単一値を処理すべく多数の命令を実行しなければならない。例えば、プロセッサ１２が第１データ値Ａ（不図示）を第２データ値Ｂ（不図示）で乗算することを仮定する。第１クロック・サイクル中、プロセッサ１２はメモリ２２から乗算命令を検索する。第２及び第３クロック・サイクル中、プロセッサ１２はメモリ２６からＡ及びＢをそれぞれ検索する。第４クロック・サイクル中、プロセッサ１２はＡ及びＢを乗算し、そして第５クロック・サイクル中に結果としての積をメモリ２２或は２６に記憶するか、或は、その結果としての積を遠隔装置（不図示）に提供する。これは最良ケースのシナリオであり、その理由は多くの場合にプロセッサ１２はカウンタの初期化及び閉鎖等のオーバーヘッド・タスクに対して付加的なクロック・サイクルを必要とするからである。それ故に、よくてもプロセッサ１２はＡ及びＢを処理すべく５クロック・サイクルを必要とするか、或は、１データ値当たり平均２．５クロック・サイクルを必要とする。
【００１４】
結果として、計算マシン１０がデータを処理する速度は、しばしば、マスター・プロセッサ１２及び共同プロセッサ１４を駆動するクロックの周波数より非常に低い。例えば、もしプロセッサ１２は１．０ギガヘルツ（ＧＨｚ）でクロックされるが、１データ値当たり平均２．５クロック・サイクルを必要とすれば、効果的なデータ処理速度は（１．０ＧＨｚ）／２．５＝０．４ＧＨｚと同等である。この効果的なデータ処理速度は、しばしば、１秒当たり演算数の単位で特徴付けされる。それ故に、この例において、１．０ＧＨｚのクロック速度で、プロセッサ１２は０．４ギガ演算数／秒（Ｇｏｐｓ）で使用限界が定められる。
【００１５】
図２は、所与クロック周波数で且つしばしば該パイプラインがクロックされる速度と略同一速度で、プロセッサが可能であるよりは高速で典型的にはデータを処理できるハードウェアに組み込まれたデータ・パイプライン３０のブロック線図である。パイプライン３０は、プログラム命令を実行することなく、各データに対する各演算を各々が実行する演算子回路３２1−３２nを含む。即ち、所望の演算は回路３２内に「書き込み」が為されて、それがプログラム命令の必要性なしに自動的にその演算を具現化するように為す。プログラム命令の実行と関連されたオーバーヘッドを減ずることによって、パイプライン３０は所与のクロック周波数でプロセッサが可能であるよりは単位秒当たりより多くの演算を典型的には実行する。
【００１６】
例えば、パイプライン３０は所与のクロック周波数でプロセッサが可能であるよりは高速で以下の数式１をしばしば解くことができる。
Ｙ（ｘk）＝（５ｘk＋３）２xk
ここで、ｘkは複数の生データ値から成るシーケンスを表す。この例において、演算子回路３２1は５ｘkを計算する乗算器であり、回路３２2は５ｘk＋３を計算する加算器であり、そして回路３２n（ｎ＝３）は（５ｘk＋３）２xkを計算する乗算器である。
【００１７】
第１クロック・サイクルｋ＝１中、回路３２1はデータ値ｘ1を受け取って、それを５で乗じて、５ｘ1を生成する。
【００１８】
第２クロック・サイクルｋ＝２中、回路３２2は回路３２1から５ｘ1を受け取って、３を加えて、５ｘ1＋３を生成する。またこの第２クロック・サイクル中に回路３２1は５ｘ2を生成する。
【００１９】
第３クロック・サイクルｋ＝３中、回路３２3は回路３２2から５ｘ1＋３を受け取って、２x1で乗じて（効果としては、ｘ1だけ５ｘ1＋３を左シフトする）、第１結果（５ｘ1＋３）２x1を生成する。またこの第３クロック・サイクル中に回路３２1は５ｘ3を生成し、回路３２2は５ｘ2＋３を生成する。
【００２０】
このようにしてパイプライン３０は、全ての生データ値が処理されるまで、引き続く生データ値ｘkの処理を続行する。
【００２１】
結果として、生データ値ｘ1の受け取り後の２つのクロック・サイクルの遅延、即ち、この遅延はパイプライン３０の待ち時間としばしば呼称され、パイプラインは結果（５ｘ1＋３）２x1を生成し、その後、１つの結果を生成する、即ち各クロック・サイクル毎に（５ｘ2＋３）２x2、（５ｘ3＋３）２x3、・・・、５ｘn＋３）２xnを生成する。
【００２２】
待ち時間を無視して、パイプライン３０はこうしてクロック速度と同等のデータ処理速度を有する。比較して、マスター・プロセッサ１２及び共同プロセッサ１４（図１）が先の例におけるようにクロック速度の０．４倍であるデータ処理速度を有すると仮定すれば、パイプライン３０は、所与のクロック速度で、計算マシン１０（図１）よりも２．５倍高速でデータを処理できる。
【００２３】
更に図２で参照されるように、設計者はフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）等のプログラマブル・ロジックＩＣ（ＰＬＩＣ）にパイプライン３０を具現化することを選ぶ可能性があり、その理由はＰＬＩＣが特殊用途ＩＣ（ＡＳＩＣ）が為すよりも多くの設計及び変更の柔軟性を許容するからである。ＰＬＩＣ内にハードウェアに組み込まれた接続を構成するため、設計者はＰＬＩＣ内に配置された相互接続構成レジスタを単に所定バイナリー状態に設定する。全てのこうしたバイナリー状態の組み合わせはしばしば「ファームウェア」と呼称される。典型的には、設計者はこのファームウェアをＰＬＩＣと結合された不揮発性メモリ（図２では不図示）内にロードする。ＰＬＩＣを「ターンオン」すると、それはファームウェアをそのメモリから相互接続構成レジスタにダウンロードする。それ故に、ＰＬＩＣの機能を変更すべく、設計者は単にそのファームウェアを変更して、ＰＬＩＣがその変更されたファームウェアを相互接続構成レジスタにダウンロードすることを可能とする。ファームウェアを単に変更することによってＰＬＩＣを変更する能力は、モデル作成段階中や「フィールド内」にパイプライン３０をアップグレードするために特に有用である。
【００２４】
残念ながら、ハードウェアに組み込まれたパイプライン３０は重要な意思決定、特に入れ子意思決定を引き起こすアルゴリズムを実行すべき最良の選択でない可能性がある。プロセッサは、典型的には、入れ子意思決定命令（例えば、「もしＡであれば、Ｂを為し、またもしＣであれば、Ｄを為し、・・・、またｎを為し等々」のように、入れ子条件命令）を、比肩する長さの演算命令（例えば、「Ａ＋Ｂ」）を実行できる程に高速に実行できる。しかしパイプライン３０は、比較的単純な決定（例えば、「Ａ＞Ｂ？」）を効率的に為し得るが、典型的にはプロセッサができる程に効率的に入れ子決定（例えば、「もしＡであれば、Ｂを為し、またもしＣであれば、Ｄを為し、・・・またｎを為す」）を為すことができない。この非効率性の１つの理由は、パイプライン３０はほんの僅かなオンボード・メモリしか持たないことがあり、したがって外部作業／プログラム・メモリ（不図示）にアクセスすることを必要とすることがあるからである。そして、こうした入れ子決定を実行すべくパイプライン３０を設計することができるが、必要とされる回路のサイズ及び複雑性はしばしばそうした設計を非現実的に為し、特にアルゴリズムが多数の種々の入れ子決定を含む場合にそうである。
【００２５】
結果として、プロセッサは典型的には重要な意思決定を必要とする用途において使用され、ハードウェアに組み込まれたパイプラインは殆ど意思決定が為されないか或は意思決定されない「ナンバークランチング（数値データ処理）」用途に典型的には限定される。
【００２６】
更には、下記に議論されるように、典型的には、特にパイプライン３０が多数のＰＬＩＣを含む場合、図２のパイプライン３０等のハードウェアに組み込まれたパイプラインを設計／変更するよりも、図１の計算マシン１０等のプロセッサに基づく計算マシンを設計／変更することが非常に易しい。
【００２７】
プロセッサ及びそれらの周辺機器（例えば、メモリ）等の計算構成要素は、典型的には、プロセッサに基づく計算マシンを形成すべくそれら構成要素の相互接続を補助する工業規格通信インターフェースを含む。
【００２８】
典型的には、規格通信インターフェースは２つの層、即ち、物理層及びサービス層を含む。
【００２９】
物理層は、回路とこの回路のインターフェース及び動作パラメータを形成する対応回路相互接続とを含む。例えば、物理層はそれら構成要素を１つのバスに接続するピンと、それらのピンから受け取ったデータをラッチするバッファと、信号をそれらピンに駆動するドライバとを含む。動作パラメータは、ピンが受け取るデータ信号の許容可能電圧範囲と、データの書き込み及び読み取りのための信号タイミングと、動作の支援されたモード（例えば、バーストモード、ページモード）とを含む。従来の物理層はトランジスタ-トランジスタ論理（ＴＴＬ）及びＲＡＭＢＵＳを含む。
【００３０】
サービス層は、計算構成要素のデータ転送のためのプロトコルを含む。このプロトコルはデータのフォーマットと、構成要素によるフォーマット済みデータの送受信の方式とを含む。従来の通信プロトコルは、ファイル転送プロトコル（ＦＴＰ）及び伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）を含む。
【００３１】
結果として、製造業者やその他は工業規格通信インターフェースを有する計算構成要素を典型的には設定するので、そうした構成要素のインターフェースを典型的には設計できて、それを他の計算構成要素と比較的少ない労力で相互接続することができる。これは、計算マシンの他の部分の設計に設計者自信の時間を殆ど費やすことを可能として、各種構成要素を追加或は除去することによってそのマシンを変更することを可能としている。
【００３２】
工業規格通信インターフェースを支援する計算構成要素を設計することは、設計ライブラリから既存の物理層を用いることによって設計時間を節約することを可能としている。これは、設計者が構成要素を既製の計算構成要素と容易にインターフェースすることを保証するものでもある。
【００３３】
そして、共通した工業規格通信インターフェースを支援する計算構成要素を用いる計算マシンを設計することは、設計者がそれら構成要素を少しの時間及び労力で相互接続することを可能としている。それら構成要素は共通インターフェースを支援するので、設計者はそれらをシステム・バスを介して少しの設計労力で相互接続することができる。そして、その支援されたインターフェースは工業規格であるので、マシンを容易に変更することができる。例えば、システム設計が進化するに伴って種々の構成要素及び周辺機器をマシンに追加することができるか、或は、テクノロジーが進化するに伴って次世代の構成要素を追加／設計することが可能である。更には、構成要素が通常の工業規格サービス層を支援するので、計算マシンのソフトウェアに対応するプロトコルを具現化する既存のソフトウェア・モジュールを組み込むことができる。それ故に、インターフェース設計が本質的には既に整っているので少しの労力で構成要素をインターフェースでき、よって、マシンに所望の機能を実行させるマシンの各種部分（例えばソフトウェア）の設計に集中することができる。
【００３４】
しかし残念ながら、図２のパイプライン３０等のハードウェアに組み込まれたパイプラインを形成すべく、使用されるＰＬＩＣ等の各種構成要素に対する既知の工業規格サービス層が全くない。
【００３５】
結果として、多数のＰＬＩＣを有するパイプラインを設計すべく、多大な時間を費やし、「ゼロから」設計し且つ種々のＰＬＩＣの間の通信インターフェースのサービス層をデバッグする多大な労力を行使する。典型的には、そうしたその場限りのサービス層は種々のＰＬＩＣ間で転送されるデータのパラメータに依存する。同じように、プロセッサとインターフェースするパイプラインを設計すべく、パイプライン及びプロセッサの間の通信インターフェースのサービス層の設計及びデバッグに関して多大な時間を費やし且つ多大な労力を行使する必要がある。
【００３６】
同様に、そうしたパイプラインをＰＬＩＣを該パイプラインに追加することによって変更すべく、典型的には、その追加されたＰＬＩＣと既存のＰＬＩＣとの間の通信インターフェースのサービス層の設計及びデバッグに関して多大な時間を費やし且つ多大な労力を行使する。同じように、プロセッサを追加することによってパイプラインを変更すべく、或は、パイプラインを追加することによって計算マシンを変更すべく、パイプライン及びプロセッサの間の通信インターフェースのサービス層の設計及びデバッグに関して多大な時間を費やし且つ多大な労力を行使しなければならいであろう。
【００３７】
結果として、図１及び図２で参照されるように、多数のＰＬＩＣをインターフェースすることとプロセッサをパイプラインにインターフェースすることとの難しさのため、計算マシンを設計する際に多大な妥協を為すことがしばしば強いられる。例えば、プロセッサに基づく計算マシンでは、ナンバークランチング速度を、複雑な意思決定を為す能力に対する設計／変更の柔軟性と交換することを強いられる。逆に、ハードウェアに組み込まれたパイプラインに基づく計算マシンでは、複雑な意思決定を為す能力と設計／変更の柔軟性を、ナンバークランチング速度と交換することを強いられる。更には、多数のＰＬＩＣをインターフェースすることに関する難しさのため、少数のＰＬＩＣよりも多くのＰＬＩＣを有するパイプラインに基づくマシンを設計することはしばしば実際的ではない。その結果、実際的なパイプラインに基づくマシンはしばしば制限された機能しか有しない。そして、プロセッサをＰＬＩＣとインターフェースすることに関する難しさのため、プロセッサを１つのＰＬＩＣより多くのＰＬＩＣにインターフェースすることは実際的ではない。その結果、プロセッサ及びパイプラインを組み合わせることによって獲得される利益は最少となる。
【発明の開示】
【発明が解決しようとする課題】
【００３８】
それ故に、プロセッサに基づくマシンの意思決定を為す能力を、ハードウェアに組み込まれたパイプラインに基づくマシンのナンバークランチング速度と組み合わせることを可能とする新しい計算アーキテクチャに対する要望が生じてきている。
【課題を解決するための手段】
【００３９】
本発明の実施例に従えば、パイプライン加速器はバスと、各々がそのバスと結合されると共に少なくとも１つのハードウェアに組み込まれたパイプライン回路を含んでいる複数のパイプライン・ユニットとを含む。
【００４０】
複数のパイプライン・ユニットをパイプライン加速器に含ませることによって、単一パイプライン加速器と比較して加速器のデータ処理性能を増大することができる。更には、相互に通信すると共に他のピアと共通バスを介して通信するようにパイプライン・ユニットを設計することによって、パイプライン・ユニットの数を変えて、パイプラインのバスに対する単なる結合或は結合解除によって加速器のコンフィギュレーション及び機能を変えることができる。これは、パイプライン・ユニットの１つを変えるたび、或は、加速器内のパイプライン・ユニットの数を変えるたびに、パイプライン・ユニット・インターフェースを設計或は再設計することをなくするものである。
【発明を実施するための最良の形態】
【００４１】
図３は、本発明の一実施例に従ったピア-ベクトル・アーキテクチャを有する計算マシ
ン４０の概略ブロック線図である。ホストプロセッサ４２に加えて、ピア-ベクトル・マ
シン４０はパイプライン加速器４４を含み、それがデータ処理の少なくとも一部を実行して、図１の計算マシン１０における共同プロセッサ１４の列と効果的に置き換わる。それ故に、ホストプロセッサ４２及び加速器４４（又は以下に議論されるようにそのユニット）はデータ・ベクトルを前後に転送できる「ピア」である。加速器４４はプログラム命令を実行しないので、所与のクロック周波数で共同プロセッサの列ができるものよりも著しく高速にデータに対して数学的に集中的な演算を典型的には実行する。結果として、プロセッサ４２の意思決定能力と加速器４４のナンバークランチング能力とを組み合わせることによって、マシン４０はマシン１０等の従来の計算マシンと同一の能力を有するが、しばしばそれよりもデータをより高速に処理することができる。更には、以下に議論されるように、加速器４４にホストプロセッサ４２の通信インターフェースと互換性がある通信インターフェースを設けることが、特にプロセッサの通信インターフェースが工業規格である場合に、マシン４０の設計及び変更を補助する。そして、加速器４４が多数のパイプライン・ユニット（例えば、ＰＬＩＣに基づく回路）を含む場合、それら各ユニットに同一の通信インターフェースを設けることが、特にそれら通信インターフェースが工業規格インターフェースと互換性がある場合に、当該加速器の設計及び変更を補助する。更には、マシン４０は以下に議論されると共に先行して引用された特許出願におけるような他の長所等をも提供し得る。
【００４２】
更に図３で参照されるように、ホストプロセッサ４２及びパイプライン加速器４４に加えて、ピア-ベクトル・計算マシン４０は、プロセッサ・メモリ４６、インターフェース・メモリ４８、パイプライン・バス５０、１つ或はそれ以上のファームウェア・メモリ５２、任意選択的な生データ入力ポート５４、処理済みデータ出力ポート５８、並びに、任意選択的なルータ６１を含む。
【００４３】
ホストプロセッサ４２は処理ユニット６２及びメッセージ・ハンドラー６４を含み、プロセッサ・メモリ４６は処理ユニット・メモリ６６及びハンドラー・メモリ６８を含み、そのそれぞれがプロセッサ・ユニット及びメッセージ・ハンドラーに対するプログラム及び作業の両メモリとして役立っている。プロセッサ・メモリ４６は、加速器コンフィギュレーション・レジストリ７０及びメッセージ・コンフィギュレーション・レジストリ７２をも含み、それらが、ホストプロセッサ４２が加速器４４の機能を構成すると共に、該ホストプロセッサ４２がメッセージ・ハンドラー６４が送信及び受信するメッセージのフォーマットを構成することを可能とするそれぞれのコンフィギュレーション・データを記憶する。
【００４４】
パイプライン加速器４４は少なくとも１つのＰＬＩＣ（図４）上に配置され、プログラム命令を実行することなしに各データを処理するハードウェアに組み込まれたパイプライン７４1−７４nを含む。ファームウェア・メモリ５２は加速器４４に対するコンフィギュレーション・ファームウェアを記憶する。もし加速器４４が多数のＰＬＩＣ上に配置されたら、それらＰＬＩＣ及びそれらの各ファームウェア・メモリは多数パイプライン・ユニット内に配置され得るが、それらパイプラインは図４乃至図８と連携して以降に更に議論される。代替的には、加速器４４は少なくとも１つのＡＳＩＣ上に配置され得て、そのＡＳＩＣがひとたび形成されたならば構成不可能である内部相互接続を有し得る。この代替例において、マシン４０はファームウェア・メモリ５２を省略し得る。更には、加速器４４が多数パイプライン７４1−７４nを含んで示されているが、ただ１つのパイプラインを含み得る。加えて、図示されていないが、加速器４４はディジタル信号プロセッサ（ＤＳＰ）等の１つ或はそれ以上のプロセッサを含み得る。更には、図示されていないが、加速器４４はデータ入力ポート及び／或はデータ出力ポートを含み得る。
【００４５】
そしてホストプロセッサ４２及びパイプライン加速器４４は種々のＩＣ上に配置されているように議論されるが、ホストプロセッサ及びパイプライン加速器は同一のＩＣ上に配置され得る。
【００４６】
ピア-ベクトル・マシン４０の一般動作は、先行して引用された「改善された計算アー
キテクチャ、関連システム、並びに、方法」と題された特許文献２に議論されており、ホストプロセッサ４２の構造及び動作は、先行して引用された「改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法」と題された特許文献３に議論されており、パイプライン加速器４４の構造及び動作は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４と図４乃至図８と連携された以下に議論されている。
【００４７】
図４は、本発明の一実施例に従った図３のパイプライン加速器４４のユニット７８のブロック線図である。
【００４８】
加速器４４は１つ或はそれ以上のそうしたパイプライン・ユニット７８を含み（図４に１つのみ示される）、それらの各々はＰＬＩＣ或はＡＳＩＣ等のパイプライン回路８０を含む。以下で更に議論されると共に先行して引用された 「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４にあるように、各パイプライン・ユニット７８はホストプロセッサ４２（図３）の「ピア」であると共に加速器４４の他のパイプライン・ユニットの「ピア」である。即ち、各パイプライン・ユニット７８はホストプロセッサ４２或は他の任意のパイプライン・ユニットと直接通信できる。よって、このピア-ベクトル・アーキテクチャは、もしパイプライン・ユニット７８の全てがマスターパイプライン・ユニット（不図示）或はホストプロセッサ４２等の中央箇所を通じて通信した場合に生ずることとなるデータ「ボトルネック」を防止する。更にはこのアーキテクチャは、マシンに対する重大な変更なしに、ピア-ベクトル・マシン４０（図３）からピアを追加するか或はピアを除去することを可能とする。
【００４９】
パイプライン回路８０は通信インターフェース８２を含み、それが、ホストプロセッサ４２（図３）等のピアと、通信シェル８４を介したハードウェアに組み込まれたパイプライン７４1−７４n、パイプライン・コントローラ８６、例外マネージャ８８、並びに、コンフィギュレーション・マネージャ９０等の、パイプラインの他の構成要素との間でデータを転送する。パイプライン回路８０は工業規格バス・インターフェース９１及び通信バス９３をも含み得て、インターフェース８２をインターフェース９１と接続する。代替的は、インターフェース９１の機能は通信インターフェース８２内に含まれ得て、バス９３は省略されえる。
【００５０】
パイプライン回路８０の複数の構成要素を複数の個別モジュールとして設計することによって、そのパイプライン回路の設計をしばしば簡略化することができる。即ち、それら構成要素の各々を個別に設計及び試験することができ、次いでそれらを統合するものであり、それはソフトウェア或はプロセッサに基づく計算システム（図１のシステム１０等）を設計する際に行われることと非常に似ている。加えて、これら構成要素、特に設計者が他のパイプライン設計においてたぶん頻繁に使用するような通信インターフェース８２等の構成要素を規定するハードウェア記述言語（ＨＤＬ）をライブラリ（不図示）内に記憶でき、よって同一構成要素を使用する将来のパイプライン設計の設計及び試験の時間を低減する。即ち、ライブラリからＨＤＬを使用することによって、設計者はスクラッチから先行して具現化された構成要素を再設計する必要性がなく、よって設計者の努力を先行して具現化されていない構成要素の設計に対して、或は、先行して具現化された構成要素の変更に対して集中できる。更には、ライブラリ内にパイプライン回路８０の多数バージョン或はパイプライン加速器４４の多数バージョンを画成するＨＤＬを記憶できて、既存の設計の中から精選及び選択できるように為す。
【００５１】
図４で更に参照されるように、通信インターフェース８２はメッセージ・ハンドラー６４（図３）によって認識されるフォーマットで（ここではバス・インターフェース９１を介して）データを送受信し、よってピア-ベクトル・マシン４０（図３）の設計及び変更を典型的には補助する。例えば、もしデータ・フォーマットが高速Ｉ／Ｏフォーマット等の工業規格であれば、ホストプロセッサ４２及びパイプライン・ユニット７８の間にカスタムインターフェースを設計する必要がない。更には、パイプライン・ユニット７８を非バス・インターフェースの代わりにパイプライン・バス５０を介してホストプロセッサ４２（図３）等の他のピアと通信させることを可能することによって、パイプライン・ユニットが追加或は除去されるたびにスクラッチから非バス・インターフェースを再設計する代わりにパイプライン・バスにそれら（又はそれらを保持する回路カード）を単に接続或は接続解除することによってパイプライン・ユニットの数を変更できる。
【００５２】
ハードウェアに組み込まれたパイプライン７４1−７４nは図３と連携して先に議論されたように且つ先行して引用された「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された特許文献２や「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４におけるように、データに対する各演算を実行し、通信シェル８４はパイプラインをパイプライン回路８０の他の構成要素やパイプライン・ユニット７８の他の回路（以下に議論されるデータ・メモリ９２等）にインターフェースする。
【００５３】
コントローラ８６はＳＹＮＣ信号や他のピアからの特別なパイプライン-バス通信（即ち、「事象（event）」）に応じてハードウェアに組み込まれたパイプライン７４1−７４nを同期させ、パイプラインがそれらの各データ演算を実行するシーケンスをモニタし制御する。例えば、ホストプロセッサ４２等のピアはＳＹＮＣ信号を脈動する（pulse）か、パイプライン・ユニット７８に事象をパイプライン・バス５０を介して送信して、ピアがデータ・ブロックをパイプライン・ユニットに送信し終えたことを示し、そして、ハードウェアに組み込まれたパイプライン７４1−７４nにこのデータを処理し始めさせる。典型的にはＳＹＮＣ信号が使用されてタイムクリティカルな演算を同期し、事象が使用されて、非タイムクリティカルな演算を同期する。典型的には、事象はしばしば「ドアベル」と呼称されるデータ無し通信である。しかし事象はデータを含み得て、その場合しばしば「事象メッセージ」と呼称される。ＳＹＮＣ信号及び事象は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【００５４】
例外マネージャ８８はハードウェアに組み込まれたパイプライン７４1−７４n、通信インターフェース８２、通信シェル８４、コントローラ８６、並びに、バス・インターフェース９１（もしあれば）の状況をモニタし、ホストプロセッサ４２（図３）に例外を報告する。例えば、もし通信インターフェース８２におけるバッファがオーバーフローすれば、例外マネージャ８８はこれをホストプロセッサ４２に報告する。例外マネージャはその例外を生んだ問題を修正するか或はその修正を試みることも可能である。例えば、オーバーフローしているバッファに対して例外マネージャ８８は、直接的或は以下に議論されるようなコンフィギュレーション・マネージャ９０を介して、そのバッファのサイズを増大し得る。
【００５５】
コンフィギュレーション・マネージャ９０はハードウェアに組み込まれたパイプライン７４1−７４n、通信インターフェース８２、通信シェル８４、コントローラ８６、例外マネージャ８８、並びに、インターフェース９１（もしあれば）のソフト・コンフィギュレーションを、ホストプロセッサ４２（図３）からのソフト-コンフィギュレーション・データに応じて設定し、これは先に引用された「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された特許文献２に議論され、ハード・コンフィギュレーションはパイプライン回路８０のトランジスタ及び回路ブロックのレベル上における実際のトポロジーを示し、ソフト・コンフィギュレーションはハード構成された構成要素の物理的パラメータ（例えば、データ幅、テーブル・サイズ）を示す。即ち、ソフト・コンフィギュレーション・データはプロセッサ（図４に不図示）のレジスタにロードされ得るプロセッサの動作モード（例えば、バースト-メモリ・モード）を設定するデータと同様である。例えばホストプロセッサ４２は、コンフィギュレーション・マネージャ９０に通信インターフェース８２におけるデータ及び事象キューの数及び各優先レベルを設定させるソフト-コンフィギュレーション・データを送信し得る。例外マネージャ８８は、コンフィギュレーション・マネージャ９０に、例えば、通信インターフェース８２におけるオーバーフローしているバッファのサイズを増大させるソフト-コンフィギュレーション・データをも送信し得る。
【００５６】
工業規格バス・インターフェース９１は、通信インターフェース８２から幾つかのインターフェース回路を効果的にオフロードすることによって、通信インターフェース８２のサイズ及び複雑性を低減する従来のバス-インターフェース回路である。それ故に、もしパイプライン・バス５０或はルータ６１（図３）のパラメータを変更することを望めば、インターフェース９１を変更するだけでよく、通信インターフェース８２を変更する必要がない。代替的には、パイプライン回路８０の外部であるＩＣ（不図示）内にインターフェース９１を配置し得る。パイプライン回路８０からインターフェース９１をオフロードすることは、例えばハードウェアに組み込まれたパイプライン７４1−７４n及びコントローラ８６の用途のパイプライン回路上のリソースを解放する。或は、先に議論されたように、バス・インターフェース９１は通信インターフェース８２の一部であり得る。
【００５７】
図４で更に参照されるように、パイプライン回路８０に加えて、加速器４４のパイプライン・ユニット７８はデータ・メモリ９２を含み、そしてもしパイプライン回路がＰＬＩＣであれば、ファームウェア・メモリ５２を含む。
【００５８】
データ・メモリ９２は、データがホストプロセッサ４２（図３）等の別のピアとハードウェアに組み込まれたパイプライン７４1−７４nとの間を流れる時にそのデータをバッファするものであり、ハードウェアに組み込まれたパイプラインに対する作業メモリでもある。通信インターフェース８２はデータ・メモリ９２を（通信バス９４及びもしあれば工業規格インターフェース９１を介して）パイプライン・バス５０とインターフェースし、通信シェル８４はそのデータ・メモリをハードウェア・パイプライン７４1−７４nとインターフェースする。
【００５９】
データ・メモリ９２（或はパイプライン・ユニット７８の他の部分）はパイプライン・ユニットのプロファイルをも記憶し得る。そのプロファイルはホストプロセッサ４２（図
３）に対してパイプライン・ユニット７８を充分に記述して、それ自体、パイプライン・ユニット、ピア-ベクトル・マシン４０（図３）の他のピアを相互通信用に適切に構成する。例えば、プロファイルはパイプライン・ユニット７８が履行することができるデータ演算や通信プロトコルを識別できる。結果として、ピア-ベクトル・マシン４０の初期化中にプロファイルを読むことによって、ホストプロセッサ４２はメッセージ・ハンドラー６４（図３）を適切に構成できて、パイプライン・ユニット７８との通信を為す。この技術は「プラグ・アンド・プレイ」技術と類似しており、それによってコンピュータはそれ自体を構成できて、ディスク・ドライブ等の新しくインストールされた周辺機器と通信する。ホストプロセッサ４２及びパイプライン・ユニット７８のコンフィギュレーションは、先行して引用された「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された特許文献２や、「プログラマブル回路、関連計算マシン、並びに、方法」と題された特許文献５に更に議論されている。
【００６０】
パイプライン回路８０がＰＬＩＣである図３と連携されて先に議論されたように、ファームウェア・メモリ５２はパイプライン回路のハード・コンフィギュレーションを設定するファームウェアを記憶する。このメモリ５２はファームウェアを加速器４４の構成中にパイプライン回路８０にロードし、加速器４４の構成中或はその後に通信インターフェース８２を介してホストプロセッサ４２（図３）から変更されたファームウェアを受信し得る。ファームウェアのローディング及び受信は、先行して引用された「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された特許文献２、「改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法」と題された特許文献３、 「プログラマブル回路、関連計算マシン、並びに、方法」と題された特許文献５に更に議論されている。
【００６１】
図４で更に参照されるように、パイプライン・ユニット７８は回路ボード或はカード９８を含み得て、その上にパイプライン回路８０、データ・メモリ９２、並びに、ファームウェア・メモリ５２が配置されている。この回路ボード９８は、ドーターカードがパーソナルコンピュータ（不図示）のマザーボードのスロット内にプラグインされ得ることと非常によく似て、パイプライン-バス・コネクタ（不図示）内にプラグインされ得る。図示されていないが、パイプライン・ユニット７８は従来のＩＣや電力調整器及び電力シーケンサ等の構成要素を含み得て、これらＩＣ／構成要素も公知であるようにカード９８上に配置され得る。
【００６２】
パイプライン・ユニット７８の構造及び動作の更なる詳細は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に議論されている。
【００６３】
図５は、本発明の別の実施例に従った図３のパイプライン加速器４４のパイプライン・
ユニット１００のブロック線図である。パイプライン・ユニット１００は、そのパイプライン１００が多数のパイプライン回路８０、ここでは２つのパイプライン回路８０ａ及び８０ｂを含むことを除いて、図４のパイプライン・ユニット７８と類似している。パイプライン回路８０の数を増大することは、典型的には、ハードウェアに組み込まれたパイプライン７４1−７４nの数ｎの増大、よってパイプライン・ユニット７８と比較してのパイプライン・ユニット１００の機能に関する増大を可能とする。更には、パイプライン・ユニット１００はパイプ回路８０ａに対するファームウェア・メモリ５２ａとパイプライン回路８０ｂに対するファームウェア・メモリ５２ｂとを含む。代替的には、パイプライン回路８０ａ及び８０ｂは単一ファームウェア・メモリを共有し得る。
【００６４】
パイプライン・ユニット１００において、サービス構成要素、即ち、通信インターフェース８２、コントローラ８６、例外マネージャ８８、コンフィギュレーション・マネージャ９０、並びに、任意選択的な工業規格バス・インターフェース９１はパイプライン回路８０ａ上に配置され、パイプライン７４1−７４n及び通信シェル８４はパイプライン回路８０ｂ上に配置される。サービス構成要素及びパイプライン７４1−７４nを個別のパイプライン回路８０ａ及び８０ｂ上に位置決めすることによって、サービス構成要素及びパイプラインが同一パイプライン回路上に位置決めされる場合で可能であるものよりも、より多くの数ｎのパイプライン及び／或はより複雑なパイプラインを含むことができる。代替的には、パイプライン７４1−７４nをインターフェース８２及びコントローラ８６にインターフェースする通信シェル８４の部分はパイプライン回路８０ａ上に配置され得る。
【００６５】
パイプライン・ユニット１００の構造及び動作の更なる詳細は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に議論されている。
【００６６】
図６は、本発明の実施例に従った多数のパイプライン・ユニット７８（図４）或は１００（図５）を有する図３の加速器４４のブロック線図である。説明の簡略化のために、加速器４４は多数のパイプライン・ユニット７８1−７８nを有するように議論されるが、該加速器が多数のパイプライン・ユニット１００或はユニット７８及び１００の組み合わせを含み得ることを理解して頂きたい。多数のパイプライン・ユニット７８を含むことによって、ただ１つのパイプライン・ユニットを有する加速器と比較して加速器４４の機能及び処理能力を増大できる。更には、各パイプライン・ユニット７８が典型的には一般的な工業規格インターフェースを有するので、パイプライン・ユニットを追加或は削除することで加速器４４を容易に変更できる。
【００６７】
多数のパイプライン加速器４４の１つの具現化例において、工業規格バス・インターフェース９１は各パイプライン・ユニット７８1−７８nから省略され、単一の（パイプライン・ユニットに対して）外部のインターフェース９１及び通信バス９４はパイプライン・ユニットの全てに共通している。単一外部バス・インターフェース９１を含むことは、図４と連携されて先に議論されたようにパイプライン回路８０（図４）上のリソースを解放する。パイプライン・ユニット７８1−７８nは全て単一回路ボード（図６には不図示）上に配置され得るか、各パイプライン・ユニットは各回路ボード上に配置され得るか、或は、グループ分けされた多数のパイプライン・ユニットが多数の回路ボード上にそれぞれ配置され得る。後者の２つの具現化例において、バス・インターフェース９１は回路ボードの内の１つの上に配置される。代替的には、パイプライン・ユニット７８1−７８nは、その各々が図４と連携されて先に議論されたように各工業規格バス・インターフェース９１を含み得て、よってその各々がパイプライン・バス５０或はルータ６１（図３）と直に通信し得る。この具現化例において、パイプライン・ユニット７８1−７８nは先に議論されたように単一或は多数の回路ボード上に配置され得る。
【００６８】
パイプライン・ユニット７８1−７８nの各々はホストプロセッサ４２（図３）や相互のピアである。即ち、各パイプライン・ユニット７８は通信バス９４を介して他の任意のパイプライン・ユニットと直に通信でき、通信バス９４、バス・インターフェース９１、ルータ６１（もしあれば）、並びに、パイプライン・バス５０を介してホストプロセッサ４２と通信できる。代替的には、パイプライン・ユニット７８1−７８nの各々は各バス・インターフェース９１を含み、各パイプライン・ユニットはルータ６１（もしあれば）及びパイプライン・バス５０を介してホストプロセッサ４２と直に通信できる。
【００６９】
以下、多数のパイプライン・ユニット加速器４４の動作は２つの例で説明される。
【００７０】
第１例において、パイプライン・ユニット７８1はデータをパイプライン７８nに転送し、それがタイムクリティカル方式でデータを処理し、よって、パイプライン・ユニット７８1及び７８nは、１つ或はそれ以上のＳＹＮＣ信号を用いてデータ転送及び処理を同期する。典型的には、ＳＹＮＣ信号はタイムクリティカルな機能をトリガーするには充分に速いが、大きなハードウェア・リソースを必要とし、比較して、典型的には事象はタイムクリティカルな機能をトリガーするには充分に速くないが、著しくより少ないハードウェア・リソースを必要とする。先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４で議論されたように、ＳＹＮＣ信号はピアからピアに直に経路指定されるので、例えばパイプライン・バス５０（図３）や通信バス９４をトラバースする事象よりもより迅速に機能をトリガーできる。しかし、それは個別に経路指定されるので、ＳＹＮＣ信号は、パイプライン回路８０（図４）の経路指定ライン及びバッファ等の専用回路を必要とする。逆に、事象は既存のデータ転送下部構造（例えば、パイプライン・バス５０及び通信バス９４）を用いるので、より少ない専用ハードウェア・リソースを必要とする。結果として、設計者は全てであるが殆どのタイムクリティカル機能をトリガーするのに事象を使用しがちである。
【００７１】
第１として、パイプライン・ユニット７８1はデータを通信バス９４に駆動することによってパイプライン・ユニット７８nに該データを送信する。典型的には、パイプライン・ユニット７８1はデータとパイプライン・ユニット７８nのアドレスを含むヘッダーとを含むメッセージを生成する。もしパイプライン・ユニット７８1がデータを多数のパイプライン・ユニット７８に送信するつもりであれば、２つの方法の内の１つでそれを実行し得る。詳細には、パイプライン・ユニット７８1は個別メッセージを仕向先パイプライン・ユニット７８の各々に順次送信し得て、各メッセージは各仕向先ユニットのアドレスを含むヘッダーを含む。代替的には、パイプライン・ユニット７８1は単一メッセージ・メモリ内にデータと各仕向先パイプライン・ユニットのアドレスを含むヘッダーとを含ませることによって、仕向先パイプライン・ユニット７８の各々にデータを同時に送信し得る。データの送信は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【００７２】
次に、パイプライン・ユニット７８nはデータを受信する。パイプライン・ユニット７８1−７８nは、各々、共通通信バス９４と結合され、各パイプライン・ユニット７８2−７８nはデータの意図された受取人であるか否かを決定する。例えば、各パイプライン・ユニット７８2−７８nはそのアドレスがメッセージのヘッダー内に含まれているかを決定する。この例において、ユニット７８2−７８n-1は、それらがデータの意図された受取人でないことを決定し、よってそのデータを無視、即ち、そのデータをそれらのデータ・メモリ９２（図４）にロードしない。逆に、パイプライン・ユニット７８nはそれがデータの意図された受取人であることを決定し、よってそのデータをそのデータ・メモリ９２にロードする。データの受信は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【００７３】
次いで、パイプライン・ユニット７８nが受信データを処理する準備を為すと、パイプライン・ユニット７８1等のピア或は外部装置（不図示）がＳＹＮＣ信号を脈動して、パイプライン・ユニット７８nにデータを適時に処理させる。ＳＹＮＣ信号を脈動するピア／装置が、パイプライン・ユニット７８nが受信データを処理する準備をいつ為したかを決定し得る多数の技術が存在する。例えば、ピア／装置は、パイプライン／ユニット７８1のデータ送信後、所定時間でＳＹＮＣ信号を単に脈動し得る。おそらく、この所定時間は、パイプライン・ユニット７８nにデータを受信させてそれをそのデータ・メモリ９２（図４）にロードさせるに充分な長さである。代替的にはパイプライン・ユニット７８nはＳＹＮＣ信号を脈動して、ピア／装置に受信データを処理する準備が為されたことを知らせる。
【００７４】
次に、脈動されたＳＹＮＣ信号に応じて、パイプライン・ユニット７８nは受信データを処理する。パイプライン・ユニットによるデータの処理は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【００７５】
次いで、パイプライン・ユニット７８nがデータの処理を終了すると、ピア、外部装置（不図示）、或は、ユニット７８n自体は、ＳＹＮＣ信号を脈動し得て、パイプライン・ユニット７８1により多くのデータを送信するように通知する。
【００７６】
第２例において、ホストプロセッサ４２（図３）はデータをパイプライン７８nに転送し、それがそのデータを非タイムクリティカル方式で処理し、よってホストプロセッサ及びパイプライン・ユニット７８nは１つ或はそれ以上の事象を用いてデータ転送及び処理を先に議論された理由から同期する。
【００７７】
第１として、ホストプロセッサ４２（図３）はデータをパイプライン・バス５０（図３）に駆動することによってパイプライン・ユニット７８nに該データを送信する。典型的には、ホストプロセッサ４２はデータとパイプライン・ユニット７８nのアドレスを含むヘッダーとを含むメッセージを生成する。もしホストプロセッサ４２がそのデータを多数のパイプライン・ユニット７８に送信するつもりであれば、第１例と連携されて先に議論された２つの方法の内の１つでそれを実行し得る。
【００７８】
次に、パイプライン・ユニット７８nはパイプライン・バス５０（図３）から工業規格バス・インターフェース９１及び通信バス９４を介してデータを受信する。パイプライン・ユニット７８1−７８nが、各々、共通通信バス９４と結合されているので、各パイプライン・ユニットはそれが第１例と連携して先に議論された方式でデータの意図された受取人であるかを決定する。
【００７９】
次いで、パイプライン・ユニット７８nが受信データを処理する準備を為すと、ホストプロセッサ４２（図３）等のピア或は外部装置（不図示）はパイプライン・バス５０上か或は通信バス９４の直上に事象を生成して、パイプライン・ユニット７８nにそのデータを適時に処理させる。事象を生成するピア／装置が、パイプライン・ユニット７８nが受信データを処理する準備をいつ為したかを決定し得る多数の技術が存在する。例えば、ピア／装置は、ホストプロセッサ４２のデータの送信後、所定時間で事象を単に生成し得る。おそらく、この所定時間は、パイプライン・ユニット７８nにデータを受信させてそれをそのデータ・メモリ９２（図４）にロードさせるに充分な長さである。代替的にはパイプライン・ユニット７８nは事象を生成して、ピア／装置に受信データを処理する準備が為されたことを知らせる。
【００８０】
次に、パイプライン・ユニット７８nは事象を受信する。事象の受信は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【００８１】
次いで、受信事象に応じて、パイプライン・ユニット７８nは受信データを処理する。パイプライン・ユニット７８nによるデータの処理は、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【００８２】
次に、パイプライン・ユニット７８nがデータの処理を終了すると、ピア、外部装置（不図示）、或は、ユニット７８n自体は、事象を生成し得て、ホストプロセッサ４２（図３）により多くのデータを送信するように通知する。
【００８３】
図６で更に参照されるように、加速器４４の代替的具現化例が想定されている。例えば、先に議論された動作の第１及び第２の例はＳＹＮＣ信号及び事象をそれぞれ排他的に使用するが、加速器４４はＳＹＮＣ信号及び事象の双方を組み合わせて使用できることが想定されている。更には、他のピアは各データ・メモリ９２内へのデータの単なるバルク記憶用に多数のパイプライン・ユニット７８或は１００の内の１つ或はそれ以上を使用できる。加えて、設計者はホストプロセッサ４２（図３）を、ホストプロセッサの機能を実行する「ホスト」ピアを一緒に形成するパイプライン・ユニット７８或は１００の内の１つ或はそれ以上と置き換え可能である。更には、パイプライン・ユニット７８或は、１００の１つ或はそれ以上は１つ或はそれ以上のメッセージ分配ピアとして作用し得る。例えば、ホストプロセッサ４２が多数の加入者ピアへの伝送のためのメッセージを生成することを仮定する。ホストプロセッサ４２はそのメッセージをメッセージ分配ピアに送信し、該ピアがそのメッセージを加入者ピアの各々に分配する。結果として、ホストプロセッサ４２ではなくそのメッセージ分配ピアは、メッセージ分配の負荷を請け負い、よってホストプロセッサによってより多くの時間とリソースとを他のタスクに充てさせることを可能とする。
【００８４】
図７は、本発明の別の実施例に従った多数のパイプライン・ユニット７８（図４）或は１００（図５）を有する加速器４４（図３）のブロック線図である。
【００８５】
図７の加速器４４は、図７の加速器４４が、パイプライン・ユニット７８1−７８nと、ホストプロセッサ４２（図３）等の他のピアやパイプライン・バス５０（図３）と結合されている装置（不図示）との間でのデータの経路指定に対する通信バス・ルータ１１０を含むことを除いて、図６の加速器４４と同一である。説明の簡略化のため、図７の加速器４４は多数のパイプライン・ユニット７８1−７８nを有するように議論されるが、その加速器は多数のパイプライン・ユニット１００或はユニット７８及び１００の組み合わせを含み得ることを理解して頂きたい。
【００８６】
通信バス・ルータ１１０は通信バス９４の各分岐９４1−９４nを介してパイプライン・ユニット７８1−７８nと結合されると共に、バス１１２を介して工業規格バス・インターフェース９１（もしあれば）と結合されている。代替的には、図６と連携して先に議論されたように、各パイプライン・ユニット７８1−７８nはボード上に各インターフェース９１を含み得て、よって外部インターフェース９１は省略されることができて、ルータ１１０は図３のパイプライン・バス５０（或はもしあればルータ６１）と直に結合されている。
【００８７】
ルータ１１０は、パイプライン・バス５０（図３）から各仕向先パイプライン・ユニット或は複数の同ユニット７８１―７８ｎまで信号を経路指定すると共に、ソース・パイプライン・ユニットから１つ或はそれ以上の仕向先パイプライン・ユニット若しくはパイプライン・バスまで信号を経路指定する。結果として、ルータ１１０はパイプライン・ユニット７８1−７８nの各々から通信バス９４上の信号がそのパイプライン・ユニットに向けて意図されているかを決定する機能をオフロードする。このオフローディングは各パイプライン・ユニット７８1−７８nのパイプライン回路８０上のリソースを解放し得て、よって各パイプライン・ユニットの機能に関しての増大を許容し得る。
【００８８】
図７で更に参照されるように、ルータ１１０を伴う多数のパイプライン・ユニット加速器４４の動作を以下に説明する。この動作は図６の加速器４４に対しての先に記載されたものと類似しているので、以下の説明は図６及び図７の加速器間の動作差を強調している。
【００８９】
第１例において、パイプライン・ユニット７８1はデータをパイプライン・ユニット７８nに転送し、それがそのデータをタイムクリティカル方式で処理し、よってパイプライン・ユニット７８1及び７８nは１つ或はそれ以上のＳＹＮＣ信号を用いて、図６の第１例と連携して先に議論されたようにそのデータ転送及び処理を同期する。
【００９０】
第１として、パイプライン・ユニット７８1はデータを通信バスの分岐９４1に駆動することによって該データをパイプライン・ユニット７８nに送信する。典型的には、パイプライン・ユニット７８1は、データとパイプライン・ユニット７８nのアドレスを含むヘッダーとを含むメッセージを生成する。
【００９１】
次に、ルータ１１０はデータを受信し、そのデータの仕向先がパイプライン・ユニット７８nであることを決定し、そのデータを通信バスの分岐９４nに駆動する。典型的には、ルータ１１０は、データを含むメッセージのヘッダーを分析して、該ヘッダーから仕向先アドレスを抽出することによってデータの仕向先を決定する。結果として、ルータ１１０はデータの適切な仕向先を決定するので、パイプライン・ユニット７８nはルータからのデータをデータの意図された受取人であるかを決定することなしに単に受領できる。代替的には、パイプライン７８nはそれがデータの意図された受取人であるかを決定し得て、もしそれが意図された受取人でなければ例外を生成する（先行して引用された「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された特許文献２、「改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法」と題された特許文献３、「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４で議論されたように）。パイプライン・ユニット７８nはこの例外をルータ１１０、工業規格バス・インターフェース９１（もしあれば）、ルータ６１（もしあれば）、並びに、パイプライン・バス５０（図３）を介してホストプロセッサ４２（図３）に送信できる。
【００９２】
次いで、パイプライン・ユニット７８nはバス分岐９４nからデータをロードする。パイプライン・ユニットによるデータのローディングは、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４で更に議論されている。
【００９３】
次に、パイプライン・ユニット７８nが受信データを処理する準備を為すと、パイプライン・ユニット７８1等のピア或は外部装置（不図示）がＳＹＮＣ信号を脈動して、図６の第１例と連携されて先に議論されたようにパイプライン・ユニット７８nにそのデータを適時に処理させる。
【００９４】
次いで、脈動ＳＹＮＣ信号に応じて、パイプライン・ユニット７８nは図６の第１例と連携されて先に議論されたように受信データを処理する。
【００９５】
次に、パイプライン・ユニット７８nがデータの処理を終了すると、ピア、外部装置（不図示）、或は、ユニット７８n自体は、ＳＹＮＣ信号を脈動し得て、パイプライン・ユニット７８1により多くのデータを送信するように通知する。
【００９６】
第２例において、ホストプロセッサ４２（図３）はデータをパイプライン７８nに転送し、それがそのデータを非タイムクリティカル方式で処理し、よってホストプロセッサ及びパイプライン・ユニット７８nは１つ或はそれ以上の事象を用いて、図６と連携して先に議論された理由のため、そのデータの転送及び処理を同期する。
【００９７】
第１として、ホストプロセッサ４２（図３）はデータをパイプライン・バス５０（図３）に駆動することによってパイプライン・ユニット７８nに送信する。典型的には、ホストプロセッサ４２は、データとパイプライン・ユニット７８nのアドレスを含むヘッダーとを含むメッセージを生成する。
【００９８】
次に、ルータ１１０はそのデータを工業規格バス・インターフェース９１（もしあれば）及びバス１１２を介してパイプライン・バス５０（図３）から受信する。
【００９９】
次いで、ルータ１１０はそのデータの仕向先がパイプライン・ユニット７８nであることを決定し、そのデータを通信バスの分岐９４nに駆動する。典型的には、ルータ１１０は図７の第１例と連携して先に議論されたようにヘッダーの仕向先を決定する。結果として、ルータ１１０はデータの適切な仕向先を決定し、パイプライン・ユニット７８nはルータからデータをデータの意図された受取人であることを決定することなしに単に受領することができる。代替的には、パイプライン７８nはそれがデータの意図された受取人であるかを決定し得て、もしそれが意図された受取人でなければ例外を生成し（先行して引用された「改善された計算アーキテクチャ、関連システム、並びに、方法」と題された特許文献２、「改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法」と題された特許文献３、「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４で議論されたように）、図６の第２例と連携して先に議論されたように、その例外をホストプロセッサ４２（図３）に送信する。
【０１００】
次に、パイプライン・ユニット７８nはバス分岐９４nからデータをロードする。パイプライン・ユニットによるデータのローディングは、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【０１０１】
次いで、パイプライン・ユニット７８nが受信データを処理する準備を為すと、ホストプロセッサ４２（図３）等のピア或は外部装置（不図示）がパイプライン・バス５０上或は通信バスの分岐９４1−９４n-1の内の１つの上に事象を生成して、ユニット７８nに図６の第２例と連携されて先に議論されたようにそのデータを適時に処理させる。
【０１０２】
次に、ルータ１１０は事象を受信して、それがパイプライン・ユニット７８nに対して意図されていることを決定し、その事象をバス分岐９４nに駆動する。
【０１０３】
次いで、パイプライン・ユニット７８nはバス分岐９４から事象をロードする。パイプライン・ユニット７８による事象のローディングは、先行して引用された「改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法」と題された特許文献４に更に議論されている。
【０１０４】
次に、受信事象に応じて、パイプライン・ユニット７８nは受信データを処理する。
【０１０５】
次いで、パイプライン・ユニット７８nがデータの処理を終了すると、ピア、外部装置（不図示）、或は、ユニット７８n自体は、事象を生成し得て、ホストプロセッサ４２（図３）により多くのデータを送信するように通知する。
【０１０６】
図７で更に参照されるように、動作の第１及び第２の例がそれぞれＳＹＮＣ信号及び事象を排他的に使用するが、加速器４４がＳＹＮＣ信号及び事象の双方の組み合わせを使用可能であることが想定されている。
【０１０７】
図８は、本発明の実施例に従った多数のパイプライン・ユニット７８（図４）或は１００（図５）の多数グループ１２０を含む図３の加速器４４のブロック線図である。パイプライン・ユニットの多数グループ１２０を含むことは加速器４４の機能を増大し、関連動作を実行するパイプライン・ユニットをグループ分けすることによって設計者に加速器の効率を増大させることを可能としている。説明の簡略化のため、図８の加速器４４は多数のパイプライン・ユニット７８を有するように議論されるが、該加速器が多数のパイプライン・ユニット１００或はユニット７８及び１００の組み合わせを含み得ることを理解して頂きたい。更には、パイプライン・ユニット７８は工業規格バス・インターフェース９１（このインターフェースはこの実施例においては外部にある）を含まないが、別の実施例では含んでもよい。
【０１０８】
加速器４４はパイプライン・ユニット７８の６つのグループ１２０1−１２０6を含み、各グループが３つのパイプライン・ユニットと、パイプライン・ユニットを相互に相互接続すると共に他のパイプライン・ユニット・グループと相互接続する各グループ内通信バス・ルータ１１０1−１１０6とを有する。加速器４４が各々３つのパイプライン・ユニット７８から成る６つのグループ１２０1−１２０6を含むように議論されているが、加速器の他の具現化例は任意数パイプライン・ユニットから成るグループの事実上の任意数を含み得て、グループの全てが同一数のパイプライン・ユニットを有する必要性はない。更には、通信バス・ルータ１１０1−１１０6は図６の加速器４４と連携されて先に議論されたように省略され得る。
【０１０９】
パイプライン・ユニット・グループ１２０1は３つのパイプライン・ユニット７８1−７８3を含み、それらが図７と連携されて先に議論されたものと類似した方式で通信バスの分岐９４1、９４2、並びに、９４3を介してグループ内通信バス・ルータ１１０1と接続されている。他のグループ１２０2−１２０6は類似である。
【０１１０】
グループ１２０1−１２０3の通信バス・ルータ１１０1−１１０3は第１レベル・バス１２６1の各分岐１２４1−１２４3を介して第１レベル・ルータ１２２1と接続されている。ルータ１２２1及びバス１２６1はパイプライン・ユニット７８1−７８9が相互に通信することを可能としている。
【０１１１】
同様に、通信バス・ルータ１１０4−１１０6は第１レベル・バス１２６2の各分岐１２８1−１２８3を介して第１レベル・ルータ１２２2と接続されている。ルータ１２２2及びバス１２６2はパイプライン・ユニット７８10−７８18が相互に通信することを可能としている。
【０１１２】
第１レベル・ルータ１２２1及び１２２2は第２レベル・バス１３４の各分岐１３２1−１３２2を介して第２レベル・ルータ１３０と接続されている。ルータ１３０及びバス１３４はパイプライン・ユニット７８1−７８18が相互に通信すること及び以下に議論されるように他のピア／装置と通信することを可能としている。
【０１１３】
パイプライン・バス５０及び第２パイプライン・バス１３６は各工業規格バス・インターフェース９１1及び９１2を介して第２レベル・ルータ１３０と結合されている。第２パイプライン・バス１３６はホストプロセッサ４２（図３）等のピア、或は、パイプライン・バス５０と結合されていないハードディスク・ドライブ（不図示）等の周辺機器と結合され得る。更には、バス５０及び１３６の何れか或は双方はネットワーク或はインターネット（何れも不図示）を介してピア或は周辺機器と結合され得て、加速器４４がホストプロセッサ４２（図３）等の他のピアから遠隔的に位置決め可能である。
【０１１４】
バス１３８は１つ或はそれ以上のＳＹＮＣ信号をパイプライン／ユニット７８1−７８18の全てと、ホストプロセッサ４２（図３）等の他のピア或は装置（不図示）とに直に接続する。
【０１１５】
図８で更に参照されるように、動作の１つの例において、パイプライン・ユニット７８から成る各グループ１２０1−１２０6は第２パイプライン・バス１３６と結合されたソナー・アレイ（不図示）の各センサからのデータを処理する。グループ１２０1のパイプライン・ユニット７８1−７８3は単一ルータ１１０1によって相互接続されているので、それらパイプライン・ユニットは、それらが他のグループ１２０2−１２０6のパイプライン・ユニット７８4−７８18に対してできるものより迅速に相互に通信することができる。このより高い通信速度は他のグループ１２０2−１２０6の各々においても存在する。結果として、設計者はデータを頻繁に転送するか或はさもなければそれらの間で通信するパイプライン・ユニットを一緒にグループ分けすることによって、加速器４４の処理速度を増大することができる。
【０１１６】
一般に、パイプライン・ユニット７８1−７８18は相互に通信する共に、ホストプロセ
ッサ４２（図３）等のピア、及び、図７と連携されて先に議論されたものと類似の方式でバス５０及び１３６と結合された装置と通信する。例えば、バス１３６と結合されたセンサ（不図示）は工業規格バス・インターフェース９１1、第２レベル・ルータ１３０、第１レベル・ルータ１２２1、並びに、グループ内ルータ１１０1を介してパイプライン・ユニット７８1と通信する。同様に、パイプライン・ユニット７８1は、ルータ１１０1，１２２1，１１０3を介してパイプライン・ユニット７８7と通信すると共に、ルータ１１０1，１２２1，１３０，１２２2，１１０4を介してパイプライン・ユニット７８10と通信する。
【０１１７】
先行する議論は当業者が本発明を作製し使用することを可能とすべく提示されている。種々実施例への様々な変更は当業者には容易に明かであろうし、ここでの包括的な原則は本発明の精神及び範囲から逸脱することなしに他の実施例及び適用例に適用され得る。よって、本発明は図示された実施例に限定されることが意図されておらず、ここに開示された原理及び特徴と一貫した最も広い範囲と一致されるべきものである。
【図面の簡単な説明】
【０１１８】
【図１】図１は、従来の多数プロセッサ・アーキテクチャを有する計算マシンのブロック線図である。
【図２】図２は、従来のハードウェアに組み込まれたパイプラインのブロック線図である。
【図３】図３は、本発明の実施例に従ったピア-ベクトル・アーキテクチャを有する計算マシンのブロック線図である。
【図４】図４は、本発明の実施例に従った図３のパイプライン加速器におけるパイプライン・ユニットのブロック線図である。
【図５】図５は、本発明の別の実施例に従った図３のパイプライン加速器におけるパイプライン・ユニットのブロック線図である。
【図６】図６は、本発明の実施例に従った多数パイプライン・ユニットを含む図３のパイプライン加速器のブロック線図である。
【図７】図７は、本発明の別の実施例に従った多数パイプライン・ユニットを含む図３のパイプライン加速器のブロック線図である。
【図８】図８は、本発明の実施例に従った多数パイプライン・ユニットからそれぞれが成る複数のグループを含む図３のパイプライン加速器のブロック線図である。
【符号の説明】
【０１１９】
１０    計算マシン
１４    共同プロセッサ
４０    ピア-ベクトル・マシン
４２    ホストプロセッサ
４４    パイプライン加速器
４６    プロセッサ・メモリ
４８    インターフェース・メモリ
５０    パイプライン・バス
５２    ファームウェア・メモリ
５４    生データ入力ポート
５８    処理済みデータ出力ポート
６１    ルータ
６２    処理ユニット
６６    処理ユニット・メモリ
６８    ハンドラー・メモリ
７０    加速器コンフィギュレーション・レジストリ
７２    メッセージ・コンフィギュレーション・レジストリ
７４    ハードウェアに組み込まれたパイプライン
７８    パイプライン・ユニット
８０    パイプライン回路
８６    パイプライン・コントローラ
８８    例外マネージャ
９０    コンフィギュレーション・マネージャ
９１    工業規格バス・インターフェース
９３    通信バス
【図１】
2011175655.tif 000003
【図２】
2011175655.tif 000004
【図３】
2011175655.tif 000005
【図４】
2011175655.tif 000006
【図５】
2011175655.tif 000007
【図６】
2011175655.tif 000008
【図７】
2011175655.tif 000009
【図８】
2011175655.tif 000010