(57)【要約】いくつかの実施形態によれば、条件付きの単純命令多重データ（Single  Instruction,  Multiple  Data）の命令が提供される。たとえば、第一の条件命令がnチャネルのSIMD実行エンジンで受け取られうる。この第一の条件命令は複数チャネルに対応するデータに基づいて評価されえ、評価の結果はnビットの条件マスクレジスタに保存されうる。次いで第二の条件命令が実行エンジンで受け取られえ、前記結果は条件マスクレジスタからnビット幅のm項目の深さの条件スタックにコピーされうる。【特許請求の範囲】
【請求項１】
nオペランドの単一命令多重データ実行エンジンにおいて第一の条件命令を受け取り、
複数オペランドの対応するデータに基づいて第一の条件命令を評価し、
評価の結果をnビットの条件マスクレジスタに保存し、
前記実行エンジンにおいて第二の条件命令を受け取り、
前記結果を条件マスクレジスタからnビット幅でm項目の深さの条件スタックにコピーする、
ことを含むことを特徴とする方法。
【請求項２】
第二の条件命令を条件マスクレジスタ内のデータおよび複数オペランドの対応するデータに基づいて評価し、
第二の条件命令の評価の結果を条件マスクレジスタに保存し、
第二の条件命令に関連する命令を条件マスクレジスタ内のデータに従って実行し、
条件スタックの一番上を条件マスクレジスタに移し、
第一の条件命令に関連する命令を条件マスクレジスタ内のデータに従って実行する、
ことをさらに含むことを特徴とする方法。
【請求項３】
前記第一の条件命令が(i)ある条件が真であるときに実行されるべき第一の組の命令と、(ii)前記条件が偽のときに実行されるべき第二の組の命令とに関連していることを特徴とする、請求項１記載の方法。
【請求項４】
前記第一の条件命令が前記第二の組の命令に関連するアドレスを含んでおり：
前記評価が、前記第一の条件命令が対応するデータのうち評価されたどのビットについても満たされないことを示している場合には、前記アドレスにジャンプすることをさらに含むことを特徴とする、請求項３記載の方法。
【請求項５】
前記第一の組の命令を実行し、
条件マスクレジスタ内のデータを条件スタックの一番上のデータとブール演算を介して組み合わせ、
該組み合わせの結果を条件マスクレジスタ内に保存し、
前記第二の組の命令を条件マスクレジスタ内のデータに従って実行する、
ことをさらに含むことを特徴とする、請求項３記載の方法。
【請求項６】
対応するデータのn個のオペランドのそれぞれがチャネルに対応しており、第一の条件命令を受け取るのに先立って：
実行のために有効にされるべきチャネルに基づいて条件マスクレジスタを初期化することをさらに含むことを特徴とする、請求項１記載の方法。
【請求項７】
条件スタックが二項目以上の深さであることを特徴とする、請求項１記載の方法。
【請求項８】
(i)「if」命令の条件と(ii)複数チャネルに対応するデータとの評価の結果を保存するnビットの条件マスクベクトルと、
前記評価の結果に先立って条件マスクベクトル内に存在していた情報を保存する、nビット幅でm項目の深さの条件スタック、
とを有することを特徴とする装置。
【請求項９】
対応する「end  if」命令が実行されたときに前記情報が条件スタックから条件マスクベクトルに転送されることを特徴とする、請求項８記載の装置。
【請求項１０】
前記「if」命令が(i)真の条件に対応するオペランドに対して実行されるべき第一の組の命令と、(ii)偽の条件に対応するオペランドに対して実行されるべき第二の組の命令とに関連していることを特徴とする、請求項８記載の装置。
【請求項１１】
前記「if」命令が前記第二の組の命令に関連するアドレスを含んでおり、どのチャネルについても結果が偽のときに前記アドレスがプログラムカウンタに入れられることを特徴とする、請求項１０記載の装置。
【請求項１２】
(i)前記第一の組の命令を実行し、(ii)条件マスクベクトル内の情報を条件スタックの一番上の情報と組み合わせ、(iii)該組み合わせの結果を条件マスクベクトル内に保存し、(iv)前記第二の組の命令を実行するエンジンをさらに有することを特徴とする、請求項１０記載の装置。
【請求項１３】
前記条件マスクベクトルが有効になっているチャネルに従って初期化されることを特徴とする、請求項８記載の装置。
【請求項１４】
前記条件スタックが１項目の深さであることを特徴とする、請求項８記載の装置。
【請求項１５】
機械によって実行されたときに下記、すなわち：
nチャネルの単一命令多重データ実行エンジンにおいて第一の条件文を受け取り、
複数チャネルの対応するデータについて第一の条件文を同時に評価し、
評価の結果をnビットの条件マスクレジスタに保存し、
前記実行エンジンにおいて第二の条件文を受け取り、
前記結果を条件マスクレジスタからnビット幅でm項目の深さの条件スタックにコピーする、
結果を生じる命令が保存されている記憶媒体
を有する物品。
【請求項１６】
前記第一の条件文が(i)ある条件が真であるときに実行されるべき第一の組の文と関連しており、(ii)前記条件が偽のときに実行されるべき第二の組の文に関連しており、(iii)前記第二の組の文に関連するアドレスを含んでおり、前記方法が：
前記評価が、前記第一の条件文がnチャネルの対応するデータのどれについても真でないことを示している場合には、前記アドレスにジャンプすることをさらに含むことを特徴とする、請求項１５記載の物品。
【請求項１７】
前記方法が：
第二の条件文を条件マスクレジスタ内のデータおよびnチャネルの対応するデータに基づいて評価し、
第二の条件文の評価の結果を条件マスクレジスタに保存し、
第二の条件文に関連する文を条件マスクレジスタ内のデータに従って実行し、
条件スタックの一番上を条件マスクレジスタに転送し、
第一の条件文に関連する文を条件マスクレジスタ内のデータに従って実行する、
ことをさらに含むことを特徴とする、請求項１６記載の物品。
【請求項１８】
(i)第一の「if」の条件と(ii)複数チャネルに対応するデータとの評価の結果を保存するnビットの条件マスクベクトルと、
第二の「if」命令に遭遇したときに前記結果を保存する、nビット幅でm項目の深さの条件スタック、
とを含むプロセッサと、
グラフィック記憶ユニット、
とを有することを特徴とするシステム。
【請求項１９】
前記第二の「if」命令に対応する「end  if」命令が実行されるときに前記結果が条件スタックから条件マスクベクトルに転送されることを特徴とする、請求項１８記載のシステム。
【請求項２０】
命令記憶ユニットをさらに有することを特徴とする、請求項１８記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
処理システムのパフォーマンスを向上させるため、単純命令多重データ（SIMD:  Single  Instruction,  Multiple  Data）命令は単一の命令期間内に複数のオペランドデータについて同時に実行されうる。たとえば、８チャネルのSIMD実行エンジンはある命令を同時に８つの３２ビットオペランドデータについて実行でき、各オペランドはSIMD実行エンジンの一意的な計算チャネルに割り当てられる。場合によっては、命令は「条件付き」であることがある。つまり、ある命令または命令の組は、ある所定の条件が満たされる場合にのみ実行されうるのである。SIMD実行エンジンの場合、そのような条件はいくつかのチャネルについては満たされるが他のチャネルについては満たされないといったことがありうることを注意しておく。
【発明の開示】
【課題を解決するための手段】
【０００２】
ここに記載されるいくつかの実施形態は「処理システム」に関する。ここでの用法では、「処理システム」の語句はデータを処理するいかなる装置をも指しうる。処理システムはたとえば、グラフィックデータおよび／またはその他の種類のメディア情報を処理するグラフィックエンジンに対応しうる。場合によっては、処理システムのパフォーマンスはSIMD実行エンジンの使用で向上させることができる。たとえば、SIMD実行エンジンは、複数チャネルのデータについて単一の浮動小数点SIMD演算を同時に実行しうる（たとえば、三次元幾何学図形の変換および／またはレンダリングを加速するために）。
【発明を実施するための最良の形態】
【０００３】
図１は、SIMD実行エンジン１１０を含むある型の処理システム１００を示している。この場合、実行エンジンは命令を、４成分データベクトル（たとえば、ベクトル成分X,Y,Z,Wのそれぞれが、SIMD実行エンジン１１０の対応するチャネル0ないし3で処理するために配列されたビットを有している）とともに受け取る（たとえば命令記憶ユニットから）。エンジン１１０は次いで、ベクトルの成分すべてについて前記命令を同時に実行しうる。そのようなアプローチは「水平的」または「構造の配列（array  of  structures）」実装と呼ばれる。
【０００４】
図２は、SIMD実行エンジン２１０を含む別のある型の処理システム２００を示している。この場合、実行エンジンは命令を、ある異なるベクトル（たとえば、ベクトル0ないし3からの４つのX成分）にそれぞれ対応する４つのオペランドデータとともに受け取る。エンジン２１０は次いで、単一の命令期間内に前記オペランドすべてについて前記命令を同時に実行しうる。そのようなアプローチは「チャネル直列」または「配列の構造（structure  of  arrays）」実装と呼ばれる。
【０００５】
いくつかのSIMD命令は条件付きでありうることを注意しておく。たとえば、次の命令の組を考える。
【０００６】
IF（条件１）
第一の組の命令
ELSE
第二の組の命令
END  IF
ここで、第一の組の命令は「条件１」が真であるときに実行されることになり、第二の組の命令は「条件１」が偽であるときに実行されることになる。しかし、そのような命令が複数チャネルのデータについて同時に実行されるとき、異なるチャネルが異なる結果を生じることがある。つまり、いくつかのチャネルについては第一の組の命令が実行される必要がある一方、他のチャネルについては第二の組の命令が実行される必要があるといったことがありうるのである。
【０００７】
図３〜５はいくつかの実施形態に基づく４チャネルSIMD実行エンジン３００を示している。エンジン３００は４ビットの条件マスクレジスタ３１０を含んでおり、該レジスタ内では各ビットは対応する計算チャネルに関連付けられている。条件マスクレジスタ３１０はたとえば、エンジン３００内のハードウェアレジスタであってもよい。エンジン３００は４ビット幅、m項目深さの条件スタック３２０をも含みうる。条件スタック３２０はたとえば、一連のハードウェアレジスタ、記憶位置および／またはハードウェアレジスタと記憶位置との組み合わせでありうる（たとえば、10項目深さのスタックの場合、スタック３２０中の最初の4項目はハードウェアレジスタで、残りの6項目はメモリに保存されるなど）。図３に示したエンジン３００、条件マスクレジスタ３１０および条件スタック３２０は４つのチャネルに対するものであるが、実装はそれ以外のチャネル数に対してでもよく（たとえばｘチャネル実行エンジン）、各計算チャネルはｙビットオペランドを処理することができてもよい。
【０００８】
エンジン３００は４つの異なるチャネルのデータ（たとえば４つの計算チャネルに対応するもの）について命令を受け取って同時に実行することができる。実施形態によっては必要とされるのが４チャネル未満であることもあることを注意しておく（たとえば有効なオペランドが４つ未満の場合）。結果として、条件マスクベクトル３１０は、どのチャネルが有効なオペランドをもち、どのチャネルがもたないかを示す初期化ベクトルで初期化されうる（たとえば、オペランドi0ないしi3について「1」が対応するチャネルが現在有効になっていることを示す）。次いで条件マスクベクトル３１０を使うことで不必要な処理を回避しうる（たとえば、条件マスクレジスタ３１０のうち「1」にセットされているオペランドについてのみ命令を実行するなど）。いくつかの実施形態によれば、条件マスクレジスタ３１０内の情報は他のレジスタ内の情報と組み合わされることができ（たとえばブール演算ANDを介して）、その結果は総合的な実行マスクレジスタ内に保存されうる（それは次いで不必要または不適切な処理を回避するために使用されうる）。
【０００９】
エンジン３００が条件命令（たとえば「IF」文）を受け取るとき、図４に示したように、条件マスクレジスタ３１０内のデータが条件スタック３２０の一番上にコピーされる。さらに、その命令は、条件マスクレジスタ内の情報に従って４つのオペランドのそれぞれについて実行される。たとえば、初期化ベクトルが「1110」だったとすると、IF文に対応する条件は３つの最上位オペランド（MSB:  Most  Significant  operands）に対応するデータについては評価されるが、最低位ビット（LSB:  Least  Significant  Bit）に対応するデータについては評価されない（たとえば、そのチャネルは現在有効になっていないため）。次いで評価の結果が条件マスクレジスタ３１０内に保存され、そのIF文に関連した文についての不必要および／または不適切な処理を回避するために使用されることができる。例として、IF文に対応する条件が「110x」という結果を生じるとすると（ここでxはそのチャネルが有効になっていなかったため評価されなかったものである）、条件マスクレジスタ３１０には「1100」が保存されうる。次いでそのIF文に関連する他の命令が実行されるとき、エンジン３００は２つのMSBに対応するデータについてのみ命令を実行する（２つのLSBに対応するデータについては実行しない）。
【００１０】
エンジン３００が、条件命令に関連した命令の終わりに達したとの指示（たとえば「END  IF」文）を受け取ると、図５に示したように、条件スタック３２０の一番上のデータ（たとえば初期化ベクトル）が条件マスクレジスタ３１０に転送されて戻され、条件ブロックにはいる前にどのチャネルが有効なデータを含んでいたかを示す内容が復元される。次いで有効になっているチャネルに対応するデータについてさらなる命令が実行されうる。結果として、SIMDエンジン３００は効率的に条件命令を処理しうる。
【００１１】
いくつかの実施形態によれば、条件命令は、別の条件命令に関連する命令の組の中に「ネスト」されうる。たとえば、次の命令の組を考える。
【００１２】
IF（条件１）
第一の組の命令
IF（条件２）
第二の組の命令
END  IF
第三の組の命令
END  IF
この場合、第一および第三の組の命令は、「条件１」が真であるときに実行されるべきで、第二の組の命令は「条件１」と「条件２」の両方が真のときにのみ実行されるべきである。
【００１３】
図６〜９は、いくつかの実施形態に基づく、条件マスクレジスタ６１０（たとえば、初期化ベクトルで初期化されている）および条件スタック６２０を含むSIMD実行エンジン６００を示している。前と同様、条件マスクレジスタ６１０内の情報はスタック６２０の一番上にコピーされ、諸チャネルのデータは(i)条件マスクレジスタ６１０内の情報および(ii)第一の条件命令に対応する条件（たとえば「条件１」）に従って評価される。その評価の結果（たとえばr10ないしr13）は、図７に示すように、第一の条件命令（たとえば第一のIF文）が実行されるときに条件マスクレジスタ６１０内に保存される。次いでエンジン６００は、条件マスクレジスタ６１０内の情報によって指示される複数オペランドのデータについて第一の条件命令に関連するさらなる命令を実行しうる。
【００１４】
図８は、いくつかの実施形態に基づくもう一つのネストした条件命令（たとえば第二のIF文）の実行を示している。この場合、現在条件マスクレジスタ６１０内にある情報がスタック６２０の一番上にコピーされる。結果として、それまでスタック６２０の一番上にあった情報（たとえば初期化ベクトル）は一項目ぶん押し下げられている。複数チャネルのデータは、(i)現在、条件マスクレジスタ６１０内にある情報（たとえばr10ないしr13）および第二の条件命令に対応する条件（たとえば「条件２」）に従って同時に評価される。次いでこの評価の結果は条件マスクレジスタ６１０に保存され（たとえばr20ないしr23）、条件マスクレジスタ６１０内の情報によって指示される複数オペランドのデータについて第二の条件命令に関連するさらなる命令を実行するためにエンジン６００によって使用されうる。
【００１５】
エンジン６００が、第二の条件命令に関連した命令の終わりに達したとの指示（たとえば「END  IF」文）を受け取ると、図９に示したように、条件スタック６２０の一番上のデータ（たとえばr10ないしr13）が条件マスクレジスタ６１０に移し戻されうる。次いで条件マスクレジスタ６２０に従ってさらなる命令が実行されうる。もう一つのEND  IF文に遭遇した場合（図９には示さず）には、初期化ベクトルが条件マスクレジスタ６１０に転送して戻されることになり、有効になっているチャネルに対応するデータについてさらなる命令が実行されうる。
【００１６】
条件スタック６２０の深さは、エンジン６００によってサポートされる条件命令ネストのレベル数に関連しうることを注意しておく。いくつかの実施形態によれば、条件スタック６２０は単一項目ぶんの深さしかない（たとえば、スタックは実際にはnオペランド幅のレジスタでありうる）。
【００１７】
図１０は、ここに記載された実施形態のいくつかなどとの関連で実行されうる方法のフローチャートである。ここに記載されるフローチャートは必ずしも動作の固定した順序を含意するものではなく、諸実施例は実施可能ないかなる順序でも実行されうる。ここに記載される諸方法のいずれも、ハードウェア、ソフトウェア（マイクロコードを含む）、ファームウェアまたはこれらの手法の任意の組み合わせによって実行されうることを注意しておく。たとえば、記憶媒体は、機械によって実行されたときにここに記載される諸実施形態のいずれかに基づく実行につながる命令をその上に記憶しうる。
【００１８】
１００２で、条件マスクレジスタが初期化される。たとえば、現在有効となっているチャネルに基づいて条件マスクレジスタに初期化ベクトルが保存されうる。別の実施形態では、条件マスクレジスタは単にすべて１に初期化される（たとえば、すべてのチャネルが常に有効にされていると想定される）。
【００１９】
１００４では、次のSIMD命令が取得される。たとえば、SIMD実行エンジンは記憶ユニットから命令を受け取りうる。１００６でSIMD命令が「IF」命令のとき、１００８で該命令に対応する条件が条件マスクレジスタに従って評価される。すなわち、条件マスクレジスタ中「１」をもつチャネルに対応するオペランドについて前記条件が評価される。場合によっては、条件マスクレジスタ中で「１」をもつチャネルは一つであったり全くなかったりすることもありうることを注意しておく。
【００２０】
１０１０では、条件マスクレジスタ中のデータが条件スタックの一番上に転送される。たとえば、条件マスクレジスタの現在の状態が、あとで「IF」文に対応する命令が実行されたのちに復元されるよう保存されうるのである。次いで評価の結果が１０１２で条件マスクレジスタに保存され、当該方法は１００４で継続される（たとえば、次のSIMD命令が取得されうる）。
【００２１】
１００６でSIMD命令が「IF」命令でなかったときは、１０１４において該命令が「END  IF」命令であるかどうかが判定される。そうでない場合、１０１８で該命令は実行される。たとえば、該命令は条件マスクレジスタによって指示される複数チャネルのデータについて実行されうる。そしてスタック中の残りの値は位置一つ分上に移される。
【００２２】
１０１４で「END  IF」命令に遭遇したと判定されたときは、条件スタックの一番上にある情報が１０１６で条件レジスタに移し戻される。
【００２３】
場合によっては、条件命令は(i)ある条件が真であるときに実行されるべき第一の組の命令と、(ii)その条件が偽であるときに実行されるべき第二の組の命令（たとえばELSE文に関連するもの）の両方に関連している。図１１〜１３はいくつかの実施形態に基づくSIMD実行エンジン１１００を図示している。以前と同様、エンジン１１００は初期化された条件マスクレジスタ１１１０および条件スタック１１２０を含む。この場合、エンジン１１００はある命令を、16個のオペランドのデータについて同時に実行できることを注意しておく。この実施形態によれば、前記条件命令はまた、第二の組の命令に関連付けられたアドレスを含む。具体的に言うと、前記条件が評価されたどのオペランドのデータについても（たとえば、有効になっていて、かつより高レベルのIF文によりマスクされていない諸チャネルについて）真でないと判定されるときには、エンジン１１００はそのアドレスに直接ジャンプすることになる。このようにして、IF‐ELSE対の間の不要な命令が回避されうるので、エンジン１１００のパフォーマンスは改善されうる。前記条件命令がELSE命令に対応していない場合、前記アドレスはその代わりにEND  IF命令に関連付けられうる。さらに別の実施形態によれば、ELSE命令はEND  IF命令のアドレスをも含みうる。この場合、エンジン１１００は、前記条件が全チャネルについて真である（したがって、該ELSEに関連付けられた命令のどれも実行される必要がない）ときには、END  IF命令に直接ジャンプできる。
【００２４】
図１２に示されるように、条件マスクレジスタ１１１０内の情報は、条件命令に遭遇したときに、条件スタック１１２０にコピーされる。さらに、その命令に対応する条件が複数チャネルについて、条件マスクレジスタ１１１０（たとえば、それより上のレベルのIF命令がペンディングになっていないときには、有効になっている全チャネルについてのもの）に従って評価され、その結果（たとえばオペランドr0ないしr15）は条件マスクレジスタ１１１０内に保存される。次いで条件マスクレジスタ１１１０に従ってIF文に関連する諸命令が実行されうる。
【００２５】
図１３に示すように、ELSE命令に遭遇したときは、エンジン１１００は単に条件マスクレジスタ１１１０内のオペランドすべてを反転させてもよい。このようにして、IF命令との関連で実行されなかったチャネルに対応するデータが、今、実行される。しかし、そのような手法はいくつかのチャネルが不適切に１にセットされ、よってそれらのチャネルに対して実行が起こらないべきときにELSEのもとで実行されてしまう結果になりうる。たとえば、IF‐ELSE‐END  IFのコードブロックにはいったときに現在有効となっていなかったチャネルは、IF命令についてもELSE命令についてもどちらでもマスクされる（たとえば、0にセットされる）べきである。同様に、より上のレベルのIF命令のために現在マスクされているチャネルはマスクされたままとなるべきである。そのような問題を避けるため、ELSE命令に遭遇したときに条件マスクレジスタ１１１０内の全部のオペランドを単に反転させる代わりに、エンジン１１００は条件マスクレジスタ１１１０内の現在の情報を条件スタック１１２０の一番上の情報とブール演算によって組み合わせる。たとえば、新たなマスク＝NOT（マスク）ANDスタックの一番上とするのである。
【００２６】
図１４は、いくつかの実施形態に基づく方法のフローチャートである。１４０２では、条件SIMD命令が受け取られる。たとえば、SIMD実行エンジンは記憶ユニットからIF命令を受け取りうる。次いで１４０４でエンジンは(i)条件マスクレジスタ内の現在の情報を条件スタックにコピーし、(ii)複数チャネルのデータおよび条件マスクレジスタに従って当該条件を評価し、(iii)評価の結果を条件マスクレジスタに保存しうる。
【００２７】
１４０６で、評価されたチャネルのいずれかが真であった場合、１４０８においてIF命令に関連する第一の組の命令が条件マスクレジスタに従って実行されうる。任意的に、１４０６でどのチャネルも真でなかった場合には、これらの命令はスキップされてもよい。
【００２８】
ELSE文に遭遇したときは、１４１０で条件マスクレジスタ内の情報が条件スタックの一番上の情報とチャネルごとのブール演算を通じて組み合わされうる。たとえば、NOT（条件マスクレジスタ）ANDスタックの一番上  などである。次いで１４１４で第二の組の命令（たとえばELSE文に関連するもの）が実行されうる。そして１４１６で条件マスクレジスタが条件スタックから復元されうる。任意的に、１４１２でどのチャネルも真でなかった場合には、これらの命令はスキップされうる。
【００２９】
図１５はいくつかの実施形態に基づくシステム１５００のブロック図である。システム１５００はたとえば、デジタルテレビ信号を記録および／または表示するよう適応されたメディアプロセッサでありうる。システム１５００はここに記載されるいずれかの実施形態に基づくnオペランドのSIMD実行エンジン１５２０を有するグラフィックエンジン１５１０を含んでいる。たとえば、SIMD実行エンジン１５２０は(i)第一の「IF」条件文と(ii)複数チャネルに対応するデータとの評価の結果を保存するためのnオペランドの条件マスクベクトルを有しうる。SIMD実行エンジン１５２０は、第二の「IF」命令に遭遇したときに前記結果を保存するためのnビット幅でm項目の深さの条件スタックをも有しうる。システム１５００は、SIMD命令を保存するための命令記憶ユニット１５３０およびグラフィックデータ（たとえば、三次元画像に対応するベクトル）を保存するためのグラフィック記憶ユニット１５４０をも含みうる。命令記憶ユニット１５３０およびグラフィック記憶ユニット１５４０はたとえばランダムアクセスメモリ（RAM）ユニットを有しうる。
【００３０】
以下、さまざまな追加的実施例を示す。これらは可能なすべての実施形態の定義をなすものではなく、当業者は他の多くの実施形態が可能であることを理解するであろう。さらに、以下の実施形態は明快のため手短に述べるが、当業者は必要とあらば上記の記述をどのように修正してこれらおよびその他の実施例および応用を取り入れるかは理解するであろう。
【００３１】
いくつかの実施形態について別個の条件マスクレジスタおよび条件スタックに関して述べてきたが、どの実施形態も単一の条件スタックのみに関連するものでもよい（たとえば、現在のマスク情報がスタック中の一番上の項目に対応しうる）。
【００３２】
さらに、種々の実施形態について述べてきたが、諸実施形態のいかなる組み合わせも実装されうることを注意しておく（たとえば、IF文とELSE文の両方がアドレスを含んでいてもよい）。さらに、例では「０」を有効になっていないチャネルを指示するために用いたが、他の実施形態によればチャネルが現在有効になっていないことを指示するために代わりに「１」を用いてもよい。
【００３３】
ここに記載された各実施形態は単に例示の目的のためである。当業者はこの記載から、請求項によってのみ限定される修正および変更を加えた他の実施形態が実施しうることを認識するであろう。
【図面の簡単な説明】
【００３４】
【図１】処理システムを示す図である。
【図２】処理システムを示す図である。
【図３】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図４】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図５】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図６】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図７】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図８】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図９】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図１０】いくつかの実施形態に基づく方法のフローチャートである。
【図１１】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図１２】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図１３】いくつかの実施形態に基づくSIMD実行エンジンを示す図である。
【図１４】いくつかの実施形態に基づく方法のフローチャートである。
【図１５】いくつかの実施形態に基づくシステムのブロック図である。
【図１】
2008503838.tif 000002
【図２】
2008503838.tif 000003
【図３】
2008503838.tif 000004
【図４】
2008503838.tif 000005
【図５】
2008503838.tif 000006
【図６】
2008503838.tif 000007
【図７】
2008503838.tif 000008
【図８】
2008503838.tif 000009
【図９】
2008503838.tif 000010
【図１０】
2008503838.tif 000011
【図１１】
2008503838.tif 000012
【図１２】
2008503838.tif 000013
【図１３】
2008503838.tif 000014
【図１４】
2008503838.tif 000015
【図１５】
2008503838.tif 000016
【国際調査報告】
2008503838.tif 000017
2008503838.tif 000018
2008503838.tif 000019