"トレースの共通のオペレーションコードを有する2以上の命令を検索し、前記2以上の命令が、トレース依存性ツリーにおいて同一のレベルを有する場合、前記2以上の命令を1つのSIMDSingleInstructionMultipleData命令にマージする最適化ユニットを有する装置であって、前記トレース依存性ツリーは、各レベルが同一の高さの命令を有する複数のレベルにおける命令を有し、前記トレースの命令は、メモリに格納されることを特徴とする装置。請求項1記載の装置であって、前記共通のオペレーションコードは、メモリオペレーションコード又は算術オペレーションコードから構成されることを特徴とする装置。請求項1記載の装置であって、前記最適化ユニットは、前記2以上の命令を前記トレース依存性ツリーに配置することによって、シーケンサから受け付けた命令のトレースから前記2以上の命令を検索する第1ステージと、前記命令を前記トレース依存性ツリーに格納するキャッシュメモリと、前記1つのSIMD命令を生成するため、前記キャッシュメモリの前記2以上の命令を検索する第2ステージと、を有することを特徴とする装置。請求項1記載の装置であって、前記最適化ユニットは、連続するメモリアドレスにアクセスする前記2以上の命令を前記1つのSIMD命令に合成することが可能であることを特徴とする装置。請求項1記載の装置であって、前記最適化ユニットは、入力された命令をSSASingleStaticAssignment形式に変換可能であることを特徴とする装置。トレースの共通のオペレーションコードを有する2以上の命令を検索するステップと、前記2以上の命令が、トレース依存性ツリーにおいて同一のレベルを有する場合、前記2以上の命令を1つのSIMDSingleInstructionMultipleData命令にマージするステップと、を有する方法であって、前記トレース依存性ツリーは、各レベルが同一の高さの命令を有する複数のレベルを有することを特徴とする方法。請求項6記載の方法であって、メモリ処理オペレーションコード又は算術オペレーションコードから構成される前記共通のオペレーションコードを選択するステップを有することを特徴とする方法。請求項6記載の方法であって、連続するメモリアドレスにアクセスする前記2以上の命令を前記1つのSIMD命令に合成するステップを有することを特徴とする方法。請求項6記載の方法であって、前記マージするステップは、前記トレースの入力された命令をSSASingleStaticAssignment形式に変換することから構成されることを特徴とする方法。バスと、バスに接続される記憶装置と、トレースの共通のオペレーションコードを有する2以上の命令を検索し、前記2以上の命令が、トレース依存性ツリーにおいて同一のレベルを有する場合、前記2以上の命令を1つのSIMDSingleInstructionMultipleData命令にマージする最適化ユニットを有するプロセッサと、から構成されるシステムであって、前記トレース依存性ツリーは、各レベルが同一の高さの命令を有する複数のレベルにおける命令を有し、前記トレースの命令は、前記記憶装置に格納されることを特徴とするシステム。請求項10記載のシステムであって、前記共通のオペレーションコードは、メモリオペレーションコード又は算術オペレーションコードから構成されることを特徴とするシステム。請求項10記載のシステムであって、前記最適化ユニットは、前記2以上の命令を前記トレース依存性ツリーに配置することによって、シーケンサから受け付けた命令のトレースから前記2以上の命令を検索する第1ステージと、前記命令を前記トレース依存性ツリーに格納するキャッシュメモリと、前記1つのSIMD命令を生成するため、前記キャッシュメモリの前記2以上の命令を検索する第2ステージと、を有することを特徴とするシステム。請求項10記載のシステムであって、前記最適化ユニットは、連続するメモリアドレスにアクセスする前記2以上の命令を前記1つのSIMD命令に合成することが可能であることを特徴とするシステム。請求項10記載のシステムであって、前記最適化ユニットは、入力された命令をSSASingleStaticAssignment形式に変換可能であることを特徴とするシステム。トレースの共通のオペレーションコードを有する2以上の命令を検索するステップと、前記2以上の命令が、トレース依存性ツリーにおいて同一のレベルを有する場合、前記2以上の命令を1つのSIMDSingleInstructionMultipleData命令にマージするステップと、をコンピュータに実行させるプログラムであって、前記トレース依存性ツリーは、各レベルが同一の高さの命令を有する複数のレベルを有することを特徴とするプログラム。請求項15記載のプログラムであって、メモリ処理オペレーションコード又は算術オペレーションコードから構成される前記共通のオペレーションコードを選択するステップを前記コンピュータに実行させるプログラム。請求項15記載のプログラムであって、連続するメモリアドレスにアクセスする前記2以上の命令を前記1つのSIMD命令に合成するステップを前記コンピュータに実行させるプログラム。請求項15記載のプログラムであって、入力された命令をSSASingleStaticAssignment形式に変換するステップを前記コンピュータに実行させるプログラム。本発明の課題は、複数の入力命令をベクトル化する効果的な方法及び装置を提供することである。上記課題を解決するため、本発明の一特徴は、トレースの共通のオペレーションコードを有する2以上の命令を検索し、前記2以上の命令が、トレース依存性ツリーにおいて同一のレベルを有する場合、前記2以上の命令を1つのSIMDSingleInstructionMultipleData命令にマージする最適化ユニットを有する装置であって、前記トレース依存性ツリーは、各レベルが同一の高さの命令を有する複数のレベルにおける命令を有し、前記トレースの命令は、メモリに格納されることを特徴とする装置に関する。本発明によると、複数の入力命令をベクトル化する効果的な方法及び装置を提供することができる。以下の詳細な説明では、本発明の完全なる理解を提供するため、多数の具体的詳細が提供される。しかしながら、本発明がこれらの具体的詳細なく実現可能であるということは、当業者には理解されるであろう。他の例では、本発明を不明りょうにしないように、周知の方法、処理、構成要素及び回路は、詳細には説明されない。以下の詳細な説明の一部は、コンピュータメモリ内のデータビット又はバイナリデジタル信号に対する記号表現及びアルゴリズムに関して提供される。これらのアルゴリズム的な記載及び表現は、データ処理分野の当業者によって他の当業者に自らの研究の本質を伝えるのに利用される技術であるかもしれない。以下の説明から明らかなように、具体的に説明されない場合、本明細書の全体を通じて、処理、計算、決定などの用語の使用は、計算システムのレジスタ及び/又はメモリ内の電子量などの物理量として表されるデータを、計算システムのメモリ、レジスタ又は他のこのような情報ストレージ、送信若しくは表示装置内の物理量として同様に表される他のデータに操作及び/又は変換するコンピュータ、計算システム又は同様の電子計算装置のアクション及び/又は処理を表すことが理解される。さらに、複数のという用語は、2以上の構成要素、装置、要素、パラメータなどを説明するのに本明細書を通じて使用されるかもしれない。例えば、複数の命令とは、2以上の命令を表す。SIMD化又はベクトル化という用語は、実行のためスケジューリングされるものであって、レジスタや機能ユニットなどの同様の実行リソースを要求する処理を単一のSIMD命令にマージする処理を表す等価な用語であるということが理解されるべきである。本発明の範囲はこれに限定されるものではないが、説明の簡単化のため、ベクトル化という用語は、実行のためにスケジューリングされ、同様の実行リソースを必要とする処理をマージする処理を説明するのに使用される。本発明は、様々な用途に利用可能であるということが理解されるべきである。本発明はこれに限定されるものではないが、ここで開示される回路及び技術は、コンピュータシステム、プロセッサ、CPUなどの多数の装置において利用可能である。本発明の範囲内に含まれるべきプロセッサは、単なる一例ではあるが、RISCReducedInstructionSetComputer、パイプラインを有するプロセッサ、CISCComplexInstructionSetComputerなどを含む。本発明の一部の実施例は、例えば、マシーンにより実行される場合例えば、プロセッサ及び/又は他の適切なマシーンによって、当該マシーンに本発明の実施例による方法及び/又は処理を実行させる命令又は命令セットを格納可能なマシーン可読媒体又は物品を利用して実現されるかもしれない。このようなマシーンは、例えば、任意の適切な処理プラットフォーム、計算プラットフォーム、計算装置、処理装置、計算システム、処理システム、コンピュータ、プロセッサなどを含むものであってもよく、ハードウェア及び/又はソフトウェアの任意の適切な組み合わせを用いて実現されるようにしてもよい。マシーン可読媒体又は物品は、例えば、任意の適切なタイプのメモリユニット、記憶装置、メモリ物品、記憶媒体、ストレージ装置、ストレージ物品、ストレージ媒体及び/又はユニットを含むものであってもよく、例えば、メモリ、着脱可能又は着脱不可な媒体、消去可能又は消去不可な媒体、書き込み可能又は書き換え可能な媒体、デジタル又はアナログ媒体、ハードディスク、フロッピー登録商標ディスク、CD-ROMCompactDiskReadOnlyMemory、CD-RCompactDiskRecordable、CD-RWCompactDiskRewritable、光ディスク、磁気媒体、各種タイプのDVDDigitalVersatileDisk、テープ、カセットなどを含むものであってもよい。命令は、ソースコード、コンパイルされたコード、インタープリットされたコード、実行可能コード、静的コード、動的コードなどの任意の適切なタイプのコードを含むものであってもよく、例えば、C、C、Java登録商標、BASIC、Pascal、Fortran、Cobol、アセンブリ言語、機械コードなどの任意の適切な高レベル、低レベル、オブジェクト指向、ビジュアル、コンパイル及び/又はインタープリットプログラミング言語を含むものであってもよい。図1を参照するに、本発明の一実施例によるコンピュータシステム100のブロック図が示される。本発明の範囲はこれに限定されるものではないが、コンピュータシステム100は、パーソナルコンピュータPC、携帯情報端末PDA、インターネット装置、携帯電話又は他の任意の計算装置であってもよい。一例では、コンピュータシステム100は、電源120によって駆動されるメイン処理ユニット110を有するかもしれない。本発明の実施例では、メイン処理ユニット110は、システムインターコネクト135により記憶装置140及び1以上のインタフェース回路150に電気的に接続されるマルチ処理ユニット130を有するものであってもよい。例えば、システムインターコネクト135は、所望される場合には、アドレス/データバスであってもよい。バス以外のインターコネクトがマルチ処理ユニット130を記憶装置140に接続するのに利用可能であるということが理解されるべきである。例えば、1以上の専用線及び/又はクロスバーが、マルチ処理ユニット130を記憶装置140に接続するのに利用可能である。本発明の一部の実施例によると、マルチ処理ユニット130は、Intel登録商標Pentium登録商標TM系のマイクロプロセッサ、Intel登録商標ItaniumTM系のマイクロプロセッサ、及び/又はIntel登録商標系のXScaleTM系のプロセッサなど任意のタイプの処理ユニットを有するものであってもよい。さらに、マルチ処理ユニット130は、SRAMStaticRandomAccessMemoryなどの任意のタイプのキャッシュメモリを有するものであってもよい。記憶装置140は、DRAMDynamicRandomAccessMemory、不揮発性メモリなどを有するものであってもよい。一例として、記憶装置140は、所望される場合には、マルチ処理ユニット130により実行可能なソフトウェアプログラムを格納するものであってもよい。本発明の範囲はこれに限定されるものではないが、インタフェース回路110は、イーサネット登録商標インタフェース、USBUniversalSerialBusインタフェースなどを有するものであってもよい。本発明の実施例では、1以上の入力装置160が、データ及びコマンドをメイン処理ユニット110に入力するため、インタフェース回路150に接続可能である。例えば、入力装置160は、キーボード、マウス、タッチ画面、トラックパッド、トラックボール、イソポイントisopoint、音声認識システムなどを含むものであってもよい。本発明の範囲はこれに限定されるものではないが、出力装置170は、1以上のインタフェース回路160を介しメイン処理ユニット110に動作可能に接続可能であり、所望される場合には、1以上のディスプレイ、プリンタ、スピーカー及び/又は他の出力装置を含むものであってもよい。例えば、出力装置の1つはディスプレイであるかもしれない。ディスプレイは、CRTCathodeRayTube、LCDLiquidCrystalDisplay又は他の任意のタイプのディスプレイであってもよい。本発明の範囲はこれに限定されるものではないが、コンピュータシステム100は、1以上のストレージ装置180を有するものであってもよい。例えば、コンピュータシステム100は、所望される場合、1以上のハードドライブ、1以上のCDドライブ、1以上のDVDドライブ及び/又は他のコンピュータメディア入出力I/O装置を含むものであってもよい。本発明の範囲はこれに限定されるものではないが、コンピュータシステム100は、ネットワーク190との接続を介し他の装置とデータを交換することが可能である。ネットワーク接続は、イーサネット登録商標接続、デジタル加入者線DSL、電話線、同軸ケーブルなどの任意のタイプのネットワーク接続であってもよい。ネットワーク190は、インターネット、電話ネットワーク、ケーブルネットワーク、無線ネットワークなどの任意のタイプのネットワークであってもよい。本発明の範囲は本実施例に限定されるものではないが、本発明の当該実施例では、マルチ処理ユニット130は、最適化ユニット200を含むものであってもよい。本発明の実施例によると、最適化ユニット200は、トレースの2以上の候補命令を検索する処理を実行するものであってもよい。さらに、最適化ユニット200は、トレース依存性ツリーtracedependecytreeの深さに従って2以上の候補命令をSIMD命令にマージするようにしてもよい。本発明の一部の実施例では、候補命令は、SIMD命令に含まれる同様の及び/又は同一のタイプのオペレーションコードを含むものであってもよい。例えば、最適化ユニット200は、候補命令の依存性の深さに基づき、同様の処理を実行する候補命令を検索するようにしてもよい。本発明の実施例によると、最適化ユニット200は、所望される場合、候補命令の少なくとも一部をSIMD命令にマージするようにしてもよい。本発明の範囲はこれに限定されるものではないが、最適化ユニット200は、ソフトウェア、ハードウェア又はソフトウェアとハードウェアの任意の適切な組み合わせにより実現可能であるということが理解されるべきである。図2を参照するに、本発明の一実施例による図1の最適化ユニット200のブロック図が示される。本発明の範囲はこれに限定されるものではないが、最適化ユニット200は、入力トレースバッファ210と、シーケンサ220と、ベクトル化ユニット230と、出力トレースバッファ240とを有するものであってもよい。本発明の範囲はこれに限定されるものではないが、本発明の一部の実施例では、ベクトル化ユニット230は、第1ステージ232と、第2ステージ234と、キャッシュメモリなどのメモリ236とを有するものであってもよい。本発明の範囲はこれに限定されるものではないが、入力トレースバッファ210は、オペレーションコードオペコードを有する命令トレースを受け付けるようにしてもよい。本発明の一部の実施例では、シーケンサ220は、入力トレースバッファ210から命令を受け取り、オペレーションコード及び/又は命令トレースシーケンスなどをベクトル化ユニット230に提供するかもしれない。例えば、命令は、LOAD、STOREなどのメモリ処理と、ADD、SUBTRACT、MULT、SHIFT、ANDなどの算術処理の少なくとも2つのタイプの処理を有するものであるかもしれない。さらに、命令は、レジスタ、定数などの入力値及び出力値を含むものであってもよい。本発明の実施例によると、ベクトル化ユニット230は、シーケンサ220からトレースを受け取り、トレース依存性に従って候補命令を検索するようにしてもよい。本発明の一部の実施例では、第1ステージ232は、シーケンサ220から受け付けたオペコード命令を処理する。例えば、トレースの命令及び/又はオペコードは、SSASingleStaticAssignment形式に変換されるかもしれない。SSA形式では、レジスタはトレースに1回のみ書き込み可能であり、残りの処理は、SSA条件を満足するため、バーチャルレジスタ名を導入するかもしれない。従来のISAInstructionSetArchitectureにより記述されるプログラムコードなどのプログラムコードは、本発明の範囲がこれに限定されるものではないが、同一のレジスタと同一の名前を有する2つのソースレジスタを提供するかもしれない。本発明の範囲はこれに限定されるものではないが、第1ステージ232は、命令を依存性ツリーに配置することによって、ベクトル化のための候補を検索するようにしてもよい。図3を参照するに、本発明の一実施例によるSIMD命令を生成する方法を説明するのに有用な一例となる依存性ツリー300が示される。本発明の範囲はこれに限定されるものではないが、依存性ツリー300は、異なる高さの命令を含むものであってもよい。本発明の範囲はこれに限定されるものではないが、依存性ツリー300のレベルは、同一の高さの命令を含むものであってもよい。第1レベル310は命令312及び314を、第2レベル320は命令322を、第3レベル330は命令332及び334を、第4レベル340は命令342を含むものであってもよい。さらに、依存性ツリー300の深さは、依存性ツリー300の最初の高さ310から最後の高さ340までの距離例えば、当該距離は、レベル間の矢印によって示されるかもしれないに従って計算されてもよい。図2を参照するに、本発明の範囲はこれに限定されるものではないが、第1ステージ232は、ベクトル化のための候補命令をメモリ236に格納する。本発明の実施例によると、第2ステージ234は、同一又は同様のレベルを有する同様のオペコードをメモリ236から検索し、SIMD命令を生成するようにしてもよい。さらに、第2ステージ232は、元のトレース命令をSIMD命令に置換してもよく、SIMD命令を出力トレースバッファ240に格納するようにしてもよい。本発明の範囲はこれに限定されるものではないが、最適化ユニット200の第1ステージ232と第2ステージの処理が、一例となるC言語を模した擬似コードアルゴリズムにより記述可能である。本発明の範囲はこれに限定されるものではないが、C言語を模した擬似コードアルゴリズムの第1部分は、定数、変数構造などを定義するものである。例えば、トレースの最大命令数は、として定義される。命令の最大ソース数は、として定義される。命令の最大デスティネーション数は、として定義される。トレース範囲及び内部バッファサイズは、として定義される。C言語を模した擬似コードアルゴリズムによると、命令構造は、当該命令がベクトル化に適しているか示すブール変数、デスティネーションレジスタ、オペコード、ソースレジスタを有するかもしれない。この命令構造は、として定義される。C言語を模した擬似コードアルゴリズムによると、トレースは、MAX_TRACE_SIZEのエントリのベクトルによって表される高々MAX_TRACE_SIZEの命令のシーケンスとして定義される。さらに、ツーデミニュションtwodiminutions2Dトレース依存ビットマップが、トレースの命令の有効性を示すのに利用可能である。トレースの実際の命令数はINITIAL_TRACE_SIZEであるかもしれない場合、最初のINITIAL_TRACE_SIZEのエントリのみが有効であるかもしれない。C言語を模した擬似コードアルゴリズムによると、メモリ236に格納されるSIMDマトリックスは、オペレーションコードを有し、M個のオペコード位置のN本のラインを保持するかもしれない例えば、合計でNxMxlogMAX_TRACE_SIZEビットなど。本発明の範囲はこれに限定されるものではないが、本実施例のアルゴリズムでは、最適化ユニット230の第1ステージ232は、昇順にトレースの命令を繰り返すことによってトレースの候補命令を検索する。第1ステージ232は、リネーミング処理中に構成されるトレース[i]のすべてのプレデセッサpredecessorを比較する。さらに、第1ステージ232は、トレース[i]の依存性の高さレベルなどと、それの可能性のある最先のスケジューリング位置を計算することによって、依存性ツリー依存性ツリー300などにおける命令の高さレベルなどをタグ付けするようにしてもよい。本発明の範囲はこれに限定されるものではないが、本例のC言語を模した擬似コードアルゴリズムでは、第2ステージ234は、ベクトル化に適した命令マトリックスSIMDなどをメモリ236から検索する。例えば、適切な命令は、同じ依存性ツリーの高さレベルなどにおけるより以前の命令トレース[j]であるかもしれない。さらに、第2ステージ236は、SIMD命令を生成し、以下に示すように、元の命令をSIMD命令と置換するかもしれない。本発明の一部の実施例によると、最適化ユニット200は、メモリにアクセスする2つの命令が、連続するメモリアドレスにアクセスする場合、単一のSIMD命令に合成されるというルールに従って、SIMD命令を生成するようにしてもよい。すなわち、これら2つの命令によってアクセスされるデータが少なくともバーチャルメモリ空間において隣接することは、それらのメモリアドレスと対応するデータ長から計算することが可能である。例えば、以下の命令を含むトレースでは、すなわち、1.ESP4から4バイトをLOADする。2.ESP12から4バイトをLOADする。3.ESP8から4バイトをLOADする。では、命令は、所望される場合には、単一のSIMD命令であるESP4から12バイトをLOADするに合成されるかもしれない。図4を参照するに、テーブル400が示される。本発明の範囲はこれに限定されるものではないが、テーブル400は、依存性ツリー依存性ツリー300などにおける当該命令のレベルを示すレベルカラムと、入力トレースバッファ210及びシーケンサ220によって提供される元の命令を示す元のトレースカラムと、出力トレースバッファ240における命令を示すベクトル化後のトレースとを含む。テーブル400の行は、命令のレベルと、元の命令とベクトル化後の命令とを示すかもしれない。本発明の範囲はこれに限定されるものではないが、最適化ユニット200は、トレース依存性グラフの深さトレース命令の高さなどをタグ付けするものであってもよい。さらに例えば、テーブル400によると、最適化ユニット200は、ベクトル化のための候補と同一のレベルレベル2などにある命令EAX←LOADESP,4とEBX←LOADESP,8を特定し、所望される場合には、これらの命令をSIMD命令EAX,EBX←SIMD_LOADESP,4に合成するようにしてもよい。本発明の範囲はこれに限定されるものではないが、最適化ユニット200は、共通の処理LOADなどによるものであって、トレース依存性グラフの同じ深さ高さなどにある2つの命令が、それらの一定でないすべてのソースレジスタなどが同様のものである場合、及び/又は一定又は直接的なソースが異なる場合、単一のSIMD命令SIMD_LOADなどに合成されるというルールに従うことによって、SIMD命令を生成するようにしてもよい。図5を参照するに、本発明の他の実施例によるテーブル500が示される。本発明の範囲はこれに限定されるものではないが、テーブル500は、依存性ツリー依存性ツリー300などにおける元の命令のレベルを示すレベルカラムと、入力トレースバッファ210及びシーケンサ220によって提供される元の命令を示す元のトレースカラムと、SSAなどの基本的変換後の命令のレベルを示すレベルカラムと、変換後の命令を示すカラムと、出力トレースバッファ240におけるベクトル化後のトレースの命令を示すカラムとを有するものであってもよい。テーブル500の行は、命令のレベルと、基本的変換後の命令の元の命令レベルと、基本的変換後の命令と、ベクトル化後の命令とを示すものであってもよい。本発明の範囲はこれに限定されるものではないが、一例となるテーブル500によると、最適化ユニット200は、トレースにおける元の命令の高さをタグ付けする。最適化ユニット200は、トレースの命令をSSA形式に変換するかもしれない。最適化ユニット200は、トレースがSSA形式に変換されることを利用することによって、トレースの命令を変換してもよい。最適化ユニット200は、例えば、などのベクトル化のための候補命令と同一レベルの変換された命令をタグ付けし、それらをSIMD命令にそれぞれ合成するようにしてもよい。本発明の特徴がここで図示及び説明されたが、当業者には、多数の改良、置換、変更及び均等が想起するであろう。従って、添付した請求項が、本発明の真の趣旨に属するこのようなすべての改良及び変更をカバーするものであるということは理解されるべきである。"