"半導体チップ上の電子回路により、aベクトル演算の入力ベクトル内のデータ要素に対して実行されるデータ演算間の依存関係を特定する第1データ構造を生成する段階と、bデータのコンフリクトを生じることなく前記ベクトル演算により同時に演算が可能な前記入力ベクトルのデータ要素の位置を特定する第2データ構造を生成する段階であり、前記第2データ構造は、互いに依存関係にあるデータ演算の実行順序を示す第2データ構造を用いて前記第1データ構造のマスキングを行うことにより少なくとも部分的に生成される段階と、c前記第2データ構造により参照されるデータ要素を用いて次の入力ベクトルを形成する段階と、d前記次の入力ベクトルに対し前記ベクトル演算を実行する段階と、前記ベクトル演算が前記入力ベクトルの全てのデータ要素の位置に対して実行されるまで前記a、b、c、およびdの段階を繰り返す段階とを備え、前記第1データ構造および前記第2データ構造はそれぞれ前記aおよびbの段階のイテレーション毎に更新される、方法。前記aの段階はまず、前記入力ベクトルの前記データ要素を対象とする指標のセット内の各指標を第2の指標のセットの他の指標と比較することにより実行される、請求項1に記載の方法。前記指標のセットと前記第2の指標のセットとは互いに同じセットである、請求項2に記載の方法。前記指標のセットと前記第2の指標のセットとは互いに異なるセットである、請求項2に記載の方法。前記aの段階の次のイテレーションは、完了したばかりのイテレーションの第1データ構造を、前記データ要素の位置のうち、対応する演算がデータの依存関係に応じて遅らされたデータ要素の位置を対象とする指標を特定する第3データ構造に対してマスキングすることにより実行される、請求項2から4のいずれか1項に記載の方法。前記比較は第1処理コア命令を用いて実行され、前記完了したばかりのイテレーションの第1データ構造の第3データ構造に対するマスキングは、第2処理コア命令を用いて実行される、請求項5に記載の方法。前記bの段階は、第3処理コア命令を用いて実行される、請求項6に記載の方法。前記次の入力ベクトルを形成する段階はさらに、前記第2データ構造を用いてギャザー命令を実行する段階を有する、請求項1から7のいずれか1項に記載の方法。前記ベクトル演算が前記次の入力ベクトルに対して実行された後、前記第2データ構造を用いてスキャッタ命令を実行する段階をさらに備える、請求項8に記載の方法。aベクトル演算の入力ベクトル内のデータ要素に対して実行されるデータ演算間の依存関係を特定する第1データ構造を生成する第1論理回路と、bデータのコンフリクトを生じることなく前記ベクトル演算により同時に演算が可能な前記入力ベクトルのデータ要素の位置を特定する第2データ構造を生成する第2論理回路であり、互いに依存関係にあるデータ演算の実行順序を示す第2データ構造を用いて前記第1データ構造のマスキングを行うマスキング回路を有する前記第2論理回路と、c前記第2データ構造により参照されるデータ要素を用いて形成される次の入力ベクトルに対しベクトル演算を実行するベクトル実行ユニットと、d前記ベクトル演算が前記入力ベクトルの全てのデータ要素の位置に対して実行されるまで前記第2論理回路および前記ベクトル実行ユニットが実行する処理を順に繰り返す制御フローのイテレーションにおいて前記第1データ構造の更新をする第3論理回路とを備え、前記第2論理回路は、前記イテレーションにおいて前記第2データ構造を更新する、半導体チップ上の処理コア。前記第1論理回路は、前記入力ベクトルの前記データ要素を対象とする指標のセット内の各指標を第2の指標のセットの他の指標と比較する比較回路を有する、請求項10に記載の半導体チップ上の処理コア。前記第3論理回路は、完了したばかりのイテレーションの第1データ構造を、前記データ要素の位置のうち、対応する演算がデータの依存関係に応じて遅らされたデータ要素の位置を対象とする指標を特定する第3データ構造に対してマスキングするマスキング回路を有する、請求項11に記載の半導体チップ上の処理コア。前記第1論理回路は前記処理コアの第1命令の実行ユニット内に配置され、前記第2論理回路は前記処理コアの第2命令の実行ユニット内に配置され、前記第3論理回路は、前記処理コアの第3命令の実行ユニット内に配置される、請求項12に記載の半導体チップ上の処理コア。前記次の入力ベクトルを形成するべく前記第2データ構造を用いてギャザー命令を実行する実行ユニットをさらに備える、請求項10から13のいずれか1項に記載の半導体チップ上の処理コア。スキャッタ命令を実行する実行ユニットをさらに備える、請求項14に記載の半導体チップ上の処理コア。第1入力ベクトル内の各要素を第2入力ベクトル内の全ての各要素と比較する第1比較回路を有する第1実行論理回路と、第1入力値を入力ベクトルの全ての各データ要素と比較する第2比較回路を有する第2実行論理回路とを備える、半導体チップ上で実装される処理コア。1組の入力ベクトルの同位置の要素を比較する第3実行論理回路比較回路をさらに備える、請求項16に記載の処理コア。ベクトル演算命令を実行するベクトル実行ユニットをさらに備える、請求項17に記載の処理コア。ギャザー命令を実行するギャザー実行論理回路をさらに備える、請求項18に記載の処理コア。スキャッタ命令を実行するスキャッタ実行論理回路をさらに備える、請求項19に記載の処理コア。前記第1実行論理回路および前記第2実行論理回路は同一の実行ユニット内に配置される、請求項16から20のいずれか1項に記載の処理コア。ハードディスクドライブと、処理コアとを備え、前記処理コアは、i第1入力ベクトル内の各要素を第2入力ベクトル内の全ての各要素と比較する第1比較回路を有する第1実行論理回路と、ii第1入力値を入力ベクトルの全ての各データ要素と比較する第2比較回路を有する第2実行論理回路とを有する、コンピューティングシステム。ベクトル演算が、平行して実行される複数の演算の性能に対応するとすれば、入力ベクトルの一要素に対するある演算が、当該入力ベクトル内の他の要素に対して実行される他の演算への依存性を有する場合、ベクトル演算において課題が生じ得る。上記の背景技術に説明したようにベクトル演算には、入力ベクトル要素に対する任意の演算が、当該入力ベクトルの他の要素に対して実行される他の演算に対して依存性を有する場合に起こり得る課題がある。この特定の課題が起こり得る状況の一例は、ギャザー命令およびスキャッタ命令を用いた場合である。例えばギャザー命令は、データ配列の指標により特定されるデータ値を集めることにより、後に続くベクトル演算の入力ベクトルを構成するのに用いられる。例えばデータ配列Aが100のエントリを有する場合、gatherA[15;34;66;78]のギャザー命令によって、配列Aの15番目、34番目、66番目、および78番目の指標位置におけるデータ値がフェッチされる。フェッチされたデータ値はその後、ベクトル演算に用いられる入力ベクトルのデータ要素を形成するのに用いられる。スキャッタ命令はギャザー命令の反対の処理を行うものとして見なすことが出来る。詳細には、scatterA[15;34;66;78]のスキャッタ命令により、値例えば、ベクトル演算により生成された出力ベクトルの各要素が配列Aの15番目、34番目、66番目、および78番目の指標位置に格納される。よって、S<=gatherA[a;b;c;d];T<=vectoroperationonS;scatterA[a;b;c;d];Tの命令シーケンスにより、1Aのa、b、c、およびdの指標位置からデータオペランドがフェッチされ、2これらのオペランドに対しベクトル演算が実行され、3結果の要素がそれぞれAのa、b、c、およびdの指標位置に格納される。場合によってはギャザー命令およびスキャッタ命令に与えられた指標値のセットに、ベクトル演算内の依存関係が反映されている。例えば、S<=gatherA[a;b;c;a];T<=vectoroperationonS;scatterA[a;b;c;a];T命令シーケンスには、左端のA[a]の値に対して実行されるベクトル演算が右端のA[a]の値に対して実行されるベクトル演算の結果に依存することが反映されている。つまり、正しい演算は、1operation右端のA[a]=>R;2operationRに対応する。データ間の依存性に関する対策が事前に取られていなければ、誤った結果が生成され得る。詳細には、この例において、A[a]の最終的な結果は、operationRではなくoperationA[a]となる。図2は、ベクトル演算に用いられる入力ベクトル内で特定された依存性を問題なく反映させる方法を示す。詳細には、図2の方法において、例えば2以上の同一の値を有する指標により特定される同一の入力ベクトル内の同一のオペランドに対する演算を同時に実行することを適切に避ける。代わりに、複数回現れる指標値のそれぞれのインスタンスに対して行われるサイクルを複数含む一連のサイクルによって、演算が分けて行われる。例えば、入力ベクトルにおいて同一の指標値が3回現れる場合、ベクトル演算が3回行われる。このように、第2の演算は第1の演算の結果を入力オペランドとして用い、第3の演算は、第2の演算の結果を入力オペランドとして用いるので、データの依存性が反映される。図3は、図2の方法の実施形態に係る擬似コードフローを示す。図4A、4B、5A、5B、6A、6Bは図3の擬似コードフローの説明を補足する詳細を追加的に示す。図2を参照すると、まず互いに依存性を有する指標が特定される201。ここで互いに依存性を有する指標は、上述したように、同一の入力ベクトルの異なる要素を定める、配列の同一の指標に対応してもよい。図3を参照すると、b=7,2,7,1,7のように、配列の指標が特定されている。よって、右端の指標値、真ん中の指標値、および左端の指標値がそれぞれ同一の値7を有するので、依存性を有する指標が3つある。他の最初の制御ベクトルはelements_left_mask330であり、これはギャザー/ベクトル演算/スキャッタ処理のシーケンスにまだ用いられていないbの要素を表す。フローの始まりにおいて、bの5つの全ての要素を示すelements_left_mask=11111は、まだ処理されていない。図3の擬似コードは、vconflictb,b命令300の実行により、indices_having_dependency_relationshipデータ構造301が生成されることを示す。図4Aは、vconflictb,b命令の方法401を示し、図4Bは、vconflictb,b命令を実行するよう半導体チップ内に設計されるハードウェア論理設計を示す。図4Aおよび図4Bに示すように、vconflictb,b命令によって、任意の入力ベクトルの各要素が他の入力ベクトルの全ての各要素と比較され、それぞれの比較の結果が生成される401。図3に示す擬似コードの方法において、vconflictb,b命令は、両方の入力に対して同一のベクトルbを用いて実行される。図4Bのハードウェア設計は、マルチプレクサ411およびデマルチプレクサ412のチャネル選択のそれぞれが適切に協働して動作するようにコントローラ410の動作を指示する、マイクロコード化された、および/または状態機械によるアプローチを用いて実施されてもよい。詳細には、コントローラ410が左側の指標レジスタ413の指標値のうち任意の値を多重化し、コンパレータシステムcomparatorstem414へと送る。コンパレータシステム414は選択された指標値を右側の指標レジスタ415内の全ての各指標値と比較する。デマルチプレクサ412はコンパレータシステム414の出力を、左側の指標レジスタ413の選択された値とアラインされた出力レジスタ416のセグメントへと向ける。代替的な方法においては、マルチプレクサ、デマルチプレクサ、およびコントローラが全くなくてもよいように、コンパレータシステムはn×nのコンパレータを有してもよいつまり、出力レジスタ416内で生成される比較結果の各ビットに関し別個のコンパレータが存在する。図3のindices_having_dependency_relationshipデータ構造301の左端のセグメント302は、bの左端の値をbの全ての値のそれぞれと比較した場合の比較結果を示す。セグメント302にはbの値ごとに1つの5つの結果が示されており、セグメント302内の結果はbの値のそれぞれとアラインされている。データ構造301の左端のセグメント302は10101であり、これは、bの左端の値がbの右端の値、bの真ん中の値、および自身bの左端の値に対して依存性を有することを示している。データ構造301のセグメント303は、bの左端から2番目の値2の比較に対応し、2の値がそれ自身以外に対して依存性を有さないことを示しているつまり、セグメント303が01000。10101の値を有するセグメント304は、bの真ん中の値7が、それ自身、bの左端の値、およびbの右端の値に対して依存性を有することを示している。00010の値を有するセグメント305は、bの右端から2番目の値がそれ自身のみに対して依存性を有することを示している。10101の値を有するセグメント306は、bの右端の値7がbの左端の値、bの真ん中の値、およびそれ自身に対して依存性を有することを示している。図2を再び参照すると、例えば、図3のindices_having_dependency_relationshipデータ構造301に示されるように依存性を有する指標が特定されると、後に続くベクトル演算に関し、コンフリクトしない指標のセットが特定される。図3の擬似コードの例において、コンフリクトしない指標のセットが、indices_permitted_for_executionデータ構造331に示されている。ここでindices_permitted_for_executionデータ構造331は少なくとも部分的に、indices_having_dependency_relationshipデータ構造300およびorder_of_dependency_mask309を用いて論理演算を実行することにより構成される。order_of_dependency_mask309は依存性を有する指標が処理されるべき順序を表す。図3の特定の例において、依存性を有する右端の指標が最初にベクトル演算に用いられ、その後、右端から2番目の依存性を有する指標が後に続くベクトル演算サイクルに用いられるよう、依存関係は右から左の順序となっている。言い換えると、依存性を有する指標がbにおいて右から左の順序で各ベクトル演算に用いられるよう選択される。本例のb=7,2,7,1,7の特定の値において、このことは、右端の値である7が最初のギャザー/ベクトル演算/スキャッタイテレーションに用いられ、真ん中の値である7が2番目のギャザー/ベクトル演算/スキャッタイテレーションに用いられ、左端の値である7が3番目のギャザー/ベクトル演算/スキャッタイテレーションに用いられることに対応している。この順序は、order_of_dependencyマスク309のセグメントの各位置の右側に1が位置付けされることに反映されている。つまり、セグメント310はbの右端の値を表す。上記で説明した順序に関する規則を用いることにより依存性を有するシークエンスにおいて、左の値の前に右の値が実行されることにより、右端の値が、ベクトル演算における当該右端の値の利用を遅らせる依存性を依存関係に関わっているにも関わらず有していないこととなるつまり、右端の値の処理が最初の演算サイクルにおいて実行される。よって、セグメント310の値は00000となる。第2セグメント311には、bの右端から2番目の値がb内で依存性を有する場合、その依存性がbの右端の値に対するものであることが反映されている。よってその値は00001となる。第3セグメント312には、bの真ん中の値がb内で依存性を有する場合、その依存性がbの右端から2番目の値、および/またはbの右端の値に対するものであることが反映されている。よってその値は00011となる。第4セグメント313には、bの左端から2番目の値がb内で依存性を有する場合、その依存性がbの真ん中の値、bの右端から2番目の値、および/またはbの右端の値に対するものであることが反映されている。よってその値は00111となる。第5セグメント314には、bの左端の値がb内で依存性を有する場合、その依存性がbの左端から2番目の値、bの真ん中の値、bの右端から2番目の値、および/またはbの右端の値に対するものであることが反映されている。よってその値は01111となる。図3の例においてindices_permitted_for_executionデータ構造331は少なくとも部分的に、indices_having_dependency_relationshipデータ構造301およびorder_of_dependency_mask309を用いて論理演算を実行することにより構築されていた。ここで、conflicted_out_indicesデータ構造308は、indices_having_dependency_relationshipデータ構造301およびorder_of_dependency_mask309を入力として受け付けるvptest命令を実行することにより構築される。図5Aはvptest命令の演算の実施形態を示し、図5Bはvptest命令のハードウェア設計の実施形態を示す。ここで図5Aを参照すると、2つの入力ベクトルの同位置のセグメントの同位置のビットが比較される501。同一の論理値を有する同位置のビットからなる1以上のセットを有するセグメントが特定され502、マスクが適用される503。図5Bを参照すると、第1入力ベクトルがレジスタ510に配置され、第2入力ベクトルがレジスタ512に配置される。2つのベクトルのそれぞれのセグメント内で同位置のビットの組がANDゲート513を用いてANDで連結される。いずれかのANDゲートが1を生成した場合、1が、それぞれのビットが比較された同位置のセグメントに対応する出力520のセグメントに登録される。例えば、コントローラ514はマルチプレクサ515、516にセグメント517、518のビットを選択させる。ここでセグメント517、518はそれぞれ、レジスタ510、512内のそれぞれのベクトルの左端のセグメントに対応するので、それぞれのベクトル内において同位置にある。セグメント517、518の同位置のビットはANDゲート513によりANDで連結される。ANDで連結されたビットのいずれかの組が1の値を有するのであれば、1がコントローラ514によるデマルチプレクサ521のチャネル選択制御を介してレジスタ520のセグメント519に記録される。その後、出力523を生成するべく、マスキング層522がレジスタ520のコンテンツに対して適用される。図3に示す特定の擬似コードの例において、indices_having_dependency_relationshipデータ構造301がレジスタ510に配置され、order_of_dependency_mask309がレジスタ512に配置される。これらの入力ベクトルに関する、上記にて説明した図5Bに示すvptest回路設計の演算により、レジスタ520内のconflicted_out_indicesデータ構造308が生成される。conflicted_out_indicesデータ構造308は、b内での依存性が原因となり、後に続くベクトル演算サイクルのうちどの指標がコンフリクトするのかを特定する。図3が示すように、conflicted_out_indicesデータ構造308は、10100を値として有し、これは依存性が理由となり、後に続くベクトル演算においてこの場合、bの右端の指標値である、bの真ん中の指標値と左端の指標値が実行されないことを示す。conflicted_out_indicesデータ構造314の論理反転_conflicted_out_indicesデータ構造307がその後、elements_left_mask330に対しマスキングされる。最初のイテレーションにおいてelements_left_maskは11111である。よって、レジスタ520のconflicted_out_indicesベクトルは、出力レジスタ523において、indices_permitted_for_executionベクトル331として表される。再び図2を参照すると、ベクトル演算はその後、実行が許可された指標に対して実行される203。図3の擬似コードの例においては、ギャザー、ベクトル演算、スキャッタ命令シーケンス315が実行される。よって図3においては、iindices_permitted_for_executionデータ構造307により特定されるAの値を選択するギャザー演算、iiAの集められた値に対して実行されるベクトル演算、およびiiiベクトル演算の結果を再びデータ構造307において特定される指標へと格納するスキャッタ演算が示されている。ベクトル演算は実質的に、いかなるベクトル演算であってもよい。図2を参照すると、bの指標の全てがベクトル演算に用いられると、処理が完了し204、さもなくば、依存性を有する指標が201において再度特定される。図3の実施形態において、elements_left_maskが、最も新しいギャザー/ベクトル演算/スキャッタ命令シーケンスのうち、コンフリクトする要素としてelements_left_maskを再び定義することにより、更新される332。この場合、新たなelements_left_mask332は10100の値に対応し、これは、最後のギャザー/ベクトル演算/スキャッタ命令シーケンスにbの真ん中の値および左端の値が用いられていないので、それらの値に対しこれから処理が行われることを示している。よって処理は完了しておらず、次のイテレーションを実行する必要がある。依存性を有する指標値のうちの最初の値右端の指標値の実行によって、bの指標値の間の依存関係が変化することとなる。詳細には、bの右端の指標値がベクトル演算に用いられたので、bの真ん中の指標値を用いたベクトル演算は遅らせる必要がなくなる。よってindices_having_dependency_relationshipデータ構造301は、この変化を反映するように更新される。図3の実施形態において、indices_having_dependency_relationshipデータ構造301は、indices_having_dependency_relationshipデータ構造300およびconflicted_out_indicesデータ構造308を入力として受け付けるvpand命令を実行することにより更新される。図6Aは、vpand命令の方法の実施形態を示す。図6Aに示すようにvpand命令はnのビットからなる第1ブロック、およびそれぞれnビットからなる複数の要素を有するベクトルを受け付ける。その後、ベクトル内の各要素に対するnのビットからなる第1ブロックのビット単位のANDが実行される。図6Bは半導体チップとして設計されるvpand命令の論理設計の一例を示す。図3を参照すると、vpand命令のnのビットからなるブロックは、conflicted_out_indicesデータ構造308に対応し、vpand命令の入力ベクトルは、indices_having_dependency_relationshipデータ構造301に対応する。conflicted_out_indicesデータ構造308が、indices_having_dependency_relationshipデータ構造301内の各要素にビット単位でANDで連結されている場合、新たなindices_having_dependency_relationshipデータ構造316が生成される。ここで、conflicted_out_indicesデータ構造308とのビット単位のANDは、indices_having_dependency_relationshipの情報から、bの右端の指標を取り除くこととなる。言い換えると、conflicted_out_indicesデータ構造308の右端の位置にある0によって反映されるように、bの右端の指標値は最初のベクトル演算315での実行が許可される。よって、bの右端の指標値は既存の依存関係の一部ではなくなる。vpand命令によって実行される論理ANDは、bの右端の指標の実行に依存していた指標を特定する。bの右端の指標の次の指標は、次のベクトル演算で用いられ得る。よって、新たなindices_having_dependency_relationshipデータ構造316および元のorder_of_dependency_mask309を用いたvptest命令の次の実行により、新たなconflicted_out_indicesデータ構造317が生成される。しかし最初のシーケンスとは異なり、elements_left_mask332によるvptest命令の出力マスクによって、vptest命令の出力が、conflicted_out_indicesデータ構造317の論理反転とは異なるものとなる。詳細には、新たなindices_permitted_for_execution333は、00100の値を有し、この値は、既に実行されたbの指標値分だけ少ない、コンフリクトするbの次の指標に対応する。よって、次のギャザー、ベクトル演算、スキャッタ命令シーケンスがbの真ん中の指標のみを用いて実行される319。再び図2を簡単に参照すると、この時点で処理202までの2度目のランが完了したこととなる。しかし演算319が完了すると新たに更新されたelements_left_mask334を確認することにより、bの全ての指標がまだギャザー/ベクトル演算/スキャッタ処理に用いられていないことが分かる。よって、bの指標の間の依存性をまださらに検証する必要がある。上述したように、indices_having_dependency_relationshipデータ構造は、最新のindices_having_dependency_relationship、およびconflicted_out_indicesデータ構造316、317を入力として用いて、vpandindices_having_dependency_relationship、conflicted_out_indices命令を実行することにより更新される。結果として、他の新たなindices_having_dependency_relationshipデータ構造320が得られる。ここで、vpand命令によって実行される論理ANDによって、bの真ん中の指標の実行に依存していた指標が特定される。bの真ん中の指標の次の指標つまり、bの左端の指標は、次のベクトル演算で用いられ得る。よって、新たなindices_having_dependency_relationshipデータ構造320および元のorder_of_dependency_mask309を用いたvptest命令の次の実行により、他の新たなconflicted_out_indicesデータ構造321が生成される。データ構造321の論理反転に対する更新されたelements_left_mask334のマスキングは、他の新たなindices_permitted_for_executionデータ構造335に対応する10000。新たなindices_permitted_for_executionデータ構造335は、次のギャザー/ベクトル演算/スキャッタシーケンスにおいて、bの左端の指標のみ処理を行う必要があることを示す。再び図2を簡単に参照すると、この時点で処理202までの3度目のランが完了したこととなる。よって、最後のギャザー、ベクトル演算、スキャッタ命令シーケンスが、bの左端の指標のみを用いて行われる323。続いてelements_left_mask336を00000の値へ更新することにより、他の繰り返しは必要ではなくなり、実行が完了する。図3の擬似コードを参照すると、最初のvconflictb,b命令300に表されるように、この特定の例は、コンフリクトが同一のベクトルこの場合、ベクトルb内で検出される場合を対象としていることが分かる。より一般的には、1以上のセットの指標を用いて図3に示すギャザー/ベクトル演算命令シーケンスに関する入力ベクトルなどのベクトル演算に用いられる入力ベクトルを形成してもよい。同様に、1以上のセットの指標を用いて、出力ベクトルを図3のスキャッタなどのメモリに書き込んでもよい。入力ベクトルを構築する、および/または出力ベクトルをメモリへ書き込むのに用いた指標間のコンフリクトは、同一、または異なるベクトル間で検出し得る。繰り返すが、図3はベクトルが同一bとbである例を示す。しかし他の状況においては、コンフリクトする指標は、異なるベクトル例えば、vconflictb,cを比較することによって検出し得る。例えば、最初のベクトル例えばbを後に続くベクトル演算に用いられる入力ベクトルを構築する基礎として用い、他方、他のベクトル例えばcを、ベクトル演算の結果をメモリへ分散させる基礎として用いてもよい。よって、vconflict命令を同一、または異なる入力ベクトルに対して用い得ることを理解いただけるであろう。図7は、ComplexInstructionSetCISC、ReducedInstructionSetRISC、およびVeryLongInstructionWordVLIWなどの多くの異なるタイプの処理コアアーキテクチャであり得る汎用処理コア700を示す。図7の汎用処理コア700は、1命令をキャッシュまたはメモリなどからフェッチするフェッチユニット703、2命令を復号化する復号化ユニット704、3実行ユニット706への命令の発行タイミング、および/または順序を決定する任意選択的に用いられるスケジューラユニット705、4命令を実行する実行ユニット706、および5命令の実行が問題なく完了したことを知らせるリタイヤユニット707を含む。なお処理コアは、実行ユニット706のマイクロ動作を部分的に、または全体的に制御するマイクロコード708を含んでも、含まなくてもよい。なお、実行ユニットは、vconflict命令、vptest命令、およびvpand命令を実行することが出来る。これらの命令に対応する論理回路は、異なる実行ユニットに分散していてもよく、若しくは同一の実行ユニットに含まれてもよい。2以上の命令が、単一の実行ユニットによって実行されてもよい。実行ユニットはベクトル命令に対応可能であってもよい。実行ユニットは、gather命令およびscatter命令に対応可能であってもよい。上記にて説明した機能を有する処理コアは、様々なコンピューティングシステムで実装されてもよい。図8は、コンピュータなどのコンピューティングシステムの実施形態を示す。例示的なコンピューティングシステムは、12つ、または3つの、スカラ整数命令を実行することが出来る、またはベクトル命令を実行することが出来るレジスタを含んでよい1以上の処理コア801、2メモリ制御ハブMCH802、3DDRRAM、EDORAMなど様々な異なるタイプのシステムメモリ803、4キャッシュ804、5I/O制御ハブICH805、6グラフィックプロセッサ806、7ブラウン管CRT、フラットパネル、薄膜トランジスタTFT、液晶ディスプレイLCD、DPLなど様々な異なるタイプのディスプレイ/スクリーン807、および1以上のI/Oデバイス808を備える。1以上の処理コア801は、コンピューティングシステムが実施するあらゆるソフトウェアルーチンを行うべく、命令を実行する。命令はデータに対して実行される何らかのタイプの演算を伴うことが多い。データおよび命令は両方とも、システムメモリ803およびキャッシュ804に格納されている。典型的にはキャッシュ804は、システムメモリ803の待ち時間よりも短い待ち時間となるように設計されている。例えばキャッシュ804はプロセッサと同じシリコンチップに統合され、および/または、より高速なSRAMセルを用いて構築され、他方、システムメモリ803は、より低速なDRAMセルを用いて構築されてもよい。より頻繁に用いられる命令およびデータをシステムメモリ803ではなくキャッシュ804内に格納することにより、コンピューティングシステムの全体的な性能効率は向上する。システムメモリ803はコンピューティングシステム内の他のコンポーネントが利用できるようにされている。例えば、コンピューティングシステムの様々なキーボード、マウス、プリンタポート、LANポート、モデムポートなどの.インタフェースを介して受信したデータ、またはハードディスクドライブなどのコンピューティングシステムの内部記憶素子から取得したデータは、システムメモリ803内で一時的にキューに入れられ、その後、ソフトウェアプログラムの実行に際し、1以上のプロセッサ801により処理が行われる。同様に、コンピューティングシステムのインタフェースの1つを介して外部のエンティティへコンピューティングシステムから送信されるべき、または内部記憶素子に格納されるべきとソフトウェアプログラムが判断したデータは、システムメモリ803内で一時的にキューに入れられ、その後、送信または格納される。ICH805は、そのようなデータが、システムメモリ803と、対応する適切なコンピューティングシステムのインタフェースおよびコンピューティングシステムの設計によっては、内部記憶装置との間で確実に受け渡しされるようにする。MCH802は、時間上互いに近接して発生し得る、プロセッサ801、インタフェース、および内部記憶素子間の、システムメモリ803へのアクセスに関する様々な競合するリクエストを制御する。1以上のI/Oデバイス808も典型的なコンピューティングシステム内で実装されてもよい。一般的にI/Oデバイスはコンピューティングシステムとのデータの授受に用いられネットワークアダプタなど、若しくは、コンピューティングシステム内の大規模な不揮発性格納に用いられるハードディスクドライブなど。ICH805は、自身とI/Oデバイス808との間の双方向性ポイントツーポイントリンクを有する。上記で説明した処理は、所定の機能を実現するための命令を機械に対し実行させる機械実行可能命令などのプログラムコードを用いて実行されてもよい。この文脈において、機械は、中間型intermediateformのまたは抽象的なabstract命令をプロセッサ特定の命令へ変換する機械例えば、バーチャルマシン例えば、Java登録商標VirtualMachine、インタプリタ、共通言語ランタイム、高水準言語のバーチャルマシンなどの抽象的実行環境abstractexecutionenvironment、および/または、汎用プロセッサおよび/または特定用途向けプロセッサなど命令を実行する、半導体チップ上に配置されるトランジスタを用いて実装される論理回路など電子回路であってよい。上記で説明した処理は、プログラムコードを実行することなく、機械の代わりに、または機械と組み合わせて処理またはその一部を実行する電子回路によっても実行されてよい。上記で説明した処理は、様々なソフトウェア開発フレームワーク例えば、MicrosoftCorporationの.NET、Mono、Java登録商標、OracleCorporationのFusionなどでサポートされる様々なオブジェクト指向、または非オブジェクト指向のコンピュータプログラム言語例えば、Java登録商標、C、VB、Python、C、C、J、APL、Cobol、Fortran、Pascal、Perlなどを用いてソースレベルのプログラムコードで実行されてもよい。ソースレベルのプログラムコードは、抽象的実行環境例えば、Java登録商標VirtualMachine、共通言語ランタイム、高水準言語の仮想マシン、インタプリタなどで読み取られ得るJava登録商標バイトコード、MicrosoftIntermediateLanguageなど中間型のプログラムコードへ変換されてもよく、若しくは、直接オブジェクトコードへコンパイルされてもよい。様々な方法によれば、1ランタイム時に例えばJITコンパイラなどに中間型プログラムコードをコンパイルすることにより、2中間型プログラムコードをインタプリトすることにより、3ランタイム時に中間型プログラムコードをコンパイルし、かつ、中間型プログラムコードをインタプリトすることにより、抽象的実行環境は中間型プログラムコードをプロセッサ特定コードへ変換してもよい。抽象的実行環境はUNIX登録商標、LINUX登録商標、Windows登録商標のシリーズを含むMicrosoftのオペレーティングシステム、MacOSXを含むAppleComputersのオペレーティングシステム、Sun/Solaris、OS/2、Novellなど様々なオペレーティングシステムで実行され得る。プログラムコードの格納に製品が用いられてもよい。プログラムコードを格納する製品は、1以上のメモリ1以上のフラッシュメモリ、スタティック、ダイナミック、またはその他のランダムアクセスメモリ、光学ディスク、CD-ROM、DVDROM、EPROM、EEPROM、磁気カード、光学カード、電子命令の格納に適した他のタイプの機械可読媒体として実装されてよいが、これらに限定されるわけではない。プログラムコードは、ネットワーク接続などの通信リンクなどを介し伝搬媒体の形態で実装されるデータ信号を介し、サーバなどの遠隔コンピュータからクライアントなどの要求するコンピュータへダウンロードされてもよい。以上、特定の例示的な実施形態を参照し本願発明を説明してきた。しかし、請求項で説明される本願発明の幅広い思想および態様から逸脱することなく、様々な修正および変更を加えることが可能であることが明らかである。よって本明細書および図面は、限定的ではなく例示的なものとして見なされるべきである。"