装置であって、メッセージバス1420、及び制御ノード1406により特徴付けられ、前記制御ノードが、ホストプロセッサ1316と通信するように構成されるホストインタフェース1405、各々前記メッセージバスに結合される、複数のパーティションメッセージパイプライン6134-1~6134-R、6136-1~6136-R、及び6138-1~6138-R、前記メッセージバスに結合されるロード/保存メッセージパイプライン6134-R2、6136-R2、及び6138-R2、各パーティションメッセージパイプライン、前記ロード/保存メッセージパイプライン、及び前記ホストインタフェースに結合されるメッセージキュー6102、各パーティションメッセージパイプライン及び前記ロード/保存メッセージパイプラインに結合されるシーケンシャルプロセッサ6140、及び前記ホストインタフェース及び前記メッセージキューに結合される制御ノードメモリ6114、を有する、装置。請求項1に記載の装置であって、前記パーティションメッセージパイプライン及び前記ロード/保存メッセージパイプラインの各々が、前記メッセージバスに結合されるスレーブインタフェース6134-1~6134-R2、前記メッセージキュー、前記シーケンシャルプロセッサ、及び前記スレーブインタフェースに結合されるメッセージプレプロセッサ6136-1~6136-R2、及び前記メッセージバス及び前記メッセージプレプロセッサに結合されるスレーブインタフェース6134-1~6134-R2、により更に特徴付けられる、装置。請求項1又は2に記載の装置であって、前記制御ノードが、前記シーケンシャルプロセッサと前記制御ノードメモリとの間に結合され、且つ、前記パーティションメッセージパイプラインの各々及び前記ロード/保存メッセージパイプラインに結合されるエクストラクタ6142、により更に特徴付けられる、装置。請求項1、2、又は3に記載の装置であって、前記制御ノードが、前記制御ノードメモリに結合されるレジスタ6144により更に特徴付けられる装置。請求項1、2、3、又は4に記載の装置であって、前記制御ノードが、前記メッセージキューと前記ホストインタフェースとの間に結合されるアービタ6146により更に特徴付けられる。システムであって、ホストプロセッサ1316、及び前記システムメモリに結合される処理クラスタにより特徴付けられ、前記処理クラスタが、メッセージバス1420、データバス1422、パーティション1402-1~1402-Rに配される複数の処理ノード808-1~808-Nであって、各パーティションが、前記データバスに結合されるバスインタフェースユニット4710-1~4710-Rを有し、各処理ノードが、前記メッセージバスに結合される、前記パーティション、前記メッセージバス及び前記データバスに結合されるロード/保存ユニット1408、及び制御ノード1406、を含み、前記制御ノードが、前記ホストプロセッサに結合されるホストインタフェース1405、各々前記メッセージバスに結合される、複数のパーティションメッセージパイプライン6134-1~6134-R、6136-1~6136-R、及び6138-1~6138-R、前記メッセージバスに結合されるロード/保存メッセージパイプライン6134-R2、6136-R2、及び6138-R2、各パーティションメッセージパイプライン、前記ロード/保存メッセージパイプライン、及び前記ホストインタフェースに結合されるメッセージキュー6102、各パーティションメッセージパイプライン及び前記ロード/保存メッセージパイプラインに結合されるシーケンシャルプロセッサ6140、及び前記ホストインタフェース及び前記メッセージキューに結合される制御ノードメモリ6114、を有する、システム。請求項6に記載のシステムであって、前記パーティションメッセージパイプライン及び前記ロード/保存メッセージパイプラインの各々が、前記メッセージバスに結合されるスレーブインタフェース6134-1~6134-R2、前記メッセージキュー、前記シーケンシャルプロセッサ、及び前記スレーブインタフェースに結合されるメッセージプレプロセッサ6136-1~6136-R2、及び前記メッセージバス及び前記メッセージプレプロセッサに結合されるスレーブインタフェース6134-1~6134-R2、により更に特徴付けられる、システム。請求項6又は7に記載のシステムであって、前記制御ノードが、前記シーケンシャルプロセッサと前記制御ノードメモリとの間に結合され、且つ、前記パーティションメッセージパイプラインの各々及び前記ロード/保存メッセージパイプラインに結合されるエクストラクタ6142、より更に特徴付けられる、システム。請求項6、7、又は8に記載のシステムであって、前記制御ノードが、前記制御ノードメモリに結合されるレジスタ6144により更に特徴付けられる、システム。請求項6、7、8、又は9に記載のシステムであって、前記制御ノードが、前記メッセージキューと前記ホストインタフェースとの間に結合されるアービタ6146により更に特徴付けられる、システム。請求項6、7、8、9、又は10に記載のシステムであって、前記システムが、前記データバスと前記ロード/保存ユニットとの間に結合されるデータインターコネクト814により更に特徴付けられる、システム。請求項6、7、8、9、10、又は11に記載のシステムであって、前記システムが、前記制御ノード及び前記ホストプロセッサに結合されるシステムバス1326、1328、前記システムバスに結合されるメモリコントローラ1304、及び前記システムバスに結合されるシステムメモリ1416、によって更に特徴付けられる、システム。図2では、並列処理を実行するSOC用アプリケーションの例が見られる。この例では、撮像デバイス1250が示される。この例えば携帯電話又はカメラであり得る撮像デバイス1250は、概して、画像センサ1252、SOC1300、ダイナミックランダムアクセスメモリDRAM1315、フラッシュメモリ1314、ディスプレイ1254、及び電力管理集積回路PMIC1256を含む。動作では、画像センサ1252は、静止画像又はビデオであり得る画像情報を捕捉することができ、この画像情報はSOC1300及びDRAM1315によって処理され得、不揮発性メモリ即ち、フラッシュメモリ1314に保存され得る。また、フラッシュメモリ1314に保存される画像情報は、SOC1300及びDRAM1315の使用によって、ディスプレイ1254上で使用するために表示され得る。また、撮像デバイス1250は、可搬型であることが多く、電源としてバッテリを含む。SOC1300によって制御され得るPMIC1256は、バッテリ寿命を長持ちさせるために電力使用量の調整を補助し得る。図3では、本開示の実施形態に従ったシステムオンチップ又はSOC1300の例が図示されている。この典型的には、OMAP登録商標等の集積回路又はICであるSOC1300は、概して上述の並列処理を実行する処理クラスタ1400、及び、上で説明及び参照されたホスト環境を提供するホストプロセッサ1316を概して含む。ホストプロセッサ1316は、ワイド即ち、32ビット、64ビット等RISCプロセッサ例えばARMCortex-A9等であり得、バスアービトレータ1310、バッファ1306、ホストプロセッサ1316がインタフェースバス又はIバス1330上で周辺インタフェース1324にアクセスすることを許可するバスブリッジ1320、ハードウェアアプリケーションプログラミングインタフェースAPI1308、及び割り込みコントローラ1322と、ホストプロセッサバス又はHPバス1328上で通信する。処理クラスタ1400は、典型的に、例えば荷電結合デバイス、又はCCDインタフェースであり得、オフチップデバイスと通信し得る機能回路要素1302、バッファ1306、バスアービトレータ1310、及び周辺インタフェース1324と、処理クラスタバス又はPCバス1326上で、通信する。この構成を用いて、ホストプロセッサ1316は、API1308を介して情報を提供する即ち、所望の並列実装に適合するように処理クラスタ1400を構成することができ、一方、処理クラスタ1400及びホストプロセッサ1316はいずれも、フラッシュインタフェース1312を介してフラッシュメモリ1314に、メモリコントローラ1304を介してDRAM1315に、直接アクセスできる。また、JointTestActionGroupJTAGインタフェース1318を介して、テスト及びバウンダリスキャンが実行され得る。図4を参照すると、本開示の実施形態に従った並列処理クラスタ1400の例が示されている。典型的には、処理クラスタ1400はハードウェア722に対応する。処理クラスタ1400は、概して、パーティション1402-1~1402-Rを含む。これらは、ノード808-1~808-N、ノードラッパー810-1~810-N、命令メモリ1404-1~1404-R、及び以下で詳しく説明するバスインタフェースユニット又はBIU4710-1~4710-Rを含む。ノード808-1~808-Nは、各々データインターコネクト814に各々のBIU4710-1~4710-R及びデータバス1422を介して結合され、パーティション1402-1~1402-Rのための制御及びメッセージが制御ノード1406からメッセージ1420を介して提供される。また、グローバルロード/保存GLSユニット1408及び共有機能メモリ1410は、後述のようにデータ移動のための付加的な機能を提供する。それに加えて、レベル3又はL3キャッシュ1412、概して、IC内には含まれない周辺装置1414、典型的にはフラッシュメモリ1314及び/又はDRAM1315、並びにSOC1300内に含まれないその他のメモリであるメモリ1416、及びハードウェアアクセラレータHWAユニット1418が処理クラスタ1400と共に用いられる。また、データ及びアドレスを制御ノード1406に通信するように、インタフェース1405が提供される。処理クラスタ1400は、概して、データ伝送のためにプッシュモデルを使用する。データ伝送は要求応答型のアクセスではなく、概してポステッドライトとして現れる。これは、データ伝送が一方向であるため要求応答アクセスに比べてグローバルインターコネクト即ち、データインターコネクト814の占有を2分の1に減らすという利点を有する。概して、インターコネクト814を介して要求をルーティングし、その後、応答が要求元へルーティングされ、その結果インターコネクト814上で2つの遷移が生成されることは望まれない。プッシュモデルは単一伝送を生成する。これは、ネットワークサイズが増大するとネットワークレイテンシが増大するため、またこのことが要求応答型トランザクションのパフォーマンスを低下させることは避けられないことであるため、スケーラビリティに関して重要である。プッシュモデルは、データフロープロトコル即ち、812-1~812-Nと同様に、グローバルデータトラフィックを、正確さのために用いられるものまで概して最小化する一方、ローカルノードの利用率に対するグローバルデータフローの影響も概して最小化する。大量のグローバルトラフィックであってもノード即ち、808-iのパフォーマンスに対する影響は、通常、皆無に近い。ソースはデータを後述するグローバル出力バッファに書き込み、伝送成功の確認を要求することなく継続する。データフロープロトコル即ち、812-1~812-Nは、概して、インターコネクト814で単一伝送を用い、データをあて先へ移動する最初の試みでの伝送が成功することを確実にする。後述するグローバル出力バッファは例えば最大16出力まで保持することができるため、出力のための瞬時グローバル帯域幅が不充分になることに起因するノード即ち、808-iのストールの可能性が非常に低くなる。更に、瞬時帯域幅は、要求応答トランザクション又は伝送失敗の繰り返しによる影響を受けない。最後に、プッシュモデルはプログラミングモデルに一層密接に適合する。言い換えるとプログラムは自己データをフェッチせずに、その代わりに、プログラムの入力変数及び/又はパラメータは呼び出される前に書き込まれる。プログラミング環境では、入力変数の初期化は、ソースプログラムによるメモリへの書き込みとして行われる。処理クラスタ1400内では、これらの書き込みがポステッドライトに変換され、変数の値をノードコンテキストにポピュレートさせる。後述するグローバル入力バッファは、ソースノードからデータを受け取るために用いられる。各ノード808-1~808-Nのためのデータメモリが単一ポートであるため、入力データの書き込みが、ローカルの単一入力多重データSIMDによる読み出しとコンフリクトすることがあり得る。入力データをグローバル入力バッファへ受け入れ、そこで入力データが空きのデータメモリサイクルを待つことができることによって、この競合は回避される即ち、SIMDアクセスとのバンクコンフリクトはない。データメモリは、例えば32バンクを有し得るため、直ちにバッファがフリーになる可能性が非常に高い。しかしながら、伝送を確認するためのハンドシェイキングがないので、ノード即ち、808-iはフリーのバッファエントリを持つはずである。所望とされる場合は、グローバル入力バッファは、バッファ位置をフリーにするために、ローカルノード即ち、808-iをストールさせてデータメモリに強制的に書き込みを行うことができるが、このイベントは極めて希であるべきである。典型的には、グローバル入力バッファは2つの別々のランダムアクセスメモリRAMとして実装されて、一方がデータメモリへ読み出されるべき状態にある間、他方がグローバルデータを書き込むための状態になり得るようにする。メッセージングインターコネクトは、グローバルデータインターコネクトとは分かれているが、同様にプッシュモデルを使用する。システムレベルでは、所望のスループットにスケーリングされた多数のノードを備えるSMP又は対称型多重処理のように、ノード808-1~808-Nが処理クラスタ1400内で複製される。処理クラスタ1400は極めて多数のノードにまでスケーリングし得る。ノード808-1~808-Nはパーティション1402-1~1402-Rにグループ分けされ、各パーティションは1つ又は複数のノードを有する。パーティション1402-1~1402-Rは、ノード間のローカル通信を増大させることによって及びより大きなプログラムで一層大量の出力データを計算させることによってスケーラビィリティを促進し、その結果、所望のスループット要件を達成する可能性を更に高める。パーティション即ち、1402-i内では、ノードはローカルインターコネクトを用いて通信し、グローバルリソースを必要としない。また、パーティション即ち、1404-i内のノードは、排他的命令メモリを用いる各ノードから共通命令メモリを用いる全てのノードまで、任意の粒度で、命令メモリ即ち、1404-iを共有することができる。例えば3つのノードが命令メモリの3つのバンクを共有し、第4のノードが命令メモリの排他的バンクを有することができる。ノードが命令メモリ即ち、1404-iを共有するとき、それらのノードは、概して、同じプログラムを同期的に実行する。また、処理クラスタ1400は非常に多数のノード即ち、808-i及びパーティション即ち、1402-iをサポートし得る。しかしながら、1つのパーティションについて4以上のノードを持つと概してノンユニフォームメモリアクセスNUMAアーキテクチャに類似するため、パーティション毎のノードの数は通常は4つに限定されている。この例では、パーティションは、後でインターコネクト814に関連して説明する1つ又は複数のクロスバーを介して接続される。クロスバーは概して横断帯域幅が一定している。処理クラスタ1400は、現在、サイクル毎に1ノード幅のデータ例えば64、16ビットピクセルを伝送するように設計されており、4サイクルに亘り、1サイクルにつき16ピクセルの4伝送に区分される。処理クラスタ1400は、概して、レイテンシトレラントであり、インターコネクト814がほぼ飽和この状態を達成するのは合成プログラム以外では極めて難しいことに留意されたいであっても、ノードバッファリングが、概して、ノードストールを防止する。典型的には、処理クラスタ1400はパーティション間で共有する下記のグローバルリソースを含む。1制御ノード1406。これはメッセージバス1420でシステムワイドのメッセージングインターコネクト、イベント処理及びスケジューリング、及びホストプロセッサ及びデバッガこれらは全て後で詳しく説明するへのインタフェースを提供する。2GLSユニット1408。これはプログラマブルRISCプロセッサを含み、システムデータ移動を可能にする。システムデータ移動は、GLSデータ移動スレッドとして直接コンパイルされ得るCプログラムによって記述され得る。これによって、ソースコードを修正することなく、クロスホスト環境でのシステムコードの実行が可能になり、また、システム又は後述するSIMDデータメモリ内の任意のアドレス変数のセットから別の任意のアドレス変数のセットに移動できるため、ダイレクトメモリアクセスよりもより一般的である。GLSユニット1408は、例えば0-サイクルのコンテキストスイッチを備え、マルチスレッド化され、例えば最大16スレッドまでサポートする。3共有機能メモリ1410。これは、一般的なルックアップテーブルLUT及び統計収集機能ヒストグラムを提供する大型共有メモリである。また、これは大型共有メモリを使用して、リサンプリング及び歪補正等のノードSIMDによりコストの理由で充分サポートされていないピクセル処理をサポートし得る。この処理はネイティブタイプとして、スカラ、ベクトル、及び2Dアレイを実装する例えば6発行命令RISCプロセッサ即ち、後で詳しく説明するSFMプロセッサ7614を用いる。4ハードウェアアクセラレータ1418。これは、プログラマビリティを必要としない機能のため、或いは電力及び/又は面積を最適化するために組み込まれ得る。アクセラレータは、サブシステムにはシステム内の他のノードとして現れ、制御及びデータフローに参加し、イベントを作成可能であり、スケジューリング可能である。またデバッガにとっては可視的である。ハードウェアアクセラレータは、適用可能であるときは、専用のLUT及び統計収集を有し得る。5データインターコネクト814及びシステムオープンコアプロトコルOCPL3接続1412。これらは、ノードパーティション、ハードウェアアクセラレータ、及びシステムメモリ、及び、データバス1422上の周辺装置の間のデータ移動を管理する。ハードウェアアクセラレータは、L3へのプライベート接続も有し得る。6デバッグインタフェース。これらは、図には示されていないが、本明細書中に記載される。制御ノード1406は、パーティション1402-1~1402-R、共有された機能メモリ1410、GLSユニット1408、及びハードウェアアクセラレータ1418間を流れるメッセージトラフィックを扱うことを担い得る。これらのメッセージは、初期化メッセージ及び安定状態メッセージとして分類され得る。初期化メッセージは、メッセージノード1406自体を制御することが意図される、例えば、GLSユニット1408又は制御ノードデータメモリ初期化メッセージからのアクション更新リストメッセージを含む。制御ノード1406に対し意図されるメッセージは、アクションリストメモリを初期化するためか又は制御ノード1406から何らかの種類のインタラプトを生じるためいずれかのアクションリストメッセージ例えばHALT_ACKメッセージである。これらのメッセージは、{SEGID、ノードID}組合せを用いることにより識別される。しかし、図5及び6に移ると、制御ノード1408のための一般的構造を見ることができる。好ましくは、制御ノード1408は、システムワイドメッセージングインターコネクト、事象処理及びスケジューリング、及びホストプロセッサスレーブへのインタフェースを実装することができる。制御ノード1408により実装され得る機能の一例は次の通りである:1メッセージの配路及び分布。典型的に、全てのメッセージは制御ノード1406を介して配路され得、制御ノード1406は、デバッグのためのメッセージトレースを生成する手段を提供することができる。これは、この中央集中分布ポイントがないと生じ得る競合条件を避けるために、事象通知をシリアル化することもできる。2シーケンス化及び制御のためのメッセージの処理。3データ/アドレス及びインタラプトインタフェースを含み、ホストプロセッサをインタフェースすること。4ホストプロセッサ又は特殊化されたデバッグポートのいずれかによりデバッグをサポートすること。5トレースポートを介してトレースメッセージを提供すること。6メッセージキューを提供すること。また、制御ノードは下記を担っている:1入力{セグメントID。ノードID}ヘッダー情報に基づいて、入力処理クラスタ1400メッセージを適切なポートに配路すること。2そのアクションリストRAMにおける情報に基づいて、プロセス終了メッセージ内部的に処理すること。3ホストインタフェースが内部レジスタを構成できるようにすること。4ホストがアクセスしていない場合デバッグインタフェースが内部レジスタを構成できるようにすること。5アクションリストRAMが、ホスト/デバッガインタフェースにより又はメッセージングインタフェースを介してアクセスされ得るようにすること。6制限なしのメッセージ処理を可能にするアクションリスト更新メッセージのためのメッセージングキューをサポートすること。7メッセージキューにおけるアクションリストタイプ符号化を扱うこと。8アップストリーム監視/デバッグのため全ての処理されたメッセージをATBトレースインタフェースに配路すること。9メッセージング要求に基づいてインタラプトをアサートすること。図5に示すように、制御ノード1406は概して、メッセージキュー6102、ノード入力バッファ6134、及び出力バッファ6124で構成される。典型的に、メッセージキュー6102は、ホストプロセッサからインタフェース1405を介して入力メッセージ6104を受け取る。これらの入力メッセージ6104は、データ即ち、メッセージコンテンツ6106及びアドレス即ち、オペコード6108、セグメントID6110、及びノードID6112を概して含む。ノード入力バッファ6134は、概して、ノード即ち、808-iからメッセージを受け取り、アクションリストエントリ処理又はアクションリスト6116これは、プログラムID/スレッドID6118、セグメントID6120、及びノードID6122を含み得るを保存することができる制御ノードメモリ6114を概して含む。出力バッファ6124は概して、データ即ち、メッセージコンテンツ6132及びアドレス即ち、オペコード6126、セグメントID6128、及びノードID6130を有する出力メッセージを保存し、これらは、ノード即ち、808-i又はトレース及びデバッグハードウェアへ送信され得る。図6に移ると、制御ノード1406のアーキテクチャを更に詳細に見ることができる。図示するように、制御ノード1406は、スレーブインタフェース6134-1~6134-R及びマスタインタフェース6138-1~6138-Rを介してパーティション1402-1~1402-R又はノードと、スレーブインタフェース6134-R1及びマスタインタフェース6138-R1を介してGLSユニット1408と、インタフェース1405、デバッガを介してインタフェース6133を介してホストプロセッサと、及びインタフェース6135を介してトレースと、相互作用することができる。また、制御ノード1406は更に、メッセージプレプロセッサ6136-1~6136-R1、シーケンシャルプロセッサ6140、エクストラクタ6142、レジスタ6144、及びアービタ6146を概して含む。典型的に、入力スレーブインタフェース6134-1~6134-R1は概して、アップストリームモジュール即ち、GLSユニット1408からの全ての進入スレーブアクセスを扱うことを担っている。スレーブとマスタとの間のプロトコルの一例を図7で見ることができる。これは、スレーブインタフェース即ち、6134-1に提供されるデータは、制御ノード1406により受け取られると仮定され得るが、大抵の場合そうはならない。データストールは内部的に生成され、これはマスタへSDATAACCEPTをゲートする。マスタは、対応するSDATAACCEPTがスレーブインタフェースにより送られるまで、MDATA値を保持すると予期される。メッセージプレプロセッサ6138-1~6138-R1は、概して、制御ノード1406が現在のメッセージで動作するべきか又はそれを転送するべきか判定することを担っている。これは、先ずラッチされたヘッダーバイトを復号することによって決まる。下記の表1は、制御ノード1406がアップストリームマスタから受信したとき復号及び動作することができる、メッセージのリストの例を示す。示すように、{SEGID、ノードID}組合せが有効出力ポートを示すとき、メッセージが適切な退出ノードに転送される。制御ノードデータメモリ初期化メッセージは、アクションRAM初期化のために用いられる。一例として、制御ノード1410がこのメッセージを受け取るとき、制御ノード1410は、データフィールド内に含まれるエントリ情報を検査する。エントリフィールドは通常、終了ヘッダーを除いたアクションリストエントリの数を示す。例えば、更新されるべきアクションリストエントリの数が1である即ち、アクションリスト0場合、エントリ=1であり、アクションリスト0及びアクションリストlが更新されるべき場合、エントリ=2である。従って、エントリの有効範囲は1->246である。アクションリストエントリの数をビートの総数を超える例えば32とするここで、最大ビートカウントは例えば32である場合がある。例えばアクションリストエントリの数が19である場合、メッセージに対するデータビートの総数は1エントリ8ノード終了ヘッダー8スレッド終了ヘッダー2015のアクションリストエントリは、20ビートに変換する=37ビートである。アップストリームは、これを2ビート第1のパケットで32ビート及び次のパケットで5ビートに分割すると考えられる。シーケンシャルプロセッサ又はシーケンサ6140は、種々のメッセージプレプロセッサ6136-1~6136-R1から受け取るインディケーションに少なくとも部分的に基づいて、制御ノードメモリ6114へのアクセスをシーケンス化する。シーケンサ6140が、概して終了メッセージに用いられるそのアクションを終了した後、それは、メッセージが伝送のため準備できていることをメッセージフォワーダ又はマスタインタフェース6138-1~6138-R1に示す。メッセージフォワーダ即ち、6138-1がメッセージ受け取り、シーケンサ6140をリリースすると、それは次の終了メッセージへ移る。同時に、それは更に、メッセージプレプロセッサ即ち、6136-1に、終了メッセージに対しアクションが終了したことを示す。これは、新しいメッセージを受け取るためのメッセージバッファのメッセージプレプロセッサ即ち、6136-1のリリースをトリガする。メッセージフォワーダ即ち、6138-1は、それがそのメッセージプレプロセッサ即ち、6136-1だけでなくシーケンサ6140から受け取った全てのメッセージを転送する。メッセージフォワーダ即ち、6138-1は、制御ノード1406により構築された/転送されたメッセージを送るため、マスタ退出ブロックと通信することができる。対応するマスタが伝送の終了を示すと、メッセージフォワーダ即ち、6138-1は、対応するメッセージプレプロセッサ即ち、6136-1をリリースするべきであり、これがメッセージバッファをリリースする。図8に移ると、メッセージ6104を更に詳細に見ることができる。図示するように、メッセージ6104これは制御ノード1406により受け取られ得るは概して、9ビットヘッダーこれは概して、メッセージ6104のアドレス部に対応し得る及び1又はそれ以上であり、例えば32ビットまでの、データビットこれは概して、データ部又はメッセージ6104のメッセージコンテンツ6106に対応し得るを含む。オペコード6108これは概して3ビットを含むはどのアクションが制御ノード1406により取られるべきかを判定することができる。オペコード6108に加えて及び例えば、メッセージコンテンツ6106の上位4ビット即ち、ビット28~31は、オペコード拡張ビット6202として機能し得る。下記の表2は、オペコードオペコード拡張ビットを含むの例を示す。多くの場合、制御ノード1406は典型的に、それを正しい宛先マスタポートに転送することを除き、メッセージ即ち、6104で動作しない。しかし、制御ノードは、メッセージが、それにアドレス指定されたセグメントID6110及びノードID6112組合せを含むとき、アクションを取ることができる。下記の表3は、制御ノード1406によりサポートされ得る、種々のセグメントID6110及びノードID6112組合せの例を示す。図9に移ると、終了メッセージ6300のフォーマットの一例を見ることができる。制御ノード1406が終了メッセージ6300を受け取ると、制御ノード1406は下記のステップを取ることができる。先ず、制御ノード1406は、終了メッセージ6300がノード即ち、808-iからか又はGLSユニット1408からかを判定し、これはセグメント6314及び6310に基づき得、この結果は、制御ノードメモリ6114へのベースアドレスを形成することできる。次に、制御ノード1406は、それがスレッド終了か又はプログラム終了かを判定することができるこれは、セグメント6312に基づき得る。スレッド終了の場合、データビット6304内即ち、セグメント6308内に含まれるスレッドIDを、アクションヘッダーを抽出するためのインデックスとして用いることができる。プログラム終了の場合、データビット6304即ちセグメント6310に含まれるノードIDを、ノードメモリ6114を制御するためのインデックスとして用いることができる。図10において、終了メッセージ扱いフロー6400の一例を見ることができる。制御ノード1406が、終了メッセージ即ち、6300が受け取られ、終了メッセージ即ち、6300のソースに応じているとを判定すると、アクションアドレスノード終了で0~3及びGLSユニット終了で4~7が読み取られる。即ち、アクションは、ノード終了アクションヘッダー6402又はロード/保存終了アクションヘッダー6404から判定され得る。スレッドID又はノードIDはその後、正確なヘッダーワード6406を判定するために用いられ得る。典型的に、各ヘッダーワード6406は、例えば10ビットであり得、制御ノードメモリ6114内のワード毎に4ヘッダービットがあり得るそのうちの1つが抽出され得る。その後、ヘッダーワード6406は有効性がチェックされ得、スレッド用又はプログラムスレッド用として用いられるアクションテーブルベース即ち、ビット7:0が抽出され得る。プログラムスレッドに用いられるとき、下記の式を用いることができる。ベースアドレス=Action_table_baseProgID2、又はベースアドレス=Action_table_baseProgID4ヘッダーワード6406のビット-8は、乗算器を制御することができ即ち、2では0であり、4では1、一方、ProgIDはプログラム終了メッセージから抽出され得る。その後、メモリ6114からアクションリスト6116を抽出するためにベースアドレスを用いることができる。この41ビットワードは、例えば、宛先ノードへのメッセージとして送られるべきヘッダーワード及びデータ-ワードに分割される。アクションリスト内のメッセージエントリのフォーマットは概して、ヘッダー即ち、メッセージオペコード、セグメントID、及びノードID及びメッセージペイロードを含む。このメッセージエントリは、通常のエントリだけでなく特殊な符号化の両方を表し得るそれらの例は、下記の表4で見ることができる。上記表28に示すようなアクションリストエンドは概して、アクションリストメッセージの終わりを知らせる。典型的に、この符号化では制御ノード1406は、メッセージID及びセグメントIDが0に等しいかどうかを判定することができる。等しくない場合、ヘッダー及びデータワードが送られ、そうでない場合、エンドに達する。メッセージの数が許容可能なエントリリストを超えるとき、上記表28に示すような次のリストエントリ及びメッセージ継続符号化を用いることができる。典型的に、次のリストエントリ符号化では制御ノード1406は、メッセージID及びセグメントIDが0に等しいかを判定することができる。等しくない場合、ヘッダー及びデータワードが送られ、そうでない場合、次のエントリへの移動がある。ノードIDが4’b1000例えばに等しい場合、次のリストエントリのための情報が抽出されて、制御ノードメモリ6114内の新しいアドレスへのベースアドレスを安定させる。しかし、ノードIDが1に等しい場合、符号化がメッセージ継続であり、次のアドレスを読み取らせる。ホストインタラプトインフォエンド符号化上記表28に示すようなは概して、ホストプロセッサをインタラプトするための特殊な符号化である。この符号化が制御ノード1406により復号されるとき、符号化されたワードビット即ち、ビット31:0のコンテンツは、内部レジスタに書き込まれ得、ホストインタラプトがアサートされる。ホストは、状態レジスタを読み出し得、インタラプトをクリアにし得る。メッセージオペコード、セグメントID、及びノードIDの例は、それぞれ、000’b、00’b、及び0010’bであり得る。デバッグ通知インフォエンド符号化上記表28に示すようなは概して、ホストインタラプトインフォエンド符号化に類似する。しかし、違いは、この種の符号化がデバッグとして遭遇されるときインタラプトがアサートされる点である。デバッガは状態レジスタを読み出し得、インタラプトをクリアし得る。メッセージオペコード、セグメントID、及びノードIDの例は、それぞれ、000’b、00’b、及び0010’bであり得る。受け取られるヘッダーワードは、進入側のソースマスタによって送られるマスタアドレスである。退出側では、典型的に、考慮すべき2つのケースがある:転送及び終了である。転送では、バッファされたマスタアドレスは、メッセージが転送されるべき場合、退出マスタで転送され得る。終了では、進入メッセージが終了メッセージである場合、退出マスタアドレスは、メッセージ、セグメント、及びノードIDの組み合わせであり得る。また、進入側のデータワードは、進入ポートのスレーブデータバスから抽出され得る。退出側では、こちらも典型的に、考慮すべき2つのケースがある:転送及び終了である。転送では、退出側のデータワードは、進入側からのバッファされたメッセージであり得、終了では、例えば32ビットメッセージペイロードが転送され得る。制御ノード1406は、ペイロードカウントなしに一連のアクションリストエントリを扱うことができる。即ち、ペイロードカウント又はリンクリストエントリなしのアクションリストエントリのシーケンスは、制御ノード1406により扱われ得る。最終的にはアクションリストエンドメッセージがどこかに挿入されると仮定される。しかしこのシナリオでは、制御ノード1406は概して、それが第1の新しいアクションリストエントリに遭遇するまで、第1の一連のペイロードをバーストして送り得る。その後、後続のサブセットがバーストとして設定される。アクションリストエンドが遭遇されるまでこのプロセスが反復される。上記シーケンスは、制御ノードメモリ6114に保存され得る。このシーケンスの例外は、送るべき単一ビートシーケンスがあるとき生じ得る。この場合、アクションリストエンドは各ビート後に付加されることを要求する。次のリストエントリを用いて、制御ノードは、任意の長さのリンクされたエントリをつくる方式を提供する。次のリストエントリが遭遇されると常に、読み出しポインタは新しいアドレスで更新され、制御ノードは通常通り処理を継続する。この状況では、最終的にはアクションリストエンドメッセージがどこかに挿入されると仮定される。また、制御ノード1406は、次のリストエントリによりポイントされる通りにその内部ポインタを継続的に調節し得る。このプロセスは、アクションリストエンド又はエントリ開始の新しいシリーズが遭遇されるまで反復され得る。上述のシーケンスは、制御ノードメモリ6114に保存され得る。制御ノード1406は更に、多数のペイロードカウントを扱うこともできる。一連のメッセージ内でアクションリストエンド又はエントリの新しいシリーズに遭遇することなく多数のペイロードカウントが遭遇する場合、制御ノード1406はその内部バーストカウンタ長さを自動で更新し得る。制御ノード1406により扱われるビートの最大数は、例えば32とし得る。何らかの理由でビート長さが32より大きい場合、終了メッセージの場合は、制御ノード1406がそのビートを更に小さなサブセットに分け得る。各サブセットはこの例では最大32ビートを有し得る。このシナリオは典型的に、ペイロードカウントが32より大きい値に設定される、又は多数のペイロードカウントが遭遇される、又は一連のメッセージ継続メッセージがアクションリスト又は新しいシーケンス開始なしに遭遇されるときに起こる。例えばシーケンス内のペイロードカウントが48に設定される場合、制御ノード1406は、これを32ビートシーケンスに分けられ得、その後17ビートシーケンス161が続き、それを同じ退出ノードに送る。メッセージプレプロセッサ6136-1~6136-R1もHALT_ACK、ブレークポイント、トレースポイント、ノード状態応答、及びプロセッサデータメモリ読み出し応答メッセージを扱うことができる。パーティション即ち、1402-1がこれらのメッセージの一つを送信するとき、メッセージプレプロセッサ即ち、6136-1は、データを抽出し、それを、デバッガ又はホストのいずれかによりアクセスされるべきデバッガFIFOに保存することができる。HALT_ACKメッセージは概して、ヘッダー及びデータこれらは集合的に符号化ビット、コンテキスト番号、セグメントID、ノードID、及び現在のプログラムカウンタを含むを含む。HALT_ACKメッセージが進入ポートの一つで受け取られると、制御ノード1406は、データこれは概して2つの32ビットデータセグメント又はビートを含むを抽出し、それをデバッガFIFODEBUG_READ_PARTレジスタを介してアクセスされ得るに保存することができる。概して、制御ノード1406によりアサートされるインタラプトはない。ソフトウェアは、概してシステム同期化を維持することを担っており、進入ノード毎に両方のワードを読み出すべきである。ブレークポイントメッセージは概して、ヘッダー及びデータこれらは集合的に符号化ビット、トレースポイントマッチこれは、0に設定される、ブレークポイント識別子、コンテキスト番号、セグメントID、ノードID、及び現在のプログラムカウンタを含むを含む。ブレークポイントメッセージが進入ポートの一つで受け取られると、制御ノード1406は、データこれは概して2つの32ビットデータセグメント又はビートを含むを抽出し、それをDEBUG_READ_PARTレジスタを介してアクセス可能なデバッガFIFOに保存することができる。概して、インタラプトが、制御ノード1406によりデバッガへアサートされ得るホストは、概してインタラプトを受け取らない。ソフトウェアは、進入ノード即ち、808-i毎に両方のワードを読み出すべきである。ノード状態読み出し応答メッセージは概して、ヘッダー及びデータこれらは集合的に符号化ビット、データワードの数、及び後続のビートに対するデータを含むを含む。ノード状態読み出し応答メッセージが進入ポートの一つで受け取られると、制御ノード1406は、データビート全部で1DATA_COUNTを抽出し、それをデバッガFIFODEBUG_READ_PARTレジスタを介してアクセスされ得るに保存するべきである。概して、制御ノード1406によりアサートされるべきインタラプトはない。ソフトウェアは、概してシステム同期化を維持することを担っており、進入ノード毎に全てのワードを読み出すべきである。シーケンシャルプロセッサ6140は概して、種々のメッセージプレプロセッサ6136-1~6136-R1から受け取られたインディケーションに少なくとも部分的に基づいて、制御ノードメモリ6114へのアクセスをシーケンス化する。プロセッサ6140は、制御ノードメモリ6140へのシーケンシャルアクセスを開始する。シーケンサが終了メッセージのためのそのアクションを終了した後、それは、メッセージが伝送のため準備できていることをメッセージフォワーダに示す。メッセージフォワーダが、そのメッセージを受け取り、シーケンサ6140をリリースすると、それは次の終了メッセージへ移る。同時にそれはまた、メッセージプレプロセッサ即ち、6136-1に、終了メッセージに対するアクションが終了したことを示す。これは、新しいメッセージを受け取るためのメッセージバッファのメッセージプリプロセッサリリースをトリガする。メッセージフォワーダは、その名の通り、それがメッセージプレプロセッサ6136-1~6136-R1だけでなくシーケンサ6140から受け取った全てのメッセージを転送する転送メッセージ。メッセージフォワーダブロックは、制御ノードにより構築された/転送されたメッセージを送るため、OCPマスタ退出ブロックと通信する。対応するOCPマスタが伝送の終了を示すと、メッセージフォワーダは、対応するメッセージプレプロセッサをリリースし、これがメッセージバッファをリリースする。ホストインタフェース及び構成レジスタモジュールは、制御ノード1406を制御するため、ホストプロセッサ1316のためのスレーブインタフェースを提供する。ホストインタフェース1405は、ホストプロセッサ1316への非バースト単一読み出し/書き込みインタフェースである。これは、同じ非ポステッドライト方式でポステッド及び非ポステッドOCP書き込みの両方を扱う。アクションリスト6116内のエントリは、概して、ホスト読み出し用に又はホストライト用に通常成されないマッピングされたメモリである。エントリが書き込まれるべきとき、制御ノード1406は、コンテンツをパックド形式で送り、これは図11で見ることができる。パックドフォーマット7100を、32ビットデータラインを用いて41ビットコンテンツを表すために用いることができる。例えば及び図示するように、41ビットリストエントリ-0を書き込むため、2つの書き込みがホストによって実行されるべきである。図11では、エントリ7102~7122は、action_list_entry_0~action_list_entry_Nの書き込みを示す。この例に示すように、第1の書き込みは、action_list_entry_0の下位32ビット即ち、ビット31:0を有するべきでありこれはエントリ7102で見ることができる、第2の書き込みは上位9ビット即ち、ビット40:32を有し得、これは、エントリ7104の下位ビット即ち、ビット8:0を占有し得る。action_list_entry_0に対し第2の32ビットワードを書き込む間、action_list_entry_1ビット[20:0]がコラプトしないようにも注意すべきである。このリザーブはアクションエントリ-1に書き込む間にもあてはまる。この場合、action_list_entry_0上位9ビットはコラプトすべきではない。制御ノード1406はまた、概して、或る場合例えば、エントリ7104及び7106のaction_list_entry_1ビット20:0及びビット40:21にデュアル書き込みを扱い得る。エントリ-1ビット7104はエントリ-0ビット7104と共にホストにより先ず書き込まれる。この例では、制御ノード1406は先ずエントリ-0データ7102を書き込み得、その後エントリ-1データ7104が続く。ホストsrespは通常、2つの書き込みが終了した後送られる。また、ホストによって書き込まれるべき、ノード7202~7212に対する及びスレッド7214~722に対する終了ヘッダーは、概して10ビットヘッダーである。制御ノード1406は、ヘッダーの制御ノードメモリ6114のラインエントリへの連結を内部的に扱うことができる。読み出し側で制御ノード1406は、図示するように終了ヘッダー値に戻るべきである。アクションリストエントリは、CONTROL_NODE_CNTLレジスタのビット-2を設定する下位32ビットを読むため0に設定し、9ビットを読むため-1に設定することにより、アンパックドフォーマットでアクセスされ得る。典型的に、パックドフォーマット読み出しサポートはない。デバッガインタフェース6133は、ホスト又はシステムインタフェース1405に類似する。しかし、これは概して、ホストインタフェース1405より低い優先度を有する。そのため、ホストインタフェース1405とデバッガインタフェース6133との間にアクセス衝突がある場合は常に、ホストインタフェース1405が制御する。制御ノード1406は、概して、ホストが制御ノード1406へのそのアクセスを終了するまで如何なる受領又は応答信号を送信しない。制御ノード1406は、制御ノードメモリ6114の更新、及び進入ポートの一つにより又はホスト/デバッガによりパックドフォーマットで送られたメッセージの転送に関連するメッセージを処理することができるメッセージキュー6102をサポートすることができる。メッセージキュー6102は、パックドフォーマットメッセージをMESSAGE_QUEUE_WRITEレジスタに書き込むことにより、ホスト又はデバッガによりアクセスされ得る。進入ポートも、マスタアドレスをbl00_11_0001オペコード=4、セグメントID=3、ノードID=1に設定することにより、メッセージキュー6102にアクセスすることができる。メッセージキュー6102は概して、ペイロードデータ即ち、アクション0~アクションNがパックドフォーマットとなることを予期する。典型的に、各アクション即ち、アクション0~アクションN内の上位9ビットは、メッセージキュー6102に、メッセージキュー6102が取るべきアクションのタイプを示すことができる。図12に示すように、各アクション又はメッセージは概して、ヘッダー即ち、メッセージオペコード7402、セグメントID7404、及びノードID7406及びメッセージペイロードで構成される。上位9ビット又はヘッダーは更に、図12においてメッセージ7410~7420に対して示される特殊な符号化方式を用いることもできる。図示するように、メッセージ7402のペイロードカウントは、メッセージキュー6116から転送されたメッセージのバースト寸法を示すために用いることができる制御ノード1406は、最終バースト寸法を得るためにそれに1を付加すべきである。ペイロードカウントは、CONTROL_DMEM_INITメッセージについては無視され得る。メッセージ7420に示すようなNOPメッセージは、制御ノード1406に現在のアクションワードに対し動作しないよう示すために用いることができる。メッセージの残りメッセージ7404~7410に示すは上述のアクションリストエントリと同じ機能を実行できる。また、メッセージキュー6116は、図13に示すように制御ノードメモリ6114に対する特殊なアクション更新メッセージ7500を扱う。図で見ることができるように、このメッセージ3500は概してヘッダー7502及びデータ7504を含む。データ7504のセグメント7506、7508、及び7510は概して、制御ノードメモリ6114内の符号化ビット、エントリ上位9ビット、及びライン番号に対応する。このメッセージ7500は概して、メッセージキュー6102を介して制御ノードメモリ6114のライン更新によりラインをイネーブルするように提供される。制御ノード1406は典型的に、2つのインタラプトラインを含む。これらのインタラプトは概してアクティブローインタラプトであり、例えばホストインタラプト及びデバッグインタラプトである。ホストインタラプトは、下記の事象のためにアサートされ得る:すなわち、一連のアクションリストアクションの終わりのアクションリスト符号化が、ホストインタラプトを備えたアクションリストエンドである場合;メッセージキューによって処理されるアクションがホストインタラプトを備えたアクションリストエンドを有する場合;又は、事象トランスレータがアンダーフロー又はオーバーフロー状態を示す場合、である。これらの場合において、HOST_IRQSTATUS_RAWレジスタ及びHOST_IRQSTATUSを読み出すこととは別としてホストは更に、アクション事象によって生じるインタラプトに対しACTION_HOST_INTRレジスタを読み出すことによりアクセスされ得るFIFOを読み出すことができる。事象トランスレータによって生じる事象では、ホスト即ち、1316は、ET_HOST_INTRレジスタを読み出す。インタラプトは、HOST_IRQENABLE_SETレジスタに1を書き込むことによりイネーブルされ得る。イネーブルされたインタラプトは、HOST_IRQSTATUS_CLRレジスタに1を書き込むことによりディセーブルされ得る。ホストがインタラプトの処理を終了したとき、これは概して、HOST_IRQ_EOIレジスタに0を書き込むと予期される。これらに加えて、インタラプトは、HOST_IRQENABLE_SETレジスタを用いてインタラプトをイネーブルした後HOST_IRQSTATUS_RAWレジスタのビットに1を書き込むことにより、テスト目的のためにアサートされ得る。インタラプトをクリアするため、ホストは、HOST_IRQSTATUSレジスタに1を書き込むべきである。これは通常、インタラプトのアサート及びディアサートをテストするために用いられる。ノーマルモードにおいて、インタラプトは、ACTION_HOST_INTRレジスタ及びET_HOST_INTRレジスタによりポイントされたFIFOが空でない限り、アサートされたままであるべきである。ソフトウェアは、概してFIFOから全てのワードを読むことを担っており、CONTROL_NODE_STATUSレジスタ又はET_STATUSレジスタのいずれかを読み出すことによりFIFOの状態を得ることができる。デバッグインタラプトは、下記の事象のためにアサートされ得る:すなわち、一連のアクションリストアクションの終わりのアクションリスト符号化が、デバッグインタラプトを備えたアクションリストエンドである場合;メッセージキューによって処理されるアクションがデバッグインタラプトを備えたアクションリストエンドを有する場合;又は、事象トランスレータがアンダーフロー又はオーバーフロー状態を示す場合、である。これらの場合において、DEBUG_IRQSTATUS_RAWレジスタ及びDEBUG_IRQSTATUSレジスタを読み出すこととは別としてホスト/デバッガは更に、アクション事象によって生じるインタラプトに対しDEBUG_HOST_INTRレジスタによりアクセスされ得るFIFOを読み出すことができる。事象トランスレータによって生じる事象では、ホスト即ち、1316は、ET_DEBUG_INTRレジスタを読み出す。この場合、DEBUG_IRQSTATUSRAWレジスタ及びDEBUG_IRQSTATUSレジスタを読み出すこととは別としてデバッガは更に、DEBUG_READ_PARTレジスタを読み出すことによりアクセスされ得るFIFOを読むことができる。インタラプトは、DEBUG_IRQENABLE_SETレジスタ内のビットの一つに1を書き込むことによりイネーブルされるべきである。イネーブルされたインタラプトは、DEBUG_IRQENABLE_CLRレジスタに1を書き込むことによりディセーブルされ得る。デバッガがインタラプトの処理を終了すると、それはDEBUG_IRQ_EOIレジスタに1を書き込むことが予期されるべきである。これらに加えて、インタラプトは、DEBUG_IRQENABLE_SETレジスタを用いてインタラプトをイネーブルした後DEBUG_IRQSTATUS_RAWレジスタのビットに1を書き込むことにより、テスト目的のためにアサートされ得る。インタラプトをクリアするため、ホストは、DEBUG_IRQSTATUSレジスタにおける対応するビットに1を書き込むべきである。これは通常、インタラプトのアサート及びディアサートをテストするために用いられる。ノーマルモードでは、インタラプトは、DEBUG_HOST_INTRレジスタ及びET_DEBUG_INTRレジスタによりポイントされたFIFOが空でない限り、アサートされたままであるべきである。ソフトウェアは、FIFOから全てのワードを読むことを概して担っており、CONTROL_NODE_STATUSレジスタ又はET_STATUSレジスタのいずれかを読み出すことにより、FIFOの状態を得ることができる。事象トランスレータは、それが、外部IPからインタラプトを扱う一方で、オーバーフロー又はアンダーフロー状態を検出すると常に、ベクトル番号及び制御ノードへのオーバーフロー/アンダーフローインディケーションと共にet_interrupt_enをアサートする。制御ノード1406は、読むホスト又はデバッガのためFIFO内のこれらのインディケーションをバッファする。オーバーフロー/アンダーフローインディケーションがETブロックから来るとき、制御ノード1406は、FIFO内のベクトル番号と共にオーバーフロー/アンダーフローインディケーションを保存し、エラーが生じたとインタラプトを介してホスト/デバッガに示す。ホスト又はデバッガは、対応するFIFOを読み出すことを担っている。本発明に関連する分野の当業者であれば、記載された実施形態及び実現された付加的な実施形態に本発明の請求の範囲内から逸脱することなく変更が行われることが理解されるであろう。