"少なくとも1つの処理要素PEを備えるアレイ及びアレイ制御プロセッサを備えるSIMD機器であって、前記アレイ制御プロセッサ及び前記PEのそれぞれが、算術ユニット条件レジスタと、分岐または条件付き実行のために使用される減縮条件情報を含む複数の汎用フラグACFと、を有することを特徴とするSIMD機器。前記複数のACFが、並行して動作するいくつかの実行ユニットからの条件情報を格納する1つまたは複数のビットを具備するフォーマットを有することを特徴とする請求項1に記載のSIMD機器。条件付きで実行される命令を格納するための命令メモリを更に備え、前記命令の実行がACFに影響を与えないことを特徴とする請求項1に記載のSIMD機器。前記SIMD機器がパック化データ命令に関して動作し、1つのACFが各パック化データオペレーションに対して影響を受けることを特徴とする請求項1に記載のSIMD機器。その中で多数のPEが利用され、異なるPEがACFに影響を与えるための異なるユニットを選択することを特徴とする請求項1に記載の装置。条件付き実行をサブワード実行を伴う超長命令語VLIWベースのアレイプロセッサでサポートする方法であって、分岐または条件付き実行に対して使用される減縮条件情報を含む汎用フラグビットACFを提供する工程と、ACF中の条件を、条件を生成する命令中でエンコードされる条件コード仕様に基づいて指定し、設定する工程と、を有することを特徴とする方法。前記条件付き実行の命令がACFに影響を与えないことを特徴とする請求項6に記載の方法。前記ACFに影響を与える命令が無条件で実行することを特徴とする請求項6に記載の方法。パック化データオペレーションの各サブワードの実行が、関連するサブワードACFに依存するパック化データ命令を実行する工程を更に含むことを特徴とする請求項6に記載の方法。階層条件付き実行命令フォーマットであって、命令を定義する複数の命令ビットと、条件付き実行をサポートする各命令に対してオペコード拡張エンコーディングを提供する前記複数の命令ビットの3ビット、2ビット又は1ビットのサブセットと、命令実行からの指定した結果を格納する1組の汎用算術条件フラグACFと、1組の算術スカラフラグASFと、を有することを特徴とする階層条件付き実行命令フォーマット。前記1ビットのオペコード拡張が利用され、前記1ビットが1の場合に、前記命令が真のAFC条件に関して条件付きで実行するか、又は前記命令が前記1ビットがゼロの場合に前記AFCに影響を与えることなく、偽のAFC条件に関して条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。前記2ビットのオペコード拡張が利用され、両方のビットが真である場合に前記命令が無条件で実行され、前記ACFがSetCC命令によって定義されるように影響を受けることを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。前記SetCC命令が、指定された条件がどの実行ユニットに当てはまるかを指定する第1オペコードエンコーディングフィールドを含むことを特徴とする請求項12に記載の階層条件付き実行命令フォーマット。前記SetCC命令が、複数のテスト条件を指定する第2オペコードエンコーディングフィールドを含むことを特徴とする請求項13に記載の階層条件付き実行命令フォーマット。各実行ユニットが異なる指定された条件を有するか、前記SetCC命令のALLエンコーディングが選ばれる場合に、全ての実行ユニットが同じ指定された条件を使用することを特徴とする請求項13に記載の階層条件付き実行命令フォーマット。オーバーフローがパック化データ実行内の何らかのデータオペレーションに関して生じたかどうかを検出するためにテスト条件を指定することができることを特徴とする請求項14に記載の階層条件付き実行命令フォーマット。前記2ビットオペコード拡張が利用され、前記ビットのうちの一方が真、前記ビットの他方が偽である場合に、前記命令を前記ACFの状態に依存して前記ACFに影響を与えることなく条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。前記2ビットオペコード拡張が利用され、両方のビットが偽の場合に、前記命令を、前記ACFに影響を与えることなく無条件で実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。前記3ビットオペコード拡張が利用され、前記命令を、どのように前記ACFに基づいて無条件で、または条件付きで実行すべきか、どのように前記3ビットオペコード拡張のビットを使用することにより前記ACFが影響を受けるかを指定することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。前記ASFフラグの組が、実行中の命令からの副次効果を表し、前記3ビットのオペコード拡張の2つ以上のビットが真である場合に、前記AFCが前記ASFの組の条件のうちの1つに基づいて影響を受けることを特徴とする請求項15に記載の階層条件付き実行命令フォーマット。前記ASFが桁上げC、オーバーフローV、符号N、及びゼロZフラグを含むことを特徴とする請求項20に記載の階層条件付き実行命令フォーマット。前記3ビットオペコード拡張が、パック化データ命令の1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利用され、前記3ビットオペコード拡張中の全てのビットが偽である場合に、前記命令が、全ての前記データ要素上の命令によって指定されるオペレーションをACFに影響を与えることなく無条件に実行する請求項10に記載の階層条件付き実行命令フォーマット。前記3ビットのオペコード拡張が、パック化データ命令の1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利用され、前記命令が、全ての前記データ要素上の命令によって指定されるAFCオペレーションの状態に基づいて条件付きで実行するか、又はオペレーショが全く行われないことを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。前記3ビットのオペコード拡張が、パック化データ命令の1つまたは複数のデータ要素上で実行すべきオペレーションを指定するために利用され、前記命令が、前記3ビットのオペコード拡張の指定された真または偽コーディングに対する適切な値の対応するACFフラグを有するデータ要素のみを条件付きで実行することを特徴とする請求項10に記載の階層条件付き実行命令フォーマット。条件生成の方法であって、1組の算術条件フラグACFを定義する工程と、命令に関する複数のスカラ条件の副次効果を命令ごとに決定する工程と、前記決定した副次効果を保存するために1組の算術スカラフラグASFを設定する工程と、比較命令を使用する条件コードを指定する工程と、指定した条件コードに基づいて前記ACFを更新する工程と、を有することを特徴とする方法。前記ACFの前の状態を、複合条件を作成するために現行比較命令によって指定された条件コードテストの結果と組み合わせる工程を更に含むことを特徴とする請求項25に記載の方法。前記条件コードが、より大GT、より小LT、等しいEQ、または以下LEQなどの条件を指定することを特徴とする請求項25に記載の方法。前記比較命令が、テストすべき所望の条件と、比較すべき2つのソースレジスタとを指定するために更に使用されることを特徴とする請求項27に記載の方法。前記比較命令が、パック化データ形態をカバーするデータタイプを指定するために更に使用されることを特徴とする請求項28に記載の方法。前記比較命令が、ブール組合せ指定フィールドを指定するためにさらに使用されることを特徴とする請求項28に記載の方法。作成された複合条件に基づいて、シーケンスプロセッサSP中の分岐を制御する工程を更に有することを特徴とする請求項26に記載の方法。作成された複合条件に基づく多数の条件のブール組合せからなる作成されたカプレックスcouplexに基づいて、シーケンスプロセッサSP及び少なくとも1つの処理要素PE中で条件付き実行を行う工程をさらに含むことを特徴とする請求項26に記載の方法。作成された複合条件に基づいて、多数の条件の組合せに関して条件付きで実行する工程を更に含むことを特徴とする請求項26に記載の方法。関係のブール組合せによって形成される複合条件を生成するためのシステムであって、レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、プロセッサパイプライン中の登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラグACF生成ユニットと、前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、を有することを特徴とするシステム。前記ACFラッチは、プログラマ可視ラッチであることを特徴とする請求項34に記載のシステム。前記ブール組合せを前記ACF生成ユニットから受け取り、前記ブール組合せ又は前記AFCラッチをシーケンスプロセッサSP中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に有することを特徴とする請求項34に記載のシステム。前記算術ユニットの前記第1ラッチ算術スカラ条件状態出力に切り替え可能に接続される算術スカラフラグASFラッチを更に備えることを特徴とする請求項34に記載のシステム。前記算術ユニット及び前記ASFラッチの前記第1ラッチ算術スカラ条件状態出力の切り替え可能接続が、制御可能マルチプレクサを備えることを特徴とする請求項37に記載のシステム。前記制御可能マルチプレクサの出力が、前記算術スカラ条件状態またはASFラッチ出力を、前記シーケンスプロセッサSP中の分岐ロジックへ制御可能に切り替えることを特徴とする請求項38に記載のシステム。前記ASFラッチがプログラマ可視ラッチであることを特徴とする請求項37に記載のシステム。コントローラSP及び少なくとも2つの処理要素PEを備える単一命令多重データストリームSIMD機器であって、前記SIMD機器の各PEが、レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、プロセッサパイプライン中の、前記SPから受け取られた登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラグACF生成ユニットと、前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、を有することを特徴とするSIMD機器。各PEのACFラッチがプログラマ可視ラッチであることを特徴とする請求項41に記載のSIMD機器。各PEが、前記ブール組合せを前記ACF生成ユニットから受け取り、前記ブール組合せ又は前記ACFラッチをシーケンスプロセッサSP中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に有することを特徴とする請求項41に記載のSIMD機器。各PEが、前記算術ユニットの前記第1ラッチ算術スカラ条件状態出力に切り替え可能に接続される算術スカラフラグASFラッチを更に備えることを特徴とする請求項41に記載のSIMD機器。各PEの算術ユニット及び前記ASFラッチの前記第1ラッチ算術スカラ条件状態出力の切り替え可能接続が、制御可能マルチプレクサを備えることを特徴とする請求項44に記載のSIMD機器。各PEの制御可能マルチプレクサの出力が、前記算術スカラ条件状態又は前記ASFラッチ出力を、前記シーケンスプロセッサSP中の分岐ロジックへ制御可能に切り替えることを特徴とする請求項45に記載のSIMD機器。各PEの算術ユニットが、それぞれ関連する算術条件フラグACF生成ユニットを有する乗算累算ユニットMAU、算術論理ユニットALU、及びデータ選択ユニットDSUを備える1組の実行ユニットのうちの1つであることを特徴とする請求項41に記載のSIMD機器。MAU、ALU、DSU及びACFラッチについてのACF生成ユニットからの出力が、マルチプレクサによって前記シーケンスプロセッサ中の分岐ロジックに制御可能に切り替えられることを特徴とする請求項47に記載のSIMD機器。間接超長命令語VLIW処理システムであって、VIMメモリ内のスロット中に命令を格納するためのVLIW命令メモリVIMを有する第1処理要素PEと、命令タイプを定義する複数のグループビットと、実行ユニットタイプを定義する複数のユニットフィールドビットとを有する機能命令を格納するための第1レジスタと、複数のグループビット及び複数のユニットフィールドビットをデコードするための事前デコーダと、前記デコーディングに基づいて機能命令をVIM中の前記スロットのうちの適切な1つにロードするためのロード機構とを備え、第1プロセッサ更には、少なくとも2つの実行ユニットを備え、各実行ユニットがレジスタファイルから少なくとも2つのオペランドを受け取り、各実行ユニットが、プロセッサパイプライン中の登録された命令から導出される命令制御線を有し、命令制御線が、実行すべき命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含み、各実行ユニットが、結果及びラッチされた算術スカラ条件状態を生成し、各実行ユニットが、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチを有し、各実行ユニットが、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチを有し、各実行ユニットが、現在選択した状態と前の状態とのブール組合せを提供するための算術条件フラグACF生成ユニットを有し、前の状態を格納し、前の状態を各ACF生成ユニットにフィードバックするための全ての実行ユニットについての単一ACFラッチを備えることを特徴とするシステム。前記ACFラッチがプログラマ可視ラッチであることを特徴とする請求項49に記載のシステム。前記PEが、前記ブール組合せを各ACF生成ユニットから受け取り、前記ブール組合せをシーケンスプロセッサSP中の分岐ロジックに制御可能に切り替えるために接続されるマルチプレクサを更に備えることを特徴とする請求項49に記載のシステム。前記PEが、各実行ユニットの出力に切り替え可能に接続される算術スカラフラグASFラッチを更に備えることを特徴とする請求項49に記載のシステム。複合条件を生成するためのシステムであって、レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、プロセッサパイプライン中の登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、複数の算術条件フラグACFの現在選択した状態を提供するための算術条件フラグACF生成ユニットと、ACF用に前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、を有することを特徴とするシステム。コントローラSP及び少なくとも2つの処理要素PEを備える単一命令多重データストリームSIMD機器であって、前記SIMDマシン中の各PEが、レジスタファイルから少なくとも2つのオペランドを受け取る算術ユニットと、プロセッサパイプライン中の、前記SPから受け取られた登録された命令から導出される命令制御線であって、命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含む命令制御線と、結果及びラッチされた算術スカラ条件状態を生成する算術ユニットと、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチと、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチと、複数の算術条件フラグACFの現在選択した状態を提供するための算術条件フラグACF生成ユニットと、ACF用に前の状態を格納し、前の状態を前記ACF生成ユニットにフィードバックするためのACFラッチと、を有することを特徴とするマシン。間接超長命令語VLIW処理システムであって、VIMメモリ内のスロット中に命令を格納するためのVLIW命令メモリVIMを有する第1処理要素PEと、命令タイプを定義する複数のグループビットと、実行ユニットタイプを定義する複数のユニットフィールドビットとを有する機能命令を格納するための第1レジスタと、複数のグループビット及び複数のユニットフィールドビットをデコードするための事前デコーダと、前記デコーディングに基づいて機能命令をVIM中の前記スロットのうちの適切な1つにロードするためのロード機構とを備え、第1プロセッサが、少なくとも2つの実行ユニットを備え、各実行ユニットがレジスタファイルから少なくとも2つのオペランドを受け取り、各実行ユニットが、プロセッサパイプライン中の登録された命令から導出される命令制御線を有し、命令制御線が、実行すべき命令中で指定されるように条件付きオペレーションを制御するために条件付き実行制御線を含み、各実行ユニットが、結果及びラッチされた算術スカラ条件状態を生成し、各実行ユニットが、命令がその実行状態を完了した後に、命令用に算術スカラ条件状態を保持するための第1ラッチを有し、各実行ユニットが、命令がその実行状態を完了した後に、命令用に命令制御信号を保持するための、条件付き実行制御線に接続された第2ラッチを有し、各実行ユニットが、複数の算術条件フラグACFの現在選択した状態を提供するための算術条件フラグACF生成ユニットを有し、ACF用に前の状態を格納し、前の状態を各ACF生成ユニットにフィードバックするための全ての実行ユニットについての単一ACFラッチを備えることを特徴とするシステム。本発明と共に使用するための現在のところ好ましいManArrayアーキテクチャのさらなる詳細は、1997年6月30日出願の米国特許出願第08/885310号、1997年10月10日出願の米国特許出願第08/949122号、1998年10月9日出願の米国特許出願第09/169255号、1998年10月9日出願の米国特許出願第09/169256号、1998年10月9日出願の米国特許出願第09/169072号、1998年11月6日出願の米国特許出願第09/187539号、1998年12月4日出願の米国特許出願第09/205558号、1998年12月18日出願の米国特許出願第09/215081号、MethodandApparatustoDynamicallyReconfiguretheInstructionPipelineofanIndirectVeryLongInstructionWordScalableProcessorという名称の1999年1月12日出願の米国特許出願、MethodsandApparatustoDynamicallyExpandtheInstructionPipelineofaVeryLongInstructionWordProcessorという名称の1998年1月12日出願の仮出願第60/071248号、MethodandApparatustoSupportConditionalExecutioninaVLIWBasedArrayProcessorwithSubwordExecutionという名称の1998年1月28日出願の仮出願第60/072915号、RegisterFileIndexingMethodsandApparatusforProvidingIndirectControlofRegisterinaVLIWProcessorという名称の1998年3月12日出願の仮出願第60/077766号、MethodsandApparatusforInstructionAddressinginIndirectVLIWProcessorsという名称の1998年7月9日出願の仮出願第60/092130号、EfficientComplexMultiplicationandFastFourierTransformImplementationontheManArrayという名称の1998年10月9日出願の仮出願第60/103712号、MethodsandApparatusforImprovedMotionEstimationforVideoEncodingという名称の1998年11月3日出願の仮出願第60/106867号、MethodandApparatusforProvidingDirectMemoryAccessEngineという名称の1998年12月23日出願の仮出願第60/113637号、及びMethodsandApparatusProvidingTransferControlという名称の1998年12月23日出願の仮出願第60/113555号にそれぞれ記載されており、それら全体を参照により本明細書に組み込む。本発明の現在のところ好ましい実施形態では、図1に示すManArray2×2iVLIW単一命令多重データストリームSIMDプロセッサ100は、MethodandApparatusforDynamicMerginganArrayControllerwithanArrayProcessingElementという名称の米国出願第09/169072号でさらに詳細が記載されている、処理要素0PE0SP/PE0101と組み合わされたコントローラシーケンスプロセッサSPを含む。3つの追加されたPE151,153,155は、本発明による条件付き実行装置及び方法を実演するのにも使用される。PE0PE00101、PE1PE01151、PE2PE10153、及びPE3PE11155の括弧に示すように、これらPEは、それらの行列位置に応じて符号をつけることもできることに留意されたい。SP/PE0101は、32ビット命令メモリ105からの短命令語SIWのフェッチングを可能とするフェッチコントローラ103を含む。このフェッチコントローラ103は、プログラムカウンタPC、分岐機能、デジタル信号処理ループオペレーション、割り込みのサポートなどの、プログラム可能プロセッサで必要な典型的な機能を提供し、アプリケーションで必要とされる場合に命令キャッシュを含むことができる命令メモリ管理制御を提供する。加えて、SIWIフェッチコントローラ103は、32ビット命令バス102によって、32ビットSIWをシステム中の他のPEにディスパッチする。この例示的システムでは、共通要素は、説明を単純化するために一貫して使用される。しかし実際の実装はこの制限に限定されない。例えば、組み合わされたSP/PE0101中の実行ユニット131は、制御機能、例えば固定小数点実行ユニットのために最適化された1組の実行ユニットに分離することができ、PE0ならびに他のPE151,153,及び155は、浮動小数点アプリケーション用に最適化することができる。この説明では、実行ユニット131はSP/PE0及び他のPEで同じタイプであると仮定する。同様に、SP/PE0及び他のPEは、超長命令語メモリVIMメモリ109と、SP/PE0のIフェッチユニット103からディスパッチされる時に命令を受け取り、メモリ109中の文字SLAMDで識別され、VIMに格納される、iVLIWにアクセスするために必要なVIMアドレス及び制御信号108を生成する命令デコード及びVIMコントローラ機能ユニット107とを含む5個の命令スロットiVLIWアーキテクチャを使用する。iVLIWのローディングは、MethodandApparatusforEfficientSynchronousMIMDOperationswithiVLIWPEtoPECommunicationという名称の米国特許出願第09/187539号にさらに詳細に記載されている。同様にSP/PE0及び他のPEには、MethodandApparatusforDynamicInstructionControlledReconfigurationRegisterFilewithExtendedPrecisionという名称の米国出願第09/169255号にさらに詳細に記載されている共通のPE構成可能レジスタファイル127が含まれる。SP/PE0の組み合わされた性質のために、データメモリインターフェースコントローラ125は、メモリ121中にSPデータを有するSPコントローラと、メモリ123中にPE0データを有するPE0の両方のデータ処理の必要を扱わなければならない。SP/PE0コントローラ125も、32ビットのブロードキャストデータバス126を介して送られるデータのソースである。他のPE151,153,及び155は、共通物理データメモリユニット123,123,及び123を含むが、それらに格納されるデータは、各PEで行われるローカル処理で必要とされるものとは一般に異なる。これらのPEデータメモリへのインターフェースも、PE1,2,及び3で共通の設計であり、PEローカルメモリ及びデータバスインターフェースロジック157,157,157によって示される。PEをデータ転送通信のために相互接続することは、ManifoldArrayProcessorという名称の米国特許出願第08/885310号と、MethodsandApparatusforManifoldArrayProcessingという名称の米国出願第09/949122号と、MethodsandApparatusforManArrayPEtoPESwitchControlという名称の米国出願第09/169256号とにより完全に記載されているクラスタスイッチ171である。ホストプロセッサ、他の周辺装置、及び/又は外部メモリへのインターフェースは、多くの方式で行うことができる。完全を期するために示す主機構は、ManArrayコアの外部の装置及びインターフェースユニットに接続するスケーラブルManArrayデータバス183を提供するDMA制御ユニット181中に含まれる。DMA制御ユニット181は、これらの外部装置がバス185を介してManArrayコアメモリとインターフェースを取るのに必要なデータフロー及びバスアービトレーション機構を提供する。前述の特許すべては、本発明の譲受人に譲渡され、それら全体を参照により本明細書に組み込む。ManArrayプロセッサ条件付き実行方法及び装置の特定の詳細に話を転じると、この手法は、前述の並列アレイiVLIW条件付き実行問題を、単純なプログラミングモデルと最小限のハードウェア要件で有利に解決する。[算術条件フラグ]ManArrayアーキテクチャは、例えば比較命令の結果など、命令実行の指定した結果を格納する1組の算術条件フラグACFを定義する。これらのACFは、一般化条件付き実行に対して使用される。分岐待ち時間を最小にするために、ほぼ全ての命令は、ACFに基づいて条件付きで実行することができる。PEのアレイ中の各PE中で条件付きで実行すべき命令に対しては、テスト可能条件は、各PE中でローカルに生成しなければならない。このローカルテスト可能条件は、iVLIWがパック化データタイプに関して実行するために各PE中で実行することができる多数の条件から導出される。命令ストリームのサイクルごとの条件付き実行に対しては、命令コーディングは、命令を実行するかどうかを決定するために、どの条件を使用するかを指定できなければならない。多くのタイプの条件があるので、各命令フォーマット中で指定を適切に行うために4つ以上のビットを確保しなければならないことになる。条件付き分岐は一般に単一条件テストを指定し、マルチメディアデータ依存コードは、主に単一条件テスティングを利用することが予想されるので、本明細書では、単一レベルの条件付き実行は、より複雑なネストされた条件付き実行のシナリオに亙って最良の性能利得を提供することになると仮定する。しかし、本明細書で論じる本発明の概念は、単一レベルの条件付き実行の状況のもとで作成されるものの、条件フラグの多数のセットを有する、より複雑にネストされた条件は、この教示によって除外されない。これを念頭におくと、ManArray条件付き実行についてのプログラミングモデルでは、パック化データiVLIWオペレーションの後に得られる条件状態情報の量を軽減するために、どのようにACFを設定すべきかについての指定が必要となる。2つのタイプのフラグを指定する。桁上げC、オーバーフローV、符号N、及びゼロZは、算術スカラフラグASFと呼ばれ、F7~F0フラグは、算術条件フラグACFと呼ばれる。プログラマ可視ASFは、常に各命令実行の後に、命令によって指定される通り、パック化データタイプ、即ち、バイト0b0、半ワード0H0、ワード0W0、またはダブルワードDに関して実行される最小有効オペレーションに基づいて設定され、従来のオペレーションの副次作用を表す。分岐オペレーション中の条件を指定することにより、これらのスカラフラグの条件に基づいて、分岐が実行される。表1は、命令実行の結果として、その命令によって定義されるように生成することができるスカラ条件の例を示す。しかし、一般化条件付き実行は、ACFだけに基づく。ACFは、比較などの命令の選択されたセットによってのみ変更される。しかし、アーキテクチャ的には、この実行は、命令の大部分に拡張することができることに留意されたい。これらのある命令によるACFの生成は、実行の副次作用ではなく、プログラマによって指定される。ACFは、条件戻り位相の間に、実行の副次作用から、パイプラインの命令中で指定される通りに導出される--CNVZ--。加えて、ACFは、次の命令によって待機の犠牲なしで使用可能である。自明の事として、VLIWアーキテクチャ中の実行ユニット数と無関係に、図1のSP101と、図1の各PE101,151,153及び155ごとに1組のACFがある。このようにして、条件は、例えばALU中の比較命令からの、1つの実行ユニット中で生成することができ、他の実行ユニットは、この条件に基づいて条件付きで実行することができる。[ACFへの条件転送]命令セットの特性は、ある命令を使用する際に、プログラマがACF条件フラグをどのように設定するかを指定する必要があることである。図2Aに示すような命令20などのALU比較命令については、プログラマは、どの図2Bの条件テストCC202を、ACFF7~F0をセットする際に使用するかを指定しなければならない。例えば、以上GE205或いは以下LE207などの有効条件結果を、適切なACFを設定するために指定することができる。図2Bで示すように、記号は論理ORオペレーションを表す。記号はANDオペレーションを表し、記号は等しくないことを表す。このアーキテクチャは、実行真executeTrue、実行偽executeeFalse、無条件実行、及び他の特定のオペレーションを命令ごとに、階層式に指定する。真及び負フラグセッティングは、条件が真の場合の実行、及び条件が偽の場合の実行オペレーションに対して使用される。分岐もこれらのフラグの真または偽状態に基づいて実行することができる。あるDSU命令、シフト/回転、PEXCHG通信命令、及び選択された他の命令に対しては、ManArrayアーキテクチャにより、4つのスカラ条件C、V、N、またはZの副次効果のうちの1つを使用してACFをどのように更新するかを命令ごとに指定することができる。VLIWオペレーションを実行するとき、プログラマは、算術ユニットこの機能は拡張することができることを理解されたいが、現在のところALUまたはDSUのみであるのうちのどれがフラグの単一セットのセッティングを制御するかを選択しなければならない。各サイクルでは、条件フラグのセッティングは命令によって明示的に指定される。ManArray命令セットの別の特徴は、条件付きで実行する命令が条件フラグ自体に影響を与えないことである。この特徴により、比較の後の第1命令がフラグを変更し、望ましくない結果を生成するという心配なしに、プログラマは、a>bz=xy:r=qsの形のCスタイルの条件付き式演算子を実行できるようになる。命令は、ACFに基づく条件付き実行、またはフラグをセットする方法のいずれかを指定することができるが、両方を指定することはできない。[階層条件付き実行命令フォーマット]条件付き実行の仕様についての階層フォーマットは、命令ビットのより良い使用法を可能にするManArray命令セットアーキテクチャ中で使用される。3ビット、2ビット、または1ビットのサブセットオペコード拡張エンコーディングが、条件付き実行をサポートする各命令に対して定義される。ACFが影響を受けるかどうかに関わりなく、ASFスカラフラグは、常にb0、H0、W0、及びDオペレーションに関して影響を受けることにやはり留意されたい。[パック化オペレーションについての算術条件付きフラグACF]パック化データオペレーションは、命令によって指定された多数のデータ要素のそれぞれに関して同じオペレーションを実行するように定義される。これらの個々のデータ要素オペレーションのそれぞれは、パック化データ命令によって定義されるように適切なASF及び/またはACFをセットすることができる副次作用を生成することができる。ManArrayアーキテクチャは、最大8つの同時パック化データ命令をサポートするので、8つの定義されたACFF0~F7がある。以下の表2に示すように、フラグとオペレーション並列性との間には対応がある。フラグは、比較命令中のCCcodeフィールドと、以下でより詳細に説明する、選択された命令中のCE3aフィールドとによって指定されるように影響を受ける。図3A及び図3Bは、パック化データ要素オペレーションと、その対応するACFとの関係を示す。例えば、64ビットパック化データオペレーション300を示す図3Aのデュアルワードオペレーションでは、W0上のオペレーション302はF0に影響を与え、W1上のオペレーション304はF1に影響を与える。別の例では、32ビットのパック化データオペレーション350を表す図3Bのカッド4バイトオペレーションでは、b0上のオペレーション352はF0に影響を与え、b1上のオペレーション354はF1に影響を与え、b2上のオペレーション356はF2に影響を与え、b3上のオペレーション358はF3に影響を与える。[CE1:1ビット条件付き実行オペコード拡張エンコーディング]以下の表3に示すようなCE11ビット拡張フィールドを有するオペコードは、ACFに影響を与えずに、真のときに条件付きで実行するか、無条件で実行することができる。ASFは、命令によって定義されるように設定される。例えば、図4Aの命令400などのロード及びストア命令は、ACFフラグに決して影響を与えず、真の条件時に条件付きで実行することができる。[CE2:2ビット条件付き実行オペコード拡張エンコーディング]以下の表4に示すようなCE2の2ビット拡張フィールドを有するオペコードは、真または偽に対して条件付きで実行したり、無条件で実行し、かつACFに影響を与えない、または命令特有の条件付き実行機能を提供することができる。ASFは、命令によって定義されるように設定される。ビット0及び1でCE2の2ビット拡張フィールドを有する例示的コピー命令エンコーディング410を図4Bに示す。[CE3a:3ビット条件付き実行オペコード拡張エンコーディング]以下の表5に示すような条件付き実行CE3aの3ビット実行フィールドを用いたDSU固有命令シフト/回転、受信タイプ、浮動小数点/整数変換命令、及び他を選択selectothersは、命令をどのように実行すべきか、ACFがどのように影響を受けるかを指定する。C,N,Z,及びVフラグは、実行中の命令からの副次効果を表す。□が,-,×,論理ORなどの算術関数であるとして、A←X□YまたはX←X□Y□Zの形の算術命令は、フラグに影響を与えることなく、真または偽条件に対して条件付きで実行することができる。それらは、フラグに影響を与えることなく無条件で実行、または無条件で実行し、条件C,V,N又はZフラグのうちの1つに基づくフラグに影響を与えることができる。[CE3b:3ビット条件付き実行オペコード拡張エンコーディング]CE3bの3ビットアーキテクチャでアドレス指定される3つの状況がある。第1の状況は、オペレーションを無条件で実行することである。第2は、全てのパック化データ要素に対するオペレーションを条件付きで実行することである。第3は、どのデータ要素を条件付きで実行すべきかを選択することである。この第1ケースでは、オペレーションは、いつでも全てのデータ要素に対して実行される。第2ケースでは、オペレーションは、全てのデータ要素に対して実行されるか、全く実行されないかのいずれかである。第3ケースでは、オペレーションはいつでも実行されるが、指定した真又は偽コーディングについての適切な値の対応するACFを有するデータ要素に対してのみ実行される。この第3のケースでは、パック化データ命令は、SP中の宛先レジスタの更新の点で部分的に実行するか、又は対応するACFが指定された条件の場合だけ、PE中で並列に実行すると考えられる。全ての3つの手法は、CE3bエンコーディングを使用することによって利用可能である。CE3bの3ビット実行フィールドを備えるビット3,4,及び5を有する例示的な論理命令エンコーディング420を図4Cに示す。第3ケースのオペレーションを定義する構文は、Tm及びFmである。これらは、真多重TrueMultiple及び偽多重FalseMultipleを表す。この多重ケースは、オペレーション中で考慮すべきフラグの数を決定するために現行命令中のデータ要素カウントを使用する。例えば、Tm.add.sa.4hは、F0,F1,F2及びF3の現在の設定状態に基づいて、各4半ワードに対する加算命令を実行することになる。この実行は、これらの4つのフラグがどのように設定されたかに関わらず実行される。この手法により、1つのデータタイプのテスティングが、第2データタイプに対するオペレーションと共に可能となる。例えば、カッド4つのバイトセッティングフラグF3~F0に対して操作することができ、次いで条件付きカッド4半ワードオペレーションをフラグF3~F0に基づいて指定することができる。ある命令、主にMAU及びALU中の命令により、条件付き実行CE3bの3ビット拡張フィールドを指定することが可能となる。命令をどのように実行すべきか、ACFがどのように影響を受けるかを以下の表6に示す。100及び101のエンコーディングを含むことについての原理は、001及び010のエンコーディングと類似している。言い換えれば、この特徴により、プログラマは、a>bz=xy:r=qsの形のCスタイルの条件付き式演算子を実行できるようになる。但し、a,b,x,y,z,q,r及びsは、全てパック化データベクトル要素である。[条件付き分岐タイプ命令]本明細書で説明するManArrayアーキテクチャは、スカラ条件フラグC,V,N,またはZ,ならびにACFに基づくSP中の無条件及び条件付き分岐タイプ命令をサポートする。ACFを設定するための条件コードは、比較命令、ならびに図2Bに示す他の具体的に定義された命令中で指定されるので、制御コードがスカラ条件付き分岐命令を利用することができるものの、条件付き分岐は、真に対する分岐または偽に対する分岐だけしか指定する必要がない。パック化データに対する命令によって生成された多数の条件を収容するために、分岐命令は、全てAND縮小又は任意OR縮小の縮小オペレーションも指定しなければならない。1つのオペレーションだけがあるときに、2つの縮小は等しいものの、非パック化単一データMONOオペレーションに対する命令は、直交性に対するパック化データオペレーションのサブセットとして扱われる。表7は、1つの適切な縮小方法を表す。ここでやはり、多数の概念を使用する。構文フォーマットは、以下の表7に示す通りである。ただし、考慮すべきフラグの数は、構文中の2,4,及び8桁によって指定される。[比較命令]比較命令は、いつでも実行され、いつでもフラグに影響を与える。汎用フラグACFは、比較命令の一部として指定される条件コードに基づいて影響を受ける。条件の組合せを使用して、フラグの前の状態は、現行比較命令によって指定される条件コードテストの結果と共に組み合わせることができる。この手法により、複合条件を多重分岐に復元することなく作成することが可能となる。図2Bでは、CCは、より大GT206、より小LT208、等しいEQ204、または以下LEQ207などの条件コード202を表す。図2Aの比較CMPcc命令200は、テストすべき所望の条件CC図2B、比較すべき2つのソースレジスタ、パック化形態をカバーするデータタイプ、及びCCombと符号を付けたブール組合せ指定フィールドを指定する。以下の表8では、Ftnは、サイクルtで生成されるn真/偽条件フラグFを指定する。具体的には、文字nは、比較命令がそれぞれモノ、デュアル、カッド、またはオクタルであるかに依存して、ACFn=1:F0、n=2:F1-F0、n=4:F3-F0、またはn=8:F7-F0のセットを表す。Ft1nは、添字t-1によって示されるように、前のサイクルに対するACFの状態を指定する。Fnは、比較オペレーションを完了するのに使用されるnマシンACFのセットである、真/偽値の最後のセットを表す。この条件フラグエンコーディングを以下の表8に示す。条件を組合せることにより、プログラマは、多数の条件のブール組合せに対して、SP中で分岐する、又はSP及びPE中で条件付きで実行することが可能となる。この手法は、多数の分岐と、条件の組合せなしに同じ効果を達成するために必要なそれらの関連する犠牲との代わりに使用することができる。条件付き実行は、単一条件ではなく、多数の条件の組合せに基づいても実行することができる。最終的に、条件の組合せは、算術命令条件コードの限定化セットからは直接利用可能ではない複合条件を生成するために、先行する算術命令と共に使用することができる。任意の複雑さの組み合わされた条件は、条件フラグを多くのプロセッサレジスタのうちのどれか1つにコピーし、次いでそれらに対する論理演算を算術ユニット中で実行することによって得ることができることに留意されたい。所望の条件が計算され、レジスタ中に格納された後、所望の条件は、条件付き実行のために、それに対して使用することができる条件フラグに戻すことができる。この方法論を使用して、いくつかのプログラミングのオーバヘッドによって、複合条件を得る非常に一般的な方法が得られる。この方法論は、計算レジスタファイル中で生成し、常駐することができる条件結果の多数のセットを必要とする、Cスタイルの条件付きで実行されるステートメントのネスティングをサポートするためにも使用することができる。次いでプロセッサレジスタファイル中に常駐するこれらの条件結果は、条件付き実行の前にACFにコピーされることになる。[VLIW条件付き実行]VLIWメモリVIM中に格納される各命令は、そのCE1、CE2又はCE3a/b仕様を含む。VLIWが実行VLIWXV命令に応答して実行されるために読み出されるとき、個々のユニット内に多数のフラグを生成することができる。ACFの1つのセットがあり、潜在的にVLIW中の各命令がフラグに影響を与える可能性があるので、どの算術ユニットがある所与のサイクルのためのフラグに対して影響を与えることになるかを選ぶための選択機構が必要である。本発明によるManArrayの1つの実施形態では、これを達成するための2つの機構がある。これらの機構は、それぞれSIMD及び同期多重命令多重データストリームSMIMDコードの必要を満たす。SMIMDでは、異なるVLIWが、同じVLIMアドレスに存在することができ、次いでVLIW並列性についての様々な必要を伴う様々なアプリケーションで性能を最適化する目的で並列に実行することができる。SMIMDコードに対して、プログラマは、VLIWがロードVLIWLV命令の一部としてロードされるときに、どの算術ユニットがフラグに影響を与えるかを指定する。この手法により、異なるPEが、異なるユニットにフラグに影響を与えさせることが可能となる。SIMDコードに対して、プログラマは、どのユニットが実行時間にXV命令の一部としてフラグに影響を与えるかを指定する。XV命令指定は、LV命令で指定されたユニットを上書きすることができる。これにより、プログラマは、多数の非オーバーラッピングVLIWを、VLIWの実行毎に、条件フラグに影響を与える種々の算術ユニットを用いて、同じVIMアドレスにパックすることが可能となる。[PE間で条件フラグを伝送する]PEDSU受信命令PEXCHGは、PE間の通信オペレーションを指定する。このPEXCHG命令により、ACF及びASFを含むプログラマ可視ステータスレジスタにアクセス可能にすることによって、1つのPEから別のPEに条件状態情報を効果的に転送することが可能となる。SP受信命令SPRECVは、条件をPEとSPとの間で伝送するために使用することができる。条件状態は、異なるPEの計算レジスタファイル中に受信されることになり、次いで、それ自体のプログラマ可視フラグレジスタにコピーすることができ、条件付き実行のために使用される。[拡張条件付き実行定義]現在、図4CのCE3フィールド422、又は図4BのCE2フィールド412を有する各命令は、それぞれ表5及び6及び表4に示すように予約される少なくとも1つのエンコーディングを有する。以下の機構は、命令が算術条件フラグF7~F0をSetCC命令によって特定されるプログラム可能複合条件で更新することが可能となるように、この予約エンコーディングを使用することになる。例として、予約フィールドを使用するためのCE2のエンコーディングを以下の表9に示す。CE3a及びCE3bフィールドはどちらも、それらの等しい予約エンコーディングに対する同じエンコーディング定義を使用することになる。SetCC命令は、特定のユニットに対する命令がこのタイプの条件生成を指定するとき、その実行ユニットの算術条件フラグF7~F0中で生成され、保存すべき複合条件を指定する。現在の好ましいCE3aエンコーディングにより、4つの可能な条件C桁上げ、N符号、Vオーバーフロー、またはZゼロのうちの1つを指定することが可能となる。SetCC命令により、より大、より小、以下、以上などの標準の16個の条件を含む、最大32個の複合条件を指定することが可能となる。例えば、オーバーフローがパック化データ実行内で何らかのデータオペレーションに対して生じたかどうかを検出するために、条件を指定することができる。このようにして、オクタルパック化データ実行内でオーバーフローを有するデータオペレーション6は、設定すべきフラグACFF6の設定を生じさせることができる。条件に影響を与えることができるCE3又はCE2エンコーディングを有する命令によって、これらのうちのどれかが選択されても良い。異なる複合条件の選択がデータ依存となることができるように、一部のデータに基づいてSetCC命令を条件付きで実行可能にすることも可能である。例示的SetCC命令を以下の表10に示す。そのオペコードエンコーディングによって識別されるSetCC命令は、以下の2つのパラメータを指定する。実行ユニット:このフィールドは、指定した複合条件が当てはまる実行ユニットを指定する。各実行ユニットは、異なる複合条件を有することができるか、又はALLエンコーディングが選ばれる場合、全てのユニットが同じ複合条件を使用する。選択された条件:このフィールドは、32個の条件のうちの1つを指定する。命令フォーマットによりそれが可能にになると仮定すると、このフィールドはテストすべき他の条件が生じる場合に拡張することができる。[条件付き実行装置]図5Aは、本発明による条件付き処理の実装に適する条件付き処理ハードウェア500の態様を示す。ハードウェア500は、例えば算術論理ユニットALU、または図1のManArrayアーキテクチャの他の実行ユニットなどの算術ユニット510を含む。ALU510は、ManArrayレジスタファイルからオペランド507及び509を受け取る。命令制御線501は、プロセッサパイプライン中の登録した命令から導出される。この命令制御線は、命令中で指定されたように条件付きオペレーションを制御するために、条件付き実行制御線503を含む。図4Aは、ビット22がCE1フィールド402を有する例示的ロード直接命令400を示す。図4Bは、ビット1及び0がCE2フィールド412を表す例示的コピー命令410を示す。図4Cは、ビット5~3がCE3bフィールド422を表す例示的論理命令420を示す。例えば加算器502などの算術ユニット510内の動作ユニットは、結果515及びラッチされた算術スカラ条件状態519を生成する。ラッチ512及び514は、実行サイクルの終わりでのラッチ入力値を保持し、したがって実行サイクルの終了した命令に対する算術スカラ条件及び命令制御信号を表す。実行ユニットに対するパイプラインは、実装に依存して変動する可能性があり、その結果、所望の条件付きオペレーションを達成するために、パイプライン効果を調節しなければならないことに留意されたい。結果515は、プロセッサまたは処理要素のレジスタファイルに送られる。算術スカラ条件信号519は、ACF生成ユニット508中で、信号選択及び条件組合せユニット506によって、実行された命令に対する制御505によって指示される通りにさらに処理される。ACF生成ユニットの出力521は、プログラマ可視レジスタ518中に格納される前のACF生成信号F7~F0を表す。選択された命令に対するACF生成ユニットは、前の状態525と共に現在の選択された状態のブール組合せも提供する。前で示したように、多くの命令は、アーキテクチャによって指定されるように、フラグに影響を与えないことに留意されたい。これらの影響なしnoaffectの場合では、フラグは、依然として前にセットされたのと同様である。マルチプレクサ520は、実行中の命令中で指定されるテストの結果に依存してレジスタファイル中に結果出力515を書き込むかどうかを制御するために、算術ユニット中の条件付きテストのための出力527として使用されるACF生成信号521またはACFラッチ518出力525のいずれかを選択する。マルチプレクサ520の出力527は、SP中の分岐ロジックのみに送られ、プログラマ可視ステータスビットを表すラッチ518中に次のサイクルでラッチされる。同様に、マルチプレクサ522は、ラッチされたCNVZラッチ出力517の部分、又はCNVZラッチ516の出力523のいずれかを、SP中の分岐ロジックのみに送り、プログラマ可視ステータスビットを表すラッチ516中に次のサイクルでラッチするために選択する。以下の表11に示すように、ラッチ中のこれらのビット516及び518は、CNVZ516の値がプログラマの可視ステータス及び制御レジスタ0SCR0のビット19~16中にそれぞれ位置付けられる共通プログラマ可視ステータスレジスタ中で組み合わせることができ、ACFF7~F0518の値は、ビット7~0中にそれぞれ位置付けられる。32ビットステータス及び制御レジスタ0SCR0は、主ステータス及び制御情報を含む。尚、ブランクフィールドは予約済みである。ManArrayプロセッサでは、図5Aに表す概念は、図5Bに示すVLIWアーキテクチャに拡張される。図5Bでは、データ選択ユニットDSU560、ALU570、及び乗算加算ユニットMAU580の3つの実行ユニットを含む条件付き実行VLIWユニット550を示す。このハードウェアは、図1に示すプロセッサ100などのManArrayプロセッサのSP及び各PE中に取り込まれる。これらのユニットの内部には、基本動作要素及びそれらのASF生成とラッチユニットが、DSU560中の機能ユニットfn562、ALU加算器572、及びMAU乗算器582中にある。概念の汎用性を実演するために3つのタイプのフラグの機能性を示し、それらは典型的なアプリケーションの必要を代表する。DSU560では、ASF、CNVZが、DSU命令の必要に応じて生成される。ACF561は、プログラマ可視ラッチ598からの格納されたACF状態のフィードバックなしに、AFC生成ユニット568で、ASF563に基づいて生成される。ALU570は図5Aで示した手法の機能性を維持する。ALU570では、ACF571は、プログラマ可視ラッチ598からフィードバックされたASF573及び格納されたACF状態599に基づいて、ACF生成ユニット578で生成される。MAU580は、MAU命令の結果として生成されるACFを用いない、比較的単純な機構を使用する。MAUは、この例示的実施で示すように、ACFのセッティングから一般に排除されない。これらのフラグに影響を与えるMAU命令の最下位オペレーションについてアーキテクチャ的に定義されたASF,CNVZ587のみが、マルチプレクサ592に送られ、そこから、選択された場合に、そのASF587がマルチプレクサ出力597に進み、プログラマ可視状態ラッチ596中にラッチされる。マルチプレクサ592は、CNVZmux制御信号591によって制御されるように、MAU587,ALU577,DSU567、またはCNVZ状態ラッチ589から生成されたASFを選択する。VLIW実行に対しては、XV命令のUAFと共に、ロードVLIWLV命令中のユニット影響フラグUAFフィールド、このManArrayアーキテクチャでは2ビットフィールドは、マルチプレクサ制御信号591及びACFMux制御593を以下のように決定する。LV命令のユニット影響フラグUAFビットは、どの算術命令スロットA=ALU,M=MAU,D=DSUが、実行時に、指定したVLIWに対する条件フラグをセットすることが可能かを選択するために使用される。XV命令のユニット影響フラグUAFビットは、それがLV命令を介してロードされたときに、VLIWに対して指定されたUAFを上書きする。この上書きは、VLIWのこの実行に対してどの算術命令スロットA=ALU,M=MAU,D=DSUが条件フラグをセットすることが可能であるか、またはどれも可能ではないN=NONEかを選択する。この上書きは、これらがVIM中の指定されたVLIWアドレスにロードされるので、LV命令を介して指定されたUAFセッティングに影響を与えない。この命令構文では、命令のためのUAFを指定するためにフラグパラメータを使用する。ブランクパラメータ、即ち、F=は、VLIWがロードされて命令の実行に使用され、後続のマルチプレクサ592及び594が適切なフラグをプログラマ可視レジスタ596及び598中にロードするように制御するために使用されるときに、特定されるUAFを選択する。例えば、MAUがフラグに影響を与えるべきことを示すUAFと共に、マルチプレクサ592は、CNVZMux制御591信号に応答して、マルチプレクサ出力597に進むパス587を選択し、生成されたCNVZASFをCNVZ状態ラッチ596にロードする。MAUは、例示的MAU580に示すように、どんなACFも生成しないので、プログラマ可視ACF状態ラッチ598中にラッチすべきACFはなく、プログラマ可視ACF状態ラッチ598は前の状態を保持する。MAUは、依然としてそのパイプラインシーケンスに従う別の実行ユニット595によって生成されたACF値に基づいて条件付きで実行することができる。どの命令シーケンスも、CNVZ又はACF状態ラッチ596及び598をそれぞれどの実行ユニットでも更新する必要がない場合、mux制御信号591及び593は、マルチプレクサ592及び594が、状態ラッチ出力589及び599を選択し、それらのマルチプレクサ出力597及び595にそれぞれ進ませるようにする。ManArrayの実施に対して、CNVZ及びACF信号のためのバス幅を図5Bに示す。図5Bでは、CNVZパス587,577及び567は、全てC,N,V及びZ値に対応する4ビット信号である。ACFパス571及び561は、それぞれF7~F0に対応する8ビット信号である。マルチプレクサ592及び594の出力はそれぞれ4ビット信号及び8ビット信号であり、そのどちらも、分岐ロジックで使用される。ACFマルチプレクサ出力信号595は、各実行ユニット560,570及び580中の制御条件付き実行に使用される。SP中では、マルチプレクサ出力信号595及び597は、条件付き実行のために分岐ロジック中で使用される。このManArrayアーキテクチャは、ロードイミーディエイト命令によってロードすることができる、メモリからロードすることができる、または計算レジスタからコピーすることができるプログラマ可視ステータス及び制御レジスタのうちの1つに格納すべきACF状態ラッチ598及びCNVZ状態ラッチ596を定義する。このレジスタをメモリ中に保存し、実行ユニットで利用可能な計算レジスタのうちの1つにコピーすることもできる。前述の方法及び装置を、条件付き実行のための条件フラグ情報及び命令エンコーディングを実施するために使用すると、条件付き実行は、1ビットの追加のオペコード空間だけでサポートされ、機能性の程度の変動に伴って最大3ビットでサポートされることがわかる。加えて、命令機能指定と条件付き実行指定との間のより良い合致を得ることができる。例えば、1ビット条件付き実行エンコーディングは、ロード及びストア命令に対して十分であり、機能エンコーディングに対して最大数のビットが可能となる。各追加された条件実行ビットは、前の機能性のスーパーセットを提供する。さらに、この手法では、条件ビットの全体数は減少する。これは、1つのフラグが各サブワードオペレーションに対して定義されるパック化データに対して操作する命令とよくマップし、サブワードごとの命令の部分的実行が可能となる。別の条件フラグの減少は、VLIW中の全ての実行ユニットが同じ条件フラグを共用する場合に指定される。ManArrayネットワーク及び通信命令を使用することによって、異なるPE中で実行する命令が互いの条件情報を使用することが可能となる。加えて、条件組合せでは、複合条件の場合に対して多数の分岐を使用することを避けることができ、複合条件は、条件付き実行に対して使用することができる。本発明を現在のところ好ましい実施形態で説明したが、有利には、本発明の教示は、添付の請求の範囲と一致する様々な処理アレイに適用することができることを理解されたい。"