半導体プロセッサにおいて論理的縮約命令を実行する方法であって、前記実行は:複数の要素をもつベクトルをレジスタに記憶する段階と;前記ベクトルの要素をスウィズル回路によりスウィズルして第一のスウィズルベクトルを形成する段階と;前記ベクトルおよび前記第一のスウィズルベクトルに対してベクトル論理回路によりベクトル論理演算を実行して第一の中間ベクトルを形成する段階と;前記第一の中間ベクトルの要素をスウィズル回路によりスウィズルして第二のスウィズルベクトルを形成する段階と;ベクトル論理回路により前記ベクトル論理演算を実行して第二の中間ベクトルを形成する段階と;前記第二の中間ベクトルの要素の全部より少ない要素に対して前記論理演算を実行する段階とを含む、方法。前記ベクトル論理演算および前記論理演算がベクトルAND演算およびAND演算である、請求項1記載の方法。前記ベクトル論理演算および前記論理演算がベクトルOR演算およびOR演算である、請求項1記載の方法。前記ベクトル論理演算および前記論理演算がベクトルXOR演算およびXOR演算である、請求項1記載の方法。前記第二の中間ベクトルの要素の全部より少ない要素に対して実行される前記論理演算がベクトル論理演算である、請求項1記載の方法。前記第一のスウィズルベクトルを形成する前記スウィズル回路および前記第二のスウィズルベクトルを形成する前記スウィズル回路が同じスウィズル回路である、請求項1記載の方法。論理的縮約命令を実行する論理回路を有する半導体プロセッサであって、前記論理回路は:ベクトルの要素をスウィズルしてスウィズルベクトルを形成するスウィズル回路と;前記ベクトルおよび前記スウィズルベクトルに対してベクトル論理演算を実行するベクトル論理回路とを有する、半導体プロセッサ。請求項7記載の半導体プロセッサであって、前記論理回路がさらに、前記ベクトル論理演算によって生成された結果的な中間ベクトルを記憶するレジスタに結合された第二のスウィズル回路を有しており、前記第二のスウィズル論理回路は前記中間ベクトルをスウィズルする、半導体プロセッサ。前記スウィズル回路がマルチプレクサを含む、請求項7記載の半導体プロセッサ。前記スウィズル回路がデマルチプレクサを含む、請求項7記載の半導体プロセッサ。前記ベクトル論理回路の出力から前記ベクトル論理回路の入力までデータ経路が存在する、請求項7記載の半導体プロセッサ。前記論理的縮約命令を実装するために使われるマイクロ演算を記憶するROMをさらに有する、請求項11記載の半導体プロセッサ。前記ベクトル論理回路の出力に結合され、前記ベクトル論理回路からの中間値ベクトルをスウィズルして第二のスウィズルベクトルを生成する第二のスウィズル回路と;前記ベクトル論理回路および前記第二のスウィズル回路の出力に結合され、前記中間値ベクトルおよび前記第二のスウィズルベクトルに対してベクトル論理演算を実行する第二のベクトル論理回路とをさらに有する、請求項11記載の半導体プロセッサ。前記ベクトル論理演算が:ベクトルAND;ベクトルOR;ベクトルXORのうちの一つである、請求項11記載の半導体プロセッサ。論理的縮約命令を実行する論理回路を有する半導体プロセッサ、グラフィックプロセッサおよび前記グラフィックプロセッサに結合された液晶ディスプレイを有するコンピューティングシステムであって、前記論理回路は:入力ベクトルの要素をスウィズルしてスウィズルベクトルを形成するスウィズル回路と;前記入力ベクトルおよび前記スウィズルベクトルに対してベクトル論理演算を実行するベクトル論理回路とを有する、コンピューティングシステム。請求項15記載のコンピューティングシステムであって、前記論理回路がさらに、前記ベクトル論理演算によって生成された結果的な中間ベクトルを記憶するレジスタに結合された第二のスウィズル回路を有しており、前記第二のスウィズル論理回路は前記中間ベクトルをスウィズルする、コンピューティングシステム。前記ベクトル論理回路の出力から前記ベクトル論理回路の入力までデータ経路が存在する、請求項15記載のコンピューティングシステム。前記論理的縮約命令を実装するために使われるマイクロ演算を記憶するROMをさらに有する、請求項17記載のコンピューティングシステム。前記ベクトル論理回路の出力に結合され、前記ベクトル論理回路からの中間値ベクトルをスウィズルして第二のスウィズルベクトルを生成する第二のスウィズル回路と;前記ベクトル論理回路および前記第二のスウィズル回路の出力に結合され、前記中間値ベクトルおよび前記第二のスウィズルベクトルに対してベクトル論理演算を実行する第二のベクトル論理回路とをさらに有する、請求項15記載のコンピューティングシステム。前記ベクトル論理演算が:ベクトルAND;ベクトルOR;ベクトルXORのうちの一つである、請求項15記載のコンピューティングシステム。根底にあるプロセッサがスカラー設計かベクトル設計かによらず、いくつかのコンピュータシステムは単一ベクトルの諸要素を横断しての論理演算を事実上必要とする。たとえば八入力AND演算の場合その論理図を図2のAに示す、八個の別個の入力A、B、C、D、E、F、G、HがANDされて最終的なスカラー結果Rを生じる。スカラープロセッサの場合、スカラーAND命令の七回の反復工程にわたって結果を蓄積するループ動作をソフトウェアで書く必要があるその擬似コードを図2のBに示す。よって、スカラープロセッサの場合、複数の反復工程は、その計算を実行するために、スカラーAND命令の複数の実行を必要とする。これに対し、ベクトルプロセッサは、そのような演算を、当該論理演算をそのまま実行するよう設計された単一命令の実行で実装する展望がありうる。本発明は、限定ではなく例として、付属の図面において例解される。図面において同様の参照符号は同様の要素を示す。図3は、ベクトル命令を実行する機能のあるプロセッサ上で、論理的縮約logicalreductionとも称される、ベクトルの諸要素を横断して論理演算を実行する方法論を示している。図4は、図3の方法論に従う八入力AND関数の例を示している。読者が図3の方法論を理解するのを助けるため、図3および図4の両方を参照する。図4の例では、ベクトル入力400が要素A、B、C、D、E、F、G、Hをもち、これらが八入力ANDによってANDで結合されて出力結果R=ABCDEFGを生ずる。図3の方法論によれば、ベクトル入力400に対して第一のスウィズルswizzleかき混ぜ演算が実行されて301、401第一のスウィズルベクトル402を生ずる。図4の例では、第一のスウィズル操作401は、挿入図420に示されるパターンに観察されるように、隣り合う要素対の位置が交換される二元スウィズル操作である。次いで当該縮約の論理演算のベクトル論理演算がベクトル入力400および第一のスウィズルベクトル402を入力ベクトルとして使って実行される303、403。図4の例では、論理的縮約は八入力AND関数に対応するので、論理演算303、403はベクトルAND演算に対応する。しかしながら、交換動作をもつ他の論理的縮約および対応する論理演算OR、加算ADDおよび乗算MULなども図3のアプローチに整合させることができる。論理演算303、403の結果は第一の中間結果404を生ずる。第一のスウィズル操作とは異なる第二のスウィズル操作305、405が第一の中間結果404に対して実行されて第二のスウィズルベクトル406を生ずる。図4の例では、第二のスウィズル操作405は、挿入図430に示されるパターンに観察されるように、近隣の要素の位置が交換される単独スウィズル操作である。次いで当該縮約の論理演算のもう一つのベクトル論理演算が第一の中間結果404および第二のスウィズルベクトル406を入力ベクトルとして使って実行される。ここでもまた、図4の例が論理的AND縮約に対応するため、図4の論理演算407はベクトルAND演算に対応する。第二のベクトル論理演算307、407の結果が第二の中間結果408を生ずる。次いで、当該縮約の論理演算の論理演算が、第二の中間結果408の選択された要素に対して実行されて、求めるべき縮約結果410を生ずる。図4の例では、第二の中間結果の選択された要素は第二の中間結果408の一番目および八番目の位置における要素に対応する。しかしながら、第二の中間結果408を見てみれば、第一ないし第四の要素のうちの任意の一つおよび第五ないし第八の要素のうちの任意の一つを選択すれば正しい縮約結果が得られることがわかる。最後の論理演算309、409を実行するための特化された論理および/またはマイクロコード演算の設計を防ぐために、いくつかのフォーマットステップが第二の中間結果408に対して実行されてもよい。それによりステップ303、403および307、407において使用された同じベクトル論理演算が、演算309、409すなわち、図4の例の場合、ベクトルAND演算を実装するために使われる。たとえば、選択された要素の一方が、他方の選択された要素と同じベクトル位置に置かれ、残りのベクトル要素値に0をパディングすることに従ったベクトルが構築されてもよいたとえば、図4の例では、ベクトル408をフォーマットして、構築されたベクトル0000000ACBDを構築。構築されたベクトルおよび第二の中間結果408に対してベクトルAND演算を実行すると、出力ベクトルの同じベクトル位置に、所望される論理的縮約結果410を生ずる。ここで、選択されたオペランドは構築されたベクトル中に見出されるすなわち、上述の構築されたベクトルの例を使うと、R=0000000ACBDHFGE。異なるスウィズル操作のシーケンスおよびスウィズル操作自身は実施形態によって変わりうることを注意しておくことは重要である。たとえば、図5は図4の例で、単独スウィズルパターン530が二元スウィズルパターン520より前に実行されるようにしたものに対応する。図4と図5の例を比較すると、利用可能な項は第二の中間ベクトル508において生成されて正しい結果が得られる。また、上記で論じた単独および二元スウィズルパターン420/520、430/530以外の異なるスウィズルパターンを使ってもよいことを注意しておくことも重要である。たとえば、図6は、挿入図640において観察されるようなパターンで近隣の要素四つ組の位置が交換される四元スウィズルパターンを使う十六要素ベクトルに対する論理的AND縮約の例を示している。また、スウィズルパターン自身が異なる必要はない。たとえば、図6bは、同じスウィズルパターンが演算を通じて最初から最後まで利用される論理的AND縮約を示している。いずれの実施形態についても、当業者は、適切なスウィズルパターン、第二の中間ベクトルの対応する選択基準および最終ベクトル論理演算前の任意の関連するフォーマット整形を決定することができるであろう。さらに、上記の例はAND縮約を強調したが、同じ原理は論理的OR、加算および乗算といった交換性の動作をもつ任意の演算を実施するためにも適用できる。上記で論じたように、論理的縮約アルゴリズムは、半導体プロセッサの命令セット内の命令として実装されてもよい。図7は、プロセッサの諸実行ユニット内で論理回路として実装されうる可能なデータ経路を示している。図7の回路図によれば、論理的縮約を通じて論理的に縮約されるべき要素をもつ入力ベクトルがレジスタ701に記憶されている。レジスタ701の出力は第一のスウィズル回路702の入力および第一のベクトル論理演算たとえばベクトルAND、ベクトルORまたはベクトルXORを実行する第一のベクトル論理回路704の入力に流れ込む。第一のスウィズル回路702の出力は第一のスウィズルレジスタ703に流れ込む。第一のスウィズルレジスタ703の出力は第一のベクトル論理回路704に流れ込む。よって、第一のベクトル論理回路704はレジスタ701から第一の入力ベクトルを、レジスタ703から第二の入力ベクトルを受け入れる。第一の中間値レジスタ705は第一のベクトル論理回路704によって生成される出力ベクトルを保持する。次いで、レジスタ705の内容は第二のスウィズル論理回路706および第二のベクトル論理演算を実行する第二のベクトル論理回路708に与えられる。第二のスウィズル論理回路706の出力は第二のスウィズルレジスタ707に与えられ、第二のスウィズルレジスタ707はその出力を第二のベクトル論理回路708に与える。第二のベクトル論理回路708はその出力を第二の中間レジスタ709に与える。選択およびフォーマット論理710は、第二の中間レジスタ709内のベクトルの、第三のベクトル論理回路711によって実行される最終的なベクトル論理演算のためのオペランドとして必要とされる要素を選択するそしてその任意のものをフォーマット整形してもよい。第三のベクトル論理回路711の結果は、最終結果論理的縮約に対応し、結果レジスタ712に記憶される。図3のアルゴリズムを実装するために、さらなる段のスウィズル回路、中間ベクトルレジスタおよびベクトル論理回路図示せずが追加的に図7の回路に組み込まれてもよいことを注意しておく。図7のコンポーネントのいくつかを使うがそれでも論理的縮約を実行するさまざまな代替的な論理設計も可能である。たとえば、論理的縮約のための回路が直線データ経路中のたとえば、複数のマイクロ演算なし論理的縮約命令の実行に専用である場合、レジスタ703、705、707、709の任意のものをなくしてもよい。これに対し、論理的縮約命令がいくつかの対応するマイクロ演算をもつマイクロコードを介して実行される場合には、図7の要素のいくつかがなくされ、一方、他が再利用されてもよい。たとえば、レジスタ705およびレジスタ707のそれぞれの出力が入力として論理704にフィードバックされれば、第一および第二のベクトル論理演算はベクトル論理704を用いて実行できるそれによりベクトル論理708をなくせる。ここで、マイクロ演算制御マルチプレクサまたは他のデータ経路制御回路がアルゴリズムに従ってデータを適正に動かすことが理解される。選択およびフォーマット論理710がレジスタ705からの入力を受け入れて、その出力を第三かつ最終的な論理演算をも実行するベクトル論理704に与えるならば、ベクトル論理711をさらになくすことができる。第一および第二のスウィズル回路702、706は、それぞれのチャネル選択入力値の状態に基づいて正しいスウィズルパターンの間で切り換えを行う、マルチプレクサおよび/またはデマルチプレクサの共通のバンクにマージされることもできる。すなわち、マルチプレクサおよび/またはデマルチプレクサのチャネル選択入力が第一のスウィズルパターンに対応する第一の入力値を受け取り、第二のスウィズルパターンに対応する第二の入力値を受け取る。マルチプレクサおよび/またはデマルチプレクサは、所望されるスウィズル伝達transferを実施するよう、チャネル選択値に応答してデータ経路を形成する。拡張された実装では、レジスタ701に記憶されている入力ベクトルの要素の全部より少ないものが、論理的に縮約されることができる。その際、その論理的縮約のために考慮されない要素については、レジスタ701に先行または後続するフォーマット回路が入力ベクトル中に穏和なbenign値を強制する。たとえば、論理的縮約が入力ベクトルABCDEFGHの要素A、B、C、Dのみの論理的縮約である場合、フォーマット論理は、要素E、F、G、Hのそれぞれについてすべて1の値を挿入し、ベクトルABCD全部1全部1全部1全部1が縮約のための入力ベクトルとして処理される。ORおよびXOR論理的縮約については、穏和な値は全部1ではなく全部0に対応する。上記で図7を参照して論じたように、アルゴリズムは、半導体プロセッサの実行ユニットによって実行されるベクトル論理的縮約命令内で実装されてもよい。図8は、複雑命令セットCISCComplexInstructionSet、簡略化命令セットRISCReducedInstructionSetおよび超長命令語VLIWVeryLongInstructionWordのような多くの異なる型の処理コアアーキテクチャを記述すると信じられる一般的な処理コア800を示している。図8の一般的な処理コア800は次のものを含む:1たとえばキャッシュおよび/またはメモリから命令をフェッチするフェッチユニット803;2命令をデコードするデコードユニット804;3実行ユニット806への命令発行のタイミングおよび/または順序を決定するスケジュールユニット805注意すべきことに、スケジューラは任意的である;4命令を実行する実行ユニット806典型的な命令実行ユニットはブランチ実行ユニット、整数算術実行ユニットたとえばALU浮動小数点算術実行ユニットたとえばFPUおよびメモリアクセス実行ユニットを含む;および5命令の成功裏の完了を示すリタイアユニット807。注意すべきことに、処理コア800はマイクロコード808を用いても用いなくてもよい。マイクロコードのあるプロセッサの場合、マイクロ演算は典型的には、プロセッサがその上に構築される半導体チップ内の読み出し専用メモリROMReadOnlyMemoryのような不揮発性機械可読媒体に記憶され、プロセッサ内の実行ユニットに当該命令によって呼び出される所望される機能を実行させる。論理的縮約命令を有するプロセッサは、さまざまなコンピューティングシステム中に実装することもできる。図9は、コンピューティングシステムたとえばコンピュータのある実施形態を示している。図9の例示的なコンピューティングシステムは次のものを含む:1ベクトル論理的縮約命令を含むよう設計されていてもよい一つまたは複数のプロセッサ901;2メモリコントロールハブMCHmemorycontrolhub902;3システムメモリ903これについてはDDRRAM、EDORAMなどといった種々の型が存在する;4キャッシュ904;5IOコントロールハブICHIOcontrolhub905;6グラフィックプロセッサ906;7ディスプレイ/画面907これについては陰極線管CRTCathodeRayTube、薄膜トランジスタTFTThinFilmTransistor、液晶ディスプレイLCDLiquidCrystalDisplay、DPL等のような種々の型が存在する;8一つまたは複数のIO装置908。前記一つまたは複数のプロセッサ901は、どんなものであれコンピューティングシステムが実装するソフトウェアルーチンを実行するために命令を実行する。命令はしばしば、データに対して実行される何らかの種類の操作に関わる。データおよび命令はいずれもシステムメモリ903およびキャッシュ904に記憶される。キャッシュ904は典型的にはシステムメモリ903より短いレイテンシー時間をもつよう設計される。たとえば、キャッシュ904は、プロセッサ単数または複数と同じシリコンチップ単数または複数上に統合され、より高速のSRAMセルを用いて構築されてもよい。一方、システムメモリ903はより低速のDRAMセルを用いて構築されてもよい。より頻繁に使用される命令およびデータをシステムメモリ903ではなくキャッシュ904に記憶する傾向をもつことによって、コンピューティングシステムの全体的なパフォーマンス効率が改善される。システムメモリ903は意図的に、コンピューティングシステム内の他のコンポーネントに利用可能にされる。たとえば、コンピューティングシステムへのさまざまなインターフェースたとえば、キーボードおよびマウス、プリンタポート、LANポート、モデムポートなどから受領されるまたはコンピューティングシステムの内部記憶要素たとえばハードディスクドライブから取得されるデータは、しばしば、ソフトウェアプログラムの実装において前記一つまたは複数のプロセッサ901によって操作される前に、システムメモリ903中で一時的に待ち行列に入れられる。同様に、コンピューティングシステムからコンピューティングシステムインターフェースの一つを通じて外部エンティティに送られるべきであるまたは内部記憶要素に記憶されるべきであるとソフトウェアプログラムが判別するデータは、しばしば、伝送または記憶される前に、システムメモリ903中で一時的に待ち行列に入れられる。ICH905は、そのようなデータがシステムメモリ903とその適切な対応するコンピューティングシステムインターフェースおよびコンピューティングシステムの設計によっては内部記憶装置との間で適正に渡されることを保証することを受け持つ。MCH902は、互いに時間的に近接して発生しうる、前記プロセッサ901、インターフェースおよび内部記憶要素の間でのシステムメモリ903アクセスのさまざまな競合する要求を管理することを受け持つ。一つまたは複数のIO装置908も典型的なコンピューティングシステムにおいて実装される。IO装置は一般に、コンピューティングシステムへおよび/またはコンピューティングシステムからデータを転送することたとえば、ネットワーク接続アダプター;あるいはコンピューティングシステム内の大規模な不揮発性記憶たとえばハードディスクドライブを受け持つ。ICH905は、自分自身と観察されるIO装置905との間で双方向のポイントツーポイントのリンクをもつ。以上の明細書では、本発明は、その個別的な例示的実施形態を参照して記述されてきた。しかしながら、付属の請求項において記載される本発明の広義の精神および範囲から外れることなく、さまざまな修正および変更がなされうることは明白であろう。よって、本明細書および図面は制約する意味ではなく例示的な意味で参酌されるものである。