"装置であって、第1のレジスタファイル4358-1~4358-8、7902を有する計算ユニット4308-1~4308-M、7607-1~7607-Pと、前記計算ユニットに結合されるプロセッサ4322、7614であって、前記第1のレジスタファイルからのデータ移動命令MFVVRを有する命令セットを含む前記プロセッサと、を特徴とし、前記プロセッサが、第2のレジスタファイル5206と、前記第1のレジスタファイルのためのレーンアドレスを示すための第1のアドレスリードrisc_is_uaと、前記第1のレジスタファイルのための読み出しアドレスを示すための第2のアドレスリードrisc_is_raと、データを転送するためのデータインタフェースリードnode_regf_rdと、前記データ移動リード上の信号の状態が変更されるとき、前記第1のレジスタファイルから前記第2のレジスタファイルへの前記データ移動命令MFVVRを示すためのデータ移動リードrisc_is_mfvvrと、を含む、装置。請求項1に記載の装置であって、前記第1のアドレスリードrisc_is_uaが複数の第1のアドレスリードrisc_is_uaを更に特徴とし、前記第2のアドレスリードrisc_is_raが複数の第2のアドレスリードrisc_is_raを更に特徴とする装置。請求項2に記載の装置であって、前記複数の第1のアドレスリードrisc_is_ua及び前記複数の第2のアドレスリードrisc_is_raが各々5ビット幅である、装置。請求項1、2、又は3に記載の装置であって、前記プロセッサが、上位ハーフ書き込み、下位ハーフ書き込み、フル書き込み、又は読み出し、のいずれを実行するかを示すためのハーフワードリードrisc_is_hwzを含む装置。請求項1、2、3、又は4に記載の装置であって、前記ハーフワードリードrisc_is_hwzが複数のハーフワードリードrisc_is_hwzを更に特徴とする装置。請求項5に記載の装置であって、前記複数のハーフワードリードrisc_is_hwzが2ビット幅である装置。請求項1、2、3、4、5、又は6に記載の装置であって、前記データインタフェースリードnode_regf_rdが、複数のデータインタフェースリードnode_regf_rdを更に特徴とする装置。請求項1、2、3、4、5、6、又は7に記載の装置であって、前記計算ユニットが、複数の単一入力多重データSIMD機能ユニット4308-1~4308-Mを更に特徴とする装置。請求項1、2、3、4、5、6、又は7に記載の装置であって、前記計算ユニットが、複数のベクトルユニット7607-1~7607-Pを更に特徴とする装置。方法であって、計算ユニット4308-1~4308-M、7607-1~7607-P内の第1のレジスタファイル4358-1~4358-8、7902からプロセッサ4322、7614内の第2のレジスタファイル5206へのデータ移動命令MFVVRを示すように、データ移動リードrisc_is_mfvvr上の信号の状態を変更することと、前記プロセッサから前記計算ユニットに第1のアドレスリードrisc_is_uaでレーンアドレスを提供することと、前記プロセッサから前記計算ユニットに第2のアドレスリードrisc_is_raで読み出しアドレスを提供することと、前記計算ユニット内の前記第1のレジスタファイルから前記プロセッサ内の前記第2のレジスタファイルにデータインタフェースリードnode_regf_rdでデータを転送することと、を特徴とする方法。請求項10に記載の方法であって、前記第1のアドレスリードrisc_is_uaが複数の第1のアドレスリードrisc_is_uaを更に特徴とし、前記第2のアドレスリードrisc_is_raが複数の第2のアドレスリードrisc_is_raを更に特徴とする方法。請求項10又は11に記載の方法であって、ハーフワードリードrisc_is_hwz上で、上位ハーフ書き込み、下位ハーフ書き込み、フル書き込み、又は読み出しのいずれを実行するかを示すことを更に特徴とする方法。請求項10、11又は12に記載の方法であって、前記ハーフワードリードrisc_is_hwzが、複数のハーフワードリードrisc_is_hwzを更に特徴とする方法。請求項10、11、12、又は13に記載の方法であって、前記データインタフェースリードnode_regf_rdが複数のデータインタフェースリードnode_regf_rdを更に特徴とする方法。システムであって、計算ユニット4308-1~4308-M、7607-1~7607-P内の第1のレジスタファイル4358-1~4358-8、7902からプロセッサ4322、7614内の第2のレジスタファイル5206へのデータ移動命令MFVVRを示すように、データ移動リードrisc_is_mfvvr上の信号の状態を変更するための手段と、前記プロセッサから前記計算ユニットに第1のアドレスリードrisc_is_uaでレーンアドレスを提供するための手段と、前記プロセッサから前記計算ユニットに第2のアドレスリードrisc_is_raで読み出しアドレスを提供するための手段と、前記計算ユニット内の前記第1のレジスタファイルから前記プロセッサ内の前記第2のレジスタファイルにデータインタフェースリードnode_regf_rdでデータを転送するための手段と、を特徴とするシステム。請求項15に記載のシステムであって、前記第1のアドレスリードrisc_is_uaが複数の第1のアドレスリードrisc_is_uaを更に特徴とし、前記第2のアドレスリードrisc_is_raが複数の第2のアドレスリードrisc_is_raを更に特徴とするシステム。請求項15又は16に記載のシステムであって、ハーフワードリードrisc_is_hwz上で、上位ハーフ書き込み、下位ハーフ書き込み、フル書き込み、又は読み出しのいずれを実行するかを示すための手段を更に特徴とするシステム。請求項15、16、又は17に記載のシステムであって、前記ハーフワードリードrisc_is_hwzが、複数のハーフワードリードrisc_is_hwzを更に特徴とするシステム。請求項15、16,17、又は18に記載のシステムであって、前記データインタフェースリードnode_regf_rdが、複数のデータインタフェースリードnode_regf_rdを更に特徴とするシステム。図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デバッグインタフェース。これらは、図には示されていないが、本明細書中に記載される。図5を参照すると、ノード808-iの例の更なる詳細が見られる。ノード808-iは、処理クラスタ1400内の計算要素であり、アドレス指定及びプログラムフロー制御のための基本要素はRISCプロセッサ又はノードプロセッサ4322である。典型的には、このノードプロセッサ4322は、40ビット命令内の20ビットイミディエートimmediateフィールドの可能性のある20ビット命令を備える、32ビットのデータパスを有することができる。ピクセル操作は、例えば32ピクセル機能ユニットのセットで、SIMD構成で、SIMDレジスタとSIMDデータメモリとの間で例えば4つのロードと例えば2つのストアを用いて並列に実行されるノードプロセッサ4322の命令セットは以下のセクション7で説明する。命令パケットは、すべてのSIMD機能ユニット4308-1~4308-Mによって実行される3発行SIMD命令と並列に、例えば1つのRISCプロセッサコア命令、4つのSIMDロード、及び2つのSIMDストアを記述する。典型的には、ロードストアユニット4318-iからのロード及びストアは、SIMDデータメモリ位置と、例えば、最大64、16ビットピクセルまで表すことができる、SIMDローカルレジスタとの間でデータを移動する。SIMDロード及びストアは間接アドレス指定直接アドレス指定もサポートされているに共有レジスタ4320-iを用いるが、SIMDアドレス指定処理はこれらのレジスタを読み出し、アドレス指定コンテキストはコア4320によって管理される。コア4320は、レジスタのスピル/フィル、アドレス指定コンテキスト、及び入力パラメータのためのローカルメモリ4328を有する。ノード毎にパーティション命令メモリ1404-iが提供され、そこでは、多数のノードに及ぶデータセット上で、より大きなプログラムを実行するために、多数のノードがパーティション命令メモリ1404-iを共有することも可能である。また、ノード808-iは、並列処理をサポートするための幾つかの機能を組み込む。Lf及びRtバッファ4314-i及び4312-iに関連し、概してノード808-iのための入力/出力IO回路要素を含むグローバル入力バッファ4316-i及びグローバル出力バッファ4310-iは、ノード808-i入力及び出力を命令実行から切り離し、システムIOに起因してノードがストールする可能性を極めて低くする。入力は、通常、SIMDデータメモリ4306-1~4306-M及び機能ユニット4308-1~4308-Mによる処理よりも、充分前に受け取られ、空きサイクルを用いてSIMDデータメモリ4306-1~4306-M内に保存されるこれらは非常に一般的である。SIMD出力データは、グローバル出力バッファ4210-iに書き込まれ、そこから処理クラスタ1400を介してルーティングされ、たとえ、システムのパフォーマンスがその限界に近づいた場合これも可能性が低いでも、ノード即ち、808-iがストールする可能性を低くする。SIMDデータメモリ4308-1~4306-M及び対応するSIMD機能ユニット4306-1~4306-Mは、各々、集合的にSIMDユニットと称される。SIMDデータメモリ4306-1~4306-Mは、重複しないコンテキスト内に構成され、可変サイズであり、関連又は非関連タスクのいずれかへ割り振られる。コンテキストは、水平及び垂直の両方向で充分に共有可能である。水平方向での共有はリードオンリーメモリ4330-i及び4332-iを使用し、それらは、典型的には、プログラムについてはリードオンリーであるが、書き込みバッファ4302-i及び4304-i、ロード/ストアLSユニット4318-i、又は他のハードウェアによって書き込み可能である。また、これらのメモリ4330-i及び4332-iのサイズは、約512×2ビットである。概してこれらのメモリ4330-i及び4332-iはその上で操作される中央ピクセル位置に対して、左方向及び右方向へのピクセル位置に対応する。これらのメモリ4330-i及び4332-iは、書き込みをスケジューリングするために、書き込み-バッファリング機構即ち、書き込みバッファ4302-i及び4304-iを使用し、そこでは、サイド-コンテキスト書き込みは、通常、ローカルアクセスとは同期されていない。バッファ4302-iは、概して、同時に動作する例えば隣接するピクセルコンテキストとのコヒーレンスを維持する。垂直方向の共有はSIMDデータメモリ4306-1~4306-M内のサーキュラーバッファを用いる。サーキュラーアドレス指定は、LSユニット4318-iによって適用されるロード及びストア命令によってサポートされているモードである。共有データは、概して、上述のシステムレベル依存性プロトコルを用いてコヒーレントに維持される。コンテキスト割り振り及び共有は、SIMDデータメモリ4306-1~4306-Mコンテキスト記述子によって、ノードプロセッサ4322に関連付けられるコンテキスト状態メモリ4326内に特定される。このメモリ4326は、例えば、16×16×32ビット又は2×16×256ビットRAMであり得る。また、これらの記述子は、コンテキスト間でデータがどのように共有されるかを、充分に一般的な方式で特定し、コンテキスト間のデータ依存性を取り扱うための情報を保持する。コンテキスト保存/復元メモリ4324は、レジスタ4320-iを並列に保存及び復元させることによって、後で説明する0-サイクルタスク切り替えをサポートするように使用される。SIMDデータメモリ4306-1~4306-M、及びプロセッサデータメモリ4328コンテキストは、各々のタスクのための非依存コンテキストエリアを用いて保存される。SIMDデータメモリ4306-1~4306-M、及びプロセッサデータメモリ4328は、可変サイズの可変数コンテキストに区分される。垂直フレーム方向のデータは、そのコンテキスト自体の中で保持及び再使用される。水平フレーム方向のデータは、コンテキストを共に水平グループにリンクさせることによって共有される。なお、コンテキスト構成は、計算に関係するノード数及びそれらが互いにどのように相関するかとはほぼ無関係であることに留意することが重要である。コンテキストの主目的は、画像データを、このデータを操作するノードの構成に関係なく、保持、共有、及び再使用することである。典型的には、SIMDデータメモリ4306-1~4306-Mは、機能ユニット4308-1~4308-Mによって操作される例えばピクセル及び中間コンテキストを含む。SIMDデータメモリ4306-1~4306-Mは、概して、例えば最大16の分離コンテキストエリアに区分される。各分離コンテキストエリアは、プログラマブルベースアドレスを備え、コンパイラによってレジスタのスピル/フィルに使用される全てのコンテキストからアクセス可能な共通エリアを備える。プロセッサデータメモリ4328は、入力パラメータ、アドレス指定コンテキスト、及びレジスタ4320-iのためのスピル/フィルエリアを含む。プロセッサデータメモリ4328は、各々プログラマブルベースアドレスを備える、SIMDデータメモリ4306-1~4306-Mコンテキストに対応する例えば最大16の分離ローカルコンテキストエリアを有し得る。典型的には、ノード即ち、ノード808-iは、8個のSIMDレジスタ第1の構成、32個のSIMDレジスタ第2の構成、及び32個のSIMDレジスタと、より小さい機能ユニットの各々に3つの予備実行ユニット第3の構成の例えば3つの構成を有する。例として、図6では、SIMDユニット即ち、SIMDデータメモリ4306-1及びSIMD機能ユニット4308-1、ノードプロセッサ4322、及びLSユニット4318-iの例がより詳しく示されている。この例に示されるように、SIMD機能ユニット4308-iは、概して、8個のより小さい機能ユニット4338-1~4338-8で構成され、第3の構成を用いている。先ず、プロセッサコアを見ると、ノードプロセッサ4322は、概して、全ての制御関連命令を実行し、レジスタファイル4340及び4342各々に示されるSIMDユニットのための全てのアドレスレジスタ値及び特殊レジスタ値を保持する。例えば最大6個のメモリ命令が1サイクルで計算され得る。アドレスレジスタ値の場合、示されたSIMDユニットからノードプロセッサ4322にアドレスソースオペランドが送られ、ノードプロセッサ4322がレジスタ値を送り返し、次にそのレジスタ値がSIMDユニットによってアドレス計算のために使用される。同様に、特殊レジスタ値の場合、示されたSIMDユニットからノードプロセッサ4322に特殊レジスタソースオペランドが送られ、ノードプロセッサ4322はレジスタ値を送り返す。ノードプロセッサ4322は、SIMDのための例えば15個の読み出しポート及び6個の書き込みポートを有し得る。典型的には、15個の読み出しポートは、6個のメモリ命令の各々のための2つのオペランド即ち、lssrc及びlssrc2を収容する例えば12個の読み出しポート、及び特殊レジスタファイル4312のための3つのポートを含む。典型的には、特殊レジスタファイル4342は、RCLIPMIN及びRCLIPMAXという名称の2つのレジスタを含み、これらのレジスタは共に提供されるべきものであって、概して、16エントリレジスタファイル4342の下位の4つのレジスタに限定される。次にRCLIPMAX及びRCLIPMINレジスタは、命令の中に直接特定される。他の特殊レジスタRND及びSCLは、4ビットレジスタ識別子によって特定され、16エントリレジスタファイル4342内の任意の場所に配置され得る。また、ノードプロセッサ4322は、命令メモリ1404-iを更新し得るプログラムカウンタ実行ユニット4344を含む。ここで、LSユニット4318-i及びSIMDユニットを参照すると、各々の一般的構造が図6に見られる。図示されるように、LSユニット4318-iは、概して、LSデコーダ4334、LS実行ユニット4336、論理ユニット4346、乗算ユニット4348、右実行ユニット4350、及びLSデータメモリ4339を含む。しかしながら、LSユニット4318-iのためのデータパスに関する詳細は後で記載する。より小さい機能ユニット4338-1~4338-8の各々は、概して且つ各々が、例えばそれぞれ32個のレジスタを有し得るSIMDレジスタファイル4358-1~4358-8、左論理ユニット4352-1~4352-8、乗算ユニット4354-1~4354-8、及び右論理ユニット4356-1~4356-8を含む。これらの左論理ユニット4352-1~4352-8、乗算ユニット4354-1~4354-8、及び右論理ユニット4356-1~4356-8は、概して、それぞれ、左、中央、及び右ユニット4346、4348、及び4350、の複製である。また、LSユニット4318-iと同様、各機能ユニット4338-1~4338-8のためのデータパスは、後で記載する。また、ノード即ち、ノード808-iのための3つの例示の構成では、幾つかの構成要素即ち、論理ユニット4352-1のサイズ、又は対応する命令は変化してよいが、他は同じままであり得る。LSデータメモリ4339、ルックアップテーブル、及びヒストグラムは、相対的に同じままとなる。好ましくは、LSデータメモリ4339は、最初の16個の位置がコンテキストベースアドレスを保持し、残りの位置がコンテキストによってアクセス可能であるような、約512×32ビットであり得る。概して、PC実行ユニット4344内にあるルックアップテーブル又はLUTは、メモリサイズが16Kbの最大12個のテーブルを有し得る。ここで、4ビットがテーブルを選択するために用いられ得、14ビットがアドレス指定のために用いられ得る。概して、PC実行ユニット4344内に配置されるヒストグラムは、4個のテーブルを有することができる。ここで、ヒストグラムはテーブルを選択するために4ビットIDをLUTと共有し、アドレス指定のために8ビットを使用する。次の表1では、例示の3つの構成各々の命令サイズが示され、それらは種々の構成要素のサイズに対応し得る。図7を参照すると、共有機能メモリ1410が見られる。共有機能メモリ1410は、概して、ノードによりコストの理由で充分サポートされない操作をサポートする、大型の集中メモリである。共有機能メモリ1410の主な構成要素は、各々が、例えば48~1024Kバイトの間で構成可能なサイズ及び構成を有する2つの大型メモリ、機能メモリ7602及びベクトルメモリ7603である。この機能メモリ7602は、高帯域、ベクトルベースのルックアップテーブルLUT、及びヒストグラムの、同期、命令駆動型の実装を提供する。ベクトルメモリ7603は、上記のセクション8で説明したようにベクトル命令を暗示する、例えば6発行命令プロセッサ即ち、SFMプロセッサ7614による操作をサポートし得る。ベクトル命令は、例えば、ブロックベースのピクセル処理のために用いられ得る。典型的には、このSFMプロセッサ7614は、メッセージングインタフェース1420及びデータバス1422を用いてアクセスされ得る。SFMプロセッサ7614は、例えば、ノード内のSIMDデータメモリに比べて、より一般的な構成、及びより大きな総メモリサイズを有し、より一般的な処理がデータに適用される得る、ワイドピクセルコンテキスト64ピクセル上で動作し得る。それは、標準C整数データタイプ上で、スカラ、ベクトル、及びアレイ操作、並びに、各種のデータタイプと適合性のある、パックされたピクセル上の操作をサポートする。例えば、図示されるように、ベクトルメモリ7603及び機能メモリ7602に関連するSIMDデータパスは、概して、ポート7605-1~7605-Q及び機能ユニット7607-1~7607-Pを含む。全ての処理ノード即ち、808-iが機能メモリ7602及びベクトルメモリ7603にアクセスし得るという意味で、機能メモリ7602及びベクトルメモリ7603は、全般的に共有されている。機能メモリ7602に提供されるデータは、SFMラッパーを介して典型的にはライトオンリーの方式でアクセスされ得る。また、この共有は、全般的に、ノード即ち、808-iを処理するための上述のコンテキスト管理と一貫性がある。また、処理ノードと共有機能メモリ1410との間のデータI/Oもデータフロープロトコルを使用し、処理ノードは、典型的には、ベクトルメモリ7603に直接アクセスできない。また、共有機能メモリ1410は、機能メモリ7602に書き込むことができるが、処理ノードによってアクセスされている間は、書き込むことができない。処理ノード即ち、808-iは、機能メモリ7602内の共通位置を読み出し及び書き込みできるが、通常はリードオンリーLUT操作、又はライトオンリーヒストグラム操作のいずれかとしてである。また、処理ノードが機能メモリ7602領域への読み出し-書き込みアクセスを有することも可能であるが、これは所定のプログラムによるアクセスに限定されるべきである。図8を参照すると、共有機能メモリ1410のためのSIMDデータパス7800の例が見られる。例えば、8個のSIMDデータパスこれらは、16ビットパックデータを操作できるので、2つの16ビットハーフに区分され得るが使用され得る。図示されるように、これらのSIMDデータパスは、全般的に、バンクのセット7802-1~7802-L、関連するレジスタ7804-1~7804-L、及び関連する機能ユニットのセット7806-1~7806-Lを含む。図9では、SIMDデータパス即ち及び例えば、レジスタ7804-1~7804-Lの1つの一部分、及び機能ユニット7806-1~7806-Lの1つの一部分の例が見られる。図示されるように、例えば、このSIMDデータパスは、16-エントリ、32ビットレジスタファイル7902、2つの16ビット乗算器7904及び7906、及び、同様に、1サイクル中に2つの16ビットパック操作を実行し得る、単一の32ビット算術/論理ユニット7908を含み得る。また、例として、各SIMDデータパスは、2つの、独立した16ビット演算、又は組み合わせた32ビット演算を実行し得る。例えば、これは、32ビットの加算器と組み合わせた16ビット乗算器を用いて32ビットの乗算を形成し得る。また、算術/論理ユニット7908は、加算、減算、論理演算即ち、AND、比較、及び条件移動を実行することが可能である。図8に戻ると、SIMDデータパスレジスタ7804-1~7804-Lは、ベクトルメモリ7603へのロード/ストアインタフェースを使用し得る。これらのロード及びストアは、ノード即ち、808-iによる並列LUT及びヒストグラムアクセスのために提供されるベクトルメモリ7603の特徴を使用し得る。ノードのために各SIMDデータパスハーフは機能メモリ7602内へのインデックスを提供し得る。同様に、SFMプロセッサ7614内の各SIMDデータパスハーフは、独立ベクトルメモリ7603アドレスを提供し得る。アドレス指定は、概して、隣接するデータパスが例えばスカラ、ベクトル、及び8、16、又は32ビットデータのアレイなど、データタイプの多数のインスタンス上で同じ操作を実行できるように構成される。これらは、ベクトル暗示アドレス指定モードと称されるベクトルが、リニアのベクトルメモリ7603アドレス指定を用いて、SIMDによって暗示される。或いは、各データパスはバンク7608-1~7608-J内のフレームの領域からのパックされたピクセル上で操作し得る。これらは、ベクトルパック化アドレス指定モードと称されるパックされたピクセルのベクトルは、二次元ベクトルメモリ7603アドレス指定を用いて、SIMDによって暗示される。両方の場合において、ノードプロセッサ4322と同じように、プログラミングモデルがSIMDの幅を隠すことができ、プログラムはあたかもそれらが単一ピクセル又は他のデータタイプのエレメント上で演算したかのように書き込まれる。ベクトル暗示データタイプは、概して、各SIMDデータパスによって個別に演算される8ビットchar、16ビットハーフワード、又は32ビットint、のいずれかのSIMD実装ベクトルである即ち、図9。これらのベクトルは、概して、プログラム内では明示的でなく、ハードウェア演算によって暗示される。また、これらのデータタイプは、明示的プログラムベクトル又はアレイ内のエレメントとして構成され得る。SIMDは、隠された2次元、又は3次元を、これらのプログラムベクトル又はアレイに、効果的に加算する。実際には、プログラミングビューは専用の32ビットデータメモリを備える単一のSIMDデータパスであり得る。このメモリは従来のアドレス指定モードを用いてアクセスされる。ハードウェアでは、このビューは、32のSIMDデータパスの各々がプライベートデータメモリの外観を有するような方式でマッピングされるが、この機能性を共有機能メモリ1410に実装するために、ベクトルメモリ7603のワイドなバンクされた構成の利点を実装に利用する。SFMプロセッサ7614SIMDは、概して、記述子を用いて、ノードプロセッサ4322コンテキストに類似するベクトルメモリ7603コンテキスト内で動作する。記述子はバンクのセット7802-1に整列され、全体のベクトルメモリ7603にアクセスするのに充分に大きい即ち、1024kBのサイズの場合、13ビットベースアドレスを有する。SIMDデータパスの各ハーフは、一番左のデータパスのための0から始まる6ビット識別子POSNで番号付けされる。ベクトル暗示アドレス指定の場合、この値のLSBは、概して無視され、残りの5ビットは、データパスによって生成されたベクトルメモリ7603アドレスをベクトルメモリ7603内のそれぞれのワードに整列させるために用いられる。処理クラスタ1400内で、汎用RISCプロセッサは様々な目的を果たす。例えば、RISCプロセッサであり得るノードプロセッサ4322はプログラムフロー制御のために用いられ得る。RISCアーキテクチャの例を以下に説明する。図10を参照すると、RISCプロセッサ5200即ち、ノードプロセッサ4322の更に詳細な例が見られる。プロセッサ5200によって使用されるパイプラインは、概して、処理クラスタ1400内で一般のハイレベル言語即ち、C/Cを実行するためのサポートを提供する。動作においては、プロセッサ5200は、フェッチ、デコード、及び実行の3段のパイプラインを用いる。典型的には、コンテキストインタフェース5214及びLSポート5212が命令をプログラムキャッシュ508に提供し、その命令は命令フェッチ5204によってプログラムキャッシュ5208からフェッチされ得る。命令フェッチ5204とプログラムキャッシュ5208との間のバスは、例えば、40ビット幅であり得、プロセッサ5200がデュアル発行命令即ち、命令が40ビット又は20ビット幅であり得るをサポートすることを可能にする。概して、処理ユニット5202内のA側及びB側の機能ユニットはより小さい命令即ち、20ビット命令を実行し、一方、B側機能ユニットは、より大きな命令即ち、40ビット命令を実行する。提供された命令を実行するために、処理ユニットは、レジスタファイル5206をスクラッチパッドとして使用し得る。このレジスタファイル5206は、A側とB側との間で共有される例えば16-エントリ、32ビットレジスタファイルであり得る。また、プロセッサ5200は、制御レジスタファイル5216及びプログラムカウンタ5218を含む。また、プロセッサ5200はバウンダリピン又はリードを介してアクセスされ得る。各例を、表2で説明するzは、アクティブローピンを示す。図11を参照すると、プロセッサ5200が、パイプライン5300を備えてより詳細に示さているのが見られる。ここでは、フェッチ段5306に対応する命令フェッチ5204がA側及びB側に分割される。ここで、A側は、1つの40ビット命令又は2つの20ビット命令を有する40ビット幅の命令ワードであり得るフェッチパケットの最初の20ビット即ち、[19:0]を受け取り、B側はフェッチパケットの最後の20ビット即ち、[39:20]を受け取る。典型的には、命令フェッチ5204はフェッチパケット内の命令の構造及びサイズを決定し、それに応じて命令をディスパッチする以下のセクション7.3で説明する。デコード段5308及び処理ユニット5202の一部であるデコーダ5221は命令フェッチ5204からの命令をデコードする。デコーダ5221は、概して、インターミディエイトを生成するための演算子フォーマット回路5223-1及び5223-2及びそれぞれB側及びA側のためのデコード回路5225-1及び5225-2を含む。デコーダ5221からの出力は、次に、デコード段5308及び処理ユニット5202の一部であるデコードトゥーエクゼキューションユニットdecode-to-executionunit5220によって受け取られる。デコードトゥーエクゼキューションユニット5220は、フェッチパケットを介して受け取る命令に対応する、実行ユニット5227のためのコマンドを生成する。実行ユニット5227のA側及びB側も細分されている。実行ユニット5227のB側及びA側の各々は、それぞれ、乗算ユニット5222-1/5222-2、ブーランユニット5226-1/5226-2、加算/減算ユニット5228-1/5228-2、及び移動ユニット5330-1/5330-2を含む。また、実行ユニット5227のB側は、ロード/ストアユニット5224及びブランチユニット5232を含む。乗算ユニット5222-1/5222-2、ブーランユニット5226-1/5226-2、加算/減算ユニット5228-1/5228-2、及び移動ユニット5330-1/5330-2は、それぞれ、A側及びB側の各々のための、読み出しアドレスを含む汎用レジスタファイル5206にロードされたデータ上で、乗算演算、論理ブーラン演算、加算/減算演算、及びデータ移動演算を実行する。制御レジスタファイル5216内で移動演算も実行され得る。ベクトル処理モジュールを備えるRISCプロセッサが、概して共有機能メモリ1410と共に用いられる。このRISCプロセッサは、プロセッサ5200のために用いられるRISCプロセッサと大体同じであるが、計算及びロード/ストア帯域幅を拡張するために、ベクトル処理モジュールを含む。このモジュールは、各々が1サイクルに4-演算実行パケットを実行する能力のある、16個のベクトルユニットを含み得る。典型的な実行パケットは、概して、ベクトルメモリアレイからのデータロード、2つのレジスタトゥーレジスタ演算、及び、ベクトルメモリアレイへの結果のストアを含む。このタイプのRISCプロセッサは、80ビット幅又は120ビット幅の命令ワードを一般に使用する。この命令ワードは、概してフェッチパケットを構成して、整列されない命令を含んでもよい。フェッチパケットは、プロセッサ5200に使用されるものと同様の、ベクトルユニット命令及びスカラ命令を含み得る、40ビット及び20ビット命令の混合を含み得る。典型的には、ベクトルユニット命令は20ビット幅であり得、一方、他の命令はプロセッサ5200と同様20ビット又は40ビット幅であり得る。また、ベクトル命令は命令フェッチバスの全てのレーン上に提示され得るが、フェッチパケットがスカラ及びベクトルユニット命令の両方を含む場合、ベクトル命令は例えば命令フェッチバスビット[39:0]上に提示され、スカラ命令は例えば命令フェッチバスビット[79:40]上に提示される。また、使用されない命令フェッチバスレーンは、NOPを用いてパディングされる。次に実行パケットが1つ又は複数のフェッチパケットから形成され得る。部分実行パケットは完了まで命令キューの中に保持される。典型的には、実行段即ち、5310へ完全実行パケットが提出される。単一サイクル中に、例えば4つのベクトルユニット命令、例えば2つのスカラ命令、又は例えば20ビット及び40ビット命令の組合せが実行されてもよい。また、連続する20ビット命令がシリアルに実行されてもよい。カレントの20ビット命令のビット19が設定される場合、これはカレントの命令及び後続の20ビット命令が実行パケットを形成することを示す。ビット19は、概して、Pビット又は並列ビットと称され得る。Pビットが設定されない場合、これは実行パケットの終了を示す。Pビットが設定されない連続する20ビット命令は、20ビット命令のシリアル実行を引き起こす。なお、このベクトル処理モジュールを備えるRISCプロセッサは、以下の制約の任意のものを含んでもよいことにも留意されたい。1例えば40ビット命令で、Pビットが1に設定されることは違反である。2ロード又はストア命令は、命令フェッチバスのB側に現れるべきである即ち、40ビットのロード及びストアの場合、ビット79:40、20ビットのロード及びストアの場合、フェッチバスのビット79:60。3単一のスカラロード又はストアは、違反ではない。4ベクトルユニットでは、1つのフェッチパケット内に単一のロード及び単一のストアの両方が存在し得る。540ビット命令が、Pビットが1に等しい20ビット命令に先行されることは違反である。6これらの違反状態を検出するためのハードウェアが適所に存在しない。これらの制約はシステムプログラムツール718によって実施されることが予期されている。図12を参照すると、ベクトルモジュールの例が見られる。ベクトルモジュールは、検出器デコーダ5246、デコードトゥーエクゼキューションユニット5250、及び実行ユニット5251を含む。また、ベクトルデコーダは、命令フェッチ5204から命令を受け取るスロットデコーダ5248-1~5248-4を含む。典型的には、スロットデコーダ5248-1及び5248-2は互いに類似した方式で動作し、スロットデコーダ5248-3及び5248-4はロード/ストアデコーディング回路要素を含む。次にデコードトゥーエクゼキューションユニット5250は、ベクトルデコーダ5246のデコードされた出力に基づいて、実行ユニット5251のための命令を生成し得る。スロットデコーダの各々は、各々が汎用レジスタ5206内のデータ及びアドレスを使用する乗算ユニット5252、加算/減算ユニット5254、移動ユニット5256、及びブーランユニット5258によって使用され得る命令を生成し得る。また、スロットデコーダ5248-3及び5248-4は、ロード/ストアユニット5260及び5262のためのロード及びストア命令を生成し得る。汎用レジスタファイル5206は、32ビット汎用レジスタファイルによる16-エントリであり得る。汎用レジスタGPRの幅はパラメータ化され得る。概して、プロセッサ5200がノード即ち、808-iのために用いられる場合、41515はバウンダリピンによって制御されるの読み出しポート及び466はバウンダリピンによって制御されるの書き込みポートがあり、一方、GLSユニット1408のために用いられるプロセッサ5200は、4個の読み出しポート及び4個の書き込みポートを有する。ノードプロセッサ4322とSIMD即ち、SIMDデータメモリ4306-1及び機能ユニット4308-1を含むSIMDユニットとの間でデータを移動し得る命令を表3に示す。次の表4は、プロセッサ5200のための命令セットアーキテクチャの例を示す。ここで、1ユニット表示、.SA及び.SBは、どちらの発行スロットが20ビット命令が実行するかを識別するために用いられる。240ビット命令は、規則により、B側.SBで実行される。3基本形式は<ニーモニック><ユニット><カンマで区切られたオペランドリスト>である。4擬似コードは、Cシンタックスを有し、適切なライブラリを用いて、シミュレータ又は他のゴールデンモデルに直接含まれ得る。本発明に関連する分野の当業者であれば、記載された実施形態及び実現された付加的な実施形態に本発明の請求の範囲内から逸脱することなく変更が行われることが理解されるであろう。"