(57)【要約】      （修正有）【課題】プロセッサに基づくマシンの意思決定を為す能力を、ハードウェアに組み込まれたパイプラインに基づくマシンのナンバークランチング速度と組み合わせることを可能とする新しい計算アーキテクチャを実現する。【解決手段】パイプライン加速器４４に組み込まれたパイプライン回路は、データを受信し、前記データをメモリにロードし、メモリからデータを検索し、検索されたデータを処理し、そして処理されたデータを外部ソースに提供するように動作できる。加えて、パイプライン回路は、受信されたデータを処理することもできる。パイプライン加速器がピア-ベクトル・マシン４０の一部としてのプロセッサと結合されている場合、メモリはパイプライン回路とプロセッサが実行するアプリケーションとの間におけるデータの転送を補助する。【選択図】図３
2011170868.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を同期し、通信に応じて、即ち他のピアからの「事象」に応じて、それらが各データ演算を実行するシーケンスをモニタし且つ制御する。例えば、ホストプロセッサ４２等のピアはパイプライン・バス５０を介してパイプライン・ユニット７８に事象を送信し得て、そのピアがデータから成るブロックをパイプライン・ユニットに送信し終えたことを示して、ハードウェアに組み込まれたパイプライン７４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等の第１パイプラインはパイプライン７４2等の第２のパイプラインによる更なる処理のために中間データを生成し得て、よって、第１パイプラインは第２パイプラインがその中間データを検索するまでそれを一時的に記憶する必要があり得る。作業ＤＰＳＲＡＭ１０４はこの一時的記憶装置を提供する。先に議論されたように、２つのデータ・ポート１１４（入力）及び１１６（出力）はパイプライン７４1−７４n及びＤＰＳＲＡＭ１０４の間でのデータ転送の速度及び効率を増大する。更には別個の作業ＤＰＳＲＡＭ１０４を含むことは、ＤＰＳＲＡＭ１００及び１０２にデータ入力バッファ及びデータ出力バッファ専用としてそれぞれ機能させることによってパイプライン回路８０の速度及び効率を典型的には増大する。しかし、パイプライン回路８０に対する僅かな変更によって、ＤＰＳＲＡＭ１００及び１０２の両方或は片方が、ＤＰＳＲＡＭ１０４が省略された際に、そしてそれが存在したとしても、パイプライン７４1−７４nに対する作業メモリでもあり得る。
【００６７】
ＤＰＳＲＡＭ１００，１０２，１０４はパイプライン回路８０の外部であるとして記載されているが、それらＤＰＳＲＡＭ若しくはそれと同等物の内の１つ或はそれ以上をそのパイプライン回路の内部とすることが可能である。
【００６８】
更に図５で参照されるように、通信インターフェース８２は、工業規格バス・アダプタ１１８、入力データ・ハンドラー１２０、入力データ及び入力事象キュー１２２及び１２４、出力データ・ハンドラー１２６、並びに、出力データ及び出力事象キュー１２８及び１３０を含む。それらのキュー１２２，１２４，１２８，１３０がそれぞれ単一キューとして示されているが、それらキューの内の１つ或はそれ以上は、例えば、それらキューに記憶された値の優先順位、或は、それら値が表す各データの優先順位による分離を可能とするサブ・キュー（不図示）を含み得る。
【００６９】
工業規格バス・アダプタ１１８は、通信バス９４を介して、パイプライン回路８０及びパイプライン・バス５０（図４）の間でのデータの転送を可能とする物理層を含む。それ故に、もしバス９４のパラメータの変更が望まれたならば、アダプタ１１８だけを変更する必要があり、通信インターフェース８２全体を変更する必要性はない。工業規格バス・インターフェース９１がパイプライン・ユニット７８から省略されている場合、アダプタ１１８をパイプライン・バス５０及びパイプライン回路８０の間での直接的なデータ転送を可能とするように変更し得る。この後者の具現化例において、変更アダプタ１１８はバス・インターフェース９１の機能を含み、バス５０のパラメータの変更が望まれたならばアダプタ１１８を変更することだけが必要である。
【００７０】
入力データ・ハンドラー１２０は工業規格アダプタ１１８からデータを受信し、そのデータを入力ポート１０６を介してＤＰＳＲＡＭ１００にロードし、そのデータを指すポインタと対応するデータ識別子を生成してそれらを入力データ・キュー１２２に記憶する。もしそのデータがホストプロセッサ４２（図３）等のピアからのメッセージのペイロードであれば、入力データ・ハンドラー１２０はそのデータをＤＰＳＲＡＭ１００にロードする前にメッセージからそれを抽出する。入力データ・ハンドラー１２０はインターフェース１３２を含み、それがＤＰＳＲＡＭ１００の入力ポート１０６にデータを書き込むが、それは図６と連携された以下に更に議論される。代替的には、入力データ・ハンドラー１２０は抽出ステップを省略できると共にメッセージ全体をＤＰＳＲＡＭ１００にロードできる。
【００７１】
また入力データ・ハンドラー１２０は工業規格アダプタ１１８から事象を受信して、その事象を入力事象キュー１２４にロードする。
【００７２】
更には、入力データ・ハンドラー１２０は有効マネージャ１３４を含み、それが受信されたデータ或は事象がパイプライン回路８０に対して意図されているかを決定する。有効マネージャ１３４は、データ或は事象を含むメッセージのヘッダー（或はその一部）を分析することによって、データ或は事象のタイプを分析することによって、或は、データ或は事象の例証識別（即ちデータ／事象が意図されているハードウェアに組み込まれたパイプライン７４）を分析することによって、先の決定を為し得る。もし入力データ・ハンドラー１２０がパイプライン回路８０に対して意図されていないデータ或は事象を受信すれば、有効マネージャ１３４は入力データ・ハンドラーがその受信データ／事象をロードすることを禁止する。ピア-ベクトル・マシン４０がルータ６１（図３）を含んで、パイプライン・ユニット７８が該パイプライン・ユニットに対して意図されているデータ／事象のみを受信するように為す場合、有効マネージャ１３４も入力データ・ハンドラー１２０に例外（誤って受信されたデータ／事象）やその例外を引き起こしたピアを識別する例外メッセージをホストプロセッサ４２（図３）に送信させ得る。
【００７３】
出力データ・ハンドラー１２６は出力データ・キュー１２８によって指されたＤＰＳＲＡＭ１０２の複数箇所から処理データを検索し、それら処理データを工業規格バス・アダプタ１１８を介してホストプロセッサ４２（図３）等の１つ或はそれ以上のピアに送信する。出力データ・ハンドラー１２６はインターフェース１３６を含み、それがポート１１２を介してＤＰＳＲＡＭ１０２から処理データを読み取る。このインターフェース１３６は図７と連携されて以下に更に議論される。
【００７４】
出力データ・ハンドラー１２６もパイプライン７４1−７４nによって生成された事象を出力事象キュー１３０から検索し、工業規格バス・アダプタ１１８を介してホストプロセッサ４２（図３）等の１つ或はそれ以上のピアにその検索された事象を送信する。
【００７５】
更には、出力データ・ハンドラー１２６は加入マネージャ１３８を含み、それが処理データや事象に加入しているホストプロセッサ４２（図３）等のピアのリストを含み、出力データ・ハンドラーはそのリストを用いてデータ／事象を正しいピアに送信する。もしピアがデータ／事象がメッセージのペイロードであることを好めば、出力データ・ハンドラー１２６は加入マネージャ１３８からピアのネットワーク或はバス-ポート・アドレスを検索し、アドレスを含むヘッダーを生成し、データ／事象及びヘッダーからメッセージを生成する。
【００７６】
ＤＰＳＲＡＭ１００及び１０２にデータを記憶し記憶されたデータを検索するための技術はポインタやデータ識別子の使用を含むが、他のデータ管理技術を具現化すべく入力及び出力データ・ハンドラー１２０及び１２６を変更することができる。そうしたデータ管理技術の従来例は、キー或はトークンを用いるポインタ、入力／出力制御（ＩＯＣ）ブロック、並びに、スプーリングを含む。
【００７７】
通信シェル８４はハードウェアに組み込まれたパイプライン７４1−７４nを出力データ・キュー１２８、コントローラ８６、並びに、ＤＰＳＲＡＭ１００，１０２，１０４にインターフェースする物理層を含む。このシェル８４はインターフェース１４０及び１４２と任意選択的なインターフェース１４４及び１４６を含む。インターフェース１４０及び１４６はインターフェース１３６と同様であり得て、インターフェース１４０はポート１０８を介してＤＰＳＲＡＭ１００から入力データを読み取り、そしてインターフェース１４６はポート１１６を介してＤＰＳＲＡＭ１０４から中間データを読み取る。インターフェース１４２及び１４４はインターフェース１３２と同様であり得て、インターフェース１４２はポート１１０を介してＤＰＳＲＡＭ１０２に処理データを書き込み、そしてインターフェース１４４はポート１１４を介してＤＰＳＲＡＭ１０４に中間データを書き込む。
【００７８】
コントローラ８６はシーケンス・マネージャ１４８及び同期インターフェース１５０を含み、該同期インターフェースは１つ或はそれ以上の同期信号ＳＹＮＣを受信する。ホストプロセッサ４２（図３）等のピア、或は、ピア-ベクトル・マシン４０（図３）の外部の装置（不図示）は、ＳＹＮＣ信号を生成し得て、以下に議論されると共に、先行して引用された「多数パイプライン・ユニットを有するパイプライン加速器、関連計算マシン、並びに、方法」と題された特許文献５に議論されるように、それがシーケンス・マネージャ１４８をトリガーしてハードウェアに組み込まれたパイプライン７４1−７４nを起動する。同期インターフェース１５０もＳＹＮＣ信号を生成し得て、パイプライン回路８０をトリガーするか或は別のピアをトリガーする。加えて、入力事象キュー１２４からの事象もシーケンス・マネージャ１４８をトリガーして、以下に議論されるように、ハードウェアに組み込まれたパイプライン７４1−７４nを起動する。
【００７９】
シーケンス・マネージャ１４８は通信シェル８４を介してハードウェアに組み込まれたパイプライン７４1−７４nをそれらの各動作を通じて順序付けする。典型的には、各パイプライン７４は、事前処理、処理、並びに、事後処理の少なくとも３つの状態を有する。事前処理中、パイプライン７４は、例えば、そのレジスタを初期化して、ＤＰＳＲＡＭ１００から入力データを検索する。処理中、パイプライン７４は、例えば、その検索されたデータに対して演算を為し、中間データをＤＰＳＲＡＭ１０４に一時的に記憶し、ＤＰＳＲＡＭ１０４からその中間データを検索してから、その中間データに対して演算を為して結果データを生成する。事後処理中、パイプライン７４は、例えば、その結果としてのデータをＤＰＳＲＡＭ１０２にロードする。それ故に、シーケンス・マネージャ１４８はパイプライン７４1−７４nの動作又は演算をモニタして、各パイプラインにその動作状態の各々をいつ始めるべきかを命令する。そして、パイプライン・タスクを先に記載したものとは異なるように各種動作状態の間に分配し得る。例えば、パイプライン７４は事前処理状態中の代わりに処理状態中にＤＰＳＲＡＭ１００から入力データを検索し得る。
【００８０】
更には、シーケンス・マネージャ１４８はハードウェアに組み込まれたパイプライン７４1−７４n間で所定の内部動作同期を維持する。例えば、パイプライン７４1−７４nの全てがＤＰＳＲＡＭ１００からデータを同時に検索することを回避すべく、第１パイプライン７４1が事前処理状態である一方で、第２パイプライン７４2が処理状態、第３パイプライン７４3が事後処理状態となるようにそれらパイプラインを同期させることが望ましい場合がある。１つのパイプライン７４の状態が別のパイプラインの同時発生的に実行されている状態とは異なる数のクロック・サイクルを要求し得るので、パイプライン７４1−７４nはもし自由に走らされると同期性を喪失し得る。結果として、特定時に、例えば多数のパイプライン７４がＤＰＳＲＡＭ１００からデータを同時に検索しようとするような「ボトルネック」があり得る。同時性の喪失やその望ましくない結果を防止すべく、シーケンス・マネージャ１４８は、それらパイプラインの任意のものに対して次の動作状態に進めさせる前に、パイプライン７４の全てに現行の動作状態を完了させる。それ故に、シーケンス・マネージャ１４８が現行の動作状態に対して振り分ける時間は、最も緩慢なパイプライン７４にその状態を完了させるに充分な長さである。代替的には、ハードウェアに組み込まれたパイプライン７４1−７４nの間で所定動作同期性を維持するための回路（不図示）はパイプライン自体内に含ませ得る。
【００８１】
ハードウェアに組み込まれたパイプライン７４1−７４nを順序づけすると共に内部的に同期化することに加えて、シーケンス・マネージャ１４８はパイプラインの動作を、１つ或はそれ以上のＳＹＮＣ信号、或は、入力事象キュー１２４内の事象に応じて、ホストプロセッサ４２（図３）等の他のピアの動作、及び他の外部装置の動作と同期する。
【００８２】
典型的には、ＳＹＮＣ信号はタイムクリティカルな機能をトリガーするが著しいハードウェア・リソースを必要とし、比較して、典型的には事象は非タイムクリティカルな機能をトリガーするが著しくより少ないハードウェア・リソースを必要とする。先行して引用された「多数パイプライン・ユニットを有するパイプライン加速器、関連計算マシン、並びに、方法」と題された特許文献５に議論されているように、ＳＹＮＣ信号はピアからピアに直接的に経路指定されているので、例えば、パイプライン・バス５０（図３）、入力データ・ハンドラー１２０、並びに、入力事象キュー１２４を通じてその道を作成しなければならない事象よりも迅速に機能をトリガーできる。しかし、それらが個別に経路指定されるので、ＳＹＮＣ信号は、ルーティング・ライン、バッファ、並びに、ＳＹＮＣインターフェース１５０等のパイプライン回路８０の専用回路を必要とする。逆に、それらが既存のデータ転送下部組織（例えば、パイプライン・バス５０及び入力データ・ハンドラー１２０）を使用するので、事象は専用の入力事象キュー１２４のみを必要とする。結果として、設計者はタイムクリティカルな機能のほとんど全てをトリガーすべく事象を使用する傾向がある。
【００８３】
以下は機能トリガーリングの一例である。ソナー・センサ要素（不図示）がパイプライン・ユニット７８にデータから成るブロックを送信することを仮定すると、入力データ・ハンドラー１２０はこのデータをＤＰＳＲＡＭ１００に記憶し、パイプライン７４1はこのデータをそのＤＰＳＲＡＭ１００からＤＰＳＲＡＭ１０４に転送し、そして、トリガーされると、パイプライン７４2はＤＰＳＲＡＭ１０４からそのデータを検索して処理する。もしパイプライン７４2がそのデータに実行する処理がタイムクリティカルであれば、パイプライン７４1がＤＰＳＲＡＭ１０４にデータ・ブロックの全体をローディングし終えるとすぐに、センサ要素はＳＹＮＣパルスを生成してパイプライン７４2をインターフェース１５０及びシーケンス・マネージャ１４８を介してトリガーする。パイプライン・ユニット７８及びセンサがパイプライン７４1がいつ終了されるかを決定すべく利用できる数多くの従来技術がある。例えば、以下に議論されるように、シーケンス・マネージャ１４８は対応するＳＹＮＣパルス或は事象をセンサに提供し得る。代替的には、もしパイプライン７４2が実行する処理がタイムクリティカルでなければ、センサはパイプライン・バス５０（図３）を介して事象をシーケンス・マネージャ１４８に送信し得る。
【００８４】
シーケンス・マネージャ１４８もホストプロセッサ４２（図３）等のピアにＳＹＮＣパルス或は事象を生成することによってハードウェアに組み込まれたパイプライン７４1−７４nの動作に関する情報を提供し得る。シーケンス・マネージャ１４８はＳＹＮＣインターフェース１５０及び専用ライン（不図示）を介してＳＹＮＣパルスを送信し、出力事象キュー１３０及び出力データ・ハンドラー１２６を介して事象を送信する。先の例で参照されるように、ピアがパイプライン７４2からのデータ・ブロックを更に処理すると仮定する。シーケンス・マネージャ１４８は、ＳＹＮＣパルス或は事象を介して、パイプライン７４2がデータから成るブロックをいつ処理し終えたかをそのピアに通知する。シーケンス・マネージャ１４８も、対応するＳＹＮＣパルス或は事象を生成して適切なピア（単数或は複数）に送信することによって、ＳＹＮＣパルス或は事象の受領を確認し得る。
【００８５】
更に図５で参照されるようにパイプライン・ユニット７８の動作は本発明の実施例に従って議論される。
【００８６】
データに対して、工業規格バス・インターフェース９１はパイプライン・バス５０（及び、もし有ればルータ６１）からデータ信号（ホストプロセッサ４２（図３）等のピアに起因する）を受信し、それら信号をヘッダー及びペイロードを各々が有するメッセージに変換する。
【００８７】
次に、工業規格バス・アダプタ１１８はその工業規格バス・インターフェース９１からのメッセージを入力データ・ハンドラー１２０と互換性があるフォーマットに変換する。
【００８８】
次いで、入力データ・ハンドラー１２０はそのメッセージ・ヘッダを細かく調べて、各ヘッダーからデータ・ペイロードを記述する部分を抽出する。例えば、抽出されたヘッダー部分は、例えば、パイプライン・ユニット７８のアドレス、ペイロード中のデータのタイプ、或は、そのデータが意図されているパイプライン７８1−７８nを識別する例証識別子を含み得る。
【００８９】
次に、有効マネージャ１３４はその抽出ヘッダー部分を分析し、そのデータがハードウェアに組み込まれたパイプライン７４1−７４nの内の１つに意図されていることを確認し、インターフェース１３２はそのデータをポート１０６を介してＤＰＳＲＡＭ１００の箇所に書き込み、そして、入力データ・ハンドラー１２０はその箇所と対応するデータ識別子に対するポインタを入力データ・キュー１２２に記憶する。データ識別子はデータが意図されているパイプライン或は複数のパイプライン７４1−７４nを識別するか、或は、シーケンス・マネージャ１４８に以下に議論されるようにその識別を行わせることを可能とする情報を含む。代替的には、キュー１２２は各パイプライン７４1−７４nに対する各サブキュー（不図示）を含み得て、入力データ・ハンドラー１２０は意図されたパイプライン或は意図された複数のパイプラインのサブキュー或は複数のサブキュー内にポインタを記憶する。この代替例において、データ識別子は省略し得る。更には、もしデータがメッセージのペイロードであれば、入力データ・ハンドラー１２０はインターフェース１３２がＤＰＳＲＡＭ１００内にそのデータを記憶する前にメッセージからそのデータを抽出する。代替的には、先に議論されたように、インターフェース１３２はメッセージ全体をＤＰＳＲＡＭ１００内に記憶し得る。
【００９０】
次いで、適時に、シーケンス・マネージャ１４８は入力データ・キュー１２２からポインタ及びデータ識別子を読み取って、そのデータ識別子から、データが意図されているパイプライン或は複数のパイプライン７４1−７４nを決定し、そのポインタを通信シェル８４を介してそのパイプライン或は複数のパイプラインに渡す。
【００９１】
次に、データ受信パイプライン或は複数のデータ受信パイプライン７４1−７４nはインターフェース１４０にポート１０８を介してＤＰＳＲＡＭ１００の指された箇所からデータを検索させる。
【００９２】
次いで、データ受信パイプライン或は複数のデータ受信パイプライン７４1−７４nは検索されたデータを処理し、インターフェース１４２はその処理されたデータをポート１１０を介してＤＰＳＲＡＭ１０２のある箇所に書き込み、そして、通信シェル８４は出力データ・キュー１２８にその処理されたデータを指すポインタとその処理されたデータに対するデータ識別子とをロードする。そのデータ識別子は、その処理データに加入しているホストプロセッサ４２（図３）等の仕向先ピア或は複数の仕向先ピアを識別するか、加入マネージャ１３８に引き続き仕向先ピア或は複数の仕向先ピア（例えば、図３のホストプロセッサ４２）を決定させることを可能とする情報（データ・タイプ等）を含む。代替的には、キュー１２８は各パイプライン７４1−７４nに対する各サブキュー（不図示）を含み得て、通信シェル８４は起因パイプライン或は複数の起因パイプラインのサブキュー或は複数のサブキューにポインタを記憶する。この代替例において、通信シェル８４はデータ識別子のキュー１２８へのローディングを省略し得る。更には、もしパイプライン或は複数のパイプライン７４1−７４nが検索されたデータを処理している間に中間データを生成すれば、インターフェース１４４はその中間データをポート１１４を介してＤＰＳＲＡＭ１０４に書き込み、インターフェース１４６はポート１１６を介してそのＤＰＳＲＡＭ１０４から中間データを検索する。
【００９３】
次に、出力データ・ハンドラー１２６は出力データ・キュー１２８からポインタ及びデータ識別子を検索し、加入マネージャ１３８はその識別子からデータの仕向先ピア或は複数の仕向先ピア（たとえば、図３のホストプロセッサ４２）を決定し、インターフェース１３６はポート１１２を介してＤＰＳＲＡＭ１０２の指された箇所からデータを検索し、出力データ・ハンドラーはそのデータを工業規格バス・アダプタ１１８に送信する。もし仕向先ピアがメッセージのペイロードであるデータを必要とすれば、出力データ・ハンドラー１２６はそのメッセージを生成してそのメッセージをアダプタ１１８に送信する。例えば、データが多数の仕向先ピアを有して、パイプライン・バス５０がメッセージ放送を支援すると仮定する。出力データ・ハンドラー１２６はその仕向先ピア全てのアドレスを含む単一ヘッダーを生成し、そのヘッダー及びデータを１つのメッセージとして組み合わせて、単一メッセージを仕向先ピアの全てに（アダプタ１１８及び工業規格バス・インターフェース９１を介して）同時に送信する。代替的には、出力データ・ハンドラー１２６は各ヘッダー、よって各メッセージを各仕向先ピアに対して生成し、それらメッセージの各々を個別に送信する。
【００９４】
次いで、工業規格バス・アダプタ１１８は出力データ・ハンドラー１２６からのデータをフォーマットして、工業規格バス・インターフェース９１と互換性を持たせるように為す。
【００９５】
次に、工業規格バス・インターフェース９１は工業規格バス・アダプタ１１８からのデータをフォーマットして、パイプライン・バス５０（図３）と互換性を持たせるように為す。
【００９６】
随伴データを伴わない事象、即ちドアベルに対して、工業規格バス・インターフェース９１はパイプライン・バス５０から（もしあればルータ６１からも）信号（図３のホストプロセッサ４２等のピアに起因する）を受信し、その信号を事象を含むヘッダー（即ち、データ無しメッセージ）に変換する。
【００９７】
次に、工業規格バス・アダプタ１１８は工業規格バス・インターフェース９１からのヘッダーを入力データ・ハンドラー１２０と互換性があるフォーマットに変換する。
【００９８】
次いで、入力データ・ハンドラー１２０はそのヘッダーから事象と事象の記述とを抽出する。例えば、記述は、例えば、パイプライン・ユニット７８のアドレス、事象のタイプ、或は、その事象が意図されているパイプライン７８1−７８nを識別する例証識別子を含み得る。
【００９９】
次に、有効マネージャ１３４は事象記述を分析し、その事象がハードウェアに組み込まれたパイプライン７４1−７４nの内の１つに意図されていることを確認して、入力データ・ハンドラー１２０はその事象とその記述とを入力事象・キュー１２４に記憶する。
【０１００】
次いで、適時に、シーケンス・マネージャ１４８は入力事象キュー１２４からの事象及びその記述を読み取り、その事象に応じて、先に議論されたように、パイプライン７４1−７４nの内の１つ或はそれ以上の動作をトリガーする。例えば、シーケンス・マネージャ１４８はパイプライン７４2をトリガーし得て、パイプライン７４1が先行してＤＰＳＲＡＭ１０４に記憶したデータの処理を始める。
【０１０１】
事象を出力すべく、シーケンス・マネージャ１４８は事象とその事象の記述を生成し、それら事象及び記述を出力事象キュー１３０にロードする。事象記述は、もし２つ以上の可能性ある仕向先ピアが存在する場合にその仕向先ピア（単数或は複数）を識別する。例えば、先に議論されたように、事象は入力事象、入力データ或は入力事象のメッセージ、或は、ＳＹＮＣパルスの受領及び具現化を確認し得る。
【０１０２】
次に、出力データ・ハンドラー１２６は事象とその記述を出力事象キュー１３０から検索し、加入マネージャ１３８はその事象記述から該事象の仕向先ピア或は複数の仕向先ピア（例えば、図３のホストプロセッサ４２）を決定し、出力データ・ハンドラーは、先に議論されたように、その事象を工業規格バス・アダプタ１１８及び工業規格バス・インターフェース９１を介して適切な仕向先ピア或は複数の適切な仕向先ピアに送信する。
【０１０３】
コンフィギュレーション・コマンドに対して、工業規格バス・アダプタ１１８は工業規格バス・インターフェース９１を介してホストプロセッサ４２（図３）からコマンドを受信し、そのコマンドをデータ無し事象（即ち、ドアベル）に対して先に議論されたものと同様の方式で入力データ・ハンドラー１２０に提供する。
【０１０４】
次に、有効マネージャ１３４はそのコマンドがパイプライン・ユニット７８に対して意図されていることを確認し、入力データ・ハンドラー１２０はそのコマンドをコンフィギュレーション・マネージャ９０にロードする。更に、入力データ・ハンドラー１２０或はコンフィギュレーション・マネージャ９０の何れかもそのコマンドを出力データ・ハンドラー１２６に渡すことができ、それがパイプライン・ユニット７８がコマンドを受信したことをそのコマンドを送信したピア（例えば、図３のホストプロセッサ４２）に送信し戻すことによって確認する。この確認技術はしばしば「エコー」と呼称される。
【０１０５】
次いで、コンフィギュレーション・マネージャ９０はそのコマンドを具現化する。例えば、コマンドはコンフィギュレーション・マネージャ９０にデバッグ目的でパイプライン７４1−７４nの内の１つをディスエーブルさせ得る。或は、コマンドはホストプロセッサ４２（図３）等のピアに出力データ・ハンドラー１２６を介してコンフィギュレーション・マネージャ９０からパイプライン回路８０の現行コンフィギュレーションを読み取らせることができる。加えて、コンフィギュレーション・コマンドを使用し得て、例外マネージャ８８によって認識される例外を規定することができる。
【０１０６】
例外に対して、パイプライン回路８０の入力データ・キュー１２２等の構成要素は例外マネージャ８８に向けて例外をトリガーする。一具現化例において、その構成要素は当該構成要素をモニタして、所定条件或は各種条件から成る組に応じてその例外をトリガーする例外トリガリング・アダプタ（不図示）を含む。例外トリガリング・アダプタは一度で設計され得てから例外を生成するパイプライン回路８０の各構成要素の一部として含まれ得る普遍的回路であり得る。
【０１０７】
次に、例外トリガーに応じて、例外マネージャ８８は例外識別子を生成する。例えば、その識別子は入力データ・キュー１２２がオーバーフローしたことを示し得る。更には、その識別子は、もし２つ以上の可能性ある仕向先ピアが存在する場合にその仕向先ピアを含み得る。
【０１０８】
次いで、出力データ・ハンドラー１２６は例外マネージャ８８から例外識別子を検索し、その例外識別子を、先行して引用された「改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法」と題された特許文献３で議論されたようにホストプロセッサ４２（図３）に送信する。代替的には、もし多数の可能性ある仕向先ピアが存在すれば、例外識別子も仕向先情報を含むことができ、それから加入マネージャ１３８がその識別子の仕向先ピア或は複数の仕向先ピア（例えば、図３のホストプロセッサ４２）を決定する。出力データ・ハンドラー１２６は、次いで、その識別子を、工業規格バス・アダプタ１１８及び工業規格バス・インターフェース９１を介して、仕向先ピア或は複数の仕向先ピアに送信する。
【０１０９】
更に図５で参照されるように、パイプライン・ユニット７８に対する代替実施例が存在する。例えば、ＤＰＳＲＡＭを含むものとして説明されているが、データ・メモリ９２はクワッド-データ-レート（ＱＤＲ）ＳＲＡＭ等のメモリＩＣの他のタイプを含み得る。
【０１１０】
図６は、本発明の実施例に従った図５のインターフェース１４２のブロック線図である。図５と連携して先に議論されたように、インターフェース１４２はハードウェアに組み込まれたパイプライン７４1−７４nからＤＰＳＲＡＭ１０２に処理データを書き込む。以下に議論されるように、インターフェース１４２の構造は、データ「ボトルネック」を低減又はなくし、パイプライン回路８０（図５）がＰＬＩＣである場合、ＰＬＩＣのローカル及びグローバルのルーティング・リソースを効率的に利用する。
【０１１１】
インターフェース１４２は書き込みチャネル１５０1−１５０nを含み、各ハードウェアに組み込まれたパイプライン７４1−７４n（図５）に対して１つずつのチャネルとなっており、コントローラ１５２を含む。図示の簡略化の目的のため、チャネル１５０1が以下に議論され、他のチャネル１５０2−１５０nの動作及び構造が別段の説明がない限り同様であることを理解して頂きたい。
【０１１２】
チャネル１５０1は書き込みアドレス／データＦＩＦＯ１５４1及びアドレス／データ・レジスタ１５６1を含む。
【０１１３】
ＦＩＦＯ１５４1は、パイプライン７４1がＤＰＳＲＡＭ１０２に書き込むデータを記憶し、コントローラ１５２がレジスタ１５６1を介してＤＰＳＲＡＭ１０２に実際にデータを書き込むことができるまで、パイプラインがデータを書き込むＤＰＳＲＡＭ１０２内の箇所のアドレスを記憶する。それ故に、ＦＩＦＯ１５４1は、もしコントローラ１５２が先行するデータの書き込みを終了するまでに、パイプライン７４1がチャネル１５０1へのデータ書き込みを「待機」しなければならなかった場合に生じ得るデータ・ボトルネックを低減又はなくする。
【０１１４】
ＦＩＦＯ１５４1はバス１５８1を介してパイプライン７４1からデータを受信し、バス１６０1を介してデータが書き込まれることになる箇所のアドレスを受信し、そのデータ及びアドレスをバス１６２1及び１６４1を介してレジスタ１５６1に提供する。更には、ＦＩＦＯ１５４1はパイプライン７４1からライン１６６1上の書き込みＦＩＦＯ信号（ＷＲＩＴＥ ＦＩＦＯ信号）を受信し、ライン１６８1を介してクロック信号（ＣＬＯＣＫ信号）を受信し、そしてＦＩＦＯ充満信号をライン１７０1上でパイプライン７４1に提供する。加えて、ＦＩＦＯ１５４1はライン１７２1を介してコントローラ１５２から読み取りＦＩＦＯ信号を受信して、ライン１７４1を介してＦＩＦＯ ＥＭＰＴＹ信号（ＦＩＦＯ空信号）をコントローラに提供する。パイプライン回路８０（図５）がＰＬＩＣである場合、バス１５８1，１６０1，１６２1，１６４1及びライン１６６1，１６８1，１７０1，１７２1，１７４1は、好ましくはローカル・ルーティング・リソースを用いて形成される。典型的には、ローカル・ルーティング・リソースは、信号帰路長が一般により短く且つルーティングの具現化がより容易であるため、グローバル・ルーティング・リソースよりも好まれる。
【０１１５】
レジスタ１５６1は、バス１６２1及び１６４1を介して、ＦＩＦＯ１５４1から書き込まれるべきデータと、書き込み箇所のアドレスとをそれぞれ受信し、それらデータ及びアドレスをアドレス／データ・バス１７６を介してＤＰＳＲＡＭ１０２（図５）のポート１１０に提供する。更には、レジスタ１５６1もデータ及びアドレスを、以下に議論されるように、アドレス／データ・バス１７８1を介してレジスタ１５６2−１５６nから受信する。加えて、レジスタ１５６1はライン１８０を介してコントローラ１５２からシフト／ロード信号（ＳＨＩＦＴ／ＬＯＡＤ信号）を受信する。パイプライン回路８０（図５）がＰＬＩＣである場合、バス１７６は典型的にはグローバル・ルーティング・リソースを用いて形成され、バス１７８1−１７８n-1及びライン１８０は好ましくはローカル・ルーティング・リソースを用いて形成される。
【０１１６】
ＦＩＦＯ空信号の受信と読み取りＦＩＦＯ及びシフト／ロード信号の生成に加えて、コントローラ１５２は書き込みＤＰＳＲＡＭ信号（ＷＲＩＴＥ ＤＰＳＲＡＭ信号）をライン１８２を介してＤＰＳＲＡＭ１０２（図５）のポート１１０に提供する。
【０１１７】
更に図６で参照されるように、インターフェース１４２の動作が議論される。
【０１１８】
先ず、ＦＩＦＯ１５４1はＦＩＦＯの現行状態（「充満」或は「非充満」）と対応する論理レベルまでＦＩＦＯ充満信号を駆動する。
【０１１９】
次に、もしＦＩＦＯ１５４1が充満していなく且つパイプライン７４1が書き込むべきデータを処理していれば、パイプラインはデータ及び対応するアドレスをバス１５８1及び１６０1までそれぞれ駆動し、書き込み信号をアサートし、よってデータ及びアドレスをＦＩＦＯにロードする。しかしながら、もしＦＩＦＯ１５４1が充満していれば、パイプライン７４1はデータをロードする前にＦＩＦＯが非充満となるまで待機する。
【０１２０】
次いで、ＦＩＦＯ１５４1はＦＩＦＯ空信号をＦＩＦＯの現行状態（「空」或は「非空」）と対応する論理レベルまで駆動する。
【０１２１】
次に、もしＦＩＦＯ１５４1が非空であれば、コントローラ１５２は読み取りＦＩＦＯ信号をアサートし、シフト／ロード信号をロード論理レベルまで駆動し、よってＦＩＦＯから最初にロードされたデータ及びアドレスをレジスタ１５６1にロードする。もしＦＩＦＯ１５４1が空であれば、コントローラ１５２は読み取りＦＩＦＯをアサートしないが、他のＦＩＦＯ１５４2−１５４nの内の任意のものが空でなければ、シフト・ロードをロード論理レベルまで駆動する。
【０１２２】
チャネル１５０2−１５０nは同様の方式で動作して、ＦＩＦＯ１５４2−１５４nに最初にロードされたデータがそれぞれレジスタ１５６2−１５６nにロードされるように為す。
【０１２３】
次いで、コントローラ１５２はシフト／ロード信号をシフト論理レベルまで駆動し、書き込みＤＰＳＲＡＭ信号をアサートし、よってレジスタ１５６1−１５６nからアドレス／データ・バス１７６にデータ及びアドレスを順次シフトし、ＤＰＳＲＡＭ１０２の対応する箇所にデータをロードする。詳細には、第１シフト・サイクル中、レジスタ１５６1からのデータ及びアドレスはバス１７６にシフトされて、ＦＩＦＯ１５４1からのデータはＤＰＳＲＡＭ１０２のアドレス指定された箇所にロードされるように為す。また第１シフト・サイクル中、レジスタ１５６2からのデータ及びアドレスはレジスタ１５６1にシフトされて、レジスタ１５６3（不図示）からのデータ及びアドレスはレジスタ１５６2にシフトされる、等々である。第２シフト・サイクル中、レジスタ１５６1からのデータ及びアドレスはバス１７６にシフトされて、ＦＩＦＯ１５４2からのデータはＤＰＳＲＡＭ１０２のアドレス指定された箇所にロードされるように為す。また第２シフト・サイクル中、レジスタ１５６2からのデータ及びアドレスはレジスタ１５６1にシフトされ、レジスタ１５６3（不図示）からのデータ及びアドレスはレジスタ１５６2にシフトされる、等々である。ｎ個のシフト・サイクルがあって、第ｎ番目のシフト・サイクル中、レジスタ１５６nからのデータ及びアドレス（ＦＩＦＯ１５４nからのデータ及びアドレスである）はバス１７６にシフトされる。コントローラ１５２はシフト／ロード信号を脈動することによって、或は、レジスタ１５６1−１５６nと結合されているシフト・クロック信号（不図示）を生成することによってそれらシフト・サイクルを具現化し得る。更には、対応するＦＩＦＯ１５４1−１５４nがコントローラ１５２がレジスタにロードした際に空であるので、レジスタ１５６1−１５６nの内の１つが特定のシフト動作中に空であれば、コントローラはその空レジスタを迂回し得て、よって、ヌル・データ及びヌル・アドレスのバス１７６へのシフトを回避することによってシフト動作を短縮する。
【０１２４】
図５及び図６で参照されるように、本発明の実施例に従えば、インターフェース１４４はインターフェース１４２と類似し、インターフェース１３２も該インターフェース１３２が１つの書き込みチャネル１５０のみを含むことを除いてインターフェース１４２と類似している。
【０１２５】
図７は、本発明の実施例に従った図５のインターフェース１４０のブロック線図である。図５と連携して先に議論されたように、インターフェース１４０はＤＰＳＲＡＭ１００から入力データを読み取って、そのデータをハードウェアに組み込まれた７４1−７４nに転送する。以下に議論されるように、インターフェース１４０の構造はデータ「ボトルネック」を低減或はなくし、パイプライン回路８０（図５）がＰＬＩＣである場合、ＰＬＩＣのローカル及びグローバルのルーティング・リソースを効率的に利用する。
【０１２６】
インターフェース１４０は、各ハードウェアに組み込まれたパイプライン７４1−７４n（図５）に対して１つずつのチャネルである読み取りチャネル１９０1−１９０nとコントローラ１９２とを含む。図示の簡略化のため、読み取りチャネル１９０1が以下に議論されているが、他の読み取りチャネル１９０2−１９０nの動作及び構造は別段の説明がない限り類似していることを理解していただきたい。
【０１２７】
チャネル１９０1はＦＩＦＯ１９４1及びアドレス／識別子（ＩＤ）レジスタ１９６1を含む。以下に議論されるように、識別子は、データを受信すべくＤＰＳＲＡＭ１００の特定箇所からそのデータを読み取る要求を為すパイプライン７４1−７４nを識別する。
【０１２８】
ＦＩＦＯ１９４1は２つのサブＦＩＦＯ（不図示）を含み、一方がパイプライン７４1が入力データを読み取ることを望んでいるＤＰＳＲＡＭ１００内の箇所のアドレスを記憶し、他方がＤＰＳＲＡＭ１００から読み取られたデータを記憶する。それ故に、ＦＩＦＯ１９４1は、もしパイプライン７４1が、コントローラ１９２が先行するデータの読み取りを終了するまで、チャネル１９０1に読み取りアドレスを提供するために「待機」しなければならない場合、或は、コントローラが、コントローラが引き続くデータを読み取る前にパイプライン７４1が読み取りデータを検索するまで待機しなければならない場合に生じ得るボトルネックを低減或はなくする。
【０１２９】
ＦＩＦＯ１９４1はバス１９８1を介してパイプライン７４1から読み取りアドレスを受信し、そのアドレス及びＩＤをバス２００1を介してレジスタ１９６1に提供する。ＩＤはパイプライン７４1と対応して典型的には変化しないので、ＦＩＦＯ１９４1はそのＩＤを記憶し得て、そのＩＤをアドレスとつなぎ合わせる。代替的には、パイプライン７４1はＩＤをバス１９８1を介してＦＩＦＯ１９４1に提供し得る。更には、ＦＩＦＯ１９４1はライン２０２1を介してパイプライン７４1から準備書き込みＦＩＦＯ信号を受信し、ライン２０４1を介してＣＬＯＣＫ信号を受信し、（読み取りアドレスの）ＦＩＦＯ充満信号をライン２０６1を介してパイプラインに提供する。加えて、ＦＩＦＯ１９４1はライン２０８1を介してコントローラ１９２から書き込み／読み取りＦＩＦＯ信号（ＷＲＩＴＥ／ＲＥＡＤ ＦＩＦＯ信号）を受信し、ＦＩＦＯ空信号をライン２１０1を介してコントローラに提供する。更には、ＦＩＦＯ１９４1はバス２１２を介してコントローラ１９２から読み取りデータ及び対応するＩＤを受信し、そのデータをバス２１４1を介してパイプライン７４1に提供する。パイプライン回路８０（図５）がＰＬＩＣである場合、バス１９８1，２００1，２１４1及びライン２０２1，２０４1，２０６1，２０８1，２１０1は好ましくはローカル・ルーティング・リソースを用いて形成され、バス２１２は典型的にはグローバル・ルーティング・リソースを用いて形成される。
【０１３０】
レジスタ１９６1は読み取られるべき箇所のアドレスと対応するＩＤをバス２０６1を介してＦＩＦＯ１９４1から受信し、そのアドレスをアドレス・バス２１６を介してＤＰＳＲＡＭ１００（図５）のポート１０８に提供して、そのＩＤをバス２１８を介してコントローラ１９２に提供する。更には、レジスタ１９６1も、以下に議論されるように、アドレス／ＩＤバス２２０1を介してレジスタ１９６2−１９６nからアドレス及びＩＤを受信する。加えて、レジスタ１９６1はライン２２２を介してコントローラ１９２からシフト／ロード信号を受信する。パイプライン回路８０（図５）がＰＬＩＣである場合、バス２１６は典型的にはグローバル・ルーティング・リソースを用いて形成され、バス２２０1−２２０n-1及びライン２２２は好ましくはローカル・ルーティング・リソースを用いて形成される。
【０１３１】
ＦＩＦＯ空信号の受信、書き込み／読み取りＦＩＦＯ及びシフト／ロード信号の生成、並びに、読み取りデータ及び対応するＩＤの提供に加えて、コントローラ１９２はバス２２４を介してＤＰＳＲＡＭ１００（図５）のポート１０８から読み取られたデータを受信し、読み取りＤＰＳＲＡＭ信号（ＲＥＡＤ ＤＰＳＲＡＭ信号）をライン２２６上に生成するが、そのラインがこの信号をポート１０８と結合する。パイプライン回路８０（図５）がＰＬＩＣの場合、バス２２４及びライン２２６は典型的にはグローバル・ルーティング・リソースを用いて形成される。
【０１３２】
更に図７で参照されるように、インターフェース１４０の動作が議論されている。
【０１３３】
先ず、ＦＩＦＯ１９４1は、読み取りアドレスに対するＦＩＦＯの現行状態（「充満」或は「非充満」）と対応する論理レベルまでＦＩＦＯ充満信号を駆動する。即ち、もしＦＩＦＯ１９４1が読み取られるべきアドレスで充満していれば、ＦＩＦＯ充満の論理レベルを１つのレベルまで駆動し、もしＦＩＦＯが読み取りアドレスで充満していなければ、ＦＩＦＯ充満の論理レベルを別のレベルまで駆動する。
【０１３４】
次に、もしＦＩＦＯ１９４1が読み取りアドレスで充満していなく且つパイプライン７４1がより多くの入力データを処理すべく準備がされると、パイプラインは読み取られるべきデータのアドレスをバス１９８1まで駆動し、読み取り／書き込みＦＩＦＯ信号（ＲＥＡＤ／ＷＲＩＴＥ ＦＩＦＯ信号）を書き込みレベルまでアサートし、よってアドレスをＦＩＦＯにロードする。図５と連携して先に議論されたように、パイプライン７４1はシーケンス・マネージャ１４８を介して入力データ・キュー１２２からアドレスを得る。しかしながらＦＩＦＯ１９４1が読み取りアドレスで充満していれば、パイプライン７４1は読み取りアドレスのローディング前にＦＩＦＯが充満しなくなるまで待機する。
【０１３５】
次いで、ＦＩＦＯ１９４1はＦＩＦＯ空信号を読み取りアドレスに対するＦＩＦＯの現行状態（「空」或は「非空」）と対応する論理レベルまで駆動する。即ち、もしＦＩＦＯ１９４1が少なくとも１つの読み取りアドレスでロードされれば、ＦＩＦＯ空の論理レベルを１つのレベルまで駆動し、もしＦＩＦＯが読み取りアドレス無しでロードされれば、ＦＩＦＯ空の論理レベルを別のレベルまで駆動する。
【０１３６】
次に、もしＦＩＦＯ１９４1が空でなければ、コントローラ１９２は書き込み／読み取りＦＩＦＯ信号を読み取り論理レベルまでアサートし、シフト／ロード信号をロード論理レベルまで駆動し、よってＦＩＦＯから最初にロードされたアドレスとＩＤをレジスタ１９６1にロードする。
【０１３７】
チャネル１９０2−１９０nは同様の方式で動作して、コントローラ１９２がＦＩＦＯ１９４2−１９４nから最初にロードされたアドレスとＩＤをレジスタ１９６2−１９６nにそれぞれロードする。もしＦＩＦＯ１９４2−１９４nの全てが空であれば、コントローラ１９２は前進の前にアドレスを受信すべくＦＩＦＯの内の少なくとも１つを待機する。
【０１３８】
次いで、コントローラ１９２はシフト／ロード信号をシフト論理レベルまで駆動し、読み取りＤＰＳＲＡＭ信号をアサートしてレジスタ１９６1−１９６nからアドレス及びＩＤバス２１６及び２１８にアドレス及びＩＤを順次シフトして、バス２２４を介してＤＰＳＲＡＭ１００の対応する箇所からデータを順次読み取る。
【０１３９】
次に、コントローラ１９２は受信されたデータと対応するＩＤ（そのＩＤはＦＩＦＯ１９４1−１９４nの各々にそれがデータの意図された受取人であるか否かを決定させる）をバス２１２まで駆動し、書き込み／読み取りＦＩＦＯ信号を書き込みレベルまで駆動し、よってそのデータを各ＦＩＦＯ１９４1−１９４nに順次書き込む。
【０１４０】
次いで、ハードウェアに組み込まれたパイプライン７４1−７４nはそれらの読み取り／書き込みＦＩＦＯ信号を読み取りレベルまで順次アサートし、そのデータをバス２１４1−２１４nを介して順次読み取る。
【０１４１】
更に図７で参照されるように、それらのデータ読み取り演算子のより詳細な議論が提示される。
【０１４２】
第１シフト・サイクル中、コントローラ１９２はレジスタ１９６1からバス２１６及び２１８までアドレス及びＩＤをそれぞれシフトし、読み取りＤＰＳＲＡＭをアサートし、そうして、バス２２４を介してＤＰＳＲＡＭ１００の対応する箇所からデータを読み取り、バス２１８からＩＤを読み取る。次に、コントローラ１９２は書き込み／読み取りＦＩＦＯ信号をライン２０８1上で書き込みレベルまで駆動し、受信されたデータとＩＤをバス２１２に駆動する。ＩＤがＦＩＦＯ１９４1からのＩＤであるので、ＦＩＦＯ１９４1はそのＩＤを認識し、よって書き込み／読み取りＦＩＦＯ信号の書き込みレベルに応じてバス２１２からデータをロードする。残りのＦＩＦＯ１９４2−１９４nは、バス２１２上のＩＤがそれらのＩＤと対応しないので、データをロードしない。次いで、パイプライン７４1は読み取り／書き込みＦＩＦＯ信号をライン２０２1上で読み取りレベルまでアサートし、バス２１４1を介して読み取りデータを検索する。また、第１シフト・サイクル中、レジスタ１９６2からのアドレス及びＩＤはレジスタ１９６1にシフトされ、レジスタ１９６3（不図示）からのアドレス及びＩＤはレジスタ１９６2にシフトされ、等々である。代替的には、コントローラ１９２はＩＤを認識し、書き込み／読み取りＦＩＦＯ信号だけをライン２０８1上で書き込みレベルまで駆動する。これはＩＤをＦＩＦＯ１９４1−１９４nまで送信すべきコントローラ１９２に対する必要性をなくする。別の代替例において、書き込み／読み取りＦＩＦＯ信号は読み取り信号のみであり、ＦＩＦＯ１９４1（他のＦＩＦＯ１９４2−１９４nと共に）はバス２１２上のＩＤがＦＩＦＯ１９４1のＩＤと符合する場合にバス２１２上にデータをロードする。これは書き込み信号を生成すべきコントローラ１９２の必要性をなくする。
【０１４３】
第２シフト・サイクル中、レジスタ１９６1からのアドレス及びＩＤはバス２１６及び２１８にシフトされて、コントローラ１９２がＦＩＦＯ１９４2によって特定されるＤＰＳＲＡＭ１００の箇所からデータを読み取るように為す。次に、コントローラ１９２は書き込み／読み取りＦＩＦＯ信号を書き込みレベルまで駆動し、受信されたデータとＩＤをバス２１２に駆動する。ＩＤがＦＩＦＯ１９４2からのＩＤであるので、ＦＩＦＯ１９４2はそのＩＤを認識し、そうしてバス２１２からデータをロードする。残りのＦＩＦＯ１９４1及び１９４3−１９４nは、バス２１２上のＩＤがそれらのＩＤと対応しないのでデータをロードしない。次いで、パイプライン７４2はその読み取り／書き込みＦＩＦＯ信号を読み取りレベルまでアサートし、バス２１４2を介して読み取りデータを検索する。また第２シフト・サイクル中、レジスタ１９６2からのアドレス及びＩＤはレジスタ１９６1にシフトされ、レジスタ１９６3（不図示）からのアドレス及びＩＤはレジスタ１９６2にシフトされ、等々である。
【０１４４】
これはｎ個のシフト・サイクルの間続行、即ち、レジスタ１９６n（ＦＩＦＯ１９４nからのアドレス及びＩＤ）からのアドレス及びＩＤがバス２１６及び２１８にそれぞれシフトされるまで続行する。コントローラ１９２はシフト／ロード信号を脈動することによって、或はレジスタ１９６1−１９６nと結合されたシフト・クロック信号（不図示）を生成することによってそれらシフト・サイクルを具現化し得る。更には、もし特定シフト・サイクル中にレジスタ１９６1−１９４nの内の１つが、その対応するＦＩＦＯ１９４1−１９４nが空であるため空であれば、コントローラ１９２は空レジスタを迂回し、よってヌル・アドレスのバス２１６へのシフトを回避することによってシフト動作を短縮する。
【０１４５】
図５及び図６で参照されるように、本発明の実施例に従えば、インターフェース１４４はインターフェース１４０と類似し、インターフェース１３６も該インターフェース１３６が１つのみの読み取りチャネル１９０を含むことを除けばインターフェース１４０と類似し、よってＩＤ回路を全く含まない。
【０１４６】
図８は、本発明の別の実施例に従った図４のパイプライン・ユニット２３０の概略ブロック線図である。このパイプライン・ユニット２３０は、該パイプライン・ユニット２３０が多数のパイプライン回路８０を含むことを除いて（ここでは２つのパイプライン回路８０ａ及び８０ｂ）図４のパイプライン・ユニット７８と類似している。パイプライン回路８０の数を増大することは、典型的には、ハードウェアに組み込まれたパイプライン７４1−７４nの数ｎに関する増大を可能とし、よってパイプライン・ユニット７８と比較してパイプライン・ユニット２３０の機能に関する増大を可能とする。
【０１４７】
図８のパイプライン・ユニット２３０において、サービス構成要素、即ち、通信インターフェース８２、コントローラ８６、例外マネージャ８８、コンフィギュレーション・マネージャ９０、並びに、任意選択的な工業規格バス・インターフェース９１はパイプライン回路８０ａ上に配置され、パイプライン７４1−７４n及び通信シェル８４はパイプライン回路８０ｂ上に配置される。サービス構成要素及びパイプライン７４1−７４nを別々のパイプライン回路上に位置決めすることによって、サービス構成要素及びパイプラインが同一のパイプライン回路上に位置決めされている場合に可能であるものよりも、より多くの数ｎのパイプライン及び／或はより複雑なパイプラインを含み得る。代替的には、パイプライン７４1−７４nをインターフェース８２にインターフェースする通信シェル８４の部分とコントローラ８６はパイプライン回路８０ａ上に配置される。
【０１４８】
図９は、本発明の実施例に従った図８のパイプライン・ユニット２３０のパイプライン回路８０ａ，８０ｂ及びデータ・メモリ９２の概略ブロック線図である。図９のパイプライン構成要素が２つのパイプライン回路上に配置されていること以外、パイプライン回路８０ａ及び８０ｂとメモリ９２の構造及び動作は、図５のパイプライン回路８０及びメモリ９２のものと同一である。
【０１４９】
先行する議論は当業者が本発明を作製し使用することを可能とすべく提示されている。種々実施例への様々な変更は当業者には容易に明かであろうし、ここでの包括的な原則は本発明の精神及び範囲から逸脱することなしに他の実施例及び適用例に適用され得る。よって、本発明は図示された実施例に限定されることが意図されておらず、ここに開示された原理及び特徴と一貫した最も広い範囲と一致されるべきものである。
【図面の簡単な説明】
【０１５０】
【図１】従来の多数プロセッサ・アーキテクチャを有する計算マシンのブロック線図。
【図２】従来のハードウェアに組み込まれたパイプラインのブロック線図。
【図３】本発明の実施例に従ったピア-ベクトル・アーキテクチャを有する計算マシンのブロック線図。
【図４】本発明の実施例に従った図３のパイプライン加速器のブロック線図。
【図５】本発明の実施例に従った図４のハードウェアに組み込まれたパイプライン回路とデータ・メモリとのブロック線図。
【図６】本発明の実施例に従った図５の通信シェルのメモリ書き込みインターフェースのブロック線図。
【図７】本発明の実施例に従った図５の通信シェルのメモリ読み取りインターフェースのブロック線図。
【図８】本発明の別の実施例に従った図３のパイプライン加速器のブロック線図。
【図９】本発明の実施例に従った図８のハードウェアに組み込まれたパイプライン回路とデータ・メモリとのブロック線図。
【符号の説明】
【０１５１】
１０    計算マシン
１４    共同プロセッサ
４０    ピア-ベクトル・マシン
４２    ホストプロセッサ
４４    パイプライン加速器
４６    プロセッサ・メモリ
４８    インターフェース・メモリ
５０    パイプライン・バス
５２    ファームウェア・メモリ
５４    生データ入力ポート
５８    処理データ出力ポート
６１    ルータ
６２    処理ユニット
６４    メッセージ・ハンドラー
６６    処理ユニット・メモリ
６８    ハンドラー・メモリ
７０    加速器コンフィギュレーション・レジストリ
７２    メッセージ・コンフィギュレーション・レジストリ
７４    ハードウェアに組み込まれたパイプライン
７８    パイプライン・ユニット
８０    パイプライン回路
８６    パイプライン・コントローラ
８８    例外マネージャ
９０    コンフィギュレーション・マネージャ
９１    工業規格バス・インターフェース
【図１】
2011170868.tif 000003
【図２】
2011170868.tif 000004
【図３】
2011170868.tif 000005
【図４】
2011170868.tif 000006
【図５】
2011170868.tif 000007
【図６】
2011170868.tif 000008
【図７】
2011170868.tif 000009
【図８】
2011170868.tif 000010
【図９】
2011170868.tif 000011